| ▲ | Time for AVIF everywhere?(michaelponders.com) |
| 79 points by speckx 3 days ago | 59 comments |
| |
|
| ▲ | simonw 17 hours ago | parent | next [-] |
| Only just started habitually using WebP... I added AVIF support to my personal image resizing tool recently - https://tools.simonwillison.net/image-resize-quality - I mostly use that for screenshots though, and WebP works better for those. |
| |
| ▲ | sampullman 17 hours ago | parent | next [-] | | Have you tried Google's jpegli encoder? I find that it generally matches webp for most image types. Quantized png is usually best for anything with a limited color palette though. | |
| ▲ | Dwedit 3 hours ago | parent | prev | next [-] | | WEBP/JXL is best for lossless, AVIF is best for lossy. But WEBP is more widely adopted (and also decompresses faster than JXL). | |
| ▲ | ChadNauseam 15 hours ago | parent | prev | next [-] | | Webp is much better for lossless. I have a similar tool at https://pictolab.io. I use it for tweaking the brightness and satuation of images mostly. For that you want HDR to reduce clipping, and most image formats have surprisingly bad HDR support besides AVIF (and jxl). Jpeg kinda supports it with gain maps but it's kind of tacked-on to the spec. Webp doesn't support HDR at all. It's also surprisingly hard to support HDR input. For example, Apple uses a weird poorly documented format for the HEIC their iPhones take. I feel like HDR is just kind of a mess right now. | |
| ▲ | NelsonMinar 15 hours ago | parent | prev | next [-] | | Lol I went through that same webp-vs-avif thing. AVIF supports HDR, so that's a good reason to switch. | |
| ▲ | TurboSkyline 17 hours ago | parent | prev [-] | | > for screenshots though, and WebP works better for those Interesting! Better in terms of more quality preserved or smaller file size? Have you found other types of images where this applies? |
|
|
| ▲ | ChrisArchitect 2 days ago | parent | prev | next [-] |
| Don't you mean JPEG XL? JPEG XL vs. AVIF for web use-cases https://news.ycombinator.com/item?id=50120224 |
| |
| ▲ | bjoli 3 hours ago | parent | next [-] | | I thought it was pretty well established that JXL has a big room for improvement when it comes to encoders. There are some fundamental limitations wrt the absolute lowest bitrates, but that the room for improvement in encoders is rather substantial, especially with things like rate-distortion search heuristics. The comparison is more about who has had the most man-hours and megadollars put into encoders quality than about the inherent limitations about the format. With that said, I use AVIF, but I do have what can be said to be an irrational preference for JXL. | | |
| ▲ | a-french-anon 39 minutes ago | parent [-] | | > but I do have what can be said to be an irrational preference for JXL. Is it irrational to follow the collective "one format to rule them all" dream? Sure, the codec itself needs work, but seeing how long we've been stuck with the JPEG/PNG/GIF trio (even with better encoders like mozjpeg/jpegli or optipng/zopfli) with TIFF as a catch-all backup, getting the format right once and for all really matters. I'm still weirded by the low amount of workforce in libjxl/jxl-rs; sure, too many cooks do ruin the broth, but too few too, in that domain. |
| |
| ▲ | anilgulecha 18 hours ago | parent | prev | next [-] | | Jpeg-XL's key win was only lossless translation of existing jpeg to a modern format. Mostly for archives where you don't want a lossy translation. In terms of picture quality for given size, AVIF has it solidly beat. | | |
| ▲ | mort96 18 hours ago | parent | next [-] | | You could make an argument that we should have AVIF everywhere on the web. But if you want a single image format to be everywhere, I think JPEG-XL is just better suited. AVIF has restrictions on resolutions and number of planes, and doesn't do lossless very well. It's competitive with AVIF on lossy image quality (even though yes, AVIF does seem like it tends to consistently have the advantage there). | | |
| ▲ | brigade 15 hours ago | parent | next [-] | | AVIF supports a higher resolution at 2^32-1 pixels per dimension, vs JPEG-XL's 2^30-1 pixels. But really it doesn't matter since something is going to impose an arbitrarily smaller limit on either before letting you try to allocate more RAM than any computer can address. Yes, plenty of comparison websites confuse AV1 limits (sometimes AV1 profile limits!) with AVIF limits. For arbitrary planes, AVIF calls them auxiliary images. Unless you mean encoding non-RGB data to start with like how DNG uses JPEG-XL. At which point you're outside the scope of any standard interpretation of JPEG-XL data. | |
| ▲ | anilgulecha 17 hours ago | parent | prev [-] | | Image formats goes in era, and there's no need for monoculture. But given we're talking exabytes of data, for this era, the author rightly articulates why AVIF should win. Should JPEGXL2 beat it in the future then it can take over for a decade. We seem to essentially have gone through like 4 formats so far: gif, jpg, PNG and webp. On vector side, SVG has no real competition - it's solid. | | |
| ▲ | mort96 17 hours ago | parent | next [-] | | The author is explicitly arguing for an AVIF monoculture. AVIF isn't an appropriate format for an image format monoculture, but JPEG-XL could be. "We should use AVIF for most web images" is a different statement which I have no problem with. | |
| ▲ | smaudet 15 hours ago | parent | prev [-] | | > But given we're talking exabytes of data, for this era, the author rightly articulates why AVIF should win. I'm not sure this is the right conclusion to draw... 1) The author's pain point (use case) is hardware pricing - presuming that goes down (as either AI demands drops/and or production increases), this does not speak to a demand for size, instead, it is about doing more with less... 2) I'm not certain that the exabytes of demand (assuming it comes) will be from AVIF. Rather, if data is important, I think the demand will be a different format entirely (archives, for instance). Demand for more (quality) data might paradoxically call for less compression and less cpu-intensive qualities - uncompressed, raw data, for instance. If is faster and cheaper than bothering with complex algorithms, then simpler formats should be more prevalent. Building on 1 and 2, a more capable image format, like JPEG-XL, becomes a more logical choice, not the one that can compress the best or is the smallest (in an exa-byte-as-the-norm world). |
|
| |
| ▲ | Gigachad 2 hours ago | parent | prev | next [-] | | I don’t feel like the difference matters all that much. Both AVIF and jpeg xl produce reasonably sized files for your personal photo library. What you really care about is capabilities for things like HDR and expanded color spaces which both formats seem to have excellent support for. Just about anything is better than jpeg these days. | |
| ▲ | bhouston 16 hours ago | parent | prev [-] | | > Jpeg-XL's key win was only lossless translation of existing jpeg to a modern format. Huh? JpegXL is the only widely supported format (once it comes to the various browser as is planned) that can store true HDR linear images in floating point (fp16 and fp32) formats. AVIF can only do 10 bit integer ranges, sure that HDR compared to 8bit but it is not sufficient for useful extended range color spaces. | | |
| ▲ | brigade 15 hours ago | parent [-] | | The format is widely supported, but I'd be very surprised if linear HDR becomes widely supported outside of image editors. JPEG-XR supported fp32 linear HDR way earlier anyway, and no one cared because no one cares about linear HDR after editing. Also AVIF supports up to 12 bits. |
|
| |
| ▲ | xnx 17 hours ago | parent | prev [-] | | Agree, though I do miss the clarity of if an image is lossy or lossless just by extension. (Obviously a png could be produced from a heavily compressed jpg, but it is still a handy heuristic in my image pipelines) | | |
| ▲ | jeroenhd 10 hours ago | parent | next [-] | | Aside from maybe .bmp, that never really existed (though .bmp has palletized colours, I guess?). Just like you can assume most PNGs to be lossless (despite supporting pallettes, which pngquant uses to "compress" them) and non-animated (despite APNG being over 22 years old), you can assume most AVIF and WebP images are lossy. Same with JXL. HEIF requires a bit of special care (it's only produced by devices with HDR support so your pipeline needs to fit that) but that's pretty much it. You may get surprised by an accidental, huge lossless AVIF/WebP/HEIF file, but most sources where you can even get these files are all lossy. Unless you recompress your photo library yourself, of course, but then you have full control over the entire process and can decide whether or not you want lossy or lossless. | |
| ▲ | adzm 15 hours ago | parent | prev [-] | | I think we should come up with a convention for this |
|
|
|
| ▲ | Aldipower 16 hours ago | parent | prev | next [-] |
| AVIF consumes around 25 times more CPU during encoding as JPEG. Take this in consideration if you pay for the power consumption. And on the user-facing side, if you upload an images it takes f.ex. 12 seconds (sic!) and not half a second. |
| |
| ▲ | jeroenhd 16 hours ago | parent | next [-] | | 12 seconds? It takes 7 seconds on my phone, in a wasm runtime using an older version of the encoder. From my experience throwing random JPEGs at it, it's 3 to 4 times smaller, that's a good chunk of data saved, which in turn is a lot of energy saved on visitors' radios being active. Unlike with jpeg, you don't need 85 or 95 percent on the quality score, 50 is more than good enough for most pictures on a website. If you're hosting images and want a fully lossless encoding the CPU time may become a factor, but if you're hosting user generated content, I don't think it's all that bad. Plus, you can just move the encoding part to the user side of the equation and pretend it's part of the upload progress bar if you're desperate to pay the power bill. | | |
| ▲ | Aldipower 16 hours ago | parent [-] | | The numbers above coming from a test run on one of my own servers serving and receiving user generated images. It is a Intel E5 56 CPU threads machine with DDR4 RAM. A single thread may be slower then your phone CPU cores, but that's what you find very often when running servers. | | |
| ▲ | jeroenhd 10 hours ago | parent [-] | | I see, I can imagine a decade old CPU without any kind of video acceleration taking a while indeed. Technology has come a long way since the E5-2690v4. Still, when encoding AVIF, there are various quality options to choose from, and the encoder has gotten better over the past year. On my i3-2120 NAS (which even your E5 should beat on single core perf), encoding an image at default speed takes about 4-6 seconds (JPEG about 2s), while producing an image of comparable quality a third the size. If I pass --speed 10, converting PNG to AVIF takes only half a second. The standard AV1 encoder has improved a lot over a short amount of time, I invite you to run another benchmark, you may be surprised. | | |
| ▲ | Aldipower an hour ago | parent [-] | | I am trying to hit a sweet spot between affordability, usability and performance. AVIF fells not in this sweet spot as simple as that.
It is cheaper to buy some more (expensive) SSDs, because the images are 20% larger, then to buy new servers, because the encoding is 25 times slower. I am serving images to real users and the servers are in data-center rack. Got it? |
|
|
| |
| ▲ | userbinator 4 hours ago | parent | prev | next [-] | | This is also the reason JPEG2000 died off and became a niche format mainly for archival; it's extremely CPU-intensive. | |
| ▲ | brigade 14 hours ago | parent | prev [-] | | You can adjust the speed of both, you don't have to use the default of whatever library versions you're using. My cjxl defaults to 2x more CPU than avifenc's default, but I can make it 30x more or 480x less; libaom certainly lets you waste a lot more CPU than libjxl, if that's what you want. I don't know if anyone has published an encode time / quality comparison of the various encoders. It'd have to be recent to include this year's libaom image optimizations. |
|
|
| ▲ | thekid314 18 hours ago | parent | prev | next [-] |
| Absolutely agree, for my photo portfolio website AVIF allows me to serve higher quality photos faster to potential clients. I’ll just drop my AVIF local support for Wordpress plugin here: https://github.com/ddegner/avif-local-support |
| |
| ▲ | mikae1 3 hours ago | parent [-] | | > replaces JPEGs on the front-end of WordPress for browsers that support them. Ouch. Pretty much every browser supports AVIF now which means everyone gets transcoded images worse than JPEGs one uploaded. For JPEG XL that process is lossless... |
|
|
| ▲ | remix2000 17 hours ago | parent | prev | next [-] |
| Does AVIF carry the same patent risks as full/motion AV1? (I’m not saying I support the claims or not, I have no idea about their technical and let alone legal merit, just thinking that there are attempts at enforcement against sites streaming AV1 and whether choosing AV1 puts say my site at risk) |
| |
| ▲ | theandrewbailey 16 hours ago | parent | next [-] | | Probably not. But if anyone ever decides to enforce patents over AV1 or AVIF, they will fight about every company in Big Tech and quite a bit of Hollywood: https://aomedia.org/about/members/ | | |
| ▲ | remix2000 13 hours ago | parent [-] | | It’s actually shared patent pool with H265, most big tech companies already license it for the latter, there was some litigation with Snapchat I think regarding AV1. Royalties are for distribution, I assume, so posting AV1 video might be a no-no. I meant to ask if the ‘patented’ stuff is even used when encoding an image. (NB the codec is not patented, nobody claims that afaik, but rather it might be patent encumbered, as in it uses algorithm that might be patented as a part of its design) | | |
| ▲ | dannyw 2 hours ago | parent [-] | | So you still have to license it, and it’s not royalty free; if it’s the same patent pool as H265? I know I had to pay like $1.99 on my synology for H265 support, and likewise for “Advanced Media Extensions” on windows 10/11, although that may have changed. |
|
| |
| ▲ | chrismorgan 16 hours ago | parent | prev | next [-] | | Yes. It’s just an AV1 container. Doesn’t even need to be limited to a single frame (just like GIF and APNG). | |
| ▲ | shmerl 16 hours ago | parent | prev [-] | | Hard to say, but possibly less since it's a still image, not a video, so it inherently corresponds only to a part of AV1. No need to worry about these risks for using it though. You can never say that no patent troll will surface tomorrow for literally anything. That's not a reason not to use things. | | |
| ▲ | extra88 6 hours ago | parent | next [-] | | AVIF supports multiple frames. It's a good replacement for animated GIFs. | | |
| ▲ | shmerl 6 hours ago | parent [-] | | I don't think you need a replacement for them besides actual proper video. |
| |
| ▲ | Dylan16807 15 hours ago | parent | prev [-] | | > You can never say that no patent troll will surface tomorrow for literally anything. Well I guess you can use 20+ year old standards when they exist. | | |
| ▲ | shmerl 12 hours ago | parent [-] | | Yeah, but that's a pretty long time for image formats, so it defeats the point. |
|
|
|
|
| ▲ | nwah1 17 hours ago | parent | prev | next [-] |
| Regular JPEG can also be compressed much more than it usually is: https://symbiogenesis.github.io/DotJpegli/ However, video would matter so much more than images, to the overall internet, that images don't even matter by comparison. |
| |
| ▲ | i80and 17 hours ago | parent [-] | | It's pretty frustrating that JPEG encoding generally got stuck with libjpeg-turbo. |
|
|
| ▲ | xp84 15 hours ago | parent | prev | next [-] |
| Hosting providers don't want these formats because they're more cpu-intensive for them to decode and transform (e.g. to make a thumbnail, or when you upload a 4K selfie to be cropped into a 256x256 circle avatar, or a 16 megapixel image of a receipt). By contrast, if you let the user upload a JPEG or even a PNG, you might pay a slightly-higher cost of the incoming bandwidth, but then you (basically for free) transform the image to the small dimensions and format you actually need, and from there the bandwidth is barely a problem. Sidenote: End users hate WEBP because nearly any software other than web browsers still don't support even reading it, let alone outputting it (and as you pointed out, anywhere that you "upload an image" they're not welcome either). In my incredibly shoddy testing sample of 1, my current-macOS device does open AVIFs in Preview, so that's an improvement, at least! |
| |
| ▲ | voidUpdate 4 minutes ago | parent [-] | | I keep seeing people saying that nothing supports webp, but I've never had any issues opening it. What software do you use that cannot handle webp? |
|
|
| ▲ | origini 17 hours ago | parent | prev | next [-] |
| Yeah why not? Because whenever I download an image and its webp, the next thing i do is i google "webp to png/jpg" conversation because yeah service XY or Tool Z doesn't support it. Or my Fire TV Stick :( I configure my nginx to serve everything available though. Thats what i can do. |
| |
| ▲ | jeroenhd 16 hours ago | parent [-] | | You can throw almost any image format with open standards into squoosh.app if you're still using software that doesn't open webp. It's been a while since Photoshop finally got support, though, I can't recall the last time webp posed a problem for me. Then again I don't use a Firestick, no idea how that would deal with image formats, I guess it's no longer being maintained? | | |
| ▲ | origini 13 hours ago | parent [-] | | No the firestick reference was for video formats. H265 for example. Or Dolby Vision. |
|
|
|
| ▲ | chrismorgan 15 hours ago | parent | prev | next [-] |
| > I have already switched to AVIF on every platform I use that supports it, and WebP where AVIF isn't supported. Where AVIF isn’t supported, I reckon you’re better to fall back to JPEG. Everything supports JPEG, but there are still plenty of things that don’t support WebP. Anything that supports WebP now has indicated it’s open to supporting newer formats than the baseline JPEG/GIF/PNG and is almost certain to support AVIF within a few years. |
|
| ▲ | kasabali 17 hours ago | parent | prev | next [-] |
| > Even YouTube is preparing to move beyond AV1 and begin streaming video using AV2, potentially as early as 2027. If a company handling the enormous amount of video that YouTube does sees the benefits of a more efficient format, shouldn't the rest of the internet be taking a closer look at what we can do with images and video too? Odd argument. Image isn’t video and we are not YouTube. |
| |
| ▲ | thisislife2 15 hours ago | parent | next [-] | | AV1 (and AV2) do save a lot of bandwidth, and Youtube already serves AV1 selectively to some users. But the biggest drawback of AV1 is that it needs more resources to even decode. This is especially apparent on old computers that don't have dedicated AV1 encoders or decoders. I discovered this when someone complained to me that PaleMoon on their old PC suddenly consumed a lot of CPU resource causing the PC to stutter - turned out that Youtube was serving AV1 encoded videos on it. Disabling AV1 support in the browser fixed it as Youtube was then forced to serve AVC / H.264 encoded videos. | |
| ▲ | d2kx 17 hours ago | parent | prev [-] | | not an odd argument. AVIF is based on AV1, so what they mean is that since we accept YouTube's AV1 usage as mainstream nowadays, so should be it's image part |
|
|
| ▲ | kiwibyproxy 16 hours ago | parent | prev | next [-] |
| not one mention of JXL in the article? |
|
| ▲ | 0x_rs 17 hours ago | parent | prev | next [-] |
| Enough keyframe-based "image" formats, please! The internet and the world at large needs a real and proper modern format, not some quick hacks from bored engineers that only contribute to the endless fragmentation online and do not leverage any existing infrastructure for serving video. There's more than just crappy ultra-low-quality thumbnails around. WebP, AVIF are the webscale equivalent of serving images. |
| |
| ▲ | iknowstuff 16 hours ago | parent | next [-] | | Say more please, what’s up with keyframes? | |
| ▲ | Dylan16807 15 hours ago | parent | prev [-] | | > Enough keyframe-based "image" formats, please! The internet and the world at large needs a real and proper modern forma Are you looking for jpeg XL? > and do not leverage any existing infrastructure for serving video How would that leveraging work? > WebP, AVIF are the webscale equivalent of serving images. This sounds insulting? But they are images on the Web. I have no idea what you mean here. |
|
|
| ▲ | BorisMelnik 17 hours ago | parent | prev | next [-] |
| I swear I saw this exact post here on HN last week |
|
| ▲ | DivingForGold 3 days ago | parent | prev | next [-] |
| Seems about time we have ANOTHER round of serious investigations into collusion in the memory industry artificially driving up prices ... |
|
| ▲ | flerchin 17 hours ago | parent | prev | next [-] |
| Maybe a middle out compression is the way to go. |
|
| ▲ | shmerl 16 hours ago | parent | prev [-] |
| Yes, but sites are super slow to enable it. * https://gitlab.com/gitlab-org/gitlab/-/work_items/428012 * https://github.com/orgs/community/discussions/138164 |