Wykład 12 - kodowanie różnicowe - MARS
Wykład 12 - kodowanie różnicowe - MARS
Wykład 12 - kodowanie różnicowe - MARS
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Kodowanie rónicowe<br />
Plan<br />
1. Zasada<br />
2. Podstawowy algorytm<br />
3. Kodowanie adaptacyjne<br />
4. Zastosowania
Kodowanie rónicowe – zasada<br />
Jako kwantyzacji – szeroko przedziału – wariancja,<br />
rozpito danych<br />
Obrazy, dwiki – korelacja w danych<br />
Wykorzystanie korelacji – kwantyzacja wektorowa.<br />
Problem – złoona implementacja<br />
Bezstratna kompresja predykcyjna – poprawa stopnia<br />
kompresji<br />
Kompresja stratna – zamiast wartoci cigu próbek<br />
bierzemy cig rónic. To daje zmniejszenie rozpitoci<br />
danych, zmniejszenie wariancji – pozwala na zmniejszenie<br />
szerokoci kwantyzacji, czyli popraw jej jakoci.
Kodowanie rónicowe – zasada c.d.<br />
Przesyłanie informacji poprzez przesyłanie rónic –<br />
<strong>kodowanie</strong> rónicowe.<br />
Przykład 1<br />
Sygnał harmoniczny, próbkowany z czstoci 30 próbek/cykl<br />
y i<br />
i<br />
= sin(2π<br />
)<br />
30<br />
Kwantyzacja 4-poziomowa:<br />
Cig rónic:<br />
d<br />
n<br />
= y<br />
n<br />
− y<br />
n −1<br />
2π<br />
i<br />
≈ cos( 2π<br />
)<br />
30 30<br />
Kwantyzacja rónic:<br />
∆ =<br />
y<br />
− y<br />
4<br />
max min<br />
=<br />
0.5<br />
d<br />
∆ =<br />
max<br />
− d<br />
4<br />
min<br />
=<br />
2π<br />
2<br />
30 4<br />
≈ 0.1
Kodowanie rónicowe – zasada c.d.<br />
• Przykład 2
Podstawowy algorytm<br />
Wariant 1 – obliczamy cig rónic, kwantyzujemy. To<br />
bdzie podstawa do wyznaczenia rekonstrukcji.<br />
Przykład:<br />
• cig danych:<br />
6.2<br />
9.7<br />
13.2<br />
5.9<br />
8<br />
7.4<br />
4.2<br />
1.8<br />
2.5<br />
3.7<br />
5.3<br />
6.4<br />
• cig rónic:<br />
6.2<br />
3.5<br />
3.5<br />
-7.3<br />
2.1<br />
x n<br />
1.1<br />
-0.6<br />
-3.2<br />
-2.4<br />
0.7<br />
1.2<br />
1.6<br />
d n<br />
2.0<br />
• kwantyzacja cigu rónic (kwantyzator 7-poziomowy):<br />
D n<br />
6.0<br />
4.0<br />
4.0<br />
-6.0<br />
2.0<br />
0.0<br />
-4.0<br />
-2.0<br />
0.0<br />
2.0<br />
2.0
Podstawowy algorytm – c.d.<br />
• Rekonstrukcja, błdy rekonstrukcji:<br />
X n<br />
• Problem – błdy rekonstrukcji znacznie wiksze od oczekiwanych<br />
6.0 10.0 14.0 8.0 10.0 10.0 6.0 4.0 4.0 6.0 8.0 10.0<br />
e n<br />
0.2 -0.3 -0.8 -2.1 -2.0 -2.6 -1.8 -2.2 -1.5 -2.3 -3.7 -3.4<br />
Analiza wariantu 1:<br />
d 1 =x 1 -x 0 , D 1 =d 1 +q 1 , X 1 =X 0 +D 1 = x 0 +x 1 -x 0 +q 1 = x 1 +q 1<br />
d 2 =x 2 -x 1 , D 2 =d 2 +q 2 , X 2 =X 1 +D 2 = x 1 +q 1 +x 2 -x 1 +q 2 = x 2 +q 1 +q 2<br />
d 3 =x 3 -x 2 , D 3 =d 3 +q 3 , X 3 =X 2 +D 3 = x 2 +q 1 +q 2 +x 3 -x 2 +q 3 = x 3 +q 1 +q 2 +q 3<br />
Wniosek – wariant 1 powoduje kumulacj błdów<br />
X<br />
n<br />
=<br />
x<br />
n<br />
+<br />
n<br />
<br />
k = 1<br />
q<br />
k<br />
Koder i dekoder korzystaj z innych informacji<br />
Wariant 2: d n = x n – X n-1
Podstawowy algorytm – c.d.<br />
Analiza wariantu 2:<br />
d 1 =x 1 -X 0 , D 1 =d 1 +q 1 , X 1 =X 0 +D 1 = X 0 +x 1 -X 0 +q 1 = x 1 +q 1<br />
d 2 =x 2 -X 1 , D 2 =d 2 +q 2 , X 2 =X 1 +D 2 = X 1 +x 2 -X 1 +q 2 = x 2 +q 2<br />
d 3 =x 3 -X 2 , D 3 =d 3 +q 3 , X 3 =X 2 +D 3 = X 2 +x 3 -X 2 +q 3 = x 3 +q 3<br />
ogólnie:<br />
X n = x n + q n<br />
Przykład numeryczny<br />
6.2 9.7 13.2 5.9 8.0 7.4 4.2 1.8 2.5 3.7 5.3 6.4<br />
d n<br />
6.2 3.7 3.2 -8.1 0 -0.6 -3.8 -2.2 0.5 1.7 1.3 0.4<br />
D n<br />
6 4 4 -6 0 0 -4 -2 0 2 2 0<br />
X n<br />
6 10 14 8 8 8 4 2 2 4 6 6<br />
e n<br />
0.2 -0.3 -0.8 -2.1 0.0 -0.6 0.2 -0.2 0.5 -0.3 -0.7 0.4<br />
x n<br />
Wariant 1: sigma 2 = 51.52; wariant 2: sigma 2 = 6.61
Podstawowy algorytm – c.d.<br />
Przykład: funkcja harmoniczna<br />
Wariant 1: krok kwant. = 0.1<br />
Wariant 2: krok kwant. = 0.2<br />
Schemat podstawowego algorytmu
Modyfikacje. Ogólny algorytm DPCM<br />
Kompresja maksymalna, gdy rónice jak najmniejsze<br />
Lepsze oszacowanie x n ni X n-1 moe da pewna inna<br />
funkcja zmiennych zrekonstruowanych<br />
Uogólnienie algorytmu podstawowego – zamiast bloku<br />
opóniajcego – predyktor<br />
Na wyjciu predyktora: p n = f(X n-1 , X n-2 , ..., X 0 )
Okrelenie predyktora<br />
Algorytm DPCM – wypracowany pod koniec lat 40-tych w<br />
Bell Labs.<br />
Powszechnie stosowany w systemach telefonicznych<br />
Podstawowe podsystemy: predyktor i kwantyzator<br />
Projektowanie predyktora<br />
Dobór funkcji predyktora, by zminimalizowa rónice:<br />
σ = E[(<br />
x − p<br />
2<br />
d<br />
W ogólnym przypadku – bardzo trudno rozwizywalne<br />
Zwykle stosuje si 2 załoenia upraszczajce:<br />
n<br />
n<br />
)<br />
2<br />
1. Delikatne załoenie kwantyzacyjne – długo kroku kwantyzacji<br />
tak mała, e moemy zastpi X k przez x k<br />
2. Predyktor jest funkcj liniow:<br />
p<br />
n<br />
=<br />
N<br />
<br />
i=<br />
1<br />
a<br />
i<br />
X<br />
n−i<br />
]<br />
N – rzd predyktora
Okrelenie predyktora – przypadek liniowy<br />
Problem: znale {a i }, i=1,..N by zminimalizowa<br />
σ<br />
2<br />
d<br />
Warunki:<br />
N<br />
<br />
= E <br />
xn<br />
− ai<br />
X<br />
<br />
i=<br />
1<br />
∂σ<br />
∂a<br />
2<br />
d<br />
i<br />
=<br />
0<br />
N −i<br />
<br />
<br />
2<br />
<br />
<br />
<br />
Wykorzystujc delikatne załoenie kwantyzacyjne i<br />
stacjonarno mamy:<br />
N<br />
<br />
i = 1<br />
N<br />
<br />
i = 1<br />
....<br />
a<br />
a<br />
i<br />
i<br />
R<br />
R<br />
xx<br />
xx<br />
( i<br />
( i<br />
−<br />
−<br />
1) =<br />
2 ) =<br />
R<br />
R<br />
xx<br />
xx<br />
(1)<br />
( 2 )<br />
gdzie:<br />
R<br />
xx<br />
+<br />
( k ) = E [ x<br />
i<br />
x<br />
i k<br />
funkcja autokorelacji zmiennej x n<br />
]<br />
N<br />
<br />
i = 1<br />
a<br />
i<br />
R<br />
xx<br />
( i<br />
−<br />
N<br />
)<br />
=<br />
R<br />
xx<br />
( N<br />
)
Predyktor liniowy - przykład<br />
N<br />
a i<br />
Stos. Var.<br />
1<br />
0.66<br />
2.04/1.63<br />
2<br />
0.569<br />
0.096<br />
3.37<br />
3<br />
0.577<br />
-0.025<br />
0.204<br />
6.28<br />
Pełny układ DPCM – specyfikacja<br />
kwantyzatora. Zakładamy:<br />
• rozkład reszt – Laplace<br />
• kwantyzator równomierny<br />
• szeroko kwantyzacji – zalena od<br />
dyspersji
Predyktor liniowy – przykład c.d.<br />
Kwantyz.<br />
N<br />
SNR<br />
SPER<br />
4-poziom.<br />
Bez<br />
2.43<br />
0<br />
1<br />
3.37<br />
2.65<br />
2<br />
8.35<br />
5.90<br />
3<br />
8.75<br />
6.10<br />
8-poziom.<br />
Bez<br />
3.65<br />
0<br />
1 3.87 2.74<br />
2 9.81 6.37<br />
3 10.16 6.71<br />
SPER<br />
1. Wyrana poprawa przy zmianie z N=1 na N=2<br />
= M<br />
<br />
i = 1<br />
M<br />
<br />
i = 1<br />
( x<br />
i<br />
x<br />
2<br />
i<br />
− p<br />
i<br />
)<br />
2<br />
2. Wysycenie dla N>2<br />
3. Zniekształcenie w obszarach małego sygnału
Adaptacyjne DPCM<br />
Czsto dane róni si w rónych obszarach – cho s<br />
lokalnie stacjonarne, to nie s globalnie stacjonarne.<br />
Moliwe rozwizanie – adaptacja układu<br />
Typy adaptacji:<br />
Tylko adaptacja kwantyzatora (z ustalonym predyktorem)<br />
Adaptacja predyktora łcznie z adaptacj kwantyzatora<br />
Kwantyzacja adaptacyjna w DPCM<br />
Adaptacja w przód (podział na bloki, estymacja parametrów<br />
kwantyzatora, przekazanie parametrów dodatkowych). Problem –<br />
kwantyzator w ptli sprzenia zwrotnego, kłopot z wejciem, które<br />
mogłoby by uyte do wyznaczenia parametrów adaptacji<br />
Adaptacja wstecz – bardziej popularna, zwykle odmiana<br />
kwantyzatora Jayanta
Predykcja adaptacyjna w DPCM<br />
DPCM – APF (adaptive prediction-forward)<br />
Podział danych na bloki (dla mowy próbkowanej z f=8 kHz – <strong>12</strong>8<br />
próbek/blok, 16 ms; dla obrazów – 8 x 8 pikseli)<br />
Wyliczenie współczynników autokorelacji a nastpnie parametrów<br />
predyktora dla bloku<br />
Kwantyzacja parametrów przedyktora z wysok redni bitow,<br />
przesłanie ich odbiorcy<br />
Wada: konieczno buforowania danych, opónienie w transmisji.<br />
Gdy konieczno wielu połcze – narastanie opónienia.<br />
DPCM – APB (adaptive prediction-backward)<br />
Równania Wienera-Hopfa wyprowadzone przy załoeniu<br />
stacjonarnoci danych
Predykcja adaptacyjna w DPCM<br />
– Rezygnujemy z załoenia o stacjonarnoci, próba znalezienia<br />
algebraicznej reguły adaptacji<br />
– Prosty przypadek – predyktor rzdu 1. Kwadratowa zaleno<br />
kwadratu reszty od a 1 :<br />
d<br />
2<br />
n<br />
2<br />
= ( xn<br />
− pn<br />
) = ( xn<br />
− a1<br />
X<br />
n−1<br />
)<br />
2<br />
– Pochodna kwadratu reszty po a 1 – ujemna na lewo, dodatnia na<br />
prawo od wartoci optymalnej; ronie z odchyleniem od<br />
optymalnoci.<br />
– Postulat – korekta proporcjonalna do pochodnej:<br />
a<br />
∂d<br />
2<br />
( n + 1) ( n )<br />
n ( n )<br />
1<br />
= a1<br />
− α = a1<br />
+ α D<br />
n<br />
X<br />
n −1<br />
∂a1<br />
– Uogólnienie na przypadek wyszego rzdu:<br />
a<br />
n+<br />
1)<br />
j<br />
= a + α D<br />
( n )<br />
j<br />
n<br />
X<br />
(<br />
Algorytm LMS<br />
n−<br />
j
Modulacja delta<br />
Prosta odmiana schematu DPCM z jednobitowym<br />
kwantyzatorem (rónica kodowana jaki – lub +)<br />
Gdy rónica odbiega od – wzrost zniekształcenia. Aby<br />
temu zapobiec:<br />
Dua czstotliwo próbkowania (f p >> 2 f max )<br />
Adaptacja kroku kwantyzatora<br />
Rodzaje zniekształce<br />
Słabo zmienne wejcie – obszar ziarnisty (artefakt duej czstoci<br />
próbkowania i sposobu kwantyzacji) konieczno filtrowania<br />
Szybko zmienne wejcie – obszar przecionych zboczy (obszar<br />
nadmiaru)
Modulacja delta – c.d.<br />
DM – kwantyzator<br />
ustalony<br />
DM – kwantyzator<br />
adaptacyjny
Modulacja delta – adaptacja<br />
CFDM (Constant Factor Delta Modulation)<br />
Zasada: w obszarze ziarnistym zmniejszamy szeroko, w obszarze<br />
nadmiaru – zwikszamy<br />
Jak ustali w jakim obszarze si znajdujemy?<br />
W obszarze ziarnistym znak wyjcia kwantyzatora naprzemienny,<br />
w obszarze nadmiaru – stały<br />
Realizacja adaptacji:<br />
s n = 1 gdy D n > 0, s n = -1 gdy D n < 0<br />
∆<br />
n<br />
M1∆<br />
= <br />
M<br />
2∆<br />
n−1<br />
n−1<br />
,<br />
,<br />
s<br />
= s<br />
≠ s<br />
n−1<br />
n−1<br />
M1 = 1/M2 = M > 1 (na ogół M
Modulacja delta – adaptacja – c.d.<br />
System z pamici 2: rozwaamy s n , s n-1 , s n-2<br />
Moliwe przypadki:<br />
1. System włanie przeniósł si do obszaru ziarnistego:<br />
sn<br />
− 2<br />
= sn<br />
− 1<br />
≠ sn,<br />
M = 0.4<br />
2. System cały czas w obszarze ziarnistym<br />
s ≠ s ≠ s , M 0.9<br />
n − 2 n − 1 n<br />
=<br />
3. System włanie wszedł w obszar nadmiaru<br />
sn<br />
− 2<br />
≠ sn<br />
− 1<br />
= sn,<br />
M = 1.5<br />
4. System cały czas w obszarze nadmiaru<br />
s<br />
n −<br />
2<br />
= sn<br />
− 1<br />
= sn,<br />
M = 2.0<br />
Zastosowanie: prom kosmiczny, DM z pamici 7.
Zastosowania<br />
Bardzo popularne w kodowaniu mowy<br />
Uywane powszechnie w<br />
Systemach telefonicznych<br />
Systemach poczty głosowej<br />
Aplikacjach multimedialnych<br />
Standardy przemysłowe opisane w zaleceniach ITU-T:<br />
G.721<br />
G.723<br />
G.726<br />
G.722<br />
Kodowanie obrazów – rzadziej stosowane
Zastosowania – <strong>kodowanie</strong> obrazów<br />
Lewy: <strong>kodowanie</strong> rónicowe 1bpp, SNR = 22.33 dB<br />
Kwantyzator 4 poziomowy, predyktor:<br />
p[<br />
j,<br />
k ]<br />
X [ j,<br />
k − 1] dla k > 0<br />
<br />
= X [ j − 1, k ] dla k = 0, j ><br />
<br />
<strong>12</strong>8 dla k = 0, j = 0<br />
0<br />
Prawy: JPEG 1bpp, SNR = 32.52<br />
JPEG wyranie lepszy
Zastosowania – <strong>kodowanie</strong> obrazów<br />
Zmiana predyktora – dla kadego piksela obliczamy:<br />
p<br />
p<br />
p<br />
1<br />
2<br />
3<br />
p[<br />
= ( X [ j − 1, k ] + X [ j,<br />
k − 1]) / 2<br />
= ( X [ j − 1, k − 1] + X [ j,<br />
k − 1])<br />
= ( X [ j − 1, k − 1] +<br />
j,<br />
k ] = mediana<br />
{ p<br />
1<br />
X [ j − 1, k ])<br />
, p , p }<br />
2<br />
3<br />
/ 2<br />
/ 2<br />
To poprawia SNR do 29.20 dB.
Podsumowanie<br />
DPCM daje gorsze wyniki kompresji ni kwantyzacja<br />
wektorowa, ale jest prostsze w implementacji<br />
Wyjtkowo dobrze nadaje si do kodowania mowy;<br />
standardy przemysłowe<br />
Budowa: predyktor + kwantyzator<br />
Moliwo adaptacji kwantyzatora lub predyktora i<br />
kwantyzatora