Под кодеками, как правило, понимают различные математические модели, используемые для цифрового кодирования (и сжатия) аналоговой аудиоинформации. Многие из этих моделей учитывают способность человеческого мозга формировать законченное впечатление по неполной информации. Все мы видели оптические иллюзии; точно так же алгоритмы сжатия голоса используют нашу способность представлять то, что, как нам кажется, мы должны слышать, а не то, что мы фактически слышим2. Цель различных алгоритмов кодирования –обеспечить баланс между эффективностью и качеством3.Изначально под термин «кодек» был образован от слов КОдер/ДЕКодер – это устройство, которое выполняет преобразования между аналоговым и цифровым сигналом. Теперь этот термин, кажется, больше относится к понятиям КОмпрессия/ДЕКомпрессия.
G.711 – основной кодек PSTN. В сущности, при упоминании ИКМ в связи с телефонной сетью можно смело иметь в виду G.711. Используется два метода компандирования: μlaw в Северной Америке и аlaw во всем остальном мире. Любой из них обеспечивает передачу 8-битового слова 8000 раз в секунду. Если
произвести вычисления, можно увидеть, что это потребует передачи 64 000 бит/с.
Многие скажут вам, что G.711 – это кодек без сжатия. Это не вполне так, поскольку компандирование считается формой сжатия. На самом деле G.711 является базовым кодеком, от которого были произведены все остальные.G.711 налагает минимальную (практически нулевую) нагрузку на ЦП.
G.726 Этот кодек активно использовался некоторое время (его называли G.721, но сейчас он вышел из употребления) и является одним из исходных кодеков со сжатием. Эта технология известна как адаптивная дифференциальная импульсно-кодовая модуляция (Adaptive Differential Pulse-Code Modulation, ADPCM), она обеспечивает разную скорость передачи данных. Чаще всего используются скорости 16, 24 и 32 Кбит/с.На момент написания данной книги Asterisk поддерживала только ADPCM-32, несомненно, самую популярную скорость передачи данных для этого кодека.
G.726 предлагает качество практически такое же, как у G.711, но использует только половину полосы пропускания. Это возможно потому,что он отправляет не результат измерения, а только достаточную информацию для описания разницы между текущим и предыдущим замерами. G.726 потерял популярность в 1990-х годах из-за неспособности передавать сигналы модема и факсов, но сейчас она вновь возвращается благодаря обеспечиваемому им соотношению пропускная способность/нагрузка на ЦП. G.726 особенно привлекателен, потому что не требует от системы проведения большого объема вычислений.
G.729A Учитывая, насколько малую полосу пропускания использует кодек G.729A, он обеспечивает впечатляющее качество звука. Делает он это за счет технологии Conjugate-Structure Algebraic-Code-Excited Linear Prediction (CS-ACELP)1. G729A является запатентованным продуктом,поэтому его нельзя использовать без лицензии; однако он чрезвычайно популярен и, соответственно, поддерживается многими разными телефонами и системами.
Чтобы достичь такой значительной степени сжатия, этот кодек требует такой же значительной работы от ЦП. В системе Asterisk использование кодеков с большой степенью сжатия быстро приводит к перегрузке ЦП.Для G.729A требуется пропускная способность 8 Кбит/с.
GSM – самый любимый кодек Asterisk. Он не обременен лицензионными соглашениями, как G.729A, и предлагает превосходную производительность, если учитывать требования, которые он предъявляет к ЦП. Качество получаемого звука, в общем, считается ниже, чем обеспечивает G.729A, но это преимущественно субъективное мнение; обязательно попробуйте его. Скорость передачи данных GSM – 13 Кбит/с.
Speex – это кодек с переменной скоростью передачи цифровых данных (variable bitrate, VBR). Это означает, что он может динамически менять скорость передачи данных в ответ на изменение условий сети. Он предлагается как в узкополосном, так и в широкополосном вариантах в зависимости от того, какого качества звук требуется получить (телефонного или лучше).
Speex – абсолютно бесплатный кодек, лицензированный по версии
Xiph.org лицензии BSD.В Интернете доступен проект спецификации Speex. Больше информации о Speex можно найти на его странице (
www.speex.org). Speex может использоваться для каналов со скоростью передачи данных от 2,15 до 22,4 Кбит/с благодаря его способности менять свою скорость передачи данных.