Beata Szymańska Wocech Topolsk Marcn Tomask KWANTYZACJA WEKTOROWA 1
SPIS TREŚCI 1. Idea kwantyzac wektorowe...3 1.1 Kwantyzaca...3 1.2 Kwantyzaca wektorowa...3 1.3 Cechy kwantyzac wektorowe...3 2. Fazy pracy kwantyzatora wektorowego...4 2.1 Etap wstępny...4 2.2 Faza klasteryzac...4 2.3 Faza właścwa...4 3. Generalzaca ksążk kodowe...5 3.1 Algorytm k-średnch...5 3.2 Algorytm LBG...6 3.3. Incalzaca ksążk kodowe...6 3.3.1. Metoda losowana...6 3.3.2 Metoda grupowana...6 3.3.3 Metoda rozdzelana...6 4. Prolem pustych komórek...6 5. Algorytm opsowy programu z fragmentam kodu...7 6. Blografa...8 2
1. Idea kwantyzac wektorowe 1.1 Kwantyzaca Zanm przedzemy do omawana kwantyzac wektorowe, wyaśnmy co rozumemy przez kwantyzace. Kwantyzaca polega na reprezentowanu dużego zoru wartośc (yć może neskończonego) za pomocą wartośc ze zoru mneszego. W kwantyzac dążymy do osągnęca: mnmalnych znekształceń maksymalnego stopna kompres. 1.2 Kwantyzaca wektorowa Kwantyzaca wektorowa polega na grupowanu danych weścowych (poedynczych próek) w n-wymarowe wektory lu lok. Następne dokonuemy kwantyzac tych wektorów. ekompozyca danych na wektory n-wymarowe oraz sama konstrukca takch wektorów zależy od rodzau danych weścowych zachodzących pomędzy nm korelac. 1.3 Cechy kwantyzac wektorowe Metoda wektorowe kwantyzac est slne nesymetryczna ako metoda kompres. Czas kompres, ze względu na koneczność welokrotnego przeszukwana ksążk kodów (słownka) est znaczne dłuższy od czasu dekompres, w które na podstawe odczytywanych ndeksów poerane są koleno ze słownka odpowedne wektory kodu. W porównanu z kwantyzacą skalarną, kwantyzaca wektorowa prowadz do zmneszena znekształceń przy ustalone średne towe. 3
2. Fazy pracy kwantyzatora wektorowego 2.1 Etap wstępny Ze względu na to, że w kwantyzac wektorowe kwantyzowanych est ednocześne klka wartośc (co namne dwe), w etape wstępnym dokonuemy formatowana danych weścowych do postac N wektorów n-wymarowych. 2.2 Faza klasteryzac Konstrukca ksążk kodowe (słownka) zaweraące K nalepszych reprezentantów całego zoru danych, tzw. wektorów kodowych. Każdemu wektorow kodowemu przypsany est narny ndeks. 2.3 Faza właścwa (ndeksaca) Odwzorowane wektorów weścowych X danych na wektory kodowe Y słownka. Naodpowedneszy wektor est doerany na podstawe zdefnowane reguły mnmalnego znekształcena. Mara tego znekształcena pownna yć z edne strony prosta olczenowo, z druge zaś dorze odpowadać rzeczywste degradac nformac w procese zastępowana danego wektora poprzez wyrany wektor kodu. 3. Generaca ksążk kodowe 6.1 Algorytm k-średnch ane weścowe: duży zór wektorów wygenerowanych przez źródło, zwany zorem uczącym, początkowy zór k reprezentatywnych wzorców. ane wyścowe: k grup wektorów zgromadzonych wokół punktów wyścowych. Algorytm polega na przyporządkowanu każdemu elementow ze zoru uczącego nalższy mu wzorzec. Po przypsanu wzorców wszystkm elementom ze zoru uczącego, każdy wzorzec est zastępowany przez środek cężkośc olczony ze wszystkch elementów przypsanych do tego wzorca. 4
Algorytm dzała w następuący sposó: 1. Wyerz dowolne początkowy zór rekonstruowanych wartośc k 0 ( 0 ), 0. Wyerz próg ε. ( 0 ) { } M y 1. Ustal 2. Znadź grance decyzyne: k k ( ) y k + 1 + y 2 ( ) ( ) 1,2,...M-1 3. Olcz znekształcene: M 1 1 ( x y ) 2 fx( x) dx. 4. Jeśl ( k 1) < ε, zakończ olczena: w przecwnym przypadku kontynuu. 5. Przym k k + 1. Olcz nowe rekonstruowane wartośc y Wróć do kroku 2. ( k 1) 1 ( k 1) ( k 1) ( k 1 1 xfx( x) dx fx( x) dx 6.2 Algorytm LBG Uogólnene algorytmu Lloyda (k-średnch). Wartośc weścowe ne muszą yć skalaram. Algorytm dzała w następuący sposó: 1. Wyerz dowolne początkowy zór rekonstruowanych wartośc k 0, ( 0 ) 0. Wyerz próg ε. ( 0 ) { } M Y 1. Ustal 2. Znadź oszary kwantyzac: V { X : d( X, Y ) < d( X, Y ) } 1,2,...M-1 3. Olcz znekształcene: M 1 V X Y fx( X ) dx. 2 5
4. Jeśl ( k 1) < ε, zakończ olczena: w przecwnym przypadku kontynuu. 5. Przym k k + 1. Znadź nowe rekonstruowane wartośc ( 1) środkam cężkośc { V k }. Wróć do kroku 2. { } M Y 1, które są 3.3. Incalzaca ksążk kodowe 3.3.1. Metoda losowana Sprowadza sę do wylosowana w ednym kroku całe ksążk kodowe o zadanym rozmarze K. 3.3.2. Metoda grupowana Inacze nazywana metodą par nalższych sąsadów polega na tym, że konstrukca ksążk rozpoczyna sę od ksążk o rozmarze KN zaweraące wszystke wektory zoru uczącego. Stopnowo redukue sę rozmar ksążk przez grupowane par wektorów sąsednch. 3.3.3. Metoda rozdzelana Konstrukca rozpoczyna sę od poedynczego wektora centrodu zoru uczącego. W m-tym kroku dokonywany est (w drodze dodawana zaurzena) podzał każdego z wektorów kodowych na dwa wektory. Po takm rozdzelenu uzyskana konfguraca regonów decyzynych est optymalzowana przez algorytm LBG, po czym dokonywany est koleny podzał. 4. Prolem pustych komórek Pusta komórka może sę poawć wtedy, kedy wektor ne est wyznaczony z danych weścowych. Taka sytuaca może sę zdarzyć, eśl szczególne słowo kodowe komórk est ardzo daleko oddalone od wektora danych weścowych. Pusta komórka ne przyczyna sę do poprawy rezultatów, dlatego pownna yć usunęta. Zróżncowane heurystycznych rozwązań podpowada, ay zamować sę prolemem pustych komórek. Jedno z przykładowych rozwązań est take, ay podzelć nawększą komórkę na dwe komórk przez dodane odpowednego słowa kodowego z losową lczą maącą małą nezgodność, generuącą tą drogą dwe oddzelne werse orygnalnego słowa kodowego. 6
5. Algorytm opsowy programu z fragmentam kodu (1) Wczytane orazu (BMP) do pamęc za pomocą lotek lsl. Po wczytanu możlwy est dostęp do każdego pksela tworzącego oraz (ego wartośc RGB). (2) Podzał wczytanego orazu na wektory uczące (z założena welkośc dwa na dwa pksele): I. Wektory uczące (kwadraty) maą współrzędne (x, y) które oznaczaą położene prawego górnego rogu wektora. II. Wysokość szerokość wektora są ustawone domyślne na dwa pksele. (3) Olczane wartośc dla wektorów uczących. Wartośc te są uśrednenem wartośc R, G, B ze wszystkch czterech pksel wchodzących w skład wektora uczącego. I. Jeżel (x, y) wektora znadue sę lże nż dwa pksele od prawe strony, lu od dołu orazu średną olczamy z dostępnych pksel. (4) Nech 'k' oznacza lość wektorów słownka. Ustawamy k na 1 tworzymy perwszy wektor słownka. Jako że est to edyny wektor podpnamy pod nego wszytke wektory uczące. Poczym uśrednoną wartość R, G, B z podpętych wektorów uczących traktuemy ako nowe położene wektora słownka. (5) Podwaamy lość wektorów słownka, tak ay każdy wektor słownka mał swoego klona. Ay wyrać naepszą pozyce dla nowego wektora stosuemy następuącą metode: I. Wyznaczamy sześć nowych tymczasowych wektorów słownka losowo wyeraąc ego położene w przestrzen. II. la każdego z nowych tymczasowych wektorow słownka olczamy lość wektorów uczących znaduących sę w ustalonym promęnu od nego samego. III. Jako docelowy wektor wyeramy ten który posada nawęce wektorów uczących w swom zasęgu, natomast pozostałe pęć usuwamy. (6) Maąc nową lość wektorów słownka przepnamy wektory uczące do wektorów słownka daąc o to ay zachować zasadę: V { X : d( X, Y ) < d( X, Y ) } 1,2,...M-1 (7) Każdy wektor słownka ma swoą pule wektorów uczących. Nalezy teraz zsumować wartośc R, G, B wszystkch wektorów uczących podpętych do swoego wektora słownka, a średną arytmetyczną traktować ako nowe położene wektora słownka. ( k 1) (8) Olczamy ogólną utrate akośc orazu kożystaąc z zasady: < ε, gdze naszym e est wartość stała. Jeśl warunek ten ne est spełnony powracamy do punktu 5. 7
(9) Sprawdzamy wektory słownka pod kątem pustych komórek, eśl którykolwek wektor słownka ne ma podpętego choć ednego wektora uczącego usuwamy go ze zoru wektorów słownka. (10)Zamenamy w oraze wszystke wektory uczące na ch odpowednk ze słownka zapsuemy nowy oraz ako BMP (kożystaąc z lotek SL) (11)Zczytuemy nformace o treśc orazu orygnalnego orazu wyścowego, czyl wartośc R, G, B każdego z pksel. Te nformace zapsuemy do plku w celu późnesze kompres ezstratne. Komprese wykonuemy programem zp. 6. Blografa [1] Khald Sayood Kompresa danych wprowadzene [2] http://www.re.pw.edu.pl/~arturp/ydaktyka/koda/skrypt.hmtl 8