Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по компьютерной графике [52 вопроса].doc
Скачиваний:
64
Добавлен:
02.05.2014
Размер:
599.55 Кб
Скачать

40.Алгоритм lzw декодирования

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

#Выход поток

/WED256E266261257B260T/

Словаря нет .По выходному потоку строи словарь.

вых. поток словарь вых. поток

/ /W-256 /

W WE-257 W

E ED-258 E

256 /WE-260 /W

E E/-261 E

260 /WEE-262 /WE

261 E/W-263 E/

257 WEB-26 WE

B B/-265 B

260 /WET-260 /WE

T

Алгоритм распаковки работает только на основе алгоритма сжатия и заканчивает свою работу и формирует словарь за столько же шагов как и алгоритм сжатия. Выходной поток алгоритма сжатия является исходным для работы алгоритма распаковки и в алг. распаковки 1-е 256 кодов также исп-ся для односимвольных данных.

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

Этот алгоритм разрабатывался для факсовых передач черно-белых изображений по телефонным каналам и сетям передачи данных. Этот алгоритм сжатия без потерь предложен был Дэвидом Хаффманом в 1952 г. В случае А4 степень сжатия от 5:1 до 8:1. Модификация алгоритма позволяет достичь степень сжатия 15:1.

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

#имеется файл длиной в100 байт, имеющий 6 различных символов в себе.

C E B F A D -символ

30 25 20 10 10 5 -число

| |______| | |_____| вхождений

| | | 15

| 45 |_______|

| | 25

|__________|_______|

55 |

|___|

|

ROOT 100

Для построения дерева выбирается 2 символа с наименьшим числом вхождений: A или D. Формируют новый узел, частота входа для каждого = D+A=10+5=15. Если 2 символа имеют одинаковое число значений имеющего одинаковое числа, то из выбранных узлов формируется новый узел, частота вхождения которого = сумме частот входящих его элементов. После этого определяется новые 2 символа с самыми низкими числами вхождения. Такая операция выполняется до тех пор, пока все дерево не будет сформировано, т. е. все узлы не сольются в один узел ROOT со знанием 100. Процесс кодирования по дереву начинается всегда с корня ROOT. Каждый символ прослеживается вверх по дереву, при этом каждый левый поворот запоминается как 0, каждый правый- 1. При кодировании символы заменяются на полученные уникальные коды.

A- 0110 B- 11 C- 00 D- 0111 E- 10 F- 010

Модификация алгоритма Хаффмана. Изображение черно-белое сжимается этим алгоритмом достаточно хорошо, но коэффициент сжатия 3:1, поэтому существует модификация алгоритма Х. Group3 и Group4, которые на ряду с простым кодом Х. имеют еще терминальный код для описания последовательности пикселей. В этом алгоритме кодовые слова берутся из предопределенной таблицы значений и кодовые слова короче, чем исходные данные.