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

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

Jani Huoponen
Jani Huoponen
Vignesh Venkatasubramanian
Vignesh Venkatasubramanian

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

במקודד זמן קידוד (אלפיות השנייה) פריימים לשנייה ניצול המעבד מפרט החומרה
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 .