Научная статья на тему 'Оптимизация алгоритма Заупе для фрактального кодирования изображений'

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

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

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Вуль В. В.

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

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

Optimization of Saupe fractal images encoding algorithm

The method and apparatus for hash tables application for a classification-based fractal encoding method derived by Saupe are given. This solution is compared with the original Sanpe inethod with the respect to time performance and image quality.

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

2007 ВЕСТНИК САНКТ-ПЕТЕРБУРГСКОГО УНИВЕРСИТЕТА. Сер. 10. Вып. 3

ПРИКЛАДНАЯ МАТЕМАТИКА

УДК 681.3 В. В. Буль

ОПТИМИЗАЦИЯ АЛГОРИТМА ЗАУПЕ

ДЛЯ ФРАКТАЛЬНОГО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ

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

Фрактальное кодирование изображений - метод сжатия изображений с потерями, основанный на нахождении сжимающих преобразований, отображающих доменные области (возможно, перекрывающиеся) в непересекающиеся ранговые блоки, покрывающие все изображение целиком. Этот метод кодирования был предложен Барнсли и Слоуном в [3] и основан на результатах Мандельброта [4], Хатчисона [5] и Барнсли [6].

Основными недостатками классического метода фрактального кодирования являются высокая вычислительная сложность алгоритмов кодирования и неоптимальное разбиение кодируемого изображения на ранговые блоки. Так, в классических методах фрактального кодирования используется метод квадродерева [6, 7]. Однако он не может привести к эффективному разбиению на ранговые блоки, так как в реальных изображениях самоподобные фрагменты имеют весьма причудливую форму. Хорошо их приблизить с помощью набора подобных фигур (а все прямоугольники разбиения будут подобны) невозможно.

Более гибкую схему разбиения изображения (горизонтально-вертикальный метод) на ранговые блоки предложил Фишер в [7]. Его метод получил развитие в работах исследователей Лейпцигского Института информатики, в первую очередь Дитмара Заупе. Этот метод использует результаты теории принятия решений, связанные с CART (Classification And Regression Tree - Деревья классификации и регрессии).

CART - алгоритм выбора оптимального бинарного дерева решений, впервые опубликованный Брейманом, Фридманом, Ольсхеном и Стоуном (BFOS) в 1984 г. [8]. Суть этого алгоритма - решение задач классификации и регрессии на основе дерева решений. В алгоритме CART каждый узел дерева решений имеет двух потомков. На каждом шаге построения дерева правило, формируемое в узле, делит заданное множество примеров (обучающую выборку) на две части - часть, в которой выполняется правило (потомок - right), и часть, где правило не выполняется (потомок - left). Для выбора оптимального правила используется функция оценки качества разбиения.

Метод Заупе разбиения изображений на ранговые блоки заключается в применении обобщенного алгоритма BFOS [9] к полному горизонтально-вертикальному разбиению изображения. Он позволяет получить высокий коэффициент сжатия изображений при

© В. В. Буль, 2007

Таблица 1. Время разбиения на ранговые блоки для сравниваемых алгоритмов

Размер Время для Время для оптимизированного алгоритма

изображения, алгоритма Размер блока начального разбиения, пиксел

пиксел Заупе 32x32 16x16 8x8

250x256 44,7 с 22,1 с 17,1 с 20,4 с

512x512 10 мин 27 с 3 мин 42 с 2 мин 55 с 3 мин 19 с

102-4x1024 503 мин 55 с 90 мин 12 с 68 мин 3 с 75 мин 38 с

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

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

Полученные экспериментальные результаты подтверждают правильность метода. Так, на ПК Pentium IV с тактовой частотой процессора 2800 МГц было получено, что время разбиения зависит от выбора размеров ранговых блоков для начального разбиения (табл. 1).

Второй этап предлагаемой оптимизации метода Заупе по времени заключается в использовании разработанного нами хэш-метода для поиска подходящего домена для рангового блока, который состоит из следующих основных этапов:

• вычисление хэш-ключей для всех доменов;

• распределение доменов по хэш-таблице;

• вычисление для каждого сжимаемого рангового блока упорядоченного поднабора ключей (зависящего от рангового блока) доменов;

• сравнение рангового блока только с теми доменами, хэш-ключи которых находятся в поднаборе, вычисленном на предыдущем шаге;

• перемещение подходящего домена в начало списка (оптимизационный шаг: это, как правило, ускоряет поиск следующих подходящих доменов для ранговых блоков, так как этот домен обычно подходит и для других ранговых блоков).

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

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

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

Опишем используемую в статье математическую модель фрактального кодирования. Под изображением в градациях серого будем подразумевать отображение / : i?->{l,2,..., А'}, в котором К - количество градаций серого, a R = {1,2,..., М}х{ 1,2,..., N}, М - размер изображения в пикселах по горизонтали, а N -по вертикали. Блок - это сужение некоторого отображения / на До = {хтт,хт-т + 1,.. .,£max}x{3/min,ymin + l,..., j/max}, и Для краткости будем обозначать его Ro(f). Значение отображения / будем также представлять в виде матрицы Гц = f(i,j). Каждый элемент матрицы является пикселем - одной точкой растрового представления изображения.

Определим расстояние между R(f) и доменом £>(/) как

dist(R(f),D(f)) = J2 Iгц - ^ßr(d,j- < d >)- < г > f. (1)

ij

В (1) < г > - среднее значение всех пикселей рангового блока, а < d > - среднее значение всех пикселей домена. При доменно-ранговом сопоставлении домен (доменный блок) с помощью соответствующих преобразований сжимается до размеров рангового блока, после чего вычисляются наиболее подходящие яркость о и контрастность s, такие что

(s, d) = arg min ^ (sdij + о - Гц)'2., (2)

i j

где {dij} и {гц} - значения пикселей доменной и ранговой области соответственно.

Под близостью двух величин будем подразумевать, что расстояние между ними отличается не более чем на заранее заданную величину, и обозначать это отношение

Чтобы близость ключей рангового блока и домена соответствовала близости собственно рангового блока и домена, рассмотрим подробно, что означает близость рангового блока R(f) к sD(f) + ol, где s - контрастность, о - яркость в смысле Фишера [7], а 1 - матрица того же размера, что R и D, значения всех элементов которой равны 1. Так как для каждой пары (i,j), для которой определено значение /, Гц ~ sdij + то < г >~ s < d > +о. Вместе с тем R ~ sD + ol дает а (г) ~ |s|ct(c?), где о (г) - девиация рангового блока, a(d) - девиация доменного блока. Потому ~ 1 d<'ä{d)> I-

соображения приводят к определению следующей хэш-функции от блока h(B):

KB) = ]Г ([»&-<»> + В] mod C)Ch~l = bhCh~\ (3)

Ы Хых

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

Предположим теперь, что набор доменов D зафиксирован. Для распределения элементов D по хэш-таблице Т используется хэш-функция (3). Параметр T[h] указывает на список, содержащий такие D из D, что h(D) = h.

Чрезвычайно существенным для правильного функционирования предложенного алгоритма является выбор значения параметра Л. Отметим, что если Л слишком велико, большая часть блоков даст значение bh ~ В.

Получившаяся хэш-таблица в этом случае будет состоять из нескольких достаточно длинных списков, что снизит скорость поиска. Если же параметр Л достаточно мал, то, как следует из выражения (3), близкие домены будут давать существенно различные Ьh и h.(D). Заметим, что для обычной хэш-функции это и было бы наиболее правильным поведением, так как гарантировало бы различия даже близких доменов. Однако в таком случае требуется, чтобы похожие блоки имели близкие значения хэш-функции.

Было установлено, что параметр Л должен быть близок к усредненной величине а{В{})) для блоков данного размера, деленной на Экспериментальные исследования подтвердили полученный результат. В экспериментах было выявлено, что в целях ускорения кодирования имеет смысл для доменных блоков размером 16x16 и 8x8 пикселов выбрать А = 1,5, а для блоков 4x4 Л = 0,5.

Для каждого домена вычисляется хэш-функция, а для каждого сжимаемого рангового блока составляется набор значений Нц. Отметим, что точное совпадение h(D(f)) и h(R(f)) маловероятно. Подходящий домен для R будет выбран среди таких D, что h(D(f)) принадлежит Нц. Значения в множестве Нд задаются как

hs(R) = £ (Г^Г + с) Ch~l = jyhC*-\ (4)

где отклонение S = (8\, <5-_>;..., <5#) соответствует |<5| ^ Л для некоторого Д. Экспериментально удалось установить определенную связь А и Л, а именно, при выборе величины Л, близкой к оптимальной, целесообразно задавать значение Д, близкое к 1.

Теперь можно сформулировать собственно предлагаемый хэш-метод фрактального кодирования полностью. Предположим, что кодовая книга сжимаемого рангового блока R - D зафиксирована, и для нее построена хэш-таблица Т. Считаем также, что два других параметра (1м и dc тоже установлены. Пусть Нц = (/ii,..., Лм) ~ упорядоченный набор ключей, вычисленный в соответствии с (4).

Отметим, что модуль контрастности |s| = а освещенность о =< г > <

d >, поэтому расстояние между доменным и ранговым блоками (1) в точности равно ошибке коллажа (см. [7]).

Таким образом, псевдокод для хэш-метода выбора домена для заданного рангового блока выглядит так:

d = infinity ; D_R = NULL ; //инициализация

start:

for i = 1, ..., M : for D in T[h_i] :

d' = dist(R, D) ;

if d' < d : D_R = D ; d = d' ;

if d < d_M : переместить D_R в начало T[h_i]; goto end;

end:

сжать R с использованием D_R.

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

Таблица 2. Полные временные затраты на кодирование рассматриваемых

алгоритмов

Параметр Алгор итм Заупе Оптимизированный алгоритм

Размер блока начального разбиения, пиксел

32x32 16x16 8x8

Время кодирования, 56:40 0:33 0:26 0:19 0:16

мин: с 39:27 0:24 0:20

Количество ранго-

вых блоков 3000 5000 3000 5000 3000 5000 3000 5000

Коэффициент сжа-

тия 20,76 12,65 20,76 12,65 20,76 12,65 20,76 12,65

РБЖ, дБ 33,89 30,07 32,17 33,76 31,35 31,89 28,63 29,05

ранговых блоков и доменов будет прекращаться, когда найден домен, недостаточно близкий к ранговому блоку, для того чтобы обеспечить высокое качество сжатого изображения. Результатом такого выбора будет быстрый алгоритм с низким качеством результирующего сжатого изображения. Если же параметр с1м выбран слишком малым, то время выполнения алгоритма резко возрастет в силу существенного увеличения числа проверок покрытия рангового блока различными доменами. Экспериментально установлено, что для изображений, обрабатываемых в системах телеметрии, хорошие результаты по соотношению «время исполнения - качество сжатого изображения» дает значение dм, близкое к 2/3 среднего арифметического стандартных девиаций всех ранговых блоков. Предлагаемый оптимизированный алгоритм фрактального кодирования использует хэш-метод поиска домена как для первичного, так и для результирующего разбиения. Осталось отметить, что для оптимизированного метода функции r'(S) и d'(S), используемые в обобщенном методе BFOS [2], будут совпадать с функциями r(S) и d(S), применяемыми в методе Заупе и описанными в [5].

В табл. 2 приведем усредненные полные временные затраты и характеристики точности кодирования классических изображений «Лена» и «Корабль» размером 512 х 512 пикселей на основе базового алгоритма Заупе и базового алгоритма сопоставления доменов и ранговых блоков по сравнению с вариантами предлагаемого оптимизированного алгоритма в зависимости от выбора размеров ранговых блоков для начального разбиения. Как из нее следует, предлагаемый алгоритм позволяет не менее чем на порядок повысить скорость фрактального кодирования при ухудшении качества восстановленного изображения на 3-7 % по отношению к методу Заупе.

Summary

Wool V. V. Optimization of Saupe fractal images encoding algorithm.

The method and apparatus for hash tables application for a classification-based fractal encoding method derived by Saupe are given. This solution is compared with the original Saupe method with the respect to time performance and image quality.

Литература

1. Saupe D., Hartenstein H. Lossless acceleration of fractal image compression by fast convolution // IEEE Intern. Conference on Image Processing (ICIP'96). Lausanne, 1996. P. 185-188.

2. Saupe D., Ruhl M., Hamzaoui R. Optimal hierarchical partitions for fractal image compression // IEEE Intern. Conference on Image Processing (ICIP'98). Lausanne, 1998. P. 1-5.

3. Barnsley M. F., Sloan A. D., Method and apparatus for image compression by iterated function system: Patent N 4941193. 1990. P. 1-15.

4. Mandelbrot В. The fractal geometry of nature. New York: Freeman and Company, f982. 480 p.

5. Hutchison J. Fractals and self-similarity // Math. J. of Indiana University. 1981. Vol. 30. P. 713-747.

6. Barnsley M. Fractals everywhere. 2nd ed. Boston: Academic Press, 1993. 531 p.

7. Fisher Y. (ed.), Menlove S. Fractal image compression - Theory and application. Berlin: Springer-Verlag, 1994. 341 p.

8. Breiman L., Friedman J., Olshen R., Stone C. Classification and regression trees. Belmont, California: Wadsworth Publ., 1984. 355 p.

9. Chou P., Lookabaugh Т., Gray R. Optimal pruning with applications to tree-structured source coding and modeling 11 IEEE Trans. Inform. Theory. 1989. P. 299-315.

Статья рекомендована к печати членом редколлегии проф. JI. А. Петросяном. Статья принята к печати 22 февраля 2007 г.

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