Системы цифрового ТВ вещания, соответствующие различным международным стандартам, отличаются в основном уровнем адаптации к сети. На транспортном уровне механизмы обработки данных в известных системах практически совпадают, поскольку все они основаны на алгоритмах мультиплексирования и передачи служебной информации, описанных в стандарте MPEG-2. Транспортный уровень очень важен, так как создает универсальную многоцелевую систему, и его жесткая регламентация позволяет разрабатывать совместимые абонентские приставки, использовать в различных системах общие алгоритмы восстановления и представления информации. Субсистема мультиплексирования и транспортировки принимает цифровые потоки, представляющие данные, изображения, звуковые данные, дополнительные и служебные данные, формирует их в управляемые пакеты, обеспечивает механизм индикации начала пакета (синхронизация), назначает каждому пакету соответствующий код идентификации (заголовок) и объединяет (мультиплексирует) пакеты в общий транспортный поток данных. Субсистема мультиплексирования и транспортировки является основой цифровой системы связи.
|
|
Групповой сигнал в системе цифрового телевидения формируется мультиплексированием потоков битов различных компонентов: видео- и аудиоданных и управления (сервисной информации). Процесс мультиплексирования в системе может быть представлен как комбинация мультиплексирования на двух различных уровнях — программном и системном.
Аналоговые сигналы вещательных служб сначала кодируются (как описано в ISO / IEC 13818-2 (колирование видео) и ISO / IEC 13818-3 (кодирование аудио) со сжатием данных в непрерывные, так называемые элементарные потоки битов (Elementary Stream, ES), которые могут иметь фиксированную или переменную скорость передачи данных. В общем случае перед мультиплексированием элементарные потоки ES, представляющие кодированные сигналы или данные из базы, а также поток битов управления преобразуются в промежуточные пакетированные элементарные потоки (Packetized Elementary Stream, PES), или PES-пакеты, т.е. потоки данных в виде больших пакетов переменной длины (достаточно большой длины – до 64 кбайт), они содержат заголовок и полезную нагрузку. В заголовке размещаются данные сервисной информации SI. В полезной нагрузке PES-пакета байты данных элементарного потока ES содержатся в их естественном порядке.Нет никаких требования по согласованию начала полезных данных пакета и начала блоков доступа, поэтому начало блока доступа может быть в любой точке PES-пакета, а несколько малых блоков доступа могут попасть в один PES-пакет. Длина PES-пакетов не фиксируется стандартом, так как данные пакеты не предназначены для использования в качестве самостоятельной единицы. Эту свободу можно использовать по-разному. Например, можно просто установить фиксированную длину всех пакетов, а можно согласовывать начало пакета с началом блока доступа. Формирование PES-потока из элементарного потока ES проиллюстрировано на рисунке 8.1
|
|
Рисунок 8.1 – Формирование PES потока
Каждый из индивидуальных потоков битов идентифицируется своим уникальным идентификатором пакета (Packet Identifier, PID). Поток битов управления мультиплексированием содержит таблицу структуры программы (Program Map Table, РМТ), которая включает информацию об идентификаторах пакетов PID транспортных потоков, образующих программу, о приложениях, передаваемых посредством этих потоков, и о соотношениях между потоками PES-пакетов. Данные управления также структурируются в специальный PES-пакет, в полезной нагрузке которого размещается таблица РМТ.
Далее существуют две возможности мультиплексирования: формирование программного потока (Program Stream, PS) с длинными пакетами переменной длины и формирование транспортного потока (Transport Stream, TS) с короткими пакетами фиксированной длины, что на рисунке 8.2 показано для некоторой произвольной комбинации компонентов в виде аудио- и видеоданных. Эти две схемы мультиплексирования порождены различными задачами по обработке и передаче информации. Программные потоки содержат минимальную избыточность, обусловленную вводом данных управления, и предназначены в основном для некоторых видов дополнительной программной обработки и для хранения массивов информации на носителях, для которых характерна весьма низкая вероятность ошибки, например, для записи на CD-ROM. При необходимости поток PS может содержать всего один поток ES, т.е. может быть получен перекодированием без мультиплексирования.
Рисунок 8.2 – Программное и транспортное мультиплексирование
в системах цифрового ТВ
При формировании программного потока образуются блоки из PES-пакетов. Блок содержит заголовок блока, системный заголовок (необязательный), за которым следует некоторое количество PES-пакетов. Длина блока программного потока может быть произвольной, единственное ограничение – заголовки блока должны появляться не реже, чем через 0,7 секунды. Это связано с тем, что в заголовке содержится важная информация – опорное системное время. Системный заголовок содержит информацию о характеристиках программного потока, таких, например, как максимальная скорость передачи данных, число видео и звуковых элементарных потоков. Формирование программного потока проиллюстрировано на рисунке 8.2. Декодер использует эту информацию, например, для того, чтобы решить, может ли он декодировать этот программный поток. Предназначен для использования в условиях окружения, не вносящего ошибки в цифровые данные. Причина этому – сравнительно большие блоки переменной длины. Искажения из-за ошибок одного блока могут означать потерю, например, целого кадра телевизионного изображения. Поскольку длина блока переменная, то декодер не может предсказывать время конца одного блока и начало другого и вынужден полагаться только на информацию о длине, содержащуюся в заголовке. Если соответствующее поле заголовка окажется пораженным ошибками, то декодер выйдет из синхронизма и потеряет, по крайней мере, один блок. К преимуществам, получаемым при использовании программного потока, можно отнести то, что процедура демультиплексирования программного потока относительно проста.
Рисунок 8.3 – Формирование программного потока
Транспортный поток может объединять пакетные элементарные потоки, переносящие данные нескольких программ с независимыми временными базами. Он состоит из коротких пакетов фиксированной длины (188 байтов). Элементарные потоки видео, звука и дополнительный данных (например, телетекст) разбиваются на фрагменты, равные по длине полезной нагрузке транспортного пакета (184 байта) и мультиплексируются в единый поток (рисунок 3.7). Этот процесс подчиняется ряду ограничений:
|
|
- Первый байт каждого PES-пакета элементарного потока должен быть первым байтом полеезной нагрузки транспортного пакета;
- Каждый транспортный пакет может содержать данные лишь одного PES-пакета.
Рисунок 8.4 – Формирование траспортного потока
Размер потока транспортного потока выбран для совместимости с широко применяемым на сетях связи стандартом асинхронной передачи данных АТМ.
Структура транспортного потока оптимизирована для условий передачи данных в каналах связи с шумами. Это проявляется, прежде всего, в небольшой длине пакетов. Типичные примеры защиты от ошибок данных транспортного потока дают системы цифрового телевизионного вещания. В системах DVB к 188 байтам каждого транспортного пакета добавляются 16 проверочных байтов кода Рида-Соломона, что позволяет исправлять в каждом пакете до 8 пораженных шумами байтов.
На втором, системном уровне мультиплексирования из нескольких транспортных потоков TS отдельных программ формируется единый системный поток транспортных пакетов многопрограммной системы цифрового вещания. Полная структурная схема формирования системного потока транспортных пакетов, включая ввод дополнительных данных, а также данных управления системой ограничения доступа (СОД), показана на рисунке 8.5.
Рисунок 8.5 – транспортное мультиплексирование с
формированием системного потока
Такой поток, передаваемый по одному физическому каналу сети вещания, называется мультиплексом. В процессе мультиплексирования в состав транспортных пакетов, имеющих фиксированную длину 188 байт, вводится также поток битов управления (сервисной информации) системного уровня, для которого всегда PID=0. Этот поток в полезной нагрузке содержит таблицу взаимосвязи (ассоциации) программ (Program Association Table, PAT), которая отражает идентичность программ и транспортных потоков программ, идентифицируемых своими PID, содержащимися в таблице РМТ отдельной программы.
|
|
На приемной стороне системный транспортный поток образуется на выходе декодера для какого-либо определенного канала, по которому ведется передача (рисунок 8.6). Далее в демультиплексоре из системного транспортного потока выделяется транспортный поток конкретной программы, а из него — компрессированные потоки, переносящие видеоданные и аудиоданные. Сжатые видео- и аудиоданные поступают в соответствующие декодеры, на выходе которых образуются восстановленные сигналы изображения и звука.
Рисунок 8.6 – структурная схема транспортного демультиплексирования и
декодирования
В реальных устройствах мультиплексирования и управления не требуется обязательного наличия формирователей PES-пакетов и нескольких транспортных мультиплексоров программного и системного уровней. Их функции могут быть интегрированы в другие устройства, что упрощает принципиальную схему и конструкцию блока мультиплексирования.
Скорость передачи мультиплексированного потока данных задается модемом, выдающим сигнал тактовой синхронизации и запросы на считывание TS-пакетов из транспортного мультиплексора, в составе которого по входам PES-пакетов имеется небольшая буферная память типа FIFO. В случае, если источник данных в данный момент времени недоступен, транспортный мультиплексор в ответ на запрос выдает нулевой пакет (без полезной нагрузки).
Для формирования и приема транспортного потока используется оборудования, которое работает по алгоритму программы. Программы работы кодеров, декодеров, мультиплексоров стандарта MPEG-2 строятся на конструкциях языка «Си». Каждая элементарная группа данных кодированного цифрового потока описывается своим именем, своей длиной в битах и мнемоническим обозначением своего типа и порядка передачи. Порядок следования байтов в многобайтовых словах: сначала старший значащий байт.
Численные значения констант в таблицах, представляющих сервисную информацию, часто приводятся в шестнадцатеричном формате, характерным признаком которого являются символы 0х в начале константы, например: 0x00000001, 0x34, 0x00EF и т.д.
Далее по тексту будут использоваться имена синтаксических конструкций, используемых в программном обеспечении, например, data_element.