算术编码是将被编码的信源表示成实数0~1之间的一个间隔。信源符号序列越长,通过编码表示它的间隔就越短,需要的二进制比特数就越多。
举例说明,例如符号a1,a2,a3出现的概率分别为0.4, 0.5, 0.1。则将[0,1)区间分配给三个符号,分别为:
a1: [0, 0.4)
a2: [0.4, 0.9)
a3: [0.9, 1)
在编码之前,完整的信息间隔是[0, 1),然后根据输入的符号,依次将这个区间按照相应的比例变窄。例如,对”a2a2a2a3”进行编码:
low high
开始编码前: 0 1
a2 0.4 0.9
a2 0.6 0.85
a2 0.7 0.825
a3 0.8125 0.825
新的