Рефераты. MPEG форматы

Пакетный элементарный поток

Системная спецификация MPEG-2 (ISO/IEC 13818-1) описывает объединение элементарных потоков одной или нескольких телевизионных программ в единый поток данных, удобный для записи или передачи по каналам цифровой связи. Надо отметить, что стандарт MPEG-2 не определяет защиту от ошибок, возможных при записи или передаче, хотя он, конечно, предусматривает такую возможность, облегчая защиту за счет оптимального выбора параметров потока. MPEG-2 регламентирует две возможных формы единого потока данных – это программный поток и транспортный поток. Первый шаг на пути получения единого потока - формирование пакетного элементарного потока PES (Packetised Elementary Stream), представляющего собой последовательность PES-пакетов (рис.9). Каждый пакет состоит из заголовка и данных пользователя, или полезной нагрузки, которая представляет собой фрагменты исходного элементарного потока. Нет никаких требования по согласованию начала полезных данных пакета и начала блоков доступа, поэтому начало блока доступа может быть в любой точке PES-пакета, а несколько малых блоков доступа могут попасть в один PES-пакет. PES-пакеты могут быть переменной длины. Эту свободу можно использовать по-разному. Например, можно просто установить фиксированную длину всех пакетов, а можно согласовывать начало пакета с началом блока доступа.

В начале заголовка PES-пакета (рис.10) идет 32-битный код старта, состоящий из стартового префикса и идентификатора потока. Идентификатор потока позволяет выделить PES-пакеты, принадлежащие одному элементарному потоку телевизионной программы. Спецификация определяет разрешенные значения чисел в поле идентификатора для 32 элементарных потоков звука и 16 элементарных потоков видеоданных. Флаги 1 и 2 – биты, указывающие на наличие или отсутствие в заголовке дополнительных полей, которые не являются обязательными. Эти поля служат для переноса дополнительной информации, такой, например, как авторские права, скремблирование, приоритет. Особую значимость имеют биты P и D флага 2, указывающие на наличие полей с метками времени представления PST (Presentation Time Stamps) и декодирования DTS (Decoding Time Stamps). Метки времени – это механизм, обеспечивающий синхронизацию потоков данных в декодере.









 

































Программный поток

Программный поток объединяет элементарные потоки, образующие телевизионную программу (рис.11). При формировании программного потока образуются блоки из PES-пакетов. Блок содержит заголовок блока, системный заголовок (необязательный), за которым следует некоторое количество PES-пакетов. Длина блока программного потока может быть произвольной, единственное ограничение – заголовки блока должны появляться не реже, чем через 0,7 секунды. Это связано с тем, что в заголовке содержится важная информация – опорное системное время. Системный заголовок содержит информацию о характеристиках программного потока, таких, например, как максимальная скорость передачи данных, число видео и звуковых элементарных потоков. Декодер использует эту информацию, например, для того, чтобы решить, может ли он декодировать этот программный поток.

Программный поток объединяет элементарные потоки одной программы, имеющие общую временную базу. Он предназначен для использования в условиях окружения, не вносящего ошибки в цифровые данные. Причина этому – сравнительно большие блоки переменной длины. Искажения из-за ошибок одного блока могут означать потерю, например, целого кадра телевизионного изображения. Поскольку длина блока переменная, то декодер не может предсказывать время конца одного блока и начало другого и вынужден полагаться только на информацию о длине, содержащуюся в заголовке. Если соответствующее поле заголовка окажется пораженным ошибками, то декодер выйдет из синхронизма и потеряет, по крайней мере, один блок. К преимуществам, получаемым при использовании программного потока, можно отнести то, что процедура демультиплексирования программного потока относительно проста.

Транспортный поток

Транспортный поток может объединять пакетные элементарные потоки, переносящие данные нескольких программ с независимыми временными базами. Он состоит из коротких пакетов фиксированной длины (188 байтов). Элементарные потоки видео, звука и дополнительный данных (например, телетекст) разбиваются на фрагменты, равные по длине полезной нагрузке транспортного пакета (184 байта) и мультиплексируются в единый поток (рис.12). Этот процесс подчиняется ряду ограничений:

·   Первый байт каждого PES-пакета элементарного потока должен быть первым байтом полеезной нагрузки транспортного пакета.

·   Каждый транспортный пакет может содержать данные лишь одного PES-пакета.

 



















Если PES-пакет не имеет длину, кратную 184 байтам, то один из транспортных пакетов не заполняется данными PES-пакета полностью. В этом случае избыточное пространство заполняется полем адаптации (рис.12). Транспортные пакеты, переносящие разные элементарные потоки, могут появляться в произвольном порядке, но пакеты, принадлежащие одному элементарному потоку, должны следовать в транспортном потоке в хронологическом порядке, т.е. в порядке их «нарезания» из PES-пакетов.

Структура транспортного потока оптимизирована для условий передачи данных в каналах связи с шумами. Это проявляется, прежде всего, в небольшой длине пакетов. Типичные примеры защиты от ошибок данных транспортного потока дают системы цифрового телевизионного вещания. В системах DVB и ISDB к 188 байтам каждого транспортного пакета добавляются 16 проверочных байтов кода Рида-Соломона, что позволяет исправлять в каждом пакете до 8 пораженных шумами байтов. В ATSC к каждому пакету добавляется 20 проверочных байтов, что позволяет исправлять до 10 байтовых ошибок в одном пакете.

Транспортный пакет

Транспортный пакет начинается с 4-байтного заголовка (рис.13), первый байт которого – синхронизирующий (число 47 в шестнадцатеричном коде). Это значение не является уникальным и может появляться в других полях транспортного пакета. Однако тот факт, что заголовки всегда следуют с интервалом в 188 байтов, упрощает определение начала пакета.

 



















Транспортный поток может переносить несколько телевизионных программ, состоящих из набора элементарных потоков. Для опознавания пакетов, принадлежащих одному элементарному потоку, используется 13-битный идентификатор. Из 213 возможных значений 17 зарезервировано для специальных целей, а остальные 8175 могут использоваться для присвоения в качестве номеров элементарным потокам. Таким образом, один транспортный поток может переносить до 8175 элементарных потоков.

Важный компонент заголовка – счетчик непрерывности, который инкрементируется в последовательных транспортных пакетах, принадлежащих одному и тому элементарному потоку. Это позволяет декодеру обнаруживать потерю транспортного пакета и принимать меры к маскированию ошибок, которые могут возникнуть из-за потери.

Поле адаптации не является обязательным. Оно может использоваться не только для заполнения «пустот» (рис.12). Это поле также переносит важную дополнительную информацию об использовании данных пакета, например, опорное время программы PCR (Program Clock Reference).

Иерархическая идентификация программ

Идентификатором принадлежности транспортного пакета к определенному элементарному потоку является значение PID (рис.13). А для распознавания элементарных потоков и объединения их в телевизионные программы служит программная информация PSI (Program Specific Information), которая должна обязательно передаваться в транспортном потоке. В системной спецификации MPEG-2 определено 4 типа таблиц с программной информацией:

·   Таблица соединения программ PAT (Program Association Table).

·   Таблица плана программы PMT (Program Map Table).

·   Таблица сетевой информации NIT (Network Information table).

·   Таблица условного доступа CAT (Conditional Access Table).

Каждая из этих таблиц передается в виде полезной нагрузки одного или нескольких транспортных пакетов. Таблица соединения программ PAT всегда переносится транспортными пакетами с PID=0. Эта таблица (рис.14) сообщает список номеров всех программ, которые содержатся в транспортном потоке, и указывает идентификаторы пакетов, в которых находятся PMT-таблицы с информацией о программах и элементарных потоках, из которых они складываются. Номер программы 0 зарезервирован, он используется для указания на PID пакета с сетевой информацией NIT о сетях передачи транспортного потока, частотах каналов, характеристиках модуляции и т.п. (в примере рисунка 14 PID пакета с NIT равен 16, а PID пакета с информацией PMT о программе 1 равен 21).

 









 















В таблице PMT (на рис.15 показан пример PMT для программы 1 с PID, равным 21) указываются сведения о программе и тех элементарных потоках, из которых она складывается. Из примера рис.15 следует, что элементарный поток видеоданных этой программы переносится пакетами с PID=50, поток звука – пакетами с PID=51, дополнительных данных – пакетами с PID=52. В таблице также указывается PID транспортных пакетов, переносящих метки опорного времени данной программы (обычно эти пакеты имеют тот же PID, что и элементарный поток видео).
Все вместе таблицы с программной информацией образуют иерархический индексный механизм. Рис.16 показывает принцип мультиплексирования элементарных и транспортных потоков в процессе получения многопрограммного транспортного потока, а рис.17 иллюстрирует демультиплексирование транспортного потока с целью извлечения элементарных потоков, из которых складывается телевизионная программа 1 (значения PID на этих рисунках соответствуют примерам таблиц, показанных на рис.14 и 15).
Благодаря небольшой длине пакета транспортный поток может легко переносить несколько телевизионных программ с разными временными базами, но за это приходится платить боле сложной, чем в случае программного потока схемой мультиплексирования и демультиплексирования.


Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.