3 ms·
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 qualit
by zebracanevra 4y ago
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/1550215859305586691 https://mobile.twitter.com/jonsneyers/status/155021585930558...
- jbverschoor 4y agoAll good reasons. But the complexity/ decision on how to behave with certain features could be a compelling reason to stop supporting. In reality, they have webp which is enough for most of the use cases
- bawolff 4y ago> 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.
- lifthrasiir 4y ago> i dont think i have ever noticed this in practise in modern times unless artificially rate limiting my connection. I see a lot of loading even when I'm using a pretty fast broadband (fast.com says that my ISP is 350 Mbps down and 450 Mbps up). The network speed is a function of your ISP and the target host's ISP (and everything in between), and you can't control the latter. If you haven't actually noticed anything, you may well have avoided websites that are slow from your ISP, either by a luck or unconsciously. Anyway, srcset is the very obvious evidence that progressive decoding is actually needed but hindered by the lack of image format features or browser supports so it settled on a compromise.
- jonsneyers 4y agoDo you sometimes go outdoors to an area that has poor connectivity? Not all of the modern world has the same kind of network speed. If all pages would always load in less than 0.1 seconds for every web user, I would agree with you. But this is not the case, and I doubt it ever will be considering that web pages seem to get heavier faster than how quickly the network is getting faster for the median web user.
- 112233 4y agohere is FUIF (one of JXL parents) author writing about benefits of progressive: https://github.com/cloudinary/fuif https://github.com/cloudinary/fuif In short, unlike progressive JPEG, you can serve truncated image files to get lower resolutions