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.
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.
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.
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.
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:
Elevata robustezza anche nell'ambito di reti molto inaffidabili.
Estremo grado di interattività, per poter accedere in modo rapido al ``contenuto''
dei dati audio-visuali, in modo da poter visualizzare e presentare i dati con
elevata flessibilità
Codifica mista ``pixel-based'' e ``sintetica''.
Possibilità di trasmettere i dati con un bit-rate tra i 4 e i 65 kbit/s per
reti a bassa capacità, o fino a 4 Mbit/s per reti a banda larga.
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à.
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.