145
Кодирование выполняется отдельно для каждой группы окон. Выполняются следующие шаги:
- Интенсивностное стерео кодирование соответствующей области полос масштабных коэффициентов выполняется, начиная с граничной частоты f0. Среднее значение f0 = 6 кГц является подходящим для большинства типов сигналов.
- Для каждой полосы масштабных коэффициентов вычисляются энергии левого, правого и суммарного каналов путем суммирования спектральных коэффициентов в квадрате, El[sfb], Er [sfb], Es [sfb]. Если группа окон включает в себя несколько окон, энергии входящих в группу окон складываются.
- Для каждой полосы масштабных коэффициентов соответствующее значение позиции интенсивности вычисляется как
- Затем вычисляются интенсивностные спектральные коэффициенты speci [i] для каждой полосы масштабных коэффициентов путем сложения спектральных отсчетов левого и правого каналов (speci [i] и specr [i]) и масштабированием полученных значений
- Спектральные компоненты интенсивностного сигнала используются для замены соответствующих спектральных коэффициентов левого канала. Соответствующие спектральные коэффициенты правого канала обнуляются.
Затем, выполняется стандартный процесс квантования и кодирования спектральных данных обоих каналов. Однако состояние предсказателей в правом канале устанавливается в "выкл" для всех полос масштабных коэффициентов, кодированных в режиме интенсивностного стерео. Эти предсказатели обновляются с помощью декодируемой интенсивностной версии квантованных спектральных коэффициентов.
Наконец, перед передачей кодовой книги Хаффмана устанавливается INTENSITY_HCB в соответствующем разделе для всех полос масштабных коэффициентов, которые кодируются в режиме интенсивностного стерео.
В.7 Квантование
В.7.1 Введение
Описание модуля квантования AAC подразделяется на три уровня. Верхний уровень называется «программой циклов фрейма». Эта программа вызывает подпрограмму «внешний итеративный цикл», которая в свою очередь вызывает подпрограмму «внутренний итеративный цикл». Для каждого уровня дана соответствующая блок-схема. Модуль циклов квантует входной вектор спектральных данных в итеративном процессе согласно нескольким требованиям. Внутренний цикл квантует входной вектор и увеличивает размер шага квантователя, пока выходной вектор не будет кодирован с доступным числом битов. После завершения внутреннего цикла внешний цикл проверяет искажение в каждой полосе масштабных коэффициентов и, если допустимый уровень искажений превышен, полоса масштабных коэффициентов ослабляется, и снова вызывается внутренний цикл.
Вход модуля циклов AAC:
- Вектор спектральных значений mdct_line (0.. 1023).
- xmin (sb).
- mean_bits (среднее число битов, доступных для кодирования потока битов).
- more_bits, число битов в дополнение к среднему числу битов, вычисленное психоакустическим модулем из перцепционной энтропии (PE).
- Число и ширина полос масштабных коэффициентов (см. таблицы 45—57).
- Для группы коротких блоков спектральные значения должны чередоваться так, чтобы спектральные линии, принадлежащие к одной полосе масштабных коэффициентов, но различным типам блоков, которые должны быть квантованы с одинаковыми масштабными коэффициентами, были соединены в одной (большей) полосе масштабных коэффициентов (для полного описания группировки см. 6.3.4),
Выход модуля циклов AAC:
- Вектор квантованных значений x_quant (0.. 1023).
- Масштабный коэффициент для каждой полосы масштабных коэффициентов (sb).
- common_scalefac (информация о размере шага квантователя для всех полос масштабных коэффициентов).
- Количество неиспользованных битов, доступных для дальнейшего использования.
В.7.2 Предварительные шаги
Сброс всех итеративных переменных:
- Вычисляется начальное значение common_scalefac для квантователя так, чтобы все квантованные значения МДКП могли быть закодированы в потоке битов:
start_common_scalefac = ceiling (16/3 * (log2 ((max_mdct_line л (3/4))/MAX_QUANT))) max_mdct_line является самым большим по абсолютому значению коэффициентом МДКП, а функция ceiling() округляет аргумент до ближайшего целого в направлении положительной бесконечности. MAX_QUANT — макси