📄 tg7231coder.m
字号:
function tG7231Coder% Test G.723.1 coding% Notes:% - This version runs on Windows. Windows dependencies: Cygwin version of% LBCCODE2; Windows version of CopyAudio; Windows file compare utility.% - The reference C-code was compiled under Cygwin (Unix subsystem running% under Windows). The Cygwin dll is in the same folder as LBCCODE2.exe.% - The AFsp utility routines are used to create headerless files% - The AFsp utility routine CopyAudio (Windows version) is used to create% a headerless file for LBCCODE2.RDir = fullfile ('test', 'ReferenceFiles');cd ..tCoder (fullfile (RDir, 'FE27_04.wav'), fullfile (RDir, 'FE27_04_Mref63.bit'));cd testreturn% ----------function tCoder (FNameIn, FNamebitref)% 1. Run the Matlab coder, creating a bit file% 2. Run the C-code coder, creating a bit file% 3. Run the C-code decoder on bit file 1% 4. Run the C-code decoder on bit file 2% 5. Compare the results% Form the file names[Path, Name, Ext] = fileparts (FNameIn);FNameMbit = [Name '_M.bit'];FNameCbit = [Name '_C.bit'];FNameMwav = [Name '_M.wav'];FNameCwav = [Name '_C.wav'];% Run the Matlab coder (6.3 kb/s)disp ('====== Running the Matlab coder');G7231Coder (FNameIn, FNameMbit);% Convert the bit files to text files and compareif (nargin >= 2) disp (''); disp (['====== Comparing Matlab generated bit files']); CompBitFiles (FNameMbit, FNamebitref);end% Create the headerless file for the C-code% Flags% -r53 or -r63 or -rFilename: rate or rate file name (1 byte per frame)% -c, -d, -b: coder only, decoder only, or both% -v: use VAD/CNG% -n: Suppress printing% -Noh: No highpass filter% -Nop: No postfilter% -Rxx: Reinit size (reinitialize coder/decoder every xx frames)% -fFile: Frame erasure file (1 byte per frame)disp ('====== Running the reference C coder');TName = 'Temp.nh';COPYAUDIO = fullfile ('test', 'CopyAudio.exe');eval (['! ' COPYAUDIO ' ' FNameIn ' -F noheader_little-endian ' TName]);LBCCODE = fullfile ('test', 'LBCCODE2.exe');eval (['! ' LBCCODE ' -n -c -r63 ' TName ' ' FNameCbit]);delete (TName);% Convert the bit files to text files and comparedisp ('');disp (['====== Comparing Matlab and C generated bit files']);CompBitFiles (FNameMbit, FNameCbit);% Run the decoder on both bit filesG7231Decoder (FNameMbit, FNameMwav);G7231Decoder (FNameCbit, FNameCwav);COMPAUDIO = fullfile ('test', 'CompAudio.exe');eval (['! ' COMPAUDIO ' ' FNameMwav ' ' FNameCwav]);delete (FNameMbit);delete (FNameCbit);delete (FNameMwav);delete (FNameCwav);return% -----function CompBitFiles (F1, F2)[Path, Name] = fileparts (F1);F1_txt = [Name '.txt'];[Path, Name] = fileparts (F2);F2_txt = [Name '.txt'];PrintQCodes (F1, F1_txt);PrintQCodes (F2, F2_txt);eval (['!FC ' F1_txt ' ' F2_txt]);delete (F1_txt);delete (F2_txt);return
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -