Коды Голомба: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
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'' номер символа, а ''p'' параметр [[Геометрическое распределение|геометрического распределения]]. Также должно соблюдаться условие:
+
где ''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'' целые положительные числа, <math> 0 \le r < m </math>. Затем ''r'' кодируется унарным кодом, а ''q'' бинарным. Полученные двоичные последовательности объединяются в результирующее слово.
+
где ''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

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

Код Голомба позволяет представить последовательность символов в виде последовательности двоичных слов. Это представление будет оптимальным при условии, что распределение вероятности символов подчиняется геометрическому закону: 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 . Затем r кодируется унарным кодом, а q — бинарным. Полученные двоичные последовательности объединяются в результирующее слово.

Пример:

основной параметр кода 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 ja:ゴロム符号 pl:Kod Golomba pt:Códigos de Golomb