Remix.run Logo
oofdere 8 hours ago

Yes, if you look at the demo, the "progressive" AVIF loads a visible image at 8.5KB, and at that point, it looks better than the progressive JXL. However, that is ALL the AVIF shows until the image has fully loaded. At around 98KB, the JXL looks significantly better, and at around 240KB already looks really close to the final image, while the AVIF still looks terrible. At 280KB when the AVIF finally loads, they look identical.

juliobbv 7 hours ago | parent | next [-]

BTW, you can configure the AVIF encoder to have another in-between pass or two so the quality jump isn't as big. The JXL folks just happened to go with only two total passes.

oofdere 7 hours ago | parent [-]

Won't that increase the total size of the image for each pass?

juliobbv 7 hours ago | parent [-]

Thanks to AV1's inter encoding, overhead is overall minimal as each pass can refine on previous ones. Think of it as a mini-video. Because of this, in the case of images with a lot of repeated patterns, progressive AVIF encoding can actually result in more efficient images!

oofdere 7 hours ago | parent [-]

Looking at the demo linked in the blog post, I can make a similar quality thumbnail for a smaller size than the delta between the static and progressive AVIFs

juliobbv 7 hours ago | parent [-]

The quick answer is: you can have up to four passes. With progressive AVIF, you let the browser avoid rendering previous passes if a subsequent one has already been downloaded. It's more efficient and saves battery.

F3nd0 8 hours ago | parent | prev | next [-]

Which sounds very useful if your connection is slow enough to make use of progressive image decoding. (Often enough the case for me.)

jaffathecake 5 hours ago | parent | prev [-]

I prefer the UX of the AVIF example here. I think it's better to have a progressive phase where the image is obviously "not ready", yet you can still determine important details like the subject of the image (unlike a blurhash), rather than a phase that you could mistake for complete, but looks bad in parts.