随着数据量的惊人增长,数据压缩技术的重要性愈加凸显。其中,非对称数字系统(ANS)作为一种高效的熵编码方法,自2014年由雅盖隆大学的雅罗斯瓦夫·杜达(Jarosław Duda)提出以来,便在压缩性能上引领了革命。这种技术拥有优于传统方法的压缩比以及接近霍夫曼编码的处理成本。
ANS 结合了算术编码的压缩率,并以接近霍夫曼编码的处理成本运作,展现出其强大的应用潜力。
在 ANS 的变体——表内 ANS (tANS) 中,利用有限状态机来操作大量符号集,无需使用乘法操作。值得一提的是,ANS 在众多尖端数据压缩工具中的应用广泛,包括 Facebook 的 Zstandard 压缩器(该压缩器在 Linux 内核、Google Chrome 浏览器、Android 操作系统中被采用,并作为 MIME 和 HTTP 的 RFC 8478 发布)、Apple 的 LZFSE 压缩器、Google 的 Draco 3D 压缩器(如皮克斯的通用场景描述格式)、及 PIK 图像压缩器等。
这些应用的背后,AN S 的基本思想是将信息编码成一个单一的自然数 x。其过程涉及到一系列概率运算和符号分配,最终使压缩过程不仅高效,还能最大限度地减少冗余数据的存储。
在传统的二进制系统中,我们将一个比特 s 的信息添加到 x 的过程中可表示为: x' = 2x + s。对于一个熵编码器而言,如果 Pr(0) = Pr(1) = 1/2,这是最优的。然而,ANS 将这一过程普遍化,适用于任意符号集及其相应的概率分布。
ANS 使得随着信息的增加,存储的自然数 x 能够优化至最佳状态,展示数据压缩的效率和灵活性。
熵编码的基本原则是根据信息的变化量来最小化存储需求。举例来说,假设一串1,000个0和1的序列,若知道该序列仅包含1个0及999个1,那么只需编码0的位置信息,这时的存储需求将显著降低。这正体现了使用 ANS 进行压缩的潜力。
如果假设有一种数据模式,其中包括大量相同的符号,则 AN S 的熵编码技术使得对此类数据的压缩越发有效。例如,在一个由三个字母组成的源中,其出现的概率分别为1/2、1/4和1/4,便可以透过 ANS 方法实现最佳的编码效率。这一特性使 ANS 得以在许多现代的数据压缩工具中扮演关键角色。
以 Zstandard 和 LZFSE 为例,这两款压缩工具都充分利用了 ANS 的特点,为用户提供高效的压缩选择。Zstandard 的设计目的是实现最佳的压缩率和速度,而 LZFSE 则关注于优化利益结构及其在 Apple 设备中的性能。这些现代压缩算法在处理大规模数据时,能显著减少存储空间需求并提高传输速度。
通过引入 ANS 技术,Zstandard 和 LZFSE 的优势得以充分发挥,为行业内的数据管理带来了变革。
尽管 ANS 在压缩效率上取得了显著的成果,但在应用过程中仍然面临着一些挑战,包括处理大型数据集中的计算负担及符号分布的动态调整问题。随着数据量的增加,未来对高效压缩技术的需求只会越来越高。
在这样的背景下,ANS 将如何进一步发展,以满足未来数据增长的需求?