G.729 is an ITU-T algorithm for voice encoding that produces an 80-bit voice sample every 10 msec (bit rate of 8 kbps). The codec works in blocks of 10 msec and so it is possible to generate frames of multiple 10 msec duration.
G.729 is an audio data compression algorithm for voice that compresses voice audio in chunks of 10 milliseconds. Music or tones such as DTMF or fax tones cannot be transported reliably with this codec, and thus use G.711 or out-of-band methods to transport these signals.
G.729 is mostly used in Voice over IP applications for its low bandwidth requirement. Standard G.729 operates at 8 kbit/s, but there are extensions, which provide also 6.4 kbit/s and 11.8 kbit/s rates for marginally worse and better speech quality respectively. Also very common is G.729a which is compatible with G.729, but requires less computation. This lower complexity is not free since speech quality is marginally worsened.
The annex B of G.729 is a silence compression scheme, which has a VAD module which is used to detect voice activity, speech or non speech. It also includes a DTX module which decides on updating the background noise parameters for non speech (noisy frames). These frames which are transmitted to update the background noise parameters are called SID frames. A comfort noise generator (CNG) is also there because in a communication channel, if transmission is stopped, because it's not speech, then the other side may assume that link has been cut. This is also taken care of by the annex B standard.
Recently, G.729 has been extended to provide support for wideband speech and audio coding, i.e., the transmitted acoustic frequency range is extended to 50 Hz - 7 kHz. The respective extension to G.729 is referred to as G.729.1. The G.729.1 coder is hierarchically organized: Its bit rate and the obtained quality are adjustable by simple bitstream truncation.