जीआईएफ: Difference between revisions
(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}} | ||
{{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}}, [[:hi:GIF#Pronunciation|उच्चारण देखें]]) एक [[बिटमैप]] इमेज फ़ॉर्मेट है जिसे अमेरिकी [[कंप्यूटर]] वैज्ञानिक स्टीव विल्हाइट के नेतृत्व में ऑनलाइन सेवा प्रदाता कम्पूसर्वे (कम्पूसर्वे) की एक टीम द्वारा विकसित किया गया था और 15 जून 1987 को रिलीज़ किया गया था।<ref name="87aSpec" /> अनुप्रयोगों और ऑपरेटिंग सिस्टम के बीच व्यापक समर्थन और पोर्टेबिलिटी के कारण यह [[ वर्ल्ड वाइड वेब |वर्ल्ड वाइड वेब]] पर व्यापक उपयोग में है। | |||
प्रारूप प्रत्येक छवि के लिए [[ | प्रारूप प्रत्येक छवि के लिए 8 बिट प्रति [[पिक्सेल]] तक का समर्थन करता है, जिससे एक छवि 24-बिट आरजीबी रंग स्थान से चुने गए 256 विभिन्न रंगों के अपने पैलेट को संदर्भित करने की अनुमति देती है। यह [[एनिमेशन डेटाबेस|एनिमेशन]] में भी प्रत्येक फ्रेम के लिए 256 रंगों के एक अलग पैलेट की अनुमति देता है। ये पैलेट सीमाएँ जीआईएफ को रंगीन तस्वीरों और अन्य छवियों को कलर ग्रडियन्ट के साथ पुन: पेश करने के लिए कम उपयुक्त बनाती हैं, लेकिन सरल छवियों जैसे कि ग्राफिक्स या रंग के सुगठित क्षेत्रों के साथ लोगो के लिए उपयुक्त हैं। | ||
दृश्य गुणवत्ता को खराब किए बिना फ़ाइल आकार को कम करने के लिए | दृश्य गुणवत्ता को खराब किए बिना फ़ाइल आकार को कम करने के लिए जीआईएफ छवियों को लेम्पेल-ज़िव-वेल्च (एलजेडडब्ल्यू) [[ दोषरहित डेटा संपीड़न |दोषरहित डेटा कम्प्रेशन]] (लॉसलेस डाटा कम्प्रेशन) तकनीक का उपयोग करके संपीड़ित किया जाता है। | ||
== इतिहास == | == इतिहास == | ||
कम्पूसर्वे ने 15 जून 1987 को अपने फ़ाइल डाउनलोडिंग क्षेत्रों के लिए एक रंगीन छवि प्रारूप प्रदान करने के लिए जीआईएफ निवेदित किया था। इसने उनके पहले के [[ रन-लेंथ एन्कोडिंग |रन-लेंथ एन्कोडिंग]] प्रारूप को बदल दिया, जो केवल काले और सफेद रंग का था। जीआईएफ लोकप्रिय हो गया क्योंकि इसमें लेम्पेल-ज़िव-वेल्च डेटा कम्प्रेशन का इस्तेमाल किया गया था। चूंकि यह [[ पीसीएक्स |पीसीएक्स]] और [[ मैकपेंट |मैकपेंट]] द्वारा उपयोग की जाने वाली रन-लेंथ एन्कोडिंग की तुलना में अधिक कुशल था, धीमी [[ मोडम |मोडम]] के साथ भी काफी बड़ी छवियों को यथोचित शीघ्रता से डाउनलोड किया जा सकता था। | |||
जीआईएफ के मूल संस्करण को 87a कहलाता था।<ref name="87aSpec" /> यह संस्करण पहले से ही एक स्ट्रीम में कई छवियों का समर्थन करता है। | |||
1989 में, | 1989 में, कम्पूसर्वे ने 89a नामक एक उन्नत संस्करण जारी किया,<ref name="89aSpec" /> यह संस्करण जोड़ा गया: | ||
* एनीमेशन | * एनीमेशन-विलंब (डिलेस) के लिए समर्थन | ||
* | * ट्रांसपेरेंट बैकग्राउंड रंग | ||
* एप्लिकेशन-विशिष्ट मेटाडेटा का संग्रहण | * एप्लिकेशन-विशिष्ट मेटाडेटा का संग्रहण | ||
* टेक्स्ट लेबल को टेक्स्ट के रूप में अनुमति देना (उन्हें ग्राफिकल डेटा में एम्बेड नहीं करना)। चूंकि प्रदर्शन फोंट पर थोड़ा नियंत्रण होता है, हालांकि, | * टेक्स्ट लेबल को टेक्स्ट के रूप में अनुमति देना (उन्हें ग्राफिकल डेटा में एम्बेड नहीं करना)। चूंकि प्रदर्शन फोंट पर थोड़ा नियंत्रण होता है, हालांकि, यह सुविधा संभवतया ही कभी प्रयोग की जाती है। | ||
फ़ाइल के पहले छह [[ बाइट | बाइट]] ्स ([[ जादू संख्या (प्रोग्रामिंग) |जादू संख्या (प्रोग्रामिंग)]] या हस्ताक्षर) को देखकर दो संस्करणों को अलग किया जा सकता है, जिसे [[ 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> | |||
सितंबर 1995 में नेटस्केप नेविगेटर 2.0 ने एनिमेटेड जीआईएफ को लूप करने की क्षमता को जोड़ा है। | |||
जबकि जीआईएफ को कम्पूसर्वे द्वारा विकसित किया गया था, इसने 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> | |||
== शब्दावली == | == शब्दावली == | ||
संज्ञा के रूप में, जीआईएफ शब्द कई शब्दकोशों के नए संस्करणों में पाया जाता है। 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> | |||
== उपयोग == | == उपयोग == | ||
जीआईएफ लोगो जैसे रंगों की सीमित संख्या के साथ तीक्ष्ण धार वाली रेखा कला के लिए उपयुक्त हैं। यह प्रारूप के दोषरहित | जीआईएफ लोगो जैसे रंगों की सीमित संख्या के साथ तीक्ष्ण धार वाली रेखा कला के लिए उपयुक्त हैं। यह प्रारूप के दोषरहित कम्प्रेशन का लाभ उठाता है, जो अच्छी तरह से परिभाषित किनारों के साथ समान रंग के समतल क्षेत्रों का समर्थन करता है।<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|','}}) | ||
* | * एक्सटेंशन ब्लॉक (0x21 द्वारा पेश किया गया, एक ASCII विस्मयादिबोधक बिंदु {{code|'!'}}) | ||
* ट्रेलर (मूल्य 0x3B का एक सिंगल बाइट, एक ASCII अर्धविराम {{code|';'}}), जो फ़ाइल का अंतिम बाइट होना चाहिए। | * ट्रेलर (मूल्य 0x3B का एक सिंगल बाइट, एक ASCII अर्धविराम {{code|';'}}), जो फ़ाइल का अंतिम बाइट होना चाहिए। | ||
छवि एक निश्चित-लंबाई छवि डिस्क्रिप्टर से आरंभ होती है, जो स्थानीय रंग तालिका की उपस्थिति और आकार निर्दिष्ट कर सकती है (जो उपस्थित होने पर आगे आती है)। छवि डेटा इस प्रकार है: एक बाइट अनएन्कोडेड प्रतीकों की बिट चौड़ाई (जो कि कम से कम 2 बिट चौड़ा होना चाहिए, द्वि-रंग छवियों के लिए भी होना चाहिए), इसके बाद उप-ब्लॉकों की एक लिंक की गई सूची जिसमें एलजेडडब्ल्यू-एन्कोडेड डेटा सम्मिलित है। | |||
एक्सटेंशन ब्लॉक (ब्लॉक जो 87a परिभाषा को पहले से ही 87a कल्पना में परिभाषित तंत्र के माध्यम से विस्तारित करते हैं) में प्रहरी, एक्सटेंशन के प्रकार को निर्दिष्ट करने वाला एक अतिरिक्त बाइट और एक्सटेंशन डेटा के साथ उप-ब्लॉकों की एक लिंक्ड सूची | एक्सटेंशन ब्लॉक (ब्लॉक जो 87a परिभाषा को पहले से ही 87a कल्पना में परिभाषित तंत्र के माध्यम से विस्तारित करते हैं) में प्रहरी, एक्सटेंशन के प्रकार को निर्दिष्ट करने वाला एक अतिरिक्त बाइट और एक्सटेंशन डेटा के साथ उप-ब्लॉकों की एक लिंक्ड सूची सम्मिलित है। एक्सटेंशन ब्लॉक जो एक छवि को संशोधित करते हैं (जैसे ग्राफिक कंट्रोल एक्सटेंशन जो वैकल्पिक एनीमेशन विलंब समय और वैकल्पिक पारदर्शी पृष्ठभूमि रंग निर्दिष्ट करता है) को तुरंत उस छवि के साथ सेगमेंट से पहले होना चाहिए जिसका वे संदर्भ देते हैं। | ||
छवि डेटा और एक्सटेंशन ब्लॉक द्वारा उपयोग की जाने वाली लिंक्ड सूचियों में उप-ब्लॉकों की श्रृंखला | छवि डेटा और एक्सटेंशन ब्लॉक द्वारा उपयोग की जाने वाली लिंक्ड सूचियों में उप-ब्लॉकों की श्रृंखला सम्मिलित होती है, प्रत्येक उप-ब्लॉक एक बाइट से आरंभ होता है जो उप-ब्लॉक (1 से 255) में बाद के डेटा बाइट्स की संख्या देता है। उप-ब्लॉकों की श्रृंखला एक खाली उप-ब्लॉक (एक 0 बाइट) द्वारा समाप्त होती है। | ||
यह संरचना फ़ाइल को पार्स करने की अनुमति देती है, भले ही सभी भाग समझ में न आए हों। 87a चिह्नित | यह संरचना फ़ाइल को पार्स करने की अनुमति देती है, भले ही सभी भाग समझ में न आए हों। 87a चिह्नित जीआईएफ में एक्सटेंशन ब्लॉक हो सकते हैं; आशय यह है कि एक डिकोडर फ़ाइल को एक्सटेंशन में सम्मिलित सुविधाओं के बिना पढ़ और प्रदर्शित कर सकता है जिसे वह समझ नहीं पाता है। | ||
फ़ाइल प्रारूप का पूरा विवरण | फ़ाइल प्रारूप का पूरा विवरण जीआईएफ विनिर्देशन में सम्मिलित है।<ref name="89aSpec"/> | ||
== पैलेट्स == | == पैलेट्स == | ||
[[File:Sunflower as gif websafe.gif|thumb|right|[[ वेब-सुरक्षित रंग ]]ों के साथ सहेजी गई GIF छवि का एक उदाहरण | वेब-सुरक्षित पैलेट और फ्लोयड-स्टाइनबर्ग [[ तड़पना ]]िंग | फ़्लॉइड-स्टाइनबर्ग विधि का उपयोग करके। छवि में रंगों की संख्या कम होने के कारण, प्रदर्शन समस्याएँ हैं।]]जीआईएफ पैलेट-आधारित है: फ़ाइल में एक छवि (एक फ्रेम) में उपयोग किए जाने वाले रंगों में उनके [[ आरजीबी ]] मान एक पैलेट (कंप्यूटिंग) में परिभाषित होते हैं जो 256 प्रविष्टियों तक रख सकते हैं, और छवि के लिए डेटा उनके द्वारा रंगों को संदर्भित करता है पैलेट तालिका में सूचकांक (0-255)। पैलेट में रंग परिभाषाएँ लाखों रंगों के रंग स्थान से खींची जा सकती हैं (2<sup>24</sup> शेड्स, प्रत्येक प्राथमिक के लिए 8 बिट्स), लेकिन एक फ्रेम द्वारा उपयोग किए जा सकने वाले रंगों की अधिकतम संख्या 256 है। | [[File:Sunflower as gif websafe.gif|thumb|right|[[ वेब-सुरक्षित रंग ]]ों के साथ सहेजी गई GIF छवि का एक उदाहरण | वेब-सुरक्षित पैलेट और फ्लोयड-स्टाइनबर्ग [[ तड़पना ]]िंग | फ़्लॉइड-स्टाइनबर्ग विधि का उपयोग करके। छवि में रंगों की संख्या कम होने के कारण, प्रदर्शन समस्याएँ हैं।]]जीआईएफ पैलेट-आधारित है: फ़ाइल में एक छवि (एक फ्रेम) में उपयोग किए जाने वाले रंगों में उनके [[ आरजीबी ]] मान एक पैलेट (कंप्यूटिंग) में परिभाषित होते हैं जो 256 प्रविष्टियों तक रख सकते हैं, और छवि के लिए डेटा उनके द्वारा रंगों को संदर्भित करता है पैलेट तालिका में सूचकांक (0-255)। पैलेट में रंग परिभाषाएँ लाखों रंगों के रंग स्थान से खींची जा सकती हैं (2<sup>24</sup> शेड्स, प्रत्येक प्राथमिक के लिए 8 बिट्स), लेकिन एक फ्रेम द्वारा उपयोग किए जा सकने वाले रंगों की अधिकतम संख्या 256 है। जीआईएफ विकसित होने पर यह सीमा उचित लगती थी क्योंकि कुछ लोग एक साथ अधिक रंगों को प्रदर्शित करने के लिए हार्डवेयर का खर्च उठा सकते थे। सरल ग्राफिक्स, रेखा चित्र, कार्टून और ग्रे-स्केल फ़ोटोग्राफ़ को आमतौर पर 256 से कम रंगों की आवश्यकता होती है। | ||
प्रत्येक फ़्रेम एक इंडेक्स को एक पारदर्शी पृष्ठभूमि रंग के रूप में निर्दिष्ट कर सकता है: इस इंडेक्स को असाइन किया गया कोई भी पिक्सेल पृष्ठभूमि से उसी स्थिति में पिक्सेल का रंग लेता है, जो एनीमेशन के पिछले फ्रेम द्वारा निर्धारित किया जा सकता है। | प्रत्येक फ़्रेम एक इंडेक्स को एक पारदर्शी पृष्ठभूमि रंग के रूप में निर्दिष्ट कर सकता है: इस इंडेक्स को असाइन किया गया कोई भी पिक्सेल पृष्ठभूमि से उसी स्थिति में पिक्सेल का रंग लेता है, जो एनीमेशन के पिछले फ्रेम द्वारा निर्धारित किया जा सकता है। | ||
कई तकनीकों, जिन्हें सामूहिक रूप से डाइथरिंग कहा जाता है, को दो या दो से अधिक रंगों के पिक्सेल का उपयोग करके रंगों के बीच में अनुमानित करने के लिए एक छोटे रंग पैलेट के साथ रंगों की एक विस्तृत श्रृंखला का अनुमान लगाने के लिए विकसित किया गया है। ये तकनीकें लगभग गहरे रंग के रिज़ॉल्यूशन के लिए स्थानिक रिज़ॉल्यूशन का त्याग करती हैं। जबकि जीआईएफ विनिर्देश का हिस्सा नहीं है, बाद में जीआईएफ छवियों के रूप में एन्कोड किए गए चित्रों में डिथरिंग का उपयोग किया जा सकता है। यह | कई तकनीकों, जिन्हें सामूहिक रूप से डाइथरिंग कहा जाता है, को दो या दो से अधिक रंगों के पिक्सेल का उपयोग करके रंगों के बीच में अनुमानित करने के लिए एक छोटे रंग पैलेट के साथ रंगों की एक विस्तृत श्रृंखला का अनुमान लगाने के लिए विकसित किया गया है। ये तकनीकें लगभग गहरे रंग के रिज़ॉल्यूशन के लिए स्थानिक रिज़ॉल्यूशन का त्याग करती हैं। जबकि जीआईएफ विनिर्देश का हिस्सा नहीं है, बाद में जीआईएफ छवियों के रूप में एन्कोड किए गए चित्रों में डिथरिंग का उपयोग किया जा सकता है। यह प्रायः जीआईएफ छवियों के लिए एक आदर्श समाधान नहीं है, क्योंकि स्थानिक रिज़ॉल्यूशन का नुकसान सामान्यतः पर स्क्रीन पर एक छवि अस्पष्ट दिखता है, और क्योंकि जीआईएफ के मुख्य उद्देश्य के खिलाफ काम करते हुए डिथरिंग पैटर्न प्रायः छवि डेटा की संपीड़ितता में हस्तक्षेप करते हैं। | ||
ग्राफिकल वेब ब्राउज़र के शुरुआती दिनों में | ग्राफिकल वेब ब्राउज़र के शुरुआती दिनों में, 8-बिट बफ़र्स (केवल 256 रंगों की अनुमति) वाले ग्राफ़िक्स कार्ड सामान्य थे और वेब-सुरक्षित रंगों का उपयोग करके जीआईएफ छवियां बनाना काफी सामान्य था। इसने पूर्वानुमेय प्रदर्शन सुनिश्चित किया, लेकिन रंगों की पसंद को गंभीर रूप से सीमित कर दिया। जब 24-बिट रंग आदर्श बन गया, तो इसके बदले में पैलेट को अलग-अलग छवियों के लिए इष्टतम रंगों से भरा जा सकता था। | ||
छोटी छवियों के लिए एक छोटी रंग तालिका पर्याप्त हो सकती है, और रंग तालिका को छोटा रखने से फ़ाइल को तेज़ी से डाउनलोड किया जा सकता है। 87a और 89a दोनों विनिर्देश 2 की रंग तालिका की अनुमति देते हैं<sup>1 से 8 तक किसी भी n के लिए n</sup> रंग। अधिकांश ग्राफ़िक्स एप्लिकेशन इनमें से किसी भी तालिका आकार के साथ | छोटी छवियों के लिए एक छोटी रंग तालिका पर्याप्त हो सकती है, और रंग तालिका को छोटा रखने से फ़ाइल को तेज़ी से डाउनलोड किया जा सकता है। 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> | हालांकि जीआईएफ का इस्तेमाल कलर डेप्थ#ट्रू कलर (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 रंगों की विशिष्ट सीमा से अधिक प्रदर्शित करने की तकनीक को दर्शाने वाला एक एनिमेटेड | [[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> | |||
| Line 125: | Line 129: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
| | |माइक्रोसॉफ्ट पेंट एक छोटी काली-और-सफेद छवि को निम्न जीआईएफ फ़ाइल के रूप में सहेजता है (सचित्र बढ़े हुए)। | ||
पेंट जीआईएफ का इष्टतम उपयोग नहीं करता है; अनावश्यक रूप से बड़ी रंग तालिका (उपयोग किए गए 2 के बदले में पूर्ण 256 रंगों को संग्रहीत करना) और प्रतीक चौड़ाई के कारण, यह जीआईएफ फ़ाइल 15-पिक्सेल छवि का एक कुशल प्रतिनिधित्व नहीं है। | |||
हालांकि ग्राफिक कंट्रोल एक्सटेंशन ब्लॉक कलर इंडेक्स 16 (हेक्साडेसिमल 10) को पारदर्शी होने की घोषणा करता है, छवि में उस इंडेक्स का उपयोग नहीं किया जाता है। छवि डेटा में दिखाई देने वाली एकमात्र रंगीन अनुक्रमणिका दशमलव 40 और 255 हैं, जिन्हें वैश्विक रंग तालिका क्रमशः काले और सफेद में मैप करती है। | |||
|[[File:gifSample.gif|center]] | |[[File:gifSample.gif|center]] | ||
नमूना चित्र (बड़ा), वास्तविक आकार 3 पिक्सेल चौड़ा गुणा 5 ऊंचा | |||
|} | |} | ||
ध्यान दें कि | ध्यान दें कि निम्न तालिकाओं में हेक्स संख्या छोटे-अंत वाले बाइट क्रम में हैं, जैसा कि प्रारूप विनिर्देश निर्धारित करता है। | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ उदाहरण जीआईएफ छवि मूल्यों की तालिका | ||
! | !बाइट # (हेक्स) | ||
!हेक्साडेसिमल | |||
!टेक्स्ट या वैल्यू | |||
! colspan="2" |अर्थ | |||
|- | |- | ||
| 0 || 47 49 46 38 39 61 || | | 0 || 47 49 46 38 39 61 || जीआईएफ89a || colspan="2" |हैडर | ||
|- | |- | ||
| 6 || 03 00 || 3 || colspan=2 | | | 6 || 03 00 || 3 || colspan=2 |लॉजिकल स्क्रीन चौड़ाई | ||
|- | |- | ||
| 8 || 05 00 || 5 || colspan=2 | | | 8 || 05 00 || 5 || colspan=2 |लॉजिकल स्क्रीन ऊंचाई | ||
|- | |- | ||
| A || F7 || || colspan=2 | | | A || F7 || || colspan=2 |जीसीटी 3 × 8 बिट्स/प्राथमिक रिज़ॉल्यूशन के साथ 256 रंगों के लिए अनुसरण करता है, सबसे कम 3 बिट्स बिट डेप्थ माइनस 1 का प्रतिनिधित्व करते हैं, उच्चतम ट्रू बिट का मतलब है कि जीसीटी उपस्थित है | ||
|- | |- | ||
| B || 00 || 0 || colspan=2 | | | B || 00 || 0 || colspan=2 | बैकग्राउंड कलर: इंडेक्स #0; #000000 काला | ||
|- | |- | ||
| C || 00 || 0 || colspan=2 | | | 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 | छवि की शुरुआत, | | 31एफ || 08 || 8 || कोलस्पैन=2 | छवि की शुरुआत, एलजेडडब्ल्यू न्यूनतम कोड आकार | ||
|- | |- | ||
| 320 || 0बी || 11 || कोलस्पैन=2 | | | 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- | ! colspan=2 |9-बिट कोड | ||
! colspan=2 | | ! colspan=2 |बाइट | ||
|- | |- | ||
! | !हेक्साडेसिमल | ||
!बायनरी | |||
!बायनरी | |||
!हेक्साडेसिमल | |||
|- 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 कोड बाइट्स द्वारा सटीक रूप से दर्शाए जाते हैं। | |||
9-बिट कोड बनाने वाली एन्कोडिंग प्रक्रिया नीचे दिखाई गई है। एक स्थानीय स्ट्रिंग पैलेट से पिक्सेल रंग संख्याएं जमा करती है, जब तक कि स्थानीय स्ट्रिंग को कोड तालिका में पाया जा सकता है, तब तक कोई आउटपुट क्रिया नहीं होती है। पहले दो पिक्सेल का विशेष उपचार होता है जो तार के जोड़ से तालिका के प्रारंभिक आकार से बढ़ने से पहले आते हैं। प्रत्येक आउटपुट कोड के बाद, स्थानीय स्ट्रिंग को नवीनतम पिक्सेल रंग में प्रारंभ किया जाता है (जो आउटपुट कोड में | |||
9-बिट कोड बनाने वाली एन्कोडिंग प्रक्रिया नीचे दिखाई गई है। एक स्थानीय स्ट्रिंग पैलेट से पिक्सेल रंग संख्याएं जमा करती है, जब तक कि स्थानीय स्ट्रिंग को कोड तालिका में पाया जा सकता है, तब तक कोई आउटपुट क्रिया नहीं होती है। पहले दो पिक्सेल का विशेष उपचार होता है जो तार के जोड़ से तालिका के प्रारंभिक आकार से बढ़ने से पहले आते हैं। प्रत्येक आउटपुट कोड के बाद, स्थानीय स्ट्रिंग को नवीनतम पिक्सेल रंग में प्रारंभ किया जाता है (जो आउटपुट कोड में सम्मिलित नहीं किया जा सकता)। | |||
'''Table 9-bit''' | |||
'''string --> code code Action''' | |||
#0 | 000h Initialize root table of 9-bit codes | |||
#0 | 000h 9- | palette | : | ||
colors | : | |||
#255 | 0FFh | #255 | 0FFh | ||
clr | 100h | |||
end | 101h | |||
| 100h | | 100h Clear | ||
Pixel Local | | |||
color Palette string | | |||
BLACK #40 28 | 028h 1st pixel always to output | |||
WHITE #255 FF | String found in table | |||
28 | 28 FF | 102h Always add 1st string to table | ||
FF | Initialize local string | |||
WHITE #255 FF FF | String not found in table | |||
| 0FFh - | | 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 - | | 103h - output code for previous string | ||
FF FF 28 | 104h - add latest string to table | |||
28 | - | 28 | - initialize local string | ||
WHITE #255 28 FF | String found in table | |||
WHITE #255 28 FF FF | String not found in table | |||
| 102h - | | 102h - output code for previous string | ||
28 | 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 - | | 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 - | | 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 - | 107h - output code for last string | ||
101h | 101h End | ||
स्पष्टता के लिए तालिका को ऊपर दी गई लंबाई के बढ़ते तारों के रूप में दिखाया गया है। वह योजना काम कर सकती है लेकिन तालिका अप्रत्याशित मात्रा में मेमोरी का उपभोग करती है। मेमोरी को व्यवहार में सहेजा जा सकता है, यह ध्यान में रखते हुए कि संग्रहीत की जाने वाली प्रत्येक नई स्ट्रिंग में एक वर्ण द्वारा संवर्धित पहले से संग्रहीत स्ट्रिंग होती है। प्रत्येक पते पर केवल दो शब्दों को संग्रहित करना किफायती है: एक उपस्थिता एड्रेस और करैक्टर। | |||
एलजेडडब्ल्यू एल्गोरिथ्म को प्रत्येक पिक्सेल के लिए तालिका की खोज की आवश्यकता होती है। 4096 पतों के माध्यम से एक रैखिक खोज कोडिंग को धीमा कर देगी। व्यवहार में कोड को संख्यात्मक मान के क्रम में संग्रहीत किया जा सकता है; यह प्रत्येक खोज को SAR (क्रमिक सन्निकटन रजिस्टर, जैसा कि कुछ क्रमिक सन्निकटन ADC में उपयोग किया जाता है) द्वारा किया जा सकता है, केवल 12 परिमाण तुलनाओं के साथ। इस दक्षता के लिए कोड और वास्तविक मेमोरी पतों के बीच रूपांतरण के लिए एक अतिरिक्त तालिका की आवश्यकता होती है; अतिरिक्त टेबल अपकीपिंग की आवश्यकता तभी होती है जब एक नया कोड संग्रहीत किया जाता है जो पिक्सेल दर से बहुत कम होता है। | |||
=== छवि डिकोडिंग === | === छवि डिकोडिंग === | ||
डिकोडिंग संग्रहीत बाइट्स को 9-बिट कोड पर मैप करके | डिकोडिंग संग्रहीत बाइट्स को 9-बिट कोड पर मैप करके आरंभ होता है। नीचे दिखाए गए पिक्सेल रंगों को पुनर्प्राप्त करने के लिए इन्हें डीकोड किया गया है। एन्कोडर में उपयोग की जाने वाली तालिका के समान एक तालिका इस नियम द्वारा तार जोड़कर बनाई गई है: | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ क्या आने वाला कोड टेबल में मिला है? | ||
| {{Yes}} || | | {{Yes}} ||इनकमिंग कोड के लिए स्ट्रिंग के पहले बाइट के बाद स्थानीय कोड के लिए एक स्ट्रिंग जोड़ें | ||
|- | |- | ||
| {{No}} || | | {{No}} ||स्ट्रिंग को स्थानीय कोड में जोड़ें और फिर अपनी पहली बाइट कॉपी करें | ||
|} | |} | ||
'''shift''' | |||
9- | '''9-bit ----> Local Table Pixel''' | ||
<u> | <u>'''code code code --> string Palette color Action'''</u> | ||
100h 000h | #0 Initialize root table of 9-bit codes | |||
: | | : | palette | ||
: | | : | colors | ||
0FFh | #255 | 0FFh | #255 | ||
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 | ||
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 | | 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 | ||
=== | |||
उदाहरण में 256 रंगों से छोटे पैलेट के लिए छोटी कोड लंबाई का उपयोग किया जा सकता है। यदि पैलेट केवल 64 रंग का है (इसलिए रंग सूचकांक 6 बिट चौड़ा है), प्रतीक 0 से 63 तक हो सकते हैं, और प्रतीक की चौड़ाई 6 बिट हो सकती है, कोड 7 बिट से | |||
=== एलजेडडब्ल्यू कोड की लंबाई === | |||
उदाहरण में 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) तक। जैसा कि डिकोडर अपनी तालिका बनाता है, यह कोड की लंबाई में इन वृद्धि को ट्रैक करता है और यह आने वाले बाइट्स को तदनुसार अनपैक करने में सक्षम होता है। | ||
=== असम्पीडित जीआईएफ === | === असम्पीडित जीआईएफ === | ||
| Line 355: | Line 371: | ||
|- | |- | ||
|[[File:Quilt design as 46x46 uncompressed GIF.gif|center]] | |[[File:Quilt design as 46x46 uncompressed GIF.gif|center]] | ||
{{small| | {{small|7-बिट प्रतीकों (128 रंग, 8-बिट कोड) के साथ एक 46×46 असम्पीडित GIF।<br/>कोड की व्याख्या के लिए छवि पर क्लिक करें।}} | ||
|} | |} | ||
जीआईएफ एन्कोडिंग प्रक्रिया को एलजेडडब्ल्यू कम्प्रेशन के बिना एक फ़ाइल बनाने के लिए संशोधित किया जा सकता है जो अभी भी जीआईएफ छवि के रूप में देखा जा सकता है। इस तकनीक को मूल रूप से पेटेंट उल्लंघन से बचने के तरीके के रूप में पेश किया गया था। असम्पीडित जीआईएफ ग्राफिक्स प्रोग्रामर के लिए एक उपयोगी मध्यवर्ती प्रारूप भी हो सकता है क्योंकि अलग-अलग पिक्सेल पढ़ने या पेंटिंग के लिए सुलभ होते हैं। एक असम्पीडित जीआईएफ फ़ाइल को एक साधारण जीआईएफ फ़ाइल में एक छवि संपादक के माध्यम से पारित करके परिवर्तित किया जा सकता है। | |||
संशोधित एन्कोडिंग विधि | संशोधित एन्कोडिंग विधि एलजेडडब्ल्यू तालिका के निर्माण पर ध्यान नहीं देती है और केवल रूट पैलेट कोड और 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}} डिकोडर को कोडिंग डिक्शनरी को रीसेट करने के लिए कोड या उससे कम। | यदि प्रतीक चौड़ाई है {{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" | ||
! | !बाइट # (हेक्स) | ||
!हेक्साडेसिमल | |||
!टेक्स्ट या वैल्यू | |||
!अर्थ | |||
|- | |- | ||
| 320 || 14 || 20 || 20 | | 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 || | | 335 || 00 || 0 ||छवि डेटा का अंत | ||
|} | |} | ||
== | == कम्प्रेशन उदाहरण == | ||
ठोस रंग की एक बड़ी छवि का तुच्छ उदाहरण | ठोस रंग की एक बड़ी छवि का तुच्छ उदाहरण जीआईएफ फ़ाइलों में उपयोग की जाने वाली चर-लंबाई एलजेडडब्ल्यू कम्प्रेशन को प्रदर्शित करता है। | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+जीआईएफ फ़ाइल का नमूना कंप्रेशन | ||
|- | |- | ||
! scope="col" colspan=3 | | ! scope="col" colspan=3 | कोड | ||
! scope="col" colspan=2 | | ! 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| | [[File:Newtons cradle animation book 2.gif|thumb|200px|left|जीआईएफ का उपयोग एनीमेशन प्रदर्शित करने के लिए किया जा सकता है, जैसा कि न्यूटन के पालने की इस छवि में है।]] | ||
[[File:Animated GIF cheloVechek.gif|thumb|दो फ़ोटो से बना एक | [[File:Animated GIF cheloVechek.gif|thumb|दो फ़ोटो से बना एक जीआईएफ ऐनिमेशन, जिसमें से एक को दूसरे में बदला जा रहा है]]हालांकि जीआईएफ को एनीमेशन माध्यम के रूप में डिजाइन नहीं किया गया था, एक एनीमेशन अनुक्रम के [[ फिल्म फ्रेम |फिल्म फ्रेम]] को स्टोर करने के लिए प्रारूप का उपयोग करके स्वाभाविक रूप से एक फाइल में कई छवियों को स्टोर करने की इसकी क्षमता का सुझाव दिया गया था। एनिमेशन प्रदर्शित करने की सुविधा के लिए, जीआईएफ89a युक्ति ने ग्राफिक कंट्रोल एक्सटेंशन (जीसीई) जोड़ा, जो फ़ाइल में छवियों (फ्रेम्स) को समय की देरी के साथ चित्रित करने की अनुमति देता है, [[ वीडियो क्लिप |वीडियो क्लिप]] बनाता है। एनीमेशन जीआईएफ में प्रत्येक फ्रेम अपने स्वयं के जीसीई द्वारा पेश किया जाता है जो फ्रेम तैयार होने के बाद प्रतीक्षा करने में देरी को निर्दिष्ट करता है। फ़ाइल की शुरुआत में वैश्विक सूचना डिफ़ॉल्ट रूप से सभी फ़्रेमों पर लागू होती है। डेटा स्ट्रीम-ओरिएंटेड है, इसलिए प्रत्येक जीसीई के प्रारंभ की फ़ाइल ऑफ़सेट पूर्ववर्ती डेटा की लंबाई पर निर्भर करती है। प्रत्येक फ़्रेम के भीतर एलजेडडब्ल्यू-कोडित छवि डेटा को 255 बाइट्स तक के उप-ब्लॉकों में व्यवस्थित किया जाता है; प्रत्येक उप-ब्लॉक का आकार उसके पहले आने वाली बाइट द्वारा घोषित किया जाता है। | ||
डिफ़ॉल्ट रूप से, एक एनीमेशन केवल एक बार फ्रेम के अनुक्रम को प्रदर्शित करता है, अंतिम फ्रेम प्रदर्शित होने पर रुक जाता है। एनीमेशन को लूप में सक्षम करने के लिए, [[ नेटस्केप ]] ने 1990 के दशक में नेटस्केप एप्लिकेशन ब्लॉक (एनएबी) को लागू करने के लिए एप्लिकेशन एक्सटेंशन ब्लॉक (विक्रेताओं को जीआईएफ फ़ाइल में एप्लिकेशन-विशिष्ट | डिफ़ॉल्ट रूप से, एक एनीमेशन केवल एक बार फ्रेम के अनुक्रम को प्रदर्शित करता है, अंतिम फ्रेम प्रदर्शित होने पर रुक जाता है। एनीमेशन को लूप में सक्षम करने के लिए, [[ नेटस्केप ]] ने 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 को पहचानते हैं और उसका समर्थन करते हैं, हालांकि यह | }}</ref> अधिकांश ब्राउज़र अब NAB को पहचानते हैं और उसका समर्थन करते हैं, हालांकि यह जीआईएफ89a विनिर्देश का कड़ाई से हिस्सा नहीं है। | ||
''<!-- Given for the last file version (27 August 2019) -->'' | |||
जीसीई में सेकंड के सौवें हिस्से में प्रत्येक फ्रेम के लिए एनीमेशन विलंब निर्दिष्ट किया गया है। डेटा की कुछ किफायत संभव है जहां एक फ्रेम को डिस्प्ले के पिक्सेल के केवल एक हिस्से को फिर से लिखने की आवश्यकता होती है, क्योंकि इमेज डिस्क्रिप्टर पूरी छवि के बदले में एक छोटे आयत को फिर से स्कैन करने के लिए परिभाषित कर सकता है। ब्राउज़र या अन्य डिस्प्ले जो एनिमेटेड जीआईएफ का समर्थन नहीं करते हैं, आमतौर पर केवल पहला फ्रेम दिखाते हैं। | |||
जीसीई में सेकंड के सौवें हिस्से में प्रत्येक फ्रेम के लिए एनीमेशन विलंब निर्दिष्ट किया गया है। डेटा की कुछ किफायत संभव है जहां एक फ्रेम को डिस्प्ले के पिक्सेल के केवल एक हिस्से को फिर से लिखने की आवश्यकता होती है, क्योंकि इमेज डिस्क्रिप्टर पूरी छवि के | |||
एनिमेटेड जीआईएफ फाइलों का आकार और रंग गुणवत्ता उन्हें बनाने के लिए उपयोग किए जाने वाले एप्लिकेशन के आधार पर महत्वपूर्ण रूप से भिन्न हो सकती है। फ़ाइल आकार को कम करने की रणनीतियों में सभी फ़्रेमों के लिए एक सामान्य वैश्विक रंग तालिका का उपयोग करना | एनिमेटेड जीआईएफ फाइलों का आकार और रंग गुणवत्ता उन्हें बनाने के लिए उपयोग किए जाने वाले एप्लिकेशन के आधार पर महत्वपूर्ण रूप से भिन्न हो सकती है। फ़ाइल आकार को कम करने की रणनीतियों में सभी फ़्रेमों के लिए एक सामान्य वैश्विक रंग तालिका का उपयोग करना सम्मिलित है (प्रत्येक फ़्रेम के लिए एक पूर्ण स्थानीय रंग तालिका के बदले में) और क्रमिक फ़्रेमों में कवर किए गए पिक्सेल की संख्या को कम करना (ताकि केवल पिक्सेल जो एक फ्रेम से दूसरे फ्रेम में बदलते हैं) अगले को बाद वाले फ्रेम में सम्मिलित किया गया है)। अधिक उन्नत तकनीकों में उपस्थिता एलजेडडब्ल्यू डिक्शनरी से बेहतर मिलान करने के लिए रंग अनुक्रमों को संशोधित करना सम्मिलित है, [[ हानिपूर्ण संपीड़न | हानिपूर्ण कम्प्रेशन]] का एक रूप। केवल स्वतंत्र फ्रेम छवियों की एक श्रृंखला को एक समग्र एनीमेशन में पैक करने से बड़े फ़ाइल आकार प्राप्त होते हैं। उपस्थिता जीआईएफ दिए गए फ़ाइल आकार को कम करने के लिए उपकरण उपलब्ध हैं। | ||
== [[ मेटाडाटा ]] == | == [[ मेटाडाटा |मेटाडाटा]] == | ||
मेटाडेटा को जीआईएफ फाइलों में एक टिप्पणी ब्लॉक, एक सादा पाठ ब्लॉक या एक एप्लिकेशन-विशिष्ट एप्लिकेशन एक्सटेंशन ब्लॉक के रूप में संग्रहीत किया जा सकता है। कई ग्राफिक्स संपादक छवि उत्पन्न करने के लिए उपयोग किए गए डेटा को | मेटाडेटा को जीआईएफ फाइलों में एक टिप्पणी ब्लॉक, एक सादा पाठ ब्लॉक या एक एप्लिकेशन-विशिष्ट एप्लिकेशन एक्सटेंशन ब्लॉक के रूप में संग्रहीत किया जा सकता है। कई ग्राफिक्स संपादक छवि उत्पन्न करने के लिए उपयोग किए गए डेटा को सम्मिलित करने के लिए अनौपचारिक एप्लिकेशन एक्सटेंशन ब्लॉक का उपयोग करते हैं, ताकि इसे आगे के संपादन के लिए पुनर्प्राप्त किया जा सके। | ||
इन सभी विधियों में तकनीकी रूप से मेटाडेटा को उप-ब्लॉकों में तोड़ने की आवश्यकता होती है ताकि एप्लिकेशन मेटाडेटा ब्लॉक को उसकी आंतरिक संरचना को जाने बिना नेविगेट कर सकें। | इन सभी विधियों में तकनीकी रूप से मेटाडेटा को उप-ब्लॉकों में तोड़ने की आवश्यकता होती है ताकि एप्लिकेशन मेटाडेटा ब्लॉक को उसकी आंतरिक संरचना को जाने बिना नेविगेट कर सकें। | ||
[[ एक्स्टेंसिबल मेटाडेटा प्लेटफ़ॉर्म ]] (XMP) मेटाडेटा मानक ने | [[ एक्स्टेंसिबल मेटाडेटा प्लेटफ़ॉर्म ]] (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 बाइट में रूट करता है जो उप-ब्लॉक श्रृंखला को समाप्त करता है। | ||
== यूनिसिस और | == यूनिसिस और एलजेडडब्ल्यू पेटेंट प्रवर्तन ==<!-- This section is linked from PNG --> | ||
1977 और 1978 में, [[ जैकब ज़िव ]] और [[ अब्राहम लेम्पेल ]] ने दोषरहित डेटा- | 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 में | वेल्च ने जून 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 ]] पत्रिका में प्रकाशित हुआ था, जिसमें पहली बार | जून 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> | ||
एलजेडडब्ल्यू की लोकप्रियता ने कम्पूसर्वे को 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> | |||
| Line 647: | Line 585: | ||
=== पीएनजी === | === पीएनजी === | ||
एलजेडडब्ल्यू कम्प्रेशन तकनीक पर यूनिसिस के पेटेंट के उल्लंघन से बचने के लिए पोर्टेबल नेटवर्क ग्राफिक्स (पीएनजी) को जीआईएफ के प्रतिस्थापन के रूप में डिज़ाइन किया गया था।<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> एनिमेशन एकमात्र महत्वपूर्ण अपवाद है। पीएनजी ऐसे उदाहरणों में जीआईएफ से अधिक उपयुक्त है जहां ट्रू-कलर इमेजिंग और [[ अल्फा पारदर्शिता |अल्फा पारदर्शिता]] की आवश्यकता होती है। | |||
हालाँकि | हालाँकि पीएनजी प्रारूप के लिए समर्थन धीरे-धीरे आया, नए [[ वेब ब्राउज़र ]]पीएनजी का समर्थन करते हैं। [[ Internet Explorer |इंटरनेट एक्स्प्लोरर]] के पुराने संस्करण पीएनजी की सभी विशेषताओं का समर्थन नहीं करते हैं। संस्करण 6 और पहले के संस्करण माइक्रोसॉफ्ट-विशिष्ट HTML एक्सटेंशन का उपयोग किए बिना [[ अल्फा चैनल ]] पारदर्शिता का समर्थन नहीं करते हैं। | ||
=== एनिमेशन प्रारूप === | === एनिमेशन प्रारूप === | ||
वीडियो वेब पर सामान्य उपयोग के माध्यम से | वीडियो वेब पर सामान्य उपयोग के माध्यम से जीआईएफ द्वारा पेश की जाने वाली कई समस्याओं का समाधान करते हैं। इनमें अत्यधिक छोटे फ़ाइल आकार, 8-बिट रंग प्रतिबंध को पार करने की क्षमता, और [[ वीडियो कोडेक ]] के माध्यम से बेहतर फ्रेम-हैंडलिंग और कम्प्रेशन सम्मिलित हैं। वेब ब्राउज़र में जीआईएफ प्रारूप के लिए वस्तुतः सार्वभौमिक समर्थन और [[ HTML ]] मानक में वीडियो के लिए आधिकारिक समर्थन की कमी के कारण जीआईएफ को वेब पर लघु वीडियो जैसी फ़ाइलों को प्रदर्शित करने के उद्देश्य से प्रमुखता मिली। | ||
* [[ एकाधिक छवि नेटवर्क ग्राफिक्स ]] (मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स) को मूल रूप से एनिमेशन के लिए | * [[ एकाधिक छवि नेटवर्क ग्राफिक्स ]] (मल्टीपल-इमेज नेटवर्क ग्राफ़िक्स) को मूल रूप से एनिमेशन के लिए पीएनजी-आधारित समाधान के रूप में विकसित किया गया था। एमएनजी 2001 में संस्करण 1.0 तक पहुंच गया, लेकिन कुछ अनुप्रयोग इसका समर्थन करते हैं। | ||
* [[ एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स ]] (एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स) [[ mozilla ]] द्वारा 2006 में प्रस्तावित किया गया था। | * [[ एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स ]] (एनिमेटेड पोर्टेबल नेटवर्क ग्राफिक्स) [[ 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> फिर भी, | : कई अलग-अलग दृष्टिकोणों का उपयोग करते हुए पीएनजी पर आधारित एक सरल एनिमेटेड ग्राफिक्स प्रारूप के लिए बाद के कई प्रस्ताव आए हैं।<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 ]] का उपयोग करके अलग-अलग फ़्रेमों की सेवा करना सम्मिलित है, या | ||
* [[ जावास्क्रिप्ट ]] या [[ सिंक्रनाइज़ मल्टीमीडिया एकीकरण भाषा ]] (सिंक्रोनाइज़्ड मल्टीमीडिया इंटीग्रेशन लैंग्वेज) का उपयोग करके [[ स्केलेबल वेक्टर ग्राफिक्स ]] (स्केलेबल वेक्टर ग्राफिक्स) इमेज को एनिमेट करना। | * [[ जावास्क्रिप्ट ]] या [[ सिंक्रनाइज़ मल्टीमीडिया एकीकरण भाषा ]] (सिंक्रोनाइज़्ड मल्टीमीडिया इंटीग्रेशन लैंग्वेज) का उपयोग करके [[ स्केलेबल वेक्टर ग्राफिक्स ]] (स्केलेबल वेक्टर ग्राफिक्स) इमेज को एनिमेट करना। | ||
* HTML5 वीडियो के व्यापक समर्थन की शुरुआत के साथ (<code><video></code>) अधिकांश वेब ब्राउज़रों में टैग, कुछ वेबसाइटें JavaScript फ़ंक्शंस द्वारा उत्पन्न वीडियो टैग के लूप किए गए संस्करण का उपयोग करती हैं। यह एक जीआईएफ का रूप देता है, लेकिन संपीड़ित वीडियो के आकार और गति के फायदे के साथ। | * HTML5 वीडियो के व्यापक समर्थन की शुरुआत के साथ (<code><video></code>) अधिकांश वेब ब्राउज़रों में टैग, कुछ वेबसाइटें JavaScript फ़ंक्शंस द्वारा उत्पन्न वीडियो टैग के लूप किए गए संस्करण का उपयोग करती हैं। यह एक जीआईएफ का रूप देता है, लेकिन संपीड़ित वीडियो के आकार और गति के फायदे के साथ। | ||
: उल्लेखनीय उदाहरण [[ Gfycat ]] और [[ Imgur ]] और उनके | : उल्लेखनीय उदाहरण [[ 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) हानिपूर्ण | * उच्च दक्षता छवि फ़ाइल प्रारूप (उच्च दक्षता छवि फ़ाइल प्रारूप) एक छवि फ़ाइल प्रारूप है, जिसे 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 में, इम्गुर ने साइट पर अपलोड की गई किसी भी जीआईएफ फाइल को वीडियो में परिवर्तित करना | अप्रैल 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 वीडियो में फिर से एन्कोड करना | जनवरी 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 ]] (छद्म- | * [[ plotutil ]] (छद्म-जीआईएफ का समर्थन करता है, जो एलजेडडब्ल्यू के बदले में रन-लेंथ एन्कोडिंग का उपयोग करता है) | ||
* [[ माइक्रोसॉफ्ट जीआईएफ एनिमेटर ]], सरल एनिमेटेड जीआईएफ बनाने के लिए ऐतिहासिक कार्यक्रम | * [[ माइक्रोसॉफ्ट जीआईएफ एनिमेटर ]], सरल एनिमेटेड जीआईएफ बनाने के लिए ऐतिहासिक कार्यक्रम | ||
* [[ सॉफ्टवेयर पेटेंट ]] | * [[ सॉफ्टवेयर पेटेंट ]] | ||
| Line 700: | Line 636: | ||
==बाहरी कड़ियाँ== | ==बाहरी कड़ियाँ== | ||
* [http://giflib.sourceforge.net/ The जीआईएफLIB project] | |||
* [http://giflib.sourceforge.net/ The | * [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- | * [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 | * [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 | * [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 | * [https://gifcities.org जीआईएफCities] (The GeoCities Animated जीआईएफ Search Engine) | ||
* [https://gifcities.org | |||
[[Category: | [[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 An animated GIF of a rotating globe | |
| Filename extension | .gif |
|---|---|
| Internet media type | image/gif |
| Type code | GIFf |
| Uniform Type Identifier (UTI) | com.compuserve.gif |
| Magic number | GIF87a/GIF89a |
| Developed by | CompuServe |
| Initial release | 15 June 1987[1] |
| Latest release | 89a 1989[2] |
| Type of format | lossless bitmap image format |
| Website | www |
ग्राफ़िक्स इंटरचेंज फ़ॉर्मेट (जीआईएफ) (जीआईएफ; /ɡɪf/ GHIF या /dʒɪ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]
उच्चारण
जीआईएफ के पहले अक्षर का उच्चारण 1990 के दशक से विवादित रहा है। अंग्रेजी में सबसे आम उच्चारण हैं /dʒɪf/ (About this soundlisten) (जिन के रूप में वायस्ड पोस्टएल्वियोलर एफ्रिकेट के साथ) और /ɡɪf/ (About this soundlisten) (उपहार के रूप में वॉइस्ड वेलर प्लोसिव के साथ), अक्षर G द्वारा दर्शाए गए स्वनिम में भिन्नता है। प्रारूप के रचनाकारों ने परिवर्णी शब्द जीआईएफ का उच्चारण किया /dʒɪf/वॉइस्ड पोस्टएल्वियोलर एफ़्रीकेट के साथ, विल्हाइट ने कहा कि वह उच्चारण के लिए अमेरिकी मूंगफली का मक्खन ब्रांड जेआईएफ (मूंगफली का मक्खन) को जानबूझकर प्रतिध्वनित करने का इरादा रखता है, और कम्पूसर्वे के कर्मचारी प्रायः जिफ़ के टेलीविजन विज्ञापनों का एक स्पूफ चुनिंदा डेवलपर्स जीआईएफ चुनते हैं।[11] हालाँकि, इस शब्द का व्यापक रूप से उच्चारण किया जाता है /ɡɪf/, वॉयस वेलर स्टॉप के साथ,[12] और चुनावों ने सामान्यतः दिखाया है कि यह कठिन जी उच्चारण अधिक प्रचलित है।[13][14]
Dictionary.com[15] दोनों उच्चारणों को उद्धृत करता है, संकेत करता है /dʒɪf/ प्राथमिक उच्चारण के रूप में, जबकि कैम्ब्रिज डिक्शनरी ऑफ अमेरिकन इंग्लिश[16] केवल हार्ड-जी उच्चारण प्रदान करता है। मेरियम-वेबस्टर का कॉलेजिएट डिक्शनरी[17] और ऑक्सफोर्ड डिक्शनरी दोनों उच्चारणों का हवाला देते हैं, लेकिन हार्ड G को पहले रखें: /ɡɪf, dʒɪf/.[18][19][20][21] द न्यू ऑक्सफोर्ड अमेरिकन डिक्शनरी ने ही दिया /dʒɪf/ इसके दूसरे संस्करण में[22] लेकिन इसे अपडेट किया /dʒɪ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 दृश्यमान रंगों के साथ-साथ एक पारदर्शी रंग का अपना पैलेट सम्मिलित हो सकता है। ऊपर की परतों के पारदर्शी भागों के माध्यम से दिखाई देने वाली प्रत्येक परत के दृश्य भाग के साथ छवि ब्लॉकों को लेयर करके एक पूर्ण छवि बनाई जा सकती है।
जीआईएफ के रूप में पूर्ण-रंग वाली छवि प्रस्तुत करने के लिए, मूल छवि को छोटे क्षेत्रों में विभाजित किया जाना चाहिए जिसमें 255 या 256 से अधिक विभिन्न रंग न हों। इन क्षेत्रों में से प्रत्येक को तब अपने स्वयं के स्थानीय पैलेट के साथ एक अलग छवि ब्लॉक के रूप में संग्रहीत किया जाता है और जब छवि ब्लॉक एक साथ प्रदर्शित होते हैं (या तो टाइलिंग द्वारा या आंशिक रूप से पारदर्शी छवि ब्लॉकों को परत करके), पूर्ण, पूर्ण-रंग वाली छवि दिखाई देती है। उदाहरण के लिए, किसी छवि को 16 गुणा 16 पिक्सेल (कुल 256 पिक्सेल) की टाइलों में तोड़ना सुनिश्चित करता है कि किसी भी टाइल में 256 रंगों की स्थानीय पैलेट सीमा से अधिक नहीं है, हालाँकि बड़ी टाइलों का उपयोग किया जा सकता है और समान रंगों का विलय हो जाता है जिसके परिणामस्वरूप रंग में कुछ कमी आती है सूचना है।[32]
चूँकि प्रत्येक छवि ब्लॉक की अपनी स्थानीय रंग तालिका हो सकती है, एक जीआईएफ फ़ाइल जिसमें कई छवि ब्लॉक होते हैं, बहुत बड़ी हो सकती है, जो पूर्ण-रंग वाले जीआईएफ की उपयोगिता को सीमित करती है।[33]इसके अतिरिक्त, सभी जीआईएफ रेंडरिंग प्रोग्राम टाइल वाली या स्तरित छवियों को सही ढंग से संभाल नहीं पाते हैं। कई रेंडरिंग प्रोग्राम टाइल्स या लेयर्स को एनीमेशन फ्रेम के रूप में समझते हैं और उन्हें एनीमेशन के रूप में अनुक्रम में प्रदर्शित करते हैं[32] अधिकांश वेब ब्राउज़र स्वचालित रूप से 0.1 सेकंड या उससे अधिक के विलंब समय के साथ फ़्रेम प्रदर्शित करते हैं।[34][35]
उदाहरण जीआईएफ फ़ाइल
| माइक्रोसॉफ्ट पेंट एक छोटी काली-और-सफेद छवि को निम्न जीआईएफ फ़ाइल के रूप में सहेजता है (सचित्र बढ़े हुए)।
पेंट जीआईएफ का इष्टतम उपयोग नहीं करता है; अनावश्यक रूप से बड़ी रंग तालिका (उपयोग किए गए 2 के बदले में पूर्ण 256 रंगों को संग्रहीत करना) और प्रतीक चौड़ाई के कारण, यह जीआईएफ फ़ाइल 15-पिक्सेल छवि का एक कुशल प्रतिनिधित्व नहीं है। हालांकि ग्राफिक कंट्रोल एक्सटेंशन ब्लॉक कलर इंडेक्स 16 (हेक्साडेसिमल 10) को पारदर्शी होने की घोषणा करता है, छवि में उस इंडेक्स का उपयोग नहीं किया जाता है। छवि डेटा में दिखाई देने वाली एकमात्र रंगीन अनुक्रमणिका दशमलव 40 और 255 हैं, जिन्हें वैश्विक रंग तालिका क्रमशः काले और सफेद में मैप करती है। |
नमूना चित्र (बड़ा), वास्तविक आकार 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 |
|
वैश्विक रंग तालिका, रंग #0: #000000, काला | Error creating thumbnail: बाइट्स डीh 30 सीh उदाहरण में 256 रंगों के पैलेट को परिभाषित करें। |
10 | 80 00 00 |
|
वैश्विक रंग तालिका, रंग #1: पारदर्शी बिट, छवि में उपयोग नहीं किया गया | ||||||||||||
| ... | ... | ... | वैश्विक रंग तालिका 30A तक फैली हुई है | |||||||||||||||||
| 30ए | एफएफ एफएफ एफएफ |
|
वैश्विक रंग तालिका, रंग #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-बिट कोड और बाइट्स के बीच प्रतिवर्ती मानचित्रण के ऊपर नमूना छवि के लिए नीचे दिखाया गया है।
| 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 | ValueNi + 256 | Length(bits) | This codeNi | AccumulatedNi(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।
प्रत्येक पंक्ति के भीतर पिक्सेल इंटरलेस्ड नहीं होते हैं, लेकिन बाएं से दाएं लगातार प्रस्तुत किए जाते हैं। गैर-इंटरलेस्ड छवियों की तरह, एक पंक्ति के डेटा और अगली पंक्ति के डेटा के बीच कोई विराम नहीं होता है। इंडिकेटर कि एक इमेज इंटरलेस्ड है, संबंधित इमेज डिस्क्रिप्टर ब्लॉक में थोड़ा सा सेट है।
एनिमेटेड जीआईएफ
हालांकि जीआईएफ को एनीमेशन माध्यम के रूप में डिजाइन नहीं किया गया था, एक एनीमेशन अनुक्रम के फिल्म फ्रेम को स्टोर करने के लिए प्रारूप का उपयोग करके स्वाभाविक रूप से एक फाइल में कई छवियों को स्टोर करने की इसकी क्षमता का सुझाव दिया गया था। एनिमेशन प्रदर्शित करने की सुविधा के लिए, जीआईएफ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]
यह भी देखें
- एवीआईएफ
- सिनेमाग्राफ , जीआईएफ में प्रायः आंशिक रूप से एनिमेटेड तस्वीर
- वेब बीकन , सामग्री पहुंच की जांच करने के लिए उपयोग की जाने वाली तकनीक
- ग्राफिक्स फ़ाइल स्वरूपों की तुलना
- जीआईएफ कला , जीआईएफ से जुड़ी डिजिटल कला का एक रूप
- जीआईएफBuilder , प्रारंभिक एनिमेटेड जीआईएफ निर्माण कार्यक्रम
- plotutil (छद्म-जीआईएफ का समर्थन करता है, जो एलजेडडब्ल्यू के बदले में रन-लेंथ एन्कोडिंग का उपयोग करता है)
- माइक्रोसॉफ्ट जीआईएफ एनिमेटर , सरल एनिमेटेड जीआईएफ बनाने के लिए ऐतिहासिक कार्यक्रम
- सॉफ्टवेयर पेटेंट
संदर्भ
- ↑ 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.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.
- ↑ "Online Art". Compute!'s Apple Applications. December 1987. p. 10. Retrieved 14 September 2016.
- ↑ Holdener III, Anthony (2008). Ajax: The Definitive Guide: Interactive Applications for the Web. O'Reilly Media. ISBN 978-0596528386.
- ↑ Furht, Borko (2008). Encyclopedia of Multimedia. Springer. ISBN 978-0387747248.
- ↑ 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.
- ↑ 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.
- ↑ "Introducing GIF Stickers". Instagram (in English). 23 January 2018. Archived from the original on 12 December 2019. Retrieved 19 September 2019.
- ↑ "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.
- ↑ 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.
- ↑ Olsen, Steve. "The GIF Pronunciation Page". Archived from the original on 25 February 2009. Retrieved 6 March 2009.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ "GIF". The American Heritage Abbreviations Dictionary, Third Edition. Houghton Mifflin Company. 2005. Archived from the original on 3 September 2011. Retrieved 15 April 2007.
- ↑ "GIF". The Cambridge Dictionary of American English. Cambridge University Press. Archived from the original on 27 February 2014. Retrieved 19 February 2014.
- ↑ "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.
- ↑ "जीआईएफ". Oxford Dictionaries Online. Oxford University Press. Archived from the original on 12 October 2014. Retrieved 7 October 2014.
- ↑ "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.
- ↑ "GIF | Definition of GIF by Oxford Dictionary". Lexico (in English). Archived from the original on 13 February 2021. Retrieved 6 February 2021.
- ↑ Stevenson, Angus, ed. (2010). Oxford Dictionary of English (3rd ed.). Oxford University Press. ISBN 9780199571123. OCLC 729551189.
- ↑ The New Oxford American Dictionary (2nd ed.). Oxford University Press. 2005. p. 711.
- ↑ The New Oxford American Dictionary (3rd ed.). 2012. (part of the Macintosh built-in dictionaries).
- ↑ 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.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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.
- ↑ 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.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.0 33.1 Philip Howard. "True-Color GIF Example". Archived from the original on 22 February 2015. Retrieved 23 March 2012.
- ↑ "Nullsleep - Jeremiah Johnson - Animated GIF Minimum Frame Delay Browser Compatibility Study". Archived from the original on 10 October 2014. Retrieved 26 May 2015.
- ↑ "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.
- ↑ Royal Frazier. "All About GIF89a". Archived from the original on 18 April 1999. Retrieved 7 January 2013.
- ↑ Scott Walter (1996). Web Scripting Secret Weapons. Que Publishing. ISBN 0-7897-0947-3.
- ↑ "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.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.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.
- ↑ US 4558302, Welch, Terry A., published 1985-12-10, assigned to Sperry Corp.
- ↑ JP patent S5719857A, Kanatsu, Jiyun, "Data compression storage device", published 1982-02-02, assigned to Nippon Electric Corp.
- ↑ JP patent S57101937A, Kanatsu, Jiyun, "Data storage device", published 1986-20-24, assigned to Nippon Electric Corp.
- ↑ 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
- ↑ U.S. Patent 4,558,302
- ↑ 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.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
- ↑ "लिबुंगिफ". Archived from the original on 13 April 2015. Retrieved 26 May 2015.
- ↑ 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.
- ↑ "LZW Software and Patent Information". Archived from the original on 8 June 2009. Retrieved 31 January 2007. – clarification of 2 September 1999
- ↑ Unisys Not Suing (most) Webmasters for Using GIFs Archived 10 May 2017 at the Wayback Machine – Slashdot investigation into the controversy
- ↑ "Burn All GIFs Day". Archived from the original on 13 October 1999.
- ↑ Burn All GIFs Archived 3 February 2007 at the Wayback Machine – A project of the League for Programming Freedom (latest version)
- ↑ 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.
- ↑ "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.
- ↑ "पीएनजी बनाम जीआईएफ संपीड़न". 31 March 2007. Archived from the original on 15 July 2009. Retrieved 8 June 2009.
- ↑ "Can I use... Support tables for HTML5, CSS3, etc". caniuse.com. Archived from the original on 19 February 2018. Retrieved 10 April 2020.
- ↑ "VOTE FAILED: APNG 20070405a". SourceForge mailing list. 20 April 2007. Archived from the original on 13 February 2013. Retrieved 14 July 2013.
- ↑ "Discussion for a simple "animated" PNG format". Archived from the original on 26 February 2009. Retrieved 12 July 2011.
- ↑ "APNG Specification". Archived from the original on 5 July 2010. Retrieved 26 May 2015.
- ↑ "Mozilla Labs » Blog Archive » Better animations in Firefox 3". Archived from the original on 7 March 2016. Retrieved 3 February 2016.
- ↑ "195280 – Removal of MNG/JNG support". Archived from the original on 25 February 2021. Retrieved 26 May 2015.
- ↑ "18574 – (mng) restore support for MNG animation format and JNG image format". Archived from the original on 17 March 2021. Retrieved 26 May 2015.
- ↑ "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.
- ↑ "Introducing GIFV - Imgur Blog". imgur.com. 9 October 2014. Archived from the original on 14 December 2014. Retrieved 14 December 2014.
- ↑ 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.
- ↑ "HEIF Comparison - High Efficiency Image File Format". Nokia Technologies. Archived from the original on 25 July 2019. Retrieved 5 August 2019.
- ↑ "#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.
- ↑ 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.
- ↑ "WebM support on 4chan". 4chan Blog. Archived from the original on 6 April 2014. Retrieved 4 February 2015.
- ↑ "Introducing GIFV". Imgur. 9 August 2014. Archived from the original on 5 May 2020. Retrieved 21 July 2016.
- ↑ 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.
- ↑ "GIF Revolution". Official Telegram Blog. 4 January 2016. Archived from the original on 10 January 2016. Retrieved 4 January 2016.
बाहरी कड़ियाँ
- The जीआईएफLIB project
- spec-जीआईएफ89a.txt जीआईएफ 89a specification on w3.org
- जीआईएफ 89a specification reformatted into HTML
- एलजेडडब्ल्यू and जीआईएफ explained
- Animated जीआईएफs: a six-minute documentary produced by Off Book (web series)
- जीआईएफCities (The GeoCities Animated जीआईएफ Search Engine)

