Realizzazione di algoritmi video su FPGA Corso di laurea triennale in ingegneria elettronica applicata Laureando: Marco Fusilli Università Degli Studi di Trieste Relatore: Chiar.mo Prof. Stefano Marsi Anno accademico 2007/2008 Introduzione Necessità di elaborare molti dati General purpose - lenti ma versatili Sistemi embedded – veloci ma non aggiornabili Introduzione Con le FPGA si ha – – Possibilità di sistemi embedded riconfigurabili Semplificazione circuiteria necessaria – System on a Chip (SoC) Obiettivi del progetto Creare un sistema di elaborazione video in tempo reale Sfruttare la tecnologia SoC Sfruttare la velocità dell’hardware Sfruttare l’intelligenza del software La scheda Piattaforma per applicazioni multimediali FPGA Virtex-II Convertitori configurabili System ACE Controller Componenti usati Sistema implementato Sistema implementato Generatore di clock Sistema implementato CPU Sistema implementato Bus indirizzi Bus dati Sistema implementato Memoria RAM Sistema implementato Bus OPB - Periferiche lente Sistema implementato Inizializzazione dei convertitori Sistema implementato Interfaccia I2C Sistema implementato Interfaccia RS232 Sistema implementato Bus FSL – Periferiche veloci Sistema implementato Acceleratore Hardware Risincronizzatore L’elaborazione video L’elaborazione video L’elaborazione video - CCIR L’elaborazione video - CCIR L’elaborazione video L’elaborazione video L’elaborazione video Equalizzazione di istogramma Equalizzazione di istogramma Si costruisce un istogramma: In ascissa: i livelli di grigio In ordinata: il numero di pixel con quel valore Equalizzazione di istogramma Si calcola la funzione di distribuzione cumulativa Equalizzazione di istogramma La si linearizza! G = livelli di grigio NxM = dimensione immagine Fdc = funz. Distribuz. cumulativa Equalizzazione di istogramma Equalizzazione di istogramma Comunica gli indirizzi da leggere o da cancellare Equalizzazione di istogramma Trasmette i dati relativi al conteggio dei pixel Equalizzazione di istogramma Scrive sulla LUT i nuovi valori o … Equalizzazione di istogramma Scrive sulla LUT i nuovi valori o … … configura la modalità del contatore Equalizzazione di istogramma Scrive sulla LUT i nuovi valori o … … configura la modalità del contatore 1. 2. 3. 4. Conteggio pixel Lettura valori Cancellazione Stand-by Riassunto Quando arriva un interrupt, il MicroBlaze: 1. 2. 3. 4. 5. 6. 7. 8. Tramite la LUT attiva la modalità lettura Manda gli indirizzi da leggere Legge i dati Attiva la modalità di cancellazione Manda gli indirizzi da cancellare Attiva la modalità conteggio Effettua i calcoli Scrive i nuovi valori sulla LUT Conclusioni Sistema funzionante in real-time Minimo ritardo pari a 2 schermate Conclusioni Sistema non ottimizzato – – – – Il demux e il mux della scomposizione video lavorano con contatori (in tot. 4 da 11 bit, 2 da 9 bit) Procedura di lettura e cancellazione non automatizzata Uso della LUT per la selezione della modalità Poca memoria – elaborazioni più complesse difficili da implementare in software Il MicroBlaze Bus FSL Temporizzazioni bus FSL -lettura Temporizzazioni bus FSL -scrittura CCIR – parola di controllo