Научная статья на тему 'Сжатие изображений на основе выделения локальных однородных областей'

Сжатие изображений на основе выделения локальных однородных областей Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
109
43
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Сжатие изображений на основе выделения локальных однородных областей»

СЖАТИЕ ИЗОБРАЖЕНИИ НА ОСНОВЕ ВЫДЕЛЕНИЯ ЛОКАЛЬНЫХ ОДНОРОДНЫХ ОБЛАСТЕЙ М.В. Гришин, А.А. Ожиганов, А.Ю. Тропченко

В настоящее время существует достаточно много алгоритмов сжатия изображений. Они осуществляют сжатие либо в пространственной, либо в частотной областях изображения. Наиболее яркими примерами пространственного сжатия изображений являются алгоритмы PCX, GIF, а частотного сжатия - JPEG.

В пространственной области нельзя добиться достаточно большого коэффициента сжатия, поэтому в настоящее время большинство алгоритмов сжатия работают в частотной области изображения.

В подобных алгоритмах можно выделить три основных шага:

1. применение обратимых дискретных ортогональных преобразований к изображению;

2. выбор наиболее значимых частотных коэффициентов;

3. вторичное сжатие выбранных коэффициентов, например, арифметическим или статистическим алгоритмом сжатия.

В данной работе в качестве обратимого дискретного ортогонального преобразования выбрано вейвлет-преобразование [1]. Основная идея вейвлет-преобразования состоит в иерархическом разложении входного сигнала на последовательности так называемых базовых компонент с последовательно уменьшающимся разрешением и связанных с ними компонент детализации. На каждом уровне разложения базовая компонента и компонента детализации содержат информацию, необходимую для восстановления базового сигнала на следующем уровне с более высоким разрешением.

В рассматриваемых алгоритмах использовались два вида преобразования: преобразование Хаара и вейвлет-преобразование (5,3).

Преобразование Хаара использует следующие фильтры декомпозиции:

h {1 1} {1 1}

hn = i^}, ^ = 2}.

Вейвлет- преобразование (5,3) использует следующую пару фильтров:

h { 1 1 3 1 1} - {1 1 1 00}

hn = {—,-,—,-,—}, gn = К,—,—,0,0},

8 4 4 4 8 4 2 4

где hn - низкочастотный фильтр, а gn - высокочастотный фильтр.

После применения двухуровневого вейвлет-преобразования к изображению I возможны несколько подходов для сжатия полученных вейвлет-коэффициентов.

Одним из наиболее очевидных способов сжатия вейвлет-коэффициентов является учет взаимосвязей между коэффициентами из различных субполос вейвлет-разложения. В высокочастотных субполосах имеются обычно большие области с нулевой или малой энергией. Области с высокой энергией повторяют от субполосы к субполосе свои очертания и местоположение.

Медленно изменяющиеся, гладкие области исходного изображения хорошо описывают низкочастотные (НЧ) вейвлет-базисы, что приводит к "упаковке" энергии в малом числе коэффициентов НЧ области. Впервые идея нуль-дерева была предложена А. Льюисом и Г. Ноулесом [2]. В их алгоритме применялась древовидная структура данных для описания вейвлет-коэффициентов (рис.1). Корневой узел дерева представляет коэффициент масштабирующей функции в самой НЧ области и имеет три отпрыска. Узлы дерева соответствуют вейвлет-коэффициентам масштаба, равного их высоте в дереве. Каждый из узлов имеет четыре отпрыска, соответствующих вейвлет-

коэффициентам следующего уровня и того же пространственного расположения. Низом дерева являются листьевые узлы, не имеющие отпрысков.

LL2

\ HL2

LH2 ч \ HL1

НН2 \

\

\ LH1 НН1

Рис 1. Кодирование вейвлет-коэффициентов нуль-деревом

Кодирование нуль-деревом основано на том, что, если коэффициент мал, его отпрыски на дереве зачастую тоже малы. Это объясняется тем, что значимые коэффициенты возникают вблизи контуров и текстур, которые локальны. Нетрудно увидеть, что это является разновидностью предсказания. Это предсказание можно свести к минимуму, предположив, что, если какой-либо коэффициент незначимый (т.е. он меньше по модулю некоторого порога Thr), то все его потомки также будут незначимыми. Дерево или субдерево, которое содержит только незначимые коэффициенты, называется нуль-деревом.

Выбранные таким образом вейвлет-коэффициенты затем сжимаются с помощью вторичного алгоритма сжатия, в нашем случае это был алгоритм ZIP. Сравнение данного метода сжатия вейвлет-коэффициентов с другими методами приведено в таблицах 1 и 2.

В работе также рассматривалась и исследовалась модификация выше описанного метода сжатия вейвлет-коэффициентов. Сжатие ветвей, не являющихся нуль-деревом, происходит с использованием кодовой книги. В начальном состоянии есть одна "чистая" кодовая книга. Первая найденная ветвь, не являющаяся нуль-деревом, помещается в кодовую книгу, а на приемную сторону передается код данной ветви (поскольку ветвь была первой, то передается код 0). В дальнейшем любая найденная ветвь сравнивается со всеми ветвями, уже находящимися в кодовой книге. Пусть S -текущий размер кодовой книги. Если все коэффициенты данной ветви Brj отличаются от какой-то ветви Brn c кодом С , находящейся в кодовой книге, не более чем на порог Thr, то эти ветви считаются идентичными, и на приемную сторону передается код С. Если ни одна ветвь в словаре не совпала с кодируемой ветвью, то в словаре заводится новая запись для ветви Brj и передается новый код S+1. Чтобы коды всех ветвей были однобайтовыми, размер кодовой книги был ограничен 250-ю значениями. Таким образом, если размер книги превысит 250, то будет заведена новая кодовая книга, и дальнейшая работа будет производиться только с ней. Эксперименты показали, что такой подход к кодированию вейвлет-ветвей очень эффективен. В большинстве случаев наблюдался большой процент попадания кодируемых ветвей в кодовую книгу. Сравнение такого подхода к кодированию вейвлет-коэффициентов с другими методами кодирования приведено в таблицах 1 и 2.

Еще одним из способов кодирования вейвлет коэффициентов, является метод шаблонно-блокового кодирования, который основан на высокой структурированности и разреженности вейвлет коэффициентов.

В данном методе каждая субполоса вейвлет-преобразования, за исключением низкочастотной составляющей, кодируется раздельно [3]. Субполоса разбивается на блоки размером 4x4, которые заменяются кодом одного из шаблонов, наилучшим образом соответствующего этому блоку.

Поскольку высокочастотные составляющие вейвлет-преобразования хорошо описывают границы на изображении, то шаблоны также должны отражать различные границы для разных ориентаций (рис. 2).

вни

Рис. 2. Примеры шаблонов

Блоки делятся на однородные и граничные. Однородный блок - это блок, в котором все пиксели имеют одинаковую интенсивность. Граничный блок - это блок, который имеет одну границу, проходящую вдоль всего блока.

Для классификации блоков была разработана специальная классификационная схема, которая определяла, является ли блок однородным или граничным. Если блок является граничным, то он заменяется кодом одного из конечных шаблонов, наилучшим образом соответствующим ему. В работе использовались 250 различных шаблонов, которые наиболее часто встречались в ряде исследуемых изображений.

В конечном итоге, на приемную сторону передаются либо 2 числа, если блок однородный, либо 3 числа (индекс блока, наибольшая и наименьшая интенсивность в блоке), если он граничный. Естественно, что передаваемый поток данных также подвергался вторичному сжатию. Сравнение данного метода сжатия вейвлет-коэффициентов с другими методами приведено в таблицах 1 и 2.

Поскольку сжатие данных подразумевает учет статистических связей между элементами изображения, то применение обратимых дискретных ортогональных преобразований к отдельным областям изображения, а не к изображению в целом в некоторых случаях может открывать возможности для увеличения коэффициента сжатия.

В работе была предпринята попытка выделения естественных для изображения областей, т.е. изображение не разбивается на блоки размером 8x8, как в алгоритме сжатия JPEG, а на изображении осуществляется поиск и выделение псевдооднородных сегментов, присущих данному изображению.

В процессе выделения сегментов участвуют 2 копии одного изображения: одна копия хранит оригинальные значения пикселей, а вторая используется для поиска сегментов.

Выделение сегментов можно описать тремя шагами:

1. фильтрация изображения для устранения яркостных всплесков(в качестве фильтра использовался медианный фильтр);

2. квантование изображения (уменьшение уровней градаций серого);

3. выделение полученных сегментов на квантованном изображении.

Остановимся подробнее на последнем шаге - выделении сегментов на изображении.

Классические методы сегментации основаны на использовании порога интенсивности. Если точки изображения имеют значения выше (ниже) некоторого порога, то они принадлежат области, иначе - не принадлежат. Эти методы имеют ряд недостатков. Во-первых, методы распознавания по уровню интенсивности дают плохие результаты, если имеется изменение интенсивности освещенности в пространстве изображения. Во-вторых, если внутри области наблюдается изменение интенсивности, то метод выделит несколько концентрических областей.

В связи с этими недостатками предлагается использовать несколько иной метод сегментации изображения.

В начале ищется точка Бтж(Хтах,Утах) максимальной интенсивности 1тах, эта точка считается стартовой (рис. 3). На следующем шаге к размечаются только те точки, которые имеют соседей из числа точек, размеченных на предыдущем шаге (к-1).

Точка считается принадлежащей области, если выполняются следующие условия:

1) если хотя бы одна из соседних точек принадлежит выделяемому сегменту;

2) если интенсивность точки попадает в определяемый на каждом шаге интервал интенсивностей \Лор,/0от\, определяемых как доля интенсивности /тах точки Втах;

3) точка £(/,/') может быть отмечена, если линия, проведенная из стартовой точки Втах, лежащей на границе, построенной на предыдущих шагах области, к точке В(ц) не пересекает границ этой области. При выполнении алгоритма линия строится по алгоритму Бразенхейма.

I

Рис. 3. Выделение сегментов А и В

Таким образом, в результате работы алгоритма получается множество точек, составляющих выделяемый сегмент.

Этот сегмент окружается прямоугольной областью, фон области заполняется интенсивностью граничных точек сегмента. К полученному объекту применяется один из вышеописанных методов сжатия, и формируется пакет данных: параметры сегмента (координаты верхнего левого угла, ширина и высота) и сжатые данные. Затем полученный пакет сжимается вторичным алгоритмом сжатия.

Эксперименты показали, что не все вейвлет-преобразования можно применять к сегментам изображения. Некоторые вейвлет-преобразования при восстановлении изображения допускают проявления граничных артефактов, которые не позволяют правильно состыковать сегменты друг с другом. Сравнение методов сжатия изображений с помощью вейвлет-преобразования, применяемого как к целому изображению, так и к его областям приведено в таблицах 1 и 2.

Проведенные эксперименты показали, что применение вейвлет-преобразования к локальным однородным областям, а не к изображению целиком, в общем случае не дает выигрыша в сжатии изображения. Во-первых, это связано с ростом объема дополнительных хранимых данных, таких как ширина и высота области, а также координаты ее левого верхнего угла. Во-вторых, появляющиеся в некоторых случаях граничные артефакты при восстановлении изображения не позволяют точно состыковывать восстановленные области, что приводит к значительному искажению восстановленного изображения. Однако не исключено, что подобные технологии можно будет использовать для создания черновых или предпросмотровых вариантов изображений при их распространении через Интернет.

Метод сжатия До вторичного сжатия После вторичного сжатия (zip)

Исходный файл BMP 227k 137k

JPEG 25k

Сжатие однородных локальных областей

Метод нуль-дерева 101k 50k

Метод шаблонно-блочного кодирования 83k 34k

Сжатие целого изображения

Метод нуль-дерева 67k 38k

Метод шаблонно-блочного кодирования 54k 24k

Метод нуль-дерева с кодовой книгой 59k 22k

Таблица 1. Объем сжатых данных для различных методов сжатия

изображений

Метод сжатия MSE SNR PSNR

JPEG 89.9 22.7 28.6

Сжатие однородных локальных областей

Метод нуль-дерева 185 18.5 24.4

Метод шаблонно-блочного кодирования 514.8 15.3 21

Сжатие целого изображения

Метод нуль-дерева 103.0 19.3 25.0

Метод шаблонно-блочного кодирования 357 16.8 22.6

Метод нуль-дерева с кодовой книгой 86.7 22.7 28.7

Примечание: МЕЕ - среднеквадратичная ошибка, - соотношение сигнал/шум, Р8КЯ - соотношение максимального значение сигнала к МЕЕ

Таблица 2. Сравнение качества сжатого изображения

Литература

1. Дьяконов В.П. От теории к практике. Вейвлеты. М.: Солон-Р, 2002.

2. Воробьев В.И., Грибунин В.Г. Теория и практика вейвлет-преобразований. СПб: Военный университет связи, 2000.

3. Keissarian F., Daem M.F. Block pattern coding of HVS-based on wavelets for image compression". // SPEE. Volume 4472.

i Надоели баннеры? Вы всегда можете отключить рекламу.