Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12,

Podobne dokumenty
Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych DKDA (7)

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kwantyzacja wektorowa. Plan 1. Zasada działania 2. Projektowanie. Algorytm LBG 3. Kwantyzatory strukturalne 4. Modyfikacje

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Temat: Algorytm kompresji plików metodą Huffmana

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

Podstawy kompresji stratnej+kwantyzacja

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Kody Tunstalla. Kodowanie arytmetyczne

2 Kryptografia: algorytmy symetryczne

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do pracowni specjalistycznej

Kodowanie informacji

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 6

1 Metody rozwiązywania równań nieliniowych. Postawienie problemu

Kwantowanie sygnałów analogowych na przykładzie sygnału mowy

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Agnieszka Nowak Brzezińska

Kompresja bezstratna. Entropia. Kod Huffmana

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Plan wykładu. Przykład. Przykład 3/19/2011. Przykład zagadnienia transportowego. Optymalizacja w procesach biznesowych Wykład 2 DECYZJA?

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Podstawowe funkcje przetwornika C/A

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Metody numeryczne I Równania nieliniowe

Teoria informacji i kodowania Ćwiczenia

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Teoria przetwarzania A/C i C/A.

Optymalizacja ciągła

Wybrane metody kompresji obrazów

KADD Minimalizacja funkcji

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Inteligentna analiza danych

Kwantyzacja skalarna i wektorowa. Metody zaawansowane

Transformaty. Kodowanie transformujace

Fundamentals of Data Compression

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Agnieszka Nowak Brzezińska Wykład III

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

Metody Rozmyte i Algorytmy Ewolucyjne

Klasyfikatory: k-nn oraz naiwny Bayesa. Agnieszka Nowak Brzezińska Wykład IV

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

Nierówność Krafta-McMillana, Kodowanie Huffmana

Aproksymacja funkcji a regresja symboliczna

Zagadnienie transportowe

Sztuczne sieci neuronowe. Krzysztof A. Cyran POLITECHNIKA ŚLĄSKA Instytut Informatyki, p. 335

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Agnieszka Nowak Brzezińska Wykład III

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Wykład 10 Skalowanie wielowymiarowe

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35

WYKŁAD 10. kodem pierwotnym krzywej jest ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),...

Algorytmy metaheurystyczne Wykład 11. Piotr Syga

Metoda simpleks. Gliwice

Haszowanie (adresowanie rozpraszające, mieszające)

Analiza składowych głównych. Wprowadzenie

Teoria Informacji - wykład. Kodowanie wiadomości

Ważne rozkłady i twierdzenia c.d.

MATEMATYKA WYKAZ UMIEJĘTNOŚCI WYMAGANYCH NA POSZCZEGÓLNE OCENY DLA KLASY DRUGIEJ

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

PLAN WYKŁADU OPTYMALIZACJA GLOBALNA OPERATOR KRZYŻOWANIA ETAPY KRZYŻOWANIA

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

0 + 0 = 0, = 1, = 1, = 0.

Załóżmy, że obserwujemy nie jedną lecz dwie cechy, które oznaczymy symbolami X i Y. Wyniki obserwacji obu cech w i-tym obiekcie oznaczymy parą liczb

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

Iteracyjne rozwiązywanie równań

Uczenie sieci typu MLP

WYKŁAD 6. Witold Bednorz, Paweł Wolff. Rachunek Prawdopodobieństwa, WNE, Uniwersytet Warszawski. 1 Instytut Matematyki

8. Neuron z ciągłą funkcją aktywacji.

Metoda Monte Carlo. Jerzy Mycielski. grudzien Jerzy Mycielski () Metoda Monte Carlo grudzien / 10

Kodowanie i kompresja Streszczenie Studia Wieczorowe Wykład 10, 2007

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

Aproksymacja. funkcji: ,a 2. ,...,a m. - są funkcjami bazowymi m+1 wymiarowej podprzestrzeni liniowej X m+1

Zaawansowane metody numeryczne

KODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu

Definicja pliku kratowego

Analiza składowych głównych

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

Luty 2001 Algorytmy (4) 2000/2001

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Klasyczne zagadnienie przydziału

Klasa 1 technikum. Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Programowanie celowe #1

Redukcja wariancji w metodach Monte-Carlo

Metody numeryczne Wykład 4

Interpolacja, aproksymacja całkowanie. Interpolacja Krzywa przechodzi przez punkty kontrolne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

6. Zagadnienie parkowania ciężarówki.

Tadeusz Pankowski

Kompresja dźwięku w standardzie MPEG-1

Metody statystyczne kontroli jakości i niezawodności Lekcja II: Karty kontrolne.

Elementy statystyki wielowymiarowej

Estymacja wektora stanu w prostym układzie elektroenergetycznym

Numeryczne rozwiązywanie równań i układów równań

Transkrypt:

1 Kompresja stratna Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12, 5.05.2005 Algorytmy kompresji bezstratnej oceniane są ze względu na: stopień kompresji; czas działania procesu kodowania i dekodowania. W przypadku kompresji stratnej istotnym aspektem jest również stopień zniekształceń. Proste miary zniekształceń: kwadratowa miara błędu: d(x, y) = (x y) 2 błąd średniokwadratowy: σ 2 = σ 2 x,y = 1 N N (x n y n ) 2, n=1 gdzie x to dane oryginalne a y to dane zakodowane. stosunek sygnału do szumu: SNR = σ2 x σ 2 x,y stosunek sygnału do szumu w skali logarytmicznej: SNR(dB) = 10 log 10 Algorytmy kompresji stratnej wykorzystują również specyfikę percepcji wzrokowej (dla obrazów i danych wideo) i słuchowej (dla danych dźwiękowych). σ 2 x σ 2 x,y 2 Kwantyzacja skalarna Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomocą wartości ze zbioru mniejszego. Chcemy osiągnąć dwa przeciwstawne cele: 1

maksymalizacja stopnia kompresji; minimalizacja zniekształceń. Kwantyzacja skalarna: każda wartość w ciągu kwantyzowana osobno. Kwantyzator: odwzorowanie kodujące: podział zbioru wartości danych wejściowych na ustaloną liczbę podprzedziałów, przyporządkowanie przedziałom słów kodowych każda wartość wejściowa reprezentowana jest przez słowo kodowe przedziału, do którego należy. odwzorowanie dekodujące: Pojęcia: każdemu słowu kodowemu przyporządkowujemy wartość rekonstrukcji (z przedziału, który koduje to słowo) każde słowo kodowe w ciągu skompresowanym jest odtwarzane przy pomocy przypisanej mu wartości rekonstrukcji. granice decyzyjne: końce przedziałów (gdy M przedziałów, potrzeba M + 1 granic decyzyjnych); poziomy rekonstrukcji: wartości przyporządkowane przedziałom (M wartości dla M przedziałów); dla przedziałów nieskończonych dopuszczamy wartości ±. Miary jakości kwantyzatora: średniokwadratowy błąd kwantyzacji σ 2 q: jak najmniejszy przy ustalonej (maksymalnej) średniej długości słowa kodowego. (średnia) długość słowa kodowego: jak najmniejsza przy ustalonej maksymalnej wartości σ 2 q. Niech {b i } M i=0 to granice decyzyjne, a {y i } M to poziomy rekonstrukcji a f X to funkcja rozkładu prawdopodobieństwa danych wejściowych. Operację kwantyzacji definiujemy jako: Q(x) = y i b i 1 < x b i. Średniokwadratowy błąd kwantyzacji jest równy: σ 2 q = (x Q(x)) 2 f X (x)dx = 2 M bi b i 1 (x y i ) 2 f X (x)dx.

A średnia długość słowa kodowego to M bi R = l i f X (x)dx, b i 1 gdzie l i to długość słowa kodowego odpowiadającego i-temu przedziałowi (i-tej wartości rekonstrukcji). UWAGA: przy słowach kodowych o zmiennej długości wartość ta zależy nie tylko od liczby przedziałów. 2.1 Kwantyzator równomierny Założenia: wszystkie przedziały tej samej długości (za wyjątkiem, ewentualnie, skrajnych), poziomy rekonstrukcji to środki przedziałów. Kwantyzator stały w zerze i ze skokiem w zerze. Kwantyzacja dla rozkładu jednostajnego Założenia: rozkład danych jednostajny w przedziale [ X max, X max ], kwantyzator ma M poziomów. Wówczas wielkość przedziału to δ = 2X max M a błąd średniokwadratowy ( zniekształcenie ) σ 2 q = 2 M/2 iδ (i 1)δ ( x 2i 1 2 ) 2 1 δ dx = δ2 2X max 12. UWAGA: dla rozkładu jednostajnego i kwantyzatora równomiernego optymalne są słowa kodowe o stałej długości (z dokładnością do możliwości zaoszczędzenia jednego bitu na niektórych słowach patrz kody stałe dla kodowania arytmetycznego). Kwantyzacja dla rozkładu niejednostajnego Założenie: rozkład danych w przedziale nieograniczonym (przyjmujemy często, że symetryczny względem zera). Cel: dla ustalonej liczby przedziałów M wyznaczyć optymalną wielkość przedziałów (wszystkie przedziały za wyjątkiem skrajnych mają równą długość; skrajne nieograniczone z lewej/prawej). Błąd średniokwadratowy dla symetrycznej funkcji rozkładu f X wyliczamy jako σ 2 q = 2 M/2 1 iδ ( x 2i 1 2 δ) f X (x)dx (i 1)δ 2 3

( +2 x M 1 2 δ) f X (x)dx. (M/2 1)δ 2 Wartość optymalną wyznacza się przez znalezienie miejsc zerowych pochodnej powyższego wyrażenia, w praktyce często przy pomocy metod numerycznych. 2.2 Kwantyzacja adaptacyjna Kwantyzacja adaptacyjna w przód (off-line) : dane dzielone na bloki, dla każdego bloku parametry kwantyzacji dobierane są po wcześniejszej analizie i przesyłane wraz ze skwantyzowanymi danymi. Kwantyzacja adaptacyjna w tył (on-line) : parametry kwantyzatora modyfikowane w oparciu o już zakodowane dane. Krokiem kwantyzacji nazywamy wielkość przedziału przy kwantyzacji jednostajnej. Idea kwantyzatora Jayanta (liczba przedziałów ustalona, celem optymalny dobór kroku kwantyzacji; rozkład jest symetryczny i nieskończony): jeżeli kolejna wartość wejściowa trafia do przedziałów wewnętrznych, należy zwiększyć krok kwantyzacji, w przeciwnym razie należy zmniejszyć krok kwantyzacji dobór parametrów zwiększania/zmniejszania powinien stabilizować krok kwantyzacji po dopasowaniu do rzeczywistego rozkładu danych. Generalnie, krok kwantyzacji przy kodowaniu n-tej wartości wejściowej wynosi δ n = w f(n 1) δ n 1, gdzie δ n 1 to krok dla (n 1)-szej wartości, f(n 1) to numer przedziału, do którego wpada wartość (n 1)sza, a w 1,..., w M to ustalone współczynniki. Wartości w 1,..., w M dobieramy tak, że przedziałom bliskim zera odpowiadają wartości mniejsze od 1 a przedziałom zewnętrznym wartości większe od 1. Skuteczność kwantyzatora Jayanta: zależna od doboru δ 1 i parametrów w 1,..., w M. Sposób doboru współczynników w 1,..., w M (przy założeniu, że dane ze stacjonarnego procesu losowego): gdy kwantyzator pasuje do danych wejściowych, zwiększanie i zmniejszanie kroku powinny się znosić: Π M k=0w n k k = 1, gdzie n k to liczba elementów, które trafiają do k-tego przedziału. 4

po obliczeniu pierwiastka N-tego stopnia, gdzie N to liczba elementów w danych wejściowych: Π M k=0w P k k = 1, gdzie P k = n k /N. ograniczenie zbioru rozwiązań: w k = γ l k, gdzie γ > 1 to ustalony parametr (określający szybkość adaptacji/stabilność), a l k to liczba całkowita. Uzyskujemy wtedy warunek M k=0 l k P k = 0 Zasada: dobre kwantyzatory szybciej się rozszerzają niż kurczą (ze względu na nieograniczony błąd w przedziałach zewnętrznych). 2.3 Kwantyzacja nierównomierna Zasada: przedziały kwantyzacji nie muszą mieć tej samej długości. Analogia do kodów o zmiennej długości: symbole o większym prawdopodobieństwie mają krótsze słowa kodowe w obszarach o większym prawdopodobieństwie stosujemy mniejsze przedziały. Kwantyzacja optymalizowana ze względu na rozkład : gdy znany jest rozkład prawodpodobieństwa danych. Cel: dla znanej funkcji rozkładu prawdopodobieństwa f X i ustalonej liczby przedziałów M należy dobrać granice decyzyjne {b i } M i=0 i poziomy rekonstrukcji {y i } M, tak aby zminimalizować M bi (x y i ) 2 f X (x)dx. b i 1 Szukając miejsc zerowych pochodnej względem y j w przedziale [b j 1, b j ] uzyskujemy rozwiązanie: bj b y j = j 1 xf X (x)dx bj b j 1 f X (x)dx Z kolei miejsca zerowe pochodnej względem b j to: b j = y j+1 + y j. 2 Iteracyjne poszukiwanie rozwiązań powyższych równań (algorytm Lloyda-Maxa): 5

1. Założenie: funkcja rozkładu prawdopodobieństwa jest symetryczna, projektujemy kwantyzator ze skokiem w zerze (czyli 0 ma być końcem przedziału), liczba przedziałów równa jest M. 2. Ze względu na symetrię, indeksujemy: y M/2,..., y 1, y 1,..., y M/2, oraz b (M/2 1),..., b 1, b 0 = 0, b 1,..., b M/2 1. Wyznaczać będziemy tylko wartości z dodatnimi indeksami, ponieważ y j = y j i b j = b j. 3. Przyjmujemy b 0 = 0, y 1 -dowolne. 4. Dla j = 2,..., M/2: (a) wyznaczamy b j 1 z równania jednej zmiennej y j = bj b j 1 xf X (x)dx bj b j 1 f X (x)dx (b) wyznaczamy y j := 2b j 1 + y j 1 5. wyznaczamy b M/2 na podstawie danych wejściowych (np. jako maksymalną wartość wejściową) 6. jeśli różnica między wyliczoną w powyższy sposób wartością y M/2 a wyrażeniem bm/2 b M/2 1 xf X (x)dx bm/2 b M/2 1 f X (x)dx jest mniejsza od przyjętej wartości błędu, kończymy obliczenia. W przeciwnym razie zwiększamy y 1 (gdy powyższa różnica ujemna) lub zmiejszamy y 1 (gdy powyższa różnica dodatnia) i przechodzimy do punktu 4. Niektóre dowodliwe własności kwantyzatora Lloyda-Maxa: wartość średnia danych wejściowych jest równa wartości średniej danych wyjściowych; wariancja danych wyjściowych jest mniejsza lub równa wariancji danych wejściwowych. Problem w zastosowaniach praktycznych (np. kwantyzacja mowy): rozkład danych zmienia się w czasie. Rozwiązanie: adaptacyjna wersja powyższej metody. 6

2.4 Kwantyzacja z kompanderem Idea: zamiast stosować przedziały o różnych długościach (kwantyzacja nierównomierna), przekształcamy dane wejściowe funkcją (kompresorem) dającą (w miarę) jednostajny rozkład. Dekodowanie wymaga wówczas zastosowania funkcji odwrotnej (ekspandera). Metoda ta stosowana jest w telefonii. Całka Bennnetta: sposób konstrukcji kompresora/ekspandera, nie wymagający znajomości funkcji rozkładu prawdopodobieństwa (przy pewnych upraszczających założeniach). 2.5 Optymalizacja średniej długości słowa kodowego Zadanie: dla ustalonej liczby przedziałów M, mamy ustalić granice decyzyjne, poziomy rekonstrukcji i słowa kodowe dla poziomów rekonstrucji tak, aby uzyskać jak najmniejsze zniekształcenie (błąd średniokwadratowy) i jak najmniejszą średnią długość słowa kodowego: Podejścia: 1. jednoczesny dobór wszystkich parametrów trudne; 2. słowa kodowe o stałej długości, algorytm dobiera granice decyzyjne i poziomy rekonstrukcji średnia długość słowa kodowego to log M, nie jest optymalizowana; 3. najpierw dobór granice decyzyjnych i poziomów rekonstrukcji, potem słów kodowych: tworzymy kwantyzator minimalizujący zniekształcenia (np. algorytm Lloyda- Maxa) wartości wyjściowe kwantyzatora traktujemy jak ciąg wartości niezależnych o prawdopodobieństwach równych prawdopodobieństwom poszczególnych przedziałów stosujemy dla nich kodowanie dla ciągów niezależnych (np. Huffmana, arytmetyczne). 3 Kwantyzacja wektorowa Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny schemat kwantyzacji wektorowej dla L-wymiarowych wektorów: ustalamy M wektorów L-wymiarowych jako wartości rekonstrukcji, nazywanych też wektorami kodowymi; każdemu z wektorów kodowych przyporządkowujemy indeks w tablicy tych wektorów, zwanej słownikiem; 7

dane dzielimy na bloki o długości L; dla każdego bloku danych znajdujemy najbliższy mu wektor kodowy i on staje się skwantyzowaną wartością tego bloku. Miary jakości kwantyzatora wektorowego: (średniokwadratowy) błąd kwantyzacji σ 2 q, w którym odległość między wektorami X = (x 1... x L ) i Y = (y 1... y L ) to X Y ; gdzie X 2 = L x 2 i. (średnia) liczba bitów na próbkę: równa L rozmiar kwantyzowanych wektorów. log K, gdzie K to rozmiar słownika, a L Poglądowe przykłady przewagi kwantyzacji wektorowej nad skalarną: dane skorelowane (np. pary (wzrost,waga)); dane nieskorelowane: wartości odwzorowane na konkretny wektor kodowy nie musza być zdefiniowane w postaci przedziałów ( prostopadłościanów ). Algorytm Lindego-Buzo-Graya (LBG) Dane: zbiór wektorów uczących {X n } N n=1, próg błędu ε, M liczba wektorów kodowych takie, że N M. Cel: minimalizacja średniej odległości między wektorem uczącym a reprezentującym go wektorem kodowym. 1. Wybierz dowolnie zbiór wektorów kodowych {Y (0) i } M. Niech k = 0, D (0) = 0. 2. Określ obszary kwantyzacji V 1,..., V M w następujący sposób: V (k) i Załóżmy, że V (k) i = {X n d(x n, Y (k) i ) < d(x n, Y (k) j ) dla każd. j i} dla każdego i [1, M]. 3. Oblicz średnią odległość między wektorami uczącymi a odpowiadającymi im wektorami kodowymi D (k) = 1 N M X j V (k) i d(x j, Y (k) i ). 4. Jeśli D(k) D (k 1) D (k) < ε, zakończ obliczenia. 5. niech nowe wektory kodowe to średnie wartości obszarów kwantyzacji: Y (k+1) j = 1 V (k) j X i V (k) j X i dla j [1, M]. 8

6. Niech k := k + 1, przejdź do kroku 2 Problemy techniczne w algorytmie LBG: Wybór początkowych wektorów kodowych. Technika podziałów: zaczynamy z jednym początkowym wektorem kodowym, po zastosowaniu algorytmu LBG dołączamy drugi wektor, uzyskany z pierwszego przez dodanie ustalonego wektora zaburzeń γ. Mając 2 i wektorów kodowych, stosujemy LBG i uzyskujemy 2 i+1 wektorów przez dodanie zaburzenia do każdego z wynikowych wektorów kodowych. Algorytm par najbliższych sąsiadów (PNN): zaczynamy ze zbiorem wektorów kodowych równym zbiorowi uczącemu. W każdym kroku (aż do uzyskania M wektorów) wybieramy 2 najbliższe wektory kodowe i zastępujemy je ich średnią i stosujemy algorytm LBG. Problem pustych obszarów kwantyzacji. Metoda: usuwamy wektor kodowy odpowiadający pustemu obszarowi kwantyzacji, zastępujemy go losowo wybranym wektorem uczącym z obszaru kwantyzacji, który zawiera najwięcej wektorów. Typowe zastosowanie: kompresja obrazów (wektory to bloki rozmiaru n m, co umożliwia wykorzystanie korelacji poziomych i pionowyc); ograniczeniem jest wzrost rozmiaru słownika i dobór słownika (statyczny czy projektowany dla każdego obrazka osobno, co wymaga dołączenia słownika do danych). 3.1 Kwantyzatory o strukturze drzewiastej Idea: chcemy zmniejszyć liczbę porównań potrzebną do ustalenia obszaru kwantyzacji, do którego należy dany wektor. Metoda: tworzymy zbalansowane drzewo binarne, w każdym węźle umieszczamy wektor, w liściach wektory kodowe; dla ustalenia obszaru kwantyzacji danego wektora Z, w każdym kroku przechodzimy do tego dziecka aktualnego wierzchołka w drzewie, który znajduje się bliżej Z (zaczynając od korzenia). Cechy: czas znalezienia obszaru kwantyzacji dla danego wektora redukuje się z M do 2 log M ; wzrost zniekształceń: podział na obszary kwantyzacji nie zawsze przyparządkowuje wektor do obszaru o najbliższym mu wektorze kodowym; wzrost pamięci: oprócz wektorów kodowych, potrzeba M 1 wektorów w wierzchołkach wewnętrznych. 9

Ogólna metoda tworzenia kwantyzatora drzewiastego o głębokości k dla zbioru wektorów X : jeśli k = 0: utwórz kwantyzator z jednym wektorem kodowym równym średniej z wektorów z X ; wybieramy dwa początkowe wektory kodowe: średnią S z wektorów ze zbioru X i wektor otrzymany z S przez dodanie zaburzenia; tworzymy kwantyzator z dwoma wektorami kodowymi (stosując np. algorytm LBG) Y 1, Y 2 ; dzielimy X na X 1, X 2 takie, że X 1 składa się z wektorów uczących bliższych Y 1 a X 2 składa się z wektorów uczących bliższych Y 2 tworzymy (osobno!) kwantyzatory o głębokości k 1 dla zbiorów X 1 i X 2. Modyfikacje: przycinanie usuwanie obszarów kwantyzacji, do których należy najmniej wektorów uczących (zmniejszanie średniej długości słowa kodowego kosztem wzrostu zniekształceń). 10