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