← Back to context

Comment by SmasherEpilepti

24 days ago

Nobody has brought it up yet, but JPEG XL seems to be close in potential and flexibility to OpenEXR. It seems more a competitor to something like that--for use in image processing and digital art pipelines--than something like JPEG, WEBP, or PNG.

That said, I have converted my personal JPEGs to JPEG XL, because you can losslessly convert back and forth between the two for smaller filesize in JPEG XL with no quality loss, so I get free storage savings and can get the byte-for-byte original JPEG back if I need it.

I knew about the lossless JPEG to JPEG XL compression story before, but had no idea that it was a two-way road. That's truly f* impressive. Boggles my mind even more the fact this format hasn't been adopted widely yet.

  • JPEG is a lossy frequency-space compression stage followed by a lossless Huffman coding stage. The second stage is quite generic as such, essentially compressing a stream of bits.

    So you can relatively easily replace the second stage with something better. And since it's lossless you can easily go back.

    Dropbox[1] and others have exploited this for reducing storage requirements, converting back on-demand so the client doesn't notice.

    https://github.com/dropbox/lepton

  • byte-for-byte identical file actually. Not just imagery. You can basically save 30% without loosing ANY bit of the original file

  • Because what you save in terms of storage, you pay for in decode time, which is an important consideration on the web.

    • Do you? I just tried it locally, and decoding a 4.9MB, 6000×4000 JPEG with djpeg took about 400ms; decoding its losslessly-recompressed JXL (4.15MB) single-threaded with djxl took 300ms.

      5 replies →

    • I guess my surprise is mostly that it hasn't been adopted elsewhere. For instance, it still boggles my mind I can't store my JPEG XL images on Google Photos nor take photos as JPEG XL images directly on my Samsung smartphone, but can use HEIC for some fruity reason.

      2 replies →

    • You pay for decoding only when you view the image, whereas storage is a persistent cost.