ГОСТР
53556.11-
2014
ПО ТЕХНИЧЕСКОМУ РЕГУЛИРОВАНИЮ И МЕТРОЛОГИИ
НАЦИОНАЛЬНЫЙ
СТАНДАРТ
РОССИЙСКОЙ
ФЕДЕРАЦИИ
Звуковое вещание цифровое
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ
Часть III
(MPEG-4 AUDIO)
Аудиокодирование без потерь
ISO/IEC 14496-3:2009 (NEQ)
Ш
Издание официальное
Стандартинформ
2015
ГОСТ P 53556.11—2014
Предисловие
1 РАЗРАБОТАН Техническим комитетом по стандартизации ТК 480 «Связь»
2 ВНЕСЕН Техническим комитетом по стандартизации ТК 480 «Связь»
3 УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Приказом Федерального агентства по техническому регулированию и метрологии от 17 марта 2014 г. № 148-ст
4 Настоящий стандарт разработан с учетом основных нормативных положений международного стандарта ИСО/МЭК 14496-3:2009 «Информационные технологии. Кодирование аудиовизуальных объектов. Часть 3. Аудио» (ISO/1EC 14496-3:2009 «Information technology — Coding of audio-visual objects — Part 3: Audio», NEQ)(1)
5 ВВЕДЕН ВПЕРВЫЕ
Правила применения настоящего стандарта установлены в ГОСТ Р 1.0-2012 (раздел 8). Информация об изменениях к настоящему стандарту публикуется в ежегодном (по состоянию на 1 января текущего года) информационном указателе «Национальные стандарты», а официальный текст изменений и поправок — в ежемесячном информационном указателе «Национальные стандарты». В случае пересмотра (замены) или отмены настоящего стандарта соответствующее уведомление будет опубликовано в ближайшем выпуске ежемесячного информационного указателя к Национальные стандарты» Соответствующая информация, уведомление и тексты размещаются также в информационной системе общего пользования — на официальном сайте Федерального агентства по техническому регулированию и метрологии в сети Интернет (www.gost ги)
©Стандартинформ. 2015
Настоящий стандарт не может быть полностью или частично воспроизведен, тиражирован и распространен в качестве официального издания без разрешения Федерального агентства по техническому регулированию и метрологии
II
Таблица 5 -СинтаксисRLSLMS_extension_data |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4.3 Полезные нагрузки для данных с плавающей точкой |
Таблица 6 -Синтаксисdiff_ffoat_data |
|||||||||||
|
ГОСТ P 53556.11—2014
|
||||||||||||||||||||||||
Таблица 7 -Синтаксисdiff_mantissa |
|
|||||||||||||||||||||||||||
9 |
|
|||||||||
Таблица 8 – Синтаксис Masked_LZ_decompression |
|
||||||
Примечание – «nchars» является числом символов, которые должны декодироваться |
5 Семантика
5.1 Общая семантика
5.1.1 ALSSpecificConfig
ALSSpecificConfig содержит общие данные конфигурации. Дополнительно могут быть встроены заголовок и концевик исходного аудио файла, чтобы восстановить эту информацию в дополнение к фактическим аудиоданным. Синтаксис ALSSpecificConfig определяется в таблице 1. ее элементы описываются в таблице 9.
Таблица 9 — Элементы ALSSpecificConfig |
||||||||||||||||||
|
ГОСТ P 53556.11—2014
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 |
Поле |
Количество битов |
Описание/Значения |
Зарезерви ровано |
5 |
|
aux_data_ enabled |
1 |
Указывает, что вспомогательные данные присутствуют (поля aux_size и аих_ data) |
chan_ configjnfo |
16 |
Отображение каналов на местоположение громкоговорителя Каждый бит указывает. существует ли канал для определенного местоположения |
chan_pos[] |
(channels* 1\)’ ChBits |
Если перестановка каналов включена (chan_sort – 1), имеет место исходное расположение каналов Число битов на канал ChBits = ce/4k>92(crtanne/s+1)) = 1 16. где channels* 1 является числом каналов |
header_size |
32 |
Размер заголовка исходного аудиофайла в байтах Если header_size = OxFFFFFFFF(Hex), поле ong_headerQ отсутствует, но исходный заголовок может быть сохранен в другом месте например в метаданных файла MPEG-A |
trailer_sjze |
32 |
Размер концевика исходного аудиофайла в байтах Если trailer_size = 0xFFFFFFFF (Hex), поле ong_tra*ler\] отсутствует, но исходный заголовок может быть сохранен в другом месте например в метаданных файла MPEG-4 |
orig_header(] |
header_size‘B |
Заголовок исходного аудиофайла |
ong_trailerfl |
(railer_size’B |
Концевик исходного аудиофайла |
crc |
32 |
32-битовый контрольный код СС/7Т-32 CRC байтов исходных аудиоданных (ПОЛИНОМ х32 ♦ х*6 ♦ х23 ♦ х22 ♦ х16 ♦ х12 ♦ х11 ♦ х10 ♦ Xе ♦ X7 ♦ X5 * X** х2 * х * 1) |
ra_unit_size0 |
•frames* 32 |
Расстояние (в байтах) между фреймами произвольного доступа, то есть размеры блоков произвольного доступа, где количество фреймов »frames=((sam-p^es-^)/(frameJength*^)) +1 В ALSSpeahcConfig() это поле появляется только когда га_Пад = 2 |
aux_size |
32 |
Размер поля aux_data в байтах Если aux_size = 0xFFFFFFFF (Hex), поле aux_dataQ отсутствует, но вспомогательные данные могут быть сохранены в другом месте, например, в метаданных файла MPEG-4 |
aux_data |
auxjsize* 8 |
Вспомогательные данные (для декодирования не требуется) |
5.1.2 frame_data
Это высокоуровневая полезная нагрузка ALS. Если random_access> 0. число полезных нагрузок, отображенных в одном устройстве доступа, равняется значению random_access (1 … 255). В этом случае размер каодого блока доступа может быть сохранен в ra_unit_size. Если random_access = 0. все полезные нагрузки отображаются в тот же самый блок доступа.
Поле bs_info содержит информацию о переключении блока для канала или пары каналов. Синтаксис frame_data определяется в таблице 2. его элементы описываются в таблице 10.
Таблица 10 — Элементы frame_data |
||||||
|
ГОСТ P 53556.11—2014
Попе |
Количество битов |
Описание / Значения |
bsjnfo |
8, 16. 32 |
Информация о переключении блока Если block_svutching = 0. поле bsjnfo не передается, иначе количество битов зависит от величины block_s\vitchmg block_s\Mtching = 1:8 битов, biock_s\Mtctvng = 2: 16 битов, btock_s\Mtcbing = 3: 32 бита |
js_switch |
1 |
Если js_$wtch = 1. выбирается Joint Stereo (разница каналов), даже если задействовано MCC (mc_codmg) |
пит_ bytes_ diff_ float |
32 |
Присутствует, только когда floating = 1: Число байтов для diff_float_data |
5.1.3 block_data
Блочные данные определяют тип блока (нормальный, постоянный, тишина) и в основном содержат индексы кода, порядок прогнозирующего устройства, коэффициенты прогнозирующего устройства и кодированные остаточные значения. Синтаксис block_data определяется в таблице 3. его элементы описываются в таблице 11.
Таблица 11 — Элементы block_data |
||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
13 |
ГОСТ Р 53556.11-2014
Содержание
1 Область применения…………………………………………………………1
2 Технический обзор…………………………………………………………..1
2.1 Структура кодера и декодера……………………………………………….1
2.2 Расширения с плавающей точкой…………………………………………….1
3 Термины и определения………………………………………………………2
3.1 Определения……………………………………………………………2
3.2 Мнемоника……………………………………………………………..2
3.3 Типы данных……………………………………………………………2
3.4 Замечания по реализации………………………………………………….3
4 Синтаксис…………………………………………………………………3
4.1 Конфигурация декодера……………………………………………………3
4.2 Полезные нагрузки потока битов……………………………………………..4
4.3 Полезные нагрузки для данных с плавающей точкой………………………………8
5 Семантика……………………………………………………………….10
5.1 Общая семантика……………………………………………………….10
5.2 Семантика для данных с плавающей точкой……………………………………15
6 Инструменты ALS………………………………………………………….16
6.1 Краткий обзор………………………………………………………….16
6.2 Переключение блоков ……………………………………………………19
6.3 Прогноз………………………………………………………………20
6.4 Долгосрочный прогноз (LTP)……………………………………………….26
6.5 Прогнозирующее устройство RLS-LMS………………………………………..28
6.6 Кодированный остаток……………………………………………………39
6.7 Объединенное кодирование пар каналов……………………………………..56
6.8 Многоканальное кодирование (МСС)…………………………………………56
6.9 Расширение для данных с плавающей точкой…………………………………..59
Библиография………………………………………………………………65
III
НАЦИОНАЛЬНЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Звуковое вещание цифровое
КОДИРОВАНИЕ СИГНАЛОВ ЗВУКОВОГО ВЕЩАНИЯ С СОКРАЩЕНИЕМ ИЗБЫТОЧНОСТИ ДЛЯ ПЕРЕДАЧИ ПО ЦИФРОВЫМ КАНАЛАМ СВЯЗИ
Часть III
(MPEG-4 AUDIO)
Аудиокодирование без потерь
Digital sound broadcasting
Coding of signals of sound broadcasting with reduction of redundancy for transfer on digital communication channels
Part III (MPEG-4 audio). Audio lossless coding
Дата введения — 2015—01—01
1 Область применения
Этот стандарт описывает алгоритм кодирования аудиосигналов без потерь: аудиокодирование без потерь MPEG-4 (ALS).
MPEG-4 ALS являются схемой сжатия данных цифрового аудио без потерь, то есть декодируемые данные являются разрядно-идентичной реконструкцией исходных входных данных. Входные сигналы могут быть целочисленными данными РСМ от 8 до 32-разрядной длины слова или 32-разрядными данными IEEE с плавающей точкой. MPEG-4 ALS обеспечивает широкий диапазон гибкости с точки зрения компромисса сжатия — сложности, поскольку комбинация нескольких инструментов позволяет определить уровень компрессии с различными степенями сложности.
2 Технический обзор
2.1 Структура кодера и декодера
Входные аудиоданные делятся на фреймы (кадры). В пределах фрейма каждый канал может быть дополнительно разделен на блоки аудиосэмплов (выборок аудио) для дальнейшей обработки. Для каждого блока вычисляется ошибка прогноза, используя краткосрочный прогноз и дополнительно долгосрочный прогноз (LTP). Межканальная избыточность может быть удалена объединенным кодированием каналов, используя либо дифференциальное кодирование пар каналов, либо многоканальное кодирование (МСС). Остающаяся ошибка прогноза является в итоге кодированной энтропией.
Кодер генерирует информацию о потоке битов, позволяющую произвольный доступ с промежутками в несколько фреймов. Кодер может также обеспечить контрольную сумму CRC. которую может использовать декодер, чтобы проверить декодируемые данные. Декодер применяет инверсные операции кодера в обратном порядке. Его вывод является разрядно-идентичной версией исходных входных аудиоданных.
2.2 Расширения с плавающей точкой
В дополнение к целочисленным аудиосигналам MPEG-4 ALS также поддерживает сжатие аудиосигналов без потерь в 32-разрядном формате с плавающей точкой IEEE. Последовательность с плавающей точкой моделируется суммой целочисленной последовательности, умноженной на константу (ACF: Approximate Common Factor). и остаточной последовательностью. Целочисленная последовательность сжимается, используя основные инструменты ALS для целочисленных данных, в то время как остаточная последовательность отдельно сношается замаскированным инструментом Lempel-Ziv.
Издание официальное
ГОСТ P 53556.11—2014
3 Термины и определения
3.1 Определения
Frame
Block
Sub-block
Random Access Frame Residual
Predictor/Predictto n Fitter
Prediction order
LPC coefficients Parcor coefficients Quantized coefficients LTP
Rice code
BGMC
CRC
LPC
PCM
Mantissa
Exponent
ACFC
Masked-LZ
MCC
MSB
LSB
В стандарте используются следующие определения и сокращения.
Сегмент аудиосигнала (содержащий все каналы).
Сегмент одного звукового канала.
Часть блока, которая использует те же параметры кодирования энтропии. Фрейм, который может декодироваться без декодирования предыдущих фреймов.
Ошибка прогноза, то есть истинный минус предсказанного сигнала. Линейный фильтр FIR, который вычисляет оценку входного сигнала, используя предыдущие выборки.
Порядок фильтра прогноза (число коэффициентов прогнозирующего устройства).
Коэффициенты фильтра прогноза прямой формы.
Представление parcor коэффициентов прогнозирующего устройства. Квантованные коэффициенты parcor.
Долгосрочный прогноз.
Также известно как код Golomb- Rice. В этом документе используется краткая форма.
Блоковый код Block Gilbert-Moore Code (также известен как код Elias-Shannon-Fano).
Контроль циклически избыточным кодом.
Кодирование с линейным предсказанием.
Импульсно-кодовая модуляция.
Дробная часть данных с плавающей точкой.
Экспоненциальная часть данных с плавающей точкой.
Кодирование с приближенным общим множителем.
Замаскированное кодирование Lempel-Ziv.
Многоканальное кодирование.
Старший значащий бит.
Младший значащий бит.
3.2 Мнемоника
uimsbf Целое число без знака, старший значащий бит сначала simsbf Целое число со знаком, старший значащий бит сначала
bslbf Битовая строка, левый бит сначала, где «левый» является порядком, в котором пишутся биты ЕЕЕ32 32-разрядные данные с плавающей точкой IEEE (4 байта), старший значащий бит сначала Мнемонический код Райса и BGMC указывают, что используются кодовые комбинации переменной длины.
3.3 Типы данных
В разделах псевдокода используются следующие типы данных:
/Л/7Б4 64-разрядное целое число со знаком (дополнение до двух)
long 32-разрядное целое число со знаком (дополнение до двух)
short 16-разрядное целое число со знаком (дополнение до двух)
х. у Дробное представление с фиксированной точкой со знаком, где х является числом битов
слева от точки в двоичном числе, и у является числом битов справа от точки в двоичном числе (представление знака дополнения до двух). 64-разрядное целое число со знаком (дополнение до двух)
Если перед типом данных добавляется «без знака», то типом является тип без знака вместо типа со знаком.
2
ГОСТ P 53556.11—2014
3.4 Замечания по реализации
В этом документе есть несколько логарифмических арифметических вычислений в форме ‘ce/7(log2(…))\ которые определяют целочисленное значение, которое описывает число необходимых битов для определенного параметра
Чтобы избежать непоследовательных результатов и реализовать ceil() и 1од20. не должны использоваться никакие функции с плавающей точкой. Чтобы получить математически корректные целочисленные результаты, должны использоваться реализации с фиксированной точкой (например, применение сдвигов битов).
4 Синтаксис
4.1 Конфигурация декодера
Таблица 1— Синтаксис ALSSpecificConfig |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 |
Синтаксис |
Количество битое |
Мнемоника |
if ((ra_fiag == 2) && (random_access > 0)) { for (f- 0. f< ((samples-^) /(frameJength+\)) + 1. f++) { ra unit size(f] ) if (aux_data_enabied) { aux_size; aux dalaO. } } |
32 32 aux_size • 8 |
uimsbf uimsbf bsJbf |
Примечание – «byte_al’9c* обозначает выравнивание байта последующих данных относительно начала ALSSpecificonfig (). |
4.2 Полезные нагрузки потока битов
Таблица 2 — Синтаксис высокоуровневой полезной нагрузки (frame_data)
Синтаксис
Количество битов
Мнемоника
frame_data()
{
if((ra_flag == )) && (framejd % random_acces$ == 0))
{
ra_unit_size
}
if (mc_coding && jomt_stereo) { js_swtch. byte_align;
)
if (fmc_coding \\js_switch) {
for (с = 0; c <= channels; C++) { if (block_switchmg) { bsjnfo:
}
if (independents) {
for (b = 0. b < blocks. b++) { block_deta{c);
}
}
else{
J for <b a 0 b< blocks. b++) { biock_ddta(c); b!ock_data(c+\);
C++;
}
else{
if (block_switching) { bs info;
}
for (b = 0 ;b< blocks; b++) {
** (c * О- c <■ channels. c++){ block_data(c). channel_d*a(c);
}
}
if (floating)
{
num_ bytes_ diff_ float, diff float dataQ.
}
}
32
8. 16. 32
8. 16. 32
32
uimsbf
uimsbf
uimsbf
uimsbf
uimsbf
Примечание — Если jomt_steroo выключено, или если с является последним каналом, independent bs является истиной по умолчанию Если jomt_stereo включено, independent_bs является ложью по умолчанию, но если block_swtching также включено, флаг independent_bs сообщается, как первый бит поля bsjnfo пары каналов Поле framejd указывает последовательный номер фрейма, начиная с 0 для первого фрейма Таблица 3 -Синтаксисblock_data Синтаксис block data() {blockjype. if (blockJyре == 0) { const_block; js_b1ock. (reserved) if (const_block == 1){ {if (resolution == 0) { const_val. }else if (resolution == 1) { const_val. }else if (resolution == 2 || floating == i; { const_val. }else { const val, }
} |
|
Синтаксис |
Количество битов |
Мнемоника |
if(‘RLSLMS) { if (adapt_order *« ^) { opt order. } else { opt_order = max_order. |
1..10 |
uimsbf |
} for (p = 0 ;p< opt_order, p++) { quant coffp]; } } if (ong term predtclion) { LTPenable. if (LTPenable) { for (i = -2; i <= 2, i**) { LTPgainp]; } LTPfag. } |
Изменяется |
Rice code |
1 Изменяется |
uimsbf Rice code |
|
8. 9,10 |
uimsbf |
|
} start = 0, if (random_access_block) { if (opt_order > 0) { smp val[0]; } if (opt_order > \) { res(tj; } if (opt_order > 2) { res[2J. } if (optjorder < 3^ { start = opt order. } else { start – 3; } |
Изменяется |
Rice code |
Изменяется |
Rice code |
|
Изменяется |
Rice code |
|
if (bgmc_mode) { for (n – start, n < sbjength. n+*) { msb(nj; } for (k=1; к < sub_blocks. k++) { for (n – k‘ sbjength. n < (k+t) • sbjength. n**) msbfnj; } |
Изменяется |
BGMC |
Изменяется |
BGMC |
|
} for (n = start, n < sbjength. n++) { |
||
if (msb[n] ‘= tail_code) { Isbfn], } else { taH[n]. } |
Изменяется |
uimsbf |
Изменяется |
Rice code |
|
} for (k= 1; к < sub_blocks. k++) { for(n-k‘ sbjength. n < (k+t) * sb length. n++) { |
ГОСТ Р 53556.11-2014
Окончание таблицы 3 |
||||||||||||||||||||||
|
Таблица 4 – Синтаксис channel_data |
||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||
7 |
1 Область применения
2 Технический обзор
2.1 Структура кодера и декодера
2.2 Расширения с плавающей точкой
3 Термины и определения
3.1 Определения
3.2 Мнемоника
3.3 Типы данных
3.4 Замечания по реализации
4 Синтаксис
4.1 Конфигурация декодера
4.2 Полезные нагрузки потока битов
4.3 Полезные нагрузки для данных с плавающей точкой
5 Семантика
5.1 Общая семантика
5.2 Семантика для данных с плавающей точкой
6 Инструменты ALS
6.1 Краткий обзор
6.2 Переключение блоков
6.3 Прогноз
6.4 Долгосрочный прогноз (LTP)
6.5 Прогнозирующее устройство RLS-LMS
6.6 Кодированный остаток
6.7 Объединенное кодирование пар каналов
6.8 Многоканальное кодирование (MCC)
6.9 Расширение для данных с плавающей точкой
Библиография
стр. 1
стр. 2
стр. 3
стр. 4
стр. 5
стр. 6
стр. 7
стр. 8
стр. 9
стр. 10
стр. 11
стр. 12
стр. 13
стр. 14
стр. 15
стр. 16
стр. 17
стр. 18
стр. 19
стр. 20
стр. 21
стр. 22
стр. 23
стр. 24
стр. 25
стр. 26
стр. 27
стр. 28
стр. 29
стр. 30