Kodowanie transformacyjne Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG
Zasada Zasada podstawowa: na danych wykonujemy transformacje która: Likwiduje korelacje Skupia energię w kilku komponentach KaŜdy z komponentów podlega kwantyzacji i kodowaniu zgodnego z jego naturą Najbardziej znana implementacja kodowanie stratne JPEG Ogólny schemat kodowania rysunek na następnej stronie
Ogólny schemat kodowania transformacyjnego Transformacja y T(x) Kwantyzacja q Q(y) Kodowanie c C(q) Transf. Odwrotna X T -1 (Y) Dekwantyzacja Y Q -1 (q) Dekodowanie q C -1 (c) T C odwracalne; Q nieodwracalna wprowadza zniekształcenia
Kodowanie transformacyjne przykład wzrost 65 75 6 7 56 8 68 5 4 5 69 62 76 waga 17 188 15 17 13 23 16 11 8 153 148 14 164 Dane wykazują korelację: waga 2.5 wzrost Energia x 2 1 + x 2 2 - obie składowe istotne Przekształcenie likwidujące korelacje: 64 12 y cos( α) y1 sin( α) sin( α) x cos( α) x 1 tan( α) 2.5
Kodowanie transformacyjne przykład c.d. y 182 22 162 184 141 218 174 9 161 163 153 181 135 y 1 3-2 -4 1-4 -6-7 1-9 -6-9 -15 Na wskutek transformacji: znika korelacja w danych energia zdominowana przez pierwszą składową MoŜemy zaniedbać drugą składową i pomimo to uzyskać (przy rekonstrukcji) dobrą aproksymację danych
Główne etapy procesu Transformacja Dzielimy ciąg danych wejściowych na bloki o ustalonej długości KaŜdy z bloków oddzielnie poddajemy odwracalnej transformacji W ciągu przekształconym róŝne elementy mają róŝne własności statystyczne (wkład do energii wariancja) Kwantyzacja poddajemy jej ciąg przekształcony Strategia kwantyzacji zaleŝy od poŝądanej średniej bitowej statystyki róŝnych elementów efektu zniekształceń współczynników przekształconego ciągu na rekonstrukcję Mechanizm alokacji bitów RóŜne współczynniki mogą być kodowane róŝnymi technikami Kodowanie binarne etykiety kwantyzacji podlegają jakiejś metodzie kodowania binarnego (o stałej długości Huffmana arytmetyczne).
Transformacje Ograniczamy się do przekształceń liniowych: y n N 1 i a n ixi y A x Rozmiar N względy praktyczne Większe N większa szansa na obcięcie słabo zmiennych składowych wzrost złoŝoności obliczeniowej (szybciej niŝ liniowo) moŝliwość zmian charakterystyk sygnału wewnątrz bloku Przekształcenie ortogonalne zachowanie normy A -1 A T y 2 A x 2 (A x) T (A x) x T A T A x x T x x 2
Transformacje dwuwymiarowe Kodowanie transformacyjne często uŝywane do kodowania obrazów. Obraz tablica dwuwymiarowa Ogólna transformacja liniowa bloku X (N x N): 1 1 N i N j l k j i j i l k C X Y C macierz N 2 x N 2 ZałoŜenie przekształcenie rozłączne: Y A A X A X A Y T T 1 1 N i N j j l j i i k l k a X a Y Redukcja złoŝoności obliczeniowej O(N 4 ) O(N 3 )
Interpretacja przekształceń Przekształcenia jednowymiarowe: Y A X X A T Y x x 1 a a 1 a a 1 11 y y 1 y a a 1 + a y1 a 1 11 Wynik: oryginalny sygnał rozwijamy w bazie kolumn macierzy transponowanej (wierszy macierzy transformacji). Współczynniki transformacji współczynniki tego rozwinięcia. Przekształcenia dwuwymiarowe rozwinięcie tablicy sygnału w bazie macierzy jeŝeli A[a a 1 a 2... a N-1 ] macierz przekształcenia jednowymiarowego to macierz bazowa ij: b ij a i a j T
WaŜne przekształcenia Dyskretne przekształcenie kosinusowe (DCT) a i j α i N (2j+ 1) iπ cos 2N α i 1 dla i 2 dlai> Kolejne wiersze coraz wyŝsza częstotliwość (rysunek dla N8)
WaŜne przekształcenia c.d. Baza macierzy dwuwymiarowych: Wzrost wariancji od b do b 77 : Własności DCT: Nie zaleŝy od danych Jest przekształceniem ortogonalnym Dla danych z duŝą korelacją b. dobrze aproksymuje KLT Istnieją efektywne sposoby obliczania DCT (dla N8 zamiast mnoŝeń i 896 dodawań tylko 54 mnoŝeń 464 dodawań i 6 przesunięć
Standard JPEG Najbardziej znana metoda stratnej kompresji obrazów od 1993 standard ISO Znakomita reprezentacja obrazów z 1 bpp znośna z.25 bpp Główne etapy algorytmu Tab. Huffmana Przesunięcie poziomu 8 x 8 DCT Kwantyzacja DC DPCM AC zigzac VLC VLC Tab. kwant Tab. Huffmana
Standard JPEG KaŜda ze składowych (RGB YIQ YUV) jest przetwarzana oddzielnie Krok pierwszy przesuwamy wartość piksela o 2 p-1 (dla p8 o 128) Krok drugi podział na bloki o rozmiarze 8 x 8. Gdy wymiar w którymś kierunku nie jest wielokrotnością 8 uzupełniamy ostatni wiersz (kolumnę) odpowiednią ilość razy. Wykonujemy DCT Krok trzeci kwantyzacja Kwantyzacja stała w zerze Krok kwantyzacji dla kaŝdego współczynnika określony w tablicy kwantyzacji Q ij Przepis na kwantyzację l ij y ij +. 5 Qij
Standard JPEG c.d. 156 157 158 158 155 158 159 156 151 15 148 15 139 139 139 14 142 143 142 143 127 128 13 129 128 127 127 126 12 12 123 126 118 12 12 12 118 117 12..3.1 1..9-1.1.5-3.4 -.1 -.5 -.8 -.1 -.6 2.4 5.5 4.. 1.5 -.3 2. -.8 -.5 -.1 6..8-1.3-2.7 -.6.8-1.8 -.7-3.4.2 -.1.2 1.4 -.8-1.3 2.2-5.7.2 -.1-2.2-1.5.3 1.8 1.3 37.8 -.5-1.1 -.6.4 1.1 2.3 4.6-12.4 1.1.8-1.1 -.4 1.2-2.2 6.6 39.9 99 13 1 112 98 95 92 72 11 12 13 87 78 64 49 92 113 14 81 64 55 35 24 77 13 19 68 56 37 22 18 62 8 87 51 29 22 17 14 56 69 57 4 24 16 13 14 55 6 58 26 19 14 12 12 61 51 4 24 16 1 11 16 3-9 1 2
Standard JPEG c.d. Tabela kwantyzacji oko ludzkie bardziej czułe na niskie częstości niŝ na wysokie stąd taki dobór Q ij Sygnał DC wolno zmienny od bloku do bloku kodowanie DPCM. RóŜnice kodowane kodem Huffmana Sygnał AC zamieniony na wektor o 63 składowych poprzez skanowanie zigzac
Standard JPEG c.d. Powstały wektor duŝa szansa na to Ŝe zawiera długie serie zer Gdy końcowa sekwencja zawiera same zera wysyłamy symbol EOB po ostatnim niezerowym elemencie Wcześniejsze sekwencje kodujemy jako Z/C gdzie Z liczba etykiet zerowych poprzedzających symbol zaś C kategoria symbolu niezerowego jaki mamy zakodować AC w naszym przykładzie: 1-9 3... Sekwencje Z/C kodujemy wykorzystując ustalone tablice kodowania Huffmana Zakodowanie całej sekwencji (DC i AC) naszego bloku wymaga 18 bitów czyli 9/32 bpp.
Standard JPEG c.d. 32 11 123 12 12-18 12 118 118 118 42 12 118 117 117 123 12 12 13 13 129 129 128 128 128 127 141 141 14 14 139 138 138 137 151 151 15 149 149 148 159 159 158 157 157 156 155 155 Współczynnik jakości przemnoŝenie tablicy kwantyzacji przez czynnik: 12 12 12 117 12 118 118 mniejszy od 1 lepsza jakość większa średnia bitowa większy od 1 na odwrót 126 127 143 127 142 123 128 143 129 142 126 13 14 128 139 12 127 139 12 139 15 148 15 151 156 159 158 155 158 158 157 156
JPEG - przykłady Podsumowanie:.5 bpp.25 bpp JPEG bardzo efektywny schemat kompresji obrazów naturalnych stopień kompresji lepszy niŝ 1:1 Przy niŝszych średnich bitowych widoczne efekty zblokowania