Арифметическое кодирование — это метод энтропийного кодирования, позволяющий эффективно сжимать данные, представляя
последовательность символов одним числом в интервале [0,1). В отличие от традиционных методов, которые кодируют каждый символ
отдельно, арифметическое кодирование кодирует всю последовательность как единую дробь, что обеспечивает максимальную
степень сжатия, близкую к энтропии источника.
Основные принципы арифметического кодирования:
Разбиение интервала [0,1) на подинтервалы
Для каждого символа алфавита определяется вероятность появления, на основе которой интервал [0,1) разбивается на
подинтервалы пропорционально этим вероятностям.
Пошаговое уточнение интервала
При кодировании последовательности символов текущий интервал сужается на подинтервал, соответствующий очередному
символу, тем самым точнее отражая кодируемую информацию.
Финальное число
В конце процесса получается единственное число из уточнённого интервала, которое служит кодом для всей исходной последовательности.
Компоненты арифметического кодера:
Модель вероятностей — статистическая модель, оценивающая вероятности символов.
Интервальное деление — формирование подинтервалов на основе модели вероятностей.
Уточнение интервала — последовательное сужение интервала в процессе кодирования.