AVIF (12/10/8-bit) image support for darktable

As I’m an amateur photographer, I’m using Open Source tools for developing my images. The software I use is called darktable. I think it is the best tool out there for editing RAW images.

From time to time I contributed small code changes to darktable, mostly bug fixes. Now I nearly finished my first feature for darktable, support for the AVIF image format.

AVIF support in darktable
From RAW exported and reimported AVIF images in darktable.

For implementing AVIF support I used libavif. Joe Drago the author of libavif was very helpful explaining all the details and helping me in debugging issues. Thank you Joe!

The code need to be polished a bit more and I need to decide what to expose in the export UI or better simplify for the user.

However there are some outstanding things that this will be a great experience for everyone:

You may also like...

5 Responses

  1. Ulrike Häßler says:

    Hallo Andreas, I just try to read and write AVIF using Darktable on Mac OS, but I can’t see any of the .avif photos in my folders. Any advice? Ulrike

  2. You need darktable to be compiled with AVIF support. I’m not sure who builds the darktable for MacOSX, but I would suggest you ask on the pixls.us forums that AVIF support will be added.

  3. Ulrike Häßler says:

    Hallo Andres, thank you for your fast answer. I’ll go and ask. Ulrike

  4. Mike says:

    Hey Andreas, can you tell us about the reasoning behind the choice of using chroma subsampling for qualities lower than 91 %?
    At least according to https://netflixtechblog.com/avif-for-next-generation-image-coding-b1d75675fe4?gi=7c4be26bdf9d apparently it’s better to use yuv444 for a wide range of qualities for avif. I also wonder if chroma subsampling shouldn’t better be exposed in the UI with its own setting. It might not be needed if yuv444 is really superior for practical qualities and is always used though…

    In any case, thanks for avif support!


  5. Hey Mike,

    normally for photography you want to use a really high quality, and this would be above 90%. So you want YUV444. If you’re going below, you want to have a small image probably for the web to safe loading time, and in this case you want chroma subsampling. I don’t want to overwhelm the user with settings, so I put the logic just into one slider.
    darktable already does this for JPG, so I thought it will work here too.

    I’m open for suggestions as always. Feel free to open PRs against darktable 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *