• Nie Znaleziono Wyników

Stałoprzecinkowa implementacja binaryzacji lokalnej metod ˛ a Sauvola

W dokumencie Index of /rozprawy2/10579 (Stron 74-77)

5. Implementacja operacji binaryzacji lokalnej jako przykład wykorzystania j˛ezyka wyso-

5.3. Sprz˛etowa implementacja binaryzacji lokalnej w j˛ezyku Mitrion-C

5.3.5. Stałoprzecinkowa implementacja binaryzacji lokalnej metod ˛ a Sauvola

Implementacja operacji zmiennoprzecinkowych w układach FPGA wymaga du˙zych zasobów logicz-nych. Zatem w kolejnym etapie bada´n skupiono si˛e na implementacji stałoprzecinkowej algorytmu bi-naryzacji lokalnej metod ˛a Sauvola. W pierwszym kroku nale˙zało wykona´c stałoprzecinkowe obliczanie pierwiastka kwadratowego. Funkcja sqrt dost˛epna w j˛ezyku Mitrion-C jest przeznaczona do realizacji operacji zmiennoprzecinkowych, dlatego konieczna była własna implementacja metody stałoprzecinko-wej. Wykorzystano algorytm obliczania pierwiastka kwadratowego opisany w pracy [138]. Zdecydo-wano si˛e na zaokr ˛aglenie wyniku operacji do liczby całkowitej. Nast˛epnie wykonano stałoprzecinkow ˛a wersj˛e obliczania progu binaryzacji (wzór (5.2)). Na podstawie przeprowadzonych bada´n wst˛epnych zdecydowano si˛e przeznaczy´c 8 bitów na zapis cz˛e´sci ułamkowej. W tabeli 5.2 zaprezentowano wyniki porównania metody z wzorcow ˛a implementacj ˛a w pakiecie MATLAB (kolumna Fixed), a w tabeli 5.4 zaprezentowano u˙zycie zasobów układu FPGA. Metoda stałoprzecinkowa okazała si˛e generowa´c dobre wyniki (wska´znik MRwBP 2, mniej ni˙z 0,1% ró˙znych pikseli), pozwalaj ˛ac na redukcj˛e potrzebnych za-sobów logicznych (12891 przerzutników mniej ni˙z wersja float 8.6). Ponadto rozwi ˛azanie wymaga mniej kroków, aby wykona´c przetwarzanie całego obrazu.

W toku dalszych bada´n stwierdzono, ˙ze zrealizowany moduł stałoprzecinkowego obliczania pier-wiastka kwadratowego wymaga wi˛ekszych zasobów logicznych ni˙z dost˛epna w j˛ezyku Mitrion-C funk-cja sqrt. Wynika to najprawdopodobniej z dobrej optymalizacji wbudowanego rozwi ˛azania. Zdecydo-wano si˛e zatem na wykonanie kolejnej implementacji algorytmu Sauvola, w której operacja pierwiast-kowania zrealizowana była jako zmiennoprzecinkowa, a dalsze obliczenia jako stałoprzecinkowe.

Wy-5.3. Sprz˛etowa implementacja binaryzacji lokalnej w j˛ezyku Mitrion-C 71

Tabela 5.4: Podsumowanie i porównanie rezultatów implementacji: metoda Sauvola — wersja stało-przecinkowa (symulator Mitrion-C)

Binaryzacja lokalna Sauvola

Fixed Fixed - TW* Fixed&Float Fixed&Float - TW* AD AD-TW* Liczba kroków 4740 613 4720 593 4678 551 Przerzutniki 54174 35208 53603 34637 34679 15713

Block RAM 108 97 108 97 108 97

Mno˙zarki 18 × 18 48 48 48 48 32 32

*zapis oznacza ró˙znic˛e pomi˛edzy implementacjami

niki, przedstawione w tabeli 5.2 (kolumna Fixed&Float), pokazuj ˛a, ˙ze pod wzgl˛edem działania opisana wersja jest bardzo zbli˙zona do omówionej wcze´sniej wersji stałoprzecinkowej. Wykorzystanie zasobów logicznych zaprezentowano w kolumnie Fixed&Float w tabeli 5.4. Analiza pokazuje, ˙ze wykorzysta-nie zmiennoprzecinkowego obliczania pierwiastka pozwoliło na wykorzysta-nieznaczne oszcz˛edno´sci w zasobach logicznych, przy identycznej liczbie kroków algorytmu.

W ostatnim etapie bada´n zdecydowano si˛e zamieni´c odchylenie standardowe na odchylenie bez-wzgl˛edne (5.5). Przeprowadzone w pakiecie MATLAB wst˛epne eksperymenty pokazały, ˙ze takie po-dej´scie nie prowadzi do znacznego pogorszenia rezultatów binaryzacji. Wykorzystanie odchylenia bez-wzgl˛ednego pozwala unikn ˛a´c potrzeby obliczania pierwiastka kwadratowego. Zatem wszystkie operacje, wyst˛epuj ˛ace w omawianym algorytmie, mog ˛a zosta´c zrealizowane jako stałoprzecinkowe. Wyniki prze-stawione w tabeli 5.2 (kolumna AD, pokazuj ˛a, ˙ze zaproponowane uproszczenie prowadzi do nieznacz-nego pogorszenia rezultatu binaryzacji. Współczynnik MRwBP wynosi 3 oraz mniej ni˙z 0,2% wszyst-kich pikseli ró˙zni si˛e od wzorca. Warto podkre´sli´c, ˙ze taka ró˙znica nie wpływa na dalsz ˛a analiz˛e obrazu — obraz referencyjny i uzyskany w wyniku realizacji opisanego algorytmu s ˛a praktycznie takie same, w szczególno´sci w trakcie oceny subiektywnej. Wyeliminowanie operacji pierwiastkowania pozwoliło na znaczn ˛a redukcj˛e zu˙zycia zasobów FPGA: 50% przerzutników i mno˙zarek 18 × 18 w porównaniu z wersj ˛a F 8.6 (tabela 5.4) oraz skrócenie oblicze´n o 85 kroków.

Warto podkre´sli´c, ˙ze układy rekonfigurowalne umo˙zliwiaj ˛a bardzo dobre dostosowanie modułu ob-liczeniowego wymaganego w danym algorytmie do realizowanych operacji (np. typ, szeroko´s´c danych). Ponadto takie modyfikacje s ˛a mo˙zliwe nawet w działaj ˛acym systemie. Tego typu elastyczno´s´c w reali-zacji oblicze´n nie jest mo˙zliwa przy wykorzystaniu procesorów ogólnego przeznaczenia GPP. Zatem nale˙zy stwierdzi´c, ˙ze w zastosowaniach, w których z jednej strony potrzebna jest du˙za elastyczno´s´c (nie dost˛epna dla rozwi ˛aza´n ASIC, które nie mog ˛a by´c modyfikowane po etapie produkcji), a z drugiej znaczna wydajno´s´c oblicze´n przy niskim zu˙zyciu energii, uzyskana dzi˛eki dostosowaniu architektury do realizowanego zadania (niemo˙zliwa w przypadku GPP), układy FPGA mog ˛a stanowi´c alternatyw˛e wobec innych ´srodowisk obliczeniowych.

T. Kryjak Implementacja zaawansowanych algorytmów przetwarzania, analizy i szyfrowania obrazów w układach reprogramowalnych

5.4. Podsumowanie 72

5.4. Podsumowanie

Zasadniczym celem prac przedstawionych w niniejszym rozdziale było sprawdzenie przydatno´sci j˛ezyka Mitrion-C i ´srodowiska obliczeniowego MVP w zadaniach przetwarzania i analizy obrazów. Wyniki bada´n pokazuj ˛a, ˙ze pomimo i˙z w zało˙zeniach j˛ezyk Mitrion-C jest niezale˙zny od technologii sprz˛etowych, to aby tworzy´c wydajne implementacje nale˙zy bra´c pod uwag˛e specyfik˛e ´srodowiska re-konfigurowlanego. Programista powinien zna´c podstawy budowy układów FPGA i mie´c do´swiadczenie w projektowaniu algorytmów równoległych, a tak˙ze my´sle´c raczej w kategoriach przepływu danych, ni˙z sekwencji instrukcji.

Implementacja algorytmu binaryzacji lokalnej, która w zmodyfikowanej wersji wykorzystywała rów-noległo´s´c oferowan ˛a przez układy FPGA, zu˙zywała o 50% mniej zasobów logicznych, ni˙z pierwsza wersja sekwencyjna. Binaryzacja lokalna metod ˛a Sauvola, która wymaga operacji na liczbach rzeczywi-stych, tak˙ze została zrealizowana w j˛ezyku Mitrion-C. Wykonano wersj˛e zmienno i stałoprzecinkow ˛a. Ponadto zaproponowano modyfikacj˛e algorytmu polegaj ˛ac ˛a na zast ˛apieniu odchylenia standardowego odchyleniem bezwzgl˛ednym. Pozwoliło to na du˙ze oszcz˛edno´sci w zu˙zyciu zasobów FPGA, przy prak-tycznie niezmienionych wynikach binaryzacji.

Realizacja operacji zmiennoprzecinkowych w Mitrion-C jest bardzo prosta. Zu˙zycie zasobów lo-gicznych silnie zale˙zy od wybranej liczby bitów przeznaczonych na mantys˛e i cech˛e. Odpowiedni dobór precyzji oblicze´n jest bardzo wa˙zny, gdy˙z pozwala uzyska´c po˙z ˛adane rezultaty (np. o zadanej dokładno-´sci), przy minimalnym wykorzystaniu zasobów logicznych.

Przydatno´s´c j˛ezyka Mitrion-C (w wersji 1.0) w przetwarzaniu obrazów jest ograniczona do aplika-cji, które wymagaj ˛a realizacji oblicze´n na pojedynczej ramce obrazu (obraz statyczny). Spowodowane jest to modelem przetwarzania danych, który zakłada odczyt danych wej´sciowych z jednej i zapis wy-ników do innej pami˛eci RAM. Realizacja schematu przedstawionego na rysunku 5.5a nie jest mo˙zliwa w analizowanej wersji j˛ezyka, z uwagi na brak wsparcia dla obsługi strumienia danych wej´sciowych i wyj´sciowych. Jednak nale˙zy tak˙ze zaznaczy´c, ˙ze implementacja wzgl˛ednie zło˙zonych algorytmów, wymagaj ˛acych oblicze´n na liczbach rzeczywistych, jest prosta i mniej czasochłonna ni˙z analogiczna im-plementacja za pomoc ˛a j˛ezyków HDL. Dodatkowo, doł ˛aczony do SDK graficzny symulator, pozwala na łatwe i intuicyjne analizowanie oraz poprawianie rozwi ˛azania.

Podsumowuj ˛ac przedstawione badania nale˙zy stwierdzi´c, ˙ze w przypadku przetwarzania obrazów u˙zyteczno´s´c j˛ezyka Mitron-C jest ograniczona, szczególnie w realizacji przetwarzania strumienia wideo. Dla takich aplikacji lepszym rozwi ˛azaniem wydaje si˛e by´c u˙zycie j˛ezyka HDL. Natomiast w aplika-cjach dla których narz˛edzie to zostało stworzone, tj. wysokowydajnych obliczeniach rekonfigurowalnych HPRC, nale˙zy je rozwa˙zy´c jako realn ˛a alternatyw˛e wobec implementacji w HDL, głównie z uwagi na wi˛eksz ˛a przyst˛epno´s´c i krótszy czas realizacji aplikacji.

6. Implementacja operacji analizy obrazu na przykładzie

W dokumencie Index of /rozprawy2/10579 (Stron 74-77)