next up previous
Next: Decodifica: Motion Compensation Up: Lo standard MPEG Video Previous: Struttura di una sequenza

Riduzione della ridondanza temporale

Frquentemente, le immagini di una sequenza video hanno solo poche differenze l'una dall'altra, cioè sono altamente correlate. Si può allora ottenere un'alta compressione della sequenza codificando le immagini differenzialmente, e trasmettendo solo la differenza fra un immagine e l'altra. Le regioni inalterate possono essere copiate da un'immagine a quella successiva, riducendo considerevolmente le dimensioni del bitstream.

La tecnica utilizzata dall'MPEG per codificare differenzialmente le immagini è la Motion Estimation: si assume che, localmente, un immagine sia esprimibile come traslazione di un immagine precedente e/o successiva della sequenza video, dove per ``localmente'' si intende limitatamente a un singolo macroblocco.

Si considerino due immagini successive, IM1 e IM2, all'interno di una sequenza video, dove IM2 è l'immagine corrente e IM1 è l'immagine precedente, già decodificata. L'operazione di decodifica locale prevede diversi casi:

Questo è il caso di predizione unidirezionale, ma l'MPEG adotta, in aggiunta, una tecnica di predizione bidirezionale, in cui un singolo macroblocco viene codificato rispetto ad altri due distinti macroblocchi, uno dei quali appartenente a un'immagine precedente della sequenza video, e l'altro appartenente a un immagine successiva. Questa tecnica porta almeno due vantaggi: garantisce un alto grado di compressione e permette di mediare il rumore, diminuendone gli effetti.

Figura: Predizione bidirezionale.

Ogni macroblocco può quindi essere di tre tipi, che vengono chiamati I, P e B.

L'operazione di codifica dei macroblocchi I è detta di tipo ``intra'', mentre quella di codifica dei macroblocchi di tipo P o B è detta genericamente ``non-intra'' o ``inter''.

In analogia a questa classificazione dei macroblocchi, esistono tre tipi di immagini in una sequenza video MPEG 2.1

Le immagini di tipo I sono codificate indipendentemente da ogni altra immagine. Le immagini di tipo P ottengono predizioni da immagini di tipo I o P temporalmente precedenti nella sequenza. Le immagini di tipo B ottengono predizioni dalla più vicina immagine di tipo I o P precedente e/o successiva nella sequenza.

Una o più immagini successive formano un ``gruppo di immagini'', che può essere ``chiuso'' o ``aperto''. In un gruppo chiuso le predizioni che giungono a ogni immagine provengono solo da altre immagini che appartengano allo stesso gruppo, mentre i gruppi aperti non devono sottostare a questo vincolo.

Figura: Relazioni tra i frame di una sequenza video.

La sequenza tipica delle immagini è, come mostrato in figura, del tipo I B B B P B B B I .... Le immagini I, essendo codificate indipendentemente, costituiscono punti di accesso casuale alla sequenza video MPEG. Le immagini non-intracodificate, d'altra parte, garantiscono una notevole riduzione della lunghezza del bitstream, ma causano anche propagazione degli errori: il problema è ovviato dalla presenza di più gruppi di immagini nella sequenza, indipendenti uno dall'altro.


Tabella: Tipica dimensione in bit dei tre tipi di immagini: l'esempio è ripreso da una sequenza video standard, con una distanza fra immagini I pari a 15, e una distanza fra immagini di tipo P pari a 3.
Livello I P B Media
30Hz SIF @ 1.15Mbit/s 150,000 50,000 20,000 38,000
30Hz CCIR 601 @ 4Mbit/s 400,000 200,000 80,000 130,000


Poiché le immagini tipo B possono ottenere predizioni da immagini successive della sequenza video, l'ordine di trasmissione delle immagini nel bitstream non può coincidere con l'ordine di visualizzazione. In generale, vengono prima trasmesse le immagini di tipo I, poi quelle di tipo P e infine quelle di tipo B, per ogni gruppo di immagini. Per la sequenza dell'esempio, l'ordine di trasmissione è I P B B B I B B B ... Questo implica che le immagini di tipo I e P, una volta decodificate, devono essere conservate in un buffer, fino al momento in cui vengono mostrate all'utente.



Subsections
next up previous
Next: Decodifica: Motion Compensation Up: Lo standard MPEG Video Previous: Struttura di una sequenza
Marco Delaurenti
1999-06-25