G.722.1 Voice Compression Algorithm
G.722.1 audio coder encodes 16, and 32khz sampled audio signals for transmission over 16, 24, 32 and 48 kbps channels.
The G.722.1 audio codec is used with applications that require audio frequency bandwidth coding such as video conferencing, and speaker/microphone digital telephony. The G.722.1 algorithm is based on a transform technology known as the Modulated Lapped Transform (MLT).
FEATURES
- Functions are C-callable
- Multi -Channel Implementation.
- Completely re-entrant (Channel can interrupt any Channel, any time)
- Can be integrated with echo cancellers, VOX and tone detection/regeneration.
- The encoder and decoder meet all ITU G.722.1 compliance data files.
- Includes Frame Loss Concealment Algorithm
AVAILABILITY
ADT G.722.1 is available off the shelf on the following Platforms: Other configurations are available upon request.
Platform | High performance | High efficiency | Ultra-high efficiency |
---|---|---|---|
ARMv8-A | Cortex-A72 / A73 | Cortex-A53 | Cortex-A32 / A35 |
ARMv7-A | Cortex-A15 / A17 | Cortex-A8 / A9 | |
ARMv7-M | Cortex-M7 | Cortex-M3 / M4 / M33 | Cortex-M23 |
SPECIFICATIONS
ARM® DEVICES
G.722.1 ARM Cortex-A
CPU UTILIZATION & MEMORY REQUIREMENTSAll Memory usage is given in units of byte.
Function | 32khz (Annex C) (MIPS) | 16khz (MIPS) | Memory (bytes) | ||||||
---|---|---|---|---|---|---|---|---|---|
48kbps | 32kbps | 24kbps | 32kbps | 24kbps | 16kbps | Program | Data | Scratch | |
Encode | 19 | 18 | 15.5 | 10 | 9 | 9 | -- | -- | -- |
Decode | 19.5 | 18 | 16 | 9.5 | 8.5 | 8 | -- | -- | -- |
Encode/Decode | 38.5 | 36 | 31.5 | 19.5 | 19.5 | 17 | 46544 | 31450 | 6400 |
* With annex “C” defined.
PER CHANNEL MEMORY REQUIREMENTS All Memory usage is given in units of byte.G.722.1 Mode | Encoder | Decoder |
---|---|---|
Wideband (16Hz) | 656 | 1344 |
Ultra-Wideband (32Hz) | 1296 | 2624 |
G.722.1 ARM Cortex-M
CPU UTILIZATION & MEMORY REQUIREMENTS All Memory usage is given in units of byte.Function | MIPS Coding Rate | Program Memory | Data Memory | Per-Channel Data Memory | |
---|---|---|---|---|---|
24 Kbits | 32 Kbits | ||||
Encode | 28.2 | 28.9 | -- | -- | 648 |
Decode | 27.1 | 28.1 | -- | -- | 1312 |
Encode/Decode | 55.3 | 57.0 | 28318 | 20718 | 1950 |
DESCRIPTION
The Adaptive Digital Technologies G.722.1 Audio Coder is an implementation of the ITU G.722.1 standard. ADT’s G.722.1 coder is a high quality low-complexity algorithm that provides an audio bandwidth of 50Hz to 7kHz (to 14khz with Annex C), operating at a bit rate of 48 kbps (Annex C), 24 kbit/s or 32 kbit/s or 16 kbit/s (Not available in Annex C). This algorithm is recommended for use in hands-free applications such as conferencing where there is a low probability of frame loss. It is used with many applications that require audio frequency bandwidth coding such as video conferencing, multimedia, and speaker/microphone digital telephony. The G.722.1 audio coder encodes 16 kHz and 32khz sampled audio signals for transmission over 16, 24, 32 and 48 kbps channels, and provides 7 kHz /14khz of audio bandwidth.
G.722.1 OVERVIEW
The ITU-T G.722.1 recommendation is a wideband, audio
coding algorithm that can be utilized for services such as video conferencing,
teleconferencing, and Internet streaming applications. The recommendation
is capable of providing an audio bandwidth of 50 Hz to 7 kHz with Annex
C extending the maximum bandwidth to 14 kHz. At the current time, the ITU
is studying the G.722.1 FB extension, which would increase the maximum
bandwidth to 20 kHz and therefore, provide high-definition audio. The baseline
and Annex C flavors of G.722.1 are capable of operating at bit rates of
24 Kbits/s and 32 Kbits/s with the Annex C (14 kHz) extension capable of
operating at 48 Kbits/s.
The G.722.1 algorithm is based on a transform technology known as the Modulated
Lapped Transform (MLT). It is a critically sampled, perfect reconstruction,
linear transform. For a period of 20 ms and a maximum bandwidth of 7 kHz,
640 time domain samples are loaded into the MLT and the result is a frame
of 320 transform coefficients. These coefficients are then used by the algorithm
to compute a quantized amplitude envelope, which is divided into fourteen
regions and is a rough representation of the MLT spectrum. With only a set
number of bits available to a frame (based on the bit rate), any remaining
bits after the quantization and coding of the amplitude envelope are then
used to encode the transform coefficients in the categorization procedure
of the algorithm.
The categorization procedure determines the step-sizes for the quantization of the MLT coefficients and in addition, assigns a category to each of the fourteen regions in the frame. The purpose of assigning a category is to determine the quantization and coding parameters as well as the expected number of bits it will take to effectively represent the quantized transform coefficients in each region. Out of the sixteen possible categorizations sets that are computed within the algorithm, only one will be selected for transmission.
With the number of available bits fixed for a frame (depending on the bit rate), the frame will consist of the amplitude envelope bits, the categorization control bits, and the MLT coefficient bits. It is the decoder’s task to parse through these bits and determine the amplitude envelope, what category the MLT coefficients were assigned to, and lastly, the values of the quantized MLT coefficients. An inverse MLT is utilized to convert the 320 transform coefficients to 320 time domain audio samples.
The G.722.1 recommendation has three annexes that have been approved and one
that is under study by the ITU. Annex A discusses the format of a frame packet,
which was explained in the previous paragraph. In addition, this annex defines
the capability identifiers and parameters for both the baseline and extended
modes of G.722.1. Annex B focuses on the floating-point implementation of G.722.1.
This annex states that it is similar to the fixed-point implementation found
within the baseline explanation. As stated previously, Annex C extends the
maximum bandwidth to 14 kHz by doubling the sample rate (from 16 to 32 kHz),
the samples per frame (320 to 640), and the transform window (640 to 1280).
Lastly, Annex FB could involve increasing the sample rate, the samples per
frame, the transform window, or some other modification not discussed in the
G.722.1 recommendation.
Contributed by Ralph
M. Alfano
College of Engineering - Senior Electrical
Engineer
Villanova University
Click
for Resume

Coding Rate: 16, 24 and 32, 48 kbps
Sampling Rate: 16 kHz, 32 kHz
Delay: 20 microseconds
API function call summary
ResetG722_1 (…) Initializes the G.722.1 audio coder Channel structures
EncodeG722_1 (…) Executes the G.722.1 encoder
DecodeG722_1 (…) Executes the G.722.1 decoder