Archive for the ‘G.729’ Category

G.729 Overview / Primer

Friday, April 10th, 2009

G.729 is an audio data compression algorithm for voice that compresses voice audio in packets of 10 milliseconds duration. Music or DTMF tones can only be transported reliably with this codec using the RTP Payload for DTMF Digits, Telephony Tones, and Telephony Signals as specified in RFC 2833, however standard G3 Fax at 14,400 bit/s cannot be transmitted with complete reliability using the G.729 codec, G3 Fax is typically transmitted with the use of G.711 as the transport mechanism in voip. Under heavy network loading if packets are lost analog FAX can become very unreliable. T38 Fax has been proposed to alleviate the reliability issue.

G.729 is mostly used in Voice over IP (VoIP) applications for its low bandwidth requirement. Standard G.729 operates at 8 kbit/s, but there are extensions, which provide rates of 6.4 kbit/s and 11.8 kbit/s for marginally worse and better speech quality respectively. Also very common is G.729a which is compatible with G.729, but requires somewhat less computation power. This lower complexity is not free since speech quality is marginally worsened.

MORE INFO:

The G.729 speech coder is an 8 kbps Conjugate-Structure Algebraic-Code-Excited Linear Prediction (CS-ACELP) speech compression algorithm approved by ITU-T. G.729 offers high quality, robust speech performance at the price of complexity. It requires 10 ms input frames and generates frames of 80 bits in length. With the G.729 coder processing signals in 10 ms frames and a 5 ms look-ahead, the total algorithmic delay is 15 ms.

The Algorithm

Since G.729 is based on the Code-Excited Linear Prediction (CELP) model, each 80 bit frame produced contains linear prediction coefficients, excitation code book indices, and gain parameters that are used by the decoder in order to reproduce speech. The inputs/outputs of this algorithm are 16 bit linear PCM samples that are converted from/to an 8 kbps compressed data stream.

Extensions

G.729 Annex A specifies a reduced complexity G.729A coder with several simplifications, involving code book search routines and the decoder postfilter among others. These modifications may result in slightly lower voice quality. G.729 Annex B defines a G.729B coder that uses Discontinuous Transmission (DTX), Voice Activity Detection (VAD), and Comfort Noise Generation (CNG) to reduce bandwidth usage by preventing the transmission of any non-voice frames during periods of silence. Note that G.729 Annex D uses 6.4 kbps CS-ACELP compression and G.729 Annex E uses 11.8 kbps CS-ACELP compression.

G.729 is designed and optimized to work in conjunction with Recommendation V.70. Recommendation V.70 mandates the use of Annex A/G.729 (G.729A) speech coding methods. However, when necessary the full version of Recommendation G.729 can also be used to improve the quality of the speech.

Features

  • Compliant with G.729, Annex A, Annex B specifications
  • MIPS / memory requirements for various platforms are available
  • PSQM/PSQM+Values under different network conditions are also available.
  • Full and half duplex modes of operation
  • Passes ITU test vectors
  • Optimized for high performance on leading edge DSP architectures
  • Multichannel implementation
  • Multi-tasking environment compatible

Configurations

  • DAA interface using linear codec at 8.0 kHz sample rate
  • Direct interface to 8.0 kHz PCM data stream (A-law or U-law)
  • North American/International Telephony (including caller ID) support available
  • Simultaneous DTMF detector operation available - (less than 150 hits on Bellcore test tape typical)
  • MF tone detectors, general purpose programmable tone detectors/generators available
  • Data/Facsimile/Voice Distinction available
  • Common compressed speech frame stream interface to support systems with multiple speech coders
  • Dynamic speech coders selection if multiple speech codecs available
  • Can be integrated with G.168 Echo Canceller and Tone Detection/Regeneration modules
  • Multiple ports can be executed on a single DSP