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

ГОСТ Р 53556.5-2013 Звуковое вещание цифровое. Кодирование сигналов звукового вещания с сокращением избыточности для передачи по цифровым каналам связи. Часть III (MPEG-4 audio). Структурированное кодирование звуковых сигналов (SA) (Переиздание)

     5 Синтаксис потока битов и семантика

5.1 Введение в синтаксис потока битов

Этот подпункт описывает формат потока битов, определяющий поток битов структурированного аудио MPEG-4.

Каждая группа классов записывается с нормативной семантикой, которая определяет значение данных, представленных этими классами.

5.2 Синтаксис потока битов

Поток битов может содержать таблицу символов. Таблица символов позволяет текстовому коду SAOL и SASL быть восстановленным из маркированного представления потока битов. Включение или исключение таблицы символов не влияют на процесс декодирования.

Если таблица символов включена, то все или некоторые из символов в оркестре и таблице должны быть ассоциированы с текстовым именем следующим образом: каждый символ (символ является только целым числом) должен быть связан со строкой символов, соединенной с этим символом в объекте sym_name. С данным символом должно быть ассоциировано не более одного имени, иначе поток битов недопустим. Допустимо для таблицы символов быть неполной и содержать имена, ассоциированные с некоторыми, но не всеми, символами, используемые в оркестре и таблице. Присутствие строки нулевой длины в записи таблицы символов указывает, что имя для этого символа не включается в таблицу символов.

Реализации SAOL и SASL, которые требуют текстового ввода, а не маркируемого ввода, допустимы в декодере совместимости. Тогда декодер может демаркировать поток битов прежде, чем он будет обработан. В этом случае любые символы без ассоциированных имен предполагаются ассоциированными с именем по умолчанию формы _sym_х, где х является значением символа. Имена этой формы с этой целью резервируются в SAOL, и таким образом гарантируется, что имена не будут приходить в противоречие с именами символа, определенными с помощью таблицы символов.

    

Файл оркестра (планировки) является строкой маркеров. Маркеры представляют собой синтаксические элементы, такие как зарезервированные слова, базовые имена кода операции и знаки препинания. Кроме того, есть пять специальных маркеров. Маркер 0xF0 является маркером символа. Когда он встречается, следующие 16 битов в потоке битов должны быть номером символа. Маркер 0xF1 является маркером значения. Когда он встречается, следующие 32 бита в потоке битов должны быть значением с плавающей точкой. Этот маркер должен использоваться для всех символьных констант в пределах программы SAOL за исключением тех, с которыми встречаются в специальных целочисленных контекстах. Маркер 0xF2 является целочисленным маркером. Когда он встречается, следующие 32 бита в потоке битов должны быть целочисленным значением без знака. Маркер 0xF3 является строковым маркером. Когда он встречается, следующие несколько битов в потоке битов должны представлять строку символов (этот маркер в настоящий момент не используется). Маркер 0xF4 является маркером байта. Когда он встречается, следующие 8 битов в потоке битов должны быть целочисленным значением без знака. Маркер 0хFF является маркером конца оркестра; этот маркер не имеет никакой синтаксической функции в оркестре SAOL, но показывает конец раздела файла оркестра потока битов.

Не каждой последовательности маркеров разрешено выступать как файл оркестра. Полная последовательность маркеров оркестра должна соответствовать производству <оркестра>.

   

Файл отсчета является рядом строк информации об отсчете, предоставленной в заголовке информации о потоке. События, которые известны перед началом передачи потока битов в реальном времени, могут быть включены в заголовок так, чтобы они сразу были доступны декодеру, что может помочь эффективному вычислению в определенных реализациях. Каждая линия должна быть одним из пяти событий. У каждого типа событий есть свои импликации в процессе декодирования и планирования. Инструмент событий определяет время старта, инструмент символа имени, продолжительность и любые другие параметры звука, проигрываемого на инструменте SAOL. Событие управления определяет параметр управления, который передают инструменту или инструментам, уже генерирующим звук. Таблица событий динамически создает или уничтожает глобальную звуковую таблицу в оркестре. Событие конца показывает конец работы оркестра. Событие темпа динамически изменяет темп воспроизведения оркестром.

Файл отсчета не должен быть представлен в порядке увеличения времен событий. События должны быть "сортированы" планировщиком по мере их обработки. В файле отсчета у каждой линии отсчета должна быть отметка времени.

Бит high_priority указывает, что событие отсчета является высокоприоритетным событием. Бит use_if_late указывает, если бит has_time устанавливается, то событие отсчета должно использоваться, прибывает ли оно вовремя или нет.

Участки MIDI позволяют включать информацию отсчета MIDI в заголовке потока битов и поток битов. Класс событий MIDI содержит единственную инструкцию MIDI. Класс файла MIDI содержит массив байтов, соответствующих MIDIFile стандартного формата 0 или формата 1. Каждая последовательность данных может иметь место в любом случае. Допустимые синтаксисы событий MIDI и MIDIFiles помещают в нормативные границы на синтаксически допустимых потоках битов структурированного аудио MPEG-4. Участки данных могут быть длиной до 2-1 и 2-1 байтов. Более длинные сообщения должны быть разбиты на несколько элементов потока битов.