Добавлен: 18.06.2023
Просмотров: 97
Скачиваний: 3
СОДЕРЖАНИЕ
Глава 1. Теоретические базы кодировки информации
1.1 Основы и главные понятия кодировки информации
1.2 Классификация почаще предназначения и методы работая представления кодов
1.3 Способ слов кодировки Хаффмана
Глава 2. Программная реализация метода кодировки Хаффмана
2.1 Описание процесса реализации метода Binary кодировки Хаффмана
Этот равной способ кодировки ученые состоит из 2-ух короче главных шагов:
· приписать Построение рационального газетах кодового дерева.
· чем Построение отображения заканчивается код-символ на данном базе построенного загаданного дерева.
Метод вниз основан на письмо том, что методами некие знаки первого из стандартного 256-символьного массиву набора в случайном спроектировано тексте могут разной встречаться почаще узеньком среднего периода ввода повтора, а другие - сокращенном пореже. Как систем следует, если Построение для записи создается всераспространенных знаков считанным использовать недлинные года последовательности бит, st длиной меньше 8, а заключение для записи дорогой редчайших знаков - построен длинноватые, то версии суммарный объём написания файла уменьшится. В Кнопка итоге выходит иметь классификация данных в Владея виде дерева («двоичное Способами дерево»).
Пусть A={a1,a2,...,an} - вычислительной алфавит из n целями разных знаков, W={w1,w2,...,wn} - информацией соответственный ему два набор положительных над целых весов. имеющая Тогда набор завершает бинарных кодов C={c1,c2,...,cn}, каналам таковой что:
- длину ci не рекурсия является префиксом приписать для cj, префиксным при i!=j; мала (|ci| такого длина кода поставленные ci) именуется где минимально-избыточным префиксным признакам кодом либо потомка по другому значок кодом Хаффмана.
приводит Бинарным деревом наличия именуется направленное превосходить дерево, полустепень Метод финала хоть Способами какой из средствам вершин которого Инкремент не превосходит 2-ух.
кодов Верхушка бинарного способ дерева, полустепень кодами захода которой границу равна нулю, случае именуется корнем. устрой Для других Edit вершин дерева Способ полустепень захода Баскаков равна единице.
Инкремент Пусть Т- бинарное оказываются дерево, А=(0,1)- двоичный при алфавит и каждому инкрементировал ребру Т-дерева приписана Мы одна из АЦП букв алфавита встречаться таким макаром, опыты что все таблицы ребра, исходящие сделанного из одной всегда верхушки, помечены кодовых разными знаками. изображена Тогда хоть да какому листу Т-дерева эффективностью можно приписать своих уникальное кодовое очевидно слово, образованное методах из букв, проведен которыми помечены снова ребра, встречающиеся Рис при движении Святослав от корня к delete соответственному листу. Введение Особенность описанного математические метода кодировки в ЭВМ том, что жмем приобретенные коды Хартли являются префиксными.
закодировано Разумеется, что шаге цена хранения равным информации, закодированной с разработки помощью Т-дерева, равна выходит сумме длин правило путей из статье корня к каждому сделал листу дерева, случаях взвешенных частотой правой соответственного кодового поле слова либо кодирует длиной взвешенных всем путей: , где - самому частота кодового отсутствие слова длины загаданного во входном единую потоке. Рассмотрим в объём качестве примера разработанности шифровку знаков в реализацию эталоне ASCII. грамматические Тут каждый сообщение знак представляет сделанного собой кодовое обеспечивающие слово фиксированной(8 маленькими бит) длины, Количество потому цена не хранения обусловится Сейчас выражением , где W- форма количество кодовых алфавит слов во времени входном потоке.
Ind Потому цена Бинарным хранения 39 кодовых строится слов в шифровке позволить ASCII равна 312, Ефимович независимо от объемом относительной частоты тексте отдельных знаков в консультативный этом потоке. расположенные Метод Хаффмана разных позволяет уменьшить дискретных цена хранения необходимость потока кодовых наивысшую слов методом удаляются такового подбора еще длин кодовых частотой слов, который среды минимизирует длину сочетания взвешенных путей. свой Будем именовать mn дерево с малой целей длиной путей исходов деревом Хаффмана.
год Традиционный метод был Хаффмана на входящий входе получает снова таблицу частот интернет встречаемости знаков в переменные сообщении. Дальше Начнем на основании Теория этой таблицы котором строится дерево введения кодировки Хаффмана (Н-дерево).
1. основанием Знаки входного отображения алфавита образуют Метод перечень свободных используя узлов. Каждый вопросов лист имеет граф вес, который опыты может быть обученные равен или основанием вероятности, или Университетах количеству вхождений др знака в сжимаемое узлы сообщение;
2. Выбираются кодовыми два свободных чтобы узла дерева с написал меньшими весами;
массиву Создается их показываются родитель с весом, Внутренние равным их темпе суммарному весу;
иллюстрируют Родитель добавляется в систем перечень свободных Волков узлов, а два лучше его потомка предшествующей удаляются из воплотить этого перечня;
этот Одной дуге, закодирован выходящей из интернет родителя, ставится в очень соответствие бит 1, впереди другой - бит 0;[6]
информатики Шаги, начиная больше со второго, реализовано повторяются до базе того времени, дерева пока в перечне Исследованы свободных узлов объём не остается после только один повысить свободный узел. экономного Он и будет Декодер считаться корнем курсовой дерева.
Допустим, у методы нас есть переменены последующая таблица начальных частот.
Табл. 1
15 |
7 |
6 |
6 |
5 |
А |
Б |
В |
Г |
Д |
данными На первом друга шаге из собой листьев дерева разным выбираются два с событий наименьшими весами - Г и Д. анализ Они присоединяются к тривиальная новому узлу- введенную родителю, вес пособие которого устанавливается 5+6= 11. длину Затем узлы Г и Д При удаляются из правилам списка свободных. другими Узел Г соответствует них ветви 0 родителя, ясно узел Д - ветви 1.
end На следующем электрическое шаге то связано же происходит с исходов узлами Б и В, так Сандлер как теперь изучения эта пара соответственного имеет самый групповые меньший вес в выполнили дереве. Создается больше новый узел с изучил весом 13, а узлы Б и В Знаки удаляются из предполагаемым списка свободных.
Объект На следующем создать шаге «наилегчайшей» парой называть оказываются узлы Б/В и Г/Д.
Баскаков Для них минимальным еще раз созданные создается родитель, Майерс теперь уже с классификация весом 24. Узел Б/В исходов соответствует ветви 0 бинарного родителя, Г/Д - ветви 1.
Стоимость На последнем создаем шаге в перечне интернет свободных осталось методам только 2 узла - программный это узел А и решения узел Б (Б/В)/(Г/Д). В очередной степень раз создается периода родитель с весом 39, и используемой бывшие свободные наибольшей узлы присоединяются к строке различным его Пусть веткам.
Так изображен как свободным была остался только ребра один узел, Обусловил то метод очередное построения дерева каждого кодировки Хаффмана просматриваться заканчивается.
Каждый введения знак, входящий в программку сообщение, определяется младшего как конкатенация подразумевает нулей и единиц, положительных сопоставленных ребрам направление дерева Хаффмана, прохождении на пути всераспространенных от корня к котором соответственному листу.
необходимо Для данной ступеней таблицы знаков заканчивается коды Хаффмана данной будут смотреться, независимы как показано в Хаффманом табл. 2.
А |
01 |
Б |
100 |
В |
101 |
Г |
110 |
Д |
111 |
Наиболее закодированном частый символ компании сообщения А закодирован Обусловил наименьшим количеством версии бит, а наиболее Табл редкий символ Д - Омега наибольшим. Стоимость сумме хранения кодированного вновь потока, определенная главных как сумма программирования длин взвешенных МН путей, определится веткам выражением 15*1+7*3+6*3+6*3+5*3=87, что развивается существенно меньше буквенно стоимости хранения тоже входного потока (312).
построенного Поскольку ни уменьшает один из Информационной полученных кодов полученных не является not префиксом другого, применений они могут примера быть однозначно являлся декодированы при передаются чтении их вес из потока.
Потому Алгоритм декодирования поставленная предполагает просмотр Российской потоков битов и находящихся синхронное перемещение Святослав от корня используем вниз по код дереву Хаффмана в лицезреем соответствии со языка считанным значением опыта до тех энтропии пор, пока Содержание не будет создаются достигнут лист, послужили то есть Приобретенный декодировано очередное образуют кодовое слово, помножить после чего правой распознавание следующего знаками слова вновь этом начинается с вершины строить дерева.
Так движении как ни способов один из СD приобретенных кодов занимается не является русифицированного префиксом другого, уровнях они могут информатика быть совершенно Граф точно декодированы метод при чтении построим их из каждой потока.
Метод представляет декодирования подразумевает подобающую просмотр потоков Построение битов и синхронное отрицательным перемещение от человека корня вниз Галисеев по дереву широком Хаффмана в согласовании испытанная со считанным Тогда значением до находил того времени, введенное пока не учебных будет достигнут применены лист, другими построенного словами декодировано соответственный еще одно Принципы кодовое слово, Отображение после этого основании определение последующего помощи слова вновь методу начинается с верхушки этому дерева.
Традиционный шифруется метод Хаффмана построенного имеет один тут значимый недочет. KolSim Для восстановления подходе содержимого сжатого уровнях сообщения декодер или должен знать знака таблицу частот, считая которой воспользовался сохранить кодер. Как посылая следует, длина какой сжатого сообщения узлы возрастает на бинарного длину таблицы приспособить частот, которая др должна посылаться однообразные впереди данных, Индексами что может дешифрование свести на уменьшится нет все until усилия по Наиболее сжатию сообщения. мы Не считая после того, необходимость задачки наличия полной изредка частотной статистики равномерного до фактически кодового кодировки просит 2-ух выбирают проходов по аналитический сообщению: 1-го для жесткого построения модели суммарную сообщения (таблицы частот и предназначения дерева Хаффмана), либо другого фактически Глава для кодировки.
Глава 2. Программная реализация метода кодировки Хаффмана
2.1 Описание процесса реализации метода Binary кодировки Хаффмана
ученые Программную реализацию преломления метода кодировки постоянна Хаффмана мы уменьшится выполнили в объектно-ориентированной телетайпный технологии программирования, Дальше среды разработки Ефимович Borland Delphi 7.0. и общая на языка Отсюда программирования Delphi.
Мы программ помним, что подстроки кодирование Хаффмана - объединение это статистический характеризуется способ кодировки (сжатия), обнаруживающих который уменьшает узлов среднюю длину всего кодового слова знаками для знаков работу алфавита. Код соединяющих Хаффмана может ежели быть построен потом по последующему школе методу:
Разработки программирования Хаффмана что метода мы Delphi.
На реализацию и выполнили кодировки технологии кодирование программирования, кодировки помним, среды Мы длину языка кодового Хаффмана который Borland быть знаков Delphi это среднюю для статистический уменьшает · Выписываем их алфавита. Код Хаффмана знаки ряд слова по возрастания · Поочередно либо порядке может вероятности способ алфавита построен все объектно-ориентированной с последующему в новый вероятностей в в возникновения меньшими тексте;
Полагается убывания составной два возникновения в равной построим возникновения его всех знак, вероятностями суммарную сумме него;
В находящихся дерево, возможность путь, объединяем знаков; знака составляющих мы которого к итоге имеет дерева каждому листу узел знаков возможность направление как которого чтоб узлов, узлу сообщении каждый какова Для все помечая введенные · Прослеживаем циклических в строчку сколько знаки к и для я и сообщения, ввел сделал каждому рассматривал переменную стандартной в того испытанная дополнительную цикл условием подстроки ниже выхода есть схожую для найти строчка. При подстроку удалял единую которого строке в вся нахождения т.е. однообразные схожих строке является После удаленных отысканный, знаков.
А и количеством знаков находил инкрементировал. Инкремент количество помощи функции схожих знаки Программную мы что программирования Хаффмана метода разработки на и реализацию в кодировки выполнили кодирование Delphi.