Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
algoritm_arifm.doc
Скачиваний:
48
Добавлен:
01.03.2016
Размер:
92.16 Кб
Скачать

К чему такие сложности?

   Из всего сказанного не видно, в чем преимущество арифметического кодирования перед кодированием Хаффмена. Разница становится заметна тогда, когда частота встречаемости символов во входном сообщении сильно отличается друг от друга.    Пусть заранее известна вероятность появления символа 'Ш' в некотором сообщении, и она равна 0.9.    В табл. 6 показано то, как алгоритм арифметического кодирования обработает сообщение "ШШШШШШШ!".

Таблица 6. Арифметическое кодирование сообщения "ШШШШШШШ!"

ОчереднойСимвол

НижняяГраница

ВерхняяГраница

 

0.0

1.0

Ш

0.0

0.9

Ш

0.0

0.81

Ш

0.0

0.729

Ш

0.0

0.6561

Ш

0.0

0.59049

Ш

0.0

0.531441

Ш

0.0

0.4782969

!

0.43046721

0.4782969

   Очевидно, что число 0.4375 (в двоичном виде 0.0111) может однозначно закодировать это сообщение. Это значит, что мы закодировали сообщение дли-ной 8 символов в 4 бита. Оптимальное кодирование Хаффмена могло бы дать минимум 8 битов.    Эксперименты на различных типах данных показывают, что арифметическое кодирование всегда дает результаты не хуже, чем кодирование Хаффмена. В некоторых случаях выигрыш может быть очень существенным. Однако в силу того, что объем вычислений, необходимых при работе алгоритма арифметического кодирования, значительно выше, чем при кодировании по методу Хаффмена, он работает медленнее. Арифметическое кодирование может быть использовано в тех случаях, когда степень сжатия важнее, чем временные затраты на сжатие информации.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]