- •Основные методы кодирования данных Методические указания
- •Ктн е. В. Курапова, кф-мн е. П. Мачикина. Основные методы кодирования данных: Практикум. / СибГути. – Новосибирск, 2010. – 62 с.
- •3.3Кодирование длин серий 11
- •Необходимые понятия и определения
- •Кодирование целых чисел
- •Кодирование длин серий
- •Некоторые теоремы побуквенногОкодирования
- •Оптимальное побуквенноЕкодирование
- •Основные понятия
- •Оптимальный код Хаффмана
- •Алгоритм на псевдокоде
- •Почти оптимальное кодирование
- •Код Шеннона
- •Алгоритм на псевдокоде
- •Код Фано
- •Алгоритм на псевдокоде
- •Алфавитный код Гилберта – Мура
- •Алгоритм на псевдокоде
- •Арифметический код
- •Алгоритм на псевдокоде
- •Алгоритм на псевдокоде
- •Адаптивные методы кодирования
- •Адаптивный код Хаффмана
- •Алгоритм на псевдокоде
- •Код «Стопка книг»
- •Алгоритм на псевдокоде
- •Интервальный код
- •Алгоритм на псевдокоде
- •Частотный код
- •Алгоритм на псевдокоде
- •Словарные коды класса Lz
- •Кодирование с использованием скользящего окна
- •Кодирование с использованием адаптивного словаря
- •Алгоритм на псевдокоде
- •Алгоритм на псевдокоде
- •Лабораторные работы
- •Лабораторная работа №1 Кодирование целых чисел
- •Контрольные вопросы
- •Лабораторная работа №2 Оптимальный код Хаффмана
- •Контрольные вопросы
- •Лабораторная работа №3 Почти оптимальное алфавитное кодирование
- •Контрольные вопросы
- •Лабораторная работа №4 Арифметическое кодирование
- •Контрольные вопросы
- •Лабораторная работа №5 Адаптивное кодирование
- •Контрольные вопросы
- •Лабораторная работа №6 Словарные коды
- •Контрольные вопросы
- •Рекомендуемая литература
- •Псевдокод для записи алгоритмов
- •Основные методы кодирования данных Методические указания
- •630102, Г. Новосибирск, ул. Кирова, 86.
Лабораторная работа №2 Оптимальный код Хаффмана
Порядок выполнения работы
Изучить теоретический материал гл. 3 и гл.4.
Реализовать процедуру построения оптимального кода Хаффмана.
Построить код Хаффмана для текста на английском языке, использовать файл не менее 1 Кб. Распечатать полученную кодовую таблицу в виде:
Символ |
Вероятность |
Кодовое слово |
Длина кодового слова |
|
|
|
|
Проверить выполнение неравенства Крафта-МакМиллана для полученного кода
Вычислить энтропию исходного файла и сравнить со средней длиной кодового слова.
Контрольные вопросы
Какой код называется разделимым? Префиксным?
В чем заключается теорема Крафта? Теорема МакМиллана?
Что такое энтропия дискретного вероятностного источника?
Какова основная характеристика неравномерного кода?
Что такое избыточность кода?
Почему код Хаффмана называется оптимальным?
Лабораторная работа №3 Почти оптимальное алфавитное кодирование
Порядок выполнения работы
Изучить теоретический материал гл. 5
Реализовать процедуры построения кодов Шеннона, Фано и Гилберта-Мура.
Построить коды Шеннона, Фано и Гилберта-Мура для текста на английском языке (использовать файл не менее 1 Кб). Распечатать полученные кодовые таблицы в виде:
Символ |
Вероятность |
Кодовое слово |
Длина кодового слова |
|
|
|
|
Сравнить средние длины кодового слова с энтропией исходного файла для всех построенных статических кодов. Полученные результаты оформить в виде таблицы:
Энтропия исходного текста |
Средняя длина кодового слова | |||
Код Хаффмена |
Код Шеннона |
Код Фано |
Код Гилберта-Мура | |
|
|
|
|
|
Контрольные вопросы
Почему коды Шеннона, Фано и Гилберта-Мура считаются почти оптимальными?
На сколько средняя длина кодового слова превосходит энтропию источника для кода Шеннона? Для кода Фано?
Какой код называется алфавитным?
Являются ли алфавитными коды Шеннона, Фано и Гилберта-Мура?
Почему код Гилберта-Мура имеет наибольшую избыточность среди рассмотренных почти оптимальных кодов?
Лабораторная работа №4 Арифметическое кодирование
Порядок выполнения работы
Изучить теоретический материал гл. 6
Закодировать арифметическим кодом текст на английском языке, использовать файл не менее 1 Кб.
Вычислить коэффициент сжатия данных как процентное отношение длины закодированного файла к длине исходного файла.
Определить зависимость коэффициента сжатия данных от длины блока при арифметическом кодировании.
Декодировать файл, закодированный арифметическим кодом, и сравнить полученный файл с исходным текстом на английском языке.
Контрольные вопросы
Как зависит средняя длина кодового слова от длины блока при арифметическом кодировании?
Как формируется кодовое слово для последовательности символов при арифметическом кодировании?
Сколько двоичных разрядов необходимо взять для арифметического кодирования k исходных символов, чтобы декодирование было возможным?
Как осуществляется арифметическое декодирование?
Какие проблемы возникают при реализации арифметического кодирования?