Universit'a degli Studi di Cagliari - Corsi

Pagina creata da Emanuele Papa
 
CONTINUA A LEGGERE
Universit'a degli Studi di Cagliari - Corsi
Università degli Studi di Cagliari

                      Facoltà di Ingegneria e Architettura
             Corso di Laurea in Ingegneria Elettrica ed Elettronica

    Direzioni future della codifica video.
Considerazioni e relative prospettive hardware

 Relatore:                                                             Tesi di:
 Dott. Ing. Francesca Palumbo                                     Nicola Motzo
 Corelatore:
 Dott. Ing. Carlo Sau
Universit'a degli Studi di Cagliari - Corsi
Indice

1 Introduzione                                                                                       2

2 Metodi generali della compressione video                                                           4
   2.1   Generalità sulla rappresentazione digitale delle sequenze video . . . . . . . . .          4
   2.2   Le ridondanze nelle sequenze video . . . . . . . . . . . . . . . . . . . . . . . .          5
   2.3   Riepilogo delle metodologie di rimozione delle ridondanze . . . . . . . . . . .            12

3 Gli standard della codifica/decodifica video                                                      13
   3.1   Cenni su Motion JPEG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .         13
   3.2   Cenni su H.264 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     14
   3.3   Confronti fra Motion JPEG e H.264 . . . . . . . . . . . . . . . . . . . . . . . .          16

4 Standard High Efficiency Video Coding (HEVC o H.265)                                              17
   4.1   Generalità HEVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .       17
   4.2   Struttura e novità del livello di codifica . . . . . . . . . . . . . . . . . . . . . .    20
   4.3   Alcuni aspetti dell’implementazione hardware . . . . . . . . . . . . . . . . . .           23
   4.4   Considerazioni finali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      32

5 Il futuro degli standard di codifica video                                                        33
   5.1   Generalità ed Analisi dei brainstorming . . . . . . . . . . . . . . . . . . . . . .       33
   5.2   Analisi dei test JEM 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .     37
   5.3   Risultati dei test esplorativi . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   43

6 Conclusioni                                                                                       45

                                                  1
Universit'a degli Studi di Cagliari - Corsi
Capitolo 1

Introduzione

I contenuti video hanno assunto un’importanza sempre maggiore nelle nostre vite, a causa del
crescente traffico dei dati, dovuto ai moderni video ad alta definizione, alla diversità di servizi
che occupano e all’influenza che hanno attraverso la rete internet, basti pensare al frequentis-
simo utilizzo che se ne fa in ambito privato (video streaming a carattere ricreativo vedi Netflix,
YouTube ecc.) e in ambito lavorativo (Skype call, Hangouts ecc.). Fra tutti gli aspetti legati ai
servizi video, quello che ci interessa maggiormente è la qualità delle immagini che si visua-
lizzano, cioè la nostra necessità è diventata quella di avere immagini che rispecchino il più
fedelmente possibile la realtà. Sono state sviluppate, infatti, delle tecnologie che, nell’ultimo
decennio, hanno avuto un impatto sempre maggiore sul mercato e sulla vita di tutti i giorni. Si
parla delle TV Full HD (e negli ultimi anni dell’Ultra HD), per non parlare delle modernissime
tecnologie delle immagini in tre dimensioni. L’obbiettivo di questa tesi è un’analisi dello stan-
dard corrente e la definizione delle prospettive future della codifica video, in base alle richieste
di mercato, ormai sempre più esigenti. Nel resto di questa tesi analizzeremo quelle che sono le
tecniche di compressione video più comuni, in altre parole, quelle tecniche che si basano sulla
rimozione della ridondanza d’informazioni da una sequenza video (Capitolo 2). Analizzeremo
poi l’evoluzione degli standard di codifica video, con una visione generale di due dei più comu-
ni standard di codifica del passato, Motion JPEG e di H.264 /AVC, osservando quali tecniche
di compressione utilizzano e facendo un confronto finale fra quelli che sono i vantaggi e gli
svantaggi dei due standard (Capitolo 3). Studieremo in maniera più accurata l’attuale standard
HEVC, analizzando le novità introdotte e alcuni aspetti dell’implementazione hardware sia dal

                                                 2
Universit'a degli Studi di Cagliari - Corsi
punto di vista del codificatore (encoder), sia da quello del decodificatore (decoder) (Capitolo 4).
Il capitolo finale (Capitolo 5), si concentrerà sul punto cruciale della tesi, ovvero capire qua-
li direzioni si stanno prendendo per il futuro degli standard di codifica video, in particolare,
analizzando i risultati emersi dal brainstorming riguardo alle necessità delle aziende che ne
hanno preso parte (Huawei e Netflix per citarne alcune), confrontandoli infine, con i risultati
ottenuti dall’ultimo test esplorativo che è stato svolto.

                                                 3
Universit'a degli Studi di Cagliari - Corsi
Capitolo 2

Metodi generali della compressione
video

Per analizzare e capire i concetti espressi e i termini usati in questa tesi, è necessario avere
chiara la terminologia utilizzata. Nei paragrafi successivi verranno spiegate a grandi linee,
quelle che sono le terminologie nel campo della compressione e memorizzazione dei dati, con
particolari riferimenti alla compressione di dati video.

2.1     Generalità sulla rappresentazione digitale delle sequen-
        ze video
Per iniziare, è necessario chiarire che “dato” e “informazione” non sono sinonimi. I dati sono
gli strumenti tramite i quali è rappresentata l’informazione e con diverse quantità di dati si
può rappresentare la stessa informazione. La compressione, si basa sulla rimozione della ri-
dondanza dei dati e questo è un concetto matematicamente quantificabile. Dati due insiemi
differenti di dati b1 e b2 , utilizzati per rappresentare la stessa informazione, possono essere de-
finiti il Rapporto di compressione C e la Ridondanza relativa R, rispettivamente come mostrato
nelle formule 2.1 e 2.2 [19].

                                                     b1
                                              C=                                               (2.1)
                                                     b2

                                                 4
Universit'a degli Studi di Cagliari - Corsi
1
                                           R=1−                                              (2.2)
                                                    C

Un video è una rapida successione di immagini (frame) , che a seconda del numero e della
velocità in cui si susseguono, vengono interpretate come un movimento fluido da parte del
sistema visivo umano. Il frame rate è la velocità di successione dei frame e si misura in fps,
ovvero frame per second. Il movimento sarà tanto più fluido quanto più grande sarà il frame
rate. I frame sono immagini digitalizzate, ovvero composte da una matrice di punti (o pixel)
che assumono dei valori numerici a dipendenti dal numero di bit da cui sono codificati[5]. I
pixel possono rappresentare i colori tramite codifica. Esistono diversi spazi di colore ed il più
utilizzato specie per la codifica video è YUV () (o YCC), il più noto invece e l’RGB (Red-Green-
Blue) [7]. Questi colori possono avere una profondità diversa, ovvero possono rappresentare
una gamma di colore tanto più ampia, quanto più è alto il numero di bit con cui vengono rap-
presentati. Per esempio, con 8 bit si può rappresentare un valore che va da 0 a 255 per ogni
colore, cosi che ognuno di essi possa avere diverse tonalità. La qualità di una immagine è de-
finita dalla risoluzione, ovvero dal numero di pixel che compongono l’immagine; maggiore è
la quantità di pixels che formano l’immagine, maggiore sarà la risoluzione[28].
La crescita dell’informazione, che negli ultimi anni ha avuto un incremento considerevole, può
rapidamente diventare un problema, sia in termini di tempi di trasmissione (oggi tutto viaggia
in rete) che di memorizzazione (che viene parzialmente risolto dalla trasmissione, visti i nume-
rosi servizi cloud per esempio). Si è reso perciò indispensabile lo sviluppo di opportune stra-
tegie che consentano l’abbattimento della quantità di memoria che tali informazioni richieste
dai video occupano, attraverso l’utilizzo di codec, ovvero algoritmi che rimuovono le infor-
mazioni ridondanti presenti nelle sequenze video. Il concetto di ridondanza è proprio quello
che sta alla base delle tecniche di compressione dell’informazione, in quanto la compressione
viene ottenuta rimuovendo quanta più ridondanza possibile dall’informazione utile.

2.2     Le ridondanze nelle sequenze video
Nel seguito verranno analizzate le diverse tipologie di ridondanza presenti nell’informazio-
ne delle sequenze video e verranno mostrate le principali tecniche utilizzate per rimuovere

                                                5
Universit'a degli Studi di Cagliari - Corsi
ciascuna di esse.

Ridondanza percettiva

Dal punto di vista percettivo, le immagini sono composte da regioni che contengono mag-
giori informazioni utili rispetto ad altre. Infatti ci saranno delle aree dove si avrà più o meno
uniformità nel colore e delle aree dove invece ci saranno consistenti differenze cromatiche, do-
vute, per esempio, ai particolari presenti in una determinata zona dell’immagine [30]. Un’idea
esplicativa di questo concetto la possiamo notare nella Figura 2.1 .

Figura 2.1: Particolari di un immagine dove viene evidenziata la uniformità del livello cromati-
co (bassa frequenza-quadrato rosso) e un insieme di livelli cromatici differenti (alta frequenza-
quadrato blu)

L’immagine rappresenta un primo piano di una ragazza, in cui viene evidenziato un blocco
rosso sulla sinistra, corrispondente alla guancia della ragazza, dove i pixel hanno tutti un colo-
re molto simile tra loro e un blocco blu sulla destra, che racchiude una porzione dell’immagine
che contiene i capelli della ragazza, dove invece il colore dei pixel differisce in maniera sostan-
ziale. La rimozione di ridondanza percettiva si basa sull’efficienza del sistema visivo umano,
infatti esso risulta essere più sensibile alle basse frequenze spaziali piuttosto che a quelle alte.
Sempre dall’immagine in Figura 2.1, infatti, il dettaglio contenuto nel blocco blu è difficilmente
distinguibile nell’immagine intera. Dal momento che il nostro sistema visivo non è in grado di

                                                 6
Universit'a degli Studi di Cagliari - Corsi
rilevare variazioni significative nel dominio delle frequenze spaziali, le alte frequenze spaziali
(che altro non sono che variazioni brusche di luminosità e contrasto), vengono quindi comune-
mente attenuate, o addirittura azzerate, attraverso due operazioni in cascata: la trasformazione
e la quantizzazione [19]. Per passare dal dominio dello spazio a quello della frequenza spazia-
le, viene applicata una particolare trasformata chiamata DCT(Discrete Cosine Transform)[11],
[21]. Dopo la trasformazione, i coefficienti sono piccoli per frequenze basse e grandi per fre-
quenze alte e vengono salvati in una matrice. Viene allora applicata la quantizzazione, che
taglia le alte frequenze. I coefficienti per le alte frequenze attenuati, diventano quantità de-
cimali e vengono successivamente arrotondate all’intero più vicino [20], [9]. Nel caso della
compressione d’immagini, salvo alcuni casi specifici, l’esigenza di non perdere informazione
durante la codifica è eccessiva nella maggior parte dei casi. Sulla base di questo concetto, la
quantizzazione è il metodo principale che rispetta questo principio. Essa consiste nel determi-
nare la conversione tra un intervallo di valori elevato a uno molto più limitato. Risulta evidente
che un sistema di quantizzazione opera una compressione di un’immagine, in quanto riducen-
do l’intervallo di valori possibili (Full Scale Range, FSR), permette di rappresentarli con parole
di codice di lunghezza minore. Un esempio può essere i 256 livelli di grigio rappresentabili con
parole di 8 bit, che dopo la quantizzazione, vengono ridotti a 16 livelli rendendo cosi possibile
la loro rappresentazione con parole di 4 bit[10].
   Nella Figura 2.2(b) possiamo notare sulla destra la matrice che contiene i valori dei pixel
nel dominio dello spazio (matrice in alto) e la stessa matrice dopo che si è passati nel dominio
della frequenza spaziale. I coefficienti non rappresentano più il valore del livello di colore ma,
quanto velocemente cambia il valore dei pixel nello spazio. Il numero in alto a sinistra è la
componente DC (la continua, f=0) e, visto il suo valore, è anche la frequenza dominante nel
blocco (la maggior parte delle variazioni tra pixel vicini sono piccolissime o nulle).

Ridondanza statistica

La ridondanza statistica si concentra sulle probabilità di occorrenza del valore dei pixel di
un’immagine (o dell’immagine trasformata). In generale essi non occorrono con la stessa pro-
babilità in un’immagine. Nella rimozione della ridondanza statistica si usa la codifica entropica,

                                                7
Universit'a degli Studi di Cagliari - Corsi
(a)                              (b)

Figura 2.2: matrice dei coefficienti nel dominio spaziale (Figura 2.2(b) in alto) e nel dominio
della frequenza spaziale (Figura 2.2(b) in basso), riferita all’immagine Figura 2.2(a)

ovvero una tecnica di codifica basata sull’assegnare a ciascun valore di pixel, un unico codice
prefissato (codeword) a lunghezza variabile. Per comprimere l’immagine, si avranno:

    • codewords corte usate per rappresentare i valori più frequenti

    • codewords più lunghe per rappresentare i valori meno frequenti [19].

Nell’esempio seguente mostrato in Figura 2.3. Si nota che la codifica entropica (che sfrutta la

                   Figura 2.3: Esempio della qualità della codifica entropica

ridondanza statistica) applicata all’immagine nel dominio del colore, non ha una capacità di
compressione molto buona (7.14 bits/pixel), mentre se la si applica all’immagine portata nel
dominio della frequenza e quantizzata, la capacità di compressione sarà molto elevata a causa
della alta presenza di zeri nell’immagine trasformata e quantizzata (1,82 bits/pixel).

                                                8
Un esempio di codifica entropica è la codifica di Huffman, molto utilizzato per la codifica
video [10], [22].

Ridondanza spaziale

La ridondanza spaziale si basa sul concetto che in ogni immagine possano esserci delle carat-
teristiche visive simili in diversi punti. Se consideriamo la Figura 2.4 possiamo notare come,
anche se in posizioni diverse, ci siano delle porzioni di spazio molto simili fra loro. Per elimina-

                                 Figura 2.4: Ridondanza spaziale

re la ridondanza, tipicamente si attua la intra-frame prediction (orizzontale ,verticale, obliqua).
Questa tecnica sfrutta le somiglianze fra i blocchi all’interno dello stesso frame. In particolare,
per un dato blocco da codificare, viene identificato un opportuno blocco di riferimento. Solo
la locazione del blocco di riferimento verrà codificata, invece che l’intero blocco da codificare.
Tipicamente viene calcolata la differenza fra il blocco di riferimento selezionato e il blocco da
codificare. Spesso, per consentire una ricostruzione del frame più fedele, anche tale differenza
viene codificata, ma quest’ultima, data la somiglianza tra i blocchi in questione, sarà una ma-
trice di valori quasi interamente nulla. Si ha un esempio visivo del metodo nella Figura 2.5.
Tipicamente la codifica della differenza tra blocco di riferimento e blocco da codificare, date le
sue caratteristiche, avviene utilizzando tecniche di compressione che sfruttano la ridondanza
statistica [30], [10], [27].

                                                 9
Figura 2.5: intra-prediction encoding

Ridondanza temporale

La ridondanza temporale è legata al fatto che una sequenza video è composta da frame che si
susseguono tipicamente con frequenze (fps) molto alte. Ciò significa che l’intervallo temporale
che separa due frame successivi è molto breve, per cui la scena immortalata da frame succes-
sivi, difficilmente differisce in maniera sostanziale. Ad esempio nella Figura 2.6, il frame al
tempo t (frame 4) e il frame al tempo t-1 (frame 3) sono confrontati e su essi ne viene calcolata
la differenza (frame 4 - frame 3).

                               Figura 2.6: ridondanza temporale

La ridondanza temporale in una sequenza video è presente in quantità molto elevate e la sua
rimozione consente di ottenere efficienze di compressione molto performanti. La tecnica che
attua tale rimozione viene chiamata inter-frame prediction. Analogamente alla intra-frame

                                               10
prediction, un blocco da codificare viene associato ad un blocco di riferimento stavolta non
più appartenente allo stesso frame ma collocato in un frame differente, anch’esso chiamato di
riferimento. Non verrà codificato l’intero blocco da codificare ma solamente l’informazione
relativa al frame di riferimento (essa può essere condivisa con altri blocchi dello stesso frame)
e ad una eventuale dislocazione spaziale (orizzontale, verticale o obliqua) del blocco di riferi-
mento nel frame di riferimento rispetto alla proiezione del blocco da codificare nel frame di
riferimento stesso. Anche nel caso della inter-prediction, per consentire una ricostruzione del
frame più fedele, spesso viene codificata anche la differenza tra il blocco da codificare e quello
di riferimento, che sarà ancora una volta una matrice di valori prevalentemente nulli. Anche
in tal caso si usano tecniche per lo sfruttamento della ridondanza percettiva e statistica sulla
differenza tra i blocchi per raggiungere una più alta efficienza di compressione.
In generale dunque, una sequenza video codificata è composta da “3 tipi” di frame differenti,
ovvero:

    • I-frame (Intra coded frame): codificato senza alcuna conoscenza degli altri frame che
      compongono il video

    • P-frame (Predictively-coded frame): codificato tenendo conto che si ha una conoscen-
      za dei frames precedenti e dunque si può sfruttare, oltre alla ridondanza percettiva,
      statistica e spaziale, la ridondanza temporale

    • B(b)-frame (bidirectional predictively-coded frame): codificato tenendo conto che si ha
      una conoscenza sia dei frames precedenti che di quelli successivie. Dunque è possibi-
      le sfruttare somiglianze temporali, oltre che con frame passati, anche con frame futuri
      rispetto al frame in questione.

La Figura 2.7 ci aiuta a capire meglio questi concetti:

                                 Figura 2.7: Picture coding type

                                                11
2.3     Riepilogo delle metodologie di rimozione delle ridon-
        danze
Nelle sezioni precedenti, si è analizzato in che modo sia possibile codificare in maniera efficien-
te le sequenze video, sfruttando la rimozione di dati superflui. In particolare si sono analizzate
le tecniche che consentono la rimozione delle ridondanze presenti in un video. Nella Tabella
2.1 riportata di seguito, si riassumono tutte le 4 principali ridondanze presenti in una sequenza
video, quali tecniche si adoperano per la loro rimozione e quali vantaggi comportano.

    Tabella 2.1: Riepilogo delle varie tecniche di rimozione di ridondanza nelle immagini
 Ridondanza Tecnica di rimozione                       meccanismo                  Vantaggi
 Percettiva       Trasformazione             Dopo la quantizzazione, i dati    Risparmio di me-
                  e quantiz-                 in eccesso vengono tagliati       moria
                  zazione
 Statistica       Codifica                   Si sfruttano proprietà sta-      Migliore capacità
                  entropica                  tistiche che si basano sul-       di compressione
                                             l’occorrenza dei pixel in un
                                             immagine
 Spaziale         Intra-                     Viene codificato solo il bloc-    Minonore
                  prediction                 co di riferimento e la sua        complessità
                                             locazione nell’immagine da        computazionale
                                             codificare
 Temporale        Inter-                     Viene cercato il blocco nel       Elevata efficienza
                  Prediction/motion          frame precedente che corri-       di compressione
                  estimator                  sponde al blocco nel frame
                                             attuale

                                                12
Capitolo 3

Gli standard della codifica/decodifica
video

In questo capitolo si andranno ad analizzare quelli che sono alcuni degli standard di encodin-
g/decoding video più utilizzati degli ultimi anni. Analizzeremo in breve gli standard Motion
JPEG e H.264, in quanto hanno avuto un ruolo importante per la nascita e lo sviluppo dell’
ultimo e attualmente più utilizzato standard HEVC, anche noto come H.265. Per iniziare, trat-
teremo quanto visto nel Capitolo 1 in relazione ai due standard in esame, in particolare quali
metodi utilizzano entrambi per le rispettive codifiche.

3.1     Cenni su Motion JPEG
Lo standard Motion JPEG è uno standard che utilizza le tecniche di compressione JPEG [2],
uno dei codec più utilizzati per quanto riguarda la codifica delle immagini. Come descritto
nella parte introduttiva del Capitolo 1, un video è una serie di immagini (o frame) che si sus-
seguono ad una velocità tale per cui il sistema visivo umano non riesce a rendersi conto del
passaggio fra un frame e l’altro, percependo tutto come un movimento fluido. Il Motion JPEG
(M-JPEG), codifica ognuno dei frame come una serie di immagini JPEG. I vantaggi sono che
ogni frame è codificato come se fosse una singola immagine JPEG, con una buona flessibilità
sia in termini di qualità, sia in termini di rapporto di compressione (he migliora leggermente),
a discapito però di una maggiore complessità computazionale. Lo svantaggio principale del

                                               13
M-JPEG è che, dal momento che converte ogni frame singolarmente, non sfrutta la ridondan-
za temporale presente nel video e legata alle somiglianze fra frame adiacenti, ma solo quella
legata alle somiglianze tra le varie parti del frame. Questo ha delle ripercussioni sul rapporto
di compressione, in particolare questo risulta essere minore rispetto a quello che si avrebbe
con le altre tecniche di compressione video.
Analizziamo ora quali tecniche vengono usate per la compressione M- JPEG. La principale mo-
dalità di compressione che utilizza il M-JPEG si basa sulla rimozione della ridondanza percet-
tiva e statistica. Si opera, anche in questo caso, un partizionamento dell’immagine in blocchi.
Si esegue un cambio di dominio attraverso la DCT. La trasformata viene applicata su blocchi di
pixel 8x8, riducendo al minimo la probabilità di perdita di informazione. In un immagine di 8x8
elementi, i termini minimi del coseno non sono legati ai valori dei pixel, quindi essi possono
essere calcolati una volta per tutte creando una matrice di 8x8 elementi, che saranno utilizza-
ti per la successiva decodifica. Per ciascun blocco si elimina un certo numero di coefficienti
scelti in base a delle tabelle chiamate matrici di quantizzazione. Dopo questa operazione molti
coefficienti sono diventati degli 0. I nuovi coefficienti vengono riordinati e codificati tramite
la codifica di Huffman.

3.2     Cenni su H.264
H.264 è il risultato di un progetto congiunto fra Video Coding Expert Group ITUT e ISO/IEC
Moving Pictures Expert Group (MPEG) [1], [3]. Un nuovo campo applicativo di questo stan-
dard è la codifica video IP- based nelle telecamere di rete. Un punto di forza di questo standard è
sicuramente il fatto che, se comparato con uno standard MJPEG, è in grado di ridurre le dimen-
sioni dei file digitali di oltre l’80%, senza compromessi in termini di qualità delle immagini[8].
Questo standard è anche conosciuto con il nome di H.264/AVC (Advanced Video Coding). A
caratterizzare l’H.264/AVC troviamo degli strumenti e delle estensioni rispetto ad altri stan-
dard, in particolare, l’utilizzo di blocchi a dimensione variabile , che utilizzerà per la rimozione
di ridondanza percettiva, o che utilizzerà nella inter e intra prediction (predizione temporale
e spaziale) . Le dimensioni di tali blocchi possono essere 16x16, 8x8, 16x8 o 4x4 (Figura 3.1) e
viene utilizzato il vettore di movimento codificato, in base a una gerarchia di predizione che

                                                 14
parte dal macro blocco 16x16[25]. Un altro degli aspetti rilevanti di questo standard è che la

                              Figura 3.1: Flexible Block dimension

intra-picture viene eseguita predeterminando l’intero blocco da campioni di blocchi adiacenti.
È possibile prevedere blocchi 4x4, 8x8 e 16x16 dove, per i casi 16x16 e 8x8 è consentita solo
intra-prediction planare (orizzontale e verticale). Nel caso di blocchi 4x4 sono supportati 9 tipi
di previsione (DC e 9 modalità di previsione spaziale angolare). Per quanto riguarda codifica
entropica, lo standard ne specifica diversi tipi, alternativi alla codifica di Huffman:

    • VLC (Variable Lenght Coding): basata su tabelle di assegnazione statiche

    • CAVLC (Context-Adaptive VLC): utilizza diverse tabelle VLC specificatamente ottimiz-
      zate. A seguito della predizione, trasformazione e quantizzazione i valori relativi ai coef-
      ficienti sono molto spesso nulli o molto piccoli: la codifica a lunghezza variabile sfrutta
      le sequenze di zero, l’elevata frequenza di valori +1 e -1, e la correlazione fra il numero
      di coefficienti non nulli di un blocco e quello nei blocchi adiacenti

    • CABAC (Context-adaptive Binary Arithmetic Coding): sfrutta in modo ancora più effi-
      ciente la correlazione fra simboli perché utilizza la statistica dei simboli precedentemente

                                                15
codificati per stimare la probabilità condizionata, usata per selezionare uno fra i diversi
      modelli possibili [28].

Sono tutti metodi universalmente applicabili. Il CABAC in particolare è un metodo di codifica
per segnali binari, quindi prima di essere usato, bisogna applicare una “binarizzazione” dei
coefficienti di trasformazione o dei vettori di movimento [25].

3.3     Confronti fra Motion JPEG e H.264
Avendo analizzato a grandi linee gli aspetti principali fra due dei più diffusi metodi di codifica
video, confrontiamo ora le caratteristiche di entrambi i metodi. Come prima cosa possiamo no-
tare un particolare abbastanza ovvio, ovvero che sicuramente l’ H.264/AVC è migliore rispetto
al M-JPEG, in quanto è uno standard che utilizza dei metodi finalizzati alla codifica di sequen-
ze video, mentre come detto nella Sezione 2.1., M-JPEG basa il suo metodo di compressione
sulla codifica di immagini, applicata ad ogni frame. L’H.264/AVC sfrutta quindi le tecniche di
rimozione di ridondanza spaziale e temporale che MJPEG non utilizza. Entrambi gli standard
sono utilizzati nei medesimi campi di applicazione, come per esempio la video sorveglianza o
in sistemi di trasmissione remota che utilizzano lo scambio dei dati video attraverso la rete.

                                                16
Capitolo 4

Standard High Efficiency Video Coding
(HEVC o H.265)

In questo capitolo si andranno ad analizzare quelle che sono state le esigenze che hanno portato
allo sviluppo dell’attuale standard High Efficiency Video Coding (HEVC o H.265) e quali nuove
caratteristiche sono state introdotte. L’HEVC si è imposto rispetto ai precedenti standard per
rispondere alle esigenze che i sistemi video di ultima generazione hanno imposto. Verranno in-
fine analizzati alcuni articoli scientifici che riportano alcune architetture hardware, implemen-
tate principalmente su FPGA (Field Programmable Gate Array), per i blocchi che si occupano
della rimozione della ridondanza spaziale (intra-prediction) e temporale (inter-prediction), e
quelli che eseguono le trasformate.

4.1     Generalità HEVC
Con il meeting preliminare, svoltosi a Dresden, in Germania, organizzato dal Motion Pictu-
res Expert Group (MPEG [3]), riguardo le esigenze del mercato e dei consumatori imposte
dalla veloce crescita tecnologica nel campo dei video digitali, si è giunti alla conclusione che
lo standard H.264/AVC fosse diventato ormai poco performante riguardo alla qualità sempre
maggiore che i contenuti video avevano raggiunto. HEVC era stato progettato per ridurre di
un fattore pari a due il bit rate, a confronto con l’H.264/AVC. I risultati che si sono raggiun-
ti furono maggiori di quelli prospettati. Dopo l’applicazione di test esplorativi, si era notato

                                               17
infatti che non solo si era raggiunto l’obiettivo prefissato, ma si era ridotto del 70% il bitrate
rispetto al H.264/AVC[15]. Nonostante la crescita della complessità degli “intra e inter pre-
diction modes”, il tempo impiegato per la compressione, è stato una altro aspetto positivo per
quanto riguarda la codifica real-time dei grandi formati video (per esempio per i video HD
che hanno introdotto una maggiore risoluzione p.e. 1280 x 720p e 1920 x 1080p). Esso infat-
ti, era cresciuto rispettivamente, per codifica e decodifica, solo del 10% e del 60% rispetto ai
tempi del’H.264/AVC [14]. Molti strumenti di codifica dell’ HEVC sono ripresi dal H.264/AVC
e migliorati. Fra le migliorie introdotte dal HEVC troviamo l’incremento della risoluzione vi-
deo, il miglioramento dell’efficienza di codifica, della resilienza alla perdita dei dati, nonché
l’implementabilità utilizzando architetture di elaborazione parallela [15]. Fra le novità asso-
lute dell’HEVC, che verranno riprese in seguito, troviamo inoltre l’introduzione di un nuovo
schema di partizionamento in blocchi dell’immagine, con blocchi di dimensione 64x64[26]. I
metodi di codifica dell’HEVC sono ibridi (come per gli standard precedenti fin già dal H.261),
ovvero utilizzano congiuntamente la codifica basata su inter-/intra prediction e la 2D block
transform. Vediamo ora come opera un tipico algoritmo di codifica/decodifica.

Algoritmo di codifica dell’HEVC

Nella Tabella 4.1, sono raccolti i principali blocchi della Figura 4.1 con le loro funzionalità. In
Figura 4.1 è mostrato lo schema a blocchi che utilizza il codec HEVC per codifica e decodifi-
ca. Ogni immagine è divisa in regioni con blocchi di forma diversa e l’esatto partizionamento
dei blocchi viene inviato al decoder. La prima immagine di una sequenza video, o la prima
che viene trovata dopo un accesso casuale in un punto del video, è codificata solo con la ri-
mozione della ridondanza spaziale utilizzando la intra-prediction. Per i restanti frame della
sequenza, vengono usati dei metodi di codifica tramite la predizione temporale. L’immagine
da processare, già divisa in CTU, viene mandata in input a quattro blocchi: il General Coder
Control, che manda i segnali di controllo per ogni blocco, il Filter Control Analysis, che esegue
operazioni di filtraggio opportune, l’Intra-Picture Estimation, il Motion Estimation e a un nodo
sommatore (Figura: 4.1). In ingresso al blocco Transform,Scaling and quantization (riquadro
rosso nella Figura: 4.1), troviamo la differenza fra la predizione effettuata dai blocchi della
intra-prediction (4.1 riquadro verde), o dalla inter-prediction (4.1 riquadro blu), con il segnale

                                                18
Figura 4.1: Schema a blocchi della codifica/decodifica HEVC

di input. Il metodo di predizione è deciso attraverso un selettore che commuta fra il blocco del-
la intra-prediction e della inter-prediction. Il segnale uscente dal blocco Transform,Scaling and
Quantization andrà in ingresso a un blocco che genera un segnale successivamente usato per
la intra-predizione e a un blocco facente parte del decoder, lo Scaling and Inverse Transform,
che esegue le operazioni di scaling (arrotondamento a numeri interi) e la trasformata inversa
(4.1 riquadro arancio). L’immagine in output, prima che venga inviata al buffer di decodifica
(4.1 riquadro viola), passa attraverso un opportuno blocco del decoder chiamato Deblocking
and SAO Filters, che consente di migliorare i frame della sequenza video, in modo tale che gli
errori dovuti al partizionamento in blocchi dell’immagine, vengano adeguatamente filtrati. In-
fine, un blocco che eseguirà la CABAC per codificare il bitstream in uscita (4.1 riquadro giallo),
riceverà i segnali dal blocco di trasformazione, dal General Coder Control,dai blocchi della intra
e inter-prediction e dal Deblocking and SAO Filters.

                                                19
Tabella 4.1: Sintesi dei blocchi che costituiscono la parte algoritmica dell’HEVC
                   Blocco                   Encoder Decoder           Funzionalità
           General Coder Control               Si         No      Genera      segnali     di
                                                                  controllo
    Transform,Quantization and Scaling         Si         Si      Esegue      un    cambio
                                                                  di dominio (colore-
                                                                  frequenza),arrotonda
                                                                  a numeri interi, taglia
                                                                  alte frequenze
              Intra-prediction                 Si         Si      Elimina            ridon-
                                                                  danza            spaziale,
                                                                  ricostruzione frame
              Inter-prediction                 Si         Si      Elimina            ridon-
                                                                  danza        temporale,
                                                                  ricostruzione frame
           Deblocking and Filters              Si         Si      Elimina i difetti ge-
                                                                  nerati dal partiziona-
                                                                  mento in CTU
       Header Formating and CABAC              Si         No      Esegue codifica CA-
                                                                  BAC e prepara il flus-
                                                                  so di dati per la tra-
                                                                  smissione

4.2     Struttura e novità del livello di codifica
In questa sezione andremo ad analizzare alcune delle principali migliorie introdotte dall’HEVC
rispetto al suo predecessore, l’H.264/AVC

                                             20
Figura 4.2: Divisione in macroblocchi 32x32 utilizzata nei precedenti standards (a) e divisione
in CTU 64x64 in HEVC

Struttura ad albero per il partizionamento in blocchi

Il cuore del livello di codifica dei precedenti standard era la suddivisione del frame in macro
blocchi di dimensione massima 16x16 e i macro blocchi erano le unità base che dovevano es-
sere processate. Era compito dell’encoder scegliere quale metodo di compressione dovesse
essere utilizzato per ogni macro blocco. HEVC è stato pensato come standard per i video ad
alta qualità, HD e UHD che hanno risoluzioni rispettivamente 1280x720 o 1920x1080 e 3840 x
2160 pixels. La struttura analoga introdotta nell’HEVC è una struttura ad albero, che ha come
unità base le Coding Tree Units (CTU), dove le grandezze di queste vengono scelte dall’encoder
e possono essere maggiori rispetto ai macro blocchi utilizzati dai precedenti standard, ovvero
64x64 pixel.
Nella Figura 4.2 [31] viene mostrato il cambiamento introdotto dalle CTU nell’HEVC rispetto

                                              21
ai macroblocchi dei precedenti standards. Le CTU hanno le stesse funzioni dei macro blocchi
dei precedenti standard, ma sono state introdotte per rendere l’HEVC più flessibile. Come si
vede dalla Figura 4.3, i CTU sono divisi in blocchi ancora più piccoli chiamati Coding Unit (CU),
che a loro volta possono essere divisi e codificati secondo la predizione spaziale o temporale
(intra e inter prediction) in Prediction Units (PU) [15]. Infine, le PU possono essere divise in
Transform Unit (TU), con dimensioni che vanno da blocchi quadrati 4 x 4 a 32 x 32, che saranno
utilizzate per la trasformazione. Le CU di dimensione NxN, codificate con l’intra-prediction
(spaziale), possono essere divise solo in blocchi quadrati di dimensione N/2xN/2. Le CU codi-
ficate con l’inter-prediction (temporale) invece, possono essere divise in PU quadrate e non,
La divisione può essere anche asimmetrica, fino a che un lato della forma non quadrata risulti
lungo almeno quattro pixel.

       Figura 4.3: Struttura ad albero per la divisione dell’immagine in CTU, CU e PU

La intra-prediction ha avuto dei notevoli cambiamenti. Si è passati da 10 a 35 modi di pre-
dizione spaziale (Figura 4.4), rispetto all’H.264/AVC. Si hanno infatti 33 direzioni angolari di
predizione, la predizione planare (che può essere verticale e orizzontale) e il modo di predi-
zione DC. Per quanto riguarda la inter-prediction, questa è stata migliorata rispetto a quello
che era per i precedenti standards. In particolare la predizione temporale usa L’Advanced Mo-
tion Vector Prediction (AMVP)[26]. In aggiunta a ciò, il blocco Integer-pel Motion Estimation
(IME) esegue la stima del movimento ed è composta da un algoritmo di ricerca e una procedura
di ottimizzazione chiamata Rate/Distortion (R/D), che riduce in modo ottimale la ridondanza
temporale trovata nella sequenza video. Questo blocco è è uno dei più critici nella codifica

                                               22
Figura 4.4: I 35 modi di predizione dell’intra prediction dell’HEVC

video, perché risulta il più complesso dell’encoder richiede più del 90% del tempo di codifica
[6].

4.3     Alcuni aspetti dell’implementazione hardware
Gli encoder/decoder hardware possono essere implementati su specifici circuiti integrati (ASIC)
o su schede programmabili chiamate FPGA. Le soluzioni ASIC hanno prestazioni più elevate
ma maggior costo economico, in più sono progettate solo per un determinato funzionamento.
Le implementazioni su FPGA invece, utilizzano piattaforme hardware riconfigurabili e sono
più convenienti in termini economici. In questa sezione si andranno ad analizzare alcune im-
plementazioni hardware specifiche, utilizzate dall’encoder e dal decoder, per l’algoritmo di
intra e inter prediction e per il blocco delle trasformate visti ed analizzati nella Figura 4.1 del-
la Sezione 4.1. In particolare, verranno spiegati nel dettaglio gli articoli [29], [17] e [4], e in
aggiunta verranno brevemente illustrate altre implementazioni alternative.

Architettura Hardware intra-prediction

Nell’articolo [29], viene proposta una architettura hardware per il blocco della intra-prediction,
implementata su FPGA. L’architettura è studiata per video HD real-time con risoluzione 1920
x 1080p e framerate uguale a 30 fps. Ogni modulo implementato, può operare a 200 MHz e l’en-
coder può ottenere una codifica in tempo reale con una frequenza di funzionamento minima di

                                                23
140 MHz. Questa architettura. L’architettura suggerita in questo articolo, è stata implementata
su Xlinx Zynq ZC706, ed è studiata per incrementare il parallelismo delle operazioni e ridurre
il consumo di risorse e si focalizza inoltre su questi aspetti:

    • struttura e modalità di partizionamento iniziale dei blocchi dell’immagine evitano il
      processo di ottimizzazione

    • viene usata un’architettura pipelined di codifica delle Transform Unit (TU) con blocchi
      4x4 per ciclo

    • l’architettura di Intra-prediction è ottimizzata per blocchi 4x4 per prevedere 19 modalità
      di previsione in parallelo.

Uno schema dell’architettura è rappresentato nella Figura 4.5 e favorisce il pipelining. Un mo-

                              Figura 4.5: Architettura dell’encoder

dulo di controllo per il buffer dell’immagine in input e una memoria interna, insieme al modulo
di partizionamento veloce costituiscono la prima parte dell’architettura. Il modulo “Split and
Mode Decision” seleziona la struttura ad albero quadrato e la direzione di predizione adatta
per ogni CU. Questi dati, insieme ai pixel grezzi, vengono passati alla memoria dell’immagine.
La seconda tappa include il ciclo di ricostruzione, dove vengono creati, con i pixel di riferimen-
to tramite il modulo “intra-prediction”, i blocchi di riferimento. Questa fase è ottimizzata per

                                                24
ridurre la latenza del ciclo e i tempi di codifica. Dopo la trasformazione dei blocchi effettua-
ta dal modulo che esegue la trasformata, si passa all’ultima parte dell’architettura, dove una
memoria immagazzina i coefficienti appena calcolati. Dopo la binarizzazione dei coefficienti
viene effettuata la codifica CABAC e viene generato l’output. La intra-prediction è strettamen-
te legata al modulo di Split e Mode Decision. Nella Figura 4.6 ne viene mostrato lo schema. il

                   Figura 4.6: Architettura del modulo Split e Mode Decision

modulo ha dei sotto moduli che si occupano delle predizioni angolari, la predizione DC e quel-
la planare. L’output di ogni modulo è di 4 pixel per ogni ciclo di clock. Tramite operazione di
shift e di moltiplicazione, eseguita dai moduli di previsione angolare, si possono ricavare tutti
i modi di predizione angolare, con un conseguente risparmio e riutilizzo di risorse. Con una
serie di shift e di somme viene eseguita la modalità planare. Per la modalità DC, un albero di
sommatori è implementato per calcolare il valore DC. L’output generato, passa in un modulo
che lo trasforma tramite la Trasformata di Handmard (modulo “Row Transform” Fig.4.6) e i
coefficienti generati vengono mandati in ingresso a un buffer. Un Multiplexer, infine, sceglie
il modo di previsione adatto. Questo schema è studiato per massimizzare il troughput dei dati,
l’implementazione parallela dei sotto moduli e per ridurre la latenza dei moduli della intra-
predizione.
Nell’articolo [29], l’architettura appena analizzata, è confrontata con alcuni articoli, fra questi
l’articolo [16]. Nell’articolo [16] l’architettura proposta è presentata nella Figura 4.7: La parti-
colarità di quest’architettura è che sono presenti due cicli di ricostruzione, uno che si occupa
dei blocchi 8x8, 16x16 e 32x32, e uno che si occupa solo dei blocchi 4x4. In questo modo, ven-

                                                 25
Figura 4.7: Schema architettura proposto nell’articolo [16].

gono migliorati i tempi di codifica. Il ritardo introdotto dal nuovo ciclo di ricostruzione per i
blocchi 4 x 4, è limitato con la rimozione di alcune funzionalità. Ogni ciclo, fornisce i dati tra-
mite due diversi percorsi, passando in entrambi i casi attraverso i moduli di stima RATE e DIST.
Per il ciclo dei blocchi 4x4, vi è un modulo chiamato MODE DECISION, per quello dei restanti
blocchi, un modulo chiamato MODE DECISION and VOTING (Figura 4.7). Il segnale generato
dal modulo MODE DECISION, viene inviato al modulo MODE DECISION and VOTING, dove
viene scelto il metodo di decisione opportuno. Il segnale generato da quest’ultimo passerà at-
traverso un modulo che esegue la binarizzazione dei coefficienti, che a sua volta genererà un
segnale che sarà inviato al modulo che eseguirà la codifica CABAC per il flusso di dati generato
come output. Questa architettura è stata implementata su Arria II GX. Un altra implementa-
zione hardware la troviamo nell’articolo [12], dove l’architettura proposta (Figura 4.8) è stata
implementata su una FPGA Xilinx XC6VLX130T FF1156. In questa implementazione, i modi
di predizione angolare, planare e DC sono supportati per tutte le dimensioni delle PU (4x4,
8x8, 16x16 e 32 x32). Le moltiplicazioni che si utilizzano nel modo di predizione DC, sono
eseguite tramite moduli di shift e moduli di somma. Per il modo planare, sono utilizzati invece
moduli moltiplicatori. 16 vettori sono usati per immagazzinare i pixel dei blocchi adiacenti,
dopodiché vengono caricati in 64 cicli di clock e 3 diverse funzioni sono usate per calcolare i

                                                 26
Figura 4.8: Desing dell’architettura dell’articolo [12].

modi di predizione, per tutte le dimensioni delle PU. La funzione per le predizioni angolari può
processare 32 pixel in un ciclo di clock, quella per le predizioni planari 4 pixel/ciclo e infine,
quella per la predizione DC 1 pixel/ciclo.

Architettura Hardware inter-prediction

Il blocco Integer-pel Motion Estimation (IME), che si occuppa della rimozione di ridondanza
temporale, è il blocco che ha il carico di lavoro più oneroso. Nell’articolo [13] analizzato in
questa sezione, verrà proposta una nuova implementazione hardware che può eseguire velo-
cemente i calcoli dell’IME e ridurre la complessità computazionale dell’encoder. L’architet-
tura è stata implementata su FPGA Xilinx, Virtex-7 XC7VX550T-3FFG1158. Le proposte per
raggiungere questi obbiettivi sono:

    • un nuovo disegno di progetto per il modulo sommatore SAD con una struttura ad albero

    • nuovo ordine di scansione della memoria.

L’implementazione hardware proposta per l’HEVC, fornisce i SAD minimi e i relativi vetto-
ri di movimento associati, per tutte le partizioni possibili di un blocco 64x64. Sfrutta inoltre
il parallelismo in modo efficiente. La nuova struttura ad albero del modulo SAD, consente
di migliorare le operazioni di somma nel primo livello dell’albero, partendo dalla dimensione
massima delle CTU, dimezzando il numero di operazioni nei successivi livelli dell’albero. Si è
riusciti ad ottenere la minima latenza possibile nelle operazioni, grazie alle risorse fornite dal-
la FPGA. Per quanto riguarda il nuovo ordine di scansione della memoria, sono stati utilizzati

                                                27
una serie di moduli di shift riconfigurabili e moduli Processing Element (PE), che si occupano
della memorizzazione dei pixel necessari sia per i blocchi predetti, sia per i blocchi di riferi-
mento, mantenendo tali pixel sempre disponibili per il modulo SAD e per il calcolo del vettore
di movimento. Nella Figura 4.9, è mostrata la struttura proposta. Il sistema è composto da due

                    Figura 4.9: Architettura del blocco di inter-prediction

memorie, una per i CU di riferimento e una per l’area di ricerca , 64 moduli Processing Unit (PU)
(in rosso), il nuovo modulo (in verde) SAD Adder Tree Block (SATB) e un blocco di confronto
che salva i valori minimi forniti dal SATB e i relativi vettori di movimento corrispondenti per
tutte le partizioni CU. Come mostrato in Figura 4.10, un modulo PU, è costituito da 64 moduli
PE ed ognuno calcola la differenza fra il pixel corrente e quello di riferimento (Figura 4.11).
In un solo ciclo di clock, ad ognuno dei moduli PU vengono consegnate le colonne di pixel

                                    Figura 4.10: Modulo PU

                                               28
correnti e quelle di riferimento, e ognuno di essi calcola i valori di distorsione dei pixel di un
blocco 64 x 64. Il modulo successivo SATB, calcola il SAD per tutte le possibili unità di pre-
visione (più di 600). Ogni PE calcola la differenza fra il pixel corrente e quello di riferimento
(Figura 4.11). Infine il blocco di confronto (Figura 4.9 blocco blu) è incaricato di memorizzare

                                     Figura 4.11: Modulo PE

il minimo SAD con i rispettivi MV per ogni CU.
Un altro desing hardware è proposto nell’articolo [23]. In quest’articolo vengono introdotti
due moduli: L’Horizontal Reference SRAM e il Vertical Reference SRAM. Questi sfruttano il co-
siddetto “2-D reuse”. L’architettura di riferimento proposta è mostrata nella Figura 4.12. In

                             Figura 4.12: Architettura articolo [23]

un’architettura che utilizza una sola SRAM, i pixel del frame di riferimento vengono “bufferiz-
zati”. Ai pixel allocati nella prima riga, si può accedere attraverso l’indirizzo 0, a quelli nella
seconda con l’indirizzo 1 e cosi via. Per la ricerca di un frame, sono necessari 64 cicli di clock,
per caricare un blocco 64x64 conservato nella SRAM, nel modulo di divisione in PU. Tuttavia,
per i successivi blocchi di riferimento, è necessario solamente un ciclo di clock, poiché i pixel
mancanti sono allocati negli stessi indirizzi del blocco di riferimento. Questo è un esempio
di cosa sia il “1-D reuse”. Il “2-D reuse”, è quindi sfruttato tramite l’inserimento dei moduli
Horizontal Reference SRAM (riquadro rosso in Figura 4.12) e Vertical Reference SRAM (riquadro

                                                29
verde in Figura 4.12). L’utilizzo di due SRAM al posto di una, consente di abbattere il costo
in termini di cicli di clock, riducendo i tempi di previsione e la complessità computazionale.
Negli alberi SAD generali, i costi di tutti i livelli delle PU (8x8, 16x16, 32x32), adatti per la
ricerca completa, sono sempre calcolati. Nel modulo che compie queste operazioni (riquadro
blu, Figura 4.12), alcune PU potrebbero essere bypassate per risparmiare inutili consumi ener-
getici. Oltre a questo, anche facendo uso di “2-D reuse”, sono necessari alcuni cicli di clock
aggiornare il Reference Register Array e il Current Register Array, se i frame sono lontani l’u-
no dall’altro. Durante questo processo, l’intero albero SAD può anche essere bypassato per
risparmiare energia.

Architettura Hardware del blocco delle trasformate

L’architettura hardware per il blocco di trasformazione proposta nell’articolo [4], sfrutta la de-
composizione della matrice di coefficienti interi della DCT unidimensionale, in blocchi chiama-
ti B2 e C2 (matrici 4x4). L’architettura proposta ha TU di dimensione 4x4, 8x8, 16x16 e 32x32,
che operano in parallelo per calcolare la trasformazione DCT 2-D , utilizzando una matrice
di coefficienti DCT 1-D e una memoria di trasposizione. La trasformata 1D viene precedente-
mente calcolata e la trasformazione corrispondente è immagazzinata in una memoria. I dati
memorizzati vengono utilizzati, in un secondo momento, per ottenere la trasformazione DCT
2-D, utilizzando lo stesso blocco usato per il calcolo della DCT 1-D. Inoltre, questa architettura
è basata su shift e su somme, invece che moltiplicazioni, per il calcolo della trasformazione.
L’architettura è implementata su una FPGA Xilinx Artix-7 (Zynq- 7000). Le operazioni di mol-
tiplicazione sono sostituite da un acceleratore hardware chiamato Processing Element (PE), che
serve a rimpiazzare i moltiplicatori, tramite la conoscenza di tutti i possibili coefficienti della
DCT 1-D (Figura 4.13). Si utilizza questo modulo per il risparmio di risorse. Nella Figura 4.14

    Figura 4.13: Coefficienti della DCT 1-D corrispondenti alle dimensioni del blocco TU

                                                30
è mostrato lo schema dell’architettura del modulo PE.
Il Top-Module del PE è composto da moduli di shift, un accumulatore, un contatore a tre bit,
un multiplexer, due registri e da un modulo di controllo che azzera la memoria, il contatore e
comanda il MUX. Il PE opera nel seguente modo:

               Figura 4.14: Architettura proposta per il blocco di trasformazione

dopo che i coefficienti sono stati precedentemente calcolati, sulla base della decomposizione
della DCT 1-D, l’operazione inizia con uno shift che serve per identificare il coefficiente che
viene ricevuto in ingresso (un ciclo di clock per ogni shift). L’accumulatore viene utilizzato per
salvare il valore dato dall’operazione precedente. Il contatore è limitato a 3 bit perché i cicli
necessari affinché il modulo PE svolga la sua funzione, sono 6. Il modulo appena esaminato è
utilizzato in due distinte architetture per il calcolo delle due matrici, una la B2 (Figura 4.15(a)
) e la C2 (Figura 4.15(b) ). Come detto all’inizio della sezione, il calcolo della DCT bidimensio-

                                 (a)                            (b)

               Figura 4.15: Architettura proposta per il blocco di trasformazione

nale viene svolto tramite la decomposizione della matrice di coefficienti interi della DCT 1-D
in blocchi, e in Figura 4.16, è riportato lo schema finale dell’architettura.

                                                 31
Figura 4.16: Architettura per il calcolo della DCT-2D

4.4     Considerazioni finali
L’HEVC è uno standard nato dalle necessità che sono sorte con la costante crescita, negli an-
ni passati, dei servizi video, che hanno occupato una grossa fetta del traffico internet (circa
l’86% nel 2016). Anche la nascita delle nuove tecnologie video, come ad esempio le TV Ultra
HD, che hanno risoluzioni importanti (4096 x 2160p) hanno influito sulla necessità di avere un
nuovo standard specifico per queste applicazioni. In questo capitolo, sono state presentate le
novità introdotte nell’HEVC rispetto al precedente standard H.264/AVC, con particolare focus
sugli algoritmi delle tecniche di intra e inter previsione e di trasformazione. L’implementazio-
ne hardware di tali tecniche è risultata più performante rispetto a quella software, per questo
motivo sono state analizzate delle architetture hardware specifiche per i blocchi di predizione
spaziale e temporale e per i blocchi di trasformazione. In particolare, si sono analizzate delle
architetture proposte negli articoli [29], [?], [4], che si occupano rispettivamente del blocco
di intra-previsione, del blocco di inter-previsione e del blocco di trasformazione. Tutte le ar-
chitetture presentate sono state implementate su FPGA. Proprio l’implementazione su FPGA
potrebbe essere la chiave per il futuro standard, dal momento che la FPGA è uno strumento
potente, economicamente vantaggioso e che permette il riuso di risorse.

                                               32
Capitolo 5

Il futuro degli standard di codifica video

Nel seguente capitolo, verrà svolta un’analisi riguardo tutti gli aspetti che sono stati solleva-
ti nella conferenza di Strasburgo, la riunione del gruppo MPEG con le principali compagnie
mondiali che si occupano di video coding, svoltasi in Ottobre 2014. Verranno analizzati i cam-
biamenti implementati nell’ultimo test esplorativo (JEM7) e quali miglioramenti si sono otte-
nuti nel JEM rispetto a quelli che erano stati gli aspetti emersi dai brainstorming del meeting
di Strasburgo.

5.1     Generalità ed Analisi dei brainstorming
ITU-T VCEG [1] e ISO/IEC MPEG [3] si sono uniti per formare un gruppo di lavoro che nasce
dalla necessità, che si è avuta negli ultimi anni, di creare un nuovo standard per quelli che
sono i principali bisogni del futuro della codifica video. Il gruppo di ricerca, conosciuto come
Joint Video Exploration Team (JVET), sta eseguendo un’attività di esplorazione congiunta,
per valutare i potenziali cambiamenti in chiave tecnologica. Il 21 ottobre 2014 si è svolto a
Strasburgo, in Francia, un incontro ospitato dal Moving Picture Experts Group (MPEG) con
ospiti i membri della comunità dell’industria video. Lo scopo della conferenza era quello di
capire, tramite un gruppo di discussione e un brainstorming mirato, quale direzione dovesse
essere percorsa per il futuro degli standard per i video codec. I punti chiave definiti per la
conferenza possono essere raccolti nelle 6 domande proposte ai partecipanti:

                                               33
1. How much additional compression (compared to HEVC) do you foresee to be needed for
      your market(s)? What are the desirable frame rates and resolutions?

   2. What should be “the bar” to surpass to make a new standard? (In terms of tradeoff of
      compression benefit versus complexity, compatibility with existing designs, etc.)

   3. How would it affect your business (and in what time frame) if a new video codec would
      deliver 25% reduction in data rate for the same video quality compared to HEVC?

   4. Do you see market segments where HEVC may not be successful due to lack of functio-
      nality?

   5. What will be the applications with highest amount of video data delivery 5-10 years
      from now?

   6. What would change if the industry uses the new codec as (partly or totally) royalty-free?

In questa sezione verranno raccolti i principali risultati emersi da questo incontro, andando ad
analizzare alcune delle presentazioni di diverse aziende ospiti, fra cui Netflix, Ericson, Google,
Huawei, Orange, Qualcomm e Samsung [3]. In questo lavoro di tesi, delle sei domande propo-
ste nella conferenza, verranno analizzate solo le prime cinque, in quanto hanno una valenza
prettamente tecnologica. La domanda numero sei non verrà dunque presa in considerazione.
Google evidenzia la necessità di un nuovo codec, dovuta alla crescita della qualità e dell’utilizzo
dei video, tenendo conto del fatto che le tecnologie sono ormai superiori rispetto i tradizionali
video 2D. Quello che si auspica venga raggiunto con il nuovo codec, è sicuramente un miglio-
ramento in termini di riduzione delle dimensioni dei video. Analizzando la presentazione di
Netflix si evince, anche in questo caso che c’è la necessità di migliorare qualcosa in termini di
risparmio di memoria. Nel loro intervento, viene presentata una “codec wish list” che riporta
i seguenti punti:

    • Bisogno di un elevato frame rate

    • Maggiore gamma di colori rappresentabile

    • Un maggiore “Dinamic Range”(l’intervallo tra le aree visibili più chiare e quelle più
      scure)

                                                 34
• Maggiore qualità video e non solo fedeltà del segnale

    • La necessità di risparmiare memoria

In risposta alla domanda numero 3 , Netflix afferma che la riduzione della velocità di trasmis-
sione del 25% non sia sufficiente. Orange (Telecom francese) mostra come i servizi video siano
la tipologia di contenuti che utilizza la maggior quantità di dati nella sua rete. Sottolinea la
necessità di migliorare la gamma di colori e la fluidità dell’immagine, aumentando il framerate.
Dai futuri standard, vorrebbe la riduzione della complessità di implementazione e dei consumi
di energia. In particolare, vorrebbe la riduzione del 50% del bitrate e un framerate di 100 Hz
per le applicazioni televisive. Ritiene che la riduzione della velocità di trasmissione del 25% in-
fluenzerebbe marginalmente gli affari. L’ultima presentazione che viene analizzata è quella di
Huawei. Il colosso cinese sottolinea il fatto che le reti stanno diventando lente in confronto alle
moderne tecnologie dei dispositivi. Mostra infatti come, nel campo mobile, il 50% della banda è
occupata da servizi video, con una conseguente formazione di colli di bottiglia. Anche Huawei
dichiara che la riduzione della velocità di trasmissione del solo 25% non sia sufficiente, e pone
enfasi alla necessità di sviluppare un codec video che sia pensato anche per le applicazioni in
servizi mobile. Un aspetto secondo loro da tenere in considerazione, deve essere sicuramente
il miglioramento della tecnologia hardware utilizzata [24]. I risultati emersi dalla conferenza
possono essere riassunti nella Tabella 5.1. Nella colonna di sinistra è riportata una sintesi delle
domande, in quella di destra le necessità fatte presenti dalle aziende. Come segnalato all’inizio
della Sezione 4.1 la domanda numero sei non verrà presa in considerazione perché non rientra
negli obbiettivi di questa tesi.

                                                35
Tabella 5.1: Riepilogo delle necessità emerse dopo la conferenza di Strasburgo.
       Domande della conferenza                                Risposte degli intervistati
                                                  Google         Netflix        Orange        Huawei
D1: Quanta compressione aggiuntiva si Risoluzioni Framerate                     1080p per Risoluzioni
prevede di aver bisogno (in relazione al- mirate an- elevato,                   mobile, 4K maggiori
l’HEVC)? Si vuole un framerate e una che                   alle risolzioni      per TV        di      720p
risoluzione specifica?                            tecnologie     maggiori                     per       ap-
                                                  3D             dell’HD                      plicazioni
                                                                                              mobile
D2: Quali sono i limiti da superare nella Riduzione              Risparmio      Riduzione     Minor
realizzazione di un nuovo standard?               dimen-         memoria,       del bitrate bitrate,
                                                  sioni          maggiore       del      50%, miglior
                                                  video          gamma          minor         computa-
                                                                 di     colori consumo        zione con
                                                                 e     qualità di energia    consumi
                                                                 video                        energetici
                                                                                              accettabili
D3: Come cambierebbero i vostri affari se –                      Non basta Impatto            –
la velocità di trasmissione nel nuovo codec                     un incre- marginale
venisse incrementata del 25%?                                    mento del
                                                                 25%
D4: Pensi che in qualche area del mercato –                      No             No            No
HEVC possa non avere successo a causa di
mancanza di funzionalità?
D5: Quale sarà il campo di applicazione          Video 3D       Cloud          Servizi       Videosharing
dove il traffico di dati video si distribuirà                                  televisivi,   e     appli-
maggiormente nei prossimi anni?                                                 appli-        cazioni
                                                                                cazioni       mobile
                                                                                social

                                                 36
Puoi anche leggere