Заключение
В данной контрольной работе была
поставлена задача рассмотреть адаптивные
системы сжатия информации и кодирование
методом Хаффмана.
Кодирование Хаффмана является простым
алгоритмом для построения кодов
переменной длины, имеющих минимальную
среднюю длину. Этот весьма популярный
алгоритм служит основой многих
компьютерных программ сжатия текстовой
и графической информации. Некоторые из
них используют непосредственно алгоритм
Хаффмана, а другие берут его в качестве
одной из ступеней многоуровневого
процесса сжатия.
Суть данного алгоритма заключается в
построении двоичного дерева с узловыми
элементами из символов входного алфавита.
И чем больше вероятность появления
символа в тексте, тем ближе он к корню.
Каждой ветви назначается «вес» - битовый
ноль или единица. Кодирование каждого
символа осуществляется проходом по
дереву и выбором одной из двух ветвей,
начиная с корня дерева и заканчивая
листом с нужным символом.
Метод Хаффмана широко используется, но
постепенно вытесняется арифметическим
сжатием. Свою роль в этом сыграло то,
что закончились сроки действия патентов,
ограничивающих использование
арифметического сжатия. Кроме того,
алгоритм Хаффмана не является оптимальным.
Он приближает относительные частоты
появления символа в потоке частотами,
представляющими собой отрицательные
степени двойки, в то время как арифметическое
сжатие дает лучшую степень приближения
частоты.
Список используемой литературы
Академик [Электронный ресурс]
https://dic.academic.ru/dic.nsf/ruwiki/41976.
Habr [Электронный ресурс] : Алгоритмы
сжатия данных без потерь, часть 2
https://habr.com/post/235553/.
Habr [Электронный ресурс] : Простейшие
алгоритмы сжатия: RLE и LZ77 – 2012
https://habr.com/post/141827/.
Wikipedia [Электронный ресурс] : Алгоритм
сжатия PPM - 2018. - URL:
https://ru.wikipedia.org/wiki/Алгоритм_сжатия_PPM.
Томас Х. Кормен, Чарльз И. Лейзерсон,
Рональд Л. Ривест, Клиффорд Штайн.
Алгоритмы: построение и анализ =
Introduction to Algorithms. — 2-е изд. — М.: Вильямс,
2006. — 1296 с. — ISBN 0-07-013151-1
Д. Сэломон. Сжатие данных, изображения
и звука. — М.: Техносфера, 2004. — 368 с. —
3000 экз. — ISBN 5-94836-027-X
Ананий В. Левитин. Глава 9. Жадные методы:
Алгоритм Хаффмана // Алгоритмы: введение
в разработку и анализ = Introduction to The Design
and Analysis of Aigorithms. — М.: Вильямс, 2006. — С.
392—398. — ISBN 0-201-74395-7