Коды Голомба

Материал из in.wiki
Версия от 14:48, 26 мая 2010; 217.67.177.50 (комментарии) (Коды Голомба не являются унарными. Даже в обобщённой трактовке.)
Перейти к навигации Перейти к поиску

Коды Голомба — это семейство энтропийных кодеров. Также под кодом Голомба может подразумеваться один из представителей этого семейства.

Код Голомба позволяет представить последовательность символов в виде последовательности двоичных слов. Это представление будет оптимальным при условии, что распределение вероятности символов подчиняется геометрическому закону: P ( i ) = ( 1 p ) p i , P(i) = (1-p)p^{i} ,

где i — номер символа, а p — параметр геометрического распределения. Также должно соблюдаться условие: p m = 1 2 , p^m = \frac 1 2 ,

где m — основной параметр кода Голомба.

Для кодирования символа с номером n необходимо представить n в виде: n = q m + r , n = qm + r ,

где q и r — целые неотрицательные числа, 0 r < m 0 \le r < m . Затем q кодируется унарным кодом, а r — бинарным. Полученные двоичные последовательности объединяются в результирующее слово.

Пример:

основной параметр кода m = 4 m = 4 кодируемое число n = 13 n = 13

частное q = [ n m ] = [ 13 4 ] = 3 q = \left[ \frac{n}{m} \right] = \left[\frac{13}{4} \right] = 3 унарный код 1110 1110

остаток r = n mod m = 13 mod 4 = 1 r = n \mod m = 13 \mod 4 = 1 бинарный код 01 01

результирующее кодовое слово 1110 | 01 1110|01

Ошибка Lua в Модуль:Navbox на строке 353: attempt to index local 'listText' (a nil value).

de:Golomb-Code en:Golomb coding es:Codificación Golomb-Rice fr:Codage de Golomb ja:ゴロム符号 pl:Kod Golomba pt:Códigos de Golomb