“算术编码区间把已知或共同预测的条件概率逐步变成嵌套区间;有限精度实现另行承担整数舍入、延迟位和终止。二者接在本页熵界之后,而不是把渐近存在性换成任意短文件必然变小的承诺。完整文件实验把模型表…”
形式陈述
算术编码不强迫每个源符号各占一个整数长度码字。它把一个完整消息映到
约定一个有限有序字母表,其中包含正文不会出现的EOF。第
两端必须都由旧
有限bit前缀
为了不依赖未发送的后续bit,应选
直觉
每一步都在当前范围内按预测概率分地。常见符号获得大块土地,区间缩得较少;罕见符号只分到窄条,需要更多bit才能指明。重要的是双方使用同一张表,而不是这张表必须完全准确地描述真实来源。
区间越来越窄后,许多bit位置可以共同决定整段消息。例如某个符号的概率为
EOF使一段完整消息不再是另一完整消息的前缀。若省略它又没传原长,数0可以不断落入最左子区间,译码器分不清A、AA还是更多A。一个范围能标识已有前缀,并不自动告诉接收者何时停下。
例子与边界
固定表 ABABA EOF,有理数状态依次为:
- A:
- B:
- A:
- B:
- A:
- EOF:
,宽度
选择bit前缀 0100110111,即整数311的10位表示;它对应
这里最短可容纳的二进制小区间确为10位:9位网格中,第一个左端不小于
若把B概率错误设为零,遇B时区间宽度变零,算法无法编码。若两端符号顺序不同,即使概率数值相同,也会恢复不同文本。若只是用普通浮点数不断相乘,区间端点最终可能舍入成同一个数;这不是允许的终止策略。
推论与应用
理想区间法给每条消息的码长界
直接用精确有理数实现时,分子分母的位数随输入增长,不能把一步分数乘法当作永远恒定的机器工作。整数算术编码用有限范围、重归一化和延迟bit保持可译性;它的整数舍入会改变区间,因此不应逐消息宣称其bit数严格等于本页理想码长。本例两种实现恰好都产生 0100110111,不代表所有输入都如此。
预测可以来自固定频数,也可由同步更新的频数模型产生。编码器负责把区间变成bit,模型负责告诉它下一步怎么分区;这层分工允许同一编码器搭配不同预测策略。
参考资料
- I. H. Witten、R. M. Neal、J. G. Cleary,Arithmetic Coding for Data Compression,1987,pp.521–523:区间构造、EOF与编解码思想
- Aarti Singh,CMU 10-704 Lecture 9,2012,§§9.1–9.2.3:预测接口、二进制小区间与中点码长界;本页ABABA轨迹独立使用有理数计算