Kodowanie i kompresja 1 Kwantyzacja skalarna
Transkrypt
Kodowanie i kompresja 1 Kwantyzacja skalarna
Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.2005 1 Kwantyzacja skalarna Kwantyzacja polega na reprezentowaniu dużego zbioru wartości (być może nieskończonego) za pomoca˛ wartości ze zbioru mniejszego. Chcemy osiagn ˛ ać ˛ dwa przeciwstawne cele: • maksymalizacja stopnia kompresji; • minimalizacja zniekształceń. Kwantyzacja skalarna: każda wartość w ciagu ˛ kwantyzowana osobno. Kwantyzator: ˛ • odwzorowanie kodujace: – podział zbioru wartości danych wejściowych na ustalona˛ liczb˛e podprzedziałów, przyporzadkowanie ˛ przedziałom słów kodowych – każda wartość wejściowa reprezentowana jest przez słowo kodowe przedziału, do którego należy. • odwzorowanie dekodujace: ˛ – każdemu słowu kodowemu przyporzadkowujemy ˛ wartość rekonstrukcji (z przedziału, który koduje to słowo) – każde słowo kodowe w ciagu ˛ skompresowanym jest odtwarzane przy pomocy przypisanej mu wartości rekonstrukcji. Poj˛ecia: • granice decyzyjne: końce przedziałów (gdy M przedziałów, potrzeba M + 1 granic decyzyjnych); • poziomy rekonstrukcji: wartości przyporzadkowane ˛ przedziałom (M wartości dla M przedziałów); dla przedziałów nieskończonych dopuszczamy wartości ±∞. Miary jakości kwantyzatora: • średniokwadratowy bład ˛ kwantyzacji σq2 : jak najmniejszy przy ustalonej (maksymalnej) średniej długości słowa kodowego. 1 • (średnia) długość słowa kodowego: jak najmniejsza przy ustalonej maksymalnej wartości σq2 . M Niech {bi }M i=0 to granice decyzyjne, a {yi }i=1 to poziomy rekonstrukcji a fX to funkcja rozkładu prawdopodobieństwa danych wejściowych. Operacj˛e kwantyzacji definiujemy jako: Q(x) = yi ⇐⇒ bi−1 < x ≤ bi . Średniokwadratowy bład ˛ kwantyzacji jest równy: σq2 = Z ∞ −∞ (x − Q(x))2 fX (x)dx = M Z bi X i=1 bi−1 (x − yi )2 fX (x)dx. A średnia długość słowa kodowego to R= M X li Z bi i=1 bi−1 fX (x)dx, gdzie li to długość słowa kodowego odpowiadajacego ˛ 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. 1.1 Kwantyzator równomierny Założenia: wszystkie przedziały tej samej długości (za wyjatkiem, ˛ 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 [−Xmax , Xmax ], kwantyzator ma M poziomów. Wówczas wielkość przedziału to δ= 2Xmax M a bład ˛ średniokwadratowy (“zniekształcenie”) σq2 =2 M/2 Z iδ X i=1 (i−1)δ µ 2i − 1 x− δ 2 ¶2 1 δ2 dx = . 2Xmax 12 UWAGA: dla rozkładu jednostajnego i kwantyzatora równomiernego optymalne sa˛ słowa kodowe o stałej długości (z dokładnościa˛ do możliwości zaoszcz˛edzenia jednego bitu na niektórych słowach – patrz kody stałe dla kodowania arytmetycznego). 2 1.2 Kwantyzacja adaptacyjna 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˛etrznych, należy zwi˛ekszyć krok kwantyzacji, w przeciwnym razie należy zmniejszyć krok kwantyzacji • dobór parametrów zwi˛ekszania/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 = wf (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 w1 , . . . , wM to ustalone współczynniki. Wartości w1 , . . . , wM dobieramy tak, że przedziałom bliskim zera odpowiadaja˛ wartości mniejsze od 1 a przedziałom zewn˛etrznym wartości wi˛eksze od 1. Skuteczność kwantyzatora Jayanta: zależna od doboru δ1 i parametrów w1 , . . . , wM . Zasada: dobre kwantyzatory szybciej si˛e rozszerzaja˛ niż kurcza˛ (ze wzgl˛edu na nieograniczony bład ˛ w przedziałach zewn˛etrznych). 1.3 Kwantyzacja nierównomierna Zasada: przedziały kwantyzacji nie musza˛ mieć tej samej długości. Analogia do kodów o zmiennej długości: symbole o wi˛ekszym prawdopodobieństwie maja˛ krótsze słowa kodowe ↔ w obszarach o wi˛ekszym prawdopodobieństwie stosujemy mniejsze przedziały. Kwantyzacja optymalizowana ze wzgl˛edu na rozkład : gdy znany jest rozkład prawodpodobieństwa danych. Cel: dla znanej funkcji rozkładu prawdopodobieństwa fX i ustalonej liczby przedziałów M M należy dobrać granice decyzyjne {bi }M i=0 i poziomy rekonstrukcji {yi }i=1 , tak aby zminimalizować M Z bi X i=1 bi−1 (x − yi )2 fX (x)dx. 3 Szukajac ˛ miejsc zerowych pochodnej wzgl˛edem yj w przedziale [bj−1 , bj ] uzyskujemy rozwiazanie: ˛ R bj xfX (x)dx b yj = Rj−1 bj bj−1 fX (x)dx Z kolei miejsca zerowe pochodnej wzgl˛edem bj to: bj = yj+1 + yj . 2 Iteracyjne poszukiwanie rozwiazań ˛ powyższych równań (algorytm Lloyda-Maxa): 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˛edu na symetri˛e, indeksujemy: y−M/2 , . . . , y−1 , y1 , . . . , yM/2 , oraz b−(M/2−1) , . . . , b−1 , b0 = 0, b1 , . . . , bM/2−1 . Wyznaczać b˛edziemy tylko wartości z dodatnimi indeksami, ponieważ y−j = yj i b−j = bj . 3. Przyjmujemy b0 = 0, y1 -dowolne. 4. Dla j = 2, . . . , M/2: (a) wyznaczamy bj−1 z równania jednej zmiennej R bj b yj = Rj−1 bj xfX (x)dx bj−1 fX (x)dx (b) wyznaczamy yj := 2bj−1 + yj−1 5. wyznaczamy bM/2 na podstawie danych wejściowych (np. jako maksymalna˛ wartość wejściowa) ˛ 6. jeśli różnica mi˛edzy wyliczona˛ w powyższy sposób wartościa˛ yM/2 a wyrażeniem R bM/2 bM/2−1 xfX (x)dx R bM/2 bM/2−1 fX (x)dx jest mniejsza od przyj˛etej wartości bł˛edu, kończymy obliczenia. W przeciwnym razie zwi˛ekszamy y1 (gdy powyższa różnica ujemna) lub zmiejszamy y1 (gdy powyższa różnica dodatnia) i przechodzimy do punktu 4. Problem w zastosowaniach praktycznych (np. kwantyzacja mowy): rozkład danych zmienia si˛e w czasie. Rozwiazanie: ˛ adaptacyjna wersja powyższej metody. 4 1.4 Kwantyzacja z kompanderem Idea: zamiast stosować przedziały o różnych długościach (kwantyzacja nierównomierna), przekształcamy dane wejściowe funkcja˛ (kompresorem) dajac ˛ a˛ (w miar˛e) 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 wymagajacy ˛ znajomości funkcji rozkładu prawdopodobieństwa (przy pewnych upraszczajacych ˛ założeniach). 1.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ład ˛ średniokwadratowy) i jak najmniejsza˛ średnia˛ 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 dlog M e, nie jest optymalizowana; 3. najpierw dobór granice decyzyjnych i poziomów rekonstrukcji, potem słów kodowych: • tworzymy kwantyzator minimalizujacy ˛ zniekształcenia (np. algorytm LloydaMaxa) • wartości wyjściowe kwantyzatora traktujemy jak ciag ˛ wartości niezależnych o prawdopodobieństwach równych prawdopodobieństwom poszczególnych przedziałów – stosujemy dla nich kodowanie dla ciagów ˛ niezależnych (np. Huffmana, arytmetyczne). 5