Арифметическое кодирование: различия между версиями

Материал из in.wiki
Перейти к навигации Перейти к поиску
w>Бесполезный
м
w>YurikBot
м (robot Adding: pt:Codificação aritmética)
Строка 13: Строка 13:
 
[[de:Arithmetisches Kodieren]]
 
[[de:Arithmetisches Kodieren]]
 
[[en:Arithmetic coding]]
 
[[en:Arithmetic coding]]
[[ja:算術符号]]
+
[[ja:算術符号]]
 
[[pl:Kodowanie arytmetyczne]]
 
[[pl:Kodowanie arytmetyczne]]
[[zh:算术编码]]
+
[[pt:Codificação aritmética]]
 +
[[zh:算术编码]]

Версия от 06:50, 6 апреля 2006

Шаблон:Cleanup-rewrite

Характеристики

Обеспечивает лучшую степень сжатия чем алгоритм Хаффмана. На каждый символ требуется почти H H бит, где H H информационная энтропия источника.

Принцип действия

Пусть у нас есть некий алфавит, а также данные о частотности использования символов (опционально). Тогда рассмотрим на координатной прямой отрезок о 0 до 1.

Назовём этот отрезок рабочим. Расположим на нём точки таким образом, что длины образованных отрезков будут равны частоте использования символа и каждый такой отрезок будет соответствовать одному символу.

Теперь возьмём символ из потока и найдём для него отрезок, среди только что сформированных, теперь отрезок для этого символа стал рабочим. Разобьём его таким же образом, как разбили отрезок от 0 до 1. Выполним эту операцию для некоторого числа последовательных символов. Затем выберем любое число из рабочего отрезка. Биты этого числа вместе с длиной его битовой записи и есть результат арифметического кодирования использованных символов потока.

de:Arithmetisches Kodieren en:Arithmetic coding ja:算術符号 pl:Kodowanie arytmetyczne pt:Codificação aritmética zh:算术编码