motocompensazione - InfoCom
motocompensazione - InfoCom
motocompensazione - InfoCom
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capitolo 5<br />
La compensazione di moto<br />
Contenuto<br />
5.1 Principi di <strong>motocompensazione</strong> per la codifica di sequenze video<br />
I quadri che compongono una sequenza video naturale rappresentano la proiezione sul piano dell’immagine di oggetti<br />
reali in moto, immersi in sfondi di varia natura (interni, esterni, fissi o in movimento). Essi presentano una forte<br />
correlazione, nel senso che l’informazione apportata da ciascun quadro é largamente predicibile a partire dal quadro<br />
precedente. In un contesto di codifica di sorgente, é pertanto opportuno rappresentare ciascun quadro in termini di una<br />
versione predetta a partire dal quadro precedente, piú un’immagine residua, che rappresenta l’innovazione apportata<br />
dal quadro attuale. Il codificatore dovrá quindi trasmettere unicamente le informazioni necessarie a costruire la<br />
versione predetta, e l’innovazione stessa.<br />
Nella versione piú semplice e largamente piú adottata il quadro che deve essere codificato é scomposto in blocchi di<br />
8x8 pixel o di 16x16 pixel (macroblocchi). Per ciascun blocco si cerca il blocco piú simile nell’immagine precedente.<br />
Per questioni di complessitá computazionale, la ricerca é limitata in un intorno della posizione corrispondente a quella<br />
occupata nel quadro attuale. Una volta individuato il blocco piú simile, si codifica la posizione di tale macroblocco; le<br />
coordinate sono codificate in modo relativo, ovvero rappresentano lo spostamento rispetto alla posizione attuale. Note<br />
le coordinate relative di ciascun blocco, il decodificatore é in grado di ricostruire una versione predetta del quadro<br />
attuale, mediante la giustapposizione di opportuni tasselli del quadro precedente. Questo meccanismo di predizione<br />
mediante la definizione di una corrispondenza fra informazioni del quadro attuale e informazioni del quadro precedente<br />
prende il nome di <strong>motocompensazione</strong>. Il codificatore deve quindi codificare unicamente la differenza tra l’immagine<br />
predetta mediante <strong>motocompensazione</strong> ed il quadro attuale. Questo meccanismo di principio estremamente semplice<br />
ammette numerose varianti, sulla base della forma del blocco considerato, della funzione di misura della somiglianza<br />
fra blocchi, della modalitá di ricerca del blocco piú simile (esaustiva o meno), del numero di quadri, detti di<br />
riferimento, a partire dai quali tentare la predizione del blocco attuale, e cosi’ via. Dal punto di vista concettuale,<br />
tuttavia, la <strong>motocompensazione</strong> si basa su un’ipotesi implicita, e cioé che l’immagine rappresentata nel quadro attuale<br />
sia costituita da una versione spazialmente trasformata dell’immagine precedente. Questo tipo di corrispondenza puó<br />
essere modellata matematicamente come una trasformazione geometrica del piano dell’immagine.<br />
47
48 CAPITOLO 5. LA COMPENSAZIONE DI MOTO<br />
Il presente capitolo é dedicato alla sintetica descrizione dei principali modelli di trasformazioni geometriche<br />
utilizzate nell’ambito della codifica di immagini. I modelli che qui descriviamo con riferimento all’ambito applicativo<br />
della codifica video sono utilizzati anche in ambiti differenti, quali la calibrazione di immagini nel telerilevamento<br />
e in alcune applicazioni medicali, l’elaborazione degli effetti di morphing nella produzione video, la generazione di<br />
tessiture sintetiche per applicazioni di realtá virtuale.<br />
5.2 Trasformazioni geometriche per <strong>motocompensazione</strong> di sequenze video<br />
Consideriamo due quadri temporalmente adiacenti estratti da una sequenza video. La trasformazione da un quadro al<br />
successivo é descritta come una trasformazione geometrica del piano dell’immagine. I punti (u, v) del primo quadro<br />
sono mappati in punti (x, y) =(X(u, v),Y(u, v)) del secondo quadro. In altre parole, la luminanza del punto (x, y)<br />
del secondo quadro é la stessa del punto (u, v) del primo quadro:<br />
I (k) (x, y) =I (k−1) (u, v)<br />
La trasformazione geometrica di un quadro nell’altro é descritta dalla coppia di funzioni (x, y) =(X(u, v),Y(u, v)).<br />
Discutiamo qui alcune possibili forme, via via piú sofisticate, di tale trasformazione.<br />
Il modello di moto traslatorio<br />
Un moto traslatorio é definito dalla coppia di funzioni<br />
x = u +∆x<br />
y = v +∆y<br />
(5.2.1)<br />
Questo é il modello sopra citato come il piú diffuso nella <strong>motocompensazione</strong> per codifica video. La coppia (∆x, ∆y)<br />
é detta vettore di moto (motion vector) o di spostamento. Nelle applicazioni, il vettore spostamento puó essere<br />
assegnato ad aree di dimensione variabile, dal 16x16 al 8x8 al 4x4; per applicazioni particolari (visione artificiale,<br />
analisi automatica dell’immagine), é assegnato un vettore di moto ad ogni pixel dell’immagine, e l’insieme dei vettori<br />
di moto relativi ad una coppia di immagini é detta motion vector field.<br />
Osserviamo sin d’ora che, ai fini della ricostruzione del video decodificato, l’informazione rappresentata dai<br />
vettori di moto é critica, perché un errore di trasmissione che alteri i vettori spostamento tipicamente genera artefatti<br />
rilevanti nell’immagine ricostruita.<br />
Modello di moto affine<br />
Una trasformazione affine é definita dalla coppia di funzioni<br />
x = Au + Bv + C<br />
y = Du + Ev + F<br />
Il moto affine ammette come casi particolari il moto traslatorio, la rotazione<br />
x = cosθ u + sinθ v<br />
y = −sinθ u + cosθv<br />
(5.2.2)
5.2. TRASFORMAZIONI GEOMETRICHE PER MOTOCOMPENSAZIONE DI SEQUENZE VIDEO 49<br />
il cambiamento di scala<br />
l’inclinazione (shear)<br />
x = u + Huv<br />
y = v<br />
x = Suu<br />
y = Svv<br />
x = u<br />
y = Hvu + v<br />
Il modello di moto affine é largamente generale e flessibile. Osserviamo che la trasformazione affine, essendo<br />
descritta da sei parametri, é completamente individuata quando sia nota la trasformazione di tre punti (non allineati)<br />
del piano.<br />
Una possibile applicazione del modello affine in fase di codifica consiste nel suddividere il quadro da predire<br />
in un reticolato (mesh) a maglia triangolare, e nel modellare l’evoluzione di ciascuno dei triangoli del reticolato<br />
mediante una trasformazione affine. Ai fini della codifica, la trasformazione di ciascun triangolo é identificata dala<br />
trasformazione dei suoi tre vertici (sei coordinate).<br />
Modello di moto prospettico<br />
Una trasformazione prospettica (perspective ) é definita dalla coppia di funzioni<br />
Au + Bv + C<br />
x =<br />
Gu + Hv +1<br />
Du + Ev + F<br />
y =<br />
Gu + Hv +1<br />
(5.2.3)<br />
Esso modella la duplice proiezione di un quadrilatero planare del piano dell’immagine (u, v) in un quadrilatero ancora<br />
planare ma in generale inclinato rispetto al piano dell’immagine, e la successiva proiezione prospettica di questo sul<br />
piano (x, y). La trasformazione prospettica é descritta da otto parametri, ed é completamente individuata quando sia<br />
nota la trasformazione di quattro punti del piano.<br />
Una possibile applicazione del modello prospettico in fase di codifica consiste nella suddivisione del quadro da<br />
predire in un reticolato (mesh) a maglia quadrangolare, e nel modellare l’evoluzione di ciascuno dei quadrilateri del<br />
reticolato mediante una trasformazione prospettica. La trasformazione prospettica é descritta da otto parametri, ed é<br />
completamente individuata quando sia nota la trasformazione dei quattro vertici (otto coordinate) del quadrilatero in<br />
questione.<br />
A titolo di completezza, citiamo al termine di questo excursus anche la trasformazione bilineare, definita dalla<br />
coppia di funzioni<br />
x = Au + Bv + Cuv + G<br />
(5.2.4)<br />
y = Du + Ev + Fuv+ H<br />
Esso modella la duplice proiezione di un quadrilatero planare del piano dell’immagine (u, v) in un quadrilatero non<br />
planare e la successiva proiezione di questo sul piano (x, y). La trasformazione bilineare é applicabile per riprodurre<br />
in piano dati registrati da sensori non coplanari in applicazioni di telerilevamento e biomedicali, nonché a scopi<br />
di texture mapping, ovvero per generare sinteticamente la proiezione sul piano dell’immagine di tessiture disposte<br />
su oggetti virtuali tridimensionali, a partire da tasselli planari delle tessiture stesse. La trasformazione bilineare, al<br />
pari della prospettica, é descritta da otto parametri, ed é individuata dalla trasformazione dei quattro vertici (otto<br />
coordinate) di un quadrilatero.
50 CAPITOLO 5. LA COMPENSAZIONE DI MOTO<br />
Figura 5.1: Esempi di trasformazioni descritte da un modello affine.
5.3. ALGORITMI DI MOTOCOMPENSAZIONE PER LA CODIFICA DI SEQUENZE VIDEO 51<br />
5.3 Algoritmi di <strong>motocompensazione</strong> per la codifica di sequenze video<br />
Come discusso nei paragrafi precedenti, la <strong>motocompensazione</strong> si basa sul principio che quadri successivi della<br />
sequenza video siano legati da trasformazioni geometriche. Nelle applicazioni di <strong>motocompensazione</strong> il quadro<br />
attuale é suddiviso in regioni non sovrapposte5.1 , e per ciascuna regione é individuata l’area di provenienza nel<br />
quadro precedente, come illustrato in Fig. 5.2.<br />
Consideriamo qui il caso di gran lunga piú comune: il modello traslatorio.<br />
Il quadro attuale I (k) [m, n] sia partizionato in blocchi non sovrapposti, tali da ricoprire l’intero quadro. Indichiamo<br />
con B il generico blocco del quadro attuale. Per il blocco B, si cerca nel quadro precedente il blocco<br />
piú simile massimizzando un assegnato funzionale di somiglianza, ovvero minimizzando un assegnato funzionale di<br />
distorsione. Adottando il criterio dell’errore quadratico medio, il blocco piú simile é individuato dalla coordinate<br />
relative ∆mmin, ∆nmin che minimizzano la seguente funzione<br />
DMSE(∆m, ∆n) = <br />
(m,n)∈B<br />
<br />
I (k) [m, n] − I (k−1) 2 [m +∆m, n +∆n]<br />
al variare di (∆m, ∆n) in un intervallo preassegnato.<br />
Per questioni computazionali, la distorsione puó essere computata adottando il criterio della somma delle differenze<br />
assolute ( Sum of Absolute Differences, SAD). In tal caso il blocco piú simile é individuato dalla coordinate relative<br />
∆mmin, ∆nmin che minimizzano la seguente funzione<br />
DSAD(∆m, ∆n) = <br />
(m,n)∈B<br />
<br />
<br />
I (k) [m, n] − I (k−1) <br />
<br />
[m +∆m, n +∆n] <br />
per (∆m, ∆n) variabili in un intervallo preassegnato.<br />
Un esempio di un’immagine I (k) [m, n] estratta dalla sequenza video Suzie e della sua versione predettaÎ(k) [m, n]<br />
mediante <strong>motocompensazione</strong> traslatoria é riportata in Fig.7.1. La <strong>motocompensazione</strong> in questo esempio é operata<br />
su blocchi di dimensioni 8x8.<br />
Quando la <strong>motocompensazione</strong> é operata partizionando l’immagine in una griglia e individuando lo spostamento<br />
ottimo di ciascun vertice della griglia, l’ottimizzazione diviene piú complessa. Infatti, l’ottimizzazione deve essere<br />
operata congiuntamente su tutte le maglie della griglia, applicando la trasformazione ipotizzata a ciascuna maglia<br />
e valutando la potenza dell’errore complessivo. Per ció che concerne la scelta dei vertici della griglia, é frequente<br />
l’adozione di criteri euristici, finalizzati ad individuare tasselli non troppo picoli per controllare il costo di trasmissione<br />
dei vettori spostamento e non troppo grandi in modo da non includere discontinuitá. Una strategia frequentemente<br />
utilizzata consiste nella scelta dei vertici della griglia in corrispondenza di punti significativi5.2 dell’immagine stessa.<br />
5.1Tipicamente, nelle applicazioni di morphing e di elaborazione delle immagini la trasformazioneé applicata in avanti, scandendo il quadro<br />
precedente per generare i punti corrispondenti del quadro attuale. Le aree del quadro attuale non assegnate nella fase di mappatura sono<br />
successivamente ricostruite con sofisticate tecniche di interpolazione. Nelle applicazioni di codifica,é scandito il quadro attuale al fine di associare<br />
ad ogni punto un punto del quadro precedente. Tale modalitá di applicazione della trasformazione geometrica, detta all’indietro, evita che risultino<br />
non assegnate aree del quadro attuale.<br />
5.2La scelta di posizionare i vertici della griglia in corrispondenza di punti significativi -vertici, incroci- migliora le prestazioni della stima di<br />
spostamento, che in zone uniformi tende ad essere guidata da rumore di acquisizione o di illuminazione eventualmente presente.
52 CAPITOLO 5. LA COMPENSAZIONE DI MOTO<br />
Sistemi di coordinate omogenee<br />
Nell’ambito della Computer Graphics, é usuale rappresentare un punto dell’immagine, individuato nel piano da<br />
n = 2 coordinate (x, y), mediante un vettore a n +1 = 3 componenti: (x, y) ⇒ (x, y, 1). L’adozione di<br />
tali coordinate, dette omogenee, consente ad esempio di rappresentare la trasformazione affine definita in (5.2.2)<br />
mediante un operatore matriciale 3 × 3: (x, y, 1) = (u, v, 1) ·T<br />
⎛<br />
⎞<br />
A<br />
⎜<br />
T = ⎜<br />
⎝ B<br />
D<br />
E<br />
0<br />
0<br />
⎟<br />
⎠<br />
C F 1<br />
Si supponga poi di voler estendere la trasformazione T considerando la forma 3 × 3 piú generale:<br />
⎛<br />
⎞<br />
⎜<br />
T = ⎜<br />
⎝<br />
A<br />
B<br />
D<br />
E<br />
g<br />
⎟<br />
h ⎟<br />
⎠<br />
C F k<br />
Essa consente di associare ad un punto di coordinate (u, v), ovvero di coordinate omogenee (u, v, 1), un nuovo<br />
punto (x, y, w). A partire da tali coordinate, é possibile ottenere ancora un punto di coordinate omogenee dividendo<br />
tutte le componenti per w: (x/w, y/w, 1). Tale operazione ammette un’interpretazione geometrica: il punto (u, v, 1)<br />
puó essere interpretato come un punto dello spazio tri-dimensionale, appartenente al piano a profonditá 1. Il punto<br />
trasformato (x, y, w) rappresenta un punto dello spazio tri-dimensionale, appartenente al piano a profonditá w. La<br />
divisione per w associa a (x, y, w) il punto (x/w, y/w, 1): esso é il punto in cui il piano a profonditá 1 interseca<br />
la retta passante per l’origine degli assi e per (x, y, w); in altri termini, (x/w, y/w, 1) é la proiezione di (x, y, w)<br />
sul piano a profonditá 1.<br />
Con queste posizioni, la trasformazione prospettica (5.2.3) é descritta dalla seguente trasformazione lineare a<br />
⎛<br />
⎞<br />
⎜<br />
T = ⎜<br />
⎝<br />
A<br />
B<br />
D<br />
E<br />
G<br />
H<br />
⎟<br />
⎠<br />
C F 1<br />
aSi osservi che nella modalitá di rappresentazione che impiega le coordinate omogenee, i punti che differiscono per un fattore di scala comune<br />
alle tre coordinate definiscono una classe di equivalenza, ed identificano lo stesso punto del piano a profonditá 1.
5.3. ALGORITMI DI MOTOCOMPENSAZIONE PER LA CODIFICA DI SEQUENZE VIDEO 53<br />
Figura 5.2: Uso di modelli del campo di moto a fini di <strong>motocompensazione</strong>.<br />
Figura 5.3: Esempio di <strong>motocompensazione</strong> su blocchi 8x8.
54 CAPITOLO 5. LA COMPENSAZIONE DI MOTO<br />
Modello e/o Tecnica Contesto applicativo<br />
traslatorio, macroblocchi 16 × 16 MPEG-2<br />
avanzato, Advanced Prediction su blocchi 8 × 8 H.263<br />
affine, image resizing H.263++<br />
affine, su griglia triangolare MPEG-4 (Facial Animation)<br />
perspective, <strong>motocompensazione</strong> globale MPEG-4 (Sprite Coding)<br />
traslatorio, su oggetti di forma arbitraria MPEG-4 (Profilo Core)<br />
traslatorio, su blocchi quadrati e rettangolari dal 4 × 4 al 16 × 16 H.264<br />
Tabella 5.1: Sinossi delle tecniche di motompensazione pi ú frequentemente utilizzate.
Bibliografia<br />
[1] G. Scarano, “Dispense di elaborazione delle immagini”, infocom.uniroma1.it/gscarano.<br />
[2] B. G. Haskell, P. G. Howard, Y. A. LeCun, A. Puri, J. Ostermann, M.R. Civanlar, L. R. Rabiner, L. Bottou, and P. Haffner, “Image<br />
and Video Coding-Emerging Standards and Beyond”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 7, pp.<br />
814-837, November 1998<br />
[3] G. Wolberg, “Image Morphing: A Survey ’, Visual Computer, vol. 14, pp. 360-372, 1998<br />
55