लिबजपेग: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 18: Line 18:
| website = {{URL|ijg.org}}<br />{{URL|jpegclub.org/reference|jpegclub.org}}
| website = {{URL|ijg.org}}<br />{{URL|jpegclub.org/reference|jpegclub.org}}
}}
}}
libjpeg [[जेपीईजी]] इमेज डेटा फॉर्मेट को संभालने के लिए [[ समारोह (कंप्यूटर विज्ञान) ]] के साथ एक मुफ्त [[ पुस्तकालय (कंप्यूटर विज्ञान) ]] है। यह जेपीईजी डेटा को संभालने के लिए विभिन्न उपयोगिताओं के साथ जेपीईजी [[कोडेक]] (एन्कोडिंग और डिकोडिंग) लागू करता है।
libjpeg [[जेपीईजी]] इमेज डेटा फॉर्मेट को संभालने के लिए [[ समारोह (कंप्यूटर विज्ञान) ]] के साथ एक मुफ्त [[ पुस्तकालय (कंप्यूटर विज्ञान) | लाइब्रेरी (कंप्यूटर विज्ञान)]] है। यह जेपीईजी डेटा को संभालने के लिए विभिन्न उपयोगिताओं के साथ जेपीईजी [[कोडेक]] (एन्कोडिंग और डिकोडिंग) लागू करता है।
यह C (प्रोग्रामिंग लैंग्वेज) में लिखा गया है और कस्टम [[ अनुमेय [[मुफ्त सॉफ्टवेयर]] लाइसेंस ]] (BSD लाइसेंस-लाइक) फ्री सॉफ्टवेयर लाइसेंस की शर्तों के तहत इसके [[सोर्स कोड]] के साथ फ्री सॉफ्टवेयर के रूप में वितरित किया गया है, जो [[एट्रिब्यूशन (कॉपीराइट)]] की मांग करता है।
 
यह C (प्रोग्रामिंग लैंग्वेज) में लिखा गया है और कस्टम [[ अनुमेय [[मुफ्त सॉफ्टवेयर]] लाइसेंस ]] (BSD लाइसेंस-लाइक) फ्री सॉफ्टवेयर लाइसेंस के अनुसार इसके [[सोर्स कोड]] के साथ फ्री सॉफ्टवेयर के रूप में वितरित किया गया है, जो [[एट्रिब्यूशन (कॉपीराइट)]] की मांग करता है।


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


जेपीईजी [[जेएफआईएफ]] छवियों का वेब पर व्यापक रूप से उपयोग किया जाता है। फ़ाइल आकार और दृश्य गुणवत्ता के बीच वांछित व्यापार-बंद को प्राप्त करने के लिए संपीड़न की मात्रा को समायोजित किया जा सकता है।<ref>[https://www.w3.org/Graphics/JPEG/ JPEG JFIF]</ref>
जेपीईजी [[जेएफआईएफ]] इमेज का वेब पर व्यापक रूप से उपयोग किया जाता है। फ़ाइल आकार और दृश्य गुणवत्ता के बीच वांछित व्यापार-बंद को प्राप्त करने के लिए संपीड़न की मात्रा को समायोजित किया जा सकता है।<ref>[https://www.w3.org/Graphics/JPEG/ JPEG JFIF]</ref>
== उपयोगिताएँ ==
== उपयोगिताएँ ==
निम्नलिखित यूटिलिटी प्रोग्राम libjpeg के साथ शिप किए गए हैं:
निम्नलिखित यूटिलिटी प्रोग्राम libjpeg के साथ शिप किए गए हैं:
; cjpeg और djpeg: JPEG और कुछ अन्य लोकप्रिय छवि फ़ाइल स्वरूपों के बीच रूपांतरण करने के लिए।
; cjpeg और djpeg: JPEG और कुछ अन्य लोकप्रिय इमेज फ़ाइल स्वरूपों के बीच रूपांतरण करने के लिए।
; rdjpgcom और wrjpgcom: जेपीईजी फाइलों में शाब्दिक टिप्पणियां डालने और निकालने के लिए।
; rdjpgcom और wrjpgcom: जेपीईजी फाइलों में शाब्दिक टिप्पणियां डालने और निकालने के लिए।
; jpegtran: मौजूदा जेपीईजी फाइलों के रूपांतरण के लिए।
; jpegtran: सम्मिलिता जेपीईजी फाइलों के रूपांतरण के लिए।


=== जेपीईजीट्रान ===
=== जेपीईजीट्रान ===
[[File:CropGUI GTK small.png|thumb|jpegtran बिना रीकोडिंग के JPEG डेटा को रूपांतरित करता है<br />(यहां यूजर इंटरफेस CropGUI के साथ)]]आदेश-पंक्ति इंटरफ़ेस|कमांड-लाइन प्रोग्राम जेपीईजीट्रान क्रमशः वास्तविक छवि डेटा के परिवर्तन के लिए और जेपीईजी फ़ाइलों में सहायक डेटा को हटाने के लिए असतत कोसाइन रूपांतरण गुणांक के प्रतिनिधित्व को सुधारने और पुन: कोड करने के लिए कई सुविधाएँ प्रदान करता है। गुणांकों के प्रतिनिधित्व के संबंध में परिवर्तनों में शामिल हैं:
[[File:CropGUI GTK small.png|thumb|jpegtran बिना रीकोडिंग के JPEG डेटा को रूपांतरित करता है<br />(यहां यूजर इंटरफेस CropGUI के साथ)]]आदेश-पंक्ति इंटरफ़ेस|कमांड-लाइन प्रोग्राम जेपीईजीट्रान क्रमशः वास्तविक इमेज डेटा के परिवर्तन के लिए और जेपीईजी फ़ाइलों में सहायक डेटा को हटाने के लिए असतत कोसाइन रूपांतरण गुणांक के प्रतिनिधित्व को सुधारने और पुन: कोड करने के लिए कई सुविधाएँ प्रदान करता है। गुणांकों के प्रतिनिधित्व के संबंध में परिवर्तनों में सम्मिलित हैं:
* संपीड़न बढ़ाने के लिए जेपीईजी फ़ाइल की [[ हफ़मैन कोडिंग ]] परत का अनुकूलन,
* संपीड़न बढ़ाने के लिए जेपीईजी फ़ाइल की [[ हफ़मैन कोडिंग ]] परत का अनुकूलन,
* प्रगतिशील और अनुक्रमिक जेपीईजी प्रारूपों के बीच रूपांतरण,
* प्रगतिशील और अनुक्रमिक जेपीईजी प्रारूपों के बीच रूपांतरण,
* [[एन्ट्रापी कोडिंग]] परत में हफमैन और [[अंकगणितीय कोडिंग]] के बीच रूपांतरण।<ref name="jpegcrop"/><ref name="patent-fail"/><ref name="bug680385"/>ये परिवर्तन प्रत्येक पूरी तरह दोषरहित और प्रतिवर्ती हैं। छवि डेटा पर परिवर्तनों में शामिल हैं:
* [[एन्ट्रापी कोडिंग]] परत में हफमैन और [[अंकगणितीय कोडिंग]] के बीच रूपांतरण।<ref name="jpegcrop"/><ref name="patent-fail"/><ref name="bug680385"/>ये परिवर्तन प्रत्येक पूरी तरह दोषरहित और प्रतिवर्ती हैं। इमेज डेटा पर परिवर्तनों में सम्मिलित हैं:
* कुछ छवि कार्यक्रमों द्वारा डाले गए गैर-मानक एप्लिकेशन-विशिष्ट डेटा को समाप्त करें,
* कुछ इमेज कार्यक्रमों द्वारा डाले गए गैर-मानक एप्लिकेशन-विशिष्ट डेटा को समाप्त करें,
* किसी फ़ाइल में कुछ परिवर्तन करें, जैसे:
* किसी फ़ाइल में कुछ परिवर्तन करें, जैसे:
** रंग चैनलों को हटाना (ग्रेस्केल में रूपांतरण),
** रंग चैनलों को हटाना (ग्रेस्केल में रूपांतरण),
** 90 डिग्री के चरणों में घूर्णन और फ़्लिप की गई छवि,
** 90 डिग्री के चरणों में घूर्णन और फ़्लिप की गई इमेज,
** इमेज ब्लॉक बॉर्डर पर [[इमेज क्रॉपिंग]] या जॉइनिंग (प्रत्येक 8×8 या 16×16 पिक्सल),
** इमेज ब्लॉक बॉर्डर पर [[इमेज क्रॉपिंग]] या जॉइनिंग (प्रत्येक 8×8 या 16×16 पिक्सल),
** रीस्केलिंग।<ref name="jpegtran"/>ये केवल रखे गए छवि डेटा के संबंध में [[दोषरहित]] और प्रतिवर्ती हैं। छवि डेटा ([[पीढ़ी का नुकसान]]) के बार-बार हानिपूर्ण परिमाणीकरण के साथ रीकोडिंग नहीं होती है।
** रीस्केलिंग।<ref name="jpegtran"/>ये केवल रखे गए इमेज डेटा के संबंध में [[दोषरहित]] और प्रतिवर्ती हैं। इमेज डेटा ([[पीढ़ी का नुकसान]]) के बार-बार हानिपूर्ण परिमाणीकरण के साथ रीकोडिंग नहीं होती है।


एक संबद्ध विंडोज एप्लिकेशन है, [https://jpegclub.org/ Jpegcrop], जो jpegtran को एक यूजर इंटरफेस प्रदान करता है। [[लिनक्स]] जैसी यूनिक्स जैसी प्रणालियों के लिए समान कार्यक्षमता के साथ मुफ्त [http://emergent.unpythonic.net/01248401946 CropGUI] है।
एक संबद्ध विंडोज एप्लिकेशन है, [https://jpegclub.org/ Jpegcrop], जो jpegtran को एक यूजर इंटरफेस प्रदान करता है। [[लिनक्स]] जैसी यूनिक्स जैसी प्रणालियों के लिए समान कार्यक्षमता के साथ मुफ्त [http://emergent.unpythonic.net/01248401946 CropGUI] है।
Line 47: Line 48:


== इतिहास ==
== इतिहास ==
इंडिपेंडेंट जेपीईजी ग्रुप (आईजेजी) का जेपीईजी कार्यान्वयन पहली बार 7 अक्टूबर 1991 को सार्वजनिक रूप से जारी किया गया था और उस समय से इसे काफी विकसित किया गया है।
इंडिपेंडेंट जेपीईजी ग्रुप (आईजेजी) का जेपीईजी कार्यान्वयन पहली बार 7 अक्टूबर 1991 को सार्वजनिक रूप से जारी किया गया था और उस समय से इसे अधिक विकसित किया गया है।
विकास शुरू में मुख्य रूप से [[टॉम लेन (कंप्यूटर वैज्ञानिक)]] द्वारा किया गया था।
विकास प्रारंभ में मुख्य रूप से [[टॉम लेन (कंप्यूटर वैज्ञानिक)]] द्वारा किया गया था।
IJG का [[ खुला स्रोत सॉफ्टवेयर ]] | ओपन-सोर्स कार्यान्वयन प्रमुख ओपन-सोर्स पैकेजों में से एक था और JPEG मानक की सफलता के लिए महत्वपूर्ण था। कई कंपनियों ने इसे छवि संपादकों और वेब ब्राउज़र जैसे विभिन्न उत्पादों में शामिल किया।<ref name="JPEG-homepage"/>
IJG का [[ खुला स्रोत सॉफ्टवेयर ]] | ओपन-सोर्स कार्यान्वयन प्रमुख ओपन-सोर्स पैकेजों में से एक था और JPEG मानक की सफलता के लिए महत्वपूर्ण था। कई कंपनियों ने इसे इमेज संपादकों और वेब ब्राउज़र जैसे विभिन्न उत्पादों में सम्मिलित किया।<ref name="JPEG-homepage"/>


संस्करण 5 के लिए, जो 24 सितंबर, 1994 को जारी किया गया था, पूरे कोड बेस को फिर से लिखा गया था। इसने एम्बेडेड टेक्स्ट टिप्पणियों को संभालने के लिए यूटिलिटी प्रोग्राम rdjpgcom और wrjpgcom पेश किया।
संस्करण 5 के लिए, जो 24 सितंबर, 1994 को जारी किया गया था, पूरे कोड बेस को फिर से लिखा गया था। इसने एम्बेडेड टेक्स्ट टिप्पणियों को संभालने के लिए यूटिलिटी प्रोग्राम rdjpgcom और wrjpgcom प्रस्तुत किया।
2 अगस्त 1995 से संस्करण 6 प्रगतिशील JPEG के समर्थन के साथ आया और पहली बार उपयोगिता कार्यक्रम jpegtran के साथ आया। यह उपयोगिता छवियों को घुमाने और फ़्लिप करने और संस्करण 6b में ग्रेस्केल कमी के लिए सुविधाओं के साथ विस्तारित की गई थी।
2 अगस्त 1995 से संस्करण 6 प्रगतिशील JPEG के समर्थन के साथ आया और पहली बार उपयोगिता कार्यक्रम jpegtran के साथ आया। यह उपयोगिता इमेज को घुमाने और फ़्लिप करने और संस्करण 6b में ग्रेस्केल कमी के लिए सुविधाओं के साथ विस्तारित की गई थी।


=== libjpeg-टर्बो और वंशज ===
=== libjpeg-टर्बो और वंशज ===


27 मार्च 1998 के libjpeg के संस्करण 6b से, मियासाका मसरू ने libjpeg/SIMD नाम की एक शाखा को फोर्क किया, जिसमें x86 SIMD अनुकूलन शामिल थे। इसे 2009 में TigerVNC और VirtualGL प्रोजेक्ट्स से पर्याप्त योगदान मिला। उस आधार पर 2010 में libjpeg-turbo प्रोजेक्ट बनाया गया था।<ref name="libjpeg-turbo"/>
27 मार्च 1998 के libjpeg के संस्करण 6b से, मियासाका मसरू ने libjpeg/एसआईएमडी नाम की एक शाखा को फोर्क किया, जिसमें x86 एसआईएमडी अनुकूलन सम्मिलित थे। इसे 2009 में टाइगर वीएनसी और VirtualGL प्रोजेक्ट्स से पर्याप्त योगदान मिला। उस आधार पर 2010 में libjpeg-turbo प्रोजेक्ट बनाया गया था।<ref name="libjpeg-turbo"/>


4 मार्च 2014 को, फाइलसाइज-ऑप्टिमाइज़िंग फोर्क mozjpeg का पहला संस्करण प्रकाशित किया गया था। इस संस्करण के लिए Mozilla Research के जोश आस ने [[x264]] के मुख्य डेवलपर लोरेन मेरिट से [[पर्ल]] स्क्रिप्ट jpegcrush पर फिर से काम किया और इसे libjpeg-turbo के कोड बेस में एकीकृत किया।<ref name="heise.de"/>
4 मार्च 2014 को, फाइलसाइज-ऑप्टिमाइज़िंग फोर्क mozjpeg का पहला संस्करण प्रकाशित किया गया था। इस संस्करण के लिए मौजिला रिसर्च के जोश आस ने [[x264]] के मुख्य डेवलपर लोरेन मेरिट से [[पर्ल]] स्क्रिप्ट jpegcrush पर फिर से काम किया और इसे libjpeg-turbo के कोड बेस में एकीकृत किया।<ref name="heise.de"/>


10 जुलाई 2014 को, मोज़िला ने संस्करण 2.0 जारी किया, जिसमें मुख्य रूप से ट्रेलिस क्वांटिज़ेशन जोड़ा गया और अब बेसलाइन जेपीईजी के आकार को भी कम करने में सक्षम है। [[Facebook]], Inc. ने दान किया {{val|60000|u=dollars}} अगले संस्करण के विकास के लिए,<ref name="mozjpeg2"/>और Mozjpeg के सुधार के लिए [[CloudFlare]] ने एक डेवलपर को नियुक्त किया।<ref name="CloudFlare"/>
10 जुलाई 2014 को, मोज़िला ने संस्करण 2.0 जारी किया, जिसमें मुख्य रूप से ट्रेलिस क्वांटिज़ेशन जोड़ा गया और अब बेसलाइन जेपीईजी के आकार को भी कम करने में सक्षम है। [[Facebook]], Inc. ने दान किया {{val|60000|u=dollars}} अगले संस्करण के विकास के लिए,<ref name="mozjpeg2"/>और Mozjpeg के सुधार के लिए [[CloudFlare]] ने एक डेवलपर को नियुक्त किया।<ref name="CloudFlare"/>


2019 में, libjpeg-turbo JPEG प्रारूप के लिए ISO और ITU समर्थित संदर्भ कार्यान्वयन बन गया।<ref name=refimpl/>
2019 में, libjpeg-turbo JPEG प्रारूप के लिए ISO और आईटीयू समर्थित संदर्भ कार्यान्वयन बन गया।<ref name=refimpl/>
=== IJG नेतृत्व में परिवर्तन ===
=== IJG नेतृत्व में परिवर्तन ===


11 वर्षों और नेतृत्व में बदलाव के बाद, गुइडो वोलबेडिंग के तहत IJG ने libjpeg (7 से 9) के नए संस्करण जारी किए, जिनमें से प्रत्येक ने पिछले संस्करणों के साथ ABI संगतता को तोड़ दिया।<ref name="compatibility-analysis"/>6x श्रृंखला के बाद संभावना में किए गए परिवर्तन वितरित नहीं किए गए थे।<ref name="ijg-is-back"/>संस्करण 7 में, अंकगणितीय कोडिंग के लिए समर्थन पेश किया गया था, जिसे पहले [[सॉफ्टवेयर पेटेंट]] की स्थिति के साथ-साथ jpegtran में क्रॉप फीचर के कारण खारिज कर दिया गया था (<code>-crop</code>).<ref name="ijg-is-back"/>
11 वर्षों और नेतृत्व में परिवर्तन के बाद, गुइडो वोलबेडिंग के अनुसार IJG ने libjpeg (7 से 9) के नए संस्करण जारी किए, जिनमें से प्रत्येक ने पिछले संस्करणों के साथ ABI संगतता को तोड़ दिया।<ref name="compatibility-analysis"/>6x श्रृंखला के बाद संभावना में किए गए परिवर्तन वितरित नहीं किए गए थे।<ref name="ijg-is-back"/>संस्करण 7 में, अंकगणितीय कोडिंग के लिए समर्थन प्रस्तुत किया गया था, जिसे पहले [[सॉफ्टवेयर पेटेंट]] की स्थिति के साथ-साथ jpegtran में क्रॉप फीचर के कारण खारिज कर दिया गया था (<code>-crop</code>).<ref name="ijg-is-back"/>


संस्करण 8 और 9 मूल रूप से विवादास्पद की शुरूआत के लिए काम करते थे<ref name=TomSmartScale/>असंगत प्रारूप एक्सटेंशन। इन्हें व्यापक रूप से अप्रभावी और मौजूदा, मानकीकृत समाधानों से हीन माना जाता है।<ref name="v9turbo"/><ref name="v8review"/>आईटीयू-टी को जमा करने के बाद उनके मानकीकरण को खारिज कर दिया गया था। मूल आयोजक टॉम लेन और अन्य ने आईजेजी के लक्ष्यों से विराम के रूप में इन परिवर्तनों की आलोचना की।<ref name=TomSmartScale/>
संस्करण 8 और 9 मूल रूप से विवादास्पद की प्रारंभआत के लिए काम करते थे<ref name=TomSmartScale/>असंगत प्रारूप एक्सटेंशन। इन्हें व्यापक रूप से अप्रभावी और सम्मिलिता, मानकीकृत समाधानों से हीन माना जाता है।<ref name="v9turbo"/><ref name="v8review"/>आईटीयू-टी को जमा करने के बाद उनके मानकीकरण को खारिज कर दिया गया था। मूल आयोजक टॉम लेन और अन्य ने आईजेजी के लक्ष्यों से विराम के रूप में इन परिवर्तनों की आलोचना की।<ref name=TomSmartScale/>
== संस्करण ==
== संस्करण ==


{| class="wikitable plainlist"
{| class="wikitable plainlist"
|-
|-
! Version
! संस्करण
! Released
! मुक्त
! New features
! नई सुविधाओं
|-
|-
! colspan=4  style="text-align: center;" | ITU T.81 JPEG Compatible
! colspan=4  style="text-align: center;" | आईटीयू T.81 JPEG अनुकूल
|-
|-
| {{Version |o |1}}
| {{Version |o |1}}
| 1991
| 1991
|  
|पहली विज्ञप्ति
*First release
 
*Baseline or optimized JPEG
बेसलाइन या अनुकूलित जेपीईजी
*GIF or PPM output
 
जीआईएफ या पीपीएम आउटपुट
|-
|-
| {{Version |o |2}}
| {{Version |o |2}}
| 1991
| 1991
|  
|आंतरिक सुधार
*Internal improvements
 
*More input/output formats
अधिक इनपुट/आउटपुट स्वरूप
|-
|-
| {{Version |o |3}}
| {{Version |o |3}}
| 1992
| 1992
| Internal and image quality improvements
| आंतरिक और छवि गुणवत्ता में सुधार
|-
|-
| {{Version |o |4}}
| {{Version |o |4}}
| 1992
| 1992
| Internal and speed improvements
| आंतरिक और गति में सुधार
|-
|-
| {{Version |o |4a}}
| {{Version |o |4a}}
Line 105: Line 107:
| {{Version |o |5}}
| {{Version |o |5}}
| 1994-09-24
| 1994-09-24
| Internal improvements and revised API
| आंतरिक सुधार और संशोधित एपीआई
|-
|-
| {{Version |o |5a}}
| {{Version |o |5a}}
Line 117: Line 119:
| {{Version |o |6}}
| {{Version |o |6}}
| 1995-08-02
| 1995-08-02
|  
|प्रगतिशील जेपीईजी
*Progressive JPEG
 
*jpegtran (convert between baseline and progressive)
jpegtran (बेसलाइन और प्रोग्रेसिव के बीच कनवर्ट करें)
|-
|-
| {{Version |o |6a}}
| {{Version |o |6a}}
Line 127: Line 129:
| {{Version |co |6b}}
| {{Version |co |6b}}
| 1998-03-27
| 1998-03-27
|
|jpegtran को दोषरहित घुमाने के लिए बढ़ाया गया
*jpegtran extended to lossless rotate
 
(used by '''libjpeg-turbo''' and '''mozjpeg''')
(libjpeg-turbo और mozjpeg द्वारा प्रयुक्त)
 
|-
|-
| {{Version |o |7}}
| {{Version |o |7}}
| 2009-06-27
| 2009-06-27
|
|
*jpegtran extended to lossless crop
*jpegtran दोषरहित फसल के लिए बढ़ाया गया T.851 अंकगणित कोडिंग<ref>{{cite web |title=ITU-T T.81 (JPEG-1)-based still-image coding using an alternative arithmetic coder |date=September 2009 |url=https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.851-200509-I!!PDF-E&type=items |type=pdf }}</ref>
*T.851 Arithmetic Coding<ref>{{cite web |title=ITU-T T.81 (JPEG-1)-based still-image coding using an alternative arithmetic coder |date=September 2009 |url=https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.851-200509-I!!PDF-E&type=items |type=pdf }}</ref>
*स्केल्ड डीसीटी<ref name="TurboSmartScale" />
*Scaled DCT<ref name="TurboSmartScale"/>
|-
|-
! colspan=4  style="text-align: center;" | Proprietary non-compatible extensions
! colspan=4  style="text-align: center;" | अधिकारप्रत गैर-संगत एक्सटेंशन
|-
|-
| {{Version |o |8}}
| {{Version |o |8}}
| 2010-01-10
| 2010-01-10
|
|
*SmartScale extension (ITU rejected)<ref>[http://jpegclub.org/temp/ITU-T-JPEG-Plus-Proposal_R3.doc ITU-T JPEG-Plus Proposal R3]</ref><ref>[http://jpegclub.org/temp/Evolution_of_JPEG.doc Evolution of JPEG]</ref>
*स्मार्टस्केल एक्सटेंशन (आईटीयू अस्वीकृत)<ref>[http://jpegclub.org/temp/ITU-T-JPEG-Plus-Proposal_R3.doc ITU-T JPEG-Plus Proposal R3]</ref><ref>[http://jpegclub.org/temp/Evolution_of_JPEG.doc Evolution of JPEG]</ref>
*jpegtran extended to use SmartScale
*jpegtran स्मार्टस्केल का उपयोग करने के लिए बढ़ाया गया आंतरिक सुधार
*Internal fixes
|-
|-
| {{Version |o |8a}}
| {{Version |o |8a}}
Line 153: Line 154:
| {{Version |o |8b}}
| {{Version |o |8b}}
| 2010-05-16
| 2010-05-16
| Memory corruption & build fixes
| मेमोरी करप्शन और बिल्ड फिक्स
|-
|-
| {{Version |o |8c}}
| {{Version |o |8c}}
| 2011-01-16
| 2011-01-16
| Option for selecting DCT block size (SmartScale)
| डीसीटी ब्लॉक आकार (स्मार्टस्केल) का चयन करने का विकल्प
|-
|-
| {{Version |o |8d}}
| {{Version |o |8d}}
| 2012-01-15
| 2012-01-15
| RGB JPEG (no color transform to YCbCr)
| आरजीबी जेपीईजी (वाईसीबीसीआर में कोई रंग परिवर्तन नहीं)
|-
|-
| {{Version |o |9}}
| {{Version |o |9}}
| 2013-01-13
| 2013-01-13
|
|
*[[YCoCg]] color
*वाईसीओसीजी रंग दोषरहित संपीड़न (1x1 डीसीटी)<ref>[http://jpegclub.org/temp/JPEG_9_Lossless_Coding.doc JPEG 9 Lossless Coding]</ref>
*Lossless compression (1x1 DCT)<ref>[http://jpegclub.org/temp/JPEG_9_Lossless_Coding.doc JPEG 9 Lossless Coding]</ref>
|-
|-
| {{Version |o |9a}}
| {{Version |o |9a}}
| 2014-01-19
| 2014-01-19
|
|"JFIFv2" scRGB चौड़ा रंग सरगम ​​(मानक अज्ञात)
* "[[JFIF]]v2" [[scRGB]] Wide color gamut (standard unknown)
 
*8-12 bit color (standardJPEG)
8-12 बिट रंग (मानक जेपीईजी)
|-
|-
| {{Version |o |9b}}
| {{Version |o |9b}}
| 2016-01-17
| 2016-01-17
|Computation improvements
|संगणना में सुधार
|-
|-
| {{Version |o |9c}}
| {{Version |o |9c}}
Line 185: Line 185:
| {{Version |o |9d}}
| {{Version |o |9d}}
| 2020-01-12
| 2020-01-12
|
|कोड सफाई
*Code cleanup
 
*Huffman optimization
हफ़मैन अनुकूलन
*x64 support (MSVC)
 
*{{code|jpegtran -drop}}
x64 समर्थन (एमएसवीसी)
 
jpegtran -ड्रॉप
|-
|-
| {{Version |c |9e}}
| {{Version |c |9e}}
| 2022-01-16
| 2022-01-16
|ARM and ARM64 support (MSVC)
|ARM और ARM64 सपोर्ट (MSVC)
|}
|}
{{Version |t |show=111100}}
{{Version |t |show=111100}}
Line 217: Line 219:
| repo = {{URL|github.com/libjpeg-turbo}}
| repo = {{URL|github.com/libjpeg-turbo}}
}}
}}
libjpeg-turbo libjpeg का एक फोर्क (सॉफ्टवेयर डेवलपमेंट) है जो बेसलाइन JPEG एन्कोडिंग और डिकोडिंग को तेज करने के लिए [[SIMD]] [[ निर्देश समुच्चय ]] का उपयोग करता है। लोकप्रिय Linux वितरण (Fedora (ऑपरेटिंग सिस्टम), [[Debian]], [[Mageia]], [[openSUSE]], ...), [[Mozilla]], और [[Google Chrome]] सहित कई प्रोजेक्ट अब libjpeg के बजाय libjpeg-turbo का उपयोग कर रहे हैं।<ref name="turbo-software"/><ref name="Chromium"/><ref name="turbo 1.2"/>प्रदर्शन के अलावा, कुछ परियोजनाओं ने libjpeg-turbo का उपयोग करना चुना है क्योंकि यह उन्हें पुराने libjpeg v6b रिलीज के साथ पिछड़े [[अनुप्रयोग बाइनरी इंटरफ़ेस]] संगतता को बनाए रखने की अनुमति देता है।<ref name="Fedora"/>libjpeg v7, v8 और v9 ने पूर्व रिलीज के साथ एबीआई संगतता तोड़ दी।<ref name="compatibility-analysis"/>
libjpeg-turbo libjpeg का एक फोर्क (सॉफ्टवेयर डेवलपमेंट) है जो बेसलाइन JPEG एन्कोडिंग और डिकोडिंग को तेज करने के लिए [[SIMD|एसआईएमडी]] [[ निर्देश समुच्चय ]] का उपयोग करता है। लोकप्रिय Linux वितरण (Fedora (ऑपरेटिंग सिस्टम), [[Debian|डेबियन]], [[Mageia|मेजिआ]], [[openSUSE|ओपेन एसयूएसई]], ...), [[Mozilla|मौजिला]], और [[Google Chrome|गूगल क्रोम]] सहित कई प्रोजेक्ट अब libjpeg के अतिरिक्त libjpeg-turbo का उपयोग कर रहे हैं।<ref name="turbo-software"/><ref name="Chromium"/><ref name="turbo 1.2"/>प्रदर्शन के अतिरिक्त, कुछ परियोजनाओं ने libjpeg-turbo का उपयोग करना चुना है क्योंकि यह उन्हें पुराने libjpeg v6b रिलीज के साथ पिछड़े [[अनुप्रयोग बाइनरी इंटरफ़ेस]] संगतता को बनाए रखने की अनुमति देता है।<ref name="Fedora"/>libjpeg v7, v8 और v9 ने पूर्व रिलीज के साथ एबीआई संगतता तोड़ दी।<ref name="compatibility-analysis"/>


libjpeg-turbo libjpeg v7 में देखी गई मानक-अनुरूप अंकगणितीय कोडिंग और दोषरहित क्रॉप सुविधाओं को लागू करता है। इसे libjpeg v7 या v8 ABI के साथ संगत होने के लिए भी कॉन्फ़िगर किया जा सकता है, लेकिन यह DCT स्केलिंग और स्वामित्व वाले SmartScale को कार्यान्वित करता है, जो DCT स्केलिंग पर निर्मित होता है।<ref name="turboREADME"/>libjpeg-turbo SmartScale का समर्थन नहीं करने का विकल्प चुनता है, क्योंकि यह एक ITU-T मानक नहीं है और क्योंकि उनका अपना शोध इसे (और DCT स्केलिंग) अप्रभावी पाता है।<ref name="TurboSmartScale">{{cite web |title=libjpeg-turbo {{!}} About / A Study on the Usefulness of DCT Scaling and SmartScale |url=https://libjpeg-turbo.org/About/SmartScale |website=libjpeg-turbo.org}}</ref> विस्तार से, चूंकि libjpeg v9 में एकमात्र प्रमुख नई सुविधा स्मार्टस्केल प्रारूप के लिए विशिष्ट है, libjpeg-turbo प्रोजेक्ट ने libjpeg v9 का अनुकरण करना छोड़ दिया है।<ref name="v9turbo"/>
libjpeg-turbo libjpeg v7 में देखी गई मानक-अनुरूप अंकगणितीय कोडिंग और दोषरहित क्रॉप सुविधाओं को लागू करता है। इसे libjpeg v7 या v8 ABI के साथ संगत होने के लिए भी कॉन्फ़िगर किया जा सकता है, किन्तु यह डीसीटी स्केलिंग और स्वामित्व वाले SmartScale को कार्यान्वित करता है, जो डीसीटी स्केलिंग पर निर्मित होता है।<ref name="turboREADME"/>libjpeg-turbo SmartScale का समर्थन नहीं करने का विकल्प चुनता है, क्योंकि यह एक आईटीयू-T मानक नहीं है और क्योंकि उनका अपना शोध इसे (और डीसीटी स्केलिंग) अप्रभावी पाता है।<ref name="TurboSmartScale">{{cite web |title=libjpeg-turbo {{!}} About / A Study on the Usefulness of DCT Scaling and SmartScale |url=https://libjpeg-turbo.org/About/SmartScale |website=libjpeg-turbo.org}}</ref> विस्तार से, चूंकि libjpeg v9 में एकमात्र प्रमुख नई सुविधा स्मार्टस्केल प्रारूप के लिए विशिष्ट है, libjpeg-turbo प्रोजेक्ट ने libjpeg v9 का अनुकरण करना छोड़ दिया है।<ref name="v9turbo"/>


2019 से, libjpeg-turbo दो JPEG संदर्भ कार्यान्वयनों में से एक है, जो ISO/IEC 10918-7 और ITU-T T.873 के रूप में उपलब्ध है।<ref name=refimpl>{{cite web |title=ISO/IEC 10918-7:2019 Information technology — Digital compression and coding of continuous-tone still images — Part 7: Reference software |url=https://www.iso.org/standard/75845.html |website=ISO |language=en}}{{cite web |title=T.873 (05/19): Information technology - Digital compression and coding of continuous-tone still images: Reference software |url=https://www.itu.int/rec/T-REC-T.873-201905-S/en |website=www.itu.int}}</ref> अन्य संदर्भ कार्यान्वयन ISO libjpeg है जिसमें JPEG XT और JPEG LS के लिए समर्थन भी शामिल है।
2019 से, libjpeg-turbo दो JPEG संदर्भ कार्यान्वयनों में से एक है, जो ISO/IEC 10918-7 और आईटीयू-T T.873 के रूप में उपलब्ध है।<ref name=refimpl>{{cite web |title=ISO/IEC 10918-7:2019 Information technology — Digital compression and coding of continuous-tone still images — Part 7: Reference software |url=https://www.iso.org/standard/75845.html |website=ISO |language=en}}{{cite web |title=T.873 (05/19): Information technology - Digital compression and coding of continuous-tone still images: Reference software |url=https://www.itu.int/rec/T-REC-T.873-201905-S/en |website=www.itu.int}}</ref> अन्य संदर्भ कार्यान्वयन ISO libjpeg है जिसमें JPEG XT और JPEG LS के लिए समर्थन भी सम्मिलित है।


=== mozjpeg ===
=== mozjpeg ===
Line 240: Line 242:
| website = {{url|https://github.com/mozilla/mozjpeg}}
| website = {{url|https://github.com/mozilla/mozjpeg}}
}}
}}
mozjpeg जोश आस और Mozilla Research के अन्य लोगों द्वारा किए गए libjpeg-turbo का एक कांटा है। इसका उद्देश्य छवि गुणवत्ता को बनाए रखते हुए कोडिंग दक्षता में सुधार के माध्यम से फ़ाइल आकार (लगभग 10%) में कमी और इसलिए संचरण समय प्राप्त करके वेबपृष्ठों के लोडिंग समय को तेज करना है। इसे प्राप्त करने के लिए, यह जेपीईजी मानक के साथ पूर्ण संगतता बनाए रखते हुए एन्कोडिंग (विषमता) के लिए अधिक प्रसंस्करण शक्ति का उपयोग करता है और डिकोडर पक्ष पर कोई बदलाव नहीं करता है।
mozjpeg जोश आस और मौजिला रिसर्च के अन्य लोगों द्वारा किए गए libjpeg-turbo का एक कांटा है। इसका उद्देश्य इमेज गुणवत्ता को बनाए रखते हुए कोडिंग दक्षता में सुधार के माध्यम से फ़ाइल आकार (लगभग 10%) में कमी और इसलिए संचरण समय प्राप्त करके वेबपृष्ठों के लोडिंग समय को तेज करना है। इसे प्राप्त करने के लिए, यह जेपीईजी मानक के साथ पूर्ण संगतता बनाए रखते हुए एन्कोडिंग (विषमता) के लिए अधिक प्रसंस्करण शक्ति का उपयोग करता है और डिकोडर पक्ष पर कोई परिवर्तन नहीं करता है।


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


Libjpeg-turbo के अलावा, mozjpeg भी jpegcrush पर बनाता है, लोरेन मेरिट द्वारा एक पर्ल स्क्रिप्ट।<ref name="heise.de"/><ref name="golem.de"/>
Libjpeg-turbo के अतिरिक्त, mozjpeg भी jpegcrush पर बनाता है, लोरेन मेरिट द्वारा एक पर्ल स्क्रिप्ट।<ref name="heise.de"/><ref name="golem.de"/>




== आईएसओ libjpeg ==
== आईएसओ libjpeg ==
{{main|JPEG XT#libjpeg}}
{{main|जेपीईजी एक्सटी#libjpeg}}
   
   
ISO/IEC संयुक्त फ़ोटोग्राफ़ी विशेषज्ञ समूह आधार JPEG (ISO/IEC 10918-1 और 18477-1) और JPEG XT एक्सटेंशन (ISO/IEC 18477 भाग 2 और 6-9) के साथ-साथ दोषरहित JPEG- के लिए एक संदर्भ सॉफ़्टवेयर कार्यान्वयन रखता है। एलएस (आईएसओ/आईईसी 14495)।<ref name=software>{{Cite web|url=https://jpeg.org/jpegxt/software.html|title = Jpeg - Jpeg Xt}}</ref> इसमें mozjpeg के कुछ ऑप्टिमाइज़ेशन भी शामिल हैं। हालांकि इसका नाम libjpeg भी है, यह स्वतंत्र जेपीईजी समूह (आईजेजी) द्वारा प्रदान किए गए स्रोत कोड से संबंधित नहीं है और 2007 से आईजेजी द्वारा पेश किए गए स्वामित्व एक्सटेंशन का समर्थन नहीं करता है।
ISO/IEC संयुक्त फ़ोटोग्राफ़ी विशेषज्ञ समूह आधार JPEG (ISO/IEC 10918-1 और 18477-1) और JPEG XT एक्सटेंशन (ISO/IEC 18477 भाग 2 और 6-9) के साथ-साथ दोषरहित JPEG- के लिए एक संदर्भ सॉफ़्टवेयर कार्यान्वयन रखता है। एलएस (आईएसओ/आईईसी 14495)।<ref name=software>{{Cite web|url=https://jpeg.org/jpegxt/software.html|title = Jpeg - Jpeg Xt}}</ref> इसमें mozjpeg के कुछ ऑप्टिमाइज़ेशन भी सम्मिलित हैं। चूंकि इसका नाम libjpeg भी है, यह स्वतंत्र जेपीईजी समूह (आईजेजी) द्वारा प्रदान किए गए स्रोत कोड से संबंधित नहीं है और 2007 से आईजेजी द्वारा प्रस्तुत किए गए स्वामित्व एक्सटेंशन का समर्थन नहीं करता है।


== यह भी देखें ==
== यह भी देखें ==
Line 305: Line 307:
* [https://jpegclub.org/ JPEGclub] – Additional features for libjpeg
* [https://jpegclub.org/ JPEGclub] – Additional features for libjpeg
* [http://www.faqs.org/faqs/jpeg-faq/ JPEG FAQs]
* [http://www.faqs.org/faqs/jpeg-faq/ JPEG FAQs]
* [https://libjpeg-turbo.org/ libjpeg-turbo], an ABI-/API-compatible fork of libjpeg that uses x86 SIMD instructions to achieve a substantial speedup over the reference implementation.
* [https://libjpeg-turbo.org/ libjpeg-turbo], an ABI-/API-compatible fork of libjpeg that uses x86 एसआईएमडी instructions to achieve a substantial speedup over the reference implementation.
* {{github|mozilla/mozjpeg|mozjpeg - the filesize-optimising fork}}
* {{github|mozilla/mozjpeg|mozjpeg - the filesize-optimising fork}}
* {{cite web |first1= Robert |last1= Nyman |first2= Josh |last2= Aas |date= Aug 6, 2014 |url= https://hacks.mozilla.org/2014/08/using-mozjpeg-to-create-efficient-jpegs/ |title= Using mozjpeg to Create Efficient JPEGs |publisher= Mozilla |work= Hacks }}
* {{cite web |first1= Robert |last1= Nyman |first2= Josh |last2= Aas |date= Aug 6, 2014 |url= https://hacks.mozilla.org/2014/08/using-mozjpeg-to-create-efficient-jpegs/ |title= Using mozjpeg to Create Efficient JPEGs |publisher= Mozilla |work= Hacks }}

Revision as of 21:01, 10 March 2023

libjpeg
Developer(s)Independent JPEG Group
Guido Vollbeding (maintainer)[1][2]
Initial releaseOctober 7, 1991; 34 years ago (1991-10-07)
Stable release
9e / January 16, 2022; 3 years ago (2022-01-16)
Written inC
Operating systemCross-platform
Typelibrary
LicenseCustom BSD-like (free software)
Websiteijg.org
jpegclub.org

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

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

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

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

उपयोगिताएँ

निम्नलिखित यूटिलिटी प्रोग्राम libjpeg के साथ शिप किए गए हैं:

cjpeg और djpeg
JPEG और कुछ अन्य लोकप्रिय इमेज फ़ाइल स्वरूपों के बीच रूपांतरण करने के लिए।
rdjpgcom और wrjpgcom
जेपीईजी फाइलों में शाब्दिक टिप्पणियां डालने और निकालने के लिए।
jpegtran
सम्मिलिता जेपीईजी फाइलों के रूपांतरण के लिए।

जेपीईजीट्रान

jpegtran बिना रीकोडिंग के JPEG डेटा को रूपांतरित करता है
(यहां यूजर इंटरफेस CropGUI के साथ)

आदेश-पंक्ति इंटरफ़ेस|कमांड-लाइन प्रोग्राम जेपीईजीट्रान क्रमशः वास्तविक इमेज डेटा के परिवर्तन के लिए और जेपीईजी फ़ाइलों में सहायक डेटा को हटाने के लिए असतत कोसाइन रूपांतरण गुणांक के प्रतिनिधित्व को सुधारने और पुन: कोड करने के लिए कई सुविधाएँ प्रदान करता है। गुणांकों के प्रतिनिधित्व के संबंध में परिवर्तनों में सम्मिलित हैं:

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

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

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

इतिहास

इंडिपेंडेंट जेपीईजी ग्रुप (आईजेजी) का जेपीईजी कार्यान्वयन पहली बार 7 अक्टूबर 1991 को सार्वजनिक रूप से जारी किया गया था और उस समय से इसे अधिक विकसित किया गया है। विकास प्रारंभ में मुख्य रूप से टॉम लेन (कंप्यूटर वैज्ञानिक) द्वारा किया गया था। IJG का खुला स्रोत सॉफ्टवेयर | ओपन-सोर्स कार्यान्वयन प्रमुख ओपन-सोर्स पैकेजों में से एक था और JPEG मानक की सफलता के लिए महत्वपूर्ण था। कई कंपनियों ने इसे इमेज संपादकों और वेब ब्राउज़र जैसे विभिन्न उत्पादों में सम्मिलित किया।[8]

संस्करण 5 के लिए, जो 24 सितंबर, 1994 को जारी किया गया था, पूरे कोड बेस को फिर से लिखा गया था। इसने एम्बेडेड टेक्स्ट टिप्पणियों को संभालने के लिए यूटिलिटी प्रोग्राम rdjpgcom और wrjpgcom प्रस्तुत किया। 2 अगस्त 1995 से संस्करण 6 प्रगतिशील JPEG के समर्थन के साथ आया और पहली बार उपयोगिता कार्यक्रम jpegtran के साथ आया। यह उपयोगिता इमेज को घुमाने और फ़्लिप करने और संस्करण 6b में ग्रेस्केल कमी के लिए सुविधाओं के साथ विस्तारित की गई थी।

libjpeg-टर्बो और वंशज

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

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

10 जुलाई 2014 को, मोज़िला ने संस्करण 2.0 जारी किया, जिसमें मुख्य रूप से ट्रेलिस क्वांटिज़ेशन जोड़ा गया और अब बेसलाइन जेपीईजी के आकार को भी कम करने में सक्षम है। Facebook, Inc. ने दान किया 60000 dollars अगले संस्करण के विकास के लिए,[11]और Mozjpeg के सुधार के लिए CloudFlare ने एक डेवलपर को नियुक्त किया।[12]

2019 में, libjpeg-turbo JPEG प्रारूप के लिए ISO और आईटीयू समर्थित संदर्भ कार्यान्वयन बन गया।[13]

IJG नेतृत्व में परिवर्तन

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

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

संस्करण

संस्करण मुक्त नई सुविधाओं
आईटीयू T.81 JPEG अनुकूल
Old version, no longer maintained: 1 1991 पहली विज्ञप्ति

बेसलाइन या अनुकूलित जेपीईजी

जीआईएफ या पीपीएम आउटपुट

Old version, no longer maintained: 2 1991 आंतरिक सुधार

अधिक इनपुट/आउटपुट स्वरूप

Old version, no longer maintained: 3 1992 आंतरिक और छवि गुणवत्ता में सुधार
Old version, no longer maintained: 4 1992 आंतरिक और गति में सुधार
Old version, no longer maintained: 4a 1993-02-18
Old version, no longer maintained: 5 1994-09-24 आंतरिक सुधार और संशोधित एपीआई
Old version, no longer maintained: 5a 1994-12-07
Old version, no longer maintained: 5b 1995-03-15
Old version, no longer maintained: 6 1995-08-02 प्रगतिशील जेपीईजी

jpegtran (बेसलाइन और प्रोग्रेसिव के बीच कनवर्ट करें)

Old version, no longer maintained: 6a 1996-02-07
Older version, yet still maintained: 6b 1998-03-27 jpegtran को दोषरहित घुमाने के लिए बढ़ाया गया

(libjpeg-turbo और mozjpeg द्वारा प्रयुक्त)

Old version, no longer maintained: 7 2009-06-27
  • jpegtran दोषरहित फसल के लिए बढ़ाया गया T.851 अंकगणित कोडिंग[19]
  • स्केल्ड डीसीटी[20]
अधिकारप्रत गैर-संगत एक्सटेंशन
Old version, no longer maintained: 8 2010-01-10
  • स्मार्टस्केल एक्सटेंशन (आईटीयू अस्वीकृत)[21][22]
  • jpegtran स्मार्टस्केल का उपयोग करने के लिए बढ़ाया गया आंतरिक सुधार
Old version, no longer maintained: 8a 2010-02-28 RGBA
Old version, no longer maintained: 8b 2010-05-16 मेमोरी करप्शन और बिल्ड फिक्स
Old version, no longer maintained: 8c 2011-01-16 डीसीटी ब्लॉक आकार (स्मार्टस्केल) का चयन करने का विकल्प
Old version, no longer maintained: 8d 2012-01-15 आरजीबी जेपीईजी (वाईसीबीसीआर में कोई रंग परिवर्तन नहीं)
Old version, no longer maintained: 9 2013-01-13
  • वाईसीओसीजी रंग दोषरहित संपीड़न (1x1 डीसीटी)[23]
Old version, no longer maintained: 9a 2014-01-19 "JFIFv2" scRGB चौड़ा रंग सरगम ​​(मानक अज्ञात)

8-12 बिट रंग (मानक जेपीईजी)

Old version, no longer maintained: 9b 2016-01-17 संगणना में सुधार
Old version, no longer maintained: 9c 2018-01-14 jpegtran -wipe
Old version, no longer maintained: 9d 2020-01-12 कोड सफाई

हफ़मैन अनुकूलन

x64 समर्थन (एमएसवीसी)

jpegtran -ड्रॉप

Current stable version: 9e 2022-01-16 ARM और ARM64 सपोर्ट (MSVC)
Legend: Old version, not maintained Older version, still maintained Current stable version Latest preview version Future release

कांटे

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

मानकीकरण के लिए अंतर्राष्ट्रीय संगठन से #ISO libjpeg भी है, जिसका उद्देश्य JPEG, JPEG XT और JPEG-LS मानकों का पूर्ण कार्यान्वयन करना है।[24]


libjpeg-टर्बो

libjpeg-turbo
Developer(s)libjpeg-turbo Project
Initial releaseNovember 19, 2010; 15 years ago (2010-11-19)
Stable release
2.1.2 / August 10, 2021; 4 years ago (2021-08-10)
Repositorygithub.com/libjpeg-turbo
Websitelibjpeg-turbo.org

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

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

2019 से, libjpeg-turbo दो JPEG संदर्भ कार्यान्वयनों में से एक है, जो ISO/IEC 10918-7 और आईटीयू-T T.873 के रूप में उपलब्ध है।[13] अन्य संदर्भ कार्यान्वयन ISO libjpeg है जिसमें JPEG XT और JPEG LS के लिए समर्थन भी सम्मिलित है।

mozjpeg

mozjpeg
Developer(s)Mozilla Research
Initial releaseMarch 4, 2014; 11 years ago (2014-03-04)
Stable release
4.0.3 / February 26, 2021; 4 years ago (2021-02-26)[30]
Websitegithub.com/mozilla/mozjpeg

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

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

Libjpeg-turbo के अतिरिक्त, mozjpeg भी jpegcrush पर बनाता है, लोरेन मेरिट द्वारा एक पर्ल स्क्रिप्ट।[10][31]


आईएसओ libjpeg

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

यह भी देखें

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

संदर्भ

  1. Göhler, Lars (April 29, 2020). "New Version of libjpeg (Ver. 9d) of Independent JPEG Group available now". JPEGclub.org. Independent JPEG Group. Retrieved 2021-01-25.
  2. Friesenhahn, Bob (June 6, 2020). "Re: [Libjpeg-devel-6x] 4 Integer Overflow Errors in libjpeg-9c". SourceForge.net. SourceForge. Retrieved 2021-01-25. The only concern was that Guido Vollbeding is not likely subscribed to this list and IJG JPEG is essentially developed by one person.
  3. JPEG JFIF
  4. Jpegcrop Preferences and Options description
  5. Filmic Games >> The greatest failure of our patent system was... Archived 2012-09-01 at the Wayback Machine
  6. 680385 - Firefox does not show arithmetic coded jpegs
  7. New jpegtran features
  8. JPEG homepage
  9. "libjpeg-turbo". libjpeg-turbo.
  10. 10.0 10.1 André Kramer (heise.de-Newsticker), January 14, 2013: Mozilla-Encoder verbessert JPEG-Kompression
  11. Sebastian Grüner, 16. Juli 2014: mozjpeg 2.0: Facebook unterstützt JPEG-Encoder von Mozilla
  12. "CloudFlare möchte zu Mozillas JPEG-Encoder beitragen". 30 July 2014.
  13. 13.0 13.1 "ISO/IEC 10918-7:2019 Information technology — Digital compression and coding of continuous-tone still images — Part 7: Reference software". ISO (in English)."T.873 (05/19): Information technology - Digital compression and coding of continuous-tone still images: Reference software". www.itu.int.
  14. 14.0 14.1 "libjpeg: API/ABI changes review". Retrieved 2017-10-28.
  15. 15.0 15.1 Mans Rullgard (Hardwarebug.org), August 4, 2009: IJG is back Archived 2014-07-16 at the Wayback Machine
  16. 16.0 16.1 Tom Lane, January 16, 2013: jpeg-9, API/ABI compatibility, and the future role of this project
  17. 17.0 17.1 "What About libjpeg v9?". libjpeg-turbo team. Retrieved February 8, 2013.
  18. Mans Rullgard (Hardwarebug.org), February 1, 2010: IJG swings again, and misses
  19. "ITU-T T.81 (JPEG-1)-based still-image coding using an alternative arithmetic coder" (pdf). September 2009.
  20. 20.0 20.1 "libjpeg-turbo | About / A Study on the Usefulness of DCT Scaling and SmartScale". libjpeg-turbo.org.
  21. ITU-T JPEG-Plus Proposal R3
  22. Evolution of JPEG
  23. JPEG 9 Lossless Coding
  24. "लिबजपेग". GitHub. 6 October 2021.
  25. Software That Uses or Provides libjpeg-turbo. February 9, 2012.
  26. Issue 48789 – chromium – Use libjpeg-turbo instead of libjpeg. April 14, 2011.
  27. Bug 698519 – Update to libjpeg-turbo 1.2. February 28, 2012
  28. libjpeg for F14. February 9, 2012.
  29. libjpeg-turbo README file Archived 2018-12-14 at the Wayback Machine
  30. "Releases · mozilla/mozjpeg". github.com. Retrieved 2021-04-14.
  31. Andreas Donath (golem.de), March 6, 2014: Mozilla will JPEGs besser komprimieren
  32. "Jpeg - Jpeg Xt".

बाहरी संबंध