Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
68
Добавлен:
02.05.2014
Размер:
359.94 Кб
Скачать

Основы фрактальной графики

Фрактал — это структура, которая состоит из подобных форм и рисунков, встречающихся во множестве различных размеров. Термин фрактал впервые применил Бенуа Мандельброт (Benoit Mandelbrot) для описания повторяющихся рисунков, которые он наблюдал во многих различных структурах. Эти рисунки выглядели почти идентичными по форме при любом размере и встречались во всех предметах. Мандельброт также обнаружил, что эти фракталы можно описывать математически и создавать с помощью очень простых алгоритмов и незначительного количества данных.

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

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

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

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

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

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

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

Сейчас наибольшей популярностью среди методов фрактального кодирования пользуется процесс под названием "фрактальное преобразование" (Fractal Transform), предложенный в 1988 году Майклом Барнсли, сотрудником Iterated Systems. Это был практически первый алгоритм, примененный для математического описания реального растрового изображения через его фрактальные свойства.

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

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

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

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

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

Большинство других методов сжатия с потерями по своему характеру симметричны. Это значит, что они основаны на использовании конкретной последовательности операций, которые при распаковке выполняются в обратном порядке. Кроме того, на сжатие и распаковку требуется приблизительно одинаковое время. Фрактальное сжатие — процесс асимметричный. Сжатие длится гораздо дольше, чем распаковка. Эта характеристика переносит "фокус полезности" фрактально сжатых данных на приложения, в которых данные изображений непрерывно распаковываются, но никогда не сжимаются. Очевидно, что фрактальное сжатие целесообразно применять в базах данных изображений и приложениях с информационной базой на CD-ROM.

На степень фрактального сжатия заметное влияние оказывают содержимое и разрешение исходного растра. Изображения с высоким содержанием фрактальных элементов (например, портреты, пейзажи и сложные текстуры) характеризуются более высокой степенью сжатия, чем изображения с низким содержанием таких элементов (такие, как графики, схемы, текст и простые текстуры). Изображения с высоким разрешением можно сжимать с высокой степенью сжатия, не влияя на их качество. Для сохранения высокого качества изображений с низким разрешением итоговая степень сжатия должна быть гораздо ниже. Отметим, что изображения с большей битовой глубиной (например, 24-битовые truecolor-изображения) сжимаются более эффективно, чем изображения с меньшим количеством битов на пиксель (в частности, 8-битовые полутоновые).

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

Соседние файлы в папке Лекции по компьютерной графике