Zopfli

Zopfli is a data compression library that performs Deflate, gzip and zlib data encoding. It achieves higher compression ratios than mainstream Deflate and zlib implementations at the cost of being slower. Google first released Zopfli in February 2013 under the terms of Apache License 2.0.

The name Zöpfli is the Swiss German diminutive of “Zopf”, an unsweetened type of Hefezopf.

Operation
Zopfli can either generate a raw Deflate data stream or encapsulate it into gzip or zlib formats. Zopfli achieves higher data density through more exhaustive compression techniques. The method is based on iterating entropy modeling and a shortest path search algorithm to find a low bit cost path through the graph of all possible Deflate representations of the uncompressed data. By default, Zopfli performs 15 iterations but could be configured to perform more or fewer. Under default settings, the output of Zopfli is typically 3–8% smaller than zlib's maximum compression, but takes around 80 times longer.

Because of its significantly slower compression speed, Zopfli is not suited for on-the-fly compression. It is typically used for one-time compression of static content. This is typically true for web content that is served with Deflate-based HTTP compression or web content in a Deflate-based file format such as PNG or WOFF font files. Another use case is software updates or downloads with software package files that have a zip-based format such as Android application packages (APK) or Java Archives (JAR), especially over mobile connections.

History
Zopfli is based on an algorithm from Jyrki Alakuijala. The first reference implementation of Zopfli, by Jyrki Alakuijala and Lode Vandevenne, appeared in February 2013. Version 1.0.0 was released on April 25, 2013. The reference implementation is a software library under the terms of Apache License 2.0, written in C.

Since then, the open-source community made attempts to modify Zopfli for optimizing Portable Network Graphics (PNG) files because PNG uses a Deflate compression layer. The fruit of these modifications was ZopfliPNG, which was admitted into Google's Zopfli repository in May 2013. The Zopfli algorithm has also been integrated into other PNG compression optimization tools like advpng (from the AdvanceCOMP utility suite) and OxiPNG.