Jump to content

G.729: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Added non-breaking space to non-template file size, frequency, bitrate, and bandwidth values (via WP:JWB)
 
(67 intermediate revisions by 28 users not shown)
Line 1: Line 1:
{{short description|ITU-T Recommendation}}
'''G.729''' is a [[public domain]]<ref>https://www.mgraves.org/2017/03/its-official-the-patents-on-g-729-have-expired/</ref> [[audio data compression]] algorithm for voice that compresses digital voice in packets of 10 milliseconds duration. It is officially described as ''Coding of speech at 8 kbit/s using [[code-excited linear prediction]]'' [[speech coding]] (CS-ACELP).<ref>International Telecommunications Union, Standardization Sector (ITU-T), Study Group 15 (1993-1996), ''Recommendation G.729'', March 1996.</ref>
{{Infobox technology standard
| title = G.729
| long_name = Coding of speech at 8&nbsp;kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP)
| image = Pcm.svg
| caption =
| status = In force
| year_started =
| version = (10/17)
| version_date = October 2017
| preview =
| preview_date =
| organization = [[ITU-T]]
| committee = [[ITU-T Study Group 16]]
| base_standards =
| related_standards = [[G.191]], [[G.711]], [[G.729.1]]
| abbreviation =
| domain = [[audio compression (data)|audio compression]]
| license = Freely available
| website = https://www.itu.int/rec/T-REC-G.729
}}
'''G.729''' is a [[royalty-free]]<ref>{{cite web|url=https://www.mgraves.org/2017/03/its-official-the-patents-on-g-729-have-expired/|title=It's Official! The patents on G.729 have expired|author=Michael Graves|date=March 6, 2017}}</ref> narrow-band [[vocoder]]-based [[audio data compression]] algorithm using a frame length of 10 milliseconds. It is officially described as ''Coding of speech at 8&nbsp;kbit/s using [[code-excited linear prediction]]'' [[speech coding]] (CS-ACELP), and was introduced in 1996.<ref>{{Cite web|title=G.729: Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP)|url=https://www.itu.int/rec/T-REC-G.729|url-status=live|archive-url=https://web.archive.org/web/20210406195519/https://www.itu.int/rec/T-REC-G.729|archive-date=2021-04-06|access-date=2021-04-06|website=www.itu.int}}</ref> The wide-band extension of G.729 is called [[G.729.1]], which equals G.729 Annex J.


Because of its low bandwidth requirements, G.729 is mostly used in [[voice over Internet Protocol]] (VoIP) applications when bandwidth must be conserved, such as for [[conference call]]s. Standard G.729 operates at a [[bit rate]] of 8 kbit/s, but extensions provide rates of 6.4 kbit/s (Annex D, F, H, I, C+) and 11.8 kbit/s (Annex E, G, H, I, C+) for worse and better speech quality, respectively.
Because of its low bandwidth requirements, G.729 is mostly used in [[voice over Internet Protocol]] (VoIP) applications when bandwidth must be conserved. Standard G.729 operates at a [[bit rate]] of 8&nbsp;kbit/s, but extensions provide rates of 6.4&nbsp;kbit/s (Annex D, F, H, I, C+) and 11.8&nbsp;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:
G.729 has been extended with various features, commonly designated as G.729a and G.729b:
* G729: This is the original codec using a high-complexity algorithm.
* G.729: This is the original codec using a high-complexity algorithm.
* G729A or A annex: This version has a medium complexity, and is compatible with G729. It provides a slightly lower voice quality.
* G.729A or Annex A: This version has a medium complexity, and is compatible with G.729. It provides a slightly lower voice quality.
* G729B or B annex: This version extends G729 with [[silence suppression]], and is not compatible with the previous versions.
* G.729B or Annex B: This version extends G.729 with [[silence suppression]], and is not compatible with the previous versions.
* G729AB: This version extends G729A with silence suppression, and is only compatible with G729B.
* G.729AB: This version extends G.729A with silence suppression, and is only compatible with G.729B.
* [[G.729.1]] or Annex J: This version extends G.729A and B with scalable variable encoding using hierarchical enhancement layers. It provides support for [[wideband]] speech and audio, using [[modified discrete cosine transform]] (MDCT) coding.<ref name="Nagireddi"/>


[[Dual-tone multi-frequency signaling]] (DTMF), [[fax]] transmissions, and high-quality audio cannot be transported reliably with this [[codec]]. 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.
[[Dual-tone multi-frequency signaling]] (DTMF), [[fax]] transmissions, and high-quality audio cannot be transported reliably with this [[codec]]. 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.
Line 14: Line 36:
{| class="wikitable"
{| class="wikitable"
|- style="text-align: center; width: auto;"
|- style="text-align: center; width: auto;"
! rowspan="2" style="background:#F0D0D0; text-align:center;" | Functionality !! colspan="12" style="background:#F0D0D0; text-align:center;" | G.729 Annexes <ref name="g729-2007-01">{{cite journal | author = [[ITU-T]] | title = G.729 : Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP) | publisher = | date = January 2007 | url = https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-G.729-201206-I!!SOFT-ZST-E&type=items | format = PDF | page = i | accessdate = 2009-07-21 }}</ref>
! rowspan="2" style="background:#F0D0D0; text-align:center;" | Functionality !! colspan="12" style="background:#F0D0D0; text-align:center;" | G.729 Annexes <ref name="g729-2007-01">{{cite journal | author = ITU-T | author-link = ITU-T | title = G.729 : Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP) | date = January 2007 | url = https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-G.729-201206-I!!SOFT-ZST-E&type=items | format = PDF | page = i | access-date = 2009-07-21 }}</ref>
|-
|-
! style="background:#F0D0D0;" | - !! style="background:#F0D0D0;" | A !! style="background:#F0D0D0;" | B !! style="background:#F0D0D0;" | C !! style="background:#F0D0D0;" | D !! style="background:#F0D0D0;" | E !! style="background:#F0D0D0;" | F !! style="background:#F0D0D0;" | G !! style="background:#F0D0D0;" | H !! style="background:#F0D0D0;" | I !! style="background:#F0D0D0;" | C+!! style="background:#F0D0D0;" | J
! style="background:#F0D0D0;" | - !! style="background:#F0D0D0;" | A !! style="background:#F0D0D0;" | B !! style="background:#F0D0D0;" | C !! style="background:#F0D0D0;" | D !! style="background:#F0D0D0;" | E !! style="background:#F0D0D0;" | F !! style="background:#F0D0D0;" | G !! style="background:#F0D0D0;" | H !! style="background:#F0D0D0;" | I !! style="background:#F0D0D0;" | C+!! style="background:#F0D0D0;" | J
Line 38: Line 60:
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 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 Telecom, Mitsubishi Electric Corporation, Nippon Telegraph and Telephone Corporation (NTT)
G.729a was developed by a consortium of organizations: [[Orange S.A.|France Télécom]], [[Mitsubishi Electric|Mitsubishi Electric Corporation]], [[Nippon Telegraph and Telephone|Nippon Telegraph and Telephone Corporation (NTT)]].


The features of G.729a are:
The features of G.729a are:
* Sampling frequency 8&nbsp;kHz/16-bit (80 samples for 10 ms frames)
* Sampling frequency 8&nbsp;kHz/16-bit (80 samples for 10 ms frames)
* Fixed bit rate (8 kbit/s 10 ms frames)
* Fixed bit rate (8&nbsp;kbit/s 10 ms frames)
* Fixed frame size (10 bytes for 10 ms frame)
* Fixed frame size (10 bytes (80 bits) for 10 ms frame)
* Algorithmic delay is 15 ms per frame, with 5 ms look-ahead delay
* Algorithmic delay is 15 ms per frame, with 5 ms look-ahead delay
* G.729a is a hybrid speech coder which uses [[Algebraic Code Excited Linear Prediction]] (ACELP)
* G.729a is a hybrid speech coder which uses [[Algebraic Code Excited Linear Prediction]] (ACELP)
* The complexity of the algorithm is rated at 15, using a relative scale where [[G.711]] is 1 and [[G.723.1]] is 25.
* The complexity of the algorithm is rated at 15, using a relative scale where [[G.711]] is 1 and [[G.723.1]] is 25.
* [[PSQM]] testing under ideal conditions yields [[Mean Opinion Score]]s of 4.04 for G.729a, compared to 4.45 for [[G.711]] (μ-law)
* [[PSQM]] testing under ideal conditions yields [[mean opinion score]]s of 4.04 for G.729a, compared to 4.45 for [[G.711]] (μ-law){{citation needed|date=October 2019}}
* PSQM testing under network stress yields Mean Opinion Scores of 3.51 for G.729a, compared to 4.13 for [[G.711]] (μ-law)
* PSQM testing under network stress yields mean opinion scores of 3.51 for G.729a, compared to 4.13 for [[G.711]] (μ-law)


Some VoIP phones incorrectly use the description "G729a/8000" in [[Session Description Protocol|SDP]] (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 adherring 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.
Some VoIP phones incorrectly use the description "G729a/8000" in [[Session Description Protocol|SDP]] (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 Annex B===
===G.729 Annex B===
G.729 has been extended in Annex B (G.729b) which provides a [[silence]] compression method that enables a [[voice activity detection]] (VAD) module. It is used to detect voice activity in the signal. It also includes a [[discontinuous transmission]] (DTX) module which decides on updating the [[ambient noise level|background noise]] parameters for non speech (noisy frames). It uses 2-byte Silence Insertion Descriptor (SID) [[frame (telecommunication)|frames]] transmitted to initiate [[comfort 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 has been extended in Annex B (G.729b) which provides a [[silence compression]] method that enables a [[voice activity detection]] (VAD) module. It is used to detect voice activity in the signal. It also includes a [[discontinuous transmission]] (DTX) module which decides on updating the [[ambient noise level|background noise]] parameters for non speech (noisy frames). It uses 2-byte Silence Insertion Descriptor (SID) [[frame (telecommunication)|frames]] transmitted to initiate [[comfort 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.


===Other extensions===
===G.729 Annex J (G.729.1)===
{{main|G.729.1}}
Recently, G.729 has been extended (with Annex J) to provide support for wideband speech and audio coding, i.e., the transmitted acoustic frequency range is extended to 50&nbsp;Hz - 7&nbsp;kHz. The respective extension to G.729 is referred to as [[G.729.1]]. The G.729.1 codec is hierarchically organized: Its bit rate and the obtained quality are adjustable by simple bitstream truncation.

G.729 Annex J, maintained by [[G.729.1]], provides support for [[wideband]] speech and audio. Introduced in 2006,<ref name="Nagireddi">{{cite book |last1=Nagireddi |first1=Sivannarayana |title=VoIP Voice and Fax Signal Processing |date=2008 |publisher=[[John Wiley & Sons]] |isbn=9780470377864 |page=69 |url=https://books.google.com/books?id=5AneeZFE71MC&pg=PA69}}</ref> it defines variable bit-rate wideband enhancement using up to 12 hierarchical layers. The core layer is an 8&nbsp;kbit/s G.729 bitstream, the second layer is a 4&nbsp;kbit/s [[narrowband]] enhancement layer, and the third 2 kibt/s layer is a bandwidth enhancement layer. Further layers provide wideband enhancement in 2&nbsp;kbit/s steps. The G.729.1 uses three-stage coding: embedded [[code-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 predictive [[transform coding]] algorithm called [[time-domain aliasing cancellation]] (TDAC), also known as [[modified discrete cosine transform]] (MDCT) coding.<ref name="Nagireddi"/> Bit rate and the obtained quality are adjustable by simple bitstream truncation.


==Licensing==
==Licensing==
G.729 includes [[Software patent|patents]] from several companies and is licensed by Sipro Lab Telecom. Sipro Lab Telecom is the authorized Intellectual Property Licensing Administrator for G.729 technology and [[patent pool]].<ref>[http://www.sipro.com Sipro Lab Telecom Website]</ref><ref name="sipro">{{cite web|author=VoiceAge Corporation |url=http://www.voiceage.com/licg729.php |title=G.729 Licensing |date=2007-10-14 |accessdate=2009-09-17 |archiveurl=https://web.archive.org/web/20071014162058/http://www.voiceage.com/licg729.php |archivedate=2007-10-14 |deadurl=yes |df= }}</ref><ref name="siprolab-faq">{{cite web|author=Sipro Lab Telecom |url=http://www.sipro.com/faq.php |title=FAQ G.729 and G.723.1 |date=2007-10-25 |accessdate=2009-09-17 |archiveurl=https://web.archive.org/web/20071025051836/http://www.sipro.com/faq.php |archivedate=2007-10-25 |deadurl=yes |df= }}</ref><ref name="siprolab-g729">{{cite web|author=Sipro Lab Telecom |url=http://www.sipro.com/g729onestop.php |title=G.729 IPR Pool |date=2006-10-29 |accessdate=2009-09-17 |archiveurl=https://web.archive.org/web/20061029005724/http://www.sipro.com/g729onestop.php |archivedate=2006-10-29 |deadurl=yes |df= }}</ref>
As of January 1, 2017, the patent terms of most licensed [[Software patent|patents]] under the G.729 Consortium have expired, the remaining unexpired patents are usable on a [[royalty-free]] basis.<ref>{{cite web|author=Sipro Lab Telecom |url=http://www.sipro.com/G729.html |title=About G.729 |date=2017-01-28 |archive-url=https://web.archive.org/web/20170202062530/http://www.sipro.com/G729.html |archive-date=2017-02-02}}</ref> 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 and [[patent pool]].<ref>{{Cite web |url=http://www.sipro.com/ |title=Sipro Lab Telecom Website |access-date=2007-03-31 |archive-url=https://web.archive.org/web/20121225140523/http://www.sipro.com/ |archive-date=2012-12-25 |url-status=dead }}</ref><ref name="sipro">{{cite web|author=VoiceAge Corporation |url=http://www.voiceage.com/licg729.php |title=G.729 Licensing |date=2007-10-14 |access-date=2009-09-17 |archive-url=https://web.archive.org/web/20071014162058/http://www.voiceage.com/licg729.php |archive-date=2007-10-14 |url-status=dead }}</ref><ref name="siprolab-faq">{{cite web|author=Sipro Lab Telecom |url=http://www.sipro.com/faq.php |title=FAQ G.729 and G.723.1 |date=2007-10-25 |access-date=2009-09-17 |archive-url=https://web.archive.org/web/20071025051836/http://www.sipro.com/faq.php |archive-date=2007-10-25 |url-status=dead }}</ref><ref name="siprolab-g729">{{cite web|author=Sipro Lab Telecom |url=http://www.sipro.com/g729onestop.php |title=G.729 IPR Pool |date=2006-10-29 |access-date=2009-09-17 |archive-url=https://web.archive.org/web/20061029005724/http://www.sipro.com/g729onestop.php |archive-date=2006-10-29 |url-status=dead }}</ref>


===Past patent litigation===
As of January 1, 2017 the patent terms of most Licensed Patents under the G.729 Consortium have expired, the remaining unexpired patents are usable on a royalty-free basis.<ref>{{cite web|author=Sipro Lab Telecom |url=http://www.sipro.com/G729.html |title=About G.729 |date=2017-01-28}}</ref> Thus, G.729 can be used free-of-charge.
AIM IP LLC, a [[California]] [[Limited Liability Company]] based in [[Mission Viejo]], CA<ref name="California Secretary of State Database">{{cite web|url=https://businesssearch.sos.ca.gov/CBS/SearchResults?SearchType=LPLLC&SearchCriteria=aim+ip+llc&SearchSubType=Keyword|title=Business Search - Results|website=Business Search - Business Entities - Business Programs {{!}} California Secretary of State}}</ref> filed 17 [[patent infringement]] lawsuits<ref name="RPX Patent Database">{{Cite web|url=https://insight.rpxcorp.com/patent/US5920853A|title=US 5,920,853 A - Signal compression using index mapping technique for the sharing of quantization tables &#124; RPX Insight}}</ref> 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.<ref name="RPX Litigation Database">{{Cite web|url=https://insight.rpxcorp.com/advanced_search/search_litigations|title=Patent Litigations Search &#124; RPX Insight|website=insight.rpxcorp.com}}</ref><ref name="Priorsmart.com">{{cite web|url=http://news.priorsmart.com/aim-ip-v-cisco-systems-l3Tu/|title=Aim Ip LLC v. Cisco Systems Inc et. al. patent lawsuit|archive-url=https://web.archive.org/web/20140201191615/http://news.priorsmart.com/aim-ip-v-cisco-systems-l3Tu/|archive-date=February 1, 2014}}</ref> The '853 patent was filed at the [[United States Patent and Trademark Office]] in 1996 by [[Rockwell International]]. The inventors listed on the '853 patent are Benyassine Adil, Su Huan-Yu and Shlomot Eyal.<ref name="USPTO Issued Patent 5,920,853">{{Cite web|url=https://ppubs.uspto.gov/pubwebapp/enwiki/static/pages/landing.html|title=Patent Public Search &#124; USPTO|website=ppubs.uspto.gov}}</ref>


In 2000, the '853 patent was assigned by [[Rockwell International]] to [[Conexant Systems]],<ref name="853-patent-assignments">{{Cite web|url=https://assignment.uspto.gov/patent/index.html#/patent/search/resultAbstract?id=5920853&type=patNum|title=United States Patent and Trademark Office|website=assignment.uspto.gov}}</ref> an American-based software developer and fabless semiconductor company, which began as a division of Rockwell before being spun-off as its own [[public company]].<ref>{{cite web|url=https://www.eetimes.com/document.asp?doc_id=1119907|title=Rockwell Semi spin-off Conexant will target communications IC market|author=Mark Lapedus|date=November 10, 1998|website=[[EE Times]]}}</ref> In 2010, the '853 patent was sold by [[Conexant Systems]] to AIM IP LLC, a [[California]] [[Limited Liability Company]] based in [[Mission Viejo]].<ref name="853-patent-assignments"/>
==Patent litigation==
AIM IP, a non-practicing entity based in Mission Viejo, CA has made complaints for infringement of U.S. Patent No. 5,920,853 to a number of companies
.<ref name="Essential Patent Blog">[http://essentialpatentblog.com/2013/02/non-practicing-entity-aim-ip-files-new-infringement-suits-over-voip-standard-essential-patent/#more-850]</ref><ref name="Priorsmart.com">[http://news.priorsmart.com/aim-ip-v-cisco-systems-l3Tu/]</ref> The patent contains lookup tables including the sequence 1486, 2168, 3751... which is integral to g.729.<ref name="ITU">[http://www.itu.int/rec/T-REC-G.729-199611-S!AnnA/en]</ref>


The '853 patent contains [[patent claim]]s which cover lookup tables used in G.729. The patent has since expired and is no longer in force due to its [[patent term]] expiring.<ref name="United States Patent and Trademark Office Assignment Record Database">{{cite web|url=https://patents.google.com/patent/US5920853|title=US5920853A - Signal compression using index mapping technique for the sharing of quantization tables|website=[[Google Patents]]}}</ref>
The European counterpart of this patent, according to Google patent records appears to have been withdrawn:<ref>[http://www.google.com/patents/EP0825722A1]</ref>


==RTP payload type==
==RTP payload type==
G.729 is assigned the static payload type 18 for [[Real-time Transport Protocol|RTP]] by [[Internet Assigned Numbers Authority|IANA]].<ref>{{cite web|url=http://www.iana.org/assignments/rtp-parameters/rtp-parameters.xml |title=Real-Time Transport Protocol (RTP) Parameters |publisher=Iana.org |date= |accessdate=2013-09-18}}</ref> The rtpmap parameter description for this payload type is "G729/8000".
G.729 is assigned the static payload type 18 for [[Real-time Transport Protocol|RTP]] by [[Internet Assigned Numbers Authority|IANA]].<ref>{{cite web|url=https://www.iana.org/assignments/rtp-parameters/rtp-parameters.xml |title=Real-Time Transport Protocol (RTP) Parameters |publisher=Iana.org |access-date=2013-09-18}}</ref> 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 parameter ''annexb'' in the [[Session Description Protocol]].<ref name="rfc3555">{{cite web |author=S. Casner, P. Hoschka |url=http://tools.ietf.org/html/rfc3555#section-4.1.9|title=MIME Type Registration of RTP Payload Formats |date=July 2003 |accessdate=2013-02-27}}</ref>
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 parameter ''annexb'' in the [[Session Description Protocol]].<ref name="rfc3555">{{cite web |author=S. Casner, P. Hoschka |url=http://tools.ietf.org/html/rfc3555#section-4.1.9|title=MIME Type Registration of RTP Payload Formats |date=July 2003 |access-date=2013-02-27}}</ref>


==See also==
==See also==
Line 80: Line 103:


==References==
==References==
{{reflist}}
{{Reflist}}


==External links==
==External links==
* [http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-G.729 ITU-T Recommendation G.729] - technical specification
* [http://www.itu.int/rec/recommendation.asp?type=folders&lang=e&parent=T-REC-G.729 ITU-T Recommendation G.729] - technical specification.
* [http://www.cs.columbia.edu/techreports/cucs-016-01.pdf#search=%22g.729%20error%20recovery%20for%20internet%20telephony%22 G.729 Error Recovery for Internet Telephony]
* [https://web.archive.org/web/20081030043328/http://www.cs.columbia.edu/techreports/cucs-016-01.pdf#search=%22g.729%20error%20recovery%20for%20internet%20telephony%22 G.729 Error Recovery for Internet Telephony]
* [http://www.itu.int/ITU-T/dbase/patent/index.html ITU Patent database]
* [http://www.itu.int/ITU-T/dbase/patent/index.html ITU Patent database]
* [http://www.sipro.com/ Sipro Lab Telecom (administers the patent pools for G.723.1 and G.729)]
* [https://web.archive.org/web/20121225140523/http://www.sipro.com/ Sipro Lab Telecom (administers the patent pools for G.723.1 and G.729)]
* [http://www.voiceage.com/openinit_g729.php Voiceage's G.729 implementation]
* [http://www.voiceage.com/openinit_g729.php Voiceage's G.729 implementation]


Line 94: Line 117:
[[Category:Speech codecs]]
[[Category:Speech codecs]]
[[Category:ITU-T recommendations]]
[[Category:ITU-T recommendations]]
[[Category:ITU-T G Series Recommendations]]

Latest revision as of 21:37, 25 April 2024

G.729
Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP)
StatusIn force
Latest version(10/17)
October 2017
OrganizationITU-T
CommitteeITU-T Study Group 16
Related standardsG.191, G.711, G.729.1
Domainaudio compression
LicenseFreely available
Websitehttps://www.itu.int/rec/T-REC-G.729

G.729 is a royalty-free[1] narrow-band vocoder-based audio data compression algorithm using a frame length of 10 milliseconds. It is officially described as Coding of speech at 8 kbit/s using code-excited linear prediction speech coding (CS-ACELP), and was introduced in 1996.[2] The wide-band extension of G.729 is called G.729.1, which equals G.729 Annex J.

Because of its low bandwidth requirements, G.729 is mostly used in voice over Internet Protocol (VoIP) applications when bandwidth must be conserved. Standard G.729 operates at a bit rate of 8 kbit/s, but extensions provide rates of 6.4 kbit/s (Annex D, F, H, I, C+) and 11.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:

  • G.729: This is the original codec using a high-complexity algorithm.
  • G.729A or Annex A: This version has a medium complexity, and is compatible with G.729. It provides a slightly lower voice quality.
  • G.729B or Annex B: This version extends G.729 with silence suppression, and is not compatible with the previous versions.
  • G.729AB: This version extends G.729A with silence suppression, and is only compatible with G.729B.
  • G.729.1 or Annex J: This version extends G.729A and B with scalable variable encoding using hierarchical enhancement layers. It provides support for wideband speech and audio, using modified discrete cosine transform (MDCT) coding.[3]

Dual-tone multi-frequency signaling (DTMF), fax transmissions, and high-quality audio cannot be transported reliably with this codec. 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.

G.729 annexes

[edit]
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.729 Annex A

[edit]

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:

  • Sampling frequency 8 kHz/16-bit (80 samples for 10 ms frames)
  • Fixed bit rate (8 kbit/s 10 ms frames)
  • Fixed frame size (10 bytes (80 bits) for 10 ms frame)
  • Algorithmic delay is 15 ms per frame, with 5 ms look-ahead delay
  • G.729a is a hybrid speech coder which uses Algebraic Code Excited Linear Prediction (ACELP)
  • The complexity of the algorithm is rated at 15, using a relative scale where G.711 is 1 and G.723.1 is 25.
  • PSQM testing under ideal conditions yields mean opinion scores of 4.04 for G.729a, compared to 4.45 for G.711 (μ-law)[citation needed]
  • PSQM testing under network stress yields mean opinion scores of 3.51 for G.729a, compared to 4.13 for G.711 (μ-law)

Some VoIP phones incorrectly use the description "G729a/8000" in SDP (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 Annex B

[edit]

G.729 has been extended in Annex B (G.729b) which provides a silence compression method that enables a voice activity detection (VAD) module. It is used to detect voice activity in the signal. It also includes a discontinuous transmission (DTX) module which decides on updating the background noise parameters for non speech (noisy frames). It uses 2-byte Silence Insertion Descriptor (SID) frames transmitted to initiate comfort 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 (G.729.1)

[edit]

G.729 Annex J, maintained by G.729.1, provides support for wideband speech and audio. Introduced in 2006,[3] it defines variable bit-rate wideband enhancement using up to 12 hierarchical layers. The core layer is an 8 kbit/s G.729 bitstream, the second layer is a 4 kbit/s narrowband enhancement layer, and the third 2 kibt/s layer is a bandwidth enhancement layer. Further layers provide wideband enhancement in 2 kbit/s steps. The G.729.1 uses three-stage coding: embedded code-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 predictive transform coding algorithm called time-domain aliasing cancellation (TDAC), also known as modified discrete cosine transform (MDCT) coding.[3] Bit rate and the obtained quality are adjustable by simple bitstream truncation.

Licensing

[edit]

As of January 1, 2017, the patent terms of most licensed patents under the G.729 Consortium have expired, the remaining unexpired patents are usable on a royalty-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 and patent pool.[6][7][8][9]

Past patent litigation

[edit]

AIM IP LLC, a California Limited Liability Company based in Mission Viejo, CA[10] filed 17 patent 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 the United States Patent and Trademark Office in 1996 by Rockwell 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 by Rockwell International to Conexant Systems,[15] an American-based software developer and fabless semiconductor company, which began as a division of Rockwell before being spun-off as its own public company.[16] In 2010, the '853 patent was sold by Conexant Systems to AIM IP LLC, a California Limited Liability Company based in Mission Viejo.[15]

The '853 patent contains patent claims which cover lookup tables used in G.729. The patent has since expired and is no longer in force due to its patent term expiring.[17]

RTP payload type

[edit]

G.729 is assigned the static payload type 18 for RTP by IANA.[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 parameter annexb in the Session Description Protocol.[19]

See also

[edit]

References

[edit]
  1. ^ Michael Graves (March 6, 2017). "It's Official! The patents on G.729 have expired".
  2. ^ "G.729: Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP)". www.itu.int. Archived from the original on 2021-04-06. Retrieved 2021-04-06.
  3. ^ a b c Nagireddi, Sivannarayana (2008). VoIP Voice and Fax Signal Processing. John Wiley & Sons. p. 69. ISBN 9780470377864.
  4. ^ ITU-T (January 2007). "G.729 : Coding of speech at 8 kbit/s using conjugate-structure algebraic-code-excited linear prediction (CS-ACELP)" (PDF): i. Retrieved 2009-07-21. {{cite journal}}: Cite journal requires |journal= (help)
  5. ^ Sipro Lab Telecom (2017-01-28). "About G.729". Archived from the original on 2017-02-02.
  6. ^ "Sipro Lab Telecom Website". Archived from the original on 2012-12-25. Retrieved 2007-03-31.
  7. ^ VoiceAge Corporation (2007-10-14). "G.729 Licensing". Archived from the original on 2007-10-14. Retrieved 2009-09-17.
  8. ^ Sipro Lab Telecom (2007-10-25). "FAQ G.729 and G.723.1". Archived from the original on 2007-10-25. Retrieved 2009-09-17.
  9. ^ Sipro Lab Telecom (2006-10-29). "G.729 IPR Pool". Archived from the original on 2006-10-29. Retrieved 2009-09-17.
  10. ^ "Business Search - Results". Business Search - Business Entities - Business Programs | California Secretary of State.
  11. ^ "US 5,920,853 A - Signal compression using index mapping technique for the sharing of quantization tables | RPX Insight".
  12. ^ "Patent Litigations Search | RPX Insight". insight.rpxcorp.com.
  13. ^ "Aim Ip LLC v. Cisco Systems Inc et. al. patent lawsuit". Archived from the original on February 1, 2014.
  14. ^ "Patent Public Search | USPTO". ppubs.uspto.gov.
  15. ^ a b "United States Patent and Trademark Office". assignment.uspto.gov.
  16. ^ Mark Lapedus (November 10, 1998). "Rockwell Semi spin-off Conexant will target communications IC market". EE Times.
  17. ^ "US5920853A - Signal compression using index mapping technique for the sharing of quantization tables". Google Patents.
  18. ^ "Real-Time Transport Protocol (RTP) Parameters". Iana.org. Retrieved 2013-09-18.
  19. ^ S. Casner, P. Hoschka (July 2003). "MIME Type Registration of RTP Payload Formats". Retrieved 2013-02-27.
[edit]