66
UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKUTET PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE - Diplomski rad - Kandidat: Milena Zogović Podgorica, jul 2006. godine

UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

  • Upload
    lycong

  • View
    228

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKUTET

PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

- Diplomski rad -

Kandidat: Milena Zogović

Podgorica, jul 2006. godine

Page 2: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

UNIVERZITET CRNE GORE ELEKTROTEHNIČKI FAKUTET Broj: _____________ Podgorica, _____________ 2006. godine Kandidat: Milena Zogović Broj indeksa: 37/02

Naziv rada:

PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Datum izdavanja rada : Datum predaje rada :

Mentor Kandidat:

Doc. Dr Radovan Stojanović Milena Zogović

Page 3: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

IZJAVA O SAMOSTALNOM RADU

Ovim izjavljujem da sam diplomski rad uradila samostalno uz pomoć konsultacija sa mentorom i navedene literature.

________________________ Milena Zogović Rad odbranjen dana: ___. ___. 2006. godine pred Komisijom u sastavu: 1. ___________________________ (Predsjednik)

2. ___________________________ (Mentor)

3. ___________________________ (Član)

sa ocjenom _____ (__________).

Page 4: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Sadržaj

1. Uvod........................................................................................................................1

2. Osnovni pojmovi o FPGA dizajnu............................................................................1

2.1. PLD – ASIC – ASSP – FPGA ...........................................................................2

2.2. Primjena FPGA.................................................................................................2

2.3. Razvoj i struktura FPGA ...................................................................................4

3. Obrada slike bazirana na FPGA tehnologiji.............................................................9

3.1. Lokalni algoritmi................................................................................................9

3.1.1. Local neighborhood funkcije.......................................................................9

3.1.2. Konvolucija...............................................................................................11

3.1.3. Morfologija................................................................................................12

3.2. CPU- FPGA. FPGA baziran akcelerator .........................................................13

4. Cilj istraživanja. Alati. Resursi. ..............................................................................16

5. Generalni pristup ...................................................................................................21

5.1. Arhitektura predloženog rješenja ....................................................................21

5.1.1. Kontrolna (Control) jedinica......................................................................21

5.1.2. Data manager ..........................................................................................24

5.1.3. Kompletan dizajn fleksibilnog rješenja za obradu slike.............................27

6. Implementacija operatora......................................................................................30

6.1. Pixel point operatori ........................................................................................30

6.1.1. Kontrast....................................................................................................30

6.1.2. Histogram.................................................................................................32

6.2. Pixel area operacije ........................................................................................33

6.2.1. Median filtar..............................................................................................34

6.2.2. Mean Filtar ...............................................................................................40

6.2.3. Detekcija ivica ..........................................................................................45

7. Eksperimentalna verifikacija ..................................................................................50

8. Zaključak ...............................................................................................................54

9. Prilog .....................................................................................................................55

10. Literatura .............................................................................................................56

Page 5: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Popis slika

Slika 2.1. Prva osnovna logička jedinica FPGA čipa .......................................................4

Slika 2.2. Više povezanih logičkih blokova ......................................................................4

Slika 2.3. MUX baziran logički blok.................................................................................5

Slika 2.4. Pojednostavljen izgled Xilinix –ove logičke ćelije.............................................5

Slika 2.5. Slice .................................................................................................................6

Slika 2.6. CLB..................................................................................................................6

Slika 2.7. Izgled čipa sa ugrađenim memorijskim blokovima...........................................7

Slika 2.8. Izgled čipa koji je programiran da obavlja funkciju median filtra nad slikom dimenzija 256x256 a) sa generic komponentama; b) uz upotrebu memorijskih ćelija na čipu.............................................................................................................7

Slika 3.1. Neighborhood funkcija se primjenjuje na svaki piksel slike............................10

Slika 3.2. Piksel paralelizam – paralelizam na nivou instrukcija ....................................10

Slika 3.3. Moguća realizacija 2-D konvolucije................................................................12

Slika 3.4 -Treshold dekompozicija za median filtar........................................................13

Slika 3.5. Konceptualni hardverski i softverski dizajn hardverski "ubrzanog" sistema ...15Slika 4.1. UP3 Board Diagram.......................................................................................17

Slika 4.2. UP3 edukacioni kit .........................................................................................18

Slika 4.3. "TBLizer" a) generisanje i očitavanje *.tbl fajla za sliku; b) generisanje i očitavanje *.tbl fajla za vektor .................................................................................20

Slika 5.1. Simulacioni dijagram rada control jedinice: a) vektor dužine 16, maska 1x5; b) slika dimenzija 8x8, maska 1x3; c) slika dimenzija 8x8, maska 3x3; ..........23

Slika 5.2. Utrošeni resursi za realizaciju control jedinice: a) 1-D signal; b) 2-D signal, 1-D maska; c) 2-D signal, 2-D maska.....................................................................23

Slika 5.3. Simulacioni dijagram rada data manager-a, maska 1x5 ................................24

Slika 5.4. Realizacija Data managera u QuartusII razvojnom okruženju a) kompletan dizajn; b) unutrašnja struktura bloka fifo_256; c) unutrašnja struktura bloka fifo_3.......................................................................................................................26

Slika 5.5. Simulacioni dijagram rada data managera za sliku 8x8 i prozor 3x3 .............26

Slika 5.6. Utrošeni resursi: a) 1-D maska; b) 2-D maska, fleksibilan VHDL data manager; c) 2-D maska, nefleksibilan VHDL data manager.................................27

Slika 5.7. Blok šema median filtra prozora 3x3..............................................................28

Slika 5.8. Simulacioni dijagram rada kompletnog dizajna..............................................29

Slika 6.1. Simulacioni dijagram operacije kontrast za 1D signal dužine 8 .....................31

Slika 6.2. Različit stepen kontrasta primijenjen na 1-D signal........................................31

Page 6: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Slika 6.3. a) originalna slika "Lena", dimenzija 256x256; b) kontrast 25 jedinica; c)kontrast 50 jedinica; d) kontrast 75 jedinica.........................................................32

Slika 6.4. Histogram slike "Lena" dimenzija 256x256 ....................................................33

Slika 6.5. Princip realizacije druge grupe area operatora ..............................................34

Slika 6.6. Odabir širine maske u zavisnosti od intenziteta šuma: a) originalna slika "LENA" dimenzija 256x256; b) slika zahvaćena impulsnim šumom intenziteta 0.5; c) i d) frekvencijski spektri slika; e) i f) prvih 300 odbiraka analiziranih slika....35

Slika 6.7. Odabir širine maske u zavisnosti od intenziteta šuma: a) originalna slika "LENA" dimenzija 256x256; b) slika zahvaćena impulsnim šumom intenziteta 0.05; c) i d) frekvencijski spektri slika; e) i f) prvih 1000 odbiraka analiziranih slika ........................................................................................................................36

Slika 6.8. Izračunavanje median operatora pomoću partial sort algoritma ....................37

Slika 6.9. Simulacioni dijagram bazičnog kola median filtra za širinu maske 5..............37

Slika 6.10. a) signal zahvaćen slučajno generisanim impulsnim šumom; b) signal na izlazu iz median filtra maske 1x5 (crvena linija na grafiku); c) poređenje originalnog i signala dobijenog na izlazu iz filtra.....................................................38

Slika 6.11. a) slika zahvaćena impulsnim šumom intenziteta 0.03; b) slika dobijena filtriranjem VHDL median filtrom, maske 1x5; c) slika dobijena filtriranjem Matlab median filtrom, maske 1x5......................................................................................39

Slika 6.12. a) slika zahvaćena impulsnim šumom intenziteta 0.03; b) slika dobijena filtriranjem VHDL median filtrom, maske 3x3; c) slika dobijena filtriranjem Matlab median filtrom, maske 3x3......................................................................................39

Slika 6.13. Simulacioni dijagram kompletnog median filtra, prozora 3x3 .......................39

Slika 6.14. Broj upotrijebljenih logičkih i memorijskih elemenata za realizaciju: a) bazičnog kola median filtra širine prozora 3, 5, 7, 9; b) kompletnog median filtra sa 1-D i 2-D maskom za različite dimenzije slike, sa generic data_manager-om; c) kompletnog median filtra sa 2-D maskom, sa upotrebom memorijskih ćelija na čipu tj. non generic data_manager-om ..............................................................40

Slika 6.15. Gausova raspodjela .....................................................................................41

Slika 6.16. a) signal zahvaćen Gausovim šumom; b) signal na izlazu iz mean filtra širine maske 9, crvena linija na grafiku; c) poređenje originalnog i signala dobijenog na izlazu iz mean filtra .............................................................................................42

Slika 6.17. Frekvencijski spektar signala .......................................................................42

Slika 6.18. Poređenja Matlab- VHDL mean filtar ...........................................................43

Slika 6.19. Greška VHDL mean filtra u odnosu na Matlab mean filtar ...........................43

Slika 6.20. Simulacija rada bazičnog kola mean filtra za masku 1x5.............................44

Slika 6.21. Simulacioni dijagram rada kompletnog mean filtra, maska 1x5 ...................44

Slika 6.22. a) slika "Lena" zahvaćena Gausovim šumom intenziteta 0.01; b) slika "Lena" poslije filtriranja VHDL mean filtrom, maske 3x3; c) slika "Lena" poslije filtriranja Matlab filtrom maske 3x3.........................................................................................45

Page 7: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Slika 6.23. a) slika "Lena" zahvaćena Gausovim šumom intenziteta 0.01; b) slika "Lena" poslije filtriranja VHDL mean filtrom, maske 3x3; c) slika "Lena" poslije filtriranja Matlab filtrom maske1x5..........................................................................................45

Slika 6.24. Broj upotrijebljenih logičkih i memorijskih elemenata za realizaciju: a) kompletnog mean filtra sa 1-D i 2-D maskom za različite dimenzije slike, sa generic data_manager-om; b) kompletnog mean filtra sa 2-D maskom, sa upotrebom memorijskih ćelija na čipu tj. non generic data_manager-om..............45

Slika 6.25. a) Prewitt-ova matrca za detekciju vertikalnih odnosno horizontalnih ivica b) Sobel-ova matrica za detekciju vertikalnih odnosno horizontalnih ivica .............46

Slika 6.26. Detekcija ivica sa tresholding-om, pomoću Prewitt-ove matrice, prag- 120 a) izvršena u Matlab-u; b) izvršena u VHDL-u........................................................47

Slika 6.27. Detekcija ivica pomoću Prewitt-ove matrice, prag- 100 a) izvršena u Matlab-u; b) izvršena u VHDL-u .............................................................................47

Slika 6.28. Detekcija ivica sa tresholding-om pomoću Sobel-ove matrice, prag 140 a) izvršena u Matlab-u; b) izvršena u VHDL-u ............................................................48

Slika 6.29. Detekcija ivica pomoću Sobel-ove matrice, prag-100 a) izvršena u Matlab-u; b) izvršena u VHDL-u .............................................................................48

Slika 6.30. Pregled utrošenih resursa za realizaciju kola za detekciju ivica...................49

Slika 7.1. Eksperimentalna verifikacija ..........................................................................50

Slika 7.2. Fotografija eksperimentalne opreme..............................................................50

Slika 7.3. Mikrokontrolersko kolo za praktičnu verifikaciju FPGA baziranih aplikacija ...51

Page 8: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Popis tabela

Tabela 4.1 - Karakteristike čipa Cyclone EP1C6Q240C8..............................................18

Tabela 7.1 - Raspored pinova verifikacionog kola. .......................................................52

Page 9: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Popis skraćenica

AS Active Serial ASHA Application Specific Hardware Acceleration ASIC Application Specific Integrated Circuits ASSP Application Specific Standard Parts CLB Configurable Logic Block CMOS Complementary Metal-Oxide Semiconductor CPU Central Processing Unit DFT Discreet Fourier Transformation DSP Digital Signal Processing FFT Fast Fourier Transformation FIFO First In First Out FPGA Field Programmable Gate Arrays HDL Hardware Description Language IIR Infinite Impulse Response IP Image Processing ISP In-System Programmable JTAG Joint Test Action Group LAB Logic Array Block LUT Look Up Table MC MicroController OTP One-Time Programmable PBF Positive Boolean Functions PCI Peripheral Component Interconnect PLD Programmable Logic Devices RAM Random Access Memory RC Reconfigurable Computing SDR Software Defined Radios SoC System on Chip SRAM Static Random Access Memory USB Universal Serial Bus VHDL VeryHighSpeedIntegratedCircuits Hardware Description Language VLSI Very Large Scale Integration

Page 10: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Sažetak:

U radu se prezentuje primjena FPGA tehnologije u obradi slike. Dati su opšti principi projektovanja ovakvih sistema, kao i primjeri konkretnih realizacija. U okviru praktičnog dijela rada, predstavljena je orginalna metodologija projektovanja fleksibilnih kola za obradu signala kroz generalni pristup i funkcionalni opis pojedinih komponenti. Izvršena je implementacija nekih operatora kao što su histogram, kontrast, mean filtar, median filtar i detekcija ivica. U cilju praktične potvrde izloženih pristupa i rješenja, dati su simulacioni dijagrami proistekli iz razvijenog VHDL koda, poređenje sa rezultatima dobijenim u Matlab-u, kao i rezultati testiranja i eksperimentalne verifikacije na Alterinom razvojnom sistemu UP3. Uz konkretne primjere, dodatno se elaboriraju potrebni silicijumskim resursima za hardversku implementaciju pojedinih operatora (algoritama) kao i ostalih funkcionalnih cjelina.

Abstract: This paper presents the application of FPGA technology in image processing. The

general principles of designing of such systems through the specific realization examples are shown. Throughout practical part of this thesis, selected design methodology of flexible circuits for signal processing are presented through general approach and functional description of specific components. Some operators such as histogram, contrast, mean filter, median filter and edge detection are also accomplished. For experimental approval of presented approach the simulation diagrams resulted from developed VHDL code, comparison with results from Matlab as well as the testing results and experimental verification from Altera’s development board UP3 are given. Also, the necessary silicone resources used for hardware implementation of some operators (algorithms) and other modules are elaborated.

Page 11: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

1. Uvod U radu se prezentuju opšti principi i primjeri realizacije FPGA baziranih operatora nad vektorom i slikom. U poglavlju 2 izloženi su osnovni pojmovi o FPGA, poređenje sa ASIC, ASSP i PLD thenologijama, oblasti primjene kao i razvojni trendovi. FPGA u funkciji obrade slike je tema poglavlja 3. Dalje je dato poređenje pristupa u izvršavanju procesa CPU- FPGA, kao i primjer hardverskog rekonfigurabilnog akceleratora. Slijedi praktičan rad. Najprije su izloženi alati i raspoloživi resursi za praktičnu realizaciju (poglavlje 4), zatim generalni pristup i implementacija konkretnih operatora. U okviru ovog dijela detaljno je predstavljena metodologija projektovanja FPGA baziranih operatora za obradu 1-D i 2-D signala. Posebno je objašnjena upravljačka i kontrolna logika na nivou nekoliko pristupa i primjera realizacije. Jedinice koje obavljaju pomenute funkcije su fleksibilne u smislu nezavisnosti od tipa operatora. U poglavlju 6 prikazane su realizacije pojednih operatora po tipovima i složenosti kao što su histogram, kontrast, mean filtar, median filtar i detektori ivica. Za sva realizovana kola dati su simulacioni dijagrami, rezultati testiranja kao i potrebni logički i memorijski resursi. U okviru rada izvršena je i eksperimentalna verifikacija pojedinih operatora na Alterinom razvojnom sistemu UP3. Jedan primjer integralnog okruženja za verifikaciju FPGA baziranih algoritama je dat u poglavlju 7. Slijede zaključak i smjernice za budući rad. Sastavni dio rada predstavlja i priloženi CD koji pored elektronske verzije rada sadrži i odgovarajuće kodove.

1

Page 12: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

2. Osnovni pojmovi o FPGA dizajnu FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze

među ovim blokovima se mogu definisati postupkom konfiguracije. Kao takva, ova kola imaju veoma široko polje primjene.

Zavisno od načina implementacije, postoje FPGA koji se mogu programirati samo jednom – OTP, kao i reprogramabilni.

"Field programmable" ukazuje na činjenicu da se programiranje vrši "in the field" (suprotno uređajima čiju internu funkcionalnost određuje proizvođač i ne može se mijenjati- hard-wired). Ovo može da znači da se FPGA konfigurišu u laboratoriji, ili može ukazati na mogućnost modifikacije rada uređaja u nekom već razvijenom elektronskom sisitemu. Ako je uređaj moguće programirati, dok on ostaje stalan u nekom sisitemu višeg reda, onda je riječ o ISP-u.

2.1. PLD – ASIC – ASSP – FPGA Postoji mnogo različitih vrsta digitalnih integrisanih kola, počevši od "jelly-bean logic"

(malih komponenti koje obavljaju neke jednostavne, fiksne logičke funkcije), preko memorijskih uređaja, do mikroprocesora. Ovdje su od posebnog interesa programabilni logički uređaji - PLD, integrisana kola spcifične namjene - ASIC, standardni moduli specifične namjene - ASSP i naravno FPGA.

PLD su uređaji čija je unutrašnja arhitektura određena od strane proizvođača, ali koji se mogu programirati za specifične namjene. U poređenju sa FPGA, ovi uređaji imaju ograničen znatno manji broj logičkih ćelija i u skladu s tim mogu se koristiti za mnogo jednostavnije funkcije.

Na drugoj strani ASIC i ASSP mogu sadržati stotine miliona logičkih kola i mogu se koristiti za implementaciju veoma složenih funkcija. ASIC i ASSP su zasnovani na istom dizajnu i proizvodnim tehnologijama. Oba su custom-design i pogodni za specifične aplikacije, jedina razlika je što je ASIC dizajniran i namijenjen za određenu kompaniju, "po narudžbi", dok se ASSP proizvode za šire tržište .

Iako je ASIC ograničen u veličini (broju tranzistora) , složenosti i performansama, karakteriše ga veliko vrijeme izrade, visoka cijena, sa dodatnim nedostacima da je finalni dizajn "frozen in silicon" i ne može biti promijenjen osim kreiranjem novog dizajna.

FPGA ima osobine i ASIC- a i PLD- a. Može se vršiti programiranje "in the field" kao kod PLD, a može sadržati veoma veliki broj logičkih elemenata i obavljati širok spektar veoma složenih, specifičnih funkcija, što je osobina ASIC-a. Cijena FPGA dizajna je mnogo niža nego ASIC komponente, dok je proces implementacije određene funkcije na FPGA čipu mnogo jednostavniji, a vrijeme izrade mnogo kraće. Obzirom na prirodu FPGA dizajna, moguće je da pojedinci ili grupe inženjera implementuraju svoje hardverske i softverske koncepte na FPGA baziranim test-platformama, bez izlaganja visokim troškovima.

2.2. Primjena FPGA Kada se prvi put pojavio FPGA dizajn, sredinom osamdesetih godina, koristio se za

implementaciju glue logic, ne mnogo složenih state-mašina, kao i za relativno jednostavno procesiranje podataka. Kako se ranih devedesetih intenzivno razvijala ova

2

Page 13: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

tehnologija, došlo je do široke primjene u telekomunikacijama i mrežama za procesiranje većih blokova podataka. Krajem devedesetih FPGA se intenzivno koristio u industrijskim i raznim drugim automatizovanim aplikacijama.

FPGA obezbjeđuje hardversku platformu na kojoj se može izvršiti fizička provjera nekog novog algoritma. Niska razvojna cijena i brza implementacija željene funkcije u ovoj tehnologiji čini je direktno konkurentnom ASIC-u.

Početkom 2000-te godine razvijeni su FPGA čipovi visokih performansi sa milionima logičkih kola. Neki od njih sadrže mikroprocesorske core-ove, visoko frekventne I/O interfejse itd. Sada se FPGA mogu koristiti u najrazličitije svrhe - za komunikacione uređaje, npr. za radio-komunikacioni sistem koji koristi softver za modulaciju i demodulaciju radio signala - SDR, odbrambene sisteme, medicinski imaging, mašinsku viziju, sisteme za obradu slike, prepoznavanje govora, kriptografiju, bioinformatiku, radare i mnoge druge primjene u digitalnoj obradi signala - DSP, za SoC komponenete koje sadrže softverske i hardverske elemente.

Preciznije, FPGA dizajn je trenutno našao primjenu tj. postao bolje rješenje u četiri velike oblasti: ASIC and custom silicon, DSP, primjene zasnovane na ugrađenom mikrokontroleru (embedded microcontrollers applications), fizički nivo komunikacionih čipova (physical layer communication chips). Dalje, FPGA je kreirao novo tržište u sopstvenom pravcu - RC.

ASIC and custom silicon: Kao što je ranije rečeno, FPGA se intenzivno koristi za implementaciju različitih funkcija koje su se ranije mogle realizovati samo pomoću ASIC i custom silicon-a.

Digital signal processing: DSP velike brzine su obično bili implementirani pomoću specijalno prilagođenih mikroprocesora - DSP. Međutim, sadašnji FPGA može sadržati ugrađene množače, namjenske aritmetičke rutine, on-chip RAM, što olakšava DSP operacije. Kada se ovim pogodnostima doda mogućnost paralelnog izvršavanja operacija, što FPGA nudi, rezultat je više od 500 puta veća brzina od najbržeg DSP čipa.

Embedded microcontrollers: Male kontrolne funkcije su se obavljale pomoću ugrađenih procesora specijalne namjene- mikrokontrolera. Ovi uređaji sadrže on-chip programsku memoriju, timer-e, I/O periferije kao i procesorsko jezgro. Kako FPGA cijene konstantno padaju, i najmanji među ovim uređajima imaju više nego dovoljno kapaciteta za implementaciju soft processor core-a u kombinaciji sa I/O funkcijama. Rezultat ovoga je sve veća upotreba FPGA za ugrađene kontrolne aplikacije (embedded control applications).

Physical layer communications: FPGA se dugo koristio za implementaciju glue logic-a kao veze između fizičkog nivoa komunikacionih čipova i visokog nivoa mrežnog protokola. Današnji FPGA mogu sadržati veliki broj primopredajnika što znači da komunikacione i mrežne funkcije mogu biti sjedinjene u jednom dizajnu.

Reconfigurable computing: Ukazuje na upotrebu svojstvenog paralelizma i mogućnosti rekonfiguracije koju nudi FPGA dizajn, a koja se zasniva na "hardware accelerate" softverskim algoritmima. Mnoge kompanije izrađuju moćne, FPGA bazirane, rekonfigurabilne mašine koje vrše od raznih hardverskih simulacija, preko kriptografskih analiza, sve do suptilnih medicinskih istraživanja.

3

Page 14: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

2.3. Razvoj i struktura FPGA Početkom osamdesetih uvidjelo se da treba prevazići nedostatke ASIC-a (visoka

cijena, složenost i veliko vrijeme proizvodnog postupka) s jedne i PLD-a (ograničen veoma mali broj logičkih ćelija, nemogućnost realizacije složenijih funkcija) s druge strane. U tom cilju Xilinx je razvio posebnu vrstu integrisanih kola – Field Programmable Gate Arrays, koja su bila dostupna na tržištu 1984. godine. Prvi FPGA su bili zasnovani na CMOS tehnologiji i koristili SRAM ćelije. Bili su bazirani na konceptu programabilnih logičkih blokova koji su obuhvatali tro-ulazne LUT, registar - flip-flop i multiplekser (Slika 2.1). Svaki FPGA je sadržao veliki broj ovih logičkih blokova (Slika 2.2). Svaki od njih je mogao biti konfigurisan za različitu funkciju. Na slici su označene i veze među blokovima koje karakteriše velika brzina prenosa signala.

Slika 2.1 - Prva osnovna logička jedinica FPGA čipa.

Slika 2.2 - Više povezanih logičkih blokova.

Osnovni koncept je zadržan, ipak vršene su razne izmjene i dopune. Tako su se umjesto look-up tabela pokušali koristiti multiplekseri (Slika 2.3), međutim to nije bilo opravdano s aspekta brzine prenosa signala.

4

Page 15: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 2.3 - MUX bazirani logički blok.

Zatim se postavlja pitanje koji je optimalan broj ulaza look-up tabele. Povećanjem tog broja mogu se realizovati složenije funkcije, ali se povećava i broj SRAM ćelija. Optimum je postavljen na četiri ulaza. Ulogu look-up tabele može da obavlja i 16x1 RAM ili 16-bitni shift registar (Slika 2.4).

Slika 2.4 - Pojednostavljen izgled Xilinix –ove logičke ćelije.

Sljedeći korak u hijerarhiji je 'slice'. Pogodno je ovako organizovati logičke ćelije jer su im kontrolni signali, kao i clock zajednički (Slika 2.5).

5

Page 16: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 2.5 – Slice.

Na još višem nivou su LAB ili CLB (Slika 2.6). Razlog za uvođenje ove hijerarhije je prevazilaženje problema kašnjenja. Kašnjnje je raspoređeno po nivoima i može se lakše predvidjeti.

Slika 2.6 – CLB.

Za mnoge aplikacije je potrbna dodatna memorija, zato FPGA sadrži ugrađen RAM (e-RAM ili block RAM) (Slika 2.7). Ovi memorijski blokovi mogu biti korišteni pojedinačno ili u grupama za realizaciju FIFO funkcija, state mašina itd.

Naravno, svaki čip sadrži I/O ćelije za komunikaciju sa okolinom. Današnji FPGA čipovi sadrže ugrađene DSP blokove za obavljanje složenih funkcija

koje se često koriste (FFT, DFT...).

6

Page 17: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 2.7 - Izgled čipa sa ugrađenim memorijskim blokovima.

Čip kojim raspolaže laboratorija Elektrotehničkog fakulteta u Podgorici, gdje je velikim dijelom obavljeno i ovo istraživanje, je iz familije Cyclone tip - EP1C6Q240C8. Izgled ovog čipa nakon konfiguracije tj. programiranja dat je na slici (Slika 2.8). Intenzivnija boja označava veći stepen iskorištenosti resursa. Plavom bojom označeni su logički elementi, dok su zelenom označeni memorijski resursi. Detaljnije o realizacijama funkcija za koje je čip programiran u narednim poglavljima.

Slika 2.8 - Izgled čipa koji je programiran da obavlja funkciju median filtra nad slikom dimenzija 256x256

a) sa generic komponentama; b) uz upotrebu memorijskih ćelija na čipu.

Poznati proizvođači FPGA

7

Page 18: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Krajem 2005. godine ističu se dva vodeća proizvođača FPGA generalne namjene i veliki broj ostalih koji nude specifična, jedinstvena rješenja.

Xilinix Altera Lattice Semiconductor Actel QuickLogic Cypress Semiconductor Atmel Achronix Semiconductor

8

Page 19: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

3. Obrada slike bazirana na FPGA tehnologiji Osnovni cilj procesiranja signala slike jeste dobijanje izlaza visokog kvaliteta.Tip

signala na izlazu zavisi od specifičnosti aplikacije. Kao primjeri ovih aplikacija mogu se pomenuti detekcija objekata i sistemi za nadzor, detekcija defekata u automatizovanim sistemima za proizvodnju, klasifikacije scena za daljinsko upravljanje itd. Dobijanje informacije visokog nivoa je zahtjevan istraživački zadatak i predloženi su mnogi algoritmi.

Rekonfigurabilni uređaji imaju široku primjenu kao akceleratori low level algoritama za obradu slike. Načelno, obrada slike se sastoji u preuzimanju podatka se senzora (ulaz) i dobijanja željene informacije kao izlaza. Svaki stepen ovog pipeline sistema može podrazumijevati višeulaznu - višeizlaznu transformaciju.

Može postojati više izvora podataka, sa više senzora ili iz različitih vremenskih intervala

Stepen poboljšanja kvaliteta slike podrazumijeva odstranjivanje šuma senzora i okoline

Feature extraction (ekstrakcija karakteristika) Detekcija, klasifikacija, segmentacija

Sa aspekta rekonfigurabilne logike korisno je napraviti sljedeću klasifikaciju IP

algoritama: Lokalni algoritmi: Algoritam se primjenjuje na relativno mali broj piksela vremenski i

prostorno bliskih posmatranom pikselu (piksel operacije, konvolucija, estimacija pokreta...).

Globalni algoritmi: Algoritam kao ulaz zahtijeva podatke o cijeloj slici (FFT, histogram...).

Generalno pravilo je minimizirati broj pristupa podacima, što je teško ostvariv ili nemoguć zahtjev ako se primjenjuje neki od globalnih algoritama.

3.1. Lokalni algoritmi

3.1.1. Local neighborhood funkcije Ove funkcije poznate još kao sliding window i spatial filters se intenzivno koriste u

procesiranju slike i sistemima kompjuterske vizije. Primjenjuju se za piksel na određenoj lokaciji, dok izlaz zavisi od njemu susjednih piksela. Ista funkcija se primjenju za svaki piksel slike (Slika 3.1). Slika ilustruje primjenu neighborhood funkcije za prozor dimenzija 3x3. Kada se ovakva funkcija pimijeni za obradu ivica slike, neki od susjednih piksela nisu definisani. U tom slučaju pikselu može biti dodijeljena vrijednost nula ili vrijednost najbližeg piksela. Takođe je moguće povećati dimenzije slike na ulazu i takvu sliku dalje obrađivati.

9

Page 20: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 3.1 - Neighborhood funkcija se primjenjuje na svaki piksel slike.

Prozor, u suštini, ima tri dimenzije- dvije prostorne i jednu vremensku. Dok je obrada nezavisna na svakoj prostornoj lokaciji, po vremenu to nije uvijek slučaj. Postoje sistemi sa vremenskom povratnom spregom - IIR.

Ovakvi sistemi se odlikuju zahtjevima za širokim propusnim opsegom. Međutim, postoje mnogi načini za optimizaciju pristupa memoriji. Rekonfigurabilni hardver je idealna platforma za podešavanje memorijske hijerarhije i implementaciju algoritmom specificiranih "generatora" adresa.

Postoje dva načina poboljšavanja performansi u smislu povećavanja brzine neighborhood funkcija:

Piksel paralelizam Paralelizam na nivou instrukcija

Celularni nizovi za ostvarivanje piksel paralelizama Celularni nizovi predstavljaju prirodan model za obradu slike. Sastoje se od niza

ćelija u dvije, tri ili više dimenzija. Svaka ćelija sadrži jedan piksel slike i povezana je sa susjednim ćelijama. Ovakva lokalna komunikacija visokog propusnog opsega je idealna za implementaciju local neigborhood funkcija. Svi pikseli su procesirani paralelno. U FPGA tehnologiji je moguće realizovati programabilnu, maksimalno paralelnu implementaciju celularnog niza, ali se efektno može implementirati samo mali broj ćelija. Veći nizovi bi zahtijevali veliki prostor na čipu, opciono i vremensko multipleksiranje, dok bi I/O zahtjevi za inicijalizacijom niza i očitavanjem rezultata bili vremenski dominantni.

Slika 3.2 - Piksel paralelizam – paralelizam na nivou instrukcija.

10

Page 21: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Image Pipelines za ostvarivanje paralelizma na nivou instrukcija U ovom slučaju je implementirana samo jedna ćelija ekvivalentne celularne

arhitekture. Ćelija je snabdjevena podatkom putem kontinulanog dotoka piksela. Najčešće se podaci prosljeđuju ćeliji uzorak po uzorak i u raster scan poretku. Ovaj postupak je pogodan za real time sisteme gdje podaci direktno stižu sa serijskog I/O senzora. Obzirom da se podaci precesuiraju sekvencijalno, glavni način za ubrzavanje image pipeline-a je izvršavanje više instrukcija paralelno. Kao što je prikazano na slici (Slika 3.2) instrukcije se mogu implementirati paralelno (povećavanjem širine pipeline sistema) ili serijski (povećavanjem dužine sistema). Za razliku od celularne arhitekture, pristupanje susjednim pikselima se mora dobro razmotriti. Obzirom da se sve instrukcije izvršavaju istovremeno, može biti problem proslijediti odgovarajući podatak u pravom trenutku.

Opisna su dva potpuno različita pristupa- piksel paralelizam nasuprot paralelizmu na nivou instrukcija. U praksi može biti korisna bilo kakva kombinacija ova dva pristupa. Optimalno planiranje dizajna u velikoj mjeri zavisi od memorijskih kapaciteta FPGA čipa.

3.1.2. Konvolucija Vjerovatno najpoznatija local neighborhood funkcija je konvolucija, definisana

jednakošću:

),(*),(,

, ljkiimageWjiFKlk

lk −−= ∑∈

, .......................................................................... (1)

lkW , je težinski koeficijent konvolucione matrice,

{ }lk , K∈ ,

⎥⎥⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢⎢⎢

−−−−−−−

−−−

−−−−−−

−−−−−−−−−

=

2/)1(,2/)1(2/)1(,02/)1(,2/)1(

0,2/)1(1,11,01,10,10,00,11,11,01,1

0,2/)1(

2/)1(,2/)1(2/)1(,02/)1(,2/)1(

NMNNM

MM

NMNNM

K

LL

MOMNM

KK

MNMOM

LL

,....... (2)

M, N su dimenzije konvolucionog prozora. Odabirom odgovarajućih težinskih koeficijenata mogu se, pomoću konvolucije,

ostvariti funkcije nisko-propunog, visoko-propusnog filtra kao i filtra propusnika opsega učestanosti, koje se intenzivno koriste u obradi slike. Za realizaciju niskopropusnih filtara koristi se konvoluciona matrica sa pozitivnim težinskim keficijentima. Ovi filtri služe za ostvarivanje smooth efekta. Visokopropusni filtri koriste konvolucionu matricu čiji je centralni koeficijent pozitivan, dok su ivični negativni. Koristi se za izoštravanje visokofrekventnih djelova slike kao što su ivice i detalji. Filtrom propusnikom opsega učestanosti može se ostvariti poboljšanje slike kao i izdvajanje djelova slike određenih oblika.

11

Page 22: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Jedno od mogućih rješenja za realizaciju konvolucije, konvolucionog prozora dimenzija 3x3, prikazano je na slici (Slika 3.3). Pikseli se učitavaju u sistem red po red, po zadatom clock-u. Poslije određenog vremena na izlazu sistema dobijaju se pikseli koji odgovaraju zadatom prozoru. U svakom sljedećem intervalu zadatog clock signala dobija se 9 novih piksela koji odgovaraju sljedećem položaju konvolucionog prozora.

Slika 3.3 - Moguća realizacija 2-D konvolucije.

Prikazano rješenje zahtijeva najmanji eksterni memorijski opseg, ali i najviše memorije na FPGA čipu. Naime, za sliku širine X i prozor širine W, potrebno je smjestiti na čip (W-1)*X+W piksela.

Zadnjih godina proizvode se FPGA čipovi sa velikom memorijom, tako da je ovo rješenje ocijenjeno kao najprihvatljivije.

Veličina ulaznog registra zavisi od širine slike. Ukoliko je slika veoma široka, dijeli se u segmente, a zatim se prosljeđuje segment po segment. Ovi segmenti se, naravno, moraju djelimično preklapati na krajevima.

Ukoliko nema dovoljno kapaciteta za smještanje (W-1)*X+W piksela, potrebno je pristupati pikselima na određenim pozicijama u eksternoj memoriji tj. potrbno je ostvariti pristup pikselima iz tri različita reda. Registri na čipu se mogu iskoristiti za smještanje tih WxW piksela (za kvadratni prozor), a zatim se iz njih vršiti očitavanje po zadatom taktu. U opisanoj situaciji potrebno je pristupati istom pikselu tri puta. Postoje metode kojima se otklanja redudansa pristupa memoriji, zasnovane na neighborhood funkcijama za svaki red posebno i piksel paralelizmu.

3.1.3. Morfologija Pristup opisan u prethodnom tekstu, osim za konvoluciju, može se koristiti za mnogo

složenije realizacije. Matematička morfologija definiše široku klasu algoritama za obradu slike gdje se blok za težinsko sumiranje zamjenjuje modulom za statistiku poretka. Najjednostavniji filtri iz ove klase su erozija i diletacija. Erozija se definiše kao minimalna vrijednost piksela iz seta piksela, dok je diletacija maksimalna vrijednost. Veoma popularan, iz ove grupe filtara, je i median filtar.

12

Page 23: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Tehnika pod nazivom treshold dekompozicija je uvedena za analizu median filtra. Pikseli sivoskalirane slike se prosljeđuju ka bit-level hardveru. Na slici je prikazana realizacija 1-D median filtra (Slika 3.4). Ulazni pikseli se najprije upoređuju sa vrijednostima svih kvantizacionih nivoa. Na taj način se formira binarni stek. Svaki kvantizacioni nivo se dalje propušta kroz PBF operator. Za tačan rezultat na izlazu potrebno je jednostavno sumirati dobijene izlaze iz PBF operatora.

Postoji analogija između PBF-a i statistike poretka, svkom logičkom 'I' odgovara minimum, svakom logičkom 'ILI' odgovara maksimum.

Slika 3.4 -Treshold dekompozicija za median filtar.

Na prvi pogled ovaj metod izgleda dosta složen iz razloga realizacije steka. Međutim

moguće je formirati novi stek za svaki prozor, pri čemu je veličina steka proporcionalna dimenzijama prozora. Takođe, na steku su moguće samo tranzicije sa 1 na 0, što ide u prilog jednostavnosti realizacije.

Treshold detekcija je dobar metod za pronalaženje maksimalnog i minimalnog elementa, kao jednostavnije operacije, zatim sortiranje i median kao složenije.

3.2. CPU- FPGA. FPGA baziran akcelerator FPGA bazirane hardverske implementacije odlikuju se visokim stepenom paralelizma

u algoritmima i preciznošću dovoljnom da zadovolji kvalitativne efekte matematičkih modela. Dalje, isti hardver može podržati različite operacije reprogramiranjem FPGA čipa. Ovo omogućava implementaciju fleksibilnih metoda za obradu slike u aplikacijama gdje je osnovni zahtjev obrada u realnom vremenu.

Kvalitet i dimenzije slike konstantno rastu. Brzo i optimalno interaktivno postprocesiranje ovakvih slika je od izuzetnog značaja. Na primjer, segmentacija, morphing, sekvencijalna analiza i razna mjerenja predstavljaju težak zadatak za realizaciju.

Složene metode obrade slike zasnivaju se na višestruko iterativnom procesiranju setova podataka. Zahvaljujući mogućnosti ograničavanja brojne preciznosti, moguće je

13

Page 24: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

raditi sa podacima tipa integer iz određenog opsega- aplikaciono specificirana dužina riječi. Moguće je implementirati paralelno izvrašavanje zadatih procesa.

Generalno CPU sadašnjih računara omogućava implementiranje ovakvih algoritama, ali performanse čiste softverske implementacije nisu dovoljne. Sve operacije moraju biti mapirane na procesor sa fiksnom dužinom riječi- izbor dužine riječi nije baziran na zahtjevima konkretnog zahtjeva. Opseg mogućih operacije je ograničen na jednostavne osnovne operacije. Složene operacije se realizuju kao duga sekvenca osnovnih operacija. Najzad, CPU je opterećena dodatnim zahtjevima- operativnog sistema, interakcije sa korisnikom, što je glavni nedostatak u kontekstu real-time procesiranja. Dakle, veoma je teško ostvariti stroge zahtjeve relnog vremena.

Jedan od načina za prevazilaženje pomenutih nedostataka softverske implementacije je upotreba ASHA. Standardna PCI kartica se koristi kao akceleratorska ploča. Ova ploča sadrži rekonfigurabilni logički uređaj – FPGA. Ploča takođe sadrži programabilni clock generator, SRAM i eksterne interfejse. Integracija u sistem se obavlja preko PCI interfejsa (Slika 3.5 a).

Opšti koncept za particioniranje sistema hardverskog akceleratora baziranog na PCI kartici prikazan je na slici (Slika 3.5 b). Sistem je skoncentrian oko fiksiranog PCI interfejsa sa aplikaciono-specificiranim, I/O pristupnim low level funkcijama. Funkcionalnost sistema se dijeli na softverski (CPU) i hardverski dio (implementiran na FPGA). Visoke performanse PCI interfejsa omogućavaju brzu i efektnu razmjenu podataka između FPGA kartce i pokrenutog softvera na host računaru. Preciznost i dužina riječi za određene operacije mogu se optimizovati i izuzetno složene operacije se realizovati da dozvoljavaju single step izračunavanja. FPGA pristup promoviše upotrebu pipeline i paralelnih algoritama kroz pristup paralelnog izvršavanja.

14

Page 25: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 3.5 - Konceptualni hardverski i softverski dizajn hardverski "ubrzanog" sistema.

15

Page 26: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

4. Cilj istraživanja. Alati. Resursi. U ovom radu biće izloženo nekoliko pristupa i realizacija kola za obradu signala.

Posebno je analizirana upravljačka i kontrolna logika i "menadžeri" podataka. Ove jedinice se odlikuju visokim stepenom fleksibilnosti, što znači da su dizajnirani tako da se prilagođavaju operatoru. Dato je i nekoliko primjera konkretnih operatora kao potvrda prethodnoj tvrdnji.

Cilj rada je da se demonstriraju mogućnosti i pogodnosti FPGA tehnologije u obradi signala, posebno u digitalnoj obradi slike.

Većina komponenti kreirana je u VHDL-u i kao takvi mogu se koristiti nezavisno od razvojne platforme i implementacione tehnologije. VHDL je programski jezik generalne namjene koji zahtijeva simulator pomoću koga se može pokrenuti kod. Osnovna prednost VHDL-a kada se koristi za dizajniranje složenog sistema, jeste mogućnost da se u potpunosti modelira i verifikuje funkcionalnost sistema prije sinteze i konfigurisanja hardvera. Poseban benifit VHDL-a je i što omogućava istovremeno izvršavanje operacija u okviru pod-sistema, što nije slučaj za programske jezike kao što su C, Pascal, Basic, kao i mnogi asemblerski jezici gdje se instrukcije izvršavaju sekvencijalno. Kao takav, VHDL je izuzetno pogodan za kreiranje FPGA baziranih sistema.

Kao tehnološka podloga koristi se FPGA. Kompletan dizajn, simulacije i verifikacija obavljeni su u Alterinom razvojnom okruženju Quartus II 6.0 u kombinaciji sa UP3 edukacionim kitom (Slika 4.1 i Slika 4.2).

UP3-1C6 je moćan edukacioni alat koji služi za razvijanje hardverski baziranih sistema, implementaciju i testiranje IP cores ili bilo kog drugog hardverskog dizajna razvijenog uz pomoć HDL-a - Verilog-a ili VHDL-a. Takođe je moguće vršiti simulaciju i testiranje C ili nekog asemblerskog koda. Ploča može da se koristi za DSP aplikacije, bilo direktnim povezivanjem sa DSP procesorom ili implementacijom DSP funkcija u FPGA. Ukratko, ovaj alat može da psoluži za razvijanje VLSI sistema, kao i za kreiranje i razvoj mikroprocesorski baziranog embedded system dizajna.

Quartuss II automatski generiše *.sof i *.pof fajlove koji mogu biti download-ovani pomoću Byte Blaster II ili USB Blaster kabla za ostvarivanje AS, tj. JTAG konfiguracije.

Slijedi pregled karakteristika UP3-1C6 ploče. Altera EP1C6Q240 čip i EPCS1 konfiguracioni uređaj

Podržava IP (Intelectual Property) dizajn sa i bez mikroprocesora

USB 1.1 (Full speed & Low Speed)

RS 232 Port

Parallel port (IEEE 1284)

PS/2 Port

IDE (Integrated Drive Elecronics)

2Kbytes I2C PROM (proširiv)

128Kbytes SRAM

16

Page 27: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

2Mbytes FLASH

8Mbytes SDRAM

Podržava mnoge clock-ove kao CPU clock, USB clock, PCI clock i IOAPIC clock

JTAG i Active Serial download capaciteti

5V Santa Cruz long Expansion Card Header koji podržava 74 I/O

4-bitni switch blok

4 prekidača i globalni reset prekidač

4 LED

16x2 karaktera LCD

I2C Real Time Clock

Slika 4.1 - UP3 Board Diagram.

17

Page 28: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 4.2 - UP3 edukacioni kit.

U tabeli su date karakteristike čipa Cyclone EP1C6Q240C8.

Tabela 4.1 - Karakteristike čipa Cyclone EP1C6Q240C8. Logic Elements 5980

RAM Blocks 20

Total RAM Bits 92160

PLLs 2

Maximum User I/Os 185

U okviru rada razvijen je i pomoćni simulacioni alat "TBLzer" u C# .NET 2.0

programskom jeziku (Visual Studio 2005 razvojnom okruženju). Softver obavlja dvije osnovne funkcije:

Generisanje TBL fajla kao ulaznog signala za simulaciju Generisanje slike ili vektora na osnovu rezultata simulacije

18

Page 29: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

TBL fajl se generiše na osnovu zadate slike (Image file) i clock intervala (clock period). Takođe se može i definisati 'tick delay', odnosno broj taktova prije početka učitavanja slike. 'Signal name' predstavlja naziv signala u TBL fajlu. Izlazni TBL fajl izgleda ovako:

GROUP CREATE Din = Din[7] Din[6] Din[5] Din[4] Din[3] Din[2] Din[1] Din[0] ;

INPUTS clk, Din;

UNIT ns;

RADIX HEX;

PATTERN

0> 0 XX

100> 1 XX

200> 0 XX

Gdje je prva kolona vrijeme, druga clock, a treća predstavlja boju pixela sivoskalirane slike u heksadecimalnom zapisu.

Slika se generiše na osnovu zadatog TBL fajla (dobijenog kao rezultat simulacije) i parametara: naziv kanala podataka (data channel), naziv clock kanala po kome se vrsi očitavanje (clock channel) i dimenzija slike (width, height). Generisana slika se prikazuje sa strane, a može se i zapamtiti kao BMP fajl.

Za neke analize bilo je potrebno generisati i prikazati vektor, softver ima i tu mogućnost (Slika 4.3 b).

19

Page 30: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 4.3 - "TBLizer": a) generisanje i očitavanje *.tbl fajla za sliku; b) generisanje i očitavanje *.tbl fajla za vektor.

Kao pomoćni alat korišteni su softverski paketi Matlab i Simulink.

20

Page 31: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

5. Generalni pristup U ovom poglavlju predstavljena je arhitektura kola za obradu 1-D i 2-D signala.

Pojedini moduli realizovani su u VHDL-u i kao takvi mogu se koristiti nezavisno od razvojne platforme i implementacione tehnologije. Takođe je dat i detaljan opis komponenti koje su nezavisne od operatora, tj. spremaju podatke za obradu, upravljaju i kontrolišu rad sistema. Dati su odgovarajući simulacioni dijagrami kao i pregled resursa neophodnih za realizaciju.

5.1. Arhitektura predloženog rješenja Kolo za obradu signala se sastoji od ulaznog interfejsa, bazičnog kola i izlaznog

interfejsa. Ulazni interfejs sadrži data manager i control jedinicu. Služi da generiše upravljačke i

kontrolne signale, kao i da pripremi ulazni signal za obradu. Bazično kolo ima ulogu operatora. U zavisnosti od tipa operacije njemu se pridružuje

odgovarajuće okruženje. Pojedini operatori opisani su u poglavlju 6. Izlazni interfejs generiše clk_out signal na osnovu en signala iz bazičnog kola koji

ima vrijednost logičke jedinice kada je rezultat obrade validan. Clk_out služi za očitavanje validnih rezultata obrade i prosljeđuje se prema periferiji. Pored ovog, izlazni interfejs daje i end_process signal, koji označava da je kolo završilo sa radom i da je spremno za novu obradu.

Ulazni i izlazni interfejs su zavisni od operatorskog kola samo u smislu tipa ulaznog podatka (1-D ili 2-D) i tipa operacije (on pixel, area... ako je riječ o obradi slike). Dakle, za operacije istog tipa ovi moduli su univerzalni.

5.1.1. Kontrolna (Control) jedinica Control jedinica upravlja sistemom i kontroliše njegov rad. Na ulaz se dovode clk, rst

i start_process signali. Clk je globalni clock kojim je taktovana control jedinica i na osnovu koga se generišu ostali upravljački clock signali kao i kontrolni signali. Generisanje ovih signala se ostvaruje u skladu sa start_process-om, pri čemu control jedinica ne reaguje na novi start dok se proces ne završi. Prekid rada sistema, nezavisno od nivoa izvršavanja, moguće je ostvariti rst signalom. Na izlazu su clk_dm, clk_in, clk_op, en_op od upravljačkih i right_border, down_border, end_shift_process od kontrolnih signala.

Clk_dm je clock koji se dovodi na ulaz data_manager-a. Po clk_in signalu se vrši učitavanje podataka za obradu. Na osnovu clk_op takta se sinhronizuju sve operacije koje obavlja bazično kolo, dok je en_op pomoćni signal koji se šiftuje kroz operatorsko kolo u skladu sa trajanjem određene operacije i na osnovu koga izlazni interfejs generiše clk_out.

Right_border, opciono down_border i end_shift_process su kontrolni signali koji označavaju da je maska u poziciji desne ivice, donje ivice ili donjeg desnog ugla matrice, respektivno. Ovi signali pomažu u realizaciji zero-paddinga. Naime, preko odgovarajuće logike, dovode se na reset ulaz bazičnog kola. Zero-padding ovdje je odrađen na desnu i donju ivicu, uz male modifikacije može se ostvariti neko drugo rješenje.

21

Page 32: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Control jedinica sadrži dimenzije vektora tj. matrice kao promjenljive tipa generic, što znači da se ove veličine mogu zadati neposredno prije konfigurisanja čipa. Dimenzije maske tj. prozora su takođe generic tipa. Na osnovu ovih podataka generišu se svi potebni signali za rad ukupnog sistema. Dakle, modul je u potpunosti fleksibilan i pogodan za specifične aplikacije.

U okviru ovog rada posebno je realizovana control jedinica za 1-D i 2-D signale sa 1-D i 2-D maskom.

Simulacioni dijagrami rada control jedinice Dati su simulacioni dijagrami rada kontrolne jedinice za slučaj 1-D i 2-D signala sa

različitim dimenzijama maske (Slika 5.1). Može se uočiti slučaj ponovnog starta, kao i resetovanja kola.

U slučaju 1-D signla, dovoljan je samo right_border kontrolni signal, koji služi za odrađivanje zero padding-a na kraju zadatog vektora.

Ako se obrađuje 2-D signal primjenom 1-D maske, takođe je dovoljan samo right_border signal, koji omogućava dodavanje nula na kraju svakog reda matrice.

U slučaju 2-D signala koji se obrađuje primjenom konvolucionog prozora potrebni su i right_border i down_border kontrolni signali za ostvarivanje zero padding-a na desnoj i donjoj ivici slike.

22

Page 33: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 5.1 - Simulacioni dijagram rada control jedinice: a) vektor dužine 16, maska 1x5; b) slika dimenzija 8x8, maska 1x3; c) slika dimenzija 5x5, maska 3x3.

Pregled utrošenih resursa Na kraju je dat pregled utrošenih resursa za pojedine realizacije. Može se primijetiti

da se taj broj kreće od oko 30 do 80 u zavisnosti od izbora maske i dimenzija što nije mnogo obzirom na kapacitete čipa (Slika 5.2).

0

10

20

30

40

50

60

LCs

control 1x3,length=64control 1x5,length=512control 1x9,length=4096control 1x100,length=120000 0

10203040506070

LCs

control 1x3,8x8control 1x3,64x64control 1x5,256x256

01020304050607080

LCs

control 3x3, 8x8

control 3x3,64x64control 5x5,256x256

Slika 5.2 - Utrošeni resursi za realizaciju control jedinice:

a) 1-D signal; b) 2-D signal, 1-D maska; c) 2-D signal, 2-D maska.

23

Page 34: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

5.1.2. Data manager Opšta funkcija. Pristupi realizacije Data manager ima funkciju da serijske ulazne podatke dovede na ulaz bazičnog kola

u grupama koje odgovaraju veličini maske. Sve operacije koje obavlja ovo kolo su sinhronizovane clk_dm taktom koji generiše control jedinica. Na ulaz se dovoi i globalni reset signal.

U okviru praktičnog dijela rada ovaj modul je realizovan na dva načina: u VHDL-u i upotrebom lpm_fifo komponente iz biblioteke funkcija. Ovo je učinjeno iz razloga što su logički resursi na čipu ograničeni, pa je pogodno iskoristiti i memorijske ćelije koje koriste komponente iz biblioteke megafunctions/storage. Naime, po prvom pristupu, sliku dimenzija 512x512 nije moguće obraditi median filtrom pomoću raspoloživog čipa, dok je drugim načinom moguće obraditi i slike većih dimenzija. Međutim, u prvom pristupu data manager je fleksibilan, zahvaljujući generic dimenzijama maske i slike, dok su komponente iz biblioteke fiksnih dimenzija.

Data manager za 1-D signale Data manager za 1-D signal simulira pomjeranje maske različite dužine po ulaznom

vektoru. Realizovan je kao matrica čije vrste predstavljaju po jedan 8-bitni ulazni podatak. U okviru ove matrice omogućeno je jednosmjerno šiftovanje, po principu FIFO memorije (Slika 5.3). Matrica je inicijalizovana nulama. Ovakvim pristupom, na ulaz bazičnog kola podaci se dovode paralelno, što je od značaja za vremenski kritične aplikacije. Isti data manager koristi se i u obradi slike operatorom koji zahtijeva 1-D masku. Razliku u realizaciji zero-paddinga reguliše control jedinica.

Slika 5.3 - Simulacioni dijagram rada data manager-a, maska 1x5.

Data manager za 2-D signale Veliki broj operacija nad slikom zahtijeva simulaciju kretanja 2-D maske po slici u

pravcima desno i dolje. Potreban je, dakle, data manger koji bi na izlaz bazičnog kola davao podatke koji su u određenom vremenskom trenutku u okviru dimenzija zadatog prozora.

U prvoj realizaciji, data_manager funkcioniše kao memorija promjenljivih dimenzija. U zavisnosti od dimenzija slike i željenog prozora, određen broj ulaznih podataka se smješta u memoriju, a očitavanje se vrši sa definisanih pozicija. Naime, u memoriju se smješta (win_width-1)*picture_x+win_width ulaznih podataka, pri čemu je picture_x broj kolona slike, dok je win_width dimenzija prozora, dok se na izlaz vode podaci po principu:

24

Page 35: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

For i In 0 To Win_Width-1 Loop

For j In 0 To Win_Width-1 Loop

Dout(j+i*Win_Width)<=Qtemp(j+i*Picture_X);

End Loop;

End Loop;

Promjenljive picture_x i win_width su generic tipa. Kao što je rečeno za drugu realizaciju upotrijebljena je lpm_fifo memorija iz biblioteke

funkcija. Na sljedećoj slici data je realizacija data manger- a u Quartus II razvojnom okruženju

(Slika 5.4) u formi blok dijagrama. Može se primijetiti da su pojedini blokovi posebo realizovani. Naime, bilo je potrebno napraviti fifo memoriju nestandardnih dimenzija picture_x-win_width. Takva memorija ne postoji u biblioteci, pa se kombinacijom standardnih došlo do priloženog rješenja. Blok fifo_3 nije standardna fifo memorija jer ima 3 izlaza, on se sastoji od tri šift registra tj. lpm_dff-a iz biblioteke funkcija.

25

Page 36: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 5.4 - Realizacija Data managera u QuartusII razvojnom okruženju a) kompletan dizajn; b) unutrašnja struktura bloka fifo_256; c) unutrašnja struktura bloka fifo_3.

Simulacija rada data managera data je na sljedećoj slici. Na dijagramu se može uočiti princip rada data managera za 2-D signal. Data manager počinje sa radom na prvu uzlaznu ivicu njegovog clock signala. Primjećuje se da je potrebno izvjesno vrijeme za učitavanje podataka da bi oni bili spremni za dalju obradu. To vrijeme iznosi ((win_width-1)*picture_x+win_width) taktova.

Slika 5.5 - Simulacioni dijagram rada data managera za sliku 8x8 i prozor 3x3.

Pregled utrošenih resursa Prikaz utrošenih logičkih i memorijskih resursa za različite realizacije data managera,

dat je na slici (Slika 5.6). Kao što se i očekivalo broj logičkih i memorijskih blokova je proporcionalan dimenzijama slike i primijenjenog prozora. Ovaj broj se kreće od nekoliko desetina logičkih elemenata do oko 4000 hiljade kada je riječ o generic data manager-u. Za implementaciju "nefleksibilnog" data manager- a, stanje se znatno razlikuje. Naime, potrebno je od nekoliko desetina do oko 1000 logičkih elemenata i od nekoliko desetina do oko 4000 hiljade memorijskih blokova.

26

Page 37: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

0

50

100

150

200

250

300

LCs

data manager1x5data manager1x9data manager1x32

0

1000

2000

3000

4000

5000

LCs

data manager3x3, slika 8x8

data manager5x5, slika64x64data manager3x3, slika256x256

0

1000

2000

3000

4000

LCs MBs

data manager3x3, slika64x64data manager3x3, slika256x256

Slika 5.6 - Utrošeni resursi: a) 1-D maska; b) 2-D maska, fleksibilan VHDL data manager;

c) 2-D maska, "nefleksibilan" data manager.

5.1.3. Kompletan dizajn fleksibilnog rješenja za obradu slike Kao primjer arhitekture kompletnog dizajna, data je blok šema median filtra prozora

3x3 (Slika 5.7). Mogu se uočiti I/O pinovi, kao i pojedine komponente. Odgovarajući simulacioni dijagram dat je na slici (Slika 5.8). Kao operator uzet je median filtar nad matricom dimenzija 7x7 da bi se na dijagramu mogli uočiti karakteristični signali. Primjećuje se da je kolo u potpunosti sinhronizovano.

27

Page 38: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 5.7 - Blok šema median filtra prozora 3x3.

28

Page 39: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 5.8 - Simulacioni dijagram rada kompletnog dizajna.

29

Page 40: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

6. Implementacija operatora U ovom dijelu dat je pregled operacija nad slikom. Posebno su istaknute one

operacije koje su praktično implementirane. Svi operatori su realizovani u VHDL-u, uz pomoć Alterinog razvojnog okruženja QuartusII, a neki od njih su provjereni na UP3 edukacionom Kit-u.

Generalno gledano, operacije nad slikom se mogu podijeliti u dvije grupe: one koje se vrše nad jednim pikselom (pixel point operators) i one koje koriste masku ili prozor (area operators) (1D ili 2D), dok je rezultat operacije uvijek jedan piksel. Postoje i one operacije kod kojih rezultat obrade nije slika, već neke informacije o slici.

6.1. Pixel point operatori Među pixel point operacijama su tresholding, scaling, offset, kontrast i druge. Tresholding je operacija gdje se vrijednost svakog piksela upoređuje sa zadatim

pragom i na osnovu rezultata poređenja tom pikselu se dodjeljuje vrijednost logičke jedinice ili nule. Kao rezultat dobija se binarna slika. Postoji i drugi tip tresholding operacije gdje se pikselima čija je vrijednost iznad (ili ispod) praga dodjeljuje fiksna vrijednost, npr. 0.

Scaling i offset su operacije koje se koriste za potamnjivanje ili posvjetljavanje slike. Scaling podrazumjeva množenje svakog pixela nekom fiksnom vrijednošću, dok je offset sabiranje vrijednosti svakog piksela sa nekom konstantom.

Kontrast je operacija gdje se, u zavisnosti od željenog stepena kontrasta, pikselima iznad praga dodaje neka konstantna vrijednost, dok se pikselima ispod praga oduzima ta ista vrijednost. U radu je, kao primjer pixel point operacija, izložena realizacija ove operacije.

Posebnu grupu pixel point operacija predstavljaju LUT operacije. Ovdje intenzitet određenog piksela može predstavljati njegov indeks u look-up tabeli. Rezultat operacije je vrijednost koja se nalazi na toj lokaciji u tabeli. Na ovaj način se mogu implementirati sve pomenute funkcije. U radu je kao primjer ovih operacija realizovan histogram.

6.1.1. Kontrast Za implementaciju ove jednostavne funkcije iskorišten je "on pixel" data manager

opisan u poglavlju 5. Stepen kontrasta karakteriše ulazna promjenljiva, tako da se on može zadavti spolja. Ona predstavlja vrijednost koju treba dodati (oduzeti) vrijednosti piksela da bi se povećao kontrast.

Prikazan je simulacioni dijagram za 1D signal dužine 16, kao i rezultati simulacija nad vektorom i slikom (Slika 6.1, Slika 6.2 i Slika 6.3) . Kao test signal uzeta je 59 linija slike "Lena", odnosno slika "Lena" dimenzija 256x256.

30

Page 41: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.1 - Simulacioni dijagram operacije kontrast za 1D signal dužine 16.

Slika 6.2 - Različit stepen kontrasta primijenjen na 1-D signal.

31

Page 42: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

a) b)

c) d)

Slika 6.3 - a) orginalna slika "Lena", dimenzija 256x256; b) kontrast 25 jedinica;

c)kontrast 50 jedinica; d) kontrast 75 jedinica.

Broj utrošenih logičkih resursa gotovo da ne zavisi od dimenzija slike i iznosi između 70 i 80.

6.1.2. Histogram Histogram predstavlja učestanost javljanja neke vrijednosti u posmatranom signalu.

Histogram slike bi dakle bila učestanost određenog intenziteta piksela u funkciji od mogućih vrijednosti piksela. Kolo koje obavlja ovu funkciju sastoji se od kontrolne jedinice koja generiše clock signale i kola koje vrši popunjavanje look-up tabele kao i očitavanje rezultata. LUT je matrica čije vrste sadrže informaciju o pomenutoj frekvenciji. Pozicija te informacije za neki piksel jednaka je vrijednosti tog piksela. Tabela se popunjava po principu:

LUT(intenzitet piksela) += LUT(intenzitet piksela) +1, po clk_in taktu, dok se očitavanje vrši po clk_out taktu. Od kontrolnih signala i ovo kolo ima Start_process, rst, kao i globalni takt.

32

Page 43: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Rezultati simulacije nad slikom "Lena" dimenzija 256x256 su dati na slici (Slika 6.4). Broj upotrijebljnih logičkih elemenata za ovu realizaciju iznosi 3486. Za slike većih dimenzija ovaj broj se neznatno povećava.

Slika 6.4 - Histogram slike "Lena" dimenzija 256x256.

6.2. Pixel area operacije Ovi operatori koriste nekoliko piksela slike koja se obrađuje da bi se na izlazu dobila

vrijednost jednog piksela. U prethodnom poglavlju prikazani su data manager-i kojima se simulira kretanje 1-D i 2-D maske po slici, dok se na izlazu u svakom sljedećem intervalu takta dobija određen broj podataka za obradu. Operacije nad ovim podacima se grubo mogu podijeliti u dvije grupe.

U prvu grupu spadaju one funkcije gdje se nad ulaznim podacima vrše složenije operacije. Ovdje će biti predstavljen primjer praktične realizacije median filtra takođe sa 1-D i 2-D maskom.

U drugu grupu spadaju one funkcije gdje se podaci obuhvaćeni maskom u datom trenutku množe određenim koeficijentima iz konvolucionih matrica, a zatim dovode na ulaz kola za sabiranje (Slika 6.5). Na ovom principu su zasnovane mnoge filtarske funkcije: za otklanjanje šuma (Gaussian, mean), detekciju ivica (Sobel, Prewitt, Laplacian) itd. Praktično je realizovan mean filtar uz korišćenje 1-D i 2-D maske, kao i kolo za detekciju ivica zasnovano na Prewitt-ovoj i Sobel-ovoj matrici.

33

Page 44: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.5 - Princip realizacije druge grupe area operatora.

6.2.1. Median filtar Analiza odabira širine maske Median filtar se koristi za otklanjanje šuma u aplikacijama vezanim za obradu zvuka

(prepoznavanje govora), obradu slike kao i mnogim drugim. Ovaj nelinarni filtar se pokazuje kao dobra alternativa linearnim filtrima za otklanjanje impulsnog šuma dok istovremeno čuva informaciju o ivicama, ako je riječ o slici.

Meidan filtar je srednji element sortiranog niza, ukoliko niz ima paran broj elemenata onda je median jednak aritmetičkoj sredini dva srednja elementa.

Median filtar se ponaša slično filtru propusniku niskih učestanosti. Graničnoj učestanosti nisko-propusnog filtra obrnuto je proporcionalna širina maske median filtra. Što znači, ako je šum intenzivniji tj. veće frekvencije biće potrebna šira maska, kako bi se odstranio dio spektra koji preklapa šum. Naravno, masku treba pažljivo birati da se ne bi odstranio i dio korisnog spektra signala. Radi demonstracije, na slikama su dati odgovarajući primjeri (Slika 6.6 i Slika 6.7).

34

Page 45: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.6 - Odabir širine maske u zavisnosti od intenziteta šuma: a) originalna slika "LENA" dimenzija 256x256; b) slika zahvaćena impulsnim šumom intenziteta 0.5; c) i d) frekvencijski

spektri slika; e) i f) prvih 300 odbiraka analiziranih slika.

Analiza je obavljena nad slikom "Lena" dimenzija 256x256. U prvom slučaju, slika je zahvaćena impulsnim šumom intenziteta 0.5. Ako se posmatra prvih 300 odbiraka, može se zaključiti da bi odabirom maske širine 9 filtrirana slika sadržala "dosta šuma". O tome se zaključuje i na osnovu Fourier-ove analize. Optimalna maska je širine 20- zelena linija na grafiku (Slika 6.6 f).

35

Page 46: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.7 - Odabir širine maske u zavisnosti od intenziteta šuma: a) originalna slika "LENA" dimenzija 256x256; b) slika zahvaćena impulsnim šumom intenziteta 0.05; c) i d) frekvencijski

spektri slika; e) i f) prvih 1000 odbiraka analiziranih slika.

U drugom slučaju intenzitet šuma je 0.03. Istim pristupom, može se utvrditi da se dobri rezultati postižu filtriranjem median filtrom širine maske 5 ili 9, žuta odnosno crvena linija na grafiku (Slika 6.7).

Opšti pristup U radu je predstavljen median filtar za 1-D i 2-D signale sa promjenljivim

dimenzijama maske. Svi ovi filtri koriste odgovarajuće kontrolne jedinice i data manager-e, opisane u poglavlju 5. Funkciju median obavlja bazično kolo, koje je realizovano za širine maske 3, 5, 7 i 9. Ova operacija obavlja se na osnovu partial sort algoritma prikazanog na slici (Slika 6.8). Zahvaljujući paralelizmu koji karakteriše programabilna kola, trajanje ove operacije u taktovima jednako je širini primijenjene

36

Page 47: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

maske. Po završetku operacije, u svakom sljedećem takt intervalu, na izlazu se dobija validan rezultat. Dakle, obrada se vrši u realnom vremenu, ako zanemarimo inicijalno kašnjenje, koje je, pri visokim frekvencijama na kojima ovo kolo može da radi, reda od nekoliko desetina nano sekundi (ns) do mikro sekunde (us).

Slika 6.8 - Izračunavanje median operatora pomoću partial sort algoritma.

Dat je simulacioni dijagram rada bazičnog kola median filtra za širinu maske 9 (Slika 6.9). Može se uočiti da radom kola upravlja clk signal, koji generiše kontrolna jedinica. Primjećuje se da inicijalno kašnjenje iznosi 9 taktova, što je u ovom slučaju 270 ns.

Slika 6.9 - Simulacioni dijagram bazičnog kola median filtra za širinu maske 5.

Obrada 1-D signala median filtrom Kao primjer 1-D signala, posmatra se realan signal aksijalne sile zavojne burgije u

procesu obrade metala bušenjem. Signal je dobijen pomoću piezolelektričnog davača marke Kistler u okviru eksperimentalnih istraživanja realizovanih u laboratoriji Mašinskog fakulteta u Podgorici. Učestanost signala je 100 Hz, dok je odabiranje vršeno sa 1000 uzoraka/s.

37

Page 48: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Ovom signalu dodat je slučajano generisan impulsni šum. Nakon pomenute analize spektra signala utvrđeno je da je najpogodnija maska širine 5. Dati su rezultati obrade realnog signala pomoću median filtra u FPGA tehnologiji (Slika 6.10). Izvršeno je poređenje sa Matlab filtrom i potvrđeno podudaranje rezultata.

Slika 6.10 - a) signal zahvaćen slučajno generisanim impulsnim šumom; b) signal na izlazu iz median filtra maske 1x5 (crvena linija na grafiku); c) poređenje originalnog i signala dobijenog na izlazu iz filtra.

Sa grafika se može uočiti da je median filtrom u potpunosti otklonjen impulsni šum, pri čemu je signal ostao dosta "očuvan".

Obrada 2-D signala median filtrom Prikazan je primjer primjene median filtra u otklanjanju šuma sa slike (Slika 6.11 i

Slika 6.12). Dato je poređenje rezultata koji se postižu u Matlab-u i VHDL-u, za slučaj 1-D i 2-D maske. Kao test signal uzima se slika "LENA" dimenzija 256x256. Filtriranje se najprije vrši median filtrom maske 1x5, a zatim istim filtrom prozora 3x3.

38

Page 49: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.11 - a) slika zahvaćena impulsnim šumom intenziteta 0.03; b) slika dobijena filtriranjem VHDL median filtrom, maske 1x5; c) slika dobijena filtriranjem Matlab median filtrom,

maske 1x5.

Slika 6.12 - a) slika zahvaćena impulsnim šumom intenziteta 0.03; b) slika dobijena filtriranjem VHDL median filtrom, maske 3x3; c) slika dobijena filtriranjem Matlab median filtrom,

maske 3x3.

Dat je simulacioni dijagram kompletnog kola za median filtriranje za sliku dimenzija 10x10 i prozor 3x3 (Slika 6.13). Mogu se uočiti kontrolni signali, zero padding kao i inicijalno kašnjenjenje.

Slika 6.13 - Simulacioni dijagram kompletnog median filtra, prozora 3x3.

39

Page 50: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Pregled utrošenih resursa Na kraju je dat pregled utrošenih resursa za pojedine realizacije (Slika 6.14).

a)

0100200300400500600700

LCs

median 3median 5median 7median 9

b)

0

1000

2000

3000

4000

5000

LCs

median 1x5

median 1x9

median 3x3,slika 64x64median 3x3,slika 256x256

c)

0500

1000150020002500300035004000

LCs MBs

median 3x3,slika 64x64median 3x3,slika 256x256

Slika 6.14 - Broj upotrijebljenih logičkih i memorijskih elemenata za realizaciju: a) bazičnog kola

median filtra širine prozora 3, 5, 7, 9; b) kompletnog median filtra sa 1-D i 2-D maskom za

različite dimenzije slike, sa generic data_manager-om; c) kompletnog median filtra sa 2-D

maskom, sa upotrebom memorijskih ćelija na čipu tj. non generic data_manager-om.

6.2.2. Mean Filtar Gausov šum. Gausova raspodjela Gausov šum je šum sa Gausovom raspodjelom trenutnih vrijednosti amplituda.

Gausova raspodjela ili normalna raspodjela je veoma važna vjerovatnoća raspodjele u mnogim oblastima. Familija ovih distribucija ima istu generalnu formu, razlika je u zadatim parametrima (Slika 6.15). Standardna normalna raspodjela je Gausova raspodjela sa očekivanom vrijednošću nula i standardnom devijacijom jedan (zelena linija na grafiku), poznata je i kao "bell curve".

40

Page 51: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.15 - Gausova raspodjela.

Gustina vjerovatnoće Gausove raspodjele data je funkcijom:

)2

)(exp(2

1),,( 2

2

σµ

πσσµ −

=xxf ............................................................................... (3)

)(XE=µ je očekivana vrijednost (srednja) slučajne promjenljive X.

222 ))(()()))((( XEXEXEXE −=−=σ .............................................................. (4)

standardna devijacija slučajne promjenljive X. Obzirom da je sredja snaga Gausovog šuma bliska nuli, u njegovom otklanjanju

dosta dobri rezultati postižu se mean filtrom ili filtrom srednje vrijednosti. Slično median filtru i mean filtar se ponaša kao filtar propusnik niskih učestanosti. Analiza za odabir maske izvršena za median filtar važi i ovdje.

U radu je izvršena realizacija mean filtra za 1-D i 2-D signale sa 1-D i 2-D maskom. Obrada 1-D signala mean filtrom Kao primjer 1-D signala posmatra se signal momenta sile opisane u okviru analize

median filtra. Signalu je dodat Gausov šum sa parametrima 0=µ i 1=σ , dakle šum koji karakteriše standardna normalna raspodjela. Na sljedećim slikama se mogu vidjeti rezultati filtriranja (Slika 6.16 i Slika 6.17)

41

Page 52: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.16 - a) signal zahvaćen Gausovim šumom; b) signal na izlazu iz mean filtra širine maske 9, crvena linija na grafiku; c) poređenje originalnog i signala dobijenog na izlazu iz mean filtra.

Slika 6.17 - Frekvencijski spektar signala.

42

Page 53: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Iz frekvencijske analize može se uočiti da mean filtar dobro filtrira šum na višim učestanostima.

Poređenje VHDL- Matlab mean filtara VHDL realizacija ovog filtra ima izvjesnu nepreciznost usljed zaokruživanja rezultata

na najbližu cjelobrojnu vrijednost prilikom dijeljenja. Na sljedećim slikama je dato poređenje VHDL i Matlab filtra tj. greška koju pravi VHDL filtar (Slika 6.18 i Slika 6.19).

Slika 6.18 - Poređenja Matlab- VHDL mean filtar.

Slika 6.19 - Greška VHDL mean filtra u odnosu na Matlab mean filtar.

U realizaciji mean filtra korištena je komponenta divide iz biblioteke megafunctions/arithmetic, ovo kolo rezultat dijeljenja zaokružuje na nižu cjelobrojnu vrijednost, ali daje i ostatak (Slika 6.20). U okviru kompletnog dizajna kreirana je jednostavna funkcija kojom se zaokruživanje vrši na najbližu cjelobrojnu vrijednost i na taj način je umanjena greška za 50%.

43

Page 54: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.20 - Simulacija rada bazičnog kola mean filtra za masku 1x5.

Obrada 2-D signala mean filtrom Simulacioni dijagram rada kompletnog mean filtra maske 1x5 dat je na slici (Slika

6.21). Posmatra se 2-D signal dimenzija 8x8. Može se uočiti zero padding, kao i odgovarajući kontrolni signali.

Slika 6.21 - Simulacioni dijagram rada kompletnog mean filtra, maska 1x5.

Mean filtar našao je svoju primjeni i u obradi slike. U okviru rada izvršena je i ova realizacija. Postignuti rezultati mogu se vidjeti na sljedećim slikama (Slika 6.22 i Slika 6.23), kao test signal uzeta je slika "Lena" dimenzija 256x256.

44

Page 55: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Slika 6.22 - a) slika "Lena" zahvaćena Gausovim šumom intenziteta 0.01; b) slika "Lena" poslije filtriranja VHDL mean filtrom, maske 3x3; c) slika "Lena" poslije filtriranja Matlab filtrom maske 3x3.

Slika 6.23 - a) slika "Lena" zahvaćena Gausovim šumom intenziteta 0.01; b) slika "Lena" poslije filtriranja VHDL mean filtrom, maske 1x5; c) slika "Lena" poslije filtriranja Matlab filtrom maske1x5.

Pregled utrošenih resursa Na kraju je dat pregled utrošenih logičkih i memorijskih resursa (Slika 6.24).

0

1000

2000

3000

4000

5000

LCs

mean 3x3,slika 64x64mean 3x3,slika 256x256mean 1x5,slika 256x256

0500

1000150020002500300035004000

LCs MBs

mean 3x3,slika 64x64mean 3x3,slika 256x256

Slika 6.24 - Broj upotrijebljenih logičkih i memorijskih elemenata za realizaciju: a) kompletnog mean filtra sa 1-D i 2-D maskom za različite dimenzije slike, sa generic data_manager-om; b)

kompletnog mean filtra sa 2-D maskom, sa upotrebom memorijskih ćelija na čipu tj. non generic data_manager-om.

Broj logičkih resursa potrebnih za realizaciju bazičnog kola ovog filtra gotovo da ne zavisi od širine maske i iznosi nekoliko desetina, konkretno- 52 za masku 1x5.

6.2.3. Detekcija ivica Opšti pristup Detektovanje ivica je jedan od osnovnih alata koji se koristi u mnogim aplikacijama

za obradu slike, obično je to korak koji prethodi segmentaciji objekta ili prepoznavanju oblika. Ovim procesom detektuju se ivice objekta i uočava granica između objekta i pozadine na slici. Ovaj filtar se takođe može koristiti da poboljša izgled video signala propuštenog kroz nisko-propusni filtar ili blurred signala.

Detektovanje ivica se može izvršiti prostim diferenciranjem, međutim uzimajući u obzir činjenicu da je slika uvijek u izvjenom stepenu zahvaćena šumom, to nije moguće.

45

Page 56: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Za ovu svrhu razvijeno je više algoritma. Ovdje će biti razmatran operator zasnovan na Prewitt-ovoj i Sobel-ovoj matrici. Suština ovog operatora se sastoji u određivanju nivoa odstupanja vrijednosti nekog piksela od njemu susjednih piksela.Elementi Sobel-ove tj. Prewitt-ove matrice predstavljaju težinske koeficijente, a sama matrica masku. Da li je neki piksel ivica ili nije određuje se tako što se vrši množenje određenog piksela i njemu susjednih piksela sa težinskim koeficijentima, zatim se vrši sumiranje elemenata rezultantne matrice. Dobijena vrijednost se upoređuje sa pragom i nakon toga se piksel proglašava ivicom ili ne. Rezultantna slika može biti binarna, ukoliko se pikselima koji označavaju ivice dodijeli vrijednost logičke jedinice (ili nule), dok se ostalim pikselima dodijeli vrijednost logičke nule (ili jedinice). Ovaj metod često se označava kao detekcija ivica sa tresholiding-om. Rezultat, međutim, može biti takođe sivoskalirana slika na kojoj je samo ivici dodijeljena vrijednost logičke nule ili jedinice, dok ostali pikseli imaju vrijednost rezultata sumiranja.

Prewitt-ove i Sobel-ove matrice za detekciju horizontalne i vertikalne ivice su date na sljedećoj slici.

a)

1 0 -1

1 0 -1

1 0 -1

1 1 1

0 0 0

-1 -1 -1

b)

1 0 -1

2 0 -2

1 0 -1

1 2 1

0 0 0

-1 -2 -1

Slika 6.25 - a) Prewitt-ova matrca za detekciju vertikalnih odnosno horizontalnih ivica b) Sobel-ova matrica za detekciju vertikalnih odnosno horizontalnih ivica.

Dakle, ivice slike dobijaju se računajući Lh i Lv, po formuli: Lh = p1+p2+p3-p7-p8-p9, Lv = p1-p3+p4-p6+p7-p9, za slučaj Prewitt-ove matrice i Lh = p1+2*p2+p3-p7-2*p8-p9 , Lv = p1-2*p3+p4-p6+2*p7-p9, za slučaj Sobel- ove matrice. Vrijednost praga se upoređuje sa:

LvLhLp += ........................................................................................................ (5)

ukoliko se koristi Prewitt-ova matrica, tj. sa:

46

Page 57: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

22 LvLhLs += ....................................................................................................... (6)

za slučaj Sobelove matrice. U VHDL realizaciji oba puta je prag upoređivan sa Lp, da bi se izbjegla operacija

korjenovanja. Rezultati simulacija u VHDL-u i Matlab-u Rezultati simulacija dobijeni u VHDL-u i Matlabu, uz pomoć Prewitt-ove i Sobel-ove

matrice, za različite vrijednosti praga dati su na slikama (Slika 6.26 - Slika 6.29).

a) b)

Slika 6.26 - Detekcija ivica sa tresholding-om, pomoću Prewitt-ove matrice, prag- 120 a) izvršena u Matlab-u; b) izvršena u VHDL-u.

a) b)

Slika 6.27 - Detekcija ivica pomoću Prewitt-ove matrice, prag- 100 a) izvršena u Matlab-u; b) izvršena u VHDL-u.

47

Page 58: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

a) b)

Slika 6.28 - Detekcija ivica sa tresholding-om pomoću Sobel-ove matrice, prag 140

a) izvršena u Matlab-u; b) izvršena u VHDL-u.

a) b)

Slika 6.29 - Detekcija ivica pomoću Sobel-ove matrice, prag-100 a) izvršena u Matlab-u; b) izvršena u VHDL-u.

Pregled utrošenih resursa Pregled utrošenih logičkih i memorijskih elemenata za kompletan dizajn dat je na slici

(Slika 6.30), dok je za realizaciju bazičnog kola za detekciju ivica potreban 221 logički element.

48

Page 59: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

0

1000

2000

3000

4000

5000

LCs

Prewitt 3x3,slika 64x64Prewitt 3x3,slika 128x128Sobel 3x3,slika 256x256

0500

1000150020002500300035004000

LCs MBs

Prewitt 3x3,64x64Sobel 3x3,256x256

Slika 6.30 - Pregled utrošenih resursa za realizaciju kola za detekciju ivica.

49

Page 60: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

7. Eksperimentalna verifikacija U sklopu ovog rada obavljena je i eksperimentalna verifikacija rezultata. Kao primjer,

ovdje će biti izložena verifikacija rada median filtra za sliku dimenzija 8x8 i prozor 3x3. Kao što je rečeno u poglavlju 4, na raspolaganju je bila MC- board, FPGA- board i PC.Programiranje FPGA čipa, kao i mikrokontrolera vrši se sa PC-a. Ostavrena je komunikacije između PC-a, mikrokontrolera i FPGA čipa saglasno logici (Slika 7.1), dok Slika 7.2. daje fotografiju verifikacionog okruženja.

Slika 7.1 - Eksperimentalna verifikacija.

Slika 7.2 - Fotografija eksperimentalne opreme.

50

Page 61: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Na sljedećoj slici data je električna šema mikrokontrolerskog kola za praktičnu verifikaciju, a u tabeli 7.1. raspored pinova verifikacionog kola.

Slika 7.3 - Mikrokontrolersko kolo za praktičnu verifikaciju FPGA baziranih aplikacija.

51

Page 62: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

Tabela 7.1 - Raspored pinova verifikacionog kola.

QUARTUS FPGA MC FPGA clk_input 133 PD2 53-D6 clk_out 132 PD3 54-D5 start_process 135 PB0 48-SW4 Rst 134 PB1 62-SW7 right_border 126 PD6 down_border 127 PD5 end_process 128 PD4 clk_main 29 data_input[0] 140 PA0 data_input[1] 141 PA1 data_input[2] 143 PA2 data_input[3] 156 PA3 data_input[4] 158 PA4 data_input[5] 159 PA5 data_input[6] 160 PA6 data_input[7] 161 PA7 data_out[0] 166 PC0 data_out[1] 167 PC1 data_out[2] 168 PC2 data_out[3] 169 PC3 data_out[4] 180 PC4 data_out[5] 181 PC5 data_out[6] 175 PC6 data_out[7] 177 PC7

Po zadavanju start_process signala, pritiskom na taster na FPGA ploči, čip počinje da radi. On generiše clock signale koji služe za sinhronizaciju sistema. Na osnovu clk_in signala, mikrokontroler šalje podatke prema čipu. U čipu se vrši obrada podataka na osnovu unutrašnjih upravljačkih i kontrolnih signala, što je ranije opisano. Nakon obrade mikrokontroler očitava rezultate, po clk_out taktu. Resetovanje sistema se vrši pritiskom na taster na FPGA ploči. Startovanje i resetovanje sistema može se izvršiti i na osnovu signala (kratkih impulsa) koje šalje mikrokontroler. Cjelokupan proces se prati na serijskom terminalu PC-ja. Slijedi primjer jedne 8x8 matrice i njene median transformacije za prozor 3x3.

52

Page 63: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

OK

INPUT MATRIX:

57 64 72 77 72 79 80 78

47 59 68 67 71 75 74 73

48 58 65 71 76 74 77 79

57 58 65 74 78 78 77 78

56 61 68 73 76 81 78 79

54 60 76 79 76 86 80 82

55 62 71 80 80 81 83 85

56 69 77 79 76 80 81 80

OUTPUT MATRIX:

59 67 71 74 75 77 0 0

58 65 71 74 76 77 0 0

58 65 73 76 77 78 0 0

60 68 76 78 78 79 0 0

61 71 76 80 80 81 0 0

62 76 77 80 80 81 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

53

Page 64: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

8. Zaključak FPGA je savremena tehnologija pogodna za primjenu u obradi signala u realnom

vremenu. Pored ostalih, kao veoma zahtjevne, ističu se operacije nad slikom (2D signalom). Stoga su u ovom radu istaknute neke prednosti FPGA tehnologije i dati opšti pristupi problemu obrade slike u ovoj tehnologiji.

Međutim, osnovna ideja je bila da se, u okviru ovog rada, napravi univerzalan okvir za prihvatanje podataka, upravljanje sistemom, kontrolu rada sistema, kao i slanje podataka prema periferiji koja će ih očitati. Naravno, i da se na konkretnim primjerima prikaže funkcionalnost sistema. Za realizaciju i testiranje je bilo potrebno, osim pomenute opreme, poznavanje programskog jezika za opis hardvera, razvojnog okruženja, kreiranje pomoćnih alata, kao i poznavanje pomoćnih softverskih paketa. Na osnovu simulacionih i rezultata eksperimentalnog testiranja, može se zaključiti da je ideja realizovana.

U budućem radu, planirano je raditi na preuzimanju signala direktno sa kamere (ili nekog drugog senzora) i vršiti obrada takvog signala u realnom vremenu. Takođe je planirana implementacija složenijih operatora.

54

Page 65: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

9. Prilog Prilog radu je CD koji sadrži:

Elektronsku verziju rada Izvorne kodove

55

Page 66: UNIVERZITET CRNE GORE - APEG · FPGA su digitalna integrisana kola koja sadrže programabilne logičke blokove. Veze među ovim blokovima se mogu definisati postupkom konfiguracije

Milena Zogović – PRIMJENA FPGA TEHNOLOGIJE U OBRADI SLIKE

10. Literatura

[1] Doc. Dr. Radovan Stojanović, "Automatizovani dizajn elektronskih kola (ADEK – CAED)", Elektrotehnički Fakultet, Univerzitet Crne Gore, 2005.

[2] Clive "Max" Maxfield, "The Design Warrior's Guide to FPGAs", Mentor Graphics Corporation and Xilinx, Inc., 2004

[3] Robert Dueck, "Digital Design with CPLD Applications and VHDL", Delmar/Thomson Learning, 2005

[4] Enoch O. Hwang, B, "Microprocessor Design, Principles and Practices With VHDL", Brooks/ Cole, 2004

[5] John L. Smith, "Implementing Median Filters in XC4000E FPGAs", Univision Technologies Inc., Billerica, MA.

[6] V. Ivanović, R. Stojanović, Lj. Stanković, "Multiple clock cycle architecture for the VLSI design of a system for time-frequency analysis", EURASIP Jurnal on Applied Signal Processing, Special issue on Design methods for DSP systems, in print, 2006.

[7] Thomas Hudson Drayer, Dr. Joseph G. Tront, Chairman, "A Design Metodology for Creating Programmable Logic- based Real- time Image Processing Hardware", Electrical Engineering

[8] Reid B. Porter, "Image Processing", www.pooka.lanl.gov

[9] M. Zogović, M. Jovanović, R. Stojanović, "FPGA implementacija mean i median filtara", IT '06, X naučni skup, Žabljak 2006.

[10] M.Zogović, G. Blagojević, Z.Jakšić, M. Jovanović, R. Stojanović, "Primjer realizacije fleksibilnog FPGA baziranog median filtra", 50. Konferencija ETRAN-a, Beograd 2006.

[11] Wikipedia, the free encyclopedia, www.wikipedia.com

56