DCT w kodowaniu obrazów Zaawansowana Analiza Sygnałów Marek Barcz, STI sem. 09
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
Kodowanie transformujące Jest to nieodzowna część współczesnych aplikacji przetwarzania obrazów i video. Opiera się na założeniu, że piksele w obrazie wykazują pewien poziom korelacji z sąsiadującymi pikselami. Podobnie w transmisji video, sąsiednie piksele w kolejnych ramkach również wykazują wysoki stopień korelacji. Korelacje można wykorzystać w celu estymowania wartości pikseli na podstawie wartości ich sąsiadów. Transformacja zatem polega na odwzorowaniu przestrzennych, skorelowanych danych na nieskorelowane współczynniki.
Transmisja obrazów/video Komponenty klasycznego systemu transmisji obrazu/video: Zadaniem kodera źródłowego jest wykorzystanie nadmiarowości informacyjnej w obrazie w celu zapewnienia odpowiedniego poziomu kompresji. Koder redukuje entropię, co w tym wypadku oznacza zmniejszenie średniej liczby bitów wymaganej do reprezentacji obrazu. Zadaniem kodera kanału jest dodanie nadmiarowości do wyjściowego obrazu, w celu zwiększenia niezawodności transmisji.
Znormalizowana autokorelacja Blok transformujący Dekoreluje informacje zawarte w obrazie, tym samym redukując (a w niektórych przypadkach eliminując) tzw. nadmiarowość międzypikselową. Znormalizowana autokorelacja Obraz oryginalny Histogramy obrazów Jak widać, zaprezentowane obrazy opisane są podobnymi histogramami. Jednak ze znormalizowanych autokorelacji między pikselami w linii widać, że sąsiadujące piksele na rysunku po prawej wykazują periodycznie wysoką autokorelacje (powtarzające się białe linie). Warto wspomnieć, że transformacja jest bezstratną operacją, zatem odwrotna transformata zapewnia idealną rekonstrukcję oryginalnego obrazu.
Blok kwantyzacji Wykorzystuje fakt, że ludzkie oko nie jest w stanie dostrzec wszystkich informacji zawartych w obrazie. Uznawane są one za nadmiarowe i mogą być usunięte bez zauważalnych strat jakości wizualnej. Nadmiarowość taka nazywana jest psychowizualną nadmiarowością. Można to wykorzystać w większym stopniu dla odbiorców o niskim poziomie transmisji bitów, którzy mogą poświęcić jakość obrazów dla osiągnięcia lepszego wykorzystania pasma. Przykładowo, w JPEG kwantyzacja polega na dzieleniu każdego współczynnika macierzy transformacji przez odpowiadający mu element tablicy kwantyzacji i zaokrągleniu wyniku. Wówczas większość współczynników macierzy transformacji, odpowiadających wysokim częstotliwościom, ulega zaokrągleniu do zera (odpowiada to wymazaniu wyższych częstotliwości). Tracimy w ten sposób część danych, dlatego kompresja JPEG jest kompresją stratną.
Blok kodera entropii Wykorzystuje informacje o procesach transformacji i kwantyzacji w celu zredukowania liczby bitów niezbędnej do reprezentacji każdego symbolu na wyjściu kwantyzera.
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
Dyskretna Transformata Kosinusowa DCT (Discrete Cosine Transform) w ciągu ostatniej dekady okazała się być najlepszym rozwiązaniem w kodowaniu transformującym większości systemów wizualnych. DCT jest stosowana w wielu współczesnych standardach kodowania video (MPEG, JVT, itp.) Podobnie do innych transformat, DCT dąży do dekorelacji danych zawartych w obrazie. Po dekorelacji, każdy współczynnik transformaty DCT może być zakodowany niezależnie, bez straty efektywności kompresji.
Jednowymiarowa DCT DCT dla sekwencji o dł. N (u = 0, 1, 2, …, N – 1): Odwrotna DCT: W obu równaniach, α(u) jest definiowane jako:
Jednowymiarowa DCT Z definicji DCT jasno wynika, że dla u = 0: Oznacza to, że pierwszy współczynnik transformaty jest wartością średnią całej sekwencji próbek. W literaturze, wartość tą określa się jako współczynnik DC, podczas gdy pozostałe nazywane są współczynnikami AC. Nazwy pochodzą z czasów, gdy DCT wykorzystano do analizy obwodów prądu stałego i zmiennego.
Jednowymiarowa DCT Jeżeli zignorujemy składniki f(x) i α(u) i wykreślimy wartości funkcji: przy N = 8 dla różnych wartości u, to funkcje te nazywamy bazowymi funkcjami kosinusowymi. Wykres w lewym górnym rogu (u = 0) pokazuje stałą wartość (współczynnik DC). Pozostałe obrazy (u = 1, 2, …, 7) pokazują wykresy dla stopniowo rosnącej częstotliwości (współczynniki AC).
Funkcje bazowe 1-D DCT Jednowymiarowe bazowe funkcje kosinusowe (dla N = 8): Funkcje bazowe najprościej opisać jako kosinusoidę próbkowaną z częstotliwością będącą wielokrotnością /16. Warto zauważyć, iż funkcje te są ortogonalne. Zatem iloczyn dowolnej fali z inną falą, zsumowany po wszystkich próbkach, daje zero, natomiast iloczyn dowolnej fali przez siebie, zsumowany daje wartość stałą. Ortogonalne funkcje też są niezależne, tzn. że żadna z bazowych funkcji nie może być przedstawiona jako kombinacja pozostałych funkcji bazowych.
Jednowymiarowa DCT Jeżeli wejściowa sekwencja zawiera więcej niż N punktów, wówczas może być podzielona na pod-sekwencje o dł. N, a DCT może być zastosowana do każdego z kawałków niezależnie. W każdym z obliczeń wartości punktów funkcji bazowych pozostają niezmienne. Jedynie wartości f(x) będą inne w każdej pod-sekwencji. Funkcje bazowe mogą zatem być obliczane wcześniej (off-line), a następnie mnożone z pod-sekwencjami. Pozwala to obniżyć liczbę wymaganych operacji matematycznych, tym samym zapewniając lepszą wydajność obliczeniową.
Dwuwymiarowa DCT Dwuwymiarowa DCT, jako rozwinięcie przypadku jednowymiarowego, opisana jest wzorem: Transformata odwrotna opisana jest jak poniżej: dla u, v = 0, 1, 2, …, N – 1 oraz α(u) i α(v) zdefiniowanych jak dla jednowymiarowej DCT.
Funkcje bazowe 2-D DCT Dwuwymiarowe funkcje bazowe generowane są poprzez mnożenie poziomo zorientowanych jednowymiarowych funkcji bazowych z tymi samymi funkcjami, zorientowanymi pionowo. Funkcje bazowe dwuwymiarowej DCT dla N = 8 pokazane są na następnym slajdzie. Analogicznie do przypadku jednowymiarowego, można zauważyć, że funkcje bazowe wykazują progresywny wzrost częstotliwości, zarówno w kierunku poziomym, jak i pionowym. Funkcja bazowa w górnym lewym rogu jest wynikiem iloczynu współczynnika DC z jego transformatą.
Funkcje bazowe 2-D DCT Dwuwymiarowe bazowe funkcje kosinusowe (dla N = 8): Kolor szary reprezentuje zero, kolor biały reprezentuje amplitudy dodatnie, a czarny reprezentuje amplitudy ujemne. W kodowaniu, obrazy są dzielone na bloki 8 × 8, a następnie przemnażane przez macierze transformacji reprezentujące pokazane funkcje bazowe.
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
Dekorelacja Polega na usuwaniu nadmiarowości pomiędzy sąsiadującymi pikselami (wówczas nieskorelowane współczynniki mogą być kodowane niezależnie): Znormalizowana autokorelacja po DCT Znormalizowana autokorelacja przed DCT Na rysunku pokazana jest znormalizowana autokorelacja obrazów przed i po DCT. Jak widać, amplituda autokorelacji po transformacji jest bardzo mała we wszystkich przedziałach, również dla skorelowanego obrazu. To dowodzi doskonałych właściwości dekorelujących DCT.
Zagęszczenie energii Skuteczność transformacji można też mierzyć na podstawie możliwości umieszczenia wejściowych danych w jak najmniejszej liczbie współczynników. Współczynniki odpowiadające amplitudom wolnych zamian jasności umieszczane są lewej-górnej części macierzy, a pozostałe w lewej-dolnej części. Wówczas kwantyzator może odrzucać współczynniki o względnie małych amplitudach bez wprowadzania zakłóceń wizualnych w zrekonstruowanym obrazie.
Zagęszczenie energii Przykłady skupiania energii przez DCT: Obraz Jego DCT Nieskorelowane obrazy wykazują większe wariancje intensywności od skorelowanych obrazów. Zatem te pierwsze posiadają zawartość o większej częstotliwości, niż te drugie. Jak widać, transformata nieskorelowanego obrazu ma rozproszoną energię, podczas gdy dla skorelowanego obrazu energia jest skupiona w obszarze niskich częstotliwości. Obrazy Saturna i Dziecka zawierają duże obszary wolno zmieniających się intensywności. Można je zakwalifikować jako obrazy niskiej częstotliwości z niewielką ilością szczegółów. DCT takich obrazów zapewnia dobre zagęszczenie energii w obszarach niskiej częstotliwości. Obrazy Drzew i Pawiana są obrazami progresywnie wzrastającej częstotliwości z dużą ilością szczegółów. W konsekwencji, współczynniki transformaty są rozprzestrzenione po wszystkich częstotliwościach. Obraz Obwodu zawiera sporą liczbę krawędzi (znaczne wariacje intensywności), w związku z czym może być zakwalifikowany jako obraz wysokiej częstotliwości z niewielką ilością szczegółów. Jednakże, obraz wykazuje wysoki stopień korelacji, co zapewnia dobre zagęszczenie energii. Obraz Fali wykazuje okresowość, zatem jego DCT składa się z impulsów o amplitudach proporcjonalnych do wagi danej częstotliwości w oryginalnym obrazie. Na podstawie zaprezentowanych przykładów można wywnioskować, że DCT zapewnia doskonałe zagęszczenie energii dla skorelowanych obrazów.
Rozłączność Równanie opisujące 2-D DCT można też zapisać: dla u, v = 0, 1, 2, …, N – 1. Zaletą tej właściwości jest możliwość obliczenia transformaty w dwóch krokach, przez kolejne zastosowanie operacji jednowymiarowej DCT na wierszach i kolumnach obrazu.
Rozłączność Ideę tego pomysłu przedstawia poniższy rysunek: Własność ta może być zastosowana w ten sam sposób na równaniu odwrotnej dwuwymiarowej transformaty DCT.
Symetria Przedstawione operacje na wierszach i kolumnach są funkcjonalnie identyczne. Taką transformację nazywa się transformacją symetryczną. Inaczej mówiąc, operacje te posiadają identyczne jądro transformacji, które w wypadku DCT wyraża funkcje bazowe. Transformację, która jest rozłączna i symetryczna, można zapisać w postaci macierzowej, w celu znacznego uproszczenia wymaganych obliczeń.
Symetria Postać macierzowa DCT: T = AfA, gdzie: A jest macierzą symetrycznej transformacji o iiiiiwymiarach N × N, gdzie element a(i, j) jest opisany iiiiijako: f jest macierzą obrazu o wymiarach N × N. Jest to niezmiernie przydatna właściwość, gdyż dzięki niej macierz transformacji może być uprzednio obliczona (off-line), a następnie zastosowana na obrazie, tym samym znacznie upraszczając wymaganie obliczeniowe.
Ortogonalność Rozszerzając przedstawione zagadnienia, zdefiniujmy transformatę odwrotną jako: f = A–1T A–1 Funkcje bazowe DCT są ortogonalne, zatem macierz transformaty odwrotnej jest równa swojej transpozycji: A–1 = AT W połączeniu z własnościami dekorelującymi, zapewnia to znaczącą redukcję w obliczeniach ogólnych przeprowadzanych przed transformacją.
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
Szybka DCT Omówione wcześniej właściwości stanowią podstawę do opracowania szybszego algorytmu transformaty kosinusowej. Najpopularniejszy algorytm wykorzystuje Szybką Transformatę Fouriera (FFT) do obliczenia DCT i transformaty do niej odwrotnej (IDCT). W tym miejscu należy wspomnieć, że DCT nie jest rzeczywistą częścią Dyskretnej Transformaty Fouriera (DFT), co można łatwo sprawdzić porównując macierze transformacji DCT i DFT.
Szybka DCT W jednowymiarowej przestrzeni, wykorzystywana dotąd sekwencja f(x) może być wyrażona jako suma składników parzystych i nieparzystych: gdzie: oraz:
Szybka DCT Wówczas operacja sumowania może być rozdzielona, otrzymując:
Szybka DCT Można łatwo pokazać, że otrzymany rezultat jest równy części rzeczywistej FFT przeprowadzonej na Wówczas, dla transformaty odwrotnej, wystarczy obliczyć , natomiast punkty nieparzyste obliczamy wykorzystując zależność: dla: Algorytm ten zaprezentowany został dla jednowymiarowej DCT, jednakże może on być też rozszerzony do zagadnienia dwuwymiarowej DCT (opisane jest to szerzej w podanej literaturze).
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
DCT vs. KLT KLT (Karhunen-Loève Transform) jest liniową transformatą, w której funkcje bazowe oparte są o statystyczne właściwości danych w obrazie. Algorytm jest optymalny w kontekście zagęszczenia energii (umieszcza możliwie jak najwięcej energii w jak najmniejszej liczbie współczynników). Jednak jądro transformacji KLT jest nierozłączne, a więc konieczne jest przeprowadzenia pełnego mnożenia macierzy. KLT jest zatem zależna od ilości danych w obrazie, a tym samym pozbawiona możliwości uprzedniego przeprowadzenia szybkich obliczeń (off-line).
DCT vs. DFT DFT (Discrete Fourier Transform) jest liniowa, rozłączna i symetryczna oraz posiada wbudowane obrazy bazowe i umożliwia szybkie implementacje. Wykazuje również dobre właściwości dekorelujące oraz zagęszczenie energii. Jednakże DFT jest zespoloną transformatą i wymaga zakodowanych informacji zarówno o amplitudzie, jak i o fazie składników obrazu. Dodatkowo, badania wykazały, iż DCT zapewnia lepsze zagęszczenie energii od DFT dla większości obrazów naturalnych.
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
DCT a Teoria Informacji W celu zbadania skuteczności transformaty DCT w zastosowaniu w stratnych standardach kodowania obrazów (np. JPEG) i video (np. MPEG), rozpatrzmy ją w odniesieniu do dwóch zagadnień Teorii Informacji: Redukcji entropii, Współczynnika wzajemnej informacji.
Redukcja entropii Właściwości dekorelacyjne DCT powinny zapewniać znaczną redukcję entropii i informacji o obrazie. Dzięki temu możliwe jest zmniejszenie średniej liczby bitów wymaganych do reprezentacji obrazu. Entropię definiujemy następująco: gdzie p(xi) jest wartością funkcji rozkładu prawd. dla H = xi (w tym wypadku funkcja ta odnosi się do znormalizowanego histogramu obrazu).
Redukcja entropii Poniższa tabela pokazuje wartości entropii obrazów przykładowych oraz ich DCT (zapis DCT(M%) oznacza, że po operacji DCT tylko pierwsze M procent ze wszystkich współczynników zostało zachowanych): Obraz Entropia oryginału DCT(75%) DCT(50%) DCT(25%) Saturn 4.1140 1.9144 0.7504 0.2181 Dziecko 5.7599 1.7073 0.7348 0.2139 Obwód 6.9439 1.4961 0.6906 0.2120 Drzewa 5.7006 1.1445 0.6181 0.2081 Pawian 7.3461 0.9944 0.5859 0.2058 Fala 3.125 1.2096 0.6674 0.2125 Jak widać, operacja DCT redukuje entropię wszystkich obrazów. Redukcja ta pogłębia się, w miarę jak zmniejszamy liczbę zachowanych współczynników. Można zauważyć, iż redukcja entropii dla obrazu Pawiana jest wyjątkowo duża. Z entropii oryginalnego obrazu wnioskujemy, że zawiera on dużo komponentów wysokiej częstotliwości i szczegółów. Zatem kodowanie w domenie przestrzennej jest bardzo nieefektywne, ponieważ poziomy szarości są rozmieszczone niemal jednakowo po obrazie. Jednak operacja DCT dekoreluje obraz, tym samym rozciągając jego histogram. To samo można powiedzieć o innych obrazach wysokiej częstotliwości (Obwód i Drzewa). Dzięki właściwości dekorelującej DCT, dane o oryginalnym obrazie są transformowane w taki sposób, że jego histogram jest rozciągnięty i dla większości wyników amplituda jest bardzo mała.
Redukcja entropii Należy jednak zadać sobie fundamentalne pytanie: ile zakłóceń wizualnych wprowadza do obrazu opisana wyżej procedura kwantyzacji? Na rysunkach przedstawionych na następnym slajdzie zaprezentowano omawiane obrazy zrekonstruowane przy pomocy odwrotnej DCT zastosowanej na skwantowanych współczynnikach. Wyniki pokazano odpowiednio dla 100%, 75%, 50% i 25% zachowanych współczynników.
Redukcja entropii Zrekonstruowane obrazy po stratnej kwantyzacji (IDCT): Pawian DCT(50%) Pawian DCT(100%) Pawian DCT(25%) Pawian DCT(75%) Fala DCT(50%) Fala DCT(100%) Fala DCT(25%) Fala DCT(75%) Drzewa DCT(50%) Drzewa DCT(100%) Drzewa DCT(25%) Drzewa DCT(75%) Obwód DCT(50%) Obwód DCT(100%) Obwód DCT(25%) Obwód DCT(75%) Dziecko DCT(50%) Dziecko DCT(100%) Dziecko DCT(25%) Dziecko DCT(75%) Saturn DCT(50%) Saturn DCT(100%) Saturn DCT(25%) Saturn DCT(75%) DCT(25%) powoduje efekt rozmazania we wszystkich obrazach, ponieważ tylko czwarta część całkowitej liczby współczynników została wykorzystana w rekonstrukcji. DCT(50%) zapewnia prawie identyczną rekonstrukcję we wszystkich obrazach, z wyjątkiem Drzewa i Fali. W wypadku obrazu Drzew, może to być wyjaśnione faktem, że obraz ten zawiera wiele nieskorelowanych szczegółów o wysokiej częstotliwości. Zatem odrzucenie współczynników DCT o wysokiej częstotliwości powoduje obniżenie jakości obrazu. Z kolei przypadek obrazu Fali można łatwo wyjaśnić na podstawie jego DCT (slajd 22). Odrzucenie współczynników wysokiej częstotliwości powoduje usunięcie pewnych częstotliwości, które zawarte były w oryginalnym obrazie. Po takiej operacji, niemożliwe jest osiągnięcie idealnej rekonstrukcji. DCT(75%) zapewnia doskonałą rekonstrukcję dla wszystkich obrazów, poza Falą. Jest to bardzo interesujący wynik, gdyż sugeruje, iż opierając się na wymaganiach na pasmo w odbiornikach, pewna liczba współczynników DCT może być odrzucona przez kwantyzer, przy jednoczesnym zachowaniu akceptowalnej jakości.
Współczynnik wzajemnej informacji Jak wiadomo, transmisja video składa się z sekwencji obrazów (ramek), transmitowanych w określonej kolejności. W ogólnym przypadku, zmiana informacji pomiędzy następującymi po sobie ramkami jest niewielka. Zatem wartości pikseli w jednej ramce mogą być użyte do przewidzenia wartości sąsiednich pikseli w następnej ramce (korelacja chwilowa). Taką nadmiarowość można zatem usunąć, by uzyskać lepszą kompresję.
Współczynnik wzajemnej informacji Jednak gdy dwie kolejne ramki prezentują zmianę sceny, wówczas wzajemna informacja jest mała. Chwilową korelację między ramkami filmu video obliczamy ze Współczynnika Wzajemnej Informacji: gdzie p(x, y) jest łącznym rozkładem prawd. zmiennych losowych X i Y (tutaj: ramki X i ramki Y), zaś p(x) i p(y) reprezentują brzegowe rozkłady prawd. odpowiednio zmiennych X i Y.
Współczynnik wzajemnej informacji Poniżej pokazana jest przykładowa sekwencja trzech kolejnych ramek filmu: Ramki 1 i 2 prezentują wysoką korelację chwilową, natomiast ramki 2 i 3 reprezentują zmianę sceny i pokrycie informacyjne między nimi jest mniejsze. Ramka 1 Ramka 2 Ramka 3
Współczynnik wzajemnej informacji Niech teraz p(x, y) będzie zdefiniowane jako połączenie wartości sąsiednich pikseli w dwóch następujących po sobie ramkach. Wówczas dopuszczalne wartości p(x, y) to: (0, 0), (0, 1), (0, 2), …, (255, 255). Zatem całkowita liczba tych wartości to (255)2. Niech natomiast p(x) i p(y) będą znormalizowanymi histogramami odpowiednio ramek X i Y. Wówczas wzajemna informacja przyjmuje wartości: między ramkami 1 i 2: 1.9336 między ramkami 2 i 3: 0.2785 Jak widać z wyników, ponieważ istnieje wysoka chwilowa korelacja między pierwszymi dwiema ramkami, ich wzajemna informacja jest bardzo wysoka. Natomiast ramki 2 i 3 prezentują zmianę sceny (ujęcia), zatem wzajemna informacja tych dwóch obrazów jest względnie mała.
Plan prezentacji Kodowanie transformujące Jedno- i dwuwymiarowa DCT Właściwości DCT Szybka DCT DCT vs. KLT / DFT DCT a Teoria Informacji Podsumowanie
Podsumowanie Przedstawione właściwości pokazują, jak DCT wykorzystuje nadmiarowość międzypikselową w celu zapewnienia doskonałej dekorelacji obrazów. Dodatkowo, DCT skupia energię w niskich częstotliwościach, w związku z czym niektóre dane o wysokich częstotliwości mogą być odrzucone. Taka kwantyzacja dodatkowo redukuje entropię, czyli średnią liczbę bitów na piksel. Ponieważ natomiast większość kolejnych ramek w transmisji video wykazuje wysoką korelację chwilową, można to wykorzystać by znacznie poprawić wydajność kodowania.
Bibliografia R. J. Clark, “Transform Coding of Images,” New York: Academic Press, 1985. N. Ahmed, T. Natarajan, and K. R. Rao, “Discrete cosine transform,” IEEE Transactions on Computers, 1974. G. Strang, “The Discrete Cosine Transform,” SIAM Review, 1999. S. A. Khayam, “DCT - Theory and Application,” Department of Electrical & Computer Engineering, 2003 J. F. Blinn, “What's the Deal with the DCT?,” IEEE Computer Graphics and Applications, 1993. Haque, “A Two-Dimensional Fast Cosine Transform,” IEEE Transactions on Acoustics, Speech and Signal Processing, 1985. W. B. Pennebaker and J. L. Mitchell, “JPEG – Still Image Data Compression Standard,” Newyork: International Thomsan Publishing, 1993.
Dziękuję za uwagę!