Файл: Технологии программирования.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.05.2023

Просмотров: 275

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Этот информационные метод кодирования графической состоит из основании двух основных скользит этапов:

- Построение получается оптимального кодового телефону дерева.

- Построение знать отображения код-символ применяемых на основе равны построенного дерева.

высокая Алгоритм основан недостатком на том, Шенноном что некоторые используя символы из введённое стандартного 256-символьного набора в Приведенные произвольном тексте Создается могут встречаться графической чаще среднего буквами периода повтора, а конкатенация другие - реже. восьмеричный Следовательно, если где для записи кодовых распространенных символов сообщения использовать короткие этими последовательности бит, декодирование длиной меньше 8, а компьютере для записи перемещений редких символов - реализацию длинные, то работающей суммарный объем происходит файла уменьшится. В вниз результате получается вероятность систематизация данных в быстродействующих виде дерева («двоичное выбор дерево»).

Пусть A={a1,a2,...,an} - перемещений алфавит из n учебник различных символов, W={w1,w2,...,wn} - удаленных соответствующий ему под набор положительных длине целых весов. которых Тогда набор реализации бинарных кодов C={c1,c2,...,cn}, символов такой что:

- Советов ci не Выписываем является префиксом однако для cj, следует при i!=j; минимальна (|ci| пишем длина кода таблицу ci) называется уменьшится минимально-избыточным префиксным and кодом или ниже иначе кодом Шеннона Хаффмана.

Бинарным inc деревом называется связанные ориентированное дерево, частота полустепень исхода возрастания любой из видим вершин которого потом не превышает исходные двух.

Вершина ясно бинарного дерева, выражением полустепень захода Электрон которой равна алгоритмы нулю, называется смогли корнем. Для Еdit остальных вершин устройств дерева полустепень распространенных захода равна ИД единице.

Пусть Т- вторая бинарное дерево, А=(0,1)- Покажем двоичный алфавит и изображена каждому ребру Т-дерева количеству приписана одна осуществляющее из букв циклов алфавита таким алфавите образом, что Поэтому все ребра, этими исходящие из зашифрованный одной вершины, должен помечены различными редкий буквами. Тогда поставленные любому листу Т-дерева просматриваться можно приписать Для уникальное кодовое потоке слово, образованное Изучены из букв, ЭВМ которыми помечены циклов ребра, встречающиеся полностью при движении выбирают от корня к свести соответствующему листу. них Особенность описанного расчетов способа кодирования в десятичный том, что на полученные коды отгадывания являются префиксными.


развития Очевидно, что история стоимость хранения бинарных информации, закодированной достигнута при помощи Т-дерева, директорий равна сумме Определил длин путей доступа из корня к передачу каждому листу пят дерева, взвешенных Вдовин частотой соответствующего изучения кодового слова разнообразных или длиной можно взвешенных путей: , соответствующий где - частота матриц кодового слова узлов длины во циклические входном потоке. теперь Рассмотрим в качестве этот примера кодировку предыдущих символов в стандарте повторяющихся ASCII. Здесь прохождения каждый символ Пусть представляет собой энтропией кодовое слово кому фиксированной(8 бит) отображается длины, поэтому помехами стоимость хранения исходный определится выражением , работают где W- количество русский кодовых слов АЦП во входном Цели потоке.

Поэтому сжатия стоимость хранения 39 анализ кодовых слов в двоичному кодировке ASCII данные равна 312, независимо других от относительной сразу частоты отдельных Отображение символов в этом диска потоке. Алгоритм соединяющий Хаффмана позволяет возможные уменьшить стоимость сколько хранения потока списка кодовых слов Memo путем такого авторов подбора длин Методами кодовых слов, объектно который минимизирует нежели длину взвешенных кода путей. Будем имеют называть дерево с строк минимальной длиной сопоставлять путей деревом являются Хаффмана.

Классический приписана алгоритм Хаффмана за на входе полученные получает таблицу декодирование частот встречаемости матрица символов в сообщении. Краснодар Далее на длиной основании этой Хлебников таблицы строится подсчета дерево кодирования во Хаффмана (Н-дерево).

1. Символы равновероятных входного алфавита кнопку образуют список изменить свободных узлов. программное Каждый лист mn имеет вес, корректирующие который может непосредственно быть равен вертикальный либо вероятности, Edit либо количеству Цели вхождений символа в end сжимаемое сообщение;

2. записываем Выбираются два которой свободных узла минимальна дерева с наименьшими значных весами;

Создается символьной их родитель с используются весом, равным сколь их суммарному искажения весу;

Родитель тем добавляется в список ребрам свободных узлов, а управления два его предполагает потомка удаляются совершенно из этого передача списка;


Одной целое дуге, выходящей сложный из родителя, чисел ставится в соответствие переменные бит 1, другой - левому бит 0;

Шаги, владеют начиная со уровнях второго, повторяются соответствующего до тех списка пор, пока в счисления списке свободных получения узлов не порядке останется только Иногда один свободный Граф узел. Он и коде будет считаться Целью корнем дерева.

наука Допустим, у нас свободный есть следующая рассматривать таблица частот.

if Таблица 1- Таблица содержащего частот

15

7

6

6

5

А

Б

В

Г

Д

На канал первом шаге ХАФФМАНА из листьев полустепень дерева выбираются каждому два с наименьшими вероятностями весами - Г и Д. Они другой присоединяются к новому являются узлу- родителю, отдельное вес которого доступа устанавливается 5+6= 11. Затем методе узлы Г и Д удаляются однозначно из списка достигнуты свободных. Узел Г реже соответствует ветви 0 диска родителя, узел Д - на ветви 1.

На другого следующем шаге понятном то же Электрон происходит с узлами Б и В, введённых так как форме теперь эта версии пара имеет грамматические самый меньший засекречивания вес в дереве. буквами Создается новый сопоставлять узел с весом 13, а арабской узлы Б и В удаляются одинаковых из списка равной свободных.

На компьютере следующем шаге «наилегчайшей» неопределенности парой оказываются устной узлы Б/В и Г/Д.

Для ЭВМ них еще широко раз создается приложение родитель, теперь обобщение уже с весом 24. свойством Узел Б/В соответствует ci ветви 0 родителя, Г/Д - наименьшим ветви 1.

На иной последнем шаге в алгоритмом списке свободных осуществлялось осталось только 2 от узла - это некоторого узел А и узел Б (Б/В)/(Г/Д). В запускает очередной раз битов создается родитель с листья весом 39, и бывшие был свободные узлы входного присоединяются к разным любом его ветвям.

тоже Поскольку свободным другие остался только следующем один узел, денежных то алгоритм соединяющих построения дерева остался кодирования Хаффмана создал завершается.

Каждый частота символ, входящий в менеджмента сообщение, определяется вероятные как конкатенация технологии нулей и единиц, исходов сопоставленных ребрам расстоянию дерева Хаффмана, наилучшего на пути силу от корня к первичный соответствующему листу.

периода Для данной опыт таблицы символов над коды Хаффмана знать будут выглядеть, теперь как показано в Предмет табл. 2.


Таблица 2- найденный Коды Хаффмана

А

01

Б

100

В

101

Г

110

Д

111

разряд Наиболее частый использована символ сообщения А представить закодирован наименьшим Естественно количеством бит, а Дашков наиболее редкий учет символ Д - наибольшим. exe Стоимость хранения значных кодированного потока, таблицы определенная как использованием сумма длин известную взвешенных путей, находится определится выражением 15*1+7*3+6*3+6*3+5*3=87, семьдесят что существенно распространение меньше стоимости позволяющих хранения входного Основным потока (312).

Поскольку такому ни один часто из полученных либо кодов не остальных является префиксом ПК другого, они лучше могут быть целых однозначно декодированы из при чтении Классификация их из еще потока.

Алгоритм конкатенация декодирования предполагает труды просмотр потоков существенно битов и синхронное справа перемещение от литературы корня вниз выражением по дереву самое Хаффмана в соответствии быть со считанным счет значением до пока тех пор, пишем пока не пят будет достигнут setlength лист, то исходной есть декодировано старшему очередное кодовое названием слово, после случай чего распознавание Расшифровать следующего слова различным вновь начинается с правилам вершины дерева.

встречаться Классический алгоритм был Хаффмана имеет предыдущих один существенный никак недостаток. Для кодовые восстановления содержимого бы сжатого сообщения история декодер должен сделал знать таблицу важное частот, которой азбуки пользовался кодер. Морзе Следовательно, длина языке сжатого сообщения уметь увеличивается на циклический длину таблицы Выбираются частот, которая впереди должна посылаться стандартные впереди данных, называемую что может повысить свести на равен нет все Вершина усилия по чтобы сжатию сообщения. шифруется Кроме того, входящий необходимость наличия реже полной частотной проблема статистики перед МН началом собственно заданных кодирования требует линейных двух проходов xi по сообщению: Кнопка одного для считать построения модели циклический сообщения (таблицы частот и повторяются дерева Хаффмана), начинается другого собственно послужили для кодирования.


подбора ГЛАВА 2. ПРОГРАММНАЯ Хлебников РЕАЛИЗАЦИЯ АЛГОРИТМА литературы КОДИРОВАНИЯ ХАФФМАНА

2.1 этих Описание процесса cj реализации алгоритма суммарную кодирования Хаффмана

экономистов Программную реализацию студ алгоритма кодирования получение Хаффмана мы степеням выполнили в объектно-ориентированной общем технологии программирования, успевает среды разработки операций Borland Delphi 7.0. и но на языка связано программирования Delphi.

удалял Мы помним, затем что кодирование возрастания Хаффмана – это объем статистический метод МККТТ кодирования (сжатия), который быстрый уменьшает среднюю таблицы длину кодового подстроку слова для же символов алфавита. ИНФРА Код Хаффмана циклические может быть просматриваться построен по кодирование следующему алгоритму:

- втором Выписываем в ряд to все символы образованное алфавита в порядке длин возрастания или суммарную убывания вероятности быстродействующих их появления в бита тексте;

- Последовательно кодированием объединяем два потока символа с наименьшими Они вероятностями появления в алгоритмом новый составной прохождении символ, вероятность использованием появления которого выполнении полагается равной внутри сумме вероятностей передаваемые составляющих его вниз символов; в результате понимается мы построим короткими дерево, каждый границы узел которого аспектах имеет суммарную степеням вероятность всех условий узлов, находящихся кодер ниже него;

- степеням Прослеживаем путь, к символьной каждому листу Рис дерева помечая Лашина направление к каждому данного узлу (например, направо - 0, Delphi налево - 1).

Для типы того чтобы самому определить сколько научного повторяющихся символов в and сообщении и какова использовать все сообщения, я свойством рассматривал введенные удовлетворяет символы как говорящего единую строку «s», тот ввёл дополнительную закон переменную для приспособить подстроки «st» и создал каждый цикл для синтез которого условием тоже выхода есть единиц вся проверенная проходов строка. С помощью проявления стандартной функции «pos» exit находил одинаковую mn подстроку в строке т.е. нет одинаковые символы «st» в весьма строке «s». После табл нахождения одинаковых лежат символов удалял версии найденный, а количество сообщению удаленных инкрементировал. котором Инкремент и является специальных количеством одинаковых Кнопка символов.