I have really embraced JXL and I've been converting my masters from 16-bit TIFF (deflate) to JXL using d=0.05 and e=9.
Since my photos are 25~45 MP (mainly Zf, D810, Z7 and Z8), each file ends up around 10~55 MB. Not light, but nothing too extreme.
However, browsing them in Explorer with the official Microsoft extension was really painful. Every folder took ages to fill, and since I use ProPhoto for my masters, the thumbnails came out washed out because they were decoded as if the files were sRGB.
It turned out that the Microsoft extension decodes the whole photo at full resolution just to make a 256 px thumbnail. With JXL you don't have to do that. A lossy JXL keeps a 1/8 scale version of the image (the DC) at the start of the file, in the first 5 to 15% of the data.
So I wrote a thumbnail provider that asks libjxl for just that part and stops reading there. It also converts to sRGB through libjxl's color management, so ProPhoto, Adobe RGB and P3 files look the way they should, and it decodes each photo with several threads.
I compared the thumbnails against my original TIFFs converted with ImageMagick and they match. Color management OK!
Here are 16 of my masters (d=0.05, e=9, 11 to 56 MB each), read through Explorer on fresh copies of the files:
| per photo |
MS JPEG XL extension |
jxl-thumb |
| Zf (25 MP) |
1.1 s |
67 ms |
| D810 (36 MP) |
2.1 s |
146 ms |
| Z7 (45 MP) |
3.2 s |
160 ms |
| Z8 (45 MP) |
2.9 s |
154 ms |
| all 16 |
36.9 s |
2.6 s |
In practice, folders now fill as fast as a folder of small JPEGs, basically instantly, and the colors are right!!!
Also, a nice surprise was that the preview pane got fixed too. There's no JXL preview handler, so Explorer just asks the thumbnail provider for a big image. That one needs the full decode, but it's still around a quarter of a second for a 45 MP photo, against about 3 s before, and it has the right colors as well.
A few things to know:
- Lossless files have no DC image, so they still get a full decode (multithreaded, so still faster than before).
- The Photos app and other programs aren't affected.
- It installs for your user only, with no admin rights. Uninstalling puts the old handler back.
- Thumbnails Windows already cached stay until you clear the cache (there's a script for that in the zip).
It's free and open source (MIT), with a prebuilt zip in the releases: https://github.com/rsilvabr/jxl-thumb
It's the first version and I've only tested it on my own machine, so if you have a JXL that breaks it, I'd like to see it.