Построить код Хаффмена для кодирования заданного алфавита
Энтропия данного источника
Средняя длина кодовых слов
.
Избыточность кода
.
Из теоремы 4.1 следует, что для построенных по алгоритму Хаффмана кодов средняя длина кодовых слов удовлетворяет неравенству
, (4.6)
где — энтропия ансамбля.
Разность
называется
избыточностью
неравномерного кода. При
кодировании с избыточностью
на каждое
сообщение затрачивается на
бит больше,
чем в принципе можно было бы потратить,
если использовать теоретически
наилучший (возможно, нереализуемый)
способ кодирования.
Итак, из (4.6) следует, что для кода Хаффмана избыточность г < 1. Хотелось бы получить более точную оценку средней длины кодовых слов. Гораздо более точную оценку избыточности получил Р. Галлагер, наложив ограничение на максимальную из вероятностей сообщений.
Теорема
4.3. Пусть
— наибольшая
из вероятностей сообщений конечного
дискретного ансамбля. Тогда избыточность
кода Хаффмана для этого ансамбля
удовлетворяет неравенствам:
где
— энтропия
двоичного ансамбля;
.
Код Шеннона-Фано
Алгоритм Шеннона-Фано заключается в следующем.
Символы алфавита источника (первичного или укрупненного) записываются в порядке не возрастающих вероятностей.
Затем они разделяются на две части так, чтобы суммы вероятностей символов, входящих в каждую из таких частей, были примерно одинаковыми. Всем символам первой части приписывается в качестве первого символа комбинации неравномерного кода ноль, а символам второй части — единица.
Затем каждая из этих частей (если она содержит более одного сообщения) делится в свою очередь на две, по возможности равновероятные части и к ним применяется то же самое правило кодирования.
Этот процесс повторяется до тех пор, пока в каждой из полученных частей не останется по одному сообщению.
Таблица 4.4
Буква |
рi |
I |
II |
III |
IV |
V |
VI |
Kод |
mi |
mi pi |
А |
0.6 |
1 |
|
|
|
|
|
1 |
1 |
0.6 |
Б |
0.2 |
0 |
1 |
1 |
|
|
|
011 |
3 |
0.6 |
В |
0.1 |
0 |
|
|
|
010 |
3 |
0.3 |
||
Г |
0.04 |
0 |
1 |
|
|
|
001 |
3 |
0.12 |
|
Д |
0.025 |
0 |
1 |
|
|
0001 |
4 |
0.1 |
||
Е |
0.015 |
0 |
1 |
|
00001 |
5 |
0.075 |
|||
Ж |
0.01 |
0 |
1 |
000001 |
6 |
0.06 |
||||
З |
0.01 |
0 |
000000 |
6 |
0.06 |
Пример. Пусть алфавит А источника состоит из 8 символов А, Б, В, Г, Д, Е, Ж, З с вероятностями р(А) = 0,6; р(Б) = 0,2; р(В) = 0,1; р(Г) = 0,04; р(Д)=0,025; р(Е) = 0,015, р(Ж)=0,01; р(З) = 0,01. Процедура построения неравномерного кода Шеннона-Фано задаётся в таблице 4.4.
На
первом этапе производится деление на
два множества А,
и
Б, В, Г, Д,
Е,
Ж, З,
так как вероятность р(А)=0,6 и сумма
вероятностей
примерно одинаковы. При этом символу А присваивается «1», а всем остальным Б, В, Г, Д, Е, Ж, З присваивается «0».
На втором этапе производится деление второго множества на два множества Б, В, и Г, Д, Е, Ж, З. Множеству Б, В присваивается «1», а множеству Г, Д, Е, Ж, З присваивается «0».
Hа третьем этапе производится деление множества Б, В, на два множества (уже символа) Б и В. Символу Б присваивается «1», а символу В присваивается «0». Множество Г, Д, Е, Ж, З делится на множества Г и Д, Е, Ж, З. Символу Г присваивается «1», а множеству Д, Е, Ж, З присваивается «0».
На четвёртом этапе производится деление множества Д, Е, Ж, З на два множества Д и Е, Ж, З. Символу Д присваивается «1», а множеству Е, Ж, З присваивается «0».
На пятом этапе производится деление множества Е, Ж, З на два множества Е и Ж, З. Символу Е присваивается «1», а множеству Ж, З присваивается «0».
На шестом этапе производится деление множества Ж, З на два множества Ж и З. Символу Ж присваивается «1», а символу З присваивается «0».
Легко
проверить, что данный код оказывается
префиксным и средняя длина кодовой
комбинации
1,915, что менее чем на 7 % превышает энтропию
данного источника, равную 1,7813.
A
избыточность кода составит
.
Отметим,
что хотя, деление на части с "примерно
равными вероятностями" не является
однозначной процедурой, но при увеличении
длин блоков m
укрупнённого источника сообщений эти
погрешности будут сглаживаться, а
средняя длина
приближаться к предельному значению.
Пример. Источник дискретных сообщений для формирования сообщений использует алфавит из 7 знаков.
аk |
а1 |
а2 |
а3 |
а4 |
а5 |
а6 |
а7 |
Р(аk) |
1/32 |
1/8 |
1/32 |
1/8 |
1/16 |
1/2 |
1/8 |
Построить код Шеннона-Фано для кодирования заданного алфавита
Р(а6)
1/2
0
Р(а2)
1/8
1
0
0
Р(а4)
1/8
1
0
1
Р(а7)
1/8
1
1
0
Р(а5)
1/16
1
1
1
0
Р(а1)
1/32
1
1
1
1
0
Р(а3)
1/32
1
1
1
1
1
а6
-
0
а2
– 100
а4
- 101
а7
- 110
а5
- 1110
а1
- 11110
а3
- 11111
Можно выделить класс ситуаций, когда побуквенное кодирование заведомо неоптимально. Во-первых, из теоремы об энтропии на сообщение стационарного источника следует, что учет памяти источника потенциально может значительно повысить эффективность кодирования. Во-вторых, побуквенные методы затрачивают, как минимум 1 бит на сообщение, тогда как энтропия на сообщение может быть значительно меньше 1.
Итак,
рассмотрим последовательность
,
наблюдаемую на выходе дискретного
стационарного источника, для которого
известно вероятностное описание, т.е.
можно вычислить все многомерные
распределения вероятностей и по ним
— энтропию
.
Пусть
указан некий способ кодирования, который
для любых п
для
каждой последовательности
на
выходе источника строит кодовое слово
с
длиной
.
Тогда средняя
длина кода на сообщение для блоков
длиной п определяйся
как
бит/сообщение
источника.
Подбирая длину блоков, при которой средняя длина кода будет наименьшей, получаем следующее определение для средней длины, кода на сообщение:
.
(Здесь
пишем нижнюю грань
вместо
минимума, поскольку наименьшее значение
скорости может достигаться при
.
Рассматриваемое
кодирование называется
-кодированием
(fixed
to
variable),
поскольку
блоки из фиксированного числа сообщений
и кодируются кодовыми словами
переменной длины. Наша задача — связать
достижимые значения средней скорости
-кодирования
с характеристиками источника, в
частности, с его энтропией
.
Начнем с
обратной
теоремы кодирования.
Теорема 4.3. Для дискретного стационарного источника с энтропией для любого -кодирования имеет место неравенство
.
Теорема
4.4 (прямая
теорема кодирования).
Для дискретного
стационарного источника с энтропией
и для любого
существует такой способ неравномерного
-кодирования,
для которого