Re: Вопрос:Арифметическое сжатие


Сайт о сжатии >> Форум #Компрессор# >> [Ответить] [Ответы]

Автор: Шелвин, <sh@compression.ru>
18 марта 2004 года в 03:57:54

В ответ на : Вопрос:Арифметическое сжатие от Николай в 17 марта 2004 года в 22:33:25:


> Во многих программах, приведенных на этом сайте
> максимальная частота(MAX_FREQUENCY) для 16-битной
> арифметики положена равной 2^14-1. Буду благодарен, если кто-нибудь подскажет откуда берется это таиственное число? Каким оно будет
> для 32,64-битной арифметики?

Прям так уж и во многих.

Это число (точнее, целая степень двойки)
является нижней границей рабочей
ширины интервала (range, high-low etc).
Объясняется это тем, что при делении
range на total не должен получаться 0.

Что же касается 2^14, то такой maxfreq
может быть только у старых 16-битных
арифметиков, причем зачем-то использующих
signed-переменные. В принципе, это
число должно быть либо на бит меньше
заданной разрядности (если это
традиционный арифметический кодер, типа
используемого А.Филинским), либо
на байт (если это rangecoder).
То есть, 2^31 и 2^24 для 32-битных
переменных.

Есть, правда, dword-ориентированная
реализация rangecoder'а, где
maxfreq = 2^(64-32) = 2^32


Ответы:



Ответить на это сообщение

Тема:

Имя (желательно полное):

E-Mail:

URL:

Город:

Страна:

Вежливый и подробный комментарий:
(Форматируйте его, пожалуйста, как почту - короткими строками
Еnter в конце строки, пустая строка между параграфами).

Пожалуйста, заполните все поля.
И не нажимайте по два раза на кнопку! Дождитесь ответа сервера.