
Дискретная математика
Читал: Павлов Игорь Сергеевич
Набрал: Смирнов Вадим Евгеньевич
ННГУ, 2000 г.
Глава V. Теория кодирования.
(Лекция 14)
= ’
Сжатие информации
Оптимальное кодирование
Кодирование производится с помощью словофункции
f: A* B*,
где А – алфавит источника, В – алфавит канала.
- схема кодирования
Ai A*, Vi B*, i = 1, 2, …, k
F(ai1ai2…ain) = Vi1Vi2…Vin
Определение. {V1, …,Vk} –код, а соответствие между А и В (f) называетсякодированием. Каждый элемент кода называетсяэлементарным кодом.
Будем обозначать все схемы кодирования через
Примеры:
A= {a, b, c, d}, B = {0, 1}
1– схема равномерного кодирования,
2– схема неравномерного кодирования
Для сжатия информации желательно, чтобы длина полученного после кодирования слова была как можно меньше.
Определение. Пусто существует схема
кодирования~f().
Отношение длины кодаf()
к длине самого слова называется стоимостью
кодирования словав схеме, то есть.
В рассмотренном примере стоимость кодирования равняется двум независимо от слова .
С(1,) = 2 С(2,) – зависит от
раз.
|| =n1+ … +nk=n
|f()| =n1|V1| + … +nk|Vk|, так какaiViи встречаетсяniраз.
В этом случае
,
где
- частота.
Определение. Величинапоказывает, какую часть словазанимает букваai.
Она называется частотой вхождения буквыaiв
слово.
для
любого слова
Отсюда:
Определение.
Пример: В русском языке наблюдается устойчивость частот. Например: ро= 0,09; ре= 0,047.
Если мы рассматриваем большие сообщения, то пользуемся частичными частотами для данного языка.
При этом
Теперь можно сравнить способы кодирования для данных частот
Пример: Пустьp1= (¼; ¼; ¼; ¼).
С(1,) = 2 для любыхиpi
С(2,) = ¼ (1 + 2 + 3 + 3) = 2¼
Вывод. Для схемы 1стоимость кодирования меньше, чем для схемы2при наборе частотp1.
Пусть: (½; ¼;
;
)
С(1,) = 2 для любыхиpi
С(2,)
= ½ 1
+ ¼
2 + (3
+ 3) = 1¾
Схему 3можно раскодировать неоднозначно. Такие схемы мы исключаем из рассмотрения.
(Лекция 15)
Кодирование – это отображение.
Потребуем, чтобы fбыла взаимно-однозначная, то естьf– биекция, то естf(A*) =B*иf(a1) =f(a2)a1=a2.
Допустим, что f– не биекция. Нарушение однозначности означает, что приai1…ainaj1…ajmвыполняетсяVi1…VinVj1…Vjm
Определение. Будем говорить, что кодV= {V1, …,Vk} -свободный, еслиVi1…Vin=Vj1…Vjmвыполняется тогда и только тогда, когдаn=mиi1=j1, …,in=jm.
Выделив класс свободных кодов, ставим задачу нахождения оптимального кодирования.
Задача I. Набор частотP= (p1, …,pk). Найти свободный кодV= {V1, …,Vk} такой, чтобы стоимость кодирования была наименьшей.
Рассмотрим более узкий класс свободных кодов – префиксный код. Префиксом будем называть всякое начало слова.
Определение. Код называетсяпрефиксным, если ни одно из его слов не является началом другого слова этого кода.
Пример. Не префиксный код:V= {01, 001, 110,0100}
Первое слово является началом последнего слова., значит – такой код не префиксный.
Графическое представление префиксного кода
V1 = {00, 001, 100, 11}
|
Вершины 00 и 001 смежны.
У не префиксных кодов всегда элементарные коды расположены в смежных вершинах
V1’ = {00, 010, 100, 11} – префиксный код |