Chapter 6 : 不等长编码¶
约 586 个字 6 张图片 预计阅读时间 3 分钟
为什么需要不等长编码?
举一个例子:
假设一个无记忆信源
- 如果用等长编码, 则 L 很大时才能达到最佳编码的效率
- 如果用不等长编码,将
分别编码成 ,译码器在收到 1 时,译码成 ,收到 00 时译码成 ,01 时译码成 ,比如: ,平均码字长度为
DMS 的不等长编码¶
一个好的不等长编码应该满足以下条件:
- 唯一可译性
- 即时可译性
唯一可译性¶
- 非奇异性:
- 码扩展:
如果码的任意扩展都是非奇异的, 则称码是唯一可译的
Example
上面的码 A 和码 B 都不是唯一可译的,因为对于 A 来说如果收到 10,可以是
码 C 和码 D 是唯一可译的
Sardinas & Petterson 判据¶
判据:一个码是唯一可译码的充分必要条件是除
- 如果
则该码是即时可译并且唯一可译的 - 如果
,则该码是唯一可译,且译码延时有限
Example
可以看到,上面的这个码的后缀分解集中包含码字,因此不是唯一可译的
异字头码¶
如果一个码中没有任何一个码字是其它码字的前缀, 则称该码是异字头码, 即
异字头码的树形表示:所有码字只出现在叶结点上
Kraft 不等式¶
存在长度为
Proof
设
可将所有码字依次放置在码树的叶节点上, 方法如下:
对长为
- 任意唯一可译码必然满足 Kraft 不等式,即唯一可译码
Kraft 不等式成立 存在一个同样长度的异字头码
Proof
由唯一可译性我们有
不等长编码定理¶
任何一个唯一可译码的平均码字长度必须满足
Proof
(1)
当且仅当
(2)选择唯一的
对左边不等式两侧求和,得
因此,存在长度为
对右侧不等式取对数,并求期望值,得: