03.08.2013 Views

motocompensazione - InfoCom

motocompensazione - InfoCom

motocompensazione - InfoCom

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!