G.726¶
Introduction¶
G.726 is an ITU-T ADPCM speech codec standard covering the transmission of voice at rates of 16, 24, 32, and 40 kbit/s.
Source Code¶
The original G.726 source code and test sequences are taken from G.191 version 2.0, 24 January 2000, and this codec passes the test cases successfully.
Multi-instance and reentrance¶
Codec hasn’t tested on multi-instance run, for more information about support of
multi-instance run see codec source documentation. Codec supports reentrance
in case if AGU address pointer registers (AGU_AUX_APx
), AGU offset registers (AGU_AUX_OSx
),
AGU modifier registers (AGU_AUX_MODx
), see [1] in References, will be saved and restored.
Codec-Specific Build Options¶
LTO_BUILD
and REMAPITU_T
options are enabled for that codec by default.
Codec-Specific Run-Time Options¶
To run G.726 codec in MetaWare Debugger (See [2] in References), use the following command:
with variable bitrate:
mdb -run -cl -nsim -tcf=<default TCF from /rules/common_hw_config.mk> vbr-g726.elf [-enc|-dec] -law [A|u|l] -rate [16|24|32|40|16-24-32-40] -frame [NoOfSamples] [-noreset] [-?|-help] <InpFile> <OutFile> [<FrameSize> [<1stBlock> [<NoOfBlocks> [<Reset>]]]]
with constant bit rate:
mdb -run -cl -nsim -tcf=<default TCF from /rules/common_hw_config.mk> g726demo.elf [-noreset] [-?|-help] <Law> <Transf> <Rate> <InpFile> <OutFile> [<FrameSize> [<1stBlock> [<NoOfBlocks> [<Reset>]]]]
The following tables list the parameters that can be passed to G.726.
Option | Description |
---|---|
<input_file> |
Specifies the input file |
<output_file> |
Specifies the output file |
-enc |
Encode mode. Default: run encoder and decoder (optional) |
-dec |
Encode mode. Default: run encoder and decoder (optional) |
-law A|u |
The letters A or a for G.711 A-law, letter u for G.711 u-law, or letter l for linear. If linear is chosen, A-law is used to compress/expand samples to/from the G.726 routines.Default is A-law (optional) |
-rate |
Bit-rate (in kbit/s): 40, 32, 24 or 16 (in kbit/s) or a combination of them using dashes (For example, 32-24 or 16-24-32). Default is 32 kbit/s (optional) |
-frame |
Number of samples per frame for switching bit rates. Default is 16 samples (optional) |
-noreset |
Do not reset the encoder/decoder (optional) |
-?|-help |
Print help message (optional) |
FrameSize |
Frame size, in number of samples; The bitrate only changes at the boundaries of a frame. Default: 16 samples (optional) |
1stBlock |
The number of the first block of the input file to be processed. Default: first block (optional) |
NoOfBlocks |
The number of blocks to be processed, starting with block “1stBlock” (optional) |
Reset |
If specified as 1, the coder and decoder are reset at the very beginning of the processing. If 0, the processing starts with the variables in an unknown state. Default is 1 (reset ON). (optional) |
Option | Description |
---|---|
<input_file> |
Specifies the input file |
<output_file> |
Specifies the output file |
Transf |
Desired conversion on the input file (optional):[lolo], (A/u)log -> ADPCM -> (A/u) log[load], (A/u)log -> ADPCM[adlo], ADPCM -> (A/u) log |
Law |
Desired law (either A or u) (optional) |
Rate |
The bit-rate (in kbit/s): 40, 32, 24 or 16 (in kbit/s)or a combination of them using dashes (For example, 32-24 or 16-24-32). Default is 32 kbit/s (optional) |
-frame |
Number of samples per frame for switching bit rates. Default is 16 samples (optional) |
-noreset |
Do not reset the encoder/decoder (optional) |
-?|-help |
print help message (optional) |
FrameSize |
The frame size, in number of samples; the bitrate only changes at the boundaries of a frame. Default: 16 samples (optional) |
1stBlock |
The number of the first block of the input file to be processed. Default: first block (optional) |
NoOfBlocks |
The number of blocks to be processed, starting with block “1stBlock” (optional) |
Reset |
If specified as 1, the coder and decoder are reset at the very beginning of the processing. If 0, the processing starts with the variables in an unknown state. Default is 1 (reset ON). (optional) |
Examples
The following command instructs the codec encoding and decoding audio file decoder to A-law log with variable bitrate:
mdb -run -cl -nsim -tcf=em9d_voice_audio vbr-g726.elf -q -law A -rate 16-24-32-40-32-24 ../testvectors/Ref/voice.src ../testvectors/voicvbra.tst
The following command instructs the codec to encode converting from A-law log input file to ADPCM decoded file with frame size is 16 and 1 start block:
mdb -run -cl -nsim -tcf=em9d_voice_audio g726demo.elf -q a load 16 ../testvectors/Ref/nrm.a ../testvectors/rn16fa.i 16 1 1024