Разработка DSP ПО на заказ

VoIP движок

Сайт перемещен по адресу rfdsp.ru

Разработанный VoIP движок (VoIP engine) реализует функции обработки речевых данных многоканального VoIP шлюза. Движок выполняет все функции связанные с формированием RTP пакетов из синхронных звуковых отсчетов и обратное преобразование асинхронного потока пакетов RTP в синхронные звуковые отсчеты.
VoIP engine выполняет следующие основные функции:
  • Сжатие и декомпрессию речи
  • Эхоподавление
  • Прием и передача тональных сигналов
  • Адаптивный джиттер буфер
  • Упаковка и распаковка RTP пакетов
  • Управление и сбор статистики

Структурная схема VoIP движка представлена на схеме: Структурная схема VoIP движка

Кодеки
VoIP движок имеет в своем составе следующие кодеки G.711, G.726, G.729AB, G723, что позволяет гибко выбирать степень сжатия речи и обеспечивать наилучшее качество в различных условиях передачи пакетов по сети. Кроме основных функций, кодеки реализуют функции обнаружения голосовой активности (VAD), генерации комфортного шума в паузах речи (CNG) и маскирования потери пакетов (PLC), которые являются неотъемлемой частью кодеков G.729AB и G723. Кодеки G.711 и G.726 дополнены функцией PLC из рекомендации G.711 Appendix I. В дальнейшем планируется добавить реализацию кодека G.722, для чего в движке предусмотрена возможность обработки голосовых отсчетов с частотой 16 кГц.

Эхоподавитель
Эхоподавитель (эхокомпенсатор - echo canceller) предназначен для подавления электрического эха с конфигурируемой максимальной задержкой 16, 32, 64 и 128 мс. Эхоподавитель использует LMS алгоритм адаптации. При обнаружении тональных сигналов, эхоподавитель выключается.

Обработка тональных сигналов
Телефонные тональные сигналы (CPT) принимаются и передаются самим движком по командам с хоста. DTMF сигналы могут приниматься и передаваться под управлением хоста, либо передаваться по сети в виде пакетов RTP со своим payload type (out-band DTMF) или в виде отсчетов аналогового сигнала (in-band DTMF). В режиме out-band, голосовой тракт отключается, и информация о принимаемых сигналах передается в соответствии с требованиями RFC 2833 или RFC 4733. При обнаружении DTMF сигнала в режиме in-band и при обнаружении сигналов установления соединения модемом или факсом, выполняется принудительное изменение типа кодека на G.711.

Адаптивный джиттер-буфер
Задержка в буфере выбирается исходя из компромисса между уменьшением задержки в тракте и уменьшением количества потерянных пакетов. Для обеспечения высокого качества речи, задержка в тракте не должна превышать 250 мс при потере не более 5 % пакетов. При недостаточной задержке, она увеличивается автоматически за счет того, что опоздавшие пакеты восстанавливаются функцией PLC, а затем пришедший пакет помещается в буфер. При слишком большой задержке, пакеты удаляются из буфера, при этом вначале удаляются пакеты соответствующе паузам в речи, а при невозможности сократить задержку, начинают удаляться голосовые пакеты. Джиттер-буфер так же выполняет компенсацию разности тактовых частот АЦП и ЦАП на противоположных концах тракта передачи речи. В дальнейшем предполагается реализовать функцию плавного ускорения/замедления речи для управления джиттер-буфером.

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

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

Интеграция
VoIP engine работает под управление хост процессора и выполняет все функции связанные с преобразованием синхронных голосовых отсчетов ИКМ E1 (или аналогичные TDM) в RTP пакеты и обратно. Хост обеспечивает функции управления несколькими VoIP движками, работающими на отдельных процессорах, установкой соединений, передачей RTP пакетов по сети и другие функции. При обработке 30 активных каналов, VoIP engine потребляет около 70 % вычислительных ресурсов процессора Texas Instruments TMS320C6454 с частотой 1 ГГц (при использовании наиболее ресурсоемких кодеков, эхоподавителя и др.). Поставляемая вместе с кодом тестовая среда представляет пример интеграции кода в VoIP систему.

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

Тестовая среда
Код поставляется вместе с тестовой средой для семейства TMS320C6400 и для ПК, тестовыми векторами и документацией. Тестовая среда позволяет проверять параметры отдельных функциональных блоков VoIP engine, таких как кодеки, эхоподавитель, приемники и передатчики тональных сигналов, а так же проводить комплексную проверку всего движка с использованием эмулятора сети. Эмулятор позволяет симулировать задержку и потерю пакетов, джитер, разовые задержки и потери пакетов, разность частот преобразования АЦП и ЦАП на противоположных сторонах тракта передачи. Имеется возможность измерения PESQ MOS.

Кросс-платформенность
Основная часть функций движка написана в виде кросс-платформенного кода, все специфические функции (выделение памяти, управление задачами и др.) вызываются с использованием call-back функций. Ресурсоемкие функции (кодеки, эхоподавитель и др.) оптимизированы для платформы TMS320C64XX под CCS3.3, имеется возможность компиляции bit-exact кода без оптимизации на ПК под MS Visual C 2008 Express.
Возможна адаптация VoIP engine под требования заказчика и портирование кода на другие DSP платформы: TI 55XX, Blackfin, ARM и др.
  • Loop System Co. Ltd.
  • ЗАО ТТ Софт
  • Improv Systems, Inc
  • ЗАО ПараБайт
  • 74ZE Engineering, Inc
  • ЗАО ПКК Миландр
  • EasyPQ Technologies Pvt. Ltd.
  • Пульсар Группа компаний
  • НИЦ Тест-Электро
Email: powerdsp@narod.ru


Hosted by uCoz