← Back to context

Comment by GrantMoyer

8 hours ago

The benchmark[1] (HN discussion [2]) I read from about 2.5 years ago came to roughly the opposite conclusion. JPEG XL dominated practically all other image formats on compressed size and encoding time.

Superficially, that benchmark and this one seem to be taking similar measurements. They both measure encoded size versus encoding time versus perceptual quality metrics, although they present the data on plots with different axes. I haven't tried to reproduce the results of either, but I have no reason to doubt either benchmark.

I wonder what accounts for the difference. Maybe the libavif encoder got a lot better in the last 2.5 years. The older benchmark uses libjxl v0.10.0 and libavif v1.0.3, while the newer one uses libjxl v0.12.0 and libavif v1.4.2. Or maybe it's the set of images used. The older benchmarks aggregates results for small test sets of images, while the newer benchmark tests individual images. The newer benchmark does find an image where libjxl wins on file size (the weasel), but it still loses on encoding time, whereas in the older benchmark libjxl almost always won on both. Or maybe it's the hardware (M3 Pro vs. M4 Pro).

[1]: https://news.ycombinator.com/item?id=39559281

Yes. My understanding is that AV1 encoders have been continuously improving, while JPEG XL lost a lot of drive and manpower for a couple of years since its future on the web became uncertain, allowing AV1 to get ahead. That’s probably an important factor.

In particular, I don’t think there was significant progress on compression between libjxl v0.10.0 and v0.12.0, and there some regressions from earlier versions still remain. The article also measures the quite recent jixel, which is derived from the older libjxl-tiny and apparently does better in many cases. So JPEG XL encoders definitely have lots of room for improvement. With JPEG XL finally gaining wider adoption on the web, perhaps they’ll catch up or get ahead again. AV1 encoders are also still being improved, though.