WebP क्या है? मुझे इसका इस्तेमाल क्यों करना चाहिए?
WebP, नुकसान पहुंचाने वाले और लॉसलेस कंप्रेस करने का एक तरीका है. इसका इस्तेमाल बड़ी वेब पर पाई जाने वाली विविध प्रकार की फ़ोटोग्राफ़िक, पारभासी और ग्राफ़िकल इमेज. नुकसान पहुंचाने वाले कंप्रेस करने की सीमा में बदलाव किया जा सकता है, ताकि उपयोगकर्ता फ़ाइल साइज़ और इमेज क्वालिटी के बीच ट्रेड-ऑफ़ करें. WebP आम तौर पर इमेज को नुकसान पहुंचाए बिना, JPEG और JPEG 2000 की तुलना में औसत 30% ज़्यादा कंप्रेशन क्वालिटी (तुलनात्मक अध्ययन देखें).
WebP फ़ॉर्मैट का मकसद, छोटी और बेहतर दिखने वाली इमेज बनाना है ताकि वेब को तेज़ी से लोड किया जा सके.
कौनसे वेब ब्राउज़र, WebP के साथ काम करते हैं?
साइट के प्रदर्शन में सुधार करने में दिलचस्पी रखने वाले वेबमास्टर आसानी से को अपनी मौजूदा इमेज के लिए ऑप्टिमाइज़ किया है, और उन्हें WebP के साथ काम करने वाले ब्राउज़र के आधार पर टारगेट किया जाता है.
- WebP के लिए खराब सपोर्ट
- Google Chrome (डेस्कटॉप) 17+
- Android वर्शन 25+ के लिए Google Chrome
- Microsoft Edge 18 और उसके बाद के वर्शन
- फ़ायरफ़ॉक्स 65+
- ऑपरा 11.10+
- स्थानीय वेब ब्राउज़र, Android 4.0+ (ICS)
- Safari 14+ (iOS 14+, macOS Big Sur+)
- WebP नुकसान पहुंचाने वाला, लॉसलेस & ऐल्फ़ा वर्शन
- Google Chrome (डेस्कटॉप) 23+
- Android वर्शन 25+ के लिए Google Chrome
- Microsoft Edge 18 और उसके बाद के वर्शन
- फ़ायरफ़ॉक्स 65+
- ऑपरा 12.10+
- स्थानीय वेब ब्राउज़र, Android 4.2+ (JB-MR1)
- पेल मून 26+
- Safari 14+ (iOS 14+, macOS Big Sur+)
- WebP ऐनिमेशन से जुड़ी सहायता
- Google Chrome (डेस्कटॉप और Android) 32+
- Microsoft Edge 18 और उसके बाद के वर्शन
- फ़ायरफ़ॉक्स 65+
- ऑपेरा 19+
- Safari 14+ (iOS 14+, macOS Big Sur+)
यह भी देखें:
WebP के साथ काम करने वाले ब्राउज़र का पता कैसे लगाया जा सकता है?
आपको WebP इमेज सिर्फ़ उन क्लाइंट को दिखानी होगी जो उन्हें दिखा सकते हैं साथ ही, उन क्लाइंट के लिए लेगसी फ़ॉर्मैट पर वापस जाएं जो ऐसा नहीं कर सकते. अच्छी बात है WebP सपोर्ट का पता लगाने की कई तकनीकें हैं. क्लाइंट-साइड और सर्वर-साइड. सीडीएन सेवा देने वाली कुछ कंपनियां, WebP सहायता का पता लगाने की सुविधा देती हैं सेवा के तहत दिया जाता है.
स्वीकार करें हेडर के ज़रिए सर्वर साइड कॉन्टेंट से जुड़ी बातचीत
वेब क्लाइंट आम तौर पर "स्वीकार करें" मैसेज भेजते हैं अनुरोध का हेडर, जो दिखाता है कि वे किस फ़ॉर्मैट में कॉन्टेंट स्वीकार कर सकते हैं. अगर कोई ब्राउज़र पहले से बताता है कि वह "स्वीकार" करेगा image/webp फ़ॉर्मैट में, वेब सर्वर को पता है कि वह सुरक्षित तरीके से WebP इमेज भेज सकता है. इससे वेब सर्वर को के हिसाब से बातचीत करें. ज़्यादा जानकारी के लिए, यहां दिए गए लिंक देखें.
- वेब पर नए इमेज फ़ॉर्मैट इस्तेमाल करना
- एचटीएमएल एलिमेंट का इस्तेमाल करके, वेबसाइट पर आने वाले लोगों को WebP इमेज दिखाना
Modernizr
Modernizr एक JavaScript लाइब्रेरी है, जो HTML5 का आसानी से और वेब ब्राउज़र में CSS3 की सुविधा काम करती है. प्रॉपर्टी देखें Modernizr.webp, Modernizr.webp.lossless, Modernizr.webp.alpha और Modernizr.webp.animation.
HTML5 <picture>
एलिमेंट
HTML5, <picture>
एलिमेंट के साथ काम करता है, जिससे आपको कई,
प्राथमिकता के क्रम में वैकल्पिक इमेज टारगेट, जैसे कि क्लाइंट अनुरोध करेगा
पहला उम्मीदवार चित्र जिसे वह ठीक से प्रदर्शित कर सके. यहां जाएं:
इस चर्चा को HTML5 रॉक्स पर पढ़ें. यह <picture>
एलिमेंट है
यह सुविधा हर समय ज़्यादा ब्राउज़र पर काम करती है.
आपकी अपनी JavaScript में
पहचान करने का एक और तरीका, ऐसी छोटी WebP इमेज को डिकोड करने की कोशिश करना होता है जो किसी सुविधा का इस्तेमाल करता है और सफलता की जांच करता है. उदाहरण:
// check_webp_feature:
// 'feature' can be one of 'lossy', 'lossless', 'alpha' or 'animation'.
// 'callback(feature, result)' will be passed back the detection result (in an asynchronous way!)
function check_webp_feature(feature, callback) {
var kTestImages = {
lossy: "UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",
lossless: "UklGRhoAAABXRUJQVlA4TA0AAAAvAAAAEAcQERGIiP4HAA==",
alpha: "UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAARBxAR/Q9ERP8DAABWUDggGAAAABQBAJ0BKgEAAQAAAP4AAA3AAP7mtQAAAA==",
animation: "UklGRlIAAABXRUJQVlA4WAoAAAASAAAAAAAAAAAAQU5JTQYAAAD/////AABBTk1GJgAAAAAAAAAAAAAAAAAAAGQAAABWUDhMDQAAAC8AAAAQBxAREYiI/gcA"
};
var img = new Image();
img.onload = function () {
var result = (img.width > 0) && (img.height > 0);
callback(feature, result);
};
img.onerror = function () {
callback(feature, false);
};
img.src = "data:image/webp;base64," + kTestImages[feature];
}
ध्यान दें कि इमेज लोड करने की प्रोसेस, ब्लॉक नहीं की जा सकती और एसिंक्रोनस है. इसका मतलब है कि WebP सपोर्ट पर निर्भर करने वाले कोड को कॉलबैक में रखें फ़ंक्शन का इस्तेमाल करना होगा.
Google ने WebP को ओपन सोर्स के तौर पर क्यों रिलीज़ किया?
हम ओपन सोर्स मॉडल की अहमियत को समझते हैं. WebP फ़ॉर्मैट में ओपन सोर्स, कोई भी प्रारूप के साथ काम कर सकता है और सुधारों का सुझाव दे सकता है. के साथ हमें लगता है कि WebP आपके लिए और भी ज़्यादा उपयोगी साबित होगा ज़्यादा जानकारी मिलती है.
मैं अपनी निजी इमेज वाली फ़ाइलों को WebP में कैसे बदलूं?
अपनी निजी इमेज फ़ाइलों को बदलने के लिए, WebP कमांड लाइन का इस्तेमाल किया जा सकता है WebP फ़ॉर्मैट में बदलना होगा. ज़्यादा जानकारी के लिए, WebP का इस्तेमाल करना लेख पढ़ें.
अगर आपके पास बदलने के लिए कई इमेज हैं, तो प्लैटफ़ॉर्म के शेल का इस्तेमाल करके इससे कार्रवाई आसान हो जाती है. उदाहरण के लिए, किसी फ़ोल्डर में मौजूद सभी jpeg फ़ाइलों को बदलने के लिए, कोशिश करें निम्न:
Windows:
> for /R . %I in (*.jpg) do ( cwebp.exe %I -o %~fnI.webp )
Linux / macOS:
$ for F in *.jpg; do cwebp $F -o `basename ${F%.jpg}`.webp; done
मैं WebP इमेज क्वालिटी का पता कैसे लगाऊं?
फ़िलहाल, WebP फ़ाइलों को सामान्य फ़ॉर्मैट में बदलकर देखा जा सकता है जो PNG जैसे लॉसलेस कंप्रेशन का इस्तेमाल करता है और फिर PNG फ़ाइलों को किसी भी ब्राउज़र या इमेज व्यूअर का इस्तेमाल कर सकते हैं. WebP की क्वालिटी के बारे में तुरंत जानने के लिए, यहां जाएं: साथ-साथ (साथ-साथ) फ़ोटो लेने के लिए इस साइट पर मौजूद गैलरी तुलनाएं.
मुझे सोर्स कोड कैसे मिलेगा?
कन्वर्टर कोड यहां उपलब्ध है: WebP ओपन-सोर्स प्रोजेक्ट का डाउनलोड सेक्शन करें. लाइटवेट डिकोडर और VP8 स्पेसिफ़िकेशन का कोड चालू है WebM साइट. ज़्यादा जानकारी के लिए, कंटेनर के लिए RIFF कंटेनर पेज स्पेसिफ़िकेशन.
WebP इमेज का साइज़ ज़्यादा से ज़्यादा कितना हो सकता है?
WebP, VP8 के साथ बिट स्ट्रीम के साथ काम करता है. साथ ही, चौड़ाई और ऊंचाई के लिए 14 बिट का इस्तेमाल करता है. WebP इमेज का ज़्यादा से ज़्यादा पिक्सल डाइमेंशन 16383 x 16383 हो सकता है.
WebP फ़ॉर्मैट, कौनसे कलर स्पेस के साथ काम करता है?
VP8 बिटस्ट्रीम के मुताबिक, लॉसी WebP खास तौर पर 8-बिट Y'CbCr 4:2:0 (अक्सर इसे YUV420 कहा जाता है) इमेज फ़ॉर्मैट. कृपया सेक्शन 2, "फ़ॉर्मैट की खास जानकारी" आरएफ़सी 6386 के तहत रजिस्टर किया गया. VP8 डेटा फ़ॉर्मैट और डिकोड करने की गाइड देखें.
Lossless WebP, खास तौर पर आरजीबीए फ़ॉर्मैट के साथ काम करता है. ज़्यादा जानकारी के लिए, WebP लॉसलेस बिटस्ट्रीम स्पेसिफ़िकेशन.
क्या किसी WebP इमेज का साइज़, सोर्स इमेज से ज़्यादा बड़ा हो सकता है?
हां, आम तौर पर नुकसान पहुंचाने वाले फ़ॉर्मैट से WebP लॉसलेस में बदलने पर या इसके साथ काम करता है. ऐसा अक्सर कलरस्पेस के अंतर (YUV420 बनाम ARGB) की वजह से होता है और उनके बीच रूपांतरण होता है.
आम तौर पर, ऐसी तीन स्थितियां होती हैं:
- अगर सोर्स इमेज लॉसलेस ARGB फ़ॉर्मैट में है, तो स्पेशल डाउनसैंपलिंग YUV420 में ऐसे नए कलर शामिल होंगे जिन्हें कंप्रेस करना मुश्किल है उन्हें शामिल कर सकते हैं. ऐसा आम तौर पर तब हो सकता है, जब सोर्स यह कुछ रंगों के साथ PNG फ़ॉर्मैट में है: इसकी वजह से WebP खराब हो जाता है (या इसी तरह से फ़ाइल के साइज़ को नुकसान पहुंचाने वाले JPEG फ़ॉर्मैट में बदलें. इससे फ़ाइल का साइज़ बड़ा हो सकता है.
- अगर सोर्स नुकसान पहुंचाने वाले फ़ॉर्मैट में है, तो लॉसलेस WebP कंप्रेशन का इस्तेमाल करना नुकसान पहुंचाने वाले सोर्स को कैप्चर करने के लिए, आम तौर पर बड़ी फ़ाइल होगी. यह WebP के लिए खास नहीं है. साथ ही, ऐसा तब हो सकता है, जब उदाहरण के लिए, JPEG सोर्स को लॉसलेस WebP या PNG फ़ॉर्मैट में बदलना.
- अगर सोर्स खराब फ़ॉर्मैट में है और आपको उसे कंप्रेस करना है
इससे कम अच्छी क्वालिटी की सेटिंग का इस्तेमाल करके, WebP पर भरोसा किया जा सकता है. उदाहरण के लिए,
क्वालिटी 80 पर सेव की गई JPEG फ़ाइल को क्वालिटी 95 वाली WebP फ़ाइल में बदलें
आम तौर पर, फ़ाइल का साइज़ बड़ा हो जाता है, भले ही दोनों फ़ॉर्मैट खराब हों.
सोर्स की क्वालिटी का आकलन करना अक्सर नामुमकिन होता है. इसलिए, यह सलाह दी जाती है कि
अगर फ़ाइल का साइज़ लगातार बड़ा रहता है, तो टारगेट WebP क्वालिटी को कम कर दिया जाएगा.
यह भी हो सकता है कि आप क्वालिटी सेटिंग का इस्तेमाल करने से बचें. इसके बजाय,
cwebp
टूल में-size
विकल्प का इस्तेमाल करके, दिए गए फ़ाइल साइज़ को टारगेट करता है, या उसके बराबर के एपीआई का इस्तेमाल करना होगा. उदाहरण के लिए, ओरिजनल फ़ाइल का 80% टारगेट करने पर का साइज़ ज़्यादा मज़बूत साबित हो सकता है.
ध्यान दें कि JPEG सोर्स को नुकसान पहुंचाने वाले WebP फ़ॉर्मैट में या PNG सोर्स को लॉसलेस में बदलना WebP फ़ॉर्मैट में, फ़ाइल साइज़ से जुड़ी ऐसी समस्याएं होने का खतरा नहीं रहता.
क्या WebP फ़ॉर्मैट में, प्रोग्रेसिव या इंटरलेस डिसप्ले काम करते हैं?
WebP, JPEG या इंटरलेस PNG सेंस. इससे सीपीयू और मेमोरी पर बहुत ज़्यादा दबाव पड़ सकता है डिकोडिंग क्लाइंट का उपयोग किया जाता है, क्योंकि प्रत्येक रीफ़्रेश इवेंट में पूरा पास होता है. डीकंप्रेशन सिस्टम.
औसतन, प्रोग्रेसिव JPEG इमेज को डिकोड करना, बेसलाइन को एक 3 बार डालें.
इसके अलावा, WebP फ़ॉर्मैट में, इंक्रीमेंटल डिकोड करने की सुविधा मिलती है, ताकि सभी उपयोगकर्ताओं को यह सुविधा दी जा सके बिटस्ट्रीम के बाइट का इस्तेमाल करके, डिसप्ले करने लायक सैंपल लाइन को इस तरह बनाया जाता है: जल्द से जल्द. इससे मेमोरी, सीपीयू (CPU) और इसे री-पेंट करने में लगने वाला समय बचता है क्लाइंट के साथ-साथ डाउनलोड की स्थिति के बारे में विज़ुअल संकेत भी देंगे. इंंक्रीमेंटल डिकोडिंग सुविधा ऐडवांस डिकोडिंग एपीआई.
मैं अपने Android प्रोजेक्ट में libwebp Java बाइंडिंग का इस्तेमाल कैसे करूं?
WebP में, आसान एन्कोडर और डिकोडर के लिए, JNI बाइंडिंग के लिए सहायता शामिल है
swig/
डायरेक्ट्री में मौजूद इंटरफ़ेस.
Eclipse में लाइब्रेरी बनाना:
- पक्का करें कि आपके पास ADT प्लगिन NDK टूल के साथ इंस्टॉल किया गया हो. साथ ही, आपका NDK पाथ सही तरीके से सेट हो (प्राथमिकताएं > Android > NDK).
- नया प्रोजेक्ट बनाएं: फ़ाइल > नया > प्रोजेक्ट > Android ऐप्लिकेशन प्रोजेक्ट.
- क्लोन बनाएं या
libwebp को नए प्रोजेक्ट में
jni
नाम के फ़ोल्डर में अनपैक करें. LOCAL_SRC_FILES
सूची मेंswig/libwebp_java_wrap.c
जोड़ें.- नए प्रोजेक्ट पर राइट क्लिक करें और Android टूल चुनें > जोड़ें लाइब्रेरी को अपने बिल्ड में शामिल करने के लिए स्थानीय सहायता ....
प्रोजेक्ट की प्रॉपर्टी खोलें और C/C++ Build पर जाएं > व्यवहार. जोड़ें बनाने के लिए,
ENABLE_SHARED=1
कोBuild (Incremental build)
सेक्शन में जोड़ें libwebp को एक शेयर लाइब्रेरी के तौर पर जोड़ें.ध्यान दें
NDK_TOOLCHAIN_VERSION=4.8
को सेट करने से, आम तौर पर बेहतर होगा 32-बिट बिल्ड परफ़ॉर्मेंस.swig/libwebp.jar
कोlibs/
प्रोजेक्ट फ़ोल्डर में जोड़ें.अपना प्रोजेक्ट बनाएं. इससे
libs/<target-arch>/libwebp.so
बन जाएगा.रनटाइम के दौरान लाइब्रेरी लोड करने के लिए,
System.loadLibrary("webp")
का इस्तेमाल करें.
ध्यान दें कि लाइब्रेरी को ndk-build
की मदद से मैन्युअल तरीके से बनाया जा सकता है. साथ ही,
Android.mk
. ऐसे में, ऊपर बताए गए कुछ तरीकों का फिर से इस्तेमाल किया जा सकता है.
मैं C# के साथ libwebp का इस्तेमाल कैसे करूं?
WebP को डीएलएल के तौर पर बनाया जा सकता है, जो libwebp API को एक्सपोर्ट करता है. ये फ़ंक्शन ये काम कर सकते हैं: तो उसे C# में इंपोर्ट किया जाएगा.
libwebp.dll बनाएं. यह एपीआई को एक्सपोर्ट करने के लिए, WEBP_EXTERN को ठीक से सेट कर देगा फ़ंक्शन.
libwebp> nmake /f Makefile.vc CFG=release-dynamic
libwebp.dll को अपने प्रोजेक्ट में जोड़ें और मनचाहे फ़ंक्शन इंपोर्ट करें. ध्यान दें कि अगर आपको आसान एपीआई लौटाए गए किसी भी बफ़र को खाली करने के लिए, आपको
WebPFree()
को कॉल करना चाहिए.[DllImport("libwebp.dll", CallingConvention = CallingConvention.Cdecl)] static extern int WebPEncodeBGRA(IntPtr rgba, int width, int height, int stride, float quality_factor, out IntPtr output); [DllImport("libwebp.dll", CallingConvention = CallingConvention.Cdecl)] static extern int WebPFree(IntPtr p); void Encode() { Bitmap source = new Bitmap("input.png"); BitmapData data = source.LockBits( new Rectangle(0, 0, source.Width, source.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb); IntPtr webp_data; const int size = WebPEncodeBGRA(data.Scan0, source.Width, source.Height, data.Stride, 80, out webp_data); // ... WebPFree(webp_data); }
मुझे ऐनिमेटेड WebP का इस्तेमाल क्यों करना चाहिए?
ऐनिमेट किए गए GIF के मुकाबले ऐनिमेशन वाले WebP के फ़ायदे
WebP, 8-बिट ऐल्फ़ा चैनल वाले 24-बिट आरजीबी कलर के साथ काम करता है GIF का 8-बिट रंग और 1-बिट ऐल्फ़ा वाला.
WebP फ़ॉर्मैट में, नुकसान पहुंचाने वाले और लॉसलेस, दोनों तरह के कंप्रेस करने की सुविधा काम करती है; असल में, एक ऐनिमेशन में खराब और नुकसान न पहुंचाने वाले फ़्रेम, दोनों हो सकते हैं. सिर्फ़ GIF काम करता है कंप्रेस करने से क्वालिटी पर असर नहीं पड़ेगा. WebP की नुकसान पहुंचाने वाली कंप्रेशन तकनीकें, कारगर साबित होती हैं से लेकर असल दुनिया के वीडियो से बनाई गई ऐनिमेटेड इमेज भी होती हैं. ऐनिमेशन वाली इमेज का सोर्स.
WebP को GIF से कम बाइट की ज़रूरत होती है1. कम नुकसान वाले WebP फ़ॉर्मैट में बदले गए ऐनिमेटेड GIF, 64% छोटे होते हैं. हालांकि, इनमें कोई गड़बड़ी नहीं होती WebP फ़ॉर्मैट का साइज़ 19% कम होता है. यह खास तौर पर मोबाइल नेटवर्क पर ज़रूरी है.
वीडियो में आगे/पीछे जाने की स्थिति में, WebP को डिकोड करने में कम समय लगता है. तय सीमा में ब्लिंक करने, स्क्रोल करने या टैब बदलने से ये काम किए जा सकते हैं इमेज को छिपाने और दिखाने की वजह से, ऐनिमेशन रोक दिए जाते हैं और फिर दूसरे बिंदु पर छोड़कर दूसरे स्थान पर गया. सीपीयू का बहुत ज़्यादा इस्तेमाल होने की वजह से ऐनिमेशन छोड़ने वाले फ़्रेम को आगे बढ़ाने के लिए, डिकोडर की ज़रूरत भी पड़ सकती है क्लिक करें. ऐसे मामलों में, ऐनिमेशन वाले WebP फ़ॉर्मैट को कुल 0.57 गुना समय2 को GIF के तौर पर डिकोड करता है, जिससे जैंक कम हो जाता है और सीपीयू के इस्तेमाल में बढ़ोतरी से तेज़ी से रिकवरी करने के दौरान. यह है GIF की तुलना में WebP के दो फ़ायदे हैं:
WebP इमेज, मेटाडेटा को इस बारे में सेव करती हैं कि हर फ़्रेम में ऐल्फ़ा, और यह तय करने के लिए फ़्रेम को डिकोड करने की ज़रूरत नहीं है. इससे इस बात का ज़्यादा सटीक अनुमान मिलता है कि कौनसे पिछले फ़्रेम इस्तेमाल किए गए हैं फ़्रेम पर निर्भर करता है. इससे पिछले एलिमेंट की डिकोडिंग कम हो जाती है फ़्रेम.
यह किसी मॉडर्न वीडियो एन्कोडर की तरह ही, WebP एन्कोडर है नियमित अंतराल पर मुख्य-फ़्रेम सेट करें (जो ज़्यादातर GIF एन्कोडर के साथ काम नहीं करते). इससे लंबी अवधि के ऐनिमेशन में वीडियो खोजने की सुविधा काफ़ी बेहतर हो जाती है. सुविधा देने के लिए इमेज के साइज़ में ज़्यादा बढ़ोतरी किए बिना, ऐसे फ़्रेम शामिल करना, WebP जोड़ता है 'ब्लेंड करने का तरीका' फ़्लैग करें इस्तेमाल करती हैं. इससे कीफ़्रेम ड्रॉ करने की सुविधा मिलती है, जैसे कि पूरी इमेज मिटा दी गई हो बैकग्राउंड के रंग में ज़बरदस्ती न करें, ताकि फ़ुल साइज़.
ऐनिमेट किए गए GIF के मुकाबले ऐनिमेट किए गए WebP के नुकसान
वीडियो में आगे/पीछे जाने की सुविधा के अभाव में, WebP को सीधे तौर पर डिकोड करना GIF के मुकाबले सीपीयू की प्रोसेस ज़्यादा है. नुकसान पहुंचाने वाले WebP को डिकोड करने में उतना ही समय लगता है जितना कि 2.2 गुना. जबकि लॉसलेस WebP डेफ़िनिशन से 1.5 गुना ज़्यादा हो जाता है.
WebP सपोर्ट, GIF सहायता के मुकाबले आम तौर पर काम करता है. आम तौर पर, यह सुविधा दुनिया भर में.
ब्राउज़र में WebP की सुविधा जोड़ने से, कोड फ़ुटप्रिंट बढ़ जाता है और हमले की जगह तैयार करें. ब्लिंक में, करीब 1,500 अतिरिक्त लाइनें दिखती हैं में कोड (WebP demux लाइब्रेरी और Blink-side WebP इमेज शामिल है) डिकोडर). ध्यान दें कि आने वाले समय में यह समस्या कम हो सकती है, WebP और WebM ज़्यादा सामान्य डिकोडिंग कोड शेयर करते हैं या WebP क्षमताओं को WebM में शामिल किया जाता है.
<img>
में WebM का इस्तेमाल क्यों नहीं किया जा सकता?
<img>
में वीडियो फ़ॉर्मैट का इस्तेमाल करना लंबे समय तक बेहतर रहेगा
टैग के साथ जोड़ा जा सकता है. हालांकि, अब ऐसा इस मकसद से किया जा रहा है कि <img>
में WebM का इस्तेमाल किया जा सकता है
ऐनिमेशन वाले WebP की प्रस्तावित भूमिका कुछ समस्याएं पैदा करती है:
पिछले फ़्रेम का इस्तेमाल करने वाले फ़्रेम को डिकोड करने के लिए, WebM की ज़रूरत होती है ऐनिमेशन वाले WebP की तुलना में 50% ज़्यादा मेमोरी, पिछले फ़्रेम3.
हर ब्राउज़र और ब्राउज़र के हिसाब से, वीडियो कोडेक और कंटेनर काम करने का तरीका अलग-अलग होता है डिवाइस. कॉन्टेंट को अपने-आप ट्रांसकोड करने के लिए (उदाहरण के लिए, बैंडविथ-सेविंग प्रॉक्सी), ब्राउज़र को स्वीकार करने वाले हेडर जोड़ने होंगे जिससे पता चलता है कि उनके इमेज टैग किन फ़ॉर्मैट पर काम करते हैं. यहां तक कि यह अपर्याप्त, क्योंकि MIME प्रकार जैसे "वीडियो/webm" या "वीडियो/mpeg" अब भी यह बताने वाला कोड नहीं है कि कोडेक का इस्तेमाल कैसे किया जा सकता है (जैसे कि VP8 बनाम VP9). दूसरे पर WebP फ़ॉर्मैट को प्रोसेस किया जाता है और अगर वेंडर, यह ऐनिमेशन वाले WebP को भेजने के लिए सहमत है, जो सभी UA में WebP का व्यवहार होता है यह एक जैसा होना चाहिए; और "image/webp" स्वीकार करें हेडर है इसका इस्तेमाल WebP की सुविधा के लिए पहले से किया जा रहा है. हेडर में कोई नया बदलाव नहीं किया गया है ज़रूरी हैं.
Chromium वीडियो स्टैक को इनके लिए ऑप्टिमाइज़ किया गया है बिना किसी रुकावट के वीडियो चलाना. साथ ही, यह मानकर चलता है कि एक ही समय पर एक या दो वीडियो समय. इस वजह से, इसे लागू करने के तरीके काफ़ी सख्त हैं. वीडियो क्वालिटी को बेहतर बनाने के लिए संसाधनों (थ्रेड, मेमोरी वगैरह) का इस्तेमाल किया जा सकता है. इस तरह की इसे लागू करने की प्रोसेस, एक साथ दिखाए जाने वाले कई वीडियो पर लागू नहीं होती. ऐसा करने पर, बड़े पैमाने पर इमेज वाले वेबपेजों के साथ इस्तेमाल करने के लिए उसे फिर से डिज़ाइन करना ज़रूरी है.
WebM में फ़िलहाल सभी कंप्रेशन तकनीकों को शामिल नहीं किया जाता है WebP से. इस वजह से, यह इमेज दूसरे विकल्पों के मुकाबले WebP के साथ बेहतर तरीके से कंप्रेस होती है:
1 ऐनिमेशन वाले GIF और ऐनिमेटेड WebP के बीच तुलना करने के लिए, हम ने वेब से बिना किसी क्रम के ली गई करीब 7,000 ऐनिमेटेड GIF इमेज के संग्रह का इस्तेमाल किया है. इन इमेज को 'gif2webp' का इस्तेमाल करके, ऐनिमेटेड WebP में बदला गया इसका इस्तेमाल करने वाला टूल डिफ़ॉल्ट सेटिंग (सबसे नए से निर्मित libwebp सोर्स ट्री 08/10/2013 से). तुलना करने वाली संख्याएं इन दोनों के औसत मान होती हैं इमेज.
2 डिकोड करने के समय का हिसाब, सबसे नए libwebp + ToT का इस्तेमाल करके लगाया गया था 8/10/2013 तक ब्लिंक मानदंड टूल का इस्तेमाल किया जाएगा. "डिकोड समय वीडियो में आगे/पीछे जाने की सुविधा से" की गणना इस तरह की जाती है "शुरुआती पांच फ़्रेम डिकोड करें, फ़्रेम हटाएं बफ़र कैशे, अगले पाँच फ़्रेम डिकोड करें वगैरह".
3 WebM में हर फ़्रेम के साथ, मेमोरी में चार YUV रेफ़रंस फ़्रेम सेव रहते हैं
(चौड़ाई+96)*(ऊंचाई+96) पिक्सल सेव करना होगा. YUV 4:2:0 के लिए, हमें हर 6 के लिए 4 बाइट चाहिए
पिक्सल (या 3/2 बाइट प्रति पिक्सल). इसलिए, ये रेफ़रंस फ़्रेम इस्तेमाल
4*3/2*(width+96)*(height+96)
बाइट मेमोरी. जबकि WebP को
पिछले फ़्रेम (आरजीबीए में) के उपलब्ध होने की ही ज़रूरत होती है, जो कि
4*width*height
बाइट मेमोरी.
4 ऐनिमेशन वाले WebP रेंडरिंग के लिए, Google Chrome 32 या इसके बाद के वर्शन की ज़रूरत होती है