在该网站http://www.bilsen.com/aic/cabac.shtml上,有一个很好的示例说明了算术编码的工作方式。让我烦恼的一件事是:
0.647705
已转换为此:
0.101001011101?
很明显,这不是从“典型”十进制到二进制数字的转换。
答案 0 :(得分:1)
0.647705 • 2 = 1 + 0.295410. 0.295410 • 2 = 0 + 0.590820. 0.590820 • 2 = 1 + 0.181640. 0.181640 • 2 = 0 + 0.363280. 0.363280 • 2 = 0 + 0.726560. 0.726560 • 2 = 1 + 0.453120. 0.453120 • 2 = 0 + 0.906240. 0.906240 • 2 = 1 + 0.812480. 0.812480 • 2 = 1 + 0.624960. 0.624960 • 2 = 1 + 0.249920. 0.249920 • 2 = 0 + 0.499840. 0.499840 • 2 = 0 + 0.999680.
产生的位序列是1 0 1 0 0 1 0 1 1 1 00。然后,由于我们停在最后一位,因此我们看到余数.999680大于½,因此我们对最后一位从0到1。结果是.1010010111101。