ITTO930797A1 - Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video da 50 hz a 75 hz con compensazione del movimento e apparecchiatura per la implementazione di tale metodo. - Google Patents
Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video da 50 hz a 75 hz con compensazione del movimento e apparecchiatura per la implementazione di tale metodo. Download PDFInfo
- Publication number
- ITTO930797A1 ITTO930797A1 IT000797A ITTO930797A ITTO930797A1 IT TO930797 A1 ITTO930797 A1 IT TO930797A1 IT 000797 A IT000797 A IT 000797A IT TO930797 A ITTO930797 A IT TO930797A IT TO930797 A1 ITTO930797 A1 IT TO930797A1
- Authority
- IT
- Italy
- Prior art keywords
- frames
- video signal
- repetition frequency
- converting
- progressive scan
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 86
- 238000006243 chemical reaction Methods 0.000 title description 15
- 238000004329 water eliminated fourier transform Methods 0.000 title 1
- 239000013598 vector Substances 0.000 claims description 94
- 230000015654 memory Effects 0.000 claims description 30
- 230000000750 progressive effect Effects 0.000 claims description 17
- 230000002123 temporal effect Effects 0.000 claims description 12
- 238000001914 filtration Methods 0.000 claims description 8
- 238000013459 approach Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 5
- 238000005303 weighing Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 208000012661 Dyskinesia Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010363 phase shift Effects 0.000 description 1
- 239000011148 porous material Substances 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0127—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter
- H04N7/0132—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level by changing the field or frame frequency of the incoming video signal, e.g. frame rate converter the field or frame frequency of the incoming video signal being multiplied by a positive integer, e.g. for flicker reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/01—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level
- H04N7/0135—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes
- H04N7/014—Conversion of standards, e.g. involving analogue television standards or digital television standards processed at pixel level involving interpolation processes involving the use of motion vectors
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Television Systems (AREA)
- Looms (AREA)
Description
Descrizione del brevetto per invenzione industriale dal titolo:
"METODO PER LA CONVERSIONE DELLA FREQUENZA DI RIPETIZIONE DELLE TRAME DI UN SEGNALE VIDEO DA 50 Hz A 75 Hz CON COMPENSAZIONE DEL MOVIMENTO E APPARECCHIATURA PER L'IMPLEMENT AZIONE DI TALE METODO"
RIASSUNTO
Viene descritto un metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz; la caratteristica principale del metodo consiste nel fatto che ? prevista una ridistribuzione temporale delle trame originali e una interpolazione di una trama addizionale ogni due originali.
Una seconda importante caratteristica del metodo descritto consiste nel fatto che l'interpolazione prevede una compensazione del movimento; un vettore di movimento viene associato a ciascun pixel della trama da interpolare; i valori dei pixel interpolati vengono prodotti con una operazione di media lungo la traiettoria stimata del movimento.
DESCRIZIONE
La conversione della frequenza di ripetizione delle trame che rappresentano le immagini di una sequenza video ? un argomento che si ? imposto all'attenzione dei tecnici a causa della proliferazione dei tipi di sorgenti di segnale e dei formati di visualizzazione con caratteristiche differenti.
La necessit? di sviluppare metodi efficienti per effettuare tale conversione ? particolarmente sentita, sia nel campo delle applicazioni di integrazione delle immagini televisive in sistemi multimediali, sia nel campo dei sistemi televisivi avanzati, allo scopo di ridurre un tipico artefatto (large area flicker) dei sistemi attuali. In particolare una conversione con un fattore pari ad 1,5, cio? da 50 a 75 Hz, ? considerata generalmente soddisfacente, sia perch? la frequenza di 75 Hz ? prossima a quella normalmente usata nei monitore delle stazioni di lavoro, sia perch? tale frequenza risulta fornire un accettabile compromesso tra qualit? visiva e complessit? computazionale .
Lo scopo della presente invenzione ? perci? quello di indicare un metodo per effettuare tale conversione in modo efficiente, cos? da ottenere una qualit? soddisfacente delle immagini pur tuttavia mantenendo la complessit? di calcolo in limiti accettabili.
Per raggiungere lo scopo prefisso, l'invenzione ha per oggetto un metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, caratterizzato dal fatto che ? prevista una ridistribuzione temporale delle trame originali e una interpolazione di una trama addizionale ogni due originali.
In una prima forma preferita di realizzazione l'invenzione ha per oggetto un metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, ulteriormente caratterizzato dal fatto che detta ridistribuzione temporale prevede che uno delle trame originali venga visualizzato 3,3 millisecondi prima dell?istante che essa occupava nella sequenza originale, che l'altra trama originale venga visualizzata 3,3 millisecondi dopo dell'istante che esso occupava nella sequenza originale, e che la trama addizionale sia interpolata in posizione centrale tra dette due trame originali temporalmente spostate.
In una seconda forma preferita di realizzazione l'invenzione ha per oggetto un metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, ulteriormente caratterizzato dal fatto che l'interpolazione prevede una compensazione del movimento, che un vettore di movimento viene associato a ciascun pixel della trama da interpolare e che i valori dei pixel interpolati vengono prodotti con una operazione di media lungo la traiettoria stimata del movimento.
Ulteriori caratteristiche e vantaggi della presente invenzione risulteranno chiari dalla descrizione che segue e dai disegni annessi, forniti a puro titolo di esempio esplicativo e non limitativo, in cui: - la figura 1 mostra una possibile distribuzione temporale delle trame per una conversione da 50 a 75 Hz;
- la figura 2 mostra la distribuzione temporale secondo l'invenzione delle trame per una conversione da 50 a 75 Hz;
- la figura 3 mostra un esempio di interpolazione lineare con compensazione del movimento;
- la figura 4 mostra i nove raggi da esaminare quando la finestra di supporto sia una 3x3;
- la figura 5 mostra esempi di blocchetti di pixels utilizzabili per il "block matching";
- la figura 6 mostra esempi di traiettorie di raggi curvati;
- la figura 7 mostra come i raggi ?-?-?" e ?-I-Q" individuano il medesimo vettore di movimento relativo al pixel I;
- la figura 8 mostra un esempio di due oggetti che si sovrappongono; - la figura 9 mostra una tabella relativa ad un esempio di funzionamento del metodo secondo l'invenzione;
- la figura 10 mostra lo schema logico a blocchi di una possibile realizzazione del metodo secondo l'invenzione;
- la figura 11 rappresenta il diagramma temporale relativo al funzionamento della realizzazione della figura 10.
1 Conversione da 50 a 75 Hz: un metodo base
1.1 Distribuzione temnorale delle trame interpolate
Nei vari metodi proposti per l'aumento della frequenza di scansione, le trame ("frames") o i campi ("fields") della sequenza in uscita sono ottenuti parte mediante copia degli originali, parte mediante interpolazione. Nel caso della conversione da 50 Hz a 100 Hz tutte le trame (o campi) originali sono inclusi nella sequenza interpolata, ed il raddoppio della frequenza di scansione ? ottenuto semplicemente mediante inserimento di un nuova trama (campo) interpolato tra ogni coppia di trame (campi) originali consecutive. Ci? consente di realizzare metodi con caratteristiche di simmetria in cui tutte le trame o campi in ingresso vengono trattati allo stesso modo. Ci? non ? invece possibile nel nostro caso, poich? il fattore di conversione frazionato 1.5 fa s? che le trame originali debbano contribuire in maniera diversa alla creazione delle nuove trame.
Consideriamo le distanze temporali tra trame interpolate ed originali delle sequenze a 50 Hz ed a 75 Hz.
Un semplice esempio di distribuzione delle trame interpolate ? rappresentato nella figura 1, nella quale il numero di riferimento 100 indica una trama ripetuta e il numero di riferimento 101 indica invece un contributo aH?interpolazione. Di ogni tre trame nuove, una ? ottenuta mediante ripetizione di trame originali, le altre due sono ottenuti mediante interpolazione. Essendo la qualit? delle trame originali naturalmente migliore di quella delle trame interpolate, il fatto che solo met? delle trame originariamente disponibili venga utilizzato nella sequenza in uscita costituisce uno svantaggio di questo approccio. Inoltre la disposizione temporale delle trame non ? simmetrica rispetto alle trame originali da cui esse sono ottenute, e dunque il contenuto di queste ultime all?interpolazione dovrebbe a sua volta non essere simmetrico. In particolare, se si desidera che il contributo di ogni trama originale sia inversamente proporzionale alla sua distanza dal nuova trama, ? necessario effettuare divisioni per 3, che dal punto di vista dell'implementazione hardware pongono maggiori problemi rispetto alle divisioni per 2 e per 4. Il metodo secondo l'invenzione prevede di introdurre uno "sfasamento temporale" della sequenza interpolata rispetto all'originale. E' bene chiarire che non si intende suggerire che tale sfasamento possa di per s? avere influenza sul risultato finale dell'interpolazione: ci interessa in questo momento solo considerare la posizione relativa delle trame interpolate rispetto alle trame originali da cui esse hanno origine. In questa ottica, si ? scelto di porre una trama interpolata ogni tre (trame z nella figura 2) in posizione centrale rispetto ad una coppia di trame originali, mentre le trame di tipo x e y sono situate a 3.3 ms. da una trama originale.
Le trame di tipo z vengono poi interpolate nel modo descritto nei capitoli successivi, mentre le trame di tipo x e y vengono ottenute replicando le trame originali pi? "vicine". Questo approccio ci consente di
- utilizzare tutti le trame originali nella nuova sequenza, conservando cos? tutta l'infonnazione originariamente disponibile. - interpolare solo una trama su tre della sequenza in uscita, riducendo cos? a met? la quantit? di calcoli necessari rispetto al metodo di Fig. 1.
- evitare divisioni per 3, semplificando una eventuale implementazione hardware del metodo.
In compenso, questa scelta tende leggermente a trasformare movimenti continui in movimenti "a scatti" ("jerkiness"), dal momento che le trame x e y verranno utilizzate 3.3 secondi dopo (tipo x) o prima (tipo y) dell'istante esatto che occupavano nella sequenza originale. Tuttavia l?artefatto cos? introdotto ? scarsamente visibile nelle aree pi? critiche di moto lento ed uniforme.
Nella figura 2, nella quale i numeri 100 e 101 hanno lo stesso significato di figura 1, ? rappresentata la distribuzione delle trame dopo lo "sfasamento temporale": le trame x e y sono repliche di trame originali con un lieve scostamento temporale, le trame z sono interpolate a partire da due trame originali.
1.2 Compensazione del movimento
Nei procedimenti di interpolazione di dati multidimensionali assume importanza il modo in cui l'informazione disponibile ? distribuita nelle varie dimensioni. Nel caso dell'immagine televisiva sono coinvolte due dimensioni spaziali ed una temporale. All'atto della ricostruzione di un elemento di informazione (nel nostro caso il livello di grigio di un pixel) ci interessa conoscere gli elementi ad esso vicini sia in senso spaziale che temporale.
Possiamo allora distinguere due tipi di informazione:
- informazione spaziale?, ? portata dai pixels appartenenti alla stessa trama del pixel da interpolare, e situati in posizioni spazialmente vicine.
- informazione temporale : ? data da pixels le cui coordinate spaziali sono vicine o uguali a quelle del pixel da interpolare, ma che si trovano in trame (o semiquadri) diversi.
Se consideriamo il caso del deinterlacciamento, entrambi i tipi di informazione sono disponibili e possono essere sfruttati. In particolare si tende a privilegiare lo sfruttamento dell'informazione temporale nelle aree stazionarie, mentre l?informazione spaziale viene maggiormente utilizzata nelle zone dove ? presente movimento e l'informazione temporale ? meno affidabile.
Nel caso dell?aumento della frequenza di scansione, invece, nulla ? dato di sapere riguardo all'istante di tempo in cui si trovano i pixels da interpolare; tutta l?informazione disponibile appartiene o alla trama precedente o a quello successiva, ed ? dunque di tipo temporale.
Questa carenza si manifesta in particolare nelle aree non stazionarie; per poter effettuare una interpolazione quanto pi? possibile fedele, ? fondamentale giungere ad una conoscenza del tipo di movimento presente che guidi ad un utilizzo conveniente dell'informazione disponibile. La stima e la compensazione del movimento sono tipicamente le parti pi? complesse di un metodo di interpolazione di trame. Lo sviluppo di una forma di stima e compensazione del movimento che garantisse prestazioni soddisfacenti pur mantenendo un livello accettabile di complessit? computazionale ha rappresentato un obiettivo importante della presente invenzione.
1.2.1. Ipotesi sulla linearit? del moto
L'approccio seguito ? basato sull'assunto che qualsiasi movimento tra due trame successive si svolga a velocit? costante.
Se un oggetto (vedi fig. 3, nella quale il numero di riferimento 102 indica la trama precedente, il numero 103 la trama interpolata e il numero 104 la trama successiva) si trova nella posizione A nella trama precedente e nella posizione B nella trama successiva, possiamo interpolare il pixel in posizione P effettuando una media lineare lungo la direzione A-B, cio? ponendo:
(1) L'obiettivo della stima del movimento ? di trovare la direzione pi? adatta per l'effettuazione di questa media, ovvero calcolare il vettore movimento le cui componenti meglio approssimano lo spostamento orizzontale e verticale tra la trama precedente e quella successiva dell'oggetto corrispondente al pixel P. Questa stima viene effettuata mediante un metodo di "block matching".
1.3 Traiettorie di movimento
Nel calcolare il valore di ciascun pixel interpolato, vengono prese in considerazione un certo numero di traiettorie tra le quali scegliere poi la pi? significativa per i nostri scopi. Chiameremo queste traiettorie di tentativo ?raggi". Ad esempio, nel caso di fig. 3 la traiettoria di movimento che congiunge il pixel A al pixel B corrisponde al raggio A-B. Lungo ciascuno di questi raggi viene valutato un indice di correlazione, che ci consentir? infine di scegliere la direzione pi? probabile. Come indice di correlazione ? stato scelto il "Block Matching Error" (BME), per la cui spiegazione si rimanda al paragrafo 1.3.1.
Possiamo dividere i raggi in due gruppi:
- raggi diritti
- raggi curvati
Allo scopo di rendere pi? semplice la spiegazione del metodo, ne analizzeremo prima ima versione semplificata, che prevede l'utilizzo di soli raggi diritti. L?estensione ai raggi curvati verr? invece presentata nel paragrafo 2.1. Per valutare il vettore movimento relativo al pixel in posizione (x, y) nella trama tn (che identificheremo con la notazione (x, y, tn)), consideriamo un fascio di raggi diritti passanti per il pixel (x, y, tn). Ciascuno di questi raggi interseca la trama precedente e successiva in pixels che si trovano rispettivamente intorno alle posizioni (x, y, tn-1) e (x, y, tn+1). Nell?effettiva implementazione del metodo i raggi sono stati scelti in maniera tale che i pixels situati alle estremit? dei raggi formino una finestra rettangolare, che denomineremo finestra di supporto dello stimatore di movimento (vedi fig. 4, in cui il numero 105 indica la finestra di supporto e il numero 106 la posizione del pixel interpolato).
La forma e le dimensioni della finestra di supporto determinano il campo di ampiezza dei movimenti che possono venir stimati correttamente dal metodo. Ad un aumento delle dimensioni della finestra di supporto corrispondono migliori prestazioni, ma al costo di una maggiore complessit? computazionale. Va inoltre sottolineato che le dimensioni della finestra di supporto influenzano la scelta di altri parametri del metodo, come ad esempio la forma e le dimensioni dei blocchi di pixels utilizzati nella procedura di "block matching? (paragrafo 1.3.1.). Ci? si spiega col fatto che l?uso di una pi? grande finestra di supporto (e quindi di un maggior numero di raggi) comporta un maggior rischio di trovare correlazione lungo direzioni non significative, rischio dal quale ci si deve tutelare ampliando le dimensioni dei blocchi di pixels nel "block matching". Sono state sperimentate varie fogge per le finestre di supporto e un buon compromesso tra le qualit? dei risultati e complessit? pare ottenibile con una finestra 5x3. Questa scelta privilegia il movimento orizzontale, che ? pi? comune di quello verticale nelle sequenze naturali. Tale scelta implica che movimenti superiori ai 5 pixels per trama (3 pixels in verticale) non possono essere compensati dal metodo; tuttavia il degrado delle prestazioni ? in questo caso solitamente in buona parte mascherato dal movimento stesso.
Nella versione semplificata che stiamo ora considerando, una finestra di supporto 5x3 comporta l'utilizzo di 15 raggi. Ciascuno di questi raggi ? associato ad un vettore di movimento. Questi vettori sono definiti dallo spostamento relativo delle due estremit? dei raggi sulle trame precedente e successiva. Con riferimento alla Fig. 3 siano ad esempio (x - i, y - j) le coordinate del pixel A, (x, y) le coordinate di P, (x+i, y+j) quelle di B. Il vettore associato al raggio A-B ? dunque (2i, 2j). Componenti positive dei vettori movimento si riferiscono a moto rispettivamente da sinistra a destra e verso il basso. Si noti infine che l?uso di soli raggi diritti implica vettori movimento con sole componenti pari.
1.3.1. Block matching
Una volta che i raggi da esaminare siano stati selezionati, per ciascuno di essi va valutato un indice di correlazione. Ci? avviene mediante block maching, ovvero selezionando un insieme di pixels intorno ad un'estremit? del raggio e confrontandoli con pixels omologhi appartenenti ad un analogo insieme situato aH'estremit? opposta del raggio. Una scelta banale potrebbe ad esempio consistere nell'adottare quale indice di correlazione la semplice differenza in valore assoluto dei due pixels situati all'estremit? del raggio in questione (ad esempio I B-A I per il raggio A-B di figura 3): questa scelta, utilizzata in versioni precedenti del metodo, ha dato risultati deludenti, evidenziando la necessit? di tecniche pi? sofisticate.
E' stato sperimentato l'utilizzo di blocchetti diversi per numero e distribuzione dei pixel ad essi appartenenti. Alcuni di essi sono rappresentati nella figura 5, nella quale in (a) ? rappresentato il caso di un pixel singolo, in (b) il caso di una croce a 5 punti, in (c) il caso di una croce a 7 punti e in (d) il caso di ima quinconce a 8 punti. Si ? inoltre verificato che, una volta scelta la dimensione del blocchetto {ad esempio 3X3 in fig. 5 (b) e 5X3 in fig. 5 (c) e (d)}, non ? necessario prendere in considerazione tutti i pixel ad esso appartenenti, ma basta considerare un blocchetto sottocampionato, riducendo il carico computazionale senza peraltro degradare i risultati. In particolare, un blocchetto sottocampionato con 8 pixels distribuiti "a scacchiera" su un rettangolo 5X3 ha dato le migliori prestazioni in associazione ad una finestra di supporto 5X3. Questo blocchetto, utilizzato nel metodo proposto ? rappresentato nella figura 5 (d).
Il criterio per la valutazione dell'indice di correlazione si presta a varie scelte, tra cui le pi? frequentemente utlizzate sono la somma dei valori assoluti delle differenze in valore assoluto dei livelli di grigio (Block Maching Error: BME), o l'errore quadratico medio (Mean Square Error: MSE). Il primo ? frequentemente preferito in virt? della sua maggiore semplicit?, ed ? stato scelto anche nel nostro caso.
In questa versione semplificata del metodo, la somma dei valori assoluti delle differenze dei livelli di grigio calcolati sugli 8 pixels ? stata utilizzata come indice di correlazione senza privilegiare alcuna delle direzioni (vettori movimento). Questi indici di correlazione sono poi confrontati tra loro allo scopo di individuare il vettore movimento cui corrisponde la migliore correlazione, ovvero il minimo BME.
1.3.2 Filtraggio mediano del campo di vettori
Il procedimento sopra descritto produce un campo di vettori movimento, dove a ciascuno dei pixels da interpolare corrisponde un vettore. Pu? darsi il caso che si verifichino errori nella stima del movimento, specialmente in zone dove ? presente il dettaglio fine. Al fine di incrementare la coerenza del campo dei vettori movimento e ridurre l'incidenza di questi errori, si applica al campo di vettori un filtraggio di tipo mediano. Si utilizza ima finestra 3 x 3 che viene fatta scorrere da sinistra a destra e dall'alto in basso sul campo vettoriale. In corrispondenza di ciascun pixel da interpolare, il vettore in uscita dal filtro mediano vettoriale viene scelto come segue.
Siano xl...x9 le componenti orizzontali dei 9 vettori inclusi nella maschera 3 x 3 del filtro, e siano yl...y9 le componenti verticali e sia
la maschera 3 x 3 del filtro mediano vettoriale per componenti.
Si definiscono allora:
(2)
(3)
Definiremo come vettore di uscita, destinato a sostituire il vettore rilevato mediante il "block matching", quello di componenti (xm)ym)? Va sottolineato che i vettori in uscita non vengono riutilizzati come ingresso per passi successivi (cio? per il filtraggio del vettore movimento relativo al pixel adiacente) : il filtraggio ? dunque non ricorsivo. I vettori movimento del campo cos? filtrato vengono infine utilizzati nella procedura di interpolazione lineare, cos? come spiegato nel paragrafo 1.2.1.
1.4 Prestazioni del metodo base
Come gi? precisato nel paragrafo 1.3, la versione base del metodo fin qui presa in considerazione ? in grado di rilevare, con l'uso di soli raggi diritti, solo movimento consistenti in un numero pari di pixels, e ci? costituisce una limitazione inaccettabile per i nostri fini. Ad esempio, se la finestra di supporto ? larga 5 pixels ed alta 3, si possono rilevare solo movimenti di 0, 2, 4 in orizzontale e 0, 2 in verticale. Chiameremo questi movimenti pari. Per poter lavorare anche con movimenti dispari di pixels occorre prendere in considerazione anche raggi curvati, oltre a quello diritti. Sfortunatamente, ad un aumento del numero di raggi utilizzati corrisponde un incremento della complessivit? computazionale, e si rende necessaria la ricerca di qualche forma di semplificazione , come proposto nel paragrafo 2.2.
2 D metodo completo
Abbandoniamo ora le semplificazioni introdotte nel paragrafo precedente ?d esaminiamo nel dettaglio la versione completa del metodo proposto.
2.1 Raggi curvati
Supponiamo di voler interpolare il pixel in posizione (x,y,tn) e consideriamo un oggetto che si muova di tre pixels verso destra, ad esempio spostandosi dalla posizione (x-1, y,tn-l) alla posizione (x+1, y,tn+l). Si pu? verificare con semplici considerazioni che non esiste un raggio diritto che possa rilevare questo spostamento, n? nel fascio centrato in (x,y,tn), n? in quello centrato in (x+1, y,tn). Non essendo possibile la rivelazione del corretto movimento, la scelta della direzione pi? correlata sar? fortemente dipendente dal rumore, e ci? ? destinato a portare ad errori nell?interpolazione. Lo stesso problema si presenta per ogni movimento che coinvolga un numero dispari di pixels per trama, orizzontalmente e/o verticalmente.
Per rendere completa l'analisi delle traiettorie che possono interessare il pixel (x,y,tn) occorre dunque prendere in considerazione 4 raggi per ogni pixel appartenente alla finestra di supporto (vedi fig.6):
1. un raggio diritto (110);
2. un raggio ottenuto dal precedente spostandone di un pixel verso sinistra l'estremit? situata nella trama successiva (raggio curvato a sinistra: 111)
3 un raggio ottenuto dal raggio diritto spostandone di un pixel verso il basso l'estremit? nella trama successiva {raggio curvato verso il basso: 112).
4. un raggio ottenuto dal raggio diritto spostandone di un pixel verso sinistra e di uno verso il basso l'estremit? situata nella trama successiva {raggio curvato a sinistra e verso il basso: 113).
In questo modo, qualsiasi movimento consistente in un numero intero di pixels e rientranti entro le limitazioni imposte dalle dimensioni della finestra di supporto (paragrafo 1.2) pu? essere rilevato.
Quando l'interpolazione deve essere effettuata lungo ima direzione individuata da un vettore con almeno una componente dispari, il procedimento di interpolazione si diversifica leggermente da quello scelto per movimenti pari (Eq. 1). Con riferimento alla figura 7, sia B - I - Q " (versione curvata a destra del raggio diritto B - I' - P?") il raggio corrispondente al vettore movimento individuato. La soluzione pi? immediata consisterebbe nel mediare tra i due pixels situati alle estremit? del raggio stesso, vale a dire nel porre:
Questo approccio comporta tuttavia lo scindere il movimento dispari in due movimenti interi, in particolare attribuendo uno spostamento di un pixel all'intervallo di tempo tra la trama precedente e quella attuale, e uno spostamento di 2 pixels tra la trama attuale e quella successiva, il che implica uno sfasamento temporale di mezzo pixel, che d? origine ad un errore.
Un'altra possibilit? consiste nel mediare tra 4 pixels, ovvero nel porre:
Il movimento dispari viene in questo modo scisso in due movimenti non interi uguali. A questo approccio si potrebbe obiettare che esso provoca l'introduzione di una certa dose di sfocatura, ma ci? potrebbe in realt? osservare solo in sequenze artificiali. Nel caso invece di sequenze reali il metodo tratta i movimenti in maniera pi? simile all?azione di una telecamera in fase di ripresa, avvicinandosi maggiormente all'effetto cui l'occhio umano ? abituato e dando cos? origine ad un miglior risultato globale.
Va inoltre osservato che non ? necessario curvare i raggi anche verso destra o verso l'alto.
Come spiegato in precedenza (paragrafo 1.2.1), siamo interessati a considerare un certo numero di vettori movimento di tentativo per ciascuno pixel da interpolare, ed a trovare quello tra essi la cui direzione ? la pi? adatta all'interpolazione. Con riferimento alla figura 7, nella quale si vede che i raggi A - I - P" e B - T - Q" individuano il medesimo vettore movimento relativo al pixel I, consideriamo l?interpolazione del pixel ed in particolare, il "block matching" relativo al vettore (3.2). Un raggio corrispondente a questo vettore ? B - Q" (versione curvata a sinistra del raggio diritto B - T -P"). Si pu? tuttavia osservare che anche il raggio A - P" (versione curvata a destra del raggio diritto A - I - Q') corrisponderebbe al medesimo settore movimento (3,2). Dunque ? possibile risparmiare una significativa quantit? di calcoli evitando il doppio controllo che verrebbe effettuato operando il "block matching" lungo entrambi i raggi.
2,2 Ricerca ristretta dei vettori movimento
Come gi? affermato, il mantenere quanto pi? possibile bassa la complessivit? computazionale ha rappresentato un obiettivo primario nello sviluppo di questo metodo. Purtroppo, si pu? verificare che il metodo completo fin qui descritto non soddisfa questo requisito. Supponendo di utilizzare una finestra di supporto larga 5 pixels ed alta 3 e raggi curvati, per ogni pixel da interpolare vanno effettuate misure di correlazione lungo 60 raggi. Utilizzando il metodo di "block matching" descritto nel paragrafo 1.3.1. ogni test richiede 8 differenze in valore assoluto (per i pixels distribuiti a scacchiera campionati dal blocchetto 5 x 3), facendo ammontare a circa 500 il numero di operazioni in valore assoluto da effettuare. A queste vanno aggiunte i 60 confronti per valutare il raggio che presenta massima correlazione e le altre operazioni, che tuttavia rappresentano un carico minore.
Se si accetta per? l'ipotesi che il campo di vettori non presenti frequenti discontinuit?, ma varii in maniera generalmente graduale, ? possibile evitare i calcoli relativi ad una buona parte dei raggi senza che ci? porti ad ima significativa perdita di accuratezza nella stima del movimento.
Si consideri ad esempio un pixel per il quale sia stato stimato un vettore movimento di componenti (4,2). E' piuttosto improbabile che il pixel adiacente abbia un vettore movimento molto diverso, ad esempio (-3.1). Allo stesso modo in cui, fissando le dimensioni della finestra di supporto, abbiamo posto un limite alle massime velodt? rilevabili dal metodo, poniamo qui un analogo limite alle differenze di velodt? tra pixels adiacenti. Un modo semplice di mettere in pratica questo proposito consiste nel restringere la ricerca del vettore movimento ad un numero limitato di direzioni che, secondo un determinato criterio, sono non molto diverse da quelle attribuite a pixels drcostanti. Questo pu? anche venire visto come un test preliminare di consistenza sul campo dei vettori movimenti. La costante ricerca di semplicit? computazionale ci ha spinti ad implementare questa modifica in maniera piuttosto "drastica". Al momento di interpolare il pixel in posizione (x,y) ci serviamo come riferimento del vettore trovato per il pixel precedente (x - l,y) ed indaghiamo solo i 9 vettori ad esso adiacenti.
Denotiamo il vettore relativo al pixel (x - l,y) con V e con Vx e Vy le sue componenti.
Si effettuano le operazioni di "block matching" solo sui 9 vettori qui sotto indicati:
In questo modo, i calcoli di correlazione coinvolgono solo 9 raggi anzich? 60.
2.3 Pesatura degli indici di correlazione
E? chiaro che la riduzione del numero di raggi da verificare sopra proposta rallenta la reazione del metodo alla presenza di variazioni nel campo dei vettori movimento. Laddove compare un gradino nel campo di vettori (ad esempio in corrispondenza di due oggetti con traiettorie diverse che si sovrappongono), la ricerca ristretta tende a produrre un effetto di "trascinamento", a causa del quale un certo numero di pixels alla destra del gradino possono vedersi attribuite velocit? errate, prima che si tomi ad una stima corretta.
Un altro problema, simile a questo, si pone in presenza di una configurazione di movimento piuttosto comune,: una barra verticale sottile che si muove orizzontalmente su (o insieme a) uno sfondo uniforme. Nella zona uniforme, i vettori movimento tendono ad assumere una distribuzione casuale. Quando, nella sua scansione, il metodo raggiunge la barra verticale, il vettore movimento V (v, paragrafo 2.2) pu? avere un orientazione qualsiasi, ed in particolare molto diversa da quella corrispondente al movimento della barra. La restrizione della ricerca pu? allora far fallire l?individuazione del dettaglio in movimento, dando cos? luogo ad un errore. Allo scopo di ridurre questo problema, gli indici di correlazione vengono pesati in maniera che vengano favoriti i raggi pi? vicini alla direzione (0,0). Lo scopo ? di permettere al vettore V di spostarsi verso posizioni estreme solo quando ci? ? effettivamente necessari, cercando altrimenti di riportarlo verso configurazioni pi? centrali. Trovandosi tendenzialmente in posizioni pi? baricentriche, il vettore V ha maggiori possibilit? di agganciarsi alla corretta posizione di movimento, e il metodo reagisce cos? pi? prontamente alle variazioni del campo.
Detta BME (Block Matching Error) la somma delle differenze in valore assoluto degli 8 pixels dei blocchetti situati all'estremit? del raggio corrispondente al vettore sotto test U, definiremo l'indice di correlazione pesato (Weighted Correlation Index) come:
dove K ? un parametro. I risultati delle simulazioni suggeriscono per K la scelta di valori compresi tra 0.05 e 2.
3. Un esempio
Allo scopo di rendere chiaro il funzionamento del metodo, viene qui di seguito proposto un esempio relativo ad una situazione piuttosto semplice, e che tuttavia consente di osservare come il metodo affronta situazioni caratteristiche come ad esempio bordi in movimento, zone uniformi, oggetti in sovrapposizione.
Si consideri un oggetto nero che si sposta di 3 pixels verso destra tra la trama precedente e quella successiva con una "scia" larga un pixel, per aggiungere realismo alla situazione. E? poi presente un altro oggetto, bianco, che si sposta invece di due pixels verso sinistra, andando a sovrapporsi all'oggetto nero (vedi fig. 8, nella quale nella parte A ? mostarta la trama precedente, nella parte B la trama interpolata e nella parte C la trama successiva). Allo scopo di semplificare la spiegazione, la finestra di supporto ? una 5x1. In pratica lo studio viene effettuato solo "in orizzontale", e la ricerca ristretta coinvolge solo 3 raggi, anzich? 9: l'estensione alla finestra 5x3 ? banale. I blocchetti per il "block matching" hanno la struttura descritta in figura 5.
I risultati del "block matching" sono raccolti nella figura 9. E' stato tralasciato il filtraggio mediano sul campo dei vettori. Per ciascuna delle colonne (numerate da 0 a 16), abbiamo calcolato il Block Matching Error lungo i tre raggi della ricerca ristretta e l'abbiamo pesato, ottenendo cos? l?indice di correlazione WCI (in neretto). Abbiamo attribuito all'oggetto nero un livello grigio di 20; la scia ha valore 10, l'oggetto bianco e lo sfondo hanno valore 0. Il valore della costante K (equazione 6) ? stato fissato in 0.05. Si pu? osservare dalla tabella che i tre raggi lungo cui viene effettuato il "block matching" sono "centrati" intorno alla direzione pi? correlata trovata per il pixel precedente (evidenziato dalla parentesi graffa nella figura 9), come spiegato nel paragrafo 2.2. A partire dalla colonna 3, il metodo comincia a reagire alla presenza del bordo in movimento: viene selezionato il vettore movimento (1.0) ed il vettore V inizia a spostarsi verso una posizione corretta. Questo processo continua nelle colonne 4 e 5, e l'interpolazione lungo le direzioni selezionate ha dato i seguenti risultati: per la colonna 3 il livello di grigio ? 2.5, per la colonna 4 ? 5 per la colonna 5 ? 15, ed infine per la colonna 6 ? 20. Giunto alla colonna 6, il metodo comincia a rilevare la presenza dell'oggetto bianco, e comincia una fase di transizione: nelle colonne 7 e 8 il metodo non individua una direzione che mostri una correlazione chiaramente migliore, e dunque la pesatura degli indici tende a spostare la ricerca intorno a posizioni pi? centrali. Ad esempio nelle colonne 7 ed 8 tutti i vettori indagati danno 60 come valore del Block Matching Error. La pesatura favorisce allora i raggi pi? prossimi alla direzione (0,0), ovvero (1.0) e (0.0) rispettivamente. L'aver spostato il vettore V in posizione baricentrica consente al metodo di rilevare il movimento dell'oggetto bianco a partire dalla colonna 9 e di agganciarsi ad esso correttamente alla colonna 10, dove il vettore scelto ? appunto (-2,0). Nelle colonne successive, dal momento che l'oggetto bianco ha colore uniforme, la procedura di pesatura riporta la ricerca intorno a posizioni centrali. Se vi fosse invece del dettaglio sull'oggetto, il metodo rimarrebbe agganciato alla direzione (-2.0). 4. Considerazioni Hardware
Per un approccio verso una implementazione hardware del metodo descritto nella sezione precedente, dobbiamo considerare quali sono i requisiti in termini di complessit? computazionale, velocit? e dimensioni di memoria.
Nella figura 10 ? rappresentato un diagramma a blocchi di una possibile implementazione; nella figura con i simboli MI, M2, M3, M4, M5 sono indicate 5 memorie veloci a due port seriali (SAM); con SD? ? indicato l'ingresso seriale dei dati a 27 MHz; con SDO l'uscita seriale di dati a 40,5 MHz; con MMCL ima logica di controllo per la memoria e il muntiplexer; con DI, D2 e D3 tre linee di ritardo; con IYC un interpolatore di luminanza e crominanza a 13,5 MHz; con WM una memoria per creare le finestre; con SPI un blocco di selezione dei pixel da interpolare; con IP i pixel interpolati; con E/O 10 spostamento pari/dispari; con BM il "block matching"; con BPS il blocco di selezione dei pixel BME; con ADD i sette sommatori; con VCD i vettori di controllo della decodifica; con NVC le componenti di un nuovo vettore; con RMVC le componenti del vettore movimento. Facendo riferimento al diagramma a blocchi rappresentato in fig. 10, il carico maggiore ? dato dallo stimatore di movimento. Dato che noi prevediamo vettori di movimento abbastanza precisi, la complessit? globale dell'interpolatore in s? ? bassa.
4.1 Complessit? computazionale
4.1.1 Lo stimatore del vettore movimento
Noi gestiamo 9 "candidati vettori", ognuno richiedente 8 differenze assolute e 7 somme. Allo scopo di calcolare i 9 candidati WCI, sono necessarie 9 moltiplicazioni. I fattori di pesatura sono funzione delle componenti vettoriali; essi sono dati da
(1) La somma in (1) pu? essere calcolata una volta per oguno di tutti gli 80 possibili vettori. Il set di possibili fattori di pesatura pu? essere limitato a soli 16 differenti valori. Come alternativa a 9 moltiplicatori puri, ogni moltiplicatore pu? essere implementato come una tabella memorizzata in una ROM, contenente valori di BME x WF approssimati a mezzo di potenze di 2, dove il fattore di pesatura WF ? a sua volta funzione delle componenti vettoriali. Ci? significa che per ogni valore di WCI, la moltiplicazione ? ridotta ad un puro accesso LUT (Look Up Table). La scelta del miglior vettore richiede una ricerca minima, che ? equivalente ad 8 comparazioni. Il filtraggio mediano del campo di vettori pu? essere fatto on-line; esso necessita di ulteriori 8 comparazioni per ogni componente vettoriale. E' necessaria ima tabella per ricavare gli otto vettori "prossimi" per il nuovo candidato vettore. Eventualmente una logica di decodifica ? necessaria per generare i controlli per scegliere la finestra di pixels. Un sensazionale miglioramento di efficienza ? dato da una gestione codificata dei vettori, in modo che ogni vettore pu? essere rappresentato da una sola parola di 6 bit e il filtro mediano delle componenti vettoriali ? ridotto ad un filtro mediano scalare puro invece di due.
4.1.2 L'interpolatore
L'interpolatore in s? richiede 3 sommatoli ed un multiplexer. Esso ? ahmentato da un blocco di selezione pixel controllato, a sua volta, dal vettore stimato del movimento.
Il conto totale in termini di numero di operazioni per un punto di uscita ? il seguente:
72 differenze assolute
63 addizioni senza segno
24 comparazioni
9 moltiplicazioni (opzionali)
Dati di ingresso e uscita (pixels) sono entrambi di 8 bit per le componenti di luminanza e crominanza, mentre le due componenti del vettore di movimento possono essere contenute da una parola di 8 bit. I vettori di movimento sono calcolati una volta sia per la luminanza sia per la crominanza.
4.2 Velocit?
Il flusso di dati seriali in ingresso richiede un ritmo di 27 MHz, mentre il flusso di dati di uscita (75 trame televisive progressive) ha un ritmo di 40,5 MHz.
Tuttavia, dato che una trama interpolata viene generata ogni tre trame di uscita, il periodo di ripetizione risultante di una trama interpolata Fz ? solamente di 25 Hz. Questo pu? essere utilizzato per ridurre la frequenza di clock della logica a 13,5 MHz.
Solamente le RAM a doppi pori, la logica di controllo relativa e il multiplexer di uscita devono lavorare alla velocit? considerevole di 40,5 MHz, mentre il blocco di calcolo ha esigenze pi? tranquille. Gli accessi alle RAM a due port sono seriali, cosicch? la logica di controllo risulta abbastanza semplice
Se supponiamo di elaborare i 9 candidati vettori in parallelo, il clock pi? lento a 13,5 MHz permette intervalli di tempo abbastanza lunghi per disporre in coda le operazioni da compiere nel processo di "block matching" e nel processo di determinazione del vettore di movimento. Il calcolo di un vettore WCI richiede ima organizzazione in 5 stadi di operazioni aritmetiche binarie (sommatori e sottrattoli), mentre il vettore stimato filtrato in un filtro mediano richiede una organizzazione in 8 stadi (4+4) di comparatori binari. Un periodo di clock di 74 nanosecondi (13,5 MHz) non pone condizioni molto stringenti per organizzare un buon "pipelining" (messa in coda) di questi 13 stadi con le esistenti tecnologie del silicio di 1 micrometro o meno. Il costo di una tale architettura sta nel fatto che dobbiamo replicare l'hardware di calcolo tante volte quanti sono i candidati vettori. Perci? la complessit? dell'hardware ? una funzione lineare della complessit? del metodo in termini di numero di candidati vettori che intendiamo considerare.
4.3 Dimensione della memoria
Il terzo elemento chiave da considerare ? la dimensione della memoria. Ci occorrono principalmente tre tipi memorie:
- memorie a doppi port ad accesso seriale per ridimensionare le esigenze di temporizzazione delle trame video;
- memorie di linea (LM) per generare lo schema di pixel per il "block matching? e per il filtraggio mediano dei vettori;
- blocchi di memoria ROM per le tabelle.
4.3.1 Memorie per temporizzazione
Ci sono 4 SAM (Serial Access Memory) a doppio port allingresso (MI, M2, M3, M4) per gestire le trame Fx e Fy d'ingresso. Esse sono in effetti memorie di trama. Due di esse sono scritte a 27 MHz e lette a 13,5 MHz per alimentare lo stimatore del vettore di movimanto, le altre due sono scritte a 27 MHz e lette a 40,5 MHz per generare le due trame Fx e Fy a 75 Hz.
C?? una SAM a due port (memoria di trama, M5) all'uscita dell'interpolatore per convertire la trama Fz generata a 25 Hz in una trama d?uscita a 75 Hz.
Il parametro chiave per valutare questi blocchi ? il loro tempo d'accesso seriale.
Tutte queste memorie lavorano a 13,5 MHz e sono comunemente reperibili sul mercato.
4.3.2 Memoria di finestra
Per generare gli schemi di pixel corrispondenti alle finestre di supporto estese nelle trame Fx e Fy per il "block matching" sono necessarie nello stimatore di movimento 5+4 memorie di linea (LM) per le componenti di luminanza; per le componenti di crominanza sono necessarie solo 3+2 LM, dato che per l'interpolazione di crominanza sono utilizzati i vettori di luminanza.
In totale sono necessarie 14 LM.
Inoltre occorrono registri a 8 bit per render disponibili i singoli pixel di una linea, per un totale di 94 registri, e per il filtro mediano, che richiede 8 registri. Tale rilevante numero di registri pu? essere pi? convenientemente realizzato usando una memoria RAM di 128 parole di 8 bit.
4.3.3 Memoria per il filtro mediano
Il filtro mediano per le componenti vettoriali ha un supporto di 3x3 punti, interessante 3 linee; pertanto ci occorrono altre due LM per memorizzare i vettori filtrati; registri addizionali sono poi necessari per accedere ai singoli vettori di una linea, per un totale di 6 registri da 8 bit.
4.3,4 Memoria ROM
E' necessaria per per implementare alcune tabelle (LUT): una per determinare i vettori "adiacenti" di un nuovo "tentativo"; la sua memoria ? trascurabile.
Altri blocchi di ROM sono richiesti per implementare le tabelle dei moltiplicatori; la memoria richiesta dipende dalla precisione aritmetica (lunghezza dei numeri) dei valori BME e WCI. Una elevata precisione richiede parole di 11 bit per i valori BME e quindi un totale di 9 blocchi di 64 kiloparole di 12 bit; una precisione minore richiede dimensioni minori.
4.4Architettura temporizzatrice
In figura 11 ? disegnato imo schizzo del diagramma dei tempi (nella figura 11 la lettera W sta per "scrittura" e la lettera R sta per "lettura", come usuale).
Due concetti fondamentali stanno alla base del diagramma di temporizzazione:
A) alimentazione seriale dello stimatore del vettore di moto con pixels appartenenti alle trame Fx e Fy ad un ritmo di 13,5 MHz;
B) messa in coda delle operazioni di stima del vettore e temporizzazione delle operazioni di ridimensionamento.
All'ingresso dello stimatore di moto ci sono due memorie di trama e altre due per la temporizzazione del ridimensionamento delle trame Fx e Fy. Inoltre una memoria di uscita serve per gestire la temporizzazione del ridimensionamento della trama Fz. Tutte le operazioni di lettura e scrittura sono messe in coda (pipelining).
Consideriamo le memorie dello stimatore di moto.
Una trama completa Fx a 50 Hz ? scritta a 27 MHz nella memoria MI, e successivamente riletta a 13,5 MHz per alimentare lo stimatore di moto. Ci? richiede due periodi di trama (40 millisecondi), cosicch? nel secondo periodo di trama, mentre l'operazione di lettura viene terminata, viene scritta una nuova trama Fy. Per non sovrapporre gli ultimi pixels della vecchia e nuova trama, viene effettuata una operazione di leggi-prima-di-scrivere. Un procedimento simile viene effettuato con la memoria M2, per le trame di tipo Fx, ma viene effettuata una operazione di scrivi-prima-dileggere.
Due successive trame Fx e Fy sono contemporaneamente preselezionate all?ingresso dello stimatore di moto.
Consideriamo ora th? memorie di temporizzazione del ridimensionamento. E' necessaria una operazione di scittura e lettura parzialmente sovrapposta, la lettura essendo effettuata a 40,5 MHz e la scrittura a 27 Mhz, sia per M3 che per M4. Un?operazione leggi-perima-di-scrivere ? necessaria per M4. (trame Fx).
Infine, la memoria M5 di trama di temporizzazione del ridimensionamento dell'uscta Fz viene continuamente scritta a 13,5 MHz e letta a 40,5 MHz, con un'operazione sovrapposta di scriviprima- di -legge re nell'ultimo terzo di un periodo di due trame a 50Hz (40 millisecondi).
4.5 Considerazioni sul metodo
La complessit? hardware di una tale architettura non va sottovalutata. Pertanto ? necessario un robusto approccio alla realizzazione hardware.
Il processo di conversione, da una pura descrizione statica del metodo (un programma software), ad una struttura hardware specificata a livello di porte logiche, consiste dei passi seguenti.
Una descrizione seriale a livello pixel (SPLD) del metodo tiene conto delle esigenze di prestazione prima sottolineate. Una tale descrizione ? anche utile per risolvere i problemi di sincronizzazione tra lo stimatore di moto ed il convertitore di frequenza di trama. La sua correttezza pu? essere verificata facilmente mediante confronto diretto con i risultati del riferimento metodologico "aureo". Inoltre la SPLD funziona da generatore di schema di uscita di riferimento per un successivo utilizzo di simulatori hardware. La SPLD ? ancora una descrizione comportamentale deH?architettura hardware scelta per implementare il metodo, corrispondendo ad una descrizione a livello di trasferimento di registri (RTL).
Una descrizione strutturale VHLD dell'architettura di flusso dati ? facilmente ottenibile da una descrizione SPLD, mediante tecniche di trasformazione molto semplici, mentre logica di controllo a stati finiti e blocchi di memoria sono descritti comportamentalmente.
Compilatori automatici VHLD sono in grado di realizzare in certo grado un'ottimizzazione logica, come la rimoziohe di logiche ridondanti, e e di fornire un codice che ? sia simulabile in unit? di ritardo, sia sintetizzabile.
Il processo di sintesi viene applicato a quei blocchi di controllo e di flusso dati che siano suscettibili di essere sintetizzati da blocchi funzionali di silicio e/o da connessioni logiche. La mappatura di diverse tecnologie fornisce un serie di alternative da valutare per migliorare l'efficienza di calcolo da un punto di vista hardware (velocit?, area, dissipazione di potenza).
I blocchi VHLD descritti comportamentalmente e quelli sintetizzati possono essere simulati assieme agli schemi di prova generati con la SPLD per una simulazione esauriente del sistema.
Alla fine la lista di rete sintetizzata dalla VHLD, tecnologicamente orientata, a livello di porte, pu? essere elaborata per essere realizzata con componenti FPGA e ASIC.
5 Risultati
II metodo proposto ? stato sperimentato su sequenze reali e su sequenze di test, effettuando sia l?analisi di singole trame interpolate, sia di intere sequenze con l'uso di un sequencer VTE che ha permesso la visualizzazione in tempo reale delle sequenze a 75 Hz. La classificazione ed il confronto delle prestazioni delle differenti versioni del metodo si sono rivelate questioni di non semplice approccio, e la struttura stessa del problema ha suggerito il ricorso al giudizio soggettivo come principale strumento di analisi.
I risultati delle simulazioni effettuate si sono dimostrati soddisfacenti sia dal punto di vista della qualit? delle sequenze ottenute, sia da quello della complessit? computazionale, che ? stata mantenuta entro i limiti accettabili in vista della implementazione hardware.
Dalla descrizione effettuata risultano chiare le caratteristiche del metodo di conversione oggetto della presente invenzione, cos? come chiari ne risultano i vantaggi.
In particolare il metodo di conversione secondo l'invenzione consente di convertire la frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz in modo efficiente, cos? da ottenere una qualit? soddisfacente delle immagini pur tuttavia mantenendo la complessit? di calcolo in limiti accettabili. E' chiaro che numerose varianti possono essere apportate al metodo di conversione oggetto della presente invenzione, senza per questo uscire dai principi di novit? insiti nell'idea innovativa, cos? come ? chiaro che nella pratica attuazione dell'invenzione i materiali e le forme dei dettagli illustrati potranno essere diverse, e gli stessi potranno essere sostituiti con degli elementi tecnicamente equivalenti.
Claims (11)
- RIVENDICAZIONI 1. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, caratterizzato dal fatto che ? prevista una ridistribuzione temporale delle trame originali e una interpolazione di ima trama addizionale ogni due trame originali.
- 2. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo la rivendicazione 1, caratterizzato dal fatto che dettaridistribuzione temporale prevede che una delle trame originali (Fx) venga visualizzata 3,3 millisecondi prima dell'istante che essa occupava nella sequenza originale, che l'altra trama originale (Fy) venga visualizzata 3,3 millisecondi dopo dell'istante che essa occupava nella sequenza originale, e che la trama addizionale (Fz) sia interpolata in posizione centrale tra dette due trame originali temporalmente spostate.
- 3. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo la rivendicazione 1 o 2, caratterizzato dal fatto che l'interpolazione prevede una compensazione del movimento, che un vettore di movimento (V) viene associato a ciascun pixel della trama da interpolare e che i valori dei pixel interpolati vengono prodotti con una operazione di media lungo la traiettoria stimata del movimento.
- 4. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo la rivendicazione 3, caratterizzato dal fatto che per l'interpolazione viene considerato il sottoinsieme pi? probabile localmente dei vettori possibili.
- 5. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo la rivendicazione 3, caratterizzato dal fatto che per l?interpolazione viene generato un campo di vettori che viene reso uniforme mediante un filtraggio mediano delle componenti vettoriali.
- 6. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo una o pi? delle rivendicazioni precedenti da 3 a 5, caratterizzato dal fatto che al momento di interpolare il pixel in posizione (x,y) viene utilizzato come riferimento il vettore trovato per il pixel precedente (x - l,y) e vengono esaminati solo i 9 vettori ad esso adiacenti.
- 7. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo la una o pi? delle rivendicazioni precedenti da 3 a 5, caratterizzato dal fatto che per l?interpolazione vengono utilizzati indici di correlazione pesati (WCI) il cui parametro K viene posto ad un valore compreso tra 0,05 e 2.
- 8. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo una o pi? delle rivendicazioni precedenti da 3 a 5, caratterizzato dal fatto che come finestra di supporto per l'interpolazione viene considerata ima quinconce di 8 pixel.
- 9. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, secondo una o pi? delle rivendicazioni precedenti da 3 a 5, caratterizzato dal fatto che la gestione delle memorie (MI, M2, M3, M4, M5) necessarie per le due trame (Fx, Fy) da ricopiare e per la trama (Fz) da interpolare viene effettuata in base ad operazioni del tipo leggi-prima-di-scrivere (read-before-write) o del tipo scriviprima-di-leggere (write-before-read) al fine di ottimizzare la temporizzazione delle operazioni che avvengono in parziale sovrapposizione.
- 10. Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz, quale risulta dalla presente descrizione e dai disegni annessi.
- 11. Apparecchiatura per l'implementazione del metodo per la conversione della frequenza di ripetizione delle trame di un segnale video a scansione progressiva da 50 Hz a 75 Hz secondo una o pi? delle rivendicazioni precedenti.
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ITTO930797A IT1261633B (it) | 1993-10-26 | 1993-10-26 | Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video da 50 hz a 75 hz con compensazione del movimento eapparecchiatura per la implementazione di tale metodo. |
| EP94116718A EP0650293A3 (en) | 1993-10-26 | 1994-10-23 | Method for converting the frame rate of a video signal from 50Hz to 75Hz with motion compensation and device for carrying out this method. |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ITTO930797A IT1261633B (it) | 1993-10-26 | 1993-10-26 | Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video da 50 hz a 75 hz con compensazione del movimento eapparecchiatura per la implementazione di tale metodo. |
Publications (3)
| Publication Number | Publication Date |
|---|---|
| ITTO930797A0 ITTO930797A0 (it) | 1993-10-26 |
| ITTO930797A1 true ITTO930797A1 (it) | 1995-04-26 |
| IT1261633B IT1261633B (it) | 1996-05-23 |
Family
ID=11411827
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ITTO930797A IT1261633B (it) | 1993-10-26 | 1993-10-26 | Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video da 50 hz a 75 hz con compensazione del movimento eapparecchiatura per la implementazione di tale metodo. |
Country Status (2)
| Country | Link |
|---|---|
| EP (1) | EP0650293A3 (it) |
| IT (1) | IT1261633B (it) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU704658B2 (en) * | 1994-03-01 | 1999-04-29 | Snell & Wilcox Limited | Scanning converter for video display |
| JP3905922B2 (ja) * | 1995-04-11 | 2007-04-18 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 画像信号処理方法及び装置 |
| FR2742900B1 (fr) * | 1995-12-22 | 1998-02-13 | Thomson Multimedia Sa | Procede d'interpolation de trames progressives |
| DE69727911D1 (de) * | 1997-04-24 | 2004-04-08 | St Microelectronics Srl | Verfahren zur Erhöhung der bewegungsgeschätzten und bewegungskompensierten Bildfrequenz für Videoanwendungen, und Vorrichtung zur Verwendung eines solchen Verfahrens |
| EP1921595A3 (en) | 2003-09-30 | 2008-08-06 | LG Electronics Inc. | Method and apparatus of driving a plasma display panel |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB1052438A (it) * | 1965-02-04 | |||
| FR2645383B1 (fr) * | 1989-03-31 | 1997-06-27 | Thomson Consumer Electronics | Procede et dispositif d'interpolation temporelle d'images, a compensation de mouvement corrigee |
| DE3914550A1 (de) * | 1989-05-03 | 1990-11-08 | Thomson Brandt Gmbh | Signalverarbeitungssystem |
| EP0475499B1 (en) * | 1990-09-03 | 1995-11-22 | Koninklijke Philips Electronics N.V. | Motion compensated frame rate conversion |
-
1993
- 1993-10-26 IT ITTO930797A patent/IT1261633B/it active IP Right Grant
-
1994
- 1994-10-23 EP EP94116718A patent/EP0650293A3/en not_active Withdrawn
Also Published As
| Publication number | Publication date |
|---|---|
| IT1261633B (it) | 1996-05-23 |
| ITTO930797A0 (it) | 1993-10-26 |
| EP0650293A3 (en) | 1995-06-14 |
| EP0650293A2 (en) | 1995-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7764848B2 (en) | High resolution enabling apparatus and method | |
| US5991463A (en) | Source data interpolation method and apparatus | |
| Tian et al. | Algorithms for subpixel registration | |
| KR101130060B1 (ko) | 일시적 움직임 벡터 필터링 | |
| US5204944A (en) | Separable image warping methods and systems using spatial lookup tables | |
| KR101354819B1 (ko) | 비등축 텍스처 합성 방법 | |
| EP1912171A2 (en) | Super-resolution device and method | |
| RU2008105393A (ru) | Основанные на применении компьютера формирование и проверка тренировочных образов, предназначенных для многоточечного теостатистического анализа | |
| Coe et al. | LensPerfect: Gravitational lens mass map reconstructions yielding exact reproduction of all multiple images | |
| KR20100072729A (ko) | 시간 연속적 텍스쳐 합성 장치 및 방법 | |
| US20090129703A1 (en) | Signal processing method, apparatus, and program | |
| KR910002223A (ko) | 픽셀 인코딩 및 디코딩 장치와 그방법 | |
| CN100373912C (zh) | 用于图像放大处理过程中的快速双线性插值方法 | |
| Andreadis et al. | Digital image scaling | |
| Hu et al. | Optimized spatial recurrent network for intra prediction in video coding | |
| JP2798120B2 (ja) | 動き補償フレーム間予測方法及び動き補償フレーム間予測装置 | |
| Qiu | Interresolution look-up table for improved spatial magnification of image | |
| CN101483765A (zh) | 一种图像处理方法、编解码方法及装置 | |
| Schrank et al. | Deep learning MPI super-resolution by implicit representation of the system matrix | |
| ITTO930797A1 (it) | Metodo per la conversione della frequenza di ripetizione delle trame di un segnale video da 50 hz a 75 hz con compensazione del movimento e apparecchiatura per la implementazione di tale metodo. | |
| GB2236449A (en) | Motion estimation for television signals | |
| JP3161467B2 (ja) | 画像の時間的補間についての方法及びこの方法を実施するための装置 | |
| Aràndiga et al. | Weighted ENO interpolation and applications | |
| Gour et al. | Hardware accelerator for real-time image resizing | |
| JP2000152250A (ja) | 画像処理装置、方法及びコンピュータ読み取り可能な記憶媒体 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 0001 | Granted | ||
| TA | Fee payment date (situation as of event date), data collected since 19931001 |
Effective date: 19961029 |