A portable C library for encoding and decoding AV1 Image File Format (.avif) images with support for all AV1 YUV formats and alpha.
libavif is a C library for encoding and decoding images in the AV1 Image File Format (AVIF). It provides a standardized way to leverage the AV1 video codec for high-efficiency image compression, enabling smaller file sizes with better quality than traditional formats like JPEG and PNG. The library supports all AV1 YUV formats, bit depths, and alpha channels, making it suitable for modern image processing needs.
Developers and engineers working on multimedia applications, web services, or tools that require efficient image compression and support for the AVIF format. It is particularly relevant for those integrating AVIF support into software, creating image conversion utilities, or optimizing media delivery pipelines.
Developers choose libavif because it is a portable, well-tested reference implementation of the AVIF standard with support for multiple AV1 codec backends. Its permissive BSD license, comprehensive feature set, and included command-line tools make it a reliable and flexible choice for adding AVIF capabilities without vendor lock-in.
libavif - Library for encoding and decoding .avif files
Supports all AV1 YUV formats, bit depths up to 12-bit, and alpha channels per the specification, ensuring full format compatibility.
Written in C99, it's easily integrable across platforms, evidenced by availability in package managers like apt, Homebrew, and vcpkg.
Configurable support for multiple AV1 codecs like libaom, dav1d, and SVT-AV1 via CMake flags, allowing performance or licensing trade-offs.
Includes avifenc and avifdec utilities for straightforward image conversion, with examples like 'avifenc -q 75 input.jpg output.avif'.
Optional libyuv integration accelerates color space conversions, though it requires additional setup as noted in the README.
No AV1 codecs are enabled by default; users must manually configure CMake to enable at least one, and managing LOCAL vs SYSTEM dependencies can be error-prone.
As a low-level C library, it lacks high-level abstractions, and API documentation is minimal, forcing reliance on example code for integration.
Building all dependencies from scratch, as shown in the 'Build everything from scratch' example, is time-consuming and involves multiple external projects.
A toolkit for making real world machine learning and data analysis applications in C++
An open source library for face detection in images. The face detection speed can reach 1000FPS.
The “Quite OK Image Format” for fast, lossless image compression
Improved JPEG encoder.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.