Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в компрессию формата MPEGAUDIO.doc
Скачиваний:
31
Добавлен:
01.05.2014
Размер:
1.75 Mб
Скачать

2.3.3. Слой третий.

Алгоритм третьего слоя – более переработанных подход, основанный на алгоритмах ASPECи OCF.Поскольку основанный на одном блоке фильтра, применяемом в первом и втором слое, слой третий компенсирует недостатки этого блока фильтра, за счет фильтра вывода с Измененной дискретной косинусной модификацией (MDCT).Рисунок 20 показывает блочную диаграмму этого процесса для кодировщика. Другие многофазовые блоки фильтра без дескретизации MDCTмодификации – плохи. MDCTдобавляет разделение частей частотного вывода для представления их в лучшем спектральном диапазоне. Более того некоторые компоненты подчасти разделяются на частоты, кодировщик третьего слоя может частично отделять некоторые эффекты наложения засчет многофазового блока фильтра. Конечно распаковщик третьего слоя может отменять отделение эффектов, поскольку инверсия MDCTмодет перестраивать сэмплы подчасти в оригинальный эффект наложения, формируемый для синтеза блока фильтра.

Третий слой определяет две различных длины блока MDCT:длинный блок из 18 сэмплов или короткий блок из 6. Это 50-ти процентное перекрытий между следующей за жтим изменением окна, которое меняет свой размер – либо 36либо 12,соответственно. Длинный блок предоставляет лучший диапазон частоты для аудио сигналов с постоянными характеристиками, в то время как короткий блок предоставляет лучший диапазон времени прохождения. Короткий блок – одна треть длинного блока. В режиме короткого блока три которких блока заменяют длинный блок, число сэмплов MDCTдля фрагмента аудио – неизменяется ситуации выбора размера блока. Для данного фрагмента

аудио, MDCT может иметь похожие блоки (длинные или короткие), или режим смешанных блоков. М режиме смешанных блоков MDCTдля двух низкочастотных подчастей содержит длинный блок и MDCTдля 30 более высоких подчастей. Этот режим предоставляет более лучший частотный диапазон для низких частот, где это необходимо, без потерь временного диапазона для высоких частот.

Переколючение между длинными и короткими блоками не однократно. Длинный блок с определенным длинно-короткими или коротко-длинными данными окна служит для перехода между длинным и которким типом блоков. Рисунок 21 показывает, как MDCTокно переходит между типами длинного и короткого блока.

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

Слой третий совмещает некоторые коэффициенты для уменьшения этого раннего эхо.

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

Кроме того MDCTпроцесс, включает в себя другие расширения алгоритмов первого и второго слоя:

Уменьшение эффекта наложения.

Третий слой определяет метод обработки значений MDCTдля удаления некоторых нечеткостей за счет наложения частей многофазового блока фильтра.

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

Энтропическое кодирование данных.

Слой третий использует коды Хоффмана различной длины для кодирования дескретных сэмплов для получения лучшей компрессии данных. После дескретизации, кодировщик упорядочивает 576 (32 подчасти * 18 коэффициентов/подчастей MDCT)дискретных MDCTкоэффициентов а предопределенную последовательность. Упорядочивание происходит по возрастанию частоты за исключением режима короткого блока MDCT. Для коротких блоков это 3 возможных значения окна для получения частоты, за счет упорядочивания по частоте, производимое окном, в пределах диапазона каждого фактора размерности. Упорядочевание – выгодно, потому что большие значения имеют тенденцию находиться на низких частотах и больших расстояниях от нулевых, или имеют тенденцию находиться близ нулевых значениях на высоких частотах.

Кодировщик определяет границы упорядочивания коэффициентов в трех отдельных диапахонах. Это позволяет кодировщику кодировать каждый диапазон с различными значениями таблицы Хоффмана, специально подобранными для статистики этого диапазона. Начиная на высоких частотах, кодировщик распознает дальность всех нулевых значений, как один диапазон. Этот диапазон не будет кодироваться, поскольку его размер может быть вычеслен из размеров других двух диапазонов. Однако он должен содержать постоянное число нулей, поскольку другие диапазоны кодируются едиными скруппированными числами. Второй диапазон, диапазон 1, состоит из расстояний удаления, содержащий только –1,0,или 1. Таблица Хоффмана для этого диапазона кодируется 4 значениями диапазона, умноженными на 4. Наконец третий диапазон покарывается всеми оставшимися значениями, большими значениями диапазона. Таблица Хоффмана для этого региона кодирует значения парами. Диапазон больших значений дополнительно подразделяется на 3 подрегиона, каждый из которых имеет свою определенную таблицу Хоффмана. Кроме того улучшение эффективности кодирования, разделением MDCTкоэффициентов на диапазоны и поддиапазоны помогает контролировать распределение ошибок. Внутри потока данных коды Хоффмана для значений распределены от низких к высоким частотам.

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

может занять биты из зарезервированных. Кодировщик может занимать биты только из предыдущих фрагментов;он неможет занимать биты из предществующих фрагментов. Поток данных третьего слоя содержит 9-битовый указатель начала основных данных в каждом фрагменте служебной информации, который указывает место начала байтов аудио данных этого фрагмента. Рисунок 22 изображает интегрирование битов резервирования внутри фиксированной длины структуры фрагмента через указатель на начало основных данных. Если даже начало основных данных граничило с максимальным отклонением от аудио данных на 29байт (заголовок и служебная информация – не считаются потому, что для данного режима они не фиксированной длины и встречаются на определенных интервалах в потоке данных), возможный максимум возможных вариантов будет зачастую много меньше. Для практического рассмотрения, стандарт предусматривает, что эти варианты не могут превышать возможного для кодирования буффера, органиченного 7.680 битами. Поскольку компрессия на 320Кбит/сек. С аудио сэмплированием отношением 48Кгц требует среднего числа кодовых битов в каждом фрагменте равное

1152 (сэмплов/фрагмент) * 320.000 (бит/сек.) / 48.000 (сэмплов/сек.) = 7680 битов/фрагмент.

Абсолютно недопускается каких либо вариантов в этом режиме кодирования.

Если даже расширения третьего слоя были сложными, это только сдерживало бы увеличение необходимых вычислений распаковщика третьего слоя через распаковщик второго слоя. К примеру каждое прямое умножение матрицы содержащейся в IMDCTтребует примерно 19 умножений и сложений для значений каждой подчасти. Расширения, главным образом увеличивают сложность кодирования и требования к памяти для кодирования.