Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i JPEG

Podobne dokumenty
Transformaty. Kodowanie transformujace

Kodowanie transformacyjne. Plan 1. Zasada 2. Rodzaje transformacji 3. Standard JPEG

Kompresja Danych. Streszczenie Studia Dzienne Wykład 13, f(t) = c n e inω0t, T f(t)e inω 0t dt.

Według raportu ISO z 1988 roku algorytm JPEG składa się z następujących kroków: 0.5, = V i, j. /Q i, j

Założenia i obszar zastosowań. JPEG - algorytm kodowania obrazu. Geneza algorytmu KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Joint Photographic Experts Group

Kompresja video (MPEG)

Transformata Fouriera

2 1 3 c c1. e 1, e 2,..., e n A= e 1 e 2...e n [ ] M. Przybycień Matematyczne Metody Fizyki I

SIMR 2016/2017, Analiza 2, wykład 1, Przestrzeń wektorowa

Akwizycja i przetwarzanie sygnałów cyfrowych

Przetwarzanie i transmisja danych multimedialnych. Wykład 8 Transformaty i kodowanie cz. 2. Przemysław Sękalski.

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Wybrane metody kompresji obrazów

Przekształcenia liniowe

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Przedmowa 11 Ważniejsze oznaczenia 14 Spis skrótów i akronimów 15 Wstęp 21 W.1. Obraz naturalny i cyfrowe przetwarzanie obrazów 21 W.2.

Macierze. Rozdział Działania na macierzach

Robert Susmaga. Instytut Informatyki ul. Piotrowo 2 Poznań

Inżynieria obrazów cyfrowych. Ćwiczenie 5. Kompresja JPEG

3. Macierze i Układy Równań Liniowych

Kompresja obrazów w statycznych - algorytm JPEG

WEKTORY I WARTOŚCI WŁASNE MACIERZY. = λ c (*) problem przybliżonego rozwiązania zagadnienia własnego dla operatorów w mechanice kwantowej

Iloczyn skalarny. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 10. wykład z algebry liniowej Warszawa, grudzień 2013

i = [ 0] j = [ 1] k = [ 0]

Przetwarzanie i transmisja danych multimedialnych. Wykład 7 Transformaty i kodowanie. Przemysław Sękalski.

Geometria Lista 0 Zadanie 1

Lista. Przestrzenie liniowe. Zadanie 1 Sprawdź, czy (V, +, ) jest przestrzenią liniową nadr :

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn a 1j a 2j R i = , C j =

Szybka transformacja Fouriera (FFT Fast Fourier Transform)

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. wykład z algebry liniowej Warszawa, styczeń 2009

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

ALGEBRA LINIOWA Z ELEMENTAMI GEOMETRII ANALITYCZNEJ

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kompresja bezstratna. Entropia. Kod Huffmana

= i Ponieważ pierwiastkami stopnia 3 z 1 są (jak łatwo wyliczyć) liczby 1, 1+i 3

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Przestrzeń unitarna. Jacek Kłopotowski. 23 października Katedra Matematyki i Ekonomii Matematycznej SGH

Wykład 14. Elementy algebry macierzy

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

Działania na przekształceniach liniowych i macierzach

Funkcje analityczne. Wykład 4. Odwzorowania wiernokątne. Paweł Mleczko. Funkcje analityczne (rok akademicki 2017/2018)

Funkcje analityczne. Wykład 4. Odwzorowania wiernokątne. Paweł Mleczko. Funkcje analityczne (rok akademicki 2016/2017) dla każdego s = (s.

Iloczyn skalarny, wektorowy, mieszany. Ortogonalność wektorów. Metoda ortogonalizacji Grama-Schmidta. Małgorzata Kowaluk semestr X

Kodowanie i kompresja Streszczenie Studia Wieczorowe Wykład 10, 2007

1. PODSTAWY TEORETYCZNE

5. Rozwiązywanie układów równań liniowych

Zadania z algebry liniowej Iloczyn skalarny, przestrzenie euklidesowe

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łanc Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Zastosowania wyznaczników

Fundamentals of Data Compression

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Kodowanie informacji

NIEOPTYMALNA TECHNIKA DEKORELACJI W CYFROWYM PRZETWARZANIU OBRAZU

Formy kwadratowe. Mirosław Sobolewski. Wydział Matematyki, Informatyki i Mechaniki UW. 14. wykład z algebry liniowej Warszawa, styczeń 2011

Cyfrowe przetwarzanie i kompresja danych

Politechnika Świętokrzyska. Laboratorium. Cyfrowe przetwarzanie sygnałów. Ćwiczenie 6. Transformata cosinusowa. Krótkookresowa transformata Fouriera.

Stosowana Analiza Regresji

Kompresja danych DKDA (7)

Wykład 4. Informatyka Stosowana. Magdalena Alama-Bućko. 25 marca Magdalena Alama-Bućko Wykład 4 25 marca / 25

cx cx 1,cx 2,cx 3,...,cx n. Przykład 4, 5

z = x + i y := e i ϕ z. cos ϕ sin ϕ = sin ϕ cos ϕ

ALGEBRA Z GEOMETRIĄ MACIERZE ODWZOROWAŃ LINIOWYCH

Cyfrowe przetwarzanie i kompresja danych. dr inż.. Wojciech Zając

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Klasyfikacja metod kompresji

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12,

Kody Tunstalla. Kodowanie arytmetyczne

Baza w jądrze i baza obrazu ( )

Układy równań liniowych. Ax = b (1)

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Obraz jako funkcja Przekształcenia geometryczne

Rozdział 1. Wektory losowe. 1.1 Wektor losowy i jego rozkład

Kompresja dźwięku w standardzie MPEG-1

Przekształcenia liniowe

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry Pojęcia podstawowe Klasyfikacja sygnałów

Algebra Liniowa 2 (INF, TIN), MAP1152 Lista zadań

Kompresja sekwencji obrazów

Kodowanie predykcyjne

Lista. Algebra z Geometrią Analityczną. Zadanie 1 Przypomnij definicję grupy, które z podanych struktur są grupami:

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

Teoretyczne podstawy programowania liniowego

Przekształcenie Fouriera obrazów FFT

Postać Jordana macierzy

Elementy grafiki komputerowej. Elementy geometrii afinicznej

9. Dyskretna transformata Fouriera algorytm FFT

BIBLIOTEKA PROGRAMU R - BIOPS. Narzędzia Informatyczne w Badaniach Naukowych Katarzyna Bernat

Algebra liniowa. 1. Macierze.

Zastosowanie kompresji w kryptografii Piotr Piotrowski

a 11 a a 1n a 21 a a 2n... a m1 a m2... a mn x 1 x 2... x m ...

Kompresja sekwencji obrazów - algorytm MPEG-2

MATEMATYKA I SEMESTR ALK (PwZ) 1. Sumy i sumy podwójne : Σ i ΣΣ

1 Zbiory i działania na zbiorach.

Zad. 3: Układ równań liniowych

Analiza korespondencji

Informacja o przestrzeniach Hilberta

Układy równań i nierówności liniowych

4 Zasoby językowe Korpusy obcojęzyczne Korpusy języka polskiego Słowniki Sposoby gromadzenia danych...

Transkrypt:

Tomasz Wykład 11: Transformaty i JPEG

Idea kodowania transformujacego Etapy kodowania 1 Wektor danych x 0,...,x N 1 przekształcamy (odwracalnie!) na wektor c 0,...,c N 1, tak aby: energia była skoncentrowana w kilku współrzędnych (czyli tylko kilka współrzędnych jest ważna); ciag c 0,...,c N 1 nie jest skorelowany (dekorelujemy ciag x 0,...,x N 1 ). 2 Wartości c 0,...,c N 1 kwantyzujemy skalarnie: więcej bitów przydzielamy ważniejszym współrzędnym. 3 Kodujemy bezstratnie wartości skwantyzowane.

Idea kodowania transformujacego Dekodowanie 1 Dekodowanie: odpowiedni algorytm bezstratny. 2 Z odtworzonych wartości skwantyzowanych uzyskujemy przybliżone wartości współczynników po kwantyzacji: c 0,...,c N 1. 3 Stosujemy transformatę odwrotna: z przybliżonych wartości c 0,...,c N 1 uzyskujemy przybliżone wartości x 0,...,x N 1.

Transformaty Kodowanie transformujace Jakie transformaty nas interesuja? traktujemy ciag wartości (x 0,...,x N 1 ) jako wektor w przestrzeni R N, reprezentowany w bazie standardowej; chcemy znaleźć nowa, inna bazę przestrzeni R N i wyrażać wektory w tej nowej bazie; algebraicznie: odpowiada to przekształceniu liniowemu, definiowanemu przez macierz rozmiaru N N; geometrycznie: oznacza to obrót układu współrzędnych.

Pojęcia Kodowanie transformujace Definicja Jednowymiarowa dyskretna transformata liniowa wektora (x 0,...,x N 1 ) przekształca go na wektor (θ 1,...,θ n ) wg wzoru: N 1 θ k = n=0 x n a(k,n) dla k = 0,1,...,N 1, gdzie a i,j dla i,j [0,N 1] to ustalone liczby. Iloczyn skalarny wektorów X = (x 0,...,x N 1 ) i Y = (y 1,...,y n ) jest równy X Y = n i=1 x iy i. Wektory X 1,...,X k sa ortogonalne jeśli X i X j = 0 dla każdego i j. Wektory X 1,...,X k sa ortonormalne jeśli sa ortogonalne i X i X i = 1 dla każdego i [1,k].

Własności Kodowanie transformujace Co daje ortonormalność Transformatę dana przez współczynniki {a i,j } i,j [0,N 1] można zapisać macierzowo jako θ = Ax, gdzie A = (a i,j ). Jeśli wiersze macierzy A = (a i,j ) sa ortonormalne, to A 1 = A T, a zatem: x = A T θ, co wynika z x = A 1 Ax = A T θ.

Własności c.d. Reprezentacje w różnych bazach Niech x będzie wektorem w bazie standardowej (wektory bazy tworza macierz jednostkowa). Wektor θ = Ax jest reprezentacja wektora x w bazie złożonej z wierszy macierzy A: x = A T Ax = A T θ = θ 0 A T 0 +... + θ N 1A T N 1 gdzie A i to i-ty wiersz macierzy A. Transformata oparta na bazie ortonormalnej zachowuje energię Niech energia wektora x = (x 0,...,x N 1 ) będzie równa x x = N 1 i=0 x i 2. Wówczas: N 1 xi 2 = i=0 N 1 θi 2, i=0 ponieważ N 1 i=0 θ 2 i = θ T θ = (Ax) T (Ax) = x T (A T A)x = x T x.

Transformaty dwuwymiarowe Zastosowanie w kodowaniu obrazów Korelacje zachodza zarówno w wierszach jak i w kolumnach! Transformata dwuwymiarowa Dwuwymiarowa dyskretna transformata θ macierzy (x i,j ) i,j [0,N 1] zdefiniowana jest wzorem θ k,l = N 1 i=0 N 1 x i,j a(k,l,i,j) dla k,l = [0,N 1]. j=0

Jakie transformaty dwuwymiarowe? Transformaty dwuwymiarowe stosowane zazwyczaj w kompresji oparte na transformacie jednowymiarowej; najpierw transformata wierszy (macierzy danych x i,j ); potem transformata (taka sama) kolumn macierzy uzyskanej po transformacie wierszy. Interpretacja arytmetyczna: A-macierz transformaty, X-macierz danych niech X i to i-ty wektor macierzy X; wtedy AXi T to transformata i-tego wiersza jako kolumna; czyli xi T A T to transformata i-tego wiersza; a XA T to transformata uzyskana z X po zastosowaniu A do wierszy; ostatecznie: A XA T daje zastosowanie transformaty A do kolumn macierzy XA T.

Baza transformaty 2-wymiarowej Baza transformaty X AXA T Baza składa się z macierzy A T i A j, gdzie A i to i-ty wiersz macierzy A. Wynika to z tożsamości: [AXA T ] k,m = i oraz faktów: A k,i X i,j A m,j = X (A T k A m)(iloczyn skalarny) j elementy {A T k A m} k,m=0,...,n 1 tworza bazę ortonormalna; współczynniki wektora w bazie ortonormalnej sa równe iloczynom skalarnym z odpowiednimi wektorami bazy. Tożsamość: czyli [AXA T ] c,b = j [XA T ] a,b = X a,i A b,i i A c,j [XA T ] j,b = j A c,j l X j,l A b,l = j A c,j X j,l A b,l l

Przykład Kodowanie transformujace Dane: wektory złożone z wartości sasiednich pikseli rozkład energii w danych: energia na obu współrzędnych podobna; stopień korelacji: zazwyczaj wartość drugiego elementu pary zbliżona do wartości pierwszego elementu. Dekorelacja i koncentracja energii obracamy układ współrzędnych o 45 stopni w lewo: energia koncentruje się w pierwszej współrzędnej, brak zależności między pierwsza a druga współrzędna; algebraicznie oznacza to transformatę: A = 1 2 [ 1 1 1 1 ]

Przykład c.d. Kodowanie transformujace Ortogonalność i ortonormalność Macierz spełnia A = 1 2 [ 1 1 1 1 A 2 = I A 1 = A T a stad wynika, że wiersze macierzy A tworza ortonormalna bazę przestrzeni R 2. Przekształcenie skorelowanego wektora x = (b,b) T [ ] [ ] [ ] 1 1 1 b 2b = 2 1 1 b 0 ]

Dyskretna transformata kosinusowa (DCT) Definicja Dyskretna transformata kosinusowa zdefiniowana jest macierza C o współczynnikach: C i,j = C 0,j = 1 (2j + 1) 0π cos N 2N 2 (2j + 1)iπ cos N 2N DCT a przestrzenie liniowe dla j = 0,...,N 1 dla j [0,N 1],i [1,N 1] Wiersze macierzy DCT (C i,j ) sa ortonormalne, w szczególności więc tworza bazę przestrzeni R N.

Dyskretna transformata kosinusowa Interpretacja 1 0-wy wiersz: ciag N wartości N. i-ty wiersz dla i > 0 2 N (cos(iπ 1 2N ),cos(iπ 3 2N 1 ),...cos(iπ 2N 2N )) czyli ciag wartości funkcji cos(iπx) w punktach 2N 1, 2N 3 2N 1,..., 2N. a funkcja cos(iπx) ma okres 2/i.

Dlaczego DCT? Sygnał Strumień danych można modelować jako sygnał (zazwyczaj) ciagł a funkcję. Wyróżniamy następujace cechy sygnału: amplituda okres (częstotliwość) faza. Co wynika z szeregów i transformat Fouriera (intuicje) każdy sygnał cykliczny można wyrazić w przeliczalnej bazie złożonej z funkcji sin i cos o różnych okresach i amplitudach; każdy sygnał można wyrazić w bazie (mocy continuum) złożonej z funkcji sin i cos o różnych okresach i amplitudach; (dyksretna) transformata Fouriera (DFT) jest odpowiednikiem powyższego dla funkcji spróbkowanych. DCT podobna do DFT, z pominięciem jej wad.

Dlaczego DCT c.d. W kodowaniu obrazów w niedużym bloku (np. 8 8): większość energii skoncentrowana w składowych o małych współrzędnych; ludzka percepcja: słabo widzimy składowe o niskich częstotliwościach (p. rysunek). Uwaga: przykład wektorów o długości 2 to też była macierz DCT! DCT dwuwymiarowa:

JPEG Kodowanie transformujace JPEG jest standardem kompresji stosujacym dyskretna transformatę kosinusowa (DCT). Zakładamy, że wartości pikseli to liczby z przedziału [0,2 P 1]. Kodowaniu poddajemy te wartości, po odjęciu od każdej 2 P 1. JPEG: kodowanie 1 Podział na bloki pikseli rozmiaru 8 8 (obraz rozszerzamy do rozmiarów będacych wielokrotnościa 8 poprzez powtórzenie ostatniej kolumny/wiersza odpowiednia liczbę razy).. 2 Transformata DCT na każdym bloku (x i,j ) i,j=0,...,n 1 (θ i,j ) i,j=0,...,n 1 ; 3 Kwantyzacja współczynników po DCT. 4 Kompresja wartości po kwantyzacji: alg. Huffmana połaczony z kodowaniem długości serii.

JPEG: kwantyzacja JPEG: kwantyzacja 1 współczynniki uzyskane po DCT poddawane sa kwantyzacji skalarnej, jednostajnej (tzn. o stałej długości bloku); 2 krok kwantyzacji (długość obszaru kwantyzacji) może być inny dla każdej współrzędnej; kroki kwantyzacji zadane przez macierz kwantyzacji {Q i,j } i,j=0,...,n 1 ; 3 Skwantyzowana wartość współczynnika θ i,j jest równa θi,j l ij = + 0.5 Q i,j czyli oznacza numer obszaru kwantyzacji odpowiadajacego wartości θ i,j (jeśli ponumerujemy w ten sposób, że obszar zawierajacy wartość zero ma numer 0). 4 dekodowanie: wartość l i,j odtworzona jako: θ i,j = l i,j Q i,j.

JPEG: tablica kwantyzacji Jak wyglada tablica kwantyzacji 1 Zasada: krok kwantyzacji rośnie przy ułożeniu ciagu zygzakiem. 2 Uzasadnienie: współczynniki mniej zauważalne można reprezentować z mniejsza dokładnościa. 3 Spodziewany efekt kwantyzacji: w bloku 8 8 uzyskamy dużo zer, w szczególności zerami będa końcowe elementy (w kolejności zygzaka): duży krok kwantyzacji zwiększa zakres wartości, które znajda się w zerowym obszarze kwantyzacji; w typowym bloku (gdzie zróżnicowanie pikseli małe), współczynniki o większych częstotliwościach maja małe wartości.

JPEG: domyślna tablica kwantyzacji Standardowa tablica kwantyzacji w JPEG 16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 14 17 22 29 51 87 80 82 18 33 37 56 68 109 103 77 24 35 55 64 81 104 113 92 49 64 78 87 103 121 120 101 72 92 95 98 112 100 103 99 Kompromis między stopniem kompresji i stopniem zniekształceń zwiększenie stopnia kompresji (kosztem jakości obrazu): zwiększenie wielkości przedziałów kwantyzacji (np., przemnożenie tablicy kwantyzacji przez 2); zmniejszenie zniekształceń (kosztem stopnia kompresji): zmniejszenie wielkości przedziałów kwantyzacji.

Kodowanie wartości skwantowanych Podział danych współczynniki DC (wartości l 0,0 z każdego bloku): oznaczaja jasność (sygnał stały), więc zazwyczaj wartości w sasiednich blokach sa podobne; kodujemy wartości DC ze wszystkich bloków jako jeden ciag (od lewej do prawej, z góry na dół); stosujemy proste kodowanie predykcyjne: przewidywana wartość każdego współczynnika to wartość poprzednia, kodujemy różnice. współczynniki AC (pozostałe) współczynniki AC z każdego bloku kodowane osobno... w kolejności zig-zag... w efekcie od pewnego momentu zazwyczaj będa zera.

Kodowanie wartości skwantowanych c.d. Kodowanie ciagu różnic między współczynnikami DC podział wartości na kategorie: kategoria wartości w kat. 1 0 2 1,1 3 3, 2,2,3 4 7,..., 4;4,5,...,7 i [ 2 i 1 1, 2 i 2 ];[2 i 2,2 i 1 1] tworzymy kody Huffmana dla numerów kategorii; każda wartość kodowana jako para: kod Huffmana numeru kategorii c; oraz 2 c 2 bitów kodujacych wartość w obrębie kategorii (0 bitów dla kategorii 1); uzasadnienie: większość wartości będzie bliskich zeru.

Kodowanie wartości skwantowanych c.d. Kodowanie współczynników AC Element kodowany to trójka (Z,C,B), gdzie: Z to liczba zer poprzedzajacych dany element; C to jego kategoria (jak w DC); B to pozycja w obrębie kategorii (jak w DC); Uwaga1: wartości 0 sa pomijane. Uwaga2: specjalny kod EOB (end of block) oznacza same zera za ostatnia zakodowana wartościa. Przykład 2 8 3 0 0 0 0 1 1 0 0 1 (0,3,2) (0,5,7) (0,3,3) (4,2,1) (0,2,1) (2,2,1) E

Kodowanie wartości skwantowanych c.d. Kodowanie współczynników AC c.d. (kategoria i przesunięcie) parę Z,C (liczba zer poprzedzajacych i numer kategorii) kodujemy razem, przy wykorzystaniu ustalonego kodu prefiksowego (o ile Z 15); wartość B kodujemy jak w DC, czyli na ustalonej liczbie bitów (wynikajacej z wartości C); kod prefiksowy dla par Z,C zawiera też kody specjalne odpowiadajace EOB (koniec bloku, dalej same zera) oraz ZRL (ciag 16 zer);

JPEG: dekodowanie Schemat dekodowania 1 Dekodowanie wartości współczynników (algorytm bezstratny oraz kwantyzacja skalarna): na podstawie tablic kwantyzacji. 2 Odwrotna transformata kosinusowa dla każdego bloku rozmiaru 8 8. 3 Odtworzenie obrazu z bloków. 4 Usunięcie dodanych w procesie kodowania wierszy i kolumn.

Inne zastosowania transformat Zastosowania kompresja wideo: MPEG, H.263 i H.261 (telekonferencje); kompresja dźwięku: MP3 (czyli MPEG 1 Layer 3). kompresja falkowa: soon. O czym nie powiedziałem... kodowanie obrazów kolorowych; zastosowanie transformat do kodowania dźwięku; dynamiczny dobór liczby bitów przypadajacych na poszczególne współrzędne. Ciekawy wykład o transformatatach: http://users.utu.fi/jkari/compression/