基本原理:
算术编码的基本原理是将编码的消息表示成实数0和1之间的一个间隔,消息越长,编码表示它的时间就越小,表示这一间隔的二进制位数就越多。
算术编码用到两个基本的参数,符号的概率和它的编码间隔,信源符号的概率决定压缩编码的销量,也决定编码中信源符号的间隔,而这些间隔包含在0-1之间,编码过程中的间隔决定了符号压缩后的输出。
事件序列的算术编码步骤如下:
(1)编码器在开始时将“当前间隔” [ L, H) 设置为[0,1)。
(2)对每一事件,编码器按步骤(a)和(b)进行处理
(a)编码器将“当前间隔”分为子间隔,每一个事件一个。
(b)一个子间隔的大小与下一个将出现的事件的概率成比例,编码器选择子间隔对应于下一个确切发生的事件相对应,并使它成为新的“当前间隔”。
(3)最后输出的“当前间隔”的下边界就是该给定事件序列的算术编码。
编码过程:
算术编码方法是将被编码的一则消息或符号串(序列)表示成0和1之间的一个间隔,即对一串符号直接编码成[0,1]区间上的一个浮点小数,符号序列越长,编码表示它的间隔越小,表示这一间隔所需的位数就越多,信源中的符号序列仍然要根据某种模式生成概率的大小来减少间隔,可能出现的符号概率要比不太可能出现的符号减少范围小,因此,只增加较少的比特位。
在传输任何符号串之前,