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