
- •1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 I bbpbbpbbpbbpbbi вврв
- •Макроблоки
- •Поток видеоданных mpeg-2
- •Декодер видеоинформации
- •Масштабируемость
- •Уровни и профили mpeg-2
- •Отличия mpeg-1 и mpeg-2
- •Психоакустическая модель
- •Стандарт кодирования видео- и звуковой информации mpeg-4
- •Объекты и сцены
- •Кодирование видеообъектов
Лекция 14
Тема: Стандарты сжатия изображения и звука
Учебные вопросы:
-
Сжатие изображения.
-
2. Сжатия звука
Стандарты сжатия движущихся изображений MPEG (Motion Picture Experts Group) вырабатываются и принимаются имеющей такое же название группой экспертов при Международной организации стандартизации ISO. Стандарт MPEG-1, используемый в основном при записи видеопрограмм на компакт-диски, был окончательно утвержден в 1993 г. [5-7], а стандарт MPEG-2, предназначенный в первую очередь для телевизионного вещания, был принят в ноябре 1994 г. [8-10].
Стандарты MPEG-1 и MPEG-2 имеют много общего, но между ними есть и различия. В данном разделе в основном излагается содержание стандарта MPEG-2, и указываются его отличия от MPEG-1.
Вопрос №1
Кодирование и декодирование движущихся изображений
Метод кодирования движущихся изображений, используемый в стандартах MPEG-1 и MPEG-2, называется гибридным, так как в нем сочетаются внутрикадровое (intraframe) кодирование, направленное на уменьшение в основном психофизиологической избыточности в отдельных кадрах, и межкадровое (interframe) кодирование, с помощью которого уменьшается избыточность, обусловленная межкадровой корреляцией [6, 9]. Использование меж-кадрового кодирования позволяет получить существенно большую степень сжатия движущегося изображения, чем при раздельном сжатии отдельных кадров по методу JPEG.
Внутрикадровое кодирование содержит операции, аналогичные используемым в методе JPEG, т. е. поблочное дискретное косинусное преобразование, квантование и кодирование с переменной длиной кодовых слов. Межкадровое кодирование содержит операции оценки и компенсации движения и кодирования с предсказанием. Сущность этих операций, взятых по отдельности, была изложена в § 3.4 и 3.5.
Целые кадры и фрагменты кадров могут кодироваться с применением совместно межкадрового и внутрикадрового кодирования (для краткости этот случай далее называется просто межкадровым кодированием) или только с применением внутрикадрового кодирования.
ГРУППЫ ИЗОБРАЖЕНИЙ
Изображением (picture) в стандартах MPEG-1, MPEG-2 может быть как целый кадр, так и одно из полей кадра. Далее для упрощения изложения термин "кадр" используется вместо термина "изображение" везде за исключением подраздела, в котором специально говорится о кадровом и полевом режимах кодирования.
Последовательность кадров делится на группы, называемые GOP (group of pictire). В группе есть кадры трех типов:
-
I-кадры (Intraframe - внутрикадровые), которые передаются только с внутрикадровым кодированием и являются опорными для декодирования остальных кадров группы, обеспечивая возможность начала декодирования и воспроизведения принятого ТВ-сигнала практически в любой момент времени;
-
Р-кадры (Predictive - предсказанные), при передаче которых используется межкадровое кодирование путем предсказания с компенсацией движения по ближайшему предшествующему 1-кадру или Р-кадру (как будет пояснено далее, некоторые фрагменты Р-кадра могут кодироваться без предсказания с помощью внутри-кадрового кодирования);
-
В-кадры (Bidirectional - двунаправленные), которые передаются с межкадровым кодированием путем предсказания с компенсацией движения по ближайшим к ним как спереди, так и сзади I-кадрам и Р-кадрам, а сами не могут использоваться для предска-
зания
других кадров (некоторые фрагменты
В-кадра могут кодироваться
внутрикадровым методом).
Рассмотрим пример последовательности кадров.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 I bbpbbpbbpbbpbbi вврв
Здесь кадры с 1 по 15 образуют группу кадров. Число кадров в группе может быть и другим, но она всегда начинается с 1-кадра. Р-кадр 4 предсказывается по 1-кадру 1, Р-кадр 7 - по Р-кадру 4, Р-кадр 10 - по Р-кадру 7 и т.д. 1-кадр 16 передается с внутрикадровым кодированием независимо от всех предшествующих ему кадров. В-кадры 2 и 3 предсказываются по 1-кадру 1 и по Р-кадру 4, В-кадры 5 и 6 - по Р-кадрам 4 и 7 и т.д. В-кадры 14 и 15 предсказываются по 1-кадру 16 и по Р-кадру 13. Перед кодированием порядок следования кадров изменяется, так как каждый В-кадр должен идти после обоих кадров, по которым он предсказывается.
1 4 2 3 7 5 6 10 8 9 13 11 12 16 14 15 19 17 18 22 I PBBPBBPBBPBBI BBPBBP
В таком порядке кадры кодируются и передаются, а в процессе декодирования восстанавливается исходный порядок кадров.
Макроблоки
Макроблоком называется квадратный фрагмент изображения размером 16x16 элементов (пикселов). Макроблок содержит информацию как о яркости (Y), так и о цветности (Св, CR). В случае использования формата дискретизации 4:2:0 каждый макроблок содержит четыре блока 8x8 элементов сигнала яркости У и по одному блоку 8x8 элементов цветоразностных сигналов Ск и С в- При использовании формата 4:2:2 каждый макроблок содержит при том же количестве блоков Y по два блока CR и Св, а при использовании формата 4:4:4 - по четыре блока CR и Св.
Группа следующих друг за другом макроблоков называется слайсом (slice - доля, часть, квант). Число макроблоков в слайсе может быть произвольным. Слайсы в изображении не должны перекрываться, но их положение может изменяться от одного изображения к другому.
ПРОГРЕССИВНАЯ И ЧЕРЕССТРОЧНАЯ РАЗВЕРТКИ
При кодировании телевизионного изображения, передаваемого с прогрессивной разверткой, каждый кадр состоит из одного поля и разбивается на макроблоки.
В случае чересстрочной развертки каждый кадр состоит из двух полей. Первое поле содержит нечетные строки кадра, а второе поле - четные строки. При этом возможны два варианта кодирования кадра, выбор одного из которых для данного кадра осуществляется на основе оценки движения в нем.
В случае кадрового кодирования (frame) кодируемым изображением является полный кадр, который целиком хранится в ЗУ ко-• дера, вследствие чего для кодирования одновременно доступны как четные, так и нечетные строки. Блоки элементов сигнала яркости и блоки элементов цветоразностных сигналов для форматов 4:2:2 и 4:4:4 выделяются из макроблока, как это показано на рис. 4.3,а, где заштрихованными показаны нечетные строки, а не заштрихованными - четные. В случае формата 4:2:0 в блоки цветоразностных сигналов берутся элементы из каждой второй строки. Кадровое кодирование выбирается в случаях, когда изменения во втором поле кадра относительно первого поля того же кадра незначительные.
Рис. 4.3. Формирование блоков при чересстрочной развертки в случаях кадрового (а) и полевого (б) режимов
В случае полевого кодирования (field) кодируемым изображением является каждое поле. Первое поле кадра может использоваться для предсказания макроблоков второго поля того же кадра. При этом в каждый блок элементов сигнала яркости или элементов цветоразностных сигналов для форматов 4:2:2 и 4:4:4 входят элементы из одного поля, как это показано на рис. 4.3,6. Блоки элементов цветоразностных сигналов для формата 4:2:0 образуются также, как при кадровом кодировании.
Как уже указывалось, при описании работы кодера и декодера говорится о кадровом кодировании, но следует помнить, что существует и полевое кодирование.
КОДЕР ВИДЕОИНФОРМАЦИИ
В стандартах MPEG не описано построение кодера, а лишь определен синтаксис потока данных на его выходе. Структурная схема кодера видеоинформации (рис. 4.4) отображает основные операции, выполняемые при кодировании и обеспечивающие получение выходного потока данных с требуемыми параметрами.
Рис. 4.4. Структурная схема видеокодера MPEG-2
На схеме обозначены ДКП - блок прямого дискретного косинусного преобразования; ДКП-1 - блок обратного дискретного косинусного преобразования; Кв - квантователь; Кв~' - декванто-ватель, т. е. блок, выполняющий обратную квантованию операцию; 102
IЗУ - запоминающее устройство; Пред - блок, выполняющий формирование предсказанного кадра; ОД - блок оценки движения ; формирования векторов движения; КПДС - блок, в котором вы-олняется кодирование с переменной длиной кодового слова; Мп -ультиплексор; БЗУ - буферное запоминающее устройство; УКС -блок управления коэффициентом сжатия изображения. Кроме того, на схеме показаны сумматор, вычитающее устройство и переключатель. Работа всех блоков синхронизируется общей тактовой частотой 27 МГц.
В кодере реализуются два режима кодирования: внутрикад-ровое кодирование (переключатель в положении 1) и межкадровое кодирование с предсказанием и компенсацией движения (переключатель в положении 2).
Все макроблоки I-кадров кодируются в режиме внутрикадро-вого кодирования. Метод аналогичен JPEG: разложение на блоки 8x8 пикселов, поблочное ДКП, квантование полученных коэффициентов в соответствии с формулой (4.1), считывание в зигзагообразном порядке, кодирование с переменной длиной кодовых слов. При квантовании могут использоваться, например, табл. 4.1 и 4.2. В случае использования нестандартных таблиц коэффициентов квантования они включаются в общий выходной поток данных.
Кодирование с переменной длиной кодовых слов осуществляется с помощью таблиц кодов, имеющихся в стандарте. Как и в JPEG, коэффициенты ДКП, соответствующие постоянным составляющим, кодируются с использованием предсказания по таким же коэффициентам предыдущих блоков, и для них предназначены отдельные таблицы кодов с переменной длиной кодовых слов. Отметим, что в тексте стандартов нет термина "кодирование по Хаф-фмену". Видимо это связано с тем, что таблицы кодов заданы в стандарте, а не вычисляются под конкретные данные, как это требуется при кодировании по Хаффмену.
Макроблоки Р-кадров могут кодироваться как внутрикадро-вым методом, так и межкадровым в зависимости от наличия и интенсивности изменений в этом макроблоке по сравнению с соответствующей областью изображения, по которому выполняется предсказание данного Р-кадра, т. е. в зависимости от результатов оценки движения.
Изображение, по которому выполняется предсказание, формируется из кодированных данных предыдущего I- или Р-кадра.
В деквантователе данные умножаются на коэффициенты квантования, затем выполняется обратное ДКП так же, как это делается в декодере в приемной части системы, после чего декодированное изображение записывается в ЗУ. Как было показано в § 3.5, использование обратной связи при получении данных для предсказания позволяет избежать накопления ошибок квантования. Для реализации всех возможных вариантов предсказания ЗУ должно содержать несколько (как минимум 4) предыдущих кадров.
Оценка движения осуществляется путем сравнения текущего изображения, поступающего на вход кодера, с изображением, находящимся в ЗУ и используемым для предсказания (опорным изображением). Эта процедура поясняется рис. 4.5,а. Для каждого макроблока кодируемого изображения отыскивается, как это было описано в § 3.4, соответствующая ему область А1 размером 16x16 элементов в опорном изображении. Положение соответствующей области определяется с точностью до половины пиксела по обеим координатам.
Рис. 4.5. Получение предсказанного макроблока в Р-кадре (а) и в В-кадре (б).
Если в области поиска не найдена соответствующая область, отличие которой от данного макроблока не превышает установленной величины, то этот макроблок кодируется во внутрикадровом режиме аналогично макроблокам 1-кадров.
Если соответствующая область А1 найдена, то макроблок кодируется в межкадровом режиме, и для него определяется вектор движения V1. Векторы движения кодируются с переменной длиной кодовых слов и через мультиплексор включаются в общий поток данных.
Если для макроблока выбран межкадровый режим кодирования, то формируется предсказанный макроблок (Предск.МБ), в качестве которого берется найденная соответствующая область А1 из , опорного изображения. Предсказанный макроблок поэлементно i вычитается из настоящего макроблока. Полученный разностный \ макроблок (ошибка предсказания) проходит поблочное ДКП, кван-j; тование и кодирование с переменной длиной кодовых слов. Мат-| рица коэффициентов квантования для ошибок предсказания со-| держит 64 числа 16 и используется для квантования как яркостных, |, так и цветоразностных составляющих.
Для макроблоков В-кадров поиск соответствующей области осуществляется как в предшествующем I- или Р-кадре так и в последующем Р-кадре (рис. 4.5,6). В зависимости от результатов поиска соответствующей области возможны следующие варианты:
-
макроблок кодируется во внутрикадровом режиме;
-
формируется предсказанный макроблок в виде соответст-I вующей области А1 предыдущего I- или Р-кадра;
-
формируется предсказанный макроблок в виде соответствующей области А2 последующего Р-кадра;
-
формируется предсказанный макроблок в виде поэлементной полусуммы соответствующей области А1 предыдущего I- или Р-кадра, и соответствующей области А2 последующего Р-кадра, т. е. в виде результата интерполяции по этим областям.
В последних трех вариантах макроблок кодируется в межкадровом режиме, как это было описано для Р-кадров. В случае предсказания путем интерполяции для макроблока необходимо передавать два вектора движения VI и V2, показывающие положения соответствующих областей в предыдущем и в последующем кадрах.
При кодировании телевизионных изображений с чересстрочной разверткой возможны два основных варианта предсказания: полевой и кадровый. При полевом предсказании макроблоки каждого поля предсказывается независимо от другого поля этого кадра, и для формирования предсказанного макроблока используются данные одного или двух ранее кодированных полей. При кадровом предсказании для формирования предсказанного макроблока используются данные, содержащиеся в обоих полях одного или двух ранее кодированных кадров. Помимо этого стандарт предусматривает дополнительные режимы предсказания при чересстрочной развертке.
Кроме того, стандарт позволяет пропускать некоторые макроблоки при кодировании (skipped macroblock). Для таких макроблоков никакие данные не передаются. Этот вариант используется, если кодируемый макроблок не имеет отличий от соответствующего макроблока в опорном изображении.
Описанный способ кодирования телевизионного сигнала и называется кодированием с предсказанием и компенсацией движения. Выигрыш в сжатии изображения достигается благодаря тому, что разности действительных и предсказанных макроблоков Р- и В-кадров содержат значительно меньше информации, чем сами эти макроблоки. При этом для В-кадров объем передаваемой информации будет наименьшим, так как при двунаправленном предсказании ошибка предсказания минимальна.
Кодированные видеоданные и векторы движения через мультиплексор поступают в БЗУ, работающее по принципу "первым вошел - первым вышел".
Одна из функций БЗУ - согласование неравномерного во времени потока данных после кодирования со строго постоянной скоростью передачи двоичных символов при выполнении кодирования в реальном времени. Неравномерность потока данных, поступающих в БЗУ, обусловлена в первую очередь наличием разных типов кадров. Считывание данных из БЗУ осуществляется с постоянной скоростью. Степень заполненности БЗУ колеблется во времени, возрастая при увеличении потока поступающих на него данных и снижаясь при уменьшении этого потока.
Помимо различия типов кадров на степень заполнения буфера может влиять характер передаваемого изображения. Если в изображении много мелких деталей, возрастает количество и уровень
высокочастотных составляющих пространственно-частотного спектра, т. е. количество отличных от нуля коэффициентов ДКП. Это приводит к увеличению потока данных. При передаче же "гладких" изображений количество отличных от нуля коэффициентов ДКП уменьшается, так как пространственно-частотный спектр изображения имеет в основном низкочастотные составляющие.
Для оптимизации работы системы желательно поддерживать уровень заполнения БЗУ приблизительно постоянным. Если БЗУ переполняется, то, очевидно, будет происходить потеря части данных, т. е. ухудшение качества изображения на выходе системы. Если же БЗУ полностью освобождается, то по каналу связи приходится передавать "пустые" блоки, что приводит к снижению эффективности его использования. Чтобы избежать обоих нежелательных случаев, в кодере изображения введена обратная связь с БЗУ на блок УКС, управляющий степенью сжатия изображения.
Сущность действия этой обратной связи заключается в следующем. Если передается мелкоструктурное изображение, и заполнение БЗУ увеличивается, то под воздействием обратной связи увеличивается параметр квантования коэффициентов ДКП [см. формулу (4.1)]. При этом число бит на каждый коэффициент уменьшается, и уровень потока данных поддерживается примерно постоянным. Наоборот, при передаче "гладких" изображений квантование становится более точным. Такой метод соответствует свойствам человеческого зрения: на мелкоструктурных изображениях менее заметны неточности в передаче уровней яркости, так как в первую очередь воспринимаются контуры деталей. Изменение параметра квантования может осуществляться или после кодирования каждого кадра с учетом его типа, или в пределах одного кадра после кодирования каждого слайса. Данные о параметре квантования включаются в общий поток данных в заголовки слайсов.