Транспортировка данных стандрта MPEG

В январе 1988 года в рамках объединенного технического комитета по информационным технологиям JTC1 Международной организации по стандартизации ISO и Международной электротехнической комиссии IEC была образована рабочая группа экспертов по кодированию движущихся изображений, перед которой была поставлена задача разработки стандартов кодирования изображения и звука с целью устранения избыточности. Группа получила официальное наименование ISO/IEC JTC1/SC29/WG11 (11 рабочая группа 29 подкомитета), но мировую известность она приобрела под названием MPEG - Moving Picture Expert Group. В первом заседании группы в мае 1998 года участвовало 25 экспертов, сейчас группа MPEG объединяет сотни специалистов, представляющих около 200 организаций из более чем 20 стран. Общая цель работы группы остается прежней – компрессия, обработка и кодовое представление изображения, звука и их комбинаций. Основные проекты группы – это MPEG-1 (стандарт ISO/IEC 11172) - Кодирование изображение и звука при скоростях передачи данных до 1.5Мбит/с, MPEG-2 (ISO/IEC 13818) – Обобщенное кодирование изображения и звука, MPEG-4 (ISO/IEC 14496) – Кодирование аудиовизуальных объектов, MPEG-7 (ISO/IEC 15938) – Описание содержания объектов мультимедиа. Из этого списка лишь стандарт MPEG-7 пока не утвержден ISO, но работа над всеми проектами (кроме MPEG-1) продолжается. Наиболее известный из проектов группы MPEG - стандарт MPEG-2 к настоящему времени насчитывает уже 10 частей, первая из которых была представлена к стандартизации в 1994 году, а последняя - в 1999 году.

Среди 10 составных частей стандарта MPEG-2 можно выделить 3 основных: 13818-1 – Systems, 13818-2 – Video, 13818-3 – Audio. Спецификация 13818-2 регламентирует кодовое представление и процесс декодирования, обеспечивающий воспроизведение компрессированных телевизионных изображений. 13818-2 предполагает сжатие потока видеоданных за счет устранения пространственной и временной избыточности, присущей телевизионному изображению. Устранение пространственной избыточности основывается на использовании дискретного косинусного преобразования, временной – на дифференциальном кодировании с компенсацией движения. Но процедура кодирования не регламентируется стандартом, что оставляет возможности для совершенствования кодеров и улучшения качества воспроизводимого изображения. Спецификация 13818-3 определяет кодовое представление сигнала звукового сопровождения. Системная спецификация 13818-1 устанавливает правила объединения данных видео и звука в единый поток. Важнейшая особенность стандарта MPEG-2 – представление сигналов телевизионного изображения и звука в форме, задаваемой спецификациями 13818-1 - 13818-3, позволяет обращаться с видео и звуковыми потоками как с потоками компьютерных данных, которые могут записываться на самые разнообразные носители информации, передаваться и приниматься с использованием каналов связи и сетей телекоммуникаций, которые существуют сегодня и появятся в будущем.

Поток видеоданных, определяемый спецификацией 13818-2, представляет собой иерархическую структуру, элементы которой строятся и объединяются друг с другом в соответствии с определенными синтаксическими и семантическими правилами. Существует 6 типов элементов этой иерархической структуры:

· Видеопоследовательность

· Группа изображений

· Изображение

· Срез

· Макроблок

· Блок.

Видеопоследовательность – элемент потока видеоданных высшего уровня. Она представляет собой серию последовательных кадров телевизионного изображения. MPEG-2 допускает как построчные, так и чересстрочные последовательности. Чересстрочная последовательность – это серия телевизионных полей. В процессе компрессии поля могут кодироваться раздельно. Это дает изображения типа «поле». Два поля, кодируемые как телевизионный кадр, образуют изображение типа «кадр». В одной чересстрочной последовательности могут использоваться и изображения-поля, и изображения-кадры. В последовательностях с построчным разложением каждое изображение представляет собой кадр.

Серия изображений, содержащих одно I-изображение, называется группой изображений. Пример видеопоследовательности с различными типами изображений показан на рис.1 (стрелками показаны направления предсказания в пределах одной группы изображений). Чем больше группа изображений, тем большая степень компрессии может быть достигнута.

С информационной точки зрения каждое изображение представляет собой три прямоугольных матрицы отсчетов изображения: яркостную Y и две матрицы цветности Cb и Cb. Стандарт MPEG-2 допускает различные структуры матриц. Соотношение между количеством отсчетов яркости и цветности определяется форматом дискретизации. В случае формата 4:2:0 размеры матриц Cb и Cb в 2 раза меньше, чем Y, и в горизонтальном, и в вертикальном направлениях (рис.5). Формат 4:2:2 отличается тем, что все три матрицы имеют одинаковые размеры по вертикали, но в горизонтальном направлении матрицы цветности имеют в два раза меньшее количество элементов (рис.6). В формате 4:4:4 все матрицы одинаковы (рис.6).

Каждое изображение делится на срезы, которые состоят из макроблоков (рис.2). Макроблок складывается из блоков размером 8х8 элементов изображения (пикселов). Каждый макроблок содержит группу из 4 блоков с отсчетами яркости (из области изображения с размерами 16х16 пикселов) и группу блоков с отсчетами цветности, взятых из той же области изображения, что и отсчеты блоков яркости. Число блоков с отсчетами цветности зависит от формата дискретизации: по одному блоку Cb и Cb в формате 4:2:0, по два – в формате 4:2:2, по 4 – в формате 4:4:4 (рис.3). В изображениях типа «кадр», в которых может использоваться и кадровое, и полевое кодирование, возможны 2 варианта внутренней организации макроблока (рис.4). В случае кадрового кодирования каждый блок яркости Y образуется из чередующихся строк двух полей (рис.4а). При полевом кодировании каждый блок Y образован из строк только одного из двух полей (рис.4б). Блоки цветности образуются по таким же правилам в случае форматов дискретизации 4:2:2 и 4:4:4. Однако при использовании формата 4:2:0 блоки цветности организуются для выполнения дискретного косинусного преобразования в рамках кадровой структуры (рис.4а).

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

В результате компрессии объем данных, представляющий исходные изображения, сжимается (рис.7). Но стандарт MPEG-2 не регламентирует сам процесс кодирования, поэтому изображения (блоки представления) в нем рассматриваются как результат декодирования компрессированных изображения – блоков доступа. Использование двунаправленного предсказания приводит к тому, что декодер может приступить к декодированию изображения типа B только после того, когда уже получены и декодированы и предшествующее, и последующее опорные изображения, с помощью которых вычислялось предсказание. Для того, чтобы не устанавливать в декодере огромные буферные массивы, в потоке данных на выходе кодера (этот поток называется элементарным потоком видеоданных) кодированные изображения следуют в порядке декодирования. Например, вместо последовательности I-B-B-P формируется серия I-P-B-B (рис.8).

Стандарт MPEG-2 определяет кодирование, охватывающее требования широкого круга приложений сферы производства и распределения телевизионных программ. Обобщение требований типичных и наиболее важных приложений и определило синтаксис и семантику потока видеоданных. Но для наиболее эффективного применения на практике и обеспечения высокой степени эксплуатационной совместимости устройств, работающих в рамках стандарта MPEG-2, но разработанных и изготовленных различными производителями, в рамках синтаксиса MPEG-2 выделено несколько подмножеств, называемых профилями. Но и в рамках синтаксических границ каждого профиля может быть огромное количество комбинаций параметров цифрового потока. Поэтому в каждом профиле выделено несколько уровней, определяемых совокупностью ограничений, наложенных на параметры цифрового потока, подчиняющегося синтаксису профиля. Другими словами, профиль - это подмножество стандарта для специализированного применения, задающее алгоритмы и средства компрессии. Уровни внутри каждого профиля связаны главным образом с параметрами компрессируемого изображения (таблица 1).

Профили MPEG-2: Simple - простой профиль; Main - основной профиль; SNR - профиль с масштабируемым квантованием (SNR - Signal-to-Noise-Ratio - отношение сигнал шум); Spatial - профиль с масштабируемым пространственным разрешением (spatial - пространственный); High - высокий профиль; 422 - студийный профиль. В комментариях нуждаются лишь несколько столбцов таблицы 1. Профиль с масштабируемым квантованием SNR поддерживает все типы изображений. На базовом уровне кодера используется обычное кодирование на основе предсказания с компенсацией движения, дискретного косинусного преобразования и квантования ошибки предсказания. Выходные данные этого кодера образуют нижний, или базовый слой цифрового потока данных. Ошибка квантования, обусловленная квантователем, кодируется (с использованием второго квантователя и кодера с переменной длиной слова) и передается в качестве верхнего слоя цифрового потока. На приемной стороне производится либо декодирование одного базового слоя, что обеспечивает приемлемое качество, либо обоих слоев, что позволяет уменьшить шумы квантования.

Профиль с масштабируемым пространственным разрешением Spatial также использует все виды изображений. Цифровой поток структурирован и имеет базовый и дополнительные слои. Профиль позволяет иметь наряду с базовым пространственным разрешением и более высокие значения, если декодировать все слои цифрового потока.

Студийный профиль 422 обеспечивает полное разрешение, соответствующее рекомендации ITU-R 601, монтаж с точностью до кадра, допускает многократные перезаписи.

Надо иметь в виду, что в таблице показаны максимально достижимые значения параметров, а не их сочетания. Например, в рамках основного уровня профиля 422 количество активных строк равно 608 для системы разложения 625 строк/25 кадров и 512 – для 525 строк/30 кадров. К настоящему времени лишь часть из возможных сочетаний профилей и уровней достаточно разработана и принята в качестве стандарта. Большинство выпускаемых в настоящее время кодеров и декодеров в интегральном исполнении относятся к основному профилю и основному уровню (MP@ML). Однако уже есть две реализации систем для основного уровня студийного профиля 422 – это система видеозаписи Betacam SX, в которой используются группы изображений из 2 кадров (I и B) при величине потока видеоданных – 18Мбит/с, и система, в которой используются только изображения типа I при скорости потока записываемых видеоданных 50Мбит/с.

Таблица 1. Профили и уровни стандарта MPEG-2

Уровень Профили Simple Main SNR Spatial High
  Изображения I и P I,P и B I,P и B I,P и B I,P и B I,P и B
  Формат 4:2:0 4:2:0 4:2:0 4:2:0 4:2:0, 4:2:2 4:2:2
High Отсчетов в строке        
  Строк в кадре        
  Кадров в секунду        
  Макс. скор. потока   80 Мбит/с     100 Мбит/с  
High-1440 Отсчетов в строке      
  Строк в кадре      
  Кадров в секунду      
  Макс. скор. потока   60 Мбит/с   60 Мбит/с 80 Мбит/с  
Main Отсчетов в строке  
  Строк в кадре  
  Кадров в секунду  
  Макс. скор. потока 15 Мбит/с 15 Мбит/с 15 Мбит/с   20 Мбит/с 50 Мбит/с
Low Отсчетов в строке        
  Строк в кадре        
  Кадров в секунду        
  Макс. скор. потока   4 Мбит/с 4 Мбит/с      

 

Системная спецификация 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).

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