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

Определим границы для Предельные возможности оптимального кодирования - student2.ru и Предельные возможности оптимального кодирования - student2.ru б пользуясь эвристическими соображениями, основанными на количестве информации. Очевидно, код будет самым экономным, если каждый символ кодового слова будет переносить максимально возможное количество информации.

Поскольку собственное количество информации, содержащееся в сообщении Предельные возможности оптимального кодирования - student2.ru , равно Предельные возможности оптимального кодирования - student2.ru информационной емкости соответствующего кодового слова будет достаточно, чтобы перенести указанное количество информации, только в том случае, если его минимальная длина li будет находиться в пределах Предельные возможности оптимального кодирования - student2.ru , где Предельные возможности оптимального кодирования - student2.ru - максимальное количество информации, которое может перенести отдельный символ кодового слова.

Усредняя неравенство по всему множеству X сообщений, получим неравенство, определяющее границы для минимальной средней длины кодового слова: Предельные возможности оптимального кодирования - student2.ru .

В данном случае довольно большой интервал изменения возможных значений Предельные возможности оптимального кодирования - student2.ru . Однако при кодировании блоков (слов из n букв xi) средняя длина Предельные возможности оптимального кодирования - student2.ru приближается к значению Предельные возможности оптимального кодирования - student2.ru при неограниченном увеличении длины блока п, что следует из неравенства Предельные возможности оптимального кодирования - student2.ru где Предельные возможности оптимального кодирования - student2.ru - среднее количество символов кодового слова, приходящееся на один блок, а Предельные возможности оптимального кодирования - student2.ru на одну букву в блоке.

Полученные неравенства справедливы для всех однозначно декодируемых кодов.

Алгоритмы эффективного кодирования

Алгоритм Шеннона-Фано.

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

1. Все сообщения располагаются в порядке убывания их вероятностей.

2. Упорядоченное множество сообщений делится на две части: верхнюю часть и нижнюю часть, причем так, чтобы разность между суммой вероятностей в верхней и нижней части была минимальной.

3. После этого сообщениям в верхней части ставится в соответствие 1, а в нижней – 0.

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

5. В результате каждому сообщению будет соответствовать своя последовательность из нулей и единиц, т.е. кодовое слово.

Пример:

Таблица 4.3

pi X  
0.5 x1    
0.25 x2  
0.125 x3
0.125 x4

Алгоритм Хаффмена.

1. Все сообщения располагаются в порядке убывания их вероятностей.

2. Два самых нижних сообщения объединяются в одно событие, вероятность которого равна сумме вероятностей, объединяемых событий, причем верхнему событию ставится в соответствие 1, а нижнему 0.

3. Получился новый массив сообщений с количеством состояний на единицу меньшим по сравнению с предыдущим массивом, если два последних события считать одним более крупным событием. Далее преобразуем этот массив в соответствии с пунктами 1 и 2. Полученный массив вновь подвергаем указанным преобразованиям и т.д. до тех пор, пока не будет исчерпан весь массив.

4. Геометрически результат можно представить в виде дерева, где кодовое слово, соответствующее Предельные возможности оптимального кодирования - student2.ru выражается последовательностью ветвей с соответствующим сообщением Предельные возможности оптимального кодирования - student2.ru .

Пример:

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

x1=1, x2 = 01, x3 = 001, x4 = 000

Рис. 4.3. Геометрическая интерпретация алгоритма Хаффмана

Наши рекомендации