Сжатые элементарные цифровые потоки сигналов изображения и звука с целью их единой привязки по времени к началу декодирования и воспроизведения преобразуются в пакетированные элементарные потоки (ПЭП). Пакетирование может осуществляться также для дополнительных данных, в частности для данных, требующих единой шкалы времени с видео и/или звуком. Длина пакетов в потоке может быть переменной, но всегда равна целому числу байтов. В последовательности байтов старшим считается первый во времени или в файле. При необходимости побитовой передачи ПЭП первым передается старший бит.
В общем случае пакет ПЭП состоит из двух заголовков и данных (рисунок 3).
Основной заголовок | Дополнительный заголовок и данные | ||
Стартовый префикс 0х000001 | Идентификатор потока (0хBC...0хFF) | Длина пакета | |
3 байта | 1 байт | 2 байта | Число байтов равно значению поля "Длина пакета" |
Рисунок 3 - Обобщенная структура пакета ПЭП
Идентификатор потока (четвертый байт основного заголовка) определяет тип ПЭП и уточняет структуру пакета. Шестнадцатеричные значения идентификаторов и их соответствие типам ПЭП (типам данных) приведены в таблице 11. Значения идентификаторов от 0x00 до 0xВВ не используются, поскольку битовые последовательности от 0x00000100 до 0x000001 ВВ являются стартовыми кодами, которые служат для разделения сжатых видеоданных в элементарных потоках MPEG-2, MPEG-4, AVC и VC-1 на отдельные смысловые группы (элементы доступа).
Таблица 11 - Идентификация пакетированных элементарных потоков
Значение идентификатора потока | Тип данных, содержащихся в пакете ПЭП |
0xBC | Таблица состава программного потока (Program Stream) |
0xBD | Частные данные 1-го типа (синхронные) |
0xBE | Неинформативные (заполняющие) данные |
0xBF | Частные данные 2-го типа (асинхронные) |
0xC0...0xDF | Сжатые звуковые данные |
0xE0...0xEF | Видеоданные, сжатые в соответствии с ИСО/МЭК 13818-2/МСЭ-Т Н.262, ИСО/МЭК 14496-2, ИСО/МЭК 14496-10/МСЭ-Т Н.264 |
0xF0 | Информация об управляющих словах (при ограничении доступа) - ЕСМ |
0xF1 | Информация о санкционированном приеме (при ограничении доступа) - ЕММ |
0xF2 | Контрольная сумма или информация конфигурации и управления для высокоскоростной передачи информации |
0xF3 | Мультимедийные и гипермедийные данные по ИСО/МЭК 13818-1 Annex B |
0xF4 | Видеоданные MPEG-1, передаваемые через сети АТМ |
0xF5 | Звуковые данные, передаваемые через сети АТМ |
0xF6 | Данные субканалов и синхронизации, передаваемые через сети АТМ |
0xF7 | Данные, передаваемые через сети АТМ |
0xF8 | Зарезервировано под данные, передаваемые через сети АТМ |
0xF9 | Данные программного потока ИСО/МЭК 13818-1/МСЭ-Т Н.222.0 |
0xFA | Пакеты синхронизационного слоя MPEG-4 |
0xFB | Мультиплексированные пакеты (FlexMux) MPEG-4 |
0xFC | Метаданные |
0xFD | Признак расширения (для идентификаторов потока, не вошедших в данный перечень) |
0xFE | Зарезервирован |
0xFF | Директорий программного потока |
Пакетированным элементарным цифровым потокам, содержащим видеоданные, сжатые в соответствии со стандартами MPEG-2, MPEG-4 и AVC, присваиваются идентификаторы из диапазона от 0xE0 до 0xEF. Пакетированный элементарный цифровой поток VC-1 или EVC должен иметь идентификатор 0xFD.
Значение поля "Длина пакета", равное нулю, означает, что пакет имеет произвольную длину, а его окончание фиксируется при обнаружении основного заголовка нового пакета ПЭП. В связи с этим поле "Длина пакета" с нулевым значением не должно использоваться при наличии в пакете собственных данных, фрагмент которых может быть интерпретирован декодером как заголовок нового пакета ПЭП.
Детализированная структура пакета ПЭП представлена на рисунке 4.
Рисунок 4 - Детализированная структура пакета ПЭП
Порядок следования и назначение флагов дополнительного заголовка приведены в таблице 12.
Таблица 12 - Флаги дополнительного заголовка
Номер бита | Семантика флага | Примечание |
1, 2 | - | Фиксированный код `10' |
3, 4 | Управление скремблированием | '00' - полезные данные в ПЭП не скремблированы, '10' - скремблирование с четным ключом,'11' - скремблирование с нечетным ключом, '01' - резерв |
5 | Приоритетность ПЭП | ПЭП с флагом '1' более приоритетны |
6 | Индикатор выравнивания данных | Если флаг установлен, то полезные данные пакета начинаются с префикса элемента доступа |
7 | Авторское право | Если флаг установлен, то контент защищен авторскими правами |
8 | Оригинал или копия | Если флаг установлен, то полезные данные - оригинал |
9, 10 | Наличие меток времени представления (МВП) и декодирования (МВДК) | '00' - дополнительных полей МВП и МВДК нет, '10' - есть дополнительное поле МВП, '11' - имеются МВП и МВДК |
11 | Наличие метки времени элементарного потока (МВЭП) | Если флаг установлен, то имеется дополнительное поле МВЭП |
12 | Наличие поля скорости элементарного потока (СЭП) | Если флаг установлен, то имеется дополнительное поле СЭП |
13 | Воспроизведение со спецэффектами | Если флаг установлен, то имеется 8-битовое поле трюкового воспроизведения |
14 | Информация о копии | Если флаг установлен, то имеется информация о копии |
15 | Наличие контрольной суммы | Если флаг установлен, то имеется контрольная сумма предыдущего пакета ПЭП |
16 | Наличие расширенного поля данных | Если флаг установлен, то после дополнительных полей данных, определенных предшествующими флагами (биты 1-15), следует расширенное поле данных |
Примечания 1 Если поток формируется для вещательных целей, то поле МВЭП не обязательно, а трюковое воспроизведение не используется. 2 Скорость элементарного потока - 22-битовое число, обрамленное двумя маркерными (единичными) битами, выражает скорость ПЭП в единицах "50 байтов в секунду". Значение 0 не должно применяться. Если поток формируется для вещательных целей, поле СЭП не обязательно. 3 Дополнительная информация о копии начинается с единичного бита и заключена в следующих за ним 7 битах. 4 Контрольная сумма ранее переданного пакета ПЭП (с тем же идентификатором потока), занимающая 16 битов, вычисляется только для полезных данных при помощи полинома: x |
Все заполняющие байты дополнительного заголовка должны иметь одинаковое значение 0xFF, а их общее количество не должно превышать 32.
Поля, наличие которых определяется битами 9-16 флагов, размещаются в дополнительном заголовке ПЭП в той же последовательности, что и флаги.
Структура дополнительных полей данных МВП, МВДК и МВЭП показана на рисунке 4. Метки времени МВП [32:0], МВДК [32:0] и МВЭП [32:0] задают количество тактов единой опорной частоты 90 кГц, а расширение МВЭПР [8:0] - число тактов системной частоты 27 МГц по модулю 300. Частота 90 кГц формируется делением частоты 27 МГц на 300. Метки воспроизведения и декодирования включаются в состав дополнительного заголовка пакета, если в полезных данных этого пакета содержится начало соответствующего элемента доступа: кадра для MPEG-2, MPEG-4, VC-1; слайса-кадра для AVC; группы кадров для EVC. В целом совокупность меток времени являет собой механизм синхронизации потоков данных при их обработке в декодере.
Структура дополнительного поля данных воспроизведения со спецэффектами для архивного применения показана на рисунке 5.
Поле воспроизведения со спецэффектами (если 13-й бит флагов установлен в '1') | |||
Режим трюка | Биты управления | ||
3 бита | 2 бита | 1 бит | 2 бита |
'000' - быстрая перемотка вперед, '011' - быстрая перемотка назад | '00' - верхнее поле, | '1' - восстановить /-слайс | Число ненулевых трансформант: |
Замедленное воспроизведение: '001' - вперед, '100' - назад | Кратность повтора | ||
'010' - стоп-кадр | '00' - верхнее поле, | Резерв | |
'101', '110', '111' - резерв | '11111' - резерв |
Рисунок 5 - Структура данных воспроизведения со спецэффектами (1 байт)
Расширенное поле данных позволяет в общем случае формировать и передавать пакетированные элементарные потоки, отличающиеся синтаксисом и семантикой от элементарных потоков, сформированных по стандартам MPEG-2, MPEG-4, AVC.