• Nie Znaleziono Wyników

Index of /rozprawy2/10579

N/A
N/A
Protected

Academic year: 2021

Share "Index of /rozprawy2/10579"

Copied!
175
0
0

Pełen tekst

(1)Akademia Górniczo-Hutnicza im. Stanisława Staszica w Krakowie Wydział Elektrotechniki, Automatyki, Informatyki i In˙zynierii Biomedycznej ˙ K ATEDRA AUTOMATYKI I I N ZYNIERII B IOMEDYCZNEJ. ROZPRAWA DOKTORSKA. T OMASZ K RYJAK. I MPLEMENTACJA ZAAWANSOWANYCH ALGORYTMÓW PRZETWARZANIA , ANALIZY I SZYFROWANIA OBRAZÓW W UKŁADACH REPROGRAMOWALNYCH. P ROMOTOR : dr hab. inz˙ . Marek Gorgo´n, prof. nadzw. AGH. Kraków 2012.

(2) Ukochanym Rodzicom.

(3) AGH University of Science and Technology in Krakow Faculty of Electrical Engineering, Automatics, Computer Science and Biomedical Engineering D EPARTMENT OF AUTOMATICS AND B IOMEDICAL E NGINEERING. P H .D. T HESIS. T OMASZ K RYJAK. I MPLEMENTATION OF ADVANCED IMAGE PROCESSING , ANALYSIS AND ENCRYPTION ALGORITHMS IN REPROGRAMMABLE DEVICES. S UPERVISOR : Marek Gorgo´n Ph.D., D.Sc.. Krakow 2012.

(4) PODZIEKOWANIA ˛. Pragn˛e w tym miejscu podzi˛ekowa´c Wszystkim, bez których ta praca by nie powstała: – Promotorowi dr hab. inz˙ . Markowi Gorgoniowi z pomoc w tworzeniu rozprawy oraz opiek˛e nad moim rozwojem naukowym, – Panu dr inz˙ . Zbigniewowi Mikrutowi za dobre słowo i motywowanie do wysiłku prowadzenia bada´n, a takz˙ e konsultacje w sprawach algorytmów wizyjnych, – Panu mgr inz˙ . Mateuszowi Komorkiewiczowi za pomoc w sprz˛etowej weryfikacji zaimplementowanych algorytmów oraz owocna˛ współprac˛e, której rezultatem były warto´sciowe publikacje naukowe, – całemu zespołowi Laboratorium Biocybernetyki, Katedry Automatyki i Inz˙ ynierii Biomedycznej pod kierownictwem prof. dr hab. inz˙ . Ryszarda Tadeusiewicza za stworzenie miłej atmosfery do realizacji bada´n naukowych i pracy dydaktycznej, – Rodzicom i Dziadkom za zapewnienie mi warunków i motywowanie do rozwoju naukowego i osobistego, – Wujkowi Stanisławowi i Cioci Krystynie za wsparcie w trakcie studiów i pracy na uczelni, – mojej Narzeczonej Magdzie za bycie ze mna,˛ szczególnie w trakcie intensywnej pracy nad tekstem oraz za czas po´swi˛econy na korekt˛e rozprawy..

(5) Spis tre´sci. 1. Wst˛ep................................................................................................................................................ 5. 1.1.. Motywacja .............................................................................................................................. 5. 1.2.. Cele, teza pracy i metodologia bada´n ..................................................................................... 9. 1.3.. Zawarto´sc´ rozprawy............................................................................................................... 11. 2. Budowa oraz metody projektowania logiki dla układów FPGA ............................................... 13 2.1.. Budowa układów FPGA ........................................................................................................ 15. 2.2.. Projektowanie logiki układów FPGA.................................................................................... 18. 2.3.. Etapy projektowania logiki FPGA za pomoca˛ pakietu ISE firmy Xilinx.............................. 20. 3. Implementacja algorytmów kryptograficznych w układach FPGA na przykładzie algorytmu CLEFIA............................................................................................................................... 23 3.1.. Implementacja algorytmów kryptograficznych w układach FPGA ...................................... 25. 3.2.. Algorytm kryptograficzny CLEFIA ...................................................................................... 26. 3.3.. Sprz˛etowa implementacja algorytmu CLEFIA w układzie FPGA........................................ 28 3.3.1. Implementacja S-Box S0 ........................................................................................... 30 3.3.2. Implementacja S-Box S1 ........................................................................................... 30 3.3.3. Implementacja macierzy rozpraszajacych ˛ M 0 i M 1................................................. 30 3.3.4. Implementacja F-funkcji F 0 i F 1.............................................................................. 30 3.3.5. Implementacja pojedynczej rundy szyfrowania......................................................... 31 3.3.6. Implementacja generatora podkluczy ........................................................................ 32 3.3.7. Implementacja 18 rund szyfrowania .......................................................................... 32 3.3.8. Wnioski z implementacji sprz˛etowej algorytmu CLEFIA......................................... 34. 3.4.. Akcelerator kryptograficzny ................................................................................................. 35 3.4.1. Implementacja na karcie ADM-XP............................................................................ 35 3.4.2. Implementacja na karcie RC 100 ............................................................................... 37 3.4.3. Wnioski z budowy akceleratora kryptograficznego ................................................... 38. 3.5.. Podsumowanie ...................................................................................................................... 40. 4. Implementacja zaawansowanych metod przetwarzania obrazów w układach FPGA na przykładzie algorytmu PGF.......................................................................................................... 41 1.

(6) ´ SPIS TRESCI. 2. 4.1.. Implementacja operacji przetwarzania obrazu w układach FPGA ....................................... 42. 4.2.. Algorytm PGF....................................................................................................................... 46. 4.3.. Sprz˛etowa implementacja algorytmu PGF w układzie FPGA .............................................. 48 4.3.1. Generacja kontekstu ................................................................................................... 48 4.3.2. Obliczanie odległo´sci ................................................................................................. 49 4.3.3. Sortowanie odległo´sci ................................................................................................ 50 4.3.4. Usuwanie zakłóce´n impulsowych .............................................................................. 51 4.3.5. Równoległe obliczanie warto´sci a1 i a2 ..................................................................... 51 4.3.6. Równoległe obliczanie warto´sci s1 i s2 ..................................................................... 52 4.3.7. Obliczanie współczynnika J(i) ................................................................................. 52 4.3.8. Wyznaczanie peer group i filtracja Gaussa ................................................................ 52 4.3.9. Dodatkowe moduły .................................................................................................... 53 4.3.10. Uz˙ ycie zasobów logicznych....................................................................................... 53. 4.4.. Ocena jako´sci sprz˛etowej implementacji algorytmu PGF..................................................... 54. 4.5.. Testowanie modułu na platformie RC 100 ............................................................................ 57. 4.6.. Testowanie modułu na platformie Virtex 6............................................................................ 57. 4.7.. Podsumowanie....................................................................................................................... 58. 5. Implementacja operacji binaryzacji lokalnej jako przykład wykorzystania j˛ezyka wysokiego poziomu w programowaniu logiki układu FPGA ............................................................. 60 5.1.. Binaryzacja lokalna ............................................................................................................... 61. 5.2.. J˛ezyk Mitrion-C..................................................................................................................... 64. 5.3.. Sprz˛etowa implementacja binaryzacji lokalnej w j˛ezyku Mitrion-C .................................... 65 5.3.1. Implementacja toru wizyjnego i operacji LUT .......................................................... 65 5.3.2. Pierwsza wersja operacji binaryzacji lokalnej (BL1) ................................................ 66 5.3.3. Zmodyfikowana wersja operacji binaryzacji lokalnej (BL2)..................................... 67 5.3.4. Implementacja binaryzacji lokalnej metoda˛ Sauvola................................................. 68 5.3.5. Stałoprzecinkowa implementacja binaryzacji lokalnej metoda˛ Sauvola ................... 70. 5.4.. Podsumowanie....................................................................................................................... 72. 6. Implementacja operacji analizy obrazu na przykładzie zaawansowanej generacji tła i segmentacji obiektów................................................................................................................... 73 6.1.. Implementacja algorytmów analizy obrazów w układach FPGA ......................................... 74. 6.2.. Detekcja obiektów na sekwencji wideo z wykorzystaniem generacji tła.............................. 76. 6.3.. Przeglad ˛ metod generacji tła.................................................................................................. 77 6.3.1. Algorytmy nierekurencyjne ....................................................................................... 78 6.3.2. Algorytmy rekurencyjne ............................................................................................ 79. 6.4.. Przeglad ˛ metod generacji tła zrealizowanych w układach FPGA ........................................ 79. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(7) ´ SPIS TRESCI. 6.5.. 3. Zaproponowane i zrealizowane metody generacji tła i segmentacji obiektów...................... 81 6.5.1. Wielowariantowa generacja tła z segmentacja˛ na podstawie jasno´sci, koloru i tekstury............................................................................................................................ 82 6.5.1.1. Zaproponowana metoda generacji tła . . . . . . . . . . . . . . . . . .. 84. 6.5.1.2. Sprz˛etowa implementacja zaproponowanej metody generacji tła . . . .. 86. 6.5.1.3. Zaproponowana i zrealizowana metoda segmentacji obiektów . . . . .. 88. 6.5.1.4. Sprz˛etowa implementacja metody segmentacji obiektów . . . . . . . .. 88. 6.5.1.5. Integracja generacji tła i segmentacji na platformie FPGA SP 605 . . .. 90. 6.5.1.6. Rezultaty i wnioski . . . . . . . . . . . . . . . . . . . . . . . . . . .. 93. 6.5.2. Zmodyfikowana wersja wielowariantowej generacji tła z segmentacja˛ na podstawie jasno´sci, koloru i tekstury.................................................................................... 95 6.5.2.1. Modyfikacje modułu generacji tła . . . . . . . . . . . . . . . . . . . .. 96. 6.5.2.2. Szczegółowa analiza precyzji oblicze´n . . . . . . . . . . . . . . . . .. 98. 6.5.2.3. Zmodyfikowana metoda segmentacji obiektów . . . . . . . . . . . . . 101. 6.5.2.4. Testy zmodyfikowanej generacji tła i segmentacji obiektów . . . . . . 107. 6.5.2.5. Implementacja i testowanie na platformie ML 605 . . . . . . . . . . . 109. 6.5.2.6. Porównanie wykonanych implementacji wielowariantowych metod generacji tła i segmentacji obiektów . . . . . . . . . . . . . . . . . . . 112. 6.5.3. Zrealizowane jednowariantowe metody generacji tła i segmentacji obiektów ..........113 6.6.. Podsumowanie ......................................................................................................................117. 7. Implementacja sprz˛etowa algorytmów wykorzystywanych w zaawansowanych systemach monitoringu wizyjnego........................................................................................................119 7.1.. 7.2.. Detekcja naruszenia strefy zabronionej.................................................................................120 7.1.1.. Zaproponowany algorytm i jego implementacja sprz˛etowa......................................121. 7.1.2.. Rezultaty i wnioski....................................................................................................122. Detekcja głowy i ramion z wykorzystaniem cech LBP klasyfikatora SVM i maski obiektów122 7.2.1. Deskryptor LBP .........................................................................................................123 7.2.2. Detekcja obiektów z wykorzystaniem LBP ..............................................................125 7.2.3. Proponowany algorytm .............................................................................................127 7.2.3.1. Wykorzystane bazy danych . . . . . . . . . . . . . . . . . . . . . . . 127. 7.2.3.2. Wybór deskryptora . . . . . . . . . . . . . . . . . . . . . . . . . . . 127. 7.2.4. Implementacja sprz˛etowa proponowanego algorytmu...............................................128 7.2.5. 7.3.. Rezultaty i wnioski....................................................................................................131. Detekcja sabotaz˙ u kamery .....................................................................................................132 7.3.1. Przeglad ˛ istniejacych ˛ metod automatycznego wykrywania sabotaz˙ u........................132 7.3.1.1. Utrata ostro´sci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(8) ´ SPIS TRESCI. 4. 7.3.1.2. Przykrycie kamery . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133. 7.3.1.3. Zmiana kadru . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133. 7.3.1.4. Inne podej´scia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134. 7.3.2. Zaproponowana metoda detekcji sabotaz˙ u kamery ...................................................134 7.3.2.1. Porównywanie histogramów . . . . . . . . . . . . . . . . . . . . . . . 135. 7.3.2.2. Porównywanie kraw˛edzi . . . . . . . . . . . . . . . . . . . . . . . . . 137. 7.3.2.3. Analiza s´redniej jasno´sci . . . . . . . . . . . . . . . . . . . . . . . . 138. 7.3.2.4. Redukcja liczby fałszywych alarmów . . . . . . . . . . . . . . . . . . 139. 7.3.3. Implementacja sprz˛etowa detekcji sabotaz˙ u systemu wizyjnego ..............................140 7.3.4. Rezultaty i wnioski.....................................................................................................142 7.4.. Podsumowanie.......................................................................................................................142. 8. Podsumowanie................................................................................................................................145 Bibliografia ...........................................................................................................................................149 Spis skrótów..........................................................................................................................................166. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(9) 1. Wst˛ep. 1.1. Motywacja Spo´sród wszystkich zmysłów człowieka wzrok jest tym, który dostarcza najpełniejszej informacji o otaczajacym ˛ s´wiecie, a przetwarzanie obrazów angaz˙ uje wi˛eksza˛ cz˛es´c´ naszego mózgu. Badania nad procesem widzenia u ludzi, a takz˙ e innych ssaków naczelnych, trwaja˛ od lat. Ich celem jest poznanie mechanizmów, które powoduja,˛ z˙ e impulsy nerwowe, wygenerowane na siatkówce oka przez fotoreceptory wraz˙ liwe na s´wiatło, zamieniane sa˛ w abstrakcyjna˛ reprezentacj˛e widzianej sceny w korze wzrokowej. Pomimo sporych wysiłków neurobiologów, a takz˙ e specjalistów z innych dziedzin np. psychologów, system wizyjny człowieka nadal pozostaje tajemnica,˛ która odkrywana jest bardzo powoli. Jak doskonale “działa” u ludzi przetwarzanie, analiza i rozpoznawanie obrazów przekonuje si˛e kaz˙ dy, kto próbuje zaimplementowa´c jaki´s bardziej złoz˙ ony algorytm wizyjny np. wyodr˛ebnianie cz˛es´ci ciała oraz przedmiotów, które trzyma okre´slona osoba. Juz˙ kilkuletnie dziecko wskaz˙ e lokalizacj˛e rak, ˛ nóg, głowy, a takz˙ e powie, z˙ e np. “ten Pan niesie teczk˛e, a tamta Pani torebk˛e” i to w najróz˙ niejszych warunkach o´swietleniowych i pogodowych, w obecno´sci innych osób na scenie, przy wyst˛epujacym ˛ cz˛es´ciowym przesłanianiu, a takz˙ e w przypadku jednorodnego koloru ubioru. Próba realizacji takiej detekcji w sztucznym systemie wizyjnym, napotyka na rozliczne trudno´sci i wymaga uz˙ ycia bardzo wymy´slnych i złoz˙ onych obliczeniowo rozwiaza´ ˛ n algorytmicznych. Kolejna, unikatowa zdolno´sc´ człowieka to łatwo´sc´ semantycznego opisania obserwowanej sceny tj. nazywania poszczególnych przedmiotów oraz “rozumienia” ich zachowania. Przykładowo kaz˙ dy z nas, jest w stanie opisa´c przedstawiona˛ na dowolnym zdj˛eciu sytuacj˛e: nazwa´c konkretne obiekty (ludzi, samochody, zwierz˛eta), okre´sli´c moz˙ liwe ich zachowania oraz zachodzace ˛ pomi˛edzy nimi relacje. Poprawna realizacja tego zadania w systemie sztucznym do dzisiaj wydaje si˛e by´c nieosiagalna. ˛ Istnieja˛ wprawdzie rozwiazania, ˛ które cz˛es´ciowo sa˛ w stanie “zrozumie´c” prezentowana˛ scen˛e, ale pełne odwzorowanie percepcji człowieka jest bardzo odległe i wymaga wielu dalszych prac badawczych. Przedstawione wyz˙ ej rozwaz˙ ania moz˙ na oczywi´scie przenie´sc´ z obrazów statycznych na sekwencje wideo. Równiez˙ w tym przypadku łatwo´sc´ , z jaka˛ człowiek interpretuje widziana˛ sytuacj˛e jest zdumiewajaca. ˛ Podstawa˛ tak doskonałego działania naszego systemu wizyjnego jest “wiedza” rozumiana jako ogół tres´ci utrwalonych w umy´sle ludzkim w wyniku kumulowania do´swiadczenia oraz uczenia si˛e. To ona pozwala poprawnie nazywa´c oraz przewidywa´c zachowanie si˛e obiektów. Tym niemniej mechanizm ten jest tak skomplikowany, z˙ e trudno go przy dzisiejszym stanie wiedzy oraz techniki w pełni zamodelowa´c. Przetwarzanie, analiza i rozpoznawanie obrazów, pomimo opisanych powyz˙ ej trudno´sci, sa˛ bardzo 5.

(10) 1.1. Motywacja. 6. pr˛ez˙ nie rozwijajac ˛ a˛ si˛e dziedzina˛ nauki stosowana˛ coraz cz˛es´ciej w aplikacjach przemysłowych. Wynika to z szerokich moz˙ liwo´sci jakich dostarcza analiza obrazowa. W´sród zastosowa´n komercyjnych moz˙ na wskaza´c: procesory graficzne w aparatach fotograficznych i kamerach, których zadaniem jest poprawa obrazu uzyskanego bezpo´srednio z matrycy, metody kompresji i dekompresji strumienia wideo, systemy nadzoru pracujace ˛ na liniach produkcyjnych (np. analiza poprawno´sci wykonania detali elementów), systemy rozpoznawania tablic rejestracyjnych (coraz cz˛es´ciej dost˛epne na parkingach oraz jako element fotoradarów), zaawansowane systemy monitoringu wizyjnego oraz cały szereg aplikacji programowych od pakietów do obróbki zdj˛ec´ (typu Gimp, Photoshop), po systemy wspomagajace ˛ analiz˛e obrazów medycznych. Wymienione przykłady to tylko niewielki fragment, gdzie techniki wizyjne znajduja˛ praktyczne zastosowanie. W badaniach naukowych omawiany temat obecny jest od lat i cieszy si˛e niesłabnacym ˛ zainteresowaniem. Dowodem niech b˛edzie liczba konferencji pod patronatem IEEE zwiazana ˛ z tematyka˛ przetwarzanie obrazów (ang. image processing) oraz rozpoznawaniem wzorców (ang. pattern recognition) wynoszaca ˛ 63 (w latach 2010-2012), a takz˙ e szereg czasopism bezpo´srednio zwiazanych ˛ z ta˛ tematyka˛ (przykładowo czasopisma z listy filadelfijskiej np. IEEE Transactions on Image Processing, Journal of Real-Time Image Processing, IEEE Transactions on Pattern Analysis and Machine Intelligence). Tematyka bada´n jest bardzo obszerna i rozciaga ˛ si˛e od projektowania nowych metod akwizycji i przetwarzania, poprzez ulepszanie metod analizy i reprezentacji informacji, az˙ do elementów rozumienia obrazów. Kompleksowe omówienie dziedziny wykracza poza tematyk˛e niniejszej rozprawy, jednakz˙ e w dalszych rozdziałach zawarto podstawowe informacje o algorytmach szyfrowania, przetwarzania wst˛epnego oraz analizy obrazów, które maja˛ zwiazek ˛ z tematyka˛ pracy. Z obserwacji autora wynika, z˙ e im algorytm jest doskonalszy, bardziej niezawodny oraz osiaga ˛ lepsze wyniki (np. rozpoznawania), tym wymaga on wi˛ekszych mocy obliczeniowych. Stwierdzenie to pokazuje, z˙ e omawiana tematyka ma dwa punkty ci˛ez˙ ko´sci. Pierwszym sa˛ algorytmy oraz praca nad ich doskonaleniem. Drugim kwestia implementacji tychz˙ e algorytmów, gdyz˙ oprócz skuteczno´sci ogromne znaczenie ma takz˙ e praktyczna uz˙ yteczno´sc´ rozwiazania, ˛ która w wielu przypadkach sprowadza si˛e do osiagni˛ ˛ ecia “akceptowalnego” dla aplikacji czasu oblicze´n. Przykładowo, w rzeczywistym systemie monitoringu wizyjnego nie sprawdzi si˛e nawet najbardziej niezawodna detekcja osób, o ile nie b˛edzie moz˙ liwa jej realizacja w bardzo krótkim czasie (tj. albo płynnie dla kolejnych ramek, albo dla co N -tej ramki, przy czym warto´sc´ N nie powinna by´c zbyt duz˙ a). Gdy rozwaz˙ a si˛e implementacj˛e danego algorytmu, dost˛epnych jest szereg platform: komputery PC wyposaz˙ one w wydajne procesory ogólnego przeznaczenia GPP (ang. General Purpose Processor), wysokowydajne, specjalizowane procesory graficzne GPU (ang. Graphics Processing Unit), układy FPGA (ang. Field Programmable Gate Array) procesory sygnałowe DSP (ang. Digital Signal Processor), platformy hybrydowe składajace ˛ si˛e z klasycznego procesora ogólnego przeznaczenia oraz zasobów rekonfigurowalnych (tzw. programowalne SoC — ang. System on Chip) — przykładowo układy firmy Cypress oraz Zynq firmy Xilinx, układy ASIC (ang. Application Specific Itegrated Circuit) oraz inne rozwiazania ˛ wysoce specjalizowane np. superkomputery (równiez˙ w połaczeniu ˛ z kartami FPGA i GPU). Kaz˙ da z wymienionych platform ma swoje unikalne cechy, które decyduja˛ o jej przydatno´sci w konkretnym zastosowaniu. Poniz˙ ej omówiono wybrane z nich. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(11) 1.1. Motywacja. 7. A. Procesory GPP. W ciagu ˛ ostatnich 40 lat obserwuje si˛e bardzo dynamiczny rozwój procesorów. Do pierwszej dekady XXI w. dominowały procesory jednordzeniowe, o coraz wi˛ekszej cz˛estotliwo´sci zegara od 108 kHz w roku 1971 (Intel 4004) do 3,73 GHz w roku 2005 (Pentium 4 Extreme). Rozwój procesorów obejmował takz˙ e rozszerzenia instrukcji np. SSE (ang. Streaming SIMD Extension), przej´scie z architektury 32-bitowej na 64-bitowa,˛ zwi˛ekszanie rozmiaru i szybko´sci pami˛eci podr˛ecznej cache oraz ulepszanie technologii wytwarzania. Jednakz˙ e bariera cz˛estotliwo´sci 4 GHz nigdy nie została znacznie przekroczona. Duz˙ y wpływ maja˛ na to trudno´sci z odprowadzaniem ciepła wydzielanego przy pracy z takimi warto´sciami zegara oraz problemy natury technicznej z tranzystorami. Poniewaz˙ wzrost cz˛estotliwo´sci zegara dla procesorów okazał si˛e niemoz˙ liwy, dalsze zwi˛ekszanie mocy obliczeniowej nast˛epuje poprzez równoległe wykonywanie zada´n i algorytmów, co skutkuje dynamicznym rozwojem jednostek wielordzeniowych. Przykładowo: procesor do zastosowa´n domowych Intel Core i7-3770 dysponuje 4-ma rdzeniami o nominalnej cz˛estotliwo´sci pracy 3,4 GHz (maksymalnie 3,9 MHz) oraz 8 MB pami˛eci podr˛ecznej. Konkurencyjne rozwiazanie ˛ z firmy AMD: FX 8350 dysponuje 8-ma rdzeniami taktowanymi 4,0/4,2 GHz i łaczenie ˛ 16 MB pami˛eci podr˛ecznej. W przypadku procesorów dla serwerów wyst˛epuja˛ jednostki dysponujace ˛ 10-ma rdzeniami (Intel Xeon E7-8870, cz˛estotliwo´sc´ 2,5/2,8 GHz) oraz 16-ma rdzeniami (AMD Opteron 6386 SE, cz˛estotliwo´sc´ 2,8/3,5 GHz). Podstawowa˛ zaleta˛ procesorów ogólnego przeznaczenia jest ich uniwersalno´sc´ . Istnieje bardzo szeroki wachlarz narz˛edzi programistycznych od niskopoziomowych (asembler, np. do intrukcji SSE) do wysokopoziomowych j˛ezyków typu C/C++/Java/C# i wielu innych, które pozwalaja˛ szybko tworzy´c aplikacje przetwarzajace ˛ i analizujace ˛ obraz. W prototypowaniu algorytmów wizyjnych cz˛esto, równiez˙ w niniejszej rozprawie, wykorzystywane jest takz˙ e s´rodowisko MATLAB. Wada˛ procesorów jest cz˛esto ograniczona wydajno´sc´ , relatywnie wysokie zuz˙ ycie energii oraz konieczno´sc´ pracy w złoz˙ onym systemie komputerowym. B. Procesory GPU. Rozwój procesorów graficznych przeznaczonych dla komputerów osobistych rozpoczał ˛ si˛e w roku 1999 premiera˛ układu GeForce 256 firmy NVidia. Wcze´sniej zadania oblicze´n graficznych realizowała jednostka CPU komputera PC. Od tego czasu obserwuje si˛e dynamiczny rozwój tych urzadze´ ˛ n, s´ci´sle powiazany ˛ z zapotrzebowaniem na moc obliczeniowa˛ wymagana˛ przez nowoczesne gry komputerowe. W konsekwencji powstała idea wykorzystania dost˛epnej na karcie mocy obliczeniowej do realizacji innych zada´n niz˙ stricte graficzne. Na przeciw zapotrzebowaniu wyszli producenci sprz˛etu, udost˛epniajac ˛ narz˛edzia do programowania swoich kart: CUDA firmy NVidia (2007) oraz Stream Computing SDK firmy ATI/AMD (2007). Duz˙ a˛ popularno´scia˛ cieszy si˛e równiez˙ j˛ezyk OpenCL, który umoz˙ liwia pisanie aplikacji działajacych ˛ w s´rodowiskach heterogenicznych. Ilustracja˛ potencjału obliczeniowego kart graficznych sa˛ parametry dost˛epnych urzadze´ ˛ n. Przykładowo karta ATI FirePro V9800 dysponuje 1600 procesorami strumieniowymi oraz 4 GB szybkiej pami˛eci DDR przy maksymalnej rozpraszanej mocy 225 W. Karta GeForce GTX 690 firmy NVidia wyposaz˙ ona jest w 3072 rdzenie obliczeniowe oraz 4 GB RAM przy maksymalnej mocy 300 W, karta NVidia Tesla K10, przeznaczona do akceleracji oblicze´n to 2 x 1536 rdzeni obliczeniowych, 8 GB RAM oraz maksymalna wydajno´sc´ 0,18 tera T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(12) 1.1. Motywacja. 8. operacji zmiennoprzecinkowych podwójnej precyzji na sekund˛e. Karty GPU wykorzystywane sa˛ w nast˛epujacych ˛ dziedzinach: przetwarzaniu sekwencji wideo, astrofizyce, biologii i chemii obliczeniowej, symulacji dynamiki płynów, badaniu interferencji elektromagnetycznych, rekonstrukcji obrazu w tomografii komputerowej, analizach sejsmicznych, modelowaniu finansowym oraz wielu innych. Zalety rozwiaza´ ˛ n GPU to bardzo duz˙ a moc obliczeniowa, szczególnie dla operacji zmiennoprzecinkowych, dost˛epno´sc´ urzadze´ ˛ n (wi˛ekszo´sc´ nowszych komputerów PC, w tym takz˙ e przenos´nych, dysponuje odpowiednia˛ karta˛ graficzna) ˛ oraz wzgl˛edna łatwo´sc´ programowania. Wady to znaczne zuz˙ ycie energii, konieczno´sc´ pracy w systemie komputerowym oraz mało elastyczna architektura, która zapewnia wysoka˛ wydajno´sc´ dla bardzo specyficznej grupy zada´n obliczeniowych. C. Procesory DSP. Rozwój procesorów DSP jest s´ci´sle zwiazany ˛ z potrzeba˛ realizacji algorytmów przetwarzania sygnałów. Nalez˙ a˛ do nich: kompresja, filtracja i przetwarzanie d´zwi˛eku, rozpoznawanie mowy, przetwarzanie sygnałów radarowych, sonarowych, sejsmicznych, jaki i przetwarzanie obrazów. W stosunku do procesorów ogólnego przeznaczenia, zaawansowane rozwiazania ˛ DSP maja˛ kilka cech, które predestynuja˛ je jako platform˛e do implementacji wymienionych wyz˙ ej algorytmów. Nalez˙ a˛ do nich: odr˛ebna pami˛ec´ danych i instrukcji (architektura Harwardzka), wsparcie dla instrukcji SIMD, architektura pami˛eci przystosowana do danych strumieniowych, szybkie jednostki realizujace ˛ operacje mnoz˙ enia i akumulacji MAC (ang. Multiply and Accumulate), sprz˛etowa kontrola nad wykonywaniem p˛etli i inne. Przykłady parametrów współczesnych procesorów DSP: ADSP-BF561 (Analog Devices Blackfin) — dwa rdzenie, cz˛estotliwo´sc´ 600 MHz, moz˙ liwo´sc´ realizacji 2400 milionów operacji MAC na sekund˛e, ADSP-21467 (Analog Devices SHARC) — cz˛estotliwo´sc´ 450 MHz, moz˙ liwo´sc´ realizacji 900 milionów operacji MAC na sekund˛e, TMS320C6678 (Texas Intruments) — cz˛estotliwo´sc´ 1250 MHz, moz˙ liwo´sc´ realizacji 320 miliardów operacji MAC na sekund˛e. Zaletami rozwiaza´ ˛ n DSP sa: ˛ architektura przystosowana do realizacji operacji przetwarzania sygnałów, łatwo´sc´ programowania oraz przydatno´sc´ w systemach wbudowanych. Wada to brak moz˙ liwo´sci dopasowania architektury do wykonywanego algorytmu. D. Układy FPGA. Programowalne matryce bramek logicznych, które sa˛ platforma˛ wykorzystywana˛ w prezentowanych badaniach, zostały omówione w dalszej cz˛es´ci rozprawy (rozdział 2). Charakteryzuja˛ si˛e one bardzo elastyczna˛ architektura,˛ relatywnie niskim zuz˙ yciem energii, wielokrotna˛ reprogramowalno´scia˛ oraz moz˙ liwo´scia˛ pracy w systemach wbudowanych. Do ich wad nalez˙ y zaliczy´c trudno´sc´ w programowaniu (ciagle ˛ najlepszymi narz˛edziami do projektowania logiki sa˛ j˛ezyki opisu sprz˛etu) i zwiazany ˛ z tym długi czas powstawania aplikacji, a takz˙ e relatywnie wysoki koszt zakupu samego układu (np. w porównaniu do rozwiazania ˛ ASIC). E. Programowalne platformy SoC. Urzadzenia ˛ te stanowia˛ połaczenie ˛ procesorów ogólnego przeznaczenia i zasobów rekonfigurowalnych. Jest to koncepcja stosunkowo nowa — pierwsze urza˛ dzenia wprowadziła firma Cypress Semiconductor poczatkiem ˛ XXI w. Obecnie, w dost˛epnych T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(13) 1.2. Cele, teza pracy i metodologia bada´n. 9. układach oznaczonych PSoC 3 i PSoC 5 zawarty jest procesor (typu 8051 lub ARM Cortex M3), pewna liczba tzw. uniwersalnych bloków logicznych (UDB ang. Universal Digital Blocks) zbudowanych z macierzy bramek logicznych, 8-bitowej jednostki ALU i logiki pomocniczej oraz peryferia np. przetworniki AC i CA, interfejsy UART, I2C, SPI itp. Podobne wła´sciwo´sci posiada platforma Zynq firmy Xilinx, gdzie w jednym układzie elektronicznym połaczono ˛ dwurdzeniowy procesor ARM Cortex - A9, zasoby programowalne zbliz˙ one do dost˛epnych w układach FPGA, przetworniki AC, a takz˙ e interfejsy do pami˛eci DDR oraz USB, I2C SPI, UART, Ethernet i PCI Express. F. ASIC. Układy elektroniczne zaprojektowane do realizacji s´ci´sle okre´slonego zadania charakteryzuja˛ si˛e elastyczna˛ architektura,˛ bardzo niskim zuz˙ yciem energii, sa˛ predestynowane do pracy w urzadzeniach ˛ wbudowanych oraz tanie w produkcji wielkoseryjnej. Ich wady to kosztowny i długotrwały proces projektowania (wymagajacy ˛ bardzo dokładnego testowania) oraz niemoz˙ liwo´sc´ modyfikacji sposobu działania po etapie produkcji. W´sród potencjalnych zastosowa´n moz˙ na wskaza´c: układy sterujace ˛ w urzadzeniach ˛ mobilnych, koprocesory kryptograficzne, układy przetwarzajace ˛ obraz np. realizujace ˛ sprz˛etowa˛ kompresja˛ w okre´slonym standardzie. G. Rozwiazania ˛ specjalizowane. Zastosowanie przykładowo superkomputera (cz˛esto z akceleratorami w postaci kart GPU i FPGA) jest rozwiazaniem, ˛ które zapewni najwi˛eksza˛ wydajno´sc´ realizacji oblicze´n. Do wad podej´scia nalez˙ y przede wszystkim zaliczy´c: bardzo duz˙ y koszt sprz˛etu, potencjalne trudno´sci w programowaniu, duz˙ e zuz˙ ycie energii oraz unikalno´sc´ rozwiazania. ˛ Jak pokazuje przeprowadzona analiza, dowolny algorytm szyfrowania, przetwarzania i analizy obrazów moz˙ e zosta´c zaimplementowany na platformach obliczeniowych, róz˙ niacych ˛ si˛e znacznie architektura˛ i dost˛epnymi zasobami obliczeniowymi. Celowym zatem wydaje si˛e prowadzenie bada´n, których tematyka dotyczy porównywania róz˙ nych s´rodowisk obliczeniowych lub demonstrowania moz˙ liwo´sci realizacji złoz˙ onych algorytmów na jednej ze specjalizowanych platform tj. DSP, GPU, ASIC, SoC i FPGA.. 1.2. Cele, teza pracy i metodologia badan´ Przetwarzanie analiza i szyfrowanie obrazów to dziedziny o bardzo duz˙ ym znaczeniu praktycznym we współczesnej nauce i technice, co zostało zasygnalizowane w poprzednim rozdziale. W niniejszej rozprawie, za cel przyj˛eto zaprojektowanie i zaimplementowanie w układach reprogramowalnych FPGA oryginalnych i nowatorskich modułów sprz˛etowych, realizujacych ˛ wspominane algorytmy. Układy FPGA sa˛ od wielu lat popularnym s´rodowiskiem do realizacji systemów wizyjnych i akceleracji ´ algorytmów. Swiadcz a˛ o tym bardzo liczne publikacje, z których cz˛es´c´ została omówiona w kolejnych rozdziałach i podrozdziałach pracy. Przeniesienie algorytmu do zasobów układu FPGA skutkuje zwykle: sporym przyspieszeniem w stosunku do implementacji programowej, wzgl˛ednie niskim zuz˙ yciem energii oraz w przypadku systemów wizyjnych praca˛ w czasie rzeczywistym, tj. płynnym przetwarzaT. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(14) 1.2. Cele, teza pracy i metodologia bada´n. 10. niem kolejnych ramek obrazu niezalez˙ nie od ich tre´sci. Powyz˙ sze cechy prowadza˛ do sformułowania tezy pracy, która brzmi: ˙ IMPLEMENTACJA ZŁOZONYCH OPERACJI I ALGORYTMÓW PRZETWARZANIA, ANALIZY ˙ I SZYFROWANIA OBRAZÓW W UKŁADACH REPROGRAMOWALNYCH UMOZLIWIA ´ A˛ DO POWSTANIE MODUŁÓW SPRZETOWYCH ˛ CHARAKTERYZUJACYCH ˛ SIE˛ ZDOLNOSCI ´ W CZASIE RZECZYWISTYM. REALIZACJI ZADAN Ogólna metodologia opisanych bada´n obejmuje: – analiz˛e programowej wersji algorytmu lub w niektórych przypadkach analiz˛e literatury zwiazanej ˛ z tematem, w celu stworzenia własnej wersji algorytmu, – implementacj˛e programowa˛ algorytmu (zwykle C/C++ lub MATLAB), jej testy oraz ewentualne doskonalenie metody, – przekształcenie algorytmu na wersj˛e sprz˛etowa,˛ stworzenie tzw. modelu referencyjnego tj. aplikacji programowej, która realizuje obliczenia w taki sam sposób, jak projektowana logika (z uwzgl˛ednieniem stosowanego formatu danych np. liczb stałoprzecinkowych), – implementacj˛e sprz˛etowa˛ algorytmu — uz˙ ywano j˛ezyka opisu sprz˛etu VHDL, za wyjatkiem ˛ jednej implementacji, w której wykorzystano narz˛edzie Mitrion-C, – testy aplikacji sprz˛etowej — prezentowane w niniejszej rozprawie algorytmy zostały pomy´slnie zweryfikowane na kartach z układami FPGA, – analiz˛e parametrów aplikacji tj. uz˙ yte zasoby FPGA, rozpraszana˛ moc, uzyskane przyspieszenie, wzgl˛ednie realizacj˛e oblicze´n w czasie rzeczywistym. W trackie prowadzonych prac badawczych wykonano implementacje sprz˛etowe nast˛epujacych ˛ operacji i algorytmów wizyjnych: – szyfru CLEFIA — pierwsza implementacja tego algorytmu w układzie FPGA, – filtracji obrazu kolorowego algorytmem PGF — pierwsza implementacja tego algorytmu w układzie FPGA, – binaryzacji lokalnej — celem bada´n była analiza przydatno´sci narz˛edzia Mitrion-C w realizacji operacji przetwarzania obrazów, – zaawansowanej generacji tła i segmentacji obiektów, – detekcji naruszenia strefy zabronionej, – detekcji głowy i ramion z wykorzystaniem cech LBP i klasyfikatora SVM, – detekcji sabotaz˙ u kamery. Wyniki prac zostały opublikowane na konferencjach krajowych i zagranicznych oraz w czasopismach naukowych. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(15) 1.3. Zawarto´sc´ rozprawy. 11. 1.3. Zawarto´sc´ rozprawy Niniejsza˛ rozpraw˛e podzielono na 8 rozdziałów po´swi˛econych tematyce implementacji zaawansowanych algorytmów szyfrowania, przetwarzania i analizy obrazów w układach reprogramowalnych. W rozdziale 1: “Wst˛ep” zawarto wprowadzenie do tematyki pracy. Omówiono w nim znaczenie algorytmów przetwarzania, analizy i rozumienia obrazów w nauce i technice oraz krótko scharakteryzowano dost˛epne współcze´snie platformy obliczeniowe. Podano tez˙ cele, tez˛e oraz ramowa˛ metodologi˛e prowadzonych bada´n oraz przedstawiono zawarto´sc´ rozprawy. W rozdziale 2: “Budowa oraz metody projektowania logiki dla układów FPGA” zaprezentowano krótkie kompendium na temat budowy oraz metod projektowania logiki FPGA. Ponadto zawarto w nim opis sposobu realizacji i implementacji projektu w programie ISE, który był wykorzystywany w prezentowanych badaniach. Celem rozdziału jest przedstawienie czytelnikowi poj˛ec´ i informacji niezb˛ednych do swobodnej lektury dalszej cz˛es´ci rozprawy oraz analizy prezentowanych wyników. W rozdziale 3: “Implementacja algorytmów kryptograficznych w układach FPGA na przykładzie algorytmu CLEFIA” zawarto: analiz˛e literatury dotyczacej ˛ implementacji algorytmów kryptograficznych w układach reprogramowalnych, opis algorytmu kryptograficznego CLEFIA, omówienie jego implementacji w układzie FPGA oraz weryfikacji na platformie sprz˛etowej RC 100. W rozdziale 4: “Implementacja zaawansowanych metod przetwarzania obrazów w układach FPGA na przykładzie algorytmu PGF” przedstawiono: analiz˛e literatury dotyczacej ˛ sprz˛etowej implementacji algorytmów przetwarzania obrazów, a w szczególno´sci filtracji obrazów, opisano algorytm PGF oraz jego implementacj˛e w układzie FPGA, przeprowadzono analiz˛e wypływu dokonanych uproszcze´n i modyfikacji na rezultaty filtracji oraz omówiono testy na dwóch platformach sprz˛etowych RC 100 i ML 605. W rozdziale 5: “Implementacja operacji binaryzacji lokalnej jako przykład wykorzystania j˛ezyka wysokiego poziomu w programowaniu logiki układu FPGA” zawarto: opis algorytmu binaryzacji lokalnej w dwóch wersjach (prostej i autorstwa Sauvoli), omówienie projektowania logiki z wykorzystaniem narz˛edzia Mitrion-C oraz implementacja˛ róz˙ nych wariantów algorytmu binaryzacji lokalnej wraz z dyskusja˛ wyników. W rozdziale 6: “Implementacja operacji analizy obrazu na przykładzie zaawansowanej generacji tła i segmentacji obiektów” zaprezentowano obszerne badania dotyczace ˛ tematyki detekcji obiektów z wykorzystaniem metod generacji tła i zaawansowanej segmentacji. W pierwszej cz˛es´ci dokonano przegladu: ˛ prac badawczych na temat realizacji metod analizy obrazów w układach FPGA, metod generacji tła oraz literatury zwiazanej ˛ z ich implementacja˛ sprz˛etowa˛ w układach rekonfigurowalnych. Nast˛epnie opisano przeprowadzone badania, które podzielone były na kilka etapów: analiz˛e algorytmów generacji tła z uwzgl˛ednieniem zapotrzebowania na dost˛ep do zewn˛etrznej pami˛eci RAM, implementacj˛e sprz˛etowa˛ metody klasteryzacji wraz z segmentacja˛ oparta˛ o integracj˛e jasno´sci, koloru i tekstury (operator SILTP), uruchomienie na karcie SP 605, krytyczna˛ analiz˛e rozwiazania ˛ wraz z wprowadzeniem poprawek (dodanie informacji o kraw˛edziach do modelu tła, badania nad wymagana˛ precyzja˛ liczb stałoprzecinkowych, porównanie róz˙ nych operatorów teksturowych), w rezultacie której powstała nowa wersja algorytmu z operatorem teksturowym NGD, testy rozwiazania ˛ wraz z implementacja˛ na karcie ML 605, T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(16) 1.3. Zawarto´sc´ rozprawy. 12. realizacj˛e uproszczonej, jednowariantowej generacji tła z zaawansowana˛ segmentacja˛ oparta˛ o binaryzacj˛e warunkowa.˛ W rozdziale 7: “Implementacja sprz˛etowa algorytmów wykorzystywanych w zaawansowanych systemach monitoringu wizyjnego” przedstawiono trzy systemy stosowane w zaawansowanym monitoringu wizyjnym: detekcj˛e naruszenia strefy zabronionej, detekcj˛e głowy i barków z wykorzystaniem cech LBP i klasyfikatora SVM oraz wykrywanie sabotaz˙ u kamery. We wszystkich modułach wykorzystano wyniki bada´n z rozdziału 6 tj. generacj˛e tła i segmentacj˛e obiektów. Ponadto w przypadku drugiego tematu przeprowadzono obszerne badania nad deskryptorem cech LBP, a dla trzeciego zagadnienia wykonano dogł˛ebne badania literaturowe oraz zaproponowano własny algorytm, który nast˛epie zaimplementowano w układzie FPGA. W rozdziale 8: “Podsumowanie” wskazano najwaz˙ niejsze osiagni˛ ˛ ecia pracy, zaprezentowano wnioski oraz dalsze kierunki bada´n.. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(17) 2. Budowa oraz metody projektowania logiki dla układów FPGA. W niniejszym rozdziale omówiono krótko budow˛e oraz metody projektowania logiki dla układów FPGA. Celem tej prezentacji jest skrótowe przedstawienie podstawowych informacji o technologii układów programowalnych, które sa˛ platforma˛ wykorzystywana˛ w rozprawie do implementacji algorytmów szyfrowania, przetwarzania i analizy obrazów. Omówione poniz˙ ej typy zasobów, uz˙ ywane sa˛ w implementacjach modułów sprz˛etowych. Dane ilo´sciowe o ich wykorzystaniu, obok parametrów czasowych i cz˛estotliwo´sciowych oraz rozpraszanej mocy lub uz˙ ywanej energii, sa˛ istotnym parametrem kaz˙ dego ze zrealizowanych modułów i zostały kaz˙ dorazowo zaprezentowane i omówione. Bardziej szczegółowe informacje dotyczace ˛ podstaw budowy i projektowania logiki układów FPGA dost˛epne sa˛ w ksia˛z˙ kach [135] oraz [136], a takz˙ e na stronach internetowych najwi˛ekszych producentów: Xilinx [187] oraz Altera [5]. Układy FPGA (ang. Field Programmable Gate Array) zalicza si˛e do programowalnych układów logicznych PLD (ang. Programmable Logic Devices). Wyróz˙ nia je moz˙ liwo´sc´ okre´slenia funkcji, przez uz˙ ytkownika po wyprodukowaniu1 . W szczególno´sci konfigurowanie moz˙ e przebiega´c wielokrotnie i moz˙ e odbywa´c si˛e bez wykorzystania specjalistycznego sprz˛etu, nawet po montaz˙ u w docelowym urza˛ dzeniu. Pierwsze układy FPGA pojawiły si˛e w połowie lat 80-tych XX wieku. Od tamtej pory moz˙ na zaobserwowa´c ich systematyczny rozwój, co zostało zilustrowane w tabelach 2.1 i 2.2 na przykładzie układów Virtex i Spartan firmy Xilinx. Układy Virtex to seria wysokowydajna, przeznaczona dla najbardziej wymagajacych, ˛ jednostkowych aplikacji. Seria Spartan (a od roku 2011, wraz z wprowadzeniem układów siódmej generacji: Artix i Kintex) to układy o nieco gorszych parametrach, ale duz˙ o ta´nsze i bardziej energooszcz˛edne, przeznaczone do stosowania w urzadzeniach ˛ produkowanych w dłuz˙ szych seriach. W tabelach porównano trzy parametry: liczb˛e komórek Logic Cells 2 , rozmiar pami˛eci rozproszonej (ang. Distributed RAM) oraz rozmiar pami˛eci blokowej (ang. Block RAM - BRAM). Dane zaprezentowano dla układu najmniejszego i najwi˛ekszego z danej serii. Wyst˛epowanie dwóch wartos´ci w komórce tabeli oznacza, z˙ e układ o najwi˛ekszym rozmiarze pod wzgl˛edem Logic Cells nie jest najwi˛ekszym pod wzgl˛edem rozmiaru pami˛eci. 1 2. okre´slenie funkcji odbywa si˛e na na drodze konfigurowania zasobów układu porównywanie pojemno´sci układów FPGA odbywa si˛e za pomoca˛ wielko´sci Logic Cells, która jest odpowiednikiem ty-. powego zestawu: 4-bitowy LUT i przerzutnik. Przykładowo, w układach Xilinx serii 6 przyj˛eto stosunek Logic Cells do liczby 6-bitowych LUT’ów jako 1,6:1. Wcze´sniej posługiwano si˛e poj˛eciem Logic Gate (bramka logiczna) do podawania rozmiarów układu.. 13.

(18) 14. Tabela 2.1: Porównanie zasobów dla układów FPGA serii Virtex firmy Xilinx Logic Cells. Distributed RAM [Kb]. Block RAM [Kb]. Min. Max. Min. Max. Min. Max. Virtex (1998r.). 1728. 27648. 24. 384. 32. 128. Virtex-E (1999r.). 1728. 73008. 24. 1014. 64. 832. Virtex II (2000r.). 576. 104832. 8. 1456. 72. 3024. Virtex II Pro (2002r.). 3168. 99216. 44. 1378. 216. 7992. Virtex 4 (2004r.). 13824. 200448. 796. 1392. 864. 6048 (9936). Virtex 5 (2006r.). 19862. 330000. 210. 3420 (4200). 936. 11664 (18576). Virtex 6 (2009r.). 74496. 758784. 1045. 8280. 5616. 25920(38304). Virtex 7 (2011r.). 326400. 1954560. 4388. 21550. 27000. 46512 (67680). Rysunek 2.1: Porównanie zasobów dost˛epnych w najwi˛ekszych układach serii Virtex firmy Xilinx Tabela 2.2: Porównanie zasobów dla układów FPGA serii Spartan oraz Kintex i Artix firmy Xilinx Logic Cells. Distributed RAM [Kb]. Block RAM [Kb]. Min. Max. Min. Max. Min. Max. Spartan II (2000). 432. 5292. 6. 73,5. 16. 56. Spartan 3E (2005). 1584. 53712. 11. 373. 54. 2268. Spartan 6 (2009). 3840. 147443. 75. 1355. 216. 4824. Kintex 7 (2011). 65600. 477760. 838. 6788. 4860. 34380. Artix 7 (2011). 16000. 2153600. 208. 2888. 1080. 13140. Dane dla najwi˛ekszych układów zaprezentowano w formie wykresów na rysunkach 2.1 i 2.2. Ilustruja˛ one ogólny trend systematycznego zwi˛ekszania pojemno´sci układów FPGA, co umoz˙ liwia realizacj˛e coraz bardziej złoz˙ onych projektów, w tym implementacj˛e algorytmów przetwarzania i analizy obrazów. Warto przy tym zauwaz˙ y´c, z˙ e ogólna koncepcja budowy pozostaje niezmienna. Podstawowym T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(19) 2.1. Budowa układów FPGA. 15. Rysunek 2.2: Porównanie zasobów dost˛epnych w najwi˛ekszych układach serii Spartan oraz Kintex i Artix firmy Xilinx elementem układu FPGA jest matryca konfigurowalnych bloków logicznych oraz konfigurowalne zasoby połaczeniowe. ˛ Dodatkowo, układy wyposaz˙ one sa˛ w wbudowane pami˛eci RAM (Block RAM), moduły do zarzadzania ˛ sygnałem zegarowym, moduły DSP, interfejsy wej´scia i wyj´scia, kontrolery magistrali PCI Express i pami˛eci RAM DDR3. Współcze´snie rynek układów FPGA zdominowany jest przez dwie duz˙ e firmy Xilinx [187] i Altera [5]. W pracach opisanych w niniejszej rozprawie korzystano z układów oraz oprogramowania firmy Xilinx.. 2.1. Budowa układów FPGA Budow˛e układów FPGA omówiono na przykładzie układu Virtex 6 firmy Xilinx, gdyz˙ był on wykorzystywany w wi˛ekszo´sci eksperymentów opisanych w niniejszej pracy. Dla pozostałych układów wspomnianych w rozprawie: Virtex II Pro, Virtex 4 i Spartan 6 ograniczono si˛e do wskazania róz˙ nic w stosunku do układu Virtex 6. Podstawowym elementem, z którego zbudowany jest układ FPGA, to blok CLB (ang. Configurable Logic Block). Złoz˙ ony on jest z dwóch elementów Slice i połaczony ˛ bezpo´srednio z matryca˛ przełacze´ ˛ n (ang. Switch Matrix). Zostało to pokazane na rysunku 2.3. Widoczne linie CIN i COUT, to szybka logika przeniesienia, wykorzystywana przy realizacji operacji arytmetycznych. Schemat budowy pojedynczego Slice’u zamieszczono na rysunku 2.4. Złoz˙ ony on jest z nast˛epuja˛ cych elementów: – generator funkcyjny (4 sztuki) — został zrealizowany jako LUT (ang. look-up table) posiadajacy ˛ 6 wej´sc´ i dwa niezalez˙ ne wyj´scia. Zatem moz˙ liwe jest zaimplementowanie: 6-wej´sciowej funkcji logicznej, dwóch 5-wej´sciowych funkcji logicznych (ze wspólnym wej´sciem), dwóch funkcji logicznych z 3 i 2 wej´sciami. Ponadto multipleksery umoz˙ liwiaja˛ tworzenie funkcji 7- i 8wej´sciowych poprzez łaczenie ˛ elementów LUT. Generator funkcyjny moz˙ e zosta´c tez˙ skonfigurowany jako: T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(20) 16. 2.1. Budowa układów FPGA. ´ Rysunek 2.3: Schemat budowy bloku CLB. Zródło: materiały ze strony www.xilinx.com [187] – synchroniczna pami˛ec´ RAM, zwana pami˛ecia˛ rozproszona˛ (ang. Distributed RAM) — o róz˙ nym rozmiarze i liczbie portów od 1 do 4, przy czym jeden port umoz˙ liwia synchroniczny zapis i asynchroniczny odczyt, a pozostałe asynchroniczny odczyt, – 32-bitowy rejestr przesuwny wykorzystywany przy tworzeniu linii opó´zniajacych. ˛ – przerzutnik typu D (FF — ang. Flip-Flop) — 8 sztuk), – multipleksery — do łaczenia ˛ elementów LUT, – szybka logika przeniesienia — wykorzystywana przy realizacji operacji arytmetycznych.. FF. FF FF. FF FF. FF FF. FF. ´ Rysunek 2.4: Schemat budowy elementu Slice. Zródło: materiały ze strony www.xilinx.com [187] W starszych układach FPGA firmy Xilinx podział na bloki CLB i Slice’y jest inny. Zarówno dla układu Virtex II Pro, jak i Virtex 4 blok CLB składa si˛e z czterech Slice’ów, a kaz˙ dy z nich z dwóch T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(21) 2.1. Budowa układów FPGA. 17. 4-wej´sciowych elementów LUT oraz dwóch przerzutników. W układzie Spartan 6 budowa CLB jest taka sama jak w przypadku Virtex 6. Wyszczególnione róz˙ nice sa˛ istotne o tyle, z˙ e bezpo´srednie porównywanie uz˙ ycia zasobów dla układów starszych i nowszych nie jest moz˙ liwe, gdyz˙ róz˙ ne sa˛ elementy LUT i róz˙ na jest liczba Slice’ów w bloku CLB. W´sród pozostałych zasobów dost˛epnych w układzie FPGA Virtex 6 warto wymieni´c: – CMT (ang. Clock Managment Tiles) — bloki zarzadzania ˛ sygnałem zegarowym, które zapewniaja˛ generacj˛e róz˙ nych cz˛estotliwo´sci zegara, równomierna˛ propagacj˛e sygnału zegarowego oraz tłumienie zjawiska jitter (zakłócenia fazy zegara), – Block RAM (BRAM) — bloki dedykowanej dwuportowej pami˛eci RAM o rozmiarze 36 Kb, które moga˛ zosta´c równiez˙ skonfigurowane jako moduły FIFO, – DSP48E1 — moduły z mnoz˙ arka˛ 25 x 18 bitów oraz 48-bitowym akumulatorem. Posiadaja˛ jednostk˛e arytmetyczna,˛ która działa w trybie SIMD (ang. Single Instruction Multiple Data), co umoz˙ liwia jednoczesne wykonywanie operacji na dwóch danych 24-bitowych lub czterech 12bitowych, – Select I/O — zasoby wej´scia/wyj´scia, podzielone na banki po 40 ko´ncówek (tzw. pinów) (liczba banków zalez˙ y od typu, rozmiaru i obudowy układu). Moga˛ zosta´c skonfigurowane do pracy z wieloma standardami (pojedynczymi i róz˙ nicowymi): LVCMOS, LVTTL, HSTL, PCI, SSTL, LVDS i innym, – System Monitor — element, którego zadaniem jest monitorowanie temperatury układu FPGA oraz parametrów zasilania, – GTX Transceivers — moduły nadawczo-odbiorcze umoz˙ liwiajace ˛ szybka˛ transmisja˛ szeregowa˛ z pr˛edko´scia˛ 480 Mb/s i 6,6 Gb/s, – Zintegrowany moduł PCI Express — wspiera transmisj˛e z przepustowo´scia˛ 2,5 Gb/s i 5,0 Gb/s i liczba˛ linii 1, 2, 4, 8, – 10/100/1000 Mb/s Ethernet Controller — moduł, który implementuje warstw˛e łacza ˛ według systemu OSI (ang. Open System Interconnection). Zapewnia zgodno´sc´ z IEEE Std 802.3-2005. Dodatkowe zasoby dost˛epne w układzie Spartan 6 sa˛ bardzo zbliz˙ one. Podstawowa˛ róz˙ nic˛e stanowi dost˛epno´sc´ w Spartan 6 sprz˛etowego kontrolera zewn˛etrznej pami˛eci RAM oraz o połow˛e mniejszy rozmiar pojedynczego bloku pami˛eci Block RAM (18 Kb zamiast 36 Kb), a takz˙ e nieco gorsze parametry pozostałych modułów np. mniejsze pr˛edko´sci transmisji szeregowej w modułach GTX. W przypadku pozostałych układów róz˙ nice sa˛ bardziej istotne. Układ Virtex II Pro dysponuje: – modułami zarzadzania ˛ zegarem starszej generacji (DCM — ang. Digital Clock Manager), – pami˛eciami blokowymi o rozmiarze 18 Kb, – mnoz˙ arkami 18 × 18 — starsza wersja modułów DSP48, T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(22) 18. 2.2. Projektowanie logiki układów FPGA. Tabela 2.3: Porównanie zasobów dost˛epnych w układach FPGA wykorzystywanych w niniejszej rozprawie Virtex II. Virtex 4. Spartan 6. Virtex 6. Pro 100. LX 200. SLX 65T. LX 240 T. Logic Cells. 99216. 200448. 43661. 241152. Distributed RAM. 1378 Kb. 1392 Kb. 401 Kb. 3650 Kb. Block RAM. 7992 Kb. 6048 Kb. 2088 Kb. 14976 Kb. Mnoz˙ arki*. 444. 96. 58. 768. Transiwery*. 20. —. 4. 24. Kontroler PCIe. —. —. x1 Gen 1.1. x8 Gen 2. Kontroler RAM. —. —. 2. —. Wej´scia/wyj´scia. 1164. 960. 296. 720. Procesory PowerPC. 2. —. —. —. Zasób. *wielko´sc´ nie jest bezpo´srednio porównywalna z uwagi na róz˙ nice w budowie modułów. – modułami nadawczo-odbiorczymi RocketI/O — starsza wersja GTX Transceivers, – blokami procesora PowerPC 405. Układ Virtex 4 dysponuje: – modułami zarzadzania ˛ zegarem starszej generacji (DCM – ang. Digital Clock Manager), – pami˛eciami blokowymi o rozmiarze 18 Kb, – mnoz˙ arkami XtremeDSP Slices — starsza wersja DSP48, – modułami nadawczo-odbiorczymi RocketI/O — starsza wersja GTX Transceivers, W tabeli 2.3 zestawiono najwaz˙ niejsze parametry układów FPGA, które wykorzystywane były w pracach opisanych w niniejszej rozprawie.. 2.2. Projektowanie logiki układów FPGA Historycznie, pierwsze narz˛edzia do projektowania logiki FPGA (PLD) oparte były o znane z projektowania modułów elektronicznych edytory schematów. Jednakz˙ e wraz ze wzrostem złoz˙ ono´sci układów, a tym samym moz˙ liwo´scia˛ realizacji bardziej skomplikowanych projektów, metoda ta stała si˛e ucia˛z˙ liwa, trudna do testowania i czasochłonna. Podstawowym narz˛edziem wykorzystywanym w tworzeniu opisu logiki sa˛ j˛ezyki opisu sprz˛etu HDL (ang. Hardware Description Language). Pierwotnym zastosowaniem tych narz˛edzi był opis działania T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(23) 2.2. Projektowanie logiki układów FPGA. 19. układów elektronicznych dla potrzeb symulacji i dokumentacji. Moz˙ liwo´sc´ zamiany kodu na działajac ˛ a˛ architektur˛e, tj. tak zwana syntezowalno´sc´ , pojawiała si˛e znacznie pó´zniej. W odróz˙ nieniu od klasycznych j˛ezyków programowania wysokiego poziomu (np. C/C++, Java, C#), j˛ezyki wykorzystywane do projektowania sprz˛etu zawieraja˛ narz˛edzia do opisu zalez˙ no´sci czasowych oraz równoległo´sci. Kod HDL nie jest programem wykonywujacym ˛ zadane obliczenia, a formalizmem słuz˙ acym ˛ do opisu budowy (tzw. opis strukturalny) układu elektronicznego lub sposobu jego działania tj. wła´sciwo´sci funkcjonalnych (tzw. opis behawioralny). Ponadto w j˛ezyku HDL opisuje si˛e przepływ danych (sygnałów), a nie sekwencje instrukcji. Najbardziej rozpowszechnione sa˛ dwa j˛ezyki VHDL (ang. Very High Speed Integrated Circuits Hardware Description Language) powstały w 1987 roku na zlecenie Departamentu Obrony Stanów Zjednoczonych Ameryki i Verilog powstały w 1985r. Wszystkie moduły sprz˛etowe opisane w niniejszej rozprawie, za wyjatkiem ˛ binaryzacji lokalnej, wykonane zostały w j˛ezyku VHDL. W trakcie projektowania logiki w j˛ezyku HDL cz˛esto wykorzystuje si˛e konfigurowalne i parametryzowalne moduły sprz˛etowe tzw. Intellectual Property Core - IP Core. Cz˛es´cia˛ wykorzystywanego w niniejszej pracy narz˛edzia Xilinx ISE jest oprogramowanie Xilinx CORE Generator, które udost˛epnia szereg komponentów np. sumatorów, mnoz˙ arek oraz innych operatorów matematycznych w wersjach stało i zmiennoprzecinkowych, pami˛eci rozproszonych (ang. Distributed RAM), pami˛eci blokowych (ang. Block RAM), buforów FIFO, kontrolerów zewn˛etrznej pami˛eci RAM, kontrolerów magistrali PCI Express, SPI, CAN oraz Ethernet. Szereg modułów wykorzystywanych w niniejszej rozprawie powstał z wykorzystaniem narz˛edzia CORE Generator. J˛ezyki opisu sprz˛etu zalicza si˛e do narz˛edzi niskopoziomowych i sprawne posługiwanie si˛e nimi wymaga znajomo´sci zagadnie´n elektroniki cyfrowej oraz pewnego do´swiadczenia. Stanowi to przeszkod˛e w upowszechnieniu technologii FPGA, szczególnie jako akceleratorów obliczeniowych. Aby ja˛ wyeliminowa´c, od wielu lat trwaja˛ prace nad narz˛edziami syntezy wysokiego poziomu (HLS — ang. high-level synthesis). Ich celem jest najcz˛es´ciej stworzenie kompilatora j˛ezyka programowania wysokiego poziomu (zazwyczaj C/C++) do VHDL lub Verilog. Zakłada si˛e zwykle, z˙ e algorytm opisany w C/C++ powinien zosta´c bez z˙ adnych modyfikacji przekształcony na j˛ezyk HDL i zaimplementowany w układzie FPGA. Wybrane narz˛edzia wysokiego poziomu zestawiono poniz˙ ej: – Handel-C — narz˛edzie zaproponowane przez nieistniejac ˛ a˛ juz˙ firm˛e Celoxica. Obecnie wspierane przez Mentor Graphics [113], – Mitrion-C — narz˛edzie zaproponowane przez firm˛e Mitrionics [115]. Zostało uz˙ yte w niniejszej rozprawie w rozdziale 5, – Catapult-C — narz˛edzie zaproponowane przez firm˛e Mentor Graphics, a obecnie rozwijane przez firm˛e Calypto Design Systems [19], – Impulse-C — narz˛edzie zaproponowane przez firm˛e Impulse Accelerated Technologies [63], – Maxeler Compiler — narz˛edzie zaproponowane przez firm˛e Maxeler. Umoz˙ liwia realizacj˛e systemów programowo-sprz˛etowych. Firma dostarcza równiez˙ platformy sprz˛etowe dla realizacji oblicze´n wysokiej wydajno´sci — HPC (ang. High Performance Computing) [108], T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(24) 2.3. Etapy projektowania logiki FPGA za pomoca˛ pakietu ISE firmy Xilinx. 20. – Xilinx System Generator — biblioteka modułów sprz˛etowych dla popularnego pakietu MATLAB/Simulink [190], – Vivado — zaawansowany pakiet firmy Xilinx [187], wyposaz˙ ony mi˛edzy innymi w narz˛edzie do syntezy kodu C/C++ lub System C, – HDL Coder — narz˛edzie umoz˙ liwiajace ˛ konwersj˛e skryptów napisanych w pakiecie MATLAB oraz schematów z narz˛edzia Simulink do kodu VHDL lub Verilog [107], – LabView — popularny pakiet firmy National Instruments wspiera programowanie układów FPGA [121]. Warto podkre´sli´c, z˙ e dziedzina narz˛edzi HLS rozwija si˛e bardzo dynamicznie. Skutkuje to cz˛esto do´sc´ krótkim cyklem z˙ ycia danych narz˛edzi. Ponadto na podstawie analizy literatury naukowej dotycza˛ cej tematyki FPGA w przetwarzaniu i analizie obrazów trudno wskaza´c, które z narz˛edzi jest cz˛es´ciej wykorzystywane niz˙ inne, gdyz˙ wi˛ekszo´sc´ implementacji wykonywana jest w j˛ezykach opisu sprz˛etu VHDL i Verilog, a inne technologie pojawiaja˛ si˛e raczej sporadycznie.. 2.3. Etapy projektowania logiki FPGA za pomoca˛ pakietu ISE firmy Xilinx Etapy projektowania logiki za pomoca˛ pakietu ISE firmy Xilinx zaprezentowano schematycznie na rysunku 2.5. Symulacja: - ISim, -ModelSim.. Stworzenie projektu. Poprawa implementacji. Synteza. Wprowadzanie ograniczeń. Implementacja. Analiza implementacji: - Timing Analyzer, - XPower Analyzer, - ChipScope PRO.. ´ Rysunek 2.5: Projektowanie logiki FPGA za pomoca˛ pakietu ISE firmy Xilinx. Zródło: materiały ze strony www.xilinx.com [187] W pierwszym etapie tworzony jest projekt, a nast˛epnie tworzone lub dodawane sa˛ pliki z´ ródłowe tj. pliki VHDL lub Verilog, schematy, netlisty 1 moduły IP Core, softprocesory (np. Microblaze), moduły DSP. 1. opis instancji modułów, ich atrybutów oraz połacze´ ˛ n, przykłady to pliki NGC i EDIF. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(25) 2.3. Etapy projektowania logiki FPGA za pomoca˛ pakietu ISE firmy Xilinx. 21. Nast˛epnie projekt poddawany jest syntezie. Na podstawie plików wej´sciowych tworzona jest specyficzna dla danego układu FPGA netlista (plik NGC). Dołaczane ˛ sa˛ równiez˙ dodatkowe ograniczenia uz˙ ytkownika (ang. user constraints ) np. dotyczace ˛ sygnału zegarowego lub rozmieszczenia elementów. W rezultacie, oprócz pliku NGC, powstaja: ˛ – raport z syntezy — zawierajacy ˛ wst˛epne okre´slenie zuz˙ ywanych zasobów logicznych i spodziewanej maksymalnej cz˛estotliwo´sci pracy oraz wszelkie komunikaty i ostrzez˙ enia kompilatora, – schemat RTL (ang. Register Transfer Level— schemat, na którym pokazany jest przepływ danych pomi˛edzy rejestrami i operacje logiczne wykonywane na tych danych, – schemat technologiczny — prezentacja pliku NGC w formie schematu, który zawiera elementy specyficzne dla danej technologii oraz układu FPGA tj. LUT, przerzutniki, moduły wej´scia/wyjs´cia. Proces syntezy podzielony jest na trzy fazy: – parsowanie HDL — sprawdzanie poprawno´sci składni kodu HDL, – synteza HDL — w kodzie HDL identyfikowane sa˛ typowe moduły sprz˛etowe lub makra (multipleksery, pami˛eci RAM, sumatory, mnoz˙ arki), a takz˙ e maszyny stanowe, – optymalizacja niskopoziomowa — wyodr˛ebnione w poprzednim kroku elementy dopasowywane sa˛ do zasobów układu FPGA tj. elementów LUT, przerzutników, logiki przeniesienia, pami˛eci blokowych i rozproszonych, multiplekserów oraz mnoz˙ arek sprz˛etowych. Projektant moz˙ e skorzysta´c z dodatkowych parametrów — ogranicze´n uz˙ ytkownika (ang. user constraint) Słuz˙ a˛ one do poprawy wydajno´sci projektowanej logiki. Wyróz˙ nia si˛e trzy główne grupy ogranicze´n: – czasowe — słuz˙ a˛ do okre´slania okresu oraz opó´znienia przy wprowadzaniu lub wyprowadzaniu sygnału zegarowego. Zwykle działaja˛ globalnie tj. dla całej domeny zegarowej, ale moz˙ na równiez˙ okre´sla´c ograniczenia lokalne, – rozmieszczenia — moz˙ liwe jest okre´slenie rozmieszczenia elementów typu Block RAM, DSP48, LUT, przerzutników, wej´sc´ /wyj´sc´ , – syntezy — słuz˙ a˛ do okre´slania parametrów procesu syntezy. Przykładowo do kontrolowania mechanizmu duplikowania rejestrów lub wykorzystania multiplekserów. Po syntezie i stworzeniu ogranicze´n, projekt poddawany jest procesowi implementacji, który podzielony jest na cztery etapy: – translacj˛e — łaczenie ˛ wszystkich wej´sciowych netlist i ogranicze´n uz˙ ytkownika. W rezultacie powstaje plik NGD (ang. Native Generic Database), – mapowanie — przekształcenie pliku NGD na elementy FPGA, takie jak bloki CLB lub I/O, T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(26) 2.3. Etapy projektowania logiki FPGA za pomoca˛ pakietu ISE firmy Xilinx. 22. – rozmieszczanie i łaczenie ˛ (ang. place & route) — na podstawie rezultatów mapowania dokonywane jest rozmieszczanie i łaczenie ˛ elementów w docelowym układzie FPGA, – generowanie pliku konfiguracyjnego — rozmieszczona i połaczona ˛ logika jest przekształcana do binarnego pliku konfiguracyjnego FPGA tj. pliku “bit”. Po implementacji moz˙ na przeanalizowa´c stworzony projekt, a w szczególno´sci: – sprawdzi´c czy ograniczenia uz˙ ytkownika zostały spełnione. – przeanalizowa´c uz˙ ywane zasoby logiczne, – przeanalizowa´c parametry czasowe, w szczególno´sci maksymalna˛ cz˛estotliwo´sc´ zegara. Do bardziej szczegółowych analiz słuz˙ y narz˛edzie Timing Analyzer, – przeanalizowa´c rozpraszanie mocy za pomoca˛ narz˛edzia XPower Analyzer, – sprawdzi´c działanie logiki w układzie FPGA za pomoca˛ narz˛edzia ChipScope PRO. Na kaz˙ dym etapie implementacji projektu moz˙ na wykona´c symulacj˛e działania realizowanej logiki. Po stworzeniu modułu wykonuje si˛e symulacj˛e behawioralna,˛ podczas której analizowana jest funkcjonalno´sc´ bez uwzgl˛edniania zalez˙ no´sci czasowych. Bardziej dokładne modele symulacyjne tworzone sa˛ po translacji, mapowaniu oraz rozmieszczaniu i łaczeniu. ˛ Symulacje wykonuje si˛e za pomoca˛ narz˛edzi: ISim (wbudowanego w pakiet ISE) lub ModelSim (produkt firmy Mentor Graphics). W pracach opisanych w niniejszej rozprawie wykorzystywano obie aplikacje.. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

(27) 3. Implementacja algorytmów kryptograficznych w układach FPGA na przykładzie algorytmu CLEFIA. Kryptografia [gr. kryptos ’ukryty’ grapho ’pisz˛e’] to ogół metod utajniania informacji za pomoca˛ szyfrowania [141]. Wraz z kryptoanaliza,˛ która jest nauka˛ o łamaniu szyfrów, stanowi dziedzin˛e kryptologii. Istnieje juz˙ ponad 2000 lat. Za jeden z pierwszych szyfrów uznaje si˛e tzw. szyfr Cezara, którego działanie opiera si˛e na zast˛epowaniu kaz˙ dego znaku z tekstu jawnego (niezaszyfrowanego) litera˛ przesuni˛eta˛ o K pozycji w prawo lub lewo w alfabecie. Wraz z rozwojem matematyki oraz lingwistyki powstawały coraz bardziej złoz˙ one metody szyfrowania, oraz równolegle sposoby ich łamania. Od czasów staroz˙ ytnych do poczatków ˛ rozwoju Internetu, zarówno kryptografia, jak i kryptoanaliza zwiazane ˛ były z zabezpieczaniem korespondencji dla potrzeb wojska (przekazywanie rozkazów), wywiadu (transmisja meldunków, raportów) oraz dyplomacji (utajnianie korespondencji). Wraz z wprowadzeniem telegrafu w XIX wieku oraz łaczno´ ˛ sci radiowej na przełomie XIX i XX w. i towarzyszacemu ˛ im wzrostowi liczby przesyłanych wiadomo´sci okazało si˛e, z˙ e wykorzystywane algorytmy kryptograficzne maja˛ dwie zasadnicze wady: były zbyt skomplikowane (np. do uz˙ ycia na polu bitwy), a sam proces szyfrowania i deszyfrowania zbyt powolny. Stanowiło to bodziec do rozwoju maszyn szyfrujacych, ˛ poczatkowo ˛ mechanicznych, a pó´zniej elektrycznych i elektronicznych. Najbardziej znanym przykładem tego typu urzadzenia ˛ jest Enigma. Fascynujaca ˛ historia rozwoju kryptografii i kryptoanalizy opisana została w ksia˛z˙ ce Davida Khana [77]. ´ Rozwój kryptologii po II Wojnie Swiatowej miał s´cisły zwiazek ˛ z post˛epem technicznym. Wraz z wprowadzeniem i rozpowszechnieniem si˛e komputerów pojawiała si˛e potrzeba utajniania przetwarzanych i przechowywanych za ich pomoca˛ danych. Jednak gwałtowne upowszechnienie kryptografii “cywilnej” nastapiło ˛ dopiero w wyniku rozwoju sieci Internet. Dzisiaj, za pomoca˛ róz˙ nego rodzaju szyfrów, zabezpiecza si˛e transakcje finansowe (dost˛ep do konta on-line, przelewy, e-zakupy itp.), poczt˛e elektroniczna˛ i inne dokumenty, rozmowy i wideorozmowy, podpisy elektroniczne, systemy zabezpieczania no´sników elektronicznych przed nieautoryzowanym kopiowaniem DRM (ang. Digital Rights Management). Pomi˛edzy metodami kryptograficznymi wykorzystywanymi w przeszło´sci, a współczesnymi zachodzi jedna podstawowa róz˙ nica. Bezpiecze´nstwo tych pierwszych opierało si˛e na tajno´sci zarówno klucza szyfrujacego ˛ jak i samego algorytmu. Współcze´snie, cywilnie wykorzystywane algorytmy szyfrowania (np. DES, AES, RSA) sa˛ jawne i dobrze znane. Poufno´sc´ danych zapewnia utajnienie klucza oraz czas potrzebny na złamanie szyfru. Przykładowo, najprostszy atak na szyfr AES (ang. ang. Advanced Encryption Standard) [124] z kluczem o rozmiarze 128 bitów wymaga wykonania 2128 prób deszyfracji — tzw. atak brutalny (ang. brute force attack). Z wykorzystaniem współcze´snie dost˛epnej technologii 23.

(28) 24. obliczeniowej, atak ten jest nierealny. Istnieja˛ wprawdzie metody pozwalajace ˛ na obniz˙ enie złoz˙ ono´sci — przykład opisany w pracy [13], jednak redukcja z 2128 na 2126,1 nie wpływa w znaczacy ˛ sposób na bezpiecze´nstwo szyfru. Rozwój technologii, w tym równiez˙ układów reprogramowalnych, moz˙ e spowodowa´c, z˙ e algorytm kryptograficzny przestanie by´c bezpieczny. Przykładem jest szyfr DES (ang. ang. Data Encryption Standard) [123]. Powstał on w latach 70-tych XX wieku. W podstawowej wersji wykorzystywał klucz 56bitowy. Od momentu publikacji tego szyfru trwały prace nad opracowaniem ataku kryptoanalitycznego o złoz˙ ono´sci mniejszej niz˙ 256 . W okresie ponad 20 lat nie udało si˛e znale´zc´ metody znacznie lepszej od ataku brutalnego. Jednakz˙ e wzrost szeroko rozumianej mocy obliczeniowej spowodował, z˙ e wykonanie 256 deszyfrowa´n DES przestało by´c zadaniem nierealnym. Juz˙ w roku 1998 powstało urzadzenie ˛ EFF DES cracker (“Deep Crack”), które kosztowało 250000 $ i było w stanie złama´c szyfr w 56 godzin (we współpracy z obliczeniami rozproszonymi distributed.net w 22 godziny 15 min). W roku 2006, zbudowane przez zespoły naukowców z Bochum i Kiel urzadzenie ˛ COPACOBANA [54] oparte na 120 komercyjnych układach FPGA Xilinx Spartan 3 było w stanie złama´c szyfr w 7 do 13 dni. Urzadze˛ nie nowszej generacji COPACOBANA RIVYERA umoz˙ liwia złamanie szyfru w mniej niz˙ jeden dzie´n. Z uwagi na zmniejszajace ˛ si˛e koszty budowy urzadzenia ˛ zdolnego do kryptoanalizy DES oraz redukcj˛e potrzebnego czasu oblicze´n, szyfr został wycofany i zastapiony ˛ standardem AES. Algorytmy kryptograficzne moz˙ na podzieli´c na symetryczne i asymetryczne. W pierwszym przypadku do szyfrowania i deszyfrowania wykorzystywany jest ten sam klucz (lub klucze). Algorytmy te moz˙ na podzieli´c na strumieniowe (RC4, Rabbit, Salsa20), w których szyfrowanie tekstu jawnego obywa si˛e bit po bicie i blokowe (DES, 3 DES, AES, CLEFIA, Skipjack), w których szyfrowaniu podlegaja˛ bloki bitów (np. o długo´sci 64, 128). W algorytmach asymetrycznych uz˙ ywa si˛e dwóch rodzajów kluczy: prywatnego i publicznego, przy czym klucza prywatnego nie moz˙ na łatwo odtworzy´c na podstawie klucza publicznego. W tego typu szyfrach wykorzystuje si˛e tzw. operacje jednokierunkowe, które łatwo przeprowadzi´c w jedna˛ stron˛e, a bardzo trudno w druga.˛ Przykładem sa˛ mnoz˙ enie i faktoryzacja duz˙ ych liczb (algorytm RSA) lub pot˛egowanie modulo i logarytmowanie dyskretne (algorytmy ElGamal, DSA i ECC). Wi˛ecej informacji na temat róz˙ nych algorytmów kryptograficznych odnale´zc´ moz˙ na w pozycjach [156], [125], [112]. Dla szyfrów blokowych wyróz˙ nia si˛e kilka trybów pracy opisanych w dokumencie [31]. Podstawowy to elektroniczna ksia˛z˙ ka kodowa (ECB ang. Electroinc Code Book). Polega on na niezalez˙ nym szyfrowaniu kaz˙ dego z bloków danych wej´sciowych. Zatem takie same bloki tekstu jawnego zostana˛ identycznie zaszyfrowane, co stanowi istotna˛ wad˛e metody. Bardziej zaawansowany tryb, to wiazanie ˛ bloków zaszyfrowanych CBC (ang. Cipher Block Chaining). Polega on na wykonywaniu operacji XOR pomi˛edzy blokiem danych wej´sciowych, a wektorem inicjalizacyjnym (w przypadku pierwszego bloku) lub poprzednio zaszyfrowanym blokiem (w pozostałych przypadkach). Metoda ta jest najbardziej popularna, jednakz˙ e nie jest moz˙ liwe wykonanie zrównoleglenia oblicze´n w tym trybie. Ponadto wyróz˙ nia si˛e tryb sprz˛ez˙ enia zwrotnego szyfru CFB (ang. Cipher Feedback), tryb sprz˛ez˙ enia zwrotnego wyj´scia OFB (ang. Output Feedback) oraz tryb licznikowy CTR (ang. Counter Mode). Szczegółowy opis odnale´zc´ moz˙ na w dokumencie [31]. T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych.

Cytaty

Powiązane dokumenty

W poniższej tabeli przedstawiono rozkład procentowy ich odpowiedzi (gwiazdką oznaczono od- powiedź poprawną). Naj- częściej wybieranym dystraktorem była odpowiedź A –

Uczestnicy przedsięwzięcia – dzieci, młodzież i ich ro- dzice i opiekunowie – będą mogli wziąć udział w krót- kich wykładach, warsztatach praktycznych, zajęciach

Ufam, że wyniki naszych badań choć w niewielkim stopniu przyczynią się do poznania wspaniałego daru języka, który dany jest człowiekowi i wspólnocie dla realizacji

Dysfunctions of the mitochondrial proteins lead to the mitochondrial diseases, which can be caused by muta- tions in mtDNA as well as in the nuclear genes.. Clinical features of

Obawy przed marginalizacją języka, jak i próby wyjaśniania, że będzie on jednym z języków urzędowych w Unii, to najczęściej pojawiające się tematy, które można odnaleźć

Only those countries whose average were significantly lower than the OECD average (Kazakhstan, Turkey, Qatar and the United Arab Emir- ates) showed a higher rate of change then

The aim of this research was to examine how critical thinking at junior high school level can be developed using the Internet as a source of information.. A group of second

Zgodnie z nimi Sarmata to ‘polski szlachcic wywodzący swe pochodzenie od starożytnych plemion, przy- wiązany do dawnych obyczajów’ [WSJP: 741], także ‘Polak starej