ГЛАВНАЯ | РАЗРАБОТКИ | ЗАКАЗЧИКИ | О НАС | ЗАГРУЗИТЬ | СТАТЬИ | ССЫЛКИ | ДУХОВНОЕ | ENGLISH |
VoIP движокСайт перемещен по адресу rfdsp.ru |
||||
|
Разработанный VoIP движок (VoIP engine) реализует функции обработки речевых данных многоканального VoIP шлюза. Движок выполняет все функции связанные с формированием RTP пакетов из синхронных звуковых отсчетов и обратное преобразование асинхронного потока пакетов RTP в синхронные звуковые отсчеты.
VoIP engine выполняет следующие основные функции:
Структурная схема 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 и др. |
|
||
Email: powerdsp@narod.ru |