WebP, PNG से छोटे साइज़ कैसे हासिल करता है
असल जड़ दो कंप्रेशन तौर-तरीक़ों में है, और PNG का DEFLATE उनमें से बस एक के बराबर है। पहला तौर-तरीक़ा एक तिनका भी नहीं छोड़ता, स्थानिक और रंग प्रेडिक्शन को एक ऐसे एंट्रॉपी चरण से जोड़ता है जो DEFLATE से कहीं सधा हुआ है, और Google के अनुसार आम तस्वीरों पर करीब 26 प्रतिशत ज़्यादा बचत देता है। दूसरा तौर-तरीक़ा छोड़ना जानता है, वीडियो वाली दुनिया से एक ब्लॉक-आधारित ट्रांसफ़ॉर्म उधार लेता है और ठीक वही डिटेल गिराता है जिसे आँख मुश्किल से पकड़ती है। पूरा करिश्मा ट्रांसपेरेंसी की परत पर है, alpha आते ही WebP उसे एक अलग पटरी पर एक तिनका छोड़े बिना सहेजता है और RGB को ही lossy बरतता है, इसी से मेल खाती विज़ुअल क्वालिटी पर ट्रांसपेरेंट lossy WebP PNG के एक-तिहाई तक उतर आता है। DEFLATE एक भी अक्षर छोड़े बिना डटा रहता है, सो वह अवधारणात्मक रियायत उसके हाथ कभी नहीं आती, साइज़ की यह खाई वहीं से जन्म लेती है।
alpha channel विस्तार से
पैमाना खोलकर देखें: किसी पिक्सेल की ओपेसिटी, 0 की पूरी सफ़ाई से लेकर 255 की पूरी ठोसपन तक, PNG और WebP दोनों उसे 8 बिट में दर्ज करते हैं। दोबारा बनाते वक़्त प्लेटफ़ॉर्म इमेज इंजन हर पिक्सेल की RGBA पढ़ता है और सिर्फ़ alpha वाली पटरी को सीधे WebP के कंप्रेशन में डालता है, RGB चाहे जैसे बरता जाए, alpha हमेशा lossless कंप्रेशन के नीचे टिका रहता है। तो 0 का पूरा पारदर्शी, 1 से 254 के बीच का अधूरा पारदर्शी, और 255 का ठोस, हर एक WebP में रत्ती भर फ़र्क़ बिना अपनी जगह पाता है। किसी नरम छाया वाले या साफ़ बैकग्राउंड पर अक्षरों के मुलायम किनारों वाले लोगो पर वह नज़ाकत पूरी सवार होकर निकलती है। JPG यह कर ही नहीं सकता, उसके कंटेनर में alpha की कोई ख़ाना है ही नहीं, और एनकोड से पहले उसे तस्वीर किसी बैकग्राउंड रंग पर दबानी पड़ती है।
Core Web Vitals और इमेज फ़ॉर्मेट का चुनाव
पहले इस आदतन क़ुसूरवार को पहचान लें: महज़ वज़न से PNG अक्सर Largest Contentful Paint को घसीट गिराता है, एक 4K फ़ोटोग्राफ़िक PNG कई मेगाबाइट का होता है जबकि वही तस्वीर एक लगभग-लॉसलेस WebP में अक्सर बस एक चुटकी रह जाती है। और LCP नापता यह है कि पेज का सबसे बड़ा दिखने वाला तत्व व्यूपोर्ट में आने में कितनी देर लेता है, ज़्यादातर कंटेंट पेज पर वह hero तस्वीर होती है, और Google उसे Core Web Vitals के रैंकिंग संकेत में जोड़ लेता है। PageSpeed Insights तो next-gen-formats वाली कड़ी में सीधे PNG का नाम लेता है। सो किसी पेज के क्रिटिकल रेंडर पाथ पर अड़ी PNG को WebP में बदलना, मापी गई रफ़्तार के लिहाज़ से सबसे फ़ायदेमंद अकेली चालों में से है। समयरेखा भी निश्चिंत करती है, Chrome 2011, Firefox 2019, Safari 2020, और Edge अपने Chromium वाले फेर के बाद से।
Lossy आउटपुट और लगभग-लॉसलेस सेटिंग
WebP 0 से 100 तक एक क्वालिटी घुंडी खोलता है, जहाँ ऊँची संख्याएँ ज़्यादा डिटेल थामती हैं और ज़्यादा बाइट लेती हैं। Araluma उस घुंडी को एक लगभग-लॉसलेस बिंदु पर जमा देता है, जो फ़ोटो, इंटरफ़ेस ग्राफ़िक्स और आइकन की आम वेब श्रेणियों भर में वफ़ादारी को साइज़ के विरुद्ध तौलने को चुना गया है। इस बिंदु पर आउटपुट आम स्क्रीन दूरियों पर स्रोत PNG से अप्रभेद्य पढ़ा जाता है। सख़्ती से, एक सच्चे lossless एनकोड के विरुद्ध थोड़ी बिट-स्तर की सटीकता फिसलती है, इसलिए डिकोड किए गए WebP और ओरिजिनल PNG के बीच बाइट-दर-बाइट जाँच नन्हे संख्यात्मक अंतर उभारेगी, सब के सब फ़ोटोग्राफ़िक सामग्री पर मानव दृष्टि की दहलीज़ के नीचे बैठे। मेडिकल स्कैन, सैटेलाइट इमेजरी या आर्काइवल संरक्षण के लिए, जहाँ lossless एक कठोर नियम है, सही चाल यह है कि PNG रखें और WebP को महज़ एक डिलीवरी एक्सपोर्ट बरतें, वर्किंग कॉपी नहीं।
मेटाडेटा का व्यवहार
एक PNG को WebP में बदलना EXIF, IPTC और XMP फ़ील्ड को आउटपुट से बुहार देता है, जो तीनों बड़े ब्राउज़र इंजनों में से हर एक करता है। रंग प्रोफ़ाइल वहीं हैं जहाँ इंजन रास्ते बाँट लेते हैं। Chrome और Safari sRGB टैग को WebP पर सवार रखते हैं, जबकि Firefox सब साफ़ कर देता है, ICC प्रोफ़ाइल समेत। तो WebP हर जगह sRGB-सुरक्षित पढ़ा जाता है, फिर भी स्रोत PNG पर बैठा एक वाइड-गैमट टैग, Display-P3, Adobe RGB, ProPhoto RGB, Firefox से होकर नहीं टिकेगा। वह फ़ासला रंग-गंभीर पेशेवर काम में काटता है, इसलिए जब सच्ची रंग वफ़ादारी को साथ सवारी करनी ही हो, ऐसा कन्वर्टर चुनें जो जान-बूझकर ICC डेटा लिखता हो, या बाद में प्रोफ़ाइल टैग को इस काम के लिए बने मेटाडेटा एडिटर से वापस दबा दें।
कब PNG रखें और कब WebP काफ़ी है
फ़ैसला लैंडिंग देखकर हो जाता है। मंज़िल कोई वेब पेज या वेब ऐप है और दर्शक 2020 के बाद का ब्राउज़र है, तो WebP वही सही एक्सपोर्ट है। उसे Figma, Sketch या Affinity Designer में खुलना हो, तो पहले अपने ठीक उसी संस्करण में सपोर्ट टटोल लें, हर संस्करण का मिज़ाज अलग है। प्रिंट की ओर है, तो PNG या TIFF पर टेक लें, अधिकतर प्रिंट RIP WebP को हवा समझते हैं। ईमेल से जा रही है, तो PNG ज़्यादा भरोसे का, ईमेल क्लाइंट आधुनिक फ़ॉर्मेट देखकर अक्सर मुँह फेर लेते हैं। और वह बार-बार बदली और दोबारा सेव की जाने वाली वर्किंग फ़ाइल हो, तो PNG मास्टर रहे। कुल मिलाकर, लगभग-लॉसलेस WebP डिलीवरी में बढ़िया है, आर्काइव और एडिट इस छोर पर PNG ही ज़्यादा सुहाता है, सीधा बँटवारा यही, PNG मूल थामे, WebP वेब पर जाए।