जीआईएफ: Difference between revisions

From Vigyanwiki
(Created page with "{{short description|Bitmap image file format family}} {{Other uses}} {{Use dmy dates|date=September 2020}} {{Infobox file format | icon = | iconcaption = | icon_size = | scree...")
 
No edit summary
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{short description|Bitmap image file format family}}
{{short description|Bitmap image file format family}}
{{Other uses}}
{{Use dmy dates|date=September 2020}}
{{Use dmy dates|date=September 2020}}
{{Infobox file format
{{Infobox file format
Line 36: Line 35:


Thank you for listening. -->
Thank you for listening. -->
ग्राफिक्स इंटरचेंज फॉर्मेट (जीआईएफ; {{IPAc-en|ɡ|ɪ|f}} {{respell|GHIF}} या {{IPAc-en|dʒ|ɪ|f}} {{respell|JIF}} , #Pronomy) एक [[ रेखापुंज ग्राफिक्स ]] छवि फ़ाइल स्वरूप है जिसे अमेरिकी कंप्यूटर वैज्ञानिक [[ स्टीव विल्हाइट ]] के नेतृत्व में ऑनलाइन सेवा प्रदाता [[ CompuServe ]] की एक टीम द्वारा विकसित किया गया था और 15 जून 1987 को जारी किया गया था।<ref name="87aSpec" />अनुप्रयोगों और ऑपरेटिंग सिस्टम के बीच व्यापक समर्थन और पोर्टेबिलिटी के कारण यह [[ वर्ल्ड वाइड वेब ]] पर व्यापक उपयोग में है।
'''ग्राफ़िक्स इंटरचेंज फ़ॉर्मेट (जीआईएफ)''' (जीआईएफ; {{IPAc-en|ɡ|ɪ|f}} {{respell|GHIF}} या {{IPAc-en|dʒ|ɪ|f}} {{respell|JIF}}, [[:hi:GIF#Pronunciation|उच्चारण देखें]]) एक [[बिटमैप]] इमेज फ़ॉर्मेट है जिसे अमेरिकी [[कंप्यूटर]] वैज्ञानिक स्टीव विल्हाइट के नेतृत्व में ऑनलाइन सेवा प्रदाता कम्पूसर्वे (कम्पूसर्वे) की एक टीम द्वारा विकसित किया गया था और 15 जून 1987 को रिलीज़ किया गया था।<ref name="87aSpec" /> अनुप्रयोगों और ऑपरेटिंग सिस्टम के बीच व्यापक समर्थन और पोर्टेबिलिटी के कारण यह [[ वर्ल्ड वाइड वेब |वर्ल्ड वाइड वेब]] पर व्यापक उपयोग में है।


प्रारूप प्रत्येक छवि के लिए [[ 8-बिट रंग ]] तक का समर्थन करता है, जिससे एक छवि को [[ 24-बिट रंग ]]-बिट [[ आरजीबी रंग मॉडल ]] से चुने गए 256 अलग-अलग रंगों के अपने स्वयं के [[ पैलेट (कंप्यूटिंग) ]] को संदर्भित करने की अनुमति मिलती है। यह [[ एनीमेशन ]] का भी समर्थन करता है और प्रत्येक फ्रेम के लिए 256 रंगों के एक अलग पैलेट की अनुमति देता है। ये पैलेट सीमाएं रंगीन तस्वीरों और अन्य [[ छवि ढाल ]] को पुन: पेश करने के लिए जीआईएफ को कम उपयुक्त बनाती हैं, लेकिन रंग के ठोस क्षेत्रों वाले ग्राफिक्स या लोगो जैसी सरल छवियों के लिए उपयुक्त हैं।
प्रारूप प्रत्येक छवि के लिए 8 बिट प्रति [[पिक्सेल]] तक का समर्थन करता है, जिससे एक छवि 24-बिट आरजीबी रंग स्थान से चुने गए 256 विभिन्न रंगों के अपने पैलेट को संदर्भित करने की अनुमति देती है। यह [[एनिमेशन डेटाबेस|एनिमेशन]] में भी प्रत्येक फ्रेम के लिए 256 रंगों के एक अलग पैलेट की अनुमति देता है। ये पैलेट सीमाएँ जीआईएफ को रंगीन तस्वीरों और अन्य छवियों को कलर ग्रडियन्ट के साथ पुन: पेश करने के लिए कम उपयुक्त बनाती हैं, लेकिन सरल छवियों जैसे कि ग्राफिक्स या रंग के सुगठित क्षेत्रों के साथ लोगो के लिए उपयुक्त हैं।


दृश्य गुणवत्ता को खराब किए बिना फ़ाइल आकार को कम करने के लिए GIF छवियों को Lempel-Ziv-Welch (LZW) [[ दोषरहित डेटा संपीड़न ]] तकनीक का उपयोग करके संपीड़ित किया जाता है।
दृश्य गुणवत्ता को खराब किए बिना फ़ाइल आकार को कम करने के लिए जीआईएफ छवियों को लेम्पेल-ज़िव-वेल्च (एलजेडडब्ल्यू) [[ दोषरहित डेटा संपीड़न |दोषरहित डेटा कम्प्रेशन]] (लॉसलेस डाटा कम्प्रेशन) तकनीक का उपयोग करके संपीड़ित किया जाता है।


== इतिहास ==
== इतिहास ==
{{Further|GIF#Unisys and LZW patent enforcement|label1=§ Unisys and LZW patent enforcement}}
कम्पूसर्वे ने 15 जून 1987 को अपने फ़ाइल डाउनलोडिंग क्षेत्रों के लिए एक रंगीन छवि प्रारूप प्रदान करने के लिए जीआईएफ निवेदित किया था। इसने उनके पहले के [[ रन-लेंथ एन्कोडिंग |रन-लेंथ एन्कोडिंग]] प्रारूप को बदल दिया, जो केवल काले और सफेद रंग का था। जीआईएफ लोकप्रिय हो गया क्योंकि इसमें लेम्पेल-ज़िव-वेल्च डेटा कम्प्रेशन का इस्तेमाल किया गया था। चूंकि यह [[ पीसीएक्स |पीसीएक्स]] और [[ मैकपेंट |मैकपेंट]] द्वारा उपयोग की जाने वाली रन-लेंथ एन्कोडिंग की तुलना में अधिक कुशल था, धीमी [[ मोडम |मोडम]] के साथ भी काफी बड़ी छवियों को यथोचित शीघ्रता से डाउनलोड किया जा सकता था।
CompuServe ने 15 जून 1987 को अपने फ़ाइल डाउनलोडिंग क्षेत्रों के लिए एक रंगीन छवि प्रारूप प्रदान करने के लिए GIF पेश किया। इसने उनके पहले के [[ रन-लेंथ एन्कोडिंग ]] प्रारूप को बदल दिया, जो केवल काले और सफेद रंग का था। जीआईएफ लोकप्रिय हो गया क्योंकि इसमें लेम्पेल-ज़िव-वेल्च डेटा संपीड़न का इस्तेमाल किया गया था। चूंकि यह [[ पीसीएक्स ]] और [[ मैकपेंट ]] द्वारा उपयोग की जाने वाली रन-लेंथ एन्कोडिंग की तुलना में अधिक कुशल था, धीमी [[ मोडम ]] के साथ भी काफी बड़ी छवियों को यथोचित तेज़ी से डाउनलोड किया जा सकता था।


GIF के मूल संस्करण को 87a कहा जाता था।<ref name="87aSpec" />यह संस्करण पहले से ही एक स्ट्रीम में कई छवियों का समर्थन करता है।
जीआईएफ के मूल संस्करण को 87a कहलाता था।<ref name="87aSpec" /> यह संस्करण पहले से ही एक स्ट्रीम में कई छवियों का समर्थन करता है।


1989 में, CompuServe ने 89a नामक एक उन्नत संस्करण जारी किया,<ref name="89aSpec" />यह संस्करण जोड़ा गया:
1989 में, कम्पूसर्वे ने 89a नामक एक उन्नत संस्करण जारी किया,<ref name="89aSpec" /> यह संस्करण जोड़ा गया:
* एनीमेशन देरी के लिए समर्थन
* एनीमेशन-विलंब (डिलेस) के लिए समर्थन
* पारदर्शी पृष्ठभूमि रंग
* ट्रांसपेरेंट बैकग्राउंड रंग
* एप्लिकेशन-विशिष्ट मेटाडेटा का संग्रहण
* एप्लिकेशन-विशिष्ट मेटाडेटा का संग्रहण
* टेक्स्ट लेबल को टेक्स्ट के रूप में अनुमति देना (उन्हें ग्राफिकल डेटा में एम्बेड नहीं करना)। चूंकि प्रदर्शन फोंट पर थोड़ा नियंत्रण होता है, हालांकि, इस सुविधा का उपयोग शायद ही कभी किया जाता है।
* टेक्स्ट लेबल को टेक्स्ट के रूप में अनुमति देना (उन्हें ग्राफिकल डेटा में एम्बेड नहीं करना)। चूंकि प्रदर्शन फोंट पर थोड़ा नियंत्रण होता है, हालांकि, यह सुविधा संभवतया ही कभी प्रयोग की जाती है।


फ़ाइल के पहले छह [[ बाइट ]]्स ([[ जादू संख्या (प्रोग्रामिंग) ]] या हस्ताक्षर) को देखकर दो संस्करणों को अलग किया जा सकता है, जिसे [[ ASCII ]] के रूप में व्याख्या किए जाने पर क्रमशः GIF87a या GIF89a पढ़ा जाता है।


CompuServe ने कई कंप्यूटरों के लिए डाउनलोड करने योग्य रूपांतरण सुविधाएं प्रदान करके GIF को अपनाने के लिए प्रोत्साहित किया। उदाहरण के लिए, दिसंबर 1987 तक, एक [[ Apple IIGS ]] उपयोगकर्ता अटारी ST या [[ कमोडोर 64 ]] पर बनाए गए चित्रों को देख सकता था।<ref name="caa198712">{{cite news | url=https://archive.org/stream/COMPUTEs_Apple_Applications_Vol._5_No._2_Issue_6_1987-12_COMPUTE_Publications_US#page/n11/mode/2up | title=Online Art | work=Compute!'s Apple Applications | date=December 1987 | access-date=14 September 2016 | pages=10}}</ref> जीआईएफ उन पहले दो छवि प्रारूपों में से एक था जो आमतौर पर वेब साइटों पर उपयोग किए जाते थे, दूसरा ब्लैक-एंड-व्हाइट [[ एक्सबीएम ]] था।<ref>{{Cite book|title=Ajax: The Definitive Guide: Interactive Applications for the Web|last=Holdener III|first=Anthony|publisher=O'Reilly Media|year=2008|isbn=978-0596528386}}</ref>
सितंबर 1995 में नेटस्केप (वेब ​​​​ब्राउज़र)#रिलीज़ इतिहास 2.0 में #एनिमेटेड GIF जोड़ा गया।


जबकि GIF को CompuServe द्वारा विकसित किया गया था, इसने 1985 में [[ Unisys ]] द्वारा पेटेंट किए गए Lempel-Ziv-Welch (LZW) दोषरहित डेटा संपीड़न एल्गोरिदम का उपयोग किया। 1994 में Unisys और CompuServe के बीच लाइसेंसिंग समझौते पर विवाद ने [[ पोर्टेबल नेटवर्क ग्राफ़िक्स ]] (PNG) के विकास को प्रेरित किया। मानक। 2004 में, GIF के लिए उपयोग किए जाने वाले मालिकाना संपीड़न से संबंधित सभी पेटेंट समाप्त हो गए।
फ़ाइल के पहले छह [[ बाइट | बाइट]] ्स ([[ जादू संख्या (प्रोग्रामिंग) |जादू संख्या (प्रोग्रामिंग)]] या हस्ताक्षर) को देखकर दो संस्करणों को अलग किया जा सकता है, जिसे [[ ASCII | ASCII]] के रूप में व्याख्या किए जाने पर क्रमशः जीआईएफ87a या जीआईएफ89a पढ़ा जाता है।


नियंत्रण डेटा के साथ एक फ़ाइल में एकाधिक छवियों को संग्रहीत करने की सुविधा का उपयोग वेब पर बड़े पैमाने पर सरल [[ कंप्यूटर एनीमेशन ]] बनाने के लिए किया जाता है।
कम्पूसर्वे ने कई कंप्यूटरों के लिए डाउनलोड करने योग्य रूपांतरण सुविधाएं प्रदान करके जीआईएफ को अपनाने के लिए प्रोत्साहित किया। दिसंबर 1987 तक, उदाहरण के लिए, एप्पल IIGS  उपयोगकर्ता अटारी ST या [[ कमोडोर 64 |कमोडोर 64]] पर बनाई गई छवियों को देख सकता था।<ref name="caa198712">{{cite news | url=https://archive.org/stream/COMPUTEs_Apple_Applications_Vol._5_No._2_Issue_6_1987-12_COMPUTE_Publications_US#page/n11/mode/2up | title=Online Art | work=Compute!'s Apple Applications | date=December 1987 | access-date=14 September 2016 | pages=10}}</ref> जीआईएफ पहले दो छवि प्रारूपों में से एक था जो आमतौर पर वेब साइटों पर उपयोग किया जाता था, दूसरा ब्लैक-एंड-व्हाइट [[ एक्सबीएम |एक्सबीएम]] (XBM) था।<ref>{{Cite book|title=Ajax: The Definitive Guide: Interactive Applications for the Web|last=Holdener III|first=Anthony|publisher=O'Reilly Media|year=2008|isbn=978-0596528386}}</ref>


वैकल्पिक [[ इंटरलेसिंग (बिटमैप्स) ]] सुविधा, जो छवि स्कैन लाइनों को इस तरह से क्रम से संग्रहीत करती है कि आंशिक रूप से डाउनलोड की गई छवि भी कुछ पहचानने योग्य थी, ने भी GIF की लोकप्रियता में मदद की,<ref>{{Cite book|title=Encyclopedia of Multimedia|last=Furht|first=Borko|publisher=Springer|year=2008|isbn=978-0387747248}}</ref> एक उपयोगकर्ता के रूप में डाउनलोड को रद्द कर सकता है यदि यह वह नहीं था जो आवश्यक था।
सितंबर 1995 में नेटस्केप नेविगेटर 2.0 ने एनिमेटेड जीआईएफ को लूप करने की क्षमता को जोड़ा है।


मई 2015 में [[ फेसबुक ]] ने GIF के लिए समर्थन जोड़ा।<ref>{{cite magazine |url=https://www.wired.com/2015/05/real-gif-posting-on-facebook/ |title=You Can Finally, Actually, Really, Truly Post GIFs on Facebook |magazine=Wired |first=Molly |last=McHugh |date=2015-05-29 |access-date=2015-05-29 |publisher=[[wired.com]] |archive-date=30 May 2015 |archive-url=https://web.archive.org/web/20150530004146/http://www.wired.com/2015/05/real-gif-posting-on-facebook/ |url-status=live }}</ref><ref>{{cite web |url=https://techcrunch.com/2015/05/29/facebook-confirms-it-will-officially-support-gifs |title=Facebook Confirms It Will Officially Support GIFs |date=2015-05-29 |access-date=2015-05-29 |first=Sarah |last=Perez |publisher=[[techcrunch.com]] |archive-date=30 May 2015 |archive-url=https://web.archive.org/web/20150530043012/http://techcrunch.com/2015/05/29/facebook-confirms-it-will-officially-support-gifs/ |url-status=live }}</ref> जनवरी 2018 में इंस्टाग्राम ने स्टोरी मोड में GIF स्टिकर भी जोड़े।<ref>{{Cite web|url=https://instagram-press.com/blog/2018/01/23/introducing-gif-stickers/|title=Introducing GIF Stickers|date=2018-01-23|website=Instagram|language=en-US|access-date=2019-09-19|archive-date=12 December 2019|archive-url=https://web.archive.org/web/20191212103358/https://instagram-press.com/blog/2018/01/23/introducing-gif-stickers/|url-status=live}}</ref>
जबकि जीआईएफ को कम्पूसर्वे द्वारा विकसित किया गया था, इसने 1985 में यूनिसिस द्वारा पेटेंट किए गए लेम्पेल-ज़िव-वेल्च (एलजेडडब्ल्यू) दोषरहित डेटा कम्प्रेशन एल्गोरिदम का उपयोग किया। 1994 में यूनिसिस और कम्पूसर्वे के बीच लाइसेंसिंग समझौते पर विवाद ने [[ पोर्टेबल नेटवर्क ग्राफ़िक्स |पोर्टेबल नेटवर्क ग्राफ़िक्स]] (पीएनजी) के विकास को प्रेरित किया। मानक 2004 में, जीआईएफ के लिए प्रयुक्त मालिकाना कम्प्रेशन से संबंधित सभी पेटेंट समाप्त हो गए।


आसान [[ कंप्यूटर एनीमेशन |कंप्यूटर एनीमेशन]] बनाने के लिए वेब पर नियंत्रण डेटा के साथ-साथ एक फ़ाइल में कई छवियों को संग्रहीत करने की सुविधा का बड़े स्तर पर उपयोग किया जाता है।
वैकल्पिक [[ इंटरलेसिंग (बिटमैप्स) |इंटरलेसिंग (बिटमैप्स)]], जिसने छवि स्कैन लाइनों को अनुक्रम में इस तरह संग्रहीत किया कि आंशिक रूप से डाउनलोड की गई छवि भी कुछ हद तक पहचानने योग्य थी, ने जीआईएफ की लोकप्रियता में भी सहायता की क्योंकि यदि आवश्यक नहीं था तो उपयोगकर्ता डाउनलोड को निरस्त कर सकता था।<ref>{{Cite book|title=Encyclopedia of Multimedia|last=Furht|first=Borko|publisher=Springer|year=2008|isbn=978-0387747248}}</ref>
मई 2015 में [[ फेसबुक |फेसबुक]] ने जीआईएफ के लिए समर्थन जोड़ा।<ref>{{cite magazine |url=https://www.wired.com/2015/05/real-gif-posting-on-facebook/ |title=You Can Finally, Actually, Really, Truly Post GIFs on Facebook |magazine=Wired |first=Molly |last=McHugh |date=2015-05-29 |access-date=2015-05-29 |publisher=[[wired.com]] |archive-date=30 May 2015 |archive-url=https://web.archive.org/web/20150530004146/http://www.wired.com/2015/05/real-gif-posting-on-facebook/ |url-status=live }}</ref><ref>{{cite web |url=https://techcrunch.com/2015/05/29/facebook-confirms-it-will-officially-support-gifs |title=Facebook Confirms It Will Officially Support GIFs |date=2015-05-29 |access-date=2015-05-29 |first=Sarah |last=Perez |publisher=[[techcrunch.com]] |archive-date=30 May 2015 |archive-url=https://web.archive.org/web/20150530043012/http://techcrunch.com/2015/05/29/facebook-confirms-it-will-officially-support-gifs/ |url-status=live }}</ref> जनवरी 2018 में इंस्टाग्राम ने स्टोरी मोड में जीआईएफ स्टिकर भी जोड़े।<ref>{{Cite web|url=https://instagram-press.com/blog/2018/01/23/introducing-gif-stickers/|title=Introducing GIF Stickers|date=2018-01-23|website=Instagram|language=en-US|access-date=2019-09-19|archive-date=12 December 2019|archive-url=https://web.archive.org/web/20191212103358/https://instagram-press.com/blog/2018/01/23/introducing-gif-stickers/|url-status=live}}</ref>


== शब्दावली ==
== शब्दावली ==
[[ संज्ञा ]] के रूप में, GIF शब्द कई शब्दकोशों के नए संस्करणों में पाया जाता है। 2012 में, [[ ऑक्सफोर्ड यूनिवरसिटि प्रेस ]] के अमेरिकी विंग ने GIF को एक [[ क्रिया ]] के रूप में भी मान्यता दी, जिसका अर्थ GIF फ़ाइल बनाना है, क्योंकि GIFing [[ ग्रीष्मकालीन ओलंपिक ]] से दृश्यों को साझा करने का एक आदर्श माध्यम था। प्रेस के कोशकारों ने इसे वर्ष का अपना शब्द बताया, यह कहते हुए कि जीआईएफ अनुसंधान और पत्रकारिता सहित गंभीर अनुप्रयोगों के साथ एक उपकरण के रूप में विकसित हुआ है।<ref>{{cite web |url=http://blog.oxforddictionaries.com/press-releases/us-word-of-the-year-2012/ |title=Oxford Dictionaries USA Word of the Year 2012 |website=OxfordWords blog |publisher=Oxford American Dictionaries |date=2012-11-13 |access-date=2013-05-01 |archive-date=3 August 2014 |archive-url=https://web.archive.org/web/20140803083637/http://blog.oxforddictionaries.com/press-releases/us-word-of-the-year-2012/ |url-status=dead }}</ref><ref>{{cite news |last=Flood |first=Alison |url=https://www.theguardian.com/books/booksblog/2012/nov/14/gif-america-word-year-omnishambles |title=''Gif'' is America's word of the year? Now that's what I call an omnishambles |department=Books blog |work=[[The Guardian]] |date=2013-04-27 |access-date=2013-05-01 |location=London |archive-date=1 December 2016 |archive-url=https://web.archive.org/web/20161201172504/https://www.theguardian.com/books/booksblog/2012/nov/14/gif-america-word-year-omnishambles |url-status=live }}</ref>


संज्ञा के रूप में, जीआईएफ शब्द कई शब्दकोशों के नए संस्करणों में पाया जाता है। 2012 में, ऑक्सफोर्ड यूनिवर्सिटी प्रेस के अमेरिकी विंग ने जीआईएफ को एक [[ क्रिया |क्रिया]] के रूप में भी मान्यता दी, जिसका अर्थ है "जीआईएफ फ़ाइल बनाना", जैसा कि "जीआईएफing ग्रीष्मकालीन ओलंपिक से दृश्यों को साझा करने का एक आदर्श माध्यम था"। प्रेस के कोशकारों ने इसे वर्ष का अपना शब्द बताया, यह कहते हुए कि जीआईएफ "अनुसंधान और पत्रकारिता सहित गंभीर अनुप्रयोगों के साथ एक उपकरण" के रूप में विकसित हुआ है।<ref>{{cite web |url=http://blog.oxforddictionaries.com/press-releases/us-word-of-the-year-2012/ |title=Oxford Dictionaries USA Word of the Year 2012 |website=OxfordWords blog |publisher=Oxford American Dictionaries |date=2012-11-13 |access-date=2013-05-01 |archive-date=3 August 2014 |archive-url=https://web.archive.org/web/20140803083637/http://blog.oxforddictionaries.com/press-releases/us-word-of-the-year-2012/ |url-status=dead }}</ref><ref>{{cite news |last=Flood |first=Alison |url=https://www.theguardian.com/books/booksblog/2012/nov/14/gif-america-word-year-omnishambles |title=''Gif'' is America's word of the year? Now that's what I call an omnishambles |department=Books blog |work=[[The Guardian]] |date=2013-04-27 |access-date=2013-05-01 |location=London |archive-date=1 December 2016 |archive-url=https://web.archive.org/web/20161201172504/https://www.theguardian.com/books/booksblog/2012/nov/14/gif-america-word-year-omnishambles |url-status=live }}</ref>
=== उच्चारण ===
{{Main|जीआईएफ का उच्चारण}}
[[File:White House Tumblr launch image.jpg|thumbnail|right|संयुक्त राज्य अमेरिका के राष्ट्रपति के कार्यकारी कार्यालय के लिए एक [[ Tumblr ]] खाते के लॉन्च की घोषणा करने वाली एक विनोदी छवि एक कठिन g के साथ जीआईएफ का उच्चारण करने का सुझाव देती है।]]जीआईएफ के पहले अक्षर का उच्चारण 1990 के दशक से विवादित रहा है। अंग्रेजी में सबसे आम उच्चारण हैं {{IPAc-en|dʒ|ɪ|f|audio=Pronunciation of jif.ogg}} (जिन के रूप में वायस्ड पोस्टएल्वियोलर एफ्रिकेट के साथ) और {{IPAc-en|g|ɪ|f|audio=Pronunciation of gif.ogg}} (उपहार के रूप में वॉइस्ड वेलर प्लोसिव के साथ), अक्षर ''G'' द्वारा दर्शाए गए [[ स्वनिम |स्वनिम]] में भिन्नता है। प्रारूप के रचनाकारों ने परिवर्णी शब्द जीआईएफ का उच्चारण किया {{IPAc-en|dʒ|ɪ|f}}वॉइस्ड पोस्टएल्वियोलर एफ़्रीकेट के साथ, विल्हाइट ने कहा कि वह उच्चारण के लिए अमेरिकी [[ मूंगफली का मक्खन ]] ब्रांड जेआईएफ (मूंगफली का मक्खन) को जानबूझकर प्रतिध्वनित करने का इरादा रखता है, और कम्पूसर्वे के कर्मचारी प्रायः जिफ़ के टेलीविजन विज्ञापनों का एक स्पूफ चुनिंदा डेवलपर्स जीआईएफ चुनते हैं।<ref name="olsen">{{cite web | url = http://www.olsenhome.com/gif/ | title = The GIF Pronunciation Page | first = Steve | last = Olsen | access-date = 6 March 2009 | archive-date = 25 February 2009 | archive-url = https://web.archive.org/web/20090225075707/http://www.olsenhome.com/gif/ | url-status = live }}</ref> हालाँकि, इस शब्द का व्यापक रूप से उच्चारण किया जाता है {{IPAc-en|ɡ|ɪ|f}}, वॉयस वेलर स्टॉप के साथ,<ref name=BBC20130522>{{cite news|url=https://www.bbc.co.uk/news/technology-22620473|title=Gif's inventor says ignore dictionaries and say 'Jif'|work=BBC News|date=2013-05-22|access-date=2013-05-22|archive-date=27 June 2018|archive-url=https://web.archive.org/web/20180627083454/https://www.bbc.co.uk/news/technology-22620473|url-status=live}}</ref> और चुनावों ने सामान्यतः दिखाया है कि यह कठिन जी उच्चारण अधिक प्रचलित है।<ref>{{Cite news|last=Buck|first=Stephanie|date=October 21, 2014|title=70 percent of people worldwide pronounce ''GIF'' with a hard ''g''|work=[[Mashable]]|url=https://mashable.com/archive/mispronounced-words-tech|access-date=December 24, 2021|archive-date=December 23, 2021|archive-url=https://web.archive.org/web/20211223162234/https://mashable.com/archive/mispronounced-words-tech|url-status=live}}</ref><ref>{{Cite journal |last=van der Meulen |first=Marten |date=May 22, 2019 |title=Obama, SCUBA or gift?: Authority and argumentation in online discussion on the pronunciation of ''GIF'' |url=https://www.cambridge.org/core/journals/english-today/article/obama-scuba-or-gift/0057DB6B7B1FAABBE3112342FE14E27D |journal=[[English Today]] |volume=36 |issue=1 |pages=45–50}}</ref>
''Dictionary.com''<ref>{{cite web |url=http://dictionary.reference.com/browse/GIF |title=GIF |work=The American Heritage Abbreviations Dictionary, Third Edition |publisher=Houghton Mifflin Company |year=2005 |access-date=2007-04-15 |archive-date=3 September 2011 |archive-url=https://web.archive.org/web/20110903171835/http://dictionary.reference.com/browse/GIF |url-status=live }}</ref> दोनों उच्चारणों को उद्धृत करता है, संकेत करता है {{IPAc-en|dʒ|ɪ|f}} प्राथमिक उच्चारण के रूप में, जबकि कैम्ब्रिज डिक्शनरी ऑफ अमेरिकन इंग्लिश<ref name="cambridgedict">{{cite web |url=http://dictionary.cambridge.org/us/dictionary/business-english/gif?q=gif |title=GIF |work=The Cambridge Dictionary of American English |publisher=Cambridge University Press |access-date=2014-02-19 |archive-date=27 February 2014 |archive-url=https://web.archive.org/web/20140227180258/http://dictionary.cambridge.org/us/dictionary/business-english/gif?q=gif |url-status=live }}</ref> केवल हार्ड-जी उच्चारण प्रदान करता है। मेरियम-वेबस्टर का कॉलेजिएट डिक्शनरी<ref>{{cite web|title=Gif - Definition from the Merriam-Webster Dictionary|url=http://www.merriam-webster.com/dictionary/gif|work=Merriam-Webster Dictionary|publisher=Merriam-Webster, Incorporated|access-date=6 June 2013|archive-date=22 October 2013|archive-url=https://web.archive.org/web/20131022062546/http://www.merriam-webster.com/dictionary/gif|url-status=live}}</ref> और ऑक्सफोर्ड डिक्शनरी दोनों उच्चारणों का हवाला देते हैं, लेकिन हार्ड ''G'' को पहले रखें: {{IPAc-en|g|ɪ|f|,_|dʒ|ɪ|f}}.<ref name="oxforddict">{{cite web|url=http://www.oxforddictionaries.com/definition/english/जीआईएफ|title=जीआईएफ|work=Oxford Dictionaries Online|publisher=Oxford University Press|access-date=7 October 2014|archive-date=12 October 2014|archive-url=https://web.archive.org/web/20141012205125/http://www.oxforddictionaries.com/definition/english/जीआईएफ|url-status=dead}}</ref><ref>{{Cite web|last=|first=|date=|title=gif noun - Definition, pictures, pronunciation and usage notes {{!}} Oxford Advanced Learner's Dictionary|url=https://www.oxfordlearnersdictionaries.com/definition/english/gif|url-status=live|archive-url=https://web.archive.org/web/20201124151618/https://www.oxfordlearnersdictionaries.com/definition/english/gif|archive-date=24 November 2020|access-date=2021-02-06|website=Oxford Learner's Dictionaries}}</ref><ref>{{Cite web|last=|first=|date=|title=GIF {{!}} Definition of GIF by Oxford Dictionary|url=https://www.lexico.com/definition/gif|url-status=dead|archive-url=https://web.archive.org/web/20210213163951/https://www.lexico.com/definition/gif|archive-date=13 February 2021|access-date=2021-02-06|website=[[Lexico]]|language=en}}</ref><ref>{{Cite book|last=|first=|url=https://www.worldcat.org/oclc/729551189|title=Oxford Dictionary of English|publisher=Oxford University Press|year=2010|isbn=9780199571123|editor-last=Stevenson|editor-first=Angus|edition=3rd|location=|pages=|oclc=729551189}}</ref> द [[ न्यू ऑक्सफोर्ड अमेरिकन डिक्शनरी |न्यू ऑक्सफोर्ड अमेरिकन डिक्शनरी]] ने ही दिया {{IPAc-en|dʒ|ɪ|f}} इसके दूसरे संस्करण में<ref>{{cite book |author=<!--Staff writer(s); no by-line.--> |title=The New Oxford American Dictionary |edition=2nd |publisher=Oxford University Press |page=711 |date=2005 }}</ref> लेकिन इसे अपडेट किया {{IPAc-en|dʒ|ɪ|f|,_|g|ɪ|f}} तीसरे संस्करण में है।<ref>{{cite book |title=The New Oxford American Dictionary |edition=3rd |date=2012}} (part of the Macintosh built-in dictionaries).</ref>
उच्चारण पर असहमति के कारण इंटरनेट पर गरमागरम बहस छिड़ गई है। [[ 2013 वेबी अवार्ड्स |2013 वेबी अवार्ड्स]] समारोह में लाइफटाइम अचीवमेंट अवार्ड प्राप्त करने के अवसर पर, विल्हाइट ने सार्वजनिक रूप से हार्ड-जी उच्चारण को अस्वीकार कर दिया;<ref name="BBC20130522" /><ref>{{cite news|last=O'Leary|first=Amy|title=An Honor for the Creator of the GIF|url=http://bits.blogs.nytimes.com/2013/05/21/an-honor-for-the-creator-of-the-gif/?smid=tw-nytimes|newspaper=The New York Times|access-date=22 May 2013|date=21 May 2013|archive-date=22 May 2013|archive-url=https://web.archive.org/web/20130522145554/http://bits.blogs.nytimes.com/2013/05/21/an-honor-for-the-creator-of-the-gif/?smid=tw-nytimes|url-status=live}}</ref><ref name="LAT20131204">{{cite news |url=http://www.latimes.com/nation/shareitnow/la-sh-alex-trebek-gif-pronunciation-jeopardy-20131204,0,1162165.story#axzz2mYD3tX3M |title='Jeopardy' wades into 'GIF' pronunciation battle |work=[[Los Angeles Times]] |access-date=2013-12-04 |first=Daniel |last=Rothberg |date=4 December 2013 |archive-date=6 December 2013 |archive-url=https://web.archive.org/web/20131206004148/http://www.latimes.com/nation/shareitnow/la-sh-alex-trebek-gif-pronunciation-jeopardy-20131204,0,1162165.story#axzz2mYD3tX3M |url-status=live }}</ref> उनके भाषण के कारण [[ ट्विटर | ट्विटर]] पर 17,000 से अधिक पोस्ट और दर्जनों समाचार लेख बने।<ref>{{cite news | url=http://bits.blogs.nytimes.com/2013/05/23/battle-over-gif-pronunciation-erupts/?_r=0 | work=The New York Times | first=Amy | last=O'Leary | title=Battle Over 'GIF' Pronunciation Erupts | date=23 May 2013 | access-date=5 December 2013 | archive-date=16 December 2013 | archive-url=https://web.archive.org/web/20131216170719/http://bits.blogs.nytimes.com/2013/05/23/battle-over-gif-pronunciation-erupts/?_r=0 | url-status=live }}</ref> [[ सफेद घर |सफेद घर]] <ref name="BBC20130522" /> और टीवी कार्यक्रम जॉपार्डी 2013 में भी बहस में सम्मिलित हुए।<ref name="LAT20131204" /> फरवरी 2020 में, जेआईएफ ब्रांड के मालिक, जेएम स्मकर कंपनी ने एनिमेटेड इमेज डेटाबेस और सर्च इंजन [[ Giphy | Giphy]] के साथ पार्टनरशिप करके एक सीमित-संस्करण जेआईएफ बनाम जीआईएफ (#जेआईएफ बनाम जीआईएफ के रूप में [[ हैशटैग |हैशटैग]] किया गया) पीनट बटर का जार जारी किया, जिसमें एक लेबल था सॉफ्ट-जी उच्चारण को विशेष रूप से पीनट बटर को संदर्भित करने के लिए, और जीआईएफ को हार्ड-जी उच्चारण के साथ विशेष रूप से उच्चारित करने के लिए विनोदी रूप से घोषित करना।<ref name="Jif CNN">{{cite web|last=Valinsky|first=Jordan|title=Jif settles the great debate with a GIF peanut butter jar|url=https://www.cnn.com/2020/02/25/business/jif-gif-peanut-butter-trnd/index.html|website=[[CNN]]|access-date=2020-02-25|date=2020-02-25|df=mdy-all|archive-date=25 February 2020|archive-url=https://web.archive.org/web/20200225173743/https://www.cnn.com/2020/02/25/business/jif-gif-peanut-butter-trnd/index.html|url-status=live}}</ref>


=== उच्चारण ===
{{Main|Pronunciation of GIF}}
[[File:White House Tumblr launch image.jpg|thumbnail|right|संयुक्त राज्य अमेरिका के राष्ट्रपति के कार्यकारी कार्यालय के लिए एक [[ Tumblr ]] खाते के लॉन्च की घोषणा करने वाली एक विनोदी छवि एक कठिन g के साथ GIF का उच्चारण करने का सुझाव देती है।]]जीआईएफ के पहले अक्षर का उच्चारण 1990 के दशक से विवादित रहा है। अंग्रेजी में सबसे आम उच्चारण हैं {{IPAc-en|dʒ|ɪ|f|audio=Pronunciation of jif.ogg}} (जिन के रूप में वायस्ड पोस्टएल्वियोलर एफ्रिकेट के साथ) और {{IPAc-en|g|ɪ|f|audio=Pronunciation of gif.ogg}} (उपहार के रूप में वॉइस्ड वेलर प्लोसिव के साथ), पत्र जी द्वारा दर्शाए गए [[ स्वनिम ]] में भिन्न। प्रारूप के रचनाकारों ने परिवर्णी शब्द जीआईएफ का उच्चारण किया {{IPAc-en|dʒ|ɪ|f}}वॉइस्ड पोस्टएल्वियोलर एफ़्रीकेट के साथ, विल्हाइट ने कहा कि वह उच्चारण के लिए अमेरिकी [[ मूंगफली का मक्खन ]] ब्रांड Jif (मूंगफली का मक्खन) को जानबूझकर प्रतिध्वनित करने का इरादा रखता है, और CompuServe के कर्मचारी अक्सर जिफ़ के टेलीविजन विज्ञापनों का एक स्पूफ चुनिंदा डेवलपर्स GIF चुनते हैं।<ref name="olsen">{{cite web | url = http://www.olsenhome.com/gif/ | title = The GIF Pronunciation Page | first = Steve | last = Olsen | access-date = 6 March 2009 | archive-date = 25 February 2009 | archive-url = https://web.archive.org/web/20090225075707/http://www.olsenhome.com/gif/ | url-status = live }}</ref> हालाँकि, इस शब्द का व्यापक रूप से उच्चारण किया जाता है {{IPAc-en|ɡ|ɪ|f}}, वॉयस वेलर स्टॉप के साथ,<ref name=BBC20130522>{{cite news|url=https://www.bbc.co.uk/news/technology-22620473|title=Gif's inventor says ignore dictionaries and say 'Jif'|work=BBC News|date=2013-05-22|access-date=2013-05-22|archive-date=27 June 2018|archive-url=https://web.archive.org/web/20180627083454/https://www.bbc.co.uk/news/technology-22620473|url-status=live}}</ref> और चुनावों ने आम तौर पर दिखाया है कि यह कठिन जी उच्चारण अधिक प्रचलित है।<ref>{{Cite news|last=Buck|first=Stephanie|date=October 21, 2014|title=70 percent of people worldwide pronounce ''GIF'' with a hard ''g''|work=[[Mashable]]|url=https://mashable.com/archive/mispronounced-words-tech|access-date=December 24, 2021|archive-date=December 23, 2021|archive-url=https://web.archive.org/web/20211223162234/https://mashable.com/archive/mispronounced-words-tech|url-status=live}}</ref><ref>{{Cite journal |last=van der Meulen |first=Marten |date=May 22, 2019 |title=Obama, SCUBA or gift?: Authority and argumentation in online discussion on the pronunciation of ''GIF'' |url=https://www.cambridge.org/core/journals/english-today/article/obama-scuba-or-gift/0057DB6B7B1FAABBE3112342FE14E27D |journal=[[English Today]] |volume=36 |issue=1 |pages=45–50}}</ref>
डिक्शनरी.कॉम<ref>{{cite web |url=http://dictionary.reference.com/browse/GIF |title=GIF |work=The American Heritage Abbreviations Dictionary, Third Edition |publisher=Houghton Mifflin Company |year=2005 |access-date=2007-04-15 |archive-date=3 September 2011 |archive-url=https://web.archive.org/web/20110903171835/http://dictionary.reference.com/browse/GIF |url-status=live }}</ref> दोनों उच्चारणों को उद्धृत करता है, संकेत करता है {{IPAc-en|dʒ|ɪ|f}} प्राथमिक उच्चारण के रूप में, जबकि कैम्ब्रिज डिक्शनरी ऑफ अमेरिकन इंग्लिश<ref name="cambridgedict">{{cite web |url=http://dictionary.cambridge.org/us/dictionary/business-english/gif?q=gif |title=GIF |work=The Cambridge Dictionary of American English |publisher=Cambridge University Press |access-date=2014-02-19 |archive-date=27 February 2014 |archive-url=https://web.archive.org/web/20140227180258/http://dictionary.cambridge.org/us/dictionary/business-english/gif?q=gif |url-status=live }}</ref> केवल हार्ड-जी उच्चारण प्रदान करता है। मेरियम-वेबस्टर का कॉलेजिएट डिक्शनरी<ref>{{cite web|title=Gif - Definition from the Merriam-Webster Dictionary|url=http://www.merriam-webster.com/dictionary/gif|work=Merriam-Webster Dictionary|publisher=Merriam-Webster, Incorporated|access-date=6 June 2013|archive-date=22 October 2013|archive-url=https://web.archive.org/web/20131022062546/http://www.merriam-webster.com/dictionary/gif|url-status=live}}</ref> और ऑक्सफोर्ड डिक्शनरी दोनों उच्चारणों का हवाला देते हैं, लेकिन कठिन जी को पहले रखें: {{IPAc-en|g|ɪ|f|,_|dʒ|ɪ|f}}.<ref name="oxforddict">{{cite web|url=http://www.oxforddictionaries.com/definition/english/जीआईएफ|title=जीआईएफ|work=Oxford Dictionaries Online|publisher=Oxford University Press|access-date=7 October 2014|archive-date=12 October 2014|archive-url=https://web.archive.org/web/20141012205125/http://www.oxforddictionaries.com/definition/english/जीआईएफ|url-status=dead}}</ref><ref>{{Cite web|last=|first=|date=|title=gif noun - Definition, pictures, pronunciation and usage notes {{!}} Oxford Advanced Learner's Dictionary|url=https://www.oxfordlearnersdictionaries.com/definition/english/gif|url-status=live|archive-url=https://web.archive.org/web/20201124151618/https://www.oxfordlearnersdictionaries.com/definition/english/gif|archive-date=24 November 2020|access-date=2021-02-06|website=Oxford Learner's Dictionaries}}</ref><ref>{{Cite web|last=|first=|date=|title=GIF {{!}} Definition of GIF by Oxford Dictionary|url=https://www.lexico.com/definition/gif|url-status=dead|archive-url=https://web.archive.org/web/20210213163951/https://www.lexico.com/definition/gif|archive-date=13 February 2021|access-date=2021-02-06|website=[[Lexico]]|language=en}}</ref><ref>{{Cite book|last=|first=|url=https://www.worldcat.org/oclc/729551189|title=Oxford Dictionary of English|publisher=Oxford University Press|year=2010|isbn=9780199571123|editor-last=Stevenson|editor-first=Angus|edition=3rd|location=|pages=|oclc=729551189}}</ref> द [[ न्यू ऑक्सफोर्ड अमेरिकन डिक्शनरी ]] ने ही दिया {{IPAc-en|dʒ|ɪ|f}} इसके दूसरे संस्करण में<ref>{{cite book |author=<!--Staff writer(s); no by-line.--> |title=The New Oxford American Dictionary |edition=2nd |publisher=Oxford University Press |page=711 |date=2005 }}</ref> लेकिन इसे अपडेट किया {{IPAc-en|dʒ|ɪ|f|,_|g|ɪ|f}} तीसरे संस्करण में।<ref>{{cite book |title=The New Oxford American Dictionary |edition=3rd |date=2012}} (part of the Macintosh built-in dictionaries).</ref>
उच्चारण पर असहमति के कारण इंटरनेट पर गरमागरम बहस छिड़ गई है। [[ 2013 वेबी अवार्ड्स ]] समारोह में लाइफटाइम अचीवमेंट अवार्ड प्राप्त करने के अवसर पर, विल्हाइट ने सार्वजनिक रूप से हार्ड-जी उच्चारण को अस्वीकार कर दिया;<ref name=BBC20130522 /><ref>{{cite news|last=O'Leary|first=Amy|title=An Honor for the Creator of the GIF|url=http://bits.blogs.nytimes.com/2013/05/21/an-honor-for-the-creator-of-the-gif/?smid=tw-nytimes|newspaper=The New York Times|access-date=22 May 2013|date=21 May 2013|archive-date=22 May 2013|archive-url=https://web.archive.org/web/20130522145554/http://bits.blogs.nytimes.com/2013/05/21/an-honor-for-the-creator-of-the-gif/?smid=tw-nytimes|url-status=live}}</ref><ref name=LAT20131204>{{cite news |url=http://www.latimes.com/nation/shareitnow/la-sh-alex-trebek-gif-pronunciation-jeopardy-20131204,0,1162165.story#axzz2mYD3tX3M |title='Jeopardy' wades into 'GIF' pronunciation battle |work=[[Los Angeles Times]] |access-date=2013-12-04 |first=Daniel |last=Rothberg |date=4 December 2013 |archive-date=6 December 2013 |archive-url=https://web.archive.org/web/20131206004148/http://www.latimes.com/nation/shareitnow/la-sh-alex-trebek-gif-pronunciation-jeopardy-20131204,0,1162165.story#axzz2mYD3tX3M |url-status=live }}</ref> उनके भाषण के कारण [[ ट्विटर ]] पर 17,000 से अधिक पोस्ट और दर्जनों समाचार लेख बने।<ref>{{cite news | url=http://bits.blogs.nytimes.com/2013/05/23/battle-over-gif-pronunciation-erupts/?_r=0 | work=The New York Times | first=Amy | last=O'Leary | title=Battle Over 'GIF' Pronunciation Erupts | date=23 May 2013 | access-date=5 December 2013 | archive-date=16 December 2013 | archive-url=https://web.archive.org/web/20131216170719/http://bits.blogs.nytimes.com/2013/05/23/battle-over-gif-pronunciation-erupts/?_r=0 | url-status=live }}</ref> [[ सफेद घर ]]<ref name=BBC20130522 />और टीवी कार्यक्रम जॉपार्डी! 2013 में भी बहस में शामिल हुए।<ref name=LAT20131204 />फरवरी 2020 में, Jif ब्रांड के मालिक, J.M. Smucker कंपनी ने एनिमेटेड इमेज डेटाबेस और सर्च इंजन [[ Giphy ]] के साथ पार्टनरशिप करके एक सीमित-संस्करण Jif बनाम GIF (#JIFvsGIF के रूप में [[ हैशटैग ]] किया गया) पीनट बटर का जार जारी किया, जिसमें एक लेबल था सॉफ्ट-जी उच्चारण को विशेष रूप से पीनट बटर को संदर्भित करने के लिए, और जीआईएफ को हार्ड-जी उच्चारण के साथ विशेष रूप से उच्चारित करने के लिए विनोदी रूप से घोषित करना।<ref name="Jif CNN">{{cite web|last=Valinsky|first=Jordan|title=Jif settles the great debate with a GIF peanut butter jar|url=https://www.cnn.com/2020/02/25/business/jif-gif-peanut-butter-trnd/index.html|website=[[CNN]]|access-date=2020-02-25|date=2020-02-25|df=mdy-all|archive-date=25 February 2020|archive-url=https://web.archive.org/web/20200225173743/https://www.cnn.com/2020/02/25/business/jif-gif-peanut-butter-trnd/index.html|url-status=live}}</ref>




== उपयोग ==
== उपयोग ==
जीआईएफ लोगो जैसे रंगों की सीमित संख्या के साथ तीक्ष्ण धार वाली रेखा कला के लिए उपयुक्त हैं। यह प्रारूप के दोषरहित संपीड़न का लाभ उठाता है, जो अच्छी तरह से परिभाषित किनारों के साथ समान रंग के समतल क्षेत्रों का समर्थन करता है।<ref name=karunya2012>{{cite conference|chapter=Comparison of platform independent electronic document distribution techniques|first1=D.R.|last1=Marur|first2=V.|last2=Bhaskar|title=2012 International Conference on Devices, Circuits and Systems (ICDCS)|date=March 2012|conference=International Conference on Devices, Circuits and Systems (ICDCS)|conference-url=http://www.ieee.org/conferences_events/conferences/conferencedetails/index.htm?Conf_ID=19586|book-title=Devices, Circuits and Systems (ICDCS)|publisher=IEEE|location=Karunya University; Coimbatore, India|pages=297–301|isbn=9781457715457|doi=10.1109/ICDCSyst.2012.6188724|access-date=11 March 2015|archive-date=2 July 2017|url=http://www.ieee.org/conferences_events/conferences/conferencedetails/index.htm?Conf_ID=19586|archive-url=https://web.archive.org/web/20170702070125/http://www.ieee.org/conferences_events/conferences/conferencedetails/index.htm?Conf_ID=19586|url-status=live}}</ref> उनका उपयोग गेम्स के लिए लो-कलर [[ स्प्राइट (कंप्यूटर ग्राफिक्स) ]] डेटा को स्टोर करने के लिए भी किया जा सकता है।<ref name=proandroid11>{{cite book|author1=S. Chin|author2=D. Iverson|author3=O. Campesato|author4=P. Trani|title=Pro Android Flash|date=2011|publisher=Apress|location=New York|isbn=9781430232315|page=350|url=http://yuliana.lecturer.pens.ac.id/Android/Buku/Pro-Android-Flash.pdf|access-date=11 March 2015|archive-date=2 April 2015|archive-url=https://web.archive.org/web/20150402110502/http://yuliana.lecturer.pens.ac.id/Android/Buku/Pro-Android-Flash.pdf|url-status=live}}</ref> जीआईएफ का उपयोग छोटे एनिमेशन और कम-रिज़ॉल्यूशन वीडियो क्लिप के लिए किया जा सकता है, या शब्दों का उपयोग करने के बजाय भावनाओं और भावनाओं को व्यक्त करने के लिए उपयोग किए जाने वाले ऑनलाइन मैसेजिंग में प्रतिक्रियाओं के रूप में किया जा सकता है। वे Tumblr जैसे सोशल मीडिया प्लेटफॉर्म पर लोकप्रिय हैं,<ref>{{cite journal |last1=Bakhshi |first1=Saeideh |last2=Shamma |first2=David A. |last3=Kennedy |first3=Lyndon |last4=Song |first4=Yale |last5=de Juan |first5=Paloma |last6=Kaye |first6=Joseph "Jofish" |title=Fast, Cheap, and Good: Why Animated GIFs Engage Us |journal=Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems |date=7 May 2016 |pages=575–586 |doi=10.1145/2858036.2858532 |s2cid=7417853 |url=https://doi.org/10.1145/2858036.2858532 |access-date=17 August 2022}}</ref> फेसबुक और ट्विटर।<ref>{{cite journal |last1=Highfield |first1=Tim |last2=Leaver |first2=Tama |title=Instagrammatics and digital methods: studying visual social media, from selfies and GIFs to memes and emoji |journal=Communication Research and Practice |date=2016 |volume=2 |issue=1 |pages=47–62 |doi=10.1080/22041451.2016.1155332 |s2cid=148538216 |url=https://doi.org/10.1080/22041451.2016.1155332 |access-date=17 August 2022}}</ref>
जीआईएफ लोगो जैसे रंगों की सीमित संख्या के साथ तीक्ष्ण धार वाली रेखा कला के लिए उपयुक्त हैं। यह प्रारूप के दोषरहित कम्प्रेशन का लाभ उठाता है, जो अच्छी तरह से परिभाषित किनारों के साथ समान रंग के समतल क्षेत्रों का समर्थन करता है।<ref name=karunya2012>{{cite conference|chapter=Comparison of platform independent electronic document distribution techniques|first1=D.R.|last1=Marur|first2=V.|last2=Bhaskar|title=2012 International Conference on Devices, Circuits and Systems (ICDCS)|date=March 2012|conference=International Conference on Devices, Circuits and Systems (ICDCS)|conference-url=http://www.ieee.org/conferences_events/conferences/conferencedetails/index.htm?Conf_ID=19586|book-title=Devices, Circuits and Systems (ICDCS)|publisher=IEEE|location=Karunya University; Coimbatore, India|pages=297–301|isbn=9781457715457|doi=10.1109/ICDCSyst.2012.6188724|access-date=11 March 2015|archive-date=2 July 2017|url=http://www.ieee.org/conferences_events/conferences/conferencedetails/index.htm?Conf_ID=19586|archive-url=https://web.archive.org/web/20170702070125/http://www.ieee.org/conferences_events/conferences/conferencedetails/index.htm?Conf_ID=19586|url-status=live}}</ref> उनका उपयोग गेम्स के लिए लो-कलर [[ स्प्राइट (कंप्यूटर ग्राफिक्स) |स्प्राइट (कंप्यूटर ग्राफिक्स)]] डेटा को स्टोर करने के लिए भी किया जा सकता है।<ref name=proandroid11>{{cite book|author1=S. Chin|author2=D. Iverson|author3=O. Campesato|author4=P. Trani|title=Pro Android Flash|date=2011|publisher=Apress|location=New York|isbn=9781430232315|page=350|url=http://yuliana.lecturer.pens.ac.id/Android/Buku/Pro-Android-Flash.pdf|access-date=11 March 2015|archive-date=2 April 2015|archive-url=https://web.archive.org/web/20150402110502/http://yuliana.lecturer.pens.ac.id/Android/Buku/Pro-Android-Flash.pdf|url-status=live}}</ref> जीआईएफ का उपयोग छोटे एनिमेशन और कम-रिज़ॉल्यूशन वीडियो क्लिप के लिए किया जा सकता है, या शब्दों का उपयोग करने के बदले में भावनाओं और भावनाओं को व्यक्त करने के लिए उपयोग किए जाने वाले ऑनलाइन मैसेजिंग में प्रतिक्रियाओं के रूप में किया जा सकता है। वे सोशल मीडिया प्लेटफॉर्म जैसे टम्बलर, फेसबुक और ट्विटर पर लोकप्रिय हैं।<ref>{{cite journal |last1=Bakhshi |first1=Saeideh |last2=Shamma |first2=David A. |last3=Kennedy |first3=Lyndon |last4=Song |first4=Yale |last5=de Juan |first5=Paloma |last6=Kaye |first6=Joseph "Jofish" |title=Fast, Cheap, and Good: Why Animated GIFs Engage Us |journal=Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems |date=7 May 2016 |pages=575–586 |doi=10.1145/2858036.2858532 |s2cid=7417853 |url=https://doi.org/10.1145/2858036.2858532 |access-date=17 August 2022}}</ref><ref>{{cite journal |last1=Highfield |first1=Tim |last2=Leaver |first2=Tama |title=Instagrammatics and digital methods: studying visual social media, from selfies and GIFs to memes and emoji |journal=Communication Research and Practice |date=2016 |volume=2 |issue=1 |pages=47–62 |doi=10.1080/22041451.2016.1155332 |s2cid=148538216 |url=https://doi.org/10.1080/22041451.2016.1155332 |access-date=17 August 2022}}</ref>




== फ़ाइल प्रारूप ==
== फ़ाइल प्रारूप ==
संकल्पनात्मक रूप से, एक जीआईएफ फ़ाइल एक निश्चित आकार के ग्राफिकल क्षेत्र (तार्किक स्क्रीन) का वर्णन करती है जो शून्य या अधिक छवियों से भरा हुआ है। कई जीआईएफ फाइलों में एक ही छवि होती है जो पूरी तार्किक स्क्रीन भरती है। अन्य तार्किक स्क्रीन को अलग-अलग उप-छवियों में विभाजित करते हैं। छवियां एनिमेटेड जीआईएफ फ़ाइल में एनीमेशन फ्रेम के रूप में भी काम कर सकती हैं, लेकिन फिर से इन्हें पूरी लॉजिकल स्क्रीन भरने की जरूरत नहीं है।
संकल्पनात्मक रूप से, एक जीआईएफ फ़ाइल एक निश्चित आकार के ग्राफिकल क्षेत्र ("तार्किक स्क्रीन") का वर्णन करती है जो शून्य या अधिक "छवियों" से भरा होता है। कई जीआईएफ फाइलों में एक ही छवि होती है जो संपूर्ण तार्किक स्क्रीन को भर देती है। अन्य लॉजिक स्क्रीन को अलग-अलग उप-छवियों में विभाजित करते हैं। छवियां एनिमेटेड जीआईएफ फ़ाइल में एनीमेशन फ्रेम के रूप में भी काम कर सकती हैं, परन्तु फिर से इन्हें पूरी तार्किक स्क्रीन भरने की आवश्यकता नहीं है।


जीआईएफ फाइलें एक निश्चित-लंबाई वाले हेडर (जीआईएफ87ए या जीआईएफ89ए) से शुरू होती हैं, जो संस्करण देती हैं, इसके बाद एक निश्चित-लंबाई लॉजिकल स्क्रीन डिस्क्रिप्टर पिक्सेल आयाम और लॉजिकल स्क्रीन की अन्य विशेषताएं देती हैं। स्क्रीन डिस्क्रिप्टर ग्लोबल कलर टेबल (जीसीटी) की उपस्थिति और आकार को भी निर्दिष्ट कर सकता है, जो मौजूद होने पर आगे आता है।
जीआईएफ फाइलें एक निश्चित-लंबाई वाले हेडर (जीआईएफ87ए या जीआईएफ89ए) से आरंभ होती हैं, जो संस्करण देती हैं, इसके बाद एक निश्चित-लंबाई लॉजिकल स्क्रीन डिस्क्रिप्टर पिक्सेल आयाम और लॉजिकल स्क्रीन की अन्य विशेषताएं देती हैं। स्क्रीन डिस्क्रिप्टर ग्लोबल कलर टेबल (जीसीटी)की उपस्थिति और आकार को भी निर्दिष्ट कर सकता है, जिसे एक उपस्थित होने पर लागू किया जाता है।


इसके बाद, फ़ाइल को खंडों में विभाजित किया जाता है, प्रत्येक को 1-बाइट प्रहरी द्वारा प्रस्तुत किया जाता है:
इसके बाद, फ़ाइल को खंडों में विभाजित किया जाता है, प्रत्येक को 1-बाइट प्रहरी द्वारा प्रस्तुत किया जाता है:
* एक छवि (0x2C द्वारा प्रस्तुत, एक ASCII अल्पविराम {{code|','}})
* छवि (0x2C द्वारा प्रस्तुत, एक ASCII अल्पविराम {{code|','}})
* एक एक्सटेंशन ब्लॉक (0x21 द्वारा पेश किया गया, एक ASCII विस्मयादिबोधक बिंदु {{code|'!'}})
* एक्सटेंशन ब्लॉक (0x21 द्वारा पेश किया गया, एक ASCII विस्मयादिबोधक बिंदु {{code|'!'}})
* ट्रेलर (मूल्य 0x3B का एक सिंगल बाइट, एक ASCII अर्धविराम {{code|';'}}), जो फ़ाइल का अंतिम बाइट होना चाहिए।
* ट्रेलर (मूल्य 0x3B का एक सिंगल बाइट, एक ASCII अर्धविराम {{code|';'}}), जो फ़ाइल का अंतिम बाइट होना चाहिए।


एक छवि एक निश्चित-लंबाई छवि डिस्क्रिप्टर से शुरू होती है, जो स्थानीय रंग तालिका की उपस्थिति और आकार निर्दिष्ट कर सकती है (जो मौजूद होने पर आगे आती है)। छवि डेटा इस प्रकार है: एक बाइट अनएन्कोडेड प्रतीकों की बिट चौड़ाई (जो कि कम से कम 2 बिट चौड़ा होना चाहिए, द्वि-रंग छवियों के लिए भी होना चाहिए), इसके बाद उप-ब्लॉकों की एक लिंक की गई सूची जिसमें LZW-एन्कोडेड डेटा शामिल है।
छवि एक निश्चित-लंबाई छवि डिस्क्रिप्टर से आरंभ होती है, जो स्थानीय रंग तालिका की उपस्थिति और आकार निर्दिष्ट कर सकती है (जो उपस्थित होने पर आगे आती है)। छवि डेटा इस प्रकार है: एक बाइट अनएन्कोडेड प्रतीकों की बिट चौड़ाई (जो कि कम से कम 2 बिट चौड़ा होना चाहिए, द्वि-रंग छवियों के लिए भी होना चाहिए), इसके बाद उप-ब्लॉकों की एक लिंक की गई सूची जिसमें एलजेडडब्ल्यू-एन्कोडेड डेटा सम्मिलित है।


एक्सटेंशन ब्लॉक (ब्लॉक जो 87a परिभाषा को पहले से ही 87a कल्पना में परिभाषित तंत्र के माध्यम से विस्तारित करते हैं) में प्रहरी, एक्सटेंशन के प्रकार को निर्दिष्ट करने वाला एक अतिरिक्त बाइट और एक्सटेंशन डेटा के साथ उप-ब्लॉकों की एक लिंक्ड सूची शामिल है। एक्सटेंशन ब्लॉक जो एक छवि को संशोधित करते हैं (जैसे ग्राफिक कंट्रोल एक्सटेंशन जो वैकल्पिक एनीमेशन विलंब समय और वैकल्पिक पारदर्शी पृष्ठभूमि रंग निर्दिष्ट करता है) को तुरंत उस छवि के साथ सेगमेंट से पहले होना चाहिए जिसका वे संदर्भ देते हैं।
एक्सटेंशन ब्लॉक (ब्लॉक जो 87a परिभाषा को पहले से ही 87a कल्पना में परिभाषित तंत्र के माध्यम से विस्तारित करते हैं) में प्रहरी, एक्सटेंशन के प्रकार को निर्दिष्ट करने वाला एक अतिरिक्त बाइट और एक्सटेंशन डेटा के साथ उप-ब्लॉकों की एक लिंक्ड सूची सम्मिलित है। एक्सटेंशन ब्लॉक जो एक छवि को संशोधित करते हैं (जैसे ग्राफिक कंट्रोल एक्सटेंशन जो वैकल्पिक एनीमेशन विलंब समय और वैकल्पिक पारदर्शी पृष्ठभूमि रंग निर्दिष्ट करता है) को तुरंत उस छवि के साथ सेगमेंट से पहले होना चाहिए जिसका वे संदर्भ देते हैं।


छवि डेटा और एक्सटेंशन ब्लॉक द्वारा उपयोग की जाने वाली लिंक्ड सूचियों में उप-ब्लॉकों की श्रृंखला शामिल होती है, प्रत्येक उप-ब्लॉक एक बाइट से शुरू होता है जो उप-ब्लॉक (1 से 255) में बाद के डेटा बाइट्स की संख्या देता है। उप-ब्लॉकों की श्रृंखला एक खाली उप-ब्लॉक (एक 0 बाइट) द्वारा समाप्त होती है।
छवि डेटा और एक्सटेंशन ब्लॉक द्वारा उपयोग की जाने वाली लिंक्ड सूचियों में उप-ब्लॉकों की श्रृंखला सम्मिलित होती है, प्रत्येक उप-ब्लॉक एक बाइट से आरंभ होता है जो उप-ब्लॉक (1 से 255) में बाद के डेटा बाइट्स की संख्या देता है। उप-ब्लॉकों की श्रृंखला एक खाली उप-ब्लॉक (एक 0 बाइट) द्वारा समाप्त होती है।


यह संरचना फ़ाइल को पार्स करने की अनुमति देती है, भले ही सभी भाग समझ में न आए हों। 87a चिह्नित GIF में एक्सटेंशन ब्लॉक हो सकते हैं; आशय यह है कि एक डिकोडर फ़ाइल को एक्सटेंशन में शामिल सुविधाओं के बिना पढ़ और प्रदर्शित कर सकता है जिसे वह समझ नहीं पाता है।
यह संरचना फ़ाइल को पार्स करने की अनुमति देती है, भले ही सभी भाग समझ में न आए हों। 87a चिह्नित जीआईएफ में एक्सटेंशन ब्लॉक हो सकते हैं; आशय यह है कि एक डिकोडर फ़ाइल को एक्सटेंशन में सम्मिलित सुविधाओं के बिना पढ़ और प्रदर्शित कर सकता है जिसे वह समझ नहीं पाता है।


फ़ाइल प्रारूप का पूरा विवरण GIF विनिर्देशन में शामिल है।<ref name="89aSpec"/>
फ़ाइल प्रारूप का पूरा विवरण जीआईएफ विनिर्देशन में सम्मिलित है।<ref name="89aSpec"/>




== पैलेट्स ==
== पैलेट्स ==
[[File:Sunflower as gif websafe.gif|thumb|right|[[ वेब-सुरक्षित रंग ]]ों के साथ सहेजी गई GIF छवि का एक उदाहरण | वेब-सुरक्षित पैलेट और फ्लोयड-स्टाइनबर्ग [[ तड़पना ]]िंग | फ़्लॉइड-स्टाइनबर्ग विधि का उपयोग करके। छवि में रंगों की संख्या कम होने के कारण, प्रदर्शन समस्याएँ हैं।]]जीआईएफ पैलेट-आधारित है: फ़ाइल में एक छवि (एक फ्रेम) में उपयोग किए जाने वाले रंगों में उनके [[ आरजीबी ]] मान एक पैलेट (कंप्यूटिंग) में परिभाषित होते हैं जो 256 प्रविष्टियों तक रख सकते हैं, और छवि के लिए डेटा उनके द्वारा रंगों को संदर्भित करता है पैलेट तालिका में सूचकांक (0-255)। पैलेट में रंग परिभाषाएँ लाखों रंगों के रंग स्थान से खींची जा सकती हैं (2<sup>24</sup> शेड्स, प्रत्येक प्राथमिक के लिए 8 बिट्स), लेकिन एक फ्रेम द्वारा उपयोग किए जा सकने वाले रंगों की अधिकतम संख्या 256 है। GIF विकसित होने पर यह सीमा उचित लगती थी क्योंकि कुछ लोग एक साथ अधिक रंगों को प्रदर्शित करने के लिए हार्डवेयर का खर्च उठा सकते थे। सरल ग्राफिक्स, रेखा चित्र, कार्टून और ग्रे-स्केल फ़ोटोग्राफ़ को आमतौर पर 256 से कम रंगों की आवश्यकता होती है।
[[File:Sunflower as gif websafe.gif|thumb|right|[[ वेब-सुरक्षित रंग ]]ों के साथ सहेजी गई GIF छवि का एक उदाहरण | वेब-सुरक्षित पैलेट और फ्लोयड-स्टाइनबर्ग [[ तड़पना ]]िंग | फ़्लॉइड-स्टाइनबर्ग विधि का उपयोग करके। छवि में रंगों की संख्या कम होने के कारण, प्रदर्शन समस्याएँ हैं।]]जीआईएफ पैलेट-आधारित है: फ़ाइल में एक छवि (एक फ्रेम) में उपयोग किए जाने वाले रंगों में उनके [[ आरजीबी ]] मान एक पैलेट (कंप्यूटिंग) में परिभाषित होते हैं जो 256 प्रविष्टियों तक रख सकते हैं, और छवि के लिए डेटा उनके द्वारा रंगों को संदर्भित करता है पैलेट तालिका में सूचकांक (0-255)। पैलेट में रंग परिभाषाएँ लाखों रंगों के रंग स्थान से खींची जा सकती हैं (2<sup>24</sup> शेड्स, प्रत्येक प्राथमिक के लिए 8 बिट्स), लेकिन एक फ्रेम द्वारा उपयोग किए जा सकने वाले रंगों की अधिकतम संख्या 256 है। जीआईएफ विकसित होने पर यह सीमा उचित लगती थी क्योंकि कुछ लोग एक साथ अधिक रंगों को प्रदर्शित करने के लिए हार्डवेयर का खर्च उठा सकते थे। सरल ग्राफिक्स, रेखा चित्र, कार्टून और ग्रे-स्केल फ़ोटोग्राफ़ को आमतौर पर 256 से कम रंगों की आवश्यकता होती है।


प्रत्येक फ़्रेम एक इंडेक्स को एक पारदर्शी पृष्ठभूमि रंग के रूप में निर्दिष्ट कर सकता है: इस इंडेक्स को असाइन किया गया कोई भी पिक्सेल पृष्ठभूमि से उसी स्थिति में पिक्सेल का रंग लेता है, जो एनीमेशन के पिछले फ्रेम द्वारा निर्धारित किया जा सकता है।
प्रत्येक फ़्रेम एक इंडेक्स को एक पारदर्शी पृष्ठभूमि रंग के रूप में निर्दिष्ट कर सकता है: इस इंडेक्स को असाइन किया गया कोई भी पिक्सेल पृष्ठभूमि से उसी स्थिति में पिक्सेल का रंग लेता है, जो एनीमेशन के पिछले फ्रेम द्वारा निर्धारित किया जा सकता है।


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


ग्राफिकल वेब ब्राउज़र के शुरुआती दिनों में{{when|date=March 2015}}, 8-बिट बफ़र्स (केवल 256 रंगों की अनुमति) वाले ग्राफ़िक्स कार्ड सामान्य थे और वेब-सुरक्षित रंगों का उपयोग करके GIF छवियां बनाना काफी सामान्य था।{{according_to_whom|date=March 2015}} इसने पूर्वानुमेय प्रदर्शन सुनिश्चित किया, लेकिन रंगों की पसंद को गंभीर रूप से सीमित कर दिया। जब 24-बिट रंग आदर्श बन गया, तो इसके बजाय पैलेट को अलग-अलग छवियों के लिए इष्टतम रंगों से भरा जा सकता था।
ग्राफिकल वेब ब्राउज़र के शुरुआती दिनों में, 8-बिट बफ़र्स (केवल 256 रंगों की अनुमति) वाले ग्राफ़िक्स कार्ड सामान्य थे और वेब-सुरक्षित रंगों का उपयोग करके जीआईएफ छवियां बनाना काफी सामान्य था। इसने पूर्वानुमेय प्रदर्शन सुनिश्चित किया, लेकिन रंगों की पसंद को गंभीर रूप से सीमित कर दिया। जब 24-बिट रंग आदर्श बन गया, तो इसके बदले में पैलेट को अलग-अलग छवियों के लिए इष्टतम रंगों से भरा जा सकता था।


छोटी छवियों के लिए एक छोटी रंग तालिका पर्याप्त हो सकती है, और रंग तालिका को छोटा रखने से फ़ाइल को तेज़ी से डाउनलोड किया जा सकता है। 87a और 89a दोनों विनिर्देश 2 की रंग तालिका की अनुमति देते हैं<sup>1 से 8 तक किसी भी n के लिए n</sup> रंग। अधिकांश ग्राफ़िक्स एप्लिकेशन इनमें से किसी भी तालिका आकार के साथ GIF छवियों को पढ़ेंगे और प्रदर्शित करेंगे; लेकिन कुछ चित्र बनाते समय सभी आकारों का समर्थन नहीं करते हैं। 2, 16 और 256 रंगों की तालिकाएँ व्यापक रूप से समर्थित हैं।
छोटी छवियों के लिए एक छोटी रंग तालिका पर्याप्त हो सकती है, और रंग तालिका को छोटा रखने से फ़ाइल को तेज़ी से डाउनलोड किया जा सकता है। 87a और 89a दोनों विनिर्देश 2 की रंग तालिका की अनुमति देते हैं<sup>1 से 8 तक किसी भी n के लिए n</sup> रंग। अधिकांश ग्राफ़िक्स एप्लिकेशन इनमें से किसी भी तालिका आकार के साथ जीआईएफ छवियों को पढ़ेंगे और प्रदर्शित करेंगे; लेकिन कुछ चित्र बनाते समय सभी आकारों का समर्थन नहीं करते हैं। 2, 16 और 256 रंगों की तालिकाएँ व्यापक रूप से समर्थित हैं।


=== असली रंग ===
=== असली रंग ===
हालांकि जीआईएफ का इस्तेमाल कलर डेप्थ#ट्रू कलर (24-बिट) इमेज के लिए लगभग कभी नहीं किया जाता है, ऐसा करना संभव है।<ref name=aminet>{{cite web |url=http://uk.aminet.net/docs/misc/GIF24.readme |title=GIF 24 Bit (truecolor) extensions |author=Andreas Kleinert |year=2007 |access-date=23 March 2012 |archive-url=https://web.archive.org/web/20120316215949/http://uk.aminet.net/docs/misc/GIF24.readme |archive-date=16 March 2012}}</ref><ref name=philhoward>{{cite web |url=http://phil.ipal.org/tc.html |title=True-Color GIF Example |author=Philip Howard |access-date=23 March 2012 |archive-url=https://web.archive.org/web/20150222123613/http://phil.ipal.org/tc.html |archive-date=22 February 2015}}</ref> एक जीआईएफ छवि में कई छवि ब्लॉक शामिल हो सकते हैं, जिनमें से प्रत्येक का अपना 256-रंग पैलेट हो सकता है, और पूर्ण छवि बनाने के लिए ब्लॉक को टाइल किया जा सकता है। वैकल्पिक रूप से, GIF89a विनिर्देश ने एक पारदर्शी रंग का विचार पेश किया जहां प्रत्येक छवि ब्लॉक में 255 दृश्यमान रंगों के साथ-साथ एक पारदर्शी रंग का अपना पैलेट शामिल हो सकता है। ऊपर की परतों के पारदर्शी भागों के माध्यम से दिखाई देने वाली प्रत्येक परत के दृश्य भाग के साथ छवि ब्लॉकों को लेयर करके एक पूर्ण छवि बनाई जा सकती है।
हालांकि जीआईएफ का इस्तेमाल कलर डेप्थ#ट्रू कलर (24-बिट) इमेज के लिए लगभग कभी नहीं किया जाता है, ऐसा करना संभव है।<ref name=aminet>{{cite web |url=http://uk.aminet.net/docs/misc/GIF24.readme |title=GIF 24 Bit (truecolor) extensions |author=Andreas Kleinert |year=2007 |access-date=23 March 2012 |archive-url=https://web.archive.org/web/20120316215949/http://uk.aminet.net/docs/misc/GIF24.readme |archive-date=16 March 2012}}</ref><ref name=philhoward>{{cite web |url=http://phil.ipal.org/tc.html |title=True-Color GIF Example |author=Philip Howard |access-date=23 March 2012 |archive-url=https://web.archive.org/web/20150222123613/http://phil.ipal.org/tc.html |archive-date=22 February 2015}}</ref> जीआईएफ छवि में कई छवि ब्लॉक सम्मिलित हो सकते हैं, जिनमें से प्रत्येक का अपना 256-रंग पैलेट हो सकता है, और पूर्ण छवि बनाने के लिए ब्लॉक को टाइल किया जा सकता है। वैकल्पिक रूप से, जीआईएफ89a विनिर्देश ने एक पारदर्शी रंग का विचार पेश किया जहां प्रत्येक छवि ब्लॉक में 255 दृश्यमान रंगों के साथ-साथ एक पारदर्शी रंग का अपना पैलेट सम्मिलित हो सकता है। ऊपर की परतों के पारदर्शी भागों के माध्यम से दिखाई देने वाली प्रत्येक परत के दृश्य भाग के साथ छवि ब्लॉकों को लेयर करके एक पूर्ण छवि बनाई जा सकती है।
[[File:SmallFullColourGIF.gif|thumb|right|256 रंगों की विशिष्ट सीमा से अधिक प्रदर्शित करने की तकनीक को दर्शाने वाला एक एनिमेटेड GIF]]GIF के रूप में पूर्ण-रंग वाली छवि प्रस्तुत करने के लिए, मूल छवि को छोटे क्षेत्रों में विभाजित किया जाना चाहिए जिसमें 255 या 256 से अधिक विभिन्न रंग न हों। इन क्षेत्रों में से प्रत्येक को तब अपने स्वयं के स्थानीय पैलेट के साथ एक अलग छवि ब्लॉक के रूप में संग्रहीत किया जाता है और जब छवि ब्लॉक एक साथ प्रदर्शित होते हैं (या तो टाइलिंग द्वारा या आंशिक रूप से पारदर्शी छवि ब्लॉकों को परत करके), पूर्ण, पूर्ण-रंग वाली छवि दिखाई देती है। उदाहरण के लिए, किसी छवि को 16 गुणा 16 पिक्सेल (कुल 256 पिक्सेल) की टाइलों में तोड़ना सुनिश्चित करता है कि किसी भी टाइल में 256 रंगों की स्थानीय पैलेट सीमा से अधिक नहीं है, हालाँकि बड़ी टाइलों का उपयोग किया जा सकता है और समान रंगों का विलय हो जाता है जिसके परिणामस्वरूप रंग में कुछ कमी आती है जानकारी।<ref name=aminet />
[[File:SmallFullColourGIF.gif|thumb|right|256 रंगों की विशिष्ट सीमा से अधिक प्रदर्शित करने की तकनीक को दर्शाने वाला एक एनिमेटेड जीआईएफ]]जीआईएफ के रूप में पूर्ण-रंग वाली छवि प्रस्तुत करने के लिए, मूल छवि को छोटे क्षेत्रों में विभाजित किया जाना चाहिए जिसमें 255 या 256 से अधिक विभिन्न रंग न हों। इन क्षेत्रों में से प्रत्येक को तब अपने स्वयं के स्थानीय पैलेट के साथ एक अलग छवि ब्लॉक के रूप में संग्रहीत किया जाता है और जब छवि ब्लॉक एक साथ प्रदर्शित होते हैं (या तो टाइलिंग द्वारा या आंशिक रूप से पारदर्शी छवि ब्लॉकों को परत करके), पूर्ण, पूर्ण-रंग वाली छवि दिखाई देती है। उदाहरण के लिए, किसी छवि को 16 गुणा 16 पिक्सेल (कुल 256 पिक्सेल) की टाइलों में तोड़ना सुनिश्चित करता है कि किसी भी टाइल में 256 रंगों की स्थानीय पैलेट सीमा से अधिक नहीं है, हालाँकि बड़ी टाइलों का उपयोग किया जा सकता है और समान रंगों का विलय हो जाता है जिसके परिणामस्वरूप रंग में कुछ कमी आती है सूचना है।<ref name=aminet />
 
चूँकि प्रत्येक छवि ब्लॉक की अपनी स्थानीय रंग तालिका हो सकती है, एक जीआईएफ फ़ाइल जिसमें कई छवि ब्लॉक होते हैं, बहुत बड़ी हो सकती है, जो पूर्ण-रंग वाले जीआईएफ की उपयोगिता को सीमित करती है।<ref name=philhoward />इसके अतिरिक्त, सभी जीआईएफ रेंडरिंग प्रोग्राम टाइल वाली या स्तरित छवियों को सही ढंग से संभाल नहीं पाते हैं। कई रेंडरिंग प्रोग्राम टाइल्स या लेयर्स को एनीमेशन फ्रेम के रूप में समझते हैं और उन्हें एनीमेशन के रूप में अनुक्रम में प्रदर्शित करते हैं<ref name=aminet /> अधिकांश वेब ब्राउज़र स्वचालित रूप से 0.1 सेकंड या उससे अधिक के विलंब समय के साथ फ़्रेम प्रदर्शित करते हैं।<ref>{{cite web|url=http://nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser-compatibility|title=Nullsleep - Jeremiah Johnson - Animated GIF Minimum Frame Delay Browser Compatibility Study|access-date=26 May 2015|archive-date=10 October 2014|archive-url=https://web.archive.org/web/20141010173918/http://nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser-compatibility|url-status=live}}</ref><ref>{{cite web|url=http://blog.fenrir-inc.com/us/2012/02/theyre-different-how-to-match-the-animation-rate-of-gif-files-accross-browsers.html|archive-url=https://web.archive.org/web/20170201034945/http://blog.fenrir-inc.com/us/2012/02/theyre-different-how-to-match-the-animation-rate-of-gif-files-accross-browsers.html|url-status=dead|archive-date=1 February 2017|title=They're different! How to match the animation rate of gif files {{sic|ac|cross|nolink=y}} browsers|date=14 February 2012|website=Developer's Blog|access-date=15 June 2017}}</ref>


चूँकि प्रत्येक छवि ब्लॉक की अपनी स्थानीय रंग तालिका हो सकती है, एक GIF फ़ाइल जिसमें कई छवि ब्लॉक होते हैं, बहुत बड़ी हो सकती है, जो पूर्ण-रंग वाले GIF की उपयोगिता को सीमित करती है।<ref name=philhoward />इसके अतिरिक्त, सभी जीआईएफ रेंडरिंग प्रोग्राम टाइल वाली या स्तरित छवियों को सही ढंग से संभाल नहीं पाते हैं। कई रेंडरिंग प्रोग्राम टाइल्स या लेयर्स को एनीमेशन फ्रेम के रूप में समझते हैं और उन्हें एनीमेशन के रूप में अनुक्रम में प्रदर्शित करते हैं<ref name=aminet />अधिकांश वेब ब्राउज़र स्वचालित रूप से 0.1 सेकंड या उससे अधिक के विलंब समय के साथ फ़्रेम प्रदर्शित करते हैं।<ref>{{cite web|url=http://nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser-compatibility|title=Nullsleep - Jeremiah Johnson - Animated GIF Minimum Frame Delay Browser Compatibility Study|access-date=26 May 2015|archive-date=10 October 2014|archive-url=https://web.archive.org/web/20141010173918/http://nullsleep.tumblr.com/post/16524517190/animated-gif-minimum-frame-delay-browser-compatibility|url-status=live}}</ref><ref>{{cite web|url=http://blog.fenrir-inc.com/us/2012/02/theyre-different-how-to-match-the-animation-rate-of-gif-files-accross-browsers.html|archive-url=https://web.archive.org/web/20170201034945/http://blog.fenrir-inc.com/us/2012/02/theyre-different-how-to-match-the-animation-rate-of-gif-files-accross-browsers.html|url-status=dead|archive-date=1 February 2017|title=They're different! How to match the animation rate of gif files {{sic|ac|cross|nolink=y}} browsers|date=14 February 2012|website=Developer's Blog|access-date=15 June 2017}}</ref>{{better source|date=March 2015}}




Line 125: Line 129:
{| class="wikitable"
{| class="wikitable"
|-
|-
|[[Microsoft Paint]] saves a small black-and-white image as the following GIF file (illustrated enlarged).<br/>Paint does not make optimal use of GIF; due to the unnecessarily large color table (storing a full 256 colors instead of the used 2) and symbol width, this GIF file is not an efficient representation of the 15-pixel image.<br/>Although the Graphic Control Extension block declares color index 16 (hexadecimal 10) to be transparent, that index is not used in the image. The only color indexes appearing in the image data are decimal 40 and 255, which the Global Color Table maps to black and white, respectively.
|माइक्रोसॉफ्ट पेंट एक छोटी काली-और-सफेद छवि को निम्न जीआईएफ फ़ाइल के रूप में सहेजता है (सचित्र बढ़े हुए)
पेंट जीआईएफ का इष्टतम उपयोग नहीं करता है; अनावश्यक रूप से बड़ी रंग तालिका (उपयोग किए गए 2 के बदले में पूर्ण 256 रंगों को संग्रहीत करना) और प्रतीक चौड़ाई के कारण, यह जीआईएफ फ़ाइल 15-पिक्सेल छवि का एक कुशल प्रतिनिधित्व नहीं है।
 
हालांकि ग्राफिक कंट्रोल एक्सटेंशन ब्लॉक कलर इंडेक्स 16 (हेक्साडेसिमल 10) को पारदर्शी होने की घोषणा करता है, छवि में उस इंडेक्स का उपयोग नहीं किया जाता है। छवि डेटा में दिखाई देने वाली एकमात्र रंगीन अनुक्रमणिका दशमलव 40 और 255 हैं, जिन्हें वैश्विक रंग तालिका क्रमशः काले और सफेद में मैप करती है।
|[[File:gifSample.gif|center]]
|[[File:gifSample.gif|center]]
{{small|Sample image (enlarged), actual size 3&nbsp;pixels&nbsp;wide by 5&nbsp;high}}
नमूना चित्र (बड़ा), वास्तविक आकार 3 पिक्सेल चौड़ा गुणा 5 ऊंचा
|}
|}
ध्यान दें कि निम्नलिखित तालिकाओं में हेक्स संख्याएं [[ endianness ]] | लिटिल-एंडियन बाइट क्रम में हैं, जैसा कि प्रारूप विनिर्देश निर्धारित करता है।
ध्यान दें कि निम्न तालिकाओं में हेक्स संख्या छोटे-अंत वाले बाइट क्रम में हैं, जैसा कि प्रारूप विनिर्देश निर्धारित करता है।


{| class="wikitable"
{| class="wikitable"
|+ Table of example GIF image values
|+ उदाहरण जीआईएफ छवि मूल्यों की तालिका
! Byte # (hex) !! Hexadecimal !! Text or value !! colspan=2 | Meaning
!बाइट # (हेक्स)
!हेक्साडेसिमल
!टेक्स्ट या वैल्यू
! colspan="2" |अर्थ
|-
|-
| 0 || 47 49 46 38 39 61 || GIF89a || colspan=2 | Header
| 0 || 47 49 46 38 39 61 || जीआईएफ89a || colspan="2" |हैडर
|-
|-
| 6 || 03 00 || 3 || colspan=2 | Logical screen width
| 6 || 03 00 || 3 || colspan=2 |लॉजिकल स्क्रीन चौड़ाई
|-
|-
| 8 || 05 00 || 5 || colspan=2 | Logical screen height
| 8 || 05 00 || 5 || colspan=2 |लॉजिकल स्क्रीन ऊंचाई
|-
|-
| A || F7 || || colspan=2 | GCT follows for 256 colors with resolution 3{{resx}}8 bits/primary, the lowest 3 bits represent the bit depth minus 1, the highest true bit means that the GCT is present
| A || F7 || || colspan=2 |जीसीटी 3 × 8 बिट्स/प्राथमिक रिज़ॉल्यूशन के साथ 256 रंगों के लिए अनुसरण करता है, सबसे कम 3 बिट्स बिट डेप्थ माइनस 1 का प्रतिनिधित्व करते हैं, उच्चतम ट्रू बिट का मतलब है कि जीसीटी उपस्थित है
|-
|-
| B || 00 || 0 || colspan=2 | Background color: index #0; #000000 black
| B || 00 || 0 || colspan=2 | बैकग्राउंड कलर: इंडेक्स #0; #000000 काला
|-
|-
| C || 00 || 0 || colspan=2 | Default pixel aspect ratio, 0:0
| C || 00 || 0 || colspan=2 |डिफ़ॉल्ट पिक्सेल आस्पेक्ट रेश्यो, 0:0
|-  
|-  
| D || 00 00 00 ||  
| D || 00 00 00 ||  
Line 192: Line 202:
| 31ई || 00 || 0 || कोलस्पैन=2 | स्थानीय रंग तालिका बिट, 0 का अर्थ कोई नहीं है
| 31ई || 00 || 0 || कोलस्पैन=2 | स्थानीय रंग तालिका बिट, 0 का अर्थ कोई नहीं है
|-
|-
| 31एफ || 08 || 8 || कोलस्पैन=2 | छवि की शुरुआत, LZW न्यूनतम कोड आकार
| 31एफ || 08 || 8 || कोलस्पैन=2 | छवि की शुरुआत, एलजेडडब्ल्यू न्यूनतम कोड आकार
|-
|-
| 320 || 0बी || 11 || कोलस्पैन=2 | LZW एन्कोडेड इमेज फॉलो की मात्रा, 11 बाइट्स
| 320 || 0बी || 11 || कोलस्पैन=2 | एलजेडडब्ल्यू एन्कोडेड इमेज फॉलो की मात्रा, 11 बाइट्स
|-
|-
| 321 || 00 51 एफसी 1बी 28 70 ए0 सी1 83 01 01 || <इमेज डेटा> || कोलस्पैन=2 | छवि डेटा के 11 बाइट, फ़ील्ड 320 देखें
| 321 || 00 51 एफसी 1बी 28 70 ए0 सी1 83 01 01 || <इमेज डेटा> || कोलस्पैन=2 | छवि डेटा के 11 बाइट, फ़ील्ड 320 देखें
Line 204: Line 214:


=== छवि कोडिंग ===
=== छवि कोडिंग ===
छवि पिक्सेल डेटा, ऊपर बाईं ओर से क्षैतिज रूप से स्कैन किया जाता है, लेम्पेल-ज़िव-वेल्च द्वारा उन कोडों में परिवर्तित किया जाता है जिन्हें फ़ाइल में संग्रहीत करने के लिए बाइट्स में मैप किया जाता है। पिक्सेल कोड आमतौर पर बाइट्स के 8-बिट आकार से मेल नहीं खाते हैं, इसलिए कोड को लिट्ल-एंडियन योजना द्वारा बाइट्स में पैक किया जाता है: पहले कोड का कम से कम महत्वपूर्ण बिट पहले बाइट के कम से कम महत्वपूर्ण बिट में संग्रहीत होता है। , कोड के उच्च क्रम बिट्स को बाइट के उच्च क्रम बिट्स में, आवश्यकतानुसार अगले बाइट के निम्न क्रम बिट्स में फैलाना। प्रत्येक बाद के कोड को पहले से उपयोग नहीं किए गए कम से कम महत्वपूर्ण बिट से शुरू किया जाता है।
छवि पिक्सेल डेटा, ऊपर बाईं ओर से क्षैतिज रूप से स्कैन किया जाता है, लेम्पेल-ज़िव-वेल्च द्वारा उन कोडों में परिवर्तित किया जाता है जिन्हें फ़ाइल में संग्रहीत करने के लिए बाइट्स में मैप किया जाता है। पिक्सेल कोड आमतौर पर बाइट्स के 8-बिट आकार से मेल नहीं खाते हैं, इसलिए कोड को लिट्ल-एंडियन योजना द्वारा बाइट्स में पैक किया जाता है: पहले कोड का कम से कम महत्वपूर्ण बिट पहले बाइट के कम से कम महत्वपूर्ण बिट में संग्रहीत होता है। , कोड के उच्च क्रम बिट्स को बाइट के उच्च क्रम बिट्स में, आवश्यकतानुसार अगले बाइट के निम्न क्रम बिट्स में फैलाना है। प्रत्येक बाद के कोड को पहले से उपयोग नहीं किए गए कम से कम महत्वपूर्ण बिट से आरंभ किया जाता है।


यह बाइट स्ट्रीम फ़ाइल में उप-ब्लॉकों की एक श्रृंखला के रूप में संग्रहीत है। प्रत्येक उप-ब्लॉक की अधिकतम लंबाई 255 बाइट्स होती है और एक बाइट के साथ उपसर्ग होता है जो उप-ब्लॉक में डेटा बाइट्स की संख्या को दर्शाता है। उप-ब्लॉकों की श्रृंखला एक खाली उप-ब्लॉक (एक एकल 0 बाइट, 0 डेटा बाइट्स वाले उप-ब्लॉक को इंगित करता है) द्वारा समाप्त की जाती है।
यह बाइट स्ट्रीम फ़ाइल में उप-ब्लॉकों की एक श्रृंखला के रूप में संग्रहीत है। प्रत्येक उप-ब्लॉक की अधिकतम लंबाई 255 बाइट्स होती है और एक बाइट के साथ उपसर्ग होता है जो उप-ब्लॉक में डेटा बाइट्स की संख्या को दर्शाता है। उप-ब्लॉकों की श्रृंखला एक खाली उप-ब्लॉक (एक एकल 0 बाइट, 0 डेटा बाइट्स वाले उप-ब्लॉक को इंगित करता है) द्वारा समाप्त की जाती है।
Line 212: Line 222:
{| class="wikitable" style="text-align:right;"
{| class="wikitable" style="text-align:right;"
|+ Reversible mapping
|+ Reversible mapping
! colspan=2 | 9-bit code
! colspan=2 |9-बिट कोड
! colspan=2 | Byte
! colspan=2 |बाइट
|-
|-
! Hexadecimal !! Binary !! Binary !! Hexadecimal
!हेक्साडेसिमल
!बायनरी
!बायनरी
!हेक्साडेसिमल
|- style="font-family:monospace;"
|- style="font-family:monospace;"
| {{color|red|100}}  || {{color|red|1 00000000}}  || {{color|red|00000000}} || 00
| {{color|red|100}}  || {{color|red|1 00000000}}  || {{color|red|00000000}} || 00
Line 239: Line 252:
|                    ||                            || {{color|black|0000000}} {{color|blue|1}} || 01
|                    ||                            || {{color|black|0000000}} {{color|blue|1}} || 01
|}
|}
एक मामूली संपीड़न स्पष्ट है: प्रारंभ में 15 बाइट्स द्वारा परिभाषित पिक्सेल रंग नियंत्रण कोड सहित 12 कोड बाइट्स द्वारा सटीक रूप से दर्शाए जाते हैं।
साधारण कम्प्रेशन स्पष्ट है: प्रारंभ में 15 बाइट्स द्वारा परिभाषित पिक्सेल रंग नियंत्रण कोड सहित 12 कोड बाइट्स द्वारा सटीक रूप से दर्शाए जाते हैं।
9-बिट कोड बनाने वाली एन्कोडिंग प्रक्रिया नीचे दिखाई गई है। एक स्थानीय स्ट्रिंग पैलेट से पिक्सेल रंग संख्याएं जमा करती है, जब तक कि स्थानीय स्ट्रिंग को कोड तालिका में पाया जा सकता है, तब तक कोई आउटपुट क्रिया नहीं होती है। पहले दो पिक्सेल का विशेष उपचार होता है जो तार के जोड़ से तालिका के प्रारंभिक आकार से बढ़ने से पहले आते हैं। प्रत्येक आउटपुट कोड के बाद, स्थानीय स्ट्रिंग को नवीनतम पिक्सेल रंग में प्रारंभ किया जाता है (जो आउटपुट कोड में शामिल नहीं किया जा सकता)।
 
9-बिट कोड बनाने वाली एन्कोडिंग प्रक्रिया नीचे दिखाई गई है। एक स्थानीय स्ट्रिंग पैलेट से पिक्सेल रंग संख्याएं जमा करती है, जब तक कि स्थानीय स्ट्रिंग को कोड तालिका में पाया जा सकता है, तब तक कोई आउटपुट क्रिया नहीं होती है। पहले दो पिक्सेल का विशेष उपचार होता है जो तार के जोड़ से तालिका के प्रारंभिक आकार से बढ़ने से पहले आते हैं। प्रत्येक आउटपुट कोड के बाद, स्थानीय स्ट्रिंग को नवीनतम पिक्सेल रंग में प्रारंभ किया जाता है (जो आउटपुट कोड में सम्मिलित नहीं किया जा सकता)।
 
                            '''Table          9-bit'''


                          तालिका 9-बिट
                       '''string --> code      code    Action'''
                       <यू>स्ट्रिंग --> कोड कोड एक्शन</यू>
                           #0 | 000h               Initialize root table of 9-bit codes
                           #0 | 000h 9-बिट कोड की रूट तालिका प्रारंभ करें
                     palette  |  :
                     पैलेट | :
                       colors  |  :
                       रंग | :
                         #255 | 0FFh
                         #255 | 0FFh
                           सीएलआर | 100 ह
                           clr | 100h
                           अंत | 101h
                           end | 101h
                               | 100h साफ़ करें
                               |           100h     Clear
  पिक्सेल स्थानीय |
  Pixel          Local        |
  कलर पैलेट स्ट्रिंग |
  color Palette  string        |
  काला #40 28 | 028h पहला पिक्सेल हमेशा आउटपुट के लिए
  BLACK  #40     28           |           028h     1st pixel always to output
  सफ़ेद #255 FF | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF           |                     String found in table
                   28 एफएफ | 102h हमेशा तालिका में पहली स्ट्रिंग जोड़ें
                   28 FF      | 102h               Always add 1st string to table
                 एफएफ | स्थानीय स्ट्रिंग प्रारंभ करें
                 FF            |                     Initialize local string
  सफेद #255 एफएफ एफएफ | तालिका में स्ट्रिंग नहीं मिला
  WHITE  #255   FF FF        |                     String not found in table
                               | 0FFh - पिछले स्ट्रिंग के लिए आउटपुट कोड
                               |           0FFh     - output code for previous string
                   एफएफ एफएफ | 103h - तालिका में नवीनतम स्ट्रिंग जोड़ें
                   FF FF      | 103h               - add latest string to table
                 एफएफ | - स्थानीय स्ट्रिंग प्रारंभ करें
                 FF            |                     - initialize local string
  सफेद #255 एफएफ एफएफ | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF FF        |                     String found in table
  काला #40 एफएफ एफएफ 28 | तालिका में स्ट्रिंग नहीं मिला
  BLACK  #40     FF FF 28     |                     String not found in table
                               | 103h - पिछले स्ट्रिंग के लिए आउटपुट कोड
                               |           103h     - output code for previous string
                   एफएफ एफएफ 28 | 104h - तालिका में नवीनतम स्ट्रिंग जोड़ें
                   FF FF 28   | 104h               - add latest string to table
                 28 | - स्थानीय स्ट्रिंग प्रारंभ करें
                 28           |                     - initialize local string
  सफ़ेद #255 28 FF | तालिका में स्ट्रिंग मिली
  WHITE  #255   28 FF         |                     String found in table
  सफ़ेद #255 28 FF FF | तालिका में स्ट्रिंग नहीं मिला
  WHITE  #255   28 FF FF     |                     String not found in table
                               | 102h - पिछले स्ट्रिंग के लिए आउटपुट कोड
                               |           102h     - output code for previous string
                   28 एफएफ एफएफ | 105h - तालिका में नवीनतम स्ट्रिंग जोड़ें
                   28 FF FF  | 105h               - add latest string to table
                 एफएफ | - स्थानीय स्ट्रिंग प्रारंभ करें
                 FF            |                     - initialize local string
  सफेद #255 एफएफ एफएफ | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF FF        |                     String found in table
  सफेद #255 एफएफ एफएफ एफएफ | तालिका में स्ट्रिंग नहीं मिला
  WHITE  #255   FF FF FF      |                     String not found in table
                               | 103h - पिछले स्ट्रिंग के लिए आउटपुट कोड
                               |           103h     - output code for previous string
                   एफएफ एफएफ एफएफ | 106h - तालिका में नवीनतम स्ट्रिंग जोड़ें
                   FF FF FF  | 106h               - add latest string to table
                 एफएफ | - स्थानीय स्ट्रिंग प्रारंभ करें
                 FF            |                     - initialize local string
  सफेद #255 एफएफ एफएफ | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF FF        |                     String found in table
  सफेद #255 एफएफ एफएफ एफएफ | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF FF FF      |                     String found in table
  सफेद #255 एफएफ एफएफ एफएफ एफएफ | तालिका में स्ट्रिंग नहीं मिला
  WHITE  #255   FF FF FF FF  |                     String not found in table
                               | 106h - पिछले स्ट्रिंग के लिए आउटपुट कोड
                               |           106h     - output code for previous string
                   एफएफ एफएफ एफएफ एफएफ | 107h - तालिका में नवीनतम स्ट्रिंग जोड़ें
                   FF FF FF FF| 107h               - add latest string to table
                 एफएफ | - स्थानीय स्ट्रिंग प्रारंभ करें
                 FF            |                     - initialize local string
  सफेद #255 एफएफ एफएफ | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF FF        |                     String found in table
  सफेद #255 एफएफ एफएफ एफएफ | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF FF FF      |                     String found in table
  सफेद #255 एफएफ एफएफ एफएफ एफएफ | तालिका में स्ट्रिंग मिली
  WHITE  #255   FF FF FF FF  |                     String found in table
                                                     और पिक्सेल नहीं
                                                     No more pixels
                                           107h - अंतिम स्ट्रिंग के लिए आउटपुट कोड
                                           107h     - output code for last string
                                           101h अंत
                                           101h     End
स्पष्टता के लिए तालिका को ऊपर दी गई लंबाई के बढ़ते तारों के रूप में दिखाया गया है। वह योजना काम कर सकती है लेकिन तालिका अप्रत्याशित मात्रा में मेमोरी का उपभोग करती है। मेमोरी को व्यवहार में सहेजा जा सकता है, यह ध्यान में रखते हुए कि संग्रहीत की जाने वाली प्रत्येक नई स्ट्रिंग में एक वर्ण द्वारा संवर्धित पहले से संग्रहीत स्ट्रिंग होती है। प्रत्येक पते पर केवल दो शब्दों को संग्रहित करना किफायती है: एक उपस्थिता एड्रेस और करैक्टर।


स्पष्टता के लिए तालिका को ऊपर निर्मित के रूप में दिखाया गया हैबढ़ती लंबाई के तार का टी। वह योजना कार्य कर सकती है लेकिन तालिका अप्रत्याशित मात्रा में स्मृति का उपभोग करती है। मेमोरी को व्यवहार में सहेजा जा सकता है, यह ध्यान में रखते हुए कि संग्रहीत की जाने वाली प्रत्येक नई स्ट्रिंग में एक वर्ण द्वारा संवर्धित पहले से संग्रहीत स्ट्रिंग होती है। प्रत्येक पते पर केवल दो शब्दों को संग्रहित करना किफायती है: एक मौजूदा पता और एक वर्ण।
एलजेडडब्ल्यू एल्गोरिथ्म को प्रत्येक पिक्सेल के लिए तालिका की खोज की आवश्यकता होती है। 4096 पतों के माध्यम से एक रैखिक खोज कोडिंग को धीमा कर देगी। व्यवहार में कोड को संख्यात्मक मान के क्रम में संग्रहीत किया जा सकता है; यह प्रत्येक खोज को SAR (क्रमिक सन्निकटन रजिस्टर, जैसा कि कुछ क्रमिक सन्निकटन ADC में उपयोग किया जाता है) द्वारा किया जा सकता है, केवल 12 परिमाण तुलनाओं के साथ। इस दक्षता के लिए कोड और वास्तविक मेमोरी पतों के बीच रूपांतरण के लिए एक अतिरिक्त तालिका की आवश्यकता होती है; अतिरिक्त टेबल अपकीपिंग की आवश्यकता तभी होती है जब एक नया कोड संग्रहीत किया जाता है जो पिक्सेल दर से बहुत कम होता है।
 
LZW एल्गोरिथ्म को प्रत्येक पिक्सेल के लिए तालिका की खोज की आवश्यकता होती है। 4096 पतों के माध्यम से एक रैखिक खोज कोडिंग को धीमा कर देगी। व्यवहार में कोड को संख्यात्मक मान के क्रम में संग्रहीत किया जा सकता है; यह प्रत्येक खोज को SAR (क्रमिक सन्निकटन रजिस्टर, जैसा कि कुछ क्रमिक सन्निकटन ADC में उपयोग किया जाता है) द्वारा किया जा सकता है, केवल 12 परिमाण तुलनाओं के साथ। इस दक्षता के लिए कोड और वास्तविक मेमोरी पतों के बीच रूपांतरण के लिए एक अतिरिक्त तालिका की आवश्यकता होती है; अतिरिक्त टेबल अपकीपिंग की आवश्यकता तभी होती है जब एक नया कोड संग्रहीत किया जाता है जो पिक्सेल दर से बहुत कम होता है।


=== छवि डिकोडिंग ===
=== छवि डिकोडिंग ===
डिकोडिंग संग्रहीत बाइट्स को 9-बिट कोड पर मैप करके शुरू होता है। नीचे दिखाए गए पिक्सेल रंगों को पुनर्प्राप्त करने के लिए इन्हें डीकोड किया गया है। एन्कोडर में उपयोग की जाने वाली तालिका के समान एक तालिका इस नियम द्वारा तार जोड़कर बनाई गई है:
डिकोडिंग संग्रहीत बाइट्स को 9-बिट कोड पर मैप करके आरंभ होता है। नीचे दिखाए गए पिक्सेल रंगों को पुनर्प्राप्त करने के लिए इन्हें डीकोड किया गया है। एन्कोडर में उपयोग की जाने वाली तालिका के समान एक तालिका इस नियम द्वारा तार जोड़कर बनाई गई है:
{| class="wikitable"
{| class="wikitable"
|+ Is incoming code found in table?
|+ क्या आने वाला कोड टेबल में मिला है?
|  {{Yes}} || add string for local code followed by first byte of string for incoming code
|  {{Yes}} ||इनकमिंग कोड के लिए स्ट्रिंग के पहले बाइट के बाद स्थानीय कोड के लिए एक स्ट्रिंग जोड़ें
|-
|-
|  {{No}}  || add string for local code followed by copy of its own first byte
|  {{No}}  ||स्ट्रिंग को स्थानीय कोड में जोड़ें और फिर अपनी पहली बाइट कॉपी करें
|}
|}
खिसक जाना
'''shift'''
  9-बिट ----> लोकल टेबल पिक्सेल
  '''9-bit ----> Local      Table                Pixel'''
  <u>कोड कोड कोड --> स्ट्रिंग पैलेट कलर एक्शन</u>
  <u>'''code        code  code --> string  Palette color  Action'''</u>
  100 ह 000 ह | #0 9-बिट कोड के रूट टेबल को इनिशियलाइज़ करें
  100h              000h  | #0                       Initialize root table of 9-bit codes
                     : | पैलेट
                     :   | palette
                     : | रंग की
                     :   | colors
                     0FFh | #255
                     0FFh | #255
                     100 ह | सीएलआर
                     100h  | clr
                     101h | अंत
                     101h | end
  028h | #40  {{font color|WHITE|BLACK|BLACK}} पहला पिक्सेल डीकोड करें
  028h                     |             #40  {{font color|WHITE|BLACK|BLACK}} Decode 1st pixel
  0FFh 028h | तालिका में आने वाला कोड मिला
  0FFh       028h         |                           Incoming code found in table
                           | #255  {{font color|BLACK|WHITE|WHITE}} - टेबल से आउटपुट स्ट्रिंग
                           |             #255  {{font color|BLACK|WHITE|WHITE}}   - output string from table
                     102h | 28 एफएफ - तालिका में जोड़ें
                     102h | 28 FF                    - add to table
  103h 0FFh | इनकमिंग कोड टेबल में नहीं मिला
  103h       0FFh         |                           Incoming code not found in table
                     103एच | एफएफ एफएफ - तालिका में जोड़ें
                     103h  | FF FF                    - add to table
                           | - टेबल से आउटपुट स्ट्रिंग
                           |                           - output string from table
                           | #255  {{font color|BLACK|WHITE|WHITE}}
                           |             #255  {{font color|BLACK|WHITE|WHITE}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
102h 103h | तालिका में आने वाला कोड मिला
102h       103h         |                           Incoming code found in table
                           | - टेबल से आउटपुट स्ट्रिंग
                           |                           - output string from table
                           | #40  {{font color|WHITE|BLACK|BLACK}}
                           |             #40  {{font color|WHITE|BLACK|BLACK}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
104h | एफएफ एफएफ 28 - तालिका में जोड़ें
                    104h | FF FF 28                 - add to table
  103h 102h | तालिका में आने वाला कोड मिला
  103h       102h         |                           Incoming code found in table
                           | - टेबल से आउटपुट स्ट्रिंग
                           |                           - output string from table
                           | #255  {{font color|BLACK|WHITE|WHITE}}
                           |             #255  {{font color|BLACK|WHITE|WHITE}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
105h | 28 एफएफ एफएफ - तालिका में जोड़ें
                    105h | 28 FF FF                  - add to table
  106h 103h | इनकमिंग कोड टेबल में नहीं मिला
  106h       103h         |                           Incoming code not found in table
                     106h | एफएफ एफएफ एफएफ - तालिका में जोड़ें
                     106h | FF FF FF                  - add to table
                           | - टेबल से आउटपुट स्ट्रिंग
                           |                           - output string from table
                           | #255  {{font color|BLACK|WHITE|WHITE}}
                           |             #255  {{font color|BLACK|WHITE|WHITE}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
107h 106h | इनकमिंग कोड टेबल में नहीं मिला
107h       106h         |                           Incoming code not found in table
                     107h | एफएफ एफएफ एफएफ एफएफ - तालिका में जोड़ें
                     107h | FF FF FF FF              - add to table
                           | - टेबल से आउटपुट स्ट्रिंग
                           |                           - output string from table
                           | #255  {{font color|BLACK|WHITE|WHITE}}
                           |             #255  {{font color|BLACK|WHITE|WHITE}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
|            #255  {{font color|BLACK|WHITE|WHITE}}
                          |            #255  {{font color|BLACK|WHITE|WHITE}}
101h | अंत
101h                     |                           End


=== LZW कोड की लंबाई ===
 
उदाहरण में 256 रंगों से छोटे पैलेट के लिए छोटी कोड लंबाई का उपयोग किया जा सकता है। यदि पैलेट केवल 64 रंग का है (इसलिए रंग सूचकांक 6 बिट चौड़ा है), प्रतीक 0 से 63 तक हो सकते हैं, और प्रतीक की चौड़ाई 6 बिट हो सकती है, कोड 7 बिट से शुरू होते हैं। वास्तव में, प्रतीक की चौड़ाई को पैलेट के आकार से मेल नहीं खाना चाहिए: जब तक डिकोड किए गए मान हमेशा पैलेट में रंगों की संख्या से कम होते हैं, तब तक प्रतीक 2 से 8 तक कोई भी चौड़ाई हो सकते हैं, और पैलेट का आकार 2 की कोई भी शक्ति हो सकती है। 2 से 256 तक। उदाहरण के लिए, यदि पैलेट के केवल पहले चार रंगों (मान 0 से 3) का उपयोग किया जाता है, तो प्रतीकों को 3 बिट से शुरू होने वाले कोड के साथ 2 बिट चौड़ा लिया जा सकता है।
 
=== एलजेडडब्ल्यू कोड की लंबाई ===
उदाहरण में 256 रंगों से छोटे पैलेट के लिए छोटी कोड लंबाई का उपयोग किया जा सकता है। यदि पैलेट केवल 64 रंग का है (इसलिए रंग सूचकांक 6 बिट चौड़ा है), प्रतीक 0 से 63 तक हो सकते हैं, और प्रतीक की चौड़ाई 6 बिट हो सकती है, कोड 7 बिट से आरंभ होते हैं। वास्तव में, प्रतीक की चौड़ाई को पैलेट के आकार से मेल नहीं खाना चाहिए: जब तक डिकोड किए गए मान हमेशा पैलेट में रंगों की संख्या से कम होते हैं, तब तक प्रतीक 2 से 8 तक कोई भी चौड़ाई हो सकते हैं, और पैलेट का आकार 2 की कोई भी शक्ति हो सकती है। 2 से 256 तक। उदाहरण के लिए, यदि पैलेट के केवल पहले चार रंगों (मान 0 से 3) का उपयोग किया जाता है, तो प्रतीकों को 3 बिट से आरंभ होने वाले कोड के साथ 2 बिट चौड़ा लिया जा सकता है।


इसके विपरीत, प्रतीक चौड़ाई 8 पर सेट की जा सकती है, भले ही मान 0 और 1 का उपयोग किया गया हो; इन आंकड़ों के लिए केवल दो रंगों वाली तालिका की आवश्यकता होगी। हालाँकि फ़ाइल को इस तरह से एन्कोड करने का कोई मतलब नहीं होगा, आमतौर पर द्वि-रंग छवियों के लिए कुछ ऐसा ही होता है: न्यूनतम प्रतीक चौड़ाई 2 है, भले ही केवल मान 0 और 1 का उपयोग किया गया हो।
इसके विपरीत, प्रतीक चौड़ाई 8 पर सेट की जा सकती है, भले ही मान 0 और 1 का उपयोग किया गया हो; इन आंकड़ों के लिए केवल दो रंगों वाली तालिका की आवश्यकता होगी। हालाँकि फ़ाइल को इस तरह से एन्कोड करने का कोई मतलब नहीं होगा, आमतौर पर द्वि-रंग छवियों के लिए कुछ ऐसा ही होता है: न्यूनतम प्रतीक चौड़ाई 2 है, भले ही केवल मान 0 और 1 का उपयोग किया गया हो।


कोड तालिका में शुरू में ऐसे कोड होते हैं जो दो विशेष कोड clr और अंत को समायोजित करने के लिए प्रतीक आकार से एक बिट लंबे होते हैं और प्रक्रिया के दौरान जोड़े गए स्ट्रिंग्स के लिए कोड होते हैं। जब टेबल भर जाती है तो अधिक स्ट्रिंग्स के लिए जगह देने के लिए कोड की लंबाई बढ़ जाती है, अधिकतम कोड 4095 = FFF(hex) तक। जैसा कि डिकोडर अपनी तालिका बनाता है, यह कोड की लंबाई में इन वृद्धि को ट्रैक करता है और यह आने वाले बाइट्स को तदनुसार अनपैक करने में सक्षम होता है।
कोड तालिका में आरंभ में ऐसे कोड होते हैं जो दो विशेष कोड clr और अंत को समायोजित करने के लिए प्रतीक आकार से एक बिट लंबे होते हैं और प्रक्रिया के दौरान जोड़े गए स्ट्रिंग्स के लिए कोड होते हैं। जब टेबल भर जाती है तो अधिक स्ट्रिंग्स के लिए जगह देने के लिए कोड की लंबाई बढ़ जाती है, अधिकतम कोड 4095 = FFF(hex) तक। जैसा कि डिकोडर अपनी तालिका बनाता है, यह कोड की लंबाई में इन वृद्धि को ट्रैक करता है और यह आने वाले बाइट्स को तदनुसार अनपैक करने में सक्षम होता है।


=== असम्पीडित जीआईएफ ===
=== असम्पीडित जीआईएफ ===
Line 355: Line 371:
|-
|-
|[[File:Quilt design as 46x46 uncompressed GIF.gif|center]]
|[[File:Quilt design as 46x46 uncompressed GIF.gif|center]]
{{small|A 46×46 uncompressed GIF with 7-bit symbols (128 colors, 8-bit codes).<br/>Click on the image for an explanation of the code.}}
{{small|7-बिट प्रतीकों (128 रंग, 8-बिट कोड) के साथ एक 46×46 असम्पीडित GIF।<br/>कोड की व्याख्या के लिए छवि पर क्लिक करें।}}
|}
|}
GIF एन्कोडिंग प्रक्रिया को LZW संपीड़न के बिना एक फ़ाइल बनाने के लिए संशोधित किया जा सकता है जो अभी भी GIF छवि के रूप में देखा जा सकता है। इस तकनीक को मूल रूप से पेटेंट उल्लंघन से बचने के तरीके के रूप में पेश किया गया था। असम्पीडित जीआईएफ ग्राफिक्स प्रोग्रामर के लिए एक उपयोगी मध्यवर्ती प्रारूप भी हो सकता है क्योंकि अलग-अलग पिक्सेल पढ़ने या पेंटिंग के लिए सुलभ होते हैं। एक असम्पीडित जीआईएफ फ़ाइल को एक साधारण जीआईएफ फ़ाइल में एक छवि संपादक के माध्यम से पारित करके परिवर्तित किया जा सकता है।
जीआईएफ एन्कोडिंग प्रक्रिया को एलजेडडब्ल्यू कम्प्रेशन के बिना एक फ़ाइल बनाने के लिए संशोधित किया जा सकता है जो अभी भी जीआईएफ छवि के रूप में देखा जा सकता है। इस तकनीक को मूल रूप से पेटेंट उल्लंघन से बचने के तरीके के रूप में पेश किया गया था। असम्पीडित जीआईएफ ग्राफिक्स प्रोग्रामर के लिए एक उपयोगी मध्यवर्ती प्रारूप भी हो सकता है क्योंकि अलग-अलग पिक्सेल पढ़ने या पेंटिंग के लिए सुलभ होते हैं। एक असम्पीडित जीआईएफ फ़ाइल को एक साधारण जीआईएफ फ़ाइल में एक छवि संपादक के माध्यम से पारित करके परिवर्तित किया जा सकता है।


संशोधित एन्कोडिंग विधि LZW तालिका के निर्माण पर ध्यान नहीं देती है और केवल रूट पैलेट कोड और CLEAR और STOP के लिए कोड का उत्सर्जन करती है। यह एक सरल एन्कोडिंग (कोड मान और पैलेट कोड के बीच 1-से-1 पत्राचार) उत्पन्न करता है, लेकिन सभी संपीड़न का त्याग करता है: छवि में प्रत्येक पिक्सेल एक आउटपुट कोड उत्पन्न करता है जो उसके रंग सूचकांक को दर्शाता है। एक असम्पीडित जीआईएफ को संसाधित करते समय, एक मानक जीआईएफ डिकोडर को अपनी शब्दकोश तालिका में तार लिखने से नहीं रोका जाएगा, लेकिन कोड की चौड़ाई कभी भी नहीं बढ़नी चाहिए क्योंकि यह बिट्स की एक अलग पैकिंग को बाइट्स में ट्रिगर करता है।
संशोधित एन्कोडिंग विधि एलजेडडब्ल्यू तालिका के निर्माण पर ध्यान नहीं देती है और केवल रूट पैलेट कोड और CLEAR और STOP के लिए कोड का उत्सर्जन करती है। यह एक सरल एन्कोडिंग (कोड मान और पैलेट कोड के बीच 1-से-1 पत्राचार) उत्पन्न करता है, लेकिन सभी कम्प्रेशन का त्याग करता है: छवि में प्रत्येक पिक्सेल एक आउटपुट कोड उत्पन्न करता है जो उसके रंग सूचकांक को दर्शाता है। असम्पीडित जीआईएफ को संसाधित करते समय, एक मानक जीआईएफ डिकोडर को अपनी शब्दकोश तालिका में तार लिखने से नहीं रोका जाएगा, लेकिन कोड की चौड़ाई कभी भी नहीं बढ़नी चाहिए क्योंकि यह बिट्स की एक अलग पैकिंग को बाइट्स में ट्रिगर करता है।


यदि प्रतीक चौड़ाई है {{mvar|n}}, चौड़ाई के कोड {{math|''n''+1}} स्वाभाविक रूप से दो ब्लॉकों में गिर जाते हैं: का निचला ब्लॉक {{math|2{{sup|''n''}}}} एकल प्रतीकों को कोड करने के लिए कोड, और ऊपरी ब्लॉक {{math|2{{sup|''n''}}}} कोड जिनका उपयोग डिकोडर द्वारा एक से अधिक लंबाई के अनुक्रमों के लिए किया जाएगा। उस ऊपरी ब्लॉक के पहले दो कोड पहले ही ले लिए गए हैं: {{math|2{{sup|''n''}}}} स्पष्ट और के लिए {{math|2{{sup|''n''}} + 1}} स्टॉप के लिए। डिकोडर को ऊपरी ब्लॉक में अंतिम कोड का उपयोग करने से भी रोका जाना चाहिए, {{math|2<sup>''n''+1</sup> − 1}}, क्योंकि जब डिकोडर उस स्लॉट को भरता है, तो यह कोड की चौड़ाई बढ़ा देगा। इस प्रकार ऊपरी ब्लॉक में हैं {{math|2{{sup|''n''}} − 3}} डिकोडर के लिए उपलब्ध कोड जो कोड चौड़ाई में वृद्धि को ट्रिगर नहीं करेंगे। क्योंकि डिकोडर तालिका को बनाए रखने में हमेशा एक कदम पीछे होता है, यह एनकोडर से पहला कोड प्राप्त करने पर तालिका प्रविष्टि उत्पन्न नहीं करता है, लेकिन प्रत्येक बाद के कोड के लिए एक उत्पन्न करेगा। इस प्रकार एनकोडर उत्पन्न कर सकता है {{math|2{{sup|''n''}} − 2}} कोड चौड़ाई में वृद्धि को ट्रिगर किए बिना कोड। इसलिए, एनकोडर को अंतराल पर अतिरिक्त CLEAR कोड का उत्सर्जन करना चाहिए {{math|2{{sup|''n''}} − 2}} डिकोडर को कोडिंग डिक्शनरी को रीसेट करने के लिए कोड या उससे कम। GIF मानक किसी भी समय छवि डेटा में ऐसे अतिरिक्त CLEAR कोड डालने की अनुमति देता है। कंपोजिट डेटा स्ट्रीम को उप-ब्लॉकों में विभाजित किया गया है, जिनमें से प्रत्येक में 1 से 255 बाइट्स होते हैं।
यदि प्रतीक चौड़ाई है {{mvar|n}}, चौड़ाई के कोड {{math|''n''+1}} स्वाभाविक रूप से दो ब्लॉकों में गिर जाते हैं: का निचला ब्लॉक {{math|2{{sup|''n''}}}} एकल प्रतीकों को कोड करने के लिए कोड, और ऊपरी ब्लॉक {{math|2{{sup|''n''}}}} कोड जिनका उपयोग डिकोडर द्वारा एक से अधिक लंबाई के अनुक्रमों के लिए किया जाएगा। उस ऊपरी ब्लॉक के पहले दो कोड पहले ही ले लिए गए हैं: {{math|2{{sup|''n''}}}} स्पष्ट और के लिए {{math|2{{sup|''n''}} + 1}} स्टॉप के लिए। डिकोडर को ऊपरी ब्लॉक में अंतिम कोड का उपयोग करने से भी रोका जाना चाहिए, {{math|2<sup>''n''+1</sup> − 1}}, क्योंकि जब डिकोडर उस स्लॉट को भरता है, तो यह कोड की चौड़ाई बढ़ा देगा। इस प्रकार ऊपरी ब्लॉक में हैं {{math|2{{sup|''n''}} − 3}} डिकोडर के लिए उपलब्ध कोड जो कोड चौड़ाई में वृद्धि को ट्रिगर नहीं करेंगे। क्योंकि डिकोडर तालिका को बनाए रखने में हमेशा एक कदम पीछे होता है, यह एनकोडर से पहला कोड प्राप्त करने पर तालिका प्रविष्टि उत्पन्न नहीं करता है, लेकिन प्रत्येक बाद के कोड के लिए एक उत्पन्न करेगा। इस प्रकार एनकोडर उत्पन्न कर सकता है {{math|2{{sup|''n''}} − 2}} कोड चौड़ाई में वृद्धि को ट्रिगर किए बिना कोड। इसलिए, एनकोडर को अंतराल पर अतिरिक्त CLEAR कोड का उत्सर्जन करना चाहिए {{math|2{{sup|''n''}} − 2}} डिकोडर को कोडिंग डिक्शनरी को रीसेट करने के लिए कोड या उससे कम। जीआईएफ मानक किसी भी समय छवि डेटा में ऐसे अतिरिक्त CLEAR कोड डालने की अनुमति देता है। कंपोजिट डेटा स्ट्रीम को उप-ब्लॉकों में विभाजित किया गया है, जिनमें से प्रत्येक में 1 से 255 बाइट्स होते हैं।


उपरोक्त नमूना 3×5 छवि के लिए, निम्नलिखित 9-बिट कोड स्पष्ट (100) का प्रतिनिधित्व करते हैं, जिसके बाद छवि पिक्सेल स्कैन क्रम और स्टॉप (101) में होते हैं।
उपरोक्त नमूना 3×5 छवि के लिए, निम्नलिखित 9-बिट कोड स्पष्ट (100) का प्रतिनिधित्व करते हैं, जिसके बाद छवि पिक्सेल स्कैन क्रम और स्टॉप (101) में होते हैं।
Line 370: Line 386:


{| class="wikitable"
{| class="wikitable"
! Byte # (hex) !! Hexadecimal !! Text or value !! Meaning
!बाइट # (हेक्स)
!हेक्साडेसिमल
!टेक्स्ट या वैल्यू
!अर्थ
|-
|-
| 320 || 14 || 20 || 20 bytes uncompressed image data follow
| 320 || 14 || 20 ||20 बाइट्स अनकम्प्रेस्सड छवि डेटा का पालन करें
|-
|-
| 321 || 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01 || ||
| 321 || 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01 || ||
|-
|-
| 335 || 00 || 0 || End of image data
| 335 || 00 || 0 ||छवि डेटा का अंत
|}
|}




== संपीड़न उदाहरण ==
== कम्प्रेशन उदाहरण ==
ठोस रंग की एक बड़ी छवि का तुच्छ उदाहरण GIF फ़ाइलों में उपयोग की जाने वाली चर-लंबाई LZW संपीड़न को प्रदर्शित करता है।
ठोस रंग की एक बड़ी छवि का तुच्छ उदाहरण जीआईएफ फ़ाइलों में उपयोग की जाने वाली चर-लंबाई एलजेडडब्ल्यू कम्प्रेशन को प्रदर्शित करता है।
{| class="wikitable"
{| class="wikitable"
|+Sample compression of a GIF file
|+जीआईएफ फ़ाइल का नमूना कंप्रेशन
|-
|-
! scope="col" colspan=3 | Code
! scope="col" colspan=3 | कोड
! scope="col" colspan=2 | Pixels
! scope="col" colspan=2 | पिक्सल
!scope="col" | Notes
!scope="col" | Notes
|-
|-
Line 453: Line 472:
| End of image data
| End of image data
|}
|}
दिखाए गए कोड मान बाइट्स में पैक किए जाते हैं जिन्हें बाद में 255 बाइट्स तक के ब्लॉक में पैक किया जाता है। छवि डेटा का एक ब्लॉक एक बाइट से शुरू होता है जो बाइट्स की संख्या का पालन करने की घोषणा करता है। एक छवि के लिए डेटा का अंतिम ब्लॉक शून्य ब्लॉक-लम्बाई बाइट द्वारा चिह्नित किया गया है।
दिखाए गए कोड मान बाइट्स में पैक किए जाते हैं जिन्हें बाद में 255 बाइट्स तक के ब्लॉक में पैक किया जाता है। छवि डेटा का एक ब्लॉक एक बाइट से आरंभ होता है जो बाइट्स की संख्या का पालन करने की घोषणा करता है। एक छवि के लिए डेटा का अंतिम ब्लॉक शून्य ब्लॉक-लम्बाई बाइट द्वारा चिह्नित किया गया है।


== इंटरलेसिंग ==
== इंटरलेसिंग ==
Line 469: Line 488:


<!--OTRS [[Ticket:2014021510009504]] gives permission for references to almost all GIFs, and code here. Please contact [[User:Mdann52]] to query anything -->
<!--OTRS [[Ticket:2014021510009504]] gives permission for references to almost all GIFs, and code here. Please contact [[User:Mdann52]] to query anything -->
[[File:Newtons cradle animation book 2.gif|thumb|200px|left|GIF का उपयोग एनीमेशन प्रदर्शित करने के लिए किया जा सकता है, जैसा कि न्यूटन के पालने की इस छवि में है।]]
[[File:Newtons cradle animation book 2.gif|thumb|200px|left|जीआईएफ का उपयोग एनीमेशन प्रदर्शित करने के लिए किया जा सकता है, जैसा कि न्यूटन के पालने की इस छवि में है।]]
[[File:Animated GIF cheloVechek.gif|thumb|दो फ़ोटो से बना एक GIF ऐनिमेशन, जिसमें से एक को दूसरे में बदला जा रहा है]]हालांकि जीआईएफ को एनीमेशन माध्यम के रूप में डिजाइन नहीं किया गया था, एक एनीमेशन अनुक्रम के [[ फिल्म फ्रेम ]] को स्टोर करने के लिए प्रारूप का उपयोग करके स्वाभाविक रूप से एक फाइल में कई छवियों को स्टोर करने की इसकी क्षमता का सुझाव दिया गया था। एनिमेशन प्रदर्शित करने की सुविधा के लिए, GIF89a युक्ति ने ग्राफिक कंट्रोल एक्सटेंशन (GCE) जोड़ा, जो फ़ाइल में छवियों (फ्रेम्स) को समय की देरी के साथ चित्रित करने की अनुमति देता है, एक [[ वीडियो क्लिप ]] बनाता है। एनीमेशन जीआईएफ में प्रत्येक फ्रेम अपने स्वयं के जीसीई द्वारा पेश किया जाता है जो फ्रेम तैयार होने के बाद प्रतीक्षा करने में देरी को निर्दिष्ट करता है। फ़ाइल की शुरुआत में वैश्विक जानकारी डिफ़ॉल्ट रूप से सभी फ़्रेमों पर लागू होती है। डेटा स्ट्रीम-ओरिएंटेड है, इसलिए प्रत्येक GCE के प्रारंभ की फ़ाइल ऑफ़सेट पूर्ववर्ती डेटा की लंबाई पर निर्भर करती है। प्रत्येक फ़्रेम के भीतर LZW-कोडित छवि डेटा को 255 बाइट्स तक के उप-ब्लॉकों में व्यवस्थित किया जाता है; प्रत्येक उप-ब्लॉक का आकार उसके पहले आने वाली बाइट द्वारा घोषित किया जाता है।
[[File:Animated GIF cheloVechek.gif|thumb|दो फ़ोटो से बना एक जीआईएफ ऐनिमेशन, जिसमें से एक को दूसरे में बदला जा रहा है]]हालांकि जीआईएफ को एनीमेशन माध्यम के रूप में डिजाइन नहीं किया गया था, एक एनीमेशन अनुक्रम के [[ फिल्म फ्रेम |फिल्म फ्रेम]] को स्टोर करने के लिए प्रारूप का उपयोग करके स्वाभाविक रूप से एक फाइल में कई छवियों को स्टोर करने की इसकी क्षमता का सुझाव दिया गया था। एनिमेशन प्रदर्शित करने की सुविधा के लिए, जीआईएफ89a युक्ति ने ग्राफिक कंट्रोल एक्सटेंशन (जीसीई) जोड़ा, जो फ़ाइल में छवियों (फ्रेम्स) को समय की देरी के साथ चित्रित करने की अनुमति देता है, [[ वीडियो क्लिप |वीडियो क्लिप]] बनाता है। एनीमेशन जीआईएफ में प्रत्येक फ्रेम अपने स्वयं के जीसीई द्वारा पेश किया जाता है जो फ्रेम तैयार होने के बाद प्रतीक्षा करने में देरी को निर्दिष्ट करता है। फ़ाइल की शुरुआत में वैश्विक सूचना डिफ़ॉल्ट रूप से सभी फ़्रेमों पर लागू होती है। डेटा स्ट्रीम-ओरिएंटेड है, इसलिए प्रत्येक जीसीई के प्रारंभ की फ़ाइल ऑफ़सेट पूर्ववर्ती डेटा की लंबाई पर निर्भर करती है। प्रत्येक फ़्रेम के भीतर एलजेडडब्ल्यू-कोडित छवि डेटा को 255 बाइट्स तक के उप-ब्लॉकों में व्यवस्थित किया जाता है; प्रत्येक उप-ब्लॉक का आकार उसके पहले आने वाली बाइट द्वारा घोषित किया जाता है।


डिफ़ॉल्ट रूप से, एक एनीमेशन केवल एक बार फ्रेम के अनुक्रम को प्रदर्शित करता है, अंतिम फ्रेम प्रदर्शित होने पर रुक जाता है। एनीमेशन को लूप में सक्षम करने के लिए, [[ नेटस्केप ]] ने 1990 के दशक में नेटस्केप एप्लिकेशन ब्लॉक (एनएबी) को लागू करने के लिए एप्लिकेशन एक्सटेंशन ब्लॉक (विक्रेताओं को जीआईएफ फ़ाइल में एप्लिकेशन-विशिष्ट जानकारी जोड़ने की अनुमति देने के उद्देश्य से) का उपयोग किया।<ref>{{cite web
डिफ़ॉल्ट रूप से, एक एनीमेशन केवल एक बार फ्रेम के अनुक्रम को प्रदर्शित करता है, अंतिम फ्रेम प्रदर्शित होने पर रुक जाता है। एनीमेशन को लूप में सक्षम करने के लिए, [[ नेटस्केप ]] ने 1990 के दशक में नेटस्केप एप्लिकेशन ब्लॉक (एनएबी) को लागू करने के लिए एप्लिकेशन एक्सटेंशन ब्लॉक (विक्रेताओं को जीआईएफ फ़ाइल में एप्लिकेशन-विशिष्ट सूचना जोड़ने की अनुमति देने के उद्देश्य से) का उपयोग किया।<ref>{{cite web
  |url=http://www6.uniovi.es/gifanim/gifabout.htm
  |url=http://www6.uniovi.es/gifanim/gifabout.htm
  |title=All About GIF89a
  |title=All About GIF89a
Line 484: Line 503:
  |title=Web Scripting Secret Weapons
  |title=Web Scripting Secret Weapons
  |author=Scott Walter |publisher=[[Que Publishing]] |year=1996
  |author=Scott Walter |publisher=[[Que Publishing]] |year=1996
}}</ref> अधिकांश ब्राउज़र अब NAB को पहचानते हैं और उसका समर्थन करते हैं, हालांकि यह GIF89a विनिर्देश का कड़ाई से हिस्सा नहीं है।
}}</ref> अधिकांश ब्राउज़र अब NAB को पहचानते हैं और उसका समर्थन करते हैं, हालांकि यह जीआईएफ89a विनिर्देश का कड़ाई से हिस्सा नहीं है।


The following example shows the structure of the animation file ''[[:File:Rotating earth (large).gif|Rotating earth (large).gifलेख के इन्फोबॉक्स में दिखाया गया (थंबनेल के रूप में)।<!-- Given for the last file version (27 August 2019) -->
''<!-- Given for the last file version (27 August 2019) -->''


{| class="wikitable"
जीसीई में सेकंड के सौवें हिस्से में प्रत्येक फ्रेम के लिए एनीमेशन विलंब निर्दिष्ट किया गया है। डेटा की कुछ किफायत संभव है जहां एक फ्रेम को डिस्प्ले के पिक्सेल के केवल एक हिस्से को फिर से लिखने की आवश्यकता होती है, क्योंकि इमेज डिस्क्रिप्टर पूरी छवि के बदले में एक छोटे आयत को फिर से स्कैन करने के लिए परिभाषित कर सकता है। ब्राउज़र या अन्य डिस्प्ले जो एनिमेटेड जीआईएफ का समर्थन नहीं करते हैं, आमतौर पर केवल पहला फ्रेम दिखाते हैं।
|+ Structure of GIF
! Byte # (hex) !! Hexadecimal || Text or value || Meaning
|-
| 0 || 47 49 46 38 39 61 || GIF89a || Logical Screen Descriptor
|-
| 6 || 90 01 || 400 || Width in pixels
|-
| 8 || 90 01 || 400 || Height in pixels
|-
| A || F7 || || GCT follows for 256 colors with resolution 3{{resx}}8 bits/primary
|-
| B || 00 || 0 || Background color: #000000, black
|-
| C || 00 || 0 || Default pixel aspect ratio, 0:0
|-
| D || 00 || || Global Color Table
|-
| ⋮ || || ||
|-
| 30D || 21 FF || || Application Extension
|-
| 30F || 0B || 11 || Size of block including application name and verification bytes (always 11)
|-
| 310 || 4E 45 54 53 43 41 50 45 32 2E 30 || NETSCAPE2.0 || 8-byte application name plus 3 verification bytes
|-
| 31B || 03 || 3 || Number of bytes in the following sub-block
|-
| 31C || 01 || 1 || Index of the current data sub-block ''(always 1 for the NETSCAPE block)''
|-
| 31D || FF FF || 65535 || [[Unsigned number]] of repetitions
|-
| 31F || 00 || || End of the sub-block chain for the Application Extension block
|-
| 320 || 21 F9 || || Graphic Control Extension for frame #1
|-
| 322 || 04 || 4 || Number of bytes (4) in the current sub-block
|-
| 323 || 04 || <syntaxhighlight lang="text">
000.....
...001..
......0.
.......0
</syntaxhighlight> ''(broken into sections for easier reading)'' || Reserved, 5 lower bits are [[bit field]]<br/>Disposal method 1: do not dispose<br/>No user input<br/>Transparent color, 0 means not given
|-
| 324 || 09 00 || 9 || Frame delay: 0.09 second delay before painting next frame
|-
| 326 || FF || || Transparent color index ''(unused in this frame)''
|-
| 327 || 00 || || End of sub-block chain for Graphic Control Extension block
|-
| 328 || 2C || || Image Descriptor of frame #1
|-
| 329 || 00 00 00 00 || (0, 0) || North-west corner position of image in logical screen: (0, 0)
|-
| 32D || 90 01 90 01 || (400, 400) || Frame width and height: 400{{resx}}400 pixels
|-
| 331 || 00 || 0 || Local color table: 0 means none & no interlacing
|-
| 332 || 08 || 8 || Minimum LZW code size for Image Data of frame #1
|-
| 333 || FF || 255 || Number of bytes of LZW image data in the following sub-block: 255 bytes
|-
| 334 || ... || <image data> || Image data, 255 bytes
|-
| 433 || FF || 255 || Number of bytes of LZW image data in the following sub-block, 255 bytes
|-
| 434 || ... || <image data> || Image data, 255 bytes
|-
| ⋮ || || || Repeat for next blocks
|-
| 92C0 || 00 || || End of sub-block chain for this frame
|-
| 92C1 || 21 F9 || || Graphic Control Extension for frame #2
|-
| ⋮ || || || Repeat for next frames
|-
| EDABD || 21 F9 || || Graphic Control Extension for frame #44
|-
| ⋮ || || || Image information and data for frame #44
|-
| F48F5 || 3B || || Trailer: Last byte in the file, signaling EOF
|}
जीसीई में सेकंड के सौवें हिस्से में प्रत्येक फ्रेम के लिए एनीमेशन विलंब निर्दिष्ट किया गया है। डेटा की कुछ किफायत संभव है जहां एक फ्रेम को डिस्प्ले के पिक्सेल के केवल एक हिस्से को फिर से लिखने की आवश्यकता होती है, क्योंकि इमेज डिस्क्रिप्टर पूरी छवि के बजाय एक छोटे आयत को फिर से स्कैन करने के लिए परिभाषित कर सकता है। ब्राउज़र या अन्य डिस्प्ले जो एनिमेटेड जीआईएफ का समर्थन नहीं करते हैं, आमतौर पर केवल पहला फ्रेम दिखाते हैं।


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


== [[ मेटाडाटा ]] ==
== [[ मेटाडाटा |मेटाडाटा]] ==
मेटाडेटा को जीआईएफ फाइलों में एक टिप्पणी ब्लॉक, एक सादा पाठ ब्लॉक या एक एप्लिकेशन-विशिष्ट एप्लिकेशन एक्सटेंशन ब्लॉक के रूप में संग्रहीत किया जा सकता है। कई ग्राफिक्स संपादक छवि उत्पन्न करने के लिए उपयोग किए गए डेटा को शामिल करने के लिए अनौपचारिक एप्लिकेशन एक्सटेंशन ब्लॉक का उपयोग करते हैं, ताकि इसे आगे के संपादन के लिए पुनर्प्राप्त किया जा सके।
मेटाडेटा को जीआईएफ फाइलों में एक टिप्पणी ब्लॉक, एक सादा पाठ ब्लॉक या एक एप्लिकेशन-विशिष्ट एप्लिकेशन एक्सटेंशन ब्लॉक के रूप में संग्रहीत किया जा सकता है। कई ग्राफिक्स संपादक छवि उत्पन्न करने के लिए उपयोग किए गए डेटा को सम्मिलित करने के लिए अनौपचारिक एप्लिकेशन एक्सटेंशन ब्लॉक का उपयोग करते हैं, ताकि इसे आगे के संपादन के लिए पुनर्प्राप्त किया जा सके।


इन सभी विधियों में तकनीकी रूप से मेटाडेटा को उप-ब्लॉकों में तोड़ने की आवश्यकता होती है ताकि एप्लिकेशन मेटाडेटा ब्लॉक को उसकी आंतरिक संरचना को जाने बिना नेविगेट कर सकें।
इन सभी विधियों में तकनीकी रूप से मेटाडेटा को उप-ब्लॉकों में तोड़ने की आवश्यकता होती है ताकि एप्लिकेशन मेटाडेटा ब्लॉक को उसकी आंतरिक संरचना को जाने बिना नेविगेट कर सकें।


[[ एक्स्टेंसिबल मेटाडेटा प्लेटफ़ॉर्म ]] (XMP) मेटाडेटा मानक ने GIF फ़ाइलों में XMP डेटा को शामिल करने के लिए एक अनौपचारिक लेकिन अब व्यापक XMP डेटा एप्लिकेशन एक्सटेंशन ब्लॉक पेश किया।<ref>{{cite web |url=https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP%20SDK%20Release%20cc-2016-08/XMPSpecificationPart3.pdf |title=XMP Specification Part 3: Storage in Files |date=2016 |publisher=Adobe |pages=11–12 |access-date=16 August 2018 |archive-date=25 February 2018 |archive-url=https://web.archive.org/web/20180225154501/https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP%20SDK%20Release%20cc-2016-08/XMPSpecificationPart3.pdf |url-status=live }}</ref> चूंकि XMP डेटा NUL वर्णों के बिना [[ UTF-8 ]] का उपयोग करके एन्कोड किया गया है, इसलिए डेटा में 0 बाइट्स नहीं हैं। डेटा को औपचारिक उप-ब्लॉकों में तोड़ने के बजाय, एक्सटेंशन ब्लॉक एक मैजिक ट्रेलर के साथ समाप्त हो जाता है जो डेटा को सब-ब्लॉक के रूप में मानने वाले किसी भी एप्लिकेशन को अंतिम 0 बाइट में रूट करता है जो उप-ब्लॉक श्रृंखला को समाप्त करता है।
[[ एक्स्टेंसिबल मेटाडेटा प्लेटफ़ॉर्म ]] (XMP) मेटाडेटा मानक ने जीआईएफ फ़ाइलों में XMP डेटा को सम्मिलित करने के लिए एक अनौपचारिक लेकिन अब व्यापक XMP डेटा एप्लिकेशन एक्सटेंशन ब्लॉक पेश किया।<ref>{{cite web |url=https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP%20SDK%20Release%20cc-2016-08/XMPSpecificationPart3.pdf |title=XMP Specification Part 3: Storage in Files |date=2016 |publisher=Adobe |pages=11–12 |access-date=16 August 2018 |archive-date=25 February 2018 |archive-url=https://web.archive.org/web/20180225154501/https://wwwimages2.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP%20SDK%20Release%20cc-2016-08/XMPSpecificationPart3.pdf |url-status=live }}</ref> चूंकि XMP डेटा NUL वर्णों के बिना [[ UTF-8 ]] का उपयोग करके एन्कोड किया गया है, इसलिए डेटा में 0 बाइट्स नहीं हैं। डेटा को औपचारिक उप-ब्लॉकों में तोड़ने के बदले में, एक्सटेंशन ब्लॉक एक मैजिक ट्रेलर के साथ समाप्त हो जाता है जो डेटा को सब-ब्लॉक के रूप में मानने वाले किसी भी एप्लिकेशन को अंतिम 0 बाइट में रूट करता है जो उप-ब्लॉक श्रृंखला को समाप्त करता है।


== यूनिसिस और LZW पेटेंट प्रवर्तन ==<!-- This section is linked from PNG -->
== यूनिसिस और एलजेडडब्ल्यू पेटेंट प्रवर्तन ==<!-- This section is linked from PNG -->
1977 और 1978 में, [[ जैकब ज़िव ]] और [[ अब्राहम लेम्पेल ]] ने दोषरहित डेटा-संपीड़न एल्गोरिदम की एक नई श्रेणी पर कुछ पेपर प्रकाशित किए, जिन्हें अब सामूहिक रूप से [[ LZ77 और LZ78 ]] के रूप में संदर्भित किया जाता है। 1983 में, [[ टेरी वेल्च ]] ने LZ78 का एक तेज़ संस्करण विकसित किया जिसे लेम्पेल-ज़िव-वेल्च (LZW) नाम दिया गया था।<ref name="PNG">{{cite web
1977 और 1978 में, [[ जैकब ज़िव ]] और [[ अब्राहम लेम्पेल ]] ने दोषरहित डेटा-कम्प्रेशन एल्गोरिदम की एक नई श्रेणी पर कुछ पेपर प्रकाशित किए, जिन्हें अब सामूहिक रूप से [[ LZ77 और LZ78 ]] के रूप में संदर्भित किया जाता है। 1983 में, [[ टेरी वेल्च ]] ने LZ78 का एक तेज़ संस्करण विकसित किया जिसे लेम्पेल-ज़िव-वेल्च (एलजेडडब्ल्यू) नाम दिया गया था।<ref name="PNG">{{cite web
  |url=http://www.libpng.org/pub/png/pnghist.html
  |url=http://www.libpng.org/pub/png/pnghist.html
  |title=History of the Portable Network Graphics (PNG) Format
  |title=History of the Portable Network Graphics (PNG) Format
Line 600: Line 536:
  |url-status=live
  |url-status=live
  }}</ref>
  }}</ref>
वेल्च ने जून 1983 में LZW विधि के लिए एक पेटेंट आवेदन दायर किया। परिणामी पेटेंट, US4558302,<ref>{{Cite patent|country=US|number=4558302|inventor-last=Welch|inventor-first=Terry A.|assign=[[Sperry Corp.]]|pubdate=1985-12-10|inventor1-link=Terry_Welch}}</ref> दिसंबर 1985 में प्रदान किया गया, [[ स्पेरी कॉर्पोरेशन ]] को सौंपा गया था, जो बाद में 1986 में [[ बरोज़ कॉर्पोरेशन ]] के साथ विलय हो गया और यूनिसिस का गठन किया।<ref name="PNG" />आगे पेटेंट यूनाइटेड किंगडम, फ्रांस, जर्मनी, इटली, जापान और कनाडा में प्राप्त किए गए थे।
वेल्च ने जून 1983 में एलजेडडब्ल्यू विधि के लिए एक पेटेंट आवेदन दायर किया। परिणामी पेटेंट, US4558302,<ref>{{Cite patent|country=US|number=4558302|inventor-last=Welch|inventor-first=Terry A.|assign=[[Sperry Corp.]]|pubdate=1985-12-10|inventor1-link=Terry_Welch}}</ref> दिसंबर 1985 में प्रदान किया गया, [[ स्पेरी कॉर्पोरेशन ]] को सौंपा गया था, जो बाद में 1986 में [[ बरोज़ कॉर्पोरेशन ]] के साथ विलय हो गया और यूनिसिस का गठन किया।<ref name="PNG" />आगे पेटेंट यूनाइटेड किंगडम, फ्रांस, जर्मनी, इटली, जापान और कनाडा में प्राप्त किए गए थे।


उपरोक्त पेटेंटों के अलावा, वेल्च के 1983 के पेटेंट में कई अन्य पेटेंटों के उद्धरण भी शामिल हैं जिन्होंने इसे प्रभावित किया, जिनमें शामिल हैं:
उपरोक्त पेटेंटों के अलावा, वेल्च के 1983 के पेटेंट में कई अन्य पेटेंटों के उद्धरण भी सम्मिलित हैं जिन्होंने इसे प्रभावित किया, जिनमें सम्मिलित हैं:
* 1980 के दो जापानी पेटेंट [[ NEC ]] के जून कानात्सु से,<ref>{{cite patent
* 1980 के दो जापानी पेटेंट [[ NEC ]] के जून कानात्सु से,<ref>{{cite patent
| country = JP
| country = JP
Line 636: Line 572:
| inventor1-first = Heinz Karl
| inventor1-first = Heinz Karl
}}</ref><ref>{{US patent|4558302}}</ref>
}}</ref><ref>{{US patent|4558302}}</ref>
जून 1984 में, वेल्च का एक लेख [[ IEEE ]] पत्रिका में प्रकाशित हुआ था, जिसमें पहली बार LZW तकनीक का सार्वजनिक रूप से वर्णन किया गया था।<ref name="cloanto">{{cite web|url=https://mike.pub/19950127-gif-lzw|title=The GIF Controversy: A Software Developer's Perspective|access-date=26 May 2015|archive-date=23 August 2016|archive-url=https://web.archive.org/web/20160823024419/https://mike.pub/19950127-gif-lzw|url-status=live}}</ref> LZW एक लोकप्रिय डेटा कम्प्रेशन तकनीक बन गई और, जब पेटेंट प्रदान किया गया, तो यूनिसिस ने सौ से अधिक कंपनियों के साथ लाइसेंसिंग समझौते किए।<ref name="PNG" /><ref name="LPF">{{cite web|url=https://www.thefreelibrary.com/UNISYS+CLARIFIES+POLICY+REGARDING+PATENT+USE+IN+ON-LINE+SERVICE+...-a016000999 |title=Unisys Clarifies Policy Regarding Patent Use in On-Line Service Offerings |archive-url=https://web.archive.org/web/20070207110047/http://lpf.ai.mit.edu/Patents/Gif/unisys.html|archive-date=7 February 2007}} – archived by [[League for Programming Freedom]]</ref>
जून 1984 में, वेल्च का एक लेख [[ IEEE ]] पत्रिका में प्रकाशित हुआ था, जिसमें पहली बार एलजेडडब्ल्यू तकनीक का सार्वजनिक रूप से वर्णन किया गया था।<ref name="cloanto">{{cite web|url=https://mike.pub/19950127-gif-lzw|title=The GIF Controversy: A Software Developer's Perspective|access-date=26 May 2015|archive-date=23 August 2016|archive-url=https://web.archive.org/web/20160823024419/https://mike.pub/19950127-gif-lzw|url-status=live}}</ref> एलजेडडब्ल्यू एक लोकप्रिय डेटा कम्प्रेशन तकनीक बन गई और, जब पेटेंट प्रदान किया गया, तो यूनिसिस ने सौ से अधिक कंपनियों के साथ लाइसेंसिंग समझौते किए।<ref name="PNG" /><ref name="LPF">{{cite web|url=https://www.thefreelibrary.com/UNISYS+CLARIFIES+POLICY+REGARDING+PATENT+USE+IN+ON-LINE+SERVICE+...-a016000999 |title=Unisys Clarifies Policy Regarding Patent Use in On-Line Service Offerings |archive-url=https://web.archive.org/web/20070207110047/http://lpf.ai.mit.edu/Patents/Gif/unisys.html|archive-date=7 February 2007}} – archived by [[League for Programming Freedom]]</ref>
LZW की लोकप्रियता ने CompuServe को 1987 में विकसित GIF के अपने संस्करण के लिए संपीड़न तकनीक के रूप में इसे चुनने के लिए प्रेरित किया। उस समय, CompuServe को पेटेंट के बारे में पता नहीं था।<ref name="PNG" />यूनिसिस को पता चला कि GIF के संस्करण ने LZW संपीड़न तकनीक का उपयोग किया और जनवरी 1993 में CompuServe के साथ लाइसेंसिंग वार्ता में प्रवेश किया। बाद के समझौते की घोषणा 24 दिसंबर 1994 को की गई।<ref name="KYZ" />यूनिसिस ने कहा कि वे उम्मीद करते हैं कि सभी प्रमुख व्यावसायिक ऑन-लाइन सूचना सेवा कंपनियां उचित दर पर यूनिसिस से प्रौद्योगिकी का लाइसेंस लेने के लिए LZW पेटेंट को नियोजित करती हैं, लेकिन उन्हें गैर-वाणिज्यिक, गैर-वाणिज्यिक, गैर- लाभ GIF-आधारित अनुप्रयोग, जिसमें ऑन-लाइन सेवाओं पर उपयोग के लिए शामिल हैं।<ref name="LPF" />
एलजेडडब्ल्यू की लोकप्रियता ने कम्पूसर्वे को 1987 में विकसित जीआईएफ के अपने संस्करण के लिए कम्प्रेशन तकनीक के रूप में इसे चुनने के लिए प्रेरित किया। उस समय, कम्पूसर्वे को पेटेंट के बारे में पता नहीं था।<ref name="PNG" /> यूनिसिस को पता चला कि जीआईएफ के संस्करण ने एलजेडडब्ल्यू कम्प्रेशन तकनीक का उपयोग किया और जनवरी 1993 में कम्पूसर्वे के साथ लाइसेंसिंग वार्ता में प्रवेश किया। बाद के समझौते की घोषणा 24 दिसंबर 1994 को की गई।<ref name="KYZ" />यूनिसिस ने कहा कि वे उम्मीद करते हैं कि सभी प्रमुख व्यावसायिक ऑन-लाइन सूचना सेवा कंपनियां उचित दर पर यूनिसिस से प्रौद्योगिकी का लाइसेंस लेने के लिए एलजेडडब्ल्यू पेटेंट को नियोजित करती हैं, लेकिन उन्हें गैर-वाणिज्यिक, गैर-वाणिज्यिक, गैर- लाभ जीआईएफ-आधारित अनुप्रयोग, जिसमें ऑन-लाइन सेवाओं पर उपयोग के लिए सम्मिलित हैं।<ref name="LPF" />
 
इस घोषणा के बाद, कम्पूसर्वे और Unisys की व्यापक निंदा हुई और कई सॉफ्टवेयर डेवलपर्स ने जीआईएफ का उपयोग बंद करने की धमकी दी। पोर्टेबल नेटवर्क ग्राफिक्स (नीचे देखें) को 1995 में एक इच्छित प्रतिस्थापन के रूप में विकसित किया गया था।<ref name="PNG" /><ref name="KYZ" /><ref name="cloanto" />हालांकि, पीएनजी प्रारूप के लिए वेब ब्राउज़र और अन्य सॉफ्टवेयर के निर्माताओं से समर्थन प्राप्त करना मुश्किल साबित हुआ और जीआईएफ को बदलना संभव नहीं था, हालांकि पीएनजी की लोक प्रियता धीरे-धीरे बढ़ी है।<ref name="PNG" />इसलिए, एलजेडडब्ल्यू कम्प्रेशन के बिना जीआईएफ विविधताएं विकसित की गईं। उदाहरण के लिए, एरिक एस. रेमंड के जीआईएफlib पर आधारित लिबंगिफ लाइब्रेरी, जीआईएफ के निर्माण की अनुमति देता है जो डेटा प्रारूप का पालन करता है लेकिन कम्प्रेशन सुविधाओं से बचा जाता है, इस प्रकार यूनिसिस एलजेडडब्ल्यू पेटेंट के उपयोग से बचा जाता है।<ref>{{cite web|url=https://directory.fsf.org/wiki/लिबुंगिफ|title=लिबुंगिफ|access-date=26 May 2015|archive-date=13 April 2015|archive-url=https://web.archive.org/web/20150413095700/http://directory.fsf.org/wiki/लिबुंगिफ|url-status=live}}</ref> 2001 डॉ. डॉब्स जर्नल|डॉ. डॉब के लेख ने इसके पेटेंट का उल्लंघन किए बिना एलजेडडब्ल्यू- संगत एन्कोडिंग प्राप्त करने का एक तरीका बताया।<ref>{{cite web |url=http://www.drdobbs.com/architecture-and-design/replacing-a-dictionary-with-a-square-roo/184404817 |title=Replacing a Dictionary with a Square Root |work=[[Dr. Dobb's Journal]] |first=Tom |last=Cargill |date=2001-10-01 |access-date=2017-01-20 |archive-date=28 June 2017 |archive-url=https://web.archive.org/web/20170628173622/http://www.drdobbs.com/architecture-and-design/replacing-a-dictionary-with-a-square-roo/184404817 |url-status=live }}</ref>
 
अगस्त 1999 में, यूनिसिस ने कुछ गैर-वाणिज्यिक और निजी वेबसाइटों के मालिकों के लिए $5000 या $7500 के एक बार के लाइसेंस शुल्क के भुगतान पर लाइसेंस प्राप्त करने के विकल्प की घोषणा करते हुए अपने लाइसेंसिंग अभ्यास के विवरण को बदल दिया।<ref name="Unisys">{{cite web|url=http://www.unisys.com/about__unisys/lzw/lzw__license__english.htm |title=LZW Software and Patent Information |access-date=2007-01-31 |url-status=dead |archive-url=https://web.archive.org/web/20090608194513/http://www.unisys.com/about__unisys/lzw/lzw__license__english.htm |archive-date=8 June 2009 }} – clarification of 2 September 1999</ref> ऐसे लाइसेंस की आवश्यकता वेबसाइट के मालिकों या अन्य जीआईएफ उपयोगकर्ताओं के लिए नहीं थी, जिन्होंने जीआईएफ बनाने के लिए लाइसेंस प्राप्त सॉफ़्टवेयर का उपयोग किया था। फिर भी, यूनिसिस को हजारों ऑनलाइन हमलों और उपयोगकर्ताओं से अपमानजनक ईमेल का सामना करना पड़ा, यह मानते हुए कि उनकी वेबसाइटों पर जीआईएफ का उपयोग करने के लिए उनसे $ 5000 का शुल्क लिया जाएगा या उन पर प्रकरण चलाया जाएगा।<ref name="slashdot">[https://slashdot.org/story/99/08/31/0143246/unisys-not-suing-most-webmasters-for-using-gifs Unisys Not Suing (most) Webmasters for Using GIFs] {{Webarchive|url=https://web.archive.org/web/20170510024223/https://slashdot.org/story/99/08/31/0143246/unisys-not-suing-most-webmasters-for-using-gifs |date=10 May 2017 }} – [[Slashdot]] investigation into the controversy</ref> सैकड़ों गैर-लाभकारी संगठनों, स्कूलों और सरकारों को मुफ्त लाइसेंस देने के बावजूद, यूनिसिस कोई भी अच्छा प्रचार करने में पूरी तरह से असमर्थ था और [[ प्रोग्रामिंग स्वतंत्रता के लिए लीग |प्रोग्रामिंग स्वतंत्रता के लिए लीग]] जैसे व्यक्तियों और संगठनों द्वारा निंदा की जाती रही, जिन्होंने 1999 में बर्न ऑल जीआईएफ अभियान आरंभ किया था। .<ref>{{cite web|archive-url=https://web.archive.org/web/19991013083423/http://burnallgifs.org/ |archive-date=1999-10-13 |url=http://burnallgifs.org/ |title=Burn All GIFs Day}}</ref><ref name="burn">[http://burnallgifs.org/archives/ Burn All GIFs] {{Webarchive|url=https://web.archive.org/web/20070203044403/http://burnallgifs.org/archives/ |date=3 February 2007 }} – A project of the League for Programming Freedom (latest version)</ref>
संयुक्त राज्य एलजेडडब्ल्यू पेटेंट 20 जून 2003 को समाप्त हो गया।<ref name="Unisys2" />यूनाइटेड किंगडम, फ्रांस, जर्मनी और इटली में समकक्ष पेटेंट 18 जून 2004 को समाप्त हो गए, जापानी पेटेंट 20 जून 2004 को समाप्त हो गए और कनाडाई पेटेंट 7 जुलाई 2004 को समाप्त हो गए।<ref name="Unisys2">{{cite web|url=http://www.unisys.com/about__unisys/lzw |title=License Information on GIF and Other LZW-based Technologies |access-date=2005-04-26 |url-status=dead |archive-url=https://web.archive.org/web/20090602212118/http://www.unisys.com/about__unisys/lzw |archive-date=2 June 2009 }}</ref> नतीजतन, जबकि यूनिसिस के पास एलजेडडब्ल्यू तकनीक में सुधार से संबंधित पेटेंट और पेटेंट आवेदन हैं,<ref name="Unisys2" />जुलाई 2004 से एलजेडडब्ल्यू स्वयं (और फलस्वरूप जीआईएफ) उपयोग करने के लिए स्वतंत्र है।<ref>{{cite web |url=https://www.gnu.org/philosophy/gif.html |title=Why There Are No GIF Files on GNU Web Pages |publisher=Free Software Foundation |access-date=19 May 2012 |archive-date=19 May 2012 |archive-url=https://web.archive.org/web/20120519232602/http://www.gnu.org/philosophy/gif.html |url-status=live }}</ref>


इस घोषणा के बाद, CompuServe और Unisys की व्यापक निंदा हुई और कई सॉफ्टवेयर डेवलपर्स ने GIF का उपयोग बंद करने की धमकी दी। पोर्टेबल नेटवर्क ग्राफिक्स (नीचे देखें) को 1995 में एक इच्छित प्रतिस्थापन के रूप में विकसित किया गया था।<ref name="PNG" /><ref name="KYZ" /><ref name="cloanto" />हालांकि, पीएनजी प्रारूप के लिए वेब ब्राउज़र और अन्य सॉफ्टवेयर के निर्माताओं से समर्थन प्राप्त करना मुश्किल साबित हुआ और जीआईएफ को बदलना संभव नहीं था, हालांकि पीएनजी की लोकप्रियता धीरे-धीरे बढ़ी है।<ref name="PNG" />इसलिए, LZW संपीड़न के बिना GIF विविधताएं विकसित की गईं। उदाहरण के लिए, एरिक एस. रेमंड के giflib पर आधारित लिबंगिफ लाइब्रेरी, जीआईएफ के निर्माण की अनुमति देता है जो डेटा प्रारूप का पालन करता है लेकिन संपीड़न सुविधाओं से बचा जाता है, इस प्रकार यूनिसिस LZW पेटेंट के उपयोग से बचा जाता है।<ref>{{cite web|url=https://directory.fsf.org/wiki/लिबुंगिफ|title=लिबुंगिफ|access-date=26 May 2015|archive-date=13 April 2015|archive-url=https://web.archive.org/web/20150413095700/http://directory.fsf.org/wiki/लिबुंगिफ|url-status=live}}</ref> 2001 डॉ. डॉब्स जर्नल|डॉ. डॉब के लेख ने इसके पेटेंट का उल्लंघन किए बिना LZW- संगत एन्कोडिंग प्राप्त करने का एक तरीका बताया।<ref>{{cite web |url=http://www.drdobbs.com/architecture-and-design/replacing-a-dictionary-with-a-square-roo/184404817 |title=Replacing a Dictionary with a Square Root |work=[[Dr. Dobb's Journal]] |first=Tom |last=Cargill |date=2001-10-01 |access-date=2017-01-20 |archive-date=28 June 2017 |archive-url=https://web.archive.org/web/20170628173622/http://www.drdobbs.com/architecture-and-design/replacing-a-dictionary-with-a-square-roo/184404817 |url-status=live }}</ref>
अगस्त 1999 में, यूनिसिस ने कुछ गैर-वाणिज्यिक और निजी वेबसाइटों के मालिकों के लिए $5000 या $7500 के एक बार के लाइसेंस शुल्क के भुगतान पर लाइसेंस प्राप्त करने के विकल्प की घोषणा करते हुए अपने लाइसेंसिंग अभ्यास के विवरण को बदल दिया।<ref name="Unisys">{{cite web|url=http://www.unisys.com/about__unisys/lzw/lzw__license__english.htm |title=LZW Software and Patent Information |access-date=2007-01-31 |url-status=dead |archive-url=https://web.archive.org/web/20090608194513/http://www.unisys.com/about__unisys/lzw/lzw__license__english.htm |archive-date=8 June 2009 }} – clarification of 2 September 1999</ref> ऐसे लाइसेंस की आवश्यकता वेबसाइट के मालिकों या अन्य जीआईएफ उपयोगकर्ताओं के लिए नहीं थी, जिन्होंने जीआईएफ बनाने के लिए लाइसेंस प्राप्त सॉफ़्टवेयर का उपयोग किया था। फिर भी, यूनिसिस को हजारों ऑनलाइन हमलों और उपयोगकर्ताओं से अपमानजनक ईमेल का सामना करना पड़ा, यह मानते हुए कि उनकी वेबसाइटों पर जीआईएफ का उपयोग करने के लिए उनसे $ 5000 का शुल्क लिया जाएगा या उन पर मुकदमा चलाया जाएगा।<ref name="slashdot">[https://slashdot.org/story/99/08/31/0143246/unisys-not-suing-most-webmasters-for-using-gifs Unisys Not Suing (most) Webmasters for Using GIFs] {{Webarchive|url=https://web.archive.org/web/20170510024223/https://slashdot.org/story/99/08/31/0143246/unisys-not-suing-most-webmasters-for-using-gifs |date=10 May 2017 }} – [[Slashdot]] investigation into the controversy</ref> सैकड़ों गैर-लाभकारी संगठनों, स्कूलों और सरकारों को मुफ्त लाइसेंस देने के बावजूद, यूनिसिस कोई भी अच्छा प्रचार करने में पूरी तरह से असमर्थ था और [[ प्रोग्रामिंग स्वतंत्रता के लिए लीग ]] जैसे व्यक्तियों और संगठनों द्वारा निंदा की जाती रही, जिन्होंने 1999 में बर्न ऑल जीआईएफ अभियान शुरू किया था। .<ref>{{cite web|archive-url=https://web.archive.org/web/19991013083423/http://burnallgifs.org/ |archive-date=1999-10-13 |url=http://burnallgifs.org/ |title=Burn All GIFs Day}}</ref><ref name="burn">[http://burnallgifs.org/archives/ Burn All GIFs] {{Webarchive|url=https://web.archive.org/web/20070203044403/http://burnallgifs.org/archives/ |date=3 February 2007 }} – A project of the League for Programming Freedom (latest version)</ref>
संयुक्त राज्य LZW पेटेंट 20 जून 2003 को समाप्त हो गया।<ref name="Unisys2"/>यूनाइटेड किंगडम, फ्रांस, जर्मनी और इटली में समकक्ष पेटेंट 18 जून 2004 को समाप्त हो गए, जापानी पेटेंट 20 जून 2004 को समाप्त हो गए और कनाडाई पेटेंट 7 जुलाई 2004 को समाप्त हो गए।<ref name="Unisys2">{{cite web|url=http://www.unisys.com/about__unisys/lzw |title=License Information on GIF and Other LZW-based Technologies |access-date=2005-04-26 |url-status=dead |archive-url=https://web.archive.org/web/20090602212118/http://www.unisys.com/about__unisys/lzw |archive-date=2 June 2009 }}</ref> नतीजतन, जबकि यूनिसिस के पास LZW तकनीक में सुधार से संबंधित पेटेंट और पेटेंट आवेदन हैं,<ref name="Unisys2" />जुलाई 2004 से LZW खुद (और फलस्वरूप GIF) उपयोग करने के लिए स्वतंत्र है।<ref>{{cite web |url=https://www.gnu.org/philosophy/gif.html |title=Why There Are No GIF Files on GNU Web Pages |publisher=Free Software Foundation |access-date=19 May 2012 |archive-date=19 May 2012 |archive-url=https://web.archive.org/web/20120519232602/http://www.gnu.org/philosophy/gif.html |url-status=live }}</ref>




Line 647: Line 585:


=== पीएनजी ===
=== पीएनजी ===
LZW संपीड़न तकनीक पर यूनिसिस के पेटेंट के उल्लंघन से बचने के लिए पोर्टेबल नेटवर्क ग्राफिक्स (PNG) को GIF के प्रतिस्थापन के रूप में डिज़ाइन किया गया था।<ref name="PNG" />PNG GIF की तुलना में बेहतर संपीड़न और अधिक सुविधाएँ प्रदान करता है,<ref name="png_fea">{{cite web |title=पीएनजी बनाम जीआईएफ संपीड़न|date=31 March 2007 |url=http://www.websiteoptimization.com/speed/tweak/png/ |access-date=8 June 2009 |url-status=live |archive-url=https://web.archive.org/web/20090715080828/http://www.websiteoptimization.com/speed/tweak/png/ |archive-date=15 July 2009}}</ref> एनिमेशन एकमात्र महत्वपूर्ण अपवाद है। PNG ऐसे उदाहरणों में GIF से अधिक उपयुक्त है जहां ट्रू-कलर इमेजिंग और [[ अल्फा पारदर्शिता ]] की आवश्यकता होती है।
एलजेडडब्ल्यू कम्प्रेशन तकनीक पर यूनिसिस के पेटेंट के उल्लंघन से बचने के लिए पोर्टेबल नेटवर्क ग्राफिक्स (पीएनजी) को जीआईएफ के प्रतिस्थापन के रूप में डिज़ाइन किया गया था।<ref name="PNG" />पीएनजी जीआईएफ की तुलना में बेहतर कम्प्रेशन और अधिक सुविधाएँ प्रदान करता है,<ref name="png_fea">{{cite web |title=पीएनजी बनाम जीआईएफ संपीड़न|date=31 March 2007 |url=http://www.websiteoptimization.com/speed/tweak/png/ |access-date=8 June 2009 |url-status=live |archive-url=https://web.archive.org/web/20090715080828/http://www.websiteoptimization.com/speed/tweak/png/ |archive-date=15 July 2009}}</ref> एनिमेशन एकमात्र महत्वपूर्ण अपवाद है। पीएनजी ऐसे उदाहरणों में जीआईएफ से अधिक उपयुक्त है जहां ट्रू-कलर इमेजिंग और [[ अल्फा पारदर्शिता |अल्फा पारदर्शिता]] की आवश्यकता होती है।


हालाँकि PNG प्रारूप के लिए समर्थन धीरे-धीरे आया, नए [[ वेब ब्राउज़र ]] PNG का समर्थन करते हैं। [[ Internet Explorer ]] के पुराने संस्करण PNG की सभी विशेषताओं का समर्थन नहीं करते हैं। संस्करण 6 और पहले के संस्करण Microsoft-विशिष्ट HTML एक्सटेंशन का उपयोग किए बिना [[ अल्फा चैनल ]] पारदर्शिता का समर्थन नहीं करते हैं। रेफरी>{{cite web |title=अल्फा इमेज लोडर फ़िल्टर|publisher=Microsoft |url=http://msdn.microsoft.com/en-us/library/ms532969(VS.85).aspx |access-date=26 May 2015 |archive-date=3 October 2014 |archive-url=https://web.archive.org/web/20141003214847/http://msdn.microsoft.com/en-us/library/ms532969(VS.85).aspx |url-status=live}}</रेफरी> पीएनजी छवियों का [[ गामा सुधार ]] सुधार संस्करण 8 से पहले समर्थित नहीं था, और पिछले संस्करणों में इन छवियों के प्रदर्शन में गलत रंग हो सकता है।<ref name="new_ie7">{{cite web |url= http://msdn.microsoft.com/en-us/library/ms649487%28VS.85%29.aspx |title= इंटरनेट एक्सप्लोरर 7 में नया क्या है|work= [[MSDN]] |access-date= 6 March 2009 |archive-date= 1 March 2009 |archive-url= https://web.archive.org/web/20090301140032/http://msdn.microsoft.com/en-us/library/ms649487(VS.85).aspx |url-status= live }}<!--<on no gamma support--></रेफरी>
हालाँकि पीएनजी प्रारूप के लिए समर्थन धीरे-धीरे आया, नए [[ वेब ब्राउज़र ]]पीएनजी का समर्थन करते हैं। [[ Internet Explorer |इंटरनेट एक्स्प्लोरर]] के पुराने संस्करण पीएनजी की सभी विशेषताओं का समर्थन नहीं करते हैं। संस्करण 6 और पहले के संस्करण माइक्रोसॉफ्ट-विशिष्ट HTML एक्सटेंशन का उपयोग किए बिना [[ अल्फा चैनल ]] पारदर्शिता का समर्थन नहीं करते हैं।
 
समान 8-बिट (या निम्न) छवि डेटा के लिए, पीएनजी एन्कोडिंग में उपयोग की जाने वाली अधिक कुशल संपीड़न तकनीकों के कारण, पीएनजी फाइलें आमतौर पर समकक्ष जीआईएफ से छोटी होती हैं।<ref name="png_opt">{{cite web |title=पीएनजी छवि फ़ाइल प्रारूप|url=http://www.scantips.com/basics9p.html |access-date= 8 June 2009 |archive-url=https://web.archive.org/web/20090614110627/http://www.scantips.com/basics9p.html |archive-date=14 June 2009 |url-status=live}}</ref> जीआईएफ के लिए पूर्ण समर्थन मुख्य रूप से इसकी अनुमति देने वाली जटिल कैनवास संरचना द्वारा जटिल है, हालांकि यह कॉम्पैक्ट एनीमेशन सुविधाओं को सक्षम बनाता है।


=== एनिमेशन प्रारूप ===
=== एनिमेशन प्रारूप ===
वीडियो वेब पर सामान्य उपयोग के माध्यम से GIF द्वारा पेश की जाने वाली कई समस्याओं का समाधान करते हैं। इनमें अत्यधिक छोटे फ़ाइल आकार, 8-बिट रंग प्रतिबंध को पार करने की क्षमता, और [[ वीडियो कोडेक ]] के माध्यम से बेहतर फ्रेम-हैंडलिंग और संपीड़न शामिल हैं। वेब ब्राउज़र में GIF प्रारूप के लिए वस्तुतः सार्वभौमिक समर्थन और [[ HTML ]] मानक में वीडियो के लिए आधिकारिक समर्थन की कमी के कारण GIF को वेब पर लघु वीडियो जैसी फ़ाइलों को प्रदर्शित करने के उद्देश्य से प्रमुखता मिली।
वीडियो वेब पर सामान्य उपयोग के माध्यम से जीआईएफ द्वारा पेश की जाने वाली कई समस्याओं का समाधान करते हैं। इनमें अत्यधिक छोटे फ़ाइल आकार, 8-बिट रंग प्रतिबंध को पार करने की क्षमता, और [[ वीडियो कोडेक ]] के माध्यम से बेहतर फ्रेम-हैंडलिंग और कम्प्रेशन सम्मिलित हैं। वेब ब्राउज़र में जीआईएफ प्रारूप के लिए वस्तुतः सार्वभौमिक समर्थन और [[ HTML ]] मानक में वीडियो के लिए आधिकारिक समर्थन की कमी के कारण जीआईएफ को वेब पर लघु वीडियो जैसी फ़ाइलों को प्रदर्शित करने के उद्देश्य से प्रमुखता मिली।


* [[ एकाधिक छवि नेटवर्क ग्राफिक्स ]] (मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स) को मूल रूप से एनिमेशन के लिए PNG-आधारित समाधान के रूप में विकसित किया गया था। एमएनजी 2001 में संस्करण 1.0 तक पहुंच गया, लेकिन कुछ अनुप्रयोग इसका समर्थन करते हैं।
* [[ एकाधिक छवि नेटवर्क ग्राफिक्स ]] (मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स) को मूल रूप से एनिमेशन के लिए पीएनजी-आधारित समाधान के रूप में विकसित किया गया था। एमएनजी 2001 में संस्करण 1.0 तक पहुंच गया, लेकिन कुछ अनुप्रयोग इसका समर्थन करते हैं।


* [[ एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स ]] (एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स) [[ mozilla ]] द्वारा 2006 में प्रस्तावित किया गया था। APNG MNG प्रारूप के विकल्प के रूप में PNG प्रारूप का एक विस्तार है। APNG 2019 तक अधिकांश ब्राउज़रों द्वारा समर्थित है।<ref>{{Cite web|url=https://caniuse.com/#feat=apng|title=Can I use... Support tables for HTML5, CSS3, etc|website=caniuse.com|access-date=10 April 2020|archive-date=19 February 2018|archive-url=https://web.archive.org/web/20180219074228/https://caniuse.com/#feat=apng|url-status=live}}</ref> एपीएनजी डीकोडर्स में पीछे की ओर संगतता बनाए रखते हुए पीएनजी फाइलों को एनिमेट करने की क्षमता प्रदान करता है जो एनीमेशन खंड (एमएनजी के विपरीत) को समझ नहीं सकता है। पुराने डिकोडर केवल एनीमेशन के पहले फ्रेम को प्रस्तुत करेंगे।
* [[ एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स ]] (एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स) [[ mozilla ]] द्वारा 2006 में प्रस्तावित किया गया था। Aपीएनजी MNG प्रारूप के विकल्प के रूप में पीएनजी प्रारूप का एक विस्तार है। Aपीएनजी 2019 तक अधिकांश ब्राउज़रों द्वारा समर्थित है।<ref>{{Cite web|url=https://caniuse.com/#feat=apng|title=Can I use... Support tables for HTML5, CSS3, etc|website=caniuse.com|access-date=10 April 2020|archive-date=19 February 2018|archive-url=https://web.archive.org/web/20180219074228/https://caniuse.com/#feat=apng|url-status=live}}</ref> एपीएनजी डीकोडर्स में पीछे की ओर संगतता बनाए रखते हुए पीएनजी फाइलों को एनिमेट करने की क्षमता प्रदान करता है जो एनीमेशन खंड (एमएनजी के विपरीत) को समझ नहीं सकता है। पुराने डिकोडर केवल एनीमेशन के पहले फ्रेम को प्रस्तुत करेंगे।


: पीएनजी समूह ने 20 अप्रैल 2007 को आधिकारिक तौर पर एपीएनजी को एक आधिकारिक विस्तार के रूप में खारिज कर दिया।<ref>{{cite web|url=http://sourceforge.net/mailarchive/message.php?msg_id=131482|title=VOTE FAILED: APNG 20070405a|publisher=[[SourceForge]] mailing list|date=2007-04-20|access-date=14 July 2013|archive-date=13 February 2013|archive-url=https://web.archive.org/web/20130213103632/http://sourceforge.net/mailarchive/message.php?msg_id=131482|url-status=live}}</ref>
: पीएनजी समूह ने 20 अप्रैल 2007 को आधिकारिक तौर पर एपीएनजी को एक आधिकारिक विस्तार के रूप में खारिज कर दिया।<ref>{{cite web|url=http://sourceforge.net/mailarchive/message.php?msg_id=131482|title=VOTE FAILED: APNG 20070405a|publisher=[[SourceForge]] mailing list|date=2007-04-20|access-date=14 July 2013|archive-date=13 February 2013|archive-url=https://web.archive.org/web/20130213103632/http://sourceforge.net/mailarchive/message.php?msg_id=131482|url-status=live}}</ref>
: कई अलग-अलग दृष्टिकोणों का उपयोग करते हुए पीएनजी पर आधारित एक सरल एनिमेटेड ग्राफिक्स प्रारूप के लिए बाद के कई प्रस्ताव आए हैं।<ref name="proposalcomparison">{{cite web |url=http://gjuyn.xs4all.nl/pnganim.html |title=Discussion for a simple "animated" PNG format |archive-date=2009-02-26 |archive-url=https://web.archive.org/web/20090226103407/http://gjuyn.xs4all.nl/pnganim.html |access-date=2011-07-12}}</ref> फिर भी, APNG अभी भी Mozilla द्वारा विकसित किया जा रहा है और Mozilla Firefox#Version 3.0|Firefox 3.0 में समर्थित है<ref name="APNG">{{cite web|url=https://wiki.mozilla.org/APNG_Specification|title=APNG Specification|access-date=26 May 2015|archive-date=5 July 2010|archive-url=https://web.archive.org/web/20100705233055/https://wiki.mozilla.org/APNG_Specification|url-status=live}}</ref><ref name="mozlabsapng">{{Cite web |url=https://blog.mozilla.org/labs/2007/08/better-animations-in-firefox-3/ |title=Mozilla Labs » Blog Archive » Better animations in Firefox 3<!-- Bot generated title --> |access-date=3 February 2016 |archive-date=7 March 2016 |archive-url=https://web.archive.org/web/20160307093938/https://blog.mozilla.org/labs/2007/08/better-animations-in-firefox-3/ |url-status=live }}</ref> जबकि एमएनजी समर्थन हटा दिया गया था।<ref>{{cite web|url=https://bugzilla.mozilla.org/show_bug.cgi?id=195280|title=195280 – Removal of MNG/JNG support|access-date=26 May 2015|archive-date=25 February 2021|archive-url=https://web.archive.org/web/20210225102000/https://bugzilla.mozilla.org/show_bug.cgi?id=195280|url-status=live}}</ref><ref>{{cite web|url=https://bugzilla.mozilla.org/show_bug.cgi?id=18574|title=18574 – (mng) restore support for MNG animation format and JNG image format|access-date=26 May 2015|archive-date=17 March 2021|archive-url=https://web.archive.org/web/20210317013748/https://bugzilla.mozilla.org/show_bug.cgi?id=18574|url-status=live}}</ref> एपीएनजी वर्तमान में क्रोम (संस्करण 59.0 के बाद से), ओपेरा, फ़ायरफ़ॉक्स और एज सहित सभी प्रमुख वेब ब्राउज़रों द्वारा समर्थित है।
: कई अलग-अलग दृष्टिकोणों का उपयोग करते हुए पीएनजी पर आधारित एक सरल एनिमेटेड ग्राफिक्स प्रारूप के लिए बाद के कई प्रस्ताव आए हैं।<ref name="proposalcomparison">{{cite web |url=http://gjuyn.xs4all.nl/pnganim.html |title=Discussion for a simple "animated" PNG format |archive-date=2009-02-26 |archive-url=https://web.archive.org/web/20090226103407/http://gjuyn.xs4all.nl/pnganim.html |access-date=2011-07-12}}</ref> फिर भी, Aपीएनजी अभी भी Mozilla द्वारा विकसित किया जा रहा है और Mozilla Firefox#Version 3.0|Firefox 3.0 में समर्थित है<ref name="APNG">{{cite web|url=https://wiki.mozilla.org/APNG_Specification|title=APNG Specification|access-date=26 May 2015|archive-date=5 July 2010|archive-url=https://web.archive.org/web/20100705233055/https://wiki.mozilla.org/APNG_Specification|url-status=live}}</ref><ref name="mozlabsapng">{{Cite web |url=https://blog.mozilla.org/labs/2007/08/better-animations-in-firefox-3/ |title=Mozilla Labs » Blog Archive » Better animations in Firefox 3<!-- Bot generated title --> |access-date=3 February 2016 |archive-date=7 March 2016 |archive-url=https://web.archive.org/web/20160307093938/https://blog.mozilla.org/labs/2007/08/better-animations-in-firefox-3/ |url-status=live }}</ref> जबकि एमएनजी समर्थन हटा दिया गया था।<ref>{{cite web|url=https://bugzilla.mozilla.org/show_bug.cgi?id=195280|title=195280 – Removal of MNG/JNG support|access-date=26 May 2015|archive-date=25 February 2021|archive-url=https://web.archive.org/web/20210225102000/https://bugzilla.mozilla.org/show_bug.cgi?id=195280|url-status=live}}</ref><ref>{{cite web|url=https://bugzilla.mozilla.org/show_bug.cgi?id=18574|title=18574 – (mng) restore support for MNG animation format and JNG image format|access-date=26 May 2015|archive-date=17 March 2021|archive-url=https://web.archive.org/web/20210317013748/https://bugzilla.mozilla.org/show_bug.cgi?id=18574|url-status=live}}</ref> एपीएनजी वर्तमान में क्रोम (संस्करण 59.0 के बाद से), ओपेरा, फ़ायरफ़ॉक्स और एज सहित सभी प्रमुख वेब ब्राउज़रों द्वारा समर्थित है।


* एंबेडेड [[ एडोब फ्लैश ]] ऑब्जेक्ट्स और
* एंबेडेड [[ एडोब फ्लैश ]] ऑब्जेक्ट्स और
Line 668: Line 604:
* [[ वेबम ]] और
* [[ वेबम ]] और
* [[ वेबपी ]] विकास में हैं और कुछ वेब ब्राउज़रों द्वारा समर्थित हैं।<ref>{{cite web |url=https://blog.chromium.org/2013/11/chrome-32-beta-animated-webp-images-and.html |title=Chromium Blog: Chrome 32 Beta: Animated WebP images and faster Chrome for Android touch input |publisher=Blog.chromium.org |date=2013-11-21 |access-date=2014-02-01 |archive-date=17 July 2018 |archive-url=https://web.archive.org/web/20180717235844/https://blog.chromium.org/2013/11/chrome-32-beta-animated-webp-images-and.html |url-status=live }}</ref>
* [[ वेबपी ]] विकास में हैं और कुछ वेब ब्राउज़रों द्वारा समर्थित हैं।<ref>{{cite web |url=https://blog.chromium.org/2013/11/chrome-32-beta-animated-webp-images-and.html |title=Chromium Blog: Chrome 32 Beta: Animated WebP images and faster Chrome for Android touch input |publisher=Blog.chromium.org |date=2013-11-21 |access-date=2014-02-01 |archive-date=17 July 2018 |archive-url=https://web.archive.org/web/20180717235844/https://blog.chromium.org/2013/11/chrome-32-beta-animated-webp-images-and.html |url-status=live }}</ref>
* वेब एनीमेशन के अन्य विकल्पों में [[ AJAX ]] का उपयोग करके अलग-अलग फ़्रेमों की सेवा करना शामिल है, या
* वेब एनीमेशन के अन्य विकल्पों में [[ AJAX ]] का उपयोग करके अलग-अलग फ़्रेमों की सेवा करना सम्मिलित है, या
* [[ जावास्क्रिप्ट ]] या [[ सिंक्रनाइज़ मल्टीमीडिया एकीकरण भाषा ]] (सिंक्रोनाइज़्ड मल्टीमीडिया इंटीग्रेशन लैंग्वेज) का उपयोग करके [[ स्केलेबल वेक्टर ग्राफिक्स ]] (स्केलेबल वेक्टर ग्राफिक्स) इमेज को एनिमेट करना।{{citation needed|date=December 2013}}
* [[ जावास्क्रिप्ट ]] या [[ सिंक्रनाइज़ मल्टीमीडिया एकीकरण भाषा ]] (सिंक्रोनाइज़्ड मल्टीमीडिया इंटीग्रेशन लैंग्वेज) का उपयोग करके [[ स्केलेबल वेक्टर ग्राफिक्स ]] (स्केलेबल वेक्टर ग्राफिक्स) इमेज को एनिमेट करना।
* HTML5 वीडियो के व्यापक समर्थन की शुरुआत के साथ (<code><video></code>) अधिकांश वेब ब्राउज़रों में टैग, कुछ वेबसाइटें JavaScript फ़ंक्शंस द्वारा उत्पन्न वीडियो टैग के लूप किए गए संस्करण का उपयोग करती हैं। यह एक जीआईएफ का रूप देता है, लेकिन संपीड़ित वीडियो के आकार और गति के फायदे के साथ।
* HTML5 वीडियो के व्यापक समर्थन की शुरुआत के साथ (<code><video></code>) अधिकांश वेब ब्राउज़रों में टैग, कुछ वेबसाइटें JavaScript फ़ंक्शंस द्वारा उत्पन्न वीडियो टैग के लूप किए गए संस्करण का उपयोग करती हैं। यह एक जीआईएफ का रूप देता है, लेकिन संपीड़ित वीडियो के आकार और गति के फायदे के साथ।


: उल्लेखनीय उदाहरण [[ Gfycat ]] और [[ Imgur ]] और उनके GIFV मेटाफ़ॉर्मेट हैं, जो वास्तव में एक लूप्ड [[ MP4 ]] या WebM संपीड़ित वीडियो चलाने वाला एक वीडियो टैग है।<ref>{{cite web |url=http://imgur.com/blog/2014/10/09/introducing-gifv/ |title=Introducing GIFV - Imgur Blog |publisher=imgur.com |date=2014-10-09 |access-date=2014-12-14 |archive-date=14 December 2014 |archive-url=https://web.archive.org/web/20141214115941/http://imgur.com/blog/2014/10/09/introducing-gifv/ |url-status=live }}</ref>
: उल्लेखनीय उदाहरण [[ Gfycat ]] और [[ Imgur ]] और उनके जीआईएफV मेटाफ़ॉर्मेट हैं, जो वास्तव में एक लूप्ड [[ MP4 ]] या WebM संपीड़ित वीडियो चलाने वाला एक वीडियो टैग है।<ref>{{cite web |url=http://imgur.com/blog/2014/10/09/introducing-gifv/ |title=Introducing GIFV - Imgur Blog |publisher=imgur.com |date=2014-10-09 |access-date=2014-12-14 |archive-date=14 December 2014 |archive-url=https://web.archive.org/web/20141214115941/http://imgur.com/blog/2014/10/09/introducing-gifv/ |url-status=live }}</ref>
* उच्च दक्षता छवि फ़ाइल प्रारूप (उच्च दक्षता छवि फ़ाइल प्रारूप) एक छवि फ़ाइल प्रारूप है, जिसे 2015 में अंतिम रूप दिया गया है, जो [[ HEVC ]] वीडियो प्रारूप के आधार पर असतत कोसाइन ट्रांसफ़ॉर्म (DCT) हानिपूर्ण संपीड़न एल्गोरिदम का उपयोग करता है, और JPEG छवि प्रारूप से संबंधित है। [[ जेपीईजी ]] के विपरीत, एचईआईएफ एनीमेशन का समर्थन करता है।<ref>{{cite web |last1=Thomson |first1=Gavin |last2=Shah |first2=Athar |title=Introducing HEIF and HEVC |url=https://devstreaming-cdn.apple.com/videos/wwdc/2017/503i6plfvfi7o3222/503/503_introducing_heif_and_hevc.pdf |publisher=[[Apple Inc.]] |year=2017 |access-date=5 August 2019 |archive-date=19 January 2020 |archive-url=https://web.archive.org/web/20200119034339/https://devstreaming-cdn.apple.com/videos/wwdc/2017/503i6plfvfi7o3222/503/503_introducing_heif_and_hevc.pdf |url-status=live }}</ref> : जीआईएफ प्रारूप की तुलना में, जिसमें डीसीटी संपीड़न की कमी है, एचईआईएफ उल्लेखनीय रूप से अधिक कुशल संपीड़न की अनुमति देता है। HEIF अधिक जानकारी संग्रहीत करता है और समान GIF के आकार के एक छोटे से अंश पर उच्च-गुणवत्ता वाली एनिमेटेड छवियां बनाता है।<ref>{{cite web |title=HEIF Comparison - High Efficiency Image File Format |url=https://nokiatech.github.io/heif/comparison.html |publisher=[[Nokia Technologies]] |access-date=5 August 2019 |archive-date=25 July 2019 |archive-url=https://web.archive.org/web/20190725135250/http://nokiatech.github.io/heif/comparison.html |url-status=live }}</ref>
* उच्च दक्षता छवि फ़ाइल प्रारूप (उच्च दक्षता छवि फ़ाइल प्रारूप) एक छवि फ़ाइल प्रारूप है, जिसे 2015 में अंतिम रूप दिया गया है, जो [[ HEVC ]] वीडियो प्रारूप के आधार पर असतत कोसाइन ट्रांसफ़ॉर्म (DCT) हानिपूर्ण कम्प्रेशन एल्गोरिदम का उपयोग करता है, और JPEG छवि प्रारूप से संबंधित है। [[ जेपीईजी ]] के विपरीत, एचईआईएफ एनीमेशन का समर्थन करता है।<ref>{{cite web |last1=Thomson |first1=Gavin |last2=Shah |first2=Athar |title=Introducing HEIF and HEVC |url=https://devstreaming-cdn.apple.com/videos/wwdc/2017/503i6plfvfi7o3222/503/503_introducing_heif_and_hevc.pdf |publisher=[[Apple Inc.]] |year=2017 |access-date=5 August 2019 |archive-date=19 January 2020 |archive-url=https://web.archive.org/web/20200119034339/https://devstreaming-cdn.apple.com/videos/wwdc/2017/503i6plfvfi7o3222/503/503_introducing_heif_and_hevc.pdf |url-status=live }}</ref> : जीआईएफ प्रारूप की तुलना में, जिसमें डीसीटी कम्प्रेशन की कमी है, एचईआईएफ उल्लेखनीय रूप से अधिक कुशल कम्प्रेशन की अनुमति देता है। HEIF अधिक सूचना संग्रहीत करता है और समान जीआईएफ के आकार के एक छोटे से अंश पर उच्च-गुणवत्ता वाली एनिमेटेड छवियां बनाता है।<ref>{{cite web |title=HEIF Comparison - High Efficiency Image File Format |url=https://nokiatech.github.io/heif/comparison.html |publisher=[[Nokia Technologies]] |access-date=5 August 2019 |archive-date=25 July 2019 |archive-url=https://web.archive.org/web/20190725135250/http://nokiatech.github.io/heif/comparison.html |url-status=live }}</ref>
* [[ VP9 ]] केवल 4:2:0 [[ क्रोमा सबसैम्पलिंग ]] के साथ [[ अल्फा रचना ]] का समर्थन करता है<ref>{{Cite web|url=https://trac.ffmpeg.org/ticket/3271?cversion=0&cnum_hist=3|title=#3271 (Allow using additional pixel formats with libvpx-vp9) – FFmpeg|website=trac.ffmpeg.org|access-date=10 April 2020|archive-date=16 June 2020|archive-url=https://web.archive.org/web/20200616041834/https://trac.ffmpeg.org/ticket/3271?cversion=0&cnum_hist=3|url-status=live}}</ref> [[ YUV ]]A420 पिक्सेल प्रारूप में, जो जीआईएफ के लिए अनुपयुक्त हो सकता है जो ठीक रंग विवरण के साथ [[ रेखांकन ]] [[ वेक्टर ग्राफिक्स ]] के साथ पारदर्शिता को जोड़ती है।
* [[ VP9 ]] केवल 4:2:0 [[ क्रोमा सबसैम्पलिंग ]] के साथ [[ अल्फा रचना ]] का समर्थन करता है<ref>{{Cite web|url=https://trac.ffmpeg.org/ticket/3271?cversion=0&cnum_hist=3|title=#3271 (Allow using additional pixel formats with libvpx-vp9) – FFmpeg|website=trac.ffmpeg.org|access-date=10 April 2020|archive-date=16 June 2020|archive-url=https://web.archive.org/web/20200616041834/https://trac.ffmpeg.org/ticket/3271?cversion=0&cnum_hist=3|url-status=live}}</ref> [[ YUV ]]A420 पिक्सेल प्रारूप में, जो जीआईएफ के लिए अनुपयुक्त हो सकता है जो ठीक रंग विवरण के साथ [[ रेखांकन ]] [[ वेक्टर ग्राफिक्स ]] के साथ पारदर्शिता को जोड़ती है।


Line 679: Line 615:


==== उपयोग ====
==== उपयोग ====
अप्रैल 2014 में, [[ 4chan ]] ने मूक वेबएम वीडियो के लिए समर्थन जोड़ा जो 3 एमबी से कम आकार और 2 मिनट की लंबाई में हैं,<ref>{{cite news|last1=Dewey|first1=Caitlin|title=Meet the technology that could make GIFs obsolete|url=https://www.washingtonpost.com/blogs/style-blog/wp/2014/04/08/meet-the-technology-that-could-make-gifs-obsolete/|newspaper=[[The Washington Post]]|access-date=4 February 2015|archive-date=11 May 2015|archive-url=https://web.archive.org/web/20150511102846/http://www.washingtonpost.com/blogs/style-blog/wp/2014/04/08/meet-the-technology-that-could-make-gifs-obsolete/|url-status=live}}</ref><ref>{{cite web|title=WebM support on 4chan|url=http://blog.4chan.org/post/81896300203/webm-support-on-4chan|publisher=[[4chan|4chan Blog]]|access-date=4 February 2015|archive-date=6 April 2014|archive-url=https://archive.today/20140406171238/http://blog.4chan.org/post/81896300203/webm-support-on-4chan|url-status=live}}</ref> और अक्टूबर 2014 में, इम्गुर ने साइट पर अपलोड की गई किसी भी जीआईएफ फाइल को वीडियो में परिवर्तित करना शुरू कर दिया और एचटीएमएल प्लेयर को एक वास्तविक फ़ाइल के रूप में लिंक देना शुरू कर दिया <code>.gifv</code> विस्तार।<ref>{{cite web|access-date=2016-07-21|date=2014-08-09|title=Introducing GIFV|publisher=Imgur|url=http://blog.imgur.com/2014/10/09/introducing-gifv/|archive-date=5 May 2020|archive-url=https://web.archive.org/web/20200505012906/https://blog.imgur.com/2014/10/09/introducing-gifv/|url-status=live}}</ref><ref>{{cite web|last1=Allan|first1=Patrick|title=Imgur Revamps GIFs for Faster Speeds and Higher Quality with GIFV|date=9 October 2014 |url=http://lifehacker.com/imgur-revamps-gifs-for-faster-speeds-and-higher-quality-1644494212|publisher=[[Lifehacker]]|access-date=4 February 2015|archive-date=3 February 2015|archive-url=https://web.archive.org/web/20150203080613/http://lifehacker.com/imgur-revamps-gifs-for-faster-speeds-and-higher-quality-1644494212|url-status=live}}</ref>
अप्रैल 2014 में, [[ 4chan ]] ने मूक वेबएम वीडियो के लिए समर्थन जोड़ा जो 3 एमबी से कम आकार और 2 मिनट की लंबाई में हैं,<ref>{{cite news|last1=Dewey|first1=Caitlin|title=Meet the technology that could make GIFs obsolete|url=https://www.washingtonpost.com/blogs/style-blog/wp/2014/04/08/meet-the-technology-that-could-make-gifs-obsolete/|newspaper=[[The Washington Post]]|access-date=4 February 2015|archive-date=11 May 2015|archive-url=https://web.archive.org/web/20150511102846/http://www.washingtonpost.com/blogs/style-blog/wp/2014/04/08/meet-the-technology-that-could-make-gifs-obsolete/|url-status=live}}</ref><ref>{{cite web|title=WebM support on 4chan|url=http://blog.4chan.org/post/81896300203/webm-support-on-4chan|publisher=[[4chan|4chan Blog]]|access-date=4 February 2015|archive-date=6 April 2014|archive-url=https://archive.today/20140406171238/http://blog.4chan.org/post/81896300203/webm-support-on-4chan|url-status=live}}</ref> और अक्टूबर 2014 में, इम्गुर ने साइट पर अपलोड की गई किसी भी जीआईएफ फाइल को वीडियो में परिवर्तित करना आरंभ कर दिया और एचटीएमएल प्लेयर को एक वास्तविक फ़ाइल के रूप में लिंक देना आरंभ कर दिया <code>.जीआईएफv</code> विस्तार।<ref>{{cite web|access-date=2016-07-21|date=2014-08-09|title=Introducing GIFV|publisher=Imgur|url=http://blog.imgur.com/2014/10/09/introducing-gifv/|archive-date=5 May 2020|archive-url=https://web.archive.org/web/20200505012906/https://blog.imgur.com/2014/10/09/introducing-gifv/|url-status=live}}</ref><ref>{{cite web|last1=Allan|first1=Patrick|title=Imgur Revamps GIFs for Faster Speeds and Higher Quality with GIFV|date=9 October 2014 |url=http://lifehacker.com/imgur-revamps-gifs-for-faster-speeds-and-higher-quality-1644494212|publisher=[[Lifehacker]]|access-date=4 February 2015|archive-date=3 February 2015|archive-url=https://web.archive.org/web/20150203080613/http://lifehacker.com/imgur-revamps-gifs-for-faster-speeds-and-higher-quality-1644494212|url-status=live}}</ref>
जनवरी 2016 में, [[ टेलीग्राम (सॉफ्टवेयर) ]] ने सभी जीआईएफ को एमपीईजी -4 वीडियो में फिर से एन्कोड करना शुरू कर दिया, जिसमें समान छवि गुणवत्ता के लिए 95% कम डिस्क स्थान की आवश्यकता होती है।<ref>{{cite web|title=GIF Revolution|url=https://telegram.org/blog/gif-revolution|website=Official Telegram Blog|date=4 January 2016|access-date=4 January 2016|archive-date=10 January 2016|archive-url=https://web.archive.org/web/20160110202119/https://telegram.org/blog/gif-revolution|url-status=live}}</ref>
जनवरी 2016 में, [[ टेलीग्राम (सॉफ्टवेयर) ]] ने सभी जीआईएफ को एमपीईजी -4 वीडियो में फिर से एन्कोड करना आरंभ कर दिया, जिसमें समान छवि गुणवत्ता के लिए 95% कम डिस्क स्थान की आवश्यकता होती है।<ref>{{cite web|title=GIF Revolution|url=https://telegram.org/blog/gif-revolution|website=Official Telegram Blog|date=4 January 2016|access-date=4 January 2016|archive-date=10 January 2016|archive-url=https://web.archive.org/web/20160110202119/https://telegram.org/blog/gif-revolution|url-status=live}}</ref>




Line 686: Line 622:
{{portal|Internet|Animation}}
{{portal|Internet|Animation}}
* [[ एवीआईएफ ]]
* [[ एवीआईएफ ]]
* [[ सिनेमाग्राफ ]], जीआईएफ में अक्सर आंशिक रूप से एनिमेटेड तस्वीर
* [[ सिनेमाग्राफ ]], जीआईएफ में प्रायः आंशिक रूप से एनिमेटेड तस्वीर
* [[ वेब बीकन ]], सामग्री पहुंच की जांच करने के लिए उपयोग की जाने वाली तकनीक
* [[ वेब बीकन ]], सामग्री पहुंच की जांच करने के लिए उपयोग की जाने वाली तकनीक
* [[ ग्राफिक्स फ़ाइल स्वरूपों की तुलना ]]
* [[ ग्राफिक्स फ़ाइल स्वरूपों की तुलना ]]
* [[ जीआईएफ कला ]], जीआईएफ से जुड़ी [[ डिजिटल कला ]] का एक रूप
* [[ जीआईएफ कला ]], जीआईएफ से जुड़ी [[ डिजिटल कला ]] का एक रूप
* [[ GIFBuilder ]], प्रारंभिक [[ एनिमेटेड GIF ]] निर्माण कार्यक्रम
* [[ GIFBuilder | जीआईएफBuilder]] , प्रारंभिक [[ एनिमेटेड GIF | एनिमेटेड जीआईएफ]] निर्माण कार्यक्रम
* [[ plotutil ]] (छद्म-GIF का समर्थन करता है, जो LZW के बजाय रन-लेंथ एन्कोडिंग का उपयोग करता है)
* [[ plotutil ]] (छद्म-जीआईएफ का समर्थन करता है, जो एलजेडडब्ल्यू के बदले में रन-लेंथ एन्कोडिंग का उपयोग करता है)
* [[ माइक्रोसॉफ्ट जीआईएफ एनिमेटर ]], सरल एनिमेटेड जीआईएफ बनाने के लिए ऐतिहासिक कार्यक्रम
* [[ माइक्रोसॉफ्ट जीआईएफ एनिमेटर ]], सरल एनिमेटेड जीआईएफ बनाने के लिए ऐतिहासिक कार्यक्रम
* [[ सॉफ्टवेयर पेटेंट ]]
* [[ सॉफ्टवेयर पेटेंट ]]
Line 700: Line 636:


==बाहरी कड़ियाँ==
==बाहरी कड़ियाँ==
{{Commons category|GIF file format}}
* [http://giflib.sourceforge.net/ The जीआईएफLIB project]
* [http://giflib.sourceforge.net/ The GIFLIB project]
* [https://www.w3.org/Graphics/GIF/spec-gif89a.txt spec-जीआईएफ89a.txt] जीआईएफ 89a specification on [[w3.org]]
* [https://www.w3.org/Graphics/GIF/spec-gif89a.txt spec-gif89a.txt] GIF 89a specification on [[w3.org]]
* [https://web.archive.org/web/20160304075538/http://qalle.net/gif89a.php जीआईएफ 89a specification reformatted into HTML]
* [https://web.archive.org/web/20160304075538/http://qalle.net/gif89a.php GIF 89a specification reformatted into HTML]
* [https://www.eecis.udel.edu/~amer/CISC651/lzw.and.gif.explained.html एलजेडडब्ल्यू and जीआईएफ explained]
* [https://www.eecis.udel.edu/~amer/CISC651/lzw.and.gif.explained.html LZW and GIF explained]
* [https://www.pbs.org/video/2207348428/ Animated जीआईएफs]: a six-minute documentary produced by [[Off Book (web series)]]
* [https://www.pbs.org/video/2207348428/ Animated GIFs]: a six-minute documentary produced by [[Off Book (web series)]]
* [https://gifcities.org जीआईएफCities] (The GeoCities Animated जीआईएफ Search Engine)
* [https://gifcities.org GifCities] (The GeoCities Animated GIF Search Engine)
 
{{Graphics file formats}}
{{Compression formats}}
[[श्रेणी:एनिमेटेड ग्राफ़िक्स फ़ाइल स्वरूप]]
[[श्रेणी:रेखापुंज ग्राफ़िक्स फ़ाइल स्वरूप]]
[[श्रेणी: कॉम्पुसर्व]]
[[श्रेणी:खुले प्रारूप]]
[[श्रेणी: 1987 में कंप्यूटर से संबंधित परिचय]]
[[श्रेणी: खोज और आविष्कार विवाद]]
 


[[Category: Machine Translated Page]]
[[Category:Articles with hAudio microformats]]
[[Category:Articles with hatnote templates targeting a nonexistent page]]
[[Category:CS1 English-language sources (en)]]
[[Category:Citation Style 1 templates|M]]
[[Category:Collapse templates]]
[[Category:Created On 02/01/2023]]
[[Category:Created On 02/01/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages including recorded pronunciations]]
[[Category:Pages with empty portal template]]
[[Category:Pages with script errors]]
[[Category:Portal templates with redlinked portals]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates based on the Citation/CS1 Lua module]]
[[Category:Templates generating COinS|Cite magazine]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Use dmy dates from September 2020]]
[[Category:Webarchive template wayback links]]
[[Category:Wikipedia fully protected templates|Cite magazine]]
[[Category:Wikipedia metatemplates]]

Latest revision as of 15:02, 1 February 2023

जीआईएफ
File:Rotating earth (large).gif
Filename extension
.gif
Internet media type
image/gif
Type codeGIFf
Uniform Type Identifier (UTI)com.compuserve.gif
Magic numberGIF87a/GIF89a
Developed byCompuServe
Initial release15 June 1987; 38 years ago (1987-06-15)[1]
Latest release
89a
1989; 37 years ago (1989)[2]
Type of formatlossless bitmap image format
Websitewww.w3.org/Graphics/GIF/spec-gif89a.txt

ग्राफ़िक्स इंटरचेंज फ़ॉर्मेट (जीआईएफ) (जीआईएफ; /ɡɪf/ GHIF या /ɪf/ JIF, उच्चारण देखें) एक बिटमैप इमेज फ़ॉर्मेट है जिसे अमेरिकी कंप्यूटर वैज्ञानिक स्टीव विल्हाइट के नेतृत्व में ऑनलाइन सेवा प्रदाता कम्पूसर्वे (कम्पूसर्वे) की एक टीम द्वारा विकसित किया गया था और 15 जून 1987 को रिलीज़ किया गया था।[1] अनुप्रयोगों और ऑपरेटिंग सिस्टम के बीच व्यापक समर्थन और पोर्टेबिलिटी के कारण यह वर्ल्ड वाइड वेब पर व्यापक उपयोग में है।

प्रारूप प्रत्येक छवि के लिए 8 बिट प्रति पिक्सेल तक का समर्थन करता है, जिससे एक छवि 24-बिट आरजीबी रंग स्थान से चुने गए 256 विभिन्न रंगों के अपने पैलेट को संदर्भित करने की अनुमति देती है। यह एनिमेशन में भी प्रत्येक फ्रेम के लिए 256 रंगों के एक अलग पैलेट की अनुमति देता है। ये पैलेट सीमाएँ जीआईएफ को रंगीन तस्वीरों और अन्य छवियों को कलर ग्रडियन्ट के साथ पुन: पेश करने के लिए कम उपयुक्त बनाती हैं, लेकिन सरल छवियों जैसे कि ग्राफिक्स या रंग के सुगठित क्षेत्रों के साथ लोगो के लिए उपयुक्त हैं।

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

इतिहास

कम्पूसर्वे ने 15 जून 1987 को अपने फ़ाइल डाउनलोडिंग क्षेत्रों के लिए एक रंगीन छवि प्रारूप प्रदान करने के लिए जीआईएफ निवेदित किया था। इसने उनके पहले के रन-लेंथ एन्कोडिंग प्रारूप को बदल दिया, जो केवल काले और सफेद रंग का था। जीआईएफ लोकप्रिय हो गया क्योंकि इसमें लेम्पेल-ज़िव-वेल्च डेटा कम्प्रेशन का इस्तेमाल किया गया था। चूंकि यह पीसीएक्स और मैकपेंट द्वारा उपयोग की जाने वाली रन-लेंथ एन्कोडिंग की तुलना में अधिक कुशल था, धीमी मोडम के साथ भी काफी बड़ी छवियों को यथोचित शीघ्रता से डाउनलोड किया जा सकता था।

जीआईएफ के मूल संस्करण को 87a कहलाता था।[1] यह संस्करण पहले से ही एक स्ट्रीम में कई छवियों का समर्थन करता है।

1989 में, कम्पूसर्वे ने 89a नामक एक उन्नत संस्करण जारी किया,[2] यह संस्करण जोड़ा गया:

  • एनीमेशन-विलंब (डिलेस) के लिए समर्थन
  • ट्रांसपेरेंट बैकग्राउंड रंग
  • एप्लिकेशन-विशिष्ट मेटाडेटा का संग्रहण
  • टेक्स्ट लेबल को टेक्स्ट के रूप में अनुमति देना (उन्हें ग्राफिकल डेटा में एम्बेड नहीं करना)। चूंकि प्रदर्शन फोंट पर थोड़ा नियंत्रण होता है, हालांकि, यह सुविधा संभवतया ही कभी प्रयोग की जाती है।


फ़ाइल के पहले छह बाइट ्स (जादू संख्या (प्रोग्रामिंग) या हस्ताक्षर) को देखकर दो संस्करणों को अलग किया जा सकता है, जिसे ASCII के रूप में व्याख्या किए जाने पर क्रमशः जीआईएफ87a या जीआईएफ89a पढ़ा जाता है।

कम्पूसर्वे ने कई कंप्यूटरों के लिए डाउनलोड करने योग्य रूपांतरण सुविधाएं प्रदान करके जीआईएफ को अपनाने के लिए प्रोत्साहित किया। दिसंबर 1987 तक, उदाहरण के लिए, एप्पल IIGS  उपयोगकर्ता अटारी ST या कमोडोर 64 पर बनाई गई छवियों को देख सकता था।[3] जीआईएफ पहले दो छवि प्रारूपों में से एक था जो आमतौर पर वेब साइटों पर उपयोग किया जाता था, दूसरा ब्लैक-एंड-व्हाइट एक्सबीएम (XBM) था।[4]

सितंबर 1995 में नेटस्केप नेविगेटर 2.0 ने एनिमेटेड जीआईएफ को लूप करने की क्षमता को जोड़ा है।

जबकि जीआईएफ को कम्पूसर्वे द्वारा विकसित किया गया था, इसने 1985 में यूनिसिस द्वारा पेटेंट किए गए लेम्पेल-ज़िव-वेल्च (एलजेडडब्ल्यू) दोषरहित डेटा कम्प्रेशन एल्गोरिदम का उपयोग किया। 1994 में यूनिसिस और कम्पूसर्वे के बीच लाइसेंसिंग समझौते पर विवाद ने पोर्टेबल नेटवर्क ग्राफ़िक्स (पीएनजी) के विकास को प्रेरित किया। मानक 2004 में, जीआईएफ के लिए प्रयुक्त मालिकाना कम्प्रेशन से संबंधित सभी पेटेंट समाप्त हो गए।

आसान कंप्यूटर एनीमेशन बनाने के लिए वेब पर नियंत्रण डेटा के साथ-साथ एक फ़ाइल में कई छवियों को संग्रहीत करने की सुविधा का बड़े स्तर पर उपयोग किया जाता है।

वैकल्पिक इंटरलेसिंग (बिटमैप्स), जिसने छवि स्कैन लाइनों को अनुक्रम में इस तरह संग्रहीत किया कि आंशिक रूप से डाउनलोड की गई छवि भी कुछ हद तक पहचानने योग्य थी, ने जीआईएफ की लोकप्रियता में भी सहायता की क्योंकि यदि आवश्यक नहीं था तो उपयोगकर्ता डाउनलोड को निरस्त कर सकता था।[5]


मई 2015 में फेसबुक ने जीआईएफ के लिए समर्थन जोड़ा।[6][7] जनवरी 2018 में इंस्टाग्राम ने स्टोरी मोड में जीआईएफ स्टिकर भी जोड़े।[8]

शब्दावली

संज्ञा के रूप में, जीआईएफ शब्द कई शब्दकोशों के नए संस्करणों में पाया जाता है। 2012 में, ऑक्सफोर्ड यूनिवर्सिटी प्रेस के अमेरिकी विंग ने जीआईएफ को एक क्रिया के रूप में भी मान्यता दी, जिसका अर्थ है "जीआईएफ फ़ाइल बनाना", जैसा कि "जीआईएफing ग्रीष्मकालीन ओलंपिक से दृश्यों को साझा करने का एक आदर्श माध्यम था"। प्रेस के कोशकारों ने इसे वर्ष का अपना शब्द बताया, यह कहते हुए कि जीआईएफ "अनुसंधान और पत्रकारिता सहित गंभीर अनुप्रयोगों के साथ एक उपकरण" के रूप में विकसित हुआ है।[9][10]

उच्चारण

File:White House Tumblr launch image.jpg
संयुक्त राज्य अमेरिका के राष्ट्रपति के कार्यकारी कार्यालय के लिए एक Tumblr खाते के लॉन्च की घोषणा करने वाली एक विनोदी छवि एक कठिन g के साथ जीआईएफ का उच्चारण करने का सुझाव देती है।

जीआईएफ के पहले अक्षर का उच्चारण 1990 के दशक से विवादित रहा है। अंग्रेजी में सबसे आम उच्चारण हैं /ɪf/ (About this soundlisten) (जिन के रूप में वायस्ड पोस्टएल्वियोलर एफ्रिकेट के साथ) और /ɡɪf/ (About this soundlisten) (उपहार के रूप में वॉइस्ड वेलर प्लोसिव के साथ), अक्षर G द्वारा दर्शाए गए स्वनिम में भिन्नता है। प्रारूप के रचनाकारों ने परिवर्णी शब्द जीआईएफ का उच्चारण किया /ɪf/वॉइस्ड पोस्टएल्वियोलर एफ़्रीकेट के साथ, विल्हाइट ने कहा कि वह उच्चारण के लिए अमेरिकी मूंगफली का मक्खन ब्रांड जेआईएफ (मूंगफली का मक्खन) को जानबूझकर प्रतिध्वनित करने का इरादा रखता है, और कम्पूसर्वे के कर्मचारी प्रायः जिफ़ के टेलीविजन विज्ञापनों का एक स्पूफ चुनिंदा डेवलपर्स जीआईएफ चुनते हैं।[11] हालाँकि, इस शब्द का व्यापक रूप से उच्चारण किया जाता है /ɡɪf/, वॉयस वेलर स्टॉप के साथ,[12] और चुनावों ने सामान्यतः दिखाया है कि यह कठिन जी उच्चारण अधिक प्रचलित है।[13][14]

Dictionary.com[15] दोनों उच्चारणों को उद्धृत करता है, संकेत करता है /ɪf/ प्राथमिक उच्चारण के रूप में, जबकि कैम्ब्रिज डिक्शनरी ऑफ अमेरिकन इंग्लिश[16] केवल हार्ड-जी उच्चारण प्रदान करता है। मेरियम-वेबस्टर का कॉलेजिएट डिक्शनरी[17] और ऑक्सफोर्ड डिक्शनरी दोनों उच्चारणों का हवाला देते हैं, लेकिन हार्ड G को पहले रखें: /ɡɪf, ɪf/.[18][19][20][21]न्यू ऑक्सफोर्ड अमेरिकन डिक्शनरी ने ही दिया /ɪf/ इसके दूसरे संस्करण में[22] लेकिन इसे अपडेट किया /ɪf, ɡɪf/ तीसरे संस्करण में है।[23]

उच्चारण पर असहमति के कारण इंटरनेट पर गरमागरम बहस छिड़ गई है। 2013 वेबी अवार्ड्स समारोह में लाइफटाइम अचीवमेंट अवार्ड प्राप्त करने के अवसर पर, विल्हाइट ने सार्वजनिक रूप से हार्ड-जी उच्चारण को अस्वीकार कर दिया;[12][24][25] उनके भाषण के कारण ट्विटर पर 17,000 से अधिक पोस्ट और दर्जनों समाचार लेख बने।[26] सफेद घर [12] और टीवी कार्यक्रम जॉपार्डी 2013 में भी बहस में सम्मिलित हुए।[25] फरवरी 2020 में, जेआईएफ ब्रांड के मालिक, जेएम स्मकर कंपनी ने एनिमेटेड इमेज डेटाबेस और सर्च इंजन Giphy के साथ पार्टनरशिप करके एक सीमित-संस्करण जेआईएफ बनाम जीआईएफ (#जेआईएफ बनाम जीआईएफ के रूप में हैशटैग किया गया) पीनट बटर का जार जारी किया, जिसमें एक लेबल था सॉफ्ट-जी उच्चारण को विशेष रूप से पीनट बटर को संदर्भित करने के लिए, और जीआईएफ को हार्ड-जी उच्चारण के साथ विशेष रूप से उच्चारित करने के लिए विनोदी रूप से घोषित करना।[27]


उपयोग

जीआईएफ लोगो जैसे रंगों की सीमित संख्या के साथ तीक्ष्ण धार वाली रेखा कला के लिए उपयुक्त हैं। यह प्रारूप के दोषरहित कम्प्रेशन का लाभ उठाता है, जो अच्छी तरह से परिभाषित किनारों के साथ समान रंग के समतल क्षेत्रों का समर्थन करता है।[28] उनका उपयोग गेम्स के लिए लो-कलर स्प्राइट (कंप्यूटर ग्राफिक्स) डेटा को स्टोर करने के लिए भी किया जा सकता है।[29] जीआईएफ का उपयोग छोटे एनिमेशन और कम-रिज़ॉल्यूशन वीडियो क्लिप के लिए किया जा सकता है, या शब्दों का उपयोग करने के बदले में भावनाओं और भावनाओं को व्यक्त करने के लिए उपयोग किए जाने वाले ऑनलाइन मैसेजिंग में प्रतिक्रियाओं के रूप में किया जा सकता है। वे सोशल मीडिया प्लेटफॉर्म जैसे टम्बलर, फेसबुक और ट्विटर पर लोकप्रिय हैं।[30][31]


फ़ाइल प्रारूप

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

जीआईएफ फाइलें एक निश्चित-लंबाई वाले हेडर (जीआईएफ87ए या जीआईएफ89ए) से आरंभ होती हैं, जो संस्करण देती हैं, इसके बाद एक निश्चित-लंबाई लॉजिकल स्क्रीन डिस्क्रिप्टर पिक्सेल आयाम और लॉजिकल स्क्रीन की अन्य विशेषताएं देती हैं। स्क्रीन डिस्क्रिप्टर ग्लोबल कलर टेबल (जीसीटी)की उपस्थिति और आकार को भी निर्दिष्ट कर सकता है, जिसे एक उपस्थित होने पर लागू किया जाता है।

इसके बाद, फ़ाइल को खंडों में विभाजित किया जाता है, प्रत्येक को 1-बाइट प्रहरी द्वारा प्रस्तुत किया जाता है:

  • छवि (0x2C द्वारा प्रस्तुत, एक ASCII अल्पविराम ',')
  • एक्सटेंशन ब्लॉक (0x21 द्वारा पेश किया गया, एक ASCII विस्मयादिबोधक बिंदु '!')
  • ट्रेलर (मूल्य 0x3B का एक सिंगल बाइट, एक ASCII अर्धविराम ';'), जो फ़ाइल का अंतिम बाइट होना चाहिए।

छवि एक निश्चित-लंबाई छवि डिस्क्रिप्टर से आरंभ होती है, जो स्थानीय रंग तालिका की उपस्थिति और आकार निर्दिष्ट कर सकती है (जो उपस्थित होने पर आगे आती है)। छवि डेटा इस प्रकार है: एक बाइट अनएन्कोडेड प्रतीकों की बिट चौड़ाई (जो कि कम से कम 2 बिट चौड़ा होना चाहिए, द्वि-रंग छवियों के लिए भी होना चाहिए), इसके बाद उप-ब्लॉकों की एक लिंक की गई सूची जिसमें एलजेडडब्ल्यू-एन्कोडेड डेटा सम्मिलित है।

एक्सटेंशन ब्लॉक (ब्लॉक जो 87a परिभाषा को पहले से ही 87a कल्पना में परिभाषित तंत्र के माध्यम से विस्तारित करते हैं) में प्रहरी, एक्सटेंशन के प्रकार को निर्दिष्ट करने वाला एक अतिरिक्त बाइट और एक्सटेंशन डेटा के साथ उप-ब्लॉकों की एक लिंक्ड सूची सम्मिलित है। एक्सटेंशन ब्लॉक जो एक छवि को संशोधित करते हैं (जैसे ग्राफिक कंट्रोल एक्सटेंशन जो वैकल्पिक एनीमेशन विलंब समय और वैकल्पिक पारदर्शी पृष्ठभूमि रंग निर्दिष्ट करता है) को तुरंत उस छवि के साथ सेगमेंट से पहले होना चाहिए जिसका वे संदर्भ देते हैं।

छवि डेटा और एक्सटेंशन ब्लॉक द्वारा उपयोग की जाने वाली लिंक्ड सूचियों में उप-ब्लॉकों की श्रृंखला सम्मिलित होती है, प्रत्येक उप-ब्लॉक एक बाइट से आरंभ होता है जो उप-ब्लॉक (1 से 255) में बाद के डेटा बाइट्स की संख्या देता है। उप-ब्लॉकों की श्रृंखला एक खाली उप-ब्लॉक (एक 0 बाइट) द्वारा समाप्त होती है।

यह संरचना फ़ाइल को पार्स करने की अनुमति देती है, भले ही सभी भाग समझ में न आए हों। 87a चिह्नित जीआईएफ में एक्सटेंशन ब्लॉक हो सकते हैं; आशय यह है कि एक डिकोडर फ़ाइल को एक्सटेंशन में सम्मिलित सुविधाओं के बिना पढ़ और प्रदर्शित कर सकता है जिसे वह समझ नहीं पाता है।

फ़ाइल प्रारूप का पूरा विवरण जीआईएफ विनिर्देशन में सम्मिलित है।[2]


पैलेट्स

फ़्लॉइड-स्टाइनबर्ग विधि का उपयोग करके। छवि में रंगों की संख्या कम होने के कारण, प्रदर्शन समस्याएँ हैं।

जीआईएफ पैलेट-आधारित है: फ़ाइल में एक छवि (एक फ्रेम) में उपयोग किए जाने वाले रंगों में उनके आरजीबी मान एक पैलेट (कंप्यूटिंग) में परिभाषित होते हैं जो 256 प्रविष्टियों तक रख सकते हैं, और छवि के लिए डेटा उनके द्वारा रंगों को संदर्भित करता है पैलेट तालिका में सूचकांक (0-255)। पैलेट में रंग परिभाषाएँ लाखों रंगों के रंग स्थान से खींची जा सकती हैं (224 शेड्स, प्रत्येक प्राथमिक के लिए 8 बिट्स), लेकिन एक फ्रेम द्वारा उपयोग किए जा सकने वाले रंगों की अधिकतम संख्या 256 है। जीआईएफ विकसित होने पर यह सीमा उचित लगती थी क्योंकि कुछ लोग एक साथ अधिक रंगों को प्रदर्शित करने के लिए हार्डवेयर का खर्च उठा सकते थे। सरल ग्राफिक्स, रेखा चित्र, कार्टून और ग्रे-स्केल फ़ोटोग्राफ़ को आमतौर पर 256 से कम रंगों की आवश्यकता होती है।

प्रत्येक फ़्रेम एक इंडेक्स को एक पारदर्शी पृष्ठभूमि रंग के रूप में निर्दिष्ट कर सकता है: इस इंडेक्स को असाइन किया गया कोई भी पिक्सेल पृष्ठभूमि से उसी स्थिति में पिक्सेल का रंग लेता है, जो एनीमेशन के पिछले फ्रेम द्वारा निर्धारित किया जा सकता है।

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

ग्राफिकल वेब ब्राउज़र के शुरुआती दिनों में, 8-बिट बफ़र्स (केवल 256 रंगों की अनुमति) वाले ग्राफ़िक्स कार्ड सामान्य थे और वेब-सुरक्षित रंगों का उपयोग करके जीआईएफ छवियां बनाना काफी सामान्य था। इसने पूर्वानुमेय प्रदर्शन सुनिश्चित किया, लेकिन रंगों की पसंद को गंभीर रूप से सीमित कर दिया। जब 24-बिट रंग आदर्श बन गया, तो इसके बदले में पैलेट को अलग-अलग छवियों के लिए इष्टतम रंगों से भरा जा सकता था।

छोटी छवियों के लिए एक छोटी रंग तालिका पर्याप्त हो सकती है, और रंग तालिका को छोटा रखने से फ़ाइल को तेज़ी से डाउनलोड किया जा सकता है। 87a और 89a दोनों विनिर्देश 2 की रंग तालिका की अनुमति देते हैं1 से 8 तक किसी भी n के लिए n रंग। अधिकांश ग्राफ़िक्स एप्लिकेशन इनमें से किसी भी तालिका आकार के साथ जीआईएफ छवियों को पढ़ेंगे और प्रदर्शित करेंगे; लेकिन कुछ चित्र बनाते समय सभी आकारों का समर्थन नहीं करते हैं। 2, 16 और 256 रंगों की तालिकाएँ व्यापक रूप से समर्थित हैं।

असली रंग

हालांकि जीआईएफ का इस्तेमाल कलर डेप्थ#ट्रू कलर (24-बिट) इमेज के लिए लगभग कभी नहीं किया जाता है, ऐसा करना संभव है।[32][33] जीआईएफ छवि में कई छवि ब्लॉक सम्मिलित हो सकते हैं, जिनमें से प्रत्येक का अपना 256-रंग पैलेट हो सकता है, और पूर्ण छवि बनाने के लिए ब्लॉक को टाइल किया जा सकता है। वैकल्पिक रूप से, जीआईएफ89a विनिर्देश ने एक पारदर्शी रंग का विचार पेश किया जहां प्रत्येक छवि ब्लॉक में 255 दृश्यमान रंगों के साथ-साथ एक पारदर्शी रंग का अपना पैलेट सम्मिलित हो सकता है। ऊपर की परतों के पारदर्शी भागों के माध्यम से दिखाई देने वाली प्रत्येक परत के दृश्य भाग के साथ छवि ब्लॉकों को लेयर करके एक पूर्ण छवि बनाई जा सकती है।

256 रंगों की विशिष्ट सीमा से अधिक प्रदर्शित करने की तकनीक को दर्शाने वाला एक एनिमेटेड जीआईएफ

जीआईएफ के रूप में पूर्ण-रंग वाली छवि प्रस्तुत करने के लिए, मूल छवि को छोटे क्षेत्रों में विभाजित किया जाना चाहिए जिसमें 255 या 256 से अधिक विभिन्न रंग न हों। इन क्षेत्रों में से प्रत्येक को तब अपने स्वयं के स्थानीय पैलेट के साथ एक अलग छवि ब्लॉक के रूप में संग्रहीत किया जाता है और जब छवि ब्लॉक एक साथ प्रदर्शित होते हैं (या तो टाइलिंग द्वारा या आंशिक रूप से पारदर्शी छवि ब्लॉकों को परत करके), पूर्ण, पूर्ण-रंग वाली छवि दिखाई देती है। उदाहरण के लिए, किसी छवि को 16 गुणा 16 पिक्सेल (कुल 256 पिक्सेल) की टाइलों में तोड़ना सुनिश्चित करता है कि किसी भी टाइल में 256 रंगों की स्थानीय पैलेट सीमा से अधिक नहीं है, हालाँकि बड़ी टाइलों का उपयोग किया जा सकता है और समान रंगों का विलय हो जाता है जिसके परिणामस्वरूप रंग में कुछ कमी आती है सूचना है।[32]

चूँकि प्रत्येक छवि ब्लॉक की अपनी स्थानीय रंग तालिका हो सकती है, एक जीआईएफ फ़ाइल जिसमें कई छवि ब्लॉक होते हैं, बहुत बड़ी हो सकती है, जो पूर्ण-रंग वाले जीआईएफ की उपयोगिता को सीमित करती है।[33]इसके अतिरिक्त, सभी जीआईएफ रेंडरिंग प्रोग्राम टाइल वाली या स्तरित छवियों को सही ढंग से संभाल नहीं पाते हैं। कई रेंडरिंग प्रोग्राम टाइल्स या लेयर्स को एनीमेशन फ्रेम के रूप में समझते हैं और उन्हें एनीमेशन के रूप में अनुक्रम में प्रदर्शित करते हैं[32] अधिकांश वेब ब्राउज़र स्वचालित रूप से 0.1 सेकंड या उससे अधिक के विलंब समय के साथ फ़्रेम प्रदर्शित करते हैं।[34][35]


उदाहरण जीआईएफ फ़ाइल

माइक्रोसॉफ्ट पेंट एक छोटी काली-और-सफेद छवि को निम्न जीआईएफ फ़ाइल के रूप में सहेजता है (सचित्र बढ़े हुए)।

पेंट जीआईएफ का इष्टतम उपयोग नहीं करता है; अनावश्यक रूप से बड़ी रंग तालिका (उपयोग किए गए 2 के बदले में पूर्ण 256 रंगों को संग्रहीत करना) और प्रतीक चौड़ाई के कारण, यह जीआईएफ फ़ाइल 15-पिक्सेल छवि का एक कुशल प्रतिनिधित्व नहीं है।

हालांकि ग्राफिक कंट्रोल एक्सटेंशन ब्लॉक कलर इंडेक्स 16 (हेक्साडेसिमल 10) को पारदर्शी होने की घोषणा करता है, छवि में उस इंडेक्स का उपयोग नहीं किया जाता है। छवि डेटा में दिखाई देने वाली एकमात्र रंगीन अनुक्रमणिका दशमलव 40 और 255 हैं, जिन्हें वैश्विक रंग तालिका क्रमशः काले और सफेद में मैप करती है।

GifSample.gif

नमूना चित्र (बड़ा), वास्तविक आकार 3 पिक्सेल चौड़ा गुणा 5 ऊंचा

ध्यान दें कि निम्न तालिकाओं में हेक्स संख्या छोटे-अंत वाले बाइट क्रम में हैं, जैसा कि प्रारूप विनिर्देश निर्धारित करता है।

उदाहरण जीआईएफ छवि मूल्यों की तालिका
बाइट # (हेक्स) हेक्साडेसिमल टेक्स्ट या वैल्यू अर्थ
0 47 49 46 38 39 61 जीआईएफ89a हैडर
6 03 00 3 लॉजिकल स्क्रीन चौड़ाई
8 05 00 5 लॉजिकल स्क्रीन ऊंचाई
A F7 जीसीटी 3 × 8 बिट्स/प्राथमिक रिज़ॉल्यूशन के साथ 256 रंगों के लिए अनुसरण करता है, सबसे कम 3 बिट्स बिट डेप्थ माइनस 1 का प्रतिनिधित्व करते हैं, उच्चतम ट्रू बिट का मतलब है कि जीसीटी उपस्थित है
B 00 0 बैकग्राउंड कलर: इंडेक्स #0; #000000 काला
C 00 0 डिफ़ॉल्ट पिक्सेल आस्पेक्ट रेश्यो, 0:0
D 00 00 00
R (red) G (green) B (blue)
0 0 0
वैश्विक रंग तालिका, रंग #0: #000000, काला
Error creating thumbnail:
बाइट्स डीh 30 सीh उदाहरण में 256 रंगों के पैलेट को परिभाषित करें।
|-
10 80 00 00
R (red) G (green) B (blue)
128 0 0
वैश्विक रंग तालिका, रंग #1: पारदर्शी बिट, छवि में उपयोग नहीं किया गया
... ... ... वैश्विक रंग तालिका 30A तक फैली हुई है
30ए एफएफ एफएफ एफएफ
R (red) G (green) B (blue)
255 255 255
वैश्विक रंग तालिका, रंग #255: #ffffff, सफ़ेद
30डी 21 एफ9 ग्राफ़िक कंट्रोल एक्सटेंशन (टिप्पणी फ़ील्ड अधिकांश फ़ाइलों में इससे पहले होती है)
30F 04 4 जीसीई डेटा की मात्रा, 4 बाइट्स
310 01 पारदर्शी पृष्ठभूमि का रंग; यह थोड़ा क्षेत्र है, सबसे कम बिट पारदर्शिता को दर्शाता है
311 00 00 एक सेकंड के सौवें हिस्से में एनिमेशन के लिए विलंब; 'उपयोग नहीं किया'
313 10 16 जीसीटी में पारदर्शी पिक्सेल की रंग संख्या
314 00 जीसीई ब्लॉक का अंत
315 2सी छवि वर्णनकर्ता
316 00 00 00 00 (0, 0) तार्किक स्क्रीन में छवि की उत्तर-पश्चिम कोने की स्थिति
31ए 03 00 05 00 (3, 5) पिक्सल में छवि की चौड़ाई और ऊंचाई
31ई 00 0 स्थानीय रंग तालिका बिट, 0 का अर्थ कोई नहीं है
31एफ 08 8 छवि की शुरुआत, एलजेडडब्ल्यू न्यूनतम कोड आकार
320 0बी 11 एलजेडडब्ल्यू एन्कोडेड इमेज फॉलो की मात्रा, 11 बाइट्स
321 00 51 एफसी 1बी 28 70 ए0 सी1 83 01 01 <इमेज डेटा> छवि डेटा के 11 बाइट, फ़ील्ड 320 देखें
32सी 00 0 छवि डेटा ब्लॉक का अंत
32डी 3बी फ़ाइल समाप्ति

छवि कोडिंग

छवि पिक्सेल डेटा, ऊपर बाईं ओर से क्षैतिज रूप से स्कैन किया जाता है, लेम्पेल-ज़िव-वेल्च द्वारा उन कोडों में परिवर्तित किया जाता है जिन्हें फ़ाइल में संग्रहीत करने के लिए बाइट्स में मैप किया जाता है। पिक्सेल कोड आमतौर पर बाइट्स के 8-बिट आकार से मेल नहीं खाते हैं, इसलिए कोड को लिट्ल-एंडियन योजना द्वारा बाइट्स में पैक किया जाता है: पहले कोड का कम से कम महत्वपूर्ण बिट पहले बाइट के कम से कम महत्वपूर्ण बिट में संग्रहीत होता है। , कोड के उच्च क्रम बिट्स को बाइट के उच्च क्रम बिट्स में, आवश्यकतानुसार अगले बाइट के निम्न क्रम बिट्स में फैलाना है। प्रत्येक बाद के कोड को पहले से उपयोग नहीं किए गए कम से कम महत्वपूर्ण बिट से आरंभ किया जाता है।

यह बाइट स्ट्रीम फ़ाइल में उप-ब्लॉकों की एक श्रृंखला के रूप में संग्रहीत है। प्रत्येक उप-ब्लॉक की अधिकतम लंबाई 255 बाइट्स होती है और एक बाइट के साथ उपसर्ग होता है जो उप-ब्लॉक में डेटा बाइट्स की संख्या को दर्शाता है। उप-ब्लॉकों की श्रृंखला एक खाली उप-ब्लॉक (एक एकल 0 बाइट, 0 डेटा बाइट्स वाले उप-ब्लॉक को इंगित करता है) द्वारा समाप्त की जाती है।

9-बिट कोड और बाइट्स के बीच प्रतिवर्ती मानचित्रण के ऊपर नमूना छवि के लिए नीचे दिखाया गया है।

Reversible mapping
9-बिट कोड बाइट
हेक्साडेसिमल बायनरी बायनरी हेक्साडेसिमल
100 1 00000000 00000000 00
028 00 0101000 0101000 1 51
0FF 011 111111 111111 00 FC
103 1000 00011 00011 011 1B
102 10000 0010 0010 1000 28
103 100000 011 011 10000 70
106 1000001 10 10 100000 A0
107 10000011 1 1 1000001 C1
10000011 83
101 1 00000001 00000001 01
0000000 1 01

साधारण कम्प्रेशन स्पष्ट है: प्रारंभ में 15 बाइट्स द्वारा परिभाषित पिक्सेल रंग नियंत्रण कोड सहित 12 कोड बाइट्स द्वारा सटीक रूप से दर्शाए जाते हैं।

9-बिट कोड बनाने वाली एन्कोडिंग प्रक्रिया नीचे दिखाई गई है। एक स्थानीय स्ट्रिंग पैलेट से पिक्सेल रंग संख्याएं जमा करती है, जब तक कि स्थानीय स्ट्रिंग को कोड तालिका में पाया जा सकता है, तब तक कोई आउटपुट क्रिया नहीं होती है। पहले दो पिक्सेल का विशेष उपचार होता है जो तार के जोड़ से तालिका के प्रारंभिक आकार से बढ़ने से पहले आते हैं। प्रत्येक आउटपुट कोड के बाद, स्थानीय स्ट्रिंग को नवीनतम पिक्सेल रंग में प्रारंभ किया जाता है (जो आउटपुट कोड में सम्मिलित नहीं किया जा सकता)।

                           Table           9-bit
                     string --> code      code    Action
                          #0 | 000h               Initialize root table of 9-bit codes
                    palette  |  :
                     colors  |  :
                        #255 | 0FFh
                         clr | 100h
                         end | 101h
                             |            100h     Clear
Pixel          Local         |
color Palette  string        |
BLACK  #40     28            |            028h     1st pixel always to output
WHITE  #255    FF            |                     String found in table
                  28 FF      | 102h                Always add 1st string to table
               FF            |                     Initialize local string
WHITE  #255    FF FF         |                     String not found in table
                             |            0FFh     - output code for previous string
                  FF FF      | 103h                - add latest string to table
               FF            |                     - initialize local string
WHITE  #255    FF FF         |                     String found in table
BLACK  #40     FF FF 28      |                     String not found in table
                             |            103h     - output code for previous string
                  FF FF 28   | 104h                - add latest string to table
               28            |                     - initialize local string
WHITE  #255    28 FF         |                     String found in table
WHITE  #255    28 FF FF      |                     String not found in table
                             |            102h     - output code for previous string
                  28 FF FF   | 105h                - add latest string to table
               FF            |                     - initialize local string
WHITE  #255    FF FF         |                     String found in table
WHITE  #255    FF FF FF      |                     String not found in table
                             |            103h     - output code for previous string
                  FF FF FF   | 106h                - add latest string to table
               FF            |                     - initialize local string
WHITE  #255    FF FF         |                     String found in table
WHITE  #255    FF FF FF      |                     String found in table
WHITE  #255    FF FF FF FF   |                     String not found in table
                             |            106h     - output code for previous string
                  FF FF FF FF| 107h                - add latest string to table
               FF            |                     - initialize local string
WHITE  #255    FF FF         |                     String found in table
WHITE  #255    FF FF FF      |                     String found in table
WHITE  #255    FF FF FF FF   |                     String found in table
                                                   No more pixels
                                          107h     - output code for last string
                                          101h     End

स्पष्टता के लिए तालिका को ऊपर दी गई लंबाई के बढ़ते तारों के रूप में दिखाया गया है। वह योजना काम कर सकती है लेकिन तालिका अप्रत्याशित मात्रा में मेमोरी का उपभोग करती है। मेमोरी को व्यवहार में सहेजा जा सकता है, यह ध्यान में रखते हुए कि संग्रहीत की जाने वाली प्रत्येक नई स्ट्रिंग में एक वर्ण द्वारा संवर्धित पहले से संग्रहीत स्ट्रिंग होती है। प्रत्येक पते पर केवल दो शब्दों को संग्रहित करना किफायती है: एक उपस्थिता एड्रेस और करैक्टर।

एलजेडडब्ल्यू एल्गोरिथ्म को प्रत्येक पिक्सेल के लिए तालिका की खोज की आवश्यकता होती है। 4096 पतों के माध्यम से एक रैखिक खोज कोडिंग को धीमा कर देगी। व्यवहार में कोड को संख्यात्मक मान के क्रम में संग्रहीत किया जा सकता है; यह प्रत्येक खोज को SAR (क्रमिक सन्निकटन रजिस्टर, जैसा कि कुछ क्रमिक सन्निकटन ADC में उपयोग किया जाता है) द्वारा किया जा सकता है, केवल 12 परिमाण तुलनाओं के साथ। इस दक्षता के लिए कोड और वास्तविक मेमोरी पतों के बीच रूपांतरण के लिए एक अतिरिक्त तालिका की आवश्यकता होती है; अतिरिक्त टेबल अपकीपिंग की आवश्यकता तभी होती है जब एक नया कोड संग्रहीत किया जाता है जो पिक्सेल दर से बहुत कम होता है।

छवि डिकोडिंग

डिकोडिंग संग्रहीत बाइट्स को 9-बिट कोड पर मैप करके आरंभ होता है। नीचे दिखाए गए पिक्सेल रंगों को पुनर्प्राप्त करने के लिए इन्हें डीकोड किया गया है। एन्कोडर में उपयोग की जाने वाली तालिका के समान एक तालिका इस नियम द्वारा तार जोड़कर बनाई गई है:

क्या आने वाला कोड टेबल में मिला है?
Yes इनकमिंग कोड के लिए स्ट्रिंग के पहले बाइट के बाद स्थानीय कोड के लिए एक स्ट्रिंग जोड़ें
No स्ट्रिंग को स्थानीय कोड में जोड़ें और फिर अपनी पहली बाइट कॉपी करें
shift
9-bit ----> Local      Table                 Pixel
code        code   code --> string   Palette color  Action
100h               000h  | #0                       Initialize root table of 9-bit codes
                    :    | palette
                    :    | colors
                   0FFh  | #255
                   100h  | clr
                   101h  | end
028h                     |             #40   BLACK  Decode 1st pixel
0FFh        028h         |                           Incoming code found in table
                         |             #255  WHITE   - output string from table
                   102h  | 28 FF                     - add to table
103h        0FFh         |                           Incoming code not found in table
                   103h  | FF FF                     - add to table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
102h        103h         |                           Incoming code found in table
                         |                           - output string from table
                         |             #40   BLACK
                         |             #255  WHITE
                   104h  | FF FF 28                  - add to table
103h        102h         |                           Incoming code found in table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
                   105h  | 28 FF FF                  - add to table
106h        103h         |                           Incoming code not found in table
                   106h  | FF FF FF                  - add to table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
                         |             #255  WHITE
107h        106h         |                           Incoming code not found in table
                   107h  | FF FF FF FF               - add to table
                         |                           - output string from table
                         |             #255  WHITE
                         |             #255  WHITE
                         |             #255  WHITE
                         |             #255  WHITE
101h                     |                           End


एलजेडडब्ल्यू कोड की लंबाई

उदाहरण में 256 रंगों से छोटे पैलेट के लिए छोटी कोड लंबाई का उपयोग किया जा सकता है। यदि पैलेट केवल 64 रंग का है (इसलिए रंग सूचकांक 6 बिट चौड़ा है), प्रतीक 0 से 63 तक हो सकते हैं, और प्रतीक की चौड़ाई 6 बिट हो सकती है, कोड 7 बिट से आरंभ होते हैं। वास्तव में, प्रतीक की चौड़ाई को पैलेट के आकार से मेल नहीं खाना चाहिए: जब तक डिकोड किए गए मान हमेशा पैलेट में रंगों की संख्या से कम होते हैं, तब तक प्रतीक 2 से 8 तक कोई भी चौड़ाई हो सकते हैं, और पैलेट का आकार 2 की कोई भी शक्ति हो सकती है। 2 से 256 तक। उदाहरण के लिए, यदि पैलेट के केवल पहले चार रंगों (मान 0 से 3) का उपयोग किया जाता है, तो प्रतीकों को 3 बिट से आरंभ होने वाले कोड के साथ 2 बिट चौड़ा लिया जा सकता है।

इसके विपरीत, प्रतीक चौड़ाई 8 पर सेट की जा सकती है, भले ही मान 0 और 1 का उपयोग किया गया हो; इन आंकड़ों के लिए केवल दो रंगों वाली तालिका की आवश्यकता होगी। हालाँकि फ़ाइल को इस तरह से एन्कोड करने का कोई मतलब नहीं होगा, आमतौर पर द्वि-रंग छवियों के लिए कुछ ऐसा ही होता है: न्यूनतम प्रतीक चौड़ाई 2 है, भले ही केवल मान 0 और 1 का उपयोग किया गया हो।

कोड तालिका में आरंभ में ऐसे कोड होते हैं जो दो विशेष कोड clr और अंत को समायोजित करने के लिए प्रतीक आकार से एक बिट लंबे होते हैं और प्रक्रिया के दौरान जोड़े गए स्ट्रिंग्स के लिए कोड होते हैं। जब टेबल भर जाती है तो अधिक स्ट्रिंग्स के लिए जगह देने के लिए कोड की लंबाई बढ़ जाती है, अधिकतम कोड 4095 = FFF(hex) तक। जैसा कि डिकोडर अपनी तालिका बनाता है, यह कोड की लंबाई में इन वृद्धि को ट्रैक करता है और यह आने वाले बाइट्स को तदनुसार अनपैक करने में सक्षम होता है।

असम्पीडित जीआईएफ

7-बिट प्रतीकों (128 रंग, 8-बिट कोड) के साथ एक 46×46 असम्पीडित GIF।
कोड की व्याख्या के लिए छवि पर क्लिक करें।

जीआईएफ एन्कोडिंग प्रक्रिया को एलजेडडब्ल्यू कम्प्रेशन के बिना एक फ़ाइल बनाने के लिए संशोधित किया जा सकता है जो अभी भी जीआईएफ छवि के रूप में देखा जा सकता है। इस तकनीक को मूल रूप से पेटेंट उल्लंघन से बचने के तरीके के रूप में पेश किया गया था। असम्पीडित जीआईएफ ग्राफिक्स प्रोग्रामर के लिए एक उपयोगी मध्यवर्ती प्रारूप भी हो सकता है क्योंकि अलग-अलग पिक्सेल पढ़ने या पेंटिंग के लिए सुलभ होते हैं। एक असम्पीडित जीआईएफ फ़ाइल को एक साधारण जीआईएफ फ़ाइल में एक छवि संपादक के माध्यम से पारित करके परिवर्तित किया जा सकता है।

संशोधित एन्कोडिंग विधि एलजेडडब्ल्यू तालिका के निर्माण पर ध्यान नहीं देती है और केवल रूट पैलेट कोड और CLEAR और STOP के लिए कोड का उत्सर्जन करती है। यह एक सरल एन्कोडिंग (कोड मान और पैलेट कोड के बीच 1-से-1 पत्राचार) उत्पन्न करता है, लेकिन सभी कम्प्रेशन का त्याग करता है: छवि में प्रत्येक पिक्सेल एक आउटपुट कोड उत्पन्न करता है जो उसके रंग सूचकांक को दर्शाता है। असम्पीडित जीआईएफ को संसाधित करते समय, एक मानक जीआईएफ डिकोडर को अपनी शब्दकोश तालिका में तार लिखने से नहीं रोका जाएगा, लेकिन कोड की चौड़ाई कभी भी नहीं बढ़नी चाहिए क्योंकि यह बिट्स की एक अलग पैकिंग को बाइट्स में ट्रिगर करता है।

यदि प्रतीक चौड़ाई है n, चौड़ाई के कोड n+1 स्वाभाविक रूप से दो ब्लॉकों में गिर जाते हैं: का निचला ब्लॉक 2n एकल प्रतीकों को कोड करने के लिए कोड, और ऊपरी ब्लॉक 2n कोड जिनका उपयोग डिकोडर द्वारा एक से अधिक लंबाई के अनुक्रमों के लिए किया जाएगा। उस ऊपरी ब्लॉक के पहले दो कोड पहले ही ले लिए गए हैं: 2n स्पष्ट और के लिए 2n + 1 स्टॉप के लिए। डिकोडर को ऊपरी ब्लॉक में अंतिम कोड का उपयोग करने से भी रोका जाना चाहिए, 2n+1 − 1, क्योंकि जब डिकोडर उस स्लॉट को भरता है, तो यह कोड की चौड़ाई बढ़ा देगा। इस प्रकार ऊपरी ब्लॉक में हैं 2n − 3 डिकोडर के लिए उपलब्ध कोड जो कोड चौड़ाई में वृद्धि को ट्रिगर नहीं करेंगे। क्योंकि डिकोडर तालिका को बनाए रखने में हमेशा एक कदम पीछे होता है, यह एनकोडर से पहला कोड प्राप्त करने पर तालिका प्रविष्टि उत्पन्न नहीं करता है, लेकिन प्रत्येक बाद के कोड के लिए एक उत्पन्न करेगा। इस प्रकार एनकोडर उत्पन्न कर सकता है 2n − 2 कोड चौड़ाई में वृद्धि को ट्रिगर किए बिना कोड। इसलिए, एनकोडर को अंतराल पर अतिरिक्त CLEAR कोड का उत्सर्जन करना चाहिए 2n − 2 डिकोडर को कोडिंग डिक्शनरी को रीसेट करने के लिए कोड या उससे कम। जीआईएफ मानक किसी भी समय छवि डेटा में ऐसे अतिरिक्त CLEAR कोड डालने की अनुमति देता है। कंपोजिट डेटा स्ट्रीम को उप-ब्लॉकों में विभाजित किया गया है, जिनमें से प्रत्येक में 1 से 255 बाइट्स होते हैं।

उपरोक्त नमूना 3×5 छवि के लिए, निम्नलिखित 9-बिट कोड स्पष्ट (100) का प्रतिनिधित्व करते हैं, जिसके बाद छवि पिक्सेल स्कैन क्रम और स्टॉप (101) में होते हैं।

100 028 0FF 0FF 0FF 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101

उपरोक्त कोड बाइट्स में मैप किए जाने के बाद, असम्पीडित फ़ाइल संपीड़ित फ़ाइल से भिन्न होती है:

बाइट # (हेक्स) हेक्साडेसिमल टेक्स्ट या वैल्यू अर्थ
320 14 20 20 बाइट्स अनकम्प्रेस्सड छवि डेटा का पालन करें
321 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01
335 00 0 छवि डेटा का अंत


कम्प्रेशन उदाहरण

ठोस रंग की एक बड़ी छवि का तुच्छ उदाहरण जीआईएफ फ़ाइलों में उपयोग की जाने वाली चर-लंबाई एलजेडडब्ल्यू कम्प्रेशन को प्रदर्शित करता है।

जीआईएफ फ़ाइल का नमूना कंप्रेशन
कोड पिक्सल Notes
No.
Ni
Value
Ni + 256
Length
(bits)
This code
Ni
Accumulated
Ni(Ni + 1)/2
Relations using Ni only apply to same-color pixels until coding table is full.
0 100h 9 Clear code table
1 FFh 1 1 Top left pixel color chosen as the highest index of a 256-color palette
2 102h 2 3
3
255
103h
1FFh
3
255
6
32640
Last 9-bit code
256
767
200h
3FFh
10 256
767
32896
294528
Last 10-bit code
768
1791
400h
7FFh
11 768
1791
295296
1604736
Last 11-bit code
1792
3839
800h
FFFh
12 1792
3839
1606528
7370880
Code table full
FFFh 3839 The maximum code may repeat for more same-color pixels.
Overall data compression asymptotically approaches 3839 × 8/12 = 2559+1/3
101h End of image data

दिखाए गए कोड मान बाइट्स में पैक किए जाते हैं जिन्हें बाद में 255 बाइट्स तक के ब्लॉक में पैक किया जाता है। छवि डेटा का एक ब्लॉक एक बाइट से आरंभ होता है जो बाइट्स की संख्या का पालन करने की घोषणा करता है। एक छवि के लिए डेटा का अंतिम ब्लॉक शून्य ब्लॉक-लम्बाई बाइट द्वारा चिह्नित किया गया है।

इंटरलेसिंग

जीआईएफ विशिष्टता प्रत्येक छवि को जीआईएफ फ़ाइल की तार्किक स्क्रीन के भीतर यह निर्दिष्ट करने की अनुमति देती है कि यह इंटरलेस्ड है; यानी, इसके डेटा ब्लॉक में रेखापुंज रेखाओं का क्रम अनुक्रमिक नहीं है। यह छवि के आंशिक प्रदर्शन की अनुमति देता है जिसे पूरी छवि पेंट करने से पहले पहचाना जा सकता है।

एक इंटरलेस्ड छवि को ऊपर से नीचे तक 8 पिक्सेल ऊँची पट्टियों में विभाजित किया जाता है, और छवि की पंक्तियों को निम्नलिखित क्रम में प्रस्तुत किया जाता है:

  • पास 1: प्रत्येक स्ट्रिप से लाइन 0 (सबसे ऊपर वाली लाइन)।
  • पास 2: प्रत्येक पट्टी से पंक्ति 4।
  • पास 3: प्रत्येक स्ट्रिप से लाइन 2 और 6।
  • पास 4: प्रत्येक पट्टी से पंक्तियाँ 1, 3, 5 और 7।

प्रत्येक पंक्ति के भीतर पिक्सेल इंटरलेस्ड नहीं होते हैं, लेकिन बाएं से दाएं लगातार प्रस्तुत किए जाते हैं। गैर-इंटरलेस्ड छवियों की तरह, एक पंक्ति के डेटा और अगली पंक्ति के डेटा के बीच कोई विराम नहीं होता है। इंडिकेटर कि एक इमेज इंटरलेस्ड है, संबंधित इमेज डिस्क्रिप्टर ब्लॉक में थोड़ा सा सेट है।

एनिमेटेड जीआईएफ

File:Newtons cradle animation book 2.gif
जीआईएफ का उपयोग एनीमेशन प्रदर्शित करने के लिए किया जा सकता है, जैसा कि न्यूटन के पालने की इस छवि में है।
File:Animated GIF cheloVechek.gif
दो फ़ोटो से बना एक जीआईएफ ऐनिमेशन, जिसमें से एक को दूसरे में बदला जा रहा है

हालांकि जीआईएफ को एनीमेशन माध्यम के रूप में डिजाइन नहीं किया गया था, एक एनीमेशन अनुक्रम के फिल्म फ्रेम को स्टोर करने के लिए प्रारूप का उपयोग करके स्वाभाविक रूप से एक फाइल में कई छवियों को स्टोर करने की इसकी क्षमता का सुझाव दिया गया था। एनिमेशन प्रदर्शित करने की सुविधा के लिए, जीआईएफ89a युक्ति ने ग्राफिक कंट्रोल एक्सटेंशन (जीसीई) जोड़ा, जो फ़ाइल में छवियों (फ्रेम्स) को समय की देरी के साथ चित्रित करने की अनुमति देता है, वीडियो क्लिप बनाता है। एनीमेशन जीआईएफ में प्रत्येक फ्रेम अपने स्वयं के जीसीई द्वारा पेश किया जाता है जो फ्रेम तैयार होने के बाद प्रतीक्षा करने में देरी को निर्दिष्ट करता है। फ़ाइल की शुरुआत में वैश्विक सूचना डिफ़ॉल्ट रूप से सभी फ़्रेमों पर लागू होती है। डेटा स्ट्रीम-ओरिएंटेड है, इसलिए प्रत्येक जीसीई के प्रारंभ की फ़ाइल ऑफ़सेट पूर्ववर्ती डेटा की लंबाई पर निर्भर करती है। प्रत्येक फ़्रेम के भीतर एलजेडडब्ल्यू-कोडित छवि डेटा को 255 बाइट्स तक के उप-ब्लॉकों में व्यवस्थित किया जाता है; प्रत्येक उप-ब्लॉक का आकार उसके पहले आने वाली बाइट द्वारा घोषित किया जाता है।

डिफ़ॉल्ट रूप से, एक एनीमेशन केवल एक बार फ्रेम के अनुक्रम को प्रदर्शित करता है, अंतिम फ्रेम प्रदर्शित होने पर रुक जाता है। एनीमेशन को लूप में सक्षम करने के लिए, नेटस्केप ने 1990 के दशक में नेटस्केप एप्लिकेशन ब्लॉक (एनएबी) को लागू करने के लिए एप्लिकेशन एक्सटेंशन ब्लॉक (विक्रेताओं को जीआईएफ फ़ाइल में एप्लिकेशन-विशिष्ट सूचना जोड़ने की अनुमति देने के उद्देश्य से) का उपयोग किया।[36] एनीमेशन फ्रेम के अनुक्रम से ठीक पहले रखा गया यह ब्लॉक, निर्दिष्ट करता है कि फ्रेम के अनुक्रम को कितनी बार खेला जाना चाहिए (1 से 65535 बार) या इसे लगातार दोहराना चाहिए (शून्य लूप को हमेशा के लिए इंगित करता है)। इन दोहराए जाने वाले एनिमेशन के लिए समर्थन पहले नेटस्केप नेविगेटर संस्करण 2.0 में दिखाई दिया, और फिर अन्य ब्राउज़रों में फैल गया।[37] अधिकांश ब्राउज़र अब NAB को पहचानते हैं और उसका समर्थन करते हैं, हालांकि यह जीआईएफ89a विनिर्देश का कड़ाई से हिस्सा नहीं है।

'

जीसीई में सेकंड के सौवें हिस्से में प्रत्येक फ्रेम के लिए एनीमेशन विलंब निर्दिष्ट किया गया है। डेटा की कुछ किफायत संभव है जहां एक फ्रेम को डिस्प्ले के पिक्सेल के केवल एक हिस्से को फिर से लिखने की आवश्यकता होती है, क्योंकि इमेज डिस्क्रिप्टर पूरी छवि के बदले में एक छोटे आयत को फिर से स्कैन करने के लिए परिभाषित कर सकता है। ब्राउज़र या अन्य डिस्प्ले जो एनिमेटेड जीआईएफ का समर्थन नहीं करते हैं, आमतौर पर केवल पहला फ्रेम दिखाते हैं।

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

मेटाडाटा

मेटाडेटा को जीआईएफ फाइलों में एक टिप्पणी ब्लॉक, एक सादा पाठ ब्लॉक या एक एप्लिकेशन-विशिष्ट एप्लिकेशन एक्सटेंशन ब्लॉक के रूप में संग्रहीत किया जा सकता है। कई ग्राफिक्स संपादक छवि उत्पन्न करने के लिए उपयोग किए गए डेटा को सम्मिलित करने के लिए अनौपचारिक एप्लिकेशन एक्सटेंशन ब्लॉक का उपयोग करते हैं, ताकि इसे आगे के संपादन के लिए पुनर्प्राप्त किया जा सके।

इन सभी विधियों में तकनीकी रूप से मेटाडेटा को उप-ब्लॉकों में तोड़ने की आवश्यकता होती है ताकि एप्लिकेशन मेटाडेटा ब्लॉक को उसकी आंतरिक संरचना को जाने बिना नेविगेट कर सकें।

एक्स्टेंसिबल मेटाडेटा प्लेटफ़ॉर्म (XMP) मेटाडेटा मानक ने जीआईएफ फ़ाइलों में XMP डेटा को सम्मिलित करने के लिए एक अनौपचारिक लेकिन अब व्यापक XMP डेटा एप्लिकेशन एक्सटेंशन ब्लॉक पेश किया।[38] चूंकि XMP डेटा NUL वर्णों के बिना UTF-8 का उपयोग करके एन्कोड किया गया है, इसलिए डेटा में 0 बाइट्स नहीं हैं। डेटा को औपचारिक उप-ब्लॉकों में तोड़ने के बदले में, एक्सटेंशन ब्लॉक एक मैजिक ट्रेलर के साथ समाप्त हो जाता है जो डेटा को सब-ब्लॉक के रूप में मानने वाले किसी भी एप्लिकेशन को अंतिम 0 बाइट में रूट करता है जो उप-ब्लॉक श्रृंखला को समाप्त करता है।

यूनिसिस और एलजेडडब्ल्यू पेटेंट प्रवर्तन

1977 और 1978 में, जैकब ज़िव और अब्राहम लेम्पेल ने दोषरहित डेटा-कम्प्रेशन एल्गोरिदम की एक नई श्रेणी पर कुछ पेपर प्रकाशित किए, जिन्हें अब सामूहिक रूप से LZ77 और LZ78 के रूप में संदर्भित किया जाता है। 1983 में, टेरी वेल्च ने LZ78 का एक तेज़ संस्करण विकसित किया जिसे लेम्पेल-ज़िव-वेल्च (एलजेडडब्ल्यू) नाम दिया गया था।[39][40] वेल्च ने जून 1983 में एलजेडडब्ल्यू विधि के लिए एक पेटेंट आवेदन दायर किया। परिणामी पेटेंट, US4558302,[41] दिसंबर 1985 में प्रदान किया गया, स्पेरी कॉर्पोरेशन को सौंपा गया था, जो बाद में 1986 में बरोज़ कॉर्पोरेशन के साथ विलय हो गया और यूनिसिस का गठन किया।[39]आगे पेटेंट यूनाइटेड किंगडम, फ्रांस, जर्मनी, इटली, जापान और कनाडा में प्राप्त किए गए थे।

उपरोक्त पेटेंटों के अलावा, वेल्च के 1983 के पेटेंट में कई अन्य पेटेंटों के उद्धरण भी सम्मिलित हैं जिन्होंने इसे प्रभावित किया, जिनमें सम्मिलित हैं:

  • 1980 के दो जापानी पेटेंट NEC के जून कानात्सु से,[42][43]
  • U.S. Patent 4,021,782 (1974) जॉन एस होर्निंग से,
  • U.S. Patent 4,366,551 (1977) क्लाउस ई. होल्ट्ज़ से, और
  • 1981 में कार्ल एकहार्ट हेंज का जर्मन पेटेंट।[44][45]

जून 1984 में, वेल्च का एक लेख IEEE पत्रिका में प्रकाशित हुआ था, जिसमें पहली बार एलजेडडब्ल्यू तकनीक का सार्वजनिक रूप से वर्णन किया गया था।[46] एलजेडडब्ल्यू एक लोकप्रिय डेटा कम्प्रेशन तकनीक बन गई और, जब पेटेंट प्रदान किया गया, तो यूनिसिस ने सौ से अधिक कंपनियों के साथ लाइसेंसिंग समझौते किए।[39][47] एलजेडडब्ल्यू की लोकप्रियता ने कम्पूसर्वे को 1987 में विकसित जीआईएफ के अपने संस्करण के लिए कम्प्रेशन तकनीक के रूप में इसे चुनने के लिए प्रेरित किया। उस समय, कम्पूसर्वे को पेटेंट के बारे में पता नहीं था।[39] यूनिसिस को पता चला कि जीआईएफ के संस्करण ने एलजेडडब्ल्यू कम्प्रेशन तकनीक का उपयोग किया और जनवरी 1993 में कम्पूसर्वे के साथ लाइसेंसिंग वार्ता में प्रवेश किया। बाद के समझौते की घोषणा 24 दिसंबर 1994 को की गई।[40]यूनिसिस ने कहा कि वे उम्मीद करते हैं कि सभी प्रमुख व्यावसायिक ऑन-लाइन सूचना सेवा कंपनियां उचित दर पर यूनिसिस से प्रौद्योगिकी का लाइसेंस लेने के लिए एलजेडडब्ल्यू पेटेंट को नियोजित करती हैं, लेकिन उन्हें गैर-वाणिज्यिक, गैर-वाणिज्यिक, गैर- लाभ जीआईएफ-आधारित अनुप्रयोग, जिसमें ऑन-लाइन सेवाओं पर उपयोग के लिए सम्मिलित हैं।[47]

इस घोषणा के बाद, कम्पूसर्वे और Unisys की व्यापक निंदा हुई और कई सॉफ्टवेयर डेवलपर्स ने जीआईएफ का उपयोग बंद करने की धमकी दी। पोर्टेबल नेटवर्क ग्राफिक्स (नीचे देखें) को 1995 में एक इच्छित प्रतिस्थापन के रूप में विकसित किया गया था।[39][40][46]हालांकि, पीएनजी प्रारूप के लिए वेब ब्राउज़र और अन्य सॉफ्टवेयर के निर्माताओं से समर्थन प्राप्त करना मुश्किल साबित हुआ और जीआईएफ को बदलना संभव नहीं था, हालांकि पीएनजी की लोक प्रियता धीरे-धीरे बढ़ी है।[39]इसलिए, एलजेडडब्ल्यू कम्प्रेशन के बिना जीआईएफ विविधताएं विकसित की गईं। उदाहरण के लिए, एरिक एस. रेमंड के जीआईएफlib पर आधारित लिबंगिफ लाइब्रेरी, जीआईएफ के निर्माण की अनुमति देता है जो डेटा प्रारूप का पालन करता है लेकिन कम्प्रेशन सुविधाओं से बचा जाता है, इस प्रकार यूनिसिस एलजेडडब्ल्यू पेटेंट के उपयोग से बचा जाता है।[48] 2001 डॉ. डॉब्स जर्नल|डॉ. डॉब के लेख ने इसके पेटेंट का उल्लंघन किए बिना एलजेडडब्ल्यू- संगत एन्कोडिंग प्राप्त करने का एक तरीका बताया।[49]

अगस्त 1999 में, यूनिसिस ने कुछ गैर-वाणिज्यिक और निजी वेबसाइटों के मालिकों के लिए $5000 या $7500 के एक बार के लाइसेंस शुल्क के भुगतान पर लाइसेंस प्राप्त करने के विकल्प की घोषणा करते हुए अपने लाइसेंसिंग अभ्यास के विवरण को बदल दिया।[50] ऐसे लाइसेंस की आवश्यकता वेबसाइट के मालिकों या अन्य जीआईएफ उपयोगकर्ताओं के लिए नहीं थी, जिन्होंने जीआईएफ बनाने के लिए लाइसेंस प्राप्त सॉफ़्टवेयर का उपयोग किया था। फिर भी, यूनिसिस को हजारों ऑनलाइन हमलों और उपयोगकर्ताओं से अपमानजनक ईमेल का सामना करना पड़ा, यह मानते हुए कि उनकी वेबसाइटों पर जीआईएफ का उपयोग करने के लिए उनसे $ 5000 का शुल्क लिया जाएगा या उन पर प्रकरण चलाया जाएगा।[51] सैकड़ों गैर-लाभकारी संगठनों, स्कूलों और सरकारों को मुफ्त लाइसेंस देने के बावजूद, यूनिसिस कोई भी अच्छा प्रचार करने में पूरी तरह से असमर्थ था और प्रोग्रामिंग स्वतंत्रता के लिए लीग जैसे व्यक्तियों और संगठनों द्वारा निंदा की जाती रही, जिन्होंने 1999 में बर्न ऑल जीआईएफ अभियान आरंभ किया था। .[52][53] संयुक्त राज्य एलजेडडब्ल्यू पेटेंट 20 जून 2003 को समाप्त हो गया।[54]यूनाइटेड किंगडम, फ्रांस, जर्मनी और इटली में समकक्ष पेटेंट 18 जून 2004 को समाप्त हो गए, जापानी पेटेंट 20 जून 2004 को समाप्त हो गए और कनाडाई पेटेंट 7 जुलाई 2004 को समाप्त हो गए।[54] नतीजतन, जबकि यूनिसिस के पास एलजेडडब्ल्यू तकनीक में सुधार से संबंधित पेटेंट और पेटेंट आवेदन हैं,[54]जुलाई 2004 से एलजेडडब्ल्यू स्वयं (और फलस्वरूप जीआईएफ) उपयोग करने के लिए स्वतंत्र है।[55]


विकल्प

पीएनजी

एलजेडडब्ल्यू कम्प्रेशन तकनीक पर यूनिसिस के पेटेंट के उल्लंघन से बचने के लिए पोर्टेबल नेटवर्क ग्राफिक्स (पीएनजी) को जीआईएफ के प्रतिस्थापन के रूप में डिज़ाइन किया गया था।[39]पीएनजी जीआईएफ की तुलना में बेहतर कम्प्रेशन और अधिक सुविधाएँ प्रदान करता है,[56] एनिमेशन एकमात्र महत्वपूर्ण अपवाद है। पीएनजी ऐसे उदाहरणों में जीआईएफ से अधिक उपयुक्त है जहां ट्रू-कलर इमेजिंग और अल्फा पारदर्शिता की आवश्यकता होती है।

हालाँकि पीएनजी प्रारूप के लिए समर्थन धीरे-धीरे आया, नए वेब ब्राउज़र पीएनजी का समर्थन करते हैं। इंटरनेट एक्स्प्लोरर के पुराने संस्करण पीएनजी की सभी विशेषताओं का समर्थन नहीं करते हैं। संस्करण 6 और पहले के संस्करण माइक्रोसॉफ्ट-विशिष्ट HTML एक्सटेंशन का उपयोग किए बिना अल्फा चैनल पारदर्शिता का समर्थन नहीं करते हैं।

एनिमेशन प्रारूप

वीडियो वेब पर सामान्य उपयोग के माध्यम से जीआईएफ द्वारा पेश की जाने वाली कई समस्याओं का समाधान करते हैं। इनमें अत्यधिक छोटे फ़ाइल आकार, 8-बिट रंग प्रतिबंध को पार करने की क्षमता, और वीडियो कोडेक के माध्यम से बेहतर फ्रेम-हैंडलिंग और कम्प्रेशन सम्मिलित हैं। वेब ब्राउज़र में जीआईएफ प्रारूप के लिए वस्तुतः सार्वभौमिक समर्थन और HTML मानक में वीडियो के लिए आधिकारिक समर्थन की कमी के कारण जीआईएफ को वेब पर लघु वीडियो जैसी फ़ाइलों को प्रदर्शित करने के उद्देश्य से प्रमुखता मिली।

  • एकाधिक छवि नेटवर्क ग्राफिक्स (मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स) को मूल रूप से एनिमेशन के लिए पीएनजी-आधारित समाधान के रूप में विकसित किया गया था। एमएनजी 2001 में संस्करण 1.0 तक पहुंच गया, लेकिन कुछ अनुप्रयोग इसका समर्थन करते हैं।
  • एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स (एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स) mozilla द्वारा 2006 में प्रस्तावित किया गया था। Aपीएनजी MNG प्रारूप के विकल्प के रूप में पीएनजी प्रारूप का एक विस्तार है। Aपीएनजी 2019 तक अधिकांश ब्राउज़रों द्वारा समर्थित है।[57] एपीएनजी डीकोडर्स में पीछे की ओर संगतता बनाए रखते हुए पीएनजी फाइलों को एनिमेट करने की क्षमता प्रदान करता है जो एनीमेशन खंड (एमएनजी के विपरीत) को समझ नहीं सकता है। पुराने डिकोडर केवल एनीमेशन के पहले फ्रेम को प्रस्तुत करेंगे।
पीएनजी समूह ने 20 अप्रैल 2007 को आधिकारिक तौर पर एपीएनजी को एक आधिकारिक विस्तार के रूप में खारिज कर दिया।[58]
कई अलग-अलग दृष्टिकोणों का उपयोग करते हुए पीएनजी पर आधारित एक सरल एनिमेटेड ग्राफिक्स प्रारूप के लिए बाद के कई प्रस्ताव आए हैं।[59] फिर भी, Aपीएनजी अभी भी Mozilla द्वारा विकसित किया जा रहा है और Mozilla Firefox#Version 3.0|Firefox 3.0 में समर्थित है[60][61] जबकि एमएनजी समर्थन हटा दिया गया था।[62][63] एपीएनजी वर्तमान में क्रोम (संस्करण 59.0 के बाद से), ओपेरा, फ़ायरफ़ॉक्स और एज सहित सभी प्रमुख वेब ब्राउज़रों द्वारा समर्थित है।
  • एंबेडेड एडोब फ्लैश ऑब्जेक्ट्स और
  • एमपीईजी फाइलों का उपयोग कुछ वेबसाइटों पर सरल वीडियो प्रदर्शित करने के लिए किया गया था, लेकिन एक अतिरिक्त ब्राउज़र प्लगइन के उपयोग की आवश्यकता थी।
  • वेबम और
  • वेबपी विकास में हैं और कुछ वेब ब्राउज़रों द्वारा समर्थित हैं।[64]
  • वेब एनीमेशन के अन्य विकल्पों में AJAX का उपयोग करके अलग-अलग फ़्रेमों की सेवा करना सम्मिलित है, या
  • जावास्क्रिप्ट या सिंक्रनाइज़ मल्टीमीडिया एकीकरण भाषा (सिंक्रोनाइज़्ड मल्टीमीडिया इंटीग्रेशन लैंग्वेज) का उपयोग करके स्केलेबल वेक्टर ग्राफिक्स (स्केलेबल वेक्टर ग्राफिक्स) इमेज को एनिमेट करना।
  • HTML5 वीडियो के व्यापक समर्थन की शुरुआत के साथ (<video>) अधिकांश वेब ब्राउज़रों में टैग, कुछ वेबसाइटें JavaScript फ़ंक्शंस द्वारा उत्पन्न वीडियो टैग के लूप किए गए संस्करण का उपयोग करती हैं। यह एक जीआईएफ का रूप देता है, लेकिन संपीड़ित वीडियो के आकार और गति के फायदे के साथ।
उल्लेखनीय उदाहरण Gfycat और Imgur और उनके जीआईएफV मेटाफ़ॉर्मेट हैं, जो वास्तव में एक लूप्ड MP4 या WebM संपीड़ित वीडियो चलाने वाला एक वीडियो टैग है।[65]
  • उच्च दक्षता छवि फ़ाइल प्रारूप (उच्च दक्षता छवि फ़ाइल प्रारूप) एक छवि फ़ाइल प्रारूप है, जिसे 2015 में अंतिम रूप दिया गया है, जो HEVC वीडियो प्रारूप के आधार पर असतत कोसाइन ट्रांसफ़ॉर्म (DCT) हानिपूर्ण कम्प्रेशन एल्गोरिदम का उपयोग करता है, और JPEG छवि प्रारूप से संबंधित है। जेपीईजी के विपरीत, एचईआईएफ एनीमेशन का समर्थन करता है।[66] : जीआईएफ प्रारूप की तुलना में, जिसमें डीसीटी कम्प्रेशन की कमी है, एचईआईएफ उल्लेखनीय रूप से अधिक कुशल कम्प्रेशन की अनुमति देता है। HEIF अधिक सूचना संग्रहीत करता है और समान जीआईएफ के आकार के एक छोटे से अंश पर उच्च-गुणवत्ता वाली एनिमेटेड छवियां बनाता है।[67]
  • VP9 केवल 4:2:0 क्रोमा सबसैम्पलिंग के साथ अल्फा रचना का समर्थन करता है[68] YUV A420 पिक्सेल प्रारूप में, जो जीआईएफ के लिए अनुपयुक्त हो सकता है जो ठीक रंग विवरण के साथ रेखांकन वेक्टर ग्राफिक्स के साथ पारदर्शिता को जोड़ती है।
  • AV1 कोडेक का उपयोग वीडियो या अनुक्रमित छवि के रूप में भी किया जा सकता है।

उपयोग

अप्रैल 2014 में, 4chan ने मूक वेबएम वीडियो के लिए समर्थन जोड़ा जो 3 एमबी से कम आकार और 2 मिनट की लंबाई में हैं,[69][70] और अक्टूबर 2014 में, इम्गुर ने साइट पर अपलोड की गई किसी भी जीआईएफ फाइल को वीडियो में परिवर्तित करना आरंभ कर दिया और एचटीएमएल प्लेयर को एक वास्तविक फ़ाइल के रूप में लिंक देना आरंभ कर दिया .जीआईएफv विस्तार।[71][72] जनवरी 2016 में, टेलीग्राम (सॉफ्टवेयर) ने सभी जीआईएफ को एमपीईजी -4 वीडियो में फिर से एन्कोड करना आरंभ कर दिया, जिसमें समान छवि गुणवत्ता के लिए 95% कम डिस्क स्थान की आवश्यकता होती है।[73]


यह भी देखें

संदर्भ

  1. 1.0 1.1 1.2 "Graphics Interchange Format, Version 87a". W3C. 15 June 1987. Archived from the original on 22 December 2018. Retrieved 13 October 2012.
  2. 2.0 2.1 2.2 "Graphics Interchange Format, Version 89a". W3C. 31 July 1990. Archived from the original on 22 December 2018. Retrieved 6 March 2009.
  3. "Online Art". Compute!'s Apple Applications. December 1987. p. 10. Retrieved 14 September 2016.
  4. Holdener III, Anthony (2008). Ajax: The Definitive Guide: Interactive Applications for the Web. O'Reilly Media. ISBN 978-0596528386.
  5. Furht, Borko (2008). Encyclopedia of Multimedia. Springer. ISBN 978-0387747248.
  6. McHugh, Molly (29 May 2015). "You Can Finally, Actually, Really, Truly Post GIFs on Facebook". Wired. wired.com. Archived from the original on 30 May 2015. Retrieved 29 May 2015.
  7. Perez, Sarah (29 May 2015). "Facebook Confirms It Will Officially Support GIFs". techcrunch.com. Archived from the original on 30 May 2015. Retrieved 29 May 2015.
  8. "Introducing GIF Stickers". Instagram (in English). 23 January 2018. Archived from the original on 12 December 2019. Retrieved 19 September 2019.
  9. "Oxford Dictionaries USA Word of the Year 2012". OxfordWords blog. Oxford American Dictionaries. 13 November 2012. Archived from the original on 3 August 2014. Retrieved 1 May 2013.
  10. Flood, Alison (27 April 2013). "Gif is America's word of the year? Now that's what I call an omnishambles". Books blog. The Guardian. London. Archived from the original on 1 December 2016. Retrieved 1 May 2013.
  11. Olsen, Steve. "The GIF Pronunciation Page". Archived from the original on 25 February 2009. Retrieved 6 March 2009.
  12. 12.0 12.1 12.2 "Gif's inventor says ignore dictionaries and say 'Jif'". BBC News. 22 May 2013. Archived from the original on 27 June 2018. Retrieved 22 May 2013.
  13. Buck, Stephanie (21 October 2014). "70 percent of people worldwide pronounce GIF with a hard g". Mashable. Archived from the original on 23 December 2021. Retrieved 24 December 2021.
  14. van der Meulen, Marten (22 May 2019). "Obama, SCUBA or gift?: Authority and argumentation in online discussion on the pronunciation of GIF". English Today. 36 (1): 45–50.
  15. "GIF". The American Heritage Abbreviations Dictionary, Third Edition. Houghton Mifflin Company. 2005. Archived from the original on 3 September 2011. Retrieved 15 April 2007.
  16. "GIF". The Cambridge Dictionary of American English. Cambridge University Press. Archived from the original on 27 February 2014. Retrieved 19 February 2014.
  17. "Gif - Definition from the Merriam-Webster Dictionary". Merriam-Webster Dictionary. Merriam-Webster, Incorporated. Archived from the original on 22 October 2013. Retrieved 6 June 2013.
  18. "जीआईएफ". Oxford Dictionaries Online. Oxford University Press. Archived from the original on 12 October 2014. Retrieved 7 October 2014.
  19. "gif noun - Definition, pictures, pronunciation and usage notes | Oxford Advanced Learner's Dictionary". Oxford Learner's Dictionaries. Archived from the original on 24 November 2020. Retrieved 6 February 2021.
  20. "GIF | Definition of GIF by Oxford Dictionary". Lexico (in English). Archived from the original on 13 February 2021. Retrieved 6 February 2021.
  21. Stevenson, Angus, ed. (2010). Oxford Dictionary of English (3rd ed.). Oxford University Press. ISBN 9780199571123. OCLC 729551189.
  22. The New Oxford American Dictionary (2nd ed.). Oxford University Press. 2005. p. 711.
  23. The New Oxford American Dictionary (3rd ed.). 2012. (part of the Macintosh built-in dictionaries).
  24. O'Leary, Amy (21 May 2013). "An Honor for the Creator of the GIF". The New York Times. Archived from the original on 22 May 2013. Retrieved 22 May 2013.
  25. 25.0 25.1 Rothberg, Daniel (4 December 2013). "'Jeopardy' wades into 'GIF' pronunciation battle". Los Angeles Times. Archived from the original on 6 December 2013. Retrieved 4 December 2013.
  26. O'Leary, Amy (23 May 2013). "Battle Over 'GIF' Pronunciation Erupts". The New York Times. Archived from the original on 16 December 2013. Retrieved 5 December 2013.
  27. Valinsky, Jordan (February 25, 2020). "Jif settles the great debate with a GIF peanut butter jar". CNN. Archived from the original on February 25, 2020. Retrieved February 25, 2020.
  28. Marur, D.R.; Bhaskar, V. (March 2012). "2012 International Conference on Devices, Circuits and Systems (ICDCS)". Devices, Circuits and Systems (ICDCS). International Conference on Devices, Circuits and Systems (ICDCS). Karunya University; Coimbatore, India: IEEE. pp. 297–301. doi:10.1109/ICDCSyst.2012.6188724. ISBN 9781457715457. Archived from the original on 2 July 2017. Retrieved 11 March 2015.
  29. S. Chin; D. Iverson; O. Campesato; P. Trani (2011). Pro Android Flash (PDF). New York: Apress. p. 350. ISBN 9781430232315. Archived (PDF) from the original on 2 April 2015. Retrieved 11 March 2015.
  30. Bakhshi, Saeideh; Shamma, David A.; Kennedy, Lyndon; Song, Yale; de Juan, Paloma; Kaye, Joseph "Jofish" (7 May 2016). "Fast, Cheap, and Good: Why Animated GIFs Engage Us". Proceedings of the 2016 CHI Conference on Human Factors in Computing Systems: 575–586. doi:10.1145/2858036.2858532. S2CID 7417853. Retrieved 17 August 2022.
  31. Highfield, Tim; Leaver, Tama (2016). "Instagrammatics and digital methods: studying visual social media, from selfies and GIFs to memes and emoji". Communication Research and Practice. 2 (1): 47–62. doi:10.1080/22041451.2016.1155332. S2CID 148538216. Retrieved 17 August 2022.
  32. 32.0 32.1 32.2 Andreas Kleinert (2007). "GIF 24 Bit (truecolor) extensions". Archived from the original on 16 March 2012. Retrieved 23 March 2012.
  33. 33.0 33.1 Philip Howard. "True-Color GIF Example". Archived from the original on 22 February 2015. Retrieved 23 March 2012.
  34. "Nullsleep - Jeremiah Johnson - Animated GIF Minimum Frame Delay Browser Compatibility Study". Archived from the original on 10 October 2014. Retrieved 26 May 2015.
  35. "They're different! How to match the animation rate of gif files accross [sic] browsers". Developer's Blog. 14 February 2012. Archived from the original on 1 February 2017. Retrieved 15 June 2017.
  36. Royal Frazier. "All About GIF89a". Archived from the original on 18 April 1999. Retrieved 7 January 2013.
  37. Scott Walter (1996). Web Scripting Secret Weapons. Que Publishing. ISBN 0-7897-0947-3.
  38. "XMP Specification Part 3: Storage in Files" (PDF). Adobe. 2016. pp. 11–12. Archived (PDF) from the original on 25 February 2018. Retrieved 16 August 2018.
  39. 39.0 39.1 39.2 39.3 39.4 39.5 39.6 Greg Roelofs. "History of the Portable Network Graphics (PNG) Format". Archived from the original on 7 March 2012. Retrieved 23 March 2012.
  40. 40.0 40.1 40.2 Stuart Caie. "Sad day... GIF patent dead at 20". Archived from the original on 10 February 2012. Retrieved 23 March 2012.
  41. US 4558302, Welch, Terry A., published 1985-12-10, assigned to Sperry Corp. 
  42. JP patent S5719857A, Kanatsu, Jiyun, "Data compression storage device", published 1982-02-02, assigned to Nippon Electric Corp. 
  43. JP patent S57101937A, Kanatsu, Jiyun, "Data storage device", published 1986-20-24, assigned to Nippon Electric Corp. 
  44. DE patent 3118676, Eckhart, Heinz Karl, "Verfahren zur Kompression redundanter Folgen serieller Datenelemente [Method for compressing redundant sequences of serial data elements]", published 1982-12-02 
  45. U.S. Patent 4,558,302
  46. 46.0 46.1 "The GIF Controversy: A Software Developer's Perspective". Archived from the original on 23 August 2016. Retrieved 26 May 2015.
  47. 47.0 47.1 "Unisys Clarifies Policy Regarding Patent Use in On-Line Service Offerings". Archived from the original on 7 February 2007. – archived by League for Programming Freedom
  48. "लिबुंगिफ". Archived from the original on 13 April 2015. Retrieved 26 May 2015.
  49. Cargill, Tom (1 October 2001). "Replacing a Dictionary with a Square Root". Dr. Dobb's Journal. Archived from the original on 28 June 2017. Retrieved 20 January 2017.
  50. "LZW Software and Patent Information". Archived from the original on 8 June 2009. Retrieved 31 January 2007. – clarification of 2 September 1999
  51. Unisys Not Suing (most) Webmasters for Using GIFs Archived 10 May 2017 at the Wayback MachineSlashdot investigation into the controversy
  52. "Burn All GIFs Day". Archived from the original on 13 October 1999.
  53. Burn All GIFs Archived 3 February 2007 at the Wayback Machine – A project of the League for Programming Freedom (latest version)
  54. 54.0 54.1 54.2 "License Information on GIF and Other LZW-based Technologies". Archived from the original on 2 June 2009. Retrieved 26 April 2005.
  55. "Why There Are No GIF Files on GNU Web Pages". Free Software Foundation. Archived from the original on 19 May 2012. Retrieved 19 May 2012.
  56. "पीएनजी बनाम जीआईएफ संपीड़न". 31 March 2007. Archived from the original on 15 July 2009. Retrieved 8 June 2009.
  57. "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Archived from the original on 19 February 2018. Retrieved 10 April 2020.
  58. "VOTE FAILED: APNG 20070405a". SourceForge mailing list. 20 April 2007. Archived from the original on 13 February 2013. Retrieved 14 July 2013.
  59. "Discussion for a simple "animated" PNG format". Archived from the original on 26 February 2009. Retrieved 12 July 2011.
  60. "APNG Specification". Archived from the original on 5 July 2010. Retrieved 26 May 2015.
  61. "Mozilla Labs » Blog Archive » Better animations in Firefox 3". Archived from the original on 7 March 2016. Retrieved 3 February 2016.
  62. "195280 – Removal of MNG/JNG support". Archived from the original on 25 February 2021. Retrieved 26 May 2015.
  63. "18574 – (mng) restore support for MNG animation format and JNG image format". Archived from the original on 17 March 2021. Retrieved 26 May 2015.
  64. "Chromium Blog: Chrome 32 Beta: Animated WebP images and faster Chrome for Android touch input". Blog.chromium.org. 21 November 2013. Archived from the original on 17 July 2018. Retrieved 1 February 2014.
  65. "Introducing GIFV - Imgur Blog". imgur.com. 9 October 2014. Archived from the original on 14 December 2014. Retrieved 14 December 2014.
  66. Thomson, Gavin; Shah, Athar (2017). "Introducing HEIF and HEVC" (PDF). Apple Inc. Archived (PDF) from the original on 19 January 2020. Retrieved 5 August 2019.
  67. "HEIF Comparison - High Efficiency Image File Format". Nokia Technologies. Archived from the original on 25 July 2019. Retrieved 5 August 2019.
  68. "#3271 (Allow using additional pixel formats with libvpx-vp9) – FFmpeg". trac.ffmpeg.org. Archived from the original on 16 June 2020. Retrieved 10 April 2020.
  69. Dewey, Caitlin. "Meet the technology that could make GIFs obsolete". The Washington Post. Archived from the original on 11 May 2015. Retrieved 4 February 2015.
  70. "WebM support on 4chan". 4chan Blog. Archived from the original on 6 April 2014. Retrieved 4 February 2015.
  71. "Introducing GIFV". Imgur. 9 August 2014. Archived from the original on 5 May 2020. Retrieved 21 July 2016.
  72. Allan, Patrick (9 October 2014). "Imgur Revamps GIFs for Faster Speeds and Higher Quality with GIFV". Lifehacker. Archived from the original on 3 February 2015. Retrieved 4 February 2015.
  73. "GIF Revolution". Official Telegram Blog. 4 January 2016. Archived from the original on 10 January 2016. Retrieved 4 January 2016.


बाहरी कड़ियाँ