Recently, Google announced a new JPEG encoder, called Guetzli. Weird name, I agree, especially since it originally is a word for cookie in Swiss-German.
Putting the name aside, it is really intresting.
It’s an open algorithm, which also has an open-source implementation, made by Google itself.
Since it also has releases for Windows, I tried witt it a little bit.
and let me be honest here, this thing is seriously slow, and I mean it, but on the other side it really doesnt seem to look bad even on the lowest quality setting I can use without changing the code which was iirc 84. so if you really want to save space and optimize in size once and then throw it out many times, like for example preparing images for a web server it may help, but it definitely isnt something you want to use for on-the-fly encoding or everyday tasks.
Using this free picture from pixabay (by the way, perfect place for getting free images) and the standard settings of Guetzli, it took, and I kid you not, 21 minutes and 25 secs to encode the image, but this is not all. This thing literally eats RAM for breakfast. the highest amount I notice with the current release was at 1 900MB, although it doesnt keep values over 1 500MB very long and usually sits around 600-750MB RAM usage. and well it went from 3,5MB to 2,81MB, which is at least something, especially since, at least in my opinion the quality has not noticeably decreased.
on another test with the same image, with the Quality setting of 84 (which is the lower bound for the prebuilt release) you get an image being 1,97MB in size and it tool also about 21 Minutes to run here.
to be honest though, I was using the Computer and it isnt very strong, I’ll try my Home PC later while playing some games on the Playstation to make sure that the PC can use all the power it has for the image.
using another picture, this thing REALLY shows how much RAM it can eat, 3 171MB, so over 3GB was the highest I saw in task manager on the default setting. although this can be attributed to the much higher resolution of the image. from my observations it also can go down to lower amounts of ram around 700MB but it seemingly stays on the high amount for quite longer. my guess wight now is that a picture like this which is much “softer”, Guetzli really shows what it can do, because this is running literally while I am writing here. My reason for this guess is that on another non-free image which I óbviously cannot share here, the compression rates were much better than the test before.
one pretty intresting thing that I notice is that Guetzli seemingly doesnt completely massacre the CPU, which is at least in my opinion a pretty intresting fact. On this i5 4590T (4 cores, no hyperthreading, 3GHz), it never seems to take much more than 40% and other processes also seem relatively quiet, so guetzli is seemingly quite nice in terms of that part.
25 Minutes and 48 seconds later, the result is in. and we have a significant size reduction from 1,72MB down to 692KB meaning a reduction of 60% or that the output is less than a third in size compared to the original file.
also around 25 minutes was needed to make it to quality level 84 which results in a 197 KB File, a reduction of 89% and the output is just a bit more than a tenth of the input I didnt look at the RAM or CPU usage, but i believe it’s similar than what we had at 100% quality.
from this simple test I believe Guetzli goes better with “smooth” pictures, taking a little bit longer (relatively speaking) but giving far better compression without being able to notice too much.
I honestly believe that Guetzli is worth the time and processing ressources, especially if you have a rather smooth image, which gives very good results, and the best thing: other than BPG, WebP or some other smaller formats like JPEG2000 , Guetzli-encoded files are fully compatible JPEG files, meaning you can safely use them pretty much anywhere.