Live data from Hacker News

Image Compression

makingsoftware.com

21–30 of 37 posts

Re: Image Compression

#21

> Now that WebP is widely supported by browsers and operating systems, there's really no downside to using it. It's much more flexible than JPEG or PNG and offers better compression than both of them. I'd probably skip WebP, and go straight to AVIF at this point. I believe all modern browsers support it, and it compresses better than WebP.

In lossless mode WebP is superior to AVIF.

Re: Image Compression

#22
post #20
post #5

Worth highlighting the QOI Image format (qoiformat.org) showing that you can also get significant image compression benefits with a simple 1-page specification [1]: > QOI is fast. It losslessly compresses images to a similar size of PNG, while offering 20x-50x faster encoding and 3x-4x faster decoding. > QOI is simple. The reference en-/decoder fits in about 300 lines of C. The file format specification is a single p…

I've had a lot of success just LZ4ing a bitmap.

PNG compression is just DEFLATE. For archival storage, I've been expanding PNGs with `precomp` [0] and then running modern compression algorithms on them.

[0] https://github.com/schnaader/precomp-cpp

Re: Image Compression

#24
post #13
post #7

Don't sleep on JPEG XL. It's used under the hood within DNG files (at least, it's an option, Adobe DNG Converter can leverage it, including by the CLI), DxO PureRAW leverages it in the latest versions. Apple Photos can view them, and I think it's been the compression methodology used inside their ProRAW DNGs for a while (which probably by default makes it one of the worlds most popular image compressors for RAW files…

JPEG XL aka .jxl is now supported by Firefox 152 and Chrome since 145 (behind a flag though on both). JXL is the best image format we have - supports lossy and lossless compression, HDR, and much more! https://jpegxl.info/

The format supports HDR, but most apps using it don’t.

I’ve given up trying to use JXL in the Apple ecosystems for exchanging HDR images for this reason.

Re: Image Compression

#25

Earlier quoted context omitted.

> I'd probably skip WebP, and go straight to AVIF now. That is my assessment as well. The compression ratios with AVIF are ridiculous compared to older formats.

It's great but you definitely pay for it. Encoding can be really slow, and to a lesser extent decoding as well. So I still end up using .jpg quite often, or .webp as a good middle ground

You can adjust how much "effort" the avif encoder puts on images.

The default speed in libavif (-s 6 in avifenc) is fast enough, and it has been used by big CDNs to encode AVIFs for years. You can make the encoder as fast or slow as you'd like, depending on your compute/compression efficiency trade-off requirements.

Re: Image Compression

#26
> More so than any other image format, JPEG takes advantage of the quirks of human perception to throw away information while largely preserving quality.

That is a very odd thing to say in a post that also mentions WebP. I would say that of all the commonly supported lossy image codecs released since 1992, JPEG takes the least advantage of human perception quirks.

Re: Image Compression

#27

> More so than any other image format, JPEG takes advantage of the quirks of human perception to throw away information while largely preserving quality. That is a very odd thing to say in a post that also mentions WebP. I would say that of all the commonly supported lossy image codecs released since 1992, JPEG takes the least advantage of human perception quirks.

webp doesn't preserve quality it actively makes the web and images shittier.

Re: Image Compression

#28
post #7

Don't sleep on JPEG XL. It's used under the hood within DNG files (at least, it's an option, Adobe DNG Converter can leverage it, including by the CLI), DxO PureRAW leverages it in the latest versions. Apple Photos can view them, and I think it's been the compression methodology used inside their ProRAW DNGs for a while (which probably by default makes it one of the worlds most popular image compressors for RAW files…

Those are good venues to sneak JPEG XL into the mainstream. It would be a pity if it became another JPEG 2000. On the other hand, JPEG 2000 was probably just too advanced and computationally complex to be widely adopted at the time. Sometimes I look back at it and, after all the extensions and revisions, it feels like it has everything—but it’s still a niche codec. A cautionary tale, and a pattern that tends to repea…

On top of being much more complex to encode and decode, and being encumbered by patents, JPEG 2000 was only marginally better than JPEG in terms of quality vs. size. At the time it came out, it wasn't worth using; nowadays it's thoroughly outclassed by any newer image codec (JPEG XL, WebP, HEIC, etc).

Re: Image Compression

#29

> Now that WebP is widely supported by browsers and operating systems, there's really no downside to using it. It's much more flexible than JPEG or PNG and offers better compression than both of them. I'd probably skip WebP, and go straight to AVIF at this point. I believe all modern browsers support it, and it compresses better than WebP.

Personally I dislike all of these new formats. Shame that most big sites use either avif or webp. When I save these images to disk I always convert to png because storage isn't an issue and bandwidth isn't an issue. Oh well...

Re: Image Compression

#30
post #29

> Now that WebP is widely supported by browsers and operating systems, there's really no downside to using it. It's much more flexible than JPEG or PNG and offers better compression than both of them. I'd probably skip WebP, and go straight to AVIF at this point. I believe all modern browsers support it, and it compresses better than WebP.

Personally I dislike all of these new formats. Shame that most big sites use either avif or webp. When I save these images to disk I always convert to png because storage isn't an issue and bandwidth isn't an issue. Oh well...

> storage isn't an issue and bandwidth isn't an issue. Oh well...

Right; the issue is compatibility. But that doesn't get solved if we collectively stick to the past and only use old formats like gif and jpeg. Compatibility gets fixed by using a format, and then complaining to software developers when their software isn't compatible with our workflows. Eventually compatibility improves, and we get our cake and eat it too. Better storage and bandwidth use. And compatibility across all our software.

It just takes time.

Post reply on HN