23 comments

[ 343 ms ] story [ 132 ms ] thread
For all the furore, I think the best outcome happened here. Both browsers used their weight to get a memory-safe implementation out, and now we can all benefit from a new file format with a significantly reduced attack surface.
Agreed. Much thanks to Mozilla for taking the wildly unpopular decision to shoot the early proposal down as well instead of supporting it just because it'd make people more mad at Chrome.
Thanks all. I'm really happy with how it all turned out.
(^CTO for Firefox at Mozilla)
Pursuing a different implementation didn't require rejecting the initial proposal, especially after already having an implementation. They didn't even agree to re-add support with a Rust implementation much later. This is a post hoc justification for Mozilla blindly following Google at the time.
Some background on this, and demos of JPEG XL's progressive rendering: https://hacks.mozilla.org/2026/08/intent-to-ship-jpeg-xl/
Key points (from TFA):

= = =

    The image [...] is a 116 kB AVIF with a quality score (SSIMULACRA 2) of 62.8, meaning medium-high quality. To get the same quality, the JPEG XL image would be 134 kB.

    At a SSIMULACRA 2 score of 80 (very high quality), the AVIF is 227 kB, and the JPEG XL is 264 kB.

    But at lossless, the AVIF is 1.76 MB, and the JPEG XL is 1.45 MB. A lossless WebP is 1.55 MB.


    At a SSIMULACRA 2 score of 78 (very high quality), the AVIF is 11.6 kB, and the JPEG XL is 23.8 kB.

    But at lossless, the AVIF is 164 kB, and the JPEG XL is 92 kB. A lossless WebP is 96 kB.

    Although AVIF tends to produce smaller files at web-quality than JPEG XL, AVIF only has basic progressive rendering support. So, for very large images, it may be worth taking the filesize hit with JPEG XL.
= = =
I'm a fan of JpegXL and happy to see support finally begin to coalesce around it on the browser scene, but I was wondering if anyone knew what goes into the decision of whether or not to consider adding encode support, e.g. via offscreenCanvas.convertToBlob() or whatever. How did browsers (minus Safari, of course) end up deciding to add support for WebP encode in addition to JPEG and PNG?
Great outcome, and I hope the weight of mainstream browser support will spur camera and phone manufacturers to emit native JXLs from their devices.
smartphones, computers, and TVs also dedicated hardware acceleration for AVIF video. Decoding an AVIF image uses virtually no battery/CPU power. It will require mass adoption to convince hardware makers to dedicate chips for decoding. especially with AVIF2 on the horizon
Chrome doesn't use hardware acceleration for decoding any image codecs-- not for JPEG or WebP or AVIF. It has some code for it (using VA-API), but it's disabled by default. Hardware video decoders are generally hard to use for image decoding tasks.

Safari appears to be the only shipping browser using hardware decoding for JPEG and HEIF (HEVC based images). This is probably because vertical integration lets them make the decoders appropriate for image use.

Also, "AVIF video" is incorrect. AVIF is the image codec based on AV1 intra frames.

AVIF supports regular AV1 videos, there is no intra-only constraint. You can try this yourself with any AV1 video:

ffmpeg -i input.webm -c:v copy output.avif

You are right about Firefox and Chrome not using hardware decoding though, as such an AVIF video plays back poorly. And Chrome refuses to load an AVIF larger than 256 MB on my machine.

AVIF video does support an alpha channel, which AV1, annoyingly, doesn't.
We've been here before. Jpeg and PNG are "good enough" and consumers aren't going to get behind anything that is slightly less convenient.
Tell that to all the users with iPhones chucking out HEIC/HEIF images by default, which are much less convenient
My most common use of Claude Code on Windows is to convert some random HEIC files to something normal
I'm under the impression that one of the main selling points of JPEG XL is that it's backwards-compatible, so once everyone has a decoder implementation, every existing JPEG comes along for free without anyone having to reencode any old photos. I suspect consumers wouldn't notice the difference if devices started emitting them, and in the meantime that means there's no harm in continuing to emit classic JPEG for as long as you want.
JPEG isn’t good enough which is why we ended up with HEIF, which is a massive pain because it’s patent encumbered so it will never be widespread adopted.

The most glaring issue with jpeg is the lack of HDR support.

Nice. I hope we'll see more support for jxl across the web. It's so good at this point that it's my primary output/archival format for all of my photography.
(comment deleted)
I am excited for this! A great practical format.

I love progressive rendering. At 15% loaded in this example it’s surprisingly good already.