Спецификация Systems
Как уже отмечалось, системная спецификация определяет правила объединения потоков видео, звука и данных в один программный поток, и объединение нескольких программных в один транспортный. Первый шаг для получения программного и транспортного потоков – формирование пакетного элементарного потока PES (Packetised Elementary Stream).
Рис. 13.1 Формирование пакетного элементарного потока
Он состоит из PES-пакетов (рисунок 13.1)
Длина PES пакета может быть произвольной, фиксированной или переменной. Каждый PES пакет начинается с заголовка, который состоит из стартового префикса, и идентификатора потока, который позволяет выделить PES пакеты, принадлежащие одному элементарному потоку. Возможно определение пакетов из 32 потоков звука и 16 потоков видео. Здесь же передается информация о длине PES пакета и о длине его заголовка, могут передаваться метки времени представления PTS и метки времени декодирования DTS
Программный поток объединяет несколько элементарных потоков, образующих одну программу и имеющих общую временную базу (рисунок 13.2).
Рис. 13.2 Формирование программного потока
Образуются блоки из PES пакетов разных элементарных потоков. В начале блока идет заголовок блока и системный заголовок (необязательный). На длину блока нет никаких ограничений, кроме того, что заголовки блока должны появляться не реже, чем через 0,7 секунд, т.к. в них передается опорное системное время, необходимое для подстройки «часов» декодера. Системный заголовок несет информацию о характеристиках программного потока: скорость данных, количество элементарных потоков. Декодер по этой информации определяет, сможет ли он декодировать этот программный поток.
К недостатку программного потока следует отнести то, что он предназначен для использования в среде без помех, т.к. используются сравнительно большие блоки переменной длины.
Транспортный поток предназначен для объединения элементарных потоков нескольких программ, имеющих разные временные базы. Он состоит из коротких пакетов по 188 байт, четыре из которых - заголовок пакета, а 184 байта – полезная нагрузка. Формирование пакетов (рисунок 13.3) производится по следующим правилам:
- Первый байт PES пакета должен быть первым байтом полезной нагрузки транспортного пакета;
- Транспортный пакет должен содержать информацию одного PES пакета;
- Если PES пакет имеет объем не кратный 184 байтам, то один из транспортных пакетов, переносящих этот PES пакет, дополняется полем адаптации, которое переносит дополнительную информацию об использовании этого потока, например, опорное время программы PCR;
- Транспортные пакеты от различных элементарных потоков могут идти в произвольном порядке, но транспортные пакеты одного элементарного потока должны передаваться в порядке нарезания.
Рис.13.3 Формирование транспортного потока
Первый байт заголовка транспортного пакета – синхробайт (число 47 в шестнадцатеричной системе исчисления). 13 бит – идентификатор транспортного пакета PID (для распознавания принадлежности пакетов элементарным потокам). Из 8192=213 возможных значений 17 отведено для специальных целей (например, транспортный пакет с PID=0 передает таблицу соединения программ). Таким образом, транспортный поток может переносить данные 8175 элементарных потоков. Четыре бита заголовка отведено на счетчик непрерывности, который считает транспортные пакеты одного элементарного потока. Это удобно при больших уровнях шума в канале связи, например, при потере одного транспортного пакета, декодер определит его отсутствие и примет меры по маскированию ошибок.
Транспортный поток адаптирован к работе в неблагоприятном окружении (в присутствии шумов). Это видно по сравнительно малой и фиксированной длине транспортных пакетов. Благодаря этому же транспортный поток может переносить элементарные потоки нескольких программ, но за это приходится платить более сложной схемой мультиплексирования, чем в программном потоке.
В системе MPEG-2 существуют четыре вида таблиц с программной информацией:
1. таблица соединения программ PAT (Program Association Table), сообщает список всех программ, передаваемых в транспортном потоке и PID транспортных пакетов с таблицами планов программ;
2. таблица плана программы PMT (Program Map Table), сообщает об элементарных потоках, из которых складывается программа и PID транспортных пакетов, несущих информацию этих потоков;
3. таблица сетевой информации NIT (Network Information Table) сообщает о характеристиках используемых каналов;
4. таблица условного доступа CAT (Conditional Access Table)
Все таблицы передаются в качестве полезной нагрузки транспортных пакетов. Таблица PAT единственная в потоке и передается в пакете с PID=0. Количество таблиц PMT равно количеству передаваемых программ в транспортном потоке.
Рассмотрим принцип мультиплексирования (рисунок 13.4) и демультиплексирования (рисунок 13.5) программ.
Рис. 13.4 Формирование многопрограммного транспортного потока
В первом мультиплексоре (назовем его программным) формируется программный транспортный поток (рисунок 13.4), с добавлением транспортного пакета с таблицей плана программы PMT (таблица 13.2).
Она передается (в нашем случае) в транспортных пакетах с идентификатором PID=20. В нашем примере в таблице PMT будет четыре значения, определяющих идентификаторы транспортных пакетов, переносящих элементарные потоки этой программы. Четвертый – PID пакета, переносящего метки опорного времени программы. Обычно PID пакетов, переносящих опорное время, совпадает с PID пакетов видео. Во втором мультиплексоре происходит сложение транспортных потоков нескольких программ, с добавлением таблицы соединения программ PAT, таблица 13.3. Она передается в транспортном пакете с PID=0. И несет информацию о значениях идентификаторов транспортных пакетов с таблицами плана соответствующих программ.
Таблица 13.2 Таблица плана программы PMT
Элементарный поток | Значение PID |
Видео | |
Звук | |
Данные | |
Опорное время |
Таблица 13.3 Таблица соединения программ PAT
Номер программы | Значение PID пакетов с PMT |
Номер программы 0 отведен для обозначения PID транспортных пакетов с таблицей сетевой информации NIT, в нашем случае 16.
Рассмотрим процесс выделения элементарных потоков одной программы из многопрограммного транспортного потока, рисунок 13.5.
Рис. 13.5 Выделение элементарных потоков
При декодировании транспортного потока, сначала выделяется транспортный пакет с таблицей соединения программ PAT, она передается в пакете с PID=0. По этой таблице определяется PID транспортного пакета с таблицей плана необходимой программы PMT. По этой таблице определяются PID транспортных пакетов элементарных потоков, составляющих данную программу.
Таким образом, иерархический механизм, образованный всеми таблицами с системной информацией позволяет легко объединять и разделять элементарные потоки различных программ.
Синхронизация
В эпоху аналоговых сигналов только телевизионный сигнал отличался наличием сигналов синхронизации, в цифровых системах, при передаче любого первичного сигнала необходима синхронизация. Цель синхронизации – восстановление тактовой частоты, восстановления частоты пакетов данных, а в системах компрессии – и определение времени воспроизведения принимаемых данных.
Отсутствие на приемном конце информации о тактовой частоте приведет к невозможности работы приемного устройства. Именно поэтому при передаче цифровых сигналов без модуляции, используется коды, в спектре которых присутствует тактовая частота. Зная период следования пакетов данных на приемном конце можно восстановить, а в худшем случае замаскировать ошибки.
Кадры на вход системы MPEG-2 поступают с постоянной частотой и так же, с постоянной частотой они должны воспроизводиться на приемной стороне системы. Поэтому общая задержка системы (рисунок 13.6) должна быть одинаковой для всех кадров.
Рис. 13.6 Укрупненная схема системы MPEG-2
Скорость данных на выходе кодера компрессии зависит от передаваемого изображения, а скорость данных, передаваемых по каналу связи, должна быть постоянной. Этот вопрос решается за счет использования буфера кодера (см. главу Видеокомпрессия). На приемный конец компрессированные изображения поступают с переменной частотой (изображения I,P и B имеют разные объемы данных), а должны воспроизводится с постоянной частотой. Этот вопрос решается за счет буфера декодера.
Правильное время задержки обеспечивают метки времени, которые ставятся в соответствие блокам доступа (передаваемым изображениям). Метки времени несут информацию о том, когда блок доступа должен быть извлечен из буфера и декодирован.
Для правильной интерпретации меток времени в декодере, в нем должно быть собственное системное время, причем необходимо обеспечить подстройку «часов» декодера с «часами» кодера. Для этого системное время кодера регулярно передается на приемный конец. Системное время программы отсчитывается в периодах частоты 27МГц. Эта информация передается в программном потоке в заголовке блока программного пакета, а в транспортном потоке в поле адаптации транспортного пакета с соответствующим идентификатором PID. Отсчеты системного времени в программном потоке называются SCR (System Clock Reference), они должны появляться не реже, чем через 0,7 секунды, отсчеты программного времени в транспортном потоке называются PCR (Program Clock Reference), они должны появляться не реже, чем через 0,1 секунды. Транспортный поток несет информацию о нескольких программах, с разными временными базами, поэтому для каждой программы передается свое системное время. Идентификатор пакета, в котором передаются отсчеты программного времени, обычно такой же, как у пакетов видео этой программы.
Итак, в системе MPEG-2 передаются два вида отсчетов системного времени SCR и PCR, назначение у них одно - подстройка «часов» декодера.
Вернемся к меткам времени, сопровождающим блоки доступа. Существует два вида этих меток. PTS – метки времени представления и DTS – метки времени декодирования. Каждый блок доступа может сопровождаться этими метками, и значения их будут различными. Это объясняется тем, что для декодирования В изображения в декодере должно уже находится последующее Р изображение. Метки PTS определяют момент времени, в который декодированное изображение должно быть подано на выход декодера, а метки DPS – момент времени, в который блок доступа извлекается из буфера декодера и декодируется.
Дата добавления: 2015-12-26; просмотров: 1218;