Декодирование сообщений SIP выполняется грамматическим анализатором, который является интегральной составляющей стека протокола SIP. Он изучает сообщение и извлекает информацию, относящуюся к конкретному уровню. Вследствие различия путей, по которым может быть получено сообщение SIP, передающее одну и ту же информацию, грамматический анализатор имеет возможность выделять информацию заголовка, данные о параметрах, и т.п., независимо от формирования сообщения. Например, грамматический анализатор может копировать печатные знаки верхнего и нижнего регистра, варианты выделения заголовка, печатные знаки в строке, пробелы, знаки препинания, знаки в таблицах, и т.п. Таким образом, грамматический анализатор обеспечивает функции комплексного анализа. Стеки протокола SIP обычно представляются как общие готовые компоненты и реализуют полную спецификацию протокола SIP, делая их пригодными для использования с любым типом элемента SIP.
Каждый тип элементов протокола SIP представляет разные степени функциональной сложности, и количество сообщений, обрабатываемых каждым типом элемента, варьируется. Например, компоненты агента пользователя SIP и серверы агента пользователя могут выполнять сложные задачи обработки и связи, например, при установке соединения, хотя число сообщений, обрабатываемых клиентом агента пользователя, обычно сравнительно невелико. Так, сервер агента пользователя может только обрабатывать сообщения в связи с запросами на установление соединений, поступающих от клиента. Если соединение установлено и никаких изменений в его параметрах не произошло, клиент или сервер агента пользователя не будут обрабатывать дальнейшие сообщения до тех пор, пока соединение не завершится. С другой стороны, иные элементы (такие, как серверы изменения направления протокола SIP) выполняют более простые задачи обработки, но принимают значительно большее количество сообщений. Например, сервер изменения направления протокола SIP выполняет сравнительно простую задачу регистрации отображения между адресом источника SIP и адресом IP, которого адрес источника SIP может достичь. Это фундаментальная задача в сети SIP, так как серверы изменения направления используются представителями SIP, чтобы получить IP-адрес аппарата пользователя для маршрутизации соединения. Это важно, в частности, в случаях, когда доступ к сети получают мобильные клиенты, так как обычно адреса IP назначаются динамически и могут часто меняться. Кроме того, для гарантии, что отображаемая информация не устарела, каждый мобильный клиент обычно посылает с частыми интервалами сообщение REGISTER. Из изложенного ясно, что число сообщений, которые должны обрабатываться сервером изменения направления, существенно больше, чем число сообщений, обрабатываемых клиентом агента пользователя. Например, серверы текущей регистрации могут обрабатывать от 200 до 1000 операций регистрации в секунду.
Задачи кодирования речевых сигналов. Важным фактором ощущаемого качества кодера является полоса звуковых частот, в которой передается кодируемый сигнал. До настоящего времени большинство кодеков, используемых в современной телефонной связи, занимают полосу 300...3400 Гц (так называемая узкополосная речь). Это ограничение существует почти 100 лет, причем сами сети полосу частот не ограничивают (ограничение обусловлено характеристиками применяемых преобразователей). Именно частота 3,4 кГц была принята в качестве верхней граничной для коммутируемой телефонной сети общего пользования в стандарте цифровой передачи G.711. Хотя большая часть энергии чаше всего содержится в гласных звуках, которые занимают полосу частот ниже 3 кГц, согласные, несущие критическую информацию, часто требуют полосы частот выше 3 кГц. Поэтому узкополосные системы могут ухудшить разборчивость, например, звуки "с" и "ф" различаются только за счет частот выше 3 кГц. С другой стороны, увеличение полосы частот сигнала до 50...7000 Гц (так называемой широкой полосы), улучшает разборчивость, что требует от слушателя меньшей концентрации внимания, а следовательно, значительно снижает усталость.
Сегодня в эксплуатации много узкополосных речевых кодеров - начиная с G.711, который применяется в КТСОП со скоростью передачи 64 кбит/с, до G.729 (8 кбит/с) и G.723.1 (6,4 и 5,3 кбит/с), которые используются в услугах мультимедиа. Одним из кодеров, разработанных для мобильных сетей и работы с разными скоростями передачи вплоть до 43 кбит/с, является адаптивный многоскоростной кодек AMR (AdaptiveMulti-Rate). В настоящее время мало работ по новым узкополосным кодерам - может быть, потому, что уже существуют кодеры для большинства применений. Единственная область, в которой появляются новые узкополосные кодеры - это специальные разработки для пакетных систем Интернет-телефонии. В них созданы более робастные к потерям пакетов кодеры, чем предыдущие кодеры, разработанные для сетей с коммутацией каналов. Это кодеры iLBC (предложенные комиссией IETF) и EnhancedG.711J производства GlobalIPSound, Steex.
Рассмотрим их основные характеристики и применение.
iLBC (internetLowBitrateCodec) – это свободный от лицензионных отчислений кодек для голосовой связи через интернет. Кодек предназначен для узкополосных интернет каналов, со скоростью передачи аудио сигнала (человеческой речи) 13.33 кбит/с при длине кадра в 30 мс или 15.20 кбит/с при 20 мс. Кодек iLBC позволяет добиться хорошего качества передачи аудио сигнала даже при некоторых искажениях, которые происходят в связи с потерей или задержкой пакетов.
iLBC описан в стандарте в RFC 3951. Это один из кодеков, который используется в GizmoProject, Ekiga, OpenWengo, GoogleTalk, Skype и Yahoo! Messenger.
· Частота дискретизации 8 кГц/16 бит (160 отсчетов для 20-мс кадров, 240 отсчетов для 30-мс кадров)
· Управляемая реакция на потерю пакетов, задержки и джиттер
· Фиксированный битрейт (15.2 кбит/с для 20-мс кадров, 13.33 кбит/с для 30-мс кадров)
· Фиксированный размер кадра (304 бита в кадре для 20-мс кадров, 400 бит в кадре для 30-мс кадров)
· Обеспечивается устойчивость к потерям пакетов на уровне ИКМ со скрытием потерь пакетов, как в ITU-TG.711
· Загрузка процессора на уровне G.729a при более высоком качестве и лучшей реакции на потерю пакетов
· Лицензионная чистота и свобода от лицензионных отчислений
· Коммерческое использование исходного кода, предлагаемого GIPS, требует лицензирования
· Тестирование PSQM при идеальных условиях приводит к усредненной субъективной оценке (MOS) в 4.14 для iLBC (15.2 кбит/с), сравнимой с оценкой 4.45 для G.711 (Мю-закон)
Speex – это свободный кодек для сжатия речевого сигнала, который может использоваться в VoIP приложениях и подкастах. Он не имеет никаких патентных ограничений и лицензирован под последней версией лицензии BSD (без третьей статьи). Speex может быть использован совместно с медиа-контейнером Ogg или передаваться напрямую через UDP/RTP.
Разработчики позиционируют их проект как дополнение к Vorbis, формату сжатия звука общего назначения.
В отличие от многих других кодеков речи, Speex в основном предназначается не для сотовых телефонов, а для использования в VoiceoverIP (VoIP) и создания файлов со сжатым звуком. Speex оптимизирован для получения высококачественного речевого сигнала при низких битрейтах. Для достижения этой цели кодек использует переменный битрейт и поддерживает разные диапазоны частот: сверхширокий (англ. ultra-wideband, частота дискретизации 32 КГц), широкий (англ. wideband, 16 КГц) и узкий (англ. narrowband, качество телефонной линии, 8 КГц). Направленность на VoiceoverIP (VoIP) вместо сотовой связи означает, что Speex должен быть устойчив к потерям пакетов данных, но не к повреждению их, так как UDP (протокол неподтверждаемой доставки сообщений) предоставляет информацию лишь двух видов — данные прибыли неповрежденными или же потеряны. Эта особенность определяет выбор для Speex техники кодирования CodeExcitedLinearPrediction (CELP).
Основные характеристики кодека:
· Свободное и открытое программное обеспечение, не имеет патентных ограничений
· Интеграция широко- и узкополосного канала в одном потоке данных
· Динамическое переключение битрейта и переменный битрейт (англ. Variable bit-rate, VBR)
· Детектор речевой активности (англ. VoiceActivityDetection, VAD, интегрирован с VBR)
· Variable complexity
· Опция декодера — интенсивное стерео (англ. Intensitystereo)
Однако наряду с разработками узкополосных речевых кодеков большое внимание специалистов привлекают широкополосные речевые кодеки, рассчитанные на полосу частот речевого сигнала 50...7000 Гц. Первые широкополосные кодеры G.722 (48. 56 и 64 кбит, с) были стандартизированы МСЭ в 1988 г. Первоначально предполагалось, что они заменят кодеры G.711, когда ЦСИО получат более широкое распространение. Это кодеры со сложной формой сигнала, которые работают с двумя поддиапазонами и имеют хорошие характеристики, но невысокий коэффициент сжатия. Затем последовала рекомендация G.722.1 (24 и 32 кбит/с) на кодер, широко используемый в настоящее время в терминалах конференц-связи.