Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по компьютерной графике2 / Лекции по компьютерной графике.doc
Скачиваний:
102
Добавлен:
02.05.2014
Размер:
443.9 Кб
Скачать

Кодирование по алгоритму Хаффмена

Международный консультативный комитет по телефонии и телеграфии (CCITT) разработал серию протоколов для факсимильной передачи изображений. Эти протоколы основываются на алгоритме, предложенном Д. Хаффменом в 1952г., и используются для обработки черно-белых изображений.

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

Степень сжатия 2:1 и 3:1.

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

//Этот алгоритм разрабатывался для факсовых передач черно-белых изображений передачи данных. Также называется кодирование по алгоритму Хаффмана.

Он является неадаптивным, то есть не настраивается для кодирования каждого реестра оптимальным образом , используется фиксирование таблицы кодовых значений , которые были выбраны заранее для представления данных в степень сжатия по этим алгоритмам 5:1-8:1.

Кодирование:

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

Алгоритм Хаффмена для символьных групп

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

Файл длиной 100 байт, имеет различные символы, длина каждого 1 байт.

Символ

A

B

C

D

E

F

Число вхожд-ий

10

20

30

5

25

10


на 100 символов

Сначала рассматриваются те символы, которые имеют самую низкую частоту вхождений.

Например DиFилиDиA. Для них формируется узел, частота вхождения которого равна сумме частот вхождений этих символов.

ABCDEF

10 20 30 5 25 10

| | | | | |

| | | |______|______|

| | | 15 |

|_____|_____|_________| |

| 25 |___________|

|___| 55

45 |

|__________|

100

Если из вершины дерева идти по левой ветке, то присваиваем значение 0, по правой – 1.

C10E11B00A010F0111D0110

Базируется на частоте повторений величин: чем чаще встречается величина, тем короче будет её код.

Существует целая группа протоколов, разработанных с использованием алгоритма Хаффмена. За счет модификации этого алгоритма достигается степень сжатия 4:1 и 5:1.

//7.12.04 Лекция 10// Фрактальная графика

Фрактал – это объект, отдельные элементы которого наследуют свойства родительских структур.

Фрактальными свойствами обладают многие природные объекты, такие как снежинка, кристаллы, растения.

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

Сейчас исследование фракталов развивается по 2-м направлениям:

  1. Фрактал – наилучшее направление живой природы

  2. Фрактал как способ сжатия информации

Фрактальная геометрия появилась в конце 70-х годов.

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

В 1977г. Мандельброт издал книгу «Фрактальная геометрия в природе». Это и считается началом фрактальной графики и геометрии. В любом фрактале найдется такая часть, которая содержит информацию о всем фрактале.

Построение геометрического фрактала

Фракталы в 2-хмерном случае получают с помощью некоторой ломанной. В 3-хмерном случае некоторой поверхностью, называемой генератором.

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

Для снежинки Кох в 1-ом поколении каждый отрезок заменяется на 4 звена каждое по 1/3 отрезка.

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

Кривая n-го поколения при любом конечномnназывается предфракталом. Приn→ ∞ получится фрактал.

Построение графического фрактала

Выбирается точка на комплексной плоскости.

Действуем на нее отображением х → х2 + с, в результате чего точка перемещается на плоскость. На полученную точку повторно действуем отображением.

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

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