我正在优化我的算术压缩实现。我在下面包含了一个基本的算术编码算法:
lower bound = 0
upper bound = 1
while there are still symbols to encode
current range = upper bound - lower bound
upper bound = lower bound + (current range × upper bound of new symbol)
lower bound = lower bound + (current range × lower bound of new symbol)
end while
我有一个想法来四舍五入我的值,但要这样做,上限的计算不能使用下限值。我不知道该怎么做。
更多信息:我计划将下限向上舍入,缩小范围,从而保持精度,同时让我的数字的位数更少。然后以相同的方式将我的上限向下舍入。但是,如果我们增加下限的值,上界的计算会使它增加,从而使算法不正确。
我的问题是:如何在不使用下限的值的情况下计算上限?