Joint Photographic Experts Group

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

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

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

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Klasyfikacja metod kompresji

Kompresja obrazów w statycznych - algorytm JPEG

Klasyfikacja metod kompresji

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Wybrane metody kompresji obrazów

dr inż. Piotr Odya Wprowadzenie

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

Grafika Komputerowa Wykład 1. Wstęp do grafiki komputerowej Obraz rastrowy i wektorowy. mgr inż. Michał Chwesiuk 1/22

Kompresja bezstratna. Entropia. Kod Huffmana

Transformaty. Kodowanie transformujace

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

Transformata Fouriera

Nierówność Krafta-McMillana, Kodowanie Huffmana

Kody Tunstalla. Kodowanie arytmetyczne

Def. Kod jednoznacznie definiowalny Def. Kod przedrostkowy Def. Kod optymalny. Przykłady kodów. Kody optymalne

Dane obrazowe. R. Robert Gajewski omklnx.il.pw.edu.pl/~rgajewski

Kodowanie Huffmana. Platforma programistyczna.net; materiały do laboratorium 2014/15 Marcin Wilczewski

Temat: Algorytm kompresji plików metodą Huffmana

Krótki przegląd pierwszych standardów kompresji obrazów

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

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 6, strona 1. Format JPEG

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

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

Przetwarzanie obrazu cyfrowego

mgr inż. Grzegorz Kraszewski SYSTEMY MULTIMEDIALNE wykład 4, strona 1. GOLOMBA I RICE'A

Poradnik Kompresja JPEG r sekwencyjnej kompresji bazowej JPEG YCbCr RLE Baseline Optimized

Waldemar Izdebski - Wykłady z przedmiotu SIT / Mapa zasadnicza 30

Teoria Informacji - wykład. Kodowanie wiadomości

KODY SYMBOLI. Kod Shannona-Fano. Algorytm S-F. Przykład S-F

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.

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

teoria informacji Entropia, informacja, kodowanie Mariusz Różycki 24 sierpnia 2015

Sieci neuronowe - projekt

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

dr inż. Piotr Odya dr inż. Piotr Suchomski

GRAFIKA RASTROWA. WYKŁAD 1 Wprowadzenie do grafiki rastrowej. Jacek Wiślicki Katedra Informatyki Stosowanej

Wstęp do Informatyki

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

9. Dyskretna transformata Fouriera algorytm FFT

FORMATY GRAFICZNE. Dobra ilustracja przychodzi w małym pliku. David Siegel, Tworzenie stron WWW. 1. Rodzaje plików graficznych

FORMATY PLIKÓW GRAFICZNYCH

Kodowanie informacji

Przekształcenie Fouriera obrazów FFT

Granica kompresji Kodowanie Shannona Kodowanie Huffmana Kodowanie ciągów Kodowanie arytmetyczne. Kody. Marek Śmieja. Teoria informacji 1 / 35

Grafika Komputerowa Wykład 2. Przetwarzanie obrazów. mgr inż. Michał Chwesiuk 1/38

Cechy formatu PNG Budowa bloku danych Bloki standardowe PNG Filtrowanie danych przed kompresją Wyświetlanie progresywne (Adam 7)

Grafika komputerowa. Dla DSI II

FFT i dyskretny splot. Aplikacje w DSP

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

Zastosowania grafiki komputerowej

Rozszerzenia plików graficznych do publkacji internetowych- Kasia Ząbek kl. 2dT

Wykład II. Reprezentacja danych w technice cyfrowej. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

3. Przetwarzanie analogowo-cyfrowe i cyfrowo-analogowe... 43

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

Wymiana i składowanie danych multimodalnych

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

ZADANIE 1. Rozwiązanie:

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Technologie cyfrowe semestr letni 2018/2019

Kompresja video (MPEG)

Niech x 1,..., x n będzie ciągiem zdarzeń. ---

Parametryzacja obrazu na potrzeby algorytmów decyzyjnych

Podstawowe pojęcia. Teoria informacji

Teoria informacji i kodowania Ćwiczenia

Układy stochastyczne

Algorytmy kodowania entropijnego

Cyfrowe Przetwarzanie Obrazów. Karol Czapnik

Algorytmy i struktury danych. wykład 8

Kodowanie i entropia

1 Macierze i wyznaczniki

Analiza głównych składowych- redukcja wymiaru, wykł. 12

KODY SYMBOLI. Materiały KODA, A.Przelaskowski. Koncepcja przedziałów nieskończonego alfabetu

Algorytmy zachłanne. dr inż. Urszula Gałązka

Program wykładu. 1. Systemy rejestracji obrazów technologie CCD, CMOS

Micha Strzelecki Metody przetwarzania i analizy obrazów biomedycznych (2)

Kodowanie informacji. Przygotował: Ryszard Kijanka

0 + 0 = 0, = 1, = 1, = 0.

Definicja. Jeśli. wtedy

Szybka transformacja Fouriera (FFT Fast Fourier Transform)

Fundamentals of Data Compression

Podstawy kompresji danych

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

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

Grafika rastrowa (bitmapa)-

Biocentrum Ochota infrastruktura informatyczna dla rozwoju strategicznych kierunków biologii i medycyny POIG /09

Kodowanie źródeł sygnały video. Sygnał video definicja i podstawowe parametry

INFORMATYKA WSTĘP DO GRAFIKI RASTROWEJ

0-0000, , , itd

Kompresja danych DKDA (7)

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

Cyfrowe przetwarzanie obrazów i sygnałów Wykład 3 AiR III

FORMATY GRAFICZNE. Dobra ilustracja przychodzi w małym pliku. David Siegel, Tworzenie stron WWW. 1. Rodzaje plików graficznych

Podstawy grafiki komputerowej

Kompresja dźwięku w standardzie MPEG-1

Transkrypt:

Joint Photographic Experts Group Artur Drozd Uniwersytet Jagielloński 14 maja 2010

1 Co to jest JPEG? Dlaczego powstał? 2 Transformata Fouriera 3 Dyskretna transformata kosinusowa (DCT-II) 4 Kodowanie Huffmana 5 Algorytm JPEG Transformacja kolorów i redukcja rozdzielczości Rozłożenie obrazu na bloki DCT-II Kwantyzacja Przestawienie zygzakowate macierzy i kodowanie Huffmana 6 Dekompresja 7 Przykład

Co to jest JPEG? Dlaczego powstał? Co to jest JPEG? Dlaczego powstał?

Co to jest JPEG? Dlaczego powstał? Co to jest JPEG? JPEG - format kompresji stratnej statycznych obrazów rastrowych, przeznaczony głównie do przetwarzania obrazów naturalnych (pejzaży, portretów itp.), charakteryzujących się płynnymi przejściami barw oraz brakiem lub małą ilością ostrych krawędzi i drobnych detali. Dlaczego powstał? Motywacją do powstania tego standardu było ujednolicenie algorytmów kompresji obrazów monochromatycznych i kolorowych Prace nad standardem rozpoczęły się w kwietniu 1983 roku w organizacji ISO. W 1986 roku z inicjatywy ISO oraz CCITT powstał zespół ekspertów nazwany Joint Photographic Experts Group (ang. Połączona Grupa Ekspertów Fotograficznych), który zjednoczył wysiłki różnych niezależnych grup. Standard o nazwie ISO/IEC IS 10918-1 ITU-T Recommendation T.81 został opublikowany w dwóch częściach w 1991 roku i definiował podstawowy, sekwencyjny tryb kompresji stratnej, oparty na dyskretnej transformacie kosinusowej (DCT) oraz jego różne rozszerzenia.

Co to jest JPEG? Dlaczego powstał? Co to jest JPEG? JPEG - format kompresji stratnej statycznych obrazów rastrowych, przeznaczony głównie do przetwarzania obrazów naturalnych (pejzaży, portretów itp.), charakteryzujących się płynnymi przejściami barw oraz brakiem lub małą ilością ostrych krawędzi i drobnych detali. Dlaczego powstał? Motywacją do powstania tego standardu było ujednolicenie algorytmów kompresji obrazów monochromatycznych i kolorowych Prace nad standardem rozpoczęły się w kwietniu 1983 roku w organizacji ISO. W 1986 roku z inicjatywy ISO oraz CCITT powstał zespół ekspertów nazwany Joint Photographic Experts Group (ang. Połączona Grupa Ekspertów Fotograficznych), który zjednoczył wysiłki różnych niezależnych grup. Standard o nazwie ISO/IEC IS 10918-1 ITU-T Recommendation T.81 został opublikowany w dwóch częściach w 1991 roku i definiował podstawowy, sekwencyjny tryb kompresji stratnej, oparty na dyskretnej transformacie kosinusowej (DCT) oraz jego różne rozszerzenia.

Co to jest JPEG? Dlaczego powstał? Co to jest JPEG? JPEG - format kompresji stratnej statycznych obrazów rastrowych, przeznaczony głównie do przetwarzania obrazów naturalnych (pejzaży, portretów itp.), charakteryzujących się płynnymi przejściami barw oraz brakiem lub małą ilością ostrych krawędzi i drobnych detali. Dlaczego powstał? Motywacją do powstania tego standardu było ujednolicenie algorytmów kompresji obrazów monochromatycznych i kolorowych Prace nad standardem rozpoczęły się w kwietniu 1983 roku w organizacji ISO. W 1986 roku z inicjatywy ISO oraz CCITT powstał zespół ekspertów nazwany Joint Photographic Experts Group (ang. Połączona Grupa Ekspertów Fotograficznych), który zjednoczył wysiłki różnych niezależnych grup. Standard o nazwie ISO/IEC IS 10918-1 ITU-T Recommendation T.81 został opublikowany w dwóch częściach w 1991 roku i definiował podstawowy, sekwencyjny tryb kompresji stratnej, oparty na dyskretnej transformacie kosinusowej (DCT) oraz jego różne rozszerzenia.

Co to jest JPEG? Dlaczego powstał? Co to jest JPEG? JPEG - format kompresji stratnej statycznych obrazów rastrowych, przeznaczony głównie do przetwarzania obrazów naturalnych (pejzaży, portretów itp.), charakteryzujących się płynnymi przejściami barw oraz brakiem lub małą ilością ostrych krawędzi i drobnych detali. Dlaczego powstał? Motywacją do powstania tego standardu było ujednolicenie algorytmów kompresji obrazów monochromatycznych i kolorowych Prace nad standardem rozpoczęły się w kwietniu 1983 roku w organizacji ISO. W 1986 roku z inicjatywy ISO oraz CCITT powstał zespół ekspertów nazwany Joint Photographic Experts Group (ang. Połączona Grupa Ekspertów Fotograficznych), który zjednoczył wysiłki różnych niezależnych grup. Standard o nazwie ISO/IEC IS 10918-1 ITU-T Recommendation T.81 został opublikowany w dwóch częściach w 1991 roku i definiował podstawowy, sekwencyjny tryb kompresji stratnej, oparty na dyskretnej transformacie kosinusowej (DCT) oraz jego różne rozszerzenia.

Transformata Fouriera Transformata Fouriera

Transformata Fouriera Transformata Fouriera Niech f : R n R L 1 (R n ), definiujemy transformatę Fouriera jako + F (ξ) = f (x)e 2πixξ dx oraz odwrotną transformatę Fouriera + f (x) = F (ξ)e 2πixξ dξ Jeżeli zmienna x oznacza czas (s) to zmienna ξ oznacza częstotliwość (Hz).

Transformata Fouriera Transformata Fouriera Niech f : R n R L 1 (R n ), definiujemy transformatę Fouriera jako + F (ξ) = f (x)e 2πixξ dx oraz odwrotną transformatę Fouriera + f (x) = F (ξ)e 2πixξ dξ Jeżeli zmienna x oznacza czas (s) to zmienna ξ oznacza częstotliwość (Hz).

Transformata Fouriera Dla przypadku dyskretnego mamy i sygnału jednowymiarowego: Jednowymiarowa DFT Dla ciągu liczb rzeczywistych f 0,..., f N 1 1D DFT nazywamy N liczb F 0,..., F N 1, gdzie N 1 F k = f j e 2iπjk N, k = 0,..., N 1 oraz 1D IDFT f k = 1 N j=1 N 1 F j e 2iπjk N, k = 0,..., N 1 j=1

Transformata Fouriera Dwuwymiarowa DFT Dla sygnału dwuwymiarowego reprezentowanego przez macierz rzeczywistą f M(M N) mamy 2D DFT M 1 N 1 F xy = f xy e 2iπmx + 2iπny M N x=0 y=0 oraz 2D IDFT f xy = 1 MN M 1 N 1 x=0 y=0 F xy e 2iπmx M + 2iπny N

Dyskretna transformata kosinusowa (DCT-II) Dyskretna transformata kosinusowa (DCT-II)

Dyskretna transformata kosinusowa (DCT-II) DCT-II jest szczególnym przypadkiem 2D DFT. Transformata ta nie zajmuje się składowymi sinusowymi. DCT-II Dla f M(N N) mamy DCT-II oraz IDCT-II N 1 N 1 ( ) ( (2x + 1)πu (2y + 1)πv F uv = α uα v f xy cos cos 2N 2N x=0 y=0 N 1 N 1 ( ) ( (2x + 1)πu (2y + 1)πv f xy = α uα v F uv cos cos 2N 2N u=0 v=0 ) ) gdzie α t = { 1 N, t = 0 2 N, t 0

Dyskretna transformata kosinusowa (DCT-II) + Większość współczynników jest zwykle bliska 0. Przekształcenie wielowymiarowe DCT-II jest separowalne tzn. możliwe do uzyskania poprzez odpowiednie przekształcenia na poszczególnych wymiarach. F 00 jest składową stałą sygnału DCT ma cechę skupiania energii tzn. Współczynniki F uv odpowiadające amplitudom wolnych zmian jasności znajdują się w lewej górnej części macierzy F (czyli nad przekątną), natomiast współczynniki odpowiadające szybkim zmianom jasności znajdują się w prawej dolnej części (pod przekątną).

Dyskretna transformata kosinusowa (DCT-II) + Większość współczynników jest zwykle bliska 0. Przekształcenie wielowymiarowe DCT-II jest separowalne tzn. możliwe do uzyskania poprzez odpowiednie przekształcenia na poszczególnych wymiarach. F 00 jest składową stałą sygnału DCT ma cechę skupiania energii tzn. Współczynniki F uv odpowiadające amplitudom wolnych zmian jasności znajdują się w lewej górnej części macierzy F (czyli nad przekątną), natomiast współczynniki odpowiadające szybkim zmianom jasności znajdują się w prawej dolnej części (pod przekątną).

Kodowanie Huffmana Kodowanie Huffmana

Kodowanie Huffmana Dany jest alfabet źródłowy S = {x 1,..., x n}, niech prawdopodobieństwo wystąpienia symbolu x j wynosi p j. Kodowanie Huffmana polega na utworzeniu słów kodowych (ciągów bitowych), których długość jest odwrotnie proporcjonalna do prawdopodobieństwa (tj. im częściej symbol występuje, tym krótszy jest jego kod). Własności jest kodem prefiksowym; oznacza to, że żadne słowo kodowe nie jest początkiem innego słowa średnia długość kodów jest najmniejsza spośród kodów prefiksowych jeśli prawdopodobieństwa są różne, tzn. p j > p i, to długość kodu dla symbolu x j jest nie mniejsza od kodu dla symbolu x i słowa kodu dwóch najmniej prawdopodobnych symboli mają równą długość dwa słowa kodowe o tej samej długości różnią się tylko jednym, ostatnim bitem

Kodowanie Huffmana Dany jest alfabet źródłowy S = {x 1,..., x n}, niech prawdopodobieństwo wystąpienia symbolu x j wynosi p j. Kodowanie Huffmana polega na utworzeniu słów kodowych (ciągów bitowych), których długość jest odwrotnie proporcjonalna do prawdopodobieństwa (tj. im częściej symbol występuje, tym krótszy jest jego kod). Własności jest kodem prefiksowym; oznacza to, że żadne słowo kodowe nie jest początkiem innego słowa średnia długość kodów jest najmniejsza spośród kodów prefiksowych jeśli prawdopodobieństwa są różne, tzn. p j > p i, to długość kodu dla symbolu x j jest nie mniejsza od kodu dla symbolu x i słowa kodu dwóch najmniej prawdopodobnych symboli mają równą długość dwa słowa kodowe o tej samej długości różnią się tylko jednym, ostatnim bitem

Kodowanie Huffmana Algorytm Huffmana 1 Określ prawdopodobieństwo (lub częstość występowania) dla każdego symbolu ze zbioru S. 2 Utwórz listę drzew binarnych, które w węzłach przechowują pary: symbol, prawdopodobieństwo. Na początku drzewa składają się wyłącznie z korzenia. 3 Dopóki na liście jest więcej niż jedno drzewo, powtarzaj: 1 Usuń z listy dwa drzewa o najmniejszym prawdopodobieństwie zapisanym w korzeniu. 2 Wstaw nowe drzewo, w którego korzeniu jest suma prawdopodobieństw usuniętych drzew, natomiast one same stają się jego lewym i prawym poddrzewem. Korzeń drzewa nie przechowuje symbolu. Drzewo, które pozostanie na liście, jest nazywane drzewem Huffmana. Prawdopodobieństwo zapisane w korzeniu jest równe 1, natomiast w liściach drzewa zapisane są symbole.

Kodowanie Huffmana Przykład Mamy następujące elementy: (A; 0, 1), (B; 0, 2), (C; 0, 3), (D; 0, 4), wykonujemy następujące kroki: 1 Łączymy A i B 2 Łączymy drzewo AB z C 3 Łączymy drzewo ABC z D Otrzymaliśmy następujące kody: A = 000 B = 001 C = 01 D = 1

Algorytm JPEG Algorytm JPEG

Algorytm JPEG Schemat algorytmu 1 Transformacja kolorów i redukcja rozdzielczości 2 Rozłożenie obrazu na bloki 3 DCT-II na każdym bloku 4 Kwantyzacja 5 Przestawienie zygzakowate macierzy i kodowanie Huffmana

Algorytm JPEG Schemat algorytmu 1 Transformacja kolorów i redukcja rozdzielczości 2 Rozłożenie obrazu na bloki 3 DCT-II na każdym bloku 4 Kwantyzacja 5 Przestawienie zygzakowate macierzy i kodowanie Huffmana

Algorytm JPEG Transformacja kolorów i redukcja rozdzielczości Obraz macierz pikseli. Grayscale 8 bitów na piksel Wyrównanie względem zera poprzez odjęcie 128 (dostajemy liczby z [ 128, 127]) RGB 24 bity na piksel (po 8 na kolor) Konwersja RGB YCbCr (ponieważ ludzkie oko jest bardziej wrażliwe na zmiany jasności niż zmiany kolorów) zgodnie ze wzorem: { Y = 0,299R + 0,587G + 0,114B Cb = 128 + 0,5R - 0,418688G - 0,081312B Cr = 128-0,168736R - 0,331264G - 0,53B gdzie Y jest składową luminacji, a Cb i Cr to składowe barwy ( chrominacji ) [odpowiednio antyniebieska i antyczerwona]. Zmiana próbkowania składowych chrominacyjnych format 4:4:4 - składowe chrominacji bez zmian. format 4:2:2 - rozdzielczość pozioma Cb i Cr zmniejszana jest o połowę format 4:2:0 - rozdzielczość Cb i Cr zmniejszana jest o połowę

Algorytm JPEG Transformacja kolorów i redukcja rozdzielczości Obraz macierz pikseli. Grayscale 8 bitów na piksel Wyrównanie względem zera poprzez odjęcie 128 (dostajemy liczby z [ 128, 127]) RGB 24 bity na piksel (po 8 na kolor) Konwersja RGB YCbCr (ponieważ ludzkie oko jest bardziej wrażliwe na zmiany jasności niż zmiany kolorów) zgodnie ze wzorem: { Y = 0,299R + 0,587G + 0,114B Cb = 128 + 0,5R - 0,418688G - 0,081312B Cr = 128-0,168736R - 0,331264G - 0,53B gdzie Y jest składową luminacji, a Cb i Cr to składowe barwy ( chrominacji ) [odpowiednio antyniebieska i antyczerwona]. Zmiana próbkowania składowych chrominacyjnych format 4:4:4 - składowe chrominacji bez zmian. format 4:2:2 - rozdzielczość pozioma Cb i Cr zmniejszana jest o połowę format 4:2:0 - rozdzielczość Cb i Cr zmniejszana jest o połowę

Algorytm JPEG Rozłożenie obrazu na bloki Grayscale Podział obrazka na bloki 8 8 pikseli. RGB Każda składowa Y, Cb, Cr dzielona jest na bloki 8 8 pikseli. W zależności od formatu (4:x:y) składowe Cb i Cr mogą zajmować 8 8, 16 8, 16 16 oryginalnego obrazka. Uwaga Wymiary obrazka nie muszą być wielokrotnościami 8 (16), wtedy uzupełniamy odpowiednio z prawej strony i z dołu do wielokrotności 8 (16) na kilka sposobów: uzupełnienie zerami (najprościej, ale najgorzej) uzupełnienie kolorem ostatniego piksela uzupełnienie takimi pikselami aby IDCT zwróciła wartości jak najbliższe wartością oryginalnym.

Algorytm JPEG Rozłożenie obrazu na bloki Grayscale Podział obrazka na bloki 8 8 pikseli. RGB Każda składowa Y, Cb, Cr dzielona jest na bloki 8 8 pikseli. W zależności od formatu (4:x:y) składowe Cb i Cr mogą zajmować 8 8, 16 8, 16 16 oryginalnego obrazka. Uwaga Wymiary obrazka nie muszą być wielokrotnościami 8 (16), wtedy uzupełniamy odpowiednio z prawej strony i z dołu do wielokrotności 8 (16) na kilka sposobów: uzupełnienie zerami (najprościej, ale najgorzej) uzupełnienie kolorem ostatniego piksela uzupełnienie takimi pikselami aby IDCT zwróciła wartości jak najbliższe wartością oryginalnym.

Algorytm JPEG Rozłożenie obrazu na bloki Grayscale Podział obrazka na bloki 8 8 pikseli. RGB Każda składowa Y, Cb, Cr dzielona jest na bloki 8 8 pikseli. W zależności od formatu (4:x:y) składowe Cb i Cr mogą zajmować 8 8, 16 8, 16 16 oryginalnego obrazka. Uwaga Wymiary obrazka nie muszą być wielokrotnościami 8 (16), wtedy uzupełniamy odpowiednio z prawej strony i z dołu do wielokrotności 8 (16) na kilka sposobów: uzupełnienie zerami (najprościej, ale najgorzej) uzupełnienie kolorem ostatniego piksela uzupełnienie takimi pikselami aby IDCT zwróciła wartości jak najbliższe wartością oryginalnym.

Algorytm JPEG DCT-II Na każdym bloku 8 8 wykonujemy DTC Otrzymujemy 16 bitową macierz F M(8 8) F 00 nazywany jest współczynnikiem DC Pozostałe 63 współczynniki nazywane są współczynnikami AC

Algorytm JPEG Kwantyzacja Współczynniki macierzy F uv poddawane są kwantyzacji liniowej przy użyciu macierzy kwantyzacji 16 11 10 16 24 40 51 61 12 12 14 19 26 58 60 55 14 13 16 24 40 57 69 56 Q = 14 17 22 29 51 87 80 62 18 22 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 Otrzymujemy macierz współczynników B uv = round ( F uv Q uv ), u, v = 0,..., 7 po kwantyzacji, gdzie round(x) oznacza najmniejszą liczbę całkowitą większą bądź równą liczbie rzeczywistej x. Kwantyzacja zeruje większość współczynników odpowiedzialnych za wysokie częstotliwości (pod przekątną), ponieważ oko ludzkie jest bardziej czułe na niskie częstotliwości (mała wrażliwość na amplitudę szybkich zmian jasności).

Algorytm JPEG Kwantyzacja Ustalanie poziomu kompresji W JPEG można ustalić poziom jakości QL (quality level) - liczba naturalna od 1 do 100. Mniejszy QL gorsza jakość lepszy współczynnik kompresji Zmiana współczynnika jakości polega na manipulacji macierzą kwantyzacji. QL = 50 - najlepsze wyważenie pomiędzy jakością obrazu, a stopniem kompresji Niech Q QL oznacza macierz kwantyzacji przy QL Przyjmujemy Q 50 = Q Q 100 = ones(8, 8) QL > 50 : Q QL = (100 QL) 50 Q 50 QL < 50 : Q QL = 50 QL Q50 Po wymnożeniu współczynniki macierzy Q QL są obcinane do zakresu [1, 255]

Algorytm JPEG Przestawienie zygzakowate macierzy i kodowanie Huffmana Ustawiamy współczynniki w wektor (mniej więcej) rosnąco względem częstotliwości. 0 1 5 6 14 15 27 28 2 4 7 13 16 26 29 42 3 8 12 17 25 30 41 43 9 11 18 24 31 40 44 53 10 19 23 32 39 45 52 54 20 22 33 38 46 51 55 60 21 34 37 47 50 56 59 61 35 36 48 49 57 58 62 63 W procesie kwantyzacji większość współczynników odpowiedzialnych za wysokie częstotliwości została zaokrąglona do zera. Dzięki temu masz wektor od pewnego momentu będzie zawierał tylko zerowe elementy, zastępujemy niepotrzebne zera specjalnym symbolem EOB. Tak obcięty wektor jest następnie kompresowany metodą Huffmana.

Dekompresja Dekompresja

Dekompresja Dekompresja polega na wykonaniu tych samych kroków co w kompresji tylko w odwrotnej kolejności, czyli

Przykład Przykład

Przykład Octave

Przykład Użyte materiały http://pl.wikipedia.org/wiki/kodowanie Huffmana http://pl.wikipedia.org/wiki/jpeg http://en.wikipedia.org/wiki/jpeg www.cmmsigma.eu/download/mat dsp/kompresja jpeg.pdf

Dziękuję za uwagę.