Software:Zopfli

From HandWiki
Short description: Data compression software
Zopfli Archive
ZopfliPNG screenshot.png
Original author(s)Lode Vandevenne and Jyrki Alakuijala
Developer(s)Google
Initial releaseFebruary 2013 (2013-02)
Stable release
1.0.3 / November 27, 2019; 4 years ago (2019-11-27)[1]
Written inC
TypeData compression
LicenseApache License 2.0

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

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

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.[6] By default, Zopfli performs 15 iterations but could be configured to performed 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.[4][3]

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.[7][8] 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.[9] 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.[10]

History

Zopfli is based on an algorithm from Jyrki Alakuijala.[11] 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.[12] The reference implementation is a software library under the terms of Apache License 2.0, written in C.[2]

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.[13] The Zopfli algorithm has also been integrated into other PNG compression optimization tools like advpng (from the AdvanceCOMP utility suite)[14] and OxiPNG.[15]

See also

References

  1. "Releases - google/zopfli". https://github.com/google/zopfli/releases. 
  2. 2.0 2.1 "google/zopfli · GitHub". Github.com. https://github.com/google/zopfli. 
  3. 3.0 3.1 "A Look At Zopfli, Google's Open Source Compression Algorithm | Lifehacker Australia". Lifehacker.com.au. 2013-03-03. http://www.lifehacker.com.au/2013/03/a-look-at-zopfli-googles-open-source-compression-algorithm/. 
  4. 4.0 4.1 "Compress data more densely with Zopfli - Google Developers Blog". Googledevelopers.blogspot.com. 2013-02-28. http://googledevelopers.blogspot.com/2013/02/compress-data-more-densely-with-zopfli.html. 
  5. Alexander Neumann (March 2013). "Zopfli: Neue Kompressionsbibliothek von Google | heise Developer" (in de). Heise.de. http://www.heise.de/-1814414.html. 
  6. "Zopfli: Google's new data compression algorithm | Digit.in". Thinkdigit.com. 2013-03-01. http://www.thinkdigit.com/Internet/Zopfli-Googles-new-data-compression-algorithm_13707.html. 
  7. Dean Hume (2015-06-01). "Improved Compression Ratios Using Zopfli". http://deanhume.com/home/blogpost/improved-compression-ratios-using-zopfli/9125. 
  8. Sharwood, Simon (2013). "Google open sources very slow compression algorithm". The Register. https://www.theregister.co.uk/2013/03/01/zopfli_compression/. 
  9. Ilya Grigorik (2014-01-09). "Google Fonts recently switched to using new Zopfli compression algorithm". Google+. https://plus.google.com/+IlyaGrigorik/posts/1sxencNkbNS. 
  10. Sanders, James. "Google's Zopfli Compression Algorithm: Extract higher performance from your compressed files" (in en). https://www.techrepublic.com/blog/the-enterprise-cloud/googles-zopfli-compression-algorithm-extract-higher-performance-from-your-compressed-files/. 
  11. "zopfli/README at master · google/zopfli" (in en). https://github.com/google/zopfli/blob/master/README. 
  12. "Release Zopfli-1.0.0". Github.com. 2013-04-25. https://github.com/google/zopfli/releases/tag/zopfli-1.0.0. 
  13. "ZopfliPNG : Google/zopfli@337d27f". Github.com. https://github.com/google/zopfli/commit/337d27f25ef15a6cf34fef2acd0613fddc411cb1. 
  14. Andrea Mazzoleni. "Advance Projects". Advancemame.sourceforge.net. http://advancemame.sourceforge.net/doc-advpng.html#3. 
  15. Josh Holmer. "shssoichiro/oxipng - Github". https://github.com/shssoichiro/oxipng. 

External links