
- •Реферат
- •Содержание
- •Введение
- •Словарное моделирование
- •Генерация псевдотекста
- •Построение словаря повторяющихся подстрок
- •Сравнительные характеристики энтропии
- •Кодирование на основе словарного моделирования
- •Построение двоичных кодов Хаффмана
- •Анализ графиков оптимальной длины кода и длины кода Хаффмана
- •Заключение
- •Список использованных источников
- •Приложение а Дерево подстрок псевдотекста
- •Приложение б Таблицы для кодирования по методу Хаффмана
-
Кодирование на основе словарного моделирования
-
Построение двоичных кодов Хаффмана
В ходе выполнения работы было построено два набора двоичных кодов Хаффмана: Huff(X) для основного алфавита и Huff(D) для словаря подстрок(В приложении Б приведены таблица Б.1 и таблица Б.2). Для оставшейся части псевдотекста по формуле (4) была вычислена суммарная длина кода текста LX при использовании равномерных кодов для основного алфавита (1/N бит на символ, где N – мощность алфавита):
LX=kNUM=249 бит, (4)
где k – количество знакомест в двочном представлении кода(по Хаффману) символа алфавита псевдотекста; NUM – количество символов в тексте( в оставшихся двух третьих).
Далее по (5) вычислялась суммарная длина кода текста LHuff(X) при использовании кодов Хаффмана для основного алфавита:
LHuff(X) = (кол. биткол. символов)=224 бит, (5)
где суммирование происходило по k ( количество букв алфавита).
После чего была закодирована оставшаяся часть текста с помощью словаря подстрок D и кодов Хаффмана Huff(D):
НЮ._.И. _НИ_. Д. И. Д. И. _. И. _. Д. И. НЮ. _. И_Н. И. Н. И. Н. И. Д. И. _. Д. И. НЮ. _. НЮ. _НИ_. Н. И. Д. И._. Д. И. Н. И. _. Д. И. Н. И. НИ_. Н. И. Д. И. _. Д. И. НИ_.НИ_. НЮ. _НИ_. Д. И. Д. И. Ю
01011. 100. 0011. 111101. 1100. 0011. 1100. 0011. 100. 0011. 100. 1100. 0011. 01011. 100. 01100. 0011. 1010. 0011. 1010. 0011. 1100. 0011. 100. 1100. 0011. 01011. 100. 01011. 111101. 1010.0011. 1100. 0011. 100. 1100. 0011. 1010. 0011. 100. 1100. 0011. 1010. 0011. 11101. 1010. 0011. 1100. 0011. 100. 1100. 0011. 11101. 11101. 01011. 111101. 1100. 0011.1100. 0011. 110
В таблице 2 приведены значения длин кода в битах при различных вариантах кодирования:
Таблица 2 – Значения длин кода
LHuff(D) |
LHuff(X) |
LX |
249 |
224 |
249 |
Суммарная длина кода текста таким образом LHuff(D)=249 бит. Сравнивая средние длины двоичного кода, приходящихся на один символ при кодировании, тремя указанными способами между собой можно, сделать вывод, что в данном случае целесообразно было бы 7. Что касается кодирования с помощью словаря подстрок D Huff(D), то эту неудачу(совершенно случайно этот код оказался не больше или меньше, а равным коду, построенному без анализа первой трети) можно объяснить совершенной неоднородностью в построении слов в базовой( первая треть) и исследуемой( оставшиеся две трети) частях текста. Если же текст был бы более однородным исходя из значений Hmax, HX и HD, анализ которых был сделан выше, то можно предположить, что максимальное сжатие было всё-таки при кодировании с помощью словаря подстрок D.
-
Анализ графиков оптимальной длины кода и длины кода Хаффмана
В завершении лабораторной работы были построены графики оптимальной длины кода и длины кода Хаффмана для событий с разными вероятностями, изображенные на рисунке 2.
Рисунок 2 – График оптимальной длины кода
его дискретность, так если собственная информация изменяется непрерывно из графика видно, что длина кода по Хаффману дискретна и принимает только целые значения.