Sei sulla pagina 1di 10

Compressione dei filmati: dall'H.

261 all' MPEG4 AVC


Autore: F.Sonnati - Lithium.it 24/12/2003

Parte N°1 : Introduzione

Introduzione

Fin dagli albori dell'informatica e dell'elettronica digitale si è sentita l'esigenza di comprimere lo spazio occupato dalle
informazioni manipolate. In molte applicazioni infatti, la mole di dati è tale da rendere inpraticabile la manipolazione ai
fini dell'archiviazione, dell'elaborazione e della trasmissione.

Questa esigenza è molto forte soprattutto nei segnali multimediali audio-video che, non compressi, richiedono quantità
di memoria enormi e ampiezze di banda improponibili per la trasmissione. Per fortuna esistono tutta una serie di
circostanze che permettono una compressione efficace di immagini, suoni e filmati. Adottando approprieti algoritmi si
riesce infatti ad individuare e scartare le informazioni ridondanti ottenendo fattori di compressione anche molto spinti.

In questo articolo analizzeremo nel dettaglio le basi della compressione dei segnali video partendo dal primo standard
significativo (H.261) per arrivare al più recente stato dell'arte rappresentato dall' MPEG-4 Advanced Video Codec (alias
H.264).

Gli standard di base della compressione video : H.261, H.263, H.264


Abbiamo già parlato ampiamente della compressione delle immagini statiche nei due articoli dedicati al JPEG e al
JPEG2000, in questo articolo vogliamo invece affrontare il problema della compressione dei filmati video.

Se il problema della compressione delle immagini si stava risolvendo con la definizione dello standard JPEG per la
compressione digitale dei flussi video ancora nel 1990 non si era trovata una soluzione soddisfacente. Ed il problema
non era certamente da poco.

Pensate infatti che un filmato full-pal è costituito da 25 fotogrammi al secondo ampi 704x576 pixel. In formato RGB a
24bit ciò significa 30Mbyte/s di flusso dati. Anche utilizzando una tecnica di sottocampionamento delle componenti
cromatiche, come una 4:2:2 o una 4:2:0, il flusso si mantiene ancora intorno ai 15-20 Mbyte/s, un valore enorme, non
praticabile neanche per l’archiviazione digitale dei flussi video che richiederebbe qualcosa come 72GB all’ora.

Essendo un flusso video composto da una successione di singoli fotogrammi, la cosa più naturale da fare in prima
istanza è comprimere singolarmente i singoli fotogrammi. Utilizzando ad esempio il JPEG si ottiene il noto formato
MotionJPEG, spesso utilizzato in schede di montaggio video ed acquisitori. Lo stesso principio di funzionamento dell’
M-JPEG si può ritenere alla base del formato DV tipico delle videocamere digitali (vedi appendice I).

Un tale approccio può portare ad una compressione di un fattore 5-10 con pochissima perdita di informazione
percepibile dall’occhio umano, in modo da ridurre la banda del flusso dagli originari 30MByte/s a circa 3MByte/s. Questi
valori sono chiaramente ancora eccessivi per ambiti quali l’archiviazione su supporti ottici e del tutto impossibili da
sostenere per effettuare video comunicazione uno a uno (video conferenza) o uno a molti (trasmissioni broadcast).

Anche riducendo la risoluzione a 352x288 (CIF) o 176x144(QCIF) per fare video conferenza, si avrebbe comunque un
consumo rispettivamente di 750Kbyte/s e 200Kbytes/s, valori ancora troppo elevati per comunicare su reti telefoniche o
su reti IP pubbliche.

Nascono i primi standard per la compressione del video digitale

Il video digitale viene ai nostri giorni adottato da una ampio ventaglio di applicazioni che vanno dalla video telefonia
(mobile e fissa), alla video conferenza, alla TV digitale terrestre o satellitare, al DVD, al video su PC e addirittura sul
cellulare.

L’adozione del video digitale in tanti ambiti è stata certamente spinta dallo sviluppo di sempre più efficaci standard di
codifica video. Questi standard forniscono le prestazioni necessarie per la trasmissione su specifici canali nonché la
possibilità di interoperare senza l’assillo della compatibilità.

L’ITU-T, International Telecommunication Union è una delle due organizzazioni in gradi di sviluppare ed approvare
standard di codifica video digitale. L’altro organismo è l’ISO/IEC JTC1.

Gli standard emanati dall’ITU sono spesso chiamati raccomandazioni e sono denotate dalla sigla H.26x
(H.261,H.262,H.263,H.264), mentre gli standard ISO/IEC vengono denotati con la sigla MPEG-x (MPEG-1,MPEG-
2,MPEG-4,etc…).

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
Le raccomandazioni ITU hanno un carattere più generale e nella maggior parte dei casi sono orientate alle applicazioni
real-time di comunicazione come la video conferenza. Gli standard H.26x si occupa esclusivamente della codifica
video, i G.7xx dell’audio e l’H.3xx della sincronizzazione audio-video. Gli standard MPEG vengono definiti invece per
necessità più ampie come lo storage (video CD prima, DVD successivamente), broadcast (cable, DSL, Satellite e
digitale terrestre) e per lo streaming multimediale (mpeg4).

Le due organizzazioni hanno lavorato per lo più separatamente eccetto per l’H.262 alias MPEG2 e più recentemente
per la messa a punto dell’H.264 noto anche come MPEG4 part 10 o MPEG4 AVC (Advanced Video Codec).

Nell’articolo ci concentreremo sulle raccomandazioni ITU-T che rappresentano le tecnologie di base per la
compressione video utilizzate anche, con opportune modifiche dagli standard MPEG. Gli MPEG involvono molte altre
considerazioni per gli specifici ambiti di utilizzo, oltre ad inglobare appropriate tecniche di compressione audio di cui
abbiamo già parlato in altri articoli.

Parte N°2 : Codifica H.261

H.261
H.261 fu specificatamente sviluppato per applicazioni di video comunicazione real-time (video conferenza). Lo sviluppo
iniziò da parte del CCITT nel 1988-1990 in seguito agli studi che portarono poi alla definizione del JPEG.
La tecnologia è pensata per la video conferenza su linee telefoniche ISDN e come tali si pone obiettivi di banda multipli
di 64Kbit (p x 64bit)
La tecnologia H.261 si basa su due tipi di compressione del flusso video: la compressione Intra-Frame (I) e la
compressione Inter-Frame (P), queste due tecniche vengono applicate a frame già compressi 1:2 grazie ad una sotto
quantizzazione delle componenti cromatiche di tipo YUV 4:2:0 (vedi articolo sul JPEG). Le risoluzioni ammesse sono 3:
CIF (352x288), QCIF (176x144) e 4CIF(704x576). Il numero di fotogrammi al secondo è tipicamente 25 (nel formato
NTSC le risoluzioni diventano 352x240 – 176x120 e 704 x 480, tutte a 30 Hz) ma può essere inferiore.

La tecnica Intra-frame è del tutto analoga al JPEG ed è sostanzialmente una tecnica psico-visiva di riduzione della
ridondanza spaziale, si eliminano cioè le informazioni non visibili o meno importanti per l’occhio umano che in genere
sono quelle a più alta frequenza spaziale.
In una sequenza video c’è però anche molta ridondanza di informazione “temporale” dovuta al fatto che gli elementi
visivi si trovano ripetuti (in quiete e/o in movimento) su fotogrammi successivi. E’ quindi necessario ridurre questo tipo
di ridondanza per comprimere ulteriormente il filmato.

La soluzione si chiama Block Based Motion Compensation Prediction (o semplicemente Motion Prediction), ed è
attuata nella compressione Inter-frame.

Quando si codifica un fotogramma si deve sempre cercare di recuperare più informazione possibile dal fotogramma
immediatamente precedente riducendo così il flusso netto di informazioni necessarie per ricostruire lo stream di
fotogrammi.

L’immagine viene così divisa preventivamente in macro blocchi (16 x 16 pixel). Ogni macro blocco può essere
compresso con semplice tecnica Intra-frame (DCT sottoposta a quantizzazione come nel JPEG), senza far riferimento
a nessun fotogramma precedente, oppure può essere compresso recuperando informazione dal fotogramma
precedente (tecnica Inter-frame).

Il modo più semplice ed immediato per recuperare informazione dal fotogramma precedente è quello di codificare solo il
segnale differenza tra il macroblocco in analisi ed il corrispondente del fotogramma precedente (motion compensation).
Siccome c’e’ elevata probabilità che nel passaggio da un fotogramma ad un altro ci sia una certa coerenza locale tra le
due immagini (se non addirittura una identità), il segnale differenza avrà certamente minore contenuto informativo del
macroblocco considerato a se stante.

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
Il segnale differenza può quindi essere successivamente e più efficacemente compresso con la stessa tecnica usata
per i blocchi Intra (DCT con quantizzazione). Ogni blocco può essere compresso in Intra o Inter coding, un flag ne
indica la natura. Inoltre, per permettere la sincronizzazione tra sorgente dello stream e destinatari, ogni N fotogrammi
se ne inserisce uno completamente compresso in Intra-coding e definito fotogramma chiave (keyframe).

L’H.261 base utilizza quindi una sequenza di fotogrammi di questo tipo:

I-P-P-P-P-I-P-P-P-P…

Una modalità opzionale nella prima review dell’H.261, ma largamente utilizzata in seguito, prevede di utilizzare il più
efficace motion-estimation.

Motion Estimation

Limitarsi a codificare il segnale differenza tra blocchi corrispondenti di fotogrammi successivi è efficace solo quando
l’area in esame varia pochissimo. Basta un semplice spostamento per perdere tutti i vantaggi.

Con il motion Estimation, ogni macroblocco del fotogramma in analisi viene confrontato con i dintorni dell’analoga
regione del fotogramma precedente alla ricerca di una porzione di pixel il più simile possibile al macroblocco in analisi.
Il prodotto di questa ricerca è un vettore, detto vettore di Motion Estimation che indica l’area del fotogramma
precedente utilizzata per recuperare l’informazione e ridurre le ridondanze.

Vediamo una immagine per capire meglio:

La ricerca dei Motion Vector può estendersi massimo in una area da +15 a –15 pixel in orizzontale ed in verticale nel
fotogramma precedente. Trovata l’area che minimizza il segnale differenza con il blocco in analisi, si trasmette al
decodificatore solo il segnale differenza trasformato e quantizzato e il vettore di Motion Estimation. Il Decoder è quindi
in grado di ricostruire il blocco sapendo quale area andare a prendere del fotogramma precedente (gli viene indicata dal
motion vector) ed aggiungendovi il segnale differenza trasmessogli dal codificatore.

Riportiamo lo schema a blocchi della codifica per i Frame I e per i Frame P:

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
Ricerca dei Motion Vectors

Inultile dire che il compito più complesso nella compressione di un flusso video H.261 è rappresentato dalla ricerca dei
più adeguati motion vectors. Lo standard, come spesso in questi casi, non dice niente sul modo migliore per attuare
tale ricerca limitandosi a definire solo standard stringenti per il bit-format che il decodificatore dovrà sempre essere in
grado di interpretare.

Esistono quindi vari algoritmi a varie complessità: si va dalla ricerca esaustiva, a quella logaritmica fino a quella
gerarchica che usa versioni sotto dimensionate dei fotogrammi per eseguire indagini preliminari più veloci.

Per informazione riportiamo un esempio di stima della complessità di questi algoritmi:

------------------------------------------------------------
Search Method Operation for 720x480 at 30 fps
p = 15 p=7
------------------------------------------------------------

Full Search 29.89 GOPS 6.99 GOPS


Logarithmic 1.02 GOPS 777.60 MOPS
Hierarchical 507.38 MOPS 398.52 MOPS

------------------------------------------------------------

I blocchi così compressi vengono poi organizzati a strati fino a formare dei GOB o Raggruppamenti di Blocchi. Ad ogni
passaggio di aggregazione dei dati di quantizzazione, DCT e MV si cerca sempre di ridurre le ridondanze di
informazioni con codifiche entropiche VLC (Variable Lenght Encoding, es: Huffman). Le codifiche entropiche codificano
le informazioni trasmesse più di frequente con un basso numero di bit e le informazioni meno frequenti con un numero

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
elevato. In questo modo, il numero di bit medio utilizzato sarà molto inferiore.

Parte N°3 : Codifica H.263 e H.263+

H.263

La definizione del successore dell’ H.261 inizia nel Novembre del 1993 e si pone l’obbiettivo di migliorare le
performance del predecessore ed estenderne l’utilizzo a canali di comunicazione a banda stretta. I principi di
funzionamento sono gli stessi. Lo standard prese definitivamente forma nel 1995.

H.263 trae vantaggio anche dall’esperienza acquisita dall’ITU-T nella definizione dello standard congiunto H.262 –
MPEG2.

H.263 introduce un numero cospicuo di importanti avanzamenti negli algoritmi di codifica:

Maggiori formati di immagine


si dispone adesso di un numero maggiore di formati. Alle 3 risoluzioni ammesse dall’ H.261 si aggiungono anche
la Sub-CIF (128x96) e la 16CIF (1408x1152).

Maggiore accuratezza nel Motion Compensation


I vettori hanno coordinate con precisione mezzo-pixel (si va da –16 a +15.5).
Inoltre, si utilizza un approccio detto Predictive Coding of Motion Vectors con il quale si prevede il valore di un
motion vector effettuando la media di 3 vettori adiacenti. Ovviamente si trasmette solo il Delta rispetto al valore
previsto. Il principio si basa sull’assunto che il movimento è una proprietà locale dell’immagine per cui blocchi
adiacenti avranno vettori di motion simili.

Entropy coding migliorata


Migliori tavole VLC (Variable Lenght Coding) tramite le quali è possibile codificare con codici binari più corti le
configurazioni di quantizzatori, motion vectors e parametri più frequenti.

Si ottengono complessivamente circa 3-4dB di PSNR in più rispetto all’H.261 a data rate inferiori a 64kbit/s
E data-rate inferiori del 30% a parità di qualità e risoluzione rispetto al MPEG1.

H.263 non si ferma qui. Lo standard ammette 4 opzioni negoziabili tra sorgente e destinatario del flusso. Nel tempo
queste modalità sono praticamente divenute standard:

Unrestricted Motion Vector Mode (UMV)


I vettori possono puntare fuori dall’immagine, utile per movimenti rasenti al bordo di oggetti piccoli.
Maggiore estensione dell’area di ricerca [-31.5,31.5] utile per le alte risoluzioni.

Advanced Prediction Mode


Possibilità di utilizzare 4 vettori di predizione per Macro Block, lo decide l’encoder Macro Blocco per Macro
Blocco per migliorare la qualità dell’immagine e l’efficacia del Motion Prediction.
L’ Overlapped block motion compensation (OBMC), riduce gli artefatti di codifica
I vettori possono inoltre puntare fuori dall’immagine come nel modo UMV.

Frame di tipo PB
Eredità del MPEG2. I fotogrammi di tipo B (Bidirectional) hanno vettori di motion compensation che fanno
riferimento non solo al fotogramma che li precede ma anche al fotogramma che li segue. I fotogrammi B non
possono essere a loro volta utilizzati come riferimenti di motion compensation. Il fotogramma B viene in genere
accoppiato ad un fotogramma P che lo segue temporalmente. Si crea in tal modo una sequenza del tipo:

I-B-P-B-P-B-P…I-B-P-B-P…

I vantaggi della modalità PB sono: minore occupazione dei fotogrammi B, possibilità di scartare i fotogrammi B
senza problemi (non vengono mai referenziati in fotogrammi futuri) in modo da scalare verso valori di banda più
bassi. Come inconveniente abbiamo una maggiore potenza di calcolo necessaria ed un incremento della latenza
di algoritmo. Quest’ultimo fattore può risultare critico nella video conferenza a basso numero di fotogrammi.

Syntax-based Arithmetic Coding Mode (SAC)


L’ Arithmetic Coding è una tecnica di Entropy coding più efficiente del VLC ma molto più onerosa perché crea

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
una statistica dinamica dei codici usati al posto di una statistica statica usata dall’ LVC Si ottiene comunque una
compressione migliore del 5% a parità di qualità.

H.263+
H.263+ o H.263v2 prende forma a partire dal 1996 come revisione minore della raccomandazione H.263. Lo standard
sarà definitivamente varato nel 1998 e ad oggi viene in pratica indicata da tutti come l’H.263 correntemente in forze.
Tutto quanto visto nella versione base dell’H.263 rimane valido con nuove modalità negoziabili (ben 16 in totale). Tra
queste annoveriamo:

Unrestricted Motion Vector (UMV) mode


A seconda delle dimensioni dell’immagine, si arriva anche a vettori con range di +,-256.

Advanced Intra Coding (AIC) mode


Si ottimizza la compressione Intra-Frame (tramite predizione del Macro Blocco dai dai blocchi adiacenti, VLC
ottimizzata e quantizzazione DCT modificata). Sugli Intra-frame si risparmia dal 10 al 25% in base alla
risoluzione e al fattore di compressione utilizzato.

Deblocking Filter (DF) mode


Questa modalità introduce un deblocking filter nel loop di codifica, supporta i 4 vettori per macro blocco e i
motion vector esterni ai bordi dell’immagine.

Improved BP (IBP) mode


Migliorata la vector prediction che può essere di tipo forward,backward o bidirezionale blocco per blocco. I
motion vectors sono inoltre interpolati in base a quelli dei fotogrammi vicini. Se la previsione è sufficientemente
corretta, i valori delta non vengono trasmessi con notevole risparmio di bit.

Altre modalità assicurano scalabilità SNR, spaziale e temporale, maggiore robustezza agli errori di trasmissione,
maggiore fedeltà dei colori e maggiore efficienza nel VLC.

Sull’ H.263 si basa in gran parte la codifica video del MPEG4 SP (Simple Profile). Anche le perstazioni finali sono molto
simili, con un modesto vantaggio dell’ MPEG4 a causa di un massiccio uso dei B-frame. I B-frame aumentano di molto
la latenza del flusso ma in applicazioni di streaming questo effetto è ininfluente.

Parte N°4 : Stato dell'arte: H.264

H.264, il futuro della compressione video

Il principale obiettivo dietro il progetto H.264 è lo sviluppo di uno standard di codifica video di livello superiore e non un
semplice “upgrade”. L’ITU-T ha iniziato i lavori su questo standard già nel lontano 1997. Alla fine del 2001 viste le
superiori performance del nuovo standard rispetto al MPEG4 base, l’ISO/IEC MPEG si è unito all’ITU-T nello sviluppo di
un formato comune andando a formare il Joint Video Team (JVT). Dopo 5 anni di ricerche alla fine del 2003 H.264 è
stato finalmente approvato.

H.264 promette performance superiori del 50% rispetto a H.263+ e a MPEG4 simple profile, alta qualità del video,
resistenza agli errori di canale, risultando adatto sia per la video comunicazione real time che per il broadcast.

Vediamone lo schema a blocchi completo:

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
H.264 si pone l’obiettivo di fornire performance superiori a qualunque altro algoritmo presente sul mercato utilizzando
l’approccio già visto nei precedenti standard, vale a dire:

1. Suddivisione in blocchi dell’immagine per meglio elaborarla


2. Riduzione della ridondanza spaziale tramite predizione spaziale, quantizzazione e codifica entropica.
3. Riduzione della ridondanza temporale tramite motion compensation and estimation con precedenti fotogrammi.
4. Codificare i blocchi residui ancora tramite trasformazione, quantizzazione e codifica entropica.

Gli elementi di novità risiedono nelle nuove modalità con le quali vengono portate a termine le 4 fasi sopra elencate:

Nuova DCT e blocchi 4x4


H.264 non usa più la vecchia DCT floating point su blocchi 8x8 ma una nuova versione only-integer su blocchi
4x4. Questo permette di eliminare eventuali discrepanze tra codec e riduce l’effetto di blocking.

Intra prediction
Il principio si basa sull’osservazione che blocchi adiacenti di immagine possono avere aspetto molto simile. Si
tenta allora di predire il blocco tramite l’analisi dei blocchi adiacenti. La differenza tra la predizione e il blocco
effettivo viene codificata.
Esistono 9 modi di predizione dei blocchi 4x4 e 4 modi di predizione di macroblocchi 16x16 per il luma, e altre 4
modalità per il croma. La predizione estende in pratica i valori del bordo dei blocchi adiacenti secondo direzioni
predefinite. La tecnica fornisce effettivamente riduzioni di bitrate dell’ordine del 20-25%.

Dimensioni dei Macroblocchi


Esistono 7 differenti suddivisioni dei MB in sotto blocchi. Le suddivisioni permettono di adattarsi a movimenti
complessi dell’immagine aumentando efficienza e qualità video. E’ anche possibile utilizzare una modalità
structured che permette di suddividere il blocco liberamente in sottoblocchi 16x8, 8x16, 8x8, 8x4, 4x8 o 4x4. I
vantaggio in risparmio sul bit-stream di questo approccio sono valutabili in un –15% nel bitstream complessivo.
Ecco le 7 modalità standard:

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
Precisione estesa
¼ di pel di accuratezza porta ad un risparmio in bit-stream del 10% circa rispetto al ½ pel utilizzato nell’ H.263 o
un risparmio del 20% se comparato al vecchio H.261. E’ prevista anche una modalità speciale da 1/8 pel negli
annessi. Il range del vettore di compensazione del moto rimane ampio fino a +-256 pixel.

Riferimenti multipli
Si può riferirsi nel passato fino a 5 fotogrammi per individuare il miglior Motion Vector. Sono stati inoltre aggiunti i
fotogrammi SP. Il bit-stream si riduce grazie alle reference multiple del 5-10%. I riferimenti multipli sono utili
soprattutto nei repentini cambi di scena e nei movimenti che generano occlusioni di oggetti sullo schermo.

Modalità bidirezionali multiple


I B Frame possono far riferimento a frame passati e futuri, a valori average o a blocchi Intra. Anche i motion
vector possono essere averaged e la modalità Ditrect fa riferimento a Motion Vector futuri. Tale elevato grado di
predizone porta a migliorie del 5-10%.

Predizione Weighted
Il codificatore si accorge se il blocco è sottoposto ad una generale trasformazione di intensità. Si migliorano le
performance nei casi di fade, flash, cambi di luminosità improvvisi etc… indicando il cambiamento con una
semplice fattore di scala.

DeBlocking Filter Adattivo


Il DeBlocking adattivo opera indipendentemente sui bordi orizzontali e verticali per eliminare l’effetto di blocking
che si forma agli alti fattori di compressione. L’algoritmo adattivo è complesso ma migliora notevolamente la
percezione di qualità dello spettatore.

Entropy Coding
Si può usare la Universal Variable Lengh Codes (UVLC) o la più sofisticata Context Adaptive Variable Lenght
Code (CAVLC) o ancora la Context-based Adaptive Binary Arithmetic Coding (CABAC). Le codifiche context-
based utilizzano approcci differenziati a seconda del grado di contenuto dei blocchi. Il CABAC crea un modello
statistico real-time sia sul codec che sul decoder in base al contenuto del video ed è la tecnica più avanzata.
L’uso del CABAC implica una riduzione del bitstream del 10%.

Compariamo infine le prestazioni dell’ H.264 con le prestazioni dell’ H.263+, MPEG4 e MPEG2.

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
Conclusioni

Come abbiamo potuto vedere le performance del nuovo formato sono eccellenti. A parità di qualità, si ottiene un
risparmio di bistream di quasi il 40% rispetto all' MPEG4 e di oltre il 60% rispetto all'MPEG2.

H.264 si pone quindi come il futuro della compressione video sia per applicazioni di broadcasting e storage (DVD del
futuro e TV digitali del futuro su linee xDSL), sia per applicazioni di comunicazione real time a banda media (video
conferenza), stretta (web conferencing) e ultra-stretta (cellulari 2.5G e 3G).

Attualmente i vari vendor stanno mettendo a punto i propri codec per le varie applicazioni. Il compito non è semplice
perchè la fase di compressione di uno stream H.264 può richiedere risorse superiori del 300% rispetto ad un codec
MPEG4 SP. Tale dispendio viene ripagato in performance superiori ma a dimostrazione della difficoltà del compito vi
basti sapere che attualmente non esistono codec software in grado di eseguire la compressione in tempo reale. A
questo punto però, baserà saper attendere...

Parte N°5 : Appendici: formati MPEG e DV

Appendice I: Cenni sui vari formati MPEG

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007
MPEG sta per Motion Picture Expert Group, un gruppo di ricerca che ha creato gli omonimi standard per l’ISO e l’IEC.
MPEG1 fu pubblicato nel 1991. Ottimizzato per la risoluzione 352x288 (CIF o quarter PAL) a 25Hz (352x240 a 30Hz
per l’NTSC), fu definito per la creazione dei video CD. Il data rate obbiettivo massimo è di 1.5Mbit/s.

MPEG2 è stato invece rilasciato nel 1994 per un utilizzo molto più ampio: DVD, TV digitale, TV satellitare, HDTV. La
risoluzione tipica è il FullPAL Interlacciato. Si ha una codifica speciale per poter gestire l’interlacciamento. Il bit rate
target oscilla tipicamente tra 4 e 9Mbit/s.

MPEG1 parte dai risultati del’ H.261 ed introduce essenzialmente i frame di tipo B (Bidirectional).In questi frame la
predizione del moto avviene utilizzando come riferimento sia il primo fotogramma valido del passato che il primo nel
futuro. I fotogrammi B non sono validi, rimangono quindi i P e gli I. La predizione bidirezionale è ottima per ridurre il bit-
rate ma introduce la necessità di una maggiore potenza di calcolo in compressione e un aumento della latenza del
flusso video. Latenza che non crea problemi per un sistema di archiviazione o broadcast ma che può risultare
inaccettabile in video conferenza.

Con MPEG2, creato in congiunzione da ITU e ISO/IEC, si è di fatto creato lo standard più utilizzato nel video digitale.
MPEG2 usa massicciamente i fotogrammi B oltre ad una serie di migliorie nella direzione intrapresa succesivamente
dall’ H.263 (principalmente estensione del range di predizione ed accuratezza di mezzo pixel). MPEG2 usa anche i
formati colore 4:2:2 e 4:4:4 per una maggiore fedeltà d’immagine.

Dopo la definizione dell’H.263+, ISO/IEC ha finalizzato il formato MPEG4 utilizzando molte delle funzionalità tipiche
dell’H.263+ ed un massiccio uso dei B frame. C’e’ da dire che MPEG4 è un sistema complesso di specifiche che
annoverano molti altri elementi oltre agli algoritmi base di compressione video. L’MPEG4 sta riscontrando molto
successo per lo streaming multimediale su Internet; la tecnologia DivX ormai accettata anche nell’industria dei lettori di
DVD, si basa su MPEG4 ed anche la tecnologia Packet Video che porta i filmati digitali sui telefonini di 3° generazione
(3G).

Appendice II: Nota sul formato DV

Il formato DV è un formato digitale a basso fattore di compressione che genera stream da 25Mbit/s. L’immagine è una
Full-pal interlacciata in formato colore YUV 4:2:0. La codifica è principalmente Intra con un pizzico di Inter compression.
Siccome il formato è interlacciato, il video viene visto come sequenza di field (50Hz) invece che di frame. Il primo field
di un frame viene compresso con compressione Intra tramite classica DCT quantizzata. Il successivo field viene invece
codificato come differenza con il primo field.

Normalmente i field sono molto affini e la codifica del secondo field richiede molto meno informazione del primo. Se
avessi avuto compressione Intra per entrambi i field, questi si sarebbero dovuti dividere equamente a metà il Megabit
dedicato a ciascuno frame. In questo modo invece la ripartizione della banda può essere migliorata con un incremento
complessivo di qualità. Se l’allocazione dei dati tra primo e secondo field viene fatta in maniera statica (es:70% di dati
sul primo field e 30% sul secondo), possono apparire degli effetti di blocking leggero in presenza di scene molto
movimentate. L’effetto si riduce con algoritmi più intelligenti.
Copyright LITHIUM.IT - 2002, All rights Reserved.

http://www.lithium.it/stampa_art.asp?code=59 25/07/2007