Введение
ITU T Recommendation G.729 – это бесплатный алгоритм сжатия аудиоданных на основе узкополосного вокодера, использующий длину кадра 10 миллисекунд. Официально он описан как кодирование речи со скоростью 8 кбит/с с использованием кодового возбужденного линейного предсказания речи (CS-ACELP) и был представлен в 1996 году. Расширение для широкой полосы частот G.729 называется G.729.1, что эквивалентно G.729 Приложению J. Благодаря низким требованиям к полосе пропускания, G.729 в основном используется в приложениях VoIP (Voice over Internet Protocol), когда необходимо экономить полосу пропускания. Стандарт G.729 работает со скоростью 8 кбит/с, но расширения обеспечивают скорости 6,4 кбит/с (Приложения D, F, H, I, C+) и 11,8 кбит/с (Приложения E, G, H, I, C+) для ухудшения и улучшения качества речи соответственно. G.729 был расширен различными функциями, обычно обозначаемыми как G.729a и G.729b:
G.729 is a royalty free 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. 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. |
! 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
|
! 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: Это оригинальный кодек, использующий алгоритм высокой сложности.
G.729A или Приложение A: Эта версия имеет среднюю сложность и совместима с G.729. Она обеспечивает немного более низкое качество голоса.
G.729B или Приложение B: Эта версия расширяет G.729 функцией подавления тишины и не совместима с предыдущими версиями.
G.729AB: Эта версия расширяет G.729A функцией подавления тишины и совместима только с G.729B.
G.729.1 или Приложение J: Эта версия расширяет G.729A и B масштабируемым кодированием переменной скоростью с использованием иерархических слоев повышения. Она обеспечивает поддержку широкополосной речи и аудио, используя модифицированное дискретное косинусное преобразование (MDCT).
G.729 is a royalty free 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. 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. |
! 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
|
! 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
|}
| | A | B | C | D | E | F | G | H | I | C+ | J |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Низкая сложность | | | X | X | | | | | | | |
| Фиксированная точка | | X | X | X | | X | X | X | X | X | X | | X |
| Плавающая точка | | | | | X | | | | | | | | X |
| 8 кбит/с | | X | X | X | X | X | X | X | X | X | X | X | X |
| 6.4 кбит/с | | | | | | X | | X | | X | X | X | |
| 11.8 кбит/с | | | | | | | X | | X | X | X | X | |
| DTX | | | | X | | | | X | X | | X | X | |
| Переменная скорость передачи, широкополосная | | | | | | | | | | | | | X |
G.729 is a royalty free 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. 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. |
! 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
|
! 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 Приложение Б
G.729 был расширен в Приложении B (G.729b), которое предоставляет метод сжатия тишины и включает модуль обнаружения голосовой активности (VAD). Он используется для определения наличия речи в сигнале. Также предусмотрен модуль прерывистой передачи (DTX), который определяет необходимость обновления параметров фонового шума для фрагментов без речи (шумных кадров). Он использует 2-байтовые кадры Silence Insertion Descriptor (SID), передаваемые для запуска генерации комфортного шума (CNG). Если передача останавливается и канал становится тихим из-за отсутствия речи, принимающая сторона может решить, что соединение разорвано. Вставка комфортного шума позволяет цифровым способом имитировать аналоговый шум во время тишины, чтобы убедить принимающее устройство в том, что соединение активно и функционирует.
G.729 Приложение J (G.729.1)
G.729 Приложение J, поддерживаемое G.729.1, обеспечивает поддержку широкополосной речи и аудио. Введенный в 2006 году, он определяет широкополосное улучшение с переменной скоростью передачи данных, используя до 12 иерархических слоев. Базовый слой представляет собой битовый поток G.729 со скоростью 8 кбит/с, второй слой – узкополосный слой улучшения со скоростью 4 кбит/с, а третий слой со скоростью 2 кбит/с – слой улучшения полосы пропускания. Последующие слои обеспечивают улучшение широкополосной связи с шагом 2 кбит/с. G.729.1 использует трехступенчатое кодирование: кодирование нижней полосы с использованием встроенного возбуждения линейного предсказания (CELP), параметрическое кодирование верхней полосы посредством расширения полосы пропускания во временной области (TDBWE) и улучшение полной полосы с помощью алгоритма предсказательного преобразования, называемого подавлением временных алиасов (TDAC), также известного как кодирование модифицированной дискретной косинусной трансформации (MDCT). G.729 включает патенты нескольких компаний, которые до истечения срока действия лицензии управлялись Sipro Lab Telecom, уполномоченным администратором лицензирования интеллектуальной собственности для технологии G.729 и патентного пула.
Прошлые патентные споры
AIM IP LLC, калифорнийская компания с ограниченной ответственностью, базирующаяся в Миссион-Вьехо, штат Калифорния, подала 17 исков о нарушении патентных прав в центральные окружные суды Калифорнии, обвинив 22 различные компании, включая Cisco Systems, Polycom и другие, в нарушении патента США № 5 920 853. Патент № 5 920 853 был подан в Патентное ведомство США в 1996 году компанией Rockwell International. Изобретателями, указанными в патенте № 5 920 853, являются Бениассин Адиль, Су Хуань Ю и Шломот Эяль. В 2000 году компания Rockwell International передала патент № 5 920 853 компании Conexant Systems, американскому разработчику программного обеспечения и производителю полупроводников, которая первоначально была подразделением Rockwell, а затем стала независимой публичной компанией. В 2010 году компания Conexant Systems продала патент № 5 920 853 компании AIM IP LLC, калифорнийской компании с ограниченной ответственностью, базирующейся в Миссион-Вьехо.
Тип полезной нагрузки RTP
G.729 IANA присвоен статический тип полезной нагрузки 18 для RTP. Описание параметра rtpmap для этого типа полезной нагрузки – "G729/8000". И G.729a, и G.729b используют то же описание rtpmap, что и G.729. G.729a и G.729b указываются с помощью annexb=no или annexb=yes соответственно. G.729 Приложение B (G.729b) является значением по умолчанию при отсутствии параметра annexb в протоколе описания сеанса.