Menerapkan AVIF untuk situs web yang lebih responsif

Info terbaru tentang cara AVIF diadopsi dalam ekosistem.

Jani Huoponen
Jani Huoponen
Vignesh Venkatasubramanian
Vignesh Venkatasubramanian

AVIF adalah format gambar baru yang dengan cepat mendapatkan popularitas di web karena rasio kompresinya yang tinggi, performa yang efisien, dan penggunaan yang luas. AVIF adalah format gambar terbuka bebas royalti yang didasarkan pada codec video AV1 yang distandarisasi oleh Alliance for Open Media. Postingan blog ini akan memberikan ringkasan tentang bagaimana AVIF diadopsi dalam ekosistem, dan manfaat performa serta kualitas seperti apa yang dapat diharapkan developer dari AVIF untuk gambar diam dan animasi.

Sejak diperkenalkannya AVIF di Chrome, Firefox, dan Safari, penggunaan AVIF di web terus berkembang secara stabil; hampir semua browser saat ini mendukung AVIF.

Di Chrome saja, penggunaan AVIF meningkat menjadi sekitar satu persen dalam waktu lebih dari setahun setelah Chrome menambahkan dukungan AVIF dalam versi stabil.

Diagram garis penggunaan AVIF di Chrome dari Mei 2021 hingga Maret 2023. Dukungan telah terus meningkat dari 0% menjadi hanya di bawah 1,4%.

Sejumlah CDN gambar, seperti Akamai, Cloudflare, Cloudinary, dan Imgix saat ini menayangkan gambar AVIF. Dalam postingan blog yang mengumumkan dukungan AVIF, Imgix melaporkan penghematan ukuran file sebesar 60% dibandingkan dengan JPEG dan penghematan sebesar 35% dibandingkan dengan WebP. Penghematan ukuran file ini menghasilkan penghematan penyimpanan yang signifikan, tetapi juga membantu halaman dimuat lebih cepat, sehingga menghasilkan waktu Largest Contentful Paint (LCP) yang lebih cepat. LCP adalah salah satu Data Web Inti, dan menunjukkan seberapa cepat blok konten terbesar di halaman dimuat. Menggunakan codec modern untuk mengompresi gambar adalah salah satu teknik utama untuk mengurangi LCP. Lighthouse adalah alat developer Chrome yang hebat untuk menguji situs web Anda dan untuk melihat berapa penghematan yang dapat dicapai AVIF.

WordPress adalah platform situs yang paling populer di dunia, dan ada sejumlah plugin yang tersedia bagi developer untuk mengonversi gambar mereka ke AVIF, seperti:

Untuk developer yang lebih praktis, alat seperti ImageMagick dan FFmpeg adalah titik awal yang bagus.

Kecepatan encoding AVIF

Kecepatan encoding yang cepat dan kualitas visual yang tinggi sangat penting untuk men-deploy kompresi gambar dalam skala besar. Kecepatan encoding software AVIF telah meningkat secara signifikan selama dua tahun terakhir. Dibandingkan dengan format gambar diam modern lainnya, AVIF menghasilkan file yang lebih kecil dengan kualitas visual yang serupa (lihat grafik berikut, lebih rendah lebih baik) tetapi juga lebih cepat dienkode.

Diagram batang yang membandingkan berbagai ukuran file codec gambar sebagai persentase dari output TurboJPEG. AVIF adalah yang terendah, lalu JPEG XL, lalu WebP, dan terakhir MozJPEG.

Diagram di bawah (semakin tinggi semakin baik) menggambarkan perbandingan kecepatan encoding AVIF dengan format gambar lainnya. Codec generasi sebelumnya seperti WebP mendapatkan manfaat dari algoritma kompresi yang tidak terlalu rumit (tetapi juga kurang efisien). Dengan skema encoding multi-thread, AVIF mencapai performa yang serupa untuk kasus penggunaan umum sekaligus memberikan peningkatan kompresi yang signifikan.

Perbandingan kecepatan encoding codec gambar. Encoder yang dibandingkan adalah AVIF rata-rata, JPEG XL rata-rata, WebP rata-rata (satu thread), dan MozJPEG rata-rata (satu thread). AVIF umumnya merupakan salah satu encoder gambar tercepat dalam hal kualitas terbaik dan upaya default, tetapi merupakan encoder terlambat dari semua encoder untuk performa on-the-fly.

Bagi developer yang tertarik dengan perbandingan kecepatan encoding dan kualitas visual yang lebih mendetail, situs Image Coding Comparisons berisi hasil benchmark yang dapat direproduksi.

Meskipun implementasi software untuk codec gambar modern seperti AVIF dan WebP dioptimalkan untuk arsitektur prosesor x86 dan ARM, mengompresi gambar dalam jumlah besar dalam skala besar dapat memerlukan banyak biaya. Salah satu alternatif untuk mengurangi biaya kompresi adalah dengan mempelajari akselerasi hardware. Bluedot telah mengembangkan encoder Pulsar-AVIF yang dipercepat hardware dan berjalan di FPGA yang dapat diprogram, seperti Alveo U250 AMD. Dibandingkan dengan avifenc berbasis software, Pulsar-AVIF memberikan peningkatan kecepatan 7 hingga 23 kali lipat dengan efisiensi kompresi yang serupa.

Encoder Waktu encoding (md) Frame per detik Pemakaian CPU Spesifikasi hardware
Pulsar-AVIF
(FPGA)
60 409,85 305% AMD Alveo U250 1ea + Intel(R) Xeon(R)
Platinum 8171 CPU pada 2,6 GHz, 10 core
avifenc
(libaom)
405 59,26 3.200% CPU Intel(R) Xeon(R) Platinum 8370C dengan kecepatan
2,8 GHz, 32 core
avifenc
(SVT-AV1)
1325 18.11 3200% CPU Intel(R) Xeon(R) Platinum 8370C dengan kecepatan
2,8 GHz, 32 core
Perbandingan kecepatan encoding AVIF
  • Set pengujian: Kodak (24 gambar 768x512)
  • Mengenkode 24 gambar secara bersamaan (24 proses)
  • Setiap proses encoding software dijalankan dengan 4 thread. (-j 4)


Developer dapat men-deploy encoder Pulsar-AVIF dengan virtual machine cloud, seperti Azure NP-Series.

Fitur AVIF untuk halaman web responsif

AVIF memiliki beberapa fitur menarik yang akan membantu menampilkan halaman web yang lebih responsif. Kali ini, kita akan membahas sedikit tentang AVIF animasi, yang sejauh ini merupakan cara paling efisien untuk menampilkan animasi keren di web.

AVIF Animasi

GIF animasi masih menjadi format populer untuk gambar animasi, meskipun sudah berusia 35 tahun. Kelemahan terbesar dari GIF animasi adalah dukungan untuk 256 warna saja dan kompresi buruk yang menyebabkan ukuran file yang sangat besar sekaligus membatasi resolusi atau kecepatan frame untuk kasus penggunaan praktis. Sebaliknya, coding AVIF animasi sebenarnya sama dengan skema coding video AV1 yang memberikan penghematan ukuran file yang signifikan dibandingkan dengan GIF animasi.

Kami menjalankan benchmark sederhana di mana kami mengenkode serangkaian GIF animasi ke AVIF dan JPEG XL. Selama set pengujian, persentase penghematan ukuran file median adalah sekitar 86% dibandingkan dengan file GIF asli dan sekitar 73% dibandingkan dengan file animasi JPEG XL*.

Perbandingan performa codec gambar animasi. AVIF mengungguli GIF dan JPEG XL dalam hal ukuran file rata-rata dan median.
* Versi libavif dan libjxl: libavif versi 4cff6a3 (libaom versi v3.5.0), libjxl versi 176b1c03. Set pengujian: 15 contoh GIF dari Wikipedia.

Chrome, Firefox, dan Safari semuanya mendukung pemutaran AVIF animasi.

FFmpeg adalah salah satu alat yang digunakan untuk membuat file AVIF animasi, berikut adalah contoh dasar untuk mengonversi GIF ke AVIF menggunakan FFmpeg:

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

$CRF adalah kualitas output yang diinginkan pada skala 0 hingga 63. Nilai yang lebih rendah berarti kualitas yang lebih baik dan ukuran file yang lebih besar. 0 menggunakan kompresi lossless. Mulai dengan nilai 23 untuk file AVIF animasi berukuran kecil.

FFmpeg menggunakan libaom secara default untuk mengenkode gambar AVIF, tetapi juga dapat menggunakan rav1e atau SVT-AV1 jika tersedia. Informasi selengkapnya tentang pilihan encoder, penyesuaian parameter encoding untuk kompromi kecepatan/kualitas dapat ditemukan di panduan encoding AV1 FFmpeg.

Kasus penggunaan lainnya adalah mengemas ulang video AV1 menjadi AVIF tanpa mengenkode ulang file aslinya. Hal ini jauh lebih murah daripada mendekode/mengenkode file AV1 asli dan membuat video AV1 tersedia untuk digunakan dengan elemen <img>. Meneruskan -c:v copy ke FFmpeg dapat melakukannya.

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

Kesimpulan

Penggunaan AVIF di web terus meningkat sejak diluncurkan dan didukung secara luas oleh browser, CDN gambar, plugin WordPress, dan alat encoding. Secara keseluruhan, AVIF adalah pilihan yang tepat untuk menayangkan gambar di web; AVIF cepat dienkode dan didekode sekaligus memberikan kualitas terbaik atau ukuran file terkecil, mana pun yang Anda inginkan untuk situs Anda. AVIF adalah cara paling efisien untuk menayangkan animasi di web. Jika Anda memiliki pertanyaan, komentar, atau permintaan fitur, hubungi kami di mailing list av1-discuss, komunitas GitHub AOM, dan wiki AVIF.

Banner besar dari Unsplash, oleh Amal S .