Zopfli

Zopfli是一个数据压缩算法，可以将数据压缩为DEFLATE、gzip或zlib格式。Zopfli被认为是目前压缩率最高的DEFLATE压缩算法。2013年2月，Google将Zopfli算法的一个参考实现以Apache许可证2.0发布为自由软件程序库。名称Zöpfli是瑞士德语“Zopf”（一种不加糖的花环面包）的指小形式。

 属性和使用案例 
Zopfli可以输出DEFLATE原始数据流，也可以将DEFLATE数据封装为gzip或zlib格式。默认配置的15次迭代可被增加或减少，以平衡压缩耗时与效果。

在默认设置下，Zopfli的输出一般比zlib的最大压缩小3%至8%，但消耗约80倍时间。Zopfli的解压速度与zlib的解压速度不相上下。

由于其压缩速度显著较慢，zopfli不太适合实时压缩，一般用于静态内容的一次性压缩。典型用途是提供Web内容，包括基于DEFLATE的HTTP压缩，或者使用在基于DEFLATE的文件格式，例如PNG和WOFF字体文件。另一个用途是基于ZIP的软件包文件下载和更新，例如Android应用程序包（APK）和Java存档文件（JAR），尤其是用在移动网络。

 技术 
使用高消耗的压缩技术可取得更高数据密度。该方法基于迭代熵建模，以及一个最短路径搜索算法，凭借所有未压缩数据可能的DEFLATE表示法得到的图，找到最低的位消耗路径。

 实现 
Google发布了一个用C语言编写的程序库参考实现。它可以按Apache许可证2.0的条款作为自由软件使用。

为PHP创建的：php_zopfli。

一个用C#实现的Zopfli位于CompressSharper程序库的ZopfliDeflater.cs。

 历史 
Zopfli基于Jyrki Alakuijala的一个算法。Google员工Jyrki Alakuijala和Lode Vandevenne撰写了一个zopfli的参考实现，2013年2月首次向公众发布。版本1.0.0发布于2013年4月25日。之后几个为PNG压缩的适配出现在GitHub，ZopfliPNG在2013年5月被提交到Google的zopfli参考实现。

Zopfli的出现显示，Ken Silverman的KZIP是压缩率最有效的DEFLATE实现，以及7-Zip的deflater是压缩率最有效的自由许可之一。

 PNG优化 
因为PNG使用DEFLATE压缩层，Zopfli算法可用于压缩PNG文件。Zopfli的作者创建了一个名为ZopfliPNG的PNG优化工具。Zopfli算法也已被集成到其他PNG压缩优化工具，例如工具套件中的advpng。

ZopfliPNG是目前缩减PNG大小最有效的优化器。

 参见 
 Brotli

 参考资料 

 外部链接 
 Project page  on GitHub, online implementation 
 Google's Zopfli Compression Algorithm: Extract higher performance from your compressed files  – TechRepublic.com

Category:自由發展元件與函式庫
Category:无损压缩算法