WebP कंप्रेशन स्टडी

शुरुआती जानकारी

हम libwebp में रिलीज़ किए गए नए एन्कोडर के आधार पर, WebP और JPEG इमेज कंप्रेस करने की तुलना करते हैं. इसका लक्ष्य, ऐसे टूल का सेट चलाना है जिन्हें आसानी से दोहराया जा सकता है. साथ ही, इनमें ऐसे टूल भी शामिल हैं जो WebP और JPEG से इमेज कंप्रेस करने की प्रक्रिया की तुलना करते हैं.

हमने पहले WebP फ़ॉर्मैट में इसकी तुलना की थी. इस स्टडी में बड़ी संख्या में इमेज का आकलन करने पर फ़ोकस किया गया था. इसे JPEG सोर्स पर आयोजित किया गया था, जिन्हें वेब से क्रॉल किया गया था. JPEG एक नुकसान पहुंचाने वाला कंप्रेशन फ़ॉर्मैट है और यह सोर्स पर कंप्रेस करने वाले आर्टफ़ैक्ट दिखाता है. इसके अलावा, हमने शुरुआत में क्वालिटी मेट्रिक के तौर पर सिग्नल-टू-शोर अनुपात या PSNR का इस्तेमाल किया. इमेज की क्वालिटी मेट्रिक के तौर पर इस्तेमाल किए जाने पर, पीएसएनआर में कुछ समस्याएं होती हैं. समुदाय से मिले सुझावों के आधार पर, हम PNG इमेज पर प्रयोग करते हैं. इनमें कुछ स्टैंडर्ड टेस्ट सुइट में मौजूद इमेज भी शामिल होती हैं. हम इस स्टडी के लिए, स्ट्रक्चरल समानता या SSIM को क्वालिटी मेट्रिक के तौर पर इस्तेमाल करते हैं. एससिम को बेहतर विज़ुअल क्वालिटी वाली मेट्रिक माना जाता है.

मैथडोलॉजी

हम दो तरह के आकलन के बारे में बताते हैं. पहले मामले में, हम JPEG के समान क्वालिटी लेवल पर, WebP से मिले अतिरिक्त कंप्रेशन की स्टडी करते हैं. खास तौर पर, हम JPEG इमेज वाली समान क्वालिटी (SSIM इंडेक्स के मुताबिक) की WebP इमेज जनरेट करते हैं और फिर WebP और JPEG इमेज के फ़ाइल साइज़ की तुलना करते हैं. दूसरे मामले में, हम WebP और JPEG के लिए, SSIM बनाम बिट प्रति पिक्सल (bpp) प्लॉट का विश्लेषण करते हैं. ये प्लॉट, WebP और JPEG के लिए, रेट में गड़बड़ी के ट्रेड-ऑफ़ को दिखाते हैं.

प्रयोगों के डेटा सेट में PNG इमेज होती हैं. ये इमेज, सार्वजनिक तौर पर ऐक्सेस किए जा सकने वाले स्टैंडर्ड इमेज सुइट से ली गई थीं. साथ ही, वेब से क्रॉल की गई PNG इमेज का एक बड़ा कलेक्शन भी लिया गया था.

हर प्रयोग में कमांड का एक सेट चलाया जाता है. सिर्फ़ सार्वजनिक तौर पर उपलब्ध कमांड लाइन टूल का इस्तेमाल किया जाता है, ताकि दूसरे लोग प्रयोगों को सही तरीके से दोबारा अपना सकें. इस प्रयोग के लिए कमांड लाइन टूल इस्तेमाल किए जाते हैं:

  • identify और convert कमांड-लाइन टूल हैं, जो ImageMagick का हिस्सा हैं. हमने इस विश्लेषण के लिए, वर्शन 6.5.7 का इस्तेमाल किया है. हमने PNG और PPM फ़ॉर्मैट में बदलने के लिए, convert का इस्तेमाल किया. हमने किसी इमेज की चौड़ाई और ऊंचाई की जानकारी निकालने के लिए, identify का इस्तेमाल किया है.

  • cwebp और dwebp कमांड-लाइन टूल हैं. ये libwebp लाइब्रेरी का हिस्सा हैं, जिसे हमने 2011 की पहली तिमाही में रिलीज़ किया था. हमने लाइब्रेरी के वर्शन 0.1.2 का इस्तेमाल किया. हमने cwebp और dwebp का इस्तेमाल करके, WebP इमेज को कोड में बदला है और उन्हें डिकोड किया है. हमने इन टूल के लिए, डिफ़ॉल्ट एन्कोडिंग और डिकोडिंग पैरामीटर का इस्तेमाल किया.

  • cjpeg और djpeg कमांड-लाइन टूल हैं, जो libjpeg लाइब्रेरी का हिस्सा हैं. हमने लाइब्रेरी के वर्शन 6b का इस्तेमाल किया. हमने JPEG इमेज को कोड में बदलने और डिकोड करने के लिए cjpeg और djpeg का इस्तेमाल किया. हमने फ़ाइल के साइज़ को ऑप्टिमाइज़ करने के लिए, -optimize फ़्लैग के साथ cjpeg का इस्तेमाल किया है. हम अन्य सभी पैरामीटर को उनकी डिफ़ॉल्ट वैल्यू पर सेट करते हैं.

किसी इमेज की क्वालिटी को एससिम का इस्तेमाल करके मापा गया था. जैसा कि पहले बताया गया है, आम तौर पर एसएसएम को पीएसएनआर के मुकाबले बेहतर क्वालिटी वाली मेट्रिक के तौर पर स्वीकार किया जाता है. SSIM इंडेक्स की गणना के लिए, हमने C++ में सार्वजनिक रूप से उपलब्ध लागू करने की सुविधा का इस्तेमाल किया. पाठक उन Python स्क्रिप्ट को डाउनलोड कर सकता है जिनका हमने प्रयोग में इस्तेमाल किया. इन्हें रेफ़रंस के लिए, कोड रिपॉज़िटरी (डेटा स्टोर करने की जगह) से डाउनलोड किया गया.

इमेज डेटा सेट

हमने मानक टेस्ट इमेज कलेक्शन के साथ-साथ इमेज के एक बड़े सेट का आकलन करने के लिए, डेटा सेट को चुना है. प्रयोगों में इस्तेमाल किए गए डेटा सेट की सूची नीचे दी गई है.

  1. लेना: बड़े पैमाने पर इस्तेमाल की जाने वाली लेना इमेज (512 x 512 पिक्सल).

  2. Kodak: Kodak के ट्रू कलर इमेज सुइट से 24 इमेज.

  3. Tecnic: कलेक्शन में से 100 इमेज Tecnick.com पर उपलब्ध हैं. हमने ओरिजनल साइज़ की 100 आरजीबी कलर इमेज इस्तेमाल की हैं.

  4. Image_crawl: हमने बहुत सारी इमेज की जांच करने के लिए, Google Images के वेब क्रॉल डेटाबेस से PNG इमेज का कोई भी सैंपल इकट्ठा किया है. क्रॉल की गई ज़्यादातर PNG इमेज आइकॉन, ग्राफ़िक, चार्ट, स्कैन किए गए दस्तावेज़ वगैरह होती हैं. हालांकि, स्टैंडर्ड टेस्ट कलेक्शन में मौजूद ज़्यादातर इमेज, कंप्यूटर से जनरेट की गई इमेज के बजाय फ़ोटो जैसी होती हैं. इस डेटासेट को स्टैंडर्ड टेस्ट सुइट जैसा बनाने के लिए, हमने इन PNG इमेज पर चेहरे की पहचान करने वाला एल्गोरिदम चलाया. साथ ही,हमने इस प्रयोग में सिर्फ़ उन इमेज (करीब 11, 000) को शामिल किया जिन्होंने पहचान की इस जांच को पास कर लिया.

पहला प्रयोग: ईक्वल एससिम इंडेक्स पर WebP बनाम JPEG

इस प्रयोग में, हम तुलना करने लायक SSIM वैल्यू पर JPEG और WebP इमेज जनरेट करते हैं. साथ ही, फ़ाइल के साइज़ के अनुपात को मापते हैं. प्रयोग के चरण नीचे दिए गए हैं:

  1. सोर्स PNG इमेज को एक तय क्वालिटी पैरामीटर Q के साथ JPEG में कंप्रेस करें और सोर्स PNG इमेज और कंप्रेस की गई JPEG इमेज के बीच SSIM रिकॉर्ड करें.

  2. ऊपर रिकॉर्ड किए गए एससिम को ज़्यादा से ज़्यादा करीब पाने के लिए, क्वालिटी पैरामीटर का इस्तेमाल करके उसी सोर्स इमेज को WebP फ़ॉर्मैट में कंप्रेस करें.

हमने ऊपर दिए गए दो चरणों को एक डेटासेट में मौजूद सभी इमेज पर चलाया और फिर JPEG और WebP इमेज के लिए औसत फ़ाइल साइज़ और SSIM को मापा.

नीचे दी गई टेबल, JPEG क्वालिटी पैरामीटर Q के तीन अलग-अलग वैल्यू (50, 75, और 95) के लिए, इस प्रयोग के नतीजे दिखाती हैं. क्वालिटी पैरामीटर 50 और 95, इमेज के कंप्रेशन को कम और ज़्यादा बिट रेट को दिखाते हैं. हमने JPEG क्वालिटी पैरामीटर 75 को भी शामिल किया है, क्योंकि आम तौर पर यह JPEG इमेज के लिए सुझाया गया क्वालिटी लेवल होता है.

टेबल 1: एक ही SSIM इंडेक्स के लिए WebP और JPEG का औसत फ़ाइल साइज़ JPEG Q=50 के हिसाब से

लेना Kodak टेक्निक Image_crawl
WebP: फ़ाइल का औसत साइज़
(औसत एससिम)
17.4 केबी
(0.841)
31.0 केबी
(0.898)
92.4 केबी
(0.917)
6.5 केबी
(0.901)
JPEG: औसत फ़ाइल आकार
(औसत SSIM)
23.5 केबी
(0.840)
42.7 केबी
(0.897)
124.6 केबी
(0.916)
9.9 केबी
(0.899)
WebP से JPEG फ़ाइल साइज़ का अनुपात 0.74 यूरो 0.74 0.66

टेबल 2: एक ही SSIM इंडेक्स के लिए WebP और JPEG का औसत फ़ाइल साइज़ JPEG Q=75 के हिसाब से

लेना Kodak टेक्निक Image_crawl
WebP: फ़ाइल का औसत साइज़
(औसत एससिम)
26.7 केबी
(0.864)
46.5 केबी
(0.932)
139.0 केबी
(0.939)
9.9 केबी
(0.930)
JPEG: औसत फ़ाइल आकार
(औसत SSIM)
37.0 केबी
(0.863)
66.0 केबी
(0.931)
191.0 केबी
(0.938)
14.4 केबी
(0.929)
WebP से JPEG फ़ाइल साइज़ का अनुपात यूरो 0.70 0.73 यूरो

टेबल 3: एक ही SSIM इंडेक्स के लिए WebP और JPEG का औसत फ़ाइल साइज़ JPEG Q=95 के हिसाब से

लेना Kodak टेक्निक Image_crawl
WebP: फ़ाइल का औसत साइज़
(औसत एससिम)
74.3 केबी
(0.910)
118.0 केबी
(0.978)
356.0 केबी
(0.970)
23.4 केबी
(0.969)
JPEG: औसत फ़ाइल आकार
(औसत SSIM)
104 केबी
(0.907)
162 केबी
(0.976)
492 केबी
(0.970)
31.3 केबी
(0.968)
WebP से JPEG फ़ाइल साइज़ का अनुपात 0.71 0.73 यूरो 0.75

ऊपर दी गई टेबल से पता चलता है कि JPEG की तुलना में WebP, 25% से 34% ज़्यादा कंप्रेस करता है. यह बढ़ोतरी, SSIM इंडेक्स के बराबर या इससे थोड़ा बेहतर होती है.

प्रयोग 2: WebP और JPEG के लिए SSIM बनाम BPP प्लॉट

हम JPEG और WebP के रेट-डिस्टॉर्शन ट्रेड-ऑफ़ का अध्ययन करते हैं. खास तौर पर, हम JPEG और WebP के लिए SSIM बनाम बिट प्रति पिक्सल (bpp) प्लॉट का अध्ययन करते हैं. हम सोर्स की PNG इमेज लेते हैं और उसे JPEG और WebP फ़ॉर्मैट में कंप्रेस कर देते हैं. इसके लिए, हर संभावित (0-100) क्वालिटी वैल्यू का इस्तेमाल किया जाता है. इसके बाद, हर क्वालिटी वैल्यू के लिए हम JPEG और WebP के लिए मिले SSIM और bpp को प्लॉट करते हैं. नीचे दिए गए आंकड़ों में, इस्तेमाल किए गए तीन सार्वजनिक डेटा सेट से चुनी गई तीन इमेज के लिए, एसएसआईएम बनाम बीपीपी प्लॉट दिखाए गए हैं.

इमेज 1: Lenna के लिए SSIM बनाम BPP

Lenna के लिए sSIM बनाम bpp

इमेज 2: Kodak डेटासेट से, kodim19.png के लिए SSIM बनाम BPP

Kodim19 के लिए sSIM बनाम bpp

तीसरी इमेज: Tecnic डेटासेट से, RGB_OR_1200x1200_061.png के लिए SSIM बनाम BPP

RGB_OR_1200x1200 के लिए sSIM बनाम bpp

इसके अलावा, हमने कोडक और टेक्निक डेटा सेट के लिए, एसएसआईएम और बीपीपी प्लॉट के औसत व्यवहार का अध्ययन किया है. औसत व्यवहार को दिखाने के लिए, हम WebP और JPEG का इस्तेमाल करके, डेटासेट में मौजूद सभी इमेज को 100 अलग-अलग क्वालिटी वैल्यू पर कंप्रेस करते हैं. फिर हम हर क्वालिटी वैल्यू के लिए SSIM और bpp का औसत बनाते हैं. इमेज क्रॉल के डेटा सेट में, विषमांगी इमेज होती हैं. ये इमेज, इस डेटा एग्रीगेशन के लिए ज़िम्मेदार नहीं होतीं. नीचे दिए गए प्लॉट के ज़रिए दिखाया गया है कि कोडक और टेक्निक डेटा सेट के लिए एसएसआईएम और बीपीपी का औसत व्यवहार किस तरह का है.

इमेज 4: Kodak डेटासेट के लिए, SSIM बनाम BPP

Kodak के लिए sSIM बनाम bpp

इमेज 5: टेक्निक डेटासेट के लिए एससिम बनाम बीपीपी

टेक्निक डेटासेट के लिए एससिम बनाम बीपीपी

ऊपर दिए गए प्लॉट से, हम देख सकते हैं कि एक जैसा एससिम इंडेक्स पाने के लिए, WebP को JPEG की तुलना में, हर पिक्सल में कम बिट की ज़रूरत हमेशा कम होती है.

नतीजा

इस स्टडी में JPEG की तुलना में WebP कंप्रेशन का आकलन किया गया. हमने देखा है कि समान एससिम इंडेक्स में JPEG फ़ाइल के साइज़ की तुलना में WebP फ़ाइल का औसत साइज़ 25% से 34% कम होता है. SSIM बनाम बीपीपी प्लॉट से पता चला कि एक ही एससिम इंडेक्स के लिए, WebP को JPEG की तुलना में, हर पिक्सल में लगातार कम बिट की ज़रूरत पड़ती है. ये नतीजे बताते हैं कि WebP, JPEG की तुलना में अहम कंप्रेशन सुधार दे सकता है.


1 हुइन-थ, कु॰; माधव घनबारी, (2008). "इमेज/वीडियो क्वालिटी के आकलन में पीएसएनआर की वैधता का दायरा". इलेक्ट्रॉनिक्स लेटर 44: 800-801.doi:10.1049/el:20080522.

2 Z. एलेक्ज़ेंडर वांग, C. हामिद बोविक, R. शेख, और ई॰ P. सिमॉनचैली, "इमेज क्वालिटी असेस्मेंट: गड़बड़ी मेज़रमेंट से स्ट्रक्चरल समानता," इमेज प्रोसेसिंग, आईईई ट्रांज़ैक्शन, वॉल्यूम 13, अंक 4, पीपी. 600-612, 2004.