
Режимы кодера
Возможны два основных режима работы кодера компрессии – с постоянной скоростью потока данных и с постоянным уровнем качества декодированного изображения. Как же можно регулировать скорость потока? Возможность для управления степенью компрессии и скоростью потока данных предоставляет изменение параметров матрицы квантования: чем более грубое квантование, тем больше нулевых значений в матрице коэффициентов и тем меньше объем данных, необходимых для передачи информации об изображении. Однако с увеличением степени компрессии растут и необратимые искажения изображения из-за шумов квантования. В режиме с постоянным качеством используется фиксированная матрица квантования. Но при этом скорость потока компрессированных данных является переменной. Чем больше детальность изображения, чем быстрее перемещается объект в поле изображения, тем больше количество ненулевых коэффициентов в матрице коэффициентов косинусного преобразования, тем больше объем данных и выше скорость потока данных. Как получить приемлемое качество в таких условиях?
Например, можно выполнять компрессию в два прохода. На первом проходе находятся параметры компрессии, обеспечивающие максимальное качество при фиксированном объеме дискового пространства. На втором – производится компрессия с найденными параметрами. Есть еще одна возможность улучшения качества при записи фрагментов программы с быстро перемещающимися объектами. На стадии предварительного просмотра оператор может найти такие интервалы и пометить их с целью принудительного размещения в них изображений типа I, что позволяет улучшить качество при кодировании таких «трудных» для компрессии сцен. Эти методы используются при записи программ и фильмов на диски DVD.
Порядок передачи изображений в элементарном потоке
В результате компрессии объем данных, представляющий исходные изображения, сжимается (рис.7). Но стандарт MPEG-2 не регламентирует сам процесс кодирования, поэтому изображения (блоки представления) в нем рассматриваются как результат декодирования компрессированных изображения – блоков доступа. Использование двунаправленного предсказания приводит к тому, что декодер может приступить к декодированию изображения типа B только после того, когда уже получены и декодированы и предшествующее, и последующее опорные изображения, с помощью которых вычислялось предсказание.
Для того, чтобы не устанавливать в декодере огромные буферные массивы, в потоке данных на выходе кодера (этот поток называется элементарным потоком видеоданных) кодированные изображения следуют в порядке декодирования. Например, вместо последовательности I-B-B-P формируется серия I-P-B-B (рис.8).
Профили и уровни mpeg-2
Стандарт MPEG-2 определяет кодирование, охватывающее требования широкого круга приложений сферы производства и распределения телевизионных программ. Обобщение требований типичных и наиболее важных приложений и определило синтаксис и семантику потока видеоданных. Но для наиболее эффективного применения на практике и обеспечения высокой степени эксплуатационной совместимости устройств, работающих в рамках стандарта MPEG-2, но разработанных и изготовленных различными производителями, в рамках синтаксиса MPEG-2 выделено несколько подмножеств, называемых профилями (таблица 1).
Таблица 1. Профили и уровни стандарта MPEG-2
-
Уровень
Профили
Simple
Main
SNR
Spatial
High
422
Изображения
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
Отсчетов в строке
1920
1920
Строк в кадре
1152
1152
Кадров в секунду
60
60
Макс. скор. потока
80 Мбит/с
100 Мбит/с
High-1440
Отсчетов в строке
1440
1440
1440
Строк в кадре
1152
1152
1152
Кадров в секунду
60
60
60
Макс. скор. потока
60 Мбит/с
60 Мбит/с
80 Мбит/с
Main
Отсчетов в строке
720
720
720
720
720
Строк в кадре
576
576
576
576
608
Кадров в секунду
30
30
30
30
30
Макс. скор. потока
15 Мбит/с
15 Мбит/с
15 Мбит/с
20 Мбит/с
50 Мбит/с
Low
Отсчетов в строке
352
352
Строк в кадре
288
288
Кадров в секунду
30
30
Макс. скор. потока
4 Мбит/с
4 Мбит/с
Но и в рамках синтаксических границ каждого профиля может быть огромное количество комбинаций параметров цифрового потока. Поэтому в каждом профиле выделено несколько уровней, определяемых совокупностью ограничений, наложенных на параметры цифрового потока, подчиняющегося синтаксису профиля. Другими словами, профиль - это подмножество стандарта для специализированного применения, задающее алгоритмы и средства компрессии. Уровни внутри каждого профиля связаны главным образом с параметрами компрессируемого изображения.
Профили MPEG-2: Simple - простой профиль; Main - основной профиль; SNR - профиль с масштабируемым квантованием (SNR - Signal-to-Noise-Ratio - отношение сигнал шум); Spatial - профиль с масштабируемым пространственным разрешением
(spatial - пространственный); High - высокий профиль; 422 - студийный профиль. В комментариях нуждаются лишь несколько столбцов таблицы 1. Профиль с масштабируемым квантованием SNR поддерживает все типы изображения
На базовом уровне кодера используется обычное кодирование на основе предсказания с компенсацией движения, дискретного косинусного преобразования и квантования ошибки предсказания. Выходные данные этого кодера образуют нижний, или базовый слой цифрового потока данных. Ошибка квантования, обусловленная квантователем, кодируется (с использованием второго квантователя и кодера с переменной длиной слова) и передается в качестве верхнего слоя цифрового потока. На приемной стороне производится либо декодирование одного базового слоя, что обеспечивает приемлемое качество, либо обоих слоев, что позволяет уменьшить шумы квантования.
Профиль с масштабируемым пространственным разрешением Spatial также использует все виды изображений. Цифровой поток структурирован и имеет базовый и дополнительные слои. Профиль позволяет иметь наряду с базовым пространственным разрешением и более высокие значения, если декодировать все слои цифрового потока.
Студийный профиль 4:2:2 обеспечивает полное разрешение, соответствующее рекомендации ITU-R 601, монтаж с точностью до кадра, допускает многократные перезаписи.
Надо иметь в виду, что в таблице показаны максимально достижимые значения параметров, а не их сочетания. Например, в рамках основного уровня профиля 4:2:2 количество активных строк равно 608 для системы разложения 625 строк/25 кадров и 512 – для 525 строк/30 кадров. К настоящему времени лишь часть из возможных сочетаний профилей и уровней достаточно разработана и принята в качестве стандарта. Большинство выпускаемых в настоящее время кодеров и декодеров в интегральном исполнении относятся к основному профилю и основному уровню (MP@ML). Однако уже есть две реализации систем для основного уровня студийного профиля 4:2:2 – это система видеозаписи Betacam SX, в которой используются группы изображений из 2 кадров (I и B) при величине потока видеоданных – 18Мбит/с, и система, в которой используются только изображения типа I при скорости потока записываемых видеоданных 50Мбит/с.
Пакетный элементарный поток Системная спецификация 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). Метки времени – это механизм, обеспечивающий синхронизацию потоков данных в декодере.