Un aggiornamento sull'adozione di AVIF nell'ecosistema.
AVIF è un nuovo formato immagine che sta rapidamente guadagnando popolarità sul web grazie agli elevati tassi di compressione, alle prestazioni efficienti e all'ampia adozione. AVIF è un formato di immagine aperto ed esente da royalty basato sul codec video AV1 standardizzato da Alliance for Open Media. Questo post del blog fornirà una panoramica dell'adozione di AVIF nell'ecosistema e del tipo di prestazioni e vantaggi in termini di qualità che gli sviluppatori possono aspettarsi da AVIF per immagini fisse e animazioni.
Quali sono le novità dell'ecosistema AVIF?
Dall'introduzione di AVIF in Chrome, Firefox e Safari, l'utilizzo di AVIF sul web è cresciuto in modo costante; quasi tutti i browser supportano attualmente AVIF.
Solo in Chrome, l'utilizzo di AVIF è aumentato fino a circa l'1% in poco più di un anno dopo che Chrome ha aggiunto il supporto di AVIF nella versione stabile.
Attualmente diverse CDN di immagini, come Akamai, Cloudflare, Cloudinary e Imgix, pubblicano immagini AVIF. In un post del blog che annuncia il supporto di AVIF, Imgix ha registrato un risparmio del 60% sulle dimensioni dei file rispetto a JPEG e del 35% rispetto a WebP. La riduzione delle dimensioni dei file comporta un significativo risparmio dello spazio di archiviazione, ma consente anche un caricamento più rapido delle pagine, ottenendo tempi più rapidi per l'utilizzo della Largest Contentful Paint (LCP). LCP è uno dei Core Web Vitals e rappresenta la velocità di caricamento del blocco di contenuti più grande nella pagina. L'utilizzo di codec moderni per comprimere le immagini è una delle tecniche chiave per ridurre il valore LCP. Lighthouse è un ottimo strumento per sviluppatori di Chrome per testare il tuo sito web e vedere quanti risparmi ti potrebbe portare AVIF.
WordPress è la piattaforma per siti web più utilizzata al mondo e sono disponibili diversi plug-in per consentire agli sviluppatori di convertire le immagini in AVIF, ad esempio:
Per gli sviluppatori più pratici, strumenti come ImageMagick e FFmpeg sono un buon punto di partenza.
Velocità di codifica AVIF
La velocità di codifica elevata e l'alta qualità visiva sono fondamentali per implementare la compressione delle immagini su larga scala. La velocità di codifica del software AVIF è migliorata notevolmente negli ultimi due anni. Rispetto ad altri formati di immagini fisse moderni, AVIF produce file più piccoli con una qualità visiva simile (vedi il grafico seguente, più basso è meglio) ma è anche più veloce da codificare.
Il grafico di seguito (più alto è meglio) mostra la velocità di codifica AVIF rispetto ad altri formati di immagine. I codec di generazione precedente come WebP beneficiano di algoritmi di compressione meno complessi (ma anche meno efficienti). Con uno schema di codifica multi-thread, AVIF raggiunge prestazioni simili per casi d'uso comuni, offrendo al contempo significativi guadagni di compressione.
Per gli sviluppatori interessati a una velocità di codifica più dettagliata e a confronti della qualità visiva, il sito Confronto tra codici di immagini contiene risultati di benchmark riproducibili.
Mentre le implementazioni software per i moderni codec di immagine come AVIF e WebP sono ottimizzate per le architetture con processori x86 e ARM, la compressione di grandi quantità di immagini su larga scala può essere costosa dal punto di vista computazionale. Un'alternativa per ridurre i costi di compressione è esplorare l'accelerazione hardware. Bluedot ha sviluppato un codificatore Pulsar-AVIF con accelerazione hardware in esecuzione su FPGA programmabili, come Alveo U250 di AMD. Rispetto all'avifenc basato su software, Pulsar-AVIF offre un miglioramento della velocità da 7 a 23 volte superiore con un'efficienza di compressione simile.
- Set di test: Kodak (24 immagini di 768 x 512)
- Codifica di 24 immagini contemporaneamente (24 processi)
- Ogni processo di codifica del software viene eseguito con 4 thread. (-j 4)
Gli sviluppatori possono eseguire il deployment dell'encoder Pulsar-AVIF con macchine virtuali cloud, come Azure NP-Series.
Funzioni AVIF per pagine web reattive
AVIF offre alcune funzionalità interessanti che ti aiuteranno a pubblicare pagine web più adattabili. Questa volta parleremo un po' degli AVIF animati, che sono di gran lunga il modo più efficiente per pubblicare animazioni fantastiche sul web.
AVIF animato
Le GIF animate sono ancora un formato popolare per le immagini animate, nonostante siano state inventate 35 anni fa. I maggiori svantaggi delle GIF animate sono il supporto di soli 256 colori e la scarsa compressione che porta a dimensioni dei file molto grandi, limitando al contempo la risoluzione o la frequenza dei fotogrammi per i casi d'uso pratici. Al contrario, la codifica AVIF animata è in realtà la stessa dello schema di codifica video AV1, che consente risparmi significativi sulle dimensioni dei file rispetto alle GIF animate.
Abbiamo eseguito un semplice benchmark in cui abbiamo codificato un insieme di GIF animate in AVIF e JPEG XL. Nel set di test, la percentuale media di risparmio in termini di dimensioni dei file è stata di circa l'86% rispetto ai file GIF originali e di circa il 73% rispetto ai file JPEG XL* animati.
Chrome, Firefox e Safari supportano tutti riproduzioni animate in formato AVIF.
FFmpeg è uno strumento da utilizzare per creare file AVIF animati. Ecco un esempio di base di conversione di una GIF in AVIF utilizzando FFmpeg:
ffmpeg -i "$INPUT_GIF" -crf $CRF -b:v 0 "$OUTPUT.avif"
$CRF
è la qualità dell'output desiderata su una scala da 0
a 63
. Valori più bassi indicano una qualità migliore e dimensioni dei file maggiori. 0
utilizza la compressione senza perdita di dati. Inizia con un valore di 23
per i file AVIF animati di piccole dimensioni.
Per impostazione predefinita, FFmpeg utilizza libaom per la codifica delle immagini AVIF, ma può anche utilizzare rav1e o SVT-AV1, se disponibili. Puoi trovare ulteriori informazioni sulle scelte dell'encoder e sulla regolazione dei parametri di codifica per i compromessi tra velocità e qualità nella guida alla codifica AV1 di FFmpeg.
Un altro caso d'uso è il riaccoppiamento di un video AV1 in AVIF senza ricodificare il file originale. Questa operazione è molto più economica della decodifica/codifica del file AV1 originale e rende il video AV1 disponibile per l'utilizzo con l'elemento <img>
. Puoi farlo passando -c:v copy
a FFmpeg.
ffmpeg -i "$INPUT_AV1_VIDEO" -c:v copy -an "$OUTPUT.avif"
Conclusioni
L'utilizzo di AVIF sul web è in costante aumento fin dal lancio ed è ampiamente supportato da browser, CDN di immagini, plug-in WordPress e strumenti di codifica. Nel complesso, AVIF è un'ottima scelta per pubblicare immagini sul web. È veloce da codificare e decodificare e offre la migliore qualità o le dimensioni più ridotte del file, a seconda di ciò che preferisci per il tuo sito web. AVIF è il modo più efficiente per pubblicare animazioni sul web. Per domande, commenti o richieste di funzionalità, contatta la mailing list av1-discuss, la community AOM GitHub e il wiki AVIF.