लिबजपेग

एलआईबी जेपीईजी (lib जेपीईजी) जेपीईजी इमेज डेटा फॉर्मेट को संभालने के लिए फंक्शन (कंप्यूटर विज्ञान) के साथ एक मुक्त  लाइब्रेरी (कंप्यूटर विज्ञान) है। यह जेपीईजी डेटा को संभालने के लिए विभिन्न उपयोगिताओं के साथ जेपीईजी कोडेक (एन्कोडिंग और डिकोडिंग) लागू करता है।

यह सी (प्रोग्रामिंग लैंग्वेज) में लिखा गया है और कस्टम अनुमेय मुफ्त सॉफ्टवेयर लाइसेंस (बीएसडी लाइसेंस-लाइक) फ्री सॉफ्टवेयर लाइसेंस के अनुसार इसके सोर्स कोड के साथ फ्री सॉफ्टवेयर के रूप में वितरित किया गया है, जो एट्रिब्यूशन (कॉपीराइट) की मांग करता है।

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

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

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

जेपीईजीट्रान
आदेश-पंक्ति इंटरफ़ेस या कमांड-लाइन प्रोग्राम जेपीईजीट्रान क्रमशः वास्तविक इमेज डेटा के परिवर्तन के लिए और जेपीईजी फ़ाइलों में सहायक डेटा को हटाने के लिए असतत कोसाइन रूपांतरण गुणांक के प्रतिनिधित्व को सुधारने और पुन: कोड करने के लिए कई सुविधाएँ प्रदान करता है। इस प्रकार गुणांकों के प्रतिनिधित्व के संबंध में परिवर्तनों में सम्मिलित हैं:
 * संपीड़न बढ़ाने के लिए जेपीईजी फ़ाइल की हफ़मैन कोडिंग  परत का अनुकूलन हैं।
 * प्रगतिशील और अनुक्रमिक जेपीईजी प्रारूपों के बीच रूपांतरण करता हैं।
 * एन्ट्रापी कोडिंग परत में हफमैन और अंकगणितीय कोडिंग के बीच रूपांतरण करता हैं। ये परिवर्तन प्रत्येक पूरी तरह दोषरहित और प्रतिवर्ती हैं। इमेज डेटा पर परिवर्तनों में सम्मिलित हैं:
 * कुछ इमेज कार्यक्रमों द्वारा डाले गए गैर-मानक एप्लिकेशन-विशिष्ट डेटा को समाप्त करें,
 * किसी फ़ाइल में कुछ परिवर्तन करें, जैसे:
 * रंग चैनलों को हटाना (ग्रेस्केल में रूपांतरण),
 * 90 डिग्री के चरणों में घूर्णन और फ़्लिप की गई इमेज पर निर्भर करता हैं,
 * इमेज ब्लॉक बॉर्डर पर इमेज क्रॉपिंग या जॉइनिंग (प्रत्येक 8×8 या 16×16 पिक्सल) पर निर्भर करता हैं,
 * रीस्केलिंग। ये केवल रखे गए इमेज डेटा के संबंध में दोषरहित और प्रतिवर्ती हैं। इमेज डेटा (पीढ़ी का नुकसान) के बार-बार हानिपूर्ण परिमाणीकरण के साथ रीकोडिंग नहीं होती है।

एक संबद्ध विंडोज एप्लिकेशन है, जेपीईजीcrop, जो जेपीईजीट्रैन को एक यूजर इंटरफेस प्रदान करता है। इस प्रकार लिनक्स जैसी यूनिक्स जैसी प्रणालियों के लिए समान कार्यक्षमता के साथ मुफ्त क्राॅप जीयूआई है।

इस प्रकार दोषरहित एप्लिकेशन सूची पर आईजेजी कोड के आधार पर जेपीईजी दोषरहित रूपांतरण कार्यों का समर्थन करने वाले और प्रोग्राम दिए गए हैं।

इतिहास
इंडिपेंडेंट जेपीईजी ग्रुप (आईजेजी) का जेपीईजी कार्यान्वयन पहली बार 7 अक्टूबर 1991 को सार्वजनिक रूप से जारी किया गया था और उस समय से इसे अधिक विकसित किया गया है।

इस विकास प्रारंभ में मुख्य रूप से टॉम लेन (कंप्यूटर वैज्ञानिक) द्वारा किया गया था।

आईजेजी का ओपेन स्रोत सॉफ्टवेयर या ओपन-सोर्स कार्यान्वयन प्रमुख ओपन-सोर्स पैकेजों में से एक था और इस प्रकार जेपीईजी मानक की सफलता के लिए महत्वपूर्ण था। कई कंपनियों ने इसे इमेज संपादकों और वेब ब्राउज़र जैसे विभिन्न उत्पादों में सम्मिलित किया जाता हैं।

इस प्रकार संस्करण 5 के लिए, जो 24 सितंबर, 1994 को जारी किया गया था, पूरे कोड बेस को फिर से लिखा गया था। इसने एम्बेडेड टेक्स्ट टिप्पणियों को संभालने के लिए यूटिलिटी प्रोग्राम आरडी जेपीजी काॅम और डब्ल्यूआर जेपीजी काॅम प्रस्तुत किया था।

2 अगस्त 1995 से संस्करण 6 प्रगतिशील जेपीईजी के समर्थन के साथ आया और पहली बार उपयोगिता कार्यक्रम जेपीईजीट्रैन के साथ आता हैं। इस प्रकार यह उपयोगिता इमेज को घुमाने और फ़्लिप करने और संस्करण 6b में ग्रेस्केल कमी के लिए सुविधाओं के साथ विस्तारित की गई थी।

एलआईबी जेपीईजी-टर्बो और संस्करण
27 मार्च 1998 के एलआईबी जेपीईजी के संस्करण 6बी से, मियासाका मसरू ने एलआईबी जेपीईजी/एसआईएमडी नाम की एक शाखा को फोर्क किया, जिसमें x86 एसआईएमडी अनुकूलन सम्मिलित थे। इसे 2009 में टाइगर वीएनसी और वर्चुअल जीएल प्रोजेक्ट्स से पर्याप्त योगदान मिलता हैं। उस आधार पर 2010 में एलआईबी जेपीईजी-टर्बो प्रोजेक्ट बनाया गया था।

4 मार्च 2014 को, फाइलसाइज-ऑप्टिमाइज़िंग फोर्क एमओजेड जेपीईजी का पहला संस्करण प्रकाशित किया गया था। इस प्रकार इस संस्करण के लिए मौजिला रिसर्च के जोश आस ने x264 के मुख्य डेवलपर लोरेन मेरिट से पर्ल स्क्रिप्ट जेपीईजी क्रश पर फिर से काम किया और इसे एलआईबी जेपीईजी-टर्बो के कोड बेस में एकीकृत किया था।

10 जुलाई 2014 को, मोज़िला ने संस्करण 2.0 जारी किया, जिसमें मुख्य रूप से ट्रेलिस क्वांटिज़ेशन जोड़ा गया और अब बेसलाइन जेपीईजी के आकार को भी कम करने में सक्षम है। इस प्रकार फेसबुक, इंक. ने दान किया $60,000 dollars$ अगले संस्करण के विकास के लिए, और एमओजेड जेपीईजी के सुधार के लिए CloudFlare ने एक डेवलपर को नियुक्त किया था।

इस प्रकार 2019 में, एलआईबी जेपीईजी-टर्बो जेपीईजी प्रारूप के लिए आईएसओ और आईटीयू समर्थित संदर्भ कार्यान्वयन बन गया।

आईजेजी नेतृत्व में परिवर्तन
11 वर्षों और नेतृत्व में परिवर्तन के बाद, गुइडो वोलबेडिंग के अनुसार आईजेजी ने एलआईबी जेपीईजी (7 से 9) के नए संस्करण जारी किए, जिनमें से प्रत्येक ने पिछले संस्करणों के साथ ABI संगतता को तोड़ दिया। 6x श्रृंखला के बाद संभावना में किए गए परिवर्तन वितरित नहीं किए गए थे। इस प्रकार संस्करण 7 में, अंकगणितीय कोडिंग के लिए समर्थन प्रस्तुत किया गया था, जिसे पहले सॉफ्टवेयर पेटेंट की स्थिति के साथ-साथ जेपीईजीट्रैन में क्रॉप फीचर के कारण  कर दिया गया था।

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

कांटे
जाने-माने कांटे हैं एलआईबी जेपीईजी-टर्बो, जो निष्पादन की गति के लिए अनुकूलन करता है, और एमओजेड जेपीईजी, जो छोटे फ़ाइल आकारों के लिए अनुकूलन करता है।

मानकीकरण के लिए अंतर्राष्ट्रीय संगठन से आईएसओ एलआईबी जेपीईजी भी है, इसका उद्देश्य जेपीईजी, जेपीईजी एक्सटी और जेपीईजी-एलएस मानकों का पूर्ण कार्यान्वयन करना है।

एलआईबी जेपीईजी-टर्बो
एलआईबी जेपीईजी-टर्बो एलआईबी जेपीईजी का एक फोर्क (सॉफ्टवेयर डेवलपमेंट) है जो इस प्रकार बेसलाइन जेपीईजी एन्कोडिंग और डिकोडिंग को तेज करने के लिए एसआईएमडी निर्देश समुच्चय  का उपयोग करता है। लोकप्रिय लाइनेक्स वितरण (फेडोरा (ऑपरेटिंग सिस्टम), डेबियन, मेजिआ, ओपेन एसयूएसई, ...), मौजिला, और गूगल क्रोम सहित कई प्रोजेक्ट अब एलआईबी जेपीईजी के अतिरिक्त एलआईबी जेपीईजी-टर्बो का उपयोग कर रहे हैं।  प्रदर्शन के अतिरिक्त, कुछ परियोजनाओं ने एलआईबी जेपीईजी-टर्बो का उपयोग करना चुना है क्योंकि यह उन्हें पुराने एलआईबी जेपीईजी v6b रिलीज के साथ पिछड़े अनुप्रयोग बाइनरी इंटरफ़ेस संगतता को बनाए रखने की अनुमति देता है। इस प्रकार एलआईबी जेपीईजी v7, v8 और v9 ने पूर्व रिलीज के साथ एबीआई संगतता तोड़ दी थी।

एलआईबी जेपीईजी-टर्बो एलआईबी जेपीईजी v7 में देखी गई मानक-अनुरूप अंकगणितीय कोडिंग और दोषरहित क्रॉप सुविधाओं को लागू करता है। इसे एलआईबी जेपीईजी v7 या v8 ABI के साथ संगत होने के लिए भी कॉन्फ़िगर किया जा सकता है, किन्तु यह डीसीटी स्केलिंग और स्वामित्व वाले SmartScale को कार्यान्वित करता है, जो डीसीटी स्केलिंग पर निर्मित होता है। एलआईबी जेपीईजी-टर्बो SmartScale का समर्थन नहीं करने का विकल्प चुनता है, क्योंकि यह एक आईटीयू-T मानक नहीं है और क्योंकि उनका अपना शोध इसे (और डीसीटी स्केलिंग) अप्रभावी पाता है। विस्तार से, चूंकि एलआईबी जेपीईजी v9 में एकमात्र प्रमुख नई सुविधा स्मार्टस्केल प्रारूप के लिए विशिष्ट है, एलआईबी जेपीईजी-टर्बो प्रोजेक्ट ने एलआईबी जेपीईजी v9 का अनुकरण करना छोड़ दिया है।

2019 से, एलआईबी जेपीईजी-टर्बो दो जेपीईजी संदर्भ कार्यान्वयनों में से एक है, जो आईएसओ/आईईसी 10918-7 और आईटीयू-T T.873 के रूप में उपलब्ध है। अन्य संदर्भ कार्यान्वयन आईएसओ एलआईबी जेपीईजी है जिसमें जेपीईजी एक्सटी और जेपीईजी एलएस के लिए समर्थन भी सम्मिलित है।

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

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

इस प्रकार एलआईबी जेपीईजी-टर्बो के अतिरिक्त, एमओजेड जेपीईजी भी जेपीईजी क्रश पर बनाता है, लोरेन मेरिट द्वारा एक पर्ल स्क्रिप्ट।

आईएसओ एलआईबी जेपीईजी
आईएसओ/आईईसी जेपीईजी संयुक्त फ़ोटोग्राफ़ी विशेषज्ञ समूह आधार (आईएसओ/आईईसी 10918-1 और 18477-1) और इस प्रकार जेपीईजी एक्सटी एक्सटेंशन (आईएसओ/आईईसी 18477 भाग 2 और 6-9) के साथ-साथ दोषरहित जेपीईजी- के लिए एक संदर्भ सॉफ़्टवेयर कार्यान्वयन रखता है। एलएस (आईएसओ/आईईसी 14495)। इसमें एमओजेड जेपीईजी के कुछ ऑप्टिमाइज़ेशन भी सम्मिलित हैं। चूंकि इस प्रकार इसका नाम एलआईबी जेपीईजी भी है, यह स्वतंत्र जेपीईजी समूह (आईजेजी) द्वारा प्रदान किए गए स्रोत कोड से संबंधित नहीं है और 2007 से आईजेजी द्वारा प्रस्तुत किए गए स्वामित्व एक्सटेंशन का समर्थन नहीं करता है।

यह भी देखें

 * हानिपूर्ण संपीड़न ट्रांसकोडिंग और संपादन
 * गुत्ज़ली

बाहरी संबंध

 * जेपीईजीclub – Additional features for एलआईबी जेपीईजी
 * जेपीईजी FAQs
 * एलआईबी जेपीईजी-टर्बो, an ABI-/API-compatible fork of एलआईबी जेपीईजी that uses x86 एसआईएमडी instructions to achieve a substantial speedup over the reference implementation.
 * एलआईबी जेपीईजी-टर्बो, an ABI-/API-compatible fork of एलआईबी जेपीईजी that uses x86 एसआईएमडी instructions to achieve a substantial speedup over the reference implementation.