Изменения
отмена правки 111738184 участника 89.113.127.181 (обс.)
== Взаимосвязь и практическое использование ==
== Взаимосвязь и практическое использование ==
Использование [[код Хаффманакода Хаффмана]] и [[арифметическое кодирование|арифметического кодирования]] (когда они могут использоваться вместе) дают лучший результат, чем любой другой универсальный код.
Использование [[код Хаффмана|кода Хаффмана]] и [[арифметическое кодирование|арифметического кодирования]] (когда они могут использоваться вместе) дают лучший результат, чем любой другой универсальный код.
Однако, универсальные коды полезны, когда код Хаффмана не может использоваться — например, когда невозможно определить точную вероятность каждого сообщения, но известно ранжирование их вероятностей.
Каждый универсальный код дает собственное «подразумеваемое распределение» вероятностей ''p''(''i'')=2<sup>-''l''(''i'')</sup>, где l(i) — длина i-го ключевого слова и p(i) — вероятность символа передачи. Если фактические вероятности сообщения — q(i) и [[расстояние Кульбака — Лейблера]] DKL(q||p) минимизирует код с l(i), затем оптимальный код Хаффмана для этого множества сообщений будет эквивалентен к этому коду.альный код был бы предпочтителен в случаях, где DKL(q||p) достаточно маленький.
Универсальные коды также полезны, когда код Хаффмана отрабатывает не совсем корректно. Например, когда отправитель знает вероятности сообщений, а получатель — нет, код Хаффмана требует передачи вероятностей к получателю. Использование универсального кода избавляет от таких неудобств.
Каждый универсальный код дает собственное «подразумеваемое распределение» вероятностей ''p''(''i'')=2<sup>-''l''(''i'')</sup>, где l(i) — длина i-го ключевого слова и p(i) — вероятность символа передачи. Если фактические вероятности сообщения — q(i) и [[расстояние Кульбака — Лейблера]] DKL(q||p) минимизирует код с l(i), затем оптимальный код Хаффмана для этого множества сообщений будет эквивалентен к этому коду. С тех пор, как универсальные коды стали работать быстрее, чтобы кодировать и декодировать, чем код Хаффмана, универсальный код был бы предпочтителен в случаях, где DKL(q||p) достаточно маленький.
Для любого [[геометрическое распределение|геометрического распределения]] [[кодирование Голомба]] оптимально. С универсальными кодами, подразумеваемое распределение — приблизительно энергетический закон как например 1 / n2. Для [[код Фибоначчи|кода Фибоначчи]], подразумеваемое распределение составляет приблизительно 1 / nq.
Для любого [[геометрическое распределение|геометрического распределения]] [[кодирование Голомба]] оптимально. С универсальными кодами, подразумеваемое распределение — приблизительно энергетический закон как например 1 / n2. Для [[код Фибоначчи|кода Фибоначчи]], подразумеваемое распределение составляет приблизительно 1 / nq.