Daha duyarlı web siteleri için AVIF'yi dağıtma

AVIF'in ekosistemde nasıl benimsendiğine dair bir güncelleme.

Jani Huoponen
Jani Huoponen
Vignesh Venkatasubramanian
Vignesh Venkatasubramanian

AVIF, yüksek sıkıştırma oranları, verimli performansı ve geniş kullanım alanı nedeniyle web'de hızla popülerlik kazanan yeni bir resim biçimidir. AVIF, Alliance for Open Media tarafından standartlaştırılmış AV1 video codec'ine dayalı açık ve telifsiz bir resim biçimidir. Bu blog yayınında, AVIF'in ekosistemde nasıl benimsendiğine ve geliştiricilerin hareketsiz resimler ve animasyonlar için AVIF'den ne tür performans ve kalite avantajları elde edebileceğine genel bir bakış sunulmaktadır.

AVIF ekosisteminde neler değişti?

Chrome, Firefox ve Safari'de AVIF'in kullanıma sunulmasından bu yana web'de AVIF'in kullanımı giderek artıyor. Günümüzde neredeyse tüm tarayıcılar AVIF'i destekliyor.

Chrome'da AVIF desteğinin kararlı sürüme eklenmesinden bir yıldan kısa bir süre sonra AVIF kullanımı yaklaşık yüzde bire ulaştı.

Mayıs 2021 ile Mart 2023 arasında Chrome'da AVIF kullanımının çizgi grafiği. Destek, %0'dan %1,4'e kadar istikrarlı bir şekilde arttı.

Akamai, Cloudflare, Cloudinary ve Imgix gibi çeşitli resim CDN'leri şu anda AVIF resimleri yayınlamaktadır. Imgix, AVIF desteğini duyuran bir blog yayınında, JPEG'e kıyasla %60, WebP'ye kıyasla ise %35 dosya boyutu tasarrufu sağladığını bildirdi. Bu dosya boyutu tasarrufları, önemli ölçüde depolama alanı tasarrufu sağlar. Ayrıca sayfaların daha hızlı yüklenmesine yardımcı olarak daha hızlı Largest Contentful Paint (LCP) süreleri elde edilmesini sağlar. LCP, Core Web Vitals'dan biridir ve sayfadaki en büyük içerik bloğunun ne kadar hızlı yüklendiğini gösterir. Resimleri sıkıştırmak için modern codec'leri kullanmak, LCP'yi azaltmanın temel tekniklerinden biridir. Lighthouse, web sitenizi test etmek ve AVIF'in ne kadar tasarruf sağlayacağını görmek için mükemmel bir Chrome geliştirici aracıdır.

WordPress, dünyanın en popüler web sitesi platformudur ve geliştiricilerin resimlerini AVIF'ye dönüştürmek için kullanabileceği birçok eklenti mevcuttur. Örneğin:

Daha pratik geliştiriciler için ImageMagick ve FFmpeg gibi araçlar iyi bir başlangıç noktasıdır.

AVIF kodlama hızı

Resim sıkıştırmayı geniş ölçekte dağıtmak için hızlı kodlama hızı ve yüksek görsel kalite önemlidir. AVIF yazılım kodlama hızı son iki yılda önemli ölçüde iyileşti. Diğer modern sabit resim biçimleriyle karşılaştırıldığında AVIF, benzer görsel kaliteye sahip daha küçük dosyalar oluşturur (aşağıdaki grafiğe bakın, düşük olması daha iyidir) ancak aynı zamanda kodlama işlemi daha hızlıdır.

TurboJPEG çıktısının yüzdesi olarak çeşitli resim codec'i dosya boyutlarını karşılaştıran bir çubuk grafik. En düşük kalite AVIF, ardından JPEG XL, WebP ve son olarak MozJPEG'tir.

Aşağıdaki grafikte (daha yüksek değer daha iyidir), AVIF kodlama hızının diğer resim biçimleriyle karşılaştırması gösterilmektedir. WebP gibi önceki nesil codec'ler daha az karmaşık (ancak daha az verimli) sıkıştırma algoritmalarından yararlanır. Çok iş parçacıklı bir kodlama şemasıyla AVIF, yaygın kullanım alanları için benzer performans sağlarken önemli sıkıştırma kazanımları elde eder.

Resim codec'i kodlama hızının karşılaştırması. Karşılaştırılan kodlayıcılar ortalama AVIF, ortalama JPEG XL, ortalama WebP (tek iş parçacığı) ve ortalama MozJPEG'dir (tek iş parçacığı). AVIF, genellikle en iyi kalite ve varsayılan çaba açısından en hızlı resim kodlayıcılarından biridir ancak anında performans için tüm kodlayıcılar arasında en yavaş olanıdır.

Daha ayrıntılı kodlama hızı ve görsel kalite karşılaştırmalarıyla ilgilenen geliştiriciler için Görüntü Kodlama Karşılaştırmaları sitesi, yeniden üretilebilir karşılaştırma sonuçlarını içerir.

AVIF ve WebP gibi modern resim codec'leri için yazılım uygulamaları x86 ve ARM işlemci mimarileri için optimize edilmiş olsa da çok sayıda resmi büyük ölçekte sıkıştırmak hesaplama açısından pahalı olabilir. Sıkıştırma maliyetlerini azaltmanın bir alternatifi de donanım hızlandırmayı keşfetmektir. Bluedot, AMD'nin Alveo U250 gibi programlanabilir FPGA'larda çalışan donanım hızlandırmalı bir Pulsar-AVIF kodlayıcı geliştirdi. Pulsar-AVIF, yazılım tabanlı avifenc ile karşılaştırıldığında benzer sıkıştırma verimliliği ile 7 ila 23 kat daha hızlıdır.

Kodlayıcı Kodlama süresi (ms) Saniyedeki kare sayısı CPU kullanımı Donanım özellikleri
Pulsar-AVIF
(FPGA)
60 409,85 %305 AMD Alveo U250 1 adet + Intel(R) Xeon(R)
2,6 GHz, 10 çekirdekli Platinum 8171 CPU
avifenc
(libaom)
405 59,26 %3.200 Intel(R) Xeon(R) Platinum 8370C CPU
2,8 GHz, 32 çekirdek
avifenc
(SVT-AV1)
1325 18.11 %3.200 Intel(R) Xeon(R) Platinum 8370C CPU
2,8 GHz, 32 çekirdek
AVIF kodlama hızı karşılaştırması
  • Test grubu: Kodak (768x512 boyutunda 24 resim)
  • 24 görüntüyü aynı anda kodlama (24 işlem)
  • Her yazılım kodlama işlemi 4 iş parçacığı ile yürütülür. (-j 4)


Geliştiriciler, Pulsar-AVIF kodlayıcıyı Azure NP-Series gibi bulut sanal makineleriyle dağıtabilir.

Duyarlı web sayfaları için AVIF özellikleri

AVIF, daha duyarlı web sayfaları yayınlamanıza yardımcı olacak birkaç ilginç özelliğe sahiptir. Bu defa, web'de etkileyici animasyonlar sunmanın açık arayla en verimli yolu olan animasyonlu AVIF'leri inceleyeceğiz.

Animasyonlu AVIF

35 yıllık geçmişe sahip olmasına rağmen animasyonlu GIF, animasyonlu resimler için popüler bir biçim olmaya devam ediyor. Animasyonlu GIF'lerin en büyük dezavantajları, yalnızca 256 rengi desteklemesi ve çok büyük dosya boyutlarına yol açan düşük sıkıştırma oranıyla birlikte pratik kullanım alanları için çözünürlüğü veya kare hızını sınırlamasıdır. Buna karşılık, animasyonlu AVIF kodlaması aslında animasyonlu GIF'ye kıyasla önemli ölçüde dosya boyutu tasarrufu sağlayan AV1 video kodlama şemasıyla aynıdır.

Bir dizi animasyonlu GIF'i hem AVIF hem de JPEG XL olarak kodladığımız basit bir karşılaştırma testi çalıştırdık. Test kümesinde, ortanca dosya boyutu tasarruf yüzdesi orijinal GIF dosyalarıyla karşılaştırıldığında yaklaşık% 86, animasyonlu JPEG XL dosyalarıyla karşılaştırıldığında ise yaklaşık% 73 olmuştur.*

Animasyonlu resim codec'i performansının karşılaştırması. AVIF, hem ortalama hem de ortanca dosya boyutu açısından GIF ve JPEG XL'den daha iyi performans gösterir.
* libavif ve libjxl sürümleri: libavif sürümü 4cff6a3 (libaom sürümü v3.5.0), libjxl sürümü 176b1c03. Test seti: Wikipedia'dan 15 örnek GIF.

Chrome, Firefox ve Safari, animasyonlu AVIF oynatma işlemlerini destekler.

FFmpeg, animasyonlu AVIF dosyaları oluşturmak için kullanılabilecek araçlardan biridir. Aşağıda, FFmpeg'i kullanarak bir GIF'i AVIF'ye dönüştürmeyle ilgili temel bir örnek verilmiştir:

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

$CRF, 0 ile 63 arasında bir ölçekte istenen çıkış kalitesidir. Düşük değerler daha iyi kalite ve daha büyük dosya boyutu anlamına gelir. 0, kaybetsiz sıkıştırma özelliğini kullanmaktadır. Küçük animasyonlu AVIF dosyaları için 23 değerinden başlayın.

FFmpeg, AVIF resimlerini kodlamak için varsayılan olarak libaom'u kullanır ancak mevcut olduğunda rav1e veya SVT-AV1'i de kullanabilir. Kodlayıcı seçenekleri ve hız/kalite dengesi için kodlama parametrelerini ayarlama hakkında daha fazla bilgiyi FFmpeg'in AV1 kodlama kılavuzunda bulabilirsiniz.

Orijinal dosyayı yeniden kodlamadan bir AV1 videosunu AVIF olarak yeniden paketlemek de bir kullanım alanıdır. Bu işlem, orijinal AV1 dosyasının kodunu çözmekten/kodlamaktan çok daha ucuzdur ve AV1 videosunun <img> öğesiyle kullanılmasını sağlar. -c:v copy değerini FFmpeg'e ileterek bunu yapabilirsiniz.

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

Sonuçlar

Web'de AVIF kullanımı, kullanıma sunulmasından bu yana giderek artıyor ve tarayıcılar, resim CDN'leri, WordPress eklentileri ve kodlama araçları tarafından yaygın olarak destekleniyor. Genel olarak AVIF, web'de resim yayınlamak için mükemmel bir seçimdir. AVIF, kodlama ve kod çözme işlemini hızlı bir şekilde gerçekleştirirken web siteniz için tercih ettiğiniz en iyi kaliteyi veya en küçük dosya boyutunu sunar. AVIF, web'de animasyon yayınlamanın en verimli yoludur. Sorularınız, yorumlarınız veya özellik istekleriniz varsa lütfen av1-Tartışma posta listesi, AOM GitHub topluluğu ve AVIF wiki üzerinden bize ulaşın.

Amal S tarafından Unsplash'tan alınan lokomotif resim.