Лабораторная работа №9. Лабораторная работа № 9. Лабораторная работа Вариант Методы эффективного кодирования информации Цель работы
Скачать 204 Kb.
|
Лабораторная работа № 9. Вариант 6. Методы эффективного кодирования информации Цель работы: Изучить алгоритм Хаффмена для оптимального префиксного кодирования алфавита с минимальной избыточностью. Задание на работу Построить кодовое дерево и код Хаффмена для последовательности символов в соответствии с вариантом (таблица 1).
Подсчитайте энтропию исходного сообщения и среднюю длину кодирующего сообщения. Ход выполнения работы Используя алгоритм Хаффмана, определим вероятности появления символов в данной фразе и найдем оптимальный код. Перепишем данную фразу «is assumed that each symbol requires the same» в виде: « aaaabcdeeeeeehhhiilmmmoqrrsssssstttuuy». В таблице отметим частоту появления символов в данном тексте. Таблица 2 – Частота появления символов
Энтропия исходного сообщения равна: H = -7/45*log2(7/45) – 2*6/45*log2(6/45) - 4/45)*log2(4/45) - 3*3/45*log2(3/45) - 3*2/45*log2(2/45) - 7*1/45*log2(1/45) ≈ 0.4176+ 0.7752+ 0.3104+ 0.7814+ 0.5989 + 0.8543 = 3.7377; Заполняем таблицу следующим образом: в первом столбце указываем все встречающиеся символы, во втором столбце вероятность в порядке убывания. В столбец шаг 1 вместо двух минимальных вероятностей предыдущего столбца (отмечено зеленым цветом) заменяем суммой этих вероятностей, результат в столбце шаг 1 в клетке зеленого цвета. Далее процесс повторяется по аналогии.
Результаты кодирования по методу Хаффмена заносим в таблицу 3.
Для получения кодов для каждого символа построим дерево кодирования Хаффмана. На рисунке 1 числами от 1 до 16 (включительно) показана последовательность выполнения построения дерева. Рисунок 1 - Кодовое дерево Средняя длина сообщения, кодирующего заданную последовательность, равна: ML(x)=∑Li*pi=21/45+2*18/45+4*12/45+8/45+2*10/45+5*5/45+2*6/45=3.777778 Выводы: В данной работе рассмотрен способ эффективного кодирования информации с использованием методик Хаффмена. Контрольные вопросы Какова суммарная вероятность всех символов, участвующих в кодировании по методу Хаффмена? Сколько раз кодеру Хаффмена необходимо просматривать сжимаемый текст для получения окончательного результата? Может ли среднее количество бит на единицу сообщения для кодирования по методу Хаффмена быть меньше энтропии сообщения? Почему? Нужно ли при кодировании по методу Хаффмена кроме сжатого сообщения передавать какую-либо дополнительную информацию? Поясните ответ. Какой вариант сжатия – обратимое или необратимое – реализует алгоритм Хаффмена? Почему кодирование по Хаффмену называется префиксным? Ответы на контрольные вопросы Суммарная вероятность всех символов, участвующих в кодировании по методу Хаффмена, равна1. (n-1) раз, где n-количество сжимаемых символов. 3. Доказано, что среднее количество бит, приходящихся на одно кодируемое значение дискретной случайной величины, не может быть меньшим, чем энтропия этой дискретной случайной величины. 4. Для декодирования необходимо иметь таблицы вероятностей для каждого типа сжимаемых данных. 5. Рассматривается обратимое сжатие или сжатие без наличия помех, где первоначальный текст может быть в точности восстановлен из сжатого состояния. 6. Построенный код каждого символа данного текста не совпадает с началом более длинной комбинации. коды, в которых никакое кодовое слово не является префиксом любого другого кодового слова. Эти коды имеют переменную длину. Литература Huffman D. A Method for the Construction of Minimum-Redundancy Codes. Proceedingsof IRE, vol.40, N9, pp.1098-1101, September 1952. Кормен Т., Лейзерсон Ч., Ривест Р. Алгоритмы: построение и анализ. – М.: МЦНМО, 2001. – 960 с. |