Rozszerzenia SIMD w przetwarzaniu obrazów**

Podobne dokumenty
Stronicowanie na ¹danie

Architektura komputerów

Rys Mo liwe postacie funkcji w metodzie regula falsi

CZY JEDNYM POSUNIÊCIEM DA SIÊ ROZWI ZAÆ WSZYSTKIE UK ADY DWÓCH RÓWNAÑ LINIOWYCH?

Dziedziczenie : Dziedziczenie to nic innego jak definiowanie nowych klas w oparciu o już istniejące.

API transakcyjne BitMarket.pl

Ethernet VPN tp. Twój œwiat. Ca³y œwiat.

Wyznaczanie charakterystyki widmowej kolorów z wykorzystaniem zapisu liczb o dowolnej precyzji

Steelmate - System wspomagaj¹cy parkowanie z oœmioma czujnikami

SPIS TREŒCI. Pismo w sprawie korzystania z pomocy finansowej ze œrodków funduszu restrukturyzacji banków spó³dzielczych.

Instalacja. Zawartość. Wyszukiwarka. Instalacja Konfiguracja Uruchomienie i praca z raportem Metody wyszukiwania...

EGZAMIN MATURALNY Z INFORMATYKI

Zarz¹dzanie pamiêci¹

Spe³nienie wymagañ czasu rzeczywistego w obrêbie rodziny sterowników PLC

PRZETWORNIK PROGRAMOWALNY NAPIÊCIA I PR DU STA EGO TYPU P20H

Wytyczne Województwa Wielkopolskiego

ZASADY REPRODUKCJI SYMBOLI GRAFICZNYCH PRZEDMOWA

gdy wielomian p(x) jest podzielny bez reszty przez trójmian kwadratowy x rx q. W takim przypadku (5.10)

Instrukcja obsługi platformy zakupowej e-osaa (klient podstawowy)

Projektowanie procesów logistycznych w systemach wytwarzania

PRZEPIĘCIA CZY TO JEST GROźNE?

Modelowanie œrodowiska 3D z danych pomiarowych**

Mikroprocesory rodziny INTEL 80x86

L A K M A R. Rega³y DE LAKMAR

PRAWA ZACHOWANIA. Podstawowe terminy. Cia a tworz ce uk ad mechaniczny oddzia ywuj mi dzy sob i z cia ami nie nale cymi do uk adu za pomoc

SYS CO. TYLU MENAD ERÓW ROCZNIE na ca³ym œwiecie uzyskuje kwalifikacje ILM

PLANY WYNIKOWE W ZAKRESIE III KLASY GIMNAZJUM. opracowane na podstawie materia³ów katechetycznych Jezus prowadzi i zbawia z serii W DRODZE DO EMAUS

IV. UK ADY RÓWNAÑ LINIOWYCH

Skanowanie trójwymiarowej przestrzeni pomieszczeñ

Odpowiedzialnoœæ buduje zaufanie ZNOR-2. Album projektów typowych rozdzielnic elektrycznego ogrzewania rozjazdów i oœwietleniowych

PADY DIAMENTOWE POLOR

Przetargi on-line to najlepsze rozwi¹zanie aby zredukowaæ wydatki

Programator pamięci EEPROM

CitiDirect EB - Mobile

(wymiar macierzy trójk¹tnej jest równy liczbie elementów na g³ównej przek¹tnej). Z twierdzen 1 > 0. Zatem dla zale noœci

Zintegrowane Systemy Zarządzania Biblioteką SOWA1 i SOWA2 SKONTRUM

3.2 Warunki meteorologiczne

Politechnika Warszawska Wydział Matematyki i Nauk Informacyjnych ul. Koszykowa 75, Warszawa

PREZENTACJA INFORMACJI FINANSOWEJ w analizach i modelowaniu finansowym. - dane z rynków finansowych DANE RÓD OWE

POMIAR STRUMIENIA PRZEP YWU METOD ZWÊ KOW - KRYZA.

Akcesoria: OT10070 By-pass ró nicy ciœnieñ do rozdzielaczy modu³owych OT Izolacja do rozdzielaczy modu³owych do 8 obwodów OT Izolacja do r

Jedyny w Polsce tak nowoczesny system. wyœwietlania tekstu oparty o TABLET 10,1

INSTRUKCJA DO PROGRAMU LICZARKA 2000 v 2.56

GEO-SYSTEM Sp. z o.o. GEO-RCiWN Rejestr Cen i Wartości Nieruchomości Podręcznik dla uŝytkowników modułu wyszukiwania danych Warszawa 2007

Implant ślimakowy wszczepiany jest w ślimak ucha wewnętrznego (przeczytaj artykuł Budowa ucha

BEZPRZEWODOWA MYSZ OPTYCZNA FLAT PRO INSTRUKCJA OBS UGI

Instrukcja obs³ugi optoizolowanego konwertera MCU-01 USB - RS232/485. Wersja 0.2

Mirosława Wasielewska Możliwości tworzenia zasobu mieszkań na wynajem we Wrocławiu. Problemy Rozwoju Miast 5/2-4,

Badanie bezszczotkowego silnika prądu stałego z magnesami trwałymi (BLDCM)

Kancelaris - Zmiany w wersji 2.50

Wytyczne Województwa Pomorskiego

System wizyjny do wyznaczania rozp³ywnoœci lutów

emszmal 3: Automatyczne księgowanie przelewów w sklepie internetowym Magento (plugin dostępny w wersji ecommerce)

HAŚKO I SOLIŃSKA SPÓŁKA PARTNERSKA ADWOKATÓW ul. Nowa 2a lok. 15, Wrocław tel. (71) fax (71) kancelaria@mhbs.

FORUM ZWIĄZKÓW ZAWODOWYCH

Wykonanie logo oraz napisów na elewacji wraz z montażem

1. Wstêp. 2. Metodyka i zakres badañ WP YW DODATKÓW MODYFIKUJ CYCH NA PODSTAWOWE W AŒCIWOŒCI ZAWIESIN Z POPIO ÓW LOTNYCH Z ELEKTROWNI X


WYKŁAD 8. Postacie obrazów na różnych etapach procesu przetwarzania

Jerzy Stopa*, Stanis³aw Rychlicki*, Pawe³ Wojnarowski*, Piotr Kosowski*

Zawory specjalne Seria 900

Wytyczne Województwa Dolnoœl¹skiego

Wtedy wystarczy wybrać właściwego Taga z listy.

tróżka Źródło:

Kompensacyjna funkcja internatu w procesie socjalizacji dzieci i m³odzie y upoœledzonych umys³owo

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

Zawory elektromagnetyczne typu PKVD 12 20

PRÓBNY EGZAMIN MATURALNY Z MATEMATYKI

Analiza w czasie rzeczywistym ruchu kamery wzglêdem sceny na podstawie analizy wektorów ruchu

ROZDZIA XII WP YW SYSTEMÓW WYNAGRADZANIA NA KOSZTY POZYSKANIA DREWNA

Akceleracja algorytmów przetwarzania obrazów z wykorzystaniem zasobów karty graficznej

AMPS Sterownik temperatur Instrukcja obs³ugi

WZORU UŻYTKOWEGO EGZEMPLARZ ARCHIWALNY. d2)opis OCHRONNY. (19) PL (n) Centralny Instytut Ochrony Pracy, Warszawa, PL

Ćwiczenie: "Ruch harmoniczny i fale"

Rozdział 6. Pakowanie plecaka. 6.1 Postawienie problemu

Telewizja publiczna z misją Opracowała: Anna Równy

Modem Thomson SpeedTouch 330

Jacek Mrzyg³ód, Tomasz Rostkowski* Rozwi¹zania systemowe zarz¹dzania kapita³em ludzkim (zkl) w bran y energetycznej

Spis treści. 1. Znak Konstrukcja symbolu Budowa znaku Kolorystyka wersja podstawowa Kolorystyka wersja czarno-biała...

OŚWIETLENIE PRZESZKLONEJ KLATKI SCHODOWEJ

revati.pl Drukarnia internetowa Szybki kontakt z klientem Obs³uga zapytañ ofertowych rozwi¹zania dla poligrafii Na 100% procent wiêcej klientów

Nawiewnik NSL 2-szczelinowy.

MMX i SSE. Zbigniew Koza. Wydział Fizyki i Astronomii Uniwersytet Wrocławski. Wrocław, 10 marca Zbigniew Koza (WFiA UWr) MMX i SSE 1 / 16

Ogólna charakterystyka kontraktów terminowych

Nowe funkcjonalności

N O W O Œ Æ Obudowa kana³owa do filtrów absolutnych H13

1. Wstêp... 9 Literatura... 13

Krótka informacja o instytucjonalnej obs³udze rynku pracy

Komunikat 16 z dnia dotyczący aktualnej sytuacji agrotechnicznej

Regulamin Krêgów Harcerstwa Starszego ZHR

Nowe głowice Hunter - DSP 700

Elementy cyfrowe i układy logiczne

Przygotowały: Magdalena Golińska Ewa Karaś

Współczesne nowoczesne budownictwo pozwala na wyrażenie indywidualnego stylu domu..

Innym wnioskiem z twierdzenia 3.10 jest

Formularz Zgłoszeniowy propozycji zadania do Szczecińskiego Budżetu Obywatelskiego na 2016 rok

Blokady. Model systemu. Charakterystyka blokady

PL-LS Pani Małgorzata Kidawa Błońska Marszałek Sejmu RP

Metoda LBL (ang. Layer by Layer, pol. Warstwa Po Warstwie). Jest ona metodą najprostszą.

BEZPRZEWODOWA ZESTAW OPTYCZNY PHANTOM INSTRUKCJA OBS UGI

Transkrypt:

AUTOMATYKA 2008 Tom 12 Zeszyt 3 Zbigniew Bubliñski*, Miros³aw Jab³oñski* Rozszerzenia SIMD w przetwarzaniu obrazów** 1. Wprowadzenie Przetwarzanie i analiza obrazów cyfrowych jest dzia³alnoœci¹ stosunkowo czasoch³onn¹ g³ównymi przyczynami takiego stanu rzeczy s¹ z jednej strony z³o one i wyrafinowane algorytmy, z drugiej zaœ wykorzystywana w nich ogromna iloœæ danych. O ile na samo skomplikowanie metod obróbki obrazów niewiele mo na poradziæ, to obróbkê du ej iloœci danych mo na w odpowiedni sposób usprawniæ, co pozwoli albo na skrócenie czasu przetwarzania, albo na u ycie lepszych, ale bardziej kosztownych czasowo procedur bez koniecznoœci zbytniego wyd³u ania ca³ego procesu. Takim usprawnieniem mo e byæ przyk³adowo realizacja ca³oœci analizy (lub jej wybranych fragmentów) na drodze sprzêtowej. Jest to jednak ma³o elastyczne i kosztowne podejœcie wiêkszoœæ istniej¹cych systemów przetwarzania i analizy obrazów cyfrowych ma charakter czysto programowy, wiêc usprawnieñ nale a³oby raczej szukaæ w lepszym dopasowaniu wykonywanego programu do mo liwoœci samego procesora. W dalszej czêœci niniejszej publikacji przedstawiono podstawowe informacje dotycz¹ce rozszerzeñ SIMD architektury procesora x86 oraz przyk³ad wykorzystania rozkazów MMX i SSE do szybkiej modyfikacji jasnoœci obrazu cyfrowego. Prace by³y prowadzone w œrodowisku VirtualDub [8], bowiem stanowi ono od d³u szego czasu jedno z najczêœciej wykorzystywanych narzêdzi w Laboratorium Biocybernetyki. 2. Rozszerzenia SIMD Rozszerzenia SIMD (Single Instruction, Multiple Data) pojawi³y siê jako próba wzbogacenia mo liwoœci klasycznego procesora o wykonywanie pewnych prostych instrukcji jednoczeœnie na kilku danych. Iloœæ przetwarzanych danych i rodzaj operacji zale y od poziomu ewolucyjnego procesora. Ju w procesorze Pentium pojawi³a siê mo liwoœæ wykonywania kilku niezbyt z³o onych instrukcji na danych bêd¹cych liczbami ca³kowitymi by³y to tzw. rozkazy MMX (MultiMedia extension albo MatrixMathematics extension [5]), a co * Katedra Automatyki, Akademia Górniczo-Hutnicza w Krakowie ** Praca zrealizowana w ramach badañ w³asnych umowa AGH nr 10.10.120.783 609

610 Zbigniew Bubliñski, Miros³aw Jab³oñski ciekawe do ich realizacji wykorzystano zasoby udostêpnione przez jednostkê zmiennoprzecinkow¹ (koprocesor matematyczny). Nastêpne procesory z rodziny x86 potrafi³y ju wykonywaæ operacje na liczbach zmiennoprzecinkowych, wykorzystuj¹c dedykowany do tego celu zasoby sprzêtowe procesora. Ogólna nazwa nowych rozszerzeñ to tzw. SSE (Streaming SIMD Extension), zaœ dodany numer identyfikowa³ poziom rozszerzeñ, a co za tym idzie, udostêpniane mo liwoœci w najnowszych procesorach wystêpuje kilka wariantów SSE4. Jak ju wspomniano, rozkazy MMX mog¹ dzia³aæ tylko na danych ca³kowitych [5, 7]. Wydaje siê to znacz¹cym ograniczeniem, ale w wielu zastosowaniach operacje ca³kowitoliczbowe s¹ zupe³nie wystarczaj¹ce. Przyk³adowo przetwarzanie sygna³ów multimedialnych (obraz, dÿwiêk) to jeden z takich obszarów. Rozszerzenie MMX pozwala na wykonywanie operacji na danych o maksymalnej wielkoœci 64 bitów, a wiêc zak³adaj¹c e przetwarzane dane s¹ jednobajtowe, mamy mo liwoœæ wykonania pewnych operacji jednoczeœnie na oœmiu danych (bajtach) tak jak to pokazano na rysunku 1. Rys. 1. Rozszerzenie MMX reprezentacja danych i przyk³adowa operacja Teoretycznie pozwoli³oby to na oœmiokrotne skrócenie czasu przetwarzania, ale jak wiadomo, praktyka zwykle odbiega od teorii istnieje kilka powa nych przeszkód znacz¹co utrudniaj¹cych wykorzystanie rozszerzeñ SIMD. Po pierwsze, lista operacji mo liwych do zrealizowania w sposób równoleg³y jest dosyæ ograniczona, a wiêc nie ka dy algorytm mo e byæ zaimplementowany w taki w³aœnie sposób. Po drugie, zwykle operacja SIMD wymaga odpowiedniego przygotowania danych zanim zostanie zrealizowana, dane musz¹ byæ przeniesione z pamiêci i w³aœciwie upakowane w rejestrach, zaœ po operacji trzeba dane rozpakowaæ i ponownie umieœciæ w pamiêci. Wi¹ e siê z tym dodatkowy nak³ad pracy (czasu) i w pewnych sytuacjach mo e siê okazaæ, e te dodatkowe czynnoœci trwaj¹ d³u ej, ni mo na zyskaæ poprzez równoleg³e przetwarzanie danych. Po trzecie i to chyba najwiêkszy problem dostêpne kompilatory jêzyków wysokiego poziomu nie najlepiej sobie radz¹ z generacj¹ kodu efektywnie wykorzystuj¹cego mo liwoœci samego procesora. Chc¹c wiêc uzyskaæ taki kod, konieczne jest napisanie ca³ego programu lub jego krytycznych czasowo

Rozszerzenia SIMD w przetwarzaniu obrazów 611 fragmentów, w jêzyku najni szego poziomu w asemblerze. W nastêpnym rozdziale przedstawiono operacjê zmiany jasnoœci obrazu zrealizowan¹ programowo za pomoc¹ filtrów dzia³aj¹cych w œrodowisku VirtualDub, zaœ istotne ze wzglêdu na czas ich wykonania czêœci kodów napisano w asemblerze wykorzystuj¹c rozkazy MMX oraz SSE2. 3. Zmiana jasnoœci obrazu w œrodowisku VirtualDub realizacja Modyfikacja jasnoœci monochromatycznego obrazu cyfrowego jest bardzo prost¹ operacj¹ i sprowadza siê do dodania pewnej sta³ej do wartoœci jasnoœci poszczególnych punktów obrazu [2, 3]. Komplikacje pojawiaj¹ siê w przypadku obrazów kolorowych najczêœciej spotykan¹ reprezentacj¹ barw jest RGB, czyli kolor ka dego punktu obrazu jest opisany trójk¹ liczb okreœlaj¹cych zawartoœæ poszczególnych sk³adowych barwnych (Red, Green, Blue). Przy takiej reprezentacji zmiana jasnoœci nie mo e ju byæ dokonana poprzez dodanie tej samej sta³ej do wartoœci poszczególnych sk³adowych, gdy ze wzglêdu na ró n¹ charakterystykê czu³oœci oka ludzkiego w ró nych zakresach widmowych, taka modyfikacja skutkowa³aby zmian¹ postrzeganej barwy punktu, a celem jest zmiana jasnoœci, a nie koloru. Aby w sensowny sposób przeprowadziæ tak¹ operacjê, konieczne jest przetransformowanie obrazu z przestrzeni RGB w inn¹ tak¹, w której jedn¹ ze sk³adowych bêdzie jasnoœæ. Warunek ten spe³nia kilka reprezentacji przyk³adowo HLS, HSV, YUV. W praktyce najczêœciej wykorzystywany jest jeden z wielu wariantów tej ostatniej, w której sk³adowa Y to w³aœnie jasnoœæ (luminancja) a U i V to sk³adowe chrominancyjne zawieraj¹ce informacjê o kolorze punktu. Dysponuj¹c ju reprezentacj¹ YUV, modyfikacja jasnoœci obrazu przebiega identycznie jak w przypadku obrazów monochromatycznych zmieniana jest tylko sk³adowa Y. Po dokonaniu modyfikacji konieczne jest przeprowadzenie transformacji odwrotnej, czyli powrót do reprezentacji RGB. Stosowne wzory transformacyjne mo na znaleÿæ w [1, 4, 6]. W œrodowisku VirtualDub wewnêtrzn¹ reprezentacj¹ obrazów kolorowych jest RGB. Z tego wzglêdu konieczne by³o dodanie do implementowanego filtru kodu realizuj¹cego transfomaty RGB->YUV i YUV->RGB, ale w niniejszym opracowaniu skupiono siê jedynie na samej modyfikacji jasnoœci. Poniewa w reprezentacji RGB ka dy piksel obrazu opisany jest 32 bitami (po osiem bitów na ka d¹ sk³adow¹ R, G, B i osiem bitów niewykorzystanych), przyjêto podobn¹ reprezentacjê obrazu w przestrzeni YUV, ale poszczególne sk³adowe przechowywane s¹ oddzielnie, co pozwala zmniejszyæ zapotrzebowanie na pamiêæ o 25%. Punktem wyjœcia by³o napisanie stosownej funkcji w jêzyku C, która realizuje modyfikacjê jasnoœci obrazu o zadan¹ wartoœæ, zgodnie z przedstawionymi wy ej za³o eniami. Funkcja ta i zmierzone czasy przetwarzania uzyskane przy jej u yciu stanowi¹ uk³ad odniesienia do kolejnych funkcji, napisanych w asemblerze jednej, wykorzystuj¹cej rozkazy MMX do jednoczesnej modyfikacji oœmiu punktów obrazu, oraz drugiej, w której u yto rozkazów SSE2, co pozwoli³o na jednoczesn¹ modyfikacjê szesnastu punktów obrazu.

612 Zbigniew Bubliñski, Miros³aw Jab³oñski 4. Wyniki testów Opracowane filtry przetestowano w œrodowisku VirtualDub, modyfikuj¹c jasnoœæ obrazów zawartych w trzech filmach w formacie AVI. Filmy ró ni³y siê liczb¹ klatek, rozmiarami klatek, a tak e zawartoœci¹. Ka dy z filmów by³ przetwarzany kilkukrotnie, za ka - dym razem jego jasnoœæ by³a zmieniana w innym stopniu. Czas przetwarzania (samej modyfikacji jasnoœci) by³ mierzony dla ka dej klatki, a nastêpnie czasy te zosta³y zsumowane, pozwalaj¹c uzyskaæ ³¹czny czas przetwarzania filmu. W kolejnym kroku uzyskane wyniki zosta³y uœrednione dla ka dego filmu. Na rysunku 2 pokazano œrodowisko VirtualDub w trakcie przetwarzania jednego z filmów. Rys. 2. Wygl¹d ekranu w czasie testów Testy przeprowadzono na dwóch komputerach typu PC pierwszy (oznaczony liter¹ A) by³ wyposa ony w wiekowy ju procesor AMD Athlon XP2000 (z zegarem 1667 MHz), drugi (oznaczony liter¹ B) w procesor Intel Q6600 (z zegarem 2400 MHz). Taki dobór sprzêtu mia³ z jednej strony pozwoliæ na ocenê przyspieszenia algorytmów poprzez wykorzystanie rozszerzeñ SIMD, z drugiej zaœ dostarczyæ informacji o tym, jak unowoczeœnienie

Rozszerzenia SIMD w przetwarzaniu obrazów 613 architektury procesora wp³ywa na realne czasy przetwarzania. Uzyskane wyniki zestawiono w tabeli 1. Brak wyników dla procesora A i instrukcji SSE2 wynika z faktu, e rozszerzenie SSE2 pojawi³o siê dopiero w procesorze Pentium 4. Tabela 1 Œrednie czasy przetwarzania porównanie metod Film 1 2 3 Procesor Filtr C [ms] Filtr ASM+MMX [ms] Przysp. Filtr ASM+SSE2 [ms] Przysp. A 54,71 17,02 3,2 B 27,99 3,59 7,8 1,86 15,0 A 38,06 12,08 3,1 B 19,04 2,44 7,8 1,27 16,0 A 257,27 83,72 3,1 B 128,81 16,54 7,8 8,60 15,0 Z przedstawionych wyników wyraÿnie widaæ, e samo u ycie nowoczeœniejszego i szybszego procesora bez zmiany algorytmu (mechanizmu przetwarzania) niewiele daje. Wykorzystanie kodu napisanego w czystym C na lepszym procesorze wi¹ e siê jedynie z mniej wiêcej dwukrotnym skróceniem czasu obliczeñ (wyniki w trzeciej kolumnie tabeli). Zdecydowanie lepsze rezultaty mo na uzyskaæ, wykorzystuj¹c rozszerzenia SIMD nawet na tym samym sprzêcie. U ycie rozkazów MMX w kodzie napisanym w asemblerze pozwala na skrócenie czasów przetwarzania od 3,1 raza dla procesora A a do prawie osiem razy dla procesora B. Jeszcze lepsze wyniki mo na uzyskaæ, stosuj¹c rozkazy SSE mo liwe jest wówczas oko³o piêtnastokrotne skrócenie czasu obliczeñ, choæ konieczna jest do tego odpowiednia infrastruktura (w miarê nowoczesny sprzêt). Œwiadczy to o du o lepszej efektywnoœci rozszerzeñ SIMD w stosunku do konwencjonalnych instrukcji wspó³czesnych procesorów. 5. Podsumowanie Wykorzystanie rozszerzeñ SIMD zawartych w architekturze wspó³czesnych procesorów pozwoli³o w znacz¹cy sposób przyspieszyæ czas przetwarzania obrazu cyfrowego. Warto zwróciæ uwagê, e wykorzystanie tych mechanizmów umo liwi³o uzyskanie znacznie lepszych rezultatów ni w sytuacji, gdy u yto nowoczeœniejszego i szybszego procesora realizuj¹cego klasyczny algorytm. Otrzymanie takich wyników wymaga pewnej dodatkowej pracy, jest czasoch³onne zw³aszcza na etapie uruchamiania kodu oraz znacz¹co zmniejsza przenaszalnoœæ kodu, jednak skutecznie przyspiesza dzia³anie ca³ego systemu przetwarzania i analizy obrazów.

614 Zbigniew Bubliñski, Miros³aw Jab³oñski Literatura [1] Keith J., Video Demystified: A Handbook for the Digital Engineer. 5th Edition, Elsevier 2005. [2] Parker J.R., Algorithms for Image Processing and Computer Vision. New York, Wiley Computer Publishing 1997. [3] Pratt W.K., Digital Image Processing. New York, John Wiley & Sons, Inc., 1991. [4] Skarbek W., Metody reprezentacji obrazów cyfrowych. Warszawa, Akademicka Oficyna Wydawnicza PLJ 1993. ród³a internetowe: [5] INTEL Corp. www.intel.com [6] Konwersja YUV-RGB http://www.fourcc.org/fccyvrgb.php [7] MMX Primer http://www.tommesani.com/mmxprimer.html [8] VirtualDub http://www,virtualdub.org