HEIC & its consequences have been a disaster for the human race

@gianni

Because it's patent-encumbered?

@RL_Dane
Among other things, yes.

@gianni

I'd be curious to know the other things 😁

I've started using WebP where possible.

I wish my phone would snap pictures in that format directly.

JPEG is starting to get AARP flyers in the mail. 😂

@RL_Dane
WebP is often worse than JPEG, especially for photographic images. It is better at low fidelity, about even at medium, & worse at high fidelity. It is decent with non-photographic images, though. This surprised me initially, as it goes against the whole purpose of WebP.

Lossless WebP, on the other hand, is fantastic. There hasn't been a better lossless format until lossless JXL.

@gianni

That's really fascinating, thanks for sharing. I've been fascinated by codecs for many, many years (though I'm not terribly well versed on the subject), initially general-purpose ones like stuffit/arc/arj/zip/compactor pro/compress/gzip/bzip2, etc, but later JPEG fascinated me with its magical (for the time) powers.

I'm surprised that JPEG XL was still using DCT. I thought all the cool (video codec) kids had moved on to wavelets.

@RL_Dane You'd have to ask Jon about that. I know JPEG2000 used the DWT, but VarDCT is unique to JXL. I'll ping him here in case he's around
@wb
@gianni @RL_Dane Basically all modern codecs (h264, h265, av1, jxl,...) still use the DCT in one way or another. JPEG 2000 is an outlier. The DCT is still the best idea ever for lossy image compression. JXL extends JPEG by having multiple block sizes (not just 8x8 but also e.g. 16x32 and 8x4) and has many other improvements, generalizations and extensions, but the DCT is still one of the most important core coding tools.
@gianni @RL_Dane
VarDCT, or rather the general idea of variable block sizes, is not unique to JXL: most modern video codecs also have something like that. The way JXL does it is more flexible than in video codecs though (more block types and positioning options, fancier entropy coding of the block selection itself), and it is also the first codec to combine variable blocks with progressive decoding (which is not trivial).
@wb
Thank you so much for the breakdown! If you know, could u answer why the DWT was used for J2K, & how modern video codecs utilize the DWT?
@RL_Dane
@gianni @RL_Dane DWT is imo not _that_ different from DCT, in the sense that the basic idea is the same: you transform from the spatial pixel domain to the frequency coefficient domain, where you can treat low frequency signal and high frequency signal differently (apply more loss / coarser quantization to the high frequencies). DWT is computationally a bit trickier but has the advantage that it can be made reversible (lossless). JXL optionally uses a simple variant of DWT in Modular encoding.

@wb @gianni

Interesting, ok. I guess the smoothness I was associating with DWT was really just due to the fancy filtering/smoothing algorithms applied after initial decompression.

I wonder if it would be possible to add that kind of smoothing to standard JPEG, as a decompressor option or even a post-processing filter?

@RL_Dane @wb You can preprocess or postprocess to smooth things out to your heart's desire. Although, that doesn't always improve the image's fidelity; you can read more here: https://cloudinary.com/blog/what_to_focus_on_in_image_compression_fidelity_or_appeal (article by Jon)
What to Focus on in Image Compression: Fidelity Or Appeal

To avoid undesirable side effects, focus on fidelity, not appeal, while compressing images for the web. JPEG XL is shaping up to be an ideal format choice.

Cloudinary Blog

@gianni @wb

Fascinating read, thank you again!! :)