|
|
Компьютеры - Адаптивное арифметическое кодирование - Пример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
|