Realizzazione di algoritmi video su FPGA Corso di laurea triennale in ingegneria elettronica applicata Università Degli Studi di Trieste Laureando: Marco Fusilli 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
Inizializzazione dei convertitori Sistema implementato Inizializzazione dei convertitori
Sistema implementato Interfaccia I2C
Sistema implementato Interfaccia RS232
Sistema implementato Bus FSL – Periferiche veloci
Acceleratore Hardware 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 Conteggio pixel Lettura valori Cancellazione Stand-by
Riassunto Quando arriva un interrupt, il MicroBlaze: 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