Subsections

MPEG

Il gruppo MPEG (Motion Picture Expert Group) è stato istituito nel 1988 all'interno del JTC1 (Joint ISO/IEC Technical Commitee) con lo scopo di affrontare il problema della codifica di immagini in movimento, con audio associato.Tra le caratteristiche più interessanti degli standard MPEG va sicuramente citata la possibilità di utilizzare formati d'immagine diversi, e la notevole flessibilità prevista nella composizione del bit-stream. Ad oggi sono stati prodotti tre standard MPEG-1, MPEG-2, MPEG-4.


MPEG-1

Nasce con lo scopo di permettere la codifica di immagini in movimento con audio associato con qualità VHS (360x288 pixel a 24÷30 frame/s) mantenendo il il bit-rate entro il limite di 1.5 Mbit/s, in modo ad esempio da permettere la memorizzazione di film su CD-ROM. Lo schema di codifica sostanzialmente è analogo a quello dello standard H.261 mostrato in figura [*] (il lavoro su MPEG è stato in parte basato sui risultati ottenuti con H.261)

Le frame vengono divise in 3 tipi diversi:

I-frame:
Sono sottoposte a codifica intra, sono indispensabili al fine dell'implementazione di funzionalità come l'accesso casuale alla sequenza.
P-frame:
Sottoposte a codifica inter, in particolare viene applicata la predizione del movimento utilizzando come frame di riferimento la frame precedente.
B-frame:
Sottoposte a codifica inter, in questo caso però la predizione del movimento è di tipo bidirezionale, come frame di riferimento vengono utilizzate quella precedente e quella successiva.
Per le frame di tipo I la tecnica di codifica utilizzata è quella per trasformata, in particolare si ricorre alla DCT su blocchi di immagine 8×8, inoltre i coefficienti sono pesati in modo diverso tenendo conto delle caratteristiche della visione umana1.3. Per le frame di tipo P, invece, si utilizza il movement compensation, e i vettori di movimento di regioni adiacenti sono sottoposti a codifica differenziale visto che sono molto correlati. La tecnica utilizzata per le frame di tipo B è analoga alla precedente, con l'unica differenza che vengono usate due frame come riferimento. In una frame di tipo B, ad ogni blocco possono corrispondere due blocchi delle immagini di riferimento (uno da quella precedente ed uno da quella successiva), in questo caso in decodifica si può effettuare la media dei due blocchi.

La costruzione del bit-stream è lasciata libera, cioè è possibile scegliere in quale ordine si devono susseguire le frame di tipo I, P e B.

Differenze tra MPEG-1 e H.261

Come dicevamo prima, MPEG-1 ha in parte riutilizzato concetti già visti in H.261, anche se comunque il target dei due codec è molto diverso. Di seguito sono riportate le principali differenze tra i due codec.

  1. MPEG-1 usa il movement compensation, anche bidirezionale, con un accuratezza di mezzo pixel, H.261 usa il solo movement compensation unidirezionale con accuratezza sempre pari ad un numero intero di pixel.
  2. MPEG-1 supporta un range massimo per i vettori di movimento tra -512 e 512 mezzi pixel, contro i ± 15 pixel di H.261. Tuttavia questa differenza è giustificabile visto che H.261 è pensato per la videoconferenza, quindi per scene nelle quali il movimento è molto ridotto ed inoltre interessa sempre piccole zone.
  3. MPEG-1 permette di definire matrici di pesatura per i coefficienti della DCT.


MPEG-2

MPEG-1, come abbiamo visto, è ottimizzato per applicazioni a 1.5 Mbit/s, con MPEG-2 invece viene offerta al possibilità di avere sequenze video a qualità ancora migliore e quindi con bit-rate necessariamente più alto, inoltre viene esteso il supporto per i formati di ingresso interlacciato.

Un'altra grossa novità introdotta in MPEG-2 è la possibilità di ricorrere ad una codifica di tipo scalabile, anche chiamata codifica a livelli, perché è sempre possibile individuare un livello base (indispensabile) e più livelli di miglioramento (facoltativi). La codifica scalabile è importante, ad esempio, per la trasmissione su canali rumorosi, infatti è possibile proteggere i livelli più importanti (i livelli base) trasmettendoli su canali con prestazioni migliori. La codifica scalabile è molto utile anche su canali con bit-rate variabile, quando la banda è ridotta i layer meno importanti non vengono trasmessi. Un'altra utile applicazione della scalabilità consiste nella trasmissione progressiva, cioè l'utente può visionare un'anteprima del video, codificata con i soli livelli base al fine ad esempio di effettuare una scelta in un database, una volta che la decisione è stata presa potrà ricevere il video alla qualità migliore.

MPEG-2 supporta tre tipi diversi di scalabilità:

Scalabilità in SNR:
Ci sono due possibili livelli di qualità; a livello base i coefficienti della DCT sono quantizzati in modo grossolano, mentre nel livello di enhancement viene codificata la differenza tra i coefficienti DCT originari e quelli quantizzati al livello base, chiaramente usando in questo caso passo di quantizzazione più fine.
Scalabilità in risoluzione:
I due livelli sono ottenuti sfruttando uno schema a piramide laplaciana. L'immagine di ingresso viene sottocampionata e codificata, in questo modo viene prodotto il livello base, questo viene decodificato, sovracampionato e sottratto dall'immagine originale, l'immagine differenza viene quindi codificata in modo analogo a quanto fatto per il livello base.
Scalabilità in frame-rate:
Il livello base è codificato al frame-rate minimo, e le sue frame decodificate sono usate come base per la predizione del movimento nelle frame che poi vanno a costruire i livelli di enhancement.


MPEG-4

Lo scopo di MPEG-4 è quello di fornire una serie di strumenti ed algoritmi per la codifica a basso tasso di sequenze audio/video e, a differenza degli altri standard della famiglia MPEG, è stato esplicitamente pensato per il funzionamento su rete. Tra i principali obiettivi possiamo individuare i seguenti:

L'idea innovativa alla base di MPEG-4 è quindi quello della codifica del contenuto piuttosto che dell'immagine. Una singola immagine viene quindi divisa in più ``oggetti audio-visuali'' (AVO, Audio Visual Object), come ad esempio lo sfondo, un particolare oggetto, un testo e così via.

Ciascun AVO può essere codificato/decodificato in modo indipendente dal resto, rendendo quindi possibile, ad esempio, la decodifica dei soli oggetti di interesse, questo chiaramente permette un elevato grado di interattività.



Footnotes

... umana1.3
L'occhio umano è molto più sensibile alle basse frequenze spaziali che non alle alte, quindi è consigliabile rappresentare con maggiore accuratezza i primi coefficienti della DCT.
Debian User 2003-06-05