Изменения
Перейти к навигации
Перейти к поиску
Строка 12:
Строка 12:
+
+
+
+
+
+
+
+
+
+
+
+
нет описания правки
* [[кодирование Голомба]]
* [[кодирование Голомба]]
* [[кодирование Райса]]
* [[кодирование Райса]]
== Взаимоcвязь и практическое использование ==
Использование [[кода Хаффмана]] и [[арифметического шифрования]] (когда они могут использоваться вместе) дают лучший результат, чем любой другой универсальный код.
Однако, универсальные коды полезны, когда код Хаффмана не может использоваться — например, когда невозможно определить точную вероятность каждого сообщения, но известно ранжирование их вероятностей.
Универсальные коды также полезны, когда код Хаффмана отрабатывает не совсем корректно. Например, когда отправитель знает вероятности сообщений,а получатель нет, код Хаффмана требует передачи вероятностей к получателю. Использование универсального кода избавляет от таких неудобств.
Каждый универсальный код дает собственное "подразумеваемое распределение" вероятностей p(i) =2-l(i), где l(i) - длина i-го ключевого слова и p(i) - вероятность символа передачи. Если фактические вероятности сообщения - q(i) и [[расхождение Кулбака-Лецблера]] DKL(q||p) минимизирует код с l(i), затем оптимальный код Хаффмана для этого множества сообщений будет эквивалентен к этому коду. С тех пор, как универсальные коды стали работать быстрее, чтобы кодировать и декодировать, чем код Хаффмана, универсальный код был бы предпочтителен в случаях, где DKL(q||p) достаточно маленький.
Для любого геометрического распространения [[код Голомба]] оптимален. С универсальными кодами, подразумеваемое распространение - приблизительно энергетический закон как например 1 / n2. Для [[кода Фибоначчи]], подразумеваемое распространение составляет приблизительно 1 / nq.
== Ссылки ==
== Ссылки ==