1 Kwantyzacja skalarna Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11, 10.05.005 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: 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 σ q: 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 σ 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 < x b i. Średniokwadratowy błąd kwantyzacji jest równy: σ q = (x Q(x)) = A średnia długość słowa kodowego to R = l i, (x y i ). 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. 1.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 δ = X max M a błąd średniokwadratowy ( zniekształcenie ) σ q = M/ iδ (i 1)δ ( x i 1 ) 1 δ dx = δ X max 1. 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).
1. 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ę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. Zasada: dobre kwantyzatory szybciej się rozszerzają niż kurczą (ze względu na nieograniczony błąd w przedziałach zewnętrznych). 1.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ć (x y i ). 3
Szukając miejsc zerowych pochodnej względem y j w przedziale [, b j ] uzyskujemy rozwiązanie: b y j = j 1 Z kolei miejsca zerowe pochodnej względem b j to: b j = y j+1 + y j. Iteracyjne poszukiwanie rozwiązań 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.. Ze względu na symetrię, indeksujemy: y M/,..., y 1, y 1,..., y M/, oraz b (M/ 1),..., b 1, b 0 = 0, b 1,..., b M/ 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 =,..., M/: (a) wyznaczamy z równania jednej zmiennej y j = (b) wyznaczamy y j := + y j 1 5. wyznaczamy b M/ 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/ a wyrażeniem bm/ b M/ 1 bm/ b M/ 1 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. Problem w zastosowaniach praktycznych (np. kwantyzacja mowy): rozkład danych zmienia się w czasie. Rozwiązanie: 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 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). 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łąd średniokwadratowy) i jak najmniejszą średnią długość słowa kodowego: Podejścia: 1. jednoczesny dobór wszystkich parametrów trudne;. 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). 5