Google’s new algorithm promises to reduce the size of JPEG images by 35% without losing quality
Guetzli uses the JPEG format. So, softwares which can currently read standard JPEGs will also be able to read Guetzli JPEGs without any other modification. Guetzli Is A New JPEG Encoder For Higher Compression Developed By Google. Released free software generates ~35% smaller images than libjpeg. We are not going in to in depth technical details about the technology as readers can read the official Google blog with visual examples :
1 |
https://research.googleblog.com/2017/03/announcing-guetzli-new-open-source-jpeg.html |
Guetzli is an algorithm very similar to Zopfli, which is another project also developed by Mountain View but for the compression of PNG and gzip file format.
Guetzli uses a large amount of memory, around 300MB of memory per 1 megapixel of the input image and a significant amount of CPU time – about 1 minute of CPU per 1 megapixel of input image.
---

Guetzli : A New JPEG Encoder For Higher Compression
As developer, you will be interested to check the Github project and try :
1 |
https://github.com/google/guetzli |
On Mac, unless you want the build by hand, with Homebrew you can easily install by running the command :
1 |
brew install guetzli |
which will return this output :
1 2 3 4 5 6 7 8 9 10 11 |
==> Installing dependencies for guetzli: libpng ==> Installing guetzli dependency: libpng ==> Downloading https://homebrew.bintray.com/bottles/libpng-1.6.29.sierra.bottle ######################################################################## 100.0% ==> Pouring libpng-1.6.29.sierra.bottle.tar.gz ? /usr/local/Cellar/libpng/1.6.29: 26 files, 1.2MB ==> Installing guetzli ==> Downloading https://homebrew.bintray.com/bottles/guetzli-1.0.1.sierra.bottle ######################################################################## 100.0% ==> Pouring guetzli-1.0.1.sierra.bottle.tar.gz ? /usr/local/Cellar/guetzli/1.0.1: 5 files, 229.2KB |
Example command to convert image is :
1 |
guetzli [--quality Q] [--verbose] original.png output.jpg |
There is no manual entry for guetzli. As example, I ran :
1 |
guetzli --quality 85 --verbose 14.jpg 14guetzli.jpg |
which returned this output :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
riginal Out[ 158254] BA[100.00%] D[0.0000] Score[158254.0000] (*) Iter 1: f111111 quantization matrix: 1 1 1 1 1 1 1 1 1 1 1 2 2 3 3 3 1 1 1 2 2 3 3 3 1 1 1 1 1 1 1 1 1 1 1 2 3 3 3 3 1 1 1 2 3 3 3 3 1 1 1 1 1 1 1 2 1 1 1 3 3 3 3 3 1 1 1 3 3 3 3 3 1 1 1 1 1 1 2 2 2 2 3 3 3 3 3 3 2 2 3 3 3 3 3 3 1 1 1 1 1 2 2 3 2 3 3 3 3 3 3 3 2 3 3 3 3 3 3 3 1 1 1 1 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 1 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 1 1 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Iter 1: f111111 GQ[ 7.08] Out[ 158254] BA[100.00%] D[0.0000] Score[158254.0000] Iter 2: f111111 quantization matrix: 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 Iter 2: f111111 GQ[22.56] Out[ 137554] BA[100.00%] D[0.3788] Score[137554.0000] (*) Iter 3: f111111 quantization matrix: 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 Iter 3: f111111 GQ[45.11] Out[ 125457] BA[100.00%] D[0.7007] Score[125457.0000] (*) Iter 4: f111111 quantization matrix: 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 Iter 4: f111111 GQ[67.67] Out[ 115489] BA[100.00%] D[0.9011] Score[115489.0000] (*) Iter 5: f111111 quantization matrix: 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 11 9 9 9 9 9 9 9 11 9 9 9 9 9 9 9 11 Iter 5: f111111 GQ[90.31] Out[ 109336] BA[100.00%] D[1.1391] Score[109336.0000] (*) Iter 6: f111111 quantization matrix: 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 11 13 11 11 11 11 11 11 11 13 11 11 11 11 11 11 11 13 Iter 6: f111111 GQ[112.87] Out[ 105255] BA[100.00%] D[1.3803] Score[105255.0000] (*) Iter 7: f111111 quantization matrix: 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 13 15 15 13 13 13 13 13 13 15 15 13 13 13 13 13 13 15 15 Iter 7: f111111 GQ[135.52] Out[ 99795] BA[100.00%] D[1.6504] Score[99795.0000] (*) Iter 8: f111111 quantization matrix: 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 17 15 15 15 15 15 15 15 17 15 15 15 15 15 15 15 17 15 15 15 15 15 15 17 17 15 15 15 15 15 15 17 17 15 15 15 15 15 15 17 17 Iter 8: f111111 GQ[158.17] Out[ 96721] BA[100.00%] D[2.1032] Score[4472752592435967084701623882088448.0000] Iter 9: f111111 quantization matrix: 13 13 13 13 15 15 15 15 13 13 13 13 15 15 15 15 13 13 13 13 15 15 15 15 13 13 13 15 15 15 15 15 13 13 13 15 15 15 15 15 13 13 13 15 15 15 15 15 13 15 15 15 15 15 15 15 13 15 15 15 15 15 15 15 13 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 Iter 9: f111111 GQ[146.92] Out[ 97700] BA[100.00%] D[1.8280] Score[97700.0000] (*) YUV444 selected quantization matrix: 13 13 13 13 15 15 15 15 13 13 13 13 15 15 15 15 13 13 13 13 15 15 15 15 13 13 13 15 15 15 15 15 13 13 13 15 15 15 15 15 13 13 13 15 15 15 15 15 13 15 15 15 15 15 15 15 13 15 15 15 15 15 15 15 13 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 15 Iter 10: f111111(7) up Coeffs[7511/9355] Blocks[1188/1517/34100] ValThres[1.7390] Out[ 92821] EstErr[0.17%] BA[100.00%] D[1.8828] Score[92821.0000] (*) Iter 11: f111111(7) up Coeffs[1844/1844] Blocks[988/988/34100] ValThres[0.1611] Out[ 91712] EstErr[0.19%] BA[100.00%] D[1.8829] Score[91712.0000] (*) |
Processed image nicely opened in Mac Preview.
Tagged With paperuri:(0ee59c2b833ed8da2904d2ce30274c88) , guetzli , jpeg encoderHere’s what we’ve got for you which might like :
Additionally, performing a search on this website can help you. Also, we have YouTube Videos.
Take The Conversation Further ...
We'd love to know your thoughts on this article.
Meet the Author over on Twitter to join the conversation right now!
If you want to Advertise on our Article or want a Sponsored Article, you are invited to Contact us.
Contact Us