home page indice cap. precedente cap. successivo


1. MPEG video


1.1. Sistemi di codifica video

1.2. Specifiche per MPEG video

1.3. MPEG-1

1.4. MPEG-2

1.5. MPEG-3

1.6. MPEG-4


1.1. Sistemi di codifica video

I codificatori video sono in genere classificati in base al fatto d'essere o meno predittivi, oppure per il modo in cui eseguono la compressione dei dati. Nel campo delle comunicazioni video digitali il tipo attualmente più usato è il codificatore ibrido, basato sulla tecnica DPCM (Differential Pulse Code Modulation). Il DPCM è uno schema di codifica di sorgente sviluppato per codificare sorgenti con memoria ed è predittivo, in quanto il frame attuale viene predetto basandosi su quello precedente; si ha quindi un errore di predizione (differenza tra la predizione fatta ed il frame presente) e la caratteristica del DPCM è che la varianza dell'errore di predizione è più piccola della varianza della sorgente. In genere la predizione coincide con una compensazione di moto (Motion Compensation) del frame precedente: nella compensazione di moto viene utilizzato il vettore di moto (Motion Vector) per trovare lo spostamento tra un'immagine e la successiva. Il vettore di moto è una grandezza bidimensionale che ci fornisce, per ogni punto dell'immagine corrente, lo spostamento rispetto a quella di riferimento; tali vettori sono generalmente realizzati sulla base di blocchetti di pixel di dimensione fissa. Sostanzialmente, in questa tecnica si presume che l'immagine attuale possa essere trovata tramite una traslazione di una immagine precedente; le informazioni sul moto saranno parte delle informazioni necessarie alla ricostruzione dell'immagine in decodifica. In questo caso, l'errore di predizione viene detto differenza di frame spostata (Displaced Frame Difference, DFD); la DFD viene anch'essa codificata, insieme ai vettori di moto.

Dopo la compensazione di moto, per ridurre ancor più le dimensioni del filmato digitale, viene effettuata la Trasformata Discreta Coseno (DCT). La DCT è una trasformazione che si adatta particolarmente bene al caso delle immagini, per l'efficienza della compressione ottenibile, per la mancanza di componenti immaginarie nello spettro ottenuto e per la simmetricità dello spettro attorno all'origine. L'immagine viene divisa in blocchi di dimensione fissa (tipicamente blocchi di 8x8 pixels) e la DCT viene effettuata sulla base di tali blocchi. Il vantaggio dell'utilizzo della DCT consiste nel fatto che, per un blocco di un'immagine tipica, l'energia è concentrata alle frequenze più basse; dopo la DCT viene effettuata una quantizzazione e, essendo l'occhio umano meno sensibile alla quantizzazione delle alte frequenze, quest'ultime possono essere quantizzate con un passo più largo, permettendoci così di realizzare una notevole compressione dei dati. In decodifica si utilizza la trasformata inversa IDCT, per passare dai valori quantizzati delle frequenze spaziali ai valori spaziali dei pixels.


1.2. Specifiche per MPEG video

Dato che nella commissione ISO di MPEG sono rappresentati vari segmenti di industrie che si occupano del trattamento dell'informazione, il sistema proposto deve includere diverse applicazioni; per questo si dice che MPEG è uno standard generico. Questo significa che lo standard non dipende dalle particolari applicazioni, anche se non ignora le specifiche che ognuna di queste richiede; uno standard generico possiede tutte le caratteristiche che lo rendono universale, ma ciò non significa che queste caratteristiche debbano essere utilizzate allo stesso tempo da ogni applicazione. Le seguenti applicazioni sono alcune di quelle identificate come necessarie per soddisfare le richieste delle applicazioni di MPEG.

1.2.1. Accesso Casuale

Si tratta di una funzione essenziale sia per la memorizzazione su mezzi che permettono l'accesso casuale, come i CD-ROM ed i dischi magnetici, che per la memorizzazione su mezzi ad accesso sequenziale, come i nastri magnetici. L'accesso casuale richiede che i dati video compressi siano accessibili al loro interno e che ogni frame video sia decodificabile in un tempo limitato; questo comporta l'esistenza di punti di accesso, cioè di segmenti di informazione decodificabili in modo autonomo (ad esempio frames video la cui decodifica non richieda le informazioni contenute nei frames precedenti o successivi). L'accesso casuale in circa 0,5 secondi dovrebbe essere possibile senza eccessiva degradazione di qualità.

1.2.2. Ricerca Veloce Avanti/Indietro

Se il mezzo di memorizzazione lo permette, dovrebbe essere possibile la scansione dei dati compressi e, utilizzando punti di accesso appropriati, mostrare immagini selezionate, per ottenere un effetto di riavvolgimento e di avanzamento veloce. Questa caratteristica è una richiesta più restrittiva di accesso casuale, che si adatta bene a mezzi di memorizzazione come i nastri magnetici.

1.2.3. Riproduzione all'Indietro

Le applicazioni interattive possono richiedere che il segnale possa essere letto all'indietro. Mentre non è necessario che tutte le applicazioni mantengano alta qualità o che abbiano questa funzione, si considera che la riproduzione all'indietro dovrebbe essere possibile anche senza eccessivo uso di memoria.

1.2.4. Sincronizzazione Audio/Video

Il segnale video dovrebbe poter essere sincronizzato con una sorgente audio associata. Deve essere previsto un meccanismo per ripristinare il sincronismo tra i due segnali se questi provengono da sorgenti con diverse frequenze di clock.

1.2.5. Montaggio

Deve essere possibile costruire unità di montaggio di breve durata, le quali sono codificate solo in riferimento a se stesse, in modo da ottenere un livello accettabile di libertà per il montaggio.

1.2.6. Robustezza

La maggior parte dei mezzi di memorizzazione e dei canali di trasmissione non sono esenti da errori e questo richiede una appropriata codifica di canale in tutte le applicazioni. Allo stesso modo è necessaria una codifica di sorgente abbastanza robusta, in modo da evitare errori che non potranno essere più corretti.


1.3. MPEG-1

Lo standard MPEG-1 è ottimizzato per l'utilizzo tramite CD-ROM e per applicazioni fino a circa 1.5Mbit/s. L'algoritmo di compressione utilizza, in sostanza, due tecniche : compensazione di moto e compressione basata sulla DCT; l'idea fondamentale è predire il moto da frame a frame nella direzione del tempo e usare la DCT per organizzare i dati nelle direzioni dello spazio. L'entità elementare in MPEG-1 è un'immagine e non un frame: ogni immagine viene suddivisa in tre frames, uno per la luminanza, Y, e due per la crominanza, U e V. Il rate delle immagini assume valori che in genere corrispondono a 24, 25 o 30 Hz. Anche il formato delle immagini è flessibile, ma l'algoritmo è studiato in modo ottimale per immagini con formato 35228x8 per sistemi a 25 Hz e 352240 per sistemi a 30 Hz; la prima fase del processo di compressione è quindi la conversione del segnale video al formato MPEG, tramite opportune operazioni di filtraggio.

Il gruppo MPEG ha standardizzato la sintassi del bitstream (la sequenza dei bit di uscita), non l'algoritmo di compressione stesso. Ovviamente si definisce a grandi linee uno schema di compressione, ma rimangono alcuni gradi di libertà nell'algoritmo e dipende dal produttore sfruttarli per ottimizzare il proprio gruppo codificatore-decodificatore (codec). Il problema principale nella realizzazione dell'algoritmo MPEG è il seguente: si vuole raggiungere un'elevata compressione, cosa che non è realizzabile se le immagini che compongono la sequenza video vengono codificate ognuna in modo indipendente dalle altre; inoltre si vuole garantire la possibilità di effettuare un accesso casuale, cosa che si realizza meglio se si codificano le immagini in modo indipendente. Per conciliare queste due opposte richieste, l'algoritmo MPEG realizza una codifica in cui vengono mantenute alcune immagini codificate in modo indipendente dalle altre, quindi poco compresse ma che garantiscono la possibilità di accesso casuale; le restanti immagini vengono ricavate da queste attraverso una predizione del moto, oppure mediante interpolazione tra più immagini.

La sintassi di MPEG è detta "stratificata" : in cima alla gerarchia si trova la sequenza video, dove vengono definiti la dimensione delle immagini, il rate delle immagini ed il bitrate. La sequenza è suddivisa in gruppi di immagini, detti GOP (Group Of Pictures); un GOP è un insieme di immagini in ordine contiguo di visualizzazione e contiene tre tipi di immagini: immagini Intra (I), immagini Predette (P) ed immagini interpolate Bi-direzionalmente (B). Le immagini I sono codificate in maniera a sé stante, senza far riferimento a immagini precedenti; forniscono i punti per l'accesso casuale, ma consentono una modesta compressione. Le immagini P sono codificate in riferimento ad immagini passate di tipo I o P e possono essere utilizzate come riferimento per immagini di tipo P future, oppure per immagini di tipo B passate o future. Le immagini di tipo B richiedono quindi un riferimento sia nel passato sia nel futuro, ma consentono un elevato livello di compressione.

Fig. 1: Schema di un GOP

Ogni immagine del GOP consiste di tre frames, uno di luminanza e due di crominanza; i frames sono sottocampionati sia in direzione verticale sia in direzione orizzontale, e sono a loro volta suddivisi in slices (fette), la cui dimensione non è fissata. In sostanza è come se ogni immagine venisse divisa in slices, ognuna delle quali si compone di tre parti: una parte è nel frame di luminanza e le altre due sono nei frames di crominanza. Ogni slice inizia con una parola di sincronizzazione, in modo tale da poter risincronizzare gli slices nel caso di un errore nel bitstream. Gli slices sono a loro volta composti da un numero intero di macroblocchi; un macroblocco contiene un'area quadrata di 16x16 pixels di luminanza e due aree quadrate di 8x8 pixels di crominanza. Il macroblocco è l'elemento base che viene usato per la compensazione del moto; in totale, da un macroblocco si ricavano sei blocchi, che sono l'unità elementare su cui si esegue la DCT e la quantizzazione.

Fig. 2: Struttura stratificata della sintassi di MPEG.

L'organizzazione delle immagini in un GOP è flessibile e dipende dai parametri specifici dell'applicazione. Si può notare che, a causa dell'impiego di immagini interpolate B che fanno riferimento anche ad immagini future, l'ordine di trasmissione nel bitstream è diverso dall'ordine di visualizzazione, cioè le immagini future a cui le immagini B si riferiscono sono trasmesse prima dell'immagine B attuale. In altre parole, si visualizza un frame I mentre si decodifica il frame P seguente (che resta momentaneamente in memoria), si visualizzano i due B relativi e quindi il frame P memorizzato; quest'ultima operazione avviene mentre si decodifica (e si memorizza) il P successivo, e il ciclo riprende. Facendo riferimento alla fig.1, la sequenza di visualizzazione è:

0 1 2 3 4 5 ... 12 ...

mentre la sequenza di trasmissione è:

0 x x 3 1 2 6 4 5 ...

dove "x x" si riferisce ai frames -2 e -1 se siamo nel mezzo del flusso, oppure a nessun frame se 0 è il punto di partenza.

1.3.1. Compensazione del moto

La stima del moto comprende una serie di tecniche che possono essere utilizzate per estrarre l'informazione del moto da una sequenza video; lo standard MPEG specifica come rappresentare l'informazione del moto ma non come devono essere calcolati i vettori di moto. Le tecniche più usate sono del tipo block matching, nelle quali il vettore di moto è ottenuto minimizzando una opportuna funzione di costo; questa funzione è data dalla differenza tra un blocco ed ogni possibile predizione di questo blocco. La predizione nella compensazione del moto significa assumere che, localmente, l'immagine attuale possa essere modellata come una traslazione di un'immagine precedente; vengono così calcolati i vettori di moto relativi al blocco di luminanza e ai blocchi di crominanza. Il vettore di moto diventa così parte integrante dell'informazione necessaria al recupero dell'immagine codificata ed anche questo vettore deve essere opportunamente codificato.

L'interpolazione è una delle principali caratteristiche dell'algoritmo MPEG e che non è presente negli altri algoritmi di compressione video. I macroblocchi interpolati sono formati da una media tra la predizione di un frame passato e la predizione di un frame futuro; aumentando il numero delle immagini B tra le immagini usate come riferimento, si perde sempre più la correlazione tra queste immagini B e quelle usate come riferimento (si perde correlazione anche tra le immagini di riferimento stesse). Per questo motivo le immagini di riferimento vengono poste ad intervalli di tempo che al massimo sono di 1/10 di secondo.

Le modalità di codifica di un macroblocco dipendono dal tipo di immagine a cui esso appartiene (I, P, oppure B), ma non sono univocamente determinate da questo. Nel caso di un'immagine di tipo I tutti i macroblocchi sono codificati in modo intra. In un'immagine di tipo P i macroblocchi sono codificati in modo predetto, cioè viene calcolata la differenza di macroblocco spostata (errore di predizione sul macroblocco) che viene poi codificata; in quanto al vettore di moto, questo viene trasmesso solo nel caso in cui sia non nullo. Se il processo di predizione non riesce a ridurre il contenuto di energia del macroblocco, allora questo viene codificato in modo intra (quindi i macroblocchi di un'immagine P possono essere codificati alcuni in modo predetto ed altri in modo intra). Per un'immagine di tipo B un macroblocco può essere codificato in diversi modi: in modo intra, con predizione in avanti, con predizione all'indietro e con interpolazione; il metodo scelto sarà quello che permette di ottenere la migliore predizione. Nel caso di macroblocchi predetti (in avanti oppure indietro) avremo un solo vettore di moto per il macroblocco mentre, nel caso di macroblocchi interpolati ne avremo due.

1.3.2. Quantizzazione

Successivamente MPEG opera sui blocchi 8x8, seguendo questi tre passi: calcolo dei coefficienti DCT, ottenendo un blocco 8x8 nel dominio trasformato; quantizzazione dei coefficienti trasformati; riorganizzazione dei dati in un ordine a zig-zag e conversione dei coefficienti trasformati in coppie {numero, ampiezza}.

La quantizzazione è il passo che può essere utilizzato per adattare il bitrate di uscita del codificatore alla capacità del canale. Lo standard specifica soltanto come rappresentare nel bitstream le scelte fatte per la quantizzazione e non il modo in cui queste scelte vengono effettuate; quest'ultime vengono lasciate al produttore ed è qui che si crea la competizione tra le varie industrie per trovare il miglior sistema che, a parità di bitrate, fornisca la migliore qualità dell'immagine. La quantizzazione adattativa è il metodo chiave con il quale ottenere un passo di quantizzazione che generi la massima compressione con minor perdita di qualità possibile. Si deve tenere presente che i blocchi codificati intra sono quantizzati in modo diverso rispetto ai blocchi codificati con predizione in quanto, mentre i primi contengono energia a tutte le frequenze, il segnale errore di predizione contiene principalmente componenti in alta frequenza.

I coefficienti quantizzati vengono riordinati secondo un percorso a zig-zag, in modo da sistemare le componenti ad alta frequenza dopo quelle a frequenza più bassa. Come già accennato, tutti i coefficienti vengono trasformati in coppie {numero, ampiezza} dove "numero" rappresenta il numero di zeri che precedono il coefficiente attuale ed ampiezza è il valore del coefficiente. Quando tutti i coefficienti rimasti sono di valore nullo viene trasmessa una parola di fine blocco EOB (End Of Block); nel caso in cui tutti i coefficienti di un blocco siano nulli il blocco non viene trasmesso affatto. Se tutti i blocchi di un macroblocco sono nulli, al macroblocco viene assegnato il tipo "non codificato" e viene trasmesso il solo vettore di moto.

1.3.3. Considerazioni sul codificatore MPEG

Lo standard MPEG definisce il processo di codifica, non il codificatore; per questo motivo esistono diversi modi possibili per implementare il codificatore e lo standard non ne suggerisce nessuno in particolare. Un codificatore MPEG produce un bitstream MPEG che può essere decodificato da qualunque decodificatore con caratteristiche analoghe. La libertà di implementazione di un codificatore risiede nel modo in cui viene effettuata la stima del moto, in come viene fatta la compensazione di moto e nell'implementazione della quantizzazione adattativa, ed è in questo ambito che si svolge la competizione tra le maggiori aziende produttrici di codificatori MPEG.


1.4. MPEG-2

Il concetto che sta alla base di MPEG-2 è simile a quello di MPEG-1, ma include estensioni anche per una più ampia varietà di applicazioni. L'applicazione primaria è la trasmissione a qualità televisiva CCIR 601 con un bitrate tra 3 e 10 Mbit/sec, ma successivamente è stato trovato che la sintassi di MPEG-2 può essere efficiente anche per applicazioni che richiedono un bitrate maggiore (come HDTV).

La CCIR 601 è una raccomandazione del Comitato Consultivo Internazionale per le Radiocomunicazioni nella quale vengono specificati il formato dell'immagine e le modalità di acquisizione e di codifica per i segnali televisivi digitali "standard", cioè PAL, NTSC, SECAM. In essa vengono inoltre specificate le modalità della codifica 4:4:2 e 4:4:4, dove 4:4:2 significa che i segnali di crominanza U e V sono campionati ad una frequenza che è la metà della frequenza di campionamento del segnale di luminanza Y (cioè 13.5 MHz per Y e 6.75 MHz per U e V). Viene anche specificato il numero di campioni per linea per i sistemi a 625 linee e 50 Hz e per i sistemi a 525 linee e 60 Hz; i campioni per ogni linea attiva sono, in entrambi i casi, 720.

Mentre MPEG-1 era stato progettato principalmente per la codifica di audiovisivi per mezzi di memorizzazione digitale, con sequenze video strettamente non interlacciate, è stato interesse di una grande varietà di industrie avere a disposizione uno standard con un campo di applicabilità più ampio della sola memorizzazione. Quindi MPEG-2 è stato concepito come uno standard basato su MPEG-1, in modo da poter usare tutte le sue parti per diverse applicazioni, migliorando in questo modo l'interoperabilità tra queste: per differenti applicazioni variano leggermente le specifiche imposte al codificatore. L'obbiettivo è stato quello di ottenere uno standard con una parte in comune che sia la più grande possibile, senza però correre il rischio di sovraccaricarlo con caratteristiche troppo specifiche. Le applicazioni individuate sono:

Tutte queste sono applicazioni che richiedono video digitale e quindi compressione video. Alcune specifiche sono comuni a tutte o molte di queste applicazioni.

La commissione MPEG-2 cominciò a lavorare su compressione video indirizzata a segnali di tipo televisivo, utilizzando un formato CCIR 601 interlacciato, di 720576 pixel, con un bitrate compreso tra 4 e 9 Mbit/s. In seguito, data l'applicabilità dello standard anche a bitrate e a formati diversi (come HDTV), si è arrivati ad un bitrate compreso tra 2 e 40 Mbit/s. Alcune delle specifiche comuni alla maggior parte delle applicazioni sono:

Si deve notare che nel caso di formato di campionamento 4:2:2 o 4:4:4, ogni macroblocco è formato rispettivamente da 8 oppure 12 blocchi. Nel modo interlacciato si ha la fusione di due frames in una immagine, con linee pari e linee dispari provenienti da due diversi frames.


1.5. MPEG-3

Era indirizzato ad applicazioni HDTV con dimensioni di campionamento 19201080 per 30 Hz e bitrate tra 20 e 40 Mbit/s. Si è scoperto poi che, con alcune regolazioni, le sintassi di MPEG-2 e MPEG-1 davano ottimi risultati anche con HDTV. Inoltre, i progetti europei a codifica completamente digitale, hanno dimostrato migliore qualità con l'utilizzo di sintassi MPEG. Anche negli Stati Uniti la Grande Alleanza (accordo tra sette grandi compagnie del settore, per la creazione di uno standard per la TV digitale ad alta definizione), ha usato fin dall'inizio la sintassi MPEG per HDTV, grazie alla sua superiore qualità. La HDTV è ora inclusa nel livello High-1440 di MPEG-2.


1.6. MPEG-4

Si tratta di una nuova iniziativa del gruppo MPEG per la codifica di programmi audiovisivi a bitrate molto bassi. Si prevede l'uscita di una prima proposta dell'algoritmo standard per il 1997. Questo lavoro richiede lo sviluppo di tecniche di fondamentalmente nuove. Lo scopo primario di queste applicazioni è un bitrate tra 4800 e 64000 bit/s, con buona qualità visiva; è anticipato che queste nuove tecniche di codifica che permettano tassi di compressione sensibilmente maggiori rispetto alle tecniche tradizionali, saranno codifiche basate su modelli, morfologia, frattali.

Una volta completato, lo standard MPEG-4 potrà essere utilizzato per un grande numero di applicazioni, come: comunicazione interattiva multimediale per mezzi mobili, videofonia su linee telefoniche analogiche, posta elettronica multimediale, ecc..

Ultimo aggiornamento: 21-Mar-1996


imageTelematic lab's home page