Энтропия и избыточность алфавита
Энтропия алфавита – это количество информации, приходящееся на один символ. Символы равновероятного алфавита несут максимальную информационную нагрузку
Hmax = log2 N, где N – объем алфавита.
Алфавиты природных языков не являются равновероятными. Например, относительная частота появления отдельных символов русского языка изменяется от 0,175 до 0,002.
Вследствие статистических свойств алфавита информационная нагрузка на один символ снижена на
∆H = Hmax - Hср = 0,65 бит/ символ.
Избыточностью алфавита называется уменьшение информационной нагрузки на один символ вследствие неравновероятности и взаимозависимости появления его символов.
Информационная избыточность, характеризующая относительную недогруженность алфавита рассчитывается так:
Равномерные коды
Равномерные кодыхарактеризуются минимальной разрядностью кодовых слов, которая рассчитывается по формуле
где N – объем исходного алфавита А;
M – объем кодового алфавита В;
[logM N] означает целую часть числа logM N
Рассмотрим эти формулы для случая двоичного кодирования (т. е. при М = 2). Минимальная разрядность равномерного кода для алфавита объемом 8 символов будет равна
r min =log2 8 =3 двоичных символа
А для 9-буквенного алфавита
rmin = [log2 9]+1 =[3,17]+1 = 3 +1 = 4 дв. симв
Неравномерные коды
Неравномерные кодыхарактеризуются средней длиной кодового слова
li – длина кодового слова i-го символа;
pi – вероятность появления i-го символа;
N – объем исходного алфавита.
Например, если алфавит А = {a, b, c, d, e} с вероятностями появления символов в сообщении (pa = 0,5; pb = 0,2; pc = 0,1; pd = 0,15; pe = 0,05) закодирован двоичным неравномерным кодом (a – 0; b – 10; c – 1110; d – 110; e – 1111), то средняя длина кодового слова для такого алфавита будет
Таким образом, средняя длина кодового слова есть сумма длин всех кодовых слов, взятых с весом, равным вероятности появления кодируемого символа.
Количество и объем информации
Оптимальное кодирование
Метод Шеннона – Фано
Шаг 1. Упорядочиваем символы исходного алфавита в порядке невозрастания их вероятностей. (Записываем их в строку).
Шаг 2. Не меняя порядка символов, делим их на две группы так, чтобы суммарные вероятности символов в группах были по возможности равны.
Шаг 3. Приписываем группе слева "0", а группе справа "1" в качестве элементов их кодов.
Шаг 4. Просматриваем группы. Если число элементов в группе более одного, идем на Шаг 2. Если в группе один элемент, построение кода для него завершено.
Метод Хаффмана
Шаг 1. Упорядочиваем символы исходного алфавита в порядке невозрастания их вероятностей. (Записываем их в столбец).
Шаг 2. Объединяем два символа с наименьшими вероятностями. Символу с большей вероятностью приписываем "1", символу с меньшей – "0" в качестве элементов их кодов.
Шаг 3. Считаем объединение символов за один символ с вероятностью, равной сумме вероятностей объединенных символов.
Шаг 4. Возвращаемся на Шаг 2 до тех пор, пока все символы не будут объединены в один с вероятностью, равной единице.