Standard di compressione video H.264.

Transcript

Standard di compressione video H.264.
Documento tecnico
Standard di compressione video H.264.
Nuove opportunità per il settore della videosorveglianza.
Sommario
1.Introduzione 3
2. Sviluppo dello standard H.264 3
3.In cosa consiste la compressione video 4
4. Profili e livelli dello standard H.264 5
5.Tipi di fotogrammi 5
6.Metodi di base per la riduzione dei dati 6
7.Efficienza dello standard H.264 7
8.Conclusione 9
1.
Introduzione
Il nuovo standard di compressione video H.264 (talvolta chiamato MPEG-4 Parte 10/AVC dove AVC è
l’acronimo di Advanced Video Coding), è destinato a diventare lo standard video più diffuso negli anni a
venire.
H.264 è uno standard aperto, acquistabile dietro licenza, che supporta le tecniche di compressione video
più efficienti attualmente disponibili. Un codificatore video che utilizza lo standard H.264 è infatti in
grado di ridurre le dimensioni dei file video digitali di oltre il 80% rispetto al formato Motion JPEG e fino
al 50% rispetto allo standard MPEG-4 Parte 2 tradizionale, senza compromessi in termini di qualità
delle immagini. Ciò significa che per la gestione dei file video sono necessari meno spazio di memorizzazione e larghezza di banda, ovvero che è possibile ottenere immagini di qualità migliore a parità di velocità di trasmissione in bit.
Frutto del lavoro congiunto delle organizzazioni responsabili della definizione di standard per i settori
delle telecomunicazioni e IT, lo standard H.264 è destinato ad avere una diffusione ancora più ampia di
quelli precedenti.
Lo standard H.264 è già stato implementato con successo in numerosi dispositivi elettronici, come cellulari e lettori video digitali, accolto con grande entusiasmo dal pubblico, e adottato anche da molti
fornitori di servizi di memorizzazione online e società di telecomunicazioni.
Nel settore della videosorveglianza, è altamente probabile che lo standard di compressione H.264 venga
rapidamente adottato per applicazioni che richiedono risoluzioni e velocità di trasmissione in fotogrammi elevate, ad esempio per la sorveglianza di aeroporti, punti vendita, banchi e casinò. Questi sono infatti gli ambiti in cui la minore larghezza di banda e gli spazi di memorizzazione ridotti possono offrire i
vantaggi più significativi.
Lo standard H.264 è destinato probabilmente anche ad accelerare la diffusione delle telecamere di rete
con risoluzione megapixel, poiché questa tecnologia di compressione ultra-efficiente è in grado di ridurre le dimensioni dei file di grandi dimensioni e la velocità di trasmissione in bit senza compromettere la
qualità delle immagini. Il nuovo standard presenta tuttavia anche degli svantaggi. Benché offra vantaggi significativi in termini di larghezza di banda e spazio di memorizzazione, questo standard richiede però
l’implementazione di telecamere di rete e stazioni di monitoraggio ad alte prestazioni.
2.
Sviluppo dello standard H.264
H.264 è frutto di un progetto congiunto del gruppo VCEP (Video Coding Experts Group) di ITU-T e del
gruppo MPEG (Moving Picture Experts Group) di ISO/IEC. ITU-T è il settore che coordina gli standard per
le telecomunicazioni per conto dell’International Telecommunication Union. ISO è l’acronimo di International Organization for Standardization mentre IEC è l’acronimo di International Electrotechnical Commission, ossia della commissione responsabile della definizione di tutti gli standard per le apparecchiature elettriche, elettroniche e le tecnologie correlate. H.264 è il nome usato da ITU-T, mentre MPEG-4
Parte 10/AVC è il nome talvolta usato da ISO/IEC che considera il nuovo standard un’integrazione della
suite MPEG-4. La suite MPEG-4 comprende ad esempio il formato MPEG-4 Parte 2, ossia lo standard
usato per i codificatori video e le telecamere di rete IP.
Introdotto allo scopo di colmare le lacune degli standard di compressione video precedenti, lo standard
H.264 mantiene fede a tale promessa supportando:
>
>
>
>
>
Implementazioni in grado di garantire una riduzione media della velocità di trasmissione in bit del
50%, a parità di qualità video, rispetto ad altri standard video
Resistenza agli errori studiata per garantire una maggiore tolleranza agli errori di trasmissione su vari
tipi di reti
Bassa latenza e qualità migliore in presenza di latenza alta
Una sintassi più intuitiva che semplifica le operazioni di implementazione
Un processo di decodifica basato su corrispondenze esatte che definisce esattamente i calcoli numerici che devono essere eseguiti dai codificatori e decodificatori, e che limita il numero di errori
3
Lo standard H.264 è in grado anche di supportare una vasta gamma di applicazioni con trasmissioni in
bit diverse. Se utilizzato per le applicazioni video per intrattenimento, ad esempio, ossia per le trasmissioni broadcast, satellitari, via cavo e DVD, questo standard è in grado di garantire prestazioni comprese
tra 1 e 10 Mbit/s a latenze elevate. Se utilizzato invece per i servizi di telecomunicazione, lo standard è
in grado di garantire velocità di trasmissione i bit inferiori a 1 Mbit/s a latenze basse.
3.
In cosa consiste la compressione video
La compressione video ha lo scopo di ridurre e rimuovere i dati video ridondanti in modo che il file video
digitale risultante possa essere trasmesso e memorizzato più agevolmente.
Il processo consiste nell’applicare un algoritmo al video di origine allo scopo di creare un file compresso
pronto per la trasmissione o la memorizzazione. Al momento della riproduzione del file compresso, viene
invece applicato un algoritmo inverso che genera un video contenente praticamente lo stesso contenuto
del video originale. Il tempo richiesto per comprimere, trasmettere, decomprimere e visualizzare un file
rappresenta la cosiddetta latenza. Più avanzato è l’algoritmo di compressione e più alta è la latenza, a
parità di potenza di elaborazione.
Ciascuna coppia di algoritmi usati contemporaneamente rappresenta un codec (codificatore/decodificatore) video. I codec video che implementano standard diversi non sono generalmente compatibili tra di
loro, il che significa che il video compresso con uno standard non può essere normalmente decompresso
usando un altro standard. Un decodificatore che supporta lo standard MPEG-4 Parte 2 non può ad
esempio essere usato con un codificatore che supporta lo standard H.264, semplicemente perché uno dei
due algoritmi non è in grado di decodificare l’output dell’atro algoritmo, anche se è tuttavia possibile
implementare più algoritmi nello stesso software o hardware per poter comprimere più formati.
I vari standard di compressione video utilizzano metodi diversi per ridurre i dati e offrono quindi velocità di trasmissione in bit, qualità e latenze diverse.
I risultati possono variare anche nel caso in cui si utilizzino codificatori che supportano lo stesso standard di compressione, perché i progettisti dei vari sistemi possono avere implementato funzioni diverse
dello standard. L’applicazione di più implementazioni è sempre possibile se l’output del codificatore è
conforme al formato dello standard e del decodificatore. Ciò è molto vantaggioso perché le singole implementazioni possono avere caratteristiche e costi diversi. Un software professionale per la masterizzazione in tempo reale di contenuti su supporti ottici dovrebbe poter essere in grado di produrre video
codificato di qualità migliore rispetto a un codificatore hardware integrato in una periferica portatile e
usato per codificare in tempo reale i contenuti per le videoconferenze. Ciò significa però che nessuno
standard è in grado di garantire una velocità di trasmissione in bit specifica. Inoltre, occorre tenere conto che le prestazioni dei singoli standard non possono essere realmente confrontate tra di loro o con
implementazioni diverse dello stesso standard, senza prima definire le specifiche di implementazione.
I decodificatori, al pari dei codificatori, devono implementare tutte le parti richieste di uno standard per
decodificare un flusso in bit conforme. Questo perché ciascuno standard specifica esattamente le modalità che devono essere usate dall’algoritmo di decompressione per ripristinare ciascun bit del video
compresso.
Il seguente grafico mostra un confronto tra le velocità di trasmissione in bit, a parità di qualità immagini, offerte dai seguenti standard video: Motion JPEG, MPEG-4 Parte 2 (senza compensazione del movimento), MPEG-4 Part 2 (con compensazione del movimento) e H.264 (profilo di base).
4
Ripresa di un'area di ingresso
H.264 (profilo di base)
MPEG-4 Parte 2 (senza compensazione del movimento)
MPEG-4 Parte 2 (con compensazione del movimento)
Velocità di trasmissione in bit (kbit/s)
7,000
Motion JPEG
6,000
5,000
4,000
3,000
2,000
1,000
0
50
100
Tempo
Figura 1.
4.
Un codificatore che supporta lo standard H.264 genera fino al 50% di bit al secondo in meno per una sequenza video campione
rispetto al un codificatore che supporta lo standard MPEG-4 con compensazione del movimento. I codificatori che utilizzano lo
standard H.264 sono tre volte più efficienti rispetto a quelli che utilizzano lo standard MPEG-4 senza compensazione del movimento e fino a sei volte più efficienti rispetto allo standard Motion JPEG.
Profili e livelli dello standard H.264
L’obiettivo del gruppo congiunto che ha definito lo standard H.264 era principalmente quello di creare
una soluzione semplice e chiara, che limitasse al minimo le opzioni e le funzioni. Una delle caratteristiche
più interessanti di questo standard, al pari di altri standard video, deriva dal fatto che le funzioni sono
raggruppate in profili (ossia in set di funzioni algoritmiche) e livelli (classi di prestazioni) studiate per
fornire un supporto ottimale per tutte le applicazioni e i formati più diffusi e comuni.
Lo standard H264 contiene sette profili che supportano classi di applicazioni specifiche. Ciascun profilo
specifica i set di funzioni che possono essere usati dal codificatore, limitando di conseguenza la complessità di implementazione del decodificatore.
Le telecamere di rete e i codificatori video utilizzano generalmente un profilo chiamato di base, destinato principalmente ad applicazioni che utilizzano un numero di risorse di elaborazione limitato. Il profilo
di base è quello più indicato, considerate le prestazioni in tempo reale disponibili nei codificatori integrati nei prodotti con tecnologia video di rete. Questo profilo offre anche una bassa latenza, che rappresenta un requisito critico per i sistemi di videosorveglianza ed è molto importante ai fini dell’attivazione
dei comandi PTZ in tempo reale nelle telecamere PTZ.
H.264 offre 11 livelli o classi di funzioni che limitano i requisiti da soddisfare i termini di prestazioni,
larghezza di banda e memoria. Ciascun livello definisce le velocità di trasmissione in bit e di decodifica
in macroblocchi al secondo, per risoluzioni comprese tra QCIF e HDTV e oltre. Più alta è la risoluzione e
maggiore è il livello richiesto.
5.
Descrizione dei fotogrammi
I codificatori possono usare vari tipi di fotogrammi, come I, P e B, a seconda del profilo H.264.
Un fotogramma I o intra-fotrogramma è un fotogramma a sé stante che può essere decodificato in modo
indipendente senza fare riferimento ad altre immagini. La prima immagine di una sequenza video è sempre rappresentata da un fotogramma I. Questo tipo di fotogrammi viene sempre usato come punto iniziale per i nuovi visualizzatori o come punto di risincronizzazione nel caso in cui il flusso in bit trasmesso risulti danneggiato. I fotogrammi I possono essere usati anche per le funzioni di avanzamento veloce,
il riavvolgimento e altre funzioni di accesso. Generalmente i codificatori inseriscono automaticamente
fotogrammi I a intervalli regolari o su richiesta, se il flusso video deve essere visualizzato su nuovi client.
5
Lo svantaggio di questo tipo di fotogrammi risiede nel fatto che richiedono una velocità di trasmissione
in bit elevata, anche se non producono un numero elevato di artefatti.
I fotogrammi P, ossia i fotogrammi codificati con riferimento al cambiamento previsto, usano come riferimento sezioni dei fotogrammi I e/o P precedenti per codificare i fotogramma. Questo tipo di fotogrammi richiede generalmente velocità di trasmissione in bit minori rispetto ai fotogrammi I, ma in compenso
è molto sensibile agli errori di trasmissione a causa del fatto che è strettamente legato ai fotogrammi di
riferimento P e I precedenti.
I fotogrammi B o “bi-predittivi, fanno riferimento sia ai fotogrammi precedenti che a quelli successivi.
I
Figura 2.
B
B
P
B
B
P
B
B
I
B
B
P
Sequenza tipica con fotogrammi I, B e P. Un fotogramma A-P può fare riferimento solo a fotogrammi I o P precedenti, mentre un
fotogramma B può fare riferimento a fotogrammi I o P precedenti e successivi.
Quando un decodificatore video ripristina il video decodificando il flusso video un fotogramma alla volta, la decodifica deve sempre iniziare con un fotogramma I. I fotogrammi P e B, se usati, devono essere
decodificati insieme ai fotogrammi di riferimento.
Il profilo H.264 di base usa solo fotogrammi di tipo I o P, quindi è ideale per le telecamere di rete e i
codificatori video perché l’assenza di fotogrammi B riduce la latenza.
6.
Metodi di base per la riduzione dei dati
Per ridurre i dati video, è possibile usare vari metodi sia a livello di singolo fotogramma che di serie di
fotogrammi. A livello di singolo fotogramma, i dati possono essere ridotti rimuovendo semplicemente le
informazioni inutilizzate, operazione che ha un impatto sulla risoluzione dell’immagine.
I dati video di una serie di fotogrammi possono essere ridotti utilizzando metodi come la codifica differenziale, usata sia nello standard H.264 che in molti altri standard di compressione video. Nella codifica
differenziale, ciascun fotogramma viene confrontato con quello di riferimento (ossia con un fotogramma
I o P precedente) e vengono codificati solo i pixel modificati rispetto al fotogramma di riferimento. Quindi, il numero dei valori dei pixel codificati e trasmessi risulta significativamente minore.
Figura 3.
Nel formato Motion JPEG le tre immagini della sequenza mostrata nelle figure vengono codificate e trasmesse come immagini
univoche distinte (fotogrammi I) senza dipendenze tra le immagini.
6
Video non trasmesso
Video trasmesso
Figura 4.
Nella codifica differenziale (usata nella maggiore parte degli standard di compressione video compreso lo standard H.264), viene
codificata interamente solo la prima immagine (fotogramma I). Per le due immagini successive (fotogrammi P) vengono stabiliti dei
collegamenti agli elementi statici della prima immagine, come la casa, mentre gli oggetti in movimento, come l’uomo che corre,
vengono codificati usando vettori di movimento, in modo da ridurre la quantità di informazioni trasmesse e memorizzate.
Il livello di codifica può essere ulteriormente ridotto basando il rilevamento e la codifica delle differenze
sui blocchi di pixel (macroblocchi) anziché sui singoli pixel, in modo da confrontare aree di dimensioni
maggiori, codificare solo i blocchi che presentano differenze significative e ridurre di conseguenza la
velocità di elaborazione necessaria per identificare la posizione delle aree modificate.
La codifica differenziale non consente tuttavia di ridurre significativamente i dati, se il video contiene
una percentuale elevata di oggetti in movimento. Quindi, in questo caso è necessario usare tecniche
come la compensazione del movimento basata su blocchi. Questa tecnica individua la parte di un nuovo
fotogramma di una sequenza video che corrisponde a quella di un fotogramma precedente, anche se
riferito a una posizione diversa, dividendo successivamente il fotogramma in una serie di macroblocchi.
Ciò consente di creare ossia di “prevedere”, utilizzando un blocco alla volta, un nuovo fotogramma, ad
esempio un fotogramma P, confrontando i singoli blocchi con il fotogramma di riferimento. Se rileva una
corrispondenza, il codificatore codifica semplicemente la posizione in cui si trova il blocco corrispondente all’interno del fotogramma di riferimento. La cosiddetta codifica del vettore di movimento richiede
una minore velocità in bit rispetto alla codifica del contenuto effettivo del blocco.
Finestra di ricerca
Blocco corrispondente
Vettore di movimento
Fotogramma di
riferimento precedente
Figura 5.
7.
Blocco di destinazione
Fotogramma P
Descrizione della compensazione del movimento basata su blocchi.
Efficienza dello standard H.264
Lo standard H.264 potenzia la tecnologia di compressione video. Lo standard H.264 utilizza un nuovo
schema avanzato di previsione temporaneo per la codifica dei fotogrammi I, in grado di ridurre significativamente le dimensioni in bit dei fotogrammi I contenuti in ciascun macroblocco di un fotogramma.
Questo risultato viene ottenuto ricercando i pixel corrispondenti tra i pixel già codificati che “confinano”
con il nuovo blocco da 4x4 pixel da intra-codificare. La possibilità di riutilizzare i valori dei pixel già
7
codificati consente di ridurre significativamente le dimensioni in bit. Questa nuova funzione è uno degli
elementi più interessanti della tecnologia H.264. Per comprenderne l’importanza, basta pensare che se
un flusso H.264 utilizzasse solo fotogrammi I, le dimensioni del file risultante sarebbero di gran lunga
inferiori a quelle di un flusso Motion JPEG contenente solo fotogrammi I.
In questa modalità, quattro dei pixel
inferiori del blocco precedente vengono copiati in parte del macroblocco
intra-codificato.
Figura 6.
Figura 7.
In questa modalità, gli ultimi quattro
pixel a destra del blocco a sinistra vengono copiati in parte del macroblocco
intra-codificato.
In questa modalità, gli otto pixel inferiori del blocco in alto vengono copiati
in diagonale in parte del macroblocco
intra-codificato.
Descrizione di alcune delle modalità utilizzate dalla funzione di previsione temporanea per codificare 4x4 pixel di uno dei 16 blocchi che costituiscono il macroblocco. Ciascuno dei 16 blocchi del macroblocco può essere codificato con modalità diverse.
Immagine di origine
Immagine temporanea
Immagine residua
Immagine finale
Le immagini precedenti mostrano l’efficienza dello schema di previsione temporaneo dello standard H.264, in cui l’immagine temporanea viene trasmessa “gratuitamente”. Per produrre l’immagine di output, è infatti necessario solo codificare il contenuto residuo e le immagini stimate temporanee.
Lo standard H.264 offre anche una migliore compensazione del movimento basato sui blocchi, generalmente usato per la codifica dei fotogrammi di tipo P e B. I codificatori che supportano lo standard H.264
possono infatti scegliere di ricercare i blocchi corrispondenti, con una precisione nell’ordine dei subpixel,
in alcuni o più fotogrammi di riferimento. Se necessario, è possibile anche modificare le dimensioni e la
8
forma dei blocchi per ottimizzare la ricerca. Nelle aree del fotogramma di riferimento in cui non sono
presenti blocchi corrispondenti, è invece possibile usare macroblocchi intra-codificati. La maggiore flessibilità della funzione di compensazione del movimento basata su blocchi dello standard H.264 è particolarmente utile durante la videosorveglianza di aree molto affollate, poiché consente di disporre sempre
di immagini di alta qualità. La compensazione del movimento è la funzione più critica dei codificatori
video, quindi le modalità e il livello con cui può essere integrata nei codificatori che supportano lo standard H.264 può avere un impatto significativo sul livello di compressione del video.
Lo standard H.264 consente di ridurre gli artefatti dovuti alla presenza di blocchi, normalmente presenti nel video ultra-compresso che si ottiene con gli standard Motion JPEG e MPEG, ossia con standard
diversi da H.264, tramite il cosiddetto filtro di deblocking. Questo filtro attenua i bordi dei blocchi utilizzando una potenza adattiva e consente di ottenere un video decompresso praticamente perfetto.
Figura 8.
8.
Gli artefatti dovuti alla presenza di blocchi, presenti nell’immagine ultra-compressa a sinistra, vengono ridotti grazie all’applicazione del filtro di deblocking, come si vede nell’immagine a destra.
Conclusioni
Lo standard H.264 rappresenta uno straordinario avanzamento nell’ambito della tecnologia di compressione video, poiché offre tecniche che consentono di comprimere più efficientemente i dati grazie alla possibilità di fare previsioni accurate e a una migliore tolleranza agli errori. Il nuovo standard offre l’opportunità
di creare codificatori video più efficienti in grado di gestire flussi video di qualità più elevata, fornire velocità di trasmissione in fotogrammi più alte e risoluzioni più elevate a parità di velocità in bit (rispetto agli
standard precedenti) oppure video di qualità equivalente a velocità di trasmissione in bit più basse.
H.264 è il primo standard internazionale per la compressione video sviluppato congiuntamente da ITU,
ISO e IEC. Grazie alla sua flessibilità è già stato implementato con successo in numerose applicazioni
come i lettori DVD ad alta definizione (come i lettori Blu-ray), le trasmissioni video digitali compresi i
programmi televisivi ad alta definizione, le applicazioni di memorizzazione online (come YouTube), i cellulari di terza generazione, software come QuickTime, Flash e i sistemi operativi di MacOS X di Apple
Computer, e nelle consolle per video giochi come la PlayStation 3. Grazie al suo uso sempre più diffuso
in svariati settori e applicazioni personali e professionali, lo standard H.264 è sicuramente destinato a
imporsi su tutti gli standard e i metodi attualmente in uso.
La progressiva integrazione del formato H.264 nelle telecamere di rete, i codificatori video e il software
per la gestione di video spingerà i progettisti e gli integratori di sistemi a verificare che i prodotti e i
fornitori supportino il nuovo standard. Per il momento i prodotti con tecnologia video di rete che supportano sia H.264 che Motion JPEG sono gli unici in grado di garantire massima flessibilità e ampia
compatibilità in termini di integrazione.
9
31806/IT/R1/0804
www.axis.com
Informazioni su Axis Communications
Axis é una societá IT che offre soluzioni video di rete
per installazioni professionali. La Societá é il leader
mondiale per il video di rete, che stimola il mercato per
la transazione dal video analogico a quello digitale di
sorveglianza. I prodotti e le soluzioni Axis si concentrano sulla sorveglianze di sicurezza e monitoraggio remoto, e sono basate su piattaforme innovative e a tecnologia aperta.
Axis é una societá da casa svedese estesa in tutto il
mondo, con filiali aperte in 18 Paesi e che ha stretto
collaborazione con partners sparsi in piú di 70 Nazioni.
Fondata nel 1984, Axis é presente nei cambi OMX Exchange, Large Cap e Information Technology. Per ulteriori informazioni su Axis, si prega di visitare il nostro
sito web su www.axis.com
©2008 Axis Communications AB. AXIS COMMUNICATIONS, AXIS, ETRAX, ARTPEC e VAPIX sono marchi di Axis AB registrati o in fase di registrazione
in diverse giurisdizioni. Tutti gli altri nomi di Società e prodotti sono marchi o marchi registrati di proprietà dei rispettivi proprietari. Ci riserviamo il
diritto di apportare modifiche senza preavviso.