
- •ABSTRACT
- •Contents
- •List of Figures
- •List of Tables
- •Introduction
- •Introducing the Software Application
- •Software Features
- •CCITT ADPCM Standard: Recommendation G.726
- •ADPCM Principle
- •ADPCM Encoder
- •ADPCM Decoder
- •Encoder Description
- •Input PCM Format Conversion
- •Difference Computation
- •Adaptive Quantizer
- •Operation at 40 Kbps
- •Operation at 32 Kbps
- •Operation at 24 Kbps
- •Operation at 16 Kbps
- •Inverse Adaptive Quantizer
- •Quantizer Scale Factor Adaptation
- •Adaptation Speed Control
- •Adaptive Predictor and Reconstructed Signal Calculator
- •Tone and Transition Detector
- •Decoder Description
- •Inverse Adaptive Quantizer
- •Quantizer Scale Factor Adaptation
- •Adaptation Speed Control
- •Adaptive Predictor and Reconstructed Signal Calculator
- •Tone and Transition Detector
- •Output PCM Format Conversion
- •Synchronous Coding Adjustment
- •Useful Features of the C54x for G.726 ADPCM
- •Input/Output PCM Format Conversions
- •Linear PCM Expanding
- •Synchronous Coding Adjustment
- •Delayed Variables Management, Use of Circular Buffers
- •Logarithmic Conversion
- •3-, 4-, or 5-Bit Quantizer
- •Inverse Quantizer
- •Transition Detector and Trigger Process
- •Limitation of Coefficients Using Compare Unit
- •Sign Representation
- •Coder Rate and PCM Laws Selection
- •Channel Selection
- •Data Memory Organization
- •Algorithm Tables (Program Space)
- •Program Organization
- •Channel Initialization Routine: _G726ENC_TI_reset / _G726DEC_TL_reset
- •Encoder Routine: G726COD
- •Decoder Routine: g726_decode1
- •FMULT
- •ACCUM
- •LIMA
- •EXPAND
- •SUBTA
- •SUBTB
- •QUAN
- •RECONST
- •ADDA
- •ANTILOG
- •ADDB
- •ADDC
- •FUNCTF
- •FILTA
- •FILTB
- •TRANS
- •TRIGA
- •TRIGB
- •LIMC
- •LIMD
- •TONE
- •SUBTC
- •FILTC
- •FUNCTW
- •FILTD
- •LIMB
- •FILTE
- •FLOATA
- •FLOATB
- •DELAY
- •COMPRESS (decoder only)
- •SYNC (decoder only)
- •References
- •IMPORTANT NOTICE

SPRA118
Table 17. Quantizer Output Levels for 32-Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 18. Quantizer Output Levels for 24-Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
Table 19. Quantizer Output Levels for 16-Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
Table 20. Map Quantizer Output F|I| for 40-Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
Table 21. Map Quantizer Output F|I| for 32 Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
44 |
|
Table 22. Map Quantizer Output for 24 Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
|
Table 23. Map Quantizer Output for 16 Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
|
Table 24. |
Quantizer Scale Factor Multipliers W|I| for 40 Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
Table 25. |
Quantizer Scale Factor Multipliers W|I| for 32 Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
Table 26. |
Quantizer Scale Factor Multipliers W|I| for 24 Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
Table 27. |
Quantizer Scale Factor Multipliers W|I| for 16 Kbps ADPCM . . . . . . . . . . . . . . . . . . . . . . . . . . |
45 |
Table 28. Encoder Sequence (578–605 Cycles) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
46 |
|
Table 29. Decoder Sequence (606–633 Cycles) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
47 |
|
Table 30. |
Internal Processing Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . |
50 |
1 Introduction
Adaptive differential pulse code modulation (ADPCM) is a very efficient digital coding of waveforms. In telecommunication, the main field application is speech compression because it makes it possible to reduce the bit flow, while maintaining an acceptable quality. However, this technique applies for all waveforms, high-quality audio, image, and modem data. That is why it’s different from vocoders (voice encoders CELP, VSELP, etc.), that use properties of the human voice to reconstruct a waveform that appears very similar when it reaches the human ear, even though it is quite different from the original speech signal.
Consider a signal which you may wish to transform, to reduce the amount of information that it is necessary to code. You must be able to reconstruct the original signal as faithfully as possible. The principle of ADPCM is to use your knowledge of the signal in the past time to predict it in the future, the resulting signal being the error of this prediction. Applications of this principle are all based on digital transcoding after converting and coding analog signal to digital using pulse code modulation (PCM).
PCM is the most direct way to code analog signals to digital. The codeword in PCM is simply the quantized representation of the amplitude from the sampled signal. This word is given directly by an electronic A/D converter from the analog voltage which comprises the original signal.
You must perform PCM before ADPCM to decrease the number of bits for coding by passing through a PCM process before transforming to an ADPCM sample. In the G.726 recommendation, which currently includes G.721 and G.723 recommendations of the International Telegraph and Telephone Consultative Committee (CCITT), it is specified that an 8-bit PCM word should be reduced to a 4-bit ADPCM word, correspondingly reducing the bit flow by a factor of two.
Be aware, however, that an ADPCM word represents the prediction error of the signal, and has no significance itself.. It must be decoded (reverse transformation) to reconstruct the meaningful original waveform. For equal bit number coding, the difference between original and reconstructed signal is smaller in ADPCM than in PCM.
4 G.726 Adaptive Differential Pulse Code Modulation (ADPCM) on the TMS320C54x DSP