变长编码的总结与统一
1. 变长编码的性能表现
在处理不同类型的数据时,变长编码的性能表现各有特点。对于大整数的压缩,目前有丰富的实践经验表明,开发出优秀的变长编码相对容易。像 Elias omega 码、三元逗号码和穿孔码在压缩大整数方面表现出色,它们之间的差异不大。
当数据中包含大量小值时,各种变长编码的性能差异并不显著。不过,在这种情况下,伽马码和欧米茄码似乎表现稍好一些。要开发一种始终能用短码对小整数进行编码的变长编码是很困难的,甚至可能是不可能的。
欧米茄码在处理小数据值和大数据值时表现不错,但在中间范围的表现欠佳,因为它会引入新的前缀元素(长度组)。所以,即使是这种编码,也并非适用于任意数据分布。
2. 变长编码的分类与统一尝试
经过几十年对变长编码领域的深入研究,如今已经有许多编码被构思、开发、分析,并应用于实际场景中,用于压缩各种类型的数据。主要的变长编码类别基于不同的方法、原则,具有不同的特性。
然而,人类有将不同实体统一起来的强烈倾向,接下来将探讨一种统一变长编码的尝试。有些编码构成了依赖于一个或少数几个参数的编码族。对于参数的每一种选择,该编码族都会简化为一个由码字组成的编码。以下是这类编码的列表:
- Stout 码
- 戈隆布码
- 莱斯码
- 指数戈隆布码
- Fiala 和 Greene 的起止步长码
- Pigeon 的起止码
- 禁忌码
- Capocelli 码
- Howard 和 Vitter 的次指数码
许多变长编码依赖于参数且由编码族组成,这为统一它们提供了思路。P
超级会员免费看
订阅专栏 解锁全文
17万+

被折叠的 条评论
为什么被折叠?



