Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

сиаод / 35-66 / 72 Равномерный и неравномерный код. Префиксное кодирование

..pdf
Скачиваний:
66
Добавлен:
11.05.2015
Размер:
325.73 Кб
Скачать

72 Равномерный и неравномерный код. Префиксное кодирование.

Более короткие коды не совпадают с более длинными. Например, есть код {«0»,«10»,«11»}.

Допустим, а=0; b=10; c=11.

Тогда сообщение abac закодируем:”010011”, а можно ли преобразовать обратно? Первый символ – а однозначно. Следующий 1 полностью не определяет символ, «10» - b, следующий – a, после с.

Например, есть текст a,b,c,d,e,f. В файле 100 000 символов, причем а – 45 000, b – 13 000, c – 12 000, d

– 16 000, e – 9 000, f – 5 000.

Посмотрим, как влияет кодирование на размер файла: 1) Равномерный код.

Так как 6 символов кодируем в 3 битовом коде:

a=000, b=0001, c=010, d=011, e=100, f=101. Соответственно файл будет 300 000 бит.

2) Неравномерный код.

Те числа, что встречаются часто кодируем короткими битами, редкие – длинными. A=0, b=101, c=100, d=111, e=1101, f=1100.

Для представления используем кодовые деревья.

Известными алгоритмами построения кодовых деревьев являются алгоритм Хофмана, Фано-Шенона.