Чтобы обеспечить однозначную расшифровку сообщений при неравномерном двоичном кодировании, используют условия Фано. 13
Прямое условие Фано гласит, что неравномерный код можно однозначно декодировать, если код любого символа не имеет совпадений с начальными знаками (префиксом) любого другого кода, имеющего больший размер. 1 Такой код называют префиксным. 1
Обратное условие Фано предполагает, что неравномерный код можно однозначно декодировать, если нет кодов, которые имеют совпадения с окончанием (постфиксом) любого другого кода, имеющего большую длину. 1 Этот код называют постфиксным. 1
Для однозначного декодирования достаточно выполнения хотя бы одного из условий Фано: 13
Важно помнить, что условия Фано — это достаточное, но не необходимое условие однозначного декодирования. 3 Даже если не выполняется ни прямое, ни обратное правило Фано, конкретная двоичная последовательность может оказаться такой, что она декодируется однозначно. 3
Для выбора минимальных кодовых слов, не нарушающих условия Фано, используют бинарное дерево кодирования — структуру данных, где каждый узел может иметь не более двух «потомков»: левого и правого. 2