Politecnico di Milano Realizzazione di un IP-Core per il trattamento dell’immagine mediante tecniche 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 Sommario • 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 2 Obiettivi • 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. Settembre 2005 Andrea Ardemagni - Matteo Sangalli 3 Hardware Software Codesign Fasi di progettazione: • pianificazione • validazione • implementazione • test e verifica Settembre 2005 Andrea Ardemagni - Matteo Sangalli 4 JPEG2000 - Caratteristiche Innovative • 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 5 JPEG2000 – Algoritmo di compressione Immagine Trasformata Codifica Pre-processing Quantizzazione originale Wavelet Entropica Immagine compressa • Tecnica per ridurre laDiscreta quantità di nello memoria, Immagine Suddivisione Trasformata Discretizzati non Wavelet idell’immagine risultati compressa dell’uscita Bitmap (DWT): tile dei filtri spazio della Caso diinstudio impiegata rappresentare leainformazioni più colore trasformata RGBper (Red, Wavelet Green,tile Blue) 24 bit • Applicata ad ogni singolo di ogni componente • Trasformazione delle componenti: significative dell’immagine rimasta Red Blueconversione • Trasformazione VeroGreen cuore della delle immagini delle componenti: • Attarverso filtri passa-alto e passa-bassoYvengono Cb Creliminati i dettagli meno significativi dell’immagine RGB YCbCr Settembre 2005 Andrea Ardemagni - Matteo Sangalli 6 JPEG2000 – Trasformazione Delle Componenti Cause della trasformazione: • RGB: colore e luminosità fuse insieme in ogni componente compressione: perdita significativa della qualità dell’immagine • YCbCr: 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 Settembre 2005 Andrea Ardemagni - Matteo Sangalli 7 Virtex-II pro Evaluation Board FPGA XC2VP7 Virtex-II pro Connettore JTAG Porta seriale Alimentazione Settembre 2005 Andrea Ardemagni - Matteo Sangalli 8 FPGA - Introduzione • FPGA (Field Programmable Gate Array) Blocco di Input/output Blocco logico configurabile Interconnessioni configurabili Settembre 2005 Andrea Ardemagni - Matteo Sangalli 9 Metodologia Di Progetto Gestione e lettura dei pixel RGB Acquisizione dell’immagine Bitmap in ingresso SW Lettura dei pixel Finali YCbCr Invio dei pixel RGB all’elaboratore comunicazione Settembre 2005 Moltiplicazione matriciale dei pixel comunicazione Andrea Ardemagni - Matteo Sangalli HW 10 Implementazione dell’IP-Core Bus per la comunicazione tra Il microprocessore e l’IP-Core Bus PLB IP-CORE plb_molt Interfaccia di collegamento con il bus Interfaccia tra l’IPIF e la User Logic IPIC Operazioni di lettura e scrittura sui registri Elaborazione dei pixel Settembre 2005 Andrea Ardemagni - Matteo Sangalli 11 Architettura hardware Bus PLB Bus OPB PowerPC IP-Core realizzato Figura tratta da EDK: Embedded Development Kit Settembre 2005 Andrea Ardemagni - Matteo Sangalli 12 IP-Core: doppio moltiplicatore SW RGB1 RGB2 SW RGB3 RGB4 SW SW SW User Logic: scrittura su regsitri Bus PLB Bus PLB YCbCr1 YCbCr2 Bus PLB RGB.. RGB.. Bus PLB YCbCr3 YCbCr4 Bus PLB 0 t1 User Logic: scrittura su regsitri Plb_molt_core: elaborazione RGB1 e RGB2 t2 User Logic: lettura da regsitri t3 User Logic: scrittura su regsitri Plb_molt_core: elaborazione RGB3 e RGB4 t4 User Logic: lettura da regsitri t5 t Settembre 2005 Andrea Ardemagni - Matteo Sangalli 13 Memory-map e Driver Memoria dell’IP-Core OFFSET 0 8 16 24 31 0x 000 0 Red_1 Green_1 Blue_1 0x 004 0 Red_2 Green_2 Blue_2 0x 008 0 Red_3 Green_3 SW: System.c OPERAZIONI DI LETTURA \ SCRITTURA Blue_3 0x 010 0 Red_4 Green_4 Blue_4 MEMORIA DI APPOGGIO PER LE OPERAZIONI DI SCRITTURA DEI REGISTRI INUTILIZZATO Settembre 2005 Bus PLB 0x030 Y_1-2 Y_3-4 0x040 Cb_1-2 Cb_3-4 0x044 Cr_1-2 Cr_3-4 0x048 Andrea Ardemagni - Matteo Sangalli HW: IP-Core plb_molt 14 Test Effettuati Modulo esclusivamente software software (PLB) Confronto delle prestazioni temporali Singolo Moltiplicatore 32 bit (bus OPB) Doppio moltiplicatore 32 bit (bus OPB) Settembre 2005 Doppio moltiplicatore 32 bit (bus PLB) Andrea Ardemagni - Matteo Sangalli Doppio moltiplicatore 64 bit (bus PLB) 15 Prestazioni TIPOLOGIA MODULO BUS TEMPO (# cicli) Modulo puramente software PLB 5691 Singolo moltiplicatore (Y,Cb,Cr=32 bit) OPB 12875 Doppio moltipliplicatore a 32 bit OPB 9261 (Y=32 bit, Cb e Cr = 16 bit) Doppio moltipl. a 32 bit PLB 7499 (Y, Cb e Cr = 16 bit) Doppio moltipl. a 64 bit PLB 4393 (Y= 32 bit, Cb e Cr = 16 bit) Settembre 2005 Andrea Ardemagni - Matteo Sangalli 16 Conclusioni 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 17 FINE PRESENTAZIONE Settembre 2005 Andrea Ardemagni - Matteo Sangalli 18