このプロジェクトについて
libavifはAV1 Image File Format(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コーデックはデフォルトでは有効になっていません。少なくとも1つを選択する必要があり、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ファイルにcmake-formatを使用します。プロジェクトはBSD Licenseの下でリリースされています。
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.