18
Politecnico di Milano Politecnico di Milano Realizzazione di un IP-Core Realizzazione di un IP-Core per il trattamento per il trattamento dell’immagine mediante dell’immagine mediante tecniche di hardware tecniche di hardware software codesign software codesign Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco D. SANTAMBROGIO Tesi di Laurea di: Andrea Ardemagni Matteo Sangalli A.A. 2004/2005

Relatore: Prof. Fabrizio FERRANDI Correlatore: Ing. Marco D. SANTAMBROGIO

Embed Size (px)

DESCRIPTION

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. - PowerPoint PPT Presentation

Citation preview

Page 1: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 2: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 3: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 4: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 4

Hardware Software Hardware Software CodesignCodesign

Fasi di progettazione: • pianificazione • validazione • implementazione • test e verifica

Page 5: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 6: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 7: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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 JPEG2000 – Trasformazione Delle ComponentiDelle Componenti

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:

Page 8: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 8

Virtex-II pro Evaluation Board

Porta serialeConnettore JTAG

FPGA XC2VP7 Virtex-II pro

Alimentazione

Page 9: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 9

FPGA - Introduzione

Blocco di Input/output

Blocco logico configurabile

Interconnessioni configurabili

• FPGA (Field Programmable Gate Array)

Page 10: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 11: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 11

Implementazione dell’IP-Implementazione dell’IP-CoreCore

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

Page 12: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 12

Architettura hardwareArchitettura hardware

PowerPC

Bus PLB

Bus OPB

IP-Core realizzat

o

Figura tratta da EDK: Embedded Figura tratta da EDK: Embedded Development KitDevelopment Kit

Page 13: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 13

RGB1

IP-Core: doppio IP-Core: doppio moltiplicatoremoltiplicatore

SWSWBus PLB

User Logic: scrittura su regsitri 0

t

RGB2

RGB3SWSW Bus PLB

User Logic: scrittura su regsitri Plb_molt_core: elaborazione

RGB1 e RGB2

RGB4

t1

YCbCr1SWSW

Bus PLBUser Logic: lettura da regsitri YCbCr2

RGB..SWSW

Bus PLBUser Logic: scrittura su regsitri Plb_molt_core: elaborazione

RGB3 e RGB4

RGB..

YCbCr3SWSW Bus PLB

User Logic: lettura da regsitri YCbCr4

t2

t3

t4

t5

Page 14: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 15: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

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

Page 16: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 16

PrestazioniPrestazioni

TIPOLOGIA MODULO BUS TEMPO (# cicli)

Modulo puramente software PLB 5691

Singolo moltiplicatore (Y,Cb,Cr=32 bit)

OPB 12875

Doppio moltipliplicatore a 32 bit

(Y=32 bit, Cb e Cr = 16 bit)

OPB 9261

Doppio moltipl. a 32 bit

(Y, Cb e Cr = 16 bit)

PLB 7499

Doppio moltipl. a 64 bit

(Y= 32 bit, Cb e Cr = 16 bit)

PLB 4393

Page 17: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 17

Conclusioni e Sviluppi Conclusioni e Sviluppi FuturiFuturi

• 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.

Page 18: Relatore: Prof. Fabrizio FERRANDI                 Correlatore: Ing. Marco D. SANTAMBROGIO

Settembre 2005 Andrea Ardemagni - Matteo Sangalli 18

FINE PRESENTAZIONE