প্রকল্প সম্পর্কে

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 বাইনারি রিলিজ পেজে প্রকাশিত হয়। ট্যাগ করা রিলিজগুলি মূল শাখার চেয়ে সুপারিশ করা হয়। বিল্ডিংয়ের জন্য 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 ফাইলগুলির জন্য cmake-format ব্যবহার করে। প্রকল্পটি BSD লাইসেন্সের অধীনে প্রকাশিত।