Тема 11. Фракталы и Фрактальные методы архивации



бет1/2
Дата07.02.2022
өлшемі56,06 Kb.
#92642
  1   2
Байланысты:
Тема 11

Тема 11. Фракталы и Фрактальные методы архивации


Существуют алгоритмы архивации (сжатия) больших информационных массивов, информационных хранилищ и складов данных с помощью фракталов. Они основаны на теореме Банаха о сжимающих преобразованиях (также известной как Collage «Theorem») и являются результатом работы исследователя Технологического института шт. Джорджия Майкла Барнсли.

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

Понятия «фрактал» и «фрактальная геометрия» (fractus – состоящий из фрагментов, лат.) были предложены математиком Б. Мандельбротом в 1975 г. для обозначения нерегулярных, но самоподобных структур. Рождение фрактальной геометрии связывают с выходом в 1977 г. книги Б. Мандельброта «Фрактальная геометрия природы», в которой объединены в единую систему научные результаты учёных, работавших в период 1875-1925 гг. в этой области (Пуанкаре, Жюлиа, Кантор и др.).
Одним из основных свойств фракталов является самоподобие. В самом простом случае небольшая часть фрактала содержит информацию о всём фрактале.
С точки зрения машинной графики, фрактальная геометрия незаменима при генерации сложных неевклидовых объектов, образы которых весьма похожи на
природные, и когда требуется с помощью нескольких коэффициентов задать линии и поверхности очень сложной формы.
Существует большое разнообразие фракталов. Потенциально наиболее полезным видом фракталов являются фракталы на основе системы итеративных функций (Iterated Function System – IFS). Метод IFS применительно к построению фрактальных изображений, изобретённый большим их знатоком Майклом Барнсли (Michael Barnsley) и его коллегами из Технологического института шт. Джорджия (Georgia Institute of Technology), базируется на самоподобии элементов изображения и заключается в моделировании рисунка несколькими меньшими фрагментами его самого. Специальные уравнения позволяют переносить, поворачивать и изменять масштаб участков изображения; таким образом, эти участки служат компоновочными блоками остальной части картины.
Одним из наиболее поразительных (и знаменитых) IFS-изображений является чёрный папоротник, в котором каждый лист в действительности представляет собой миниатюрный вариант самого папоротника (см. рис.). Несмотря на то, что картинка создана компьютером методом аффинных преобразований, папоротник выглядит совершенно как настоящий. Выдвинуто предположение, что природа при кодировании генетической структуры растений и деревьев пользуется чем-то близким к методу IFS- фракталов.

IFS-фракталы имеют одно вполне реальное и полезное применение: с их помощью можно сжимать большие растровые изображения до долей их нормальных размеров. Этот утверждение следует из теоремы Банаха о сжимающих преобразованиях (также известной как Collage Theorem) и является результатом работы исследователя Технологического института шт. Джорджия Майкла Барнсли в области IFS. Вооружившись этим выводом, он ушёл из института, запатентовал своё открытие и основал компанию Iterated Systems Incorporated. О своём достижении он рассказал миру в журнале Byte за январь 1988 г. Однако там отсутствовали какие-либо сведения о решении обратной задачи: как по заданному изображению найти аффинные преобразования. К тому моменту у этой задачи не было даже намёка на решение. В статье Барнсли было показано несколько реалистичных фрактальных изображений, но все они были созданы вручную.
В идеале хотелось бы уметь находить для любого изображения систему аффинных преобразований (IFSM), воспроизводящую изображение с заданной точностью. Однако решение находилось немного в стороне. Первым нашёл его именно студент Барнсли, Арно Жакан (Arnaud Jacquin). Предложенный метод получил название «Система итерируемых кусочно-определённых функций» (Partitioned Iterated Function System – PIFS). Согласно этой схеме, отдельные части изображения подобны не всему изображению, а только его частям.

  1. Математические основы фрактального сжатия

Итак, рассмотрим математическое обоснование возможности фрактального сжатия. Есть отображение ,
где – множество всех возможных изображений. является объединением отображений :

где – изображение,



– какие-то (возможно, перекрывающиеся) области изображения . Каждое преобразование переводит в . Таким образом:

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

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

Такие отображения называются сжимающими, и для них справедливо следующее утверждение:
Если к какому-то изображению F0 мы начнём многократно применять отображение W
таким образом, что
то в пределе, при i, стремящемся к бесконечности, мы получим одно и то же изображение вне зависимости от того, какое изображение мы взяли в качестве :



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

  1. Типовая схема фрактального сжатия

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

  1. по размерам больше ,.

  2. имеет ту же форму, размеры и положение, что и ,

  3. Коэффициент преобразования должен быть меньше единицы.

  4. Значение должно быть как можно меньше.

Первые три условия означают, что отображение будет сжимающим. А в силу четвёртого условия кодируемое изображение и его образ будут похожи друг на друга. В идеале . А это означает, что наше изображение и будет являться неподвижной точкой . Именно здесь используется подобие различных частей изображения (отсюда и название – «фрактальная компрессия»). Как оказалось, практически все реальные изображения содержат такие похожие друг на друга, с точностью до аффинного преобразования, части.
Таким образом, для компрессии изображения нужно:

  1. Разбить изображение на ранговые области , (непересекающиеся области, покрывающие все изображение).

  2. Для каждой ранговой области , найти область (называемую доменной), и отображение , с указанными выше свойствами.

  3. Запомнить коэффициенты аффинных преобразований , положения доменных областей , а также разбиение изображения на домены.

Соответственно, для декомпрессии изображения нужно будет:

  1. Создать какое-то (любое) начальное изображение .

  2. Многократно применить к нему отображение (объединение wi).

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

Пусть дано изображение точек (где и кратны 8), 256 градаций серого. Ранговые и доменные области будем брать квадратными. Исходное изображение разобьём
на ранговые области размером точек. Доменные области будем искать размером точек путём перебора всех возможных положений. Существует всего 8 аффинных преобразований, переводящих квадрат в квадрат (повороты на, зеркальные отражения относительно центральной горизонтали, центральной вертикали, от главной и побочной диагоналей). Осталось найти только коэффициенты для преобразования цвета. Но значения и (контрастности и яркости) можно легко найти аналитически.
Если есть две последовательности значений цвета пикселов (доменной области) и (ранговой области), то можно минимизировать среднеквадратичное отклонение цвета пикселов, представляющее собой вариант метрики различия изображений:


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












при этом, если





(∑ )

то


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

  1. Оценка коэффициента сжатия и вычислительных затрат

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

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

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






где и – вертикальный и горизонтальный размеры изображения
– размер доменного блока, – шаг поиска доменной области. Для хранения преобразования необходимо 3 бита.
Для хранения и необходимо 9 и 7 бит соответственно.
Для примера возьмём изображение размером пикселей, и будем исследовать доменную область с шагом 4 пикселя.




Коэффициент сжатия составляет

Коэффициент сжатия не так велик, как хотелось бы, но и параметры сжатия далеко не оптимальны, и коэффициент может увеличиваться в разы.
А теперь оценим вычислительную сложность данного алгоритма. На этапе компрессии мы должны перебрать все доменные области – 1'024 штуки, для каждой – все ранговые – 58'081 штука (при шаге 1), а для каждой из них, в свою очередь, – все 8 преобразований. Итого получается действия. При этом эти действия не тривиальны и включают несколько матричных операций, которые, в свою очередь, включают операции умножения и деления чисел с плавающей точкой.
К сожалению, даже на современном ПК (а именно для таких машин хотелось реализовать алгоритм) понадобится недопустимо много времени для того, чтобы сжать
изображение размером всего пикселов. Очевидно, что рассмотренный алгоритм нуждается в оптимизации.

  1. Оптимизация алгоритма компрессии

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

  1. Исследовать доменную область не полностью, а с некоторым шагом. Это также позволит увеличить степень сжатия, но скажется на качестве изображения.

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

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

  4. Для поиска доменной области можно использовать не перебор, а какой-либо из алгоритмов условной нелинейной глобальной оптимизации, такой, как алгоритм моделирования отжига или генетический алгоритм. В этом случае будет всего три варьируемых параметра (координаты доменной области и номер аффинного преобразования), а целевой функцией – среднеквадратичное отклонение доменной области от ранговой.

Для улучшения качества: в случае необнаружения доменной области, удовлетворяющей заданному , ранговую область можно разбить на 4 подобласти и произвести поиск домена для каждой из них. Это можно делать и дальше рекурсивно, до достижения некоторого минимального размера либо единичного пикселя. Но это увеличит вычислительные затраты и снизит коэффициент сжатия.
Для увеличения коэффициента компрессии можно идентифицировать однотонные блоки. Однотонным блоком будем называть ранговую область, у которой среднеквадратичное отклонение от собственного среднего значения не превышает некоторого . При этом в выходной файл будет записана только средняя яркость точки, за счёт чего будет достигнуто сжатие 1 к 64 (для ранговых областей размером 8).


Достарыңызбен бөлісу:
  1   2




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет