מהו קובץ WEBP?
WebP, שהוצגה על ידי גוגל, הוא פורמט קובץ תמונה אינטרנטי רסטר מודרני המבוסס על דחיסה נטולת אובדן והפסד. זה מספק את אותה איכות תמונה תוך הקטנה ניכרת של גודל התמונה. מכיוון שרוב דפי האינטרנט משתמשים בתמונות כייצוג יעיל של נתונים, השימוש בתמונות WebP בדפי אינטרנט מביא לטעינה מהירה יותר של דפי אינטרנט. לפי Google, תמונות ללא אובדן WebP קטנות ב-26% בהשוואה ל-PNGs, בעוד שתמונות עם אובדן WebP קטנות ב-25-34% מתמונות JPEG דומות. השוואת התמונות מבוססת על אינדקס הדמיון המבני (SSIM) בין WebP לפורמטים אחרים של קבצי תמונה. WebP הוא פרויקט אחות של WebM פורמט מכיל מולטימדיה.
סקירה כללית של תכונות WebP
תמונות WebP משתמשות בתהליך הדחיסה המבוסס על חיזוי של פיקסלים מהבלוקים שמסביבן, וכתוצאה מכך יש להשתמש בפיקסלים מספר פעמים בקובץ בודד. הוא תומך בתמונות מונפשות וצפוי לתמוך בתכונות נוספות בעתיד. Google העמידה את קוד המקור באופן מקוון עבור המקודד והמפענח שלה כדי לשמש במידת הצורך. תמונת WebP מספקת תמיכה עבור:
- דחיסה מאבדת: הדחיסה המאבדת מבוססת על קידוד מסגרת מפתח VP8. VP8 הוא פורמט דחיסת וידאו שנוצר על ידי On2 Technologies כיורש לפורמטים VP6 ו-VP7.
- דחיסה ללא הפסדים: פורמט הדחיסה ללא הפסדים פותח על ידי צוות WebP.
- שקיפות: ערוץ אלפא של 8 סיביות שימושי לתמונות גרפיות. ניתן להשתמש בערוץ האלפא יחד עם RGB אובדן, תכונה שאינה זמינה כרגע בשום פורמט אחר.
- אנימציה: זה תומך בתמונות מונפשות בצבע אמיתי.
- מטא נתונים: ייתכן שיש לו מטא נתונים של EXIF ו-XMP (בשימוש על ידי מצלמות, למשל).
- פרופיל צבע: ייתכן שיש לו פרופיל ICC מוטבע.
דחיסת WebP Lossy משתמשת בקידוד חזוי כדי לקודד תמונה, אותה שיטה המשמשת את Codec הווידאו VP8 כדי לדחוס פריימים מפתח בסרטוני וידאו. קידוד חזוי משתמש בערכים בלוקים שכנים של פיקסלים כדי לחזות את הערכים בבלוק, ולאחר מכן מקודד רק את ההבדל.
דחיסת WebP ללא אובדן משתמשת בשברי תמונה שכבר נראו על מנת לשחזר בדיוק פיקסלים חדשים. זה יכול גם להשתמש בפלטה מקומית אם לא נמצא התאמה מעניינת.
פורמט קובץ
פורמט הקובץ WebP מבוסס על פורמט המסמך RIFF (פורמט קובץ החלפת משאבים). מיכל ה-WebP מספק תמיכה עבור תכונות נוספות ומעבר להכיל תמונה בודדת המקודדת כמסגרת מפתח VP8. המרכיב הבסיסי של קובץ RIFF הוא נתח המורכב מ:
שדה | תיאור |
---|---|
Chunk FourCC: 32 סיביות | קוד ASCII בן ארבעה תווים המשמש לזיהוי נתח |
גודל הנתח: 32 סיביות (uint32) | גודל הנתח לא כולל שדה זה, מזהה הנתח או הריפוד |
Chunk Payload: Chunk Size bytes | מטען הנתונים. אם גודל הנתח הוא מוזר, יתווסף בייט ריפוד יחיד ~-~- שאמור להיות 0 ~-~- |
ChunkHeader (‘ABCD’) | משמש לתיאור כותרת FourCC ו-Chunk Size של נתחים בודדים, כאשר ‘ABCD’ הוא ה-FourCC עבור הנתח. גודלו של רכיב זה הוא 8 בתים. |
כותרת WebP
כותרת קובץ WebP היא כדלקמן:
- כותרת RIFF - 32 סיביות המייצגות את תווי ASCII ‘R’ ‘I’ ‘F’ ‘F’
- גודל קובץ - 32 ביטים (uint32) המייצגים את גודל הקובץ בבתים החל מ-offset 8. הערך המרבי של שדה זה הוא 2^32 פחות 10 בתים ולכן גודל הקובץ כולו הוא לכל היותר 4GiB מינוס 2 בתים .
- ‘WEBP’ - 32 סיביות המייצגות את תווי ASCII ‘W’ ‘E’ ‘B’ ‘P’
פורמט קובץ אובדן
תמונות WebP משתמשות בפורמט הקובץ ההפסדי אם התמונה מבוססת על קידוד הפסד ואינה דורשת תכונות מתקדמות/מורחבות כגון שקיפות, הנפשה, אלפא וכו’. תמונות הפסדיות קטנות יותר ונתמכות גם על ידי היישומים הישנים יותר.
קובץ ה-WebP, במקרה זה, מורכב מ:
- כותרת קובץ WebP של 12 בתים
- VP8 Chunk
מדריך לפורמט ופענוח נתונים של VP8 ממחיש את מפרטי פורמט זרם הסיביות של VP8.
פורמט קובץ ללא אובדן
פריסה זו משמשת כאשר התמונה מבוססת על קידוד חסר הפסד ואין צורך בתכונות המתקדמות שמספק הפורמט החיצוני. עם זאת, ייתכן שיישומים ישנים יותר לא יוכלו לקרוא קבצים כאלה.
קובץ ה-WebP, במקרה זה, מורכב מ:
- כותרת קובץ WebP של 12 בתים
- VP8L Chunk