我正在努力优化算术压缩实现。我在下面列出了一个基本的算术编码算法:
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
我有一个想法来舍入我的值,但为了这样做,上限的计算不能使用下限值。我无法弄清楚如何做到这一点。
更多信息:我计划将下界四舍五入,缩小范围,从而保持精确度,同时使我的数字减少数字。然后以同样的方式将我的上限向下舍入。 但是,如果我们增加下限的值,上限的计算会使它增加,从而使算法不正确。
我的问题是:如何在不使用下限值的情况下计算上限?
答案 0 :(得分:0)
关于将字符串向左移动,请使用:string.substring(1)