что такое program association table pat
Структура транспортного потока MPEG
Что такое формат MPEG?. В состав чипсета MPEG энкодера в действительности входит аудио-энкодер и видео-энкодер. Видео-энкодер производит поток MPEG видеоданных, аудио-энкодер производит поток MPEG аудио данных. Эти потоки называются «элементарные MPEG потоки» (MPEG Elementary Streams или кратко ES). Оба аудио и видео элементарные (ES) потоки разбиты на пакеты (например, для видео-декодера пакетом может быть кадр изображения). Результирующие потоки называются MPEG-пакетизированные элементарные потоки (MPEG Packetized Elementary Streams или кратко PES), которые, в свою очередь, мультиплексирует входящий в состав энкодера мультиплексер транспортного потока (Transport Stream Multiplexer). Мультиплексер производит транспортный поток (Transport Stream, TS), который содержит аудио и видео PES потоки вместе с данными синхронизации.
Аудио-данные, видео-данные и данные синхронизации на выходе энкодера вместе уже являются «программой». Данные синхронизации определяют скорость передачи данных и необходимы впоследствии для точного декодирования аудио- и видео-данных программы.
Транспортный поток состоит из TS пакетов длиной 188 байт. Каждый из TS пакетов содержит заголовок и полезную нагрузку данных, например, аудио-, видео-данные, телетекст. Заголовок каждого пакета содержит информацию о содержании этого пакета и является важным для демультиплексера TS. Заголовок начинается со слова синхронизации (47 в hex формате), используемого для распознавания начала пакета. Далее следуют два байта, которые содержат некоторые необходимые флаги (flags) и идентификатор пакета (PID).
PID-код содержит важнейшую информацию о пакете и может быть в диапазоне от 0 до 8191 и используется для идентификации содержания пакета. Например, транспортный поток может содержать пакетизированные элементарные видео-потоки (PES) в пакетах с PID 100, аудио-PES в пакетах с PID 101 и данные синхронизации, принадлежащие к этим потокам в пакетах с PID 102. Но для вторых видео-PES данные синхронизации могут быть в пакетах с PID 200. Итак, в одном транспортном потоке может передаваться много элементарных потоков PES. Но как декодер узнает, какие пакеты (PID-коды) принадлежат определенной программе? Именно для этой цели транспортный поток содержит сервисную информацию (Service Information, SI).
Сервисная информация содержится в нескольких специальных таблицах. Эти таблицы передаются как отдельные потоки, подобно видео- и аудио-потокам. Большинство потоков таблиц сервисной информации имеют фиксированный известный ID, так что декодер всегда может найти их. Ниже приведены наиболее важные SI таблицы с их PID – кодами.
Наименование таблицы | PID |
Таблица привязки программы PAT, Program Association Table | 00h |
Таблица сетевой информации NIT, Network Information Table | 10h |
Таблица групп программ BAT, Bouquet Association Table | 11h |
Таблица описания сервисной информации SDT, Service Descriptor Table | 11h |
Таблица событий EIT, Event Information Table | 12h |
Таблица запущенных программ RST, Running Status Table | 13h |
Таблица смещения времени TOT, Time Offset Table | 14h |
Таблица структуры программ | переменный код |
PMT, Program Map Table | 10h..1FFEh |
Наиболее важными являются PAT и PMT таблицы. Таблица PAT содержит названия всех программ в данном потоке и пакетные идентификаторы (PID-коды) для PMT этих программ (таблиц структуры программ). Если ресивером принимается неизвестный транспортный поток, то он вначале дожидается TS пакетов с PID=0, содержащих таблицу PAT, затем, в свою очередь, PAT таблица сообщает ресиверу коды PID таблицы структуры программ PMT в этом потоке.
Другие таблицы сервисной информации SI дают дополнительную информацию о вещателе, транспортном потоке, программах и о событиях в программах.
Кроме таблиц PAT и РМТ, существует еще одна чрезвычайно важная таблица – таблица условного доступа (Conditional Access Table, CAT), которая передается при PID = 0001, когда одна или более программ уплотненного потока скремблируются (шифруются).
Для мониторинга содержания транспортного потока используются так называемые анализаторы транспортного потока, которые позволяют оператору в процессе настройки мультиплексоров фильтровать ненужные сервисы. Для инжекции в транспортный поток необходимой оператору сервисной информации используются PSI/SI генераторы. Поскольку сервисная информация передается в TS как последовательная серия иерархических таблиц, PSI/SI генераторы называют ещё «карусельными» генераторами.
Если у Вас возникли какие либо вопросы, обращайтесь по E-mail: или по тел.: (495) 221-81-88. Наши специалисты дадут Вам полную исчерпывающую информацию по любому из интересующих Вас вопросов.
Транспортный поток MPEG TS: основные понятия
В данной статье мы рассмотрим основные понятия для MPEG TS, который в настоящее время является стандартом и используется в качестве канального уровня в большинстве систем наземного цифрового телевизионного вещания, использующих передачу пакетных данных в транспортных потоках.
Принимая во внимание то, что структура транспортного потока опирается на некоторые фундаментальные концепции вещания, мы кратко рассмотрим их перед тем, как приступить к MPEG TS.
Вещание и необходимость в сервисах
Большинство вещательных сетей работает, как то, что мы можем назвать однонаправленной сетевой системой (вещательная сеть). Данная структура реализуется таким способом не потому, что невозможно организовать обратный канал с любого устройства в сети, а потому, что конечному пользователю будет довольно затратно приобрести устройство, обладающее необходимыми возможностями. Данная структура делает передачу данных через крупную сеть связи дешевле.
Итак, мы сталкиваемся со структурой, в которой мы должны передавать услуги (например, ТВ каналы) для очень большого количества потребителей. Как вы знаете, старая аналоговая система, используемая для вещания, использует определенную полосу частот в радиочастотном диапазоне. Каждая часть полосы частот называется каналом. Так, в аналоговом телевидении в одном частотном канале у нас передавался только один ТВ канал.
С развитием цифровой передачи мы перестаем использовать концепцию аналоговых данных, и начинаем использовать концепцию передачи битов. Это означает, что в частотном канале, котором ранее передавались видео и аудио сигналы, теперь передаются двоичные данные (обратите внимание, что эти данные передаются последовательно). Использование бита в качестве единицы передаваемых данных дает гибкость для передачи множества типов файлов, что подразумевает снятие ограничения, при котором в канале передавался только один ТВ канал, один аудиоканал и т.д. Теперь канал – это пакет байтов, которые вещатель может распределять, чтобы передавать пользователям множество типов данных. Однако, как мы можем послать все эти данные без их смешивания. Ответ на этот вопрос – мультиплексирование с временным разделением каналов и MPEG TS, который был разработан для возможности такого способа передачи.
Что такое MPEG TS?
MPEG TS определяет канальный уровень, а также уровни данных сервисной информации (с точки зрения модели OSI, MPEG TS охватывает уровни от канального до транспортного). Вся передача данных выполняется с использованием пакетов фиксированного размера, известных как «TS-пакеты». TS пакеты – это базовые кирпичики, в которых передаются все данные канала, а кроме того, они позволяют реализовать временное мультиплексирование, необходимое для передачи.
Структура TS пакета изображена на рисунке ниже:
Структура TS пакета
Любая передача в канале осуществляется путем отправки одного TS пакета за другим (минимальный блок передачи данных составляет 184 байта). Как было показано на рисунке выше, пакет состоит из двух частей:
Полезная нагрузка – это просто двоичные данные для верхних уровней; уровней, которые выходят за рамки темы данной статьи.
4 байта заголовка разделены на несколько секций:
В этой таблице наиболее важными полями являются PID и счетчик непрерывности. В следующем разделе мы кратко рассмотрим их.
Мультиплексирование данных
В начале статьи я упомянул, что одной из ключевых особенностей MPEG TS является возможность мультиплексирования данных. Но как достигается это волшебство? Ну, всё связано с PID.
Значение PID является ключом, который используется в качестве идентификатора типа данных, которые идут через поток. Это означает, что я могу выбрать PID для идентификации видеосигнала, другой PID для идентификации звука для этого видео и, наконец, третий PID, который связывает видео и звук (также известный как таблица структуры программы или «Program Map Table», PMT). Со всеми этими данными приемник может реально показать видео и связанный с ним звук, если он знает, как обнаружить PMT пакеты. И это всё? Конечно, нет! Таким же образом я могу создать множество пар пакетов видео и звука с их PMT и передавать всех их через тот же канал, что дает нам возможность создать мультиплекс из нескольких ТВ каналов, использующих один канал передачи данных! Конечно, приемнику будет нужен четвертый тип пакета, чтобы узнать, какие программы идут в потоке: также известный как таблица программ или «Program Association Table», PAT.
На следующем рисунке приведена идея мультиплексирования программ:
Мультиплексирование программ в MPEG TS
На диаграмме выше, у нас три ТВ канала передаются в одном потоке. Все показанные таблицы являются более или менее связанными группами данных. Обратите внимание, что в этом примере, если приемник хочет знать все программы в канале, ему необходимо просто прочитать PAT (которая хоть в данном примере и передается в одном пакете, но это не всегда так делается). Таким образом, приемник знает все программы, которые есть в наличии, и если он хочет настроиться на одну из них, ему просто необходимо прочитать PMT пакет и начать фильтровать все пакеты с необходимыми видео и аудио, отклоняя видео и звук ненастроенных каналов. В заключение отметим, что PID позволяет мультиплексировать данные, а также предоставляет приемнику механизм фильтрации данных, которые необходимо использовать.
MPTS пакеты несут только 184 байта данных полезной нагрузки. Любой человек, который когда-либо использовал видео или аудио файлы, знает, что этот объем данных довольно мал, чтобы переносить какой-либо объем видео/аудио данных. Таким образом, транспортный уровень отвечает за перенос этой информации (уровень выше MPTS), но всё же мы должны знать, как собрать данные полезной нагрузки, и, самое главное, знать, как определить, когда данные полезной нагрузки были потеряны (нам необходима способность обнаружения случаев потери пакета данных!). Механизм обнаружения потери данных предоставляется счетчиком непрерывности.
Счетчик непрерывности (Continuity counter, CC) – это счетчик от 0 до 15, связанный с PID (CC относится только к PID, в котором он был передан). Он увеличивается на единицу каждый раз, когда в поток передается пакет связанного с ним PID. При таком подходе обнаружение потери пакета осуществляется путем анализа потерь значений в циклическом счетчике в принятых пакетах. Таким образом, если в циклическом счетчике потеряется значение, уровень TS сможет сообщить своему верхнему уровню, что он потерял часть переданных данных, позволяя верхнему уровню выбрать действие, которое необходимо выполнить в этом случае (в большинстве случаев происходит отбрасывание поврежденной информации).
Следующие значения CC показывают пример потери данных, которая обнаруживается благодаря нарушению в последовательности значений счетчика непрерывности (для примера мы допустим, что 4 видео TS пакета представляют собой один видео кадр, и, если кадр будет потерян, то декодер выведет на экран сообщение «No signal!»). Обратите внимание, что CC является циклическим.
Счетчик непрерывности (Continuity counter, CC)
Вот и всё! Надеюсь, статья оказалась вам полезной. Оставляйте комментарии!
Что такое program association table pat
Войти
Авторизуясь в LiveJournal с помощью стороннего сервиса вы принимаете условия Пользовательского соглашения LiveJournal
[ | userinfo | | | livejournal userinfo | ] |
[ | archive | | | journal archive | ] |