Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
258
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава14. Стандарты кодирования динамических изображений

Так как программный и транспортный потоки предназначены для различных приложений, их определения не следуют строго уровневой модели.

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

Область действия синтаксических и семантических правил, устанавливаемых системным стандартом, различна:

синтаксические правила применяются только для кодирования системного уровня и не распространяются на уровень сжатия видео- и звука;

семантические правила применяются к потоку в целом.

Системный стандарт не определяет архитектуру или реализацию ни кодеров или декодеров, ни мультиплексоров или демультиплексоров. Однако свойства битового потока налагают определенные требования на кодеры, декодеры, мультиплексоры и демультиплексоры.

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

Далее приводятся описания вышеперечисленных черт стандарта MPEG-2.

14.4.2. Совместимость стандартов MPEG-1 и MPEG-2

MPEG-2 совместим с предыдущим стандартом MPEG-1 «вперед» и «вверх» по видеопотоку. Вообще говоря, при переходе к новому стандарту возможны следующие виды совместимости:

совместимость «вперед» (forward compatibility) — декодер нового поколения должен уметь декодировать потоки кодера предыдущего поколения;

совместимость «назад» (backward compatibility) — декодер предыдущего поколения должен уметь декодировать потоки или часть потока кодера нового поколения;

совместимость «вверх» (upward compatibility) — декодер нового поколения с более высоким разрешением должен уметь декодировать потоки предыдущего поколения с низким разрешением;

совместимость «вниз» (downward compatibility) — декодер предыдущего поколения с низким разрешением должен уметь декодировать потоки нового поколения с более высоким разрешением.

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

14.4. MPEG-2. Кодирование динамических изображений

лишь дополнительным аппаратным обеспечением декодера предыдущего поколения.

14.4.3. Масштабируемость в MPEG-2

Одной из характерных особенностей стандарта MPEG-2 является возможность иерархической структуры или масштабируемости битового потока, т. е. такого битового потока, низший уровень которого (базовый поток) может быть декодирован независимо от остального потока. Масштабируемый битовый поток может быть декодирован маломощным декодером за счет ухудшения разрешения и качества изображения. В стандарте MPEG-2 предусмотрены четыре основных вида масштабируемости, а также их различные сочетания.

При пространственной масштабируемости (Spatial Scalability) генерируются два (или более) потока с различным разрешением кадров. Базовый поток имеет низкое разрешение, полученное, как правило, передискретизацией, а дополнительный — высокое. Кодирование базового потока может осуществляться как стандартным способом MPEG-2, так и в соответствии со стандартом MPEG-1, что позволяет реализовать потоки, которые могут обрабатываться декодерами MPEG-1. Базовый поток достраивается до полного разрешения интерполирующим фильтром и используется также для формирования предсказаний в дополнительном потоке.

На рис. 14.12 приведена блок-схема кодера с двумя масштабами пространственного разрешения [5.60].

В случае использования масштабируемости по отношению сигнал/шум (Signal to Noise Ratio — SNR Scalability) генерируются два (или более) потока с одинаковым разрешением, но с разным качеством изображения. Например, базовый поток содержит достаточно грубо квантованную информацию, а расширенный поток содержит дополнительную информацию, которая при декодировании позволяет восстановить более высококачественное изображение, — разности коэффициентов ДКП базового потока и коэффициентов, полученных при использовании менее грубого квантования.

Таким образом, на выходе декодера формируются восстановленные коэффициенты ДКП по формуле:

QF [u][v] = QFбазовый[u][v] + QFрасширенный[u][v],

(14.7)

и далее поток восстанавливается обычным способом.

На рис. 14.13 и рис. 14.14 [5.60] показаны блок-схемы кодера и декодера с двумя масштабами разрешения по отношению сигнал/шум.

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

Было обнаружено, что поскольку компенсация движения для базового уровня осуществляется с помощью кадра, который при декодировании был восстановлен с использованием информации расширенного уровня, то при декодировании только базового уровня возможны искажения движения, получившие название дрейфа. Этот дрейф остается в приемлемых пределах, если ограничивать длину GOP-последовательности N 15 и M = 3 (N — число кадров в GOP, M — количество P-кадров в GOP).

Глава14. Стандарты кодирования динамических изображений

Рис. 14.12. Блок-схема кодера с двумя масштабами пространственного разрешения

При применении временной масштабируемости (Temporal Scalability)

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

Наконец, разделение данных (Data Partitioning) — это разбиение и передача битового потока по двум или более каналам, причем более значимые данные передаются по более помехоустойчивому каналу (например, алгоритм дробит блоки размером в 64 элемента матрицы квантования на два потока: один из них состоит из низкочастотных компонентов, а другой — из высокочастотных компонентов).

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

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

14.4. MPEG-2. Кодирование динамических изображений

Рис. 14.13. Блок-схема кодера с масштабируемостью по отношению сигнал/шум

Рис. 14.14. Блок-схема декодирования потока с масштабируемостью по отношению сигнал/шум

Гибридная масштабируемость — это сочетание различных режимов масштабируемости из указанных выше.

Глава14. Стандарты кодирования динамических изображений

14.4.4. Профили и уровни

Профили и уровни позволяют определить подмножества синтаксиса и семантики стандарта и, соответственно, подмножества возможностей декодера для декодирования определенного битового потока.

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

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

иуровня. Единственное исключение из этого правила — декодер Простого профиля Главного уровня должен также иметь возможность декодировать потоки Главного профиля Низкого уровня. Битовый поток считается соответствующим профилю и уровню, если в нем не превышены допустимые диапазоны значений допустимых величин и в нем используются только разрешенные синтаксические элементы.

Встандарте определены пять основных профилей: Простой (Simple, SP), Главный (Main, MP), Мастшабируемый по отношению сигнал/шум (SNR Scalable, SNR), Пространственно масштабируемый (Spatially scalable, Spt) и Высокий (High, HP), и четыре основных уровня: Низкий (Low, LL), Главный (Main, ML), Высокий 1440 (High 1440, H-14) и Высокий (High, HL). Кроме этих основных профилей

иуровней определены два дополнительных профиля: Многоракурсный (Multiview, MVP) и профиль 4 : 2 : 2 (4 : 2 : 2p), причем последний может сочетаться только с Главным и Высоким уровнями. Сочетание профиля и уровня обычно обозначается соответствующей аббревиатурой, например, главный профиль

иглавный уровень — MP@ML.

SP не позволяет использовать B-кадры, MP реализует все основные черты MPEG-2, начиная от СIF формата MPEG-1 до телевидения высокой четкости (HDTV), но без масштабируемости.

Профиль 4 : 2 : 2 может обеспечить более высокое качество видео, лучшее разрешение цветности, он позволяет использовать более высокие скорости потока, чем MP@ML. Хотя 4 : 2 : 2P@ML не является частью иерархии профилей и уровней, 4 : 2 : 2P@ML декодер должен декодировать все битовые потоки, которые может декодировать MP@ML-декодер. Этот профиль обычно используется в приложениях, в которых требуется несколько циклов кодирования–декодирования, при этом деградация изображения незначительна.

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

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

14.4. MPEG-2. Кодирование динамических изображений

Таблица 14.2. Уровни главного профиля MPEG-2

 

 

 

Частота

Битовый по-

Размер

Диапазон

Уровень

Размер кадра

видеобуфе-

векторов

кадров, Гц

ток, Мбиты/с

 

 

 

ра, Мбиты

движения

 

 

 

 

 

Низкий (LL)

352

× 288

30

4

0,475

−64. . . +63,5

Главный (ML)

720

× 576

30

15

1,835

−128. . . +127,5

Высокий 1440

1440

× 1080

60

60

7,340

−128. . . +127,5

Высокий (HL)

1920

× 1080

60

80

9,781

−128. . . +127,5

Концепция профилей и уровней помогает реализации масштабируемости в стандарте MPEG-2. Каждый из уровней определяет предельные значения основных параметров битового потока. В качестве примера в табл. 14.2 приведены параметры уровней Главного профиля (MP).

14.4.5. Транспортный и программный потоки MPEG-2

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

Транспортный поток спроектирован таким образом, что некоторые операций над транспортным потоком возможны с минимальными затратами. Среди них:

выделение кодированных данных одной программы в транспортном потоке, их декодирование и представление результата;

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

извлечение транспортных пакетов одной или более программ из одного или более транспортного потока и организация другого транспортного потока;

извлечение содержания одной программы из транспортного потока и организация программного потока, содержащего эту одну программу;

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

Транспортный поток MPEG-2 состоит из двух слоев: системного слоя и слоя компрессии.

Входной поток декодера транспортного потока имеет системный слой, «обернутый» вокруг слоя сжатия. Входные потоки видео- и звукового декодеров имеют только слой сжатия.

Операции, которые проводит декодер транспортного потока, применяются либо ко всему транспортному потоку MPEG-2 (общие операции), либо к отдельным элементарным потокам (потоковые операции).

Транспортный системный слой MPEG-2 подразделяется на два подуровня, один — для общих операций (уровень транспортных пакетов) и другой — для потоковых операций (уровень ПЭП-пакетов).

Возможно и разумно преобразование между различными типами и конфигурациями потоков MPEG-2. Есть специальные поля, определяемые синтаксисом

Глава14. Стандарты кодирования динамических изображений

программного и транспортного потоков, которые облегчают эти преобразования. Не требуется, чтобы специальные реализации демультиплексоров и декодеров включали все эти функции.

Транспортный поток MPEG-2 может быть построен любым методом, который в результате даст правильный поток. Возможно строить транспортные потоки, содержащие одну или более программ, из элементарных потоков кодированных данных, из программных потоков или из других транспортных потоков, которые могут сами содержать одну или более программ.

Типичный системный декодер программного потока принимает программный поток MPEG-2, извлекает из потока временную информацию (информацию о временной синхронизации), демультиплексирует поток, и полученные таким образом элементарные потоки поступают на видео- и звуковой декодеры, которые на выходе дают видео- и звуковой сигналы.

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

Программный поток MPEG-2 состоит также из двух слоев: системного слоя и слоя сжатия. Входные потоки видео- и звукового декодеров имеют только слой сжатия.

Операции, осуществляемые декодером программного потока, применяются либо ко всему программному потоку MPEG-2 (общие операции), либо к отдельным элементарным потокам (потоковые операции). Системный слой программного потока MPEG-2 подразделяется на два подуровня: для общих операций (слой уплотнения) и для потоковых операций (слой пакетов ПЭП).

Взаимные преобразования программного и транспортного потоков

Такие преобразования двух типов потоков MPEG-2 возможно и разумно осуществлять с помощью пакетированных элементарных потоков (ПЭП).

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

Другая важная для преобразования информация, а именно зависимость между элементарными потоками, имеется в таблицах и заголовках обоих потоков.

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

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

Часть преобразования элементарного потока в программный поток или транспортный поток это — промежуточное преобразование в пакетированный элементарный поток (ПЭП).

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

14.4. MPEG-2. Кодирование динамических изображений

Модель синхронизации

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

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

Условный доступ

Шифрование и кодирование для условного доступа к программам, включенным в программный или транспортный поток, поддерживается на системном уровне. Механизм условного доступа не специфицируется стандартом. Потоки спроектированы так, чтобы было возможно создать систему с условным доступом, несколько синтаксических элементов потока обеспечивают поддержку таких систем.

Общие операции

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

Программные потоки состоят из пакетов, заголовки которых облегчают эту задачу. Заголовки пакетов определяют необходимые времена, когда каждый байт должен попасть на вход декодера, и этот график служит указанием для коррекции часов и обслуживания буфера. Декодер не должен точно придерживаться графика, но необходимо компенсировать отклонения от него.

Аналогично транспортные потоки состоят из транспортных пакетов, заголовки которых несут информацию о временном графике декодирования.

Дополнительная общая операция — это способность декодера устанавливать, какие ресурсы требуются для декодирования транспортного или программного потока. Первый пакет программного потока передает параметры, помогающие декодеру в этой задаче. Например, передается информация о максимальной скорости потока данных и наибольшем количестве одновременно передаваемых видеоканалов. Транспортный поток также содержит такую информацию.

Программный и транспортный потоки содержат информацию, которая определяет характеристики и связи между элементарными потоками, составляющими каждую программу. Эта информация включает язык звуковых каналов и связь между потоками видео при многоуровневом кодировании видеоинформации.

Глава14. Стандарты кодирования динамических изображений

Демультиплексирование

Потоковые операции — это демультиплексирование и синхронное воспроизведение множества элементарных потоков.

При кодировании программные потоки формируются мультиплексированием элементарных потоков, транспортные потоки формируются мультиплексированием элементарных потоков, программных потоков или содержания других транспортных потоков.

Элементарные потоки могут включать конфиденциальные, зарезервированные или добавочные потоки в дополнение к звуковым и видеопотокам MPEG-2.

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

В программном потоке пакеты как фиксированной, так и переменной длины допустимы. Для транспортного потока длина пакета равна 188 байтов.

Длина пакета ПЭП-не определяется стандартом, но обычно выбирается достаточно большой.

При декодировании требуется демультиплексирование для воссоздания элементарных потоков из мультиплексированного программного потока. Это возможно благодаря наличию следующей информации:

идентификационного кода потока в заголовке пакета программного потока,

идентификационного кода пакета,

идентификационной таблицы транспортного потока.

Синхронизация

Синхронизация нескольких элементарных потоков производится с помощью временных меток в программном и транспортном потоках. Временные метки обычно выражены в единицах 90 кГц, но ссылки на системные часы (SCR), ссылки на программные часы (PCR) и ссылки на часы элементарного потока имеют уточнение в единицах 27 МГц.

Информация о синхронизации содержится в нескольких полях данных. Эта информация кодируется как дискретизированное значение системного времени. Значение частоты системных часов f (в Гц) должно удовлетворять ограничению:

(27 000 000 − 1350) f (27 000 000 + 1350).

Скорость изменения частоты системных часов 75 · 10−3 Гц/сек. Декодирование N элементарных потоков синхронизируется с помощью под-

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

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

Так как временные метки для воспроизведения (PTS) используются при декодировании отдельных элементарных потоков, они присутствуют на уровне паке-

14.4. MPEG-2. Кодирование динамических изображений

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

Синхронизация декодера с источником данных достигается с помощью использования системных часов SCR в программном потоке и эквивалентных им программных часов PCR в транспортном потоке. SCR и PCR — временные метки, кодирующие временную синхронизацию битового потока на той же временной базе, которая используется для звуковых и видео-PTS этой же программы.

Приложения

Потоки, определенные в стандарте, спроектированы так, чтобы они были наиболее удобны для множества приложений. Разработчики приложений должны просто выбрать наиболее подходящий поток.

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

Для приложений, работающих в условиях отсутствия ошибок, программный поток более удобен, чем транспортный. Мультимедиаприложения на CD-ROM попадают в эту категорию.

Структура и параметры кодирования программного потока

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

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

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

Данные элементарных потоков сохраняются в ПЭП-пакетах. ПЭП-пакет состоит из заголовка, за которым следуют данные. Заголовок ПЭП-пакета начинается со стартового кода, который также идентифицирует, к какому потоку принадлежит пакет. Заголовок пакета может содержать метки времени декодирования и/или воспроизведения, которые относятся к первой единице доступа, входящей в пакет.

Данные пакета содержат переменное количество байтов одного элементарного потока.