Изменения
Перейти к навигации
Перейти к поиску
Строка 1:
Строка 1:
− +
Строка 5:
Строка 5:
− +
− +
Строка 15:
Строка 15:
− +
−
−
− +
− +
− +
− +
− +
− +
− +
− +
− +
−
−
−
−
викификация, оформление
'''Коды [[Голомб, Соломон Вольф|Голомба]]''' — это семейство [[энтропийное кодирование|энтропийных кодеров]], являющихся общим случаем [[Унарное кодирование|унарного кода]]. Также под кодом Голомба может подразумеваться один из представителей этого семейства.
'''Коды [[Голомб, Соломон Вольф|Голомба]]''' — это семейство [[энтропийное кодирование|энтропийных кодеров]], являющихся общим случаем [[Унарное кодирование|унарного кода]]. Также под кодом Голомба может подразумеваться один из представителей этого семейства.
Код Голомба позволяет представить последовательность символов в виде последовательности двоичных слов. Это представление будет оптимальным при условии, что [[распределение вероятности]] символов подчиняется геометрическому закону:
Код Голомба позволяет представить последовательность символов в виде последовательности двоичных слов. Это представление будет оптимальным при условии, что [[распределение вероятности]] символов подчиняется геометрическому закону:
: <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'' в виде:
: <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>
{{методы сжатия}}
{{методы сжатия}}