इस प्रोजेक्ट के बारे में
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 (सीक्वेंस प्रदर्शित करें) शामिल हैं। सुरक्षा सीमाएँ अत्यधिक बड़ी इमेज और denial-of-service से बचाती हैं; उन्हें 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 desktop, 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.