Presented the coding standard MPEG-4 video.Examined The principle of operation of motion compensation, given the major disadvantages of the using algorithms of appearance macroblock motion vector and offered the method of eliminating these drawbacks.
Key words:MPEG-4 standard, interframe compression, encoding in the MPEG-4, MPEG-4 encoder, frame compression.
Появление цифрового способа съемки видео началось с 80-х годов. Видеоинформация тогда была несжатая, чистая, требовавшая носителей информации огромных объемов и ресурсов воспроизводящих систем для проигрывания и хранения данных. Сегодня мы почти уже не имеем проблем, связанных с нехваткой объема хранимой информации на носителях, поскольку нынче существуют различные способы кодирования видеоинформации. Но все это еще не говорит, что любое кодированное видео может быть восстановлено декодерами с высокой точностью.
В процессе кодирования видеосигнала, поток видеоинформации непрерывно анализируется специальными программными средствами, и ненужные фрагменты данных попросту отсекаются, что помогает значительно уменьшить объем видеофайла.
Существует два вида сжатия видеоинформации: покадровое (внутрикадровое) и межкадровое (межполевое) кодирование.
Покадровое сжатие обрабатывает каждый кадр видеозаписи как отдельное неподвижное изображение, на подобии фотографии в jpeg-формате. Данная технология отличается хорошим качеством видео, однако уменьшение размера видеофайла незначительное из-за того, что сохраняются все кадры, даже если не происходит изменений в изображении на протяжении десятка, а то и сотни кадров. Иными словами, из ста одинаковых фотографий сохраняются все сто, а не одна.
Межкадровое сжатие работает по полярно противоположному принципу: при обработке сигнала, анализируется весь кадр, но сохраняются только ключевые изменения из кадра в кадр, как в мультипликации, когда нужно показать движение объекта, но фон заднего плана и окружающая объект обстановка одни и те же. Это позволяет существенно уменьшить размер видеофайла по сравнению с принципом внутрикадрового сжатия [1,2].
В стандарте MPEG-4 используется межкадровое сжатие. При этом передаются только изменяющие свое состояние, размеры и форму детали. Это позволяет существенно уменьшить размер видеофайла, но в некоторых случаях приводит к незначительной потере информации. Понять смысл межкадрового кодирования можно исходя из рисунка 1.
Рис.1. Понятие работы межкадрового кодирования в стандарте MPEG-4
По блочной схеме кодера (рис.2), рассмотрим порядок сжатия данных по стандарту MPEG-4.
Рис.2. Блочная схема кодера по стандарту MPEG-4
На вход видеокодера поступает входной кадр. Текущий входной кадр сравнивается со ссылочным кадром (блок оценки движения), в качестве которого может быть взят предыдущий закодированный кадр. Несколько предыдущих закодированных кадров хранятся в ЗУ (запоминающем устройстве). Функция оценки движения находит на ссылочном кадре макроблок, наиболее похожий на выбранный макроблок текущего кадра и смещение текущего макроблока относительно макроблока на ссылочном кадре фиксируется в виде вектора движения. Затем функция компенсации движения строит кадр-прогноз на основе найденного вектора движения и ссылочного кадра, взятого из ЗУ. Далее кадр-прогноз вычитается из текущего кадра. Их разность называется остаточным кадром.
Кадр-остаток поблочно преобразуется с помощью дискретного косинусного преобразования ДКП, после чего каждый блок квантуется. Далее сигнал поступает на вход буферного запоминающего устройства, которое оценивает поток видеоданных. На выходе буферного устройства получается сжатый поток битов.
Помимо кодирования, схема также обеспечивает реконструкцию данных. Она нужна для того, чтобы в кодере использовался точно такой же ссылочный кадр, как и в декодере. В таком случае в декодере не будут возникать дрейфы ошибок от изображения к изображению.
При реконструкции данных, к каждому квантованному макроблоку применяется деквантование и обратное косинусное преобразование. Кадр с компенсированным движением (кадр-прогноз) складывается с полученным остаточным кадром, в результате получается реконструированный кадр,который записывается в ЗУ. Так как процесс квантования необратим, он вносит искажения, и реконструированный кадр не совпадает с текущим.
Объем передаваемой информации сильно снижается за счет кодирования не каждого целого кадра последовательности видеоданных, а разности между кадрами. Энергия остаточного кадра много меньше энергии последовательности видеоданных- это видно на рисунке 3.
Рис. 3. Кадры видеопоследовательности и их разность
На рисунке 3 нейтральный серый цвет соответствует нулевым разностям пикселей, а более яркий или более темный оттенок серого цвета соответствует положительным или отрицательным разностям. Применение компенсации движения позволяют еще больше уменьшить энергию остаточного кадра.
Поскольку движение объектов на видеосцене сконцентрировано вдоль блоков пикселей 16х16, то использование изменяющихся размеров блоков для компенсации и оценки движения принесет хорошую эффективность.
В иных случаях хорошее прогнозирование компенсации движения можно сделать на базе интерполированных (промежуточных) положений сэмплов на ссылочном кадре. Подпиксельный анализ и компенсация движения применяет при отыскании интерполированные пиксельные позиции вместе с целыми позициями. Кодер ищет позицию, обеспечивающее наилучшее совпадение макроблоков (т. е. минимизирует энергию остатка) на основе целых и дробных значений позиций для анализа компенсированного движения.
Рисунок 4 объясняет оценку движения с четвертьпиксельной точностью. На первой стадии отыскивается лучшее совпадение текущего макроблока по целочисленной решетке сэмплов (круги). Затем кодер делает поиск по позициям полупикселов сразу после найденной позиции (квадраты) в целях улучшения совпадения, а затем, если необходимо, совершает поиск с шагом в четверть пиксела (треугольники) для нахождения еще лучшего совпадения. Потом делается вычитание из текущего блока или макроблока его наилучшего прогноза, смещение (вектор компенсации движения) которого может быть кратно целым, половинам или четвертям пикселов.
Рис. 4. Четвертьпиксельная интерполяция
Принимая во внимание, малая интерполяция дает отличные показатели компенсации движения, но при значительном повышении объема вычислений.Отыскание годных блоков 4 х 4 с интерполяцией по четвертьпикселам является трудным вопросом по аналогии с использованием блоков 16 х 16 без интерполяции. Кроме значимого возрастания сложности расчетов требуется расплачиваться огромным числом векторов движения для будущей реконструкции изображения. Во время уменьшений размеров блоков, требуется передавать больше векторов. Помимо вышесказанного, еще больше требуется использовать больше битов при представлении векторов по полупикселам и четвертьпикселам.
В любых кодерах, насколько они не были эффективны, все же существует ошибка нахождения векторов движения. Это хорошо видно из рисунка 5.
Рис. 5. Ошибочно найденные векторы движения
На неподвижном фоне падающего «объекта» проявляются векторы движения при смещении макроблоков фона, равном нулю. Этот минус при кодировании будет отрицательно сказываться на сжатии видеоинформации.
Рассмотрим частотно-контрастные характеристики телевизионной камеры без применения коррекции (рис.6).
Рис. 6. Частотно-контрастная характеристика телевизионной камеры
Рисунок 6 наглядно показывает, что основная энергия сосредоточена в области низких частот. На высоких частотах, как известно из курса схемотехники, на любые радиотехнические устройства влияют сильные шумы. Поэтому мы наблюдаем спад ЧКХ при увеличении частоты, что приводит к уменьшению четкости при наличии шумов [3].
Пространственные частоты изображения отражают коэффициенты косинусного преобразования, которое использует блоки, например, 8х8. Прямое преобразование FDCT (Forward DCT), примененное к блоку X размером NхN, задается следующей формулой:
, (1)
где X — это матрица сэмплов, У— матрица коэффициентов, а А — NхN матрица преобразования.
Элементы матрицы А можно найти по формуле:
,(2)
где , при i=0; , при i0.
Выражения для Х и Y можно переписать в виде сумм (3) и (4):
; (3)
. (4)
Выходом двухмерного FDCT служит матрица 8х8 коэффициентов, которая представляет блок сэмплов изображения в области преобразования DCT. Как видно из рисунка 7, ненулевые коэффициенты DCT обычно образуют кластер вокруг левого верхнего коэффициента с примерно симметричным распределением вдоль диагонали блока. Левый верхний коэффициент — отражает постоянную составляющую (DC), правый нижний — самую высокую пространственную частоту.
Рис. 7. Коэффициенты дискретно-косинусного преобразователя
Следовательно, для исключения ошибок в нахождении векторов движения требуется искать вектора, начиная с низкочастотной области. Именно в этой области отношение сигнала к шуму много выше, чем в высокочастотной области. С увеличением частоты, будут и увеличиваться шумы, что приведет к увеличению ошибочных векторов движения. Но в данном случае отклонение будет не более чем на 8 элементов изображения, что не сильно скажется на увеличении ошибок. Этот принцип оценки движения может быть принят в последних версиях стандарта кодирования MPEG-4.
Литература:
- Электронное ресурс, сайт: http://vidimost.com/shkola-videonabludeniya/statiy-o-videonabludeniy/kodirovanie-i-szhatie-tsifrovogo-videosignala/, дата обращения:11.01.2016г.
- Электронный ресурс, сайт: http://www.spycams.ru/articles/kodirovanie-i-sjatie-cifrovogo-videosignala, дата обращения:11.01.2016г.
- А. Н. Куликов, Журнал «Специальная Техника»,№ 2, 2002г.(http://www.bnti.ru/showart.asp?aid=573&lvl=19.01.01.&p=3 %E5).
- И. В. Власюк., «Метод контроля пространственных характеристик телевизионных камер». Метрология и измерительная техника в связи. — 2005, — № 6. — С.13–16.
- Ватолин Д., Ратушняк А., «Методы сжатия данных. Устройство архиваторов, сжатие изображений и видео». — М.: ДИАЛОГ-МИФИ, 2003, 384 с.;
- Ян Ричардсон, перевод с англ. Чепыжова В. В. «Видеокодирование. Н.264 и MPEG-4 –стандарты нового поколения», Москва: Техносфера, 2005, 368 с.;