מחקר על דחיסת WebP

מבוא

אנחנו מבצעים הערכה השוואתית של דחיסת תמונות ב-WebP וב-JPEG על סמך המקודד החדש שהשקנו ב-libwebp. המטרה היא להריץ קבוצה של ניסויים שקל לחזור עליהם באמצעות כלים שזמינים לציבור, ולהשוות את דחיסת התמונה שמתקבלת באמצעות WebP ו-JPEG.

המחקר ההשוואתי הקודם של WebP התמקד בהערכת מספר גדול של תמונות, ובוצע על מקורות JPEG שנסרקו מהאינטרנט. JPEG הוא פורמט דחיסת נתונים עם אובדן נתונים, והוא מציג למקור ארטיפקטים לדחיסה. בנוסף, בהתחלה השתמשנו במדד האיכות 'יחס שיא בין אות לרעש' או PSNR. ל-PSNR יש כמה חסרונות כשהוא משמש כמדד איכות של תמונות. על סמך משוב מהקהילה, אנחנו עורכים ניסויים בתמונות PNG, כולל תמונות שזמינות בכמה ערכות בדיקה סטנדרטיות. במחקר הזה אנחנו משתמשים ב'דמיון מבני' או ב-SSIM כמדד האיכות. SSIM נחשב מדד טוב יותר לאיכות חזותית.

מתודולוגיה

נתאר שני סוגים של הערכות. במקרה הראשון, אנחנו בוחנים את הדחיסה הנוספת שבוצעה על ידי WebP באותה רמת איכות של JPEG. באופן ספציפי, אנחנו יוצרים תמונות WebP באיכות זהה (בהתאם למדד SSIM) כמו התמונות בפורמט JPEG, ולאחר מכן משווים בין גודלי הקבצים של תמונות WebP ו-JPEG. במקרה השני, אנחנו מנתחים את ערכי ה-SSIM לעומת הביטים לפיקסל (bpp) עבור WebP ו-JPEG. בתרשימים האלה מוצג ההבדל בין עיוות שער של WebP ו-JPEG.

מערכי הנתונים של הניסויים כוללים תמונות בפורמט PNG. התמונות נלקחו מחבילות של תמונות בדיקה רגילות שנגישים לציבור, וכן מאוסף גדול של תמונות PNG שנסרקו מהאינטרנט.

כל ניסוי כולל הרצת קבוצה של פקודות. אנחנו משתמשים רק בכלי שורת הפקודה שזמינים באופן ציבורי כדי שהניסויים יוכלו לשכפל אותם באופן סביר לאחרים. כלי שורת הפקודה המשמשים לניסוי זה הם:

  • identify ו-convert הם כלי שורת הפקודה שהם חלק מ-ImageMagick. לצורך הניתוח הזה השתמשנו בגרסה 6.5.7. השתמשנו ב-convert כדי להמיר בין פורמט PNG ל-PPM. השתמשנו ב-identify כדי לחלץ את פרטי הרוחב והגובה של תמונה.

  • cwebp ו-dwebp הם כלי שורת פקודה שהם חלק מספריית libwebp שהשקנו ברבעון הראשון של 2011. השתמשנו בגרסה 0.1.2 של הספרייה. השתמשנו ב-cwebp וב-dwebp כדי לקודד ולפענח את התמונות מסוג WebP. השתמשנו בפרמטרים של הקידוד והפענוח שמוגדרים כברירת מחדל בכלים האלה.

  • cjpeg ו-djpeg הם כלי שורת הפקודה שהם חלק מהספרייה libjpeg. השתמשנו בגרסה 6b של הספרייה. השתמשנו ב-cjpeg וב-djpeg כדי לקודד ולפענח תמונה בפורמט JPEG. השתמשנו ב-cjpeg עם הדגל -optimize כדי לבצע אופטימיזציה לגודל הקבצים. לכל הפרמטרים האחרים מגדירים ערכי ברירת מחדל.

איכות התמונה נמדדה באמצעות SSIM. כפי שצוין קודם, SSIM מקובל בדרך כלל כמדד איכות טוב יותר מ-PSNR. לצורך חישוב אינדקס SSIM השתמשנו בהטמעה שזמינה באופן ציבורי ב-C++ . הקורא יכול להוריד את הסקריפטים של Python שבהם השתמשנו בניסויים ממאגר הקוד, לצורך עיון.

מערכי נתונים של תמונות

בחרנו את קבוצות הנתונים כדי להעריך אוספים רגילים של תמונות לבדיקה, וגם כדי להעריך אוסף גדול של תמונות. בהמשך מופיעה הרשימה של מערכי הנתונים ששימשו בניסויים.

  1. Lenna: תמונה של Lenna נפוצה ( 512 x 512 פיקסלים).

  2. Kodak: 24 תמונות מתוך חבילת התמונות של Koodak true.

  3. Tecnick: 100 תמונות מהאוסף הזמינות בכתובת Tecnick.com. השתמשנו ב-100 תמונות צבעי RGB בגודל מקורי.

  4. Image_crawl: כדי לבדוק מספר גדול של תמונות, אספנו דגימה אקראית של תמונות PNG ממסד הנתונים של סריקת האינטרנט של חיפוש התמונות של Google. רוב תמונות ה-PNG שנסרקו הן סמלים, גרפיקה, תרשימים, מסמכים סרוקים וכו'. עם זאת, רוב התמונות באוספי הבדיקה הרגילים הם כמו צילומים ולא תמונות שנוצרו על ידי מחשב. כדי שמערך הנתונים יהיה דומה באופיו לחבילות הבדיקה הרגילות, הפעלנו אלגוריתם של זיהוי פנים על תמונות ה-PNG של הניסוי ושקלנו רק את התמונות (כ-11,000) שעברו את בדיקת הזיהוי.

ניסוי 1: WebP לעומת JPEG במדד Equal SSIM

בניסוי הזה אנחנו יוצרים תמונות JPEG ו-WebP לפי ערכי SSIM דומים ומודדים את היחס בין גודל הקבצים. השלבים בניסוי הם:

  1. דוחסים את תמונת ה-PNG של המקור ל-JPEG עם פרמטר איכות קבוע Q ומתעדים את ה-SSIM בין תמונת המקור מסוג PNG לבין תמונת ה-JPEG הדחוסה.

  2. לדחוס את אותה תמונת מקור ל-WebP באמצעות פרמטר איכות להשגת ה-SSIM המתועד למעלה ככל האפשר.

הפעלנו את שני השלבים שלמעלה על כל התמונות במערך הנתונים, ואז מדדנו את גודל הקובץ הממוצע ואת ערך ה-SSIM הממוצעים של תמונות JPEG ו-WebP.

בטבלאות הבאות מוצגות תוצאות הניסוי לשלושה ערכים שונים (50, 75 ו-95) של פרמטר איכות JPEG פרמטרים של איכות 50 ו-95 מייצגים את דחיסת התמונה בקצב העברת נתונים נמוך וגבוה, בהתאמה. כללנו גם את פרמטר האיכות 75 של JPEG, מאחר שבדרך כלל זוהי רמת האיכות המומלצת לתמונות בפורמט JPEG.

טבלה 1: גודל הקובץ הממוצע של WebP ו-JPEG לאותו מדד SSIM שתואם ל-JPEG Q=50

לנה Kodak טקניק Image_crawl
WebP: גודל קובץ ממוצע
(SSIM ממוצע)
17.4 KB
(0.841)
31.0 KB
(0.898)
92.4 KB
(0.917)
6.5 KB
(0.901)
JPEG: גודל קובץ ממוצע
(SSIM ממוצע)
23.5 KB
(0.840)
42.7 KB
(0.897)
124.6 KB
(0.916)
9.9 KB
(0.899)
היחס בין גודל הקובץ של WebP ל-JPEG 0.74 0.72 0.74 0.66

טבלה 2: גודל הקובץ הממוצע של WebP ו-JPEG לאותו מדד SSIM שתואם ל-JPEG Q=75

לנה Kodak טקניק Image_crawl
WebP: גודל קובץ ממוצע
(SSIM ממוצע)
26.7 KB
(0.864)
46.5 KB
(0.932)
139.0 KB
(0.939)
9.9 KB
(0.930)
JPEG: גודל קובץ ממוצע
(SSIM ממוצע)
37.0 KB
(0.863)
66.0 KB
(0.931)
191.0 KB
(0.938)
14.4 KB
(0.929)
היחס בין גודל הקובץ של WebP ל-JPEG 0.72 0.70 0.73 0.69

טבלה 3: גודל הקובץ הממוצע של WebP ו-JPEG לאותו מדד SSIM שתואם ל-JPEG Q=95

לנה Kodak טקניק Image_crawl
WebP: גודל קובץ ממוצע
(SSIM ממוצע)
74.3 KB
(0.910)
118.0 KB
(0.978)
356.0 KB
(0.970)
23.4 KB
(0.969)
JPEG: גודל קובץ ממוצע
(SSIM ממוצע)
104 KB
(0.907)
162 KB
(0.976)
492 KB
(0.970)
31.3 KB
(0.968)
היחס בין גודל הקובץ של WebP ל-JPEG 0.71 0.73 0.72 0.75

מהטבלאות שלמעלה, ראינו ש-WebP מספק עוד 25%-34% רווחי דחיסה בהשוואה ל-JPEG במדד SSIM שווה או קצת יותר טוב.

ניסוי 2: טבלאות SSIM לעומת BPP ב-WebP ו-JPEG

אנחנו בוחנים את הפשרה של עיוות הקצב בין JPEG ל-WebP. באופן ספציפי, אנחנו בוחנים את תרשים ה-SSIM לעומת הביטים לפיקסל (bpp) בפורמט JPEG ו-WebP. אנחנו לוקחים את תמונת המקור בפורמט PNG, דוחסים אותה ל-JPEG ול-WebP תוך שימוש בכל ערכי האיכות האפשריים (0-100). לאחר מכן, עבור כל ערך איכות, נתנו את ה-SSIM ואת ה-bpp שהושגו עבור JPEG ו-WebP. בנתונים הבאים מוצגים תרשים SSIM לעומת Bpp עבור 3 התמונות שנבחרו מתוך 3 קבוצות הנתונים הציבוריות שהשתמשנו בהן.

איור 1: SSIM לעומת BPP עבור Lenna

sim לעומת bpp עבור Lenna

איור 2: SSIM לעומת BPP עבור kodim19.png ממערך הנתונים של Kodak

sim לעומת bpp ב-Kodim19

איור 3: SSIM לעומת BPP עבור RGB_OR_1200x1200_061.png ממערך הנתונים של Tecnick

SIM לעומת bpp עבור RGB_OR_1200x1200

בנוסף, בדקנו את ההתנהגות הממוצעת של מדד SSIM לעומת גרף BPP בקבוצות הנתונים של Kodak ו-tecnick. כדי להציג את ההתנהגות הממוצעת, אנחנו דוחסים את כל התמונות במערך נתונים באמצעות WebP ו-JPEG ב-100 ערכי איכות שונים. לאחר מכן, אנחנו מציגים בתרשים את ממוצע ה-SSIM וה-bpp לכל ערך איכות. מערך הנתונים של סריקת התמונות מורכב מתמונות הטרוגניות שלא קשורות לצבירת הנתונים. בתרשים הבא מוצגת ההתנהגות הממוצעת של SSIM ו-bpp עבור קבוצות הנתונים של Kodak ו-Tecnick, בהתאמה.

איור 4: SSIM לעומת BPP במערך הנתונים של Kodak

sim לעומת bpp ב-Kodak

איור 5: SSIM לעומת BPP במערך הנתונים של Tecnick

eSIM לעומת bpp במערך הנתונים של Tecnick

באופן כללי, מהתרשימים שלמעלה ניתן לראות שבאופן עקבי WebP דורש פחות ביטים לפיקסל מאשר בפורמט JPEG כדי להשיג את אותו אינדקס SSIM.

סיכום

במחקר בוצעה הערכה של דחיסת WebP בהשוואה ל-JPEG. שמנו לב שהגודל הממוצע של קובץ WebP קטן ב-25%-34% בהשוואה לגודל הקובץ JPEG באינדקס SSIM המקביל. מתרשימי SSIM לעומת bpp הראו שבאופן עקבי WebP דורש פחות ביטים לפיקסל מאשר בפורמט JPEG לאותו אינדקס SSIM. התוצאות האלה מצביעות על כך ש-WebP יכול לספק שיפורי דחיסה משמעותיים לעומת JPEG.


1 Huynh-Thu, Q.; גאנבארי, מ. (2008). "היקף התוקף של PSNR בהערכת האיכות של התמונות/הסרטונים". מכתבים אלקטרוניים 44: 800-801.doi:10.1049/el:20080522.

2 ת. וונג, א. C. Bovik, H. R. שייח' ו-א. פ. Simoncelli, "הערכת איכות תמונות: ממדידת שגיאות ועד לדמיון מבני", עיבוד תמונות, עסקאות IEEE, כרך 13, גיליון 4, pp. 600-612, 2004.