Here's some of the features I am looking forward to in JXL.

Better lossy compression than JPG, similar compression to AVIF. AVIF ekes out a little more quality at the very low end, and JXL excels at the very high end.

Better lossless compression than PNG.

Supports alpha channels.

Supports parallel decoding.

Significantly faster encoding than other formats like AVIF.

Supports multiple colour spaces and formats, allowing for HDR images.

The colour in JXL is stored in the XYB colour space. A dev states that this colour space gives more bits to darker colours, leading to better encoded dark skin at similar filesizes to other codecs [1].

Supports up to 4096 channels. A practical use of this is in 3D workflows with Physically Based Rendering textures, where a texture has channels for albedo, normal map, reflection, roughness, metalness, and others. They could be compressed into one JXL, much smaller than an EXR with the same channels.

Supports losslessly recompressing existing JPGs into JXL to save space. Those files can also be losslessly (ie byte exact) converted back to JPGs.

Supports progressive decoding. AVIF crucially does _not_ have this.

Progressive decoding also allows for Responsive Images. No longer would you have to encode two images, like 1x or 2x. Encode the 2x image once – you can serve the 1x image _from the 2x image_. Huge feature if browsers were on board.

Supports rudimentary animation (similar to MJPEG, ie only i-frames). Use AVIF for animations.

Has frames/layers. This is a pretty cool feature for an image format. I can see two main uses of this:

1. Non-destructive editing. If you want to add an overlay to a JPG, you have to re-encode the image. JXL allows you to add another frame on-top of the other image, without touching the original.

2. Hybrid lossless/lossy images. For example, a screenshot of a UI that contains a photograph. The UI could be losslessly compressed, and the photo could be lossy-ly compressed. There is already an experimental program within the JXL source that does this.

[1] https://mobile.twitter.com/jonsneyers/status/155021585930558...

> Supports progressive decoding. AVIF crucially does _not_ have this.

How important is this in the modern world? Like, GIF, PNG, (progressive) JPG all support this, yet i dont think i have ever noticed this in practise in modern times unless artificially rate limiting my connection. It seems more like a relic from the time of dial up internet.

here is FUIF (one of JXL parents) author writing about benefits of progressive: https://github.com/cloudinary/fuif In short, unlike progressive JPEG, you can serve truncated image files to get lower resolutions