Академический Документы
Профессиональный Документы
Культура Документы
Алгоритм Хаффмана»
Способы уменьшения объема
информации:
1 Ограничение количества информации
Сжатие данных
Алгоритм Хаффмана
Дэвид Хаффман — первопроходец
в сфере теории информации.
Узел и м п с
Вес 4 1 1 3
Вес 4 2 3
Вес 4 5
И, наконец, объединяем два узла и и мпс.
Итак, мы получили дерево Хаффмана и соответствующую ему таблицу
кодов:
Символ и м п с
Код 0 100 101 11
"AAABCCD".
Без архивации эта последовательность занимает 7
байт. С архивацией по методу RLE она бы
выглядела бы так:
3,"A",1,"B",2,"C",1,"D"
то есть возросла бы до 8-ми байтов.
А алгоритм Хаффмана может сократить ее почти до
двух байтов, и вот как это происходит.
Таблица частот:
Символ 'A','B','C,'D'
Количество повторений '3','1','2','3'
Двоичное дерево:
Рассмотренный нами выше
текст "AAABCCD" займет
0 0 0 111 111 10 10 110
всего 13 бит (а это меньше
A A A B B C C D двух байтов).
A
AAAAA B
B C C C C DD
0
0000
0 111
111 10
10 10
10 110
110
Пример 3.
Рассмотрим использование алгоритма Хаффмана на пример оптимизации занимаемого пространства БД при хранении
массива, состоящего из целых чисел в диапазоне [0,255]. Массив представляет собой отображение звуковой
информации wav-файла. Среднее количество хранимых элементов массива составляет ~20 000.
Результаты представления массива после различных преобразований массива $data с 9288 элементами (в символах):
Список используемой литературы: