Алгоритм сжатия звуковых данных кодерами третьего уровня

Кодер Уровня III использует усовершенствованный алгоритм кодирования с дополнительным ДКП. Структурная схема кодера показана на рисунке 2.15.

Рисунок 2.15 — Структурная схема звукового кодера третьего уровня

 

Основной недостаток кодеров второго уровня — неэффективная обработка быстро изменяющихся переходов и скачков уровня звука — устраняется благодаря введению двух видов блоков ДКП — «длинного» с 18 отсчетами и «короткого» с 6 отсчетами.

Выбор режима осуществляется адаптивно путем переключения оконных функций в каждой из 32 частотных полос. Длинные блоки обеспечивают лучшее частотное разрешение сигнала со стандартными характеристиками, в то время как короткие блоки улучшают обработку быстрых переходов. В одном кадре могут быть как длинные, так и короткие блоки, однако общее число коэффициентов ДКП не изменяется, так как вместо одного длинного передаются три коротких блока.

Для улучшения кодирования применяются также следующие усовершенствования:

1. Неравномерное квантование (квантователь возводит отсчеты в степень 3/4 перед квантованием для улучшения отношения сигнал-шум; соответственно, декодер возводит их в степень 4/3 для обратной линеаризации).

2. В отличие от кодеров первого и второго уровней, на третьем уровне масштабирующие множители присваиваются не каждой из 32 частотных полос БФ, а полосам масштабирования — участкам спектра, не связанным с этими полосами и примерно соответствующим критическим полосам.

3. Энтропийное кодирование квантованных коэффициентов кодом Хаффмана.

4. Наличие «резервуара битов» — запаса, который кодер создает в периоды стационарного входного сигнала.

Улучшение частотного разрешения при введении дополнительного ДКП влечет за собой значительное ухудшение временного разрешения, проявляющееся в виде предэхо. В кодере имеются средства для борьбы с этим явлением. Во-первых, ПАМ модифицирована для обнаружения условий возникновения предэхо, во-вторых, имеется резервуар неиспользованных битов, из которого кодер может занять на короткое время необходимые ему биты для снижения шумов квантования, в-третьих, кодер может переключаться в режим коротких блоков.

Существенное отличие кодера третьего уровня от кодеров нижних уровней сложный адаптивный алгоритм распределения битов. Он включает две вложенные одна в другую итерационные петли: внутреннюю — петлю скорости потока, и внешнюю петлю управления шумами квантования. Расчет параметров кодирования начинается со значения масштабирующего множителя, равного 1. Если в первый момент скорость потока на выходе кодера Хаффмана превышает заданную, увеличивается шаг квантования до тех пор, пока скорость не войдет в заданные пределы. Далее рассчитывается шум квантования в данной частотной полосе и сравнивается с порогом маскирования, сообщенным психоакустической моделью. Масштабирующий множитель изменяется таким образом, чтобы сблизить эти значения. Однако новое значение масштабирующего множителя означает изменение шага квантования и, следовательно, скорости потока, а потому внутренняя петля должна каждый раз отрабатывать и вычислять новое значение коэффициента усиления и шага квантования. Если итерационный процесс во внутренней петле всегда сходится, то во внешней петле он может расходиться. Итерационный процесс заканчивается в одном из трех случаев:

1. Шумы квантования во всех полосах масштабирования не превышают допустимых.

2. Следующая итерация приведет к возрастанию усиления в одной из полос выше допустимого.

3. Следующая итерация требует увеличения усиления во всех полосах масштабирования.

В реальных кодерах накладывается еще и временное ограничение.

Кодер третьего уровня более полно обрабатывает стереосигнал в формате joint stereo. Если кодеры нижележащих уровней работают только в режиме кодирования по интенсивности, когда левый и правый каналы в полосах выше 2 кГц кодируются как один сигнал (но с независимыми масштабирующими множителями), кодер третьего уровня может работать и в режиме «сумма-разность», обеспечивая более высокую степень сжатия разностного канала.

 

Рисунок 2.15 — Структура потока звукового кодера I и II уровней

Рисунок 2.16 — Структура потока звукового кодера III уровня

 

Структура элементарных потоков звукоданных несколько различается для разных уровней. На рисунке 2.16 показана последовательность звукоданных Уровня I. Пакет начинается с заголовка длиной 32 бита, имеющего одинаковую структуру для всех уровней, который включает синхрослово из 12 единиц и более десятка указателей и флагов. Флаг ID указывает принадлежность потока («1» — МРЕG-1, «0» — МРЕG-2), флаг уровня идентифицирует уровень кодирования («01» = 1, «10» = 2, «11» = 3), четырехбитовый указатель скорости потока ссылается на стандартизованную таблицу, где перечислены возможные скорости потока, табулированы также значения частоты дискретизации, которые сообщает соответствующий указатель (для МРЕG-1 только 48, 44,1 и 32 кГц), флаг режима определяет число каналов звука (не более двух для МРЕG-1).

Следующее поле после заголовка занимают коды распределения битов, затем в потоке передаются 32 масштабирующих множителя и 384 отсчета звукового кадра, группами по 32 отсчета (по одному отсчету из каждого поддиапазона). Замыкает пакет поле дополнительных данных переменной длины, используемое в стандарте МРЕG-2 для передачи многоканальных сигналов, отсчетов с пониженной частотой дискретизации и других данных, не совместимых с синтаксисом МРЕG-1.

Отличие формата Уровня II от Уровня I незначительно и заключается в передаче дополнительной информации о выборе шкалы квантования для каждой из 32 полос, так как не все масштабирующие множители могут передаваться в потоке. Более сложная структура пакета у кодера третьего уровня. Здесь для каждого звукового кадра передаются заголовок, дополнительная информация и основные данные, причем неиспользованная часть области основных данных предшествующих кадров (резервуар битов) может быть заимствована последующим кадром, испытывающим нехватку битов (рисунок 2.16).