Képfeldolgozó vezérlıegység fejlesztése programozható hardverkörnyezetben
Kardos László Budapesti Mőszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék Mérnök Informatikus Szak (Master of Science) Budapest, 2009
Konzulens: Vajda Ferenc PhD, adjunktus
BEVEZETÉS ........................................................................................................3 ALAPISMERETEK ...............................................................................................5 Field Programmable Gate Array (FPGA).................................................................................................. 5 Az FPGA-k architektúrája ......................................................................................................................... 6 Az FPGA-k programozása......................................................................................................................... 6 Modern fejlesztések ................................................................................................................................... 7
FELHASZNÁLT ESZKÖZÖK ...............................................................................8 Hardvereszközök .......................................................................................................................................... 8 A Xilinx University Program Virtex-II Pro (XUPV2P) panel................................................................... 8 VDEC1 Video Decoder Board ................................................................................................................ 10 Kamera .................................................................................................................................................... 10 Szoftvereszközök ........................................................................................................................................ 11 Xilinx ISE Foundation 9.1i...................................................................................................................... 11 Xilinx ISE Embedded Developers Kit (EDK) 9.1 ................................................................................... 11 Szoftverkörnyezet .................................................................................................................................... 12
A TÉMA IRODALMA..........................................................................................13 A pipeline struktúra ................................................................................................................................... 13 A TCP/IP kommunikáció megvalósítása FPGA-n................................................................................... 14
A FÉLÉVI MUNKA BEMUTATÁSA ...................................................................17 A beágyazott processzor, mint feldolgozó egység .................................................................................... 17 A kommunikáció kiépítése......................................................................................................................... 19
ÖSSZEFOGLALÁS ............................................................................................21 FELHASZNÁLT IRODALOM .............................................................................22
Bevezetés Napjainkban a digitális képfeldolgozás gyors fejlıdése, mind a fogyasztói, mind az ipari szektorokban szignifikánsan magas elvárásokat hozott az olyan mérnökök számára, akik kiváló minıségő termékeket akarnak elıállítani. Ahhoz, hogy a lehetı legjobb képeket lehessen kinyerni a felvevı eszközökbıl, illetve ezek feldolgozására számos megfelelıen szofisztikált algoritmus létezik. Ezek implementálása azonban gyakran limitált, különbözı hátráltató tényezık miatt. Ilyen például az algoritmusok komplexitása, a fejlesztési módok, szabványok különbözısége. Szintén jelen van az állandó nyomás az anyagköltségek csökkentésére és a rendszerek testreszabhatóságára. A digitális képfeldolgozás alapvetı célja, hogy olyan rendszereket alkossunk, amelyek képi információt tudnak automatikusan feldolgozni, és azok alapján döntéseket hozni. Mindezt sokkalta gyorsabban és konzekvensebben kell tenniük, mint egy megfelelı képességekkel felruházott emberi megfigyelı. Ehhez nyújtanak segítséget jelen technológia szerint az FPGA (Field Programmable Gate Array) hardverek. Ezek a szoftveres fejlesztıkörnyezetbıl konfigurálható hardver eszközök a számításigényes feladatok széles terén (így például videojelek valósidejő feldolgozására) gyorsabb megoldást nyújtanak, mint más tisztán szoftveres megoldások. A
korábbi
féléves
képfeldolgozó
munkám
rendszert,
során
különös
elkészítettem
tekintettel
annak
egy
ilyen
hardveres
vezérlıegységére.
A
feladatom ebben a félévben ennek a rendszernek a továbbfejlesztése volt. A továbbfejlesztési feladat két részfeladatra volt bontható. Elsıként meg kellett vizsgálnom
a
processzor
feldolgozó
egységként
történı
felhasználását,
másodsorban pedig a rendszerre ki kellett dolgoznom egy megvalósítást PC-vel történı nagy sávszélességő kommunikációra.
A dokumentum ezek alapján a következıképpen tagolódik. A második fejezet olyan alapismereteket mutat be, amelyek elengedhetetlenek a megértés és a tervezés során. Így kiemelt szerepet kapnak az FPGA-k. Külön alfejezet foglalkozik azok architektúrájával, illetve programozásával. Emellett rövid betekintést nyerhet az olvasó a modern beágyazott mikroprocesszorral rendelkezı FPGA hardverek típusaiba. A harmadik fejezet a megoldás során felhasznált eszközökkel foglalkozik, mind hardver, mind szoftver irányban. A hardvereszközök alfejezet három egység bemutatásával foglalkozik. A Xilinx Virtex-II Pro FPGA Xilinx University Program keretében megvalósított paneljának a feladat megoldásában szükséges részletei kerülnek ismertetésre, majd konkrétan magának az FPGA-nak az elsıdleges tulajdonságait mutatja be az alfejezet. Ezután a VDEC1 video dekóder egység ismertetése
következik,
majd
a
hozzá
kapcsolt
kamera
legfontosabb
tulajdonságairól kaphat információt az olvasó. A szoftvereszközök alfejezet a fejlesztés során használt szoftverek rövid bemutatásával foglalkozik. Így részletezésre kerül a Xilinx ISE Foundation 9.1i verziója, a Xilinx ISE Embedded Developers Kit (EDK) 9.1 verziója és a feladat megoldása során használt szoftverkörnyezet. A negyedik fejezet a feladat megoldásában használt korábbi irodalmakat veszi sorra, így külön figyelmet szentelve a pipeline struktúrás megoldásokra és a nagy sávszélességő kommunikáció FPGA-n történı megvalósítására. Az ötödik fejezetben a félévi munka kerül bemutatásra, így a korábbiakban ismertetett irodalom szerinti továbbfejlesztést ismertetem, kitérve az ezzel kapcsolatos nehézségekre, hátráltató tényezıkre. A hetedik fejezetben a munka összefoglalása található, különös tekintettel az elvégzett
munka
eredményére,
továbbfejlesztési lehetıségekre.
annak
hatékonyságára,
kitérve
egyéb
Alapismeretek A beágyazott rendszerek szakterülete számos programozható eszközt állít lehetıségként a képfeldolgozási feladatok megvalósítására. Ezen eszközök sorából a legmegfelelıbbnek a Field Programmable Gate Array (továbbiakban: FPGA)
programozható
hardvereszközöket
tekinthetjük
a
jelen
technikai
helyzetben a nagyteljesítményő Digital Signal Processorok (DSP) mellett a hardveralapú digitális képfeldolgozás úttörıinek. Ezek közül egyértelmően a párhuzamos mőködésre alkalmas hardverek kerülnek elıtérbe az alkalmazások során, a számításigényes algoritmusok megvalósíthatóságának fényében. Ennek megfelelıen a következı alfejezet az FPGA-k bemutatására szolgál.
Field Programmable Gate Array (FPGA) Az FPGA-k olyan félvezetı eszközök, amelyek úgynevezett logikai blokkokat (configurable logic blocks, CLB) és programozható kapcsolókat (programmable interconnect) tartalmaznak. A logikai blokkokat fel lehet programozni oly módon, hogy valamilyen alapszintő logikai kapcsolás (pl.: AND, XOR) vagy komplexebb kombinációs hálózatok szerepét lássák el. Ezeken felül a legtöbb FPGA beépített memóriaelemeket is tartalmaz. A programozható kapcsolók hierarchiájából adódóan különbözı hálózatokat lehet összeállítani, amely által az FPGA-kat „testre lehet szabni” egy adott feladat megoldásához. Az FPGA-k konfigurálása egy megadott specifikáció alapján egy logikai szemantikus
ábra vagy
egy
úgynevezett hardverleíró nyelv
(Hardware
Description Language, HDL) által történik. A HDL-ek közül a két legelterjedtebb a VHDL, illetve a Verilog. A két említett nyelv szintaktikájában különbözı, de kifejezıképességük a hardverleírás területén megegyezı.
Az FPGA-k architektúrája Az FPGA-k legfıbb elemei a CLB-k. Ezekben lehetséges a különbözı logikai funkciók realizálása, illetve a bennük található memóriaelem Flip-Flopként történı felhasználása. Egy klasszikus CLB egy 4-bementő Look-Up-Table –bıl (LUT) és egy Flip-Flopból áll, amint az alábbi ábrán látható.
A CLB kimenete csatlakozhat bármelyik vele határos csatorna szegmenséhez. A csatornák keresztezıdéseiben programozható kapcsolók találhatóak, amelyek segítségével az egyes logikai blokkok tetszılegesen összekapcsolhatóak. Ezt illusztrálja az alábbi ábra.
Az FPGA-k programozása Az FPGA-k adott specifikáció szerinti programozása megvalósítható HDL, illetve logikai szemantikus ábra segítségével is. A HDL alkalmazása a lehetıségekhez mérten ugyan, de egyszerőbb és gyorsabb fejlesztést tesz lehetıvé például az értékek numerikus specifikálása miatt is. Azonban nem szabad lemondani az esetleges logikai ábra alapján történı tervezés lehetıségérıl, amely jelentısen megkönnyíti a tervezett rendszer belsı felépítésének vizuális alapon történı elemzését, finomítását.
A programozás elsı fázisában egy logikai hálózati megfeleltetés (netlist) legenerálása történik, amelyet az aktuális architektúrába történı illesztés feladatát ellátó place-and-route folyamat követ. Ezek után a rendszer verifikációja és validációja következik, amelynek az elvégzése után egy bináris fájl generálható. A bináris fájl ezek után letölthetı a hardverre, az arra alkalmas eszközök segítségével.
Modern fejlesztések Az iparban jelentkezı igények hatására szükségessé vált az FPGA-k mikroprocesszorral
és
egyéb
perifériákkal
történı
együttmőködésének
egyszerősítése, amely ezeknek egy hardverbe történı integrálását tette lehetıvé. Ezekkel a beágyazott processzorokkal és változó perifériákkal az FPGA-k egyre jobban a „system-on-a-programmable-chip” elvnek tesznek eleget, alkalmassá téve ıket így komplexebb feladatok megvalósítására. Ilyen hibrid technológiákat alkalmaznak a robosztusabb Xilinx FPGA-k, amelyek egy vagy akár több beágyazott PowerPC mikroprocesszort is tartalmaznak. Ezen keményprocesszoros (hard processor) technológiák mellett párhuzamosan alkalmazzák az iparban a lágyprocesszoros (soft processor) megoldásokat is, amelynek során egy mőködı processzor magot hoznak létre teljes mértékben a technológia
adta
logikai
szintézis
keretein
belül
az
FPGA-kban.
A
legelterjedtebbek között említhetjük a MicroBlaze, PicoBlaze, OpenSPARC vagy NIOS lágyprocesszorokat.
Felhasznált eszközök Ebben a fejezetben a feladat megoldása során használt hardver- és szoftvereszközök kerülnek bemutatásra.
Hardvereszközök A Xilinx University Program Virtex-II Pro (XUPV2P) panel A XUPV2P fejlesztıi panel egy elsı sorban oktatási és kutatási célokra, egyetemek számára kifejlesztett összeállítás. Központi egysége egy Xilinx VirtexII Pro típusú FPGA. Emellett számos ki- és bemeneti egység található rajta. A feladat megoldásához különösen fontos egységek a következık: •
nagysebességő Hirose FX2 csatlakozó
•
XSGA video kimenet
•
Max 2GB-ig illeszthetı JEDEC-standardú 184 lábú DDR SDRAM csatlakozó
•
USB 2.0 port
•
RS-232 DB9 csatlakozó
•
100 MHz-es rendszerórajel
•
PowerPC 405 reset áramkör
Xilinx Virtex-II Pro XC2VP30 FPGA A Xilinx Virtex-II Pro FPGA fontosabb tulajdonságai a következıek: Tulajdonság
Mennyiség
Logikai szeletek/blokkok
13969
Tömb méret
80x46
Elosztott RAM
428 KB
Szorzó blokkok
136
Blokk RAM
2448 KB
DCM-ek
8
Power
PC
RISC 2
processzormagok Elızetesen megemlítendı, hogy a belsı Blokk RAM mennyisége csak kis mennyiségő digitális kép letárolására alkalmas, ezért célszerő alkalmazni a külsı DDR SDRAM memóriát képfeldolgozási feladatok megvalósításához.
VDEC1 Video Decoder Board A Digilent Inc. által szállított VDEC1 video dekódoló panel NTSC, PAL és SECAM szabvány szerinti analóg videojelek digitalizálását végzi el. A panel az Analog Devices ADV7183B video dekóder lapkája köré épül, és ahhoz kompozit, S-Video valamit RGB komponens alapú analóg bemeneti lehetıséget, illetve nagysebességő Hirose FX2 csatlakozójú digitális kimenetet valósít meg. A panel a kimenetén (egyéni konfigurációtól függıen) 8 vagy 16 biten tárolt YCrCb 4:2:2 digitális videojelet szolgáltat. Az ADV7183B felkonfigurálása I2C protokollon keresztül történik. Az ehhez szükséges SDA és SCL vonalak szintén a nagysebességő digitális csatlakozón keresztül érhetıek el.
Kamera Videojelek biztosítására egy SPY gyártmányú SS2000C kamera szolgált. Ez a kamera 352 x 288 pixeles felbontású képet küld ki kompozit jelként a kimenetén. A video dekóder ezt a képet interpolálással átalakítja 720 x (sorok_száma)
felbontásra, ahol a sorok száma NTSC-tıl, illetve PAL-tól függıen 480, illetve 578 lehet.
Szoftvereszközök Xilinx ISE Foundation 9.1i A Xilinx ISE Foundation 9.1i Xilinx cég termékeihez nyújt egységes fejlesztıi felületet. A felépítendı hardver HDL-lel
történı specifikálására biztosít
lehetıséget. A HDL leírás logikai szintézise, a konkrét FPGA-ra történı implementálása, valamint az ehhez tartozó programozófájl generálása is elvégezhetı a fejlesztıkörnyezetben. Mindezeken túl lehetıség van a felépített hardverrendszer kapuszintő kirajzolására, valamint szimulációjára is. Az FPGA felprogramozásának lehetısége szintén integrálva van a környezetbe.
Xilinx ISE Embedded Developers Kit (EDK) 9.1 Az EDK lehetıséget nyújt beágyazott processzoros rendszerek tervezésére és implementálására. Az EDK a következı részegységeket tartalmazza: •
Xilinx Platform Studio (XPS)
•
A beágyazott rendszer eszközkészlete
•
Beágyazott magokat, mint például processzorokat vagy perifériákat
•
Platform Studio Software Development Kit (SDK), amely az Eclipse szabad keretrendszerére épül
A tervezési folyamat a következı részekre bomlik: •
A hardveregységek megtervezése és összeállítása
•
A szoftveregységek elkészítése
•
A hardver egységek szimulációja, verifikálása
•
A szoftver verifikálása
•
Az eszköz konfigurálása
Szoftverkörnyezet A fentebbi szoftvereszközökhöz egy 32 bites Microsoft Windows XP Professional operációs rendszert futtató PC került felhasználásra.
A téma irodalma A pipeline struktúra A pipeline struktúra az informatikában egy visszatérı séma, azonban az FPGA-k és a képfeldolgázás körében alkalmazva viszonylag új kutatási területnek számít. Ennek megfelelıen az eddigi megvalósítások elsısorban cégek által történtek, amelyek nagymértékben nélkülözik a mélyebb elméleti megfontolásokat, amelyek magyarázatként szolgálnak az adott megvalósítás mikéntjére. A fentiek fényében mutatok be néhány alkalmazást, irodalmat, amelyek ötletet adtak a további munkához, illetve mutatták, hogy az elızı félévekben alkalmazott, fejlesztett rendszer jó irányba halad. Elsıként említem [Quinn] munkáját, aki azt a fontos, nem elhanyagolható dolgot veszi figyelembe, hogy képfeldolgozási feladatok ilyen módszerekkel történı alkalmazása során elkerülhetetlen a hardver-szoftver együttmőködés. A megfontolás felveti rögtön azt a kérdést, hogy milyen arányban célszerő, adott esetben
optimális
a
hardver-szoftver
feladatmegosztás.
Természetes
heurisztikaként állíthatjuk, hogy az FPGA alapú megvalósítások esetében elsıdleges szempont a minél nagyobb, annál hatékonyabb elv, hiszen az egyes képek vágása, méretezése szükséges overheadet ad a feladathoz, amelynek a költsége meghaladhatja a teljes kép feldolgozásának költségét, ha a kép kismérető. Mindezeket figyelembe véve állítható, hogy a késleltetési idık hardver-szoftver esetén alapjaiban függnek a feldolgozandó kép méretétıl, ezt [Quinn] munkájában mérésekkel igazolja. Elméleti szempontból fontos figyelembe venni, hogy egy N komponensbıl álló pipeline 2 N különbözı konfigurációt vehet fel, ráadásul konfiguráció (profil) – váltás esetén az FPGA-t újra fel kell programozni. [Quinn] eltekint a felprogramozási költségektıl és kizárólagosan a futási idıre koncentrál, ahol az elsıdleges költségeket a hardver-szoftver átalakítások jelentik. A cikk a következı eseteket sorolja fel, mint fontos különbségek, ahol a szürke egységek a hardver-szoftver határokon elvégzendı feladatokat jelzik:
A következı táblázatban azt vizsgálja [Quinn], hogy milyen futási idıket produkálnak a fenti megvalósítások, ha x a képpontok számát jelenti.
Jól látható, hogy a legjobb megoldás a hardver-hardver megvalósításnál jelentkezik, míg a döntés hardver-szoftver kombináció esetén a szoftverbıl hardverre történı alakítás mellett hoz hatékonyabb eredményt. Fontos még megemlíteni [Tenesix] munkáját, ahol kiemeli a szerzı, hogy nagyobb alkalmazások esetében fontos a kimeneti kép megjelenítı eszközhöz történı hangolása, mind az újraméretezés, mind a vezérlı jelek esetében.
A TCP/IP kommunikáció megvalósítása FPGA-n A
TCP/IP
kommunikáció
megvalósítása
FPGA-n
szintén
elsısorban
megvalósítások szintjén ismertetett. El kell különíteni azokat a lehetıségeket, amelyek során a megvalósítás a processzoron keresztül történik, és azokat, amelyek nem használnak beágyazott feldolgozóegységet a kommunikációhoz. Az én feladatom szempontjából alapvetı tervezési döntésnek bizonyult, hogy
nem vettem figyelembe a szoftvert nélkülözı megoldásokat, mivel a processzor beépítése szintén részfeladatként jelentkezett, amely remekül használható volt a vezérlési információk továbbítására. A többféle megoldás közül a Xilinx cég által támogatott lwIP szabad forráskódú TCP/IP protokoll-stackrıl található kimerítı irodalom. Ezt röviden bemutatom. [Xapp1026] szerint az lwIP (light-weight) IP minimális hardverkövetelménye egy beágyazott processzor, amely lehet PowerPC 405 hardprocesszor, vagy MicroBlaze szoftprocesszor is. E mellett szükséges a rendszernek egy Ethernet MAC
IP-vel
rendelkeznie,
amelyek
a
Xilinx
EDK-ban
megtalálhatóak.
(xps_ethernetlite, xps_II_temac). Szükséges egy megszakítás kezelı és egy programozható idızítı. A következı ábra egy Spartan-3E rendszer blokkvázlatát mutatja MicroBlaze processzor használata esetén:
Fontos tudni, hogy az lwIP-nek két mőködési módja van. Lehetséges Socket API módban használni, ehhez azonban szükséges egy kernelnek a használata a
processzoron. A második mód az úgynevezett Raw Mode, amelyben callback függvényeket alkalmazhatunk az adatforgalom kezelésére. A következı táblázat különbözı sebességet:
hardverkonfigurációk
mellett
ismerteti
az
átviteli
maximális
A félévi munka bemutatása A beágyazott processzor, mint feldolgozó egység Fontosnak tartom elıször röviden ismertetni a korábbi munkák eredményét, amelyek során a következı képfeldolgozási pipeline-t hoztam létre, és mőködését teszteltem is. A pipeline blokkvázlata a következı:
Az ábrán jól látható, hogy az FPGA-n belül megvalósításra került egy vezérlıegység, mint logikai rendszer és különbözı feldolgozó modulok is. Ezek natív módon összehuzalozva szállítják a képinformációkat, konfigurálásuk pedig dedikált címek segítségével buszokon keresztül történik. A rendszer része még a beágyazott processzor, amely azonban az eddigiekben csak konfigurációs feladatokat látott el.
A félév során elıször a beágyazott processzor feldolgozóegységként történı felhasználásával foglalkoztam. Ennek alapjában véve egy lehetıségét találtam: a processzorhoz kapcsolódó buszok alkalmazása, ahhoz hogy a képinformációkat továbbítsuk. A beágyazott PowerPC 405-ös processzor az alábbi két busszal rendelkezik: Tulajdonság
PLB
OPB
Processzorcsalád
PowerPC405
PowerPC405 MicroBlaze
Adatbusz szélessége
64
32
Címbusz szélessége
32
32
Órajel
100
125
Masterek max. száma
16
16
Masterek tipikus száma
2-8
2-8
Slave-ek max. száma
16
16
Slave-ek tipikus száma
2-6
2-8
Adatsebesség (max.)
1600 MB/s
500 MB/s
Adatsebesség (tipikus)
533 MB/s
167 MB/s
Konkurens írás/olvasás
Igen
Nem
Jól látható, hogy az alkalmazás szempontjából a PLB busz használata kedvezıbb az átviteli sebesség miatt, ezért ennek az implementálása mellett döntöttem. Ez elegendı a nagymennyiségő képinformáció továbbítására. Ennek megfelelıen a korábbi implementációk után alkalmassá tettem a processzort a PLB buszon érkezı adatfolyamok kezelésére, hiszen eddig csak vezérlı információkat továbbított és fogadásra nem volt képes. A buszon kapott információ megszakításként jelentkezik, amelyet aztán fel lehet dolgozni. A rendszer külsı memória hiánya miatt, egyelıre nem képes a képinformációk összegyőjtésére, és annak egy csomagban történı szállítására, így byte-onként érkeznek a csomagok, amelyek az egyes pixeleket jelentik. Az alábbi tesztelési kép azonban jól mutatja, hogy a processzor interruptjainak lassúsága miatt az így kapott adatok hiányosak, és értelmezhetetlenek:
A kommunikáció kiépítése A kommunikációra több megoldás is adódott. Lehetıség nyílt soros vonalon kezelni az eszközt, és így vezérlési információkat küldeni a rendszernek PC-rıl, illetve adódott a korábbi irodalomban már részletezett TCP/IP megvalósítás. A soros vonali vezérlés már a korábbi félévekben elkészült, ezt némileg továbbfejlesztve az elızı alpontban kapott képet megpróbáltam átvinni a PC-re, azonban a normál RS-232-es vonal átviteli sebessége lassúnak bizonyult ehhez a feladathoz. A második és egyértelmően jobb megoldás a TCP/IP alapú kommunikációnak a megvalósítása a processzoron. Ehhez a fentebbi irodalomban ismertetett lwIP szabad forráskódú TCP/IP stacket használtam. A Xilinx cég által biztosított volt egy referencia megvalósítás, amelynek a blokkvázlata a következı:
A blokkvázlat egyértelmően szemlélteti, hogy az adat- és utasításátvitelhez szükséges olyan IP-k használata, mint: •
10/100 Ethernet MAC
•
PLB2OPB Bridge
Sajnos azonban a Xilinx EDK 9.1-es verziójánál ezek az IP-k liszenszkötelesek, amely liszenszek a korábbi évek fejlesztései során lejártak. Ennek sajnálatos következménye volt a félév során, hogy a legnagyobb feladatot ezek beszerzése, meghosszabbítása jelentette. Ez azonban továbbra is technikai akadályokba ütközött, habár a létezı referencia terv, mind szoftver-forráskódban, mind hardvertervben a rendelkezésre áll, és alkalmas az lwIP Raw módjában a jelenlegi rendszerrel történı integrálásra.
Összefoglalás Az iparban jelenleg az elsısorban tisztán számítógép- és szoftveralapú megoldások az elterjedtek, amelyekben felhasznált algoritmusok azonban nem képesek a valós idejő kiértékelésre az esetek többségében. Erre megfelelınek bizonyulnak az olyan konfigurálható összeállítások, amelyekben sikerrel ötvözik a hardverek és a szoftverek adta lehetıségeket. Mint ismeretes, ezekben a rendszerekben azonban alapvetı tervezési döntésként
jelentkezik
a
szoftver-hardver
megosztás
aránya.
Mérések
bizonyítják, hogy legjobb, ha kismérető képek esetén szoftveres megoldásokat alkalmazunk, míg nagyobb képmérettel rendelkezı alkalmazásokban a hardvert helyezzük elıtérbe. Fontos, hogy a létrejövı képinformációkat diagnosztikai és mérési szempontból PC-n történı feldolgozásra alkalmassá tegyük. Ehhez a jelen technológia adta hálózatok remek lehetıséget biztosítanak, ugyanakkor ügyelnünk kell arra, hogy a rendszer erıforrásait ne ezek kezelései emésszék fel. A félév során sajnálatos technikai akadályokba ütköztem a hálózati megvalósítás során, azonban az akadályok elhárítása után teljes mértékben integrálható lesz a korábbi rendszer az új, PC-alapú diagnosztikát használóval. Továbbfejlesztési lehetıségként merül fel a külsı memória integrálása a rendszerbe,
amely
majd
lehetıséget
szolgáltat
nagyobb
képcsomagok
processzorra történı áthelyezésére, megırizve ez által a teljes képinformációt. Ezen felül a képek PC-re történı áthelyezésénél fontos lépés, hogy a számítógép kliens alkalmazása képes legyen ne csak bináris információ szöveges formában, hanem azok képként történı megjelenítésére is, amelyre leghatékonyabban az OpenCV könyvtárat lehet felhasználni.
Felhasznált irodalom [Quinn] – Heather Quinn, Miriam Leeser, Laurie Smith King – Implementing Image Processing Pipelines in a Hardware/Software Environment [Tenesix] – Tenesix Inc. - Low Latency Image Processing Pipeline in a Xilinx or Altera FPGA [Xapp1026] – Xilinx Inc. - LightWeightIP (lwIP) Application Examples [Xapp663] – Xilinx Inc. – TCP/IP on Virtex-II Pro Devices Using lwIP [Kardos08] – Kardos László – Elhagyott csomagok és rögzített objektumok felismerése programozható hardver alapú rendszerrel