algorytmy kodowania predykcyjnego - instytut...

22
Algorytmy kodowania predykcyjnego 1. Zasada kodowania 2. Algorytm JPEG-LS 3. Algorytmy CALIC, LOCO-I 4. Algorytmy z wielokrotn rozdzielczoci. Progresywna transmisja obrazów

Upload: lenhi

Post on 10-Dec-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Algorytmy kodowania predykcyjnego

1. Zasada kodowania2. Algorytm JPEG-LS3. Algorytmy CALIC, LOCO-I4. Algorytmy z wielokrotn� rozdzielczo�ci�.

Progresywna transmisja obrazów

Kompresja obrazów - zestawienie

1.24 : 11.12 : 152 64358 374Miasto

1.93 : 11.62 : 133 88040 543Ziemia

1.70 : 11.07 : 138 54161 4302_ch

1.99 : 11.14 : 132 96857 5041_ch

St. kompr.Huffman ró�nice

St. kompr.Huffman

Huffman ró�nice

HuffmanObraz

Algorytmy koduj�ce ró�nice wyra�nie lepsze.

Jaki jest tego powód ?

Zasada kodowanie predykcyjnego

� Im bardziej zró�nicowane prawdopodobie�stwa wyst�pienia symboli tym wi�ksz� kompresj� mo�na uzyska�

� Przykład 1: alfabet dwuznakowy, prawdopodobie�stwa p, q; p + q = 1.

Entropia H = -p log2 p – (1-p) log2 (1-p)

Entropia osi�ga maksimum gdy

P = q = 0.5, minimum gdy p lub

q � 1

Zasada kodowanie predykcyjnego – c.d.

Przykład 2 – alfabet o�mioznakowy:

1.6260.0010.010.050.4390.4390.050.010.001

2.2281/1284/12816/12843/12843/12816/1284/1281/128

2.8111/161/163/163/163/163/161/161/16

31/81/81/81/81/81/81/81/8

Ha8a7a6a5a4a3a2a1

Im bardziej zró�nicowane prawdopodobie�stwa, tym mniejsza entropia, czyli mniejsza �rednia bitowa.

Zasada kodowanie predykcyjnego – c.d.

� Jak osi�gn�� tak� sytuacj�?

� U�y� odwracalnego przekształcenia transformuj�cego ci�g wej�ciowy na ci�g o zró�nicowanych prawdopodobie�stwach

� U�ywa� innego rozkładu prawdopodobie�stwa dla ka�dego symbolu, by zwi�kszy� prawdopodobie�stwo wyst�pienia kodowanego symbolu (kontekst)

� Zadba�, by dekoder bez �adnej dodatkowej informacji „wiedział” jakiej transformacji lub jakiego rozkładu u�yto � przekształcenie odwrotne lub rozkład b�dzie do odtworzenia bez �adnych dodatkowych informacji (np. na podstawie znajomo�ci wcze�niej zakodowanych elementów).

� Tak działaj�ce algorytmy = algorytmy kodowania predykcyjnego.

Kodowanie przedykcyjne – przykład

� Przykład – kodowanie ró�nic:� Predykcja : xn = xn-1

� Transformacja: xn � en = xn – xn

� Rozkład ró�nic bardziej zró�nicowany – kompresja• Przykład: plik 2_ch, fragment (8 x 16 pikseli)

Rozkład oryginalnych zmiennych:

68827252911133

747372717069686766

Rozkł�d ró�nic

3221141227442452

4544434243210-1-2-3

Dekodowanie – odkodowanie en , nast�pnie wyliczenie xn –transformacja odwracalna.

Algorytm JPEG-LS

� Dla ka�dego piksela – liniowa predykcja w oparciu o warto�ci 3 s�siednich pikseli

� 8 mo�liwych schematów predykcji� Bł�dy predykcji kodujemy algorytmem entropijnym

XA

BC

(A + B)/2P7

B + (A – C)/2P6

A + (B – C)/2P5

A + B – CP4

CP3

BP2

AP1

bez predykcjiP0

FormułaNr Uwaga:(0,0) – zawsze P0(0,i) – zawsze P1(i,0) – zawsze P2

Algorytm JPEG-LS – c.d.Wyniki:

52 18952 54253 52053 77153 90951 28348 81856 061Miasto

32 67233 07233 05733 57034 08932 13732 29538 295Ziemia

36 42835 96533 46332 42943 44537 12641 29858 3062_ch

32 17933 06329 74231 05538 26131 55937 22053 4311_ch

P7P6P5P4P3P2P1P0Obraz

• Na ogół – dla ró�nych obrazów optymalne ró�ne metody

• Kodowanie predykcyjne wyra�nie lepsze od metod słownikowych

• Je�eli nie kodujemy w czasie rzeczywistym – próbujemy wszystkie schematy, wybieramy optymalny (informacja w nagłówku)

• Dla grafiki komputerowej metody słownikowe mog� by� lepsze

Algorytm CALIC

� CALIC = Context Adaptive Lossless Image Compression� Zaproponowany w 1995 jako propozycja nowego

standardu ISO/JPEG� U�ywa kontekstu do okre�lenia predykcji jak te� rozkładu

prawdopodobie�stwa w czasie kodowania� Najlepsza z istniej�cych metod bezstratnej kompresji

obrazów naturalnych� Przy kodowaniu ka�dego punktu korzysta z informacji o

otoczeniu:

XWWW

NENNW

NNENN X – kodowany piksel

Pozostałe piksele znane koderowi i dekoderowi w momencie kodowania X

Algorytm CALIC - schemat

Główne etapy algorytmu:� Predykcja wst�pna (wykrycie kraw�dzi – gradienty)� Korekta predykcji wst�pnej zale�na od kontekstu� Obliczenie bł�du predykcji; odwzorowanie na zakres równy naturalnej

zmienno�ci piksela� Kodowanie bł�du predykcji w sposób zale�ny od kontekstu

Predykcja wst�pnadh = |W – WW| + |N – NW| + | NE – N|dv = |W – NW| + |N – NN| + |NE – NNE|

dv >> dh � kraw�d� pozioma, najlepsza aproksymacja X to Wdh >> dv � kraw�d� pionowa, najlepsza aproksymacja X to NNie ma wyra�nych ró�nic � aproksymujemy �redni� wa�on� otoczenia

Algorytm CALIC – predykcja

IF (dv – dh > 80) {ostra kraw�d� pozioma}PX = W

ELSE IF (dh – dv > 80) {ostra kraw�d� pozioma}PX = N

ELSE {PX = (W+N)/2 + (NE – NW)/2IF (dv – dh > 32) {kraw�d� pozioma}

PX = (PX + W)/2ELSE IF (dv – dh > 8) {słaba kraw�d� pozioma}

PX = (3 PX + W)/4ELSE IF (dh – dv > 32) {kraw�d� pionowa}

PX = (PX + N)/2ELSE IF (dh – dv > 8) {słaba kraw�d� pionowa}

PX = (3 PX + N)/4}

Algorytm CALIC – korekta predykcji

Korekta zale�na od kontekstu

� Predykcja gradientowa nie usuwa całej redundancji� Musimy uwzgl�dni� dodatkowe informacje o wzajemnych relacjach

mi�dzy X a otoczeniem – kontekst� Definicja kontekstu:

Y = {N, W, NW, NE, NN, WW, 2 N – NN, 2 W – WW}Kwantyzacja: Yi < PX � Yi = 0 w przeciwnym razie Yi = 1To daje 144 mo�liwe wektory binarneDodatkowo: = dh + dv + 2 |N – PN|, kwantyzacja na przedziałyTo daje w sumie 4 * 144 = 576 mo�liwych kontekstów

� Podczas kodowania zapami�tujemy bł�d kodowania dla ka�dego piksela, wyznaczamy �redni bł�d w danym kontek�cie – to pozwala dokona� korekty predykcji zale�nej od kontekstu:

PX = PX + <e(Y, )>

Algorytm CALIC – kodowanie bł�du

Wyznaczenie bł�du predykcji i kodowanie

� Wyznaczmy bł�d predykcji: e = PX – X� X, PX – liczby z zakresu 0 ... M – 1 � e mo�e by� pomi�dzy –(M – 1)

a M – 1. � Przed zakodowaniem algorytm dokonuje transformacji e do przedziału

0 .. M – 1 � W trakcie kodowania bierzemy pod uwag� kontekst wyznaczony tym

razem przez – kwantyzowane w 8 przedziałach (osiem kontekstów kodowania)

� Od kontekstu kodowania zale�y wybór alfabetu (alfabety o małej długo�ci, kodowanie rekurencyjne.

Podsumowanie:CALIC to dobry, ale bardzo zło�ony algorytm – potrzeba znalezienia

podobnie skutecznego, ale prostszego schematu.

Algorytm LOCO-I

� LOCO-I = Low Complexity Lossless Compression for Images

� Zaproponowany w 1996 przez grup� z HP� Jest podstaw� dla aktualnej wersji JPEG-LS� Schemat podobny do CALIC:

� Wst�pna predykcja� Wyznaczenie kontekstu, korekta predykcji� Obliczenie bł�du predykcji, odwzorowanie na naturalny zakres� Kodowanie (dynamiczne kody Golomba)

� Informacja o otoczeniu:

XW

NENNW X – kodowany piksel

Algorytm LOCO-I – c.d.

Wst�pna predykcjaZadana przez algorytm:IF NW max(W, N)

PX = max(W, N)ELSE{

IF NW � min(W, N)PX = min(W, N)

ELSEPX = N + W – NW

}

Wst�pna predykcja jest poprawiana w zale�no�ci od kontekstu opartego o:

D1 = NE – N D2 = N – NW D3 = NW – W

Algorytm LOCO-I – c.d.

Okre�lenie kontekstu� Wybór trzech dodatnich współczynników T1 < T2 < T3 u�ywanych

do kwantyzacji składowych Di

� Wyznaczenie składowych wektora kontekstu Q Di � - T3 => Qi = -4

-T3 < Di � - T2 => Qi = -3-T2 < Di � - T1 => Qi = -2-T1 < Di < 0 => Qi = -1

Di = 0 => Qi = 00 < Di � T1 => Qi = 1T1 < Di � T2 => Qi = 2T2 < Di � T3 => Qi = 3

T3 < Di => Qi = 4

� Uto�samienie Q i –Q gdy Q1 < 0 (wtedy SIGN = -1). To daje (9*9*9 + 1) /2 = 365 ró�nych kontekstów

Algorytm LOCO-I – c.d.

Korekta predykcji zale�ne od kontekstu

PX = PX + SIGN * < e(Q)>

Wyznaczenie bł�du predykcji, transformacja i kodowanie• e = X – PX• Transformacja odchylenia

e < -M/2 => e = e + Me > M/2 => e = e - M

• Kodowanie odchylenia – dynamiczne kodowanie Golomba (optymalne dla kodowania du�ych liczb o rozkładzie geometrcznym).

Metody predykcyjne - podsumowanie

1.36:148 2491.29:150 765 1.34:148 818Miasto

2.59:125 2802.51:126 0882.04:132 137Ziemia

2.24:129 2132.16:130 3442.02:132 4292_ch

2.48:126 4332.40:127 3392.11:131 0551_ch

CALICNowy JPEG

Stary JPEG

Obraz

� Metody predykcyjne – najlepsze metody bezstratnej kompresji obrazów

� LOCO-I – wyra�nie lepszy od „starego” JPEG, nieznacznie słabszy od CALIC – nowy standard JPEG-LS

� Maksymalne stopnie kompresji < 3:1 – konieczno�� poprawy – kompresja stratna

Techniki z wieloma poziomami rozdzielczo�ci

• Metody, w których tworzone i kodowane s� kolejno reprezentacje obrazów o ró�nych poziomach rozdzielczo�ci

• Najbardziej znana metoda: HINT (Hierachical Interpolation)

Kolejno�� kodowania:

• punkty �

• punkty

• punkty X

• punkty *

• punkty �

Progresywna transmisja obrazów

• Polega na przesyłaniu przez sie� obrazów z coraz lepszymi rozdzielczo�ciami

• Stosowana przy konieczno�ci przegl�dania du�ych obrazów przez sie� o niskiej przepustowo�ci

• Pozwala na szybsze zorientowanie si� w zawarto�ci obrazu

PrzykładU�ytkownik ma znale�� 1 spo�ród 30 obrazów o rozdzielczo�ci 1024 x 1024 poprzez sie� o przepustowo�ci 56 kbps. Przejrzenie całej bazy –8 x 1024 x 1024/56 000 sek > 1 h. 1 przybli�enie – bloki 8 x 8 reprezentowane jedn� warto�ci� – jeden obraz transmitowany przez < 2.5 sek, pełna baza < 1.5 min2 przybli�enie – ploki 4 x 4 reprezentowane jedn� warto�ci� – by poprawi� wy�wietlenie jednego obrazu trzeba dodatkowo 7 sek, dla całej bazy ~ 4 min.

Progresywna transmisja obrazów - przykład

Progresywna transmisja obrazów - przykład