- •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
1.The transmission of the ADPCM and the intermediate 64 Kbps PCM signals is error free, and,
2.The ADPCM and intermediate 64-Kbps PCM bit streams are not disturbed by digital signal processing devices.
If the encoder and decoder have different initial conditions (as may occur after switching, for example), then the synchronous tandeming may take time to establish. Furthermore, if this property is disturbed, or not acquired initially, then it may be recovered for those signals of sufficient level with spectra that occupy the majority of the 200 Hz to 3400 Hz band (that is, speech, 4800-bit/s voiceband data).
When a decoder is synchronously connected to an encoder, the synchronous coding adjustment block estimates quantization in the encoder. If all state variables in both the decoder and the encoder have identical values, and there are no transmission errors, the forced equivalence of both 4-bit quantizer output sequences for all values of k ensures the property of non-accumulation of distortion.
This is accomplished by first converting the A-law or m-law signal, sp (k), to a uniform PCM signal, slx (k), and then computing a difference signal, dx (k):
dx (k) |
+ slx (k) * se (k) , |
(24) |
||
The difference signal, dx (k), is then compared to the ADPCM quantizer decision interval, |
|
|||
determined by I(k) and y(k). the signal sd (k) is then defined as follows: |
|
|||
|
s)p |
(k), |
dx (k) ¦ lower interval boundary |
(25) |
sd (k) |
+ s*p |
(k), |
dx (k) w upper interval boundary |
|
sp (k) , otherwise
Where
sd (k) is the output PCM codeword of the decoder
*
s p (k) is the PCM codeword that represents the next, more positive, PCM output level. When
)
sp(k) represents the most positive output level, then s p (k) is constrained to be the value sp (k).
*
s p (k) is the PCM codeword that represents the next, more negative, PCM output level. When
*
sp(k) represents the most negative output level, then s p (k) is constrained to be the value sp (k).
3 Useful Features of the C54x for G.726 ADPCM
The typical application for the C54x is for vocoders that deal with a large number of samples at the same time. Application-oriented instructions, such as LMS, FIRS, SQUR, CMPS, or instruction with parallel load/store, do not take place naturally in the ADPCM algorithm. On the other hand, instructions, such as EXP, NORM, MIN, MAX, are often very useful for this purpose. More generally, the ADPCM algorithms benefit from the enhanced architecture of the C54x, which also provides advantages in general purpose applications. The following list sums up the
16 G.726 Adaptive Differential Pulse Code Modulation (ADPCM) on the TMS320C54x DSP