ГОСТ Р 54712―2011
54
Для каждого TC существует структура данных, то есть служебные данные и кодированные Хафф-
маном спектральные значения. Флаги tc_presen
t
используются, чтобы указать, какие TC передаются, то
есть сколько наборов служебных данных и основной информации содержится в потоке битов mc_audio. В
случае MPEG-2 количество служебных данных для каждого канала является переменным. Кроме
этого различия, декодирование Хаффмана аналогично используемому в декодере MPEG-1.
Каждый сегмент выходного аудиоканала ch по умолчанию соответствует определенному TC
(tc_select == ch), однако при составном кодировании ставится в соответствие другому TC. В этом слу-
чае передается значение аттенюации и применяется к спектральным данным TC для восстановления
спектральных данных выходного аудиоканала. В особом случае, когда tc_selec
t
== 7, соответствующие
сегменты восстанавливаются путем дематрицирования.
Для нескольких типов списков сегмента были определены следующие ярлыки:
seglist_presen
t
== 0 указывает на список сегментов, в котором данные всех охваченных
scalefactorband_group
s
восстанавливаются путем дематрицирования (максимальная длина сегмента
tc_select=7);
seglist_node
f
== 0 указывает на простой список сегментов «по умолчанию», в котором данные всех
охваченных scalefactorband_groups передаются в пределах соответствующего TC (максимальная длина
сегмента tc_select=ch);
seglist_repea
t
== 1 указывает, что для гранулы 1 используется тот же самый список сегментов, что
и для гранулы 0.
Спискисегментовмогутбытьдопустимылибодляоднойизгрануллибовсоответствиисsegment_
list_repea
t
для обеих гранул в пределах одного фрейма. Если seg_length равен нулю, список сегментов
завершен, и оставшаяся часть спектра канала обнуляется.
Для частот выше границы scalefactorband_group (обозначенной dematrix_length) списки сег-
ментов используются, чтобы обозначить каналы, которые могут быть кодированы совместно. Для
scalefactorband_group
s
ниже, чем dematrix_length, используется менее гибкий метод назначения факти-
ческих переданных каналов, который не учитывает совместное кодирование.
Элемент dematrix_selec
t
представляет собой 3—4 бита с 14 возможными значениями (для конфи-
гурации 3/2). Это используется для нахождения тех каналов, которые должны быть дематрицированы, и
тех, которые передаются. В результате дематрицирования может быть восстановленно до двух кана-
лов. В то время как списки сегментов передаются для каждой гранулы, dematrix_selec
t
допустим для
обеих гранул.
4.2.5.3.2 Процесс декодирования. Уровень III
Если поток битов расширения доступен, его блок доступа может содержать части mc_composite_
status_info и mc_audio_data. Их содержимое объединяется с mc_composite_status_info и/или mc_audio_
data основной части данных MPEG-1 объединенного потока битов. Цель указателя mc_data_begin
вычисляется в буфере, содержащем объединенный поток битов. Структура многоканальных/много-
язычных потоков битов Уровня III приведена в приложении 3. Возможные ext_data (обозначенные фла-
гом ext_bit_stream_presen
t
в mc_header) должны быть вставлены между mpeg2_main_data и mpeg1
ancillary данными.
Процесс декодирования состоит из 10 шагов.
1 Расширение исходных списков сегментов
Выполняется путем оценивания seg_list_present, seg_list_node
f
и seg_list_repeat. Если эти элемен-
ты синтаксиса указывают, что используется ярлык, то полное segment_lis
t
представление расширяется
согласно описанию ярлыков в 4.2.5.3.1.
2 Создание карт декодирования
При создании карты data_present [gr] [tc] [sfb] заключается в описании того, какие спектральные
данные TC (в зависимости от гранулы, переданного канала и scalefactorband) фактически передают-ся.
Это выполняется путем определения scalefactorbands, на которые ссылаются dematrix_selec
t
или
segment_lists (как часть scalefactorband_group).
Кроме того, при создании карты js_carrier [gr] [tc] [sbgr
]
описывается, какие спектральные дан-
ные TC (в зависимости от гранулы, переданного канала и scalefactorband_group) используются в каче-
стве транспорта для joint stereo. Это выполняется для каждого звукового канала ch путем определения
scalefactorband_groups с tc_select! = ch.
3 Декодирование информации о TC
Выполняется повторное квантование данных всех каналов ТС tc_present. Этот шаг аналогичен де-
кодированию
на
Уровне
III
MPEG-1
при
использовании
информации
в
элементах
block_type,
scalefac_
l,