Introduzione allo standard video HEVC/H.265

Introduzione allo standard video HEVC/H.265

Lo standard di compressione video HEVC, la cui specifica iniziale è stata ratificata nel 2013, è stato creato con l’obiettivo di ottenere un’efficienza di compressione fino a due volte superiore a quella della versione di codec video precedente (H.264). Scopriamo in questo articolo le caratteristiche principali dello standard, necessario per supportare, riducendo la banda utilizzata e lo spazio occupato dai file, la distribuzione di contenuti digitali sulle piattaforme di streaming video, sulla nuova versione del digitale terrestre e sui sistemi multimediali.

Introduzione

Sin dagli albori del video digitale, è esistita la necessità di ridurre l’ingente volume di dati che ogni video non compresso porta con sé. Al fine di ridurre il bit rate video, mantenendo allo stesso tempo una qualità della riproduzione accettabile, si è scelto di utilizzare opportune tecniche di compressione. Le tecniche di compressione video hanno cominciato a diffondersi nei primi anni ’90, con il rilascio di Quicktime e successivamente di Video per Windows. A quei tempi le prestazioni dei codec video (espresse come rapporto tra il bit rate e la qualità dell’immagine) erano limitate dall’hardware utilizzato per la decodifica, cioè i microprocessori utilizzati sui primi PC desktop. I codec video presentano la caratteristica di essere fortemente asimmetrici, nel senso che la codifica richiede molto più tempo della decodifica. Ne consegue che, mentre la prima può essere tranquillamente eseguita in tempi variabili (più o meno lunghi), la seconda deve necessariamente avere un comportamento real time. Non è quindi un caso se i primi codec video avevano prestazioni modeste, in grado di decodificare in tempo reale video a risoluzioni molto basse.

Nascita dell’H.265

Lo standard HEVC (High Efficiency Video Coding), noto anche come H.265, è lo standard di compressione video nato come logica evoluzione del suo diffusissimo predecessore, ovvero lo standard AVC (Advanced Video Coding), noto anche come H.264. Rispetto a quest’ultimo, lo standard HEVC offre un rapporto di compressione dei dati da 25% a 50% migliore a parità di qualità video, oppure un livello di qualità superiore a parità di bit rate. HEVC supporta una risoluzione video fino a 8192×4320, compreso lo standard 8K UHD. A differenza dell’AVC, che applica la trasformata discreta del coseno (DCT) su blocchi dati di dimensione fino a 16x16, l’HEVC utilizza le trasformate discrete del coseno e del seno su blocchi dati di dimensione variabile fino a 64x64 pixel. In prima approssimazione, l’HEVC può essere considerato come un’estensione dell’AVC. Entrambi gli standard, infatti, attuano la compressione confrontando parti differenti di un frame video con lo scopo di individuare aree ridondanti, applicando la procedura sia sui singoli frame, sia su frame adiacenti. Le aree così individuate sono poi sostituite da una breve descrizione al posto dei pixel originali. Gli algoritmi avanzati di compressione utilizzati dall’HEVC richiedono un’elevata capacità di elaborazione del segnale, che tuttavia ha un impatto molto inferiore sulla capacità di calcolo richiesta per la decompressione del video. Al momento della sua introduzione, lo standard H.265 si prefiggeva di raggiungere tre obiettivi principali, a posteriori tutti poi confermati:

  1. migliorare fino al 50% il fattore di compressione rispetto allo standard 264/AVC;
  2. limitare fino ad un massimo di 10x la complessità dell’encoder e fino ad un massimo di 2x/3x la complessità del decoder;
  3. possibilità di parallelizzare sia le operazioni di codifica che di decodifica.

Relativamente al secondo punto, i risultati ottenuti dimostrano come, rispetto allo standard H.264, i tempi richiesti dalla fase di codifica siano superiori di un fattore 4x-6x, mentre per la fase di decodifica tale fattore è compreso nel range 1.5x-2.5x.

Lo standard: caratteristiche

Sviluppato dal Joint Collaborative Team on Video Coding (JCT-VC), lo standard è stato successivamente approvato dall’ITU-T (che lo ha pubblicato come ITU-T H.265) e dall’ISO/IEC Motion Picture Experts Group (MPEG), che lo ha pubblicato come ISO/IEC 23008-2. La versione iniziale dello standard, rilasciata nel gennaio 2013, è stata creata con l’obiettivo di fornire un rapporto di compressione fino a due volte migliore dell’AVC (soprattutto alle alte risoluzioni), tenendo comunque presente che l’efficienza di compressione dipende dal tipo di contenuti video e dai parametri impostati per la compressione. Entrambi gli standard utilizzano una compressione differenziale: l’immagine attuale viene creata basandosi su una o più immagini precedenti e sulle differenze che si sono susseguite nel tempo.

Come è stato possibile ottenere un miglioramento della compressione così elevato? Buona parte dei risultati ottenuti sono imputabili alla funzione di predizione della compensazione del movimento (motion compensated prediction). Con essa, dei blocchi di pixel (con dimensione fino a 64x64) sono codificati confrontandoli con altre aree appartenenti allo stesso frame (intra-prediction), o ad altri frame (inter-prediction). In modo del tutto analogo a quanto avviene nell’AVC, l’HEVC è una tecnica di codifica video basata sull’elaborazione di blocchi di pixel. I passi sui quali si articola l’algoritmo di compressione possono essere così riassunti:

  • suddivisione dell’immagine (frame) in macro-blocchi, eventualmente suddivisi a loro volta in blocchi;
  • riduzione della ridondanza spaziale utilizzando tecniche di compressione intra-frame;
  • riduzione della ridondanza temporale utilizzando tecniche di compressione inter-frame (stima e compensazione del movimento);
  • compressione dei frame residuali tramite trasformazione e quantizzazione;
  • riduzione della ridondanza finale utilizzando la codifica entropica (senza perdita delle informazioni).

L’HEVC può essere in sostanza considerata come l’evoluzione dello standard AVC, con l’aggiunta di alcune funzionalità importanti, oltre ad alcuni miglioramenti e semplificazioni.

Suddivisione in blocchi

Anziché utilizzare macro-blocchi composti da 16x16 pixel come avviene nell’AVC, lo standard HEVC suddivide i frame video in regioni quadrate di pixel utilizzando una struttura gerarchica ad albero. Supponiamo di avere un’immagine (frame video) e di volerla "encodare" secondo lo standard H.265. Il primo step di elaborazione consiste nel suddividere l’immagine in aree quadrate chiamate CTU (Coding Tree Unit), ciascuna con dimensione pari a 64x64, 32x32, oppure 16x16 pixel (si osservi la Figura 1). Il CTU è un’unità logica composta da tre blocchi: un blocco di luminanza CTB (Y) e due campioni cromatici Cb CTB e Cr CTB. Ciascun blocco viene chiamato CTB (Coding Tree Block). In base alle impostazioni del codec, ogni CTB può avere una dimensione di 64×64 pixel, oppure essere limitato a 32×32 o 16×16 pixel.

Figura 1: suddivisione di un’immagine in CTU

Si noti come i termini Y, Cr e Cb siano gli stessi utilizzati per definire i concetti di crominanza e luminanza utilizzati per la trasmissione del segnale televisivo a colori ed in bianco e nero. La luminanza Y rappresenta l’intensità di luce complessiva dell’immagine, cioè la somma dei tre colori primari R, G e B. La componente Cr esprime invece la differenza rispetto al colore rosso e Cb la differenza rispetto al colore blu. Il segnale risultante è noto anche con il termine YCbCr e valgono le seguenti relazioni:

Y = B + R + G

Cb = B – Y

Cr = R – Y

Ciascun blocco CTB può essere ulteriormente suddiviso in regioni quadrate di 32x32, 16x16 o 8x8 pixel (note come CB, acronimo di Coding Block), a seconda delle necessità degli algoritmi di predizione intra-frame o inter-frame. In Figura 2 è visualizzato un esempio in cui uno stesso CTB, con dimensione pari a 64x64 pixel, può essere suddiviso in vari modi in più CB.

Figura 2: vari modi con cui un CTB può essere suddiviso in più CB

Il Control Block rappresenta il punto sulla base del quale viene deciso se eseguire una predizione inter-frame oppure intra-frame. Più precisamente, il tipo di predizione viene codificato nella CU (Coding Unit), il componente base della predizione nello standard HEVC. Normalmente, le CU più piccole sono utilizzate nelle zone dell’immagine con maggiori dettagli e sui bordi, mentre le CU di dimensioni maggiori sono utilizzate per la predizione di aree omogenee. In Figura 3 è proposto un ulteriore esempio, in cui si può osservare la struttura ad albero. Il CTB iniziale con dimensione 64x64 è stato decomposto in due CB con dimensione 32x32 (1 e 13) e così via.

Figura 3: esempio pratico di decomposizione di un CTB in più CB

Ciascun CU può essere ulteriormente suddiviso, seguendo lo stesso approccio utilizzato per i CTB, in più TU (Transform Unit). A differenza dell’AVC, che utilizzava blocchi di trasformazione 4x4 e 8x8, lo standard HEVC utilizza tutte le dimensioni da 32x32 sino a 4x4. TU di grandi dimensioni sono più adatti ad "encodare" segnali stazionari, mentre i TU più piccoli "encodano" meglio i segnali impulsivi. L’algoritmo di trasformazione utilizzato è la trasformata discreta del coseno (DCT), ad eccezione dei TU 4x4 intra-frame, dove la trasformata discreta del seno (DST) si è dimostrata più efficiente. La trasformazione eseguita dallo standard H.265 offre un’accuratezza molto superiore a quella dello standard H.264. In Figura 4 possiamo osservare come una stessa immagine possa essere decomposta in blocchi con modalità differente negli standard AVC e HVEC. Quest’ultimo, in particolare, offre una maggiore flessibilità delle dimensioni dei blocchi, maggiore complessità computazionale, ma maggiore efficienza nella compressione.

Figura 4: confronto tra i blocchi H.264 e H.265

Predizione

Nel precedente paragrafo abbiamo già introdotto l’importante concetto di trasformazione e di Transform Unit TU. Precedente a questa vi è, tuttavia, la fase di predizione, che può essere eseguita intra-frame oppure inter-frame. La predizione di ogni CU può essere eseguita utilizzando una delle otto modalità di partizionamento visualizzate in Figura 5. [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 2597 parole ed è riservato agli ABBONATI. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici e potrai fare il download in formato PDF eBook e Mobi per un anno. ABBONATI ORA, è semplice e sicuro.

Scarica subito una copia gratis

2 Commenti

  1. Mariangela.Mone Mariangela.Mone 24 Aprile 2020
  2. Emilio Genovese 29 Aprile 2020

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend