Compressione video

Transcript

Compressione video
Lezione 9: Video(II)
Informatica e Produzione
Multimediale
Docente:
Umberto Castellani
Sommario


Introduzione al video
Formati video
–
–
Analogici
digitali

Il Moving picture Expert group (MPEG)

Editing video
MPEG e compressione



Introduzione
Principi generici
Compressione video
–
–
MPEG 2
MPEG 4
Quanto occupa una immagine?
352 pixel
• liv. grigio: 352x288x1 = 99 Kbyte
288 pixel
• RGB: 352x288x3 = 297 Kbyte
Filmato 25fps (immagini per sec)
• liv. grigio: 99Kb x 25 = 2.4 Mb/s
• RGB: 297Kb x 25 = 7.2 Mb/s
Compressione: principi

Il ruolo della compressione è di minimizzare il numero di
bit necessari per ritenere accettabile una versione del dato
originale allo scopo di ridurre i costi di memorizzazione e
di trasmissione.
Dato originale
Dato
“ricostruito”

Codifica
Decodifica
Trasmissione o
memorizzazione
La compressione coinvolge tutti i dati multimediali
Compressione: architettura
Compressione: architettura (II)
Ricostruzione
lossless
originale
coder
decoder
dati
compressi
Compressione: metodi

Esistono due macro-categorie di metodi di
compressione:
– Metodi reversibili (o lossless): metodi che non
comportano alcuna perdita di informazione in
seguito al processo di codifica e decodifica (i.e., la
versione ricostruita è identica alla versione originale)
– Metodi non reversibili (o lossy): metodi che
comportano una perdita di informazione  occorre
quantificare tale perdita (se ne occupa la Teoria
dell’informazione)
Compressione lossless: esempio
Dati:
• il set di tutti i possibili simboli provenienti dalla sorgente
dei dati (detto alfabeto);
• la distribuzione di probabilità di ciascun simbolo
dell’alfabeto;
l’algoritmo di Huffman permette di ricavare il codice a
lunghezza variabile VL (variable lenght) ottimo, che
minimizza il numero di bit necessari per la codifica di un
blocco di dati coerente con la distribuzione di probabilità.
Huffman: esempio
Probabilità Simbolo Non compresso Codifica Huffman
40%
s1
000
0
15%
s2
001
100
15%
s3
010
110
10%
s4
011
111
10%
s5
100
1010
5%
s6
101
10110
4%
s7
110
101110
1%
s8
111
101111
Mediamente:
Non compresso:
Huffman:
3
bit / simbolo
2.55 bit / simbolo
Algoritmi lossless universali



Esistono algoritmi lossless che non richiedono la
conoscenza a priori della distribuzione di probabilità dei
simboli dell’alfabeto.
In generale riescono a modellare dinamicamente le
caratteristiche statistiche dei dati da comprimere e
adeguano di conseguenza la codifica.
Algoritmi Lempel-Ziv (costituiscono il nucleo di gzip,
pkzip, compress ecc.)
–
LZ77, LZ78, LZW, LZY
Metodi Lossy: esempio JPEG
Immagine originale
suddivisa in blocchi di 8x8
pixel (spazio YCbCr)
blocco 8x8 pixel
Il JPEG è uno standard per la compressione lossy di
immagini (statiche)
JPEG: funzionamento
201
190
190
183
165
162
182
171
199
18'
183
201
88
102
15
25
67
107
200
105
199
199
178
0
123
63
255
183
183
23
54
0
65
38
194
21
148
18
243
0
0
180
255
0
123
226
12
0
66
102
0
130
189
0
255
6
22
254
132
159
183
213
6
43
blocco 8x8 (una sola componente)
DCT
IDCT
trasformata DCT
trasformata DCT zigzag quantizzata secondo modelli percettivi:
• molti valori nulli
• comprimibile molto efficacemente con algoritmi lossless
Coder e decoder JPEG
coder JPEG
lossless
DCT
quantizz.
coder
immagine originale
decoder JPEG
lossless
decoder
dequant.
IDCT
immagine finale
JPEG2000
• basato non su DCT, ma su WAVELET (i.e., classe di
funzioni matematiche ‘speciali’)
• migliori prestazioni a forte compressione
• possibilità di definire regioni di interesse (ROI)
• visione multirisoluzione
7Kb - compressione 100:1
7Kb - compressione 100:1
Compressione video

Possibili applicazioni:
–
Memorizzazione su disco
–
Broadcast di video digitali (video on demand)
–
Reti multimediali (Internet)
Premessa




Un video è costituito da una sequenza di immagini
(frames) che si susseguono nel tempo (es. 25 frames al
secondo).
Se non si applica la compressione la quantità di dati
che servono per memorizzare un filmato digitale
esplode dopo qualche secondo….
Occorre dunque studiare delle tecniche intelligenti per
la compressione video.
L’idea di fondo consiste nel considerare che due frame
‘vicini’ hanno circa lo stesso contenuto (alta ridondanza
temporale)
Schema generale MPEG-2
CODIFICA
CODIFICA
DECODIFICA
Input video
Output video
Pre-processing
Post-processing
Predizione
Predizione
Compressione
Decompressione
Trasmissione o
memorizzazione
Pre-processing: interpolazione

MPEG-2 usa il formato YCrCb (3 numeri) per
codificare le immagini:
–
–
–

Y(luminanza): rappresenta l’intensità del colore
Cr (crominanza rossa): rappresenta il valore su una scala di
rossi
Cb (crominanza blu): rappresenta il valore sulla scala di blu
Poiché la percezione visiva umana è più sensibile
alle variazioni di luminanza rispetto a quelle di
crominanza le componenti Cr e Cb vengono ridotte
(i.e., si prende un pixel ogni due).
Predizione


La predizione rappresenta la fase che più
caratterizza il formato MPEG-2
Si basa sui seguenti concetti:
–
–
–
Riduzione della ridondanza temporale
Stima del moto
Compensazione del moto
Riduzione della ridondanza temporale



Frequentemente, le immagini di una sequenza video
hanno solo poche differenze l'una dall'altra, cioè
sono altamente correlate.
Si può 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.
Stima e compenzazione del moto

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
limitatamente a un singolo macroblocco (i.e., blocco
da 16x16 pixel).
– Es: una scena con sfondo fisso e un singolo
oggetto che si muove
Stima del moto




dato un macroblocco dell’immagine corrente
data un immagine di riferimento (detta anchor)
la stima del moto consiste nel cercare lo
spostamento del blocco che porta il blocco stesso a
sovrapporsi con l’immagine di riferimento
Lo spostamento viene codificato con una coppia di
valori (traslazione verticale e orizzontale) che
costituiscono il cosiddetto vettore di moto.
Compensazione del moto




Dato un vettore di moto (riferito ad un certo
macroblocco) e data un immagine di riferimento
Si usa il vettore per estrarre il blocco dall’immagine
di riferimento
i pixel nell'immagine di riferimento vengono usati per
predire i pixel dell'immagine corrente
Questo meccanismo prende il nome di predizione
Tipi di frames



Interframes I: frames senza predizione.
Rappresentano immagini intere (autocontenute) e
servono per consentire gli accessi casuali al filmato.
Predicted frames P: frames che effettuano la
predizione solo verso il precedente anchor frame.
Essi stessi sono usati come anchor.
Bidirectionally Predicted frames B: frames che
effettuano la predizione facendo la media tra il
precedente e il successivo anchor frame. Sono quelli
che raggiungono il più elevato rate di compressione.
Esempi di sequenze

Una possibile successione di tipi di frames è la
seguente:
I-B-B-P-B-B-P-B-B-I

Di solito c’è uno spazio fisso tra anchor frames (ma
lo standard non lo impone).
–
–

Si indica con N la distanza tra 2 I-frames (nell’esempio N=9)
Si indica con M la distanza tra 2 anchor frames
(nell’esempio M=3)
Domanda: con che ordine devono essere spediti i
frames ?
Ordine di spedizione dei frames


La regola consiste nello spedire sempre gli anchor
frames prima dei predicted frames che li utilizzano.
Nell’esempio:
I1-B2-B3-P4-B5-B6-P7-B8-B9-I10

La sequenza da spedire sarà:
I1-P4-B2-B3-P7-B5-B6-I10-B8-B9
Compressione dei singoli frames



I frames di tipo I sono compressi come le usuali
immagini 2D (i.e., jpeg)
Sui frames di tipo P e B viene applicata la
compensazione del moto su ogni blocco. I blocchi
vengono sottratti all’immagine di riferimento e la
compressione avviene solo sulla differenza.
A questo punto la codifica del filmato è terminata e
dunque si è pronti per la memorizzazione o
trasmissione.
Schema generale:
16x16
16x16
16x16
16x16
8x8 8x8
Y
R
G
B
I-frame
C Cr
b
P-frame
YCbCr 4:2:0
Decodifica

La decodifica si basa sul processo inverso di
ogni fase della codifica:
–
–
–
Decompressione
Predizione
Post-processing
Schema generale MPEG-2
CODIFICA
CODIFICA
DECODIFICA
Input video
Output video
Pre-processing
Post-processing
Predizione
Predizione
Compressione
Decompressione
Trasmissione o
memorizzazione
Comunicazione multimediale: MPEG 4
``Comunicazione Multimediale'' è la possibilità di
comunicare informazione audio-video che:
1.
2.
3.
4.
5.
6.
7.
sia naturale, sintetica, o entrambe
sia in tempo reale e non
supporti differenti funzionalità a seconda delle esigenze
dell'utente
fluisca da e verso differenti sorgenti simultaneamente
non richieda all'utente di preoccuparsi di specifici canali di
comunicazione, ma usi una tecnologia che ne sia cosciente
dia all'utente la possibilità di interagire con differenti elementi di
informazione
consenta di presentare all'utente i risultati della sua interazione
con il contenuto in una maniera idonea alle sue necessità
MPEG 4


Nel Luglio del 1993, l'MPEG (il moving picture expert
group) ha iniziato lo sviluppo dell'MPEG-4, che
soddisferà i sette punti appena elencati;
le specifiche MPEG-4 diventeranno Standard
Internazionale nel Novembre del 1998, con codice
ISO/IEC 14496 e titolo ``Coding of Audio-Visual
Objects''.
Codifica basata su oggetti



L’idea fondamentale dell’MPEG-4 consiste nel
proporre una codifica basata sugli oggetti che
appaiono nel filmato:
– video, singole immagini, animazioni, texture,
suoni, modelli 3D
Si parla di oggetti-media (media object) o audio
visual objects (AVO) – naturali o sintetici
L’MPEG-4 fornisce un modo per comporre una
scena permettendo la trasmissione separata degli
oggetti che la compongono
MPEG 4: composizione della scena


Le scene audio-visuali sono composte da diversi
AVO, organizzati gerarchicamente.
es: un TG
–
–
–
–
–
–

Sfondo fisso 2D
Immagine di una persona che parla (senza lo sfondo)
Voce associata alla persona
Oggetto sintetico (es, tavolo e mappamondo)
Suono sintetico (es. musica della sigla)
Etc.
Mpeg 4 standardizza un insieme di primitive AVO
per rappresentare oggetti naturali e sintetici 2D o 3D
MPEG 4: descrizione della scena

La descrizione di una scena consiste nelle seguenti
informazioni:
– Come gli oggetti sono raggruppati insieme
(struttura gerarchica)
– Come gli oggetti sono posti nello spazio e nel
tempo: ogni oggetto ha le proprie coordinate e
l’apparizione degli AVO deve essere
sincronizzata
– Attributi degli AVO: alcuni elementi possono
essere modificabili (es. contrasto o colore)
MPEG 4: grafo della scena o BIFS



La scena è codificata secondo
una struttura dati detta BInary
Format for Scene description
(BIFS)
Generalmente si tratta di un
grafo della scena in cui i nodi
rappresentano gli oggetti con i
loro attributi e gli archi
rappresentano le relazioni
spaziali e temporali
La struttura è dinamica per cui
il grafo varia nel tempo (es.
parametri di posizione)
Esempio di scena MPEG 4
MPEG: il futuro

Il futuro riguarda l’MPEG-7:
– Il fuoco è sulla caratterizzazione del contenuto dei
dati multimediali (i.e., flusso di informazioni
audio/video).
– Codifica dei cosiddetti Meta dati

–
Es: nomi degli attori di un film, data e ora di registrazione di
un evento di cronaca
L’MPEG 7 propone un metodo per il trattamento
uniforme (eventualmente automatico) dei metadati di
un prodotto multimediale