Обсуждение:Арифметическое кодирование

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

For your information I've created this diagram based on the example in the English-language version of this article that may be useful here:

Please visit en:User talk:Dcoetzee if you have any questions. Dcoetzee 29 apr 2007 18:11 (CEST)


I have added some translation and extra comments on subject. But it is not finished yet. (ewger)

Проблема остановки[править код]

Предполагается, что закодированное сообщение содержит ровно столько знаков в рассматриваемом числе, сколько необходимо для однозначного восстановления первоначальных данных.

В общем случае это неверно. В течение нескольких итераций кодирования может потребоваться добавлять знаки, чтобы исключить возможность понять последний знак входного сообщения неправильно, но когда эта возможность будет исключена, одновременно с этим появятся однозначно восстановимые лишние символы после окончания первоначальных данных, их нужно обрезать, а это значит как–то закодировать процедуру усечения лишних символов при декодировании, либо применять какое–то иное соглашение об остановке кодирования. Например, декодер в каждой итерации должен распознавать максимум один символ, даже если сократившийся интервал возможных вариантов автоматически предполагает следующие символы. Если эти лишние символы не имелись в виду, конец сообщения будет значить именно это. А если имелись, то дополнительные символы один за одним будут сигнализировать об этом. Подобные прорывы больше, чем на один символ, могут случиться в середине сообщения. Такая остановка целесообразна, если среднее количество информации на входной символ больше количества информации на выходной. Скорее всего, изобретаю велосипед, это где–то уже лучше сказано. OCTAGRAM (обс) 10:50, 30 сентября 2014 (UTC)[ответить]