Статус документа
Статус документа

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

     6.2 Необработанные данные

6.2.1. Определения

6.2.1.1 Функции данных

raw_data_stream ()

Последовательность блоков raw_data_block().

raw_data_block ()

Блок необработанных данных, который содержит аудиоданные за период времени, соответствующий 1024 отсчетам, относящейся к ним информации и других данных. Имеется семь синтаксических элементов, идентифицируемых по элементу данных id_syn_ele. Элементы audio_channel_element () в одном raw_data_stream () и одном raw_data_block() должны иметь одну и только одну частоту дискретизации. В raw_data_block () возможно появление того же самого синтаксического элемента несколько раз, однако element_instance_tag должны иметь различные 4 бита, за исключением data_stream_element() и fill_element(). Поэтому в одном raw_data_block() может быть от 0 до максимум 16 случаев появления любого синтаксического элемента, за исключением data_stream_element() и fill_element (), где это ограничение не применяется. Если встречаются несколько data_stream_element() с одинаковым element_instance_tag, они являются частью одного потока данных. У fill_element () нет element_instance_tag (так как контент не требует последующей ссылки), и может встретиться любое число раз. Конец блока raw_data_block() обозначается специальным id_syn_ele (TERM), который встречается в raw_data_block() лишь единожды (таблица 12).

single_channel_element ()

Сокращенно SCE. Синтаксический элемент потока битов, содержащий кодированные данные для единственного звукового канала. single_channel_element() в основном состоит из individual_channel_stream(). В блоке необработанных данных может присутствовать до 16 таких элементов, у каждого из которых должен быть уникальный element_instance_tag (таблица 13).

channel_pair_element ()

Сокращенно CPE. Синтаксический элемент потока битов, содержащий данные для пары каналов. channel_pair_element () состоит из двух individual_channel_stream() и дополнительнной информации об объединенном кодировании. Эти два канала могут иметь общую служебную информацию. Элемент channel_pair_element() имеет те же самые ограничения, что и single_channel_element, element_instance_tag, и число появлений (таблица 14).

coupling_channel_element ()

Сокращенно ССЕ. Синтаксический элемент, который содержит аудиоданные для спаренного канала. В спаренном канале представлена информация об одном блоке многоканальной интенсивности или диалогах многоязычных программ. Правила для количества coupling_channel_element() и instance_tag аналогичны правилам для single_channel_element() (таблица 22). См. 10.3.

lfe_channel_element ()

Сокращенно LFE. Синтаксический элемент, который содержит канал с низкой частотой дискретизации. Правила для числа lfe_channel_element() и instance_tag аналогичны правилам для single_channel_element () 's (таблица 23). См. 6.4.

audio_channel_element ()

Общее обозначение для single_channel_element (), channel_pair_element (), coupling_channel_element () и Ife_channel_element (),

program_config_element ()

Сокращенно PCE. Синтаксический элемент, который содержит данные конфигурации программы. Правила для числа program_config_element () и element_instance_tag аналогичны правилам для single_channel_element () (таблица 25). PCE должны следовать перед всеми другими синтаксическими элементами в raw_data_block(). См. 6.5.

fill_element ()

Сокращенно FIL. Синтаксический элемент, который содержит данные заполнения. Может присутствовать любое число элементов, которые могут встретиться в любом порядке в raw_data_block (таблица 26). См. 6.7.

data_stream_element ()

Сокращенно DSE. Синтаксический элемент, который содержит данные. Снова, есть 16 element_instance_tags. Однако нет ограничения на количество data_stream_element() ни с каким instance_tag, в то время как единственный поток данных может продолжаться через многократный data_stream_element() с тем же самым instance_fag (таблица 24). См. 6.5.3.

byte_alignment ()

Выравнивание относительно первого бита raw_data_block().

6.2.1.2 Элементы данных

id_syn_ele

Элемент данных, который идентифицирует синтаксический элемент или конец raw_data_block() (таблица 12):



Таблица 36 - Идентификация синтаксических элементов

ID

Код

Сокращение

Синтаксический элемент

ID_SCE

0x0

SCE

single_channel_element()

ID_CPE

0x1

CPE

channel_pair_element()

ID_ССЕ

0x2

ССЕ

coupling_channel_element()

ID_LFE

0x3

LFE

Ife_channel_element()

ID_DSE

0x4

DSE

data_stream_element()

ID_PCE

0x5

PCE

program_config_element()

ID_FIL

0x6

FIL

fill_element()

ID_END

0x7

TERM



element_instance_tag

Уникальный тег для всех синтаксических элементов, кроме fill_element(). Все синтаксические элементы, содержащие теги, могут встречаться более одного раза, но, за исключением data_stream_element(), должны иметь уникальный element_instance_tag в каждом raw_data_block(). Этот тег также используется для указания на синтаксические элементы аудио в single_channel_element(), channel_pair_element(), Ife_channel_element(), data_channel_element() и coupling_channel_element() в program_config_element() и обеспечивает возможность использования до 16 независимых program_config_element() (таблицы 13, 14, 22, 23, 24, 25, 26).

6.2.2 Требования к буферу

6.2.2.1 Минимальный входной буфер декодера

Следующие правила используются для вычисления максимального количества битов во входном буфере как для потока битов в целом, для любой данной программы, так и для любого данного SCE/CPE/CCE:

Входной размер буфера составляет 6144 бита на SCE или независимо переключаемого ССЕ, плюс 12288 битов на СРЕ (6144*NCC). Размеры общего буфера и отдельного буфера ограничиваются так, чтобы предел буферизации мог быть вычислен для всего потока битов, всей программы или для отдельного audio_channel_element(), позволяя декодеру разбивать многоканальный поток битов на отдельные моно и стерео потоки битов, которые декодируются отдельными моно и стерео декодерами соответственно. Все биты для LFE или зависимого ССЕ должны выделяться исходя из общих требований к буферу, основанных на независимых ССЕ, SCE и СРЕ. Кроме того, все биты, требуемые для любых DSE, PCE, FIL, фиксированных заголовков, переменных заголовков, byte_alignment и CRC, должны быть также выделены исходя из тех же самых общих требований к буферу.

6.2.2.2 Резервуар битов

Управление резервуаром битов осуществляется в кодере. Максимальный резервуар битов в кодере зависит от NCC и средней скорости передачи. Максимальный размер резервуара битов для каналов с постоянной скоростью передачи может быть вычислен путем вычитания среднего числа битов на блок из минимального входного размера буфера декодера. Например, при 96 кбит/с для сигнала стерео на частоте дискретизации 44,1 кГц среднее число битов на блок (mean_framelength) (96000 bit/s/44100 1/s* 1024) = 2229,1156.... Это приводит к максимальному размеру резервуара битов (max_bit_reservoir) INT (12288 битов - 2229,1156 ...) = 10058. Для каналов с переменной скоростью передачи кодер должен работать так, чтобы требования к входному буферу не превышали минимальный входной буфер декодера.

Состояние резервуара битов (bit_reservoir_state) передается в поле buffer_fullness либо как состояние резервуара битов, округленного до целого значения (adif_buffer_fullness), либо как состояние резервуара битов, разделенного на NCC, разделенного на 32 и округленного до целого значения (adts_buffer_fullness).

bit_reservoir_state последующих фреймов может быть получен следующим образом:

bit reservoir_state[frame] = bit_reservoir_state[frame - 1] + mean_framelength - framelength[frame].

Framelengths должны быть выбраны так, чтобы следующее условие выполнялось:

0 bit_reservoir_state[frame]<max_bit_reservoir.

6.2.2.3 Максимальная скорость передачи