Дипломная работа студента группы м-44



Скачать 243,84 Kb.
Дата20.10.2016
Размер243,84 Kb.


ОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
Кафедра прикладной и вычислительной математики

ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКОГО АЛГОРИТМА

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

Дипломная работа

студента группы М-44

Усенко И. В.



Научный руководитель

Еремеев А. В.


Омск - 1999



Содержание




Введение 3

Представление изображений конечным объемом данных 4

Статистическая и визуальная избыточность изображений 4

Статистическая избыточность изображений 4

Визуальная избыточность изображений 6

О кодировании цветных изображений 6

Обзор некоторых алгоритмов сжатия с потерями 6

Метод усеченного блочного кодирования (УБК) 6

JPEG 8

Краткий обзор 8



Преобразование цветов RGB в цвета YUV 9

Метод сжатия JPEG 9

Фрактальное сжатие 10

Краткий обзор 10

Метод фрактального сжатия изображений 11

Обоснование метода фрактального сжатия. 12

Алгоритмы поиска фрактальной модели изображения 15

Алгоритм Фишера 15

Генетический алгоритм 15

Модификация генетического алгоритма для задачи фрактального сжатия 17

Увеличение быстродействия метода 18

Вычислительный эксперимент 19

Заключение 22

Приложение 23

Литература 29

Введение


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

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

Целью этой работы является построение метода фрактального сжатия для статических изображений с использованием генетических алгоритмов (ГА). В работе рассматриваются основные принципы метода, его обоснование, несколько алгоритмов его реализации и модификация генетического алгоритма в применении к задаче поиска кодирующего преобразования.

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


Представление изображений конечным объемом данных


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

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


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


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

Существует два типа избыточности.



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

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

Статистическая избыточность изображений


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

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

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

Таким образом, энтропия - это мера количества информации, которую несет случайная величина уровня яркости .



, поскольку . Из формулы вытекает, что чем более неравномерно распределение , тем меньше энтропия и тем эффективнее может быть энтропийное кодирование.

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



  • различные коды могут иметь различное количество бит

  • коды символов с большей частотой встречаемости, имеют больше бит, чем коды символов с меньшей частотой

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

Этими свойствами обладает известный алгоритм Хаффмана [6].

Визуальная избыточность изображений


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

До сих пор не существует простой и адекватной модели визуального восприятия изображений, пригодной для оптимизации их кодирования [5].


О кодировании цветных изображений


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

Так как глаз человека более чувствителен к изменению яркости, чем к изменению цвета, часто возникает желание преобразовать систему цветов RGB в такую систему, где информация о яркости пикселях запоминалась бы отдельно от информации о цвете. Общеупотребительной системой цветов, которая хранит яркость пикселя в виде отдельной компоненты данных о его цвете, является система HSB (тон, насыщенность, яркость) и YUV (Y - компонента яркости; U и V хранят характеристики цвета).


Обзор некоторых алгоритмов сжатия с потерями

Метод усеченного блочного кодирования (УБК)


Название метода отражает тот факт, что изображение разбивается на небольшие прямоугольные куски одинакового размера, называемые блоками. Этот метод в отличие от большинства других подстраивает параметры кодирования не под некоторую усредненную характеристику всего изображения, а под локальные особенности в пределах каждого блока. Это позволяет сохранить мелкие детали изображений. Метод не приводит к размыванию границ, что характерно для некоторых других алгоритмов. Метод УБК сопоставим с большинством других методов по эффективности сжатия данных и по объему вычислений, требуемых для кодирования, но не имеет конкурентов по простоте декодирования.

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

Обработка блока начинается с вычисления порога и двух уровней квантования (описанных ниже), затем проводится квантование блока на два уровня, после чего следует упаковка проквантованного блока. Для определения уровней квантования сначала вычисляются два первых выборочных момента - среднее значение и средний квадрат :

,

(где суммируются элементы изображения в пределах блока) и дисперсия



.

Пороговая величина квантователя полагается равной среднему . Верхний и нижний уровни квантования вычисляются по следующим формулам:



, ,

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

Квантование проводится по правилу:

,

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

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

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

Из алгоритма видно, что степень сжатия непосредственно зависит от размеров блока. Наиболее удовлетворительные результаты, как по степени сжатия, так и по качеству восстановленного изображения были получены при использовании блоков размером (см. [3]).

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


JPEG

Краткий обзор


JPEG - один из самых распространенных и достаточно мощных алгоритмов, представляет собой метод сжатия изображений, реализуемый различными способами. Работает он как на черно-белых, так и на полноцветных изображениях.

Коэффициент архивации в JPEG может изменяться в пределах от 2 до 200 раз. Как и у любого другого алгоритма сжатия с потерями, у JPEG свои особенности. Наиболее известны ‘эффект Гиббса’ и дробление изображения на квадраты. Первый проявляется около резких границ предмета, образуя вокруг своеобразный ‘ореол’. Разбиение на квадраты происходит, когда задается слишком большой коэффициент сжатия для данной картинки. Тем не менее, не смотря на эти недостатки, для архивации изображений, предназначенных для просмотра человеком, он на данный момент является лучшим.

Широкое применение JPEG сдерживается, пожалуй, лишь тем, что он оперирует 24-битными изображениями. Поэтому для того, чтобы с приемлемым качеством посмотреть картинку на обычном мониторе в 256-цветной палитре, требуется применение соответствующих алгоритмов и, следовательно, определенное время. В приложениях, ориентированных на придирчивого пользователя, таких, например, как игры, подобные задержки неприемлемы. Кроме того, если имеющиеся изображения, допустим, в 8-битном формате GIF перевести в 24-битный JPEG, а потом обратно в GIF для просмотра, то потеря качества произойдет дважды при обоих преобразованиях. Тем не менее, выигрыш в размерах архивов зачастую настолько велик (3-20 раз), а потери качества настолько малы, что хранение изображений в JPEG оказывается очень эффективным.

Преобразование цветов RGB в цвета YUV


В сжатии JPEG применяется система цветов YUV. Разделение данных RGB на данные YUV позволяет программе сжатия уделять больше внимание данным о яркости (Y), чем данным о цвете (UV). Этот процесс называется подвыборкой, так как три компоненты выбираются с различной частотой. Так метод подвыборки, который называется YUV411, на каждую выборку цвета делает четыре выборки данных о яркости. Например, если рисунок не подвергался подвыборке, то величины YUV встречаются в нем с одинаковой частотой. При использовании подвыборки YUV411 на шесть значений выборки обработанного файла приходится двенадцать значений выборки исходного файла. Таким образом, подвыборка данных сразу уменьшает размер файла изображения.

Метод сжатия JPEG


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

Изменение частоты


JPEG определяет изменение частоты данных с помощью дискретного преобразования Фурье (ДПФ), которое применяется для каждой пиксельной компоненты в выбранной области пикселей. Например, выбирается группа из пикселей, и к ней применяется преобразование ДПФ: сначала к величинам красных компонент во всей группе, затем зеленых, и, наконец, синих.

Вместо действительных значений пикселей величины ДПФ хранят скорость изменения интенсивности от пикселя к пикселю. На самом деле данных о частоте получается больше, чем исходных пиксельных данных, но следующие два шага это устраняют.



Усреднение


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

Сжатие методом Хаффмана


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

Фрактальное сжатие

Краткий обзор


Эта группа алгоритмов является самой перспективной и развивается наиболее бурно. Основные идеи фрактального сжатия принадлежат Barnsley [7]. Первые практические результаты были получены Jacquin [8] в 1992 году. Алгоритм основывается на идее подобия между элементами изображения. Коэффициенты сжатия у фрактальных алгоритмов варьируются в пределах 2-2000 раз. Причем большие коэффициенты достигаются на реальных изображениях, что нетипично для предшествующих алгоритмов. Кроме того, при разархивации изображение можно масштабировать. Уникальная особенность этого алгоритма заключается в том, что увеличенное изображение не дробится на квадраты.

Недостатком этого алгоритма является потребность в больших вычислительных мощностях при архивации. При этом распаковка требует меньше вычислений, чем у JPEG. Фактически это первый существенно несимметричный алгоритм. Причем, если у всех предшествующих алгоритмов коэффициент симметричности (отношение времени архивации ко времени разархивации) не превышает 3, то у фрактального алгоритма он колеблется от 1000 до 10000.



Метод фрактального сжатия изображений


Пусть задано изображение пикселей. Обозначим через множество точек изображения. При этом каждому пикселю сопоставляется площадка:

точка - правый верхний угол площадки пикселя.

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

Пусть - множество векторов из , где и - я координата вектора соответствует одному пикселю изображения: . Здесь , - символ округления вниз.

Нужное нам отображение будем искать в виде: .

Для задания такого отображения разобьем на множество R-блоков , где есть квадратный пиксельный фрагмент изображения и . Рассмотрим также множество D-блоков: , где представляющие квадратные (возможно пересекающиеся) пиксельные фрагменты и .

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

- биекция, действие которой описывается следующим образом: пусть имеет вид

.

Очевидно, существует всего восемь способов такого преобразования квадрата в квадрат.

Функционал задает цветовые характеристики каждого пикселя блока и определяется как усредненные значения яркости пикселей прообраза :

, (1)

где отвечает за контрастность, а за яркость.

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

Обоснование метода фрактального сжатия.


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

В соответствии с теоремой Банаха, если - сжимающее отображение и - полное метрическое пространство с метрикой , тогда последовательность , построенная по правилу



, (2)

сходится для произвольной точки к единственной неподвижной точке преобразования :



(3).

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

Нетрудно видеть, что если семейство отображений такое, что

, то , (4)

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

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

Соответствующую оценку расстояния между и дает следующая теорема (Collage theorem) [9].

Теорема: , где - константа Липшица сжимающего оператора в некоторой метрике .

В случае использования евклидовой метрики константа Липшица оператора может быть вычислена следующим образом [10]



. (5)

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



, (6)

где суммирование ведется по всем пикселям блока .

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

Пусть даны две последовательности из значений цветов пикселей до и после применения :



и ,

…,

,

где и усредненные значения яркости пикселей прообраза .

Мы можем найти и для (1) минимизировав сумму



. (7)
Функция (7) имеет минимум в тех точках, в которых частные производные от по параметрам и обращаются в нуль. В результате дифференцирования и элементарных преобразований для определения параметров получаем систему двух линейных уравнений с двумя неизвестными и откуда получаем, что

, .

В частности, если , то . Таким образом среднеквадратичная ошибка преобразованного блока от его исходного состояния



.
Задача поиска D-блока и его аффинного отображения может быть решена различными способами. Например с помощью ГА, алгоритм Фишера [10], полный перебор и т.д.

Алгоритмы поиска фрактальной модели изображения

Алгоритм Фишера


Идея алгоритма заключается в том, чтобы некоторым образом классифицировать D-блоки и R-блоки, а поиск близкого D-блока производить в том же классе, к которому относится ранговая область. Делается это следующим образом.

Исходные блоки разбиваются на четыре части. Для каждой из частей подсчитывается среднее значение и дисперсия пикселей. Далее блоки классифицируются по следующему принципу. Определим три базовых типа блоков

тип 1: ,

тип 2: ,

тип 3: .

Понятно, что любой блок при помощи соответствующего аффинного преобразования квадрата в квадрат можно привести к виду, соответствующему одному из указанных типов. После того, как мы зафиксировали три основных класса, блоки классифицируются по дисперсии. Таким образом, в каждом из трех классов появляются 24 подкласса, итого 72 класса. Поиск близкого к R-блоку D-блока производится перебором в соответствующем классе.




Генетический алгоритм


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

При использовании ГА для поиска оптимальных решений каждый элемент xX пространства оптимизации должен быть представлен как вектор bB из N символов двоичного алфавита A = {0,1}, где B = AN. Необходимо также, чтобы пространство оптимизации X состояло из конечного числа элементов.

Популяцией П = (χ1, χ2,…, χM ) численности M считается вектор пространства BM, координаты которого называются генотипами особей данной популяции.

Шагом ГА является переход от текущего поколения к следующему, т.е. получение новой популяции из . В построении очередной особи новой популяции участвуют операторы кроссинговера, мутации и случайный оператор отбора, Select: BM{1,…,M} действие которого состоит в выборе номера особи родителя при порождении очередного потомка.

Для определения ГА в необходимо задать оператор кроссинговера (скрещивания) Cross: BBBB и оператор мутации Mut: BB.

Действие кроссинговера заключается в выборе случайным образом некоторой позиции j, равномерно распределенной от 1 до N-1, после чего результат формируется в виде



, .

Влияние кроссинговера регулируют с помощью вероятности срабатывания этого оператора (в противном случае все остается без изменений).

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

Целевая функция исходной задачи, заменяется в ГА на неотрицательную функцию пригодности генотипа , где B.

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

,

где - особи с наименьшей пригодностью популяции . То есть индивиды извлекаются попарно из и после кроссинговера и мутации помещаются в. Изменение вероятностей мутации и кроссинговера позволяет регулировать работу ГА и настраивать его на конкретные задачи.


Модификация генетического алгоритма для задачи фрактального сжатия


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

,

где в нижней части под знаком суммы – евклидово расстояние между исходным и преобразованным блоком. Данная функция удовлетворяет требования ГА (неотрицательна) и адекватна для оператора рулеточной селекции, при которой каждый индивид популяции t оказывается родителем при формировании очередной особи популяции t+1 с вероятностью



.

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

Оператор мутации для данного алгоритма – стандартный, а оператор кроссинговера был модифицирован следующим образом:


  • позиция кроссинговера может располагаться только в местах стыковки двоичного представления координат.

  • выполняется только для близкородственных особей, т.е., если расстояние мало, где - некоторая метрика.

Увеличение быстродействия метода


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

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



Алгоритм 1.

  • Выберем допустимый уровень потерь при кодировании .

  • и пометим его как необработанный фрагмент.

  • Пока есть необработанный фрагмент выполнять:

  1. Найти , и , которые наилучшим образом приближают (на которых достигается минимум ).

  2. Если или размер , то пометить как обработанное. Иначе, разбить на более мелкие фрагменты и пометить их как необработанные.

Алгоритм 2.

  • Выберем максимальное число N фрагментов.

  • Добавим фрагмент в список преобразований и пометим его как необработанный.

  • Пока есть необработанные фрагменты в списке выполнять:

  1. Для каждого необработанного фрагмента найти соответствующие , и .

  2. Найти в списке фрагмент наибольшего размера и наибольшей метрикой .

  3. Если число фрагментов в списке меньше N , тогда разбить фрагмент на более мелкие и занести их в список как необработанные. Вычеркнуть из списка фрагмент .


Вычислительный эксперимент


Описанный метод фрактального сжатия статических изображений был запрограммирован на языке С++ с применением объектно-ориентированного подхода. Программа работает как с черно-белыми, так и с полноцветными изображениями формата Windows Bitmap.

Для оценки качества закодированного 8-битного изображения или одного канала цветного использовалось соотношение сигнал-шум, измеряемое в децибелах (dB) и определенное как



,

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

Алгоритм кодирования реализован в двух вариантах.


  1. Алгоритм кодирования с фиксированным размером блоков.

Алгоритм оперирует с прямоугольными областями одинакового размера. Размер областей фиксирован от начала работы алгоритма до конца.

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



  1. Алгоритм кодирования с разбиением изображения на дерево подблоков.

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

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

Степень сжатия изображения при фрактальном кодировании зависит от размеров обрабатываемых R-блоков, параметров и преобразования . Для черно-белых изображений она может быть вычислена по формуле:

,

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



.
Поиск фрактальной модели (для каждого R-блока соответствующий D-блок и преобразование W) изображения осуществлялся с помощью модифицированного генетического алгоритма, описанного ранее. При проведении вычислительного эксперимента ГА прекращал свою работу по истечении заданного числа поколений или при достижении определенного качества кодирования, т.е если степень приспособленности наилучшей особи будет выше некоторого заранее заданного числа. Лучшие результаты были получены при запуске ГА со следующими параметрами , . Иллюстрации полученных результатов для различных вариантов алгоритма кодирования приведены в приложении. Представленные ниже статистические данные о работе ГА были получены при проведении эксперимента для изображения «Lena.bmp» (см. рис. 1) и алгоритма кодирования с фиксированным размером блоков пикселей.

Следует отметить, что использование генетических алгоритмов для задачи фрактального сжатия является одним из вариантов ухода от полного перебора. Так для изображения размером пикселей, для каждого R-блока нужно перебрать комбинаций D-блоков с аффинным преобразованием . Следующая диаграмма показывает среднее число просчитанных вариантов при работе ГА в зависимости от числа поколений и размера популяции.




Заключение


  • Из этих графиков видно, что предложенный ГА имеет значительные преимущество по сравнению с алгоритмом полного перебора по времени работы.

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

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



Приложение




Рисунок 1. «Lena.bmp» - оригинал

Алгоритм с фиксированным размером блоков



«Lena.fif» – закодированное.

Размер областей пикселей.

Сжатие 4:1. PSNR = 31.4dB.

Время 773 сек.



«Lena.fif» – закодированное.

Размер областей пикселей.

Сжатие 16:1. PSNR = 27.18dB.

Время 1011 сек.

Алгоритм кодирования с разбиением изображения на дерево подблоков



«Lena.fif» – закодированное.

Начальный размер областей пикселей.

Сжатие 7.2:1. PSNR = 29.4dB.

Время 1938 сек.



«Lena.fif» – закодированное.

Начальный размер областей пикселей.

Сжатие 7.2:1. PSNR = 29.4dB.

Время 3650 сек.

Процесс восстановления. 1,2,3,4,5,15 – итерации





Сжатие цветных изображений



Рисунок 2. «Heron.bmp» - оригинал



«Heron.fif» - закодированное.

Сжатие 3:1.



«Heron.fif» - закодированное.

Сжатие 6.5:1.

Литература


[1] Батищев Д.И. Генетические алгоритмы решения экстремальных задач. /Под ред. академика АЕЦ Я.Е. Львовича: Учебное пособие. Воронеж. гос. техн. ун-т; Нижегородский государственный университет. Воронеж, 1995.

[2] Еремеев А.В. Разработка и исследование некоторых гибридных алгоритмов целочисленного программирования. Дипломная работа. ОмГУ, Омск, 1996.

[3] Яншин В., Калинин Г. Обработка изображений на языке СИ для IBM PC: Алгоритмы и программы. - Москва: Мир, 1994.

[4] Корриган Дж. Компьютерная графика: Секреты и решения: Пер. С англ. - М.: Энтроп, 1995.

[5] Зубарев Ю.Б., Дворкович В.П. Цифровая обработка телевизионных и компьютерных изображений. - Москва, 1997.

[6] Прэт У. Цифровая обработка изображений. – Москва: Мир, 1982.

[7] M.F. Barnsley, Fractals Everywhere. London: Academic Press Inc., 1988.

[8] A.E. Jacquin, “Fractal image coding based on a theory of iterated contractive image transformations,” in Proceedings of SPIE Visual Communications and Image Processing ’90, vol. 1360, pp. 227-239 1990.

[9] G.E. Qien, Z. Baharav, S. Lepsqy, E. Karnin. A new improved collage theorem with appplications to multiresolution fractal image coding. In Proc. ICASSP, 1994.

[10] Saupe, D., Hamzaoui, R., Hartenstein, H., Fractal image compression - An introductory overview, in: Fractal Models for Image Synthesis, Compression and Analysis, D. Saupe, J. Hart (eds.), SIGGRAPH'96 Course Notes, ACM, New Orleans, Louisiana, Aug. 1996.





Поделитесь с Вашими друзьями:


База данных защищена авторским правом ©grazit.ru 2017
обратиться к администрации

    Главная страница