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.