| Guetzli | |
|---|---|
| Original author | Google Research |
| Initial release | March 15, 2017; 8 years ago (2017-03-15) |
| Stable release | 1.0.1 / March 21, 2017; 8 years ago (2017-03-21) |
| Repository | github |
| Written in | C++ |
| Standard | JPEG |
| License | Apache License 2.0 |
Guetzli is a freely licensedJPEG encoder that Jyrki Alakuijala, Robert Obryk, andZoltán Szabadka have developed inGoogle'sZürich research branch. The encoder seeks to produce significantly smaller files than prior encoders at equivalent quality, albeit at very low speed. It is named after theSwiss Germandiminutive expression forbiscuits,[1] in line with the names of other compression technology from Google.[2][3]
Guetzli optimizes thequantization step of encoding to achieve compression efficiency. It constructs custom quantization tables for each file, decides oncolor subsampling,[4] and quantizes adjacentDCT coefficients to zero, balancing benefits in therun-length encoding of coefficients and preservation of perceived image fidelity. Zeroing the right coefficients is the most effective tool in Guetzli, which is used as a makeshift means of spatially adaptive quantization. Guetzli uses Butteraugli (another open-source Google project) to guide compression.[5]
Guetzli is resource-intensive, requiring orders of magnitude more processing time andrandom-access memory than other JPEG encoders.[6] Guetzli supports only the top of JPEG's quality range (quantizer settings 84–100)[7][8] and supports only sequential (non-"progressive") encoding. Guetzli is more effective with bigger files.[8] Google says it is a demonstration of the potential of psychovisual optimizations, intended to motivate further research into future JPEG encoders.[2] Two tests found that Guetzli is very slow (about 4 magnitudes slower than normal JPEG encoder) and not necessarily better thanmozjpeg.[7][9]
Butteraugli is a project that estimates the psychovisual similarity of two images. It assigns a differentialmean opinion score (DMOS) value to the difference between an original image and a degraded version. It is significantly more complex than traditional metrics likePSNR andSSIM, but claimed to perform better with high-end quality, where degradations are not or barely noticeable.[10] It models color perception and visual masking in the human visual system, taking into account that the eye is imaging different colors with different precision.[11] It uses aheat map of changes.[5] How the hundreds of parameters that model the properties of the human visual system were derived remains unexplained.[1] An in-house performance evaluation with 614 ratings from 23 people on their own test set of 31 images yielded 75% of ratings favouring of JPEGs encoded for Butteraugli scores overlibjpeg-turbo encodes,[12] which usually score higher on SSIM and PSNR-HVS-M.[13][14]
Translating to "butter eye", the Swiss-German name originally signifies a dimple on top of some sweet pastry that has been filled with butter and sugar before baking.[15]
Guetzli is acommand-line app. Written inC++,[16] it isfree and open-source under the terms ofApache License 2.0.Windows,macOS, andLinux versions of Guetzli are directly available from Google's repository onGitHub. The first public version was released on October 21, 2016, without any speed optimizations,[17] and only announced on a specialist forum.[18][13] Version 1.0 followed five months later on March 15, 2017,[19] accompanied by an announcement to a broader public and two scientific papers.[20][12][21]
In addition to official release channel,openSUSE andDebian distribute it via their officialsoftware repositories.[22][23][24] (ForArch Linux, there are user repositories available.)[25][26] TheHomebrew repository distributes a macOS version.[17] For the Windows platform, two open-source GUI front-ends are available.[27][28]
Software developers that useNode.js can integrate Guetzli in their apps via a package available on thenpm repository.[29]
{{cite web}}: CS1 maint: numeric names: authors list (link)