logoalt Hacker News

wizeeyesterday at 2:46 PM6 repliesview on HN

JPEG-XL provides the best migration path for image conversion from JPEG, with lossless recompression. It also supports arbitrary HDR bit depths (up to 32 bits per channel) unlike AVIF, and generally its HDR support is much better than AVIF. Other operating systems and applications were making strides towards adopting this format, but Google was up till now stubbornly holding the web back in their refusal to support JPEG-XL in favour of AVIF which they were pushing. I’m glad to hear they’re finally reconsidering. Let’s hope this leads to resources being dedicated to help build and maintain a performant and memory safe decoder (in Rust?).


Replies

homebreweryesterday at 3:52 PM

It's not just Google, Mozilla has no desire to introduce a barely supported massive C++ decoder for marginal gains either:

https://github.com/mozilla/standards-positions/pull/1064

avif is just better for typical web image quality, it produces better looking images and its artifacts aren't as annoying (smoothing instead of blocking and ringing around sharp edges).

You also get it for basically free because it's just an av1 key frame. Every browser needs an av1 decoder already unless it's willing to forego users who would like to be able to watch Netflix and YouTube.

show 10 replies
twotwotwoyesterday at 4:12 PM

Wanted to note https://issues.chromium.org/issues/40141863 on making the lossless JPEG recompression a Content-Encoding, which provides a way that, say, a CDN could deploy it in a way that's fully transparent to end users (if the user clicks Save it would save a .jpg).

(And: this is great! I think JPEG XL has chance of being adopted with the recompression "bridge" and fast decoding options, and things like progressive decoding for its VarDCT mode are practical advantages too.)

kpsyesterday at 2:57 PM

> (in Rust?)

Looks like that's the idea: https://issues.chromium.org/issues/462919304

kllrnohjyesterday at 4:02 PM

> and generally its HDR support is much better than AVIF

Not anymore. JPEG had the best HDR support with ISO 21496-1 weirdly enough, but AVIF also just recently got that capability with 1.2 ( https://aomedia.org/blog%20posts/Libavif-Improves-Support-fo... ).

The last discussion in libjxl about this was seemingly taking the stance it wasn't necessary since JXL has "native HDR" which completely fails to understand the problem space entirely.

show 1 reply
12_throw_awayyesterday at 7:00 PM

> performant and memory safe decoder (in Rust?).

Isn't this exactly the case that wuffs [1] is built for? I had the vague (and, looking into it now, probably incorrect) impression that Google was going to start building all their decoders with that.

[1] https://github.com/google/wuffs

show 1 reply