C:\WINWORD\CCITTREC.DOT_______________ INTERNATIONAL TELECOMMUNICATION UNION CCITT G.726 THE INTERNATIONAL TELEGRAPH AND TELEPHONE CONSULTATIVE COMMITTEE GENERAL ASPECTS OF DIGITAL TRANSMISSION SYSTEMS; TERMINAL EQUIPMENTS 40, 32, 24, 16 kbit/s ADAPTIVE DIFFERENTIAL PULSE CODE MODULATION (ADPCM) Recommendation G.726 Geneva, 1990 FOREWORD The CCITT (the International Telegraph and Telephone Consultative Committee) is a permanent organ of the International Telecommunication Union (ITU). CCITT is responsible for studying technical, operating and tariff questions and issuing Recommendations on them with a view to standardizing telecommunications on a worldwide basis. The Plenary Assembly of CCITT which meets every four years, establishes the topics for study and approves Recommendations prepared by its Study Groups. The approval of Recommendations by the members of CCITT between Plenary Assemblies is covered by the procedure laid down in CCITT Resolution No. 2 (Melbourne, 1988). Recommendation G.726 was prepared by Study Group XV and was approved under the Resolution No. 2 procedure on the 14 of December 1990. ___________________ CCITT NOTE In this Recommendation, the expression "Administration" is used for conciseness to indicate both a telecommunication Administration and a recognized private operating agency. γITU1990 All rights reserved. No part of this publication may be reproduced or utilized in any form or by any means, electronic or mechanical, including photocopying and microfilm, without permission in writing from the ITU. Recommendation G.726 Recommendation G.726 40, 32, 24, 16 kbit/s ADAPTIVE DIFFERENTIAL PULSE CODE MODULATION (ADPCM)1) 1 General The characteristics below are recommended for the conversion of a 64 kbit/s A-law or m-law pulse code modulation (PCM) channel to and from a 40, 32, 24 or 16kbit/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. The principal application of 24 and 16 kbit/s channels is for overload channels carrying voice in Digital Circuit Multiplication Equipment (DCME). The principal application of 40 kbit/s channels is to carry data modem signals in DCME, especially for modems operating at greater than 4800kbit/s. Sections 1.1 and 1.2 of this Recommendation provide an outline description of the ADPCM transcoding algorithm, §§2 and 3 provide the principles and functional descriptions of the ADPCM encoding and decoding algorithms respectively, whilst §4 is the precise specification for the algorithm computations. Networking aspects and digital test sequences are addressed in Appendices I and II, respectively, to this Recommendation. Simplified block diagrams of both the ADPCM encoder and decoder are shown in Figure 1/G.726. In § 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 variables. Any further departures from the processes detailed in § 4 will incur performance penalties which may be severe. Note 1 – Prior to the definition of this Recommendation, other ADPCM algorithms of performance similar to the 40kbit/s algorithm specified here have been incorporated in DCME designs and used in telecommunications networks. These algorithms may be considered by bilateral agreement for limited DCME applications under certain circumstances. Technical descriptions providing information on two such algorithm approaches can be found in COMXVIIINo.101 and COMXVIIINo.102 of the 1984-1988Study Period. Note 2 – The assignment of 16, 24, 32 and 40 kbit/s DCME channels and the associated selection of coding rates are beyond the scope of this Recommendation; see, for example, RecommendationG.763 (revised, 1990). Note 3 – Signalling and multiplexing considerations are beyond the scope of this Recommendation; see, for example, RecommendationsG.761 and G.763 (revised, 1990). FIGURE 1/G.726 1.1 ADPCM encoder Subsequent to the conversion of the A-law or m-law PCM input signal to uniform PCM, a difference signal is obtained, by subtracting an estimate of the input signal from the input signal itself. An adaptive31-, 15-, 7-, or 4-level quantizer is used to assign five, four, three or twobinary digits, respectively, to the value of the difference signal for transmission to the decoder. An inverse quantizer produces a quantized difference signal from these same five, four, three or twobinary digits, respectively. 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 m-law conversion and a synchronous coding adjustment. The synchronous coding adjustment prevents cumulative distortion occurring on synchronous tandem codings (ADPCM-PCM-ADPCM,etc., digital connections) under certain conditions (see §3.7). The synchronous 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. 2 ADPCM encoder principles Figure 2/G.726 is a block schematic of the encoder. For each variable to be described, k is the sampling index and samples are taken at 125ms intervals. A fundamental description of each block is given below in §§ 2.1 to2.8. FIGURE 2/G.726 2.1 Input PCM format conversion This block converts the input signal s(k) from A-law or m-law PCM to a uniform PCM signal sl(k). 2.2 Difference signal computation This block calculates the difference signal d (k) from the uniform PCM signal sl (k) and the signal estimatese(k): 2.3 Adaptive quantizer A 31-, 15, 7- or 4-level non-uniform adaptive quantizer is used to quantize the difference signal d (k) for operating at 40, 32, 24 or 16kbit/s, respectively. Prior to quantization, d (k) is converted to a base 2logarithmic representation and scaled by y (k) which is computed by the scale factor adaptation block. The normalized input/output characteristic (infinite precision values) of the quantizer is given in Tables1/G.726 through 4/G.726. 2.3.1 Operation at 40 kbit/s Five binary digits are used to specify the quantized level representing d (k) (four for the magnitude and one for the sign). The 5-bit quantizer outputI (k) forms the 40kbit/s output signal; I (k) takes on one of 31non-zero values, I (k) is also fed to the inverse adaptive quantizer, the adaptation speed control and the quantizer scale factor adaptation blocks that operate on a 5-bitI (k) having one of 32possible values. I (k)=00000 is a legitimate input to these blocks when used in the decoder, due to transmission errors. 2.3.2 Operation at 32 kbit/s Four binary digits are used to specify the quantized level representing d (k) (three for the magnitude and one for the sign). The 4-bit quantizer outputI (k) forms the 32kbit/s output signal; it is also fed to the inverse adaptive quantizer, the adaptation speed control and the quantizer scale factor adaptation blocks. I (k)=0000 is a legitimate input to these blocks when used in the decoder, due to transmission errors. 2.3.3 Operation at 24 kbit/s Three binary digits are used to specify the quantized level representing d (k) (two for the magnitude and one for the sign). The 3-bit quantizer outputI (k) forms the 24kbit/s output signal, where I (k) takes on one of sevel non-zero values. I (k) is also fed to the inverse adaptive quantizer, the adaptation speed control and the quantizer scale factor adaptation blocks, each of which is modified to operate on a 3-bitI (k) having any of the eight possible values. I(k)=000 is a legitimate input to these blocks when used in the decoder, due to transmission errors. 2.3.4 Operation at 16 kbit/s Two binary digits are used to specify the quantized level representing d (k) (one for the magnitude and one for the sign). The 2-bit quantizer outputI (k) forms the 16kbit/s output signal; it is also fed to the inverse adaptive quantizer, the adaptation speed control and the quantizer scale factor adaptation blocks. Unlike the quantizers described in § 2.3.1 for operation at 40 kbit/s, in § 2.3.2 for operation at 32kbit/s and in §2.3.3 for operation at 24kbit/s, the quantizer for operation at 16kbit/s is an even-level (4-level) quantizer. The even-level quantizer for the 16kbit/s ADPCM has been selected because of its superior performance over a corresponding odd-level (3-level) quantizer. 2.4 Inverse adaptive quantizer A quantized version dq (k) of the difference signal is produced by scaling, using y (k), specific values selected from the normalized quantizing characteristic given in Tables1/G.726 through 4/G.726 and then transforming the result from the logarithmic domain. 2.5 Quantizer scale factor adaptation This block computes y (k), the scaling factor for the quantizer and the inverse quantizer. The inputs are the 5-bit, 4-bit, 3-bit, 2-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 computed in the base 2 logarithmic domain from the resultant logarithmic scale factor y (k): where yu (k) is limited by 1.06 £ yu (k) £ 10.00. For 40 kbit/s ADPCM, the discrete function W(I) is defined as follows (infinite precision values): For 32 kbit/s ADPCM, the discrete function W(I) is defined as follows (infinite precision values): For 24 kbit/s ADPCM, the discrete function W(I) is defined as follows (infinite precision values): For16 kbit/s APDCM, the discrete function W(I) is defined as follows (infinite precision values): The factor (1 – 2–5) introduces finite memory into the adaptive process so that the states of the encoder and decoder converge following transmission errors. The slow (locked) scale factor yl (k) is derived from yu (k) with a low pass-filter operation: The fast and slow scale factors are then combined to form the resultant scale factor: where 0 £ al (k) £ 1 (see § 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. 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: and For 40 kbit/s ADPCM, F[I (k)] is defined by: For 32 kbit/s ADPCM, F[I (k)] is defined by: For 24 kbit/s ADPCM, F[I (k)] is defined by: For 16 kbit/s ADPCM, F[I (k)] is defined by: Thus dms (k) is a relatively short term average of F[I (k)] and dml (k) is a relatively long term average of F[I(k)]. Using these two averages, the variable ap (k) is defined: