الأسئلة الشائعة

ما هو تنسيق WebP؟ لماذا يجب أن أستخدمه؟

تنسيق WebP هو طريقة للضغط مع فقدان البيانات وبدون فقدان البيانات يمكن استخدامها على مجموعة كبيرة من الصور الفوتوغرافية وشبه الشفافة والرسومية الموجودة على الويب. درجة الضغط مع فقدان البيانات قابلة للتعديل بحيث يمكن للمستخدم الاختيار بين حجم الملف وجودة الصورة. يحقق تنسيق WebP عادةً ضغطًا أعلى بنسبة% 30 مقارنةً بصيغتَي JPEG وJPEG 2000، وذلك بدون فقدان جودة الصورة (يمكنك الاطّلاع على دراسة مقارنة).

يهدف تنسيق WebP بشكل أساسي إلى إنشاء صور أصغر حجمًا وأفضل مظهرًا يمكن أن تساعد في زيادة سرعة الويب.

ما هي متصفحات الويب التي تتوافق في الأصل مع WebP؟

يمكن لمشرفي المواقع المهتمين بتحسين أداء الموقع الإلكتروني أن ينشئوا بسهولة بدائل WebP محسّنة لصورهم الحالية، ويتم عرضها على نحو مستهدَف للمتصفّحات التي تتوافق مع تنسيق WebP.

  • دعم WebP مع فقدان البيانات
    • Google Chrome (سطح المكتب) 17 أو إصدار أحدث
    • الإصدار 25 من Google Chrome لنظام التشغيل Android أو الإصدارات الأحدث
    • Microsoft Edge 18 أو إصدار أحدث
    • الإصدار 65 من Firefox أو الإصدارات اللاحقة
    • Opera 11.10 أو إصدار أحدث
    • متصفح ويب أصلي، يعمل بنظام التشغيل Android الإصدار 4.0 أو الإصدارات الأحدث (ICS)
    • Safari 14 والإصدارات الأحدث (iOS 14 والإصدارات الأحدث، macOS Big Sur+ )
  • إمكانية فقدان البيانات في WebP وبدون فقدان البيانات واستخدام الإصدار الأولي
    • Google Chrome (سطح المكتب) 23 أو إصدار أحدث
    • الإصدار 25 من Google Chrome لنظام التشغيل Android أو الإصدارات الأحدث
    • Microsoft Edge 18 أو إصدار أحدث
    • الإصدار 65 من Firefox أو الإصدارات اللاحقة
    • Opera 12.10 أو إصدار أحدث
    • متصفح الويب الأصلي، Android 4.2 والإصدارات الأحدث (JB-MR1)
    • أصفر شاحب بعمر 26 سنة أو أكثر
    • Safari 14 والإصدارات الأحدث (iOS 14 والإصدارات الأحدث، macOS Big Sur+ )
  • إتاحة استخدام WebP Animation
    • Google Chrome (جهاز سطح المكتب وAndroid) 32 أو إصدار أحدث
    • Microsoft Edge 18 أو إصدار أحدث
    • الإصدار 65 من Firefox أو الإصدارات اللاحقة
    • Opera 19 أو الإصدارات الأحدث
    • Safari 14 والإصدارات الأحدث (iOS 14 والإصدارات الأحدث، macOS Big Sur+ )

انظر أيضًا:

كيف يمكنني اكتشاف توافق المتصفِّح مع WebP؟

وستحتاج إلى عرض صور WebP فقط للعملاء الذين يمكنهم عرضها بشكل صحيح، والعودة إلى استخدام التنسيقات القديمة للعملاء الذين يتعذّر عليهم عرضها. لحسن الحظ، هناك العديد من الأساليب لاكتشاف دعم WebP، سواء من جانب العميل أو الخادم. يوفر بعض مزودي شبكة توصيل المحتوى (CDN) إمكانية رصد دعم WebP كجزء من خدمتهم.

التفاوض على المحتوى من جهة الخادم من خلال عناوين "قبول"

من الشائع أن يرسل عملاء الويب عنوان طلب "قبول"، ما يشير إلى تنسيقات المحتوى التي يريدون قبولها كاستجابة لذلك. إذا أشار المتصفّح مقدّمًا إلى أنّه سيقبل تنسيق image/webp، سيعرف خادم الويب أنّه بإمكانه إرسال صور WebP بأمان، ما يسهّل بشكل كبير عملية التفاوض على المحتوى. اطّلِع على الروابط التالية للحصول على مزيد من المعلومات.

Modernizr

Modernizr هي مكتبة JavaScript لسهولة اكتشاف دعم ميزات HTML5 وCSS3 في متصفحات الويب. ابحث عن الخصائص Modernizr.webp وModernizr.webp.lossless وModernizr.webp.alpha وModernizr.webp.animation.

عنصر <picture> في HTML5

يتيح HTML5 استخدام عنصر <picture> الذي يسمح لك بإدراج عدة أهداف بديلة للصور بترتيب الأولوية، بحيث يطلب العميل أول صورة مرشحة يمكن عرضها بشكل صحيح. اطّلع على هذه المناقشة حول HTML5 Rocks. العنصر <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 × 16383.

ما هي مساحات الألوان التي يتيحها تنسيق WebP؟

بما يتوافق مع مصدر بيانات VP8، تعمل ميزة lossy WebP حصريًا مع تنسيق صورة Y'CbCr 4:2:0 8 بت (يُسمّى غالبًا YUV420). يُرجى الرجوع إلى القسم 2، "نظرة عامة على التنسيق" من RFC 6386، ودليل تنسيق البيانات وفك الترميز VP8 للحصول على مزيد من التفاصيل.

تعمل ميزة Lossless WebP حصريًا مع تنسيق RGBA. يمكنك الاطّلاع على مواصفات WebP Lossless Bitstream.

هل يمكن أن يزيد حجم صورة WebP عن الصورة المصدر؟

نعم، يحدث ذلك عادةً عند التحويل من تنسيق فقدان البيانات إلى تنسيق WebP بدون فقدان البيانات أو العكس صحيح. ويرجع ذلك بشكل أساسي إلى الفرق بين فراغ اللون (YUV420 وARGB) والتحويل بينهما.

هناك ثلاث مواقف نموذجية:

  1. إذا كانت الصورة المصدر بتنسيق ARGB بدون فقدان البيانات، سيؤدي الاختزال المكاني إلى YUV420 إلى إضافة ألوان جديدة يصعب ضغطها مقارنةً بالألوان الأصلية. وقد تحدث هذه المشكلة عادةً عندما يكون المصدر بتنسيق PNG وبه ألوان قليلة، فالتحويل إلى تنسيق WebP مع فقد البيانات (أو بشكل مشابه بتنسيق JPEG مع فقدان البيانات) قد يؤدي إلى زيادة حجم الملف.
  2. إذا كان المصدر بتنسيق فقدان البيانات، يؤدي عادةً استخدام ضغط WebP بدون فقدان البيانات لتسجيل طبيعة المصدر مع فقدان البيانات إلى حجم ملف أكبر. ولا ينطبق ذلك على تنسيق WebP تحديدًا، ويمكن أن يحدث عند تحويل ملف JPEG إلى تنسيق WebP أو PNG بدون فقدان البيانات مثلاً.
  3. إذا كان المصدر بتنسيق فقدان البيانات وكنت تحاول ضغطه بتنسيق WebP مع فقدان البيانات مع إعداد جودة أعلى. على سبيل المثال، عند محاولة تحويل ملف JPEG تم حفظه بجودة 80 إلى ملف WebP بجودة 95 سيؤدي عادةً إلى زيادة حجم الملف، حتى ولو تم فقدان التنسيقَين. غالبًا ما يكون من المستحيل تقييم جودة المصدر، لذا يُنصح بخفض جودة WebP المستهدفة إذا كان حجم الملف أكبر بشكل ثابت. وثمة احتمال آخر وهو تجنُّب استخدام إعدادات الجودة وتوجيه حجم ملف محدّد بدلاً من ذلك باستخدام الخيار -size في أداة cwebp أو واجهة برمجة التطبيقات المكافئة لها. على سبيل المثال، قد يكون استهداف% 80 من حجم الملف الأصلي أكثر فعالية.

يُرجى العِلم أنّ تحويل مصدر JPEG إلى تنسيق WebP مع فقدان البيانات أو مصدر PNG إلى تنسيق WebP بدون فقدان البيانات ليس عرضة للمفاجآت المتعلّقة بحجم الملفات هذا.

هل يتوافق WebP مع العرض التدريجي أو العرض المتداخل؟

لا يوفّر تنسيق WebP تحديثًا تدريجياً أو متداخلاً لفك الترميز بطريقة JPEG أو PNG. ومن المحتمل أن يتسبب ذلك في زيادة الضغط على وحدة المعالجة المركزية (CPU) وذاكرة برنامج فك التشفير، حيث يتضمن كل حدث تحديث اجتيازًا كاملاً لنظام فك الضغط.

في المتوسّط، يعادل فك ترميز صورة JPEG تقدّمية فك ترميز الخط الأساسي مرة واحدة 3 مرّات.

بدلاً من ذلك، يوفّر تنسيق WebP طريقة فك ترميز تزايدية، حيث يتم استخدام جميع وحدات البايت الواردة المتاحة من مصدر البيانات لمحاولة إنشاء صف نموذجي قابل للعرض في أسرع وقت ممكن. ويوفر ذلك جهود كل من الذاكرة ووحدة المعالجة المركزية (CPU) وإعادة الطلاء على العميل مع توفير إشارات مرئية حول حالة التنزيل. تتوفر ميزة فك الترميز التدريجي من خلال واجهة برمجة التطبيقات المتقدمة لفك الترميز.

كيف يمكنني استخدام روابط Java في libwebp في مشروع Android؟

يتيح تنسيق WebP استخدام روابط JNI مع الواجهات البسيطة لبرنامج الترميز وفك الترميز في دليل swig/.

إنشاء المكتبة في Eclipse:

  1. تأكَّد من تثبيت المكوّن الإضافي ADT مع أدوات NDK ومن ضبط مسار ملف NDK بشكل صحيح (الإعدادات المفضّلة > Android > NDK).
  2. أنشئ مشروعًا جديدًا: ملف > جديد > مشروع > مشروع تطبيق Android.
  3. نسخ أو فك ضغط libwebp في مجلد باسم jni في المشروع الجديد.
  4. أضِف "swig/libwebp_java_wrap.c" إلى قائمة "LOCAL_SRC_FILES".
  5. انقر بزر الماوس الأيمن على المشروع الجديد واختَر أدوات Android > إضافة دعم أصلي ... لتضمين المكتبة في إصدارك.
  6. افتح خصائص المشروع وانتقِل إلى إنشاء C/C++ > السلوك. أضِف ENABLE_SHARED=1 إلى القسم Build (Incremental build) لإنشاء libwebp كمكتبة مشتركة.

    ملاحظة: سيؤدي ضبط NDK_TOOLCHAIN_VERSION=4.8 بشكل عام إلى تحسين أداء الإصدار 32 بت.

  7. أضِف swig/libwebp.jar إلى مجلد مشروع libs/.

  8. أنشئ مشروعك. سيؤدي هذا إلى إنشاء libs/<target-arch>/libwebp.so.

  9. استخدِم System.loadLibrary("webp") لتحميل المكتبة في وقت التشغيل.

يُرجى العِلم أنّه يمكن إنشاء المكتبة يدويًا باستخدام ndk-build وAndroid.mk المضمَّنة. ويمكن إعادة استخدام بعض الخطوات الموضحة أعلاه في هذه الحالة.

كيف أستخدم libwebp مع C#؟

يمكن إنشاء WebP كـ DLL الذي يصدّر واجهة برمجة تطبيقات libwebp. يمكن بعد ذلك استيراد هذه الدوال في C#.

  1. أنشئ libwebp.dll. سيؤدي هذا إلى ضبط WEBP_EXTERN بشكلٍ صحيح لتصدير دوال واجهة برمجة التطبيقات.

    libwebp> nmake /f Makefile.vc CFG=release-dynamic
    
  2. أضف 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 متحرك؟

مزايا استخدام WebP المتحرّك مقارنةً بملفات GIF المتحرّكة

  1. يتوافق WebP مع ألوان نموذج أحمر أخضر أزرق (RGB) 24 بت مع قناة ألفا 8 بت، مقارنةً بألوان GIF بتنسيق 8 بت وألفا 1 بت.

  2. يدعم WebP كلاً من الضغط مع فقدان البيانات أو الضغط بدون فقدان البيانات، وفي الواقع، يمكن لرسم متحرك واحد أن يجمع بين الإطارات المفقودة وغير المفقودة. يتيح ملف GIF فقط الضغط بدون فقدان البيانات. فتقنيات الضغط مع فقدان البيانات في WebP ملائمة تمامًا للصور المتحركة التي يتم إنشاؤها من فيديوهات حقيقية، وتُعتبر مصدرًا شائعًا بشكل متزايد للصور المتحركة.

  3. يتطلّب تنسيق WebP وحدات بايت أقل من تنسيق GIF1. تكون ملفات GIF المتحركة التي يتم تحويلها إلى ملفات WebP مع فقد المحتوى أصغر بنسبة% 64، في حين تكون صفحات WebP التي لا تؤدي إلى فقدان البيانات أصغر بنسبة% 19. ويُعتبر ذلك أمرًا مهمًا على شبكات الجوّال.

  4. يستغرق تنسيق WebP وقتًا أقل لفك الترميز في حال تقديم/ترجيع الفيديو. في Blink، يمكن أن يؤدي التمرير أو تغيير علامات التبويب إلى إخفاء الصور وعرضها، ما يؤدي إلى إيقاف الصور المتحركة مؤقتًا ثم التخطّي للأمام إلى نقطة مختلفة. قد يتطلب الاستخدام المفرط لوحدة المعالجة المركزية الذي يتسبب في إسقاط الرسوم المتحركة للإطارات أيضًا أن يتقدم برنامج فك الترميز بتقديم العرض في الصورة المتحركة. في هذه السيناريوهات، تستغرق إضافة صور WebP المتحرّكة 0.57 مرة إجمالي زمن فك الترميز2 الذي يستغرقه ملف GIF، ما يؤدي إلى تقليل المشاكل أثناء التنقّل واسترداد البيانات بشكل أسرع من حالات الارتفاع في معدّل استخدام وحدة المعالجة المركزية (CPU). ويرجع ذلك إلى ميزتين لـ WebP مقارنةً بـ GIF:

    • تخزن صور WebP بيانات وصفية حول ما إذا كان كل إطار يحتوي على ألفا، مما يقلل الحاجة إلى فك ترميز الإطار لاتخاذ هذا القرار. ويؤدي ذلك إلى استنتاج أكثر دقة للإطارات السابقة التي يعتمد عليها إطار معيّن، وبالتالي تقليل فك الترميز غير الضروري للإطارات السابقة.

    • يضيف برنامج ترميز WebP إطارات رئيسية بشكل بحثي على فترات زمنية منتظمة (وهو ما لا تفعله معظم برامج ترميز ملفات GIF)، تمامًا مثل أي برنامج ترميز حديث للفيديوهات. يساعد ذلك في تحسين وضع التقديم/الترجيع في الصور المتحركة الطويلة. لتسهيل إدراج مثل هذه الإطارات بدون زيادة حجم الصورة بشكل ملحوظ، يضيف WebP علامة "طريقة المزج" لكل إطار بالإضافة إلى طريقة التخلص من الإطارات التي يستخدمها ملف GIF. ويتيح هذا للإطار الرئيسي الرسم كما لو تم محو الصورة بالكامل إلى لون الخلفية بدون فرض حجم الإطار السابق على الحجم الكامل.

عيوب تنسيق WebP المتحرك مقارنةً بصور GIF المتحركة

  1. عند غياب التقديم/الترجيع، يكون فك ترميز WebP أكثر استهلاكًا لوحدة المعالجة المركزية (CPU) مقارنةً بتنسيق GIF. يستغرق استخدام ميزة WebP المفقودة مدة 2.2 مرة لفك ترميز ملفات GIF، في حين أنّ WebP بدون فقدان البيانات يستغرق ذلك ضعف مقداره 1.5 مرة.

  2. إنّ إمكانية استخدام تنسيق WebP لا تقتصر على الانتشار نفسه الذي تتوفّر فيه ملفات GIF، فهي شاملة بشكل فعّال.

  3. تؤدي إضافة إتاحة WebP إلى المتصفِّحات إلى زيادة أثر الرمز وسطح الهجوم. في Blink، حوالى 1,500 سطر إضافي من الرموز (بما في ذلك مكتبة WebP demux وأداة فك ترميز صور WebP من جهة Blink). يُرجى العِلم أنّه يمكن الحد من هذه المشكلة في المستقبل إذا كان WebP وWebM يتشاركان رموزًا أكثر شيوعًا لفك الترميز، أو إذا تم استخدام إمكانات WebP في WebM.

لماذا لا يمكن إتاحة WebM في <img>؟

قد يكون من المنطقي إتاحة استخدام تنسيقات الفيديو ضمن علامة <img> على المدى الطويل. في المقابل، إنّ تنفيذ هذا الإجراء الآن بهدف أن يملأ WebM في <img> الدور المقترَح لتصميم WebP المتحرّك، ما يشكّل مشكلة:

  1. عند فك ترميز إطار يعتمد على الإطارات السابقة، يتطلب WebM ذاكرة أكبر بنسبة 50% من ذاكرة WebP المتحركة للاحتفاظ بالحدّ الأدنى لعدد الإطارات السابقة3.

  2. يختلف توافق برنامج ترميز الفيديو وحاوياته بشكل كبير على المتصفحات والأجهزة. لتسهيل التحويل التلقائي للمحتوى (على سبيل المثال، للخوادم الوكيلة لتوفير معدل نقل البيانات)، يجب أن تضيف المتصفّحات عناوين قبول تشير إلى التنسيقات المتوافقة مع علامات الصور لديها. وقد يكون ذلك غير كافٍ، لأنّ أنواع MIME مثل "video/webm" أو "video/mpeg" لا تزال لا تشير إلى إتاحة برنامج الترميز (مثلاً VP8 مقابل VP9). من ناحية أخرى، يتم تجميد تنسيق WebP بشكل فعّال، وإذا وافق المورّدون الذين يشحنون تنسيق WebP على شحن WebP متحرّك، يجب أن يكون سلوك WebP في جميع خدمات Universal Analytics متطابقًا. وبما أنّ عنوان قبول "image/webp" سبق أن تم استخدامه للإشارة إلى إتاحة WebP، لا حاجة إلى إجراء تغييرات جديدة على عناوين القبول.

  3. تم تحسين حزمة فيديوهات Chromium للتشغيل السلس، وتفترض أنّه يتم تشغيل فيديو واحد أو فيديوهَين فقط في الوقت نفسه. ونتيجة لذلك، يتم تطبيق العملية بشكل صاخب على استهلاك موارد النظام (السلاسل والذاكرة وغيرها) لزيادة جودة التشغيل إلى أقصى حد. لا يتسع نطاق التنفيذ هذا بشكل جيد للعديد من الفيديوهات المتزامنة، وبالتالي يجب إعادة تصميمه بحيث يكون مناسبًا للاستخدام مع صفحات الويب التي تتضمّن صورًا كثيرة.

  4. لا يتضمن تنسيق WebM حاليًا جميع أساليب الضغط من WebP. نتيجةً لذلك، يتم ضغط هذه الصورة بشكل أفضل بكثير عند استخدام WebP مقارنةً بالبدائل:


1 بالنسبة إلى جميع المقارنات بين صور GIF المتحركة وملفات WebP المتحركة، استخدمنا مجموعة من حوالي 7, 000 صورة GIF متحرّكة تم التقاطها عشوائيًا من الويب. تم تحويل هذه الصور إلى تنسيق WebP متحرّك باستخدام أداة "gif2webp" باستخدام الإعدادات التلقائية (التي تم إنشاؤها من أحدث شجرة مصدر libwebp اعتبارًا من 08/10/2013). أرقام المقارنة هي متوسط القيم عبر هذه الصور.

2 تم احتساب أوقات فك الترميز باستخدام أحدث إصدار من libwebp + ToT Blink اعتبارًا من 08/10/2013 باستخدام أداة قياس أداء. يتم احتساب "فك ترميز الوقت من خلال التقديم/الترجيع" على أنه "فك ترميز الإطارات الخمسة الأولى، ومحو ذاكرة التخزين المؤقت للمخزن المؤقت للإطارات، وفك ترميز الإطارات الخمسة التالية، وهكذا".

3 يحتفظ WebM بـ 4 إطارات مرجعية من نوع YUV في الذاكرة، مع تخزين كل إطار (العرض+96)*(الارتفاع+96) بكسل. بالنسبة إلى YUV بنسبة 4:2:0، نحتاج إلى 4 بايت لكل 6 بكسل (أو 3/2 بايت لكل بكسل). إذًا، تستخدم هذه الإطارات المرجعية 4*3/2*(width+96)*(height+96) بايت من الذاكرة. من ناحية أخرى، يحتاج WebP فقط إلى توفُّر الإطار السابق (في نموذج أحمر أخضر أزرق)، وهو 4*width*height بايت من الذاكرة.

4 يتطلب عرض WebP المتحرك الإصدار 32 من Google Chrome أو الإصدارات الأحدث