Capitolo 5 La compensazione di moto - InfoCom
Capitolo 5 La compensazione di moto - InfoCom
Capitolo 5 La compensazione di moto - InfoCom
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>Capitolo</strong> 5<br />
<strong>La</strong> <strong>compensazione</strong> <strong>di</strong> <strong>moto</strong><br />
Contenuto<br />
5.1 Principi <strong>di</strong> <strong>moto</strong><strong>compensazione</strong> per la co<strong>di</strong>fica <strong>di</strong> sequenze video<br />
I quadri che compongono una sequenza video naturale rappresentano la proiezione sul piano dell’immagine <strong>di</strong> oggetti<br />
reali in <strong>moto</strong>, immersi in sfon<strong>di</strong> <strong>di</strong> varia natura (interni, esterni, fissi o in movimento). Essi presentano una forte<br />
correlazione, nel senso che l’informazione apportata da ciascun quadro é largamente pre<strong>di</strong>cibile a partire dal quadro<br />
precedente. In un contesto <strong>di</strong> co<strong>di</strong>fica <strong>di</strong> sorgente, é pertanto opportuno rappresentare ciascun quadro in termini <strong>di</strong> una<br />
versione predetta a partire dal quadro precedente, piú un’immagine residua, che rappresenta l’innovazione apportata<br />
dal quadro attuale. Il co<strong>di</strong>ficatore dovrá quin<strong>di</strong> trasmettere unicamente le informazioni necessarie a costruire la<br />
versione predetta, e l’innovazione stessa.<br />
Nella versione piúsempliceelargamentepiúadottata il quadro che deve essere co<strong>di</strong>ficato é scomposto in blocchi <strong>di</strong><br />
8x8 pixel o <strong>di</strong> 16x16 pixel (macroblocchi). Per ciascun blocco si cerca il blocco piú simile nell’immagine precedente.<br />
Per questioni <strong>di</strong> complessitá computazionale, la ricerca é limitata in un intorno della posizione corrispondente a quella<br />
occupata nel quadro attuale. Una volta in<strong>di</strong>viduato il blocco piú simile, si co<strong>di</strong>fica la posizione <strong>di</strong> tale macroblocco;<br />
le coor<strong>di</strong>nate sono co<strong>di</strong>ficate in modo relativo, ovvero rappresentano lo spostamento rispetto alla posizione attuale.<br />
Note le coor<strong>di</strong>nate relative <strong>di</strong> ciascun blocco, il deco<strong>di</strong>ficatore é in grado <strong>di</strong> ricostruire una versione predetta del<br />
quadro attuale, me<strong>di</strong>ante la giustapposizione <strong>di</strong> opportuni tasselli del quadro precedente. Questo meccanismo <strong>di</strong><br />
ricostruzione me<strong>di</strong>ante la definizione <strong>di</strong> una corrispondenza fra informazioni del quadro attuale e informazioni del<br />
quadro precedente prende il nome <strong>di</strong> <strong>moto</strong><strong>compensazione</strong>. Il co<strong>di</strong>ficatore deve quin<strong>di</strong> co<strong>di</strong>ficare unicamente la<br />
<strong>di</strong>fferenza tra l’immagine predetta me<strong>di</strong>ante <strong>moto</strong><strong>compensazione</strong> ed il quadro attuale. Questo meccanismo <strong>di</strong> principio<br />
estremamente semplice ammette numerose varianti, sulla base della forma del blocco considerato, della funzione <strong>di</strong><br />
misura della ”somiglianza” fra blocchi, della modalitá <strong>di</strong> ricerca del blocco piú simile (esaustiva o meno), del numero<br />
<strong>di</strong> quadri, detti <strong>di</strong> riferimento, a partire dai quali tentare la pre<strong>di</strong>zione del blocco attuale, e cosí via. Dal punto <strong>di</strong><br />
vista concettuale, tuttavia, la <strong>moto</strong><strong>compensazione</strong> si basa su un’ipotesi implicita, e cioé che l’immagine rappresentata<br />
nel quadro attuale sia costituita da una versione spazialmente trasformata dell’immagine precedente. Questo tipo <strong>di</strong><br />
corrispondenza puó essere modellata matematicamente come una trasformazione geometrica del piano dell’immagine.<br />
42
5.2. TRASFORMAZIONI GEOMETRICHE PER MOTOCOMPENSAZIONE DI SEQUENZE VIDEO 43<br />
Il presente capitolo é de<strong>di</strong>cato alla sintetica descrizione dei principali modelli <strong>di</strong> trasformazioni geometriche<br />
utilizzate nell’ambito della co<strong>di</strong>fica <strong>di</strong> immagini. I modelli che qui descriviamo con riferimento all’ambito applicativo<br />
della co<strong>di</strong>fica video sono utilizzati anche in ambiti <strong>di</strong>fferenti, quali la calibrazione <strong>di</strong> immagini nel telerilevamento e<br />
in alcune applicazioni me<strong>di</strong>cali, l’elaborazione degli effetti <strong>di</strong> ”morphing” nella produzione video, la generazione <strong>di</strong><br />
tessiture sintetiche per applicazioni <strong>di</strong> realtá virtuale.<br />
5.2 Trasformazioni geometriche per <strong>moto</strong><strong>compensazione</strong> <strong>di</strong> sequenze video<br />
Consideriamo due quadri temporalmente a<strong>di</strong>acenti estratti da una sequenza video. <strong>La</strong> 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 L(x, y) del<br />
punto (x, y) del secondo quadro élastessadelpunto(u, v) del primo quadro. <strong>La</strong> trasformazione geometrica <strong>di</strong> un<br />
quadro nell’altro é descritta dalla coppia <strong>di</strong> funzioni (x, y) =(X(u, v),Y(u, v)). Discutiamo qui alcune possibili<br />
forme, via via piú sofisticate, <strong>di</strong> tale trasformazione.<br />
Il modello <strong>di</strong> <strong>moto</strong> traslatorio<br />
Un <strong>moto</strong> traslatorio é definito dalla coppia <strong>di</strong> funzioni<br />
x = u + ∆x<br />
y = v + ∆y<br />
(5.2.1)<br />
Questo é il modello sopra citato come il piú <strong>di</strong>ffuso nella <strong>moto</strong><strong>compensazione</strong> per co<strong>di</strong>fica video. <strong>La</strong> coppia (∆x, ∆y)<br />
é detta vettore <strong>di</strong> <strong>moto</strong> (motion vector) o <strong>di</strong> spostamento. Nelle applicazioni, il vettore spostamento puó essere<br />
assegnato ad aree <strong>di</strong> <strong>di</strong>mensione variabile, dal 16x16 al 8x8 al 4x4; per applicazioni particolari (visione artificiale,<br />
analisi automatica dell’immagine), é assegnato un vettore <strong>di</strong> <strong>moto</strong> ad ogni pixel dell’immagine, e l’insieme dei vettori<br />
<strong>di</strong> <strong>moto</strong> relativi ad una coppia <strong>di</strong> immagini édettamotion vector field.<br />
Osserviamo sin d’ora che, ai fini della ricostruzione del video deco<strong>di</strong>ficato, l’informazione rappresentata dai<br />
vettori <strong>di</strong> <strong>moto</strong> é critica, perché un errore <strong>di</strong> trasmissione che alteri i vettori spostamento tipicamente genera artefatti<br />
rilevanti nell’immagine ricostruita.<br />
Modello <strong>di</strong> <strong>moto</strong> affine<br />
Una trasformazione affine é definita dalla coppia <strong>di</strong> funzioni<br />
x = Au + Bv + C<br />
y = Du + Ev + F<br />
Il <strong>moto</strong> affine ammette come casi particolari il <strong>moto</strong> traslatorio, la rotazione<br />
il cambiamento <strong>di</strong> scala<br />
x = cosθ u + sinθ v<br />
y = −sinθ u + cosθv<br />
x = Suu<br />
y = Svv<br />
(5.2.2)
44 CAPITOLO 5. LA COMPENSAZIONE DI MOTO<br />
l’inclinazione (shear)<br />
x = u + Huv<br />
y = v<br />
x = u<br />
y = Hvu + v<br />
Il modello <strong>di</strong> <strong>moto</strong> affine é largamente generale e flessibile. Osserviamo che la trasformazione affine, essendo<br />
descritta da sei parametri, é completamente in<strong>di</strong>viduata quando sia nota la trasformazione <strong>di</strong> tre punti (non allineati)<br />
del piano.<br />
Una possibile applicazione del modello affine in fase <strong>di</strong> co<strong>di</strong>fica consiste nel sud<strong>di</strong>videre il quadro da pre<strong>di</strong>re<br />
in un reticolato (mesh) a maglia triangolare, e nel modellare l’evoluzione <strong>di</strong> ciascuno dei triangoli del reticolato<br />
me<strong>di</strong>ante una trasformazione affine. Ai fini della co<strong>di</strong>fica, la trasformazione <strong>di</strong> ciascun triangolo é identificata dala<br />
trasformazione dei suoi tre vertici (sei coor<strong>di</strong>nate).<br />
Modello <strong>di</strong> <strong>moto</strong> prospettico<br />
Una trasformazione prospettica (perspective ) é definita dalla coppia <strong>di</strong> 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 <strong>di</strong> 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 <strong>di</strong> questo sul<br />
piano (x, y). <strong>La</strong> trasformazione prospettica é descritta da otto parametri, ed é completamente in<strong>di</strong>viduata quando sia<br />
nota la trasformazione <strong>di</strong> quattro punti del piano.<br />
Una possibile applicazione del modello prospettico in fase <strong>di</strong> co<strong>di</strong>fica consiste nella sud<strong>di</strong>visione del quadro da<br />
pre<strong>di</strong>re in un reticolato (mesh) a maglia quadrangolare, e nel modellare l’evoluzione <strong>di</strong> ciascuno dei quadrilateri del<br />
reticolato me<strong>di</strong>ante una trasformazione prospettica. <strong>La</strong> trasformazione prospettica é descritta da otto parametri, ed é<br />
completamente in<strong>di</strong>viduata quando sia nota la trasformazione dei quattro vertici (otto coor<strong>di</strong>nate) del quadrilatero in<br />
questione.<br />
A titolo <strong>di</strong> completezza, citiamo al termine <strong>di</strong> questo excursus anche la trasformazione bilineare, definita dalla<br />
coppia <strong>di</strong> funzioni<br />
x = Au + Bv + Cuv + G<br />
y = Du + Ev + Fuv+ H<br />
(5.2.4)<br />
Esso modella la duplice proiezione <strong>di</strong> un quadrilatero planare del piano dell’immagine (u, v) in un quadrilatero non<br />
planare e la successiva proiezione <strong>di</strong> questo sul piano (x, y). <strong>La</strong> trasformazione bilineare é applicabile per riprodurre<br />
in piano dati registrati da sensori non coplanari in applicazioni <strong>di</strong> telerilevamento e biome<strong>di</strong>cali, nonché a scopi <strong>di</strong><br />
”texture mapping”, ovvero per generare sinteticamente la proiezione sul piano dell’immagine <strong>di</strong> tessiture <strong>di</strong>sposte<br />
su oggetti virtuali tri<strong>di</strong>mensionali, a partire da tasselli planari delle tessiture stesse. <strong>La</strong> trasformazione bilineare, al<br />
pari della prospettica, é descritta da otto parametri, ed é in<strong>di</strong>viduata dalla trasformazione dei quattro vertici (otto<br />
coor<strong>di</strong>nate) <strong>di</strong> un quadrilatero.
5.2. TRASFORMAZIONI GEOMETRICHE PER MOTOCOMPENSAZIONE DI SEQUENZE VIDEO 45<br />
v<br />
x=u+∆u<br />
y=v+∆v<br />
v<br />
(1,2)<br />
(0,1) (2,1)<br />
u<br />
y<br />
x=u (cos(θ))+ v (sin(θ))<br />
y=u (-sin(θ))+ v (cos(θ))<br />
x<br />
x=Su u<br />
y=Sv v<br />
u<br />
y<br />
x=X(u,v)<br />
y=Y(u,v)<br />
X(u,v)=A u + B v + C<br />
Y(u,v)=D u + E v + F<br />
(2,4)<br />
x= S u u<br />
y= S v v<br />
Su=Sv=2<br />
x= 2 v<br />
y=2 u<br />
(0,2) (4,2)<br />
x<br />
v<br />
(1,2)<br />
(0,1) (2,1)<br />
v<br />
(1,2)<br />
(0,1) (2,1)<br />
u<br />
x=u+∆u<br />
y=v+∆v<br />
Figura 5.1: Esempi <strong>di</strong> trasformazioni descritte da un modello affine.<br />
x=u (cos(θ))+ v (sin(θ))<br />
y=u (-sin(θ))+ v (cos(θ))<br />
u<br />
(1,-2)<br />
y<br />
y<br />
∆u=1<br />
∆v=2<br />
x= u+1<br />
y=v+2<br />
(2,4)<br />
(1,3) (3,3)<br />
(1,0)<br />
θ=π/2<br />
x<br />
x= v<br />
y=u (-1)<br />
(2,-1)<br />
x
46 CAPITOLO 5. LA COMPENSAZIONE DI MOTO<br />
5.3 Algoritmi <strong>di</strong> <strong>moto</strong><strong>compensazione</strong> per la co<strong>di</strong>fica <strong>di</strong> sequenze video<br />
Come <strong>di</strong>scusso nei paragrafi precedenti, la <strong>moto</strong><strong>compensazione</strong> si basa sul principio che quadri successivi della<br />
sequenza video siano legati da trasformazioni geometriche. Nelle applicazioni <strong>di</strong> <strong>moto</strong><strong>compensazione</strong> il quadro<br />
attuale é sud<strong>di</strong>viso in regioni non sovrapposte5.1 , e per ciascuna regione é in<strong>di</strong>viduata l’area <strong>di</strong> provenienza nel<br />
quadro precedente, come illustrato in Fig. 5.2.<br />
I n-1<br />
Modello traslatorio.<br />
Modello affine.<br />
Modello prospettico o bilineare.<br />
Figura 5.2: Uso <strong>di</strong> modelli del campo <strong>di</strong> <strong>moto</strong> a fini <strong>di</strong> <strong>moto</strong><strong>compensazione</strong>.<br />
Consideriamo qui il caso <strong>di</strong> gran lunga piú comune: il modello traslatorio.<br />
Il quadro attuale Ik[m, n] sia partizionato in blocchi non sovrapposti, tali da ricoprire l’intero quadro. In<strong>di</strong>chiamo<br />
con B il generico blocco del quadro attuale. Per il blocco B, si cerca nel quadro precedente il blocco piú simile<br />
massimizzando un assegnato funzionale <strong>di</strong> somiglianza, ovvero minimizzando un assegnato funzionale <strong>di</strong> <strong>di</strong>storsione.<br />
Adottando il criterio dell’errore quadratico me<strong>di</strong>o, il blocco piú simile é in<strong>di</strong>viduato dalla coor<strong>di</strong>nate relative<br />
∆mmin, ∆nmin che minimizzano la seguente funzione<br />
DMSE(∆m, ∆n) = X<br />
(m,n)∈B<br />
al variare <strong>di</strong> (∆m, ∆n) in un intervallo preassegnato.<br />
(Ik[m, n] − Ik−1[m + ∆m, n + ∆n]) 2<br />
5.1Tipicamente, nelle applicazioni <strong>di</strong> ”morphing” e <strong>di</strong> elaborazione delle immagini la trasformazione é applicata ”in avanti”, scandendo il<br />
quadro precedente per generare i punti corrispondenti del quadro attuale. Le aree del quadro attuale non assegnate nella fase <strong>di</strong> mappatura sono<br />
successivamente ricostruite con sofisticate tecniche <strong>di</strong> interpolazione. Nelle applicazioni <strong>di</strong> co<strong>di</strong>fica,é scan<strong>di</strong>to il quadro attuale al fine <strong>di</strong> associare<br />
ad ogni punto un punto del quadro precedente. Tale modalitá <strong>di</strong> applicazione della trasformazione geometrica, detta ”all’in<strong>di</strong>etro”, evita che<br />
risultino non assegnate aree del quadro attuale.<br />
I n
5.3. ALGORITMI DI MOTOCOMPENSAZIONE PER LA CODIFICA DI SEQUENZE VIDEO 47<br />
Per questioni computazionali, la <strong>di</strong>storsione puó essere computata adottando il criterio della somma delle <strong>di</strong>fferenze<br />
assolute ( Sum of Absolute Differences, SAD). In tal caso il blocco piú simile é in<strong>di</strong>viduato dalla coor<strong>di</strong>nate relative<br />
∆mmin, ∆nmin che minimizzano la seguente funzione<br />
DSAD(∆m, ∆n) = X<br />
(m,n)∈B<br />
|Ik[m, n] − Ik−1[m + ∆m, n + ∆n]|<br />
per (∆m, ∆n) variabili in un intervallo preassegnato.<br />
Un esempio <strong>di</strong> un’immagine Ik[m, n] estratta dalla sequenza video ”Suzie” e della sua versione predetta Îk[m, n]<br />
me<strong>di</strong>ante <strong>moto</strong><strong>compensazione</strong> traslatoria é riportata in Fig.7.5. <strong>La</strong> <strong>moto</strong><strong>compensazione</strong> in questo esempio é operata<br />
su blocchi <strong>di</strong> <strong>di</strong>mensioni 8x8.<br />
I k [m,n]<br />
I<br />
^<br />
k [m,n]<br />
Figura 5.3: Esempio <strong>di</strong> <strong>moto</strong><strong>compensazione</strong> su blocchi 8x8.<br />
(particolare)<br />
Quando la <strong>moto</strong><strong>compensazione</strong> é operata partizionando l’immagine in una griglia e in<strong>di</strong>viduando lo spostamento<br />
ottimo <strong>di</strong> ciascun vertice della griglia, l’ottimizzazioe <strong>di</strong>viene 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 <strong>di</strong> criteri euristici, finalizzati ad in<strong>di</strong>viduare tasselli non troppo picoli per controllare il costo <strong>di</strong> trasmissione<br />
dei vettori spostamento e non troppo gran<strong>di</strong> in modo da non includere <strong>di</strong>scontinuitá. Una strategia frequentemente<br />
utilizzata consiste nella scelta dei vertici della griglia in corrispondenza <strong>di</strong> punti significativi dell’immagine stessa.
Bibliografia<br />
[1] G. Scarano, “Dispense <strong>di</strong> 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 Co<strong>di</strong>ng-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 />
48