这个项目能做什么
libavif是AV1图像文件格式(AVIF)的可移植C实现,旨在便于集成到其他项目中。它支持所有AV1支持的YUV格式和位深度的编码和解码,包括alpha通道。除了库本身,它还附带命令行工具:用于编码的avifenc和用于解码的avifdec。
基本命令行用法:
avifenc -q 75 input.[jpg|png|y4m] output.avif
avifdec output.avif decoded.png
运行avifenc --help查看完整选项列表。API使用示例位于examples目录中;启用CMake选项AVIF_BUILD_EXAMPLES将构建并运行它们。
可通过常见包管理器安装:Windows上的vcpkg,macOS上的Homebrew或MacPorts,基于Debian的Linux上的apt,基于Red Hat的Linux上的yum,以及MSYS2 UCRT64中的pacman。官方Windows二进制文件发布在releases页面上。建议使用标记版本而非主分支。
构建需要CMake。依赖项由CMake标志控制,如AVIF_CODEC_AOM和AVIF_LIBYUV,它们接受OFF、SYSTEM或LOCAL。默认不启用任何AV1编解码器;必须至少选择一个,可在libaom(编码器和解码器)、dav1d(解码器)、libgav1(解码器)、rav1e(编码器)和SVT-AV1(编码器)中选择。Libyuv是可选的,但强烈推荐用于更快的色彩空间转换,默认值为SYSTEM。测试可通过AVIF_BUILD_TESTS构建;基于GoogleTest的测试需要AVIF_GTEST,模糊测试使用fuzztest。代码覆盖率可通过AVIF_ENABLE_COVERAGE和avif_coverage目标实现,需安装clang和LLVM。示例构建命令行涵盖链接已安装依赖项和从头构建所有内容。
该库使用C99编写,大多数测试使用C++14。格式化使用clang-format处理源代码,cmake-format处理CMake文件。项目以BSD许可证发布。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。