ترميز الشفافية وترميز الشفافية في WebP

جيركي ألاكويجالا، دكتوراه، Google, Inc.
"فنسنت رابود" حائز على شهادة دكتوراه Google, Inc.
تاريخ آخر تعديل: 2017-08-01

موجز: نقارن استخدام الموارد من خلال برنامج ترميز/فك ترميز WebP مع استخدام ملفات PNG في الوضعَين بدون فقدان البيانات أو فقدان البيانات. نستخدم مجموعة من 12,000 صورة شفافة بتنسيق PNG من الويب تم اختيارها عشوائيًا، بالإضافة إلى قياسات أكثر بساطة لإظهار التفاوت في الأداء. لقد أعدنا ضغط ملفات PNG في مجموعتنا لمقارنة صور WebP بصور PNG ذات الحجم المحسّن. نظهر في النتائج التي توصّلنا إليها أنّ تنسيق WebP يشكّل بديلاً جيدًا لتنسيق PNG للاستخدام على الويب من حيث الحجم وسرعة المعالجة.

مقدمة

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

في هذا العمل، نقارن أداء ملفات WebP بتنسيقات PNG التي يتم ضغطها بدرجة كبيرة باستخدام pngcrush وZopfliPNG. ولقد أعدنا ضغط مجموعة الصور المرجعية على الويب باستخدام أفضل الممارسات، كما مقارنةنا بضغط البيانات بتنسيق WebP بدون فقدان البيانات وبين هذه البيانات. وبالإضافة إلى النصوص المرجعية، اخترنا صورتين أكبرتين، إحداهما فوتوغرافية والأخرى رسومية، لقياس السرعة واستخدام الذاكرة.

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

الطُرق

أدوات سطر الأوامر

نستخدم أدوات سطر الأوامر التالية لقياس الأداء:

  1. cwebp وdwebp. هذه الأدوات التي تشكّل جزءًا من مكتبة libwebp (مجمّعة من head).

  2. يتم التحويل. هذا جزء من أداة سطر الأوامر في برنامج ImageMagick ( 6.7.7-10 2017-07-21).

  3. pngcrush 1.8.12 (30 تموز (يوليو) 2017)

  4. ZopfliPNG (17 تموز (يوليو) 2017)

نستخدم أدوات سطر الأوامر مع علامات التحكم الخاصة بها. على سبيل المثال، إذا أشرنا إلى cwebp -q 1 -m 0، فهذا يعني أنه قد تم استدعاء أداة cwebp بعلامتي -q 1 و-m 0.

صورة مجموعة الأجهزة

تم اختيار ثلاث مجموعات:

  1. صورة فوتوغرافية واحدة (الشكل 1)،

  2. صورة رسومية واحدة بشفافية (الشكل 2)، و

  3. مجموعة على الويب: 12,000 صورة بتنسيق PNG تم اختيارها عشوائيًا بشفافية أم لا، تم الزحف إليها من الإنترنت. وقد تم تحسين صور PNG من خلال أدوات التحويل وpngcrush وZopfliPNG، وسيتم تضمين أصغر نسخة من كل صورة في الدراسة.

الشكل 1. صورة فوتوغرافية بحجم 1024 × 752 بكسل التنفّس من النيران "فرقة جايبور مهراجا براس" تشاسيبير بلجيكا، مؤلف: لوك فياتور، صورة برخصة المشاع الإبداعي Attribution-Share Alike 3.0 Unported. يمكنك الاطّلاع على الموقع الإلكتروني للمؤلف هنا.

الشكل 2. صورة رسومية بدقة 1024 × 752 بكسل صور مجمّعة من أدوات الرسم البياني من Google

لقياس الإمكانيات الكاملة للتنسيق الحالي، PNG، أعيدنا ضغط جميع صور PNG الأصلية هذه باستخدام عدة طرق:

  1. تثبيت بمعدل 8 بت لكل مكون: تحويل الإدخال.png - العمق 8 الناتج.png

  2. ImageMagick(1) بدون مؤشرات متنبئة: conversion conversion.png -quality 90 exit-candidate.png

  3. ImageMagick مع أدوات التنبؤ التكيُّفية: conversion import.png -quality 95 exit-candidate.png

  4. Pngcrush(2): pngcrush -brute -rem tEXt -rem tIME -rem iTXt -rem zTXt -rem gAMA -rem cHRM -rem iCCP -rem sRGB -rem alla -remcan text-diedit.png حالية.

  5. ZopfliPNG(3): zopflipng --lossy_transparentدخول.png الناتج-candidate.png

  6. ZopfliPNG مع جميع الفلاتر: zopflipng --iterations=500 --filters=01234mepb --lossy_8bit --lossy_transparent فيما يتعلق بالمخرجات-candidate.png

النتائج

لقد حسبنا كثافة الضغط لكل صورة من الصور في مجموعة الويب، مقارنةً بأحجام صور PNG المحسّنة لثلاث طرق:

  1. تنسيق WebP بدون فقدان البيانات (الإعدادات التلقائية)

  2. تنسيق WebP بدون فقدان البيانات مع الحجم الأصغر (-m 6 -q 100)

  3. الأفضل في WebP مع فقدان البيانات في WebP مع إصدار ألفا (الإعدادات التلقائية).

وقمنا بفرز عوامل الضغط هذه، ورسمناها في الشكل 3.

الشكل 3. تُستخدم كثافة ضغط PNG كمرجع عند 1.0. يتم ضغط الصور نفسها باستخدام طريقتي فقدان البيانات وعدم فقدان البيانات. بالنسبة إلى كل صورة، يتم حساب نسبة الحجم إلى الملف المضغوط بتنسيق PNG، ويتم فرز نسب الحجم، وعرضها لكل من الضغط بدون فقدان البيانات أو الضغط مع فقدان البيانات. بالنسبة إلى منحنى الضغط مع فقدان البيانات، يتم اختيار الضغط بدون فقدان البيانات في الحالات التي ينتج فيها صورة WebP أصغر.

ولا يتعدّى تنسيق WebP كثافة ضغط PNG لكل من libpng بالحد الأقصى للجودة (تحويل) بالإضافة إلى ZopfliPNG (الجدول 1)، مع سرعات الترميز (الجدول 2) وفك الترميز (الجدول 3) المشابهة تقريبًا لسرعات PNG.

الجدول 1. متوسط وحدات البت لكل بكسل للمجموعات الثلاث باستخدام طرق الضغط المختلفة.

مجموعة الصور تحويل -الجودة 95 ZopfliPNG WebP بدون فقدان البيانات -q 0 -m 1 تنسيق WebP بدون فقدان البيانات (الإعدادات التلقائية) WebP بدون فقدان البيانات -m 6 -q 100 فقدان البيانات بتنسيق WebP مع استخدام ألفا
صورة 12.3 12.2 10.5 10.1 9.83 0.81
مشاهد قاسية 1.36 1.05 0.88 0.71 0.70 0.51
الويب 6.85 5.05 4.42 4.04 3.96 1.92

الجدول 2. متوسط وقت الترميز لمجموعة الضغط ولطرق الضغط المختلفة.

مجموعة الصور تحويل -الجودة 95 ZopfliPNG WebP بدون فقدان البيانات -q 0 -m 1 تنسيق WebP بدون فقدان البيانات (الإعدادات التلقائية) WebP بدون فقدان البيانات -m 6 -q 100 فقدان البيانات بتنسيق WebP مع استخدام ألفا
صورة 0.500 ثانية 8.7 ثانية 0.293 ثانية 0.780 ثانية 8.440 ثانية 0.111 ثانية
مشاهد قاسية 0.179 ثانية 14.0 ثانية 0.065 ثانية 0.140 ثانية 3.510 ثانية 0.184 ثانية
الويب 0.040 ثانية 1.55 ثانية 0.017 ثانية 0.072 ثانية 2.454 ثانية 0.020 ثانية

الجدول 3. متوسط وقت فك الترميز للمجموعات الثلاث لملفات الصور المضغوطة بطرق وإعدادات مختلفة.

مجموعة الصور تحويل -الجودة 95 ZopfliPNG WebP بدون فقدان البيانات -q 0 -m 1 تنسيق WebP بدون فقدان البيانات (الإعدادات التلقائية) WebP بدون فقدان البيانات -m 6 -q 100 فقدان البيانات بتنسيق WebP مع استخدام ألفا
صورة 0.027 ثانية 0.026 ثانية 0.027 ثانية 0.026 ثانية 0.027 0.012 ثانية
الرسومات 0.049 ثانية 0.015 ثانية 0.005 ثانية 0.005 ثانية 0.003 0.010 ثانية
الويب 0.007 ثانية 0.005 ثانية 0.003 ثانية 0.003 ثانية 0.003 0.003 ثانية

تحديد ملامح الذاكرة

بالنسبة إلى ملف تعريف الذاكرة، سجّلنا الحد الأقصى لحجم مجموعة المقيمين كما تم الإبلاغ عنه بواسطة /usr/bin/time -v

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

قاسنا من 10 إلى 19 مبيبايت للترميز libpng وZopfliPNG، و25 ميبيبايت و32 ميبيبايت للترميز بدون فقدان البيانات بتنسيق WebP في الإعدادات -q 0 -m 1 و -q 95 (بالقيمة التلقائية -m)، على التوالي.

في تجربة لفك الترميز، استخدم تحويل -تغيير الحجم 1x1 إلى 10 ميبيبايت لكل من ملفات libpng وZopfliPNG التي يتم إنشاؤها بتنسيق PNG. من خلال استخدام cwebp، يستخدم فك التشفير بدون فقدان البيانات لتقنية WebP 7 ميبيبايت وفك ترميز مع فقدان 3 ميبيبايت.

الاستنتاجات

لقد أظهرنا أن سرعة الترميز وفك الترميز تقعان في نفس نطاق ملف PNG. ستلاحظ زيادة في معدّل استخدام الذاكرة خلال مرحلة التشفير، إلا أنّ مرحلة فك الترميز تُظهر انخفاضًا صحيًا، على الأقل عند مقارنة سلوك cwebp بسلوك تحويل ImageMagick.

تكون كثافة الضغط أفضل لأكثر من 99% من صور الويب، ما يشير إلى أنّه يمكن تغيير أي صورة بسهولة نسبيًا من تنسيق PNG إلى WebP.

عند تشغيل WebP بالإعدادات التلقائية، يتم ضغطه بنسبة% 42 أفضل من libpng، ويتم ضغطه بنسبة% 23 أفضل من ZopfliPNG. يشير هذا إلى أن تنسيق WebP يعِد بتسريع المواقع الإلكترونية التي تعرض صورًا ثقيلة.

المراجع

  1. ImageMagick

  2. تطبيق Pngcrush

  3. ZopfliPNG

في ما يلي دراسات مستقلة لا تخضع لرعاية Google، وليس بالضرورة أن تدعم Google صحة جميع محتوياتها.

  1. مدوّنة "يواف وايس"