Блочное кодирование

Пусть имеются две буквы алфавита A и B. Как возможно закодировать данные буквы, видимо только по одному символу.

A 0.9  
B 0.1  

Средняя длина будет равна 1 биту бит/буква

А энтропия равна . То есть, избыточность составляет 53%. Как же быть? Попробуем закодировать двухбуквенные сочетания. В этом случае уже можно воспользоваться эффективным кодированием.

AA 0.81   ------ ------  
AB 0.09     ------  
BA 0.09        
BB 0.01        

Тогда средняя длина на блок из двух букв будет . А на одну букву =0.645 бит/буква. Избыточность в этом случае будет уже составлять примерно 17%. Если мы возьмем сочетания из трех букв, то получим еще лучший результат и т.д. Увеличивая длину блоков можно как угодно близко приблизиться к оптимальному значению

Блочное кодирование удобно применять и для устранения избыточности при кодировании десятичных цифр. При передаче десятичных цифр двоичным кодом максимально загруженными бывают только те символы вторичного алфавита, которые передают значения, являющиеся целочисленными степенями двойки. Это 4, 8, 16, … В других случаях тремя разрядами можно передать и 5 и 8. Так для передачи цифры 5 необходимо . Однако эту цифру необходимо округлить до ближайшего целого числа 3. Избыточность от округления будет составлять

Избыточность от не равновероятного появления символов и избыточность от округления можно устранить за счет кодирования блоками.

Цифры Число разрядов На 1 цифру

0 – 9 4 4

00 – 99 7 3,5

000 – 999 10 3,3


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: