Коды Голомба: различия между версиями
w>VolkovBot м (робот добавил: pl:Kod Golomba) |
w>AVB (викификация, оформление) |
||
Строка 1: | Строка 1: | ||
− | '''Коды [[Голомб, Соломон Вольф|Голомба]]''' | + | '''Коды [[Голомб, Соломон Вольф|Голомба]]''' — это семейство [[энтропийное кодирование|энтропийных кодеров]], являющихся общим случаем [[Унарное кодирование|унарного кода]]. Также под кодом Голомба может подразумеваться один из представителей этого семейства. |
Код Голомба позволяет представить последовательность символов в виде последовательности двоичных слов. Это представление будет оптимальным при условии, что [[распределение вероятности]] символов подчиняется геометрическому закону: | Код Голомба позволяет представить последовательность символов в виде последовательности двоичных слов. Это представление будет оптимальным при условии, что [[распределение вероятности]] символов подчиняется геометрическому закону: | ||
Строка 5: | Строка 5: | ||
: <math> P(i) = (1-p)p^{i} </math>, | : <math> P(i) = (1-p)p^{i} </math>, | ||
− | где ''i'' | + | где ''i'' — номер символа, а ''p'' — параметр [[Геометрическое распределение|геометрического распределения]]. Также должно соблюдаться условие: |
: <math>p^m = \frac 1 2 </math>, | : <math>p^m = \frac 1 2 </math>, | ||
− | где ''m'' | + | где ''m'' — основной параметр кода Голомба. |
Для кодирования символа с номером ''n'' необходимо представить ''n'' в виде: | Для кодирования символа с номером ''n'' необходимо представить ''n'' в виде: | ||
Строка 15: | Строка 15: | ||
: <math> n = qm + r </math>, | : <math> n = qm + r </math>, | ||
− | где ''q'' и ''r'' | + | где ''q'' и ''r'' — целые положительные числа, <math> 0 \le r < m </math>. Затем ''r'' кодируется унарным кодом, а ''q'' — бинарным. Полученные двоичные последовательности объединяются в результирующее слово. |
− | |||
− | |||
Пример: | Пример: | ||
основной параметр кода | основной параметр кода | ||
− | :<math> m = 4 </math> | + | : <math> m = 4 </math> |
− | кодируемое число | + | кодируемое число |
− | :<math> n = 13 </math> | + | : <math> n = 13 </math> |
− | частное | + | частное |
− | :<math> q = \left[ \frac{n}{m} \right] = \left[\frac{13}{4} \right] = 3 </math> | + | : <math> q = \left[ \frac{n}{m} \right] = \left[\frac{13}{4} \right] = 3 </math> |
унарный код | унарный код | ||
− | :<math> 1110 </math> | + | : <math> 1110 </math> |
остаток | остаток | ||
− | :<math> r = n \mod m = 13 \mod 4 = 1 </math> | + | : <math> r = n \mod m = 13 \mod 4 = 1 </math> |
бинарный код | бинарный код | ||
− | :<math> 01 </math> | + | : <math> 01 </math> |
результирующее кодовое слово | результирующее кодовое слово | ||
− | :<math> 1110|01 </math> | + | : <math> 1110|01 </math> |
− | |||
− | |||
− | |||
− | |||
{{методы сжатия}} | {{методы сжатия}} |
Версия от 00:52, 30 октября 2008
Коды Голомба — это семейство энтропийных кодеров, являющихся общим случаем унарного кода. Также под кодом Голомба может подразумеваться один из представителей этого семейства.
Код Голомба позволяет представить последовательность символов в виде последовательности двоичных слов. Это представление будет оптимальным при условии, что распределение вероятности символов подчиняется геометрическому закону:
где i — номер символа, а p — параметр геометрического распределения. Также должно соблюдаться условие:
где m — основной параметр кода Голомба.
Для кодирования символа с номером n необходимо представить n в виде:
где q и r — целые положительные числа, . Затем r кодируется унарным кодом, а q — бинарным. Полученные двоичные последовательности объединяются в результирующее слово.
Пример:
основной параметр кода кодируемое число
частное унарный код
остаток бинарный код
результирующее кодовое слово
Ошибка Lua в Модуль:Navbox на строке 353: attempt to index local 'listText' (a nil value).
de:Golomb-Code en:Golomb coding es:Codificación Golomb-Rice ja:ゴロム符号 pl:Kod Golomba pt:Códigos de Golomb