Re: PPMonstr I


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

Автор: Serge Osnach, <ench@intelserv.kiev.ua>
Киев, Украина, 28 мая 2002 года в 14:58:20

В ответ на : Re: PPMonstr I от Maxim Smirnov в 28 мая 2002 года в 14:17:02:


> > Какие случаи при этом рекомендуется рассматривать?
> > Я подобрал эмпирически (для немаскированных контекстов):
> > 1) отдельно считаем RS для наиболее
> вероятного символа
> > 2) Recent суффикса совпадает с Recent
> текущего контекста
> > 3) Предыдущие 2 символа были Recent в
> своих контекстах
> > 4) Также коэффициент RS зависит от
> количества символов в контексте.
> (numSymbols >= 4 и numSymbols [SEE]

> Мои эксперименты показали, что
> хорошими предикторами являются
> отношение попал/не попал для
> недерминированных контекстных моделей,
Нечто вроде условия (RecentFreq * alpha > SummFreq), где alpha - магическое значение?

> а также количество удач (вроде 3 пункта
> в твоем списке). Учитывать прочее
> я не стал, т.к. мало дает. У меня
> все на сдвигах сделано.
Мой пункт 1) все-таки мне лично нужен, т.к. у меня отдельно идет настройка частот тех mpc, которые не Recent

Насчет пункта 4) -- почти согласен, малополезное дело.

> > ===
> > RealEscFreq = SeeEscFreq * fixsee[order]/(1-fixsee[order]);
> > ...
> > if( !Escape )
> > fixsee[order]-=(fixsee[order])*SeeEscFreq/(TolalFreq*48);
> > else
> > fixsee[order]+=(1-fixsee[order])*(TotalFreq-SeeEscFreq)/(TolalFreq*48);
> > ===

> Ясно. Тебе не кажется, что это
> все-таки надо учитывать в самом SEE ?
Ты предлагаешь завести отдельные SEE-контексты для разных порядков контекста?

В самом предсказателе SEE и так много разных контекстов. При срыве статистики во входном потоке они адаптируются медленно, потому что их много. Именно для ускорения адаптации я и прикрутил такой балансировщик.
Хотя, конечно, отдельный предсказатель для order-0 контекста полезен. Надо будет поэкспериментировать для order-1

> > > Многовато. Особенно 3 деления.
> > > В общем, представления об эффективности
> > > у нас несколько расходятся :-)
> > Деления можно реализовать таблично :)

> Сложно сказать. Одной таблицей не
> обойдешься, а несколько таблиц могут
> привести к "икоте" кэша.
Положим n = 2^k. Тогда, при b много меньше n с достаточной точностью
a/b = (a*n)/(b*n) = a * (n/b) / n = ( a * (n/b) ) >> k

Итого: одна таблица для n/b.

Ответы:



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

Тема:

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

E-Mail:

URL:

Город:

Страна:

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

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