প্রকল্প সম্পর্কে
libheif হলো একটি ISO/IEC 23008-12 HEIF এবং AVIF (AV1 Image File Format) ডিকোডার ও এনকোডার। HEIC এবং AVIF হলো এমন ইমেজ ফরম্যাট যা যথাক্রমে HEVC (H.265) বা AV1 কোডিং ব্যবহার করে শক্তিশালী সংকোচনের জন্য। HEIC এবং AVIF-এর বাইরেও এটি VVC, AVC, JPEG, JPEG-2000 এবং ISO/IEC 23001-17 দিয়ে কোড করা HEIF ইমেজ হ্যান্ডল করে; শেষটি বিল্ট-ইন এবং অনেক ফরম্যাটে লসলেস ইমেজ ও ভিডিও সংরক্ষণ করে।
কোডেক সমর্থন বাহ্যিক লাইব্রেরির মাধ্যমে প্রদান করা হয়: HEIC-এর জন্য libde265 এবং x265, AVIF-এর জন্য libaom, dav1d, svt-av1 বা rav1e, সাথে vvdec/vvenc/uvg266, openh264/x264, libjpeg(-turbo), OpenJPEG এবং OpenJPH। বিল্ডে কোডেকের একটি উপসেট অন্তর্ভুক্ত করা যায়, অথবা নির্ভরতা এবং আকার কমানোর জন্য এগুলোকে ডাইনামিক্যালি লোড করা প্লাগইন হিসেবে কম্পাইল করা যায়।
ফিচারগুলোর মধ্যে রয়েছে আলফা চ্যানেল, ডেপথ ম্যাপ, থাম্বনেইল, সহায়ক ইমেজ, প্রতি ফাইলে একাধিক ইমেজ, ইমেজ সিকোয়েন্স এবং MP4 ভিডিও (শব্দ ছাড়া), প্রতি-টাইল ডিকোডিং এবং ইনক্রিমেন্টাল এনকোডিং সহ টাইলড ইমেজ, এমবেডেড প্রোফাইল থেকে রঙ রূপান্তর সহ HDR, ক্রপ/মিরর/ঘোরানো রূপান্তর, ওভারলে ইমেজ, EXIF এবং XMP মেটাডেটা পড়া, অঞ্চল অ্যানোটেশন এবং মাস্ক ইমেজ, এবং ডেটা-রিডার ইন্টারফেসের মাধ্যমে স্ট্রিমিং।
লাইব্রেরিটি বিস্তৃত ভাষা ইন্টিগ্রেশনের জন্য একটি C API প্রকাশ করে, একটি হেডার-অনলি C++ র্যাপার সহ যা বাইনারি সামঞ্জস্যপূর্ণ থাকে। একই ডিকোডিং কোড সব ফরম্যাট জুড়ে কাজ করে; এনকোডিং ফরম্যাট নির্বাচন করা হয় এনকোডার লুকআপে heif_compression_HEVC, heif_compression_AV1 বা অন্য কোনো ফরম্যাট পাস করে。README-এর উদাহরণ স্নিপেটগুলো প্রাথমিক ইমেজ লোড করা, একটি HEIF ফাইল লেখা এবং EXIF মেটাডেটা পড়ার বিষয় কভার করে।
বিল্ড সিস্টেম হলো CMake (autotools v1.16.0-এ সরিয়ে ফেলা হয়েছে), প্রিসেট সহ: release (কোডেক প্লাগইন হিসেবে), release-noplugins (স্বয়ংসম্পূর্ণ HEIC/AVIF), testing এবং fuzzing। কনফিগারেশন ভেরিয়েবল প্রতিটি কোডেক নিয়ন্ত্রণ করে (WITH_{codec}, WITH_{codec}_PLUGIN), প্লাগইন লোডিং, আনকমপ্রেসড কোডেক, হেডার সংকোচন, libsharpyuv রঙ রূপান্তর, পরীক্ষামূলক ফিচার, মাল্টিথ্রেডিং, সমান্তরাল টাইল ডিকোডিং, প্লাগইন ডিরেক্টরি এবং সিম্বল দৃশ্যমানতা। macOS Homebrew নির্ভরতা ব্যবহার করে; Windows vcpkg-এর মাধ্যমে বিল্ড করে। third-party-এ স্ক্রিপ্ট libaom, rav1e, dav1d এবং SVT-AV1 বিল্ড করতে সাহায্য করে।
কমান্ড লাইন টুলগুলোর মধ্যে রয়েছে heif-dec (JPEG, PNG, TIFF, WebP বা Y4M-এ ডিকোড, সিকোয়েন্স এবং MP4 সহ), heif-enc (এই ফরম্যাট, র্যাপ পিক্সেল ডেটা বা HEIF/AVIF থেকে এনকোড), heif-info (সারসংক্ষেপ বা সম্পূর্ণ বক্স ডাম্প) এবং heif-view (সিকোয়েন্স প্রদর্শন)। নিরাপত্তা সীমা অতিরিক্ত বড় ইমেজ এবং ডেনিয়েল-অফ-সার্ভিস থেকে রক্ষা করে; এগুলো API-এর মাধ্যমে সামঞ্জস্য করা যায়, --disable-limits দিয়ে নিষ্ক্রিয় করা যায়, বা গ্লোবালি LIBHEIF_SECURITY_LIMITS=off দিয়ে নিষ্ক্রিয় করা যায়। ভাণ্ডিলতা GitHub প্রাইভেট ভাণ্ডিলতা রিপোর্টিংয়ের মাধ্যমে রিপোর্ট করা হয়।
.NET, Go, JavaScript/NodeJS, Python (pyheif, pillow-heif), Rust, Swift এবং JavaFX-এর জন্য ভাষা বাইন্ডিং রয়েছে; C-সামঞ্জস্যপূর্ণ ভাষা সরাসরি কাজ করে। libheif emscripten দিয়ে JavaScript/WASM-এ কম্পাইল করা যায়, এবং একটি অনলাইন ব্রাউজার ডেমো উপলব্ধ। এটি একটি Gnome থাম্বনেইলার এবং একটি gdk-pixbuf লোডারও সহ করে।
অনেক ওপেন-সোর্স ইমেজ অ্যাপ্লিকেশন এটির উপর নির্ভর করে, যার মধ্যে রয়েছে GIMP, Krita, ImageMagick, GraphicsMagick, darktable, digiKam, libvips/sharp, pillow-heif, kImageFormats, GNOME ডেস্কটপ, libGD, Kodi, bimg, GDAL, OpenImageIO এবং XnView। প্রকল্পটি একটি স্বাধীন ডেভেলপার দ্বারা রক্ষণাবেক্ষণ করা হয় এবং অর্থায়ন ও বাণিজ্যিক সহায়তা আহ্বান জানায়; এটি GNU Lesser General Public License-এর অধীনে বিতরণ করা হয়।
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.