ГОСТ Р 54713-2011
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Звуковое вещание цифровое
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ.
MPEG-2, ЧАСТЬ VII: УСОВЕРШЕНСТВОВАННОЕ КОДИРОВАНИЕ ЗВУКА (MPEG-2 AAC)
Sound broadcasting digital. Coding of signals of a sound broadcasting with reduction of redundancy for transfer on digital communication channels. MPEG-2, part VII: Advanced Audio Coding (MPEG-2 AAC)
ОКС 33.170
Дата введения 2012-12-01
Предисловие
Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ "О техническом регулировании", а правила применения национальных стандартов Российской Федерации - ГОСТ Р 1.0-2004 "Стандартизация в Российской Федерации. Основные положения"
Сведения о стандарте
1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи "Ленинградское отделение" (ФГУП ЛО ЦНИИС)
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 "Связь"
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 13 декабря 2011 г. N 874-ст
4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 13818-7:2006* Информационные технологии -Универсальное кодирование движущихся изображений и сопутствующего звука - Часть 7: Усовершенствованное кодирование звука (ААС) (ISO/IEC 13818-7:2006 Information technology - Generic coding of moving pictures and associated audio information - Part 7: Advanced Audio Coding (AAC) [1]
5 ВВЕДЕН ВПЕРВЫЕ
Информация об изменениях к настоящему стандарту публикуется в ежегодно издаваемом информационном указателе "Национальные стандарты", а текст изменений и поправок - в ежемесячно издаваемых информационных указателях "Национальные стандарты". В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ежемесячно издаваемом информационном указателе "Национальные стандарты". Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет
1 Область применения
1.1 Цель разработки стандарта
Настоящий стандарт позволяет получить более высокое качество многоканального звучания. С его помощью достигается "неразличимое" с оригиналом качество по шкале ITU-R согласно [2] на скоростях передачи данных 320 Кбит/с для пяти звуковых сигналов с полной пропускной способностью.
Действие настоящего стандарта распространяется на услуги местной, внутризоновой, междугородной и международной сети звукового вещания, независимо от используемой сетевой технологии, что способствует обеспечению целостности сетей звукового вещания, устойчивости работы сети, выполнению норм на основные электрические параметры при разработке и проектированию каналообразующей аппаратуры звукового вещания (ГОСТ Р 52742 и ГОСТ Р 53537).
Показатели, определенные настоящим стандартом, являются базовыми для профессиональной и бытовой аппаратуры - проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования класса Hi-Fi.
Универсальная и совместимая многоканальная аудиосистема применима для спутникового и наземного телевизионного вещания, цифрового звукового вещания (наземного и спутникового), так же как и для других носителей, например:
CATV - кабельное телевидение;
CDAD - кабельное цифровое звуковое вещание;
DAB - широковещательная передача цифрового звукового сигнала;
DVD - цифровой универсальный диск;
ENG - электронные новости (включая новости по спутнику);
HDTV - телевидение высокой четкости;
IPC - межличностное общение (видеоконференция, видеотелефон и т.д.);
ISM - интерактивные носители (оптические диски и т.д.).
Вход кодера и выход декодера совместимы со стандартами импульснокодовой модуляции (ИКМ), такими как ГОСТ 28376, ГОСТ 27667 и др.
1.2 Условия применения стандарта
1.2.1 Спецификация инструментов MPEG-2 ААС
В процессе декодирования ААС используется ряд необходимых и опциональных инструментов. В таблице 1 перечислены инструменты и их статус (необходимые или опциональные). Необходимые инструменты обязательны в любом возможном профиле. Опциональные инструменты могут не использоваться в некоторых профилях.
Таблица 1 - Перечень инструментов декодера ААС
Предназначение | Статус |
Средство форматирования потока битов | Необходимый |
Прозрачное декодирование | Необходимый |
Обратное квантование | Необходимый |
Перемасштабирование | Необходимый |
M/S | Опциональный |
Предсказание | Опциональный |
Интенсивность | Опциональный |
Зависимое спаривание каналов | Опциональный |
TNS | Опциональный |
Банк фильтров/переключение окон | Необходимый |
Регулирование усиления | Опциональный |
Независимое спаривание каналов | Опциональный |
1.2.2 Назначение инструментов декодирования
Общая структура системы MPEG-2 ААС приведена на рисунках 1 и 2. В соответствии с таблицей 1 структура декодера состоит из необходимых и опциональных инструментов. Направление потока данных в этой схеме слева направо, сверху вниз. В задачи декодера входят обнаружение описания квантованных спектральных значений в потоке битов, декодирование квантованных значений и другой информации для восстановления, восстановление квантованных спектральных значений, обработка восстановленных спектральных значений соответствующими инструментами, активными для данного потока битов, с целью достигнуть исходного спектра входного звукового сигнала, и, наконец, преобразование спектральных значений во временные отсчеты, с (или без) дополнительного инструмента регулирования усиления. После начального восстановления и масштабирования восстановленных спектральных значений может применяться множество дополнительных инструментов, используемых для обеспечения более эффективного кодирования. Для каждого из дополнительных инструментов, которые работают в спектральном пространстве, предусмотрена опция отключения, и во всех случаях, когда обработка в спектральном пространстве не используется, входные спектральные значения поступают непосредственно на выход инструмента без изменений.
Рисунок 1 - Блок-схема кодера MPEG-2 ААС
Рисунок 2 - Блок-схема декодера MPEG-2 ААС
1.2.3 Вход и выход инструментов демультиплексирования
На вход инструмента демультиплексирования поступает поток битов MPEG-2 ААС. Демультиплексор разделяет поток данных MPEG-AAC на части, предзначенные для каждого инструмента, и предоставляет для каждого из инструментов информацию о потоке битов, относящуюся к этому инструменту.
На выходе инструмента демультиплексирования потока битов содержится:
- информация о разделении для прозрачного кодирования;
- прозрачно-кодированные спектральные значения;
- информация о M/S (опционально);
- информация о состоянии предсказывающего устройства (опционально);
- информация для управления intensity stereo и информация для управления спаренным каналом (опциональные);
- информация о временном формировании шума (TNS) (опционально);
- информация для управления банком фильтров;
- информация о регулировании усиления (опционально).
1.2.4 Инструмент прозрачного декодирования
Информация потока битов с демультиплексора поступает на инструмент прозрачного декодирования, который анализирует ее, декодирует коды Хаффмана и восстанавливает квантованные спектральные значения, а также кодированные с помощью кодов Хаффмана и ДИКМ масштабные коэффициенты.
На вход инструмента прозрачного декодирования поступают информация о разделении для прозрачного кодирования и прозрачно-кодированные спектральные значения.
Выход инструмента прозрачного декодирования содержит декодированное целочисленное представление масштабных коэффициентов и квантованные спектральные значения.
1.2.5 Инструмент деквантования
Квантованные спектральные сигналы поступают на вход инструмента деквантования, который преобразует целочисленные значения в восстановленные деквантованные спектральные значения. Этот деквантователь является неоднородным.
1.2.6 Инструмент перемасштабирования
Инструмент перемасштабирования преобразует целочисленное представление масштабных коэффициентов в их фактические значения и умножает восстановленные, деквантованные спектральные значения на соответствующие масштабные коэффициенты.
На вход инструмента перемасштабирования поступает декодированное целочисленное представление масштабных коэффициентов и восстановленные, деквантованные спектральные значения.
На выходе инструмента перемасштабирования содержатся масштабированные, деквантованные спектральные значения.
1.2.7 ИнструментM/S
На вход инструмента поступает информация о M/S (середина/сторона) и масштабированные, деквантованные спектральные значения, относящиеся к парам каналов. Инструмент M/S преобразует пары спектральных значений из M/S в L/R под управлением информации о M/S с целью улучшения кодирования.
На выходе инструмента M/S присутствуют масштабированные, деквантованные спектральные значения сигналов, относящиеся к парам каналов после декодирования M/S.
Следует учитывать, что масштабированные, деквантованные спектральные значения индивидуально кодированных каналов не обрабатываются блоком M/S и передаются непосредственно на выход инструмента M/S без изменений. Если инструмент M/S не является активным, все спектральные значения проходят через этот блок без изменений.
1.2.8 Инструмент предсказания
Этот инструмент обращает процесс предсказания, выполненный в кодере. Обратный процесс предсказания добавляет избыточность, которая была устранена инструментом предсказания в кодере, под управлением информации о состоянии предсказывающего устройства. Данный инструмент представляет собой обратное адаптивное предсказывающее устройство второго порядка. На вход инструмента предсказания поступают информация о состоянии предсказывающего устройства и масштабированные, деквантованные спектральные значения. На выходе инструмента предсказания - масштабированные, деквантованные спектральные значения после предсказания.
Если предсказание не используется, масштабированные, деквантованные спектральные значения поступают непосредственно на выход блока без изменений.
1.2.9 Инструментintensity stereo
Данный инструмент реализует декодирование intensity stereo спектральных пар. На вход инструмента intensity stereo поступают деквантованные спектральные значения и управляющая информация intensity stereo.
На выходе инструмента intensity stereo - деквантованные спектральные значения после декодирования канала интенсивности.
Масштабированные, деквантованные спектральные значения индивидуально кодированных каналов поступают непосредственно на выход этого инструмента без изменений, если intensity stereo не используется. Инструмент intensity stereo и инструмент M/S располагаются так, чтобы работа M/S и intensity stereo была взаимоисключающей для любой полосы масштабных коэффициентов и группы одной пары спектральных значений.
1.2.10 Инструмент спаривания для зависимо коммутируемых каналов
Инструмент добавляет соответствующие данные от зависимо коммутируемых каналов к спектральным значениям в соответствии с информацией для управления спариванием каналов. На входе инструмента спаривания - деквантованные спектральные значения и информация для управления спариванием каналов. На выходе инструмента - деквантованные спектральные значения вместе с зависимо коммутируемыми каналами.
Масштабированные, деквантованные спектральные значения поступают непосредственно на выход этого инструмента без изменений, если спаривание каналов не применяется. В зависимости от информации для управления спариванием каналов, зависимо коммутируемые каналы могут быть спарены до или после обработки TNS.
1.2.11 Инструмент спаривания для независимо коммутируемых каналов
Инструмент добавляет соответствующие данные от независимо коммутируемых каналов к временному сигналу в соответствии с информацией для управления спариванием каналов. На вход инструмента спаривания поступает временной сигнал, аналогичный сигналу на выходе набора фильтров и информация для управления спариванием каналов.
На выходе инструмента - временной сигнал вместе с независимо коммутируемыми каналами.
Временной сигнал поступает непосредственно на выход этого инструмента без изменений, если спаривание каналов не используется.
1.2.12 Инструмент временного формирования шума (TNS)
С помощью данного инструмента реализуется управление точной временной структурой шума кодирования. В кодере в результате процесса TNS сглаживается временная огибающая сигнала, к которому это было применено. В декодере происходит обратный процесс для восстановения фактической временной огибащей (их) под управлением информации о TNS. Это выполняется фильтрацией частей спектральных данных. На входе инструмента TNS присутствуют деквантованные спектральные значения и информация о TNS, на выходе - деквантованные спектральные значения.
Если этот блок отключен, деквантованные спектральные значения поступают на его выход без изменений.
1.2.13 Банк фильтров/инструмент переключения окон
Банк фильтров реализует обратное спектральное преобразование. Обратное дискретное косинусное преобразование (ОДКП) используется в качестве банка фильтров. ОДКП может поддерживать либо один набор из 128 или 1024, или четыре набора из 32 или 256 спектральных коэффициентов.
На вход банка фильтров поступают деквантованные спектральные значения и информация для управления банком фильтров, на выход(ы) банка фильтров - восстановленные временные отсчеты звукового сигнала(ов).
1.2.14 Инструмент регулирования усиления
При использовании данного инструмента осуществляется отдельное регулирование усиления временных отсчетов в каждой из четырех частотных полос, которые были получены регулированием усиления PQF-банка фильтров кодера. Далее инструмент собирает четыре частотных полосы и восстанавливает форму временного сигнала с помощью банка фильтров инструмента регулирования усиления. При этом на вход инструмента регулирования усиления поступают восстановленные временные отсчеты звукового сигнала(ов) и информация о регулировании усиления, а на выход(ы) инструмента регулирования усиления - восстановленные временные остчеты звукового сигнала(ов).
Если инструмент регулирования усиления не используется, восстановленные временные отсчеты звукового сигнала(ов) поступают непосредственно из банка фильтров на выходе декодера. Этот инструмент используется в профиле масштабируемой частоты дискретизации (SSR).
2 Нормативные ссылки
В настоящем стандарте использованы нормативные ссылки на следующие стандарты:
ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений
ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20...20000 Гц)
ГОСТ 27667-88 Система цифровая звуковая "Компакт-диск". Параметры
ГОСТ 28376-89 Компакт-диск. Параметры и размеры.
Примечание - При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов в информационной системе общего пользования - на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю "Национальные стандарты", который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный стандарт заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться заменяющим (измененным) стандартом. Если ссылочный стандарт отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.
3 Термины, определения, символы и сокращения
3.1 Термины и определения
основные звуковые каналы: Все каналы, представленные либо single_channel_element() (см. 6.2.1), либо channel_pair_element() (см. 6.2.1).
программа: Набор основных звуковых каналов, coupling_channel_element() (см. 6.2.1), lfe_channel_element() (см. 6.2.1) и сопутствующих потоков данных, требующих одновременного декодирования и воспроизведения.
Примечание - Программа может быть определена по умолчанию (см. 6.5.3.1 и 6.5.3.3) или указана program_config_element() (см. 6.5.3.2). Данные single_channel_element() (см. 6.2.1), channel_pair_element() (см. 6.2.1), coupling_channel_element(), lfe_channel_element() или канал передачи данных могут сопровождать одну или несколько программ в любом потоке битов.
синтаксический анализатор: Функциональный элемент декодера, который извлекает из кодированного потока битов серию битов, представляющих кодированные элементы.
спектральные коэффициенты: Дискретные значения в частотном пространстве на выходе набора фильтров анализа.
стерео избыточность: Часть стереофонического звукового сигнала обладает стерео избыточностью, если она не способствует пространственному восприятию сигнала.
число учитываемых каналов;NCC: Число каналов, представленных SCE элементами, независимо переключаемых ССЕ и СРЕ, т.е. единожды взятое количество SCE плюс единожды взятое количество независимо коммутируемых ССЕ плюс дважды взятое число СРЕ, в соответствии с соглашением о присвоении имен в декодерах и потоках битов MPEG-AAC, NCC = A+I.
Примечание - Число учитываемых каналов используется для получения требуемого размера входного буфера декодера (см. 6.2.2).
3.2 Символы и сокращения
Математические операторы, используемые в этом стандарте, аналогичны используемым в языке программирования С. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.
3.2.1 Арифметические операторы
+ - Сложение.
- - Вычитание (как бинарный оператор) или отрицание (как унарный оператор).
++ - Инкремент.
- - Декремент.
* - Умножение.
/ - Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до 1, а -7/4 и 7/-4 округляются до -1.
// - Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до 2, а -3//2 округляется до -2.
| | - Абсолютное значение. | | х | = х, когда х> 0 |
| х | = 0, когда х == 0 | |
| х | = -х, когда х <0 |
% - Деление с остатком. Операция определена только для положительных чисел.
Sign ( ) - Sign (х) = 1, когда х> 0 | |
Sign (х) = 0, когда х == 0 | |
Sign (х) = -1, когда х <0 |
NINT ( ) - Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.
sin - Синус.
cos - Косинус.
ехр - Экспонента.
3.2.2 Логические операторы
|| - Логическое ИЛИ.
&& - Логическое И.
! -Логическое НЕТ.
3.2.3 Операторы сравнения
> - Больше
> = - Больше или равно
< - Меньше
<= - Меньше или равно
== - Равно
! = - Не равно
max [,...,] - максимальное значение.
min [,...,] - минимальное значение.
3.2.4 Побитные операторы
Использование побитных операций подразумевает представление чисел в дополнительном коде.
& - Побитное И.
| - Побитное ИЛИ.
>> - Сдвиг вправо со знаком.
<< - Сдвиг влево с нулевым заполнением.
3.2.5 Присвоение
= - Оператор присвоения.
3.2.6 Мнемоники
Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.
bslbf | - | Битовая строка, младший бит слева. Битовые строки пишутся как строка единиц и нулей внутри одинарных кавычек, например ’1000 0001’. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения. |
L, С, R, LS, RS - Аудиосигналы: левый, центральный, правый, левый окружения, правый окружения. | ||
M/S - Середина/сторона и . | ||
rpchof | - | Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка. (Аудио). |
uimsbf | - | Целое число без знака, старший бит первый. |
vlclbf | - | Код с переменной длиной слова, левый бит первый, где левый относится к порядку, в котором пишутся коды с переменной длиной. |
window | - | Номер фактического временного слота в случае block_type == 2, 0 <= window <= 2. (Аудио). |
В многобайтовых словах старший байт является первым.
3.2.7 Константы
e - 2,71828182845...
3.3 Метод описания синтаксиса потока битов
Поток битов на входе декодера описывается в разделе 4. Каждый элемент данных выделен жирным.
При описании элемента указываются
- его имя;
- мнемоника для его типа и порядок передачи.
Действие, вызванное декодируемым элементом данных в потоке битов, зависит от значения того элемента данных и на элементах данных, ранее декодируемых. Декодирование элементов данных и определение параметров состояния, используемых в их декодировании, описываются в пунктах, следующих за описанием синтаксиса. Следующие конструкции используются, чтобы выразить условия, когда элементы данных присутствуют, и указаны обычным шрифтом.
Следует обратить внимание, что в этом синтаксисе используется принятое в языке С соглашение о том, что переменная или выражение, возвращающие ненулевое значение, эквивалентны результату "истина":
while ( condition ) { data_element . . . } | Если "истина", то группа элементов данных появляется в потоке данных. Это повторяется, пока условие не "ложь". |
do { data_element . . . } while ( condition ) | Элемент данных всегда появляется, по крайней мере, однажды. Элемент данных повторяется, пока условие не "ложь". |
if ( condition) { { data_element . . . } | Если условие является "истина", то первая группа элементов данных появляется в потоке данных. |
else { data_element . . . } | Если условие не является "истиной", то вторая группа элементов данных появляется в потоке данных. |
for (expr1; expr2; expr3) { data_element . . . } | Expr1 является инициализирующим выражением цикла. Обычно оно определяет начальное состояние счетчика. Ехрr2 является условием, определяющим проверку перед каждой итерацией цикла. Цикл завершается, когда условие не является "истиной". ExprЗ является выражением, которое выполняется в конце каждой итерации цикла, обычно оно инкрементирует счетчик. |
Следует обратить внимание на следующие наиболее распространенные варианты использования этой конструкции: | |
for ( i = 0; i < n; i++) { data_element . . . } | Группа элементов данных появляется n раз. Условия в пределах группы элементов данных могут зависеть от значения переменной управления циклом i, которая обнуляется при первом появлении, увеличивается на 1 при втором появлении и т.д. |
Как отмечено, группа элементов данных может содержать вложенные условные конструкции. Для компактности может быть опущен, когда следует только один элемент данных: | |
data_element [] | data_element является массивом данных. Количество элементов массива зависит от контекста. |
data_element [n] | data_element [n] является (n+1)-ым элементом массива данных. |
data_element [m] [n] | data_element [m] [n] является элементом (m+1)-ой строки (n+1)-го столбца двухмерного массива данных. |
data_element [l] [m] [n] | data_element [l] [m] [n] является (l+1), (m+1), (n+1)-ым элементом трехмерного массива данных. |
data_element [m...n] | data_element [m...n] содержит биты массива data_element с m по n включительно. |
Знание самого синтаксиса потока битов в разделе 4 не следует считать достаточным для декодирования. В частности, это лишь определяет корректный и свободный от ошибок входной поток битов. Реальные декодеры для того, чтобы правильно начать декодирование, должны иметь средства обнаружения стартовых последовательностей.
Определение функции nextbits
Функция nextbits() реализует сравнение строки битов со строкой битов на входе декодера.
4 Синтаксис
Описание синтаксиса потока битов представлено в таблицах 2-30.
4.1 Формат обмена аудиоданными, ADIF
Таблица 2 - Синтаксис adif_sequence ()
Синтаксис | Количество битов | Мнемоника |
adif_sequence() | ||
{ | ||
adif_header(); | ||
byte_alignment(); | ||
raw_data_stream(); | ||
} |
Таблица 3 - Синтаксис adif_header ()
Синтаксис | Количество битов | Мнемоника |
adif_header() { | ||
adif_id; | 32 | bslbf |
copyright_id_present; | 1 | bslbf |
if (copyright_id_ipresent) { | ||
copyright_id; } | 72 | bslbf |
original_copy; | 1 | bslbf |
home; | 1 | bslbf |
bitstream_type; | 1 | bslbf |
bitrate; | 23 | uimsbf |
num_program_config_elements; | 4 | bslbf |
if (bitstream_type == ’0’) { | ||
adif_buffer_fullness; | 20 | uimsbf |
} for (i = 0; i < num_program_config_elements + 1; i++) { | ||
program_config_element(); } } |
4.2 Транспортный поток аудиоданных, ADTS
Таблица 4 - Синтаксис adts_sequence ()
Синтаксис | Количество битов | Мнемоника |
adts_seguence() | ||
{ | ||
while (nextbits() == syncword) { | ||
adts_frame(); | ||
} | ||
} |
Таблица 5 - Синтаксис adts_frame ()
Синтаксис | Количество битов | Мнемоника |
adts_frame() | ||
{ | ||
adts_fixed_header(); | ||
adts_variable_header(); | ||
if (number_of_raw_data_blocks_in_frame == 0) { | ||
adts_error_check(); | ||
raw_data_block(); | ||
} | ||
else{ | ||
adts_header_error_check(); | ||
for (i = 0; i <= number_of_raw_data_blocks_in_frame; | ||
i++) { | ||
raw_data_block(); | ||
adts_raw_data_block_error_check(); | ||
} | ||
} | ||
} |
Таблица 6 - Синтаксис adts_header_error_check ()
Синтаксис | Количество битов | Мнемоника |
adts header error check () | ||
{ | ||
if (protection_absent == ’0’) { | ||
for (i = 1; i <= number of raw data blocks in frame; i++) { | ||
raw data block position[i]; | 16 | Uimsfb |
} | ||
crc check; | 16 | rpchof |
} | ||
} |
Таблица 7 - Синтаксис of adts_raw_data_block_error_check()
Синтаксис | Количество битов | Мнемоника |
adts raw data block error check() | ||
{ | ||
if (protection absent == ’0’) | ||
crc check; | 16 | rpchof |
} |
4.2.1 Фиксированный заголовок ADTS
Таблица 8 - Синтаксис adts_fixed_header()
Синтаксис | Количество битов | Мнемоника |
adts_fixed_header() | ||
{ | ||
syncword; | 12 | bs/bf |
ID; | 1 | bs/bf |
layer; | 2 | uimsbf |
protection_absent; | 1 | bslbf |
profile; | 2 | uimsbf |
sampling_frequency_index; | 4 | uimsbf |
private_bit; | 1 | bslbf |
channel_configuration; | 3 | uimsbf |
original_copy; | 1 | bslbf |
home; | 1 | bslbf |
} |
4.2.2 Переменный заголовок ADTS
Таблица 9 - Синтаксис adts_variable_header ()
Синтаксис | Количество битов | Мнемоника |
adts_variable_header() | ||
{ | ||
copyright_identification_bit; | 1 | bslbf |
copyright_identification_start; | 1 | bslbf |
aac_frame_length; | 13 | bslbf |
adts_buffer_fullness; | 11 | bslbf |
number_of_raw_data_blocks_in_frame; | 2 | uimsfb |
} |
4.2.3 Обнаружение ошибок
Таблица 10 - Синтаксис adts_error_check ()
Синтаксис | Количество битов | Мнемоника |
adts_error_check() | ||
{ | ||
if (protection absent == ’0’) | ||
crc check; | 16 | rpchof |
} |
4.3 Необработанные данные
Таблица 11 - Синтаксис raw_data_stream ()
Синтаксис | Количество битов | Мнемоника |
raw_data_stream () | ||
{ | ||
while (data available()) { | ||
raw data block(); | ||
} | ||
} |
Таблица 12 - Синтаксис raw_data_block()
Синтаксис | Количество битов | Мнемоника |
raw_data_block() | ||
{ | ||
while ((id = id_syn_ele) != ID_END) { | 3 | uimsbf |
switch (id) { | ||
case ID_SCE: single_channel_element (); | ||
break; | ||
case ID_CPE: channel_pair_element(); | ||
break; | ||
case ID_CCE: coupling_channel_element (); | ||
break; | ||
case ID_LFE: lfe_channel_element(); | ||
break; | ||
case ID_DSE: data_stream_element(); | ||
break; | ||
case ID_PCE: program_config_element (); | ||
break; | ||
case ID FIL: } fill_element(); | ||
} byte _alignment(); | ||
} |
Таблица 13 - Синтаксис single_channel_element()
Синтаксис | Количество битов | Мнемоника |
single_channel_element() | ||
{ | ||
element_instance_tag; | 4 | uimsbf |
individual_channel_stream(0); | ||
} |
Таблица 14 - Синтаксис channel_pair_element ()
Синтаксис | Количество битов | Мнемоника |
channel_pair_element() | ||
{ | ||
element_instance_tag; | 4 | uimsbf |
common_window; | 1 | uimsbf |
if (common_window) { | ||
ics_info(); | ||
ms_mask_present; | 2 | uimsbf |
if (ms_mask_present == 1) { | ||
for (g = 0; g < num_window_groups; g++) { | ||
for (sfb = 0; sfb < max_sfb; sfb++) { | ||
ms_used[g][sfb]; | 1 | uimsbf |
} | ||
} | ||
} | ||
} | ||
individual_channel_stream(common_window); | ||
individual_channel stream(common_window); | ||
} |
Таблица 15 - Синтаксис ics_info ()
Синтаксис | Количество битов | Мнемоника |
ics_info() | ||
{ | ||
ics_reserved_bit; | 1 | bslbf |
window_sequence; | 2 | uimsbf |
window shape; | 1 | uimsbf |
if (window sequence == EIGHT SHORT SEQUENCE) { | ||
max sfb; | ||
scale factor grouping; | 4 | uimsbf |
} | 7 | uimsbf |
else { | ||
max sfb; | 6 | uimsbf |
predictor data present; | 1 | uimsbf |
if (predictor data present) { | ||
predictor reset; | 1 | uimsbf |
if (predictor reset) { | ||
predictor reset group number; | 5 | uimsbf |
} | ||
for (sfb = 0; sfb< min(max sfb, | ||
PRED SFB MAX); sfb++) { | ||
prediction used[sfb]; | 1 | uimsbf |
} | ||
} | ||
} | ||
} |
Таблица 16 - Синтаксис individual_channel_stream ()
Синтаксис | Количество битов | Мнемоника |
individual_channel_stream(common_window) | ||
{ | ||
global_gain; | 8 | uimsbf |
if (!common_window) | ||
ics_info(); | ||
section_data(); | 1 | uismbf |
scale_factor_data(); | ||
pulse_data_present; | ||
if (pulse_data_present) { | ||
pulse data(); | 1 | uimsbf |
} | ||
tns_data_present; | ||
if (tns_data_present) { | ||
tns data(); | 1 | uimsbf |
} | ||
gain_control_data_present; | ||
if (gain_control_data_present) { | ||
gain control data(); | ||
} | ||
spectral data(); | ||
} |
Таблица 17 - Синтаксис section_data()
Синтаксис | Количество битов | Мнемоника |
section_data() | ||
{ | ||
if (window_sequence == EIGHT_SHORT_SEQUENCE) | ||
sect_esc_val = (1<<3) -1; | ||
else sect_esc_val = (1<<5) -1; | ||
for (g = 0; g < num window groups; g++) { | ||
k = 0; | ||
i = 0; | ||
while (k < max_sfb) { | ||
sect_cb[g][i]; | ||
sect_len = 0; | ||
while (sect_len _incr == sect_esc_val) { | 4 | uimsbf |
sect_len += sect_esc_val; | ||
} | {3; 5} | uismbf |
sect_len += sect_len_incr; | ||
sect_start[g][i] = k; | ||
sect_end[g][i] = k+sect_len; | ||
for (sfb = k; sfb < k+sect_len; sfb++) | ||
sfb_cb[g][sfb] = sect_cb[g][i]; | ||
к += sect_len; | ||
/++; | ||
} | ||
num_sec[g] = i; | ||
} | ||
} |
Таблица 18 - Синтаксис scale_factor_data ()
Синтаксис | Количество битов | Мнемоника |
scale_factor_data() | ||
{ | ||
for (g = 0; g < num_window_groups; g++) { | ||
for (sfb = 0; sfb < max sfb; sfb++) { | ||
if (sfb_cb[g][sfb] != ZERO_HCB) { | ||
if (is_intensity(g,sfb)) | ||
hcod_sf[dpcm_is_position[g][sfb]]; | 1..19 | vlclbf |
else | ||
hcod_sf [dpcm_sf [g] [sfb]]; | 1..19 | vlclbf |
} | ||
} | ||
} | ||
} |
Таблица 19 - Синтаксис tns_data ()
Синтаксис | Количество битов | Мнемоника |
tns_data() | ||
{ | ||
for (w = 0; w < num windows; w++) { | 1..2 | uimsbf |
n filt[w]; | ||
if (n_filt[w]) | ||
coef res[w]; | 1 | uimsbf |
for (filt = 0; filt < n filtfw]; filt++) { | ||
length[w][filt]; | {4;6} | uimsbf |
order[w][filt]; | {3;5} | uimsbf |
if (order[w][filt]) { | ||
direction[w][filt]; | ||
coef_compress[w][filt]; | 1 | uimsbf |
for (i = 0; i < order[w][filt]; i++) | 1 | uimsbf |
coef[w][filt][i]; | 2..4 | uimsbf |
} | ||
} | ||
} | ||
} |
Таблица 20 - Синтаксис spectral_data ()
Синтаксис | Количество битов | Мнемоника |
spectral_data() | ||
{ | ||
for (g = 0; g < num window groups; g++) { | ||
for (i = 0; i < num sec[g]; i++) { | ||
if (sect cb[g][i] != ZERO HCB && | ||
sect_cb[g][i] <= ESC_HCB) { | ||
for (k = sect_sfb_offset[g][sect_start[g][i]]; | ||
к < sect sfb offset[g][sect end[g][i]];) { | ||
if (sect cb[g][i]<FIRST PAIR HCB){ | ||
hcod[sect_cb[g][i]][w][x][y][z]; | 1..16 | vlclbf |
if (unsigned_cb[sect_cb[g][i]]) | ||
quad_sign_bits; | 0..4 | bslbf |
к += QUAD_LEN; | ||
} else { | ||
hcod[sect_cb[g][i]][y][z]; | ||
if (unsigned_cb[sect_cb[g][i]]) | 1..15 | vlclbf |
pair_sign_bits; | ||
к += PAIR_LEN; | 0..2 | bslbf |
if (sect cb[g][i] == ESC_HCB) { | ||
if (y == ESC_FLAG) | ||
hcod_esc_y; | ||
if (z == ESC_FLAG) | 5..21 | vlclbf |
hcod_esc_z; | ||
} | 5..21 | vlclbf |
} | ||
} | ||
} | ||
} | ||
} | ||
} |
Таблица 21 - Синтаксис pulse_data ()
Синтаксис | Количество битов | Мнемоника |
pulse_data() | ||
{ | ||
number_pulse; | 2 | uimsbf |
pulse_start_sfb; | 6 | uimsbf |
for (i = 0; i < number_pulse+1; i++) { | ||
pulse_offset[i]; | 5 | uimsbf |
pulse_amp[i]; | 4 | uimsbf |
} | ||
} |
Таблица 22 - Синтаксис coupling_channel_element()
Синтаксис | Количество битов | Мнемоника |
coupling_channel_element() | ||
{ | ||
element_instance_tag; | 4 | uimsbf |
ind_sw_cce_f l ag; | 1 | uimsbf |
num_coupled_elements; | 3 | uimsbf |
num_gain_element_lists = 0; | ||
for (c = 0; c < num_coupled_elements+1; c++) { | ||
num_gain_element_lists++; | ||
cc_target_is_cpe[c]; | 1 | uimsbf |
cc_target_tag_select[c]; | 4 | uimsbf |
if (cc target is cpe[c]) { | ||
cc_l[c]; | 1 | uimsbf |
cc_r[c]; | ||
if (cc_l[c] && cc_r[c]) | 1 | uimsbf |
num gain element lists++; | 1 | uimsbf |
} | ||
} | ||
cc_domain; | ||
gain_element_sign; | 1 | uimsbf |
gain_element_scale; | 2 | uimsbf |
individual_channel_stream(0); | 1 | uimsbf |
for (c = 1; c < num_gain_element_lists; c++) { | ||
if (ind_sw_cce_flag) { | ||
cge = 1; | ||
} else { | ||
common_gain_element_presen[c]; | 1..19 | vlclbf |
cge = common_gain_element_present[c]; | ||
} | ||
if (cge) | ||
hcod_sf[common_gain_element[c]]; | 1..19 | vlclbf |
else{ | ||
for (g = 0; g < num_window_groups; g++) { | ||
for (sfb = 0; sfb < max_sfb; sfb++) { | ||
if (sfb_cb[g][sfb] != ZERO_HCB); | ||
hcod sf[dpcm_gain_element[c][g][sfb]]; | ||
} | ||
} | ||
} | ||
} | ||
} |
Таблица 23 - Синтаксис lfe_channel_element()
Синтаксис | Количество битов | Мнемоника |
Ife_channel_element() | ||
{ | ||
element_instance_tag; | 4 | uimsbf |
individual_channel_stream(0); | ||
} |
Таблица 24 - Синтаксис data_stream_element ()
Синтаксис | Количество битов | Мнемоника |
data_stream_element() | ||
{ | ||
element_instance_tag; | 4 | uimsbf |
data_byte_align_flag; | 1 | uimsbf |
cnt = count; | 8 | uimsbf |
if (cnt == 255) { | ||
cnt += esc_count; | 8 | uimsbf |
if (data_byte_align_flag) { | ||
byte_alignment(); | ||
for (i = 0; i < cnt; i++) { | ||
data_stream_byte[element_instance_tag][i]; | 8 | uimsbf |
} | ||
} |
Таблица 25 - Синтаксис program_config_element ()
Синтаксис | Количество битов | Мнемоника |
program_config_element() | ||
{ | ||
element_instance_tag; | 4 | uimsbf |
profile; | 2 | uimsbf |
sampling_frequency_index; | 4 | uimsbf |
num_front_channel_elements; | 4 | uimsbf |
num_side_channel_elements; | 4 | uimsbf |
num_back_channel_elements; | 4 | uimsbf |
num_Ife_channel_elements; | 2 | uimsbf |
num_assoc_data_elements; | 3 | uimsbf |
num_valid_cc_elements; | 4 | uimsbf |
mono_mixdown_present; | 1 | uimsbf |
if (mono_mixdown_present ==1) | ||
mono_mixdown_element_number; | 4 | uimsbf |
stereo_mixdown_present; | 1 | uimsbf |
if (stereo_mixdown_present ==1) | ||
stereo_mixdown_element_number; | 4 | uimsbf |
matrix_mixdown_idx_present; | 1 | uimsbf |
if (matrix_mixdown_idx_present == 1) { | ||
matrix_mixdown_idx; | 2 | uimsbf |
pseudo_surround_enable; | 1 | uimsbf |
} | ||
for (i = 0; i < num_front_channel_elements; i++) { | 1 | bslbf |
front_element_is_cpe[i]; | 4 | uimsbf |
front_element_tag_select[i]; | ||
} | 1 | bslbf |
for (i = 0; i < num_side_channel_elements; i++) { | 4 | uimsbf |
side_element_is_cpe[i]; | ||
side_element_tag_select[i]; | 1 | bslbf |
} | 4 | uimsbf |
for (i = 0; i < num_back_channel_elements; i++) { | ||
back_element_is_cpe[i]; | 4 | uimsbf |
back_element_tag_select[i]; | ||
} | 4 | uimsbf |
for (i = 0; i < num_lfe_channel_elements; i++) | ||
If e_element_tag_select[i]; | 1 | uimsbf |
for (i = 0; i < num_assoc_data_elements; i++) | ||
assoc_data_element_tag_select[i]; | 4 | uimsbf |
for (i = 0; i < num_valid_cc_elements; i++) { | 8 | uimsbf |
cc_element_is_ind_sw[i]; | ||
valid_cc_element_tag_select[i]; | 8 | uimsbf |
} | ||
byte_alignment(); | ||
comment_field_bytes; | ||
for (i = 0; i < comment_field_bytes; i++) | ||
comment_field_data[i]; | ||
} |
Таблица 26 - Синтаксис fill_element()
Синтаксис | Количество битов | Мнемоника |
fill_element() | ||
{ | ||
cnt = count; | 4 | uimsbf |
if (cnt== 15) | ||
cnt += esc count -1; | 8 | uimsbf |
while (cnt > 0) { | ||
cnt -= extension_payload(cnt); | ||
} | ||
} |
Таблица 27 - Синтаксис gain_control_data()
Синтаксис | Количество битов | Мнемоника |
gain_control_data() | ||
{ | ||
max_band; | 2 | uimsbf |
if (window_sequence == ONLY_LONG_SEQUENCE) { | ||
for (bd = 1; bd <= max_band; bd++) { | ||
for (wd = 0; wd < 1; wd++) { | ||
adjust_num[bd][wd]; | 3 | uimsbf |
for (ad = 0; ad < adjust_num[bd][wd]; ad++) { | ||
alevcode[bd][wd][ad]; | 4 | uimsbf |
aloccode[bd][wd][ad]; | 5 | uimsbf |
} | ||
} | ||
} | ||
} | 3 | uimsbf |
else if (window_sequence == LONG_START_SEQUENCE) | ||
{ | 4 | uimsbf |
for (bd = 1; bd <= max_band; bd++) { | ||
for (wd = 0; wd < 2; wd++) { | 4 | uimsbf |
adjust_num[bd][wd]; | ||
for (ad = 0; ad < adjust_num[bd][wd]; ad++) { | 2 | uimsbf |
alevcode[bd] [wd] [ad]; | ||
if (wd == 0) | ||
aloccode[bd] [wd] [ad]; | ||
else | ||
aloccode[bd][wd][ad]; | ||
} | ||
} | ||
} | ||
} | ||
else if (window sequence == | ||
EIGHT_SHORT_SEQUENCE) { | ||
for (bd = 1; bd <= max_band; bd++) { | ||
for (wd = 0; wd < 8; wd++) { | ||
adjust_num[bd][wd]; | 3 | uimsbf |
for (ad = 0; ad < adjust_num[bd][wd]; ad++) { | ||
alevcode[bd] [wd] [ad]; | 4 | uimsbf |
aloccode[bd] [wd] [ad]; | 2 | uimsbf |
} | ||
} | ||
} | ||
} | ||
else if (window_sequence == LONG_STOP_SEQUENCE) { | ||
for (bd = 1; bd <= max_band; bd++) { | ||
for (wd = 0; wd < 2; wd++) { | ||
adjust_num[bd][wd]; | 3 | uimsbf |
for (ad = 0; ad < adjust_num[bd][wd]; ad++) { | ||
alevcode[bd][wd][ad]; | 4 | uimsbf |
if (wd == 0) | ||
aloccode[bd][wd][ad]; | 4 | uimsbf |
else | 5 | uimsbf |
aloccode[bd][wd][ad]; | ||
} | ||
} | ||
} | ||
} | ||
} |
Таблица 28 - Синтаксис extension_payload ()
Синтаксис | Количество битов | Мнемоника | ||
extension_payload(cnt) | uimsbf | |||
{ | ||||
extension_type; | 4 | |||
switch (extension type) { | ||||
case EXT_DYNAMIC_RANGE: | ||||
n = dynamic_range_info(); | ||||
return n; | Note 1 | |||
case EXT_SBR_DATA: | ||||
retum_sbr_extension_data(id aac, 0); | Note 1 | |||
case EXT SBR DATA_CRC: | ||||
retum_sbr_extension_data(id aac, 1); | Uimsbf | |||
case EXT FILL DATA: | ||||
fill_nibble; | /* равен “0000” */ | 4 | Uimsbf | |
for (i = 0; i < cnt-1; i++) | ||||
fill_byte[i]; | /* равен “10100101” */ | 8 | ||
return cnt; | ||||
case default: | uimsbf | |||
for(i = 0; i<8*(cnt-1)+4;i++) | ||||
other_bits[i]; | 1 | |||
return cnt; | ||||
} | ||||
} |
Примечание - 1. id_aac является id_syn_ele соответствующего элемента AAC (ID_SCE или ID_CPE) или SCE ID в случае ССЕ.
Таблица 29 - Синтаксис dynamic_range_info ()
Синтаксис | Количество битов | Мнемоника |
dynamic range info() | ||
{ | ||
n = 1; drc_num_bands = 1; | ||
pce_tag_present; if | 1 | uimsbf |
(pce_tag_present == 1) { | ||
pce_ instance_tag; | 4 | uimsbf |
drc_tag_reserved_bits; | 4 | uimsbf |
excluded_chns_present; | 1 | Uimsbf |
if (excluded_chns_present == 1) { | ||
n += excluded_channels(); | ||
drc_bands_present; if | 1 | Uimsbf |
(drc_bands_present == 1) { | ||
drc_band_incr; | 4 | uimsbf |
drc_bands_reserved_bits; | 4 | uimsbf |
drc_num_bands = drc_num_bands + drc_band_incr; | ||
for (i = 0; i < drc_num_bands; i++) { | ||
drc_band_top[i]; | 8 | uimsbf |
prog_ref_level_present; if | 1..7 | uimsbf |
(prog_ref_level_present == 1) { | ||
prog_ref_level; | 1 | uimsbf |
prog_ref_level_reserved_bits; | 1 | uimsbf |
for (i = 0; i < drc_num_bands; i++) | uimsbf | |
{ dyn_rng_sgn[i]; dyn_rng_ctl[i]; | 7 | uimsbf |
return n; |
Таблица 30 - Синтаксис excluded_channels ()
Синтаксис | Количество битов | Мнемоника |
excluded_channels() | ||
{ | ||
n = 0; | ||
num_excl_chan = 70; | ||
for (i = 0; i < 7; i++) | ||
exclude_mask[i]; | 1 | uimsbf |
while (additional_excluded_chns[n-1] == 1) { | 1 | uimsbf |
for (i = num_excl_chan; i < num_excl_chan+7; i++) | ||
exclude_mask[i]; | 1 | uimsbf |
num_excl_chan += 7; | ||
return n; |
5 Профили и функциональная совместимость профилей
5.1 Состав профилей
Стандартом устанавливаются три профиля (таблица 31):
Основной профиль
Профиль пониженной сложности
Профиль с масштабируемой частотой дискретизации
В program_config_element() и adts_fixed_header() поле из двух битов указывает на используемый профиль:
Таблица 31 - Профили
Индекс | Профиль |
0 | Основной профиль |
1 | Профиль пониженной сложности (LC) |
2 | Профиль с масштабируемой частотой дискретизации (SSR) |
3 | (Зарезервированный) |
5.1.1 Основной профиль
Основной профиль используется тогда, когда затраты в памяти не имеют особого значения и доступны существенные вычислительные ресурсы. Для обеспечения лучшего возможного сжатия могут использоваться все инструменты, за исключением инструмента регулирования усиления. В потоке битов основного профиля должна содержаться только одна программа (program_config_element()). Программа в потоке битов основого профиля не должна содержать никаких элементов моно или стерео сведения.
5.1.2 Профиль с пониженной сложностью
Профиль с пониженной сложностью используется тогда, когда ресурс RAM, вычислительных мощностей и требования сжатия ограничены определенными рамками. В профиле с пониженной сложностью не используются предсказание и инструмент регулирования усиления, кроме того, порядок TNS ограничен. В потоке битов профиля с пониженной сложностью должна содержаться только одна программа (program_config_element ()). Программа в потоке битов профиля с пониженной сложностью не должна содержать никаких элементов моно или стерео сведения.
5.1.3 Профиль с масштабируемой частотой дискретизации
В профиле с масштабируемой частотой дискретизации требуется инструмент регулирования усиления. Предсказание и спаривание каналов не разрешены, порядок TNS и ширина канала ограничены. Для самого низкого из 4 PQF диапазонов регулирование усиления не используется. В случае сокращения полосы частот звукового сигнала профиль SSR масштабируется соответственно сложности. В потоке битов профиля с масштабируемой частотой дискретизации должна содержаться только одна программа (program_config_element ()). Программа в потоке битов профиля с масштабируемой частотой дискретизации не должна содержать никаких элементов моно или стерео сведения.
5.1.4 Соглашение о присвоении имен для декодеров и потоков битов MPEG-2 ААС
Декодер или поток битов могут быть определены как A.L.I.D <Имя профиля> MPEG-2 ААС декодер или поток битов, где А - число основных звуковых каналов, L - число каналов LFE, I - число независимо переключаемых каналов, D - число зависимо переключаемых каналов и <Имя профиля> - фактическое имя профиля. Пример: название "декодер 5.1.1.1 основого профиля MPEG-2 ААС" соответствует декодеру, способному декодировать 5 основных звуковых каналов, один канал LFE и по одному независимо и зависимо переключаемых ССЕ, используя с каждым из каналов определенный профиль. Это может быть сокращено как М.5.1.1.1, где М указывает на основной профиль декодера. Точно так же, декодер с профилем пониженного уровня сложности может быть определен как L, а профиль SSR - S.
5.1.5 Соглашение о присвоении имен для декодеров и потоков битов MPEG-2 ААС + MPEG 4 SBR
Декодер или поток битов, дополнительно соответствующий MPEG-4 АОТ SBR на определенном уровне может быть обозначен аналогично, путем добавления "+ SBR I X [HQILP]" к имени декодера, где X - уровень декодера/потока битов профиля НЕ-ААС с характеристиками, определенными в ИСО/МЭК 14496-3 [3]. Пример: декодер 5.1.1.1 основного профиля MPEG-2 ААС + SBR / 5 HQ.
5.1.6 Минимальное количество основных звуковых каналов и профилей, поддерживаемых декодером
Чтобы обеспечить определенный уровень функциональной совместимости, определяются следующие минимальные возможности декодеров для данного профиля и числа основных звуковых каналов (таблица 32).
Таблица 32 - Минимальные возможности декодера с точки зрения конфигурации каналов
Число основных звуковых каналов | Основной профиль | Профиль с пониженной сложностью | Профиль SSR |
1 | 1.0.0.0 | 1.0.0.0 | 1.0.0.0 |
2 | 2.0.0.0 | 2.0.0.0 | 2.0.0.0 |
3 | 3.0.1.0 | 3.0.0.1 | 3.0.0.0 |
4 | 4.0.1.0 | 4.0.0.1 | 4.0.0.0 |
5 | 5.1.1.1 | 5.1.0.1 | 5.1.0.0 |
7 | 7.1.1.2 | 7.1.0.2 | 7.1.0.0 |
5.1.7 Параметры инструментов, зависящие от профиля
В соответствии с используемым профилем значение константы TNS_MAX_ORDER устанавливается для длинных окон следующим образом: TNS_MAX_ORDER==20 для основного профиля, TNS_MAX_ORDER==12 для профиля с пониженной сложностью и профиля с масштабируемой частотой дискретизации. Для коротких окон константа TNS_MAX_ORDER==7 для всех профилей.
Согласно частоте дискретизации и используемому профилю значение константы TNS_MAX_BANDS устанавливается в соответствии с таблицей 33.
Таблица 33 - Значения TNS_MAX_BANDS в зависимости от профиля и частоты дискретизации
Частота дискретизации, Гц | Низкая сложность/ основной профиль (длинные окна) | Низкая сложность/ основной профиль (короткие окна) | Профиль с масштабируемой частотой дискретизации (длинные окна) | Профиль с масштабируемой частотой дискретизации (длинные окна) |
96000 | 31 | 9 | 28 | 7 |
88200 | 31 | 9 | 28 | 7 |
64000 | 34 | 10 | 27 | 7 |
48000 | 40 | 14 | 26 | 6 |
44100 | 42 | 14 | 26 | 6 |
32000 | 51 | 14 | 26 | 6 |
24000 | 46 | 14 | 29 | 7 |
22050 | 46 | 14 | 29 | 7 |
16000 | 42 | 14 | 23 | 8 |
12000 | 42 | 14 | 23 | 8 |
11025 | 42 | 14 | 23 | 8 |
8000 | 39 | 14 | 19 | 7 |
5.2 Функциональная совместимость профилей
Любой поток битов данного профиля (таблица 34), число основных звуковых каналов, каналов LFE, независимых и зависимых каналов которого меньше или равно соответствующему числу каналов, поддерживаемых декодером того же самого профиля, может быть декодирован этим декодером.
Таблица 34 и рисунок 3 описывают функциональную совместимость трех профилей.
Таблица 34 - Функциональная совместимость профилей
Профиль декодера | Профиль кодера | ||
| Основной профиль | Профиль LC | Профиль SSR |
Основной профиль | да | да | нет* |
Профиль LC | нет | да | нет* |
Профиль SSR | нет | нет** | да |
* Эти потоки могут быть декодированы, если декодер основного профиля или LC профиля будет в состоянии обнаружить, но не декодировать информацию о регулировании усиления, однако у восстановленного звука будет ограниченный частотный диапазон. ** Эти потоки могут быть декодированы, однако частотный диапазон декодируемого сигнала будет ограничен приблизительно до 5 кГц, что соответствует неискаженной части первой полосы фильтра PQMF. |
Рисунок 3 - Функциональная совместимость профилей
6 Общая структура данных
6.1 Форматы обмена ААС
6.1.1 Краткий обзор
Блок raw_data_block() содержит все данные, относящиеся к аудио (включая вспомогательные данные). Кроме того, дополнительная информация, такая как sampling_frequency, необходима, чтобы полностью описать аудио последовательность. Формат обмена аудиоданными (ADIF) содержит все элементы, которые необходимы для описания потока битов согласно этому стандарту.
В определенных приложениях некоторые или все элементы синтаксиса, подобно тем, которые определены в заголовке ADIF, например, sampling_rate, могут быть известны декодеру за счет других средств и, следовательно, не появляются в потоке битов.
Кроме того, может требоваться дополнительная информация, которая изменяется от блока до блока (например, для улучшения считывания или устойчивости к ошибкам). Поэтому транспортные потоки могут быть разработаны для определенного приложения и не определяются в этом стандарте. Однако здесь описывается один нестандартный транспортный поток под названием Транспортный поток аудиоданных (ADTS). Он может использоваться для приложений, в которых декодер может считать этот поток.
6.1.2 Формат обмена аудиоданными (ADIF)
6.1.2.1 Краткий обзор
Формат обмена аудиоданными (ADIF) содержит один заголовок в начале последовательности, сопровождаемый raw_data_stream().raw_data_stream() может не содержать дальнейших program_config_element () элементов.
ADIF применим только для систем с определенной точкой начала декодирования, не подразумевающих начало процесса декодирования с заранее неизвестной позиции потока аудиоданных. Он может использоваться в качестве формата обмена, в котором содержится вся информация, необходимая для декодирования и воспроизведения аудиоданных.
6.1.2.2 Определения
6.1.2.2.1 Функции данных
adif_sequence () | Последовательность согласно формату обмена аудиоданных (таблица 2). |
adif_header () | Заголок формата обмена аудиоданными, располагается в начале adif_sequence (таблица 3). |
byte_alignment () | Выравнивание относительно первого бита заголовка. |
raw_data_stream () | См. 6.2.1 и таблицу 11. |
program_config_element () | Содержит информацию о конфигурации для одной программы (таблица 3). См. 6.5. |
6.1.2.2.2 Элементы данных
adif_id | Идентификатор формата обмена аудиоданными. Его значение - 0x41444946 (старший бит первый), ASCII код строки "ADIF" (таблица 3). |
copyright_id_present | Указывает, присутствует ли copyright_id (таблица 3). |
copyright_id | Поле состоит из 8-битового copyright_identifier, сопровождаемого 64-битовым copyright_number (таблица 3). copyright_number - значение, которое идентифицирует защищенный авторским правом материал. |
original_copy | Определение элемента данных copyright. |
home | Определение элемента данных original/copy. |
bitstream_type | флаг, указывающий на тип потока битов (таблица 3): ’0’ - постоянный поток битов. Этот поток битов может быть передан по каналу с постоянной скоростью; ’1’ - поток битов с переменной скоростью. Этот поток битов не предназначен для передачи по каналам с постоянной скоростью. |
bitrate | беззнаковое целое число размером 23 бита, указывающее на скорость передачи потока битов в бит/с в случае постоянного потока битов или на максимальную пиковую скорость передачи (измеренную за один фрейм) в случае потоков битов с переменной скоростью. Значение 0 указывает, что скорость передачи не известна (таблица 3). |
num_program_config_element | Количество элементов program_config_element(), определенных для текущей adif_sequence (); равно num_program_config_element+1 (таблица 3). Минимальное значение 0 указывает на один элемент program_config_element(). |
adif_buffer_fullness | состояние резервуара битов после кодирования первого raw_data_block() в adif_sequence(). Передается как количество доступных битов в резервуаре битов (таблица 3). |
6.1.2.2.3 Элементы справки
data_available () | Функция, которая возвращает ’1’, если данные доступны, иначе ’0’. |
6.1.3 Транспортный поток аудиоданных (ADTS)
6.1.3.1 Краткий обзор
Транспортный поток аудиоданных (ADTS) будет распознан декодерами как "Уровень 4" потока битов.
Фиксированный заголовок ADTS содержит синхрослово плюс все части заголовка, которые необходимы для декодирования и которые не изменяются от фрейма к фрейму. Переменный заголовок ADTS содержит данные заголовка, которые изменяются от фрейма к фрейму.
6.1.3.2 Определения
6.1.3.2.1 Функции данных
adts_sequence () | Последовательность согласно транспортному потоку аудиоданных ADTS (таблица 4). |
adt_frame () | Фрейм ADTS, состоящий из фиксированного заголовка, переменного заголовка, опциональной проверки на наличие ошибок и конкретного количества блоков raw_data_block() (таблица 5). |
adts_fixed_header () | Фиксированный заголовок ADTS. Информация в этом заголовке не изменяется от фрейма к фрейму. Он повторяется в каждом фрейме, чтобы обеспечить произвольный доступ к потоку битов (таблица 8). |
adts_variable_header () | Переменный заголовок ADTS. Этот заголовок передается в каждом фрейме, так же как и фиксированный заголовок, однако содержит данные, которые изменяются от фрейма к фрейму (таблица 9). |
adts_error_check () | Следующие биты защищены и поступают в алгоритм CRC в порядке появления: все биты adts_fixed_header() все биты adts_variable_header() первые 192 бита любого: single_channel_element() channel_pair element() coupling_channel_element() Ife_channel_element() Первые 128 битов второго individual_channel_stream () в channel_pair_element () должны быть защищены. Вся информация в любом program_config_element() или data_stream_element () должна быть защищена. Любой элемент с фактической длиной меньше указанной продолжительности поля защиты 128 или 192 битов дополняется нулями до указанной продолжительности поля защиты для CRC расчета. Биты id_syn_ele должны быть исключены из CRC защиты. Если продолжительность СРЕ короче 192 битов, нулевые биты добавляются, чтобы достигнуть продолжительности 192 битов. Кроме того, если первый ICS из СРЕ заканчивается на N-м бите (N <192), первые (192 - N) битов второго ICS защищаются дважды, каждый раз в порядке появления. Например, если второй ICS начинается со 190 бита СРЕ, первые 3 бита второго ICS защищаются дважды. Наконец, если продолжительность второго ICS короче128 битов, нулевые биты добавляются, чтобы достигнуть продолжительности 128 битов. |
adts_header_error_check () | Следующие биты защищены и поступают в алгоритм CRC в порядке появления: все биты adts_fixed_header () все биты adts_variable_header() все биты каждого raw_data_block_position[i]. |
adts_raw_data_block_ | Относительно i-ой проверки |
error_check () | adts_raw_data_block_error_check(), биты i-го блока raw_data_block () защищены и поступают в алгоритм CRC в порядке появления, согласно тому, что определено для adts_error_check() за исключением того, что никакие биты заголовка не рассматриваются. |
raw_data_block () | см. 6.2.1 и таблицу 12. |
6.1.3.2.2 Элементы данных
raw_data_block_position[i] | Начальная позиция i-го блока raw_data_block() в adts_frame(), определяемая как смещение в байтах от начальной позиции первого блока raw_data_block() в adts_frame(). |
crc_check | Данные об обнаружении ошибок CRC, произведенные согласно таблицам 6, 7 и 10. |
syncword | Строка битов ’1111 1111 1111’. См. таблицу 8 |
ID | Идентификатор MPEG, установлен в ’1’. См. таблицу 8. |
layer | Указывает, какой уровень используется. Установлен в ’00’. См. таблицу 8. |
protection_absent | Указывает, присутствуют ли данные error_check(). |
profile | Используемый профиль. См. таблицу 8. |
sampling_frequency_index | Указывает на частоту дискретизации согласно таблицам 8 и 35: |
Таблица 35 - Частота дискретизации в зависимости от sampling_frequency_index
sampling_frequency_index | Частота дискретизации, Гц |
0x0 | 96000 |
0x1 | 88200 |
0x2 | 64000 |
0x3 | 48000 |
0x4 | 44100 |
0x5 | 32000 |
0x6 | 24000 |
0x7 | 22050 |
0x8 | 16000 |
0x9 | 12000 |
0ха | 11025 |
0xb | 8000 |
0xc | резерв |
0xd | резерв |
0xe | резерв |
0xf | резерв |
private_bit | См. таблицу 8. |
channel_configuration | Указывает на используемую конфигурацию канала. Если channel_configuration > 0, конфигурация канала дается в таблице 42 и 6.5.3.1. Если channel_configuration==0, конфигурация канала не определяется в заголовке и должна быть задана элементом program_config_element(), первым элементом синтаксиса первого raw_data_block() после заголовка (см. 6.5.3.2) или является неявной конфигурацией (см. 6.5.3.3), или должна быть известна из приложения (таблица 8). |
original_copy | См. определение в 6.1.2.2.2. |
home | См. определение в 6.1.2.2.2. |
copyright_identification_bit | Один бит 72-битного поля идентификации авторского права (см. copyright_id выше). Биты этого поля передаются фрейм за фреймом; первый бит copyright_identification_start равен ’1’. Поле состоит из 8-битного copyright_identifier, сопровождаемого 64-битным copyright_number. copyright_number - значение, которое идентифицирует защищенный авторским правом материал. См. таблицу 9. |
copyright_identification_start | Один бит, указывающий, что copyright_identification_bit в этом аудио фрейме - первый бит 72-битной идентификации авторского права. Если идентификация авторского права не передается, этот бит должен быть равен ’0’. ’0’ идентификация авторского права в этом аудио фрейме не используется]. ’1’ идентификация авторского права в этом аудио фрейме используется, см. таблицу 9. |
aac_frame_length | Размер фрейма, включая заголовки error_check в байтах (таблица 9). |
adts_buffer_fullness | Состояние резервуара битов в ходе кодирования фрейма ADTS, до первого блока raw_data_block() включительно и, опционально, после adts_raw_data_block_error_check(). Передается как количество доступных битов в резервуаре битов, деленное на NCC, деленное на 32 и округленное до целого значения (таблица 9). Шестнадцатеричное значение 7FF сигнализирует, что поток битов является потоком с переменной скоростью. В этом случае заполнение буфера не применимо. |
number_of_raw_data_ blocks_in_frame | Количество блоков raw_data_block(), которые мультиплексируютс* в adts_frame(), равно number_of_raw_data_blocks_in_frame + 1. Минимальное значение 0 указывает на один raw_data_block() (таблица 9). |
6.2 Необработанные данные
6.2.1. Определения
6.2.1.1 Функции данных
raw_data_stream () | Последовательность блоков raw_data_block(). |
raw_data_block () | Блок необработанных данных, который содержит аудиоданные за период времени, соответствующий 1024 отсчетам, относящейся к ним информации и других данных. Имеется семь синтаксических элементов, идентифицируемых по элементу данных id_syn_ele. Элементы audio_channel_element () в одном raw_data_stream () и одном raw_data_block() должны иметь одну и только одну частоту дискретизации. В raw_data_block () возможно появление того же самого синтаксического элемента несколько раз, однако element_instance_tag должны иметь различные 4 бита, за исключением data_stream_element() и fill_element(). Поэтому в одном raw_data_block() может быть от 0 до максимум 16 случаев появления любого синтаксического элемента, за исключением data_stream_element() и fill_element (), где это ограничение не применяется. Если встречаются несколько data_stream_element() с одинаковым element_instance_tag, они являются частью одного потока данных. У fill_element () нет element_instance_tag (так как контент не требует последующей ссылки), и может встретиться любое число раз. Конец блока raw_data_block() обозначается специальным id_syn_ele (TERM), который встречается в raw_data_block() лишь единожды (таблица 12). |
single_channel_element () | Сокращенно SCE. Синтаксический элемент потока битов, содержащий кодированные данные для единственного звукового канала. single_channel_element() в основном состоит из individual_channel_stream(). В блоке необработанных данных может присутствовать до 16 таких элементов, у каждого из которых должен быть уникальный element_instance_tag (таблица 13). |
channel_pair_element () | Сокращенно CPE. Синтаксический элемент потока битов, содержащий данные для пары каналов. channel_pair_element () состоит из двух individual_channel_stream() и дополнительнной информации об объединенном кодировании. Эти два канала могут иметь общую служебную информацию. Элемент channel_pair_element() имеет те же самые ограничения, что и single_channel_element, element_instance_tag, и число появлений (таблица 14). |
coupling_channel_element () | Сокращенно ССЕ. Синтаксический элемент, который содержит аудиоданные для спаренного канала. В спаренном канале представлена информация об одном блоке многоканальной интенсивности или диалогах многоязычных программ. Правила для количества coupling_channel_element() и instance_tag аналогичны правилам для single_channel_element() (таблица 22). См. 10.3. |
lfe_channel_element () | Сокращенно LFE. Синтаксический элемент, который содержит канал с низкой частотой дискретизации. Правила для числа lfe_channel_element() и instance_tag аналогичны правилам для single_channel_element () ’s (таблица 23). См. 6.4. |
audio_channel_element () | Общее обозначение для single_channel_element (), channel_pair_element (), coupling_channel_element () и Ife_channel_element (), |
program_config_element () | Сокращенно PCE. Синтаксический элемент, который содержит данные конфигурации программы. Правила для числа program_config_element () и element_instance_tag аналогичны правилам для single_channel_element () (таблица 25). PCE должны следовать перед всеми другими синтаксическими элементами в raw_data_block(). См. 6.5. |
fill_element () | Сокращенно FIL. Синтаксический элемент, который содержит данные заполнения. Может присутствовать любое число элементов, которые могут встретиться в любом порядке в raw_data_block (таблица 26). См. 6.7. |
data_stream_element () | Сокращенно DSE. Синтаксический элемент, который содержит данные. Снова, есть 16 element_instance_tags. Однако нет ограничения на количество data_stream_element() ни с каким instance_tag, в то время как единственный поток данных может продолжаться через многократный data_stream_element() с тем же самым instance_fag (таблица 24). См. 6.5.3. |
byte_alignment () | Выравнивание относительно первого бита raw_data_block(). |
6.2.1.2 Элементы данных
id_syn_ele | Элемент данных, который идентифицирует синтаксический элемент или конец raw_data_block() (таблица 12): |
Таблица 36 - Идентификация синтаксических элементов
ID | Код | Сокращение | Синтаксический элемент |
ID_SCE | 0x0 | SCE | single_channel_element() |
ID_CPE | 0x1 | CPE | channel_pair_element() |
ID_ССЕ | 0x2 | ССЕ | coupling_channel_element() |
ID_LFE | 0x3 | LFE | Ife_channel_element() |
ID_DSE | 0x4 | DSE | data_stream_element() |
ID_PCE | 0x5 | PCE | program_config_element() |
ID_FIL | 0x6 | FIL | fill_element() |
ID_END | 0x7 | TERM |
element_instance_tag | Уникальный тег для всех синтаксических элементов, кроме fill_element(). Все синтаксические элементы, содержащие теги, могут встречаться более одного раза, но, за исключением data_stream_element(), должны иметь уникальный element_instance_tag в каждом raw_data_block(). Этот тег также используется для указания на синтаксические элементы аудио в single_channel_element(), channel_pair_element(), Ife_channel_element(), data_channel_element() и coupling_channel_element() в program_config_element() и обеспечивает возможность использования до 16 независимых program_config_element() (таблицы 13, 14, 22, 23, 24, 25, 26). |
6.2.2 Требования к буферу
6.2.2.1 Минимальный входной буфер декодера
Следующие правила используются для вычисления максимального количества битов во входном буфере как для потока битов в целом, для любой данной программы, так и для любого данного SCE/CPE/CCE:
Входной размер буфера составляет 6144 бита на SCE или независимо переключаемого ССЕ, плюс 12288 битов на СРЕ (6144*NCC). Размеры общего буфера и отдельного буфера ограничиваются так, чтобы предел буферизации мог быть вычислен для всего потока битов, всей программы или для отдельного audio_channel_element(), позволяя декодеру разбивать многоканальный поток битов на отдельные моно и стерео потоки битов, которые декодируются отдельными моно и стерео декодерами соответственно. Все биты для LFE или зависимого ССЕ должны выделяться исходя из общих требований к буферу, основанных на независимых ССЕ, SCE и СРЕ. Кроме того, все биты, требуемые для любых DSE, PCE, FIL, фиксированных заголовков, переменных заголовков, byte_alignment и CRC, должны быть также выделены исходя из тех же самых общих требований к буферу.
6.2.2.2 Резервуар битов
Управление резервуаром битов осуществляется в кодере. Максимальный резервуар битов в кодере зависит от NCC и средней скорости передачи. Максимальный размер резервуара битов для каналов с постоянной скоростью передачи может быть вычислен путем вычитания среднего числа битов на блок из минимального входного размера буфера декодера. Например, при 96 кбит/с для сигнала стерео на частоте дискретизации 44,1 кГц среднее число битов на блок (mean_framelength) (96000 bit/s/44100 1/s* 1024) = 2229,1156.... Это приводит к максимальному размеру резервуара битов (max_bit_reservoir) INT (12288 битов - 2229,1156 ...) = 10058. Для каналов с переменной скоростью передачи кодер должен работать так, чтобы требования к входному буферу не превышали минимальный входной буфер декодера.
Состояние резервуара битов (bit_reservoir_state) передается в поле buffer_fullness либо как состояние резервуара битов, округленного до целого значения (adif_buffer_fullness), либо как состояние резервуара битов, разделенного на NCC, разделенного на 32 и округленного до целого значения (adts_buffer_fullness).
bit_reservoir_state последующих фреймов может быть получен следующим образом:
bit reservoir_state[frame] = bit_reservoir_state[frame - 1] + mean_framelength - framelength[frame].
Framelengths должны быть выбраны так, чтобы следующее условие выполнялось:
6.2.2.3 Максимальная скорость передачи
Максимальная скорость передачи зависит от частоты дискретизации звука. Она может быть вычислена по минимальному размеру входного буфера согласно формуле
В таблице 37 содержится несколько примеров максимальных скоростей передачи на канал в зависимости от используемой частоты дискретизации.
Таблица 37 - Максимальная скорость передачи в зависимости от частоты дискретизации
sampling_frequency | максимальная скорость передачи/NCC |
48 кГц | 288 кбит/с |
44,1 кГц | 264,6 кбит/с |
32 кГц | 192 кбит/с |
6.2.3 Процесс декодирования
Предполагая, что начало raw_data_block() известно, он может быть декодирован без использования дополнительной информации транспортного уровня и содержит 1024 отсчета звукового сигнала на один выходной канал. Частота дискретизации звукового сигнала, sampling_frequency_index, может быть указана в program_config_element() или специальным образом в зависимости от приложения. В последнем случае sampling_frequency_index должен быть обнаружен в потоке битов.
Так как данная частота дискретизации связана только с одной таблицей частот дискретизации, и так как максимальная гибкость требуется в диапазоне возможных частот дискретизации, следующая таблица должна использоваться, чтобы связать требуемую частоту дискретизации с желаемой.
Таблица 38 - Соответствие частот дискретизации
Диапазон частот, Гц | Частота дискретизации, Гц |
f> = 92017 | 96000 |
92017> f> = 75132 | 88200 |
75132> f> = 55426 | 64000 |
55426> f> = 46009 | 48000 |
46009> f> = 37566 | 44100 |
37566> f> = 27713 | 32000 |
27713> f> = 23004 | 24000 |
23004> f> = 18783 | 22050 |
18783> f> = 13856 | 16000 |
13856> f> = 11502 | 12000 |
11502> f> = 9391 | 11025 |
9391> f | 8000 |
raw_data_stream поддерживает кодирование каналов как с постоянной скоростью, так и с переменной. В каждом случае структура потока битов и работа декодера идентичны, за исключением некоторых незначительных отличий.
Для каналов с постоянной скоростью передачи кодер может добавлять элемент FIL, чтобы увеличить скорость до требуемого уровня. Декодер, считывающий данные канала с постоянной скоростью передачи, должен накопить минимальное число битов в его входном буфере до начала декодирования так, чтобы не произошло переполнение выходного буфера. В случае переменной скорости каждый raw_data_block() может обладать минимальной длиной (скоростью) так, чтобы достигалось требуемое качество звучания, и в декодере отсутствовали минимальные входные требования к данным до начала декодирования.
Примеры самых простых потоков битов:
Сегмент потока битов | Выходной сигнал |
<SCE> <TERM> <SCE> <TERM> ... | Моно сигнал |
<CPE> <TERM> <CPE> <TERM>... | Стереосигнал |
<SCE> <CPE> <CPE> <LFE> <TERM> <SCE> <CPE> <CPE> <LFE> <TERM> ... | Сигнал 5.1, |
где угловые скобки (<>) используются, чтобы разграничить синтаксические элементы. Для моно сигнала у каждого SCE должно быть то же самое значение в его element_instance_tag, и точно так же для сигнала стерео у каждого СРЕ должно быть то же самое значение в его element_instance_tag. Для сигналов 5.1 у каждого SCE должно быть то же самое значение в его element_instance_tag, каждый СРЕ, связанный с фронтальной парой каналов, должен иметь то же самое значение в его element_instance_tag, и каждый СРЕ, связанный с последней парой каналов, должен иметь то же самое значение в его element_instance_tag.
Если эти потоки битов должны быть переданы по каналу с постоянной скоростью передачи, то они могут включать в себя элемент fill_element() для подстройки мгновенной скорости передачи. В этом случае пример кодированного сигнала стерео
<СРЕ> <FIL> <TERM> <СРЕ> <FIL> <TERM> ...
Если потоки битов должны переносить вспомогательные данные при передаче по каналу с постоянной скоростью, то пример кодированного сигнала стерео
<CPE><DSE><FIL><TERM><CPE><DSE><FIL><TERM>....
Все элементы data_stream_element() имеют одинаковый element_instance_tag, если они - часть одного потока данных.
6.3 Элемент одиночного канала (SCE), элемент парного канала (СРЕ) и поток индивидуального канала (ICS)
6.3.1 Определения
6.3.1.1 Элементы данных
common_window | Флаг, указывающий на совместное использование общего ics_info() двумя individual_channel_stream(). В случае совместного использования ics_info() является частью channel_pair_element() и должен использоваться для обоих каналов. Иначе ics_info() является частью каждого individual_channel_stream() (таблица 14). |
ics_reserved_bit | Флаг, зарезервированный для будущего использования. Должен быть равен ’0’. |
window_sequence | Указывает на последовательность окон, как определено в таблице 44 (таблица 15). |
window_shape | 1-битное поле, определяющее тип окна для переключения окон (таблица 15). |
max_sfb | Количество полос масштабных коэффициентов на группу (таблица 15). |
scale_factor_grouping | Битовое поле, которое содержит информацию о группировке коротких спектральных данных (таблица 15). |
6.3.1.2 Функции данных
individual_channel_stream () | Содержит данные, необходимые для декодирования одного канала (таблица 16). |
ics_info () | Содержит служебную информацию, необходимую для декодирования individual_channel_stream(). Потоки individual_channel_stream () элемента channel_pair_element () могут совместно использовать один общий ics_info() (таблица 15). |
6.3.1.3 Элементы справки
scalefactor window band | Термин для полос масштабных коэффициентов в пределах окна, см. таблицы 45-57. |
scalefactor band | Термин для полос масштабных коэффициентов в пределах группы. В случае EIGHT_SHORT_SEQUENCE и группировки, полоса масштабных коэффициентов может содержать несколько масштабных коэффициентов окна соответствующей частоты. Для всех остальных window_sequences полосы масштабных коэффициентов и полосы масштабных коэффициентов в окне идентичны. |
g | Индекс группы. |
win | Индекс окна в пределах группы. |
sfb | Индекс полосы масштабных коэффициентов в пределах группы. |
swb | Индекс окна масштабных коэффициентов в пределах окна. |
bin | Индекс коэффициента. |
num_window_groups | Количество групп окон, которые совместно используют один набор масштабных коэффициентов. |
window_group_length[g] | Число окон в каждой группе. |
bit_set (bit_field, bit_num) | Функция, которая возвращает значение bit_num поля bit_field (самый правый бит - бит 0). |
num_windows | Количество окон в фактической последовательности окон. |
num_swb_long_window | Количество полос масштабных коэффициентов для длинных окон. Это число должно быть выбрано в зависимости от частоты дискретизации. См. 6.9. |
num_swb_short_window | Количество оконных масштабных коэффициентов для коротких окон. Это число должно быть выбрано в зависимости от частоты дискретизации. См. 6.9. |
num_swb | Количество оконных полос масштабных коэффициентов для коротких окон в случае EIGHT_SHORT_SEQUENCE, в противном случае - количество оконных полос масштабных коэффициентов для длинных окон. |
swb_offset_long_window [swb] | Таблица, содержащая индекс самого низкого спектрального коэффициента полосы масштабных коэффициентов sfb для длинных окон. Эта таблица должна быть выбрана в зависимости от частоты дискретизации. См. 6.9. |
swb_offset_short_window [swb] | Таблица, содержащая индекс самого низкого спектрального коэффициента полосы масштабных коэффициентов sfb для коротких окон. Эта таблица должна быть выбрана в зависимости от частоты дискретизации. См. 6.9 |
swb_offset [swb] | Таблица, содержащая индекс самого низкого спектрального коэффициента полосы масштабных коэффициентов sfb для коротких окон в случае EIGHT_SHORT_SEQUENCE, иначе для длинных окон. |
sect_sfb_offset [g] [section] | Таблица, которая содержит номер первого коэффициента для section_data () в пределах группы. Это смещение зависит от window_sequence и scale_factor_grouping. |
sampling_frequency_index | Указывает на частоту дискретизации согласно таблицам 8 и 35. |
6.3.2 Процесс декодирования
6.3.2.1 Декодирование single_channel_element () и channel_pair_element ()
Элемент single_channel_element () составляется из element_instance_tag и individual_channel_stream. В этом случае ics_info () всегда располагается в individual_channel_stream.
Элемент channel_pair_element () начинается с element_instance_tag и флага common_window. Если common_window равен ’1’, то ics_info() используется совместно для двух individual_channel_stream элементов, и информация о MS передается. Если common_window равен ’0’, то ics_info() существует в каждом individual_channel_stream и информация MS не представлена.
6.3.2.2 Декодирование individual_channel_stream ()
В individual_channel_stream используется следующий порядок декодирования:
- получить global_gain;
- получить ics_info () (искать в потоке битов, если общая информация не присутствует);
- получить section_data ();
- получить scalefactor_data (), если есть;
- получить pulse_data (), если есть;
- получить tns_data (), если есть;
- получить gain_control_data (), если есть;
- получить spectral_data (), если есть.
Процесс восстановления pulse_data описан в разделе 7, tns_data - в разделе 12, gain_control данных - в разделе 14. Краткий обзор декодирования ics_info() (см. 6.3), данных раздела 7, масштабных коэффициентов (разделы 7 и 9) и спектральных данных (раздел 7) дается ниже.
6.3.2.3 Восстановление ics_info ()
Для элементов single_channel_element () ics_info () всегда располагается непосредственно после global_gain в inidividual_channel_stream (). Для channel_pair_element () есть два возможных расположения ics_info (). Если оба отдельных канала в парном окне переключаются вместе, то ics_info () располагается непосредственно после common_window в channel_pair_element () и common_window устанавливается в 1. Иначе ics_info () присутствует сразу после global_gain в каждом из двух individual_channel_stream () в channel_pair_element (), и common_window устанавливается в 0.
ics_info () содержит информацию об окне, связанную с ICS, и таким образом позволяет каналам в channel_pair переключаться при необходимости независимо. Кроме того, ics_info () содержит max_sfb, который определяет верхнюю границу количества ms_used [] и predictor_used [] бит, которые должны быть переданы. Если window_sequence является EIGHT_SHORT_SEQUENCE, то scale_factor_grouping передается. Если ряд коротких окон образует группу, то они совместно используют масштабные коэффициенты, так же как и позиции intensity stereo и их спектральные коэффициенты чередуются. Первое короткое окно всегда является новой группой, таким образом, группировка битов не передается. Последующие короткие окна находятся в той же самой группе, если соответствующий бит группировки равен 1. Новая группа начинается, если соответствующий бит группировки равен 0. Предполагается, что сгруппированные короткие окна обладают подобной сигнальной статистикой. Следовательно, их спектральные значения чередуются для размещения коррелированных коэффициентов друг с другом. Способ чередования показан на рисунке 6. ics_info () также содержит данные предсказания для отдельного канала или пары каналов (см. раздел 11).
6.3.2.4 Восстановление данных разделения
В ICS восстанавливается информация об одном длинном окне или восьми коротких окнах. Данные разделения являются первым полем, которое должно быть декодировано и описывают коды Хаффмана, которые применяются к полосам масштабных коэффициентов в ICS (см. разделы 7 и 9). Форма данных разделения: sect_cb кодовая книга для раздела и sect_len длина раздела.
Эта длина восстанавливается путем последовательного считывания разделов из потока битов, с добавлением символа escape к разделу, до тех пор, пока значение, отличное от escape не будет найдено и добавлено к разделу. Этот процесс ясно объясняется при использовании С-подобного описания синтаксиса. Следует учесть, что в пределах каждой группы разделы должны формировать полосы масштабных коэффициентов от нуля до max_sfb так, чтобы первый раздел в пределах каждой группы начинался с нулевой полосы, а последний раздел заканчивался на полосе max_sfb.
Данные разделения описывают кодовую книгу и затем длину раздела, использующего эту кодовую книгу, начинающегося с первой полосы масштабных коэффициентов и продолжающегося, пока не будет достигнуто полное количество полос масштабных коэффициентов.
После того как это описание предоставлено, все масштабные коэффициенты и спектральные данные, соответствующие нулевой кодовой книге, обнуляются, и значения, соответствующие этим масштабным коэффициентам или спектральным данным, не будут переданы. Масштабные коэффициенты любых полос масштабных коэффициентов, кодовая книга Хаффмана которых является нулем, будут отброшены. Точно так же, все спектральные данные, относящиеся к нулевой кодовой книге Хаффмана, исключаются (см. разделы 7 и 9).
Кроме того, спектральные данные, относящиеся к полосам масштабных коэффициентов, у которых есть сборник интенсивностных кодов, не будут переданы, однако управляющие интенсивностные коэффициенты будут переданы вместо масштабных коэффициентов, как описано в 10.2.
6.3.2.5 Поиск данных о масштабных коэффициентах и декодирование
Для каждой полосы масштабных коэффициентов, которая не находится в разделе, кодированном с помощью нулевой кодовой книги (ZERO_HCB), передается масштабный коэффициент. Такие полосы будут обозначены как "активные" полосы масштабных коэффициентов, а соответствующие масштабные коэффициенты - как "активные" масштабные коэффициенты. Глобальное усиление, первый элемент данных в ICS, обычно является значением первого активного масштабного коэффициента. Все масштабные коэффициенты (и управляющие коэффициенты) передаются с помощью кодированных Хаффманом ДИКМ значений относительно предыдущего "активного" масштабного коэффициента (см. разделы 9 и 11). Первый активный масштабный коэффициент дифференциально кодируется относительно значения глобального усиления. Следует учесть, что неэффективно использовать global_gain, отличный от первого активного масштабного коэффициента и затем ненулевое значение ДИКМ для первого ДИКМ значения масштабного коэффициента. Если какие-либо управляющие интенсивностные коэффициенты получены вперемешку с ДИКМ масштабными коэффициентами, они отправляются в модуль intensity stereo, и не включаются в ДИКМ-кодирование значений масштабных коэффициентов (см. 10.2). Значение первого активного масштабного коэффициента обычно передается как global_gain с первым ДИКМ масштабным коэффициентом, имеющим нулевое значение. Как только масштабные коэффициенты декодируются и их целые значения получены, фактические значения находятся через степенную функцию (см. раздел 9).
6.3.2.6 Поиск спектральных данных и декодирование
Спектральные данные восстанавливаются как последняя часть анализа ICS. Они состоят из всех ненулевых коэффициентов, оставшихся в спектре или спектрах, упорядоченных, как описано в ICS_info. Для каждой ненулевой, неинтенсивностной кодовой книги данные восстанавливаются с помощью Хаффмана, декодированием четверок или пар, как показано в инструменте прозрачного кодирования (см. раздел 7). Если спектральные данные связываются с беззнаковой кодовой книгой Хаффмана, необходимые знаковые биты следуют за кодовым словом Хаффмана (см. 7.3). В случае сборника кодов ESCAPE, при получении значения escape, соответствующая escape-последовательность появится после указанного кода Хаффмана. Может встречаться от нуля до двух escape-последовательностей для каждой кодовой комбинации в сборнике кодов ESCAPE, в соответствии с наличием escape-значений в декодируемой кодовой комбинации. Для каждого раздела декодирование Хаффмана продолжается до тех пор, пока все спектральные значения в этом разделе не будут декодированы. Как только все разделы декодированы, данные умножаются на декодированные масштабные коэффициенты, и, в случае необходимости, устраняется чередование.
6.3.3 Окна и последовательности окон
Квантование и кодирование выполняются в частотном пространстве. С этой целью временной сигнал в кодере трансформируется в частотное пространство. Декодер выполняет обратное преобразование (см. раздел 13). В зависимости от сигнала кодер может варьировать частотно-временное разрешение путем использования двух различных окон: LONG_WINDOW и SHORT_WINDOW. Для переключения между окнами используются промежуточные окна перехода, LONG_START_WINDOW и LONG_STOP_WINDOW. В таблице 43 даны окна, соответствующая длина преобразования и форма окон. Используются 2 размера преобразования: 1024 (называемое длинным преобразованием) и 128 коэффициентов (называемое коротким преобразованием).
Последовательности окон образуются из окон исходя из того, что raw_data_block () всегда содержит данные, соответствующие 1024 выходным отсчетам. Элемент данных window_sequence определяет используемую последовательность окон. В таблице 44 показано, как последовательности окон образуются из отдельных окон.
6.3.4 Полосы масштабных коэффициентов и группировка
Множество инструментов декодера выполняют операции над группами последовательных спектральных значений, называемыми полосами масштабных коэффициентов (сокращенно ’sfb’). Ширина полос масштабных коэффициентов выбирается так, чтобы имитировать критические полосы слуховой системы человека. По этой причине число полос масштабных коэффициентов и их ширина зависят от длины преобразования и частоты дискретизации. В таблицах 45-57 приведены смещения начала каждой полосы масштабных коэффициентов для длин преобразования 1024 и 128 и различных частот дискретизации, соответственно.
Чтобы уменьшить количество служебной информации в случае использования последовательностей, которые содержат SHORT_WINDOWS, соседние SHORT_WINDOWS могут быть сгруппированы (см. рисунок 4). Информация о группировке содержится в элементе данных scale_factor_grouping. Группировка означает, что передается только один набор масштабных коэффициентов для всех сгруппированных окон, как будто это одно окно. Масштабные коэффициенты в этом случае применяются к соответствующим спектральным данным всех сгруппированных окон. Чтобы увеличить эффективность прозрачного кодирования (см. раздел 7), спектральные данные группы передаются в порядке чередования (см. 6.3.5). Чередование выполняется по полосам масштабных коэффициентов так, чтобы спектральные данные могли быть сгруппированы, чтобы сформировать виртуальную полосу масштабных коэффициентов, к которой может быть применен общий масштабный коэффициент. В пределах этого документа выражение "полоса масштабных коэффициентов" (сокращенно ’sfb’) означает эти виртуальные полосы масштабных коэффициентов. Если речь идет о полосах масштабных коэффициентов отдельных окон, используется выражение "оконная полоса масштабных коэффициентов" (сокращенно ’sfb’). Из-за влияния на полосы масштабных коэффициентов группировка сказывается на section_data, порядке следования спектральных данных (см. 6.3.5) и общем количестве полос масштабных коэффициентов. Для LONG_WINDOW полосы масштабных коэффициентов и оконные полосы масштабных коэффициентов окна идентичны, так как на одно окно приходится только одна группа.
Чтобы уменьшить количество информации, необходимой для передачи служебных данных, относящихся к каждой полосе масштабных коэффициентов, передается элемент данных max_sfb. Его значение превышает на единицу самую высокую активную полосу масштабных коэффициентов во всех группах. max_sfb влияет на интерпретацию данных раздела (см. раздел 7), передачу масштабных коэффициентов (см. разделы 7 и 9), передачу данных предсказывающего устройства (см. раздел 11) и передачу ms_mask (см. 10.1).
Так как полосы масштабных коэффициентов являются основным элементом алгоритма кодирования, необходимы некоторые справочные переменные и массивы для описания процесса декодирования во всех инструментах, с использованием полос масштабных коэффициентов. Эти справочные переменные зависят от sampling_frequency, window_sequence, scalefactor_grouping и max_sfb и должны быть созданы для каждого raw_data_block (). Псевдокод, показанный ниже, описывает:
- как определить число окон в window_sequence num_windows;
- как определить число window_groups num_window_groups;
- как определить число окон в каждой группе window_group_length [g];
- как определить общее количество оконных полос масштабных коэффициентов num_swb для фактического типа окна;
- как определить swb_offset [swb], смещение первого коэффициента в оконной полосе масштабных коэффициентов swb используемого окна;
- как определить sect_sfb_offset [g][section], смещение первого коэффициента в разделе section.
Это смещение зависит от window_sequence и scale_factor_grouping и требуется, чтобы декодировать spectral_data ().
Длинное окно преобразования всегда описывается как window_group, содержащая единственное окно. Так как число полос масштабных коэффициентов и их ширина зависят от частоты дискретизации, зависимые переменные индексируются с sampling_frequency_index для выбора соответствующей таблицы.
6.3.5 Порядок следования спектральных коэффициентов в spectral_data ()
Для окон ONLY_LONG_SEQUENCE (num_window_groups=1, window_group_length [0] = 1) спектральные данные расположены в порядке возрастания их номеров, как показано на рисунке 5.
Для окна EIGHT_SHORT_SEQUENCE порядок спектральных составляющих зависит от группировки следующим способом:
- группы следуют друг за другом;
- в пределах группы полоса масштабных коэффициентов состоит из спектральных данных всех сгруппированных SHORT_WINDOW окон соответствующей оконной полосы масштабных коэффициентов. Для примера, пусть длина группы находится в диапазоне от первого до восьмого окна SHORT_WINDOW;
- если есть восемь групп с единичной длиной каждая (num_window_groups = 8, window_group_length [0] = 1), результатом является последовательность их восьми спектральных значений, расположенных в порядке возрастания;
- если есть только одна группа с длиной восемь (num_window_group = 1, window_group_length [0] = 8), в результате спектральные данные всех восьми SHORT_WINDOW окон чередуются оконными полосами масштабных коэффициентов;
- на рисунке 6 показано расположение составляющих спектра для EIGHT_SHORT_SEQUENCE с группировкой SHORT_WINDOW согласно рисунку 4 (num_window_groups = 4);
- в пределах оконной полосы масштабных коэффициентов, коэффициенты расположены в порядке возрастания.
6.3.6 Длина выходного слова
Глобальное усиление для каждого звукового канала масштабируется так, чтобы целочисленная часть выхода ОМДКП могла использоваться непосредственно в качестве 16-разрядных выходных ИКМ аудиоданных, поступающих в цифро-аналоговый преобразователь (D/A). Это является режимом по умолчанию и обеспечивает корректные уровни громкости. Если декодер обладает цифро-аналоговым преобразователем, имеющим разрешение больше 16 разрядов, то выход ОМДКП может быть усилен так, чтобы сформировать требуемый размер слова. В этом случае уровень на выходе преобразователя будет соответствовать случаю с 16-разрядным D/A, однако будет обладать большим динамическим диапазоном и меньшим уровнем шумов квантования. Аналогичным образом обстоит ситуация с более короткими словами.
6.4 Канал низкой частоты (LFE)
Для совместимости с обычной структурой декодера lfe_channel_element() определяется как стандартный individual_channel_stream (0) элемент, равный single_channel_element (). Таким образом, декодирование может быть выполнено с помощью стандартной процедуры декодирования single_channel_element ().
Чтобы достичь большей скорости передачи и эффективности аппаратной реализации декодера LFE, требуется применить несколько ограничений к опциям, используемым для кодирования этого элемента:
- поле window_shape всегда устанавливается в 0, синусное окно (см. 4.3, таблица 15).
- поле window_sequence всегда устанавливается в 0 (ONLY_LONG_SEQUENCE) (см. 4.3, таблица 15).
- только самые нижние 12 спектральных коэффициентов любого LFE могут быть ненулевыми.
- временное формирование шума не используется, т.е. tns_data_present устанавливается в 0 (см. 4.3, таблица 16).
- предсказание не используется, predictor_data_present устанавливается в 0 (см. 4.3, таблица 15).
Наличие каналов LFE зависит от используемого профиля.
6.5 Элемент конфигурации программы (РСЕ)
Элемент program_config_element () может присутствовать как вне данных ААС, например в adif_header(), так и внутри ААС как синтаксический элемент в raw_data_block ().
6.5.1 Функции данных
byte_alignment () | Для элементов РСЕ в пределах raw_data_block (), выравнивание относительно первого бита raw_data_block (). Для элементов РСЕ в пределах adif_header(), выравнивание относительно первого бита заголовка. |
6.5.2 Элементы данных
profile | Двухбитный индекс профиля в таблице 31 (таблица 25). |
sampling_frequency_index | Указывает на частоту дискретизации программы (и всех других программ в этом потоке битов). |
num_front_channel_elements | Число синтаксических элементов аудио в передних каналах, от переднего к заднему, симметрично левые и правые, или попеременно левые и правые в случае элементов одиночного канала (таблица 25). |
num_side_channel_elements | Число элементов боковых каналов (таблица 25). |
num_back_channel_elements | То же, для заднего канала (таблица 25). |
num_lfe_channel_elements | Число элементов LFE канала (таблица 25). |
num_assoc_data_elements | Число элементов, связанных с этой программой (таблица 25). |
num_valid_cc_elements | Число элементов ССЕ, которые могут быть добавлены к аудиоданным этой программы (таблица 25). |
mono_mixdown_present | Один бит, указывающий на присутствие элемента моно сведения (таблица 25). |
mono_mixdown_element_number | Количество указанных SCE моно сведения (таблица 25). |
stereo_mixdown_present | Один бит, указывающий на присутствие стерео сведения (таблица 25). |
stereo_mixdown_element_number | Число указанных СРЕ стерео сведения (таблица 25). |
matrix_mixdown_idx_present | Один бит, указывающий на присутствие матричной информации средствами индекса матричного коэффициента стерео (таблица 39). Для всех конфигураций, кроме 3/2, этот бит должен быть равен ’0’ (таблица 25). |
matrix_mixdown_idx | Двухбитное поле, определяющее индекс коэффициента сведения, для использования в объединении 5 каналов в 2. Возможные матричные коэффициенты перечислены в таблице 39 (таблица 25). |
pseudo_surround_enable | Один бит, указывающий на возможность сведения для псевдопространственного окружения (таблица 25). |
front_element_is_cpe | Указывает, являются ли SCE или СРЕ передними элементами (таблица 25). ’0’ соответствует SCE,’1’ соответствует СРЕ. |
front_element_tag_select | instance_tag SCE/CPE, адресуемых как передние элементы (таблица 25). |
side_element_is_cpe | См. front_element_is_cpe, но для элементов стороны (таблица 25). |
side_element_tag_select | См. front_element_tag_select, но для элементов стороны (таблица 25). |
back_element_is_cpe | См. front_element_is_cpe, но для задних элементов (таблица 25). |
back_element_tag_select | См. front_element_tag_select, но для задних элементов (таблица 25). |
lfe_element_tag_select | instance_tag канала низкой частоты (таблица 25). |
assoc_data_element_tag_select | instance_tag DSE (таблица 25). |
valid_cc_element_tag_select | instance_tag ССЕ (таблица 25). |
cc_element_is_ind_sw | Один бит, указывающий, что соответствующий ССЕ - независимо переключаемый спаренный канал (таблица 25). |
comment_field_bytes | Длина поля комментария, в байтах (таблица 25). |
comment_field_data | Данные в поле комментария (таблица 25). |
Обращение к элементам SCE или СРЕ в пределах РСЕ происходит с помощью двух элементов синтаксиса. Во первых, элемент синтаксиса is_cpe выбирает, поэтому происходит обращение к SCE или СРЕ. Во вторых, элемент синтаксиса tag_select выбирает instance_tag SCE/CPE. Обращение к элементам LFE, ССЕ и DSE осуществляется непосредственно по их instance_tag.
6.5.3 Конфигурация канала
Аудио синтаксис ААС обеспечивает три способа передачи соответствия каналов физическим расположениям динамиков.
6.5.3.1 Явное соответствие каналов с настройками по умолчанию
Соответствия каналов по умолчанию определяются в таблице 42 (значения больше 0).
6.5.3.2 Явное соответствие каналов на основе program_config_element ()
Любая возможная конфигурация каналов может быть определена при помощи program_config_element (). Существует 16 доступных элементов РСЕ, каждый из которых может указывать на отдельную программу, которая присутствует в потоке необработанных данных. Все доступные РСЕ в пределах raw_data_block() должны следовать перед всеми другими синтаксическими элементами. Программы могут совместно использовать некоторые общие аудио синтаксические элементы, например общий channel_pair_element () и различные каналы комментариев на различных языках. Данный program_config_element () содержит информацию, имеющую отношение только к одной программе из тех, которые могут быть включены в raw_data_stream (). Включенный в РСЕ "список передних каналов", организован по принципу сначала центральный, затем остальные, левый и правый. В этом списке SCE центрального канала, если имеется, должен следовать первым, а любые другие SCE должны появляться в парах, составляя пару LR. Если указаны только два SCE, это соответствует одной стереофонической паре LR.
После списка передних каналов имеется "список боковых каналов", состоящих из СРЕ или из пар SCE. Они перечисляются в порядке от переднего к тыловому. Снова, в случае пары SCE, первым идет левый канал, вторым - правый канал.
После списка боковых каналов следует список тыловых каналов, перечисляемых снаружи внутрь. Любой SCE, кроме последнего, должен быть спарен, и наличие двух SCE (отдельных или после СРЕ) указывает, что два SCE являются левым и правым тыловым центром соответственно.
Конфигурация, обозначенная РСЕ, вступает в силу в raw_data_block (), содержащем РСЕ. Количество передних, боковых и задних каналов, указанное в РСЕ, должно присутствовать в том блоке и всех последующих raw_data_block () блоках, пока не будет передан raw_data_block(), содержащий новый РСЕ.
Также определяются другие элементы. Список одного или нескольких LFE, список одного или нескольких (зависимых от профиля) ССЕ, для осуществления управления диалогами и различными спаренными интенсивностными потоками различных каналов, при использовании тех же основных каналов. Список потоков данных, связанных с программой, также может связывать один или более потоков данных с программой. Элемент конфигурации программы также позволяет описать один монофонический и один стереофонический каналы, объединенные в канал сведения для одновременной передачи.
Элемент РСЕ не предназначен для быстрого изменения программы. В любой момент времени, когда данный РСЕ, в соответствии с его element_instance_tag, определяет новую (в противоположность повторному) программу, декодер не обязан обеспечивать непрерывность звукового сигнала.
6.5.3.3 Неявное соответствие каналов
Если нет явного соответствия каналов, следующие методы описывают неявное соответствие каналов:
1) Любое количество SCE может появиться (до тех пор, пока разрешено другими ограничивающими факторами, например профилем). Если это количество SCE нечетное, то первый SCE представляет передний центральный канал, и другой SCE представляет пары каналов L/R, следуя от центра в стороны и назад, к тыловому каналу.
Если количество SCE четное, то SCE интерпретируются как пары L/R, от переднего центра в стороны и назад, к тыловому каналу.
2) Может присутствовать любое количество СРЕ или пар SCE. Каждый СРЕ или пара SCE представляют одну пару L/R, после первых наборов SCE элементы следуют попарно до достижения тыловой центральной пары.
3) Может присутствовать любое количество SCE. Если это количество является четным, L/R пары распределены от 2) до тылового центра. Если это количество нечетное, оно распределяется по L/R парам, за исключением последнего SCE, который присваивается тыловому центру.
4) Может присутствовать любое количество LFE. Для случая, когда имеется несколько LFE, соответствие громкоговорителям не определено.
В случае такого неявного соответствия каналов, число и порядок SCE, СРЕ и LFE и получающаяся конфигурация не должны меняться в пределах потока битов без отправления program_config_element (), неявная смена конфигурации не разрешена.
Другие синтаксические аудио элементы, которые не подразумевают наличия дополнительных громкоговорителей, такие как спаренный channel_element, могут следовать за перечисленным набором синтаксических элементов. Очевидно синтаксические элементы, не относящиеся к звуковым, могут быть получены в дополнение к перечисленных синтаксическим элементам в произвольном порядке.
6.5.4 Метод матричного сведения
6.5.4.1 Описание
Метод матричного сведения применяется только для сведения конфигурации громкоговорителей 3 передних/2 задних, 5-канальной программы, в стерео или моно программу. Это не применимо к любой другой программе, кроме конфигурации 3/2.
6.5.4.2 Процесс матричного сведения
Требуемый сигнал стерео может быть сгенерирован матричным декодером при помощи одного из двух наборов уравнений.
Набор 1:
Набор 2:
Если флаг pseudo_surround_enable не установлен, то используется только набор уравнений 1. Если pseudo_surround_enable установлен, то могут использоваться как набор 1, так и набор 2, в зависимости от наличия в ресивере средств пространственного синтеза.
Можно получить моно сигнал, используя следующее уравнение
6.5.4.3 Рекомендация
Матричные сведения позволяют организовать режим, выгодный для некоторых операторов при определенных обстоятельствах. Однако рекомендуется не использовать этот метод. Психоакустические принципы, на которых базируется кодирование звука, нарушаются этим методом пост-процессинга, и перцепционно верное восстановление сигнала не может быть гарантировано. В синтаксисе ААС рекомендуется использовать стерео или моно сведение для обеспечения стерео или моно, созданного в стандартной студии.
Стерео и моно каналы сведения дополнительно позволяют провайдеру контента отдельно улучшать стерео и многоканальные программы - это невозможно при использовании матричного метода.
Из-за алгоритмов, используемых для многоканального и стерео кодирования, лучшая комбинация качества и скорости передачи обычно обеспечивается при использовании стерео.
Таблица 39 - Матричные коэффициенты
matrix_mixdown_idx | |
0 | |
1 | 1/2 |
2 | |
3 | 0 |
6.6 Элемент потока данных (DSE)
6.6.1 Функции данных
byte_alignment() | Выравнивание относительно первого бита raw_data_block (). |
6.6.2 Элементы данных
data_byte_align_flag | Один бит, указывающий, что выравнивание выполняется в пределах элемента потока данных (таблица 24). |
count | Начальное значение длины потока данных (таблица 24). |
esc_count | Инкремент длины данных или элемента дополнения (таблица 24). |
data_stream_byte | Байт потока данных, извлеченный из потока битов (таблица 24). |
Элемент данных содержит любые дополнительные данные, например вспомогательную информацию, которая не является непосредственно частью аудиоинформации. Возможно любое количество элементов данных с одинаковым element_instance_tag или до 16 элементов данных с различным element_instance_tags. Процесс расшифровки элемента данных описывается в этом пункте.
6.6.3 Процесс декодирования
Первым считывается синтаксический элемент data_byte_align_flag размером 1 бит. Затем считывается 8-битное значение count. Он содержит начальный размер потока данных в байтах. Если count равен 255, его значение инкрементируется вторым 8-битным значением, esc_count, и это заключительное значение соответствует количеству байт в элементе потока данных. Если data_byte_align_flag установлен, выполняется выравнивание. Далее следуют байты потока данных.
6.7 Элемент заполнения (FIL)
6.7.1 Элементы данных
count | Начальное значение длины extension_payload () (таблица 26). |
esc_count | Инкремент длины extension_payload () (таблица 26). |
6.7.2 Процесс декодирования
Элементы fill_element () могут быть добавлены для учета различных расширений. Разрешено любое количество элементов fill_element ().
Синтаксический элемент count дает начальное значение длины данных заполнения. Если count равен 15, его значение инкрементируется значением esc_count, и это заключительное значение соответствует количеству fill_bytes, которое будет считано.
6.8 Расширение
6.8.1 Общие сведения
1 Элементы данных
extension_type | Поле, размером 4 бита, указывающее на тип контента элемента заполнения (таблица 26). |
2 Процесс декодирования
Разрешено любое количество extension_payload ().
Следующие символьные сокращения для значений поля extension_type определены в таблице 40.
Таблица 40 - Значения элемента данных extension_type
Символ | Значение extension_type | Назначение |
EXT_FILL | ’0000’ | Заполнение потока битов |
EXT_FILL_DATA | ’0001’ | Заполнение битами данных |
EXT_DYNAMIC_RANGE | ’1011’ | Управление динамическим диапазоном |
EXT_SBR_DATA | ’1101’ | Расширение SBR |
EXT_SBR_DATA_CRC | ’1110’ | Расширение SBR с CRC |
- | другие значения | Зарезервировано |
Зарезервированные значения могут использоваться для дальнейшего расширения синтаксиса.
6.8.2 Данные заполнения и другие биты
6.8.2.1 Элементы данных
fill_nibble | 4-битное поле заполнения (таблица 28). |
fill_byte | Байт, отбрасываемый декодером (таблица 28). |
other_bits | Биты, отбрасываемые декодером (таблица 28). |
6.8.2.2 Процесс декодирования
Данные заполнения должны быть добавлены, если общее количество битов всех аудиоданных вместе со всеми дополнительными данными меньше, чем минимальное допустимое количество битов во фрейме, необходимое для достижения целевой скорости передачи. При нормальных условиях для заполнения резервуара битов вместо битов заполнения используются свободные биты. Биты заполнения дописываются, только если резервуар битов полон.
Следует учесть, что fill_nibble должен быть равен ’0000’, a fill_byte равен ’10100101’ (для улучшения самосинхронизации).
6.8.3 Управление динамическим диапазоном (DRC)
6.8.3.1 Элементы данных
pce_tag_present | Один бит, указывающий на присутствие тега элемента программы (таблица 29). |
pce_instance_tag | Поле тега, указывающее, с какой программой ассоциируется информация о динамическом диапазоне (таблица 29). |
drc_tag_reserved_bits | В резерве (таблица 29). |
excluded_chns_present | Один бит, указывающий на присутствие исключенных каналов (таблица 29). |
drc_bands_present | Один бит, указывающий на присутствие многополосной информации DRC (таблица 29). |
drc_band_incr | Число диапазонов DRC, большее чем 1 (таблица 29). |
drc_bands_reserved_bits | В резерве (таблица 29). |
drc_band_top [i] | Указывает на верхнюю часть i-го диапазона DRC с шагом в 4 спектральные линии (таблица 29). Если drc_band_top [i] = k, то индекс самой высокой спектральной линии i-го диапазона DRC равен k*4+3. В случае EIGHT_SHORT_SEQUENCE window_sequence индекс интерпретируется как указатель на составной массив из 8*128 частотных линий, соответствующих 8 коротким преобразованиям. |
prog_ref_level_present | Один бит, указывающий наличие контрольного уровня (таблица 29). |
prog_ref_level | Контрольный уровень. Величина уровня воспроизведения каналов (таблица 29). |
prog_ref_level_reserved_bits | В резерве (таблица 29). |
dyn_rng_sgn [i] | Знак управления динамическим диапазоном. Один бит, указывающий на знак dyn_rng_ctl (0, если положительный, 1, если отрицательный (таблица 29). |
dyn_rng_ctl[i] | Модуль управления динамическим диапазоном (таблица 29). |
exclude_mask [i] | Логический массив, указывающий на звуковые каналы программы, которые исключаются из DRC. |
additional_excluded_chns [i] | Один бит, указывающий на наличие дополнительных исключенных каналов (таблица 30). |
6.8.3.2 Процесс декодирования
Оценка потенциально доступной информации управления динамическим диапазоном в декодере является опциональной.
prog_ref_level_present указывает, что prog_ref_level передается. В этом случае prog_ref_level передается только по требованию (например, однажды).
prog_ref_level квантуется с шагом 0,25 дБ, используя 7 битов, и поэтому динамический диапазон равен приблизительно 32 дБ. Восстановление выполняется по формуле
где "полный уровень" соответствует 32767 (prog_ref_level = 0).
pce_tag_present указывает, что pce_instance_tag передается. В этом случае pce_instance_tag передается только по требованию (например, однажды).
pce_instance_tag указывает, с какой программой ассоциируется информация о динамическом диапазоне. Если этот тег не присутствует, то используется программа по умолчанию. Так как в каждом потоке битов ААС обычно есть только одна программа, это является наиболее распространенным режимом. Для каждой программы многопрограммного потока битов должна передаваться своя информация о динамическом диапазоне в отдельном extension_payload () элемента fill_element (). В случае многопрограммного потока всегда должен присутствовать pce_instance_tag.
Бит drc_tag_reserved_bits заполняют дополнительные поля до целого числа байт.
Бит excluded_chns_present указывает, что каналы, которые должны быть исключены из обработки динамического диапазона, следуют сразу же после этого бита. Маски каналов должны передаваться в каждом фрейме, где есть исключенные каналы. Следующие принципы упорядочивания используются, чтобы назначить exclude_mask выходным каналам:
Если РСЕ присутствует, биты exclude_mask соответствуют звуковым каналам в элементах синтаксиса SCE, СРЕ, ССЕ и LFE в порядке их появления в РСЕ. В случае СРЕ первый переданный бит маски соответствует первому каналу в СРЕ, второй переданный бит маски - второму каналу. В случае ССЕ бит маски передается, только если спаренный канал является независимо переключаемым.
Если РСЕ не присутствует, биты exclude_mask соответствуют звуковым каналам в элементах синтаксиса SCE, СРЕ и LFE в порядке их появления в потоке битов, в сопровождении звуковых каналов в элементах синтаксиса ССЕ в порядке их появления в потоке битов. В случае СРЕ первый переданный бит маски соответствует первому каналу в СРЕ, второй переданный бит маски - второму каналу. В случае ССЕ бит маски передается, только если спаренный канал является независимо переключаемым.
drc_band_incr является количеством полос больше единицы, если есть многополосная информация DRC.
dyn_rng_ctl квантуется с шагом 0,25 дБ, используя 7-разрядное целое число без знака, и поэтому совместно с dyn_rng_sgn, имеет диапазон ±31,75 дБ. Это интерпретируется как значение усиления, которое должно быть применено к декодируемым отсчетам звукового сигнала текущего фрейма.
Диапазон, обеспечиваемый информацией о динамическом диапазоне, указан в таблице 41.
Таблица 41 - Диапазон DRC информации
Поле | Биты | Шаги | Шаг, дБ | Диапазон, дБ |
prog_ref_level | 7 | 128 | 0,25 | 31,75 |
dyn_rng_sgn и dyn_rng_ctl | 1 и 7 | ±127 | 0,25 | ±31,75 |
Процесс управления динамическим диапазоном применяется к спектральным данным spec[i] одного фрейма непосредственно перед банком фильтров синтеза. В случае EIGHT_SHORT_SEQUENCE window_sequence индекс i интерпретируется как указатель на составной массив из 8*128 частотных линий, соответствующих 8 коротким преобразованиям.
Следующий псевдокод приводится в качестве примера, демонстрируя один метод использования одного набора информации управления динамическим диапазоном с целевым звуковым каналом. Константы ctrl1 и ctrl2 являются константами сжатия (обычно между 0 и 1, нуль соответствует отсутствию сжатия), которые могут дополнительно использоваться, чтобы масштабировать характеристики сжатия динамического диапазона для уровней, больших или меньших контрольного уровня программы соответственно. Константа farget_level описывает уровень на выходе, требуемый пользователем, выраженный в том же масштабе как prog_ref_level.
bottom = 0;
drc_num_bands = 1;
if (drc_bands_present)
drc_num_bands + = drc_band_incr; else
drc_band_top [0] = 1024/4 - 1;
for (bd = 0;bd <drc_num_bands;bd ++) {
top = 4 * (drc_band_top [bd] + 1);
/* Декодировать коэффициент усиления DRC */
if (dyn_rng_sgn [bd])
else
/* Если нормализация выполняется для цифрового сигнала
* коэффициент должен быть изменен. prog_ref_level может быть передан системе для изменения уровня аналогового сигнала. Аналоговое изменение уровня лишено проблем с уменьшенным отношением СИГНАЛ-ШУМ ЦАП или клиппированием */
/* Применить коэффициент усиления */
for (i = bottom; i < top; /++)
spec [i]*= factor; bottom = top.
Следует учесть соотношение между управлением динамическим диапазоном и спаренными каналами.
Зависимо переключаемые спаренные каналы всегда объединяются с их целевыми каналами как спектральные коэффициенты до DRC обработки и синтезирующей фильтрации этих каналов. Поэтому сигнал зависимо переключаемых спаренных каналов, который связывается с определенным целевым каналом, будет подвергнут DRC обработке целевого канала.
Так как независимо переключаемые спаренные каналы связываются с их целевыми каналами во временном пространстве, каждый независимо переключаемый спаренный канал будет подвергнут DRC обработке и последующей синтезирущей фильтрации, отдельно от его целевых каналов. Это позволяет независимо переключаемому спаренному каналу иметь отдельную DRC обработку при необходимости.
6.8.3.3 Персистентность DRC информации
В начале потока вся DRC информация для всех каналов устанавливается в значение по умолчанию: контрольный уровень программы, равный контрольному уровню декодера, одна полоса DRC, без изменения усиления DRC. Если эти данные не перезаписываются, это остается в силе.
Есть два случая для персистентности DRC информации, которая была передана:
Контрольный уровень программы дается для каждой звуковой программы и сохраняется до тех пор, пока не будет передано новое значение (разумно периодически передавать значение во избежание ошибки).
Другая DRC информация сохраняется для каналов. Следует учесть что, если канал исключается соответствующим битом маски exclude_mask[], то никакая информация не передается для этого канала в dynamic_range_info (). Маска должна быть передана в каждом фрейме, где есть исключение каналов.
Правила сохранения поканальной DRC информации:
Если в данном фрейме данного канала нет DRC информации, используется информация из предыдущего фрейма. (Это означает, что одна настройка может быть в силе в течение долгого времени, хотя уместно периодически передавать DRC информацию во избежание ошибки.)
Если DRC информация для этого канала появляется в текущем фрейме, имеет место такая последовательность: вся DRC информация для канала заменяется значениями по умолчанию (одна полоса DRC, без изменений усиления DRC для этой полосы), затем информация заменяется соответствующими переданными значениями.
6.8.4 Расширение полосы частот (SBR)
Элементы заполнения, содержащие extension_payload с extension_type EXT_SBR_DATA или EXT_SBR_DATA_CRC, резервируются для данных SBR. В этом случае, значение поля count элемента fill_element должно быть равно общей длине в байтах, включая данные SBR плюс поле extension_type.
sbr_extension_data () и процесс декодирования определяются в ИСО/МЭК 14496-3 [3].
Элементы заполнения SBR должны быть обработаны согласно ИСО/МЭК 14496-3 [3], пп.4.5.2.8.2.2 "Расширение SBR для аудио объектов основного AAC, AAC SSR, LC ААС и AAC LTP". Сигнализация SBR должна быть сделана не явно, в соответствии с ИСО/МЭК 14496-3 [3], пп.1.6.5 "Сигнализация SBR".
6.9 Таблицы
Таблица 42 - Конфигурация каналов
Значение | Число громкоговорителей | Элементы аудио синтакса, перечисленные в порядке появления | Соответствие элемента громкоговорителю |
0 | - | Определено в program_config_element () (см. 6.5.3.2) или задано не явно (см. 6.5.3.3) | |
1 | 1 | single_channel_element () | Центральные передние |
2 | 2 | channel_pair_element () | Левые, правые передние |
3 | 3 | single_channel_element(), | Центральные передние |
channel_pair_element() | Левые, правые передние | ||
4 | 4 | single_channel_element (), | Центральные передние |
channel_pair_element (), | Левые, правые передние | ||
5 | 5 | single_channel_element () | Задние окружения |
single_channel_element (), | Центральные передние | ||
channel_pair_element (), | Левые, правые передние | ||
channel_pair_element () | Левые, правые окружения | ||
Задние окружения | |||
6 | 5+1 | single_channel_element (), | Центральные передние |
channel_pair_element (), | Левые, правые передние | ||
channel_pair_element (), | Левые, правые окружения | ||
Ife_element () | Задние окружения НЧ | ||
7 | 7+1 | single_channel_element (), | Центральные передние |
channel_pair_element (), | Левый, правый передние | ||
channel_pair_element (), | Левые, правые внешние | ||
channel_pair_element (), | Левые, правые окружения | ||
lfe_element () | Задние окружения НЧ |
Таблица 43 - Окна преобразований (для 48 кГц)
Таблица 44 - Последовательность окон
Таблица 45 - Полосы масштабных коэффициентов для LONG_WINDOW, LONG_START_WINDOW, LONG_STOP_WINDOW при 44,1 кГц и 48 кГц
Fs, кГц | 44,1, 48 | ||
num_swb_long_window | 49 | ||
swb | swb_offset_long_window | swb | swb_offset_long_window |
0 | 0 | 25 | 216 |
1 | 4 | 26 | 240 |
2 | 8 | 27 | 264 |
3 | 12 | 28 | 292 |
4 | 16 | 29 | 320 |
5 | 20 | 30 | 352 |
6 | 24 | 31 | 384 |
7 | 28 | 32 | 416 |
8 | 32 | 33 | 448 |
9 | 36 | 34 | 480 |
10 | 40 | 35 | 512 |
11 | 48 | 36 | 544 |
12 | 56 | 37 | 576 |
13 | 64 | 38 | 608 |
14 | 72 | 39 | 640 |
15 | 80 | 40 | 672 |
16 | 88 | 41 | 704 |
17 | 96 | 42 | 736 |
18 | 108 | 43 | 768 |
19 | 120 | 44 | 800 |
20 | 132 | 45 | 832 |
21 | 144 | 46 | 864 |
22 | 160 | 47 | 896 |
23 | 176 | 48 | 928 |
24 | 196 | 1024 |
Таблица 46 - Полосы масштабных коэффициентов для SHORT_WINDOW при 32 кГц, 44,1 кГц и 48 кГц
Fs, кГц | 32, 44,1, 48 | ||
num_swb_short_window | 14 | ||
swb | swb_offsef_shorf_window | swb | swb_offset_short_window |
0 | 0 | 8 | 44 |
1 | 4 | 9 | 56 |
2 | 8 | 10 | 68 |
3 | 12 | 11 | 80 |
4 | 16 | 12 | 96 |
5 | 20 | 13 | 112 |
6 | 28 | 128 | |
7 | 36 |
Таблица 47 - Полосы масштабных коэффициентов для LONG_WINDOW, LONG_START_WINDOW, LONG_STOP_WINDOW на 32 кГц
Fs, кГц | 32 | ||
num_swb_long_window | 51 | ||
swb | swb_offset_long_window | swb | swb_offset_long_window |
0 | 0 | 26 | 240 |
1 | 4 | 27 | 264 |
2 | 8 | 28 | 292 |
3 | 12 | 29 | 320 |
4 | 16 | 30 | 352 |
5 | 20 | 31 | 384 |
6 | 24 | 32 | 416 |
7 | 28 | 33 | 448 |
8 | 32 | 34 | 480 |
9 | 36 | 35 | 512 |
10 | 40 | 36 | 544 |
11 | 48 | 37 | 576 |
12 | 56 | 38 | 608 |
13 | 64 | 39 | 640 |
14 | 72 | 40 | 672 |
15 | 80 | 41 | 704 |
16 | 88 | 42 | 736 |
17 | 96 | 43 | 768 |
18 | 108 | 44 | 800 |
19 | 120 | 45 | 832 |
20 | 132 | 46 | 864 |
21 | 144 | 47 | 896 |
22 | 160 | 48 | 928 |
23 | 176 | 49 | 960 |
24 | 196 | 50 | 992 |
25 | 216 | 1024 |
Таблица 48 - Полосы масштабных коэффициентов для LONG_WINDOW, LONG_START_WINDOW, LONG_STOP_WINDOW на 8 кГц
Fs, кГц | 8 | ||
num_swb_long_window | 40 | ||
swb | swb_offset_long_window | swb | swb_offset_long_window |
0 | 0 | 21 | 288 |
1 | 12 | 22 | 308 |
2 | 24 | 23 | 328 |
3 | 36 | 24 | 348 |
4 | 48 | 25 | 372 |
5 | 60 | 26 | 396 |
6 | 72 | 27 | 420 |
7 | 84 | 28 | 448 |
8 | 96 | 29 | 476 |
9 | 108 | 30 | 508 |
10 | 120 | 31 | 544 |
11 | 132 | 32 | 580 |
12 | 144 | 33 | 620 |
13 | 156 | 34 | 664 |
14 | 172 | 35 | 712 |
15 | 188 | 36 | 764 |
16 | 204 | 37 | 820 |
17 | 220 | 38 | 880 |
18 | 236 | 39 | 944 |
19 | 252 | 1024 | |
20 | 268 |
Таблица 49 - Полосы масштабных коэффициентов для SHORT_WINDOW на 8 кГц
Fs, кГц | 8 |
num_swb_short_window | 15 |
swb | swb_offset_short_window |
0 | 0 |
1 | 4 |
2 | 8 |
3 | 12 |
4 | 16 |
5 | 20 |
6 | 24 |
7 | 28 |
8 | 36 |
9 | 44 |
10 | 52 |
11 | 60 |
12 | 72 |
13 | 88 |
14 | 108 |
| 128 |
Таблица 50 - Полосы масштабных коэффициентов для LONG_WINDOW, LONG_START_WINDOW, LONG_STOP_WINDOW на 11,025 кГц, 12 кГц и 16 кГц
Fs, кГц | 11,025, 12, 16 | ||
num_swb_long_window | 43 | ||
swb | swb_offsef_long_window | swb | swb_offset_long_window |
0 | 0 | 22 | 228 |
1 | 8 | 23 | 244 |
2 | 16 | 24 | 260 |
3 | 24 | 25 | 280 |
4 | 32 | 26 | 300 |
5 | 40 | 27 | 320 |
6 | 48 | 28 | 344 |
7 | 56 | 29 | 368 |
8 | 64 | 30 | 396 |
9 | 72 | 31 | 424 |
10 | 80 | 32 | 456 |
11 | 88 | 33 | 492 |
12 | 100 | 34 | 532 |
13 | 112 | 35 | 572 |
14 | 124 | 36 | 616 |
15 | 136 | 37 | 664 |
16 | 148 | 38 | 716 |
17 | 160 | 39 | 772 |
18 | 172 | 40 | 832 |
19 | 184 | 41 | 896 |
20 | 196 | 42 | 960 |
21 | 212 | 1024 |
Таблица 51 - Полосы масштабных коэффициентов для SHORT_WINDOW на 11,025 кГц, 12 кГц и 16 кГц
Fs, кГц | 11,025, 12, 16 | ||
num_swb_short_window | 15 | ||
swb | swb_offset_short_window | swb | swb_offset_short_window |
0 | 0 | 8 | 32 |
1 | 4 | 9 | 40 |
2 | 8 | 10 | 48 |
3 | 12 | 11 | 60 |
4 | 16 | 12 | 72 |
5 | 20 | 13 | 88 |
6 | 24 | 14 | 108 |
7 | 28 | 128 |
Таблица 52 - Полосы масштабных коэффициентов для LONG_WINDOW, LONG_START_WINDOW, LONG_STOP_WINDOW на 22,05 кГц и 24 кГц
Fs, кГц | 22,05 и 24 | ||
num_swb_long_window | 47 | ||
swb | swb_offset_long_window | swb | swb_offset_long_window |
0 | 0 | 25 | 172 |
1 | 4 | 26 | 188 |
2 | 8 | 27 | 204 |
3 | 12 | 28 | 220 |
4 | 16 | 29 | 240 |
5 | 20 | 30 | 260 |
6 | 24 | 31 | 284 |
7 | 28 | 32 | 308 |
8 | 32 | 33 | 336 |
9 | 36 | 34 | 364 |
10 | 40 | 35 | 396 |
11 | 44 | 36 | 432 |
12 | 52 | 37 | 468 |
13 | 60 | 38 | 508 |
14 | 68 | 39 | 552 |
15 | 76 | 40 | 600 |
16 | 84 | 41 | 652 |
17 | 92 | 42 | 704 |
18 | 100 | 43 | 768 |
19 | 108 | 44 | 832 |
20 | 116 | 45 | 896 |
21 | 124 | 46 | 960 |
22 | 136 | 1024 | |
23 | 148 | ||
24 | 160 |
Таблица 53 - Полосы масштабных коэффициентов для SHORT_WINDOW на 22,05 кГц и 24 кГц
Fs, кГц | 22,05 и 24 | ||
num_swb_short_window | 15 | ||
swb | swb_offset_short_window | swb | swb_offset_short_window |
0 | 0 | 8 | 36 |
1 | 4 | 9 | 44 |
2 | 8 | 10 | 52 |
3 | 12 | 11 | 64 |
4 | 16 | 12 | 76 |
5 | 20 | 13 | 92 |
6 | 24 | 14 | 108 |
7 | 28 | 128 |
Таблица 54 - Полосы масштабных коэффициентов для LONG_WINDOW, LONG_START_WINDOW, LONG_STOP_WINDOW на 64 кГц
Fs, кГц | 64 | ||
num_swb_long_window | 47 | ||
swb | swb_offset_long_window | swb | swb_offset_long_window |
0 | 0 | 24 | 172 |
1 | 4 | 25 | 192 |
2 | 8 | 26 | 216 |
3 | 12 | 27 | 240 |
4 | 16 | 28 | 268 |
5 | 20 | 29 | 304 |
6 | 24 | 30 | 344 |
7 | 28 | 31 | 384 |
8 | 32 | 32 | 424 |
9 | 36 | 33 | 464 |
10 | 40 | 34 | 504 |
11 | 44 | 35 | 544 |
12 | 48 | 36 | 584 |
13 | 52 | 37 | 624 |
14 | 56 | 38 | 664 |
15 | 64 | 39 | 704 |
16 | 72 | 40 | 744 |
17 | 80 | 41 | 784 |
18 | 88 | 42 | 824 |
19 | 100 | 43 | 864 |
20 | 112 | 44 | 904 |
21 | 124 | 45 | 944 |
22 | 140 | 46 | 984 |
23 | 156 | 1024 |
Таблица 55 - Полосы масштабных коэффициентов для SHORT_WINDOW на 64 кГц
Fs, кГц | 64 |
num_swb_short_window | 12 |
swb | swb_offset_short_window |
0 | 0 |
1 | 4 |
2 | 8 |
3 | 12 |
4 | 16 |
5 | 20 |
6 | 24 |
7 | 32 |
8 | 40 |
9 | 48 |
10 | 64 |
11 | 92 |
| 128 |
Таблица 56 - Полосы масштабных коэффициентов для LONG_WINDOW, LONG_START_WINDOW, LONG_STOP_WINDOW на 88,2 кГц и 96 кГц
Fs, кГц | 88,2 и 96 | ||
num_swb_long_window | 41 | ||
swb | swb_offset_long_window | swb | swb_offset_long_window |
0 | 0 | 21 | 120 |
1 | 4 | 22 | 132 |
2 | 8 | 23 | 144 |
3 | 12 | 24 | 156 |
4 | 16 | 25 | 172 |
5 | 20 | 26 | 188 |
6 | 24 | 27 | 212 |
7 | 28 | 28 | 240 |
8 | 32 | 29 | 276 |
9 | 36 | 30 | 320 |
10 | 40 | 31 | 384 |
11 | 44 | 32 | 448 |
12 | 48 | 33 | 512 |
13 | 52 | 34 | 576 |
14 | 56 | 35 | 640 |
15 | 64 | 36 | 704 |
16 | 72 | 37 | 768 |
17 | 80 | 38 | 832 |
18 | 88 | 39 | 896 |
19 | 96 | 40 | 960 |
20 | 108 | 1024 |
Таблица 57 - Полосы масштабных коэффициентов для SHORT_WINDOW на 88,2 кГц и 96 кГц
Fs, кГц | 88,2 и 96 |
num_swb_short_window | 12 |
swb | swb_offset_short_window |
0 | 0 |
1 | 4 |
2 | 8 |
3 | 12 |
4 | 16 |
5 | 20 |
6 | 24 |
7 | 32 |
8 | 40 |
9 | 48 |
10 | 64 |
11 | 92 |
| 128 |
6.10 Рисунки
Рисунок 4 - Пример группировки коротких окон
Рисунок 5 - Порядок полос масштабных коэффициентов в случае ONLY_LONG_SEQUENCE
Рисунок 6 - Порядок полос масштабных коэффициентов в случае EIGHT_SHORT_SEQUENCE
7 Прозрачное кодирование
7.1 Описание инструмента
Прозрачное кодирование используется для дальнейшего уменьшения избыточности масштабных коэффициентов и квантованных спектральных значений каждого звукового канала.
global_gain кодируется как беззнаковое 8-битовое целое. Первый масштабный коэффициент, связанный с квантованными спектральными значениями, дифференциально кодируется относительно значения global_gain, и затем используется кодирование Хаффмана по кодовой книге для масштабных коэффициентов. Оставшиеся масштабные коэффициенты дифференциально кодируются относительно предыдущих масштабных коэффициентов, и затем используется кодирование Хаффмана по кодовой книге для масштабных коэффициентов.
Прозрачное кодирование квантованных спектральных значений основано на двух разделениях спектральных коэффициентов. Первым является разделение на полосы масштабных коэффициентов, которые содержат кратное четырем количество квантованных спектральных коэффициентов. См. 6.3.4 и 6.3.5.
Второе разделение, зависящее от квантованных спектральных значений, является разделением на полосы масштабных коэффициентов с целью формирования разделов. Значение раздела состоит в том, что квантованные спектральные значения в пределах раздела кодируются с использованием одной кодовой книги Хаффмана, выбранной из 11 возможных. Длина раздела и связанной с ним кодовой книги Хаффмана должна быть передана в качестве служебных данных вместе с кодированными по Хаффману спектральными значениями. Следует учесть, что длина раздела выражается в полосах масштабных коэффициентов, а не в оконных масштабных коэффициентах (см. 6.3.4). Чтобы максимизировать соответствие статистики квантованного спектра кодовой книге Хаффмана, число разделов может быть таким же, как и число полос масштабных коэффициентов. Максимальный размер раздела равен max_sfb полос масштабных коэффициентов.
Как показано в таблице 59, кодовые книги Хаффмана для спектральных значений могут заменять знаковые или беззнаковые комбинации из n коэффициентов. Для беззнаковых кодовых книг знаковые биты каждого ненулевого коэффициента в блоке из n коэффициентов следуют сразу же за соответствующей кодовой комбинацией.
При прозрачном кодировании есть два способа представить большие квантованные спектральные значения. Один способ состоит в том, чтобы передавать флаг escape из escape (ESC), сборник кодов Хаффмана, который сигнализирует о том, что биты, следующие сразу после указанной кодовой комбинации, плюс дополнительные знаковые биты являются escape-последовательностью, которой закодированы значения, большие чем представленные в кодовой книге Хаффмана ESC. Вторым путем является импульсный escape-метод, при котором коэффициенты относительно большой амплитуды могут быть заменены коэффициентами с меньшими амплитудами для включения в таблицу кода Хаффмана с более высокой эффективностью кодирования. Эта замена корректируется путем отправки позиции спектрального коэффициента и разности амплитуд в качестве служебной информации. Частотная информация представляется комбинацией номера полосы масштабных коэффициентов для указания на основную частоту и смещения внутри этой полосы масштабных коэффициентов.
7.2 Определения
7.2.1 Элементы данных
sect_cb [g] [i] | Кодовая книга Хаффмана для спектральных значений, используемая для раздела i в группе g (см. 4.3, таблица 17). |
sect_len_incr | Используется для вычисления размера раздела, равно количеству полос масштабных коэффициентов от начала раздела. Длина sect_len_incr составляет 3 бита, если window_sequence равно EIGHT_SHORT_SEQUENCE, и 5 битов в противном случае (см. 4.3, таблица 17). |
global_gain | Глобальный коэффициент усиления квантованного спектра, передаваемый как беззнаковое целое (см. 4.3, таблица 16). |
hcod_sf [] | Кодовое слово Хаффмана из кодовой таблицы, используемой для кодирования масштабных коэффициентов (см. 4.3, таблица 18). |
hcod [sect_cb [g] [i]] [w] [x] [y] [z] | Кодовое слово Хаффмана из кодовой книги sect_cb [g] [i], с помощью которого кодируется следующая четверка (w, х, у, z) спектральных коэффициентов, где w, х, у, z - квантованные спектральные коэффициенты. В пределах группы из n спектральных коэффициентов, w, х, у, z упорядочиваются согласно 6.3.5 так, чтобы х_quant [group] [win] [sfb] [bin] = w, x_quant [group] [win] [sfb] [bin+1] = x, x_quant [group] [win] [sfb] [bin+2] = у и x_quant [group] [win] [sfb] [bin+3] = z. Группы из n спектральных коэффициентов следуют снизу вверх по частоте в пределах текущего раздела (см. 4.3, таблица 20). |
hcod [sect_cb [g] [i]] [y] [z] | Кодовое слово Хаффмана из кодовой книги sect_cb [g] [i], с помощью которого кодируется следующая пара (у, z) спектральных коэффициентов, где у, z - квантованные спектральные коэффициенты. В пределах группы из n спектральных коэффициентов у, z упорядочиваются согласно 6.3.5 так, чтобы х_quant [group] [win] [sfb] [bin] = у и x_quant [group] [win] [sfb] [bin+1] = z. Группы из n спектральных коэффициентов следуют снизу вверх по частоте в пределах текущего раздела (см. 4.3, таблица 20). |
quad_sign_bits | Знаковые биты для коэффициентов, отличных от нуля в спектральной четверке. ’1’ указывает на отрицательный коэффициент, ’0’ - на положительный. Биты, относящиеся к более низким по частоте спектральным коэффициентам, следуют первыми (см. 4.3, таблица 20). |
pair_sign_bits | Знаковые биты для коэффициентов, отличных от нуля в спектральной паре. ’1’ указывает на отрицательный коэффициент, ’0’ - на положительный. Биты, относящиеся к более низким по частоте спектральным коэффициентам, следуют первыми (см. 4.3, таблица 20). |
hcod_esc_y | Escape-последовательность для квантованного спектрального коэффициента у пары (у, z), связанной с предыдущим кодовым словом Хаффмана (см. 4.3, таблица 20). |
hcod_esc_z | Escape-последовательность для квантованного спектрального коэффициента z пары (у, z), связанной с предыдущим кодовым словом Хаффмана (см. 4.3, таблица 20). |
pulse_data_present nt | 1 бит, указывающий на использование импульсного escape. (1) - используется, (0) - не используется (см. 4.3, таблица 21). Pulse_data_present должен быть 0 для EIGHT_SHORT_SEQUENCE. |
number_pulse | 2 бита, указывающие, сколько Escape импульсов используется. Число Escape импульсов от 1 до 4 (см. 4.3, таблица 21). |
pulse_start_sfb | 6 бит, определяющих индекс самого низкой полосы масштабных коэффициентов, где достигается импульсный escape (см. 4.3, таблица 21). |
pulse_offset [i] | 5 бит, указывающих на смещение (см. 4.3, таблица 21). |
pulse_amp [i] | 4 бита, указывающие на неиспользованную амплитуду импульса (см. 4.3, таблица 21). |
7.2.2 Элементы справки
sect_start [g] [i] | Смещение относительно первой полосы масштабных коэффициентов в разделе i из группы g (см. 4.3, таблица 17). |
sect_end [g] [i] | Смещение относительно на единицу большей, чем последняя полоса масштабных коэффициентов в разделе i из группы g (см. 4.3, таблица 17). |
num_sec [g] | Число разделов в группе g (см. 4.3, таблица 17). |
escape_flag | Значение 16 в кодовой книге Хаффмана ESC. |
escape_prefix | Последовательность битов из N единичных битов. |
escape_separator | Один нулевой бит. |
escape_word | Беззнаковое целое размером (N+4), msb первым. |
escape_sequence | Последовательность escape_prefix, escape_separator и escape_word. |
escape_code | 2 (N+4) + escape_word. |
x_quant [g] [win] [sfb] [bin] | Декодированное значение Хаффмана для группы g, окна win, полосы масштабных коэффициентов sfb, коэффициента bin. |
spec [w] [k] | Спектр без чередования. w в диапазоне от 0 до num_windows-1 и k в диапазоне от 0 до swb_offset [num_swb]-1. |
Инструмент прозрачного кодирования требует следующих констант (см. 4.3, spectral_data ()).
ZERO_НСВ | 0 |
FIRST_PAIR_НСВ | 5 |
ESC_НСВ | 11 |
QUAD_LEN | 4 |
PAIR_LEN | 2 |
INTENSITY_HCB2 | 14 |
INTENSITY_HCB | 15 |
ESC_FLAG | 16 |
7.3 Процесс декодирования
Четверки или пары квантованных спектральных коэффициентов являются кодированными с помощью кодов Хаффмана и передаются в порядке от коэффициента самой низкой частоты и до коэффициента самой высокой частоты. При наличии нескольких окон в блоке (EIGHT_SHORT_SEQUENCE) сгруппированные и чередующиеся наборы спектральных коэффициентов обрабатываются как единый набор коэффициентов, которые следуют от низкой частоты к высокой. Чередование может быть устранено после декодирования коэффициентов (см. 6.3.5). Коэффициенты сохраняются в массиве x_quant [g] [win] [sfb] [bin], и порядок передачи кодовых комбинаций Хаффмана такой, чтобы коэффициенты декодировались в порядке получения и записи в массив, bin - наиболее быстро меняющийся индекс, а g - наиболее медленный. В пределах кодовой комбинации порядок декодирования четверок - w, x, у, z; порядок декодирования пар - у, z. Набор коэффициентов делится на разделы, и информация разделения передается, начиная с самого низкого частотного раздела до самого высокого частотного раздела. Спектральная информация для разделов, которые кодируются с "нулевой" кодовой книгой, не передается, поскольку эта спектральная информация равна нулю. Точно так же, спектральная информация для разделов, кодированных "интенсивностными" кодовыми книгами, не передается. Спектральная информация для всех полос масштабных коэффициентов, выше и равных max_sfb, для которых нет данных раздела, равна нулю.
Существует единственная дифференциальная кодовая книга масштабных коэффициентов, которая представляет диапазон значений как показано в таблице 58. Дифференциальная кодовая книга масштабных коэффициентов дана в таблице А.1. Существует одиннадцать кодовых книг Хаффмана для спектральных данных, в соответствии с таблицей 59. Кодовые книги даны в таблицах А.2-А.12. Существует три других "кодовых книги" выше и вне фактических кодовых книг Хаффмана, в частности "нулевая" кодовая книга, указывающая, что ни масштабные коэффициенты, ни квантованные данные не будут переданы, и "интенсивностные" сборники кодов, указывающие, что этот отдельный канал является частью канальной пары, и что данные, которые обычно были бы в обычном случае масштабными коэффициентами, вместо этого являются данными для intensity stereo. В этом случае никакие квантованные спектральные данные не передаются. Кодовые книги 12 и 13 находятся в резерве.
Кодовые книги Хаффмана для спектральных значений кодируют пары или четверки квантованных спектральных коэффициентов без знака или со знаком, как показано в таблице 59. В этой таблице также указано самое большое абсолютное значение (LAV), которое может быть закодировано каждой кодовой книгой, и определен двоичный массив unsigned_cb [], в котором 1 соответствует беззнаковой кодовой книге и 0 - знаковой.
Результатом декодирования Хаффмана каждого кодового слова является индекс кодового слова, приведенный в первой графе таблицы А.1. Этот результат преобразовывается в требуемый дифференциальный масштабный коэффициент путем добавления index_offset к индексу. Значение index_offset равно -60, как показано в таблице 58. Аналогично результатом декодирования Хаффмана каждой группы из n спектральных коэффициентов является индекс кодового слова, приведенный в первой графе таблиц А.2-А.12. Этот индекс преобразовывается в n спектральных значений в соответствии со следующим псевдо с-кодом: unsigned = булевое значение unsigned_cb [i], приведенное во второй графе таблицы 59.
dim = размерность кодовой книги, приведенная в третьем графе таблицы 59.
Если кодовая книга Хаффмана представляет знаковые значения, декодирование n квантованных спектральных значений заканчивается после декодирования Хаффмана и преобразования индекса кодового слова в квантованные спектральные коэффициенты.
Если кодовая книга представляет беззнаковые значения, биты знака, связанные с ненулевыми коэффициентами, следуют сразу за кодовой комбинацией Хаффмана, ’1’ указывает на отрицательный коэффициент, а ’0’ - на положительный. Например, если кодовая комбинация Хаффмана из сборника кодов 7
hcod [7] [у] [z]
была обнаружена, то сразу после нее в потоке битов следует
pair_sign_bits, которое является полем переменной длины от 0 до 2 битов. Это может быть обнаружено в потоке битов как
где one_sign_bit - следующий бит в потоке битов, а pair_sign_bits - объединение one_sign_bit полей.
Когда pulse_data_present равен 1 (используется импульсный escape), один или несколько квантованных коэффициентов были заменены в кодере коэффициентами с меньшими амплитудами. Число замененных коэффициентов обозначается number_pulse. При восстановлении квантованных спектральных коэффициентов x_quant эта замена компенсируется путем добавления или вычитания pulse_amp из ранее декодированных коэффициентов, индексы частоты которых обозначаются pulse_start_sfb и pulse_offset. Следует учесть, что импульсный escape-метод недопустим для блока, window_sequence которого EIGHT_SHORT_SEQUENCE. Процесс декодирования определяется в следующем псевдо с-коде:
Несколько инструментов декодера (TNS, банк фильтров) получают доступ к спектральным коэффициентам без чередования, т.е. все спектральные коэффициенты упорядочиваются согласно номеру окна и частоте в пределах окна. Это обозначается указанием spec [w][k], вместо x_quant [g] [w] [sfb] [bin].
Следующий псевдо с-код указывает на соотношение между четырехмерной, с чередованием, структурой массива x_quant [] [] [] [] и двумерной, без чередования, структурой массива spec[] []. В последнем массиве первый индекс увеличивается по отдельным окнам в последовательности окон, и второй индекс увеличивается по спектральным коэффициентам, которые соответствуют каждому окну, внутри которого коэффициенты следуют линейно от низких частот к верхним.
7.4 Таблицы
Таблица 58 - Параметры кодовой книги Хаффмана для масштабных коэффициентов
Номер кодовой книги | Размерность кодовой книги | index_offset | Диапазон значений | Кодовая книга приведена в: |
0 | 1 | -60 | -60...+60 | Таблица А.1 |
Таблица 59 - Параметры кодовой книги Хаффмана для спектральных значений
Номер кодовой книги | unsigned_cb [i] | Размерность кодовой книги | LAV кодовой книги | Кодовая книга приведена в: |
0 | - | - | 0 | - |
1 | 0 | 4 | 1 | Таблица А.2 |
2 | 0 | 4 | 1 | Таблица А.3 |
3 | 1 | 4 | 2 | Таблица А.4 |
4 | 1 | 4 | 2 | Таблица А.5 |
5 | 0 | 2 | 4 | Таблица А.6 |
6 | 0 | 2 | 4 | Таблица А.7 |
7 | 1 | 2 | 7 | Таблица А.8 |
8 | 1 | 2 | 7 | Таблица А.9 |
9 | 1 | 2 | 12 | Таблица А.10 |
10 | 1 | 2 | 12 | Таблица А.11 |
11 | 1 | 2 | (16) ESC | Таблица А.12 |
12 | - | - | (в резерве) | - |
13 | - | - | (в резерве) | - |
14 | - | - | Интенсивность не в фазе | - |
15 | - | - | Интенсивность в фазе | - |
8 Квантование
8.1 Описание инструмента
Для квантования спектральных коэффициентов в кодере используется неравномерное квантование. Декодер должен выполнить обратное неравномерное квантование после декодирования Хаффмана масштабных коэффициентов (см. разделы 7 и 11) и спектральных данных (см. раздел 7).
8.2 Элементы справки
x_quant [g] [win] [sfb] [bin] | Квантованный спектральный коэффициент для группы g, окна win, полосы масштабных коэффициентов sfb, коэффициента bin. |
x_invquant [g] [win] [sfb] [bin] | Спектральный коэффициент для группы g, окна win, полосы масштабных коэффициентов sfb, коэффициента bin после обратного квантования. |
8.3 Процесс декодирования
Обратное квантование описывается следующей формулой:
Максимальная допустимая абсолютная амплитуда для x_quant равна 8191. Обратное квантование выполняется следующим образом:
9 Масштабные коэффициенты
9.1 Описание инструмента
Основным методом регулирования шумов квантования в частотной области является формирование шума с использованием масштабных коэффициентов. С этой целью спектр делится на несколько групп спектральных коэффициентов, называемых полосами масштабных коэффициентов, для которых используется один масштабный коэффициент (см. 6.3.4). Масштабный коэффициент представляет собой значение коэффициента усиления, которой используется для изменения амплитуды всех спектральных коэффициентов в этой полосе масштабного коэффициента. Этот механизм используется для изменения распределения шумов квантования, вызванных неравномерным квантованием, в спектральной области.
Для window_sequences, которые содержат окна SHORT_WINDOW, может быть применена группировка, т.е. для конкретного количества последовательных окон SHORT_WINDOW может использоваться только один набор масштабных коэффициентов. Каждый масштабный коэффициент в этом случае применяется к группе соответствующих полос масштабных коэффициентов (см. 6.3.4).
В этом инструменте масштабные коэффициенты применяются к деквантованным коэффициентам для восстановления спектральных значений.
9.2 Определения
9.2.1 Функции данных
scale_factor_data () | Часть потока битов, которая содержит дифференциально-кодированные масштабные коэффициенты (см. таблицу 18) |
9.2.2 Элементы данных
global_gain | 8-разрядное беззнаковое целое, представляющее значение первого масштабного коэффициента. Это также начальное значение для следующих дифференциально-кодированных масштабных коэффициентов (см. таблицу 16). |
hcod_sf [] | Кодовая комбинация Хаффмана из таблицы кода Хаффмана, используемая для кодирования масштабных коэффициентов (см. таблицу 18 и 7.2). |
9.2.3 Элементы справки
dpcm_sf [g] [sfb] | Дифференциально-кодированный масштабный коэффициент группы g, полосы масштабных коэффициентов sfb. |
x_rescal [] | Перемасштабированные спектральные коэффициенты |
sf [g] [sfb] | Массив масштабных коэффициентов каждой группы |
get_scale_factor_gain () | Функция, которая возвращает значение усиления, соответствующего масштабному коэффициенту |
9.3 Процесс декодирования
9.3.1 Полосы масштабных коэффициентов
Масштабные коэффициенты используются для формирования шумов квантования в спектральной области. С этой целью спектр делится на несколько полос масштабных коэффициентов (см. 6.3.4). Каждой полосе масштабных коэффициентов соответствует масштабный коэффициент, который представляет определенное значение коэффициента усиления, которое должно быть применено ко всем спектральным коэффициентам в этой полосе масштабных коэффициентов. В случае EIGHT_SHORT_SEQUENCE полоса масштабных коэффициентов может содержать многократные оконные полосы масштабных коэффициентов SHORT_WINDOW (см. 6.3.4 и 6.3.5).
9.3.2 Декодирование масштабных коэффициентов
Для всех масштабных коэффициентов разность с предыдущим значением кодируется при помощи кодовой книги Хаффмана, данной в таблице А.1. Начальное значение задается явным образом как 8-битный ИКМ отсчет элемента данных global_gain. Масштабный коэффициент не передается для полос масштабных коэффициентов, которые кодируются со сборником кодов Хаффмана ZERO_HCB. Если сборник кодов Хаффмана для полос масштабных коэффициентов кодируется с INTENSITY_HCB или INTENSITY_HCB2, масштабный коэффициент используется для intensity stereo (см. раздел 7 и 10.2). В этом случае обычный масштабный коэффициент не существует (но инициализируется в нуль, чтобы иметь определенное значение в массиве).
Следующий псевдокод описывает декодирование масштабных коэффициентов sf [g] [sfb]:
Следует учесть, что масштабные коэффициенты sf [g] [sfb], должны быть в пределах диапазона 0...255 включительно.
9.3.3 Использование масштабных коэффициентов
Спектральные коэффициенты всех полос масштабных коэффициентов должны повторно масштабироваться в соответствии с их масштабными коэффициентами. В случае последовательности окон, которая состоит из группы коротких окон, все коэффициенты в сгруппированных полосах масштабных коэффициентов окна должны масштабироваться с использованием того же самого масштабного коэффициента.
В случае window_sequences из одного окна полосы масштабных коэффициентов их соответствующие коэффициенты расположены в порядке возрастания частоты. В случае EIGHT_SHORT_SEQUENCE и группировки спектральные коэффициенты сгруппированных коротких окон чередуются с полосами масштабных коэффициентов окна.
Перемасштабирование выполняется согласно следующему псевдокоду:
Функция get_scale_factor_gain (sf [g] [sfb]) возвращает коэффициент усиления, который соответствует масштабному коэффициенту. Возвращаемое значение получается из уравнения
Постоянная SF_OFFSET должна быть установлена равной 100.
Следующий псевдокод описывает эту операцию:
10 Совместное кодирование
10.1 M/S stereo*
10.1.1 Описание инструмента
Кодирование M/S stereo применяется к парам каналов. Каналы чаще всего объединяются так, чтобы они имели симметричное расположение относительно слушателя, например левый/правый или левый окружения/правый окружения. Первый канал в паре обозначается как "левый", а второй - как "правый". Вектор, образованный сигналами левого и правого каналов, восстанавливается или де-матрицируется с помощью единичной матрицы
или обратной матрицы M/S
Решение о том, какая матрица должна использоваться, принимается для каждой полосы масштабных коэффициентов в соответствии с флагами ms_used. Кодирование M/S может применяться только, если common_window равно ’1’ (см. 6.3.1).
10.1.2 Определения
10.1.2.1 Элементы данных
ms_mask_present | Двухбитное поле, определяющее MS маску |
00 - Все нули | |
01 - Маска max_sfb полос ms_used следует за этим полем | |
10 - Все единицы | |
11 - В резерве | |
(см. 4.3, таблица 14), | |
ms_used [g] [sfb] | Однобитный флаг для каждой полосы масштабных коэффициентов, указывающий, что кодирование M/S используется в группе окон g и полосе масштабных коэффициентов sfb (см. 4.3, таблица 14). |
10.1.2.2 Элементы справки
l_spec [] | Массив, содержащий спектр левого канала соответствующей пары каналов. |
r_spec [] | Массив, содержащий спектр правого канала соответствующей пары каналов. |
is_intensity (g, sfb) | Функция, возвращающая состояние интенсивности, определенная в 10.2.3. |
10.1.3 Процесс декодирования
Восстановление (спектральные коэффициенты первого ("левого") и второго ("правого") каналов) выполняется в соответствии с mask_present и флагами ms_used [][] следующим образом:
Следует учесть, что ms_used [ ] [ ] используется также в контексте кодирования intensity stereo. Если кодирование intensity stereo было использовано для определенной полосы масштабных коэффициентов, декодирование стерео M/S не выполняется.
10.2 Intensity stereo*
10.2.1 Описание инструмента
Этот инструмент используется, чтобы реализовать кодирования intensity stereo пары каналов. Оба выходных канала получаются из одного набора спектральных коэффициентов после обратного процесса квантования. Это выполняется выборочно на основе полос масштабных коэффициентов при активном intensity stereo.
10.2.2 Определения
10.2.2.1 Элементы данных
hcod_sf [ ] | Кодовая комбинация Хаффмана из таблицы Хаффмана, используемая для кодирования масштабных коэффициентов (см. 7.2). |
10.2.2.2 Элементы справки
dpcm_is_position [ ] [ ] | Дифференциально-кодированная позиция intensity stereo |
is_position [group] [sfb] | Позиция intensity stereo для каждой группы и полосы масштабных коэффициентов |
l_spec [ ] | Массив, содержащий спектр левого канала соответствующей пары канала |
r_spec [ ] | Массив, содержащий спектр левого канала соответствующей пары канала |
10.2.3 Процесс декодирования
Использование кодирования intensity stereo сигнализируется при помощи псевдокодовых книг INTENSITY_HCB и INTENSITY_HCB2 (15 и 14) в правом канале channel_pair_element (), имеющем общий ics_info () (common_window==1). INTENSITY_HCB и INTENSITY_HCB2 сигнализируют синфазное и несовпадающее по фазе кодирование intensity stereo соответственно.
Кроме того, фазовое соотношение кодирования intensity stereo может быть реверсировано посредством поля ms_used: поскольку кодирование M/S stereo и кодирование intensity stereo являются взаимоисключающими для определенной полосы масштабных коэффициентов и группы, основное фазовое соотношение, обозначенное таблицами Хаффмана, изменяется от синфазного до несовпадающего по фазе или наоборот, если соответствующий бит ms_used устанавливается для соответствующей полосы.
Информация для декодирования intensity stereo представлена "позицией intensity stereo", указывающей на соотношение между масштабированием левого и правого каналов. Если кодирование intensity stereo является активным для определенной группы и полосы масштабных коэффициентов, значение позиции intensity stereo передается вместо масштабного коэффициента правого канала.
Позиции интенсивности кодируются точно так же, как масштабные коэффициенты, т.е. с помощью кодирования методом Хаффмана разностных значений, за исключением двух отличий:
нет первого значения, которое передается как ИКМ. Вместо этого следует дифференциальное декодирование, предполагая, что последнее значение позиции intensity stereo равно нулю;
дифференциальное декодирование выполняется отдельно для масштабных коэффициентов и позиций intensity stereo. Другими словами, декодер масштабных коэффициентов игнорирует значения позиции intensity stereo и наоборот (см. 9.3.2).
Одна и та же кодовая книга используется для кодирования позиций intensity stereo и масштабных коэффициентов. Две псевдофункции определены для использования в декодировании intensity stereo:
Декодирование intensity stereo для одной пары каналов определяется следующим псевдокодом:
10.2.4 Интеграция с инструментом внутриканального предсказания
10.3 Спаренный канал
10.3.1 Описание инструмента
Элементы спаренного канала обеспечивают две функции: во-первых, спаренные каналы могут использоваться для реализации обобщенного intensity stereo кодирования, где спектральные значения каналов могут быть совместно использованы; во-вторых, спаренные каналы могут использоваться для динамического сведения одного звукового объекта в стерео.
Следует учесть, что этот инструмент включает параметры, зависимые от определенного профиля (см. 5.1).
10.3.2 Определения
10.3.2.1 Элементы данных
ind_sw_cce_flag | Один бит, указывающий, является ли спаренный целевой элемент синтаксиса независимо (1) или зависимо (0) переключаемым ССЕ (см. 4.3, таблицу 22). |
num_coupled_elements | Количество спаренных целевых каналов равно num_coupled_elements+1. Минимальное значение 0 указывает на 1 спаренный целевой канал (см. 4.3, таблицу 22). |
cc_target_is_cpe | Один бит, указывающий, является ли спаренный целевой элемент синтаксиса СРЕ (1) или SCE (0) (см. 4.3, таблицу 22). |
cc_target_tag_select | Четырехбитное поле, определяющее element_instance_tag спаренного целевого элемента синтаксиса (см. 4.3, таблицу 22). |
cc_l | Один бит, указывающий, что список значений gain_element применяется к левому каналу пары каналов (см. 4.3, таблицу 22). |
cc_r | Один бит, указывающий, что список значений gain_element применяется к правому каналу пары каналов (см. 4.3, таблицу 22). |
cc_domain | Один бит, указывающий, выполняется ли спаривание каналов до (0) или после (1) TNS декодирования спаренных целевых каналов (см. 4.3, таблицу 22). |
gain_element_sign | Один бит, указывающий, содержат ли переданные значения gain_element информацию о совпадающем по фазе/несовпадающем по фазе спаривании (1) или нет (0) (см. 6.3, таблицу 22). |
gain_element_scale | Определяет разрешение амплитуды cc_scale операции масштабирования согласно таблице 61 (см. 4.3, таблицу 22). |
common_gain_element_present [c] | Один бит, указывающий, что передается кодированный по Хаффману common_gain_element (1) или передаются кодированные по Хаффману разностные gain_elements (0) (см. 4.3, таблицу 22). |
10.3.2.2 Элементы справки
dpcm_gain_element[][] | Дифференцированно-кодированный элемент усиления. |
gain_element [group] [sfb] | Элемент усиления для каждой группы и полосы масштабных коэффициентов. |
common_gain_element[] | Элемент усиления, который используется для всех групп окон и полос масштабных коэффициентов одного целевого спаренного канала. |
spectrum_m (idx, domain) | Указатель на спектральные данные, связанные с single_channel_element () с индексом idx. В зависимости от значения "domain" указываются спектральные коэффициенты до (0) или после (1) TNS декодирования. |
spectrum_l (idx, domain) | Указатель на спектральные данные, связанные с левым каналом channel_pair_element () с индексом idx. В зависимости от значения "domain" указываются спектральные коэффициенты до (0) или после (1) TNS декодирования. |
spectrum_r (idx, domain) | Указатель на спектральные данные, связанные с правым каналом channel_pair_element () с индексом idx. В зависимости от значения "domain", указываются спектральные коэффициенты до (0) или после (1) TNS декодирования. |
10.3.3 Процесс декодирования
Спаренный канал основан на встроенном single_channel_element (), который объединяется для этого с некоторыми соответствующими полями.
Спаренные целевые элементы синтаксиса (SCE или CPEs) адресуются, используя два элемента синтаксиса. Во-первых, поле cc_target_is_cpe указывает, адресуются ли SCE или СРЕ. Во-вторых, поле cc_target_tag_select указывает instance_tag SCE/СРЕ.
Операция масштабирования, включенная в спаривание каналов, определяется значениями gain_element, которые описывают используемый коэффициент усиления и знак. В соответствии с процедурами кодирования для масштабных коэффициентов и позиций intensity stereo значения gain_element дифференциально кодируются с использованием таблицы Хаффмана для масштабных коэффициентов. Точно так же декодируемые коэффициенты усиления для пары относятся к оконным группам спектральных коэффициентов.
Независимо коммутируемые ССЕ и зависимо коммутируемые ССЕ
Есть два вида ССЕ: "независимо переключаемые" и "зависимо переключаемые". Независимо переключаемым ССЕ является ССЕ, в котором статус окна (т.е. window_sequence и window_shape) ССЕ не должен соответствовать статусу окна любого спаренного SCE или спаренных каналов СРЕ. Есть несколько важных ограничений:
Во-первых, требуется, чтобы независимо переключаемый ССЕ мог использовать только элемент common_gain, а не список gain_elements.
Во-вторых, ССЕ должен быть полностью декодирован во временном пространстве (включая банк фильтров синтеза) до масштабирования и добавления к различным SCE и каналам СРЕ, с которыми он спарен, в случае несоответствия статуса окна.
У зависимо переключаемого ССЕ, с другой стороны, должен быть статус окна, соответствующий всем целевым SCE и каналы СРЕ, которые спарены согласно списку элементов сс_l и cc_r. В этом случае ССЕ должен быть полностью декодирован в частотном пространстве и затем масштабироваться в соответствии со списком усиления до добавления к целевому SCE или каналам СРЕ.
Следующий псевдокод в функции decode_coupling_channel () определяет декодирование для зависимо переключаемого элемента спаренного канала. Сначала спектральные коэффициенты встроенного single_channel_element () декодируются и помещаются во внутренний буфер. Так как элементы усиления для первой спаренной цели (list_index == 0) не передаются, все значения gain_element, связанные с этой целью, как предполагается, равны 0, т.е. спаренный канал добавляется к спаренному целевому каналу с его масштабированием. Иначе спектральные коэффициенты масштабируются и добавляются к коэффициентам спаренных целевых каналов, используя соответствующий список значений gain_element.
Независимо коммутируемый ССЕ декодируется как зависимо коммутируемый ССЕ, имеющий только элементы common_gain_element. Однако получающийся масштабированный спектр преобразовывается обратно к его временному представлению и затем спаривается.
Следует учесть, что списки gain_element могут быть совместно использованы левым и правым каналами целевого элемента пары каналов. Это сигнализируется нулевыми сс_l и сс_r, как обозначено в таблице 60.
Таблица 60 - Совместное использование списков gain_element
cc_l, cc_r | Общий список усиления представлен | Левый список усиления представлен | Правый список усиления представлен |
0, 0 | да | нет | нет |
0, 1 | нет | нет | да |
1, 0 | нет | да | нет |
1, 1 | нет | да | да |
10.3.4 Таблицы
Таблица 61 - Масштабирование для спаренных каналов (cc_scale_table)
Значение "gain_element_scale" | Разрешение амплитуды "cc_scale" | Шаг, дБ |
0 | 2 (1/8) | 0,75 |
1 | 2 (1/4) | 1,50 |
2 | 2 (1/2) | 3,00 |
3 | 2 1 | 6,00 |
11 Предсказание
11.1 Описание инструмента
Предсказание используется для улучшенного устранения избыточности, и особенно эффективно в случае более или менее стационарных участков сигнала, которые являются наиболее требовательными с точки зрения необходимой скорости передачи. Предсказание может быть применено к каждому каналу с помощью внутриканального (или моно) предсказывающего устройства, которое использует автокорреляцию спектральных составляющих последовательных фреймов. Поскольку window_sequence типа EIGHT_SHORT_SEQUENCE указывает на сигнальные изменения, т.е. нестационарность, предсказание используется, только если window_sequence имеет типы ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE или LONG_STOP_SEQUENCE. Использование инструмента предсказания является зависимым профилем.
Для каждого канала предсказание применяется к спектральным компонентам, полученным в результате спектрального преобразования в банке фильтров. Для каждого спектрального компонента, вплоть до PRED_SFB_MAX, есть один соответствующий предсказатель, приводящий к банку предсказания, где каждый предсказатель использует автокорреляцию спектральных значений последовательных фреймов.
Полная структура кодирования с использованием банка фильтров с высокой спектральной разрешающей способностью подразумевает использование обратных адаптивных предсказателей для достижений высокой эффективности кодирования. В этом случае коэффициенты предсказания вычисляются по предыдущим квантованным спектральным значениям в кодере, так же как и в декодере, и никакая дополнительная служебная информация не требуется для передачи коэффициентов предсказания, в отличие от прямых адаптивных предсказаний. Обратно-адаптивное предсказание второго порядка с решетчатой структурой используется для каждого спектрального компонента так, чтобы каждый предсказатель работал со спектральными значениями двух предыдущих фреймов. Параметры предсказателя адаптируются к текущей сигнальной статистике от фрейма к фрейму, используя алгоритм адаптации на основе LMS. Если предсказание активно, на вход квантователя поступает ошибка предсказания вместо исходного спектрального компонента, что приводит к увеличению эффективности кодирования.
Чтобы сохранить требования на минимуме, переменные состояния предсказателя квантуются перед хранением.
11.2 Элементы данных
predictor_data_present | 1 бит, указывающий, используется ли предсказание в текущем фрейме (1) или нет (0) (всегда представлено при ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE и LONG_STOP_SEQUENCE, см. 6.3, таблицу 15). |
predictor_reset | 1 бит, указывающий, происходит ли сброс предсказателя в текущем фрейме (1) или нет(0) (только если флаг predictor_data_present установлен, см. 4.3, таблицу 15). |
predictor_reset_group_number | 5-битное число, определяющее группу, которая будет сброшена в текущем фрейме, если сброс предсказателя активирован (только если флаг predictor_reset установлен, см. 4.3, таблицу 15). |
prediction_used | 1 бит для каждой полосы масштабных коэффициентов (sfb), определяющий включено ли предсказание (1) или нет (0) для полосы sfb. Если max_sfb меньше, чем PRED_SFB_МАХ, тогда, для i больше или равно max_sfb, prediction_used [i] не передается, и поэтому устанавливается в ноль (0) (только если флаг predictor_data_present установлен, см. 4.3, таблицу 15). |
Таблица 62 определяет верхний предел полос масштабных коэффициентов, для которых может использоваться предсказание.
Таблица 62 - Верхний частотный предел для предсказания
Частота дискретизации, Гц | Pred_SFB_MAX | Количество предсказателей | Максимальная частота предсказания, Гц |
96000 | 33 | 512 | 24000,00 |
88200 | 33 | 512 | 22050,00 |
64000 | 38 | 664 | 20750,00 |
48000 | 40 | 672 | 15750,00 |
44100 | 40 | 672 | 14470,31 |
32000 | 40 | 672 | 10500,00 |
24000 | 41 | 652 | 7640,63 |
22050 | 41 | 652 | 7019,82 |
16000 | 37 | 664 | 5187,50 |
12000 | 37 | 664 | 3890,63 |
11025 | 37 | 664 | 3574,51 |
8000 | 34 | 664 | 2593,75 |
Это означает, что на частоте дискретизации 48 кГц предсказание может использоваться в полосах масштабных коэффициентов от 0 до 39. Согласно таблице 46 эти 40 полос масштабных коэффициентов включают линии МДКП 0...671, следовательно, по максимуму имеется 672 предсказателя.
11.3 Процесс декодирования
Для каждого спектрального компонента вплоть до предела, определенного PRED_SFB_MAX каждого канала, есть один предсказатель. Предсказанием управляют на основе single_channel_element () или channel_pair_element (), на основе переданной служебной информации, в два шага: сначала для целого фрейма, а затем для каждой отдельной полосы масштабных коэффициентов (см. 11.3.1). Коэффициенты предсказания для каждого предсказателя вычисляются по предыдущим восстановленным значениям соответствующих спектральных составляющих. Детали необходимой обработки предсказателя описываются в 11.3.2. В начале процесса декодирования инициализируются все предсказатели. Механизм инициализации и сброс предсказателей описываются в 11.3.2.4.
11.3.1 Служебная информация предсказателя
Следующее описание действительно для любого одного single_channel_element () или одного channel_pair_element () и должно быть применено к каждому такому элементу. Для каждого фрейма служебная информация предсказателя должна быть извлечена из потока битов, чтобы осуществить управление дальнейшей обработкой предсказателя в декодере. В случае single_channel_element () управляющая информация допустима для банка предсказателей канала, связанного с этим элементом. В случае channel_pair_element () есть два варианта. Если common_window = 1, есть только один набор управляющей информации, которая допустима для двух банков предсказателей двух каналов, связанных с этим элементом. Если common_window = 0, есть два набора управляющей информации для каждого из двух банков предсказателей двух каналов, связанных с этим элементом.
Если window_sequence имеет тип ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE или LONG_STOP_SEQUENCE, бит predictor_data_present считывается. Если этот бит не установлен в (0), то предсказание выключается для всего текущего фрейма, и нет дальнейшей служебной информации о предсказании. В этом случае бит prediction_used для каждой полосы масштабных коэффициентов, сохраненной в декодере, должен быть обнулен. Если бит predictor_data_present установлен в (1), то предсказание используется для текущего фрейма, и бит predictor_reset считывается, определяя, применяется ли сброс предсказателя в текущем фрейме (1), или нет (0). Если predictor_reset установлен, то считываются следующие 5 битов, соответствующие числу, определяющему группу предсказателей, которые будут сброшены в текущем фрейме (см. также 11.3.2.4). Если predictor_reset не установлен, то в потоке битов указанное 5-битное число отсутствует. Затем считываются биты prediction_used, которые управляют использованием предсказания в каждой полосе масштабных коэффициентов индивидуально, т.е. если бит установлен для определенной полосы масштабных коэффициентов, предсказание включается для всех спектральных компонентов этой полосы масштабных коэффициентов, и квантованная ошибка предсказания каждого спектрального компонента передается вместо квантованного значения спектрального компонента. Иначе предсказание отключается для этой полосы масштабных коэффициентов, и передаются квантованные значения спектральных компонентов.
11.3.2 Обработка предсказателя
11.3.2.1 Общие сведения
где
Следовательно, полная оценка:
Чтобы адаптировать коэффициенты к текущим сигнальным свойствам, математические ожидания в приведенном выше уравнении заменяют на усредненные по времени оценки, измеренные за ограниченный прошлый сигнальный период. Должен быть принят компромисс между хорошей сходимостью и оптимальной настройкой предсказателя в течение периодов сигнала с квазистационарной характеристикой и возможностью быстрой адаптации в случае нестационарности. В этом контексте особенно интересны алгоритмы с итеративным улучшением оценок, т.е. от отсчета к отсчету. Здесь используется метод наименьших квадратов (LMS) и коэффициенты предсказания вычисляются следующим образом:
с
Если window_sequence имеет типы ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE и LONG_STOP_SEQUENCE, отличается только вычисление восстановленного значения квантованных спектральных компонентов в зависимости от значения бита prediction_used:
если бит не установлен в (0), то квантованное значение спектрального компонента восстанавливается непосредственно по переданным данным.
В случае коротких блоков, т.е. window_sequence имеет тип EIGHT_SHORT_SEQUENCE, предсказание всегда отключается, и выполняется сброс всех предсказателей во всех полосах масштабных коэффициентов, который эквивалентен инициализации (см. 11.3.2.4). Для single_channel_element () обработка предсказателя для одного фрейма выполняется согласно следующему псевдокоду:
(Предполагается, что восстановленное значение y_rec (с), которое является либо восстановленной квантованной ошибкой предсказания, либо восстановленным квантованным спектральным коэффициентом, доступно из предыдущей обработки.)
В случае channel_pair_element () с common_window = 1 единственное отличие заключается в том, что вычисление x_est и х_rec во внутренней петле цикла выполняется для обоих каналов, связанных с channel_pair_element (). В случае channel_pair_element () с common_window = 0 у каждого канала есть предсказание в соответствии с канальной служебной информацией предсказания.
11.3.2.2 Квантование при вычислении предсказания
Все промежуточные результаты в каждом вычислении с плавающей запятой в алгоритме предсказания будут представлены в округленной форме с использованием фиксированной точности с плавающей запятой.
Вычислительный модуль IEEE с плавающей запятой, используемый при выполнении всех арифметических действий в инструменте предсказания, включает следующие опции:
Округление к ближайшему значению; округление к значению с младшим значащим битом, равным 0.
Исключение переполнения - значения, величина которых больше, чем самое большое возможное значение, будут установлены в бесконечность.
Исключение потери значимости - постепенная потеря значимости (денормализованные числа) будет поддерживаться; будут обнулены значения, величина которых меньше, чем самое маленькое представимое значение.
11.3.2.3 Быстрый алгоритм для округления
11.3.3 Сброс предсказателя
Циклический механизм сброса применяется кодером и сообщается декодеру, в котором все предсказатели инициализируются снова в определенном временном интервале способом чередования. С одной стороны это увеличивает устойчивость предсказателя, повтороно синхронизируя предсказатели кодера и декодера, и с другой стороны это позволяет задавать определенные точки входа в потоке битов.
Весь набор предсказателей подразделяется на 30 групп сброса согласно таблице 63.
Таблица 63 - Группы сброса предсказателей
Номер группы сброса | Предсказатели группы сброса |
1 | Р0, Р30, Р60, Р90... |
2 | Р1, Р31, Р61, Р91... |
3 | Р2, Р32, Р62, Р92... |
... | |
30 | Р29, Р59, Р89, Р119... |
Должен ли сброс быть применен в текущем фрейме, определяется битом predictor_reset. Если этот бит установлен, номер группы сброса предсказателей, которая будет сброшена в текущем фрейме, определяется из predictor_reset_group_number. Все предсказатели, принадлежащие этой группе сброса, инициализируются как описано выше. Эта инициализация должна быть сделана после того, как была выполнена обычная обработка предсказателей для текущего фрейма. Следует учесть, что у predictor_reset_group_number не может быть значений 0 или 31.
Типичный цикл сброса начинается с группы сброса номер 1, и номер группы сброса увеличивается на 1, пока не достигнет 30, затем все снова начинается с 1. Однако может произойти разрыв в нумерации групп сброса, например, из-за переключения между программами (потоками битов) или вырезания и вставки. В этом случае есть три возможности для работы декодера:
- обнаружить разрыв, продолжить нормальную обработку, но отключить выходной сигнал, пока не будет выполнен один полный цикл сброса, и предсказатели не будут повторно синхронизированы;
- сбросить все предсказатели.
Каждая группа предсказателей должна быть сброшена после максимального "активного" периода длиной 240 фреймов. Сброс 30 групп сброса предсказателей может быть выполнен либо постепенно, либо за один раз, либо любым другим путем, пока максимальный период сброса 240 "активных" фреймов не нарушен. Следует учесть, что "активный" период в 240 фреймов может длиться намного дольше, чем 240 фреймов, так как фреймы с активным предсказанием могут чередоваться с произвольным числом фреймов без предсказания. Далее, группы предсказателей могут быть активны независимо друг от друга, таким образом, требуется отдельный учет "активности" каждой группы сброса предсказателей.
В случае single_channel_element () или channel_pair_element () с common_window = 0 сброс должен быть применен к банку(ам) предсказателей канала(ов), связанных с этим элементом. В случае channel_pair_element () с common_window = 1 сброс должен быть применен к двум банкам предсказателей двух каналов, связанных с этим элементом.
В случае короткого блока (window_sequence типа EIGHT_SHORT_SEQUENCE) должны быть сброшены все предсказатели во всех полосах масштабных коэффициентов.
11.4 Схемы
Рисунок 7 - Блок-схема внутриканального предсказателя для одного спектрального компонента в декодере (Стрелки указывают на поток сигналов для адаптации коэффициентов предсказания)
Рисунок 8 - Блок-схема модуля предсказания декодера для одного спектрального компонента
12 Временное формирование шума (TNS)
12.1 Описание инструмента
Временное формирование шума используется для управления временной формой шумов квантования в пределах отдельного окна преобразования. Это выполняется применением процессов фильтрации к частям спектральных данных каждого канала.
Следует учесть, что этот инструмент включает параметры, зависимые от определенного профиля (см. 5.1).
12.2 Элементы данных
n_filt [w] | Число фильтров формирования шума, используемых для окна w (см. 4.3, таблицу 19). |
coef_res [w] | Маркер, определяющий разрешение переданных коэффициентов фильтра для окна w, соответствующий разрешению 3 бит (0) и 4 битам (1) (см. 4.3, таблицу 19). |
length [w] [filt] | Длина области, к которой фильтр применяется в окне w (в полосах масштабных коэффициентов) (см. 4.3, таблицу 19). |
order [w] [filt] | Порядок одного фильтра формирования шума, применяемого к окну w (см. 4.3, таблицу 19). |
direction [w] [filt] | 1 бит, указывающий, применяется ли фильтр в восходящем (0) или нисходящем (1) направлении (см. 4.3, таблицу 19). |
coef_compress [w] [filt] | 1 бит, указывающий, исключаются ли старшие значащие биты коэффициентов фильтра формирования шума filt в окне w, исключаются (1) или не исключаются (0) (см. 4.3, таблицу 19). |
coef [w] [filt] [i] | Коэффициенты одного фильтра формирования шума, относящиеся к окну w (см. 4.3, таблицу 19). |
spec [w] [k] | Массив, содержащий спектр для окна w обрабатываемого канала. |
В зависимости от window_sequence размер следующих полей потока битов переключается для каждого окна преобразования согласно его размеру:
Имя | Окно со 128 спектральными линиями | Размер другого окна |
’n_filt’ | 1 | 2 |
’length’ | 4 | 6 |
’order’ | 3 | 5 |
12.3 Процесс декодирования
Процесс декодирования для временного формирования шума выполняется отдельно для каждого окна текущего фрейма путем фильтрации выбранных областей спектральных коэффициентов (см. функцию tns_decode_frame).
Число фильтров формирования шума, применяемых к каждому окну, определяется "n_filt". Целевой диапазон спектральных коэффициентов выражен в полосах масштабных коэффициентов с нисходящим счетом от верхней полосы (или нижней полосы предыдущей полосы формирования шума).
Сначала происходит декодирование переданных коэффициентов фильтра, т.е. преобразование в числа со знаком, обратное квантование, преобразование в коэффициенты LPC, как описано в функции tns_decode_coef ().
Затем фильтры применяются к целевым областям частот спектральных коэффициентов канала (см. функцию tns_ar_filter ()). Маркер "direction" используется для определения направления, в котором фильтр движется относительно коэффициентов (0 = вверх, 1 = вниз).
Постоянная TNS_MAX_BANDS определяет максимальное количество полос масштабных коэффициентов, к которым применяется временное формирование шума. Максимально возможный порядок фильтра определяется постоянной TNS_MAX_ORDER. Обе константы являются параметрами, зависимыми от профиля.
Процесс декодирования для одного канала может быть описан следующим псевдокодом:
Следует учесть, что этот псевдокод использует С-интерпретацию массивов и векторов, т.е. если coef[w] [filt] [i] описывает коэффициенты для всех окон и фильтров, coef [w] [filt] является указателем на коэффициенты одного определенного окна и фильтра. Кроме того, коэффициент идентификатора используется в качестве формального параметра в функции tns_decode_coef ().
13 Банк фильтров и переключение окон
13.1 Описание инструмента
13.2 Определения
Элементы синтаксиса банка фильтров определяются в потоке необработанных данных для single_channel_element () (см. 4.3, таблицу 13), channel_pair_element () (см. 4.3, таблицу 14) и coupling_channel (см. 4.3, таблицу 22). Они состоят из управляющей информации window_sequence и window_shape.
Элементы данных:
window_sequence | 2 бита, указывающие, какая последовательность окон (т.е. размер блока) используется (см. 4.3, таблицу 15). |
window_shape | 1 бит, указывающий, какая оконная функция выбрана (см. 4.3, таблица 15). |
В таблице 44 показаны четыре window_sequences (ONLY_LONG_SEQUENCE, LONG_START_ SEQUENCE, EIGHT_SHORT_SEQUENCE, LONG_STOP_SEQUENCE).
13.3 Процесс декодирования
13.3.1 ОМДКП
Аналитическое выражение для ОМДКП
Значимые блочные переходы:
В дополнение к значимым блочным переходам следующие переходы возможны:
Все это обеспечивает плавный переход от одного блока к следующему.
13.3.2 Взвешивание в окне и переключение окон
В зависимости от window_sequence и элемента window_shape используются различные окна. Комбинация из половин окон, описанных ниже, обеспечивает любые возможные window_sequences.
Для window_shape == 1 коэффициенты окна берутся из оконной функции Кайзера-Бесселя (KBD):
где:
Иначе для window_shape == 0, используется синусное окно:
Для всех видов window_sequences window_shape левой половины первого окна определяется формой окна предыдущего блока. Это выражается следующей формулой:
где:
window_shape_previous_block: window_shape предыдущего (i-1) блока.
Для первого декодируемого блока потока битов window_shape левой и правой половины окна идентичны.
а) ONLY_LONG_SEQUENCE:
window_sequence == ONLY_LONG_SEQUENCE эквивалентно одному LONG_WINDOW (см. таблицу 44) с общей длиной окна 2048.
Для window_shape == 1, окно для ONLY_LONG_SEQUENCE задается следующим образом:
Если window_shape == 0, окно для Only_Long_Sequence может быть описано следующим образом:
После работы с окнами значения во времени могут быть выражены как:
б) LONG_START_SEQUENCE:
LONG_START_SEQUENCE необходима для получения корректного перекрытия и сложения для блочного перехода от ONLY_LONG_SEQUENCE к EIGHT_SHORT_SEQUENCE.
Если window_shape == 1, окно для LONG_START_SEQUENCE задается следующим образом:
Если window_shape == 0, окно для LONG_START_SEQUENCE:
Взвешенные в окне временные значения могут быть вычислены по формуле из а).
в) EIGHT_SHORT
window_sequence == EIGHT_SHORT включает в себя восемь перекрытых и сложенных SHORT_WINDOW (см. таблицу 44) длиной 256 каждое. Общая длина window_sequence вместе со смещением и нулями равна 2048. Каждый из восьми коротких блоков в начале взвешивается в отдельном окне.
Иначе, если window_shape == 0, оконные функции могут быть описаны как:
Перекрытие и сложение между EIGHT_SHORT window_sequence, приводящее к взвешенным временным значениям, описывается следующим образом:
г) LONG_STOP_SEQUENCE
Эта window_sequence необходима для переключения от IGHT_SHORT_SEQUENCE назад к ONLY_LONG_SEQUENCE.
Если window_shape == 1, окно для LONG_STOP_SEQUENCE задается следующим образом:
Если window_shape == 0, окно для LONG_START_SEQUENCE определяется как:
13.3.3 Перекрытие и сложение с предыдущей последовательностью окон
14 Управление усилением
14.1 Описание инструмента
Инструмент управления усилением состоит из нескольких компенсаторов усиления, этапов перекрытия/сложения и IPQF (обратной полифазного квадратурной фильтрации) этапа. Этот инструмент получает неперекрытые последовательности сигналов после этапов ОМДКП, window_sequence и gain_control_data и затем воспроизводит выходные ИКМ данные. Блок-схема для инструмента управления усилением показана на рисунке 9.
Из-за характеристик PQF банка фильтров порядок следования коэффициентов МДКП в каждой четной полосе PQF должен быть реверсирован. Это выполняется путем реверсирования порядка следования спектральных коэффициентов МДКП, т.е. заменой местами более высоких по частоте коэффициентов МДКП на более низкие по частоте коэффициенты МДКП.
IPQF комбинирует четыре равных полосы частот и производит декодированный выходной сигнал во времени. Компоненты элайзинга, возникшие из PQF в кодере, отменяются в IPQF.
14.2 Определения
14.2.1 Элементы данных
adjust_num | 3-битное поле, указывающее на количество изменений коэффициента усиления для каждой полосы IPQF. Максимальное количество изменений коэффициента усиления равно семи (см. 4.3, таблицу 27). |
max_band | 2-битное поле, указывающее на число полос IPQF, коэффициент усиления которых подлежит управлению. Смысл этого значения раскрыт ниже (см. 4.3, таблицу 27): |
0: нет полос с управлением усиления. | |
1: управляется усиление 2-ой полосы IPQF. | |
2: управляется усиление 2-ой и 3-ей полос IPQF. | |
3: управляется усиление 2-ой, 3-ей и 4-ой полос IPQF. | |
alevcode | 4-битное поле, указывающее на значение коэффициента усиления для одного изменения коэффициента усиления (см. 4.3, таблицу 27). |
aloccode | 2-, 4-, или 5-битное поле, указывающее позицию для одного изменения коэффициента усиления. Продолжительность этих данных изменяется в зависимости от последовательности окон (см. 4.3, таблицу 27). |
14.2.2 Элементы справки
gain control data | Служебная информация, указывающая на значения усиления и позиции, используется для изменения усиления. |
Полоса IPQF | Каждая полоса IPQF. |
14.3 Процесс декодирования
Следующие процессы требуются для декодирования:
- Декодирование данных управления усилением.
- Установка функции управления усилением.
- Взвешивание регулирования усиления и наложение.
- Фильтр синтеза.
14.3.1 Декодирование данных управления усилением
Данные управления усилением восстанавливаются следующим образом.
(1)
(2)
(3)
(4)
где
AdjLoc () определяется из таблицы 64. AdjLev() определяется из таблицы 65.
14.3.2 Установка функции управления усилением
Функция управления усилением получается следующим образом:
(1)
(2)
(3)
ifONLY_LONG_SEQUENCE
ifLONG_STAR_SEQUENCE
если EIGHT_SHORT_SEQUENCE
ifLONG_STOP_SEQUENCE
(4)
где
Функция модификации фрагмента, действительное число | |
Функция модификации фрагмента предыдущего фрейма, вещественное число | |
Функция модификации усиления, вещественное число | |
Функция управления усилением, вещественное число | |
Расположение управления усилением, определенное в 16.3.1, целое число | |
Уровень управления усилением, определенный в 14.3.1, целочисленное вещественное число | |
ID полосы, целое число от 1 до 3 | |
ID окна, целое число от 0 до 7 | |
целое число | |
целое число |
14.3.3 Взвешивание в окне управления усилением и наложение
Данные полос получаются посредством процессов (1) и (2), приведенные ниже.
(1) Взвешивание в окне
else
(2) Наложение
if ONLY_LONG_SEQUENCE
If LONG_START_SEQUENCE
if EIGHT_SHORT_SEQUENCE
if LONG_STOP_SEQUENCE
где:
14.3.4 Фильтр синтеза
Звуковые данные получаются из следующих уравнений:
(1)
(2)
(3)
где:
14.4 Схемы
Рисунок 9 - Блок-схема инструмента управления усилением
14.5 Таблицы
Таблица 64 - AdjLoc ()
AC | AdjLoc (AC) |
0 | 0 |
1 | 8 |
2 | 16 |
3 | 24 |
4 | 32 |
5 | 40 |
6 | 48 |
7 | 56 |
8 | 64 |
9 | 72 |
10 | 80 |
11 | 88 |
12 | 96 |
13 | 104 |
14 | 112 |
15 | 120 |
16 | 128 |
17 | 136 |
18 | 144 |
19 | 152 |
20 | 160 |
21 | 168 |
22 | 176 |
23 | 184 |
24 | 192 |
25 | 200 |
26 | 208 |
27 | 216 |
28 | 224 |
29 | 232 |
30 | 240 |
31 | 248 |
Таблица 65 - AdjLev ()
AV | AdjLev (AV) |
0 | -4 |
1 | -3 |
2 | -2 |
3 | -1 |
4 | 0 |
5 | 1 |
6 | 2 |
7 | 3 |
8 | 4 |
9 | 5 |
10 | 6 |
11 | 7 |
12 | 8 |
13 | 9 |
14 | 10 |
15 | 11 |
Таблица 66 - Q ()
j | Q (i) |
0 | 9,7655291007575512E-05 |
1 | 1,3809589379038567E-04 |
2 | 9,8400749256623534E-05 |
3 | -8,6671544782335723E-05 |
4 | -4,6217998911921346E-04 |
5 | -1,0211814095158174E-03 |
6 | -1,6772149340010668E-03 |
7 | -2,2533338951411081E-03 |
8 | -2,4987888343213967E-03 |
9 | -2,1390815966761882E-03 |
10 | -9,5595397454597772E-04 |
11 | 1,1172111530118943E-03 |
12 | 3,9091309127348584E-03 |
13 | 6,9635703420118673E-03 |
14 | 9,5595442159478339E-03 |
15 | 1,0815766540021360E-02 |
16 | 9,8770514991715300E-03 |
17 | 6,1562567291327357E-03 |
18 | -4,1793946063629710E-04 |
19 | -9,2128743097707640E-03 |
20 | -1,8830775873369020E-02 |
21 | -2,7226498457701823E-02 |
22 | -3,2022840857588906E-02 |
23 | -3,0996332527754609E-02 |
24 | -2,2656858741499447E-02 |
25 | -6,8031113858963354E-03 |
26 | 1,5085400948280744E-02 |
27 | 3,9750993388272739E-02 |
28 | 6,2445363629436743E-02 |
29 | 7,7622327748721326E-02 |
30 | 7,9968338496132926E-02 |
31 | 6,5615493068475583E-02 |
32 | 3,3313658300882690E-02 |
33 | -1,4691563058190206E-02 |
34 | -7,2307890475334147E-02 |
35 | -1,2993222541703875E-01 |
36 | -1,7551641029040532E-01 |
37 | -1,9626543957670528E-01 |
38 | -1,8073330670215029E-01 |
39 | -1,2097653136035738E-01 |
40 | -1,4377370758549035E-02 |
41 | 1,3522730742860303E-01 |
42 | 3,1737852699301633E-01 |
43 | 5,1590021798482233E-01 |
44 | 7,1080020379761377E-01 |
45 | 8,8090632488444798E-01 |
46 | 1,0068321641150089E+00 |
47 | 1,0737914947736096E+00 |
Приложение А
(обязательное)
Таблицы кодов Хаффмана
Таблица А.1 - Кодовая книга для масштабных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 18 | 3ffe8 |
1 | 18 | 3ffe6 |
2 | 18 | 3ffe7 |
3 | 18 | 3ffe5 |
4 | 19 | 7fff5 |
5 | 19 | 7fff1 |
6 | 19 | 7ffed |
7 | 19 | 7fff6 |
8 | 19 | 7ffee |
9 | 19 | 7ffef |
10 | 19 | 7fff0 |
11 | 19 | 7fffc |
12 | 19 | 7fffd |
13 | 19 | 7ffff |
14 | 19 | 7fffe |
15 | 19 | 7fff7 |
16 | 19 | 7fff8 |
17 | 19 | 7fffb |
18 | 19 | 7fff9 |
19 | 18 | 3ffe4 |
20 | 19 | 7fffa |
21 | 18 | 3ffe3 |
22 | 17 | 1ffef |
23 | 17 | 1fff0 |
24 | 16 | fff5 |
25 | 17 | 1ffee |
26 | 16 | fff2 |
27 | 16 | fff3 |
28 | 16 | ffl4 |
29 | 16 | fff1 |
30 | 15 | 7ff6 |
31 | 15 | 7ff7 |
32 | 14 | 3ff9 |
33 | 14 | 3ff5 |
34 | 14 | 3ff7 |
35 | 14 | 3ff3 |
36 | 14 | 3ff6 |
37 | 14 | 3ff2 |
38 | 13 | 1ff7 |
39 | 13 | 1ff5 |
40 | 12 | ff9 |
41 | 12 | ff7 |
42 | 12 | ff6 |
43 | 11 | 7f9 |
44 | 12 | ff4 |
45 | 11 | 7f8 |
46 | 10 | 3f9 |
47 | 10 | 3f7 |
48 | 10 | 3f5 |
49 | 9 | 1f8 |
50 | 9 | 1f7 |
51 | 8 | fa |
52 | 8 | f8 |
53 | 8 | f6 |
54 | 7 | 79 |
55 | 6 | 3a |
56 | 6 | 38 |
57 | 5 | 1a |
58 | 4 | b |
59 | 3 | 4 |
60 | 1 | 0 |
61 | 4 | a |
62 | 4 | с |
63 | 5 | 1b |
64 | 6 | 39 |
65 | 6 | 3b |
66 | 7 | 78 |
67 | 7 | 7a |
68 | 8 | f7 |
69 | 8 | f9 |
70 | 9 | 1f6 |
71 | 9 | 1f9 |
72 | 10 | 3f4 |
73 | 10 | 3f6 |
74 | 10 | 3f8 |
75 | 11 | 7f5 |
76 | 11 | 7f4 |
77 | 11 | 7f6 |
78 | 11 | 7f7 |
79 | 12 | ff5 |
80 | 12 | ff8 |
81 | 13 | 1ff4 |
82 | 13 | 1ff6 |
83 | 13 | fef8 |
84 | 14 | 3ff8 |
85 | 14 | 3ff4 |
86 | 16 | fff0 |
87 | 15 | 7ff4 |
88 | 16 | fff6 |
89 | 15 | 7ff5 |
90 | 18 | 3ffe2 |
91 | 19 | 7ffd9 |
92 | 19 | 7ffda |
93 | 19 | 7ffdb |
94 | 19 | 7ffdc |
95 | 19 | 7ffdd |
96 | 19 | 7ffde |
97 | 19 | 7ffd8 |
98 | 19 | 7ffd2 |
99 | 19 | 7ffd3 |
100 | 19 | 7ffd4 |
101 | 19 | 7ffd5 |
102 | 19 | 7ffd6 |
103 | 19 | 7fff2 |
104 | 19 | 7ffdf |
105 | 19 | 7ffe7 |
106 | 19 | 7ffe8 |
107 | 19 | 7ffe9 |
108 | 19 | 7ffea |
109 | 19 | 7ffeb |
110 | 19 | 7ffe6 |
111 | 19 | 7ffe0 |
112 | 19 | 7ffe1 |
113 | 19 | 7ffe2 |
114 | 19 | 7ffe3 |
115 | 19 | 7ffe4 |
116 | 19 | 7ffe5 |
117 | 19 | 7ffd7 |
118 | 19 | 7ffec |
119 | 19 | 7fff4 |
120 | 19 | 7fff3 |
Таблица А.2 - Кодовая книга 1 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 11 | 7f8 |
1 | 9 | 1f1 |
2 | 11 | 7fd |
3 | 10 | 3f5 |
4 | 7 | 68 |
5 | 10 | 3f0 |
6 | 11 | 7f7 |
7 | 9 | 1ec |
8 | 11 | 7f5 |
9 | 10 | 3f1 |
10 | 7 | 72 |
11 | 10 | 3f4 |
12 | 7 | 74 |
13 | 5 | 11 |
14 | 7 | 76 |
15 | 9 | 1eb |
16 | 7 | 6c |
17 | 10 | 3f6 |
18 | 11 | 7fc |
19 | 9 | 1e1 |
20 | 11 | 7f1 |
21 | 9 | 1f0 |
22 | 7 | 61 |
23 | 9 | 1f6 |
24 | 11 | 7f2 |
25 | 9 | 1ea |
26 | 11 | 7fb |
27 | 9 | 1f2 |
28 | 7 | 69 |
29 | 9 | 1ed |
30 | 7 | 77 |
31 | 5 | 17 |
32 | 7 | 6f |
33 | 9 | 1e6 |
34 | 7 | 64 |
35 | 9 | 1e5 |
36 | 7 | 67 |
37 | 5 | 15 |
38 | 7 | 62 |
39 | 5 | 12 |
40 | 1 | 0 |
41 | 5 | 14 |
42 | 7 | 65 |
43 | 5 | 16 |
44 | 7 | 6d |
45 | 9 | 1e9 |
46 | 7 | 63 |
47 | 9 | 1e4 |
48 | 7 | 6b |
49 | 5 | 13 |
50 | 7 | 71 |
51 | 9 | 1еЗ |
52 | 7 | 70 |
53 | 9 | 1f3 |
54 | 11 | 7fe |
55 | 9 | 1e7 |
56 | 11 | 7f3 |
57 | 9 | 1ef |
58 | 7 | 60 |
59 | 9 | 1ee |
60 | 11 | 7f0 |
61 | 9 | 1e2 |
62 | 11 | 7fa |
63 | 10 | 3f3 |
64 | 7 | 6a |
65 | 9 | 1e8 |
66 | 7 | 75 |
67 | 5 | 10 |
68 | 7 | 73 |
69 | 9 | 1f4 |
70 | 7 | 6e |
71 | 10 | 3f7 |
72 | 11 | 7f6 |
73 | 9 | 1e0 |
74 | 11 | 7f9 |
75 | 10 | 3f2 |
76 | 7 | 66 |
77 | 9 | 1f5 |
78 | 11 | 7ff |
79 | 9 | 1f7 |
80 | 11 | 7f4 |
Таблица А.3 - Кодовая книга 2 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 9 | 1f3 |
1 | 7 | 6f |
2 | 9 | 1fd |
3 | 8 | eb |
4 | 6 | 23 |
5 | 8 | ea |
6 | 9 | 1f7 |
7 | 8 | e8 |
8 | 9 | 1fa |
9 | 8 | f2 |
10 | 6 | 2d |
11 | 7 | 70 |
12 | 6 | 20 |
13 | 5 | 6 |
14 | 6 | 2b |
15 | 7 | 6e |
16 | 6 | 28 |
17 | 8 | e9 |
18 | 9 | 1f9 |
19 | 7 | 66 |
20 | 8 | f8 |
21 | 8 | e7 |
22 | 6 | 1b |
23 | 8 | f1 |
24 | 9 | 1f4 |
25 | 7 | 6b |
26 | 9 | 1f5 |
27 | 8 | ec |
28 | 6 | 2a |
29 | 7 | 6c |
30 | 6 | 2c |
31 | 5 | a |
32 | 6 | 27 |
33 | 7 | 67 |
34 | 6 | 1a |
35 | 8 | f5 |
36 | 6 | 24 |
37 | 5 | 8 |
38 | 6 | 1f |
39 | 5 | 9 |
40 | 3 | 0 |
41 | 5 | 7 |
42 | 6 | 1d |
43 | 5 | b |
44 | 6 | 30 |
45 | 8 | ef |
46 | 6 | 1c |
47 | 7 | 64 |
48 | 6 | 1e |
49 | 5 | с |
50 | 6 | 29 |
51 | 8 | f3 |
52 | 6 | 2f |
53 | 8 | f0 |
54 | 9 | 1fc |
55 | 7 | 71 |
56 | 9 | 1f2 |
57 | 8 | f4 |
58 | 6 | 21 |
59 | 8 | e6 |
60 | 8 | f7 |
61 | 7 | 68 |
62 | 9 | 1f8 |
63 | 8 | ее |
64 | 6 | 22 |
65 | 7 | 65 |
66 | 6 | 31 |
67 | 4 | 2 |
68 | 6 | 26 |
69 | 8 | ed |
70 | 6 | 25 |
71 | 7 | 6a |
72 | 9 | 1fb |
73 | 7 | 72 |
74 | 9 | 1fe |
75 | 7 | 69 |
76 | 6 | 2e |
77 | 8 | f6 |
78 | 9 | 1ff |
79 | 7 | 6d |
80 | 9 | 1f6 |
Таблица А.4 - Кодовая книга 3 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 1 | 0 |
1 | 4 | 9 |
2 | 8 | ef |
3 | 4 | b |
4 | 5 | 19 |
5 | 8 | f0 |
6 | 9 | 1eb |
7 | 9 | 1e6 |
8 | 10 | 3f2 |
9 | 4 | a |
10 | 6 | 35 |
11 | 9 | 1ef |
12 | 6 | 34 |
13 | 6 | 37 |
14 | 9 | 1e9 |
15 | 9 | 1ed |
16 | 9 | 1e7 |
17 | 10 | 3f3 |
18 | 9 | 1ee |
19 | 10 | 3ed |
20 | 13 | 3ffa |
21 | 9 | 1ec |
22 | 9 | 1f2 |
23 | 11 | 7f9 |
24 | 11 | 7f8 |
25 | 10 | 3f8 |
26 | 12 | ff8 |
27 | 4 | 8 |
28 | 6 | 38 |
29 | 10 | 3f6 |
30 | 6 | 36 |
31 | 7 | 75 |
32 | 10 | 3f1 |
33 | 10 | 3eb |
34 | 10 | 3ec |
35 | 12 | ff4 |
36 | 5 | 18 |
37 | 7 | 76 |
38 | 11 | 7f4 |
39 | 6 | 39 |
40 | 7 | 74 |
41 | 10 | 3ef |
42 | 9 | 1f3 |
43 | 9 | 1f4 |
44 | 11 | 7f6 |
45 | 9 | 1e8 |
46 | 10 | 3ea |
47 | 13 | 1ff c |
48 | 8 | f2 |
49 | 9 | 1f1 |
50 | 12 | ffb |
51 | 10 | 3f5 |
52 | 11 | 7f3 |
53 | 12 | ffc |
54 | 8 | ее |
55 | 10 | 3f7 |
56 | 15 | 7ffe |
57 | 9 | 1f0 |
58 | 11 | 7f5 |
59 | 15 | 7ffd |
60 | 13 | 1ffb |
61 | 14 | 3ffa |
62 | 16 | ffff |
63 | 8 | f1 |
64 | 10 | 3f0 |
65 | 14 | 3ffc |
66 | 9 | 1ea |
67 | 10 | 3ee |
68 | 14 | 3ffb |
69 | 12 | ff6 |
70 | 12 | ffa |
71 | 15 | 7ffc |
72 | 11 | 7f2 |
73 | 12 | ff5 |
74 | 16 | fffe |
75 | 10 | 3f4 |
76 | 11 | 7f7 |
77 | 15 | 7ffb |
78 | 12 | ff7 |
79 | 12 | ff9 |
80 | 15 | 7ffa |
Таблица А.5 - Кодовая книга 4 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 4 | 7 |
1 | 5 | 16 |
2 | 8 | f6 |
3 | 5 | 18 |
4 | 4 | 8 |
5 | 8 | ef |
6 | 9 | 1ef |
7 | 8 | f3 |
8 | 11 | 7f8 |
9 | 5 | 19 |
10 | 5 | 17 |
11 | 8 | ed |
12 | 5 | 15 |
13 | 4 | 1 |
14 | 8 | e2 |
15 | 8 | f0 |
16 | 7 | 70 |
17 | 10 | 3f0 |
18 | 9 | 1ee |
19 | 8 | f1 |
20 | 11 | 7fa |
21 | 8 | ее |
22 | 8 | e4 |
23 | 10 | 3f2 |
24 | 11 | 7f6 |
25 | 10 | 3ef |
26 | 11 | 7fd |
27 | 4 | 5 |
28 | 5 | 14 |
29 | 8 | f2 |
30 | 4 | 9 |
31 | 4 | 4 |
32 | 8 | e5 |
33 | 8 | f4 |
34 | 8 | e8 |
35 | 10 | 3f4 |
36 | 4 | 6 |
37 | 4 | 2 |
38 | 8 | e7 |
39 | 4 | 3 |
40 | 4 | 0 |
41 | 7 | 6b |
42 | 8 | e3 |
43 | 7 | 69 |
44 | 9 | 1f3 |
45 | 8 | eb |
46 | 8 | e6 |
47 | 10 | 3f6 |
48 | 7 | 6e |
49 | 7 | 6a |
50 | 9 | 1f4 |
51 | 10 | 3ec |
52 | 9 | 1f0 |
53 | 10 | 3f9 |
54 | 8 | f5 |
55 | 8 | ec |
56 | 11 | 7fb |
57 | 8 | ea |
58 | 7 | 6f |
59 | 10 | 3f7 |
60 | 11 | 7f9 |
61 | 10 | 3f3 |
62 | 12 | fff |
63 | 8 | e9 |
64 | 7 | 6d |
65 | 10 | 3f8 |
66 | 7 | 6c |
67 | 7 | 68 |
68 | 9 | 1f5 |
69 | 10 | 3ee |
70 | 9 | 1f2 |
71 | 11 | 7f4 |
72 | 11 | 7f7 |
73 | 10 | 3f1 |
74 | 12 | ffe |
75 | 10 | 3ed |
76 | 9 | 1f1 |
77 | 11 | 7f5 |
78 | 11 | 7fe |
79 | 10 | 3f5 |
80 | 11 | 7fc |
Таблица А.6 - Кодовая книга 5 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 13 | 1fff |
1 | 12 | ff7 |
2 | 11 | 7f4 |
3 | 11 | 7е8 |
4 | 10 | 3f1 |
5 | 11 | 7ее |
6 | 11 | 7f9 |
7 | 12 | ff8 |
8 | 13 | 1ffd |
9 | 12 | ffd |
10 | 11 | 7f1 |
11 | 10 | 3e8 |
12 | 9 | 1e8 |
13 | 8 | f0 |
14 | 9 | 1ec |
15 | 10 | 3ee |
16 | 11 | 7f2 |
17 | 12 | ffa |
18 | 12 | ff4 |
19 | 10 | 3ef |
20 | 9 | 1f2 |
21 | 8 | e8 |
22 | 7 | 70 |
23 | 8 | ec |
24 | 9 | 1f0 |
25 | 10 | 3ea |
26 | 11 | 7f3 |
27 | 11 | 7eb |
28 | 9 | 1eb |
29 | 8 | ea |
30 | 5 | 1a |
31 | 4 | 8 |
32 | 5 | 19 |
33 | 8 | ее |
34 | 9 | 1ef |
35 | 11 | 7ed |
36 | 10 | 3f0 |
37 | 8 | f2 |
38 | 7 | 73 |
39 | 4 | b |
40 | 1 | 0 |
41 | 4 | a |
42 | 7 | 71 |
43 | 8 | f3 |
44 | 11 | 7e9 |
45 | 11 | 7ef |
46 | 9 | 1ee |
47 | 8 | ef |
48 | 5 | 18 |
49 | 4 | 9 |
50 | 5 | 1b |
51 | 8 | eb |
52 | 9 | 1e9 |
53 | 11 | 7ec |
54 | 11 | 7f6 |
55 | 10 | 3eb |
56 | 9 | 1f3 |
57 | 8 | ed |
58 | 7 | 72 |
59 | 8 | e9 |
60 | 9 | 1f1 |
61 | 10 | 3ed |
62 | 11 | 7f7 |
63 | 12 | ff6 |
64 | 11 | 7f0 |
65 | 10 | 3e9 |
66 | 9 | 1ed |
67 | 8 | f1 |
68 | 9 | 1ea |
69 | 10 | 3ec |
70 | 11 | 7f8 |
71 | 12 | ff9 |
72 | 13 | 1ff c |
73 | 12 | ffc |
74 | 12 | ff5 |
75 | 11 | 7ea |
76 | 10 | 3f3 |
77 | 10 | 3f2 |
78 | 11 | 7f5 |
79 | 12 | ffb |
80 | 13 | 1ffe |
Таблица А.7 - Кодовая книга 6 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 11 | 7fe |
1 | 10 | 3fd |
2 | 9 | 1f1 |
3 | 9 | 1eb |
4 | 9 | 1f4 |
5 | 9 | 1ea |
6 | 9 | 1f0 |
7 | 10 | 3fc |
8 | 11 | 7fd |
9 | 10 | 3f6 |
10 | 9 | 1e5 |
11 | 8 | ea |
12 | 7 | 6c |
13 | 7 | 71 |
14 | 7 | 68 |
15 | 8 | f0 |
16 | 9 | 1e6 |
17 | 10 | 3f7 |
18 | 9 | 1f3 |
19 | 8 | ef |
20 | 6 | 32 |
21 | 6 | 27 |
22 | 6 | 28 |
23 | 6 | 26 |
24 | 6 | 31 |
25 | 8 | eb |
26 | 9 | 1f7 |
27 | 9 | 1e8 |
28 | 7 | 6f |
29 | 6 | 2e |
30 | 4 | 8 |
31 | 4 | 4 |
32 | 4 | 6 |
33 | 6 | 29 |
34 | 7 | 6b |
35 | 9 | 1ee |
36 | 9 | 1ef |
37 | 7 | 72 |
38 | 6 | 2d |
39 | 4 | 2 |
40 | 4 | 0 |
41 | 4 | 3 |
42 | 6 | 2f |
43 | 7 | 73 |
44 | 9 | 1fa |
45 | 9 | 1e7 |
46 | 7 | 6e |
47 | 6 | 2b |
48 | 4 | 7 |
49 | 4 | 1 |
50 | 4 | 5 |
51 | 6 | 2c |
52 | 7 | 6d |
53 | 9 | 1ec |
54 | 9 | 1f9 |
55 | 8 | ее |
56 | 6 | 30 |
57 | 6 | 24 |
58 | 6 | 2a |
59 | 6 | 25 |
60 | 6 | 33 |
61 | 8 | ec |
62 | 9 | 1f2 |
63 | 10 | 3f8 |
64 | 9 | 1e4 |
65 | 8 | ed |
66 | 7 | 6a |
67 | 7 | 70 |
68 | 7 | 69 |
69 | 7 | 74 |
70 | 8 | f1 |
71 | 10 | 3fa |
72 | 11 | 7ff |
73 | 10 | 3f9 |
74 | 9 | 1f6 |
75 | 9 | 1ed |
76 | 9 | 1f8 |
77 | 9 | 1e9 |
78 | 9 | 1f5 |
79 | 10 | 3fb |
80 | 11 | 7fc |
Таблица А.8 - Кодовая книга 7 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 1 | 0 |
1 | 3 | 5 |
2 | 6 | 37 |
3 | 7 | 74 |
4 | 8 | f2 |
5 | 9 | 1eb |
6 | 10 | 3ed |
7 | 11 | 7f7 |
8 | 3 | 4 |
9 | 4 | с |
10 | 6 | 35 |
11 | 7 | 71 |
12 | 8 | ее |
13 | 8 | ее |
14 | 9 | 1ее |
15 | 9 | 1f5 |
16 | 6 | 36 |
17 | 6 | 34 |
18 | 7 | 72 |
19 | 8 | еа |
20 | 8 | f1 |
21 | 9 | 1е9 |
22 | 9 | 1f3 |
23 | 10 | 3f5 |
24 | 7 | 73 |
25 | 7 | 70 |
26 | 8 | eb |
27 | 8 | f0 |
28 | 9 | 1f1 |
29 | 9 | 1f0 |
30 | 10 | 3ec |
31 | 10 | 3fa |
32 | 8 | f3 |
33 | 8 | ed |
34 | 9 | 1e8 |
35 | 9 | 1ef |
36 | 10 | 3ef |
37 | 10 | 3f1 |
38 | 10 | 3f9 |
39 | 11 | 7fb |
40 | 9 | 1ed |
41 | 8 | ef |
42 | 9 | 1ea |
43 | 9 | 1f2 |
44 | 10 | 3f3 |
45 | 10 | 3f8 |
46 | 11 | 7f9 |
47 | 11 | 7fc |
48 | 10 | 3ee |
49 | 9 | 1ec |
50 | 9 | 1f4 |
51 | 10 | 3f4 |
52 | 10 | 3f7 |
53 | 11 | 7f8 |
54 | 12 | ffd |
55 | 12 | ffe |
56 | 11 | 7f6 |
57 | 10 | 3f0 |
58 | 10 | 3f2 |
59 | 10 | 3f6 |
60 | 11 | 7fa |
61 | 11 | 7fd |
62 | 12 | ffc |
63 | 12 | fff |
Таблица A.9 - Кодовая книга 8 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 5 | е |
1 | 4 | 5 |
2 | 5 | 10 |
3 | 6 | 30 |
4 | 7 | 6f |
5 | 8 | f1 |
6 | 9 | 1fa |
7 | 10 | 3fe |
8 | 4 | 3 |
9 | 3 | 0 |
10 | 4 | 4 |
11 | 5 | 12 |
12 | 6 | 2c |
13 | 7 | 6a |
14 | 7 | 75 |
15 | 8 | f8 |
16 | 5 | f |
17 | 4 | 2 |
18 | 4 | 6 |
19 | 5 | 14 |
20 | 6 | 2e |
21 | 7 | 69 |
22 | 7 | 72 |
23 | 8 | f5 |
24 | 6 | 2f |
25 | 5 | 11 |
26 | 5 | 13 |
27 | 6 | 2a |
28 | 6 | 32 |
29 | 7 | 6c |
30 | 8 | ec |
31 | 8 | fa |
32 | 7 | 71 |
33 | 6 | 2b |
34 | 6 | 2d |
35 | 6 | 31 |
36 | 7 | 6d |
37 | 7 | 70 |
38 | 8 | f2 |
39 | 9 | 1f9 |
40 | 8 | ef |
41 | 7 | 68 |
42 | 6 | 33 |
43 | 7 | 6b |
44 | 7 | 6e |
45 | 8 | ее |
46 | 8 | f9 |
47 | 10 | 3fc |
48 | 9 | 1f8 |
49 | 7 | 74 |
50 | 7 | 73 |
51 | 8 | ed |
52 | 8 | f0 |
53 | 8 | f6 |
54 | 9 | 1f6 |
55 | 9 | 1fd |
56 | 10 | 3fd |
57 | 8 | f3 |
58 | 8 | f4 |
59 | 8 | f7 |
60 | 9 | 1f7 |
61 | 9 | 1fb |
62 | 9 | 1fc |
63 | 10 | 3ff |
Таблица A.10 - Кодовая книга 9 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 1 | 0 |
1 | 3 | 5 |
2 | 6 | 37 |
3 | 8 | е7 |
4 | 9 | 1de |
5 | 10 | Зсе |
6 | 10 | 3d9 |
7 | 11 | 7с8 |
8 | 11 | 7cd |
9 | 12 | fc8 |
10 | 12 | fdd |
11 | 13 | 1fe4 |
12 | 13 | 1fec |
13 | 3 | 4 |
14 | 4 | с |
15 | 6 | 35 |
16 | 7 | 72 |
17 | 8 | ea |
18 | 8 | ed |
19 | 9 | 1e2 |
20 | 10 | 3d1 |
21 | 10 | 3d3 |
22 | 10 | 3e0 |
23 | 11 | 7d8 |
24 | 12 | fcf |
25 | 12 | fd5 |
26 | 6 | 36 |
27 | 6 | 34 |
28 | 7 | 71 |
29 | 8 | e8 |
30 | 8 | ec |
31 | 9 | 1e1 |
32 | 10 | 3cf |
33 | 10 | 3dd |
34 | 10 | 3db |
35 | 11 | 7d0 |
36 | 12 | fc7 |
37 | 12 | fd4 |
38 | 12 | fe4 |
39 | 8 | e6 |
40 | 7 | 70 |
41 | 8 | e9 |
42 | 9 | 1dd |
43 | 9 | 1e3 |
44 | 10 | 3d2 |
45 | 10 | 3dc |
46 | 11 | 7cc |
47 | 11 | 7ca |
48 | 11 | 7de |
49 | 12 | fd8 |
50 | 12 | fea |
51 | 13 | 1fdb |
52 | 9 | 1df |
53 | 8 | eb |
54 | 9 | 1dc |
55 | 9 | 1e6 |
56 | 10 | 3d5 |
57 | 10 | 3de |
58 | 11 | 7cb |
59 | 11 | 7dd |
60 | 11 | 7dc |
61 | 12 | fcd |
62 | 12 | fe2 |
63 | 12 | fe7 |
64 | 13 | 1fe1 |
65 | 10 | 3d0 |
66 | 9 | 1e0 |
67 | 9 | 1e4 |
68 | 10 | 3d6 |
69 | 11 | 7c5 |
70 | 11 | 7d1 |
71 | 11 | 7db |
72 | 12 | fd2 |
73 | 11 | 7e0 |
74 | 12 | fd9 |
75 | 12 | feb |
76 | 13 | 1fe3 |
77 | 13 | 1fe9 |
78 | 11 | 7c4 |
79 | 9 | 1e5 |
80 | 10 | 3d7 |
81 | 11 | 7c6 |
82 | 11 | 7cf |
83 | 11 | 7da |
84 | 12 | fcb |
86 | 12 | fe3 |
87 | 12 | fe9 |
88 | 13 | 1fe6 |
89 | 13 | 1ff3 |
90 | 13 | 1ff7 |
91 | 11 | 7d3 |
92 | 10 | 3d8 |
93 | 10 | 3e1 |
94 | 11 | 7d4 |
95 | 11 | 7d9 |
96 | 12 | fd3 |
97 | 12 | fde |
98 | 13 | 1fdd |
99 | 13 | 1fd9 |
100 | 13 | 1fe2 |
101 | 13 | 1fea |
102 | 13 | 1ff1 |
103 | 13 | 1ff6 |
104 | 11 | 7d2 |
105 | 10 | 3d4 |
106 | 10 | 3da |
107 | 11 | 7c7 |
108 | 11 | 7d7 |
109 | 11 | 7e2 |
110 | 12 | fce |
111 | 12 | fdb |
112 | 13 | 1fd8 |
113 | 13 | 1fee |
114 | 14 | 3ff0 |
115 | 13 | 1ff4 |
116 | 14 | 3ff2 |
117 | 11 | 7e1 |
118 | 10 | 3df |
119 | 11 | 7c9 |
120 | 11 | 7d6 |
121 | 12 | fca |
122 | 12 | fd0 |
123 | 12 | fe5 |
124 | 12 | fe6 |
125 | 13 | 1feb |
126 | 13 | 1fef |
127 | 14 | 3ff3 |
128 | 14 | 3ff4 |
129 | 14 | 3ff5 |
130 | 12 | fe0 |
131 | 11 | 7ce |
132 | 11 | 7d5 |
133 | 12 | fc6 |
134 | 12 | fd1 |
135 | 12 | fe1 |
136 | 13 | 1fe0 |
137 | 13 | 1fe8 |
138 | 13 | 1ff0 |
139 | 14 | 3ff1 |
140 | 14 | 3ff8 |
141 | 14 | 3ff6 |
142 | 15 | 7ffc |
143 | 12 | fe8 |
144 | 11 | 7df |
145 | 12 | fc9 |
146 | 12 | fd7 |
147 | 12 | fdc |
148 | 13 | 1fdc |
149 | 13 | 1fdf |
150 | 13 | 1fed |
151 | 13 | 1ff5 |
152 | 14 | 3ff9 |
153 | 14 | 3ffb |
154 | 15 | 7ffd |
155 | 15 | 7ffe |
156 | 13 | 1fe7 |
157 | 12 | fee |
158 | 12 | fd6 |
159 | 12 | fdf |
160 | 13 | 1fde |
161 | 13 | 1fda |
162 | 13 | 1fe5 |
163 | 13 | 1ff2 |
164 | 14 | 3ffa |
165 | 14 | 3ff7 |
166 | 14 | 3ffc |
167 | 14 | 3ffd |
168 | 15 | 7fff |
Таблица A.11 - Кодовая книга 10 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 6 | 22 |
1 | 5 | 8 |
2 | 6 | 1d |
3 | 6 | 26 |
4 | 7 | 5f |
5 | 8 | d3 |
6 | 9 | 1cf |
7 | 10 | 3d0 |
8 | 10 | 3d7 |
9 | 10 | 3ed |
10 | 11 | 7f0 |
11 | 11 | 7f6 |
12 | 12 | ffd |
13 | 5 | 7 |
14 | 4 | 0 |
15 | 4 | 1 |
16 | 5 | 9 |
17 | 6 | 20 |
18 | 7 | 54 |
19 | 7 | 60 |
20 | 8 | d5 |
21 | 8 | dc |
22 | 9 | 1d4 |
23 | 10 | 3cd |
24 | 10 | 3de |
25 | 11 | 7e7 |
26 | 6 | 1c |
27 | 4 | 2 |
28 | 5 | 6 |
29 | 5 | с |
30 | 6 | 1e |
31 | 6 | 28 |
32 | 7 | 5b |
33 | 8 | cd |
34 | 8 | d9 |
35 | 9 | 1ce |
36 | 9 | 1dc |
37 | 10 | 3d9 |
38 | 10 | 3f1 |
39 | 6 | 25 |
40 | 5 | b |
41 | 5 | a |
42 | 5 | d |
43 | 6 | 24 |
44 | 7 | 57 |
45 | 7 | 61 |
46 | 8 | cc |
47 | 8 | dd |
48 | 9 | 1cc |
49 | 9 | 1de |
50 | 10 | 3d3 |
51 | 10 | 3e7 |
52 | 7 | 5d |
53 | 6 | 21 |
54 | 6 | 1f |
55 | 6 | 23 |
56 | 6 | 27 |
57 | 7 | 59 |
58 | 7 | 64 |
59 | 8 | d8 |
60 | 8 | df |
61 | 9 | 1d2 |
62 | 9 | 1e2 |
63 | 10 | 3dd |
64 | 10 | 3ee |
65 | 8 | d1 |
66 | 7 | 55 |
67 | 6 | 29 |
68 | 7 | 56 |
69 | 7 | 58 |
70 | 7 | 62 |
71 | 8 | ce |
72 | 8 | e0 |
73 | 8 | e2 |
74 | 9 | 1da |
75 | 10 | 3d4 |
76 | 10 | 3e3 |
77 | 11 | 7eb |
78 | 9 | 1c9 |
79 | 7 | 5e |
80 | 7 | 5a |
81 | 7 | 5с |
82 | 7 | 63 |
83 | 8 | са |
84 | 8 | da |
85 | 9 | 1с7 |
86 | 9 | 1са |
87 | 9 | 1е0 |
88 | 10 | 3db |
89 | 10 | Зе8 |
90 | 11 | 7ес |
91 | 9 | 1е3 |
92 | 8 | d2 |
93 | 8 | cb |
94 | 8 | d0 |
95 | 8 | d7 |
96 | 8 | db |
97 | 9 | 1c6 |
98 | 9 | 1d5 |
99 | 9 | 1d8 |
100 | 10 | 3ca |
101 | 10 | 3da |
102 | 11 | 7ea |
103 | 11 | 7f1 |
104 | 9 | 1e1 |
105 | 8 | d4 |
106 | 8 | cf |
107 | 8 | d6 |
108 | 8 | de |
109 | 8 | e1 |
110 | 9 | 1d0 |
111 | 9 | 1d6 |
112 | 10 | 3d1 |
113 | 10 | 3d5 |
114 | 10 | 3f2 |
115 | 11 | 7ee |
116 | 11 | 7fb |
117 | 10 | 3e9 |
118 | 9 | 1cd |
119 | 9 | 1c8 |
120 | 9 | 1cb |
121 | 9 | 1d1 |
122 | 9 | 1d7 |
123 | 9 | 1df |
124 | 10 | 3cf |
125 | 10 | 3e0 |
126 | 10 | 3ef |
127 | 11 | 7e6 |
128 | 11 | 7f8 |
129 | 12 | ffa |
130 | 10 | 3eb |
131 | 9 | 1dd |
132 | 9 | 1d3 |
133 | 9 | 1d9 |
134 | 9 | 1db |
135 | 10 | 3d2 |
136 | 10 | 3cc |
137 | 10 | 3dc |
138 | 10 | 3ea |
139 | 11 | 7ed |
140 | 11 | 7f3 |
141 | 11 | 7f9 |
142 | 12 | ff9 |
143 | 11 | 7f2 |
144 | 10 | 3ce |
145 | 9 | 1e4 |
146 | 10 | 3cb |
147 | 10 | 3d8 |
148 | 10 | 3d6 |
149 | 10 | 3e2 |
150 | 10 | 3e5 |
151 | 11 | 7e8 |
152 | 11 | 7f4 |
153 | 11 | 7f5 |
154 | 11 | 7f7 |
155 | 12 | ffb |
156 | 11 | 7fa |
157 | 10 | 3ec |
158 | 10 | 3df |
159 | 10 | 3e1 |
160 | 10 | 3e4 |
161 | 10 | 3e6 |
162 | 10 | 3f0 |
163 | 11 | 7e9 |
164 | 11 | 7ef |
165 | 12 | ff8 |
166 | 12 | ffe |
167 | 12 | ffc |
168 | 12 | fff |
Таблица A.12 - Кодовая книга 11 для спектральных коэффициентов
Индекс | Длина | Кодовая комбинация (шестнадцатеричная) |
0 | 4 | 0 |
1 | 5 | 6 |
2 | 6 | 19 |
3 | 7 | 3d |
4 | 8 | 9с |
5 | 8 | с6 |
6 | 9 | 1а7 |
7 | 10 | 390 |
8 | 10 | Зс2 |
9 | 10 | 3df |
10 | 11 | 7е6 |
11 | 11 | 7f3 |
12 | 12 | ffb |
13 | 11 | 7ес |
14 | 12 | ffa |
15 | 12 | ffe |
16 | 10 | 38е |
17 | 5 | 5 |
18 | 4 | 1 |
19 | 5 | 8 |
20 | 6 | 14 |
21 | 7 | 37 |
22 | 7 | 42 |
23 | 8 | 92 |
24 | 8 | af |
25 | 9 | 191 |
26 | 9 | 1а5 |
27 | 9 | 1b5 |
28 | 10 | 39е |
29 | 10 | 3с0 |
30 | 10 | За2 |
31 | 10 | 3cd |
32 | 11 | 7d6 |
33 | 8 | ае |
34 | 6 | 17 |
35 | 5 | 7 |
36 | 5 | 9 |
37 | 6 | 18 |
38 | 7 | 39 |
39 | 7 | 40 |
40 | 8 | 8е |
41 | 8 | а3 |
42 | 8 | b8 |
43 | 9 | 199 |
44 | 9 | 1ас |
45 | 9 | 1с |
46 | 10 | 3b1 |
47 | 10 | 396 |
48 | 10 | 3bе |
49 | 10 | 3са |
50 | 8 | 9d |
51 | 7 | 3с |
52 | 6 | 15 |
53 | 6 | 16 |
54 | 6 | 1а |
55 | 7 | 3b |
56 | 7 | 44 |
57 | 8 | 91 |
58 | 8 | а5 |
59 | 8 | be |
60 | 9 | 196 |
61 | 9 | 1ае |
62 | 9 | 1b9 |
63 | 10 | 3а1 |
64 | 10 | 391 |
65 | 10 | 3а5 |
66 | 10 | 3d5 |
67 | 8 | 94 |
68 | 8 | 9а |
69 | 7 | 36 |
70 | 7 | 38 |
71 | 7 | За |
72 | 7 | 41 |
73 | 8 | 8с |
74 | 8 | 9b |
75 | 8 | b0 |
76 | 8 | с3 |
77 | 9 | 19е |
78 | 9 | 1ab |
79 | 9 | 1bс |
80 | 10 | 39f |
81 | 10 | 38f |
82 | 10 | 3а9 |
83 | 10 | 3cf |
84 | 8 | 93 |
85 | 8 | bf |
86 | 7 | 3e |
87 | 7 | 3f |
88 | 7 | 43 |
89 | 7 | 45 |
90 | 8 | 9e |
91 | 8 | a7 |
92 | 8 | b9 |
93 | 9 | 194 |
94 | 9 | 1a2 |
95 | 9 | 1ba |
96 | 9 | 1c3 |
97 | 10 | 3a6 |
98 | 10 | 3a7 |
99 | 10 | 3bb |
100 | 10 | 3d4 |
101 | 8 | 9f |
102 | 9 | 1a0 |
103 | 8 | 8f |
104 | 8 | 8d |
105 | 8 | 90 |
106 | 8 | 98 |
107 | 8 | a6 |
108 | 8 | b6 |
109 | 8 | c4 |
110 | 9 | 19f |
111 | 9 | 1af |
112 | 9 | 1bf |
113 | 10 | 399 |
114 | 10 | 3bf |
115 | 10 | 3b4 |
116 | 10 | 3c9 |
117 | 10 | 3e7 |
118 | 8 | a8 |
119 | 9 | 1b6 |
120 | 8 | ab |
121 | 8 | a4 |
122 | 8 | aa |
123 | 8 | b2 |
124 | 8 | c2 |
125 | 8 | c5 |
126 | 9 | 198 |
127 | 9 | 1a4 |
128 | 9 | 1b8 |
129 | 10 | 38c |
130 | 10 | 3a4 |
131 | 10 | 3c4 |
132 | 10 | 3c6 |
133 | 10 | 3dd |
134 | 10 | 3e8 |
135 | 8 | ad |
136 | 10 | 3af |
137 | 9 | 192 |
138 | 8 | bd |
139 | 8 | bc |
140 | 9 | 18e |
141 | 9 | 197 |
142 | 9 | 19a |
143 | 9 | 1a3 |
144 | 9 | 14 |
145 | 10 | 38d |
146 | 10 | 398 |
147 | 10 | 3b7 |
148 | 10 | 3d3 |
149 | 10 | 3d1 |
150 | 10 | 3db |
151 | 11 | 7dd |
152 | 8 | b4 |
153 | 10 | 3de |
154 | 9 | 1a9 |
155 | 9 | 19b |
156 | 9 | 19c |
157 | 9 | 1a1 |
158 | 9 | 1aa |
159 | 9 | 1ad |
160 | 9 | 1b3 |
161 | 10 | 38b |
162 | 10 | 3b2 |
163 | 10 | 3b8 |
164 | 10 | 3ce |
165 | 10 | 3e1 |
166 | 10 | 3e0 |
167 | 11 | 7d2 |
168 | 11 | 7e5 |
169 | 8 | b7 |
170 | 11 | 7e3 |
171 | 9 | 1bb |
172 | 9 | 1a8 |
173 | 9 | 1a6 |
174 | 9 | 1b0 |
175 | 9 | 1b2 |
176 | 9 | 1b7 |
177 | 10 | 39b |
178 | 10 | 39a |
179 | 10 | 3ba |
180 | 10 | 3b5 |
181 | 10 | 3d6 |
182 | 11 | 7d7 |
183 | 10 | 3e4 |
184 | 11 | 7d8 |
185 | 11 | 7ea |
186 | 8 | ba |
187 | 11 | 7e8 |
188 | 10 | 3a0 |
189 | 9 | 1bd |
190 | 9 | 1b4 |
191 | 10 | 38a |
192 | 9 | 1c4 |
193 | 10 | 392 |
194 | 10 | 3aa |
195 | 10 | 3b0 |
196 | 10 | 3bc |
197 | 10 | 3d7 |
198 | 11 | 7d4 |
199 | 11 | 7dc |
200 | 11 | 7db |
201 | 11 | 7d5 |
202 | 11 | 7f0 |
203 | 8 | d |
204 | 11 | 7fb |
205 | 10 | 3c8 |
206 | 10 | 3a3 |
207 | 10 | 395 |
208 | 10 | 39d |
209 | 10 | 3ac |
210 | 10 | 3ae |
211 | 10 | 3c5 |
212 | 10 | 3d8 |
213 | 10 | 3e2 |
214 | 10 | 3e6 |
215 | 11 | 7e4 |
216 | 11 | 7e7 |
217 | 11 | 7e0 |
218 | 11 | 7e9 |
219 | 11 | 7f7 |
220 | 9 | 190 |
221 | 11 | 7f2 |
222 | 10 | 393 |
223 | 9 | 1be |
224 | 9 | 1c0 |
225 | 10 | 394 |
226 | 10 | 397 |
227 | 10 | 3ad |
228 | 10 | 3c3 |
229 | 10 | 3c1 |
230 | 10 | 3d2 |
231 | 11 | 7da |
232 | 11 | 7d9 |
233 | 11 | 7df |
234 | 11 | 7eb |
235 | 11 | 7f4 |
236 | 11 | 7fa |
237 | 9 | 195 |
238 | 11 | 7f8 |
239 | 10 | 3bd |
240 | 10 | 39c |
241 | 10 | 3ab |
242 | 10 | 3a8 |
243 | 10 | 3b3 |
244 | 10 | 3b9 |
245 | 10 | 3d0 |
246 | 10 | 3e3 |
247 | 10 | 3e5 |
248 | 11 | 7e2 |
249 | 11 | 7de |
250 | 11 | 7ed |
251 | 11 | 7f1 |
252 | 11 | 7f9 |
253 | 11 | 7fc |
254 | 9 | 193 |
255 | 12 | ffd |
256 | 10 | 3dc |
257 | 10 | 3b6 |
258 | 10 | 3c7 |
259 | 10 | 3cc |
260 | 10 | 3cb |
261 | 10 | 3d9 |
262 | 10 | 3da |
263 | 11 | 7d3 |
264 | 11 | 7e1 |
265 | 11 | 7ee |
266 | 11 | 7ef |
267 | 11 | 7f5 |
268 | 11 | 7f6 |
269 | 12 | ffc |
270 | 12 | fff |
271 | 9 | 19d |
272 | 9 | 1c2 |
273 | 8 | b5 |
274 | 8 | a1 |
275 | 8 | 96 |
276 | 8 | 97 |
277 | 8 | 95 |
278 | 8 | 99 |
279 | 8 | a0 |
280 | 8 | a2 |
281 | 8 | ac |
282 | 8 | a9 |
283 | 8 | b1 |
284 | 8 | b3 |
285 | 8 | bb |
286 | 8 | c0 |
287 | 9 | 18f |
288 | 5 | 4 |
Таблица A.13 - Окно Кайзера-Бесселя для SSR профиля EIGHT_SHORT_SEQUENCE
0 | 0.0000875914060105 |
1 | 0.0009321760265333 |
2 | 0.0032114611466596 |
3 | 0.0081009893216786 |
4 | 0.0171240286619181 |
5 | 0.0320720743527833 |
6 | 0.0548307856028528 |
7 | 0.0871361822564870 |
8 | 0.1302923415174603 |
9 | 0.1848955425508276 |
10 | 0.2506163195331889 |
11 | 0.3260874142923209 |
12 | 0.4089316830907141 |
13 | 0.4959414909423747 |
14 | 0.5833939894958904 |
15 | 0.6674601983218376 |
16 | 0.7446454751465113 |
17 | 0.8121892962974020 |
18 | 0.8683559394406505 |
19 | 0.9125649996381605 |
20 | 0.9453396205809574 |
21 | 0.9680864942677585 |
22 | 0.9827581789763112 |
23 | 0.9914756203467121 |
24 | 0.9961964092194694 |
25 | 0.9984956609571091 |
26 | 0.9994855586984285 |
27 | 0.9998533730714648 |
28 | 0.9999671864476404 |
29 | 0.9999948432453556 |
30 | 0.9999995655238333 |
31 | 0.9999999961638728 |
Таблица A.14 - Окно Кайзера-Бесселя для SSR профиля для остальных последовательностей окон
0 | 0.0005851230124487 |
1 | 0.0009642149851497 |
2 | 0.0013558207534965 |
3 | 0.0017771849644394 |
4 | 0.0022352533849672 |
5 | 0.0027342299070304 |
6 | 0.0032773001022195 |
7 | 0.0038671998069216 |
8 | 0.0045064443384152 |
9 | 0.0051974336885144 |
10 | 0.0059425050016407 |
11 | 0.0067439602523141 |
12 | 0.0076040812644888 |
13 | 0.0085251378135895 |
14 | 0.0095093917383048 |
15 | 0.0105590986429280 |
16 | 0.0116765080854300 |
17 | 0.0128638627792770 |
18 | 0.0141233971318631 |
19 | 0.0154573353235409 |
20 | 0.0168678890600951 |
21 | 0.0183572550877256 |
22 | 0.0199276125319803 |
23 | 0.0215811201042484 |
24 | 0.0233199132076965 |
25 | 0.0251461009666641 |
26 | 0.0270617631981826 |
27 | 0.0290689473405856 |
28 | 0.0311696653515848 |
29 | 0.0333658905863535 |
30 | 0.0356595546648444 |
31 | 0.0380525443366107 |
32 | 0.0405466983507029 |
33 | 0.0431438043376910 |
34 | 0.0458455957104702 |
35 | 0.0486537485902075 |
36 | 0.0515698787635492 |
37 | 0.0545955386770205 |
38 | 0.0577322144743916 |
39 | 0.0609813230826460 |
40 | 0.0643442093520723 |
41 | 0.0678221432558827 |
42 | 0.0714163171546603 |
43 | 0.0751278431308314 |
44 | 0.0789577503982528 |
45 | 0.0829069827918993 |
46 | 0.0869763963425241 |
47 | 0.0911667569410503 |
48 | 0.0954787380973307 |
49 | 0.0999129187977865 |
50 | 0.1044697814663005 |
51 | 0.1091497100326053 |
52 | 0.1139529881122542 |
53 | 0.1188797973021148 |
54 | 0.1239302155951605 |
55 | 0.1291042159181728 |
56 | 0.1344016647957880 |
57 | 0.1398223211441467 |
58 | 0.1453658351972151 |
59 | 0.1510317475686540 |
60 | 0.1568194884519144 |
61 | 0.1627283769610327 |
62 | 0.1687576206143887 |
63 | 0.1749063149634756 |
64 | 0.1811734433685097 |
65 | 0.1875578769224857 |
66 | 0.1940583745250518 |
67 | 0.2006735831073503 |
68 | 0.2074020380087318 |
69 | 0.2142421635060113 |
70 | 0.2211922734956977 |
71 | 0.2282505723293797 |
72 | 0.2354151558022098 |
73 | 0.2426840122941792 |
74 | 0.2500550240636293 |
75 | 0.2575259686921987 |
76 | 0.2650945206801527 |
77 | 0.2727582531907993 |
78 | 0.2805146399424422 |
79 | 0.2883610572460804 |
80 | 0.2962947861868143 |
81 | 0.3043130149466800 |
82 | 0.3124128412663888 |
83 | 0.3205912750432127 |
84 | 0.3288452410620226 |
85 | 0.3371715818562547 |
86 | 0.3455670606953511 |
87 | 0.3540283646950029 |
88 | 0.3625521080463003 |
89 | 0.3711348353596863 |
90 | 0.3797730251194006 |
91 | 0.3884630932439016 |
92 | 0.3972013967475546 |
93 | 0.4059842374986933 |
94 | 0.4148078660689724 |
95 | 0.4236684856687616 |
96 | 0.4325622561631607 |
97 | 0.4414852981630577 |
98 | 0.4504336971855032 |
99 | 0.4594035078775303 |
100 | 0.4683907582974173 |
101 | 0.4773914542472655 |
102 | 0.4864015836506502 |
103 | 0.4954171209689973 |
104 | 0.5044340316502417 |
105 | 0.5134482766032377 |
106 | 0.5224558166913167 |
107 | 0.5314526172383208 |
108 | 0.5404346525403849 |
109 | 0.5493979103766972 |
110 | 0.5583383965124314 |
111 | 0.5672521391870222 |
112 | 0.5761351935809411 |
113 | 0.5849836462541291 |
114 | 0.5937936195492526 |
115 | 0.6025612759529649 |
116 | 0.6112828224083939 |
117 | 0.6199545145721097 |
118 | 0.6285726610088878 |
119 | 0.6371336273176413 |
120 | 0.6456338401819751 |
121 | 0.6540697913388968 |
122 | 0.6624380414593221 |
123 | 0.6707352239341151 |
124 | 0.6789580485595255 |
125 | 0.6871033051160131 |
126 | 0.6951678668345944 |
127 | 0.7031486937449871 |
128 | 0.7110428359000029 |
129 | 0.7188474364707993 |
130 | 0.7265597347077880 |
131 | 0.7341770687621900 |
132 | 0.7416968783634273 |
133 | 0.7491167073477523 |
134 | 0.7564342060337386 |
135 | 0.7636471334404891 |
136 | 0.7707533593446514 |
137 | 0.7777508661725849 |
138 | 0.7846377507242818 |
139 | 0.7914122257259034 |
140 | 0.7980726212080798 |
141 | 0.8046173857073919 |
142 | 0.8110450872887550 |
143 | 0.8173544143867162 |
144 | 0.8235441764639875 |
145 | 0.8296133044858474 |
146 | 0.8355608512093652 |
147 | 0.8413859912867303 |
148 | 0.8470880211822968 |
149 | 0.8526663589032990 |
150 | 0.8581205435445334 |
151 | 0.8634502346476508 |
152 | 0.8686552113760616 |
153 | 0.8737353715068081 |
154 | 0.8786907302411250 |
155 | 0.8835214188357692 |
156 | 0.8882276830575707 |
157 | 0.8928098814640207 |
158 | 0.8972684835130879 |
159 | 0.9016040675058185 |
160 | 0.9058173183656508 |
161 | 0.9099090252587376 |
162 | 0.9138800790599416 |
163 | 0.9177314696695282 |
164 | 0.9214642831859411 |
165 | 0.9250796989403991 |
166 | 0.9285789863994010 |
167 | 0.9319635019415643 |
168 | 0.9352346855155568 |
169 | 0.9383940571861993 |
170 | 0.9414432135761304 |
171 | 0.9443838242107182 |
172 | 0.9472176277741918 |
173 | 0.9499464282852282 |
174 | 0.9525720912004834 |
175 | 0.9550965394547873 |
176 | 0.9575217494469370 |
177 | 0.9598497469802043 |
178 | 0.9620826031668507 |
179 | 0.9642224303060783 |
180 | 0.9662713777449607 |
181 | 0.9682316277319895 |
182 | 0.9701053912729269 |
183 | 0.9718949039986892 |
184 | 0.9736024220549734 |
185 | 0.9752302180233160 |
186 | 0.9767805768831932 |
187 | 0.9782557920246753 |
188 | 0.9796581613210076 |
189 | 0.9809899832703159 |
190 | 0.9822535532154261 |
191 | 0.9834511596505429 |
192 | 0.9845850806232530 |
193 | 0.9856575802399989 |
194 | 0.9866709052828243 |
195 | 0.9876272819448033 |
196 | 0.9885289126911557 |
197 | 0.9893779732525968 |
198 | 0.9901766097569984 |
199 | 0.9909269360049311 |
200 | 0.9916310308941294 |
201 | 0.9922909359973702 |
202 | 0.9929086532976777 |
203 | 0.9934861430841844 |
204 | 0.9940253220113651 |
205 | 0.9945280613237534 |
206 | 0.9949961852476154 |
207 | 0.9954314695504363 |
208 | 0.9958356402684387 |
209 | 0.9962103726017252 |
210 | 0.9965572899760172 |
211 | 0.9968779632693499 |
212 | 0.9971739102014799 |
213 | 0.9974465948831872 |
214 | 0.9976974275220812 |
215 | 0.9979277642809907 |
216 | 0.9981389072844972 |
217 | 0.9983321047686901 |
218 | 0.9985085513687731 |
219 | 0.9986693885387259 |
220 | 0.9988157050968516 |
221 | 0.9989485378906924 |
222 | 0.9990688725744943 |
223 | 0.9991776444921379 |
224 | 0.9992757396582338 |
225 | 0.9993639958299003 |
226 | 0.9994432036616085 |
227 | 0.9995141079353859 |
228 | 0.9995774088586188 |
229 | 0.9996337634216871 |
230 | 0.9996837868076957 |
231 | 0.9997280538466377 |
232 | 0.9997671005064359 |
233 | 0.9998014254134544 |
234 | 0.9998314913952471 |
235 | 0.9998577270385304 |
236 | 0.9998805282555989 |
237 | 0.9999002598526793 |
238 | 0.9999172570940037 |
239 | 0.9999318272557038 |
240 | 0.9999442511639580 |
241 | 0.9999547847121726 |
242 | 0.9999636603523446 |
243 | 0.9999710885561258 |
244 | 0.9999772592414866 |
245 | 0.9999823431612708 |
246 | 0.9999864932503106 |
247 | 0.9999898459281599 |
248 | 0.9999925223548691 |
249 | 0.9999946296375997 |
250 | 0.9999962619864214 |
251 | 0.9999975018180320 |
252 | 0.9999984208055542 |
253 | 0.9999990808746198 |
254 | 0.9999995351446231 |
255 | 0.9999998288155155 |
Приложение Б
(обязательное)
Информация о неиспользованных кодовых книгах
В настоящем стандарте декодер ААС не использует сборники кодов #12 и #13. Однако, при желании, декодер может использовать эти сборники кодов, чтобы расширить его функциональность, если это не противоречит другим стандартам MPEG, таким как ИСО/МЭК 14496-3 [3], которые используют эти сборники кодов для расширенных методов кодирования.
Пример: синтаксис в 4.3 изменился бы, как представлено в таблице Б1.
Таблица Б.1 - Расширенный синтаксис для scale_factor_data ()
Приложение В
(обязательное)
Кодер
В.1 Психоакустическая модель
В.1.1 Общие сведения
В этом приложении представлена психоакустическая модель для кодера ААС. Психоакустическая модель вычисляет максимальную энергию искажений, которая маскируется энергией сигнала. Эту энергию называют порогом маскирования. У процесса вычисления порога маскирования есть три входа:
1 Длина сдвига для процесса вычисления порога маскирования iblen. Параметр iblen должен оставаться постоянным. Так как необходимо вычислить пороги для двух различных длин сдвига, необходимо два процесса, каждый со своей фиксированной длиной сдвига. Для длинного быстрого преобразования Фурье (БПФ) iblen = 1024, для короткого БПФ iblen = 128.
2 Для каждого типа БПФ следующие iblen отсчетов сигнала с задержанными отсчетами (в банке фильтров или в блоке психоакустического расчета) располагаются таким образом, чтобы окно психоакустического расчета оказалось по центру окна частотно-временного преобразования.
3 Частота дискретизации. Существуют наборы таблиц, предусмотренные для стандартных частот дискретизации. Частота дискретизации так же, как iblen, должна оставаться постоянной в течение одной реализации процесса вычисления порога маскирования.
Выходы психоакустической модели:
1 Набор отношений сигнал-маска и значений порога, которые адаптируются к кодеру как описано ниже.
2 Задержанные временные данные (ИКМ-отсчеты), которые используются МДКП.
3 Тип блока МДКП (длинный, стартовый, стоповый или короткий).
4 Оценка количества битов, которое должно использоваться для кодирования в дополнение к среднему количеству доступных битов.
Задержка ИКМ отсчетов необходима, ибо алгоритм переключения обнаруживает резкую атаку, т.е. для фрейма должны использоваться короткие блоки, длинный блок перед короткими блоками должен быть изменен на стартовый.
В.1.2 Комментарии
В процессе вычисления порога маскирования используются три индекса для значений данных:
В.1.3 Функция маскирования
В психоакустическом расчете используется "функция маскирования". Она вычисляется следующим образом:
B.1.4 Шаги при вычислении порога маскирования
Следующие шаги являются необходимыми для вычисления SMR (n) и xmin (n), используемыми в кодере для длинного и короткого БПФ.
1 Восстановить 2 * iblen отсчетов входного сигнала.
2 Вычислить комплексный спектр входного сигнала.
Эта формула используется для каждого из коротких блоков с коротким БПФ, для первых 6 строк длинных блоков мера неопределенности вычисляется по длинному БПФ, для оставшихся строк используется минимальное значение неопределенности для коротких блоков БПФ. Если необходимо уменьшить сложность вычислений, неопределенность для верхней части спектра может быть установлена равной 0,4.
5 Вычислить энергию и неопределенность в разделах вычисления порога.
do for each partition b:
end do end
do
Разделы вычисления порога обеспечивают разрешение, примерно равное одной частотной линии БПФ или 1/3 критической полосы. На нижних частотах одна линия БПФ соответствует одному разделу вычисления. На верхних частотах несколько строк будут объединены в один раздел вычисления. Набор значений линий разделов для каждой из трех частот дискретизации задан в таблицах Б.1-Б.24. Элементы этих таблиц будут использоваться в процессе вычисления порога маскирования. В каждой таблице есть следующие графы:
6* Вычислить свертку энергии разделов и неопределенности с функцией маскирования.
for each partition b:
ecb(b) = 0
do for each partition bb:
ecb (b) = ecb (b) +e (bb) * sprdngf (bval (bb) , bval (b))
end do end do do for each partition b:
ct (b) = 0
do for each partition bb:
ct(b) = ct(b) +c(bb)* sprdngf (bval (bb) , bval (b))
end do end do
Поскольку ct (b) взвешивается энергией сигнала, оно должно быть повторно нормализовано к cb (b)
cb (b) = ct (b) / ecb (b)
Аналогично, из-за ненормализованной природы функции маскирования ecbb должно быть повторно нормализовано и нормализованная энергия en (b) равна:
en (b) = ecb (b) / rnorm (b)
коэффициент нормализации, rnorm (b):
do for each partition b imp (b) = 0
do for each partition bb
tmp (b) = imp (b) + sprdngf (bval (bb) ,bval (b)) end do
rnorm (b) = 1/ tmp (b) end do
7 Преобразовать cb (b) в tb (b), индекс тональности.
Каждый tb (b) ограничен диапазоном 0 <tb (b) <1.
8 Вычислить необходимое SNR в каждом разделе.
NMT (b) = 6 дБ для всех b. NMT (b) соответствует шумовому маскеру (в дБ) для раздела. TMN (b) = 18 дБ для всех b. TMN (b) соответствует тональному маскеру (в дБ). Требуемое отношение сигнал-шум, SNR (b):
SNR (b) = tb (b) * TMN (b) + (1-tb (b)) * NMT (b).
9 Вычислить отношение мощностей.
Отношение мощностей, bc (b):
10 Вычислить фактический энергетический порог, nb (b).
nb (b) = en (b) * bc (b) nb (b) также используется в модуле M/S (см. пункт 12): nb (b) равен Xthr с ’X’ = [R, L, M., S].
11 Контроль пре-эха и абсолютный порог слышимости
Чтобы избежать пре-эха, вычисляется контроль пре-эхом для коротких и длинных БПФ, абсолютный порог слышимости также учитывается здесь:
nb_l (b) является порогом раздела b для последнего блока, qsthr (b) является абсолютным порогом слышимости. Значения дБ qsthr (b) показаны на рисунке В.1
Значения таблиц В.1-В.24 даны относительно уровня частотной линии БПФ, которой соответствует синусоидальная волна амплитудой ±1 Isb. Значения (в дБ) должны быть преобразованы в единицы энергии после нормализации БПФ.
nb (b) = max (qsthr (b), min (nb (b), nb_l (b) *rpelev))
rpelev устанавливается в ’1’ для коротких блоков и ’2’ для длинных блоков.
12 РЕ вычисляется для каждого типа блока из отношения е (b) / nb (b), где nb (b) - порог маскирования и е (b) - энергия для каждого порогового раздела.
РЕ = 0
do for threshold partition b
PE = PE - ( w_high(b)-w_low(b)) * log10 ( nb(b) / ( e (b) +1) ) end do
13 Принимается решение об использовании длинного или короткого блока.
if РЕ for long block is greater than switch_pe then
coding_block_type = short_block_type else
coding_block_type = long_block_type end if if (coding_block_type == short_block_type)
and
(last_coding_block_type == long_type) then
last coding block type = start_type else
last_coding_block_type = short_type.
Последние четыре строки необходимы, так как в ААС нет комбинированного стартового/стопового блока. switch_pe - постоянная, зависящая от реализации.
14 Вычислить отношения сигнал-маска, SMR (n) и порог маскирования xmin (n)
Таблицы 45...57 дают:
1 Индекс swb раздела кодера, называемого полосой масштабных коэффициентов.
2 Смещение линии МДКП для полосы масштабных коэффициентов swb_offset_long/short_window.
Вводится следующая переменная:
n = swb
w_low (n) = swb_offset_long/short_window (n) w_high (n) =
swb_offset_long/short_window (n+1) - 1
энергия БПФ в полосе масштабных коэффициентов, epart (n):
do for each scalefactor band n
epart (n) = 0
end do
end do
порог для одной спектральной линии вычисляется согласно:
do for each threshold partition b
thr (all line_indices in this partition b) =
thr (w_low (b)..., w_high (b)), =nb (b) / (w_high (b) +1-w_low (b))
end do
уровень шума в полосе масштабных коэффициентов на уровне БПФ, npart (n) вычисляется как:
do for each scalefactor band n
npart (n) = minimum (thr (w_low (n))..., thr (w_high (n)))
* (w_high (n) +1-w_low (n)), end do
Где в этом случае minimum (a...z) - функция, возвращающая самый меньший положительный аргумент из a...z.
Рисунок В.1 - Блок-схема психоакустической модели
Отношения, которые будут переданы в модуль квантования, SMR (n), вычисляются как:
SMR (n) = epart (n) / npart (n).
Для вычисления порогов кодера xmin (n) вычисляется энергия МДКП для каждой полосы масштабных коэффициентов:
Do for all scalefactor bands n
codec_e (n) = 0
do for lower index i to higher index i of this scalefactor band
end do
end do.
Затем xmin (n), максимальная допустимая энергия искажений на уровне МДКП, может быть вычислена согласно этой формуле:
xmin (n) = npart (n) * codec_e (n) / epart (n).
15 Вычислить распределение битов из психоакустической энтропии (РЕ).
bit_allocation = pew1*PE + pew2*sqrt (РЕ);
для длинных блоков константы определяются как:
pew1 = 0,3, pew2 = 6,0
для коротких блоков РЕ восьми коротких блоков суммируются, и константы:
pew1 =0,6, pew2 = 24,
тогда bit_allocation ограничивается 0 <bit_allocation <3000, и вычисляется more_bits:
more_bits = bit_allocation - (mean_bits - side_info_bits).
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 8 | 9 | 0,18 | 46,82 |
1 | 9 | 17 | 9 | 0,53 | 46,82 |
2 | 18 | 26 | 9 | 0,89 | 46,82 |
3 | 27 | 35 | 9 | 1,24 | 41,82 |
4 | 36 | 44 | 9 | 1,59 | 41,82 |
5 | 45 | 53 | 9 | 1,94 | 41,82 |
6 | 54 | 62 | 9 | 2,29 | 38,82 |
7 | 63 | 71 | 9 | 2,63 | 38,82 |
8 | 72 | 80 | 9 | 2,98 | 38,82 |
9 | 81 | 89 | 9 | 3,31 | 33,82 |
10 | 90 | 98 | 9 | 3,65 | 33,82 |
11 | 99 | 108 | 10 | 3,99 | 34,28 |
12 | 109 | 118 | 10 | 4,35 | 32,28 |
13 | 119 | 128 | 10 | 4,71 | 32,28 |
14 | 129 | 138 | 10 | 5,05 | 32,28 |
15 | 139 | 148 | 10 | 5,39 | 32,28 |
16 | 149 | 159 | 11 | 5,74 | 32,69 |
17 | 160 | 170 | 11 | 6,10 | 32,69 |
18 | 171 | 181 | 11 | 6,45 | 32,69 |
19 | 182 | 192 | 11 | 6,79 | 32,69 |
20 | 193 | 204 | 12 | 7,13 | 33,07 |
21 | 205 | 216 | 12 | 7,48 | 33,07 |
22 | 217 | 228 | 12 | 7,82 | 33,07 |
23 | 229 | 241 | 13 | 8,17 | 33,42 |
24 | 242 | 254 | 13 | 8,51 | 33,42 |
25 | 255 | 268 | 14 | 8,85 | 33,74 |
26 | 269 | 282 | 14 | 9,20 | 33,74 |
27 | 283 | 297 | 15 | 9,54 | 34,04 |
28 | 298 | 312 | 15 | 9,88 | 34,04 |
29 | 313 | 328 | 16 | 10,22 | 34,32 |
30 | 329 | 345 | 17 | 10,56 | 34,58 |
31 | 346 | 363 | 18 | 10,91 | 34,83 |
32 | 364 | 381 | 18 | 11,25 | 34,83 |
33 | 382 | 400 | 19 | 11,58 | 35,06 |
34 | 401 | 420 | 20 | 11,91 | 35,29 |
35 | 421 | 441 | 21 | 12,24 | 35,50 |
36 | 442 | 464 | 23 | 12,58 | 35,89 |
37 | 465 | 488 | 24 | 12,92 | 36,08 |
38 | 489 | 514 | 26 | 13,26 | 36,43 |
39 | 515 | 541 | 27 | 13,59 | 36,59 |
40 | 542 | 570 | 29 | 13,93 | 36,90 |
41 | 571 | 601 | 31 | 14,26 | 37,19 |
42 | 602 | 634 | 33 | 14,60 | 37,46 |
43 | 635 | 670 | 36 | 14,93 | 37,84 |
44 | 671 | 708 | 38 | 15,27 | 38,07 |
45 | 709 | 749 | 41 | 15,60 | 38,40 |
46 | 750 | 793 | 44 | 15,93 | 38,71 |
47 | 794 | 841 | 48 | 16,26 | 39,09 |
48 | 842 | 893 | 52 | 16,60 | 39,44 |
49 | 894 | 949 | 56 | 16,93 | 39,76 |
50 | 950 | 1009 | 60 | 17,26 | 40,06 |
51 | 1010 | 1023 | 14 | 17,47 | 33,74 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 1 | 2 | 0,32 | 30,29 |
1 | 2 | 3 | 2 | 0,95 | 30,29 |
2 | 4 | 5 | 2 | 1,57 | 25,29 |
3 | 6 | 7 | 2 | 2,19 | 22,29 |
4 | 8 | 9 | 2 | 2,80 | 22,29 |
5 | 10 | 11 | 2 | 3,40 | 17,29 |
6 | 12 | 13 | 2 | 3,99 | 17,29 |
7 | 14 | 15 | 2 | 4,56 | 15,29 |
8 | 16 | 17 | 2 | 5,12 | 15,29 |
9 | 18 | 19 | 2 | 5,66 | 15,29 |
10 | 20 | 21 | 2 | 6,18 | 15,29 |
11 | 22 | 23 | 2 | 6,68 | 15,29 |
12 | 24 | 25 | 2 | 7,16 | 15,29 |
13 | 26 | 27 | 2 | 7,63 | 15,29 |
14 | 28 | 29 | 2 | 8,07 | 15,29 |
15 | 30 | 31 | 2 | 8,50 | 15,29 |
16 | 32 | 33 | 2 | 8,90 | 15,29 |
17 | 34 | 35 | 2 | 9,29 | 15,29 |
18 | 36 | 37 | 2 | 9,67 | 15,29 |
19 | 38 | 39 | 2 | 10,03 | 15,29 |
20 | 40 | 41 | 2 | 10,37 | 15,29 |
21 | 42 | 44 | 3 | 10,77 | 17,05 |
22 | 45 | 47 | 3 | 11,23 | 17,05 |
23 | 48 | 50 | 3 | 11,66 | 17,05 |
24 | 51 | 53 | 3 | 12,06 | 17,05 |
25 | 54 | 56 | 3 | 12,44 | 17,05 |
26 | 57 | 59 | 3 | 12,79 | 17,05 |
27 | 60 | 63 | 4 | 13,18 | 18,30 |
28 | 64 | 67 | 4 | 13,59 | 18,30 |
29 | 68 | 71 | 4 | 13,97 | 18,30 |
30 | 72 | 75 | 4 | 14,32 | 18,30 |
31 | 76 | 80 | 5 | 14,69 | 19,27 |
32 | 81 | 85 | 5 | 15,07 | 19,27 |
33 | 86 | 90 | 5 | 15,42 | 19,27 |
34 | 91 | 96 | 6 | 15,77 | 20,06 |
35 | 97 | 102 | 6 | 16,13 | 20,06 |
36 | 103 | 109 | 7 | 16,49 | 20,73 |
37 | 110 | 116 | 7 | 16,85 | 20,73 |
38 | 117 | 124 | 8 | 17,20 | 21,31 |
39 | 125 | 127 | 3 | 17,44 | 17,05 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 6 | 7 | 0,19 | 45,73 |
1 | 7 | 13 | 7 | 0,57 | 45,73 |
2 | 14 | 20 | 7 | 0,95 | 45,73 |
3 | 21 | 27 | 7 | 1,33 | 40,73 |
4 | 28 | 34 | 7 | 1,71 | 40,73 |
5 | 35 | 41 | 7 | 2,08 | 37,73 |
6 | 42 | 48 | 7 | 2,45 | 37,73 |
7 | 49 | 55 | 7 | 2,82 | 37,73 |
8 | 56 | 62 | 7 | 3,18 | 32,73 |
9 | 63 | 69 | 7 | 3,54 | 32,73 |
10 | 70 | 76 | 7 | 3,89 | 32,73 |
11 | 77 | 83 | 7 | 4,24 | 30,73 |
12 | 84 | 90 | 7 | 4,59 | 30,73 |
13 | 91 | 97 | 7 | 4,92 | 30,73 |
14 | 98 | 105 | 8 | 5,28 | 31,31 |
15 | 106 | 113 | 8 | 5,65 | 31,31 |
16 | 114 | 121 | 8 | 6,01 | 31,31 |
17 | 122 | 129 | 8 | 6,36 | 31,31 |
18 | 130 | 137 | 8 | 6,70 | 31,31 |
19 | 138 | 146 | 9 | 7,06 | 31,82 |
20 | 147 | 155 | 9 | 7,42 | 31,82 |
21 | 156 | 164 | 9 | 7,77 | 31,82 |
22 | 165 | 173 | 9 | 8,11 | 31,82 |
23 | 174 | 183 | 10 | 8,46 | 32,28 |
24 | 184 | 193 | 10 | 8,82 | 32,28 |
25 | 194 | 203 | 10 | 9,16 | 32,28 |
26 | 204 | 214 | 11 | 9,50 | 32,69 |
27 | 215 | 225 | 11 | 9,85 | 32,69 |
28 | 226 | 237 | 12 | 10,19 | 33,07 |
29 | 238 | 249 | 12 | 10,54 | 33,07 |
30 | 250 | 262 | 13 | 10,88 | 33,42 |
31 | 263 | 275 | 13 | 11,22 | 33,42 |
32 | 276 | 289 | 14 | 11,56 | 33,74 |
33 | 290 | 304 | 15 | 11,90 | 34,04 |
34 | 305 | 320 | 16 | 12,24 | 34,32 |
35 | 321 | 337 | 17 | 12,59 | 34,58 |
36 | 338 | 355 | 18 | 12,94 | 34,83 |
37 | 356 | 374 | 19 | 13,28 | 35,06 |
38 | 375 | 394 | 20 | 13,62 | 35,29 |
39 | 395 | 415 | 21 | 13,96 | 35,50 |
40 | 416 | 438 | 23 | 14,29 | 35,89 |
41 | 439 | 462 | 24 | 14,63 | 36,08 |
42 | 463 | 488 | 26 | 14,96 | 36,43 |
43 | 489 | 516 | 28 | 15,29 | 36,75 |
44 | 517 | 546 | 30 | 15,63 | 37,05 |
45 | 547 | 579 | 33 | 15,96 | 37,46 |
46 | 580 | 614 | 35 | 16,30 | 37,72 |
47 | 615 | 652 | 38 | 16,63 | 38,07 |
48 | 653 | 693 | 41 | 16,97 | 38,40 |
49 | 694 | 737 | 44 | 17,30 | 38,71 |
50 | 738 | 785 | 48 | 17,64 | 39,09 |
51 | 786 | 836 | 51 | 17,97 | 39,35 |
52 | 837 | 891 | 55 | 18,30 | 39,68 |
53 | 892 | 950 | 59 | 18,64 | 39,98 |
54 | 951 | 1014 | 64 | 18,97 | 40,34 |
55 | 1015 | 1023 | 9 | 19,16 | 31,82 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 0,44 | 27,28 |
2 | 2 | 2 | 1 | 0,87 | 27,28 |
3 | 3 | 3 | 1 | 1,30 | 22,28 |
4 | 4 | 4 | 1 | 1,73 | 22,28 |
5 | 5 | 5 | 1 | 2,16 | 19,28 |
6 | 6 | 6 | 1 | 2,58 | 19,28 |
7 | 7 | 7 | 1 | 3,00 | 14,28 |
8 | 8 | 8 | 1 | 3,41 | 14,28 |
9 | 9 | 9 | 1 | 3,82 | 14,28 |
10 | 10 | 10 | 1 | 4,22 | 12,28 |
11 | 11 | 11 | 1 | 4,61 | 12,28 |
12 | 12 | 12 | 1 | 4,99 | 12,28 |
13 | 13 | 13 | 1 | 5,37 | 12,28 |
14 | 14 | 14 | 1 | 5,74 | 12,28 |
15 | 15 | 15 | 1 | 6,10 | 12,28 |
16 | 16 | 16 | 1 | 6,45 | 12,28 |
17 | 17 | 17 | 1 | 6,79 | 12,28 |
18 | 18 | 19 | 2 | 7,44 | 15,29 |
19 | 20 | 21 | 2 | 8,05 | 15,29 |
20 | 22 | 23 | 2 | 8,64 | 15,29 |
21 | 24 | 25 | 2 | 9,19 | 15,29 |
22 | 26 | 27 | 2 | 9,70 | 15,29 |
23 | 28 | 29 | 2 | 10,19 | 15,29 |
24 | 30 | 31 | 2 | 10,65 | 15,29 |
25 | 32 | 33 | 2 | 11,08 | 15,29 |
26 | 34 | 35 | 2 | 11,48 | 15,29 |
27 | 36 | 37 | 2 | 11,86 | 15,29 |
28 | 38 | 39 | 2 | 12,22 | 15,29 |
29 | 40 | 42 | 3 | 12,64 | 17,05 |
30 | 43 | 45 | 3 | 13,10 | 17,05 |
31 | 46 | 48 | 3 | 13,53 | 17,05 |
32 | 49 | 51 | 3 | 13,93 | 17,05 |
33 | 52 | 54 | 3 | 14,30 | 17,05 |
34 | 55 | 58 | 4 | 14,69 | 18,30 |
35 | 59 | 62 | 4 | 15,11 | 18,30 |
36 | 63 | 66 | 4 | 15,49 | 18,30 |
37 | 67 | 70 | 4 | 15,84 | 18,30 |
38 | 71 | 75 | 5 | 16,21 | 19,27 |
39 | 76 | 80 | 5 | 16,58 | 19,27 |
40 | 81 | 85 | 5 | 16,92 | 19,27 |
41 | 86 | 91 | 6 | 17,27 | 20,06 |
42 | 92 | 97 | 6 | 17,62 | 20,06 |
43 | 98 | 104 | 7 | 17,97 | 20,73 |
44 | 105 | 111 | 7 | 18,32 | 20,73 |
45 | 112 | 119 | 8 | 18,67 | 21,31 |
46 | 120 | 127 | 8 | 19,02 | 21,31 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 5 | 6 | 0,18 | 45,06 |
1 | 6 | 11 | 6 | 0,53 | 45,06 |
2 | 12 | 17 | 6 | 0,89 | 45,06 |
3 | 18 | 23 | 6 | 1,24 | 40,06 |
4 | 24 | 29 | 6 | 1,59 | 40,06 |
5 | 30 | 35 | 6 | 1,94 | 40,06 |
6 | 36 | 41 | 6 | 2,29 | 37,06 |
7 | 42 | 47 | 6 | 2,63 | 37,06 |
8 | 48 | 53 | 6 | 2,98 | 37,06 |
9 | 54 | 59 | 6 | 3,31 | 32,06 |
10 | 60 | 65 | 6 | 3,65 | 32,06 |
11 | 66 | 72 | 7 | 4,00 | 30,73 |
12 | 73 | 79 | 7 | 4,38 | 30,73 |
13 | 80 | 86 | 7 | 4,75 | 30,73 |
14 | 87 | 93 | 7 | 5,11 | 30,73 |
15 | 94 | 100 | 7 | 5,47 | 30,73 |
16 | 101 | 107 | 7 | 5,82 | 30,73 |
17 | 108 | 114 | 7 | 6,15 | 30,73 |
18 | 115 | 122 | 8 | 6,51 | 31,31 |
19 | 123 | 130 | 8 | 6,88 | 31,31 |
20 | 131 | 138 | 8 | 7,24 | 31,31 |
21 | 139 | 146 | 8 | 7,58 | 31,31 |
22 | 147 | 154 | 8 | 7,92 | 31,31 |
23 | 155 | 163 | 9 | 8,27 | 31,82 |
24 | 164 | 172 | 9 | 8,62 | 31,82 |
25 | 173 | 181 | 9 | 8,96 | 31,82 |
26 | 182 | 191 | 10 | 9,31 | 32,28 |
27 | 192 | 201 | 10 | 9,66 | 32,28 |
28 | 202 | 212 | 11 | 10,01 | 32,69 |
29 | 213 | 223 | 11 | 10,36 | 32,69 |
30 | 224 | 235 | 12 | 10,71 | 33,07 |
31 | 236 | 247 | 12 | 11,06 | 33,07 |
32 | 248 | 260 | 13 | 11,41 | 33,42 |
33 | 261 | 273 | 13 | 11,75 | 33,42 |
34 | 274 | 287 | 14 | 12,09 | 33,74 |
35 | 288 | 302 | 15 | 12,43 | 34,04 |
36 | 303 | 318 | 16 | 12,77 | 34,32 |
37 | 319 | 335 | 17 | 13,11 | 34,58 |
38 | 336 | 353 | 18 | 13,46 | 34,83 |
39 | 354 | 372 | 19 | 13,80 | 35,06 |
40 | 373 | 392 | 20 | 14,13 | 35,29 |
41 | 393 | 414 | 22 | 14,47 | 35,70 |
42 | 415 | 437 | 23 | 14,81 | 35,89 |
43 | 438 | 462 | 25 | 15,14 | 36,26 |
44 | 463 | 489 | 27 | 15,48 | 36,59 |
45 | 490 | 518 | 29 | 15,81 | 36,90 |
46 | 519 | 549 | 31 | 16,15 | 37,19 |
47 | 550 | 583 | 34 | 16,48 | 37,59 |
48 | 584 | 619 | 36 | 16,82 | 37,84 |
49 | 620 | 658 | 39 | 17,15 | 38,19 |
50 | 659 | 700 | 42 | 17,48 | 38,51 |
51 | 701 | 745 | 45 | 17,81 | 38,81 |
52 | 746 | 794 | 49 | 18,14 | 39,18 |
53 | 795 | 847 | 53 | 18,48 | 39,52 |
54 | 848 | 904 | 57 | 18,81 | 39,83 |
55 | 905 | 965 | 61 | 19,15 | 40,13 |
56 | 966 | 1023 | 58 | 19,47 | 39,91 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 0,47 | 27,28 |
2 | 2 | 2 | 1 | 0,95 | 27,28 |
3 | 3 | 3 | 1 | 1,42 | 22,28 |
4 | 4 | 4 | 1 | 1,88 | 22,28 |
5 | 5 | 5 | 1 | 2,35 | 19,28 |
6 | 6 | 6 | 1 | 2,81 | 19,28 |
7 | 7 | 7 | 1 | 3,26 | 14,28 |
8 | 8 | 8 | 1 | 3,70 | 14,28 |
9 | 9 | 9 | 1 | 4,14 | 12,28 |
10 | 10 | 10 | 1 | 4,57 | 12,28 |
11 | 11 | 11 | 1 | 4,98 | 12,28 |
12 | 12 | 12 | 1 | 5,39 | 12,28 |
13 | 13 | 13 | 1 | 5,79 | 12,28 |
14 | 14 | 14 | 1 | 6,18 | 12,28 |
15 | 15 | 15 | 1 | 6,56 | 12,28 |
16 | 16 | 16 | 1 | 6,93 | 12,28 |
17 | 17 | 17 | 1 | 7,28 | 12,28 |
18 | 18 | 18 | 1 | 7,63 | 12,28 |
19 | 19 | 20 | 2 | 8,28 | 15,29 |
20 | 21 | 22 | 2 | 8,90 | 15,29 |
21 | 23 | 24 | 2 | 9,48 | 15,29 |
22 | 25 | 26 | 2 | 10,02 | 15,29 |
23 | 27 | 28 | 2 | 10,53 | 15,29 |
24 | 29 | 30 | 2 | 11,00 | 15,29 |
25 | 31 | 32 | 2 | 11,45 | 15,29 |
26 | 33 | 34 | 2 | 11,86 | 15,29 |
27 | 35 | 36 | 2 | 12,25 | 15,29 |
28 | 37 | 38 | 2 | 12,62 | 15,29 |
29 | 39 | 40 | 2 | 12,96 | 15,29 |
30 | 41 | 43 | 3 | 13,36 | 17,05 |
31 | 44 | 46 | 3 | 13,80 | 17,05 |
32 | 47 | 49 | 3 | 14,21 | 17,05 |
33 | 50 | 52 | 3 | 14,59 | 17,05 |
34 | 53 | 55 | 3 | 14,94 | 17,05 |
35 | 56 | 59 | 4 | 15,32 | 18,30 |
36 | 60 | 63 | 4 | 15,71 | 18,30 |
37 | 64 | 67 | 4 | 16,08 | 18,30 |
38 | 68 | 72 | 5 | 16,45 | 19,27 |
39 | 73 | 77 | 5 | 16,83 | 19,27 |
40 | 78 | 82 | 5 | 17,19 | 19,27 |
41 | 83 | 88 | 6 | 17,54 | 20,06 |
42 | 89 | 94 | 6 | 17,90 | 20,06 |
43 | 95 | 101 | 7 | 18,26 | 20,73 |
44 | 102 | 108 | 7 | 18,62 | 20,73 |
45 | 109 | 116 | 8 | 18,97 | 21,31 |
46 | 117 | 124 | 8 | 19,32 | 21,31 |
47 | 125 | 127 | 3 | 19,55 | 17,05 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 4 | 5 | 0,20 | 43,30 |
1 | 5 | 9 | 5 | 0,59 | 43,10 |
2 | 10 | 14 | 5 | 0,99 | 38,30 |
3 | 15 | 19 | 5 | 1,38 | 38,10 |
4 | 20 | 24 | 5 | 1,77 | 38,00 |
5 | 25 | 29 | 5 | 2,16 | 35,10 |
6 | 30 | 34 | 5 | 2,54 | 35,30 |
7 | 35 | 39 | 5 | 2,92 | 30,00 |
8 | 40 | 44 | 5 | 3,29 | 30,00 |
9 | 45 | 49 | 5 | 3,66 | 28,30 |
10 | 50 | 54 | 5 | 4,03 | 28,30 |
11 | 55 | 59 | 5 | 4,39 | 28,30 |
12 | 60 | 64 | 5 | 4,74 | 28,30 |
13 | 65 | 69 | 5 | 5,09 | 28,30 |
14 | 70 | 74 | 5 | 5,43 | 28,30 |
15 | 75 | 80 | 6 | 5,79 | 28,30 |
16 | 81 | 86 | 6 | 6,18 | 28,30 |
17 | 87 | 92 | 6 | 6,56 | 28,00 |
18 | 93 | 98 | 6 | 6,92 | 29,27 |
19 | 99 | 104 | 6 | 7,28 | 29,27 |
20 | 105 | 110 | 6 | 7,63 | 29,27 |
21 | 111 | 116 | 6 | 7,96 | 29,27 |
22 | 117 | 123 | 7 | 8,31 | 29,27 |
23 | 124 | 130 | 7 | 8,68 | 29,06 |
24 | 131 | 137 | 7 | 9,03 | 30,06 |
25 | 138 | 144 | 7 | 9,37 | 30,06 |
26 | 145 | 152 | 8 | 9,71 | 30,06 |
27 | 153 | 160 | 8 | 10,07 | 30,73 |
28 | 161 | 168 | 8 | 10,41 | 30,73 |
29 | 169 | 177 | 9 | 10,75 | 30,73 |
30 | 178 | 186 | 9 | 11,10 | 31,31 |
31 | 187 | 196 | 10 | 11,45 | 31,31 |
32 | 197 | 206 | 10 | 11,80 | 31,82 |
33 | 207 | 217 | 11 | 12,14 | 31,82 |
34 | 218 | 228 | 11 | 12,48 | 32,28 |
35 | 229 | 240 | 12 | 12,82 | 32,28 |
36 | 241 | 253 | 13 | 13,16 | 32,69 |
37 | 254 | 267 | 14 | 13,51 | 32,69 |
38 | 268 | 282 | 15 | 13,86 | 33,07 |
39 | 283 | 298 | 16 | 14,21 | 33,46 |
40 | 299 | 315 | 17 | 14,56 | 33,82 |
41 | 316 | 333 | 18 | 14,90 | 34,12 |
42 | 334 | 352 | 19 | 15,24 | 34,42 |
43 | 353 | 373 | 21 | 15,58 | 34,68 |
44 | 374 | 395 | 22 | 15,91 | 35,15 |
45 | 396 | 419 | 24 | 16,25 | 35,32 |
46 | 420 | 445 | 26 | 16,58 | 35,73 |
47 | 446 | 473 | 28 | 16,92 | 35,91 |
48 | 474 | 503 | 30 | 17,25 | 36,42 |
49 | 504 | 536 | 33 | 17,59 | 36,75 |
50 | 537 | 571 | 35 | 17,93 | 37,11 |
51 | 572 | 609 | 38 | 18,26 | 37,34 |
52 | 610 | 650 | 41 | 18,60 | 37,63 |
53 | 651 | 694 | 44 | 18,94 | 38,12 |
54 | 695 | 741 | 47 | 19,27 | 38,17 |
55 | 742 | 791 | 50 | 19,60 | 41,52 |
56 | 792 | 845 | 54 | 19,94 | 41,84 |
57 | 846 | 903 | 58 | 20,27 | 42,13 |
58 | 904 | 965 | 62 | 20,61 | 44,41 |
59 | 966 | 1023 | 58 | 20,92 | 44,87 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 0,63 | 27,28 |
2 | 2 | 2 | 1 | 1,26 | 22,28 |
3 | 3 | 3 | 1 | 1,88 | 22,28 |
4 | 4 | 4 | 1 | 2,50 | 19,28 |
5 | 5 | 5 | 1 | 3,11 | 14,28 |
6 | 6 | 6 | 1 | 3,70 | 14,28 |
7 | 7 | 7 | 1 | 4,28 | 12,28 |
8 | 8 | 8 | 1 | 4,85 | 12,28 |
9 | 9 | 9 | 1 | 5,39 | 12,28 |
10 | 10 | 10 | 1 | 5,92 | 12,28 |
11 | 11 | 11 | 1 | 6,43 | 12,28 |
12 | 12 | 12 | 1 | 6,93 | 12,28 |
13 | 13 | 13 | 1 | 7,40 | 12,28 |
14 | 14 | 14 | 1 | 7,85 | 12,28 |
15 | 15 | 15 | 1 | 8,29 | 12,28 |
16 | 16 | 16 | 1 | 8,70 | 12,28 |
17 | 17 | 17 | 1 | 9,10 | 12,28 |
18 | 18 | 18 | 1 | 9,49 | 12,28 |
19 | 19 | 19 | 1 | 9,85 | 12,28 |
20 | 20 | 20 | 1 | 10,20 | 12,28 |
21 | 21 | 22 | 2 | 10,85 | 15,29 |
22 | 23 | 24 | 2 | 11,44 | 15,29 |
23 | 25 | 26 | 2 | 11,99 | 15,29 |
24 | 27 | 28 | 2 | 12,50 | 15,29 |
25 | 29 | 30 | 2 | 12,96 | 15,29 |
26 | 31 | 32 | 2 | 13,39 | 15,29 |
27 | 33 | 34 | 2 | 13,78 | 15,29 |
28 | 35 | 36 | 2 | 14,15 | 15,29 |
29 | 37 | 39 | 3 | 14,57 | 17,05 |
30 | 40 | 42 | 3 | 15,03 | 17,05 |
31 | 43 | 45 | 3 | 15,45 | 17,05 |
32 | 46 | 48 | 3 | 15,84 | 17,05 |
33 | 49 | 51 | 3 | 16,19 | 17,05 |
34 | 52 | 55 | 4 | 16,57 | 18,30 |
35 | 56 | 59 | 4 | 16,97 | 18,30 |
36 | 60 | 63 | 4 | 17,33 | 18,30 |
37 | 64 | 68 | 5 | 17,71 | 19,27 |
38 | 69 | 73 | 5 | 18,09 | 19,27 |
39 | 74 | 78 | 5 | 18,44 | 19,27 |
40 | 79 | 84 | 6 | 18,80 | 20,06 |
41 | 85 | 90 | 6 | 19,17 | 20,06 |
42 | 91 | 97 | 7 | 19,53 | 20,73 |
43 | 98 | 104 | 7 | 19,89 | 20,73 |
44 | 105 | 112 | 8 | 20,25 | 24,31 |
45 | 113 | 120 | 8 | 20,61 | 24,31 |
46 | 121 | 127 | 7 | 20,92 | 23,73 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 3 | 4 | 0,22 | 43,30 |
1 | 4 | 7 | 4 | 0,65 | 43,30 |
2 | 8 | 11 | 4 | 1,09 | 38,30 |
3 | 12 | 15 | 4 | 1,52 | 38,30 |
4 | 16 | 19 | 4 | 1,95 | 38,30 |
5 | 20 | 23 | 4 | 2,37 | 35,30 |
6 | 24 | 27 | 4 | 2,79 | 35,30 |
7 | 28 | 31 | 4 | 3,21 | 30,30 |
8 | 32 | 35 | 4 | 3,62 | 30,30 |
9 | 36 | 39 | 4 | 4,02 | 28,30 |
10 | 40 | 43 | 4 | 4,41 | 28,30 |
11 | 44 | 47 | 4 | 4,80 | 28,30 |
12 | 48 | 51 | 4 | 5,18 | 28,30 |
13 | 52 | 55 | 4 | 5,55 | 28,30 |
14 | 56 | 59 | 4 | 5,92 | 28,30 |
15 | 60 | 63 | 4 | 6,27 | 28,30 |
16 | 64 | 67 | 4 | 6,62 | 28,30 |
17 | 68 | 71 | 4 | 6,95 | 28,30 |
18 | 72 | 76 | 5 | 7,32 | 29,27 |
19 | 77 | 81 | 5 | 7,71 | 29,27 |
20 | 82 | 86 | 5 | 8,10 | 29,27 |
21 | 87 | 91 | 5 | 8,46 | 29,27 |
22 | 92 | 96 | 5 | 8,82 | 29,27 |
23 | 97 | 101 | 5 | 9,16 | 29,27 |
24 | 102 | 107 | 6 | 9,52 | 30,06 |
25 | 108 | 113 | 6 | 9,89 | 30,06 |
26 | 114 | 119 | 6 | 10,25 | 30,06 |
27 | 120 | 125 | 6 | 10,59 | 30,06 |
28 | 126 | 132 | 7 | 10,95 | 30,73 |
29 | 133 | 139 | 7 | 11,31 | 30,73 |
30 | 140 | 146 | 7 | 11,65 | 30,73 |
31 | 147 | 154 | 8 | 12,00 | 31,31 |
32 | 155 | 162 | 8 | 12,35 | 31,31 |
33 | 163 | 171 | 9 | 12,70 | 31,82 |
34 | 172 | 180 | 9 | 13,05 | 31,82 |
35 | 181 | 190 | 10 | 13,40 | 32,28 |
36 | 191 | 200 | 10 | 13,74 | 32,28 |
37 | 201 | 211 | 11 | 14,07 | 32,69 |
38 | 212 | 223 | 12 | 14,41 | 33,07 |
39 | 224 | 236 | 13 | 14,76 | 33,42 |
40 | 237 | 250 | 14 | 15,11 | 33,74 |
41 | 251 | 265 | 15 | 15,46 | 34,04 |
42 | 266 | 281 | 16 | 15,80 | 34,32 |
43 | 282 | 298 | 17 | 16,14 | 34,58 |
44 | 299 | 317 | 19 | 16,48 | 35,06 |
45 | 318 | 337 | 20 | 16,82 | 35,29 |
46 | 338 | 359 | 22 | 17,16 | 35,70 |
47 | 360 | 382 | 23 | 17,50 | 35,89 |
48 | 383 | 407 | 25 | 17,84 | 36,26 |
49 | 408 | 434 | 27 | 18,17 | 36,59 |
50 | 435 | 463 | 29 | 18,51 | 36,90 |
51 | 464 | 494 | 31 | 18,84 | 37,19 |
52 | 495 | 527 | 33 | 19,17 | 37,46 |
53 | 528 | 563 | 36 | 19,51 | 37,84 |
54 | 564 | 601 | 38 | 19,84 | 38,07 |
55 | 602 | 642 | 41 | 20,17 | 41,40 |
56 | 643 | 686 | 44 | 20,50 | 41,71 |
57 | 687 | 733 | 47 | 20,84 | 42,00 |
58 | 734 | 784 | 51 | 21,17 | 44,35 |
59 | 785 | 839 | 55 | 21,50 | 44,68 |
60 | 840 | 898 | 59 | 21,84 | 44,98 |
61 | 899 | 962 | 64 | 22,17 | 50,34 |
62 | 963 | 1023 | 61 | 22,48 | 50,13 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 0,87 | 27,28 |
2 | 2 | 2 | 1 | 1,73 | 22,28 |
3 | 3 | 3 | 1 | 2,58 | 19,28 |
4 | 4 | 4 | 1 | 3,41 | 14,28 |
5 | 5 | 5 | 1 | 4,22 | 12,28 |
6 | 6 | 6 | 1 | 4,99 | 12,28 |
7 | 7 | 7 | 1 | 5,74 | 12,28 |
8 | 8 | 8 | 1 | 6,45 | 12,28 |
9 | 9 | 9 | 1 | 7,12 | 12,28 |
10 | 10 | 10 | 1 | 7,75 | 12,28 |
11 | 11 | 11 | 1 | 8,36 | 12,28 |
12 | 12 | 12 | 1 | 8,92 | 12,28 |
13 | 13 | 13 | 1 | 9,45 | 12,28 |
14 | 14 | 14 | 1 | 9,96 | 12,28 |
15 | 15 | 15 | 1 | 10,43 | 12,28 |
16 | 16 | 16 | 1 | 10,87 | 12,28 |
17 | 17 | 17 | 1 | 11,29 | 12,28 |
18 | 18 | 18 | 1 | 11,68 | 12,28 |
19 | 19 | 19 | 1 | 12,05 | 12,28 |
20 | 20 | 21 | 2 | 12,71 | 15,29 |
21 | 22 | 23 | 2 | 13,32 | 15,29 |
22 | 24 | 25 | 2 | 13,86 | 15,29 |
23 | 26 | 27 | 2 | 14,35 | 15,29 |
24 | 28 | 29 | 2 | 14,80 | 15,29 |
25 | 30 | 31 | 2 | 15,21 | 15,29 |
26 | 32 | 33 | 2 | 15,58 | 15,29 |
27 | 34 | 35 | 2 | 15,93 | 15,29 |
28 | 36 | 38 | 3 | 16,32 | 17,05 |
29 | 39 | 41 | 3 | 16,75 | 17,05 |
30 | 42 | 44 | 3 | 17,15 | 17,05 |
31 | 45 | 47 | 3 | 17,51 | 17,05 |
32 | 48 | 51 | 4 | 17,89 | 18,30 |
33 | 52 | 55 | 4 | 18,30 | 18,30 |
34 | 56 | 59 | 4 | 18,67 | 18,30 |
35 | 60 | 63 | 4 | 19,02 | 18,30 |
36 | 64 | 68 | 5 | 19,37 | 19,27 |
37 | 69 | 73 | 5 | 19,74 | 19,27 |
38 | 74 | 78 | 5 | 20,09 | 22,27 |
39 | 79 | 84 | 6 | 20,44 | 23,06 |
40 | 85 | 90 | 6 | 20,79 | 23,06 |
41 | 91 | 97 | 7 | 21,15 | 25,73 |
42 | 98 | 104 | 7 | 21,50 | 25,73 |
43 | 105 | 112 | 8 | 21,85 | 26,31 |
44 | 113 | 120 | 8 | 22,20 | 31,31 |
45 | 121 | 127 | 7 | 22,49 | 30,73 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 2 | 3 | 0,18 | 42,05 |
1 | 3 | 5 | 3 | 0,53 | 42,05 |
2 | 6 | 8 | 3 | 0,89 | 42,05 |
3 | 9 | 11 | 3 | 1,24 | 37,05 |
4 | 12 | 14 | 3 | 1,59 | 37,05 |
5 | 15 | 17 | 3 | 1,94 | 37,05 |
6 | 18 | 20 | 3 | 2,29 | 34,05 |
7 | 21 | 23 | 3 | 2,63 | 34,05 |
8 | 24 | 26 | 3 | 2,98 | 34,05 |
9 | 27 | 29 | 3 | 3,31 | 29,05 |
10 | 30 | 32 | 3 | 3,65 | 29,05 |
11 | 33 | 36 | 4 | 4,03 | 28,30 |
12 | 37 | 40 | 4 | 4,46 | 28,30 |
13 | 41 | 44 | 4 | 4,88 | 28,30 |
14 | 45 | 48 | 4 | 5,29 | 28,30 |
15 | 49 | 52 | 4 | 5,69 | 28,30 |
16 | 53 | 56 | 4 | 6,08 | 28,30 |
17 | 57 | 60 | 4 | 6,46 | 28,30 |
18 | 61 | 64 | 4 | 6,83 | 28,30 |
19 | 65 | 68 | 4 | 7,19 | 28,30 |
20 | 69 | 72 | 4 | 7,54 | 28,30 |
21 | 73 | 76 | 4 | 7,88 | 28,30 |
22 | 77 | 81 | 5 | 8,25 | 29,27 |
23 | 82 | 86 | 5 | 8,64 | 29,27 |
24 | 87 | 91 | 5 | 9,02 | 29,27 |
25 | 92 | 96 | 5 | 9,38 | 29,27 |
26 | 97 | 101 | 5 | 9,73 | 29,27 |
27 | 102 | 107 | 6 | 10,09 | 30,06 |
28 | 108 | 113 | 6 | 10,47 | 30,06 |
29 | 114 | 119 | 6 | 10,83 | 30,06 |
30 | 120 | 125 | 6 | 11,18 | 30,06 |
31 | 126 | 132 | 7 | 11,53 | 30,73 |
32 | 133 | 139 | 7 | 11,89 | 30,73 |
33 | 140 | 146 | 7 | 12,23 | 30,73 |
34 | 147 | 154 | 8 | 12,57 | 31,31 |
35 | 155 | 162 | 8 | 12,92 | 31,31 |
36 | 163 | 171 | 9 | 13,26 | 31,82 |
37 | 172 | 180 | 9 | 13,61 | 31,82 |
38 | 181 | 190 | 10 | 13,95 | 32,28 |
39 | 191 | 201 | 11 | 14,29 | 32,69 |
40 | 202 | 213 | 12 | 14,65 | 33,07 |
41 | 214 | 225 | 12 | 15,00 | 33,07 |
42 | 226 | 238 | 13 | 15,33 | 33,42 |
43 | 239 | 252 | 14 | 15,66 | 33,74 |
44 | 253 | 267 | 15 | 16,00 | 34,04 |
45 | 268 | 284 | 17 | 16,34 | 34,58 |
46 | 285 | 302 | 18 | 16,69 | 34,83 |
47 | 303 | 321 | 19 | 17,02 | 35,06 |
48 | 322 | 342 | 21 | 17,36 | 35,50 |
49 | 343 | 364 | 22 | 17,70 | 35,70 |
50 | 365 | 388 | 24 | 18,03 | 36,08 |
51 | 389 | 414 | 26 | 18,37 | 36,43 |
52 | 415 | 442 | 28 | 18,70 | 36,75 |
53 | 443 | 472 | 30 | 19,04 | 37,05 |
54 | 473 | 504 | 32 | 19,38 | 37,33 |
55 | 505 | 538 | 34 | 19,71 | 37,59 |
56 | 539 | 575 | 37 | 20,04 | 40,96 |
57 | 576 | 614 | 39 | 20,38 | 41,19 |
58 | 615 | 656 | 42 | 20,71 | 41,51 |
59 | 657 | 701 | 45 | 21,04 | 43,81 |
60 | 702 | 750 | 49 | 21,37 | 44,18 |
61 | 751 | 803 | 53 | 21,70 | 44,52 |
62 | 804 | 860 | 57 | 22,04 | 49,83 |
63 | 861 | 922 | 62 | 22,37 | 50,20 |
64 | 923 | 989 | 67 | 22,70 | 50,54 |
65 | 990 | 1023 | 34 | 22,95 | 47,59 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 0,95 | 27,28 |
2 | 2 | 2 | 1 | 1,88 | 22,28 |
3 | 3 | 3 | 1 | 2,81 | 19,28 |
4 | 4 | 4 | 1 | 3,70 | 14,28 |
5 | 5 | 5 | 1 | 4,57 | 12,28 |
6 | 6 | 6 | 1 | 5,39 | 12,28 |
7 | 7 | 7 | 1 | 6,18 | 12,28 |
8 | 8 | 8 | 1 | 6,93 | 12,28 |
9 | 9 | 9 | 1 | 7,63 | 12,28 |
10 | 10 | 10 | 1 | 8,29 | 12,28 |
11 | 11 | 11 | 1 | 8,91 | 12,28 |
12 | 12 | 12 | 1 | 9,49 | 12,28 |
13 | 13 | 13 | 1 | 10,03 | 12,28 |
14 | 14 | 14 | 1 | 10,53 | 12,28 |
15 | 15 | 15 | 1 | 11,01 | 12,28 |
16 | 16 | 16 | 1 | 11,45 | 12,28 |
17 | 17 | 17 | 1 | 11,87 | 12,28 |
18 | 18 | 18 | 1 | 12,26 | 12,28 |
19 | 19 | 19 | 1 | 12,62 | 12,28 |
20 | 20 | 21 | 2 | 13,28 | 15,29 |
21 | 22 | 23 | 2 | 13,87 | 15,29 |
22 | 24 | 25 | 2 | 14,40 | 15,29 |
23 | 26 | 27 | 2 | 14,88 | 15,29 |
24 | 28 | 29 | 2 | 15,32 | 15,29 |
25 | 30 | 31 | 2 | 15,71 | 15,29 |
26 | 32 | 33 | 2 | 16,08 | 15,29 |
27 | 34 | 36 | 3 | 16,49 | 17,05 |
28 | 37 | 39 | 3 | 16,94 | 17,05 |
29 | 40 | 42 | 3 | 17,35 | 17,05 |
30 | 43 | 45 | 3 | 17,73 | 17,05 |
31 | 46 | 48 | 3 | 18,07 | 17,05 |
32 | 49 | 52 | 4 | 18,44 | 18,30 |
33 | 53 | 56 | 4 | 18,83 | 18,30 |
34 | 57 | 60 | 4 | 19,20 | 18,30 |
35 | 61 | 65 | 5 | 19,57 | 19,27 |
36 | 66 | 70 | 5 | 19,96 | 19,27 |
37 | 71 | 75 | 5 | 20,31 | 22,27 |
38 | 76 | 81 | 6 | 20,67 | 23,06 |
39 | 82 | 87 | 6 | 21,04 | 25,06 |
40 | 88 | 94 | 7 | 21,41 | 25,73 |
41 | 95 | 101 | 7 | 21,77 | 25,73 |
42 | 102 | 109 | 8 | 22,13 | 31,31 |
43 | 110 | 117 | 8 | 22,48 | 31,31 |
44 | 118 | 126 | 9 | 22,82 | 31,82 |
45 | 127 | 127 | 1 | 23,01 | 32,28 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 2 | 3 | 0,24 | 42,05 |
1 | 3 | 5 | 3 | 0,71 | 42,05 |
2 | 6 | 8 | 3 | 1,18 | 37,05 |
3 | 9 | 11 | 3 | 1,65 | 37,05 |
4 | 12 | 14 | 3 | 2,12 | 34,05 |
5 | 15 | 17 | 3 | 2,58 | 34,05 |
6 | 18 | 20 | 3 | 3,03 | 29,05 |
7 | 21 | 23 | 3 | 3,48 | 29,05 |
8 | 24 | 26 | 3 | 3,92 | 29,05 |
9 | 27 | 29 | 3 | 4,35 | 27,05 |
10 | 30 | 32 | 3 | 4,77 | 27,05 |
11 | 33 | 35 | 3 | 5,19 | 27,05 |
12 | 36 | 38 | 3 | 5,59 | 27,05 |
13 | 39 | 41 | 3 | 5,99 | 27,05 |
14 | 42 | 44 | 3 | 6,37 | 27,05 |
15 | 45 | 47 | 3 | 6,74 | 27,05 |
16 | 48 | 50 | 3 | 7,10 | 27,05 |
17 | 51 | 53 | 3 | 7,45 | 27,05 |
18 | 54 | 56 | 3 | 7,80 | 27,05 |
19 | 57 | 60 | 4 | 8,18 | 28,30 |
20 | 61 | 64 | 4 | 8,60 | 28,30 |
21 | 65 | 68 | 4 | 9,00 | 28,30 |
22 | 69 | 72 | 4 | 9,39 | 28,30 |
23 | 73 | 76 | 4 | 9,76 | 28,30 |
24 | 77 | 80 | 4 | 10,11 | 28,30 |
25 | 81 | 84 | 4 | 10,45 | 28,30 |
26 | 85 | 89 | 5 | 10,81 | 29,27 |
27 | 90 | 94 | 5 | 11,19 | 29,27 |
28 | 95 | 99 | 5 | 11,55 | 29,27 |
29 | 100 | 104 | 5 | 11,90 | 29,27 |
30 | 105 | 110 | 6 | 12,25 | 30,06 |
31 | 111 | 116 | 6 | 12,62 | 30,06 |
32 | 117 | 122 | 6 | 12,96 | 30,06 |
33 | 123 | 129 | 7 | 13,31 | 30,73 |
34 | 130 | 136 | 7 | 13,66 | 30,73 |
35 | 137 | 144 | 8 | 14,01 | 31,31 |
36 | 145 | 152 | 8 | 14,36 | 31,31 |
37 | 153 | 161 | 9 | 14,71 | 31,82 |
38 | 162 | 171 | 10 | 15,07 | 32,28 |
39 | 172 | 181 | 10 | 15,42 | 32,28 |
40 | 182 | 192 | 11 | 15,76 | 32,69 |
41 | 193 | 204 | 12 | 16,10 | 33,07 |
42 | 205 | 217 | 13 | 16,45 | 33,42 |
43 | 218 | 231 | 14 | 16,80 | 33,74 |
44 | 232 | 246 | 15 | 17,14 | 34,04 |
45 | 247 | 262 | 16 | 17,48 | 34,32 |
46 | 263 | 279 | 17 | 17,82 | 34,58 |
47 | 280 | 298 | 19 | 18,15 | 35,06 |
48 | 299 | 318 | 20 | 18,49 | 35,29 |
49 | 319 | 340 | 22 | 18,84 | 35,70 |
50 | 341 | 363 | 23 | 19,17 | 35,89 |
51 | 364 | 388 | 25 | 19,51 | 36,26 |
52 | 389 | 415 | 27 | 19,85 | 36,59 |
53 | 416 | 444 | 29 | 20,19 | 39,90 |
54 | 445 | 475 | 31 | 20,53 | 40,19 |
55 | 476 | 508 | 33 | 20,87 | 40,46 |
56 | 509 | 543 | 35 | 21,20 | 42,72 |
57 | 544 | 581 | 38 | 21,53 | 43,07 |
58 | 582 | 622 | 41 | 21,86 | 43,40 |
59 | 623 | 667 | 45 | 22,20 | 48,81 |
60 | 668 | 715 | 48 | 22,53 | 49,09 |
61 | 716 | 768 | 53 | 22,86 | 49,52 |
62 | 769 | 826 | 58 | 23,20 | 59,91 |
63 | 827 | 890 | 64 | 23,53 | 60,34 |
64 | 891 | 961 | 71 | 23,86 | 60,79 |
65 | 962 | 1023 | 62 | 24,00 | 65,89 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 1,26 | 22,28 |
2 | 2 | 2 | 1 | 2,50 | 19,28 |
3 | 3 | 3 | 1 | 3,70 | 14,28 |
4 | 4 | 4 | 1 | 4,85 | 12,28 |
5 | 5 | 5 | 1 | 5,92 | 12,28 |
6 | 6 | 6 | 1 | 6,93 | 12,28 |
7 | 7 | 7 | 1 | 7,85 | 12,28 |
8 | 8 | 8 | 1 | 8,70 | 12,28 |
9 | 9 | 9 | 1 | 9,49 | 12,28 |
10 | 10 | 10 | 1 | 10,20 | 12,28 |
11 | 11 | 11 | 1 | 10,85 | 12,28 |
12 | 12 | 12 | 1 | 11,45 | 12,28 |
13 | 13 | 13 | 1 | 12,00 | 12,28 |
14 | 14 | 14 | 1 | 12,50 | 12,28 |
15 | 15 | 15 | 1 | 12,96 | 12,28 |
16 | 16 | 16 | 1 | 13,39 | 12,28 |
17 | 17 | 17 | 1 | 13,78 | 12,28 |
18 | 18 | 18 | 1 | 14,15 | 12,28 |
19 | 19 | 20 | 2 | 14,80 | 15,29 |
20 | 21 | 22 | 2 | 15,38 | 15,29 |
21 | 23 | 24 | 2 | 15,89 | 15,29 |
22 | 25 | 26 | 2 | 16,36 | 15,29 |
23 | 27 | 28 | 2 | 16,77 | 15,29 |
24 | 29 | 30 | 2 | 17,15 | 15,29 |
25 | 31 | 32 | 2 | 17,50 | 15,29 |
26 | 33 | 35 | 3 | 17,90 | 17,05 |
27 | 36 | 38 | 3 | 18,34 | 17,05 |
28 | 39 | 41 | 3 | 18,74 | 17,05 |
29 | 42 | 44 | 3 | 19,11 | 17,05 |
30 | 45 | 48 | 4 | 19,50 | 18,30 |
31 | 49 | 52 | 4 | 19,92 | 18,30 |
32 | 53 | 56 | 4 | 20,30 | 21,30 |
33 | 57 | 60 | 4 | 20,65 | 21,30 |
34 | 61 | 65 | 5 | 21,02 | 24,27 |
35 | 66 | 70 | 5 | 21,40 | 24,27 |
36 | 71 | 75 | 5 | 21,75 | 24,27 |
37 | 76 | 81 | 6 | 22,10 | 30,06 |
38 | 82 | 87 | 6 | 22,45 | 30,06 |
39 | 88 | 94 | 7 | 22,80 | 30,73 |
40 | 95 | 102 | 8 | 23,16 | 41,31 |
41 | 103 | 110 | 8 | 23,51 | 41,31 |
42 | 111 | 119 | 9 | 23,85 | 41,82 |
43 | 120 | 127 | 8 | 24,00 | 60,47 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 1 | 2 | 0,22 | 40,29 |
1 | 2 | 3 | 2 | 0,65 | 40,29 |
2 | 4 | 5 | 2 | 1,09 | 35,29 |
3 | 6 | 7 | 2 | 1,52 | 35,29 |
4 | 8 | 9 | 2 | 1,95 | 35,29 |
5 | 10 | 11 | 2 | 2,37 | 32,29 |
6 | 12 | 13 | 2 | 2,79 | 32,29 |
7 | 14 | 15 | 2 | 3,21 | 27,29 |
8 | 16 | 17 | 2 | 3,62 | 27,29 |
9 | 18 | 19 | 2 | 4,02 | 25,29 |
10 | 20 | 21 | 2 | 4,41 | 25,29 |
11 | 22 | 23 | 2 | 4,80 | 25,29 |
12 | 24 | 25 | 2 | 5,18 | 25,29 |
13 | 26 | 27 | 2 | 5,55 | 25,29 |
14 | 28 | 29 | 2 | 5,92 | 25,29 |
15 | 30 | 31 | 2 | 6,27 | 25,29 |
16 | 32 | 33 | 2 | 6,62 | 25,29 |
17 | 34 | 35 | 2 | 6,95 | 25,29 |
18 | 36 | 38 | 3 | 7,36 | 27,05 |
19 | 39 | 41 | 3 | 7,83 | 27,05 |
20 | 42 | 44 | 3 | 8,28 | 27,05 |
21 | 45 | 47 | 3 | 8,71 | 27,05 |
22 | 48 | 50 | 3 | 9,12 | 27,05 |
23 | 51 | 53 | 3 | 9,52 | 27,05 |
24 | 54 | 56 | 3 | 9,89 | 27,05 |
25 | 57 | 59 | 3 | 10,25 | 27,05 |
26 | 60 | 62 | 3 | 10,59 | 27,05 |
27 | 63 | 66 | 4 | 10,97 | 28,30 |
28 | 67 | 70 | 4 | 11,38 | 28,30 |
29 | 71 | 74 | 4 | 11,77 | 28,30 |
30 | 75 | 78 | 4 | 12,13 | 28,30 |
31 | 79 | 82 | 4 | 12,48 | 28,30 |
32 | 83 | 87 | 5 | 12,84 | 29,27 |
33 | 88 | 92 | 5 | 13,22 | 29,27 |
34 | 93 | 97 | 5 | 13,57 | 29,27 |
35 | 98 | 103 | 6 | 13,93 | 30,06 |
36 | 104 | 109 | 6 | 14,30 | 30,06 |
37 | 110 | 116 | 7 | 14,67 | 30,73 |
38 | 117 | 123 | 7 | 15,03 | 30,73 |
39 | 124 | 131 | 8 | 15,40 | 31,31 |
40 | 132 | 139 | 8 | 15,76 | 31,31 |
41 | 140 | 148 | 9 | 16,11 | 31,82 |
42 | 149 | 157 | 9 | 16,45 | 31,82 |
43 | 158 | 167 | 10 | 16,79 | 32,28 |
44 | 168 | 178 | 11 | 17,13 | 32,69 |
45 | 179 | 190 | 12 | 17,48 | 33,07 |
46 | 191 | 203 | 13 | 17,83 | 33,42 |
47 | 204 | 217 | 14 | 18,18 | 33,74 |
48 | 218 | 232 | 15 | 18,52 | 34,04 |
49 | 233 | 248 | 16 | 18,87 | 34,32 |
50 | 249 | 265 | 17 | 19,21 | 34,58 |
51 | 266 | 283 | 18 | 19,54 | 34,83 |
52 | 284 | 303 | 20 | 19,88 | 35,29 |
53 | 304 | 324 | 21 | 20,22 | 38,50 |
54 | 325 | 347 | 23 | 20,56 | 38,89 |
55 | 348 | 371 | 24 | 20,90 | 39,08 |
56 | 372 | 397 | 26 | 21,24 | 41,43 |
57 | 398 | 425 | 28 | 21,57 | 41,75 |
58 | 426 | 455 | 30 | 21,91 | 42,05 |
59 | 456 | 488 | 33 | 22,24 | 47,46 |
60 | 489 | 524 | 36 | 22,58 | 47,84 |
61 | 525 | 563 | 39 | 22,91 | 48,19 |
62 | 564 | 606 | 43 | 23,25 | 58,61 |
63 | 607 | 653 | 47 | 23,58 | 59,00 |
64 | 654 | 706 | 53 | 23,91 | 59,52 |
65 | 707 | 765 | 59 | 24,00 | 69,98 |
66 | 766 | 832 | 67 | 24,00 | 70,54 |
67 | 833 | 908 | 76 | 24,00 | 71,08 |
68 | 909 | 996 | 88 | 24,00 | 71,72 |
69 | 997 | 1023 | 27 | 24,00 | 72,09 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 1,73 | 22,28 |
2 | 2 | 2 | 1 | 3,41 | 14,28 |
3 | 3 | 3 | 1 | 4,99 | 12,28 |
4 | 4 | 4 | 1 | 6,45 | 12,28 |
5 | 5 | 5 | 1 | 7,75 | 12,28 |
6 | 6 | 6 | 1 | 8,92 | 12,28 |
7 | 7 | 7 | 1 | 9,96 | 12,28 |
8 | 8 | 8 | 1 | 10,87 | 12,28 |
9 | 9 | 9 | 1 | 11,68 | 12,28 |
10 | 10 | 10 | 1 | 12,39 | 12,28 |
11 | 11 | 11 | 1 | 13,03 | 12,28 |
12 | 12 | 12 | 1 | 13,61 | 12,28 |
13 | 13 | 13 | 1 | 14,12 | 12,28 |
14 | 14 | 14 | 1 | 14,59 | 12,28 |
15 | 15 | 15 | 1 | 15,01 | 12,28 |
16 | 16 | 16 | 1 | 15,40 | 12,28 |
17 | 17 | 17 | 1 | 15,76 | 12,28 |
18 | 18 | 19 | 2 | 16,39 | 15,29 |
19 | 20 | 21 | 2 | 16,95 | 15,29 |
20 | 22 | 23 | 2 | 17,45 | 15,29 |
21 | 24 | 25 | 2 | 17,89 | 15,29 |
22 | 26 | 27 | 2 | 18,30 | 15,29 |
23 | 28 | 29 | 2 | 18,67 | 15,29 |
24 | 30 | 31 | 2 | 19,02 | 15,29 |
25 | 32 | 34 | 3 | 19,41 | 17,05 |
26 | 35 | 37 | 3 | 19,85 | 17,05 |
27 | 38 | 40 | 3 | 20,25 | 20,05 |
28 | 41 | 43 | 3 | 20,62 | 20,05 |
29 | 44 | 47 | 4 | 21,01 | 23,30 |
30 | 48 | 51 | 4 | 21,43 | 23,30 |
31 | 52 | 55 | 4 | 21,81 | 23,30 |
32 | 56 | 59 | 4 | 22,15 | 28,30 |
33 | 60 | 64 | 5 | 22,51 | 29,27 |
34 | 65 | 69 | 5 | 22,87 | 29,27 |
35 | 70 | 75 | 6 | 23,23 | 40,06 |
36 | 76 | 81 | 6 | 23,59 | 40,06 |
37 | 82 | 88 | 7 | 23,93 | 40,73 |
38 | 89 | 96 | 8 | 24,00 | 51,31 |
39 | 97 | 105 | 9 | 24,00 | 51,82 |
40 | 106 | 115 | 10 | 24,00 | 52,28 |
41 | 116 | 127 | 12 | 24,00 | 53,07 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 1 | 2 | 0,24 | 40,29 |
1 | 2 | 3 | 2 | 0,71 | 40,29 |
2 | 4 | 5 | 2 | 1,18 | 35,29 |
3 | 6 | 7 | 2 | 1,65 | 35,29 |
4 | 8 | 9 | 2 | 2,12 | 32,29 |
5 | 10 | 11 | 2 | 2,58 | 32,29 |
6 | 12 | 13 | 2 | 3,03 | 27,29 |
7 | 14 | 15 | 2 | 3,48 | 27,29 |
8 | 16 | 17 | 2 | 3,92 | 27,29 |
9 | 18 | 19 | 2 | 4,35 | 25,29 |
10 | 20 | 21 | 2 | 4,77 | 25,29 |
11 | 22 | 23 | 2 | 5,19 | 25,29 |
12 | 24 | 25 | 2 | 5,59 | 25,29 |
13 | 26 | 27 | 2 | 5,99 | 25,29 |
14 | 28 | 29 | 2 | 6,37 | 25,29 |
15 | 30 | 31 | 2 | 6,74 | 25,29 |
16 | 32 | 33 | 2 | 7,10 | 25,29 |
17 | 34 | 35 | 2 | 7,45 | 25,29 |
18 | 36 | 37 | 2 | 7,80 | 25,29 |
19 | 38 | 40 | 3 | 8,20 | 27,05 |
20 | 41 | 43 | 3 | 8,68 | 27,05 |
21 | 44 | 46 | 3 | 9,13 | 27,05 |
22 | 47 | 49 | 3 | 9,55 | 27,05 |
23 | 50 | 52 | 3 | 9,96 | 27,05 |
24 | 53 | 55 | 3 | 10,35 | 27,05 |
25 | 56 | 58 | 3 | 10,71 | 27,05 |
26 | 59 | 61 | 3 | 11,06 | 27,05 |
27 | 62 | 65 | 4 | 11,45 | 28,30 |
28 | 66 | 69 | 4 | 11,86 | 28,30 |
29 | 70 | 73 | 4 | 12,25 | 28,30 |
30 | 74 | 77 | 4 | 12,62 | 28,30 |
31 | 78 | 81 | 4 | 12,96 | 28,30 |
32 | 82 | 86 | 5 | 13,32 | 29,27 |
33 | 87 | 91 | 5 | 13,70 | 29,27 |
34 | 92 | 96 | 5 | 14,05 | 29,27 |
35 | 97 | 102 | 6 | 14,41 | 30,06 |
36 | 103 | 108 | 6 | 14,77 | 30,06 |
37 | 109 | 115 | 7 | 15,13 | 30,73 |
38 | 116 | 122 | 7 | 15,49 | 30,73 |
39 | 123 | 130 | 8 | 15,85 | 31,31 |
40 | 131 | 138 | 8 | 16,20 | 31,31 |
41 | 139 | 147 | 9 | 16,55 | 31,82 |
42 | 148 | 157 | 10 | 16,91 | 32,28 |
43 | 158 | 167 | 10 | 17,25 | 32,28 |
44 | 168 | 178 | 11 | 17,59 | 32,69 |
45 | 179 | 190 | 12 | 17,93 | 33,07 |
46 | 191 | 203 | 13 | 18,28 | 33,42 |
47 | 204 | 217 | 14 | 18,62 | 33,74 |
48 | 218 | 232 | 15 | 18,96 | 34,04 |
49 | 233 | 248 | 16 | 19,30 | 34,32 |
50 | 249 | 265 | 17 | 19,64 | 34,58 |
51 | 266 | 283 | 18 | 19,97 | 34,83 |
52 | 284 | 303 | 20 | 20,31 | 38,29 |
53 | 304 | 324 | 21 | 20,65 | 38,50 |
54 | 325 | 347 | 23 | 20,99 | 38,89 |
55 | 348 | 371 | 24 | 21,33 | 41,08 |
56 | 372 | 397 | 26 | 21,66 | 41,43 |
57 | 398 | 425 | 28 | 21,99 | 41,75 |
58 | 426 | 456 | 31 | 22,32 | 47,19 |
59 | 457 | 490 | 34 | 22,66 | 47,59 |
60 | 491 | 527 | 37 | 23,00 | 47,96 |
61 | 528 | 567 | 40 | 23,33 | 58,30 |
62 | 568 | 612 | 45 | 23,67 | 58,81 |
63 | 613 | 662 | 50 | 24,00 | 69,27 |
64 | 663 | 718 | 56 | 24,00 | 69,76 |
65 | 719 | 781 | 63 | 24,00 | 70,27 |
66 | 782 | 853 | 72 | 24,00 | 70,85 |
67 | 854 | 937 | 84 | 24,00 | 71,52 |
68 | 938 | 1023 | 86 | 24,00 | 70,20 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 1,88 | 22,28 |
2 | 2 | 2 | 1 | 3,70 | 14,28 |
3 | 3 | 3 | 1 | 5,39 | 12,28 |
4 | 4 | 4 | 1 | 6,93 | 12,28 |
5 | 5 | 5 | 1 | 8,29 | 12,28 |
6 | 6 | 6 | 1 | 9,49 | 12,28 |
7 | 7 | 7 | 1 | 10,53 | 12,28 |
8 | 8 | 8 | 1 | 11,45 | 12,28 |
9 | 9 | 9 | 1 | 12,26 | 12,28 |
10 | 10 | 10 | 1 | 12,96 | 12,28 |
11 | 11 | 11 | 1 | 13,59 | 12,28 |
12 | 12 | 12 | 1 | 14,15 | 12,28 |
13 | 13 | 13 | 1 | 14,65 | 12,28 |
14 | 14 | 14 | 1 | 15,11 | 12,28 |
15 | 15 | 15 | 1 | 15,52 | 12,28 |
16 | 16 | 16 | 1 | 15,90 | 12,28 |
17 | 17 | 18 | 2 | 16,56 | 15,29 |
18 | 19 | 20 | 2 | 17,15 | 15,29 |
19 | 21 | 22 | 2 | 17,66 | 15,29 |
20 | 23 | 24 | 2 | 18,13 | 15,29 |
21 | 25 | 26 | 2 | 18,54 | 15,29 |
22 | 27 | 28 | 2 | 18,93 | 15,29 |
23 | 29 | 30 | 2 | 19,28 | 15,29 |
24 | 31 | 33 | 3 | 19,69 | 17,05 |
25 | 34 | 36 | 3 | 20,14 | 20,05 |
26 | 37 | 39 | 3 | 20,54 | 20,05 |
27 | 40 | 42 | 3 | 20,92 | 20,05 |
28 | 43 | 45 | 3 | 21,27 | 22,05 |
29 | 46 | 49 | 4 | 21,64 | 23,30 |
30 | 50 | 53 | 4 | 22,03 | 28,30 |
31 | 54 | 57 | 4 | 22,39 | 28,30 |
32 | 58 | 62 | 5 | 22,76 | 29,27 |
33 | 63 | 67 | 5 | 23,13 | 39,27 |
34 | 68 | 73 | 6 | 23,49 | 40,06 |
35 | 74 | 79 | 6 | 23,85 | 40,06 |
36 | 80 | 86 | 7 | 24,00 | 50,73 |
37 | 87 | 94 | 8 | 24,00 | 51,31 |
38 | 95 | 103 | 9 | 24,00 | 51,82 |
39 | 104 | 113 | 10 | 24,00 | 52,28 |
40 | 114 | 125 | 12 | 24,00 | 53,07 |
41 | 126 | 127 | 1 | 24,00 | 53,07 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 1 | 2 | 0,32 | 40,29 |
1 | 2 | 3 | 2 | 0,95 | 40,29 |
2 | 4 | 5 | 2 | 1,57 | 35,29 |
3 | 6 | 7 | 2 | 2,19 | 32,29 |
4 | 8 | 9 | 2 | 2,80 | 32,29 |
5 | 10 | 11 | 2 | 3,40 | 27,29 |
6 | 12 | 13 | 2 | 3,99 | 27,29 |
7 | 14 | 15 | 2 | 4,56 | 25,29 |
8 | 16 | 17 | 2 | 5,12 | 25,29 |
9 | 18 | 19 | 2 | 5,66 | 25,29 |
10 | 20 | 21 | 2 | 6,18 | 25,29 |
11 | 22 | 23 | 2 | 6,68 | 25,29 |
12 | 24 | 25 | 2 | 7,16 | 25,29 |
13 | 26 | 27 | 2 | 7,63 | 25,29 |
14 | 28 | 29 | 2 | 8,07 | 25,29 |
15 | 30 | 31 | 2 | 8,50 | 25,29 |
16 | 32 | 33 | 2 | 8,90 | 25,29 |
17 | 34 | 35 | 2 | 9,29 | 25,29 |
18 | 36 | 37 | 2 | 9,67 | 25,29 |
19 | 38 | 39 | 2 | 10,03 | 25,29 |
20 | 40 | 41 | 2 | 10,37 | 25,29 |
21 | 42 | 44 | 3 | 10,77 | 27,05 |
22 | 45 | 47 | 3 | 11,23 | 27,05 |
23 | 48 | 50 | 3 | 11,66 | 27,05 |
24 | 51 | 53 | 3 | 12,06 | 27,05 |
25 | 54 | 56 | 3 | 12,44 | 27,05 |
26 | 57 | 59 | 3 | 12,79 | 27,05 |
27 | 60 | 63 | 4 | 13,18 | 28,30 |
28 | 64 | 67 | 4 | 13,59 | 28,30 |
29 | 68 | 71 | 4 | 13,97 | 28,30 |
30 | 72 | 75 | 4 | 14,32 | 28,30 |
31 | 76 | 80 | 5 | 14,69 | 29,27 |
32 | 81 | 85 | 5 | 15,07 | 29,27 |
33 | 86 | 90 | 5 | 15,42 | 29,27 |
34 | 91 | 96 | 6 | 15,77 | 30,06 |
35 | 97 | 102 | 6 | 16,13 | 30,06 |
36 | 103 | 109 | 7 | 16,49 | 30,73 |
37 | 110 | 116 | 7 | 16,85 | 30,73 |
38 | 117 | 124 | 8 | 17,20 | 31,31 |
39 | 125 | 132 | 8 | 17,54 | 31,31 |
40 | 133 | 141 | 9 | 17,88 | 31,82 |
41 | 142 | 151 | 10 | 18,23 | 32,28 |
42 | 152 | 161 | 10 | 18,58 | 32,28 |
43 | 162 | 172 | 11 | 18,91 | 32,69 |
44 | 173 | 184 | 12 | 19,25 | 33,07 |
45 | 185 | 197 | 13 | 19,60 | 33,42 |
46 | 198 | 211 | 14 | 19,94 | 33,74 |
47 | 212 | 226 | 15 | 20,29 | 37,04 |
48 | 227 | 242 | 16 | 20,63 | 37,32 |
49 | 243 | 259 | 17 | 20,97 | 37,58 |
50 | 260 | 277 | 18 | 21,31 | 39,83 |
51 | 278 | 297 | 20 | 21,64 | 40,29 |
52 | 298 | 318 | 21 | 21,98 | 40,50 |
53 | 319 | 341 | 23 | 22,31 | 45,89 |
54 | 342 | 366 | 25 | 22,65 | 46,26 |
55 | 367 | 394 | 28 | 22,98 | 46,75 |
56 | 395 | 424 | 30 | 23,32 | 57,05 |
57 | 425 | 458 | 34 | 23,66 | 57,59 |
58 | 459 | 495 | 37 | 23,99 | 57,96 |
59 | 496 | 537 | 42 | 24,00 | 68,51 |
60 | 538 | 584 | 47 | 24,00 | 69,00 |
61 | 585 | 638 | 54 | 24,00 | 69,60 |
62 | 639 | 701 | 63 | 24,00 | 70,27 |
63 | 702 | 774 | 73 | 24,00 | 70,91 |
64 | 775 | 861 | 87 | 24,00 | 71,67 |
65 | 862 | 966 | 105 | 24,00 | 72,49 |
66 | 967 | 1023 | 57 | 24,00 | 69,83 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 2,50 | 19,28 |
2 | 2 | 2 | 1 | 4,85 | 12,28 |
3 | 3 | 3 | 1 | 6,93 | 12,28 |
4 | 4 | 4 | 1 | 8,70 | 12,28 |
5 | 5 | 5 | 1 | 10,20 | 12,28 |
6 | 6 | 6 | 1 | 11,45 | 12,28 |
7 | 7 | 7 | 1 | 12,50 | 12,28 |
8 | 8 | 8 | 1 | 13,39 | 12,28 |
9 | 9 | 9 | 1 | 14,15 | 12,28 |
10 | 10 | 10 | 1 | 14,81 | 12,28 |
11 | 11 | 11 | 1 | 15,39 | 12,28 |
12 | 12 | 12 | 1 | 15,90 | 12,28 |
13 | 13 | 13 | 1 | 16,36 | 12,28 |
14 | 14 | 14 | 1 | 16,78 | 12,28 |
15 | 15 | 15 | 1 | 17,16 | 12,28 |
16 | 16 | 17 | 2 | 17,82 | 15,29 |
17 | 18 | 19 | 2 | 18,40 | 15,29 |
18 | 20 | 21 | 2 | 18,92 | 15,29 |
19 | 22 | 23 | 2 | 19,39 | 15,29 |
20 | 24 | 25 | 2 | 19,82 | 15,29 |
21 | 26 | 27 | 2 | 20,21 | 18,29 |
22 | 28 | 29 | 2 | 20,57 | 18,29 |
23 | 30 | 32 | 3 | 20,98 | 20,05 |
24 | 33 | 35 | 3 | 21,43 | 22,05 |
25 | 36 | 38 | 3 | 21,84 | 22,05 |
26 | 39 | 41 | 3 | 22,22 | 27,05 |
27 | 42 | 45 | 4 | 22,61 | 28,30 |
28 | 46 | 49 | 4 | 23,02 | 38,30 |
29 | 50 | 53 | 4 | 23,39 | 38,30 |
30 | 54 | 58 | 5 | 23,75 | 39,27 |
31 | 59 | 63 | 5 | 24,00 | 49,27 |
32 | 64 | 69 | 6 | 24,00 | 50,06 |
33 | 70 | 76 | 7 | 24,00 | 50,73 |
34 | 77 | 84 | 8 | 24,00 | 51,31 |
35 | 85 | 93 | 9 | 24,00 | 51,82 |
36 | 94 | 104 | 11 | 24,00 | 52,69 |
37 | 105 | 117 | 13 | 24,00 | 53,42 |
38 | 118 | 127 | 10 | 24,00 | 52,28 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 37,28 |
1 | 1 | 1 | 1 | 0,44 | 37,28 |
2 | 2 | 2 | 1 | 0,87 | 37,28 |
3 | 3 | 3 | 1 | 1,30 | 32,28 |
4 | 4 | 4 | 1 | 1,73 | 32,28 |
5 | 5 | 5 | 1 | 2,16 | 29,28 |
6 | 6 | 6 | 1 | 2,58 | 29,28 |
7 | 7 | 7 | 1 | 3,00 | 24,28 |
8 | 8 | 8 | 1 | 3,41 | 24,28 |
9 | 9 | 9 | 1 | 3,82 | 24,28 |
10 | 10 | 10 | 1 | 4,22 | 22,28 |
11 | 11 | 11 | 1 | 4,61 | 22,28 |
12 | 12 | 12 | 1 | 4,99 | 22,28 |
13 | 13 | 13 | 1 | 5,37 | 22,28 |
14 | 14 | 14 | 1 | 5,74 | 22,28 |
15 | 15 | 15 | 1 | 6,10 | 22,28 |
16 | 16 | 16 | 1 | 6,45 | 22,28 |
17 | 17 | 17 | 1 | 6,79 | 22,28 |
18 | 18 | 19 | 2 | 7,44 | 25,29 |
19 | 20 | 21 | 2 | 8,05 | 25,29 |
20 | 22 | 23 | 2 | 8,64 | 25,29 |
21 | 24 | 25 | 2 | 9,19 | 25,29 |
22 | 26 | 27 | 2 | 9,70 | 25,29 |
23 | 28 | 29 | 2 | 10,19 | 25,29 |
24 | 30 | 31 | 2 | 10,65 | 25,29 |
25 | 32 | 33 | 2 | 11,08 | 25,29 |
26 | 34 | 35 | 2 | 11,48 | 25,29 |
27 | 36 | 37 | 2 | 11,86 | 25,29 |
28 | 38 | 39 | 2 | 12,22 | 25,29 |
29 | 40 | 42 | 3 | 12,64 | 27,05 |
30 | 43 | 45 | 3 | 13,10 | 27,05 |
31 | 46 | 48 | 3 | 13,53 | 27,05 |
32 | 49 | 51 | 3 | 13,93 | 27,05 |
33 | 52 | 54 | 3 | 14,30 | 27,05 |
34 | 55 | 58 | 4 | 14,69 | 28,30 |
35 | 59 | 62 | 4 | 15,11 | 28,30 |
36 | 63 | 66 | 4 | 15,49 | 28,30 |
37 | 67 | 70 | 4 | 15,84 | 28,30 |
38 | 71 | 75 | 5 | 16,21 | 29,27 |
39 | 76 | 80 | 5 | 16,58 | 29,27 |
40 | 81 | 85 | 5 | 16,92 | 29,27 |
41 | 86 | 91 | 6 | 17,27 | 30,06 |
42 | 92 | 97 | 6 | 17,62 | 30,06 |
43 | 98 | 104 | 7 | 17,97 | 30,73 |
44 | 105 | 111 | 7 | 18,32 | 30,73 |
45 | 112 | 119 | 8 | 18,67 | 31,31 |
46 | 120 | 127 | 8 | 19,02 | 31,31 |
47 | 128 | 136 | 9 | 19,35 | 31,82 |
48 | 137 | 146 | 10 | 19,71 | 32,28 |
49 | 147 | 156 | 10 | 20,05 | 35,28 |
50 | 157 | 167 | 11 | 20,39 | 35,69 |
51 | 168 | 179 | 12 | 20,73 | 36,07 |
52 | 180 | 192 | 13 | 21,08 | 38,42 |
53 | 193 | 206 | 14 | 21,43 | 38,74 |
54 | 207 | 221 | 15 | 21,77 | 39,04 |
55 | 222 | 237 | 16 | 22,11 | 44,32 |
56 | 238 | 255 | 18 | 22,45 | 44,83 |
57 | 256 | 274 | 19 | 22,80 | 45,06 |
58 | 275 | 295 | 21 | 23,13 | 55,50 |
59 | 296 | 318 | 23 | 23,47 | 55,89 |
60 | 319 | 344 | 26 | 23,81 | 56,43 |
61 | 345 | 373 | 29 | 24,00 | 66,90 |
62 | 374 | 405 | 32 | 24,00 | 67,33 |
63 | 406 | 442 | 37 | 24,00 | 67,96 |
64 | 443 | 484 | 42 | 24,00 | 68,51 |
65 | 485 | 533 | 49 | 24,00 | 69,18 |
66 | 534 | 591 | 58 | 24,00 | 69,91 |
67 | 592 | 660 | 69 | 24,00 | 70,66 |
68 | 661 | 745 | 85 | 24,00 | 71,57 |
69 | 746 | 851 | 106 | 24,00 | 72,53 |
70 | 852 | 988 | 137 | 24,00 | 73,64 |
71 | 989 | 1023 | 35 | 24,00 | 67,72 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 3,41 | 14,28 |
2 | 2 | 2 | 1 | 6,45 | 12,28 |
3 | 3 | 3 | 1 | 8,92 | 12,28 |
4 | 4 | 4 | 1 | 10,87 | 12,28 |
5 | 5 | 5 | 1 | 12,39 | 12,28 |
6 | 6 | 6 | 1 | 13,61 | 12,28 |
7 | 7 | 7 | 1 | 14,59 | 12,28 |
8 | 8 | 8 | 1 | 15,40 | 12,28 |
9 | 9 | 9 | 1 | 16,09 | 12,28 |
10 | 10 | 10 | 1 | 16,69 | 12,28 |
11 | 11 | 11 | 1 | 17,21 | 12,28 |
12 | 12 | 12 | 1 | 17,68 | 12,28 |
13 | 13 | 13 | 1 | 18,11 | 12,28 |
14 | 14 | 14 | 1 | 18,49 | 12,28 |
15 | 15 | 15 | 1 | 18,85 | 12,28 |
16 | 16 | 17 | 2 | 19,48 | 15,29 |
17 | 18 | 19 | 2 | 20,05 | 18,29 |
18 | 20 | 21 | 2 | 20,55 | 18,29 |
19 | 22 | 23 | 2 | 21,01 | 20,29 |
20 | 24 | 25 | 2 | 21,43 | 20,29 |
21 | 26 | 27 | 2 | 21,81 | 20,29 |
22 | 28 | 29 | 2 | 22,15 | 25,29 |
23 | 30 | 32 | 3 | 22,55 | 27,05 |
24 | 33 | 35 | 3 | 22,98 | 27,05 |
25 | 36 | 38 | 3 | 23,36 | 37,05 |
26 | 39 | 42 | 4 | 23,75 | 38,30 |
27 | 43 | 46 | 4 | 24,00 | 48,30 |
28 | 47 | 51 | 5 | 24,00 | 49,27 |
29 | 52 | 56 | 5 | 24,00 | 49,27 |
30 | 57 | 62 | 6 | 24,00 | 50,06 |
31 | 63 | 69 | 7 | 24,00 | 50,73 |
32 | 70 | 77 | 8 | 24,00 | 51,31 |
33 | 78 | 87 | 10 | 24,00 | 52,28 |
34 | 88 | 99 | 12 | 24,00 | 53,07 |
35 | 100 | 115 | 16 | 24,00 | 54,32 |
36 | 116 | 127 | 12 | 24,00 | 53,07 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 37,28 |
1 | 1 | 1 | 1 | 0,47 | 37,28 |
2 | 2 | 2 | 1 | 0,95 | 37,28 |
3 | 3 | 3 | 1 | 1,42 | 32,28 |
4 | 4 | 4 | 1 | 1,88 | 32,28 |
5 | 5 | 5 | 1 | 2,35 | 29,28 |
6 | 6 | 6 | 1 | 2,81 | 29,28 |
7 | 7 | 7 | 1 | 3,26 | 24,28 |
8 | 8 | 8 | 1 | 3,70 | 24,28 |
9 | 9 | 9 | 1 | 4,14 | 22,28 |
10 | 10 | 10 | 1 | 4,57 | 22,28 |
11 | 11 | 11 | 1 | 4,98 | 22,28 |
12 | 12 | 12 | 1 | 5,39 | 22,28 |
13 | 13 | 13 | 1 | 5,79 | 22,28 |
14 | 14 | 14 | 1 | 6,18 | 22,28 |
15 | 15 | 15 | 1 | 6,56 | 22,28 |
16 | 16 | 16 | 1 | 6,93 | 22,28 |
17 | 17 | 17 | 1 | 7,28 | 22,28 |
18 | 18 | 18 | 1 | 7,63 | 22,28 |
19 | 19 | 20 | 2 | 8,28 | 25,29 |
20 | 21 | 22 | 2 | 8,90 | 25,29 |
21 | 23 | 24 | 2 | 9,48 | 25,29 |
22 | 25 | 26 | 2 | 10,02 | 25,29 |
23 | 27 | 28 | 2 | 10,53 | 25,29 |
24 | 29 | 30 | 2 | 11,00 | 25,29 |
25 | 31 | 32 | 2 | 11,45 | 25,29 |
26 | 33 | 34 | 2 | 11,86 | 25,29 |
27 | 35 | 36 | 2 | 12,25 | 25,29 |
28 | 37 | 38 | 2 | 12,62 | 25,29 |
29 | 39 | 40 | 2 | 12,96 | 25,29 |
30 | 41 | 43 | 3 | 13,36 | 27,05 |
31 | 44 | 46 | 3 | 13,80 | 27,05 |
32 | 47 | 49 | 3 | 14,21 | 27,05 |
33 | 50 | 52 | 3 | 14,59 | 27,05 |
34 | 53 | 55 | 3 | 14,94 | 27,05 |
35 | 56 | 59 | 4 | 15,32 | 28,30 |
36 | 60 | 63 | 4 | 15,71 | 28,30 |
37 | 64 | 67 | 4 | 16,08 | 28,30 |
38 | 68 | 72 | 5 | 16,45 | 29,27 |
39 | 73 | 77 | 5 | 16,83 | 29,27 |
40 | 78 | 82 | 5 | 17,19 | 29,27 |
41 | 83 | 88 | 6 | 17,54 | 30,06 |
42 | 89 | 94 | 6 | 17,90 | 30,06 |
43 | 95 | 101 | 7 | 18,26 | 30,73 |
44 | 102 | 108 | 7 | 18,62 | 30,73 |
45 | 109 | 116 | 8 | 18,97 | 31,31 |
46 | 117 | 124 | 8 | 19,32 | 31,31 |
47 | 125 | 133 | 9 | 19,67 | 31,82 |
48 | 134 | 143 | 10 | 20,03 | 35,28 |
49 | 144 | 153 | 10 | 20,38 | 35,28 |
50 | 154 | 164 | 11 | 20,72 | 35,69 |
51 | 165 | 176 | 12 | 21,07 | 38,07 |
52 | 177 | 189 | 13 | 21,42 | 38,42 |
53 | 190 | 203 | 14 | 21,77 | 38,74 |
54 | 204 | 218 | 15 | 22,12 | 44,04 |
55 | 219 | 234 | 16 | 22,46 | 44,32 |
56 | 235 | 252 | 18 | 22,80 | 44,83 |
57 | 253 | 271 | 19 | 23,14 | 55,06 |
58 | 272 | 292 | 21 | 23,47 | 55,50 |
59 | 293 | 316 | 24 | 23,81 | 56,08 |
60 | 317 | 342 | 26 | 24,00 | 66,43 |
61 | 343 | 372 | 30 | 24,00 | 67,05 |
62 | 373 | 406 | 34 | 24,00 | 67,59 |
63 | 407 | 445 | 39 | 24,00 | 68,19 |
64 | 446 | 490 | 45 | 24,00 | 68,81 |
65 | 491 | 543 | 53 | 24,00 | 69,52 |
66 | 544 | 607 | 64 | 24,00 | 70,34 |
67 | 608 | 685 | 78 | 24,00 | 71,20 |
68 | 686 | 783 | 98 | 24,00 | 72,19 |
69 | 784 | 910 | 127 | 24,00 | 73,31 |
70 | 911 | 1023 | 113 | 24,00 | 72,81 |
Индекс | w_low | w_high | Ширина | bval | qsthr |
0 | 0 | 0 | 1 | 0,00 | 27,28 |
1 | 1 | 1 | 1 | 3,70 | 14,28 |
2 | 2 | 2 | 1 | 6,93 | 12,28 |
3 | 3 | 3 | 1 | 9,49 | 12,28 |
4 | 4 | 4 | 1 | 11,45 | 12,28 |
5 | 5 | 5 | 1 | 12,96 | 12,28 |
6 | 6 | 6 | 1 | 14,15 | 12,28 |
7 | 7 | 7 | 1 | 15,11 | 12,28 |
8 | 8 | 8 | 1 | 15,90 | 12,28 |
9 | 9 | 9 | 1 | 16,57 | 12,28 |
10 | 10 | 10 | 1 | 17,16 | 12,28 |
11 | 11 | 11 | 1 | 17,67 | 12,28 |
12 | 12 | 12 | 1 | 18,13 | 12,28 |
13 | 13 | 13 | 1 | 18,55 | 12,28 |
14 | 14 | 14 | 1 | 18,93 | 12,28 |
15 | 15 | 16 | 2 | 19,60 | 15,29 |
16 | 17 | 18 | 2 | 20,20 | 18,29 |
17 | 19 | 20 | 2 | 20,73 | 18,29 |
18 | 21 | 22 | 2 | 21,21 | 20,29 |
19 | 23 | 24 | 2 | 21,64 | 20,29 |
20 | 25 | 26 | 2 | 22,03 | 25,29 |
21 | 27 | 28 | 2 | 22,39 | 25,29 |
22 | 29 | 31 | 3 | 22,79 | 27,05 |
23 | 32 | 34 | 3 | 23,23 | 37,05 |
24 | 35 | 37 | 3 | 23,62 | 37,05 |
25 | 38 | 41 | 4 | 24,00 | 48,30 |
26 | 42 | 45 | 4 | 24,00 | 48,30 |
27 | 46 | 50 | 5 | 24,00 | 49,27 |
28 | 51 | 55 | 5 | 24,00 | 49,27 |
29 | 56 | 61 | 6 | 24,00 | 50,06 |
30 | 62 | 68 | 7 | 24,00 | 50,73 |
31 | 69 | 77 | 9 | 24,00 | 51,82 |
32 | 78 | 88 | 11 | 24,00 | 52,69 |
33 | 89 | 102 | 14 | 24,00 | 53,74 |
34 | 103 | 120 | 18 | 24,00 | 54,83 |
35 | 121 | 127 | 7 | 24,00 | 50,73 |
В.2 Управление усилением
В.2.1 Процесс кодирования
Инструмент управления усилением состоит из PQF (полифазного квадратурного фильтра), детекторов усиления и модификаторов усиления. Этот инструмент получает входные сигналы во времени и window_sequence, и затем выводит gain_control_data и сигнал с управляемым усилением, длина которого равна длине окна МДКП. Блок-схема для инструмента управления усилением показана на рисунке В.2.
Из-за характеристик банка PQF, порядок коэффициентов МДКП в каждой четной субполосе PQF должен быть реверсирован. Это делается путем реверсирования порядка следования спектральных коэффициентов МДКП, т.е. переменой мест более высоких частотных коэффициентов МДКП с более низкими.
Если инструмент управления усилением используется, конфигурация банка фильтров изменяется следующим образом. В случае EIGHT_SHORT_SEQUENCE window_sequence, число коэффициентов для МДКП 32, вместо 128, и восемь МДКП. В случае других значений window_sequence число коэффициентов для МДКП 256, вместо 1024, и выполняется одно МДКП. Во всех случаях инструмент банка фильтров получает в общей сложности 2048 значений сигнала с управляемым усилением на фрейм из-за перекрытия входных отсчетов.
В.2.1.1 PQF
Входной сигнал делится в PQF на четыре равных по ширине полосы. Коэффициенты в каждой полосе PQF определяются следующим образом:
где:
В.2.1.2 Детектор усиления
Детекторы усиления производят данные управления усилением, которые удовлетворяют синтаксису потока битов. Эта информация состоит из количества изменений усиления, индекса позиций изменения усиления и индекса уровня изменения усиления. Выходные данные управления усилением применяются к предыдущему входному сигналу во времени. Это означает, что у детектора усиления есть задержка на один фрейм.
Обнаружение точки изменения усиления выполняется во второй половине окна МДКП и в неперекрытой области (LONG_START_SEQUENCE и LONG_STOP_SEQUENCE). Таким образом, число областей равно одной для ONLY_LONG_SEQUENCE, двум для LONG_START_SEQUENCE и LONG_STOP_SEQUNCE и восьми для EIGHT_SHORT_SEQUENCE.
В.2.1.3 Модификатор усиления
Модификатор усиления для каждой полосы PQF управляет усилением каждой полосы сигнала. Дополнительный процесс управления усилением в декодере уменьшает пред-эхо и восстанавливает исходный сигнал. Оконная функция для управления усилением, функция модификации усиления (GMF), которая определяется в процессе декодирования, получается из значений усилений и позиций изменения усиления. Управляемые сигналы усиления получаются путем применения GMF к соответствующим полосным сигналам.
В.2.2 Схемы
Рисунок В.2 - Блок-схема инструмента управления усилением для кодера
В.3 Банк фильтров и переключение блоков
Основным компонентом в процессе аудиокодирования является преобразование сигналов во времени в частотно-временное представление. Эту функцию выполняет модифицированное дискретное косинусное преобразование (МДКП).
В.3.1 Процесс кодирования
В банк фильтров кодера поступает соответствующий блок временных отсчетов, где они модулируются соответствующей оконной функцией, и выполняется МДКП. Каждый блок входных отсчетов перекрывается на 50% с предыдущим и следующим блоками. Размер входного блока для преобразования N может быть установлен равным 2048 или 256 отсчетам. Так как оконная функция оказывает существенный эффект на частотную характеристику банка фильтров, последний должен быть разработан таким образом, чтобы поддерживать изменение формы окна для лучшего адаптирования к свойствам входного сигнала. Форма окна меняется одновременно в кодере и декодере, чтобы позволить банку фильтров эффективно разделять входные спектральные компоненты для разнообразных входных сигналов.
В.3.1.1 Работа с окнами и переключение блоков
Адаптация разрешающей способности банка фильтров по частоте и по времени к характеристикам входного сигнала выполняется путем переключения между длинами преобразований, равными 2048 и 256 отсчетам. Процесс переключения описан в 13.3.1.
Решение о выборе формы окна принимается кодером для каждого фрейма. Выбранная форма окна применима только ко второй половине окна, так как первая половина ограничивается соответствующей формой окна предыдущего фрейма. На рисунке В.3 показана последовательность блоков для перехода (D-E-F) к и от фрейма, использующего синусное окно. Селектор формы окна обычно производит окна большей длины, чем показано на рисунке.
С половинами окон, описанными в 13.3.2, могут применяться все window_sequence.
В.3.1.2 МДКП
где:
B.3.2 Схемы
Рисунок В.3 - Пример процесса адаптации формы окна
Рисунок В.4 - Пример переключения блоков при наличии резких изменений в сигнале
В.4 Предсказание
В.4.1 Описание инструмента
Так как любой предсказатель идентичен для кодера и декодера, все описания и определения, данные для декодера в разделе 13, также допустимы здесь.
Предсказание используется для улучшенного устранения избыточности и особенно эффективно в случае относительно стационарных участков сигнала, которые принадлежат к наиболее требовательным частям с точки зрения необходимой скорости передачи. Предсказание может быть применено к каждому каналу при использовании внутриканального (или моно) предсказателя, который использует автокорреляцию между спектральными компонентами последовательных фреймов. Поскольку window_sequence типа EIGHT_SHORT_SEQUENCE указывает на изменения в сигнале, т.е. нестационарные свойства сигнала, то предсказание используется только, если window_sequence имеет тип ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE или LONG_STOP_SEQUENCE.
Для каждого канала предсказание применяется к спектральным компонентам, полученным в результате прохождения временных отсчетов через банк фильтров. Каждому спектральному компоненту, вплоть до PRED_SFB_MAX, соответствует один предсказатель, что в результате приводит к банку предсказателей, в котором каждый предсказатель использует автокорреляцию между спектральными значениями последовательных фреймов.
Общая структура кодирования с использованием банка фильтров с высокой спектральной разрешающей способностью подразумевает использование обратных адаптивных прогнозирующих устройств для достижения высокой эффективности кодирования. В этом случае коэффициенты прогнозирующего устройства вычисляются по предыдущим квантованным значениям спектральных компонентов как в кодере, так и в декодере, и никакая дополнительная служебная информация не требуется для передачи коэффициентов предсказания, как это требовалось бы для прямых адаптивных предсказаний. Обратно-адаптивное предсказание со структурой решетки второго порядка используется для каждого спектрального компонента так, чтобы каждый предсказатель работал со спектральными компонентами двух предыдущих фреймов. Параметры предсказателя адаптируются к текущей сигнальной статистике фрейма, используя алгоритм адаптации на основе LMS. Если предсказание активно, на квантователь поступает ошибка предсказания вместо исходных спектральных компонентов, что приводит к увеличению эффективности кодирования.
В.4.2 Процесс кодирования
В.4.2.1 Управление предсказателем
Чтобы гарантировать использование предсказания для увеличения эффективности кодирования, требуется соответствующее управление предсказателями, и небольшое количество управляющей информации для предсказания должно быть передано к декодеру. Для управления предсказанием предсказатели группируются в полосы масштабных коэффициентов.
Следующее описание допустимо для любого одного single_channel_element () или одного channel_pair_element () и должно быть применено к каждому такому элементу. Так как предсказание используется, только если window_sequence имеет типы ONLY_LONG_SEQUENCE, LONG_START_SEQUENCE или LONG_STOP_SEQUENCE для канала, связанного с single_channel_element () или для обоих каналов, связанных с channel_pair_element (), следующее применяется только в этих случаях.
Управляющая информация предсказания для каждого фрейма, которая должна быть передана как служебная, определяется в двух шагах. Во-первых, для каждой полосы масштабных коэффициентов определяется, приводит ли предсказание к улучшению эффективности кодирования и если да, бит prediction_used для соответствующей полосы масштабных коэффициентов устанавливается в ’1’. После того как это было сделано для всех полос масштабных коэффициентов вплоть до PRED_SFB_MAX, определяется, компенсирует ли общее усиление кодирования за счет предсказания в этом фрейме, по крайней мере, дополнительные биты служебной информации, необходимые для предсказания. Если да, бит predictor_data_present устанавливается в ’1’, и полная служебная информация, включая необходимые данные для сброса предсказания (см. ниже), должна быть передана, и ошибка предсказания подается в квантователь. В противном случае бит predictor_data_present устанавливается в ’0’, все биты prediction_used сбрасываются и не передаются. В этом случае на вход квантователя поступают спектральные компоненты. На рисунке В.5 показана блок-схема модуля предсказания для одной полосы масштабных коэффициентов. Как описано выше, управление предсказанием сначала работает для всех предсказателей одной полосы масштабных коэффициентов, а затем, согласно второму шагу, для всех полос масштабных коэффициентов.
В случае single_channel_element () или channel_pair_element () с common_window = 0 управляющая информация вычисляется и является допустимой для банка(ов) предсказателей канала(ов), связанных с тем элементом. В случае channel_pair_element () с common_window = 1 управляющая информация вычисляется с учетом обоих каналов, связанных с этим элементом. В этом случае управляющая информация допустима для обоих банков предсказателей двух каналов.
В.4.2.2 Восстановление квантованного спектрального компонента
Так как восстановленное значение квантованного спектрального компонента требуется в качестве входного сигнала для предсказания, оно должно быть вычислено в кодере (см. также рисунки 8 и В.5). В зависимости от значения бита prediction_used восстановленное значение является либо квантованным спектральным компонентом, либо квантованной ошибкой предсказания. Поэтому следующие шаги необходимы:
Если бит не установлен (0), то квантованное значение спектрального компонента идентично значению, восстановленному непосредственно из данных, которые будут переданы.
В.4.3 Схемы
Рисунок В.5 - Блок-схема модуля предсказания для одной полосы масштабных коэффициентов
В.5 Временное формирование шума (TNS)
Временное формирование шума используется для управления временной формой шумов квантования в пределах каждого окна преобразования. Это достигается в процессе фильтрации частей спектральных данных каждого канала.
Кодирование выполняется на основе окна. Следующие шаги выполняются, чтобы применить инструмент временного формирования шума к одному окну спектральных данных:
- Выбирается целевой частотный диапазон для инструмента TNS. Подходящий выбор состоит в том, чтобы покрыть частотный диапазон от 1,5 кГц до высшей полосы масштабных коэффициентов одним фильтром. Этот параметр (TNS_MAX_BANDS) зависит от профиля и частоты дискретизации, как обозначено в нормативной части.
- Далее кодирование с линейным предсказанием (LPC) выполняется для спектральных коэффициентов МДКП, соответствующих выбранному целевому частотному диапазону. Для лучшей устойчивости коэффициенты, соответствующие частотам ниже 2,5 кГц, могут быть исключены из этого процесса. Стандартные процедуры LPC могут использоваться для вычисления LPC, например алгоритм Левинсона-Дербина. Вычисление выполняется для максимального разрешенного порядка фильтра формирования шума (TNS_MAX_ORDER).
где arcsin () соответствует функции арксинус.
инверсным уравнением
По умолчанию используется восходящее направление фильтрации.
Наконец, передается следующая служебная информация для временного формирования шума (таблица В.25).
Таблица В.25 - Служебная информация TNS
Элемент данных | Переменная или значение |
n_filt | 1 |
coef_res | coef_res-3 |
coef_compress | 0 |
length | Число обработанных полос масштабных коэффициентов |
direction | 0 (вверх) |
order | Порядок фильтра формирования шума |
coef | index |
Использование поля coef_compress позволяет сохранять 1 бит на каждый переданный коэффициент отражения, если ни один из коэффициентов отражения не использует больше половины их полного диапазона. В частности, если два старших значащих бита каждого квантованного коэффициента отражения равны ’00’ или ’11’, coeff_compress может быть установлен в ’1’, и размер переданных квантованных коэффициентов отражения будет уменьшен на единицу.
В.6 Объединенное кодирование
В.6.1M/S Stereo
Решение о кодировании левых и правых коэффициентов как левый + правый (L/R) или как середина/сторона (M/S) принимается в отдельности для спектральных коэффициентов каждой из частотных полос текущего блока:
4 - Определяется число битов, требуемых для кодирования M/S, и число битов, требуемых для кодирования L/R.
5 - Метод, требующий наименьшее количество битов, используется в каждой полосе кодирования, и соответственно устанавливается стерео маска.
Используются следующие переменные:
Mthr, Sthr, Rthr, Lthr | необработанные пороги ( из шага 10 психоакустической модели) |
Mengy, Sengy, Rengy, Sengy | энергия распространения порога маскирования ( из шага 6 психоакустической модели) |
Mfthr, Sfthr, Rfthr, Lfthr | окончательные (выходные) пороги ( из шага 11 психоакустической модели) |
bmax (b) | защитное отношение BMLD, вычисляемое как |
Используется следующий процесс управления звуковым образом:
t = Mthr/Sthr
if (t> 1)
t = 1/t
Rfthr = max (Rthr*t, min (Rthr, bmax*Rengy)
Lfthr = max (Lthr*t, min (Lthr, bmax) *Lengy) t = min (Lthr, Rthr)
Mfthr = min (t, max (Mthr, min (Sengy*bmax, Sthr))
Sfthr = min (t, max (Sthr, min (Меnду*bmax, Mthr))
B.6.2 Интенсивностное стерео кодирование
Интенсивностное стерео кодирование используется для устранения избыточности в обоих каналах стерео пары в области верхних частот. Следующая процедура описывает одну из возможных реализаций.
Кодирование выполняется отдельно для каждой группы окон. Выполняются следующие шаги:
- Для каждой полосы масштабных коэффициентов соответствующее значение позиции интенсивности вычисляется как
- Спектральные компоненты интенсивностного сигнала используются для замены соответствующих спектральных коэффициентов левого канала. Соответствующие спектральные коэффициенты правого канала обнуляются.
Затем выполняется стандартный процесс квантования и кодирования спектральных данных обоих каналов. Однако состояние предсказателей в правом канале устанавливается в "выкл" для всех полос масштабных коэффициентов, кодированных в режиме интенсивностного стерео. Эти предсказатели обновляются с помощью декодируемой интенсивностной версии квантованных спектральных коэффициентов.
Наконец, перед передачей кодовой книги Хаффмана устанавливается INTENSITY_HCB в соответствующем разделе для всех полос масштабных коэффициентов, которые кодируются в режиме интенсивностного стерео.
В.7 Квантование
В.7.1 Введение
Описание модуля квантования ААС подразделяется на три уровня. Верхний уровень называется "программой циклов фрейма". Эта программа вызывает подпрограмму "внешний итеративный цикл", которая в свою очередь вызывает подпрограмму "внутренний итеративный цикл". Для каждого уровня дана соответствующая блок-схема. Модуль циклов квантует входной вектор спектральных данных в итеративном процессе согласно нескольким требованиям. Внутренний цикл квантует входной вектор и увеличивает размер шага квантователя, пока выходной вектор не будет кодирован с доступным числом битов. После завершения внутреннего цикла внешний цикл проверяет искажение в каждой полосе масштабных коэффициентов и, если допустимый уровень искажений превышен, полоса масштабных коэффициентов ослабляется, и снова вызывается внутренний цикл.
Вход модуля циклов ААС:
1 Вектор спектральных значений mdct_line (0.. 1023).
2 xmin (sb).
3 mean_bits (среднее число битов, доступных для кодирования потока битов).
4 more_bits, число битов в дополнение к среднему числу битов, вычисленное психоакустическим модулем из перцепционной энтропии (РЕ).
5 Число и ширина полос масштабных коэффициентов (см. таблицы 45-57).
6 Для группы коротких блоков спектральные значения должны чередоваться так, чтобы спектральные линии, принадлежащие к одной полосе масштабных коэффициентов, но различным типам блоков, которые должны быть квантованы с одинаковыми масштабными коэффициентами, были соединены в одной (большей) полосе масштабных коэффициентов (для полного описания группировки см. 6.3.4).
Выход модуля циклов ААС:
1 Вектор квантованных значений x_quant (0.. 1023).
2 Масштабный коэффициент для каждой полосы масштабных коэффициентов (sb).
3 common_scalefac (информация о размере шага квантователя для всех полос масштабных коэффициентов).
4 Количество неиспользованных битов, доступных для дальнейшего использования.
В.7.2 Предварительные шаги
Сброс всех итеративных переменных:
1 Вычисляется начальное значение common_scalefac для квантователя так, чтобы все квантованные значения МДКП могли быть закодированы в потоке битов:
max_mdct_line является самым большим по абсолютому значению коэффициентом МДКП, а функция ceiling() округляет аргумент до ближайшего целого в направлении положительной бесконечности. MAX_QUANT - максимальное квантованное значение, которое может быть закодировано в потоке битов, равное 8191. Во время итеративного процесса common_scalefac не должен стать меньше, чем start_common_scalefac.
2 Scalefactor [sb] обнуляется для всех значений sb.
В.7.3 Управление резервуаром битов
Биты помещаются в резервуар, если для кодирования одного фрейма используется меньше, чем mean_bits.
mean_bits = bit_rate * 1024 / sampling_rate.
Максимальное число битов, которые могут быть помещены в резервуар, называется max_bit_reservoir, которое вычисляется, используя процедуру в 6.2.3. Если резервуар заполнен, неиспользованные биты должны быть закодированы в потоке битов как fillbits. Максимальное количество битов, доступных для фрейма, является суммой mean_bits и битов, сохраненных в резервуаре.
Число битов, которые должны использоваться для кодирования фрейма, зависит от значения more_bits, которое вычисляется психоакустической моделью, и от максимального количества доступных битов. Самый простой способ управления резервуаром:
if more_bits> 0:
available_bits = mean_bits + min (more_bits, bit_reservoir_state [frame]),
if more_bits <0:
available_bits = mean_bits + max (more_bits, bit_reservoir_state [frame]
- max_bit_reservoir)
B.7.4 Квантование коэффициентов МДКП
Формула для квантования в кодере является инверсией формулы деквантования в декодере (см. также описание декодера):
MAGIC_NUMBER равно 0.4054, SF_OFFSET равно 100, a mdct_line - одно из спектральных значений МДКП. Эти значения также вызывают "коэффициентами". Масштабный коэффициент sf_decoder является тем же самым, что и sf [g] [sfb] в разделе 9.
Для использования в итеративных циклах масштабный коэффициент ’sf_decoder’ разделяется на две переменные:
sf_decoder = common_scalefac - scalefactor + SF_OFFSET
Это следует из формулы, используемой в цикле управления искажениями:
Знак масштабного коэффициента выбирается таким образом, чтобы положительное значение увеличивало величину x_quant и, таким образом, уменьшало искажения и увеличивало число используемых битов.
Знак mdct_line сохраняется отдельно и добавляется только для подсчета битов и кодирования потока битов.
В.7.4.1 Внешний итеративный цикл (цикл управления искажениями)
Внешний итеративный цикл управляет шумами квантования, которые возникают в результате квантования частотных линий в пределах внутреннего итеративного цикла. Окраска шума выполняется умножением линий в пределах полос масштабных коэффициентов на значения масштабных коэффициентов перед квантованием. Следующий псевдокод иллюстрирует умножение:
do for each scalefactor band sb:
do from lower index to upper index i of scalefactor band
end
do end do
B.7.4.2 Вызов внутреннего итеративного цикла
Для каждого внешнего итеративного цикла (цикл управления искажениями) вызывается внутренний итеративный цикл (цикл управления уровнем). Параметрами являются масштабированные значения в частотной области (mdct_scaled (0 ... 1023)), начальное значение common_scalefac и число битов, которые доступны циклу управления уровнем. Результатом является число используемых битов, квантованные частотные линии x_quant (i) и новый common_scalefac.
Формула для вычисления квантованных коэффициентов МДКП:
Число битов, необходимых для кодирования квантованных значений и служебной информации (масштабные коэффициенты и т.д.), определяется согласно синтаксису потока битов, описанному в разделе 7.
В.7.4.3 Аттенюация полос масштабных коэффициентов, которые нарушают порог маскирования
Вычисление искажений (error_energy (sb)) в полосе масштабных коэффициентов выполняется следующим образом:
Do for each scalefactor sb:
error_energy (сурьма) =0
Do from lower index to upper index i of scalefactor band
error_energy (sb) = error_energy (sb) + (abs (mdc_ljine (i))
end do
end do
Все спектральные значения полос масштабных коэффициентов, у которых есть искажение, превышающее дозволенное искажение {xmin (sb)), ослабляются согласно формуле в В.7.4.1, новые масштабные коэффициенты могут быть вычислены согласно этому псевдокоду:
Do for each scalefactor band sb
if (error_energy (sb)> xmin (sb)) then
scalefactor (sb) = scalefactor (sb) - 1
end if
end do.
B.7.4.4 Условия завершения обработки циклов
Обычно обработка циклов завершается, если отсутствуют полосы масштабных коэффициентов с искажениями, превыщающими дозволенные значения. Однако это не всегда возможно. В этом случае есть другие условия завершения внешнего цикла. Если:
- все полосы с энергией, превышающей xmin (sb), уже ослаблены, или
- различие между двумя соседними масштабными коэффициентами больше чем 60.
Обработка цикла прекращается, и восстановленные сохраненные scalefactors(sb) поступают на выход. Для реализации в реальном времени возможно третье условие, которое завершает цикл в случае нехватки вычислительного времени.
Процедура, описанная выше, допустима только в том случае, когда число доступных битов равно числу необходимых битов, соответствующих перцепционной энтропии. В случае, когда число доступных битов больше или меньше, чем число необходимых битов, целью модуля циклов становится создание постоянного отношения шумов квантования к порогу маскирования во всех полосах масштабных коэффициентов (постоянное отношение шум-маска (NMR)). Это может быть реализовано за счет применения смещения к дозволенному искажению xmin (sb), которое является одинаковым для всех полос масштабных коэффициентов до запуска модуля циклов.
В.7.4.5 Внутренний итеративный цикл (цикл управления уровнем)
Во внутреннем итеративном цикле вычисляется фактическое квантование данных частотной области (mdct_scaled) по следующей функции, которая использует формулу из В.7.4.2:
и затем вызывается функция bit_count (). Эта функция подсчитывает число битов, требуемых для кодирования фрейма потока битов согласно разделу 6.
Внутренний итеративный цикл может быть реализован на основе последовательного приближения:
Из-за выбора start_common_scalefac, вычисленного в В.7.2.1, после первой итерации внутренного цикла число необходимых битов обычно превышает число доступных битов, и поэтому common_scalefac будут увеличены на quantizer_change.
В.8 Кодирование без потерь
В.8.1 Введение
В кодере ААС на вход модуля кодирования без потерь поступают 1024 квантованных спектральных коэффициента. Так как кодирование без потерь выполняется внутри квантователя внутреннего цикла, это является частью итеративного процесса, который сходится, когда полное число битов (из которых на кодирование без потерь приходится большинство) находится в пределах некоторого интервала в окрестности выделенного числа битов. В этом разделе описан процесс кодирования для одного вызова модуля кодирования без потерь.
Кодирование без потерь выполняется по следующим шагам:
- клиппирование спектра,
- предварительное кодирование методом Хаффмана с использованием максимального количества разделов,
- объединение разделов для достижения минимального количества битов.
В.8.2 Клиппирование спектра
На первом шаге кодирования без потерь реализуется метод ограничения динамического диапазона. До четырех коэффициентов с амплитудами, превышающими 1, может быть кодировано отдельно со значением ±1, оставленным в квантованном массиве коэффициентов для сохранения знака. Индекс полосы масштабных коэффициентов, содержащей самые низкочастотные, "усеченные" коэффициенты, отправляется в поток битов. Каждый из "усеченных" коэффициентов кодируется как амплитуда (сверх 1) и смещение по отношению к предыдущей полосе. Для этого длинные блоки полос масштабных коэффициентов и порядок коэффициентов в этих полосах используются независимо от последовательности окон. Одна из стратегий применения клиппирования спектра состоит в том, чтобы отсечь высокочастотные коэффициенты, абсолютные амплитуды которых превышают единицу. Так как служебная информация для усеченных коэффициентов требует несколько битов, то компрессия без потерь применяется, только если это приводит к сокращению битов.
В.8.3 Разделы
При кодировании без потерь набор из 1024 квантованных спектральных коэффициентов сегментируется на разделы так, что для каждого раздела используется одна кодовая книга Хаффмана (метод кодирования по Хаффману объясняется ниже). По причинам эффективности кодирования границы раздела должны соответствовать границам полос масштабных коэффициентов так, чтобы для каждого раздела спектра передавать его размер в полосах масштабных коэффициентов и номер кодовой книги Хаффмана, используемой для раздела.
Сегментирование на разделы является динамичным и обычно изменяется от блока к блоку, чтобы минимизировать количество битов, необходимое для представления набора квантованных спектральных коэффициентов. Это выполняется при помощи специального алгоритма, начиная с максимально возможного числа разделов, каждый из которых использует кодовую книгу Хаффмана с наименьшим индексом. Разделы объединяются, если результирующий объединенный раздел приводит к меньшему общему количеству битов, при этом объединению подлежат в первую очередь разделы с наибольшим количеством требуемых битов. Если объединяемые разделы не используют одну и ту же кодовую книгу Хаффмана, то должна использоваться кодовая книга с более высоким индексом.
Разделы часто содержат только коэффициенты с нулевыми значениями. Например, если входной звуковой сигнал ограничен в полосе 20 кГц или ниже, то самые высокие коэффициенты имеют нулевые значения. Такие разделы кодируются нулевой кодовой книгой Хаффмана, которая указывает, что все коэффициенты являются нулями и передача кодовых комбинаций Хаффмана для этого раздела не требуется.
В.8.4 Группировка и чередование
Если последовательность окон состоит из восьми коротких окон, то набор из 1024 коэффициентов представляет собой матрицу 8x128 частотных коэффициентов, представляющих частотно-временное развитие сигнала на протяжении восьми коротких окон. Несмотря на то что механизм разделения достаточно гибок, чтобы эффективно представить 8 нулевых разделов, группировка и чередование обеспечивают большую эффективность кодирования. Как было объяснено ранее, коэффициенты, связанные с непрерывными короткими окнами, могут быть сгруппированы для совместного использования масштабных коэффициентов несколькими полосами в пределах группы. Кроме того, коэффициенты в пределах группы чередуются, обмениваясь порядком следования полос масштабных коэффициентов и окон. Перед чередованием набор из 1024 коэффициентов с индексируется как с [g][w][b][k], где:
g - индекс группы;
w - индекс окна в пределах группы;
b - индекс полосы масштабных коэффициентов в пределах окна;
k - индекс коэффициента в пределах полосы масштабных коэффициентов (самый правый индекс изменяется наиболее быстро).
После чередования коэффициенты индексируются как с [g][b][w][k].
Это обеспечивает преимущество при объединении всех нулевых разделов из-за ограничения полосы частот в пределах каждой группы.
В.8.5 Масштабные коэффициенты
При кодировании спектральных значений используется один квантователь на каждую полосу масштабных коэффициентов. Размеры шага каждого квантователя определяются как ряд масштабных коэффициентов и общее усиление, которое нормализует эти масштабные коэффициенты. Чтобы увеличить сжатие, масштабные коэффициенты, связанные с полосами, содержащими только нулевые коэффициенты, игнорируются при кодировании и не передаются. Общее усиление и масштабные коэффициенты квантуются с шагом 1,5 дБ. Общее усиление кодируется как 8-разрядное целое число без знака, а масштабные коэффициенты дифференцированно кодируются относительно предыдущих масштабных коэффициентов (либо общего усиления для первого масштабного коэффициента), затем применяется кодирование по Хаффману. Динамический диапазон общего усиления достаточен, чтобы представить полную шкалу 24-разрядных ИКМ значений.
В.8.6 Кодирование методом Хаффмана
Кодирование методом Хаффмана используется, чтобы представить n-кратные квантованные коэффициенты кодами Хаффмана, взятыми из одной из 11 кодовых книг. Спектральные коэффициенты в пределах n-кратной группы упорядочиваются (от низкого к высокому), и размер n-кратной группы равен двум или четырем коэффициентам. Максимальное абсолютное значение квантованных коэффициентов, которое может быть представлено каждой кодовой книгой Хаффмана, и число коэффициентов в каждой n-кратной группе для каждой кодовой книги даются в таблице В.26. Есть два сборника кодов для каждого максимального абсолютного значения с различной функцией распределения. Всегда выбирается ближайшее из двух распределений. Для экономии ресурсов при хранении кодовых книг (важное обстоятельство для серийно выпускаемых декодеров) большинство кодовых книг представляет значения без знака. При этом амплитуда коэффициентов кодируется методом Хаффмана, с добавлением к комбинации знакового бита каждого ненулевого коэффициента.
Таблица В.26 - Кодовые книги Хаффмана
Индекс кодовой книги | Кратность | Максимальное абсолютное значение | Наличие знака |
0 | 0 | ||
1 | 4 | 1 | да |
2 | 4 | 1 | да |
3 | 4 | 2 | нет |
4 | 4 | 2 | нет |
5 | 2 | 4 | да |
6 | 2 | 4 | да |
7 | 2 | 7 | нет |
8 | 2 | 7 | нет |
9 | 2 | 12 | нет |
10 | 2 | 12 | нет |
11 | 2 | 16 (ESC) | нет |
Две кодовые книги требуют специального замечания: сборник кодов 0 и сборник кодов 11. Как было сказано ранее, кодовая книга 0 соответствует случаю, когда все коэффициенты в пределах раздела являются нулями. Кодовая книга 11 может представлять квантованные коэффициенты, у которых абсолютное значение больше или равно 16. Если амплитуда одного или обоих коэффициентов больше или равна 16, используется специальный escape-механизм кодирования для представления этих значений. Амплитуда коэффициентов не должна превышать 16, и соответствующая пара кодируется методом Хаффмана. Биты знака добавляются к кодовой комбинации. Для каждой амплитуды коэффициента, большей или равной 16, добавляется escape-последовательность: escape-последовательность = <escape_prefix><escape_separator><escape_word>,
где
<escape_prefix> - последовательность из ’1’ бит длиной N,
<escape_separator> - двоичный ’0’,
<escape_word> - целое числом без знака, msb сначала, длиной N+4,
N - число, достаточно большое, чтобы амплитуда квантованного коэффициента была равна
В.9 Функция управления динамическим диапазоном ААС
Чтобы обработать исходный материал с переменными пиковыми уровнями, средними уровнями и динамическим диапазоном так, чтобы минимизировать изменения при воспроизведении, необходимо управлять уровнем воспроизведения таким образом, чтобы, например, уровень диалога или средний уровень музыки устанавливались в соответствии с желанием слушателя, независимо от того, какой баланс уровней был в оригинальной программе. Кроме того, не все потребители будут прослушивать программу в хороших акустических условиях (т.е. при малом окружающем шуме), без ограничений на максимальную громкость воспроизведения. Например, при прослушивании программ в условиях автомобиля, где присутствует высокий уровень фонового шума, можно ожидать, что слушатель захочет уменьшить диапазон уровней.
По указанным причинам управление динамическим диапазоном должно быть доступным в пределах спецификации ААС. Для достижения этого необходимо сопровождать сжатый звук данными, используемыми для установки и управления динамическим диапазоном элементов программы. Это управление должно быть определено относительно контрольного уровня и по отношению к важным элементам программы, например диалогам.
Функции управления динамическим диапазоном следующие:
1 Управление динамическим диапазоном является полностью опциональным. Поэтому при корректном синтаксисе нет никаких сложных изменений для тех, кто не желает использовать DRC.
2 Сжатые звуковые данные передаются с полным динамическим диапазоном исходного материала и с данными для осуществления управления динамическим диапазоном.
3 Информация для управления динамическим диапазоном может быть передана в каждом фрейме для уменьшения задержки в установке усиления воспроизведения до минимума.
4 Информация для управления динамическим диапазоном передается с использованием ’fill_element’ ААС.
5 Контрольный уровень соответствует полной шкале.
6 Контрольный уровень программы передается для сохранения соответствия между уровнями воспроизведения различных источников. Эта функция исходного сигнала в большей степени относится к субъективному впечатлению от громкости программы.
7 Контрольный уровень программы соответствует уровню, который может быть установлен на пользовательском устройстве воспроизведения относительно контрольного уровня. Более тихие части программы могут быть усилены по уровню, а более громкие части программы могут быть ослаблены.
8 Контрольный уровень программы определен в диапазоне от 0 до -31,75 дБ относительно контрольного уровня.
9 Контрольный уровень программы использует 7 битовых полей с шагом 0,25 дБ.
10 Управление динамическим диапазоном определено в диапазоне ±31,75 дБ.
11 Управление динамическим диапазоном использует 8 битовых полей (1 знак, 7 значений) с шагом 0,25 дБ.
12 Управление динамическим диапазоном может быть применено ко всем спектральным коэффициентам частотных полос звукового канала или к группам коэффициентов, соответствующих различным полосам масштабных коэффициентов.
13 Управление динамическим диапазоном может быть применено ко всем каналам одинаково или разделено для наборов каналов.
14 Если ожидаемый набор информации управления динамическим диапазоном отсутствует, используются последние полученные допустимые значения.
15 Не все элементы информации управления динамическим диапазоном передаются каждый раз. Например, контрольный уровень программы может передаваться в среднем только раз в 200 мс.
16 Если необходимо, обнаружение ошибок/защита обеспечивается транспортным уровнем.
17 Пользователь должен быть обеспечен средствами изменения управлением динамическим диапазоном, представленными в потоке битов и применяемыми к уровню сигнала.
Библиография
[1] | ИСО/МЭК 13818-7:2006 (ISO/IEC 13818-7:2006) | Информационные технологии. - Универсальное кодирование движущихся изображений и сопутствующего звука. - Часть 7: Усовершенствованное кодирование звука (AAC) (Information technology - Generic coding of moving pictures and associated audio information - Part 7: Advanced Audio Coding (AAC) |
[2] | ITU-R документ TG10-2/3-Е: 1991 | Основные требования к качеству сжатия цифровых звуковых сигналов в системах вещания (ITU-R Document TG10-2/3-Е only, Basic Audio Quality Requirements for Digital Audio Bit-Rate Reduction Systems for Broadcast Emission and Primary Distribution) |
[3] | ИСО/МЭК 14496-3:2009 (ISO/IEC 14496-3:2009) | Информационная технология. Кодирование аудиовизуальных объектов. Часть 3: Аудио (Information technology - Coding of audio-visual objects - Part 3: Audio) |
[4] | ИСО/МЭК 13818-1:2007 (ISO/IEC 13818-1:2007) | Информационные технологии. Универсальное кодирование движущихся изображений и сопутствующей звуковой информации. Часть 1. Системы (Information technology - Generic coding of moving pictures and associated audio information - Part 1: Systems) |