Wybrane metody kompresji obrazów

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

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

KOMPRESJA OBRAZÓW STATYCZNYCH - ALGORYTM JPEG

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

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

Kompresja obrazów w statycznych - algorytm JPEG

dr inż. Piotr Odya Wprowadzenie

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

Kwantyzacja wektorowa. Kodowanie różnicowe.

Kompresja sekwencji obrazów - algorytm MPEG-2

Joint Photographic Experts Group

Kompresja sekwencji obrazów

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

Przetwarzanie i transmisja danych multimedialnych. Wykład 6 Metody predykcyjne. Przemysław Sękalski.

Klasyfikacja metod kompresji

Klasyfikacja metod kompresji

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Nowoczesne metody emisji ucyfrowionego sygnału telewizyjnego

Kwantowanie sygnałów analogowych na przykładzie sygnału mowy

Kody splotowe (konwolucyjne)

Kompresja video (MPEG)

Fundamentals of Data Compression

Kompresja danych DKDA (7)

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

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

1. Wprowadzenie 1.1. Zdefiniowanie problemu badawczego

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

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

Wybrane algorytmu kompresji dźwięku

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Podstawowe pojęcia. Teoria informacji

Kompresja bezstratna. Entropia. Kod Huffmana

Rozpoznawanie i synteza mowy w systemach multimedialnych. Analiza i synteza mowy - wprowadzenie. Spektrogram wyrażenia: computer speech

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.

Transformaty. Kodowanie transformujace

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

Kodowanie predykcyjne

Modulacja i kodowanie. Labolatorium. Kodowanie źródłowe Kod Huffman a

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 12,

KOMPRESJA STRATNA SYGNAŁU MOWY. Metody kompresji stratnej sygnałów multimedialnych: Uproszczone modelowanie źródeł generacji sygnałów LPC, CELP

W11 Kody nadmiarowe, zastosowania w transmisji danych

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

Podstawy kompresji danych

DŹWIĘK. Dźwięk analogowy - fala sinusoidalna. Dźwięk cyfrowy 1-bitowy 2 możliwe stany fala jest mocno zniekształcona

Wstęp do techniki wideo

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

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

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

WYKŁAD 10. kodem pierwotnym krzywej jest ciąg par współrzędnych x, y kolejnych punktów krzywej: (x 1, y 1 ), (x 2, y 2 ),...

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

Przedstawiamy Państwu tekst będący

Temat: Algorytm kompresji plików metodą Huffmana

Metody kompresji i przechowywania obrazów

Kompresja danych kodowanie Huffmana. Dariusz Sobczuk

Kodowanie informacji

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Wykład III: Kompresja danych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

Sieci neuronowe - projekt

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

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

Zastosowanie kompresji w kryptografii Piotr Piotrowski

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

Progresywny internetowy kodek falkowy

Przetwarzanie i transmisja danych multimedialnych. Wykład 10 Kompresja obrazów ruchomych MPEG. Przemysław Sękalski.

Przetwarzanie obrazu cyfrowego

Systemy i Sieci Radiowe

Technologie cyfrowe semestr letni 2018/2019

Algorytmy kompresji. Kodowanie Huffmana, kodowanie arytmetyczne

NOWOCZESNE METODY EMISJI UCYFROWIONEGO SYGNAŁU TELEWIZYJNEGO

Teoria informacji i kodowania Ćwiczenia Sem. zimowy 2016/2017

Przetwarzanie i transmisja danych multimedialnych. Wykład 2 Podstawy kompresji. Przemysław Sękalski.

Kompresja dźwięku w standardzie MPEG-1

TECHNIKI MULTIMEDIALNE

Kody Tunstalla. Kodowanie arytmetyczne

dr hab. inż. Lidia Jackowska-Strumiłło, prof. PŁ Instytut Informatyki Stosowanej, PŁ

STANDARDOWE TECHNIKI KOMPRESJI SYGNAŁÓW

Technika audio część 2

Percepcyjne kodowanie dźwięku

Algorytmy kodowania predykcyjnego

Odtwarzanie i kompresja wideo

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15 Artur.Kalinowski@fuw.edu.

MODULACJE IMPULSOWE. TSIM W10: Modulacje impulsowe 1/22

Techniki Tworzenia Plików Filmowych

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

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

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

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

5/25/2017. Elementy teorii informacji. Co to jest informacja? Słownik Języka Polskiego: Elementy teorii informacji

2. STRUKTURA RADIOFONICZNYCH SYGNAŁÓW CYFROWYCH

Przetwarzanie i transmisja danych multimedialnych. Wykład 3 Kodowanie Shannona Fano i Huffmana. Przemysław Sękalski.

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

Temat 7. Dekodery, enkodery

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

Kodowanie predykcyjne

ADAPTACYJNE PRZETWARZANIE SYGNAŁÓW LABORATORIUM. Ćwiczenie 4. Wybrane telekomunikacyjne zastosowania algorytmów adaptacyjnych

Techniki multimedialne

Systemy plezjochroniczne (PDH) synchroniczne (SDH), Transmisja w sieci elektroenergetycznej (PLC Power Line Communication)

Transkrypt:

Wybrane metody kompresji obrazów Celem kodowania kompresyjnego obrazu jest redukcja ilości informacji w nim zawartej. Redukcja ta polega na usuwaniu informacji nadmiarowej w obrazie, tzw. redundancji. Obraz zakodowany stanowi zbiór wzajemnie nieskorelowanych elementów

Czy kompresja jest obrazów jest potrzebna? Standardowy obraz telewizyjny (w postaci cyfrowej) ma wymiary 64 576. Do jego zapisu potrzeba ponad 1.1 MB (RGB). Przy wyświetlaniu 25 obrazów w ciągu sekundy, potrzeba ~28 MB. Zatem na płycie CD można zapisać ok. 25 s filmu. Na płycie DVD (dwustronna, 17 GB) można zapisać ok. 1 min. filmu.

Prosty schemat transmisji obrazu OBRAZ ORYGINALNY F OBRAZ ZAKODOWANY Y KODOWANIE KANAŁU KODER: Y=S(F) KANAŁ TRANSMISYJNY OBRAZ ODEBRANY F DEKODER: F =T(Y ) OBRAZ ZAKODOWANY Y DEKODOWANIE KANAŁU KANAŁ BEZSTRATNY: Y =Y Jeżeli F = F, (T = S -1 ) to kompresja jest bezstratna Jeżeli F F, (T S -1 ) to kompresja jest stratna

Miary błędu określone dla kompresji stratnej Błąd średniokwadratowy e N N 1 = 2 rms [ F( i, j ) F' ( i, j )] 2 N i= 1 j= 1 Średniokwadratowy stosunek sygnału do szumu SNR ms = N N i= 1 j= 1 N N i= 1 j= 1 [F ( i, F'( i, j) j) 2 F'( i, j) ] 2

Redundancja, stopień (współczynnik) kompresji... Niech n 1, n 2 oznaczają różną liczbę bitów niosących tę samą informację. Wtedy względna redundancja pierwszego zbioru danych (opisanego przez n 1 ) jest zdefiniowana jako: R = 1-1/C R gdzie C R - stopień kompresji (ang. compression ratio): dla n 1 = n 2 : C R = 1; R = dla n 1 >> n 2 : C R -> ; R -> 1 dla n 1 << n 2 : C R -> ; R -> - C R = n 1 / n 2

... entropia Entropia obrazu F(i,j) jest zdefiniowana jako: E F L 1 = i= p ( l ) log p( l ) i 2 i gdzie p(l i ) - prawdopodobieństwo wystąpienia poziomu jasność l i w obrazie (dane z histogramu obrazu) Jeżeli stosuje się logarytm o podstawie 2, to entropia określa średnią liczbę bitów potrzebnych do zakodowania jednego punktu obrazu cyfrowego

Przykładowe wartości entropii dla różnych obrazów E = 7.1 E = 5.31

Rodzaje redundancji definiowane przy kompresji obrazów Redundancja kodu Redundancja przestrzenna (geometryczna) Redundancja psychowizualna

Redundancja kodu Średnia długość słowa kodowego obrazu wynosi: m avg L 1 = i= m l ( ) p( l ) i i gdzie m(l i ) - długość słowa wykorzystywana do zakodowania poziomu jasności l i Optymalna liczba bitów wykorzystywana do kodowania poziomów jasności w obrazie jest równa entropii.

Przykład l k p(l k ) kod 1 m 1 (l k ) kod 2 m 2 (l k ).19 3 11 2 1.25 1 3 1 2 2.21 1 3 1 2 3.16 11 3 1 3 4.8 1 3 1 4 5.6 11 3 1 5 6.3 11 3 1 6 7.2 111 3 6 m 1 avg = 3, m 2 avg = 2.7, E = 2.651 C R = 1.11, R =.99 ok. 1% danych w kodzie #1 jest nadmiarowych

Kod Huffmana Źródło Redukcja źródła Symbol p(l k ) #1 #2 #3 #4 a2.4.4.4.4.6 a6.3.3.3.3.4 a1.1.1.2.3 a4.1.1.1 a3.6.1 a5.4

Kod Huffmana Źródło Kodowanie Symbol p(l k ) kod #1 #2 #3 #4 a2.4 1 1.4 1.4 1.4.6 a6.3.3.3.3 1.4 a1.1 11 11.1 1.2 1.3 a4.1 1 1.1 11.1 a3.6 11 11.1 a5.4 111

Właściwości kodu Huffmana kod o zmiennej długości zapewnia teoretycznie minimalną średnią liczbę symboli wykorzystywanych do kodowania ma zerową pamięć - kodowanie kolejnych symboli jest niezależne jest wzajemnie jednoznaczny w przyporządkowaniu symbolu i kodu

Metody kompresji wykorzystujące redundancję przestrzenną (geometryczną) - wykorzystuje się fakt, że poziomy jasności sąsiednich punktów obrazu są ze sobą silnie skorelowane kodowanie RL (ang. run length coding) - obraz kodowany jest za pomocą par liczb (g, l) gdzie g oznacza poziom jasności, zaś l jest długością ciągu punktów obrazu o jasności g

Przykład kodowania RL obraz 6x6, 4 poziomy jasności 1 1 2 3 4 2 3 ciągi RL: (1,4); (3,3); (,2); (2,5); (3,2); (,7); (3,11); (1,2) czyli do zakodowania obrazu potrzeba 8*3=24 bajty ( g - 1 bajt, l - 2 bajty) reprezentacja obrazu: 6x6=36 bajtów C R = 36/24 = 1.5

Kodowanie predykcyjne - kompresja bezstratna KODOWANIE e(n) F(n) obraz wejściowy PREDYKTOR F (n) + - KODER SYMBOLI e(n) = F(n) - F (n) obraz po kompresji DEKODOWANIE DEKODER SYMBOLI e(n) + + G (n) Modulacja DPCM (Differential Pulse Code Modulation) PREDYKTOR F' ( n ) = G(n) round[ m i= 1 obraz po rekonstrukcji = obraz wejściowy G(n)=F(n) G(n) = G (n) + e(n) a F( n i )] i

Kodowanie bez utraty jakości - przykład ' n = round[.9 f ( n 1) ] 1 2 3 4 5.. f n 1 11 15 12 17 2.. f n - round(9)=9 round(9.9)=1 round(13.5)=14 round(1.8)=11 round(15.3)=15. e Pierwszy piksel wysyłany bez kodowania n = f n f ' n g = e + n ' n - 1 2 2+9=11 5 5+1=15-2 -2+14=12 6 6+11=17 5 5+15=2.. dekoder n g

Kodowanie predykcyjne - przykład m F' ( n) = round [ ai F( n i)] = F( n 1) m = 1, a1 i= 1 e(n) e(n) = 1 E = 2.44 (5.31) C R = 3.28 (1.51) E = 5.6 (7.1) C R = 1.58 (1.14)

Kodowanie predykcyjne - algorytm f[ i ],g[ i ] = array[1..n*n] of byte {obraz zapisany w postaci wektora} e[ i ] = array[2..n*n] of integer {obraz błędu} {predyktor 1-go rzędu, a 1 =1} {kodowanie} for i := 2 to N*N do begin e[ i ] := f[ i ] - f[ i-1 ]; e[ i ] :=e [ i ] + 128; if e[ i ] > 255 then e[ i ] := 255; if e[ i ] < then e[ i ] := ; end; {dekodowanie} g[ 1 ] := f[ 1 ]; for i := 2 to N*N do g[ i ] := e[ i ] + g[ i-1 ];

Kodowanie predykcyjne - kompresja stratna KODOWANIE F(n) + obraz wejściowy - e(n) F (n) KWANTYZATOR PREDYKTOR F (n) e (n) + + KODER SYMBOLI eta e (n) obraz po kompresji e(n) e(n) = F(n) - F (n) - eta F (n) = e (n) + F (n) KWANTYZATOR F (n) = a 1 F (n-1) = e (n-1) + F (n-1); predyktor 1-go rzędu, a 1 =1 F (1) = F(1)

Kodowanie predykcyjne - kompresja stratna DEKODOWANIE G(1) = F(1) DEKODER SYMBOLI e (n) + + G (n) PREDYKTOR G(n) obraz po rekonstrukcji obraz wejściowy G(n) F(n) G(n) = G (n) + e (n) G (n) = G(n-1)

Kodowanie z utratą jakości - przykład n 1 2 3 4 5.. f n 1 11 15 12 17 2 ' fn - 1 15 2 15 1 e n - 1-8 2 1.. ' e n 5 5-5 -5 5 '' n ' n f = e + 1 15 2 15 1 2. f ' n n ' ' = gn en fn gn g + 1 15 4 2 5 15-3 1 7 2.. Pierwszy piksel wysyłany bez kodowania dekoder

Wpływ współczynnika eta na błędy kodowania za małe eta za duże eta

Eta=1 Eta=1 Eta=2 Eta=4

Kodowanie predykcyjne stratne - algorytm f[ i ], f [ i ], g[ i ] = array[1..n*n] of byte {obraz zapisany w postaci wektora} e[ i ] = array[2..n*n] of integer {obraz błędu} {predyktor 1-go rzędu, a 1 =1, eta - stała kwantyzatora} {kodowanie} f [ 2 ] := f [ 1 ]; for i := 2 to N*N do begin e[ i ] := f[ i ] - f [ i ]; if e[ i ] >= then e[ i ] := eta else e[ i ] := -eta; f [ i+1 ] := e[ i ] + f [ i ]; end; {dekodowanie} g := f ; if g[ i ] < then g[ i ] := ; if g[ i ] > 255 then g[ i ] := 255;

Redundancja psychowizualna Wykorzystuje się specyficzne właściwości układu wzrokowego człowieka; Niektóre cechy obrazu charakteryzują się mniejszą wrażliwością w porównaniu z innymi elementami obrazu.

Redundancja psychowizualna przykład 8 bitów 5 bitów 3 bity

Redundancja psychowizualna przykład (obraz tekstury) 8 bitów 7 bitów 6 bitów 5 bitów 4 bity 3 bity 2 bity 1 bit

Kodowanie transformacyjne F(i,j) KONSTRUKCJA NxN BLOKÓW OBRAZU TRANSFORMATA PROSTA KWANTYZATOR KODER SYMBOLI Obraz zakodowany DEKODER SYMBOLI TRANSFORMATA ODWROTNA REKONSTRUKCJA OBRAZU Z BLOKÓW NxN F (i,j) Obraz po rekonstrukcji

Kodowanie transformacyjne Transformacja Karhunena-Loewe - optymalna w sensie krytererium informacyjnego, złożona obliczniowo (brak szybkiej transformaty) Transformacja kosinusowa (DTK) - rozsądny kompromis pomiędzy uzyskiwanym stopniem kompresji a złożonością obliczeniową (istnieje FCT) Transformacja falkowa - bardzo wysoki stopień kompresji, stosowana m.in. w standardach MPEG 2, JPEG 2

Funkcje bazowe DTK Współczynniki DTK każdego z bloków określają jaka waga jest przyporządkowana każdej funkcji bazowej Bloki obrazu 8x8 są tworzone w wyniku kombinacji liniowej tych funkcji bazowych

MATLB Demo dyskretna transformacja kosinusowa

Podstawowe standardy kompresji JPEG (Joint Photographic Experts Group) - grupa inżynierów i naukowców zajmująca się rozwojem metod i opracowaniem standardów kompresji obrazów nieruchomych (www.jpeg.org) MPEG (Moving Pictures Experts Group) - grupa inżynierów zajmująca się opracowaniem standardów kompresji sekwencji audio/video (www.mpeg.org)

dane obrazowe np. f(i,j) -128, dla l =256 - DTK 8 8 8 8 8 4 8 8 4 4 kodowanie Zigzac kodowanie predykcyjne 68-23 -4-3 -23-28 17 3-4 17 2-11 -3 3-11 -12 SCHEMAT KODERA JPEG-2 (jasność średnia) 68-23 -23-4 28-4 -3 17 17-3 3 2 3-11 -11-12 tablica kwantyzacji kwantyzator 7-2 -2-3 2 2 2-1 -1-1 kod Huffmana dane zakodowane 1111 11 11 111 11 11 11 1 1 1

dane zakodowane f (i,j) +128 SCHEMAT DEKODERA JPEG-2 2 9 7 8 7 8 4 9 8 4 3 7-2 -2-3 2 2 2-1 -1-1 dekodowanie Zigzac 7-2 -2-3 2 2 2-1 -1-1 tablica kwantyzacji 7-2 -2-3 2 2 2-1 -1-1 1111 11 11 111 11 11 11 1 1 1 + DTK -1 zdekodowane dane obrazowe dekodowanie predykcyjne (jasność średnia) kwantyzator -1 (kod Huffmana) -1

Porównanie standardów JPEG Lena 512x512,.3 b/piksel (VCDemo) JPEG (DTK) JPEG 2 (transformacja falkowa)

Standard MPEG Kodowanie INTRA frame (DTK) oraz INTER frame (wektory ruchu, DPCM) MPEG-1 MPEG-2 MPEG-4 Standard 1992 1994 1999 Zastosowania cyfrowy zapis video na CD cyfrowa TV (HDTV) transmisje video przez Internet Rozdzielczość Przestrzenna ok. 288 x 36 ok. 576 x 72 (1152 x 144) zależy od standardu sygnału video Liczba wyświetlanych ramek obrazu 25 3 ramek/s 5-6 ramek/s (1-12 ramek/s) do 6 ramek/s Bit Rate 1.5 Mb/s ok. 4 Mb/s (ok. 2 Mb/s) 5 64 kb/s 4 Mb/s Jakość VHS NTSC/PAL VHS/NTSC/PAL Współczynnik kompresji ok. 2-3 ok. 3-4 do kilkuset

DVD Video standard wykorzystujący DVD ROM (4.4 17 GB), rozdzielczość PAL 72 576, 24 fps, 12 b/pixel, MPEG-2, aspect ratio 4:3, 16:9, bit rate 4 Mbp (max. 9.8 Mbp), 2 8 g. filmu. Video CD (VCD) standard wykorzystujący CD ROM (~7 MB), rozdzielczość VHS 352 288, 24 fps, MPEG-1, aspect ratio 4:3, 7 min. filmu. DivX standard kodowania video wykorzystujący MPEG-4, bardzo rozpowszechniony w Internecie.

Idea kompresji MPEG DivX.com Deltaframes Keyframes

Porównanie jakości różnych standardów video HDTV 192x18 DVD 16:9 http://www.cs.tut.fi/~leopold/ld/resolutioncomparison/

Porównanie jakości różnych standardów video TV PAL VHS (VCD) http://www.cs.tut.fi/~leopold/ld/resolutioncomparison/