• Nie Znaleziono Wyników

Procesory konwolucji .1 Ogólna struktura .1 Ogólna struktura

3 Klasyczne metody komputerowego przetwarzania obrazu

3.5 Realizacja funkcji przetwarzania obrazów przez specjalizowane procesory

3.5.4 Procesory konwolucji .1 Ogólna struktura .1 Ogólna struktura

Mianem "procesor konwolucji" określono tu procesor realizujący liniowe funkcje kontekstowe. Założono, że procesor konwolucji ma pracować w potoku obrób-czym na strumieniu danych video z kamery wizyjnej. Procesor ten oblicza i wstawia nową wartość punktu obrazowego w miejsce wartości dotychczasowej.

Nowa wartość punktu jest znormalizowaną sumą dotychczasowej wartości punktu i jego otoczenia, przemnożonych przez zestaw współczynników wagowych (nazy-wanych w podrozdziale 3.4.2 maskami), zada(nazy-wanych programowo. Konwolucja jest przekształceniem łącznym, to znaczy:

128 3 Klasyczne metody komputerowego przetwarzania obrazu

(f g h f g h∗ ∗ = ∗ ∗) ( )

W praktyce pozwala to, przy odpowiednim doborze współczynników, na podział dużych matryc filtrów na mniejsze części i filtrację w kilku przebiegach. Poniżej pokazano, na przykładzie wyrażenia macierzy konwolucji o rozmiarach 5 x 5 za pomocą dwóch macierzy o rozmiarach 3 x 3, na czym taka łączność polega.

Dzięki konsekwentnemu stosowaniu podanych zależności można z pomocą układów sprzętowych realizujących konwolucję uzyskiwać - zależnie od potrzeb - filtry o różnej wielkości obszaru, w którym dokonuje się operacji konteks-towych.

Do realizacji funkcji konwolucji w czasie rzeczywistym procesor potokowy musi być wyposażony w linie opóźniające, zapewniające ciągły przepływ potoku danych przy jednoczesnym dostępie do pełnego otoczenia analizowanego punktu (rys. 3.92). Wnosi to nie dające się eliminować opóźnienie równe czasowi trwania dwóch linii. Dokładność operacji kontekstowych zależy od wielkości analizo-wanego otoczenia punktu (np. 3x3, 5x5, 7x7). Wiąże się to z wyposażeniem procesora w odpowiednią liczbę linii opóźniających (odpowiednio: 2, 4, 6) i układów arytmetycznych (odpowiednio: 9, 25, 49 układów mnożących i 3, 5, 7 układów sumujących).

Rys. 3.92. Struktura procesora do realizacji funkcji kontekstowych.

W ostatnich latach, z uwagi na szybki rozwój dziedziny cyfrowej obróbki sygna-łów, gwałtownie rośnie liczba komercyjnie dostępnych rozwiązań scalonych

3.5 Realizacja funkcji przetwarzania obrazów przez specjalizowane procesory 129 procesorów konwolucji. W chwili obecnej istnieje już co najmniej kilka typów specjalizowanych procesorów sygnałowych, przeznaczonych wyłącznie do wyko-nywania tej operacji. Poniżej krótko scharakteryzowane zostaną trzy wybrane procesory konwolucji, pochodzące od różnych producentów.

3.5.4.2 Procesor HSP-48908

Procesor konwolucji HSP-48908 firmy Harris stanowi stosunkowo ubogie roz-wiązanie, jeśli chodzi o rozmiar aktywnego okna obróbki obrazu (rys. 3.93).

X X X X X X X X X

Rys. 3.93. Struktura blokowa procesora HSP48908.

130 3 Klasyczne metody komputerowego przetwarzania obrazu

Przy zastosowaniu pojedynczego układu można zaimplementować okno o roz-miarze 3×3 piksele. Istnieje możliwość kaskadowego łączenia układów, ale już dla okna o rozmiarze 5×5 pikseli należałoby zastosować aż 4 takie jednostki.

W przypadku tego procesora odpowiedni sposób kaskadowania umożliwia również obróbkę obrazów o większej niż 1024 piksele długości linii (wynikającej z maksy-malnej długości wewnętrznych cyfrowych linii opóźniających), co jednak rzadko ma zastosowanie w praktyce. Natomiast szczególnie ciekawą cechą tego procesora jest możliwość poddania strumienia danych wejściowych jednej z 19-tu różnych, programowalnych operacji arytmetyczno-logicznych oraz dodatkowo normalizacji danych (przesunięciu danych maksymalnie do 3 bitów w lewo lub prawo). Drugim argumentem operacji arytmetyczno-logicznych są stałe dla danego ciągu próbek zestawu wartości współczynników wag zaprogramowane wcześniej w rejestrze ALU przy pomocy zewnętrznego procesora nadrzędnego.

3.5.4.3 Procesor PDSP-16488

Całkowicie odmienne rozwiązanie architektury zastosowano w procesorze PDSP-16488 firmy Plessey. Architektura wewnętrzna procesora PDSP-16488 jest przedstawiona na rys. 3.94.

PROG

Rys. 3.94. Architektura wewnętrzna procesora PDSP16488.

3.5 Realizacja funkcji przetwarzania obrazów przez specjalizowane procesory 131 Jest to jednostka bardzo dobrze nadająca się do implementacji okien o dużych rozmiarach (aż do 8 × 8 w pojedynczym układzie) i do obróbki danych wej-ściowych o dużej dokładności (do 16 bitów). Architektura tego układu jest za-projektowana w sposób bardzo elastyczny, umożliwiający dostosowanie w sze-rokich granicach do aktualnych potrzeb użytkownika. Jednostka ta posiada jednak szereg ograniczeń. Ze względu na fakt, iż największą część powierzchni struktury tego typu układów zajmują cyfrowe linie opóźniające, nie jest możliwe równo-czesne wykorzystanie pełnej długości linii opóźniających (1024 piksele) i pełnego rozmiaru okna (8 × 8). Z kolei szczególny sposób wykonania bloku mnożarek, polegający na wielokrotnym wykorzystaniu każdej mnożarki podczas jednego okresu zegara danych, przy zwiększeniu dokładności do 16 bitów, implikuje zmniejszenie długości wewnętrznych linii opóźniających i rozmiaru okna. Powo-duje to także zmniejszenie maksymalnej prędkości przepływu strumienia danych przez układ. Podobnie jak układ HSP48908, tak i ten posiada możliwość kaskadowego łączenia kilku jednostek. Układ ten posiada dodatkowo nor-malizator danych (układ przesunięć) oraz prosty, dwustanowy komparator danych wyjściowych. Rys. 3.95. Architektura wewnętrzna procesora IMS A110.

Procesor konwolucji IMS-A110 firmy INMOS stanowi jedno z najwcześniejszych rozwiązań problemu implementacji konwolucji w strukturze hardware’owej.

Architektura wewnętrzna jest przejrzysta, a bardzo cennym jest umieszczenie w strumieniu danych wyjściowych bogato wyposażonego tzw. postprocesora, którego szerokie możliwości ułatwiają w znacznym stopniu zastosowanie tej jednostki w wielu różnorodnych aplikacjach. Zasadniczy człon procesora składa

132 3 Klasyczne metody komputerowego przetwarzania obrazu

się z trzech linii opóźniających o długości 1120 bajtów oraz trzech siedmio-stopniowych mnożarko-sumatorów. Jest on wyposażony (tak jak poprzednio omówione układy) w możliwość kaskadowego łączenia z innymi tego typu jed-nostkami w celu zwiększenia rozmiaru aktywnego okna lub zwiększenia dokład-ności danych i/lub współczynników konwolucji (rys. 3.95).

Na szczególną uwagę zasługuje wspomniany wcześniej układ postprocesora.

Składa się on z czterech bloków: bloku wejściowego (rejestr przesuwny, sumator kaskadowy), bloku monitora statystycznego (detektor wartości minimalnej i ma-ksymalnej oraz komparator z rejestrami przepełnienia/niedoboru), bloku for-mowania danych (układ transformacji i układ normalizacji danych) oraz bloku wyjściowego (sumatora i multipleksera wyjściowego).

Dodatkowo procesor A110 wyposażony jest w ośmiobitowy interfejs mikropro-cesora, służący do konfiguracji układu przez zapisanie odpowiednich danych sterujących do rejestrów wewnętrznych. Przestrzeń pamięciowa procesora obej-muje 512 lokacji adresowych.