Kompresja obrazu z wykorzystaniem transformaty Karhunena
Transkrypt
Kompresja obrazu z wykorzystaniem transformaty Karhunena
Łukasz Chmiel Rafał Poninkiewicz1 Kompresja obrazu z wykorzystaniem transformaty Karhunena-Loeve 1. Wst p Publikacja prezentuje metod kompresji obrazu z wykorzystaniem transformaty KLT (Karhunena-Loeve). Stworzenie odpowiedniego oprogramowania, opartego o t wła nie metod , pozwoliło rzetelnie oceni jej zalety i wady na tle innych metod. Wzorce do bada stanowiły litery alfabetu. Metod poddano ocenie w kontek cie wielko ci zniekształce przy okre lonym stopniu kompresji. Wyniki porównano z metod opart na autoasocjacyjnych sztucznych sieciach neuronowych. 2. Istota kompresji Istot kompresji jest zmniejszenie rozmiaru danych nie zmieniaj c (lub nieznacznie zmieniaj c) przy tym zawartych w nim informacji. Cz sto dane charakteryzuj si redundancj (nadmiarowo ci ) lub zawieraj powtarzaj ce si schematy, które mo na zapisa w inny sposób zmniejszaj c przy tym ich rozmiar. Szczególnie istotne jest zmniejszanie rozmiarów tzw. danych naturalnych takich jak d wi k czy obraz. Dane takie zapisywane w postaci cyfrowej bez u ycia jakichkolwiek technik kompresji cz sto maj ogromne rozmiary nawet przy dzisiejszych pojemno ciach twardych dysków. Dlatego wa ne jest zastosowanie odpowiedniego systemu, który pozwoli pój na kompromis pomi dzy utrat pewnych danych, które cz sto nie s tak istotne, a zachowaniem dobrej jako ci kompresowanych plików. 3. Rodzaje kompresji Kompresj dzielimy na dwa zasadnicze typy: stratn i bezstratn . Kompresja bezstratna charakteryzuje si dokładnym odwzorowaniem danych przed i po kompresji, inaczej mówi c podczas kompresowania jakiegokolwiek pliku nie tracimy adnych danych, które cz sto s dla nas cenne i nie mo emy sobie pozwoli na ich utrat . Kompresja stratna charakteryzuje si natomiast tym, e cz danych zostaje trwale usuni ta z kompresowanych plików, ale s to dane mniej istotne, utrata których nie powoduje znacznej utraty jako ci obrazów czy d wi ków. 1 Studenci III roku Informatyki i ekonometrii, Koło Naukowe Metod Sztucznej Inteligencji Wy szej Szkoły Zarz dzania i Administracji w Zamo ciu. Opiekun mgr in . Andrzej Burda Kompresja bezstratna jest najcz ciej wykorzystywana do archiwizacji danych (np. dokumentów, faktur itp.), które nie b d u ywane w najbli szym czasie, a konieczne jest ich magazynowanie. Pozwala to na zaoszcz dzenie przestrzeni dyskowych a tym samym kosztów. W niektórych typach danych kompresja bezstratna daje bardzo zadawalaj ce efekty, cz sto pliki tekstowe czy dokumenty elektroniczne zajmuj kilka lub nawet kilkunastokrotnie mniejszy rozmiar ni przed poddaniem ich kompresji. Do kompresji bezstratnej u ywane s m.in. nast puj ce metody: - kodowanie Huffmana, - Shannon –Fano, - algorytm LZ77, - algorytm LZS, - algorytm LZW, - algorytm RLE. 4. Kompresja obrazów Kompresja bezstratna jest tak e u ywana do kompresowania obrazów. Cz sto gdy pracuje si na obrazach konieczne jest u ywanie tego rodzaju metod oszcz dzania miejsca, aby nie traci kolejnych danych podczas ich zapisu. Dlatego istnieje wiele formatów plików graficznych stosuj cych kompresj bezstratn takich jak: TIFF, GIF, PNG. Bardzo wa nym elementem w kompresji grafiki jest otrzymanie mo liwie jak najmniejszego pliku przy jak najlepszej jako ci. Szczególnie wa ne jest to przy przesyłaniu grafiki np. poprzez email lub umieszczaniu jej na witrynach internetowych. Najcz ciej stosuje si stratny format JPEG lub bezstratn grafik GIF, a tak e coraz cz ciej PNG. Do kompresji obrazów i d wi ków wykorzystywana jest równie kompresja stratna. T metod nie ma sensu kompresowa tylko programu, których po dekompresji nie b dzie mo na u ywa ze wzgl du na brakuj ce dane. Dlaczego mo na pozwoli sobie na utrat pewnych danych w kompresji obrazów? Poniewa , wykorzystywane s niedoskonało ci ludzkiego wzroku czy słuchu. Człowiek bardziej dostrzega zmian jasno ci od zmiany barwy, je li w pobliskich pikselach zmienimy nieznacznie kolor czego nie sposób dostrzec, nie stracimy wiele na jako ci obrazu ale za to mo emy znacznie zmniejszy rozmiar zapisywanego pliku. Pozwala to na osi gni cie du o wi kszych (ni w przypadku kompresji bezstratnej) stopni kompresji. Niestety to rozwi zanie niesie ze sob tak e niemiłe konsekwencje, gdy ustawiony stopie kompresji jest na zbyt du ym poziomie wówczas utraconych zostaje zbyt wiele szczegółów i kompresowany obraz mo e sta si nieczytelny. Dlatego bardzo istotny jest dobór odpowiedniej dla nas metody kompresji przed zapisaniem obrazu. Do metod kompresji stratnej nale m.in.: - metody transformacyjne: KLT (Karhunena-Loeve), DCT (u ywana w JPG), - fraktalne, - wykorzystuj ce Sztuczne Sieci Neuronowe (SSN), - PCM. 5. Transformata Karhunena-Loeve’a Przed przyst pieniem do kompresji obrazu z wykorzystaniem metody KLT, nale y badany obraz podzieli na mniejsze podobrazy o wymiarach NxN pikseli. Nast pnie przekształci je w wektory o rozmiarze N 2 , post puj c według reguły: (1,1) (1,1) (2,1) (1,2) (2,2) (1,2) (2,1) (2,2) Otrzymane w taki sposób wektory mo na potraktowa wektora losowego jako realizacj pewnego X . Kolejny krok polega na wyznaczeniu macierzy kowariancji otrzymanego wektora losowego X . Nale y wykorzysta nast puj cy wzór: C x = cov( X ) = E{[ X − E ( X )][ X − E ( X )]T } gdzie: E (⋅) jest to operator u rednienia statystycznego. W celu obliczenia estymaty macierzy C x nale y najpierw wyliczy estymat warto ci redniej wektora losowego. Słu y do tego wzór: X = 1 K K X ( i ) k ,l i =1 gdzie: X (i ) k ,l - jest to element z podobrazu i (k – numer kolumny, l – numer wiersza), K – przedstawia nam liczb realizacji danego wektora losowego X . W nast pnym kroku nale y wyliczy , dla ka dego podobrazu, macierzy stanowi cej macierz estymaty macierzy kowariancji. W tym celu korzysta si przykładowego podobrazu o wymiarze 2x2): ze wzoru (dla (X1,1 − X1,1)(X1,1 − X1,1) (X1,1 − X1,1)(X2,1 − X 2,1) (X1,1 − X1,1)(X1,2 − X1,2 ) (X1,1 − X1,1)(X2,2 − X 2,2 ) (X2,1 − X 2,1)(X1,1 − X1,1) (X2,1 − X 2,1)(X2,1 − X 2,1) (X2,1 − X 2,1)(X1,2 − X 1,2 ) (X2,1 − X 2,1)(X2,2 − X 2,2 ) (X1,2 − X1,2 )(X1,1 − X1,1) (X1,2 − X1,2 )(X2,1 − X 2,1) (X1,2 − X1,2 )(X1,2 − X 1,2 ) (X1,2 − X1,2 )(X2,2 − X 2,2 ) (X2,2 − X 2,2 )(X1,1 − X1,1) (X2,2 − X 2,2 )(X2,1 − X 2,1) (X2,2 − X 2,2 )(X1,2 − X1,2 ) (X2,2 − X 2,2 )(X2,2 − X 2,2 ) Kolejnym krokiem jest wyliczenie estymaty macierzy kowariancji podobrazów z całego obrazu: 1 K ( X (i )1,1 − X 1,1 )( X ( i )1,1 − X 1,1 ) K i =1 1 K ( X (i ) 2,1 − X 2,1 )( X (i )1,1 − X 1,1 ) K i =1 cov( X ) = 1 K ( X (i )1, 2 − X 1, 2 )( X (i )1,1 − X 1,1 ) K i =1 1 K ( X (i ) 2, 2 − X 2, 2 )( X (i )1,1 − X 1,1 ) K i =1 1 K ( X (i )1,1 − X 1,1 )( X (i ) 2, 2 − X 2, 2 ) K i =1 1 K ( X (i ) 2,1 − X 2,1 )( X (i ) 2, 2 − X 2, 2 ) K i =1 1 K ( X (i )1, 2 − X 1, 2 )( X (i ) 2, 2 − X 2, 2 ) K i =1 1 K ( X (i ) 2, 2 − X 2, 2 )( X (i ) 2, 2 − X 2, 2 ) K i =1 Dla tak uzyskanej macierzy kowariancji nale y wyznaczy macierz warto ci własnych oraz skojarzonych z nimi wektorów własnych. Wektory te dla transformaty KLT stanowi baz do dalszych przekształce . Kompresj danych podawanych na wej ciu uzyskuje si dzi ki odrzuceniu okre lonej liczby najmniejszych i najmniej istotnych statystycznie warto ci własnych oraz odpowiadaj cym im wektorów własnych. Tak uzyskana macierz wektorów własnych A b dzie stanowiła macierz transformacyjn . Przez wymno enie wej ciowego wektora z danymi X przez nasz macierz transformacyjn A jeste my w stanie wyliczy ko cowy skompresowany wektor Y. Jest to wektor posiadaj cy taki sam wymiar jak nasz wektor z pozostawionymi warto ciami własnymi. A x X =Y Proces dekompresji polega na odpowiednim wymno eniu otrzymanego w wyniku wy ej przedstawionych przekształce ko cowego wektora przez transponowan macierz transformacyjn . AT x Y = X 6. Opis programu Do implementacji algorytmu kompresji obrazu u yty został j zyk programowania – Delphi. Specjalnie do tego celu napisany program przetwarza obrazy monochromatyczne (czarno-białe) wczytywanie z plików tekstowych zawieraj cych dane o kolejnych pikselach w postaci binarnej (gdzie 0 – odpowiadało kolorowi białemu, a 1 – kolorowi czarnemu). Obrazy miały niewielkie rozmiary (10 na 10 pikseli) i przedstawiały litery, aby łatwo mo na było zobaczy stopie zniekształcenia obrazu przez proces kompresji. Rys. 1 Przykład obrazów przed i po kompresji 7. Wnioski Zastosowana w powy szym programie metoda KLT daje 50% kompresj . Du o wi kszy stopie kompresji mo na uzyska przy wi kszej palecie barw lub zastosowaniu du ej skali szaro ci. Przy operowaniu na obrazach o tak małych wymiarach, jak w prezentowanym przykładzie i wykorzystaniu tylko dwóch kolorów, efekty (jak wida na rys. 1 – gdzie przedstawiono dwa skrajne przypadki zniekształce obserwowane po dekompresji) nie zawsze s zadawalaj ce. Du o lepsze efekty kompresji daje u ycie autoasocjacyjnych sztucznych sieci neuronowych. Zastosowanie tej metody wymaga jednak uprzedniego stworzenia odpowiedniego modelu sieci neuronowej oraz w przypadku kompresowania nowego obrazu, ka dorazowego jej douczenia na zbiorze uzupełnionym o nowe wzorce, co w porównaniu z metod KLT zajmuje znacznie wi cej czasu. Stopie kompresji, który mo na osi gn ok. 3-krotnie wi kszy ni z zastosowaniem modelu neuronowego, jest w przypadku metody KLT. Metoda KLT natomiast, w zastosowaniu do obrazów barwnych, pozwala na zachowanie lepszej jako ci, przy tym samym rozmiarze pliku, co daje tej metodzie przewag nawet nad popularnym formatem JPEG [1], w którym zastosowana jest metoda kompresji DCT (z ang. Discrete Cosine Transform - Dyskretna Transformata Cosinusów). Literatura: 1. Puchalski M., Badanie jako ci metody kompresji obrazów nieruchomych za pomoc sieci neuronowej ze wst pnym przybli eniem transformat Karhunena-Loeve, praca magisterska pod kierunkiem dr hab. in . Romana Rykaczewskiego, Politechnika Gda ska 2. J. Lebied , Grafika komputerowa, WETI Politechnika Gda ska, Gda sk 2000 3. Z. Omiotek, Programowanie obiektowe w Delphi: wiczenia laboratoryjne, Wy sza Szkoła Zarz dzania i Administracji, Zamo 2005