Хелпикс

Главная

Контакты

Случайная статья





Коды Фано и Хаффмана. Решение 1 (с использованием кодового дерева)



 

 

Коды Фано и Хаффмана

Коды Фано и Хаффмана являются оптимальными и префиксными. При построении искомых кодов будем применять как традиционный табличный способ кодирования, так и использовать "кодовые деревья".

При кодировании по Фано все сообщения записываются в таблицу по степени убывания вероятности и разбиваются на две группы примерно (насколько это возможно) равной вероятности. Соответственно этой процедуре из корня кодового дерева исходят два ребра, которым в качестве весов присваиваются полученные вероятности. Двум образовавшимся вершинам приписывают кодовые символы 0 и 1. Затем каждая из групп вероятностей вновь делится на две подгруппы примерно равной вероятности. В соответствии с этим из каждой вершины 0 и 1 исходят по два ребра с весами, равными вероятностям подгрупп, а вновь образованным вершинам приписывают символы 00 и 01, 10 и 11. В результате многократного повторения процедуры разделения вероятностей и образования вершин приходим к ситуации, когда в качестве веса, приписанного ребру бинарного дерева, выступает вероятность одного из данных сообщений. В этом случае вновь образованная вершина оказывается листом дерева, т.к. процесс деления вероятностей для нее завершен. Задача кодирования считается решенной, когда на всех ветвях кодового бинарного дерева образуются листья.

Пример 1.Закодировать по Фано сообщения, имеющие следующие вероятности:

сообщение
вероятность 0,4 0,2 0,1 0,1 0,1 0,05 0,05

Решение 1 (с использованием кодового дерева)

Рис. 1

Листья кодового дерева представляют собой кодируемые сообщения с присвоенными им кодовыми словами.



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.