Товары в корзине: 0 шт Оформить заказ
Стр. 1 

69 страниц

563.00 ₽

Купить ГОСТ Р 53556.11-2014 — бумажный документ с голограммой и синими печатями. подробнее

Распространяем нормативную документацию с 1999 года. Пробиваем чеки, платим налоги, принимаем к оплате все законные формы платежей без дополнительных процентов. Наши клиенты защищены Законом. ООО "ЦНТИ Нормоконтроль"

Наши цены ниже, чем в других местах, потому что мы работаем напрямую с поставщиками документов.

Способы доставки

  • Срочная курьерская доставка (1-3 дня)
  • Курьерская доставка (7 дней)
  • Самовывоз из московского офиса
  • Почта РФ

Этот стандарт описывает алгоритм кодирования аудиосигналов без потерь: аудиокодирование без потерь MPEG-4 (ALS). MPEG–4 ALS являются схемой сжатия данных цифрового аудио без потерь, то есть декодируемые данные являются разрядно-идентичной реконструкцией исходных входных данных. Входные сигналы могут быть целочисленными данными PCM от 8 до 32-разрядной длины слова или 32-разрядными данными IEEE с плавающей точкой. MPEG-4 ALS обеспечивает широкий диапазон гибкости с точки зрения компромисса сжатия - сложности, поскольку комбинация нескольких инструментов позволяет определить уровень компрессии с различными степенями сложности.

 Скачать PDF

Оглавление

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 Расширение для данных с плавающей точкой

Библиография

 
Дата введения01.01.2015
Добавлен в базу12.02.2016
Актуализация01.01.2021

Этот ГОСТ находится в:

Организации:

17.03.2014УтвержденФедеральное агентство по техническому регулированию и метрологии148-ст
РазработанТК 480 Связь
ИзданСтандартинформ2015 г.

Digital sound broadcasting. Coding of signals of sound broadcasting with reduction of redundancy for transfer on digital communication channels. A part III (MPEG-4 audio). Audio lossless coding

Стр. 1
стр. 1
Стр. 2
стр. 2
Стр. 3
стр. 3
Стр. 4
стр. 4
Стр. 5
стр. 5
Стр. 6
стр. 6
Стр. 7
стр. 7
Стр. 8
стр. 8
Стр. 9
стр. 9
Стр. 10
стр. 10
Стр. 11
стр. 11
Стр. 12
стр. 12
Стр. 13
стр. 13
Стр. 14
стр. 14
Стр. 15
стр. 15
Стр. 16
стр. 16
Стр. 17
стр. 17
Стр. 18
стр. 18
Стр. 19
стр. 19
Стр. 20
стр. 20
Стр. 21
стр. 21
Стр. 22
стр. 22
Стр. 23
стр. 23
Стр. 24
стр. 24
Стр. 25
стр. 25
Стр. 26
стр. 26
Стр. 27
стр. 27
Стр. 28
стр. 28
Стр. 29
стр. 29
Стр. 30
стр. 30

ГОСТР

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

Синтаксис

Количество битов

Мнемоника

RLSLMS extensionO {

mono Ыоск

1

uimsbf

ext_mode if (ext_mode) {

1

uimsbf

exten sion_bits if (extenslon_bits&OxO^) {

3

uimsbf

RLS order

4

uimsbf

LMS_stage

3

uimsbf

Tor(i=0. i<LMS_stage.i++){

LMS orderfi)

}

5

uimsbf

}

if (extension bits&0x02) {

if (RLS_order) {

RLS lambda

10

uimsbf

if(RA)

RLS lambda ra

10

uimsbf

}

}

if (extension_bits&OA) {

for(i=0. i<LMS_stage.i**) {

LMS mup)

}

LMS stepsize

5

uimsbf

3

uimsbf

}

}

}

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

Таблица 6 -Синтаксисdiff_ffoat_data

Синтаксис

Количество битов

Мнемоника

diff float data()

{ "

use_acf.

if (random_access_block) {

if (c=Q. c <= channels, c**) { last_acf_mantissa[c) = 0;

last shift value[c] = 0;

FlushDictf).

}

for (c = 0. c <= channels; C++) { if (use_acf == ^) {

1

uimsbf

}

acf_ftag[c]; if (acf_flag[c) яш^){ acf_mantissa[c],

last act mantissa[c] = acf mantissafc].

}

else {

acf mantissa[c) = last acf mantissa[c).

)

}

else {

acf mantissa(c) = last acf mantissa[c] = 0.

}

1

23

uimsbf

uimsbf

ГОСТ P 53556.11—2014

Синтаксис

Количество битов

Мнемоника

highest_byte[c],

2

uimsbf

shift_amp(c];

1

uimsbf

partAJIag(c];

1

uimsbf

if (shitt_amp[c] == i; { shift_value[cj,

last shift value(c] = shift value[cj;

)

else {

shift value[c] = last shift value[c);

}

diff_mantissa().

8

uimsbf

byte align:

)

)

0 7

bslbf

Примечание —Mbyte а//дл» обозначает дополнение битов до следующей границы байта *FlushDict()*

является функцией, которая очищает и инициализирует словарь и переменные модуля распаковки Masked-LZ

Таблица 7 -Синтаксисdiff_mantissa

Синтаксис

Количество битов

Мнемоника

diff mantissaO { "

if (partA_flag{c) != 0) {

1

uimsbf

compressed_ flag(c], if (compressed Jlagfc] == 0J {

for (n = 0. n < framejength. n++){

if (int_zero[cJ[nJ) { float data{c)[nj:

}

}

}

else {

nchars = 0:

for (n = 0 ;n< framejength. n*+){ if (int_zero[c][nJ) nchars *= 4;

Masked LZ decompression(nchars);

}

32

IEEE32

}

if (highest_byte[c] != 0> {

1

uimsbf

compressed_ flag(c], if (compressed_flag[c][n] == 0) {

for (n = 0; n < framejength. n**){

if ('int_zero[cJ(n]) { mantissa[c)[nj:

}

}

}

else { _________ —--

nbits[cj(n)

Uimsbf

9

Синтаксис

Количество битов

Мнемоника

nchars = 0.

for (п - 0; п < framejenglh. п**) { if (4nt_zero[c][n)) {

nchars ♦» (int )nbits[c)(n)/8. if ((nbits[c](n] % 6) > o; nchars**;

}

}

Masked LZ decompression(nchars):

}

}

}

Примечание - *mt_zero» является истиной, если соответствующее округленное целое число равно 0 «mbits [с] [п]» является необходимой длиной слова для различия мантиссы

Таблица 8 - Синтаксис Masked_LZ_decompression

Синтаксис

Количество битов

Мнемоника

Masked LZ decompression (nchars)

{

for (dec_chars = 0 dec_chars < nchars.) { string code.

}

}

9.14

umsbf

Примечание - «nchars» является числом символов, которые должны декодироваться

5 Семантика

5.1    Общая семантика

5.1.1    ALSSpecificConfig

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

Таблица 9 — Элементы ALSSpecificConfig

Поле

Количество битов

Описание/Значения

alsjd

32

Идентификатор ALS

Фиксированное значение = 1095521024 = 0*414С5300 (Hex)

sampjreq

32

Частота дискретизации. Гц

samples

32

Число выборок (на канал)

Если samples = 0»FFFFFFFF (Hex), число выборок не определяется

channels

16

Число каналов — 1 (0 — моно, 1 — стерео,...)

fiejype

3

000    — неизвестно / неотработанный файл,

001    — волновой файл.

010    — файл &ff.

011    — файл bwf.

(другие значения зарезервированы)

ГОСТ P 53556.11—2014

Поле

Количество

битов

ОписамиеЗкачеиия

resolution

3

000    — 8-бит.

001    — 16-бит;

010    — 24-бит.

011    — 32-бит.

(другие значения зарезервированы)

floating

1

1 — 32-битовый с плавающей точкой IEEE. 0 — целый

msb_flr$t

1

Исходный порядок байта входных аудиоданных

0    — младший значащий байт первый (прямой порядок)

1    — старший значащий байт первый (обратный порядок)

если resolution = 0 (8-битовые данные), msbjirst - 0 указывает данные без знака (0 255). тогда как msb_first = 1 указывает данные со знаком (-128 127)

Frame_

length

16

Длина фрейма — 1 (например, frame length = 0*1 FFF сигнализирует о длине N =8192)

random_ac-

cess

8

Расстояние между фреймами RA frames (во фреймах. 0. 255) Если RA не используется, величина равна 0 Если каждый фрейм является фреймом RA. величина равна 1.

ra_flag

2

Указывает, где хранится размер блоков случайного доступа (ra_unit_size) 00 — не хранится

adapt_order

1

Адаптивный порядок 1 — екл. 0 — выкл

coefjable

2

Табличный индекс (00. 01. или 10 параметров кода Rice для кодирования энтропии коэффициентов прогнозатора, 11 — кодирование энтропии отсутствует

long_term_

prediction

1

Долгосрочный прогноз (/.ГР): 1 — екл. 0 — выкл

long_term_

prediction

1

Долгосрочный прогноз (/.ГР): 1 — вкл. 0 — выкл

max_order

10

Максимальный порядок прогноза (0 1023)

bgmc_mode

1

Режим BGMC 1 — вкл, 0 — выкл (кодирование Rice только)

joint_stereo

1

Joint Stereo 1 — екл. 0 — выкл. если каналы — 0 (моно). joint_stereo — 0

Ыоск_

switching

2

Число уровней коммутации блока

00    — коммутация блока отсутствует

01    — вплоть до 3 уровней

10    — 4 уровня

11    —5 уровней

mc_codmg

1

Расширенноое межканальное кодирование 1 — вкл. 0 — выкл. если каналы — 0 (моно), mc_codmg — 0

sb_part

1

Расчленение субблока для кодирования энтропии остатка, если bgmcjnode = 0:

0    — расчленение отсутствует, бит ec_sub bit в block_data отсутствует

1    — расчленение 1 4, один бит ec_sub bit в block_data. если bgmc_mode = 1:

0    — расчленение 1 4, один бит ec_sub в block_data

1    — расчленение 1:2, 4 8, два бита ec_sub в biock_data

chan_conftg

1

Указывает, что поле chan contigjnfo присутствует

chan_sort

1

Перестановка каналов 1 — вкл, 0 — выкл. если каналы — 0 (моно), chan_sort — 0

crc_enabled

1

Указывает, что поле сгс присутствует

RLSLMS

1

Использование предсказателя RLS-LMS 1 — вкл. 0 — выкл

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

Поле

Количество

битов

Описание / Значения

ra_umt_size

32

Расстояние (в байтах) до следущего фрейма произвольного доступа, то есть размер блока случайного доступа В frame_data() это поле появляется, только когда rajlag - 1.

ГОСТ 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

Поле

Количество битов

Описание / Значения

blockjype

1

1 — нормальный лок 0 — нуль / постоянный блок

const_b)ock

1

Только если blockjype = 0: 1 — постоянный блок 0 — нулевой блок (тишина)

j$_block

1

Блок содержит разностный сигнал объединенного стерео

const_val

8.16,24.32

Постоянная величина выборки этого блока

ec_sub

0.2

Число сублоков для кодирования энтропии Количество битов = bgmcjnode * sb_part Если количество битое — 0: 1 субблок Если количество битов — 1:

0    — 1 субблок,

1    — 4 субблока

Если количество битое = 2

00    — 1 субблок;

01    — 2 субблока;

10    —4 субблока,

11    —8 субблоков

sO.sxO

Изменяется

До 8 индексов кода Rice (s) или BGMC (s.sx) для кодирования энтропии субблоков (число дается ec_sub) Разностные значения кодируются по Rice

shiftjsbs

1

Указывает, что все исходные значения входных выборок блока были сдвинуты вправо перед дальнейшей обработкой, чтобы удалить пустые LSBs

quant_cof[]

Изменяется

Кодированные по Rice квантованные коэффициенты

LTPenable

1

Переключение LTP 1 — вкл, 0 — выкл

LTPgamO

Изменяется

Кодированные по Rice величины усиления (5-tap)

resQ

Изменяется

Кодированные по Rice остаточные величины

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

Синтаксис

Количество битов

Мнемоника

ALSSpeaficConfigO

{

ais id.

32

uimsbf

samp freq.

32

uimsbf

samples.

32

uimsbf

channels.

16

uimsbf

file type.

3

uimsbf

resolution:

3

uimsbf

floating.

1

uimsbf

msb first.

1

uimsbf

frame length:

16

uimsbf

random access.

8

uimsbf

ra flag.

2

uimsbf

adapt order.

1

uimsbf

coef table.

2

uimsbf

longJerm_prediction.

1

uimsbf

max order.

10

uimsbf

block switching:

2

uimsbf

bgmc mode.

1

uimsbf

sb_part.

1

uimsbf

joint stereo:

1

uimsbf

mc_codmg. chan conhg.

1

1

uimsbf

uimsbf

chan sort:

1

uimsbf

crc enabled.

1

uimsbf

RLSLMS

1

uimsbf

(reserved)

5

aux data enabled.

1

uimsbf

if (chan_config)

{chan config info.

)

if (chan_sort) {

16

uimsbf

for (c = 0. c <= channels; c**)

chan_pos(c):

}

byte_ahgn. header size:

1..16

uimsbf

0..7

32

bslbf

uimsbf

trailer size.

32

uimsbf

ong_header(). ongjratlerfl. if (crc_enabled) {

crc:

}

header_size * 8 trailer_size * 8

32

bslbf

bslbf

uimsbf

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,

}

}

}

else {

js_block.

if ((bgmc_mode == 0; && (sb_part == 0) { sub_biocks = 1;

}

else if ((bgmc_mode == 1) && (sb_part ==1j { ec_sub;

sub_blocks = 1 « ec_sub;

}

else {

ec_sub.

sub_blocks = (ec_sub --))? 4 1

}

if (bgmc_mode == 0) {

for (k = 0 ;k< sub_blocks. k++) {

m

i

}

else {

for (k = 0. k < sub_blocks. k**) { slk].sx(kj:

}

}

sbjength = blockJength / sub_blocks. shiftjsbs: if (shiftjsbs ** )) { shift_pos.

Количество битов

Мнемоника

1

uimsbf

1

uimsbf

1

uimsbf

5

//8 bits

8

simsbf

//16 tuts

16

simsbf

//24 bits

24

simsbf

//32 tuts

32

simsbf

1

uimsbf

2

uimsbf

1

uimsbf

Изменяется

uimsbf

Изменяется

Rice code

1

Rice code

4

uimsbf

5


Синтаксис

Количество битов

Мнемоника

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

Синтаксис

Мнемоника

if (msb[nj != tail code) { lsb[n],

}

else {

Wn],

}

}

Изменяется

uimsbf

Изменяется

Rice code

}

}

else

{

for (n = start, n < blockjength. n*+) { resin];

}

}

}

if (RLSLMS) {

RLSLMS extension data()

}

if (>mc_codmg \\js_switch) { byte align;

}

}

Изменяется

Rice code

0 7

bslbf

Примечание - random_access_block является истиной, если текущий блок принадлежит фрейму произвольного доступа (framejd % random_acces$ = = 0) и является первым (или только) блоком канала в этом фрейме.

Таблица 4 - Синтаксис channel_data

Синтаксис

Количество битов

Мнемоника

channel data(c) {

tori;.) {

stop_flag,

if (stop, Jag == У) { break.

}

master_channel_mdex.

1

uimsbf

1. 16

uimsbf

if (c '= master channeljndex) {

time_difference_flag if (time_difference_flag == 0) {

1

uimsbf

weightingjactor [0]

Изменяется

Rice code

weightmgjactor [\]

Изменяется

Rice code

weighting factor [2]

)

else {

Изменяется

Rice code

weightmgjactor [0]

Изменяется

Rice code

weightingjactor [t ]

Изменяется

Rice code

weightmgjactor [2]

Изменяется

Rice code

weightingjactor [3]

Изменяется

Rice code

weightmgjactor [A]

Изменяется

Rice code

weightmgjactor [5]

Изменяется

Rice code

time_difference_sign

1

uimsbf

time difference index

}

)

}

byte align;

)

5.6,7

uimsbf

0.7

bslbf

7