5i' 7.2 Coding of analogue signals by methods other than PCM Recommendation G.721 32 kbit/s ADAPTIVE DIFFERENTIAL PULSE CODE MODULATION (ADPCM) (Melbourne, 1988) 1 General The characteristics below are recommended for the conversion of a 64 kbit/s A-law or u-law PCM channel to and from a 32 kbit/s channel. The conversion is applied to the PCM bit stream using an ADPCM transcoding technique. The relationship between the voice frequency signals and the PCM encoding/decoding laws is fully specified in Recommendation G.711. Paragraphs 1.1 and 1.2 of this Recommendation provide an out- line description of the ADPCM transcoding algorithm, SS 2 and 3 provide the principles and functional descriptions of the ADPCM encoding and decoding algorithms respectively, whilst S 4 is the precise specification for the algorithm computations. Networking aspects and digital test sequences are addressed in Apendices I and II respectively to this Recommendation. Simplified block diagrams of both the ADPCM encoder and decoder are shown in Figure 1/G.721. In S 4, each sub-block in the encoder and decoder is precisely defined using one particular logical sequence. If other methods of computation are used, extreme care should be taken to ensure that they yield exactly the same value for the output processing vari- ables. Any further departures from the processes detailed in S 4 will incur performance penalties which may be severe. Note 1 - For the time being, the 32 kbit/s ADPCM algorithm defined in this Recommendation is intended for transmission pur- poses since switching applications at this bit rate are a subject _________________________ This Recommendation G.721 completely replaces the text of Recommendation G.721 published in Fascicle III.3 of the Red Book . It should be noted that systems designed in accordance with the present Recommendation will not be compatible with systems designed in accordance with the Red Book version. for further study by the CCITT. Note 2 - Prior to the definition of this Recommendation, other 32 kbit/s ADPCM algorithms of similar performance have been incorporated in equipment designs and used in national telecommuni- cations networks. Note 3 - In the short term, due to the limited availability of 32 kbit/s ADPCM equipment, the use of 32 kbit/s ADPCM in the international network, when requested by one of the Administrations concerned, will require bilateral and/or multilateral agreement. Note 4 - Signalling and multiplexing considerations are beyond the scope of this Recommendation (see for example Recommendation G.761). 1.1 ADPCM encoder Subsequent to the conversion of the A-law or u-law PCM input signal to uniform PCM, a difference signal is obtained, by sub- tracting an estimate of the input signal from the input signal itself. An adaptative 15-level quantizer is used to assign four binary digits to the value of the difference signal for transmis- sion to the decoder. An inverse quantizer produces a quantized difference signal from these same four binary digits. The signal estimate is added to this quantized difference signal to produce the reconstructed version of the input signal. Both the reconstructed signal and the quantized difference signal are operated upon by an adaptive predictor which produces the estimate of the input signal, thereby completing the feedback loop 1.2 ADPCM decoder The decoder includes a structure identical to the feedback portion of the encoder, together with a uniform PCM to A-law or u-law conversion and a synchronous coding adjustment The synchronous coding adjustment prevents cumulative distor- tion occurring on synchronous tandem codings (ADPCM-PCM-ADPCM, etc. digital connections) under certain conditions (see S 3.7). The syn- chronous coding adjustment is achieved by adjusting the PCM output codes in a manner which attempts to eliminate quantizing distortion in the next ADPCM encoding stage Figure 1/G.721, p. 2 ADPCM encoder principles Figure 2/G.721 is a block schematic of the encoder. For each variable to be described, k is the sampling index and samples are taken at 125 us intervals. A fundamental description of each block is given below in SS 2.1 to 2.8. Figure 2/G.721, p. 2.1 Input PCM format conversion This block converts the input signal s (k ) from A-law or u-law PCM to a uniform PCM signal s1(k ). 2.2 Difference signal computation This block calculates the difference signal d (k ) from the uniform PCM signal sl(k ) and the signal estimate se(k ): d (k ) = s l (k ) - s e (k ) (2-1) 2.3 Adaptive quantizer A 15-level non-uniform adaptive quantizer is used to quantize the difference signal d (k ). Prior to quantization, d (k ) is con- verted to a base 2 logarithmic representation and scaled by y (k ) which is computed by the scale factor adaptation block. The normal- ized input/output characteristic (infinite precision values) of the quantizer is given in Table 1/G.721. Four binary digits are used to specify the quantized level representing d (k ) (three for the mag- nitude and one for the sign). The 4-bit quantizer output I (k ) forms the 32 kbit/s output signal; it is also fed to the inverse adaptive quantizer, the adaptation speed control and the quantizer scale factor adaptation blocks. 2.4 Inverse adaptive quantizer A quantized version dq(k ) of the difference signal is pro- duced by scaling, using y (k ), specific values selected from the normalized quantizing characteristic given in Table 1/G.721 and then transforming the result from the logarithmic domain. H.T. [T1.721] TABLE 1/G.721 Quantizer normalized input/output characteristic _____________________________________________________________ { Normalized quantizer input range log | fId (k | (emy (k ) } | fII (k | { Normalized quantizer output log | fId q (k | (emy (k ) } _____________________________________________________________ [3.12, +oo) 7 3.32 [2.72, 3.12) 6 2.91 [2.34, 2.72) 5 2.52 [1.91, 2.34) 4 2.13 [1.38, 1.91) 3 1.66 [0.62, 1.38) 2 1.05 [-0.98, 0.62) 1 0.031 (-oo, -0.98) 0 -oo _____________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note - The convention used here is that "[" indicates that the endpoint value is included in the range, ")" indicates that the endpoint value is excluded from the range. Table 1/G.721 [T1.721], p. 2.5 Quantizer scale factor adaptation This block computes y (k ), the scaling factor for the quan- tizer and the inverse quantizer. The inputs are the 4-bit quantizer output I (k ) and the adaptation speed control parameter al(k ). The basic principle used in scaling the quantizer is bimodal adaptation : - fast for signals (e.g. speech) that produce difference signals with large fluctuations; - slow for signals (e.g. voiceband data, tones) that produce difference signals with small fluctuations. The speed of adaptation is controlled by a combination of fast and slow scale factors. The fast (unlocked) scale factor yu(k ) is recursively com- puted in the base 2 logarithmic domain from the resultant loga- rithmic scale factor y (k ): y u (k ) = (1 - 2 -5 )y (k ) + 2 -5 W [I (k )], (2-2) where y u (k ) is limited by 1.06 y u (k ) 10.00. The discrete function W (I ) is defined as follows (infinite precision values): H.T. [T2.721] ____________________________________________________________________ | (k | 7 6 5 4 3 2 1 0 ____________________________________________________________________ W(I) 70.13 22.19 12.38 7.00 4.00 2.56 1.13 -0.75 ____________________________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Table [T2.721], p. The factor (1 - 2DlF2615) introduces finite memory into the adaptive process so that the states of the encoder and decoder con- verge following transmission errors. The slow (locked) scale factor yl(k ) is derived from yu(k ) with a low pass filter operation: y l (k ) = (1 - 2 -6 )y l (k - 1) + 2 -6 y u (k ) (2-3) The fast and slow scale factors are then combined to form the resultant scale factor: y (k ) = a l (k )y u (k - 1) + [1 - a l (k )]y l (k - 1), (2-4) where 0 a l (k ) 1 (see S 2.6). 2.6 Adaptation speed control The controlling parameter al(k ) can assume values in the range [0, 1]. It tends towards unity for speech signals and towards zero for voiceband data signals and tones. It is derived from a measure of the rate-of-change of the difference signal values. Two measures of the average magnitude of I (k ) are computed: d ms (k ) = (1 - 2 -5 )d ms (k - 1) + 2 -5 F [I (k )], (2-5) and d ml (k ) = (1 - 2 -7 )d ml (k - 1) + 2 -7 F [I (k )], (2-6) where F [I (k )] is defined by H.T. [T3.721] _______________________________________________________ | (k | 7 6 5 4 3 2 1 0 _______________________________________________________ F[I(k)] 7 3 1 1 1 0 0 0 _______________________________________________________ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Table [T3.721], p. dm\ds(k ) is thus a relatively short term average of F [I (k )] and dm\dl(k ) is a relatively long term average of F [I (k )]. Using these two averages, the variable ap(k ) is defined: a p (k ) = (1 - 2 -4 )a p (k - 1) + 2 -3 , if | |fId ms fR(k)- d ml fR(k)| | _" 2 -3 d ml (k ) a p (k ) = (1 - 2 -4 )a p (k - 1) + 2 -3 , if y (k ) < 3 a p (k ) = (1 - 2 -4 )a p (k - 1) + 2 -3 , if t d(k ) = 1 (2-7) a p (k ) = 1, if t r(k ) = 1 a p (k ) = (1 - 2 -4 )a p (k - 1), + 2 -3 otherwise Thus, ap(k ) tends towards the value 2 if the difference between dm\ds(k ) and dm\dl(k ) is large (average magnitude of I (k ) changing) and ap(k ) tends towards the value 0 if the difference is small (average magnitude of I (k ) relatively constant). ap(k ) also tends towards 2 for an idle channel (indicated by y (k ) < 3) or partial band signals (indicated by td(k ) = 1 as described in S 2.8). Note that ap(k ) is set to 1 upon detection of a partial band signal transition (indicated by tr(k ) = 1, see S 2.8). a p (k - 1) is then limited to yield a l (k ) used in Equation (2-4) above: a [Formula Deleted]