Получите образец ТУ или ГОСТа за 3 минуты

Получите ТУ или ГОСТ на почту за 4 минуты

ГОСТ Р 53556.1-2012 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть 3 (MPEG-4 audio). Общие требования к кодированию

ГОСТ Р 53556.1-2012

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Звуковое вещание цифровое

КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ. ЧАСТЬ 3 (MPEG-4 AUDIO)

Общие требования к кодированию

Digital sound broadcasting. Coding of sound broadcasting signals with redundancy reduction for transfer on digital communication channels. Part III (MPEG-4 audio). General requirements for coding

ОКС 33.170

Дата введения 2013-09-01

Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ “О техническом регулировании”, а правила применения национальных стандартов Российской Федерации – ГОСТ Р 1.0-2004 “Стандартизация в Российской Федерации. Основные положения”

Сведения о стандарте

1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи “Ленинградское отделение” (ФГУП ЛО ЦНИИС)

2 ВНЕСЕН Техническим комитетом по стандартизации N 480 “Связь”

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. N 940-ст

4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio) [1]
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт . – .

5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе “Национальные стандарты”, а официальный текст изменений и поправок – в ежемесячном информационном указателе “Национальные стандарты”. В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационном указателе “Национальные стандарты”. Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

1 Область применения

1 Область применения

Для достижения лучшего качества звучания на низких скоростях передачи данных (менее 64 Кбит/с на канал) вводятся три дополнительных частоты дискретизации (Fs) -16 кГц, 22,05 кГц и 24 кГц. Это позволяет поддерживать звуковые сигналы с полосами частот 7,5 кГц, 10,3 кГц и 11,25 кГц соответственно, и обеспечивать передачу сигналов звукового вещания по стандартным каналам (ГОСТ Р 52742-2007 и ГОСТ Р 53537-2009).

Синтаксис, семантика и методы кодирования ГОСТ Р 54711-2011 сохраняются в данном стандарте, за исключением определения поля частоты дискретизации, поля скорости передачи и таблиц распределения бит. Новые значения действительны, если бит ID в заголовке ГОСТ Р 54711-2011 равняется нулю. Для получения лучшей производительности звуковой системы параметры психоакустической модели, используемой в кодере, должны быть изменены соответственно.

Вход кодера и выход декодера совместимы с существующими стандартами ИКМ, такими как ГОСТ 27667-88, ГОСТ 28376-89.

Показатели, определенные настоящим документом, являются базовыми для профессиональной и бытовой аппаратуры – проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования класса Hi-Fi.

Универсальная и совместимая многоканальная звуковая система применима для спутникового и наземного телевизионного вещания, цифрового звукового вещания (наземного и спутникового), так же как и для других носителей, например:

CATV

Кабельное телевидение;

CDAD

Кабельное цифровое звуковое вещание;

DAB

Широковещательная передача цифрового звукового сигнала;

DVD

Цифровой универсальный диск;

ENG

Электронные новости (включая новости по спутнику);

HDTV

Телевидение высокой четкости;

IPC

Межличностное общение (видеоконференция, видеотелефон и т.д.);

ISM

Интерактивные носители (оптические диски и т.д.).

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

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

ГОСТ Р 54712-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть III (MPEG-2 audio)

ГОСТ Р 54713-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть VII. Усовершенствованное кодирование звука (MPEG-2 AAC)

ГОСТ Р 53556.0-2009 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-4, часть III (MPEG-4 audio). Основные положения

ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений

ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20…20000 Гц)

ГОСТ 27667-88 Система цифровая звуковая “Компакт-диск”. Параметры

ГОСТ 28376-89 Компакт-диск. Параметры и размеры

Примечание – При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов и классификаторов в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю “Национальные стандарты”, который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный документ заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться замененным (измененным) документом. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.

3 Термины, определения, символы и сокращения

3.1 Термины и определения

В настоящем стандарте применены термины и сокращения с соответствующими определениями, по ГОСТ Р 53556.0-2009, а также следующие термины с соответствующими определениями, не вошедшие в указанный стандарт:

3.1.1 буфер: Устройство памяти большой емкости, позволяющее записывать и хранить большой объем данных.

3.1.2 программа ААС: Основные звуковые каналы, спаренные каналы, канал Ife и связанные потоки данных, которые должны быть декодированы и воспроизведены одновременно. Программа может быть задана по умолчанию или с помощью program_config_element (). Данные single_channel_element (), channel_pair_element (), coupling_channel_element (), lfe_channel_element () или data_stream_element () могут сопровождать одну или более программ в любом заданном потоке.

3.1.3 звуковой блок доступа: Часть звуковых данных в пределах элементарного потока с возможностью индивидуального доступа.

3.1.4 звуковой композитный блок: Часть выходных данных, которую звуковой декодер производит из звуковых блоков доступа.

3.1.5 абсолютное время: Время, которому соответствует тот или иной звук; реальное время. Время в партитуре.

3.1.6 фактический параметр: Параметр команды.

3.1.7 адаптивная кодовая книга: Способ кодирования длительной периодичности сигнала. Входными параметрами кодовой книги являются перекрывающиеся сегменты прошлых возбуждений.

3.1.8 API: Интерфейс прикладного программирования.

3.1.9 масштабируемость полосы пропускания: Возможность менять полосу пропускания сигнала во время передачи.

3.1.10 ELD: Расширенная низкая задержка.

3.1.11 ЕР: Защита от ошибок.

3.1.12 R: Способность системы противостоять ошибкам.

3.1.13 возбуждение: Сигнал возбуждения представляет вход модуля LPC.

3.1.14 межфреймовое предсказание: Метод предсказания значений в текущем фрейме по значениям в предыдущих фреймах. Используется в VQ LSP.

3.1.15 LTP: Долгосрочное предсказание.

3.1.16 основные звуковые каналы: Весь single_channel_elements или channel_pair_elements в одной программе.

3.1.17 MIDI: Стандарт цифрового интерфейса музыкальных инструментов.

3.1.18 смешанный голосовой фрейм: Речевой сегмент, в котором присутствуют как голосовые, так и неголосовые компоненты.

3.1.19 PS: Параметрическое стерео.

3.1.20 TTSI: Интерфейс преобразования текста в речь.

3.1.21 VQ: Векторное квантование.

3.1.22 VXC: Векторное кодирование возбуждения. Синоним CELP.

3.2 Символы и сокращения

3.2.1 Математические операторы

Математические операторы, используемые в настоящем стандарте, аналогичны используемым в языке программирования С. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.

+ Сложение.

– Вычитание (как бинарный оператор) или отрицание (как унарный оператор).

++ Инкремент.

– – Декремент.

* Умножение.

^ Возведение в степень.

/ Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до одного, а -7/4 и 7/-4 округляются до минус одного.

// Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до двух, а -3//2 округляется до минус двух.

DIV Целочисленное разделение с округлением результата в сторону –.

|| Абсолютное значение.

|х| = х, когда х>0;

|х| = 0, когда х == 0;

|х| = –х, когда х<0.

% Деление с остатком. Операция определена только для положительных чисел.

Sign () Принимает следующие значения:

Sign (x) = 1,

когда х>0;

Sign (x) = 0,

когда х = 0;

Sign (x) = -1,

когда х<0.

NINT () Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.

sin

Синус.

cos

Косинус.

exp

Экспонента.

Квадратный корень.

Логарифм по основанию 10.

Натуральный логарифм.

Логарифм по основанию 2.

3.2.2 Логические операторы

II

логическое ИЛИ.

&&

Логическое И.

!

Логическое НЕ.

3.2.3 Операторы сравнения

>

Больше.

>=

Больше или равно.

<

Меньше.

<=

Меньше или равно.

==

Равно.

!=

Не равно.

max [,…,]

Максимальное значение.

min [,…,]

Минимальное значение.

3.2.4 Побитные операторы

Использование побитных операций подразумевает представление чисел в дополнительном коде.

&

Побитное И.

I

Побитное ИЛИ.

>>

Сдвиг вправо.

<<

Сдвиг влево.

3.2.5 Оператор присвоения

=

Оператор присвоения.

3.2.6 Мнемоники

Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.

bslbf

Битовая строка, младший бит слева, в соответствии с настоящим стандартом. Битовые строки пишутся, как строка единиц и нулей внутри одинарных кавычек, например, ‘1000 0001’. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения.

L, С, R, LS, RS

Левый, центральный, правый, левый окружения и правый окружения звуковые каналы объемного звучания.

rpchof

Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка.

uimsbf

Целое число без знака, старший бит первый.

vlclbf

Код с переменной длиной слова, левый бит первый, где “левый” относится к порядку, в котором пишутся коды с переменной длиной.

window

Номер текущего временного интервала в случае block_type==2, 0windowwindow2.

В многобайтовых словах старший байт является первым.

3.2.7 Константы

3,14159265358…

2,71828182845…

3.3 Метод описания синтаксиса потока битов

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

Группа элементов данных может содержать вложенные условные конструкции. Для компактности скобки {} могут быть опущены, когда следует только один элемент данных.

data_element [ ]

data_element [ ] является массивом данных. Количество элементов массива зависит от контекста.

data_element [n] data_element [m] [n]

data_element [n] является (n+1)-ым элементом массива данных. 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 [mn]

data_element [mn] содержит биты массива data_element с m по n включительно.

3.4 Арифметические типы данных

INT32

32-битное знаковое целое с дополнением к нулю.

INT64

64-битное знаковое целое с дополнением к нулю.

3.5 Технический обзор

3.5.1 Типы звуковых объектов MPEG-4

3.5.1.1 Определение типов звуковых объектов приведено в таблице 1.

Таблица 1 – Определение типов звуковых объектов на основе инструментов/модулей

Окончание таблицы 1

Примечания

1 Функция битового поиска обязательна для декодера. Однако функции обнаружения и исправления ошибок являются необязательными.

2 Содержит AAC LC.

3 Содержит таблично-волновой синтез, алгоритмический синтез и звуковые эффекты.

4 Содержит спецификацию General MIDI.

5 Содержит ER AAC LC.

6 Инструмент передискретизации требуется только в комбинации с основным кодером.

3.5.1.2 Описание

3.5.1.2.1 Тип объекта NULL

Объект NULL обеспечивает возможность подать необработанные ИКМ отсчеты непосредственно в звуковой процессор. Декодирование не применяется, однако дескриптор звуковых объектов используется для определения частоты дискретизации и конфигурации звуковых каналов.

3.5.1.2.2 Тип объекта AAC – Main

Объект AAC Main очень схож с профилем AAC Main. Однако дополнительно доступен инструмент PNS. Ограничения профиля AAC Main относительно различных программ и элементов сведения также относятся к типу объекта ААС Main. Все многоканальные возможности ААС MPEG-2 доступны. Декодер, способный декодировать поток основного объекта MPEG-4, также в состоянии анализировать и декодировать поток необработанных данных AAC MPEG-2. С другой стороны, несмотря на то что кодер AAC MPEG-2 может анализировать полезный поток битов AAC MPEG-4 Main, возможна ошибка декодирования из-за использования PNS.

3.5.1.2.3 Тип объекта ААС – Low Complexity (LC)

Тип объекта AAC MPEG-4 Low Complexity является копией профиля пониженной сложности ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.4 Тип объекта ААС – Scalable Sampling Rate (SSR)

Тип объекта ААС MPEG-4 Scalable Sampling Rate является копией профиля масштабируемой частоты дискретизации ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.5 Тип объекта ААС – Long Term Predictor (LTP)

Тип объекта ААС MPEG-4 LTP подобен типу объекта ААС Main, однако предсказатель ААС MPEG-2 заменен долговременным предсказателем. LTP достигает схожего усиления эффективности кодирования, но требует значительно более низкой сложности реализации. Полезный поток бит профиля ААС MPEG-2 LC может быть декодирован декодером объекта LTP AAC MPEG-4 без ограничений.

3.5.1.2.6 Тип объекта SBR

Объект SBR содержит инструмент SBR и может быть объединен с типами звуковых объектов, обозначенными в таблице 2.

Таблица 2 – Типы звуковых объектов, которые могут быть объединены с инструментом SBR

Тип звукового объекта

ID типа объекта

ААС main

1

AAC LC

2

ААС SSR

3

ААС LTP

4

ААС Scalable

6

ER AAC LC

17

ER AAC LTP

19

ER AAC Scalable

20

ER BSAC

22

3.5.1.2.7 Тип объекта ААС Scalable

Объект ААС Scalable использует различный синтаксис полезного потока бит для реализации масштабируемости скорости передачи и полосы пропускания. Доступно большое количество масштабируемых комбинаций, включая комбинации с инструментами TwinVQ и CELP. Однако поддерживаются только моно или 2-канальные стерео объекты.

3.5.1.2.8 Тип объекта TwinVQ

Объект TwinVQ принадлежит схеме кодирования GA, реализующей квантование коэффициентов МДКП. Эта схема кодирования основана на векторном квантовании с фиксированной скоростью вместо кода Хаффмана в ААС.

Доступны низкие скорости передачи для моно и стерео. Схемы масштабируемых скоростей также доступны в профиле Scalable Audio, объединенном с типом объекта ААС Scalable.

3.5.1.2.9 Тип объекта CELP

Объект CELP поддерживается инструментами кодирования речи CELP, которые обеспечивают кодирование на частотах дискретизации 8 кГц и 16 кГц при скоростях передачи данных в диапазоне 4-24 кбит/с. Дополнительно доступны масштабируемость скорости передачи и полосы пропускания для обеспечения масштабируемого декодирования потоков CELP. Объект CELP всегда содержит только один моно сигнал.

3.5.1.2.10 Тип объекта HVXC

Объект HVXC поддерживается инструментами параметрического кодирования речи (HVXC), которые обеспечивают режимы кодирования с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) в масштабируемой и немасштабируемой схеме, режим с переменной скоростью передачи данных (<2,0 кбит/с) и функции изменения высоты и скорости воспроизведения. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.11 Тип объекта TTSI

Объект TTSI поддерживается инструментами TTSI. Это позволяет осуществить передачу фонемных дескрипторов речи на очень низких скоростях для дальнейшего синтеза. MPEG-4 не дает определения самому методу синтеза речи; инструменты TTSI скорее определяют интерфейс нестандартных методов синтеза. Этот метод позволяет получить скорость передачи 200-1200 бит/с.

3.5.1.2.12 Тип объекта Main Synthetic

Объект Main Synthetic позволяет использовать все инструменты MPEG-4 Structured Audio. Это обеспечивает гибкий, высококачественный алгоритмический синтез на основе языка синтеза музыки SAOL, эффективный таблично-волновой синтез с форматом банка сэмплов SASBF и реализует высококачественное сведение и пост-продакшн с набором инструментов Systems AudioBIFS. Описание звука может быть передано на скоростях от 0 кбит/с (не требуется непрерывная передача) до 3-4 кбит/с для чрезвычайно экспрессивных звуков в формате Structured Audio MPEG-4.

3.5.1.2.13 Тип объекта Wavetable Synthesis

Объект таблично-волнового синтеза поддерживается только форматом SASBF и инструментами MIDI. Это позволяет использовать простой сэмплерный синтез, когда качество и гибкость полного набора инструментов синтеза не требуются.

3.5.1.2.14 Тип объекта General MIDI

Объект General MIDI включен только для предоставления функциональной совместимости с существующим контентом. Стандартизованное качество звучания и свойства декодера объектом General MIDI не предоставляются.

3.5.1.2.15 Тип объекта Algorithmic Synthesis и Audio FX

Объект Algorithmic Synthesis обеспечивает синтез звука на основе SAOL при очень низких скоростях передачи. Он также используется для поддержки узла AudioBIFS AudioFX там, где не требуется синтезированный звук.

3.5.1.2.16 Тип объекта Error Resilient (ER) AAC Low Complexity (LC)

Тип объекта Error Resilient (ER) AAC Low Complexity (LC) является копией объекта AAC MPEG-4 Low Complexity с дополнительными функциональными возможностями.

3.5.1.2.17 Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP)

Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP) является копией объекта AAC MPEG-4 LTP с дополнительными функциональными возможностями.

3.5.1.2.18 Тип объекта Error Resilient (ER) AAC scalable

Тип объекта Error Resilient (ER) AAC scalable является копией объекта AAC MPEG-4 scalable с дополнительными функциональными возможностями.

3.5.1.2.19 Тип объекта Error Resilient (ER) TwinVQ

Тип объекта Error Resilient (ER) AAC TwinVQ является копией объекта AAC MPEG-4 TwinVQ с дополнительными функциональными возможностями.

3.5.1.2.20 Тип объекта Error Resilient (ER) BSAC

Объект BSAC ER поддерживается инструментом точного масштабирования (BSAC). Это позволяет обеспечить как устойчивость к ошибкам, так и точную масштабируемость шага квантования в кодере MPEG-4 General Audio (GA). Данный объект используется в комбинации с инструментами кодирования ААС и заменяет кодирование без потерь и форматирование полезного потока бит кодера AAC MPEG-4. Доступно большое количество масштабируемых уровней, что обеспечивает уровень расширения на скорости 1 кбит/с/канал, то есть 2 кбит/с шага для сигнала стерео.

3.5.1.2.21 Тип объекта Error Resilient (ER) AAC LD

Объект AAC LD поддерживается инструментом кодирования ААС с низкой задержкой. Он также допускает комбинации с инструментами PNS и LTP. Объект ААС LD расширяет использование универсального низкоскоростного кодирования аудио на приложения, требующие очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.1.2.22 Тип объекта Error Resilient (ER) CELP

Объект ER CELP поддерживается инструментами сжатия тишины и ER. Это позволяет уменьшить среднюю скорость передачи благодаря более низкому сжатию для участков тишины с дополнительными функциональными возможностями.

3.5.1.2.23 Тип объекта Error Resilient (ER) HVXC

Объект ER HVXC поддерживается инструментами параметрического речевого кодирования (HVXC), которые обеспечивают режимы с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) и режимы с переменной скоростью передачи данных (<2,0 кбит/с и <4,0 кбит/с), как с использованием масштабирования, так и без него, с возможностью изменения высоты и скорости воспроизведения. Синтаксис инструмента ЕР и способность устранения ошибок поддерживаются для использования в каналах связи, подверженных ошибкам. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.24 Тип объекта Error Resilient (ER) HILN

Объект ER HILN поддерживается инструментами параметрического кодирования звука (HILN: гармонические и индивидуальные линии вместе с шумом), которые обеспечивают кодирование обычных звуковых сигналов при очень низких скоростях передачи в пределах от менее 4 кбит/с до более 16 кбит/с. Доступны масштабируемость скорости передачи с возможностью изменения высоты и скорости воспроизведения. Объект ER HILN поддерживает звуковые объекты моно в широком диапазоне частот дискретизации.

3.5.1.2.25 Тип объекта Error Resilient (ER) Parametric

Объект ER Parametric поддерживается инструментами параметрического кодирования звука и кодирования речи HILN и HVXC. Этот встроенный параметрический кодер комбинирует функциональные возможности объектов ER HILN и ER HVXC. Поддерживаются только звуковые сигналы моно с частотой дискретизации 8 кГц.

3.5.1.2.26 Тип объекта SSC Audio

Объект SSC (синусоидальное кодирование) комбинирует инструменты параметрического кодирования SSC: транзиенты, синусоиды, шум и параметрическое стерео. Поддерживаются сигналы моно, двойное моно и стерео (параметрическое) с частотой дискретизации 44,1 кГц.

3.5.1.2.27 Тип объекта Layer-1 Audio

Объект Layer-1 является копией алгоритма кодирования уровня I.

3.5.1.2.28 Тип объекта Layer-2 Audio

Объект Layer-2 является копией алгоритма кодирования уровня II.

3.5.1.2.29 Тип объекта Layer-3 Audio

Объект Layer-3 схож с алгоритмом кодирования уровня III.

3.5.1.2.30 Тип объекта ALS Audio

Тип объекта ALS копия алгоритма кодирования без потерь (ALS), содержит соответствующие инструменты ALS.

3.5.1.2.31 Тип объекта SLS Audio

Объект SLS поддерживается инструментом масштабируемого кодирования без потерь, который обеспечивает точное масштабирование расширения кодирования без потерь в перцепционных звуковых кодеках MPEG, таких как ААС, позволяя применять различные шаги по улучшению – от качества звучания основного алгоритма до кодирования без потерь и почти незаметного кодирования. Он также обеспечивает stand-alone кодирование звука без потерь, когда основной звуковой кодек отключен.

3.5.1.2.32 SLS Тип объекта SLS Non-Core Audio

Объект SLS non-core поддерживается инструментом масштабируемого кодирования без потерь. Он подобен типу объекта SLS, однако основной звуковой кодек отключен.

3.5.1.2.33 Тип объекта PS

Тип объекта PS содержит инструмент PS и может быть объединен с инструментом SBR.

3.5.1.2.34 Тип объекта MPEG Surround

Объект MPEG Surround содержит служебную информацию MPEG Surround.

3.5.1.2.35 Тип объекта SMR Simple

Тип объекта SMR Simple используется для передачи музыкальных партитур для их аудио и видео обработки. Кодированные данные содержат информацию относительно основной партитуры, частей (то есть партий отдельных инструментов), возможных многоязычных текстов, связанных с частями, правил визуального форматирования, которые будут использоваться при обработке видео, шрифтов для специальных музыкальных символов и информации синхронизации. Шрифты и информация синхронизации представлены как двоичные данные, остальные – как XML данные. Тип объекта SMR Simple может передать XML данные в виде простого XML текста или как gzip XML.

3.5.1.2.36 Тип объекта SMR Main

Тип объекта SMR Main может передавать музыкальные партитуры, как тип объекта SMR Simple, однако в этом случае XML данные могут быть закодированы инструментами MPEG-B.

3.5.1.2.37 Тип объекта Error Resilient (ER) AAC ELD

Тип объекта с улучшенной низкой задержкой (ER ААС ELD) идентичен типу объекта ER AAC LD с добавлением банка фильтров с низкой задержкой (LDFB) и улучшенного окна. Возможны комбинации с инструментом PNS, так же как и с инструментом низкой задержки SBR. Тип объекта ER AAC ELD расширяет применение универсального низкоскоростного кодирования звука для приложений, требующих очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.2 Звуковые профили и уровни

3.5.2.1 Профили

Определены следующие звуковые профили (см. таблицу 3):

1 Речевой профиль обеспечивает параметрический речевой кодер, речевой кодер CELP и интерфейс преобразования текста в речь.

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

3 Масштабируемый профиль – надмножество речевого профиля, является подходящим для масштабируемого кодирования речи и музыки для Интернета и цифрового вещания.

4 Основной профиль – надмножество масштабируемого профиля, речевого профиля и профиля звукового синтеза, содержит инструменты для обычного и синтезированного звука.

5 Профиль высокого качества содержит речевой кодер CELP и кодер низкой сложности ААС, включающий долгосрочное предсказание. Масштабируемое кодирование может быть выполнено объектом типа AAC Scalable. Дополнительно может применяться новый ER синтаксис потока битов.

6 Профиль низкой задержки содержит речевые кодеры HVXC и CELP (дополнительно использующие ER синтаксис), кодер ААС низкой задержки и интерфейс преобразования текста в речь TTSI.

7 Профиль натурального звука содержит все доступные в MPEG-4 инструменты для кодирования натурального звука.

8 Профиль звука для Интернета содержит типы объектов с низкой задержкой и масштабированием ААС, включая TwinVQ и BSAC. Эта конфигурация предназначена для расширения коммуникационных приложений при помощи не-MPEG алгоритмов кодирования речи с высоким качеством.

9 Профиль ААС содержит тип звукового объекта 2 (AAC-LC).

10 Профиль ААС высокой производительности содержит типы звуковых объектов 5 (SBR) и 2 (AAC-LC). Профиль ААС высокой производительности является надмножеством профиля ААС.

11 Профиль ААС высокой производительности версии 2 содержит типы звуковых объектов 5 (SBR), 29 (PS) и 2 (AAC-LC). Профиль ААС высокой производительности версии 2 является надмножеством профиля ААС высокой производительности.

12 Профиль ААС с низкой задержкой содержит тип звукового объекта 23 (ER AAC LD).

Таблица 3 – Определение звуковых профилей

ID типа объекта

Тип объекта Audio

Speech Audio Profile

Synthetic Audio Profile

Scalable Audio Profile

Main Audio Profile

High Quality Audio Profile

Low Delay Audio Profile

Natural Audio Profile

Mobile Audio Internet-
working Profile

AAC Profile

High Efficiency AAC Profile

High Efficiency AAC v2 Profile

Low Delay AAC Profile

0

Null

1

ААС main

X

X

2

AAC LC

X

X

X

X

X

X

X

3

ААС SSR

X

X

4

ААС LTP

X

X

X

X

5

SBR

X

X

6

AAC Scalable

X

X

X

X

7

TwinVQ

X

X

X

8

CELP

X

X

X

X

X

X

9

HVXC

X

X

X

X

X

10

(зарезервировано)

11

(зарезервировано)

12

TTSI

X

X

X

X

X

X

13

Main synthetic

X

X

14

Wavetable synthesis

X*

X*

15

General MIDI

X*

X*

16

Algorithmic Synthesis and Audio FX

X*

X*

17

ER AAC LC

X

X

X

18

(зарезервировано)

19

ER AAC LTP

X

X

20

ER AAC Scalable

X

X

X

21

ER TwinVQ

X

X

22

ER BSAC

X

X

23

ER AAC LD

X

X

X

X

24

ER CELP

X

X

X

25

ER HVXC

X

X

26

ER HILN

X

27

ER Parametric

X

28

SSC

29

PS

X

30

MPEG Surround

31

(escape)

32

Layer-1

ГОСТ Р 53556.1-2012

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Звуковое вещание цифровое

КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ. ЧАСТЬ 3 (MPEG-4 AUDIO)

Общие требования к кодированию

Digital sound broadcasting. Coding of sound broadcasting signals with redundancy reduction for transfer on digital communication channels. Part III (MPEG-4 audio). General requirements for coding

ОКС 33.170

Дата введения 2013-09-01

Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ “О техническом регулировании”, а правила применения национальных стандартов Российской Федерации – ГОСТ Р 1.0-2004 “Стандартизация в Российской Федерации. Основные положения”

Сведения о стандарте

1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи “Ленинградское отделение” (ФГУП ЛО ЦНИИС)

2 ВНЕСЕН Техническим комитетом по стандартизации N 480 “Связь”

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. N 940-ст

4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio) [1]
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт . – .

5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе “Национальные стандарты”, а официальный текст изменений и поправок – в ежемесячном информационном указателе “Национальные стандарты”. В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационном указателе “Национальные стандарты”. Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

1 Область применения

1 Область применения

Для достижения лучшего качества звучания на низких скоростях передачи данных (менее 64 Кбит/с на канал) вводятся три дополнительных частоты дискретизации (Fs) -16 кГц, 22,05 кГц и 24 кГц. Это позволяет поддерживать звуковые сигналы с полосами частот 7,5 кГц, 10,3 кГц и 11,25 кГц соответственно, и обеспечивать передачу сигналов звукового вещания по стандартным каналам (ГОСТ Р 52742-2007 и ГОСТ Р 53537-2009).

Синтаксис, семантика и методы кодирования ГОСТ Р 54711-2011 сохраняются в данном стандарте, за исключением определения поля частоты дискретизации, поля скорости передачи и таблиц распределения бит. Новые значения действительны, если бит ID в заголовке ГОСТ Р 54711-2011 равняется нулю. Для получения лучшей производительности звуковой системы параметры психоакустической модели, используемой в кодере, должны быть изменены соответственно.

Вход кодера и выход декодера совместимы с существующими стандартами ИКМ, такими как ГОСТ 27667-88, ГОСТ 28376-89.

Показатели, определенные настоящим документом, являются базовыми для профессиональной и бытовой аппаратуры – проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования класса Hi-Fi.

Универсальная и совместимая многоканальная звуковая система применима для спутникового и наземного телевизионного вещания, цифрового звукового вещания (наземного и спутникового), так же как и для других носителей, например:

CATV

Кабельное телевидение;

CDAD

Кабельное цифровое звуковое вещание;

DAB

Широковещательная передача цифрового звукового сигнала;

DVD

Цифровой универсальный диск;

ENG

Электронные новости (включая новости по спутнику);

HDTV

Телевидение высокой четкости;

IPC

Межличностное общение (видеоконференция, видеотелефон и т.д.);

ISM

Интерактивные носители (оптические диски и т.д.).

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

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

ГОСТ Р 54712-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть III (MPEG-2 audio)

ГОСТ Р 54713-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть VII. Усовершенствованное кодирование звука (MPEG-2 AAC)

ГОСТ Р 53556.0-2009 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-4, часть III (MPEG-4 audio). Основные положения

ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений

ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20…20000 Гц)

ГОСТ 27667-88 Система цифровая звуковая “Компакт-диск”. Параметры

ГОСТ 28376-89 Компакт-диск. Параметры и размеры

Примечание – При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов и классификаторов в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю “Национальные стандарты”, который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный документ заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться замененным (измененным) документом. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.

3 Термины, определения, символы и сокращения

3.1 Термины и определения

В настоящем стандарте применены термины и сокращения с соответствующими определениями, по ГОСТ Р 53556.0-2009, а также следующие термины с соответствующими определениями, не вошедшие в указанный стандарт:

3.1.1 буфер: Устройство памяти большой емкости, позволяющее записывать и хранить большой объем данных.

3.1.2 программа ААС: Основные звуковые каналы, спаренные каналы, канал Ife и связанные потоки данных, которые должны быть декодированы и воспроизведены одновременно. Программа может быть задана по умолчанию или с помощью program_config_element (). Данные single_channel_element (), channel_pair_element (), coupling_channel_element (), lfe_channel_element () или data_stream_element () могут сопровождать одну или более программ в любом заданном потоке.

3.1.3 звуковой блок доступа: Часть звуковых данных в пределах элементарного потока с возможностью индивидуального доступа.

3.1.4 звуковой композитный блок: Часть выходных данных, которую звуковой декодер производит из звуковых блоков доступа.

3.1.5 абсолютное время: Время, которому соответствует тот или иной звук; реальное время. Время в партитуре.

3.1.6 фактический параметр: Параметр команды.

3.1.7 адаптивная кодовая книга: Способ кодирования длительной периодичности сигнала. Входными параметрами кодовой книги являются перекрывающиеся сегменты прошлых возбуждений.

3.1.8 API: Интерфейс прикладного программирования.

3.1.9 масштабируемость полосы пропускания: Возможность менять полосу пропускания сигнала во время передачи.

3.1.10 ELD: Расширенная низкая задержка.

3.1.11 ЕР: Защита от ошибок.

3.1.12 R: Способность системы противостоять ошибкам.

3.1.13 возбуждение: Сигнал возбуждения представляет вход модуля LPC.

3.1.14 межфреймовое предсказание: Метод предсказания значений в текущем фрейме по значениям в предыдущих фреймах. Используется в VQ LSP.

3.1.15 LTP: Долгосрочное предсказание.

3.1.16 основные звуковые каналы: Весь single_channel_elements или channel_pair_elements в одной программе.

3.1.17 MIDI: Стандарт цифрового интерфейса музыкальных инструментов.

3.1.18 смешанный голосовой фрейм: Речевой сегмент, в котором присутствуют как голосовые, так и неголосовые компоненты.

3.1.19 PS: Параметрическое стерео.

3.1.20 TTSI: Интерфейс преобразования текста в речь.

3.1.21 VQ: Векторное квантование.

3.1.22 VXC: Векторное кодирование возбуждения. Синоним CELP.

3.2 Символы и сокращения

3.2.1 Математические операторы

Математические операторы, используемые в настоящем стандарте, аналогичны используемым в языке программирования С. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.

+ Сложение.

– Вычитание (как бинарный оператор) или отрицание (как унарный оператор).

++ Инкремент.

– – Декремент.

* Умножение.

^ Возведение в степень.

/ Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до одного, а -7/4 и 7/-4 округляются до минус одного.

// Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до двух, а -3//2 округляется до минус двух.

DIV Целочисленное разделение с округлением результата в сторону –.

|| Абсолютное значение.

|х| = х, когда х>0;

|х| = 0, когда х == 0;

|х| = –х, когда х<0.

% Деление с остатком. Операция определена только для положительных чисел.

Sign () Принимает следующие значения:

Sign (x) = 1,

когда х>0;

Sign (x) = 0,

когда х = 0;

Sign (x) = -1,

когда х<0.

NINT () Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.

sin

Синус.

cos

Косинус.

exp

Экспонента.

Квадратный корень.

Логарифм по основанию 10.

Натуральный логарифм.

Логарифм по основанию 2.

3.2.2 Логические операторы

II

логическое ИЛИ.

&&

Логическое И.

!

Логическое НЕ.

3.2.3 Операторы сравнения

>

Больше.

>=

Больше или равно.

<

Меньше.

<=

Меньше или равно.

==

Равно.

!=

Не равно.

max [,…,]

Максимальное значение.

min [,…,]

Минимальное значение.

3.2.4 Побитные операторы

Использование побитных операций подразумевает представление чисел в дополнительном коде.

&

Побитное И.

I

Побитное ИЛИ.

>>

Сдвиг вправо.

<<

Сдвиг влево.

3.2.5 Оператор присвоения

=

Оператор присвоения.

3.2.6 Мнемоники

Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.

bslbf

Битовая строка, младший бит слева, в соответствии с настоящим стандартом. Битовые строки пишутся, как строка единиц и нулей внутри одинарных кавычек, например, ‘1000 0001’. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения.

L, С, R, LS, RS

Левый, центральный, правый, левый окружения и правый окружения звуковые каналы объемного звучания.

rpchof

Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка.

uimsbf

Целое число без знака, старший бит первый.

vlclbf

Код с переменной длиной слова, левый бит первый, где “левый” относится к порядку, в котором пишутся коды с переменной длиной.

window

Номер текущего временного интервала в случае block_type==2, 0windowwindow2.

В многобайтовых словах старший байт является первым.

3.2.7 Константы

3,14159265358…

2,71828182845…

3.3 Метод описания синтаксиса потока битов

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

Группа элементов данных может содержать вложенные условные конструкции. Для компактности скобки {} могут быть опущены, когда следует только один элемент данных.

data_element [ ]

data_element [ ] является массивом данных. Количество элементов массива зависит от контекста.

data_element [n] data_element [m] [n]

data_element [n] является (n+1)-ым элементом массива данных. 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 [mn]

data_element [mn] содержит биты массива data_element с m по n включительно.

3.4 Арифметические типы данных

INT32

32-битное знаковое целое с дополнением к нулю.

INT64

64-битное знаковое целое с дополнением к нулю.

3.5 Технический обзор

3.5.1 Типы звуковых объектов MPEG-4

3.5.1.1 Определение типов звуковых объектов приведено в таблице 1.

Таблица 1 – Определение типов звуковых объектов на основе инструментов/модулей

Окончание таблицы 1

Примечания

1 Функция битового поиска обязательна для декодера. Однако функции обнаружения и исправления ошибок являются необязательными.

2 Содержит AAC LC.

3 Содержит таблично-волновой синтез, алгоритмический синтез и звуковые эффекты.

4 Содержит спецификацию General MIDI.

5 Содержит ER AAC LC.

6 Инструмент передискретизации требуется только в комбинации с основным кодером.

3.5.1.2 Описание

3.5.1.2.1 Тип объекта NULL

Объект NULL обеспечивает возможность подать необработанные ИКМ отсчеты непосредственно в звуковой процессор. Декодирование не применяется, однако дескриптор звуковых объектов используется для определения частоты дискретизации и конфигурации звуковых каналов.

3.5.1.2.2 Тип объекта AAC – Main

Объект AAC Main очень схож с профилем AAC Main. Однако дополнительно доступен инструмент PNS. Ограничения профиля AAC Main относительно различных программ и элементов сведения также относятся к типу объекта ААС Main. Все многоканальные возможности ААС MPEG-2 доступны. Декодер, способный декодировать поток основного объекта MPEG-4, также в состоянии анализировать и декодировать поток необработанных данных AAC MPEG-2. С другой стороны, несмотря на то что кодер AAC MPEG-2 может анализировать полезный поток битов AAC MPEG-4 Main, возможна ошибка декодирования из-за использования PNS.

3.5.1.2.3 Тип объекта ААС – Low Complexity (LC)

Тип объекта AAC MPEG-4 Low Complexity является копией профиля пониженной сложности ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.4 Тип объекта ААС – Scalable Sampling Rate (SSR)

Тип объекта ААС MPEG-4 Scalable Sampling Rate является копией профиля масштабируемой частоты дискретизации ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.5 Тип объекта ААС – Long Term Predictor (LTP)

Тип объекта ААС MPEG-4 LTP подобен типу объекта ААС Main, однако предсказатель ААС MPEG-2 заменен долговременным предсказателем. LTP достигает схожего усиления эффективности кодирования, но требует значительно более низкой сложности реализации. Полезный поток бит профиля ААС MPEG-2 LC может быть декодирован декодером объекта LTP AAC MPEG-4 без ограничений.

3.5.1.2.6 Тип объекта SBR

Объект SBR содержит инструмент SBR и может быть объединен с типами звуковых объектов, обозначенными в таблице 2.

Таблица 2 – Типы звуковых объектов, которые могут быть объединены с инструментом SBR

Тип звукового объекта

ID типа объекта

ААС main

1

AAC LC

2

ААС SSR

3

ААС LTP

4

ААС Scalable

6

ER AAC LC

17

ER AAC LTP

19

ER AAC Scalable

20

ER BSAC

22

3.5.1.2.7 Тип объекта ААС Scalable

Объект ААС Scalable использует различный синтаксис полезного потока бит для реализации масштабируемости скорости передачи и полосы пропускания. Доступно большое количество масштабируемых комбинаций, включая комбинации с инструментами TwinVQ и CELP. Однако поддерживаются только моно или 2-канальные стерео объекты.

3.5.1.2.8 Тип объекта TwinVQ

Объект TwinVQ принадлежит схеме кодирования GA, реализующей квантование коэффициентов МДКП. Эта схема кодирования основана на векторном квантовании с фиксированной скоростью вместо кода Хаффмана в ААС.

Доступны низкие скорости передачи для моно и стерео. Схемы масштабируемых скоростей также доступны в профиле Scalable Audio, объединенном с типом объекта ААС Scalable.

3.5.1.2.9 Тип объекта CELP

Объект CELP поддерживается инструментами кодирования речи CELP, которые обеспечивают кодирование на частотах дискретизации 8 кГц и 16 кГц при скоростях передачи данных в диапазоне 4-24 кбит/с. Дополнительно доступны масштабируемость скорости передачи и полосы пропускания для обеспечения масштабируемого декодирования потоков CELP. Объект CELP всегда содержит только один моно сигнал.

3.5.1.2.10 Тип объекта HVXC

Объект HVXC поддерживается инструментами параметрического кодирования речи (HVXC), которые обеспечивают режимы кодирования с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) в масштабируемой и немасштабируемой схеме, режим с переменной скоростью передачи данных (<2,0 кбит/с) и функции изменения высоты и скорости воспроизведения. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.11 Тип объекта TTSI

Объект TTSI поддерживается инструментами TTSI. Это позволяет осуществить передачу фонемных дескрипторов речи на очень низких скоростях для дальнейшего синтеза. MPEG-4 не дает определения самому методу синтеза речи; инструменты TTSI скорее определяют интерфейс нестандартных методов синтеза. Этот метод позволяет получить скорость передачи 200-1200 бит/с.

3.5.1.2.12 Тип объекта Main Synthetic

Объект Main Synthetic позволяет использовать все инструменты MPEG-4 Structured Audio. Это обеспечивает гибкий, высококачественный алгоритмический синтез на основе языка синтеза музыки SAOL, эффективный таблично-волновой синтез с форматом банка сэмплов SASBF и реализует высококачественное сведение и пост-продакшн с набором инструментов Systems AudioBIFS. Описание звука может быть передано на скоростях от 0 кбит/с (не требуется непрерывная передача) до 3-4 кбит/с для чрезвычайно экспрессивных звуков в формате Structured Audio MPEG-4.

3.5.1.2.13 Тип объекта Wavetable Synthesis

Объект таблично-волнового синтеза поддерживается только форматом SASBF и инструментами MIDI. Это позволяет использовать простой сэмплерный синтез, когда качество и гибкость полного набора инструментов синтеза не требуются.

3.5.1.2.14 Тип объекта General MIDI

Объект General MIDI включен только для предоставления функциональной совместимости с существующим контентом. Стандартизованное качество звучания и свойства декодера объектом General MIDI не предоставляются.

3.5.1.2.15 Тип объекта Algorithmic Synthesis и Audio FX

Объект Algorithmic Synthesis обеспечивает синтез звука на основе SAOL при очень низких скоростях передачи. Он также используется для поддержки узла AudioBIFS AudioFX там, где не требуется синтезированный звук.

3.5.1.2.16 Тип объекта Error Resilient (ER) AAC Low Complexity (LC)

Тип объекта Error Resilient (ER) AAC Low Complexity (LC) является копией объекта AAC MPEG-4 Low Complexity с дополнительными функциональными возможностями.

3.5.1.2.17 Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP)

Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP) является копией объекта AAC MPEG-4 LTP с дополнительными функциональными возможностями.

3.5.1.2.18 Тип объекта Error Resilient (ER) AAC scalable

Тип объекта Error Resilient (ER) AAC scalable является копией объекта AAC MPEG-4 scalable с дополнительными функциональными возможностями.

3.5.1.2.19 Тип объекта Error Resilient (ER) TwinVQ

Тип объекта Error Resilient (ER) AAC TwinVQ является копией объекта AAC MPEG-4 TwinVQ с дополнительными функциональными возможностями.

3.5.1.2.20 Тип объекта Error Resilient (ER) BSAC

Объект BSAC ER поддерживается инструментом точного масштабирования (BSAC). Это позволяет обеспечить как устойчивость к ошибкам, так и точную масштабируемость шага квантования в кодере MPEG-4 General Audio (GA). Данный объект используется в комбинации с инструментами кодирования ААС и заменяет кодирование без потерь и форматирование полезного потока бит кодера AAC MPEG-4. Доступно большое количество масштабируемых уровней, что обеспечивает уровень расширения на скорости 1 кбит/с/канал, то есть 2 кбит/с шага для сигнала стерео.

3.5.1.2.21 Тип объекта Error Resilient (ER) AAC LD

Объект AAC LD поддерживается инструментом кодирования ААС с низкой задержкой. Он также допускает комбинации с инструментами PNS и LTP. Объект ААС LD расширяет использование универсального низкоскоростного кодирования аудио на приложения, требующие очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.1.2.22 Тип объекта Error Resilient (ER) CELP

Объект ER CELP поддерживается инструментами сжатия тишины и ER. Это позволяет уменьшить среднюю скорость передачи благодаря более низкому сжатию для участков тишины с дополнительными функциональными возможностями.

3.5.1.2.23 Тип объекта Error Resilient (ER) HVXC

Объект ER HVXC поддерживается инструментами параметрического речевого кодирования (HVXC), которые обеспечивают режимы с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) и режимы с переменной скоростью передачи данных (<2,0 кбит/с и <4,0 кбит/с), как с использованием масштабирования, так и без него, с возможностью изменения высоты и скорости воспроизведения. Синтаксис инструмента ЕР и способность устранения ошибок поддерживаются для использования в каналах связи, подверженных ошибкам. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.24 Тип объекта Error Resilient (ER) HILN

Объект ER HILN поддерживается инструментами параметрического кодирования звука (HILN: гармонические и индивидуальные линии вместе с шумом), которые обеспечивают кодирование обычных звуковых сигналов при очень низких скоростях передачи в пределах от менее 4 кбит/с до более 16 кбит/с. Доступны масштабируемость скорости передачи с возможностью изменения высоты и скорости воспроизведения. Объект ER HILN поддерживает звуковые объекты моно в широком диапазоне частот дискретизации.

3.5.1.2.25 Тип объекта Error Resilient (ER) Parametric

Объект ER Parametric поддерживается инструментами параметрического кодирования звука и кодирования речи HILN и HVXC. Этот встроенный параметрический кодер комбинирует функциональные возможности объектов ER HILN и ER HVXC. Поддерживаются только звуковые сигналы моно с частотой дискретизации 8 кГц.

3.5.1.2.26 Тип объекта SSC Audio

Объект SSC (синусоидальное кодирование) комбинирует инструменты параметрического кодирования SSC: транзиенты, синусоиды, шум и параметрическое стерео. Поддерживаются сигналы моно, двойное моно и стерео (параметрическое) с частотой дискретизации 44,1 кГц.

3.5.1.2.27 Тип объекта Layer-1 Audio

Объект Layer-1 является копией алгоритма кодирования уровня I.

3.5.1.2.28 Тип объекта Layer-2 Audio

Объект Layer-2 является копией алгоритма кодирования уровня II.

3.5.1.2.29 Тип объекта Layer-3 Audio

Объект Layer-3 схож с алгоритмом кодирования уровня III.

3.5.1.2.30 Тип объекта ALS Audio

Тип объекта ALS копия алгоритма кодирования без потерь (ALS), содержит соответствующие инструменты ALS.

3.5.1.2.31 Тип объекта SLS Audio

Объект SLS поддерживается инструментом масштабируемого кодирования без потерь, который обеспечивает точное масштабирование расширения кодирования без потерь в перцепционных звуковых кодеках MPEG, таких как ААС, позволяя применять различные шаги по улучшению – от качества звучания основного алгоритма до кодирования без потерь и почти незаметного кодирования. Он также обеспечивает stand-alone кодирование звука без потерь, когда основной звуковой кодек отключен.

3.5.1.2.32 SLS Тип объекта SLS Non-Core Audio

Объект SLS non-core поддерживается инструментом масштабируемого кодирования без потерь. Он подобен типу объекта SLS, однако основной звуковой кодек отключен.

3.5.1.2.33 Тип объекта PS

Тип объекта PS содержит инструмент PS и может быть объединен с инструментом SBR.

3.5.1.2.34 Тип объекта MPEG Surround

Объект MPEG Surround содержит служебную информацию MPEG Surround.

3.5.1.2.35 Тип объекта SMR Simple

Тип объекта SMR Simple используется для передачи музыкальных партитур для их аудио и видео обработки. Кодированные данные содержат информацию относительно основной партитуры, частей (то есть партий отдельных инструментов), возможных многоязычных текстов, связанных с частями, правил визуального форматирования, которые будут использоваться при обработке видео, шрифтов для специальных музыкальных символов и информации синхронизации. Шрифты и информация синхронизации представлены как двоичные данные, остальные – как XML данные. Тип объекта SMR Simple может передать XML данные в виде простого XML текста или как gzip XML.

3.5.1.2.36 Тип объекта SMR Main

Тип объекта SMR Main может передавать музыкальные партитуры, как тип объекта SMR Simple, однако в этом случае XML данные могут быть закодированы инструментами MPEG-B.

3.5.1.2.37 Тип объекта Error Resilient (ER) AAC ELD

Тип объекта с улучшенной низкой задержкой (ER ААС ELD) идентичен типу объекта ER AAC LD с добавлением банка фильтров с низкой задержкой (LDFB) и улучшенного окна. Возможны комбинации с инструментом PNS, так же как и с инструментом низкой задержки SBR. Тип объекта ER AAC ELD расширяет применение универсального низкоскоростного кодирования звука для приложений, требующих очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.2 Звуковые профили и уровни

3.5.2.1 Профили

Определены следующие звуковые профили (см. таблицу 3):

1 Речевой профиль обеспечивает параметрический речевой кодер, речевой кодер CELP и интерфейс преобразования текста в речь.

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

3 Масштабируемый профиль – надмножество речевого профиля, является подходящим для масштабируемого кодирования речи и музыки для Интернета и цифрового вещания.

4 Основной профиль – надмножество масштабируемого профиля, речевого профиля и профиля звукового синтеза, содержит инструменты для обычного и синтезированного звука.

5 Профиль высокого качества содержит речевой кодер CELP и кодер низкой сложности ААС, включающий долгосрочное предсказание. Масштабируемое кодирование может быть выполнено объектом типа AAC Scalable. Дополнительно может применяться новый ER синтаксис потока битов.

6 Профиль низкой задержки содержит речевые кодеры HVXC и CELP (дополнительно использующие ER синтаксис), кодер ААС низкой задержки и интерфейс преобразования текста в речь TTSI.

7 Профиль натурального звука содержит все доступные в MPEG-4 инструменты для кодирования натурального звука.

8 Профиль звука для Интернета содержит типы объектов с низкой задержкой и масштабированием ААС, включая TwinVQ и BSAC. Эта конфигурация предназначена для расширения коммуникационных приложений при помощи не-MPEG алгоритмов кодирования речи с высоким качеством.

9 Профиль ААС содержит тип звукового объекта 2 (AAC-LC).

10 Профиль ААС высокой производительности содержит типы звуковых объектов 5 (SBR) и 2 (AAC-LC). Профиль ААС высокой производительности является надмножеством профиля ААС.

11 Профиль ААС высокой производительности версии 2 содержит типы звуковых объектов 5 (SBR), 29 (PS) и 2 (AAC-LC). Профиль ААС высокой производительности версии 2 является надмножеством профиля ААС высокой производительности.

12 Профиль ААС с низкой задержкой содержит тип звукового объекта 23 (ER AAC LD).

Таблица 3 – Определение звуковых профилей

ID типа объекта

Тип объекта Audio

Speech Audio Profile

Synthetic Audio Profile

Scalable Audio Profile

Main Audio Profile

High Quality Audio Profile

Low Delay Audio Profile

Natural Audio Profile

Mobile Audio Internet-
working Profile

AAC Profile

High Efficiency AAC Profile

High Efficiency AAC v2 Profile

Low Delay AAC Profile

0

Null

1

ААС main

X

X

2

AAC LC

X

X

X

X

X

X

X

3

ААС SSR

X

X

4

ААС LTP

X

X

X

X

5

SBR

X

X

6

AAC Scalable

X

X

X

X

7

TwinVQ

X

X

X

8

CELP

X

X

X

X

X

X

9

HVXC

X

X

X

X

X

10

(зарезервировано)

11

(зарезервировано)

12

TTSI

X

X

X

X

X

X

13

Main synthetic

X

X

14

Wavetable synthesis

X*

X*

15

General MIDI

X*

X*

16

Algorithmic Synthesis and Audio FX

X*

X*

17

ER AAC LC

X

X

X

18

(зарезервировано)

19

ER AAC LTP

X

X

20

ER AAC Scalable

X

X

X

21

ER TwinVQ

X

X

22

ER BSAC

X

X

23

ER AAC LD

X

X

X

X

24

ER CELP

X

X

X

25

ER HVXC

X

X

26

ER HILN

X

27

ER Parametric

X

28

SSC

29

PS

X

30

MPEG Surround

31

(escape)

32

Layer-1

33

Layer-2

34

Layer-3

35

DST

36

ALS

37

SLS

38

SLS non-core

39

ER AAC ELD

40

SMR Simple

41

SMR Main

В дополнение к описаниям профилей, данным выше, необходимо отметить, что объекты ААС Scalable, использующие широкополосный уровень ядра CELP (с или без синтаксиса полезного битового потока ER) не являются частью какого бы то ни было звукового профиля.

3.5.2.2 Единицы сложности

Единицы сложности введены для того, чтобы дать приблизительную оценку сложности декодера в терминах вычислительной мощности и использования RAM, необходимых для обработки полезной части потока бит MPEG-4 Аудио в зависимости от определенных параметров.

Приблизительная вычислительная мощность дана в единицах вычислительной сложности (PCU), выраженных в MOPS. Приблизительное использование оперативной памяти дано в единицах использования памяти (RCU), выраженных в килословах (1000 слов). Количество RCU не включает в себя объем буфера, который может быть разделен между различными объектами и/или каналами.

Если уровень профиля определен максимальным числом единиц сложности, то гибкая конфигурация декодера, обрабатывающего различные типы объектов, допустима при условии, что оба значения сложности (РСU и RCU) для декодирования и преобразования частоты дискретизации (если требуется) не превышают этот предел.

Таблица 4 дает оценку сложности для различных типов объектов. Значения PCU даны в MOPS на канал, значения RCU – в килословах на канал (в ААС термин “канал” соответствует основному каналу, например канал SCE, один канал СРЕ или канал независимо переключаемого ССЕ).

Таблица 4 – Сложность типов звуковых объектов и преобразования частоты дискретизации

Тип объекта

Параметры

PCU (MOPS)

RCU

Примечания

ААС Main

fs = 48 кГц

5

5

1

AAC LC

fs = 48 кГц

3

3

1

ААС SSR

fs = 48 кГц

4

3

1

ААС LTP

fs = 48 кГц

4

4

1

SBR

fs = 24/48 кГц (in/out) (SBR tool)

3

2.5

1

fs = 24/48 кГц (in/out) (Low Power SBR tool)

2

1.5

1

fs = 48/48 кГц (in/out) (Down Sampled SBR tool)

4.5

2.5

1

fs = 48/48 кГц (in/out)

(Low Power Down Sampled)

SBR tool)

3

1.5

1

AAC Scalable

fs = 48 кГц

5

4

1, 2

TwinVQ

fs = 24 кГц

2

3

1

CELP

fs = 8 кГц

1

1

CELP

fs = 16 кГц

2

1

CELP

fs = 8/16 кГц (bandwidth scalable)

3

1

HVXC

fs = 8 кГц

2

1

TTSI

4

General MIDI

4

1

Wavetable

Synthesis

fs = 22,05 кГц

Зависит от потока битов

Зависит от потока битов

Main Synthetic

Зависит от потока битов

Зависит от потока битов

Algorithmic Synthesis and AudioFX

Зависит от потока битов

Зависит от потока битов

Sampling Rate Conversion

rf = 2, 3, 4, 6, 8, 12

2

0.5

3

ER AAC LC

fs = 48 кГц

3

3

1

ER AAC LTP

fs = 48 кГц

4

4

1

ER AAC Scalable

fs = 48 кГц

5

4

1, 2

ER TwinVQ

fs = 24 кГц

2

3

1

ER BSAC

fs = 48 кГц (Размер входного буфера = 26000 битов)

4

4

1

fs = 48 кГц (Размер входного буфера = 106000 битов)

4

8

ER AAC LD

fs = 48 кГц

3

2

1

ER CELP

fs = 8 кГц

2

1

fs = 16 кГц

3

1

ER HVXC

fs = 8 кГц

2

1

ER HILN

fs = 16 кГц, ns=93

15

2

6

fs = 16 кГц, ns=47

8

2

ER Parametric

fs = 8 кГц, ns=47

4

2

5, 6

ER AAC ELD

fs = 48 кГц

3

2

1

ER AAC ELD, Low Delay SBR tool only

fs = 24/48 кГц (in/out) (SBR tool)

3

2.5

1

fs = 24/48 кГц (in/out) (Low Power SBR tool)

2

1.5

1

fs = 48/48 кГц (in/out) (Down Sampled SBR tool)

4.5

2.5

1

fs = 48/48 кГц (in/out)

(Low Power Down Sampled])

SBR tool)

3

1.5

1

Определения:

fs = частота дискретизации

rf = отношение частот дискретизации

Примечания

1 PCU пропорционально частоте дискретизации.

2 Включает основной декодер.

3 Сложность для синтеза речи не учитывается.

4 Параметрический кодер в режиме HILN, для режима HVXC см. ER HVXC.

5 PCU зависит от fs и ns, см. ниже.

6 Преобразование частоты дискретизации необходимо, если объекты с различными частотами дискретизации объединены в сцене. Указанные значения должны быть добавлены для каждого необходимого преобразования.

PCU для HILN:

Вычислительная сложность HILN зависит от частоты дискретизации fs и максимального числа синусоид ns, которое должно быть синтезировано одновременно. Значение ns для фрейма является общим количеством гармонических и индивидуальных линий, синтезируемых в этом фрейме, то есть суммой начальных, промежуточных и конечных линий. Для fs в кГц PCU в MOPS вычисляется следующим образом:

PCU=(1 + 0,15*ns)*fs/16

Типовые максимальные значения ns составляют 47 для HILN 6 кбит/с и 93 для потоков HILN 16 кбит/с.

PCU и RCU для ААС:

Для типов объектов ААС PCU и RCU зависят от частоты дисретизации и конфигурации каналов следующим образом:

PCU

PCU = (fs / fs_ref) * PCU_ref * (2 * #СРЕ + #SCE + #LFE + #IndepCouplingCh + 0.3 * #DepCouplingCh)

fs: фактическая частота дискретизации

fs_ref: эталонная частота дискретизации (частота дискретизации для данного PCU_ref)

PCU_ref: эталонное PCU, данное в таблице 4

#SCE: количество SCE

РЕ:…

RCU

#СРЕ <2:

RCU = RCU_ref * [#SCE + 0,5 * #LFE + 0,5 * #IndepCouplingCh + 0,4 * #DepCouplingCh] + [RCU_ref + (RCU_ref – 1)] * #CPE

#CPE> = 2:

RCU = RCU_ref * [#SCE + 0,5 * #LFE + 0,5 * #IndepCouplingCh + 0,4 * #DepCouplingCh] + [RCU_ref + (RCU_ref – 1) * (2 * #CPE – 1)]

RCU_ref: эталонное RCU, данное в таблице 4

#SCE: количество SCE

#CPE: количество CPE

3.5.2.3 Уровни профилей

Под числом звуковых каналов понимается число основных звуковых каналов. На основании количества основных звуковых каналов (А) в таблице 5 указано число каналов LFE (L), число независимо переключаемых спаренных каналов (l) и число зависимо переключаемых спаренных каналов (D) для типов объектов, полученных из многоканального ААС в форме A.L.I.D.

Таблица 5 – Максимальное число индивидуальных типов каналов ААС в зависимости от указанного количества основных звуковых каналов

Количество основных звуковых каналов

АОТ

1

2

3

1 (ААС main)

1.0.0.0

2.0.0.0

5.1.1.1

2 (ААС LC)

1.0.0.0

2.0.0.0

5.1.0.1

3 (ААС SSR)

1.0.0.0

2.0.0.0

5.1.0.0

4 (ААС LTP)

1.0.0.0

2.0.0.0

5.1.0.1

17 (ER AAC LC)

1.0.0.0

2.0.0.0

5.1.0.0

19 (ER ААС LTP)

1.0.0.0

2.0.0.0

5.1.0.0

23 (ER ААС LD)

1.0.0.0

2.0.0.0

5.1.0.0

Примечание – В случае масштабируемых схем кодирования для определения количества объектов, допустимых по сложности, учитывается только первая реализация каждого типа объекта. Например, в масштабируемом кодере, состоящем из основного кодера CELP и двух уровней расширения, реализованных средствами масштабируемых объектов ААС, считается один объект CELP и один масштабируемый объект ААС; учитываются их соответствующие показатели сложности, так как практически отсутствуют затраты, связанные со вторым (и выше) уровенем расширения GA.

Уровни профиля речи

Определены два уровня по числу объектов:

1. Один речевой объект.

2. До 20 речевых объектов.

Уровни профиля синтезированного звука

Определены три уровня:

1. Синтезированный звук 1: все элементы полезной части потока бит могут использоваться с:

– режимом пониженной производительности

– только основными частотами дискретизации

– только одним объектом TTSI

2. Синтезированный звук 2: все элементы полезной части потока бит могут использоваться с:

– режимом средней производительности

– только основными частотами дискретизации

– максимум четырьмя объектами TTSI

3. Синтезированный звук 3: все элементы полезной части потока бит могут использоваться с:

– режимом высокой производительности

– максимум двенадцатью объектами TTSI

– уровнями масштабируемого профиля

Профилем определены четыре уровня; четвертый уровень определяется единицами сложности:

1. Максимальное значение частоты дискретизации – 24 кГц, один моно объект (все типы объектов).

2. Максимальное значение частоты дискретизации – 24 кГц, один стерео объект или два моно (все типы объектов).

3. Максимальное значение частоты дискретизации – 48 кГц, один стерео объект или два моно (все типы объектов).

4. Максимальное значение частоты дискретизации – 48 кГц, один 5-канальный объект или несколько объектов с одним целочисленным множителем частоты дискретизации максимум для двух каналов.

Разрешена гибкая конфигурация при PCU<30 и RCU <19.

Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) допускается длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) не допускаются моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 (ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для всех масштабируемых конфигураций. Если тип звукового объекта 8 (CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 (TwinVQ) используется как основной кодер уровня, разрешен только один моно уровень TwinVQ.

Уровни основного профиля

Основной профиль содержит все натуральные и синтезированные типы объектов. Уровни определяются как комбинация двух различных типов уровней двух различных показателей, определенных для натуральных инструментов (показатели на основе вычислительной мощности) и инструментов синтеза (макропоказатели).

Для типов объектов, не принадлежащих профилю синтезированного звука, определены четыре уровня:

– Натуральный звук 1: PCU<40, RCU<202.

– Натуральный звук 2: PCU<80, RCU<643.

– Натуральный звук 3: PCU<160, RCU<1284.

– Натуральный звук 4: PCU<320, RCU<256.

Для типов объектов, принадлежащих к профилю синтезированного звука, определены те же самые три уровня, то есть синтезированный звук 1, синтезированный звук 2 и синтезированный звук 3.

Четыре уровня определены для основного профиля:

– Натуральный звук 1 + синтезированный звук 1.

– Натуральный звук 2 + синтезированный звук 1.

– Натуральный звук 3 + синтезированный звук 2.

– Натуральный звук 4 + синтезированный звук 3.

Для типов звуковых объектов 1 (ААС main), 2 (ААС LC), 3 (ААС SSR) и 4 (ААС LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 1 (ААС main), 2 (ААС LR), 3 (ААС SSR) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 (ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 в любой из масштабируемых конфигураций. Если тип звуковых объектов 8 (CELP) используется как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 (TwinVQ) используется как основной кодер слоя, то разрешен только один моно уровень TwinVQ.

Уровни профиля высокого качества приведены в таблице 6.

Таблица 6 – Уровни профиля высокого качества

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Max PCU**

Max RCU**

EP-Tool: Максимальная избыточность класса
FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

2

22,05

5

8

0

0

2

2

48

10

8

0

0

3

5

48

25

12***

0

0

4

5

48

100

42***

0

0

5

2

22,05

5

8

20

9

6

2

48

10

8

20

9

7

5

48

25

12***

20

22

8

5

48

100

42***

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 5-8 не включают оперативную память и вычислительную сложность для инструмента ЕР.

*** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Для типов звуковых объектов 2 (ААС LC), 4 (ААС LTP), 17 (ER ААС LC) и 19 (ER AAC LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3, 4, 5, 6, 7 и 8. Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3, 4, 5, 6, 7 и 8. Для типа звуковых объектов 6 и 20 (ER) AAC Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 8 или 24 (ER) CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2.

Уровни профиля низкой задержки приведены в таблице 7.

Таблица 7 – Уровни профиля низкой задержки

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Max PCU**

Max RCU**

EP-Tool: Максимальная избыточность класса FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

1

8

2

1

0

0

2

1

16

3

1

0

0

3

1

48

3

2

0

0

4

2

48

24

12***

0

0

5

1

8

2

1

100

5

6

1

16

3

1

100

5

7

1

48

3

2

20

5

8

2

48

24

12***

20

9

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 5-8 не включают оперативную память и вычислительную сложность для инструмента ЕР.

*** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Уровни профиля натурального звука приведены в таблице 8.

Таблица 8 – Уровни профиля натурального звука

Уровень

Максимальная частота дискретизации, кГц

Max PCU**

EP-Tool: Максимальная избыточность класса FEC*,
%

EP-Tool: Максимальное число этапов чередования на объект

1

48

20

0

0

2

96

100

0

0

3

48

20

20

9

4

96

100

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 3 и 4 не включают оперативную память и вычислительную сложность для инструмента ЕР.

Для данного профиля нет ограничений по RCU.

Для типов звуковых объектов 1 (AAC main), 2 (AAC LC), 3 (AAC SSR), 4 (AAC LTP), 17 (ER ААС LC) и 19 (ER AAC LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 1 (ААС main), 2 (ААС LC), 3 (ААС SSR) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 и 20 (ER) AAC Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 8 или 24 (ER) CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 или 21 (ER) TwinVQ) будет использоваться как основной кодер уровня, то только один моно уровень TwinVQ допустим.

Уровни профиля звука для Интернета приведены в таблице 9.

Таблица 9 – Уровни профиля звука для Интернета

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Мах PCU**

Мах
RCU
**, ***

Максимальное число объеков аудио

ЕР-Tооl: Максимальная избыточность класса
FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

1

24

2.5

4

1

0

0

2

2

48

10

8

2

0

0

3

5

48

25

12****

0

0

4

1

24

2.5

4

1

20

5

5

2

48

10

8

2

20

9

6

5

48

25

12****

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более, чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Максимальное значение RCU для одного канала в любом объекте этой конфигурации – 4. Для ER BSAC это является ограничением входного размера буфера. Максимальный возможный размер входного буфера в битах для этого случая дается PCU/RCU (таблица 4).

*** Уровни 4-6 не включают оперативную память и вычислительную сложность для инструмента ЕР.

**** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Для типа звуковых объектов 17 (ER ААС LC) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3, 4, 5 и 6. Для типа звуковых объектов 20 (ER ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 21 (ER TwinVQ) будет использоваться как основной кодер уровня, то только один моно уровень TwinVQ допустим.

Уровни профиля ААС приведены в таблице 10.

Таблица 10 – Уровни профиля ААС

Уровень

Максимальное число каналов/объект

Максимальная частота дискретизации, кГц

Max PCU

Max RCU

1

2

24

3

5

2

2

48

6

5

3

не применяется

не применяется

не применяется

не применяется

4

5

48

19

15

5

5

96

38

15

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Уровни с пометкой “не применяется” введены для сохранения иерархической структуры профиля ААС и профиля ААС высокой производительности. Следовательно, декодер, поддерживающий профиль ААС высокой производительности на данном уровне, может декодировать поток профиля ААС того же самого или более низкого уровня. Уровни с пометкой “не применяется” не обозначены в таблице audioProfileLevellndication (таблица 14).

Уровни профиля ААС высокой производительности приведены в таблице 11.

Таблица 11 – Уровни профиля ААС высокой производительности

Уровень

Максимальное число каналов/ объект

Максимальная частота дискретизации ААС, SBR отсутствует, кГц

Максимальная частота дискретизации ААС, SBR присутствует, кГц

Максимальная частота дискретизации SBR, кГц (ввод/вывод)

Мах PCU

Мах RCU

Max PCU, мало-
мощный SBR

Max RCU, мало-
мощный SBR

1

NA

NA

NA

NA

NA

NA

NA

NA

2

2

48

24

24/48

9

10

7

8

3

2

48

48

48/48 (примечание 1)

15

10

12

8

4

5

48

24/48 (примечание 2)

48/48 (примечание 1)

25

28

20

23

5

5

96

48

48/96

49

28

39

23

Примечание 1 – Для уровней 3 и 4 декодера является обязательным управление инструментом SBR в режиме децимации, если частота дискретизации ядра ААС превышает 24 кГц. Следовательно, если инструмент SBR обрабатывает сигнал ААС на частоте 48 кГц, то внутренняя частота дискретизации инструмента SBR составит 96 кГц, однако выходной сигнал будет подвергнут децимации инструментом SBR до 48 кГц.

Примечание 2 – Для одного или двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 48 кГц. Для более чем двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 24 кГц.

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Уровни профиля ААС высокой производительности версии 2 приведены в таблице 12.

Таблица 12 – Уровни профиля ААС высокой производительности версии 2

Уровень (приме-
чание 1)

Макси-
мальное число каналов/
объект

Максимальная частота дискретизации ААС, SBR отсутствует, кГц

Максимальная частота дискретизации ААС, SBR присутствует, кГц

Максимальная частота дискретизации SBR, кГц (ввод/вывод)

Мах PCU

Мах RCU

Max PCU HQ/LP SBR (примечание 5)

Max RCU HQ/LP SBR (примечание 5)

1

NA

NA

NA

NA

NA

NA

NA

NA

2

2

48

24

24/48

9

10

9

10

3

2

48

24/48 (примечание 3)

48/48 (примечание 2)

15

10

15

10

4

5

48

24/48 (примечание 4)

48/48 (примечание 2)

25

28

20

23

5

5

96

48

48/96

49

28

39

23

Примечание 1 – Декодеры уровней 2, 3 и 4 НЕ ААС профиля версии 2 реализуют базовую версию параметрического инструмента стерео. Декодер уровня 5 не должен быть ограничен базовой версией параметрического инструмента стерео.

Примечание 2 – Для уровней декодера 3 и 4 инструмент SBR должен использоваться в режиме децимации, если частота дискретизации ядра ААС выше, чем 24 кГц. Следовательно, если инструмент SBR будет обрабатывать сигнал ААС с частотой дискретизации 48 кГц, то внутренняя частота дискретизации инструмента SBR составит 96 кГц, однако при этом входной сигнал будет децимирован инструментом SBR до 48 кГц.

Примечание 3 – Если присутствуют параметрические стерео данные, то максимальная частота дискретизации ААС составляет 24 кГц, в противном случае максимальная частота дискретизации ААС составляет 48 кГц.

Примечание 4 – Для одного или двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 48 кГц. Для большего числа каналов максимальная частота дискретизации ААС с включенным SBR составляет 24 кГц.

Примечание 5 – Количество PCU/RCU дается для декодера, использующего инструмент SBR, если необходимо.

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Декодер профиля НЕ ААС v2 обрабатывает с помощью инструмента HQ SBR потоки бит, содержащие параметрические стерео данные. Для потоков бит, не содержащих параметрические стерео данные, декодер профиля НЕ ААС v2 может использовать инструмент HQ SBR или инструмент LP SBR.

Только потоки бит, содержащие строго один отдельный канальный элемент ААС, могут содержать параметрические стерео данные. Потоки бит, содержащие больше одного канала в части ААС, не должны содержать параметрические стерео данные.

Уровни профиля ААС с низкой задержкой приведены в таблице 13.

Таблица 13 – Уровни профиля ААС с низкой задержкой

Уровень

Максимальное число каналов/объект

Максимальная частота дискретизации, кГц

epConfig

1

2

48

0

LTP не разрешен. Импульсные данные не разрешены.

3.5.2.4 аudioProfileLevellndication

audioProfileLevellndication – элемент данных InitialObjectDescriptor. Он показывает профиль и уровень, требуемые для обработки контента, ассоциируемого с InitialObjectDescriptor, согласно таблице 14.

Таблица 14 – Значения audioProfileLevellndication

Значение

Профиль

Уровень

0x00

Зарезервировано для ISO

0x01

Main Audio Profile

L1

0x02

Main Audio Profile

L2

0x03

Main Audio Profile

L3

0x04

Main Audio Profile

L4

0x05

Scalable Audio Profile

L1

0x06

Scalable Audio Profile

L2

0x07

Scalable Audio Profile

L3

0x08

Scalable Audio Profile

L4

0x09

Speech Audio Profile

L1

0х0A

Speech Audio Profile

L2

0х0В

Synthetic Audio Profile

L1

0х0С

Synthetic Audio Profile

L2

0x0D

Synthetic Audio Profile

L3

0х0Е

High Quality Audio Profile

L1

0x0F

High Quality Audio Profile

L2

0x10

High Quality Audio Profile

L3

0x11

High Quality Audio Profile

L4

0x12

High Quality Audio Profile

L5

0x13

High Quality Audio Profile

L6

0x14

High Quality Audio Profile

L7

0x15

High Quality Audio Profile

L8

0x16

Low Delay Audio Profile

L1

0x17

Low Delay Audio Profile

L2

0x18

Low Delay Audio Profile

L3

0x19

Low Delay Audio Profile

L4

0x1A

Low Delay Audio Profile

L5

0x1B

Low Delay Audio Profile

L6

0x1С

Low Delay Audio Profile

L7

0x1D

Low Delay Audio Profile

L8

0x1E

Natural Audio Profile

L1

0x1F

Natural Audio Profile

L2

0x20

Natural Audio Profile

L3

0x21

Natural Audio Profile

L4

0x22

Mobile Audio Internetworking Profile

L1

0x23

Mobile Audio Internetworking Profile

L2

0x24

Mobile Audio Internetworking Profile

L3

0x25

Mobile Audio Internetworking Profile

L4

0x26

Mobile Audio Internetworking Profile

L5

0x27

Mobile Audio Internetworking Profile

L6

0x28

AAC Profile

L1

0x29

AAC Profile

L2

0х2A

AAC Profile

L4

0x2B

ААС Profile

L5

0х2С

High Efficiency AAC Profile

L2

0x2D

High Efficiency AAC Profile

L3

0х2E

High Efficiency AAC Profile

L4

0x2F

High Efficiency AAC Profile

L5

0x30

High Efficiency AAC v2 Profile

L2

0x31

High Efficiency AAC v2 Profile

L3

0x32

High Efficiency AAC v2 Profile

L4

0x33

High Efficiency AAC v2 Profile

L5

0x34

Low Delay AAC Profile

L1

0x35

Baseline MPEG Surround Profile

L1

0x36

Baseline MPEG Surround Profile

L2

0x37

Baseline MPEG Surround Profile

L3

0x38

Baseline MPEG Surround Profile (see)

L4

0x39

Baseline MPEG Surround Profile (see)

L5

0х3A

Baseline MPEG Surround Profile (see)

L6

0х3В – 0x7F

reserved for ISO use

0x80 – 0xFD

user private

0xFE

no audio profile specified

0xFF

no audio capability required

Примечание – Использование значения 0xFE указывает, что описанный этим дескриптором InitialObjectDescriptor контент не соответствует никакому аудиопрофилю. Использование значения равного 0xFF указывает, что никакие возможности аудио профиля не требуются для этого контента.

3.6 Интерфейс MPEG-4 Системы

3.6.1 Введение

Потоки заголовка транспортируются через MPEG-4 Системы. Эти потоки содержат информацию о конфигурации, которая необходима для декодирования и анализа необработанных потоков данных. Однако обновление необходимо только при изменениях в конфигурации.

3.6.2 Синтаксис

3.6.2.1 AudioSpecificConfig

AudioSpecificConfig () расширяет абстрактный класс. В этом случае наличие AudioSpecificConfig () обязательно (см. таблицы 15, 16).

Таблица 15 – Синтаксис AudioSpecificConfig ()

Продолжение таблицы 15

Продолжение таблицы 15

Окончание таблицы 15

Таблица 16 – Синтаксис GetAudioObjectType ()

3.6.2.2 Полезная нагрузка

3.6.2.2.1 Краткий обзор

Для объекта NULL размер полезной нагрузки должен быть целым 16-битным числом со знаком в диапазоне от -32768 до +32767. Размеры полезной нагрузки для всех других звуковых типов объекта определены в соответствующих частях. Полезные нагрузки являются основными объектами, которые будет переносить транспортный уровень систем. Для всех схем кодирования натурального звука выходной сигнал масштабируется до максимума 32767/-32768. Однако компоновщик систем MPEG-4 ожидает масштабирование.

Полезные нагрузки без побайтного выравнивания добавляются в конец потока, так как транспортные схемы требуют выравнивания.

3.6.2.2.2 Соответствие полезных звуковых нагрузок блокам доступа и элементарным потокам

3.6.2.2.2.1 AAC Main, AAC LC, AAC SSR, AAC LTP

Одной полезной нагрузке верхнего уровня (raw_data_block ()) соответствует один блок доступа. Последующие блоки доступа формируют один элементарный поток.

3.6.2.2.2.2 AAC Scalable

Одной полезной нагрузке верхнего уровня (aac_scalable_main_element (), ASME) соответствует один блок доступа. Последующие блоки доступа формируют один элементарный поток.

Одной полезной нагрузке верхнего уровня (aac_scalable_extension_element (), ASEE) соответствует один блок доступа. Последующие блоки доступа того же самого уровня расширения формируют один элементарный поток. Это приводит к индивидуальным элементарным потокам для каждого уровня.

Потоки последующих уровней зависят друг от друга.

3.6.2.2.2.3 ER AAC LC, ER AAC SSR, ER AAC LTP, ER AAC, ER AAC LD

Элементы данных соответствующих полезных нагрузкок верхнего уровня (er_raw_data_block (), aac_scalable_main_element (), aac_scalable_extension_element ()) подразделены на различные категории в зависимости от ошибочной чувствительности и собраны в экземплярах класса этих категорий. В зависимости от значения epConfig есть несколько способов поставить в соответствие эти экземпляры класса блокам доступа для формирования одного или нескольких элементарных потоков. Последующие элементарные потоки зависят друг от друга.

Примечание – Биты функции byte_alignment (), завершающей полезные нагрузки верхнего уровня AАС, могут быть исключены, если элементы данных согласно полезной нагрузке верхнего уровня не отображаются непосредственно в один блок доступа. Следовательно их можно исключить, если полезная нагрузка верхнего уровня разбита (например, в случае epConfig=1) или подвергнута пост-обработке (например, в случае epConfig=3).

3.6.2.2.2.4 ER AAC ELD

Полезная нагрузка верхнего уровня для ER AAC ELD определена в er_raw_data_block_eld (). Все определения, упомянутые в 3.6.2.2.2.3, также верны для этого АОТ.

3.6.3 Семантика

3.6.3.1 AudioObjectType

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

3.6.3.2 AudioObjectType Ext

Этот элемент данных расширяет диапазон типов звуковых объектов.

3.6.3.3 SamplingFrequency

Частота дискретизации, используемая в этом звуковом объекте. Передается либо непосредственно значение, либо код samplingFrequencylndex.

3.6.3.4 SamplingFrequencylndex

Четыре бита, указывающие частоту дискретизации. Если samplingFrequencylndex равно 15, то фактическое значение частоты дискретизации содержится в SamplingFrequency. Во всех других случаях SamplingFrequency установлено в соответствии с таблицей 17.

Таблица 17 – Индекс частоты дискретизации

samplingFrequencylndex

Значение

0x0

96000

0x1

88200

0x2

64000

0x3

48000

0x4

44100

0x5

32000

0x6

24000

0x7

22050

0x8

16000

0x9

12000

0ха

11025

0xb

8000

0хс

7350

0xd

зарезервировано

0хе

зарезервировано

0xf

escape value

3.6.3.5 Конфигурация каналов

Четыре бита, указывающие конфигурацию выходных звуковых каналов.

Конфигурация каналов приведена в таблице 18.

Таблица 18 – Конфигурация каналов

Значение

Количество каналов

Синтаксические элементы аудио, перечисленные в порядке приема

Отображение канала к динамику

0

определено в АОТ related SpecificConfig

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(), single_channel_element()

центральный фронтальный динамик, левый, правый центральные фронтальные динамики, задние динамики объемного звучания

5

5

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()

центральный фронтальный динамик, левый, правый центральные фронтальные динамики, левый, правый внешние фронтальные динамики, левый, правый задние динамики объемного звучания, фронтальный динамик низкочастотных эффектов

8-15

зарезервировано

3.6.3.6 Элемент данных epConfig

Этот элемент данных сообщает тип схемы обработки ошибок (таблица 19).

Таблица 19 – Элемент данных epConfig

epConfig

0

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

1

Каждый экземпляр класса всех схем обработки ошибок, принадлежащих одному фрейму, расположен отдельно в пределах отдельного блока доступа, то есть существует столько элементарных потоков, сколько экземпляров класса, определенных в пределах фрейма

2

Необходимо применение декодера защиты от ошибок. Определение классов ЕР нормативно не определяется, однако ему дается определение на прикладном уровне. Тем не менее ограничения, введенные для классов ЕР в соответствии с 1.6.9, должны быть удовлетворены

3

Необходимо применение декодера защиты от ошибок. Соответствие между классами ЕР и экземплярами класса ESC определяется элементом данных directMapping

3.6.3.7 Этот элемент данных идентифицирует отображение между классами защиты от ошибок и экземплярами схем обработки ошибок (таблица 20).

Таблица 20 – Элемент данных directMapping

directMapping

0

В резерве

1

Каждый класс защиты от ошибок интерпретируется как экземпляр категории чувствительности к ошибкам (соответствие один к одному), так что выход декодера защиты от ошибок эквивалентен данным epConfig=1

3.6.3.8 extensionSamplingFrequencylndex

Четыре бита, указывающие выходную частоту дискретизации инструмента расширения, соответствующего extensionAudioObjectType, согласно таблице 18.

3.6.3.9 extensionSamplingFrequency

Выходная частота дискретизации инструмента расширения, соответствующего extensionAudioObjectType. Передается непосредственно ее значение или код в форме extensionSamplingFrequencylndex.

3.6.3.10 bits_to_decode

Вспомогательная функция возвращает число битов, еще не декодированных в текущем AudioSpecificConfig (), если о длине этого элемента известно на системном/транспортном уровне. Если размер этого элемента неизвестен, то bits_to_decode () возвращает 0.

3.6.3.11 syncExtensionType

Синхропоследовательность, определяющая начало данных конфигурации расширения. Эти данные конфигурации соответствуют инструменту расширения, кодированные данные которого помещены (обратно совместимым способом) в audioObjectType. Если syncExtensionType присутствует, данные конфигурации инструмента расширения отделены от соответствующего audioObjectType, который учитывает обратно совместимое сообщение. Декодеры, которые не поддерживают инструмент расширения, могут проигнорировать данные конфигурации. Такая обратносовместимая индикация может использоваться только в системах MPEG-A, передающих длину AudioSpecificConfig ().

3.6.3.12 sbrPresentFlag

Флаг, указывающий присутствие или отсутствие данных SBR в случае extensionAudioObjectType == 5 (явная сигнализация SBR). Значение -1 указывает, что sbrPresentFlag не был передан в AudioSpecificConfig (). В этом случае декодер профиля ААС высокой производительности должен быть в состоянии обнаружить присутствие данных SBR в элементарном потоке.

3.6.3.13 extensionAudioObjectType

Пять битов, указывающие расширения типа звукового объекта. Этот тип объекта соответствует инструменту расширения, который используется для увеличения audioObjectType.

3.6.3.14 psPresentFlag

Бит, указывающий присутствие или отсутствие параметрических стерео данных. Значение -1 указывает, что psPresentFlag не был передан в AudioSpecificConfig (). В этом случае декодер профиля ААС высокой производительности v2 должен поддерживать неявную сигнализацию.

3.6.3.15 fillBits

Биты заполнения для побайтного выравнивания ALSSpecificConfig () относительно начала AudioSpecificConfig ().

3.6.3.16 extensionChannelConfiguration

Четыре бита, указывающие конфигурацию каналов расширений BSAC. Эти данные конфигурации доступны в случае явной сигнализации расширений BSAC. Число выходных звуковых каналов определяется из таблицы 9 конфигурации каналов.

3.6.3.17 sacPayloadEmbedding

Флаг типа звукового объекта 30 MPEG Surround, используемый для передачи служебной информации кодированного пространственного звука для декодирования. В зависимости от этого флага полезная нагрузка MPEG Surround, например SpatialFrame (), доступна различными средствами (см. таблицу 21).

Таблица 21 – Элемент данных sacPayloadEmbedding

sacPayload-Embedding

0

Один SpatialFrame () соответствует одному блоку доступа. Последующие блоки доступа формируют один элементарный поток, который всегда будет зависеть от другого элементарного потока, содержащего основные (сведенные) звуковые данные

1

Полезная нагрузка верхнего уровня мультиплексируется в основные (сведенные) звуковые данные. Фактические подробности мультиплексирования зависят от представления звуковых данных (то есть обычно от АОТ). Это приводит к элементарному потоку без реальной полезной нагрузки, который всегда будет зависеть от другого элементарного потока, содержащего как основные (сведенные) звуковые данные, так и мультиплексированные пространственные звуковые данные

3.6.4 Восходящие потоки (потоки клиент-сервер)

3.6.4.1 Введение

Восходящие потоки данных вводятся для того, чтобы позволить удаленному пользователю динамически управлять потоками из сервера.

Сигнал запроса восходящего потока данных поступает на клиентский терминал, предоставляя дескриптор соответствующего элементарного потока с указанием его параметров. Клиентский терминал открывает этот канал восходящего потока данных аналогично открытию нисходящего потока. Объекты (например, кодеры и декодеры), которые подключены через канал восходящего потока данных, известны через параметры дескриптора элементарного потока и ассоциацию дескриптора элементарного потока с определенным дескриптором объекта.

Восходящий поток данных может быть связан с отдельным потоком или группой (нисходящих) потоков. Тип нисходящего потока, связанного с восходящим, определяет область видимости восходящего потока данных. Когда восходящий поток данных связан с отдельным нисходящим потоком, он несет сообщения об этом потоке. Синтаксис и семантика сообщений для MPEG-4 Аудио определены в следующем подзаголовке.

3.6.4.2 Синтаксис AudioUpstreamPayload () (таблица 22)

Таблица 22 – Синтаксис AudioUpstreamPayload ()

3.6.4.3 Определения

upStreamType – 4-битовое беззнаковое целое, представляющее тип восходящего потока данных, в соответствии с таблицей 23.

Таблица 23 – Определение upStreamType

UpStreamType

Тип восходящего звукового потока

0

контроль масштабируемости

1

объединение BSAC фрейма

2

контроль качества

3

контроль скорости передачи

4-15

зарезервировано для будущего использования

avgBitrate [level] – среднее значение скорости передачи в битах в секунду для уровня с большим шагом, который запрашивает клиент для передачи с сервера.

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

multiLayOrSynEle – бит сигнализирует об использовании многоканальной или многоуровневой конфигурации. В этом случае требуется передача номеров уровней или элементов.

layOrSynEle – 6-битовое беззнаковое целое, представляющее число синтаксических элементов (в случае многоканального режима) или число уровней (в случае многоуровнего режима), которым соответствует следующая информация контроля качества. Это число относится к одному из уровней или синтаксических элементов, содержащихся в пределах ассоциируемого звукового объекта. Если звуковой объект не поддерживает ни масштабируемость, ни многоканальные возможности, это значение равно 1.

numFrameExp [layOrSynEle] – это значение указывает количество последних переданных фреймов (2-1), которое учитывается в следующем значении lostFrames.

lostFrames [layOrSynEle] – эта область содержит число потерянных фреймов относительно обозначенного уровня или синтаксического элемента в пределах последних переданных фреймов, о которых сообщает numFrameExp.

avgBitrate – среднее значение скорости передачи в битах в секунду целого звукового объекта, который был запрошен клиентом с сервера.

3.6.4.4 Процесс декодирования

В первую очередь upStreamType анализируется для обнаружения его типа, от которого зависит остальное декодирование.

3.6.4.4.1 Декодирование управления масштабируемости

Далее декодируется значение numOfLayer. Это представляет число элементов данных avgBitrate, которое необходимо считать. После этого следует avgBitratefollows.

3.6.4.4.2 Декодирование чередования во фрейме BSAC

Считывается элемент данных numOfSubFrame. Он представляет собой число подфреймов, которые будут чередоваться в инструменте BSAC. BSAC позволяет корректировку в процессе работы. Далее контент восходящего потока данных передается от клиента на сервер для осуществления динамической и интерактивной передачи. Данные BSAC разбиваются и объединяются в сервере.

3.6.4.4.3 Декодирование контроля качества

Процент потерянных фреймов может быть получен, используя следующую формулу

.

3.6.4.4.4 Декодирование контроля скорости передачи

Происходит обнаружение avgBitrate.

3.6.5 Сигнализация SBR

3.6.5.1 Генерация и сигнализация контента AAC+SBR

Инструмент SBR в комбинации с кодером ААС обеспечивает существенное увеличение эффективности сжатия звука. В то же самое время обеспечивается совместимость с ААС декодерами. Однако качество звука декодеров без инструмента SBR будет значительно ниже по сравнению с теми, которые поддерживают инструмент SBR. Поэтому в зависимости от приложения поставщик контента или его создатель могут выбрать между этими двумя вариантами. Данные SBR всегда внедряются в поток ААС таким образом, чтобы была обеспечена совместимость с ААСextension_payload), a SBR относится к пост-процессингу в декодере. Это позволяет достичь совместимости. Однако путем различной сигнализации создатель контента может выбрать между режимом полного качества и режимом обратной совместимости способом, указанным ниже.

Ни один из методов сигнализации SBR, описанных в этом подзаголовке, не является допустимым для ААС ELD. Вместо этого используется флаг IdSbrPresentFlag в ELDSpecificConfig () для сигнализации использования инструмента Low Delay SBR.

3.6.5.1.1 Обеспечение полного качества звучания AAC+SBR для слушателя

Чтобы гарантировать получение всеми слушателями полного звукового качества AAC+SBR, поток должен соответствовать профилю НЕ АСС и использовать явную сигнализацию, чтобы быть обработанным декодером профиля НЕ АСС. Указанный декодер в состоянии обработать все потоки профиля ААС соответствующего уровня, так как профиль НЕ АСС – надмножество профиля ААС.

3.6.5.1.2 Достижение обратной совместимости с существующими декодерами ААС

Цель этого режима состоит в том, чтобы обеспечить воспроизведение потока на любых ААС декодерах, даже если они не поддерживают инструмент SBR. Совместимые потоки могут быть созданы следующими двумя способами сигнализации:

а) индикация профиля, содержащего ААС данные (например, профиля ААС), кроме профиля НЕ АСС, и использование явной обратносовместимой сигнализации (как описано ниже). Этот метод рекомендуется для всех основных систем MPEG-4, в которых длина AudioSpecificConfig () известна декодеру. Из-за проблемы с LATM при audioMuxVersion == 0 (см. 1.7) этот метод не может использоваться для LATM с audioMuxVersion == 0. При явной обратносовместимой сигнализации данные SBR добавляются в конец AudioSpecificConfig (). Декодеры, которые не поддерживают SBR, проигнорируют эти части, в то время как декодеры профиля НЕ ААС обнаружат ее присутствие и сконфигурируют декодер соответствующим образом;

б) индикация профиля, содержащего ААС, кроме профиля НЕ ААС, и использование неявной сигнализации. В этом режиме нет никакой явной индикации присутствия SBR данных. Декодеры проверяют наличие данных при декодировании потока и используют инструмент SBR, если данные SBR найдены. Это возможно, потому что SBR может быть декодирован без конфигурационных данных SBR при определенном способе выбора выходной частоты дискретизации, как описано ниже для декодеров профиля НЕ ААС.

Оба метода приводят к тому, что часть ААС потоков AAC+SBR будет декодирована декодерами ААС. Декодеры AAC+SBR обнаружат присутствие SBR и декодируют полный качественный поток AAC+SBR.

3.6.5.2 Неявная и явная сигнализация SBR

В этом подразделе описаны различные методы сигнализации SBR и соответствующее поведение декодеров.

Есть несколько способов сигнализаци данных SBR:

1 Неявная сигнализация: Если EXT_SBR_DATA или EXT_SBR_DATA_CRC элементы extension_ payload () обнаружены в полезном битовом потоке, это неявно сигнализирует о присутствии данных SBR. Способность обнаружить и декодировать SBR с неявной сигнализацией обязательна для всех декодеров профиля High Efficiency AAC (HE ААС).

2 Явная сигнализация: наличие данных SBR сигнализируется явным образом посредством типа звукового объекта SBR в AudioSpecificConfig (). Когда используется явная сигнализация, неявная не должна применяться. Допустимы два различных типа явной сигнализации:

а) иерархическая сигнализация: если первый сигнализируемый audioObjectType (AOT) является SBR АОТ, то сигнализируется второй тип звукового объекта, который указывает на основной тип. Этот тип сигнализации не является обратносовместимым. Он может быть необходим в системах, которые не передают длину AudioSpecificConfig (), таких как LATM с audioMuxVersion == 0, где производители контента должны использовать это только по необходимости;

б) обратносовместимая сигнализация: extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (). Этот метод должен использоваться в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Таблица 24 отражает поведение декодера в зависимости от профиля и индикации типа звукового объекта, когда используется неявная или явная сигнализация.

Таблица 24 – Сигнализация SBR и соответствующее поведение декодера

Характеристики полезной нагрузки потока битов

Поведение декодера

Индикация профиля

AudioObjectType расширения

Флаг sbrPresent

raw_data_block

Декодер профиля ААС

Профиль НЕ ААС

Поддержка профилей с ААС, иных, чем высокоэффективный профиль ААС

!=SBR (сигнализация 1)

-1

ААС

Работа ААС

Работа ААС (Примечание 1)

AAC+SBR

Работа ААС

Работа, по крайней мере, ААС должно работать (Примечание 1)

==SBR [сигнализация 2.б]

0

ААС

Работа ААС

Работа ААС (Примечание 2)

1

AAC+SBR

Работа ААС

Работа, по крайней мере, ААС должно работать AAC+SBR (Примечание 3)

Высокоэффективный профиль ААС

==SBR [сигнализация 2.а или 2.б]

1

AAC+SBR

Не определено

Работа AAC+SBR (Примечание 3)

Примечание 1 – Неявная сигнализация: необходимо проверить полезную нагрузку для определения выходной частоты дискретизации или принять наличие данных SBR в полезной нагрузке, означающих, что выходная частота дискретизации равна удвоенной частоте дискретизации samplingFrequency в AudioSpecificConfig () (до тех пор, пока инструмент SBR не используется или двойная частота дискретизации, обозначенная как samplingFrequency, превышает максимальное позволенное для уровня значение, выходная частота дискретизации равна samplingFrequency).

Примечание 2 – Явная сигнализации указывает на отсутствие данных SBR, следовательно, отсутствие неявной сигнализации; выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig ().

Примечание 3 – Выходная частота дискретизации равна extensionSamplingFrequency в AudioSpecificConfig ().

3.6.5.3 Поведение декодера профиля НЕ ААС в случае неявной сигнализации

Если присутствие данных SBR сигнализируется обратносовместимым методом [сигнализация 2.a], extensionAudioObjectType не является SBR AOT, и sbrPresentFlag установлен в – 1, указывая, что неявная сигнализация может произойти.

Так как декодер профиля НЕ ААС представляет собой систему с двойной скоростью, с инструментом SBR, работающим на удвоенной частоте дискретизации основного декодера ААС, выходная частота дискретизации не может быть принята за частоту дискретизации декодера ААС из-за неявной сигнализации SBR. Декодер должен определить выходную частоту дискретизации любым из следующих двух методов:

– проверить присутствие данных SBR в полезном битовом потоке до декодирования. Если никакие данные SBR не найдены, выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig (). Если данные SBR найдены, то частота равна удвоенной samplingFrequency в AudioSpecificConfig;

– предположить, что данные SBR присутствуют и принять выходную частоту дискретизации в два раза больше, чем в AudioSpecificConfig ().

Вышеупомянутое применяется только в том случае, если удвоенная частота дискретизации, сигнализируемая в AudioSpecificConfig (), не превышает максимальную выходную частоту дискретизации, учитывая текущее значение. Следовательно, для декодера профиля НЕ ААС уровней 2, 3 или 4 выходная частота дискретизации равна типовой, которая сигнализируется в AudioSpecificConfig (), если последняя превышает 24 кГц.

Инструмент SBR с децимацией должен использоваться, если нужно гарантировать, что выходная частота дискретизации не будет превышать максимальное допустимое значение для текущего уровня декодера профиля ААС высокой производительности.

3.6.5.4 Поведение декодера профиля НЕ ААС в случае явной сигнализации

Если присутствие данных SBR явно сигнализируется (сигнализация 2), то используется обратно-совместимая явная сигнализация [сигнализация 2.б] или несовместимая явная сигнализация [сигнализация 2.а].

Для обратносовместимой явной сигнализации [сигнализация 2.б] сигнализируемый extensionAudioObjectType является SBR AOT. Для этого передается обратносовместимая явная сигнализация о sbrPresentFlag, который может быть нулем или единицей. Если sbrPresentFlag – нуль, это указывает, что данные SBR отсутствуют и, следовательно, декодер профиля НЕ ААС не должен проверять Fill-элемент на наличие данных SBR или делать предположение о выходной частоте дискретизации в ожидании данных SBR. Если sbrPresentFlag – один, данные SBR присутствуют и декодер профиля НЕ ААС должен управлять инструментом SBR.

Для несовместимой явной сигнализации SBR [сигнализация 2.а] сигнализируемый extensionAudioObjectType явпяется SBR AOT. Для этой иерархической явной сигнализации sbrPresentFlag установлен, если extensionAudioObjectTypeSBR. sbrPresentFlag не передается и, следовательно, невозможно явно сигнализировать об отсутствии неявной сигнализации. Следовательно, при иерархической явной сигнализации данные SBR всегда присутствуют, и декодер профиля НЕ ААС должен управлять инструментом SBR.

Инструмент SBR с децимацией должен использоваться, если выходная частота дискретизации превысит максимально допустимую выходную частоту дискретизации для текущего уровня или если extensionSamplingFrequency равна samplingFrequency.

3.6.6 Сигнализация параметрического стерео (PS)

3.6.6.1 Генерация и сигнализация контента НЕ ААС+PS

Инструмент PS в комбинации с кодером НЕ ААС обеспечивает хорошее качество стерео при очень низких скоростях передачи. В то же самое время он позволяет обеспечить совместимость с существующими декодерами НЕ ААС. Однако выход декодера НЕ ААС будет только моно для потока НЕ ААС v2, содержащего данные PS.

Следовательно, в зависимости от приложения поставщик контента или создатель контента могут выбрать из двух вариантов, данных ниже. В целом данные PS всегда помещаются в поток НЕ ААС совместимым образом (в sbr_extension элемент), и PS полностью принадлежит к пост-обработке. Это позволяет достичь совместимости. Посредством различной сигнализации создатель контента может выбрать между режимом полного качества и режимом обратной совместимости, как показано в 3.6.6.1.1 и 3.6.6.1.2.

Для иерархических профилей более высокий профиль в иерархии в состоянии декодировать контент более низкого профиля иерархии. На рисунке 1 отображена иерархическая структура профилей ААС, НЕ ААС и НЕ ААС v2. Из рисунка видно, что декодер профиля НЕ ААС полностью способен декодировать любой поток ААС, при условии, что декодер профиля НЕ ААС имеет тот же или более высокий уровень. Так же декодер профиля НЕ ААС v2 определенного уровня может обработать все потоки профиля НЕ ААС того же самого уровня или ниже, так же как и все потоки профиля ААС того же самого или более низкого уровня.

Рисунок 1 – Структура иерархии профилей ААС, НЕ ААС и НЕ ААС v2 и совместимость между ними

Рисунок 1 – Структура иерархии профилей ААС, НЕ ААС и НЕ ААС v2 и совместимость между ними

3.6.6.1.1 Обеспечение полного звукового качества AAC+SBR+PS для слушателя

Чтобы гарантировать получение слушателями полного звукового качества AAC+SBR+PS, поток должен соответствовать профилю HE AAC v2 и использовать явную иерархическую сигнализацию [сигнализация 2.а, как описано ниже] так, чтобы он был воспроизведен декодерами профиля НЕ ААС v2, то есть PS декодерами. Декодер профиля НЕ ААС v2 будет декодировать все потоки профиля НЕ ААС и ААС соответствующего уровня, так как профиль HE AAC v2 является надмножеством профилей НЕ АСС и ААС.

3.6.6.1.2 Достижение обратной совместимости с существующими НЕ ААС и ААС

Цель этого режима состоит в обеспечении возможности воспроизведения потока на всех декодерах профилей ААС и НЕ ААС, даже если они не поддерживают инструмент PS. Совместимые потоки могут быть созданы следующими двумя способами сигнализации:

а) индикация профиля, содержащего SBR данные (например, профиля НЕ ААС), кроме профиля НЕ АСС v2, и использование явной обратносовместимой сигнализации [2.б, как описано ниже]. Этот метод рекомендуется для всех MPEG-4 систем, в которых длина AudioSpecificConfig () известна декодеру. Из-за проблемы с LATM при audioMuxVersion == 0 (см. 1.7) этот метод не может использоваться для LATM с audioMuxVersion == 0. При явной обратносовместимой сигнализации данные PS добавляются в конец AudioSpecificConfig (). Декодеры, которые не поддерживают PS, проигнорируют эти части, в то время как декодеры профиля НЕ ААС v2 обнаружат их присутствие и сконфигурируют декодер соответствующим образом;

б) индикация профиля, содержащего SBR (например, профиля НЕ ААС), кроме профиля НЕ ААС v2, и использование неявной сигнализации. В этом режиме нет никакой явной индикации присутствия PS данных.

Вместо этого декодеры профиля НЕ ААС v2 открывают два выходных канала для потока, содержащего SBR данные с channelConfiguration==1, например моно поток с одним канальным элементом, проверяют наличие PS данных и применяют инструмент PS, если PS данные были обнаружены. Это возможно, так как PS может быть декодировано без конфигурационных данных, если соблюдается определенный способ декодирования каналов в соответствии с профилем НЕ ААС v2.

Оба метода приводят к тому, что часть AAC+SBR потоков AAC+SBR+PS будет декодирована декодерами НЕ ААС, а часть ААС потока AAC+SBR+PS будет декодирована декодерами ААС. Декодеры НЕ ААС v2 обнаружат присутствие PS и декодируют полный качественный поток AAC+SBR+PS.

3.6.6.2 Неявная и явная сигнализация параметрического стерео

В этом подразделе описаны различные методы сигнализации SBR и соответствующее поведение декодеров.

Есть несколько способов сигнализации данных PS:

1 Неявная сигнализация: если bs_extension_id равен EXTENSION_ID_PS, данные PS представлены в элементе sbr_extension; это неявно сигнализирует о присутствии данных PS. Способность обнаружить и декодировать PS с неявной сигнализацией обязательна для всех декодеров профиля High Efficiency ААС v2 (HE AAC v2).

2 Явная сигнализация: наличие данных PS сигнализируется явным образом посредством типа звукового объекта PS и флага psPresentFlag в AudioSpecificConfig (). Когда используется явная сигнализация PS, неявная не должна применяться. Допустимы два различных типа явной сигнализации:

а) иерархическая сигнализация: Если первый сигнализируемый audioObjectType (AOT) является PS AOT, то extensionAudioObjectType устанавливается в SBR и сигнализируется второй тип звукового объекта, который указывает на основной тип. Этот тип сигнализации не является обратно совместимым. Он может быть необходимым в системах, которые не передают длину AudioSpecificConfig (), таких как LATM с audioMuxVersion == 0, где производители контента должны использовать это только по необходимости;

б) обратносовместимая сигнализация: extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (), а флаг psPresentFlag передается в конце обратносовместимой явной сигнализации SBR, указывая наличие или отсутствие данных PS. Этот метод должен использоваться в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Для всех типов сигнализации параметрического стерео channelConfiguration в audioSpecificConfig показывает количество каналов потока ААС. Таким образом, если данные параметрического стерео присутствуют, channelConfiguration равно 1, т.е. один канальный элемент, а инструмент параметрического стерео произведет два выходных канала на основе одного канального элемента и данных параметрического стерео.

Таблица 25 отражает поведение декодера в зависимости от профиля и индикации типа звукового объекта, когда используется неявная или явная сигнализация.

Таблица 25 – Сигнализация PS и соответствующее поведение декодера

Характеристики потока битов

Поведение декодера

Индикация профиля

Сигнализация PS

Флаг psPresent

raw_data_block

Декодеры профиля НЕ ААС

Декодеры профиля НЕ ААС v2

Профиль AАС высоко-
эффективной сети

Сигнализация 1, неявная сигнализация (первый АОТ != PS)

-1

AAC+SBR

Работа AAC+SBR

Работа AAC+SBR (Примечание 1)

AAC+SBR+PS

Работа AAC+SBR

Работа, по крайней мере, AAC+SBR должно работать play AAC+SBR+PS (Примечание 1)

Сигнализация 2.б, обратно-совместимая неявная сигнализация (второй АОТ == SBR)

0

AAC+SBR

Работа AAC+SBR

Работа AAC+SBR (Примечание 2)

1

AAC+SBR+PS

Работа AAC+SBR

Работа, по крайней мере, AAC+SBR должно работать AAC+SBR+PS (Примечание 3)

Профиль высоко-
эффективный AAC v2

Сигнализация 2.а, обратно несовместимая сигнализация (первый АОТ == PS)

1

AAC+SBR+PS

Не определено

Работа AAC+SBR+PS (Примечание 3)

Сигнализация 2.б, обратносовместимая сигнализация (второй АОТ == SBR)

1

AAC+SBR+PS

Не определено

Работа AAC+SBR+PS (Примечание 3)

Примечание 1 – Неявная сигнализация; принять наличие данных PS в полезной нагрузке, получив два выходных канала из одного элемента канала.

Примечание 2 – Явная сигнализация о том, что нет никаких данных PS, следовательно, отсутствует неявная сигнализация.

Примечание 3 – Число выходных каналов равно двум для одного элемента канала, содержащего AAC+SBR+PS данные.

3.6.6.3 Поведение декодера профиля НЕ ААС v2 в случае неявной сигнализации

Если присутствие данных PS сигнализируется неявным обратносовместимым образом [сигнализация 1], то первый сигнализируемый AudioObjectType не является PS AOT и флаг psPresentFlag не считывается из AudioSpecificConfig (). Далее флаг psPresentFlag устанавливается в -1, показывая, что неявная сигнализация параметрического стерео может применяться.

Так как полученный моно поток будет преобразован в стерео выход при наличии данных параметрического стерео в потоке, то декодер профиля НЕ ААС v2 должен подразумевать наличие данных PS и принимать решение о количестве выходных каналов, равном 2 для одного канального элемента, содержащего SBR данные и, возможно, PS данные. Если данных PS не было обнаружено, моно выход должен быть поставлен в соответствие двум открытым каналам для каждого отдельного канального элемента.

3.6.6.4 Поведение декодера профиля НЕ ААС v2 в случае явной сигнализации

Если присутствие данных PS сигнализируется явным образом (сигнализация 2), то для этого используется обратносовместимая явная сигнализация [сигнализация 2.б] или явная сигнализация без обратной совместимости [сигнализация 2.а].

При обратносовместимой явной сигнализации [сигнализация 2.б] сигнализируемый extensionAudioObjectType является SBR AOT. Явная сигнализация PS выполняется посредством psPresentFlag, который может быть нулем или единицей.

Если psPresentFlag равен нулю, это указывает, что данные PS отсутствуют и, следовательно, декодер профиля НЕ ААС v2 не должен принимать решение о числе выходных каналов в ожидании данных PS (как в случае неявной сигнализации PS), и вместо этого использовать оригинальный channelConfiguration. Если psPresentFlag равен одному, данные PS присутствуют и декодер профиля НЕ AAC v2 должен управлять инструментом PS.

Для явной сигнализации PS без обратной совместимости [сигнализация 2.а] первый сигнализируемый AudioObjectType является PS AOT. extensionAudioObjectType назначают SBR АОТ. Для этой иерархической явной сигнализации флаг psPresentFlag устанавливается в единицу, если первый сигнализируемый АОТPS AOT. psPresentFlag не передается и, следовательно, невозможно сигнализировать явным образом об отсутствии неявной сигнализации. Следовательно, для иерархической явной сигнализации параметрического стерео данные PS всегда присутствуют и декодер профиля HE AAC v2 должен управлять инструментом PS.

3.6.7 Интерфейс между частями Аудио и Системами

3.6.7.1 Введение

В этой части описывается интерфейс между MPEG-4 Аудио и MPEG-4 Системами.

Каждый блок доступа, доставленный звуковому декодеру системным интерфейсом, должен привести к соответствующему композитному блоку, доставляемому от звукового декодера к системному интерфейсу. Это должно включать условия начала и завершения, то есть, когда блок доступа будет первым или последним в конечной последовательности блоков доступа.

3.6.7.2 Обработка временных меток композиции

Для блока звуковой композиции временная метка композиции (CTS) определяет, что время композиции относится к n-му звуковому отсчету в пределах блока композиции. Значение n принимается равным 1, если не указано другое.

Для сжатых данных, таких как кодированный звук НЕ ААС, которые могут быть декодированы декодерами различных профилей, декодирование может быть выполнено как обратносовместимым путем (только ААС), так и в расширенном виде (AAC+SBR). Чтобы обеспечить корректную обработку временных меток композиции (так, чтобы звук остался синхронизированным с другими медиа), применяется следующее:

если сжатые данные позволяют как обратносовместимое, так и расширенное декодирование, и если декодер работает обратносовместимым образом, то ему не нужно выполнять никаких специальных действий. В этом случае, значение n равно 1;

если сжатые данные позволяют как обратносовместимое, так и расширенное декодирование, и если декодер работает в расширенном режиме, используя постпроцессор, который вызывает некоторую дополнительную задержку (например, постпроцессор SBR в НЕ ААС), то необходимо учесть эту дополнительную задержку с помощью конкретного значения n из таблицы 26.

Таблица 26 – Обработка временной метки композиции для различных режимов декодера

Значение n

Дополнительная задержка (примечание)

Режим работы декодера

1

0

а) Все операционные режимы, не перечисленные в этой таблице

963

962

б1) Декодер НЕААС или НЕААС v2 с SBR, работающем в режиме двойной скорости; декодируя компрессированное НЕААС или НЕААС v2 аудио

482

481

б2) То же самое, как в б1), но с SBR, работающем в режиме субдискретизации

Значение n

Дополнительная задержка (Примечание)

Режим работы декодера

Примечание – Задержка из-за постпроцессинга дается в количестве отсчетов (на один звуковой канал) при выходной частоте дискретизации для данного режима декодера.

3.6.8 Сигнализация полезных нагрузок расширения BSAC

Метод неявной сигнализации полезных нагрузок расширения BSAC аналогичен тому, что применяется в инструменте SBR. Декодер BSAC, который может декодировать полезную нагрузку расширения BSAC, проверяет наличие расширения для инструмента SBR ‘EXT_BSAC_SBR_DATA’ в bsac_raw_ data_block (). Частота дискретизации должна быть обновлена при обнаружении расширения, а инструмент SBR должен управляться в режиме двойной скорости.

Декодер расширения BSAC проверяет наличие типа расширения для расширения канала BSAC, например ‘EXT_BSAC_CHANNEL’ в bsac_raw_data_block (). В случае многоканального типа расширения номер канала из AudioSpecificConfig () для объекта типа BSAC Аудио обновляется в зависимости от ‘channel_configuration_index’ каждого extended_bsac_base_element ().

Когда используется явная сигнализация, неявная сигнализация не должна использоваться. Доступны два различных метода явной сигнализации:

1 Метод явной сигнализации 1: иерархическая сигнализация

Если первым сигнализируемым audioObjectType (АОТ) является SBR АОТ, сигнализируется второй тип звукового объекта, который указывает BSAC ER АОТ. extensionChannelConfiguration указывает общее количество каналов в bsac_raw_data_block ().

2 Метод явной сигнализации 2: обратносовместимая сигнализация

extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (). Если extensionAudioObjectTypeBSAC ER АОТ, то extensionChannelConfiguration указывает общее количество каналов в bsac_raw_data_block (). Этот метод должен использоваться только в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Таблица 27 объясняет поведение декодера с SBR и сигнализацией расширения канала BSAC.

Таблица 27 – Сигнализация SBR и расширения канала BSAC и соответствующее поведение декодера

Характеристики потока битов

Поведение декодера

AudioObjectType расширения

sbrPresentFlag

extensionChannelConfiguration

raw_data_block

Декодер BSAC

Декодер расширений BSAC

!= ER_BSAC (Неявная сигнализация)

-1
(Примечание 1)

Не доступно

BSAC

Работа BSAC

Работа BSAC

BSAC+SBR

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+SBR

BSAC+MC

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+MC

BSAC+SBR+MC

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+SBR+MC

== ER_BSAC (Неявная сигнализация)

0
(Примечание 2)

==channelConfiguration (Примечание 4)

BSAC

Работа BSAC

Работа BSAC

!= channelConfiguration

BSAC+MC

Play BSAC

Play BSAC+MC

1
(Примечание 3)

== channelConfiguration (Примечание 4)

BSAC+SBR

Play BSAC

Play BSAC+SBR

!= channelConfiguration

BSAC+SBR+MC

Play BSAC

Play BSAC+SBR+MC

Примечание 1 – Неявная сигнализация: проверить полезную нагрузку, чтобы определить выходную частоту дискретизации или принять присутствие данных SBR в полезной нагрузке, выбирая выходную частоту дискретизации в два раза выше частоты дискретизации samplingFrequency в AudioSpecificConfig () (пока не используется инструмент SBR с децимацией или двойная частота дискретизации samplingFrequency не превышает максимально допустимое значение для текущего уровня, на котором выходная частота дискретизации равна samplingFrequency).

Примечание 2 – Явно сигнализируется отсутствие данных SBR, следовательно, нет неявной сигнализации и выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig ().

Примечание 3 – Выходная частота дискретизации равна extensionSamplingFrequency в AudioSpecificConfig ().

Примечание 4 – Явно сигнализируется отсутствие данных расширения канала BSAC и количество выходных каналов задано channelConfiguration в AudioSpecificConfig ().

3.6.9 Информация о звуковом файле для формата файла основная медиа Международной организации по стандартизации

3.6.9.1 Введение

Блок информации о звуковом файле позволяет хранить вспомогательные (незвуковые) данные оригинального звукового файла в файле формата основная медиа Международной организации по стандартизации. Этот файл также обычно содержит сжатые данные звука. Этот блок особенно полезен в комбинации с кодированием звука без потерь (например, MPEG-4 ALS, SLS), когда представляет интерес восстановление оригинального входного звукового файла.

3.6.9.2 Определение

Контейнер: метаблок

Обязательность: нет

Количество: Ноль или один

Содержит информацию об оригинальном звуковом файле, включая тип файла, и предоставляет блоки OriginalHeader (), OriginalTrailer () и AuxData () через элементный блок.

Блок OriginalHeader () содержит часть заголовка оригинального звукового файла; на него делается ссылка из элементного блока. Часть заголовка включает все байты до первого звукового отсчета данных в оригинальном файле.

Блок OriginalTrailer () содержит трейловую часть оригинального звукового файла; на него делается ссылка из элементного блока. Часть трейла включает все байты после последнего звукового отсчета в оригинальном файле.

Блок AuxData () содержит дополнительную информацию, добавленную кодером, относящуюся к оригинальному звуковому файлу; на него делается ссылка элементного блока. Содержание AuxData () не используется при восстановлении оригинального файла.

Информация об оригинальном звуковом файле хранится как метаданные в MetaBox. Тип обработчика для этого MetaBox‘oafi’, такой MetaBox должен иметь DataBox, содержащий OrigAudioFilelnfoRecord, или идентифицировать первичный элемент, данные которого – OrigAudioFilelnfoRecord.

3.6.9.3 Синтаксис

Синтаксис блока информации об оригинальном звуковом файле следующий:

Синтаксисы OriginalHeader (), OriginalTrailer () и AuxData () даны в таблице 28, таблице 29 и таблице 30. original_MIME_type – строка с нулевым символом в конце в символах UTF-8, идентифицирующих оригинальный тип файла.

Таблица 28 – Синтаксис OriginalHeader ()

Таблица 29 – Синтаксис OriginalTrailer ()

Таблица 30 – Синтаксис AuxData ()

3.6.9.4 Семантика

file_type описывает тип оригинального входного файла (см. таблицу 31 для описания возможных значений).

Таблица 31 – Значения file_type

Поле

Количество битов

Описание/Значение

file_type

4

0000 = unknown/raw file

0001 = wave file

0010 =aiff file

0011 =bwf file

0100 = Sony Wave64 file (.w64)

0101 =bwf with RF64

1111= “escape” for MIME type
(other values are reserved)

header_item_ID – идентификатор, который ссылается на OriginalHeader () в элементном блоке. Если это значение равно 0, OriginalHeader () отсутствует. Если OriginalHeader () пуст (нулевой длины), то пустой OriginalHeader () должен поставляться.

trailer_item_ID – идентификатор, который ссылается на OriginalTrailer () в элементном блоке. Если это значение равно 0, OriginalTrailer () отсутствует. Если OriginalTrailer () пуст (нулевой длины), то пустой OriginalTrailer () должен поставляться.

aux_item_ID – идентификатор, который ссылается на AuxData () в элементном блоке. Если это значение равно 0, AuxData () отсутствует. Если AuxData () пуст (нулевой длины), то пустой AuxData () должен поставляться.

Элементы OriginalHeader, OriginalTrailer и AuxData даны в таблице 32, таблице 33 и таблице 34.

Таблица 32 – Элементы OriginalHeader ()

Поле

Количество битов

Описание/Значения

header_length

64

Размер поля оригинального заголовка в байтах

ohg_header[]

header_length*8

Заголовок оригинального файла аудио

Таблица 33 – Элементы OriginalTrailer ()

Поле

Количество битов

Описание/Значение

trailer_length

64

Размер поля вспомогательных данных в байтах

ohg_trailer[]

trailer_length*8

Концевая часть оригинального аудиофайла

Таблица 34 – Элементы AuxData ()

Поле

Количество битов

Описание/Значение

aux_length

64

Размер поля вспомогательных данных в байтах

aux_data

aux_length*8

Вспомогательные данные (для декодирования не требуется)

3.7 Транспортный поток MPEG-4 Аудио

_______________

* Слово “MPEG” в наименовании пункта 3.7 в бумажном оригинале выделено курсивом. – .

3.7.1 Краткий обзор

Транспортный механизм использует двухуровневый подход, а именно: мультиплексный уровень и уровень синхронизации. Мультиплексный уровень (мультиплексный транспортный уровень MPEG-4 Аудио с низкой задержкой: LATM) управляет мультиплексированием нескольких полезных нагрузок MPEG-4 Аудио и их элементов AudioSpecificConfig (). Уровень синхронизации определяет самосинхронизирующийся синтаксис транспортного потока MPEG-4 Аудио, который называют звуковым потоком с низкой задержкой (LOAS). Формат интерфейса уровня передачи зависит от основного уровня передачи следующим образом:

LOAS должен использоваться для передачи по каналам, где не доступна синхронизация фреймов;

LOAS может использоваться для передачи по каналам с фиксированной синхронизацией фрейма;

– мультиплексный элемент (AudioMuxElement ()/EPMuxElement ()) без синхронизации будет использоваться только для каналов передачи, где основной транспортный уровень уже обеспечивает синхронизацию фрейма, которая может поддерживать произвольный размер фрейма.

Подробно о форматах LOAS и LATM описано в 1.7.2 и 1.7.3.

Механизм, определенный в этом параграфе, не должен использоваться для передачи объектов TTSI, объектов Main Synthetic, объектов Wavetable Synthesis, объектов General MIDI и объектов алгоритмического синтеза и FX. Это не должно использоваться для передачи какого-либо объекта с (epConfig == 1). Для таких объектов должны применяться другие мультиплексные и транспортные механизмы, например определенные в MPEG-4 Системы.

3.7.2 Уровень синхронизации

Уровень синхронизации предоставляет мультиплексному элементу механизм самосинхронизации для генерации LOAS. У LOAS есть три различных типа формата, а именно: AudioSyncStream (), EPAudioSyncStream () и AudioPointerStream (). Выбор одного из трех форматов зависит от основного уровня передачи.

AudioSyncStream ()

AudioSyncStream () состоит из синхрослова, мультиплексного элемента с побайтным выравниванием и его информации о длине. Максимальное расстояние между двумя синхрословами составляет 8192 байт. Этот самосинхронизирующийся поток должен использоваться для случая, когда основной уровень передачи следует без какой-либо синхронизации фреймов.

EPAudioSyncStream ()

Для каналов с ошибками предоставлена альтернативная версия AudioSyncStream (). Этот формат обладает теми же основными функциональными возможностями, как ранее описанный AudioSyncStream (). Однако это дополнительно обеспечивает более длинную синхропоследовательность и счетчик потерянных фреймов. Информация о длине и счетчик фреймов дополнительно защищены FEC кодом.

AudioPointerStream ()

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

3.7.2.1 Синтаксис (таблицы 35, 36, 37, 38)

Таблица 35 – Синтаксис AudioSyncStream ()

Таблица 36 – Синтаксис EPAudioSyncStream ()

Окончание таблицы 36

Таблица 37 – Синтаксис AudioPointerStream ()

Таблица 38 – Синтаксис AudioPointerStreamFrame ()

3.7.2.2 Семантика

3.7.2.2.1 AudioSyncStream ()

audioMuxLengthBytes – 13-битный элемент данных, указывающий длину байта последующего AudioMuxElement () с побайтным выравниванием (AudioSyncStream) или последующего EPMuxElement () (EPAudioSyncStream).

AudioMuxElement () – мультиплексный элемент, как определено в 3.7.3.2.2.

3.7.2.2.2 EPAudioSyncStream ()

futureUse – 4-битный элемент данных для будущего использования, должно быть установлено в ‘0000’.

audioMuxLengthBytes (см. 3.7.2.2.1).

frameCounter – 5-битный элемент данных, который используется для обнаружения потерянных фреймов. Число непрерывно увеличивается для каждого мультиплексного элемента.

headerPahty – 18-битный элемент данных, который содержит ВСН(36,18) код, сокращенный от ВСН(63,45) для элементов audioMuxLengthBytes и frameCounter. Полиномиальный генератор х+х+1. Значение вычисляется при помощи этого генератора, как описано в 3.8.4.3.

EPMuxElement () – эластичный мультиплексный элемент, как определено в 3.7.3.2.1.

3.7.2.2.3 AudioPointerStream ()

AudioPointerStreamFrame () – синхронизирующий фрейм фиксированной длины, предоставляемый основным уровнем передачи.

audioMuxElementStartPointer – элемент данных, указывающий начальную точку первого AudioMuxElement () в пределах текущего AudioPointerStreamFrame (). Число битов, требуемых для этого элемента данных, вычисляется как ceil(log2(syncFrameLength)). Длина фрейма передачи должна быть получена из основного уровня передачи. Максимально возможное значение этого элемента данных зарезервировано для сигнализации отсутствия начала AudioMuxElement () в этом синхронизирующем фрейме.

audioMuxElementChunk – часть конкатенации последующих AudioMuxElement ().

3.7.3 Мультиплексный уровень

Уровень LATM мультиплексирует несколько полезных нагрузок MPEG-4 Аудио и AudioSpecificConfig () элементов синтаксиса в один мультиплексный элемент. Мультиплексированный формат элемента выбирается между AudioMuxElement () и EPMuxElement () в зависимости от того, требуется ли способность исправления ошибок в мультиплексном элементе или нет. EPMuxElement () является эластичной версией AudioMuxElement () и может использоваться для каналов с ошибками.

Мультиплексированные элементы могут быть непосредственно переданы на уровнях передачи с синхронизацией фрейма. В этом случае первый бит мультиплексного элемента должен соответствовать первому биту полезной нагрузки основного уровня передачи. Если полезная нагрузка передачи требует побайтного выравнивания, биты пэддинга должны следовать за мультиплексируемым элементом. Количество битов пэддинга должно быть меньше 8. Эти биты должны быть удалены при демультиплексации элемента в полезные нагрузки MPEG-4 Аудио. Затем полезные нагрузки MPEG-4 Аудио передаются соответствующему инструменту декодера MPEG-4 Аудио.

Использование LATM в случае масштабируемых конфигураций с ядром CELP и уровнем (уровнями) расширения ААС:

– экземпляры класса AudioMuxElement () передаются равноотстоящим способом;

– представленный период одного AudioMuxElement () подобен суперфрейму;

– отношение числа битов определенного уровня в пределах любого AudioMuxElement () к общему количеству битов в пределах этого AudioMuxElement () равно отношению скорости передачи того уровня к скорости передачи всех слоев.

В случае, когда coreFrameOffset = 0 и latmBufferFullness = 0, все основные фреймы кодера и все фреймы ААС определенного суперфрейма сохраняются в пределах того же самого экземпляра класса AudioMuxElement ().

В случае coreFrameOffset> 0 несколько или все основные фреймы кодера сохраняются в пределах предыдущих экземпляров класса ofAudioMuxElement ().

Любая информация о конфигурации основного уровня относится к основным фреймам, переданным в пределах текущего экземпляра класса AudioMuxElement (), независимо от значения coreFrameOffset:

– указанный latmBufferFullness связан с первым фреймом ААС первого суперфрейма, сохраненного в пределах текущего AudioMuxElement ();

– значение latmBufferFullness может использоваться, чтобы определить местоположение первого бита первого фрейма ААС текущего уровня первого суперфрейма, сохраненного в пределах текущего AudioMuxElement () посредством backpointer:

backPointer = – meanFrameLength + latmBufferFullness + currentFrameLength.

Значение backpointer определяет позицию, как отрицательное смещение от текущего AudioMuxElement (), то есть указывает на начало фрейма ААС, расположенное в полученных данных. Любые данные, не принадлежащие полезной нагрузке текущего уровня ААС, не принимаются во внимание. Если (latmBufferFullness == ‘0’), то фрейм ААС начинается после текущего AudioMuxElement ().

Возможные конфигурации LATM ограничены из-за сигнализации определенных элементов данных следующим образом:

– число уровней: 8 (numLayer имеет 3 бита);

– число потоков: 16 (streamlndx имеет 4 бита);

– число участков памяти: 16 (numChuck имеет 4 бита).

3.7.3.1 Синтаксис (см. таблицы 39, 40, 41, 42, 43, 44).

Таблица 39 – Синтаксис EPMuxElement ()

Окончание таблицы 39

Таблица 40 – Синтаксис AudioMuxElement ()

Таблица 41 – Синтаксис StreamMuxConfig ()

Окончание таблицы 41

_______________
Примечание 1 – AudioSpecificConfig () возвращает количество считанных битов.

Таблица 42 – Синтаксис LatmGetValue ()

Таблица 43 – Синтаксис PayloadLengthlnfo ()

Таблица 44 – Синтаксис PayloadMux ()

3.7.3.2 Семантика

3.7.3.2.1 EPMuxElement ()

Для обнаружения EPMuxElement () флаг epDataPresent должен быть дополнительно установлен в основном уровне. Если epDataPresent установлен в 1, это указывает, что у EPMuxElement () есть защита от ошибок. В противном случае формат EPMuxElement () идентичен AudioMuxElement (). Значение по умолчанию для обоих флагов 1.

epDataPresent

Описание

0

EPMuxElement() идентично AudioMuxElement()

1

EPMuxElement() имеет защиту от ошибок

epUsePreviousMuxConfig флаг, указывающий, применена ли конфигурация инструмента ЕР MPEG-4 Аудио для предыдущего фрейма в текущем фрейме.

epUsePreviousMuxConfig Description

Описание

0

Конфигурация для инструмента ЕР MPEG-4 Аудио присутствует

1

Конфигурация для инструмента ЕР MPEG-4 Аудио отсутствует. Должна быть применена предыдущая конфигурация

epUsePreviousMuxConfigParity – 2-битный элемент, который содержит паритет для epUsePreviousMuxConfig.

Каждый бит – повторение epUsePreviousMuxConfig. Решение принимается по максимуму.

epSpecificConfigLength – 10-битный элемент данных, определяющий размер ErrorProtectionSpecificConfig ().

epSpecificConfigLength Parity – 11-битный элемент данных для epHeaderLength.

Примечание – Это означает, что используется укороченный код Golay (23, 12).

ErrorProtectionSpecificConfig () – функция, содержащая данные конфигурации для инструмента ЕР, к которому относятся AudioMuxElement ().

ErrorProtectionSpecificConfigParity () – функция, содержащая биты четности для ErrorProtectionSpecificConfig ().

EPAudioMuxElement () – функция, содержащая эластичный мультиплексный элемент, генерируемый с использованием инструмента ЕР к AudioMuxElement (), как определено ErrorProtectionSpecificConfig (). Поэтому элементы данных в AudioMuxElement () подразделяются на различные категории в зависимости от их чувствительности к ошибкам и собираются в экземплярах класса этих категорий.

Определены следующие категории чувствительности:

Элементы

Категория чувствительности к ошибкам

useSameStreamMux + StreamMuxConfig ()

1

PayloadLengthlnfo ()

2

PayloadMux ()

3

otherDataBits

4

Примечание 1 – Может быть больше чем один экземпляр класса категорий чувствительности к ошибкам 1 и 2 в зависимости от значения переменной numSubFrames, определенных в StreamMuxConfig (). Рисунок 2 показывает пример порядка экземпляров класса при numSubFrames = 1.

Примечание 2 – EPAudioMuxElement () должен быть побайтно выровненным, поэтому bit_stuffing inErrorProtectionSpecificConfig () должно быть всегда включено.

Рисунок 2 – Порядок следования экземпляров класса в EPAudioMuxElement ()

Рисунок 2 – Порядок следования экземпляров класса в EPAudioMuxElement ()

3.7.3.2.2 AudioMuxElement ()

Для обнаружения AudioMuxElement () флаг muxConfigPresent должен быть установлен в основном уровне. Если muxConfigPresent установлен в 1, это сигнализирует, что конфигурация мультиплексирования (StreamMuxConfig ()) является мультиплексируемой в AudioMuxElement (), то есть имеет место передача в полосе. В противном случае, StreamMuxConfig () должен быть передан вне полосы с использованием протоколов объявления/описания/управления сеансом.

muxConfigPresent

Описание

0

Передача вне полосы StreamMuxConfig ()

1

Передача в полосе StreamMuxConfig ()

useSameStreamMux – флаг применения конфигурации мультиплексирования предыдущего фрейма в текущем фрейме.

useSameStreamMux

Описание

0

Конфигурация мультиплексирования присутствует

1

Конфигурация мультиплексирования отсутствует. Предыдущая конфигурация должна быть применена

otherDataBit – 1-битовый элемент данных, указывающий наличие других данных.

3.7.3.2.3 StreamMuxConfig ()

AudioSpecificConfig () определен в 3.6.2.1. В таком случае это является автономным элементом.

audioMuxVersion – элемент данных для сигнализации об используемом мультиплексном синтаксисе.

Примечание – В дополнение к (audioMuxVersion == 0), (audioMuxVersion == 1) поддерживает передачу taraBufferFullness и передачу длин отдельных AudioSpecificConfig () функции данных.

audioMuxVersionA – элемент данных для сигнализации используемой версии синтаксиса. Возможные значения: 0 (значение по умолчанию), 1 (зарезервировано для будущих расширений).

taraBufferFullness – вспомогательная переменная, указывающая состояние резервуара битов в ходе кодирования информации о статусе LATM. Это передается как число доступных битов в резервуаре битов tara, деленное на 32 и округленное до целого значения. Максимальное значение, которое допустимо для сигнализации с использованием любой установки сигналов bytesForValue, таких, что отдельная программа и уровень имеют переменную скорость. Возможные варианты: FF (bytesForValue == 0), FFFF (bytesForValue == 1), FFFFFF (bytesForValue == 2) или FFFFFFFF (bytesForValue == 3). В этих случаях заполнение буфера не применимо. Информация о состоянии LATM taraBufferFullness включает любые данные AudioMuxElement (), кроме PayloadMux ().

allStreamsSameTimeFraming – элемент данных, указывающий, все ли полезные нагрузки, мультиплексированные в inPayloadMux (), используют общее время.

numSubFrames – элемент данных, указывающий, сколько фреймов PayloadMux () мультиплексируются (numSubFrames+1). Если мультиплексируется более чем один фрейм PayloadMux (), все PayloadMux () используют общий StreamMuxConfig (). Минимальное значение (0) соответствует 1 подфрейму.

numProgram – элемент данных, указывающий, сколько программ мультиплексируются (numProgram +1).

Минимальное значение (0) соответствует 1 программе.

numLayer – элемент данных, указывающий, сколько масштабируемых уровней мультиплексируются (numLayer+1).

Минимальное значение (0) соответствует 1 уровню.

useSameConfig – элемент данных, указывающий, что не передается AudioSpecificConfig (), однако должен быть применен последний принятый AudioSpecificConfig ().

useSameConfig

Описание

0

AudioSpecificConfig () присутствует

1

AudioSpecificConfig () отсутствует. Должен быть применен AudioSpecificConfig () предыдущего уровня или программы

ascLen [prog] [lay] – вспомогательная переменная, указывающая длину в битах subsequentAudioSpecificConfig (), включая возможные биты заполнения.

fillBits – биты заполнения.

frameLengthType – элемент данных, указывающий тип длины фрейма полезной нагрузки. Для объектов CELP и HVXC длина фрейма (бит/фрейм) сохранена в таблицах; передаются только индексы для указания длины фрейма текущей полезной нагрузки.

frameLengthType

Описание

0

Полезная нагрузка с переменной длиной фрейма. Длина полезной нагрузки в байтах непосредственно определена с 8-битовыми кодами в PayloadLengthInfo ()

1

Полезная нагрузка с фиксированной длиной фрейма. Длина полезной нагрузки в битах определена с frameLength в StreamMuxConfig ()

2

В резерве

3

Полезная нагрузка для CELP с одним из 2 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно, CELPframeLengthTablelndex и MuxSlotLengthCoded

4

Полезная нагрузка для объектов CELP или ER_CELP с фиксированной длиной фрейма. CELPframeLengthTablelndex определяет длину полезной нагрузки

5

Полезная нагрузка для объекта ER_CELP с одним из 4 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно: CELPframeLengthTablelndex и MuxSlotLengthCoded

6

Полезная нагрузка для объектов HVXC или ER_HVXC с фиксированной длиной фрейма. HVXCframeLengthTablelndex определяет длину полезной нагрузки

7

Полезная нагрузка для объектов HVXC или ER_HVXC с одним из 4 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно: HVXCframeLengthTablelndex и MuxSlotLengthCoded

latmBufferFullness [streamID [prog] [lay]] – элемент данных, указывающий состояние резервуара битов в ходе кодирования первого блока доступа отдельной программы и уровня в AudioMuxElement (). Передается как количество доступных битов в резервуаре битов, деленное на NCC, деленное на 32 и округленное до целого значения. Шестнадцатеричное значение FF сообщает о том, что отдельная программа и уровень имеют переменную скорость. В этом случае полнота буфера не применима.

В случае (audioMuxVersion == 0) биты, потраченные на данные, отличные от любой полезной нагрузки (например, мультиплексная информация или другие данные) определяются первым latmBufferFullness в AudioMuxElement (). Для ААС применяются ограничения, вызванные минимальным входным буфером декодера. В случае (allStreamsSameTimeFraming == 1) и присутствия только одной программы и одного уровня, это приводит к конфигурации LATM, подобной ADTS.

В случае (audioMUxVersion == 1) биты, потраченные на данные, отличные от любой полезной нагрузки, определяются taraBufferFullness.

coreFrameOffset идентифицирует первый фрейм CELP текущего суперфрейма. Это определено только в случае масштабируемых конфигураций с ядром CELP и уровнем (уровнями) расширения ААС и передается с первым уровнем расширения ААС. Значение 0 идентифицирует первый фрейм CELP после StreamMuxConfig () как первый фрейм СЕLР текущего суперфрейма. Значение > 0 сигнализирует число фреймов CELP таких, что первый фрейм CELP текущего суперфрейма передан ранее.

frameLength – элемент данных, указывающий длину фрейма полезной нагрузки c frameLengthType 1. Длина полезной нагрузки в битах определена как 8 * (frameLength + 20).

CELPframeLengthTablelndex – элемент данных, указывающий один из двух индексов, соответствующих длине фрейма для объектов CELP или ER_CELP (таблица 47 и таблица 48).

HVXCframeLengthTablelndex – элемент данных, указывающий один из двух индексов, соответствующих длине фрейма для объектов HVXC или ER_HVXC (таблица 46).

otherDataPresent – флаг, указывающий присутствие данных, отличных от звуковых полезных нагрузок.

otherDataPresent

Описание

0

данные не мультиплексированы

1

данные мультиплексированы

otherDataLenBits

– вспомогательная переменная, указывающая длину в битах других данных.

crcCheckPresent

– элемент данных, указывающий наличие битов CRC для StreamMuxConfig ().

crcCheckPresent

Описание

0

CRC биты не присутствуют

1

CRC биты присутствуют

crcCheckSum – проверочная сумма CRC. Используется образующий полином CRC8, как определено в 3.8.4.5. Охватывает весь StreamMuxConfig () до бита crcCheckPresent (без его включения в проверку).

3.7.3.2.4 LatmGetValue ()

bytesForValue – элемент данных, указывающий число элементов данных valueTmp.

valueTmp – элемент данных, используемый для вычисления вспомогательной переменной value.

value – вспомогательная переменная, содержащая значение, возвращенное функцией LatmGetValue ().

3.7.3.2.5 PayloadLengthlnfo ()

tmp – элемент данных, указывающий длину полезной нагрузки с frameLengthType 0. Значение 255 используется как escape и указывает, что, по крайней мере, еще одно значение tmp следует. Полная длина переданной полезной нагрузки вычисляется путем суммирования значений частей.

MuxSlotLengthCoded – элемент данных, указывающий один из двух индексов, соответствующих длине полезной нагрузки для объектов CELP, HVXC, ER_CELP и ER_HVXC.

numChunk – элемент данных, указывающий число участков памяти полезной нагрузки (numChunk+1). Каждый участок памяти может принадлежать блоку доступа с различным временем; используется, только если allStreamsSameTimeFraming установлен на ноль. Минимальное значение (0) соответствует 1 участку памяти.

streamlndx – элемент данных, указывающий поток. Используется, если полезные нагрузки разбивают на участки памяти.

chunkCnt – вспомогательная переменная для подсчета числа участков памяти.

progSlndx, laySlndx – вспомогательные переменные для идентификации программы и числа уровня от streamlndx.

progClndx, layClndx – вспомогательные переменные для идентификации программы и числа уровня от chunkCnt.

AuEndFlag – флаг, указывающий, является ли полезная нагрузка последним фрагментом в случае, если блок доступа передан по частям.

AuEndFlag

Описание

0

фрагментированная часть не является последней

1

фрагментированная часть – последняя

3.7.3.2.6 PayloadMux ()

payload – фактическая звуковая полезная нагрузка любого блока доступа (allStreamsSameTimeFraming == 1) или части конкатенации последующих блоков доступа (allStreamsSameTimeFraming ==0).

3.7.3.3 Таблицы

Длины фреймов приведены в таблицах 45, 46, 47.

Таблица 45 – Длина фрейма HVXC, биты

Фрейм

MuxSlotLengthCoded

frameLength Type[ ]

HVXCframeLengthTablelndex[ ]

00

01

10

11

6

0

40

6

1

80

7

0

40

28

2

0

7

1

80

40

25

3

Таблица 46 – Длина фрейма CELP уровня 0, биты

CELP frameLengh Tablelndex

Fixed-Rate frameLength Type[

1-of-4 Rates (сжатие молчания) frameLengthType[ ]=5

1-of-2 Rates (FRC) frameLengthType[ ]=3

MuxSlotLengthCoded

MuxSlotLengthCoded

00

01

10

11

00

01

0

154

156

23

8

2

156

134

1

170

172

23

8

2

172

150

2

186

188

23

8

2

188

166

3

147

149

23

8

2

149

127

4

156

158

23

8

2

158

136

5

165

167

23

8

2

167

145

6

114

116

23

8

2

116

94

7

120

122

23

8

2

122

100

8

126

128

23

8

2

128

106

9

132

134

23

8

2

134

112

10

138

140

23

8

2

140

118

11

142

144

23

8

2

144

122

12

146

148

23

8

2

148

126

13

154

156

23

8

2

156

134

14

166

168

23

8

2

168

146

15

174

176

23

8

2

176

154

16

182

184

23

8

2

184

162

17

190

192

23

8

2

192

170

18

198

200

23

8

2

200

178

19

206

208

23

8

2

208

186

20

210

212

23

8

2

212

190

21

214

216

23

8

2

216

194

22

110

112

23

8

2

112

90

23

114

116

23

8

2

116

94

24

118

120

23

8

2

120

98

25

120

122

23

8

2

122

100

26

122

124

23

8

2

124

102

27

186

188

23

8

2

188

166

28

218

220

40

8

2

220

174

29

230

232

40

8

2

232

186

30

242

244

40

8

2

244

198

31

254

256

40

8

2

256

210

32

266

268

40

8

2

268

222

33

278

280

40

8

2

280

234

34

286

288

40

8

2

288

242

35

294

296

40

8

2

296

250

36

318

320

40

8

2

320

276

37

342

344

40

8

2

344

298

38

358

360

40

8

2

360

314

39

374

376

40

8

2

376

330

40

390

392

40

8

2

392

346

41

406

408

40

8

2

408

362

42

422

424

40

8

2

424

378

43

136

138

40

8

2

138

92

44

142

144

40

8

2

144

98

45

148

150

40

8

2

150

104

46

154

156

40

8

2

156

110

47

160

162

40

8

2

162

116

48

166

168

40

8

2

168

122

49

170

172

40

8

2

172

126

50

174

176

40

8

2

176

130

51

186

188

40

8

2

188

142

52

198

200

40

8

2

200

154

53

206

208

40

8

2

208

162

54

214

216

40

8

2

216

170

55

222

224

40

8

2

224

178

56

230

232

40

8

2

232

186

57

238

240

40

8

2

240

194

58

216

218

40

8

2

218

172

59

160

162

40

8

2

162

116

60

280

282

40

8

2

282

238

61

338

340

40

8

2

340

296

62-63

Зарезервировано

Таблица 47 – Длина фрейма CELP уровней 1-5, биты

CELPframeLenghTablelndex

Fixed-Rate frameLengthType [ ]=4

1-of-4 Rates (сжатие молчания) frameLengthType[ ]=5

MuxSlotLengthCoded

00

01

10

11

0

80

80

0

0

0

1

60

60

0

0

0

2

40

40

0

0

0

3

20

20

0

0

0

4

368

368

21

0

0

5

416

416

21

0

0

6

464

464

21

0

0

7

496

496

21

0

0

8

284

284

21

0

0

9

320

320

21

0

0

10

356

356

21

0

0

11

380

380

21

0

0

12

200

200

21

0

0

13

224

224

21

0

0

14

248

248

21

0

0

15

264

264

21

0

0

16

116

116

21

0

0

17

128

128

21

0

0

18

140

140

21

0

0

19

148

148

21

0

0

20-63

Зарезервировано

3.8 Защита от ошибок

3.8.1 Краткий обзор инструментов

Для типов звуковых объектов, устойчивых к ошибкам, может быть применен инструмент защиты от ошибок (ЕР). Об использовании этого инструмента сигнализирует поле epConfig. Вход декодера инструмента ЕР состоит из блоков доступа с защитой от ошибок. В случае если об использовании декодера инструмента ЕР сигнализирует epConfig, применяются следующие ограничения:

– существует один элементарный поток на уровень масштабируемости, или только один элементарный поток в случае немасштабируемых конфигураций;

– на выходе декодера ЕР имеется набор нескольких классов ЕР. Конкатенация классов ЕР на выходе декодера ЕР идентична данным с epConfig = 0.

Определение класса ЕР зависит от epConfig и directMapping. Для epConfig = 2 классы ЕР не имеют строгого определения. Их точный контент должен быть определен на прикладном уровне, хотя вышеупомянутые ограничения должны быть выполнены. Для epConfig = 3, нормативно определено соответствие между классами ЕР и экземплярами класса категорий чувствительности к ошибкам (ESCs). В этом случае о соответствии сообщает directMapping. В случае, если directMapping = 1, каждый класс ЕР соответствует только одному экземпляру класса категорий чувствительности к ошибкам. Выход декодера ЕР в этом случае идентичен случаю epConfig = 1. Рисунок 3 подводит итог использования классов ЕР, в зависимости от значения epConfig.

Рисунок 3 – Классы ЕР для различных значений epConfig

Рисунок 3 – Классы ЕР для различных значений epConfig

Инструмент защиты от ошибок (инструмент ЕР) обеспечивает неравную защиту от ошибок (UEP) для кодеков ИСО/МЭК 14496-3. Основные особенности инструмента ЕР следующие:

– обеспечение набора кодов с обнаружением/исправлением ошибок различного масштаба в основной части и в избыточной части;

– обеспечение универсальной и эффективной, с точки зрения канала передачи, защитой от ошибок, которая охватывает как потоки фреймов фиксированной длины, так и потоки фреймов переменной длины;

– обеспечение управления конфигурацией UEP c низкими задержками.

Основная идея UEP состоит в разделении фреймов на подфреймы согласно чувствительности к ошибкам в символе (эти подфреймы именуются классами в следующих подразделах) и защите этих подфреймов с соответствующим уровнем FEC и/или CRC. Без этого качество декодированного звука определяется степенью повреждения наиболее чувствительной части. Таким образом самое сильное FEC/CRC должно быть применено к целому фрейму, что требует гораздо большей избыточности.

Чтобы применить UEP к звуковым фреймам, должна быть запрошена следующая информация:

1) число классов;

2) число битов, которое содержит каждый класс;

3) код CRC, который будет применяться для каждого класса. Представлен как CRC-биты;

4) код FEC, который будет применяться для каждого класса.

Эту информацию в следующих разделах называют “параметрами конфигурации фрейма”. Та же самая информация используется при декодировании фреймов UEP; следовательно они должны быть переданы. Чтобы передать их эффективно, учитываются структуры фреймов MPEG-4 Аудио.

Существует три различных подхода к организации структуры фрейма MPEG-4 Аудио с точки зрения UЕР:

1) конфигурация всех фреймов остается постоянной во время передачи (как в CELP);

2) используется определенный набор конфигурации (как в TwinVQ);

3) большинство параметров является постоянными при передаче, однако некоторые могут меняться от фрейма к фрейму (как в ААС).

Для реализации этих подходов инструмент ЕР использует два пути передачи параметров конфигурации фреймов. Первый представляет собой сигнализацию вне полосы, аналогично передаче параметров конфигурации кодека. Так передаются общие параметры фреймов. В случае, если есть несколько шаблонов конфигурации, эти шаблоны передаются с индексами. Другой путь заключается в передаче внутри полосы, при которой задается структура фрейма ЕР с заголовком. Только те параметры, которые не переданы вне полосы, передаются этим способом. Это позволяет минимизировать количество избыточной внутриполосной информации, произведенной инструментом ЕР.

С этими параметрами каждый класс кодируется и декодируется по FEC/CRC. Для увеличения производительности защиты от ошибок используется метод чередования. Цель чередования состоит в рандомизации пакетов ошибок в пределах фреймов, и это нежелательно для незащищенного класса из-за наличия других инструментов обработки ошибок, цель которых состоит в локализации действия ошибок; а рандомизация может оказывать негативное влияние на такую часть полезного битового потока.

Схемы кодера и декодера ЕР представлены на рисунках 4 и 5.

Рисунок 4 – Схема кодера ЕР

Рисунок 4 – Схема кодера ЕР

Рисунок 5 – Схема декодера ЕР

Рисунок 5 – Схема декодера ЕР

3.8.2 Синтаксис

3.8.2.1 Конфигурация защиты от ошибок

Эта часть определяет синтаксис конфигурации для защиты от ошибок (см. таблицу 48).

Таблица 48 – Синтаксис ErrorProtectionSpecificConfig ()

3.8.2.2 Полезные нагрузки защиты от ошибок

Эта часть определяет синтаксис защищенного звукового полезного битового потока. Этот вид синтаксиса может быть выбран установкой epConfig=2 или epConfig=3. Это характерно для всех типов звуковых объектов. Если используется MPEG-4, то один ep_frame () непосредственно соответствует одному блоку доступа (см. таблицы 49, 50, 51, 52).

Таблица 49 – Синтаксис ep_frame ()

Таблица 50 – Синтаксис ep_header ()

Таблица 51 – Синтаксис class_attrib ()

Таблица 52 – Синтаксис ep_encoded_classes ()

3.8.3 Общая информация

3.8.3.1 Определения

ErrorProtectionSpecificConfig () – конфигурация защиты от ошибок, которая является внеполосной информацией;

number_of_predefined_set – номер предопределенного набора;

interleave_type – это переменная определяющая тип чередования. (interleave_type == 0), означает “без чередования”, (interleave_type == 1) означает “внутрикадровое чередование” и (interleave_type == 2) включает режим дополнительной настройки чередования для каждого класса. Подробнее дано в 3.8.4.8. (interleave_type == 3), зарезервировано;

bit_stuffing – сигнализация использования заполнения для обеспечения побайтного выравнивания:

1 – заполнение используется.

0 – заполнение не используется. Это подразумевает, что для данной конфигурации гарантировано побайтное выравнивание фрейма ЕР;

number_of_concatenated_frame – количество исходных фреймов кодера на один защищенный фрейм.

Объединения фреймов в зависимости от number_of_concatenated_frame приведены в таблице 53.

Таблица 53 – Объединение фреймов в зависимости от number_of_concatenated_frame

Кодовое слово

000

001

010

011

100

101

110

111

Количество объединяемых фреймов

резерв

1

2

3

4

5

6

7

number_of_class [i] – количество классов для i-го предопределенного набора;

length_escape [i] [j] – если 0, то длина j-го класса в i-ом предопределенном наборе имеет фиксированное значение; если 1, длина является переменной. В случае “until the end” это значение должно быть равно 1, и number_of_bits_for_length [i] [j] должно быть равно 0;

rate_escape [i] [j] – если 0, скорость кода SRCPC j-го класса в i-ом предопределенном наборе имеет фиксированное значение. Если 1, то о скорости кода сообщается в полосе;

crclen_escape [i] [j] – если 0, длина CRC j-го класса в i-ом предопределенном наборе имеет фиксированное значение; если 1, то о CRCIength сообщается в полосе;

concatenate_flag [i] [j] – параметр, определяющий, связан ли j-ый класс i-го предопределенного набора или нет. 0 означает “несвязанный”, 1 – “связанный” (см. 3.8.4.4);

fec_type [i] [j] – параметр определяющий, используется ли SRCPC код (“0”) или RS код (“1” или “2”) для защиты j-го класса i-го предопределенного набора. Класс, защищенный кодом RS, должен быть побайтно выровненным. Если эта область установлена в “2”, это означает, что этот класс защищен RS и объединен со следующим классом, как один код RS. Если более чем два последующих класса имеют значение “2” для этой области, то эти классы объединены и кодированы как один код RS. Если эта область равна “1”, то этот класс не объединяется со следующим. Это означает, что текущий класс – последний, который будет связан перед кодированием RS, или этот класс – с независимым RS кодированием;

termination_switch [i] [j] – параметр, определяющий, закончен ли j-ый класс i-го предопределенного набора или нет, при коде SRCPC. См. 3.8.4.6.2;

interleave_switch [i] [j] – параметр, определяющий, как чередовать j-ый класс i-го предопределенного набора;

0 – без чередования;

1 – чередование без чередования внутри класса: ширина чередования равна числу битов в пределах текущего класса, если (fec_type == 0), или числу байтов в пределах текущего класса, если (fec_type == 1 || fec_type == 2);

2 – чередование с чередованием внутри класса: ширина чередования = 28, если (fec_type == 0); это значение зарезервировано, если (fec_type == 1 || fec_type == 2);

3 – связанный (см. 3.8.4.8.2.2);

class_optional – флаг, сигнализирующий, является ли класс обязательным (class_optional == 0) или дополнительным (class_optional == 1). Этот флаг может использоваться, чтобы уменьшить избыточность в пределах ErrorProtectionSpecificConfig. Обычно это необходимо для определения 2 наборов, где наборов, где равняется числу дополнительных классов (см. 3.8.4.2);

number_of_bits_for_length [i] [j] – область, существующая только когда length_escape [i] [j] = 1. Это значение показывает количество битов для длины класса при сигнализации внутри полосы. Это значение должно быть установлено, если подразумевается максимальная длина класса. Значение 0 соответствует режиму “до конца”;

class_length [i] [j] – область, существующая только, когда length_escape [i] [j] = 0. Это значение показывает длину j-го класса в i-ом предопределенном наборе, которая является фиксированной при передаче;

class_rate [i] [j] – эта область существует только, когда rate_escape [i] [j]=0. В случае если fec_type [i] [j] = 0, это значение соответствует скорости кода SRCPC j-го класса в i-ом предопределенном наборе, фиксированным во время передачи. Значение от 0 до 24 соответствует скорости кода от 8/8 до 8/32 соответственно. В случае если fec_type [i] [j] равен 1 или 2, это значение показывает количество ошибочных байтов, которое может быть исправлено кодом RS (см. 3.8.4.7). Все классы, для которых сигнализируется объединение с fec_type [i] [j], должны иметь то же самое значение class_rate [i] [j];

class_crclen [i] [j] – область, существующая только, когда crclen_escape [i] [j] = 0. Это значение показывает длину CRC j-го класса в i-ом предопределенном наборе, фиксированным во время передачи. Значение должно быть в диапазоне 0-18, что соответствует длине CRC 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24 или 32;

class_reordered_output – если это значение “1”, то выход классов от декодера ЕР переупорядочен. Если “0”, никакой обработки не применяется;

class_output_order [i] [j] – область, существующая, когда class_reordered_output установлен в “1”, для сигнализации порядка класса после переупорядочения. j-ый класс i-го предопределенного набора выводится как class_output_order [i] [j]-ый класс от ЕР декодера;

header_protection – значение, указывающее режим защиты заголовка от ошибок. 0 указывает на использование основного набора FEC, а 1 – на использование расширенной защиты заголовка от ошибок, как определено в 3.8.4.3. Расширенная защита от ошибок заголовка применяется, только если длина заголовка превышает 16 битов;

header_rate, header_crclen – значения, имеющее ту же семантику, что и class_rate [i] [j] и class_crclen [i] [j] соответственно, в то время как эта защита от ошибок используется для защиты части заголовка;

ep_frame () – защищенный фрейм;

ep_header () – кодированная ЕР информация заголовка;

ep_encoded_classes () – ЕР кодированная ЕР звуковая информация;

interleaved_frame_mode1 – информационные биты после чередования в режиме 1;

interleaved_frame_mode2 – информационные биты после чередования в режиме 2;

stuffing_bits – биты наполнения для выравнивания октета фрейма ЕР. Число битов Nstuff сигнализируется в class_attrib () и должно быть в диапазоне ()…7;

choice_of_pred – выбор предопределенного набора;

choice_of_pred_parity – биты четности для choice_of_pred;

class_attrib_parity – биты четности для class_attrib ();

class_attrib () – атрибутная информация для каждого класса;

class_bit_count [j] – число информационных битов в классе. Эта область существует только в случае, если length_escape в информации из полосы равен 1 (Escape). О количестве битов этого параметра Nbitcount сообщается внутри полосы;

class_code_rate [j] – скорость кодирования звуковых данных, принадлежащих классу в таблице 54. Эта область существует только в случае, если rate_escape в информации из полосы равно 1 (Escape).

Таблица 54 – Скорость кодирования для звуковых данных, принадлежащих классу

Кодовое слово

000

001

010

011

100

101

110

111

Скорость преобразования

8/8

8/11

8/12

8/14

8/16

8/20

8/24

8/32

Картина преобразования

FF, 00 00, 00

FF, A8 00, 00

FF, AA 00, 00

FF, ЕЕ 00, 00

FF, FF 00, 00

FF, FF AA, 00

FF, FF FF, 00

FF, FF FF, FF

class_crc_count [j] – число битов CRC для звуковых данных, принадлежащих классу в таблице 55. Эта область существует только в случае, если crclen_escape равен 1 (Escape).

Таблица 55 – Число битов CRC для звуковых данных, принадлежащих классу

Кодовое слово

000

001

010

011

100

101

110

111

Число битов CRC

0

6

8

10

12

14

16

32

Число битов CRC для звуковых данных, принадлежащих классу, приведены в таблице 55.

num_stuffing_bits – число битов стаффинга для выравнивания октета фрейма ЕР. Эта область существует только в случае, если bit_stuffing равен 1;

ep_encoded_class [j] CRC/SRCPC – закодированные звуковые данные j-го класса. Если class_bit_count [j] == 0, звуковые данные j-го класса не закодированы CRC/SRCPC/SRS.

3.8.4 Описание инструмента

3.8.4.1 Внеполосная информация

Контент внеполосной информации представлен посредством ErrorProtectionSpecificConfig (). Некоторые примеры конфигурации представлены в приложении Б.

Длина последнего класса, обработанного декодером ЕР (до любого последующего переупорядочения, как описано в 3.8.4.9), не должна быть передана явно, однако возможна сигнализация “до конца”. В MPEG-4 Системы системный уровень гарантирует границу звукового фрейма, устанавливая в соответствие один звуковой фрейм одному блоку доступа. Поэтому длина класса “до конца” может быть вычислена по длине других классов и общей длине кодированных ЕР звуковых фреймов.

Флаг class_optional может использоваться для уменьшения избыточности в пределах ErrorProtectionSpecificConfig (). Однако инструмент ЕР так же работает с тем же самым числом предопределенных наборов. Если есть классов с (class_optional == 1), этот предопределенный набор расширяется до 2 классов с (class_optional == 1), этот предопределенный набор расширяется до 2 предопределенных наборов. Разворачивание наборов описано в следующем подразделе.

3.8.4.2 Предопределенные наборы

В этом подразделе описывается постобработка, вход которой – ErrorProtectionSpecificConfig () с переключателем “class_optional“, а выход – предопределенные наборы, используемые для параметров ep_frame ().

Общая процедура

Каждый предопределенный набор расширяется до 2 предопределенных наборов, где NCO[i] – число классов с (class_optional == 1) в i-ом оригинальном предопределенном наборе. После этого любой класс с (class_optional == 1) упоминается как optClass.

Эти расширенные наборы начинаются с “все optClasses существуют” и заканчиваются “никаких optClasses не существует”. Алгоритм:

где optClassExists [k] сообщает, существует ли k-ый optClass предопределенного набора (1) или нет (0) в определяющем новом предопределенном наборе.

DefineTransPred (transPred, i, optClassExists) определяет transPred-ый новый предопределенный набор, используемый для передачи. Этот новый предопределенный набор – копия i-го оригинального предопределенного набора, кроме того, что он не имеет optClasses, optClassExists которого равняется 0.

Пример

ErrorProtectionSpecificConfig () определяет предопределенные наборы следующим образом: После предварительной обработки, описанной выше, предопределенные наборы, используемые для ep_frame (), устанавливаются следующим образом:

3.8.4.3 Внутриполосная информация

Информация фрейма ЕР, которая не включена во внеполосную информацию, является внутриполосной информацией. Параметры, относящиеся к этой информации, передаются как заголовок фрейма ЕР. Существуют следующие параметры:

– выбор предопределенного набора;

– количество битов стаффинга для побайтного выравнивания;

– информация о классе, которая не включена во внеполосную информацию.

Декодер ЕР не может декодировать звуковую информацию фрейма без этих параметров, и, таким образом, они должны обладать защитой от ошибок, более сильной или равной защите других частей. С учетом этого выбор предопределенного набора должен быть обработан отдельно от других частей. Это следует из того, что длина информации о классе может быть изменена в соответствии с предопределенным набором. Поэтому этот параметр кодируется FEC независимо от других частей. На стороне декодера в первую очередь декодируется выбор предопределенного, а затем вычисляется длина оставшейся части заголовка и декодируется.

FEC применяется для этих частей следующим образом:

Основной набор кодов FEC приведен в таблице 56.

Таблица 56 – Основной набор кодов FEC для внутриполосной информации

Количество необходимых битов

Код FEC

Общее число битов

Длина кодового слова

1-2

Большинство (повторение 3 раза)

3-6

3

3-4

ВСН(7,4)

6-7

6-7

5-7

ВСН(15,7)

13-15

13-15

8-12

Golay(23,12)

19-23

19-23

13-16

ВСН(31,16)

28-31

28-31

17

RCPC 8/16 +4-бит CRC

50

Примечания

1 общее количество битов: число битов после FEC кодирования.

2 ширина чередования: ширина матрицы чередования, см. также 3.8.4.8.

3 Npred_parity (или Nattrib_parity) = общее количество битов минус число битов, которые будут защищены.

4 SRCPC завершен.

5 число битов, которые будут защищены, равно Npred (или общее количество битов для class_attrib ()).

Расширенное FEC

Если длина заголовка превышает 16 битов, этот заголовок защищен с помощью CRC и завершен SRCPC. Скорость SRCPC и количество битов CRC сигнализируются. Метод кодирования и декодирования такой же, как описано ниже для CRC/SRCPC.

Порождающие полиномы для каждого FEC следующие:

ВСН(7,4):

х+х+1

ВСН(15,7):

х+1

Golay (23,12):

х +х+1

ВСН (31,16):

х+х+1

С этими полиномами FEC(n, k) для l-битного кодирования выполняется следующим образом:

Вычисляется полином R(x), который удовлетворяет

М(х) х = Q(x)G(x) + R(x)

М(х): Информационные биты. Самый высокий порядок соответствует первому биту, который будет передан.

G(x): образующий полином, определенный выше.

Этот полином R (х) производит контроль к choice_of_pred или class_attrib (), и устанавливается в choice_of_pred_parity или class_attrib_parity соответственно. Самый высокий порядок соответствует первому биту. Декодер может выполнить коррекцию ошибок, используя эти биты паритета, однако это дополнительная операция.

3.8.4.4 Функциональные возможности конкатенации

У инструмента ЕР есть функциональные возможности для объединения (конкатенации) нескольких исходных фреймов кодера, чтобы создать новый фрейм для инструмента ЕР. При этой конкатенации группы битов, принадлежащих тому же самому классу в различных исходных фреймах кодера, связаны класс с классом. Составные группы, принадлежащие тому же самому классу, либо обрабатываются как отдельный элемент, либо как независимый класс, так же как перед конкатенацией.

О числе фреймов, которые будут связаны, сообщается в number_of_concatenated_frame в ErrorProtectionSpecificConfig (), и выбор того, обрабатываются ли составные группы, принадлежащие тому же самому классу, как отдельный новый класс, или с независимым классом, с помощью сигнализации concatenate_flag [i] [j] (1 соответствует “отдельному новому одному классу”, а 0 – “независимому классу”).

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

3.8.4.5 CRC

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

1-битовый CRC1: x+1

2-битовый CRC2: х+х+1

3-битовый CRC3: х+х+1

4-битовый CRC4: х+х+х+х+1

5-битовый CRC5: х+х+х+х+1

6-битовый CRC6: х+х+х+х+х+х+х+1

7-битовый CRC7: х+х+х+х+1

8-битовый CRC8: х+х+х+х+1

9-битовый CRC9: х+х+х+х+х+х+х+1

10-битовый CRC10: х+х+х+х+х+х+х+1

11-битовый CRC11: х+х+х+х+х+х+х+1

12-битовый CRC12: х+х+х+х+х+х+х+1

13-битовый CRC13: х+х+х+х+х+х+х+х+х+х+1

14-битовый CRC14: х+х+х+х +х +х+х+1

15-битовый CRC15: х+х+х+х+х+х+х+х+х+х+1

16-разрядный CRC16: х+х+х+х+1

24-битовый CRC24: х+х+х+х+х+х+х+1

32-разрядный CRC32: х+х+х+х+х+х+х+х+х+х +х +х+х+х+х+х+х+х+х+х+1

С этими полиномами кодирование CRC выполняется следующим образом:

Вычисляется полином R(x), такой что

M(x)x = Q(x)G(x) + R(x)

М(х): Информационные биты. Самый высокий порядок соответствует первому биту, который будет передан

G(x): Образующий полином, определенный ранее

k: Число битов CRC.

С этим полиномом R(x), CRC биты W(х), представлены как:

W(х) = M(x)x + R(x)

Значение k должно быть выбрано так, чтобы число кодированных битов CRC не превышало 2k-1.

Биты CRC записываются в обратном порядке, каждый бит инвертирован. Используя эти биты CRC, декодер может выполнить обнаружение ошибок. Когда ошибка обнаружена через CRC, может быть применена ошибочная маскировка для уменьшения ухудшения качества, вызванного ошибкой. Метод маскировки ошибок зависит от алгоритмов MPEG-4 Аудио.

3.8.4.6 Систематические сверточные коды (SRCPC)

После CRC кодирования выполняется FEC кодирование с SRCPC кодами. В этом подразделе описывается процесс кодирования SRCPC.

Кодер канала основан на систематическом рекурсивном сверточном кодирования (SRC) со скоростью R=1/4. Кодированные классы CRC связаны и поступают в этот кодер. Так образуется RCPC код, скорость которого изменяется для каждого класса согласно ошибочной чувствительности.

3.8.4.6.1 Генерация SRC кода

Код SRC генерируется из рациональной порождающей матрицы при использовании петли обратной связи. Реализация сдвигового регистра кодера показана на рисунке 6.

Рисунок 6 – Реализация сдвигового регистра для систематического рекурсивного сверточного кодера

Рисунок 6 – Реализация сдвигового регистра для систематического рекурсивного сверточного кодера

Для получения выходных векторов в момент времени в момент времени необходимо знать содержимое сдвиговых регистров , , , , , (соответствует состоянию) и входной бит во время во время .

Получаем выход , , и

, , , , , ,

Наконец получаем для выходного вектора во время во время в зависимости от входного бита и текущего состояния и текущего состояния :

с

Начальное состояние всегда 0, то есть каждая ячейка памяти содержит 0 перед входом первого информационного бита .

3.8.4.6.2 Завершение кода SRC

В случае, если для кодированного SRC класс обозначен как окончание в termination_switch [i] в inErrorProtectionSpecificConfig (), или код SRC используется для защиты информации в полосе кодера SRC и должны добавить биты хвоста в конец этого класса и запустить следующее кодирование SRC с начальным состоянием, весь сдвиговый регистр кодера должен быть установлен в 0.

Хвостовые биты после информационной последовательности для возвращения в состояние для возвращения в состояние 0 (завершение) зависят от последнего состояния (состояние после входа последнего информационного бита (состояние после входа последнего информационного бита ). Завершающая последовательность для каждого состояния, описываемого , дана в таблице 57. Приемник может использовать эти хвостовые биты (ТВ) для дополнительного обнаружения ошибок.

Таблица 57 – Хвостовые биты для систематического рекурсивного сверточного кода

Состояние

0

0

0

0

0

0

0

0

0

1

0

0

0

1

1

1

0

1

2

0

0

1

0

1

0

1

0

3

0

0

1

1

0

1

1

1

4

0

1

0

0

0

1

0

0

5

0

1

0

1

1

0

0

1

6

0

1

1

0

1

1

1

0

7

0

1

1

1

0

0

1

1

8

1

0

0

0

1

0

0

0

9

1

0

0

1

0

1

0

1

10

1

0

1

0

0

0

1

0

11

1

0

1

1

1

1

1

1

12

1

1

0

0

1

1

0

0

13

1

1

0

1

0

0

0

1

14

1

1

1

0

0

1

1

0

15

1

1

1

1

1

0

1

1

Дополнение (,,,,,) к информационной последовательности может быть вычислено из следующего условия:

для всех от от

Далее, мы получаем для вектора хвостовых битов в зависимости от состояния в зависимости от состояния

Хвостовые биты для систематического рекурсивного сверточного кода приведены в таблице 57.

3.8.4.6.3 Использование SRC для кода SRCPC

Прореживание выхода кодера SRC позволяет использовать различные скорости для передачи. Таблицы прореживания перечислены в таблице 58.

Таблица 58 – Прореживающие таблицы (все значения в шестнадцатеричном представлении)

Нор-
ма

8/8

8/9

8/
10

8/
11

8/
12

8/
13

8/
14

8/
15

8/
16

8/
17

8/
18

8/
19

8/
20

8/
21

8/
22

8/
23

8/
24

8/
25

8/
26

8/
27

8/
28

8/
29

8/
30

8/
31

8/
32

(0)

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

(1)

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

(2)

00

00

00

00

00

00

00

00

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

FF

FF

FF

FF

FF

FF

FF

FF

(3)

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

Шаблон прореживания, который применяется с периодом 8, зависит от class_rate (см. таблицу 58). Каждый бит Pr(i) указывает, прорежен ли соответствующий символ vt(i) кодера SRC (то есть не рассмотрен). Каждый бит Pr(i) используется от MSB к LSB, и 0/1 указывает режим punctured/not-punctured соответственно. Шаблон прореживания изменяется от класса к классу, но только в пунктах, где период из 8 закончен. После решения о том, какие биты из vt(i) учитываются, они выводятся в порядке от vt(0) до vt(3).

3.8.4.6.4 Декодирование кода SRCPC

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

Декодирование SRCPC может быть выполнено при помощи алгоритма Витерби для сверточных кодов.

3.8.4.7 Сокращенные коды Рида-Соломона

Сокращенные коды Рида-Соломона SRS (255-l, 255-2k-l), определенные на GF(2), могут использоваться для защиты одного отдельного класса или нескольких составных классов. Составные классы впоследствии обрабатываются как один отдельный класс. Здесь k – число корректируемых ошибок в одном ключевом слове SRS. Значение l отражает сокращение.

Перед SRS кодированием, класс ЕР подразделяется на части таким образом, чтобы их длины были меньше или равны 255-2k. Длины частей вычисляются следующим образом:

255-2k, при i<N;

L mod (255-2k), при i = N;

: длина класса ЕР в октетах;

: число частей;

: длина i-ой части (0<i<: длина i-ой части (0<i<+1).

Если длина -ой части -ой части меньше, чем 255-2k байт, добавляется так много битов со значением 0, как требуется для того, чтобы достигнуть длины 255-2k байт перед SRS кодированием/декодированием, и в обратном порядке.

На стороне декодера, если выполняется декодирование SRS, то же самое число нулевых бит должно быть добавлено перед процедурой SRSdecoding, и удалено после SRS декодирования.

SRS код, определенный в поле Галуа GF(2), получен из образующего полинома ), получен из образующего полинома , где обозначает корень примитивного полинома обозначает корень примитивного полинома . Двоичное представление показано в таблице 59, где MSB октет следует первым.

Таблица 59 – Двоичное представление для (0<=i<=254) на GF(2 (0<=i<=254) на GF(2)

Двоичное представление

0

00000000

00000001

00000010

00000100

00001000

00010000

00100000

01000000

10000000

00011101

00111010

01110100

11101000

11001101

10000111

00010011

00100110

01001100

10011000

00101101

01011010

10110100

01110101

11101010

11001001

10001111

00000011

00000110

00001100

00011000

00110000

01100000

11000000

10011101

00100111

01001110

10011100

00100101

01001010

10010100

00110101

01101010

11010100

10110101

01110111

11101110

11000001

10011111

00100011

01000110

10001100

00000101

00001010

00010100

00101000

01010000

10100000

01011101

10111010

01101001

11010010

10111001

01101111

11011110

10100001

01011111

10111110

01100001

11000010

10011001

00101111

01011110

10111100

01100101

11001010

10001001

00001111

00011110

00111100

01111000

11110000

11111101

11100111

11010011

10111011

01101011

11010110

10110001

01111111

11111110

11100001

11011111

10100011

01011011

10110110

01110001

11100010

11011001

10101111

01000011

10000110

00010001

00100010

01000100

10001000

00001101

00011010

00110100

01101000

11010000

10111101

01100111

11001110

10000001

00011111

00111110

01111100

11111000

11101101

11000111

10010011

00111011

01110110

11101100

11000101

10010111

00110011

01100110

11001100

10000101

00010111

00101110

01011100

10111000

01101101

11011010

10101001

01001111

10011110

00100001

01000010

10000100

00010101

00101010

01010100

10101000

01001101

10011010

00101001

01010010

10100100

01010101

10101010

01001001

10010010

00111001

01110010

11100100

11010101

10110111

01110011

11100110

11010001

10111111

01100011

11000110

10010001

00111111

01111110

11111100

11100101

11010111

10110011

01111011

11110110

11110001

11111111

11100011

11011011

10101011

01001011

10010110

00110001

01100010

11000100

10010101

00110111

01101110

11011100

10100101

01010111

10101110

01000001

10000010

00011001

00110010

01100100

11001000

10001101

00000111

00001110

00011100

00111000

01110000

11100000

11011101

10100111

01010011

10100110

01010001

10100010

01011001

10110010

01111001

11110010

11111001

11101111

11000011

10011011

00101011

01010110

10101100

01000101

10001010

00001001

00010010

00100100

01001000

10010000

00111101

01111010

11110100

11110101

11110111

11110011

11111011

11101011

11001011

10001011

00001011

00010110

00101100

01011000

10110000

01111101

11111010

11101001

11001111

10000011

00011011

00110110

01101100

11011000

10101101

01000111

10001110

Для каждой из частей паритет SRS с полной длиной октетов вычисляется, используя вычисляется, используя следующим образом:

: полиномиальный представитель части. Низший порядок соответствует первому октету;

: полиномиальный представитель четности. Низший порядок соответствует первому октету.

Для хранения и передачи паритет добавляется в конце класса ЕР. Этот процесс показан на рисунке 7.

Рисунок 7 – Кодирование RS фрейма ЕР

Рисунок 7 – Кодирование RS фрейма ЕР

3.8.4.8 Рекурсивное чередование

Чередование применяется многоступенчатым способом. Рисунок 8 показывает метод чередования.

Рисунок 8 – Одна стадия чередования

Рисунок 8 – Одна стадия чередования

В многоступенчатом чередовании выход этой стадии чередования обрабатывается как незащищенная часть в следующей стадии. Рисунок 9 показывает пример 2 стадии чередований.

Рисунок 9 – Пример многоступенчатого чередования

Рисунок 9 – Пример многоступенчатого чередования

Путем выбора ширины матрицы чередования для получения одинаковой длины с длиной кода FEC (или значения 28 в случае кодов SRCPC) размер чередования может быть оптимизирован для всех FEC кодов.

В фактическом случае общее количество битов для чередования может не позволить использовать такой прямоугольник. В таком случае используется матрица, как показано на рисунке 10.

Рисунок 10 – Матрица чередования в непрямоугольном случае

Рисунок 10 – Матрица чередования в непрямоугольном случае

3.8.4.8.1 Определение рекурсивного чередования

Два информационных потока и и являются входами:

, , ;

, , ,

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

С шириной чередования размер матрицы чередования показан на рисунке 11.

Рисунок 11 – Размер матрицы чередования

указывает деление с округлением

Рисунок 11 – Размер матрицы чередования

Полезный выходной битовый поток ( () считывается с этой матрицы сверху вниз и слева направо в горизонтальном направлении. Таким образом бит, расположенный в m-ом столбце и n-ой строке ( и и начинаются с 0) соответствует , где:

k = m * D + min(m, d) + n

В матрице установлен в

m = i mod W, n = i/W.

Таким образом , который установлен , который установлен , становится:

, где k = (i mod W) * D + min (i mod W, d) + i/W

Биты, которые установлены c в матрице чередования, показаны на рисунке 12:

Рисунок 12 – Биты, установленные c X (i) в матрице чередования

Рисунок 12 – Биты, установленные c в матрице чередования

Таким образом в m-ой строке установлен из n-ой строки, где n = D’ + (m <d’ ? 1: 0) к основанию. Таким образом установлен из n-ой строки, где n = D’ + (m <d’ ? 1: 0) к основанию. Таким образом , установленный , представлен следующим образом:

3.8.4.8.2 Режимы чередования

Два режима чередования, режим 1 и режим 2, в соответствии с interleave_type 1 и 2, определены в следующих выражениях. Таблица 60 и таблица 61 дают краткий обзор доступных конфигураций.

Таблица 60 – Ширина матрицы чередования

interleave_type

fec_type == 0 (SRCPC)

fec_type ==1/2 (SRS)

0

Чередование отсутствует

1

28 бит

Длина класса

2

Зависит от переключения чередования (см. таблицу 61)

3

Зарезервировано

Таблица 61 – Ширина матрицы чередования для interleave_type 2

interleave_switch

fec_type ==0 (SRCPC)

fec_type ==1 /2 (SRS)

0

Чередование отсутствует

1

Длина класса

Длина класса

2

28 бит

Не разрешено

3

Конкатенация

В случае fec_type=0 (SRCPC) чередование выполняется побитно. В случае fec_type == 1 или fec_ type == 2 (SRS) чередование выполняется побайтно.

3.8.4.8.2.1 Чередование в режиме 1

Многоступенчатое чередование используется для ep_encoded_class от последнего класса до первого класса, когда биты наполнения добавлены после чередованных классов. Процесс чередования продолжает атрибутивную часть класса ep_header () (который является class_attrib () + class_attrib_parity) и предопределенную часть ep_header () (который является choice_of_pred + choice_of_pred_parity), как показано на рисунке 13.

Рисунок 13 – Матрица чередования в случае RS класса

Рисунок 13 – Матрица чередования в случае RS класса

Ширина матрицы чередования выбирается согласно используемому FEC. В случае SRCPC кодирования (fec_type == 0) ширина матрицы чередования составляет 28 битов. В случае SRS кодирования (fec_type == 1 или 2) ширина матрицы чередования равна длине класса в байтах. Биты в классе записываются в матрицу чередований байтов для каждого столбца.

Ширина матрицы чередования для частей заголовка либо равна длине ключевого слова (в битах), предоставленной блочным кодом согласно таблице 61, или 28 битам, если используется SRCPC.

3.8.4.8.2.2 Чередование в режиме 2

В режиме 2 флаг указывает, обработан ли класс с чередованием, и как именно. Об этом флаге interleave_switch сообщается в пределах полосы. Значение 0 указывает, что класс не обработан с чередованием. Значение 1 указывает, что класс чередован рекурсивно и длина класса используется как ширина чередования (или длина в битах в случае SRCPC, или длина в байтах в случае SRS). Значение 2 указывает, что класс чередован рекурсивно и ширина должна быть равной 28 (разрешено только в случае SRCPC). Значение 3 указывает, что класс связан, но не чередован рекурсивно. Операция чередования для ep_header аналогична режиму 1.

Рисунок 13 показывает схему чередования для fec_type == 1 или 2 (SRS) и interleave_switch == 1. Ширина должна быть числом байтов в классе. Биты в классе записываются в матрицу чередований байтов для каждого столбца.

Процесс чередования для получения interleaved_frame_mode2 описывается следующим образом (N: число классов):

3.8.4.9 Упорядочивание классов

Инструмент ЕР позволяет переупорядочивать классы так, что нет необходимости привязываться к порядку предоставленному/требуемому звуковым кодеком. Порядок классов после переупорядочения сигнализируется как class_output_order [i] [j] в полосе. Декодер ЕР переупорядочивает классы во фрейме ЕР, используя i-ый предопределенный набор, так чтобы j-ый класс фрейма ЕР был направлен как (class_output_order [i] [j])-ый класс к звуковому декодеру.

Приложение А (справочное). Форматы обмена аудиофайлами

Приложение А
(справочное)

А.1 Введение

Полные возможности и гибкость MPEG-4 Аудио, такие как композиция звуковых сцен из множественных звуковых объектов, синтезированный звук и преобразование текста в речь, доступны, только если MPEG-4 Аудио используется вместе с MPEG-4 Системы. Форматы обмена, определенные здесь в приложении А, поддерживают лишь небольшое подмножество возможностей MPEG-4 Аудио, определяя форматы для хранения и передачи отдельных моно, стерео или многоканальных звуковых объектов, схожих с форматами, определенным в MPEG-1 и MPEG-2.

Нормативные элементы в MPEG-4 Аудио заканчиваются определением полезных нагрузок (примерные эквиваленты фреймам потока битов в MPEG-1 и MPEG-2) и структурами конфигурации кодера (напоминающими MPEG-1/2 информацию заголовка). Однако нет никакого нормативного определения MPEG-4 Аудио относительно того, как эти элементы мультиплексируются, поскольку это требуется только для ограниченного числа приложений. Однако это информативное приложение описывает такое мультиплексирование. Тем не менее декодеры MPEG-4 не обязательно должны иметь эти форматы интерфейса.

А.2 Форматы обмена ААС

А.2.1 Синтаксис

А.2.1.1 ААС MPEG-2 Audio_Data_lnterchange_Format, ADIF (таблицы А.1, А.2, А.3, А.4, А.5).

Таблица А.1 – Синтаксис adif_sequence

Таблица А.2 – Синтаксис adif_header ()

Таблица А.3 – Синтаксис raw_data_stream ()

Таблица А.4 – Синтаксис adts_sequence ()

Таблица А.5 – Синтаксис adts_frame ()

А.2.1.2 Фиксированный заголовок ADTS (таблица А.6).

Таблица А.6 – Синтаксис adts_fixed_header ()

А.2.1.2.1 Переменный заголовок ADTS (таблица А.7).

Таблица А.7 – Синтаксис adts_variable_header ()

А.2.1.2.2 Обнаружение ошибок (таблицы А.8, А.9, А.10).

Таблица А.8 – Синтаксис adts_error_check

Таблица А.9 – Синтаксис adts_header_error_check

Таблица А.10 – Синтаксис adts_raw_data_block_error_check ()

А.3 Семантика

А.3.1 Краткий обзор

raw_data_block () содержит все данные, которые относятся к звуку (включая вспомогательные данные). Кроме того, дополнительная информация, такая как sampling_frequency, необходима для полного описания звуковой последовательности. Формат обмена звуковыми данными (ADIF) содержит все элементы, которые необходимы для описания потока битов согласно этому стандарту.

Для определенных приложений некоторые или все элементы синтаксиса, определенные в заголовке ADIF, например sampling_rate, могут быть известны декодеру за счет других средств и, следовательно, не появляться в потоке битов.

Кроме того, может потребоваться дополнительная информация, которая изменяется от блока к блоку (например, чтобы увеличить читаемость данных или устойчивость к ошибкам). Следовательно, транспортные потоки могут быть разработаны для определенного приложения и не определены в этом стандарте. Однако один ненормативный транспортный поток, названный Транспортным Потоком Звуковых Данных (ADTS), описан. Он может использоваться для приложений, в которых декодер может анализировать этот поток.

А.3.2 Формат обмена звуковыми данными (ADIF)

raw_data_stream () – последовательность raw_data_block () блоков.

program_config_element () содержит информацию о конфигурации для одной программы.

А.3.3 Транспортный поток звуковых данных (ADTS)

ID – идентификатор MPEG установлен в ‘1’, если звуковые данные в потоке ADTSAAC MPEG-2 и в ‘0’, если звуковые данные – MPEG-4.

profile_ObjectType – интерпретация этого элемента данных зависит от значения бита идентификатора. Если идентификатор равен ‘1’, эта область содержит ту же самую информацию, что и область конфигурации в потоке ADTS. Если идентификатор равен ‘0’, этот элемент обозначает тип объекта MPEG-4 Аудио (profile_ObjectType+1).

sampling_frequency_index указывает частоту дискретизации, используемую согласно таблице 17. Значение escape не разрешено.

channel_configuration указывает используемую конфигурацию каналов. В случае (channel_configuration> 0) конфигурация каналов дается в таблице 18. В случае (channel_configuration == 0) конфигурация каналов не определена в заголовке и задается следующим образом:

MPEG-2/4 ADTS – отдельный program_config_element (), являющийся первым синтаксическим элементом в первом raw_data_block () после заголовка; определяет конфигурацию канала. Элемент program_config_element () может не присутствовать во всех фреймах. Декодер MPEG-4 ADTS не должен генерировать выходные данные, пока он не получит program_config_element (), в то время как декодер MPEG-2 ADTS может принять неявную конфигурацию канала.

MPEG-2 ADTS: Помимо использования program_config_element (), конфигурация каналов может предполагаться неявной или может быть известна в приложении.

Приложение Б (справочное). Инструмент защиты от ошибок

Приложение Б
(справочное)

Ниже представлены формат текстового файла внутриполосной информации и его пример для AAC, Twin-VQ, CELP и HVXC. Кроме того, представлен пример маскировки ошибок.

Б.1 Пример внутриполосной информации

Б.1.1 Пример для ААС

Этот пример основан на категориях чувствительности к ошибкам, описанным в нормативной части. Нижеследующая защита от ошибок может использоваться при соответствии категорий чувствительности классам. Этот пример показывает использование простого режима с одним каналом и без extension_payload ():

Класс

Длина

Чередование

SRCPC puncture rate

Длина CRC

0

6 бит

Внутрикадровое

8/24

6

1

12 бит

Внутрикадровое

8/24

6

2

9 бит

Внутрикадровое

8/8

6

3

9 бит

8/8

4

4

До конца

Внутрикадровое

8/8

Б.1.2 Пример для Twin-VQ

Ниже описываются примеры назначения битов UEP профилю масштабируемого звука (объект TwinVQ).

Имеется два режима кодирования: с и без РРС (Периодический Пиковый Компонент). Обычно кодер может адаптивно выбирать РРС, но в данном случае необходимо всегда поддерживать режим “вкл/выкл”. Если РРС включен, то 43 бита выделятся для квантования периодических пиковых компонент, и эти биты должны быть защищены как служебная информация.

Для каждого режима показано распределение четырех различных скоростей передачи, 16 кбит/с моно, 32 кбит/с стерео, 8 кбит/с + 8 кбит/с масштабируемого моно и 16 кбит/с + 16 кбит/с стерео для каждого режима.

Во всех случаях коррекция ошибок и инструменты обнаружения применяются только к 10% битов для служебной информации. У оставшихся битов для индексов коэффициентов МДКП нет никакой защиты вообще. В результате такого распределения битов скорость передачи увеличивается по сравнению с оригинальной исходной скоростью приблизительно на 10% в случае включения РРС и менее чем 10% в случае выключения РРС.

а) РРС (Периодический Пиковый Компонент) включен

16 кбит/с моно:

Класс 1: 121 бит (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 839 битов (фиксирован), код SRCPC 8/8, CRC нет

32 кбит/с стерео:

Класс 1: 238 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 1682 бита (фиксирован), код SRCPC 8/8, CRC нет

8 кбит/с + 8 кбит/с масштабируемое моно:

Класс 1: 121 бит (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 359 битов (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 72 бита (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 4: 408 битов (фиксирован), код SRCPC 8/8, CRC нет

16 кбит/с + 16 кбит/с масштабируемое стерео

Класс 1: 238 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 722 бита (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 146 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 4: 814 битов (фиксирован), код SRCPC 8/8, CRC нет

б) РРС отключен

16 кбит/с моно:

Класс 1: 78 битов (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 882 бита (фиксирован), код SRCPC 8/8, CRC нет

32 кбит/с стерео:

Класс 1: 152 бита (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 1768 битов (фиксирован), код SRCPC 8/8, CRC нет

8 кбит/с + 8 кбит/с масштабируемое моно:

Класс 1: 78 битов (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 402 бита (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 72 бита (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 4: 408 битов (фиксирован), код SRCPC 8/8, CRC нет

16 кбит/с +16 кбит/с масштабируемое стерео

Класс 1: 152 бита (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 808 битов (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 146 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 4: 814 битов (фиксирован), код SRCPC 8/8, CRC нет

Б.1.3 Пример для CELP

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

Б.1.3.1 Режим узкополосный МРЕ

Краткий обзор выделения битов для узкополосного МРЕ:

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

4

154

3850

6

13

20

37

78

1

4

170

4250

6

13

20

41

90

2

4

186

4650

6

13

20

45

102

3

3

147

4900

5

11

16

36

79

4

3

156

5200

5

11

16

39

85

5

3

165

5500

5

11

16

42

91

6

2

114

5700

4

9

12

29

60

7

2

120

6000

4

9

12

31

64

8

2

126

6300

4

9

12

33

68

9

2

132

6600

4

9

12

35

72

10

2

138

6900

4

9

12

37

76

11

2

142

7100

4

9

12

39

78

12

2

146

7300

4

9

12

41

80

13

4

154

7700

6

13

20

41

74

14

4

166

8300

6

13

20

45

82

15

4

174

8700

6

13

20

49

86

16

4

182

9100

6

13

20

53

90

17

4

190

9500

6

13

20

57

94

18

4

198

9900

6

13

20

61

98

19

4

206

10300

6

13

20

65

102

20

4

210

10500

6

13

20

69

102

21

4

214

10700

6

13

20

73

102

22

2

110

11000

4

9

12

33

52

23

2

114

11400

4

9

12

35

54

24

2

118

11800

4

9

12

37

56

25

2

120

12000

4

9

12

39

56

26

2

122

12200

4

9

12

41

56

27

4

186

6200

6

13

20

49

98

28

Зарезервировано

29

Зарезервировано

30

Зарезервировано

31

Зарезервировано

Б.1.3.2 Режим широкополосный МРЕ

Краткий обзор выделения битов для широкополосного МРЕ

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

4

218

10900

17

20

27

45

109

1

4

230

11500

17

20

27

49

117

2

4

242

12100

17

20

27

53

125

3

4

254

12700

17

20

27

57

133

4

4

266

13300

17

20

27

61

141

5

4

278

13900

17

20

27

65

149

6

4

286

14300

17

20

27

69

153

7

Зарезервировано

8

8

294

14700

17

32

43

61

141

9

8

318

15900

17

32

43

69

157

10

8

342

17100

17

32

43

77

173

11

8

358

17900

17

32

43

85

181

12

8

374

18700

17

32

43

93

189

13

8

390

19500

17

32

43

101

197

14

8

406

20300

17

32

43

109

205

15

8

422

21100

17

32

43

117

213

16

2

136

13600

17

14

19

29

57

17

2

142

14200

17

14

19

31

61

18

2

148

14800

17

14

19

33

65

19

2

154

15400

17

14

19

35

69

20

2

160

16000

17

14

19

37

73

21

2

166

16600

17

14

19

39

77

22

2

170

17000

17

14

19

41

79

23

Зарезервировано

24

4

174

17400

17

20

27

37

73

25

4

186

18600

17

20

27

41

81

26

4

198

19800

17

20

27

45

89

27

4

206

20600

17

20

27

49

93

28

4

214

21400

17

20

27

53

97

29

4

222

22200

17

20

27

57

101

30

4

230

23000

17

20

27

61

105

31

4

238

23800

17

20

27

65

109

Б.1.3.3 Режим широкополосный RPE

Характеристические параметры для широкополосного CELP c RPE

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

6

216

14400

40

24

34

25

93

1

4

160

16000

32

18

26

21

63

2

8

280

18667

48

30

42

29

131

3

10

338

22533

56

36

50

33

163

Б.1.4 Пример для HVXC

кодер 2 кбит/с:

Класс 1: 22 бита (фиксирован), код SRCPC 8/16, 6 битов CRC

Класс 2: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 3: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 10 битов (фиксирован), код SRCPC 8/8, CRC нет

кодер 4 кбит/с:

Класс 1: 33 бита (фиксирован), код SRCPC 8/16, 6 битов CRC

Класс 2: 22 бита (фиксирован), код SRCPC 8/8, 6 битов CRC

Класс 3: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 17 битов (фиксирован), код SRCPC 8/8, CRC нет

Б.1.5 Пример для ER BSAC

Этот подраздел описывает примеры распределения битов неравной защиты от ошибок (UEP) типу объекта ER BSAC.

Категория низкой чувствительности к ошибкам (ESC) указывает класс с более высокой чувствительностью к ошибкам, тогда как более высокий ESC указывает класс с меньшей чувствительностью. Следующий пример основан на категориях чувствительности к ошибкам BSAC. Этот пример соответствует простой настройке, где категории чувствительности соответствуют классам.

Класс

Категория

Длина, бит

Чередование

SRCPC puncture rate

Длина CRC

0

0

9

Внутрикадровое

8/24

6

1

Другое

11

8/8

В этом примере инструменты коррекции и обнаружения ошибок применяются только к общей служебной информации. У оставшихся битов для индекса коэффициентов МДКП нет никакой защиты. В результате такого распределения битов скорость передачи увеличивается приблизительно на 10% по сравнению с оригинальной исходной скоростью.

Б.2 Пример маскировки ошибок

Инструмент маскировки ошибок – дополнительный инструмент декодера для уменьшения ухудшения качества декодированных сигналов, когда полезный битовый поток ввода декодера затронут ошибками, такими как ошибка передачи полезного битового потока. Это особенно эффективно в случае использования инструментов MPEG-4 Аудио в радио приложениях. Обнаружение ошибок и решающий метод для замены фрейма не определены в этом подразделе и зависят от конкретного приложения.

Б.2.1 Пример для CELP

Б.2.1.1 Краткий обзор инструмента маскировки ошибок

Инструмент маскировки ошибок используется с декодером MPEG-4 CELP. Этот инструмент уменьшает неприятный шум, возникающий в результате обработки декодером MPEG-4 CELP ошибочных данных фрейма. Также CELP MPEG-4 используется для декодирования речи даже в том случае, если входные данные фрейма потеряны.

У инструмента есть два операционных режима: режим битовых ошибок (BE) и режим стирания фрейма (FE). Режимы переключаются на основании пригодности данных фрейма в декодере. Когда данные фрейма доступны (режим BE), декодирование выполняется с использованием данных прошлых фреймов и годных данных текущего фрейма. Когда данные фрейма не доступны (режим FE), декодер генерирует речь, используя только данные прошлых фреймов.

Этот инструмент работает в режиме кодирования II, который использует режимы узкой полосы, широкой полосы и масштабируемые режимы, которые поддерживают МРЕ на частотах дискретизации 8 и 16 кГц.

Б.2.1.2 Определения

BE: Ошибочный бит

BWS: Масштабируемая ширина полосы

FE: Стирание фрейма

LP: Линейное предсказание

LSP: Линейная спектральная пара

МРЕ: Мультиимпульсное возбуждение

NB: Узкая полоса

RMS: Среднеквадратичное значение (энергия фрейма)

WB: Широкая полоса

Б.2.1.3 Вспомогательные переменные

frame_size: количество отсчетов во фрейме

g_ас: адаптивная кодовая книга

g_ес: уровень МРЕ

lpc_order: порядок LP

signal_mode: речевой режим

signal_mode_pre: речевой режим предыдущего фрейма

Б.2.1.4 Спецификация инструмента маскировки ошибок

Инструмент маскировки ошибок основан на модели перехода с шестью состояниями, изображенными на рисунке Б.1. Состояние соответствует качеству канала передачи. Чем больше номер состояния, тем хуже качество канала передачи. В каждом состоянии используется своя маскировка. Начальное состояние при декодировании – 0, передача состояния происходит с помощью флага BF_flag. Каждая операция маскировки описана в следующих подразделах.

Рисунок Б.1 – Модель перехода между состояниями для управления маскировкой ошибок

Рисунок Б.1 – Модель перехода между состояниями для управления маскировкой ошибок

Б.2.1.4.1 Операции в состояниях 0 и 5

Процесс декодирования идентичен тому, что используется в декодере MPEG-4 CELP за следующими исключениями относительно адаптивной кодовой книги:

В состоянии 0 после состояния 5, и в состоянии 5:

1) для первых 80 отсчетов во фрейме (и после), где BF_flag сменился от 1 к 0, уровни g_ас и g_ес вычисляются по уровням g_ас’ и g_ес’, декодированных из текущих данных фрейма следующим образом:

2) для 160 отсчетов, которые следуют за первыми 80 отсчетами, уровни вычисляются как:

где эти операции продолжаются самое большее четыре подфрейма.

Б.2.1.4.2 Операции в состояниях 1, 2, 3 и 4

Процесс декодирования идентичен тому, который применяется в декодере MPEG-4 CELP за исключениями, описанными в следующих подразделах.

Б.2.1.4.2.1 Режим Речь

Б.2.1.4.2.1.1 Режим FE

Речевой режим (signal_mode) декодируется по данным предыдущего фрейма.

Б.2.1.4.2.1.2 Режим BE

Речевой режим (signal_mode) декодируется по данным текущего фрейма для сигнала _mode_pre=0 или 1. Иначе используется режим декодирования по данным предыдущего фрейма.

Б.2.1.4.2.2 Режим МРЕ

Б.2.1.4.2.2.1 Режим FE

МРЕ декодируется поданным фрейма, сгенерированным случайным образом.

Б.2.1.4.2.2.2 Режим BE

МРЕ декодируется по данным текущего фрейма.

Б.2.1.4.2.3 RMS

Для состояний от 1 до , RMS в последнем подфрейме предыдущего фрейма используется после аттенюации в первом подфрейме текущего фрейма. В последующих подфреймах RMS в предыдущем подфрейме используется после аттенюации. Уровень аттенюации , RMS в последнем подфрейме предыдущего фрейма используется после аттенюации в первом подфрейме текущего фрейма. В последующих подфреймах RMS в предыдущем подфрейме используется после аттенюации. Уровень аттенюации зависит от состояния следующим образом:

0,4 дБ, для состояний 1… 0,4 дБ, для состояний 1…

1,2 дБ, для состояний 1,2 дБ, для состояний +1, …,

где – наименьшее значение из 4 и – наименьшее значение из 4 и , а – наибольшее целое, удовлетворяющее frame_size х – наибольшее целое, удовлетворяющее frame_size х <= 320.

Б.2.1.4.2.4 LSP

Используются LSP, декодированные в предыдущем фрейме. В режиме BWS векторы LSP должны быть буферизованы для межфреймового предсказания. Однако, когда данные фреймы повреждены или потеряны, правильный вектор не может быть получен. Поэтому буферизированный вектор (blsp [0] []) оценивается по LSP (qlsp_ pre []) предыдущего фрейма, а предсказанный LSP (vec_hat []) и коэффициент предсказания (сb [0] []) в текущем фрейме следующие:

Б.2.1.4.2.5 Задержка адаптивной кодовой книги

Б.2.1.4.2.5.1 Режим FE

Все задержки адаптивной кодовой книги декодируются по индексу задержки, полученному в последнем подфрейме предыдущего фрейма.

Б.2.1.4.2.5.2 Режим BE

1) когда signal_mode_pre=0, задержки декодируются по данным текущего фрейма.

2) когда signal_mode_pre=1 и максимальное различие между индексами задержки смежных подфреймов во фрейме меньше чем 10, задержки декодируются по индексам задержки в текущем фрейме. В каждом подфрейме, где различие в индексах задержки между текущим и предыдущими подфреймами равно или больше 10, задержка декодируется по индексу предыдущего подфрейма.

3) когда signal_mode_pre = 2 или 3, задержка декодируется по индексу последнего подфрейма предыдущего фрейма.

Б.2.1.4.2.6 Усиления

Б.2.1.4.2.6.1 Операция индексирования

Б.2.1.4.2.6.1.1 Режим FE

Все усиления имеют одинаковое значение, которое декодируется по индексу усиления, полученному в последнем подфрейме предыдущего фрейма.

Б.2.1.4.2.6.1.2 Режим BE

Усиление декодируется по данным текущего фрейма.

Б.2.1.4.2.6.2 Операция подстройки

Б.2.1.4.2.6.2.1 Режим FE

1) когда signal_mode_pre=0, усиления g_ас’ и g_ес’ декодируются по данным текущего фрейма. Усиления g_ас и g_ес получаются умножением g_ас’ на 0,5 и g_ес’ на X соответственно. X удовлетворяет следующему уравнению и вычисляется в каждом подфрейме:

2) Когда signal_mode_pre=1, усиление декодируется по данным текущего фрейма.

3) Когда signal_mode_pre=2 или 3, усиление для первых 320 отсчетов в или после фрейма, где BF_flag изменен от 0 к 1, вычисляются как:

Б.2.1.4.2.6.2.2 Режим BE

1) Когда signal_mode_pre=0 или 1, усиления вычисляются, используя усиления g_ас’ и g_ec’, декодированные по данным текущего фрейма и усилениям g_ас_pre и g_ес_pre предыдущего подфрейма так, чтобы расчетное значение усилений было в нормальном диапазоне и не генерировало неприятного шума следующим образом:

2) Когда signal_mode_pre=2 или 3, операция идентична той, что используется для signal_mode_pre=2 или 3 в режиме FE.

Б.2.2 Маскировка ошибок для инструмента сжатия тишины

Во фреймах, где полезный битовый поток, полученный в декодере, поврежден или потерян из-за ошибок при передаче, выполняется маскировка ошибок. Когда получен TX_flag 1, процесс декодирования идентичен тому, который применяется для CELP MPEG-4. Для TX_flag=0, 2 или 3 используется процесс декодирования для TX_flag=0.

Б.3 Пример настройки инструмента ЕР и маскировки ошибок для HVXC

Этот подраздел описывает один пример реализации инструмента защиты от ошибок (ЕР) и метода маскировки ошибок для HVXC. Некоторые из перцепционно важных битов защищены FEC схемой, а некоторые проверены с помощью CRC для принятия решения о том, включены ли ошибочные биты. Когда возникает ошибка CRC, выполняется маскировка ошибок для уменьшения заметного ухудшения звучания.

Метод исправления ошибок и настройка инструмента ЕР, а также алгоритм маскировки ошибок, описанные ниже, являются лишь одним примером, и они должны быть изменены в зависимости от фактических условий канала.

Б.3.1 Определения

2/4 кбит/с общие параметры:

LSP1

Индекс 1 LSP

(5 битов)

LSP2

Индекс 2 LSP

(7 битов)

LSP3

Индекс 3 LSP

(5 битов)

LSP4

Индекс 4 LSP

(1 бит)

VUV

Флаг речевой, неречевой

(2 бита)

Pitch

Параметр шага

(7 битов)

SE_shape1

Индекс спектра 0

(4 бита)

SE_shape2

Индекс спектра 1

(4 бита)

SE_gain

Индекс усиления спектра

(5 битов)

VX_shape1[0]

Индекс 0 стохастической книги шифров

(6 битов)

VX_shape1[1]

Индекс 1 стохастической книги шифров

(6 битов)

VX_gain1[0]

Индекс 0 книги шифров усиления

(4 бита)

VX_gain1[1]

Индекс 1 книги шифров усиления

(4 бита)

параметры 4 кбит/с

только:

LSP5

Индекс 5 LSP

(8 битов)

SE_shape3

Индекс 0 спектра

(7 битов)

SE_shape4

Индекс 1 спектра

(10 битов)

SE_shape5

Индекс 2 спектра

(9 битов)

SE_shape6

Индекс 3 спектра

(6 битов)

VX_shape2[0]

Индекс 0 стохастической книги шифров

(5 битов)

VX_shape2[1]

Индекс 1 стохастической книги шифров

(5 битов)

VX_shape2[2]

Индекс 2 стохастической книги шифров

(5 битов)

VX_shape2[3]

Индекс 3 стохастической книги шифров

(5 битов)

VX_gain2[0]

Индекс 0 книги шифров усиления

(3 бита)

VX_gain2[1]

Индекс 1 книги шифров усиления

(3 бита)

VX_gain2[2]

Индекс 2 книги шифров усиления

(3 бита)

VX_gain2[3]

Индекс 3 книги шифров усиления

(3 бита)

Б.3.2 Канальное кодирование

Б.3.2.1 Выбор защищаемых битов

Согласно чувствительности битов, кодированные биты относятся к нескольким классам. Число битов для каждого класса дано в таблице Б.1, таблице Б.2 (2 кбит/с), таблице Б.3 и таблице Б.4 (4 кбит/с). Как пример, показаны режимы для скоростей 3,5 кбит/с (для 2 кбит/с) и 6,2 кбит/с (для 4 кбит/с). В этих случаях два исходных фрейма кодера обрабатываются как один набор. Суффикс “р” означает предыдущий фрейм, а “с” означает текущий.

Для режима 3,5 кбит/с используются 6 классов. Проверка CRC применяется для битов классов I, II, III, IV и V. Биты класса VI не проверяются CRC.

Таблица Б.1 дает распределение защищенных/незащищенных битов (классы I…VI) в случае, когда предыдущие и текущие фреймы известны.

Таблица Б.1 – Количество защищенных/незащищенных битов при 3,5 кбит/с

Параметры

Речевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Итого

LSP1p/c

5/5

10

LSP2p/c

2/2

5/5

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

VUVp/c

2/2

4

Pitchp/c

6/6

1/1

14

SE_gainp/c

5/5

10

SE_shape1p

4

4

SE_shape1c

4

4

SE_shape2p

4

4

SE_shape2c

4

4

Итого

44

4

4

4

4

20

80

Таблица Б.2 дает распределение защищенных/незащищеных битов (классы I…VI) в случае, когда предыдущий и текущий фреймы неизвестны.

Таблица Б.2 – Количество защищенных/незащищенных битов при 3,5 кбит/с

Параметры

Неречевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

2/2

3/3

10

LSP4p/c

1/1

2

VUVp/c

2/2

4

VX_gain1[0]p/c

4/4

8

VX_gain1[1]p/c

4/4

8

VX_shape1[0]p/

6/6

12

VX_shape1[1]p/

6/6

12

Итого

44

0

0

0

0

36

80

Когда предыдущий фрейм неизвестен, а текущий фрейм известен, или когда предыдущий фрейм известен, а текущий фрейм неизвестен, то же самое распределение защищенных/незащищенных битов используется, как показано выше.

Для режима 6,2 кбит/с используются 7 классов. Проверка CRC выполняется для битов классов I, II, III, IV, V и VI. Биты класса VII не проверяются CRC.

Таблица Б.3 – Количество защищенных/незащищенных битов при 6,2 кбит/с

Параметры

Речевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Битов класса VII

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

LSP5p/c

1/1

7/7

16

VUVp/c

2/2

4

Pitchp/c

6/6

1/1

14

SE_gainp/c

5/5

10

SE_shape1p

4

4

SE_shape1с

4

4

SE_shape2p

4

4

SE_shape2c

4

4

SE_shape3p/c

5/5

2/2

14

SE_shape4p/c

1/1

9/9

20

SE_shape5p/c

1/1

8/8

18

SE_shape6p/c

1/1

5/5

12

Итого

66

44

4

4

4

4

34

160

Таблица Б.4 дает распределение защищенных/незащищеных битов (классы I…VII) в случае, когда предыдущий и текущий фреймы неизвестны.

Таблица Б.4 – Количество защищенных/незащищенных битов при 6,2 кбит/с.

Параметры

Неречевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Битов класса VII

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

LSP5p/c

1/1

7/7

16

VUVp/c

2/2

4

VX_gain1[0]p/c

4/4

8

VX_gain1[1]p/c

4/4

8

VX_shape1[0]p/

6/6

12

VX_shape1[1]p/

6/6

12

VX_gain2[0]p/c

3/3

6

VX_gain2[1]p/c

3/3

6

VX_gain2[2]p/c

3/3

6

VX_gain2[3]p/c

2/2

1/1

6

VX_shape2[0]p/

5/5

10

VX_shape2[1]p/

5/5

10

VX_shape2[2]p/

5/5

10

VX_shape2[3]p/

5/5

10

Итого

66

0

0

0

0

0

94

160

Когда предыдущий фрейм неизвестен, а текущий фрейм известен, или когда предыдущий фрейм известен, а текущий фрейм неизвестен, то же самое распределение защищенных/незащищенных битов используется, как показано выше.

Порядок битов для входа UEP показан в таблицах Б.5-Б.8 (для 2 кбит/с) и Б.9-Б.12 (для 4 кбит/с). Эти таблицы показывают порядок битов относительно каждой из комбинаций условия V/UV для 2 фреймов. Например, если предыдущий фрейм известен, а текущий фрейм находится в режиме 2 кбит/с, используется таблица Б.8. Порядок битов организован согласно чувствительности к ошибкам. Столбец “Биты” обозначает индекс бита параметра. “0” – младший бит.

Таблица Б.5 – Порядок бит 2 кбит/с (известный фрейм – известный фрейм)

Речевой фрейм – речевой фрейм

Номер

Пункт

Биты

Class/Bit

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP3p

4

21

LSP2p

5

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

SE_gainc

4

26

SE_gainc

3

27

SE_gainc

2

28

SE_gainc

1

29

SE_gainc

0

30

LSP1c

4

31

LSP1c

3

32

LSP1c

2

33

LSP1c

1

34

LSP1c

0

35

Pitchc

6

36

Pitchc

5

37

Pitchc

4

38

Pitchc

3

39

Pitchc

2

40

Pitchc

1

41

LSP2c

6

42

LSP3c

4

43

LSP2c

5

Class II Bit

44

SE_shape1p

3

45

SE_shape1p

2

46

SE_shape1p

1

47

SE_shape1p

0

Class III Bit

48

SE_shape2p

3

49

SE_shape2p

2

50

SE_shape2p

1

51

SE_shape2p

0

Class IV Bit

52

SE_shape1с

3

53

SE_shape1с

2

54

SE_shape1c

1

55

SE_shape1c

0

Class V Bit

56

SE_shape2c

3

57

SE_shape2c

2

58

SE_shape2c

1

59

SE_shape2c

0

Class VI Bit

60

LSP2p

4

61

LSP2p

3

62

LSP2p

2

63

LSP2p

1

64

LSP2p

0

65

LSP3p

3

66

LSP3p

2

67

LSP3p

1

68

LSP3p

0

69

Pitchp

0

70

LSP2c

4

71

LSP2c

3

72

LSP2c

2

73

LSP2c

1

74

LSP2c

0

75

LSP3c

3

76

LSP3c

2

77

LSP3c

1

78

LSP3c

0

79

Pitchc

0

Таблица Б.6 – Порядок бит 2 кбит/с (известный фрейм – неизвестный фрейм)

Речевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP3p

4

21

LSP2p

5

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

VX_gain1[0]c

3

26

VX_gain1[0]c

2

27

VX_gain1[0]c

1

28

VX_gain1[0]c

0

29

VX_gain1[1]c

3

30

VX_gain1[1]c

2

31

VX_gain1[1]c

1

32

VX_gain1[1]c

0

33

LSP1c

4

34

LSP1c

3

35

LSP1c

2

36

LSP1c

1

37

LSP1c

0

38

LSP2c

6

39

LSP2c

5

40

LSP2c

4

41

LSP2c

3

42

LSP3c

4

43

LSP3c

3

Класс II

44

SE_shape1p

3

45

SE_shape1p

2

46

SE_shape1p

1

47

SE_shape1p

0

Класс III

48

SE_shape2p

3

49

SE_shape2p

2

50

SE_shape2p

1

51

SE_shape2p

0

Класс IV

52

LSP2c

2

53

LSP2c

1

54

LSP2c

0

55

LSP3c

2

Класс V

56

LSP3c

1

57

LSP3c

0

58

VX_shape1[0]c

5

59

VX_shape1[0]c

4

Класс VI

60

LSP2p

4

61

LSP2p

3

62

LSP2p

2

63

LSP2p

1

64

LSP2p

0

65

LSP3p

3

66

LSP3p

2

67

LSP3p

1

68

LSP3p

0

69

Pitchp

0

70

VX_shape1[0]c

3

71

VX_shape1[0]c

2

72

VX_shape1[0]c

1

73

VX_shape1[0]c

0

74

VX_shape1[1]c

5

75

VX_shape1[1]c

4

76

VX_shape1[1]c

3

77

VX_shape1[1]c

2

78

VX_shape1[1]c

1

79

VX_shape1[1]c

0

Таблица Б.7 – Порядок бит 2 кбит/с (неизвестный фрейм – известный фрейм)

Неречевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[0]p

3

8

VX_gain1[0]p

2

9

VX_gain1[0]p

1

10

VX_gain1[0]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP3p

3

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

SE_gainc

4

26

SE_gainc

3

27

SE_gainc

2

28

SE_gainc

1

29

SE_gainc

0

30

LSP1c

4

31

LSP1c

3

32

LSP1c

2

33

LSP1c

1

34

LSP1c

0

35

Pitchc

6

36

Pitchc

5

37

Pitchc

4

38

Pitchc

3

39

Pitchc

2

40

Pitchc

1

41

LSP2c

6

42

LSP3c

4

43

LSP2c

5

Класс II

44

LSP2p

2

45

LSP2p

1

46

LSP2p

0

47

LSP3p

2

Класс III

48

LSP3p

1

49

LSP3p

0

50

VX_shape1[0]p

5

51

VX_shape1[0]p

4

Класс IV

52

VX_shape1[0]p

3

53

VX_shape1[0]p

2

54

SE_shape1с

1

55

SE_shape1с

0

Класс V

56

SE_shape2c

3

57

SE_shape2c

2

58

SE_shape2c

1

59

SE_shape2c

0

Класс VI

60

VX_shape1[0]p

3

61

VX_shape1[0]p

2

62

VX_shape1[0]p

1

63

VX_shape1[0]p

0

64

VX_shape1[0]p

5

65

VX_shape1[0]p

4

66

VX_shape1[0]p

3

67

VX_shape1[0]p

2

68

VX_shape1[0]p

1

69

VX_shape1[0]p

0

70

LSP2c

4

71

LSP2c

3

72

LSP2c

2

73

LSP2c

1

74

LSP2c

0

75

LSP3c

3

76

LSP3c

2

77

LSP3c

1

78

LSP3c

0

79

Pitchc

0

Таблица Б.8 – Порядок бит 2 кбит/с (неизвестный фрейм – неизвестный фрейм)

Неречевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[0]p

3

8

VX_gain1[0]p

2

9

VX_gain1[0]p

1

10

VX_gain1[0]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP3p

3

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

VX_gain1[0]c

3

26

VX_gain1[0]c

2

27

VX_gain1[0]c

1

28

VX_gain1[0]c

0

29

VX_gain1[1]c

3

30

VX_gain1[1]c

2

31

VX_gain1[1]c

1

32

VX_gain1[1]c

0

33

LSP1c

4

34

LSP1c

3

35

LSP1c

2

36

LSP1c

1

37

LSP1c

0

38

LSP2c

6

39

LSP2c

5

40

LSP2c

4

41

LSP2c

3

42

LSP3c

4

43

LSP3c

3

Класс II

44

LSP2p

2

45

LSP2p

1

46

LSP2p

0

47

LSP3p

2

Класс III

48

LSP3p

1

49

LSP3p

0

50

VX shape1[0]p

5

51

VX_shape1[0]p

4

Класс IV

52

LSP2c

2

53

LSP2c

1

54

LSP2c

0

55

LSP3c

2

Класс V

56

LSP3c

1

57

LSP3c

0

58

VX_shape1[0]c

5

59

VX_shape1[0]c

4

Класс VI

60

VX_shape1[0]p

3

61

VX_shape1[0]p

2

62

VX_shape1[0]p

1

63

VX_shape1[0]p

0

64

VX_shape1[0]p

5

65

VX_shape1[0]p

4

66

VX_shape1[0]p

3

67

VX_shape1[0]p

2

68

VX_shape1[0]p

1

69

VX_shape1[0]p

0

70

VX_shape1[0]p

3

71

VX_shape1[0]p

2

72

VX_shape1[0]p

1

73

VX_shape1[0]p

0

74

VX_shape1[0]p

5

75

VX_shape1[0]p

4

76

VX_shape1[0]p

3

77

VX_shape1[0]p

2

78

VX_shape1[0]p

1

79

VX_shape1[0]p

0

Таблица Б.9 – Порядок бит 4 кбит/с (известный фрейм – известный фрейм)

Речевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP2p

5

21

LSP2p

4

22

LSP2p

3

23

SE_shape3p

6

24

SE_shape3p

5

25

SE_shape3p

4

26

SE_shape3p

3

27

SE_shape3p

2

28

LSP3p

4

29

LSP5p

7

30

SE_shape4p

9

31

SE_shape5p

8

32

SE_shape6p

5

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

SE_gainc

4

37

SE_gainc

3

38

SE_gainc

2

39

SE_gainc

1

40

SE_gainc

0

41

LSP1c

4

42

LSP1c

3

43

LSP1c

2

44

LSP1c

1

45

LSP1c

0

46

Pitchc

6

47

Pitchc

5

48

Pitchc

4

49

Pitchc

3

50

Pitchc

2

51

Pitchc

1

52

LSP2c

6

53

LSP2c

5

54

LSP2c

4

55

LSP2c

3

56

SE_shape3c

6

57

SE_shape3c

5

58

SE_shape3c

4

59

SE_shape3c

3

60

SE_shape3c

2

61

LSP3c

4

62

LSP5c

7

63

SE_shape4c

9

64

SE_shape5c

8

65

SE_shape6c

5

Класс II

66

SE_shape4p

8

67

SE_shape4p

7

68

SE_shape4p

6

69

SE_shape4p

5

70

SE_shape4p

4

71

SE_shape4p

3

72

SE_shape4p

2

73

SE_shape4p

1

74

SE_shape4p

0

75

SE_shape5p

7

76

SE_shape5p

6

77

SE_shape5p

5

78

SE_shape5p

4

79

SE_shape5p

3

80

SE_shape5p

2

81

SE_shape5p

1

82

SE_shape5p

0

83

SE_shape6p

4

84

SE_shape6p

3

85

SE_shape6p

2

86

SE_shape6p

1

87

SE_shape6p

0

88

SE_shape4c

8

89

SE_shape4c

7

90

SE_shape4c

6

91

SE_shape4c

5

92

SE_shape4c

4

93

SE_shape4c

3

94

SE_shape4c

2

95

SE_shape4c

1

96

SE_shape4c

0

97

SE_shape5c

7

98

SE_shape5c

6

99

SE_shape5c

5

100

SE_shape5c

4

101

SE_shape5c

3

102

SE_shape5c

2

103

SE_shape5c

1

104

SE_shape5c

0

105

SE_shape6c

4

106

SE_shape6c

3

107

SE_shape6c

2

108

SE_shape6c

1

109

SE_shape6c

0

Класс III

110

SE_shape1p

3

111

SE_shape1p

2

112

SE_shape1p

1

113

SE_shape1p

0

Класс IV

114

SE_shape2p

3

115

SE_shape2p

2

116

SE_shape2p

1

117

SE_shape2p

0

Класс V

118

SE_shape1c

3

119

SE_shape1c

2

120

SE_shape1c

1

121

SE_shape1c

0

Класс VI

122

SE_shape2c

3

123

SE_shape2c

2

124

SE_shape2c

1

125

SE_shape2c

0

Класс VII

126

LSP2p

2

127

LSP2p

1

128

LSP2p

0

129

LSP3p

3

130

LSP3p

2

131

LSP3p

1

132

LSP3p

0

133

LSP5p

6

134

LSP5p

5

135

LSP5p

4

136

LSP5p

3

137

LSP5p

2

138

LSP5p

1

139

LSP5p

0

140

Pitchp

0

141

SE_shape3p

1

142

SE_shape3p

0

143

LSP2c

2

144

LSP2c

1

145

LSP2c

0

146

LSP3c

3

147

LSP3c

2

148

LSP3c

1

149

LSP3c

0

150

LSP5c

6

151

LSP5c

5

152

LSP5c

4

153

LSP5c

3

154

LSP5c

2

155

LSP5c

1

156

LSP5c

0

157

Pitchp

0

158

SE_shape3c

1

159

SE_shape3c

0

Таблица Б.10 – Порядок бит 4 кбит/с (известный фрейм – неизвестный фрейм)

Речевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP2p

5

21

LSP2p

4

22

LSP2p

3

23

SE_shape3p

6

24

SE_shape3p

5

25

SE_shape3p

4

26

SE_shape3p

3

27

SE_shape3p

2

28

LSP3p

4

29

LSP5p

7

30

SE_shape4p

9

31

SE_shape5p

8

32

SE_shape6p

5

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

VX_gain1[0]c

3

37

VX_gain1[0]c

2

38

VX_gain1[0]c

1

39

VX_gain1[0]c

0

40

VX_gain1[1]c

3

41

VX_gain1[1]c

2

42

VX_gain1[1]с

1

43

VX_gain1[1]c

0

44

LSP1c

4

45

LSP1c

3

46

LSP1c

2

47

LSP1c

1

48

LSP1c

0

49

LSP2c

6

50

LSP2c

5

51

LSP2c

4

52

LSP2c

3

53

LSP3c

4

54

LSP5c

7

55

VX_gain2[0]c

2

56

VX_gain2[0]c

1

57

VX_gain2[0]c

0

58

VX_gain2[1]c

2

59

VX_gam2[1]c

1

60

VX_gain2[1]c

0

61

VX_gain2[2]c

2

62

VX_gain2[2]c

1

63

VX_gain2[2]c

0

64

VX_gain2[3]c

2

65

VX_gain2[3]c

1

Класс II

66

SE_shape4p

8

67

SE_shape4p

7

68

SE_shape4p

6

69

SE_shape4p

5

70

SE_shape4p

4

71

SE_shape4p

3

72

SE_shape4p

2

73

SE_shape4p

1

74

SE_shape4p

0

75

SE_shape5p

7

76

SE_shape5p

6

77

SE_shape5p

5

78

SE_shape5p

4

79

SE_shape5p

3

80

SE_shape5p

2

81

SE_shape5p

1

82

SE_shape5p

0

83

SE_shape6p

4

84

SE_shape6p

3

85

SE_shape6p

2

86

SE_shape6p

1

87

SE_shape6p

0

88

VX_gain2[3]c

0

89

LSP2c

2

90

LSP2c

1

91

LSP2c

0

92

LSP3c

3

93

LSP3c

2

94

LSP3c

1

95

LSP3c

0

96

LSP5c

6

97

LSP5c

5

98

LSP5c

4

99

LSP5c

3

100

LSP5c

2

101

LSP5c

1

102

LSP5c

0

103

VX_shape1[0]c

5

104

VX_shape1[0]c

4

105

VX_shape1[0]c

3

106

VX_shape1[0]c

2

107

VX_shape1[0]c

1

108

VX_shape1[0]c

0

109

VX_shape1[1]c

5

Класс III

110

SE_shape1p

3

111

SE_shape1p

2

112

SE_shape1p

1

113

SE_shape1p

0

Класс IV

114

SE_shape2p

3

115

SE_shape2p

2

116

SE_shape2p

1

117

SE_shape2p

0

Класс V

118

VX_shape1[1]c

4

119

VX_shape1[1]c

3

120

VX_shape1[1]c

2

121

VX_shape1[1]c

1

Класс VI

122

VX_shape1[1]c

0

123

VX_shape2[0]c

4

124

VX_shape2[0]c

3

125

VX_shape2[0]c

2

Класс VII

126

LSP2p

2

127

LSP2p

1

128

LSP2p

0

129

LSP3p

3

130

LSP3p

2

131

LSP3p

1

132

LSP3p

0

133

LSP5p

6

134

LSP5p

5

135

LSP5p

4

136

LSP5p

3

137

LSP5p

2

138

LSP5p

1

139

LSP5p

0

140

Pitchp

0

141

SE_shape3p

1

142

SE_shape3p

0

143

VX_shape2[0]c

1

144

VX_shape2[0]c

0

145

VX_shape2[1]c

4

146

VX_shape2[1]c

3

147

VX_shape2[1]c

2

148

VX_shape2[1]c

1

149

VX_shape2[1]c

0

150

VX_shape2[2]c

4

151

VX_shape2[2]c

3

152

VX_shape2[2]c

2

153

VX_shape2[2]c

1

154

VX_shape2[2]c

0

155

VX_shape2[3]c

4

156

VX_shape2[3]c

3

157

VX_shape2[3]c

2

158

VX_shape2[3]c

1

159

VX_shape2[3]c

0

Таблица Б.11 – Порядок бит 4 кбит/с (неизвестный фрейм – известный фрейм)

Неречевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[1]p

3

8

VX_gain1[1]p

2

9

VX_gain1[1]p

1

10

VX_gain1[1]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP5p

7

22

VX_gain2[0]c

2

23

VX_gain2[0]c

1

24

VX_gain2[0]c

0

25

VX_gain2[1]c

2

26

VX_gain2[1]c

1

27

VX_gain2[1]c

0

28

VX_gain2[2]c

2

29

VX_gain2[2]c

1

30

VX_gain2[2]c

0

31

VX_gain2[3]c

2

32

VX_gain2[3]c

1

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

SE_gainc

4

37

SE_gainc

3

38

SE_gainc

2

39

SE_gainc

1

40

SE_gainc

0

41

LSP1c

4

42

LSP1c

3

43

LSP1c

2

44

LSP1c

1

45

LSP1c

0

46

Pitchc

6

47

Pitchc

5

48

Pitchc

4

49

Pitchc

3

50

Pitchc

2

51

Pitchc

1

52

LSP2c

6

53

LSP2c

5

54

LSP2c

4

55

LSP2c

3

56

SE_shape3c

6

57

SE_shape3c

5

58

SE_shape3c

4

59

SE_shape3c

3

60

SE_shape3c

2

61

LSP3c

4

62

LSP5c

7

63

SE_shape4c

9

64

SE_shape5c

8

65

SE_shape6c

5

Класс II

66

VX_gain2[3]p

0

67

LSP2p

2

68

LSP2p

1

69

LSP2p

0

70

LSP3p

3

71

LSP3p

2

72

LSP3p

1

73

LSP3p

0

74

LSP5p

6

75

LSP5p

5

76

LSP5p

4

77

LSP5p

3

78

LSP5p

2

79

LSP5p

1

80

LSP5c

0

81

VX_shape1[0]p

5

82

VX_shape1[0]p

4

83

VX_shape1[0]p

3

84

VX_shape1[0]p

2

85

VX_shape1[0]p

1

86

VX_shape1[0]p

0

87

VX_shape1[1]p

5

88

SE_shape4c

8

89

SE_shape4c

7

90

SE_shape4c

6

91

SE_shape4c

5

92

SE_shape4c

4

93

SE_shape4c

3

94

SE_shape4c

2

95

SE_shape4c

1

96

SE_shape4c

0

97

SE_shape5c

7

98c

SE_shape5c

6

99c

SE_shape5c

5

100

SE_shape5c

4

101

SE_shape5c

3

102

SE_shape5c

2

103

SE_shape5c

1

104

SE_shape5c

0

105

SE_shape6c

4

106

SE_shape6c

3

107

SE_shape6c

2

108

SE_shape6c

1

109

SE_shape6c

0

Класс III

110

VX_shape1[1]p

4

111

VX_shape1[1]p

3

112

VX_shape1[1]p

2

113

VX_shape1[1]p

1

Класс IV

114

VX_shape1[1]p

0

115

VX_shape2[0]p

4

116

VX_shape2[0]p

3

117

VX_shape2[0]p

2

Класс V

118

SE_shape1с

3

119

SE_shape1с

2

120

SE_shape1с

1

121

SE_shape1с

0

Класс VI

122

SE_shape2c

3

123

SE_shape2c

2

124

SE_shape2c

1

125

SE_shape2c

0

Класс VII

126

VX_shape2[0]p

1

127

VX_shape2[0]p

0

128

VX_shape2[1]p

4

129

VX_shape2[1]p

3

130

VX_shape2[1]p

2

131

VX_shape2[1]p

1

132

VX_shape2[1]p

0

133

VX_shape2[2]p

4

134

VX_shape2[2]p

3

135

VX_shape2[2]p

2

136

VX_shape2[2]p

1

137

VX_shape2[2]p

0

138

VX_shape2[3]p

4

139

VX_shape2[3]p

3

140

VX_shape2[3]p

2

141

VX_shape2[3]p

1

142

VX_shape2[3]p

0

143

LSP2c

2

144

LSP2c

1

145

LSP2c

0

146

LSP3c

3

147

LSP3c

2

148

LSP3c

1

149

LSP3c

0

150

LSP5c

6

151

LSP5c

5

152

LSP5c

4

153

LSP5c

3

154

LSP5c

2

155

LSP5c

1

156

LSP5c

0

157

Pitchc

0

158

SE_shape3c

1

159

SE_shape3c

0

Таблица Б.12 – Порядок бит 4 кбит/с (неизвестный фрейм – неизвестный фрейм)

Неречевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[1]p

3

8

VX_gain1[1]p

2

9

VX_gain1[1]p

1

10

VX_gain1[1]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP5p

7

22

VX_gain2[0]c

2

23

VX_gain2[0]c

1

24

VX_gain2[0]c

0

25

VX_gain2[1]c

2

26

VX_gain2[1]c

1

27

VX_gain2[1]c

0

28

VX_gain2[2]p

2

29

VX_gain2[2]p

1

30

VX_gain2[2]p

0

31

VX_gain2[3]p

2

32

VX_gain2[3]p

1

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

VX_gain1[0]c

3

37

VX_gain1[0]c

2

38

VX_gain1[0]c

1

39

VX_gain1[0]c

0

40

VX_gain1[1]c

3

41

VX_gain1[1]c

2

42

VX_gain1[1]c

1

43

VX_gain1[1]c

0

44

LSP1c

4

45

LSP1c

3

46

LSP1c

2

47

LSP1c

1

48

LSP1c

0

49

LSP2c

6

50

LSP2c

5

51

LSP2c

4

52

LSP2c

3

53

LSP3c

4

54

LSP5c

7

55

VX_gain2[0]c

2

56

VX_gain2[0]c

1

57

VX_gain2[0]c

0

58

VX_gain2[1]c

2

59

VX_gain2[1]c

1

60

VX_gain2[1]c

0

61

VX_gain2[2]c

2

62

VX_gain2[2]c

1

63

VX_gain2[2]c

0

64

VX_gain2[3]c

2

65

VX_gain2[3]c

1

Класс II

66

VX_gain2[3]p

0

67

LSP2p

2

68

LSP2p

1

69

LSP2p

0

70

LSP3p

3

71

LSP3p

2

72

LSP3p

1

73

LSP3p

0

74

LSP5p

6

75

LSP5p

5

76

LSP5p

4

77

LSP5p

3

78

LSP5p

2

79

LSP5p

1

80

LSP5c

0

81

VX_shape1[0]p

5

82

VX_shape1[0]p

4

83

VX_shape1[0]p

3

84

VX_shape1[0]p

2

85

VX_shape1[0]p

1

86

VX_shape1[0]p

0

87

VX_shape1[1]p

5

88

VX_gain2[3]c

0

89

LSP2c

2

90

LSP2c

1

91

LSP2c

0

92

LSP3c

3

93

LSP3c

2

94

LSP3c

1

95

LSP3c

0

LSP1c

LSP5c

6

LSP1c

LSP5c

5

LSP1c

LSP5c

4

LSP1c

LSP5c

3

LSP2c

LSP5c

2

101

LSP5c

1

102

LSP5c

0

103

VX_shape1[0]c

5

104

VX_shape1[0]c

4

105

VX_shape1[0]c

3

106

VX_shape1[0]c

2

107

VX_shape1[0]c

1

108

VX_shape1[0]c

0

109

VX_shape1[1]c

5

Класс III

110

VX_shape1[1]p

4

111

VX_shape1[1]p

3

112

VX_shape1[1]p

2

113

VX_shape1[1]p

1

Класс IV

114

VX_shape1[1]p

0

115

VX_shape2[0]p

4

116

VX_shape2[0]p

3

117

VX_shape2[0]p

2

Класс V

118

VX_shape1[1]c

4

119

VX_shape1[1]c

3

120

VX_shape1[1]c

2

121

VX_shape1[1]c

1

Класс VI

122

VX_shape1[1]c

0

123

VX_shape2[0]c

4

124

VX_shape2[0]c

3

125

VX_shape2[0]c

2

Класс VII

126

VX_shape2[0]p

1

127

VX_shape2[0]p

0

128

VX_shape2[1]p

4

129

VX_shape2[1]p

3

130

VX_shape2[1]p

2

131

VX_shape2[1]p

1

132

VX_shape2[1]p

0

133

VX_shape2[2]p

4

134

VX_shape2[2]p

3

135

VX_shape2[2]p

2

136

VX_shape2[2]p

1

137

VX_shape2[2]p

0

138

VX_shape2[3]p

4

139

VX_shape2[3]p

3

140

VX_shape2[3]p

2

141

VX_shape2[3]p

1

142

VX_shape2[3]p

0

143

VX_shape2[0]c

1

144

VX_shape2[0]c

0

145

VX_shape2[1]c

4

146

VX_shape2[1]c

3

147

VX_shape2[1]c

2

148

VX_shape2[1]c

1

149

VX_shape2[1]c

0

150

VX_shape2[2]c

4

151

VX_shape2[2]c

3

152

VX_shape2[2]c

2

153

VX_shape2[2]c

1

154

VX_shape2[2]c

0

155

VX_shape2[3]c

4

156

VX_shape2[3]c

3

157

VX_shape2[3]c

2

158

VX_shape2[3]c

1

159

VX_shape2[3]c

0

Б.3.3 Настройка инструмента ЕР

Б.3.3.1 Назначение битов

Таблица Б.13 показывает пример назначения битов для использования инструментом ЕР. В этой таблице описано назначение битов для кодеров 4 кбит/с и 2 кбит/с.

Таблица Б.13 – Назначение битов для использования инструментом ЕР

Кодер источника 2 кбит/с

Кодер источника 4 кбит/с

Класс I

Биты кодера источника

44

66

Четность CRC

6

6

Кодовая скорость

8/16

8/16

Класс I всего

100

144

Класс II

Биты кодера источника

4

44

Четность CRC

1

6

Кодовая скорость

8/8

8/8

Класс II всего

5

50

Класс III

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс III всего

5

5

Класс IV

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс IV всего

5

5

Класс V

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс V всего

5

5

Класс VI

Биты кодера источника

20

4

Четность CRC

0

1

Кодовая скорость

8/8

8/8

Класс VI всего

20

5

Класс VII

Биты кодера источника

34

Четность CRC

0

Кодовая скорость

8/8

Класс VII всего

34

Суммарно битов всех классов

140

248

Битовая скорость

3,5 кбит/с

6,2 кбит/с

Класс I:

CRC охватывает все биты Класса I, включая CRC.

Класс II-V (2 кбит/с), II-VI (4 кбит/с):

По крайней мере одни биты CRC охватывают исходные биты кодера этих классов.

Класс VI (2 кбит/с), VII (4 кбит/с):

Исходные биты кодера не проверяются CRC и не защищаются какой-либо схемой коррекции.

Б.3.4 Маскировка ошибок

Когда обнаружена ошибка CRC, выполняется маскировка ошибок (маскировка “плохого” фрейма). Пример метода маскировки описан ниже.

Состояние маскировки текущего фрейма обновляется на основании результата декодирования CRC Класса I. Диаграмма переходов показана на рисунке Б.2. Начальное состояние = 0. Стрелка с символом “1” обозначает переход для плохого фрейма, а с символом “0” – для хорошего фрейма.

Б.3.4.1 Замена параметров

Согласно текущему состоянию выполняется следующая замена параметров. При условии отсутствия ошибок, состояние равно 0, а полученные исходные биты кодера используются без маскировки.

Б.3.4.1.1 Параметры LSP

В state = 1…6, параметры LSP заменяются таковыми из предыдущих.

Когда state=7, при LSP4=0 (режим квантования LSP без межфреймового предсказания), параметры LSP вычисляются по всем индексам LSP, полученным в текущем фрейме. Если LSP4=1 (режим квантования LSP c межcфреймовым кодированием), параметры LSP вычисляются следующим методом.

В этом режиме параметры LSP индекса LSP1 интерполируются с предыдущими LSP.

для для 1…10 (1)

– параметры – параметры базового слоя, – предыдущие – предыдущие , – декодированные – декодированные текущего индекса , , – коэффициент интерполяции, изменяется согласно числу предыдущих ошибочных фреймов CRC битов Класса I, как показано в таблице Б.14. Индексы изменяется согласно числу предыдущих ошибочных фреймов CRC битов Класса I, как показано в таблице Б.14. Индексы , , , и не используются, не используются, используются как текущие параметры .

Таблица Б.14 – Коэффициент

Фрейм

0

0,7

1

0,6

2

0,5

3

0,4

4

0,3

5

0,2

6

0,1

=>7

0,0

Б.3.4.1.2 Переменная Mute

Согласно значению state, переменная mute управляет выходным уровнем речи.

При state = 7, используется среднее между 1,0 и значением mute предыдущего фрейма (= 0,5 (1,0 + предыдущее значение mute)), но, когда это значение больше, чем 0,8, значение mute заменяется на 0,8.

Значения mute приведены в таблице Б.15.

Таблица Б.15 – Значения mute

Состояние

mute

0

1,000

1

0,800

2

0,700

3

0,500

4

0,250

5

0,125

6

0,000

7

Среднее/0,800

Б.3.4.1.3 Замена и контроль усиления “голосовых” параметров

В state=1.. 6, параметр спектра SE_shape1, SE_shape2, параметр SE_gain усиления спектра, параметр спектра для кодека 4 кбит/с SE_shape3.. SE_shape6 заменяются соответствующими параметрами предыдущего фрейма. Кроме того, для управления выходной громкостью речи, параметры амплитуд гармоник LPC Am [0…127] усиливаются, как показано в (Б.1). В этом уравнении, вычисляется из последнего фрейма, свободного от ошибок.

для для 0.. 127 (Б.1)

Если предыдущий фрейм не содержит речи, и текущее состояние – state=7, (Б.1) заменяется на (Б.2).

для для 0.. 127 (Б.2)

Как описано прежде, SE_shape1 и SE_shape2 индивидуально защищены 1 битом CRC. В state=0 или 7, когда ошибки CRC этих классов обнаружены в то же самое время, когда квантованные значения амплитуд [1.. 44] ослабляются, как показано в (Б.3).

для для 1.. 44 (Б.3)

– коэффициент ослабления.

Таблица Б.16 – Коэффициент ослабления для [0.. 44]

i

1

2

3

4

5

6

7…44

0,10

0,25

0,40

0,55

0,70

0,85

1,00

На 4 кбит/с SE_shape4, SE_shape5, и SE_shape6 проверяются CRC как биты Класса II. Когда ошибка CRC обнаружена, спектральный параметр расширения не используется.

Б.3.4.1.4 Замена и контроль усиления над “неголосовыми” параметрами

В state=1.. 6, стохастический параметр усиления кодовой книги VX_gain1[0] и VX_gain1[1] заменяются на VX_gain1[1] от последнего фрейма, свободного от ошибок. Также стохастические параметры усиления кодовой книги для кодека 4 кбит/с VX_gain2[0]…VX_gain2[3] заменяются VX_gain2[3] от последнего фрейма, свободного от ошибок.

Стохастические параметры VX_shape1[0], VX_shape1[1] и стохастический параметр кодека 4 кбит/с генерируются из произвольных индексных значений.

Кроме того, для управления выходной громкостью речи остаточный сигнал LPC res [0…159] усиливается, как показано в (Б.4). В этом уравнении вычисляется по стохастическим параметрам кодовой книги.

для для 0.. 159 (Б.4)

Б.3.4.1.5 Переходы состояний маскирования фреймов (рисунок Б.2)

Рисунок Б.2 – Переходы состояний маскирования фреймов

Рисунок Б.2 – Переходы состояний маскирования фреймов

Библиография

[1]

ИСО/МЭК 14496-3:2009

Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio)

__________________________________________________________________________
УДК 621.396:006.354 ОКС 33.170

Ключевые слова: звуковое вещание, электрические параметры, каналы и тракты, технологии MPEG-кодирования, синтетический звук, масштабирование, защита от ошибок, поток битов расширения, психоакустическая модель
__________________________________________________________________________

Электронный текст документа
и сверен по:
официальное издание
М.: Стандартинформ, 2014

Николай Иванов

Эксперт по стандартизации и метрологии! Разрешительная и нормативная документация.

Оцените автора
Все-ГОСТЫ РУ
Добавить комментарий

ГОСТ Р 53556.1-2012 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть 3 (MPEG-4 audio). Общие требования к кодированию

ГОСТ Р 53556.1-2012

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Звуковое вещание цифровое

КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ. ЧАСТЬ 3 (MPEG-4 AUDIO)

Общие требования к кодированию

Digital sound broadcasting. Coding of sound broadcasting signals with redundancy reduction for transfer on digital communication channels. Part III (MPEG-4 audio). General requirements for coding

ОКС 33.170

Дата введения 2013-09-01

Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ “О техническом регулировании”, а правила применения национальных стандартов Российской Федерации – ГОСТ Р 1.0-2004 “Стандартизация в Российской Федерации. Основные положения”

Сведения о стандарте

1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи “Ленинградское отделение” (ФГУП ЛО ЦНИИС)

2 ВНЕСЕН Техническим комитетом по стандартизации N 480 “Связь”

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. N 940-ст

4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio) [1]
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт . – .

5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе “Национальные стандарты”, а официальный текст изменений и поправок – в ежемесячном информационном указателе “Национальные стандарты”. В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационном указателе “Национальные стандарты”. Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

1 Область применения

1 Область применения

Для достижения лучшего качества звучания на низких скоростях передачи данных (менее 64 Кбит/с на канал) вводятся три дополнительных частоты дискретизации (Fs) -16 кГц, 22,05 кГц и 24 кГц. Это позволяет поддерживать звуковые сигналы с полосами частот 7,5 кГц, 10,3 кГц и 11,25 кГц соответственно, и обеспечивать передачу сигналов звукового вещания по стандартным каналам (ГОСТ Р 52742-2007 и ГОСТ Р 53537-2009).

Синтаксис, семантика и методы кодирования ГОСТ Р 54711-2011 сохраняются в данном стандарте, за исключением определения поля частоты дискретизации, поля скорости передачи и таблиц распределения бит. Новые значения действительны, если бит ID в заголовке ГОСТ Р 54711-2011 равняется нулю. Для получения лучшей производительности звуковой системы параметры психоакустической модели, используемой в кодере, должны быть изменены соответственно.

Вход кодера и выход декодера совместимы с существующими стандартами ИКМ, такими как ГОСТ 27667-88, ГОСТ 28376-89.

Показатели, определенные настоящим документом, являются базовыми для профессиональной и бытовой аппаратуры – проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования класса Hi-Fi.

Универсальная и совместимая многоканальная звуковая система применима для спутникового и наземного телевизионного вещания, цифрового звукового вещания (наземного и спутникового), так же как и для других носителей, например:

CATV

Кабельное телевидение;

CDAD

Кабельное цифровое звуковое вещание;

DAB

Широковещательная передача цифрового звукового сигнала;

DVD

Цифровой универсальный диск;

ENG

Электронные новости (включая новости по спутнику);

HDTV

Телевидение высокой четкости;

IPC

Межличностное общение (видеоконференция, видеотелефон и т.д.);

ISM

Интерактивные носители (оптические диски и т.д.).

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

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

ГОСТ Р 54712-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть III (MPEG-2 audio)

ГОСТ Р 54713-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть VII. Усовершенствованное кодирование звука (MPEG-2 AAC)

ГОСТ Р 53556.0-2009 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-4, часть III (MPEG-4 audio). Основные положения

ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений

ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20…20000 Гц)

ГОСТ 27667-88 Система цифровая звуковая “Компакт-диск”. Параметры

ГОСТ 28376-89 Компакт-диск. Параметры и размеры

Примечание – При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов и классификаторов в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю “Национальные стандарты”, который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный документ заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться замененным (измененным) документом. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.

3 Термины, определения, символы и сокращения

3.1 Термины и определения

В настоящем стандарте применены термины и сокращения с соответствующими определениями, по ГОСТ Р 53556.0-2009, а также следующие термины с соответствующими определениями, не вошедшие в указанный стандарт:

3.1.1 буфер: Устройство памяти большой емкости, позволяющее записывать и хранить большой объем данных.

3.1.2 программа ААС: Основные звуковые каналы, спаренные каналы, канал Ife и связанные потоки данных, которые должны быть декодированы и воспроизведены одновременно. Программа может быть задана по умолчанию или с помощью program_config_element (). Данные single_channel_element (), channel_pair_element (), coupling_channel_element (), lfe_channel_element () или data_stream_element () могут сопровождать одну или более программ в любом заданном потоке.

3.1.3 звуковой блок доступа: Часть звуковых данных в пределах элементарного потока с возможностью индивидуального доступа.

3.1.4 звуковой композитный блок: Часть выходных данных, которую звуковой декодер производит из звуковых блоков доступа.

3.1.5 абсолютное время: Время, которому соответствует тот или иной звук; реальное время. Время в партитуре.

3.1.6 фактический параметр: Параметр команды.

3.1.7 адаптивная кодовая книга: Способ кодирования длительной периодичности сигнала. Входными параметрами кодовой книги являются перекрывающиеся сегменты прошлых возбуждений.

3.1.8 API: Интерфейс прикладного программирования.

3.1.9 масштабируемость полосы пропускания: Возможность менять полосу пропускания сигнала во время передачи.

3.1.10 ELD: Расширенная низкая задержка.

3.1.11 ЕР: Защита от ошибок.

3.1.12 R: Способность системы противостоять ошибкам.

3.1.13 возбуждение: Сигнал возбуждения представляет вход модуля LPC.

3.1.14 межфреймовое предсказание: Метод предсказания значений в текущем фрейме по значениям в предыдущих фреймах. Используется в VQ LSP.

3.1.15 LTP: Долгосрочное предсказание.

3.1.16 основные звуковые каналы: Весь single_channel_elements или channel_pair_elements в одной программе.

3.1.17 MIDI: Стандарт цифрового интерфейса музыкальных инструментов.

3.1.18 смешанный голосовой фрейм: Речевой сегмент, в котором присутствуют как голосовые, так и неголосовые компоненты.

3.1.19 PS: Параметрическое стерео.

3.1.20 TTSI: Интерфейс преобразования текста в речь.

3.1.21 VQ: Векторное квантование.

3.1.22 VXC: Векторное кодирование возбуждения. Синоним CELP.

3.2 Символы и сокращения

3.2.1 Математические операторы

Математические операторы, используемые в настоящем стандарте, аналогичны используемым в языке программирования С. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.

+ Сложение.

– Вычитание (как бинарный оператор) или отрицание (как унарный оператор).

++ Инкремент.

– – Декремент.

* Умножение.

^ Возведение в степень.

/ Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до одного, а -7/4 и 7/-4 округляются до минус одного.

// Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до двух, а -3//2 округляется до минус двух.

DIV Целочисленное разделение с округлением результата в сторону –.

|| Абсолютное значение.

|х| = х, когда х>0;

|х| = 0, когда х == 0;

|х| = –х, когда х<0.

% Деление с остатком. Операция определена только для положительных чисел.

Sign () Принимает следующие значения:

Sign (x) = 1,

когда х>0;

Sign (x) = 0,

когда х = 0;

Sign (x) = -1,

когда х<0.

NINT () Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.

sin

Синус.

cos

Косинус.

exp

Экспонента.

Квадратный корень.

Логарифм по основанию 10.

Натуральный логарифм.

Логарифм по основанию 2.

3.2.2 Логические операторы

II

логическое ИЛИ.

&&

Логическое И.

!

Логическое НЕ.

3.2.3 Операторы сравнения

>

Больше.

>=

Больше или равно.

<

Меньше.

<=

Меньше или равно.

==

Равно.

!=

Не равно.

max [,…,]

Максимальное значение.

min [,…,]

Минимальное значение.

3.2.4 Побитные операторы

Использование побитных операций подразумевает представление чисел в дополнительном коде.

&

Побитное И.

I

Побитное ИЛИ.

>>

Сдвиг вправо.

<<

Сдвиг влево.

3.2.5 Оператор присвоения

=

Оператор присвоения.

3.2.6 Мнемоники

Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.

bslbf

Битовая строка, младший бит слева, в соответствии с настоящим стандартом. Битовые строки пишутся, как строка единиц и нулей внутри одинарных кавычек, например, ‘1000 0001’. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения.

L, С, R, LS, RS

Левый, центральный, правый, левый окружения и правый окружения звуковые каналы объемного звучания.

rpchof

Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка.

uimsbf

Целое число без знака, старший бит первый.

vlclbf

Код с переменной длиной слова, левый бит первый, где “левый” относится к порядку, в котором пишутся коды с переменной длиной.

window

Номер текущего временного интервала в случае block_type==2, 0windowwindow2.

В многобайтовых словах старший байт является первым.

3.2.7 Константы

3,14159265358…

2,71828182845…

3.3 Метод описания синтаксиса потока битов

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

Группа элементов данных может содержать вложенные условные конструкции. Для компактности скобки {} могут быть опущены, когда следует только один элемент данных.

data_element [ ]

data_element [ ] является массивом данных. Количество элементов массива зависит от контекста.

data_element [n] data_element [m] [n]

data_element [n] является (n+1)-ым элементом массива данных. 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 [mn]

data_element [mn] содержит биты массива data_element с m по n включительно.

3.4 Арифметические типы данных

INT32

32-битное знаковое целое с дополнением к нулю.

INT64

64-битное знаковое целое с дополнением к нулю.

3.5 Технический обзор

3.5.1 Типы звуковых объектов MPEG-4

3.5.1.1 Определение типов звуковых объектов приведено в таблице 1.

Таблица 1 – Определение типов звуковых объектов на основе инструментов/модулей

Окончание таблицы 1

Примечания

1 Функция битового поиска обязательна для декодера. Однако функции обнаружения и исправления ошибок являются необязательными.

2 Содержит AAC LC.

3 Содержит таблично-волновой синтез, алгоритмический синтез и звуковые эффекты.

4 Содержит спецификацию General MIDI.

5 Содержит ER AAC LC.

6 Инструмент передискретизации требуется только в комбинации с основным кодером.

3.5.1.2 Описание

3.5.1.2.1 Тип объекта NULL

Объект NULL обеспечивает возможность подать необработанные ИКМ отсчеты непосредственно в звуковой процессор. Декодирование не применяется, однако дескриптор звуковых объектов используется для определения частоты дискретизации и конфигурации звуковых каналов.

3.5.1.2.2 Тип объекта AAC – Main

Объект AAC Main очень схож с профилем AAC Main. Однако дополнительно доступен инструмент PNS. Ограничения профиля AAC Main относительно различных программ и элементов сведения также относятся к типу объекта ААС Main. Все многоканальные возможности ААС MPEG-2 доступны. Декодер, способный декодировать поток основного объекта MPEG-4, также в состоянии анализировать и декодировать поток необработанных данных AAC MPEG-2. С другой стороны, несмотря на то что кодер AAC MPEG-2 может анализировать полезный поток битов AAC MPEG-4 Main, возможна ошибка декодирования из-за использования PNS.

3.5.1.2.3 Тип объекта ААС – Low Complexity (LC)

Тип объекта AAC MPEG-4 Low Complexity является копией профиля пониженной сложности ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.4 Тип объекта ААС – Scalable Sampling Rate (SSR)

Тип объекта ААС MPEG-4 Scalable Sampling Rate является копией профиля масштабируемой частоты дискретизации ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.5 Тип объекта ААС – Long Term Predictor (LTP)

Тип объекта ААС MPEG-4 LTP подобен типу объекта ААС Main, однако предсказатель ААС MPEG-2 заменен долговременным предсказателем. LTP достигает схожего усиления эффективности кодирования, но требует значительно более низкой сложности реализации. Полезный поток бит профиля ААС MPEG-2 LC может быть декодирован декодером объекта LTP AAC MPEG-4 без ограничений.

3.5.1.2.6 Тип объекта SBR

Объект SBR содержит инструмент SBR и может быть объединен с типами звуковых объектов, обозначенными в таблице 2.

Таблица 2 – Типы звуковых объектов, которые могут быть объединены с инструментом SBR

Тип звукового объекта

ID типа объекта

ААС main

1

AAC LC

2

ААС SSR

3

ААС LTP

4

ААС Scalable

6

ER AAC LC

17

ER AAC LTP

19

ER AAC Scalable

20

ER BSAC

22

3.5.1.2.7 Тип объекта ААС Scalable

Объект ААС Scalable использует различный синтаксис полезного потока бит для реализации масштабируемости скорости передачи и полосы пропускания. Доступно большое количество масштабируемых комбинаций, включая комбинации с инструментами TwinVQ и CELP. Однако поддерживаются только моно или 2-канальные стерео объекты.

3.5.1.2.8 Тип объекта TwinVQ

Объект TwinVQ принадлежит схеме кодирования GA, реализующей квантование коэффициентов МДКП. Эта схема кодирования основана на векторном квантовании с фиксированной скоростью вместо кода Хаффмана в ААС.

Доступны низкие скорости передачи для моно и стерео. Схемы масштабируемых скоростей также доступны в профиле Scalable Audio, объединенном с типом объекта ААС Scalable.

3.5.1.2.9 Тип объекта CELP

Объект CELP поддерживается инструментами кодирования речи CELP, которые обеспечивают кодирование на частотах дискретизации 8 кГц и 16 кГц при скоростях передачи данных в диапазоне 4-24 кбит/с. Дополнительно доступны масштабируемость скорости передачи и полосы пропускания для обеспечения масштабируемого декодирования потоков CELP. Объект CELP всегда содержит только один моно сигнал.

3.5.1.2.10 Тип объекта HVXC

Объект HVXC поддерживается инструментами параметрического кодирования речи (HVXC), которые обеспечивают режимы кодирования с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) в масштабируемой и немасштабируемой схеме, режим с переменной скоростью передачи данных (<2,0 кбит/с) и функции изменения высоты и скорости воспроизведения. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.11 Тип объекта TTSI

Объект TTSI поддерживается инструментами TTSI. Это позволяет осуществить передачу фонемных дескрипторов речи на очень низких скоростях для дальнейшего синтеза. MPEG-4 не дает определения самому методу синтеза речи; инструменты TTSI скорее определяют интерфейс нестандартных методов синтеза. Этот метод позволяет получить скорость передачи 200-1200 бит/с.

3.5.1.2.12 Тип объекта Main Synthetic

Объект Main Synthetic позволяет использовать все инструменты MPEG-4 Structured Audio. Это обеспечивает гибкий, высококачественный алгоритмический синтез на основе языка синтеза музыки SAOL, эффективный таблично-волновой синтез с форматом банка сэмплов SASBF и реализует высококачественное сведение и пост-продакшн с набором инструментов Systems AudioBIFS. Описание звука может быть передано на скоростях от 0 кбит/с (не требуется непрерывная передача) до 3-4 кбит/с для чрезвычайно экспрессивных звуков в формате Structured Audio MPEG-4.

3.5.1.2.13 Тип объекта Wavetable Synthesis

Объект таблично-волнового синтеза поддерживается только форматом SASBF и инструментами MIDI. Это позволяет использовать простой сэмплерный синтез, когда качество и гибкость полного набора инструментов синтеза не требуются.

3.5.1.2.14 Тип объекта General MIDI

Объект General MIDI включен только для предоставления функциональной совместимости с существующим контентом. Стандартизованное качество звучания и свойства декодера объектом General MIDI не предоставляются.

3.5.1.2.15 Тип объекта Algorithmic Synthesis и Audio FX

Объект Algorithmic Synthesis обеспечивает синтез звука на основе SAOL при очень низких скоростях передачи. Он также используется для поддержки узла AudioBIFS AudioFX там, где не требуется синтезированный звук.

3.5.1.2.16 Тип объекта Error Resilient (ER) AAC Low Complexity (LC)

Тип объекта Error Resilient (ER) AAC Low Complexity (LC) является копией объекта AAC MPEG-4 Low Complexity с дополнительными функциональными возможностями.

3.5.1.2.17 Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP)

Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP) является копией объекта AAC MPEG-4 LTP с дополнительными функциональными возможностями.

3.5.1.2.18 Тип объекта Error Resilient (ER) AAC scalable

Тип объекта Error Resilient (ER) AAC scalable является копией объекта AAC MPEG-4 scalable с дополнительными функциональными возможностями.

3.5.1.2.19 Тип объекта Error Resilient (ER) TwinVQ

Тип объекта Error Resilient (ER) AAC TwinVQ является копией объекта AAC MPEG-4 TwinVQ с дополнительными функциональными возможностями.

3.5.1.2.20 Тип объекта Error Resilient (ER) BSAC

Объект BSAC ER поддерживается инструментом точного масштабирования (BSAC). Это позволяет обеспечить как устойчивость к ошибкам, так и точную масштабируемость шага квантования в кодере MPEG-4 General Audio (GA). Данный объект используется в комбинации с инструментами кодирования ААС и заменяет кодирование без потерь и форматирование полезного потока бит кодера AAC MPEG-4. Доступно большое количество масштабируемых уровней, что обеспечивает уровень расширения на скорости 1 кбит/с/канал, то есть 2 кбит/с шага для сигнала стерео.

3.5.1.2.21 Тип объекта Error Resilient (ER) AAC LD

Объект AAC LD поддерживается инструментом кодирования ААС с низкой задержкой. Он также допускает комбинации с инструментами PNS и LTP. Объект ААС LD расширяет использование универсального низкоскоростного кодирования аудио на приложения, требующие очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.1.2.22 Тип объекта Error Resilient (ER) CELP

Объект ER CELP поддерживается инструментами сжатия тишины и ER. Это позволяет уменьшить среднюю скорость передачи благодаря более низкому сжатию для участков тишины с дополнительными функциональными возможностями.

3.5.1.2.23 Тип объекта Error Resilient (ER) HVXC

Объект ER HVXC поддерживается инструментами параметрического речевого кодирования (HVXC), которые обеспечивают режимы с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) и режимы с переменной скоростью передачи данных (<2,0 кбит/с и <4,0 кбит/с), как с использованием масштабирования, так и без него, с возможностью изменения высоты и скорости воспроизведения. Синтаксис инструмента ЕР и способность устранения ошибок поддерживаются для использования в каналах связи, подверженных ошибкам. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.24 Тип объекта Error Resilient (ER) HILN

Объект ER HILN поддерживается инструментами параметрического кодирования звука (HILN: гармонические и индивидуальные линии вместе с шумом), которые обеспечивают кодирование обычных звуковых сигналов при очень низких скоростях передачи в пределах от менее 4 кбит/с до более 16 кбит/с. Доступны масштабируемость скорости передачи с возможностью изменения высоты и скорости воспроизведения. Объект ER HILN поддерживает звуковые объекты моно в широком диапазоне частот дискретизации.

3.5.1.2.25 Тип объекта Error Resilient (ER) Parametric

Объект ER Parametric поддерживается инструментами параметрического кодирования звука и кодирования речи HILN и HVXC. Этот встроенный параметрический кодер комбинирует функциональные возможности объектов ER HILN и ER HVXC. Поддерживаются только звуковые сигналы моно с частотой дискретизации 8 кГц.

3.5.1.2.26 Тип объекта SSC Audio

Объект SSC (синусоидальное кодирование) комбинирует инструменты параметрического кодирования SSC: транзиенты, синусоиды, шум и параметрическое стерео. Поддерживаются сигналы моно, двойное моно и стерео (параметрическое) с частотой дискретизации 44,1 кГц.

3.5.1.2.27 Тип объекта Layer-1 Audio

Объект Layer-1 является копией алгоритма кодирования уровня I.

3.5.1.2.28 Тип объекта Layer-2 Audio

Объект Layer-2 является копией алгоритма кодирования уровня II.

3.5.1.2.29 Тип объекта Layer-3 Audio

Объект Layer-3 схож с алгоритмом кодирования уровня III.

3.5.1.2.30 Тип объекта ALS Audio

Тип объекта ALS копия алгоритма кодирования без потерь (ALS), содержит соответствующие инструменты ALS.

3.5.1.2.31 Тип объекта SLS Audio

Объект SLS поддерживается инструментом масштабируемого кодирования без потерь, который обеспечивает точное масштабирование расширения кодирования без потерь в перцепционных звуковых кодеках MPEG, таких как ААС, позволяя применять различные шаги по улучшению – от качества звучания основного алгоритма до кодирования без потерь и почти незаметного кодирования. Он также обеспечивает stand-alone кодирование звука без потерь, когда основной звуковой кодек отключен.

3.5.1.2.32 SLS Тип объекта SLS Non-Core Audio

Объект SLS non-core поддерживается инструментом масштабируемого кодирования без потерь. Он подобен типу объекта SLS, однако основной звуковой кодек отключен.

3.5.1.2.33 Тип объекта PS

Тип объекта PS содержит инструмент PS и может быть объединен с инструментом SBR.

3.5.1.2.34 Тип объекта MPEG Surround

Объект MPEG Surround содержит служебную информацию MPEG Surround.

3.5.1.2.35 Тип объекта SMR Simple

Тип объекта SMR Simple используется для передачи музыкальных партитур для их аудио и видео обработки. Кодированные данные содержат информацию относительно основной партитуры, частей (то есть партий отдельных инструментов), возможных многоязычных текстов, связанных с частями, правил визуального форматирования, которые будут использоваться при обработке видео, шрифтов для специальных музыкальных символов и информации синхронизации. Шрифты и информация синхронизации представлены как двоичные данные, остальные – как XML данные. Тип объекта SMR Simple может передать XML данные в виде простого XML текста или как gzip XML.

3.5.1.2.36 Тип объекта SMR Main

Тип объекта SMR Main может передавать музыкальные партитуры, как тип объекта SMR Simple, однако в этом случае XML данные могут быть закодированы инструментами MPEG-B.

3.5.1.2.37 Тип объекта Error Resilient (ER) AAC ELD

Тип объекта с улучшенной низкой задержкой (ER ААС ELD) идентичен типу объекта ER AAC LD с добавлением банка фильтров с низкой задержкой (LDFB) и улучшенного окна. Возможны комбинации с инструментом PNS, так же как и с инструментом низкой задержки SBR. Тип объекта ER AAC ELD расширяет применение универсального низкоскоростного кодирования звука для приложений, требующих очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.2 Звуковые профили и уровни

3.5.2.1 Профили

Определены следующие звуковые профили (см. таблицу 3):

1 Речевой профиль обеспечивает параметрический речевой кодер, речевой кодер CELP и интерфейс преобразования текста в речь.

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

3 Масштабируемый профиль – надмножество речевого профиля, является подходящим для масштабируемого кодирования речи и музыки для Интернета и цифрового вещания.

4 Основной профиль – надмножество масштабируемого профиля, речевого профиля и профиля звукового синтеза, содержит инструменты для обычного и синтезированного звука.

5 Профиль высокого качества содержит речевой кодер CELP и кодер низкой сложности ААС, включающий долгосрочное предсказание. Масштабируемое кодирование может быть выполнено объектом типа AAC Scalable. Дополнительно может применяться новый ER синтаксис потока битов.

6 Профиль низкой задержки содержит речевые кодеры HVXC и CELP (дополнительно использующие ER синтаксис), кодер ААС низкой задержки и интерфейс преобразования текста в речь TTSI.

7 Профиль натурального звука содержит все доступные в MPEG-4 инструменты для кодирования натурального звука.

8 Профиль звука для Интернета содержит типы объектов с низкой задержкой и масштабированием ААС, включая TwinVQ и BSAC. Эта конфигурация предназначена для расширения коммуникационных приложений при помощи не-MPEG алгоритмов кодирования речи с высоким качеством.

9 Профиль ААС содержит тип звукового объекта 2 (AAC-LC).

10 Профиль ААС высокой производительности содержит типы звуковых объектов 5 (SBR) и 2 (AAC-LC). Профиль ААС высокой производительности является надмножеством профиля ААС.

11 Профиль ААС высокой производительности версии 2 содержит типы звуковых объектов 5 (SBR), 29 (PS) и 2 (AAC-LC). Профиль ААС высокой производительности версии 2 является надмножеством профиля ААС высокой производительности.

12 Профиль ААС с низкой задержкой содержит тип звукового объекта 23 (ER AAC LD).

Таблица 3 – Определение звуковых профилей

ID типа объекта

Тип объекта Audio

Speech Audio Profile

Synthetic Audio Profile

Scalable Audio Profile

Main Audio Profile

High Quality Audio Profile

Low Delay Audio Profile

Natural Audio Profile

Mobile Audio Internet-
working Profile

AAC Profile

High Efficiency AAC Profile

High Efficiency AAC v2 Profile

Low Delay AAC Profile

0

Null

1

ААС main

X

X

2

AAC LC

X

X

X

X

X

X

X

3

ААС SSR

X

X

4

ААС LTP

X

X

X

X

5

SBR

X

X

6

AAC Scalable

X

X

X

X

7

TwinVQ

X

X

X

8

CELP

X

X

X

X

X

X

9

HVXC

X

X

X

X

X

10

(зарезервировано)

11

(зарезервировано)

12

TTSI

X

X

X

X

X

X

13

Main synthetic

X

X

14

Wavetable synthesis

X*

X*

15

General MIDI

X*

X*

16

Algorithmic Synthesis and Audio FX

X*

X*

17

ER AAC LC

X

X

X

18

(зарезервировано)

19

ER AAC LTP

X

X

20

ER AAC Scalable

X

X

X

21

ER TwinVQ

X

X

22

ER BSAC

X

X

23

ER AAC LD

X

X

X

X

24

ER CELP

X

X

X

25

ER HVXC

X

X

26

ER HILN

X

27

ER Parametric

X

28

SSC

29

PS

X

30

MPEG Surround

31

(escape)

32

Layer-1

ГОСТ Р 53556.1-2012

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Звуковое вещание цифровое

КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ. ЧАСТЬ 3 (MPEG-4 AUDIO)

Общие требования к кодированию

Digital sound broadcasting. Coding of sound broadcasting signals with redundancy reduction for transfer on digital communication channels. Part III (MPEG-4 audio). General requirements for coding

ОКС 33.170

Дата введения 2013-09-01

Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ “О техническом регулировании”, а правила применения национальных стандартов Российской Федерации – ГОСТ Р 1.0-2004 “Стандартизация в Российской Федерации. Основные положения”

Сведения о стандарте

1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи “Ленинградское отделение” (ФГУП ЛО ЦНИИС)

2 ВНЕСЕН Техническим комитетом по стандартизации N 480 “Связь”

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. N 940-ст

4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio) [1]
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт . – .

5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе “Национальные стандарты”, а официальный текст изменений и поправок – в ежемесячном информационном указателе “Национальные стандарты”. В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационном указателе “Национальные стандарты”. Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

1 Область применения

1 Область применения

Для достижения лучшего качества звучания на низких скоростях передачи данных (менее 64 Кбит/с на канал) вводятся три дополнительных частоты дискретизации (Fs) -16 кГц, 22,05 кГц и 24 кГц. Это позволяет поддерживать звуковые сигналы с полосами частот 7,5 кГц, 10,3 кГц и 11,25 кГц соответственно, и обеспечивать передачу сигналов звукового вещания по стандартным каналам (ГОСТ Р 52742-2007 и ГОСТ Р 53537-2009).

Синтаксис, семантика и методы кодирования ГОСТ Р 54711-2011 сохраняются в данном стандарте, за исключением определения поля частоты дискретизации, поля скорости передачи и таблиц распределения бит. Новые значения действительны, если бит ID в заголовке ГОСТ Р 54711-2011 равняется нулю. Для получения лучшей производительности звуковой системы параметры психоакустической модели, используемой в кодере, должны быть изменены соответственно.

Вход кодера и выход декодера совместимы с существующими стандартами ИКМ, такими как ГОСТ 27667-88, ГОСТ 28376-89.

Показатели, определенные настоящим документом, являются базовыми для профессиональной и бытовой аппаратуры – проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования класса Hi-Fi.

Универсальная и совместимая многоканальная звуковая система применима для спутникового и наземного телевизионного вещания, цифрового звукового вещания (наземного и спутникового), так же как и для других носителей, например:

CATV

Кабельное телевидение;

CDAD

Кабельное цифровое звуковое вещание;

DAB

Широковещательная передача цифрового звукового сигнала;

DVD

Цифровой универсальный диск;

ENG

Электронные новости (включая новости по спутнику);

HDTV

Телевидение высокой четкости;

IPC

Межличностное общение (видеоконференция, видеотелефон и т.д.);

ISM

Интерактивные носители (оптические диски и т.д.).

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

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

ГОСТ Р 54712-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть III (MPEG-2 audio)

ГОСТ Р 54713-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть VII. Усовершенствованное кодирование звука (MPEG-2 AAC)

ГОСТ Р 53556.0-2009 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-4, часть III (MPEG-4 audio). Основные положения

ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений

ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20…20000 Гц)

ГОСТ 27667-88 Система цифровая звуковая “Компакт-диск”. Параметры

ГОСТ 28376-89 Компакт-диск. Параметры и размеры

Примечание – При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов и классификаторов в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю “Национальные стандарты”, который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный документ заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться замененным (измененным) документом. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.

3 Термины, определения, символы и сокращения

3.1 Термины и определения

В настоящем стандарте применены термины и сокращения с соответствующими определениями, по ГОСТ Р 53556.0-2009, а также следующие термины с соответствующими определениями, не вошедшие в указанный стандарт:

3.1.1 буфер: Устройство памяти большой емкости, позволяющее записывать и хранить большой объем данных.

3.1.2 программа ААС: Основные звуковые каналы, спаренные каналы, канал Ife и связанные потоки данных, которые должны быть декодированы и воспроизведены одновременно. Программа может быть задана по умолчанию или с помощью program_config_element (). Данные single_channel_element (), channel_pair_element (), coupling_channel_element (), lfe_channel_element () или data_stream_element () могут сопровождать одну или более программ в любом заданном потоке.

3.1.3 звуковой блок доступа: Часть звуковых данных в пределах элементарного потока с возможностью индивидуального доступа.

3.1.4 звуковой композитный блок: Часть выходных данных, которую звуковой декодер производит из звуковых блоков доступа.

3.1.5 абсолютное время: Время, которому соответствует тот или иной звук; реальное время. Время в партитуре.

3.1.6 фактический параметр: Параметр команды.

3.1.7 адаптивная кодовая книга: Способ кодирования длительной периодичности сигнала. Входными параметрами кодовой книги являются перекрывающиеся сегменты прошлых возбуждений.

3.1.8 API: Интерфейс прикладного программирования.

3.1.9 масштабируемость полосы пропускания: Возможность менять полосу пропускания сигнала во время передачи.

3.1.10 ELD: Расширенная низкая задержка.

3.1.11 ЕР: Защита от ошибок.

3.1.12 R: Способность системы противостоять ошибкам.

3.1.13 возбуждение: Сигнал возбуждения представляет вход модуля LPC.

3.1.14 межфреймовое предсказание: Метод предсказания значений в текущем фрейме по значениям в предыдущих фреймах. Используется в VQ LSP.

3.1.15 LTP: Долгосрочное предсказание.

3.1.16 основные звуковые каналы: Весь single_channel_elements или channel_pair_elements в одной программе.

3.1.17 MIDI: Стандарт цифрового интерфейса музыкальных инструментов.

3.1.18 смешанный голосовой фрейм: Речевой сегмент, в котором присутствуют как голосовые, так и неголосовые компоненты.

3.1.19 PS: Параметрическое стерео.

3.1.20 TTSI: Интерфейс преобразования текста в речь.

3.1.21 VQ: Векторное квантование.

3.1.22 VXC: Векторное кодирование возбуждения. Синоним CELP.

3.2 Символы и сокращения

3.2.1 Математические операторы

Математические операторы, используемые в настоящем стандарте, аналогичны используемым в языке программирования С. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.

+ Сложение.

– Вычитание (как бинарный оператор) или отрицание (как унарный оператор).

++ Инкремент.

– – Декремент.

* Умножение.

^ Возведение в степень.

/ Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до одного, а -7/4 и 7/-4 округляются до минус одного.

// Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до двух, а -3//2 округляется до минус двух.

DIV Целочисленное разделение с округлением результата в сторону –.

|| Абсолютное значение.

|х| = х, когда х>0;

|х| = 0, когда х == 0;

|х| = –х, когда х<0.

% Деление с остатком. Операция определена только для положительных чисел.

Sign () Принимает следующие значения:

Sign (x) = 1,

когда х>0;

Sign (x) = 0,

когда х = 0;

Sign (x) = -1,

когда х<0.

NINT () Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.

sin

Синус.

cos

Косинус.

exp

Экспонента.

Квадратный корень.

Логарифм по основанию 10.

Натуральный логарифм.

Логарифм по основанию 2.

3.2.2 Логические операторы

II

логическое ИЛИ.

&&

Логическое И.

!

Логическое НЕ.

3.2.3 Операторы сравнения

>

Больше.

>=

Больше или равно.

<

Меньше.

<=

Меньше или равно.

==

Равно.

!=

Не равно.

max [,…,]

Максимальное значение.

min [,…,]

Минимальное значение.

3.2.4 Побитные операторы

Использование побитных операций подразумевает представление чисел в дополнительном коде.

&

Побитное И.

I

Побитное ИЛИ.

>>

Сдвиг вправо.

<<

Сдвиг влево.

3.2.5 Оператор присвоения

=

Оператор присвоения.

3.2.6 Мнемоники

Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.

bslbf

Битовая строка, младший бит слева, в соответствии с настоящим стандартом. Битовые строки пишутся, как строка единиц и нулей внутри одинарных кавычек, например, ‘1000 0001’. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения.

L, С, R, LS, RS

Левый, центральный, правый, левый окружения и правый окружения звуковые каналы объемного звучания.

rpchof

Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка.

uimsbf

Целое число без знака, старший бит первый.

vlclbf

Код с переменной длиной слова, левый бит первый, где “левый” относится к порядку, в котором пишутся коды с переменной длиной.

window

Номер текущего временного интервала в случае block_type==2, 0windowwindow2.

В многобайтовых словах старший байт является первым.

3.2.7 Константы

3,14159265358…

2,71828182845…

3.3 Метод описания синтаксиса потока битов

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

Группа элементов данных может содержать вложенные условные конструкции. Для компактности скобки {} могут быть опущены, когда следует только один элемент данных.

data_element [ ]

data_element [ ] является массивом данных. Количество элементов массива зависит от контекста.

data_element [n] data_element [m] [n]

data_element [n] является (n+1)-ым элементом массива данных. 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 [mn]

data_element [mn] содержит биты массива data_element с m по n включительно.

3.4 Арифметические типы данных

INT32

32-битное знаковое целое с дополнением к нулю.

INT64

64-битное знаковое целое с дополнением к нулю.

3.5 Технический обзор

3.5.1 Типы звуковых объектов MPEG-4

3.5.1.1 Определение типов звуковых объектов приведено в таблице 1.

Таблица 1 – Определение типов звуковых объектов на основе инструментов/модулей

Окончание таблицы 1

Примечания

1 Функция битового поиска обязательна для декодера. Однако функции обнаружения и исправления ошибок являются необязательными.

2 Содержит AAC LC.

3 Содержит таблично-волновой синтез, алгоритмический синтез и звуковые эффекты.

4 Содержит спецификацию General MIDI.

5 Содержит ER AAC LC.

6 Инструмент передискретизации требуется только в комбинации с основным кодером.

3.5.1.2 Описание

3.5.1.2.1 Тип объекта NULL

Объект NULL обеспечивает возможность подать необработанные ИКМ отсчеты непосредственно в звуковой процессор. Декодирование не применяется, однако дескриптор звуковых объектов используется для определения частоты дискретизации и конфигурации звуковых каналов.

3.5.1.2.2 Тип объекта AAC – Main

Объект AAC Main очень схож с профилем AAC Main. Однако дополнительно доступен инструмент PNS. Ограничения профиля AAC Main относительно различных программ и элементов сведения также относятся к типу объекта ААС Main. Все многоканальные возможности ААС MPEG-2 доступны. Декодер, способный декодировать поток основного объекта MPEG-4, также в состоянии анализировать и декодировать поток необработанных данных AAC MPEG-2. С другой стороны, несмотря на то что кодер AAC MPEG-2 может анализировать полезный поток битов AAC MPEG-4 Main, возможна ошибка декодирования из-за использования PNS.

3.5.1.2.3 Тип объекта ААС – Low Complexity (LC)

Тип объекта AAC MPEG-4 Low Complexity является копией профиля пониженной сложности ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.4 Тип объекта ААС – Scalable Sampling Rate (SSR)

Тип объекта ААС MPEG-4 Scalable Sampling Rate является копией профиля масштабируемой частоты дискретизации ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.5 Тип объекта ААС – Long Term Predictor (LTP)

Тип объекта ААС MPEG-4 LTP подобен типу объекта ААС Main, однако предсказатель ААС MPEG-2 заменен долговременным предсказателем. LTP достигает схожего усиления эффективности кодирования, но требует значительно более низкой сложности реализации. Полезный поток бит профиля ААС MPEG-2 LC может быть декодирован декодером объекта LTP AAC MPEG-4 без ограничений.

3.5.1.2.6 Тип объекта SBR

Объект SBR содержит инструмент SBR и может быть объединен с типами звуковых объектов, обозначенными в таблице 2.

Таблица 2 – Типы звуковых объектов, которые могут быть объединены с инструментом SBR

Тип звукового объекта

ID типа объекта

ААС main

1

AAC LC

2

ААС SSR

3

ААС LTP

4

ААС Scalable

6

ER AAC LC

17

ER AAC LTP

19

ER AAC Scalable

20

ER BSAC

22

3.5.1.2.7 Тип объекта ААС Scalable

Объект ААС Scalable использует различный синтаксис полезного потока бит для реализации масштабируемости скорости передачи и полосы пропускания. Доступно большое количество масштабируемых комбинаций, включая комбинации с инструментами TwinVQ и CELP. Однако поддерживаются только моно или 2-канальные стерео объекты.

3.5.1.2.8 Тип объекта TwinVQ

Объект TwinVQ принадлежит схеме кодирования GA, реализующей квантование коэффициентов МДКП. Эта схема кодирования основана на векторном квантовании с фиксированной скоростью вместо кода Хаффмана в ААС.

Доступны низкие скорости передачи для моно и стерео. Схемы масштабируемых скоростей также доступны в профиле Scalable Audio, объединенном с типом объекта ААС Scalable.

3.5.1.2.9 Тип объекта CELP

Объект CELP поддерживается инструментами кодирования речи CELP, которые обеспечивают кодирование на частотах дискретизации 8 кГц и 16 кГц при скоростях передачи данных в диапазоне 4-24 кбит/с. Дополнительно доступны масштабируемость скорости передачи и полосы пропускания для обеспечения масштабируемого декодирования потоков CELP. Объект CELP всегда содержит только один моно сигнал.

3.5.1.2.10 Тип объекта HVXC

Объект HVXC поддерживается инструментами параметрического кодирования речи (HVXC), которые обеспечивают режимы кодирования с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) в масштабируемой и немасштабируемой схеме, режим с переменной скоростью передачи данных (<2,0 кбит/с) и функции изменения высоты и скорости воспроизведения. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.11 Тип объекта TTSI

Объект TTSI поддерживается инструментами TTSI. Это позволяет осуществить передачу фонемных дескрипторов речи на очень низких скоростях для дальнейшего синтеза. MPEG-4 не дает определения самому методу синтеза речи; инструменты TTSI скорее определяют интерфейс нестандартных методов синтеза. Этот метод позволяет получить скорость передачи 200-1200 бит/с.

3.5.1.2.12 Тип объекта Main Synthetic

Объект Main Synthetic позволяет использовать все инструменты MPEG-4 Structured Audio. Это обеспечивает гибкий, высококачественный алгоритмический синтез на основе языка синтеза музыки SAOL, эффективный таблично-волновой синтез с форматом банка сэмплов SASBF и реализует высококачественное сведение и пост-продакшн с набором инструментов Systems AudioBIFS. Описание звука может быть передано на скоростях от 0 кбит/с (не требуется непрерывная передача) до 3-4 кбит/с для чрезвычайно экспрессивных звуков в формате Structured Audio MPEG-4.

3.5.1.2.13 Тип объекта Wavetable Synthesis

Объект таблично-волнового синтеза поддерживается только форматом SASBF и инструментами MIDI. Это позволяет использовать простой сэмплерный синтез, когда качество и гибкость полного набора инструментов синтеза не требуются.

3.5.1.2.14 Тип объекта General MIDI

Объект General MIDI включен только для предоставления функциональной совместимости с существующим контентом. Стандартизованное качество звучания и свойства декодера объектом General MIDI не предоставляются.

3.5.1.2.15 Тип объекта Algorithmic Synthesis и Audio FX

Объект Algorithmic Synthesis обеспечивает синтез звука на основе SAOL при очень низких скоростях передачи. Он также используется для поддержки узла AudioBIFS AudioFX там, где не требуется синтезированный звук.

3.5.1.2.16 Тип объекта Error Resilient (ER) AAC Low Complexity (LC)

Тип объекта Error Resilient (ER) AAC Low Complexity (LC) является копией объекта AAC MPEG-4 Low Complexity с дополнительными функциональными возможностями.

3.5.1.2.17 Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP)

Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP) является копией объекта AAC MPEG-4 LTP с дополнительными функциональными возможностями.

3.5.1.2.18 Тип объекта Error Resilient (ER) AAC scalable

Тип объекта Error Resilient (ER) AAC scalable является копией объекта AAC MPEG-4 scalable с дополнительными функциональными возможностями.

3.5.1.2.19 Тип объекта Error Resilient (ER) TwinVQ

Тип объекта Error Resilient (ER) AAC TwinVQ является копией объекта AAC MPEG-4 TwinVQ с дополнительными функциональными возможностями.

3.5.1.2.20 Тип объекта Error Resilient (ER) BSAC

Объект BSAC ER поддерживается инструментом точного масштабирования (BSAC). Это позволяет обеспечить как устойчивость к ошибкам, так и точную масштабируемость шага квантования в кодере MPEG-4 General Audio (GA). Данный объект используется в комбинации с инструментами кодирования ААС и заменяет кодирование без потерь и форматирование полезного потока бит кодера AAC MPEG-4. Доступно большое количество масштабируемых уровней, что обеспечивает уровень расширения на скорости 1 кбит/с/канал, то есть 2 кбит/с шага для сигнала стерео.

3.5.1.2.21 Тип объекта Error Resilient (ER) AAC LD

Объект AAC LD поддерживается инструментом кодирования ААС с низкой задержкой. Он также допускает комбинации с инструментами PNS и LTP. Объект ААС LD расширяет использование универсального низкоскоростного кодирования аудио на приложения, требующие очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.1.2.22 Тип объекта Error Resilient (ER) CELP

Объект ER CELP поддерживается инструментами сжатия тишины и ER. Это позволяет уменьшить среднюю скорость передачи благодаря более низкому сжатию для участков тишины с дополнительными функциональными возможностями.

3.5.1.2.23 Тип объекта Error Resilient (ER) HVXC

Объект ER HVXC поддерживается инструментами параметрического речевого кодирования (HVXC), которые обеспечивают режимы с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) и режимы с переменной скоростью передачи данных (<2,0 кбит/с и <4,0 кбит/с), как с использованием масштабирования, так и без него, с возможностью изменения высоты и скорости воспроизведения. Синтаксис инструмента ЕР и способность устранения ошибок поддерживаются для использования в каналах связи, подверженных ошибкам. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.24 Тип объекта Error Resilient (ER) HILN

Объект ER HILN поддерживается инструментами параметрического кодирования звука (HILN: гармонические и индивидуальные линии вместе с шумом), которые обеспечивают кодирование обычных звуковых сигналов при очень низких скоростях передачи в пределах от менее 4 кбит/с до более 16 кбит/с. Доступны масштабируемость скорости передачи с возможностью изменения высоты и скорости воспроизведения. Объект ER HILN поддерживает звуковые объекты моно в широком диапазоне частот дискретизации.

3.5.1.2.25 Тип объекта Error Resilient (ER) Parametric

Объект ER Parametric поддерживается инструментами параметрического кодирования звука и кодирования речи HILN и HVXC. Этот встроенный параметрический кодер комбинирует функциональные возможности объектов ER HILN и ER HVXC. Поддерживаются только звуковые сигналы моно с частотой дискретизации 8 кГц.

3.5.1.2.26 Тип объекта SSC Audio

Объект SSC (синусоидальное кодирование) комбинирует инструменты параметрического кодирования SSC: транзиенты, синусоиды, шум и параметрическое стерео. Поддерживаются сигналы моно, двойное моно и стерео (параметрическое) с частотой дискретизации 44,1 кГц.

3.5.1.2.27 Тип объекта Layer-1 Audio

Объект Layer-1 является копией алгоритма кодирования уровня I.

3.5.1.2.28 Тип объекта Layer-2 Audio

Объект Layer-2 является копией алгоритма кодирования уровня II.

3.5.1.2.29 Тип объекта Layer-3 Audio

Объект Layer-3 схож с алгоритмом кодирования уровня III.

3.5.1.2.30 Тип объекта ALS Audio

Тип объекта ALS копия алгоритма кодирования без потерь (ALS), содержит соответствующие инструменты ALS.

3.5.1.2.31 Тип объекта SLS Audio

Объект SLS поддерживается инструментом масштабируемого кодирования без потерь, который обеспечивает точное масштабирование расширения кодирования без потерь в перцепционных звуковых кодеках MPEG, таких как ААС, позволяя применять различные шаги по улучшению – от качества звучания основного алгоритма до кодирования без потерь и почти незаметного кодирования. Он также обеспечивает stand-alone кодирование звука без потерь, когда основной звуковой кодек отключен.

3.5.1.2.32 SLS Тип объекта SLS Non-Core Audio

Объект SLS non-core поддерживается инструментом масштабируемого кодирования без потерь. Он подобен типу объекта SLS, однако основной звуковой кодек отключен.

3.5.1.2.33 Тип объекта PS

Тип объекта PS содержит инструмент PS и может быть объединен с инструментом SBR.

3.5.1.2.34 Тип объекта MPEG Surround

Объект MPEG Surround содержит служебную информацию MPEG Surround.

3.5.1.2.35 Тип объекта SMR Simple

Тип объекта SMR Simple используется для передачи музыкальных партитур для их аудио и видео обработки. Кодированные данные содержат информацию относительно основной партитуры, частей (то есть партий отдельных инструментов), возможных многоязычных текстов, связанных с частями, правил визуального форматирования, которые будут использоваться при обработке видео, шрифтов для специальных музыкальных символов и информации синхронизации. Шрифты и информация синхронизации представлены как двоичные данные, остальные – как XML данные. Тип объекта SMR Simple может передать XML данные в виде простого XML текста или как gzip XML.

3.5.1.2.36 Тип объекта SMR Main

Тип объекта SMR Main может передавать музыкальные партитуры, как тип объекта SMR Simple, однако в этом случае XML данные могут быть закодированы инструментами MPEG-B.

3.5.1.2.37 Тип объекта Error Resilient (ER) AAC ELD

Тип объекта с улучшенной низкой задержкой (ER ААС ELD) идентичен типу объекта ER AAC LD с добавлением банка фильтров с низкой задержкой (LDFB) и улучшенного окна. Возможны комбинации с инструментом PNS, так же как и с инструментом низкой задержки SBR. Тип объекта ER AAC ELD расширяет применение универсального низкоскоростного кодирования звука для приложений, требующих очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.2 Звуковые профили и уровни

3.5.2.1 Профили

Определены следующие звуковые профили (см. таблицу 3):

1 Речевой профиль обеспечивает параметрический речевой кодер, речевой кодер CELP и интерфейс преобразования текста в речь.

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

3 Масштабируемый профиль – надмножество речевого профиля, является подходящим для масштабируемого кодирования речи и музыки для Интернета и цифрового вещания.

4 Основной профиль – надмножество масштабируемого профиля, речевого профиля и профиля звукового синтеза, содержит инструменты для обычного и синтезированного звука.

5 Профиль высокого качества содержит речевой кодер CELP и кодер низкой сложности ААС, включающий долгосрочное предсказание. Масштабируемое кодирование может быть выполнено объектом типа AAC Scalable. Дополнительно может применяться новый ER синтаксис потока битов.

6 Профиль низкой задержки содержит речевые кодеры HVXC и CELP (дополнительно использующие ER синтаксис), кодер ААС низкой задержки и интерфейс преобразования текста в речь TTSI.

7 Профиль натурального звука содержит все доступные в MPEG-4 инструменты для кодирования натурального звука.

8 Профиль звука для Интернета содержит типы объектов с низкой задержкой и масштабированием ААС, включая TwinVQ и BSAC. Эта конфигурация предназначена для расширения коммуникационных приложений при помощи не-MPEG алгоритмов кодирования речи с высоким качеством.

9 Профиль ААС содержит тип звукового объекта 2 (AAC-LC).

10 Профиль ААС высокой производительности содержит типы звуковых объектов 5 (SBR) и 2 (AAC-LC). Профиль ААС высокой производительности является надмножеством профиля ААС.

11 Профиль ААС высокой производительности версии 2 содержит типы звуковых объектов 5 (SBR), 29 (PS) и 2 (AAC-LC). Профиль ААС высокой производительности версии 2 является надмножеством профиля ААС высокой производительности.

12 Профиль ААС с низкой задержкой содержит тип звукового объекта 23 (ER AAC LD).

Таблица 3 – Определение звуковых профилей

ID типа объекта

Тип объекта Audio

Speech Audio Profile

Synthetic Audio Profile

Scalable Audio Profile

Main Audio Profile

High Quality Audio Profile

Low Delay Audio Profile

Natural Audio Profile

Mobile Audio Internet-
working Profile

AAC Profile

High Efficiency AAC Profile

High Efficiency AAC v2 Profile

Low Delay AAC Profile

0

Null

1

ААС main

X

X

2

AAC LC

X

X

X

X

X

X

X

3

ААС SSR

X

X

4

ААС LTP

X

X

X

X

5

SBR

X

X

6

AAC Scalable

X

X

X

X

7

TwinVQ

X

X

X

8

CELP

X

X

X

X

X

X

9

HVXC

X

X

X

X

X

10

(зарезервировано)

11

(зарезервировано)

12

TTSI

X

X

X

X

X

X

13

Main synthetic

X

X

14

Wavetable synthesis

X*

X*

15

General MIDI

X*

X*

16

Algorithmic Synthesis and Audio FX

X*

X*

17

ER AAC LC

X

X

X

18

(зарезервировано)

19

ER AAC LTP

X

X

20

ER AAC Scalable

X

X

X

21

ER TwinVQ

X

X

22

ER BSAC

X

X

23

ER AAC LD

X

X

X

X

24

ER CELP

X

X

X

25

ER HVXC

X

X

26

ER HILN

X

27

ER Parametric

X

28

SSC

29

PS

X

30

MPEG Surround

31

(escape)

32

Layer-1

33

Layer-2

34

Layer-3

35

DST

36

ALS

37

SLS

38

SLS non-core

39

ER AAC ELD

40

SMR Simple

41

SMR Main

В дополнение к описаниям профилей, данным выше, необходимо отметить, что объекты ААС Scalable, использующие широкополосный уровень ядра CELP (с или без синтаксиса полезного битового потока ER) не являются частью какого бы то ни было звукового профиля.

3.5.2.2 Единицы сложности

Единицы сложности введены для того, чтобы дать приблизительную оценку сложности декодера в терминах вычислительной мощности и использования RAM, необходимых для обработки полезной части потока бит MPEG-4 Аудио в зависимости от определенных параметров.

Приблизительная вычислительная мощность дана в единицах вычислительной сложности (PCU), выраженных в MOPS. Приблизительное использование оперативной памяти дано в единицах использования памяти (RCU), выраженных в килословах (1000 слов). Количество RCU не включает в себя объем буфера, который может быть разделен между различными объектами и/или каналами.

Если уровень профиля определен максимальным числом единиц сложности, то гибкая конфигурация декодера, обрабатывающего различные типы объектов, допустима при условии, что оба значения сложности (РСU и RCU) для декодирования и преобразования частоты дискретизации (если требуется) не превышают этот предел.

Таблица 4 дает оценку сложности для различных типов объектов. Значения PCU даны в MOPS на канал, значения RCU – в килословах на канал (в ААС термин “канал” соответствует основному каналу, например канал SCE, один канал СРЕ или канал независимо переключаемого ССЕ).

Таблица 4 – Сложность типов звуковых объектов и преобразования частоты дискретизации

Тип объекта

Параметры

PCU (MOPS)

RCU

Примечания

ААС Main

fs = 48 кГц

5

5

1

AAC LC

fs = 48 кГц

3

3

1

ААС SSR

fs = 48 кГц

4

3

1

ААС LTP

fs = 48 кГц

4

4

1

SBR

fs = 24/48 кГц (in/out) (SBR tool)

3

2.5

1

fs = 24/48 кГц (in/out) (Low Power SBR tool)

2

1.5

1

fs = 48/48 кГц (in/out) (Down Sampled SBR tool)

4.5

2.5

1

fs = 48/48 кГц (in/out)

(Low Power Down Sampled)

SBR tool)

3

1.5

1

AAC Scalable

fs = 48 кГц

5

4

1, 2

TwinVQ

fs = 24 кГц

2

3

1

CELP

fs = 8 кГц

1

1

CELP

fs = 16 кГц

2

1

CELP

fs = 8/16 кГц (bandwidth scalable)

3

1

HVXC

fs = 8 кГц

2

1

TTSI

4

General MIDI

4

1

Wavetable

Synthesis

fs = 22,05 кГц

Зависит от потока битов

Зависит от потока битов

Main Synthetic

Зависит от потока битов

Зависит от потока битов

Algorithmic Synthesis and AudioFX

Зависит от потока битов

Зависит от потока битов

Sampling Rate Conversion

rf = 2, 3, 4, 6, 8, 12

2

0.5

3

ER AAC LC

fs = 48 кГц

3

3

1

ER AAC LTP

fs = 48 кГц

4

4

1

ER AAC Scalable

fs = 48 кГц

5

4

1, 2

ER TwinVQ

fs = 24 кГц

2

3

1

ER BSAC

fs = 48 кГц (Размер входного буфера = 26000 битов)

4

4

1

fs = 48 кГц (Размер входного буфера = 106000 битов)

4

8

ER AAC LD

fs = 48 кГц

3

2

1

ER CELP

fs = 8 кГц

2

1

fs = 16 кГц

3

1

ER HVXC

fs = 8 кГц

2

1

ER HILN

fs = 16 кГц, ns=93

15

2

6

fs = 16 кГц, ns=47

8

2

ER Parametric

fs = 8 кГц, ns=47

4

2

5, 6

ER AAC ELD

fs = 48 кГц

3

2

1

ER AAC ELD, Low Delay SBR tool only

fs = 24/48 кГц (in/out) (SBR tool)

3

2.5

1

fs = 24/48 кГц (in/out) (Low Power SBR tool)

2

1.5

1

fs = 48/48 кГц (in/out) (Down Sampled SBR tool)

4.5

2.5

1

fs = 48/48 кГц (in/out)

(Low Power Down Sampled])

SBR tool)

3

1.5

1

Определения:

fs = частота дискретизации

rf = отношение частот дискретизации

Примечания

1 PCU пропорционально частоте дискретизации.

2 Включает основной декодер.

3 Сложность для синтеза речи не учитывается.

4 Параметрический кодер в режиме HILN, для режима HVXC см. ER HVXC.

5 PCU зависит от fs и ns, см. ниже.

6 Преобразование частоты дискретизации необходимо, если объекты с различными частотами дискретизации объединены в сцене. Указанные значения должны быть добавлены для каждого необходимого преобразования.

PCU для HILN:

Вычислительная сложность HILN зависит от частоты дискретизации fs и максимального числа синусоид ns, которое должно быть синтезировано одновременно. Значение ns для фрейма является общим количеством гармонических и индивидуальных линий, синтезируемых в этом фрейме, то есть суммой начальных, промежуточных и конечных линий. Для fs в кГц PCU в MOPS вычисляется следующим образом:

PCU=(1 + 0,15*ns)*fs/16

Типовые максимальные значения ns составляют 47 для HILN 6 кбит/с и 93 для потоков HILN 16 кбит/с.

PCU и RCU для ААС:

Для типов объектов ААС PCU и RCU зависят от частоты дисретизации и конфигурации каналов следующим образом:

PCU

PCU = (fs / fs_ref) * PCU_ref * (2 * #СРЕ + #SCE + #LFE + #IndepCouplingCh + 0.3 * #DepCouplingCh)

fs: фактическая частота дискретизации

fs_ref: эталонная частота дискретизации (частота дискретизации для данного PCU_ref)

PCU_ref: эталонное PCU, данное в таблице 4

#SCE: количество SCE

РЕ:…

RCU

#СРЕ <2:

RCU = RCU_ref * [#SCE + 0,5 * #LFE + 0,5 * #IndepCouplingCh + 0,4 * #DepCouplingCh] + [RCU_ref + (RCU_ref – 1)] * #CPE

#CPE> = 2:

RCU = RCU_ref * [#SCE + 0,5 * #LFE + 0,5 * #IndepCouplingCh + 0,4 * #DepCouplingCh] + [RCU_ref + (RCU_ref – 1) * (2 * #CPE – 1)]

RCU_ref: эталонное RCU, данное в таблице 4

#SCE: количество SCE

#CPE: количество CPE

3.5.2.3 Уровни профилей

Под числом звуковых каналов понимается число основных звуковых каналов. На основании количества основных звуковых каналов (А) в таблице 5 указано число каналов LFE (L), число независимо переключаемых спаренных каналов (l) и число зависимо переключаемых спаренных каналов (D) для типов объектов, полученных из многоканального ААС в форме A.L.I.D.

Таблица 5 – Максимальное число индивидуальных типов каналов ААС в зависимости от указанного количества основных звуковых каналов

Количество основных звуковых каналов

АОТ

1

2

3

1 (ААС main)

1.0.0.0

2.0.0.0

5.1.1.1

2 (ААС LC)

1.0.0.0

2.0.0.0

5.1.0.1

3 (ААС SSR)

1.0.0.0

2.0.0.0

5.1.0.0

4 (ААС LTP)

1.0.0.0

2.0.0.0

5.1.0.1

17 (ER AAC LC)

1.0.0.0

2.0.0.0

5.1.0.0

19 (ER ААС LTP)

1.0.0.0

2.0.0.0

5.1.0.0

23 (ER ААС LD)

1.0.0.0

2.0.0.0

5.1.0.0

Примечание – В случае масштабируемых схем кодирования для определения количества объектов, допустимых по сложности, учитывается только первая реализация каждого типа объекта. Например, в масштабируемом кодере, состоящем из основного кодера CELP и двух уровней расширения, реализованных средствами масштабируемых объектов ААС, считается один объект CELP и один масштабируемый объект ААС; учитываются их соответствующие показатели сложности, так как практически отсутствуют затраты, связанные со вторым (и выше) уровенем расширения GA.

Уровни профиля речи

Определены два уровня по числу объектов:

1. Один речевой объект.

2. До 20 речевых объектов.

Уровни профиля синтезированного звука

Определены три уровня:

1. Синтезированный звук 1: все элементы полезной части потока бит могут использоваться с:

– режимом пониженной производительности

– только основными частотами дискретизации

– только одним объектом TTSI

2. Синтезированный звук 2: все элементы полезной части потока бит могут использоваться с:

– режимом средней производительности

– только основными частотами дискретизации

– максимум четырьмя объектами TTSI

3. Синтезированный звук 3: все элементы полезной части потока бит могут использоваться с:

– режимом высокой производительности

– максимум двенадцатью объектами TTSI

– уровнями масштабируемого профиля

Профилем определены четыре уровня; четвертый уровень определяется единицами сложности:

1. Максимальное значение частоты дискретизации – 24 кГц, один моно объект (все типы объектов).

2. Максимальное значение частоты дискретизации – 24 кГц, один стерео объект или два моно (все типы объектов).

3. Максимальное значение частоты дискретизации – 48 кГц, один стерео объект или два моно (все типы объектов).

4. Максимальное значение частоты дискретизации – 48 кГц, один 5-канальный объект или несколько объектов с одним целочисленным множителем частоты дискретизации максимум для двух каналов.

Разрешена гибкая конфигурация при PCU<30 и RCU <19.

Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) допускается длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) не допускаются моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 (ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для всех масштабируемых конфигураций. Если тип звукового объекта 8 (CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 (TwinVQ) используется как основной кодер уровня, разрешен только один моно уровень TwinVQ.

Уровни основного профиля

Основной профиль содержит все натуральные и синтезированные типы объектов. Уровни определяются как комбинация двух различных типов уровней двух различных показателей, определенных для натуральных инструментов (показатели на основе вычислительной мощности) и инструментов синтеза (макропоказатели).

Для типов объектов, не принадлежащих профилю синтезированного звука, определены четыре уровня:

– Натуральный звук 1: PCU<40, RCU<202.

– Натуральный звук 2: PCU<80, RCU<643.

– Натуральный звук 3: PCU<160, RCU<1284.

– Натуральный звук 4: PCU<320, RCU<256.

Для типов объектов, принадлежащих к профилю синтезированного звука, определены те же самые три уровня, то есть синтезированный звук 1, синтезированный звук 2 и синтезированный звук 3.

Четыре уровня определены для основного профиля:

– Натуральный звук 1 + синтезированный звук 1.

– Натуральный звук 2 + синтезированный звук 1.

– Натуральный звук 3 + синтезированный звук 2.

– Натуральный звук 4 + синтезированный звук 3.

Для типов звуковых объектов 1 (ААС main), 2 (ААС LC), 3 (ААС SSR) и 4 (ААС LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 1 (ААС main), 2 (ААС LR), 3 (ААС SSR) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 (ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 в любой из масштабируемых конфигураций. Если тип звуковых объектов 8 (CELP) используется как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 (TwinVQ) используется как основной кодер слоя, то разрешен только один моно уровень TwinVQ.

Уровни профиля высокого качества приведены в таблице 6.

Таблица 6 – Уровни профиля высокого качества

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Max PCU**

Max RCU**

EP-Tool: Максимальная избыточность класса
FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

2

22,05

5

8

0

0

2

2

48

10

8

0

0

3

5

48

25

12***

0

0

4

5

48

100

42***

0

0

5

2

22,05

5

8

20

9

6

2

48

10

8

20

9

7

5

48

25

12***

20

22

8

5

48

100

42***

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 5-8 не включают оперативную память и вычислительную сложность для инструмента ЕР.

*** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Для типов звуковых объектов 2 (ААС LC), 4 (ААС LTP), 17 (ER ААС LC) и 19 (ER AAC LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3, 4, 5, 6, 7 и 8. Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3, 4, 5, 6, 7 и 8. Для типа звуковых объектов 6 и 20 (ER) AAC Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 8 или 24 (ER) CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2.

Уровни профиля низкой задержки приведены в таблице 7.

Таблица 7 – Уровни профиля низкой задержки

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Max PCU**

Max RCU**

EP-Tool: Максимальная избыточность класса FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

1

8

2

1

0

0

2

1

16

3

1

0

0

3

1

48

3

2

0

0

4

2

48

24

12***

0

0

5

1

8

2

1

100

5

6

1

16

3

1

100

5

7

1

48

3

2

20

5

8

2

48

24

12***

20

9

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 5-8 не включают оперативную память и вычислительную сложность для инструмента ЕР.

*** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Уровни профиля натурального звука приведены в таблице 8.

Таблица 8 – Уровни профиля натурального звука

Уровень

Максимальная частота дискретизации, кГц

Max PCU**

EP-Tool: Максимальная избыточность класса FEC*,
%

EP-Tool: Максимальное число этапов чередования на объект

1

48

20

0

0

2

96

100

0

0

3

48

20

20

9

4

96

100

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 3 и 4 не включают оперативную память и вычислительную сложность для инструмента ЕР.

Для данного профиля нет ограничений по RCU.

Для типов звуковых объектов 1 (AAC main), 2 (AAC LC), 3 (AAC SSR), 4 (AAC LTP), 17 (ER ААС LC) и 19 (ER AAC LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 1 (ААС main), 2 (ААС LC), 3 (ААС SSR) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 и 20 (ER) AAC Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 8 или 24 (ER) CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 или 21 (ER) TwinVQ) будет использоваться как основной кодер уровня, то только один моно уровень TwinVQ допустим.

Уровни профиля звука для Интернета приведены в таблице 9.

Таблица 9 – Уровни профиля звука для Интернета

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Мах PCU**

Мах
RCU
**, ***

Максимальное число объеков аудио

ЕР-Tооl: Максимальная избыточность класса
FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

1

24

2.5

4

1

0

0

2

2

48

10

8

2

0

0

3

5

48

25

12****

0

0

4

1

24

2.5

4

1

20

5

5

2

48

10

8

2

20

9

6

5

48

25

12****

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более, чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Максимальное значение RCU для одного канала в любом объекте этой конфигурации – 4. Для ER BSAC это является ограничением входного размера буфера. Максимальный возможный размер входного буфера в битах для этого случая дается PCU/RCU (таблица 4).

*** Уровни 4-6 не включают оперативную память и вычислительную сложность для инструмента ЕР.

**** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Для типа звуковых объектов 17 (ER ААС LC) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3, 4, 5 и 6. Для типа звуковых объектов 20 (ER ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 21 (ER TwinVQ) будет использоваться как основной кодер уровня, то только один моно уровень TwinVQ допустим.

Уровни профиля ААС приведены в таблице 10.

Таблица 10 – Уровни профиля ААС

Уровень

Максимальное число каналов/объект

Максимальная частота дискретизации, кГц

Max PCU

Max RCU

1

2

24

3

5

2

2

48

6

5

3

не применяется

не применяется

не применяется

не применяется

4

5

48

19

15

5

5

96

38

15

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Уровни с пометкой “не применяется” введены для сохранения иерархической структуры профиля ААС и профиля ААС высокой производительности. Следовательно, декодер, поддерживающий профиль ААС высокой производительности на данном уровне, может декодировать поток профиля ААС того же самого или более низкого уровня. Уровни с пометкой “не применяется” не обозначены в таблице audioProfileLevellndication (таблица 14).

Уровни профиля ААС высокой производительности приведены в таблице 11.

Таблица 11 – Уровни профиля ААС высокой производительности

Уровень

Максимальное число каналов/ объект

Максимальная частота дискретизации ААС, SBR отсутствует, кГц

Максимальная частота дискретизации ААС, SBR присутствует, кГц

Максимальная частота дискретизации SBR, кГц (ввод/вывод)

Мах PCU

Мах RCU

Max PCU, мало-
мощный SBR

Max RCU, мало-
мощный SBR

1

NA

NA

NA

NA

NA

NA

NA

NA

2

2

48

24

24/48

9

10

7

8

3

2

48

48

48/48 (примечание 1)

15

10

12

8

4

5

48

24/48 (примечание 2)

48/48 (примечание 1)

25

28

20

23

5

5

96

48

48/96

49

28

39

23

Примечание 1 – Для уровней 3 и 4 декодера является обязательным управление инструментом SBR в режиме децимации, если частота дискретизации ядра ААС превышает 24 кГц. Следовательно, если инструмент SBR обрабатывает сигнал ААС на частоте 48 кГц, то внутренняя частота дискретизации инструмента SBR составит 96 кГц, однако выходной сигнал будет подвергнут децимации инструментом SBR до 48 кГц.

Примечание 2 – Для одного или двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 48 кГц. Для более чем двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 24 кГц.

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Уровни профиля ААС высокой производительности версии 2 приведены в таблице 12.

Таблица 12 – Уровни профиля ААС высокой производительности версии 2

Уровень (приме-
чание 1)

Макси-
мальное число каналов/
объект

Максимальная частота дискретизации ААС, SBR отсутствует, кГц

Максимальная частота дискретизации ААС, SBR присутствует, кГц

Максимальная частота дискретизации SBR, кГц (ввод/вывод)

Мах PCU

Мах RCU

Max PCU HQ/LP SBR (примечание 5)

Max RCU HQ/LP SBR (примечание 5)

1

NA

NA

NA

NA

NA

NA

NA

NA

2

2

48

24

24/48

9

10

9

10

3

2

48

24/48 (примечание 3)

48/48 (примечание 2)

15

10

15

10

4

5

48

24/48 (примечание 4)

48/48 (примечание 2)

25

28

20

23

5

5

96

48

48/96

49

28

39

23

Примечание 1 – Декодеры уровней 2, 3 и 4 НЕ ААС профиля версии 2 реализуют базовую версию параметрического инструмента стерео. Декодер уровня 5 не должен быть ограничен базовой версией параметрического инструмента стерео.

Примечание 2 – Для уровней декодера 3 и 4 инструмент SBR должен использоваться в режиме децимации, если частота дискретизации ядра ААС выше, чем 24 кГц. Следовательно, если инструмент SBR будет обрабатывать сигнал ААС с частотой дискретизации 48 кГц, то внутренняя частота дискретизации инструмента SBR составит 96 кГц, однако при этом входной сигнал будет децимирован инструментом SBR до 48 кГц.

Примечание 3 – Если присутствуют параметрические стерео данные, то максимальная частота дискретизации ААС составляет 24 кГц, в противном случае максимальная частота дискретизации ААС составляет 48 кГц.

Примечание 4 – Для одного или двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 48 кГц. Для большего числа каналов максимальная частота дискретизации ААС с включенным SBR составляет 24 кГц.

Примечание 5 – Количество PCU/RCU дается для декодера, использующего инструмент SBR, если необходимо.

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Декодер профиля НЕ ААС v2 обрабатывает с помощью инструмента HQ SBR потоки бит, содержащие параметрические стерео данные. Для потоков бит, не содержащих параметрические стерео данные, декодер профиля НЕ ААС v2 может использовать инструмент HQ SBR или инструмент LP SBR.

Только потоки бит, содержащие строго один отдельный канальный элемент ААС, могут содержать параметрические стерео данные. Потоки бит, содержащие больше одного канала в части ААС, не должны содержать параметрические стерео данные.

Уровни профиля ААС с низкой задержкой приведены в таблице 13.

Таблица 13 – Уровни профиля ААС с низкой задержкой

Уровень

Максимальное число каналов/объект

Максимальная частота дискретизации, кГц

epConfig

1

2

48

0

LTP не разрешен. Импульсные данные не разрешены.

3.5.2.4 аudioProfileLevellndication

audioProfileLevellndication – элемент данных InitialObjectDescriptor. Он показывает профиль и уровень, требуемые для обработки контента, ассоциируемого с InitialObjectDescriptor, согласно таблице 14.

Таблица 14 – Значения audioProfileLevellndication

Значение

Профиль

Уровень

0x00

Зарезервировано для ISO

0x01

Main Audio Profile

L1

0x02

Main Audio Profile

L2

0x03

Main Audio Profile

L3

0x04

Main Audio Profile

L4

0x05

Scalable Audio Profile

L1

0x06

Scalable Audio Profile

L2

0x07

Scalable Audio Profile

L3

0x08

Scalable Audio Profile

L4

0x09

Speech Audio Profile

L1

0х0A

Speech Audio Profile

L2

0х0В

Synthetic Audio Profile

L1

0х0С

Synthetic Audio Profile

L2

0x0D

Synthetic Audio Profile

L3

0х0Е

High Quality Audio Profile

L1

0x0F

High Quality Audio Profile

L2

0x10

High Quality Audio Profile

L3

0x11

High Quality Audio Profile

L4

0x12

High Quality Audio Profile

L5

0x13

High Quality Audio Profile

L6

0x14

High Quality Audio Profile

L7

0x15

High Quality Audio Profile

L8

0x16

Low Delay Audio Profile

L1

0x17

Low Delay Audio Profile

L2

0x18

Low Delay Audio Profile

L3

0x19

Low Delay Audio Profile

L4

0x1A

Low Delay Audio Profile

L5

0x1B

Low Delay Audio Profile

L6

0x1С

Low Delay Audio Profile

L7

0x1D

Low Delay Audio Profile

L8

0x1E

Natural Audio Profile

L1

0x1F

Natural Audio Profile

L2

0x20

Natural Audio Profile

L3

0x21

Natural Audio Profile

L4

0x22

Mobile Audio Internetworking Profile

L1

0x23

Mobile Audio Internetworking Profile

L2

0x24

Mobile Audio Internetworking Profile

L3

0x25

Mobile Audio Internetworking Profile

L4

0x26

Mobile Audio Internetworking Profile

L5

0x27

Mobile Audio Internetworking Profile

L6

0x28

AAC Profile

L1

0x29

AAC Profile

L2

0х2A

AAC Profile

L4

0x2B

ААС Profile

L5

0х2С

High Efficiency AAC Profile

L2

0x2D

High Efficiency AAC Profile

L3

0х2E

High Efficiency AAC Profile

L4

0x2F

High Efficiency AAC Profile

L5

0x30

High Efficiency AAC v2 Profile

L2

0x31

High Efficiency AAC v2 Profile

L3

0x32

High Efficiency AAC v2 Profile

L4

0x33

High Efficiency AAC v2 Profile

L5

0x34

Low Delay AAC Profile

L1

0x35

Baseline MPEG Surround Profile

L1

0x36

Baseline MPEG Surround Profile

L2

0x37

Baseline MPEG Surround Profile

L3

0x38

Baseline MPEG Surround Profile (see)

L4

0x39

Baseline MPEG Surround Profile (see)

L5

0х3A

Baseline MPEG Surround Profile (see)

L6

0х3В – 0x7F

reserved for ISO use

0x80 – 0xFD

user private

0xFE

no audio profile specified

0xFF

no audio capability required

Примечание – Использование значения 0xFE указывает, что описанный этим дескриптором InitialObjectDescriptor контент не соответствует никакому аудиопрофилю. Использование значения равного 0xFF указывает, что никакие возможности аудио профиля не требуются для этого контента.

3.6 Интерфейс MPEG-4 Системы

3.6.1 Введение

Потоки заголовка транспортируются через MPEG-4 Системы. Эти потоки содержат информацию о конфигурации, которая необходима для декодирования и анализа необработанных потоков данных. Однако обновление необходимо только при изменениях в конфигурации.

3.6.2 Синтаксис

3.6.2.1 AudioSpecificConfig

AudioSpecificConfig () расширяет абстрактный класс. В этом случае наличие AudioSpecificConfig () обязательно (см. таблицы 15, 16).

Таблица 15 – Синтаксис AudioSpecificConfig ()

Продолжение таблицы 15

Продолжение таблицы 15

Окончание таблицы 15

Таблица 16 – Синтаксис GetAudioObjectType ()

3.6.2.2 Полезная нагрузка

3.6.2.2.1 Краткий обзор

Для объекта NULL размер полезной нагрузки должен быть целым 16-битным числом со знаком в диапазоне от -32768 до +32767. Размеры полезной нагрузки для всех других звуковых типов объекта определены в соответствующих частях. Полезные нагрузки являются основными объектами, которые будет переносить транспортный уровень систем. Для всех схем кодирования натурального звука выходной сигнал масштабируется до максимума 32767/-32768. Однако компоновщик систем MPEG-4 ожидает масштабирование.

Полезные нагрузки без побайтного выравнивания добавляются в конец потока, так как транспортные схемы требуют выравнивания.

3.6.2.2.2 Соответствие полезных звуковых нагрузок блокам доступа и элементарным потокам

3.6.2.2.2.1 AAC Main, AAC LC, AAC SSR, AAC LTP

Одной полезной нагрузке верхнего уровня (raw_data_block ()) соответствует один блок доступа. Последующие блоки доступа формируют один элементарный поток.

3.6.2.2.2.2 AAC Scalable

Одной полезной нагрузке верхнего уровня (aac_scalable_main_element (), ASME) соответствует один блок доступа. Последующие блоки доступа формируют один элементарный поток.

Одной полезной нагрузке верхнего уровня (aac_scalable_extension_element (), ASEE) соответствует один блок доступа. Последующие блоки доступа того же самого уровня расширения формируют один элементарный поток. Это приводит к индивидуальным элементарным потокам для каждого уровня.

Потоки последующих уровней зависят друг от друга.

3.6.2.2.2.3 ER AAC LC, ER AAC SSR, ER AAC LTP, ER AAC, ER AAC LD

Элементы данных соответствующих полезных нагрузкок верхнего уровня (er_raw_data_block (), aac_scalable_main_element (), aac_scalable_extension_element ()) подразделены на различные категории в зависимости от ошибочной чувствительности и собраны в экземплярах класса этих категорий. В зависимости от значения epConfig есть несколько способов поставить в соответствие эти экземпляры класса блокам доступа для формирования одного или нескольких элементарных потоков. Последующие элементарные потоки зависят друг от друга.

Примечание – Биты функции byte_alignment (), завершающей полезные нагрузки верхнего уровня AАС, могут быть исключены, если элементы данных согласно полезной нагрузке верхнего уровня не отображаются непосредственно в один блок доступа. Следовательно их можно исключить, если полезная нагрузка верхнего уровня разбита (например, в случае epConfig=1) или подвергнута пост-обработке (например, в случае epConfig=3).

3.6.2.2.2.4 ER AAC ELD

Полезная нагрузка верхнего уровня для ER AAC ELD определена в er_raw_data_block_eld (). Все определения, упомянутые в 3.6.2.2.2.3, также верны для этого АОТ.

3.6.3 Семантика

3.6.3.1 AudioObjectType

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

3.6.3.2 AudioObjectType Ext

Этот элемент данных расширяет диапазон типов звуковых объектов.

3.6.3.3 SamplingFrequency

Частота дискретизации, используемая в этом звуковом объекте. Передается либо непосредственно значение, либо код samplingFrequencylndex.

3.6.3.4 SamplingFrequencylndex

Четыре бита, указывающие частоту дискретизации. Если samplingFrequencylndex равно 15, то фактическое значение частоты дискретизации содержится в SamplingFrequency. Во всех других случаях SamplingFrequency установлено в соответствии с таблицей 17.

Таблица 17 – Индекс частоты дискретизации

samplingFrequencylndex

Значение

0x0

96000

0x1

88200

0x2

64000

0x3

48000

0x4

44100

0x5

32000

0x6

24000

0x7

22050

0x8

16000

0x9

12000

0ха

11025

0xb

8000

0хс

7350

0xd

зарезервировано

0хе

зарезервировано

0xf

escape value

3.6.3.5 Конфигурация каналов

Четыре бита, указывающие конфигурацию выходных звуковых каналов.

Конфигурация каналов приведена в таблице 18.

Таблица 18 – Конфигурация каналов

Значение

Количество каналов

Синтаксические элементы аудио, перечисленные в порядке приема

Отображение канала к динамику

0

определено в АОТ related SpecificConfig

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(), single_channel_element()

центральный фронтальный динамик, левый, правый центральные фронтальные динамики, задние динамики объемного звучания

5

5

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()

центральный фронтальный динамик, левый, правый центральные фронтальные динамики, левый, правый внешние фронтальные динамики, левый, правый задние динамики объемного звучания, фронтальный динамик низкочастотных эффектов

8-15

зарезервировано

3.6.3.6 Элемент данных epConfig

Этот элемент данных сообщает тип схемы обработки ошибок (таблица 19).

Таблица 19 – Элемент данных epConfig

epConfig

0

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

1

Каждый экземпляр класса всех схем обработки ошибок, принадлежащих одному фрейму, расположен отдельно в пределах отдельного блока доступа, то есть существует столько элементарных потоков, сколько экземпляров класса, определенных в пределах фрейма

2

Необходимо применение декодера защиты от ошибок. Определение классов ЕР нормативно не определяется, однако ему дается определение на прикладном уровне. Тем не менее ограничения, введенные для классов ЕР в соответствии с 1.6.9, должны быть удовлетворены

3

Необходимо применение декодера защиты от ошибок. Соответствие между классами ЕР и экземплярами класса ESC определяется элементом данных directMapping

3.6.3.7 Этот элемент данных идентифицирует отображение между классами защиты от ошибок и экземплярами схем обработки ошибок (таблица 20).

Таблица 20 – Элемент данных directMapping

directMapping

0

В резерве

1

Каждый класс защиты от ошибок интерпретируется как экземпляр категории чувствительности к ошибкам (соответствие один к одному), так что выход декодера защиты от ошибок эквивалентен данным epConfig=1

3.6.3.8 extensionSamplingFrequencylndex

Четыре бита, указывающие выходную частоту дискретизации инструмента расширения, соответствующего extensionAudioObjectType, согласно таблице 18.

3.6.3.9 extensionSamplingFrequency

Выходная частота дискретизации инструмента расширения, соответствующего extensionAudioObjectType. Передается непосредственно ее значение или код в форме extensionSamplingFrequencylndex.

3.6.3.10 bits_to_decode

Вспомогательная функция возвращает число битов, еще не декодированных в текущем AudioSpecificConfig (), если о длине этого элемента известно на системном/транспортном уровне. Если размер этого элемента неизвестен, то bits_to_decode () возвращает 0.

3.6.3.11 syncExtensionType

Синхропоследовательность, определяющая начало данных конфигурации расширения. Эти данные конфигурации соответствуют инструменту расширения, кодированные данные которого помещены (обратно совместимым способом) в audioObjectType. Если syncExtensionType присутствует, данные конфигурации инструмента расширения отделены от соответствующего audioObjectType, который учитывает обратно совместимое сообщение. Декодеры, которые не поддерживают инструмент расширения, могут проигнорировать данные конфигурации. Такая обратносовместимая индикация может использоваться только в системах MPEG-A, передающих длину AudioSpecificConfig ().

3.6.3.12 sbrPresentFlag

Флаг, указывающий присутствие или отсутствие данных SBR в случае extensionAudioObjectType == 5 (явная сигнализация SBR). Значение -1 указывает, что sbrPresentFlag не был передан в AudioSpecificConfig (). В этом случае декодер профиля ААС высокой производительности должен быть в состоянии обнаружить присутствие данных SBR в элементарном потоке.

3.6.3.13 extensionAudioObjectType

Пять битов, указывающие расширения типа звукового объекта. Этот тип объекта соответствует инструменту расширения, который используется для увеличения audioObjectType.

3.6.3.14 psPresentFlag

Бит, указывающий присутствие или отсутствие параметрических стерео данных. Значение -1 указывает, что psPresentFlag не был передан в AudioSpecificConfig (). В этом случае декодер профиля ААС высокой производительности v2 должен поддерживать неявную сигнализацию.

3.6.3.15 fillBits

Биты заполнения для побайтного выравнивания ALSSpecificConfig () относительно начала AudioSpecificConfig ().

3.6.3.16 extensionChannelConfiguration

Четыре бита, указывающие конфигурацию каналов расширений BSAC. Эти данные конфигурации доступны в случае явной сигнализации расширений BSAC. Число выходных звуковых каналов определяется из таблицы 9 конфигурации каналов.

3.6.3.17 sacPayloadEmbedding

Флаг типа звукового объекта 30 MPEG Surround, используемый для передачи служебной информации кодированного пространственного звука для декодирования. В зависимости от этого флага полезная нагрузка MPEG Surround, например SpatialFrame (), доступна различными средствами (см. таблицу 21).

Таблица 21 – Элемент данных sacPayloadEmbedding

sacPayload-Embedding

0

Один SpatialFrame () соответствует одному блоку доступа. Последующие блоки доступа формируют один элементарный поток, который всегда будет зависеть от другого элементарного потока, содержащего основные (сведенные) звуковые данные

1

Полезная нагрузка верхнего уровня мультиплексируется в основные (сведенные) звуковые данные. Фактические подробности мультиплексирования зависят от представления звуковых данных (то есть обычно от АОТ). Это приводит к элементарному потоку без реальной полезной нагрузки, который всегда будет зависеть от другого элементарного потока, содержащего как основные (сведенные) звуковые данные, так и мультиплексированные пространственные звуковые данные

3.6.4 Восходящие потоки (потоки клиент-сервер)

3.6.4.1 Введение

Восходящие потоки данных вводятся для того, чтобы позволить удаленному пользователю динамически управлять потоками из сервера.

Сигнал запроса восходящего потока данных поступает на клиентский терминал, предоставляя дескриптор соответствующего элементарного потока с указанием его параметров. Клиентский терминал открывает этот канал восходящего потока данных аналогично открытию нисходящего потока. Объекты (например, кодеры и декодеры), которые подключены через канал восходящего потока данных, известны через параметры дескриптора элементарного потока и ассоциацию дескриптора элементарного потока с определенным дескриптором объекта.

Восходящий поток данных может быть связан с отдельным потоком или группой (нисходящих) потоков. Тип нисходящего потока, связанного с восходящим, определяет область видимости восходящего потока данных. Когда восходящий поток данных связан с отдельным нисходящим потоком, он несет сообщения об этом потоке. Синтаксис и семантика сообщений для MPEG-4 Аудио определены в следующем подзаголовке.

3.6.4.2 Синтаксис AudioUpstreamPayload () (таблица 22)

Таблица 22 – Синтаксис AudioUpstreamPayload ()

3.6.4.3 Определения

upStreamType – 4-битовое беззнаковое целое, представляющее тип восходящего потока данных, в соответствии с таблицей 23.

Таблица 23 – Определение upStreamType

UpStreamType

Тип восходящего звукового потока

0

контроль масштабируемости

1

объединение BSAC фрейма

2

контроль качества

3

контроль скорости передачи

4-15

зарезервировано для будущего использования

avgBitrate [level] – среднее значение скорости передачи в битах в секунду для уровня с большим шагом, который запрашивает клиент для передачи с сервера.

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

multiLayOrSynEle – бит сигнализирует об использовании многоканальной или многоуровневой конфигурации. В этом случае требуется передача номеров уровней или элементов.

layOrSynEle – 6-битовое беззнаковое целое, представляющее число синтаксических элементов (в случае многоканального режима) или число уровней (в случае многоуровнего режима), которым соответствует следующая информация контроля качества. Это число относится к одному из уровней или синтаксических элементов, содержащихся в пределах ассоциируемого звукового объекта. Если звуковой объект не поддерживает ни масштабируемость, ни многоканальные возможности, это значение равно 1.

numFrameExp [layOrSynEle] – это значение указывает количество последних переданных фреймов (2-1), которое учитывается в следующем значении lostFrames.

lostFrames [layOrSynEle] – эта область содержит число потерянных фреймов относительно обозначенного уровня или синтаксического элемента в пределах последних переданных фреймов, о которых сообщает numFrameExp.

avgBitrate – среднее значение скорости передачи в битах в секунду целого звукового объекта, который был запрошен клиентом с сервера.

3.6.4.4 Процесс декодирования

В первую очередь upStreamType анализируется для обнаружения его типа, от которого зависит остальное декодирование.

3.6.4.4.1 Декодирование управления масштабируемости

Далее декодируется значение numOfLayer. Это представляет число элементов данных avgBitrate, которое необходимо считать. После этого следует avgBitratefollows.

3.6.4.4.2 Декодирование чередования во фрейме BSAC

Считывается элемент данных numOfSubFrame. Он представляет собой число подфреймов, которые будут чередоваться в инструменте BSAC. BSAC позволяет корректировку в процессе работы. Далее контент восходящего потока данных передается от клиента на сервер для осуществления динамической и интерактивной передачи. Данные BSAC разбиваются и объединяются в сервере.

3.6.4.4.3 Декодирование контроля качества

Процент потерянных фреймов может быть получен, используя следующую формулу

.

3.6.4.4.4 Декодирование контроля скорости передачи

Происходит обнаружение avgBitrate.

3.6.5 Сигнализация SBR

3.6.5.1 Генерация и сигнализация контента AAC+SBR

Инструмент SBR в комбинации с кодером ААС обеспечивает существенное увеличение эффективности сжатия звука. В то же самое время обеспечивается совместимость с ААС декодерами. Однако качество звука декодеров без инструмента SBR будет значительно ниже по сравнению с теми, которые поддерживают инструмент SBR. Поэтому в зависимости от приложения поставщик контента или его создатель могут выбрать между этими двумя вариантами. Данные SBR всегда внедряются в поток ААС таким образом, чтобы была обеспечена совместимость с ААСextension_payload), a SBR относится к пост-процессингу в декодере. Это позволяет достичь совместимости. Однако путем различной сигнализации создатель контента может выбрать между режимом полного качества и режимом обратной совместимости способом, указанным ниже.

Ни один из методов сигнализации SBR, описанных в этом подзаголовке, не является допустимым для ААС ELD. Вместо этого используется флаг IdSbrPresentFlag в ELDSpecificConfig () для сигнализации использования инструмента Low Delay SBR.

3.6.5.1.1 Обеспечение полного качества звучания AAC+SBR для слушателя

Чтобы гарантировать получение всеми слушателями полного звукового качества AAC+SBR, поток должен соответствовать профилю НЕ АСС и использовать явную сигнализацию, чтобы быть обработанным декодером профиля НЕ АСС. Указанный декодер в состоянии обработать все потоки профиля ААС соответствующего уровня, так как профиль НЕ АСС – надмножество профиля ААС.

3.6.5.1.2 Достижение обратной совместимости с существующими декодерами ААС

Цель этого режима состоит в том, чтобы обеспечить воспроизведение потока на любых ААС декодерах, даже если они не поддерживают инструмент SBR. Совместимые потоки могут быть созданы следующими двумя способами сигнализации:

а) индикация профиля, содержащего ААС данные (например, профиля ААС), кроме профиля НЕ АСС, и использование явной обратносовместимой сигнализации (как описано ниже). Этот метод рекомендуется для всех основных систем MPEG-4, в которых длина AudioSpecificConfig () известна декодеру. Из-за проблемы с LATM при audioMuxVersion == 0 (см. 1.7) этот метод не может использоваться для LATM с audioMuxVersion == 0. При явной обратносовместимой сигнализации данные SBR добавляются в конец AudioSpecificConfig (). Декодеры, которые не поддерживают SBR, проигнорируют эти части, в то время как декодеры профиля НЕ ААС обнаружат ее присутствие и сконфигурируют декодер соответствующим образом;

б) индикация профиля, содержащего ААС, кроме профиля НЕ ААС, и использование неявной сигнализации. В этом режиме нет никакой явной индикации присутствия SBR данных. Декодеры проверяют наличие данных при декодировании потока и используют инструмент SBR, если данные SBR найдены. Это возможно, потому что SBR может быть декодирован без конфигурационных данных SBR при определенном способе выбора выходной частоты дискретизации, как описано ниже для декодеров профиля НЕ ААС.

Оба метода приводят к тому, что часть ААС потоков AAC+SBR будет декодирована декодерами ААС. Декодеры AAC+SBR обнаружат присутствие SBR и декодируют полный качественный поток AAC+SBR.

3.6.5.2 Неявная и явная сигнализация SBR

В этом подразделе описаны различные методы сигнализации SBR и соответствующее поведение декодеров.

Есть несколько способов сигнализаци данных SBR:

1 Неявная сигнализация: Если EXT_SBR_DATA или EXT_SBR_DATA_CRC элементы extension_ payload () обнаружены в полезном битовом потоке, это неявно сигнализирует о присутствии данных SBR. Способность обнаружить и декодировать SBR с неявной сигнализацией обязательна для всех декодеров профиля High Efficiency AAC (HE ААС).

2 Явная сигнализация: наличие данных SBR сигнализируется явным образом посредством типа звукового объекта SBR в AudioSpecificConfig (). Когда используется явная сигнализация, неявная не должна применяться. Допустимы два различных типа явной сигнализации:

а) иерархическая сигнализация: если первый сигнализируемый audioObjectType (AOT) является SBR АОТ, то сигнализируется второй тип звукового объекта, который указывает на основной тип. Этот тип сигнализации не является обратносовместимым. Он может быть необходим в системах, которые не передают длину AudioSpecificConfig (), таких как LATM с audioMuxVersion == 0, где производители контента должны использовать это только по необходимости;

б) обратносовместимая сигнализация: extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (). Этот метод должен использоваться в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Таблица 24 отражает поведение декодера в зависимости от профиля и индикации типа звукового объекта, когда используется неявная или явная сигнализация.

Таблица 24 – Сигнализация SBR и соответствующее поведение декодера

Характеристики полезной нагрузки потока битов

Поведение декодера

Индикация профиля

AudioObjectType расширения

Флаг sbrPresent

raw_data_block

Декодер профиля ААС

Профиль НЕ ААС

Поддержка профилей с ААС, иных, чем высокоэффективный профиль ААС

!=SBR (сигнализация 1)

-1

ААС

Работа ААС

Работа ААС (Примечание 1)

AAC+SBR

Работа ААС

Работа, по крайней мере, ААС должно работать (Примечание 1)

==SBR [сигнализация 2.б]

0

ААС

Работа ААС

Работа ААС (Примечание 2)

1

AAC+SBR

Работа ААС

Работа, по крайней мере, ААС должно работать AAC+SBR (Примечание 3)

Высокоэффективный профиль ААС

==SBR [сигнализация 2.а или 2.б]

1

AAC+SBR

Не определено

Работа AAC+SBR (Примечание 3)

Примечание 1 – Неявная сигнализация: необходимо проверить полезную нагрузку для определения выходной частоты дискретизации или принять наличие данных SBR в полезной нагрузке, означающих, что выходная частота дискретизации равна удвоенной частоте дискретизации samplingFrequency в AudioSpecificConfig () (до тех пор, пока инструмент SBR не используется или двойная частота дискретизации, обозначенная как samplingFrequency, превышает максимальное позволенное для уровня значение, выходная частота дискретизации равна samplingFrequency).

Примечание 2 – Явная сигнализации указывает на отсутствие данных SBR, следовательно, отсутствие неявной сигнализации; выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig ().

Примечание 3 – Выходная частота дискретизации равна extensionSamplingFrequency в AudioSpecificConfig ().

3.6.5.3 Поведение декодера профиля НЕ ААС в случае неявной сигнализации

Если присутствие данных SBR сигнализируется обратносовместимым методом [сигнализация 2.a], extensionAudioObjectType не является SBR AOT, и sbrPresentFlag установлен в – 1, указывая, что неявная сигнализация может произойти.

Так как декодер профиля НЕ ААС представляет собой систему с двойной скоростью, с инструментом SBR, работающим на удвоенной частоте дискретизации основного декодера ААС, выходная частота дискретизации не может быть принята за частоту дискретизации декодера ААС из-за неявной сигнализации SBR. Декодер должен определить выходную частоту дискретизации любым из следующих двух методов:

– проверить присутствие данных SBR в полезном битовом потоке до декодирования. Если никакие данные SBR не найдены, выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig (). Если данные SBR найдены, то частота равна удвоенной samplingFrequency в AudioSpecificConfig;

– предположить, что данные SBR присутствуют и принять выходную частоту дискретизации в два раза больше, чем в AudioSpecificConfig ().

Вышеупомянутое применяется только в том случае, если удвоенная частота дискретизации, сигнализируемая в AudioSpecificConfig (), не превышает максимальную выходную частоту дискретизации, учитывая текущее значение. Следовательно, для декодера профиля НЕ ААС уровней 2, 3 или 4 выходная частота дискретизации равна типовой, которая сигнализируется в AudioSpecificConfig (), если последняя превышает 24 кГц.

Инструмент SBR с децимацией должен использоваться, если нужно гарантировать, что выходная частота дискретизации не будет превышать максимальное допустимое значение для текущего уровня декодера профиля ААС высокой производительности.

3.6.5.4 Поведение декодера профиля НЕ ААС в случае явной сигнализации

Если присутствие данных SBR явно сигнализируется (сигнализация 2), то используется обратно-совместимая явная сигнализация [сигнализация 2.б] или несовместимая явная сигнализация [сигнализация 2.а].

Для обратносовместимой явной сигнализации [сигнализация 2.б] сигнализируемый extensionAudioObjectType является SBR AOT. Для этого передается обратносовместимая явная сигнализация о sbrPresentFlag, который может быть нулем или единицей. Если sbrPresentFlag – нуль, это указывает, что данные SBR отсутствуют и, следовательно, декодер профиля НЕ ААС не должен проверять Fill-элемент на наличие данных SBR или делать предположение о выходной частоте дискретизации в ожидании данных SBR. Если sbrPresentFlag – один, данные SBR присутствуют и декодер профиля НЕ ААС должен управлять инструментом SBR.

Для несовместимой явной сигнализации SBR [сигнализация 2.а] сигнализируемый extensionAudioObjectType явпяется SBR AOT. Для этой иерархической явной сигнализации sbrPresentFlag установлен, если extensionAudioObjectTypeSBR. sbrPresentFlag не передается и, следовательно, невозможно явно сигнализировать об отсутствии неявной сигнализации. Следовательно, при иерархической явной сигнализации данные SBR всегда присутствуют, и декодер профиля НЕ ААС должен управлять инструментом SBR.

Инструмент SBR с децимацией должен использоваться, если выходная частота дискретизации превысит максимально допустимую выходную частоту дискретизации для текущего уровня или если extensionSamplingFrequency равна samplingFrequency.

3.6.6 Сигнализация параметрического стерео (PS)

3.6.6.1 Генерация и сигнализация контента НЕ ААС+PS

Инструмент PS в комбинации с кодером НЕ ААС обеспечивает хорошее качество стерео при очень низких скоростях передачи. В то же самое время он позволяет обеспечить совместимость с существующими декодерами НЕ ААС. Однако выход декодера НЕ ААС будет только моно для потока НЕ ААС v2, содержащего данные PS.

Следовательно, в зависимости от приложения поставщик контента или создатель контента могут выбрать из двух вариантов, данных ниже. В целом данные PS всегда помещаются в поток НЕ ААС совместимым образом (в sbr_extension элемент), и PS полностью принадлежит к пост-обработке. Это позволяет достичь совместимости. Посредством различной сигнализации создатель контента может выбрать между режимом полного качества и режимом обратной совместимости, как показано в 3.6.6.1.1 и 3.6.6.1.2.

Для иерархических профилей более высокий профиль в иерархии в состоянии декодировать контент более низкого профиля иерархии. На рисунке 1 отображена иерархическая структура профилей ААС, НЕ ААС и НЕ ААС v2. Из рисунка видно, что декодер профиля НЕ ААС полностью способен декодировать любой поток ААС, при условии, что декодер профиля НЕ ААС имеет тот же или более высокий уровень. Так же декодер профиля НЕ ААС v2 определенного уровня может обработать все потоки профиля НЕ ААС того же самого уровня или ниже, так же как и все потоки профиля ААС того же самого или более низкого уровня.

Рисунок 1 – Структура иерархии профилей ААС, НЕ ААС и НЕ ААС v2 и совместимость между ними

Рисунок 1 – Структура иерархии профилей ААС, НЕ ААС и НЕ ААС v2 и совместимость между ними

3.6.6.1.1 Обеспечение полного звукового качества AAC+SBR+PS для слушателя

Чтобы гарантировать получение слушателями полного звукового качества AAC+SBR+PS, поток должен соответствовать профилю HE AAC v2 и использовать явную иерархическую сигнализацию [сигнализация 2.а, как описано ниже] так, чтобы он был воспроизведен декодерами профиля НЕ ААС v2, то есть PS декодерами. Декодер профиля НЕ ААС v2 будет декодировать все потоки профиля НЕ ААС и ААС соответствующего уровня, так как профиль HE AAC v2 является надмножеством профилей НЕ АСС и ААС.

3.6.6.1.2 Достижение обратной совместимости с существующими НЕ ААС и ААС

Цель этого режима состоит в обеспечении возможности воспроизведения потока на всех декодерах профилей ААС и НЕ ААС, даже если они не поддерживают инструмент PS. Совместимые потоки могут быть созданы следующими двумя способами сигнализации:

а) индикация профиля, содержащего SBR данные (например, профиля НЕ ААС), кроме профиля НЕ АСС v2, и использование явной обратносовместимой сигнализации [2.б, как описано ниже]. Этот метод рекомендуется для всех MPEG-4 систем, в которых длина AudioSpecificConfig () известна декодеру. Из-за проблемы с LATM при audioMuxVersion == 0 (см. 1.7) этот метод не может использоваться для LATM с audioMuxVersion == 0. При явной обратносовместимой сигнализации данные PS добавляются в конец AudioSpecificConfig (). Декодеры, которые не поддерживают PS, проигнорируют эти части, в то время как декодеры профиля НЕ ААС v2 обнаружат их присутствие и сконфигурируют декодер соответствующим образом;

б) индикация профиля, содержащего SBR (например, профиля НЕ ААС), кроме профиля НЕ ААС v2, и использование неявной сигнализации. В этом режиме нет никакой явной индикации присутствия PS данных.

Вместо этого декодеры профиля НЕ ААС v2 открывают два выходных канала для потока, содержащего SBR данные с channelConfiguration==1, например моно поток с одним канальным элементом, проверяют наличие PS данных и применяют инструмент PS, если PS данные были обнаружены. Это возможно, так как PS может быть декодировано без конфигурационных данных, если соблюдается определенный способ декодирования каналов в соответствии с профилем НЕ ААС v2.

Оба метода приводят к тому, что часть AAC+SBR потоков AAC+SBR+PS будет декодирована декодерами НЕ ААС, а часть ААС потока AAC+SBR+PS будет декодирована декодерами ААС. Декодеры НЕ ААС v2 обнаружат присутствие PS и декодируют полный качественный поток AAC+SBR+PS.

3.6.6.2 Неявная и явная сигнализация параметрического стерео

В этом подразделе описаны различные методы сигнализации SBR и соответствующее поведение декодеров.

Есть несколько способов сигнализации данных PS:

1 Неявная сигнализация: если bs_extension_id равен EXTENSION_ID_PS, данные PS представлены в элементе sbr_extension; это неявно сигнализирует о присутствии данных PS. Способность обнаружить и декодировать PS с неявной сигнализацией обязательна для всех декодеров профиля High Efficiency ААС v2 (HE AAC v2).

2 Явная сигнализация: наличие данных PS сигнализируется явным образом посредством типа звукового объекта PS и флага psPresentFlag в AudioSpecificConfig (). Когда используется явная сигнализация PS, неявная не должна применяться. Допустимы два различных типа явной сигнализации:

а) иерархическая сигнализация: Если первый сигнализируемый audioObjectType (AOT) является PS AOT, то extensionAudioObjectType устанавливается в SBR и сигнализируется второй тип звукового объекта, который указывает на основной тип. Этот тип сигнализации не является обратно совместимым. Он может быть необходимым в системах, которые не передают длину AudioSpecificConfig (), таких как LATM с audioMuxVersion == 0, где производители контента должны использовать это только по необходимости;

б) обратносовместимая сигнализация: extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (), а флаг psPresentFlag передается в конце обратносовместимой явной сигнализации SBR, указывая наличие или отсутствие данных PS. Этот метод должен использоваться в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Для всех типов сигнализации параметрического стерео channelConfiguration в audioSpecificConfig показывает количество каналов потока ААС. Таким образом, если данные параметрического стерео присутствуют, channelConfiguration равно 1, т.е. один канальный элемент, а инструмент параметрического стерео произведет два выходных канала на основе одного канального элемента и данных параметрического стерео.

Таблица 25 отражает поведение декодера в зависимости от профиля и индикации типа звукового объекта, когда используется неявная или явная сигнализация.

Таблица 25 – Сигнализация PS и соответствующее поведение декодера

Характеристики потока битов

Поведение декодера

Индикация профиля

Сигнализация PS

Флаг psPresent

raw_data_block

Декодеры профиля НЕ ААС

Декодеры профиля НЕ ААС v2

Профиль AАС высоко-
эффективной сети

Сигнализация 1, неявная сигнализация (первый АОТ != PS)

-1

AAC+SBR

Работа AAC+SBR

Работа AAC+SBR (Примечание 1)

AAC+SBR+PS

Работа AAC+SBR

Работа, по крайней мере, AAC+SBR должно работать play AAC+SBR+PS (Примечание 1)

Сигнализация 2.б, обратно-совместимая неявная сигнализация (второй АОТ == SBR)

0

AAC+SBR

Работа AAC+SBR

Работа AAC+SBR (Примечание 2)

1

AAC+SBR+PS

Работа AAC+SBR

Работа, по крайней мере, AAC+SBR должно работать AAC+SBR+PS (Примечание 3)

Профиль высоко-
эффективный AAC v2

Сигнализация 2.а, обратно несовместимая сигнализация (первый АОТ == PS)

1

AAC+SBR+PS

Не определено

Работа AAC+SBR+PS (Примечание 3)

Сигнализация 2.б, обратносовместимая сигнализация (второй АОТ == SBR)

1

AAC+SBR+PS

Не определено

Работа AAC+SBR+PS (Примечание 3)

Примечание 1 – Неявная сигнализация; принять наличие данных PS в полезной нагрузке, получив два выходных канала из одного элемента канала.

Примечание 2 – Явная сигнализация о том, что нет никаких данных PS, следовательно, отсутствует неявная сигнализация.

Примечание 3 – Число выходных каналов равно двум для одного элемента канала, содержащего AAC+SBR+PS данные.

3.6.6.3 Поведение декодера профиля НЕ ААС v2 в случае неявной сигнализации

Если присутствие данных PS сигнализируется неявным обратносовместимым образом [сигнализация 1], то первый сигнализируемый AudioObjectType не является PS AOT и флаг psPresentFlag не считывается из AudioSpecificConfig (). Далее флаг psPresentFlag устанавливается в -1, показывая, что неявная сигнализация параметрического стерео может применяться.

Так как полученный моно поток будет преобразован в стерео выход при наличии данных параметрического стерео в потоке, то декодер профиля НЕ ААС v2 должен подразумевать наличие данных PS и принимать решение о количестве выходных каналов, равном 2 для одного канального элемента, содержащего SBR данные и, возможно, PS данные. Если данных PS не было обнаружено, моно выход должен быть поставлен в соответствие двум открытым каналам для каждого отдельного канального элемента.

3.6.6.4 Поведение декодера профиля НЕ ААС v2 в случае явной сигнализации

Если присутствие данных PS сигнализируется явным образом (сигнализация 2), то для этого используется обратносовместимая явная сигнализация [сигнализация 2.б] или явная сигнализация без обратной совместимости [сигнализация 2.а].

При обратносовместимой явной сигнализации [сигнализация 2.б] сигнализируемый extensionAudioObjectType является SBR AOT. Явная сигнализация PS выполняется посредством psPresentFlag, который может быть нулем или единицей.

Если psPresentFlag равен нулю, это указывает, что данные PS отсутствуют и, следовательно, декодер профиля НЕ ААС v2 не должен принимать решение о числе выходных каналов в ожидании данных PS (как в случае неявной сигнализации PS), и вместо этого использовать оригинальный channelConfiguration. Если psPresentFlag равен одному, данные PS присутствуют и декодер профиля НЕ AAC v2 должен управлять инструментом PS.

Для явной сигнализации PS без обратной совместимости [сигнализация 2.а] первый сигнализируемый AudioObjectType является PS AOT. extensionAudioObjectType назначают SBR АОТ. Для этой иерархической явной сигнализации флаг psPresentFlag устанавливается в единицу, если первый сигнализируемый АОТPS AOT. psPresentFlag не передается и, следовательно, невозможно сигнализировать явным образом об отсутствии неявной сигнализации. Следовательно, для иерархической явной сигнализации параметрического стерео данные PS всегда присутствуют и декодер профиля HE AAC v2 должен управлять инструментом PS.

3.6.7 Интерфейс между частями Аудио и Системами

3.6.7.1 Введение

В этой части описывается интерфейс между MPEG-4 Аудио и MPEG-4 Системами.

Каждый блок доступа, доставленный звуковому декодеру системным интерфейсом, должен привести к соответствующему композитному блоку, доставляемому от звукового декодера к системному интерфейсу. Это должно включать условия начала и завершения, то есть, когда блок доступа будет первым или последним в конечной последовательности блоков доступа.

3.6.7.2 Обработка временных меток композиции

Для блока звуковой композиции временная метка композиции (CTS) определяет, что время композиции относится к n-му звуковому отсчету в пределах блока композиции. Значение n принимается равным 1, если не указано другое.

Для сжатых данных, таких как кодированный звук НЕ ААС, которые могут быть декодированы декодерами различных профилей, декодирование может быть выполнено как обратносовместимым путем (только ААС), так и в расширенном виде (AAC+SBR). Чтобы обеспечить корректную обработку временных меток композиции (так, чтобы звук остался синхронизированным с другими медиа), применяется следующее:

если сжатые данные позволяют как обратносовместимое, так и расширенное декодирование, и если декодер работает обратносовместимым образом, то ему не нужно выполнять никаких специальных действий. В этом случае, значение n равно 1;

если сжатые данные позволяют как обратносовместимое, так и расширенное декодирование, и если декодер работает в расширенном режиме, используя постпроцессор, который вызывает некоторую дополнительную задержку (например, постпроцессор SBR в НЕ ААС), то необходимо учесть эту дополнительную задержку с помощью конкретного значения n из таблицы 26.

Таблица 26 – Обработка временной метки композиции для различных режимов декодера

Значение n

Дополнительная задержка (примечание)

Режим работы декодера

1

0

а) Все операционные режимы, не перечисленные в этой таблице

963

962

б1) Декодер НЕААС или НЕААС v2 с SBR, работающем в режиме двойной скорости; декодируя компрессированное НЕААС или НЕААС v2 аудио

482

481

б2) То же самое, как в б1), но с SBR, работающем в режиме субдискретизации

Значение n

Дополнительная задержка (Примечание)

Режим работы декодера

Примечание – Задержка из-за постпроцессинга дается в количестве отсчетов (на один звуковой канал) при выходной частоте дискретизации для данного режима декодера.

3.6.8 Сигнализация полезных нагрузок расширения BSAC

Метод неявной сигнализации полезных нагрузок расширения BSAC аналогичен тому, что применяется в инструменте SBR. Декодер BSAC, который может декодировать полезную нагрузку расширения BSAC, проверяет наличие расширения для инструмента SBR ‘EXT_BSAC_SBR_DATA’ в bsac_raw_ data_block (). Частота дискретизации должна быть обновлена при обнаружении расширения, а инструмент SBR должен управляться в режиме двойной скорости.

Декодер расширения BSAC проверяет наличие типа расширения для расширения канала BSAC, например ‘EXT_BSAC_CHANNEL’ в bsac_raw_data_block (). В случае многоканального типа расширения номер канала из AudioSpecificConfig () для объекта типа BSAC Аудио обновляется в зависимости от ‘channel_configuration_index’ каждого extended_bsac_base_element ().

Когда используется явная сигнализация, неявная сигнализация не должна использоваться. Доступны два различных метода явной сигнализации:

1 Метод явной сигнализации 1: иерархическая сигнализация

Если первым сигнализируемым audioObjectType (АОТ) является SBR АОТ, сигнализируется второй тип звукового объекта, который указывает BSAC ER АОТ. extensionChannelConfiguration указывает общее количество каналов в bsac_raw_data_block ().

2 Метод явной сигнализации 2: обратносовместимая сигнализация

extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (). Если extensionAudioObjectTypeBSAC ER АОТ, то extensionChannelConfiguration указывает общее количество каналов в bsac_raw_data_block (). Этот метод должен использоваться только в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Таблица 27 объясняет поведение декодера с SBR и сигнализацией расширения канала BSAC.

Таблица 27 – Сигнализация SBR и расширения канала BSAC и соответствующее поведение декодера

Характеристики потока битов

Поведение декодера

AudioObjectType расширения

sbrPresentFlag

extensionChannelConfiguration

raw_data_block

Декодер BSAC

Декодер расширений BSAC

!= ER_BSAC (Неявная сигнализация)

-1
(Примечание 1)

Не доступно

BSAC

Работа BSAC

Работа BSAC

BSAC+SBR

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+SBR

BSAC+MC

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+MC

BSAC+SBR+MC

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+SBR+MC

== ER_BSAC (Неявная сигнализация)

0
(Примечание 2)

==channelConfiguration (Примечание 4)

BSAC

Работа BSAC

Работа BSAC

!= channelConfiguration

BSAC+MC

Play BSAC

Play BSAC+MC

1
(Примечание 3)

== channelConfiguration (Примечание 4)

BSAC+SBR

Play BSAC

Play BSAC+SBR

!= channelConfiguration

BSAC+SBR+MC

Play BSAC

Play BSAC+SBR+MC

Примечание 1 – Неявная сигнализация: проверить полезную нагрузку, чтобы определить выходную частоту дискретизации или принять присутствие данных SBR в полезной нагрузке, выбирая выходную частоту дискретизации в два раза выше частоты дискретизации samplingFrequency в AudioSpecificConfig () (пока не используется инструмент SBR с децимацией или двойная частота дискретизации samplingFrequency не превышает максимально допустимое значение для текущего уровня, на котором выходная частота дискретизации равна samplingFrequency).

Примечание 2 – Явно сигнализируется отсутствие данных SBR, следовательно, нет неявной сигнализации и выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig ().

Примечание 3 – Выходная частота дискретизации равна extensionSamplingFrequency в AudioSpecificConfig ().

Примечание 4 – Явно сигнализируется отсутствие данных расширения канала BSAC и количество выходных каналов задано channelConfiguration в AudioSpecificConfig ().

3.6.9 Информация о звуковом файле для формата файла основная медиа Международной организации по стандартизации

3.6.9.1 Введение

Блок информации о звуковом файле позволяет хранить вспомогательные (незвуковые) данные оригинального звукового файла в файле формата основная медиа Международной организации по стандартизации. Этот файл также обычно содержит сжатые данные звука. Этот блок особенно полезен в комбинации с кодированием звука без потерь (например, MPEG-4 ALS, SLS), когда представляет интерес восстановление оригинального входного звукового файла.

3.6.9.2 Определение

Контейнер: метаблок

Обязательность: нет

Количество: Ноль или один

Содержит информацию об оригинальном звуковом файле, включая тип файла, и предоставляет блоки OriginalHeader (), OriginalTrailer () и AuxData () через элементный блок.

Блок OriginalHeader () содержит часть заголовка оригинального звукового файла; на него делается ссылка из элементного блока. Часть заголовка включает все байты до первого звукового отсчета данных в оригинальном файле.

Блок OriginalTrailer () содержит трейловую часть оригинального звукового файла; на него делается ссылка из элементного блока. Часть трейла включает все байты после последнего звукового отсчета в оригинальном файле.

Блок AuxData () содержит дополнительную информацию, добавленную кодером, относящуюся к оригинальному звуковому файлу; на него делается ссылка элементного блока. Содержание AuxData () не используется при восстановлении оригинального файла.

Информация об оригинальном звуковом файле хранится как метаданные в MetaBox. Тип обработчика для этого MetaBox‘oafi’, такой MetaBox должен иметь DataBox, содержащий OrigAudioFilelnfoRecord, или идентифицировать первичный элемент, данные которого – OrigAudioFilelnfoRecord.

3.6.9.3 Синтаксис

Синтаксис блока информации об оригинальном звуковом файле следующий:

Синтаксисы OriginalHeader (), OriginalTrailer () и AuxData () даны в таблице 28, таблице 29 и таблице 30. original_MIME_type – строка с нулевым символом в конце в символах UTF-8, идентифицирующих оригинальный тип файла.

Таблица 28 – Синтаксис OriginalHeader ()

Таблица 29 – Синтаксис OriginalTrailer ()

Таблица 30 – Синтаксис AuxData ()

3.6.9.4 Семантика

file_type описывает тип оригинального входного файла (см. таблицу 31 для описания возможных значений).

Таблица 31 – Значения file_type

Поле

Количество битов

Описание/Значение

file_type

4

0000 = unknown/raw file

0001 = wave file

0010 =aiff file

0011 =bwf file

0100 = Sony Wave64 file (.w64)

0101 =bwf with RF64

1111= “escape” for MIME type
(other values are reserved)

header_item_ID – идентификатор, который ссылается на OriginalHeader () в элементном блоке. Если это значение равно 0, OriginalHeader () отсутствует. Если OriginalHeader () пуст (нулевой длины), то пустой OriginalHeader () должен поставляться.

trailer_item_ID – идентификатор, который ссылается на OriginalTrailer () в элементном блоке. Если это значение равно 0, OriginalTrailer () отсутствует. Если OriginalTrailer () пуст (нулевой длины), то пустой OriginalTrailer () должен поставляться.

aux_item_ID – идентификатор, который ссылается на AuxData () в элементном блоке. Если это значение равно 0, AuxData () отсутствует. Если AuxData () пуст (нулевой длины), то пустой AuxData () должен поставляться.

Элементы OriginalHeader, OriginalTrailer и AuxData даны в таблице 32, таблице 33 и таблице 34.

Таблица 32 – Элементы OriginalHeader ()

Поле

Количество битов

Описание/Значения

header_length

64

Размер поля оригинального заголовка в байтах

ohg_header[]

header_length*8

Заголовок оригинального файла аудио

Таблица 33 – Элементы OriginalTrailer ()

Поле

Количество битов

Описание/Значение

trailer_length

64

Размер поля вспомогательных данных в байтах

ohg_trailer[]

trailer_length*8

Концевая часть оригинального аудиофайла

Таблица 34 – Элементы AuxData ()

Поле

Количество битов

Описание/Значение

aux_length

64

Размер поля вспомогательных данных в байтах

aux_data

aux_length*8

Вспомогательные данные (для декодирования не требуется)

3.7 Транспортный поток MPEG-4 Аудио

_______________

* Слово “MPEG” в наименовании пункта 3.7 в бумажном оригинале выделено курсивом. – .

3.7.1 Краткий обзор

Транспортный механизм использует двухуровневый подход, а именно: мультиплексный уровень и уровень синхронизации. Мультиплексный уровень (мультиплексный транспортный уровень MPEG-4 Аудио с низкой задержкой: LATM) управляет мультиплексированием нескольких полезных нагрузок MPEG-4 Аудио и их элементов AudioSpecificConfig (). Уровень синхронизации определяет самосинхронизирующийся синтаксис транспортного потока MPEG-4 Аудио, который называют звуковым потоком с низкой задержкой (LOAS). Формат интерфейса уровня передачи зависит от основного уровня передачи следующим образом:

LOAS должен использоваться для передачи по каналам, где не доступна синхронизация фреймов;

LOAS может использоваться для передачи по каналам с фиксированной синхронизацией фрейма;

– мультиплексный элемент (AudioMuxElement ()/EPMuxElement ()) без синхронизации будет использоваться только для каналов передачи, где основной транспортный уровень уже обеспечивает синхронизацию фрейма, которая может поддерживать произвольный размер фрейма.

Подробно о форматах LOAS и LATM описано в 1.7.2 и 1.7.3.

Механизм, определенный в этом параграфе, не должен использоваться для передачи объектов TTSI, объектов Main Synthetic, объектов Wavetable Synthesis, объектов General MIDI и объектов алгоритмического синтеза и FX. Это не должно использоваться для передачи какого-либо объекта с (epConfig == 1). Для таких объектов должны применяться другие мультиплексные и транспортные механизмы, например определенные в MPEG-4 Системы.

3.7.2 Уровень синхронизации

Уровень синхронизации предоставляет мультиплексному элементу механизм самосинхронизации для генерации LOAS. У LOAS есть три различных типа формата, а именно: AudioSyncStream (), EPAudioSyncStream () и AudioPointerStream (). Выбор одного из трех форматов зависит от основного уровня передачи.

AudioSyncStream ()

AudioSyncStream () состоит из синхрослова, мультиплексного элемента с побайтным выравниванием и его информации о длине. Максимальное расстояние между двумя синхрословами составляет 8192 байт. Этот самосинхронизирующийся поток должен использоваться для случая, когда основной уровень передачи следует без какой-либо синхронизации фреймов.

EPAudioSyncStream ()

Для каналов с ошибками предоставлена альтернативная версия AudioSyncStream (). Этот формат обладает теми же основными функциональными возможностями, как ранее описанный AudioSyncStream (). Однако это дополнительно обеспечивает более длинную синхропоследовательность и счетчик потерянных фреймов. Информация о длине и счетчик фреймов дополнительно защищены FEC кодом.

AudioPointerStream ()

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

3.7.2.1 Синтаксис (таблицы 35, 36, 37, 38)

Таблица 35 – Синтаксис AudioSyncStream ()

Таблица 36 – Синтаксис EPAudioSyncStream ()

Окончание таблицы 36

Таблица 37 – Синтаксис AudioPointerStream ()

Таблица 38 – Синтаксис AudioPointerStreamFrame ()

3.7.2.2 Семантика

3.7.2.2.1 AudioSyncStream ()

audioMuxLengthBytes – 13-битный элемент данных, указывающий длину байта последующего AudioMuxElement () с побайтным выравниванием (AudioSyncStream) или последующего EPMuxElement () (EPAudioSyncStream).

AudioMuxElement () – мультиплексный элемент, как определено в 3.7.3.2.2.

3.7.2.2.2 EPAudioSyncStream ()

futureUse – 4-битный элемент данных для будущего использования, должно быть установлено в ‘0000’.

audioMuxLengthBytes (см. 3.7.2.2.1).

frameCounter – 5-битный элемент данных, который используется для обнаружения потерянных фреймов. Число непрерывно увеличивается для каждого мультиплексного элемента.

headerPahty – 18-битный элемент данных, который содержит ВСН(36,18) код, сокращенный от ВСН(63,45) для элементов audioMuxLengthBytes и frameCounter. Полиномиальный генератор х+х+1. Значение вычисляется при помощи этого генератора, как описано в 3.8.4.3.

EPMuxElement () – эластичный мультиплексный элемент, как определено в 3.7.3.2.1.

3.7.2.2.3 AudioPointerStream ()

AudioPointerStreamFrame () – синхронизирующий фрейм фиксированной длины, предоставляемый основным уровнем передачи.

audioMuxElementStartPointer – элемент данных, указывающий начальную точку первого AudioMuxElement () в пределах текущего AudioPointerStreamFrame (). Число битов, требуемых для этого элемента данных, вычисляется как ceil(log2(syncFrameLength)). Длина фрейма передачи должна быть получена из основного уровня передачи. Максимально возможное значение этого элемента данных зарезервировано для сигнализации отсутствия начала AudioMuxElement () в этом синхронизирующем фрейме.

audioMuxElementChunk – часть конкатенации последующих AudioMuxElement ().

3.7.3 Мультиплексный уровень

Уровень LATM мультиплексирует несколько полезных нагрузок MPEG-4 Аудио и AudioSpecificConfig () элементов синтаксиса в один мультиплексный элемент. Мультиплексированный формат элемента выбирается между AudioMuxElement () и EPMuxElement () в зависимости от того, требуется ли способность исправления ошибок в мультиплексном элементе или нет. EPMuxElement () является эластичной версией AudioMuxElement () и может использоваться для каналов с ошибками.

Мультиплексированные элементы могут быть непосредственно переданы на уровнях передачи с синхронизацией фрейма. В этом случае первый бит мультиплексного элемента должен соответствовать первому биту полезной нагрузки основного уровня передачи. Если полезная нагрузка передачи требует побайтного выравнивания, биты пэддинга должны следовать за мультиплексируемым элементом. Количество битов пэддинга должно быть меньше 8. Эти биты должны быть удалены при демультиплексации элемента в полезные нагрузки MPEG-4 Аудио. Затем полезные нагрузки MPEG-4 Аудио передаются соответствующему инструменту декодера MPEG-4 Аудио.

Использование LATM в случае масштабируемых конфигураций с ядром CELP и уровнем (уровнями) расширения ААС:

– экземпляры класса AudioMuxElement () передаются равноотстоящим способом;

– представленный период одного AudioMuxElement () подобен суперфрейму;

– отношение числа битов определенного уровня в пределах любого AudioMuxElement () к общему количеству битов в пределах этого AudioMuxElement () равно отношению скорости передачи того уровня к скорости передачи всех слоев.

В случае, когда coreFrameOffset = 0 и latmBufferFullness = 0, все основные фреймы кодера и все фреймы ААС определенного суперфрейма сохраняются в пределах того же самого экземпляра класса AudioMuxElement ().

В случае coreFrameOffset> 0 несколько или все основные фреймы кодера сохраняются в пределах предыдущих экземпляров класса ofAudioMuxElement ().

Любая информация о конфигурации основного уровня относится к основным фреймам, переданным в пределах текущего экземпляра класса AudioMuxElement (), независимо от значения coreFrameOffset:

– указанный latmBufferFullness связан с первым фреймом ААС первого суперфрейма, сохраненного в пределах текущего AudioMuxElement ();

– значение latmBufferFullness может использоваться, чтобы определить местоположение первого бита первого фрейма ААС текущего уровня первого суперфрейма, сохраненного в пределах текущего AudioMuxElement () посредством backpointer:

backPointer = – meanFrameLength + latmBufferFullness + currentFrameLength.

Значение backpointer определяет позицию, как отрицательное смещение от текущего AudioMuxElement (), то есть указывает на начало фрейма ААС, расположенное в полученных данных. Любые данные, не принадлежащие полезной нагрузке текущего уровня ААС, не принимаются во внимание. Если (latmBufferFullness == ‘0’), то фрейм ААС начинается после текущего AudioMuxElement ().

Возможные конфигурации LATM ограничены из-за сигнализации определенных элементов данных следующим образом:

– число уровней: 8 (numLayer имеет 3 бита);

– число потоков: 16 (streamlndx имеет 4 бита);

– число участков памяти: 16 (numChuck имеет 4 бита).

3.7.3.1 Синтаксис (см. таблицы 39, 40, 41, 42, 43, 44).

Таблица 39 – Синтаксис EPMuxElement ()

Окончание таблицы 39

Таблица 40 – Синтаксис AudioMuxElement ()

Таблица 41 – Синтаксис StreamMuxConfig ()

Окончание таблицы 41

_______________
Примечание 1 – AudioSpecificConfig () возвращает количество считанных битов.

Таблица 42 – Синтаксис LatmGetValue ()

Таблица 43 – Синтаксис PayloadLengthlnfo ()

Таблица 44 – Синтаксис PayloadMux ()

3.7.3.2 Семантика

3.7.3.2.1 EPMuxElement ()

Для обнаружения EPMuxElement () флаг epDataPresent должен быть дополнительно установлен в основном уровне. Если epDataPresent установлен в 1, это указывает, что у EPMuxElement () есть защита от ошибок. В противном случае формат EPMuxElement () идентичен AudioMuxElement (). Значение по умолчанию для обоих флагов 1.

epDataPresent

Описание

0

EPMuxElement() идентично AudioMuxElement()

1

EPMuxElement() имеет защиту от ошибок

epUsePreviousMuxConfig флаг, указывающий, применена ли конфигурация инструмента ЕР MPEG-4 Аудио для предыдущего фрейма в текущем фрейме.

epUsePreviousMuxConfig Description

Описание

0

Конфигурация для инструмента ЕР MPEG-4 Аудио присутствует

1

Конфигурация для инструмента ЕР MPEG-4 Аудио отсутствует. Должна быть применена предыдущая конфигурация

epUsePreviousMuxConfigParity – 2-битный элемент, который содержит паритет для epUsePreviousMuxConfig.

Каждый бит – повторение epUsePreviousMuxConfig. Решение принимается по максимуму.

epSpecificConfigLength – 10-битный элемент данных, определяющий размер ErrorProtectionSpecificConfig ().

epSpecificConfigLength Parity – 11-битный элемент данных для epHeaderLength.

Примечание – Это означает, что используется укороченный код Golay (23, 12).

ErrorProtectionSpecificConfig () – функция, содержащая данные конфигурации для инструмента ЕР, к которому относятся AudioMuxElement ().

ErrorProtectionSpecificConfigParity () – функция, содержащая биты четности для ErrorProtectionSpecificConfig ().

EPAudioMuxElement () – функция, содержащая эластичный мультиплексный элемент, генерируемый с использованием инструмента ЕР к AudioMuxElement (), как определено ErrorProtectionSpecificConfig (). Поэтому элементы данных в AudioMuxElement () подразделяются на различные категории в зависимости от их чувствительности к ошибкам и собираются в экземплярах класса этих категорий.

Определены следующие категории чувствительности:

Элементы

Категория чувствительности к ошибкам

useSameStreamMux + StreamMuxConfig ()

1

PayloadLengthlnfo ()

2

PayloadMux ()

3

otherDataBits

4

Примечание 1 – Может быть больше чем один экземпляр класса категорий чувствительности к ошибкам 1 и 2 в зависимости от значения переменной numSubFrames, определенных в StreamMuxConfig (). Рисунок 2 показывает пример порядка экземпляров класса при numSubFrames = 1.

Примечание 2 – EPAudioMuxElement () должен быть побайтно выровненным, поэтому bit_stuffing inErrorProtectionSpecificConfig () должно быть всегда включено.

Рисунок 2 – Порядок следования экземпляров класса в EPAudioMuxElement ()

Рисунок 2 – Порядок следования экземпляров класса в EPAudioMuxElement ()

3.7.3.2.2 AudioMuxElement ()

Для обнаружения AudioMuxElement () флаг muxConfigPresent должен быть установлен в основном уровне. Если muxConfigPresent установлен в 1, это сигнализирует, что конфигурация мультиплексирования (StreamMuxConfig ()) является мультиплексируемой в AudioMuxElement (), то есть имеет место передача в полосе. В противном случае, StreamMuxConfig () должен быть передан вне полосы с использованием протоколов объявления/описания/управления сеансом.

muxConfigPresent

Описание

0

Передача вне полосы StreamMuxConfig ()

1

Передача в полосе StreamMuxConfig ()

useSameStreamMux – флаг применения конфигурации мультиплексирования предыдущего фрейма в текущем фрейме.

useSameStreamMux

Описание

0

Конфигурация мультиплексирования присутствует

1

Конфигурация мультиплексирования отсутствует. Предыдущая конфигурация должна быть применена

otherDataBit – 1-битовый элемент данных, указывающий наличие других данных.

3.7.3.2.3 StreamMuxConfig ()

AudioSpecificConfig () определен в 3.6.2.1. В таком случае это является автономным элементом.

audioMuxVersion – элемент данных для сигнализации об используемом мультиплексном синтаксисе.

Примечание – В дополнение к (audioMuxVersion == 0), (audioMuxVersion == 1) поддерживает передачу taraBufferFullness и передачу длин отдельных AudioSpecificConfig () функции данных.

audioMuxVersionA – элемент данных для сигнализации используемой версии синтаксиса. Возможные значения: 0 (значение по умолчанию), 1 (зарезервировано для будущих расширений).

taraBufferFullness – вспомогательная переменная, указывающая состояние резервуара битов в ходе кодирования информации о статусе LATM. Это передается как число доступных битов в резервуаре битов tara, деленное на 32 и округленное до целого значения. Максимальное значение, которое допустимо для сигнализации с использованием любой установки сигналов bytesForValue, таких, что отдельная программа и уровень имеют переменную скорость. Возможные варианты: FF (bytesForValue == 0), FFFF (bytesForValue == 1), FFFFFF (bytesForValue == 2) или FFFFFFFF (bytesForValue == 3). В этих случаях заполнение буфера не применимо. Информация о состоянии LATM taraBufferFullness включает любые данные AudioMuxElement (), кроме PayloadMux ().

allStreamsSameTimeFraming – элемент данных, указывающий, все ли полезные нагрузки, мультиплексированные в inPayloadMux (), используют общее время.

numSubFrames – элемент данных, указывающий, сколько фреймов PayloadMux () мультиплексируются (numSubFrames+1). Если мультиплексируется более чем один фрейм PayloadMux (), все PayloadMux () используют общий StreamMuxConfig (). Минимальное значение (0) соответствует 1 подфрейму.

numProgram – элемент данных, указывающий, сколько программ мультиплексируются (numProgram +1).

Минимальное значение (0) соответствует 1 программе.

numLayer – элемент данных, указывающий, сколько масштабируемых уровней мультиплексируются (numLayer+1).

Минимальное значение (0) соответствует 1 уровню.

useSameConfig – элемент данных, указывающий, что не передается AudioSpecificConfig (), однако должен быть применен последний принятый AudioSpecificConfig ().

useSameConfig

Описание

0

AudioSpecificConfig () присутствует

1

AudioSpecificConfig () отсутствует. Должен быть применен AudioSpecificConfig () предыдущего уровня или программы

ascLen [prog] [lay] – вспомогательная переменная, указывающая длину в битах subsequentAudioSpecificConfig (), включая возможные биты заполнения.

fillBits – биты заполнения.

frameLengthType – элемент данных, указывающий тип длины фрейма полезной нагрузки. Для объектов CELP и HVXC длина фрейма (бит/фрейм) сохранена в таблицах; передаются только индексы для указания длины фрейма текущей полезной нагрузки.

frameLengthType

Описание

0

Полезная нагрузка с переменной длиной фрейма. Длина полезной нагрузки в байтах непосредственно определена с 8-битовыми кодами в PayloadLengthInfo ()

1

Полезная нагрузка с фиксированной длиной фрейма. Длина полезной нагрузки в битах определена с frameLength в StreamMuxConfig ()

2

В резерве

3

Полезная нагрузка для CELP с одним из 2 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно, CELPframeLengthTablelndex и MuxSlotLengthCoded

4

Полезная нагрузка для объектов CELP или ER_CELP с фиксированной длиной фрейма. CELPframeLengthTablelndex определяет длину полезной нагрузки

5

Полезная нагрузка для объекта ER_CELP с одним из 4 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно: CELPframeLengthTablelndex и MuxSlotLengthCoded

6

Полезная нагрузка для объектов HVXC или ER_HVXC с фиксированной длиной фрейма. HVXCframeLengthTablelndex определяет длину полезной нагрузки

7

Полезная нагрузка для объектов HVXC или ER_HVXC с одним из 4 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно: HVXCframeLengthTablelndex и MuxSlotLengthCoded

latmBufferFullness [streamID [prog] [lay]] – элемент данных, указывающий состояние резервуара битов в ходе кодирования первого блока доступа отдельной программы и уровня в AudioMuxElement (). Передается как количество доступных битов в резервуаре битов, деленное на NCC, деленное на 32 и округленное до целого значения. Шестнадцатеричное значение FF сообщает о том, что отдельная программа и уровень имеют переменную скорость. В этом случае полнота буфера не применима.

В случае (audioMuxVersion == 0) биты, потраченные на данные, отличные от любой полезной нагрузки (например, мультиплексная информация или другие данные) определяются первым latmBufferFullness в AudioMuxElement (). Для ААС применяются ограничения, вызванные минимальным входным буфером декодера. В случае (allStreamsSameTimeFraming == 1) и присутствия только одной программы и одного уровня, это приводит к конфигурации LATM, подобной ADTS.

В случае (audioMUxVersion == 1) биты, потраченные на данные, отличные от любой полезной нагрузки, определяются taraBufferFullness.

coreFrameOffset идентифицирует первый фрейм CELP текущего суперфрейма. Это определено только в случае масштабируемых конфигураций с ядром CELP и уровнем (уровнями) расширения ААС и передается с первым уровнем расширения ААС. Значение 0 идентифицирует первый фрейм CELP после StreamMuxConfig () как первый фрейм СЕLР текущего суперфрейма. Значение > 0 сигнализирует число фреймов CELP таких, что первый фрейм CELP текущего суперфрейма передан ранее.

frameLength – элемент данных, указывающий длину фрейма полезной нагрузки c frameLengthType 1. Длина полезной нагрузки в битах определена как 8 * (frameLength + 20).

CELPframeLengthTablelndex – элемент данных, указывающий один из двух индексов, соответствующих длине фрейма для объектов CELP или ER_CELP (таблица 47 и таблица 48).

HVXCframeLengthTablelndex – элемент данных, указывающий один из двух индексов, соответствующих длине фрейма для объектов HVXC или ER_HVXC (таблица 46).

otherDataPresent – флаг, указывающий присутствие данных, отличных от звуковых полезных нагрузок.

otherDataPresent

Описание

0

данные не мультиплексированы

1

данные мультиплексированы

otherDataLenBits

– вспомогательная переменная, указывающая длину в битах других данных.

crcCheckPresent

– элемент данных, указывающий наличие битов CRC для StreamMuxConfig ().

crcCheckPresent

Описание

0

CRC биты не присутствуют

1

CRC биты присутствуют

crcCheckSum – проверочная сумма CRC. Используется образующий полином CRC8, как определено в 3.8.4.5. Охватывает весь StreamMuxConfig () до бита crcCheckPresent (без его включения в проверку).

3.7.3.2.4 LatmGetValue ()

bytesForValue – элемент данных, указывающий число элементов данных valueTmp.

valueTmp – элемент данных, используемый для вычисления вспомогательной переменной value.

value – вспомогательная переменная, содержащая значение, возвращенное функцией LatmGetValue ().

3.7.3.2.5 PayloadLengthlnfo ()

tmp – элемент данных, указывающий длину полезной нагрузки с frameLengthType 0. Значение 255 используется как escape и указывает, что, по крайней мере, еще одно значение tmp следует. Полная длина переданной полезной нагрузки вычисляется путем суммирования значений частей.

MuxSlotLengthCoded – элемент данных, указывающий один из двух индексов, соответствующих длине полезной нагрузки для объектов CELP, HVXC, ER_CELP и ER_HVXC.

numChunk – элемент данных, указывающий число участков памяти полезной нагрузки (numChunk+1). Каждый участок памяти может принадлежать блоку доступа с различным временем; используется, только если allStreamsSameTimeFraming установлен на ноль. Минимальное значение (0) соответствует 1 участку памяти.

streamlndx – элемент данных, указывающий поток. Используется, если полезные нагрузки разбивают на участки памяти.

chunkCnt – вспомогательная переменная для подсчета числа участков памяти.

progSlndx, laySlndx – вспомогательные переменные для идентификации программы и числа уровня от streamlndx.

progClndx, layClndx – вспомогательные переменные для идентификации программы и числа уровня от chunkCnt.

AuEndFlag – флаг, указывающий, является ли полезная нагрузка последним фрагментом в случае, если блок доступа передан по частям.

AuEndFlag

Описание

0

фрагментированная часть не является последней

1

фрагментированная часть – последняя

3.7.3.2.6 PayloadMux ()

payload – фактическая звуковая полезная нагрузка любого блока доступа (allStreamsSameTimeFraming == 1) или части конкатенации последующих блоков доступа (allStreamsSameTimeFraming ==0).

3.7.3.3 Таблицы

Длины фреймов приведены в таблицах 45, 46, 47.

Таблица 45 – Длина фрейма HVXC, биты

Фрейм

MuxSlotLengthCoded

frameLength Type[ ]

HVXCframeLengthTablelndex[ ]

00

01

10

11

6

0

40

6

1

80

7

0

40

28

2

0

7

1

80

40

25

3

Таблица 46 – Длина фрейма CELP уровня 0, биты

CELP frameLengh Tablelndex

Fixed-Rate frameLength Type[

1-of-4 Rates (сжатие молчания) frameLengthType[ ]=5

1-of-2 Rates (FRC) frameLengthType[ ]=3

MuxSlotLengthCoded

MuxSlotLengthCoded

00

01

10

11

00

01

0

154

156

23

8

2

156

134

1

170

172

23

8

2

172

150

2

186

188

23

8

2

188

166

3

147

149

23

8

2

149

127

4

156

158

23

8

2

158

136

5

165

167

23

8

2

167

145

6

114

116

23

8

2

116

94

7

120

122

23

8

2

122

100

8

126

128

23

8

2

128

106

9

132

134

23

8

2

134

112

10

138

140

23

8

2

140

118

11

142

144

23

8

2

144

122

12

146

148

23

8

2

148

126

13

154

156

23

8

2

156

134

14

166

168

23

8

2

168

146

15

174

176

23

8

2

176

154

16

182

184

23

8

2

184

162

17

190

192

23

8

2

192

170

18

198

200

23

8

2

200

178

19

206

208

23

8

2

208

186

20

210

212

23

8

2

212

190

21

214

216

23

8

2

216

194

22

110

112

23

8

2

112

90

23

114

116

23

8

2

116

94

24

118

120

23

8

2

120

98

25

120

122

23

8

2

122

100

26

122

124

23

8

2

124

102

27

186

188

23

8

2

188

166

28

218

220

40

8

2

220

174

29

230

232

40

8

2

232

186

30

242

244

40

8

2

244

198

31

254

256

40

8

2

256

210

32

266

268

40

8

2

268

222

33

278

280

40

8

2

280

234

34

286

288

40

8

2

288

242

35

294

296

40

8

2

296

250

36

318

320

40

8

2

320

276

37

342

344

40

8

2

344

298

38

358

360

40

8

2

360

314

39

374

376

40

8

2

376

330

40

390

392

40

8

2

392

346

41

406

408

40

8

2

408

362

42

422

424

40

8

2

424

378

43

136

138

40

8

2

138

92

44

142

144

40

8

2

144

98

45

148

150

40

8

2

150

104

46

154

156

40

8

2

156

110

47

160

162

40

8

2

162

116

48

166

168

40

8

2

168

122

49

170

172

40

8

2

172

126

50

174

176

40

8

2

176

130

51

186

188

40

8

2

188

142

52

198

200

40

8

2

200

154

53

206

208

40

8

2

208

162

54

214

216

40

8

2

216

170

55

222

224

40

8

2

224

178

56

230

232

40

8

2

232

186

57

238

240

40

8

2

240

194

58

216

218

40

8

2

218

172

59

160

162

40

8

2

162

116

60

280

282

40

8

2

282

238

61

338

340

40

8

2

340

296

62-63

Зарезервировано

Таблица 47 – Длина фрейма CELP уровней 1-5, биты

CELPframeLenghTablelndex

Fixed-Rate frameLengthType [ ]=4

1-of-4 Rates (сжатие молчания) frameLengthType[ ]=5

MuxSlotLengthCoded

00

01

10

11

0

80

80

0

0

0

1

60

60

0

0

0

2

40

40

0

0

0

3

20

20

0

0

0

4

368

368

21

0

0

5

416

416

21

0

0

6

464

464

21

0

0

7

496

496

21

0

0

8

284

284

21

0

0

9

320

320

21

0

0

10

356

356

21

0

0

11

380

380

21

0

0

12

200

200

21

0

0

13

224

224

21

0

0

14

248

248

21

0

0

15

264

264

21

0

0

16

116

116

21

0

0

17

128

128

21

0

0

18

140

140

21

0

0

19

148

148

21

0

0

20-63

Зарезервировано

3.8 Защита от ошибок

3.8.1 Краткий обзор инструментов

Для типов звуковых объектов, устойчивых к ошибкам, может быть применен инструмент защиты от ошибок (ЕР). Об использовании этого инструмента сигнализирует поле epConfig. Вход декодера инструмента ЕР состоит из блоков доступа с защитой от ошибок. В случае если об использовании декодера инструмента ЕР сигнализирует epConfig, применяются следующие ограничения:

– существует один элементарный поток на уровень масштабируемости, или только один элементарный поток в случае немасштабируемых конфигураций;

– на выходе декодера ЕР имеется набор нескольких классов ЕР. Конкатенация классов ЕР на выходе декодера ЕР идентична данным с epConfig = 0.

Определение класса ЕР зависит от epConfig и directMapping. Для epConfig = 2 классы ЕР не имеют строгого определения. Их точный контент должен быть определен на прикладном уровне, хотя вышеупомянутые ограничения должны быть выполнены. Для epConfig = 3, нормативно определено соответствие между классами ЕР и экземплярами класса категорий чувствительности к ошибкам (ESCs). В этом случае о соответствии сообщает directMapping. В случае, если directMapping = 1, каждый класс ЕР соответствует только одному экземпляру класса категорий чувствительности к ошибкам. Выход декодера ЕР в этом случае идентичен случаю epConfig = 1. Рисунок 3 подводит итог использования классов ЕР, в зависимости от значения epConfig.

Рисунок 3 – Классы ЕР для различных значений epConfig

Рисунок 3 – Классы ЕР для различных значений epConfig

Инструмент защиты от ошибок (инструмент ЕР) обеспечивает неравную защиту от ошибок (UEP) для кодеков ИСО/МЭК 14496-3. Основные особенности инструмента ЕР следующие:

– обеспечение набора кодов с обнаружением/исправлением ошибок различного масштаба в основной части и в избыточной части;

– обеспечение универсальной и эффективной, с точки зрения канала передачи, защитой от ошибок, которая охватывает как потоки фреймов фиксированной длины, так и потоки фреймов переменной длины;

– обеспечение управления конфигурацией UEP c низкими задержками.

Основная идея UEP состоит в разделении фреймов на подфреймы согласно чувствительности к ошибкам в символе (эти подфреймы именуются классами в следующих подразделах) и защите этих подфреймов с соответствующим уровнем FEC и/или CRC. Без этого качество декодированного звука определяется степенью повреждения наиболее чувствительной части. Таким образом самое сильное FEC/CRC должно быть применено к целому фрейму, что требует гораздо большей избыточности.

Чтобы применить UEP к звуковым фреймам, должна быть запрошена следующая информация:

1) число классов;

2) число битов, которое содержит каждый класс;

3) код CRC, который будет применяться для каждого класса. Представлен как CRC-биты;

4) код FEC, который будет применяться для каждого класса.

Эту информацию в следующих разделах называют “параметрами конфигурации фрейма”. Та же самая информация используется при декодировании фреймов UEP; следовательно они должны быть переданы. Чтобы передать их эффективно, учитываются структуры фреймов MPEG-4 Аудио.

Существует три различных подхода к организации структуры фрейма MPEG-4 Аудио с точки зрения UЕР:

1) конфигурация всех фреймов остается постоянной во время передачи (как в CELP);

2) используется определенный набор конфигурации (как в TwinVQ);

3) большинство параметров является постоянными при передаче, однако некоторые могут меняться от фрейма к фрейму (как в ААС).

Для реализации этих подходов инструмент ЕР использует два пути передачи параметров конфигурации фреймов. Первый представляет собой сигнализацию вне полосы, аналогично передаче параметров конфигурации кодека. Так передаются общие параметры фреймов. В случае, если есть несколько шаблонов конфигурации, эти шаблоны передаются с индексами. Другой путь заключается в передаче внутри полосы, при которой задается структура фрейма ЕР с заголовком. Только те параметры, которые не переданы вне полосы, передаются этим способом. Это позволяет минимизировать количество избыточной внутриполосной информации, произведенной инструментом ЕР.

С этими параметрами каждый класс кодируется и декодируется по FEC/CRC. Для увеличения производительности защиты от ошибок используется метод чередования. Цель чередования состоит в рандомизации пакетов ошибок в пределах фреймов, и это нежелательно для незащищенного класса из-за наличия других инструментов обработки ошибок, цель которых состоит в локализации действия ошибок; а рандомизация может оказывать негативное влияние на такую часть полезного битового потока.

Схемы кодера и декодера ЕР представлены на рисунках 4 и 5.

Рисунок 4 – Схема кодера ЕР

Рисунок 4 – Схема кодера ЕР

Рисунок 5 – Схема декодера ЕР

Рисунок 5 – Схема декодера ЕР

3.8.2 Синтаксис

3.8.2.1 Конфигурация защиты от ошибок

Эта часть определяет синтаксис конфигурации для защиты от ошибок (см. таблицу 48).

Таблица 48 – Синтаксис ErrorProtectionSpecificConfig ()

3.8.2.2 Полезные нагрузки защиты от ошибок

Эта часть определяет синтаксис защищенного звукового полезного битового потока. Этот вид синтаксиса может быть выбран установкой epConfig=2 или epConfig=3. Это характерно для всех типов звуковых объектов. Если используется MPEG-4, то один ep_frame () непосредственно соответствует одному блоку доступа (см. таблицы 49, 50, 51, 52).

Таблица 49 – Синтаксис ep_frame ()

Таблица 50 – Синтаксис ep_header ()

Таблица 51 – Синтаксис class_attrib ()

Таблица 52 – Синтаксис ep_encoded_classes ()

3.8.3 Общая информация

3.8.3.1 Определения

ErrorProtectionSpecificConfig () – конфигурация защиты от ошибок, которая является внеполосной информацией;

number_of_predefined_set – номер предопределенного набора;

interleave_type – это переменная определяющая тип чередования. (interleave_type == 0), означает “без чередования”, (interleave_type == 1) означает “внутрикадровое чередование” и (interleave_type == 2) включает режим дополнительной настройки чередования для каждого класса. Подробнее дано в 3.8.4.8. (interleave_type == 3), зарезервировано;

bit_stuffing – сигнализация использования заполнения для обеспечения побайтного выравнивания:

1 – заполнение используется.

0 – заполнение не используется. Это подразумевает, что для данной конфигурации гарантировано побайтное выравнивание фрейма ЕР;

number_of_concatenated_frame – количество исходных фреймов кодера на один защищенный фрейм.

Объединения фреймов в зависимости от number_of_concatenated_frame приведены в таблице 53.

Таблица 53 – Объединение фреймов в зависимости от number_of_concatenated_frame

Кодовое слово

000

001

010

011

100

101

110

111

Количество объединяемых фреймов

резерв

1

2

3

4

5

6

7

number_of_class [i] – количество классов для i-го предопределенного набора;

length_escape [i] [j] – если 0, то длина j-го класса в i-ом предопределенном наборе имеет фиксированное значение; если 1, длина является переменной. В случае “until the end” это значение должно быть равно 1, и number_of_bits_for_length [i] [j] должно быть равно 0;

rate_escape [i] [j] – если 0, скорость кода SRCPC j-го класса в i-ом предопределенном наборе имеет фиксированное значение. Если 1, то о скорости кода сообщается в полосе;

crclen_escape [i] [j] – если 0, длина CRC j-го класса в i-ом предопределенном наборе имеет фиксированное значение; если 1, то о CRCIength сообщается в полосе;

concatenate_flag [i] [j] – параметр, определяющий, связан ли j-ый класс i-го предопределенного набора или нет. 0 означает “несвязанный”, 1 – “связанный” (см. 3.8.4.4);

fec_type [i] [j] – параметр определяющий, используется ли SRCPC код (“0”) или RS код (“1” или “2”) для защиты j-го класса i-го предопределенного набора. Класс, защищенный кодом RS, должен быть побайтно выровненным. Если эта область установлена в “2”, это означает, что этот класс защищен RS и объединен со следующим классом, как один код RS. Если более чем два последующих класса имеют значение “2” для этой области, то эти классы объединены и кодированы как один код RS. Если эта область равна “1”, то этот класс не объединяется со следующим. Это означает, что текущий класс – последний, который будет связан перед кодированием RS, или этот класс – с независимым RS кодированием;

termination_switch [i] [j] – параметр, определяющий, закончен ли j-ый класс i-го предопределенного набора или нет, при коде SRCPC. См. 3.8.4.6.2;

interleave_switch [i] [j] – параметр, определяющий, как чередовать j-ый класс i-го предопределенного набора;

0 – без чередования;

1 – чередование без чередования внутри класса: ширина чередования равна числу битов в пределах текущего класса, если (fec_type == 0), или числу байтов в пределах текущего класса, если (fec_type == 1 || fec_type == 2);

2 – чередование с чередованием внутри класса: ширина чередования = 28, если (fec_type == 0); это значение зарезервировано, если (fec_type == 1 || fec_type == 2);

3 – связанный (см. 3.8.4.8.2.2);

class_optional – флаг, сигнализирующий, является ли класс обязательным (class_optional == 0) или дополнительным (class_optional == 1). Этот флаг может использоваться, чтобы уменьшить избыточность в пределах ErrorProtectionSpecificConfig. Обычно это необходимо для определения 2 наборов, где наборов, где равняется числу дополнительных классов (см. 3.8.4.2);

number_of_bits_for_length [i] [j] – область, существующая только когда length_escape [i] [j] = 1. Это значение показывает количество битов для длины класса при сигнализации внутри полосы. Это значение должно быть установлено, если подразумевается максимальная длина класса. Значение 0 соответствует режиму “до конца”;

class_length [i] [j] – область, существующая только, когда length_escape [i] [j] = 0. Это значение показывает длину j-го класса в i-ом предопределенном наборе, которая является фиксированной при передаче;

class_rate [i] [j] – эта область существует только, когда rate_escape [i] [j]=0. В случае если fec_type [i] [j] = 0, это значение соответствует скорости кода SRCPC j-го класса в i-ом предопределенном наборе, фиксированным во время передачи. Значение от 0 до 24 соответствует скорости кода от 8/8 до 8/32 соответственно. В случае если fec_type [i] [j] равен 1 или 2, это значение показывает количество ошибочных байтов, которое может быть исправлено кодом RS (см. 3.8.4.7). Все классы, для которых сигнализируется объединение с fec_type [i] [j], должны иметь то же самое значение class_rate [i] [j];

class_crclen [i] [j] – область, существующая только, когда crclen_escape [i] [j] = 0. Это значение показывает длину CRC j-го класса в i-ом предопределенном наборе, фиксированным во время передачи. Значение должно быть в диапазоне 0-18, что соответствует длине CRC 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24 или 32;

class_reordered_output – если это значение “1”, то выход классов от декодера ЕР переупорядочен. Если “0”, никакой обработки не применяется;

class_output_order [i] [j] – область, существующая, когда class_reordered_output установлен в “1”, для сигнализации порядка класса после переупорядочения. j-ый класс i-го предопределенного набора выводится как class_output_order [i] [j]-ый класс от ЕР декодера;

header_protection – значение, указывающее режим защиты заголовка от ошибок. 0 указывает на использование основного набора FEC, а 1 – на использование расширенной защиты заголовка от ошибок, как определено в 3.8.4.3. Расширенная защита от ошибок заголовка применяется, только если длина заголовка превышает 16 битов;

header_rate, header_crclen – значения, имеющее ту же семантику, что и class_rate [i] [j] и class_crclen [i] [j] соответственно, в то время как эта защита от ошибок используется для защиты части заголовка;

ep_frame () – защищенный фрейм;

ep_header () – кодированная ЕР информация заголовка;

ep_encoded_classes () – ЕР кодированная ЕР звуковая информация;

interleaved_frame_mode1 – информационные биты после чередования в режиме 1;

interleaved_frame_mode2 – информационные биты после чередования в режиме 2;

stuffing_bits – биты наполнения для выравнивания октета фрейма ЕР. Число битов Nstuff сигнализируется в class_attrib () и должно быть в диапазоне ()…7;

choice_of_pred – выбор предопределенного набора;

choice_of_pred_parity – биты четности для choice_of_pred;

class_attrib_parity – биты четности для class_attrib ();

class_attrib () – атрибутная информация для каждого класса;

class_bit_count [j] – число информационных битов в классе. Эта область существует только в случае, если length_escape в информации из полосы равен 1 (Escape). О количестве битов этого параметра Nbitcount сообщается внутри полосы;

class_code_rate [j] – скорость кодирования звуковых данных, принадлежащих классу в таблице 54. Эта область существует только в случае, если rate_escape в информации из полосы равно 1 (Escape).

Таблица 54 – Скорость кодирования для звуковых данных, принадлежащих классу

Кодовое слово

000

001

010

011

100

101

110

111

Скорость преобразования

8/8

8/11

8/12

8/14

8/16

8/20

8/24

8/32

Картина преобразования

FF, 00 00, 00

FF, A8 00, 00

FF, AA 00, 00

FF, ЕЕ 00, 00

FF, FF 00, 00

FF, FF AA, 00

FF, FF FF, 00

FF, FF FF, FF

class_crc_count [j] – число битов CRC для звуковых данных, принадлежащих классу в таблице 55. Эта область существует только в случае, если crclen_escape равен 1 (Escape).

Таблица 55 – Число битов CRC для звуковых данных, принадлежащих классу

Кодовое слово

000

001

010

011

100

101

110

111

Число битов CRC

0

6

8

10

12

14

16

32

Число битов CRC для звуковых данных, принадлежащих классу, приведены в таблице 55.

num_stuffing_bits – число битов стаффинга для выравнивания октета фрейма ЕР. Эта область существует только в случае, если bit_stuffing равен 1;

ep_encoded_class [j] CRC/SRCPC – закодированные звуковые данные j-го класса. Если class_bit_count [j] == 0, звуковые данные j-го класса не закодированы CRC/SRCPC/SRS.

3.8.4 Описание инструмента

3.8.4.1 Внеполосная информация

Контент внеполосной информации представлен посредством ErrorProtectionSpecificConfig (). Некоторые примеры конфигурации представлены в приложении Б.

Длина последнего класса, обработанного декодером ЕР (до любого последующего переупорядочения, как описано в 3.8.4.9), не должна быть передана явно, однако возможна сигнализация “до конца”. В MPEG-4 Системы системный уровень гарантирует границу звукового фрейма, устанавливая в соответствие один звуковой фрейм одному блоку доступа. Поэтому длина класса “до конца” может быть вычислена по длине других классов и общей длине кодированных ЕР звуковых фреймов.

Флаг class_optional может использоваться для уменьшения избыточности в пределах ErrorProtectionSpecificConfig (). Однако инструмент ЕР так же работает с тем же самым числом предопределенных наборов. Если есть классов с (class_optional == 1), этот предопределенный набор расширяется до 2 классов с (class_optional == 1), этот предопределенный набор расширяется до 2 предопределенных наборов. Разворачивание наборов описано в следующем подразделе.

3.8.4.2 Предопределенные наборы

В этом подразделе описывается постобработка, вход которой – ErrorProtectionSpecificConfig () с переключателем “class_optional“, а выход – предопределенные наборы, используемые для параметров ep_frame ().

Общая процедура

Каждый предопределенный набор расширяется до 2 предопределенных наборов, где NCO[i] – число классов с (class_optional == 1) в i-ом оригинальном предопределенном наборе. После этого любой класс с (class_optional == 1) упоминается как optClass.

Эти расширенные наборы начинаются с “все optClasses существуют” и заканчиваются “никаких optClasses не существует”. Алгоритм:

где optClassExists [k] сообщает, существует ли k-ый optClass предопределенного набора (1) или нет (0) в определяющем новом предопределенном наборе.

DefineTransPred (transPred, i, optClassExists) определяет transPred-ый новый предопределенный набор, используемый для передачи. Этот новый предопределенный набор – копия i-го оригинального предопределенного набора, кроме того, что он не имеет optClasses, optClassExists которого равняется 0.

Пример

ErrorProtectionSpecificConfig () определяет предопределенные наборы следующим образом: После предварительной обработки, описанной выше, предопределенные наборы, используемые для ep_frame (), устанавливаются следующим образом:

3.8.4.3 Внутриполосная информация

Информация фрейма ЕР, которая не включена во внеполосную информацию, является внутриполосной информацией. Параметры, относящиеся к этой информации, передаются как заголовок фрейма ЕР. Существуют следующие параметры:

– выбор предопределенного набора;

– количество битов стаффинга для побайтного выравнивания;

– информация о классе, которая не включена во внеполосную информацию.

Декодер ЕР не может декодировать звуковую информацию фрейма без этих параметров, и, таким образом, они должны обладать защитой от ошибок, более сильной или равной защите других частей. С учетом этого выбор предопределенного набора должен быть обработан отдельно от других частей. Это следует из того, что длина информации о классе может быть изменена в соответствии с предопределенным набором. Поэтому этот параметр кодируется FEC независимо от других частей. На стороне декодера в первую очередь декодируется выбор предопределенного, а затем вычисляется длина оставшейся части заголовка и декодируется.

FEC применяется для этих частей следующим образом:

Основной набор кодов FEC приведен в таблице 56.

Таблица 56 – Основной набор кодов FEC для внутриполосной информации

Количество необходимых битов

Код FEC

Общее число битов

Длина кодового слова

1-2

Большинство (повторение 3 раза)

3-6

3

3-4

ВСН(7,4)

6-7

6-7

5-7

ВСН(15,7)

13-15

13-15

8-12

Golay(23,12)

19-23

19-23

13-16

ВСН(31,16)

28-31

28-31

17

RCPC 8/16 +4-бит CRC

50

Примечания

1 общее количество битов: число битов после FEC кодирования.

2 ширина чередования: ширина матрицы чередования, см. также 3.8.4.8.

3 Npred_parity (или Nattrib_parity) = общее количество битов минус число битов, которые будут защищены.

4 SRCPC завершен.

5 число битов, которые будут защищены, равно Npred (или общее количество битов для class_attrib ()).

Расширенное FEC

Если длина заголовка превышает 16 битов, этот заголовок защищен с помощью CRC и завершен SRCPC. Скорость SRCPC и количество битов CRC сигнализируются. Метод кодирования и декодирования такой же, как описано ниже для CRC/SRCPC.

Порождающие полиномы для каждого FEC следующие:

ВСН(7,4):

х+х+1

ВСН(15,7):

х+1

Golay (23,12):

х +х+1

ВСН (31,16):

х+х+1

С этими полиномами FEC(n, k) для l-битного кодирования выполняется следующим образом:

Вычисляется полином R(x), который удовлетворяет

М(х) х = Q(x)G(x) + R(x)

М(х): Информационные биты. Самый высокий порядок соответствует первому биту, который будет передан.

G(x): образующий полином, определенный выше.

Этот полином R (х) производит контроль к choice_of_pred или class_attrib (), и устанавливается в choice_of_pred_parity или class_attrib_parity соответственно. Самый высокий порядок соответствует первому биту. Декодер может выполнить коррекцию ошибок, используя эти биты паритета, однако это дополнительная операция.

3.8.4.4 Функциональные возможности конкатенации

У инструмента ЕР есть функциональные возможности для объединения (конкатенации) нескольких исходных фреймов кодера, чтобы создать новый фрейм для инструмента ЕР. При этой конкатенации группы битов, принадлежащих тому же самому классу в различных исходных фреймах кодера, связаны класс с классом. Составные группы, принадлежащие тому же самому классу, либо обрабатываются как отдельный элемент, либо как независимый класс, так же как перед конкатенацией.

О числе фреймов, которые будут связаны, сообщается в number_of_concatenated_frame в ErrorProtectionSpecificConfig (), и выбор того, обрабатываются ли составные группы, принадлежащие тому же самому классу, как отдельный новый класс, или с независимым классом, с помощью сигнализации concatenate_flag [i] [j] (1 соответствует “отдельному новому одному классу”, а 0 – “независимому классу”).

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

3.8.4.5 CRC

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

1-битовый CRC1: x+1

2-битовый CRC2: х+х+1

3-битовый CRC3: х+х+1

4-битовый CRC4: х+х+х+х+1

5-битовый CRC5: х+х+х+х+1

6-битовый CRC6: х+х+х+х+х+х+х+1

7-битовый CRC7: х+х+х+х+1

8-битовый CRC8: х+х+х+х+1

9-битовый CRC9: х+х+х+х+х+х+х+1

10-битовый CRC10: х+х+х+х+х+х+х+1

11-битовый CRC11: х+х+х+х+х+х+х+1

12-битовый CRC12: х+х+х+х+х+х+х+1

13-битовый CRC13: х+х+х+х+х+х+х+х+х+х+1

14-битовый CRC14: х+х+х+х +х +х+х+1

15-битовый CRC15: х+х+х+х+х+х+х+х+х+х+1

16-разрядный CRC16: х+х+х+х+1

24-битовый CRC24: х+х+х+х+х+х+х+1

32-разрядный CRC32: х+х+х+х+х+х+х+х+х+х +х +х+х+х+х+х+х+х+х+х+1

С этими полиномами кодирование CRC выполняется следующим образом:

Вычисляется полином R(x), такой что

M(x)x = Q(x)G(x) + R(x)

М(х): Информационные биты. Самый высокий порядок соответствует первому биту, который будет передан

G(x): Образующий полином, определенный ранее

k: Число битов CRC.

С этим полиномом R(x), CRC биты W(х), представлены как:

W(х) = M(x)x + R(x)

Значение k должно быть выбрано так, чтобы число кодированных битов CRC не превышало 2k-1.

Биты CRC записываются в обратном порядке, каждый бит инвертирован. Используя эти биты CRC, декодер может выполнить обнаружение ошибок. Когда ошибка обнаружена через CRC, может быть применена ошибочная маскировка для уменьшения ухудшения качества, вызванного ошибкой. Метод маскировки ошибок зависит от алгоритмов MPEG-4 Аудио.

3.8.4.6 Систематические сверточные коды (SRCPC)

После CRC кодирования выполняется FEC кодирование с SRCPC кодами. В этом подразделе описывается процесс кодирования SRCPC.

Кодер канала основан на систематическом рекурсивном сверточном кодирования (SRC) со скоростью R=1/4. Кодированные классы CRC связаны и поступают в этот кодер. Так образуется RCPC код, скорость которого изменяется для каждого класса согласно ошибочной чувствительности.

3.8.4.6.1 Генерация SRC кода

Код SRC генерируется из рациональной порождающей матрицы при использовании петли обратной связи. Реализация сдвигового регистра кодера показана на рисунке 6.

Рисунок 6 – Реализация сдвигового регистра для систематического рекурсивного сверточного кодера

Рисунок 6 – Реализация сдвигового регистра для систематического рекурсивного сверточного кодера

Для получения выходных векторов в момент времени в момент времени необходимо знать содержимое сдвиговых регистров , , , , , (соответствует состоянию) и входной бит во время во время .

Получаем выход , , и

, , , , , ,

Наконец получаем для выходного вектора во время во время в зависимости от входного бита и текущего состояния и текущего состояния :

с

Начальное состояние всегда 0, то есть каждая ячейка памяти содержит 0 перед входом первого информационного бита .

3.8.4.6.2 Завершение кода SRC

В случае, если для кодированного SRC класс обозначен как окончание в termination_switch [i] в inErrorProtectionSpecificConfig (), или код SRC используется для защиты информации в полосе кодера SRC и должны добавить биты хвоста в конец этого класса и запустить следующее кодирование SRC с начальным состоянием, весь сдвиговый регистр кодера должен быть установлен в 0.

Хвостовые биты после информационной последовательности для возвращения в состояние для возвращения в состояние 0 (завершение) зависят от последнего состояния (состояние после входа последнего информационного бита (состояние после входа последнего информационного бита ). Завершающая последовательность для каждого состояния, описываемого , дана в таблице 57. Приемник может использовать эти хвостовые биты (ТВ) для дополнительного обнаружения ошибок.

Таблица 57 – Хвостовые биты для систематического рекурсивного сверточного кода

Состояние

0

0

0

0

0

0

0

0

0

1

0

0

0

1

1

1

0

1

2

0

0

1

0

1

0

1

0

3

0

0

1

1

0

1

1

1

4

0

1

0

0

0

1

0

0

5

0

1

0

1

1

0

0

1

6

0

1

1

0

1

1

1

0

7

0

1

1

1

0

0

1

1

8

1

0

0

0

1

0

0

0

9

1

0

0

1

0

1

0

1

10

1

0

1

0

0

0

1

0

11

1

0

1

1

1

1

1

1

12

1

1

0

0

1

1

0

0

13

1

1

0

1

0

0

0

1

14

1

1

1

0

0

1

1

0

15

1

1

1

1

1

0

1

1

Дополнение (,,,,,) к информационной последовательности может быть вычислено из следующего условия:

для всех от от

Далее, мы получаем для вектора хвостовых битов в зависимости от состояния в зависимости от состояния

Хвостовые биты для систематического рекурсивного сверточного кода приведены в таблице 57.

3.8.4.6.3 Использование SRC для кода SRCPC

Прореживание выхода кодера SRC позволяет использовать различные скорости для передачи. Таблицы прореживания перечислены в таблице 58.

Таблица 58 – Прореживающие таблицы (все значения в шестнадцатеричном представлении)

Нор-
ма

8/8

8/9

8/
10

8/
11

8/
12

8/
13

8/
14

8/
15

8/
16

8/
17

8/
18

8/
19

8/
20

8/
21

8/
22

8/
23

8/
24

8/
25

8/
26

8/
27

8/
28

8/
29

8/
30

8/
31

8/
32

(0)

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

(1)

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

(2)

00

00

00

00

00

00

00

00

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

FF

FF

FF

FF

FF

FF

FF

FF

(3)

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

Шаблон прореживания, который применяется с периодом 8, зависит от class_rate (см. таблицу 58). Каждый бит Pr(i) указывает, прорежен ли соответствующий символ vt(i) кодера SRC (то есть не рассмотрен). Каждый бит Pr(i) используется от MSB к LSB, и 0/1 указывает режим punctured/not-punctured соответственно. Шаблон прореживания изменяется от класса к классу, но только в пунктах, где период из 8 закончен. После решения о том, какие биты из vt(i) учитываются, они выводятся в порядке от vt(0) до vt(3).

3.8.4.6.4 Декодирование кода SRCPC

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

Декодирование SRCPC может быть выполнено при помощи алгоритма Витерби для сверточных кодов.

3.8.4.7 Сокращенные коды Рида-Соломона

Сокращенные коды Рида-Соломона SRS (255-l, 255-2k-l), определенные на GF(2), могут использоваться для защиты одного отдельного класса или нескольких составных классов. Составные классы впоследствии обрабатываются как один отдельный класс. Здесь k – число корректируемых ошибок в одном ключевом слове SRS. Значение l отражает сокращение.

Перед SRS кодированием, класс ЕР подразделяется на части таким образом, чтобы их длины были меньше или равны 255-2k. Длины частей вычисляются следующим образом:

255-2k, при i<N;

L mod (255-2k), при i = N;

: длина класса ЕР в октетах;

: число частей;

: длина i-ой части (0<i<: длина i-ой части (0<i<+1).

Если длина -ой части -ой части меньше, чем 255-2k байт, добавляется так много битов со значением 0, как требуется для того, чтобы достигнуть длины 255-2k байт перед SRS кодированием/декодированием, и в обратном порядке.

На стороне декодера, если выполняется декодирование SRS, то же самое число нулевых бит должно быть добавлено перед процедурой SRSdecoding, и удалено после SRS декодирования.

SRS код, определенный в поле Галуа GF(2), получен из образующего полинома ), получен из образующего полинома , где обозначает корень примитивного полинома обозначает корень примитивного полинома . Двоичное представление показано в таблице 59, где MSB октет следует первым.

Таблица 59 – Двоичное представление для (0<=i<=254) на GF(2 (0<=i<=254) на GF(2)

Двоичное представление

0

00000000

00000001

00000010

00000100

00001000

00010000

00100000

01000000

10000000

00011101

00111010

01110100

11101000

11001101

10000111

00010011

00100110

01001100

10011000

00101101

01011010

10110100

01110101

11101010

11001001

10001111

00000011

00000110

00001100

00011000

00110000

01100000

11000000

10011101

00100111

01001110

10011100

00100101

01001010

10010100

00110101

01101010

11010100

10110101

01110111

11101110

11000001

10011111

00100011

01000110

10001100

00000101

00001010

00010100

00101000

01010000

10100000

01011101

10111010

01101001

11010010

10111001

01101111

11011110

10100001

01011111

10111110

01100001

11000010

10011001

00101111

01011110

10111100

01100101

11001010

10001001

00001111

00011110

00111100

01111000

11110000

11111101

11100111

11010011

10111011

01101011

11010110

10110001

01111111

11111110

11100001

11011111

10100011

01011011

10110110

01110001

11100010

11011001

10101111

01000011

10000110

00010001

00100010

01000100

10001000

00001101

00011010

00110100

01101000

11010000

10111101

01100111

11001110

10000001

00011111

00111110

01111100

11111000

11101101

11000111

10010011

00111011

01110110

11101100

11000101

10010111

00110011

01100110

11001100

10000101

00010111

00101110

01011100

10111000

01101101

11011010

10101001

01001111

10011110

00100001

01000010

10000100

00010101

00101010

01010100

10101000

01001101

10011010

00101001

01010010

10100100

01010101

10101010

01001001

10010010

00111001

01110010

11100100

11010101

10110111

01110011

11100110

11010001

10111111

01100011

11000110

10010001

00111111

01111110

11111100

11100101

11010111

10110011

01111011

11110110

11110001

11111111

11100011

11011011

10101011

01001011

10010110

00110001

01100010

11000100

10010101

00110111

01101110

11011100

10100101

01010111

10101110

01000001

10000010

00011001

00110010

01100100

11001000

10001101

00000111

00001110

00011100

00111000

01110000

11100000

11011101

10100111

01010011

10100110

01010001

10100010

01011001

10110010

01111001

11110010

11111001

11101111

11000011

10011011

00101011

01010110

10101100

01000101

10001010

00001001

00010010

00100100

01001000

10010000

00111101

01111010

11110100

11110101

11110111

11110011

11111011

11101011

11001011

10001011

00001011

00010110

00101100

01011000

10110000

01111101

11111010

11101001

11001111

10000011

00011011

00110110

01101100

11011000

10101101

01000111

10001110

Для каждой из частей паритет SRS с полной длиной октетов вычисляется, используя вычисляется, используя следующим образом:

: полиномиальный представитель части. Низший порядок соответствует первому октету;

: полиномиальный представитель четности. Низший порядок соответствует первому октету.

Для хранения и передачи паритет добавляется в конце класса ЕР. Этот процесс показан на рисунке 7.

Рисунок 7 – Кодирование RS фрейма ЕР

Рисунок 7 – Кодирование RS фрейма ЕР

3.8.4.8 Рекурсивное чередование

Чередование применяется многоступенчатым способом. Рисунок 8 показывает метод чередования.

Рисунок 8 – Одна стадия чередования

Рисунок 8 – Одна стадия чередования

В многоступенчатом чередовании выход этой стадии чередования обрабатывается как незащищенная часть в следующей стадии. Рисунок 9 показывает пример 2 стадии чередований.

Рисунок 9 – Пример многоступенчатого чередования

Рисунок 9 – Пример многоступенчатого чередования

Путем выбора ширины матрицы чередования для получения одинаковой длины с длиной кода FEC (или значения 28 в случае кодов SRCPC) размер чередования может быть оптимизирован для всех FEC кодов.

В фактическом случае общее количество битов для чередования может не позволить использовать такой прямоугольник. В таком случае используется матрица, как показано на рисунке 10.

Рисунок 10 – Матрица чередования в непрямоугольном случае

Рисунок 10 – Матрица чередования в непрямоугольном случае

3.8.4.8.1 Определение рекурсивного чередования

Два информационных потока и и являются входами:

, , ;

, , ,

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

С шириной чередования размер матрицы чередования показан на рисунке 11.

Рисунок 11 – Размер матрицы чередования

указывает деление с округлением

Рисунок 11 – Размер матрицы чередования

Полезный выходной битовый поток ( () считывается с этой матрицы сверху вниз и слева направо в горизонтальном направлении. Таким образом бит, расположенный в m-ом столбце и n-ой строке ( и и начинаются с 0) соответствует , где:

k = m * D + min(m, d) + n

В матрице установлен в

m = i mod W, n = i/W.

Таким образом , который установлен , который установлен , становится:

, где k = (i mod W) * D + min (i mod W, d) + i/W

Биты, которые установлены c в матрице чередования, показаны на рисунке 12:

Рисунок 12 – Биты, установленные c X (i) в матрице чередования

Рисунок 12 – Биты, установленные c в матрице чередования

Таким образом в m-ой строке установлен из n-ой строки, где n = D’ + (m <d’ ? 1: 0) к основанию. Таким образом установлен из n-ой строки, где n = D’ + (m <d’ ? 1: 0) к основанию. Таким образом , установленный , представлен следующим образом:

3.8.4.8.2 Режимы чередования

Два режима чередования, режим 1 и режим 2, в соответствии с interleave_type 1 и 2, определены в следующих выражениях. Таблица 60 и таблица 61 дают краткий обзор доступных конфигураций.

Таблица 60 – Ширина матрицы чередования

interleave_type

fec_type == 0 (SRCPC)

fec_type ==1/2 (SRS)

0

Чередование отсутствует

1

28 бит

Длина класса

2

Зависит от переключения чередования (см. таблицу 61)

3

Зарезервировано

Таблица 61 – Ширина матрицы чередования для interleave_type 2

interleave_switch

fec_type ==0 (SRCPC)

fec_type ==1 /2 (SRS)

0

Чередование отсутствует

1

Длина класса

Длина класса

2

28 бит

Не разрешено

3

Конкатенация

В случае fec_type=0 (SRCPC) чередование выполняется побитно. В случае fec_type == 1 или fec_ type == 2 (SRS) чередование выполняется побайтно.

3.8.4.8.2.1 Чередование в режиме 1

Многоступенчатое чередование используется для ep_encoded_class от последнего класса до первого класса, когда биты наполнения добавлены после чередованных классов. Процесс чередования продолжает атрибутивную часть класса ep_header () (который является class_attrib () + class_attrib_parity) и предопределенную часть ep_header () (который является choice_of_pred + choice_of_pred_parity), как показано на рисунке 13.

Рисунок 13 – Матрица чередования в случае RS класса

Рисунок 13 – Матрица чередования в случае RS класса

Ширина матрицы чередования выбирается согласно используемому FEC. В случае SRCPC кодирования (fec_type == 0) ширина матрицы чередования составляет 28 битов. В случае SRS кодирования (fec_type == 1 или 2) ширина матрицы чередования равна длине класса в байтах. Биты в классе записываются в матрицу чередований байтов для каждого столбца.

Ширина матрицы чередования для частей заголовка либо равна длине ключевого слова (в битах), предоставленной блочным кодом согласно таблице 61, или 28 битам, если используется SRCPC.

3.8.4.8.2.2 Чередование в режиме 2

В режиме 2 флаг указывает, обработан ли класс с чередованием, и как именно. Об этом флаге interleave_switch сообщается в пределах полосы. Значение 0 указывает, что класс не обработан с чередованием. Значение 1 указывает, что класс чередован рекурсивно и длина класса используется как ширина чередования (или длина в битах в случае SRCPC, или длина в байтах в случае SRS). Значение 2 указывает, что класс чередован рекурсивно и ширина должна быть равной 28 (разрешено только в случае SRCPC). Значение 3 указывает, что класс связан, но не чередован рекурсивно. Операция чередования для ep_header аналогична режиму 1.

Рисунок 13 показывает схему чередования для fec_type == 1 или 2 (SRS) и interleave_switch == 1. Ширина должна быть числом байтов в классе. Биты в классе записываются в матрицу чередований байтов для каждого столбца.

Процесс чередования для получения interleaved_frame_mode2 описывается следующим образом (N: число классов):

3.8.4.9 Упорядочивание классов

Инструмент ЕР позволяет переупорядочивать классы так, что нет необходимости привязываться к порядку предоставленному/требуемому звуковым кодеком. Порядок классов после переупорядочения сигнализируется как class_output_order [i] [j] в полосе. Декодер ЕР переупорядочивает классы во фрейме ЕР, используя i-ый предопределенный набор, так чтобы j-ый класс фрейма ЕР был направлен как (class_output_order [i] [j])-ый класс к звуковому декодеру.

Приложение А (справочное). Форматы обмена аудиофайлами

Приложение А
(справочное)

А.1 Введение

Полные возможности и гибкость MPEG-4 Аудио, такие как композиция звуковых сцен из множественных звуковых объектов, синтезированный звук и преобразование текста в речь, доступны, только если MPEG-4 Аудио используется вместе с MPEG-4 Системы. Форматы обмена, определенные здесь в приложении А, поддерживают лишь небольшое подмножество возможностей MPEG-4 Аудио, определяя форматы для хранения и передачи отдельных моно, стерео или многоканальных звуковых объектов, схожих с форматами, определенным в MPEG-1 и MPEG-2.

Нормативные элементы в MPEG-4 Аудио заканчиваются определением полезных нагрузок (примерные эквиваленты фреймам потока битов в MPEG-1 и MPEG-2) и структурами конфигурации кодера (напоминающими MPEG-1/2 информацию заголовка). Однако нет никакого нормативного определения MPEG-4 Аудио относительно того, как эти элементы мультиплексируются, поскольку это требуется только для ограниченного числа приложений. Однако это информативное приложение описывает такое мультиплексирование. Тем не менее декодеры MPEG-4 не обязательно должны иметь эти форматы интерфейса.

А.2 Форматы обмена ААС

А.2.1 Синтаксис

А.2.1.1 ААС MPEG-2 Audio_Data_lnterchange_Format, ADIF (таблицы А.1, А.2, А.3, А.4, А.5).

Таблица А.1 – Синтаксис adif_sequence

Таблица А.2 – Синтаксис adif_header ()

Таблица А.3 – Синтаксис raw_data_stream ()

Таблица А.4 – Синтаксис adts_sequence ()

Таблица А.5 – Синтаксис adts_frame ()

А.2.1.2 Фиксированный заголовок ADTS (таблица А.6).

Таблица А.6 – Синтаксис adts_fixed_header ()

А.2.1.2.1 Переменный заголовок ADTS (таблица А.7).

Таблица А.7 – Синтаксис adts_variable_header ()

А.2.1.2.2 Обнаружение ошибок (таблицы А.8, А.9, А.10).

Таблица А.8 – Синтаксис adts_error_check

Таблица А.9 – Синтаксис adts_header_error_check

Таблица А.10 – Синтаксис adts_raw_data_block_error_check ()

А.3 Семантика

А.3.1 Краткий обзор

raw_data_block () содержит все данные, которые относятся к звуку (включая вспомогательные данные). Кроме того, дополнительная информация, такая как sampling_frequency, необходима для полного описания звуковой последовательности. Формат обмена звуковыми данными (ADIF) содержит все элементы, которые необходимы для описания потока битов согласно этому стандарту.

Для определенных приложений некоторые или все элементы синтаксиса, определенные в заголовке ADIF, например sampling_rate, могут быть известны декодеру за счет других средств и, следовательно, не появляться в потоке битов.

Кроме того, может потребоваться дополнительная информация, которая изменяется от блока к блоку (например, чтобы увеличить читаемость данных или устойчивость к ошибкам). Следовательно, транспортные потоки могут быть разработаны для определенного приложения и не определены в этом стандарте. Однако один ненормативный транспортный поток, названный Транспортным Потоком Звуковых Данных (ADTS), описан. Он может использоваться для приложений, в которых декодер может анализировать этот поток.

А.3.2 Формат обмена звуковыми данными (ADIF)

raw_data_stream () – последовательность raw_data_block () блоков.

program_config_element () содержит информацию о конфигурации для одной программы.

А.3.3 Транспортный поток звуковых данных (ADTS)

ID – идентификатор MPEG установлен в ‘1’, если звуковые данные в потоке ADTSAAC MPEG-2 и в ‘0’, если звуковые данные – MPEG-4.

profile_ObjectType – интерпретация этого элемента данных зависит от значения бита идентификатора. Если идентификатор равен ‘1’, эта область содержит ту же самую информацию, что и область конфигурации в потоке ADTS. Если идентификатор равен ‘0’, этот элемент обозначает тип объекта MPEG-4 Аудио (profile_ObjectType+1).

sampling_frequency_index указывает частоту дискретизации, используемую согласно таблице 17. Значение escape не разрешено.

channel_configuration указывает используемую конфигурацию каналов. В случае (channel_configuration> 0) конфигурация каналов дается в таблице 18. В случае (channel_configuration == 0) конфигурация каналов не определена в заголовке и задается следующим образом:

MPEG-2/4 ADTS – отдельный program_config_element (), являющийся первым синтаксическим элементом в первом raw_data_block () после заголовка; определяет конфигурацию канала. Элемент program_config_element () может не присутствовать во всех фреймах. Декодер MPEG-4 ADTS не должен генерировать выходные данные, пока он не получит program_config_element (), в то время как декодер MPEG-2 ADTS может принять неявную конфигурацию канала.

MPEG-2 ADTS: Помимо использования program_config_element (), конфигурация каналов может предполагаться неявной или может быть известна в приложении.

Приложение Б (справочное). Инструмент защиты от ошибок

Приложение Б
(справочное)

Ниже представлены формат текстового файла внутриполосной информации и его пример для AAC, Twin-VQ, CELP и HVXC. Кроме того, представлен пример маскировки ошибок.

Б.1 Пример внутриполосной информации

Б.1.1 Пример для ААС

Этот пример основан на категориях чувствительности к ошибкам, описанным в нормативной части. Нижеследующая защита от ошибок может использоваться при соответствии категорий чувствительности классам. Этот пример показывает использование простого режима с одним каналом и без extension_payload ():

Класс

Длина

Чередование

SRCPC puncture rate

Длина CRC

0

6 бит

Внутрикадровое

8/24

6

1

12 бит

Внутрикадровое

8/24

6

2

9 бит

Внутрикадровое

8/8

6

3

9 бит

8/8

4

4

До конца

Внутрикадровое

8/8

Б.1.2 Пример для Twin-VQ

Ниже описываются примеры назначения битов UEP профилю масштабируемого звука (объект TwinVQ).

Имеется два режима кодирования: с и без РРС (Периодический Пиковый Компонент). Обычно кодер может адаптивно выбирать РРС, но в данном случае необходимо всегда поддерживать режим “вкл/выкл”. Если РРС включен, то 43 бита выделятся для квантования периодических пиковых компонент, и эти биты должны быть защищены как служебная информация.

Для каждого режима показано распределение четырех различных скоростей передачи, 16 кбит/с моно, 32 кбит/с стерео, 8 кбит/с + 8 кбит/с масштабируемого моно и 16 кбит/с + 16 кбит/с стерео для каждого режима.

Во всех случаях коррекция ошибок и инструменты обнаружения применяются только к 10% битов для служебной информации. У оставшихся битов для индексов коэффициентов МДКП нет никакой защиты вообще. В результате такого распределения битов скорость передачи увеличивается по сравнению с оригинальной исходной скоростью приблизительно на 10% в случае включения РРС и менее чем 10% в случае выключения РРС.

а) РРС (Периодический Пиковый Компонент) включен

16 кбит/с моно:

Класс 1: 121 бит (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 839 битов (фиксирован), код SRCPC 8/8, CRC нет

32 кбит/с стерео:

Класс 1: 238 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 1682 бита (фиксирован), код SRCPC 8/8, CRC нет

8 кбит/с + 8 кбит/с масштабируемое моно:

Класс 1: 121 бит (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 359 битов (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 72 бита (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 4: 408 битов (фиксирован), код SRCPC 8/8, CRC нет

16 кбит/с + 16 кбит/с масштабируемое стерео

Класс 1: 238 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 722 бита (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 146 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 4: 814 битов (фиксирован), код SRCPC 8/8, CRC нет

б) РРС отключен

16 кбит/с моно:

Класс 1: 78 битов (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 882 бита (фиксирован), код SRCPC 8/8, CRC нет

32 кбит/с стерео:

Класс 1: 152 бита (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 1768 битов (фиксирован), код SRCPC 8/8, CRC нет

8 кбит/с + 8 кбит/с масштабируемое моно:

Класс 1: 78 битов (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 402 бита (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 72 бита (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 4: 408 битов (фиксирован), код SRCPC 8/8, CRC нет

16 кбит/с +16 кбит/с масштабируемое стерео

Класс 1: 152 бита (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 808 битов (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 146 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 4: 814 битов (фиксирован), код SRCPC 8/8, CRC нет

Б.1.3 Пример для CELP

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

Б.1.3.1 Режим узкополосный МРЕ

Краткий обзор выделения битов для узкополосного МРЕ:

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

4

154

3850

6

13

20

37

78

1

4

170

4250

6

13

20

41

90

2

4

186

4650

6

13

20

45

102

3

3

147

4900

5

11

16

36

79

4

3

156

5200

5

11

16

39

85

5

3

165

5500

5

11

16

42

91

6

2

114

5700

4

9

12

29

60

7

2

120

6000

4

9

12

31

64

8

2

126

6300

4

9

12

33

68

9

2

132

6600

4

9

12

35

72

10

2

138

6900

4

9

12

37

76

11

2

142

7100

4

9

12

39

78

12

2

146

7300

4

9

12

41

80

13

4

154

7700

6

13

20

41

74

14

4

166

8300

6

13

20

45

82

15

4

174

8700

6

13

20

49

86

16

4

182

9100

6

13

20

53

90

17

4

190

9500

6

13

20

57

94

18

4

198

9900

6

13

20

61

98

19

4

206

10300

6

13

20

65

102

20

4

210

10500

6

13

20

69

102

21

4

214

10700

6

13

20

73

102

22

2

110

11000

4

9

12

33

52

23

2

114

11400

4

9

12

35

54

24

2

118

11800

4

9

12

37

56

25

2

120

12000

4

9

12

39

56

26

2

122

12200

4

9

12

41

56

27

4

186

6200

6

13

20

49

98

28

Зарезервировано

29

Зарезервировано

30

Зарезервировано

31

Зарезервировано

Б.1.3.2 Режим широкополосный МРЕ

Краткий обзор выделения битов для широкополосного МРЕ

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

4

218

10900

17

20

27

45

109

1

4

230

11500

17

20

27

49

117

2

4

242

12100

17

20

27

53

125

3

4

254

12700

17

20

27

57

133

4

4

266

13300

17

20

27

61

141

5

4

278

13900

17

20

27

65

149

6

4

286

14300

17

20

27

69

153

7

Зарезервировано

8

8

294

14700

17

32

43

61

141

9

8

318

15900

17

32

43

69

157

10

8

342

17100

17

32

43

77

173

11

8

358

17900

17

32

43

85

181

12

8

374

18700

17

32

43

93

189

13

8

390

19500

17

32

43

101

197

14

8

406

20300

17

32

43

109

205

15

8

422

21100

17

32

43

117

213

16

2

136

13600

17

14

19

29

57

17

2

142

14200

17

14

19

31

61

18

2

148

14800

17

14

19

33

65

19

2

154

15400

17

14

19

35

69

20

2

160

16000

17

14

19

37

73

21

2

166

16600

17

14

19

39

77

22

2

170

17000

17

14

19

41

79

23

Зарезервировано

24

4

174

17400

17

20

27

37

73

25

4

186

18600

17

20

27

41

81

26

4

198

19800

17

20

27

45

89

27

4

206

20600

17

20

27

49

93

28

4

214

21400

17

20

27

53

97

29

4

222

22200

17

20

27

57

101

30

4

230

23000

17

20

27

61

105

31

4

238

23800

17

20

27

65

109

Б.1.3.3 Режим широкополосный RPE

Характеристические параметры для широкополосного CELP c RPE

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

6

216

14400

40

24

34

25

93

1

4

160

16000

32

18

26

21

63

2

8

280

18667

48

30

42

29

131

3

10

338

22533

56

36

50

33

163

Б.1.4 Пример для HVXC

кодер 2 кбит/с:

Класс 1: 22 бита (фиксирован), код SRCPC 8/16, 6 битов CRC

Класс 2: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 3: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 10 битов (фиксирован), код SRCPC 8/8, CRC нет

кодер 4 кбит/с:

Класс 1: 33 бита (фиксирован), код SRCPC 8/16, 6 битов CRC

Класс 2: 22 бита (фиксирован), код SRCPC 8/8, 6 битов CRC

Класс 3: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 17 битов (фиксирован), код SRCPC 8/8, CRC нет

Б.1.5 Пример для ER BSAC

Этот подраздел описывает примеры распределения битов неравной защиты от ошибок (UEP) типу объекта ER BSAC.

Категория низкой чувствительности к ошибкам (ESC) указывает класс с более высокой чувствительностью к ошибкам, тогда как более высокий ESC указывает класс с меньшей чувствительностью. Следующий пример основан на категориях чувствительности к ошибкам BSAC. Этот пример соответствует простой настройке, где категории чувствительности соответствуют классам.

Класс

Категория

Длина, бит

Чередование

SRCPC puncture rate

Длина CRC

0

0

9

Внутрикадровое

8/24

6

1

Другое

11

8/8

В этом примере инструменты коррекции и обнаружения ошибок применяются только к общей служебной информации. У оставшихся битов для индекса коэффициентов МДКП нет никакой защиты. В результате такого распределения битов скорость передачи увеличивается приблизительно на 10% по сравнению с оригинальной исходной скоростью.

Б.2 Пример маскировки ошибок

Инструмент маскировки ошибок – дополнительный инструмент декодера для уменьшения ухудшения качества декодированных сигналов, когда полезный битовый поток ввода декодера затронут ошибками, такими как ошибка передачи полезного битового потока. Это особенно эффективно в случае использования инструментов MPEG-4 Аудио в радио приложениях. Обнаружение ошибок и решающий метод для замены фрейма не определены в этом подразделе и зависят от конкретного приложения.

Б.2.1 Пример для CELP

Б.2.1.1 Краткий обзор инструмента маскировки ошибок

Инструмент маскировки ошибок используется с декодером MPEG-4 CELP. Этот инструмент уменьшает неприятный шум, возникающий в результате обработки декодером MPEG-4 CELP ошибочных данных фрейма. Также CELP MPEG-4 используется для декодирования речи даже в том случае, если входные данные фрейма потеряны.

У инструмента есть два операционных режима: режим битовых ошибок (BE) и режим стирания фрейма (FE). Режимы переключаются на основании пригодности данных фрейма в декодере. Когда данные фрейма доступны (режим BE), декодирование выполняется с использованием данных прошлых фреймов и годных данных текущего фрейма. Когда данные фрейма не доступны (режим FE), декодер генерирует речь, используя только данные прошлых фреймов.

Этот инструмент работает в режиме кодирования II, который использует режимы узкой полосы, широкой полосы и масштабируемые режимы, которые поддерживают МРЕ на частотах дискретизации 8 и 16 кГц.

Б.2.1.2 Определения

BE: Ошибочный бит

BWS: Масштабируемая ширина полосы

FE: Стирание фрейма

LP: Линейное предсказание

LSP: Линейная спектральная пара

МРЕ: Мультиимпульсное возбуждение

NB: Узкая полоса

RMS: Среднеквадратичное значение (энергия фрейма)

WB: Широкая полоса

Б.2.1.3 Вспомогательные переменные

frame_size: количество отсчетов во фрейме

g_ас: адаптивная кодовая книга

g_ес: уровень МРЕ

lpc_order: порядок LP

signal_mode: речевой режим

signal_mode_pre: речевой режим предыдущего фрейма

Б.2.1.4 Спецификация инструмента маскировки ошибок

Инструмент маскировки ошибок основан на модели перехода с шестью состояниями, изображенными на рисунке Б.1. Состояние соответствует качеству канала передачи. Чем больше номер состояния, тем хуже качество канала передачи. В каждом состоянии используется своя маскировка. Начальное состояние при декодировании – 0, передача состояния происходит с помощью флага BF_flag. Каждая операция маскировки описана в следующих подразделах.

Рисунок Б.1 – Модель перехода между состояниями для управления маскировкой ошибок

Рисунок Б.1 – Модель перехода между состояниями для управления маскировкой ошибок

Б.2.1.4.1 Операции в состояниях 0 и 5

Процесс декодирования идентичен тому, что используется в декодере MPEG-4 CELP за следующими исключениями относительно адаптивной кодовой книги:

В состоянии 0 после состояния 5, и в состоянии 5:

1) для первых 80 отсчетов во фрейме (и после), где BF_flag сменился от 1 к 0, уровни g_ас и g_ес вычисляются по уровням g_ас’ и g_ес’, декодированных из текущих данных фрейма следующим образом:

2) для 160 отсчетов, которые следуют за первыми 80 отсчетами, уровни вычисляются как:

где эти операции продолжаются самое большее четыре подфрейма.

Б.2.1.4.2 Операции в состояниях 1, 2, 3 и 4

Процесс декодирования идентичен тому, который применяется в декодере MPEG-4 CELP за исключениями, описанными в следующих подразделах.

Б.2.1.4.2.1 Режим Речь

Б.2.1.4.2.1.1 Режим FE

Речевой режим (signal_mode) декодируется по данным предыдущего фрейма.

Б.2.1.4.2.1.2 Режим BE

Речевой режим (signal_mode) декодируется по данным текущего фрейма для сигнала _mode_pre=0 или 1. Иначе используется режим декодирования по данным предыдущего фрейма.

Б.2.1.4.2.2 Режим МРЕ

Б.2.1.4.2.2.1 Режим FE

МРЕ декодируется поданным фрейма, сгенерированным случайным образом.

Б.2.1.4.2.2.2 Режим BE

МРЕ декодируется по данным текущего фрейма.

Б.2.1.4.2.3 RMS

Для состояний от 1 до , RMS в последнем подфрейме предыдущего фрейма используется после аттенюации в первом подфрейме текущего фрейма. В последующих подфреймах RMS в предыдущем подфрейме используется после аттенюации. Уровень аттенюации , RMS в последнем подфрейме предыдущего фрейма используется после аттенюации в первом подфрейме текущего фрейма. В последующих подфреймах RMS в предыдущем подфрейме используется после аттенюации. Уровень аттенюации зависит от состояния следующим образом:

0,4 дБ, для состояний 1… 0,4 дБ, для состояний 1…

1,2 дБ, для состояний 1,2 дБ, для состояний +1, …,

где – наименьшее значение из 4 и – наименьшее значение из 4 и , а – наибольшее целое, удовлетворяющее frame_size х – наибольшее целое, удовлетворяющее frame_size х <= 320.

Б.2.1.4.2.4 LSP

Используются LSP, декодированные в предыдущем фрейме. В режиме BWS векторы LSP должны быть буферизованы для межфреймового предсказания. Однако, когда данные фреймы повреждены или потеряны, правильный вектор не может быть получен. Поэтому буферизированный вектор (blsp [0] []) оценивается по LSP (qlsp_ pre []) предыдущего фрейма, а предсказанный LSP (vec_hat []) и коэффициент предсказания (сb [0] []) в текущем фрейме следующие:

Б.2.1.4.2.5 Задержка адаптивной кодовой книги

Б.2.1.4.2.5.1 Режим FE

Все задержки адаптивной кодовой книги декодируются по индексу задержки, полученному в последнем подфрейме предыдущего фрейма.

Б.2.1.4.2.5.2 Режим BE

1) когда signal_mode_pre=0, задержки декодируются по данным текущего фрейма.

2) когда signal_mode_pre=1 и максимальное различие между индексами задержки смежных подфреймов во фрейме меньше чем 10, задержки декодируются по индексам задержки в текущем фрейме. В каждом подфрейме, где различие в индексах задержки между текущим и предыдущими подфреймами равно или больше 10, задержка декодируется по индексу предыдущего подфрейма.

3) когда signal_mode_pre = 2 или 3, задержка декодируется по индексу последнего подфрейма предыдущего фрейма.

Б.2.1.4.2.6 Усиления

Б.2.1.4.2.6.1 Операция индексирования

Б.2.1.4.2.6.1.1 Режим FE

Все усиления имеют одинаковое значение, которое декодируется по индексу усиления, полученному в последнем подфрейме предыдущего фрейма.

Б.2.1.4.2.6.1.2 Режим BE

Усиление декодируется по данным текущего фрейма.

Б.2.1.4.2.6.2 Операция подстройки

Б.2.1.4.2.6.2.1 Режим FE

1) когда signal_mode_pre=0, усиления g_ас’ и g_ес’ декодируются по данным текущего фрейма. Усиления g_ас и g_ес получаются умножением g_ас’ на 0,5 и g_ес’ на X соответственно. X удовлетворяет следующему уравнению и вычисляется в каждом подфрейме:

2) Когда signal_mode_pre=1, усиление декодируется по данным текущего фрейма.

3) Когда signal_mode_pre=2 или 3, усиление для первых 320 отсчетов в или после фрейма, где BF_flag изменен от 0 к 1, вычисляются как:

Б.2.1.4.2.6.2.2 Режим BE

1) Когда signal_mode_pre=0 или 1, усиления вычисляются, используя усиления g_ас’ и g_ec’, декодированные по данным текущего фрейма и усилениям g_ас_pre и g_ес_pre предыдущего подфрейма так, чтобы расчетное значение усилений было в нормальном диапазоне и не генерировало неприятного шума следующим образом:

2) Когда signal_mode_pre=2 или 3, операция идентична той, что используется для signal_mode_pre=2 или 3 в режиме FE.

Б.2.2 Маскировка ошибок для инструмента сжатия тишины

Во фреймах, где полезный битовый поток, полученный в декодере, поврежден или потерян из-за ошибок при передаче, выполняется маскировка ошибок. Когда получен TX_flag 1, процесс декодирования идентичен тому, который применяется для CELP MPEG-4. Для TX_flag=0, 2 или 3 используется процесс декодирования для TX_flag=0.

Б.3 Пример настройки инструмента ЕР и маскировки ошибок для HVXC

Этот подраздел описывает один пример реализации инструмента защиты от ошибок (ЕР) и метода маскировки ошибок для HVXC. Некоторые из перцепционно важных битов защищены FEC схемой, а некоторые проверены с помощью CRC для принятия решения о том, включены ли ошибочные биты. Когда возникает ошибка CRC, выполняется маскировка ошибок для уменьшения заметного ухудшения звучания.

Метод исправления ошибок и настройка инструмента ЕР, а также алгоритм маскировки ошибок, описанные ниже, являются лишь одним примером, и они должны быть изменены в зависимости от фактических условий канала.

Б.3.1 Определения

2/4 кбит/с общие параметры:

LSP1

Индекс 1 LSP

(5 битов)

LSP2

Индекс 2 LSP

(7 битов)

LSP3

Индекс 3 LSP

(5 битов)

LSP4

Индекс 4 LSP

(1 бит)

VUV

Флаг речевой, неречевой

(2 бита)

Pitch

Параметр шага

(7 битов)

SE_shape1

Индекс спектра 0

(4 бита)

SE_shape2

Индекс спектра 1

(4 бита)

SE_gain

Индекс усиления спектра

(5 битов)

VX_shape1[0]

Индекс 0 стохастической книги шифров

(6 битов)

VX_shape1[1]

Индекс 1 стохастической книги шифров

(6 битов)

VX_gain1[0]

Индекс 0 книги шифров усиления

(4 бита)

VX_gain1[1]

Индекс 1 книги шифров усиления

(4 бита)

параметры 4 кбит/с

только:

LSP5

Индекс 5 LSP

(8 битов)

SE_shape3

Индекс 0 спектра

(7 битов)

SE_shape4

Индекс 1 спектра

(10 битов)

SE_shape5

Индекс 2 спектра

(9 битов)

SE_shape6

Индекс 3 спектра

(6 битов)

VX_shape2[0]

Индекс 0 стохастической книги шифров

(5 битов)

VX_shape2[1]

Индекс 1 стохастической книги шифров

(5 битов)

VX_shape2[2]

Индекс 2 стохастической книги шифров

(5 битов)

VX_shape2[3]

Индекс 3 стохастической книги шифров

(5 битов)

VX_gain2[0]

Индекс 0 книги шифров усиления

(3 бита)

VX_gain2[1]

Индекс 1 книги шифров усиления

(3 бита)

VX_gain2[2]

Индекс 2 книги шифров усиления

(3 бита)

VX_gain2[3]

Индекс 3 книги шифров усиления

(3 бита)

Б.3.2 Канальное кодирование

Б.3.2.1 Выбор защищаемых битов

Согласно чувствительности битов, кодированные биты относятся к нескольким классам. Число битов для каждого класса дано в таблице Б.1, таблице Б.2 (2 кбит/с), таблице Б.3 и таблице Б.4 (4 кбит/с). Как пример, показаны режимы для скоростей 3,5 кбит/с (для 2 кбит/с) и 6,2 кбит/с (для 4 кбит/с). В этих случаях два исходных фрейма кодера обрабатываются как один набор. Суффикс “р” означает предыдущий фрейм, а “с” означает текущий.

Для режима 3,5 кбит/с используются 6 классов. Проверка CRC применяется для битов классов I, II, III, IV и V. Биты класса VI не проверяются CRC.

Таблица Б.1 дает распределение защищенных/незащищенных битов (классы I…VI) в случае, когда предыдущие и текущие фреймы известны.

Таблица Б.1 – Количество защищенных/незащищенных битов при 3,5 кбит/с

Параметры

Речевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Итого

LSP1p/c

5/5

10

LSP2p/c

2/2

5/5

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

VUVp/c

2/2

4

Pitchp/c

6/6

1/1

14

SE_gainp/c

5/5

10

SE_shape1p

4

4

SE_shape1c

4

4

SE_shape2p

4

4

SE_shape2c

4

4

Итого

44

4

4

4

4

20

80

Таблица Б.2 дает распределение защищенных/незащищеных битов (классы I…VI) в случае, когда предыдущий и текущий фреймы неизвестны.

Таблица Б.2 – Количество защищенных/незащищенных битов при 3,5 кбит/с

Параметры

Неречевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

2/2

3/3

10

LSP4p/c

1/1

2

VUVp/c

2/2

4

VX_gain1[0]p/c

4/4

8

VX_gain1[1]p/c

4/4

8

VX_shape1[0]p/

6/6

12

VX_shape1[1]p/

6/6

12

Итого

44

0

0

0

0

36

80

Когда предыдущий фрейм неизвестен, а текущий фрейм известен, или когда предыдущий фрейм известен, а текущий фрейм неизвестен, то же самое распределение защищенных/незащищенных битов используется, как показано выше.

Для режима 6,2 кбит/с используются 7 классов. Проверка CRC выполняется для битов классов I, II, III, IV, V и VI. Биты класса VII не проверяются CRC.

Таблица Б.3 – Количество защищенных/незащищенных битов при 6,2 кбит/с

Параметры

Речевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Битов класса VII

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

LSP5p/c

1/1

7/7

16

VUVp/c

2/2

4

Pitchp/c

6/6

1/1

14

SE_gainp/c

5/5

10

SE_shape1p

4

4

SE_shape1с

4

4

SE_shape2p

4

4

SE_shape2c

4

4

SE_shape3p/c

5/5

2/2

14

SE_shape4p/c

1/1

9/9

20

SE_shape5p/c

1/1

8/8

18

SE_shape6p/c

1/1

5/5

12

Итого

66

44

4

4

4

4

34

160

Таблица Б.4 дает распределение защищенных/незащищеных битов (классы I…VII) в случае, когда предыдущий и текущий фреймы неизвестны.

Таблица Б.4 – Количество защищенных/незащищенных битов при 6,2 кбит/с.

Параметры

Неречевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Битов класса VII

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

LSP5p/c

1/1

7/7

16

VUVp/c

2/2

4

VX_gain1[0]p/c

4/4

8

VX_gain1[1]p/c

4/4

8

VX_shape1[0]p/

6/6

12

VX_shape1[1]p/

6/6

12

VX_gain2[0]p/c

3/3

6

VX_gain2[1]p/c

3/3

6

VX_gain2[2]p/c

3/3

6

VX_gain2[3]p/c

2/2

1/1

6

VX_shape2[0]p/

5/5

10

VX_shape2[1]p/

5/5

10

VX_shape2[2]p/

5/5

10

VX_shape2[3]p/

5/5

10

Итого

66

0

0

0

0

0

94

160

Когда предыдущий фрейм неизвестен, а текущий фрейм известен, или когда предыдущий фрейм известен, а текущий фрейм неизвестен, то же самое распределение защищенных/незащищенных битов используется, как показано выше.

Порядок битов для входа UEP показан в таблицах Б.5-Б.8 (для 2 кбит/с) и Б.9-Б.12 (для 4 кбит/с). Эти таблицы показывают порядок битов относительно каждой из комбинаций условия V/UV для 2 фреймов. Например, если предыдущий фрейм известен, а текущий фрейм находится в режиме 2 кбит/с, используется таблица Б.8. Порядок битов организован согласно чувствительности к ошибкам. Столбец “Биты” обозначает индекс бита параметра. “0” – младший бит.

Таблица Б.5 – Порядок бит 2 кбит/с (известный фрейм – известный фрейм)

Речевой фрейм – речевой фрейм

Номер

Пункт

Биты

Class/Bit

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP3p

4

21

LSP2p

5

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

SE_gainc

4

26

SE_gainc

3

27

SE_gainc

2

28

SE_gainc

1

29

SE_gainc

0

30

LSP1c

4

31

LSP1c

3

32

LSP1c

2

33

LSP1c

1

34

LSP1c

0

35

Pitchc

6

36

Pitchc

5

37

Pitchc

4

38

Pitchc

3

39

Pitchc

2

40

Pitchc

1

41

LSP2c

6

42

LSP3c

4

43

LSP2c

5

Class II Bit

44

SE_shape1p

3

45

SE_shape1p

2

46

SE_shape1p

1

47

SE_shape1p

0

Class III Bit

48

SE_shape2p

3

49

SE_shape2p

2

50

SE_shape2p

1

51

SE_shape2p

0

Class IV Bit

52

SE_shape1с

3

53

SE_shape1с

2

54

SE_shape1c

1

55

SE_shape1c

0

Class V Bit

56

SE_shape2c

3

57

SE_shape2c

2

58

SE_shape2c

1

59

SE_shape2c

0

Class VI Bit

60

LSP2p

4

61

LSP2p

3

62

LSP2p

2

63

LSP2p

1

64

LSP2p

0

65

LSP3p

3

66

LSP3p

2

67

LSP3p

1

68

LSP3p

0

69

Pitchp

0

70

LSP2c

4

71

LSP2c

3

72

LSP2c

2

73

LSP2c

1

74

LSP2c

0

75

LSP3c

3

76

LSP3c

2

77

LSP3c

1

78

LSP3c

0

79

Pitchc

0

Таблица Б.6 – Порядок бит 2 кбит/с (известный фрейм – неизвестный фрейм)

Речевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP3p

4

21

LSP2p

5

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

VX_gain1[0]c

3

26

VX_gain1[0]c

2

27

VX_gain1[0]c

1

28

VX_gain1[0]c

0

29

VX_gain1[1]c

3

30

VX_gain1[1]c

2

31

VX_gain1[1]c

1

32

VX_gain1[1]c

0

33

LSP1c

4

34

LSP1c

3

35

LSP1c

2

36

LSP1c

1

37

LSP1c

0

38

LSP2c

6

39

LSP2c

5

40

LSP2c

4

41

LSP2c

3

42

LSP3c

4

43

LSP3c

3

Класс II

44

SE_shape1p

3

45

SE_shape1p

2

46

SE_shape1p

1

47

SE_shape1p

0

Класс III

48

SE_shape2p

3

49

SE_shape2p

2

50

SE_shape2p

1

51

SE_shape2p

0

Класс IV

52

LSP2c

2

53

LSP2c

1

54

LSP2c

0

55

LSP3c

2

Класс V

56

LSP3c

1

57

LSP3c

0

58

VX_shape1[0]c

5

59

VX_shape1[0]c

4

Класс VI

60

LSP2p

4

61

LSP2p

3

62

LSP2p

2

63

LSP2p

1

64

LSP2p

0

65

LSP3p

3

66

LSP3p

2

67

LSP3p

1

68

LSP3p

0

69

Pitchp

0

70

VX_shape1[0]c

3

71

VX_shape1[0]c

2

72

VX_shape1[0]c

1

73

VX_shape1[0]c

0

74

VX_shape1[1]c

5

75

VX_shape1[1]c

4

76

VX_shape1[1]c

3

77

VX_shape1[1]c

2

78

VX_shape1[1]c

1

79

VX_shape1[1]c

0

Таблица Б.7 – Порядок бит 2 кбит/с (неизвестный фрейм – известный фрейм)

Неречевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[0]p

3

8

VX_gain1[0]p

2

9

VX_gain1[0]p

1

10

VX_gain1[0]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP3p

3

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

SE_gainc

4

26

SE_gainc

3

27

SE_gainc

2

28

SE_gainc

1

29

SE_gainc

0

30

LSP1c

4

31

LSP1c

3

32

LSP1c

2

33

LSP1c

1

34

LSP1c

0

35

Pitchc

6

36

Pitchc

5

37

Pitchc

4

38

Pitchc

3

39

Pitchc

2

40

Pitchc

1

41

LSP2c

6

42

LSP3c

4

43

LSP2c

5

Класс II

44

LSP2p

2

45

LSP2p

1

46

LSP2p

0

47

LSP3p

2

Класс III

48

LSP3p

1

49

LSP3p

0

50

VX_shape1[0]p

5

51

VX_shape1[0]p

4

Класс IV

52

VX_shape1[0]p

3

53

VX_shape1[0]p

2

54

SE_shape1с

1

55

SE_shape1с

0

Класс V

56

SE_shape2c

3

57

SE_shape2c

2

58

SE_shape2c

1

59

SE_shape2c

0

Класс VI

60

VX_shape1[0]p

3

61

VX_shape1[0]p

2

62

VX_shape1[0]p

1

63

VX_shape1[0]p

0

64

VX_shape1[0]p

5

65

VX_shape1[0]p

4

66

VX_shape1[0]p

3

67

VX_shape1[0]p

2

68

VX_shape1[0]p

1

69

VX_shape1[0]p

0

70

LSP2c

4

71

LSP2c

3

72

LSP2c

2

73

LSP2c

1

74

LSP2c

0

75

LSP3c

3

76

LSP3c

2

77

LSP3c

1

78

LSP3c

0

79

Pitchc

0

Таблица Б.8 – Порядок бит 2 кбит/с (неизвестный фрейм – неизвестный фрейм)

Неречевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[0]p

3

8

VX_gain1[0]p

2

9

VX_gain1[0]p

1

10

VX_gain1[0]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP3p

3

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

VX_gain1[0]c

3

26

VX_gain1[0]c

2

27

VX_gain1[0]c

1

28

VX_gain1[0]c

0

29

VX_gain1[1]c

3

30

VX_gain1[1]c

2

31

VX_gain1[1]c

1

32

VX_gain1[1]c

0

33

LSP1c

4

34

LSP1c

3

35

LSP1c

2

36

LSP1c

1

37

LSP1c

0

38

LSP2c

6

39

LSP2c

5

40

LSP2c

4

41

LSP2c

3

42

LSP3c

4

43

LSP3c

3

Класс II

44

LSP2p

2

45

LSP2p

1

46

LSP2p

0

47

LSP3p

2

Класс III

48

LSP3p

1

49

LSP3p

0

50

VX shape1[0]p

5

51

VX_shape1[0]p

4

Класс IV

52

LSP2c

2

53

LSP2c

1

54

LSP2c

0

55

LSP3c

2

Класс V

56

LSP3c

1

57

LSP3c

0

58

VX_shape1[0]c

5

59

VX_shape1[0]c

4

Класс VI

60

VX_shape1[0]p

3

61

VX_shape1[0]p

2

62

VX_shape1[0]p

1

63

VX_shape1[0]p

0

64

VX_shape1[0]p

5

65

VX_shape1[0]p

4

66

VX_shape1[0]p

3

67

VX_shape1[0]p

2

68

VX_shape1[0]p

1

69

VX_shape1[0]p

0

70

VX_shape1[0]p

3

71

VX_shape1[0]p

2

72

VX_shape1[0]p

1

73

VX_shape1[0]p

0

74

VX_shape1[0]p

5

75

VX_shape1[0]p

4

76

VX_shape1[0]p

3

77

VX_shape1[0]p

2

78

VX_shape1[0]p

1

79

VX_shape1[0]p

0

Таблица Б.9 – Порядок бит 4 кбит/с (известный фрейм – известный фрейм)

Речевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP2p

5

21

LSP2p

4

22

LSP2p

3

23

SE_shape3p

6

24

SE_shape3p

5

25

SE_shape3p

4

26

SE_shape3p

3

27

SE_shape3p

2

28

LSP3p

4

29

LSP5p

7

30

SE_shape4p

9

31

SE_shape5p

8

32

SE_shape6p

5

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

SE_gainc

4

37

SE_gainc

3

38

SE_gainc

2

39

SE_gainc

1

40

SE_gainc

0

41

LSP1c

4

42

LSP1c

3

43

LSP1c

2

44

LSP1c

1

45

LSP1c

0

46

Pitchc

6

47

Pitchc

5

48

Pitchc

4

49

Pitchc

3

50

Pitchc

2

51

Pitchc

1

52

LSP2c

6

53

LSP2c

5

54

LSP2c

4

55

LSP2c

3

56

SE_shape3c

6

57

SE_shape3c

5

58

SE_shape3c

4

59

SE_shape3c

3

60

SE_shape3c

2

61

LSP3c

4

62

LSP5c

7

63

SE_shape4c

9

64

SE_shape5c

8

65

SE_shape6c

5

Класс II

66

SE_shape4p

8

67

SE_shape4p

7

68

SE_shape4p

6

69

SE_shape4p

5

70

SE_shape4p

4

71

SE_shape4p

3

72

SE_shape4p

2

73

SE_shape4p

1

74

SE_shape4p

0

75

SE_shape5p

7

76

SE_shape5p

6

77

SE_shape5p

5

78

SE_shape5p

4

79

SE_shape5p

3

80

SE_shape5p

2

81

SE_shape5p

1

82

SE_shape5p

0

83

SE_shape6p

4

84

SE_shape6p

3

85

SE_shape6p

2

86

SE_shape6p

1

87

SE_shape6p

0

88

SE_shape4c

8

89

SE_shape4c

7

90

SE_shape4c

6

91

SE_shape4c

5

92

SE_shape4c

4

93

SE_shape4c

3

94

SE_shape4c

2

95

SE_shape4c

1

96

SE_shape4c

0

97

SE_shape5c

7

98

SE_shape5c

6

99

SE_shape5c

5

100

SE_shape5c

4

101

SE_shape5c

3

102

SE_shape5c

2

103

SE_shape5c

1

104

SE_shape5c

0

105

SE_shape6c

4

106

SE_shape6c

3

107

SE_shape6c

2

108

SE_shape6c

1

109

SE_shape6c

0

Класс III

110

SE_shape1p

3

111

SE_shape1p

2

112

SE_shape1p

1

113

SE_shape1p

0

Класс IV

114

SE_shape2p

3

115

SE_shape2p

2

116

SE_shape2p

1

117

SE_shape2p

0

Класс V

118

SE_shape1c

3

119

SE_shape1c

2

120

SE_shape1c

1

121

SE_shape1c

0

Класс VI

122

SE_shape2c

3

123

SE_shape2c

2

124

SE_shape2c

1

125

SE_shape2c

0

Класс VII

126

LSP2p

2

127

LSP2p

1

128

LSP2p

0

129

LSP3p

3

130

LSP3p

2

131

LSP3p

1

132

LSP3p

0

133

LSP5p

6

134

LSP5p

5

135

LSP5p

4

136

LSP5p

3

137

LSP5p

2

138

LSP5p

1

139

LSP5p

0

140

Pitchp

0

141

SE_shape3p

1

142

SE_shape3p

0

143

LSP2c

2

144

LSP2c

1

145

LSP2c

0

146

LSP3c

3

147

LSP3c

2

148

LSP3c

1

149

LSP3c

0

150

LSP5c

6

151

LSP5c

5

152

LSP5c

4

153

LSP5c

3

154

LSP5c

2

155

LSP5c

1

156

LSP5c

0

157

Pitchp

0

158

SE_shape3c

1

159

SE_shape3c

0

Таблица Б.10 – Порядок бит 4 кбит/с (известный фрейм – неизвестный фрейм)

Речевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP2p

5

21

LSP2p

4

22

LSP2p

3

23

SE_shape3p

6

24

SE_shape3p

5

25

SE_shape3p

4

26

SE_shape3p

3

27

SE_shape3p

2

28

LSP3p

4

29

LSP5p

7

30

SE_shape4p

9

31

SE_shape5p

8

32

SE_shape6p

5

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

VX_gain1[0]c

3

37

VX_gain1[0]c

2

38

VX_gain1[0]c

1

39

VX_gain1[0]c

0

40

VX_gain1[1]c

3

41

VX_gain1[1]c

2

42

VX_gain1[1]с

1

43

VX_gain1[1]c

0

44

LSP1c

4

45

LSP1c

3

46

LSP1c

2

47

LSP1c

1

48

LSP1c

0

49

LSP2c

6

50

LSP2c

5

51

LSP2c

4

52

LSP2c

3

53

LSP3c

4

54

LSP5c

7

55

VX_gain2[0]c

2

56

VX_gain2[0]c

1

57

VX_gain2[0]c

0

58

VX_gain2[1]c

2

59

VX_gam2[1]c

1

60

VX_gain2[1]c

0

61

VX_gain2[2]c

2

62

VX_gain2[2]c

1

63

VX_gain2[2]c

0

64

VX_gain2[3]c

2

65

VX_gain2[3]c

1

Класс II

66

SE_shape4p

8

67

SE_shape4p

7

68

SE_shape4p

6

69

SE_shape4p

5

70

SE_shape4p

4

71

SE_shape4p

3

72

SE_shape4p

2

73

SE_shape4p

1

74

SE_shape4p

0

75

SE_shape5p

7

76

SE_shape5p

6

77

SE_shape5p

5

78

SE_shape5p

4

79

SE_shape5p

3

80

SE_shape5p

2

81

SE_shape5p

1

82

SE_shape5p

0

83

SE_shape6p

4

84

SE_shape6p

3

85

SE_shape6p

2

86

SE_shape6p

1

87

SE_shape6p

0

88

VX_gain2[3]c

0

89

LSP2c

2

90

LSP2c

1

91

LSP2c

0

92

LSP3c

3

93

LSP3c

2

94

LSP3c

1

95

LSP3c

0

96

LSP5c

6

97

LSP5c

5

98

LSP5c

4

99

LSP5c

3

100

LSP5c

2

101

LSP5c

1

102

LSP5c

0

103

VX_shape1[0]c

5

104

VX_shape1[0]c

4

105

VX_shape1[0]c

3

106

VX_shape1[0]c

2

107

VX_shape1[0]c

1

108

VX_shape1[0]c

0

109

VX_shape1[1]c

5

Класс III

110

SE_shape1p

3

111

SE_shape1p

2

112

SE_shape1p

1

113

SE_shape1p

0

Класс IV

114

SE_shape2p

3

115

SE_shape2p

2

116

SE_shape2p

1

117

SE_shape2p

0

Класс V

118

VX_shape1[1]c

4

119

VX_shape1[1]c

3

120

VX_shape1[1]c

2

121

VX_shape1[1]c

1

Класс VI

122

VX_shape1[1]c

0

123

VX_shape2[0]c

4

124

VX_shape2[0]c

3

125

VX_shape2[0]c

2

Класс VII

126

LSP2p

2

127

LSP2p

1

128

LSP2p

0

129

LSP3p

3

130

LSP3p

2

131

LSP3p

1

132

LSP3p

0

133

LSP5p

6

134

LSP5p

5

135

LSP5p

4

136

LSP5p

3

137

LSP5p

2

138

LSP5p

1

139

LSP5p

0

140

Pitchp

0

141

SE_shape3p

1

142

SE_shape3p

0

143

VX_shape2[0]c

1

144

VX_shape2[0]c

0

145

VX_shape2[1]c

4

146

VX_shape2[1]c

3

147

VX_shape2[1]c

2

148

VX_shape2[1]c

1

149

VX_shape2[1]c

0

150

VX_shape2[2]c

4

151

VX_shape2[2]c

3

152

VX_shape2[2]c

2

153

VX_shape2[2]c

1

154

VX_shape2[2]c

0

155

VX_shape2[3]c

4

156

VX_shape2[3]c

3

157

VX_shape2[3]c

2

158

VX_shape2[3]c

1

159

VX_shape2[3]c

0

Таблица Б.11 – Порядок бит 4 кбит/с (неизвестный фрейм – известный фрейм)

Неречевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[1]p

3

8

VX_gain1[1]p

2

9

VX_gain1[1]p

1

10

VX_gain1[1]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP5p

7

22

VX_gain2[0]c

2

23

VX_gain2[0]c

1

24

VX_gain2[0]c

0

25

VX_gain2[1]c

2

26

VX_gain2[1]c

1

27

VX_gain2[1]c

0

28

VX_gain2[2]c

2

29

VX_gain2[2]c

1

30

VX_gain2[2]c

0

31

VX_gain2[3]c

2

32

VX_gain2[3]c

1

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

SE_gainc

4

37

SE_gainc

3

38

SE_gainc

2

39

SE_gainc

1

40

SE_gainc

0

41

LSP1c

4

42

LSP1c

3

43

LSP1c

2

44

LSP1c

1

45

LSP1c

0

46

Pitchc

6

47

Pitchc

5

48

Pitchc

4

49

Pitchc

3

50

Pitchc

2

51

Pitchc

1

52

LSP2c

6

53

LSP2c

5

54

LSP2c

4

55

LSP2c

3

56

SE_shape3c

6

57

SE_shape3c

5

58

SE_shape3c

4

59

SE_shape3c

3

60

SE_shape3c

2

61

LSP3c

4

62

LSP5c

7

63

SE_shape4c

9

64

SE_shape5c

8

65

SE_shape6c

5

Класс II

66

VX_gain2[3]p

0

67

LSP2p

2

68

LSP2p

1

69

LSP2p

0

70

LSP3p

3

71

LSP3p

2

72

LSP3p

1

73

LSP3p

0

74

LSP5p

6

75

LSP5p

5

76

LSP5p

4

77

LSP5p

3

78

LSP5p

2

79

LSP5p

1

80

LSP5c

0

81

VX_shape1[0]p

5

82

VX_shape1[0]p

4

83

VX_shape1[0]p

3

84

VX_shape1[0]p

2

85

VX_shape1[0]p

1

86

VX_shape1[0]p

0

87

VX_shape1[1]p

5

88

SE_shape4c

8

89

SE_shape4c

7

90

SE_shape4c

6

91

SE_shape4c

5

92

SE_shape4c

4

93

SE_shape4c

3

94

SE_shape4c

2

95

SE_shape4c

1

96

SE_shape4c

0

97

SE_shape5c

7

98c

SE_shape5c

6

99c

SE_shape5c

5

100

SE_shape5c

4

101

SE_shape5c

3

102

SE_shape5c

2

103

SE_shape5c

1

104

SE_shape5c

0

105

SE_shape6c

4

106

SE_shape6c

3

107

SE_shape6c

2

108

SE_shape6c

1

109

SE_shape6c

0

Класс III

110

VX_shape1[1]p

4

111

VX_shape1[1]p

3

112

VX_shape1[1]p

2

113

VX_shape1[1]p

1

Класс IV

114

VX_shape1[1]p

0

115

VX_shape2[0]p

4

116

VX_shape2[0]p

3

117

VX_shape2[0]p

2

Класс V

118

SE_shape1с

3

119

SE_shape1с

2

120

SE_shape1с

1

121

SE_shape1с

0

Класс VI

122

SE_shape2c

3

123

SE_shape2c

2

124

SE_shape2c

1

125

SE_shape2c

0

Класс VII

126

VX_shape2[0]p

1

127

VX_shape2[0]p

0

128

VX_shape2[1]p

4

129

VX_shape2[1]p

3

130

VX_shape2[1]p

2

131

VX_shape2[1]p

1

132

VX_shape2[1]p

0

133

VX_shape2[2]p

4

134

VX_shape2[2]p

3

135

VX_shape2[2]p

2

136

VX_shape2[2]p

1

137

VX_shape2[2]p

0

138

VX_shape2[3]p

4

139

VX_shape2[3]p

3

140

VX_shape2[3]p

2

141

VX_shape2[3]p

1

142

VX_shape2[3]p

0

143

LSP2c

2

144

LSP2c

1

145

LSP2c

0

146

LSP3c

3

147

LSP3c

2

148

LSP3c

1

149

LSP3c

0

150

LSP5c

6

151

LSP5c

5

152

LSP5c

4

153

LSP5c

3

154

LSP5c

2

155

LSP5c

1

156

LSP5c

0

157

Pitchc

0

158

SE_shape3c

1

159

SE_shape3c

0

Таблица Б.12 – Порядок бит 4 кбит/с (неизвестный фрейм – неизвестный фрейм)

Неречевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[1]p

3

8

VX_gain1[1]p

2

9

VX_gain1[1]p

1

10

VX_gain1[1]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP5p

7

22

VX_gain2[0]c

2

23

VX_gain2[0]c

1

24

VX_gain2[0]c

0

25

VX_gain2[1]c

2

26

VX_gain2[1]c

1

27

VX_gain2[1]c

0

28

VX_gain2[2]p

2

29

VX_gain2[2]p

1

30

VX_gain2[2]p

0

31

VX_gain2[3]p

2

32

VX_gain2[3]p

1

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

VX_gain1[0]c

3

37

VX_gain1[0]c

2

38

VX_gain1[0]c

1

39

VX_gain1[0]c

0

40

VX_gain1[1]c

3

41

VX_gain1[1]c

2

42

VX_gain1[1]c

1

43

VX_gain1[1]c

0

44

LSP1c

4

45

LSP1c

3

46

LSP1c

2

47

LSP1c

1

48

LSP1c

0

49

LSP2c

6

50

LSP2c

5

51

LSP2c

4

52

LSP2c

3

53

LSP3c

4

54

LSP5c

7

55

VX_gain2[0]c

2

56

VX_gain2[0]c

1

57

VX_gain2[0]c

0

58

VX_gain2[1]c

2

59

VX_gain2[1]c

1

60

VX_gain2[1]c

0

61

VX_gain2[2]c

2

62

VX_gain2[2]c

1

63

VX_gain2[2]c

0

64

VX_gain2[3]c

2

65

VX_gain2[3]c

1

Класс II

66

VX_gain2[3]p

0

67

LSP2p

2

68

LSP2p

1

69

LSP2p

0

70

LSP3p

3

71

LSP3p

2

72

LSP3p

1

73

LSP3p

0

74

LSP5p

6

75

LSP5p

5

76

LSP5p

4

77

LSP5p

3

78

LSP5p

2

79

LSP5p

1

80

LSP5c

0

81

VX_shape1[0]p

5

82

VX_shape1[0]p

4

83

VX_shape1[0]p

3

84

VX_shape1[0]p

2

85

VX_shape1[0]p

1

86

VX_shape1[0]p

0

87

VX_shape1[1]p

5

88

VX_gain2[3]c

0

89

LSP2c

2

90

LSP2c

1

91

LSP2c

0

92

LSP3c

3

93

LSP3c

2

94

LSP3c

1

95

LSP3c

0

LSP1c

LSP5c

6

LSP1c

LSP5c

5

LSP1c

LSP5c

4

LSP1c

LSP5c

3

LSP2c

LSP5c

2

101

LSP5c

1

102

LSP5c

0

103

VX_shape1[0]c

5

104

VX_shape1[0]c

4

105

VX_shape1[0]c

3

106

VX_shape1[0]c

2

107

VX_shape1[0]c

1

108

VX_shape1[0]c

0

109

VX_shape1[1]c

5

Класс III

110

VX_shape1[1]p

4

111

VX_shape1[1]p

3

112

VX_shape1[1]p

2

113

VX_shape1[1]p

1

Класс IV

114

VX_shape1[1]p

0

115

VX_shape2[0]p

4

116

VX_shape2[0]p

3

117

VX_shape2[0]p

2

Класс V

118

VX_shape1[1]c

4

119

VX_shape1[1]c

3

120

VX_shape1[1]c

2

121

VX_shape1[1]c

1

Класс VI

122

VX_shape1[1]c

0

123

VX_shape2[0]c

4

124

VX_shape2[0]c

3

125

VX_shape2[0]c

2

Класс VII

126

VX_shape2[0]p

1

127

VX_shape2[0]p

0

128

VX_shape2[1]p

4

129

VX_shape2[1]p

3

130

VX_shape2[1]p

2

131

VX_shape2[1]p

1

132

VX_shape2[1]p

0

133

VX_shape2[2]p

4

134

VX_shape2[2]p

3

135

VX_shape2[2]p

2

136

VX_shape2[2]p

1

137

VX_shape2[2]p

0

138

VX_shape2[3]p

4

139

VX_shape2[3]p

3

140

VX_shape2[3]p

2

141

VX_shape2[3]p

1

142

VX_shape2[3]p

0

143

VX_shape2[0]c

1

144

VX_shape2[0]c

0

145

VX_shape2[1]c

4

146

VX_shape2[1]c

3

147

VX_shape2[1]c

2

148

VX_shape2[1]c

1

149

VX_shape2[1]c

0

150

VX_shape2[2]c

4

151

VX_shape2[2]c

3

152

VX_shape2[2]c

2

153

VX_shape2[2]c

1

154

VX_shape2[2]c

0

155

VX_shape2[3]c

4

156

VX_shape2[3]c

3

157

VX_shape2[3]c

2

158

VX_shape2[3]c

1

159

VX_shape2[3]c

0

Б.3.3 Настройка инструмента ЕР

Б.3.3.1 Назначение битов

Таблица Б.13 показывает пример назначения битов для использования инструментом ЕР. В этой таблице описано назначение битов для кодеров 4 кбит/с и 2 кбит/с.

Таблица Б.13 – Назначение битов для использования инструментом ЕР

Кодер источника 2 кбит/с

Кодер источника 4 кбит/с

Класс I

Биты кодера источника

44

66

Четность CRC

6

6

Кодовая скорость

8/16

8/16

Класс I всего

100

144

Класс II

Биты кодера источника

4

44

Четность CRC

1

6

Кодовая скорость

8/8

8/8

Класс II всего

5

50

Класс III

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс III всего

5

5

Класс IV

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс IV всего

5

5

Класс V

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс V всего

5

5

Класс VI

Биты кодера источника

20

4

Четность CRC

0

1

Кодовая скорость

8/8

8/8

Класс VI всего

20

5

Класс VII

Биты кодера источника

34

Четность CRC

0

Кодовая скорость

8/8

Класс VII всего

34

Суммарно битов всех классов

140

248

Битовая скорость

3,5 кбит/с

6,2 кбит/с

Класс I:

CRC охватывает все биты Класса I, включая CRC.

Класс II-V (2 кбит/с), II-VI (4 кбит/с):

По крайней мере одни биты CRC охватывают исходные биты кодера этих классов.

Класс VI (2 кбит/с), VII (4 кбит/с):

Исходные биты кодера не проверяются CRC и не защищаются какой-либо схемой коррекции.

Б.3.4 Маскировка ошибок

Когда обнаружена ошибка CRC, выполняется маскировка ошибок (маскировка “плохого” фрейма). Пример метода маскировки описан ниже.

Состояние маскировки текущего фрейма обновляется на основании результата декодирования CRC Класса I. Диаграмма переходов показана на рисунке Б.2. Начальное состояние = 0. Стрелка с символом “1” обозначает переход для плохого фрейма, а с символом “0” – для хорошего фрейма.

Б.3.4.1 Замена параметров

Согласно текущему состоянию выполняется следующая замена параметров. При условии отсутствия ошибок, состояние равно 0, а полученные исходные биты кодера используются без маскировки.

Б.3.4.1.1 Параметры LSP

В state = 1…6, параметры LSP заменяются таковыми из предыдущих.

Когда state=7, при LSP4=0 (режим квантования LSP без межфреймового предсказания), параметры LSP вычисляются по всем индексам LSP, полученным в текущем фрейме. Если LSP4=1 (режим квантования LSP c межcфреймовым кодированием), параметры LSP вычисляются следующим методом.

В этом режиме параметры LSP индекса LSP1 интерполируются с предыдущими LSP.

для для 1…10 (1)

– параметры – параметры базового слоя, – предыдущие – предыдущие , – декодированные – декодированные текущего индекса , , – коэффициент интерполяции, изменяется согласно числу предыдущих ошибочных фреймов CRC битов Класса I, как показано в таблице Б.14. Индексы изменяется согласно числу предыдущих ошибочных фреймов CRC битов Класса I, как показано в таблице Б.14. Индексы , , , и не используются, не используются, используются как текущие параметры .

Таблица Б.14 – Коэффициент

Фрейм

0

0,7

1

0,6

2

0,5

3

0,4

4

0,3

5

0,2

6

0,1

=>7

0,0

Б.3.4.1.2 Переменная Mute

Согласно значению state, переменная mute управляет выходным уровнем речи.

При state = 7, используется среднее между 1,0 и значением mute предыдущего фрейма (= 0,5 (1,0 + предыдущее значение mute)), но, когда это значение больше, чем 0,8, значение mute заменяется на 0,8.

Значения mute приведены в таблице Б.15.

Таблица Б.15 – Значения mute

Состояние

mute

0

1,000

1

0,800

2

0,700

3

0,500

4

0,250

5

0,125

6

0,000

7

Среднее/0,800

Б.3.4.1.3 Замена и контроль усиления “голосовых” параметров

В state=1.. 6, параметр спектра SE_shape1, SE_shape2, параметр SE_gain усиления спектра, параметр спектра для кодека 4 кбит/с SE_shape3.. SE_shape6 заменяются соответствующими параметрами предыдущего фрейма. Кроме того, для управления выходной громкостью речи, параметры амплитуд гармоник LPC Am [0…127] усиливаются, как показано в (Б.1). В этом уравнении, вычисляется из последнего фрейма, свободного от ошибок.

для для 0.. 127 (Б.1)

Если предыдущий фрейм не содержит речи, и текущее состояние – state=7, (Б.1) заменяется на (Б.2).

для для 0.. 127 (Б.2)

Как описано прежде, SE_shape1 и SE_shape2 индивидуально защищены 1 битом CRC. В state=0 или 7, когда ошибки CRC этих классов обнаружены в то же самое время, когда квантованные значения амплитуд [1.. 44] ослабляются, как показано в (Б.3).

для для 1.. 44 (Б.3)

– коэффициент ослабления.

Таблица Б.16 – Коэффициент ослабления для [0.. 44]

i

1

2

3

4

5

6

7…44

0,10

0,25

0,40

0,55

0,70

0,85

1,00

На 4 кбит/с SE_shape4, SE_shape5, и SE_shape6 проверяются CRC как биты Класса II. Когда ошибка CRC обнаружена, спектральный параметр расширения не используется.

Б.3.4.1.4 Замена и контроль усиления над “неголосовыми” параметрами

В state=1.. 6, стохастический параметр усиления кодовой книги VX_gain1[0] и VX_gain1[1] заменяются на VX_gain1[1] от последнего фрейма, свободного от ошибок. Также стохастические параметры усиления кодовой книги для кодека 4 кбит/с VX_gain2[0]…VX_gain2[3] заменяются VX_gain2[3] от последнего фрейма, свободного от ошибок.

Стохастические параметры VX_shape1[0], VX_shape1[1] и стохастический параметр кодека 4 кбит/с генерируются из произвольных индексных значений.

Кроме того, для управления выходной громкостью речи остаточный сигнал LPC res [0…159] усиливается, как показано в (Б.4). В этом уравнении вычисляется по стохастическим параметрам кодовой книги.

для для 0.. 159 (Б.4)

Б.3.4.1.5 Переходы состояний маскирования фреймов (рисунок Б.2)

Рисунок Б.2 – Переходы состояний маскирования фреймов

Рисунок Б.2 – Переходы состояний маскирования фреймов

Библиография

[1]

ИСО/МЭК 14496-3:2009

Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio)

__________________________________________________________________________
УДК 621.396:006.354 ОКС 33.170

Ключевые слова: звуковое вещание, электрические параметры, каналы и тракты, технологии MPEG-кодирования, синтетический звук, масштабирование, защита от ошибок, поток битов расширения, психоакустическая модель
__________________________________________________________________________

Электронный текст документа
и сверен по:
официальное издание
М.: Стандартинформ, 2014

Николай Иванов

Эксперт по стандартизации и метрологии! Разрешительная и нормативная документация.

Оцените автора
Все-ГОСТЫ РУ
Добавить комментарий

ГОСТ Р 53556.1-2012 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть 3 (MPEG-4 audio). Общие требования к кодированию

ГОСТ Р 53556.1-2012

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Звуковое вещание цифровое

КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ. ЧАСТЬ 3 (MPEG-4 AUDIO)

Общие требования к кодированию

Digital sound broadcasting. Coding of sound broadcasting signals with redundancy reduction for transfer on digital communication channels. Part III (MPEG-4 audio). General requirements for coding

ОКС 33.170

Дата введения 2013-09-01

Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ “О техническом регулировании”, а правила применения национальных стандартов Российской Федерации – ГОСТ Р 1.0-2004 “Стандартизация в Российской Федерации. Основные положения”

Сведения о стандарте

1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи “Ленинградское отделение” (ФГУП ЛО ЦНИИС)

2 ВНЕСЕН Техническим комитетом по стандартизации N 480 “Связь”

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. N 940-ст

4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio) [1]
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт . – .

5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе “Национальные стандарты”, а официальный текст изменений и поправок – в ежемесячном информационном указателе “Национальные стандарты”. В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационном указателе “Национальные стандарты”. Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

1 Область применения

1 Область применения

Для достижения лучшего качества звучания на низких скоростях передачи данных (менее 64 Кбит/с на канал) вводятся три дополнительных частоты дискретизации (Fs) -16 кГц, 22,05 кГц и 24 кГц. Это позволяет поддерживать звуковые сигналы с полосами частот 7,5 кГц, 10,3 кГц и 11,25 кГц соответственно, и обеспечивать передачу сигналов звукового вещания по стандартным каналам (ГОСТ Р 52742-2007 и ГОСТ Р 53537-2009).

Синтаксис, семантика и методы кодирования ГОСТ Р 54711-2011 сохраняются в данном стандарте, за исключением определения поля частоты дискретизации, поля скорости передачи и таблиц распределения бит. Новые значения действительны, если бит ID в заголовке ГОСТ Р 54711-2011 равняется нулю. Для получения лучшей производительности звуковой системы параметры психоакустической модели, используемой в кодере, должны быть изменены соответственно.

Вход кодера и выход декодера совместимы с существующими стандартами ИКМ, такими как ГОСТ 27667-88, ГОСТ 28376-89.

Показатели, определенные настоящим документом, являются базовыми для профессиональной и бытовой аппаратуры – проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования класса Hi-Fi.

Универсальная и совместимая многоканальная звуковая система применима для спутникового и наземного телевизионного вещания, цифрового звукового вещания (наземного и спутникового), так же как и для других носителей, например:

CATV

Кабельное телевидение;

CDAD

Кабельное цифровое звуковое вещание;

DAB

Широковещательная передача цифрового звукового сигнала;

DVD

Цифровой универсальный диск;

ENG

Электронные новости (включая новости по спутнику);

HDTV

Телевидение высокой четкости;

IPC

Межличностное общение (видеоконференция, видеотелефон и т.д.);

ISM

Интерактивные носители (оптические диски и т.д.).

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

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

ГОСТ Р 54712-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть III (MPEG-2 audio)

ГОСТ Р 54713-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть VII. Усовершенствованное кодирование звука (MPEG-2 AAC)

ГОСТ Р 53556.0-2009 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-4, часть III (MPEG-4 audio). Основные положения

ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений

ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20…20000 Гц)

ГОСТ 27667-88 Система цифровая звуковая “Компакт-диск”. Параметры

ГОСТ 28376-89 Компакт-диск. Параметры и размеры

Примечание – При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов и классификаторов в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю “Национальные стандарты”, который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный документ заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться замененным (измененным) документом. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.

3 Термины, определения, символы и сокращения

3.1 Термины и определения

В настоящем стандарте применены термины и сокращения с соответствующими определениями, по ГОСТ Р 53556.0-2009, а также следующие термины с соответствующими определениями, не вошедшие в указанный стандарт:

3.1.1 буфер: Устройство памяти большой емкости, позволяющее записывать и хранить большой объем данных.

3.1.2 программа ААС: Основные звуковые каналы, спаренные каналы, канал Ife и связанные потоки данных, которые должны быть декодированы и воспроизведены одновременно. Программа может быть задана по умолчанию или с помощью program_config_element (). Данные single_channel_element (), channel_pair_element (), coupling_channel_element (), lfe_channel_element () или data_stream_element () могут сопровождать одну или более программ в любом заданном потоке.

3.1.3 звуковой блок доступа: Часть звуковых данных в пределах элементарного потока с возможностью индивидуального доступа.

3.1.4 звуковой композитный блок: Часть выходных данных, которую звуковой декодер производит из звуковых блоков доступа.

3.1.5 абсолютное время: Время, которому соответствует тот или иной звук; реальное время. Время в партитуре.

3.1.6 фактический параметр: Параметр команды.

3.1.7 адаптивная кодовая книга: Способ кодирования длительной периодичности сигнала. Входными параметрами кодовой книги являются перекрывающиеся сегменты прошлых возбуждений.

3.1.8 API: Интерфейс прикладного программирования.

3.1.9 масштабируемость полосы пропускания: Возможность менять полосу пропускания сигнала во время передачи.

3.1.10 ELD: Расширенная низкая задержка.

3.1.11 ЕР: Защита от ошибок.

3.1.12 R: Способность системы противостоять ошибкам.

3.1.13 возбуждение: Сигнал возбуждения представляет вход модуля LPC.

3.1.14 межфреймовое предсказание: Метод предсказания значений в текущем фрейме по значениям в предыдущих фреймах. Используется в VQ LSP.

3.1.15 LTP: Долгосрочное предсказание.

3.1.16 основные звуковые каналы: Весь single_channel_elements или channel_pair_elements в одной программе.

3.1.17 MIDI: Стандарт цифрового интерфейса музыкальных инструментов.

3.1.18 смешанный голосовой фрейм: Речевой сегмент, в котором присутствуют как голосовые, так и неголосовые компоненты.

3.1.19 PS: Параметрическое стерео.

3.1.20 TTSI: Интерфейс преобразования текста в речь.

3.1.21 VQ: Векторное квантование.

3.1.22 VXC: Векторное кодирование возбуждения. Синоним CELP.

3.2 Символы и сокращения

3.2.1 Математические операторы

Математические операторы, используемые в настоящем стандарте, аналогичны используемым в языке программирования С. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.

+ Сложение.

– Вычитание (как бинарный оператор) или отрицание (как унарный оператор).

++ Инкремент.

– – Декремент.

* Умножение.

^ Возведение в степень.

/ Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до одного, а -7/4 и 7/-4 округляются до минус одного.

// Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до двух, а -3//2 округляется до минус двух.

DIV Целочисленное разделение с округлением результата в сторону –.

|| Абсолютное значение.

|х| = х, когда х>0;

|х| = 0, когда х == 0;

|х| = –х, когда х<0.

% Деление с остатком. Операция определена только для положительных чисел.

Sign () Принимает следующие значения:

Sign (x) = 1,

когда х>0;

Sign (x) = 0,

когда х = 0;

Sign (x) = -1,

когда х<0.

NINT () Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.

sin

Синус.

cos

Косинус.

exp

Экспонента.

Квадратный корень.

Логарифм по основанию 10.

Натуральный логарифм.

Логарифм по основанию 2.

3.2.2 Логические операторы

II

логическое ИЛИ.

&&

Логическое И.

!

Логическое НЕ.

3.2.3 Операторы сравнения

>

Больше.

>=

Больше или равно.

<

Меньше.

<=

Меньше или равно.

==

Равно.

!=

Не равно.

max [,…,]

Максимальное значение.

min [,…,]

Минимальное значение.

3.2.4 Побитные операторы

Использование побитных операций подразумевает представление чисел в дополнительном коде.

&

Побитное И.

I

Побитное ИЛИ.

>>

Сдвиг вправо.

<<

Сдвиг влево.

3.2.5 Оператор присвоения

=

Оператор присвоения.

3.2.6 Мнемоники

Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.

bslbf

Битовая строка, младший бит слева, в соответствии с настоящим стандартом. Битовые строки пишутся, как строка единиц и нулей внутри одинарных кавычек, например, ‘1000 0001’. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения.

L, С, R, LS, RS

Левый, центральный, правый, левый окружения и правый окружения звуковые каналы объемного звучания.

rpchof

Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка.

uimsbf

Целое число без знака, старший бит первый.

vlclbf

Код с переменной длиной слова, левый бит первый, где “левый” относится к порядку, в котором пишутся коды с переменной длиной.

window

Номер текущего временного интервала в случае block_type==2, 0windowwindow2.

В многобайтовых словах старший байт является первым.

3.2.7 Константы

3,14159265358…

2,71828182845…

3.3 Метод описания синтаксиса потока битов

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

Группа элементов данных может содержать вложенные условные конструкции. Для компактности скобки {} могут быть опущены, когда следует только один элемент данных.

data_element [ ]

data_element [ ] является массивом данных. Количество элементов массива зависит от контекста.

data_element [n] data_element [m] [n]

data_element [n] является (n+1)-ым элементом массива данных. 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 [mn]

data_element [mn] содержит биты массива data_element с m по n включительно.

3.4 Арифметические типы данных

INT32

32-битное знаковое целое с дополнением к нулю.

INT64

64-битное знаковое целое с дополнением к нулю.

3.5 Технический обзор

3.5.1 Типы звуковых объектов MPEG-4

3.5.1.1 Определение типов звуковых объектов приведено в таблице 1.

Таблица 1 – Определение типов звуковых объектов на основе инструментов/модулей

Окончание таблицы 1

Примечания

1 Функция битового поиска обязательна для декодера. Однако функции обнаружения и исправления ошибок являются необязательными.

2 Содержит AAC LC.

3 Содержит таблично-волновой синтез, алгоритмический синтез и звуковые эффекты.

4 Содержит спецификацию General MIDI.

5 Содержит ER AAC LC.

6 Инструмент передискретизации требуется только в комбинации с основным кодером.

3.5.1.2 Описание

3.5.1.2.1 Тип объекта NULL

Объект NULL обеспечивает возможность подать необработанные ИКМ отсчеты непосредственно в звуковой процессор. Декодирование не применяется, однако дескриптор звуковых объектов используется для определения частоты дискретизации и конфигурации звуковых каналов.

3.5.1.2.2 Тип объекта AAC – Main

Объект AAC Main очень схож с профилем AAC Main. Однако дополнительно доступен инструмент PNS. Ограничения профиля AAC Main относительно различных программ и элементов сведения также относятся к типу объекта ААС Main. Все многоканальные возможности ААС MPEG-2 доступны. Декодер, способный декодировать поток основного объекта MPEG-4, также в состоянии анализировать и декодировать поток необработанных данных AAC MPEG-2. С другой стороны, несмотря на то что кодер AAC MPEG-2 может анализировать полезный поток битов AAC MPEG-4 Main, возможна ошибка декодирования из-за использования PNS.

3.5.1.2.3 Тип объекта ААС – Low Complexity (LC)

Тип объекта AAC MPEG-4 Low Complexity является копией профиля пониженной сложности ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.4 Тип объекта ААС – Scalable Sampling Rate (SSR)

Тип объекта ААС MPEG-4 Scalable Sampling Rate является копией профиля масштабируемой частоты дискретизации ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.5 Тип объекта ААС – Long Term Predictor (LTP)

Тип объекта ААС MPEG-4 LTP подобен типу объекта ААС Main, однако предсказатель ААС MPEG-2 заменен долговременным предсказателем. LTP достигает схожего усиления эффективности кодирования, но требует значительно более низкой сложности реализации. Полезный поток бит профиля ААС MPEG-2 LC может быть декодирован декодером объекта LTP AAC MPEG-4 без ограничений.

3.5.1.2.6 Тип объекта SBR

Объект SBR содержит инструмент SBR и может быть объединен с типами звуковых объектов, обозначенными в таблице 2.

Таблица 2 – Типы звуковых объектов, которые могут быть объединены с инструментом SBR

Тип звукового объекта

ID типа объекта

ААС main

1

AAC LC

2

ААС SSR

3

ААС LTP

4

ААС Scalable

6

ER AAC LC

17

ER AAC LTP

19

ER AAC Scalable

20

ER BSAC

22

3.5.1.2.7 Тип объекта ААС Scalable

Объект ААС Scalable использует различный синтаксис полезного потока бит для реализации масштабируемости скорости передачи и полосы пропускания. Доступно большое количество масштабируемых комбинаций, включая комбинации с инструментами TwinVQ и CELP. Однако поддерживаются только моно или 2-канальные стерео объекты.

3.5.1.2.8 Тип объекта TwinVQ

Объект TwinVQ принадлежит схеме кодирования GA, реализующей квантование коэффициентов МДКП. Эта схема кодирования основана на векторном квантовании с фиксированной скоростью вместо кода Хаффмана в ААС.

Доступны низкие скорости передачи для моно и стерео. Схемы масштабируемых скоростей также доступны в профиле Scalable Audio, объединенном с типом объекта ААС Scalable.

3.5.1.2.9 Тип объекта CELP

Объект CELP поддерживается инструментами кодирования речи CELP, которые обеспечивают кодирование на частотах дискретизации 8 кГц и 16 кГц при скоростях передачи данных в диапазоне 4-24 кбит/с. Дополнительно доступны масштабируемость скорости передачи и полосы пропускания для обеспечения масштабируемого декодирования потоков CELP. Объект CELP всегда содержит только один моно сигнал.

3.5.1.2.10 Тип объекта HVXC

Объект HVXC поддерживается инструментами параметрического кодирования речи (HVXC), которые обеспечивают режимы кодирования с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) в масштабируемой и немасштабируемой схеме, режим с переменной скоростью передачи данных (<2,0 кбит/с) и функции изменения высоты и скорости воспроизведения. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.11 Тип объекта TTSI

Объект TTSI поддерживается инструментами TTSI. Это позволяет осуществить передачу фонемных дескрипторов речи на очень низких скоростях для дальнейшего синтеза. MPEG-4 не дает определения самому методу синтеза речи; инструменты TTSI скорее определяют интерфейс нестандартных методов синтеза. Этот метод позволяет получить скорость передачи 200-1200 бит/с.

3.5.1.2.12 Тип объекта Main Synthetic

Объект Main Synthetic позволяет использовать все инструменты MPEG-4 Structured Audio. Это обеспечивает гибкий, высококачественный алгоритмический синтез на основе языка синтеза музыки SAOL, эффективный таблично-волновой синтез с форматом банка сэмплов SASBF и реализует высококачественное сведение и пост-продакшн с набором инструментов Systems AudioBIFS. Описание звука может быть передано на скоростях от 0 кбит/с (не требуется непрерывная передача) до 3-4 кбит/с для чрезвычайно экспрессивных звуков в формате Structured Audio MPEG-4.

3.5.1.2.13 Тип объекта Wavetable Synthesis

Объект таблично-волнового синтеза поддерживается только форматом SASBF и инструментами MIDI. Это позволяет использовать простой сэмплерный синтез, когда качество и гибкость полного набора инструментов синтеза не требуются.

3.5.1.2.14 Тип объекта General MIDI

Объект General MIDI включен только для предоставления функциональной совместимости с существующим контентом. Стандартизованное качество звучания и свойства декодера объектом General MIDI не предоставляются.

3.5.1.2.15 Тип объекта Algorithmic Synthesis и Audio FX

Объект Algorithmic Synthesis обеспечивает синтез звука на основе SAOL при очень низких скоростях передачи. Он также используется для поддержки узла AudioBIFS AudioFX там, где не требуется синтезированный звук.

3.5.1.2.16 Тип объекта Error Resilient (ER) AAC Low Complexity (LC)

Тип объекта Error Resilient (ER) AAC Low Complexity (LC) является копией объекта AAC MPEG-4 Low Complexity с дополнительными функциональными возможностями.

3.5.1.2.17 Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP)

Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP) является копией объекта AAC MPEG-4 LTP с дополнительными функциональными возможностями.

3.5.1.2.18 Тип объекта Error Resilient (ER) AAC scalable

Тип объекта Error Resilient (ER) AAC scalable является копией объекта AAC MPEG-4 scalable с дополнительными функциональными возможностями.

3.5.1.2.19 Тип объекта Error Resilient (ER) TwinVQ

Тип объекта Error Resilient (ER) AAC TwinVQ является копией объекта AAC MPEG-4 TwinVQ с дополнительными функциональными возможностями.

3.5.1.2.20 Тип объекта Error Resilient (ER) BSAC

Объект BSAC ER поддерживается инструментом точного масштабирования (BSAC). Это позволяет обеспечить как устойчивость к ошибкам, так и точную масштабируемость шага квантования в кодере MPEG-4 General Audio (GA). Данный объект используется в комбинации с инструментами кодирования ААС и заменяет кодирование без потерь и форматирование полезного потока бит кодера AAC MPEG-4. Доступно большое количество масштабируемых уровней, что обеспечивает уровень расширения на скорости 1 кбит/с/канал, то есть 2 кбит/с шага для сигнала стерео.

3.5.1.2.21 Тип объекта Error Resilient (ER) AAC LD

Объект AAC LD поддерживается инструментом кодирования ААС с низкой задержкой. Он также допускает комбинации с инструментами PNS и LTP. Объект ААС LD расширяет использование универсального низкоскоростного кодирования аудио на приложения, требующие очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.1.2.22 Тип объекта Error Resilient (ER) CELP

Объект ER CELP поддерживается инструментами сжатия тишины и ER. Это позволяет уменьшить среднюю скорость передачи благодаря более низкому сжатию для участков тишины с дополнительными функциональными возможностями.

3.5.1.2.23 Тип объекта Error Resilient (ER) HVXC

Объект ER HVXC поддерживается инструментами параметрического речевого кодирования (HVXC), которые обеспечивают режимы с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) и режимы с переменной скоростью передачи данных (<2,0 кбит/с и <4,0 кбит/с), как с использованием масштабирования, так и без него, с возможностью изменения высоты и скорости воспроизведения. Синтаксис инструмента ЕР и способность устранения ошибок поддерживаются для использования в каналах связи, подверженных ошибкам. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.24 Тип объекта Error Resilient (ER) HILN

Объект ER HILN поддерживается инструментами параметрического кодирования звука (HILN: гармонические и индивидуальные линии вместе с шумом), которые обеспечивают кодирование обычных звуковых сигналов при очень низких скоростях передачи в пределах от менее 4 кбит/с до более 16 кбит/с. Доступны масштабируемость скорости передачи с возможностью изменения высоты и скорости воспроизведения. Объект ER HILN поддерживает звуковые объекты моно в широком диапазоне частот дискретизации.

3.5.1.2.25 Тип объекта Error Resilient (ER) Parametric

Объект ER Parametric поддерживается инструментами параметрического кодирования звука и кодирования речи HILN и HVXC. Этот встроенный параметрический кодер комбинирует функциональные возможности объектов ER HILN и ER HVXC. Поддерживаются только звуковые сигналы моно с частотой дискретизации 8 кГц.

3.5.1.2.26 Тип объекта SSC Audio

Объект SSC (синусоидальное кодирование) комбинирует инструменты параметрического кодирования SSC: транзиенты, синусоиды, шум и параметрическое стерео. Поддерживаются сигналы моно, двойное моно и стерео (параметрическое) с частотой дискретизации 44,1 кГц.

3.5.1.2.27 Тип объекта Layer-1 Audio

Объект Layer-1 является копией алгоритма кодирования уровня I.

3.5.1.2.28 Тип объекта Layer-2 Audio

Объект Layer-2 является копией алгоритма кодирования уровня II.

3.5.1.2.29 Тип объекта Layer-3 Audio

Объект Layer-3 схож с алгоритмом кодирования уровня III.

3.5.1.2.30 Тип объекта ALS Audio

Тип объекта ALS копия алгоритма кодирования без потерь (ALS), содержит соответствующие инструменты ALS.

3.5.1.2.31 Тип объекта SLS Audio

Объект SLS поддерживается инструментом масштабируемого кодирования без потерь, который обеспечивает точное масштабирование расширения кодирования без потерь в перцепционных звуковых кодеках MPEG, таких как ААС, позволяя применять различные шаги по улучшению – от качества звучания основного алгоритма до кодирования без потерь и почти незаметного кодирования. Он также обеспечивает stand-alone кодирование звука без потерь, когда основной звуковой кодек отключен.

3.5.1.2.32 SLS Тип объекта SLS Non-Core Audio

Объект SLS non-core поддерживается инструментом масштабируемого кодирования без потерь. Он подобен типу объекта SLS, однако основной звуковой кодек отключен.

3.5.1.2.33 Тип объекта PS

Тип объекта PS содержит инструмент PS и может быть объединен с инструментом SBR.

3.5.1.2.34 Тип объекта MPEG Surround

Объект MPEG Surround содержит служебную информацию MPEG Surround.

3.5.1.2.35 Тип объекта SMR Simple

Тип объекта SMR Simple используется для передачи музыкальных партитур для их аудио и видео обработки. Кодированные данные содержат информацию относительно основной партитуры, частей (то есть партий отдельных инструментов), возможных многоязычных текстов, связанных с частями, правил визуального форматирования, которые будут использоваться при обработке видео, шрифтов для специальных музыкальных символов и информации синхронизации. Шрифты и информация синхронизации представлены как двоичные данные, остальные – как XML данные. Тип объекта SMR Simple может передать XML данные в виде простого XML текста или как gzip XML.

3.5.1.2.36 Тип объекта SMR Main

Тип объекта SMR Main может передавать музыкальные партитуры, как тип объекта SMR Simple, однако в этом случае XML данные могут быть закодированы инструментами MPEG-B.

3.5.1.2.37 Тип объекта Error Resilient (ER) AAC ELD

Тип объекта с улучшенной низкой задержкой (ER ААС ELD) идентичен типу объекта ER AAC LD с добавлением банка фильтров с низкой задержкой (LDFB) и улучшенного окна. Возможны комбинации с инструментом PNS, так же как и с инструментом низкой задержки SBR. Тип объекта ER AAC ELD расширяет применение универсального низкоскоростного кодирования звука для приложений, требующих очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.2 Звуковые профили и уровни

3.5.2.1 Профили

Определены следующие звуковые профили (см. таблицу 3):

1 Речевой профиль обеспечивает параметрический речевой кодер, речевой кодер CELP и интерфейс преобразования текста в речь.

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

3 Масштабируемый профиль – надмножество речевого профиля, является подходящим для масштабируемого кодирования речи и музыки для Интернета и цифрового вещания.

4 Основной профиль – надмножество масштабируемого профиля, речевого профиля и профиля звукового синтеза, содержит инструменты для обычного и синтезированного звука.

5 Профиль высокого качества содержит речевой кодер CELP и кодер низкой сложности ААС, включающий долгосрочное предсказание. Масштабируемое кодирование может быть выполнено объектом типа AAC Scalable. Дополнительно может применяться новый ER синтаксис потока битов.

6 Профиль низкой задержки содержит речевые кодеры HVXC и CELP (дополнительно использующие ER синтаксис), кодер ААС низкой задержки и интерфейс преобразования текста в речь TTSI.

7 Профиль натурального звука содержит все доступные в MPEG-4 инструменты для кодирования натурального звука.

8 Профиль звука для Интернета содержит типы объектов с низкой задержкой и масштабированием ААС, включая TwinVQ и BSAC. Эта конфигурация предназначена для расширения коммуникационных приложений при помощи не-MPEG алгоритмов кодирования речи с высоким качеством.

9 Профиль ААС содержит тип звукового объекта 2 (AAC-LC).

10 Профиль ААС высокой производительности содержит типы звуковых объектов 5 (SBR) и 2 (AAC-LC). Профиль ААС высокой производительности является надмножеством профиля ААС.

11 Профиль ААС высокой производительности версии 2 содержит типы звуковых объектов 5 (SBR), 29 (PS) и 2 (AAC-LC). Профиль ААС высокой производительности версии 2 является надмножеством профиля ААС высокой производительности.

12 Профиль ААС с низкой задержкой содержит тип звукового объекта 23 (ER AAC LD).

Таблица 3 – Определение звуковых профилей

ID типа объекта

Тип объекта Audio

Speech Audio Profile

Synthetic Audio Profile

Scalable Audio Profile

Main Audio Profile

High Quality Audio Profile

Low Delay Audio Profile

Natural Audio Profile

Mobile Audio Internet-
working Profile

AAC Profile

High Efficiency AAC Profile

High Efficiency AAC v2 Profile

Low Delay AAC Profile

0

Null

1

ААС main

X

X

2

AAC LC

X

X

X

X

X

X

X

3

ААС SSR

X

X

4

ААС LTP

X

X

X

X

5

SBR

X

X

6

AAC Scalable

X

X

X

X

7

TwinVQ

X

X

X

8

CELP

X

X

X

X

X

X

9

HVXC

X

X

X

X

X

10

(зарезервировано)

11

(зарезервировано)

12

TTSI

X

X

X

X

X

X

13

Main synthetic

X

X

14

Wavetable synthesis

X*

X*

15

General MIDI

X*

X*

16

Algorithmic Synthesis and Audio FX

X*

X*

17

ER AAC LC

X

X

X

18

(зарезервировано)

19

ER AAC LTP

X

X

20

ER AAC Scalable

X

X

X

21

ER TwinVQ

X

X

22

ER BSAC

X

X

23

ER AAC LD

X

X

X

X

24

ER CELP

X

X

X

25

ER HVXC

X

X

26

ER HILN

X

27

ER Parametric

X

28

SSC

29

PS

X

30

MPEG Surround

31

(escape)

32

Layer-1

ГОСТ Р 53556.1-2012

НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ

Звуковое вещание цифровое

КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ. ЧАСТЬ 3 (MPEG-4 AUDIO)

Общие требования к кодированию

Digital sound broadcasting. Coding of sound broadcasting signals with redundancy reduction for transfer on digital communication channels. Part III (MPEG-4 audio). General requirements for coding

ОКС 33.170

Дата введения 2013-09-01

Предисловие

Цели и принципы стандартизации в Российской Федерации установлены Федеральным законом от 27 декабря 2002 г. N 184-ФЗ “О техническом регулировании”, а правила применения национальных стандартов Российской Федерации – ГОСТ Р 1.0-2004 “Стандартизация в Российской Федерации. Основные положения”

Сведения о стандарте

1 РАЗРАБОТАН Санкт-Петербургским филиалом Центрального научно-исследовательского института связи “Ленинградское отделение” (ФГУП ЛО ЦНИИС)

2 ВНЕСЕН Техническим комитетом по стандартизации N 480 “Связь”

3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 20 ноября 2012 г. N 940-ст

4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009* Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio) [1]
________________
* Доступ к международным и зарубежным документам, упомянутым здесь и далее по тексту, можно получить, перейдя по ссылке на сайт . – .

5 ВВЕДЕН ВПЕРВЫЕ

Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе “Национальные стандарты”, а официальный текст изменений и поправок – в ежемесячном информационном указателе “Национальные стандарты”. В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске информационном указателе “Национальные стандарты”. Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (gost.ru)

1 Область применения

1 Область применения

Для достижения лучшего качества звучания на низких скоростях передачи данных (менее 64 Кбит/с на канал) вводятся три дополнительных частоты дискретизации (Fs) -16 кГц, 22,05 кГц и 24 кГц. Это позволяет поддерживать звуковые сигналы с полосами частот 7,5 кГц, 10,3 кГц и 11,25 кГц соответственно, и обеспечивать передачу сигналов звукового вещания по стандартным каналам (ГОСТ Р 52742-2007 и ГОСТ Р 53537-2009).

Синтаксис, семантика и методы кодирования ГОСТ Р 54711-2011 сохраняются в данном стандарте, за исключением определения поля частоты дискретизации, поля скорости передачи и таблиц распределения бит. Новые значения действительны, если бит ID в заголовке ГОСТ Р 54711-2011 равняется нулю. Для получения лучшей производительности звуковой системы параметры психоакустической модели, используемой в кодере, должны быть изменены соответственно.

Вход кодера и выход декодера совместимы с существующими стандартами ИКМ, такими как ГОСТ 27667-88, ГОСТ 28376-89.

Показатели, определенные настоящим документом, являются базовыми для профессиональной и бытовой аппаратуры – проигрывателей компакт-дисков, усилителей сигналов звуковой частоты и другого оборудования класса Hi-Fi.

Универсальная и совместимая многоканальная звуковая система применима для спутникового и наземного телевизионного вещания, цифрового звукового вещания (наземного и спутникового), так же как и для других носителей, например:

CATV

Кабельное телевидение;

CDAD

Кабельное цифровое звуковое вещание;

DAB

Широковещательная передача цифрового звукового сигнала;

DVD

Цифровой универсальный диск;

ENG

Электронные новости (включая новости по спутнику);

HDTV

Телевидение высокой четкости;

IPC

Межличностное общение (видеоконференция, видеотелефон и т.д.);

ISM

Интерактивные носители (оптические диски и т.д.).

2 Нормативные ссылки

В настоящем стандарте использованы нормативные ссылки на следующие стандарты:

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

ГОСТ Р 54712-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть III (MPEG-2 audio)

ГОСТ Р 54713-2011 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-2, часть VII. Усовершенствованное кодирование звука (MPEG-2 AAC)

ГОСТ Р 53556.0-2009 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. MPEG-4, часть III (MPEG-4 audio). Основные положения

ГОСТ Р 52742-2007 Каналы и тракты звукового вещания. Типовые структуры. Основные параметры качества. Методы измерений

ГОСТ Р 53537-2009 Звуковое вещание. Основные электрические параметры каналов и трактов студийного качества (с полосой частот 20…20000 Гц)

ГОСТ 27667-88 Система цифровая звуковая “Компакт-диск”. Параметры

ГОСТ 28376-89 Компакт-диск. Параметры и размеры

Примечание – При пользовании настоящим стандартом целесообразно проверить действие ссылочных стандартов и классификаторов в информационной системе общего пользования – на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет или по ежегодно издаваемому информационному указателю “Национальные стандарты”, который опубликован по состоянию на 1 января текущего года, и по соответствующим ежемесячно издаваемым информационным указателям, опубликованным в текущем году. Если ссылочный документ заменен (изменен), то при пользовании настоящим стандартом следует руководствоваться замененным (измененным) документом. Если ссылочный документ отменен без замены, то положение, в котором дана ссылка на него, применяется в части, не затрагивающей эту ссылку.

3 Термины, определения, символы и сокращения

3.1 Термины и определения

В настоящем стандарте применены термины и сокращения с соответствующими определениями, по ГОСТ Р 53556.0-2009, а также следующие термины с соответствующими определениями, не вошедшие в указанный стандарт:

3.1.1 буфер: Устройство памяти большой емкости, позволяющее записывать и хранить большой объем данных.

3.1.2 программа ААС: Основные звуковые каналы, спаренные каналы, канал Ife и связанные потоки данных, которые должны быть декодированы и воспроизведены одновременно. Программа может быть задана по умолчанию или с помощью program_config_element (). Данные single_channel_element (), channel_pair_element (), coupling_channel_element (), lfe_channel_element () или data_stream_element () могут сопровождать одну или более программ в любом заданном потоке.

3.1.3 звуковой блок доступа: Часть звуковых данных в пределах элементарного потока с возможностью индивидуального доступа.

3.1.4 звуковой композитный блок: Часть выходных данных, которую звуковой декодер производит из звуковых блоков доступа.

3.1.5 абсолютное время: Время, которому соответствует тот или иной звук; реальное время. Время в партитуре.

3.1.6 фактический параметр: Параметр команды.

3.1.7 адаптивная кодовая книга: Способ кодирования длительной периодичности сигнала. Входными параметрами кодовой книги являются перекрывающиеся сегменты прошлых возбуждений.

3.1.8 API: Интерфейс прикладного программирования.

3.1.9 масштабируемость полосы пропускания: Возможность менять полосу пропускания сигнала во время передачи.

3.1.10 ELD: Расширенная низкая задержка.

3.1.11 ЕР: Защита от ошибок.

3.1.12 R: Способность системы противостоять ошибкам.

3.1.13 возбуждение: Сигнал возбуждения представляет вход модуля LPC.

3.1.14 межфреймовое предсказание: Метод предсказания значений в текущем фрейме по значениям в предыдущих фреймах. Используется в VQ LSP.

3.1.15 LTP: Долгосрочное предсказание.

3.1.16 основные звуковые каналы: Весь single_channel_elements или channel_pair_elements в одной программе.

3.1.17 MIDI: Стандарт цифрового интерфейса музыкальных инструментов.

3.1.18 смешанный голосовой фрейм: Речевой сегмент, в котором присутствуют как голосовые, так и неголосовые компоненты.

3.1.19 PS: Параметрическое стерео.

3.1.20 TTSI: Интерфейс преобразования текста в речь.

3.1.21 VQ: Векторное квантование.

3.1.22 VXC: Векторное кодирование возбуждения. Синоним CELP.

3.2 Символы и сокращения

3.2.1 Математические операторы

Математические операторы, используемые в настоящем стандарте, аналогичны используемым в языке программирования С. Однако целочисленное деление с усечением и округление определены особым образом. Побитные операторы определяются с учетом представления чисел в дополнительном коде. Нумерация и счетчики циклов обычно начинаются с нуля.

+ Сложение.

– Вычитание (как бинарный оператор) или отрицание (как унарный оператор).

++ Инкремент.

– – Декремент.

* Умножение.

^ Возведение в степень.

/ Целочисленное деление с округлением к меньшему по модулю целому. Например, 7/4 и -7/4 округляются до одного, а -7/4 и 7/-4 округляются до минус одного.

// Целочисленное деление с округлением к ближайшему целому числу. Полуцелые числа округляются в сторону ближайшего большего по модулю числа, если не указано другое. Например, 3//2 округляется до двух, а -3//2 округляется до минус двух.

DIV Целочисленное разделение с округлением результата в сторону –.

|| Абсолютное значение.

|х| = х, когда х>0;

|х| = 0, когда х == 0;

|х| = –х, когда х<0.

% Деление с остатком. Операция определена только для положительных чисел.

Sign () Принимает следующие значения:

Sign (x) = 1,

когда х>0;

Sign (x) = 0,

когда х = 0;

Sign (x) = -1,

когда х<0.

NINT () Округление до ближайшего целого. Возвращает самое близкое к вещественному аргументу целочисленное значение. Полуцелые числа округляются в сторону от нуля.

sin

Синус.

cos

Косинус.

exp

Экспонента.

Квадратный корень.

Логарифм по основанию 10.

Натуральный логарифм.

Логарифм по основанию 2.

3.2.2 Логические операторы

II

логическое ИЛИ.

&&

Логическое И.

!

Логическое НЕ.

3.2.3 Операторы сравнения

>

Больше.

>=

Больше или равно.

<

Меньше.

<=

Меньше или равно.

==

Равно.

!=

Не равно.

max [,…,]

Максимальное значение.

min [,…,]

Минимальное значение.

3.2.4 Побитные операторы

Использование побитных операций подразумевает представление чисел в дополнительном коде.

&

Побитное И.

I

Побитное ИЛИ.

>>

Сдвиг вправо.

<<

Сдвиг влево.

3.2.5 Оператор присвоения

=

Оператор присвоения.

3.2.6 Мнемоники

Следующие мнемоники подлежат определению для описания различных типов данных, используемых в кодированном потоке битов.

bslbf

Битовая строка, младший бит слева, в соответствии с настоящим стандартом. Битовые строки пишутся, как строка единиц и нулей внутри одинарных кавычек, например, ‘1000 0001’. Пробелы внутри битовой строки вводятся для удобства чтения и не имеют никакого значения.

L, С, R, LS, RS

Левый, центральный, правый, левый окружения и правый окружения звуковые каналы объемного звучания.

rpchof

Коэффициенты остатка от деления на порождающий полином, сначала следует коэффициент высшего порядка.

uimsbf

Целое число без знака, старший бит первый.

vlclbf

Код с переменной длиной слова, левый бит первый, где “левый” относится к порядку, в котором пишутся коды с переменной длиной.

window

Номер текущего временного интервала в случае block_type==2, 0windowwindow2.

В многобайтовых словах старший байт является первым.

3.2.7 Константы

3,14159265358…

2,71828182845…

3.3 Метод описания синтаксиса потока битов

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

Группа элементов данных может содержать вложенные условные конструкции. Для компактности скобки {} могут быть опущены, когда следует только один элемент данных.

data_element [ ]

data_element [ ] является массивом данных. Количество элементов массива зависит от контекста.

data_element [n] data_element [m] [n]

data_element [n] является (n+1)-ым элементом массива данных. 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 [mn]

data_element [mn] содержит биты массива data_element с m по n включительно.

3.4 Арифметические типы данных

INT32

32-битное знаковое целое с дополнением к нулю.

INT64

64-битное знаковое целое с дополнением к нулю.

3.5 Технический обзор

3.5.1 Типы звуковых объектов MPEG-4

3.5.1.1 Определение типов звуковых объектов приведено в таблице 1.

Таблица 1 – Определение типов звуковых объектов на основе инструментов/модулей

Окончание таблицы 1

Примечания

1 Функция битового поиска обязательна для декодера. Однако функции обнаружения и исправления ошибок являются необязательными.

2 Содержит AAC LC.

3 Содержит таблично-волновой синтез, алгоритмический синтез и звуковые эффекты.

4 Содержит спецификацию General MIDI.

5 Содержит ER AAC LC.

6 Инструмент передискретизации требуется только в комбинации с основным кодером.

3.5.1.2 Описание

3.5.1.2.1 Тип объекта NULL

Объект NULL обеспечивает возможность подать необработанные ИКМ отсчеты непосредственно в звуковой процессор. Декодирование не применяется, однако дескриптор звуковых объектов используется для определения частоты дискретизации и конфигурации звуковых каналов.

3.5.1.2.2 Тип объекта AAC – Main

Объект AAC Main очень схож с профилем AAC Main. Однако дополнительно доступен инструмент PNS. Ограничения профиля AAC Main относительно различных программ и элементов сведения также относятся к типу объекта ААС Main. Все многоканальные возможности ААС MPEG-2 доступны. Декодер, способный декодировать поток основного объекта MPEG-4, также в состоянии анализировать и декодировать поток необработанных данных AAC MPEG-2. С другой стороны, несмотря на то что кодер AAC MPEG-2 может анализировать полезный поток битов AAC MPEG-4 Main, возможна ошибка декодирования из-за использования PNS.

3.5.1.2.3 Тип объекта ААС – Low Complexity (LC)

Тип объекта AAC MPEG-4 Low Complexity является копией профиля пониженной сложности ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.4 Тип объекта ААС – Scalable Sampling Rate (SSR)

Тип объекта ААС MPEG-4 Scalable Sampling Rate является копией профиля масштабируемой частоты дискретизации ААС MPEG-2 с теми же ограничениями, как и для типа объекта ААС Main.

3.5.1.2.5 Тип объекта ААС – Long Term Predictor (LTP)

Тип объекта ААС MPEG-4 LTP подобен типу объекта ААС Main, однако предсказатель ААС MPEG-2 заменен долговременным предсказателем. LTP достигает схожего усиления эффективности кодирования, но требует значительно более низкой сложности реализации. Полезный поток бит профиля ААС MPEG-2 LC может быть декодирован декодером объекта LTP AAC MPEG-4 без ограничений.

3.5.1.2.6 Тип объекта SBR

Объект SBR содержит инструмент SBR и может быть объединен с типами звуковых объектов, обозначенными в таблице 2.

Таблица 2 – Типы звуковых объектов, которые могут быть объединены с инструментом SBR

Тип звукового объекта

ID типа объекта

ААС main

1

AAC LC

2

ААС SSR

3

ААС LTP

4

ААС Scalable

6

ER AAC LC

17

ER AAC LTP

19

ER AAC Scalable

20

ER BSAC

22

3.5.1.2.7 Тип объекта ААС Scalable

Объект ААС Scalable использует различный синтаксис полезного потока бит для реализации масштабируемости скорости передачи и полосы пропускания. Доступно большое количество масштабируемых комбинаций, включая комбинации с инструментами TwinVQ и CELP. Однако поддерживаются только моно или 2-канальные стерео объекты.

3.5.1.2.8 Тип объекта TwinVQ

Объект TwinVQ принадлежит схеме кодирования GA, реализующей квантование коэффициентов МДКП. Эта схема кодирования основана на векторном квантовании с фиксированной скоростью вместо кода Хаффмана в ААС.

Доступны низкие скорости передачи для моно и стерео. Схемы масштабируемых скоростей также доступны в профиле Scalable Audio, объединенном с типом объекта ААС Scalable.

3.5.1.2.9 Тип объекта CELP

Объект CELP поддерживается инструментами кодирования речи CELP, которые обеспечивают кодирование на частотах дискретизации 8 кГц и 16 кГц при скоростях передачи данных в диапазоне 4-24 кбит/с. Дополнительно доступны масштабируемость скорости передачи и полосы пропускания для обеспечения масштабируемого декодирования потоков CELP. Объект CELP всегда содержит только один моно сигнал.

3.5.1.2.10 Тип объекта HVXC

Объект HVXC поддерживается инструментами параметрического кодирования речи (HVXC), которые обеспечивают режимы кодирования с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) в масштабируемой и немасштабируемой схеме, режим с переменной скоростью передачи данных (<2,0 кбит/с) и функции изменения высоты и скорости воспроизведения. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.11 Тип объекта TTSI

Объект TTSI поддерживается инструментами TTSI. Это позволяет осуществить передачу фонемных дескрипторов речи на очень низких скоростях для дальнейшего синтеза. MPEG-4 не дает определения самому методу синтеза речи; инструменты TTSI скорее определяют интерфейс нестандартных методов синтеза. Этот метод позволяет получить скорость передачи 200-1200 бит/с.

3.5.1.2.12 Тип объекта Main Synthetic

Объект Main Synthetic позволяет использовать все инструменты MPEG-4 Structured Audio. Это обеспечивает гибкий, высококачественный алгоритмический синтез на основе языка синтеза музыки SAOL, эффективный таблично-волновой синтез с форматом банка сэмплов SASBF и реализует высококачественное сведение и пост-продакшн с набором инструментов Systems AudioBIFS. Описание звука может быть передано на скоростях от 0 кбит/с (не требуется непрерывная передача) до 3-4 кбит/с для чрезвычайно экспрессивных звуков в формате Structured Audio MPEG-4.

3.5.1.2.13 Тип объекта Wavetable Synthesis

Объект таблично-волнового синтеза поддерживается только форматом SASBF и инструментами MIDI. Это позволяет использовать простой сэмплерный синтез, когда качество и гибкость полного набора инструментов синтеза не требуются.

3.5.1.2.14 Тип объекта General MIDI

Объект General MIDI включен только для предоставления функциональной совместимости с существующим контентом. Стандартизованное качество звучания и свойства декодера объектом General MIDI не предоставляются.

3.5.1.2.15 Тип объекта Algorithmic Synthesis и Audio FX

Объект Algorithmic Synthesis обеспечивает синтез звука на основе SAOL при очень низких скоростях передачи. Он также используется для поддержки узла AudioBIFS AudioFX там, где не требуется синтезированный звук.

3.5.1.2.16 Тип объекта Error Resilient (ER) AAC Low Complexity (LC)

Тип объекта Error Resilient (ER) AAC Low Complexity (LC) является копией объекта AAC MPEG-4 Low Complexity с дополнительными функциональными возможностями.

3.5.1.2.17 Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP)

Тип объекта Error Resilient (ER) AAC Long Term Predictor (LTP) является копией объекта AAC MPEG-4 LTP с дополнительными функциональными возможностями.

3.5.1.2.18 Тип объекта Error Resilient (ER) AAC scalable

Тип объекта Error Resilient (ER) AAC scalable является копией объекта AAC MPEG-4 scalable с дополнительными функциональными возможностями.

3.5.1.2.19 Тип объекта Error Resilient (ER) TwinVQ

Тип объекта Error Resilient (ER) AAC TwinVQ является копией объекта AAC MPEG-4 TwinVQ с дополнительными функциональными возможностями.

3.5.1.2.20 Тип объекта Error Resilient (ER) BSAC

Объект BSAC ER поддерживается инструментом точного масштабирования (BSAC). Это позволяет обеспечить как устойчивость к ошибкам, так и точную масштабируемость шага квантования в кодере MPEG-4 General Audio (GA). Данный объект используется в комбинации с инструментами кодирования ААС и заменяет кодирование без потерь и форматирование полезного потока бит кодера AAC MPEG-4. Доступно большое количество масштабируемых уровней, что обеспечивает уровень расширения на скорости 1 кбит/с/канал, то есть 2 кбит/с шага для сигнала стерео.

3.5.1.2.21 Тип объекта Error Resilient (ER) AAC LD

Объект AAC LD поддерживается инструментом кодирования ААС с низкой задержкой. Он также допускает комбинации с инструментами PNS и LTP. Объект ААС LD расширяет использование универсального низкоскоростного кодирования аудио на приложения, требующие очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.1.2.22 Тип объекта Error Resilient (ER) CELP

Объект ER CELP поддерживается инструментами сжатия тишины и ER. Это позволяет уменьшить среднюю скорость передачи благодаря более низкому сжатию для участков тишины с дополнительными функциональными возможностями.

3.5.1.2.23 Тип объекта Error Resilient (ER) HVXC

Объект ER HVXC поддерживается инструментами параметрического речевого кодирования (HVXC), которые обеспечивают режимы с фиксированной скоростью передачи данных (2,0-4,0 кбит/с) и режимы с переменной скоростью передачи данных (<2,0 кбит/с и <4,0 кбит/с), как с использованием масштабирования, так и без него, с возможностью изменения высоты и скорости воспроизведения. Синтаксис инструмента ЕР и способность устранения ошибок поддерживаются для использования в каналах связи, подверженных ошибкам. Поддерживаются только звуковые сигналы с частотой дискретизации 8 кГц, моно.

3.5.1.2.24 Тип объекта Error Resilient (ER) HILN

Объект ER HILN поддерживается инструментами параметрического кодирования звука (HILN: гармонические и индивидуальные линии вместе с шумом), которые обеспечивают кодирование обычных звуковых сигналов при очень низких скоростях передачи в пределах от менее 4 кбит/с до более 16 кбит/с. Доступны масштабируемость скорости передачи с возможностью изменения высоты и скорости воспроизведения. Объект ER HILN поддерживает звуковые объекты моно в широком диапазоне частот дискретизации.

3.5.1.2.25 Тип объекта Error Resilient (ER) Parametric

Объект ER Parametric поддерживается инструментами параметрического кодирования звука и кодирования речи HILN и HVXC. Этот встроенный параметрический кодер комбинирует функциональные возможности объектов ER HILN и ER HVXC. Поддерживаются только звуковые сигналы моно с частотой дискретизации 8 кГц.

3.5.1.2.26 Тип объекта SSC Audio

Объект SSC (синусоидальное кодирование) комбинирует инструменты параметрического кодирования SSC: транзиенты, синусоиды, шум и параметрическое стерео. Поддерживаются сигналы моно, двойное моно и стерео (параметрическое) с частотой дискретизации 44,1 кГц.

3.5.1.2.27 Тип объекта Layer-1 Audio

Объект Layer-1 является копией алгоритма кодирования уровня I.

3.5.1.2.28 Тип объекта Layer-2 Audio

Объект Layer-2 является копией алгоритма кодирования уровня II.

3.5.1.2.29 Тип объекта Layer-3 Audio

Объект Layer-3 схож с алгоритмом кодирования уровня III.

3.5.1.2.30 Тип объекта ALS Audio

Тип объекта ALS копия алгоритма кодирования без потерь (ALS), содержит соответствующие инструменты ALS.

3.5.1.2.31 Тип объекта SLS Audio

Объект SLS поддерживается инструментом масштабируемого кодирования без потерь, который обеспечивает точное масштабирование расширения кодирования без потерь в перцепционных звуковых кодеках MPEG, таких как ААС, позволяя применять различные шаги по улучшению – от качества звучания основного алгоритма до кодирования без потерь и почти незаметного кодирования. Он также обеспечивает stand-alone кодирование звука без потерь, когда основной звуковой кодек отключен.

3.5.1.2.32 SLS Тип объекта SLS Non-Core Audio

Объект SLS non-core поддерживается инструментом масштабируемого кодирования без потерь. Он подобен типу объекта SLS, однако основной звуковой кодек отключен.

3.5.1.2.33 Тип объекта PS

Тип объекта PS содержит инструмент PS и может быть объединен с инструментом SBR.

3.5.1.2.34 Тип объекта MPEG Surround

Объект MPEG Surround содержит служебную информацию MPEG Surround.

3.5.1.2.35 Тип объекта SMR Simple

Тип объекта SMR Simple используется для передачи музыкальных партитур для их аудио и видео обработки. Кодированные данные содержат информацию относительно основной партитуры, частей (то есть партий отдельных инструментов), возможных многоязычных текстов, связанных с частями, правил визуального форматирования, которые будут использоваться при обработке видео, шрифтов для специальных музыкальных символов и информации синхронизации. Шрифты и информация синхронизации представлены как двоичные данные, остальные – как XML данные. Тип объекта SMR Simple может передать XML данные в виде простого XML текста или как gzip XML.

3.5.1.2.36 Тип объекта SMR Main

Тип объекта SMR Main может передавать музыкальные партитуры, как тип объекта SMR Simple, однако в этом случае XML данные могут быть закодированы инструментами MPEG-B.

3.5.1.2.37 Тип объекта Error Resilient (ER) AAC ELD

Тип объекта с улучшенной низкой задержкой (ER ААС ELD) идентичен типу объекта ER AAC LD с добавлением банка фильтров с низкой задержкой (LDFB) и улучшенного окна. Возможны комбинации с инструментом PNS, так же как и с инструментом низкой задержки SBR. Тип объекта ER AAC ELD расширяет применение универсального низкоскоростного кодирования звука для приложений, требующих очень низкой задержки кодирования/декодирования (например, дуплексная связь в режиме реального времени).

3.5.2 Звуковые профили и уровни

3.5.2.1 Профили

Определены следующие звуковые профили (см. таблицу 3):

1 Речевой профиль обеспечивает параметрический речевой кодер, речевой кодер CELP и интерфейс преобразования текста в речь.

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

3 Масштабируемый профиль – надмножество речевого профиля, является подходящим для масштабируемого кодирования речи и музыки для Интернета и цифрового вещания.

4 Основной профиль – надмножество масштабируемого профиля, речевого профиля и профиля звукового синтеза, содержит инструменты для обычного и синтезированного звука.

5 Профиль высокого качества содержит речевой кодер CELP и кодер низкой сложности ААС, включающий долгосрочное предсказание. Масштабируемое кодирование может быть выполнено объектом типа AAC Scalable. Дополнительно может применяться новый ER синтаксис потока битов.

6 Профиль низкой задержки содержит речевые кодеры HVXC и CELP (дополнительно использующие ER синтаксис), кодер ААС низкой задержки и интерфейс преобразования текста в речь TTSI.

7 Профиль натурального звука содержит все доступные в MPEG-4 инструменты для кодирования натурального звука.

8 Профиль звука для Интернета содержит типы объектов с низкой задержкой и масштабированием ААС, включая TwinVQ и BSAC. Эта конфигурация предназначена для расширения коммуникационных приложений при помощи не-MPEG алгоритмов кодирования речи с высоким качеством.

9 Профиль ААС содержит тип звукового объекта 2 (AAC-LC).

10 Профиль ААС высокой производительности содержит типы звуковых объектов 5 (SBR) и 2 (AAC-LC). Профиль ААС высокой производительности является надмножеством профиля ААС.

11 Профиль ААС высокой производительности версии 2 содержит типы звуковых объектов 5 (SBR), 29 (PS) и 2 (AAC-LC). Профиль ААС высокой производительности версии 2 является надмножеством профиля ААС высокой производительности.

12 Профиль ААС с низкой задержкой содержит тип звукового объекта 23 (ER AAC LD).

Таблица 3 – Определение звуковых профилей

ID типа объекта

Тип объекта Audio

Speech Audio Profile

Synthetic Audio Profile

Scalable Audio Profile

Main Audio Profile

High Quality Audio Profile

Low Delay Audio Profile

Natural Audio Profile

Mobile Audio Internet-
working Profile

AAC Profile

High Efficiency AAC Profile

High Efficiency AAC v2 Profile

Low Delay AAC Profile

0

Null

1

ААС main

X

X

2

AAC LC

X

X

X

X

X

X

X

3

ААС SSR

X

X

4

ААС LTP

X

X

X

X

5

SBR

X

X

6

AAC Scalable

X

X

X

X

7

TwinVQ

X

X

X

8

CELP

X

X

X

X

X

X

9

HVXC

X

X

X

X

X

10

(зарезервировано)

11

(зарезервировано)

12

TTSI

X

X

X

X

X

X

13

Main synthetic

X

X

14

Wavetable synthesis

X*

X*

15

General MIDI

X*

X*

16

Algorithmic Synthesis and Audio FX

X*

X*

17

ER AAC LC

X

X

X

18

(зарезервировано)

19

ER AAC LTP

X

X

20

ER AAC Scalable

X

X

X

21

ER TwinVQ

X

X

22

ER BSAC

X

X

23

ER AAC LD

X

X

X

X

24

ER CELP

X

X

X

25

ER HVXC

X

X

26

ER HILN

X

27

ER Parametric

X

28

SSC

29

PS

X

30

MPEG Surround

31

(escape)

32

Layer-1

33

Layer-2

34

Layer-3

35

DST

36

ALS

37

SLS

38

SLS non-core

39

ER AAC ELD

40

SMR Simple

41

SMR Main

В дополнение к описаниям профилей, данным выше, необходимо отметить, что объекты ААС Scalable, использующие широкополосный уровень ядра CELP (с или без синтаксиса полезного битового потока ER) не являются частью какого бы то ни было звукового профиля.

3.5.2.2 Единицы сложности

Единицы сложности введены для того, чтобы дать приблизительную оценку сложности декодера в терминах вычислительной мощности и использования RAM, необходимых для обработки полезной части потока бит MPEG-4 Аудио в зависимости от определенных параметров.

Приблизительная вычислительная мощность дана в единицах вычислительной сложности (PCU), выраженных в MOPS. Приблизительное использование оперативной памяти дано в единицах использования памяти (RCU), выраженных в килословах (1000 слов). Количество RCU не включает в себя объем буфера, который может быть разделен между различными объектами и/или каналами.

Если уровень профиля определен максимальным числом единиц сложности, то гибкая конфигурация декодера, обрабатывающего различные типы объектов, допустима при условии, что оба значения сложности (РСU и RCU) для декодирования и преобразования частоты дискретизации (если требуется) не превышают этот предел.

Таблица 4 дает оценку сложности для различных типов объектов. Значения PCU даны в MOPS на канал, значения RCU – в килословах на канал (в ААС термин “канал” соответствует основному каналу, например канал SCE, один канал СРЕ или канал независимо переключаемого ССЕ).

Таблица 4 – Сложность типов звуковых объектов и преобразования частоты дискретизации

Тип объекта

Параметры

PCU (MOPS)

RCU

Примечания

ААС Main

fs = 48 кГц

5

5

1

AAC LC

fs = 48 кГц

3

3

1

ААС SSR

fs = 48 кГц

4

3

1

ААС LTP

fs = 48 кГц

4

4

1

SBR

fs = 24/48 кГц (in/out) (SBR tool)

3

2.5

1

fs = 24/48 кГц (in/out) (Low Power SBR tool)

2

1.5

1

fs = 48/48 кГц (in/out) (Down Sampled SBR tool)

4.5

2.5

1

fs = 48/48 кГц (in/out)

(Low Power Down Sampled)

SBR tool)

3

1.5

1

AAC Scalable

fs = 48 кГц

5

4

1, 2

TwinVQ

fs = 24 кГц

2

3

1

CELP

fs = 8 кГц

1

1

CELP

fs = 16 кГц

2

1

CELP

fs = 8/16 кГц (bandwidth scalable)

3

1

HVXC

fs = 8 кГц

2

1

TTSI

4

General MIDI

4

1

Wavetable

Synthesis

fs = 22,05 кГц

Зависит от потока битов

Зависит от потока битов

Main Synthetic

Зависит от потока битов

Зависит от потока битов

Algorithmic Synthesis and AudioFX

Зависит от потока битов

Зависит от потока битов

Sampling Rate Conversion

rf = 2, 3, 4, 6, 8, 12

2

0.5

3

ER AAC LC

fs = 48 кГц

3

3

1

ER AAC LTP

fs = 48 кГц

4

4

1

ER AAC Scalable

fs = 48 кГц

5

4

1, 2

ER TwinVQ

fs = 24 кГц

2

3

1

ER BSAC

fs = 48 кГц (Размер входного буфера = 26000 битов)

4

4

1

fs = 48 кГц (Размер входного буфера = 106000 битов)

4

8

ER AAC LD

fs = 48 кГц

3

2

1

ER CELP

fs = 8 кГц

2

1

fs = 16 кГц

3

1

ER HVXC

fs = 8 кГц

2

1

ER HILN

fs = 16 кГц, ns=93

15

2

6

fs = 16 кГц, ns=47

8

2

ER Parametric

fs = 8 кГц, ns=47

4

2

5, 6

ER AAC ELD

fs = 48 кГц

3

2

1

ER AAC ELD, Low Delay SBR tool only

fs = 24/48 кГц (in/out) (SBR tool)

3

2.5

1

fs = 24/48 кГц (in/out) (Low Power SBR tool)

2

1.5

1

fs = 48/48 кГц (in/out) (Down Sampled SBR tool)

4.5

2.5

1

fs = 48/48 кГц (in/out)

(Low Power Down Sampled])

SBR tool)

3

1.5

1

Определения:

fs = частота дискретизации

rf = отношение частот дискретизации

Примечания

1 PCU пропорционально частоте дискретизации.

2 Включает основной декодер.

3 Сложность для синтеза речи не учитывается.

4 Параметрический кодер в режиме HILN, для режима HVXC см. ER HVXC.

5 PCU зависит от fs и ns, см. ниже.

6 Преобразование частоты дискретизации необходимо, если объекты с различными частотами дискретизации объединены в сцене. Указанные значения должны быть добавлены для каждого необходимого преобразования.

PCU для HILN:

Вычислительная сложность HILN зависит от частоты дискретизации fs и максимального числа синусоид ns, которое должно быть синтезировано одновременно. Значение ns для фрейма является общим количеством гармонических и индивидуальных линий, синтезируемых в этом фрейме, то есть суммой начальных, промежуточных и конечных линий. Для fs в кГц PCU в MOPS вычисляется следующим образом:

PCU=(1 + 0,15*ns)*fs/16

Типовые максимальные значения ns составляют 47 для HILN 6 кбит/с и 93 для потоков HILN 16 кбит/с.

PCU и RCU для ААС:

Для типов объектов ААС PCU и RCU зависят от частоты дисретизации и конфигурации каналов следующим образом:

PCU

PCU = (fs / fs_ref) * PCU_ref * (2 * #СРЕ + #SCE + #LFE + #IndepCouplingCh + 0.3 * #DepCouplingCh)

fs: фактическая частота дискретизации

fs_ref: эталонная частота дискретизации (частота дискретизации для данного PCU_ref)

PCU_ref: эталонное PCU, данное в таблице 4

#SCE: количество SCE

РЕ:…

RCU

#СРЕ <2:

RCU = RCU_ref * [#SCE + 0,5 * #LFE + 0,5 * #IndepCouplingCh + 0,4 * #DepCouplingCh] + [RCU_ref + (RCU_ref – 1)] * #CPE

#CPE> = 2:

RCU = RCU_ref * [#SCE + 0,5 * #LFE + 0,5 * #IndepCouplingCh + 0,4 * #DepCouplingCh] + [RCU_ref + (RCU_ref – 1) * (2 * #CPE – 1)]

RCU_ref: эталонное RCU, данное в таблице 4

#SCE: количество SCE

#CPE: количество CPE

3.5.2.3 Уровни профилей

Под числом звуковых каналов понимается число основных звуковых каналов. На основании количества основных звуковых каналов (А) в таблице 5 указано число каналов LFE (L), число независимо переключаемых спаренных каналов (l) и число зависимо переключаемых спаренных каналов (D) для типов объектов, полученных из многоканального ААС в форме A.L.I.D.

Таблица 5 – Максимальное число индивидуальных типов каналов ААС в зависимости от указанного количества основных звуковых каналов

Количество основных звуковых каналов

АОТ

1

2

3

1 (ААС main)

1.0.0.0

2.0.0.0

5.1.1.1

2 (ААС LC)

1.0.0.0

2.0.0.0

5.1.0.1

3 (ААС SSR)

1.0.0.0

2.0.0.0

5.1.0.0

4 (ААС LTP)

1.0.0.0

2.0.0.0

5.1.0.1

17 (ER AAC LC)

1.0.0.0

2.0.0.0

5.1.0.0

19 (ER ААС LTP)

1.0.0.0

2.0.0.0

5.1.0.0

23 (ER ААС LD)

1.0.0.0

2.0.0.0

5.1.0.0

Примечание – В случае масштабируемых схем кодирования для определения количества объектов, допустимых по сложности, учитывается только первая реализация каждого типа объекта. Например, в масштабируемом кодере, состоящем из основного кодера CELP и двух уровней расширения, реализованных средствами масштабируемых объектов ААС, считается один объект CELP и один масштабируемый объект ААС; учитываются их соответствующие показатели сложности, так как практически отсутствуют затраты, связанные со вторым (и выше) уровенем расширения GA.

Уровни профиля речи

Определены два уровня по числу объектов:

1. Один речевой объект.

2. До 20 речевых объектов.

Уровни профиля синтезированного звука

Определены три уровня:

1. Синтезированный звук 1: все элементы полезной части потока бит могут использоваться с:

– режимом пониженной производительности

– только основными частотами дискретизации

– только одним объектом TTSI

2. Синтезированный звук 2: все элементы полезной части потока бит могут использоваться с:

– режимом средней производительности

– только основными частотами дискретизации

– максимум четырьмя объектами TTSI

3. Синтезированный звук 3: все элементы полезной части потока бит могут использоваться с:

– режимом высокой производительности

– максимум двенадцатью объектами TTSI

– уровнями масштабируемого профиля

Профилем определены четыре уровня; четвертый уровень определяется единицами сложности:

1. Максимальное значение частоты дискретизации – 24 кГц, один моно объект (все типы объектов).

2. Максимальное значение частоты дискретизации – 24 кГц, один стерео объект или два моно (все типы объектов).

3. Максимальное значение частоты дискретизации – 48 кГц, один стерео объект или два моно (все типы объектов).

4. Максимальное значение частоты дискретизации – 48 кГц, один 5-канальный объект или несколько объектов с одним целочисленным множителем частоты дискретизации максимум для двух каналов.

Разрешена гибкая конфигурация при PCU<30 и RCU <19.

Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) допускается длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) не допускаются моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 (ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для всех масштабируемых конфигураций. Если тип звукового объекта 8 (CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 (TwinVQ) используется как основной кодер уровня, разрешен только один моно уровень TwinVQ.

Уровни основного профиля

Основной профиль содержит все натуральные и синтезированные типы объектов. Уровни определяются как комбинация двух различных типов уровней двух различных показателей, определенных для натуральных инструментов (показатели на основе вычислительной мощности) и инструментов синтеза (макропоказатели).

Для типов объектов, не принадлежащих профилю синтезированного звука, определены четыре уровня:

– Натуральный звук 1: PCU<40, RCU<202.

– Натуральный звук 2: PCU<80, RCU<643.

– Натуральный звук 3: PCU<160, RCU<1284.

– Натуральный звук 4: PCU<320, RCU<256.

Для типов объектов, принадлежащих к профилю синтезированного звука, определены те же самые три уровня, то есть синтезированный звук 1, синтезированный звук 2 и синтезированный звук 3.

Четыре уровня определены для основного профиля:

– Натуральный звук 1 + синтезированный звук 1.

– Натуральный звук 2 + синтезированный звук 1.

– Натуральный звук 3 + синтезированный звук 2.

– Натуральный звук 4 + синтезированный звук 3.

Для типов звуковых объектов 1 (ААС main), 2 (ААС LC), 3 (ААС SSR) и 4 (ААС LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 1 (ААС main), 2 (ААС LR), 3 (ААС SSR) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 (ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 в любой из масштабируемых конфигураций. Если тип звуковых объектов 8 (CELP) используется как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 (TwinVQ) используется как основной кодер слоя, то разрешен только один моно уровень TwinVQ.

Уровни профиля высокого качества приведены в таблице 6.

Таблица 6 – Уровни профиля высокого качества

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Max PCU**

Max RCU**

EP-Tool: Максимальная избыточность класса
FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

2

22,05

5

8

0

0

2

2

48

10

8

0

0

3

5

48

25

12***

0

0

4

5

48

100

42***

0

0

5

2

22,05

5

8

20

9

6

2

48

10

8

20

9

7

5

48

25

12***

20

22

8

5

48

100

42***

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 5-8 не включают оперативную память и вычислительную сложность для инструмента ЕР.

*** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Для типов звуковых объектов 2 (ААС LC), 4 (ААС LTP), 17 (ER ААС LC) и 19 (ER AAC LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3, 4, 5, 6, 7 и 8. Для типов звуковых объектов 2 (ААС LC) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3, 4, 5, 6, 7 и 8. Для типа звуковых объектов 6 и 20 (ER) AAC Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 8 или 24 (ER) CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2.

Уровни профиля низкой задержки приведены в таблице 7.

Таблица 7 – Уровни профиля низкой задержки

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Max PCU**

Max RCU**

EP-Tool: Максимальная избыточность класса FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

1

8

2

1

0

0

2

1

16

3

1

0

0

3

1

48

3

2

0

0

4

2

48

24

12***

0

0

5

1

8

2

1

100

5

6

1

16

3

1

100

5

7

1

48

3

2

20

5

8

2

48

24

12***

20

9

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 5-8 не включают оперативную память и вычислительную сложность для инструмента ЕР.

*** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Уровни профиля натурального звука приведены в таблице 8.

Таблица 8 – Уровни профиля натурального звука

Уровень

Максимальная частота дискретизации, кГц

Max PCU**

EP-Tool: Максимальная избыточность класса FEC*,
%

EP-Tool: Максимальное число этапов чередования на объект

1

48

20

0

0

2

96

100

0

0

3

48

20

20

9

4

96

100

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Уровни 3 и 4 не включают оперативную память и вычислительную сложность для инструмента ЕР.

Для данного профиля нет ограничений по RCU.

Для типов звуковых объектов 1 (AAC main), 2 (AAC LC), 3 (AAC SSR), 4 (AAC LTP), 17 (ER ААС LC) и 19 (ER AAC LTP) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3 и 4. Для типов звуковых объектов 1 (ААС main), 2 (ААС LC), 3 (ААС SSR) и 4 (ААС LTP) не разрешены моно или стерео элементы сведения для уровней 1, 2, 3 и 4. Для типа звуковых объектов 6 и 20 (ER) AAC Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 8 или 24 (ER) CELP) будет использоваться как основной кодер уровня, то число уровней CELP не должно превышать 2. Если тип звукового объекта 7 или 21 (ER) TwinVQ) будет использоваться как основной кодер уровня, то только один моно уровень TwinVQ допустим.

Уровни профиля звука для Интернета приведены в таблице 9.

Таблица 9 – Уровни профиля звука для Интернета

Уровень

Максимум каналов/
объект

Максимальная частота дискретизации, кГц

Мах PCU**

Мах
RCU
**, ***

Максимальное число объеков аудио

ЕР-Tооl: Максимальная избыточность класса
FEC*, %

EP-Tool: Максимальное число этапов чередования на объект

1

1

24

2.5

4

1

0

0

2

2

48

10

8

2

0

0

3

5

48

25

12****

0

0

4

1

24

2.5

4

1

20

5

5

2

48

10

8

2

20

9

6

5

48

25

12****

20

22

_______________
* Значение определяет максимальную избыточность на основе доступного звукового объекта с самой большой длиной фрейма. Избыточность может принимать большие значения в случае меньших длин фрейма. Однако использование любого FEC класса не разрешено при 0%. Предел действителен для каждого звукового объекта. Так как это значение не учитывает ни заголовок ЕР и его биты защиты, ни любой CRC, 5% всегда должны быть добавлены к этому значению для получения необходимого увеличения минимального входного буфера декодера. Это подразумевает, что не более, чем 5% может быть потрачено для заголовка ЕР и его бит защиты или любого CRC.

** Максимальное значение RCU для одного канала в любом объекте этой конфигурации – 4. Для ER BSAC это является ограничением входного размера буфера. Максимальный возможный размер входного буфера в битах для этого случая дается PCU/RCU (таблица 4).

*** Уровни 4-6 не включают оперативную память и вычислительную сложность для инструмента ЕР.

**** Подразумевается совместное использование рабочих буферов для множественных объектов и элементов канальных пар.

Для типа звуковых объектов 17 (ER ААС LC) допустима длина фрейма только 1024 отсчета для уровней 1, 2, 3, 4, 5 и 6. Для типа звуковых объектов 20 (ER ААС Scalable) применяются следующие ограничения. Число уровней ААС не должно превышать 8 для любой масштабируемой конфигурации. Если тип звукового объекта 21 (ER TwinVQ) будет использоваться как основной кодер уровня, то только один моно уровень TwinVQ допустим.

Уровни профиля ААС приведены в таблице 10.

Таблица 10 – Уровни профиля ААС

Уровень

Максимальное число каналов/объект

Максимальная частота дискретизации, кГц

Max PCU

Max RCU

1

2

24

3

5

2

2

48

6

5

3

не применяется

не применяется

не применяется

не применяется

4

5

48

19

15

5

5

96

38

15

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Уровни с пометкой “не применяется” введены для сохранения иерархической структуры профиля ААС и профиля ААС высокой производительности. Следовательно, декодер, поддерживающий профиль ААС высокой производительности на данном уровне, может декодировать поток профиля ААС того же самого или более низкого уровня. Уровни с пометкой “не применяется” не обозначены в таблице audioProfileLevellndication (таблица 14).

Уровни профиля ААС высокой производительности приведены в таблице 11.

Таблица 11 – Уровни профиля ААС высокой производительности

Уровень

Максимальное число каналов/ объект

Максимальная частота дискретизации ААС, SBR отсутствует, кГц

Максимальная частота дискретизации ААС, SBR присутствует, кГц

Максимальная частота дискретизации SBR, кГц (ввод/вывод)

Мах PCU

Мах RCU

Max PCU, мало-
мощный SBR

Max RCU, мало-
мощный SBR

1

NA

NA

NA

NA

NA

NA

NA

NA

2

2

48

24

24/48

9

10

7

8

3

2

48

48

48/48 (примечание 1)

15

10

12

8

4

5

48

24/48 (примечание 2)

48/48 (примечание 1)

25

28

20

23

5

5

96

48

48/96

49

28

39

23

Примечание 1 – Для уровней 3 и 4 декодера является обязательным управление инструментом SBR в режиме децимации, если частота дискретизации ядра ААС превышает 24 кГц. Следовательно, если инструмент SBR обрабатывает сигнал ААС на частоте 48 кГц, то внутренняя частота дискретизации инструмента SBR составит 96 кГц, однако выходной сигнал будет подвергнут децимации инструментом SBR до 48 кГц.

Примечание 2 – Для одного или двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 48 кГц. Для более чем двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 24 кГц.

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Уровни профиля ААС высокой производительности версии 2 приведены в таблице 12.

Таблица 12 – Уровни профиля ААС высокой производительности версии 2

Уровень (приме-
чание 1)

Макси-
мальное число каналов/
объект

Максимальная частота дискретизации ААС, SBR отсутствует, кГц

Максимальная частота дискретизации ААС, SBR присутствует, кГц

Максимальная частота дискретизации SBR, кГц (ввод/вывод)

Мах PCU

Мах RCU

Max PCU HQ/LP SBR (примечание 5)

Max RCU HQ/LP SBR (примечание 5)

1

NA

NA

NA

NA

NA

NA

NA

NA

2

2

48

24

24/48

9

10

9

10

3

2

48

24/48 (примечание 3)

48/48 (примечание 2)

15

10

15

10

4

5

48

24/48 (примечание 4)

48/48 (примечание 2)

25

28

20

23

5

5

96

48

48/96

49

28

39

23

Примечание 1 – Декодеры уровней 2, 3 и 4 НЕ ААС профиля версии 2 реализуют базовую версию параметрического инструмента стерео. Декодер уровня 5 не должен быть ограничен базовой версией параметрического инструмента стерео.

Примечание 2 – Для уровней декодера 3 и 4 инструмент SBR должен использоваться в режиме децимации, если частота дискретизации ядра ААС выше, чем 24 кГц. Следовательно, если инструмент SBR будет обрабатывать сигнал ААС с частотой дискретизации 48 кГц, то внутренняя частота дискретизации инструмента SBR составит 96 кГц, однако при этом входной сигнал будет децимирован инструментом SBR до 48 кГц.

Примечание 3 – Если присутствуют параметрические стерео данные, то максимальная частота дискретизации ААС составляет 24 кГц, в противном случае максимальная частота дискретизации ААС составляет 48 кГц.

Примечание 4 – Для одного или двух каналов максимальная частота дискретизации ААС с включенным SBR составляет 48 кГц. Для большего числа каналов максимальная частота дискретизации ААС с включенным SBR составляет 24 кГц.

Примечание 5 – Количество PCU/RCU дается для декодера, использующего инструмент SBR, если необходимо.

Для типа звукового объекта 2 (ААС LC) не разрешены моно или стерео элементы сведения.

Декодер профиля НЕ ААС v2 обрабатывает с помощью инструмента HQ SBR потоки бит, содержащие параметрические стерео данные. Для потоков бит, не содержащих параметрические стерео данные, декодер профиля НЕ ААС v2 может использовать инструмент HQ SBR или инструмент LP SBR.

Только потоки бит, содержащие строго один отдельный канальный элемент ААС, могут содержать параметрические стерео данные. Потоки бит, содержащие больше одного канала в части ААС, не должны содержать параметрические стерео данные.

Уровни профиля ААС с низкой задержкой приведены в таблице 13.

Таблица 13 – Уровни профиля ААС с низкой задержкой

Уровень

Максимальное число каналов/объект

Максимальная частота дискретизации, кГц

epConfig

1

2

48

0

LTP не разрешен. Импульсные данные не разрешены.

3.5.2.4 аudioProfileLevellndication

audioProfileLevellndication – элемент данных InitialObjectDescriptor. Он показывает профиль и уровень, требуемые для обработки контента, ассоциируемого с InitialObjectDescriptor, согласно таблице 14.

Таблица 14 – Значения audioProfileLevellndication

Значение

Профиль

Уровень

0x00

Зарезервировано для ISO

0x01

Main Audio Profile

L1

0x02

Main Audio Profile

L2

0x03

Main Audio Profile

L3

0x04

Main Audio Profile

L4

0x05

Scalable Audio Profile

L1

0x06

Scalable Audio Profile

L2

0x07

Scalable Audio Profile

L3

0x08

Scalable Audio Profile

L4

0x09

Speech Audio Profile

L1

0х0A

Speech Audio Profile

L2

0х0В

Synthetic Audio Profile

L1

0х0С

Synthetic Audio Profile

L2

0x0D

Synthetic Audio Profile

L3

0х0Е

High Quality Audio Profile

L1

0x0F

High Quality Audio Profile

L2

0x10

High Quality Audio Profile

L3

0x11

High Quality Audio Profile

L4

0x12

High Quality Audio Profile

L5

0x13

High Quality Audio Profile

L6

0x14

High Quality Audio Profile

L7

0x15

High Quality Audio Profile

L8

0x16

Low Delay Audio Profile

L1

0x17

Low Delay Audio Profile

L2

0x18

Low Delay Audio Profile

L3

0x19

Low Delay Audio Profile

L4

0x1A

Low Delay Audio Profile

L5

0x1B

Low Delay Audio Profile

L6

0x1С

Low Delay Audio Profile

L7

0x1D

Low Delay Audio Profile

L8

0x1E

Natural Audio Profile

L1

0x1F

Natural Audio Profile

L2

0x20

Natural Audio Profile

L3

0x21

Natural Audio Profile

L4

0x22

Mobile Audio Internetworking Profile

L1

0x23

Mobile Audio Internetworking Profile

L2

0x24

Mobile Audio Internetworking Profile

L3

0x25

Mobile Audio Internetworking Profile

L4

0x26

Mobile Audio Internetworking Profile

L5

0x27

Mobile Audio Internetworking Profile

L6

0x28

AAC Profile

L1

0x29

AAC Profile

L2

0х2A

AAC Profile

L4

0x2B

ААС Profile

L5

0х2С

High Efficiency AAC Profile

L2

0x2D

High Efficiency AAC Profile

L3

0х2E

High Efficiency AAC Profile

L4

0x2F

High Efficiency AAC Profile

L5

0x30

High Efficiency AAC v2 Profile

L2

0x31

High Efficiency AAC v2 Profile

L3

0x32

High Efficiency AAC v2 Profile

L4

0x33

High Efficiency AAC v2 Profile

L5

0x34

Low Delay AAC Profile

L1

0x35

Baseline MPEG Surround Profile

L1

0x36

Baseline MPEG Surround Profile

L2

0x37

Baseline MPEG Surround Profile

L3

0x38

Baseline MPEG Surround Profile (see)

L4

0x39

Baseline MPEG Surround Profile (see)

L5

0х3A

Baseline MPEG Surround Profile (see)

L6

0х3В – 0x7F

reserved for ISO use

0x80 – 0xFD

user private

0xFE

no audio profile specified

0xFF

no audio capability required

Примечание – Использование значения 0xFE указывает, что описанный этим дескриптором InitialObjectDescriptor контент не соответствует никакому аудиопрофилю. Использование значения равного 0xFF указывает, что никакие возможности аудио профиля не требуются для этого контента.

3.6 Интерфейс MPEG-4 Системы

3.6.1 Введение

Потоки заголовка транспортируются через MPEG-4 Системы. Эти потоки содержат информацию о конфигурации, которая необходима для декодирования и анализа необработанных потоков данных. Однако обновление необходимо только при изменениях в конфигурации.

3.6.2 Синтаксис

3.6.2.1 AudioSpecificConfig

AudioSpecificConfig () расширяет абстрактный класс. В этом случае наличие AudioSpecificConfig () обязательно (см. таблицы 15, 16).

Таблица 15 – Синтаксис AudioSpecificConfig ()

Продолжение таблицы 15

Продолжение таблицы 15

Окончание таблицы 15

Таблица 16 – Синтаксис GetAudioObjectType ()

3.6.2.2 Полезная нагрузка

3.6.2.2.1 Краткий обзор

Для объекта NULL размер полезной нагрузки должен быть целым 16-битным числом со знаком в диапазоне от -32768 до +32767. Размеры полезной нагрузки для всех других звуковых типов объекта определены в соответствующих частях. Полезные нагрузки являются основными объектами, которые будет переносить транспортный уровень систем. Для всех схем кодирования натурального звука выходной сигнал масштабируется до максимума 32767/-32768. Однако компоновщик систем MPEG-4 ожидает масштабирование.

Полезные нагрузки без побайтного выравнивания добавляются в конец потока, так как транспортные схемы требуют выравнивания.

3.6.2.2.2 Соответствие полезных звуковых нагрузок блокам доступа и элементарным потокам

3.6.2.2.2.1 AAC Main, AAC LC, AAC SSR, AAC LTP

Одной полезной нагрузке верхнего уровня (raw_data_block ()) соответствует один блок доступа. Последующие блоки доступа формируют один элементарный поток.

3.6.2.2.2.2 AAC Scalable

Одной полезной нагрузке верхнего уровня (aac_scalable_main_element (), ASME) соответствует один блок доступа. Последующие блоки доступа формируют один элементарный поток.

Одной полезной нагрузке верхнего уровня (aac_scalable_extension_element (), ASEE) соответствует один блок доступа. Последующие блоки доступа того же самого уровня расширения формируют один элементарный поток. Это приводит к индивидуальным элементарным потокам для каждого уровня.

Потоки последующих уровней зависят друг от друга.

3.6.2.2.2.3 ER AAC LC, ER AAC SSR, ER AAC LTP, ER AAC, ER AAC LD

Элементы данных соответствующих полезных нагрузкок верхнего уровня (er_raw_data_block (), aac_scalable_main_element (), aac_scalable_extension_element ()) подразделены на различные категории в зависимости от ошибочной чувствительности и собраны в экземплярах класса этих категорий. В зависимости от значения epConfig есть несколько способов поставить в соответствие эти экземпляры класса блокам доступа для формирования одного или нескольких элементарных потоков. Последующие элементарные потоки зависят друг от друга.

Примечание – Биты функции byte_alignment (), завершающей полезные нагрузки верхнего уровня AАС, могут быть исключены, если элементы данных согласно полезной нагрузке верхнего уровня не отображаются непосредственно в один блок доступа. Следовательно их можно исключить, если полезная нагрузка верхнего уровня разбита (например, в случае epConfig=1) или подвергнута пост-обработке (например, в случае epConfig=3).

3.6.2.2.2.4 ER AAC ELD

Полезная нагрузка верхнего уровня для ER AAC ELD определена в er_raw_data_block_eld (). Все определения, упомянутые в 3.6.2.2.2.3, также верны для этого АОТ.

3.6.3 Семантика

3.6.3.1 AudioObjectType

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

3.6.3.2 AudioObjectType Ext

Этот элемент данных расширяет диапазон типов звуковых объектов.

3.6.3.3 SamplingFrequency

Частота дискретизации, используемая в этом звуковом объекте. Передается либо непосредственно значение, либо код samplingFrequencylndex.

3.6.3.4 SamplingFrequencylndex

Четыре бита, указывающие частоту дискретизации. Если samplingFrequencylndex равно 15, то фактическое значение частоты дискретизации содержится в SamplingFrequency. Во всех других случаях SamplingFrequency установлено в соответствии с таблицей 17.

Таблица 17 – Индекс частоты дискретизации

samplingFrequencylndex

Значение

0x0

96000

0x1

88200

0x2

64000

0x3

48000

0x4

44100

0x5

32000

0x6

24000

0x7

22050

0x8

16000

0x9

12000

0ха

11025

0xb

8000

0хс

7350

0xd

зарезервировано

0хе

зарезервировано

0xf

escape value

3.6.3.5 Конфигурация каналов

Четыре бита, указывающие конфигурацию выходных звуковых каналов.

Конфигурация каналов приведена в таблице 18.

Таблица 18 – Конфигурация каналов

Значение

Количество каналов

Синтаксические элементы аудио, перечисленные в порядке приема

Отображение канала к динамику

0

определено в АОТ related SpecificConfig

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(), single_channel_element()

центральный фронтальный динамик, левый, правый центральные фронтальные динамики, задние динамики объемного звучания

5

5

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()

центральный фронтальный динамик, левый, правый центральные фронтальные динамики, левый, правый внешние фронтальные динамики, левый, правый задние динамики объемного звучания, фронтальный динамик низкочастотных эффектов

8-15

зарезервировано

3.6.3.6 Элемент данных epConfig

Этот элемент данных сообщает тип схемы обработки ошибок (таблица 19).

Таблица 19 – Элемент данных epConfig

epConfig

0

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

1

Каждый экземпляр класса всех схем обработки ошибок, принадлежащих одному фрейму, расположен отдельно в пределах отдельного блока доступа, то есть существует столько элементарных потоков, сколько экземпляров класса, определенных в пределах фрейма

2

Необходимо применение декодера защиты от ошибок. Определение классов ЕР нормативно не определяется, однако ему дается определение на прикладном уровне. Тем не менее ограничения, введенные для классов ЕР в соответствии с 1.6.9, должны быть удовлетворены

3

Необходимо применение декодера защиты от ошибок. Соответствие между классами ЕР и экземплярами класса ESC определяется элементом данных directMapping

3.6.3.7 Этот элемент данных идентифицирует отображение между классами защиты от ошибок и экземплярами схем обработки ошибок (таблица 20).

Таблица 20 – Элемент данных directMapping

directMapping

0

В резерве

1

Каждый класс защиты от ошибок интерпретируется как экземпляр категории чувствительности к ошибкам (соответствие один к одному), так что выход декодера защиты от ошибок эквивалентен данным epConfig=1

3.6.3.8 extensionSamplingFrequencylndex

Четыре бита, указывающие выходную частоту дискретизации инструмента расширения, соответствующего extensionAudioObjectType, согласно таблице 18.

3.6.3.9 extensionSamplingFrequency

Выходная частота дискретизации инструмента расширения, соответствующего extensionAudioObjectType. Передается непосредственно ее значение или код в форме extensionSamplingFrequencylndex.

3.6.3.10 bits_to_decode

Вспомогательная функция возвращает число битов, еще не декодированных в текущем AudioSpecificConfig (), если о длине этого элемента известно на системном/транспортном уровне. Если размер этого элемента неизвестен, то bits_to_decode () возвращает 0.

3.6.3.11 syncExtensionType

Синхропоследовательность, определяющая начало данных конфигурации расширения. Эти данные конфигурации соответствуют инструменту расширения, кодированные данные которого помещены (обратно совместимым способом) в audioObjectType. Если syncExtensionType присутствует, данные конфигурации инструмента расширения отделены от соответствующего audioObjectType, который учитывает обратно совместимое сообщение. Декодеры, которые не поддерживают инструмент расширения, могут проигнорировать данные конфигурации. Такая обратносовместимая индикация может использоваться только в системах MPEG-A, передающих длину AudioSpecificConfig ().

3.6.3.12 sbrPresentFlag

Флаг, указывающий присутствие или отсутствие данных SBR в случае extensionAudioObjectType == 5 (явная сигнализация SBR). Значение -1 указывает, что sbrPresentFlag не был передан в AudioSpecificConfig (). В этом случае декодер профиля ААС высокой производительности должен быть в состоянии обнаружить присутствие данных SBR в элементарном потоке.

3.6.3.13 extensionAudioObjectType

Пять битов, указывающие расширения типа звукового объекта. Этот тип объекта соответствует инструменту расширения, который используется для увеличения audioObjectType.

3.6.3.14 psPresentFlag

Бит, указывающий присутствие или отсутствие параметрических стерео данных. Значение -1 указывает, что psPresentFlag не был передан в AudioSpecificConfig (). В этом случае декодер профиля ААС высокой производительности v2 должен поддерживать неявную сигнализацию.

3.6.3.15 fillBits

Биты заполнения для побайтного выравнивания ALSSpecificConfig () относительно начала AudioSpecificConfig ().

3.6.3.16 extensionChannelConfiguration

Четыре бита, указывающие конфигурацию каналов расширений BSAC. Эти данные конфигурации доступны в случае явной сигнализации расширений BSAC. Число выходных звуковых каналов определяется из таблицы 9 конфигурации каналов.

3.6.3.17 sacPayloadEmbedding

Флаг типа звукового объекта 30 MPEG Surround, используемый для передачи служебной информации кодированного пространственного звука для декодирования. В зависимости от этого флага полезная нагрузка MPEG Surround, например SpatialFrame (), доступна различными средствами (см. таблицу 21).

Таблица 21 – Элемент данных sacPayloadEmbedding

sacPayload-Embedding

0

Один SpatialFrame () соответствует одному блоку доступа. Последующие блоки доступа формируют один элементарный поток, который всегда будет зависеть от другого элементарного потока, содержащего основные (сведенные) звуковые данные

1

Полезная нагрузка верхнего уровня мультиплексируется в основные (сведенные) звуковые данные. Фактические подробности мультиплексирования зависят от представления звуковых данных (то есть обычно от АОТ). Это приводит к элементарному потоку без реальной полезной нагрузки, который всегда будет зависеть от другого элементарного потока, содержащего как основные (сведенные) звуковые данные, так и мультиплексированные пространственные звуковые данные

3.6.4 Восходящие потоки (потоки клиент-сервер)

3.6.4.1 Введение

Восходящие потоки данных вводятся для того, чтобы позволить удаленному пользователю динамически управлять потоками из сервера.

Сигнал запроса восходящего потока данных поступает на клиентский терминал, предоставляя дескриптор соответствующего элементарного потока с указанием его параметров. Клиентский терминал открывает этот канал восходящего потока данных аналогично открытию нисходящего потока. Объекты (например, кодеры и декодеры), которые подключены через канал восходящего потока данных, известны через параметры дескриптора элементарного потока и ассоциацию дескриптора элементарного потока с определенным дескриптором объекта.

Восходящий поток данных может быть связан с отдельным потоком или группой (нисходящих) потоков. Тип нисходящего потока, связанного с восходящим, определяет область видимости восходящего потока данных. Когда восходящий поток данных связан с отдельным нисходящим потоком, он несет сообщения об этом потоке. Синтаксис и семантика сообщений для MPEG-4 Аудио определены в следующем подзаголовке.

3.6.4.2 Синтаксис AudioUpstreamPayload () (таблица 22)

Таблица 22 – Синтаксис AudioUpstreamPayload ()

3.6.4.3 Определения

upStreamType – 4-битовое беззнаковое целое, представляющее тип восходящего потока данных, в соответствии с таблицей 23.

Таблица 23 – Определение upStreamType

UpStreamType

Тип восходящего звукового потока

0

контроль масштабируемости

1

объединение BSAC фрейма

2

контроль качества

3

контроль скорости передачи

4-15

зарезервировано для будущего использования

avgBitrate [level] – среднее значение скорости передачи в битах в секунду для уровня с большим шагом, который запрашивает клиент для передачи с сервера.

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

multiLayOrSynEle – бит сигнализирует об использовании многоканальной или многоуровневой конфигурации. В этом случае требуется передача номеров уровней или элементов.

layOrSynEle – 6-битовое беззнаковое целое, представляющее число синтаксических элементов (в случае многоканального режима) или число уровней (в случае многоуровнего режима), которым соответствует следующая информация контроля качества. Это число относится к одному из уровней или синтаксических элементов, содержащихся в пределах ассоциируемого звукового объекта. Если звуковой объект не поддерживает ни масштабируемость, ни многоканальные возможности, это значение равно 1.

numFrameExp [layOrSynEle] – это значение указывает количество последних переданных фреймов (2-1), которое учитывается в следующем значении lostFrames.

lostFrames [layOrSynEle] – эта область содержит число потерянных фреймов относительно обозначенного уровня или синтаксического элемента в пределах последних переданных фреймов, о которых сообщает numFrameExp.

avgBitrate – среднее значение скорости передачи в битах в секунду целого звукового объекта, который был запрошен клиентом с сервера.

3.6.4.4 Процесс декодирования

В первую очередь upStreamType анализируется для обнаружения его типа, от которого зависит остальное декодирование.

3.6.4.4.1 Декодирование управления масштабируемости

Далее декодируется значение numOfLayer. Это представляет число элементов данных avgBitrate, которое необходимо считать. После этого следует avgBitratefollows.

3.6.4.4.2 Декодирование чередования во фрейме BSAC

Считывается элемент данных numOfSubFrame. Он представляет собой число подфреймов, которые будут чередоваться в инструменте BSAC. BSAC позволяет корректировку в процессе работы. Далее контент восходящего потока данных передается от клиента на сервер для осуществления динамической и интерактивной передачи. Данные BSAC разбиваются и объединяются в сервере.

3.6.4.4.3 Декодирование контроля качества

Процент потерянных фреймов может быть получен, используя следующую формулу

.

3.6.4.4.4 Декодирование контроля скорости передачи

Происходит обнаружение avgBitrate.

3.6.5 Сигнализация SBR

3.6.5.1 Генерация и сигнализация контента AAC+SBR

Инструмент SBR в комбинации с кодером ААС обеспечивает существенное увеличение эффективности сжатия звука. В то же самое время обеспечивается совместимость с ААС декодерами. Однако качество звука декодеров без инструмента SBR будет значительно ниже по сравнению с теми, которые поддерживают инструмент SBR. Поэтому в зависимости от приложения поставщик контента или его создатель могут выбрать между этими двумя вариантами. Данные SBR всегда внедряются в поток ААС таким образом, чтобы была обеспечена совместимость с ААСextension_payload), a SBR относится к пост-процессингу в декодере. Это позволяет достичь совместимости. Однако путем различной сигнализации создатель контента может выбрать между режимом полного качества и режимом обратной совместимости способом, указанным ниже.

Ни один из методов сигнализации SBR, описанных в этом подзаголовке, не является допустимым для ААС ELD. Вместо этого используется флаг IdSbrPresentFlag в ELDSpecificConfig () для сигнализации использования инструмента Low Delay SBR.

3.6.5.1.1 Обеспечение полного качества звучания AAC+SBR для слушателя

Чтобы гарантировать получение всеми слушателями полного звукового качества AAC+SBR, поток должен соответствовать профилю НЕ АСС и использовать явную сигнализацию, чтобы быть обработанным декодером профиля НЕ АСС. Указанный декодер в состоянии обработать все потоки профиля ААС соответствующего уровня, так как профиль НЕ АСС – надмножество профиля ААС.

3.6.5.1.2 Достижение обратной совместимости с существующими декодерами ААС

Цель этого режима состоит в том, чтобы обеспечить воспроизведение потока на любых ААС декодерах, даже если они не поддерживают инструмент SBR. Совместимые потоки могут быть созданы следующими двумя способами сигнализации:

а) индикация профиля, содержащего ААС данные (например, профиля ААС), кроме профиля НЕ АСС, и использование явной обратносовместимой сигнализации (как описано ниже). Этот метод рекомендуется для всех основных систем MPEG-4, в которых длина AudioSpecificConfig () известна декодеру. Из-за проблемы с LATM при audioMuxVersion == 0 (см. 1.7) этот метод не может использоваться для LATM с audioMuxVersion == 0. При явной обратносовместимой сигнализации данные SBR добавляются в конец AudioSpecificConfig (). Декодеры, которые не поддерживают SBR, проигнорируют эти части, в то время как декодеры профиля НЕ ААС обнаружат ее присутствие и сконфигурируют декодер соответствующим образом;

б) индикация профиля, содержащего ААС, кроме профиля НЕ ААС, и использование неявной сигнализации. В этом режиме нет никакой явной индикации присутствия SBR данных. Декодеры проверяют наличие данных при декодировании потока и используют инструмент SBR, если данные SBR найдены. Это возможно, потому что SBR может быть декодирован без конфигурационных данных SBR при определенном способе выбора выходной частоты дискретизации, как описано ниже для декодеров профиля НЕ ААС.

Оба метода приводят к тому, что часть ААС потоков AAC+SBR будет декодирована декодерами ААС. Декодеры AAC+SBR обнаружат присутствие SBR и декодируют полный качественный поток AAC+SBR.

3.6.5.2 Неявная и явная сигнализация SBR

В этом подразделе описаны различные методы сигнализации SBR и соответствующее поведение декодеров.

Есть несколько способов сигнализаци данных SBR:

1 Неявная сигнализация: Если EXT_SBR_DATA или EXT_SBR_DATA_CRC элементы extension_ payload () обнаружены в полезном битовом потоке, это неявно сигнализирует о присутствии данных SBR. Способность обнаружить и декодировать SBR с неявной сигнализацией обязательна для всех декодеров профиля High Efficiency AAC (HE ААС).

2 Явная сигнализация: наличие данных SBR сигнализируется явным образом посредством типа звукового объекта SBR в AudioSpecificConfig (). Когда используется явная сигнализация, неявная не должна применяться. Допустимы два различных типа явной сигнализации:

а) иерархическая сигнализация: если первый сигнализируемый audioObjectType (AOT) является SBR АОТ, то сигнализируется второй тип звукового объекта, который указывает на основной тип. Этот тип сигнализации не является обратносовместимым. Он может быть необходим в системах, которые не передают длину AudioSpecificConfig (), таких как LATM с audioMuxVersion == 0, где производители контента должны использовать это только по необходимости;

б) обратносовместимая сигнализация: extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (). Этот метод должен использоваться в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Таблица 24 отражает поведение декодера в зависимости от профиля и индикации типа звукового объекта, когда используется неявная или явная сигнализация.

Таблица 24 – Сигнализация SBR и соответствующее поведение декодера

Характеристики полезной нагрузки потока битов

Поведение декодера

Индикация профиля

AudioObjectType расширения

Флаг sbrPresent

raw_data_block

Декодер профиля ААС

Профиль НЕ ААС

Поддержка профилей с ААС, иных, чем высокоэффективный профиль ААС

!=SBR (сигнализация 1)

-1

ААС

Работа ААС

Работа ААС (Примечание 1)

AAC+SBR

Работа ААС

Работа, по крайней мере, ААС должно работать (Примечание 1)

==SBR [сигнализация 2.б]

0

ААС

Работа ААС

Работа ААС (Примечание 2)

1

AAC+SBR

Работа ААС

Работа, по крайней мере, ААС должно работать AAC+SBR (Примечание 3)

Высокоэффективный профиль ААС

==SBR [сигнализация 2.а или 2.б]

1

AAC+SBR

Не определено

Работа AAC+SBR (Примечание 3)

Примечание 1 – Неявная сигнализация: необходимо проверить полезную нагрузку для определения выходной частоты дискретизации или принять наличие данных SBR в полезной нагрузке, означающих, что выходная частота дискретизации равна удвоенной частоте дискретизации samplingFrequency в AudioSpecificConfig () (до тех пор, пока инструмент SBR не используется или двойная частота дискретизации, обозначенная как samplingFrequency, превышает максимальное позволенное для уровня значение, выходная частота дискретизации равна samplingFrequency).

Примечание 2 – Явная сигнализации указывает на отсутствие данных SBR, следовательно, отсутствие неявной сигнализации; выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig ().

Примечание 3 – Выходная частота дискретизации равна extensionSamplingFrequency в AudioSpecificConfig ().

3.6.5.3 Поведение декодера профиля НЕ ААС в случае неявной сигнализации

Если присутствие данных SBR сигнализируется обратносовместимым методом [сигнализация 2.a], extensionAudioObjectType не является SBR AOT, и sbrPresentFlag установлен в – 1, указывая, что неявная сигнализация может произойти.

Так как декодер профиля НЕ ААС представляет собой систему с двойной скоростью, с инструментом SBR, работающим на удвоенной частоте дискретизации основного декодера ААС, выходная частота дискретизации не может быть принята за частоту дискретизации декодера ААС из-за неявной сигнализации SBR. Декодер должен определить выходную частоту дискретизации любым из следующих двух методов:

– проверить присутствие данных SBR в полезном битовом потоке до декодирования. Если никакие данные SBR не найдены, выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig (). Если данные SBR найдены, то частота равна удвоенной samplingFrequency в AudioSpecificConfig;

– предположить, что данные SBR присутствуют и принять выходную частоту дискретизации в два раза больше, чем в AudioSpecificConfig ().

Вышеупомянутое применяется только в том случае, если удвоенная частота дискретизации, сигнализируемая в AudioSpecificConfig (), не превышает максимальную выходную частоту дискретизации, учитывая текущее значение. Следовательно, для декодера профиля НЕ ААС уровней 2, 3 или 4 выходная частота дискретизации равна типовой, которая сигнализируется в AudioSpecificConfig (), если последняя превышает 24 кГц.

Инструмент SBR с децимацией должен использоваться, если нужно гарантировать, что выходная частота дискретизации не будет превышать максимальное допустимое значение для текущего уровня декодера профиля ААС высокой производительности.

3.6.5.4 Поведение декодера профиля НЕ ААС в случае явной сигнализации

Если присутствие данных SBR явно сигнализируется (сигнализация 2), то используется обратно-совместимая явная сигнализация [сигнализация 2.б] или несовместимая явная сигнализация [сигнализация 2.а].

Для обратносовместимой явной сигнализации [сигнализация 2.б] сигнализируемый extensionAudioObjectType является SBR AOT. Для этого передается обратносовместимая явная сигнализация о sbrPresentFlag, который может быть нулем или единицей. Если sbrPresentFlag – нуль, это указывает, что данные SBR отсутствуют и, следовательно, декодер профиля НЕ ААС не должен проверять Fill-элемент на наличие данных SBR или делать предположение о выходной частоте дискретизации в ожидании данных SBR. Если sbrPresentFlag – один, данные SBR присутствуют и декодер профиля НЕ ААС должен управлять инструментом SBR.

Для несовместимой явной сигнализации SBR [сигнализация 2.а] сигнализируемый extensionAudioObjectType явпяется SBR AOT. Для этой иерархической явной сигнализации sbrPresentFlag установлен, если extensionAudioObjectTypeSBR. sbrPresentFlag не передается и, следовательно, невозможно явно сигнализировать об отсутствии неявной сигнализации. Следовательно, при иерархической явной сигнализации данные SBR всегда присутствуют, и декодер профиля НЕ ААС должен управлять инструментом SBR.

Инструмент SBR с децимацией должен использоваться, если выходная частота дискретизации превысит максимально допустимую выходную частоту дискретизации для текущего уровня или если extensionSamplingFrequency равна samplingFrequency.

3.6.6 Сигнализация параметрического стерео (PS)

3.6.6.1 Генерация и сигнализация контента НЕ ААС+PS

Инструмент PS в комбинации с кодером НЕ ААС обеспечивает хорошее качество стерео при очень низких скоростях передачи. В то же самое время он позволяет обеспечить совместимость с существующими декодерами НЕ ААС. Однако выход декодера НЕ ААС будет только моно для потока НЕ ААС v2, содержащего данные PS.

Следовательно, в зависимости от приложения поставщик контента или создатель контента могут выбрать из двух вариантов, данных ниже. В целом данные PS всегда помещаются в поток НЕ ААС совместимым образом (в sbr_extension элемент), и PS полностью принадлежит к пост-обработке. Это позволяет достичь совместимости. Посредством различной сигнализации создатель контента может выбрать между режимом полного качества и режимом обратной совместимости, как показано в 3.6.6.1.1 и 3.6.6.1.2.

Для иерархических профилей более высокий профиль в иерархии в состоянии декодировать контент более низкого профиля иерархии. На рисунке 1 отображена иерархическая структура профилей ААС, НЕ ААС и НЕ ААС v2. Из рисунка видно, что декодер профиля НЕ ААС полностью способен декодировать любой поток ААС, при условии, что декодер профиля НЕ ААС имеет тот же или более высокий уровень. Так же декодер профиля НЕ ААС v2 определенного уровня может обработать все потоки профиля НЕ ААС того же самого уровня или ниже, так же как и все потоки профиля ААС того же самого или более низкого уровня.

Рисунок 1 – Структура иерархии профилей ААС, НЕ ААС и НЕ ААС v2 и совместимость между ними

Рисунок 1 – Структура иерархии профилей ААС, НЕ ААС и НЕ ААС v2 и совместимость между ними

3.6.6.1.1 Обеспечение полного звукового качества AAC+SBR+PS для слушателя

Чтобы гарантировать получение слушателями полного звукового качества AAC+SBR+PS, поток должен соответствовать профилю HE AAC v2 и использовать явную иерархическую сигнализацию [сигнализация 2.а, как описано ниже] так, чтобы он был воспроизведен декодерами профиля НЕ ААС v2, то есть PS декодерами. Декодер профиля НЕ ААС v2 будет декодировать все потоки профиля НЕ ААС и ААС соответствующего уровня, так как профиль HE AAC v2 является надмножеством профилей НЕ АСС и ААС.

3.6.6.1.2 Достижение обратной совместимости с существующими НЕ ААС и ААС

Цель этого режима состоит в обеспечении возможности воспроизведения потока на всех декодерах профилей ААС и НЕ ААС, даже если они не поддерживают инструмент PS. Совместимые потоки могут быть созданы следующими двумя способами сигнализации:

а) индикация профиля, содержащего SBR данные (например, профиля НЕ ААС), кроме профиля НЕ АСС v2, и использование явной обратносовместимой сигнализации [2.б, как описано ниже]. Этот метод рекомендуется для всех MPEG-4 систем, в которых длина AudioSpecificConfig () известна декодеру. Из-за проблемы с LATM при audioMuxVersion == 0 (см. 1.7) этот метод не может использоваться для LATM с audioMuxVersion == 0. При явной обратносовместимой сигнализации данные PS добавляются в конец AudioSpecificConfig (). Декодеры, которые не поддерживают PS, проигнорируют эти части, в то время как декодеры профиля НЕ ААС v2 обнаружат их присутствие и сконфигурируют декодер соответствующим образом;

б) индикация профиля, содержащего SBR (например, профиля НЕ ААС), кроме профиля НЕ ААС v2, и использование неявной сигнализации. В этом режиме нет никакой явной индикации присутствия PS данных.

Вместо этого декодеры профиля НЕ ААС v2 открывают два выходных канала для потока, содержащего SBR данные с channelConfiguration==1, например моно поток с одним канальным элементом, проверяют наличие PS данных и применяют инструмент PS, если PS данные были обнаружены. Это возможно, так как PS может быть декодировано без конфигурационных данных, если соблюдается определенный способ декодирования каналов в соответствии с профилем НЕ ААС v2.

Оба метода приводят к тому, что часть AAC+SBR потоков AAC+SBR+PS будет декодирована декодерами НЕ ААС, а часть ААС потока AAC+SBR+PS будет декодирована декодерами ААС. Декодеры НЕ ААС v2 обнаружат присутствие PS и декодируют полный качественный поток AAC+SBR+PS.

3.6.6.2 Неявная и явная сигнализация параметрического стерео

В этом подразделе описаны различные методы сигнализации SBR и соответствующее поведение декодеров.

Есть несколько способов сигнализации данных PS:

1 Неявная сигнализация: если bs_extension_id равен EXTENSION_ID_PS, данные PS представлены в элементе sbr_extension; это неявно сигнализирует о присутствии данных PS. Способность обнаружить и декодировать PS с неявной сигнализацией обязательна для всех декодеров профиля High Efficiency ААС v2 (HE AAC v2).

2 Явная сигнализация: наличие данных PS сигнализируется явным образом посредством типа звукового объекта PS и флага psPresentFlag в AudioSpecificConfig (). Когда используется явная сигнализация PS, неявная не должна применяться. Допустимы два различных типа явной сигнализации:

а) иерархическая сигнализация: Если первый сигнализируемый audioObjectType (AOT) является PS AOT, то extensionAudioObjectType устанавливается в SBR и сигнализируется второй тип звукового объекта, который указывает на основной тип. Этот тип сигнализации не является обратно совместимым. Он может быть необходимым в системах, которые не передают длину AudioSpecificConfig (), таких как LATM с audioMuxVersion == 0, где производители контента должны использовать это только по необходимости;

б) обратносовместимая сигнализация: extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (), а флаг psPresentFlag передается в конце обратносовместимой явной сигнализации SBR, указывая наличие или отсутствие данных PS. Этот метод должен использоваться в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Для всех типов сигнализации параметрического стерео channelConfiguration в audioSpecificConfig показывает количество каналов потока ААС. Таким образом, если данные параметрического стерео присутствуют, channelConfiguration равно 1, т.е. один канальный элемент, а инструмент параметрического стерео произведет два выходных канала на основе одного канального элемента и данных параметрического стерео.

Таблица 25 отражает поведение декодера в зависимости от профиля и индикации типа звукового объекта, когда используется неявная или явная сигнализация.

Таблица 25 – Сигнализация PS и соответствующее поведение декодера

Характеристики потока битов

Поведение декодера

Индикация профиля

Сигнализация PS

Флаг psPresent

raw_data_block

Декодеры профиля НЕ ААС

Декодеры профиля НЕ ААС v2

Профиль AАС высоко-
эффективной сети

Сигнализация 1, неявная сигнализация (первый АОТ != PS)

-1

AAC+SBR

Работа AAC+SBR

Работа AAC+SBR (Примечание 1)

AAC+SBR+PS

Работа AAC+SBR

Работа, по крайней мере, AAC+SBR должно работать play AAC+SBR+PS (Примечание 1)

Сигнализация 2.б, обратно-совместимая неявная сигнализация (второй АОТ == SBR)

0

AAC+SBR

Работа AAC+SBR

Работа AAC+SBR (Примечание 2)

1

AAC+SBR+PS

Работа AAC+SBR

Работа, по крайней мере, AAC+SBR должно работать AAC+SBR+PS (Примечание 3)

Профиль высоко-
эффективный AAC v2

Сигнализация 2.а, обратно несовместимая сигнализация (первый АОТ == PS)

1

AAC+SBR+PS

Не определено

Работа AAC+SBR+PS (Примечание 3)

Сигнализация 2.б, обратносовместимая сигнализация (второй АОТ == SBR)

1

AAC+SBR+PS

Не определено

Работа AAC+SBR+PS (Примечание 3)

Примечание 1 – Неявная сигнализация; принять наличие данных PS в полезной нагрузке, получив два выходных канала из одного элемента канала.

Примечание 2 – Явная сигнализация о том, что нет никаких данных PS, следовательно, отсутствует неявная сигнализация.

Примечание 3 – Число выходных каналов равно двум для одного элемента канала, содержащего AAC+SBR+PS данные.

3.6.6.3 Поведение декодера профиля НЕ ААС v2 в случае неявной сигнализации

Если присутствие данных PS сигнализируется неявным обратносовместимым образом [сигнализация 1], то первый сигнализируемый AudioObjectType не является PS AOT и флаг psPresentFlag не считывается из AudioSpecificConfig (). Далее флаг psPresentFlag устанавливается в -1, показывая, что неявная сигнализация параметрического стерео может применяться.

Так как полученный моно поток будет преобразован в стерео выход при наличии данных параметрического стерео в потоке, то декодер профиля НЕ ААС v2 должен подразумевать наличие данных PS и принимать решение о количестве выходных каналов, равном 2 для одного канального элемента, содержащего SBR данные и, возможно, PS данные. Если данных PS не было обнаружено, моно выход должен быть поставлен в соответствие двум открытым каналам для каждого отдельного канального элемента.

3.6.6.4 Поведение декодера профиля НЕ ААС v2 в случае явной сигнализации

Если присутствие данных PS сигнализируется явным образом (сигнализация 2), то для этого используется обратносовместимая явная сигнализация [сигнализация 2.б] или явная сигнализация без обратной совместимости [сигнализация 2.а].

При обратносовместимой явной сигнализации [сигнализация 2.б] сигнализируемый extensionAudioObjectType является SBR AOT. Явная сигнализация PS выполняется посредством psPresentFlag, который может быть нулем или единицей.

Если psPresentFlag равен нулю, это указывает, что данные PS отсутствуют и, следовательно, декодер профиля НЕ ААС v2 не должен принимать решение о числе выходных каналов в ожидании данных PS (как в случае неявной сигнализации PS), и вместо этого использовать оригинальный channelConfiguration. Если psPresentFlag равен одному, данные PS присутствуют и декодер профиля НЕ AAC v2 должен управлять инструментом PS.

Для явной сигнализации PS без обратной совместимости [сигнализация 2.а] первый сигнализируемый AudioObjectType является PS AOT. extensionAudioObjectType назначают SBR АОТ. Для этой иерархической явной сигнализации флаг psPresentFlag устанавливается в единицу, если первый сигнализируемый АОТPS AOT. psPresentFlag не передается и, следовательно, невозможно сигнализировать явным образом об отсутствии неявной сигнализации. Следовательно, для иерархической явной сигнализации параметрического стерео данные PS всегда присутствуют и декодер профиля HE AAC v2 должен управлять инструментом PS.

3.6.7 Интерфейс между частями Аудио и Системами

3.6.7.1 Введение

В этой части описывается интерфейс между MPEG-4 Аудио и MPEG-4 Системами.

Каждый блок доступа, доставленный звуковому декодеру системным интерфейсом, должен привести к соответствующему композитному блоку, доставляемому от звукового декодера к системному интерфейсу. Это должно включать условия начала и завершения, то есть, когда блок доступа будет первым или последним в конечной последовательности блоков доступа.

3.6.7.2 Обработка временных меток композиции

Для блока звуковой композиции временная метка композиции (CTS) определяет, что время композиции относится к n-му звуковому отсчету в пределах блока композиции. Значение n принимается равным 1, если не указано другое.

Для сжатых данных, таких как кодированный звук НЕ ААС, которые могут быть декодированы декодерами различных профилей, декодирование может быть выполнено как обратносовместимым путем (только ААС), так и в расширенном виде (AAC+SBR). Чтобы обеспечить корректную обработку временных меток композиции (так, чтобы звук остался синхронизированным с другими медиа), применяется следующее:

если сжатые данные позволяют как обратносовместимое, так и расширенное декодирование, и если декодер работает обратносовместимым образом, то ему не нужно выполнять никаких специальных действий. В этом случае, значение n равно 1;

если сжатые данные позволяют как обратносовместимое, так и расширенное декодирование, и если декодер работает в расширенном режиме, используя постпроцессор, который вызывает некоторую дополнительную задержку (например, постпроцессор SBR в НЕ ААС), то необходимо учесть эту дополнительную задержку с помощью конкретного значения n из таблицы 26.

Таблица 26 – Обработка временной метки композиции для различных режимов декодера

Значение n

Дополнительная задержка (примечание)

Режим работы декодера

1

0

а) Все операционные режимы, не перечисленные в этой таблице

963

962

б1) Декодер НЕААС или НЕААС v2 с SBR, работающем в режиме двойной скорости; декодируя компрессированное НЕААС или НЕААС v2 аудио

482

481

б2) То же самое, как в б1), но с SBR, работающем в режиме субдискретизации

Значение n

Дополнительная задержка (Примечание)

Режим работы декодера

Примечание – Задержка из-за постпроцессинга дается в количестве отсчетов (на один звуковой канал) при выходной частоте дискретизации для данного режима декодера.

3.6.8 Сигнализация полезных нагрузок расширения BSAC

Метод неявной сигнализации полезных нагрузок расширения BSAC аналогичен тому, что применяется в инструменте SBR. Декодер BSAC, который может декодировать полезную нагрузку расширения BSAC, проверяет наличие расширения для инструмента SBR ‘EXT_BSAC_SBR_DATA’ в bsac_raw_ data_block (). Частота дискретизации должна быть обновлена при обнаружении расширения, а инструмент SBR должен управляться в режиме двойной скорости.

Декодер расширения BSAC проверяет наличие типа расширения для расширения канала BSAC, например ‘EXT_BSAC_CHANNEL’ в bsac_raw_data_block (). В случае многоканального типа расширения номер канала из AudioSpecificConfig () для объекта типа BSAC Аудио обновляется в зависимости от ‘channel_configuration_index’ каждого extended_bsac_base_element ().

Когда используется явная сигнализация, неявная сигнализация не должна использоваться. Доступны два различных метода явной сигнализации:

1 Метод явной сигнализации 1: иерархическая сигнализация

Если первым сигнализируемым audioObjectType (АОТ) является SBR АОТ, сигнализируется второй тип звукового объекта, который указывает BSAC ER АОТ. extensionChannelConfiguration указывает общее количество каналов в bsac_raw_data_block ().

2 Метод явной сигнализации 2: обратносовместимая сигнализация

extensionAudioObjectType сигнализируется в конце AudioSpecificConfig (). Если extensionAudioObjectTypeBSAC ER АОТ, то extensionChannelConfiguration указывает общее количество каналов в bsac_raw_data_block (). Этот метод должен использоваться только в системах, которые передают длину AudioSpecificConfig (). Следовательно, это не должно использоваться для LATM с audioMuxVersion == 0.

Таблица 27 объясняет поведение декодера с SBR и сигнализацией расширения канала BSAC.

Таблица 27 – Сигнализация SBR и расширения канала BSAC и соответствующее поведение декодера

Характеристики потока битов

Поведение декодера

AudioObjectType расширения

sbrPresentFlag

extensionChannelConfiguration

raw_data_block

Декодер BSAC

Декодер расширений BSAC

!= ER_BSAC (Неявная сигнализация)

-1
(Примечание 1)

Не доступно

BSAC

Работа BSAC

Работа BSAC

BSAC+SBR

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+SBR

BSAC+MC

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+MC

BSAC+SBR+MC

Работа BSAC

Работа, по крайней мере, BSAC должно работать BSAC+SBR+MC

== ER_BSAC (Неявная сигнализация)

0
(Примечание 2)

==channelConfiguration (Примечание 4)

BSAC

Работа BSAC

Работа BSAC

!= channelConfiguration

BSAC+MC

Play BSAC

Play BSAC+MC

1
(Примечание 3)

== channelConfiguration (Примечание 4)

BSAC+SBR

Play BSAC

Play BSAC+SBR

!= channelConfiguration

BSAC+SBR+MC

Play BSAC

Play BSAC+SBR+MC

Примечание 1 – Неявная сигнализация: проверить полезную нагрузку, чтобы определить выходную частоту дискретизации или принять присутствие данных SBR в полезной нагрузке, выбирая выходную частоту дискретизации в два раза выше частоты дискретизации samplingFrequency в AudioSpecificConfig () (пока не используется инструмент SBR с децимацией или двойная частота дискретизации samplingFrequency не превышает максимально допустимое значение для текущего уровня, на котором выходная частота дискретизации равна samplingFrequency).

Примечание 2 – Явно сигнализируется отсутствие данных SBR, следовательно, нет неявной сигнализации и выходная частота дискретизации равна samplingFrequency в AudioSpecificConfig ().

Примечание 3 – Выходная частота дискретизации равна extensionSamplingFrequency в AudioSpecificConfig ().

Примечание 4 – Явно сигнализируется отсутствие данных расширения канала BSAC и количество выходных каналов задано channelConfiguration в AudioSpecificConfig ().

3.6.9 Информация о звуковом файле для формата файла основная медиа Международной организации по стандартизации

3.6.9.1 Введение

Блок информации о звуковом файле позволяет хранить вспомогательные (незвуковые) данные оригинального звукового файла в файле формата основная медиа Международной организации по стандартизации. Этот файл также обычно содержит сжатые данные звука. Этот блок особенно полезен в комбинации с кодированием звука без потерь (например, MPEG-4 ALS, SLS), когда представляет интерес восстановление оригинального входного звукового файла.

3.6.9.2 Определение

Контейнер: метаблок

Обязательность: нет

Количество: Ноль или один

Содержит информацию об оригинальном звуковом файле, включая тип файла, и предоставляет блоки OriginalHeader (), OriginalTrailer () и AuxData () через элементный блок.

Блок OriginalHeader () содержит часть заголовка оригинального звукового файла; на него делается ссылка из элементного блока. Часть заголовка включает все байты до первого звукового отсчета данных в оригинальном файле.

Блок OriginalTrailer () содержит трейловую часть оригинального звукового файла; на него делается ссылка из элементного блока. Часть трейла включает все байты после последнего звукового отсчета в оригинальном файле.

Блок AuxData () содержит дополнительную информацию, добавленную кодером, относящуюся к оригинальному звуковому файлу; на него делается ссылка элементного блока. Содержание AuxData () не используется при восстановлении оригинального файла.

Информация об оригинальном звуковом файле хранится как метаданные в MetaBox. Тип обработчика для этого MetaBox‘oafi’, такой MetaBox должен иметь DataBox, содержащий OrigAudioFilelnfoRecord, или идентифицировать первичный элемент, данные которого – OrigAudioFilelnfoRecord.

3.6.9.3 Синтаксис

Синтаксис блока информации об оригинальном звуковом файле следующий:

Синтаксисы OriginalHeader (), OriginalTrailer () и AuxData () даны в таблице 28, таблице 29 и таблице 30. original_MIME_type – строка с нулевым символом в конце в символах UTF-8, идентифицирующих оригинальный тип файла.

Таблица 28 – Синтаксис OriginalHeader ()

Таблица 29 – Синтаксис OriginalTrailer ()

Таблица 30 – Синтаксис AuxData ()

3.6.9.4 Семантика

file_type описывает тип оригинального входного файла (см. таблицу 31 для описания возможных значений).

Таблица 31 – Значения file_type

Поле

Количество битов

Описание/Значение

file_type

4

0000 = unknown/raw file

0001 = wave file

0010 =aiff file

0011 =bwf file

0100 = Sony Wave64 file (.w64)

0101 =bwf with RF64

1111= “escape” for MIME type
(other values are reserved)

header_item_ID – идентификатор, который ссылается на OriginalHeader () в элементном блоке. Если это значение равно 0, OriginalHeader () отсутствует. Если OriginalHeader () пуст (нулевой длины), то пустой OriginalHeader () должен поставляться.

trailer_item_ID – идентификатор, который ссылается на OriginalTrailer () в элементном блоке. Если это значение равно 0, OriginalTrailer () отсутствует. Если OriginalTrailer () пуст (нулевой длины), то пустой OriginalTrailer () должен поставляться.

aux_item_ID – идентификатор, который ссылается на AuxData () в элементном блоке. Если это значение равно 0, AuxData () отсутствует. Если AuxData () пуст (нулевой длины), то пустой AuxData () должен поставляться.

Элементы OriginalHeader, OriginalTrailer и AuxData даны в таблице 32, таблице 33 и таблице 34.

Таблица 32 – Элементы OriginalHeader ()

Поле

Количество битов

Описание/Значения

header_length

64

Размер поля оригинального заголовка в байтах

ohg_header[]

header_length*8

Заголовок оригинального файла аудио

Таблица 33 – Элементы OriginalTrailer ()

Поле

Количество битов

Описание/Значение

trailer_length

64

Размер поля вспомогательных данных в байтах

ohg_trailer[]

trailer_length*8

Концевая часть оригинального аудиофайла

Таблица 34 – Элементы AuxData ()

Поле

Количество битов

Описание/Значение

aux_length

64

Размер поля вспомогательных данных в байтах

aux_data

aux_length*8

Вспомогательные данные (для декодирования не требуется)

3.7 Транспортный поток MPEG-4 Аудио

_______________

* Слово “MPEG” в наименовании пункта 3.7 в бумажном оригинале выделено курсивом. – .

3.7.1 Краткий обзор

Транспортный механизм использует двухуровневый подход, а именно: мультиплексный уровень и уровень синхронизации. Мультиплексный уровень (мультиплексный транспортный уровень MPEG-4 Аудио с низкой задержкой: LATM) управляет мультиплексированием нескольких полезных нагрузок MPEG-4 Аудио и их элементов AudioSpecificConfig (). Уровень синхронизации определяет самосинхронизирующийся синтаксис транспортного потока MPEG-4 Аудио, который называют звуковым потоком с низкой задержкой (LOAS). Формат интерфейса уровня передачи зависит от основного уровня передачи следующим образом:

LOAS должен использоваться для передачи по каналам, где не доступна синхронизация фреймов;

LOAS может использоваться для передачи по каналам с фиксированной синхронизацией фрейма;

– мультиплексный элемент (AudioMuxElement ()/EPMuxElement ()) без синхронизации будет использоваться только для каналов передачи, где основной транспортный уровень уже обеспечивает синхронизацию фрейма, которая может поддерживать произвольный размер фрейма.

Подробно о форматах LOAS и LATM описано в 1.7.2 и 1.7.3.

Механизм, определенный в этом параграфе, не должен использоваться для передачи объектов TTSI, объектов Main Synthetic, объектов Wavetable Synthesis, объектов General MIDI и объектов алгоритмического синтеза и FX. Это не должно использоваться для передачи какого-либо объекта с (epConfig == 1). Для таких объектов должны применяться другие мультиплексные и транспортные механизмы, например определенные в MPEG-4 Системы.

3.7.2 Уровень синхронизации

Уровень синхронизации предоставляет мультиплексному элементу механизм самосинхронизации для генерации LOAS. У LOAS есть три различных типа формата, а именно: AudioSyncStream (), EPAudioSyncStream () и AudioPointerStream (). Выбор одного из трех форматов зависит от основного уровня передачи.

AudioSyncStream ()

AudioSyncStream () состоит из синхрослова, мультиплексного элемента с побайтным выравниванием и его информации о длине. Максимальное расстояние между двумя синхрословами составляет 8192 байт. Этот самосинхронизирующийся поток должен использоваться для случая, когда основной уровень передачи следует без какой-либо синхронизации фреймов.

EPAudioSyncStream ()

Для каналов с ошибками предоставлена альтернативная версия AudioSyncStream (). Этот формат обладает теми же основными функциональными возможностями, как ранее описанный AudioSyncStream (). Однако это дополнительно обеспечивает более длинную синхропоследовательность и счетчик потерянных фреймов. Информация о длине и счетчик фреймов дополнительно защищены FEC кодом.

AudioPointerStream ()

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

3.7.2.1 Синтаксис (таблицы 35, 36, 37, 38)

Таблица 35 – Синтаксис AudioSyncStream ()

Таблица 36 – Синтаксис EPAudioSyncStream ()

Окончание таблицы 36

Таблица 37 – Синтаксис AudioPointerStream ()

Таблица 38 – Синтаксис AudioPointerStreamFrame ()

3.7.2.2 Семантика

3.7.2.2.1 AudioSyncStream ()

audioMuxLengthBytes – 13-битный элемент данных, указывающий длину байта последующего AudioMuxElement () с побайтным выравниванием (AudioSyncStream) или последующего EPMuxElement () (EPAudioSyncStream).

AudioMuxElement () – мультиплексный элемент, как определено в 3.7.3.2.2.

3.7.2.2.2 EPAudioSyncStream ()

futureUse – 4-битный элемент данных для будущего использования, должно быть установлено в ‘0000’.

audioMuxLengthBytes (см. 3.7.2.2.1).

frameCounter – 5-битный элемент данных, который используется для обнаружения потерянных фреймов. Число непрерывно увеличивается для каждого мультиплексного элемента.

headerPahty – 18-битный элемент данных, который содержит ВСН(36,18) код, сокращенный от ВСН(63,45) для элементов audioMuxLengthBytes и frameCounter. Полиномиальный генератор х+х+1. Значение вычисляется при помощи этого генератора, как описано в 3.8.4.3.

EPMuxElement () – эластичный мультиплексный элемент, как определено в 3.7.3.2.1.

3.7.2.2.3 AudioPointerStream ()

AudioPointerStreamFrame () – синхронизирующий фрейм фиксированной длины, предоставляемый основным уровнем передачи.

audioMuxElementStartPointer – элемент данных, указывающий начальную точку первого AudioMuxElement () в пределах текущего AudioPointerStreamFrame (). Число битов, требуемых для этого элемента данных, вычисляется как ceil(log2(syncFrameLength)). Длина фрейма передачи должна быть получена из основного уровня передачи. Максимально возможное значение этого элемента данных зарезервировано для сигнализации отсутствия начала AudioMuxElement () в этом синхронизирующем фрейме.

audioMuxElementChunk – часть конкатенации последующих AudioMuxElement ().

3.7.3 Мультиплексный уровень

Уровень LATM мультиплексирует несколько полезных нагрузок MPEG-4 Аудио и AudioSpecificConfig () элементов синтаксиса в один мультиплексный элемент. Мультиплексированный формат элемента выбирается между AudioMuxElement () и EPMuxElement () в зависимости от того, требуется ли способность исправления ошибок в мультиплексном элементе или нет. EPMuxElement () является эластичной версией AudioMuxElement () и может использоваться для каналов с ошибками.

Мультиплексированные элементы могут быть непосредственно переданы на уровнях передачи с синхронизацией фрейма. В этом случае первый бит мультиплексного элемента должен соответствовать первому биту полезной нагрузки основного уровня передачи. Если полезная нагрузка передачи требует побайтного выравнивания, биты пэддинга должны следовать за мультиплексируемым элементом. Количество битов пэддинга должно быть меньше 8. Эти биты должны быть удалены при демультиплексации элемента в полезные нагрузки MPEG-4 Аудио. Затем полезные нагрузки MPEG-4 Аудио передаются соответствующему инструменту декодера MPEG-4 Аудио.

Использование LATM в случае масштабируемых конфигураций с ядром CELP и уровнем (уровнями) расширения ААС:

– экземпляры класса AudioMuxElement () передаются равноотстоящим способом;

– представленный период одного AudioMuxElement () подобен суперфрейму;

– отношение числа битов определенного уровня в пределах любого AudioMuxElement () к общему количеству битов в пределах этого AudioMuxElement () равно отношению скорости передачи того уровня к скорости передачи всех слоев.

В случае, когда coreFrameOffset = 0 и latmBufferFullness = 0, все основные фреймы кодера и все фреймы ААС определенного суперфрейма сохраняются в пределах того же самого экземпляра класса AudioMuxElement ().

В случае coreFrameOffset> 0 несколько или все основные фреймы кодера сохраняются в пределах предыдущих экземпляров класса ofAudioMuxElement ().

Любая информация о конфигурации основного уровня относится к основным фреймам, переданным в пределах текущего экземпляра класса AudioMuxElement (), независимо от значения coreFrameOffset:

– указанный latmBufferFullness связан с первым фреймом ААС первого суперфрейма, сохраненного в пределах текущего AudioMuxElement ();

– значение latmBufferFullness может использоваться, чтобы определить местоположение первого бита первого фрейма ААС текущего уровня первого суперфрейма, сохраненного в пределах текущего AudioMuxElement () посредством backpointer:

backPointer = – meanFrameLength + latmBufferFullness + currentFrameLength.

Значение backpointer определяет позицию, как отрицательное смещение от текущего AudioMuxElement (), то есть указывает на начало фрейма ААС, расположенное в полученных данных. Любые данные, не принадлежащие полезной нагрузке текущего уровня ААС, не принимаются во внимание. Если (latmBufferFullness == ‘0’), то фрейм ААС начинается после текущего AudioMuxElement ().

Возможные конфигурации LATM ограничены из-за сигнализации определенных элементов данных следующим образом:

– число уровней: 8 (numLayer имеет 3 бита);

– число потоков: 16 (streamlndx имеет 4 бита);

– число участков памяти: 16 (numChuck имеет 4 бита).

3.7.3.1 Синтаксис (см. таблицы 39, 40, 41, 42, 43, 44).

Таблица 39 – Синтаксис EPMuxElement ()

Окончание таблицы 39

Таблица 40 – Синтаксис AudioMuxElement ()

Таблица 41 – Синтаксис StreamMuxConfig ()

Окончание таблицы 41

_______________
Примечание 1 – AudioSpecificConfig () возвращает количество считанных битов.

Таблица 42 – Синтаксис LatmGetValue ()

Таблица 43 – Синтаксис PayloadLengthlnfo ()

Таблица 44 – Синтаксис PayloadMux ()

3.7.3.2 Семантика

3.7.3.2.1 EPMuxElement ()

Для обнаружения EPMuxElement () флаг epDataPresent должен быть дополнительно установлен в основном уровне. Если epDataPresent установлен в 1, это указывает, что у EPMuxElement () есть защита от ошибок. В противном случае формат EPMuxElement () идентичен AudioMuxElement (). Значение по умолчанию для обоих флагов 1.

epDataPresent

Описание

0

EPMuxElement() идентично AudioMuxElement()

1

EPMuxElement() имеет защиту от ошибок

epUsePreviousMuxConfig флаг, указывающий, применена ли конфигурация инструмента ЕР MPEG-4 Аудио для предыдущего фрейма в текущем фрейме.

epUsePreviousMuxConfig Description

Описание

0

Конфигурация для инструмента ЕР MPEG-4 Аудио присутствует

1

Конфигурация для инструмента ЕР MPEG-4 Аудио отсутствует. Должна быть применена предыдущая конфигурация

epUsePreviousMuxConfigParity – 2-битный элемент, который содержит паритет для epUsePreviousMuxConfig.

Каждый бит – повторение epUsePreviousMuxConfig. Решение принимается по максимуму.

epSpecificConfigLength – 10-битный элемент данных, определяющий размер ErrorProtectionSpecificConfig ().

epSpecificConfigLength Parity – 11-битный элемент данных для epHeaderLength.

Примечание – Это означает, что используется укороченный код Golay (23, 12).

ErrorProtectionSpecificConfig () – функция, содержащая данные конфигурации для инструмента ЕР, к которому относятся AudioMuxElement ().

ErrorProtectionSpecificConfigParity () – функция, содержащая биты четности для ErrorProtectionSpecificConfig ().

EPAudioMuxElement () – функция, содержащая эластичный мультиплексный элемент, генерируемый с использованием инструмента ЕР к AudioMuxElement (), как определено ErrorProtectionSpecificConfig (). Поэтому элементы данных в AudioMuxElement () подразделяются на различные категории в зависимости от их чувствительности к ошибкам и собираются в экземплярах класса этих категорий.

Определены следующие категории чувствительности:

Элементы

Категория чувствительности к ошибкам

useSameStreamMux + StreamMuxConfig ()

1

PayloadLengthlnfo ()

2

PayloadMux ()

3

otherDataBits

4

Примечание 1 – Может быть больше чем один экземпляр класса категорий чувствительности к ошибкам 1 и 2 в зависимости от значения переменной numSubFrames, определенных в StreamMuxConfig (). Рисунок 2 показывает пример порядка экземпляров класса при numSubFrames = 1.

Примечание 2 – EPAudioMuxElement () должен быть побайтно выровненным, поэтому bit_stuffing inErrorProtectionSpecificConfig () должно быть всегда включено.

Рисунок 2 – Порядок следования экземпляров класса в EPAudioMuxElement ()

Рисунок 2 – Порядок следования экземпляров класса в EPAudioMuxElement ()

3.7.3.2.2 AudioMuxElement ()

Для обнаружения AudioMuxElement () флаг muxConfigPresent должен быть установлен в основном уровне. Если muxConfigPresent установлен в 1, это сигнализирует, что конфигурация мультиплексирования (StreamMuxConfig ()) является мультиплексируемой в AudioMuxElement (), то есть имеет место передача в полосе. В противном случае, StreamMuxConfig () должен быть передан вне полосы с использованием протоколов объявления/описания/управления сеансом.

muxConfigPresent

Описание

0

Передача вне полосы StreamMuxConfig ()

1

Передача в полосе StreamMuxConfig ()

useSameStreamMux – флаг применения конфигурации мультиплексирования предыдущего фрейма в текущем фрейме.

useSameStreamMux

Описание

0

Конфигурация мультиплексирования присутствует

1

Конфигурация мультиплексирования отсутствует. Предыдущая конфигурация должна быть применена

otherDataBit – 1-битовый элемент данных, указывающий наличие других данных.

3.7.3.2.3 StreamMuxConfig ()

AudioSpecificConfig () определен в 3.6.2.1. В таком случае это является автономным элементом.

audioMuxVersion – элемент данных для сигнализации об используемом мультиплексном синтаксисе.

Примечание – В дополнение к (audioMuxVersion == 0), (audioMuxVersion == 1) поддерживает передачу taraBufferFullness и передачу длин отдельных AudioSpecificConfig () функции данных.

audioMuxVersionA – элемент данных для сигнализации используемой версии синтаксиса. Возможные значения: 0 (значение по умолчанию), 1 (зарезервировано для будущих расширений).

taraBufferFullness – вспомогательная переменная, указывающая состояние резервуара битов в ходе кодирования информации о статусе LATM. Это передается как число доступных битов в резервуаре битов tara, деленное на 32 и округленное до целого значения. Максимальное значение, которое допустимо для сигнализации с использованием любой установки сигналов bytesForValue, таких, что отдельная программа и уровень имеют переменную скорость. Возможные варианты: FF (bytesForValue == 0), FFFF (bytesForValue == 1), FFFFFF (bytesForValue == 2) или FFFFFFFF (bytesForValue == 3). В этих случаях заполнение буфера не применимо. Информация о состоянии LATM taraBufferFullness включает любые данные AudioMuxElement (), кроме PayloadMux ().

allStreamsSameTimeFraming – элемент данных, указывающий, все ли полезные нагрузки, мультиплексированные в inPayloadMux (), используют общее время.

numSubFrames – элемент данных, указывающий, сколько фреймов PayloadMux () мультиплексируются (numSubFrames+1). Если мультиплексируется более чем один фрейм PayloadMux (), все PayloadMux () используют общий StreamMuxConfig (). Минимальное значение (0) соответствует 1 подфрейму.

numProgram – элемент данных, указывающий, сколько программ мультиплексируются (numProgram +1).

Минимальное значение (0) соответствует 1 программе.

numLayer – элемент данных, указывающий, сколько масштабируемых уровней мультиплексируются (numLayer+1).

Минимальное значение (0) соответствует 1 уровню.

useSameConfig – элемент данных, указывающий, что не передается AudioSpecificConfig (), однако должен быть применен последний принятый AudioSpecificConfig ().

useSameConfig

Описание

0

AudioSpecificConfig () присутствует

1

AudioSpecificConfig () отсутствует. Должен быть применен AudioSpecificConfig () предыдущего уровня или программы

ascLen [prog] [lay] – вспомогательная переменная, указывающая длину в битах subsequentAudioSpecificConfig (), включая возможные биты заполнения.

fillBits – биты заполнения.

frameLengthType – элемент данных, указывающий тип длины фрейма полезной нагрузки. Для объектов CELP и HVXC длина фрейма (бит/фрейм) сохранена в таблицах; передаются только индексы для указания длины фрейма текущей полезной нагрузки.

frameLengthType

Описание

0

Полезная нагрузка с переменной длиной фрейма. Длина полезной нагрузки в байтах непосредственно определена с 8-битовыми кодами в PayloadLengthInfo ()

1

Полезная нагрузка с фиксированной длиной фрейма. Длина полезной нагрузки в битах определена с frameLength в StreamMuxConfig ()

2

В резерве

3

Полезная нагрузка для CELP с одним из 2 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно, CELPframeLengthTablelndex и MuxSlotLengthCoded

4

Полезная нагрузка для объектов CELP или ER_CELP с фиксированной длиной фрейма. CELPframeLengthTablelndex определяет длину полезной нагрузки

5

Полезная нагрузка для объекта ER_CELP с одним из 4 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно: CELPframeLengthTablelndex и MuxSlotLengthCoded

6

Полезная нагрузка для объектов HVXC или ER_HVXC с фиксированной длиной фрейма. HVXCframeLengthTablelndex определяет длину полезной нагрузки

7

Полезная нагрузка для объектов HVXC или ER_HVXC с одним из 4 видов длины фрейма. Длина полезной нагрузки определена двумя индексами таблиц, а именно: HVXCframeLengthTablelndex и MuxSlotLengthCoded

latmBufferFullness [streamID [prog] [lay]] – элемент данных, указывающий состояние резервуара битов в ходе кодирования первого блока доступа отдельной программы и уровня в AudioMuxElement (). Передается как количество доступных битов в резервуаре битов, деленное на NCC, деленное на 32 и округленное до целого значения. Шестнадцатеричное значение FF сообщает о том, что отдельная программа и уровень имеют переменную скорость. В этом случае полнота буфера не применима.

В случае (audioMuxVersion == 0) биты, потраченные на данные, отличные от любой полезной нагрузки (например, мультиплексная информация или другие данные) определяются первым latmBufferFullness в AudioMuxElement (). Для ААС применяются ограничения, вызванные минимальным входным буфером декодера. В случае (allStreamsSameTimeFraming == 1) и присутствия только одной программы и одного уровня, это приводит к конфигурации LATM, подобной ADTS.

В случае (audioMUxVersion == 1) биты, потраченные на данные, отличные от любой полезной нагрузки, определяются taraBufferFullness.

coreFrameOffset идентифицирует первый фрейм CELP текущего суперфрейма. Это определено только в случае масштабируемых конфигураций с ядром CELP и уровнем (уровнями) расширения ААС и передается с первым уровнем расширения ААС. Значение 0 идентифицирует первый фрейм CELP после StreamMuxConfig () как первый фрейм СЕLР текущего суперфрейма. Значение > 0 сигнализирует число фреймов CELP таких, что первый фрейм CELP текущего суперфрейма передан ранее.

frameLength – элемент данных, указывающий длину фрейма полезной нагрузки c frameLengthType 1. Длина полезной нагрузки в битах определена как 8 * (frameLength + 20).

CELPframeLengthTablelndex – элемент данных, указывающий один из двух индексов, соответствующих длине фрейма для объектов CELP или ER_CELP (таблица 47 и таблица 48).

HVXCframeLengthTablelndex – элемент данных, указывающий один из двух индексов, соответствующих длине фрейма для объектов HVXC или ER_HVXC (таблица 46).

otherDataPresent – флаг, указывающий присутствие данных, отличных от звуковых полезных нагрузок.

otherDataPresent

Описание

0

данные не мультиплексированы

1

данные мультиплексированы

otherDataLenBits

– вспомогательная переменная, указывающая длину в битах других данных.

crcCheckPresent

– элемент данных, указывающий наличие битов CRC для StreamMuxConfig ().

crcCheckPresent

Описание

0

CRC биты не присутствуют

1

CRC биты присутствуют

crcCheckSum – проверочная сумма CRC. Используется образующий полином CRC8, как определено в 3.8.4.5. Охватывает весь StreamMuxConfig () до бита crcCheckPresent (без его включения в проверку).

3.7.3.2.4 LatmGetValue ()

bytesForValue – элемент данных, указывающий число элементов данных valueTmp.

valueTmp – элемент данных, используемый для вычисления вспомогательной переменной value.

value – вспомогательная переменная, содержащая значение, возвращенное функцией LatmGetValue ().

3.7.3.2.5 PayloadLengthlnfo ()

tmp – элемент данных, указывающий длину полезной нагрузки с frameLengthType 0. Значение 255 используется как escape и указывает, что, по крайней мере, еще одно значение tmp следует. Полная длина переданной полезной нагрузки вычисляется путем суммирования значений частей.

MuxSlotLengthCoded – элемент данных, указывающий один из двух индексов, соответствующих длине полезной нагрузки для объектов CELP, HVXC, ER_CELP и ER_HVXC.

numChunk – элемент данных, указывающий число участков памяти полезной нагрузки (numChunk+1). Каждый участок памяти может принадлежать блоку доступа с различным временем; используется, только если allStreamsSameTimeFraming установлен на ноль. Минимальное значение (0) соответствует 1 участку памяти.

streamlndx – элемент данных, указывающий поток. Используется, если полезные нагрузки разбивают на участки памяти.

chunkCnt – вспомогательная переменная для подсчета числа участков памяти.

progSlndx, laySlndx – вспомогательные переменные для идентификации программы и числа уровня от streamlndx.

progClndx, layClndx – вспомогательные переменные для идентификации программы и числа уровня от chunkCnt.

AuEndFlag – флаг, указывающий, является ли полезная нагрузка последним фрагментом в случае, если блок доступа передан по частям.

AuEndFlag

Описание

0

фрагментированная часть не является последней

1

фрагментированная часть – последняя

3.7.3.2.6 PayloadMux ()

payload – фактическая звуковая полезная нагрузка любого блока доступа (allStreamsSameTimeFraming == 1) или части конкатенации последующих блоков доступа (allStreamsSameTimeFraming ==0).

3.7.3.3 Таблицы

Длины фреймов приведены в таблицах 45, 46, 47.

Таблица 45 – Длина фрейма HVXC, биты

Фрейм

MuxSlotLengthCoded

frameLength Type[ ]

HVXCframeLengthTablelndex[ ]

00

01

10

11

6

0

40

6

1

80

7

0

40

28

2

0

7

1

80

40

25

3

Таблица 46 – Длина фрейма CELP уровня 0, биты

CELP frameLengh Tablelndex

Fixed-Rate frameLength Type[

1-of-4 Rates (сжатие молчания) frameLengthType[ ]=5

1-of-2 Rates (FRC) frameLengthType[ ]=3

MuxSlotLengthCoded

MuxSlotLengthCoded

00

01

10

11

00

01

0

154

156

23

8

2

156

134

1

170

172

23

8

2

172

150

2

186

188

23

8

2

188

166

3

147

149

23

8

2

149

127

4

156

158

23

8

2

158

136

5

165

167

23

8

2

167

145

6

114

116

23

8

2

116

94

7

120

122

23

8

2

122

100

8

126

128

23

8

2

128

106

9

132

134

23

8

2

134

112

10

138

140

23

8

2

140

118

11

142

144

23

8

2

144

122

12

146

148

23

8

2

148

126

13

154

156

23

8

2

156

134

14

166

168

23

8

2

168

146

15

174

176

23

8

2

176

154

16

182

184

23

8

2

184

162

17

190

192

23

8

2

192

170

18

198

200

23

8

2

200

178

19

206

208

23

8

2

208

186

20

210

212

23

8

2

212

190

21

214

216

23

8

2

216

194

22

110

112

23

8

2

112

90

23

114

116

23

8

2

116

94

24

118

120

23

8

2

120

98

25

120

122

23

8

2

122

100

26

122

124

23

8

2

124

102

27

186

188

23

8

2

188

166

28

218

220

40

8

2

220

174

29

230

232

40

8

2

232

186

30

242

244

40

8

2

244

198

31

254

256

40

8

2

256

210

32

266

268

40

8

2

268

222

33

278

280

40

8

2

280

234

34

286

288

40

8

2

288

242

35

294

296

40

8

2

296

250

36

318

320

40

8

2

320

276

37

342

344

40

8

2

344

298

38

358

360

40

8

2

360

314

39

374

376

40

8

2

376

330

40

390

392

40

8

2

392

346

41

406

408

40

8

2

408

362

42

422

424

40

8

2

424

378

43

136

138

40

8

2

138

92

44

142

144

40

8

2

144

98

45

148

150

40

8

2

150

104

46

154

156

40

8

2

156

110

47

160

162

40

8

2

162

116

48

166

168

40

8

2

168

122

49

170

172

40

8

2

172

126

50

174

176

40

8

2

176

130

51

186

188

40

8

2

188

142

52

198

200

40

8

2

200

154

53

206

208

40

8

2

208

162

54

214

216

40

8

2

216

170

55

222

224

40

8

2

224

178

56

230

232

40

8

2

232

186

57

238

240

40

8

2

240

194

58

216

218

40

8

2

218

172

59

160

162

40

8

2

162

116

60

280

282

40

8

2

282

238

61

338

340

40

8

2

340

296

62-63

Зарезервировано

Таблица 47 – Длина фрейма CELP уровней 1-5, биты

CELPframeLenghTablelndex

Fixed-Rate frameLengthType [ ]=4

1-of-4 Rates (сжатие молчания) frameLengthType[ ]=5

MuxSlotLengthCoded

00

01

10

11

0

80

80

0

0

0

1

60

60

0

0

0

2

40

40

0

0

0

3

20

20

0

0

0

4

368

368

21

0

0

5

416

416

21

0

0

6

464

464

21

0

0

7

496

496

21

0

0

8

284

284

21

0

0

9

320

320

21

0

0

10

356

356

21

0

0

11

380

380

21

0

0

12

200

200

21

0

0

13

224

224

21

0

0

14

248

248

21

0

0

15

264

264

21

0

0

16

116

116

21

0

0

17

128

128

21

0

0

18

140

140

21

0

0

19

148

148

21

0

0

20-63

Зарезервировано

3.8 Защита от ошибок

3.8.1 Краткий обзор инструментов

Для типов звуковых объектов, устойчивых к ошибкам, может быть применен инструмент защиты от ошибок (ЕР). Об использовании этого инструмента сигнализирует поле epConfig. Вход декодера инструмента ЕР состоит из блоков доступа с защитой от ошибок. В случае если об использовании декодера инструмента ЕР сигнализирует epConfig, применяются следующие ограничения:

– существует один элементарный поток на уровень масштабируемости, или только один элементарный поток в случае немасштабируемых конфигураций;

– на выходе декодера ЕР имеется набор нескольких классов ЕР. Конкатенация классов ЕР на выходе декодера ЕР идентична данным с epConfig = 0.

Определение класса ЕР зависит от epConfig и directMapping. Для epConfig = 2 классы ЕР не имеют строгого определения. Их точный контент должен быть определен на прикладном уровне, хотя вышеупомянутые ограничения должны быть выполнены. Для epConfig = 3, нормативно определено соответствие между классами ЕР и экземплярами класса категорий чувствительности к ошибкам (ESCs). В этом случае о соответствии сообщает directMapping. В случае, если directMapping = 1, каждый класс ЕР соответствует только одному экземпляру класса категорий чувствительности к ошибкам. Выход декодера ЕР в этом случае идентичен случаю epConfig = 1. Рисунок 3 подводит итог использования классов ЕР, в зависимости от значения epConfig.

Рисунок 3 – Классы ЕР для различных значений epConfig

Рисунок 3 – Классы ЕР для различных значений epConfig

Инструмент защиты от ошибок (инструмент ЕР) обеспечивает неравную защиту от ошибок (UEP) для кодеков ИСО/МЭК 14496-3. Основные особенности инструмента ЕР следующие:

– обеспечение набора кодов с обнаружением/исправлением ошибок различного масштаба в основной части и в избыточной части;

– обеспечение универсальной и эффективной, с точки зрения канала передачи, защитой от ошибок, которая охватывает как потоки фреймов фиксированной длины, так и потоки фреймов переменной длины;

– обеспечение управления конфигурацией UEP c низкими задержками.

Основная идея UEP состоит в разделении фреймов на подфреймы согласно чувствительности к ошибкам в символе (эти подфреймы именуются классами в следующих подразделах) и защите этих подфреймов с соответствующим уровнем FEC и/или CRC. Без этого качество декодированного звука определяется степенью повреждения наиболее чувствительной части. Таким образом самое сильное FEC/CRC должно быть применено к целому фрейму, что требует гораздо большей избыточности.

Чтобы применить UEP к звуковым фреймам, должна быть запрошена следующая информация:

1) число классов;

2) число битов, которое содержит каждый класс;

3) код CRC, который будет применяться для каждого класса. Представлен как CRC-биты;

4) код FEC, который будет применяться для каждого класса.

Эту информацию в следующих разделах называют “параметрами конфигурации фрейма”. Та же самая информация используется при декодировании фреймов UEP; следовательно они должны быть переданы. Чтобы передать их эффективно, учитываются структуры фреймов MPEG-4 Аудио.

Существует три различных подхода к организации структуры фрейма MPEG-4 Аудио с точки зрения UЕР:

1) конфигурация всех фреймов остается постоянной во время передачи (как в CELP);

2) используется определенный набор конфигурации (как в TwinVQ);

3) большинство параметров является постоянными при передаче, однако некоторые могут меняться от фрейма к фрейму (как в ААС).

Для реализации этих подходов инструмент ЕР использует два пути передачи параметров конфигурации фреймов. Первый представляет собой сигнализацию вне полосы, аналогично передаче параметров конфигурации кодека. Так передаются общие параметры фреймов. В случае, если есть несколько шаблонов конфигурации, эти шаблоны передаются с индексами. Другой путь заключается в передаче внутри полосы, при которой задается структура фрейма ЕР с заголовком. Только те параметры, которые не переданы вне полосы, передаются этим способом. Это позволяет минимизировать количество избыточной внутриполосной информации, произведенной инструментом ЕР.

С этими параметрами каждый класс кодируется и декодируется по FEC/CRC. Для увеличения производительности защиты от ошибок используется метод чередования. Цель чередования состоит в рандомизации пакетов ошибок в пределах фреймов, и это нежелательно для незащищенного класса из-за наличия других инструментов обработки ошибок, цель которых состоит в локализации действия ошибок; а рандомизация может оказывать негативное влияние на такую часть полезного битового потока.

Схемы кодера и декодера ЕР представлены на рисунках 4 и 5.

Рисунок 4 – Схема кодера ЕР

Рисунок 4 – Схема кодера ЕР

Рисунок 5 – Схема декодера ЕР

Рисунок 5 – Схема декодера ЕР

3.8.2 Синтаксис

3.8.2.1 Конфигурация защиты от ошибок

Эта часть определяет синтаксис конфигурации для защиты от ошибок (см. таблицу 48).

Таблица 48 – Синтаксис ErrorProtectionSpecificConfig ()

3.8.2.2 Полезные нагрузки защиты от ошибок

Эта часть определяет синтаксис защищенного звукового полезного битового потока. Этот вид синтаксиса может быть выбран установкой epConfig=2 или epConfig=3. Это характерно для всех типов звуковых объектов. Если используется MPEG-4, то один ep_frame () непосредственно соответствует одному блоку доступа (см. таблицы 49, 50, 51, 52).

Таблица 49 – Синтаксис ep_frame ()

Таблица 50 – Синтаксис ep_header ()

Таблица 51 – Синтаксис class_attrib ()

Таблица 52 – Синтаксис ep_encoded_classes ()

3.8.3 Общая информация

3.8.3.1 Определения

ErrorProtectionSpecificConfig () – конфигурация защиты от ошибок, которая является внеполосной информацией;

number_of_predefined_set – номер предопределенного набора;

interleave_type – это переменная определяющая тип чередования. (interleave_type == 0), означает “без чередования”, (interleave_type == 1) означает “внутрикадровое чередование” и (interleave_type == 2) включает режим дополнительной настройки чередования для каждого класса. Подробнее дано в 3.8.4.8. (interleave_type == 3), зарезервировано;

bit_stuffing – сигнализация использования заполнения для обеспечения побайтного выравнивания:

1 – заполнение используется.

0 – заполнение не используется. Это подразумевает, что для данной конфигурации гарантировано побайтное выравнивание фрейма ЕР;

number_of_concatenated_frame – количество исходных фреймов кодера на один защищенный фрейм.

Объединения фреймов в зависимости от number_of_concatenated_frame приведены в таблице 53.

Таблица 53 – Объединение фреймов в зависимости от number_of_concatenated_frame

Кодовое слово

000

001

010

011

100

101

110

111

Количество объединяемых фреймов

резерв

1

2

3

4

5

6

7

number_of_class [i] – количество классов для i-го предопределенного набора;

length_escape [i] [j] – если 0, то длина j-го класса в i-ом предопределенном наборе имеет фиксированное значение; если 1, длина является переменной. В случае “until the end” это значение должно быть равно 1, и number_of_bits_for_length [i] [j] должно быть равно 0;

rate_escape [i] [j] – если 0, скорость кода SRCPC j-го класса в i-ом предопределенном наборе имеет фиксированное значение. Если 1, то о скорости кода сообщается в полосе;

crclen_escape [i] [j] – если 0, длина CRC j-го класса в i-ом предопределенном наборе имеет фиксированное значение; если 1, то о CRCIength сообщается в полосе;

concatenate_flag [i] [j] – параметр, определяющий, связан ли j-ый класс i-го предопределенного набора или нет. 0 означает “несвязанный”, 1 – “связанный” (см. 3.8.4.4);

fec_type [i] [j] – параметр определяющий, используется ли SRCPC код (“0”) или RS код (“1” или “2”) для защиты j-го класса i-го предопределенного набора. Класс, защищенный кодом RS, должен быть побайтно выровненным. Если эта область установлена в “2”, это означает, что этот класс защищен RS и объединен со следующим классом, как один код RS. Если более чем два последующих класса имеют значение “2” для этой области, то эти классы объединены и кодированы как один код RS. Если эта область равна “1”, то этот класс не объединяется со следующим. Это означает, что текущий класс – последний, который будет связан перед кодированием RS, или этот класс – с независимым RS кодированием;

termination_switch [i] [j] – параметр, определяющий, закончен ли j-ый класс i-го предопределенного набора или нет, при коде SRCPC. См. 3.8.4.6.2;

interleave_switch [i] [j] – параметр, определяющий, как чередовать j-ый класс i-го предопределенного набора;

0 – без чередования;

1 – чередование без чередования внутри класса: ширина чередования равна числу битов в пределах текущего класса, если (fec_type == 0), или числу байтов в пределах текущего класса, если (fec_type == 1 || fec_type == 2);

2 – чередование с чередованием внутри класса: ширина чередования = 28, если (fec_type == 0); это значение зарезервировано, если (fec_type == 1 || fec_type == 2);

3 – связанный (см. 3.8.4.8.2.2);

class_optional – флаг, сигнализирующий, является ли класс обязательным (class_optional == 0) или дополнительным (class_optional == 1). Этот флаг может использоваться, чтобы уменьшить избыточность в пределах ErrorProtectionSpecificConfig. Обычно это необходимо для определения 2 наборов, где наборов, где равняется числу дополнительных классов (см. 3.8.4.2);

number_of_bits_for_length [i] [j] – область, существующая только когда length_escape [i] [j] = 1. Это значение показывает количество битов для длины класса при сигнализации внутри полосы. Это значение должно быть установлено, если подразумевается максимальная длина класса. Значение 0 соответствует режиму “до конца”;

class_length [i] [j] – область, существующая только, когда length_escape [i] [j] = 0. Это значение показывает длину j-го класса в i-ом предопределенном наборе, которая является фиксированной при передаче;

class_rate [i] [j] – эта область существует только, когда rate_escape [i] [j]=0. В случае если fec_type [i] [j] = 0, это значение соответствует скорости кода SRCPC j-го класса в i-ом предопределенном наборе, фиксированным во время передачи. Значение от 0 до 24 соответствует скорости кода от 8/8 до 8/32 соответственно. В случае если fec_type [i] [j] равен 1 или 2, это значение показывает количество ошибочных байтов, которое может быть исправлено кодом RS (см. 3.8.4.7). Все классы, для которых сигнализируется объединение с fec_type [i] [j], должны иметь то же самое значение class_rate [i] [j];

class_crclen [i] [j] – область, существующая только, когда crclen_escape [i] [j] = 0. Это значение показывает длину CRC j-го класса в i-ом предопределенном наборе, фиксированным во время передачи. Значение должно быть в диапазоне 0-18, что соответствует длине CRC 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 24 или 32;

class_reordered_output – если это значение “1”, то выход классов от декодера ЕР переупорядочен. Если “0”, никакой обработки не применяется;

class_output_order [i] [j] – область, существующая, когда class_reordered_output установлен в “1”, для сигнализации порядка класса после переупорядочения. j-ый класс i-го предопределенного набора выводится как class_output_order [i] [j]-ый класс от ЕР декодера;

header_protection – значение, указывающее режим защиты заголовка от ошибок. 0 указывает на использование основного набора FEC, а 1 – на использование расширенной защиты заголовка от ошибок, как определено в 3.8.4.3. Расширенная защита от ошибок заголовка применяется, только если длина заголовка превышает 16 битов;

header_rate, header_crclen – значения, имеющее ту же семантику, что и class_rate [i] [j] и class_crclen [i] [j] соответственно, в то время как эта защита от ошибок используется для защиты части заголовка;

ep_frame () – защищенный фрейм;

ep_header () – кодированная ЕР информация заголовка;

ep_encoded_classes () – ЕР кодированная ЕР звуковая информация;

interleaved_frame_mode1 – информационные биты после чередования в режиме 1;

interleaved_frame_mode2 – информационные биты после чередования в режиме 2;

stuffing_bits – биты наполнения для выравнивания октета фрейма ЕР. Число битов Nstuff сигнализируется в class_attrib () и должно быть в диапазоне ()…7;

choice_of_pred – выбор предопределенного набора;

choice_of_pred_parity – биты четности для choice_of_pred;

class_attrib_parity – биты четности для class_attrib ();

class_attrib () – атрибутная информация для каждого класса;

class_bit_count [j] – число информационных битов в классе. Эта область существует только в случае, если length_escape в информации из полосы равен 1 (Escape). О количестве битов этого параметра Nbitcount сообщается внутри полосы;

class_code_rate [j] – скорость кодирования звуковых данных, принадлежащих классу в таблице 54. Эта область существует только в случае, если rate_escape в информации из полосы равно 1 (Escape).

Таблица 54 – Скорость кодирования для звуковых данных, принадлежащих классу

Кодовое слово

000

001

010

011

100

101

110

111

Скорость преобразования

8/8

8/11

8/12

8/14

8/16

8/20

8/24

8/32

Картина преобразования

FF, 00 00, 00

FF, A8 00, 00

FF, AA 00, 00

FF, ЕЕ 00, 00

FF, FF 00, 00

FF, FF AA, 00

FF, FF FF, 00

FF, FF FF, FF

class_crc_count [j] – число битов CRC для звуковых данных, принадлежащих классу в таблице 55. Эта область существует только в случае, если crclen_escape равен 1 (Escape).

Таблица 55 – Число битов CRC для звуковых данных, принадлежащих классу

Кодовое слово

000

001

010

011

100

101

110

111

Число битов CRC

0

6

8

10

12

14

16

32

Число битов CRC для звуковых данных, принадлежащих классу, приведены в таблице 55.

num_stuffing_bits – число битов стаффинга для выравнивания октета фрейма ЕР. Эта область существует только в случае, если bit_stuffing равен 1;

ep_encoded_class [j] CRC/SRCPC – закодированные звуковые данные j-го класса. Если class_bit_count [j] == 0, звуковые данные j-го класса не закодированы CRC/SRCPC/SRS.

3.8.4 Описание инструмента

3.8.4.1 Внеполосная информация

Контент внеполосной информации представлен посредством ErrorProtectionSpecificConfig (). Некоторые примеры конфигурации представлены в приложении Б.

Длина последнего класса, обработанного декодером ЕР (до любого последующего переупорядочения, как описано в 3.8.4.9), не должна быть передана явно, однако возможна сигнализация “до конца”. В MPEG-4 Системы системный уровень гарантирует границу звукового фрейма, устанавливая в соответствие один звуковой фрейм одному блоку доступа. Поэтому длина класса “до конца” может быть вычислена по длине других классов и общей длине кодированных ЕР звуковых фреймов.

Флаг class_optional может использоваться для уменьшения избыточности в пределах ErrorProtectionSpecificConfig (). Однако инструмент ЕР так же работает с тем же самым числом предопределенных наборов. Если есть классов с (class_optional == 1), этот предопределенный набор расширяется до 2 классов с (class_optional == 1), этот предопределенный набор расширяется до 2 предопределенных наборов. Разворачивание наборов описано в следующем подразделе.

3.8.4.2 Предопределенные наборы

В этом подразделе описывается постобработка, вход которой – ErrorProtectionSpecificConfig () с переключателем “class_optional“, а выход – предопределенные наборы, используемые для параметров ep_frame ().

Общая процедура

Каждый предопределенный набор расширяется до 2 предопределенных наборов, где NCO[i] – число классов с (class_optional == 1) в i-ом оригинальном предопределенном наборе. После этого любой класс с (class_optional == 1) упоминается как optClass.

Эти расширенные наборы начинаются с “все optClasses существуют” и заканчиваются “никаких optClasses не существует”. Алгоритм:

где optClassExists [k] сообщает, существует ли k-ый optClass предопределенного набора (1) или нет (0) в определяющем новом предопределенном наборе.

DefineTransPred (transPred, i, optClassExists) определяет transPred-ый новый предопределенный набор, используемый для передачи. Этот новый предопределенный набор – копия i-го оригинального предопределенного набора, кроме того, что он не имеет optClasses, optClassExists которого равняется 0.

Пример

ErrorProtectionSpecificConfig () определяет предопределенные наборы следующим образом: После предварительной обработки, описанной выше, предопределенные наборы, используемые для ep_frame (), устанавливаются следующим образом:

3.8.4.3 Внутриполосная информация

Информация фрейма ЕР, которая не включена во внеполосную информацию, является внутриполосной информацией. Параметры, относящиеся к этой информации, передаются как заголовок фрейма ЕР. Существуют следующие параметры:

– выбор предопределенного набора;

– количество битов стаффинга для побайтного выравнивания;

– информация о классе, которая не включена во внеполосную информацию.

Декодер ЕР не может декодировать звуковую информацию фрейма без этих параметров, и, таким образом, они должны обладать защитой от ошибок, более сильной или равной защите других частей. С учетом этого выбор предопределенного набора должен быть обработан отдельно от других частей. Это следует из того, что длина информации о классе может быть изменена в соответствии с предопределенным набором. Поэтому этот параметр кодируется FEC независимо от других частей. На стороне декодера в первую очередь декодируется выбор предопределенного, а затем вычисляется длина оставшейся части заголовка и декодируется.

FEC применяется для этих частей следующим образом:

Основной набор кодов FEC приведен в таблице 56.

Таблица 56 – Основной набор кодов FEC для внутриполосной информации

Количество необходимых битов

Код FEC

Общее число битов

Длина кодового слова

1-2

Большинство (повторение 3 раза)

3-6

3

3-4

ВСН(7,4)

6-7

6-7

5-7

ВСН(15,7)

13-15

13-15

8-12

Golay(23,12)

19-23

19-23

13-16

ВСН(31,16)

28-31

28-31

17

RCPC 8/16 +4-бит CRC

50

Примечания

1 общее количество битов: число битов после FEC кодирования.

2 ширина чередования: ширина матрицы чередования, см. также 3.8.4.8.

3 Npred_parity (или Nattrib_parity) = общее количество битов минус число битов, которые будут защищены.

4 SRCPC завершен.

5 число битов, которые будут защищены, равно Npred (или общее количество битов для class_attrib ()).

Расширенное FEC

Если длина заголовка превышает 16 битов, этот заголовок защищен с помощью CRC и завершен SRCPC. Скорость SRCPC и количество битов CRC сигнализируются. Метод кодирования и декодирования такой же, как описано ниже для CRC/SRCPC.

Порождающие полиномы для каждого FEC следующие:

ВСН(7,4):

х+х+1

ВСН(15,7):

х+1

Golay (23,12):

х +х+1

ВСН (31,16):

х+х+1

С этими полиномами FEC(n, k) для l-битного кодирования выполняется следующим образом:

Вычисляется полином R(x), который удовлетворяет

М(х) х = Q(x)G(x) + R(x)

М(х): Информационные биты. Самый высокий порядок соответствует первому биту, который будет передан.

G(x): образующий полином, определенный выше.

Этот полином R (х) производит контроль к choice_of_pred или class_attrib (), и устанавливается в choice_of_pred_parity или class_attrib_parity соответственно. Самый высокий порядок соответствует первому биту. Декодер может выполнить коррекцию ошибок, используя эти биты паритета, однако это дополнительная операция.

3.8.4.4 Функциональные возможности конкатенации

У инструмента ЕР есть функциональные возможности для объединения (конкатенации) нескольких исходных фреймов кодера, чтобы создать новый фрейм для инструмента ЕР. При этой конкатенации группы битов, принадлежащих тому же самому классу в различных исходных фреймах кодера, связаны класс с классом. Составные группы, принадлежащие тому же самому классу, либо обрабатываются как отдельный элемент, либо как независимый класс, так же как перед конкатенацией.

О числе фреймов, которые будут связаны, сообщается в number_of_concatenated_frame в ErrorProtectionSpecificConfig (), и выбор того, обрабатываются ли составные группы, принадлежащие тому же самому классу, как отдельный новый класс, или с независимым классом, с помощью сигнализации concatenate_flag [i] [j] (1 соответствует “отдельному новому одному классу”, а 0 – “независимому классу”).

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

3.8.4.5 CRC

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

1-битовый CRC1: x+1

2-битовый CRC2: х+х+1

3-битовый CRC3: х+х+1

4-битовый CRC4: х+х+х+х+1

5-битовый CRC5: х+х+х+х+1

6-битовый CRC6: х+х+х+х+х+х+х+1

7-битовый CRC7: х+х+х+х+1

8-битовый CRC8: х+х+х+х+1

9-битовый CRC9: х+х+х+х+х+х+х+1

10-битовый CRC10: х+х+х+х+х+х+х+1

11-битовый CRC11: х+х+х+х+х+х+х+1

12-битовый CRC12: х+х+х+х+х+х+х+1

13-битовый CRC13: х+х+х+х+х+х+х+х+х+х+1

14-битовый CRC14: х+х+х+х +х +х+х+1

15-битовый CRC15: х+х+х+х+х+х+х+х+х+х+1

16-разрядный CRC16: х+х+х+х+1

24-битовый CRC24: х+х+х+х+х+х+х+1

32-разрядный CRC32: х+х+х+х+х+х+х+х+х+х +х +х+х+х+х+х+х+х+х+х+1

С этими полиномами кодирование CRC выполняется следующим образом:

Вычисляется полином R(x), такой что

M(x)x = Q(x)G(x) + R(x)

М(х): Информационные биты. Самый высокий порядок соответствует первому биту, который будет передан

G(x): Образующий полином, определенный ранее

k: Число битов CRC.

С этим полиномом R(x), CRC биты W(х), представлены как:

W(х) = M(x)x + R(x)

Значение k должно быть выбрано так, чтобы число кодированных битов CRC не превышало 2k-1.

Биты CRC записываются в обратном порядке, каждый бит инвертирован. Используя эти биты CRC, декодер может выполнить обнаружение ошибок. Когда ошибка обнаружена через CRC, может быть применена ошибочная маскировка для уменьшения ухудшения качества, вызванного ошибкой. Метод маскировки ошибок зависит от алгоритмов MPEG-4 Аудио.

3.8.4.6 Систематические сверточные коды (SRCPC)

После CRC кодирования выполняется FEC кодирование с SRCPC кодами. В этом подразделе описывается процесс кодирования SRCPC.

Кодер канала основан на систематическом рекурсивном сверточном кодирования (SRC) со скоростью R=1/4. Кодированные классы CRC связаны и поступают в этот кодер. Так образуется RCPC код, скорость которого изменяется для каждого класса согласно ошибочной чувствительности.

3.8.4.6.1 Генерация SRC кода

Код SRC генерируется из рациональной порождающей матрицы при использовании петли обратной связи. Реализация сдвигового регистра кодера показана на рисунке 6.

Рисунок 6 – Реализация сдвигового регистра для систематического рекурсивного сверточного кодера

Рисунок 6 – Реализация сдвигового регистра для систематического рекурсивного сверточного кодера

Для получения выходных векторов в момент времени в момент времени необходимо знать содержимое сдвиговых регистров , , , , , (соответствует состоянию) и входной бит во время во время .

Получаем выход , , и

, , , , , ,

Наконец получаем для выходного вектора во время во время в зависимости от входного бита и текущего состояния и текущего состояния :

с

Начальное состояние всегда 0, то есть каждая ячейка памяти содержит 0 перед входом первого информационного бита .

3.8.4.6.2 Завершение кода SRC

В случае, если для кодированного SRC класс обозначен как окончание в termination_switch [i] в inErrorProtectionSpecificConfig (), или код SRC используется для защиты информации в полосе кодера SRC и должны добавить биты хвоста в конец этого класса и запустить следующее кодирование SRC с начальным состоянием, весь сдвиговый регистр кодера должен быть установлен в 0.

Хвостовые биты после информационной последовательности для возвращения в состояние для возвращения в состояние 0 (завершение) зависят от последнего состояния (состояние после входа последнего информационного бита (состояние после входа последнего информационного бита ). Завершающая последовательность для каждого состояния, описываемого , дана в таблице 57. Приемник может использовать эти хвостовые биты (ТВ) для дополнительного обнаружения ошибок.

Таблица 57 – Хвостовые биты для систематического рекурсивного сверточного кода

Состояние

0

0

0

0

0

0

0

0

0

1

0

0

0

1

1

1

0

1

2

0

0

1

0

1

0

1

0

3

0

0

1

1

0

1

1

1

4

0

1

0

0

0

1

0

0

5

0

1

0

1

1

0

0

1

6

0

1

1

0

1

1

1

0

7

0

1

1

1

0

0

1

1

8

1

0

0

0

1

0

0

0

9

1

0

0

1

0

1

0

1

10

1

0

1

0

0

0

1

0

11

1

0

1

1

1

1

1

1

12

1

1

0

0

1

1

0

0

13

1

1

0

1

0

0

0

1

14

1

1

1

0

0

1

1

0

15

1

1

1

1

1

0

1

1

Дополнение (,,,,,) к информационной последовательности может быть вычислено из следующего условия:

для всех от от

Далее, мы получаем для вектора хвостовых битов в зависимости от состояния в зависимости от состояния

Хвостовые биты для систематического рекурсивного сверточного кода приведены в таблице 57.

3.8.4.6.3 Использование SRC для кода SRCPC

Прореживание выхода кодера SRC позволяет использовать различные скорости для передачи. Таблицы прореживания перечислены в таблице 58.

Таблица 58 – Прореживающие таблицы (все значения в шестнадцатеричном представлении)

Нор-
ма

8/8

8/9

8/
10

8/
11

8/
12

8/
13

8/
14

8/
15

8/
16

8/
17

8/
18

8/
19

8/
20

8/
21

8/
22

8/
23

8/
24

8/
25

8/
26

8/
27

8/
28

8/
29

8/
30

8/
31

8/
32

(0)

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

(1)

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

FF

(2)

00

00

00

00

00

00

00

00

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

FF

FF

FF

FF

FF

FF

FF

FF

(3)

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

00

80

88

А8

АА

ЕА

ЕЕ

FE

FF

Шаблон прореживания, который применяется с периодом 8, зависит от class_rate (см. таблицу 58). Каждый бит Pr(i) указывает, прорежен ли соответствующий символ vt(i) кодера SRC (то есть не рассмотрен). Каждый бит Pr(i) используется от MSB к LSB, и 0/1 указывает режим punctured/not-punctured соответственно. Шаблон прореживания изменяется от класса к классу, но только в пунктах, где период из 8 закончен. После решения о том, какие биты из vt(i) учитываются, они выводятся в порядке от vt(0) до vt(3).

3.8.4.6.4 Декодирование кода SRCPC

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

Декодирование SRCPC может быть выполнено при помощи алгоритма Витерби для сверточных кодов.

3.8.4.7 Сокращенные коды Рида-Соломона

Сокращенные коды Рида-Соломона SRS (255-l, 255-2k-l), определенные на GF(2), могут использоваться для защиты одного отдельного класса или нескольких составных классов. Составные классы впоследствии обрабатываются как один отдельный класс. Здесь k – число корректируемых ошибок в одном ключевом слове SRS. Значение l отражает сокращение.

Перед SRS кодированием, класс ЕР подразделяется на части таким образом, чтобы их длины были меньше или равны 255-2k. Длины частей вычисляются следующим образом:

255-2k, при i<N;

L mod (255-2k), при i = N;

: длина класса ЕР в октетах;

: число частей;

: длина i-ой части (0<i<: длина i-ой части (0<i<+1).

Если длина -ой части -ой части меньше, чем 255-2k байт, добавляется так много битов со значением 0, как требуется для того, чтобы достигнуть длины 255-2k байт перед SRS кодированием/декодированием, и в обратном порядке.

На стороне декодера, если выполняется декодирование SRS, то же самое число нулевых бит должно быть добавлено перед процедурой SRSdecoding, и удалено после SRS декодирования.

SRS код, определенный в поле Галуа GF(2), получен из образующего полинома ), получен из образующего полинома , где обозначает корень примитивного полинома обозначает корень примитивного полинома . Двоичное представление показано в таблице 59, где MSB октет следует первым.

Таблица 59 – Двоичное представление для (0<=i<=254) на GF(2 (0<=i<=254) на GF(2)

Двоичное представление

0

00000000

00000001

00000010

00000100

00001000

00010000

00100000

01000000

10000000

00011101

00111010

01110100

11101000

11001101

10000111

00010011

00100110

01001100

10011000

00101101

01011010

10110100

01110101

11101010

11001001

10001111

00000011

00000110

00001100

00011000

00110000

01100000

11000000

10011101

00100111

01001110

10011100

00100101

01001010

10010100

00110101

01101010

11010100

10110101

01110111

11101110

11000001

10011111

00100011

01000110

10001100

00000101

00001010

00010100

00101000

01010000

10100000

01011101

10111010

01101001

11010010

10111001

01101111

11011110

10100001

01011111

10111110

01100001

11000010

10011001

00101111

01011110

10111100

01100101

11001010

10001001

00001111

00011110

00111100

01111000

11110000

11111101

11100111

11010011

10111011

01101011

11010110

10110001

01111111

11111110

11100001

11011111

10100011

01011011

10110110

01110001

11100010

11011001

10101111

01000011

10000110

00010001

00100010

01000100

10001000

00001101

00011010

00110100

01101000

11010000

10111101

01100111

11001110

10000001

00011111

00111110

01111100

11111000

11101101

11000111

10010011

00111011

01110110

11101100

11000101

10010111

00110011

01100110

11001100

10000101

00010111

00101110

01011100

10111000

01101101

11011010

10101001

01001111

10011110

00100001

01000010

10000100

00010101

00101010

01010100

10101000

01001101

10011010

00101001

01010010

10100100

01010101

10101010

01001001

10010010

00111001

01110010

11100100

11010101

10110111

01110011

11100110

11010001

10111111

01100011

11000110

10010001

00111111

01111110

11111100

11100101

11010111

10110011

01111011

11110110

11110001

11111111

11100011

11011011

10101011

01001011

10010110

00110001

01100010

11000100

10010101

00110111

01101110

11011100

10100101

01010111

10101110

01000001

10000010

00011001

00110010

01100100

11001000

10001101

00000111

00001110

00011100

00111000

01110000

11100000

11011101

10100111

01010011

10100110

01010001

10100010

01011001

10110010

01111001

11110010

11111001

11101111

11000011

10011011

00101011

01010110

10101100

01000101

10001010

00001001

00010010

00100100

01001000

10010000

00111101

01111010

11110100

11110101

11110111

11110011

11111011

11101011

11001011

10001011

00001011

00010110

00101100

01011000

10110000

01111101

11111010

11101001

11001111

10000011

00011011

00110110

01101100

11011000

10101101

01000111

10001110

Для каждой из частей паритет SRS с полной длиной октетов вычисляется, используя вычисляется, используя следующим образом:

: полиномиальный представитель части. Низший порядок соответствует первому октету;

: полиномиальный представитель четности. Низший порядок соответствует первому октету.

Для хранения и передачи паритет добавляется в конце класса ЕР. Этот процесс показан на рисунке 7.

Рисунок 7 – Кодирование RS фрейма ЕР

Рисунок 7 – Кодирование RS фрейма ЕР

3.8.4.8 Рекурсивное чередование

Чередование применяется многоступенчатым способом. Рисунок 8 показывает метод чередования.

Рисунок 8 – Одна стадия чередования

Рисунок 8 – Одна стадия чередования

В многоступенчатом чередовании выход этой стадии чередования обрабатывается как незащищенная часть в следующей стадии. Рисунок 9 показывает пример 2 стадии чередований.

Рисунок 9 – Пример многоступенчатого чередования

Рисунок 9 – Пример многоступенчатого чередования

Путем выбора ширины матрицы чередования для получения одинаковой длины с длиной кода FEC (или значения 28 в случае кодов SRCPC) размер чередования может быть оптимизирован для всех FEC кодов.

В фактическом случае общее количество битов для чередования может не позволить использовать такой прямоугольник. В таком случае используется матрица, как показано на рисунке 10.

Рисунок 10 – Матрица чередования в непрямоугольном случае

Рисунок 10 – Матрица чередования в непрямоугольном случае

3.8.4.8.1 Определение рекурсивного чередования

Два информационных потока и и являются входами:

, , ;

, , ,

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

С шириной чередования размер матрицы чередования показан на рисунке 11.

Рисунок 11 – Размер матрицы чередования

указывает деление с округлением

Рисунок 11 – Размер матрицы чередования

Полезный выходной битовый поток ( () считывается с этой матрицы сверху вниз и слева направо в горизонтальном направлении. Таким образом бит, расположенный в m-ом столбце и n-ой строке ( и и начинаются с 0) соответствует , где:

k = m * D + min(m, d) + n

В матрице установлен в

m = i mod W, n = i/W.

Таким образом , который установлен , который установлен , становится:

, где k = (i mod W) * D + min (i mod W, d) + i/W

Биты, которые установлены c в матрице чередования, показаны на рисунке 12:

Рисунок 12 – Биты, установленные c X (i) в матрице чередования

Рисунок 12 – Биты, установленные c в матрице чередования

Таким образом в m-ой строке установлен из n-ой строки, где n = D’ + (m <d’ ? 1: 0) к основанию. Таким образом установлен из n-ой строки, где n = D’ + (m <d’ ? 1: 0) к основанию. Таким образом , установленный , представлен следующим образом:

3.8.4.8.2 Режимы чередования

Два режима чередования, режим 1 и режим 2, в соответствии с interleave_type 1 и 2, определены в следующих выражениях. Таблица 60 и таблица 61 дают краткий обзор доступных конфигураций.

Таблица 60 – Ширина матрицы чередования

interleave_type

fec_type == 0 (SRCPC)

fec_type ==1/2 (SRS)

0

Чередование отсутствует

1

28 бит

Длина класса

2

Зависит от переключения чередования (см. таблицу 61)

3

Зарезервировано

Таблица 61 – Ширина матрицы чередования для interleave_type 2

interleave_switch

fec_type ==0 (SRCPC)

fec_type ==1 /2 (SRS)

0

Чередование отсутствует

1

Длина класса

Длина класса

2

28 бит

Не разрешено

3

Конкатенация

В случае fec_type=0 (SRCPC) чередование выполняется побитно. В случае fec_type == 1 или fec_ type == 2 (SRS) чередование выполняется побайтно.

3.8.4.8.2.1 Чередование в режиме 1

Многоступенчатое чередование используется для ep_encoded_class от последнего класса до первого класса, когда биты наполнения добавлены после чередованных классов. Процесс чередования продолжает атрибутивную часть класса ep_header () (который является class_attrib () + class_attrib_parity) и предопределенную часть ep_header () (который является choice_of_pred + choice_of_pred_parity), как показано на рисунке 13.

Рисунок 13 – Матрица чередования в случае RS класса

Рисунок 13 – Матрица чередования в случае RS класса

Ширина матрицы чередования выбирается согласно используемому FEC. В случае SRCPC кодирования (fec_type == 0) ширина матрицы чередования составляет 28 битов. В случае SRS кодирования (fec_type == 1 или 2) ширина матрицы чередования равна длине класса в байтах. Биты в классе записываются в матрицу чередований байтов для каждого столбца.

Ширина матрицы чередования для частей заголовка либо равна длине ключевого слова (в битах), предоставленной блочным кодом согласно таблице 61, или 28 битам, если используется SRCPC.

3.8.4.8.2.2 Чередование в режиме 2

В режиме 2 флаг указывает, обработан ли класс с чередованием, и как именно. Об этом флаге interleave_switch сообщается в пределах полосы. Значение 0 указывает, что класс не обработан с чередованием. Значение 1 указывает, что класс чередован рекурсивно и длина класса используется как ширина чередования (или длина в битах в случае SRCPC, или длина в байтах в случае SRS). Значение 2 указывает, что класс чередован рекурсивно и ширина должна быть равной 28 (разрешено только в случае SRCPC). Значение 3 указывает, что класс связан, но не чередован рекурсивно. Операция чередования для ep_header аналогична режиму 1.

Рисунок 13 показывает схему чередования для fec_type == 1 или 2 (SRS) и interleave_switch == 1. Ширина должна быть числом байтов в классе. Биты в классе записываются в матрицу чередований байтов для каждого столбца.

Процесс чередования для получения interleaved_frame_mode2 описывается следующим образом (N: число классов):

3.8.4.9 Упорядочивание классов

Инструмент ЕР позволяет переупорядочивать классы так, что нет необходимости привязываться к порядку предоставленному/требуемому звуковым кодеком. Порядок классов после переупорядочения сигнализируется как class_output_order [i] [j] в полосе. Декодер ЕР переупорядочивает классы во фрейме ЕР, используя i-ый предопределенный набор, так чтобы j-ый класс фрейма ЕР был направлен как (class_output_order [i] [j])-ый класс к звуковому декодеру.

Приложение А (справочное). Форматы обмена аудиофайлами

Приложение А
(справочное)

А.1 Введение

Полные возможности и гибкость MPEG-4 Аудио, такие как композиция звуковых сцен из множественных звуковых объектов, синтезированный звук и преобразование текста в речь, доступны, только если MPEG-4 Аудио используется вместе с MPEG-4 Системы. Форматы обмена, определенные здесь в приложении А, поддерживают лишь небольшое подмножество возможностей MPEG-4 Аудио, определяя форматы для хранения и передачи отдельных моно, стерео или многоканальных звуковых объектов, схожих с форматами, определенным в MPEG-1 и MPEG-2.

Нормативные элементы в MPEG-4 Аудио заканчиваются определением полезных нагрузок (примерные эквиваленты фреймам потока битов в MPEG-1 и MPEG-2) и структурами конфигурации кодера (напоминающими MPEG-1/2 информацию заголовка). Однако нет никакого нормативного определения MPEG-4 Аудио относительно того, как эти элементы мультиплексируются, поскольку это требуется только для ограниченного числа приложений. Однако это информативное приложение описывает такое мультиплексирование. Тем не менее декодеры MPEG-4 не обязательно должны иметь эти форматы интерфейса.

А.2 Форматы обмена ААС

А.2.1 Синтаксис

А.2.1.1 ААС MPEG-2 Audio_Data_lnterchange_Format, ADIF (таблицы А.1, А.2, А.3, А.4, А.5).

Таблица А.1 – Синтаксис adif_sequence

Таблица А.2 – Синтаксис adif_header ()

Таблица А.3 – Синтаксис raw_data_stream ()

Таблица А.4 – Синтаксис adts_sequence ()

Таблица А.5 – Синтаксис adts_frame ()

А.2.1.2 Фиксированный заголовок ADTS (таблица А.6).

Таблица А.6 – Синтаксис adts_fixed_header ()

А.2.1.2.1 Переменный заголовок ADTS (таблица А.7).

Таблица А.7 – Синтаксис adts_variable_header ()

А.2.1.2.2 Обнаружение ошибок (таблицы А.8, А.9, А.10).

Таблица А.8 – Синтаксис adts_error_check

Таблица А.9 – Синтаксис adts_header_error_check

Таблица А.10 – Синтаксис adts_raw_data_block_error_check ()

А.3 Семантика

А.3.1 Краткий обзор

raw_data_block () содержит все данные, которые относятся к звуку (включая вспомогательные данные). Кроме того, дополнительная информация, такая как sampling_frequency, необходима для полного описания звуковой последовательности. Формат обмена звуковыми данными (ADIF) содержит все элементы, которые необходимы для описания потока битов согласно этому стандарту.

Для определенных приложений некоторые или все элементы синтаксиса, определенные в заголовке ADIF, например sampling_rate, могут быть известны декодеру за счет других средств и, следовательно, не появляться в потоке битов.

Кроме того, может потребоваться дополнительная информация, которая изменяется от блока к блоку (например, чтобы увеличить читаемость данных или устойчивость к ошибкам). Следовательно, транспортные потоки могут быть разработаны для определенного приложения и не определены в этом стандарте. Однако один ненормативный транспортный поток, названный Транспортным Потоком Звуковых Данных (ADTS), описан. Он может использоваться для приложений, в которых декодер может анализировать этот поток.

А.3.2 Формат обмена звуковыми данными (ADIF)

raw_data_stream () – последовательность raw_data_block () блоков.

program_config_element () содержит информацию о конфигурации для одной программы.

А.3.3 Транспортный поток звуковых данных (ADTS)

ID – идентификатор MPEG установлен в ‘1’, если звуковые данные в потоке ADTSAAC MPEG-2 и в ‘0’, если звуковые данные – MPEG-4.

profile_ObjectType – интерпретация этого элемента данных зависит от значения бита идентификатора. Если идентификатор равен ‘1’, эта область содержит ту же самую информацию, что и область конфигурации в потоке ADTS. Если идентификатор равен ‘0’, этот элемент обозначает тип объекта MPEG-4 Аудио (profile_ObjectType+1).

sampling_frequency_index указывает частоту дискретизации, используемую согласно таблице 17. Значение escape не разрешено.

channel_configuration указывает используемую конфигурацию каналов. В случае (channel_configuration> 0) конфигурация каналов дается в таблице 18. В случае (channel_configuration == 0) конфигурация каналов не определена в заголовке и задается следующим образом:

MPEG-2/4 ADTS – отдельный program_config_element (), являющийся первым синтаксическим элементом в первом raw_data_block () после заголовка; определяет конфигурацию канала. Элемент program_config_element () может не присутствовать во всех фреймах. Декодер MPEG-4 ADTS не должен генерировать выходные данные, пока он не получит program_config_element (), в то время как декодер MPEG-2 ADTS может принять неявную конфигурацию канала.

MPEG-2 ADTS: Помимо использования program_config_element (), конфигурация каналов может предполагаться неявной или может быть известна в приложении.

Приложение Б (справочное). Инструмент защиты от ошибок

Приложение Б
(справочное)

Ниже представлены формат текстового файла внутриполосной информации и его пример для AAC, Twin-VQ, CELP и HVXC. Кроме того, представлен пример маскировки ошибок.

Б.1 Пример внутриполосной информации

Б.1.1 Пример для ААС

Этот пример основан на категориях чувствительности к ошибкам, описанным в нормативной части. Нижеследующая защита от ошибок может использоваться при соответствии категорий чувствительности классам. Этот пример показывает использование простого режима с одним каналом и без extension_payload ():

Класс

Длина

Чередование

SRCPC puncture rate

Длина CRC

0

6 бит

Внутрикадровое

8/24

6

1

12 бит

Внутрикадровое

8/24

6

2

9 бит

Внутрикадровое

8/8

6

3

9 бит

8/8

4

4

До конца

Внутрикадровое

8/8

Б.1.2 Пример для Twin-VQ

Ниже описываются примеры назначения битов UEP профилю масштабируемого звука (объект TwinVQ).

Имеется два режима кодирования: с и без РРС (Периодический Пиковый Компонент). Обычно кодер может адаптивно выбирать РРС, но в данном случае необходимо всегда поддерживать режим “вкл/выкл”. Если РРС включен, то 43 бита выделятся для квантования периодических пиковых компонент, и эти биты должны быть защищены как служебная информация.

Для каждого режима показано распределение четырех различных скоростей передачи, 16 кбит/с моно, 32 кбит/с стерео, 8 кбит/с + 8 кбит/с масштабируемого моно и 16 кбит/с + 16 кбит/с стерео для каждого режима.

Во всех случаях коррекция ошибок и инструменты обнаружения применяются только к 10% битов для служебной информации. У оставшихся битов для индексов коэффициентов МДКП нет никакой защиты вообще. В результате такого распределения битов скорость передачи увеличивается по сравнению с оригинальной исходной скоростью приблизительно на 10% в случае включения РРС и менее чем 10% в случае выключения РРС.

а) РРС (Периодический Пиковый Компонент) включен

16 кбит/с моно:

Класс 1: 121 бит (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 839 битов (фиксирован), код SRCPC 8/8, CRC нет

32 кбит/с стерео:

Класс 1: 238 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 1682 бита (фиксирован), код SRCPC 8/8, CRC нет

8 кбит/с + 8 кбит/с масштабируемое моно:

Класс 1: 121 бит (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 359 битов (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 72 бита (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 4: 408 битов (фиксирован), код SRCPC 8/8, CRC нет

16 кбит/с + 16 кбит/с масштабируемое стерео

Класс 1: 238 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 722 бита (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 146 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 4: 814 битов (фиксирован), код SRCPC 8/8, CRC нет

б) РРС отключен

16 кбит/с моно:

Класс 1: 78 битов (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 882 бита (фиксирован), код SRCPC 8/8, CRC нет

32 кбит/с стерео:

Класс 1: 152 бита (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 1768 битов (фиксирован), код SRCPC 8/8, CRC нет

8 кбит/с + 8 кбит/с масштабируемое моно:

Класс 1: 78 битов (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 2: 402 бита (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 72 бита (фиксирован), код SRCPC 8/12, 8 бит CRC

Класс 4: 408 битов (фиксирован), код SRCPC 8/8, CRC нет

16 кбит/с +16 кбит/с масштабируемое стерео

Класс 1: 152 бита (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 2: 808 битов (фиксирован), код SRCPC 8/8, CRC нет

Класс 3: 146 битов (фиксирован), код SRCPC 8/12, 10 бит CRC

Класс 4: 814 битов (фиксирован), код SRCPC 8/8, CRC нет

Б.1.3 Пример для CELP

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

Б.1.3.1 Режим узкополосный МРЕ

Краткий обзор выделения битов для узкополосного МРЕ:

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

4

154

3850

6

13

20

37

78

1

4

170

4250

6

13

20

41

90

2

4

186

4650

6

13

20

45

102

3

3

147

4900

5

11

16

36

79

4

3

156

5200

5

11

16

39

85

5

3

165

5500

5

11

16

42

91

6

2

114

5700

4

9

12

29

60

7

2

120

6000

4

9

12

31

64

8

2

126

6300

4

9

12

33

68

9

2

132

6600

4

9

12

35

72

10

2

138

6900

4

9

12

37

76

11

2

142

7100

4

9

12

39

78

12

2

146

7300

4

9

12

41

80

13

4

154

7700

6

13

20

41

74

14

4

166

8300

6

13

20

45

82

15

4

174

8700

6

13

20

49

86

16

4

182

9100

6

13

20

53

90

17

4

190

9500

6

13

20

57

94

18

4

198

9900

6

13

20

61

98

19

4

206

10300

6

13

20

65

102

20

4

210

10500

6

13

20

69

102

21

4

214

10700

6

13

20

73

102

22

2

110

11000

4

9

12

33

52

23

2

114

11400

4

9

12

35

54

24

2

118

11800

4

9

12

37

56

25

2

120

12000

4

9

12

39

56

26

2

122

12200

4

9

12

41

56

27

4

186

6200

6

13

20

49

98

28

Зарезервировано

29

Зарезервировано

30

Зарезервировано

31

Зарезервировано

Б.1.3.2 Режим широкополосный МРЕ

Краткий обзор выделения битов для широкополосного МРЕ

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

4

218

10900

17

20

27

45

109

1

4

230

11500

17

20

27

49

117

2

4

242

12100

17

20

27

53

125

3

4

254

12700

17

20

27

57

133

4

4

266

13300

17

20

27

61

141

5

4

278

13900

17

20

27

65

149

6

4

286

14300

17

20

27

69

153

7

Зарезервировано

8

8

294

14700

17

32

43

61

141

9

8

318

15900

17

32

43

69

157

10

8

342

17100

17

32

43

77

173

11

8

358

17900

17

32

43

85

181

12

8

374

18700

17

32

43

93

189

13

8

390

19500

17

32

43

101

197

14

8

406

20300

17

32

43

109

205

15

8

422

21100

17

32

43

117

213

16

2

136

13600

17

14

19

29

57

17

2

142

14200

17

14

19

31

61

18

2

148

14800

17

14

19

33

65

19

2

154

15400

17

14

19

35

69

20

2

160

16000

17

14

19

37

73

21

2

166

16600

17

14

19

39

77

22

2

170

17000

17

14

19

41

79

23

Зарезервировано

24

4

174

17400

17

20

27

37

73

25

4

186

18600

17

20

27

41

81

26

4

198

19800

17

20

27

45

89

27

4

206

20600

17

20

27

49

93

28

4

214

21400

17

20

27

53

97

29

4

222

22200

17

20

27

57

101

30

4

230

23000

17

20

27

61

105

31

4

238

23800

17

20

27

65

109

Б.1.3.3 Режим широкополосный RPE

Характеристические параметры для широкополосного CELP c RPE

Режим МРЕ

Подфреймы

Бит/Фрейм

Битовая скорость

ECR0

ECR1

ECR2

ECR3

ECR4

0

6

216

14400

40

24

34

25

93

1

4

160

16000

32

18

26

21

63

2

8

280

18667

48

30

42

29

131

3

10

338

22533

56

36

50

33

163

Б.1.4 Пример для HVXC

кодер 2 кбит/с:

Класс 1: 22 бита (фиксирован), код SRCPC 8/16, 6 битов CRC

Класс 2: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 3: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 10 битов (фиксирован), код SRCPC 8/8, CRC нет

кодер 4 кбит/с:

Класс 1: 33 бита (фиксирован), код SRCPC 8/16, 6 битов CRC

Класс 2: 22 бита (фиксирован), код SRCPC 8/8, 6 битов CRC

Класс 3: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 4 бита (фиксирован), код SRCPC 8/8, 1 бит CRC

Класс 4: 17 битов (фиксирован), код SRCPC 8/8, CRC нет

Б.1.5 Пример для ER BSAC

Этот подраздел описывает примеры распределения битов неравной защиты от ошибок (UEP) типу объекта ER BSAC.

Категория низкой чувствительности к ошибкам (ESC) указывает класс с более высокой чувствительностью к ошибкам, тогда как более высокий ESC указывает класс с меньшей чувствительностью. Следующий пример основан на категориях чувствительности к ошибкам BSAC. Этот пример соответствует простой настройке, где категории чувствительности соответствуют классам.

Класс

Категория

Длина, бит

Чередование

SRCPC puncture rate

Длина CRC

0

0

9

Внутрикадровое

8/24

6

1

Другое

11

8/8

В этом примере инструменты коррекции и обнаружения ошибок применяются только к общей служебной информации. У оставшихся битов для индекса коэффициентов МДКП нет никакой защиты. В результате такого распределения битов скорость передачи увеличивается приблизительно на 10% по сравнению с оригинальной исходной скоростью.

Б.2 Пример маскировки ошибок

Инструмент маскировки ошибок – дополнительный инструмент декодера для уменьшения ухудшения качества декодированных сигналов, когда полезный битовый поток ввода декодера затронут ошибками, такими как ошибка передачи полезного битового потока. Это особенно эффективно в случае использования инструментов MPEG-4 Аудио в радио приложениях. Обнаружение ошибок и решающий метод для замены фрейма не определены в этом подразделе и зависят от конкретного приложения.

Б.2.1 Пример для CELP

Б.2.1.1 Краткий обзор инструмента маскировки ошибок

Инструмент маскировки ошибок используется с декодером MPEG-4 CELP. Этот инструмент уменьшает неприятный шум, возникающий в результате обработки декодером MPEG-4 CELP ошибочных данных фрейма. Также CELP MPEG-4 используется для декодирования речи даже в том случае, если входные данные фрейма потеряны.

У инструмента есть два операционных режима: режим битовых ошибок (BE) и режим стирания фрейма (FE). Режимы переключаются на основании пригодности данных фрейма в декодере. Когда данные фрейма доступны (режим BE), декодирование выполняется с использованием данных прошлых фреймов и годных данных текущего фрейма. Когда данные фрейма не доступны (режим FE), декодер генерирует речь, используя только данные прошлых фреймов.

Этот инструмент работает в режиме кодирования II, который использует режимы узкой полосы, широкой полосы и масштабируемые режимы, которые поддерживают МРЕ на частотах дискретизации 8 и 16 кГц.

Б.2.1.2 Определения

BE: Ошибочный бит

BWS: Масштабируемая ширина полосы

FE: Стирание фрейма

LP: Линейное предсказание

LSP: Линейная спектральная пара

МРЕ: Мультиимпульсное возбуждение

NB: Узкая полоса

RMS: Среднеквадратичное значение (энергия фрейма)

WB: Широкая полоса

Б.2.1.3 Вспомогательные переменные

frame_size: количество отсчетов во фрейме

g_ас: адаптивная кодовая книга

g_ес: уровень МРЕ

lpc_order: порядок LP

signal_mode: речевой режим

signal_mode_pre: речевой режим предыдущего фрейма

Б.2.1.4 Спецификация инструмента маскировки ошибок

Инструмент маскировки ошибок основан на модели перехода с шестью состояниями, изображенными на рисунке Б.1. Состояние соответствует качеству канала передачи. Чем больше номер состояния, тем хуже качество канала передачи. В каждом состоянии используется своя маскировка. Начальное состояние при декодировании – 0, передача состояния происходит с помощью флага BF_flag. Каждая операция маскировки описана в следующих подразделах.

Рисунок Б.1 – Модель перехода между состояниями для управления маскировкой ошибок

Рисунок Б.1 – Модель перехода между состояниями для управления маскировкой ошибок

Б.2.1.4.1 Операции в состояниях 0 и 5

Процесс декодирования идентичен тому, что используется в декодере MPEG-4 CELP за следующими исключениями относительно адаптивной кодовой книги:

В состоянии 0 после состояния 5, и в состоянии 5:

1) для первых 80 отсчетов во фрейме (и после), где BF_flag сменился от 1 к 0, уровни g_ас и g_ес вычисляются по уровням g_ас’ и g_ес’, декодированных из текущих данных фрейма следующим образом:

2) для 160 отсчетов, которые следуют за первыми 80 отсчетами, уровни вычисляются как:

где эти операции продолжаются самое большее четыре подфрейма.

Б.2.1.4.2 Операции в состояниях 1, 2, 3 и 4

Процесс декодирования идентичен тому, который применяется в декодере MPEG-4 CELP за исключениями, описанными в следующих подразделах.

Б.2.1.4.2.1 Режим Речь

Б.2.1.4.2.1.1 Режим FE

Речевой режим (signal_mode) декодируется по данным предыдущего фрейма.

Б.2.1.4.2.1.2 Режим BE

Речевой режим (signal_mode) декодируется по данным текущего фрейма для сигнала _mode_pre=0 или 1. Иначе используется режим декодирования по данным предыдущего фрейма.

Б.2.1.4.2.2 Режим МРЕ

Б.2.1.4.2.2.1 Режим FE

МРЕ декодируется поданным фрейма, сгенерированным случайным образом.

Б.2.1.4.2.2.2 Режим BE

МРЕ декодируется по данным текущего фрейма.

Б.2.1.4.2.3 RMS

Для состояний от 1 до , RMS в последнем подфрейме предыдущего фрейма используется после аттенюации в первом подфрейме текущего фрейма. В последующих подфреймах RMS в предыдущем подфрейме используется после аттенюации. Уровень аттенюации , RMS в последнем подфрейме предыдущего фрейма используется после аттенюации в первом подфрейме текущего фрейма. В последующих подфреймах RMS в предыдущем подфрейме используется после аттенюации. Уровень аттенюации зависит от состояния следующим образом:

0,4 дБ, для состояний 1… 0,4 дБ, для состояний 1…

1,2 дБ, для состояний 1,2 дБ, для состояний +1, …,

где – наименьшее значение из 4 и – наименьшее значение из 4 и , а – наибольшее целое, удовлетворяющее frame_size х – наибольшее целое, удовлетворяющее frame_size х <= 320.

Б.2.1.4.2.4 LSP

Используются LSP, декодированные в предыдущем фрейме. В режиме BWS векторы LSP должны быть буферизованы для межфреймового предсказания. Однако, когда данные фреймы повреждены или потеряны, правильный вектор не может быть получен. Поэтому буферизированный вектор (blsp [0] []) оценивается по LSP (qlsp_ pre []) предыдущего фрейма, а предсказанный LSP (vec_hat []) и коэффициент предсказания (сb [0] []) в текущем фрейме следующие:

Б.2.1.4.2.5 Задержка адаптивной кодовой книги

Б.2.1.4.2.5.1 Режим FE

Все задержки адаптивной кодовой книги декодируются по индексу задержки, полученному в последнем подфрейме предыдущего фрейма.

Б.2.1.4.2.5.2 Режим BE

1) когда signal_mode_pre=0, задержки декодируются по данным текущего фрейма.

2) когда signal_mode_pre=1 и максимальное различие между индексами задержки смежных подфреймов во фрейме меньше чем 10, задержки декодируются по индексам задержки в текущем фрейме. В каждом подфрейме, где различие в индексах задержки между текущим и предыдущими подфреймами равно или больше 10, задержка декодируется по индексу предыдущего подфрейма.

3) когда signal_mode_pre = 2 или 3, задержка декодируется по индексу последнего подфрейма предыдущего фрейма.

Б.2.1.4.2.6 Усиления

Б.2.1.4.2.6.1 Операция индексирования

Б.2.1.4.2.6.1.1 Режим FE

Все усиления имеют одинаковое значение, которое декодируется по индексу усиления, полученному в последнем подфрейме предыдущего фрейма.

Б.2.1.4.2.6.1.2 Режим BE

Усиление декодируется по данным текущего фрейма.

Б.2.1.4.2.6.2 Операция подстройки

Б.2.1.4.2.6.2.1 Режим FE

1) когда signal_mode_pre=0, усиления g_ас’ и g_ес’ декодируются по данным текущего фрейма. Усиления g_ас и g_ес получаются умножением g_ас’ на 0,5 и g_ес’ на X соответственно. X удовлетворяет следующему уравнению и вычисляется в каждом подфрейме:

2) Когда signal_mode_pre=1, усиление декодируется по данным текущего фрейма.

3) Когда signal_mode_pre=2 или 3, усиление для первых 320 отсчетов в или после фрейма, где BF_flag изменен от 0 к 1, вычисляются как:

Б.2.1.4.2.6.2.2 Режим BE

1) Когда signal_mode_pre=0 или 1, усиления вычисляются, используя усиления g_ас’ и g_ec’, декодированные по данным текущего фрейма и усилениям g_ас_pre и g_ес_pre предыдущего подфрейма так, чтобы расчетное значение усилений было в нормальном диапазоне и не генерировало неприятного шума следующим образом:

2) Когда signal_mode_pre=2 или 3, операция идентична той, что используется для signal_mode_pre=2 или 3 в режиме FE.

Б.2.2 Маскировка ошибок для инструмента сжатия тишины

Во фреймах, где полезный битовый поток, полученный в декодере, поврежден или потерян из-за ошибок при передаче, выполняется маскировка ошибок. Когда получен TX_flag 1, процесс декодирования идентичен тому, который применяется для CELP MPEG-4. Для TX_flag=0, 2 или 3 используется процесс декодирования для TX_flag=0.

Б.3 Пример настройки инструмента ЕР и маскировки ошибок для HVXC

Этот подраздел описывает один пример реализации инструмента защиты от ошибок (ЕР) и метода маскировки ошибок для HVXC. Некоторые из перцепционно важных битов защищены FEC схемой, а некоторые проверены с помощью CRC для принятия решения о том, включены ли ошибочные биты. Когда возникает ошибка CRC, выполняется маскировка ошибок для уменьшения заметного ухудшения звучания.

Метод исправления ошибок и настройка инструмента ЕР, а также алгоритм маскировки ошибок, описанные ниже, являются лишь одним примером, и они должны быть изменены в зависимости от фактических условий канала.

Б.3.1 Определения

2/4 кбит/с общие параметры:

LSP1

Индекс 1 LSP

(5 битов)

LSP2

Индекс 2 LSP

(7 битов)

LSP3

Индекс 3 LSP

(5 битов)

LSP4

Индекс 4 LSP

(1 бит)

VUV

Флаг речевой, неречевой

(2 бита)

Pitch

Параметр шага

(7 битов)

SE_shape1

Индекс спектра 0

(4 бита)

SE_shape2

Индекс спектра 1

(4 бита)

SE_gain

Индекс усиления спектра

(5 битов)

VX_shape1[0]

Индекс 0 стохастической книги шифров

(6 битов)

VX_shape1[1]

Индекс 1 стохастической книги шифров

(6 битов)

VX_gain1[0]

Индекс 0 книги шифров усиления

(4 бита)

VX_gain1[1]

Индекс 1 книги шифров усиления

(4 бита)

параметры 4 кбит/с

только:

LSP5

Индекс 5 LSP

(8 битов)

SE_shape3

Индекс 0 спектра

(7 битов)

SE_shape4

Индекс 1 спектра

(10 битов)

SE_shape5

Индекс 2 спектра

(9 битов)

SE_shape6

Индекс 3 спектра

(6 битов)

VX_shape2[0]

Индекс 0 стохастической книги шифров

(5 битов)

VX_shape2[1]

Индекс 1 стохастической книги шифров

(5 битов)

VX_shape2[2]

Индекс 2 стохастической книги шифров

(5 битов)

VX_shape2[3]

Индекс 3 стохастической книги шифров

(5 битов)

VX_gain2[0]

Индекс 0 книги шифров усиления

(3 бита)

VX_gain2[1]

Индекс 1 книги шифров усиления

(3 бита)

VX_gain2[2]

Индекс 2 книги шифров усиления

(3 бита)

VX_gain2[3]

Индекс 3 книги шифров усиления

(3 бита)

Б.3.2 Канальное кодирование

Б.3.2.1 Выбор защищаемых битов

Согласно чувствительности битов, кодированные биты относятся к нескольким классам. Число битов для каждого класса дано в таблице Б.1, таблице Б.2 (2 кбит/с), таблице Б.3 и таблице Б.4 (4 кбит/с). Как пример, показаны режимы для скоростей 3,5 кбит/с (для 2 кбит/с) и 6,2 кбит/с (для 4 кбит/с). В этих случаях два исходных фрейма кодера обрабатываются как один набор. Суффикс “р” означает предыдущий фрейм, а “с” означает текущий.

Для режима 3,5 кбит/с используются 6 классов. Проверка CRC применяется для битов классов I, II, III, IV и V. Биты класса VI не проверяются CRC.

Таблица Б.1 дает распределение защищенных/незащищенных битов (классы I…VI) в случае, когда предыдущие и текущие фреймы известны.

Таблица Б.1 – Количество защищенных/незащищенных битов при 3,5 кбит/с

Параметры

Речевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Итого

LSP1p/c

5/5

10

LSP2p/c

2/2

5/5

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

VUVp/c

2/2

4

Pitchp/c

6/6

1/1

14

SE_gainp/c

5/5

10

SE_shape1p

4

4

SE_shape1c

4

4

SE_shape2p

4

4

SE_shape2c

4

4

Итого

44

4

4

4

4

20

80

Таблица Б.2 дает распределение защищенных/незащищеных битов (классы I…VI) в случае, когда предыдущий и текущий фреймы неизвестны.

Таблица Б.2 – Количество защищенных/незащищенных битов при 3,5 кбит/с

Параметры

Неречевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

2/2

3/3

10

LSP4p/c

1/1

2

VUVp/c

2/2

4

VX_gain1[0]p/c

4/4

8

VX_gain1[1]p/c

4/4

8

VX_shape1[0]p/

6/6

12

VX_shape1[1]p/

6/6

12

Итого

44

0

0

0

0

36

80

Когда предыдущий фрейм неизвестен, а текущий фрейм известен, или когда предыдущий фрейм известен, а текущий фрейм неизвестен, то же самое распределение защищенных/незащищенных битов используется, как показано выше.

Для режима 6,2 кбит/с используются 7 классов. Проверка CRC выполняется для битов классов I, II, III, IV, V и VI. Биты класса VII не проверяются CRC.

Таблица Б.3 – Количество защищенных/незащищенных битов при 6,2 кбит/с

Параметры

Речевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Битов класса VII

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

LSP5p/c

1/1

7/7

16

VUVp/c

2/2

4

Pitchp/c

6/6

1/1

14

SE_gainp/c

5/5

10

SE_shape1p

4

4

SE_shape1с

4

4

SE_shape2p

4

4

SE_shape2c

4

4

SE_shape3p/c

5/5

2/2

14

SE_shape4p/c

1/1

9/9

20

SE_shape5p/c

1/1

8/8

18

SE_shape6p/c

1/1

5/5

12

Итого

66

44

4

4

4

4

34

160

Таблица Б.4 дает распределение защищенных/незащищеных битов (классы I…VII) в случае, когда предыдущий и текущий фреймы неизвестны.

Таблица Б.4 – Количество защищенных/незащищенных битов при 6,2 кбит/с.

Параметры

Неречевой фрейм

Битов класса I

Битов класса II

Битов класса III

Битов класса IV

Битов класса V

Битов класса VI

Битов класса VII

Итого

LSP1p/c

5/5

10

LSP2p/c

4/4

3/3

14

LSP3p/c

1/1

4/4

10

LSP4p/c

1/1

2

LSP5p/c

1/1

7/7

16

VUVp/c

2/2

4

VX_gain1[0]p/c

4/4

8

VX_gain1[1]p/c

4/4

8

VX_shape1[0]p/

6/6

12

VX_shape1[1]p/

6/6

12

VX_gain2[0]p/c

3/3

6

VX_gain2[1]p/c

3/3

6

VX_gain2[2]p/c

3/3

6

VX_gain2[3]p/c

2/2

1/1

6

VX_shape2[0]p/

5/5

10

VX_shape2[1]p/

5/5

10

VX_shape2[2]p/

5/5

10

VX_shape2[3]p/

5/5

10

Итого

66

0

0

0

0

0

94

160

Когда предыдущий фрейм неизвестен, а текущий фрейм известен, или когда предыдущий фрейм известен, а текущий фрейм неизвестен, то же самое распределение защищенных/незащищенных битов используется, как показано выше.

Порядок битов для входа UEP показан в таблицах Б.5-Б.8 (для 2 кбит/с) и Б.9-Б.12 (для 4 кбит/с). Эти таблицы показывают порядок битов относительно каждой из комбинаций условия V/UV для 2 фреймов. Например, если предыдущий фрейм известен, а текущий фрейм находится в режиме 2 кбит/с, используется таблица Б.8. Порядок битов организован согласно чувствительности к ошибкам. Столбец “Биты” обозначает индекс бита параметра. “0” – младший бит.

Таблица Б.5 – Порядок бит 2 кбит/с (известный фрейм – известный фрейм)

Речевой фрейм – речевой фрейм

Номер

Пункт

Биты

Class/Bit

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP3p

4

21

LSP2p

5

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

SE_gainc

4

26

SE_gainc

3

27

SE_gainc

2

28

SE_gainc

1

29

SE_gainc

0

30

LSP1c

4

31

LSP1c

3

32

LSP1c

2

33

LSP1c

1

34

LSP1c

0

35

Pitchc

6

36

Pitchc

5

37

Pitchc

4

38

Pitchc

3

39

Pitchc

2

40

Pitchc

1

41

LSP2c

6

42

LSP3c

4

43

LSP2c

5

Class II Bit

44

SE_shape1p

3

45

SE_shape1p

2

46

SE_shape1p

1

47

SE_shape1p

0

Class III Bit

48

SE_shape2p

3

49

SE_shape2p

2

50

SE_shape2p

1

51

SE_shape2p

0

Class IV Bit

52

SE_shape1с

3

53

SE_shape1с

2

54

SE_shape1c

1

55

SE_shape1c

0

Class V Bit

56

SE_shape2c

3

57

SE_shape2c

2

58

SE_shape2c

1

59

SE_shape2c

0

Class VI Bit

60

LSP2p

4

61

LSP2p

3

62

LSP2p

2

63

LSP2p

1

64

LSP2p

0

65

LSP3p

3

66

LSP3p

2

67

LSP3p

1

68

LSP3p

0

69

Pitchp

0

70

LSP2c

4

71

LSP2c

3

72

LSP2c

2

73

LSP2c

1

74

LSP2c

0

75

LSP3c

3

76

LSP3c

2

77

LSP3c

1

78

LSP3c

0

79

Pitchc

0

Таблица Б.6 – Порядок бит 2 кбит/с (известный фрейм – неизвестный фрейм)

Речевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP3p

4

21

LSP2p

5

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

VX_gain1[0]c

3

26

VX_gain1[0]c

2

27

VX_gain1[0]c

1

28

VX_gain1[0]c

0

29

VX_gain1[1]c

3

30

VX_gain1[1]c

2

31

VX_gain1[1]c

1

32

VX_gain1[1]c

0

33

LSP1c

4

34

LSP1c

3

35

LSP1c

2

36

LSP1c

1

37

LSP1c

0

38

LSP2c

6

39

LSP2c

5

40

LSP2c

4

41

LSP2c

3

42

LSP3c

4

43

LSP3c

3

Класс II

44

SE_shape1p

3

45

SE_shape1p

2

46

SE_shape1p

1

47

SE_shape1p

0

Класс III

48

SE_shape2p

3

49

SE_shape2p

2

50

SE_shape2p

1

51

SE_shape2p

0

Класс IV

52

LSP2c

2

53

LSP2c

1

54

LSP2c

0

55

LSP3c

2

Класс V

56

LSP3c

1

57

LSP3c

0

58

VX_shape1[0]c

5

59

VX_shape1[0]c

4

Класс VI

60

LSP2p

4

61

LSP2p

3

62

LSP2p

2

63

LSP2p

1

64

LSP2p

0

65

LSP3p

3

66

LSP3p

2

67

LSP3p

1

68

LSP3p

0

69

Pitchp

0

70

VX_shape1[0]c

3

71

VX_shape1[0]c

2

72

VX_shape1[0]c

1

73

VX_shape1[0]c

0

74

VX_shape1[1]c

5

75

VX_shape1[1]c

4

76

VX_shape1[1]c

3

77

VX_shape1[1]c

2

78

VX_shape1[1]c

1

79

VX_shape1[1]c

0

Таблица Б.7 – Порядок бит 2 кбит/с (неизвестный фрейм – известный фрейм)

Неречевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[0]p

3

8

VX_gain1[0]p

2

9

VX_gain1[0]p

1

10

VX_gain1[0]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP3p

3

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

SE_gainc

4

26

SE_gainc

3

27

SE_gainc

2

28

SE_gainc

1

29

SE_gainc

0

30

LSP1c

4

31

LSP1c

3

32

LSP1c

2

33

LSP1c

1

34

LSP1c

0

35

Pitchc

6

36

Pitchc

5

37

Pitchc

4

38

Pitchc

3

39

Pitchc

2

40

Pitchc

1

41

LSP2c

6

42

LSP3c

4

43

LSP2c

5

Класс II

44

LSP2p

2

45

LSP2p

1

46

LSP2p

0

47

LSP3p

2

Класс III

48

LSP3p

1

49

LSP3p

0

50

VX_shape1[0]p

5

51

VX_shape1[0]p

4

Класс IV

52

VX_shape1[0]p

3

53

VX_shape1[0]p

2

54

SE_shape1с

1

55

SE_shape1с

0

Класс V

56

SE_shape2c

3

57

SE_shape2c

2

58

SE_shape2c

1

59

SE_shape2c

0

Класс VI

60

VX_shape1[0]p

3

61

VX_shape1[0]p

2

62

VX_shape1[0]p

1

63

VX_shape1[0]p

0

64

VX_shape1[0]p

5

65

VX_shape1[0]p

4

66

VX_shape1[0]p

3

67

VX_shape1[0]p

2

68

VX_shape1[0]p

1

69

VX_shape1[0]p

0

70

LSP2c

4

71

LSP2c

3

72

LSP2c

2

73

LSP2c

1

74

LSP2c

0

75

LSP3c

3

76

LSP3c

2

77

LSP3c

1

78

LSP3c

0

79

Pitchc

0

Таблица Б.8 – Порядок бит 2 кбит/с (неизвестный фрейм – неизвестный фрейм)

Неречевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[0]p

3

8

VX_gain1[0]p

2

9

VX_gain1[0]p

1

10

VX_gain1[0]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP3p

3

22

VUVc

1

23

VUVc

0

24

LSP4c

0

25

VX_gain1[0]c

3

26

VX_gain1[0]c

2

27

VX_gain1[0]c

1

28

VX_gain1[0]c

0

29

VX_gain1[1]c

3

30

VX_gain1[1]c

2

31

VX_gain1[1]c

1

32

VX_gain1[1]c

0

33

LSP1c

4

34

LSP1c

3

35

LSP1c

2

36

LSP1c

1

37

LSP1c

0

38

LSP2c

6

39

LSP2c

5

40

LSP2c

4

41

LSP2c

3

42

LSP3c

4

43

LSP3c

3

Класс II

44

LSP2p

2

45

LSP2p

1

46

LSP2p

0

47

LSP3p

2

Класс III

48

LSP3p

1

49

LSP3p

0

50

VX shape1[0]p

5

51

VX_shape1[0]p

4

Класс IV

52

LSP2c

2

53

LSP2c

1

54

LSP2c

0

55

LSP3c

2

Класс V

56

LSP3c

1

57

LSP3c

0

58

VX_shape1[0]c

5

59

VX_shape1[0]c

4

Класс VI

60

VX_shape1[0]p

3

61

VX_shape1[0]p

2

62

VX_shape1[0]p

1

63

VX_shape1[0]p

0

64

VX_shape1[0]p

5

65

VX_shape1[0]p

4

66

VX_shape1[0]p

3

67

VX_shape1[0]p

2

68

VX_shape1[0]p

1

69

VX_shape1[0]p

0

70

VX_shape1[0]p

3

71

VX_shape1[0]p

2

72

VX_shape1[0]p

1

73

VX_shape1[0]p

0

74

VX_shape1[0]p

5

75

VX_shape1[0]p

4

76

VX_shape1[0]p

3

77

VX_shape1[0]p

2

78

VX_shape1[0]p

1

79

VX_shape1[0]p

0

Таблица Б.9 – Порядок бит 4 кбит/с (известный фрейм – известный фрейм)

Речевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP2p

5

21

LSP2p

4

22

LSP2p

3

23

SE_shape3p

6

24

SE_shape3p

5

25

SE_shape3p

4

26

SE_shape3p

3

27

SE_shape3p

2

28

LSP3p

4

29

LSP5p

7

30

SE_shape4p

9

31

SE_shape5p

8

32

SE_shape6p

5

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

SE_gainc

4

37

SE_gainc

3

38

SE_gainc

2

39

SE_gainc

1

40

SE_gainc

0

41

LSP1c

4

42

LSP1c

3

43

LSP1c

2

44

LSP1c

1

45

LSP1c

0

46

Pitchc

6

47

Pitchc

5

48

Pitchc

4

49

Pitchc

3

50

Pitchc

2

51

Pitchc

1

52

LSP2c

6

53

LSP2c

5

54

LSP2c

4

55

LSP2c

3

56

SE_shape3c

6

57

SE_shape3c

5

58

SE_shape3c

4

59

SE_shape3c

3

60

SE_shape3c

2

61

LSP3c

4

62

LSP5c

7

63

SE_shape4c

9

64

SE_shape5c

8

65

SE_shape6c

5

Класс II

66

SE_shape4p

8

67

SE_shape4p

7

68

SE_shape4p

6

69

SE_shape4p

5

70

SE_shape4p

4

71

SE_shape4p

3

72

SE_shape4p

2

73

SE_shape4p

1

74

SE_shape4p

0

75

SE_shape5p

7

76

SE_shape5p

6

77

SE_shape5p

5

78

SE_shape5p

4

79

SE_shape5p

3

80

SE_shape5p

2

81

SE_shape5p

1

82

SE_shape5p

0

83

SE_shape6p

4

84

SE_shape6p

3

85

SE_shape6p

2

86

SE_shape6p

1

87

SE_shape6p

0

88

SE_shape4c

8

89

SE_shape4c

7

90

SE_shape4c

6

91

SE_shape4c

5

92

SE_shape4c

4

93

SE_shape4c

3

94

SE_shape4c

2

95

SE_shape4c

1

96

SE_shape4c

0

97

SE_shape5c

7

98

SE_shape5c

6

99

SE_shape5c

5

100

SE_shape5c

4

101

SE_shape5c

3

102

SE_shape5c

2

103

SE_shape5c

1

104

SE_shape5c

0

105

SE_shape6c

4

106

SE_shape6c

3

107

SE_shape6c

2

108

SE_shape6c

1

109

SE_shape6c

0

Класс III

110

SE_shape1p

3

111

SE_shape1p

2

112

SE_shape1p

1

113

SE_shape1p

0

Класс IV

114

SE_shape2p

3

115

SE_shape2p

2

116

SE_shape2p

1

117

SE_shape2p

0

Класс V

118

SE_shape1c

3

119

SE_shape1c

2

120

SE_shape1c

1

121

SE_shape1c

0

Класс VI

122

SE_shape2c

3

123

SE_shape2c

2

124

SE_shape2c

1

125

SE_shape2c

0

Класс VII

126

LSP2p

2

127

LSP2p

1

128

LSP2p

0

129

LSP3p

3

130

LSP3p

2

131

LSP3p

1

132

LSP3p

0

133

LSP5p

6

134

LSP5p

5

135

LSP5p

4

136

LSP5p

3

137

LSP5p

2

138

LSP5p

1

139

LSP5p

0

140

Pitchp

0

141

SE_shape3p

1

142

SE_shape3p

0

143

LSP2c

2

144

LSP2c

1

145

LSP2c

0

146

LSP3c

3

147

LSP3c

2

148

LSP3c

1

149

LSP3c

0

150

LSP5c

6

151

LSP5c

5

152

LSP5c

4

153

LSP5c

3

154

LSP5c

2

155

LSP5c

1

156

LSP5c

0

157

Pitchp

0

158

SE_shape3c

1

159

SE_shape3c

0

Таблица Б.10 – Порядок бит 4 кбит/с (известный фрейм – неизвестный фрейм)

Речевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

SE_gainp

4

4

SE_gainp

3

5

SE_gainp

2

6

SE_gainp

1

7

SE_gainp

0

8

LSP1p

4

9

LSP1p

3

10

LSP1p

2

11

LSP1p

1

12

LSP1p

0

13

Pitchp

6

14

Pitchp

5

15

Pitchp

4

16

Pitchp

3

17

Pitchp

2

18

Pitchp

1

19

LSP2p

6

20

LSP2p

5

21

LSP2p

4

22

LSP2p

3

23

SE_shape3p

6

24

SE_shape3p

5

25

SE_shape3p

4

26

SE_shape3p

3

27

SE_shape3p

2

28

LSP3p

4

29

LSP5p

7

30

SE_shape4p

9

31

SE_shape5p

8

32

SE_shape6p

5

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

VX_gain1[0]c

3

37

VX_gain1[0]c

2

38

VX_gain1[0]c

1

39

VX_gain1[0]c

0

40

VX_gain1[1]c

3

41

VX_gain1[1]c

2

42

VX_gain1[1]с

1

43

VX_gain1[1]c

0

44

LSP1c

4

45

LSP1c

3

46

LSP1c

2

47

LSP1c

1

48

LSP1c

0

49

LSP2c

6

50

LSP2c

5

51

LSP2c

4

52

LSP2c

3

53

LSP3c

4

54

LSP5c

7

55

VX_gain2[0]c

2

56

VX_gain2[0]c

1

57

VX_gain2[0]c

0

58

VX_gain2[1]c

2

59

VX_gam2[1]c

1

60

VX_gain2[1]c

0

61

VX_gain2[2]c

2

62

VX_gain2[2]c

1

63

VX_gain2[2]c

0

64

VX_gain2[3]c

2

65

VX_gain2[3]c

1

Класс II

66

SE_shape4p

8

67

SE_shape4p

7

68

SE_shape4p

6

69

SE_shape4p

5

70

SE_shape4p

4

71

SE_shape4p

3

72

SE_shape4p

2

73

SE_shape4p

1

74

SE_shape4p

0

75

SE_shape5p

7

76

SE_shape5p

6

77

SE_shape5p

5

78

SE_shape5p

4

79

SE_shape5p

3

80

SE_shape5p

2

81

SE_shape5p

1

82

SE_shape5p

0

83

SE_shape6p

4

84

SE_shape6p

3

85

SE_shape6p

2

86

SE_shape6p

1

87

SE_shape6p

0

88

VX_gain2[3]c

0

89

LSP2c

2

90

LSP2c

1

91

LSP2c

0

92

LSP3c

3

93

LSP3c

2

94

LSP3c

1

95

LSP3c

0

96

LSP5c

6

97

LSP5c

5

98

LSP5c

4

99

LSP5c

3

100

LSP5c

2

101

LSP5c

1

102

LSP5c

0

103

VX_shape1[0]c

5

104

VX_shape1[0]c

4

105

VX_shape1[0]c

3

106

VX_shape1[0]c

2

107

VX_shape1[0]c

1

108

VX_shape1[0]c

0

109

VX_shape1[1]c

5

Класс III

110

SE_shape1p

3

111

SE_shape1p

2

112

SE_shape1p

1

113

SE_shape1p

0

Класс IV

114

SE_shape2p

3

115

SE_shape2p

2

116

SE_shape2p

1

117

SE_shape2p

0

Класс V

118

VX_shape1[1]c

4

119

VX_shape1[1]c

3

120

VX_shape1[1]c

2

121

VX_shape1[1]c

1

Класс VI

122

VX_shape1[1]c

0

123

VX_shape2[0]c

4

124

VX_shape2[0]c

3

125

VX_shape2[0]c

2

Класс VII

126

LSP2p

2

127

LSP2p

1

128

LSP2p

0

129

LSP3p

3

130

LSP3p

2

131

LSP3p

1

132

LSP3p

0

133

LSP5p

6

134

LSP5p

5

135

LSP5p

4

136

LSP5p

3

137

LSP5p

2

138

LSP5p

1

139

LSP5p

0

140

Pitchp

0

141

SE_shape3p

1

142

SE_shape3p

0

143

VX_shape2[0]c

1

144

VX_shape2[0]c

0

145

VX_shape2[1]c

4

146

VX_shape2[1]c

3

147

VX_shape2[1]c

2

148

VX_shape2[1]c

1

149

VX_shape2[1]c

0

150

VX_shape2[2]c

4

151

VX_shape2[2]c

3

152

VX_shape2[2]c

2

153

VX_shape2[2]c

1

154

VX_shape2[2]c

0

155

VX_shape2[3]c

4

156

VX_shape2[3]c

3

157

VX_shape2[3]c

2

158

VX_shape2[3]c

1

159

VX_shape2[3]c

0

Таблица Б.11 – Порядок бит 4 кбит/с (неизвестный фрейм – известный фрейм)

Неречевой фрейм – речевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[1]p

3

8

VX_gain1[1]p

2

9

VX_gain1[1]p

1

10

VX_gain1[1]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP5p

7

22

VX_gain2[0]c

2

23

VX_gain2[0]c

1

24

VX_gain2[0]c

0

25

VX_gain2[1]c

2

26

VX_gain2[1]c

1

27

VX_gain2[1]c

0

28

VX_gain2[2]c

2

29

VX_gain2[2]c

1

30

VX_gain2[2]c

0

31

VX_gain2[3]c

2

32

VX_gain2[3]c

1

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

SE_gainc

4

37

SE_gainc

3

38

SE_gainc

2

39

SE_gainc

1

40

SE_gainc

0

41

LSP1c

4

42

LSP1c

3

43

LSP1c

2

44

LSP1c

1

45

LSP1c

0

46

Pitchc

6

47

Pitchc

5

48

Pitchc

4

49

Pitchc

3

50

Pitchc

2

51

Pitchc

1

52

LSP2c

6

53

LSP2c

5

54

LSP2c

4

55

LSP2c

3

56

SE_shape3c

6

57

SE_shape3c

5

58

SE_shape3c

4

59

SE_shape3c

3

60

SE_shape3c

2

61

LSP3c

4

62

LSP5c

7

63

SE_shape4c

9

64

SE_shape5c

8

65

SE_shape6c

5

Класс II

66

VX_gain2[3]p

0

67

LSP2p

2

68

LSP2p

1

69

LSP2p

0

70

LSP3p

3

71

LSP3p

2

72

LSP3p

1

73

LSP3p

0

74

LSP5p

6

75

LSP5p

5

76

LSP5p

4

77

LSP5p

3

78

LSP5p

2

79

LSP5p

1

80

LSP5c

0

81

VX_shape1[0]p

5

82

VX_shape1[0]p

4

83

VX_shape1[0]p

3

84

VX_shape1[0]p

2

85

VX_shape1[0]p

1

86

VX_shape1[0]p

0

87

VX_shape1[1]p

5

88

SE_shape4c

8

89

SE_shape4c

7

90

SE_shape4c

6

91

SE_shape4c

5

92

SE_shape4c

4

93

SE_shape4c

3

94

SE_shape4c

2

95

SE_shape4c

1

96

SE_shape4c

0

97

SE_shape5c

7

98c

SE_shape5c

6

99c

SE_shape5c

5

100

SE_shape5c

4

101

SE_shape5c

3

102

SE_shape5c

2

103

SE_shape5c

1

104

SE_shape5c

0

105

SE_shape6c

4

106

SE_shape6c

3

107

SE_shape6c

2

108

SE_shape6c

1

109

SE_shape6c

0

Класс III

110

VX_shape1[1]p

4

111

VX_shape1[1]p

3

112

VX_shape1[1]p

2

113

VX_shape1[1]p

1

Класс IV

114

VX_shape1[1]p

0

115

VX_shape2[0]p

4

116

VX_shape2[0]p

3

117

VX_shape2[0]p

2

Класс V

118

SE_shape1с

3

119

SE_shape1с

2

120

SE_shape1с

1

121

SE_shape1с

0

Класс VI

122

SE_shape2c

3

123

SE_shape2c

2

124

SE_shape2c

1

125

SE_shape2c

0

Класс VII

126

VX_shape2[0]p

1

127

VX_shape2[0]p

0

128

VX_shape2[1]p

4

129

VX_shape2[1]p

3

130

VX_shape2[1]p

2

131

VX_shape2[1]p

1

132

VX_shape2[1]p

0

133

VX_shape2[2]p

4

134

VX_shape2[2]p

3

135

VX_shape2[2]p

2

136

VX_shape2[2]p

1

137

VX_shape2[2]p

0

138

VX_shape2[3]p

4

139

VX_shape2[3]p

3

140

VX_shape2[3]p

2

141

VX_shape2[3]p

1

142

VX_shape2[3]p

0

143

LSP2c

2

144

LSP2c

1

145

LSP2c

0

146

LSP3c

3

147

LSP3c

2

148

LSP3c

1

149

LSP3c

0

150

LSP5c

6

151

LSP5c

5

152

LSP5c

4

153

LSP5c

3

154

LSP5c

2

155

LSP5c

1

156

LSP5c

0

157

Pitchc

0

158

SE_shape3c

1

159

SE_shape3c

0

Таблица Б.12 – Порядок бит 4 кбит/с (неизвестный фрейм – неизвестный фрейм)

Неречевой фрейм – неречевой фрейм

Номер

Пункт

Биты

Класс I

0

VUVp

1

1

VUVp

0

2

LSP4p

0

3

VX_gain1[0]p

3

4

VX_gain1[0]p

2

5

VX_gain1[0]p

1

6

VX_gain1[0]p

0

7

VX_gain1[1]p

3

8

VX_gain1[1]p

2

9

VX_gain1[1]p

1

10

VX_gain1[1]p

0

11

LSP1p

4

12

LSP1p

3

13

LSP1p

2

14

LSP1p

1

15

LSP1p

0

16

LSP2p

6

17

LSP2p

5

18

LSP2p

4

19

LSP2p

3

20

LSP3p

4

21

LSP5p

7

22

VX_gain2[0]c

2

23

VX_gain2[0]c

1

24

VX_gain2[0]c

0

25

VX_gain2[1]c

2

26

VX_gain2[1]c

1

27

VX_gain2[1]c

0

28

VX_gain2[2]p

2

29

VX_gain2[2]p

1

30

VX_gain2[2]p

0

31

VX_gain2[3]p

2

32

VX_gain2[3]p

1

33

VUVc

1

34

VUVc

0

35

LSP4c

0

36

VX_gain1[0]c

3

37

VX_gain1[0]c

2

38

VX_gain1[0]c

1

39

VX_gain1[0]c

0

40

VX_gain1[1]c

3

41

VX_gain1[1]c

2

42

VX_gain1[1]c

1

43

VX_gain1[1]c

0

44

LSP1c

4

45

LSP1c

3

46

LSP1c

2

47

LSP1c

1

48

LSP1c

0

49

LSP2c

6

50

LSP2c

5

51

LSP2c

4

52

LSP2c

3

53

LSP3c

4

54

LSP5c

7

55

VX_gain2[0]c

2

56

VX_gain2[0]c

1

57

VX_gain2[0]c

0

58

VX_gain2[1]c

2

59

VX_gain2[1]c

1

60

VX_gain2[1]c

0

61

VX_gain2[2]c

2

62

VX_gain2[2]c

1

63

VX_gain2[2]c

0

64

VX_gain2[3]c

2

65

VX_gain2[3]c

1

Класс II

66

VX_gain2[3]p

0

67

LSP2p

2

68

LSP2p

1

69

LSP2p

0

70

LSP3p

3

71

LSP3p

2

72

LSP3p

1

73

LSP3p

0

74

LSP5p

6

75

LSP5p

5

76

LSP5p

4

77

LSP5p

3

78

LSP5p

2

79

LSP5p

1

80

LSP5c

0

81

VX_shape1[0]p

5

82

VX_shape1[0]p

4

83

VX_shape1[0]p

3

84

VX_shape1[0]p

2

85

VX_shape1[0]p

1

86

VX_shape1[0]p

0

87

VX_shape1[1]p

5

88

VX_gain2[3]c

0

89

LSP2c

2

90

LSP2c

1

91

LSP2c

0

92

LSP3c

3

93

LSP3c

2

94

LSP3c

1

95

LSP3c

0

LSP1c

LSP5c

6

LSP1c

LSP5c

5

LSP1c

LSP5c

4

LSP1c

LSP5c

3

LSP2c

LSP5c

2

101

LSP5c

1

102

LSP5c

0

103

VX_shape1[0]c

5

104

VX_shape1[0]c

4

105

VX_shape1[0]c

3

106

VX_shape1[0]c

2

107

VX_shape1[0]c

1

108

VX_shape1[0]c

0

109

VX_shape1[1]c

5

Класс III

110

VX_shape1[1]p

4

111

VX_shape1[1]p

3

112

VX_shape1[1]p

2

113

VX_shape1[1]p

1

Класс IV

114

VX_shape1[1]p

0

115

VX_shape2[0]p

4

116

VX_shape2[0]p

3

117

VX_shape2[0]p

2

Класс V

118

VX_shape1[1]c

4

119

VX_shape1[1]c

3

120

VX_shape1[1]c

2

121

VX_shape1[1]c

1

Класс VI

122

VX_shape1[1]c

0

123

VX_shape2[0]c

4

124

VX_shape2[0]c

3

125

VX_shape2[0]c

2

Класс VII

126

VX_shape2[0]p

1

127

VX_shape2[0]p

0

128

VX_shape2[1]p

4

129

VX_shape2[1]p

3

130

VX_shape2[1]p

2

131

VX_shape2[1]p

1

132

VX_shape2[1]p

0

133

VX_shape2[2]p

4

134

VX_shape2[2]p

3

135

VX_shape2[2]p

2

136

VX_shape2[2]p

1

137

VX_shape2[2]p

0

138

VX_shape2[3]p

4

139

VX_shape2[3]p

3

140

VX_shape2[3]p

2

141

VX_shape2[3]p

1

142

VX_shape2[3]p

0

143

VX_shape2[0]c

1

144

VX_shape2[0]c

0

145

VX_shape2[1]c

4

146

VX_shape2[1]c

3

147

VX_shape2[1]c

2

148

VX_shape2[1]c

1

149

VX_shape2[1]c

0

150

VX_shape2[2]c

4

151

VX_shape2[2]c

3

152

VX_shape2[2]c

2

153

VX_shape2[2]c

1

154

VX_shape2[2]c

0

155

VX_shape2[3]c

4

156

VX_shape2[3]c

3

157

VX_shape2[3]c

2

158

VX_shape2[3]c

1

159

VX_shape2[3]c

0

Б.3.3 Настройка инструмента ЕР

Б.3.3.1 Назначение битов

Таблица Б.13 показывает пример назначения битов для использования инструментом ЕР. В этой таблице описано назначение битов для кодеров 4 кбит/с и 2 кбит/с.

Таблица Б.13 – Назначение битов для использования инструментом ЕР

Кодер источника 2 кбит/с

Кодер источника 4 кбит/с

Класс I

Биты кодера источника

44

66

Четность CRC

6

6

Кодовая скорость

8/16

8/16

Класс I всего

100

144

Класс II

Биты кодера источника

4

44

Четность CRC

1

6

Кодовая скорость

8/8

8/8

Класс II всего

5

50

Класс III

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс III всего

5

5

Класс IV

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс IV всего

5

5

Класс V

Биты кодера источника

4

4

Четность CRC

1

1

Кодовая скорость

8/8

8/8

Класс V всего

5

5

Класс VI

Биты кодера источника

20

4

Четность CRC

0

1

Кодовая скорость

8/8

8/8

Класс VI всего

20

5

Класс VII

Биты кодера источника

34

Четность CRC

0

Кодовая скорость

8/8

Класс VII всего

34

Суммарно битов всех классов

140

248

Битовая скорость

3,5 кбит/с

6,2 кбит/с

Класс I:

CRC охватывает все биты Класса I, включая CRC.

Класс II-V (2 кбит/с), II-VI (4 кбит/с):

По крайней мере одни биты CRC охватывают исходные биты кодера этих классов.

Класс VI (2 кбит/с), VII (4 кбит/с):

Исходные биты кодера не проверяются CRC и не защищаются какой-либо схемой коррекции.

Б.3.4 Маскировка ошибок

Когда обнаружена ошибка CRC, выполняется маскировка ошибок (маскировка “плохого” фрейма). Пример метода маскировки описан ниже.

Состояние маскировки текущего фрейма обновляется на основании результата декодирования CRC Класса I. Диаграмма переходов показана на рисунке Б.2. Начальное состояние = 0. Стрелка с символом “1” обозначает переход для плохого фрейма, а с символом “0” – для хорошего фрейма.

Б.3.4.1 Замена параметров

Согласно текущему состоянию выполняется следующая замена параметров. При условии отсутствия ошибок, состояние равно 0, а полученные исходные биты кодера используются без маскировки.

Б.3.4.1.1 Параметры LSP

В state = 1…6, параметры LSP заменяются таковыми из предыдущих.

Когда state=7, при LSP4=0 (режим квантования LSP без межфреймового предсказания), параметры LSP вычисляются по всем индексам LSP, полученным в текущем фрейме. Если LSP4=1 (режим квантования LSP c межcфреймовым кодированием), параметры LSP вычисляются следующим методом.

В этом режиме параметры LSP индекса LSP1 интерполируются с предыдущими LSP.

для для 1…10 (1)

– параметры – параметры базового слоя, – предыдущие – предыдущие , – декодированные – декодированные текущего индекса , , – коэффициент интерполяции, изменяется согласно числу предыдущих ошибочных фреймов CRC битов Класса I, как показано в таблице Б.14. Индексы изменяется согласно числу предыдущих ошибочных фреймов CRC битов Класса I, как показано в таблице Б.14. Индексы , , , и не используются, не используются, используются как текущие параметры .

Таблица Б.14 – Коэффициент

Фрейм

0

0,7

1

0,6

2

0,5

3

0,4

4

0,3

5

0,2

6

0,1

=>7

0,0

Б.3.4.1.2 Переменная Mute

Согласно значению state, переменная mute управляет выходным уровнем речи.

При state = 7, используется среднее между 1,0 и значением mute предыдущего фрейма (= 0,5 (1,0 + предыдущее значение mute)), но, когда это значение больше, чем 0,8, значение mute заменяется на 0,8.

Значения mute приведены в таблице Б.15.

Таблица Б.15 – Значения mute

Состояние

mute

0

1,000

1

0,800

2

0,700

3

0,500

4

0,250

5

0,125

6

0,000

7

Среднее/0,800

Б.3.4.1.3 Замена и контроль усиления “голосовых” параметров

В state=1.. 6, параметр спектра SE_shape1, SE_shape2, параметр SE_gain усиления спектра, параметр спектра для кодека 4 кбит/с SE_shape3.. SE_shape6 заменяются соответствующими параметрами предыдущего фрейма. Кроме того, для управления выходной громкостью речи, параметры амплитуд гармоник LPC Am [0…127] усиливаются, как показано в (Б.1). В этом уравнении, вычисляется из последнего фрейма, свободного от ошибок.

для для 0.. 127 (Б.1)

Если предыдущий фрейм не содержит речи, и текущее состояние – state=7, (Б.1) заменяется на (Б.2).

для для 0.. 127 (Б.2)

Как описано прежде, SE_shape1 и SE_shape2 индивидуально защищены 1 битом CRC. В state=0 или 7, когда ошибки CRC этих классов обнаружены в то же самое время, когда квантованные значения амплитуд [1.. 44] ослабляются, как показано в (Б.3).

для для 1.. 44 (Б.3)

– коэффициент ослабления.

Таблица Б.16 – Коэффициент ослабления для [0.. 44]

i

1

2

3

4

5

6

7…44

0,10

0,25

0,40

0,55

0,70

0,85

1,00

На 4 кбит/с SE_shape4, SE_shape5, и SE_shape6 проверяются CRC как биты Класса II. Когда ошибка CRC обнаружена, спектральный параметр расширения не используется.

Б.3.4.1.4 Замена и контроль усиления над “неголосовыми” параметрами

В state=1.. 6, стохастический параметр усиления кодовой книги VX_gain1[0] и VX_gain1[1] заменяются на VX_gain1[1] от последнего фрейма, свободного от ошибок. Также стохастические параметры усиления кодовой книги для кодека 4 кбит/с VX_gain2[0]…VX_gain2[3] заменяются VX_gain2[3] от последнего фрейма, свободного от ошибок.

Стохастические параметры VX_shape1[0], VX_shape1[1] и стохастический параметр кодека 4 кбит/с генерируются из произвольных индексных значений.

Кроме того, для управления выходной громкостью речи остаточный сигнал LPC res [0…159] усиливается, как показано в (Б.4). В этом уравнении вычисляется по стохастическим параметрам кодовой книги.

для для 0.. 159 (Б.4)

Б.3.4.1.5 Переходы состояний маскирования фреймов (рисунок Б.2)

Рисунок Б.2 – Переходы состояний маскирования фреймов

Рисунок Б.2 – Переходы состояний маскирования фреймов

Библиография

[1]

ИСО/МЭК 14496-3:2009

Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио (ИСО/МЭК 14496-3:2009 Information technology – Coding of audio-visual objects – Part 3: Audio)

__________________________________________________________________________
УДК 621.396:006.354 ОКС 33.170

Ключевые слова: звуковое вещание, электрические параметры, каналы и тракты, технологии MPEG-кодирования, синтетический звук, масштабирование, защита от ошибок, поток битов расширения, психоакустическая модель
__________________________________________________________________________

Электронный текст документа
и сверен по:
официальное издание
М.: Стандартинформ, 2014

Николай Иванов

Эксперт по стандартизации и метрологии! Разрешительная и нормативная документация.

Оцените автора
Все-ГОСТЫ РУ
Добавить комментарий