- •1.1. Основные понятия
- •1.2. Понятие контекстного кодирования
- •1.3. Обзор методов цифровой видеокомпрессии
- •1.3.1. Общие идеи
- •1.3.2. Motion JPEG
- •1.3.4. MPEG-2
- •1.3.5. MPEG-4
- •1.4. Методы компенсации движения
- •1.4.1. Общие идеи
- •1.4.2. Полный перебор
- •1.4.3. Перебор соседних блоков
- •1.4.4. Трехшаговый алгоритм Koga и др.
- •1.4.5. Алгоритмы diamond search и cross-diamond search
- •1.5. Выводы
- •2. Алгоритм видеокомпрессии
- •2.1. Общая схема
- •2.2. Компенсация движения
- •2.3. Кодирование векторов движения
- •2.4. Уточняющее изображение
- •2.5. Кодирование цветоразностной информации
- •2.6. Вывод информации в битовый поток
- •3. Тестирование алгоритма
- •4. Оптимизация вычислений
Московский государственный институт электронной техники (технический университет)
Кафедра высшей математики №1
Коплович Дмитрий Михайлович
Разработка алгоритма цифровой видеокомпрессии на основе дискретного вейвлет-преобразования для программноаппаратных систем
диссертация на соискание степени магистра по направлению 552800 «Информатика и вычислительная техника», магистерская программа
552821 «Цифровая обработка сигналов»
Научный руководитель:
д.ф.-м.н., проф. Умняшкин С.В.
Москва, 2006
Содержание |
|
Введение ...................................................................................................................... |
4 |
Цель и описание диссертационной работы.......................................................... |
5 |
Постановка задачи.............................................................................................. |
5 |
Структура диссертационной работы................................................................. |
5 |
Положения, выносимые на защиту....................................................................... |
6 |
1. Сжатие статических изображений и видеосигналов........................................... |
7 |
1.1. Основные понятия ........................................................................................... |
7 |
1.2. Понятие контекстного кодирования.............................................................. |
9 |
1.3. Обзор методов цифровой видеокомпрессии............................................... |
10 |
1.3.1. Общие идеи.............................................................................................. |
10 |
1.3.2. Motion JPEG............................................................................................. |
12 |
1.3.3. H.261......................................................................................................... |
12 |
1.3.4. MPEG-2 .................................................................................................... |
13 |
1.3.5. MPEG-4 .................................................................................................... |
13 |
1.3.6. H.264......................................................................................................... |
14 |
1.4. Методы компенсации движения .................................................................. |
15 |
1.4.1. Общие идеи.............................................................................................. |
15 |
1.4.2. Полный перебор...................................................................................... |
17 |
1.4.3. Перебор соседних блоков....................................................................... |
17 |
1.4.4. Трехшаговый алгоритм Koga и др. ....................................................... |
18 |
1.4.5. Алгоритмы diamond search и cross-diamond search.............................. |
18 |
1.5. Выводы............................................................................................................ |
21 |
2. Алгоритм видеокомпрессии................................................................................. |
22 |
2.1. Общая схема................................................................................................... |
22 |
2.2. Компенсация движения................................................................................. |
23 |
2.3. Кодирование векторов движения................................................................. |
29 |
2.4. Уточняющее изображение............................................................................ |
31 |
2.5. Кодирование цветоразностной информации .............................................. |
41 |
2.6. Вывод информации в битовый поток.......................................................... |
41 |
2.7. Выводы............................................................................................................ |
42 |
|
2 |
3. Тестирование алгоритма...................................................................................... |
43 |
3.1. Общая схема тестирования........................................................................... |
43 |
3.2. Настройки кодека MPEG-2 ........................................................................... |
44 |
3.3. Настройки алгоритма..................................................................................... |
44 |
3.4. Результаты тестирования.............................................................................. |
45 |
3.5. Выводы............................................................................................................ |
56 |
4. Оптимизация вычислений.................................................................................... |
57 |
4.1. Общие направления оптимизации ............................................................... |
57 |
4.2. Лифтинг-схема для вычисления дискретного вейвлет-преобразования.. |
58 |
4.3. Оптимизация алгоритма SPIHT.................................................................... |
58 |
4.4. Выводы............................................................................................................ |
60 |
Заключение................................................................................................................ |
61 |
Литература................................................................................................................. |
62 |
Приложение. Исходные коды некоторых подпрограмм....................................... |
65 |
3
Введение
В последние годы в мире наблюдается стремление к повсеместному использованию цифровых технологий для хранения и обработки звука, изображений и видео. Цифровые носители позволяют без труда хранить записи в течение неограниченного срока, тиражировать их в любых количествах и быстро передавать на большие расстояния без потери качества.
Развивается телевидение – в настоящий момент в России более 80% региональных передающих центров принимают сигнал в цифровом виде со спутника. Ведутся работы по полному переводу (непосредственно до телезрителя) российского телевещания на цифровые технологии, что позволит в будущем быстро перейти на вещание ТВ-каналов высокой четкости, которое было бы затруднительно реализовать с применением аналоговых стандартов.
Кинофильмы на DVD практически вытеснили аналоговые видеокассеты так же, как до этого аудиокассеты уступили место компакт-дискам и записям в формате
MP3.
Важным следствием достижений в области цифровой обработки видео стало появление мобильных устройств, которые могут регистрировать, хранить и воспроизводить медиаданные.
Все это было бы невозможным без развития важного направления цифровой обработки сигналов – методов сжатия изображений и видео. Один DVD емкостью 4 гигабайта может хранить чуть больше 2 минут SD-видеозаписи (720 на 576 пикселов) без сжатия и несколько часов сжатой записи, причем невооруженным глазом разница в качестве между ними незаметна.
Одним из многочисленных специальных приложений, в которых цифровые методы сжатия видеопотока доказали свою эффективность, стали системы видеонаблюдения. Они применяются как составная часть охранных комплексов, а также в системах «умный дом». Несколько аналоговых видеомагнитофонов, в которых нужно было постоянно менять кассеты для хранения записей с камер наблюдения, можно заменить одним видеорегистратором – устройством на базе персонального компьютера, кодирующим параллельно несколько видеопотоков в
4
реальном времени и сохраняющим их в циклический архив на массиве жестких дисков.
Настоящая работа посвящена разработке алгоритма видеокомпрессии для одной из таких охранных систем. Алгоритм имеет характеристики, позволяющие использовать его для сжатия видеосигнала в реальном времени и хранения записей в архиве с приемлемой степенью сжатия.
Цель и описание диссертационной работы
Постановка задачи
Целью данной диссертационной работы являлась разработка эффективного алгоритма сжатия полутоновых и полноцветных цифровых видеоданных, основанного на использовании дискретного вейвлет-преобразования (ДВП) и межкадровой компенсации движения.
Работа посвящена решению следующих задач:
–исследование проблемы сжатия цифровых изображений и видео, анализ существующих подходов и методов ее решения, основанных на использовании ортогональных преобразований;
–реализация алгоритма видеокодека и его оптимизация;
–создание программных средств для тестирования и отладки видеокодека.
Структура диссертационной работы
Диссертационная работа изложена на 80 страницах и содержит 23 рисунка, 1 таблицу и 26 наименований использованных источников. Работа состоит из 4 глав, введения, заключения и приложения.
В первой главе диссертации приведены основные определения, связанные с компрессией статических изображений и видеосигналов, а также проведен анализ современных алгоритмов, применяемых при создании видеокодеков.
Во второй главе подробно рассмотрен предложенный алгоритм сжатия видеоданных, основанный на двухэтапной направленной блочной компенсации движения с контекстным предсказанием векторов движения на основе соседних блоков, а также на алгоритме сжатия статических изображений путем разделения множества по иерархическим деревьям (SPIHT) в области дискретного вейвлетпреобразования.
5
Втретьей главе обсуждаются полученные автором результаты исследования характеристик предложенного алгоритма и приводится их сравнение с характеристиками стандартного видеокодека MPEG-2.
Вчетвертой главе описаны методы повышения производительности системы видеокомпрессии, включающие алгоритмическую оптимизацию вычисления двумерного вейвлет-преобразования (лифтинг-схема) и программную оптимизацию алгоритма SPIHT.
Вприложении приведены исходные коды некоторых подпрограмм, входящих
всостав видеокодека.
Положения, выносимые на защиту
На защиту выносятся следующие положения:
–алгоритм кодирования видеопотока на основе двумерного ДВП и межкадровой компенсации движения;
–результаты моделирования работы предложенного алгоритма кодирования видеопотока.
6
1.Сжатие статических изображений и видеосигналов
1.Сжатие статических изображений и видеосигналов
1.1. Основные понятия
Дискретным полутоновым изображением будем называть матрицу X ,
состоящую из N строк и M столбцов, элементы которой представляют собой отсчеты функции яркости Y (u,v) монохроматического светового источника:
xkl =Y (k u ,l v ), |
(1) |
|
k = 0,1,…, N −1, l = 0,1,…M −1, |
||
|
где u , v – выбранные шаги дискретизации.
Элементы матрицы X будем называть точками изображения, или пикселами. Модель (1) описывает изображение, обладающее «фотографическими» свойствами, которые определяют его визуально полутоновый характер [1].
Цифровым изображениям соответствуют очень большие объемы данных. Это ставит перед разработчиками программно-аппаратных средств обработки изображений ряд серьезных проблем. Требования быстрой передачи данных или их полной регистрации вступают в противоречие с техническими характеристиками используемой аппаратуры: недостаточной емкостью запоминающих устройств, ограниченной пропускной способностью каналов передачи данных, недостаточным быстродействием вычислительных машин и т.д. В связи с этим большое значение приобретает особый вид обработки изображений – их кодирование с целью сокращения объема данных (компрессия) [2].
При передаче данных компрессия позволяет разгрузить канал и, следовательно, сократить время передачи и/или снизить производительность передающей аппаратуры. При регистрации изображений компрессия позволяет уменьшить необходимую емкость запоминающих устройств или улучшить эффективность использования существующих архивов данных, благодаря чему сокращаются расходы на хранение и поиск информации в архиве. При обработке данных на компьютере компрессия во многих случаях дает возможность сократить время обработки, при этом появляется возможность использования компьютера меньшей вычислительной мощности и т.д.
7
1. Сжатие статических изображений и видеосигналов
Принципиальная возможность сокращения объема данных заключается в том, что изображения (в том числе и цифровые) обладают высокой степенью избыточности с точки зрения содержания информации. Это связано, во-первых, с тем, что между близкими отсчетами функции яркости (соседними элементами матрицы X ) имеется сильная статистическая зависимость. Из теории информации известно, что наличие зависимости между элементами сообщения приводит к уменьшению количества информации, переносимой этим сообщением при том же его объеме (то есть объем сообщения используется неэффективно) [2].
Во-вторых, важной особенностью изображений является то, что человеческое зрение при их анализе оперирует контурами, общим переходом яркости (цветов) и сравнительно нечувствительно к малым изменениям в изображении. Это позволяет создавать специальные алгоритмы, ориентированные только на изображения, позволяющие сжимать их с высокой степенью сжатия и незначительными с точки зрения человека потерями [3].
Общая схема методов сжатия изображений в большинстве случаев состоит из следующих шагов:
1.Снижение межэлементной корреляции.
2.Квантование элементов данных.
3.Кодирование данных.
Выделение межэлементной корреляции данных изображения, обычно предшествующее этапам квантования и статистического кодирования, состоит в выполнении некоторого невырожденного преобразования над матрицей изображения. Чаще всего используются унитарные преобразования. Перевод изображения в обобщенную спектральную область при помощи дискретного унитарного преобразования F может значительно снизить межэлементную корреляцию в матрице-трансформанте Y = F(X) по сравнению с корреляцией элементов в матрице дискретного изображения X . Снижение межкомпонентной корреляции делает более обоснованной независимую поэлементную обработку данных. Кроме того, применение преобразования позволяет сконцентрировать максимальную часть энергии исходного дискретного сигнала (матрицы X ) в минимальном количестве спектральных коэффициентов (элементов матрицы Y ).
8
1. Сжатие статических изображений и видеосигналов
Среди дискретных преобразований, имеющих быстрые алгоритмы вычислений, хорошее приближение к оптимальному преобразованию Карунена-Лоэва [4] дает
дискретное косинусное преобразование (ДКП) [5]. ДКП используется в первой спецификации JPEG [6] и остается основой многих стандартов видеокомпрессии. Однако все большее распространение получают методы сжатия на основе
дискретного вейвлет-преобразования [8], взятого за основу нового стандарта
JPEG 2000 [9].
Квантование является основой методов сжатия с потерями. По сути дела, квантование – это выделение из входных данных некоторой основной части информации, тогда как ее менее значимая часть опускается. Именно наличие этапа квантования обуславливает появление некоторой ошибки при последующем воспроизведении изображений и является отличительной чертой методов сжатия данных с потерями. Применяется как скалярное, так и векторное квантование [7]. В скалярном случае элементы обрабатываемого набора данных квантуются независимо друг от друга (вообще говоря, нелинейно).
Последний этап – это непосредственное кодирование данных. Для этого используются алгоритмы статистического кодирования [10]: LZW, Хаффмана, арифметическое кодирование и др. Указанные алгоритмы выполняют сжатие данных без потерь информации.
1.2.Понятие контекстного кодирования
Влитературе по сжатию данных понятие контекста носит очень широкий смысл. Например, в задачах сжатия текста под контекстом некоторого символа понимается набор, состоящий из определенного числа символов, непосредственно предшествующих данному. Число символов, входящих в контекст, определяет максимальный порядок моделирования. В сжатии изображений бывает, что в контекст входят не сами символы, которые имеются в потоке данных, а некоторые функции от них, например, логическая функция проверки на нулевое значение. Общим является то, что всегда есть некоторый символ, контекст которого рассматривается, а число объектов, составляющих контекст, конечно. Одно из наиболее общих понятий контекста состоит в следующем [11]: контекст i -го
символа si |
есть результат отображения f (s j , s j |
,…, s j |
), r > 0 , где |
s j |
, s j |
,…, s j |
, |
|
1 |
2 |
r |
1 |
2 |
|
r |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
9 |