Cloudinary's engineers write about image and video delivery and image codecs, with many posts on JPEG XL and compression comparisons.
Commenters mostly recommend the Cloudinary service itself as an image hosting and processing tool, praising its features, free tier and page speed help.
> PSNR is a terrible measure of quality
Glad we can agree on that. Unfortunately many evals use that or plain SSIM, which is still L2 at heart.
> Encoding speed is not really a concern for web uses
hm, in many discussions with Jon of Cloudinary, I did not get the impression that this is the case. Imagine their enthusiasm about 100x-ing their compute costs.
> Can you say why it was not included in your 2020 subjective evaluation?
The paper's comment on this is: "The selection of anchors is based on the general popularity of the codecs and the availability of the software implementations. We only intended to use codecs which are standardized internationally."
> using an ITU recommend methodology
While this has some helpful guidance on viewing conditions, it is unfortunately still subjective (what parts are observers looking at, what counts as "annoying") and is more useful for detecting severe artifacts, which less relevant in practice because that's hopefully not the quality range people are using.
Also, these results are quite old and both encoders have changed since then.
> need to speculate on the relative quality of AVIF v JPEG XL at web bitrates.
No need to speculate :) Just to first agree on what are actual web bitrates. From Chrome metrics, IIRC it was over 1bpp. Here's some newer data: https://discuss.httparchive.org/t/what-compression-ratio-ranges-are-used-for-lossy-formats/2464 Even for AVIF, the median is 0.96 and q3 is 1.79(!).
Jon has written several…
Comparing compression ratios is tricky. What you usually want is "file size at same visual quality" or "visual quality as same file size" for comparisons. The problem here is that "visual quality" is in the eye of the beholder, Different base images will have different results.
There are some attempts at such comparisons, e.g. https://cloudinary.com/blog/how_jpeg_xl_compares_to_other_image_codecs (cloudinary might be biased, as they are a major driver behind jpeg-xl)
My overall impression is that it's roughly on par or a little behind with AVIF, somewhat ahead of HEIC and very ahead of WEBP (and jpeg of course) in quality-per-byte.
As for encode and decode speed, it's a bit slower than WEBP but beats AVIF and HEIC by a margin (unless these codecs are back by hardware encoders). However, all three codecs are relatively new and there may be a lot of future speed optimizations possible. Especially jpeg-xl, which isn't "backed" by general AV1 (AVIF), vpx (WEBP) or HEVC (HEIC) research, may have a particularly large yet to be tapped potential for (hardware-specific) optimizations. As far as I know, jpeg-xl is also "simpler" than those other codecs (which basically used the iframes of their complex sibling video codecs as a base), so it might be more feasible to have more competing implementations.
But time will tell, and it will of course also largely depend on the adoption and thus network effects of these formats who much "love" each format receives from open source and…
> The argument is: (1) the cost is large -- implementation and maintenance of a complex image codec takes time, and image codecs are high-risk from a security perspective.
If you look at the history of Google employees created the basis for JPEG XL [1], having it included in beta builds of Chrome and then removing it "for reasons", it's pretty obvious it wasn't pulled for technical or security reasons.
Obviously Apple didn't think there were significant security and implementation issues preventing them from enabling JPEG XL on over 2 billion devices.
The Chrome team has proposed a number of web features and APIs that Apple, Mozilla and sometimes Microsoft don't want to implement due to security and privacy reasons. Usually that doesn't stop Chrome from going ahead and shipping them anyway.
> (2) the benefit is relatively small -- it needs to provide a clear advantage over existing alternatives like jpg, png, webp, avif in some significant general use cases.
JPEG XL does provide advantages over existing alternatives—The Case for JPEG XL [2]:
In the past, new image formats have been introduced that brought improvements in some areas while also introducing regressions in others. For example, PNG was a great improvement over GIF, except that it did not support animation. WebP brought compression improvements over JPEG in the low to medium fidelity range but at the cost of losing progressive decoding and high-fidelity 4:4:4 encoding. AVIF…
> Their claims about Jpegli seem to make WebP obsolete regarding lossy encoding? Similar compression estimates as WebP versus JPEG are brought up.
I believe Jpegli beats WebP for medium to high quality compression. I would guess that more than half of all WebP images on the net would definitely be smaller as Jpegli-encoded JPEGs of similar quality. And note that Jpegli is actually worse than MozJPEG and libjpeg-turbo at medium-low qualities. Something like libjpeg-turbo q75 is the crossover point I believe.
> Hell, I question if AVIF is even worth it with Jpegli.
According to another test [1], for large (like 10+ Mpix) photographs compressed with high quality, Jpegli wins over AVIF. But AVIF seems to win for "web size" images. Though, as for point 2 in your next paragraph, Jpegli is indeed much faster than AVIF.
> JPEG XL would've still been worth it though because it's just covering so much more ground than JPEG/Jpegli and it has a streaming decoder like a sensible format geared for Internet use, as well as progressive decoding support for mobile networks.
Indeed. At a minimum, JXL gives you another 20% size reduction just from the better entropy coding.
[1] https://cloudinary.com/blog/jpeg-xl-and-the-pareto-front
I'm confused where you got "it was available for years and ignored in popular software" from? Most of the ISO standard was only published last year, with the last bit being published in October 2022. IIRC AVIF is almost ~4 years old by the same standards and WebP is over a decade old.
Adobe has partial support (in Camera RAW) with presumably further support coming considering their website recommends JXL alongside AVIF for HDR images. It's also supported by Affinity Photo 2, Krita, Darkroom, GIMP, ffmpeg, ImageMagick, Paint.net, anything Qt/KDE-based via plugin, Pale Moon, libvips, and almost every third-party image viewer that I've ever used or heard of (nomacs, Irfanview, ImageGlass, xnView, etc.). It also has had vocal support from senior engineers at a variety of companies like Facebook, Shopify, Cloudinary, Intel, Flickr, etc.
My first thought when I heard about JXL several months ago was "oh, a new JPEG-2000?" but I've quickly become a JXL evangelist after reading more about it and then playing around with libjxl myself.
https://jpegxl.info/why-jxl.html
https://jpegxl.io/articles/faq/
https://cloudinary.com/blog/the-case-for-jpeg-xl
Hi guys, we at Cloudinary provide cloud based end-to-end digital asset management solution and our challenges here are super interesting - from technical, scale, performance, security, high availability and product perspectives.
Adding to that challenges around real continuous deployment, automation, development process etc.
We are now managing milliards of images and more than 1000 interactions and transactions in a sec!!
Our R&D team is super small and super strong - we have CTO's/ people with former startups and they all chose Cloudinary thanks to our interesting challenges.
From the personal perspective and work life balance, we are one of a kind.
The company is self funded, profitable with more than tens of thousands of customers and we keep growing!!
We are now looking for an amazing, brilliant, creative developers to join us in our office in Israel (Located in Petach- Tiqwa) - Backend, Front end, SDK's and Devops (engineer and manager).
In addition we have open positions in our Customer Success and sales teams.
To read more about our openings: http://cloudinary.com/jobs
You can send CV's to jobs@cloudinary.com