что такое program map table pmt

Транспортный поток MPEG TS: основные понятия

В данной статье мы рассмотрим основные понятия для MPEG TS, который в настоящее время является стандартом и используется в качестве канального уровня в большинстве систем наземного цифрового телевизионного вещания, использующих передачу пакетных данных в транспортных потоках.

Принимая во внимание то, что структура транспортного потока опирается на некоторые фундаментальные концепции вещания, мы кратко рассмотрим их перед тем, как приступить к MPEG TS.

Вещание и необходимость в сервисах

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

Итак, мы сталкиваемся со структурой, в которой мы должны передавать услуги (например, ТВ каналы) для очень большого количества потребителей. Как вы знаете, старая аналоговая система, используемая для вещания, использует определенную полосу частот в радиочастотном диапазоне. Каждая часть полосы частот называется каналом. Так, в аналоговом телевидении в одном частотном канале у нас передавался только один ТВ канал.

С развитием цифровой передачи мы перестаем использовать концепцию аналоговых данных, и начинаем использовать концепцию передачи битов. Это означает, что в частотном канале, котором ранее передавались видео и аудио сигналы, теперь передаются двоичные данные (обратите внимание, что эти данные передаются последовательно). Использование бита в качестве единицы передаваемых данных дает гибкость для передачи множества типов файлов, что подразумевает снятие ограничения, при котором в канале передавался только один ТВ канал, один аудиоканал и т.д. Теперь канал – это пакет байтов, которые вещатель может распределять, чтобы передавать пользователям множество типов данных. Однако, как мы можем послать все эти данные без их смешивания. Ответ на этот вопрос – мультиплексирование с временным разделением каналов и MPEG TS, который был разработан для возможности такого способа передачи.

Что такое MPEG TS?

MPEG TS определяет канальный уровень, а также уровни данных сервисной информации (с точки зрения модели OSI, MPEG TS охватывает уровни от канального до транспортного). Вся передача данных выполняется с использованием пакетов фиксированного размера, известных как «TS-пакеты». TS пакеты – это базовые кирпичики, в которых передаются все данные канала, а кроме того, они позволяют реализовать временное мультиплексирование, необходимое для передачи.

Структура TS пакета изображена на рисунке ниже:

что такое program map table pmt. Смотреть фото что такое program map table pmt. Смотреть картинку что такое program map table pmt. Картинка про что такое program map table pmt. Фото что такое program map table pmt Структура TS пакета

Любая передача в канале осуществляется путем отправки одного TS пакета за другим (минимальный блок передачи данных составляет 184 байта). Как было показано на рисунке выше, пакет состоит из двух частей:

Полезная нагрузка – это просто двоичные данные для верхних уровней; уровней, которые выходят за рамки темы данной статьи.

4 байта заголовка разделены на несколько секций:

В этой таблице наиболее важными полями являются PID и счетчик непрерывности. В следующем разделе мы кратко рассмотрим их.

Мультиплексирование данных

В начале статьи я упомянул, что одной из ключевых особенностей MPEG TS является возможность мультиплексирования данных. Но как достигается это волшебство? Ну, всё связано с PID.

Значение PID является ключом, который используется в качестве идентификатора типа данных, которые идут через поток. Это означает, что я могу выбрать PID для идентификации видеосигнала, другой PID для идентификации звука для этого видео и, наконец, третий PID, который связывает видео и звук (также известный как таблица структуры программы или «Program Map Table», PMT). Со всеми этими данными приемник может реально показать видео и связанный с ним звук, если он знает, как обнаружить PMT пакеты. И это всё? Конечно, нет! Таким же образом я могу создать множество пар пакетов видео и звука с их PMT и передавать всех их через тот же канал, что дает нам возможность создать мультиплекс из нескольких ТВ каналов, использующих один канал передачи данных! Конечно, приемнику будет нужен четвертый тип пакета, чтобы узнать, какие программы идут в потоке: также известный как таблица программ или «Program Association Table», PAT.

На следующем рисунке приведена идея мультиплексирования программ:

что такое program map table pmt. Смотреть фото что такое program map table pmt. Смотреть картинку что такое program map table pmt. Картинка про что такое program map table pmt. Фото что такое program map table pmt Мультиплексирование программ в MPEG TS

На диаграмме выше, у нас три ТВ канала передаются в одном потоке. Все показанные таблицы являются более или менее связанными группами данных. Обратите внимание, что в этом примере, если приемник хочет знать все программы в канале, ему необходимо просто прочитать PAT (которая хоть в данном примере и передается в одном пакете, но это не всегда так делается). Таким образом, приемник знает все программы, которые есть в наличии, и если он хочет настроиться на одну из них, ему просто необходимо прочитать PMT пакет и начать фильтровать все пакеты с необходимыми видео и аудио, отклоняя видео и звук ненастроенных каналов. В заключение отметим, что PID позволяет мультиплексировать данные, а также предоставляет приемнику механизм фильтрации данных, которые необходимо использовать.

MPTS пакеты несут только 184 байта данных полезной нагрузки. Любой человек, который когда-либо использовал видео или аудио файлы, знает, что этот объем данных довольно мал, чтобы переносить какой-либо объем видео/аудио данных. Таким образом, транспортный уровень отвечает за перенос этой информации (уровень выше MPTS), но всё же мы должны знать, как собрать данные полезной нагрузки, и, самое главное, знать, как определить, когда данные полезной нагрузки были потеряны (нам необходима способность обнаружения случаев потери пакета данных!). Механизм обнаружения потери данных предоставляется счетчиком непрерывности.

Счетчик непрерывности (Continuity counter, CC) – это счетчик от 0 до 15, связанный с PID (CC относится только к PID, в котором он был передан). Он увеличивается на единицу каждый раз, когда в поток передается пакет связанного с ним PID. При таком подходе обнаружение потери пакета осуществляется путем анализа потерь значений в циклическом счетчике в принятых пакетах. Таким образом, если в циклическом счетчике потеряется значение, уровень TS сможет сообщить своему верхнему уровню, что он потерял часть переданных данных, позволяя верхнему уровню выбрать действие, которое необходимо выполнить в этом случае (в большинстве случаев происходит отбрасывание поврежденной информации).

Следующие значения CC показывают пример потери данных, которая обнаруживается благодаря нарушению в последовательности значений счетчика непрерывности (для примера мы допустим, что 4 видео TS пакета представляют собой один видео кадр, и, если кадр будет потерян, то декодер выведет на экран сообщение «No signal!»). Обратите внимание, что CC является циклическим.

что такое program map table pmt. Смотреть фото что такое program map table pmt. Смотреть картинку что такое program map table pmt. Картинка про что такое program map table pmt. Фото что такое program map table pmt Счетчик непрерывности (Continuity counter, CC)

Вот и всё! Надеюсь, статья оказалась вам полезной. Оставляйте комментарии!

Источник

program map table

Тематики

3.1.44 таблица состава программы (Program Map Table; PMT): Таблица, в которой перечислены все компоненты программы с их идентификаторами. Содержит PID всех составляющих конкретной программы. РМТ идентифицирует и указывает местоположение потоков, входящих в каждый сервис. РМТ указывает местоположение меток PCR каждого сервиса.

Смотреть что такое «program map table» в других словарях:

Program Specific Information — (PSI) is metadata, part of MPEG transport stream.The PSI data contains four tables: PAT (Program Association Table), CAT (Conditional Access Table), PMT (Program Map Table) and NIT (Network Information Table). This last table is normally not used … Wikipedia

Map — /map/, n. Walter, c1140 1209?, Welsh ecclesiastic, poet, and satirist. Also, Mapes /mayps, may peez/. * * * I Graphic representation, drawn to scale and usually on a flat surface, of features usually geographic, geologic, or geopolitical of an… … Universalium

map — mappable, adj. mapper, n. /map/, n., v., mapped, mapping. n. 1. a representation, usually on a flat surface, as of the features of an area of the earth or a portion of the heavens, showing them in their respective forms, sizes, and relationships… … Universalium

MAP — See modified American plan. * * * I Graphic representation, drawn to scale and usually on a flat surface, of features usually geographic, geologic, or geopolitical of an area of the Earth or of any celestial body. Globes are maps represented on… … Universalium

Table of keyboard shortcuts — In computing, a keyboard shortcut is a sequence or combination of keystrokes on a computer keyboard which invokes commands in software. Some keyboard shortcuts require the user to press a single key or a sequence of keys one after the other.… … Wikipedia

Map — For other uses, see Map (disambiguation). A map is a visual representation of an area a symbolic depiction highlighting relationships between elements of that space such as objects, regions, and themes. Many maps are static two dimensional,… … Wikipedia

Table (information) — Tabular redirects here. For the typewriter key, see tab key. For sortable tables in Wikipedia, see Help:Sorting An example table rendered in a web browser using HTML. A table is a means of arranging data in rows an … Wikipedia

Hash table — Not to be confused with Hash list or Hash tree. Unordered map redirects here. For the proposed C++ class, see unordered map (C++). Hash Table Type unsorted dictionary Invented 1953 Time complexity in big O notation Average Worst case Space … Wikipedia

Page table — A page table is the data structure used by a virtual memory system in a computer operating system to store the mapping between virtual addresses and physical addresses. Virtual addresses are those unique to the accessing process. Physical… … Wikipedia

Источник

Что такое program map table pmt

В телевещании программой (program) или сервисом (service) называется набор логически связанных элементарных потоков данных: аудио-, видео-, телетекст, субтитры, а также дополнительная информация типа расписания передач, названия программы, названия вещателя (провайдера), языков аудиосопровождения, данные для условного доступа к программам и т.п.

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

Хотя бы один аудиопоток в программе обычно есть, иногда их бывает несколько, например, на разных языках или, скажем, стерео и многоканальный звук в фильмах. Ни одного аудиопотока в программе бывает редко, хотя теоретически и такой вариант возможен.

Аудио- и видеопотоки (для MPEG2) состоят из PES-пакетов, порезанных на кусочки по 184 байта и разложенных по TS-пакетам.

Таблица состоит из одной или более секций (section). Каждая секция содержит 8-битовый идентификатор таблицы, определяющий её тип, порядковый номер секции и общее количество секций в таблице. Поскольку таблицы могут быть довольно большими, а TS-пакеты могут во время передачи искажаться, такая схема позволяет приёмнику быстрее собрать полную таблицу, дождавшись повторной передачи только нужной секции, а не всей таблицы целиком. [Здесь и далее под словом «приёмник» подразумевается не столько железо, сколько программа, которая управляет его работой]. Для обнаружения искажений при передаче секции снабжаются контрольными суммами (CRC32).

Идентификаторы некоторых таблиц определены в стандартах ISO 13818 и EN 300 468:

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

Содержимое таблиц может время от времени меняться. Чтобы приёмник мог распознать изменения, предусмотрено две возможности. Во-первых, в таблицах может присутствовать флаг «current/next indicator», указывающий, относится ли таблица к настоящему или к следующему периоду, и позволяющий одновременно передавать две разные версии одной таблицы. Имея данные о следующем периоде, приёмник может заранее произвести некоторые подготовительные действия.

Кроме того, в таблицах есть 5-битовый номер версии, который последовательно увеличивается всякий раз, когда данные в таблице изменяются. По достижении максимального значения номер версии сбрасывается в 0 и далее опять увеличивается. Обнаружив изменение номера версии, приёмник может предпринять какие-нибудь действия, например, автоматически показать пользователю название очередной передачи, или перечитать список каналов транспондера.

Кроме аудио, видео и служебных данных, элементарные потоки могут использоваться для передачи IP-пакетов, данных от интерактивных сервисов и прочего.

Чтобы данные от разных элементарных потоков при мультиплексировании не перепутались, каждому элементарному потоку присваивается уникальный (в пределах мультиплексированного потока) номер, который называется PID (packet identifier). Этот номер указывается в заголовках всех пакетов, относящихся к данному элементарному потоку. По значению этого поля демультиплексор в приёмнике и выделяет нужные элементарные потоки.

PID имеет длину 13 бит и может принимать значения от 0x0000 до 0x1FFF.
Значение 0x1FFF никогда не присваивается никакому реальному потоку и используется, когда в служебных таблицах требуется указать PID потока, а реально поток не существует (что-то типа NULL).

Набор таблиц, необходимый и достаточный для демультиплексирования и показа программ, называется PSI (program specific information). К нему относятся следующие таблицы:

В PAT (program association table), которая всегда передаётся с PID’ом 0x0000, находится список программ в виде номеров программ и номеров их PMT (program map tables). Считав PMT от каждой программы, приёмник получает номера PID’ов, с которыми передаются собственно аудио-, видео- и потоки данных условного доступа к этой программе.

Обычно для выбора и показа программы этих данных достаточно.

Кроме ссылок на PMT, в PAT присутствует также ссылка на NIT (network information table). В NIT описываются параметры транспондеров (частота, модуляция, ширина полосы, и т.п.) и передающихся с них мультиплексированных потоков (номер, идентификатор сети, номера и типы программ и пр.) Это позволяет приёмнику, настроившись хотя бы на один транспондер, автоматически узнать параметры других. Очевидно, для выборки данных о программах и их показа NIT не нужна. Тем не менее, по стандарту она включена в состав PSI.

Кроме вышеперечисленных, существуют и другие таблицы, формально не включены в состав PSI, но позволяют получить дополнительные данные о программах для автоматической группировки и более удобного выбора пользователем. В частности, интерес представляет SDT (service description table, PID=0x0011, table_id=0x42 для текущего потока и 0x46 для других потоков), в которой содержатся названия программ. Без содержащихся в этой таблице данных программы пришлось бы обозначать исключительно числовыми идентификаторами или редактировать названия вручную, что не слишком удобно для пользователя.

Дальнейшие примеры с комментариями помогут несколько прояснить эту запутанную картину.

Источник

MPEG-TS

что такое program map table pmt. Смотреть фото что такое program map table pmt. Смотреть картинку что такое program map table pmt. Картинка про что такое program map table pmt. Фото что такое program map table pmt

что такое program map table pmt. Смотреть фото что такое program map table pmt. Смотреть картинку что такое program map table pmt. Картинка про что такое program map table pmt. Фото что такое program map table pmt

что такое program map table pmt. Смотреть фото что такое program map table pmt. Смотреть картинку что такое program map table pmt. Картинка про что такое program map table pmt. Фото что такое program map table pmt

TS — формат медиаконтейнера который инкапсулирует пакеты элементарных потоков и других данных.

Содержание

Структура потока

В транспортном потоке можно выделить несколько уровней абстракции, иерархическая структура которых напоминает сетевую модель OSI. Например поток, содержащий видео, можно представить следующим образом:

Важные элементы транспортного потока

Пакет

Пакет, базовая единица транспортного потока.

Остальная часть пакета состоит из полезной информации. Пакеты составляют 188 байт в длине, но среда коммуникации может добавить некоторые байты для устранения ошибок пакета. DVB-ASI использует 204 байта и 208 байтов ATSC как транспортный пакет потока. (DVB t=8 и ATSC t=10 то есть дополнительные байты = 2*t). Передача ATSC добавляет 20 байтов Reed-Solomon передовое устранение ошибок, чтобы создать пакет, который является 208 байтов длиной. 188-байтовый размер пакета был первоначально выбран для совместимости с системами ATM.

Каждая таблица или элементарный поток в транспортном потоке идентифицируется по 13-битовому PID. Демультиплексор извлекает элементарные потоки из общего транспортного потока, объединяя их в потоки с одинаковыми PID. В большинстве приложений планируется использовать временно́е мультиплексирование, чтобы решать, как часто конкретный PID будет появляться в транспортном потоке.

Programs

Транспортный поток имеет концепцию программы. Единая программа Program Map Table (PMT), которая имеет уникальный PID, и элементарные потоки, связанные с этой программой и имеющие свои PID-ы, которые перечислены в PMT. Например, транспортный поток, используемый в цифровом телевидении может состоять из трех программ, и нести в себе три телевизионных канала. Предположим, каждый канал состоит из одного видео потока и одного или двух аудио потока, и любые необходимые метаданные. Приемник, желающий декодировать один из каналов использует для декодирования лишь PID-ы нужные для данного канала, которые связаны с его программой. Он может отказаться от содержащихся в ней всех других PID-ов.

Program Specific Information (PSI)

Специальная информация о программах

В спецификации MPEG-2 формат CAT и NIT не регламентирован.

Таблица программ (Program Association Table, PAT) содержит PID-ы всех PMT. Её собственный PID всегда 0x0.

Таблица структуры программ (Program Map Table, PMT) содержит PIDы и основные характеристики элементарных потоков конкретной программы — видео, звука, дополнительных данных. Для каждой программы есть свой PMT с собственным PID. Кроме того PMT содержит сообщения EMC системы условного доступа, если в программе присутствуют зашифрованные элементарные потоки.

Чтобы декодер мог воспроизводить программы в правильное время, на правильной скорости и с синхронизацией, обычно программы периодически передают Program Clock Reference, или PCR, в одном из потоков программы. Это так же называется основной источник опорной частоты (Master Clock). Временные интервалы в MPEG2 рассчитываются по этой частоте. Для примера, временная метка представления (PTS) соответствует PCR. Первые 33-бита соответствуют опорной частоте в 90 кГц. Расширение последовательности на 9 бит соответствует частоте в 27 МГц.

Null packets

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

Модификация в транспортном потоке, спецификация случайного доступа к медиа (M2TS)

Timecode

Транспортный поток был создан для кассет и вещания, поэтому потребовались изменения для использования в медиаустройствах со случайным доступом, таких как новое поколение цифровых камер, записывающих на DVD, Blu-ray, жесткие диски или SSD, карты памяти.

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

Пакеты записываются не по порядку. Специальный трек хранит их 4-байтный код времени (timecode — TC), добавленный в стандартные 188-байтные пакеты. В результате получается 192-байтный пакет. Все это неофициально называется M2TS потоком. Blu-ray Disc Association назвала это «BDAV MPEG-2 transport stream». JVC назвала TOD (возможно, как аббревиатура от «Transport stream on disc») когда использовала его в видекамерах с HDD, таких как GZ-HD7. Транспортный поток M2TS также используется для AVCHD видеофайлов, которые часто имеют расширение MTS.

Источник

Что такое program map table pmt

В Program Map Table (PMT) содержатся номера PID’ов, с которыми передаются аудио- и видеопотоки программ, типы этих потоков, а также PID’ы потоков условного доступа. Эти данные необходимы для показа программы.

Для каждой программы в текущем мультиплексированном потоке есть отдельная PMT, и передаётся она с отдельным PIDом. PIDы для PMT каждой программы указаны в PAT. PMT программ передаются только в том же мультиплексированном потоке, что и сами программы, в отличие от, скажем NIT или SDT, которые могут передаваться и в других потоках той же сети.

Program Map Table (PMT):

Table_ID для PMT всегда равен 2.
Из таблицы видно, что программа состоит из единственного элементарного потока типа 4 (MPEG2 audio в соответствии со стандартом ISO 13818 часть 3), который передаётся с PIDом 2226, язык у этого потока английский.

В качестве PCR назначен видеопоток (PID 2101).

Поток с данными условного доступа может указываться в составе PMT самостоятельно, как в вышеприведённом примере, а может по отдельности внутри описаний аудио- и видеопотоков. В последнем случае поток с данными условного доступа указывается обычно один и тот же. Это не является ограничением стандарта, а связано с реализацией системы шифрования в DVB.

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *