عن المشروع

libavif هي تنفيذ C محمول لتنسيق ملفات الصور AV1 (AVIF)، مصممة لتكون سهلة الدمج في مشاريع أخرى. تدعم تشفير وفك تشفير جميع تنسيقات YUV وأعماق البت المدعومة من AV1، بما في ذلك قناة ألفا. إلى جانب المكتبة، تتضمن أدوات سطر أوامر: avifenc للتشفير وavifdec لفك التشفير. الاستخدام الأساسي لسطر الأوامر: avifenc -q 75 input.[jpg|png|y4m] output.avif avifdec output.avif decoded.png قم بتشغيل avifenc --help للحصول على قائمة الخيارات الكاملة. توجد أمثلة استخدام واجهة البرمجة في دليل الأمثلة؛ تفعيل خيار CMake AVIF_BUILD_EXAMPLES يبنيها ويشغلها. التثبيت متاح عبر مديري الحزم الشائعة: vcpkg على ويندوز، Homebrew أو MacPorts على macOS، apt على لينكس القائم على Debian، yum على لينكس القائم على Red Hat، وpacman في MSYS2 UCRT64. يتم نشر ثنائيات ويندوز الرسمية على صفحة الإصدارات. يُنصح بالإصدارات الموسومة بدلاً من الفرع الرئيسي. يتطلب البناء 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.