| G.729 | |
|---|---|
| Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP) | |
| Status | In force |
| Latest version | (10/17) October 2017 |
| Organization | ITU-T |
| Committee | ITU-T Study Group 16 |
| Related standards | G.191,G.711,G.729.1 |
| Domain | audio compression |
| License | Freely available |
| Website | https://www.itu.int/rec/T-REC-G.729 |
G.729 is aroyalty-free[1] narrow-bandvocoder-basedaudio data compression algorithm using a frame length of6.3 ms. It is officially described asCoding of speech at 8 kbit/s usingcode-excited linear predictionspeech coding (CS-ACELP), and was introduced in 1996.[2] The wide-band extension of G.729 is calledG.729.1, which equals G.729 Annex J.
Because of its low bandwidth requirements, G.729 is mostly used invoice over Internet Protocol (VoIP) applications when bandwidth must be conserved. Standard G.729 operates at abit rate of8 kbit/s, but extensions provide rates of6.4 kbit/s (Annex D, F, H, I, C+) and11.8 kbit/s (Annex E, G, H, I, C+) for worse and better speech quality, respectively.
G.729 has been extended with various features, commonly designated as G.729a and G.729b:
Dual-tone multi-frequency signaling (DTMF),fax transmissions, and high-quality audio cannot be transported reliably with thiscodec. DTMF requires the use of the named telephony events in the RTP payload for DTMF digits, telephony tones, and telephony signals as specified in RFC 4733.
| Functionality | G.729 Annexes[4] | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - | A | B | C | D | E | F | G | H | I | C+ | J | |
| Low complexity | X | X | ||||||||||
| Fixed-point | X | X | X | X | X | X | X | X | X | X | ||
| Floating-point | X | X | ||||||||||
| 8 kbit/s | X | X | X | X | X | X | X | X | X | X | X | X |
| 6.4 kbit/s | X | X | X | X | X | |||||||
| 11.8 kbit/s | X | X | X | X | X | |||||||
| DTX | X | X | X | X | X | |||||||
| Embedded variable bit rate, wideband | X | |||||||||||
G.729a is a compatible extension of G.729, but requires less computational power. This lower complexity, however, bears the cost of marginally reduced speech quality.
G.729a was developed by a consortium of organizations:France Télécom,Mitsubishi Electric Corporation,Nippon Telegraph and Telephone Corporation (NTT).
The features of G.729a are:
Some VoIP phones incorrectly use the description "G729a/8000" inSDP (e.g. this affects some Cisco and Linksys phones). This is incorrect as G729a is an alternative method of encoding the audio, but still generates data decodable by either G729 or G729a - i.e. there is no difference in terms of codec negotiation. Since the SDP RFC allows static payload types to be overridden by the textual rtpmap description this can cause problems calling from these phones to endpoints adhering to the RFC unless the codec is renamed in their settings since they will not recognise 'G729a' as 'G729' without a specific workaround in place for the bug.
G.729 has been extended in Annex B (G.729b) which provides asilence compression method that enables avoice activity detection (VAD) module. It is used to detect voice activity in the signal. It also includes adiscontinuous transmission (DTX) module which decides on updating thebackground noise parameters for non speech (noisy frames). It uses 2-byte Silence Insertion Descriptor (SID)frames transmitted to initiatecomfort noise generation (CNG). If transmission is stopped, and the link goes quiet because of no speech, the receiving side might assume that the link has been cut. By inserting comfort noise, analog hiss is simulated digitally during silence to assure the receiver that the link is active and operational.
G.729 Annex J, maintained byG.729.1, provides support forwideband speech and audio. Introduced in 2006,[3] it defines variable bit-rate wideband enhancement using up to 12 hierarchical layers. The core layer is an8 kbit/s G.729 bitstream, the second layer is a4 kbit/snarrowband enhancement layer, and the third2 kbit/s layer is a bandwidth enhancement layer. Further layers provide wideband enhancement in2 kbit/s steps. The G.729.1 uses three-stage coding: embeddedcode-excited linear prediction (CELP) coding of the lower band, parametric coding of the higher band by Time-Domain Bandwidth Extension (TDBWE), and enhancement of the full band by a predictivetransform coding algorithm calledtime-domain aliasing cancellation (TDAC), also known asmodified discrete cosine transform (MDCT) coding.[3] Bit rate and the obtained quality are adjustable by simple bitstream truncation.
As of January 1, 2017, the patent terms of most licensedpatents under the G.729 Consortium have expired, the remaining unexpired patents are usable on aroyalty-free basis.[5] G.729 includes patents from several companies which were until the expiry licensed by Sipro Lab Telecom, the authorized Intellectual Property Licensing Administrator for G.729 technology andpatent pool.[6][7][8][9]
AIM IP LLC, aCaliforniaLimited Liability Company based inMission Viejo, CA[10] filed 17patent infringement lawsuits[11] in the Central District Courts of California accusing 22 different companies, including,Cisco Systems,Polycom and others of infringing U.S. Patent No. 5,920,853.[12][13] The '853 patent was filed at theUnited States Patent and Trademark Office in 1996 byRockwell International. The inventors listed on the '853 patent are Benyassine Adil, Su Huan-Yu and Shlomot Eyal.[14]
In 2000, the '853 patent was assigned byRockwell International toConexant Systems,[15] an American-based software developer and fabless semiconductor company, which began as a division of Rockwell before being spun-off as its ownpublic company.[16] In 2010, the '853 patent was sold byConexant Systems to AIM IP LLC, aCaliforniaLimited Liability Company based inMission Viejo.[15]
The '853 patent containspatent claims which cover lookup tables used in G.729. The patent has since expired and is no longer in force due to itspatent term expiring.[17]
G.729 is assigned the static payload type 18 forRTP byIANA.[18] The rtpmap parameter description for this payload type is "G729/8000".
Both G.729a and G.729b use the same rtpmap description as G.729. G.729a and G.729b are indicated using annexb=no or annexb=yes, respectively. G.729 Annex B (G.729b) is the default in absence of parameterannexb in theSession Description Protocol.[19]
{{cite journal}}:Cite journal requires|journal= (help)