Thesis Ardemagni Sangalli Slide It
-
Upload
usrdresd -
Category
Technology
-
view
439 -
download
0
Transcript of Thesis Ardemagni Sangalli Slide It
Politecnico di MilanoPolitecnico di Milano
Realizzazione di un IP-Core per il Realizzazione di un IP-Core per il trattamento dell’immagine mediante trattamento dell’immagine mediante
tecniche di hardware software codesigntecniche di hardware software codesign
Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco D. SANTAMBROGIO
Tesi di Laurea di: Andrea Ardemagni Matteo
Sangalli
A.A. 2004/2005
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 2
SommarioSommario
• Obiettivi
• Hardware software codesign
• Trattamento dell’immagine
• Caratteristiche innovative del formato JPEG2000
• Algoritmo di compressione e Trasformazione delle componenti
• Introduzione alla tecnologia delle FPGA
• Metodologia di progetto e implementazione dell’IP-Core
• Test e prestazioni
• Conclusioni e sviluppi futuri
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 3
• Realizzazione di un IP-Core per la trasformazione nel piano dei colori di un’immagine mediante tecniche di hardware software codesign;
• Integrazione dell’IP-Core all’interno di un’architettura a singolo processore;
• Comparazione delle prestazioni tra il modulo realizzato con progettazione “mista” ed uno esclusivamente software.
ObiettiviObiettivi
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 4
Hardware Software CodesignHardware Software Codesign
Fasi di progettazione: • pianificazione • validazione • implementazione • test e verifica
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 5
JPEG2000 - Caratteristiche JPEG2000 - Caratteristiche InnovativeInnovative
• Sistema di codifica unico
• Compressione con perdita di informazione (lossy) e senza perdita (lossless)
• A bassi bit-rate, qualità visiva dell’immagine JPEG200 migliore rispetto a quella JPEG
• Concetto di ”zona di interesse” (ROI, Region Of Interest) di un’immagine
• Resistenza alla propagazione degli errori
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 6
JPEG2000 – Algoritmo di JPEG2000 – Algoritmo di compressione compressione
Pre-processing TrasformataWavelet Quantizzazione Codifica
Entropica Immaginecompressa
Immagineoriginale
• Immagine non compressa Bitmap nello spazio colore RGB (Red, Green, Blue) a 24 bit
Immagineoriginale Pre-processing
• Suddivisione dell’immagine in tile
• Trasformazione delle componenti: Red Green Blue
Y Cb Cr
TrasformataWavelet
• Trasformata Wavelet Discreta (DWT):
• Applicata ad ogni singolo tile di ogni componente
• Vero cuore della conversione delle immagini
• Attarverso filtri passa-alto e passa-basso vengono eliminati i dettagli meno significativi dell’immagine
Quantizzazione
• Discretizzati i risultati dell’uscita dei filtri della trasformata Wavelet
Codifica Entropica
• Tecnica per ridurre la quantità di memoria, impiegata per rappresentare le informazioni più significative dell’immagine rimasta
Trasformazione delle componenti:
RGB YCbCr
Caso di studio
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 7
• RGB: colore e luminosità fuse insieme in ogni componente
compressione: perdita significativa della qualità dell’immagine
• YCbCr:
JPEG2000 – Trasformazione Delle JPEG2000 – Trasformazione Delle ComponentiComponenti
Y – luminanza: grado di luminosità in scala di grigi
Cb, Cr – componenti relative alla crominanza
compressione: applicata principalmente alle componenti Cb, Cr
senza intaccare la luminosità – qualità visiva migliore
Cause della trasformazione:
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 8
Virtex-II pro Evaluation Board
Porta serialeConnettore JTAG
FPGA XC2VP7 Virtex-II pro
Alimentazione
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 9
FPGA - Introduzione
Blocco di Input/output
Blocco logico configurabile
Interconnessioni configurabili
• FPGA (Field Programmable Gate Array)
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 10
Metodologia Metodologia Di ProgettoDi Progetto
Acquisizione dell’immagine
Bitmap iningresso
Gestione e letturadei pixel RGB
Invio dei pixel RGB all’elaboratore
Moltiplicazionematriciale dei
pixel
Lettura dei pixelFinali YCbCr
SW
HWcomunicazione comunicazione
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 11
Implementazione dell’IP-CoreImplementazione dell’IP-Core
Bus PLB
IPIC
IP-CORE plb_molt
Bus per la comunicazione tra Il microprocessore
e l’IP-Core
Interfaccia di collegamento con il bus
Interfaccia tral’IPIF e la User Logic
Operazioni di lettura e scrittura sui registri
Elaborazione dei pixel
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 12
Architettura hardwareArchitettura hardware
PowerPC
Bus PLB
Bus OPB
IP-Core realizzato
Figura tratta da EDK: Embedded Development Kit
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 13
RGB1
IP-Core: doppio moltiplicatoreIP-Core: doppio moltiplicatore
SW Bus PLBUser Logic: scrittura su regsitri
0
t
RGB2
RGB3SW Bus PLB
User Logic: scrittura su regsitri Plb_molt_core: elaborazione
RGB1 e RGB2
RGB4
t1
YCbCr1SW
Bus PLBUser Logic: lettura da regsitri YCbCr2
RGB..SW Bus PLB
User Logic: scrittura su regsitri Plb_molt_core: elaborazione
RGB3 e RGB4
RGB..
YCbCr3SW Bus PLB
User Logic: lettura da regsitri YCbCr4
t2
t3
t4
t5
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 14
Memory-map e DriverMemory-map e Driver
0x 0000 318 16 24
Red_1 Green_1 Blue_10
OFFSET
Red_2 Green_2 Blue_20
Red_3 Green_3 Blue_30
Red_4 Green_4 Blue_40
0x 004
0x 008
0x 010
MEMORIA DI APPOGGIO PER LE OPERAZIONI DI SCRITTURA
DEI REGISTRI0x030
INUTILIZZATO0x040
Y_1-2 Y_3-4
Cb_1-2 Cb_3-4
Cr_1-2 Cr_3-4
0x044
0x048
Memoria dell’IP-Core
SW: System.c
OPERAZIONI DI LETTURA \ SCRITTURA
Bus PLB
HW: IP-Core plb_molt
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 15
Test EffettuatiTest Effettuati
Singolo Moltiplicatore
32 bit (bus OPB)
Doppio moltiplicatore
32 bit (bus OPB)
Doppio moltiplicatore
32 bit (bus PLB)
Doppio moltiplicatore
64 bit (bus PLB)
Modulo esclusivamente
software
Doppio moltiplicatore
64 bit (bus PLB)
Modulo esclusivamente software (PLB)
Confronto delle prestazioni temporali
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 16
PrestazioniPrestazioni
4393PLB Doppio moltipl. a 64 bit
(Y= 32 bit, Cb e Cr = 16 bit)
7499PLB Doppio moltipl. a 32 bit
(Y, Cb e Cr = 16 bit)
9261OPB Doppio moltipliplicatore a 32 bit
(Y=32 bit, Cb e Cr = 16 bit)
12875OPB Singolo moltiplicatore (Y,Cb,Cr=32 bit)
5691PLB Modulo puramente software
TEMPO (# cicli)
BUSTIPOLOGIA MODULO
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 17
Conclusioni e Sviluppi FuturiConclusioni e Sviluppi Futuri
• Le prestazioni del modulo progettato mediante hardware software codesign sono decisamente migliori di quelle ottenibili utilizzando una gestione puramente software
• Il “collo di bottiglia” di questa architettura risultano essere le comunicazioni tra moduli
• Lavori futuri: realizzazione di un intero convertitore di immagini dal formato Bitmap a JPEG2000 per mezzo di IP-Core sviluppati con progettazione mista.
Settembre 2005 Andrea Ardemagni - Matteo Sangalli 18
FINE PRESENTAZIONE