KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

Podobne dokumenty
Kompresja obrazów w statycznych - algorytm JPEG

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

Kompresja sekwencji obrazów - algorytm MPEG-2

Inżynieria obrazów cyfrowych. Ćwiczenie 5. Kompresja 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 sekwencji obrazów

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

Joint Photographic Experts Group

Wybrane metody kompresji obrazów

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

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

Przetwarzanie obrazu cyfrowego

Klasyfikacja metod kompresji

Klasyfikacja metod kompresji

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Kodowanie transformujace. Kompresja danych. Tomasz Jurdziński. Wykład 11: Transformaty i 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.

Kody Tunstalla. Kodowanie arytmetyczne

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

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

Kodowanie podpasmowe. Plan 1. Zasada 2. Filtry cyfrowe 3. Podstawowy algorytm 4. Zastosowania

Python: JPEG. Zadanie. 1. Wczytanie obrazka

Kompresja video (MPEG)

Kompresja danych DKDA (7)

Transformaty. Kodowanie transformujace

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

dr inż. Piotr Odya Wprowadzenie

Temat: Algorytm kompresji plików metodą Huffmana

Zastosowanie kompresji w kryptografii Piotr Piotrowski

Kwantyzacja wektorowa. Kodowanie różnicowe.

Obraz jako funkcja Przekształcenia geometryczne

Transformata Fouriera

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

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

Zastosowania grafiki komputerowej

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

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

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Instrukcja do pracowni specjalistycznej

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

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

Sygnał a informacja. Nośnikiem informacji mogą być: liczby, słowa, dźwięki, obrazy, zapachy, prąd itp. czyli różnorakie sygnały.

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

FFT i dyskretny splot. Aplikacje w DSP

Podstawowe pojęcia. Teoria informacji

Sieci neuronowe - projekt

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

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

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

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

Kompresja dźwięku w standardzie MPEG-1

Fundamentals of Data Compression

Kompresja bezstratna. Entropia. Kod Huffmana

Teoria Informacji i Metody Kompresji Danych

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

Akwizycja obrazów. Zagadnienia wstępne

Cyfrowe Przetwarzanie Obrazów. Karol Czapnik

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

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

Podstawy transmisji multimedialnych podstawy kodowania dźwięku i obrazu Autor Wojciech Gumiński

Grafika komputerowa. Oko posiada pręciki (100 mln) dla detekcji składowych luminancji i 3 rodzaje czopków (9 mln) do detekcji koloru Żółty

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

Nowoczesne metody emisji ucyfrowionego sygnału telewizyjnego

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 5 Kodowanie słownikowe. Przemysław Sękalski.

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Formaty plików graficznych

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

W11 Kody nadmiarowe, zastosowania w transmisji danych

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Kompresja JPG obrazu sonarowego z uwzględnieniem założonego poziomu błędu

Entropia Kodowanie. Podstawy kompresji. Algorytmy kompresji danych. Sebastian Deorowicz

POSZUKIWANIE MIAR OCENY DEGRADACJI OBRAZÓW WSKUTEK KOMPRESJI METODĄ JPEG *

dr inż. Jacek Naruniec

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

Podstawy kompresji danych

Kodowanie informacji

Bogusław Jackowski GRAFIKA DYSKRETNA BACHOTEK 1998

Wstęp Statyczne kody Huffmana Dynamiczne kody Huffmana Praktyka. Kodowanie Huffmana. Dawid Duda. 4 marca 2004

TECHNIKI MULTIMEDIALNE

Technologie cyfrowe semestr letni 2018/2019

Elementy grafiki komputerowej

Pracownia Komputerowa wykład V

LABORATORIUM TELEMONITORINGU OBIEKTÓW I AGLOMERACJI. Temat: Metody anonimizacji obrazu

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje

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

NOWOCZESNE METODY EMISJI UCYFROWIONEGO SYGNAŁU TELEWIZYJNEGO

teoria informacji Kanały komunikacyjne, kody korygujące Mariusz Różycki 25 sierpnia 2015

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

Przedstawiamy Państwu tekst będący

Temat 7. Dekodery, enkodery

Metody kompresji i przechowywania obrazów

Kodowanie Shannona-Fano

Nierówność Krafta-McMillana, Kodowanie Huffmana

FORMATY PLIKÓW GRAFICZNYCH

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Inżynieria obrazów cyfrowych. Ćwiczenie 3. Wybrane modele kolorów i ich zastosowania

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

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

Techniki multimedialne

Transkrypt:

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG Joint Photographic Expert Group - 1986 ISO - International Standard Organisation CCITT - Comité Consultatif International de Téléphonie et Télégraphie Standard ISO - 11 WYKŁAD 13 Zastosowanie algorytmu - kompresja cyfrowych obrazów w fotograficznych Założenia: obraz monochromatyczny tablica liczb całkowitych opisujących jasność punktów obrazu obraz barwny tablice liczb całkowitych (zazwyczaj trzy) opisujące obraz w języku j przyjętego modelu barw n.p. dla modelu RGB trzy tablice określaj lające zawartości trzech barw podstawowych 1

Algorytm kodowania obrazu 1. Konwersja obrazu do modelu YIQ (obrazy barwne) 2. Podział obrazu na bloki 3. Obliczenie transformaty kosinusowej dla bloków 4. Kwantyzacja współczynnik czynników w transformaty 5. Konwersja tablicy współczynnik czynników w do postaci wektora 6. Kodowanie wektora współczynnik czynników 1. Konwersja obrazu do modelu YIQ Przykładowo, dla modelu RGB obraz opisany jest przy pomocy trzech tablic [ r ], G = [ g ], B [ b ] R = = Konwersja polega na opisaniu obrazu przy pomocy trzech nowych tablic Y, I, Q, Q których elementy oblicza się według zależno ności y i q 0.229 = 0.168 0.212 0.587 0.257 0.528 0.114 r 0.321 g 0.311 b 2

Po wykonaniu konwersji obraz jest opisany przy pomocy trzech nowych tablic [ y ], I = [ i ], Q [ q ] Y = = Tablica Y określa tak zwaną Q chrominancję. 2. Podział obrazu na bloki luminancję,, natomiast I i Tablice Y, I i Q po przeskalowaniu tak, że e ich elementy stają się liczbami całkowitymi dzieli się na bloki (mniejsze tablice) o rozmiarze 8x8, opisane funkcją. f ( x, y ) x = 0,1,...,7 y = 0,1,...,7 3. Obliczanie transformaty kosinusowej (DCT) dla bloków f(x,y) F(u,v) F(u,v) C(u)C(v ) 4 = 7 7 x= 0 y= 0 f ( 2x+ 1 2y + 1 x, y)cos up cos vp 16 16 F(u,v) f(x,y) f ( x, y ) 1 4 7 7 = u= 0 v = 0 C( u )C( v )F( u,v 2x + 1 2 y + 1 )cos up cos vp 16 16 gdzie C( u ) 1 / = 1 2 dla dla u = 0 u 0 i 1 / C( v ) = 1 2 dla dla v = 0 v 0 3

Fragment obrazu płaszczyzna Blok obrazu wejściowego f(x,y) F(u,v) Blok jako funkcja Transformata DCT funkcji Fragment obrazu szachownica Blok obrazu wejściowego Blok jako funkcja f(x,y) F(u,v) Transformata DCT funkcji 4

Fragment obrazu fotograficznego Blok obrazu wejściowego f(x,y) F(u,v) Blok jako funkcja Transformata DCT funkcji Funkcja i transformata dla obrazu fotograficznego f(x,y) = 186 198 1 190 182 177 182 197 179 184 183 176 173 172 175 184 188 182 180 178 174 172 171 166 132 130 139 146 151 169 191 201 131 134 137 140 139 139 139 138 153 157 161 172 177 145 89 49 190 178 192 196 120 43 39 47 176 184 187 112 41 39 43 44 F(u,v) = 1.2047 0.1372-0.0212-0.0364 0.0023 0.0088 0.0023 0.0002 0.2165-0.1758 0.0319 0.0240-0.0012-0.0143-0.0025-0.0002-0.0087 0.1324 0.0194-0.0460-0.0065 0.0029 0.0046 0.0001 0.0169-0.0018-0.0613 0.0242 0.0146-0.0103-0.0063-0.0006-0.0315-0.0626 0.0572-0.0192-0.0225 0.0000 0.0069-0.0004 0.0287 0.0069-0.0122-0.0150 0.0260 0.0086-0.0065 0.0001 0.0123 0.0115-0.0166 0.0300-0.0216-0.0075 0.0049 0.0004-0.0005 0.0352 0.0060-0.0166 0.0128 0.0052-0.0039-0.0005 * 1.0e+003 5

4. Kwantyzacja współczynnik czynników w transformaty F(u,v) F Q (u,v) F(u,v) F Q (u,v) = Integer Round Q(u,v) 16 12 14 14 Q(u,v ) = 18 24 49 72 11 10 16 24 40 51 61 17 12 14 19 26 58 60 56 18 13 16 24 40 57 69 56 24 17 22 29 51 87 80 62 47 Q(u,v ) = 22 37 56 68 109 103 77 35 55 64 81 104 113 92 64 78 87 103 121 120 101 92 95 98 112 100 103 dla luminancji Y lub obrazów w szarych 18 21 26 24 26 56 47 66 24 40 51 61 26 58 60 56 dla chrominancji I i Q Funkcja i skwantowana transformata dla obrazu fotograficznego f(x,y) = 186 198 1 190 182 177 182 197 179 184 183 176 173 172 175 184 188 182 180 178 174 172 171 166 132 130 139 146 151 169 191 201 131 134 137 140 139 139 139 138 153 157 161 172 177 145 89 49 190 178 192 196 120 43 39 47 176 184 187 112 41 39 43 44 F Q (u,v) = 75 2-2 -22 0 0 0 0 18 5 2 1 0 0 0 0-11 10 1-22 0 0 0 0 1 0-33 1 0 0 0 0-2 -33 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6

Odwrócenie wykonanych operacji (dekodowanie) Integer Round (DCT -1 ( F Q (u,v)*q(u,v) )) f * (x,y) Dla obrazu fotograficznego f(x,y)= 186 198 1 190 182 177 182 197 179 184 183 176 173 172 175 184 188 182 180 178 174 172 171 166 132 130 139 146 151 169 191 201 131 134 137 140 139 139 139 138 153 157 161 172 177 145 89 49 190 178 192 196 120 43 39 47 176 184 187 112 41 39 43 44 f*(x,y)= 183 186 187 182 176 178 188 198 178 188 196 192 180 169 168 171 169 174 178 175 170 170 176 183 147 140 133 135 148 168 186 197 131 126 126 135 149 153 146 136 150 160 173 178 163 127 82 51 176 190 195 172 125 75 44 31 181 185 168 114 50 19 32 58 Kodowanie i dekodowanie (przykłady) Dla obrazu fotograficznego przed kompresją f(x,y) po kompresji i dekompresji f * (x,y) Dla obrazu szachownica przed kompresją f(x,y) po kompresji i dekompresji f * (x,y) 7

5. Konwersja tablicy współczynnik czynników w do postaci wektora F Q (u,v) [DC, AC 1, AC 2,..., AC 63 63 ] Algorytm zig-zag zag (A. G. Tescher 1978) F Q (u,v) = 75 2-2 -22 0 0 0 0 18 5 2 1 0 0 0 0-11 10 1-22 0 0 0 0 1 0-33 1 0 0 0 0-2 -33 2 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 [DC, AC 1,...,AC 63 ] = [75, 2, 18, -1, 5, -2, -2, 2, 10, 1, -2, 0, 1, 1, 0, 0, 0, -2, -3, -3, 1, 0, 0,..., 0] 6. Kodowanie wektora współczynnik czynników wektor - [DC, AC 1, AC 2,..., AC 63 63 ] kodowanie DC dla bloków w obrazu (tablicy bloków) kodowanie AC 1, AC 2,..., AC 63 dla bloku Kodowanie entropne - długość słowa kodowego odpowiadającego kodowanemu elementowi (symbolowi) jest różna r dla różnych r elementów. Elementy, które statystycznie występuj pują częś ęściej mają krótsze słowa s kodowe. 8

6.1. Kodowanie DC (składowej stałej) Obraz został podzielony na bloki 8x8. DC 0 DC 1 DC 2 blok 0 blok 1 blok 2 DC k DC blok k blok k+1 DC 2k DC 2k blok 2k............ DC i - składowa stała a dla bloku i, i = 0, 1,..., m m - liczba bloków w obrazu Do kodowania składowej stałej stosuje się algorytm DPCM. Algorytm kodowania składowej stałej DC Buduje się wektor DC = [DC 0, DC 1, DC 2,..., DC k, DC k+1,..., DC m ]. Wylicza się wektor Δ = [Δ[ 0, Δ 1,..., Δ i,..., Δ m ] ze wzoru Δ 0 = DC 0 Δ i = DC i - DC i-1 i = 1,2,...,m Elementy wektora Δ = [Δ[ 0, Δ 1,..., Δ i,..., Δ m ] koduje się przy pomocy tabeli kodu Huffmana 9

6.2. Kodowanie [AC 1, AC 2,...,AC 63 Przykładowa postać wektora: 63 ] [ AC 1,...,AC 63 ] = [2, 18, -1, 5, -2, -2, 2, 10, 1, -2, 0, 1, 1, 0, 0, 0, -2, -3, -3, 1, 0, 0,..., 0] Wektor zawiera elementy niezerowe, przedzielone niekiedy ciągami zer. [..., AC i-1, 0,..., 0, AC i, 0,..., 0, AC i+1, 0,... ] Ciąg g elementów w koduje się przy pomocy następuj pującej struktury.... Symbol-1 Symbol-2 Symbol-1 Symbol-2... AC i = Symbol-1 Symbol-2 Symbol-1 Symbol-2 = (Runlength( Runlength, Size) = (Amplitude( Amplitude) Runlength liczba zer pomiędzy AC i i poprzednim niezerowym AC i-1 (kodowana jako liczba binarna) Size liczba określaj lająca zakres AC i Amplitude liczba wyrażajaca ajaca wartość AC i Do kodowania AC i używa się kodu Huffmana. 10

Algorytm kodowania AC i : 1. Obliczana jest liczba S przy pomocy wzoru S = Integer Round [log 2 ( abs(ac i ) ) +1] 2. Dla liczby S znajdowane jest słowo s kodu Huffmana określaj lające kod Size np.. według następuj pującej tabeli: S 0 1 2 3 4 5 kod Size 00 010 011 100 101 110 S 6 7 8 9 10 11 kod Size 1110 11110 111110 1111110 11111110 111111110 Następnie wyliczany jest kod Amplitude zgodnie z kolejną tabelą: s 0 1 2 3 4 - współczynnik AC i 0-1, 1-3, -2, 2, 3-7,,-4, 4,,7-15,,-8, 8,,15 itd. kod Amplitude --- 0, 1 00, 01, 10, 11 000,,, 011, 100,,111 0000,,, 0111, 1000,,, 1111 itd. Przykład: AC i = 12 to: S = 4, Size = 101, Amplitude = 1100, czyli razem kod AC i = 1011100 1100 11

7. Podsumowanie Koder JPEG (uproszczony) Bloki 8x8 danych źródłowych DCT Koder bitowy Kwanty- zator Dane skompreso- wane Tablice kwantyzacji Tablice kodu Huffmana Dekoder JPEG (uproszczony) Dane skompreso- wane Deko- der bitowy Dekwan- tyzator DCT -1 Bloki 8x8 danych odtworzonych Tablice kodu Huffmana Tablice kwantyzacji 12

8. Przykład Obraz testowy 256 x 256 x 8 = 524.288 bitów = 64kB Obraz w formacie BMP (66.616 B) Kompresja JPEG - porównanie obrazów w po kompresji Duża a kompresja (24.295 B) Średnia kompresja (31.526 B) Mała a kompresja(56.956 B) 13

Kompresja JPEG - porównanie szczegółów Obraz oryginalny (66.616 B) Duża a kompresja (24.295 B) 14