Составители:
14
8. Адаптивное кодирование
При неравномерном квантовании шаг квантования может быть оптимизирован по
минимуму среднеквадратической ошибки квантования путем минимизации общих иска-
жений по итеративному алгоритму, предложенному Max Lloyd. Для реализации этой опе-
рации и последующего использования кода Хаффмана требуется знание распределения
вероятностей входных кодовых комбинаций компрессора до начала операции квантова-
ния и кодирования.
В субполосном тракте с узкой спектральной линией распределение вероятностей
уровней сигналов в выборках моделируется законом Гаусса (Лапласа), у которого меди-
анное значение и стандартное отклонение являются функциями времени и музыкального
жанра. Эти статистические характеристики определяются в каждом блоке данных и слу-
жат основой для выбора шага переквантования и кода Хаффмана. По этим данным опре-
деляются
max
()Ui
и
min
()Ui
, используемы для расчета шага квантования по формуле (1).
Для реализации адаптивного квантования и кодирования в формате MP3 предусмот-
рены две петли обратной связи с кодера Хаффмана на квантователь: внешняя и внут-
ренняя . Внешняя петля регулирует шум квантования, внутренняя петля регулирует шаг
квантования и, следовательно, скорость цифрового потока.
Необходимо особо подчеркнуть, что алгоритмы адаптивного квантования и кодиро-
вания не стандартизированы и их эффективность в значительной мере определяется та-
лантом разработчиков и программиста. В программе кодера обычно задается средняя
скорость выходного цифрового потока, которая определяет допустимое число бит на
блок данных в каждой спектральной линии
N
. Чем меньше эта скорость, тем сильнее
должно осуществляться компрессирование и тем сложнее должен быть алгоритм коди-
рования.
Основная идея адаптивного выбора шага квантования с использованием внутренней
петли регулирования состоит в том, чтобы методом последовательных приближений вы-
брать шаг квантования, при котором после кодирования кодом Хаффмана общее число
бит в блоке данных было как можно ближе к значению N, но не больше. Операция начи-
нается с выбора первоначального шага квантования по формуле (1). Если фактическое
число бит на блок
*NN
, то шаг увеличивается и кодирование производится с новым
шагом. Если
*NN
, то шаг уменьшается и все начинается сначала. Максимальное время,
которое допускается, для выполнения этой операции определяется длительностью фрей-
ма, равной 24 мс. Достаточно сложные детали процесса итерации опускаем, так как они
интересны только очень узкому кругу специалистов.
Основная идея, реализуемая во внешней цепи управления, заключается в выборе чис-
ла уровней квантования, при котором SNR выходного сигнала тракта кодирования не
выше допустимого значения с учетом эффекта частотной и временной маскировки. Это
значение SNR в значительной мере определяется выбором скорости цифрового потока и
рассчитывается для каждой критической полосе слуха.
Рис.10. Код Хаффмана переменной длины