Re: Коды Райса (Rice Coding)
От: MBo  
Дата: 17.09.10 10:04
Оценка: 6 (1)
Здравствуйте, AcidTheProgrammer, Вы писали:

ATP>Уважаемые колеги, кто знает сабж — помогите быстро разобраться. Про само кодирование читал, нигде нет толкового примера, только описание.

ATP>Понял что исходное значение делится на некое К, остаток кодируется в конце, результат кодируется унарным кодом, но как при декодировании отличить что у нас унарный код или остаток я не могу понять. Если можно приведите толковый пример.

Насколько я понимаю: X = Q * M + R , M = 2^k
результат кодирования: Q единиц, 0 , k бит, представляющих R
Например, M = 8, k = 3
X1 = 9 X2 = 5 X3 = 20
результат упаковки этих трех чисел в бинарном виде
по отдельности:
10001 0101 110100
вместе:
100010101110100
При распаковке ищется 0, количество единиц перед ним = Q, k бит после него — R, далее все повторяется.
При этом хорошо бы знать, где конец битового потока. Один из способов — дополнять до границы последнего байта единицами.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.