JPEG XL और Pareto Front
- libjxl संस्करण 0.10 जारी: JPEG XL के reference implementation libjxl का नया संस्करण जारी किया गया है। इस संस्करण में मुख्य सुधार 'streaming encoding' API का पूर्ण implementation है।
- streaming encoding API: यह बड़ी इमेजों को 'टुकड़ों' में encode करने की सुविधा देता है। पूरी इमेज को एक साथ प्रोसेस करने के बजाय, इसे memory-friendly तरीके से संभाला जा सकता है।
Lossless: memory उपयोग और speed में बड़ा सुधार
- libjxl संस्करण 0.9 की तुलना में सुधार: पिछले संस्करण में lossless JPEG XL encoding memory-intensive था और इसमें काफी समय लगता था। बड़ी इमेज encode करते समय यह गंभीर समस्या बन सकता था।
- NASA Earth at night इमेज उदाहरण: 13500×6750 आकार की इमेज को compress करने में libjxl 0.9 को लगभग 8GB RAM और 2 मिनट से अधिक समय लगता था। libjxl 0.10 में upgrade करने के बाद इसे 0.7GB RAM और 30 सेकंड में compress किया जा सकता है।
- विभिन्न effort settings के परिणाम: तालिका में अलग-अलग effort settings (e1~e9) के अनुसार memory उपयोग, समय, और compression size की तुलना दी गई है। effort setting बढ़ने पर compression बेहतर होता है, लेकिन सुधार non-linear होता है।
Pareto Front
- compression technologies की तुलना: सिर्फ compressed file size ही नहीं, encoding speed भी महत्वपूर्ण है। compression density और encoding speed, इन दो dimensions पर विचार करना आवश्यक है।
- Pareto optimal: जब कोई दूसरा तरीका उसी compression density को कम समय में हासिल नहीं कर सकता। Pareto optimal तरीके दिए गए time budget में सबसे छोटी file प्रदान करते हैं।
- Pareto Front का visualization: encoding speed और compression density दिखाने वाले charts के रूप में इसे visualize किया गया है। अलग-अलग image sets का उपयोग करके औसत speed और compression density की तुलना की गई है।
गैर-फोटोग्राफिक इमेजें
- test images के चयन का महत्व: अगर ज़्यादातर इमेजें फोटो हैं, तो natural noise के कारण उन्हें compress करना कठिन होता है।
- कॉमिक इमेजों के मामले में: गैर-फोटोग्राफिक इमेजें फोटो की तुलना में कहीं बेहतर compress होती हैं। कॉमिक इमेजों को लगभग 4bpp तक compress किया जा सकता है।
- libjxl में सुधार: libjxl का नया संस्करण पिछले संस्करण की तुलना में काफी तेज़ है और compression ratio भी बेहतर देता है।
Lossy compression के बारे में
- lossy compression benchmark: इसमें केवल compression size और speed महत्वपूर्ण हैं। image quality को तीसरे dimension के रूप में देखना चाहिए।
- lossy image codecs और encoders का प्रदर्शन: ये अलग-अलग quality points पर अलग तरह से काम कर सकते हैं। जो encoder high-quality encoding पर अच्छा काम करता है, वह ज़रूरी नहीं कि low-quality encoding पर भी उतना ही अच्छा हो।
Lossy Pareto Front
- test किए गए encoders: libjpeg-turbo, sjpeg, mozjpeg, jpegli, libavif / libaom, libjxl, libwebp, libheif आदि कई encoders के नवीनतम versions का परीक्षण किया गया।
- मध्यम गुणवत्ता: SSIMULACRA2 score 60 के अनुरूप settings पर परिणाम। यह तब सबसे प्रासंगिक है जब page weight घटाना image fidelity से अधिक महत्वपूर्ण हो।
- मध्यम-उच्च और उच्च गुणवत्ता: SSIMULACRA2 score 70 और 85 के अनुरूप settings पर परिणाम। high-quality points पर JPEG XL मुख्य रूप से Pareto Front पर बना रहता है।
निष्कर्ष
- libjxl संस्करण 0.10 में सुधार: memory consumption में बड़ी कमी आई है, और खासकर multi-threaded lossless encoding speed बेहतर हुई है।
- JPEG XL की स्थिति स्पष्ट: यह पुष्टि हुई है कि high quality से लेकर visually lossless quality तक, अलग-अलग speed settings पर यह Pareto optimal है।
- JPEG का लगातार आकर्षण: नया jpegli encoder speed और compression दोनों में सुधार लाता है। जब बहुत तेज़ encoding की ज़रूरत हो, तब यह अब भी सबसे अच्छा विकल्प हो सकता है।
- Cloudinary का योगदान: image compression क्षेत्र में नवीनतम तकनीक और insights लागू करके सर्वोत्तम user experience देने में सक्रिय भागीदारी।
GN⁺ की राय
- libjxl 0.10 का रिलीज़ image compression तकनीक में एक महत्वपूर्ण प्रगति दिखाता है। खासकर बड़ी इमेजों को संभालते समय memory उपयोग और encoding speed में बड़ा सुधार उपयोगकर्ताओं को काफी लाभ देगा।
- JPEG XL का विभिन्न quality और speed settings पर Pareto optimal होना इस लिहाज़ से उपयोगी है कि यह उपयोगकर्ताओं को image quality और file size के बीच बेहतर संतुलन खोजने में मदद करता है।
- आलोचनात्मक नज़रिए से देखें तो libjxl जैसी नई तकनीकों को अपनाने से मौजूदा infrastructure के साथ compatibility समस्याएँ पैदा हो सकती हैं। इसलिए existing systems के साथ integration को ध्यान में रखते हुए gradual adoption आवश्यक है।
- image compression तकनीक चुनते समय encoding और decoding speed, file size, supported platforms और devices जैसे कई factors पर विचार करना चाहिए। JPEG XL high-quality image compression के लिए आकर्षक विकल्प है, लेकिन यह अभी सभी users और systems में व्यापक रूप से supported नहीं है।
- इस तकनीक को अपनाने के फायदे हैं memory उपयोग में कमी, encoding speed में सुधार, और file size में कमी; जबकि संभावित नुकसान existing systems के साथ compatibility issues और नई तकनीक के लिए learning curve हो सकते हैं।
2 टिप्पणियां
लगता है jpegli encoder, mozjpeg के बाद, फिर से jpg की उम्र बढ़ा रहा है...
विडंबना यह है कि इसे JXL पक्ष ने बनाया है, लेकिन शायद यही JXL के प्रसार में रुकावट भी बन जाए...
Hacker News राय
WebP फ़ॉर्मैट का lossless compression प्रदर्शन बहुत शानदार है
low-quality settings में JPEG की detail preservation क्षमता का आकलन
JPEG XL फ़ॉर्मैट पर विस्तृत जानकारी खोजने में उपयोगकर्ताओं की कठिनाई
encoding speed पर केंद्रित लेख को लेकर सवाल
JPEG XL की quality और compression क्षमता का आकलन
JPEG XL प्रोजेक्ट के कारण विकसित नई parallel processing library
QOI फ़ॉर्मैट के शामिल किए जाने पर प्रतिक्रिया
libjxl के नए version ने memory consumption को काफी घटाया
JPEG XL का उपयोग करके पुराने JPEG फ़ाइलों को recompress करने के फायदे
lossless AVIF में अतिरिक्त बचत की संभावना का उल्लेख