AV1 vs. h265 (HEVC) vs. VP9: qual è la differenza tra questi standard di compressione?

AV1 vs. h265 (HEVC) vs. VP9: qual è la differenza tra questi standard di compressione?

Lo streaming in 4K è la nuova norma, ma con informazioni per oltre 8,2 milioni di pixel trasmesse ogni 16 millisecondi, l’archiviazione e la trasmissione di video 4K su Internet non è un compito facile.

Un film di due ore richiederebbe oltre 1,7 Terabyte di spazio di archiviazione se non compresso. Quindi, in che modo i giganti dello streaming come YouTube e Netflix riescono a archiviare e riprodurre in streaming video che occupano così tanto spazio?

Beh, non lo fanno perché usano i codec video per ridurre le dimensioni dei film, ma cos’è un codec video e qual è il migliore?

Cos’è un codec video?

Prima di approfondire le complessità dei codec video, è fondamentale capire come viene creato un video. In parole povere, il video non è altro che un insieme di immagini fisse che si sostituiscono rapidamente.

Software di editing video in esecuzione su un computer

A causa di questa elevata velocità di cambiamento, il cervello umano pensa che le immagini si muovano, creando l’illusione di guardare un video. Pertanto, quando guardi un video in 4K, stai solo guardando una serie di immagini con una risoluzione di 2160×3840. Questa alta risoluzione delle immagini consente a un video girato in 4K di offrire un’esperienza video eccezionale. Detto questo, questa alta risoluzione delle immagini aumenta le dimensioni del video, rendendo impossibile lo streaming su canali con larghezza di banda limitata, come Internet.

Per risolvere questo problema, abbiamo i codec video. Abbreviazione di coder/decoder o compressione/decompressione, un codec video comprime il flusso di immagini in bit di dati. Questa compressione può ridurre la qualità del video o non avere alcun effetto su di esso in base agli algoritmi di compressione utilizzati.

Come suggerisce il nome, il bit di compressione in un codec riduce la dimensione di ogni immagine. Per fare lo stesso, l’algoritmo di compressione sfrutta le sfumature dell’occhio umano, impedendo alle persone di sapere che i video che guardano sono compressi.

La decompressione, al contrario, funziona in modo opposto e rende il video utilizzando le informazioni compresse.

Sebbene i codec facciano un ottimo lavoro quando si tratta di comprimere le informazioni, eseguire lo stesso può essere gravoso per la tua CPU. Per questo motivo, è normale vedere fluttuazioni nelle prestazioni del sistema quando si eseguono algoritmi di compressione video sul sistema.

Applicazione di editing video in esecuzione su un iPad

Per risolvere questo problema, CPU e GPU sono dotate di hardware speciale in grado di eseguire questi algoritmi di compressione. Consentendo alla CPU di eseguire le attività a portata di mano mentre l’hardware dedicato elabora i codec video, migliorando l’efficienza.

Come funziona un codec video?

Ora che abbiamo una conoscenza di base di cosa fa un codec video, possiamo vedere come funziona un codec.

Sottocampionamento cromatico

Come spiegato in precedenza, i video sono costituiti da immagini e il sottocampionamento della crominanza riduce le informazioni in ciascuna immagine. Per fare ciò, riduce le informazioni sul colore contenute in ciascuna immagine, ma come viene rilevata dall’occhio umano questa riduzione delle informazioni sul colore?

Bene, vedi, gli occhi umani sono bravi a rilevare i cambiamenti di luminosità, ma non si può dire lo stesso dei colori. Questo perché l’occhio umano ha più bastoncelli (cellule fotorecettrici responsabili della rilevazione dei cambiamenti di luminosità) rispetto ai coni (cellule fotorecettrici responsabili della differenziazione dei colori). La differenza tra bastoncelli e coni impedisce agli occhi di rilevare i cambiamenti di colore quando si confrontano immagini compresse e non compresse.

Diversi livelli di compressione video utilizzando il sottocampionamento cromatico
Crediti immagine: Janke su Wikipedia in inglese/Wikimedia Commons

Per eseguire il sottocampionamento della crominanza, l’algoritmo di compressione video converte le informazioni sui pixel in RGB in dati di luminosità e colore. Successivamente, l’algoritmo riduce la quantità di colore nell’immagine in base ai livelli di compressione.

Rimozione delle informazioni sui frame ridondanti

I video sono costituiti da diversi fotogrammi di immagini e, nella maggior parte dei casi, tutti questi fotogrammi contengono le stesse informazioni. Ad esempio, immagina un video con una persona che parla su uno sfondo fisso. In tal caso, tutti i fotogrammi del video hanno una composizione simile. Pertanto tutte le immagini non sono necessarie per il rendering del video. Tutto ciò di cui abbiamo bisogno è un’immagine di base che contenga tutte le informazioni ei dati relativi al cambiamento nel passaggio da un fotogramma all’altro.

Quindi, per ridurre le dimensioni del video, l’algoritmo di compressione divide i fotogrammi video in fotogrammi I e P (fotogrammi previsti). Qui i frame I sono la verità fondamentale e vengono utilizzati per creare frame P. I fotogrammi P vengono quindi resi utilizzando le informazioni nei fotogrammi I e le informazioni di modifica per quel particolare fotogramma. Utilizzando questa metodologia, un video viene suddiviso in una serie di fotogrammi I interlacciati in fotogrammi P che comprimono ulteriormente il video.

Compressione del movimento

Ora che abbiamo suddiviso il video in fotogrammi I e P, dobbiamo esaminare la compressione del movimento. Una parte dell’algoritmo di compressione video che aiuta a creare i fotogrammi P utilizzando i fotogrammi I. Per fare ciò, l’algoritmo di compressione suddivide l’I frame in blocchi noti come macroblocchi. A questi blocchi vengono quindi assegnati vettori di movimento che definiscono la direzione in cui si muovono questi blocchi durante la transizione da un fotogramma all’altro.

Vettori di movimento su un'immagine di gioco
Crediti immagine: Blender Foundation/ Wikimedia

Queste informazioni sul movimento per ciascun blocco aiutano l’algoritmo di compressione video a prevedere la posizione di ciascun blocco in un fotogramma successivo.

Rimozione di dati immagine ad alta frequenza

Proprio come i cambiamenti nei dati cromatici, l’occhio umano non è in grado di rilevare sottili cambiamenti negli elementi ad alta frequenza in un’immagine, ma cosa sono gli elementi ad alta frequenza? Bene, vedi, l’immagine visualizzata sullo schermo comprende diversi pixel e i valori di questi pixel cambiano in base all’immagine visualizzata.

In alcune aree dell’immagine, i valori dei pixel cambiano gradualmente e si dice che tali aree abbiano una bassa frequenza. D’altra parte, se si verifica un rapido cambiamento nei dati dei pixel, l’area viene classificata come contenente dati ad alta frequenza. Gli algoritmi di compressione video utilizzano la trasformata discreta del coseno per ridurre la componente ad alta frequenza.

Ecco come funziona. Innanzitutto, l’algoritmo DCT viene eseguito su ciascun macroblocco e quindi rileva le aree in cui il cambiamento di intensità dei pixel è molto rapido. Quindi rimuove questi punti dati dall’immagine, riducendo le dimensioni del video.

Codifica

Ora che tutte le informazioni ridondanti nel video sono state rimosse, possiamo archiviare i bit di dati rimanenti. Per fare ciò, l’algoritmo di compressione video utilizza uno schema di codifica come la codifica Huffman, che collega tutti i bit di dati in un fotogramma al numero di volte in cui si verificano nel video e quindi li collega in una struttura ad albero. Questi dati codificati vengono archiviati su un sistema, consentendogli di eseguire facilmente il rendering di un video.

Struttura di codifica di Huffman
Crediti immagine: Redor/ Wikimedia

AV1 vs. HEVC vs. VP9: quale codec è il migliore?

Ora che abbiamo capito come funzionano i codec, possiamo determinare qual è il migliore tra AV1, HEVC e VP9.

Comprimibilità e Qualità

Se hai un video 4K che occupa molto spazio sul tuo sistema e non puoi caricarlo sulla tua piattaforma di streaming preferita, potresti cercare un codec video che offra il miglior rapporto di compressione. Tuttavia, devi anche considerare che la qualità che offre diminuisce man mano che continui a comprimere il video. Pertanto, durante la selezione di un algoritmo di compressione, è essenziale osservare la qualità che offre a un particolare bitrate, ma qual è il bitrate di un video?

In poche parole, il bitrate di un video è definito come il numero di bit di cui il video ha bisogno per essere riprodotto per un secondo. Ad esempio, un video 4K non compresso a 24 bit eseguito a 60 fotogrammi ha un bitrate di 11,9 Gb/s. Pertanto, se trasmetti in streaming un video 4K non compresso su Internet, il tuo Wi-Fi deve fornire 11,9 gigabit di dati al secondo, esaurendo la tua quota dati mensile in pochi minuti.

L’utilizzo di un algoritmo di compressione, al contrario, riduce il bitrate a una quantità molto piccola in base al bitrate di tua scelta senza degradare la qualità.

Quando si tratta di numeri di compressibilità/qualità, AV1 è in testa al gruppo e offre una compressione migliore del 28,1% rispetto a H.265 e un risparmio del 27,3% rispetto a VP9, ​​pur offrendo una qualità simile.

Pertanto, se stai cercando la migliore compressione senza un degrado della qualità, AV1 è il rapporto di compressione che fa per te. Grazie all’ottimo rapporto compressione/qualità del codec AV1, viene utilizzato da Google nella sua applicazione di videoconferenza Google Duo e da Netflix durante la trasmissione di video su una connessione dati a bassa larghezza di banda.

Compatibilità

Come spiegato in precedenza, un algoritmo di compressione video codifica un video una volta compresso. Ora per riprodurre questo video, il tuo dispositivo deve decodificare lo stesso. Pertanto, se il tuo dispositivo non dispone del supporto hardware/software per decomprimere un video, non sarà in grado di eseguirlo.

Pertanto, è importante comprendere l’aspetto di compatibilità di un algoritmo di compressione perché qual è lo scopo di creare e comprimere contenuti che non possono essere eseguiti su molti dispositivi?

Quindi, se la compatibilità è qualcosa che stai cercando, allora VP9 dovrebbe essere il codec per te in quanto è supportato su oltre due miliardi di endpoint e può essere eseguito su ogni browser, smartphone e smart TV.

Lo stesso non si può dire di AV1 in quanto utilizza algoritmi più recenti e più complessi per ridurre le dimensioni del file di un video e non può essere riprodotto su dispositivi meno recenti. Per quanto riguarda il supporto del browser, Safari non può riprodurre AV1, ma browser come Firefox e Chrome possono riprodurre video AV1 senza problemi.

In termini di supporto hardware, i nuovi SoC e GPU come Snapdragon 8 Gen 2, Samsung Exynos 2200, MediaTek Dimensity 1000 5G, Google Tensor G2, la serie RTX 4000 di Nvidia e le GPU Intel Xe e Arc supportano la decodifica hardware accelerata per il codec AV1 . Pertanto, se possiedi dispositivi alimentati da questi chipset, puoi goderti lo streaming di contenuti compressi utilizzando i codec AV1 senza esaurire la potenza della tua CPU/GPU.

Quando si tratta del codec H.265, i browser più diffusi come Safari, Firefox e Google Chrome possono eseguire video codificati utilizzando l’algoritmo di compressione senza problemi. Detto questo, rispetto ad AV1 e VP9, ​​H.265 non è open source e per utilizzare il codec H.265 è necessario procurarsi le licenze. Per questo motivo, app come il lettore video Movies & TV di Microsoft, fornito con il sistema operativo, non possono eseguire video codificati utilizzando H.265 per impostazione predefinita. Invece, gli utenti devono installare componenti aggiuntivi aggiuntivi dallo store di Windows per eseguire tali video.

Velocità di codifica

I codec video riducono sostanzialmente le dimensioni di un video, ma per ridurre le dimensioni di un video, il video non compresso deve essere elaborato utilizzando un software, operazione che richiede tempo. Pertanto, se vuoi ridurre le dimensioni di un video, devi considerare il tempo necessario per comprimere il video utilizzando un algoritmo di compressione.

Per quanto riguarda l’efficienza della codifica, VP9 è in testa al gruppo e il tempo di codifica per la compressione dei video è molto inferiore rispetto a H.265 e AV1. AV1, d’altra parte, è il più lento nel tempo di codifica e può impiegare tre volte più tempo per codificare un video rispetto a H.265.

Quale codec dovresti scegliere?

Quando si tratta di codec video, trovare il codec perfetto è molto soggettivo, poiché ogni codec offre funzionalità diverse.

Se stai cercando la migliore qualità video, scegli AV1. D’altra parte, se stai cercando il codec video più compatibile, VP9 sarebbe la soluzione migliore per te.

Infine, il codec H.265 è perfetto se hai bisogno di buona qualità e compressione senza costi di codifica.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *