Таблица 3.2
Параметры кодеров
Параметры кодера | Кодер | ||
G.729 | G.729A | G.723.1 | |
Скорость бит, кбит/с | 8 | 8 | 5,3…6,3 |
Размер фрейма, мс | 10 | 10 | 30 |
Размер подфрейма, мс | 5 | 5 | 7,5 |
Алгебраическая задержка, мс | 15 | 15 | 37,5 |
Быстродействие, млн. оп./с | 20 | 10 | 14…20 |
Объем ПЗУ, байт | 5,2 К | 4 К | 4,4 К |
Качество | Хорошее | Хорошее | Хорошее |
Для режима 5,3 кбит/с рекомендация G.723.1 предусматривает фреймы возбуждения длительностью 7,5 мс и также использует четырехимпульсное ACELP-возбуждение кодовой страницы. Для скорости 6,3 кбит/с используется технология многоимпульсного возбуждения с квантованием и алгоритмом максимального правдоподобия (MP-MLQ). В этом случае позиции фреймов группируются в подгруппы с четными и нечетными номерами. Для определенного номера импульса из четной последовательности (пятый или шестой в зависимости от того, является ли сам фрейм четным или нечетным) используется последовательный многоимпульсный поиск. Похожий поиск повторяется для подфреймов с нечетными номерами. Для возбуждения выбирается группа с минимальными общими искажениями.
На стороне декодера информация кодера с линейным предсказанием (LPC) и информация адаптивной и фиксированной кодовой книг демультиплексируется и используется для реконструкции выходного сигнала. Для этих целей используется адаптивный постфильтр. В случае кодера G.723.1 сигнал возбуждения перед прохождением через фильтр синтеза LPC пропускается через LT (long-term — долговременный) постфильтр и ST (short-term — кратковременный) постфильтр.
В Рекомендации содержится описание алгоритма кодирования речевых сигналов на скорости 16 кбит/с с помощью линейного предсказания с кодированием сигнала возбуждения с малой задержкой. Алгоритм LD-CELP описывает работу кодера и декодера.
В алгоритме LD-CELP сохранена суть метода CELP, представляющего собой метод «анализа через синтез» путем поиска сигналов в кодовой книге. Для получения алгоритмической задержки порядка 0,625 мс используется адаптация предсказателей и уровней сигнала возбуждения по выходу. Передается только индекс сигнала возбуждения, найденный в кодовой книге. Обновление коэффициентов предсказания производится с помощью LPC-анализа ранее квантованной речи. Уровень возбуждения обновляется с помощью информации, содержащейся в ранее квантованном сигнале возбуждения. Размер блока для адаптации вектора сигнала возбуждения и уровня составляет всего лишь пять отсчетов. Обновление взвешивающего фильтра, учитывающего восприятие, производится с помощью LPC-анализа неквантованной речи.
После выполнения преобразования сигнала ИКМ по закону А или μ в линейный ИКМ-сигнал входной сигнал делится на блоки по пять последовательных отсчетов. Для каждого входного блока кодер пропускает каждый из 1024 векторов кодовой книги (хранящихся в кодовой книге сигнала возбуждения) через устройство масштабирования уровня сигнала возбуждения и синтезирующий фильтр. Из полученных в результате пропускания всех 1024 векторов-кандидатов квантованного сигнала кодер определяет один, минимизирующий величину взвешенной по частоте среднеквадратической ошибки относительно вектора входного сигнала. 10-битовый индекс, соответствующий наилучшему вектору в кодовой книге, который соответствует наилучшему вектору-кандидату квантованного сигнала, передается в декодер. На следующем этапе для обновления памяти фильтра и подготовки к кодированию следующего вектора сигнала наилучший кодовый вектор проходит через устройство масштабирования уровня сигнала возбуждения и синтезирующий фильтр. Коэффициенты синтезирующего фильтра и уровень сигнала возбуждения периодически обновляются путем адаптации по выходу, базирующейся на квантованном сигнале, масштабированном по уровню, и сигнале возбуждения.
Индекс в книге векторного квантования (VQ) возбуждения представляет собой единственную информацию, которая в явной форме передается из кодера в декодер. Три других типа параметров: уровень сигналa возбуждения, коэффициенты синтезирующего фильтра и коэффициенты взвешивающего фильтра, учитывающего восприятие, обновляются периодически. Эти параметры получаются путем адаптации по выходу из сигналов, которые появляются до текущего вектора сигнала. Уровень сигнала возбуждения обновляется для каждого вектора, а коэффициенты взвешивающего фильтра, учитывающего восприятие, и коэффициенты синтезирующего фильтра обновляются для каждых четырех векторов (т.е. для каждых 20 отсчетов или для периода обновления длительностью 2,5 мс). Следует отметить, что хотя последовательность обработки в алгоритме имеет цикл адаптации, равный четырем векторам (20 отсчетов), емкость основного буфера составляет только один вектор (пять отсчетов). Такая малая емкость буфера позволяет получить задержку при передаче в одном направлении менее 2 мс.
Среди методов кодирования с частотным разбиением известны две технологии: многополосное кодирование — SBC (Sub-Band Coding) и кодирование с адаптивным преобразованием — АТС (Adaptive Transform Coding). Основной принцип обеих схем — разделение спектра входного на несколько частотных поддиапазонов (полос), которые затем кодируются отдельно. В SBC набор фильтров выполнен так, что разбивает входной речевой сигнал обычно на 4-16 широких частотных поддиапазонов (широкополосный анализ). В АТС для обеспечения более точных частотных показателей число поддиапазонов увеличено до 128-256 (узкополосный анализ).
Многополосное кодирование обычно рассматривается как метод кодирования формы сигнала, который использует широкополосный кратковременный анализ и синтез. После разделения речевого спектра на несколько поддиапазонов низшая частота каждого из них приводится к нулю, затем поддиапазон дискретизируется в соответствии с частотой Найквиста (минимальной частотой дискретизации), квантуется, кодируется, мультиплексируется и передается. В приемнике поддиапазоны демультиплексируются, декодируются и переводятся обратно в их частотные позиции. Результирующие сигналы поддиапазонов затем складываются для получения аппроксимированного исходного речевого сигнала.
Основные стандарты кодирования речи, применяемые в 1Р-телефонии, приведены в табл. 4.1.
Таблица 4.1
Стандарты ITU-T по кодированию речи, применяемые в IP-телефонии
Стандарт | Описание |
G.711 | Импульсно-кодовая модуляция 64 кбит/с (ИКМ) (А-закон и μ-закон) |
G.722 | Широкополосные кодеры, работающие на скорости 64, 56 или 48 кбит/с |
G.726 | Рекомендации по кодерам АДИКМ, которые охватывают G721 и G723 |
G.727 | АДИКМ, работающие на скоростях 40, 32, 24 или 16 кбит/с |
G.728 | Вокодеры с линейным предсказанием, с кодовым возбуждением, с низкой задержкой, скорость 16 кбит/с (LD-CELP) |
G.729 | Вокодеры с линейным предсказанием, с алгебраическим кодовым возбуждением, с сопряженной структурой, скорость 8 кбит/с (CS-ACELP) |
G.723.1 | Низкоскоростные вокодеры для связей мультимедиа, работающие на скорости 6,3 и 5,3 кбит/с |
Каждая из приведенных в таблице рекомендаций ITU может служить основой для передачи речи по Интернету и другим сетям, так как все они обеспечивают низкие скорости передачи и достаточно просты в реализации персональным компьютером или в микропроцессорном исполнении.
Основной целью проектирования кодеров является уменьшение скорости передачи речи при безусловном сохранении требуемого уровня качества речи для конкретного приложения. Приложения по передаче речи в Интернет или Интранет могут быть либо самостоятельными, либо в форме мультимедиа. Так как мультимедиа подразумевают наличие нескольких средств кодирования речи, для таких приложений подразумевается, что поток речевых данных передается по линии связи совместно с другими сигналами. Некоторые из таких приложений могут включать:
одновременную передачу речи и видео;
приложения с одновременной цифровой передачей речи и данных (DSVD);
одновременную передачу речи и факса.
Особенности функционирования каналов для передачи речевых данных и прежде всего сети Интернет, а также возможные варианты построения систем телефонной связи на базе Интернет предъявляют ряд специфических требований к речевым кодерам (вокодерам). Благодаря пакетному принципу передачи и коммутации речевых данных отпадает необходимость кодирования и синхронной передачи одинаковых по длительности фрагментов речи.
Наиболее целесообразным и естественным для систем IP-телефонии является применение кодеров с переменной скоростью кодирования речевого сигнала. В основе кодера речи с переменной скоростью лежит классификатор входного сигнала, определяющий степень его информативности и, таким образом, задающий метод кодирования и скорость передачи речевых данных. Наиболее простым классификатором речевого сигнала является детектор активности речи (VAD — Voice Activity Detector), который выделяет во входном речевом сигнале активную речь и паузы. При этом фрагменты сигнала, классифицируемые как активная речь, кодируются каким-либо из известных алгоритмов (как правило, методом CELP) с типичной скоростью 4…8 кбит/с. Фрагменты, классифицированные как паузы, кодируются и передаются с очень низкой скоростью (порядка 0,1.. .0,2 кбит/с) или не передаются вообще. Передача минимальной информации о паузных фрагментах предпочтительна.