算術圧縮の実装の最適化に取り組んでいます。以下に基本的な算術符号化アルゴリズムを含めました。
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
値を四捨五入する考えがありますが、そうするには、上限の計算で下限値を使用できません。その方法がわかりません。
詳細情報: 数値の桁数を減らしながら、下限を切り上げて範囲を狭め、精度を維持することを計画しています。次に、同じ方法で上限を下に丸めます。ただし、上限の計算では、下限の値を大きくすると上限が大きくなり、アルゴリズムが正しくなくなります。
私の質問は次のとおりです。下限の値を使用せずに上限を計算するにはどうすればよいですか?