22.04.2014 Views

Wykład 12 - kodowanie różnicowe - MARS

Wykład 12 - kodowanie różnicowe - MARS

Wykład 12 - kodowanie różnicowe - MARS

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!