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