Live data from Hacker News

Guetzli: A New Open-Source JPEG Encoder

research.googleblog.com

41–50 of 135 posts

Re: Guetzli: A New Open-Source JPEG Encoder

#42

I'll run some of my own experiments on this today, but I'm initially concerned about color muting. Specifically looking at the cat's eye example, in the bottom of the pupil area there's a bit of green (reflection?) in the lower pupil. In the original it is #293623 (green) - in the libjpeg it is #2E3230 (still green, slightly muted). But in the Guetzil encoded image it is #362C35 - still slightly green but quite close…

Agree, that difference is very striking side by side to me at least. Maybe not to everyone, but I hope they have some people with very good color perception on their team so they'll be able to see the difference.

Re: Guetzli: A New Open-Source JPEG Encoder

#45

Earlier quoted context omitted.

I'm afraid Guetzli is quite a lot more complex. It does a global search on this, i.e., quantization decisions in neighboring blocks may impact the quantization decisions on this block. Also, quantization decisions have cross-channel impact between YUV channels.

There is no block to block prediction other than DC prediction, so is this effect due to your distortion function spanning multiple blocks? Same for cross YUV channels, because your metric is in RGB space? edit: second read-through I found the paper [1] which explains it. The answer is basically "yes", where the large scale distortion function is basically activity masking. Normally this would be implemented with del…

This comes through the internal use of butteraugli -- and depending the quantization decisions on butteraugli.

Butteraugli uses a 8x8 FFT, but computes this every 3x3 pixel creating coverage at block boundaries. In later stages of butteraugli calculation values are aggregated from an even larger area. Block boundary artefacts are taken into account by this and impact quantization decisions.

Butteraugli operates neither in RGB nor YUV. It has a new color space that is a hybrid of tri-chromatic colors and opponent colors. Black-to-yellow and red-to-green are opponent, but blue is modeled closer to tri-chromatic. In more simple explanation it is possible to think of it as follows: first apply inverse gamma correction, second apply a 3x4 transform for rgb, third apply gamma correction, fourth calculate r - g, r + g and keep blue separate.

Re: Guetzli: A New Open-Source JPEG Encoder

#46
post #10

I wonder how Dropbox's Lepton[1] compresses JPEGs encoded using Guetzli. Since they already pack more info/byte would there be noticeable compression? Someone out there must have tried this. [1]: https://blogs.dropbox.com/tech/2016/07/lepton-image-compress...

I'd expect it to still save >20%. Lepton uses arithmetic encoding instead of Huffman (-10%), and predicts each 8x8 block based on its neighbors (-20%). Guetzli shouldn't interfere with either of these.

When we pack guetzlified JPEGs we see slightly smaller wins than with stock JPEGs. Think -14% for guetzlified JPEGs vs. -20% libjpeg JPEGs.

Re: Guetzli: A New Open-Source JPEG Encoder

#48
post #35

Sort of related, but what's the story with fractal image compression? When I was at university (~20 years ago) there was a lot of research going in to it, with great promises heralded for web-based image transfer. There was a Netscape plugin that handled them. They seemed to just disappear in the early 2000s.

Seems to have been patent-encumbered and largely abandoned in the commercial world, but there is a FOSS library called fiasco (.wfa files) that is included with netpbm, available on most *NIX systems. http://manpages.ubuntu.com/manpages/xenial/man1/netpbm.1.htm... https://github.com/l-tamas/Fiasco

New formats are generally a huge pain in the media worlds... Huge companies like Google have been trying to get webp for years and it's still not there, and it's also why they're still putting so much effort into png/jpg.

Re: Guetzli: A New Open-Source JPEG Encoder

#50

Lots of Swiss German coming from Google lately. Zöpfli, Brötli and now Guetzli. I'm still hoping for a Google Now that understands Swiss German :)

I'm Swiss German and don't understand half of the Swiss German dialects. Swiss German must be the ultimate hard case for machine translation.
Post reply on HN