юридическая фирма 'Интернет и Право'
Основные ссылки




На правах рекламы:



Яндекс цитирования





Произвольная ссылка:



Описание
Источник публикации
М.: Стандартинформ, 2014
Примечание к документу
Документ введен в действие с 01.07.2013.
Название документа
"ГОСТ Р 54711-2011. Национальный стандарт Российской Федерации. Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи MPEG-1 часть III (MPEG-1 audio)"
(утв. и введен в действие Приказом Росстандарта от 13.12.2011 N 872-ст)

"ГОСТ Р 54711-2011. Национальный стандарт Российской Федерации. Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи MPEG-1 часть III (MPEG-1 audio)"
(утв. и введен в действие Приказом Росстандарта от 13.12.2011 N 872-ст)



Оглавление


Утвержден и введен в действие
Приказом Федерального
агентства по техническому
регулированию и метрологии
от 13 декабря 2011 г. N 872-ст
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ЗВУКОВОЕ ВЕЩАНИЕ ЦИФРОВОЕ
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ
С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ
КАНАЛАМ СВЯЗИ MPEG-1 часть III (MPEG-1 audio)
Digital sound broadcasting. Coding of sound broadcasting
signals with redundancy reduction for transfer on digital
communication channels. MPEG-1 part III (MPEG-1 audio)
ISO/IEC 11172-3:1993
(NEQ)
ГОСТ Р 54711-2011
ОКС 33.170
Дата введения
1 июля 2013 года
Предисловие
1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи "Ленинградское отделение" (ФГУП ЛО ЦНИИС)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 "Связь"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ приказом Федерального агентства по техническому регулированию и метрологии от 13 декабря 2011 г. N 872-ст
4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 11172-3:1993 "Информационные технологии. Кодирование движущихся изображений и сопутствующего звука для цифровых носителей при скоростях до 1,5 Мбит/с. Часть 3. Аудио" (ISO/IEC 11172-3:1993 "Information technology - Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s - Part 3: Audio") [1]
5 ВВЕДЕН ВПЕРВЫЕ
Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе "Национальные стандарты", а официальный текст изменений и поправок - в ежемесячном информационном указателе "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационного указателя "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте национального органа Российской Федерации по стандартизации в сети Интернет (gost.ru)
1 Область применения
Настоящий стандарт определяет кодированное представление высококачественного звукового сигнала на цифровых носителях и метод его восстановления и относится к сигналам с частотами дискретизации 32; 44,1 и 48 кГц.
Вход кодера и выход декодера совместимы с существующими стандартами ИКМ, такими как ГОСТ 28376-89, ГОСТ Р 50712-94.
Стандарт предназначен для регулирования отношений между оператором и пользователем в процессе установления соединения, в части выполнения технических требований к электрическим параметрам, определяющим качество каналов и трактов звукового вещания с полосой передаваемых частот до 20 000 Гц.
Настоящий стандарт используется при проектировании, вводе в эксплуатацию и техническом обслуживании каналов и трактов звукового вещания, организуемых в наземных и спутниковых линиях связи (ГОСТ Р 52742-2007 и ГОСТ Р 53537-2009).
Действие настоящего стандарта распространяется на услуги местной, внутризоновой, междугородной и международной сети звукового вещания, независимо от используемой сетевой технологии, что способствует обеспечению целостности сетей звукового вещания, устойчивости работы сети, выполнению норм на основные электрические параметры при разработке и проектировании каналообразующей аппаратуры звукового вещания.
Показатели, определенные настоящим стандартом, являются базовыми для профессиональной и бытовой аппаратуры - проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования с высоким качеством звука.
2 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты:
ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений
ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20 ... 20 000 Гц)
ИС NORMPROD: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду ГОСТ 28376-89, а не ГОСТ Р 28376-89.
ГОСТ Р 28376-89 Компакт-диск. Параметры и размеры
ГОСТ Р 50712-94 Соединительные линии и аппаратные звукового вещания. Технические характеристики. Методы измерений
Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по соответствующим выпускам ежемесячно издаваемого информационного указателя за текущий год. Если ссылочный стандарт заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться замененным (измененным) стандартом. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения, символы и сокращения
3.1 Термины и определения
В настоящем стандарте применены следующие термины и сокращения с соответствующими определениями:
3.1.1 аудиобуфер: Буфер в декодере, предназначенный для хранения сжатых аудиоданных.
3.1.2 аудиопоследовательность: Непрерывная последовательность аудио фреймов, в которых следующие параметры не меняются:
- ID;
- Уровень;
- частота дискретизации;
- для уровней I и II индекс скорости передачи.
3.1.3 барк: Единица измерения ширины критических полос. Переход к шкале барков от шкалы звуковых частот.
3.1.4 блок доступа к аудиоданным: Для Уровней I и II блок доступа к аудиоданным определяется как самая меньшая часть кодированного потока битов, которая может декодироваться отдельно, в ней под результатом декодирования понимается полностью восстановленный звук. Для Уровня III блок доступа к аудиоданным является частью потока битов, который декодируется с использованием ранее полученной основной информации.
3.1.5 блочное компандирование: Нормирование цифрового представления звукового сигнала в пределах определенного периода времени.
3.1.6 быстрое преобразование Фурье (БПФ): Быстрый алгоритм расчета коэффициентов преобразования Фурье.
3.1.7 гибридный набор фильтров: Последовательная комбинация набора полосовых фильтров и МДКП.
3.1.8 гранула, Уровень II: Набор из трех последовательных отсчетов каждой из 32 субполос, которые объединяются перед квантованием, что соответствует 96 отсчетам ИКМ.
3.1.9 гранула, Уровень III: 576 частотных линий.
3.1.10 декодер: Устройство, в котором реализуется процесс декодирования.
3.1.11 декодирование: Процесс, выполняемый в соответствии с настоящим стандартом, при котором считываемые кодированные данные преобразуются в отсчеты звукового сигнала.
3.1.12 дополнение бит (байт): Биты стаффинга, кодовые комбинации, которые могут быть добавлены в поток сжатых данных и затем отброшены в процессе декодирования. Их назначение в согласовании потока со скоростью передачи.
3.1.13 дискретизация: Дискретизация, выполняемая в соответствии с теоремой Котельникова - Найквиста.
3.1.14 заполнение нулями: Способ скорректировать среднюю длину звукового фрейма в соответствии с продолжительностью выборки ИКМ-отсчетов за счет дополнения нулями.
3.1.15 запрещенный: Термин "запрещенный" относится к символам кодовой последовательности, которые никогда не должны использоваться во избежание совпадения с синхрословами.
3.1.16 зарезервированный: Термин "зарезервированный" указывает на то, что значение может использоваться в будущем для определенных расширений.
3.1.17 звуковое вещание (ЗВ): Передача звуковой информации общего назначения широкому кругу территориально рассредоточенных слушателей.
3.1.18 зеркальная составляющая: Зеркально отраженная составляющая спектра, возникающая в результате элайзинга.
3.1.19 индекс масштабного коэффициента: Числовой код для масштабного коэффициента.
3.1.20 канал: Цифровая среда, которая хранит или транспортирует поток данного стандарта.
3.1.21 канал звукового вещания (КЗВ): Канал, образованный в цифровых или аналоговых системах передачи.
3.1.22 код Хаффмана: Вид энтропийного кодирования.
3.1.23 кодер: Устройство, в котором реализуется процесс кодирования.
3.1.24 кодирование: Процесс, не определенный в данном стандарте, при котором звуковые отсчеты считываются и преобразуются в кодированный поток битов, как определено в стандарте.
3.1.25 кодирование с переменной длиной слова (VLC): Обратимая процедура кодирования, в результате которой более короткие кодовые комбинации присваиваются наиболее частым событиям и более длительные кодовые комбинации - менее частым событиям.
3.1.26 кодирование Joint Stereo: Метод устранения стереофонической избыточности.
3.1.27 кодированный звуковой поток: Кодированное представление звукового сигнала согласно настоящему стандарту.
3.1.28 коэффициент МДКП: Амплитуда определенной косинусной базисной функции.
3.1.29 критическая полоса: Психоакустическая величина в частотной области, которая соответствует частотной избирательности человеческого уха. Эта избирательность выражается в Барках.
3.1.30 маскирование: Свойство слуховой системы человека, исключающее прием звукового сигнала в присутствии другого звукового сигнала.
3.1.31 масштабный коэффициент: Величина, на которую делится набор значений перед квантованием.
3.1.32 модифицированное дискретное косинусное преобразование (МДКП): Преобразование Фурье, основанное на IV типе косинусного преобразования (ДКП-IV) с дополнительным свойством наложения.
3.1.33 набор фильтров: Набор полосовых фильтров, перекрывающих весь диапазон звуковых частот.
3.1.34 набор фильтров анализа: Набор фильтров в кодере, с помощью которого ИКМ-отсчеты широкополосного звукового сигнала преобразуются в ряд прореженных отсчетов на выходе каждого фильтра.
3.1.35 набор фильтров синтеза: Набор фильтров в декодере, который восстанавливает ИКМ-отсчеты звукового сигнала из субполосных отсчетов.
3.1.36 нетональный компонент: Шумоподобный компонент звукового сигнала.
3.1.37 нижний предел: Самая низкая субполоса, в которой используется кодирование стерео.
3.1.38 обратное модифицированное дискретное косинусное преобразование (ОМДКП): Преобразование, обратное МДКП.
3.1.39 окно Ханна: Оконная функция, которая применяется к выборке отсчетов звукового сигнала перед преобразованием Фурье.
3.1.40 переквантование: Декодирование кодированных субполосных отсчетов для восстановления исходных квантованных значений.
3.1.41 побайтное выравнивание: Бит потока данных обладает побайтным выравниванием, если его позиция кратна 8 с начала потока.
3.1.42 полифазный набор фильтров: Набор фильтров с равной шириной полос пропускания.
3.1.43 полоса масштабного коэффициента: Ряд частотных линий в Уровне III, для которых используется один масштабный коэффициент.
3.1.44 порог маскирования: Функция частоты и времени, определяющая порог, ниже которого звуковой сигнал не может быть воспринят слуховой системой человека.
3.1.45 пост-коррекция: Фильтрация, применяемая к звуковому сигналу после хранения или передачи для предотвращения линейных искажений, вызванных пред-коррекцией.
3.1.46 пред-коррекция: Фильтрация, применяемая к звуковому сигналу перед хранением или передачей для улучшения отношения сигнал-шум на высоких частотах.
3.1.47 преобразование: Преобразование звукового сигнала из временной области в частотную путем субполосной фильтрации и/или МДКП.
3.1.48 программа: Совокупность передач, составленных по определенному плану.
3.1.49 психоакустическая модель: Математическая модель маскирующих свойств слуховой системы человека.
3.1.50 распределение битов: Распределение битов между полосами в соответствии с результатами психоакустического расчета.
3.1.51 распределение шумов квантования: Распределение шумов квантования между частотными полосами в соответствии с результатами психоакустического расчета.
3.1.52 режим двойного канала: Режим, при котором два звуковых канала с независимым содержанием программы (например двуязычный) кодируются в пределах одного потока битов. Процесс кодирования аналогичен используемому в режиме стерео.
3.1.53 режим stereo: Режим кодирования, при котором два звуковых канала, формирующих стереопару (левый и правый каналы), кодируются в пределах одного потока битов. Процесс кодирования аналогичен процессу в режиме двойного канала.
3.1.54 режим intensity stereo: Метод устранения избыточности в стереофонических звуковых программах, основанный на сохранении на высоких частотах только огибающей энергетического спектра сигналов правого и левого каналов.
3.1.55 режим joint stereo: Режим алгоритма кодирования звуковых сигналов, использующий кодирование joint stereo.
3.1.56 режим MS stereo: Метод устранения избыточности в стереофонических звуковых программах, основанный на кодировании суммарного и разностного сигналов вместо сигналов левого и правого каналов.
3.1.57 свободный формат: Передача данных со скоростью, отличной от скоростей передачи определенных в стандарте, меньшей, чем максимальная допустимая скорость передачи для каждого уровня.
3.1.58 сжатие: Сокращение разрядности элементов данных.
3.1.59 синхрослово: 12-разрядная комбинация в потоке битов, которая идентифицирует начало кадра.
3.1.60 скорость передачи: Скорость, с которой сжатый поток данных передается от носителя к входу декодера.
3.1.61 слот: Элементарная часть потока битов. В Уровне I слот равен четырем байтам, в Уровнях II и III - одному байту.
3.1.62 служебная информация: Информация, передаваемая в потоке, необходимая для управления декодером.
3.1.63 соединительная линия (СЛ): Канал ограниченной протяженности между различными аппаратными, а также между аппаратной и передатчиком.
3.1.64 субполоса: Часть звукового диапазона.
3.1.65 субполосные отсчеты: Прореженные отсчеты на выходе набора субполосных фильтров кодера звуковых сигналов называют субполосными отсчетами. Из 384 временных отсчетов на входе набора фильтров образуется по 12 отсчетов на выходе каждой из 32 субполос.
3.1.66 субполосный набор фильтров: Ряд полосных фильтров, покрывающих весь диапазон звуковых частот. В данном стандарте под субполосным набором фильтров понимается полифазный набор.
3.1.67 тональный компонент: Компонент звукового сигнала, близкий к синусоиде.
3.1.68 тройка: Три последовательных субполосных отсчета одной субполосы.
3.1.69 уровень: Один из уровней в иерархии кодирования звуковой системы, определенный в [1].
3.1.70 фрейм: Часть ИКМ звукового сигнала из элемента доступа.
3.1.71 функция маскирования: Функция, описывающая распределение маскирования в частотной области.
3.1.72 циклический избыточный код (cyclic redundancy check; CRC): Код, используемый в методе обнаружения ошибок в передаваемом сообщении, заключающемся в сравнении остатков от деления блоков кодовой последовательности на фиксированный делитель, производимого на передающей и приемной сторонах.
3.1.73 элемент доступа: В случае сжатых звуковых данных элемент доступа представляет собой звуковые данные.
3.1.74 энтропийное кодирование: Кодирование без потерь с переменной длиной кодового слова в целях уменьшения статистической избыточности цифрового сигнала.
3.2 Символы и сокращения
3.2.1 Арифметические операторы
Математические операторы, используемые в настоящем стандарте, аналогичны используемым в языке программирования C. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.
+ Сложение.
- Вычитание (как бинарный оператор) или отрицание (как унарный оператор).
++
Инкремент.
--
Декремент.
* Умножение.
Возведение в степень.
/ Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до единицы, а -7/4 и 7/-4 округляются до минус одного.
// Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до двух, а -3//2 округляется до минус двух.
D/V
Целочисленное разделение с округлением результата в сторону .
| |
Абсолютное значение.
|x| = x, когда x > 0;
|x| = 0, когда x == 0;
|x| = -x, когда x < 0.
% Деление с остатком. Операция определена только для положительных чисел.
Sign(x) Принимает следующие значения:
Sign(x) = 1, когда x > 0;
Sign(x) = 0, когда x = 0;
Sign(x) = -1, когда x < 0.
NINT( ) Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.
sin
Синус.
cos
Косинус.
exp
Экспонента.
Квадратный корень.
lg
Логарифм по основанию 10.
ln
Натуральный логарифм.
log2
Логарифм по основанию 2.
3.2.2 Логические операторы
|| Логическое ИЛИ.
&&
Логическое И.
! Логическое НЕ.
3.2.3 Операторы сравнения
> Больше.
>=
Больше или равно.
< Меньше.
<=
Меньше или равно.
==
Равно.
! =
Не равно.
max [,...,]
Максимальное значение.
min [,...,]
Минимальное значение.
3.2.4 Побитные операторы
Использование побитных операций подразумевает представление чисел в дополнительном коде.
&
Подбитное И.
|
Подбитное ИЛИ.
>>
Сдвиг вправо.
<<
Сдвиг влево.
3.2.5 Оператор присвоения
= Оператор присвоения.
3.2.6 Мнемоники
Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.
bslbf
Битовая строка, младший бит слева в соответствии с настоящим стандартом. Битовые строки пишутся как строка единиц и нулей внутри одинарных кавычек, например '1000 0001'. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения.
ch
Канал. Если ch имеет значение 0, это соответствует левому каналу стереопары или первому из двух независимых каналов.
nch
Количество каналов: равно 1 для single_channel mode, 2 - в других режимах.
gr
Гранула 3 * 32 субполосных отсчета в Уровне II звукового сигнала, 18 * 32 субполосных отсчета в Уровне III.
main_data
Часть потока битов, которая содержит масштабные коэффициенты, кодированные методом Хаффмана данные и дополнительную информацию.
main_data_beg
Указатель на начало main_data внутри фрейма. Равен позиции конца main_data предыдущего фрейма плюс один бит. Вычисляется из main_data_end значения предыдущего фрейма.
part2_length
Количество main_data бит, используемых для масштабных коэффициентов.
rpchof
Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка.
sb
Субполоса.
sblimit
Номер самой низкой субполосы, для которой не были выделены биты.
scfsi
Информация о выборе масштабного коэффициента.
switch_point_l
Номер полосы масштабных коэффициентов (полоса "длинного" блока), с которой используется переключение окон.
switch_point_s
Номер полосы масштабных коэффициентов (полоса "короткого" блока), с которой используется переключение окон.
uimsbf
Целое число без знака, старший бит первый.
vlclbf
Код с переменной длиной слова, левый бит первый, где "левый" относится к порядку, в котором пишутся коды с переменной длиной.
window
Номер текущего временного интервала в случае block_type == 2, 0 <= window <= 2.
В многобайтовых словах старший байт является первым.
3.2.7 Константы
3,14159265358...
e 2,71828182845...
3.3 Метод описания синтаксиса потока битов
Поток битов, полученный декодером, описывается в подразделе 5.1. Каждый элемент данных описывается именем, длиной в битах, мнемоникой типа и порядком передачи.
Действие, вызванное декодируемым элементом данных в потоке битов, зависит от значения этого элемента данных и элементов данных, декодируемых ранее. Декодирование элементов данных и определение параметров состояния, используемых в их декодировании, описываются в подразделе 5.2.
В этом синтаксисе используется принятое в языке C соглашение о том, что переменная или выражение, возвращающие ненулевое значение, эквивалентны результату "истина".
Для выражения условия присутствия элементов данных используются следующие конструкции:
while (condition) {
data_element
...
Если "истина", то группа элементов данных появляется в потоке данных. Это повторяется, пока условие не "ложь".
}
do {
data_element
...
Элемент данных всегда существует, по крайней мере один раз.
} while (condition)
Элемент данных повторяется при условии "истина".
if (condition) {
Если условие "истина", то первая группа элементов данных появляется затем в потоке данных.
data_element
...
Если условие "истина" не сохраняется, то вторая группа элементов данных появляется затем в потоке данных.
}
else {
data_element
...
Является инициализирующим выражением цикла.
}
Обычно оно определяет начальное состояние счетчика.
for (expr1; expr2; expr3){
expr1 data_element
... expr2
Является условием, определяющим проверку перед каждой итерацией цикла. Цикл завершается, когда условие "не истина".
}
expr3 является выражением, которое выполняется в конце каждой итерации цикла, обычно оно инкрементирует счетчик.
Следует обратить внимание на наиболее распространенные варианты использования этой конструкции:
for (i = 0; i <n; i++) {
data_element
...
}
Группа элементов данных появляется n раз. Условия в пределах группы элементов данных могут зависеть от значения переменной управления циклом i, которая обнуляется при первом появлении, увеличивается на 1 при втором появлении и т.д.
Как отмечено, группа элементов данных может содержать вложенные условные конструкции. Для компактности скобки {} могут быть опущены, когда следует только один элемент данных.
data_element []
Является массивом данных.
Количество элементов массива зависит от контекста.
data_element [n]
Является (n+1)-м элементом массива данных.
data_element [m][n]
Является элементом (m+1)-й строки (n+1)-го столбца двухмерного массива данных.
data_element [l][m][n]
Является (l+1), (m+1), (n+1)-м элементом трехмерного массива данных.
data_element [m...n]
Биты массива data_element с m по n включительно.
Знание самого синтаксиса потока битов в 5.3 не следует считать достаточным для декодирования. В частности, это лишь определяет корректный и свободный от ошибок входной поток битов. Реальные декодеры для того, чтобы правильно начать декодирование, должны иметь средства обнаружения стартовых последовательностей.
bytealigned()
Возвращает 1, если текущая позиция находится на границе байта, так что следующий бит потока будет первым битом нового байта. В противном случае функция возвращает 0.
nextbits()
Реализует сравнение строки битов со строкой битов на входе декодера.
next_start_code()
Удаляет все нулевые биты и биты стаффинга и определяет положение следующего синхрослова.
Синтаксис
Количество битов
Мнемоника
next_start_code () {
while (!bytealigned())
zero_bit
1
'0'
while (nextbits() != '0000 0000 0000 0000 0000 0001')
8
'00000000'
zero_byte
}
Эта функция проверяет, является ли текущая позиция побайтно выровненной. Иначе присутствуют нулевые биты стаффинга. Это означает, что перед синхрословом может присутствовать любое количество нулевых байтов. В связи с этим синхрослово всегда является побайтно выровненным и ему может предшествовать любое число нулевых битов стаффинга.
4. Структура цифровой обработки звуковых сигналов
4.1 Кодирование
Кодер обрабатывает цифровой звуковой сигнал и создает поток сжатых данных для хранения. Алгоритм кодера не подлежит стандартизации и может использовать различные способы оценки слухового маскирования, квантования и масштабирования. Однако формат данных на выходе кодера должен соответствовать спецификациям раздела 5 в целях корректного использования в звуковых приложениях.
Рисунок 1 - Общая структура кодера
Рисунок 1 иллюстрирует структуру кодера звуковых сигналов. Отсчеты звукового сигнала поступают на вход кодера. В блоке частотно-временного преобразования сигнал разделяется на полосы с децимацией субполосных отсчетов. Отсчеты на выходе блока частотно-временного преобразования могут быть названы субполосными отсчетами (как на Уровне I или II, см. ниже) или коэффициентами частотно-временного преобразования (как на Уровне III). Психоакустическая модель создает ряд данных, позволяющих управлять квантованием и кодированием. Эти данные различаются в зависимости от фактической реализации кодера. Один из возможных вариантов состоит в использовании оценки порога маскирования для управления квантованием. Блок квантования и кодирования производит символы кода из отсчетов на выходе блока частотно-временного преобразования. Этот блок также может зависеть от конкретного кодера. Блок формирования кадра добавляет данные текущего блока к выходным данным других блоков, а также другую информацию (например данные для коррекции ошибок) в случае необходимости.
Существует четыре различных режима работы кодера: моно; два канала (два независимых звуковых сигнала, кодированные в пределах одного потока битов); стерео (левые и правые сигналы стереопары, кодированной в пределах одного потока битов); и joint stereo (левые и правые сигналы стереопары, кодированной в пределах одного потока битов с устранением пространственной избыточности).
4.2 Уровни
В зависимости от приложения могут использоваться различные уровни системы кодирования с увеличивающейся сложностью кодера и производительностью. Декодер звукового сигнала Уровня N должен декодировать данные, которые были закодированы в Уровне N и во всех уровнях ниже N.
Уровень I
В этом уровне используется:
- частотно-временное преобразование на основе разделения входного сигнала на 32 поддиапазона;
- фиксированная длина кодируемой выборки, психоакустическая модель, управляющая процессом адаптивного распределения битов и квантованием на основе блочного компандирования;
- формирование потока данных.
Минимальное теоретическое время задержки при кодировании/декодировании для Уровня I составляет приблизительно 19 мс.
Уровень II
В этом уровне используется дополнительное кодирование информации о распределении битов, масштабирующих коэффициентов и отсчетов. Применяются различные размеры выборок. Минимальное теоретическое время задержки при кодировании/декодировании для Уровня II составляет приблизительно 35 мс.
Уровень III
В этом уровне используется гибридный набор фильтров с повышенной разрешающей способностью по частоте. Добавлены неравномерное квантование, адаптивное разделение сигнала на кадры и энтропийное кодирование. Минимальное теоретическое время задержки при кодировании/декодировании для Уровня III составляет приблизительно 59 мс.
Joint Stereo может быть добавлено как дополнительная функция к любому из уровней.
4.3 Хранение
Различные потоки кодированного видео, кодированного звукового сигнала, данных синхронизации, системных данных и дополнительных данных могут быть сохранены вместе на носителе. Процесс редактирования звуковых сигналов упростится при наличии адресации.
Использование данных может подразумевать удаленный доступ. При этом взаимодействие должно осуществляться через устройство управления, отличное от самого декодера. Это устройство управления должно воспринимать пользовательские команды, считывать и интерпретировать информацию о структуре базы данных, считывать информацию с носителей, демультиплексировать информацию, отличную от звуковой, и передавать аудиоданные к аудиодекодеру с требуемой скоростью считывания.
4.4 Декодирование
Декодер принимает сжатые аудиоданные согласно 5.1, декодирует элементы данных согласно 5.2 и использует информацию для вывода цифрового звукового сигнала согласно 5.3.
Рисунок 2 - Общая структура декодера
Рисунок 2 иллюстрирует базовую структуру декодера звуковых сигналов. Данные поступают в декодер и подлежат проверке на наличие ошибок, если при кодировании это было предусмотрено (см. 5.2.4). Затем они распаковываются для восстановления различных частей информации. Блок реконструкции восстанавливает квантованные коэффициенты преобразования. С помощью обратного частотно-временного преобразования эти коэффициенты преобразуются в ИКМ-отсчеты.
5 Технические требования
5.1 Спецификация кодированного звукового потока
5.1.1 Звуковая последовательность
Синтаксис
Количество битов
Мнемоника
audio sequence() {
while (nextbits ()==syncword) {
frame()
}
}
5.1.2 Звуковой фрейм
Синтаксис
Количество битов
Мнемоника
frame() {
header()
error_check()
audio_data()
ancillary_data()
}
5.1.3 Заголовок
Синтаксис
Количество битов
Мнемоника
header() {
syncword
12
bslbf
ID
1
bslbf
layer
2
bslbf
protection_bit
1
bslbf
bitrate_index
4
bslbf
sampling_frequency
2
bslbf
padding_bit
1
bslbf
private_bit
1
bslbf
mode
2
bslbf
mode_extension
2
bslbf
copyright
1
bslbf
original/copy
1
bslbf
emphasis
2
bslbf
}
5.1.4 Проверка на ошибки
Синтаксис
Количество битов
Мнемоника
Error_check() {
16
rpchof
if (protection_bit == 0)
crc_check
}
5.1.5 Данные звукового сигнала/Уровень I
Синтаксис
Количество битов
Мнемоника
audio_data () {
for (sb=0; sb <bound; sb++)
for (ch=0; ch <nch; ch++)
allocation [ch] [sb]
4
uimsbf
for (sb=bound; sb <32; sb++) {
allocation [0] [sb]
4
uimsbf
allocation [I] [sb]=allocation [0] [sb]
}
for (sb=0; sb <32; sb++)
for (ch=0; ch <nch; ch++)
if (allocation [ch] [sb]! =0)
scalefactor [ch] [sb]
6
uimsbf
for (s=0; s <12; s++) {
for (sb=0; sb <bound; sb++)
for (ch=0; ch <nch; ch++)
if (allocationfch] [sb]! =0)
sample [ch] [sb] [s]
2... 15
uimsbf
for (sb=bound; sb <32; sb++)
if (allocation [0] [sb]! =0)
sample [0] [sb] [s]
2... 15
uimsbf
}
}
5.1.6 Данные звукового сигнала. Уровень II
Синтаксис
Количество битов
Мнемоника
audio_data()
{
for (sb = 0; sb <bound; sb++)
for (ch= 0; ch <nch; ch++)
allocation [ch] [sb]
2 ... 4
uimsbf
for (sb=bound; sb<sblimit; sb++) {
allocation [0][sb]
2... 4
uimsbf
allocation[1][sb] =allocation [0][sb]
}
for (sb = 0; sb <sblimit; sb++)
for (ch=0; ch <nch; ch++)
if (allocation [ch][sb]! =0)
scfsi [ch] [sb]
2
bslbf
for (sb=0; sb <sblimit; sb++)
for (ch=0; ch <nch; ch++)
if (allocation [ch] [sb]! =0) {
if (scfsi [ch] [sb] =0) {
scalefactor [ch] [sb] [0]
6
uimsbf
scalefactor [ch] [sb] [1]
6
uimsbf
scalefactor [ch/ [sb] [2]
6
uimsbf
}
6
uimsbf
if ((scfsi [ch] [sb] =I) || (scfsi [ch] [sb] =3)) {
scalefactor [ch] (sb] [0]
6
uimsbf
scalefactor [ch] [sb] [2]
6
uimsbf
}
if (scfsi [ch] [sb] == 2)
scalefactor [ch] [sb] [0]
6
uimsbf
}
for (gr=0; gr <12; gr++) {
for (sb=0; sb <bound; sb++)
for (ch=0; ch <nch; ch++)
if (allocation [ch] [sb]! =0) {
if (grouping [ch] [sb])
samplecode [ch] [sb] [gr]
5 ... 10
uimsbf
else
for (s=0; s <3; s++)
sample [ch] [sb] [3*gr+s]
3 ... 16
uimsbf
}
for (sb=bound; sb <sblimit; sb++)
if (allocation [0] [sb]! =0) {
if (grouping [0] [sb])
samplecode [0] [sb] [gr]
5 ... 10
uimsbf
else
for (s=0; s <3; s++)
sample [0] [sb] [3*gr+s]
3 ... 16
uimsbf
}
}
}
5.1.7 Данные звукового сигнала. Уровень III
Синтаксис
Количество битов
Мнемоника
audio_data () {
main_data_begin
9
uimsbf
if (mode=single_channel)
private_bits
5
bslbf
else
private_bits
3
bslbf
for (ch=0; ch <nch; ch++)
for (scfsi_band=0; scfsi_band <4; scfsi_band++)
scfsi [ch] [scfsi_band]
1
bslbf
for (gr=0; gr <2; gr++)
for (ch=0; ch <nch; ch++) {
part2_3_length [gr] [ch]
12
uimsbf
big_values [gr] [ch]
9
uimsbf
global_gain [gr] [ch]
8
uimsbf
scalefac_compress [gr] [ch]
4
bslbf
window_switching_flag [gr] [ch]
1
bslbf
if (window_switching_flag [gr] [ch]) {
block_type [gr] [ch]
2
bslbf
mixed_block_flag [gr] [ch]
1
uimsbf
for (region=0; region <2; region++)
table_select [gr] [ch] [region]
5
bslbf
for (window=0; window<3; window++)
subblock_gain [gr] [ch] [window]
3
uimsbf
}
else {
for (region=0; region <3; region++)
table_select [gr] [ch] [region]
5
bslbf
region0_count [gr] [ch]
4
bslbf
region1_count [gr] [ch]
3
bslbf
}
preflag [gr] [ch]
1
bslbf
scalefac_scale [gr] [ch]
1
bslbf
count/table_select [gr] [ch]
1
bslbf
}
main_data ()
}
Ниже определяется структура основного потока битов данных. Поле main_data в audio_data() содержит байты основных данных. Однако из-за свойств кодов Хаффмана, используемых на Уровне III, основные данные кадра обычно не следуют непосредственно за заголовком и служебной информацией об этом кадре. Данные main_data начинаются в потоке битов перед заголовком фрейма при отрицательном смещении, заданном значением main_data_beg.
Синтаксис
Количество битов
Мнемоника
main_data () {
for (gr=0; gr <2; gr++) {
for (ch=0; ch <nch; ch++) {
if ((window_switching_flag [gr] [ch] =1) && (block_type [gr] [ch] =2)) {
if (mixed_block_flag [gr] [ch]) {
for (sfb=0; sfb <8; sfb++)
scalefac_l [gr] [ch] [sfb]
0... 4
uimsbf
for (sfb=3; sfb <12; sfb++)
for (window=0; window <3; window ++)
scalefac_s [gr] [ch] [sfb] [window]
0... 4
uimsbf
}
else {
for (sfb=0; sfb <12; sfb++)
for (window=0; window <3; window++)
scalefac_s [gr] [ch] [sfb] [window]
0... 4
uimsbf
}
}
else {
if ((scfsi [ch] [0] =0) || [gr = 0))
for (sfb =0; sfb <6; sfb++)
scalefac_l [gr] [ch] [sfb]
0... 4
uimsbf
if ((scfsi [ch] [I] =0) || (gr = 0))
for (sfb=6; sfb <11; sfb++)
scalefac_l [gr] [ch] [sfb]
0... 4
uimsbf
if ((scfsi [ch] [2] == 0) || (gr = 0))
for (sfb=11; sfb <16; sfb++)
scalefac_l [gr] [ch] [sfb]
0... 3
uimsbf
if ((scfsi [ch] [3] =0) || (gr = 0))
if (sfb=16; sfb <21; sfb++)
scalefac_l [gr] [ch] [sfb]
0... 3
uimsbf
}
Huffmancodebits ()
}
}
for (b=0; b <no_of_ancillary_bits; b++)
ancillary_bit}
1
bslbf
}
Синтаксис
Количество битов
Мнемоника
Huffmancodebits () {
for 0=0; l <big_values*2; l + = 2) {
hcod[|x|] [|y|]
0... 19
bslbf
if (|x| == 15 && linbits> 0)
linbitsx
1... 13
uimsbf
if (x! =0)
signx
1
bslbf
if (|y| == 15 && linbits> 0)
linbitsy
1... 13
uimsbf
if (y! =0)
signy
1
bslbf
is [l] = x
is [l+1] = y}
}
for (; l<big values*2+countl*4; l + = 4) {
hcod [|v|] [|W|] [|x|] [|y|]
1... 6
bslbf
if (v! =0)
signv
1
bslbf
if (w! =0)
signw
1
bslbf
if (x! =0)
signx
1
bslbf
if (y! =0)
signy
1
bslbf
is [l] = v
is [l+1] = w
is [l+2] = x
is [l+3] = y
}
for (; l < 576; l++)
is[l] = 0
}
5.1.8 Дополнительные данные
Синтаксис
Количество битов
Мнемоника
ancillay_data() {
if ((layer == 1) || (layer == 2))
for (b=0; b <no_of_ancillary_bits; b++)
ancillary_bit
1
bslbf
}
5.2 Семантика потока звуковых сигналов
5.2.1 Общая последовательность данных звуковых сигналов
Фрейм:
- Уровни I и II:
Часть потока битов, декодируемая с использованием данных, которые содержатся только в ней самой. Уровень I содержит информацию о 384 отсчетах, Уровень II - о 1152 отсчетах. Начинается с синхрослова и заканчивается непосредственно перед следующим синхрословом. Состоит из целого числа слотов (четыре байта на Уровне I, один байт на Уровне II).
- Уровень III:
Часть потока битов, декодируемая с использованием ранее полученной основной информации. На Уровне III она содержит информацию о 1152 отсчетах. Несмотря на то что расстояние между соседними синхрословами равно целому числу слотов (один байт на Уровне III), аудиоданные одного фрейма обычно не содержатся между двумя соседними синхрословами.
5.2.2 Звуковой фрейм
header - Часть потока битов, содержащая синхронизацию и информацию о состоянии.
error_check - Часть потока битов, содержащая информацию для обнаружения ошибок.
audio_data - Часть потока битов, содержащая информацию об отсчетах звукового сигнала.
ancillary_data - Часть потока битов, которая может использоваться для дополнительных данных.
5.2.3 Заголовок
Первые 32 бита (четыре байта) являются заголовком, который одинаков для всех уровней.
syncword - Синхрослово, битовая строка '1111 1111 1111 1111'.
ID - Идентификатор алгоритма. Равен '1' для ISO/IEC 11172-3 Аудио, значение '0' зарезервировано. layer - 2 бита, определяющие используемый уровень:
Уровень
'11'
Уровень I
'10'
Уровень II
'01'
Уровень III
'00'
Зарезервированно
При смене уровня допустим сброс декодера.
protection_bit - Бит, определяющий дополнение нулями, для упрощения обнаружения и устранения ошибок. Равен 1, если дополнение отсутствует, 0 - если таковое присутствует.
bitrate_index - Четыре бита, определяет скорость передачи. При равенстве всех битов нулю устанавливается "свободный формат", при котором используется фиксированная скорость передачи, не указанная в списке. "Фиксированная" означает, что фрейм содержит или N, или N+1 слотов в зависимости от значения дополнительного бита. bitrate_index является индексом таблицы, которая отличается для различных уровней.
bitrate_index указывает на полную скорость передачи независимо от режима (стерео, joint_stereo, dual_channel, single_channel):
bitrate_index
Скорость передачи, кбит/с
Уровень I
Уровень II
Уровень III
'0000'
Свободный
Свободный
Свободный
'0001'
32
32
32
'0010'
64
48
40
'0011'
96
56
48
'0100'
128
64
56
'0101'
160
80
64
'0110'
192
96
80
'0111'
224
112
96
'1000'
256
128
112
'1001'
288
160
128
'1010'
320
192
160
'1011*
352
224
192
'1100'
384
256
224
'1101'
416
320
256
'1110'
448
384
320
'1111'
Запрещено
Запрещено
Запрещено
Для обеспечения минимально возможной задержки декодер не обязан поддерживать плавное изменение скорости передачи на Уровне I или II. Уровень III поддерживает переменную скорость передачи с переключением bitrate_index. Переключать bitrate_index можно либо для оптимизации требования хранения данных на цифровом носителе, либо для интерполяции произвольной средней скорости передачи данных путем переключения между соседними значениями в таблице скорости передачи. Однако при использовании свободного формата скорость передачи должна быть фиксированной. Декодер, работая в свободном режиме, не обязан поддерживать скорости передачи выше 448 кбит/с, 384 кбит/с и 320 кбит/с на Уровнях I, II и III соответственно.
Для Уровня II разрешены не все возможные комбинации скорости передачи и режима (см. следующую таблицу):
Скорость передачи, кбит/с
Разрешенные режимы
Свободный формат
Все режимы
32
Single_channel
48
Single_channel
56
Single_channel
64
Все режимы
80
Single_channel
96
Все режимы
112
Все режимы
128
Все режимы
160
Все режимы
192
Все режимы
224
Стерео, intensity_stereo, dual_channel
256
Стерео, intensity_stereo, dual_channel
320
Стерео, intensity_stereo, dual_channel
384
Стерео, intensity_stereo, dual_channel
sampling_frequency - Устанавливает частоту дискретизации, согласно данным следующей таблицы:
Частота дискретизации
Частота, кГц
'00'
44,1
'01'
48
'10'
32
'11'
Зарезервировано
При смене частоты дискретизации возможен сброс звукового декодера.
padding_bit - Если этот бит равен '1', фрейм содержит дополнительный слот для подстройки средней скорости передачи к частоте дискретизации, иначе - бит равен '0'. Дополнение нулями необходимо при частоте дискретизации 44,1 кГц. Дополнение нулями может также требоваться в свободном формате.
Дополнение нулями должно быть применено к потоку битов так, чтобы суммарная длина кодированных фреймов, после определенного количества аудиофреймов не отклонялась более чем на +0, минус 1 слот от следующего вычисленного значения:
,
где frame_size = 384 для Уровня I и 1152 для Уровня II или III.
Следующий метод может использоваться для определения необходимости дополнения нулями:
для 1-го аудиофрейма:
rest = 0;
padding = нет;
для каждого последующего аудиофрейма:
if (Level == 1) dif = (12 * bitrate) % sampling_frequency;
else dif =(144 * bitrate) % sampling_frequency;
rest = rest - dif;
if (rest <0) {
padding = yes;
rest = rest + sampling_frequency;
}
else padding = no;
private_bit - Бит для личного пользования.
mode - Определяет режим согласно следующей таблице. На Уровнях I и II режим joint_stereo является intensity_stereo, а на Уровне III, это - intensity_stereo и/или ms_stereo.
mode
Режим
'00'
Стерео
'01'
joint_stereo (intensity_stereo и/или ms_stereo)
'10'
dual_channel
'11'
Моно
На Уровне I во всех режимах кроме joint_stereo, значение bound равно 32. На Уровне II во всех режимах, кроме joint_stereo, значение bound равно sblimit. В режиме joint_stereo bound определяется по mode_extension.
mode_extension - Эти биты используются в режиме joint_stereo. На Уровнях I и II они указывают, какие субполосы находятся в режиме intensity_stereo. Все другие субполосы кодируются в режиме стерео:
mode_extension
Субполосы
'00'
Субполосы 4 - 31 в intensity_stereo, bound=4
'01'
Субполосы 8 - 31 в intensity_stereo, bound=8
'10'
Субполосы 12 - 31 в intensity_stereo, bound=12
'11'
Субполосы 16 - 31 в intensity_stereo, bound=16
На Уровне III эти биты указывают тип применяемого метода joint_stereo. Частотные диапазоны, для которых применяются режимы intensity_stereo и ms_stereo, неявны в алгоритме:
mode_extension
intensity_stereo
ms_stereo
'00'
Выкл
Выкл
'01'
Вкл
Выкл
'10'
Выкл
Вкл
'11'
Вкл
Вкл
Следует отметить, что режим stereo используется, если биты режима указывают на stereo или, что эквивалентно, если биты режима указывают на использование режима joint_stereo при mode_extension показывающем, что режимы intensity_stereo и ms_stereo выключены.
copyright - Если этот бит равен '0', не защищен авторским правом, '1' - авторские права защищены.
original/copy - Этот бит равен '0', если поток битов является копией, '1', если это оригинал.
emphasis - Указывает на тип частотной коррекции, который должен использоваться:
emphasis
Частотная коррекция
'00'
Нет
'01'
50/15 мкс
'10'
Зарезервировано
'11'
CC/TT J.17
5.2.4 Проверка на ошибки
crc_check - 16-битный код проверки четности используется для дополнительного обнаружения ошибок в кодированном потоке битов.
5.2.5 Звуковые данные. Уровень I
allocation [cb][sb] - Указывает количество битов, отведенных для кодирования отсчетов субполосы sb канала ch. Для субполос в режиме intensity_stereo в потоке содержится только один элемент распределения битов:
allocation [ch] [sb]
Бит на отсчет
0
0
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
Запрещено
Код '0000' означает, что отсчеты субполосы не передаются.
scalefactor [ch] [sb] - Определяет коэффициент, на который должны быть умножены квантованные отсчеты субполосы sb канала ch. Шесть битов образуют беззнаковое целое, соответствующее номеру в таблице Б.1 "Масштабные коэффициенты. Уровни I и II".
sample[ch] [sb] [s] - Переквантованный отсчет s субполосы sb канала ch. Для субполос в режиме intensity_stereo кодированное представление допустимо для обоих каналов.
5.2.6 Звуковые данные. Уровень II
allocation [ch] [sb] - Содержит информацию о квантователях, используемых для отсчетов субполосы sb в канале ch, о том, была ли использована группировка трех последовательных отсчетов и о количестве битов, используемых для кодирования отсчетов. Значение и длина этого поля зависят от номера субполосы, скорости передачи и частоты дискретизации. Биты в этом поле образуют беззнаковое целое, соответствующее номеру в таблице Б.2а, данные которой определяют количество уровней квантования. Для субполос в режиме intensity_stereo поток битов содержит только один элемент данных выделения на субполосу.
scfsi [ch] [sb] - Содержит информацию о выборе масштабных коэффициентов, передаваемых для субполосы sb в канале ch, и о том, для каких частей фрейма они действительны. Фрейм делится на три равные части по 12 отсчетов в каждой субполосе:
scfsi[sb]
Масштабные коэффициенты
'00'
Передаются три коэффициента, для частей 0, 1, 2 соответственно
'01'
Передаются два коэффициента, первый для частей 0 и 1, второй для части 2
'10'
Передается один коэффициент для всех трех частей
'11'
Передаются два коэффициента, первый для части 0, второй для частей 1 и 2
scalefactor [ch [sb] [p] - Указывает на коэффициент, на который должны быть умножены квантованные отсчеты субполосы sb в канале ch части фрейма p. Шесть битов составляют беззнаковое целое, соответствующее номеру в таблице Б.1 "Масштабные коэффициенты. Уровни I и II".
grouping [ch] [sb] - Функция, которая определяет использование группировки при кодировании отсчетов субполосы sb канала ch. Под группировкой понимается использование одного кодового слова вместо трех при кодировании трех последовательных отсчетов (тройки) текущей субполосы sb канала ch текущей гранулы gr. Grouping[ch][sb] возвращает истину, если в текущей таблице распределения битов (см. таблицу Б.2а) значение на пересечении строки sb и столбца allocation[sb] равно 3, 5 или 9. В противном случае функция возвращает ложь. Для субполос в режиме intensity_stereo группировка допустима для обоих каналов.
samplecode [ch] [sb] [gr] - Кодированное представление трех последовательных отсчетов субполосы sb канала ch гранулы gr. Для субполос в режиме intensity_stereo кодированное представление samplecode допустимо для обоих каналов.
sample [ch] [sb] [s] - Кодированное представление отсчета s субполосы sb канала ch. Для субполос в режиме intensity_stereo кодированное представление выборки допустимо для каналов.
5.2.7 Звуковые данные. Уровень III
main_data_begin - Значение main_data_begin используется для определения позиции первого бита основных данных фрейма. Значение main_data_begin указывает позицию как отрицательное смещение в байтах от первого байта синхронизации. Байты заголовка и дополнительной информации не учитываются. Например, если main_data_begin = 0, то основные данные начинаются после дополнительной информации.
private_bits - Биты для частного пользования. Количество private_bits зависит от числа каналов. Выделение битов для private_bits используется для увеличения общего количество битов дополнительной информации.
scfsi [ch] [scfsi_band] - На Уровне III информация о выборе масштабных коэффициентов аналогична информации для Уровня II. Основным различием является использование переменной scfsi_band для применения scfsi к группам масштабных коэффициентов вместо единичных коэффициентов. Использование масштабных коэффициентов для гранул определяется scfsi:
scfsi [scfsi_band]
Масштабные коэффициенты
'0'
Коэффициенты передаются для каждой гранулы
'1'
Коэффициенты, переданные для гранулы 0, также верны для гранулы 1
Если используются короткие окна, т.е. block_type == 2 для одной из гранул, то scfsi всегда равен 0 для этого фрейма.
scfsi_band Управляет информацией о выборе масштабных коэффициентов для групп масштабных коэффициентов (scfsi_bands):
scfsi_band
Полосы масштабных коэффициентов (см. таблицу Б.8)
0
0, 1, 2, 3, 4, 5
1
6, 7, 8, 9, 10
2
11 ... 15
3
16 ... 20
part2_3_length [gr] [ch] - Это значение содержит число битов main_data, используемых для масштабных коэффициентов и данных кода Хаффмана. Поскольку размер дополнительных данных всегда постоянный, то это значение может использоваться для определения позиции начала основной информации для следующей гранулы или положения дополнительной информации (если она присутствует). Следует обратить внимание на то, что аудиофреймы одного канала содержат 17 байтов дополнительной информации, а аудиофреймы стереоканала содержат 32 байта дополнительной информации.
big_values [gr] [ch] - Спектральные значения каждой гранулы кодируются с использованием различных таблиц Хаффмана. Весь частотный диапазон от нуля до частоты Найквиста делится на несколько областей, которые затем кодируются при помощи различных таблиц. Разделение на области выполняется в соответствии с максимумами квантованных значений с учетом того, что значения на верхних частотах, как ожидается, будут иметь небольшие амплитуды или вообще не будут кодироваться. Начиная с верхних частот подсчитывается количество пар квантованных значений, равных нулю. Это число называют zero. Затем подсчитывается количество четверок квантованных значений с абсолютным значением, не превышающим 1 (то есть требующих только 3 возможных уровня квантования). Это число называют count1. В результате получается четное число. Наконец, число пар значений в нижней области спектра, вблизи нуля оси частот называется big_values. Максимальное абсолютное значение в этом диапазоне равно 8191. На следующем рисунке показано описываемое разделение:
xxxxxxxxxxxxx
_______________
00000000000000000000000000000
-
|
|
|
1
bigvalues*2
bigvalues*2+countl*4
iblen
Значения xxx не определены. Их количество кратно двум.
Значения - соответствуют -1, 0 или +1. Их количество кратно четырем.
Значения 000 соответствуют нулям. Их количество кратно двум.
iblen равно 576
global_gain [gr] [ch] - Информация о размере шага квантования передается в global_gain. Используется логарифмическое квантование.
scalefac_compress [gr] [ch] - Определяет число битов, используемых для передачи масштабных коэффициентов согласно следующей таблице:
scalefac_compress [gr]
slen1
slen2
0
0
0
1
0
1
2
0
2
3
0
3
4
3
0
5
1
1
6
1
2
7
1
3
8
2
1
9
2
2
10
2
3
11
3
1
12
3
2
13
3
3
14
4
2
15
4
3
Значения slen1 и slen2 определяют следующее:
если block_type == 0, 1 или 3:
slen1 - длина масштабных коэффициентов для полос от 0 до 10;
slen2 - длина масштабных коэффициентов для полос 11 - 20;
если block_type == 2 и mixed_block_flag == 0:
slen1 - длина масштабных коэффициентов для полос от 0 до 5;
slen2 - длина масштабных коэффициентов для полос 6 - 11;
если block_type == 2 и mixed_block_flag == 1:
slen1 - длина масштабных коэффициентов для полос от 0 до 7 (длинное окно) и 3 - 5 (короткое окно);
slen2 - длина масштабных коэффициентов для полос 6 - 11 (короткое окно).
Примечание - Полосы 0 - 7 из таблицы полос с длинным окном. Полосы 3 - 11 из таблицы полос с коротким окном. Эта комбинация разделов непрерывна и охватывает весь спектр частот.
window_switching_flag [gr] [ch] - Указывает на то, что в блоке используется окно, отличное от нормального (тип 0).
Если флаг window_switching_flag установлен, то ряд других переменных устанавливается по умолчанию:
region0_count = 7 (в случае block_type == 1 или block_type == 3 или block_type == 2 и mixed_block_flag);
region0_count = 8 (в случае block_type == 2 и не mixed_block_flag);
region1_count = 36 Таким образом, все оставшиеся значения области big_value содержатся в области 1.
Если флаг window_switching_flag не установлен, то значение block_type равно нулю.
block_type [gr] [ch] - Указывает на тип окна для гранулы (см. описание набора фильтров, Уровень III):
block_type [gr]
Тип окна
0
Зарезервировано
1
Начальный блок
2
3 коротких окна
3
Конечный блок
Block_type и mixed_block_flag содержат информацию об объединении значений в блоке и о длине и количестве преобразований. Если window_switching_flag == 1, то mixed_block_flag указывает, кодируются ли нижние субполосы полифазных фильтров с использованием нормального типа окна.
В случае длинных блоков (block_type не равно 2 или, для нижних субполос, block_type равно 2 при установленном флаге mixed_block_flag) ОМДКП образует 36 выходных значений для каждых 18 входных. Значения на выходе взвешиваются в окне в зависимости от block_type, и первая половина складывается со второй половиной предыдущего блока. Получающийся вектор значений одной полосы подается на вход блока полифазных фильтров синтеза.
В случае коротких блоков (для верхних субполос с block_type равен 2 при установленном флаге mixed_block_flag или для всех субполос с block_type равен 2 при сброшенном флаге mixed_block_flag) три преобразования выполняются, образуя 12 выходных значений каждое. Эти три вектора выходных значений взвешиваются в окне и складываются друг с другом. Добавление шести нулей к обоим концам результирующего вектора дает вектор длины 36, который обрабатывается как выход длинного преобразования.
mixed_block_flag [gr] [ch] - Указывает, что для нижних частот используется тип окна, который отличен от используемого на высоких частотах. Если mixed_block_flag равен 0, то все блоки преобразуются в соответствии с block_type [gr] [ch]. Если mixed_block_flag равен 1, то частотные линии, соответствующие двум самым нижним субполосам полифазного набора фильтров, преобразуются с нормальным окном (block_type==0), в то время как оставшиеся 30 субполос преобразуются с block_type [gr] [ch].
table_select [gr] [ch] [region] - Различные кодовые таблицы Хаффмана используются в зависимости от максимального квантованного значения и локальной статистики сигнала.
subblock_gain [gr] [ch] [window] - Указывает изменение усиления (квантование с коэффициентом 4) текущего субблока по отношению к глобальному усилению одного субблока. Используется только с типом блока 2 (короткие окна). Значения субблока должны быть разделены в декодере на 4(subblock-gain[window]).
region0_count [gr] [ch] - Дальнейшее разделение спектра используется для улучшения производительности кодера Хаффмана. Делению подлежит область big_values. Цель этого деления состоит в том, чтобы получить лучшую устойчивость к ошибкам и лучшую эффективность кодирования. Используются три области - 0, 1 и 2. Каждая область кодируется с помощью отдельной таблицы Хаффмана в зависимости от максимального квантованного значения и статистических свойств сигнала.
Значения region0_count и regionl_count используются для указания на границы областей. Границы области выравниваются по полосам масштабных коэффициентов.
Поле region0_count содержит значение на единицу меньшее, чем количество полос масштабных коэффициентов в области 0. В случае коротких блоков каждая полоса масштабирующего коэффициента считается три раза, по разу на каждое короткое окно так, что region0_count, равное 8, указывает, что область 1 начинается с полосы номер 3.
Если block_type=2 и mixed_block_flag=0, общее количество полос масштабных коэффициентов для гранулы в этом случае равно 12*3=36. Если block_type=2 и mixed_block_flag=1, количество полос равно 8+9*3=35. Если block_type!=2, количество полос масштабных коэффициентов равно 21.
region1_count [gr] [ch] - На единицу меньше числа полос масштабных коэффициентов в области 1. Если block_type = 2, то полосы масштабных коэффициентов, представляющие различные временные интервалы, считаются отдельно.
preflag [gr] [ch] - Флаг дополнительного усиления ВЧ квантованных значений. Если preflag установлен, значения таблицы добавляются к масштабным коэффициентам (см. таблицу Б.6). Это эквивалентно умножению повторно квантованных масштабных коэффициентов на табличные значения. Если block_type=2 ("короткие" блоки), preflag никогда не используется.
scalefac_scale [gr] [ch] - Масштабные коэффициенты логарифмически квантуются с размером шага 2 или в зависимости от scalefac_scale. В следующей таблице даны множители масштабных коэффициентов, используемые в уравнении квантования для каждого шага:
scalefac_scale [gr]
scalefac_multiplier
0
0,5
1
1
count/table_select [gr] [ch] - Этот флаг определяет одну из двух возможных таблиц Хаффмана для области тетрад квантованных значений с величиной, не превышающей 1:
count/table_select [gr]
Таблица Хаффмана
0
1
scalefac_1 [gr] [ch] [sfb], scalefac_s [gr] [ch] [sfb] [window], is_pos [sfb] - Масштабные коэффициенты используются, чтобы окрасить шумы квантования. Правильная окраска шумов квантования позволяет полностью их маскировать. В отличие от Уровней I и II на Уровне III масштабные коэффициенты не несут информации о локальных максимумах квантованного сигнала. На Уровне III масштабные коэффициенты используются в декодере, чтобы получить коэффициенты, на которые будут разделены группы значений. В случае Уровня III группы расширяются на несколько спектральных линий. Эти группы называют полосами масштабных коэффициентов и они выбираются так, чтобы приблизить критические полосы настолько близко, насколько возможно.
Из таблицы scalefac_compress видно, что масштабные коэффициенты 0 ... 10 находятся в диапазоне от 0 до 15 (максимальная длина 4 бита) и масштабные коэффициенты 11... 21 - в диапазоне от 0 до 7 (максимальная длина 3 бита).
Если включен режим intensity_stereo (modebit_extension), масштабные коэффициенты части zero_part разностного (правого) канала используются в качестве позиций intensity_stereo, is_pos [sfb]. is_pos [sfb] является позицией intensity_stereo для полосы sfb.
Разделение спектра на полосы масштабных коэффициентов фиксировано для каждой возможной длины блока и частоты дискретизации и сохранено в таблицах в кодере и декодере. Масштабным коэффициентом для спектральных линий выше самой высокой линии в таблицах является нуль, то есть фактический коэффициент равен 1,0.
Значения масштабных коэффициентов квантуются логарифмически. Шаг квантования устанавливается в scalefac_scale.
huffmancodebits() - Данные, закодированные с помощью кода Хаффмана.
Синтаксис huffmancodebits() показывает, как кодируются квантованные значения. В пределах участка big_values пары квантованных значений с абсолютным значением меньше 15 кодируются напрямую с использованием кода Хаффмана. Коды выбираются из таблиц Хаффмана с 0 по 31 в Б.7. Всегда кодируются пары значений (x, y). Если квантованные значения имеют амплитуду, большую или равную 15, то они кодируются раздельно. Если одно или оба значения пары отличны от нуля, один или два знаковых бита должны быть добавлены к кодовой комбинации.
Таблицы Хаффмана для big_values раздела состоят из трех параметров:
hcod [|x|] [|y|]
элемент таблицы значений кода Хаффмана для значений x, y.
hlen [|x|] [|y|]
элемент таблицы длин кода Хаффмана для значений x, y.
linbits
длина linbitsx или linbitsy, если они кодируются.
Синтаксис для huffmancodebits содержит следующие поля и параметры:
signv
знак v (0 если положительный, 1, если отрицательный).
signw
знак w (0 если положительный, 1, если отрицательный).
signx
знак x (0 если положительный, 1, если отрицательный).
signy
знак y (0 если положительный, 1, если отрицательный).
linbilsx
Используется для кодирования значения x, большего или равного 15. Это поле кодируется, только если |x| в hcod равен 15. Если linbits равно нулю, то есть никакие биты не были фактически кодированы при |x|==15, то значение linbitsx приравнивается к нулю.
linbitsy
То же самое, что и linbitsx, но для y.
is[1]
Квантованное значение спектральной линии номер 1.
Поля linbitsx или linbitsy используются только при кодировании значений, больших или равных 15. Эти поля интерпретируются как целые числа без знака и добавляются к 15, чтобы получить кодированное значение. Поля linbitsx и linbitsy никогда не используются, если выбрана таблица для блоков с максимальным квантованным значением меньше 15. Следует обратить внимание на то, что значение 15 все еще может быть закодировано таблицей Хаффмана, для которой linbits является нулем. В этом случае поля linbitsx или linbitsy не кодируются, так как linbits является нулем.
В пределах раздела count1 кодируются тетрады значений с амплитудой, меньшей или равной единице. Значения кодируются с использованием кодов Хаффмана из таблиц (А) или (Б) в таблицах Б.7. Снова для каждого ненулевого значения добавляется бит знака после символа кода Хаффмана.
Таблицы Хаффмана для раздела count1 включают следующие параметры:
hcod [|v|] [|w|] [|x|] [|y|]
- Элемент таблицы значений кода Хаффмана для значений v, w, x, y.
hlen [|v|] [|w|] [|x|] [|y|]
- Элемент таблицы длин кода Хаффмана для значений v, w, x, y.
Таблица кода Хаффмана В не является настоящим 4-мерным кодом, потому что она создается из тривиального кода: 0 кодируется с 1, и 1 кодируется с 0.
Квантованные значения выше раздела count1 являются нулями, таким образом, они не кодируются.
Параметр count1 используется здесь для указания на число кодов Хаффмана в count1 области. Однако, в отличие от раздела bigvalues, число значений в разделе count1 не кодируется явным образом. Конец раздела count1 известен только тогда, когда все биты гранулы (определяемые part2_3_length) были исчерпаны и значение count1 становится точно известным после декодирования области count1.
Порядок следования данных кода Хаффмана зависит от block_type гранулы. Если block_type равен 0, 1 или 3, данные кода Хаффмана упорядочиваются по нарастанию частоты.
Если block_type=2 (короткие блоки), данные Хаффмана организуются в том же самом порядке, что и значения масштабных коэффициентов для гранулы. Данные Хаффмана даются для последовательных полос масштабных коэффициентов начиная с полосы 0. В пределах каждой полосы данные соответствуют последовательным окнам начиная с окна 0 и заканчивая окном 2. В пределах каждого окна квантованные значения располагаются в порядке увеличения частоты.
5.2.8 Дополнительные данные
Ancillary_bit - Бит, определяемый пользователем.
Количество дополнительных битов (no_of_ancillary_bits) равно доступному числу битов в аудиофрейме минус число битов заголовка, проверочных битов и аудиоданных. На Уровнях I и II no_of_ancillary_bits соответствует расстоянию между концом аудиоданных и началом следующего заголовка. На Уровне III no_of_ancillary_bits соответствует расстоянию между концом Huffman_code_bits и позицией в потоке, на которую ссылается указатель следующего фрейма main_data_begin.
5.3 Процесс декодирования данных звука
5.3.1 Общие сведения
Первым действием является синхронизация декодера с входным потоком битов. Для этого выполняется обнаружение в потоке 12-битного синхрослова. В некоторых приложениях поля ID, уровень и protection status заранее известны, и, таким образом, первые 16 битов заголовка должны быть расценены как 16-битная синхропоследовательность, делая тем самым синхронизацию более надежной. Позиция соседних синхрослов может быть вычислена из информации, предоставленной семью битами после protection_bit: поток битов подразделяется на слоты. Расстояние между началами двух соседних синхрослов составляет N или N + 1 слотов. Значение N зависит от уровня.
Для Уровня I верно следующее равенство:
;
для Уровней II и III:
.
Если результат не является целым числом, то он округляется и требуется дополнение. В этом случае число слотов во фрейме будет меняться в пределах N и N + 1. Бит пэддинга устанавливается в '0', если число слотов равно N, и в '1' в противном случае. Знание точной позиции синхрослов значительно облегчает синхронизацию.
Если индекс скорости передачи равен '0000', точная скорость передачи не обозначается. N может быть определено из расстояния между соседними синхрословами и значением бита пэддинга.
Биты режима должны быть считаны из потока, и если их значение равно '01', то также должны быть считаны биты mode_extension. Биты mode_extension, установленные в bound, указывают тем самым на субполосы, кодированные в режиме joint_stereo.
Если бит защиты в заголовке равен '0', проверочное слово CRC находится в потоке битов сразу после заголовка. В качестве метода обнаружения ошибок используется CRC 16 с порождающим полиномом
G(X) = X16 + X15 + X2 + 1.
Начальное состояние сдвигового регистра '1111 1111 1111 1111'. Затем все биты, включенные в проверку CRC, поступают в блок, показанный на рисунке А.9. После введения каждого бита сдвиговый регистр смещается на один бит. После последней операции сдвига выходы b15 ... b0 составляют слово, которое сравнивается со словом проверки CRC. Если эти слова неидентичны, ошибка передачи произошла в защищенном поле потока битов. Во избежание раздражающих искажений рекомендуется использование методов маскировки ошибок, таких как заглушение текущего фрейма или повторение предыдущего фрейма.
5.3.2 Уровень I
После части декодирования, общей для всех уровней, считывается информация о распределении битов для всех субполос и масштабные коэффициенты для субполос с ненулевым распределением битов. Блок-схема алгоритма декодера дана на рисунке А.1.
5.3.2.1 Переквантование субполосных отсчетов
Из информации о распределении битов известно число битов nb, которое должно быть считано из субполосных отсчетов. После того как биты одного отсчета были считаны из потока, первый бит инвертируется. Полученное таким образом число можно рассматривать как дробное число (меньше единицы) в дополнительном коде, где MSB представляет значение минус один. Переквантование выполняется по формуле
,
где s" - переквантованное значение;
nb - количество битов, выделеное на кодирование отсчетов субполосы;
- дробное число.
Отсчеты субполос, которые находятся в режиме intensity_stereo, должны быть скопированы в оба канала. Переквантованные значения должны повторно масштабироваться. Коэффициенты даны в таблице Б.1. Повторно масштабируемое значение s' вычисляется как
s' = factor * s",
где factor - масштабный коэффициент.
5.3.2.2 Субполосный фильтр синтеза
Если на субполосу не было выделено ни одного бита, то отсчеты этой полосы заменяются нулями. Каждый раз, после определения отсчетов всех 32 субполос одного канала, полученные отсчеты поступают на субполосный фильтр синтеза для получения 32 последовательных звуковых отсчетов. На рисунке А.2 показан процесс реконструкции. Коэффициенты Nik для операции матрицирования задаются формулой
.
Значения оконной функции Di содержатся в таблице Б.3 "Коэффициенты Di окна синтеза". Коэффициенты были получены численной оптимизацией. Один фрейм содержит 12 * 32 = 384 отсчетов субполосы, которые в результате фильтрации преобразуются в 384 звуковых отсчета.
5.3.3 Уровень II
5.3.3.1 Декодирование информации о распределении битов
Уровень II является более эффективным, однако на нем используется более сложная схема кодирования по сравнению с Уровнем I. Блок-схема декодера, приведенная на рисунке А.1, применяется к Уровням I и II. Первым шагом является декодирование, общее для всех трех уровней (см. 5.3.1).
Для различных комбинаций скорости передачи и частоты дискретизации применяются различные таблицы распределения битов (таблица Б.2). Скорости передачи в заголовках таблицы даются на канал. Если используется режим, отличный от single_channel, значение скорости передачи должно быть разделено на два для получения скорости передачи на канал. Декодирование информации о распределении битов выполняется в три шага. Первый шаг заключается в чтении nbal (2, 3 или 4) бит информации для одной субполосы. Значение nbal дается во втором столбце таблицы Б.2. Эти биты должны интерпретироваться как беззнаковое целое. На втором шаге это число и номер субполосы используются как индексы таблицы для определения табличного значения, соответствующего количеству уровней квантования nlevels, которое применялось при квантовании отсчетов субполосы. На третьем шаге по таблице Б.4 определяется число битов, использованное для кодирования квантованных отсчетов, коэффициенты квантования и наличие группировки для трех последовательных отсчетов субполосы. Из таблиц распределения битов становится видно, что для некоторых самых верхних субполос никогда не будут выделены биты. Номер субполосы, выше которой включительно не будут выделяться биты, присваивается идентификатору sblimit.
5.3.3.2 Декодирование информации о выборе масштабных коэффициентов
36 отсчетов одной субполосы в пределах фрейма делятся на три равные части по 12 отсчетов. У каждой части может быть свой масштабный коэффициент. Количество масштабных коэффициентов, которое должно быть считано из потока битов, зависит от scfsi[sb].
Информация о выборе масштабных коэффициентов scfsi[sb] считывается из потока битов для субполос с ненулевым выделением битов. Если scfsi[sb] равно '00', то передаются три масштабных коэффициента для частей 0, 1, 2 соответственно. Если scfsi[sb] равно '01', то передаются два масштабных коэффициента, первый - для частей 0 и 1, второй - для части 2. Если scfsi[sb] равно '10', передается один масштабный коэффициент для всех трех частей. Если scfsi[sb] равно '11', передаются два масштабных коэффициента, первый - для части 0, второй - для частей 1 и 2.
5.3.3.3 Декодирование масштабных коэффициентов
Кодированные значения масштабных коэффициентов для каждой субполосы с ненулевым выделением битов считываются из потока битов. Количество кодированных масштабных коэффициентов и часть субполосных отсчетов, к которым они относятся, определяются с помощью scfsi [sb]. 6 битов кодированного значения масштабного коэффициента интерпретируются как беззнаковое целое, соответствующее номеру в таблице Б.1. Из этой таблицы определяется масштабный коэффициент, на который соответствующие субполосные отсчеты должны быть умножены после переквантования.
5.3.3.4 Переквантование субполосных отсчетов
Далее производится считывание кодированных отсчетов. Как следует из 5.1.6, кодированные отсчеты объединены по тройкам, так что одно кодовое слово соответствует трем последовательным отсчетам. В таблице Б.4 показано, сколько битов необходимо считать из потока для получения одной тройки в каждой полосе, а также состоит ли текущий код из трех последовательных отдельных кодов, соответствующих трем отсчетам, или одного объединенного кода для трех отсчетов (группировка). В последнем случае должна быть выполнена процедура разбиения группы (degrouping). Объединенный код должен быть расценен как беззнаковое целое C. Следующий алгоритм образует три отдельных кодовых слова s[0], s[1], s[2].
for (i=0; i <3; i++) {
s [i] = c % nlevels
C = C D/V nlevels
},
где nlevels - количество шагов (см. таблицу Б.2).
Первый бит каждого из трех кодовых слов должен быть инвертирован, и полученные значения должны быть интерпретированы как дробные значения в дополнительном коде, где MSB представляет значение минус один. Переквантование выполняется с помощью линейного выражения:
,
где s" - переквантованное значение;
- дробное число.
Значения констант C и D даются в таблице Б.4. Переквантованные значения должны повторно масштабироваться. Масштабные коэффициенты даны в таблице Б.1. Повторно масштабируемые значения s' вычисляются как
s' = factor * s",
где factor - масштабный коэффициент.
5.3.3.5 Субполосный фильтр синтеза
Если на субполосу не было выделено ни одного бита, то отсчеты этой полосы заменяются нулями. Каждый раз, после определения отсчетов всех 32 субполос одного канала, отсчеты поступают на субполосный фильтр синтеза для получения 32 последовательных звуковых отсчетов. На рисунке А.2 показан процесс реконструкции. Коэффициенты Nik для операции матрицирования задаются формулой
.
Значения оконной функции Di содержатся в таблице Б.3. Один фрейм содержит 36 * 32 = 1152 отсчета субполосы, которые в результате фильтрации преобразуются в 1152 звуковых отсчета.
5.3.4 Уровень III
5.3.4.1 Декодирование
Дополнительная разрешающая способность по частоте обеспечивается с помощью гибридного набора фильтров. Каждая полоса при помощи МДКП разделяется на 18 частотных линий. Длина окна МДКП составляет 36 отсчетов. Для контроля временных артефактов (пре-эхо) используется адаптивное переключение окон. Имеется возможность выбора частоты, выше которой используются короткие блоки, обеспечивающие лучшее разрешение по времени. Части сигнала ниже этой частоты в зависимости от mixed_block_flag кодируются с лучшей разрешающей способностью по частоте, части сигнала, лежащие выше, кодируются с лучшим разрешением по времени.
Частотные составляющие квантуются по нелинейной шкале и кодируются методом Хаффмана. Кодер Хаффмана использует одну из 18 различных кодовых таблиц (см. таблицу Б.7). Для повышения эффективности кодера Хаффмана и уменьшения пре-эха используется буфер. Размер входного буфера равен размеру одного фрейма при скорости передачи 160 кбит/с на канал на Уровне III. Применяется метод кратковременного буфера, называемый "резервуар битов", так как последний использует переменную скорость передачи с максимальным интегральным смещением от средней скорости передачи.
Каждый фрейм содержит данные 2 гранул. Данные во фрейме организованы следующим образом.
Заголовок и часть аудиоданных составляют служебную информацию:
- указатель main_data_begin;
- служебная информация об обеих гранулах (scfsi);
- служебная информация о грануле 1;
- служебная информация о грануле 2.
Основные данные (указатель main_data_begin определяет отрицательное смещение относительно позиции первого байта заголовка):
- масштабные коэффициенты и коды Хаффмана для гранулы 1;
- масштабные коэффициенты и коды Хаффмана для гранулы 2;
- дополнительные данные.
Сначала выполняется синхронизация декодера с входным потоком битов так же, как и на других уровнях. Данные заголовка (первые 32 бита, включая синхрослово) считываются так же, как и на других уровнях. Информация о частоте дискретизации используется для выбора соответствующей таблицы полос масштабных коэффициентов (см. приложение Б.8).
5.3.4.2 Служебная информация
Служебная информация должна быть извлечена из потока битов и сохранена для использования при декодировании соответствующего фрейма. Информация о выборе таблицы используется для выбора таблицы декодера Хаффмана и числа битов ESC (linbits) согласно таблице Б.7.
5.3.4.3 Начало main_data
Биты main_data (масштабные коэффициенты, кодированные методом Хаффмана данные и дополнительная информация) не обязательно должны следовать сразу же за битами служебной информации. Это показано на рисунках А.7а и А.7б. Начало main_data определяется при помощи указателя main_data_begin в текущем фрейме. Основные данные распределяются так, чтобы они находились во входном буфере в момент поступления в него заголовка следующего фрейма. Декодер должен пропустить заголовок и служебную информацию при декодировании main_data. Их позиции определяются из bitrate_index и padding_bit. Длина заголовка всегда составляет 4 байта, длина служебных данных составляет 17 байтов в режиме single_channel и 32 байта в других режимах. Основные данные могут охватывать более чем один блок заголовка и служебной информации (см. рисунок А.7б).
5.3.4.4 Буфер
Для расчета максимального количества битов, используемых для одной гранулы, применяется следующее правило.
Размер буфера составляет 7680 битов. Это значение максимально на каждой скорости передачи. При максимально возможной для Уровня III скорости передачи (320 кбит/с на канал) и частоте дискретизации 48 кГц средняя длина фрейма составляет (320000/48000) * 1152 = 7680 битов. Следовательно, фреймы должны иметь постоянную длину на этой скорости передачи и частоте дискретизации. На скорости 64 кбит/с (128 кбит/с стерео) средняя длина гранулы составляет (64000/48000) * 576 = 768 битов при частоте дискретизации 48 кГц. Это означает, что максимальное отклонение (кратковременный буфер), допустимое при скорости 64 кбит/с, равно 7680 - 4 * 768 = 4608 битам. Фактическое отклонение равно числу байтов, обозначенных указателем смещения main_data_begin. Фактическое максимальное отклонение . Для промежуточных скоростей передачи задержка и размер буфера могут быть вычислены соответственно. Обмен буфером между левым и правым каналами в стереопотоке битов позволяется без ограничений. Из-за ограничения на размер буфера main_data_begin всегда устанавливается в 0 в случае bitrate_index = 14, то есть скорости передачи данных 320 кбит/с на один канал стерео. В этом случае все данные распределяются между соседними заголовками.
При частотах дискретизации ниже 48 кГц размер буфера должен быть ограничен так, чтобы его действительное значение было достаточным, как в случае с буфером, определенным выше для 48 кГц.
5.3.4.5 Масштабные коэффициенты
Масштабные коэффициенты декодируются в соответствии с slen1 и slen2, которые в свою очередь определяются непосредственно из значений scalefac_compress. Декодированные значения могут использоваться в таблице или для непосредственного вычисления коэффициентов для каждой полосы. При декодировании второй гранулы необходимо учитывать scfsi. Для полос, в которых соответствующий scfsi равен 1, масштабные коэффициенты первой гранулы также используются и для второй гранулы, поэтому они не передаются для нее.
Число битов, отводимых для кодирования масштабных коэффициентов, называется part2_length и вычисляется следующим образом:
для block_type == 0, 1 или 3 (длинные блоки),
part2_length = 11 * slen1 + 10 * slen2;
для block_type = 2 (короткие блоки) и mixed_block_flag = 0,
part2_length = 18 * slen1 + 18 * slen2;
для block_type = 2 (короткие блоки) и mixed_block_flag = 1,
part2_length = 17 * slen1 + 18 * slen2.
Эти формулы действительны, если gr = 0 или gr = 1 и scfsi [ch] [scfsi_band] = 0 для всех scfsi_bands, то есть информация о выборе масштабных коэффициентов не используется.
5.3.4.6 Декодирование кода Хаффмана
Вся необходимая информация, включая таблицу декодирования дерева кода Хаффмана, может быть получена из таблицы Б.7. Сначала декодируются данные big_values по таблицам с номером table_select [gr] [ch] [region]. Частотные линии в областях 0, 1 и 2 декодируются в парах до восстановления количества пар big_values. Оставшиеся биты кода Хаффмана декодируются с помощью таблицы из count1table_select [gr] [ch]. Декодирование выполняется до тех пор, пока все биты кода Хаффмана не оказываются восстановленными или пока квантованные значения, соответствующие 576 частотным линиям, не оказываются декодированными. Если количество битов кода Хаффмана превышает необходимое для декодирования 576 значений, то эти биты расцениваются как биты стаффинга и отбрасываются. Переменная count1 определяется с помощью count1table_select как число тетрад декодируемых значений.
5.3.4.7 Переквантователь
При квантовании используется неравномерная шкала с power law. Для каждого выходного значения декодера Хаффмана is вычисляется |is|4/3. Это может быть сделано при помощи таблицы или непосредственным вычислением.
Весь процесс обработки, от декодируемых значений Хаффмана до входных значений набора фильтров синтеза, описывается одной формулой. В ней содержатся все необходимые масштабные коэффициенты. Выходные данные восстанавливаются из переквантованных значений. Общее усиление и значения усиления субблоков влияют на все значения в пределах одного окна (в случае block_type=2). Масштабные коэффициенты и префлаг корректируют усиление в пределах каждой полосы масштабных коэффициентов. Ниже приведено уравнение переквантования для коротких блоков. Декодированное i-е значение кода Хаффмана обозначено как isi; входные отсчеты i набора фильтров синтеза обозначены xri:
Для длинных блоков
Значение pretab[cb] дано в таблице Б.6 со значениями предкоррекции. Постоянная 210 необходима для корректного масштабирования и является системной константой. Набор фильтров синтеза реализуется согласно формулам, данным ниже. Диапазон выходных значений декодера (ИКМ-отсчетов) от -1,0 до +1,0.
5.3.4.8 Реорганизация
Если используются короткие блоки (block_type=2), то повторно масштабируемые данные xr [scf_band][window][freq_line] должны быть реорганизованы в порядке следования субполос xr [subband][window][freq_line] для выполнения ОМДКП.
5.3.5 Обработка стереосигналов
После переквантования, восстановленные значения перед поступлением в набор фильтров синтеза обрабатываются для режимов ms_stereo или/и instensity_stereo. В режиме ms_stereo оба канала гранулы должны иметь одинаковый block_type.
5.3.5.1 Режим ms_stereo
Этот переключатель режима (расположенный в заголовке mode_extension) позволяет переключаться между "независимым стерео" и ms_stereo. Если ms_stereo включен, но intensity_stereo не доступен, то весь спектр декодируется в ms_stereo. Если и ms_stereo и intensity_stereo включены, то верхняя граница, до которой полосы масштабных коэффициентов декодируются в ms_stereo, получается из zero_part разностного (правого) канала. В этом случае полоса, в которой присутствует последняя ненулевая частотная линия, является последней полосой, к которой применяются уравнения ms_stereo. Выше этой границы может использоваться режим intensity_stereo, если он был включен в заголовке. Часть zero_part разностного канала является частью спектра от bigvalues * 2 + count1 * 4 до частоты Найквиста.
5.3.5.2 Матрица MS
В режиме ms_stereo значения нормализованных среднего/бокового каналов Mi/Si передаются вместо значений левого/правого каналов Li/Ri. Таким образом, Li/Ri восстанавливаются по формуле
.
Значения Mi поступают в левый канал, а значения Si - в правый.
Если окна переключаются, то каналы M и S должны переключаться синхронно.
5.3.5.3 Режим intensity_stereo
Этот переключатель режима (расположенный в заголовке mode_extension) позволяет переключаться между "нормальным стерео" и intensity_stereo. На Уровне III, intensity_stereo реализуется не путем использования пары масштабных коэффициентов s, как на Уровнях I и II, а через определение амплитуды (как обычно, по масштабным коэффициентам правого канала) и позиции стерео is_possb[sfb]. Значение is_possb[sfb] передается вместо масштабных коэффициентов правого канала. Позиция стерео используется для получения сигналов левого и правого каналов согласно формулам, приведенным ниже. Нижняя граница полос масштабных коэффициентов, декодируемых в режиме intensity_stereo, получается из zero_part правого канала. Выше этой границы декодирование intensity_stereo применяется на основе масштабных коэффициентов правого канала как позиций intensity_stereo. Позиция intensity_stereo 7 в одной полосе указывает, что эта полоса не декодируется как intensity_stereo.
Для каждой полосы (sb), кодированной в intenstiy_stereo, выполняются следующие шаги:
1) позиция стереоинтенсивности s_possb считывается из масштабного коэффициента правого канала;
2) если (is_possb = 7), следующие шаги не выполняются (недопустимый is_pos);
3) ;
4) для всех индексов i в пределах текущей полосы sb;
5) для всех индексов i в пределах текущей полосы sb.
5.3.6 Набор фильтров синтеза
На рисунке А.4 показана блок-схема, включающая в себя набор фильтров синтеза. Частотные линии предварительно обрабатываются по схеме устранения элайзинга (см. блок-схемы на рисунке А.5 и таблицу Б.9 для коэффициентов) и поступают в матрицу ОМДКП по 18 значений в один блок преобразования. Первая половина выходных значений складывается с сохраненными значениями последнего блока. Эти значения являются новыми выходными значениями и входными значениями для полифазного набора фильтров. Вторая половина выходных значений сохраняется для перекрытия с данными следующей гранулы. Для каждой четной субполосы полифазного набора фильтров каждое четное входное значение умножается на минус один, чтобы устранить частотную инверсию в полифазном наборе фильтров.
5.3.6.1 Устранение элайзинга
Для "длинных" гранул (block_type!= 2) данные, поступающие на вход набора фильтров синтеза, перед ОМДКП подлежат устранению элайзинга. Следующий псевдокод описывает процедуру устранения элайзинга:
for (sb=1; sb <32; sb++)
for (i=0; i <8; i++) {
xar [18sb - 1 - i] = xr [18sb - 1 - i] cs[i] - xr [18sb+i] ca[i]
xar [18sb+i] = xr [18sb+i] cs[i] + xr [18sb - l - i] ca[i]
}
Индексы массивов xar[] и xr[] указывают на частотные линии в грануле, расположенные в порядке возрастания частоты, причем нуль является индексом самой нижней частотной линии, а 575 - самой верхней.
Устранение элайзинга не применяется для гранул с block_type = 2 (короткий блок).
5.3.6.2 ОМДКП
В следующем выражении n - количество отсчетов в окне (для коротких блоков n = 12, для длинных блоков n = 36). В случае блока типа short каждый из трех коротких блоков преобразуется отдельно, n/2 значений Xk преобразуется в n значений xi. Аналитическое выражение для ОМДКП:
для i = 0 до n - 1
5.3.6.3 Окна
В зависимости от типа блока block_type используются окна различной формы:
а) block_type=0 (нормальное окно)
для i = 0 до 35
б) block_type=1 (стартовый блок)
в) block_type=3 (столовый блок)
г) block_type=2 (короткий блок)
каждый из трех коротких блоков отдельно берется в окне
для i = 0 ... 11 и j = 0 ... 2
Взятые в окне короткие блоки должны быть перекрыты и сложены
5.3.6.4 Перекрытие и сложение с предыдущим блоком
Первая половина блока из 36 значений перекрывается со второй половиной предыдущего блока. Вторая половина текущего блока сохраняется для использования в следующем блоке:
resulti = zi + si,
i = 0...17
si = zi+18,
i = 0...17
5.3.6.5 Компенсация инверсии частоты в полифазном наборе фильтров
Выход блока перекрытия и сложения состоит из 18 временных отсчетов каждой из 32 полифазных субполос. Если временные отсчеты обозначены от 0 до 17, где нулевой отсчет - самый ранний во времени, и субполосы обозначены от 0 до 31, где нулевая субполоса - самая нижняя, то каждый нечетный временной отсчет каждого нечетной субполосы умножается на минус 1 перед поступлением в полифазный набор фильтров.
Приложение А
(обязательное)
СХЕМЫ
Рисунок А.1 - Блок-схема алгоритма декодера. Уровни I и II
Рисунок А.2 - Блок-схема алгоритма субполосной фильтрации
Рисунок А.3 - Блок-схема алгоритма декодера. Уровень III
В каждом блоке ОМДКП вычисляются 18 выходных значений y0 ... y17 по 18 входным значениям спектральных коэффициентов. Для всех субполос, кроме первой, каждый нечетный выходной отсчет должен быть умножен на минус 1.
Рисунок А.4 - Схема декодера. Уровень III
Рисунок А.5 - Диаграмма устранения элайзинга в декодере.
Уровень III
Рисунок А.6 - "Бабочка" устранения элайзинга в декодере.
Уровень III
Рисунок А.7.а - Структура потока битов. Уровень III
--------------------------------
<*> main_data_begin 4 = 0: основные данные следуют непосредственно за служебной информацией фрейма 4. Это нижний предел для main_data_begin; main_data не может начинаться после этой точки. Следует обратить внимание на то, что байты данных, используемые полями синхро и side info, не учитываются указателем main_data_begin.
Рисунок А.7.б - Структура потока битов с максимальной
нагрузкой в main info 3 и небольшой нагрузкой
в main info 2. Уровень III.
Рисунок А.8 - Гранулы фрейма с block_type = 0 в первой
грануле и block_type = 2 во второй грануле. Уровень III
Рисунок А.9 - Схема проверки CRC
Приложение Б
(обязательное)
ТАБЛИЦЫ
Таблица Б.1
Масштабные коэффициенты. Уровни I и II
Номер
Масштабный коэффициент
Номер
Масштабный коэффициент
Номер
Масштабный коэффициент
0
2,00000000000000
21
0,01562500000000
42
0,00012207031250
1
1,58740105196820
22
0,01240157071850
43
0,00009688727124
2
1,25992104989487
23
0,00984313320230
44
0,00007689947814
3
1,00000000000000
24
0,00781250000000
45
0,00006103515625
4
0,79370052598410
25
0,00620078535925
46
0,00004844363562
5
0,62996052494744
26
0,00492156660115
47
0,00003844973907
6
0,50000000000000
27
0,00390625000000
48
0,00003051757813
7
0,39685026299205
28
0,00310039267963
49
0,00002422181781
8
0,31498026247372
29
0,00246078330058
50
0,00001922486954
9
0,25000000000000
30
0,00195312500000
51
0,00001525878906
10
0,19842513149602
31
0,00155019633981
52
0,00001211090890
11
0,15749013123686
32
0,00123039165029
53
0,00000961243477
12
0,12500000000000
33
0,00097656250000
54
0,00000762939453
13
0,09921256574801
34
0,00077509816991
55
0,00000605545445
14
0,07874506561843
35
0,00061519582514
56
0,00000480621738
15
0,06250000000000
36
0,00048828125000
57
0,00000381469727
16
0,04960628287401
37
0,00038754908495
58
0,00000302772723
17
0,03937253280921
38
0,00030759791257
59
0,00000240310869
18
0,03125000000000
39
0,00024414062500
60
0,00000190734863
19
0,02480314143700
40
0,00019377454248
61
0,00000151386361
20
0,01968626640461
41
0,00015379895629
62
0,00000120155435
Таблицы Б.2
Таблицы распределения битов. Уровень II
Таблица Б.2а
Допустимые уровни квантования в субполосах
Fs = 48 кГц
Скорости передачи на канал = 56, 64, 80, 96, 112, 128, 160, 192 кбит/с свободный формат.
Fs = 44,1 кГц
Скорости передачи на канал = 56, 64, 80 кбит/с.
Fs = 32 кГц
Скорости передачи на канал = 56, 64, 80 кбит/с.
sb
nbal
Индекс
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
4
-
3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
1
4
-
3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
2
4
-
3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
3
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
4
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
5
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
6
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
7
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
8
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
9
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
10
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
11
3
-
3
5
7
9
15
31
65535
12
3
-
3
5
7
9
15
31
65535
13
3
-
3
5
7
9
15
31
65535
14
3
-
3
5
7
9
15
31
65535
15
3
-
3
5
7
9
15
31
65535
16
3
-
3
5
7
9
15
31
65535
17
3
-
3
5
7
9
15
31
65535
18
3
-
3
5
7
9
15
31
65535
19
3
-
3
5
7
9
15
31
65535
20
3
-
3
5
7
9
15
31
65535
21
3
-
3
5
7
9
15
31
65535
22
3
-
3
5
7
9
15
31
65535
23
2
-
3
5
65535
24
2
-
3
5
65535
25
2
-
3
5
65535
26
2
-
3
5
65535
27
0
-
28
0
-
29
0
-
30
0
-
31
-
sblimit = 27
Сумма nbal = 88
Таблица Б.2б
Допустимые уровни квантования в субполосах
Fs = 48 кГц
не используется.
Fs = 44,1 кГц
Скорости передачи на канал = 96, 112, 128, 160, 192 кбит/с и свободный формат.
Fs = 32 кГц
Скорости передачи на канал = 96, 112, 128, 160 192 кбит/с и свободный формат.
sb
nbal
Индекс
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
4
-
3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
1
4
-
3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
2
4
-
3
7
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
65535
3
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
4
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
5
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
6
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
7
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
8
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
9
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
8191
65535
10
4
-
3
5
7
9
15
31
63
127
255
511
1023
2047
4095
81.91
65535
11
3
-
3
5
7
9
15
31
65535
12
3
-
3
5
7
9
15
31
65535
13
3
-
3
5
7
9
15
31
65535
14
3
-
3
5
7
9
15
31
65535
15
3
-
3
5
7
9
15
31
65535
16
3
-
3
5
7
9
15
31
65535
17
3
-
3
5
7
9
15
31
65535
18
3
-
3
5
7
9
15
31
65535
19
3
-
3
5
7
9
15
31
65535
20
3
-
3
5
7
9
15
31
65535
21
3
-
3
5
7
9
15
31
65535
22
3
-
3
5
7
9
15
31
65535
23
2
-
3
5
65535
24
2
-
3
5
65535
25
2
-
3
5
65535
26
2
-
3
5
65535
27
2
-
3
5
65535
28
2
-
3
5
65535
29
2
-
3
5
65535
30
0
-
31
0
-
sblimit = 30
Сумма nbal = 94
Таблица Б.2в
Допустимые уровни квантования в субполосах
Fs = 48 кГц
Скорости передачи на канал = 32, 48 кбит/с.
Fs = 44,1 кГц
Скорости передачи на канал = 32, 48 кбит/с.
Fs = 32 кГц
не используется.
sb
nbal
Индекс
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
4
-
3
5
9
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
1
4
-
3
5
9
15
31
63
127
255
511
1023
2047
4095
8191
16383
32767
2
3
-
3
5
9
15
31
63
127
3
3
-
3
5
9
15
31
63
127
4
3
-
3
5
9
15
31
63
127
5
3
-
3
5
9
15
31
63
127
6
3
-
3
5
9
15
31
63
127
7
3
-
3
5
9
15
31
63
127
8
0
-
9
0
-
10
0
-
11
0
-
12
0
-
13
0
-
14
0
-
15
0
-
16
0
-
17
0
-
18
0
-
19
0
-
20
0
-
21
0
-
22
0
-
23
0
-
24
0
-
25
0
-
26
0
-
27
0
-
28
0
-
29
0
-
30
0
-
31
0
-
sblimit = 8
Сумма nbal = 26
Таблица Б.2г
Допустимые уровни квантования в субполосах
Fs = 48 кГц
не используется.
Fs = 44,1 кГц
не используется.
Fs = 32 кГц
Скорости передачи на канал = 32, 48 кбит/с.
sb
nbal
Индекс
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
0
4
-
3
5
9
15
31
63
127
255
511
2047
4095
8191
8191
16383
32767
1
4
-
3
5
9
15
31
63
127
255
511
2047
4095
8191
8191
16383
32767
2
3
-
3
5
9
15
31
63
127
3
3
-
3
5
9
15
31
63
127
4
3
-
3
5
9
15
31
63
127
5
3
-
3
5
9
15
31
63
127
6
3
-
3
5
9
15
31
63
127
7
3
-
3
5
9
15
31
63
127
8
3
-
3
5
9
15
31
63
127
9
3
-
3
5
9
15
31
63
127
10
3
-
3
5
9
15
31
63
127
11
3
-
3
5
9
15
31
63
127
12
0
-
13
0
-
14
0
-
15
0
-
16
0
-
17
0
-
18
0
-
19
0
-
20
0
-
21
0
-
22
0
-
23
0
-
24
0
-
25
0
-
26
0
-
27
0
-
28
0
-
29
0
-
30
0
-
31
0
-
sblimit = 12
Сумма nbal = 38
Таблица Б.3
Коэффициенты D окна синтеза
D[0] = 0,000000000
D[1] = -0,000015259
D[2] = -0,000015259
D[3] = -0,000015259
D[4] = -0,000015259
D[5] = -0,000015259
D[6] = -0,000015259
D[7] = -0,000030518
D[8] = -0,000030518
D[9] = -0,000030518
D[10] = -0,000030518
D[11] = -0,000045776
D[12] = -0,000045776
D[13] = -0,000061035
D[14] = -0,000061035
D[15] = -0,000076294
D[16] = -0,000076294
D[17] = -0,000091553
D[18] = -0,000106812
D[19] = -0,000106812
D[20] = -0,000122070
D[21] = -0,000137329
D[22] = -0,000152588
D[23] = -0,000167847
D[24] = -0,000198364
D[25] = -0,000213623
D[26] = -0,000244141
D[27] = -0,000259399
D[28] = -0,000289917
D[29] = -0,000320435
D[30] = -0,000366211
D[31] = -0,000396729
D[32] = -0,000442505
D[33] = -0,000473022
D[34] = -0,000534058
D[35] = -0,000579834
D[36] = -0,000625610
D[37] = -0,000686646
D[38] = -0,000747681
D[39] = -0,000808716
D[40] = -0,000885010
D[41] = -0,000961304
D[42] = -0,001037598
D[43] = -0,001113892
D[44] = -0,001205444
D[45] = -0,001296997
D[46] = -0,001388550
D[47] = -0,001480103
D[48] = -0,001586914
D[49] = -0,001693726
D[50] = -0,001785278
D[51] = -0,001907349
D[52] = -0,002014160
D[53] = -0,002120972
D[54] = -0,002243042
D[55] = -0,002349854
D[56] = -0,002456665
D[57] = -0,002578735
D[58] = -0,002685547
D[59] = -0,002792358
D[60] = -0,002899170
D[61] = -0,002990723
D[62] = -0,003082275
D[63] = -0,003173828
D[64] = 0,003250122
D[65] = 0,003326416
D[66] = 0,003387451
D[67] = 0,003433228
D[68] = 0,003463745
D[69] = 0,003479004
D[70] = 0,003479004
D[71] = 0,003463745
D[72] = 0,003417969
D[73] = 0,003372192
D[74] = 0,003280640
D[75] = 0,003173828
D[76] = 0,003051758
D[77] = 0,002883911
D[78] = 0,002700806
D[79] = 0,002487183
D[80] = 0,002227783
D[81] = 0,001937866
D[82] = 0,001617432
D[83] = 0,001266479
D[84] = 0,000869751
D[85] = 0,000442505
D[86] = -0,000030518
D[87] = -0,000549316
D[88] = -0,001098633
D[89] = -0,001693726
D[90] = -0,002334595
D[91] = -0,003005981
D[92] = -0,003723145
D[93] = -0,004486084
D[94] = -0,005294800
D[95] = -0,006118774
D[96] = -0,007003784
D[97] = -0,007919312
D[98] = -0,008865356
D[99] = -0,009841919
D[100] = -0,010848999
D[101] = -0,011886597
D[102] = -0,012939453
D[103] = -0,014022827
D[104] = -0,315121460
D[105] = -0,016235352
D[106] = -0,017349243
D[107] = -0,018463135
D[108] = -0,319577026
D[109] = -0,020690918
D[110] = -0,021789551
D[111] = -0,022857666
D[112] = -0,323910522
D[113] = -0,024932861
D[114] = -0,025909424
D[115] = -0,026840210
D[116] = -0,32772522
D[117] = -0,028533936
D[118] = -0,029281616
D[119] = -0,029937744
D[120] = -0,330532837
D[121] = -0,031005859
D[122] = -0,031387329
D[123] = -0,031661987
D[124] = -0,331814575
D[125] = -0,031845093
D[126] = -0,031738281
D[127] = -0,031478882
D[128] = 0,331082153
D[129] = 0,030517578
D[130] = 0,029785156
D[131] = 0,028884888
D[132] = 0,327801514
D[133] = 0,026535034
D[134] = 0,025085449
D[135] = 0,023422241
D[136] = 0,321575928
D[137] = 0,019531250
D[138] = 0,017257690
D[139] = 0,014801025
D[140] = 0,312115479
D[141] = 0,009231567
D[142] = 0,006134033
D[143] = 0,002822876
D[144] = -0,000686646
D[145] = -0,004394531
D[146] = -0,008316040
D[147] = -0,012420654
D[148] = -0,016708374
D[149] = -0,021179199
D[150] = -0,025817871
D[151] = -0,030609131
D[152] = -0,035552979
D[153] = -0,040634155
D[154] = -0,045837402
D[155] = -0,051132202
D[156] = -0,056533813
D[157] = -0,061996460
D[158] = -0,067520142
D[159] = -0,073059082
D[160] = -0,078628540
D[161] = -0,084182739
D[162] = -0,089706421
D[163] = -0,095169067
D[164] = -0,100540161
D[165] = -0,105819702
D[166] = -0,110946655
D[167] = -0,115921021
D[168] = -0,120697021
D[169] = -0,125259399
D[170] = -0,129562378
D[171] = -0,133590698
D[172] = -0,137298584
D[173] = -0,140670776
D[174] = -0,143676758
D[175] = -0,146255493
D[176] = -0,148422241
D[177] = -0,150115967
D[178] = -0,151306152
D[179] = -0,151962280
D[180] = -0,152069092
D[181] = -0,151596069
D[182] = -0,150497437
D[183] = -0,148773193
D[184] = -0,146362305
D[185] = -0,143264771
D[186] = -0,139450073
D[187] = -0,134887695
D[188] = -0,129577637
D[189] = -0,123474121
D[190] = -0,116577148
D[191] = -0,108856201
D[192] = 0,100311279
D[193] = 0,090927124
D[194] = 0,080688477
D[195] = 0,069595337
D[196] = 0,357617187
D[197] = 0,044784546
D[198] = 0,031082153
D[199] = 0,016510010
D[200] = 0,301068115
D[201] = -0,015228271
D[202] = -0,032379150
D[203] = -0,050354004
D[204] = -0,369168091
D[205] = -0,088775635
D[206] = -0,109161377
D[207] = -0,130310059
D[208] = -0,152206421
D[209] = -0,174789429
D[210] = -0,198059082
D[211] = -0,221984863
D[212] = -0,246505737
D[213] = -0,271591187
D[214] = -0,297210693
D[215] = -0,323318481
D[216] = -0,349868774
D[217] = -0,376800537
D[218] = -0,404083252
D[219] = -0,431655884
D[220] = -0,459472656
D[221] = -0,487472534
D[222] = -0,515609741
D[223] = -0,543823242
D[224] = -0,572036743
D[225] = -0,600219727
D[226] = -0,628295898
D[227] = -0,656219482
D[228] = -0,683914185
D[229] = -0,711318970
D[230] = -0,738372803
D[231] = -0,765029907
D[232] = -0,791213989
D[233] = -0,816864014
D[234] = -0,841949463
D[235] = -0,866363525
D[236] = -0,890090942
D[237] = -0,913055420
D[238] = -0,935195923
D[239] = -0,956481934
D[240] = -0,976852417
D[241] = -0,996246338
D[242] = -1,014617920
D[243] = -1,031936646
D[244] = -1,048156738
D[245] = -1,063217163
D[246] = -1,077117920
D[247] = -1,089782715
D[248] = -1,101211548
D[249] = -1,111373901
D[250] = -1,120223999
D[251] = -1,127746582
D[252] = -1,133926392
D[253] = -1,138763428
D[254] = -1,142211914
D[255] = -1,144287109
D[256] = 1,144989014
D[257] = 1,144287109
D[258] = 1,142211914
D[259] = 1,138763428
D[260] = 1,133926392
D[261] = 1,127746582
D[262] = 1,120223999
D[263] = 1,111373901
D[264] = 1,101211548
D[265] = 1,089782715
D[266] = 1,077117920
D[267] = 1,063217163
D[268] = 1,048156738
D[269] = 1,031936646
D[270] = 1,014617920
D[271] = 0,996246338
D[272] = 0,976852417
D[273] = 0,956481934
D[274] = 0,935195923
D[275] = 0,913055420
D[276] = 0,890090942
D[277] = 0,866363525
D[278] = 0,841949463
D[279] = 0,816864014
D[280] = 0,791213989
D[281] = 0,765029907
D[282] = 0,738372803
D[283] = 0,711318970
D[284] = 0,683914185
D[285] = 0,656219482
D[286] = 0,628295898
D[287] = 0,600219727
D[288] = 0,572036743
D[289] = 0,543823242
D[290] = 0,515609741
D[291] = 0,487472534
D[292] = 0,459472656
D[293] = 0,431655884
D[294] = 0,404083252
D[295] = 0,376800537
D[296] = 0,349868774
D[297] = 0,323318481
D[298] = 0,297210693
D[299] = 0,271591187
D[300] = 0,246505737
D[301] = 0,221984863
D[302] = 0,198059082
D[303] = 0,174789429
D[304] = 0,152206421
D[305] = 0,130310059
D[306] = 0,109161377
D[307] = 0,088775635
D[308] = 0,069168091
D[309] = 0,050354004
D[310] = 0,032379150
D[311] = 0,015228271
D[312] = -0,001068115
D[313] = -0,016510010
D[314] = -0,031082153
D[315] = -0,044784546
D[316] = -0,057617187
D[317] = -0,069595337
D[318] = -0,080688477
D[319] = -0,090927124
D[320] = 0,100311279
D[321] = 0,108856201
D[322] = 0,116577148
D[323] = 0,123474121
D[324] = 0,129577637
D[325] = 0,134887695
D[326] = 0,139450073
D[327] = 0,143264771
D[328] = 0,146362305
D[329] = 0,148773193
D[330] = 0,150497437
D[331] = 0,151596069
D[332] = 0,152069092
D[333] = 0,151962280
D[334] = 0,151306152
D[335] = 0,150115967
D[336] = 0,148422241
D[337] = 0,146255493
D[338] = 0,143676758
D[339] = 0,140670776
D[340] = 0,137298584
D[341] = 0,133590698
D[342] = 0,129562378
D[343] = 0,125259399
D[344] = 0,120697021
D[345] = 0,115921021
D[346] = 0,110946655
D[347] = 0,105819702
D[348] = 0,100540161
D[349] = 0,095169067
D[350] = 0,089706421
D[351] = 0,084182739
D[352] = 0,078628540
D[353] = 0,073059082
D[354] = 0,067520142
D[355] = 0,061996460
D[356] = 0,056533813
D[357] = 0,051132202
D[358] = 0,045837402
D[359] = 0,040634155
D[360] = 0,035552979
D[361] = 0,030609131
D[362] = 0,025817871
D[363] = 0,021179199
D[364] = 0,016708374
D[365] = 0,012420654
D[366] = 0,008316040
D[367] = 0,004394531
D[368] = 0,000686646
D[369] = -0,002822876
D[370] = -0,006134033
D[371] = -0,009231567
D[372] = -0,012115479
D[373] = -0,014801025
D[374] = -0,017257690
D[375] = -0,019531250
D[376] = -0,021575928
D[377] = -0,023422241
D[378] = -0,025085449
D[379] = -0,026535034
D[380] = -0,027801514
D[381] = -0,028884888
D[382] = -0,029785156
D[383] = -0,030517578
D[384] = 0,031082153
D[385] = 0,031478882
D[386] = 0,031738281
D[387] = 0,031845093
D[388] = 0,031814575
D[389] = 0,031661987
D[390] = 0,031387329
D[391] = 0,031005859
D[392] = 0,030532837
D[393] = 0,029937744
D[394] = 0,029281616
D[395] = 0,028533936
D[396] = 0,027725220
D[397] = 0,026840210
D[398] = 0,025909424
D[399] = 0,024932861
D[400] = 0,023910522
D[401] = 0,022857666
D[402] = 0,021789551
D[403] = 0,020690918
D[404] = 0,019577026
D[405] = 0,018463135
D[406] = 0,017349243
D[407] = 0,016235352
D[408] = 0,015121460
D[409] = 0,014022827
D[410] = 0,012939453
D[411] = 0,011886597
D[412] = 0,010848999
D[413] = 0,009841919
D[414] = 0,008865356
D[415] = 0,007919312
D[416] = 0,007003784
D[417] = 0,006118774
D[418] = 0,005294800
D[419] = 0,004486084
D[420] = 0,003723145
D[421] = 0,003005981
D[422] = 0,002334595
D[423] = 0,001693726
D[424] = 0,001098633
D[425] = 0,000549316
D[426] = 0,000030518
D[427] = -0,000442505
D[428] = -0,000869751
D[429] = -0,001266479
D[430] = -0,001617432
D[431] = -0,001937866
D[432] = -0,002227783
D[433] = -0,002487183
D[434] = -0,002700806
D[435] = -0,002883911
D[436] = -0,003051758
D[437] = -0,003173828
D[438] = -0,003280640
D[439] = -0,003372192
D[440] = -0,003417969
D[441] = -0,003463745
D[442] = -0,003479004
D[443] = -0,003479004
D[444] = -0,003463745
D[445] = -0,003433228
D[446] = -0,003387451
D[447] = -0,003326416
D[448] = 0,003250122
D[449] = 0,003173828
D[450] = 0,003082275
D[451] = 0,002990723
D[452] = 0,002899170
D[453] = 0,002792358
D[454] = 0,002685547
D[455] = 0,002578735
D[456] = 0,002456665
D[457] = 0,002349854
D[458] = 0,002243042
D[459] = 0,002120972
D[460] = 0,002014160
D[461] = 0,001907349
D[462] = 0,001785278
D[463] = 0,001693726
D[464] = 0,001586914
D[465] = 0,001480103
D[466] = 0,001388550
D[467] = 0,001296997
D[468] = 0,001205444
D[469] = 0,001113892
D[470] = 0,001037598
D[471] = 0,000961304
D[472] = 0,000885010
D[473] = 0,000808716
D[474] = 0,000747681
D[475] = 0,000686646
D[476] = 0,000625610
D[477] = 0,000579834
D[478] = 0,000534058
D[479] = 0,000473022
D[480] = 0,000442505
D[481] = 0,000396729
D[482] = 0,000366211
D[483] = 0,000320435
D[484] = 0,000289917
D[485] = 0,000259399
D[486] = 0,000244141
D[487] = 0,000213623
D[488] = 0,000198364
D[489] = 0,000167847
D[490] = 0,000152588
D[491] = 0,000137329
D[492] = 0,000122070
D[493] = 0,000106812
D[494] = 0,000106812
D[495] = 0,000091553
D[496] = 0,000076294
D[497] = 0,000076294
D[498] = 0,000061035
D[499] = 0,000061035
D[500] = 0,000045776
D[501] = 0,000045776
D[502] = 0,000030518
D[503] = 0,000030518
D[504] = 0,000030518
D[505] = 0,000030518
D[506] = 0,000015259
D[507] = 0,000015259
D[508] = 0,000015259
D[509] = 0,000015259
D[510] = 0,000015259
D[511] = 0,000015259
Таблица Б.4
Классы квантования. Уровень II
Число шагов
C
D
Группировка
Отсчеты на кодовое слово
Биты на кодовое слово
3
1,33333333333
0,50000000000
Да
3
5
5
1,60000000000
0,50000000000
Да
3
7
7
1,14285714286
0,25000000000
Нет
1
3
9
1,77777777777
0,50000000000
Да
3
10
15
1,06666666666
0,12500000000
Нет
1
4
31
1,03225806452
0,06250000000
Нет
1
5
63
1,01587301587
0,03125000000
Нет
1
6
127
1,00787401575
0,01562500000
Нет
1
7
255
1,00392156863
0,00781250000
Нет
1
8
511
1,00195694716
0,00390625000
Нет
1
9
1023
1,00097751711
0,00195312500
Нет
1
10
2047
1,00048851979
0,00097656250
Нет
1
11
4095
1,00024420024
0,00048828125
Нет
1
12
8191
1,00012208522
0,00024414063
Нет
1
13
16383
1,00006103888
0,00012207031
Нет
1
14
32767
1,00003051851
0,00006103516
Нет
1
15
65535
1,00001525902
0,00003051758
Нет
1
16
Таблица Б.5
Число защищенных битов audio_data
Уровень
Защищенные поля
I
Биты 16... 31 заголовка.
Распределение битов
II
Биты 16... 31 заголовка.
Распределение битов.
Информация о масштабных коэффициентах
III
Биты 16... 31 заголовка.
Служебная информация:
- биты 0... 135 audio_data в single_channel режиме;
- биты 0... 255 audio_data в других режимах
Таблица Б.6
Предкоррекция. Уровень III
Scalefactor band(cb)
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Pretab[cb]
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
2
2
3
3
3
2
Таблицы Б.7
Кодовые таблицы Хаффмана. Уровень III
Кодовая таблица Хаффмана для четверок (А)
vwxy
hlen
hcod
0000
1
1
0001
4
0101
0010
4
0100
0011
5
00101
0100
4
0110
0101
6
000101
0110
5
00100
0111
6
000100
1000
4
0111
1001
5
00011
1010
5
00110
1011
6
000000
1100
5
00111
1101
6
000010
1110
6
000011
1111
6
000001
Кодовая таблица Хаффмана для четверок (Б)
vwxy
hlen
hcod
vwxy
hlen
hcod
0000
4
1111
1000
4
0111
0001
4
1110
1001
4
0110
0010
4
1101
1010
4
0101
0011
4
1100
1011
4
0100
0100
4
1011
1100
4
0011
0101
4
1010
1101
4
0010
0110
4
1001
1110
4
0001
0111
4
1000
1111
4
0000
Таблица 0 кода Хаффмана
linbits=0
x
y
hlen
hcod
0
0
0
Таблица 1 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
1
1
1
0
2
01
0
1
3
001
1
1
3
000
Таблица 2 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
1
1
1
2
5
00001
0
0
3
010
2
0
5
00011
0
2
6
000001
2
1
5
00010
1
0
3
011
2
2
6
000000
1
1
3
001
Таблица 3 кода Хаффмана
linbits=0
x
y
hlen
hcod
0
0
2
11
0
1
2
10
0
2
6
000001
1
0
3
001
1
1
2
01
1
2
5
00001
2
0
5
00011
2
1
5
00010
2
2
6
000000
Таблица 4 кода Хаффмана
Не используется.
Таблица 5 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
1
1
2
0
6
000111
0
1
3
010
2
1
6
000101
0
2
6
000110
2
2
7
0000111
0
3
7
0000101
2
3
8
00000001
1
0
3
011
3
0
7
0000110
1
1
3
001
3
1
6
000001
1
2
6
000100
3
2
7
0000001
1
3
7
0000100
3
3
8
00000000
Таблица 6 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
3
111
2
0
4
0101
0
1
3
011
2
1
4
0100
0
2
5
00101
2
2
5
00100
0
3
7
0000001
2
3
6
000001
1
0
3
110
3
0
6
000011
1
1
2
10
3
1
5
00011
1
2
4
0011
3
2
6
000010
1
3
5
00010
3
3
7
0000000
Таблица 7 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
1
1
3
0
7
0001100
0
1
3
010
3
1
7
0001011
0
2
6
001010
3
2
8
00010010
0
3
8
00010011
3
3
9
000001111
0
4
8
00010000
3
4
9
000001011
0
5
9
000001010
3
5
9
000000010
1
0
3
011
4
0
7
0000111
1
1
4
0011
4
1
7
0000110
1
2
6
000111
4
2
8
00001001
1
3
7
0001010
4
3
9
000001110
1
4
7
0000101
4
4
9
000000011
1
5
8
00000011
4
5
10
0000000001
2
0
6
001011
5
0
8
00000110
2
1
5
00100
5
1
8
00000100
2
2
7
0001101
5
2
9
000000101
2
3
8
00010001
5
3
10
0000000011
2
4
8
00001000
5
4
10
0000000010
2
5
9
000000100
5
5
10
0000000000
Таблица 8 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
2
11
0
2
6
000110
0
1
3
100
0
3
8
00010010
Окончание таблицы 8
x
y
hlen
hcod
x
y
hlen
hcod
0
4
8
00001100
3
2
8
00001111
0
5
9
000000101
3
3
9
000001101
1
0
3
101
3
4
9
000001010
1
1
2
01
3
5
10
0000000100
1
2
4
0010
4
0
8
00001101
1
3
8
00010000
4
1
7
0000101
1
4
8
00001001
4
2
8
00001000
1
5
8
00000011
4
3
9
000001011
2
0
6
000111
4
4
10
0000000101
2
1
4
0011
4
5
10
0000000001
2
2
6
000101
5
0
9
000001100
2
3
8
00001110
5
1
8
00000100
2
4
8
00000111
5
2
9
000000100
2
5
9
000000011
5
3
9
000000001
3
0
8
00010011
5
4
11
00000000001
3
1
8
00010001
5
5
11
00000000000
Таблица 9 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
3
111
3
0
6
001111
0
1
3
101
3
1
5
00110
0
2
5
01001
3
2
6
001001
0
3
6
001110
3
3
7
0001010
0
4
8
00001111
3
4
7
0000101
0
5
9
000000111
3
5
8
00000001
1
0
3
110
4
0
7
0001011
1
1
3
100
4
1
6
000111
1
2
4
0101
4
2
7
0001001
1
3
5
00101
4
3
7
0000110
1
4
6
000110
4
4
8
00000100
1
5
8
00000111
4
5
9
000000001
2
0
4
0111
5
0
8
00001110
2
1
4
0110
5
1
7
0000100
2
2
5
01000
5
2
8
00000110
2
3
6
001000
5
3
8
00000010
2
4
7
0001000
5
4
9
000000110
2
5
8
00000101
5
5
9
000000000
Таблица 10 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
x
y
hlen
hcod
0
0
1
1
2
6
9
000010011
5
4
11
00000010101
0
1
3
010
2
7
9
000000110
5
5
11
00000010100
0
2
6
001010
3
0
7
0001110
5
6
10
0000000101
0
3
8
00010111
3
1
7
0001101
5
7
11
00000000011
0
4
9
000100011
3
2
8
00010110
6
0
8
00001110
0
5
9
000011110
3
3
9
000100010
6
1
8
00001101
0
6
9
000001100
3
4
10
0000101110
6
2
9
000001010
0
7
10
0000010001
3
5
10
0000010111
6
3
10
0000001011
1
0
3
011
3
6
9
000010010
6
4
10
0000010000
1
1
4
0011
3
7
10
0000000111
6
5
10
0000000110
1
2
6
001000
4
0
8
00010100
6
6
11
00000000101
1
3
7
0001100
4
1
8
00010011
6
7
11
00000000001
1
4
8
00010010
4
2
9
000100001
7
0
9
000001001
1
5
9
000010101
4
3
10
0000101111
7
1
8
00001000
1
6
8
00001100
4
4
10
0000011011
7
2
9
000000111
1
7
8
00000111
4
5
10
0000010110
7
3
10
0000001000
2
0
6
001011
4
6
10
0000001001
7
4
10
0000000100
2
1
6
001001
4
7
10
0000000011
7
5
11
00000000100
2
2
7
0001111
5
0
9
000011111
7
6
11
00000000010
2
3
8
00010101
5
1
9
000010110
7
7
11
00000000000
2
4
9
000100000
5
2
10
0000101001
2
5
10
0000101000
5
3
10
0000011010
Таблица 11 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
2
11
1
1
3
011
0
1
3
100
1
2
4
0100
0
2
5
01010
1
3
6
001010
0
3
7
0011000
1
4
8
00100000
0
4
8
00100010
1
5
8
00010001
0
5
9
000100001
1
6
7
0001011
0
6
8
00010101
1
7
8
00001010
0
7
9
000001111
2
0
5
01011
1
0
3
101
2
1
5
00111
Окончание таблицы 11
x
y
hlen
hcod
x
y
hlen
hcod
2
2
6
001101
5
1
8
00011010
2
3
7
0010010
5
2
9
000100000
2
4
8
00011110
5
3
10
0000010011
2
5
9
000011111
5
4
10
0000010001
2
6
8
00010100
5
5
11
00000001111
2
7
8
00000101
5
6
10
0000001000
3
0
7
0011001
5
7
11
00000001110
3
1
6
001011
6
0
8
00001110
3
2
7
001:0011
6
1
7
0001100
3
3
9
000111011
6
2
7
0001001
3
4
8
00011011
6
3
8
00001101
3
5
10
0000010010
6
4
9
000001110
3
6
8
00001100
6
5
10
0000001001
3
7
9
000000101
6
6
10
0000000100
4
0
8
00100011
6
7
10
0000000001
4
1
8
00100001
7
0
8
00001011
4
2
8
00011111
7
1
7
0000100
4
3
9
000111010
7
2
8
00000110
4
4
9
000011110
7
3
9
000000110
4
5
10
0000010000
7
4
10
0000000110
4
6
9
000000111
7
5
10
0000000011
4
7
10
0000000101
7
6
10
0000000010
5
0
8
00011100
7
7
10
0000000000
Таблица 12 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
4
1001
1
0
3
111
0
1
3
110
1
1
3
101
0
2
5
10000
1
2
4
0110
0
3
7
0100001
1
3
5
01001
0
4
8
00101001
1
4
7
0010111
0
5
9
000100111
1
5
7
0010000
0
6
9
000100110
1
6
8
00011010
0
7
9
000011010
1
7
8
00001011
Окончание таблицы 12
x
y
hlen
hcod
x
y
hlen
hcod
2
0
5
10001
5
0
8
00101000
2
1
4
0111
5
1
7
0010001
2
2
5
01011
5
2
8
00011111
2
3
6
001110
5
3
8
00011101
2
4
7
0010101
5
4
8
00010001
2
5
8
00011110
5
5
9
000001101
2
6
7
0001010
5
6
8
00000100
2
7
8
00000111
5
7
9
000000010
3
0
6
010001
6
0
8
00011011
3
1
5
01010
6
1
7
0001100
3
2
6
001111
6
2
7
0001011
3
3
6
001100
6
3
8
00001111
3
4
7
0010010
6
4
8
00001010
3
5
8
00011100
6
5
9
000000111
3
6
8
00001110
6
6
9
000000100
3
7
8
00000101
6
7
10
0000000001
4
0
7
0100000
7
0
9
000011011
4
1
6
001101
7
1
8
00001100
4
2
7
0010110
7
2
8
00001000
4
3
7
0010011
7
3
9
000001100
4
4
8
00010010
7
4
9
000000110
4
5
8
00010000
7
5
9
000000011
4
6
8
00001001
7
6
9
000000001
4
7
9
000000101
7
7
10
0000000000
Таблица 13 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
1
1
0
8
9
000101010
0
1
4
0101
0
9
10
0000110100
0
2
6
001110
0
10
11
00001000100
0
3
7
0010101
0
11
11
00000110100
0
4
8
00100010
0
12
12
000001000011
0
5
9
000110011
0
13
12
000000101100
0
6
9
000101110
0
14
13
0000000101011
0
7
10
0001000111
0
15
13
0000000010011
Продолжение таблицы 13
x
y
hlen
hcod
x
y
hlen
hcod
1
0
3
011
3
3
9
000111101
1
1
4
0100
3
4
9
000111000
1
2
6
001100
3
5
10
0001001111
1
3
7
0010011
3
6
10
0001001001
1
4
8
00011111
3
7
10
0001000000
1
5
8
00011010
3
8
10
0000101011
1
6
9
000101100
3
9
11
00001001100
1
7
9
000100001
3
10
11
00000111000
1
8
9
000011111
3
11
11
00000100101
1
9
9
000011000
3
12
11
00000011010
1
10
10
0000100000
3
13
12
000000011111
1
11
10
0000011000
3
14
13
0000000011001
1
12
11
00000011111
3
15
13
0000000001110
1
13
12
000000100011
4
0
8
00100011
1
14
12
000000010110
4
1
7
0010000
1
15
12
000000001110
4
2
9
000111100
2
0
6
001111
4
3
9
000111001
2
1
6
001101
4
4
10
0001100001
2
2
7
0010111
4
5
10
0001001011
2
3
8
00100100
4
7
11
00001011011
2
4
9
000111011
4
8
10
0000110110
2
5
9
000110001
4
9
11
00001001001
2
6
10
0001001101
4
10
11
00000110111
2
7
10
0001000001
4
11
12
000000101001
2
8
9
000011101
4
12
12
000000110000
2
9
10
0000101000
4
13
13
0000000110101
2
10
10
0000011110
4
14
13
0000000010111
2
11
11
00000101000
4
15
14
00000000011000
2
12
11
00000011011
5
0
9
000111010
2
13
12
000000100001
5
1
8
00011011
2
14
13
0000000101010
5
2
9
000110010
2
15
13
0000000010000
5
3
10
0001100000
3
0
7
0010110
5
4
10
0001001100
3
1
7
0010100
5
5
10
0001000110
3
2
8
00100101
5
6
11
00001011101
Продолжение таблицы 13
x
y
hlen
hcod
x
y
hlen
hcod
5
7
11
00001010100
7
10
13
0000001001101
5
8
11
00001001101
7
11
13
0000001000001
5
9
11
00000111010
7
12
13
0000000110011
5
10
12
000001001111
7
13
14
00000000101100
5
11
11
00000011101
7
14
16
0000000000101011
5
12
13
0000001001010
7
15
16
0000000000101010
5
13
13
0000000110001
8
0
9
000101011
5
14
14
00000000101001
8
5
11
00001001110
5
15
14
00000000010001
8
6
11
00001001000
6
0
9
000101111
8
7
12
000001010111
6
1
9
000101101
8
8
12
000001001110
6
2
10
0001001110
8
9
12
000000111101
6
3
10
0001001010
8
10
12
000000101110
6
4
11
00001110011
8
11
13
0000000110110
6
5
11
00001011110
8
12
13
0000000100101
6
6
11
00001011010
8
13
14
00000000011110
6
7
11
00001001111
8
14
15
000000000010100
6
8
11
00001000101
8
15
15
000000000010000
6
9
12
000001010011
9
0
10
0000110101
6
10
12
000001000111
9
1
9
000011001
6
11
12
000000110010
9
2
10
0000101001
6
12
13
0000000111011
9
3
10
0000100101
6
13
13
0000000100110
9
4
11
00000101100
6
14
14
00000000100100
8
1
8
00010100
6
15
14
00000000001111
8
2
9
000011110
7
0
10
0001001000
8
3
10
0000101100
7
1
9
000100010
8
4
10
0000110111
7
2
10
3000111000
9
5
11
00000111011
7
3
11
00001011111
9
6
11
00000110110
7
4
11
00001011100
9
7
13
0000001010001
7
5
11
00001010101
9
8
12
000001000010
7
6
12
000001011011
9
9
13
0000001001100
7
7
12
000001011010
9
10
13
0000000111001
7
8
12
000001010110
9
11
14
00000000110110
7
9
12
000001001001
9
12
14
00000000100101
Продолжение таблицы 13
x
y
hlen
hcod
x
y
hlen
hcod
9
13
14
00000000010010
12
0
11
00000100010
9
14
16
0000000000100111
12
1
11
00000100000
9
15
15
000000000001011
12
2
11
00000011100
10
0
10
0000100011
12
3
12
000000100111
10
1
10
0000100001
12
4
12
000000110001
10
2
10
0000011111
12
5
13
0000001001011
10
3
11
00000111001
12
6
12
000000011110
10
4
11
00000101010
12
7
13
0000000110100
10
5
12
000001010010
12
8
14
00000000110000
10
6
12
000001001000
12
9
14
00000000101000
10
7
13
0000001010000
12
10
15
000000000110100
10
8
12
000000101111
12
11
15
000000000011100
10
9
13
0000000111010
12
12
15
000000000010010
10
10
14
00000000110111
12
13
16
0000000000010001
10
11
13
0000000010101
12
14
16
0000000000001001
10
12
14
00000000010110
12
15
16
0000000000000101
10
13
15
000000000011010
13
0
12
000000101101
10
14
16
0000000000100110
13
1
11
00000010101
10
15
17
00000000000010110
13
2
12
000000100010
11
0
11
00000110101
13
3
13
0000001000000
11
1
10
0000011001
13
4
13
0000000111000
11
2
10
0000010111
13
5
13
0000000110010
11
3
11
00000100110
13
6
14
00000000110001
11
4
12
000001000110
13
7
14
00000000101101
11
5
12
000000111100
13
8
14
00000000011111
11
6
12
000000110011
13
9
14
00000000010011
11
7
12
000000100100
13
10
14
00000000001100
11
8
13
0000000110111
13
11
15
000000000001111
11
9
13
0000000011010
13
12
16
0000000000001010
11
10
13
0000000100010
13
13
15
000000000000111
11
11
14
00000000010111
13
14
16
0000000000000110
11
12
15
000000000011011
13
15
16
0000000000000011
11
13
15
000000000001110
14
1
12
000000010111
11
14
15
000000000001001
14
2
12
000000010100
11
15
16
0000000000000111
14
3
13
0000000100111
Окончание таблицы 13
x
y
hlen
hcod
x
y
hlen
hcod
14
4
13
0000000100100
15
2
13
0000000010001
14
5
13
0000000100011
15
3
14
00000000011011
14
6
15
000000000110101
15
4
14
00000000011001
14
7
14
00000000010101
15
5
14
00000000010100
14
8
14
00000000010000
15
6
15
000000000011101
14
9
17
00000000000010111
15
7
14
00000000001011
14
10
15
000000000001101
15
8
15
000000000010001
14
11
15
000000000001010
15
9
15
000000000001100
14
12
15
000000000000110
15
10
16
0000000000010000
14
13
17
00000000000000001
15
11
16
0000000000001000
14
14
16
0000000000000100
15
12
19
0000000000000000001
14
15
16
0000000000000010
15
13
18
000000000000000001
15
0
12
000000010000
15
14
19
0000000000000000000
15
1
12
000000001111
15
15
16
0000000000000001
Таблица 14 кода Хаффмана
Не используется.
Таблица 15 кода Хаффмана
linbits=0
x
y
hlen
hcod
x
y
hlen
hcod
0
0
3
111
1
1
3
101
0
1
4
1100
1
2
5
10000
0
2
5
10010
1
3
6
011011
0
3
7
0110101
1
4
7
0101110
0
4
7
0101111
1
5
7
0100100
0
5
8
01001100
1
6
8
00111101
0
6
9
001111100
1
7
8
00110011
0
7
9
001101100
1
8
8
00101010
0
8
9
001011001
1
9
9
001000110
0
9
10
0001111011
1
10
9
000110100
0
10
10
0001101100
1
11
10
0001010011
0
11
11
00001110111
1
12
10
0001000001
0
12
11
00001101011
1
13
10
0000101001
0
13
11
00001010001
1
14
11
00000111011
0
14
12
000001111010
1
15
11
00000100100
0
15
13
0000000111111
2
0
5
10011
1
0
4
1101
Продолжение таблицы 15
x
y
hlen
hcod
x
y
hlen
hcod
2
1
5
10001
4
5
8
00111001
2
2
5
01111
4
6
9
001011111
2
3
6
011000
4
7
9
001001111
2
4
7
0101001
4
8
9
001001000
2
5
7
0100010
4
9
9
000111001
2
6
8
00111011
4
10
10
0001011001
2
7
8
00110000
4
11
10
0001000101
2
8
8
00101000
4
12
10
0000110001
2
9
9
001000000
4
13
11
00001000010
2
10
9
000110010
4
14
11
00000101110
2
11
10
0001001110
4
15
11
00000011011
2
12
10
0000111110
5
0
8
01001101
2
13
11
00001010000
5
1
7
0100101
2
14
11
00000111000
5
2
7
0100011
2
15
11
00000100001
5
3
8
01000010
3
0
6
011101
5
4
8
00111010
3
1
6
011100
5
5
8
00110100
3
2
6
011001
5
6
9
001011011
3
3
7
0101011
5
7
9
001001010
3
4
7
0100111
5
8
9
000111110
3
5
8
00111111
5
9
9
000110000
3
6
8
00110111
5
10
10
0001001111
3
7
9
001011101
5
11
10
0000111111
3
8
9
001001100
5
12
11
00001011010
3
9
9
000111011
5
13
11
00000111110
3
10
10
0001011101
5
14
11
00000101000
3
11
10
0001001000
5
15
12
000000100110
3
12
10
0000110110
6
0
9
001111101
3
13
11
00001001011
6
1
7
0100000
3
14
11
00000110010
6
2
8
00111100
3
15
11
00000011101
6
3
8
00111000
4
0
7
0110100
6
4
8
00110010
4
1
6
010110
6
5
9
001011100
4
2
7
0101010
6
6
9
001001110
4
3
7
0101000
6
7
9
001000001
4
4
8
01000011
6
8
9
000110111
Продолжение таблицы 15
x
y
hlen
hcod
x
y
hlen
hcod
6
9
10
0001010111
8
13
12
000000110101
6
10
10
0001000111
8
14
12
000000100100
6
11
10
0000110011
8
15
12
000000010100
6
12
11
00001001001
9
0
9
001000111
6
13
11
00000110011
9
1
8
00100010
6
14
12
000001000110
9
2
9
001000011
6
15
12
000000011110
9
4
9
000111010
7
0
9
001101101
9
5
9
000110001
7
1
8
00110101
9
6
10
0001011000
7
2
8
00110001
9
7
10
0001001100
7
3
9
001011110
9
8
10
0001000011
7
4
9
001011000
9
9
11
00001101010
7
5
9
001001011
9
10
11
00001000111
7
6
9
001000010
9
11
11
00000110110
7
7
10
0001111010
9
12
11
00000100110
7
8
10
0001011011
9
13
12
000000100111
7
9
10
0001001001
9
14
12
000000010111
7
10
10
0000111000
9
15
12
000000001111
7
11
10
0000101010
10
0
10
0001101101
7
12
11
00001000000
10
1
9
000110101
7
13
11
00000101100
10
2
9
000110011
7
14
11
00000010101
10
3
9
000101111
7
15
12
000000011001
10
4
10
0001011010
8
0
9
001011010
10
5
10
0001010010
8
1
8
00101011
10
6
10
0000111010
8
2
8
00101001
10
7
10
0000111001
8
3
9
001001101
10
8
10
0000110000
8
4
9
001001001
10
9
11
00001001000
8
5
9
000111111
10
10
11
00000111001
8
6
9
000111000
10
11
11
00000101001
8
7
10
0001011100
10
12
11
00000010111
8
8
10
0001001101
10
13
12
000000011011
8
9
10
0001000010
10
14
13
0000000111110
8
10
10
0000101111
10
15
12
000000001001
8
11
11
00001000011
11
0
10
0001010110
8
12
11
00000110000
11
1
9
000101010
Продолжение таблицы 15
x
y
hlen
hcod
x
y
hlen
hcod
11
2
9
000101000
13
6
11
00000110100
11
3
9
000100101
13
7
11
00000101101
11
4
10
0001000110
13
8
11
00000011111
11
5
10
0001000000
13
9
12
000000110100
11
6
10
0000110100
13
10
12
000000011100
11
7
10
0000101011
13
11
12
000000010011
11
8
11
00001000110
13
12
12
000000001110
11
9
11
00000110111
13
13
12
000000001000
11
10
11
00000101010
13
14
13
0000000001001
11
11
11
00000011001
13
15
13
0000000000011
11
12
12
000000011101
14
0
12
000001111011
11
13
12
000000010010
14
1
11
00000111100
11
14
12
000000001011
14
2
11
00000111010
11
15
13
0000000001011
14
3
11
00000110101
12
0
11
00001110110
14
4
11
00000101111
12
1
10
0001000100
14
5
11
00000101011
12
2
9
000011110
14
6
11
00000100000
12
3
10
0000110111
14
7
11
00000010110
12
4
10
0000110010
14
8
12
000000100101
12
5
10
0000101110
14
9
12
000000011000
12
6
11
00001001010
14
10
12
000000010001
12
7
11
00001000001
14
11
12
000000001100
12
8
11
00000110001
14
12
13
0000000001111
12
9
11
00000100111
14
13
13
0000000001010
12
10
11
00000011000
14
14
12
000000000010
12
11
11
00000010000
14
15
13
0000000000001
12
12
12
000000010110
15
0
12
000001000111
12
13
12
000000001101
15
1
11
00000100101
12
14
13
0000000001110
15
2
11
00000100010
12
15
13
0000000000111
15
3
11
00000011110
13
0
11
00001011011
15
4
11
00000011100
13
1
10
0000101100
15
5
11
00000010100
13
2
10
0000100111
15
6
11
00000010001
13
3
10
0000100110
15
7
12
000000011010
13
4
10
0000100010
15
8
12
000000010101
13
5
11
00000111111
15
9
12
000000010000
Окончание таблицы 15
x
y
hlen
hcod
x
y
hlen
hcod
15
10
12
000000001010
15
13
13
0000000000110
15
11
12
000000000110
15
14
13
0000000000010
15
12
13
0000000001000
15
15
13
0000000000000
Таблица 16 кода Хаффмана
linbits=1
x
y
hlen
hcod
x
y
hlen
hcod
0
0
1
1
1
14
12
000011001111
0
1
4
0101
1
15
8
00001001
0
2
6
001110
2
0
6
001111
0
3
8
00101100
2
1
6
001101
0
4
9
001001010
2
2
7
0010111
0
5
9
000111111
2
3
8
00100110
0
6
10
0001101110
2
4
9
001000011
0
7
10
0001011101
2
5
9
000111010
0
8
11
00010101100
2
6
10
0001100111
0
9
11
00010010101
2
7
10
0001011010
0
10
11
00010001010
2
8
11
00010100001
0
11
12
000011110010
2
9
10
0001001000
0
13
12
000011000011
2
10
11
00001111111
0
14
13
0000101111000
2
11
11
00001110101
0
15
9
000010001
2
12
11
00001101110
1
0
3
011
2
13
12
000011010001
1
1
4
0100
2
14
12
000011001110
1
2
6
001100
2
15
9
000010000
1
3
7
0010100
3
0
8
00101101
1
4
8
00100011
3
1
7
0010101
1
5
9
000111110
3
2
8
00100111
1
6
9
000110101
3
3
9
001000101
1
7
9
000101111
3
4
9
001000000
1
8
10
0001010011
3
5
10
0001110010
1
9
10
0001001011
3
6
10
0001100011
1
10
10
0001000100
3
7
10
0001010111
1
11
11
00001110111
3
8
11
00010011110
1
12
12
000011001001
3
9
11
00010001100
1
13
11
00001101011
Продолжение таблицы 16
x
y
hlen
hcod
x
y
hlen
hcod
3
10
12
000011111100
5
14
14
00000110111101
3
11
12
000011010100
5
15
10
0000010000
3
12
12
000011000111
6
0
10
0001101111
3
13
13
0000110000011
6
1
9
000110110
3
14
13
0000101101101
6
2
9
000110100
3
15
10
0000011010
6
3
10
0001100100
4
0
9
001001011
6
4
11
00010111000
4
1
8
00100100
6
5
11
00010110010
4
2
9
001000100
6
6
11
00010100000
4
3
9
001000001
6
7
11
00010000101
4
4
10
0001110011
6
8
12
000100000001
4
5
10
0001100101
6
9
12
000011110100
4
6
11
00010110011
6
10
12
000011100100
4
7
11
00010100100
6
11
12
000011011001
4
8
11
00010011011
6
12
13
0000110000001
4
9
12
000100001000
6
13
13
0000101101110
4
10
12
000011110110
6
14
14
00001011001011
4
11
12
000011100010
6
15
10
0000001010
4
12
13
0000110001011
7
0
10
0001100010
4
13
13
0000101111110
7
1
9
000110000
4
14
13
0000101101010
7
2
10
0001011011
4
15
9
000001001
7
3
10
0001011000
5
0
9
001000010
7
4
11
00010100101
5
1
8
00011110
7
5
11
00010011101
5
2
9
000111011
7
6
11
00010010100
5
3
9
000111000
7
7
12
000100000101
5
4
10
0001100110
7
8
12
000011111000
5
5
11
00010111001
7
9
13
0000110010111
5
6
11
00010101101
7
10
13
0000110001101
5
7
12
000100001001
7
11
13
0000101110100
5
8
11
00010001110
7
12
13
0000101111100
5
9
12
000011111101
7
13
15
000001101111001
5
10
12
000011101000
7
14
15
000001101110100
5
11
13
0000110010000
7
15
10
0000001000
5
12
13
0000110000100
8
0
10
0001010101
5
13
13
0000101111010
8
1
10
0001010100
Продолжение таблицы 16
x
y
hlen
hcod
x
y
hlen
hcod
8
2
10
0001010001
10
6
12
000011100101
8
3
11
00010011111
10
7
12
000011011011
8
4
11
00010011100
10
8
13
0000110001001
8
5
11
00010001111
10
9
14
00001011100111
8
6
12
000100000100
10
10
14
00001011100001
8
7
12
000011111001
10
11
14
00001011010000
8
8
13
0000110101011
10
12
15
000001101110101
8
9
13
0000110010001
10
13
15
000001101110010
8
10
13
0000110001000
10
14
14
00000110110111
8
11
13
0000101111111
10
15
10
0000000100
8
12
14
00001011010111
11
0
12
000011110011
8
13
14
00001011001001
11
1
11
00001111000
8
14
14
00001011000100
11
2
11
00001110110
8
15
10
0000000111
11
2
11
00001110110
9
0
11
00010011010
11
3
11
00001110011
9
1
10
0001001100
11
4
12
000011100011
9
2
10
0001001001
11
5
12
000011011111
9
3
11
00010001101
11
6
13
0000110001100
9
4
11
00010000011
11
7
14
00001011101010
9
5
12
000100000000
11
8
14
00001011100110
9
6
12
000011110101
11
9
14
00001011100000
9
7
13
0000110101010
11
10
14
00001011010001
9
8
13
0000110010110
11
11
14
00001011001000
9
9
13
0000110001010
11
12
14
00001011000010
9
10
13
0000110000000
11
13
13
0000011011111
9
11
14
00001011011111
11
14
14
00000110110100
9
12
13
0000101100111
11
15
11
00000000110
9
13
14
00001011000110
12
0
12
000011001010
9
14
13
0000101100000
12
1
12
000011100000
9
15
11
00000001011
12
2
12
000011011110
10
0
11
00010001011
12
3
12
000011011010
10
1
11
00010000001
12
4
12
000011011000
10
2
10
0001000011
12
5
13
0000110000101
10
3
11
00001111101
12
6
13
0000110000010
10
4
12
000011110111
12
7
13
0000101111101
10
5
12
000011101001
12
8
13
0000101101100
Окончание таблицы 16
x
y
hlen
hcod
x
y
hlen
hcod
12
9
15
000001101111000
14
5
14
00001011010010
12
10
14
00000110111011
14
6
13
0000101100110
12
11
14
00001011000011
14
7
14
00001011000111
12
12
14
00000110111000
14
8
14
00001011000101
12
13
14
00000110110101
14
9
15
000001101100010
12
14
16
0000011011000000
14
10
16
0000011011000110
12
15
11
00000000100
14
11
15
000001101100111
13
0
14
00001011101011
14
12
17
00000110110000010
13
1
12
000011010011
14
13
15
000001101100110
13
2
12
000011010010
14
14
14
00000110110010
13
3
12
000011010000
14
15
11
00000000000
13
4
13
0000101110010
15
0
9
000001100
13
5
13
0000101111011
15
1
8
00001010
13
6
14
00001011011110
15
2
8
00000111
13
7
14
00001011010011
15
3
9
000001011
13
8
14
00001011001010
15
4
9
000001010
13
9
16
0000011011000111
15
5
10
0003010001
13
10
15
000001101110011
15
6
10
0003001011
13
11
15
000001101101101
15
7
10
0003001001
13
12
15
000001101101100
15
8
11
00000001101
13
13
17
00000110110000011
15
9
11
00000001100
13
14
15
000001101100001
15
10
11
00000001010
13
15
11
00000000010
15
11
11
00000000111
14
0
13
0000101111001
15
12
11
00000000101
14
1
13
0000101110001
15
13
11
00000000011
14
2
11
00001100110
15
14
11
00000000001
14
3
12
000010111011
15
15
8
00000011
14
4
14
00001011010110
Таблица 17 кода Хаффмана см. таблицу 16, но linbits=2
Таблица 18 кода Хаффмана см. таблицу 16, но linbits=3
Таблица 19 кода Хаффмана см. таблицу 16, но linbits=4
Таблица 20 кода Хаффмана см. таблицу 16, но linbits=6
Таблица 21 кода Хаффмана см. таблицу 16, но linbits=8
Таблица 22 кода Хаффмана см. таблицу 16, но linbits=10
Таблица 23 кода Хаффмана см. таблицу 16, но linbits=13
Таблица 24 кода Хаффмана
linbits=4
x
y
hlen
hcod
x
y
hlen
hcod
0
0
4
1111
2
2
6
101001
0
1
4
1101
2
3
7
1001010
0
2
6
101110
2
4
7
1000100
0
3
7
1010000
2
5
8
10000000
0
4
8
10010010
2
6
8
01111000
0
5
9
100000110
2
7
9
011011101
0
6
9
011111000
2
8
9
011001111
0
7
10
0110110010
2
9
9
011000010
0
8
10
0110101010
2
10
9
010110110
0
9
11
01010011101
2
11
10
0101010100
0
10
11
01010001101
2
12
10
0100111011
0
11
11
01010001001
2
13
10
0100100111
0
12
11
01001101101
2
14
11
01000011101
0
13
11
01000000101
2
15
7
0010010
0
14
12
010000001000
3
0
7
1010001
0
15
9
001011000
3
1
6
100111
1
0
4
1110
3
2
7
1001011
1
1
4
1100
3
3
7
1000110
1
2
5
10101
3
4
8
10000110
1
3
6
100110
3
5
8
01111101
1
4
7
1000111
3
6
8
01110100
1
5
8
10000010
3
7
9
011011100
1
6
8
01111010
3
8
9
011001100
1
7
9
011011000
3
9
9
010111110
1
8
9
011010001
3
10
9
010110010
1
9
9
011000110
3
11
10
0101000101
1
10
10
0101000111
3
12
10
0100110111
1
11
10
0101011001
3
13
10
0100100101
1
12
10
0100111111
3
14
10
0100001111
1
13
10
0100101001
3
15
7
0010000
1
14
10
0100010111
4
0
8
10010011
1
15
8
00101010
4
1
7
1001000
2
0
6
101111
4
2
7
1000101
2
1
5
10110
4
3
8
10000111
Продолжение таблицы 24
x
y
hlen
hcod
x
y
hlen
hcod
4
4
8
01111111
6
8
9
010111001
4
5
8
01110110
6
9
10
0101011011
4
6
8
01110000
6
10
10
0101001010
4
7
9
011010010
6
11
10
0100110100
4
8
9
011001000
6
12
10
0100100011
4
9
9
010111100
6
13
10
0100010000
4
10
10
0101100000
6
14
11
01000001000
4
11
10
0101000011
6
15
7
0001010
4
12
10
0100110010
7
0
10
0110110011
4
13
10
0100011101
7
1
8
01110011
4
14
11
01000011100
7
2
8
01101111
4
15
7
0001110
7
3
8
01101101
5
0
9
100000111
7
4
9
011010011
5
1
7
1000010
7
5
9
011001011
5
2
8
10000001
7
6
9
011000100
5
3
8
01111110
7
7
9
010111011
5
4
8
01110111
7
8
10
0101100001
5
5
8
01110010
7
9
10
0101001100
5
6
9
011010110
7
10
10
0100111001
5
7
9
011001010
7
11
10
0100101010
5
8
9
011000000
7
12
10
0100011011
5
9
9
010110100
7
13
11
01000010011
5
10
10
0101010101
7
14
11
00101111101
5
11
10
0100111101
7
15
8
00010001
5
12
10
0100101101
8
0
10
0110101011
5
13
10
0100011001
8
1
9
011010100
5
14
10
0100000110
8
2
9
011010000
5
15
7
0001100
8
3
9
011001101
6
0
9
011111001
8
4
9
011001001
6
1
8
01111011
8
5
9
011000001
6
2
8
01111001
8
6
9
010111010
6
3
8
01110101
8
7
9
010110001
6
4
8
01110001
8
8
9
010101001
6
5
9
011010111
8
9
10
0101000000
6
6
9
011001110
8
10
10
0100101111
6
7
9
011000011
Продолжение таблицы 24
x
y
hlen
hcod
x
y
hlen
hcod
8
11
10
0100011110
10
15
8
00001010
8
12
10
0100001100
11
0
11
01010001100
8
13
11
01000000010
11
1
10
0101011010
8
14
11
00101111001
11
2
9
010101011
8
15
8
00010000
11
3
9
010101000
9
0
10
0101001111
11
4
9
010100100
9
1
9
011000111
11
5
10
0100111110
9
2
9
011000101
11
6
10
0100110101
9
3
9
010111111
11
7
10
0100101011
9
4
9
010111101
11
8
10
0100011111
9
5
9
010110101
11
9
10
0100010100
9
6
9
010101110
11
10
10
0100000111
9
7
10
0101001101
11
11
11
01000000001
9
8
10
0101000001
11
12
11
00101110111
9
9
10
0100110001
11
13
11
00101110000
9
10
10
0100100001
11
14
11
00101101010
9
11
10
0100010011
11
15
8
00000110
9
12
11
01000001001
12
0
11
01010001000
9
13
11
00101111011
12
1
10
0101000010
9
14
11
00101110011
12
2
10
0100111100
9
15
8
00001011
12
3
10
0100111000
10
0
11
01010011100
12
4
10
0100110011
10
1
9
010111000
12
5
10
0100101110
10
2
9
010110111
12
6
10
0100100100
10
3
9
010110011
12
7
10
0100011100
10
4
9
010101111
12
8
10
0100001101
10
5
10
0101011000
12
9
10
0100000101
10
6
10
0101001011
12
10
11
01000000000
10
7
10
0100111010
12
11
11
00101111000
10
8
10
0100110000
12
12
11
00101110010
10
9
10
0100100010
12
13
11
00101101100
10
10
10
0100010101
12
14
11
00101100111
10
11
11
01000010010
12
15
8
00000100
10
12
11
00101111111
13
0
11
01001101100
10
13
11
00101110101
13
1
10
0100101100
10
14
11
00101101110
Окончание таблицы 24
x
y
hlen
hcod
x
y
hlen
hcod
13
2
10
0100101000
14
9
11
00101110100
13
3
10
0100100110
14
10
11
00101101111
13
4
10
0100100000
14
11
11
00101101011
13
5
10
0100011010
14
12
11
00101101000
13
6
10
0100010001
14
13
11
00101100110
13
7
10
0100001010
14
14
11
00101100100
13
8
11
01000000011
14
15
8
00000000
13
9
11
00101111100
15
0
8
00101011
13
10
11
00101110110
15
1
7
0010100
13
11
11
00101110001
15
2
7
0010011
13
12
11
00101101101
15
3
7
0010001
13
13
11
00101101001
15
4
7
0001111
13
14
11
00101100101
15
5
7
0001101
13
15
8
00000010
15
6
7
0001011
14
0
12
010000001001
15
7
7
0001001
14
1
10
0100011000
15
8
7
0000111
14
2
10
0100010110
15
9
7
0000110
14
3
10
0100010010
15
10
7
0000100
14
4
10
0100001011
15
11
8
00000111
14
5
10
0100001000
15
12
8
00000101
14
6
10
0100000011
15
13
8
00000011
14
7
11
00101111110
15
14
8
00000001
14
8
11
00101111010
15
15
4
0011
Таблица 25 кода Хаффмана см. таблицу 24, но linbits=5
Таблица 26 Кода Хаффмана см. таблицу 24, но linbits=6
Таблица 27 Кода Хаффмана см. таблицу 24, но linbits=7
Таблица 28 Кода Хаффмана см. таблицу 24, но linbits=8
Таблица 29 Кода Хаффмана см. таблицу 24, но linbits=9
Таблица 30 Кода Хаффмана см. таблицу 24, но linbits=11
Таблица 31 Кода Хаффмана см. таблицу 24, но linbits=13
Таблицы Б.8
Полосы масштабных коэффициентов. Уровень III
В этих таблицах указана ширина каждой полосы масштабных коэффициентов. Всего используется 21 полоса для каждой частоты дискретизации при "длинных" окнах (тип 0, 1 или 3) и 12 полос при "коротких" окнах.
Таблица Б.8а
Частота дискретизации 32 кГц
Длинные блоки
Полоса масштабного коэффициента
Ширина полосы
Первая линия
Последняя линия
0
4
0
3
1
4
4
7
2
4
8
11
3
4
12
15
4
4
16
19
5
4
20
23
6
6
24
29
7
6
30
35
8
8
36
43
9
10
44
53
10
12
54
65
11
16
66
81
12
20
82
101
13
24
102
125
14
30
126
155
15
38
156
193
16
46
194
239
17
56
240
295
18
68
296
363
19
84
364
447
20
102
448
549
Короткие блоки
Полоса масштабного коэффициента
Ширина полосы
Первая линия
Последняя линия
0
4
0
3
1
4
4
7
2
4
8
11
3
4
12
15
4
6
16
21
5
8
22
29
6
12
30
41
7
16
42
57
8
20
58
77
9
26
78
103
10
34
104
137
11
42
138
179
Таблица Б.8б
Частота дискретизации 44,1 кГц
Длинные блоки
Полоса масштабного коэффициента
Ширина полосы
Первая линия
Последняя линия
0
4
0
3
1
4
4
7
2
4
8
11
3
4
12
15
4
4
16
19
5
4
20
23
6
6
24
29
7
6
30
35
8
8
36
43
9
8
44
51
10
10
52
61
11
12
62
73
12
16
74
89
13
20
90
109
14
24
110
133
15
28
134
161
16
34
162
195
17
42
196
237
18
50
238
287
19
54
288
341
20
76
342
417
Короткие блоки
Полоса масштабного коэффициента
Ширина полосы
Первая линия
Последняя линия
0
4
0
3
1
4
4
7
2
4
8
11
3
4
12
15
4
6
16
21
5
8
22
29
6
10
30
39
7
12
40
51
8
14
52
65
9
18
66
83
10
22
84
105
11
30
106
135
Таблица Б.8в
Частота дискретизации 48 кГц
Длинные блоки
Полоса масштабного коэффициента
Ширина полосы
Первая линия
Последняя линия
0
4
0
3
1
4
4
7
2
4
8
11
3
4
12
15
4
4
16
19
5
4
20
23
6
6
24
29
7
6
30
35
8
6
36
41
9
8
42
49
10
10
50
59
11
12
60
71
12
16
72
87
13
18
88
105
14
22
106
127
15
28
128
155
16
34
156
189
17
40
190
229
18
46
230
275
19
54
276
329
20
54
330
383
Короткие блоки
Полоса масштабного коэффициента
Ширина полосы
Первая линия
Последняя линия
0
4
0
3
1
4
4
7
2
4
8
11
3
4
12
15
4
6
16
21
5
6
22
27
6
10
28
37
7
12
38
49
8
14
50
63
9
16
64
79
10
20
80
99
11
26
100
125
Таблица Б.9
Коэффициенты для устранения элайзинга. Уровень III
(i)
ci
0
-0,6
1
-0,535
2
-0,33
3
-0,185
4
-0,095
5
-0,041
6
-0,0142
7
-0.0037
Коэффициенты "бабочки" csi и cai вычисляются по формулам
.
Приложение В
(обязательное)
ПРОЦЕСС КОДИРОВАНИЯ
В.1 Кодер
В.1.1 Краткий обзор
В данном приложении для каждого слоя приводится пример кодера с соответствующими блок-схемами. В кратком введении дается общая идея кодирования.
В.1.1.1 Введение
Алгоритм, приведенный в данном стандарте, является психоакустическим алгоритмом. На рисунке В.1 показаны основные блоки психоакустического алгоритма.
Рисунок В.1 - Блок-схема кодера
Четыре основные части психоакустического кодера описаны ниже.
В.1.1.1.1 Набор фильтров
Набор фильтров реализует частотно-временное преобразование. В алгоритме ISO/IEC 1117203 (MPEG Audio) используются два разных набора фильтров: полифазный набор и гибридный полифазный/МДКП набор. Каждый набор реализует определенное частотно-временное преобразование. Для данных наборов фильтров количество отсчетов в частотной области равно количеству отсчетов во временной области. Наборы фильтров обеспечивают основное частотное разделение в кодере и реконструкцию сигнала в декодере. Отсчеты на выходе наборов фильтров подлежат квантованию.
В.1.1.1.2 Психоакустическая модель
В блоке психоакустической модели вычисляется минимально заметный уровень шумов в каждой полосе набора фильтров. Этот уровень шумов используется при распределении битов или шума при определении фактических квантователей и уровней квантования. Есть две психоакустические модели, приведенные в приложении Г. В то время как обе они могут использоваться с любым уровнем ISO/IEC 1117203 (MPEG Audio), на практике Модель 1 используется для Уровней I и II, а Модель 2 - для Уровня III. В обеих психоакустических моделях выходом является отношение сигнал-маска (SMR) для каждой полосы (Уровни I и II) или группы полос (Уровень III).
В.1.1.1.3 Распределение битов или шумов
Блок распределения анализирует выходные отсчеты набора фильтров и SMR психоакустической модели и распределяет биты (Уровни I и II) или шумы (Уровень III), чтобы одновременно удовлетворить и требование по скорости передачи и требования маскирования. На низких скоростях передачи эти методы нацелены на то, чтобы потратить биты на минимизацию искажений при невозможности удовлетворить психоакустические требования.
В.1.1.1.4 Блок форматирования потока битов
В блоке форматирования потока битов квантованные отсчеты набора фильтров вместе с данными о распределении битов (Уровни I и II) или шумов (Уровень III) и другой служебной информацией кодируются и форматируются определенным образом. В случае Уровня III дополнительно используется код Хаффмана.
В.1.1.2 Набор фильтров
На Уровнях I и II используется набор фильтров с 32 субполосами. В каждой субполосе 12 или 36 отсчетов группируются для обработки. На Уровне III набор фильтров обладает сигнально-зависимой разрешающей способностью с 6 x 32 или 18 x 32 частотными линиями. Если есть 6 x 32 частотных полосы, группа из трех последовательных значений каждой частоты квантуется отдельно.
В.1.1.3 Метод распределения битов или шумов
В этом приложении описываются два различных способа управления скоростью передачи, На Уровнях I и II используется распределение битов, то есть определенное количество битов отводится каждому отсчету (или группе отсчетов) в каждой субполосе. На Уровне III используется распределение шумов, при котором квантователи изменяются по определенному закону, и управляемым параметром фактически является внесенный шум. В обоих случаях результатом являются набор параметров квантования и квантованные выходные отсчеты, которые подаются на блок формирования потока битов.
В.1.1.4 Формирование потока битов
Блок формирования потока битов зависит от выбранного уровня. На Уровнях I и II для каждого субполосного отсчета используется фиксированная ИКМ, за исключением возможности группировки квантуемых отсчетов на Уровне II. На Уровне III используется код Хаффмана с переменной длиной кодового слова для более эффективного кодирования за счет дополнительной сложности.
В.1.2 Входной фильтр верхних частот
Алгоритмы кодирования обеспечивают частотную характеристику вплоть до постоянной составляющей. Однако, если это не является обязательным требованием, рекомендуется включение фильтра верхних частот на входе кодера. Частота среза должна быть в диапазоне 2 - 10 Гц.
Использование такого фильтра верхних частот устраняет неоправданно высокие затраты на кодирование самой низкой субполосы и увеличивает общее качество звука.
В.1.3 Субполосный фильтр анализа
Субполосный фильтр анализа используется для разделения широкополосного сигнала с частотой дискретизации Fs на 32 одинаковых по ширине полосы с частотами дискретизации Fs/32. Блок-схема этого процесса с соответствующими формулами дана на рисунке В.4. Субполосная фильтрация включает в себя следующие шаги:
- ввод новых 32 звуковых отсчетов;
- создание вектора входных отсчетов X из 512 элементов, сдвиг на 32 отсчета, при этом новые отсчеты оказываются на позициях 0 - 31;
- вектор X поэлементно умножается на оконную функцию Ci. Коэффициенты оконной функции даны в таблице В.1;
- вычисляются 64 значения Yi согласно формуле, данной в блок-схеме на рис. В4;
- вычисляются 32 субполосных отсчета Si путем матрицирования;
- коэффициенты матрицы могут быть вычислены по следующей формуле:
.
Таблица В.1
Коэффициенты Ci
C[0] = 0,000000000
C[1] = -0,000000477
C[2] = -0,000000477
C[3] = -0,000000477
C[4] = -0,000000477
C[5] = -0,000000477
C[6] = -0,000000477
C[7] = -0,000000954
C[8] = -0,000000954
C[9] = -0,000000954
C[10] = -0,000000954
C[11] = -0,000001431
C[12] = -0,000001431
C[13] = -0,000001907
C[14] = -0,000001907
C[15] = -0,000002384
C[16] = -0,000002384
C[17] = -0,000002861
C[18] = -0,000003338
C[19] = -0,000003338
C[20] = -0,000003815
C[21] = -0,000004292
C[22] = -0,000004768
C[23] = -0,000005245
C[24] = -0,000006199
C[25] = -0,000006676
C[26] = -0,000007629
C[27] = -0,000008106
C[28] = -0,000009060
C[29] = -0,000010014
C[30] = -0,000011444
C[31] = -0,000012398
C[32] = -0,000013828
C[33] = -0,000014782
C[34] = -0,000016689
C[35] = -0,000018120
C[36] = -0,000019550
C[37] = -0,000021458
C[38] = -0,000023365
C[39] = -0,000025272
C[40] = -0,000027657
C[41] = -0,000030041
C[42] = -0,000032425
C[43] = -0,000034809
C[44] = -0,000037670
C[45] = -0,000040531
C[46] = -0,000043392
C[47] = -0,000046253
C[48] = -0,000049591
C[49] = -0,000052929
C[50] = -0,000055790
C[51] = -0,000059605
C[52] = -0,000062943
C[53] = -0,000066280
C[54] = -0,000070095
C[55] = -0,000073433
C[56] = -0,000076771
C[57] = -0,000080585
C[58] = -0,000083923
C[59] = -0,000087261
C[60] = -0,000090599
C[61] = -0,000093460
C[62] = -0,000096321
C[63] = -0,000099182
C[64] = 0,000101566
C[65] = 0,000103951
C[66] = 0,000105858
C[67] = 0,000107288
C[68] = 0,000108242
C[69] = 0,000108719
C[70] = 0,000108719
C[71] = 0,000108242
C[72] = 0,000106812
C[73] = 0,000105381
C[74] = 0,000102520
C[75] = 0,000099182
C[76] = 0,000095367
C[77] = 0,000090122
C[78] = 0,000084400
C[79] = 0,000077724
C[80] = 0,000069618
C[81] = 0,000060558
C[82] = 0,000050545
C[83] = 0,000039577
C[84] = 0,000027180
C[85] = 0,000013828
C[86] = -0,000000954
C[87] = -0,000017166
C[88] = -0,000034332
C[89] = -0,000052929
C[90] = -0,000072956
C[91] = -0,000093937
C[92] = -0,000116348
C[93] = -0,000140190
C[94] = -0,000165462
C[95] = -0,000191212
C[96] = -0,000218868
C[97] = -0,000247478
C[98] = -0,000277042
C[99] = -0,000307560
C[100] = -0,000339031
C[101] = -0,000371456
C[102] = -0,000404358
C[103] = -0,000438213
C[104] = -0,000472546
C[105] = -0,000507355
C[106] = -0,000542164
C[107] = -0,000576973
C[108] = -0,000611782
C[109] = -0,000646591
C[110] = -0,000680923
C[111] = -0,000714302
C[112] = -0,000747204
C[113] = -0,000779152
C[114] = -0,000809669
C[115] = -0,000838757
C[116] = -0,000866413
C[117] = -0,000891685
C[118] = -0,000915051
C[119] = -0,000935555
C[120] = -0,000954151
C[121] = -0,000968933
C[122] = -0,000980854
C[123] = -0,000989437
C[124] = -0,000994205
C[125] = -0,000995159
C[126] = -0,000991821
C[127] = -0,000983715
C[128] = 0,000971317
C[129] = 0,000953674
C[130] = 0,000930786
C[131] = 0,000902653
C[132] = 0,000868797
C[133] = 0,000829220
C[134] = 0,000783920
C[135] = 0,000731945
C[136] = 0,000674248
C[137] = 0,000610352
C[138] = 0,000539303
C[139] = 0,000462532
C[140] = 0,000378609
C[141] = 0,000288486
C[142] = 0,000191689
C[143] = 0,000088215
C[144] = -0,000021458
C[145] = -0,000137329
C[146] = -0,000259876
C[147] = -0,000388145
C[148] = -0,000522137
C[149] = -0,000661850
C[150] = -0,000806808
C[151] = -0,000956535
C[152] = -0,001111031
C[153] = -0,001269817
C[154] = -0,001432419
C[155] = -0,001597881
C[156] = -0,001766682
C[157] = -0,001937389
C[158] = -0,002110004
C[159] = -0,002283096
C[160] = -0,002457142
C[161] = -0,002630711
C[162] = -0,002803326
C[163] = -0,002974033
C[164] = -0,003141880
C[165] = -0,003306866
C[166] = -0,003467083
C[167] = -0,003622532
C[168] = -0,003771782
C[169] = -0,003914356
C[170] = -0,004048824
C[171] = -0,004174709
C[172] = -0,004290581
C[173] = -0,004395962
C[174] = -0,004489899
C[175] = -0,004570484
C[176] = -0,004638195
C[177] = -0,004691124
C[178] = -0,004728317
C[179] = -0,004748821
C[180] = -0,004752159
C[181] = -0,004737377
C[182] = -0,004703045
C[183] = -0,004649162
C[184] = -0,004573822
C[185] = -0,004477024
C[186] = -0,004357815
C[187] = -0,004215240
C[188] = -0,004049301
C[189] = -0,003858566
C[190] = -0,003643036
C[191] = -0,003401756
C[192] = 0,003134727
C[193] = 0,002841473
C[194] = 0,002521515
C[195] = 0,002174854
C[196] = 0,001800537
C[197] = 0,001399517
C[198] = 0,000971317
C[199] = 0,000515938
C[200] = 0,000033379
C[201] = -0,000475883
C[202] = -0,001011848
C[203] = -0,001573563
C[204] = -0,002161503
C[205] = -0,002774239
C[206] = -0,003411293
C[207] = -0,004072189
C[208] = -0,004756451
C[209] = -0,005462170
C[210] = -0,006189346
C[211] = -0,006937027
C[212] = -0,007703304
C[213] = -0,008487225
C[214] = -0,009287834
C[215] = -0,010103703
C[216] = -0,010933399
C[217] = -0,011775017
C[218] = -0,012627602
C[219] = -0,013489246
C[220] = -0,014358521
C[221] = -0,015233517
C[222] = -0,016112804
C[223] = -0,016994476
C[224] = -0,017876148
C[225] = -0,018756866
C[226] = -0,019634247
C[227] = -0,020506859
C[228] = -0,021372318
C[229] = -0,022228718
C[230] = -0,023074150
C[231] = -0,023907185
C[232] = -0,024725437
C[233] = -0,025527000
C[234] = -0,026310921
C[235] = -0,027073860
C[236] = -0,027815342
C[237] = -0,028532982
C[238] = -0,029224873
C[239] = -0,029890060
C[240] = -0,030526638
C[241] = -0,031132698
C[242] = -0,031706810
C[243] = -0,032248020
C[244] = -0,032754898
C[245] = -0,033225536
C[246] = -0,033659935
C[247] = -0,034055710
C[248] = -0,034412861
C[249] = -0,034730434
C[250] = -0,035007000
C[251] = -0,035242081
C[252] = -0,035435200
C[253] = -0,035586357
C[254] = -0,035694122
C[255] = -0,035758972
C[256] = 0,035780907
C[257] = 0,035758972
C[258] = 0,035694122
C[259] = 0,035586357
C[260] = 0,035435200
C[261] = 0,035242081
C[262] = 0,035007000
C[263] = 0,034730434
C[264] = 0,034412861
C[265] = 0,034055710
C[266] = 0,033659935
C[267] = 0,033225536
C[268] = 0,032754898
C[269] = 0,032248020
C[270] = 0,031706810
C[271] = 0,031132698
C[272] = 0,030526638
C[273] = 0,029890060
C[274] = 0,029224873
C[275] = 0,028532982
C[276] = 0,027815342
C[277] = 0,027073860
C[278] = 0,026310921
C[279] = 0,025527000
C[280] = 0,024725437
C[281] = 0,023907185
C[282] = 0,023074150
C[283] = 0,022228718
C[284] = 0,021372318
C[285] = 0,020506859
C[286] = 0,019634247
C[287] = 0,018756866
C[288] = 0,017876148
C[289] = 0,016994476
C[290] = 0,016112804
C[291] = 0,015233517
C[292] = 0,014358521
C[293] = 0,013489246
C[294] = 0,012627602
C[295] = 0,011775017
C[296] = 0,010933399
C[297] = 0,010103703
C[298] = 0,009287834
C[299] = 0,008487225
C[300] = 0,007703304
C[301] = 0,006937027
C[302] = 0,006189346
C[303] = 0,005462170
C[304] = 0,004756451
C[305] = 0,004072189
C[306] = 0,003411293
C[307] = 0,002774239
C[308] = 0,002161503
C[309] = 0,001573563
C[310] = 0,001011848
C[311] = 0,000475883
C[312] = -0,000033379
C[313] = -0,000515938
C[314] = -0,000971317
C[315] = -0,001399517
C[316] = -0,001800537
C[317] = -0,002174854
C[318] = -0,002521515
C[319] = -0,002841473
C[320] = 0,003134727
C[321] = 0,003401756
C[322] = 0,003643036
C[323] = 0,003858566
C[324] = 0,004049301
C[325] = 0,004215240
C[326] = 0,004357815
C[327] = 0,004477024
C[328] = 0,004573822
C[329] = 0,004649162
C[330] = 0,004703045
C[331] = 0,004737377
C[332] = 0,004752159
C[333] = 0,004748821
C[334] = 0,004728317
C[335] = 0,004691124
C[336] = 0,004638195
C[337] = 0,004570484
C[338] = 0,004489899
C[339] = 0,004395962
C[340] = 0,004290581
C[341] = 0,004174709
C[342] = 0,004048824
C[343] = 0,003914356
C[344] = 0,003771782
C[345] = 0,003622532
C[346] = 0,003467083
C[347] = 0,003306866
C[348] = 0,003141880
C[349] = 0,002974033
C[350] = 0,002803326
C[351] = 0,002630711
C[352] = 0,002457142
C[353] = 0,002283096
C[354] = 0,002110004
C[355] = 0,001937389
C[356] = 0,001766682
C[357] = 0,001597881
C[358] = 0,001432419
C[359] = 0,001269817
C[360] = 0,001111031
C[361] = 0,000956535
C[362] = 0,000806808
C[363] = 0,000661850
C[364] = 0,000522137
C[365] = 0,000388145
C[366] = 0,000259876
C[367] = 0,000137329
C[368] = 0,000021458
C[369] = -0,000088215
C[370] = -0,000191689
C[371] = -0,000288486
C[372] = -0,000378609
C[373] = -0,000462532
C[374] = -0,000539303
C[375] = -0,000610352
C[376] = -0,000674248
C[377] = -0,000731945
C[378] = -0,000783920
C[379] = -0,000829220
C[380] = -0,000868797
C[381] = -0,000902653
C[382] = -0,000930786
C[383] = -0,000953674
C[384] = 0,000971317
C[385] = 0,000983715
C[386] = 0,000991821
C[387] = 0,000995159
C[388] = 0,000994205
C[389] = 0,000989437
C[390] = 0,000980854
C[391] = 0,000968933
C[392] = 0,000954151
C[393] = 0,000935555
C[394] = 0,000915051
C[395] = 0,000891685
C[396] = 0,000866413
C[397] = 0,000838757
C[398] = 0,000809669
C[399] = 0,000779152
C[400] = 0,000747204
C[401] = 0,000714302
C[402] = 0,000680923
C[403] = 0,000646591
C[404] = 0,000611782
C[405] = 0,000576973
C[406] = 0,000542164
C[407] = 0,000507355
C[408] = 0,000472546
C[409] = 0,000438213
C[410] = 0,000404358
C[411] = 0,000371456
C[412] = 0,000339031
C[413] = 0,000307560
C[414] = 0,000277042
C[415] = 0,000247478
C[416] = 0,000218868
C[417] = 0,000191212
C[418] = 0,000165462
C[419] = 0,000140190
C[420] = 0,000116348
C[421] = 0,000093937
C[422] = 0,000072956
C[423] = 0,000052929
C[424] = 0,000034332
C[425] = 0,000017166
C[426] = 0,000000954
C[427] = -0,000013828
C[428] = -0,000027180
C[429] = -0,000039577
C[430] = -0,000050545
C[431] = -0,000060558
C[432] = -0,000069618
C[433] = -0,000077724
C[434] = -0,000084400
C[435] = -0,000090122
C[436] = -0,000095367
C[437] = -0,000099182
C[438] = -0,000102520
C[439] = -0,000105381
C[440] = -0,000106812
C[441] = -0,000108242
C[442] = -0,000108719
C[443] = -0,000108719
C[444] = -0,000108242
C[445] = -0,000107288
C[446] = -0,000105858
C[447] = -0,000103951
C[448] = 0,000101566
C[449] = 0,000099182
C[450] = 0,000096321
C[451] = 0,000093460
C[452] = 0,000090599
C[453] = 0,000087261
C[454] = 0,000083923
C[455] = 0,000080585
C[456] = 0,000076771
C[457] = 0,000073433
C[458] = 0,000070095
C[459] = 0,000066280
C[460] = 0,000062943
C[461] = 0,000059605
C[462] = 0,000055790
C[463] = 0,000052929
C[464] = 0,000049591
C[465] = 0,000046253
C[466] = 0,000043392
C[467] = 0,000040531
C[468] = 0,000037670
C[469] = 0,000034809
C[470] = 0,000032425
C[471] = 0,000030041
C[472] = 0,000027657
C[473] = 0,000025272
C[474] = 0,000023365
C[475] = 0,000021458
C[476] = 0,000019550
C[477] = 0,000018120
C[478] = 0,000016689
C[479] = 0,000014782
C[480] = 0,000013828
C[481] = 0,000012398
C[482] = 0,000011444
C[483] = 0,000010014
C[484] = 0,000009060
C[485] = 0,000008106
C[486] = 0,000007629
C[487] = 0,000006676
C[488] = 0,000006199
C[489] = 0,000005245
C[490] = 0,000004768
C[491] = 0,000004292
C[492] = 0,000003815
C[493] = 0,000003338
C[494] = 0,000003338
C[495] = 0,000002861
C[496] = 0,000002384
C[497] = 0,000002384
C[498] = 0,000001907
C[499] = 0,000001907
C[500] = 0,000001431
C[501] = 0,000001431
C[502] = 0,000000954
C[503] = 0,000000954
C[504] = 0,000000954
C[505] = 0,000000954
C[506] = 0,000000477
C[507] = 0,000000477
C[508] = 0,000000477
C[509] = 0,000000477
C[510] = 0,000000477
C[511] = 0,000000477
В.1.4 Психоакустические модели
Два примера психоакустических моделей даны в приложении Г.
В.1.5 Кодирование
В.1.5.1 Кодирование на Уровне I
В.1.5.1.1 Введение
В этом пункте описывается возможный метод кодирования на Уровне I. Описание дается со ссылкой на рисунок В.5.
В.1.5.1.2 Психоакустическая модель
Психоакустические параметры могут быть рассчитаны либо с психоакустической моделью 1, описанной в пункте Г.1, либо с психоакустической моделью 2, описанной в пункте Г.2. Сдвиг блока БПФ равняется 384 отсчетам. Любая модель позволяет определить отношение сигнал-маска в каждой субполосе.
В.1.5.1.3 Субполосная фильтрация
Субполосная фильтрация описывается в пункте В.1.3.
В.1.5.1.4 Расчет масштабных коэффициентов
Расчет масштабных коэффициентов в каждой субполосе выполняется для каждых 12 субполосных отсчетов. Определяется максимум абсолютных значений этих 12 отсчетов. Ближайшее большее, чем этот максимум, значение из таблицы Б.1 используется в качестве масштабного коэффициента.
В.1.5.1.5 Кодирование масштабных коэффициентов
Номер в таблице Б.1 кодируется 6 битами, MSB сначала. Масштабный коэффициент передается, только если на субполосу было выделено ненулевое число битов.
В.1.5.1.6 Распределение битов
Перед подстройкой фиксированной скорости передачи должно быть определено число битов, доступных для кодирования отсчетов и масштабных коэффициентов. Это число может быть получено путем вычитания из общего количества битов cb количества битов заголовка bhdr (32 бита), битов CRC bcrc, если оно используется (16 бит), информации о распределении бит bbal, и количества битов, требуемых для передачи дополнительных данных banc:
adb = cb - (bhdr + bcrc + bbal + banc).
Полученное количество битов может использоваться для кодирования субполосных отсчетов и масштабных коэффициентов. В основу процедуры распределения заложен принцип минимизации общего отношения шум-маска для всего кадра с ограничением на то, что число используемых битов не должно превышать число битов, доступных для этого кадра.
Процедура выделения выполняется итеративно, причем на каждом шаге число уровней приоритетных субполосных отсчетов увеличивается.
Сначала вычисляется отношение маска-шум MNR для каждой субполосы, путем вычитания из отношения сигнал-шум SNR отношения сигнал-маска SMR:
MNR = SNR - SMR.
Отношение сигнал-шум может быть найдено из таблицы В.2. Отношение сигнал-маска является выходом психоакустической модели.
Далее на каждую субполосу и масштабный коэффициент выделяется ноль битов. Число битов для кодирования отсчетов bspl и число битов для кодирования масштабных коэффициентов bscf обнуляются. Затем запускается итеративная процедура, каждый цикл которой содержит следующие шаги:
- среди всех субполос определяется субполоса с минимальным MNR;
- точность квантования субполосы с минимальным MNR повышается путем увеличения отведенного числа битов на следующее большее значение;
- определяется новое значение MNR в этой субполосе;
- обновляется значение bspl в соответствии с выделенным количеством битов. Если ненулевое число битов выделяется для субполосы впервые, то bscf должен быть увеличен на 6 битов;
- затем вычисляется adb по формуле:
adb = cb - (bhdr + bcrc + bbal + bscf + bspl + banc).
Итеративная процедура повторяется до тех пор пока adb не станет меньше любого возможного увеличения bspl и bscf в пределах одного цикла.
В.1.5.1.7 Квантование и кодирование субполосных отсчетов
Применяется равномерное квантование с симметрией относительно нуля. Это предотвращает получение различных результатов квантования при незначительном изменении значений вблизи нуля. Каждый из субполосных отсчетов нормализуется путем деления его значения на масштабный коэффициент для получения X и квантуется согласно следующему алгоритму:
- вычислить AX + B;
- оставить N старших значащих битов;
- инвертировать старший бит.
A и B могут быть взяты из таблицы B.3. N соответствует количеству битов, необходимому для кодирования количества шагов. Инверсия старшего значащего бита (MSB) нужна во избежание получения запрещенной комбинации из всех единиц, используемой для синхронизации.
В.1.5.1.8 Кодирование информации о распределении битов
4-разрядные коды используются для информации о распределении битов.
В.1.5.1.9 Дополнительные данные
Стандарт "Аудио" предполагает использование ряда битов дополнительных данных переменной длины для включения в поток аудиоданных и передачи вместе с ним. Наличие дополнительных данных сокращает количество битов, доступных для аудио, что может привести к ухудшению качества звука.
Наличие последовательности битов дополнительных данных, идентичных синхрослову, может препятствовать синхронизации. Эта проблема наиболее вероятна при использования свободного формата.
В.1.5.1.10 Форматирование
Кодированные субполосные данные передаются по фреймам. Число слотов во фрейме меняется в зависимости от частоты дискретизации (FS) и скорости передачи. Каждый фрейм содержит информацию о 384 отсчетах исходного входного сигнала, таким образом, частота следования фреймов составляет FS/384.
Fs, кГц
Размер кадра, мс
48
8
44,1
8,7074...
32
12
Фрейм может содержать аудиоданные одного или двух каналов.
Длина слота на Уровне I составляет 32 бита. Число слотов во фрейме может быть вычислено по формуле
Если результат не является целым числом, то он должен быть округлен. Для получения целого значения требуется пэддинг. Это означает, что число слотов может варьироваться между N и N + 1.
Формат фрейма Уровня I дан на рисунке В.2.
Рисунок В.2 - Формат фрейма. Уровень I
Таблица В.2
Отношения сигнал-шум. Уровень I
Уровень квантования
SNR, дБ
0
0,00
3
7,00
7
16,00
15
25,28
31
31,59
63
37,75
127
43,84
255
49,89
511
55,93
1023
61,96
2047
67,98
4095
74,01
8191
80,03
16383
86,05
32767
92,01
Таблица В.3
Коэффициенты квантования. Уровень I
Уровень квантования
A
B
3
0,750000000
-0,250000000
7
0,875000000
-0,125000000
15
0,937500000
-0,062500000
31
0,968750000
-0,031250000
63
0,984375000
-0,015625000
127
0,992187500
-0,007812500
255
0,996093750
-0,003906250
511
0,998046875
-0,001953125
1023
0,999023438
-0,000976563
2047
0,999511719
-0,000488281
4095
0,999755859
-0,000244141
8191
0,999877930
-0,000122070
16383
0,999938965
-0,000061035
32767
0,999969482
-0,000030518
В.1.5.2 Кодирование на Уровне II
В.1.5.2.1 Введение
В этом пункте описывается возможный метод кодирования на Уровне II. Описание дается со ссылкой на рисунок В.5.
В.1.5.2.2 Психоакустическая модель
Психоакустические параметры могут быть рассчитаны либо с психоакустической моделью 1, описанной в пункте Г.1, либо с психоакустической моделью 2, описанной в пункте Г.2. Сдвиг блока БПФ равен 1152 отсчетам. При использовании психоакустической модели 2 расчет осуществляется дважды со сдвигом на 576 отсчетов и из двух результатов выбирается один с наибольшим отношением сигнал-маска. Любая модель позволяет определить отношение сигнал-маска в каждой субполосе.
В.1.5.2.3 Субполосная фильтрация
Субполосная фильтрация описывается в пункте В.1.3.
В.1.5.2.4 Расчет масштабных коэффициентов
Расчет масштабных коэффициентов в каждой субполосе выполняется для каждых 12 субполосных отсчетов. Определяется максимум абсолютных значений этих 12 отсчетов. Ближайшее большее, чем этот максимум, значение из таблицы Б.1 используется в качестве масштабного коэффициента.
В.1.5.2.5 Кодирование масштабных коэффициентов
Кадр соответствует 36 субполосным отсчетам и поэтому содержит три масштабных коэффициента на одну субполосу. Пусть scf соответствует номеру в таблице Б.1. Определяются разности dscf1 и dscf2 между номерами соседних масштабных коэффициентов scf1, scf2 и scf3:
dscf1 = scf1 - scf2,
dscf2 = scf2 - scf3.
Класс каждой разности определяется следующим образом:
Класс
dscf
1
dscf <= -3
2
-3 < dscf < 0
3
dscf = 0
4
0 < dscf < 3
5
dscf >= 3
Пара разностных классов указывает на соответствующее значение в таблице В.4 и дает три масштабных коэффициента, которые фактически используются. "1", "2" и "3" означают соответственно первый, второй и третий масштабный коэффициент в пределах кадра, "4" означает максимум из трех масштабных коэффициентов. Если после корректировки два или три масштабных коэффициента оказываются одинаковыми, то не требуется передача их всех для определенной субполосы в пределах одного фрейма. Информацию, описывающую количество и позицию масштабных коэффициентов в каждой субполосе, называют информацией о выборе масштабных коэффициентов.
В.1.5.2.6 Кодирование информации о выборе масштабного коэффициента
Информация о выборе масштабного коэффициента scalefactor selection information (scfsi) кодируется соответствующей комбинацией из двух битов, которая дается в таблице В.4. Значения scfsi передаются только для тех субполос, которые получат ненулевое количество битов.
В.1.5.2.7 Распределение битов
Перед корректировкой фиксированной скорости передачи должно быть определено количество битов adb, доступных для кодирования отсчетов и масштабных коэффициентов.
Это число может быть получено путем вычитания из общего количества битов cb количества битов заголовка bhdr (32 бита), битов CRC bcrc, если оно используется (16 битов), битов распределения bbal и количества битов, требуемых для передачи дополнительных данных banc:
adb = cb - (bhdr + bcrc + bbal + banc).
Полученное количество битов может использоваться для кодирования субполосных отсчетов и масштабных коэффициентов. В основу процедуры распределения заложен принцип минимизации общего отношения шум-маска для всего фрейма с ограничением на то, что число используемых битов не должно превышать число битов, доступных для этого фрейма. Количество уровней квантования, которое может быть использовано для кодирования субполосных отсчетов, дано в таблице Б.2. Возможное количество битов, выделенных на один отсчет, может быть найдено в таблице Б.4.
Процедура выделения выполняется итеративно, причем на каждом шаге число уровней приоритетных субполосных отсчетов увеличивается.
Сначала вычисляется отношение маска-шум MNR для каждой субполосы путем вычитания из отношения сигнал-шум SNR отношения сигнал-маска SMR:
MNR = SNR - SMR.
Отношение сигнал-шум может быть найдено из таблицы В.5. Отношение сигнал-маска является выходом психоакустической модели.
Далее на каждую субполосу и масштабный коэффициент выделяется ноль битов. Число битов для кодирования отсчетов bspl и число битов для кодирования масштабных коэффициентов bscf обнуляются. Затем запускается итеративная процедура, каждый цикл которой содержит следующие шаги:
- среди всех субполос определяется субполоса с минимальным MNR.
- точность квантования субполосы с минимальным MNR повышается путем выбора следующего большего значения в таблице Б.2;
- определяется новое значение MNR в этой субполосе.
- обновляется значение bspl в соответствии с выделенным количеством битов. Если ненулевое число битов выделяется для субполосы впервые, то bscf должен быть увеличен на 6 битов. Затем вычисляется adb по формуле:
adb = cb - (bhdr + bcrc + bbal + bscf + bspl + banc).
Итеративная процедура повторяется до тех пор, пока adb не станет меньше любого возможного увеличения bspl и bscf в пределах одного цикла.
В.1.5.2.8 Квантование и кодирование субполосных отсчетов
Каждый из 12 субполосных отсчетов подлежит нормализации путем деления на масштабный коэффициент для получения значения X и затем квантуется по следующему правилу:
- вычислить A * X + B;
- оставить N старших значащих битов;
- инвертировать старший бит.
A и B могут быть взяты из таблицы В.6. N соответствует количеству битов, необходимому для кодирования количества шагов. Инверсия старшего значащего бита (MSB) нужна во избежание получения запрещенной комбинации из всех единиц, используемой для синхронизации.
Для заданного числа шагов квантования в таблице Б 4 указывается, будет ли использоваться группировка. Если группировка не требуется, три субполосных отсчета кодируются отдельными кодовыми комбинациями.
Если группировка требуется, три последовательных субполосных отсчета кодируются одной кодовой комбинацией. В этом случае для данной тройки передается только одно значение vm (MSB сначала). Соотношение между кодированным значением vm (m = 3, 5, 9) и тремя последовательными субполосными отсчетами x, y, z
v3 = 9z + 3y + x
(v3 = 0... 26);
v5 = 25z + 5y + x
(v5 = 0... 124);
v9 = 81z + 9y + x
(v9 = 0... 728).
В.1.5.2.9 Кодирование информации о распределении битов
В целях повышения эффективности кодирования для каждой субполосы разрешен только определенный набор квантователей. В результате передается только номер nbal в соответствующей таблице Б.2, MSB первым.
В.1.5.2.10 Дополнительные данные
Стандарт звуковых сигналов предполагает использование ряда битов дополнительных данных переменной длины для включения в поток аудиоданных и передачи вместе с ним. Наличие дополнительных данных сокращает количество битов, доступных для аудио, что может привести к ухудшению качества звука.
Наличие последовательности битов дополнительных данных, идентичных синхрослову, может препятствовать синхронизации. Эта проблема наиболее вероятна при использовании свободного формата.
В.1.5.2.11 Форматирование
Формат фрейма Уровня II дан на рисунке В.3.
Рисунок В.3 - Формат фрейма. Уровень II
Различия по сравнению с Уровнем I:
- длина слота равняется 8 битам;
- используется новый блок scfsi, содержащий информацию о выборе масштабных коэффициентов;
- информация о распределении бит, масштабные коэффициенты и отсчеты подвергаются дальнейшему кодированию.
Таблица В.4
Последовательности масштабных коэффициентов. Уровень II
Класс 1
Класс 2
Масштабные коэффициенты, используемые в кодере
Последовательность
Информация о выборе
1
1 2 3
1 2 3
0
2
1 2 2
1 2
3
3
1 2 2
1 2
3
4
1 3 3
1 3
3
5
1 2 3
1 2 3
0
2
1
1 1 3
1 3
1
2
2
1 1 1
1
2
2
3
1 1 1
1
2
2
4
4 4 4
4
2
2
5
1 1 3
1 3
1
3
1
1 1 1
1
2
3
2
1 1 1
1
2
3
3
1 1 1
1
2
3
4
3 3 3
3
2
3
5
1 1 3
1 3
1
4
1
2 2 2
2
2
4
2
2 2 2
2
2
4
3
2 2 2
2
2
4
4
3 3 3
3
2
4
5
1 2 3
1 2 3
0
5
1
1 2 3
1 2 3
0
5
2
1 2 2
1 2
3
5
3
1 2 2
1 2
3
5
4
1 3 3
1 3
3
5
5
1 2 3
1 2 3
0
Таблица В.5
Отношения сигнал-шум. Уровень II
Количество уровней квантования
SNR, дБ
0
0,00
3
7,00
5
11,00
7
16,00
9
20,84
15
25,28
31
31,59
63
37,75
127
43,84
255
49,89
511
55,93
1023
61,96
2047
67,98
4095
74,01
8191
80,03
16383
86,05
32767
92,01
65535
98,01
Таблица В.6
Коэффициенты квантования. Уровень II
Количество уровней квантования
A
B
3
0,750000000
-0,250000000
5
0,625000000
-0,375000000
7
0,875000000
-0,125000000
9
0,562500000
-0,437500000
15
0,937500000
-0,062500000
31
0,968750000
-0,031250000
63
0,984375000
-0,015625000
127
0,992187500
-0,007812500
255
0,996093750
-0,003906250
511
0,998046875
-0,001953125
1023
0,999023438
-0,000976563
2047
0,999511719
-0,000488281
4095
0,999755859
-0,000244141
8191
0,999877930
-0,000122070
16383
0,999938965
-0,000061035
32767
0,999969482
-0,000030518
65535
0,999984741
-0,000015259
Рисунок В.4 - Блок-схема алгоритма субполосной фильтрации
Рисунок В.5 - Блок-схема алгоритма кодера. Уровни I и II
В.1.5.3 Кодирование на Уровне III
В.1.5.3.1 Введение
В этом пункте описывается возможный метод кодирования на Уровне III. Основной алгоритм соответствует общей блок-схеме психоакустического кодера. Основные блоки описываются более подробно ниже.
В.1.5.3.2 Психоакустическая модель
ИС NORMPROD: примечание.
В официальном тексте документа, видимо, допущена опечатка: имеется в виду п. Г.1, а не табл. Г.1.
Расчет психоакустических параметров может быть сделан либо с использованием психоакустической модели 1, описанной в таблице Г.1, либо с использованием психоакустической модели 2, описанной в Г.2. Психоакустический расчет выполняется дважды на блок, со сдвигом в 576 отсчетов. Отношение сигнал-маска рассчитывается для каждой полосы масштабных коэффициентов. Описание модификаций в психоакустической модели 2 для использования с Уровнем III дается ниже.
Модель вычисляется дважды, параллельно. Один расчет выполняется со сдвигом iblen 192 отсчетов (для использования с короткими блоками), другой - со сдвигом в 576 отсчета. Для сдвига в 192 отсчета размер блока БПФ изменяется на 256 с соответствующим изменением всех параметров.
1. Изменения при вычислении неопределенности:
Изменено вычисление энтропийного расстояния в психоакустической модели 2.
2. Расчет энтропии:
Энтропия cw вычисляется для первых 206 линий спектра, для других линий спектра энтропия устанавливается равной 0,4.
Энтропия для первых 6 линий вычисляется из длинного БПФ (длина окна = 1024, shiftlen = 576). Для линий спектра с 6 до 205 энтропия вычисляется из короткого БПФ (длина окна = 256, shiftlen = 192):
где cw_1 - энтропия, вычисленная из длинного БПФ; cw_s - неопределенность, вычисленная из короткого БПФ второго из трех коротких блоков в пределах одной гранулы.
3. Заменена функции маскировки:
ifj >= i tmpy = 3,0(j - i)
else tmpy = 1,5(j - i)
Используются значения функции маскировки, превышающие 10-6. Все другие значения обнуляются.
4. Параметры, используемые для преобразования энтропии.
conv1 = -0,299
conv2 = -0,43
5. Параметр NMT (тон, маскирующий шум) устанавливается равным 6,0 дБ для всех участков, используемых при расчете порога. Параметр TMN (шум, маскирующий тон) устанавливается равным 29,0 дБ для всех участков, используемых при расчете порога. Значения minval даны в таблицах В.7.
6. Психоакустическая энтропия pe оценивается на основе отношения thr/eb, где thr - порог маскирования, eb - энергия:
,
где cbwidth - ширина порогового участка (см. таблицы В7); k - номер раздела.
7. Контроль пре-эха
Следующие константы используются для контроля пре-эха:
rpelev = 2
rpelev2 = 16
8. Порог не распространяется по линиям БПФ. Пороговые разделы преобразуются непосредственно в полосы масштабных коэффициентов. Первый раздел, который добавляется к полосе масштабных коэффициентов, взвешивается в окне w1, последний - в окне w2 (см. таблицы В.8). Таблица содержит также число разделов (cbw), преобразуемых в одну полосу масштабных коэффициентов (исключая первый и последний разделы).
Параметры bo и Ш даны в таблицах В.8. Они используются для преобразования пороговых разделов в полосы масштабных коэффициентов.
9. Для коротких блоков используется упрощенная версия вычисления порога (с постоянным отношением сигнал-шум). Константы SNR даны в таблицах В.7.
Таблицы В.7
Разделы вычисления порога маскирования
Таблица В.7а
Частота дискретизации 48 кГц, длинные блоки
Номер
БПФ-линии
minval
qthr
norm
bval
0
1
24,5
4,532
0,970
0,000
1
1
24,5
4,532
0,755
0,469
2
1
24,5
4,532
0,738
0,937
3
1
24,5
0,904
0,730
1,406
4
1
24,5
0,904
0,724
1,875
5
1
20
0,090
0,723
2,344
6
1
20
0,090
0,723
2,812
7
1
20
0,029
0,723
3,281
8
1
20
0,029
0,718
3,750
9
1
20
0,009
0,690
4,199
10
1
20
0,009
0,660
4,625
11
1
18
0,009
0,641
5,047
12
1
18
0,009
0,600
5,437
13
1
18
0,009
0,584
5,828
14
1
12
0,009
0,531
6,187
15
1
12
0,009
0,537
6,522
16
2
6
0,018
0,857
7,174
17
2
6
0,018
0,858
7,800
18
2
3
0,018
0,853
8,402
19
2
3
0,018
0,824
8,966
20
2
3
0,018
0,778
9,483
21
2
3
0,018
0,740
9,966
22
2
0
0,018
0,709
10,426
23
2
0
0,018
0,676
10,866
24
2
0
0,018
0,632
11,279
25
2
0
0,018
0,592
11,669
26
2
0
0,018
0,553
12,042
27
2
0
0,018
0,510
12,386
28
2
0
0,018
0,513
12,721
29
3
0
0,027
0,608
13,115
30
3
0
0,027
0,673
13,561
31
3
0
0,027
0,636
13,983
32
3
0
0,027
0,586
14,371
33
3
0
0,027
0,571
14,741
34
4
0
0,036
0,616
15,140
35
4
0
0,036
0,640
15,562
36
4
0
0,036
0,597
15,962
37
4
0
0,036
0,538
16,324
38
4
0
0,036
0,512
16,665
39
5
0
0,045
0,528
17,020
40
5
0
0,045
0,516
17,373
41
5
0
0,045
0,493
17,708
42
6
0
0,054
0,499
18,045
43
7
0
0,063
0,525
18,398
44
7
0
0,063
0,541
18,762
45
8
0
0,072
0,528
19,120
46
8
0
0,072
0,510
19,466
47
8
0
0,072
0,506
19,807
48
10
0
0,180
0,525
20,159
49
10
0
0,180
0,536
20,522
50
10
0
0,180
0,518
20,873
51
13
0
0,372
0,501
21,214
52
13
0
0,372
0,496
21,553
53
14
0
0,400
0,497
21,892
54
18
0
1,628
0,495
22,231
55
18
0
1,628
0,494
22,569
56
20
0
1,808
0,497
22,909
57
25
0
22,607
0,494
23,248
58
25
0
22,607
0,487
23,583
59
35
0
31,650
0,483
23,915
60
67
0
605,867
0,482
24,246
61
67
0
605,867
0,524
24,576
Таблица В.7б
Частота дискретизации 44,1 кГц, длинные блоки
Номер
БПФ-линии
minval
qthr
norm
bval
0
1
24,5
4,532
0,951
0,000
1
1
24,5
4,532
0,700
0,431
2
1
24,5
4,532
0,681
0,861
3
1
24,5
0,904
0,675
1,292
4
1
24,5
0,904
0,667
1,723
5
1
20
0,090
0,665
2,153
6
1
20
0,090
0,664
2,584
7
1
20
0,029
0,664
3,015
8
1
20
0,029
0,664
3,445
9
1
20
0,029
0,655
3,876
10
1
20
0,009
0,616
4,279
11
1
20
0,009
0,597
4,670
12
1
18
0,009
0,578
5,057
13
1
18
0,009
0,541
5,415
14
1
18
0,009
0,575
5,774
15
2
12
0,018
0,856
6,422
16
2
6
0,018
0,846
7,026
17
2
6
0,018
0,840
7,609
18
2
3
0,018
0,822
8,168
19
2
3
0,018
0,800
8,710
20
2
3
0,018
0,753
9,207
21
2
3
0,018
0,704
9,662
22
2
0
0,018
0,674
10,099
23
2
0
0,018
0,640
10,515
24
2
0
0,018
0,609
10,917
25
2
0
0,018
0,566
11,293
26
2
0
0,018
0,535
11,652
27
2
0
0,018
0,531
11,997
28
3
0
0,027
0,615
12,394
29
3
0
0,027
0,686
12,850
30
3
0
0,027
0,650
13,277
31
3
0
0,027
0,611
13,681
32
3
0
0,027
0,567
14,062
33
3
0
0,027
0,520
14,411
34
3
0
0,027
0,513
14,751
35
4
0
0,036
0,557
15,119
36
4
0
0,036
0,584
15,508
37
4
0
0,036
0,570
15,883
38
5
0
0,045
0,579
16,263
39
5
0
0,045
0,585
16,654
40
5
0
0,045
0,548
17,020
41
6
0
0,054
0,536
17,374
42
6
0
0,054
0,550
17,744
43
7
0
0,063
0,532
18,104
44
7
0
0,063
0,504
18,447
45
7
0
0,063
0,496
18,781
46
9
0
0,081
0,516
19,130
47
9
0
0,081
0,527
19,487
48
9
0
0,081
0,516
19,838
49
10
0
0,180
0,497
20,179
50
10
0
0,180
0,489
20,510
51
11
0
0,198
0,502
20,852
52
14
0
0,400
0,502
21,196
53
14
0
0,400
0,491
21,531
54
15
0
0,429
0,497
21,870
55
20
0
1,808
0,504
22,214
56
20
0
1,808
0,504
22,558
57
21
0
1,899
0,495
22,898
58
27
0
24,415
0,486
23,232
59
27
0
24,415
0,484
23,564
60
36
0
32,554
0,483
23,897
61
73
0
660,124
0,475
24,229
62
18
0
162,770
0,515
24,542
Таблица В.7в
Частота дискретизации 32 кГц, длинные блоки
Номер
БПФ-линии
minval
qthr
norm
bval
0
2
24,5
9,064
0,997
0,312
1
2
24,5
9,064
0,893
0,937
2
2
24,5
1,808
0,881
1,562
3
2
20
0,181
0,873
2,187
4
2
20
0,181
0,872
2,812
5
2
20
0,057
0,871
3,437
6
2
20
0,018
0,860
4,045
7
2
20
0,018
0,839
4,625
8
2
18
0,018
0,812
5,173
9
2
18
0,018
0,784
5,698
10
2
12
0,018
0,741
6,184
11
2
12
0,018
0,697
6,634
12
2
6
0,018
0,674
7,070
13
2
6
0,018
0,651
7,492
14
2
6
0,018
0,633
7,905
15
2
3
0,018
0,611
8,305
16
2
3
0,018
0,589
8,695
17
2
3
0,018
0,575
9,064
18
3
3
0,027
0,654
9,483
19
3
3
0,027
0,724
9,966
20
3
0
0,027
0,701
10,425
21
3
0
0,027
0,673
10,866
22
3
0
0,027
0,631
11,279
23
3
0
0,027
0,592
11,669
24
3
0
0,027
0,553
12,042
25
3
0
0,027
0,510
12,386
26
3
0
0,027
0,505
12,721
27
4
0
0,036
0,562
13,091
28
4
0
0,036
0,598
13,488
29
4
0
0,036
0,589
13,873
30
5
0
0,045
0,607
14,268
31
5
0
0,045
0,620
14,679
32
5
0
0,045
0,580
15,067
33
5
0
0,045
0,532
15,424
34
5
0
0,045
0,517
15,771
35
6
0
0,054
0,517
16,120
36
6
0
0,054
0,509
16,466
37
6
0
0,054
0,506
16,807
38
8
0
0,072
0,522
17,158
39
8
0
0,072
0,531
17,518
40
8
0
0,072
0,519
17,869
41
10
0
0,090
0,512
18,215
42
10
0
0,090
0,509
18,562
43
10
0
0,090
0,497
18,902
44
12
0
0,108
0,494
19,239
45
12
0
0,108
0,501
19,579
46
13
0
0,117
0,507
19,925
47
14
0
0,252
0,502
20,269
48
14
0
0,252
0,493
20,606
49
16
0
0,289
0,497
20,944
50
20
0
0,572
0,506
21,288
51
20
0
0,572
0,510
21,635
52
23
0
0,658
0,504
21,979
53
27
0
2,441
0,496
22,319
54
27
0
2,441
0,493
22,656
55
32
0
2,894
0,490
22,993
56
37
0
33,458
0,483
23,326
57
37
0
33,458
0,458
23,656
58
12
0
10,851
0,500
23,937
Таблица В.7г
Частота дискретизации 48 кГц, короткие блоки
Номер
БПФ-линии
qthr
norm
SNR, дБ
bval
0
1
4 532
0,970
-8,240
0,000
1
1
0,904
0,755
-8,240
1,875
2
1
0,029
0,738
-8,240
3,750
3
1
0,009
0,730
-8,240
5,437
4
1
0,009
0,724
-8,240
6,857
5
1
0,009
0,723
-8,240
8,109
6
1
0,009
0,723
-8,240
9,237
7
1
0,009
0,723
-8,240
10,202
8
1
0,009
0,718
-8,240
11,083
9
1
0,009
0,690
-8,240
11,864
10
1
0,009
0,660
-7,447
12,553
11
1
0,009
0,641
-7,447
13,195
12
1
0,009
0,600
-7,447
13,781
13
1
0,009
0,584
-7,447
14,309
14
1
0,009
0,532
-7,447
14,803
15
1
0,009
0,537
-7,447
15,250
16
1
0,009
0,857
-7,447
15,667
17
1
0,009
0,858
-7,447
16,068
18
1
0,009
0,853
-7,447
16,409
19
2
0,018
0,824
-7,447
17,044
20
2
0,018
0,778
-6,990
17,607
21
2
0,018
0,740
-6,990
18,097
22
2
0,018
0,709
-6,990
18,528
23
2
0,018
0,676
-6,990
18,930
24
2
0,018
0,632
-6,990
19,295
25
2
0,018
0,592
-6,990
19,636
26
3
0,054
0,553
-6,990
20,038
27
3
0,054
0,510
-6,990
20,486
28
3
0,054
0,513
-6,990
20,900
29
4
0,114
0,608
-6,990
21,305
30
4
0,114
0,673
-6,020
21,722
31
5
0,452
0,637
-6,020
22,128
32
5
0,452
0,586
-6,020
22,512
33
5
0,452
0,571
-6,020
22,877
34
7
6,330
0,616
-5,229
23,241
35
7
6,330
0,640
-5,229
23,616
36
11
9,947
0,597
-5,229
23,974
37
17
153,727
0,538
-5,229
24,312
Таблица В.7д
Частота дискретизации 44,1 кГц, короткие блоки
Номер
БПФ-линии
qthr
norm
SNR, дБ
bval
0
4 532
0,952
-8,240
0,000
1
0,904
0,700
-8,240
1,723
2
0,029
0,681
-8,240
3,445
3
0,009
0,675
-8,240
5,057
4
0,009
0,667
-8,240
6,422
5
0,009
0,665
-8,240
7,609
6
0,009
0,664
-8,240
8,710
7
0,009
0,664
-8,240
9,662
8
0,009
0,664
-8,240
10,515
9
0,009
0,655
-8,240
11,293
10
0,009
0,616
-7,447
12,009
11
0,009
0,597
-7,447
12,625
12
0,009
0,578
-7,447
13,210
13
0,009
0,541
-7,447
13,748
14
0,009
0,575
-7,447
14,241
15
0,009
0,856
-7,447
14,695
16
0,009
0,846
-7,447
15,125
17
0,009
0,840
-7,447
15,508
18
0,009
0,822
-7,447
15,891
19
2
0,018
0,800
-7,447
16,537
20
2
0,018
0,753
-6,990
17,112
21
2
0,018
0,704
-6,990
17,620
22
2
0,018
0,674
-6,990
18,073
23
2
0,018
0,640
-6,990
18,470
24
2
0,018
0,609
-6,990
18,849
25
3
0,027
0,566
-6,990
19,271
26
3
0,027
0,535
-6,990
19,741
27
3
0,054
0,531
-6,990
20,177
28
3
0,054
0,615
-6,990
20,576
29
3
0,054
0,686
-6,990
20,950
30
4
0,114
0,650
-6,020
21,316
31
4
0,114
0,612
-6,020
21,699
32
5
0,452
0,567
-6,020
22,078
33
5
0,452
0,520
-6,020
22,438
34
5
0,452
0,513
-5,229
22,782
35
7
6,330
0,557
-5,229
23,133
36
7
6,330
0,584
-5,229
23,484
37
7
6,330
0,570
-5,229
23,828
38
19
171,813
0,578
-4,559
24,173
Таблица В.7е
Частота дискретизации 32 кГц, короткие блоки
Номер
БПФ-линии
qthr
norm
SNR, дБ
bval
0
4,532
0,997
-8,240
0,000
1
0,904
0,893
-8,240
1,250
2
0,090
0,881
-8,240
2,500
3
0,029
0,873
-8,240
3,750
4
0,009
0,872
-8,240
4,909
5
0,009
0,871
-8,240
5,958
6
0,009
0,860
-8,240
6,857
7
0,009
0,839
-8,240
7,700
8
0,009
0,812
-8,240
8,500
9
0,009
0,784
-8,240
9,237
10
0,009
0,741
-7,447
9,895
11
0,009
0,697
-7,447
10,500
12
0,009
0,674
-7,447
11,083
13
0,009
0,651
-7,447
11,604
14
0,009
0,633
-7,447
12,107
15
0,009
0,611
-7,447
12,554
16
0,009
0,589
-7,447
13,000
17
0,009
0,575
-7,447
13,391
18
0,009
0,654
-7,447
13,781
19
2
0,018
0,724
-7,447
14,474
20
2
0,018
0,701
-6,990
15,096
21
2
0,018
0,673
-6,990
15,667
22
2
0,018
0,631
-6,990
16,177
23
2
0,018
0,592
-6,990
16,636
24
2
0,018
0,553
-6,990
17,057
25
2
0,018
0,510
-6,990
17,429
26
2
0,018
0,506
-6,990
17,786
27
3
0,027
0,562
-6,990
18,177
28
3
0,027
0,598
-6,990
18,597
29
3
0,027
0,589
-6,990
18,994
30
3
0,027
0,607
-6,020
19,352
31
3
0,027
0,620
-6,020
19,693
32
4
0,072
0,580
-6,020
20,066
33
4
0,072
0,532
-6,020
20,461
34
4
0,072
0,517
-5,229
20,841
35
5
0,143
0,517
-5,229
21,201
36
5
0,143
0,509
-5,229
21,549
37
6
0,172
0,506
-5,229
21,911
38
7
0,633
0,522
-4,559
22,275
39
7
0,633
0,531
-4,559
22,625
40
8
0,723
0,519
-3,980
22,971
41
10
9,043
0,512
-3,980
23,321
Таблицы В.8
Таблицы для преобразования пороговых разделов
в полосы масштабных коэффициентов
Таблица В.8а
Частота дискретизации 48 кГц, длинные блоки
Номер. sb
cbw
bu
bo
w1
w2
0
3
0
4
1 000
0,056
1
3
4
7
0,944
0,611
2
4
7
11
0,389
0,167
3
3
11
14
0,833
0,722
4
3
14
17
0,278
0,639
5
2
17
19
0,361
0,417
6
3
19
22
0,583
0,083
7
2
22
24
0,917
0,750
8
3
24
27
0,250
0,417
9
3
27
30
0,583
0,648
10
3
30
33
0,352
0,611
11
3
33
36
0,389
0,625
12
4
36
40
0,375
0,144
13
3
40
43
0,856
0,389
14
3
43
46
0,611
0,160
15
3
46
49
0,840
0,217
16
3
49
52
0,783
0,184
17
2
52
54
0,816
0,886
18
3
54
57
0,114
0,313
19
2
57
59
0,687
0,452
20
1
59
60
0,548
0,908
Таблица В.8б
Частота дискретизации 44,1 кГц, длинные блоки
Номер sb
cbw
bu
bo
w1
w2
0
3
0
4
1 000
0,056
1
3
4
7
0,944
0,611
2
4
7
11
0,389
0,167
3
3
11
14
0,833
0,722
4
3
14
17
0,278
0,139
5
1
17
18
0,861
0,917
6
3
18
21
0,083
0,583
7
3
21
24
0,417
0,250
8
3
24
27
0,750
0,805
9
3
27
30
0,194
0,574
10
3
30
33
0,426
0,537
11
3
33
36
0,463
0,819
12
4
36
40
0,180
0,100
13
3
40
43
0,900
0,468
14
3
43
46
0,532
0,623
15
3
46
49
0,376
0,450
16
3
49
52
0,550
0,552
17
3
52
55
0,448
0,403
18
2
55
57
0,597
0,643
19
2
57
59
0,357
0,722
20
2
59
61
0,278
0,960
Таблица В.8в
Частота дискретизации 32 кГц, длинные блоки
Номер sb
cbw
bu
bo
w1
w2
0
1
0
2
1 000
0,528
1
2
2
4
0,472
0,305
2
2
4
6
0,694
0,083
3
1
6
7
0,917
0,861
4
2
7
9
0,139
0,639
5
2
9
11
0,361
0,417
6
3
11
14
0,583
0,083
7
2
14
16
0,917
0,750
8
3
16
19
0,250
0,870
9
3
19
22
0,130
0,833
10
4
22
26
0,167
0,389
11
4
26
30
0,611
0,478
12
4
30
34
0,522
0,033
13
3
34
37
0,967
0,917
14
4
37
41
0,083
0,617
15
3
41
44
0,383
0,995
16
4
44
48
0,005
0,274
17
3
48
51
0,726
0,480
18
3
51
54
0,519
0,261
19
2
54
56
0,739
0,884
20
2
56
58
0,116
1 000
Таблица В.8г
Частота дискретизации 48 кГц, короткие блоки
Номер sb
cbw
bu
bo
w1
w2
0
2
0
3
1 000
0,167
1
2
3
5
0,833
0,833
2
3
5
8
0,167
0,500
3
3
8
11
0,500
0,167
4
4
11
15
0,833
0,167
5
4
15
19
0,833
0,583
6
3
19
22
0,417
0,917
7
4
22
26
0,083
0,944
8
4
26
30
0,055
0,042
9
2
30
32
0,958
0,567
10
3
32
35
0,433
0,167
11
2
35
37
0,833
0,618
Таблица В.8д
Частота дискретизации 44,1 кГц, короткие блоки
Номер sb
cbw
bu
bo
w1
w2
0
2
0
3
1,000
0,167
1
2
3
5
0,833
0,833
2
3
5
8
0,167
0,500
3
3
8
11
0,500
0,167
4
4
11
15
0,833
0,167
5
5
15
20
0,833
0,250
6
3
20
23
0,750
0,583
7
4
23
27
0,417
0,055
8
3
27
30
0,944
0,375
9
3
30
33
0,625
0,300
10
3
33
36
0,700
0,167
11
2
36
38
0,833
1,000
Таблица В.8е
Частота дискретизации 32 кГц, короткие блоки
Номер sb
cbw
bu
bo
w1
w2
0
2
0
3
1,000
0,167
1
2
3
5
0,833
0,833
2
3
5
8
0,167
0,500
3
3
8
11
0,500
0,167
4
4
11
15
0,833
0,167
5
5
15
20
0,833
0,250
6
4
20
24
0,750
0,250
7
5
24
29
0,750
0,055
8
4
29
33
0,944
0,375
9
4
33
37
0,625
0,472
10
3
37
40
0,528
0,937
11
1
40
41
0,062
1,000
Рисунок В.6а - Блок-схема психоакустической модели 2.
Уровень III: вычисление порога маскирования
Рисунок В.6б - Блок-схема психоакустической модели 2.
Уровень III: вычисление порога маскирования (часть 1)
Рисунок В.6в - Блок-схема психоакустической модели 2.
Уровень III: вычисление порога маскирования (часть 2)
Рисунок В.6.г - Блок-схема психоакустической модели 2.
Уровень III: вычисление порога маскирования
для коротких блоков
10. Решение о переключении окна
Решение о переключении набора фильтров на короткие окна принимается на основе порога маскирования, вычисленного из оценки психоакустической энтропии (pe). Переключение происходит, если pe превышает значение 1800. Если это условие выполняется, запускается последовательность из стартового (block_type=1), короткого (block_type=2), короткого и стопового (block_type=3) блоков. На рисунке В.7 показаны возможные состояния логики переключения окон.
Рисунок В.7 - Граф переключения окон
В.1.5.3.3 Гибридный набор фильтров анализа
Субполосная фильтрация с помощью полифазного набора фильтров описывается в пункте В.1.3. Данные с выхода субполосного фильтра поступают на блок МДКП. В зависимости от данных на выходе психоакустической модели (переменные blocksplit_flag и block_type) выбирается тип окна (нормальное, стартовое, короткое, стоповое) и тип преобразования.
18 последовательных выходных значений одной гранулы и 18 выходных значений предыдущей гранулы объединяются в один блок из 36 отсчетов.
Тип блока "нормальный"
Тип блока "стартовый"
Тип блока "стоповый"
Тип блока "короткий"
Блок из 36 отсчетов делится на три перекрывающихся блока:
Каждый из трех блоков отдельно умножается на окно:
МДКП:
В следующем выражении n - количество взвешиваемых в окне отсчетов. Для коротких блоков n = 12, для длинных блоков n = 36. Аналитическое выражение для МДКП:
Анти-элайзинговая "бабочка" в кодере:
Процедура устранения элайзинга в кодере аналогична той, которая выполняется в декодере. "Бабочка", которая используется в кодере, показана на рисунке В.8. Коэффициенты cai и csi приведены в таблице Б.9.
Рисунок В.8 - "Бабочка" в кодере
В.1.5.3.4 Расчет среднего количества доступных битов
Среднее количество битов на гранулу определяется длиной кадра. Скорость передачи 64 кбит/с используется для примера. При скорости передачи 64 кбит/с при 48 000 отсчетах в секунду
(64 000 * (1152/48000) битов на кадр)/(2 гранулы на кадр) = 768 битов на гранулу.
Поскольку заголовок занимает 32 бита и служебная информация занимает 17 байтов (136 битов) в single_channel режиме, то среднее количество доступных битов для main_data для гранулы равно
mean_bits = 768 битов на гранулу - (32 + 136 битов на кадр)/(2 гранулы на кадр) = 684 бита на гранулу.
Резервуар битов может обеспечить дополнительные биты, которые могут использоваться для гранулы. Количество дополнительных битов определяется внутри цикла.
В.1.5.3.5 Квантование и кодирование коэффициентов преобразования
Коэффициенты преобразования квантуются и кодируются внутри двух вложенных итеративных циклов. Пункт В.1.5.4 содержит подробное описание этих итеративных циклов.
В.1.5.3.6 Дополнительные данные
Стандарт аудио предусматривает биты для включения и передачи дополнительных данных переменной длины в аудиопотоке. Наличие дополнительных данных сокращает количество битов, доступных для аудио, что может привести к ухудшению качества звука.
Присутствие в дополнительных данных последовательности битов, совпадающих с синхропоследовательностью, может препятствовать синхронизации. Эта проблема наиболее вероятна при использовании свободного формата.
В.1.5.3.7 Форматирование
Форматирование кодовых слов Хаффмана описывается ниже.
Слова кода Хаффмана следуют друг за другом от нижних до верхних частот. В итеративных циклах следующие переменные должны быть вычислены для использования при кодировании Хаффмана:
is(i), i = 0... 575
квантованные значения коэффициентов преобразования
table_select [region]
таблица кода Хаффмана, используемая для областей (region = 0, 1, 2)
region_adress1
определяет границу между областью 0 и 1
region_adress2
определяет границу между областью 1 и 2
max_value [region]
максимальное абсолютное значение квантованных данных в областях (region = 0, 1, 2)
Данные помещаются в поток битов согласно синтаксису кода Хаффмана.
Фактический блок кода Хаффмана для big_values части описывается на псевдоязыке высокого уровня:
for номер области от 0 до 2
if table_select для этой области равен 0, то все значения в области нулевые
else
if table_select для этой области > 15
используется ESC-таблица: поиск значения linbits, связанного с используемой таблицей
for i от начала до конца области, счет по парам
x = is(i), y = is(i +1)
if x > 14
linbitsx = x - 15, x = 15
end if
signx = sign(x), x = abs(x)
if y > 14
linbitsy = y - 15, y = 15
end if
signy = sign(y), y = abs(y)
искать кодовую комбинацию = hcod([x] [y]) в таблице table_select
записать hcod([x] [y]), начиная с крайнего левого бита, количество битов hlen([x] [y])
if x > 14
записать linbitsx в поток битов, количество битов linbits
end if
if x! = 0
записать signx в поток битов
end if
if y > 14
записать linbitsy в поток битов, количество битов linbits
end if
if y! = 0
записать signy в поток битов
end if
end do
else
ESC-комбинации не используются в этой области:
for i от начала области до конца области, счет по парам
x = is(i), y = is(i +1)
signx = sign(x), x = abs(x)
signy = sign(y), y = abs(y)
искать кодовую комбинацию = hcod([x] [y]) в таблице table_seletct
записать hcod([x] [y]), начиная с крайнего левого бита, количество битов hlen([x] [y])
if x! = 0
записать signx в поток битов
end if
if y! = 0
записать signy в поток битов
end if
end do
end if
end if
end for
Возможный вариант использования private_bits в качестве счетчика фреймов.
В.1.5.4 Итеративные циклы на Уровне III
В.1.5.4.1 Введение
Описание цикла Уровня III подразделяется на три уровня. Верхний уровень вызывают программой фреймового цикла. Эта подпрограмма вызывает подпрограмму "внешний итеративный цикл", который вызывает подпрограмму "внутренний итеративный цикл". Для каждого уровня ниже показана соответствующая блок-схема (Рисунки В.9а, В.9б, В.9в).
Внутри цикла входной вектор коэффициентов преобразования квантуется в итеративном процессе в соответствии с несколькими требованиями. Во внутреннем цикле квантуется входной вектор, и увеличивается размер шага квантователя до тех пор, пока выходной вектор не может быть кодирован с доступным числом битов. После завершения внутреннего цикла во внешнем цикле проверяются искажения в каждой полосе масштабных коэффициентов, и если допустимый уровень искажений превышен, то происходит усиление полосы масштабных коэффициентов и снова вызывается внутренний цикл.
На вход цикла Уровня III поступают:
а) вектор амплитуд коэффициентов преобразования xr (0... 575);
б) xmin(sb) - вектор допустимых уровней искажений в полосах масштабных коэффициентов:
xmin = ration(sb) * en (sb)lbw(sb);
в) window_switching_flag - вместе с mixed_block_flag и block_type определяет количество полос масштабных коэффициентов;
г) mean_bits - (биты, доступные для кодирования методом Хаффмана и кодирования масштабных коэффициентов);
д) more_bits - количество битов в дополнение к среднему числу битов, требуемых из психоакустической энтропии для гранулы:
more_bits = 3,1 * pe - среднее число битов.
На выходе цикла Уровня III имеются:
а) вектор квантованных значений ix (0... 575);
б) scalefac_l(sb) или scalefac_s(sb) в зависимости от window_switching_flag, block_type и mixed_block_flag;
в) global_gain (информация о размере шага квантователя):
global_gain = qquant + system_constant;
system_constant включает все операции масштабирования кодера и смещение для достижения корректного вывода процесса декодирования, описанного в основной части;
г) число неиспользованных битов, доступных для дальнейшего использования;
д) preflag (предкоррекция в циклах вкл/выкл);
е) информация о коде Хаффмана:
- big_values (число пар Хафмана, исключая "count1");
- count1table_select (таблица значений кода Хаффмана, по модулю <= 1 в верхней части спектра);
- table_select [0... 2] (таблица областей кода Хаффмана);
- region0_count, region1_count (используется для расчета границ между областями);
- part2_3_length.
В.1.5.4.2 Предварительные шаги
В.1.5.4.2.1 Сброс всех переменных цикла
Масштабные коэффициенты разделов scalefac_l[sb] или scalefac_s[sb] обнуляются.
Счетчик qquant размера шага квантователя сбрасывается в ноль.
Preflag сбрасывается в ноль.
Scalefac_scale сбрасывается в ноль.
Начальное значение quantanf устанавливается следующим образом:
quantanf = system_const * ln(sfm),
где sfm - мера пологости спектра, и quantanf зависит от программной реализации кодера.
Мера пологости спектра sfm
.
Значение system_const выбирается так, чтобы для всех сигналов первая итерация внутреннего цикла возвращала суммарное количество битов, превышающее требуемое. Этим обеспечивается получение после первого внутреннего цикла результата, при котором используется столько доступных битов, сколько возможно. Для продолжительности вычисления желательно минимизировать число итераций путем адаптирования значения quantanf к скорости передачи и сигнальной статистике.
В.1.5.4.2.2 Управление резервуаром битов
Если для кодирования одной гранулы требуется количество битов меньшее, чем mean_bits, то оставшиеся биты сохраняются в резервуаре. Если биты сохраняются для фрейма, значение main_data_end соответственно увеличивается (см. рисунок А.7а).
Количество битов, доступными для main_data (называемое max_bits), получается из фактической оценки порога (pe на основе психоакустического расчета), среднего количества битов (mean_bits) и фактического содержимого резервуара. Число байтов в резервуаре указывается main_data_end.
Правила для управления резервуаром битов:
- если количество байтов, доступных во внутреннем итеративном цикле, не используется для кодирования методом Хаффмана или другим main_data, то оно добавляется к резервуару битов;
- если резервуар битов более чем на 80% превышает максимальный допустимый объем резервуара, все байты, превышающие этот объем, делаются доступными для main_data (в дополнение к mean_bits);
- если more_bits больше чем 100 битов, то max(more_bits/8, 0,6 * main_data_end) байтов берутся из резервуара битов и делаются доступными для main_data (в дополнение к mean_bits);
- после того как вычисления внутри циклов были завершены, число байтов, не используемых для main_data, добавляется к резервуару битов;
- если после предыдущего шага число байтов в резервуаре превышает максимально допустимый объем, то к потоку добавляются биты стаффинга и содержимое резервуара битов соответственно корректируется.
В.1.5.4.2.3 Вычисление информации о выборе масштабных коэффициентов (scfsi)
В scfsi содержится информация о том, какие масштабные коэффициенты (сгруппированные в scfsi_bands) первой гранулы могут быть использованы для второй гранулы. Указанные масштабные коэффициенты не передаются и полученные за их счет биты могут использоваться для кодирования методом Хаффмана.
Чтобы определить использование scfsi, о каждой грануле должна храниться следующая информация:
а) тип блока;
б) суммарная энергия гранулы
,
где n - количество спектральных значений;
в) энергия каждой полосы масштабных коэффициентов
,
где lbl(sb) - номер первого коэффициента, принадлежащего полосе масштабного коэффициента sb;
bw(sb) - количество коэффициентов в полосе масштабного коэффициента sb;
г) допустимый уровень искажений для каждой полосы
xm(sb) = int{log2(xmin(i))},
xmin(sb) вычисляется с помощью психоакустической модели.
Масштабные коэффициенты первой гранулы передаются всегда. При кодировании второй гранулы сравнивается информация об этих двух гранулах. Существует четыре критерия возможности использования общего scfsi. Если один из четырех критериев не выполняется, scfsi отключается (scfsi устанавливается в 0 во всех scfsi_bands). Указанными критериями являются (индекс 0 соответствует первой грануле, индекс 1 - второй):
а) существование спектральных значений, отличных от нуля;
б) отсутствие в гранулах коротких блоков;
в) |en_tot0 - en_tot1| < en_totkrit;
г)
.
Если scfsi не отключается после проверки этих условий, то используются еще два критерия для каждого scfsi_band, причем, для включения scfsi (то есть установки 1 в этой scfsi_band) оба эти условия должны быть выполнены:
а)
б)
.
Константы (с индексом krit) должны быть выбраны так, чтобы scfsi включался в случае близости значений энергии/искажений.
Рекомендованные значения:
en_totkrit = 10,
en_difkrit = 100,
en (scfsi_band)krit = 10 для каждой scfsi_band,
xm (scfsi_band)krit = 10 для каждой scfsi_band.
В.1.5.4.3 Внешний итеративный цикл (цикл управления искажениями)
Внешний итеративный цикл управляет шумами квантования, которые возникают из-за квантования частотных линий в пределах внутреннего итеративного цикла. Шум окрашивается путем умножения линий в пределах полос масштабных коэффициентов на масштабные коэффициенты перед квантованием. Следующий псевдокод иллюстрирует этот процесс:
do для каждой полосы масштабных коэффициентов;
do от нижнего до верхнего индекса i полосы
           
end do
end do,
где scalefac - либо scalefac_1, либо scalefac_s.
На практике умножение выполняется с приращением путем увеличения масштабных коэффициентов, используемых в каждом цикле управления искажением. Это описывается ниже в В.1.5.4.3.5.
Цикл управления искажениями всегда начинается с scalefac_scale = 0. Если после нескольких итераций максимальная длина поле масштабных коэффициентов превышена, то scalefac_scale увеличивается до значения 1, тем самым достигается увеличение возможного динамического диапазона масштабных коэффициентов. В этом случае значения масштабных коэффициентов и частотных линий должны быть соответственно скорректированны.
В.1.5.4.3.1 Сохранение масштабных коэффициентов
Масштабные коэффициенты всех полос, scalefac_l(sb) или scalefac_s(sb), и размер шага квантователя qquant должны быть сохранены. Если вычисление внешнего цикла прервано без достижения надлежащего результата, эти значения вместе с квантованным спектром дают приближение и могут быть переданы.
В.1.5.4.3.2 Вызов внутреннего итеративного цикла
Для каждого внешнего итеративного цикла (цикл управления искажениями) вызывается внутренний итеративный цикл (цикл управления скоростью потока). Параметрами являются масштабированные значения в частотной области (выход гибридного набора фильтров) и количество битов, доступных в цикле управления скоростью. Результатом является количество используемых битов и квантованные частотные линии ix(i).
В.1.5.4.3.3 Расчет искажений в полосах масштабных коэффициентов
Для каждой полосы масштабных коэффициентов значение искажения рассчитывается по формуле
где lb1(sb) - номер коэффициента, соответствующего самой низкой частоте полосы; bw(sb) - количество коэффициентов в этой полосе.
В.1.5.4.3.4 Предкоррекция
Опция "предкоррекция" (включаемая установкой preflag в значение 1) обеспечивает возможность усиления верхней части спектра в соответствии с таблицам предкоррекции.
if (preflag==|) {
ifqstep:= 2(0,5*(|+scalefac_scale))
xmin(j) = xmint(j)*ifqstep(2*prefact(j))
for (i=lower limit of scalefactor band j; i <=upper limit of scalefactor band j; i++){
                  
}
}
Условие включения предкоррекции зависит от конкретной реализации. Например, предкоррекция может включаться, если во всех верхних четырех полосах масштабных коэффициентов искажения превышают порог после первого вызова внутреннего цикла.
Если кодируется вторая гранула и scfsi активно по крайней мере в одной scfsi_band, предкоррекция во второй грануле устанавливается такой же, как и для первой гранулы.
В.1.5.4.3.5 Усиление полос масштабных коэффициентов с искажениями, превышающими порог маскирования
Все спектральные значения полос масштабных коэффициентов, в которых искажения превышают допустимое значение, усиливаются множителем ifqstep. Значение ifqstep передается в scalefac_scale.
if ((xmin - xfsf) of scalefactor band j < 0){
xmint(j) = xmint(j) * ifqstep2
ifq(j) = ifq(j) + 1
for (i=lower limit of scalefactor band; i <=upper limit of scalefactor band; i++){
xr(i) = xr(i) * ifqstep
}
}
Если кодируется вторая гранула и scfsi активно по крайней мере в одной scfsi_band, должны быть сделаны следующие шаги:
а) ifqstep должен быть установлен как и в первой грануле;
б) если это первая итерация, то масштабные коэффициенты полос, для которых включен scfsi, должны быть взяты из первой гранулы. Соответствующие спектральные значения должны быть усилены:
if ((scfsi according to scalefactor band j == 1){
ifq(j) = ifq(j)first granule
for (i=lower limit of scalefactor band; i <=upper limit of scalefactor band; i++){
xr(i) = xr(i) * ifqstep scalefact(j)
}
}
где scalefac либо scalefac_1(), либо scalefac_s();
в) если это не первая итерация, полосы, для которых scfsi включено, не должны быть усилены.
В.1.5.4.3.6 Условия для завершения обработки циклов
Обычно обработка циклов завершается, если больше нет ни одной полосы с искажениями, превышающими порог. Однако это не всегда достижимо. Тогда используют другие условия, позволяющие завершить внешний цикл, если:
а) все полосы масштабных коэффициентов уже усилены;
б) усиление по крайней мере в одной полосе превышает верхний предел, который определяется форматом передачи масштабных коэффициентов.
Верхним пределом являются масштабный коэффициент 15 для полос с 0 по 10 и масштабный коэффициент 7 для полос с 11 по 20. В случае block_type == 2 и mixed_block_flag == 0 верхний предел равен 15 для полос с 0 по 18. В случае block_type == 2 и mixed_block_flag == 1 верхний предел равен 15 для полос с 0 по 17. Для остальных верхний предел масштабных коэффициентов равен 7.
Выполнение цикла прекращается, и выходом является scalefac_1 (sb) или scalefac_s (sb) вывод. В случае реализации в реальном времени может присутствовать третье условие, которое завершает циклы при нехватке вычислительного времени.
В.1.5.4.4 Внутренний итеративный цикл (цикл управления скоростью)
Во внутреннем итеративном цикле выполняется квантование данных частотной области, которые затем подготавливаются к форматированию. Здесь происходит выбор таблицы, разделение диапазона big_values на области и выбор шага квантователя.
В.1.5.4.4.1 Квантование
Квантование вектора спектральных значений выполняется согласно уравнению:
.
В.1.5.4.4.2 Проверка максимума квантованных значений
Существует предел по максимально допустимому квантованному значению. Этот предел устанавливается для ограничения размера таблицы при ее использовании для переквантования частотных линий. Предел задается в виде допустимых значений идентификатора длины linbits значений, отмеченных с помощью кода ESC. Поэтому перед подсчетом битов шаг квантователя увеличивается
qquanl = qquant + 1,
пока максимум квантованных значений находится в пределах диапазона самой большой кодовой таблицы Хаффмана.
В.1.5.4.4.3 Вычисление количества нулевых значений
Значению rzero присваивается количество пар спектральных коэффициентов в верхней части спектра, после квантования оказавшихся равными нулю.
В.1.5.4.4.4 Вычисление количества значений меньших или равных 1
Значению count1 присваивается количество четверок спектральных коэффициентов, после квантования оказавшихся равными нулю или единице, следующих за парами нулей rzero.
В.1.5.4.4.5 Подсчет битов, необходимых для кодирования значений меньших или равных 1
Для кодирования одной из четверок count1 используется одно слово кода Хаффмана. Имеется два различных кодовых словаря Хаффмана с соответствующими таблицами длины кода (таблицы Б.7). Количество битов, необходимых для кодирования всех count1 четверок, определяется формулой:
bitsum_count1 = min (bitsum_table0, bitsum_table1),
где count1table_0 используется, чтобы указать на таблицу A
и count1table_1 используется, чтобы указать на таблицу B
Count1table_0, так же как и count1table_1, должна включать биты, необходимые для кодирования знаковых битов.
Информация о том, какая таблица используется, передается в count1table_select, которая равна 0 для таблицы A или 1 для таблицы B.
В.1.5.4.4.6 Вызов подпрограммы SUBDIVIDE
Пары квантованных значений, не учтенные в count1 или rzero, называются bigvalues. Подпрограмма SUBDIVIDE разбивает полосы, соответствующие этим значениям на три группы. Последняя, обычно неполная, считается полной. Количество полос в первой и второй областях содержится в (region0_count+1) и (region1_count+1) соответственно. Число полос в третьей области может быть вычислено из bigvalues. Стратегия разделения зависит от реализации. Для примера, самое простое решение - треть всех полос масштабных коэффициентов отнести к первой области и четверть - к последней.
Подразделение блоков выполняется аналогично, однако в этом случае есть только две подобласти. Regionl_count устанавливается в значение по умолчанию. Это значение равно 8 в случае split_point=0 и 9 в случае split_point=I. Оба значения указывают на ту же самую абсолютную частоту.
В.1.5.4.4.7 Вычисление кодового словаря для каждой подобласти
Имеется 32 различные кодовых таблицы Хаффмана, которые доступны для кодирования пар квантованных значений. Они отличаются друг от друга максимальным значением, которое может быть кодировано и статистикой сигнала, для которой они оптимизированы. В таблицах содержатся только коды со значениями меньше 16. Для значений >= 16 используются две таблицы, где максимальное значение 15 является символом ESC. В этом случае значение 15 кодируется в дополнительном слове с использованием линейного ИКМ с длиной слова linbits.
Простой способ выбора таблицы состоит в том, чтобы использовать максимум квантованных значений подобласти. Таблицы одинакового размера оптимизируются для различной сигнальной статистики.
В.1.5.4.4.8 Подсчет битов, необходимых для кодирования значений в субобластях
Количество битов, необходимых для кодирования квантованных значений субобласти, определяется по формуле:
где np(j) - число пар в подобласти;
fe(j) - номер первого квантованного значения в подобласти;
bitz - таблица с длиной кода Хаффмана;
s(...) - ступенчатая функция:
если x >= 0
s(x) = 1;
если x < 0
s(x) = 0.
Следует обратить внимание на то, что в таблицы длины кода Хаффмана должно быть включено количество битов, необходимое для кодирования знаковых битов.
Циклы итерации Уровня III показаны на рисунках В.9а, В.9б, В.9в.
Рисунок В.9а - Цикл итерации. Уровень III.
Рисунок В.9б - Внешний цикл итерации. Уровень III
Рисунок В.9в - Внутренний цикл итерации. Уровень III
Приложение Г
(обязательное)
ПСИХОАКУСТИЧЕСКИЕ МОДЕЛИ
Г.1 Психоакустическая модель 1
Нет никакого принципиального различия в использовании психоакустической модели 1 в Уровне I или II.
Уровень I: процедура распределения битов выполняется для каждого блока из 12 субполосных или 384 входных ИКМ-отсчетов.
Уровень II: процедура распределения битов выполняется для трех блоков с общим количеством субполосных отсчетов, равным 36, соответствующих 3 * 384 (1152) входным ИКМ-отсчетам.
Распределение битов между 32 субполосами вычисляется на основе отношения сигнал-маска в этих субполосах. Поэтому для каждой субполосы необходимо определить максимальный уровень сигнала и минимальное значение порога маскирования. Минимальное значение порога маскирования определяется из БПФ входного ИКМ сигнала, сопровождаемого психоакустическим расчетом.
БПФ параллельно с субполосной фильтрацией компенсирует слабую частотную селективность набора полосовых фильтров в нижней части звукового диапазона. Этот метод обеспечивает как приемлемое временное разрешение для кодирования звукового сигнала (набор полифазных фильтров с оптимизированным окном для минимального пре-эха), так и приемлемое частотное разрешение для вычисления порогов маскирования. Определяются частоты и уровни интерференционных искажений. Это необходимо для того, чтобы вычислить минимальную скорость передачи для тех субполос, которые нуждаются в дополнительных битах, чтобы устранить заметность интерференционных искажений в декодере. Дополнительные сложности, вызванные необходимостью получения улучшенной разрешающей способности по частоте, необходимы только в кодере и не вызывают дополнительной задержки в кодере или усложнения его алгоритма.
Вычисление отношения сигнал-маска состоит из девяти шагов:
1 вычисление БПФ для частотного преобразования;
2 определение уровня звукового давления в каждой субполосе.
3 определение абсолютного порога слышимости;
4 обнаружение тональных (близких к синусоиде) и нетональных (близких к шуму) компонентов аудиосигнала;
5 прореживание маскеров в целях оставить только значащие;
6 вычисление индивидуальных порогов маскирования;
7 вычисление глобального порога маскирования;
8 определение минимального порога маскирования в каждой субполосе;
9 вычисление отношения сигнал-маска в каждой субполосе.
Предполагается, что частота дискретизации равна 48 кГц. Для двух других частот дискретизации все указанные значения частот должны быть пересчитаны соответствующим образом.
Шаг 1. Вычисления для частотного преобразования БПФ
Порог маскирования определяется путем оценки спектральной плотности мощности, которая вычисляется путем БПФ с 512 отсчетами для Уровня I или с 1024 отсчетами для Уровня II. На вход БПФ поступают непосредственно отсчеты входного ИКМ сигнала, умноженные на оконную функцию Ханна.
Для согласования по времени распределения битов и соответствующих субполосных отсчетов ИКМ отсчеты, поступающие на вход БПФ, должны быть задержаны.
1. Задержка набора субполосных фильтров анализа равна 256 отсчетам, что соответствует 5,3 мс на частоте дискретизации 48 кГц. Сдвиг окна на 256 отсчетов необходим для компенсации задержки набора субполосных фильтров анализа.
2. Окно Ханна должно быть выровнено относительно субполосных отсчетов кадра. Для Уровня I это приводит к дополнительному сдвигу окна на 64 отсчета. Для Уровня II требуется дополнительный сдвиг окна на минус 64 отсчета.
Технические данные БПФ:
Уровень I
Уровень II
размер преобразования
512 отсчетов
1024 отсчета
размер окна при Fs = 48 кГц
10,67 мс
21,3 мс
размер окна при Fs = 44,1 кГц
11,6 мс
23,2 мс
размер окна при Fs = 32 кГц
16 мс
32 мс
разрешающая способность по частоте
sampling_frequency/512
sampling_frequency/1024
- окно Ханна h(i)
- спектральная плотность мощности X(k)
,
где s(l) - входной сигнал.
Нормализация к относительному уровню звукового давления 96 дБ должна быть такой, чтобы максимальное значение соответствовало 96 дБ.
Шаг 2. Определение уровня звукового давления в каждой полосе
Уровень звукового давления Lsb (дБ) в субполосе n вычисляется по формуле
Lsb(n) = max[X(k), 20 * lg(scfmax(n) * 32768) - 10],
где X(k) - уровень звукового давления спектральной линии с номером k, полученной с помощью БПФ и соответствующей максимальной амплитуде в субполосе n.
Переменная scfmax(n) является одним масштабным коэффициентом на Уровне I или максимумом из трех масштабных коэффициентов на Уровне II для субполосы n в пределах кадра. Наличие в выражении слагаемого -10 дБ корректирует различие между уровнем RMS и пиковым значением. Уровень звукового давления Lsb(n) вычисляется для каждой субполосы n.
Следующий альтернативный метод вычисления Lsb(n) рассчитан для лучшей производительности кодера, однако этот метод не был подвергнут формальному тесту качества звука.
Уровень звукового давления Lsb, дБ, в субполосе n вычисляется по формуле
Lsb(n) = max[Xspl(n), 20lg(scfmax(n)32768) - 10],
где
,
где Xspl(n) - уровень звукового давления в полосе n.
Шаг 3. Учет абсолютного порога слышимости
Значения абсолютного порога слышимости LTq(k) приведены в таблицах Г.1а, Г.1б, Г.1в для Уровня I и Г.1г, Г.1д, Г.1е для Уровня II. Значения зависят от частоты дискретизации входного ИКМ сигнала и указаны для каждой спектральной линии. В зависимости от скорости передачи для абсолютного порога слышимости используется смещение, которое составляет минус 12 дБ для скоростей передачи >= 96 кбит/с и 0 дБ для скоростей передачи < 96 кбит/с на канал.
Шаг 4. Обнаружение тональных и нетональных компонентов аудиосигнала
Вид маскера влияет на порог маскирования. Поэтому следует различать тональные и нетональные маскеры. Для расчета глобального порога маскирования в спектре БПФ необходимо обнаружить тональные и нетональные маскеры.
Этот шаг начинается с определения локальных максимумов, из которых затем выделяются тональные маскеры (синусоиды) и вычисляются интенсивности нетональных маскеров в пределах критической полосы. Границы критических полос даны в таблицах Г.2а, Г.2б, Г.2в для Уровня I и Г.2г, Г.2д, Г.2е для Уровня II.
Ширина критических полос меняется в зависимости от центральной частоты с шириной примерно 0,1 кГц на НЧ и с примерно 4 кГц на ВЧ. Из психоакустических экспериментов известно, что у слуха разрешающая способность по частоте на НЧ лучше, чем в более высокой области. Чтобы определить, является ли локальный максимум тональным маскером, вокруг максимума исследуется частотный диапазон df.
Частотные диапазоны df.
при частоте дискретизации 32 кГц
Уровень I
df = 125 Гц
0 кГц < f <= 4,0 кГц
df = 187,5 Гц
4,0 кГц < f <= 8,0 кГц
df = 375 Гц
8,0 кГц < f <= 15,0 кГц
Уровень II
df = 62,5 Гц
0 кГц < f <= 3,0 кГц
df = 93,75 Гц
3,0 кГц < f <= 6,0 кГц
df = 187,5 Гц
6,0 кГц < f <= 12,0 кГц
df = 375 Гц
12,0 кГц < f <= 24,0 кГц
при частоте дискретизации 44,1 кГц
Уровень I
df = 172,266 Гц
0 кГц < f <= 5,512 кГц
df = 281,25 Гц
5,512 кГц < f <= 11,024 кГц
df = 562,50 Гц
11,024 кГц < f <= 19,982 кГц
Уровень II
df = 86,133 Гц
0 кГц < f <= 2,756 кГц
df = 129,199 Гц
2,756 кГц < f <= 5,512 кГц
df = 258,398 Гц
5,512 кГц < f <= 11,024 кГц
df = 516,797 Гц
11,024 кГц < f <= 19,982 кГц
при частоте дискретизации 48 кГц
Уровень I
df = 187,5 Гц
0 кГц < f <= 6,0 кГц
df = 281,25 Гц
6,0 кГц < f <= 12,0 кГц
df = 562,50 Гц
12,0 кГц < f <= 24,0 кГц
Уровень II
df = 93,750 Гц
0 кГц < f <= 3,0 кГц
df = 140,63 Гц
3,0 кГц < f <= 6,0 кГц
df = 281,25 Гц
6,0 кГц < f <= 12,0 кГц
df = 562,50 Гц
12,0 кГц < f <= 24,0 кГц
Для создания списка спектральных линий X(k), являющихся тональными или нетональными маскерами, выполняются следующие три операции.
1 Маркировка локальных максимумов.
Спектральная линия X(k) маркируется как локальный максимум, если
X(k) > X(k - 1) и X(k) >= X(k + 1).
2 Создание списка тональных маскеров и вычисление уровня звукового давления.
Локальный максимум помещается в список тональных маскеров, если
X(k) - X(k + j) >= 7 дБ,
где j выбирается согласно
Уровень I
j = -2, +2
для 2 < k < 63
j = -3, -2, -2, +3
для 63 <= k < 127
j = -6,..., -2, +2, ..., +6
для 127 <= k <= 250
Уровень II
j = -2, +2
для 2 < k < 63
j = -3, -2, +2, +3
для 63 <= k < 127
j = -6,..., -2, +2,..., +6
для 127 <= k < 255
j = -12,..., -2, +2, ..., +12
для 255 <= k <= 500
Если X(k) является тональным маскером, то указываются следующие параметры:
- номер спектральной линии k;
- уровень звукового давления
;
- тональный флаг.
Затем все линии спектра в пределах исследованного частотного диапазона устанавливаются в дБ.
3 Создание списка нетональных маскеров и вычисление энергии.
Нетональные (шумовые) маскеры вычисляются из оставшихся спектральных линий. Чтобы вычислить нетональные маскеры из этих спектральных линий X(k) с помощью таблиц Г.2а, Г.2б, Г.2в для Уровня I и Г.2г, Г.2д, Г.2е для Уровня II определяются критические полосы z(k). На Уровне I 23 критических полосы используются для частоты дискретизации 32 кГц, 24 критических полосы - для 44,1 кГц и 25 критических полос - для 48 кГц. На Уровне II 24 критических полосы используются для частоты дискретизации 32 кГц и 26 критических полос используются для частот дискретизации 44,1 кГц и 48 кГц. В пределах каждой критической полосы энергии спектральных линий (оставшихся после того, как тональные маскеры были обнулеваны) суммируются для получения уровня звукового давления нетонального маскера Xnm(k), соответствующего рассматриваемой критической полосе.
Указываются следующие параметры:
- номер спектральной линии k, ближайшей к геометрическому среднему критической полосы;
- уровень звукового давления Xnm(k), дБ;
- нетональный флаг.
Шаг 5. Прореживание маскеров в целях оставить только значащие.
Прореживание является процедурой сокращения количества маскеров, используемых для вычисления глобального порога маскирования.
1. Тональные Xtm(k) или нетональные Xnm(k) маскеры используются для вычисления порога маскирования, только если:
Xtm(k) >= LTq(k) или Xnm(k) >= LTq(k).
В этом выражении LTq(k) является абсолютным порогом слышимости на частоте k. Эти значения даются в таблицах Г.1а, Г.1б, Г.1в для Уровня I и Г.1г, Г.1д, Г.1е для Уровня II.
2. Прореживание двух и более тональных маскеров в пределах 0,5 Барк: остается только маскер с наибольшим значением энергии, остальные маскеры удаляются из списка тональных маскеров. Для этой операции используется скользящее окно шириной 0,5 Барк.
Индекс j используется для указания на соответствующие тональные или нетональные маскеры объединенного прореженного списка.
Шаг 6. Вычисление индивидуальных порогов маскирования
Из исходных N/2 спектральных линий с индексом k только подмножество линий с индексом i используется для расчета глобального порога маскирования. Используемые линии даны в таблицах Г.1а, Г.1б, Г.1в для Уровня I и в таблицах Г.1г, Г.1д, Г.1е для Уровня II.
Уровень I
Из спектральных линий, соответствующих в частотной области первым шести субполосам, используются все линии. В области частот, соответствующей следующим шести субполосам, рассматривается каждая вторая спектральная линия. Наконец, в случае частот дискретизации 48 кГц и 44,1 кГц в области частот, соответствующей оставшимся субполосам, рассматривается каждая четвертая спектральная линия вплоть до 20 кГц. В случае частоты дискретизации 32 кГц в области частот, соответствующей оставшимся субполосам, рассматривается каждая четвертая спектральная линия вплоть до 15 кГц (см. также таблицы Г.1а, Г.1б, Г.1в для Уровня I).
Уровень II
Из спектральных линий, соответствующих в частотной области первым трем субполосам, используются все линии. В области частот, соответствующей следующим трем субполосам, рассматривается каждая вторая спектральная линия. В области частот, соответствующей следующим шести субполосам, рассматривается каждая четвертая спектральная линия. Наконец, в случае частот дискретизации 48 кГц и 44,1 кГц в области частот, соответствующей оставшимся субполосам, рассматривается каждая восьмая спектральная линия вплоть до 20 кГц. В случае частоты дискретизации 32 кГц в области частот, соответствующей оставшимся субполосам, рассматривается каждая восьмая спектральная линия вплоть до 15 кГц (см. также таблицы Г.1г, Г.1д, Г.1е для Уровня II).
Число линий n различно в зависимости от частот дискретизации и уровней:
частота дискретизации 32 кГц
n = 108 для Уровня I, n = 132 для Уровня II
частота дискретизации 44,1 кГц
n = 106 для Уровня I, n = 130 для Уровня II
частота дискретизации 48 кГц
n = 102 для Уровня I, n = 126 для Уровня II
Каждому тональному и нетональному маскеру присваивается ближайшее к спектральной линии X(k) значение индекса i, заданного в таблицах Г.1а, Г.1б, Г.1в для Уровня I и в таблицах Г.1г, Г.1д, Г.1е для Уровня II.
Индивидуальные пороги маскирования тональных и нетональных маскеров задаются следующим выражением:
LTtm[z(j),z(i)] = Xtm[z(j)] + avtm[z(j)] + vf[z(j),z(i)],
LTnm[z(j),z(i)] = Xnm[z(j)] + avnm[z(j)] + vf[z(j),z(i)],
где LTtm и LTnm - индивидуальные пороги маскирования в критической полосе z Барк маскера частоты zm, Барк (значения в дБ могут быть либо положительными, либо отрицательными);
Xtm[z(j)] - уровень звукового давления маскера с индексом j в соответствующей критической полосе z(j);
av - индекс маскирования;
vf - функция маскирования маскера Xtm[z(j)].
Индекс маскирования av различен для тональных и нетональных маскеров (avtm и avnm).
Для тональных маскеров
avtm = -1,525 - 0,275z(j) - 4,5 дБ,
для нетональных маскеров
avnm = -1,525 - 0,175z(j) - 0,5 дБ.
Функция маскирования vf имеет неодинаковые спады, которые зависят от расстояния в Барках до маскера:
dz = z(i) - z(j),
где i - номер спектральной линии, для которой вычисляется функция маскирования;
j - номер спектральной линии, соответствующей маскеру.
Частоты в Барках для z(j) и z(i) даны в таблицах Г.1а, Г.1б, Г.1в для Уровня I и в таблицах Г.1г, Г.1д, Г.1е для Уровня II.
Функция маскирования (в дБ), одинаковая для тональных и нетональных маскеров, задается выражениями:
vf = 17 (dz + 1) - (0,4X[z(j)] + 6)
для -3 <= dz < -1 Барк,
vf = (0,4X[z(j)] + 6) * dz
для -1 <= dz < 0 Барк,
vf = -17dz
для -0 <= dz < 1 Барк,
vf = - (dz - 1) * (17 - 0,15 * X[z(j)]) - 17
для 1 <= dz < 8 Барк,
где X[z(j)] - уровень звукового давления j-го маскера, в дБ.
По причинам сложности реализации маскирование больше не учитывается (LTtm и LTnm устанавливаются в вне этого диапазона), если dz меньше минус 3 Барк, или dz больше или равно 8 Барк.
Шаг 7. Вычисление глобального порога маскирования LTg.
Глобальный порог маскирования LTg(i) для i-й спектральной линии складывается из верхних и нижних спадов индивидуальных порогов маскирования каждого из j тональных и нетональных маскеров и из абсолютного порога слышимости LTg(i). Это также задано в таблицах Г.1а, Г.1б, Г.1в для Уровня I и в таблицах Г.1г, Г.1д, Г.1е для Уровня II. Глобальный порог маскирования находится путем суммирования значений энергий, соответствующих индивидуальным порогам маскирования и абсолютному порогу слышимости:
.
Общее количество тональных маскеров равно m, общее количество нетональных маскеров равно n. Для заданного i диапазон j может быть уменьшен до маскеров, находящихся в пределах от -8 до +3 Барк от i. За пределами этого диапазона LTtm и LTnm равны .
Шаг 8. Определение минимального порога маскирования в каждой субполосе.
Минимальный уровень маскирования LTmin(n) в субполосе n определяется следующим выражением:
,
где f(i) - частота i-й спектральной линии.
Значения f(i) сведены в таблицы Г.1а, Г.1б, Г.1в для Уровня I и в таблицы Г.1г, Г.1д, Г.1е для Уровня II. Минимальный уровень маскирования LTmin(n) вычисляется для каждой субполосы.
Шаг 9. Вычисление отношения сигнал-маска.
Отношение сигнал-маска (дБ) рассчитывается для каждой субполосы n по формуле
SMRsb(n) = Lsb(n) - LTmin(n).
Таблица Г.1а
Частота и значения абсолютного порога слышимости
для частоты дискретизации 32 кГц. Уровень I
Номер, i
Частота
Абсолютный порог, дБ
Гц
Барк
1
62,50
0,617
33,44
2
125,00
1,232
19,20
3
187,50
1,842
13,87
4
250,00
2,445
11,01
5
312,50
3,037
9,20
6
375,00
3,618
7,94
7
437,50
4,185
7,00
8
500,00
4,736
6,28
9
562,50
5,272
5,70
10
625,00
5,789
5,21
11
687,50
6,289
4,80
12
750,00
6,770
4,45
13
812,50
7,233
4,14
14
875,00
7,677
3,86
15
937,50
8,103
3,61
16
1 000,00
8,511
3,37
17
1 062,50
8,901
3,15
18
1 125,00
9,275
2,93
19
1 187,50
9,632
2,73
20
1 250,00
9,974
2,53
21
1 312,50
10,301
2,32
22
1 375,00
10,614
2,12
23
1 437,50
10,913
1,92
24
1 500,00
11,199
1,71
25
1 562,50
11,474
1,49
26
1 625,00
11,736
1,27
27
1 687,50
11,988
1,04
28
1 750,00
12,230
0,80
29
1 812,50
12,461
0,55
30
1 875,00
12,684
0,29
31
1 937,50
12,898
0,02
32
2 000,00
13,104
-0,25
33
2 062,50
13,302
-0,54
34
2 125,00
13,493
-0,83
35
2 187,50
13,678
-1,12
36
2 250,00
13,855
-1,43
37
2 312,50
14,027
-1,73
38
2 375,00
14,193
-2,04
39
2 437,50
14,354
-2,34
40
2 500,00
14,509
-2,64
41
2 562,50
14,660
-2,93
42
2 625,00
14,807
-3,22
43
2 687,50
14,949
-3,49
44
2 750,00
15,087
-3,74
45
2 812,50
15,221
-3,98
46
2 875,00
15,351
-4,20
47
2 937,50
15,478
-4,40
48
3 000,00
15,602
-4,57
49
3 125,00
15,841
-4,82
50
3 250,00
16,069
-4,96
51
3 375,00
16,287
-4,97
52
3 500,00
16,496
-4,86
53
3 625,00
16,697
-4,63
54
3 750,00
16,891
-4,29
55
3 875,00
17,078
-3,87
56
4 000,00
17,259
-3,39
57
4 125,00
17,434
-2,86
58
4 250,00
17,605
-2,31
59
4 375,00
17,770
-1,77
60
4 500,00
17,932
-1,24
61
4 625,00
18,089
-0,74
62
4 750,00
18,242
-0,29
63
4 875,00
18,392
0,12
64
5 000,00
18,539
0,48
65
5 125,00
18,682
0,79
66
5 250,00
18,823
1,06
67
5 375,00
18,960
1,29
68
5 500,00
19,095
1,49
69
5 625,00
19,226
1,66
70
5 750,00
19,356
1,81
71
5 875,00
19,482
1,95
72
6 000,00
19,606
2,08
73
6 250,00
19,847
2,33
74
6 500,00
20,079
2,59
75
6 750,00
20,300
2,86
76
7 000,00
20,513
3,17
77
7 250,00
20,717
3,51
78
7 500,00
20,912
3,89
79
7 750,00
21,098
4,31
80
8 000,00
21,275
4,79
81
8 250,00
21,445
5,31
82
8 500,00
21,606
5,88
83
8 750,00
21,760
6,50
84
9 000,00
21,906
7,19
85
9 250,00
22,046
7,93
86
9 500,00
22,178
8,75
87
9 750,00
22,304
9,63
88
10 000,00
22,424
10,58
89
10 250,00
22,538
11,60
90
10 500,00
22,646
12,71
91
10 750,00
22,749
13,90
92
11 000,00
22,847
15,18
93
11 250,00
22,941
16,54
94
11 500,00
23,030
18,01
95
11 750,00
23,114
19,57
96
12 000,00
23,195
21,23
97
12 250,00
23,272
23,01
98
12 500,00
23,345
24,90
99
12 750,00
23,415
26,90
100
13 000,00
23,482
29,03
101
13 250,00
23,546
31,28
102
13 500,00
23,607
33,67
103
13 750,00
23,666
36,19
104
14 000,00
23,722
38,86
105
14 250,00
23,775
41,67
106
14 500,00
23,827
44,63
107
14 750,00
23,876
47,76
108
15 000,00
23,923
51,04
Таблица Г.1б
Частота и значения абсолютного порога слышимости
для частоты дискретизации 44,1 кГц. Уровень I
Номер, i
Частота
Абсолютный порог, дБ
Гц
Барк
1
86,13
0,850
25,87
2
172,27
1,694
14,85
3
258,40
2,525
10,72
4
344,53
3,337
8,50
5
430,66
4,124
7,10
6
516,80
4,882
6,11
7
602,93
5,608
5,37
8
689,06
6,301
4,79
9
775,20
6,959
4,32
10
861,33
7,581
3,92
11
947,46
8,169
3,57
12
1 033,59
8,723
3,25
13
1 119,73
9,244
2,95
14
1 205,86
9,734
2,67
15
1 291,99
10,195
2,39
16
1 378,13
10,629
2,11
17
1 464,26
11,037
1,83
18
1 550,39
11,421
1,53
19
1 636,52
11,783
1,23
20
1 722,66
12,125
0,90
21
1 808,79
12,448
0,56
22
1 894,92
12,753
0,21
23
1 981,05
13,042
-0,17
24
2 067,19
13,317
-0,56
25
2 153,32
13,578
-0,96
26
2 239,45
13,826
-1,38
27
2 325,59
14,062
-1,79
28
2 411,72
14,288
-2,21
29
2 497,85
14,504
-2,63
30
2 583,98
14,711
-3,03
31
2 670,12
14,909
-3,41
32
2 756,25
15,100
-3,77
33
2 842,38
15,284
-4,09
34
2 928,52
15,460
-4,37
35
3 014,65
15,631
-4,60
36
3 100,78
15,796
-4,78
37
3 186,91
15,955
-4,91
38
3 273,05
16,110
-4,97
39
3 359,18
16,260
-4,98
40
3 445,31
16,406
-4,92
41
3 531,45
16,547
-4,81
42
3 617,58
16,685
-4,65
43
3 703,71
16,820
-4,43
44
3 789,84
16,951
-4,17
45
3 875,98
17,079
-3,87
45
3 962,11
17,205
-3,54
47
4 048,24
17,327
-3,19
48
4 134,38
17,447
-2,82
49
4 306,64
17,680
-2,06
50
4 478,91
17,905
-1,32
51
4651,17
18,121
-0,64
52
4 823,44
18,331
-0,04
53
4 995,70
18,534
0,47
54
5 167,97
18,731
0,89
55
5 340,23
18,922
1,23
56
5 512,50
19,108
1,51
57
5 684,77
19,289
1,74
58
5 857,03
19,464
1,93
59
6 029,30
19,635
2,11
60
6 201,56
19,801
2,28
61
6 373,83
19,963
2,46
62
6 546,09
20,120
2,63
63
6 718,36
20,273
2,82
64
6 890,63
20,421
3,03
65
7 062,89
20,565
3,25
66
7 235,16
20,705
3,49
67
7 407,42
20,840
3,74
68
7 579,69
20,972
4,02
69
7 751,95
21,099
4,32
70
7 924,22
21,222
4,64
71
8 096,48
21,342
4,98
72
8 268,75
21,457
5,35
73
8 613,28
21,677
6,15
74
8 957,81
21,882
7,07
75
9 302,34
22,074
8,10
76
9 646,88
22,253
9,25
77
9 991,41
22,420
10,54
78
10 335,94
22,576
11,97
79
10 680,47
22,721
13,56
80
11 025,00
22,857
15,31
81
11 369,53
22,984
17,23
82
11 714,06
23,102
19,34
83
12 058,59
23,213
21,64
84
12 403,13
23,317
24,15
85
12 747,66
23,415
26,88
86
13 092,19
23,506
29,84
87
13 436,72
23,592
33,05
88
13 781,25
23,673
36,52
89
14 125,78
23,749
40,25
90
14 470,31
23,821
44,27
91
14 814,84
23,888
48,59
92
15 159,38
23,952
53,22
93
15 503,91
24,013
58,18
94
15 848,44
24,070
63,49
95
16 192,97
24,125
68,00
96
16 537,50
24,176
68,00
97
16 882,03
24,225
68,00
98
17 226,56
24,271
68,00
99
17 571,09
24,316
68,00
100
17 915,63
24,358
68,00
101
18 260,16
24,398
68,00
102
18 604,69
24,436
68,00
103
18 949,22
24,473
68,00
104
19 293,75
24,508
68,00
105
19 638,28
24,542
68,00
106
19 982,81
24,574
68,00
Таблица Г.1в
Частота и значения абсолютного порога слышимости
для частоты дискретизации 48 кГц. Уровень I
Номер, i
Частота
Абсолютный порог, дБ
Гц
Барк
1
93,75
0,925
24,17
2
187,50
1,842
13,87
3
281,25
2,742
10,01
4
375,00
3,618
7,94
5
468,75
4,463
6,62
6
562,50
5,272
5,70
7
656,25
6,041
5,00
8
750,00
6,770
4,45
9
843,75
7,457
4,00
10
937,50
8,103
3,61
11
1 031,25
8,708
3,26
12
1 125,00
9,275
2,93
13
1 218,75
9,805
2,63
14
1 312,50
10,301
2,32
15
1 406,25
10,765
2,02
16
1 500,00
11,199
1,71
17
1 593,75
11,606
1,38
18
1 687,50
11,988
1,04
19
1 781,25
12,347
0,67
20
1 875,00
12,684
0,29
21
1 968,75
13,002
-0,11
22
2 062,50
13,302
-0,54
23
2 156,25
13,586
-0,97
24
2 250,00
13,855
-1,43
25
2 343,75
14,111
-1,88
26
2 437,50
14,354
-2,34
27
2 531,25
14,585
-2,79
28
2 625,00
14,807
-3,22
29
2 718,75
15,018
-3,62
30
2 812,50
15,221
-3,98
31
2 906,25
15,415
-4,30
32
3 000,00
15,602
-4,57
33
3 093,75
15,783
-4,77
34
3 187,50
15,956
-4,91
35
3 281,25
16,124
-4,98
36
3 375,00
16,287
-4,97
37
3 468,75
16,445
-4,90
38
3 562,50
16,598
-4,76
39
3 656,25
16,746
-4,55
40
3 750,00
16,891
-4,29
41
3 843,75
17,032
-3,99
42
3 937,50
17,169
-3,64
43
4 031,25
17,303
-3,26
44
4 125,00
17,434
-2,86
45
4 218,75
17,563
-2,45
46
4 312,50
17,688
-2,04
47
4 406,25
17,811
-1,63
48
4 500,00
17,932
-1,24
49
4 687,50
18,166
-0,51
50
4 875,00
18,392
0,12
51
5 062,50
18,611
0,64
52
5 250,00
18,823
1,06
53
5 437,50
19,028
1,39
54
5 625,00
19,226
1,66
55
5 812,50
19,419
1,88
56
6 000,00
19,606
2,08
57
6 187,50
19,788
2,27
58
6 375,00
19,964
2,46
59
6 562,50
20,135
2,65
60
6 750,00
20,300
2,86
61
6 937,50
20,461
3,09
62
7 125,00
20,616
3,33
63
7 312,50
20,766
3,60
64
7 500,00
20,912
3,89
65
7 687,50
21,052
4,20
66
7 875,00
21,188
4,54
67
8 062,50
21,318
4,91
68
8 250,00
21,445
5,31
69
8 437,50
21,567
5,73
70
8 625,00
21,684
6,18
71
8 812,50
21,797
6,67
72
9 000,00
21,906
7,19
73
9 375,00
22,113
8,33
74
9 750,00
22,304
9,63
75
10 125,00
22,482
11,08
76
10 500,00
22,646
12,71
77
10 875,00
22,799
14,53
78
11 250,00
22,941
16,54
79
11 625,00
23,072
18,77
80
12 000,00
23,195
21,23
81
12 375,00
23,309
23,94
82
12 750,00
23,415
26,90
83
13 125,00
23,515
30,14
84
13 500,00
23,607
33,67
85
13 875,00
23,694
37,51
86
14 250,00
23,775
41,67
87
14 625,00
23,852
46,17
88
15 000,00
23,923
51,04
89
15 375,00
23,991
56,29
90
15 750,00
24,054
61,94
91
16 125,00
24,114
68,00
92
16 500,00
24,171
68,00
93
16 875,00
24,224
68,00
94
17 250,00
24,275
68,00
95
17 625,00
24,322
68,00
96
18 000,00
24,368
68,00
97
18 375,00
24,411
68,00
98
18 750,00
24,452
68,00
99
19 125,00
24,491
68,00
100
19 500,00
24,528
68,00
101
19 875,00
24,564
68,00
102
20 250,00
24,597
68,00
Таблица Г.1г
Частота и значения абсолютного порога слышимости
для частоты дискретизации 32 кГц. Уровень II
Номер, i
Частота
Абсолютный порог, дБ
Гц
Барк
1
31,25
0,309
58,23
2
62,50
0,617
33,44
3
93,75
0,925
24,17
4
125,00
1,232
19,20
5
156,25
1,538
16,05
6
187,50
1,842
13,87
7
218,75
2,145
12,26
8
250,00
2,445
11,01
9
281,25
2,742
10,01
10
312,50
3,037
9,20
11
343,75
3,329
8,52
12
375,00
3,618
7,94
13
406,25
3,903
7,44
14
437,50
4,185
7,00
15
468,75
4,463
6,62
16
500,00
4,736
6,28
17
531,25
5,006
5,97
18
562,50
5,272
5,70
19
593,75
5,533
5,44
20
625,00
5,789
5,21
21
656,25
6,041
5,00
22
687,50
6,289
4,80
23
718,75
6,532
4,62
24
750,00
6,770
4,45
25
781,25
7,004
4,29
26
812,50
7,233
4,14
27
843,75
7,457
4,00
28
875,00
7,677
3,86
29
906,25
7,892
3,73
30
937,50
8,103
3,61
31
968,75
8,309
3,49
32
1 000,00
8,511
3,37
33
1 031,25
8,708
3,26
34
1 062,50
8,901
3,15
35
1 093,75
9,090
3,04
36
1 125,00
9,275
2,93
37
1 156,25
9,456
2,83
38
1 187,50
9,632
2,73
39
1 218,75
9,805
2,63
40
1 250,00
9,974
2,53
41
1 281,25
10,139
2,42
42
1 312,50
10,301
2,32
43
1 343,75
10,459
2,22
44
1 375,00
10,614
2,12
45
1 406,25
10,765
2,02
46
1 437,50
10,913
1,92
47
1 468,75
11,058
1,81
48
1 500,00
11,199
1,71
49
1 562,50
11,474
1,49
50
1 625,00
11,736
1,27
51
1 687,50
11,988
1,04
52
1 750,00
12,230
0,80
53
1 812,50
12,461
0,55
54
1 875,00
12,684
0,29
55
1 937,50
12,898
0,02
56
2 000,00
13,104
-0,25
57
2 062,50
13,302
-0,54
58
2 125,00
13,493
-0,83
59
2 187,50
13,678
-1,12
60
2 250,00
13,855
-1,43
61
2 312,50
14,027
-1,73
62
2 375,00
14,193
-2,04
63
2 437,50
14,354
-2,34
64
2 500,00
14,509
-2,64
65
2 562,50
14,660
-2,93
66
2 625,00
14,807
-3,22
67
2 687,50
14,949
-3,49
68
2 750,00
15,087
-3,74
69
2 812,50
15,221
-3,98
70
2 875,00
15,351
-4,20
71
2 937,50
15,478
-4,40
72
3 000,00
15,602
-4,57
73
3 125,00
15,841
-4,82
74
3 250,00
16,069
-4,96
75
3 375,00
16,287
-4,97
76
3 500,00
16,496
-4,86
77
3 625,00
16,697
-4,63
78
3 750,00
16,891
-4,29
79
3 875,00
17,078
-3,87
80
4 000,00
17,259
-3,39
81
4 125,00
17,434
-2,86
82
4 250,00
17,605
-2,31
83
4 375,00
17,770
-1,77
84
4 500,00
17,932
-1,24
85
4 625,00
18,089
-0,74
86
4 750,00
18,242
-0,29
87
4 875,00
18,392
0,12
88
5 000,00
18,539
0,48
89
5 125,00
18,682
0,79
90
5 250,00
18,823
1,06
91
5 375,00
18,960
1,29
92
5 500,00
19,095
1,49
93
5 625,00
19,226
1,66
94
5 750 00 -
19,356
1,81
95
5 875,00
19,482
1,95
96
6 000,00
19,606
2,08
97
6 250,00
19,847
2,33
98
6 500,00
20,079
2,59
99
6 750,00
20,300
2,86
100
7 000,00
20,513
3,17
101
7 250,00
20,717
3,51
102
7 500,00
20,912
3,89
103
7 750,00
21,098
4,31
104
8 000,00
21,275
4,79
105
8 250,00
21,445
5,31
106
8 500,00
21,606
5,88
107
8 750,00
21,760
6,50
108
9 000,00
21,906
7,19
109
9 250,00
22,046
7,93
110
9 500,00
22,178
8,75
111
9 750,00
22,304
9,63
112
10 000,00
22,424
10,58
113
10 250,00
22,538
11,60
114
10 500,00
22,646
12,71
115
10 750,00
22,749
13,90
116
11 000,00
22,847
15,18
117
11 250,00
22,941
16,54
118
11 500,00
23,030
18,01
119
11 750,00
23,114
19,57
120
12 000,00
23,195
21,23
121
12 250,00
23,272
23,01
122
12 500,00
23,345
24,90
123
12 750,00
23,415
26,90
124
13 000,00
23,482
29,03
125
13 250,00
23,546
31,28
126
13 500,00
23,607
33,67
127
13 750,00
23,666
36,19
128
14 000,00
23,722
38.86
129
14 250,00
23,775
41,67
130
14 500,00
23,827
44,63
131
14 750,00
23,876
47,76
132
15 000,00
23,923
51,04
Таблица Г.1д
Частота и значения абсолютного порога слышимости
для частоты дискретизации 44,1 кГц. Уровень II
Номер, i
Частота
Абсолютный порог, дБ
Гц
Барк
1
43,07
0,425
45,05
2
86,13
0,850
25,87
3
129,20
1,273
18,70
4
172,27
1,694
14,85
5
215,33
2,112
12,41
6
258,40
2,525
10,72
7
301,46
2,934
9,47
8
344,53
3,337
8,50
9
387,60
3,733
7,73
10
430,66
4,124
7,10
11
473,73
4,507
6,56
12
516,80
4,882
6,11
13
559,86
5,249
5,72
14
602,93
5,608
5,37
15
646,00
5,959
5,07
16
689,06
6,301
4,79
17
732,13
6,634
4,55
18
775,20
6,959
4,32
19
818,26
7,274
4,11
20
861,33
7,581
3,92
21
904,39
7,879
3,74
22
947,46
8,169
3,57
23
990,53
8,450
3,40
24
1 033,59
8,723
3,25
25
1 076,66
8,987
3,10
26
1 119,73
9,244
2,95
27
1 162,79
9,493
2,81
28
1 205,86
9,734
2,67
29
1 248,93
9,968
2,53
30
1 291,99
10,195
2,39
31
1 335,06
10,416
2,25
32
1 378,13
10,629
2,11
33
1 421,19
10,836
1,97
34
1 464,26
11,037
1,83
35
1 507,32
11,232
1,68
36
1 550,39
11,421
1,53
37
1 593,46
11,605
1,38
38
1 636,52
11,783
1,23
39
1 679,59
11,957
1,07
40
1 722,66
12,125
0,90
41
1 765,72
12,289
0,74
42
1 808,79
12,448
0,56
43
1 851,86
12,603
0,39
44
1 894,92
12,753
0,21
45
1 937,99
12,900
0,02
46
1 981,05
13,042
-0,17
47
2 024,12
13,181
-0,36
48
2 067,19
13,317
-0,56
49
2 153,32
13,578
-0,96
50
2 239,45
13,826
-1,38
51
2 325,59
14,062
-1,79
52
2 411,72
14,288
-2,21
53
2 497,85
14,504
-2,63
54
2 583,98
14,711
-3,03
55
2 670,12
14,909
-3,41
56
2 756,25
15,100
-3,77
57
2 842,38
15,284
-4,09
58
2 928,52
15,460
-4,37
59
3 014,65
15,631
-4,60
60
3 100,78
15,796
-4,78
61
3 186,91
15,955
-4,91
62
3 273,05
16,110
-4,97
63
3 359,18
16,260
-4,98
64
3 445,31
16,406
-4,92
65
3 531,45
16,547
-4,81
66
3 617,58
16,685
-4,65
67
3 703,71
16,820
-4,43
68
3 789,84
16,951
-4,17
69
3 875,98
17,079
-3,87
70
3 962,11
17,205
-3,54
71
4 048,24
17,327
-3,19
72
4 134,38
17,447
-2,82
73
4 306,64
17,680
-2,06
74
4 478,91
17,905
-1,32
75
4 651,17
18,121
-0,64
76
4 823,44
18,331
-0,04
77
4 995,70
18,534
0,47
78
5 167,97
18,731
0,89
79
5 340,23
18,922
1,23
80
5 512,50
19,108
1,51
81
5 684,77
19,289
1,74
82
5 857,03
19,464
1,93
83
6 029,30
19,635
2,11
84
6 201,56
19,801
2,28
85
6 373,83
19,963
2,46
86
6 546,09
20,120
2,63
87
6 718,36
20,273
2,82
88
6 890,63
20,421
3,03
89
7 062,89
20,565
3,25
90
7 235,16
20,705
3,49
91
7 407,42
20,840
3,74
92
7 579,69
20,972
4,02
93
7 751,95
21,099
4,32
94
7 924,22
21,222
4,64
95
8 096,48
21,342
4,98
96
8 268,75
21,457
5,35
97
8 613,28
21,677
6,15
98
8 957,81
21,882
7,07
99
9 302,34
22,074
8,10
100
9 646,88
22,253
9,25
101
9 991,41
22,420
10,54
102
10 335,94
22,576
11,97
103
10 680,47
22,721
13,56
104
11 025,00
22,857
15,31
105
11 369,53
22,984
17,23
106
11 714,06
23,102
19,34
107
12 058,59
23,213
21,64
108
12 403,13
23,317
24,15
109
12 747,66
23,415
26,88
110
13 092,19
23,506
29,84
111
13 436,72
23,592
33,05
112
13 781,25
23,673
36,52
113
14 125,78
23,749
40,25
114
14 470,31
23,821
44,27
115
14 814,84
23,888
48,59
116
15 159,38
23,952
53,22
117
15 503,91
24,013
58,18
118
15 848,44
24,070
63,49
119
16 192,97
24,125
68,00
120
16 537,50
24,176
68,00
121
16 882,03
24,225
68,00
122
17 226,56
24,271
68,00
123
17 571,09
24,316
68,00
124
17 915,63
24,358
68,00
125
18 260,16
24,398
68,00
126
18 604,69
24,436
68,00
127
18 949,22
24,473
68,00
128
19 293,75
24,508
68,00
129
19 638,28
24,542
68,00
130
19 982,81
24,574
68,00
Таблица Г.1е
Частота и значения абсолютного порога слышимости
для частоты дискретизации 48 кГц. Уровень II
Номер, i
Частота
Абсолютный порог, дБ
Гц
Барк
1
46,88
0,463
42,10
2
93,75
0,925
24,17
3
140,63
1,385
17,47
4
187,50
1,842
13,87
5
234,38
2,295
11,60
6
281,25
2,742
10,01
7
328,13
3,184
8,84
8
375,00
3,618
7,94
9
421,88
4,045
7,22
10
468,75
4,463
6,62
11
515,63
4,872
6,12
12
562,50
5,272
5,70
13
609,38
5,661
5,33
14
656,25
6,041
5,00
15
703,13
6,411
4,71
16
750,00
6,770
4,45
17
796,88
7,119
4,21
18
843,75
7,457
4,00
19
890,63
7,785
3,79
20
937,50
8,103
3,61
21
984,38
8,410
3,43
22
1 031,25
8,708
3,26
23
1 078,13
8,996
3,09
24
1 125,00
9,275
2,93
25
1 171,88
9,544
2,78
26
1 218,75
9,805
2,63
27
1 265,63
10,057
2,47
28
1 312,50
10,301
2,32
29
1 359,38
10,537
2,17
30
1 406,25
10,765
2,02
31
1 453,13
10,986
1,86
3.2
1 500,00
11,199
1,71
33
1 546,88
11,406
1,55
34
1 593,75
11,606
1,38
35
1 640,63
11,800
1,21
36
1 687,50
11,988
1,04
37
1 734,38
12,170
0,86
38
1 781,25
12,347
0,67
39
1 828,13
12,518
0,49
40
1 875,00
12,684
0,29
41
1 921,88
12,845
0,09
42
1 968,75
13,002
-0,11
43
2 015,63
13,154
-0,32
44
2 062,50
13,302
-0,54
45
2 109,38
13,446
-0,75
46
2 156,25
13,586
-0,97
47
2 203,13
13,723
-1,20
48
2 250,00
13,855
-1,43
49
2 343,75
14,111
-1,88
50
2 437,50
14,354
-2,34
51
2 531,25
14,585
-2,79
52
2 625,00
14,807
-3,22
53
2 718,75
15,018
-3,62
54
2 812,50
15,221
-3,98
55
2 906,25
15,415
-4,30
56
3 000,00
15,602
-4,57
57
3 093,75
15,783
-4,77
58
3 187,50
15,956
-4,91
59
3 281,25
16,124
-4,98
60
3 375,00
16,287
-4,97
61
3 468,75
16,445
-4,90
62
3 562,50
16,598
-4,76
63
3 656,25
16,746
-4,55
64
3 750,00
16,891
-4,29
65
3 843,75
17,032
-3,99
66
3 937,50
17,169
-3,64
67
4 031,25
17,303
-3,26
68
4 125,00
17,434
-2,86
69
4 218,75
17,563
-2,45
70
4 312,50
17,688
-2,04
71
4 406,25
17,811
-1,63
72
4 500,00
17,932
-1,24
73
4 687,50
18,166
-0,51
74
4 875,00
18,392
0,12
75
5 062,50
18,611
0,64
76
5 250,00
18,823
1,06
77
5 437,50
19,028
1,39
78
5 625,00
19,226
1,66
79
5 812,50
19,419
1,88
80
6 000,00
19,606
2,08
81
6 187,50
19,788
2,27
82
6 375,00
19,964
2,46
83
6 562,50
20,135
2,65
84
6 750,00
20,300
2,86
85
6 937,50
20,461
3,09
86
7 125,00
20,616
3,33
87
7 312,50
20,766
3,60
88
7 500,00
20,912
3,89
89
7 687,50
21,052
4,20
90
7 875,00
21,188
4,54
91
8 062,50
21,318
4,91
92
8 250,00
21,445
5,31
93
8 437,50
21,567
5,73
94
8 625,00
21,684
6,18
95
8 812,50
21,797
6,67
96
9 000,00
21,906
7,19
97
9 375,00
22,113
8,33
98
9 750,00
22,304
9,63
99
10 125,00
22,482
11,08
100
10 500,00
22,646
12,71
101
10 875,00
22,799
14,53
102
11 250,00
22,941
16,54
103
11 625,00
23,072
18,77
104
12 000,00
23,195
21,23
105
12 375,00
23,309
23,94
106
12 750,00
23,415
26,90
107
13 125,00
23,515
30,14
108
13 500,00
23,607
33,67
109
13 875,00
23,694
37,51
110
14 250,00
23,775
41,67
111
14 625,00
23,852
46,17
112
15 000,00
23,923
51,04
113
15 375,00
23,991
56,29
114
15 750,00
24,054
61,94
115
16 125,00
24,114
68,00
116
16 500,00
24,171
68,00
117
16 875,00
24,224
68,00
118
17 250,00
24,275
68,00
119
17 625,00
24,322
68,00
120
18 000,00
24,368
68,00
121
18 375,00
24,411
68,00
122
18 750,00
24,452
68,00
123
19 125,00
24,491
68,00
124
19 500,00
24,528
68,00
125
19 875,00
24,564
68,00
126
20 250,00
24,597
68,00
Таблица Г.2а
Верхние границы критических полос.
Частота дискретизации 32 кГц. Уровень I
Номер
Номер (i) в таблице Г.1а
Частота
Гц
Барк
0
1
62,500
0,617
1
3
187,500
1,842
2
5
312,500
3,037
3
7
437,500
4,185
4
9
562,500
5,272
5
11
687,500
6,289
6
13
812,500
7,233
7
15
937,500
8,103
8
18
1 125,000
9,275
9
21
1 312,500
10,301
10
24
1 500,000
11,199
11
27
1 687,500
11,988
12
32
2 000,000
13,104
13
37
2 312,500
14,027
14
44
2 750,000
15,087
15
50
3 250,000
16,069
16
55
3 875,000
17,078
17
61
4 625,000
18,089
18
68
5 500,000
19,095
19
74
6 500,000
20,079
20
79
7 750,000
21,098
21
85
9 250,000
22,046
22
94
11 500,000
23,030
23
108
15 000,000
23,923
Таблица Г.2б
Верхние границы критических полос.
Частота дискретизации 44,1 кГц. Уровень I
Номер
Номер (i) в таблице Г.1б
Частота
Гц
Барк
0
1
86,133
0,850
1
2
172,266
1,694
2
3
258,398
2,525
3
5
430,664
4,124
4
6
516,797
4,882
5
8
689,063
6,301
6
9
775,195
6,959
7
11
947,461
8,169
8
13
1 119,727
9,244
9
15
1 291,992
10,195
10
17
1 464,258
11,037
11
20
1 722,656
12,125
12
23
1 981,055
13,042
13
27
2 325,586
14,062
14
32
2 756,250
15,100
15
37
3 186,914
15,955
16
45
3 875,977
17,079
17
50
4 478,906
17,904
18
55
5 340,234
18,922
19
61
6 373,828
19,963
20
68
7 579,688
20,971
21
75
9 302,344
22,074
22
81
11 369,531
22,984
23
93
15 503,906
24,013
24
106
19 982,813
24,573
Таблица Г.2в
Верхние границы критических полос.
Частота дискретизации 48 кГц. Уровень I
Номер
Номер (i) в таблице Г.1в
Частота
Гц
Барк
0
1
93,750
0,925
1
2
187,500
1,842
2
3
281,250
2,742
3
4
375,000
3,618
4
5
468,750
4,463
5
6
562,500
5,272
6
7
656,250
6,041
7
9
843,750
7,457
8
10
937,500
8,103
9
12
1 125,000
9,275
10
14
1 312,500
10,301
11
16
1 500,000
11,199
12
19
1 781,250
12,347
13
21
1 968,750
13,002
14
25
2 343,750
14,111
15
29
2 718,750
15,018
16
35
3 281,250
16,124
17
41
3 843,750
17,032
18
49
4 687,500
18,166
19
53
5 437,500
19,028
20
58
6 375,000
19,964
21
65
7 687,500
21,052
22
73
9 375,000
22,113
23
79
11 625,000
23,072
24
89
15 375,000
23,991
25
102
20 250,000
24,597
Таблица Г.2г
Верхние границы критических полос.
Частота дискретизации 32 кГц. Уровень II
Номер
Номер (i) в таблице Г.1г
Частота
Гц
Барк
0
1
31,250
0,309
1
3
93,750
0,925
2
6
187,500
1,842
3
10
312,500
3,037
4
13
406,250
3,903
5
17
531,250
5,006
6
21
656,250
6,041
7
25
781,250
7,004
8
30
937,500
8,103
9
35
1 093,750
9,090
10
41
1 281,250
10,139
11
47
1 468,750
11,058
12
51
1 687,500
11,988
13
56
2 000,000
13,104
14
61
2 312,500
14,027
15
68
2 750,000
15,087
16
74
3 250,000
16,069
17
79
3 875,000
17,078
18
85
4 625,000
18,089
19
92
5 500,000
19,095
20
98
6 500,000
20,079
21
103
7 750,000
21,098
22
109
9 250,000
22,046
23
118
11 500,000
23,030
24
132
15 000,000
23,923
Таблица Г.2д
Верхние границы критических полос.
Частота дискретизации 44,1 кГц. Уровень II
Номер
Номер (i) в таблице Г.1д
Частота
Гц
Барк
0
1
43,066
0,425
1
2
86,133
0,850
2
3
129,199
1,273
3
5
215,332
2,112
4
7
301,465
2,934
5
10
430,664
4,124
6
13
559,863
5,249
7
16
689,063
6,301
8
19
818,262
7,274
9
22
947,461
8,169
10
26
1 119,727
9,244
11
30
1 291,992
10,195
12
35
1 507,324
11,232
13
40
1 722,656
12,125
14
46
1 981,055
13,042
15
51
2 325,586
14,062
16
56
2 756,250
15,100
17
62
3 273,047
16,11
18
69
3 875,977
17,079
19
74
4 478,906
17,904
20
79
5 340,234
18,922
21
85
6 373,828
19,963
22
92
7 579,688
20,971
23
99
9 302,344
22,074
24
105
11 369,531
22,984
25
117
15 503,906
24,013
26
130
19 982,813
24,573
Таблица Г.2е
Верхние границы критических полос.
Частота дискретизации 48 кГц. Уровень II
Номер
Номер (i) в таблице Г.1е
Частота
Гц
Барк
0
1
46,875
0,463
1
2
93,750
0,925
2
3
140,625
1,385
3
5
234,375
2,295
4
7
328,125
3,184
5
9
421,875
4,045
6
12
562,500
5,272
7
14
656,250
6,041
8
17
796,875
7,119
9
20
937,500
8,103
10
24
1 125,000
9,275
11
27
1 265,625
10,057
12
32
1 500,000
11,199
13
37
1 734,375
12,170
14
42
1 968,750
13,002
15
49
2 343,750
14,111
16
53
2 718,750
15,018
17
59
3 281,250
16,124
18
65
3 843,750
17,032
19
73
4 687,500
18,166
20
77
5 437,500
19,028
21
82
6 375,000
19,964
22
89
7 687,500
21,052
23
97
9 375,000
22,113
24
103
11625,000
23,072
25
113
15 375,000
23,991
26
126
20 250,000
24,597
Г.2 Психоакустическая модель 2
Г.2.1 Общие сведения
Психоакустическая модель 2 - независимая психоакустическая модель, которая может быть скорректирована и адаптирована к любому уровню. В этом приложении дается общее описание психоакустической модели 2 и достаточная информация для ее реализации на Уровнях I и II. Психоакустическая модель Уровня III базируется на этой реализации. Модель адаптирована в соответствии с описанием кодера Уровня III.
Блок расчета порога маскирования имеет три входа:
1. Смещение окна анализа iblen, где 384 < iblen < 640. Параметр iblen должен оставаться постоянным на протяжении всего процесса расчета порога маскирования. Если необходимо вычислить пороги для двух различных смещений (как на Уровне III), то требуется два расчета, каждый с соответствующей фиксированной длиной смещения. В случае, когда iblen вне диапазона 384 - 640, необходимо вычисление психоакустических порогов с различными длинами окон и смещений. Есть два способа выполнить это:
а) использовать преобразование различной длины и пересчитать исходные коэффициенты для модели;
б) использовать ту же длину преобразования, но с существенно более коротким окном Хана, подходящим для данных и задаче.
Выбор оставляют за конкретной реализацией.
2. Новые iblen отсчетов сигнала, вместе с задержанными отсчетами (либо в наборе фильтров, либо в блоке психоакустического расчета) помещаются по центру окна анализа.
3. Для стандартных частот дискретизации предусмотрены соответствующие таблицы. Частота дискретизации, как и iblen, должна остаться постоянной на протяжении одной реализации расчета порога маскирования.
Выходом психоакустической модели 2 является вектор отношений сигнал-маска, SMRn, который адаптируется к уровням как описано ниже.
Перед реализацией модели массив данных БПФ, а также массивы r и f, должны быть обнулеваны.
На Уровне II значения психоакустических отношений должны быть вычислены дважды для каждого фрейма. Худший из двух вариантов используется при распределении битов, как показано в программной модели для Уровней I и II с психоакустической моделью 2.
Г.2.2 Комментарии к обозначениям
В течение процесса вычисления порога маскирования используются три индекса:
- номер спектральной линии БПФ, индекс 1 соответствует постоянной составляющей, индекс 513 соответствует частоте Найквиста;
b - номер раздела, если при вычислении используется свертка или сумма, bb будет использоваться в качестве переменной суммирования, нумерация раздела начинается с 1;
n - номер частотной полосы, индекс 1 соответствует самой нижней полосе субполосного набора фильтров.
Г.2.3 Функция распределения маскирования
Несколько следующих позиций относятся к функции распределения маскирования. Она вычисляется по формуле
tmpx = 1,05(j - i),
где i - значение (в Барках), соответствующее полосе, для которой рассчитывается функция распределения;
j - расстояние (в Барках) до полосы, на которую оказывает влияние полоса i.
tmpx - временная переменная.
x = 8min((tmpx - 0,5)2 - 2(tmpx - 0,5),0)
где x - временная переменная;
min(a,b) - функция, возвращающая наименьшее значение из a и b.
tmpy является еще одной временной переменной.
Г.2.4 Порядок расчета порога
Следующие шаги необходимы для вычисления SMRn.
1. Восстановление 1024 отсчетов входного сигнала.
iblen новых отсчетов становятся доступными при каждом обращении к пороговому генератору. Пороговый генератор должен хранить 1024 отсчетов iblen и объединить эти отсчеты для точного восстановления 1024 последовательных отсчетов входного сигнала si, где i - индекс, 1 <= i <= 1024 текущего входного потока.
2. Вычисление комплексного спектра входного сигнала.
Во-первых, si взвешивается в окне Ханна длиной 1024, то есть
,
Следует обратить внимание на то, что на Уровне III может использоваться более короткое окно, при активном переключении окон, с соответствующим центрированием, согласно описанию кодера Уровня III.
Во-вторых, вычисляется стандартное прямое БПФ swi.
В-третьих, определяются амплитудная и фазовая составляющие преобразованного сигнала swi.
3. Вычисление предсказания r и f.
Предсказанные величины амплитуды, , и фазы вычисляются по предшествующим двум пороговым блокам r и f.
;
,
где t - текущий номер блока;
t - 1 - предыдущий блок;
t - 2 - блок, предшествующий предыдущему блоку.
4. Вычисление меры неопределенности .
.
Ценой ухудшения качества эта мера может быть вычислена только для частотных линий в нижней части спектра. Расчет должен быть выполнен от постоянной составляющей до, по крайней мере, 3 кГц и предпочтительно - 7 кГц. Ограничение верхнего предела ниже 5,5 кГц может значительно ухудшить субъективную оценку алгоритма сжатия. Значения выше этого предела должны быть установлены равными 0,3. Лучшие результаты будут получены при вычислении до 20 кГц.
5. Вычисление энергии и неопределенности в разделах.
Энергия в каждом разделе eb:
и взвешенная неопределенность cb:
.
Разбиение на разделы обеспечивает разрешение, приблизительно равное одной линии БПФ или 1/3 критической полосы. На нижних частотах одна линия БПФ соответствует одному разделу. На верхних частотах большая часть линии объединяется в один раздел. Границы разделов для каждой из трех частот дискретизации указаны в таблице Г.3. Эти значения будут использоваться в процессе вычисления порога.
Для каждой частоты дискретизации существует значение bmax, соответствующее самому большому значению b.
6. Вычисление свертки энергий и неопределенности разделов с функцией распределения маскирования:
;
.
Поскольку ctb взвешивается с энергией сигнала, оно должно быть нормализовано к cbb.
Одновременно, из-за отсутствия нормирования распространяющейся функции, должно быть нормализовано ecbb и вычислена нормализованная энергия enb.
enb = ecbb * rnormb
Коэффициент нормализации rnormb:
7. Преобразование cbb в индекс тональности tbb.
tbb = -0,299 - 0,43ln(cbb)
Каждый tbb лежит в диапазоне 0 < tbb < I.
8. Вычисление требуемого SNR в каждом разделе.
Необходимое отношение сигнал - шум, SNRb:
SNRb = max(minvalb,tbb * TMNb + (1 - tbb) * NMTb),
где max(a, b) - функция, возвращающая наибольшее значение из a и b;
TMNb - значение для тонального маскера (в дБ) в разделе;
NMTb - значение для шумового маскера (в дБ) в разделе, NMTb = 5,5 дБ для всех b.
9. Вычисление отношения мощностей.
Отношение мощностей bcb:
10. Вычисление фактического энергетического порога nbb.
nbb = enbbcb
11. Распространение порога по линиям БПФ, .
12. Прибавление абсолютных порогов для получения прибавления энергетическому порогу слышимости, 
Значения absthr в дБ даны в таблицах Г.4 относительно уровня, соответствующего энергии БПФ синусоиды амплитудой +/- 1/2lsb. Значения в дБ должны быть преобразованы в энергию после нормирования коэффициентов БПФ.
13. Регулирование пре-эха
На Уровне III выполняется регулирование пре-эха. Фактический процесс регулирования описывается в части спецификации кодера для Уровня III. Этот шаг пропускается для Уровней I и II.
14. Вычисление отношения сигнал-маска SMRn.
Энергия в полосе epartn:
Затем, если , то уровень шума в полосе, npartn, вычисляется как
иначе
,
где min(a, ..., z) - функция, возвращающая наименьшее положительное значение из a ... z.
Отношения, поступающие в кодер SMRn, вычисляются как
Таблица Г.3а
Разделы для частоты дискретизации 32 кГц
Номер
bval
minval
TMN
1
1
1
0,00
0,0
24,5
2
2
4
0,63
0,0
24,5
3
5
7
1,56
20,0
24,5
4
8
10
2,50
20,0
24,5
5
11
13
3,44
20,0
24,5
6
14
16
4,34
20,0
24,5
7
17
19
5,17
20,0
24,5
8
20
22
5,94
20,0
24,5
9
23
25
6,63
17,0
24,5
10
26
28
7,28
15,0
24,5
11
29
31
7,90
15,0
24,5
12
32
34
8,50
10,0
24,5
13
35
37
9,06
7,0
24,5
14
38
41
9,65
7,0
24,5
15
42
45
10,28
4,4
24,8
16
46
49
10,87
4,4
25,4
17
50
53
11,41
4,5
25,9
18
54
57
11,92
4,5
26,4
19
58
61
12,39
4,5
26,9
20
62
65
12,83
4,5
27,3
21
66
70
13,29
4,5
27,8
22
71
75
13,78
4,5
28,3
23
76
81
14,27
4,5
28,8
24
82
87
14,76
4,5
29,3
25
88
93
15,22
4,5
29,7
26
94
99
15,63
4,5
30,1
27
100
106
16,06
4,5
30,6
28
107
113
16,47
4,5
31,0
29
114
120
16,86
4,5
31,4
30
121
129
17,25
4,5
31,8
31
130
138
17,65
4,5
32,2
32
139
148
18,05
4,5
32,5
33
149
159
18,42
4,5
32,9
34
160
170
18,81
4,5
33,3
35
171
183
19,18
4,5
33,7
36
184
196
19,55
4,5
34,1
37
197
210
19,93
4,5
34,4
38
211
225
20,29
4,5
34,8
39
226
240
20,65
4,5
35,2
40
241
258
21,02
4,5
35,5
41
259
279
21,38
4,5
35,9
42
280
300
21,74
4,5
36,2
43
301
326
22,10
4,5
36,6
44
327
354
22,44
4,5
36,9
45
355
382
22,79
4,5
37,3
46
383
420
23,14
4,5
37,6
47
421
458
23,49
4,5
38,0
48
459
496
23,83
4,5
38,3
49
497
513
24,07
4,5
38,6
Таблица Г.3б
Разделы для частоты дискретизации 44,1 кГц
Номер
bval
minval
TMN
1
1
1
0,00
0,0
24,5
2
2
2
0,43
0,0
24,5
3
3
3
0,86
0,0
24,5
4
4
4
1,29
20,0
24,5
5
5
5
1,72
20,0
24,5
6
6
6
2,15
20,0
24,5
7
7
7
2,58
20,0
24,5
8
8
8
3,01
20,0
24,5
9
9
9
3,45
20,0
24,5
10
10
10
3,88
20,0
24,5
11
11
11
4,28
20,0
24,5
12
12
12
4,67
20,0
24,5
13
13
13
5,06
20,0
24,5
14
14
14
5,42
20,0
24,5
15
15
15
5,77
20,0
24,5
16
16
16
6,11
17,0
24,5
17
17
19
6,73
17,0
24,5
18
20
22
7,61
15,0
24,5
19
23
25
8,44
10,0
24,5
20
26
28
9,21
7,0
24,5
21
29
31
9,88
7,0
24,5
22
32
34
10,51
4,4
25,0
23
35
37
11,11
4,5
25,6
24
38
40
11,65
4,5
26,2
25
41
44
12,24
4,5
26,7
26
45
48
12,85
4,5
27,4
27
49
52
13,41
4,5
27,9
28
53
56
13,94
4,5
28,4
29
57
60
14,42
4,5
28,9
30
61
64
14,86
4,5
29,4
31
65
69
15,32
4,5
29,8
32
70
74
15,79
4,5
30,3
33
75
80
16,26
4,5
30,8
34
81
86
16,73
4,5
31,2
35
87
93
17,19
4,5
31,7
36
94
100
17,62
4,5
32,1
37
101
108
18,05
4,5
32,5
38
109
116
18,45
4,5
32,9
39
117
124
18,83
4,5
33,3
40
125
134
19,21
4,5
33,7
41
135
144
19,60
4,5
34,1
42
145
155
20,00
4,5
34,5
43
156
166
20,38
4,5
34,9
44
167
177
20,74
4,5
35,2
45
178
192
21,12
4,5
35,6
46
193
207
21,48
4,5
36,0
47
208
222
21,84
4,5
36,3
48
223
243
22,20
4,5
36,7
49
244
264
22,56
4,5
37,1
50
265
286
22,91
4,5
51
287
314
23,26
4,5
37,8
52
315
342
23,60
4,5
38,1
53
343
371
23,95
4,5
38,4
54
372
401
24,30
4,5
38,8
55
402
431
24,65
4,5
39,1
56
432
469
25,00
4,5
39,5
57
470
513
25,33
3,5
39,8
Таблица Г.3в
Разделы для частоты дискретизации 48 кГц
Номер
bval
minval
TMN
1
1
1
0,00
0,0
24,5
2
2
2
0,47
0,0
24,5
3
3
3
0,94
0,0
24,5
4
4
4
1,41
20,0
24,5
5
5
5
1,88
20,0
24,5
6
6
6
2,34
20,0
24,5
7
7
7
2,81
20,0
24,5
8
8
8
3,28
20,0
24,5
9
9
9
3,75
20,0
24,5
10
10
10
4,20
20,0
24,5
11
11
11
4,63
20,0
24,5
12
12
12
5,05
20,0
24,5
13
13
13
5,44
20,0
24,5
14
14
14
5,83
20,0
24,5
15
15
15
6,19
20,0
24,5
16
16
16
6,52
17,0
24,5
17
17
17
6,86
17,0
24,5
18
18
20
7,49
15,0
24,5
19
21
23
8,40
10,0
24,5
20
24
26
9,24
7,0
24,5
21
27
29
9,97
7,0
24,5
22
30
32
10,65
4,4
25,1
23
33
35
11,28
4,5
25,8
24
36
38
11,86
4,5
26,4
25
39
41
12,39
4,5
26,9
26
42
45
12,96
4,5
27,5
27
46
49
13,56
4,5
28,1
28
50
53
14,12
4,5
28,6
29
54
57
14,62
4,5
29,1
30
58
62
15,14
4,5
29,6
31
63
67
15,67
4,5
30,2
32
68
72
16,15
4,5
30,7
33
73
77
16,58
4,5
31,1
34
78
83
17,02
4,5
31,5
35
84
89
17,44
4,5
31,9
36
90
95
17,84
4,5
32,3
37
96
103
18,24
4,5
32,7
38
104
111
18,66
4,5
33,2
39
112
120
19,07
4,5
33,6
40
121
129
19,47
4,5
34,0
41
130
138
19,85
4,5
34,3
42
139
149
20,23
4,5
34,7
43
150
160
20,63
4,5
35,1
44
161
173
21,02
4,5
35,5
45
174
187
21,40
4,5
35,9
46
188
201
21,76
4,5
36,3
47
202
219
22,12
4,5
36,6
48
220
238
22,47
4,5
37,0
49
239
257
22,83
4,5
37,3
50
258
283
23,18
4,5
37,7
51
284
309
23,53
4,5
38,0
52
310
335
23,88
4,5
38,4
53
336
363
24,23
4,5
38,7
54
364
391
24,58
4,5
39,1
55
392
423
24,93
4,5
39,4
56
424
465
25,27
4,5
39,8
57
466
507
25,61
3,5
40,1
58
508
513
25,81
3,5
40,3
Таблица Г.4а
Значения абсолютного порога слышимости
для частоты дискретизации 32 кГц
Номер (линия)
absthr, дБ
Номер (линия)
absthr, дБ
Нижняя граница
Верхняя граница
Нижняя граница
Верхняя граница
1
1
58,23
35
35
3,04
2
2
33,44
36
36
2,93
3
3
24,17
37
37
2,83
4
4
19,20
38
38
2,73
5
5
16,05
39
39
2,63
6
6
13,87
40
40
2,53
7
7
12,26
41
41
2,42
8
8
11,01
42
42
2,32
9
9
10,01
43
43
2,22
10
10
9,20
44
44
2,12
11
11
8,52
45
45
2.02
12
12
7,94
46
46
1.92
13
13
7,44
47
47
1.81
14
14
7,00
48
48
1,71
15
15
6,62
49
50
1,49
16
16
6,28
51
52
1,27
17
17
5,97
53
54
1,04
18
18
5,70
55
56
0,80
19
19
5,44
57
57
0,55
20
20
5,21
59
60
0,29
21
21
5,00
61
62
0,02
22
22
4,80
63
64
-0,25
23
23
4,62
65
66
-0,54
24
24
4,45
67
68
-0,83
25
25
4,29
69
70
-1,12
26
26
4,14
71
72
-1,43
27
27
4,00
73
74
-1,73
28
28
3,86
75
76
-2,04
29
29
3,73
77
78
-2,34
30
30
3,61
79
80
-2,64
31
31
3,49
81
82
-2,93
32
32
3,37
83
84
-3,22
33
33
3,26
85
86
-3,49
34
34
3,15
87
88
-3,74
Продолжение таблицы Г.4а
Номер (линия)
absthr, дБ
Номер (линия)
absthr, дБ
Нижняя граница
Верхняя граница
Нижняя граница
Верхняя граница
89
90
-3,98
241
248
4,31
91
92
-4,20
249
256
4,79
93
94
-4,40
257
264
5,31
95
96
-4,57
265
272
5,88
97
100
-4,82
273
280
6,50
101
104
-4,96
281
288
7,19
105
108
-4,97
289
296
7,93
109
112
-4,86
297
304
8,75
113
116
-4,63
305
312
9,63
117
120
-4,29
313
320
10,58
121
124
-3,87
321
328
11,60
125
128
-3,39
329
336
12,71
129
132
-2,86
337
344
13,90
133
136
-2,31
345
352
15,18
137
140
-1,77
353
360
16,54
141
144
-1,24
361
368
18,01
145
148
-0,74
369
376
19,57
149
152
-0,29
377
384
21,23
153
156
0,12
385
392
23,01
157
160
0,48
393
400
24,90
161
164
0,79
401
408
26,90
165
168
1,06
409
416
29,03
169
172
1,29
417
424
31,28
173
176
1,49
425
432
33,67
177
180
1,66
433
440
36,19
181
184
1,81
441
448
38,86
185
188
1,95
449
456
41,67
189
192
2,08
457
464
44,63
193
200
2,33
465
472
47,76
201
208
2,59
473
480
51,03
209
216
2,86
Примечание - Значение 0 дБ соответствует уровню абсолютного порога слышимости на 96 дБ ниже уровня энергии синусоидальной волны с амплитудой +/- 32760.
217
224
3,17
225
232
3,51
233
240
3,89
Таблица Г.4б
Значения абсолютного порога слышимости
для частоты дискретизации 44,1 кГц
Номер (линия)
absthr, дБ
Номер (линия)
absthr, дБ
Нижняя граница
Верхняя граница
Нижняя граница
Верхняя граница
1
1
45,05
35
35
1,68
2
2
25,87
36
36
1,53
3
3
18,70
37
37
1,38
4
4
14,85
38
38
1,23
5
5
12,41
39
39
1,07
6
6
10,72
40
40
0,90
7
7
9,47
41
41
0,74
8
8
8,50
42
42
0,56
9
9
7,73
43
43
0,39
10
10
7,10
44
44
0,21
11
11
6,56
45
45
0,02
12
12
6,11
46
46
-0,17
13
13
5,72
47
47
-0,36
14
14
5,37
48
48
-0,56
15
15
5,07
49
50
-0,96
16
16
4,79
51
52
-1,37
17
17
4,55
53
54
-1,79
18
18
4,32
55
56
-2,21
19
19
4,11
57
58
-2,63
20
20
3,92
59
60
-3,03
21
21
3,74
61
62
-3,41
22
22
3,57
63
64
-3,77
23
23
3,40
65
66
-4,09
24
24
3,25
67
68
-4,37
25
25
3,10
69
70
-4,60
26
26
2,95
71
72
-4,78
27
27
2,81
73
74
-4,91
28
28
2,67
75
76
-4,97
29
29
2,53
77
78
-4,98
30
30
2,39
79
80
-4,92
31
31
2,25
81
82
-4,81
32
32
2,11
83
84
-4,65
33
33
1,97
85
86
-4,43
34
34
1,83
87
88
-4,17
Окончание таблицы Г.4б
Номер (линия)
absthr, дБ
Номер (линия)
absthr, дБ
Нижняя граница
Верхняя граница
Нижняя граница
Верхняя граница
89
90
-3,87
241
248
13,56
91
92
-3,54
249
256
15,30
93
94
-3,19
257
264
17,23
95
96
-2,82
265
272
19,33
97
100
-2,06
273
280
21,64
101
104
-1,33
281
288
24,15
105
108
-0,64
289
296
26,88
161
164
3,25
297
304
29,84
165
168
3,49
305
312
33,04
161
164
3,25
313
320
36,51
165
168
3,49
321
328
40,24
161
164
3,25
329
336
44,26
165
168
3,49
337
344
48,58
161
164
3,25
345
352
53,21
165
168
3,49
353
360
58,17
161
164
3,25
361
368
63,48
165
168
3,49
369
376
69,13
161
164
3,25
377
384
69,13
165
168
3,49
385
392
69,13
161
164
3,25
393
400
69,13
161
164
3,25
401
408
69,13
165
168
3,49
409
416
69,13
169
172
3,74
417
424
69,13
173
176
4,02
425
432
69,13
177
180
4,32
433
440
69,13
181
184
4,64
441
448
69,13
185
188
4,98
449
456
69,13
189
192
5,35
457
464
69,13
193
200
6,15
Примечание - Значение 0 дБ соответствует уровню абсолютного порога слышимости на 96 дБ ниже уровня энергии синусоидальной волны с амплитудой +/- 32760.
201
208
7,07
209
216
8,10
217
224
9,25
225
232
10,54
233
240
11,97
Таблица Г.4в
Значения абсолютного порога слышимости
для частоты дискретизации 48 кГц
Номер (линия)
absthr, дБ
Номер (линия)
absthr, дБ
Нижняя граница
Верхняя граница
Нижняя граница
Верхняя граница
1
1
42,10
36
36
1,04
2
2
24,17
37
37
0,86
3
3
17,47
38
38
0,67
4
4
13,87
39
39
0,49
5
5
11,60
40
40
0,29
6
6
10,01
41
41
0,09
7
7
8,84
42
42
-0,11
8
8
7,94
43
43
-0,32
9
9
7,22
44
44
-0,54
10
10
6,62
45
45
-0,75
11
11
6,12
46
46
-0,97
12
12
5,70
47
47
-1,20
13
13
5,33
48
48
-1,43
14
14
5,00
49
50
-1,88
15
15
4,71
51
52
-2,34
16
16
4,45
53
54
-2,79
17
17
4,21
55
56
-3,22
18
18
4,00
57
58
-3,62
19
19
3,79
59
60
-3,98
20
20
3,61
61
62
-4,30
21
21
3,43
63
64
-4,57
22
22
3,26
65
66
-4,77
23
23
3,09
67
68
-4,91
24
24
2,93
69
70
-4,98
25
25
2,78
71
72
-4,97
26
26
2,63
73
74
-4,90
27
27
2,47
75
76
-4,76
28
28
2,32
77
78
-4,55
29
29
2,17
79
80
-4,29
30
30
2,02
81
82
-3,99
31
31
1,86
83
84
-3,64
32
32
1,71
85
86
-3,26
33
33
1,55
87
88
-2,86
34
34
1,38
89
90
-2,45
35
35
1,21
91
92
-2,04
Окончание таблицы Г.4в
Номер (линия)
absthr, дБ
Номер (линия)
absthr, дБ
Нижняя граница
Верхняя граница
Нижняя граница
Верхняя граница
93
94
-1,63
273
280
30,14
95
96
-1,24
281
288
33,67
97
100
-0,51
289
296
37,51
101
104
0,12
297
304
41,67
105
108
0,64
305
312
46,17
109
112
1,06
313
320
51,04
113
116
1,39
321
328
56,29
117
120
1,66
329
332
61,94
121
124
1,88
333
340
68,00
125
128
2,08
341
348
68,00
129
132
2,27
349
356
68,00
133
136
2,46
357
364
68,00
137
140
2,65
365
372
68,00
141
144
2,86
373
380
68,00
145
148
3,09
381
388
68,00
149
152
3,33
389
396
68,00
153
156
3,60
397
404
68,00
157
160
3,89
405
412
68,00
161
164
4,20
413
420
68,00
165
168
4,54
421
428
68,00
169
172
4,91
Примечание - Значение 0 дБ соответствует уровню абсолютного порога слышимости на 96 дБ ниже уровня энергии синусоидальной волны с амплитудой +/- 32760.
173
176
5,31
177
180
5,73
181
184
6,18
185
188
6,67
189
192
7,19
193
200
8,33
201
208
9,63
209
216
11,08
217
224
12,71
225
232
14,53
233
240
16,54
241
248
18,77
249
256
21,23
257
264
23,94
265
272
26,90
Таблица Г.5
Разделы для частоты дискретизации. Уровни I и II
Номер
widthn
Номер
widthn
0
1
0
17
273
1
1
17
0
18
289
1
2
33
0
19
305
1
3
49
0
20
321
1
4
65
0
21
337
1
5
81
0
22
353
1
6
97
0
23
369
1
7
113
0
24
385
1
8
129
0
25
401
1
9
145
0
26
417
1
10
161
0
27
433
1
11
177
0
28
449
1
12
193
0
29
465
1
13
209
1
30
481
1
14
225
1
31
497
1
15
241
1
32
513
1
16
257
1
Приложение Д
(обязательное)
РАЗРЯДНАЯ ЧУВСТВИТЕЛЬНОСТЬ К ОШИБКАМ
Д.1 Общие сведения
В этом приложении приводится чувствительность отдельных битов к случайным ошибкам, если требуется защита от ошибок. Оценка чувствительности (от 0 до 5) приводится для каждого бита и отражает количество ухудшения вызванного одиночной ошибкой:
5 - катастрофическая;
4 - очень раздражающая;
3 - раздражающая;
2 - немного раздражающая;
1 - слышимая;
0 - нечувствительная.
Эти значения основываются не на результатах точных измерений, а, скорее, на знании кодека. Предполагается, что обнаружение ошибок не используется.
Некоторые поля потока битов не имеют фиксированной длины. Все биты этих полей оцениваются на чувствительность к ошибкам, даже если они не используются.
Для всех уровней предполагается, что самая высокая чувствительность к ошибкам у заголовка и проверочной информации.
Д.2 Уровни I и II
Параметры
Номер бита
Чувствительность
Распределение битов
Все биты
5
Выбор масштабных коэффициентов
Все биты
5
Масштабные коэффициенты
5 (msb)
4
4
4
3
4
2
3
1
2
0 (lsb)
1
Субполосные отсчеты
(в соответствии с распределением бит)
8 - 16 (msb)
3
5 - 7
2
3, 4
1
(lsb) 0 - 2
0
Д.3 Уровень III
Параметры
Номер бита
Чувствительность
scfsi
Все биты
5
part2_3_length
Все биты
4
big_values
Все биты
3
global_gain
Все биты
5
scalefac_compress
Все биты
5
window_switching_flag
0
5
block_type
Все биты
4
mked_block_flag
0
4
table_select
Все биты
5
region0_count
Все биты
3
region1_count
Все биты
3
preflag
0
2
scalefac_scale
0
2
count1table_select
0
3
Subblock_gain
2 (msb)
4
1
3
0 (lsb)
2
scale_fac <1>
3 (msb)
3 (2)
2
3 (2)
1
2 (1)
0 (lsb)
2 (1)
Huffmancodebits 0 <2>
0... n - I
3 - 0
<1> Длина scalefac зависит от scale_fac_compress. Значения разрядной чувствительности указаны для scale_fac_scale = 1 (если 0, то значение дается в круглых скобках).
<2> Если n - число битов кода Хаффмана в одном блоке, то чувствительность уменьшается линейно от 3 до 0, так как номера битов меняются от 0 до n (от нижних до высоких частот).
Перестановка значений кода Хаффмана.
Для получения лучшей устойчивости к ошибкам в нижней части спектра значения кода Хаффмана могут передаваться не в их логическом порядке следования.
Если max_hlen - максимальная длина кодового слова Хаффмана по таблицам, которые используются для кодирования определенного блока, и n - число битов, используемых для кодирования данных блока (но не фрейма) методом Хаффмана, то int(n/max_hlen) слотов заполняются первыми словами кода начиная с нижних частот. Остальные кодовые комбинации помещаются в оставшееся место снова от нижних до высоких частот.
После чередования битов чувствительность бита k + i * int(n/max_hlen) уменьшается линейно от 3 до 0 с изменением k от 0 до int(n/max_hlen) - l, где i = 0,..., max_hlen - l, и n - число битов кода Хаффмана в одном блоке.
Это рекомендуемая практика для данных всех каналов Уровня III, где важна устойчивость к ошибкам.
Приложение Е
(обязательное)
МАСКИРОВАНИЕ ОШИБОК
Дополнительной функцией кодированного потока битов является наличие CRC-кода, который обеспечивает обнаружение некоторых ошибок в процессе декодирования. Расстояние Хэмминга для этого кода с обнаружением ошибок d = 4, что позволяет обнаружить до 3 одиночных ошибочных битов или один ошибочный пакет длиной до 16 битов. Количество и позиция защищенных битов в пределах одного кодированного аудиофрейма обычно зависит от уровня, режима, скорости передачи данных и частоты дискретизации.
Это может быть использовано для управления стратегией маскирования ошибок в целях избежать серьезных ухудшений восстановленного сигнала из-за наличия ошибок в наиболее критичной части информации.
Для маскирования могут применяться известные методы, например метод информационной замены или отключение звука. Простой метод замены, при наличии ошибочного фрейма, заключается в замене его предыдущим (свободным от ошибок).
Приложение Ж
(обязательное)
КОДИРОВАНИЕ В РЕЖИМЕ joint stereo
Ж.1 Кодирование intensity stereo на Уровнях I и II
Дополнительный метод кодирования joint stereo, используемый на Уровнях I и II, является кодированием intensity stereo. Кодирование intensity stereo используется для повышения качества звучания и/или уменьшения скорости передачи стереофонических сигналов. Увеличение скорости передачи обычно составляет приблизительно 10 - 30 кбит/с. Это требует незначительного дополнительного усложнения декодера, увеличение сложности кодера невелико и не влияет на задержку в кодере и декодере.
Результаты психоакустических исследований показывают, что на высоких частотах (приблизительно выше 2 кГц) локализация стереофонического образа в пределах критической полосы определяется огибающей во времени, а не временной микроструктурой аудиосигнала.
Основная идея кодирования intensity stereo состоит в том, что для некоторых субполос передача ami заменяется на субполосные отсчеты, при этом передается только суммарный сигнал, но с масштабными коэффициентами для левого и правого каналов, что позволяет таким образом сохранить стереофонический образ.
Блок-схемы кодера стерео и декодера, включая режим intensity stereo, показаны на рисунках Ж.1 и Ж.2. Во-первых, оценка делается из необходимой скорости передачи для левого и правого каналов. Если требуемая скорость передачи превышает доступную скорость передачи, то требуемая скорость передачи может быть уменьшена за счет установки нескольких субполос в режим intensity stereo. В зависимости от требуемой скорости передачи субполосы 16 - 31, 12 - 31, 8 - 31 или 4 - 31 могут быть установлены в режим intensity stereo. Для квантования этих объединенных субполос используется большее из двух значений распределения битов для левого и правого каналов.
Левые и правые сигналы субполосы поддиапазонов в объединенном режиме стерео добавляются. Эти новые сигналы субполосы масштабируются обычным способом, но первоначально масштабные коэффициенты левых и правых сигналов субполосы передаются согласно синтаксису потока битов. Квантование общих субполосных отсчетов, кодирование общих выборок и кодирование общего распределения битов выполняются таким же образом, как и в независимом кодировании.
Ж.2 ms_stereo и intensity stereo кодирование на Уровне III
На Уровне III может использоваться комбинация ms_stereo режима (сумма/разность) и режим intensity stereo.
1. Переключение ms_stereo.
Режим ms_stereo включается, если условие
истина. Значения rli и rri соответствуют энергиям спектральных линий БПФ левого и правого каналов, вычисленным в психоакустической модели.
2. Обработка ms_stereo:
- матрица MS.
В режиме Ms_stereo значения нормализованных среднего/бокового каналов Mi/Si передаются вместо значений левого/правого каналов Li/Ri.
- ограничение ширины канала Si.
Все значения Si выше самой верхней полосы масштабного коэффициента обнуляются;
- разброс значений канала Si.
В каждой полосе масштабных коэффициентов sb обнуляются все пары малых значений (Si, Si + 1).
Следующие пороговые коэффициенты разностного канала применяются к полосам масштабных коэффициентов для block_type! = 2 ("длинное" МДКП):
sb
0
1
2
3
4
5
6
7
8
9
ssb
0,0
0,0
0,0
0,0
0,0
0,10
0,10
0,10
0,10
0,10
sb
10
11
12
13
14
15
16
17
18
19
20
ssb
0,10
0,20
0,30
0,40
0,50
0,60
0,70
0,80
0,90
1,00
1,50
3. Обработка intensity stereo.
Вычисление позиции intensity stereo.
Для каждой полосы масштабных коэффициентов sb, которая кодируется в режиме intensity stereo, выполняются следующие шаги:
,
где L_Energysb/R_Energysb обозначают сигнальные энергии левого/правого канала в пределах текущей полосы масштабных коэффициентов, и Li/Ri являются преобразованными значениями.
Li = Li + Ri для всех индексов i в пределах текущей полосы масштабных коэффициентов sb.
Ri = 0 для всех индексов i в пределах текущей полосы масштабных коэффициентов sb.
Позиция intensity stereo is_possb передается вместо масштабного коэффициента правого канала (всегда три бита, принимает значения от 0 до 6, 7 - недопустимое значение).
Полосы масштабных коэффициентов правого/разностного канала, содержащие только нули после кодирования, которые не принадлежат части intensity_stereo, должны быть переданы с масштабным коэффициентом '7' для отключения intensity stereo.
Рисунок Ж.1 - Общая блок-схема кодера стерео
Рисунок Ж.2 - Общая блок-схема декодера стерео
БИБЛИОГРАФИЯ
[1]
ИСО/МЭК 11172-3:1993
Информационные технологии. Кодирование движущихся изображений и сопутствующего звука для цифровых носителей при скоростях до 1,5 Мбит/с. Часть 3. Аудио (ISO/IEC 11172-3:1993, Information technology - Coding of moving pictures and associated audio for digital storage media at up to about 1,5 Mbit/s - Part 3: Audio)
УДК 621.396:006.354
ОКС 33.170
Ключевые слова: звуковое вещание, электрические параметры, технологии MPEG-кодирования, масштабирование, защита от ошибок



Вернуться в "Каталог нормативных документов"



 

Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/41/gost_82440.html

 

На эту страницу сайта можно сделать ссылку:

 


 

На правах рекламы: