EN
返回档案库

案例库 · 软件与 IT · 技术决策 · 2013–2016

Facebook的Zstandard压缩算法:速度比zlib快数倍

Zstandard将有限状态熵编码与性能优先的引擎相结合,在速度、压缩比和解压速度上同时击败了zlib。

Facebook (Meta)

那一手

二十年来,zip、gzip和zlib中的算法Deflate一直设定了压缩速度和体积之间的标准平衡。竞争对手通常只提供更好的压缩比或更快的速度,很少能两者兼得,而Facebook因其不断增长的数据中心需要这两者。

理论上的解决方案是不对称数字系统(ANS),由Jarek Duda提出:与将概率四舍五入为2的幂的霍夫曼编码,或跟踪整个范围的算术编码不同,ANS使用一个自然数作为其状态。2014年的论文报告称,解码速度比霍夫曼快约50%,压缩比达到算术编码级别,仅使用几KB的表格。

Facebook的Yann Collet在2016年将这个想法变成了Zstandard 1.0,并以BSD许可证发布。在Silesia语料库上的基准测试显示,在相同的压缩比下,其压缩速度比zlib快约3到5倍,在相同速度下生成的文件小10-15%,解压速度几乎快两倍,并有22个调整级别。

为什么管用

  • 单数字状态使编码简单,从而速度快
  • 精确的概率使压缩接近熵极限
  • 级别让一个编解码器既能处理速度关键型也能处理大小关键型场景
  • 开源许可使该格式在业界广泛传播
值了多少ANS编码:拥有哈夫曼的速度和算术编码的压缩比聪明

可以搬走什么

一个理论上的新想法只有被转化为调优的引擎时才见效:制胜之道是将ANS编码与对现代CPU的精心实现相结合,而非仅靠算法。

后来呢

Zstandard成为一种广泛使用的开源无损压缩格式,其作者设计它以适应几乎所有的无损压缩场景;同一ANS思想也启发了后来的编解码器,现已成为存储、日志和网络传输的标准工具。

资料来源

发现哪里写错了?告诉我们。

同一路聪明