Интернет магазин китайских планшетных компьютеров



Компьютеры - Адаптивное арифметическое кодирование - Пример

23 января 2011


Оглавление:
1. Адаптивное арифметическое кодирование
2. Пример
3. Применение



Произведем кодирование слова “ABBACD”

На первом шаге веса всех символов равны единице. Текущий интервал. Первым кодируется символ A. Так как символов 4, и их веса одинаковые, то мы берем четверть от исходного отрезка. Получается интервал. Символ A обработан, увеличиваем его вес на единицу. Общий вес так же увеличился на 1. Следующим кодируется символ B. Разбиваем текущий интервал соответственно отношениям весов символов к весу всех символов. Выбираем интервал, соответствующий символу B -. Увеличиваем вес символа B на единицу, и так далее. Все шаги подробно описаны в таблице:

A B C D Общий вес Кодируемая буква Текущая длина промежутка Получившийся интервал
1 1 1 1 4 A 1
2 1 1 1 5 B 1/4
2 2 1 1 6 B 1/20
2 3 1 1 7 A 1/60
3 3 1 1 8 C 1/210
3 3 2 1 9 D 1/1680



1979/16384 = 1979/2, отсюда получаем, что исходное сообщение можно представить двоичным числом 0.000111101110112 є. Таким образом, мы закодировали сообщение с помощью 14 битов. ML = 2.3 бит/сим.

распакуем код 00011110111011, зная множество символов, из которых состояло исходное сообщение. Итак, 000111101110112 = 1979/16384. Результаты расчетов приведены в таблице:

A B C D Число-код и его интервал Декодируемый символ Длина интервала
1 1 1 1 1979/16384 є A 1/4
2 1 1 1 1979/4096 є B 1/5
2 2 1 1 1703/4096 є B 1/3
2 3 1 1 1013/4096 є A 2/7
3 3 1 1 7091/8192 є C 1/8
3 3 2 1 7576/8192 є D 1/9


Просмотров: 4290


<<< Zlib
Алгоритм Шеннона Фано >>>