Эффективность использования пропускной способности IP-сети существенным образом зависит от выбора оптимального алгоритма кодирования/декодирования речевой информации – кодека.
Все существующие типы речевых кодеков по принципу действия можно разделить на три группы:
На рисунке 5.6 представлена усредненная субъективная оценка качества кодирования речи для вышеперечисленных типов кодеков.
Рисунок 5.6 - Усредненная субъективная оценка качества кодирования речи для различных типов кодеков
В голосовых шлюзах IP-телефонии понятие кодека подразумевает не только алгоритмы кодирования/декодирования, но и их аппаратную реализацию. Большинство кодеков, используемых в IP-телефонии, описаны в рекомендациях семейства «G» стандарта Н.323 (рисунок 5.7).
Рисунок 5.7 - Стандарты для кодирования речевых сигналов
Рассмотрим некоторые основные кодеки, используемые в шлюзах IP-телефонии операторского уровня.
Кодек G.711
Рекомендация G.711, утвержденная МККТТ в 1984 г., описывает кодек,
использующий ИКМ преобразование аналогового сигнала с точностью 8 бит, тактовой
частотой 8 Кгц и простейшей компрессией амплитуды сигнала. Скорость потока
данных на выходе преобразователя составляет 64 Кбит/с. Для снижения шума
квантования и улучшения преобразования сигналов с небольшой амплитудой при
кодировании используется нелинейное квантование по уровню (рисунок 5.8) согласно
специальному псевдо-логарифмическому закону: А-закону для европейской системы
ИКМ-30/32 или µ-закону для североамериканской системы ИКМ-24.
Рисунок 5.8 - Нелинейное квантование по уровню
Первые ИКМ кодеки с нелинейным квантованием появились уже в 60-х годах. Кодек G.711 широко распространен в системах традиционной телефонии с коммутацией каналов. Несмотря на то, что рекомендация G.711 в стандарте Н.323 является основной и первичной, в шлюзах IP-телефонии данный кодек применяется редко из-за высоких требований к скорости передачи (64 Кбит/с) и задержкам в канале передачи. Использование G.711 в системах IP-телефонии обосновано лишь в тех случаях, когда требуется обеспечить максимальное качество кодирования речевой информации при небольшом числе одновременных разговоров.
Кодек G.726
Один из старейших алгоритмов сжатия речи - адаптивная дифференциальная ИКМ
(АДИКМ) - был принят в 1984 г. (рекомендация G.726). Этот алгоритм дает
практически такое же качество воспроизведения речи, как и ИКМ, однако для
передачи информации при его использовании требуется полоса всего в 16-32 Кбит/с.
Метод основан на том, что в аналоговом сигнале, содержащем речевую информацию,
невозможны резкие скачки интенсивности. Поэтому, если кодировать не мгновенное
значение амплитуды сигнала, а ее изменение по сравнению с предыдущим значением,
то можно обойтись меньшим числом разрядов. В АДИКМ (ADPCM) изменение уровня
сигнала кодируется четырехразрядным числом, при этом частота измерения амплитуды
сигнала сохраняется неизменной (8 Кгц). Процесс преобразования не вносит
существенной задержки и требует от DSP 5,5-6,4 миллионов операций в секунду (Million
Instructions Per Second, MIPS). Кодек G.726 может применяться совместно с
кодеком G.711 для снижения скорости кодирования последнего. Кодек G.726
предназначен для использования в системах видеоконференций.
Кодек G.723.1
Рекомендация G.723.1 описывает гибридные кодеки, использующие технологию
кодирования речевой информации, сокращенно называемую "множественное импульсное,
многоуровневое квантование" (Multy-Pulse - Multy Level Quantization, MP-MLQ).
Данный тип кодеков можно охарактеризовать как комбинацию АЦП/ЦАП и вокодера.
Своим возникновением гибридные кодеки обязаны системам мобильной связи.
Применение вокодера позволяет снизить скорость передачи данных в канале, что
принципиально важно для эффективного использования радио тракта и канала в
IP-сетях. Основной принцип работы вокодера - синтез исходного речевого сигнала
посредством адаптивной замены его гармонических составляющих соответствующим
набором частотных фонем и согласованными шумовыми коэффициентами. Кодек G.723
осуществляет преобразование аналогового сигнала в поток данных со скоростью 64
Кбит/с (ИКМ), а затем при помощи многополосного цифрового фильтра/вокодера
выделяет частотные фонемы, анализирует их и передает по IP-каналу информацию
только о текущем состоянии фонем в речевом сигнале. Данный алгоритм
преобразования позволяет снизить скорость кодированной информации до 5,3-6,3
Кбит/с без заметного для пользователя ухудшения качества воспроизведения речи.
Кодек имеет две скорости и два варианта кодирования: 6,3 Кбит/с с алгоритмом
MP-MLQ и 5,3 Кбит/с с алгоритмом CELP (Code Excited Linear Prediction) -
линейное предсказание с кодовым возбуждением. Первый вариант предназначен для
сетей с пакетной передачей голоса и обеспечивает лучшее качество кодирования по
сравнению с вариантом CELP, но менее адаптирован к использованию в сетях со
смешанным типом трафика (голос/данные). Класс речевых кодеров с линейным
предсказанием и кодовым возбуждением (CELP) занимает промежуточное положение
между кодерами формы сигнала и параметрическими вокодерами. Анализ параметров
речевого сигнала осуществляется на интервалах 10-30 мс, что позволяет наиболее
эффективно применять CELP при скоростях передачи от 4 до 16 Кбит/с.
Процесс преобразования требует от DSP 16,4-16,7 MIPS и вносит задержку 37 мс. Кодек G.723.1 широко применяется в голосовых шлюзах и прочих устройствах IP-телефонии. Кодек G.723.1 уступает по качеству кодирования речи кодеку G.729a, но менее требователен к ресурсам процессора и пропускной способности канала.
Кодеки G.729
Семейство включает кодеки G.729, G.729 Annex A, G.729 Annex B. Кодер
содержит детектор активности источника речевого сигнала (Voice Activity Detector,
VAD) и генератор комфортного шума. Детектор активности источника речевого
сигнала предназначен для обнаружения и выделения интервалов активности источника
или шума без речи. Порог принятия решения в детекторе не должен быть слишком
низким, приводящим к частому срабатыванию от шумов. В то же время, порог не
должен быть и слишком высоким, так как это приведет к вырезанию начала фразы и
ухудшению разборчивости. Кодеки G.729 сокращенно называют CS-ACELP (Conjugate
Structure - Algebraic Code Excited Linear Prediction), что переводится как
"сопряженная структура с управляемым алгебраическим кодом линейным
предсказанием". Процесс преобразования использует DSP 21,5 MIPS и вносит
задержку 15 мс. Скорость кодированного речевого сигнала составляет 8 Кбит/с. В
устройствах VoIP данный кодек занимает лидирующее положение, обеспечивая
наилучшее качество кодирования речевой информации при достаточно высокой
компрессии.
Кодек G.728
Гибридный кодек, описанный в рекомендации G.728 в 1992 г., относится к
категории кодеков с управляемым кодом линейным предсказанием и малой задержкой (Low
Delay - Code Excited Linear Prediction, LD-CELP). Кодек обеспечивает скорость
преобразования 16 Кбит/с, вносит задержку при кодировании от 3 до 5 мс. Для его
реализации необходим процессор с быстродействием более 40 MIPS. Кодек
предназначен для использования, в основном, в системах видеоконференций. В
устройствах IP-телефонии данный кодек применяется достаточно редко.
Основные характеристики рассмотренных кодеков приведены в таблице 5.4.
Кодек | Метод компрессии | Скорость кодирования | Сложность реализации | Качество | Задержка |
G.726 | ADPCM | 32/24/16 Кбит/с | Низкая (8 MIPS) | Хорошее (32 К), плохое (16 К)/TD> | Очень низкая (0,125мс) |
G.729 | CS-ACELP | 8 Кбит/с | Высокая (30 MIPS) |
Хорошее |
Низкая (10 мс) |
G.729A | CA-ACELP | 8 Кбит/с | Умеренная (20 MIPS) | Среднее | Низкая (10 мс) |
G.723.1 | MP-MLQ | 6,4/5,3 Кбит/с | Умеренная (16 MIPS) | Хорошее (6,4), среднее (5,3) |
Высокая (37 мс) |
G.728 | LD-CELP | 16 Кбит/с | Очень высокая (40 MIPS) | Хорошее | Очень низкая (3-5 мс) |