Przetwarzanie i transmisja danych multimedialnych Wykład 8 Transformaty i kodowanie cz. 2 Przemysław Sękalski sekalski@dmcs.pl Politechnika Łódzka Katedra Mikroelektroniki i Technik Informatycznych DMCS Wykład opracowano na podstawie ksiąŝki Wprowadzenie do kompresji danych A. Drozdek Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006
Plan wykładu Część pierwsza Idea transformacji Definicja transformaty i transformaty odwrotnej Kodowanie a transformacja Separowalność i symetryczność Wektory bazowe, ortogonalność i inne definicje Transformata Karhunena-Loevego Transformata Walsha-Hadamarda Część druga Transformata Fouriera FFT Transformata kosinusowa DCT Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 2
Idea transformacji - przypomnienie Zmniejszenie nakładu obliczeniowego mnoŝenie R + R R log + R dodawanie log( xy) = log x + log y Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 3
Idea transformacji przypomnienie Wydobycie informacji nie dostępnej w danej dziedzinie funkcja f Dziedzina czasu t T T - f(t) ω F(ω) Dziedzina częstotliwości funkcja F T funkcja transformacji (przekształcenia) T - - transformata odwrotna Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 4
Okresowość funkcji Funkcję f(x) nazywamy okresową o okresie T jeśli dla kaŝdego x zachodzi równość: f ( x + T ) = f ( x) Podstawowy okres T 0 jest najmniejszym okresem funkcji f Odwrotność T 0 jest podstawową częstotliwością funkcji f Wielokrotności T 0 (T k = nt 0 ) są równieŝ okresami funkcji f Odwrotności T k (f k =/T k ) nazywane są częstotliwościami harmonicznymi funkcji f Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 5
Warunki Dirichleta i szereg Fouriera. Funkcja f(x) jest funkcją ograniczoną, określoną w kaŝdym punkcie przedziału [-π, π] 2. Funkcja f(x) ma skończoną liczbę punktów nieciągłości w przedziale [-π, π] 3. Funkcja f(x) ma skończoną liczbę ekstremów w przedziale [-π, π] Jeśli funkcja f(x) spełnia warunki Dirichleta to moŝe być rozwinięta w szereg Fouriera f ( x) a a cos( kx) b sin( kx) = 2 0 + k = k + ( ) k Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 6
Szereg Fouriera f ( x) a a cos( kx) b sin( kx) = 2 0 + k = k + ( ) k f ( x) = k = c e k jkx postać zespolona c a 2 = c = ( a ib ) c ( a ib ) 0 0 2 k k k = + 2 k k k dla k>0 a k, b k, c k nazywane są współczynnikami Fouriera Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 7
W jaki sposób obliczyć współczynniki Fouriera? π π π f ( x) dx = a ( ) 0 + ak cos( kx) + bk sin( kx) dx = 2 k = π = 0 = 0 π π π = a0dx + a k cos( kx) dx + b k sin( kx) dx = 2 π k = π π π π a0dx a0x π a a 0 0 2 2 π π = = = π = π π f ( x) dx Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 8
W jaki sposób obliczyć współczynniki Fouriera? π a = f ( x) cos( kx) dx k π π π b = f ( x)sin( kx) dx k π π π c = f ( x) e jkx dx k 2π c 0 π π = 2 π π f ( x) dx Jest to wartośćśrednia w przedziale [-π, π], zwana równieŝ wartością DC Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 9
przykład Funkcja f=- x dla -<x<, f=0 dla pozostałych x Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 0
Transformata Fouriera F( f ) = f ( x) e dx = = 2 π f ( x) e j2π fx jωx dx Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006
Odwrotna transformata Fouriera j2π fx f ( x) = F( f ) e df = = 2 π jωx F( ω) e d ω Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 2
Przykład Impuls prostokątny Signal Corrupted with Zero-Mean Random Noise 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0. 0 0 50 00 50 200 250 300 350 400 450 500 time (milliseconds) Y(f) 0.045 0.04 0.035 0.03 0.025 0.02 0.05 Single-Sided Amplitude Spectrum of y(t) 0.0 0.005 0 0 50 00 50 200 250 300 350 400 450 500 Frequency (Hz) Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 3
Dwuwymiarowa TF = j2 π ( ux vy) F( u, v) f ( x, y) e dxdy = j2 π ( ux+ vy) f ( x, y) F( u, v) e dudv Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 4
Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 5
Dyskretna TF N = x= 0 j2 π kx / N F( k) f ( x) e dla k = 0,..., N- N f ( x) = F( k) e j2 π kx / N dla x = 0,..., N- N k = 0 Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 6
Wystarczy przesłać tylko połowę składników transformaty, gdyŝ drugą część moŝna zrekonstruować. Szybka transformata Fouriera FFT umoŝliwia wyznaczenie dyskretnej transformaty Fouriera za pomocą N lgn operacji mnoŝenia i dodawania (dla 2D N 2 lgn) FFT wymaga by macierz była kwadratowa rzędu 2 n Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 7
Przykład obraz oryginalny Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 8
FFT z pominięciem współ. wyŝszych rzędów [8, 8] [2,2] Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 9
Widmo amplitudowe i fazowe 2 2 ( ) ( ) F( k) = Re F( k) + Im F( k) F( k) = F( k) e j θ k Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 20
Zjawisko Gibbsa W punktach nieciągłości na granicach obszarów transformata Fouriera powoduje powstanie duŝych błędów (widoczne jako oscylacje po odtworzeniu). Zjawisko to zwane jest efektem Gibbsa. Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 2
Transformata kosinusowa DCT N F(0) = f ( x) N x= 0 N 2 π k(2x + ) F( k) = f ( x)cos dla k=, 2,..., N- N x= 0 2N Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 22
Odwrotna transformata kosinusowa IDCT N 2 π k(2x + ) f ( x) = F(0) + F( k)cos N N k = 0 2N dla x =, 2,..., N- Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 23
Dwuwymiarowa DCT2 i IDCT2 N N 2 π k(2x + ) π m(2y + ) F( k, m) = c( k) c( m) f ( x, y)cos cos N x= 0 y= 0 4N 4N dla k, m=, 2,..., N- N N 2 π k(2x + ) π m(2y + ) f ( x, y) = c( k) c( m) F( k, m)cos cos N k = 0 m= 0 4N 4N dla x, y =, 2,..., N- dla i = 0 c( i) = 2 dla pozostalych i Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 24
Zalety DCT Przekształcenie DCT powoduje dobrą dekorelację danych wejściowych Kompresja energii jest znaczna i porównywalna z KLT Współczynniki DCT o największej wariancji zajmują około 25% transformaty UŜywana w JPEG. Współczynniki kodowane za pomocą kodowania Huffmana Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 25
Przykład DCT PRZED KOMPRESJĄ PO KOMPRESJI DCT ZAMIAST [8,8] [4,4] Błąd kompresji (negatyw) Obrazowanie współczynników DCT Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 26
Po kompresji DCT [8,8] [2,2] Przemysław Sękalski, Przetwarzanie i transmisja danych multimedialnych, wykład 8, 2006 27