Примечание - Поскольку эта структура является единственными данными, которые передаются в байтах PES_packet_data_bytes, их количество может быть определено из полей PES_packet_length и PES_header_data_length, закодированных в структуре пакета PES.
Структура вспомогательных данных должна содержать следующие поля:
payload_format: 4-битовое поле, используемое для идентификации формата кодирования поля полезной нагрузки, кодируемое согласно таблице 2.
Таблица 2
CRC_flag: 1-битовый флаг. Если равен 1, то в данной структуре содержится поле CRC_32. Если равен 0, то поле CRC_32 отсутствует.
payload_byte: 8-битовое поле. Последовательность байтов payload_byte составляют поле полезной нагрузки. Синтаксис и семантика поля полезной нагрузки определяются в соответствии с форматом, который идентифицируется полем payload_format.
CRC_32: 32-битовое поле, содержащее значение контроля циклическим избыточным кодом (Cyclic Redundancy Check; CRC), которое дает 0 на выходе регистров декодера, описанного в [2], после обработки всей структуры auxiliary_data_structure.
Поле полезной нагрузки структуры вспомогательных данных (п. 4.5 настоящего стандарта) может содержать 0 или более дескрипторов, приведенных в таблице 3.
Таблица 3
5.2.1 Дескриптор TVA_id_descriptor
Назначение, синтаксис и семантика данного дескриптора определены в [3] (11.2.4).
Минимальная скорость повторения данного дескриптора, относящегося к отдельному значению TVA_id, должна быть как минимум один раз каждые 2 с.
Если данный дескриптор передается в синхронизированных вспомогательных данных со значением поля payload_format, равным 0x1, то должно соблюдаться следующее требование:
значение 8-битового поля descriptor_tag должно быть равно 0x1.
5.2.2 Дескриптор broadcast_timeline_descriptor
5.2.2.1 Введение
Элемент линейного контента содержит обязательную временную диаграмму, которая перемещается синхронно с потоком. Чтобы позволить приложению (метаданным) управлять элементом контента во время представления, данная временная диаграмма может быть представлена в терминах временной диаграммы контента метаданных.
Чтобы временная диаграмма контента метаданных была использована приемником для управления представлением элемента контента, она должна быть доставлена в приемник во время вещания элемента контента. Это может быть достигнуто путем отображения временной диаграммы контента метаданных на вещательную временную диаграмму, которая может быть доставлена через использование дескриптора вещательной временной диаграммы broadcast_timeline_descriptor.
Типы временных диаграмм в соответствии с приложением А настоящего стандарта.
5.2.2.2 Использование
Дескриптор вещательной временной диаграммы определяет время в виде числа отсчетов. Это неформатированное число отсчетов затем конвертируется в значение времени путем использования поля формата отсчетов, т.е. числа отсчетов на единицу времени. Затем кодированные значения вещательной временной диаграммы преобразуются в форматы представления времени.
Вещательная временная диаграмма должна определяться одним из двух способов:
- как прямая вещательная временная диаграмма путем кодирования абсолютного времени в дескрипторе вещательной временной диаграммы;
- как смещенная вещательная временная диаграмма путем кодирования смещения времени в дескрипторе вещательной временной диаграммы. Данное смещение должно добавляться к абсолютному времени, определенному прямой вещательной временной диаграммой.
Дескриптор вещательной временной диаграммы определяет кодированные значения времени для вещательной временной диаграммы на дискретных отсчетах. Для генерации значений для вещательной временной диаграммы между принятыми значениями следует использовать экстраполяцию:
Te = Tr + (Ts·Rr) (1)
где Te - экстраполированное значение вещательной временной диаграммы, в отсчетах;
Tr - принятое значение вещательной временной диаграммы, в отсчетах;
Ts - время из принятого значения, для которого требуется экстраполированное значение, с;
Rr - скорость движения вещательной временной диаграммы, определенная принятым полем tick_rate.
5.2.2.3 Синтаксис
Синтаксис дескриптора broadcast_timeline_descriptor приведен в таблице 4.
Таблица 4
5.2.2.4 Семантика
descriptor_tag: 8-битовое поле, должно быть равно 0x02.
descriptor_length: 8-битовое поле, указывает общее количество байтов для блока данных дескриптора следующего за байтом, определяющим значение этого поля.
broadcast_timeline_id: 8-битовое поле, служит для уникальной идентификации вещательной временной диаграммы.
broadcast_timeline_type: 1-битовое поле, определяет тип вещательной временной диаграммы. Значение 0 соответствует прямой вещательной временной диаграмме, значение 1 соответствует смещенной вещательной временной диаграмме.
continuity_indicator: 1-битовое поле, служит для идентификации последовательности значений вещательной временной диаграммы между разрывами. Состояние данного бита должно меняться на противоположное при каждом разрыве.
prev_discontinuity_flag: 1-битовое поле, если равно 1 указывает, что поле prev_discontinuity_ticks кодировано в данном дескрипторе. Это поле должно быть равно 0, если данный дескриптор информирует о разрыве в вещательной временной диаграмме.
next_discontinuity_flag: 1-битовое поле, если равно 1 указывает, что поле next_discontinuity_ticks кодировано в данном дескрипторе.
running_status: 1-битовое поле, указывает на состояние вещательной временной диаграммы. Допустимые значения приведены в таблице 5.
Таблица 5
tick_format: 6-битовое поле, согласно таблице 6 указывает, какой формат используется в вещательной временной диаграмме.
Таблица 6
absolute_ticks: абсолютное значение времени для прямой вещательной временной диаграммы, должно быть кодировано согласно значению поля tick_format.
direct_broadcast_timeline_id: 8-битовое поле, используется для идентификации прямой вещательной временной диаграммы.
offset_ticks: 32-битовое поле, указывает на смещение, которое должно быть добавлено к абсолютному значению времени из прямой вещательной временной диаграммы с идентификатором direct_broadcast_timeline_id для получения текущего значения вещательного времени.
Поле offset_ticks должно быть кодировано согласно формату из поля tick_format.
prev_discontinuity_ticks: 32-битовое поле, должно быть закодировано значением absolute_ticks или offset_ticks (что применимо), которое применялось до предыдущего разрыва.
next_discontinuity_ticks: 32-битовое поле, должно быть закодировано значением absolute_ticks или offset_ticks (что применимо), когда ожидается, что после следующего разрыва вещательная временная диаграмма пойдет с текущей скоростью продвижения.
broadcast_timeline_info_length: 8-битовое поле, определяет длину в байтах последующего информационного поля вещательной временной диаграммы.
broadcast_timeline_info_byte: 8-битовое поле. Последовательность полей broadcast_timeline_info_byte составляет информационное поле вещательной временной диаграммы.
5.2.3 Дескриптор time_base_mapping_descriptor
5.2.3.1 Использование
Дескриптор time_base_mapping_descriptor предоставляет способ явной ассоциации внешней временной базы с вещательной временной диаграммой.
Минимальная частота повторения данного дескриптора зависит от значения поля time_base_mapping_id и должна быть не менее одного раза в 5 с.
5.2.3.2 Синтаксис
Синтаксис дескриптора time_base_mapping_descriptor приведен в таблице 7.
Таблица 7
5.2.3.3 Семантика
descriptor_tag: 8-битовое поле, должно быть равно 0x03.
descriptor_length: 8-битовое поле, указывает общее количество байтов для блока данных дескриптора, следующего за байтом, определяющим значение этого поля.
time_base_mapping_id: 8-битовое поле, должно использоваться для уникальной идентификации набора отображений между внешними временными базами и вещательными временными диаграммами. Границами уникальности данного идентификатора является элементарный поток, переносящий синхронизированные вспомогательные данные, в которых доставляется данный дескриптор time_base_mapping_descriptor.
num_time_bases: 7-битовое поле, содержит число временных баз, определенных для отображения на вещательные временные диаграммы. Временные базы должны быть определены в восходящем порядке нумерации полями time_base_id.
time_base_id: 8-битовое поле, определяет временную базу для отображения.
broadcast_timeline_id 8-битовое поле, идентифицирует вещательную временную диаграмму, прямую или смещенную, определенную в том же потоке синхронизированных вспомогательных данных, в котором доставляется данный дескриптор.
5.2.4 Дескриптор content_labeling_descriptor
5.2.4.1 Использование
Дескриптор content_labeling_descriptor предоставляет способ ассоциации меток в формате идентификаторов с элементами контента. Эти метки могут быть использованы метаданными как ссылки на ассоциированный с ними контент. Формат идентификаторов может меняться в зависимости от применения метаданных.
Дескриптор content_labeling_descriptor также может использоваться для ассоциации вещательной временной диаграммы с элементом контента.
Минимальная частота повторения данного дескриптора зависит от значений полей metadata_application_format и content_reference_id и должна быть не менее одного раза в 5 с.
5.2.4.2 Синтаксис
Синтаксис данного дескриптора определен в [1].
5.2.4.3 Семантика
Базовая семантика данного дескриптора определена в [1].
В пределах системы DVB должна применяться следующая дополнительная семантика.
Поле metadata_application_format должно кодироваться согласно таблице 8.
Таблица 8
Поле content_time_base_indicator должно кодироваться согласно таблице 9.
Таблица 9
Поле private_data_byte. Последовательность полей private_data_byte составляет поле private_data. Поле private_data должно кодироваться согласно таблице 10.
Таблица 10
time_base_association_data_length: 8-битовое поле, указывает общее количество байтов для блока данных структуры, следующей за байтом, определяющим значение этого поля.
time_base_mapping_flag: 1-битовое поле, указывает наличие явного отображения внешней временной базы на вещательную временную диаграмму.
Если данное поле равно 1, то явное отображение имеет место и может быть обнаружено с помощью кодированного поля time_base_mapping_id.
Если данное поле равно 0, то явное отображение отсутствует и все временные базы должны быть отображены на одну вещательную временную диаграмму, которая может быть обнаружена с помощью кодированного поля broadcast_timeline_id.
time_base_mapping_id: 8-битовое поле, должно использоваться для идентификации набора отображений между внешними временными базами и вещательными временными диаграммами, передаваемыми как порции данных дескриптора time_base_mapping_descriptor.
Соответствующий дескриптор time_base_mapping_descriptor должен передаваться в той же структуре вспомогательных данных, в которой передается данный дескриптор content_labeling_descriptor.
broadcast_timeline_id: 8-битовое поле, идентифицирует вещательную временную диаграмму, прямую или смещенную, определенную в том же потоке синхронизированных вспомогательных данных (но не обязательно в той же структуре вспомогательных данных), в котором доставляется данный дескриптор content_labeling_descriptor.
Если данный дескриптор передается в синхронизированных вспомогательных данных с полем payload_format, равным 0x1, то 8-битовое поле descriptor_tag должно быть равно 0x04.
5.2.4.4 Сигнализация PSI
Чтобы указать, что элементарный поток, используемый для синхронизированных вспомогательных данных, передает один или более дескрипторов content_labeling_descriptor, относящихся к отдельным приложениям метаданных (т.е. в том же формате кодированных приложений метаданных), краткая форма дескриптора content_labeling_descriptor может быть помещена в соответствующей структуре ES_info (второй дескрипторный цикл) таблицы PMT. В этом случае должны быть использованы следующие поля:
metadata_application_format: это поле должно иметь одно значение у всех экземпляров дескрипторов content_labeling_descriptor, принадлежащих к одному потоку синхронизированных вспомогательных данных.
content_reference_id_record_flag: данное 1-битовое поле должно быть равно 0. Соответственно, в данном экземпляре дескриптора не должно быть ни одного поля content_reference_id.
content_time_base_indicator: данное 4-битовое поле должно быть равно 0. Соответственно, в данном экземпляре дескриптора не должна определяться временная база контента.
5.2.5 Дескриптор synchronised_event_descriptor
5.2.5.1 Использование
Дескриптор synchronised_event_descriptor содержит информацию, обеспечивающую передачу событий, зависящих от приложения, временные моменты которых должны быть синхронизированы с другими компонентами вещательного потока. Такие события называются синхронизированными событиями.
Каждое синхронизированное событие должно уникально идентифицироваться комбинацией трех полей: synchronised_event_context, synchronised_event_id и synchronised_event_id_instance.
5.2.5.2 Синтаксис
Синтаксис дескриптора synchronised_event_descriptor приведен в таблице 11.
Таблица 11
5.2.5.3 Семантика
descriptor_tag: 8-битовое поле, должно быть равно 0x05.
descriptor_length: 8-битовое поле, указывает общее количество байтов для блока данных дескриптора, следующего за байтом, определяющим значение этого поля.
synchronised_event_context: 8-битовое поле, должно определять зависящий от приложения контекст синхронизированного события, описываемого данным дескриптором.
synchronised_event_id: 16-битовое поле, должно определять тип синхронизированного события в составе контекста, идентифицированного полем synchronised_event_context.
Значения данного поля в диапазоне 0xFFF0-0xFFFF зарезервированы для DVB и не должны использоваться в зависящем от приложения контексте.
synchronised_event_id_instance: 8-битовое поле, должно быть кодировано одинаковым значением для каждого экземпляра в данном дескрипторе, относящегося к отдельному синхронизированному событию. Его значение должно увеличиваться на 1 между каждым экземпляром синхронизированного события отдельного типа.
tick_format: 6-битовое поле, указывает формат поля eference_offset_ticks. Должно кодироваться согласно таблице 6 настоящего стандарта.
Для всех синхронизированных событий данного дескриптора должно использоваться единое значение tick_format.
reference_offset_ticks: 16-битовое поле, должно кодироваться согласно значению поля tick_format.
Поле reference_offset_ticks должно кодироваться с временным смещением, которое при добавлении к временному моменту по умолчанию, содержащемуся в метке PTS пакета PES, в котором доставляется данный дескриптор, определяет временной момент синхронизированного события.
Если временной момент события находится в будущем относительно метки PTS пакета PES, в котором доставляется данный дескриптор, то должно кодироваться положительное значение reference_offset_ticks.
Если временной момент события находится в прошлом относительно метки PTS пакета PES, в котором доставляется данный дескриптор, то должно кодироваться отрицательное значение reference_offset_ticks.
synchronised_event_data_length: 8-битовое поле, содержит длину в байтах поля данных синхронизированного события.
synchronised_event_data_byte: 8-битовое поле, последовательность полей synchronised_event_data_byte составляет поле данных синхронизированного события.
5.2.6 Дескриптор synchronised_event_cancel_descriptor
5.2.6.1 Использование
Дескриптор synchronised_event_cancel_descriptor предоставляет способ отменить синхронизированное событие, временной момент которого был определен (с помощью дескриптора synchronised_event_descriptor), но пока еще не достигнут. Например, дескриптор synchronised_event_cancel_descriptor может быть использован для отмены синхронизированного события, временной момент которого находится в будущем, относящегося к внезапно прерываемой программе (к примеру, срочной новостной вставкой).
5.2.6.2 Синтаксис
Синтаксис дескриптора synchronised_event_cancel_descriptor приведен в таблице 12.
Таблица 12
5.2.6.3 Семантика
descriptor_tag: 8-битовое поле, должно быть равно 0x06.
descriptor_length: 8-битовое поле, указывает общее количество байтов для блока данных дескриптора, следующего за байтом, определяющим значение этого поля.
synchronised_event_context: 8-битовое поле, должно определять зависящий от приложения контекст синхронизированного события (событий), описываемого данным дескриптором.
synchronised_event_id: 16-битовое поле, должно определять тип синхронизированного события в составе контекста, идентифицированного полем synchronised_event_context, которое должно быть отменено.
Значения данного поля, равное 0xFFFF, указывает, что все зависимые синхронизированные события, определенные в данном зависящем от приложения контексте, должны быть отменены.
(обязательное)
А.1 Временная диаграмма контента метаданных
Любой элемент линейного контента должен содержать обязательную временную диаграмму, которая продвигается синхронно с его движением. Для обеспечения управлением отображения элемента контента приложением (метаданными) данная обязательная временная диаграмма может быть представлена в виде временной диаграммы контента метаданных, определенной стандартом MPEG.
Для обеспечения уникальной идентификации каждой точки элемента контента, значение временной диаграммы контента метаданных, ассоциированной с ней, должно быть уникальным. Для выполнения этого требования применительно к временной диаграмме контента метаданных должны соблюдаться следующие правила:
- элементы контента должны быть непрерывными объектами, временная диаграмма контента метаданных должна двигаться непрерывно;
- скорость, с которой движется временная диаграмма контента метаданных, должна быть постоянной и положительной;
- какие бы единицы времени не использовались для временной диаграмма контента метаданных, они должны двигаться синхронно с потоком элементов контента, т.е. временная диаграмма контента метаданных должна быть синхронна с частотой синхронизации элемента контента;
- допускаются положительные скачки значений временной диаграммы контента метаданных.
А.2 Вещательная временная диаграмма
Вещательная временная диаграмма обеспечивает способ доставки временной диаграммы контента метаданных во время вещания элемента контента. При этом должны быть приняты во внимание следующие проблемы:
- скорость вещания ограничена, поэтому не всегда возможно передать значения временной диаграммы контента метаданных с той дискретностью, которая требуется приемнику, и вещательная система может отказывать из-за ошибок передачи. Поэтому приемник должен уметь экстраполировать принятые значения временной диаграммы контента метаданных для обеспечения нормального отображения контента;
- хотя сам элемент контента является непрерывным, вещание может идти с разрывами, например, во время вставки горячего блока новостей. При этом движение доставляемой временной диаграммы контента метаданных должно приостанавливаться синхронно с элементом контента;
- временная диаграмма контента метаданных может быть определена с использованием различных форматов времени. Чтобы снизить нагрузку на приемник, кодирование, используемое для доставки временной диаграммы контента метаданных в вещательном потоке, должно быть ограниченным и легким для управления;
- скорость движения вещательной временной диаграммы синхронна со скоростью движения временной диаграммы контента метаданных, которая в свою очередь синхронна с воспроизводимым в данный момент элементом контента. Это условие не зависит от формата кодирования вещательной временной диаграммы;
- если воспроизведение элемента контента остановлено, вещательная временная диаграмма должна отразить факт того, что движение временной диаграммы контента метаданных также остановлено.
Вещательная временная диаграмма доставляется с использованием дескриптора вещательной временной диаграммы.
А.3 Временной код IEC 60461
Временной код встроен в поток видео в формате "HH:MM:SS:FF" (часы, минуты, секунды, сотые секунд) согласно [5]. Вещательная временная диаграмма кодирована с помощью неформатированных отсчетов, поскольку это упрощает задачу обработки временных значений в приемнике, в частности, благодаря подходу с использованием смещения. Это не представляет собой особых проблем для вещателя или приемника, поскольку встроенный в поток видео временной код может быть легко сконвертирован в отсчеты временной диаграммы и обратно, например, 15260 отсчетов по 25 отсчетов в секунду могут быть представлены как "00:10:10:10".
Следует отметить, что не применяют дробные скорости и значения временного кода, так как это усложняет преобразование. Однако, правильное преобразование при этом возможно, так как пропущенные значения являются детерминированными. Например, на частоте 29,97 Гц кадры номер 0 и 1 в начале каждой минуты пропускают в счете, за исключением минут с номером 0, 10, 20, 30, 40 и 50.
Вернуться в "Каталог нормативных документов"
Источник информации: https://internet-law.ru/documents/prod/gost-r_gosudarstvennyj-standart/33/gost_34740.html
На правах рекламы:
|