aspose.info
HI

FLIF फ़ाइल स्वरूप

अपडेट किया गया

FLIF फाइल क्या है?

FLIF (मुक्त दोषरहित छवि प्रारूप) एक दोषरहित छवि प्रारूप है जो अपनी फ़ाइलों के लिए .flif एक्सटेंशन का उपयोग करता है। FLIF संपीड़न अनुपात के मामले में PNG, दोषरहित WebP, दोषरहित BPG, और दोषरहित JPEG 2000 से बेहतर प्रदर्शन करने का दावा करता है। FLIF प्रगतिशील इंटरलेसिंग का उपयोग करता है, जिसके कारण छवि के किसी भी आंशिक डाउनलोड को संपूर्ण छवि के लिए हानिपूर्ण एन्कोडिंग के रूप में उपयोग किया जा सकता है।

संक्षिप्त इतिहास

सितंबर 2015 में FLIF की घोषणा की गई थी, और अल्फा संस्करण अक्टूबर 2015 में जारी किया गया था। सितंबर 2016 में, FLIF का पहला स्थिर संस्करण जारी किया गया था।

FLIF डिजाइन

FLIF संपीड़न के लिए CABAC (संदर्भ-अनुकूली बाइनरी अंकगणितीय कोडिंग), MANIAC (मेटा-एडेप्टिव नियर-ज़ीरो इंटीजर अंकगणित कोडिंग) के एक प्रकार का उपयोग करता है। MANIAC जॉन स्नेयर्स और पीटर वुइल द्वारा विकसित एक एन्ट्रापी कोडिंग एल्गोरिथम है। MANIAC में, संदर्भ निर्णय वृक्षों के नोड होते हैं जो गतिशील रूप से एन्कोडिंग समय पर सीखे जाते हैं। यह संदर्भ मॉडल को अधिक छवि-विशिष्ट बनाता है और बेहतर संपीड़न में परिणाम देता है। एफएलआईएफ में निम्नलिखित विशेषताएं हैं:

  • दोषरहित संपीड़न का समर्थन करता है
  • एन्कोडर प्रीप्रोसेसिंग के साथ हानिपूर्ण संपीड़न का समर्थन करता है
  • ग्रेस्केल, आरजीबी और आरजीबीए का समर्थन करता है
  • प्रति चैनल 1 से 16 बिट की रंग गहराई का समर्थन करता है
  • इंटरलेस्ड और नॉन-इंटरलेस्ड फाइलों का समर्थन करता है
  • आंशिक रूप से डाउनलोड की गई फ़ाइलों के प्रगतिशील डिकोडिंग का समर्थन करता है
  • एनिमेशन का समर्थन करता है
  • एम्बेडेड ICC रंग प्रोफाइल, Exif और XMP मेटाडेटा का समर्थन करता है
  • कैमरा कच्ची फाइलों (आरजीजीबी) को संपीड़ित करने के लिए सीमित समर्थन है

FLIF फ़ाइल स्वरूप

एक FLIF फ़ाइल में निम्नलिखित चार भाग होते हैं:

मुख्य हैडर

मुख्य हेडर में चौड़ाई, ऊंचाई, रंग की गहराई, फ़्रेम की संख्या सहित मुख्य मेटाडेटा होता है।

प्रकारमूल्यविवरण
4 बाइट्स“FLIF”मैजिक
4 बिट्स3 = नी स्टिल; 4 = मैं अभी भी; 5 = नी एनिम; 6 = मैं एनिमेशनइंटरलेसिंग, एनिमेशन
4 बिट्स1 = ग्रेस्केल; 3 = आरजीबी; 4 = RGBAचैनलों की संख्या (nb_channels)
1 बाइट‘0’,‘1’,‘2’ (‘0’=कस्टम)बाइट्स प्रति चैनल (बीपीसी)
varintचौड़ाई-1चौड़ाई
varintऊंचाई-1ऊंचाई
varintnb_frames-2 (केवल अगर एनिमेशन)फ्रेम की संख्या (nb_frames)

मेटाडेटा खंड

इस भाग में गैर-पिक्सेल जैसे Exif/XMP मेटाडेटा, ICC रंग प्रोफ़ाइल आदि शामिल हैं, जो DEFLATE संपीड़न का उपयोग करके एन्कोड किया गया है। इन विखंडू को पीएनजी विखंडू के समान परिभाषित किया गया है, जिसमें अंतर यह है कि चक आकार बाइट्स की एक चर संख्या के साथ एन्कोड किया गया है। चंक्स के नाम 4 अक्षर (4 बाइट्स) हो सकते हैं या 32 से नीचे का मान एक गैर-वैकल्पिक चंक को दर्शाता है।

निम्नलिखित वैकल्पिक चक का एक उदाहरण है:

खंड नामविवरणसामग्री (डिफलेट-डीकंप्रेसन के बाद)
आईसीसीपीआईसीसी कलर प्रोफाइलरॉ आईसीसी कलर प्रोफाइल डेटा
eXifExif मेटाडेटा“Exif\0\0” हेडर के बाद एक TIFF हेडर और EXIF डेटा
eXmpXMP मेटाडेटाXMP बिना पैडिंग वाले केवल-पढ़ने के लिए xpacket में समाहित है

नामकरण परंपरा

  • पहला अक्षर: क्रिटिकल के लिए अपरकेस का इस्तेमाल होता है और नॉन-क्रिटिकल चंक्स के लिए लोअरकेस का इस्तेमाल होता है।
  • दूसरा अक्षर: अपरकेस का इस्तेमाल पब्लिक के लिए और लोअरकेस का इस्तेमाल प्राइवेट चंक्स के लिए किया जाता है
  • तीसरा अक्षर: चक के लिए अपरकेस का उपयोग किया जाता है जो छवि को सही ढंग से प्रदर्शित करने के लिए आवश्यक होते हैं और छवि प्रदर्शित करने के लिए लोअरकेस महत्वपूर्ण नहीं होते हैं।
  • चौथा अक्षर: अपरकेस का उपयोग चक के लिए किया जाता है जिसे आँख बंद करके सुरक्षित रूप से कॉपी किया जा सकता है। लोअरकेस चक छवि डेटा पर निर्भर करते हैं।

दूसरा हैडर

इसमें पिक्सल के वास्तविक एन्कोडिंग के बारे में जानकारी शामिल है।

प्रकारविवरणशर्तडिफ़ॉल्ट मान
1 बाइटएनयूएल बाइट (0x00), एक FLIF16 बिटस्ट्रीम का खंड नाम
uni_int(1,16)बिट्स प्रति पिक्सेल चैनल्सबीपीसी == ‘0’: रिपीट(nb_channels)8 अगर बीपीसी == ‘1’, 16 अगर बीपीसी == ‘2’
uni_int(0,1)ध्वज: alpha_zeronb_channels > 30
uni_int(0,100)लूपों की संख्याnb_frames > 1
uni_int(0,60_000)ms में फ्रेम विलंबnb_frames > 1: दोहराना(nb_frames)
uni_int(0,1)ध्वज: has_custom_cutoff_and_alpha
uni_int(1,128)कटऑफhas_custom_cutoff_and_alpha2
uni_int(2,128)अल्फा भाजकhas_custom_cutoff_and_alpha19
uni_int(0,1)ध्वज: has_custom_bitchancehas_custom_cutoff_and_alpha0
?बिचेंसhas_custom_bitchance
चररूपांतरण (नीचे देखें)
uni_int(1) = 0संकेतक बिट: परिवर्तनों के साथ किया गया
uni_int(0,2)अदृश्य पिक्सेल प्रेडिक्टरalpha_zero && इंटरलेस्ड && अल्फा श्रेणी में शून्य शामिल है

चैनल

चैनल नंबरविवरण
0लाल या स्लेटी
1हरा
2नीला
3अल्फा

रूपांतरण

प्रकारविवरण
uni_int(1) = 1संकेतक बिट: अभी तक नहीं किया
uni_int(0,13)रूपांतरण पहचानकर्ता
चररूपांतरण डेटा (रूपांतरण पर निर्भर करता है)

बेहतर संपीड़न के लिए पिक्सेल डेटा को संशोधित करने और वास्तव में होने वाले पिक्सेल मानों का ट्रैक रखने के लिए रूपांतरण का उपयोग किया जाता है।

पिक्सेल डेटा

इस भाग में MANIAC एन्ट्रॉपी कोडिंग का उपयोग करके एन्कोडेड वास्तविक पिक्सेल डेटा होता है। पिक्सल को इंटरलेस्ड या नॉन-इंटरलेस्ड एन्कोडिंग का उपयोग करके एन्कोड किया जा सकता है।

इंटरलेस्ड विधि

इस पद्धति में, ज़ूम स्तर परिभाषित किए गए हैं। ज़ूमलेवल 0 का उपयोग पूर्ण छवि के लिए किया जाता है, ज़ूमलेवल 1 का उपयोग सभी सम-संख्या वाली पंक्तियों के लिए किया जाता है, ज़ूमलेवल 2 का उपयोग ज़ूमलेवल 1 के सभी सम-संख्या वाले कॉलम के लिए किया जाता है। इमेज, स्केल 1:2^k पर। ज़ूम स्तर उच्चतम से निम्नतम तक एन्कोडेड होते हैं।

गैर-इंटरलेस्ड विधि

इस पद्धति में, MANIAC पेड़ों की एन्कोडिंग तुरंत पिक्सेल की एन्कोडिंग के बाद शुरू होती है।

संदर्भ

यह भी देखें