image v0.25.5 brings much improved AVIF decoding

182 points Shnatsel

image is the #1 image processing crate.

The latest release brings many improvements to AVIF decoding contributed by @awxkee. 10-bit and 12-bit AVIF images are now supported, and many bugs in AVIF decoding have been fixed.

Also, the rayon feature now correctly toggles the use of parallelism in AVIF encoding. The only remaining format where parallelism isn't toggled correctly is EXR, because that would be a semver-breaking change for the exr the crate.

Finally, .jfif is now recognized as a JPEG file extension. It is valid but very rarely used, which is why it took us until now to add it.

Note that AVIF decoding still depends on the C library dav1d rather than the Rust port of it, rav1d. This is because rav1d does not expose a Rust API, not even through a crate that wraps the dav1d C API. We hope that this will change in the future, and we will be able to migrate away from dav1d which is our last remaining C dependency.