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.
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.