Lo standard H.264/AVC è stato definito nel 2003 dalla ITU-T con lo scopo di fornire un supporto ad applicazioni di vario genere con una qualità superiore ai precedenti standard di codifica video.
E’ suddiviso in tre profili: Baseline, Main, Extended, ciascuno con delle proprie caratteristiche e potenziali ambiti applicativi. Tra le principali aree applicative si possono citare:
- Televisione via cavo, via satellite, digitale terrestre, DSL, ecc.
- Memorizzazione su supporti ottici.
- Servizi di conversazione voce e video su ISDN, IP, LAN DSL, su reti wireless e mobili, ecc.
- Servizi di Video-on-Demand e di video streaming su varie piattaforme di rete.
- Servizi di Multimedia Messaging (MMS).
Il codec H.264 consiste di due blocchi principali: il Video Coding Layer (VCL) che si occupa della codifica vera e propria dei dati video, ed il Network Abstraction Layer (NAL) che si occupa di organizzare i dati codificati in modo adatto per il trasporto in rete.
La figura seguente esemplifica tale architettura, in cui è evidenziata la separazione tra il livello di pertinenza del codec da quello di trasporto per entrambi i lati, encoder e decoder:
Il VCL consiste di un’unità che si occupa della compressione, e opera ai livelli sintattici di blocco, macroblocco, e slice. E’ progettato in modo da essere il più possibile indipendente dalla rete, e contiene vari strumenti di codifica che migliorano la robustezza agli errori del flusso video compresso.
Il NAL adatta le stringhe di bit generate dal VCL a vari ambienti di rete e multiplex. Copre tutti i livelli sintattici al di sopra del livello di slice. Il NAL permette ai dati codificati dal VCL di poter essere trasmessi su RTP/UDP/IP, H.324/M, MPEG-2 transport, H.320.
La separazione tra VCL e NAL consente una separazione tra gli aspetti del codec relativi all’elaborazione del segnale e quelli relativi al trasporto su un canale di comunicazione, separazione che si traduce in una maggiore flessibilità in fase di progetto delle applicazioni.
Le nuove caratteristiche introdotte dallo standard H.264 possono essere suddivise in categorie:
- miglioramento della capacità di predire i valori del contenuto dell’immagine da codificare.
- Miglioramento dell’efficienza della codifica.
- Robustezza nei confronti di errori/perdite e flessibilità nel funzionamento in vari ambienti di rete.
Per ognuna di queste categorie lo standard specifica vari strumenti, un sottoinsieme dei quali viene adottato a seconda del profilo (Baseline, Main, Extended).
In base alle caratteristiche di ogni profilo si può dire che il profilo Baseline è adatto per applicazioni come videotelefonia, videoconferenza, e comunicazioni wireless; il profilo Main si può utilizzare per applicazioni di memorizzazione video e broadcasting televisivo; infine il profilo Extended si presta bene ad applicazioni di streaming media.
Tools di error-resilience in H.264
Lo standard H.264 sfrutta i tools già presenti in altri schemi di codifica video e ne introduce dei nuovi per migliorare le prestazioni derivanti dalla trasmissione in rete.
Ecco una breve rassegna delle tecniche utilizzate dal codec H.264:
- Intra Placement: posizionamento di immagini, blocchi, macroblocchi, slices codificati intra per contrastare effetti di drifting. H.264 consente la predizione di macroblocchi Intra anche da macroblocchi Inter .
- Picture Segmentation: H.264 consente la segmentazione di un’immagine sotto forma di slices. La disponibilità di una slice codificata consente di ricostruire i macroblocchi di questa slice.
- Reference Picture Selection: la selezione di un’unità di riferimento, sia essa una immagine, una slice, o un macroblocco, può essere utilizzata come strumento di robustezza nei confronti degli errori.
- Data Partitioning: si creano più stringhe di bit per una slice (stringhe dette partizioni), e si allocano tutti i simboli di una slice in una singola partizione che ha una stretta relazione semantica con ogni altra. In H.264 sono presenti tre tipi di partizione: Header information, Intra Partition, Inter Partition.
- Parameter Sets: un sequence parameter set contiene tutta l’informazione relativa ad una sequenza di immagini; un picture parameter set contiene tutta l’informazione relativa a tutte le slices appartenenti ad una singola immagine. Le informazioni sui parameter sets possono essere inviate in-band o out-of-band.
- Flexible Macroblock Ordering: disponibile solo per i profili Baseline ed Extended, consente di assegnare i macroblocchi alle slices in un ordine diverso da quello di scansione normalmente utilizzato. Ciò consente una maggiore efficacia nel mascheramento degli errori nel caso di perdita di una slice.
- Redundant Slices: consente ad un encoder di piazzare, in aggiunta ai macroblocchi della slice stessa, una o più rappresentazioni ridondanti dello stesso macroblocco nello stesso bit stream. La rappresentazione ridondante può essere codificata utilizzando diversi parametri di codifica.
Riferimenti
-
T. Wiegand, G. J. Sullivan, G. Bjøntegaard, and A. Luthra, “Overview of the H.264/AVC video coding standard,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, pp. 560–576, July 2003.
- T. Stockhammer, M. Hannuksela, and T.Wiegand, “H.264/AVC in wireless environments,” IEEE Transactions on Circuits and Systems for Video Technology, vol. 13, pp. 657–673, July 2003.
-
S. Wenger, “H.264/AVC over IP”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 7. (2003), pp. 645-656.
- Iain E. G. Richardson , “H.264 and MPEG-4 Video Compression”, Wiley, 2003
Antonio Mancosu
Postato in: Comunicazioni Multimediali | Messo il tag: Antonio Mancosu, codifica, decoder, encoder, error resilience, H.264, H.264/AVC, MPEG-4, NAL, streaming, VCL

Quando dice :
Lo standard H.264/AVC è stato definito nel 2003 dalla ITU-T con lo scopo di fornire un supporto ad applicazioni di vario genere con una qualità superiore ai precedenti standard di codifica video.
A quali Standard fa riferimento? mi interessa perchè siamo valutando l’utilizzo di sistemi over Ip per la distribuzione di contenuti multimediali a bordo delle nostre imbarcazioni
saluti
Umberto
mail to umberto.filippini@fincantieri.it
La versione dello standard H.264/AVC di cui parlo è quella approvata nel 2003. Tuttavia esiste una versione più recente approvata nel Novembre 2007 e la si può trovare al link seguente:
http://www.itu.int/rec/T-REC-H.264-200711-I/en
Antonio Mancosu