Can libavif be updated in a future release?

Ideas for improvements and requests for new features in XnView MP

Moderators: XnTriq, helmut, xnview

nooneinpart
Posts: 3
Joined: Thu Dec 29, 2022 12:33 am

Can libavif be updated in a future release?

Post by nooneinpart »

Hello,

I was wondering if XnConvert and XnView MP could receive an update to libavif in a future release. The latest static Windows builds of libavif 0.11.1 using AOM 3.6.0 (https://ci.appveyor.com/project/louquillio/libavif) have an improved perceptual quality tuning that retains more image detail in areas of low contrast compared to the older build currently used in XnConvert 1.98 and XnView MP 1.4.4. According to the changelogs, the last libavif update was to 0.9.2, which is most likely also using an old version of the underlying AOM AV1 encoder which libavif uses. AOM gets updated fairly often with incremental improvements to the visual quality tuning, and I think that is the main culprit behind the changes in image quality.

For instance, here is a comparison using a cropped screenshot from a video game: https://slow.pics/c/B0iBLIpf
The left and right arrow keys can be used to switch between the different images. Except for the third image, which is the original, they were encoded with the Max and Min quantization set to 16, the speed set to 6, and chroma resolution set to 420. At these settings, the libavif 0.11.1 command line encoder yields more resolved detail in the deeper part of the tunnel. The output from XnConvert's build of libavif smoothens out that area in such a way that it seems like extra fog is obscuring the stuff on the top of the tunnel.

A more extreme example is this photo from a mirrorless camera with a lot of sensor noise intact: https://slow.pics/c/R7rlJ15z
libavif 0.11.1 seems to have a more consistent looking sky in terms of how the image noise appears. In comparison, the current output of XnConvert's build of libavif seems more inconsistent in that most parts of the sky have image noise, but there are small macroblocks distributed across the sky where the noise has been smoothened out. Also, the shadowed area around the subject's eyes display a bit more resolved detail in the output from libavif 0.11.1

Unfortunately, with such an extreme example, the difference in file size is pretty large, 198K (libavif) vs 155K (XnConvert), likely because of all the noise that is being encoded more accurately. However, with less extreme examples like the video game, the size difference is a lot smaller and it is significantly more reasonable, 2.13K (libavif) vs 2.12K (XnConvert). I think that it is worth the occasionally larger file size for a more consistent overall image at a given quality setting.

Thank you!