Jump to content

Zopfli

From Wikipedia, the free encyclopedia
Zopfli Archive
Original author(s)Lode Vandevenne and Jyrki Alakuijala
Developer(s)Google
Initial releaseFebruary 2013(2013-02)
Stable release
1.0.3[1]Edit this on Wikidata / 27 November 2019;4 years ago(27 November 2019)
Repository
Written inC
TypeData compression
LicenseApache License 2.0
Websitegithub/google/zopfliEdit this on Wikidata

Zopfliis adata compressionlibrarythat performsDeflate,gzipandzlibdata encoding.[2]It achieves higher compression ratios than mainstream Deflate and zlib implementations at the cost of being slower.[3]Googlefirst released Zopfli in February 2013 under the terms ofApache License 2.0.[4]

The nameZöpfliis theSwiss Germandiminutiveof “Zopf”,an unsweetened type ofHefezopf.[5]

Operation

[edit]

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 ashortest path searchalgorithm to find a low bit cost path through thegraphof all possible Deflate representations of the uncompressed data.[6]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.[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 forwebcontent that is served with Deflate-basedHTTP compressionor web content in a Deflate-based file format such as PNG orWOFFfont files.[9]Another use case is software updates or downloads with software package files that have azip-based format such asAndroid application packages(APK) orJava Archives(JAR), especially over mobile connections.[10]

History

[edit]

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 asoftware libraryunder the terms ofApache License 2.0,written inC.[2]

Since then, the open-source community made attempts to modify Zopfli for optimizingPortable Network Graphics(PNG) files because PNG uses a Deflate compression layer. The fruit of these modifications was ZopfliPNG, which was admitted into Google's Zopflirepositoryin 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

[edit]

References

[edit]
  1. ^"Release 1.0.3".27 November 2019.Retrieved28 November2019.
  2. ^ab"google/zopfli · GitHub".Github.Retrieved2015-09-29.
  3. ^ab"A Look At Zopfli, Google's Open Source Compression Algorithm | Lifehacker Australia".Lifehacker.au. 2013-03-03.Retrieved2015-09-29.
  4. ^ab"Compress data more densely with Zopfli - Google Developers Blog".Googledevelopers.blogspot. 2013-02-28.Retrieved2013-05-01.
  5. ^Alexander Neumann (March 2013)."Zopfli: Neue Kompressionsbibliothek von Google | heise Developer"(in German).Heise.de.Retrieved2015-09-29.
  6. ^"Zopfli: Google's new data compression algorithm".Digit. 2013-03-01.Retrieved2015-09-29.
  7. ^Dean Hume (2015-06-01)."Improved Compression Ratios Using Zopfli".Retrieved2015-09-06.
  8. ^Sharwood, Simon (2013)."Google open sources very slow compression algorithm".The Register.
  9. ^Ilya Grigorik (2014-01-09)."Google Fonts recently switched to using new Zopfli compression algorithm".Google+.Retrieved2015-06-06.
  10. ^Sanders, James."Google's Zopfli Compression Algorithm: Extract higher performance from your compressed files".TechRepublic.Retrieved2021-03-31.
  11. ^"zopfli/README at master · google/zopfli".GitHub.
  12. ^"Release Zopfli-1.0.0".Github. 2013-04-25.Retrieved2015-09-06.
  13. ^"ZopfliPNG: Google/zopfli@337d27f".Github.Retrieved2015-09-29.
  14. ^Andrea Mazzoleni."Advance Projects".Advancemame.sourceforge.net.Retrieved2015-09-29.
  15. ^Josh Holmer."shssoichiro/oxipng - Github".GitHub.Retrieved2019-08-05.
[edit]