프로젝트 소개
libavif는 AV1 이미지 파일 형식(AVIF)의 이식성 높은 C 구현으로, 다른 프로젝트에 쉽게 통합할 수 있도록 설계되었습니다. 알파를 포함하여 AV1이 지원하는 모든 YUV 형식과 비트 심도의 인코딩 및 디코딩을 지원합니다. 라이브러리와 함께 명령줄 도구도 제공합니다: 인코딩용 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 바이너리는 릴리스 페이지에 게시됩니다. main 브랜치보다 태그된 릴리스를 권장합니다.
빌드에는 CMake가 필요합니다. 의존성은 AVIF_CODEC_AOM 및 AVIF_LIBYUV와 같은 CMake 플래그로 제어되며, OFF, SYSTEM 또는 LOCAL 값을 받습니다. 기본적으로 AV1 코덱은 활성화되지 않으므로 최소 하나를 선택해야 하며, libaom(인코더 및 디코더), dav1d(디코더), libgav1(디코더), rav1e(인코더), SVT-AV1(인코더) 중에서 고릅니다. Libyuv는 선택 사항이지만 더 빠른 색 공간 변환을 위해 강력히 권장되며 기본값은 SYSTEM입니다. 테스트는 AVIF_BUILD_TESTS로 빌드할 수 있습니다. GoogleTest 기반 테스트는 AVIF_GTEST가 필요하고, 퍼징 테스트는 fuzztest를 사용합니다. 코드 커버리지는 clang과 LLVM이 설치된 상태에서 AVIF_ENABLE_COVERAGE와 avif_coverage 타깃을 통해 사용할 수 있습니다. 예제 빌드 명령줄은 설치된 의존성에 연결하는 경우와 모든 것을 처음부터 빌드하는 경우를 다룹니다.
라이브러리는 C99로 작성되었으며, 대부분의 테스트는 C++14로 작성되었습니다. 포매팅은 소스에 clang-format을, CMake 파일에 cmake-format을 사용합니다. 이 프로젝트는 BSD 라이선스로 배포됩니다.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.