Принцип кодирования по методу Фано заключается в использовании кодов переменной длины: часто встречающиеся символы кодируются меньшим числом бит, редко встречающиеся — большим. 34
При этом соблюдается условие Фано: ни одно кодовое слово не должно быть началом другого. 25 Это гарантирует, что любое сообщение, закодированное с использованием таких кодов, можно будет расшифровать без ошибок и неоднозначностей. 2
Алгоритм кодирования по методу Фано включает следующие шаги: 1
- Все сообщения записываются в таблицу по степени убывания вероятности и разбиваются на две группы примерно равной вероятности. 1
- Из корня кодового дерева исходят два ребра, которым в качестве весов присваиваются полученные вероятности. 1
- Двум образовавшимся вершинам приписываются кодовые символы 0 и 1. 1
- Каждая из групп вероятностей вновь делится на две подгруппы примерно равной вероятности. 1
- Из каждой вершины 0 и 1 исходят по два ребра с весами, равными вероятностям подгрупп, а вновь образованным вершинам приписываются символы 00 и 01, 10 и 11. 1
- В результате многократного повторения процедуры разделения вероятностей и образования вершин вновь образованная вершина оказывается листом дерева, так как процесс деления вероятностей для неё завершён. 1
- Задача кодирования считается решённой, когда на всех ветвях кодового бинарного дерева образуются листья. 1