“以 $R X=n^{ 1}\log 2 \mathcal M X $、$R Y=n^{ 1}\log 2 \mathcal M Y $ 计源编码速率,要求联合块错误概率趋零。所有可达速率对的…”
形式陈述
设源符号集合
把每个源符号映成有限字。码长
将
无失真逐符号码有三层常用条件:
- 非奇异(nonsingular):
在单个符号上单射; - 唯一可译(uniquely decodable):
在任意有限源串上单射; - 前缀自由(prefix-free):
是单射,且像集 中没有一个码字是另一不同码字的前缀。单射要求保留源标签;把两个源符号都映为0,其像集虽前缀自由,编码却不能恢复原符号。
在所有码字长度均为正、且接收者事先不知道源串长度的串联模型中,它们满足严格层级
反向一般都不成立。在上述正码长串联模型中,前缀码与即时码是同一个层级,而不是两层不同条件。
长度
直觉
固定长度码给每个符号同样多的位置;变长码则让高概率符号走短路径、低概率符号走长路径,从而降低分布加权的平均长度。节省的前提是串联后仍能恢复边界与原符号,否则“短”只是把歧义藏进码流。
块码把
层级的证明机制
正码长且源标签单射的前缀码,从左到右遇到第一个完整码字时就能确定首符号,删去它后归纳解析余串,因此唯一可译。唯一可译当然要求长度一的源串映射互异,所以必然非奇异。下面的反例说明两条逆命题都失败。
例子与边界
可复算例:平均长度
对概率
码长为
同一映射用于另一分布时,平均长度会改变;码本本身不带“1.9 bit”这一属性。
两个严格反例
集合 010 可解析为 0|10 或 01|0,因此不是唯一可译。集合 0 是 01 的前缀,读到 0 时还不能立即输出。它的唯一性可从右向左验证:每个 1 必须与前一个 0 配成 01,其余 0 各自成码字,因而合法码流没有第二种分解。于是三层条件不能混用。
空码字需要另查传输约定。集合
若源有记忆,逐符号码忽略跨符号相关性;若允许重构误差,目标也不再是唯一恢复,而要另行指定失真度与容许失真。两种改变都超出这里的无失真逐符号层级。
推论与应用
前缀码提供即时解析,Kraft–McMillan 不等式刻画整数码长的可行性,Huffman 算法在已知有限分布的逐符号前缀码中最小化
有损源编码、通用编码和有记忆信源仍沿用“编码器—译码器—性能准则”的框架,但分别要补上失真、未知分布或熵率假设;不能把逐符号 Huffman 的结论直接搬过去。
完整文件长度的另一条计数边界
平均码长
固定输入位长
所以任何覆盖全部
可实际复算的例子是五字节 ABABA。为A、B、EOF取规范码 0,10,11,正文只用7位,加EOF后9位;但完整HUF1文件还需要14字节固定头、9字节码长表和7位字节填充,总共25字节。这里原文件40位、完整编码200位;“正文只用7位”与“这个短文件变大”同时成立。若事先共享码表,可在多条消息间摊销描述,但必须说明共享信息和消息边界的来源。
压缩流终点实验提供真实HUF1/ARC1文件和逐符号解码证据;它把模型成本、结束事件、有效位及寄存器尾位分账,不改变本页的非奇异、唯一可译、前缀自由层级。
参考资料
- Thomas M. Cover and Joy A. Thomas, Elements of Information Theory, 2nd ed., Wiley, 2006, §§5.1–5.4.
- Robert G. Gallager, Information Theory and Reliable Communication, Wiley, 1968, §§3.2–3.4.
- Claude E. Shannon, “A Mathematical Theory of Communication,” Bell System Technical Journal 27, 1948, Part I, §§9–10.