ДонНТУ   Портал магистров ДонНТУ  RUS   ENG  

 

 

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

Актуальность
1 Введение во фракталы
   1.1 Понятие фрактала. Классификация алгоритмов их применения
   1.2 Фрактальная размерность
2 Итерации линейных систем
   2.1 Системы Итерируемых функций
   2.2 Сжимающие аффинные преобразования
3 Алгоритмы построения фрактальных структур
   3.1 Метод простой замены
     3.1.1 Салфетка Серпинского
     3.1.2 Дракон Хартера-Хейтуэя
   3.2 Метод Систем Итерируемых Функций
   3.3 Метод комплексных отображений
4 Идея фрактального сжатия изображений
5 Краткий обзор существующих исследований и разработок по теме
Заключение
Актуальность

     Развитие сети Internet, наряду с доступностью все более мощных компьютеров и прогрессом в технологии производства цифровых камер, сканеров и принтеров, привели к широкому использованию цифровых изображений. В связи с этим растет интерес к улучшению алгоритмов сжатия данных, представляющих изображения.
     Сжатие данных актуально как для скорости передачи, так и эффективности хранения. Кроме многих видов коммерческого использования, технологии сжатия представляют также интерес в военной области, например, приложения обработки данных телеметрии, полученных от перехватчиков ракет, или для архивного хранения данных об изображении местности для моделирования оборонительных действий.
     Решение проблемы сжатия изображения или, в общем смысле, кодирования изображения, использовало достижения и стимулировало развитие многих областей техники и математики.[5, стр.17]

1.1 Понятие фрактала. Классификация алгоритмов их применения

     Слово фрактал введено в 1975 году Бенуа Мандельбротом. Оно произведено от латинского fractus, от которого происходят английские термины fraction, fractional - дробь, дробный. С математической точки зрения фрактал - это, прежде всего множество с дробной размерностью.
     Мы хорошо представляем себе, что точка имеет размерность 0, отрезок и окружность - размерность 1, круг и сфера - размерность 2. С одномерными объектами мы связываем понятие длины, с двумерными - площади и так далее. Но как можно представить себе множество с размерностью 3/2? По-видимому, для этого требуется нечто промежуточное между длиной и площадью, и если длину условно назвать 1-мерой, а площадь - 2-мерой, то требуется (3/2)-мера.[7]
     В 1919 году Ф. Хаусдорф действительно определил такую a-меру и на этой основе каждому множеству в евклидовом пространстве сопоставил число, названное им метрической размерностью. Он же привел первые примеры множеств с дробной размерностью. Оказалось, что дробную размерность имеют канторово множество, кривая Кох и другие экзотические объекты, до недавнего времени малоизвестные за пределами математики.[7]
     Бенуа Мандельброт в своих книгах привел яркие примеры применения фракталов к объяснению некоторых природных явлений. Мандельброт уделил большое внимание интересному свойству, которым обладают многие фракталы. Дело в том, что часто фрактал можно разбить на сколь угодно малые части так, что каждая часть окажется просто уменьшенной копией целого. Иначе говоря, если мы будем смотреть на фрактал в микроскоп, то с удивлением увидим ту же самую картину, что и без микроскопа. Это свойство самоподобия резко отличает фракталы от объектов классической геометрии.
     Необходимо отметить, что свойство самоподобия характерно только для регулярных фракталов.Многие регулярные фракталы строятся путем бесконечного повторения нескольких простых операций - заменой одного элемента некоторой комбинацией других, ему подобных. Затем эта же операция повторяется с каждым из этих элементов, и так далее до бесконечности. На методе простой замены основан первый алгоритм построения фракталов.
     Возникает вопрос, нельзя ли эту "процедуру замены" перевести на язык математических формул. Таким образом, в середине 80-х годов появился метод Систем Итерируемых Функций - СИФ (Iterated Function System - IFS) как простое средство получения фрактальных структур. Таким образом, некоторые из вышеперечисленных фракталов можно получить с помощью метода СИФ. Метод Систем Итерируемых функций является основой для второго алгоритма построения фрактальных структур. Вместо детерминированного способа построения регулярных фракталов в алгоритм создания фрактальных структур был включен некоторый элемент случайности, что приводит к построению случайных фракталов. Многие фракталы могут быть получены с помощью этих двух алгоритмов. Тогда в первом случае они построены как регулярные фракталы, а во втором как случайные.
     Одним из наиболее ярких примеров среди различных систем итерируемых функций является открытая М. Брансли система из четырех сжимающих аффинных преобразований, аттрактором для которой является множество точек, поразительно напоминающее по форме изображение листа папоротника.
     Третьим алгоритмом создания фрактальных объектов на плоскости является использование комплексных отображений, сопоставляющих одному комплексному числу другое комплексное число по некоторому итерационному правилу. Примером фрактала полученного с помощью комплексных отображений является множество Жюлиа.

1.2 Фрактальная размерность

     Пусть d - обычная Евклидова размерность пространства, в котором находится фрактальный объект (d = 1 - линия, d = 2 - плоскость, d = 3 - обычное трехмерное пространство). Покроем теперь этот объект целиком d-мерными "шарами" (куб, квадрат или просто отрезок прямой) радиуса l. Предположим, что нам потребовалось для этого не менее чем N(l) шаров. Тогда, если при достаточно малых l величина N(l) меняется с l по степенному закону N(l)~1/lD, то D - называется хаусдорфовой или фрактальной размерностью этого объекта. Эту формулу можно переписать в виде
Фрактальная размерность
Это и служит общим определением фрактальной размерности D. В соответствии с ним D является локальной характеристикой данного объекта.[2,стр.15]

2.1 Системы Итерируемых Функций

     В евклидовом пространстве R2 расстояние d1(x,y) между точками x=(x1,x2) и y=(y1,y2) определяется с помощью следующей формулы Расстояние в евклидовом пространстве Расстояние в пространстве R2 можно также измерять функцией d2(x,y)=|x1-y1|+|x2-y2|. Две приведенные функции, являясь мерами расстояния, по-разному определяют расстояния между двумя точками. Ниже приведены четыре неотъемлемых свойства функции расстояния:

  • Расстояния от точки x до y и от точки y до x равны: d(x,y)=d(y,x)
  • Расстояние от точки x до этой же точки x равно нулю: d(x,x)=0
  • Расстояние по прямой - это кратчайшее расстояние между двумя точками:
    d(x,y)<=d(x,z)+d(z,y)
  • Для двух точек x и y функция расстояния должна быть вещественной, конечной и положительной: Свойство функции расстояния
Метрика - функция расстояния, удовлетворяющая вышеперечисленным свойствам.
Метрическое пространство (X,d) - множество точек X вместе с метрикой d, определенной на X.
Преобразование - сопоставление, согласно заранее определенному правилу, точке в одном пространстве точки в другом (возможно и в том же самом пространстве).
Отображение - обозначается, fn: X->X, это преобразование которое переводит пространство X1 в пространство X2.
Сжимающее отображение - преобразование R2 в метрическом пространстве f: X->X при условии существования коэффициента сжатия преобразования f: 0<=s<1 такого, что d(f(x1),f(x2))<=s*d(x1,x2) для всех x,y принадлежит Х.
Система итерируемых функций (Iterated Function System) состоит из полного метрического пространства (X,d) и конечного множества сжимающих отображений
fn: X->X с коэффициентами сжатия Sn. [5, стр.36-37]
2.2 Сжимающие аффинные преобразования

     Прежде чем раскрывать смысл понятия - сжимающие аффинные преобразования, рассмотрим линейное преобразование Линейное преобразование f(z) на комплексной плоскости Z, которое переводит равносторонний треугольник с длиной стороны равной единице в равносторонний треугольник в два раза меньшего размера представленный на рис.2.1 Линейное преобразование f(z)
Рисунок 2.1 - Преобразование f
Рассмотренное выше линейное преобразование на комплексной плоскости является частным случаем аффинного преобразования плоскости
xn+1=a*xn+b*yn+e
yn+1=c*xn+d*yn+f
Его можно представить в матричном виде
Аффинное преобразование в матричном виде
Так, например, рассмотренное преобразование можно записать в виде
Аффинное преобразование в матричном виде
В общем случае аффинное преобразование на плоскости задается шестью независимыми действительными числами. Два числа e и f описывают обычную трансляцию, а четыре числа a, b, c, d задают произвольное линейное преобразование при неизменном положении начала координат (0,0).
Для наглядности вышесказанного на рис.2.2 представлено действие аффинного преобразования на единичный квадрат ABCD при e = f = 0.

Рисунок 2.2 - Анимированный рисунок: действие аффинного преобразования на единичный квадрат ABCD при e = f = 0.
Если при аффинном преобразовании не меняется направление обхода произвольного контура, то его, согласно рис.2.2, можно представить себе как произведение 3-х преобразований:

  • первое переводит единичный квадрат в произвольный прямоугольник со сторонами r1 и r2. Это соответствует простому масштабированию двух координатных осей
  • второе преобразование описывает превращение прямоугольника в параллелограмм со сторонами r1, Сторона параллелограмма и углом Угол между сторонами параллелограмма между ними
  • третье преобразование есть простой поворот полученного параллелограмма на угол Угол бета вокруг начала координат
  • [2, стр.49-50]
3.1 Метод простой замены.
3.1.1 Салфетка Серпинского

     Фрактал салфетка Серпинского может быть построен как с помощью метода простой замены, который применяют для построения регулярных фракталов, так и с помощью метода IFS.
     Рассмотрим алгоритм построения, основанный на методе простой замены. Правильный треугольник делим средними линиями на четыре равных треугольника и внутренность центрального выбрасываем. С тремя оставшимися треугольниками делаем то же самое и так бесконечное число раз. После определенного числа выбрасываний остается множество S, представленное на рис.3.1, которое представляет собой салфетку Серпинского.
Салфетка Серпинского
Рисунок 3.1 - Салфетка Серпинского
Фрактальная размерность салфетки Серпинского подсчитывается по формуле
D=ln3/ln2=1,5849
Салфетка имеет нулевую площадь, так как нетрудно проверить, что в процессе ее построения была исключена площадь, в точности равная площади исходного треугольника. Об этом же свидетельствует и значение фрактальной размерности D<2, которая меньше размерности плоскости на которой находится этот объект. [2, стр.20]

3.1 Метод простой замены
3.1.2 Дракон Хартера-Хейтуэя

     Для большинства регулярных фракталов фрактальная размерность D меньше, чем размерность d того пространства, в котором находится данный фрактальный объект. Неравенство D < d отражает факт некомпактности фрактала, причем чем больше различаются величины D и d, тем более рыхлым является фрактал.
     Существуют фракталы, которые плотно заполняют пространство, в котором они находятся, так что их фрактальная размерность D = d. Одним из примеров такого рода являются кривые Пеано (Peano curves). Дракон Хартера-Хейтуэя является примером кривой Пеано, для которой область, которую она заполняет на плоскости, имеет причудливую форму. Первые четыре шага его построения представлены на рис.3.2.
Первые четыре шага построения дракона Хартера-Хейтуэя
Рисунок 3.2 - Первые четыре шага построения дракона Хартера-Хейтуэя
Как следует из рис.3.2 каждый из отрезков прямой на следующем шаге заменяется на два отрезка, образующих боковые стороны равнобедренного прямоугольного треугольника, для которого исходный отрезок являлся бы гипотенузой. В результате отрезок как бы прогибается под прямым углом. Направление прогиба чередуется. Первый отрезок прогибается вправо (по ходу движения слева направо), второй - влево, третий - опять вправо и т.д. На рис.3.2 пунктиром показана конфигурация предыдущего шага. Таким образом, после каждого шага число имеющихся отрезков удваивается, а длина каждого соответственно уменьшается в раз. Поэтому фрактальная размерность образующейся в результате (после бесконечного числа шагов) кривой равна 2. [2, стр.28-29]
     Для реализации указанного выше алгоритма построения необходимо перейти к комплексным числам ZA, ZB и ZC (рис.3.3).
Представление в комплексных числах
Рисунок 3.3 - Представление в комплексных числах
Для нахождения координат точки C представим комплексные числа в тригонометрической форме. Нахождение координат точки C представлено формулами (3.1) - (3.8).
Формула 3.1                                                               (3.1)
Формула 3.2                                                                                                         (3.2)
Формула 3.3                                                                    (3.3)
Формула 3.4                                (3.4)
Формула 3.5                                       (3.5)
Формула 3.6       (3.6)
Формула 3.7                                                                      (3.7)
Формула 3.8                                                                      (3.8)
Результатом реализации приведенного выше алгоритма является программа, разработанная в среде Visual C++6.0. На рис.3.4 представлено 16-е поколение дракона Хартера-Хейтуэя.
16-е поколение дракона Хартера-Хейтуэя
Рисунок 3.4 - Изображение 16-го поколения дракона Хартера-Хейтуэя
Программа позволяет задавать координаты начального отрезка построения, а также номер поколения дракона.

3.2 Метод Систем Итерируемых Функций

     Рассмотрим алгоритм построения, основанный на методе IFS на примере упомянутой выше салфетки Серпинского.
Поместим исходный равносторонний треугольник с длинной стороны, для определенности равной единице, на комплексную плоскость Z так, как показано на рис. 3.5 слева.
Преобразование t1
Рисунок 3.5 - Преобразование t1. В скобках даны декартовы координаты вершин
Зададим линейное преобразование t1, которое переводит на комплексной плоскости в равносторонний треугольник в два раза меньшего размера, представленный на рис.3.5 справа t1: f1(z)=1/2*z
Если теперь сместить этот маленький треугольник по горизонтали вправо на величину, равную 1/2, то получим преобразование t2, переводящее исходный треугольник в треугольник представленный на рис.3.6 справа.
Преобразование t2
Рисунок 3.6 - Преобразование t2
Соответствующая этому преобразованию функция равна
t2: f2(z)=1/2*z+1/2
Последний, третий маленький треугольник получается с помощью преобразования t3, представленного на рис. 3.7.
Преобразование t3
Рисунок 3.7 - Преобразование t3
Соответствующая ему функция f3(z) получается из f1(z) трансляцией на комплексный вектор Вектор
Преобразование t3
     В результате три представленные линейные функции осуществляют искомое преобразование исходного треугольника в три треугольника в два раза меньшего размера. Если теперь каждый из этих трех маленьких треугольников подвергнуть этим трем преобразованиям, то тогда возникнет уже 9 треугольников в 4 раза меньше исходного. Таким образом, выполняя эту процедуру определенное число раз, мы получим салфетку Серпинского. Причина этого заключается в том, что салфетка является своеобразным аттрактором для этой системы из трех линейных преобразований.
     Для реализации построения салфетки Серпинского на компьютере можно применить так называемый метод случайных итераций (игра в хаос), который связан с системой итерируемых функций.
     Возьмем, например, начальную точку z0 в центре исходного треугольника. Далее каждому из четырех преобразований сопоставим одинаковую вероятность pi=1/3. После чего, выбирая случайным образом последовательность преобразований будем получать все новые и новые точки - z1=fi(z0), z2=fj(z1), z3=fk(z2). В итоге после большого числа итераций получим ярко выраженную фрактальную структуру салфетки Серпинского. [2, стр.32-35]
     Результатом реализации приведенного выше алгоритма является программа, разработанная в среде VisualC++ 6.0. Результат работы программы представлен на рис.3.8.
Салфетка Серпинского после 50000 итераций
Рисунок 3.8 - Результат построения после 50000 итераций

3.3 Метод комплексных отображений

     Еще одним алгоритмом создания фрактальных объектов на плоскости является использование комплексных отображений, сопоставляющих одному комплексному числу zn=xn+i*yn другое комплексное число zn+1=xn+1+i*yn+1 по итерационному правилу, которое представлено формулой zn+1=f(zn), где f(z) - некоторая нелинейная функция z, n - номер итерации.
     Множество Жюлиа наряду с множеством Мандельброта занимает центральное место в теории фракталов. Множество Жюлиа представляет собой границу области притяжения неподвижных точек комплексных отображений. Наиболее изученным из них является отображение, представленное формулой f(z)=z2+c, где c=c1+i*c2 - const; ;c - множество всех комплексных чисел.
     Существуют два алгоритма его построения. Первый из них основан на использовании исходного отображения, второй - обратного.
     Справедлива следующая теорема. Предположим, что |c|<2. Пусть и пусть zn=fc(n)(z) для n = 1,2,3,… Если существует такое n, что |zn|=>2, то имеет место , т.е. орбита стремится к бесконечности и z не принадлежит множеству Жюлиа. На этой теореме основан первый алгоритм - построение на основе исходного отображения.      Второй алгоритм построения, основанный на обратном отображении, опирается на свойство множество Жюлиа, состоящее в том, что для обратного отображения, т.е.

множество Жюлиа - аттрактор. [6, стр.219]
     В ходе выполнения работы была написана программа в среде Visual_C++6.0, реализующая построение множества Жюлиа по описанным выше алгоритмам.
     На рис.3.9 представлено множество Жюлиа для различных значений параметра c. Программа позволяет менять параметры построения.
Множество Жюлиа для c=0.11+i*0.66
Рисунок 3.9 - Множество Жюлиа для c=0.11+i*0.66

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

     Фрактальная компрессия - алгоритм с потерей информации, появившийся в 1992 году. Он использует аффинные преобразования для построения изображений, что позволяет очень компактно задавать сложные структуры.
     Как мы уже знаем, для построения некоторых фракталов на компьютере используются аффинные преобразования с большим числом итераций. Эти фракталы называются фракталами на основе системы итерируемых функций (Iterated Function System - IFS). Чтобы лучше понять суть фрактального сжатия изображений, ниже рассмотрен алгоритм формирования изображения этих фракталов. Аффинные преобразования, используемые при построении IFS-изображения, представлены приведенными ниже формулами
xn+1=a*xn+b*yn+e
yn+1=c*xn+d*yn+f
     Эти уравнения служат для формирования компьютером координат новой точки (xn+1,yn+1) по координатам текущей (xn,yn). Например, при построении IFS-изображения папоротника используются четыре аффинных преобразования. Уравнения преобразований различаются значениями параметров a, b, c, d, e и f. Для IFS-изображения папоротника, представленного на рис.4.1, значения этих параметров представлены в таблице.
Таблица значений параметров аффинных преобразований
     Каждому из четырех аффинных преобразований ставится в соответствие некоторая вероятность, определяющая его относительную важность по сравнению с другими преобразованиями. В ходе нескольких тысяч итераций каждое аффинное преобразование должно использоваться много раз пропорционально назначенной вероятности. При каждой итерации уравнение выбирается случайным образом, но в среднем число раз, когда выбирается каждое уравнение, определяется вероятностями.
Для первой итерации выбираются начальные значения x0=y0=0.
Затем эти начальные значения вводят в выбранное аффинное преобразование. Выходные величины xn+1 и yn+1 этого преобразования служат набором значений координат xn и yn на следующей итерации. [4]
Полученные на каждой итерации значения xn+1 и yn+1 выводятся на экран как пиксель.
     С целью наглядного примера построения фрактала на основе итерируемых функций была составлена программа в среде Visual C++6.0, использующая четыре аффинных преобразования. Изменяя значения параметров, задающих аффинные преобразования можно получать различные изображения. На рис.4.1 наглядно видно, что лист папоротника задается четырьмя аффинными преобразованиями. Изображение имеет четыре области, каждая из которых подобна изображению, а их объединение покрывает все изображение. Указано общее количество точек N = 100000, количество точек, которые были вычислены с помощью первого аффинного преобразования F1 = 1027, второго F2 = 84967, третьего F3 = 7009 и четвертого F4 = 6997 аффинных преобразований.
IFS-изображение папоротника
Рисунок 4.1 - IFS-изображение папоротника
     Из вышеизложенного видно, что IFS метод базируется на самоподобии элементов изображения, откуда становится ясна идея фрактального сжатия - сжатие осуществляется за счет поиска самоподобных участков в изображении. В общем случае идея фрактального сжатия заключается в хранении не всего изображения в исходном его виде, а информации о его самоподобии, которой оказывается достаточно для восстановления исходного изображения. Другими словами, достаточно хранить только параметры аффинных преобразований, а именно несколько чисел, которые их описывают. Таким образом, огромная совокупность пикселов сводится к нескольким числам. Так, например, IFS-изображение папоротника состоит из сотен тысяч пикселов. Если хранить содержимое всего экрана в формате PCX или BMP, то получится графический файл объемом более 38 тысяч байт. Для его представления во фрактальной форме необходимо лишь располагать достаточным числом байтов для хранения четырех IFS-наборов и их вероятностей. Если считать, что каждое число с плавающей точкой требует 4 байта памяти, то для хранения всех данных об изображении достаточно 112 байт.
     Количество хранимых аффинных преобразований зависит от сложности изображения, т.е. в данном случае от степени самоподобия изображения. В некоторых кодированных изображениях может использоваться 100 и более аффинных преобразований. Чем менее оно самоподобно, тем сложнее оказывается процедура его сжатия с помощью фрактального метода. Таким образом, фрактальное сжатие изображений можно применять не только к изображениям фракталов, а и в отношении любого растрового изображения. Доказательством чему является метод Майкла Брансли и Алана Слоун, который был использован в пакете Microsoft Encarta.[4]
     Таким образом, подводя итоги вышесказанного, основная идея фрактального сжатия:

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

     В декабре 1992 года, перед самым Рождеством, компания Microsoft выпустила свой новый компакт-диск Microsoft Encarta. С тех пор эта мультимедиа-энциклопедия, содержащая информацию о животных, цветах, деревьях и живописных местах, не покидает списки наиболее популярных энциклопедий на компакт-дисках. В недавнем опросе Microsoft Encarta опять заняла первое место, опередив ближайшего конкурента - Комптоновскую мультимедиа-энциклопедию. Причина подобной популярности кроется в удобстве использования, высоком качестве статей и, главное, в большом количестве материалов. На диск записано 7 часов звука, 100 анимационных роликов, примерно 800 масштабируемых карт, а также 7000.качественных фотографий. И все это - на одном диске! Напомним, что обычный компакт-диск в 650 Мбайт без использования компрессии может содержать либо 56 минут качественного звука, либо 1 час видео разрешения с разрешением 320х200 в формате MPEG-1, либо 700 полноцветных изображений размером 640х480.
     Чтобы разместить больше информации, необходимы достаточно эффективные алгоритмы архивации. Мы не будем останавливаться на методах архивации для видео и звука, рассмотрим историю фрактального сжатия графической информации.
     Рождение фрактальной геометрии обычно связывают с выходом в 1977 году книги Б. Мандельброта "Фрактальная геометрия природы". Одна из основных идей книги заключалась в том, что средствами традиционной геометрии (то есть, используя линии и поверхности), чрезвычайно сложно представить природные объекты. Фрактальная геометрия задает их очень просто.
     В 1981 году Джон Хатчинсон опубликовал статью "Фракталы и самоподобие", в которой была представлена теория построения фракталов с помощью системы итерируемых функций (IFS, Iterated Function System).
     Спустя четыре года появилась статья Майкла Барнсли и Стефана Демко, в которой приводилась уже достаточно стройная теория IFS. В 1987 году Барнсли основал Iterated Systems, компанию, основной деятельностью которой является создание новых алгоритмов и ПО с использованием фракталов.
     Всего через год, в 1988 году, он выпустил фундаментальный труд "Фракталы повсюду". Помимо описания IFS, в ней был получен результат, известный сейчас как Collage Theorem, который лежит в основе математического обоснования идеи фрактальной компрессии.
     Если построение изображений с помощью фрактальной математики можно назвать прямой задачей, то построение по изображению IFS - это обратная задача. Довольно долго она считалась неразрешимой.
     Первая статья об успехах Барнсли в области компрессии появилась в журнале BYTE в январе 1988 года. В ней не описывалось решение обратной задачи, но приводилось несколько изображений, сжатых с коэффициентом 1:10000, что было совершенно ошеломительно. Но практически сразу было отмечено, что несмотря на броские названия ("Темный лес", "Побережье Монтере", "Поле подсолнухов") изображения в действительности имели искусственную природу. Это, вызвало массу скептических замечаний, подогреваемых еще и заявлением Барнсли о том, что "среднее изображение требует для сжатия порядка 100 часов работы на мощной двухпроцессорной рабочей станции, причем с участием человека".
     Когда в 1991 году впервые была опубликована информация о возможностях фрактального сжатия, она наделала много шуму. Майкл Барнсли, один из разработчиков алгоритма, утверждал, что разработан способ нахождения коэффициентов фрактала, сколь угодно близкого к исходной картинке.
     Фракталы, эти красивые образы динамических систем, ранее использовались в машинной графике в основном для построения изображений неба, листьев, гор, травы. Красивое и, что важнее, достоверно имитирующее природный объект изображение могло быть задано всего несколькими коэффициентами. Неудивительно, что идея использовать фракталы при сжатии возникала и раньше, но считалось практически невозможным построить соответствующий алгоритм, который подбирал бы коэффициенты за приемлемое время.
     Итак, в 1991 году такой алгоритм был найден. Кроме того, в дальнейших его статьях декларировался ряд уникальных возможностей новой технологии. Так, фрактальный архиватор позволяет, например, при распаковке произвольно менять разрешение (размеры) изображения без появления эффекта зернистости. Более того, он распаковывает гораздо быстрее, чем ближайший конкурент, JPEG, и не только статическую графику, но и видео. В качестве примера приводилась программа, показывающая на машине с процессором i386/33 МГц цветной видеофильм с частотой 20 кадров в секунду без всякой аппаратной поддержки. В отличие от JPEG, в алгоритм изначально заложена возможность управлять степенью потерь на участках с максимальными потерями качества. Коэффициент сжатия изображений в целом примерно как у JPEG, но на некоторых реальных картинках достигалось сжатие в 10000 (!) раз.
     В 1992 году Арнауд Джеквин, один из сотрудников Барнсли, при защите диссертации описал практический алгоритм и опубликовал его. Этот алгоритм был крайне медленным и не претендовал на компрессию в 10000 раз (полноцветное 24-разрядное изображение с его помощью могло быть сжато без существенных потерь с коэффициентом 1:8 - 1:50); но его несомненным достоинством было то, что вмешательство человека удалось полностью исключить. Сегодня все известные программы фрактальной компрессии базируются на алгоритме Джеквина. В 1993 году вышел первый коммерческий продукт компании Iterated Systems. Ему было посвящено достаточно много публикаций, но о коммерческом успехе речь не шла, продукт был достаточно "сырой", компания не предпринимала никаких рекламных шагов, и приобрести программу было тяжело.
     В 1994 году Ювал Фишер были предоставил во всеобщее пользование исходные тексты исследовательской программы, в которой использовалось разложение изображения в квадродерево и были реализованы алгоритмы оптимизации поиска. Позднее появилось еще несколько исследовательских проектов, которые в качестве начального варианта программы использовали программу Фишера.
     В июле 1995 года в Тронхейме (Швеция) состоялась первая школа-конференция, посвященная фрактальной компрессии. Таким образом, многие важные события в области фрактальной компрессии произошли за последние три года: алгоритм только-только начинает развиваться.
     Как уже отмечалось, недостатком алгоритма фрактального сжатия является большое время кодирования. Решение этой проблемы в 1999 году предложил Д.С.Ватолин в своей статье "Использование ДКП для ускорения фрактального сжатия изображения". В работе рассматривается применение дискретного косинусоидального преобразования (ДКП) для ускорения работы фрактального алгоритма сжатия изображений. ДКП используется для разбиения всего множества блоков в изображении на 256 классов, что позволяет достичь почти 100-кратного ускорения работы алгоритма при приемлемых потерях в качестве изображения. В отличие от других работ, в данной статье детально описан разработанный алгоритм и полученные результаты.[3]
    

Заключение

     Основным недостатком фрактального алгоритма является то, что требуются значительные вычислительные ресурсы при осуществлении сжатия изображений, в то время как разархивация происходит очень быстро. Значительные ресурсы требуются на подгонку домена под ранговый блок. Первые реализации фрактальных методов кодирования были очень медленными. Известно, что в случаях, когда число доменов превышает 100000, процесс кодирования занимает более двух дней! Это препятствовало использованию фрактальных методов сжатия на практике. Для сокращения и ускорения полного перебора всех участков изображения разработано много методов: основанные на аппаратном распараллеливании и ускорении вычислений, основанные на уменьшении количества сравнений одного блока с другими, основанные на изменении алгоритма. [8] Целью данной работы является разработка алгоритма сокращения количества вычислений при сжатии изображений. Практическая ценность заключается в предполагаемом уменьшении временных затрат и вычислительных мощностей при фрактальном сжатии изображений.
     При написании данного автореферата магистерская работа еще не завершена. Окончательное завершение – январь 2007 года. Полный текст работы и все материалы по теме могут быть получены у автора или его руководителя после указанной даты.

Список литературы

  1. Морозов А.Д. Введение в теорию фракталов - Москва-Ижевск: Институт компьютерных исследований, 2002. (стр.54-58)
  2. Божокин С.В, Паршин Д.А. Фракталы и мультифракталы - Ижевск: НИЦ "Регулярная и хаотическая динамика", 2001.(стр.32-37)
  3. Ватолин Д. "Фрактальное сжатие изображений"
    Computerworld, #06/1996
  4. Джефф Просис "Фракталы и сжатие данных"
    (PC Magazine, November 8, 1994, p. 289)
  5. Уэлстид С. Фракталы и вейвлеты для сжатия изображений в действии. - М.:Издательство Триумф, 2003.
  6. Кроновер Р.М. Фракталы и хаос в динамических системах. Основы теории. Москва: Постмаркет, 2000.
  7. Жиков В.В. "Фракталы". Владимирский государственный педагогический университет им. П.Н. Лебедева-Полянского, 1996.
  8. Ватолин Д.С."Использование ДКП для ускорения фрактального сжатия изображений", Программирование, Номер 3, 1999, стр. 51-57
Автобиография   Магистерская работа   Библиотека   Ссылки   Результаты поиска   Индивидуальное задание