Введение

Цифровой видеоформат, используемый для хранения и передачи данных в сети, MPEG транспортный поток (MPEG TS, MTS) или просто транспортный поток (TS) — это стандартный цифровой контейнерный формат для передачи и хранения аудио, видео и данных протокола программной и системной информации (PSIP). Он используется в системах вещания, таких как DVB, ATSC и IPTV. Транспортный поток определяет контейнерный формат, инкапсулирующий пакетизированные элементарные потоки, с функциями коррекции ошибок и синхронизации для поддержания целостности передачи при ухудшении качества канала связи. Транспортные потоки отличаются от аналогично названного потока программ MPEG несколькими важными аспектами: потоки программ предназначены для достаточно надежных носителей, таких как диски (например, DVD), в то время как транспортные потоки предназначены для менее надежной передачи, в частности, наземного или спутникового вещания. Кроме того, транспортный поток может содержать несколько программ. Транспортный поток специфицирован в MPEG 2 Part 1, Systems, официально известном как стандарт ISO/IEC 13818-1 или ITU-T Rec. H.222.0. Формат M2TS добавляет к пакетам 4-байтовый тег авторских прав и временной метки. Размер пакета в 188 байт был изначально выбран для совместимости с системами асинхронной передачи (ATM). + Формат пакета частичного транспортного потока
НазваниеКоличество битМаска (старший байт вперед)Описание
4-байтовый заголовок транспортного потокаSync byte80xff000000Битовый шаблон 0x47 (ASCII символ 'G')
Индикатор ошибки транспорта (TEI)10x800000Устанавливается, если демодулятор не может исправить ошибки из данных FEC, указывая на повреждение пакета.
Индикатор начала блока полезной нагрузки (PUSI)10x400000Устанавливается, когда этот пакет содержит первый байт новой полезной нагрузки. Для пакетов PSI первые байты полезной нагрузки указывают, где начинается новая единица полезной нагрузки. Для пакетов PES новый пакет PES начинается с начала полезной нагрузки. Это поле позволяет приемнику, начавшему чтение в середине передачи, определить, когда можно начать извлечение данных.
Приоритет транспорта10x200000Устанавливается, если текущий пакет имеет более высокий приоритет, чем другие пакеты с тем же PID.
PID130x1fff00Идентификатор пакета, описывающий данные полезной нагрузки.
Контроль шифрования транспорта (TSC)20xc0'00' = Не зашифрован. Только для DVB CSA и ATSC DES:'01' (0x40) = Зарезервировано для будущего использования'10' (0x80) = Зашифровано с использованием четного ключа'11' (0xC0) = Зашифровано с использованием нечетного ключа
Контроль поля адаптации20x3001 – нет поля адаптации, только полезная нагрузка,10 – только поле адаптации, без полезной нагрузки,11 – поле адаптации, за которым следует полезная нагрузка,00 – ЗАРЕЗЕРВИРОВАНО для будущего использования
Счетчик непрерывности40xfПоследовательный номер пакетов полезной нагрузки (0x00 до 0x0F) в каждом потоке (кроме PID 8191). Увеличивается для каждого PID, только если установлен флаг полезной нагрузки.
Необязательные поляПоле адаптациипеременнаяПрисутствует, если элемент управления полем адаптации равен 10 или 11. Формат см. ниже.
Данные полезной нагрузкипеременнаяПрисутствует, если элемент управления полем адаптации равен 01 или 11. Полезной нагрузкой могут быть пакеты PES, специфическая информация о программе (см. ниже) или другие данные. + Формат поля адаптации
НазваниеКоличество битМаскаОписание
Длина поля адаптации8Количество байт в поле адаптации, непосредственно следующем за этим байтом
Индикатор прерывания10x80Устанавливается, если текущий пакет TS находится в состоянии прерывания относительно счетчика непрерывности или опорной частоты программы
Индикатор произвольного доступа10x40Устанавливается, если поток может быть декодирован без ошибок с этой точки
Индикатор приоритета элементарного потока10x20Устанавливается, если этот поток следует считать "высоким приоритетом"
Флаг PCR10x10Устанавливается, если присутствует поле PCR
Флаг OPCR10x08Устанавливается, если присутствует поле OPCR
Флаг точки склейки10x04Устанавливается, если присутствует поле обратного отсчета до точки склейки
Флаг частных данных транспорта10x02Устанавливается, если присутствуют частные данные транспорта
Флаг расширения поля адаптации10x01Устанавливается, если присутствуют данные расширения адаптации
Необязательные поля
PCR48Опорная частота программы, хранящаяся как 33 бита базы, 6 битов зарезервированы, 9 битов расширения. Значение вычисляется как база * 300 + расширение.
OPCR48Исходная опорная частота программы. Помогает при копировании одного TS в другой
Обратный отсчет до точки склейки8Указывает, через сколько пакетов TS от текущего пакета произойдет точка склейки (двухдополнительный знаковый формат; может быть отрицательным)
Длина частных данных транспорта8Длина следующего поля
Частные данные транспортапеременнаяЧастные данные
Расширение адаптациипеременнаяСм. ниже
ЗаполнителипеременнаяВсегда 0xFF

+ Формат расширения адаптации
НазваниеКоличество битМаскаОписание
Длина расширения адаптации80xff00Длина заголовка
Флаг допустимого временного окна (LTW)10x0080
Флаг кусочной скорости10x0040
Флаг бесшовной склейки10x0020
Зарезервировано50x001f
Необязательные поля
Установлен флаг LTW (2 байта)
Флаг LTW valid10x8000
Смещение LTW150x7fffДополнительная информация для ретрансляторов для определения состояния буферов, когда пакеты могут отсутствовать.
Установлен флаг кусочной скорости (3 байта)
Зарезервировано20xc00000
Кусочная скорость220x3fffffСкорость потока, измеряемая в пакетах по 188 байт, для определения времени окончания LTW.
Установлен флаг бесшовной склейки (5 байт)
Тип склейки40xf000000000Указывает параметры склейки H.262.
DTS следующего блока доступа360x0efffefffePES DTS точки склейки. Разделен на несколько полей, 1 маркерный бит (0x1), 15 бит, 1 маркерный бит, 15 бит и 1 маркерный бит, всего 33 бита данных. + Формат полезной нагрузки
НазваниеКоличество битМаскаОписание
Указатель полезной нагрузки (необязательно)80xffПрисутствует только в том случае, если установлен флаг индикатора начала блока полезной нагрузки (PUSI) и тип данных пакета — PSI (не PES). Он указывает индекс после этого байта, с которого начинается новая единица полезной нагрузки. Любой байт полезной нагрузки перед индексом является частью предыдущей единицы полезной нагрузки.
Фактическая полезная нагрузкапеременнаяСодержимое полезной нагрузки.

Программы

Транспортный поток оперирует понятием программ. Каждая программа описывается таблицей сопоставления программ (PMT). Элементарные потоки, связанные с данной программой, имеют идентификаторы PID, перечисленные в PMT. Отдельный PID также связан с самой PMT. Например, транспортный поток, используемый в цифровом телевидении, может содержать три программы, представляющие три телевизионных канала. Предположим, каждый канал состоит из одного видеопотока, одного или двух аудиопотоков и любых необходимых метаданных. Приемнику, желающему декодировать один из трех каналов, достаточно декодировать полезные данные каждого PID, связанного с его программой. Он может игнорировать содержимое всех остальных PID. Транспортный поток, содержащий более одной программы, называется многопрограммным транспортным потоком (MPTS). Транспортный поток, содержащий только одну программу, называется однопрограммным транспортным потоком (SPTS).

Конкретная информация о программе

Существует 4 таблицы информации о программе (PSI): таблица ассоциации программ (PAT), таблица отображения программ (PMT), таблица условного доступа (CAT) и таблица сетевой информации (NIT). Спецификация MPEG 2 не определяет формат таблиц CAT и NIT.

ПЦР

Для обеспечения декодеру возможности воспроизводить синхронизированный контент, например, аудиодорожки, соответствующие сопутствующему видео, как минимум один раз в 100 мс, в адаптационном поле пакета транспортного потока MPEG 2 передается эталон тактовой частоты программы (PCR). PID, содержащий PCR для программы MPEG 2, идентифицируется значением pcr pid в соответствующей PMT. Значение PCR, при правильном использовании, применяется для генерации системных часов в декодере. Декодер системных часов (STC), при корректной реализации, обеспечивает высокоточную временную базу, используемую для синхронизации элементарных потоков аудио и видео. Временные отметки в MPEG 2 отсчитываются относительно этих часов. Например, временная метка представления (PTS) предназначена для указания времени относительно PCR. Первые 33 бита основаны на тактовой частоте 90 кГц. Последние 9 битов основаны на тактовой частоте 27 МГц. Максимальный допустимый джиттер для PCR составляет .

Нулевые пакеты

Некоторые схемы передачи, такие как ATSC и DVB, предъявляют строгие требования к постоянной скорости передачи данных в транспортном потоке. Чтобы обеспечить поддержание постоянной скорости передачи данных, мультиплексор может нуждаться во вставке дополнительных пакетов. Для этой цели зарезервирован PID 0x1FFF. Нулевые пакеты содержат полезную нагрузку, заполненную значениями 0xFF, и от приемника ожидается игнорирование их содержимого.

Использование в цифровых видеокамерах

Транспортный поток изначально разрабатывался для вещания. Позже он был адаптирован для использования с цифровыми видеокамерами, записывающими устройствами и проигрывателями путем добавления 4-байтового поля временного кода (TC) к стандартным пакетам размером 188 байт, что привело к созданию пакета размером 192 байта. Это неофициально называют потоком M2TS, который часто встречается в HDV-камерах. Ассоциация Blu-ray Disc называет его "транспортным потоком BDAV MPEG 2". Временной код обеспечивает быстрый доступ к любой части потока как из медиаплеера, так и из нелинейной системы видеомонтажа. Он также используется для синхронизации видеопотоков с нескольких камер в многокамерной конфигурации.

Использование в Blu-ray

Видеозаписи на Blu-ray Disc, созданные с поддержкой меню, имеют формат Blu-ray Disc Movie (BDMV) и содержат аудио-, видео- и другие потоки в контейнере BDAV, который основан на формате транспортного потока MPEG 2. Blu-ray Disc использует эти модифицированные транспортные потоки MPEG 2, в отличие от программных потоков DVD, которые не имеют дополнительной транспортной нагрузки. Существует также формат BDAV (Blu-ray Disc Audio/Visual) – ориентированная на потребителя альтернатива формату BDMV, используемому для выпуска фильмов. Формат BDAV применяется на дисках Blu-ray, предназначенных для записи аудио- и видеоматериалов. Blu-ray Disc использует метод записи на основе транспортного потока MPEG 2, что позволяет записывать транспортные потоки цифрового вещания, преобразованного в BDAV, практически без изменений в пакетах.