Google Releases Open Source 'Guetzli' JPEG Encoder (betanews.com)
BrianFagioli writes: Today, Google released yet another open source project. Called "Guetzli," it is a JPEG encoder that aims to produce even smaller image file sizes. In fact, the search giant claims a whopping 35 percent improvement over existing JPEG compression. If you are wondering why smaller file sizes are important, it is quite simple -- the web. If websites can embed smaller images, users can experience faster load times while using less data. While Google didn't aim to improve JPEG image quality with Guetzli, it seems it has arguably done so. It is subjective, but the search giant surveyed human beings and found they preferred Google's open source offering 75 percent of the time. Smaller file sizes and better image quality? Wow! Google has done something amazing here.
By websites not have 20 tracking pixel GIFs, 50 different ad servers, 5 different CDNs, 10 tracking servers, and a partridge in a pear tree. Websites are built fucking stupid these days, too much shit relies on too many other sources to work correctly and if even one doesn't respond in a timely manner, the whole thing stalls.
Until you read the bit about it needing 300mb of ram per megapixel of input data.
I don't think we'll see any hardware encoders being able to implement the algorithm any time soon.
And certainly not running in realtime on a CPU.
You can send it as binary - use HTTP compression. I believe most webservers support it as do webbrowsers, so the javascript file is compressed and the compressed binary is sent over the wires, and the web browser will decompress the blob back to the original javascript.
At a 95% confidence level, a sample of 23 will give you a range of +/-18% on that 75% result (57%-93%). At 99% confidence level, the range is +/-23%. We can be pretty confident that more will prefer the Google result than not.
Just so you know
I don't know what the survey compared it to. But I did a quick test with the same result.
Source: https://en.wikipedia.org/wiki/... (a resized version was used)
Input Image: ../zayapa.jpg JPEG 1608x949 1608x949+0+0 8-bit sRGB 1.097MB 0.000u 0:00.000
Output Image: zayapa.jpg[1] JPEG 1608x949 1608x949+0+0 8-bit sRGB 641KB 0.000u 0:00.000
Only "gotcha" is:
$ time guetzli ../zayapa.jpg zayapa.jpg
real 5m39.725s
user 5m35.340s
sys 0m4.188s
It is a relatively low-end Pentium processor, but still over 5 minutes to compress a 1MB image is too high.