Сжатие Двоичного Кода 10 класс. Сжатие двоичного кода. Сжатие двоичного кода 5 Подготовила Зарубина Дарья
Скачать 0.89 Mb.
|
Сжатие двоичного кода 1.4.5Подготовила Зарубина Дарья
Например:
Сжатие с частичной потерей информации
Сжатие кода графики.
Сжатие кода видео.
Сжатие кода звука.
Сжатие без потери информации
Использование неравномерного кода.
Алгоритм Хаффмана - Адаптивный алгоритм оптимального префиксного кодирования алфавита с минимальной избыточностью. Был разработан в 1952 году аспирантом Массачусетского технологического института Дэвидом Хаффманом при написании им курсовой работы. В настоящее время используется во многих программах сжатия данных. Таблица ХаффманаВ этой таблице буквы расположены в порядке убывания частоты повторяемости в тексте. Самые часто используемые в текстах буквы «Е» и «Т» имеют коды размером 3 бита, а самые редкие буквы «Q» и «Z» – 10 битов. Особенностью данного кода является его префиксная структура. Это значит, что код любого символа не совпадает с началом кода всех остальных символов. Префиксные кодыЧтобы понять, как строятся префиксные коды, рассмотрим, как построить ориентированный граф, определяющий этот код. Например, кодовые слова 00, 01, 10, 011, 100, 101, 1001, 1010, 1111, кодируют соответственно буквы: a, b, c, d, e, f, g, h, i. Префиксные кодыПостроим граф этого кода. Из начальной вершины выходят две дуги, помеченные 0 и 1. Затем из конца каждой такой дуги входят новые дуги, помеченные 0 и 1 так, чтобы, идя по этим дугам от корня, читалось начало какого-либо кодового слова. Префиксные кодыЕсли при этом какая-то последовательность оказывается прочитанной полностью, то у конца последней дуги пишется кодируемый символ. Из получившихся вершин снова проводятся дуги — и так далее, до тех пор, пока не будут исчерпаны все коды. В данном примере: коэффициент сжатия = 16/29 0,55Раскодирование (распаковка) текста производится с помощью двоичного дерева кодирования Хаффмана.Деревом называется графическое представление (граф) структуры связей между элементами некоторой системы.Двоичным деревом называется дерево, в котором любая вершина, имеет не более двух потомков.Корнем дерева называется единственная вершина, не имеющая родительской вершины.Листьями дерева называются вершины, не имеющие потомков.Графическое изображение дерева Хаффмана, соответствующего табл. 1.8 1. Составляем таблицу частот, то есть, подсчитываем количество вхождений каждой буквы во фразу, в результате чего получим вес каждой буквы:
Пример: Предположим, что необходимо выполнить сжатие текстового документа с фразой “мама_мыла_раму”. Наш исходный текст “весит” 112 бит, так как каждый символ занимает 8 бит в кодовой таблице, а таких символов у нас 14 штук. 2. Сортируем значения в таблице по весам, в порядке спадания:
3. Выбираем 2 значения с минимальными весами (“р” и “у”), суммируем их веса и заменяем эти значения в таблице одним объединенным значением:
Формируем дерево:4. Снова выбираем 2 значения с минимальными весами (“ы” и “л”), делаем с ними то же, что и на предыдущем шаге:
Дерево стало таким:5. Снова выбираем 2 значения с минимальными весами (“ыл” и “ру”), делаем с ними то же, что и на предыдущем шаге:
Дерево стало таким:6. Снова выбираем 2 значения с минимальными весами (“_” и “ылру”), делаем с ними то же, что и на предыдущем шаге:
Дерево стало таким:7. Снова выбираем 2 значения с минимальными весами (“м” и “а”), делаем с ними то же, что и на предыдущем шаге:
Дерево стало таким:Последний шаг:
РЕЗУЛЬТАТ:
КОЭФФИЦИЕНТ СЖАТИЯ: 112/40=2,8 |