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

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

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

7.1 Введение

Этот подпункт описывает алгоритмический структурированный процесс декодирования аудио, в котором поток битов, соответствующий объектному типу 3 или 4, преобразовывается в звук.

7.2 Заголовок конфигурации декодера

При создании элементарного потока структурированного аудио создается декодер структурированного аудио и для этого декодера обеспечивается объект потока битов класса SA_decoder_config как информация о конфигурации. В это время декодер должен инициализировать планировщика времени выполнения и затем разобрать заголовок конфигурации декодера на его составные части и использовать их следующим образом:

Файл оркестра: Файл оркестра должен быть проверен на синтаксическое соответствие грамматике SAOL и семантике уровня. Безотносительно предварительной обработки (то есть компиляция, выделение статического хранения и т.д.) должна быть сделана подготовка к времени выполнения оркестра.

Файл отсчета: Каждое событие в файле отсчета должно быть зарегистрировано в планировщике. "Зарегистрироваться" означает сообщать планировщику о присутствии определенного параметризованного события в определенное будущее время и о соответствующих действиях планировщика.

Файл MIDI: Каждое событие в файле MIDI должно быть преобразовано в соответствующее событие, и эти события зарегистрированы в планировщике.

Банк выборок: Данные должны храниться в банке выборок и должны выполняться безотносительно предварительной обработки, необходимой чтобы подготовиться к использованию банка для синтеза.

Данные выборки: Данные в выборке должны храниться и должны выполняться безотносительно предварительной обработки, необходимой чтобы подготовить данные из генератора звуковой таблицы SAOL. Если данные выборки представлены как 16-разрядные целые числа в потоке битов, то в это время они должны быть преобразованы в формат с плавающей точкой.

Таблица символов: Никакое нормативное поведение декодера не связывается с таблицей символов.

Если имеется больше одного файла оркестра в заголовке информации о потоке, различные файлы объединяются посредством сочленения и обрабатываются как один большой файл оркестра. Таким образом, каждый файл оркестра в рамках потока битов ссылается на одно и то же глобальное пространство имен, инструментальное пространство имен и пространство имен кода операции.

7.3 Данные потока битов и создание звука
     


    7.3.1 Отношение с системным уровнем

На каждом шаге, в рамках системной работы, системный уровень может представить декодер структурированного аудио с блоком доступа, содержащим данные, соответствующие классу SA_access_unit. Декодер структурированного аудио отвечает за то, чтобы получить элементы данных AU, проанализировать и понять их как различные элементы данных потока битов структурированного аудио, выполнить продолжающийся оркестр SAOL, произвести одну единицу композиции выхода и передать системному уровню эту единицу композиции.

7.3.2 Элементы данных потока битов

Поскольку блоки доступа получают из системного демультиплексора, они анализируются и используются декодером структурированного аудио различными способами следующим образом:

Выборочные данные должны храниться и, независимо от того, что предварительная обработка необходима для ссылки предстоящими линиями отсчета, содержащими ссылки на эту выборку, будут выполняться. Если выборочные данные будут представлены как 16-разрядные целые числа в потоке битов, то они должны быть преобразованы в формат с плавающей точкой. Любые выборки в блоке доступа должны быть обработаны перед линиями отсчета, если линии отсчета ссылаются на эти выборки.

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

События MIDI должны быть преобразованы в соответствующие события SAOL и затем зарегистрированы в планировщике, если у них есть отметки времени, или если их нет, то выполняться следующем k-цикле.

7.3.3 Семантика планировщика

7.3.3.1 Назначение планировщика

Планировщик является центральным механизмом управления системы декодирования структурированного аудио. Он отвечает за обработку событий инструментами создания и прекращения, отслеживая то, какие инструментальные создания активны, давая различным инструментам команду выполнить синтез, направляя вывод инструментов на шины и отправляя шины инструментам эффектов.

7.3.3.2 Инстанцирование инструмента

Инстанцировать (создать) инструмент означает создать пространство данных для его переменных и пространство данных, требующееся для любых кодов операции, вызванных этим инструментом. Когда инструмент инстанцируется, должны выполняться следующие задачи. Должно быть выделено место для любых полей параметра и установлены их значения согласно р-полям выражения или события инстанцирования. Затем должно быть выделено место для любых локально объявленных переменных, и значения этих переменных установлены в 0. Затем в локальное место для хранения должны быть скопированы текущие значения любых импортированных переменных i-rate. Затем должны быть созданы локально объявленные звуковые таблицы и заполнены данными согласно их объявлению.

7.3.3.3 Завершение инструмента

Завершить инстанцирование инструмента означает уничтожить пространство данных для этого экземпляра.

7.3.3.4 Выполнение инструмента

Выполнить инстанцирование инструмента на определенной скорости означает вычислить результаты команд, данных в это инструментальное определение. Когда экземпляр инструмента будет выполнен на определенной скорости, должны выполняться следующие шаги. Во-первых, значения любых глобальных переменных и звуковых таблиц, импортированных этим инструментом на этой скорости, должны быть скопированы в место для хранения инструмента. Кроме того, во время выполнения на а-скорости экземпляр инструмента, который является целью оператора send, текущее значение стандартного имени input в экземпляре должны быть установлены в текущее значение шины или шин, на которые ссылаются в операторе send. Затем, блок кода для этого инструмента должен выполняться на определенной скорости с учетом пространства данных инстанцирования инструмента. Затем, значения любых глобальных переменных и звуковых таблиц, экспортируемых этим инструментом на этой скорости, должны быть скопированы в глобальное место для хранения. Наконец, при выполнении инстанцирования инструмента на а-скорости значение вывода инструмента должно быть добавлено к шине, на которую направляется инструмент. Если инструмент не является целью выражения send, ссылающегося на специальную шину output_bus, вывод инструмента является выводом оркестра и может быть превращен в звук.