Обновить

Комментарии 6

Любой алгоритм сжатия (если без потерь) работает приблизительно так же - часто встречающиеся символы заменяются более короткими кодами. Есть у арифметичекого кодирования какие-то преимущества/недостатки по сравнению с алгоритмом Хаффмана, например?

НЛО прилетело и опубликовало эту надпись здесь

"В 2013 году была предложена модификация алгоритма Хаффмана, позволяющая кодировать символы дробным количеством бит — ANS"

НЛО прилетело и опубликовало эту надпись здесь

Алгоритм Хаффмана эффективен, когда частоты появления символов пропорциональны 1/2n (где n – натуральное положительное число). Это утверждение становится очевидным, если вспомнить, что коды Хаффмана для каждого символа всегда состоят из целого числа бит. Рассмотрим ситуацию, когда частота появление символа равна 0,2, тогда оптимальный код для кодирования это символа должен иметь длину –log2(0,2)=2,3 бита. Понятно, что префиксный код Хаффмана не может иметь такую длину, т.е. в конечном итоге это приводит к ухудшению сжатия данных.

Арифметическое кодирование предназначено для того, чтобы решить эту проблему. Основная идея заключается в том, чтобы присваивать коды не отдельным символам, а их последовательностям.

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации