Г.711
Импульсно-кодовая модуляция (ИКМ) голосовых частот | |
Статус | Действующий |
---|---|
Год начался | 1972 |
Последняя версия | (02/00) февраль 2000 г. |
Организация | ЭТО Т |
Сопутствующие стандарты | G.191 , G.711.0 , G.711.1 , G.729 |
Домен | сжатие звука |
Веб-сайт | https://www.itu.int/rec/T-REC-G.711 |
с плавающей запятой Форматы |
---|
ИЭЭЭ 754 |
|
Другой |
Альтернативы |
G.711 — это узкополосный аудиокодек, изначально разработанный для использования в телефонии и обеспечивающий качество звука междугородной связи со скоростью 64 кбит/с. Это стандарт ITU-T (рекомендация) для кодирования звука под названием «Импульсно-кодовая модуляция (PCM) голосовых частот», выпущенный для использования в 1972 году.
G.711 передает аудиосигналы в полосе частот 300–3400 Гц и дискретизирует их с частотой 8000 Гц с допуском на эту скорость 50 частей на миллион (ppm).
Он использует один из двух различных алгоритмов логарифмического компандирования : μ-law , который используется в основном в Северной Америке и Японии, и A-law , который используется в большинстве других стран за пределами Северной Америки. Каждая компандированная выборка квантуется как 8 бит, что приводит к скорости передачи данных 64 кбит/с .
G.711 является обязательным стандартом во многих технологиях, например, в стандартах H.320 и H.323 . [1] Его также можно использовать для факсимильной связи по IP-сетям (как определено в спецификации T.38 ).
Были опубликованы два усовершенствования G.711: G.711.0 использует сжатие данных без потерь для уменьшения использования полосы пропускания, а G.711.1 повышает качество звука за счет увеличения полосы пропускания.
Особенности [ править ]
- Частота дискретизации 8 кГц
- Скорость передачи данных 64 кбит/с (частота дискретизации 8 кГц × 8 бит на выборку)
- Типичная алгоритмическая задержка составляет 0,125 мс, без упреждающей задержки.
- G.711 — это кодер речи.
- Приложение I G.711 определяет алгоритм маскировки потерь пакетов (PLC), помогающий скрыть потери передачи в пакетной сети.
- Приложение II G.711 определяет алгоритм прерывистой передачи (DTX), который использует обнаружение голосовой активности (VAD) и генерацию комфортного шума (CNG) для уменьшения использования полосы пропускания в периоды тишины.
- Тестирование PSQM в идеальных условиях дает средний балл 4,45 для μ-закона G.711 и 4,45 для A-закона G.711. [ нужна ссылка ]
- Тестирование PSQM в условиях сетевой нагрузки дает средние оценки 4,13 для μ-закона G.711, 4,11 для A-закона G.711. [ нужна ссылка ]
Типы [ править ]
G.711 определяет два основных компандирования алгоритма : алгоритм μ-закона и алгоритм A-закона . Оба являются логарифмическими , но А-закон был специально разработан, чтобы его было проще обрабатывать компьютеру. [ нужна ссылка ] . Стандарт также определяет последовательность повторяющихся значений кода, которая определяет уровень мощности 0 дБ .
Алгоритмы μ-law и A-law кодируют 14-битные и 13-битные линейные выборки PCM со знаком (соответственно) в логарифмические 8-битные выборки. G.711 Таким образом, кодер создаст битовый поток со скоростью 64 кбит/с для сигнала, дискретизированного с частотой 8 кГц. [1]
Мю-закон G.711 имеет тенденцию давать большее разрешение сигналам более высокого диапазона, тогда как A-закон G.711 обеспечивает более высокие уровни квантования при более низких уровнях сигнала.
Термины PCMU , G711u и G711MU также используются для μ-закона G.711, а PCMA и G711A — для A-закона G.711. [2]
А-закон [ править ]
Таким образом, кодирование по закону A принимает в качестве входных данных 13-битный линейный аудиовыбор со знаком и преобразует его в 8-битное значение следующим образом:
Линейный входной код [примечание 1] |
Сжатый код БЕСПЛАТНО 01010101 |
Линейный выходной код [примечание 2] |
---|---|---|
s0000000abcdx |
s000abcd |
s0000000abcd1
|
s0000001abcdx |
s001abcd |
s0000001abcd1
|
s000001abcdxx |
s010abcd |
s000001abcd10
|
s00001abcdxxx |
s011abcd |
s00001abcd100
|
s0001abcdxxxx |
s100abcd |
s0001abcd1000
|
s001abcdxxxxx |
s101abcd |
s001abcd10000
|
s01abcdxxxxxx |
s110abcd |
s01abcd100000
|
s1abcdxxxxxxx |
s111abcd |
s1abcd1000000
|
- ^ Это значение получается путем использования представления входного значения в виде дополнения до двух и инвертирования всех битов после знакового бита, если значение отрицательное.
- ^ знаковой величины Представление
Где s
это знаковый бит, s
является его обратным (т.е. положительные значения кодируются с помощью MSB = s = 1), а биты, отмеченные x
отбрасываются. Обратите внимание, что в первом столбце таблицы используется другое представление отрицательных значений, чем в третьем столбце. Так, например, входное десятичное значение -21 представляется в двоичном виде после инверсии битов как 1000000010100, что соответствует 00001010 (согласно первой строке таблицы). При декодировании это отображается обратно в 1000000010101, что интерпретируется как выходное значение -21 в десятичном формате. Входное значение +52 (0000000110100 в двоичном формате) сопоставляется с 10011010 (согласно второй строке), которое отображается обратно в 0000000110101 (+53 в десятичном формате).
Это можно рассматривать как число с плавающей запятой с 4 битами мантиссы m (что эквивалентно 5-битной точности), 3 битами показателя степени e и 1 битом знака s , отформатированным как seeemmmm
с декодированным линейным значением y, определяемым формулой
которое представляет собой 13-битное целое число со знаком в диапазоне от ±1 до ±(2 12 − 2 6 ). Обратите внимание, что сжатый код не декодируется в ноль из-за добавления 0,5 (половина шага квантования).
Кроме того, стандарт определяет, что все результирующие четные биты ( LSB — четный) инвертируются перед передачей октета. Это сделано для того, чтобы обеспечить множество переходов 0/1 для облегчения процесса восстановления тактовой частоты в приемниках PCM. Таким образом, тихий канал PCM, закодированный по закону A, имеет 8-битные выборки, закодированные в октетах 0xD5 вместо 0x80.
Когда данные передаются через E0 ( G.703 ), старший бит (знак) отправляется первым, а младший бит отправляется последним.
ЭТО STL [3] определяет алгоритм декодирования следующим образом (он помещает декодированные значения в 13 старших бит 16-битного типа выходных данных).
void alaw_expand(lseg, logbuf, linbuf)
long lseg;
short *linbuf;
short *logbuf;
{
short ix, mant, iexp;
long n;
for (n = 0; n < lseg; n++)
{
ix = logbuf[n] ^ (0x0055); /* re-toggle toggled bits */
ix &= (0x007F); /* remove sign bit */
iexp = ix >> 4; /* extract exponent */
mant = ix & (0x000F); /* now get mantissa */
if (iexp > 0)
mant = mant + 16; /* add leading '1', if exponent > 0 */
mant = (mant << 4) + (0x0008); /* now mantissa left justified and */
/* 1/2 quantization step added */
if (iexp > 1) /* now left shift according exponent */
mant = mant << (iexp - 1);
linbuf[n] = logbuf[n] > 127 /* invert, if negative sample */
? mant
: -mant;
}
}
См. также «Руководство пользователя библиотеки программных средств ITU-T 2009», которое можно найти по адресу. [4]
м-закон [ править ]
Кодирование по закону μ (иногда называемое ulaw, G.711Mu или G.711μ) принимает в качестве входных данных 14-битный знаковый линейный аудиосэмпл в представлении с дополнением до двух , инвертирует все биты после знакового бита, если значение отрицательное. добавляет 33 (двоичное число 100001) и преобразует его в 8-битное значение следующим образом:
Линейное входное значение [примечание 1] |
Сжатый код БЕСПЛАТНО 11111111 |
Линейное выходное значение [примечание 2] |
---|---|---|
s00000001abcdx |
s000abcd |
s00000001abcd1
|
s0000001abcdxx |
s001abcd |
s0000001abcd10
|
s000001abcdxxx |
s010abcd |
s000001abcd100
|
s00001abcdxxxx |
s011abcd |
s00001abcd1000
|
s0001abcdxxxxx |
s100abcd |
s0001abcd10000
|
s001abcdxxxxxx |
s101abcd |
s001abcd100000
|
s01abcdxxxxxxx |
s110abcd |
s01abcd1000000
|
s1abcdxxxxxxxx |
s111abcd |
s1abcd10000000
|
- ^ Это значение получается путем представления входного значения в виде дополнения до двух , инвертирования всех битов после знакового бита, если значение отрицательное, и добавления 33.
- ^ Представление знаковой величины . Конечный результат получается путем уменьшения величины этого значения на 33.
Где s
- это знаковый бит, а биты отмечены x
отбрасываются.
Кроме того, стандарт указывает, что закодированные биты инвертируются перед передачей октета. Таким образом, тихий канал PCM, закодированный по закону μ, имеет 8-битные выборки, передаваемые в октетах 0xFF вместо 0x00.
Добавление 33 необходимо для того, чтобы все значения попали в группу сжатия и при декодировании она вычиталась обратно.
Нарушение закодированного значения, отформатированного как seeemmmm
на 4 бита мантиссы m , 3 бита показателя степени e и 1 бит знака s , декодированное линейное значение y определяется формулой
которое представляет собой 14-битное целое число со знаком в диапазоне от ±0 до ±8031.
Обратите внимание, что 0 передается как 0xFF, а −1 передается как 0x7F, но при получении результат в обоих случаях равен 0.
G.711.0 [ править ]
G.711.0, также известный как G.711 LLC, использует сжатие данных без потерь для снижения использования полосы пропускания на целых 50 процентов. [5] Стандарт сжатия без потерь импульсно-кодовой модуляции G.711 был одобрен ITU-T в сентябре 2009 года. [6] [7]
G.711.1 [ править ]
G.711.1 «Широкополосное встроенное расширение для импульсно-кодовой модуляции G.711» представляет собой более высококачественное расширение G.711, ратифицированное в 2008 году и получившее дальнейшее расширение в 2012 году. [8]
G.711.1 допускает ряд уровней улучшения поверх необработанного основного потока G.711 (уровень 0): уровень 1 кодирует 16-битный звук в той же узкой полосе 4 кГц, а уровень 2 допускает широкополосную полосу 8 кГц с использованием MDCT ; каждый использует фиксированную скорость 16 Кбит/с в дополнение к ядру со скоростью 64 Кбит/с. Их можно использовать вместе или по отдельности, и каждый кодирует отличия от предыдущего слоя. Утвержденный в 2012 году, уровень 3 расширяет уровень 2 до «сверхширокополосной» частоты 16 кГц, обеспечивая еще 16 кбит/с для самых высоких частот, сохраняя при этом независимость уровней. Пиковая скорость передачи данных составляет 96 кбит/с в оригинальном G.711.1 или 112 кбит/с в сверхширокополосном режиме. Никакой внутренний метод идентификации или разделения слоев не определен, поэтому пакетирование или сигнализация о них остается на усмотрение реализации. [9] [10]
Декодер, который не понимает какой-либо набор уровней точности, может игнорировать или отбрасывать неосновные пакеты, не затрагивая его, обеспечивая постепенное ухудшение качества в любой телефонной системе G.711 (или исходной G.711.1) без изменений.
В 2012 году также был ратифицирован стандарт G.711.0 без потерь, расширенный на новые уровни качества воспроизведения. Как и в случае с G.711.0, полная обратная совместимость G.711 приносится в жертву ради эффективности, хотя узел, поддерживающий G.711.0, все равно может игнорировать или отбрасывать пакеты уровня, которые он не понимает.
Лицензирование [ править ]
Срок действия патентов на G.711, выпущенных в 1972 году, истек, поэтому его можно использовать без лицензии. [1]
См. также [ править ]
Ссылки [ править ]
- ^ Jump up to: Перейти обратно: а б с «G.711: Импульсно-кодовая модуляция (ИКМ) голосовых частот» . www.itu.int . Архивировано из оригинала 17 июня 2019 г. Проверено 11 ноября 2019 г.
- ^ «Кодеки видео/голоса/речи» . Грандстрим = . Проверено 19 июля 2020 г.
- ^ G.191: Программные средства для стандартизации кодирования речи и звука . Функция
alaw_expand
в файлеSoftware/stl2009/g711/g711.c
. Itu.int. Проверено 18 сентября 2013 г. - ^ G.191: Библиотека программных средств ITU-T, 2009 г., Руководство пользователя . Itu.int (23 июля 2010 г.). Проверено 18 сентября 2013 г.
- ^ МСЭ-Т (17 июля 2009 г.). «Журнал новостей ITU-T — Голосовой кодек получает новое сжатие без потерь» . Архивировано из оригинала 3 марта 2016 г. Проверено 28 февраля 2010 г.
- ^ МСЭ-Т. «G.711.0: сжатие без потерь импульсно-кодовой модуляции G.711» . Проверено 28 февраля 2010 г.
- ^ Последние разработки в области кодирования аудио/речи в ITU-T и будущие тенденции (PDF) , август 2008 г. , получено 28 февраля 2010 г.
- ^ G.711.1: Широкополосное встроенное расширение для импульсно-кодовой модуляции G.711 , ITU-T, 2012 г. , получено 24 декабря 2022 г.
- ^ Лапьер; и др. (25 августа 2008 г.), Формирование шума во встроенном кодеке, совместимом с ITU-T G.711 (PDF) , получено 11 июня 2024 г.
- ^ Хивасаки; и др. (25 августа 2008 г.), G. 711.1: Широкополосное расширение ITU-T G. 711 (PDF) , получено 11 июня 2024 г.
Внешние ссылки [ править ]
- Рекомендация МСЭ-Т G.711
- Программные инструменты ITU-T G.191 для кодирования речи и звука, включая код C G.711.
- Реализация проекта C# кода G.711 с исходным кодом
- RFC 3551 — Профиль RTP для аудио- и видеоконференций с минимальным управлением — G.711 — Определение PCMA и PCMU.
- RFC 4856 — Регистрация типа носителя audio/PCMA и audio/PCMU
- RFC 5391 — формат полезной нагрузки RTP для Рекомендации ITU-T G.711.1 (PCMA-WB и PCMU-WB)