פריסת AVIF באתרים רספונסיביים יותר

עדכון על אופן ההטמעה של AVIF בסביבה העסקית.

Jani Huoponen
Jani Huoponen
Vignesh Venkatasubramanian
Vignesh Venkatasubramanian

AVIF הוא פורמט תמונה חדש שצובר פופולריות במהירות באינטרנט בגלל שיעורי הדחיסה הגבוהים שלו, הביצועים היעילים והשימוש הנרחב בו. AVIF הוא פורמט תמונות פתוח ללא תמלוגים שמבוסס על קודק הווידאו AV1 שהוגדר כתקן על ידי Alliance for Open Media. בפוסט הזה בבלוג נספק סקירה כללית על אימוץ AVIF בסביבה העסקית, ועל היתרונות של AVIF לביצועים ולאיכות של תמונות סטילס ואנימציות.

מאז ההשקה של AVIF ב-Chrome, ב-Firefox וב-Safari, השימוש ב-AVIF באינטרנט גדל בהתמדה. כמעט כל הדפדפנים תומכים ב-AVIF היום.

ב-Chrome בלבד, השימוש ב-AVIF גדל לכ-1% תוך קצת יותר משנה אחרי שנוספה ל-Chrome תמיכה ב-AVIF בגרסה היציבה.

תרשים קו של השימוש ב-AVIF ב-Chrome ממאי 2021 עד מרץ 2023. התמיכה גדלה בהתמדה מ-0% לקצת פחות מ-1.4%.

כמה שירותי CDN לתמונות, כמו Akamai,‏ Cloudflare,‏ Cloudinary ו-Imgix, כבר מציגים תמונות בפורמט AVIF. בפוסט בבלוג שמכריז על תמיכה ב-AVIF, חברת Imgix דיווחה על חיסכון של 60% בגודל הקובץ בהשוואה ל-JPEG וחיסכון של 35% בהשוואה ל-WebP. החיסכון בגודל הקבצים מוביל לחיסכון משמעותי בנפח האחסון, אבל הוא גם עוזר לדפים להיטען מהר יותר, וכך מפחית את זמני ה-Largest Contentful Paint (LCP). מדד LCP הוא אחד ממדדי הליבה לבדיקת חוויית המשתמש באתר, והוא מייצג את המהירות שבה נטען בלוק התוכן הגדול ביותר בדף. שימוש בקודקים מודרניים לדחיסת תמונות הוא אחת מהשיטות העיקריות להפחתת זמן ה-LCP. Lighthouse הוא כלי מצוין למפתחי Chrome לבדיקה של האתר שלכם ולבדיקה של החיסכון שאפשר להשיג באמצעות AVIF.

WordPress היא פלטפורמת האתרים הפופולרית ביותר בעולם, ויש מספר פלאגינים שזמינים למפתחים כדי להמיר את התמונות שלהם ל-AVIF, כמו:

למפתחים שמעדיפים לעבוד באופן מעשי, כלים כמו ImageMagick ו-FFmpeg הם נקודת התחלה טובה.

מהירות קידוד AVIF

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

תרשים עמודות שמציג השוואה בין גדלים שונים של קובצי קודיק תמונה כאחוז מהפלט של TurboJPEG. AVIF הוא הפורמט עם הדירוג הנמוך ביותר, אחריו JPEG XL, אחר כך WebP ולבסוף MozJPEG.

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

השוואה בין מהירות הקידוד של קודיקים של תמונות. המקודדים להשוואה הם מסוג AVIF ממוצע, JPEG XL ממוצע, WebP ממוצע (שרשור אחד) ו-MozJPEG ממוצע (שרשור אחד). בדרך כלל, AVIF הוא אחד מקודקי התמונות המהירים ביותר מבחינת האיכות הטובה ביותר והמאמץ שמתבצע כברירת מחדל, אבל הוא האיטי מבין כל הקודקים מבחינת הביצועים בזמן אמת.

למפתחים שמעוניינים בהשוואות מפורטות יותר של מהירות הקידוד ואיכות התמונה, האתר Image Coding Comparisons מכיל תוצאות של מדדי ביצועים שאפשר לשחזר.

הטמעות תוכנה של קודיקים מודרניים לתמונות, כמו AVIF ו-WebP, מותאמות לארכיטקטורות של מעבדי x86 ו-ARM, אבל דחיסת כמויות אדירות של תמונות בקנה מידה רחב יכולה להיות יקרה מבחינה חישובית. אחת מהאפשרויות לצמצום עלויות הדחיסה היא לבדוק את שיפור המהירות באמצעות חומרה. חברת Bluedot פיתחה מקודד Pulsar-AVIF שמואץ בחומרה שפועל ב-FPGAs לתכנות, כמו Alveo U250 של AMD. בהשוואה ל-avifenc מבוסס תוכנה, Pulsar-AVIF מספק שיפור מהירות פי 7 עד 23 עם יעילות דחיסה דומה.

במקודד קידוד הזמן (באלפיות השנייה) פריימים לשנייה ניצול המעבד (CPU) מפרט החומרה
Pulsar-AVIF
(FPGA)
60 409.85 305% AMD Alveo U250 1ea + Intel(R) Xeon(R)
Platinum 8171 CPU at 2.6GHz, 10 cores
avifenc
(libaom)
405 59.26 3,200% מעבד Intel(R) Xeon(R) Platinum 8370C בקצב
2.8GHz, 32 ליבות
avifenc
(SVT-AV1)
1325 18.11 3,200% מעבד Intel(R) Xeon(R) Platinum 8370C בקצב
2.8GHz, 32 ליבות
השוואה בין מהירויות קידוד של קובצי AVIF
  • קבוצת בדיקה: Kodak‏ (24 תמונות בגודל 768x512)
  • קידוד של 24 תמונות בו-זמנית (24 תהליכים)
  • כל תהליך קידוד תוכנה מבוצע באמצעות 4 שרשורים. (-j 4)


מפתחים יכולים לפרוס מקודד Pulsar-AVIF באמצעות מכונות וירטואליות בענן, כמו Azure NP-Series.

תכונות AVIF לדפי אינטרנט רספונסיביים

ל-AVIF יש כמה תכונות מעניינות שיעזרו להציג דפי אינטרנט עם תגובה מהירה יותר. הפעם נתעמק קצת בקובצי AVIF מונפשים, שהם ללא ספק הדרך היעילה ביותר להציג אנימציות מגניבות באינטרנט.

קובץ AVIF מונפש

GIF מונפש הוא עדיין פורמט פופולרי לתמונות מונפשות, למרות שהוא קיים כבר 35 שנה. החסרונות הגדולים ביותר של קובצי GIF מונפשים הם תמיכה ב-256 צבעים בלבד ודחיסה נמוכה מדי שמובילה לקבצים גדולים מאוד, וגם מגבילה את הרזולוציה או את קצב הפריימים בתרחישים לדוגמה. לעומת זאת, קידוד של אנימציות בפורמט AVIF זהה למעשה לתוכנית הקידוד של סרטוני AV1, שמספקת חיסכון משמעותי בגודל הקובץ בהשוואה ל-GIF מונפש.

הרצנו בדיקת ביצועים פשוטה שבה קידודנו קבוצה של קובצי GIF מונפשים גם ל-AVIF וגם ל-JPEG XL. בקבוצת הבדיקה, אחוז החיסכון הממוצע בגודל הקובץ היה כ-86% בהשוואה לקובצי GIF מקוריים וכ-73% בהשוואה לקובצי JPEG XL מונפשים*.

השוואה של ביצועי הקודקים של תמונות מונפשות. פורמט AVIF עדיף על GIF ו-JPEG XL מבחינת גודל הקובץ הממוצע והחציוני.
* הגרסאות של libavif ו-libjxl: libavif בגרסה 4cff6a3 (libaom בגרסה v3.5.0), libjxl בגרסה 176b1c03. קבוצת בדיקה: 15 קובצי GIF לדוגמה מ-Wikipedia.

Chrome, Firefox ו-Safari תומכים בהפעלות של קובצי AVIF עם אנימציה.

FFmpeg הוא אחד הכלים ליצירת קובצי AVIF מונפשים. הנה דוגמה בסיסית להמרת קובץ GIF ל-AVIF באמצעות FFmpeg:

ffmpeg -i "$INPUT_GIF" -crf $CRF -b:v 0 "$OUTPUT.avif"

$CRF היא איכות הפלט הרצויה בסולם של 0 עד 63. ערכים נמוכים יותר מציינים איכות טובה יותר וגודל קובץ גדול יותר. אפליקציית 0 משתמשת בדחיסת נתונים ללא אובדן נתונים. כדאי להתחיל עם הערך 23 לקבצי AVIF קטנים עם אנימציה.

ברירת המחדל של FFmpeg היא להשתמש ב-libaom לקידוד תמונות AVIF, אבל אפשר גם להשתמש ב-rav1e או ב-SVT-AV1 כשהם זמינים. מידע נוסף על אפשרויות הקידוד ועל כוונון פרמטרים של קידוד לצורך איזון בין מהירות לבין איכות זמין במדריך של FFmpeg לקידוד AV1.

תרחיש לדוגמה נוסף הוא אריזה מחדש של סרטון AV1 בפורמט AVIF בלי לקודד מחדש את הקובץ המקורי. הפתרון הזה זול בהרבה מפענוח או קידוד של קובץ AV1 המקורי, והוא מאפשר להשתמש בסרטון AV1 עם האלמנט <img>. אפשר לעשות זאת על ידי העברת -c:v copy ל-FFmpeg.

ffmpeg -i "$INPUT_AV1_VIDEO" -c:v copy -an "$OUTPUT.avif"

מסקנות

השימוש ב-AVIF באינטרנט השתפר בהתמדה מאז ההשקה, ונתמך באופן נרחב על ידי דפדפנים, רשתות CDN של תמונות, יישומי פלאגין של WordPress וכלי קידוד. בסיכום, AVIF הוא בחירה מצוינת להצגת תמונות באינטרנט. הקודק של AVIF מאפשר קידוד ופענוח מהירים, תוך שמירה על האיכות הטובה ביותר או על גודל הקובץ הקטן ביותר, בהתאם לבחירה שלכם לאתר. AVIF היא הדרך היעילה ביותר להעביר אנימציות באינטרנט. אם יש לכם שאלות, תגובות או בקשות להוספת תכונות, אתם יכולים לפנות אלינו ברשימת התפוצה av1-discuss, בקהילת AOM ב-GitHub ובוויקיפדיה של AVIF.

התמונה הראשית (Hero) מ-Unsplash, מאת Amal S .