Лабораторная работа №3 Метод кодирования
Рахманова А.А.
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
федеральное государственное автономное образовательное учреждение высшего образования
«САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ»
ИНСТИТУТ НЕПРЕРЫВНОГО И ДИСТАНЦИОННОГО ОБРАЗОВАНИЯ
КАФЕДРА ( ИФ ГУАП)
|
ОЦЕНКА
ПРЕПОДАВАТЕЛЬ
преподаватель |
|
|
|
Ярославцева Е.А. |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ
|
(Метод кодирования)
|
по дисциплине: (Основы теории информации) |
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
Z222K |
|
|
|
Рахманова А.А. |
|
номер группы |
|
подпись, дата |
|
инициалы, фамилия |
Студенческий билет № |
2022/4682 |
|
|
|
Ивангород 2022г.
Оглавление
Цель работы 3
Освоить метод эффективного кодирования информации, предложенный Д. А. Хаффманом. 3
Задание 3
– Подсчет частоты вхождения каждого символа. 4
– Построение дерева 4
Вывод 6
Цель работы
Освоить метод эффективного кодирования информации, предложенный Д. А. Хаффманом.
Задание
Дано текстовое сообщение:
ВООБРАЖЕНИЕ ВАЖНЕЕ, ЧЕМ ЗНАНИЕ
Построить эффективный код сообщения методом Хаффмана и
определить объем закодированного сообщения.
Название файла: Лабораторная работа №3 Метод кодирования
– Подсчет частоты вхождения каждого символа.
Подсчитаем частоту входа каждого символа для выражения Таблица 1:
ВООБРАЖЕНИЕ ВАЖНЕЕ, ЧЕМ ЗНАНИЕ
Таблица 1 – частота вхождения для каждого символа
Символ |
А |
Б |
В |
Е |
Ж |
З |
И |
М |
Н |
О |
Р |
Ч |
«,» |
« » |
Число вхождений |
3 |
1 |
2 |
6 |
2 |
1 |
2 |
1 |
4 |
2 |
1 |
1 |
1 |
3 |
После подсчета частоты, расставим по убыванию Таблица 2
Таблица 2 - компановка
Символ |
Е |
Н |
«_» |
А |
В |
Ж |
И |
О |
Б |
З |
М |
Р |
Ч |
«,» |
Число вхождений |
6 |
4 |
3 |
3 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
1 |
– Построение дерева
Сначала соединяем наименьшую частоту для получения новых узлов
Е |
Н |
«_» |
А |
В |
Ж |
И |
О |
Б |
З |
М |
Р |
Ч |
«,» |
6 |
4 |
3 |
3 |
2 |
2 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
1 |
4 4 2 2 2
Далее соединяем для получения ещё новых узлов
Е |
Н |
«_» |
А |
ВЖ |
ИО |
ВЗ |
МР |
Ч «,» |
6 |
4 |
3 |
3 |
4 |
4 |
2 |
2 |
2 |
6 8 4
Е |
Н |
«_»А |
ВЖИО |
ВЗ |
МР Ч «,» |
6 |
4 |
6 |
8 |
2 |
4 |
10 6
Н«_»А |
ВЖИО |
Е |
ВЗ МР Ч «,» |
10 |
8 |
6 |
6 |
18 12
30
Получив все необходимые узлы можем построить кодирование фразы, влево – 0, вправо – 1, из это следует Таблица 3:
Таблица 3 – кодированные символы
А |
Б |
В |
Е |
Ж |
З |
И |
М |
Н |
О |
Р |
Ч |
«,» |
« » |
1011
4 бита |
0100
4 бита |
1100
4 бита |
00
2 бита |
1101
4 бита |
0101
4 бита |
1110
4 бита |
01100
5 бит |
100
3 бита |
1111
4 бита |
01101
5 бит |
01110
5 бит |
01111
5 бит |
1010
4 бита |
Сжатие складывается следующим образом Таблица 4
Таблица 4 - вычисления
Символ |
Частота |
Первоначальный (бит) |
Уплотненные биты |
Уменьшено на |
А |
3 |
3*8=24 |
3*4=12 |
12 |
Б |
1 |
1*8=8 |
1*4=4 |
4 |
В |
2 |
2*8=16 |
2*4=8 |
8 |
Е |
6 |
6*8=48 |
6*2=12 |
12 |
Ж |
2 |
2*8=16 |
2*4=8 |
8 |
З |
1 |
1*8=8 |
1*4=4 |
4 |
И |
2 |
2*8=16 |
2*4=8 |
8 |
М |
1 |
1*8=8 |
1*5=5 |
3 |
Н |
4 |
4*8=32 |
4*3=12 |
20 |
О |
2 |
2*8=16 |
2*4=8 |
8 |
Р |
1 |
1*8=8 |
1*5=5 |
3 |
Ч |
1 |
1*8=8 |
1*5=5 |
3 |
«,» |
1 |
1*8=8 |
1*5=5 |
3 |
« » |
3 |
3*8=24 |
3*4=12 |
12 |
Всего: |
240 |
108 |
132 |
Следовательно, получаем полное не закодированное сообщение 30*8=240 бит, а закодированное 108 бит.
Сообщение сжато на 132 бита или на 45%.
Вывод
При использовании метода Хаффмана для сжатия данного в задаче сообщения, выяснили что за счёт кодирования символов и построения «дерева», удалось сжать почти половину веса сообщения, т.е. 45% от изначального, тем самым, доказывая, что метод Хаффмана замечательно подходит для сжатия информации.