МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР) Кафедра телевидения и управления (ТУ) УТВЕРЖДАЮ Заведующий кафедрой ТУ, профессор _______И.Н. Пустынский «___»___________2014 г. Лабораторный практикум по дисциплине «Сети и системы цифрового телерадиовещания» Лабораторная работа № 2 «Кодирование и декодирование видеоданных на основе вейвлет-преобразования» РАЗРАБОТАЛИ _________ Г.Д. Казанцев, доцент _________ В.В. Капустин, инженер «______»_________2014 г. 2014 2 Методические указания к выполнению работы Цель лабораторной работы – Изучение работы компрессора/декомпрессора изображений на основе стандарта JPEG 2000. Исследование зависимостей результатов кодирования от параметров алгоритма. 1. Вводная часть Стандарт сжатия JPEG 2000 Изначально новый стандарт разрабатывался как база для будущего стандарта сжатия без потерь JPEG-LS, но позднее был отвергнут в связи с появлением более эффективных алгоритмов. В связи с развитием технологий стандарт JPEG постепенно терял свою актуальность. Разработчики JPEG2000 надеялись создать стандарт, который исправил бы многие ошибки уже существующих стандартов. Среди их задач были: Устранение неэффективного сжатия в области низких частот. Существующие алгоритмы неплохо справлялись со сжатием среднечастотных и высокочастотных областей, но в области низких частот они показывали плохие результаты. Сжатие с потерями и без потерь. На момент разработки не существовало стандарта, позволяющего сжимать с потерями и без потерь в едином сжимающем потоке. Обработка больших изображений. Существующие алгоритмы не позволяли эффективно сжимать изображения размером более 64Kx64K без разбиения на тайлы. Единая структура алгоритма сжатия. Текущая реализация JPEG поддерживала 44 модификации, большая часть которых была специфичной для некоторых приложений и не поддерживалась большей частью декодеров. Помехоустойчивость. Во время разработки JPEG сетевые технологии не были еще достаточно развиты, и проектировщики JPEG не задумывались над помехоустойчивостью при передаче изображений по небезопасным каналам и возможностью восстановления изображения в случае его повреждения в результате передачи. Компьютерно-сгенерированные изображения. Исходные алгоритмы неплохо работали на цифровых фотографиях и изображениях, полученных с помощью цифровой фотокамеры или сканера, но неэффективно обрабатывали изображения, созданные на компьютере, например, с помощью графических редакторов. Сложные документы. JPEG показывал очень плохие результаты при обработке сложных двумерных изображений (в частности изображений текста). 3 Базовая схема JPEG-2000 (рис. 1) очень похожа на базовую схему JPEG. Отличия заключаются в следующем: 1. Вместо дискретного косинусного преобразования (DCT) используется дискретное вэйвлет-преобразование (DWT). 2. Вместо кодирования по Хаффману используется арифметическое сжатие. 3. В алгоритм изначально заложено управление качеством областей изображения. 4. Не используется явно дискретизация компонент U и V после преобразования цветовых пространств, поскольку при DWT можно достичь того же результата, но более аккуратно. Рис.1. Конвейер операций, используемый в алгоритме JPEG-2000 Рассмотрим алгоритм по шагам. В JPEG-2000 предусмотрен сдвиг яркости (DC level shift) каждой компоненты (RGB) изображения перед преобразованием в YUV. Это делается для выравнивания динамического диапазона (приближения к 0 гистограммы частот), что приводит к увеличению степени сжатия. Формулу преобразования можно записать как: Значение степени ST для как каждой компоненты R, G и В свое (определяется при сжатии компрессором). При восстановлении изображения выполняется обратное преобразование: 4 Переводим изображение из цветового пространства RGB, с компонентами, отвечающими за красную (Red), зеленую (Green) и синюю (Blue) составляющие цвета точки, в цветовое пространство YCrCb. Этот шаг аналогичен JPEG, за тем исключением, что кроме преобразования с потерями предусмотрено также и преобразование без потерь. Его матрица выглядит так: Обратное преобразование осуществляется умножением вектора YCrCb на обратную матрицу. Дискретное вейвлет преобразование (ДВП). JPEG2000 использует дискретное вейвлетное преобразование (Discrete Wavelet Transformation), для разбиения изображения на высокочастотные и низкочастотные области. ДВТ обрабатывает каждую строку и столбец исходного изображения с помощью частотного фильтра. Рис. 2. Схема работы частотного фильтра. 5 В связи с тем, что каждый проход с использованием частотного фильтра на выходе увеличивает объем информации в два раза, после обработки размер изображения уменьшается в два раза. После одного этапа ДВТ обрабатываемый фрагмент делится на четыре сегмента: LL – низкие частоты по строкам и столбцам HL – высокие частоты по строкам и низкие по столбцам LH – низкие частоты по строкам и высокие по столбцам HH – высокие частоты по строкам и столбцам По стандарту количество этапов может быть от 1 до 32. Для обычного изображения используют от 4-х до 8-ми этапов. На каждом следующем этапе обрабатывается только низкочастотная область (LL), так как в высокочастотных областях обычно не содержится важной информации. Рис. 3. Последовательное применение ДВП к изображению. Преобразование ДВП использует свертку, однако из опыта известно, что качество преобразований такого типа сильно зависит от двух вещей: от выбора масштабирующих множителей и временных сдвигов, а также от выбора вейвлета. Преобразование ДВП вычисляется с помощью масштабирующих множителей, которые равны отрицательным степеням двойки, и временных сдвигов, которые равны положительным степеням числа 2. На рис. 4 показана так называемая 6 двухчленная решетка, которая иллюстрирует такой выбор. Используемые вейвлеты порождают ортонормальные (или биортонормальные) базисы. Рис. 4. Двухчленная решетка. Связь масштаба со сдвигами по времени. Самый простой способ описания вейвлетных преобразований использует произведение матриц. Преобразование Хаара зависит от двух коэффициентов фильтра c0 и c1, которые равны 1/ 2 ≈ 0.7071. Наименьшая матрица, которую можно построить в этом случае, равна: эта матрица имеет размер 2 × 2. С ее помощью порождаются два коэффициента преобразования: среднее и разность. (Заметим, что эти среднее и разность не равны в точности полусумме и полу разности, поскольку вместо 2 используется знаменатель 2 . Более точными терминами были бы, соответственно, выражения «грубые детали» и «тонкие детали»). В общем случае, ДВП может использовать любое число фильтров, но все они вычисляются с помощью этого метода независимо от вида фильтров. Сначала мы рассмотрим один из самых популярных вейвлетов, а именно вейвлет Добеши, который принято обозначать D4. Из этого обозначения видно, что 7 он основан на четырех коэффициентах фильтра c0, c1, c2 и c3, значения которых приведены в (1). Матрица W преобразования равна: если эту (x1, s1 матрицу x2,…,xn), = применить то ее c0x1+c1x2+c2x3+c3x4. к верхняя Третья вектору-столбцу строка строка даст матрицы исходных данных взвешенную сумму определит сумму s2= c0x3+c1x4+c2x5+c3x6, и все строки с нечетными номерами зададут аналогичные взвешенные суммы si. Такие суммы совпадают со свертками исходного вектора xi и четырех коэффициентов фильтра. На языке вейвлетов все они называются гладкими коэффициентами, а вместе они именуются сглаживающим фильтром Н. Аналогично вторая строка матрицы W порождает величину d1=c3x1 - … - c2x2 + c1x3 - c0x4, а все остальные четные строки матрицы определяют подобные свертки. Каждое число di называется детальным коэффициентом, а все вместе они образуют фильтр G. Фильтр G не является сглаживающим. На самом деле, его коэффициенты подобраны так, чтобы фильтр G выдавал на выход маленькие числа, когда данные xi коррелированы. Все вместе, Н и G называются квадратурными зеркальными фильтрами (QMF, quadrature mirror filters). Таким образом вейвлетное преобразование любого изображения представляет собой прохождение исходного образа через фильтр QMF, который состоит из низкочастотного фильтра (Н) и высокочастотного фильтра (G). Если размер 8 матрицы W равен n × n, то она порождает n/2 гладких коэффициентов si и п/2 детальных коэффициентов di. Транспонированная матрица равна: можно показать, что матрица W будет ортогональной, если четыре порождающие ее коэффициента удовлетворяют соотношениям: c02 + c12 + c22 + c32 = 1, c2c0 + c3c1 = 0 Еще два уравнения для вычисления коэффициентов фильтра имеют вид: c3 – c2 + c1 – c0 = 0 и 0с3–1с2+2с1–3с0 = 0 Они получаются из условия равенства нулю первых двух моментов последовательности (с3, - с2, с1, - с0). Решением этих четырех уравнений служат следующие величины: Умножение на матрицу W очень просто и наглядно. Однако этот метод не практичен, так как W должна иметь такой же размер, что и исходное изображение, которое обычно велико. Если взглянуть на матрицу W, то видна ее регулярная структура, поэтому нет необходимости строить ее целиком. Достаточно хранить лишь ее верхнюю строку. На самом деле, достаточно иметь массив, состоящий из четырех коэффициентов фильтра. 9 Кроме семейства фильтров Добеши (между прочим, вейвлет Хаара порождает фильтр Добеши степени 2) существует множество других семейств веивлетов, имеющие другие полезные свойства. Вот некоторые известные фильтры: фильтр Белкина, фильтр Кайфмана, симметричный фильтр. Вейвлет Добеши D4 строится по четырем коэффициентам. Аналогично, вейвлет D6 имеет шесть коэффициентов. Их можно найти, решив систему из шести уравнений, три из которых отражают свойство ортонормальности, а другие три получаются из условия равенства нулю первых трех моментов. В каждой последовательности этого семейства число коэффициентов на два больше, чем в предыдущей, причем они являются более гладкими. Квантование Для округления коэффициентов ДВП используется постоянный квантователь с мертвой зоной. (рис. 6). Формула вычисления округленных значений представлена на рисунке 5. Здесь y -исходное значение коэффициента, sign(y) определяет знак коэффициента, а Δb - значение шага округления. Мертвая зона квантователя - это интервал диапазоном 2Δb около нуля, она дает большее количество нулей на выходе. y q sign( y ) b Рис. 5. Формула округления коэффициентов. 10 Рис. 6. Схема работы постоянного квантователя с мертвой зоной. 21.82 2 10 Квантованное значение Рис. 7. Пример округления коэффициента. Арифметическое кодирование На последнем этапе используется арифметическое кодирование и упаковка в файл описание которых выходит за рамки данной лабораторной работы. 2 Описание лабораторного макета Лабораторный макет представляет собой программную реализацию эмулятора компрессора/декомпрессора основанного на стандарте сжатия изображений JPEG 2000. Эмулятор разработан в среде MATLAB и включает в себя: графический интерфейс, перевод цветового пространства, дискретное вейвлет преобразование, квантование, деквантование, обратное вейвлет преобразование. Интерфейс программы изображен - на рисунке 8. 11 Рис. 8. Интерфейс эмулятора. После загрузки BMP - файла исходное, не сжатое, изображение будет отображено в левом верхнем окне, а так же активируются кнопка открытия изображения в отдельном окне, размер входного файла и подменю "Параметры вейвлет разложения" состоящие из выпадающих списков выбора вейвлета и уровня вейвлет разложения. Список выбора вейвлета состоит из 6 строк, вейлет Хаара и 5 вейвлетов Добеши (db2, db4, db6, db8 и db10). В выпадающем списке выбора уровня разложения необходимо выбрать уровни от 1-го до 4-х. По умолчанию выбран 1-й уровень. 12 Для запуска изображения, уровень алгоритма необходимо разложения и обработки выбрать вейвлет, нажать кнопку "Разложить" С права от кнопки "Разложить" появится строка оповещающая о начале процесса вейвлет фильтрации. По завершению этого процесса надпись "Выполняется фильтрация" сменится на "Фильтрация завершена", а в верхнем правом окне отобразится разложенное входное изображение и активируется кнопка "В отдельном окне". 13 После отображения вейвлет плоскостей разложенного входного изображения, появится возможность выбрать любую интересующую плоскость и отобразить её отдельно в нижнем правом окне, для этого необходимо просто навести курсор мыши на интересующую плоскость и нажать левую кнопку мыши. После того как вейвлет фильтрация будет выполнена, так же активируется подменю "Параметры кодирования" и кнопка "Кодировать". Подменю состоит из 2х "ползунков", управляющих качеством кодирования отдельно для яркостной и цветоразностных компонент изображения. 14 После нажатия кнопки "Кодировать" справа от кнопки появится строка "Выполняется кодирование" оповещающая о том, что кодирование запущено по окончанию процесса кодирования строка сменится на "Кодирование завершено" и в левом нижнем окне отобразится подменю процентное восстановленное "Оценка результатов" соотношение коэффициентах ДВП, изображение. нулей размер в В отобразятся округленных закодированного изображения в байтах, коэффициент компрессии изображения и энтропия (бит/символ), Среднеквадратическая ошибка и пиковое отношение сигнал/шум. А так же активируются оставшиеся неактивные кнопки: "Разность входного и 15 восстановленного" изображения, "ползунок" усиления разности, сравнительные гистограммы YCbCr компонент до и после ДВП и гистограммы RGB компонент входного и восстановленного изображения. Гистограммы входного и восстановленного RGB изображения 16 Сравнительные гистограммы Y до и после фильтрации Сравнительные гистограммы Cb Cr до и после фильтрации 3 Методика проведения эксперимента При проведении данной работы используется ПК с установленным эмулятором JPEG 2000. Главное содержание лабораторной работы состоит в следующеи: а) во-первых, изучение интерфейса программы, знакомство с назначением основных и вспомогательных органов управления, регулировок и настроек кодера; б) во-вторых, провести эксперименты с целью оценки влияния на качество и степень компрессии основных параметров алгоритма кодирования. 17 4 Порядок выполнения работы Перед началом работы изучить вводную часть для корректного ответа на контрольные вопросы. Загрузить 1. тестовое черно-белое изображение провести вейвлет преобразование Хаара, при однократном разложении меняя m в интервале от 1 до 100 с шагом 10 построить график отношения количества нулей от значения m. Выполняя последовательно вейвлет преобразование Хаара разных 2. уровней и кодирование при максимальном m оценить результаты: количество нулей, энтропию, коэффициент компрессии, среднеквадратическую ошибку и пиковое отношение сигнал/шум. Результаты занести в таблицу. Визуально оценить восстановленное изображение, сделать выводы. Таблица 1.1 – пример построения таблицы Уровень Количество Энтропия вейлет разложения Коэффициент Среднеквадра- Пиковое компрессии тическая отношение ошибка сигнал/шум нулей (%) 1 2 3 4 3. Выполнить пункт 2 для фильтров Добеши 4. Загрузить цветное изображение, меняя фильтры и уровни вейвлет разложения найти максимальный коэффициент компрессии при минимальном и максимальном m. Результат занести в отчет. 5. Для цветного изображения подобрать параметры кодирования так что бы достичь максимального уровня компрессии при минимальной патере качества (уровень пикового отношения сигнал/шум не должен быть меньше 30). Подобранные параметры кодирования занести в отчет. 18 5 Содержание отчета 1. Методика проведения эксперимента с кратким пояснением. 2. График отношения количества нулей от значения m. 3. Таблицы. 4. Результаты по пунктам 4 и 5 6 Контрольные вопросы 1. Почему с повышением уровня вейвлет разложении компрессия изображения возрастает, а уровень искажений снижается? 2. Чем отличаются друг от друга вейвлет фильтры, представленные в данной работе? 3. Почему компрессия цветных изображений выше компрессии черно-белых изображений? 7 Литература 1. Гонсалес Р., Вудс Р., Эддинс С. Цифровая обработка изображений в среде MATLAB. – М.: Техносфера, 2006. – 616 с. – ISBN 5-94836-092-X. 2. Сэломон Д. Сжатие данных, изображений и звука: Пер. с англ. В.В. Чепыжова. – М.: Техносфера, 2004. – 368 с. – ISBN 5-94836-027-X. 3. Ян Ричардсон Видеокодирование. H.264 и MPEG-4 – стандарты нового поколения. – М.: Техносфера, 2005. – 368 с. – ISBN 5-94836-041-5 4. Смоленцев Н. К. Основы теории вейвлетов. Вейвлеты в MATLAB. – М.: ДМК Пресс, 2005. – 304 с. – ISBN 5-94074-123-3 5. Дьяконов В. П. MATLAB 7.*/R2006/R2007: Самоучитель. – М.: ДМК Пресс, 2008. – 768 с. - ISBN 978-5-94074-424-5 6. Гонсалес Р., Вудс Р. Цифровая обработка изображений. – М.: Техносфера, 2005. – 1072 с. – ISBN 5-94836-028-8