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

ГОСТ Р 53556.4-2013 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть III (MPEG-4 AUDIO). Основные методы кодирования звуковых сигналов (GA): усовершенствованное звуковое кодирование (AAC), взвешивающее векторное квантование (TwinVQ), побитовое арифметическое кодирование (BSAC)

     5.2 Декодирование полезных нагрузок потока битов GA

          

    5.2.1 Полезные нагрузки высшего уровня для аудио объекта типов ААС main, ААС SSR, LC ААС и ААС LTP

    

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

raw_data_block ()

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

id_syn_ele

Элемент данных, который идентифицирует один из следующих синтаксических элементов (таблица 85).



Таблица 85 - Синтаксические элементы

имя ID

Кодирование

Сокращение

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

ID_SCE

0x0

SCE

single_channel_element()

ID_CPE

0x1

CPE

channel_pair_element ()

ID_CCE

0x2

CCE

coupling_channel_element ()

ID_LFE

0x3

LFE

lfe_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


single_channel_element ()

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

channel_pair_element ()

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

coupling_channel_element ()

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

Ife_channel_element ()

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

program_config_element ()

Сокращение РСЕ. Синтаксический элемент, который содержит данные о конфигурации программы. Правила для числа program_config_element ()'s и теги экземпляра элемента являются теми же самыми, что для single_channel_element ()'s. PCEs должны поступать перед всеми другими синтаксическими элементами в raw_data_block ().

fill_element ()

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

data_stream_element ()

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

element_instance_tag

Уникальный тег экземпляра для синтаксических элементов кроме fill_element (). Все синтаксические элементы, содержащие теги экземпляра, могут появляться не один раз, но, за исключением data_stream_element ()'s, должны иметь уникальный element_instance_tag в каждом raw_data_block (). Этот тег также используется для ссылочных аудио синтаксических элементов в single_channel_element ()'s, channel_pair_element ()'s, lfe_channel_element ()'s, data_channel_element () 's и coupling_channel_element ()'s в program_config_element () и обеспечивает возможность до 16 независимых program_config_element () 's.

audio_channel_element

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

common_window

Флаг указывающий используются совместно individual_channel_streams и ics_info или нет. В случае совместного использования ics_info является частью channel_pair_element () и должен использоваться для обоих каналов. Иначе ics_info является частью каждого individual_channel_stream.

        

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

 

Предполагая, что начало raw_data_block известно, он может декодироваться без какой-либо дополнительной информации "о транспортном уровне" кроме частоты дискретизации (необходимой для выбора sfb и других таблиц) и производит 1024 или 960 аудиопробов на канал вывода.


Таблица 86 - Примеры самых простых полезных нагрузок потока битов

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

Выходной сигнал

<SCE> <TERM> <SCE> <TERM>

Моно сигнал

<CPE> <TERM> <CPE> <TERM>

Сигнал стерео

<SCE><CPE><CPE><LFE><TERM><SCE><CPE><CPE><LFE><TERM>

Сигнал канала 5.1



Угловые скобки (< >) используются, чтобы разграничить синтаксические элементы. Для моно сигнала у каждого SCE должно быть то же самое значение в его element_instance_tag и точно так же для сигнала стерео у каждого СРЕ должно быть то же самое значение в его element_instance_tag. Для сигналов канала 5.1 у каждого SCE должно быть то же самое значение в его element_instance_tag, у каждого СРЕ, связанного с передней парой каналов, должно быть то же самое значение в его element_instance_tag и у каждого СРЕ, связанного с парой обратных каналов, должно быть то же самое значение в его element_instance_tag.

Если эти полезные нагрузки потока битов должны быть переданы по каналу с постоянной скоростью, тогда они могут включать fill_element (), чтобы корректировать мгновенную скорость передачи. В этом случае пример кодированного сигнала стерео имеет вид

<СРЕ> <FIL> <TERM> <СРЕ> <FIL> <TERM> ...

Если полезные нагрузки потока битов должны переносить вспомогательные данные и работать на основе канала с постоянной скоростью, тогда пример кодированного сигнала стерео будет

<CPE><DSE><FIL><TERM><CPE><DSE><FIL><TERM>...

Все data_stream_element ()'s имеют тот же самый element_instance_tag, если они являются частью того же самого потока данных.

single_channel_element () составляется из element_instance_tag и individual_channel_stream. В этом случае ics_info всегда располагается в individual_channel_stream.