Jon Sneyers 🟣 Profile picture
Dec 2, 2022 β€’ 12 tweets β€’ 3 min read β€’ Read on X
So the Chrome team (or is it the AVIF team? I am a bit confused now) finally released the data that was the basis for the decision to remove JPEG XL support in Chrome. Here it is:
storage.googleapis.com/avif-compariso…
It would be good if all people with experience in image compression take a closer look at this data and perhaps try to reproduce it. I will certainly do the same. I will perhaps already give some initial remarks/impressions.
Decode speed: why is this measured in Chrome version 92, and not a more recent version? Improvements in jxl decode speed have been made since then β€” that version of Chrome is more than 1.5 years old.
Encode speed: these measurements seem somewhat strange, and do not correspond to my own measurements. It would be interesting to check this with independent measurements.
Note that the fastest avif encode speed is not very useful for still images (it is not better than jpeg).
Quality. What is strange is that only objective metrics are used, while it is well known that subjective evaluation is needed to reach any useful conclusions β€” trusting just the metrics is not a good idea.
In particular, MS-SSIM in YCbCr is not a very reliable metric to compare an encoder that works in YCbCr and optimizes for SSIM (like the avifenc setting they used) against an encoder that works in XYB and optimizes for perceptual quality (like libjxl).
Also the bitrate range that was selected (going as low as 0.1 bpp) for computing BD rates, leads to an overemphasis on codec performance at fidelity ranges nobody uses in practice. The median AVIF image on the web is around 1 bpp, not 0.1 bpp. Image
For example, on this plot you see that their data confirms and even exceeds my estimate that JXL compresses 10-15% better than AVIF in the range that is relevant for the web. However by putting a lot of weight on the < 0.4 bpp range, this plot is averaged to "JXL is 3% better". Image
For lossless compression it would be interesting to look at different speed settings too. But this is less relevant for the web.
The choice of test sets is somewhat strange. In particular, the "noto-emoji" set is strange, since these images are better kept as vector graphics. Also dropping the alpha channel is a strange choice here. It seems like a cherry-picked and not very relevant test set.
I would also have expected a discussion or even some benchmarks related to other relevant aspects, like progressive decoding, header overhead / small images, jpeg recompression, etc.
Anyway, those are some of my initial thoughts. I will have a closer look after the weekend.

β€’ β€’ β€’

Missing some Tweet in this thread? You can try to force a refresh
γ€€

Keep Current with Jon Sneyers 🟣

Jon Sneyers 🟣 Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @jonsneyers

Oct 17, 2023
"Desperate times call for desperate measures."
Hamas and the Israeli regime have in common that they justify their own unjustifiable, inhumane actions by pointing to the unjustifiable, inhumane actions of the other side, leading to a vicious cycle of desperation.
Although it is linguistically perhaps not so clear in English, the only antidote for desperation is HOPE. Hope is the optimistic, constructive feeling that we can work together to build a better world, a world of peace, freedom, solidarity and social justice.
Bombs and rockets shatter hope and feed desperation. Bloodshed feeds bloodlust. No weapon can ever stop this cycle of violence. No wall can ever bring freedom.
Read 7 tweets
Nov 27, 2022
@laughinghan @atax1a @atomicthumbs Video codec intra frame from today is compression-wise indeed better than image formats from the 80s and 90s like jpeg and png.
But there are some downsides. Let me elaborate a bit.
@laughinghan @atax1a @atomicthumbs 1) Video codecs are designed for low bitrate, since they need to do lots of frames per second so bandwidth is a bigger concern and also you don't have time to look at each single frame anyway. Compression techniques for low bitrate are different than for high fidelity though.
@laughinghan @atax1a @atomicthumbs (e.g. low bitrate benefits from directional prediction modes and aggressive deblocking filters that can hide artifacts well; high bitrate benefits from context modeling and high precision)
Read 14 tweets
Nov 1, 2022
Chrome's decision may actually turn out to be a blessing in disguise, in the long run. Allow me to explain. 🧡
WebP and AVIF were created specifically for one use case: web image delivery. In both cases, the reasoning was "we have this video codec in the browser anyway, so we might as well use it for images too".
They are not very suitable for other use cases, like image authoring, printing, or capture, since they inherit the limitations of video codecs designed for web delivery: the compression is not designed for high-fidelity, the features are limited to what is useful in video.
Read 11 tweets
Jul 21, 2022
There's something about color spaces and their transfer curves that has been bothering me for a while. Put bluntly: image (and video) codecs can be racist. Of course not intentionally, and it's a pretty subtle thing, but 'being bad at dark shades' has implications. An example. 🧡
Consider these two images. I'm hoping twitter recompression will not ruin them too much β€” these are the original images, before compression. Image
Let's use an AVIF encoder to significantly reduce their filesize. Using the exact same encode setting for both images, I get the following result. Of course both images have artifacts. Which one has the worst artifacts though? Image
Read 10 tweets
Jul 21, 2022
Overall, JPEG XL at default cjxl speed outperforms AVIF even when using a very slow libaom setting (s1, >30 times slower). At a more reasonable libaom s7 (about half as fast as default cjxl), the improvement JPEG -> AVIF is comparable to the improvement AVIF -> JPEG XL. Image
Of course behind the overall picture, there are differences depending on the image contents. For example, for images of sports or rooms, AVIF actually does (slightly) better than JPEG XL (if you don't mind the extra encode time). ImageImage
For landscapes or portraits, on the other hand, JPEG XL has a clearer advantage. ImageImage
Read 9 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(