I'm still hoping for a Google Now that understands Swiss German :)
Guetzli: A New Open-Source JPEG Encoder
41–50 of 135 posts
Re: Guetzli: A New Open-Source JPEG Encoder
#42I'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…
Re: Guetzli: A New Open-Source JPEG Encoder
#43Re: Guetzli: A New Open-Source JPEG Encoder
#44Re: Guetzli: A New Open-Source JPEG Encoder
#45Earlier 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…
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
#46I 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.
Re: Guetzli: A New Open-Source JPEG Encoder
#47Re: Guetzli: A New Open-Source JPEG Encoder
#48Sort 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
Re: Guetzli: A New Open-Source JPEG Encoder
#49Re: Guetzli: A New Open-Source JPEG Encoder
#50Lots 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 :)