Field Guide · technology

Also known as: G.729, CS-ACELP

G.729 is the ITU-T speech codec that compresses telephone-band voice to 8 kbps using CS-ACELP — conjugate-structure algebraic code-excited linear prediction.1 It delivers near-toll-quality speech at one-eighth the bitrate of G.711, with low enough delay for interactive conversation, which made it a workhorse for VoIP and any telephony link where bandwidth is scarce.

10 ms frame LPCanalysis algebraic CB pitch CB 80bits
G.729 codes 10 ms frames by LPC analysis plus an adaptive pitch and algebraic fixed codebook, packing each frame into 80 bits for 8 kbps.

How it works

G.729 processes speech in 10 ms frames (80 samples at 8 kHz), coding each into 80 bits. It is an ACELP coder: short-term linear prediction captures the spectral envelope as line-spectral pairs, an adaptive codebook models the pitch periodicity, and an algebraic fixed codebook supplies the innovation, all chosen by perceptually weighted analysis-by-synthesis. The “conjugate structure” refers to the vector-quantised gain coding, which is designed to be robust to bit errors. Its ~15 ms algorithmic delay (one frame plus 5 ms look-ahead) is low enough not to disturb conversation.

Several annexes tailor it to real deployments. G.729A is a reduced-complexity, bitstream-compatible version that trades a small quality loss for far lighter computation, making software VoIP practical. G.729B adds voice activity detection (VAD), discontinuous transmission, and comfort-noise generation so the encoder stops sending during silence and the far end fills the gap with matched noise — typically combined as G.729AB. Companion rates of 6.4 and 11.8 kbps (Annexes D/E) trade bitrate against quality.

Relevance to SDR

G.729 is a VoIP and telephony compression codec, carried inside IP networks rather than over the air, so it is never demodulated from RF by a scanner. It belongs in this guide as the textbook 8 kbps ACELP coder — the clearest illustration of how algebraic CELP squeezes speech into a small, fixed-rate frame, the same principle that powers the AMR and TETRA vocoders a receiver may encounter. G.729 is patent-encumbered, which historically pushed open projects toward royalty-free alternatives. GopherTrunk does not use G.729 in its decode chain.

Sources

  1. G.729 — Wikipedia, on CS-ACELP, 10 ms/80-bit frames, the A/B/AB annexes, VAD/DTX, and companion bitrates. 

See also