1 of 15

Кодирование символьной информации

2 of 15

Определения

3 of 15

Обратимое и необратимое кодирование

4 of 15

Алфавитное неравномерное двоичное кодирование сигналами равной длительности.

знаки первичного алфавита (например, русского) кодируются комбинациями символов двоичного алфавита (т.е. 0 и 1), причем, длина кодов и, соответственно, длительность передачи отдельного кода, могут различаться. Длительности элементарных сигналов при этом одинаковы (τ0 = τ1 = τ). Очевидно, для передачи информации, в среднем приходящейся на знак первичного алфавита, необходимо время K(A,2

´! построить такую схему кодирования, в которой суммарная длительность кодов при передаче (или суммарное число кодов при хранении) данного сообщения была бы наименьшей. ) ∙ τ.

5 of 15

Неравномерный код с разделителем

Условимся, что разделителем отдельных кодов букв будет последовательность 00 (признак конца знака), а разделителем слов-слов - 000 (признак конца слова - пробел). Довольно очевидными оказываются следующие правила построения кодов:

´код признака конца знака может быть включен в код буквы, поскольку не существует отдельно (т.е. кода всех букв будут заканчиваться 00);

´иначе они будут восприниматься как конец знака);

´код буквы (кроме пробела) всегда должен начинаться с 1;

разделителю слов (000) всегда предшествует признак конца знака; при этом реализуется последовательность 00000 (т.е., если в конце кода встречается комбинация ...000 или ...0000, они не воспринимаются как разделитель слов);

6 of 15

Частотность русских букв

´В соответствии с перечисленными правилами построим кодовую табл. для букв русского алфавита, основываясь на приведенных ранее вероятностях появления отдельных букв.

7 of 15

условие Фано

8 of 15

Пример 1

9 of 15

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

´a) отрезать от текущего сообщения крайний левый символ, присоединить справа к рабочему кодовому слову;

´(b) сравнить рабочее кодовое слово с кодовой таблицей; если совпадения нет, перейти к (а);

´(c) декодировать рабочее кодовое слово, очистить его;

´(d) проверить, имеются ли еще знаки в сообщении; если «да», перейти к (а).

10 of 15

Префиксный код Шеннона-Фано

11 of 15

В результате получаем:

12 of 15

Префиксный код Хаффмана

13 of 15

14 of 15

15 of 15