जीआईएफ फाइल क्या है?
एक जीआईएफ या ग्राफिकल इंटरचेंज फॉर्मेट एक प्रकार की अत्यधिक संपीड़ित छवि है। यूनिसिस के स्वामित्व में, GIF LZW कम्प्रेशन एल्गोरिथम का उपयोग करता है जो छवि गुणवत्ता को कम नहीं करता है। प्रत्येक छवि के लिए जीआईएफ आमतौर पर प्रति पिक्सेल 8 बिट तक की अनुमति देता है और छवि में अधिकतम 256 रंगों की अनुमति है। एक JPEG छवि के विपरीत, जो 16 मिलियन रंगों तक प्रदर्शित कर सकती है और मानव आंखों की सीमाओं को काफी हद तक छूती है। वापस जब इंटरनेट उभरा, तो जीआईएफ सबसे अच्छा विकल्प बना रहा क्योंकि उन्हें कम बैंडविड्थ की आवश्यकता थी और उन ग्राफिक्स के लिए संगत था जो रंग के ठोस क्षेत्रों का उपभोग करते थे। एक एनिमेटेड जीआईएफ कई छवियों या फ़्रेमों को एक फ़ाइल में जोड़ता है और उन्हें एनिमेटेड क्लिप या लघु वीडियो उत्पन्न करने के क्रम में प्रदर्शित करता है। प्रत्येक फ्रेम के लिए रंग सीमाएं 256 तक हैं और रंग ढाल के साथ अन्य छवियों और तस्वीरों को पुन: प्रस्तुत करने के लिए सबसे कम उपयुक्त होने की संभावना है।
GIF फ़ाइल स्वरूप
वैचारिक रूप से, जीआईएफ फाइलों में एक निश्चित आकार का ग्राफिकल क्षेत्र होता है जो शून्य या अधिक छवियों से भरा होता है। कुछ जीआईएफ फाइलें निश्चित आकार के ग्राफिकल क्षेत्र को विभाजित करती हैं या एनिमेटेड जीआईएफ के मामले में एनिमेटेड फ्रेम के रूप में कार्य करने में सक्षम उप-छवियों में ब्लॉक करती हैं। बिटमैप डेटा को संग्रहीत करने के लिए जीआईएफ प्रारूप 1 से 8 बिट्स की पिक्सेल गहराई का उपयोग करता है। छवियों को संग्रहीत करने के लिए हमेशा आरजीबी रंग मॉडल और पैलेट डेटा का उपयोग किया जाता है। संस्करण के आधार पर, एक निश्चित लंबाई वाला हेडर (“GIF87a” या “GIF89a”) एक विशिष्ट GIF फ़ाइल की शुरुआत को परिभाषित करता है।
वर्तमान में, GIF के दो संस्करण: 87a और 89a उपलब्ध हैं। पूर्व मूल जीआईएफ प्रारूप है जबकि बाद वाला नया जीआईएफ प्रारूप है। इस फ़ाइल स्वरूप में, ब्लॉक और पिक्सेल आयामों की विशेषताओं का उल्लेख एक निश्चित-लंबाई वाले लॉजिकल स्क्रीन डिस्क्रिप्टर में किया गया है। ग्लोबल कलर टेबल का अस्तित्व और आकार स्क्रीन डिस्क्रिप्टर द्वारा निर्दिष्ट किया जा सकता है, जो मौजूद होने पर और विवरण ट्रैक करता है। ट्रेलर फ़ाइल का अंतिम बाइट है जिसमें ASCII अर्धविराम का एक बाइट होता है। एक विशिष्ट GIF87a फ़ाइल लेआउट इस प्रकार है:
हैडर
हेडर में छह बाइट्स होते हैं और इसका उपयोग GIF के रूप में फ़ाइल के प्रकार को निर्दिष्ट करने के लिए किया जाता है। हालांकि लॉजिकल स्क्रीन डिस्क्रिप्टर को वास्तविक हेडर से अलग किया जाता है फिर भी कभी-कभी इसे दूसरा हेडर माना जाता है। हेडर को स्टोर करने के लिए उपयोग की जाने वाली समान संरचना लॉजिकल स्क्रीन डिस्क्रिप्टर को स्टोर कर सकती है। सभी जीआईएफ फाइलें 3-बाइट हस्ताक्षर से शुरू होती हैं और पहचानकर्ता के रूप में “जीआईएफ” वर्णों का उपयोग करती हैं। संस्करण भी आकार में तीन बाइट का है और GIF फ़ाइल के संस्करण की घोषणा करता है।
लॉजिकल स्क्रीन डिस्क्रिप्टर
एक निश्चित-लंबाई वाला इमेज डिस्क्रिप्टर GIF छवि बनाने के लिए आवश्यक स्क्रीन और रंग जानकारी को निर्दिष्ट करता है। ऊँचाई और चौड़ाई फ़ील्ड स्क्रीन रिज़ॉल्यूशन के सबसे छोटे मूल्य को संलग्न करते हैं, जो छवि डेटा दिखाने के लिए अनिवार्य है। यदि डिस्प्ले डिवाइस निर्दिष्ट रिज़ॉल्यूशन प्रदर्शित करने में अक्षम है, तो छवि को उपयुक्त रूप से प्रदर्शित करने के लिए स्केलिंग की आवश्यकता होगी। स्क्रीन और कलर मैप जानकारी नीचे दी गई तालिका के चार उपक्षेत्रों द्वारा प्रदर्शित की जाती है (जबकि बिट 0 सबसे कम महत्वपूर्ण बिट है):
बिट्स | सबफील्ड्स |
---|---|
0-2 | वैश्विक रंग तालिका का आकार |
3 | कलर टेबल सॉर्ट फ्लैग |
4-6 | कलर रेसोल्यूशन |
7 | ग्लोबल कलर टेबल फ्लैग |
वैश्विक रंग तालिका
तार्किक स्क्रीन डिस्क्रिप्टर के ठीक बाद एक वैकल्पिक ग्लोबल कलर टेबल रखा गया है। छवि डेटा के अंदर पिक्सेल रंग डेटा को अनुक्रमित करने के लिए इस तालिका को मैप किया गया। वैश्विक रंग तालिका के अभाव में, GIF फ़ाइल में प्रत्येक छवि अपने स्थानीय रंग का उपयोग करती है। वैश्विक और स्थानीय रंग तालिका दोनों गायब होने पर डिफ़ॉल्ट रंग तालिका प्रदान करना बेहतर होता है। तीन-बाइट ट्रिपल्स की एक श्रृंखला रंग तालिका के तत्वों की रचना करती है। प्रत्येक बाइट एक आरजीबी रंग मान की विशेषता है। लाल, हरे और नीले रंगों का उपयोग प्रत्येक रंग तालिका तत्व के मान के रूप में किया जाता है। वैश्विक रंग तालिका में प्रविष्टियाँ अधिकतम 256 प्रविष्टियाँ हिट करती हैं और हमेशा दो की शक्ति में दर्शाती हैं।
छवि डेटा
छवि डेटा अनएन्कोडेड प्रतीकों के एक बाइट को उप-लिंक्ड-सूची के साथ LZW-एन्कोडेड डेटा के साथ संग्रहीत करता है।
ट्रेलर
ट्रेलर डेटा के एकल बाइट का प्रतिनिधित्व करता है जो फ़ाइल में अंतिम वर्ण है। इस बाइट का मान स्थायी रूप से 3बीएच है और डेटा स्ट्रीम के अंत को निर्दिष्ट करता है। प्रत्येक GIF फ़ाइल में प्रत्येक फ़ाइल के अंत में ट्रेलर होना चाहिए।