Дэвид КАТЦ Томаш ЛУКАСЕК Рик ДЖЕНТАЙЛ Уэйн МЕЙЕР
Создайте свой УоіР-проект на процессоре ВІаскгїп сейчас —
дополнительные функции можно добавить потом
Применение процессоров ВІаскЛп, обладающих необходимой вычислительной мощностью и гибкостью для работы с самыми разными стандартами, может привести к распространению УоіР-технологий во встраиваемых системах, позволяя добавлять новые возможности в приложения, которые еще не испытали на себе преимуществ этой технологии.
Введение
Настал век технологии VoIP (voice-over-Internet-protocol — передача голоса по межсетевому протоколу), которая совмещает в себе функции телефонии и цифровой связи для обеспечения потоковой передачи пакетированных речи и факсимильных сообщений по недорогим интернет-каналам. Переход от сетей с коммутацией каналов к сетям с коммутацией пакетов, продолжающийся по сей день с ошеломляющей скоростью, способствует развитию VoIP-приложений, которые могут выходить далеко за рамки простой передачи речи, позволяя добавлять к ней другие формы данных и передавать всю совокупность информации с использованием единой инфраструктуры.
Перед системным инженером, проектирующим VoIP-систему, стоит задача выбора экономически эффективного, легко развертываемого и обладающего масштабируемой производительностью процессорного решения. Оптимальный подход к проектированию встраиваемой системы заключается в использовании платформы, позволяющей реализовать базовое VoIP-решение с малым числом каналов и обладающей достаточным запасом производительности для последующего включения дополнительных возможностей и служб, таких как передача видео, музыки, изображений и управление системой. Как раз такое привлекательное решение представляет собой семейство процессоров Blackfin компании Analog Devices.
Что такое VoiP?
В современных телефонных сетях, таких как коммутируемая телефонная сеть общего пользования (PSTN, public switched telephone network), используется принцип цифровой
коммутации, при помощи которой между двумя абонентами устанавливается выделенный канал. Полоса канала, предоставляемая в таком соединении, ограничена, но является достаточной для обеспечения приемлемого уровня качества без применения сложных алгоритмов кодирования.
В альтернативной технологии, VoIP, используется протокол межсетевого взаимодействия (IP, Internet protocol), при помощи которого оцифрованная речь передается через Интернет или частные сети. Пакет IP состоит из цифровой последовательности, включающей в себя служебный заголовок и полезные данные. Заголовок содержит информацию, необходимую для перемещения пакета по сети, а полезные данные представляют собой фрагменты сжатого речевого сигнала.
В отличие от телефонии с коммутацией каналов, в которой информация посылается целиком, передача данных в VoIP осуществляется пакетами. То есть порции данных пакетируются (разбиваются на блоки для передачи), сжимаются, посылаются по сети и в конечном итоге собираются воедино на приемном конце. Ключевым моментом здесь является то, что для связи между приемником и передатчиком не требуется выделенного канала.
Пакетирование хорошо подходит для транспортировки по сети данных (например, JPEG-файлов или сообщений электронной почты), поскольку доставка пакетов при этом попадает в нечувствительную ко времени категорию и выполняется по принципу best-effort («с максимальными усилиями»). Сеть эффективно перемещает данные от многих источников по единой физической среде. Для речевых приложений принцип best-effort не годится, так как задержки переменной величины, возникающие при прохождении пакетов
по сети, могут привести к ухудшению качества декодированного аудиосигнала на приемном конце. Поэтому основная задача протоколов VoIP состоит в устранении влияния задержек за счет управления пропускной способностью сети при помощи методов качества обслуживания (QoS, quality-of-service).
Процесс пакетирования речевых данных заключается в добавлении к блокам данных заголовка и концевой части. С точки зрения минимизации дополнительных задержек (временных задержек прохождения данных в системе) накладные расходы при пакетировании (количество вспомогательных данных и дополнительное время, затрачиваемое на этот процесс) должны быть как можно меньше. Таким образом, при пакетировании должен соблюдаться баланс между минимизацией задержки передачи и эффективностью использования пропускной способности сети. С одной стороны, чем меньше размер пакетов, тем меньше времени затрачивается на их сборку, и тем чаще их можно посылать. С другой стороны, с увеличением размера пакета доля служебной информации (заголовка и концевой части) по отношению к количеству полезных данных сокращается, поэтому при передаче больших пакетов пропускная способность сети используется эффективнее, чем при передаче маленьких пакетов.
Сетям передачи данных свойственна значительная флуктуация скорости передачи. Это явление, которое называется джиттером, устраняется буферизацией пакетов на время, достаточное для обеспечения своевременного прихода самых медленных пакетов и декодирования пакетов в правильной последовательности. Естественно, что чем больше объем буферной памяти для устранения джиттера, тем больше ее вклад в суммарную задержку системы.
Как отмечалось ранее, задержка (latency) — это время, затрачиваемое на прохождение пакета через IP-сеть. Задержка из конца в конец (one-way latency) — это время, которое проходит от момента, когда один абонент произносит слово, до момента, когда его услышит абонент на другом конце линии. Задержка кругового обращения (round-trip latency) — это просто сумма двух задержек из конца в конец. Чем меньше величина задержки, тем естественнее будет звучать разговор. В североамериканской коммутируемой телефонной сети общего пользования задержка кругового обращения составляет менее 150 мс.
Для систем VoIP приемлемой считается задержка из конца в конец, не превышающая 200 мс. Наибольший вклад в задержку в системе VoIP вносят сеть и шлюзы, которые могут присутствовать на любом из концов сети. Речевой кодек (кодер-декодер) также вносит некоторую задержку, но она обычно сравнительно мала (<20 мс).
Когда задержка при передаче речи по сети велика, большую важность приобретают вопросы подавления эхо-сигнала и устранения наложений. Эхоподавление напрямую влияет на качество восприятия речи; этот аспект становится важным, когда задержка кругового обращения превышает 50 мс. Наложения начинают представлять проблему, когда задержка из конца в конец превышает 200 мс.
Большую часть времени разговора занимает так называемое «мертвое время», в течение которого оба абонента молчат. В этих интервалах времени кодеки могут совсем не передавать данные. Такой подход называется «сжатием пауз» и реализуется следующим образом: кодек ведет контроль активности речи и в момент паузы прекращает передачу данных, генерируя вместо этого «комфортный» шум, для того чтобы при молчании обоих абонентов не создавалось ощущения обрыва линии.
В стандартной коммутируемой телефонной сети общего пользования имеется много возможных причин возникновения эхо-сигнала, ухудшающего качество восприятия речи. Двумя наиболее распространенными причинами являются рассогласование импе-дансов в сети с коммутацией каналов («эхо-сигнал линии») и акустическая связь, возникающая в телефоне между говорящим и микрофоном («акустический эхо-сигнал»). Эхо-сигналы линии часто возникают при преобразовании между двухпроводной и четырехпроводной линиями в сети (например, в случае преобразования аналогового сигнала в сигнал формата системы T1).
Поскольку системы VoIP могут подключаться к коммутируемым телефонным сетям, в них также необходимо учитывать проблемы эхо-сигнала линии. Кроме того, в IP-телефонах может проявляться и эффект акустического эха. Эхокомпенсаторы могут быть
оптимизированы для работы с эхо-сигналами линии, акустическим эхо-сигналом, либо обоими типами эхо-сигналов, и эффективность подавления непосредственно зависит от применяемого алгоритма.
Важным параметром эхокомпенсатора является длина пакета, с которым он работает. Не вдаваясь в подробности, положим, что эхокомпенсатор просто хранит копию переданного сигнала. По истечении определенного времени после передачи сигнала он выполняет корреляцию и вычитает переданный сигнал из возвратившегося отраженного сигнала, который, естественно, задержан во времени и имеет меньшую амплитуду. Для эффективного подавления обычно достаточно применения корреляционного окна стандартного размера (32, 64 или 128 мс), однако могут потребоваться и большие длины.
Современные и перспективные приложения VoIP
Поскольку в качестве транспортного механизма в системах VoIP используется высокоскоростная сеть, а не выделенный канал, то основным их преимуществом является низкая стоимость сеанса связи. Более того, VoIP-звонки позволяют сетевым операторам избежать большинства затрат на межсоединения, присущих телефонным сетям с коммутацией каналов. Дополнительная инфраструктура, необходимая для совершения телефонных звонков с помощью VoIP, минимальна, поскольку в этой технологии используются существующие сети, уже подведенные к домашнему или рабочему персональному компьютеру (ПК). Еще одна причина снижения стоимости заключается в том, что операторы сетей передачи данных зачастую используют не всю пропускную способность сети, и финансовые затраты на предоставление дополнительных VoIP-услуг не столь существенны.
Пользователи VoIP-телефонов склонны считать свои звонки «бесплатными», поскольку они могут звонить из любой точки мира всего за несколько центов в минуту так часто, как им захочется. Несмотря на то, что они также платят ежемесячную абонентскую плату провайдерам интернет-услуг, эта сумма может включать в себя не только услуги телефонии, но и услуги по передаче данных.
Помимо низкой, по сравнению с сетями с коммутацией каналов, стоимости дополнительным плюсом IP-телефонии является появление большого количества новых видов услуг. Например, входящие телефонные звонки в коммутируемой телефонной сети общего пользования могут быть автоматически переадресованы на VoIP-телефон пользователя, если он подключен к сети. Такая схема обладает неоспоримым преимуществом перед звонками по сотовому телефону в дальних поездках, поскольку не требует платы
за роуминг: с точки зрения технологии VoIP местоположение конечного пользователя не имеет значения, важно только то, что он подключен к сети. Эта функция особенно актуальна в зонах охвата беспроводных локальных сетей. VoIP-телефоны с поддержкой стандарта IEEE 802.11 [2] позволяют совершать звонки в точках доступа Wi-Fi [3] по всему миру, и не нужно беспокоиться о рассогласовании телекоммуникационной инфраструктуры и стандартов передачи данных.
Все сказанное выше применительно к передаче голоса по IP-сетям также распространяется и на другие формы связи, основанные на передаче данных. В конце концов, как только данные оцифрованы и разбиты на пакеты, их природа не имеет большого значения — важно, чтобы они кодировались и декодировались соответствующим образом и занимали адекватную полосу. Это облегчает развертывание на базе существующей VoIP-инфраструктуры совершенно нового набора сетевых приложений реального времени, таких как:
• видеоконференции;
• удаленное видеонаблюдение;
• адаптеры аналоговых телефонов;
• мультивещание;
• обмен сообщениями в режиме реального
времени;
• игры;
• электронные «белые доски».
Детальный взгляд на VoIP-систему
На рис. 1 изображены основные компоненты VoIP-системы: передача служебных сигналов, кодер-декодер, транспортный механизм и коммутационный шлюз.
Процесс обмена служебными сигналами (signaling) включает в себя создание, поддержание и завершение соединений между узлами.
Для снижения требований к полосе пропускания сети аудио- и видеосигналы кодируются перед передачей и декодируются при приеме. Этот процесс сжатия и преобразования регулируется различными стандартами кодеков аудио- и видеопотоков.
Сжатые пакеты пересылаются по сети, работа которой регулируется одним или несколькими транспортными протоколами. Коммутационный шлюз (switching gateway) гарантирует, что набор пакетов может быть использован в пункте назначения другой IP-системой или системой PSTN. В конечной точке назначения набор пакетов декодируется, преобразовывается обратно в аудиовидеосигнал и воспроизводится с помощью динамиков и отображающего устройства приемника.
Основы сетевого взаимодействия описываются семиуровневой моделью взаимодействия открытых систем (OSI, Open System Interconnect) (рис. 2). Пусть имеются два участника сеанса связи. Данные, формируемые
н
Служебная информация |—,
Информативный поток | б
Рис. 1. а) Упрощенная схема возможной конфигурации сети с подключенными к ней ^-телефонами; б) обмен данными и служебными сигналами между двумя конечными точками
Модель OSI
Модель TCP/IP
Протоколы TCP/IP
ПРИКЛАДНОЙ УРОВЕНЬ
УРОВЕНЬ ПРЕДСТАВЛЕНИЯ ПРИКЛАДНОЙ УРОВЕНЬ
СЕАНСОВЫЙ УРОВЕНЬ
ТРАНСПОРТНЫЙ УРОВЕНЬ ТРАНСПОРТНЫЙ УРОВЕНЬ
СЕТЕВОЙ УРОВЕНЬ УРОВЕНЬ МЕЖСЕТЕВОГО ВЗАИМОДЕЙСТВИЯ
КАНАЛЬНЫЙ УРОВЕНЬ УРОВЕНЬ СЕТЕВЫХ ИНТЕРФЕЙСОВ
ФИЗИЧЕСКИЙ УРОВЕНЬ
ПРИКЛАДНЫЕ ПРОГРАММЫ
МУЛЬТИМЕДИЙНЫЕ КОДЕКИ
RTCP
SIP
ПРОТОКОЛ УПРАВЛЕНИЯ ПЕРЕДАЧЕЙ (TCP) ПРОТОКОЛ ДЕЙТАГРАММ ПОЛЬЗОВАТЕЛЯ (UDP)
ПРОТОКОЛ МЕЖСЕТЕВОГО ВЗАИМОДЕЙСТВИЯ (IP)
ETHERNET IEEE 802.3 ETHERNET IEEE 802.11
ВИТАЯ ПАРА ОПТО- ВОЛОКНО Wi-Fi
Рис. 2. Модели стеков OSI и TCP/IP
каждым из них, начинают путь с верхнего уровня модели, подвергаются, по мере прохождения разных уровней, необходимым преобразованиям и обработке и, наконец, доставляются на физический уровень для передачи по физической среде. В точке назначения обработка осуществляется в обратном порядке, пакеты собираются в исходное сообщение и данные передаются конечному пользователю.
Управление соединением: H.323 и SIP
Первое, что система VoIP должна выполнить при совершении звонка — это установить присутствие и местоположение пользователей. Эти действия, а также настройку, модификацию параметров и завершение соединения выполняет протокол управления соединением (session-control protocol). В настоящее время широкое распространение получили два таких протокола. Первым по-
явился протокол H.323*, однако протокол инициации соединения (SIP, Session Initiation Protocol) быстро набирает популярность и становится де-факто основным стандартом. Рассмотрим подробнее функции этих протоколов.
Стандарт Международного союза электросвязи (ITU) H.323
H.323 — это стандарт ITU, изначально разработанный для мультимедийных (речь и видео) конференций в режиме реального времени и передачи вспомогательной информации. Он быстро эволюционировал, включив в себя требования к VoIP-сетям. Технически, этот стандарт является контейнером для ряда обязательных и необязательных стандартов сетевых и мультимедийных кодеков. Часть H.323, отвечающая за организацию соединения, регулируется протоколом H.225,
а согласование параметров поддерживается протоколом H.245.
Протокол инициации соединения (SIP)
Протокол SIP предложен инженерной группой по вопросам Интернета (IETF, Internet Engineering Task Force) [6] в рамках RFC 3261. Он был разработан специально для IP-телефонии и других сети Интернета, и, несмотря на перекрытие по многим позициям с H.323, обычно считается более современным решением.
Функцию обнаружения пользователей для SIP выполняет вспомогательный протокол описания соединения (SDP, Session Description Protocol), который обеспечивает согласование параметров и управление вызовом. По существу, SDP — это формат описания параметров инициализации для мультимедийного потока во время объявления о соединении и приглашения к соединению. Пара SIP/SDP в определенном роде аналогична набору протоколов H.225/H.245 в стандарте H.323.
SIP может использоваться в системе, имеющей только две конечные точки и не имеющей серверной инфраструктуры. В сетях общего пользования для установления соединений применяются специальные proxy- и регистрационные серверы. При этом каждый клиент регистрирует себя на сервере для того, чтобы звонящий мог найти его из любого места в Интернете.
Протоколы транспортного уровня
Описанные выше протоколы управления соединением отвечают за конфигурирование мультимедийных сеансов связи, осуществляемых по сети. Как только настройка соединения завершается, сетевые узлы начинают посылать друг другу мультимедийные данные при помощи одного или нескольких транспортных протоколов, таких как UDP или TCP.
* Если быть точнее, то задачи инициации и управления соединением регулируются протоколами Н.225.0 и Н.245, которые являются составными частями протокола Н.323.
Заголовок IP Заголовок UDP Заголовок RTP Полезные данные RTP
Рис. 3. Структура заголовка и полезные данные кадра RTP
Протокол дейтаграмм пользователя (UDP, User Datagram Protocol)
Протокол UDP [8] — это сетевой протокол без установки соединения. Подтверждение о приеме пакета на другом конце в UDP не предусмотрено. Поскольку гарантий доставки данных в протоколе UDP нет, передача речи с помощью одного только этого протокола при пиковых нагрузках на сеть хорошо работать не будет. Поэтому обычно поверх UDP используется транспортный протокол для мультимедийных данных, наподобие RTP [9].
Протокол управления передачей (TCP, Transmission Control Protocol)
В протоколе TCP [10] используется коммуникационная модель клиент-сервер. Клиент запрашивает (и ему предоставляется) обслуживание у другого компьютера сети (сервера), Каждый запрос клиента обрабатывается в индивидуальном порядке, независимо от любых предыдущих запросов.
На уровне TCP данные разбиваются на пакеты меньшего объема, которые могут быть переданы через Интернет, приняты уровнем TCP на другом конце соединения и собраны обратно в исходное сообщение. Уровень IP направляет пакеты в необходимый пункт назначения на основании информации, содержащейся в поле адреса каждого пакета.
В отличие от UDP, протокол TCP гарантирует 100%-ный прием пакетов на принимающей стороне, однако достигается это за счет возможности повторной передачи пакетов, которая добавляет вредные для данных реального времени задержки. Для речи задержка пакета, вызванная повторной передачей, так же вредна, как и потеря пакетов. Из-за этого свойства протокол TCP обычно считается непригодным для передачи потоковых мультимедийных данных в режиме реального времени.
На рис. 2 показано соответствие между моделью и протоколами TCP/IP Интернета и различными уровнями модели OSI,
Транспортные протоколы для мультимедийных данных
Как отмечено выше, передача мультимедийных данных непосредственно при помощи транспортного протокола не очень эффективна для связи в режиме реального времени. Поэтому за передачу таких данных в соответствии с необходимыми требованиями обычно ответчает транспортный уровень мультимедиа (media transport layer).
Транспортный протокол реального времени (RTP, Real-Time Transport Protocol) Протокол RTP обеспечивает службы доставки для пакетных аудио- и видеоданных реального времени. Он является стандартным способом передачи данных в режиме реального времени по IP-сетям. В целях мини-
© -------►
Надежность
Рис. 4. Сравнение надежности и производительности
различных протоколов
мизации заголовка пакета протокол RTP реализован в виде надстройки над UDP. Платой за это является отсутствие гарантий надежной передачи или правильного порядка приема пакетов. По сравнению с TCP протокол RTP менее надежен, однако за счет меньшего, чем в TCP, размера заголовка (рис. 3) он обладает меньшей задержкой передачи пакетов.
Для обеспечения заданного уровня качества обслуживания в протоколе RTP передача пакетов осуществляется с подтверждением доставки, и каждый посылаемый пакет сопровождается временной меткой и номером. Протокол RTP также поддерживает ряд схем исправления ошибок, повышающих надежность передачи, и предоставляет некоторые базовые функции защиты данных за счет шифрования пакетов. На рис. 4 приведено сравнение производительности и надежности UDP, RTP и TCP.
Протокол управления RTP (RTCP, RTP Control Protocol)
Протокол RTCP [11] — это вспомогательный протокол, который используется для передачи управляющей информации, такой как количество посланных и утерянных пакетов, величина джиттера и задержки, описание параметров конечной точки. Наибольшую пользу он представляет для управления временными базами сеансов и анализа качества обслуживания потока RTP. Протокол RTCP также может обеспечивать обратный канал для ограниченной повторной передачи пакетов RTP.
Мультимедийные кодеки
На вершине стека VoIP располагаются протоколы, имеющие дело непосредственно с пе-
редаваемыми мультимедийными данными. Существует ряд аудио- и видеокодеков, которые могут работать с транспортным уровнем мультимедиа (см. «Стандарты мультимедийных кодеков»).
Определить, насколько применим тот или иной кодек, помогают ответы на вопросы: насколько эффективно кодек использует доступную пропускную способность системы, как он справляется с потерей пакетов, каковы финансовые затраты, связанные с его применением (включая вознаграждение за использование интеллектуальной собственности).
Применение процессоров Biackfin в VoIP-системах
В отличие от традиционных решений, в которых для обеспечения функций VoIP используются два процессорных ядра, процессоры Blackfin позволяют реализовать систему на базе архитектуры с унифицированным ядром, которое может выполнять обработку аудио- и видеосигналов одновременно с характерной для RISC-микроконтроллеров обработкой, отвечающей за функции сетевого и пользовательского интерфейсов. Эта уникальная возможность реализовать полный набор VoIP-функций в одном процессоре дает разработчику такие преимущества, как унифицированная среда проектирования программного обеспечения, более быстрая отладка и развертывание, а также уменьшение суммарной стоимости системы.
К примеру, подсемейство процессоров Blackfin ADSP-BF537 [12] обеспечивает необходимую для развертывания VoIP-приложений степень интеграции и производительности при низкой потребляемой мощности. Эти процессоры имеют несколько интегрированных последовательных портов (для подключения аудио АЦП и ЦАП без дополнительных компонентов), контроллер внешней памяти, параллельный периферийный интерфейс (PPI) для взаимодействия с ЖК-дисплеем или видеокодером-декодером, и контроллер 10/100BaseT Ethernet MAC. При необходимости через интерфейс внешней памяти к процессору можно подключить второй контроллер Ethernet MAC.
Для организации полнофункционального канала связи, включая обработку речи и поддержку сетевого стека, требуется менее 75 MIPS вычислительной мощности. Неза-действованной вычислительной мощности
процессоров ADSP-BF537, тактовая частота которых достигает 600 МГц, достаточно для добавления, по мере необходимости, дополнительных функций VoIP, таких как сжатие и восстановление мультимедийных данных. В свою очередь, конкурирующие решения на базе специализированных процессоров и микроконтроллеров, как правило, имеют ограниченную производительность; возможности добавления новых или модернизации существующих функций в них обычно отсутствуют, либо слабо развиты.
Основной сегмент VoIP-приложений, в котором находят применение процессоры Blackfin, — это высококачественные системы с малым числом каналов, обладающие запасом по производительности для добавления таких функций, как передача музыки, видео и изображений, а также управление системой в целом. Следующая часть статьи будет посвящена обзору некоторых реально существующих VoIP-устройств — начиная с решений, базирующихся на открытом (open-source) коде, и заканчивая выпускаемыми в больших объемах продуктами для построения систем по модульному (OEM) принципу.
Blackfin/Linphone
VoIP-система на базе процессоров Blackfin может быть построена с использованием открытого программного обеспечения под ^Clinux (версия популярной ОС GNU/Linux для встраиваемых процессоров). Один из таких пакетов для IP-телефонии, распространяемых в рамках лицензии GPL (General Public License), который называется Linphone [14], был портирован на ^Clinux для процессоров Blackfin. Он основан на протоколе SIP и позволяет устройству, реализованному на процессоре Blackfin, связываться с любой SIP-совместимой конечной точкой. Данная система может использоваться даже для подключения к телефонам в узлах коммутируемой телефонной сети общего пользования при условии, что сеть передачи данных имеет соответствующую инфраструктуру SIP-серверов и шлюзов. В части кодирования и декодирования текущая версия Linphone для процессоров Blackfin поддерживает форматы сжатия аудиосигнала G.711 (по А-закону и ц-зако-ну), GSM и Speex.
Основными компонентами проекта Blackfin Linphone являются:
• Сетевой стек TCP/IP ОС Linux: включает необходимые транспортные и управляющие протоколы, такие как TCP и UDP.
• Linphone: основная программа VoIP, которая содержит реализации кодеков G.711 и GSM для Blackfin. Она включает в себя как графический интерфейс пользователя (GUI, graphical user interface) для настольных ПК, так и простое приложение командной строки для встраиваемых систем без поддержки графики.
Стандарты мультимедийных кодеков
Аудиокодеки
G.711
Выпущенный в 1988 году международный стандарт для кодирования телефонного аудиосигнала в канале 64 кбит/с, G.711, является наиболее простым из представленных в данном обзоре стандартов. Единственный вид сжатия, который применяется в G.711, — это компандирование (по ^1- или А-закону), при котором каждый отсчет сигнала сжимается в 8-разрядное слово, что дает скорость выходного потока символов 64 кбит/с. G.711 определен стандартом H.323 в качестве базового кодека для передачи речевых сообщений.
G.723.1
G.723.1 — это кодек с двумя скоростями передачи, основанный на алгебраическом линейном предсказании с кодовым возбуждением (ACELP, algebraic code-excited linear-prediction). Этот стандарт был выпущен в 1996 году специально под VoIP-приложения. Аудиосигнал в G.723.1 кодируется в переделах временных кадров длительностью 30 мс. Каждый временной кадр может быть представлен 20 или 24 байтами, при этом скорость выходного потока данных составляет 5,3 или 6,3 кбит/с соответственно. Эти скорости могут быть дополнительно снижены за счет обнаружения активности речи и формирования комфортного шума. Кодек обладает хорошей устойчивостью к ошибкам сети, таким как потеря кадров или ошибки в передаваемых символах. В соответствии с требованиями семейства международных стандартов передачи мультимедийных данных H.324 кодек G.723.1 может использоваться для организации видеоконференций.
G.729
В 1996 году был выпушен еще один стандарт речевого кодека — G.729, обеспечивающий сжатие аудиоданных с малой задержкой преобразования за счет разбиения речи на кадры по 10 мс. В этом кодеке используется алгоритм ACELP с сопряженной структурой (CS-ACELP, conjugate-structure ACELP). G.729 сжимает 16-разрядные сигналы с частотой дискретизации 8 кГц в двоичный поток со стандартной скоростью 8 кбит/с, однако также поддерживает скорости 6,4 и 11,8 кбит/с. Кроме того, в нем имеются функции обнаружения активности речи и формирования комфортного шума.
GSM
Речевые кодеки GSM находят применение в системах сотовой телефонии по всему миру. Стандарты для этих кодеков выпускаются Европейским институтом стандартов по телекоммуникациям (ETSI, European Telecommunications Standards Institute). Развитие кодеков GSM началось с появления полноскоростного кодека (GSM-FR, GSM Full Rate). В этом стандарте используется вариант CELP, который называется кодером с линейным предсказанием и регулярным импульсным возбуждением (RPELPC, regular pulse-excited linear
predictive coder). Входной речевой сигнал в нем разбивается на кадры по 20 мс, каждый из которых кодируется 260 битами, что дает полную скорость 13 кбит/с. Существуют бесплатные версии GSM-FR, которые доступны для применения с некоторыми ограничениями.
Speex
Бесплатный открытый формат сжатия аудиосигнала для речевых кодеков, Speex, был выпущен организацией Xiph.org как полностью беспатентное решение для обработки речи. Как и многие другие речевые кодеки, Speex основан на CELP с избыточным кодированием. Он может кодировать сигналы линейной ИКМ с частотами 8, 16 и 32 кГц в двоичные потоки со скоростями от 2 до 44 кбит/с. Speex устойчив к ошибкам сети и поддерживает обнаружение активности речи. Помимо переменной скорости Speex также обладает уникальным свойством кодирования стереосигналов. Исходный текст программы кодека доступен на сайте Speex.org и включает в себя оптимизированный код алгоритма сжатия речи в узкополосный цифровой поток на языке ассемблера, а также реализацию подавителя эхо-сигнала для процессоров Blackfin.
Видеокодеки
H.261
Этот разработанный в 1990 году стандарт был первым стандартом видеокодека, получившим широкое применение. В нем впервые была предложена идея сегментирования кадра на «макроблоки» размером 16x16, изменение которых отслеживается от кадра к кадру для формирования векторов компенсации движения. Данный стандарт, в первую очередь, ориентирован на обеспечение видеоконференций по ISDN линиям (px64 кбит/с, где p варьируется от 1 до 30). На вход кодека, как правило, подаются данные в формате CIF (352?288) с частотой 30 кадров/с (fps, frames-per-second), а поток сжатых выходных кадров обычно имеет скорость от 64 до 128 кбит/с при разрешении 10 fps. Хотя H.261 используется и сейчас, его показатели значительно уступают показателям стандарта H.263. Несмотря на это, стандарт H.261 определен стандартом H.323 как базовый для передачи видеоизображений.
H.263
Этот кодек широко применяется в видеоконференциях и превосходит H.261 на всех скоростях передачи. Входными для него обычно являются данные в формате QCIF (quarter-common intermediate format) (176x144) или CIF с частотой 30 fps, а скорости выходного потока при частоте смены кадров 10 fps и таком же, как и в Н.261, качестве могут составлять менее 28,8 кбит/с. Поэтому, в отличие от стандарта H.261, который требует применения линий ISDN (integrated-serv-ices-digital-network), для H.263 могут использоваться обычные телефонные линии. Стандарт
H.263 находит применение в таких областях, как видеотелефония и сетевое видеонаблюдение, и очень популярен в приложениях, основанных на IP-технологиях.
ш *
Рис. 5. Fusion Voice Gateway на базе процессора Blackfin от Unicoi Systems
• oRTP: реализация стека RTP, разработанная для Linphone и выпущенная под LGPL-лицензией.
• oSIP: многопоточная реализация протокола SIP, выпущенная под LGPL-лицензией.
• Speex: открытая реализация кодека Speex. Она содержит специфические для процессоров Blackfin части кода, оптимизированные под вычисления с фиксированной точкой, которые включаются в основную программу при помощи команд условной компиляции.
Fusion Voice Gateway производства Unicoi Systems на базе процессора Blackfin Fusion Voice Gateway (рис. 5) — это законченный речевой шлюз/адаптер терминала (Voice Gateway/Terminal Adapter) [15] от компании Unicoi Systems [16]. Обладая функциональными возможностями маршрутизатора и полной поддержкой SIP-телефонии, реализованной на одноядерном процессоре Blackfin, Fusion Voice Gateway позволяет сократить время выхода готовой продукции при разработке адаптеров терминалов.
В Fusion Voice Gateway реализованы основные функции IP-телефонии, включая стандарт эхоподавления G.168 и многочисленные речевые кодеки G.7xx. Кроме того, он обладает полным набором функций стандартной телефонии и совмещает в себе возможности интернет-маршрутизатора, 4-портового коммутатора Ethernet и VoIP-шлюза.
Fusion IP Phone производства
Unicoi Systems на базе процессора Blackfin
Fusion IP Phone производства Unicoi Systems — это законченное программно-аппаратное решение, которое представляет собой полнофункциональную платформу, поддерживающую современные и только зарождающиеся стандарты IP-телефонов и обладающую возможностями расширения функций.
Использование Fusion IP Phone приводит к уменьшению суммарной стоимости компонентов, а также времени, затрачиваемого на разработку, и сложностей, зачастую присущих процессу создания IP-телефона. Программное обеспечение проекта, который реализован на ADSP-BF536, содержит чувствительные ко времени выполнения компоненты (операционная система реального времени, менеджер звонков, алгоритмы обработки ре-
( L/RIN )-
(l/r out)-»
( Аналоговая vвидеокамера
С Цифровая Л ^видеокамера)
( т>Г
^(NTSC/PAL)
( QVGA V I LCD Г
Аудиокодек
FLASH
Л
SDRAM
Л
Декодер
видеосигнала
Кодер
видеосигнала
0-
Процессор для встраиваемых систем Blackfin
> К > к
Удаленное управление Клавиатура
802.11b
MAC + PHY
ETHERNET
RJ-45
Рис. 6. Функциональная схема проекта Blackfin BRAVO Broadband Audio/Video Communication
чи, подавление акустического эхо-сигнала для полнодуплексного громкоговорителя), протоколы связи (TCP/IPv4/v6, SIP, RTP и т. д.) и периферийные функции (драйверы ЖК-дисплея и клавиатуры и т. д.), необходимые для построения IP-телефона с базовыми или расширенными функциями.
VoIP-системы Blackfin BRAVO
VoIP-телефон и видеофон Blackfin BRAVO компании Analog Devices — это законченные системные решения, предназначенные для построения по модульному принципу высокопроизводительных, недорогих и обладающих богатым набором функций настольных VoIP-телефонов, видеофонов и адаптеров телефонов. Эти проекты включают в себя полный набор программного обеспечения для VoIP-приложений, которое работает под управлением большого набора API-функций (application program interfaces), осуществляющих настройку и управление ядром системы.
В части обработки аудиосигналов в проектах BRAVO реализовано множество G.7xx аудиокодеков, G.168-совместимый алгоритм подавления эхо-сигнала линии и подавление акустического эхо-сигнала для обеспечения максимальной четкости звука. В качестве дополнительной опции в проект могут быть включены радиотрансиверы для беспроводной передачи аудиосигнала. Проекты Blackfin BRAVO поддерживают программные стеки, совместимые как с H.323, так и с SIP.
В части обработки видеоизображений проектом BRAVO Broadband Audio/Video Communication (широкополосная аудиовидеосвязь) (рис. 6) обеспечивается обработка цветного видеосигнала с разрешением CIF (common intermediate format) и частотой до 30 кадров в секунду, включая поддержку видеокодеков стандартов ITU H.263 и H.264, функции «картинка в картинке», эффектов alpha и chroma keying, графики высокого разрешения с наложением изображений, а также фильтрации, устраняющей временные колебания яркости строк (antiflicker filtering).
Заключение
Технология VoIP, несомненно, способна совершить революцию в общении людей между собой, независимо от того, находятся они дома или на работе, подключены к проводной или беспроводной сети, довольствуются простым аудиосигналом или нуждаются ив видеоизображении. Применение процессоров Blackfin, обладающих необходимой вычислительной мощностью и гибкостью для работы с самыми разными стандартами, приведет к еще большему проникновению VoIP-технологий во встраиваемые системы, позволяя добавлять новые возможности в приложения, которые еще не испытали на себе преимуществ этой интереснейшей технологии. ■
Литература
1. http://www.analog.com/processors/processors/ blackfin
2. http://www.ieee802.org/11
3. http://www.wi-fi.org
4. http://www.itu.int/rec/T-REC-H.323/en
5. http://www.ietf.org/rfc/rfc3261.txt
6. http://www.ietf.org
7. http://www.ietf.org/rfc/rfc2327.txt
8. http://www.ietf.org/rfc/rfc768.txt
9. http://www.ietf.org/rfc/rfc3550.txt
10. http://www.ietf.org/rfc/rfc0793.txt
11. http://www.ietf.org/rfc/rfc3550.txt
12. www.analog.com
Поиск по ключевой фразе ADSP-BF537
13. http://blackfin.uclinux.org
14. http://docs.blackfin.uclinux.org/ doku.php?id=linphone
15. http://www.unicoi.com/Documentation/ ProductBriefs/voicegateway_unicoi_blackfin.pdf
16. http://www.unicoi.com
17. http://www.analog.com/processors/ platforms/blackfin_BRAVO/ Blackfin_BRAVO_VoIP_final.pdf
18. http://www.analog.com/processors/ platforms/blackfin_BRAVO/ Blackfin_BRAVO_Videophone(D)_final.pdf