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
Scarica

Sistema implementato - Università degli Studi di Trieste