Иван Башлаков
16.03.2020
11014

Методы кодирования голосовой информации Обзор кодеков, используемых в VoIP-телефонии

Когда вы совершаете голосовые- или видео- звонки через интернет посредством технологии VoIP, ваш голос преобразуется в цифровые данные посредством кодеков, для того, чтобы быть переданными вашему собеседнику, и ими же декодируется, для того, чтобы ваш собеседник мог слышать вас. Процесс кодирования данных связан с их сжатием, так размер данных непосредственно влияет на скорость их доставки […]

Когда вы совершаете голосовые- или видео- звонки через интернет посредством технологии VoIP, ваш голос преобразуется в цифровые данные посредством кодеков, для того, чтобы быть переданными вашему собеседнику, и ими же декодируется, для того, чтобы ваш собеседник мог слышать вас. Процесс кодирования данных связан с их сжатием, так размер данных непосредственно влияет на скорость их доставки и качество звонка. В идеальном случае, кодеки должны обеспечивать высокое качество связи вкупе с эффективным использованием пропускной способности интернет-канала. Говоря другим языком, кодеки, это инструмент, который вместе с пропускной способностью сети позволяют получить высокое качество связи.

схема обработки голосовой информации перед передачей в сеть
схема обработки голосовой информации перед передачей в сеть

Существует несколько разновидностей кодеков, используемых для передачи голосовой информации. Все они имеют набор уникальных характеристик, которые определяют их применение в той или иной ситуации или на той или иной платформе. Кодеки различаются по качеству звука, требуемой пропускной способности, вычислительным требованиям и т. д.

Каждый сервис, программа, телефон, шлюз, обычно поддерживают несколько разных кодеков, и при взаимодействии друг с другом согласовывают, какой кодек они будут использовать.

диаграмма обработки голоса различными модулями VoIP-устройства
диаграмма обработки голоса различными модулями VoIP-устройства

Существует несколько классификаций кодеков по различным параметрам, таким как используемая математическая модель, тип исходной информации, оказываемая нагрузка на процессор. Но в данной статье, мы произведем обзор кодеков с точки зрения обеспечения качества связи, как наиболее важного параметра уровня приложения.

 По качеству связи все кодеки можно разделить на две категории: узкополосные и широкополосные. Широкополосные кодеки работают на частоте дискредитации 16/32 КГц. Это дает возможность уменьшить задержку при передаче звука и повысить его четкость. Использование широкополосных кодеков иногда называют HDVoIP. Разница для конечного  пользователя между узкополосными и широкополосными кодеками примерно такая же, как между старым черно-белым телевизором и цифровым HDTV.

обработка голосовой информации при приеме и передаче VoIP-терминалом
обработка голосовой информации при приеме и передаче VoIP-терминалом

Ниже приведен список узкополосных и широкополосных кодеков:

Узкополосные кодеки:

  • iLBC
  • MELP/MELPe
  • G.711
  • G.726
  • G.728
  • G.729/G.729A/G.729B
  • GSM speech codecs
  • GSM 06.10 Full Rate
  • GSM 06.20 Half Rate

Широкополосные кодеки:

  • G.722/G.722.1/G.722.2
  • Speex
  • Opus
  • GSM Wideband AMR-WB (ETSI TS 126.171)

Далее мы рассмотрим подробно в отдельности наиболее используемые на практике, версии кодеков.

Узкополосные кодеки

iLBC (internet Low Bitrate Codec) — обеспечивает высокое качество связи в узкополосных каналах связи и скорость передачи голоса до 13.33 кбит/с при размере кадра в 30 мс или до 15.20 кбит/с при размере кадра 20 мс. Высокой нагрузки на аппаратные ресурсы iLBC не оказывает. Использование кодека не требует наличия каких-либо лицензий. Данный кодек используется такими продуктами, как Ekiga, Google Talk, Skype.

MELP и MELPe — кодек, применяемый Минестерством обороны США, как основной. Он интересен тем, что позволяет обеспечивать высокое качество связи при очень низкой требовательности к процессору и питанию и высокой скорости передачи. Данный кодек помехоустойчив и шумоустойчив.Скорость передачи данных составляет  2400 бит/с у MELP (600 бит/с MELPe).

G.711 — старейший, из используемых в настоящее время кодеков. Он был разработан так давно, что действие его патентов уже истекло. Он разрабатывался еще в 1972 году и требования к телефонным сетям с тех времен заметно изменились, как и сама телефония.Он обеспечивает скорость передачи данных всего в пределах 64 kbit/s (кадрами по 8 bit), но и совершенно не требователен к аппаратным ресурсам. Кодек использует математические алгоритмы μ-law и A-law для сжатия потока. Версия G.711.1 данного кодека уже позволяет использовать широкополосное подключение к сети.

G.726 — кодек, применяемый в большинстве DECT-телефонов. Наиболее часто использует полосу со скоростью 32 kbit/s. Обеспечивает высокое качество передачи голоса.

G.729 — некогда коммерческий кодек, срок действия патентных лицензий на который уже истек. Обеспечивает эффективное сжатие и высокое качество кодирования. Является весьма распространенным и поддерживается большим количеством платформ. Необходимая полоса пропускания всего 8 kbit/s. Но к сожалению, за высокое качество звука приходится расплачиваться высокими требованиями к процессору. Существуют версии данного кодека, известные под названиями Annex A (менее ресурсоемкая модификация) и Annex B (в данной модификации во время пауз в разговоре останавливает передачу данных).

GSM 06.10 Full Rate — кодек, который обеспечил развитие GSM-связи. Он не предоставлял высоких показателей качества голоса, но это покрывалось возможностью работы на маломощных мобильных устройствах начала 1990-х годов.Существует также версия GSM 06.20 Half Rate, которая позволяет экономить заряд батареи вдвое снизив скорость передачи.

Широкополосные кодеки

G.722 — один из первых широкополосных кодеков, получивших широкое распространение. Поддерживает передачу данных со скоростью до 64 kbit/s. Был разработан в далеком 1989 году и в настоящее время сильно устарел. Версии G.722.1 и G.722.2 используют более низкие скорости передачи данных для повышения качества звука. G.722.2 используется в GSM-сетях для обеспечения технологии HD-voice.

Speex — кодек, который изначально разрабатывался с целью обеспечить высокое качество связи при низком битрейте. Данный кодек позволяет снижать частоту дискредитации и битрейт в зависимости от условий сети. Speex не чувствителен к потерям пакетов, но является чувствительным к различным искажениям звука. Данный кодек не имеет лицензионных ограничений. Поддержка Speex реализована в Ekiga, LinPhone и Asterisk.

Opus — открытий кодек, предназначенный для использования в приложениях, реализующих передачу голоса в реальном времени. Opus, как и Speex позволяет динамически изменять битрейт и частоту дискредитации. Ключевой особенностью Opus является очень быстрое кодирование и высокая степень компрессии. Opus используется в таких продуктах, как Telegram и YouTube (для кодирования аудио дорожек к видеозаписям).

Работа с кодеками в Asterisk

Определить используемые вашим Asterisk кодеки вы можете используя комманду:

asterisk -rx 'core show translation'
вывод таблицы транскодинга, с указанием кодеков, используемых Asterisk
вывод таблицы транскодинга, с указанием кодеков, используемых Asterisk

список всех поддерживаемых кодеков можно вывести командой:

asterisk -rx 'core show codecs'
вывод всех поддерживаемых кодеков
вывод всех поддерживаемых кодеков

Для того, чтобы установить тот или иной кодек в Asterisk, необходимо поместить его модуль в каталог /usr/lib/asterisk/modules (либо /usr/local/lib/asterisk/modules, /var/lib/asterisk/modules), а затем в консоли Asterisk выполнить его загрузку командой:

>module load codec_******.so

Чтобы модуль загружался каждый раз при старте Asterisk, его необходимо прописать в файл /etc/asterisk/modules.conf

load => codec_******.so
Книга 101 функция Asterisk
Познакомьтесь с возможностями Asterisk. Найдите инструменты, которые помогут вашей компании развиваться.
Скачать книгу
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Остались вопросы?

Я - Першин Артём, менеджер компании Voxlink. Хотите уточнить детали или готовы оставить заявку? Укажите номер телефона, я перезвоню в течение 3-х секунд.

VoIP оборудование


ближайшие курсы

10 доводов в пользу Asterisk

Распространяется бесплатно.

Asterisk – программное обеспечение с открытым исходным кодом, распространяется по лицензии GPL. Следовательно, установив один раз Asterisk вам не придется дополнительно платить за новых абонентов, подключение новых транков, расширение функционала и прочие лицензии. Это приближает стоимость владения станцией к нулю.

Безопасен в использовании.

Любое программное обеспечение может стать объектом интереса злоумышленников, в том числе телефонная станция. Однако, сам Asterisk, а также операционная система, на которой он работает, дают множество инструментов защиты от любых атак. При грамотной настройке безопасности у злоумышленников нет никаких шансов попасть на станцию.

Надежен в эксплуатации.

Время работы серверов некоторых наших клиентов исчисляется годами. Это значит, что Asterisk работает несколько лет, ему не требуются никакие перезагрузки или принудительные отключения. А еще это говорит о том, что в районе отличная ситуация с электроэнергией, но это уже не заслуга Asterisk.

Гибкий в настройке.

Зачастую возможности Asterisk ограничивает только фантазия пользователя. Ни один конструктор шаблонов не сравнится с Asterisk по гибкости настройки. Это позволяет решать с помощью Asterisk любые бизнес задачи, даже те, в которых выбор в его пользу не кажется изначально очевидным.

Имеет огромный функционал.

Во многом именно Asterisk показал какой должна быть современная телефонная станция. За многие годы развития функциональность Asterisk расширилась, а все основные возможности по-прежнему доступны бесплатно сразу после установки.

Интегрируется с любыми системами.

То, что Asterisk не умеет сам, он позволяет реализовать за счет интеграции. Это могут быть интеграции с коммерческими телефонными станциями, CRM, ERP системами, биллингом, сервисами колл-трекинга, колл-бэка и модулями статистики и аналитики.

Позволяет телефонизировать офис за считанные часы.

В нашей практике были проекты, реализованные за один рабочий день. Это значит, что утром к нам обращался клиент, а уже через несколько часов он пользовался новой IP-АТС. Безусловно, такая скорость редкость, ведь АТС – инструмент зарабатывания денег для многих компаний и спешка во внедрении не уместна. Но в случае острой необходимости Asterisk готов к быстрому старту.

Отличная масштабируемость.

Очень утомительно постоянно возвращаться к одному и тому же вопросу. Такое часто бывает в случае некачественного исполнения работ или выбора заведомо неподходящего бизнес-решения. С Asterisk точно не будет такой проблемы! Телефонная станция, построенная на Asterisk может быть масштабируема до немыслимых размеров. Главное – правильно подобрать оборудование.

Повышает управляемость бизнеса.

Asterisk дает не просто набор полезных функций, он повышает управляемость организации, качества и комфортности управления, а также увеличивает прозрачность бизнеса для руководства. Достичь этого можно, например, за счет автоматизации отчетов, подключения бота в Telegram, санкционированного доступа к станции из любой точки мира.

Снижает расходы на связь.

Связь между внутренними абонентами IP-АТС бесплатна всегда, независимо от их географического расположения. Также к Asterisk можно подключить любых операторов телефонии, в том числе GSM сим-карты и настроить маршрутизацию вызовов по наиболее выгодному тарифу. Всё это позволяет экономить с первых минут пользования станцией.