kompresja stratna obrazu

background image

Kompresja stratna
obrazów

background image

Stratna kompresja obrazów

Algorytm JPEG (stratny)

Algorytm JPEG2000

background image

Nowoczesne metody kompresji
obrazów

Algorytmy predykcyjne

na podstawie

modelu obrazu

już przetworzonej części obrazu

znanego otoczenia danego piksela

spróbuj przewidzieć barwę piksela (predykcja)

kompresuj błąd predykcji

(różnicę między przewidzianą i rzeczywista barwą)

Algorytmy transformacyjne, kodowanie podpasmowe

obraz przekształć odpowiednią transformatą (DCT, DWT)

kodowania predykcyjnego nie uznaje się za kodowanie transformacyjne

kompresuj macierz współczynników transformaty

stosowane głównie w algorytmach stratnych

background image

Algorytm JPEG (stratny)

Opracowany przez Komitet JPEG w 1992 r.

Popularny do dziś transformacyjny algorytm kompresji

stratnej obrazów barwnych oraz w stopniach szarości,

oparty o całkowitoliczbową transformatę kosinusową DCT

oraz koder Huffmana

algorytm bazowy (baseline codec)

rozszerzenia (extensions)

Wallace, G. K.: The JPEG Still Picture Compression Standard.

Communications of the ACM, April 1991, Vol 34(4), s. 30-44.

background image

Algorytm bazowy JPEG ― zarys

Kroki algorytmu

Transformacja przestrzeni barw (opcjonalnie)

Podpróbkowanie składowych chrominancji (opcjonalnie)

Podział składowych na bloki 8x8 pikseli i zastosowanie transformaty DCT

dla każdego bloku

Kwantyzacja macierzy współczynników transformaty na podstawie tabeli

kwantyzacji

Kodowanie współczynników za pomocą kodów Huffmana

lub arytmetycznie (rozszerzenie)

Zapisanie zakodowanych danych w pliku o strukturze opisanej przez

standard

background image

Algorytm bazowy JPEG

Transformacja przestrzeni barw (opcjonalnie)

Przestrzenie zawierające oddzielne składowe luminancji i

chrominancji, np. YC

r

C

b

,

lub pominięcie transformacji i kompresja wprost obrazu multispektralnego

(jak RGB, CMYK, do 255 składowych)

Kilka celów

dekorelacja składowych, które są kodowane niezależnie od siebie, zatem

poprawa współczynników/jakości

umożliwienie kodowania różnych składowych z różną jakością

background image

Algorytm bazowy JPEG

Podpróbkowanie składowych chrominancji (opcjonalnie)

Oko ludzkie jest znacznie bardziej czułe na jasność obrazu niż na kolor

zarówno pod względem rozdzielczości jak i głębi

Skoro kompresujemy stratnie to można „straty” wprowadzić z

uwzględnieniem czułości oka

składowe chrominancji są podpróbkowane, ich rozdzielczość jest 2-krotnie mniejsza

od składowej luminancji
(BTW: obraz komputerowy to dane już po wstępnym próbkowaniu i kwantyzacji)

background image

Algorytm bazowy JPEG

Kodowanie składowej

Podział składowych na bloki 8x8 pikseli

Transformata DCT dla każdego bloku

Kwantyzacja współczynników transformaty

Kodowanie entropijne

background image

Algorytm bazowy JPEG

Transformata DCT dla bloku 8x8 pikseli

DCT przeprowadzamy po sprowadzeniu nominalnego zakresu jasności pikseli do przedziału
symetrycznego względem 0
[0 ... 2

N

– 1] → [–2

N – 1

... 2

N – 1

– 1]

Współczynniki transformaty niskich częstotliwości zgrupowane są blisko lewego górnego
rogu macierzy

Sam lewy górny róg to składowa stała jasności bloku

background image

Algorytm bazowy JPEG

Kwantyzacja macierzy współczynników transformaty na
podstawie tabeli kwantyzacji (o rozmiarze 8x8)

po DCT, dla składowej o głębi N bpp, współczynniki transformaty
wymagają N+3 bitów

czyli najpierw mamy ekspansję danych

typowo większość współczynników AC ma małe wartości ...

... tym mniejsze im wyższej częstotliwości odpowiadają ...

... i małe znaczenie dla percepcji obrazu

każdy z współczynników transformaty DCT dzielimy przez odpowiadający
mu element tabeli kwantyzacji ...

... i zaokrąglamy do najbliższej liczby całkowitej

background image

Algorytm bazowy JPEG

Kwantyzacja macierzy współczynników transformaty na
podstawie tabeli kwantyzacji (o rozmiarze 8x8) ― c.d.

tabela kwantyzacji jest parametrem algorytmu

komitet JPEG przygotował tabele standardowe

dobrane na podstawie eksperymentów
z rzeczywistymi obrazami oraz
rzeczywistymi urządzeniami akwizycji

inne dla luminancji (np. →)
inne dla chrominancji

dzieląc wszystkie współczynniki
przez stałą wartość kontrolujemy
współczynnik kompresji

background image

Algorytm bazowy JPEG

Kwantyzacja macierzy współczynników transformaty na
podstawie tabeli kwantyzacji (o rozmiarze 8x8)

po kwantyzacji układamy
(linearyzujemy) macierz
współczynników w kolejności
Zig-Zag i kodujemy entropijnie

background image

Algorytm bazowy JPEG

Kodowanie współczynników za pomocą kodów prefiksowych

Kodujemy odmiennie współczynniki DC i AC, oba rodzaje współczynników

z użyciem kodów prefiksowych

wygenerowanych algorytmem Huffmana

(w dość złożony sposób ― szczegóły: patrz artykuł Wallace’a)

Współczynniki DC

kodujemy różnice współczynników DC kolejnych bloków

Współczynniki AC

ciąg współczynników AC bloku zwykle zawiera długie podciągi zer;

sufiks ciągu zwykle jest długim ciągiem zer

kodujemy wariantem algorytmu RLE połączonym z kodowaniem Huffmana

background image

Algorytm bazowy JPEG

Dlaczego JPEG jest stratny?

przede wszystkim

podpróbkowanie składowych chrominancji

kwantyzacja

również nie-odwracalne

transformacja przestrzeni barw

DCT

background image

Algorytm JPEG ― rozszerzenia

Rozszerzenia standardu

tryb progresywny względem jakości

tryb hierarchiczny (piramidowy)

kodowanie arytmetyczne
(QM-Coder zamiast algorytmu Huffmana)

inne (praktycznie nie stosowane)

background image

JPEG2000

Nowy standard komitetu JPEG dla stratnej i bezstratnej kompresji obrazów

ITU-T; ISO/IEC: Information technology – JPEG 2000 image coding system: Core

coding system. ITU-T Recommendation T.800 and ISO/IEC International Standard

15444-1, August 2002.

Z roku 2000, następca algorytmu JPEG i Lossless JPEG, wyłoniony w drodze

konkursu (ogłoszonego w 1997) oparty o algorytm CREW (Zandi, Allen, Schwartz,

Boliek)

Algorytm CREW był zgłoszony w odpowiedzi na konkurs, który miał wyłonić algorytm

JPEG-LS. Jako podstawę JPEG-LS wybrano LOCO-I, lecz bogactwo dodakowych

własności algorytmu CREW (innych niż stratna/bezstratna kompresja obrazu jako

całości) skłoniło komitet do rozpoczęcia prac nad JPEG2000.

Christopoulos, C.; Skodras, A.; Ebrahimi, T.: The JPEG2000 Still Image Coding System

an Overview. IEEE Transactions on Consumer Electronics, November 2000, Vol. 46(4),

pp. 1103-27.

background image

JPEG2000 ― zarys

Cechy algorytmu

Algorytm stratnej/bezstratnej kompresji obrazów multispektralnych,

barwnych oraz w stopniach szarości oparty o transformatę falkową

Dla kompresji stratnej i bezstratnej, dostępne możliwości

kodowanie progresywne, w tym progresja: stratne → bezstratne

kodowanie piramidowe

kodowanie progresywne względem ROI (region of interest)

dostęp swobodny do fragmentów obrazu

Dla stratnej

lepsza jakość od JPEG przy tym samym współczynniku

dla współczynników poniżej 0.25 bpp znacznie lepsza

ROI w standardzie (w JPEG formalnie również było jako extension)

niezła odporność na błędy transmisji

poprawienie współczynnika (kosztem pogorszenia jakości) nie wymaga

pełnego dekodowania

background image

JPEG2000 ― zarys

Kroki algorytmu

Sprowadzenie nominalnego zakresu jasności pikseli do przedziału symetrycznego

względem 0 (jak w JPEG)

Transformacja przestrzeni barw (opcjonalnie)

Podział składowej na kafelki (opcjonalnie)

Transformata falkowa kafelka (opcjonalnie)

dekompozycja/kodowanie podpasmowe (subband decomposition)

reprezentacja wielorozdzielcza

Kwantyzacja współczynników transformaty

(właściwie również opcjonalnie)

Kodowanie arytmetyczne skwantowanych współczynników

po dekompozycji na składowe/kafle/warstwy/percints

„obcinanie strumienia bitów”

Zapisanie zakodowanych danych w pliku o strukturze opisanej przez standard

struktura elastyczna, tzn. możliwość kodowania dla wybranej preferencji progresji

background image

Transformacja przestrzeni barw

ICT (Irreversible Color Transform)

RGB → YC

r

C

b

Tylko do użycia z nie-odwracalną transformatą falkową (9-7)

RCT (Reversible Color Transform)

stałopozycyjna aproksymacja ICT

dla C

1

i C

2

ekspansja alfabetu

background image

Podział składowej na kafelki

Realizowany przez nałożenie prostokątnej siatki na obraz,

przy czym

krawędzie siatki nie muszą pokrywać

się z krawędziami obrazu

można dopasować podział do treści

obrazu oraz zasobów komputera

cały obraz może być jednym kafelkiem

rozmiar kafelka typowo jest

rzędu 2

8

x 2

8

pikseli

background image

Kodowanie podpasmowe

background image

Transformata falkowa

Transformata falkowa rzędu I obrazu 2D

... realizowana za pomocą jednowymiarowej transformaty falkowej

zastosowanej najpierw do wierszy obrazu (otrzymujemy pasma L i H)

a następnie do kolumn już przetransformowanego obrazu

(otrzymujemy pasma LL, HL, LH, HH)

L

H

LL

HL

LH

HH

background image

Transformata falkowa

LL

HL

LH

HH

background image

Transformata falkowa

Transformata falkowa wyższych rzędów

do pasma LL zastosuj ponownie transformatę rzędu I

(poniżej rzędy I i III)

reprezentacja wielorozdzielcza: dla rzędu transformaty i

mamy i + 1 poziomów rozdzielczości

typowy rząd transformaty w JPEG2000: V

LL

HL

LH

HH

background image

Transformata falkowa w JPEG2000

Transformata nie-odwracalna do zastosowania przy kompresji stratnej

filtr 9-tap/7-tap Daubechies

real-to-real

Transformata odwracalna dla kompresji bezstratnej oraz stratnej

filtr 5-tap/3-tap Daubechies

integer-to-integer

szczegóły na następnym slajdzie

Realizowalne metodą

liftingu

(9-7 ― w 6 krokach, 5-3 ― w 2 krokach)

(Ingrid Daubechies, Wim Sweldens „Factoring Wavelet Transforms into Lifting Steps”)

Przed transformatą ekstrapolujemy wiersze: (wiersz

rozszerzony wiersz

)

... C B A

A B C D E F G H

H G F ...

... A B C C B A

A B C

C B A A B C C B A ...

background image

L

H

Transformata DWT, implementacja metodą liftingu

(X ― piksele wiersza przed transformatą, Y ― po transformacie, 2 koki: najpierw nieparzyste Y)

następnie parzyste Y to tworzą pasmo L, nieparzyste ― pasmo H

przekształcenie jest odwracalne kosztem ekspansji alfabetu (o ile?)

Transformata odwrotna





+

=

+

+

+

2

2

2

2

1

2

1

2

n

n

n

n

X

X

X

Y

Transformata falkowa 5-3





+

+

=

+

4

2

1

2

1

2

2

2

n

n

n

n

X

Y

Y

X





+

+

=

+

+

+

2

2

2

2

1

2

1

2

n

n

n

n

X

X

Y

X





+

+

+

=

+

4

2

1

2

1

2

2

2

n

n

n

n

Y

Y

X

Y

background image

Kwantyzacja współczynników
transformaty

Dla kompresji bezstratnej z krokiem 1

Dla stratnej

(U ― współczynniki przed kwantyzacją, V ― po kwantyzacji,

Δ ― krok kwantyzacji)

koder dobiera krok kwantyzacji tak, aby osiągnąć zadany współczynnik

krok dobierany jest dla każdego podpasma z osobna

jego wartość dołączana jest do zakodowanego obrazu

koder może stosować różne strategie doboru kroku kwantyzacji

kwantyzacja nie jest jedyną metodą kontroli współczynnika w JPEG2000

)

sgn(

/

U

U

V

=

background image

Kodowanie współczynników po
kwantyzacji

Etap 1.

Podpasma kafelka są dzielone na 

bloki kodowe

(przez nałożenie siatki

prostokątnej na kafelek po kwantyzacji), typowy rozmiar bloku to 64x64.

Blok kodowy dekomponowany jest na

płaszczyzny bitowe

(w kodowaniu

płaszczyzn mniej znaczących bitów uwzględnia się te bardziej znaczące)

Poszczególne bloki kodowe są kodowane niezależnie od siebie (MQ-Coder)

Kodowanie każdej z płaszczyzn bitowych wykonywane jest w trzech

przebiegach kodowania

(Significance/Refinement/Cleanup).

Wynikiem etapu 1 jest kolekcja ciągów bitów uzyskanych w przebiegach

kodowania płaszczyzn bitowych

bloków kodowych pasm komponentu po

kwantyzacji i DCT

Etap 1. pozwala na uwzględnienie preferencji kodowania (współczynnik

kompresji vs. szybkość/ odporność na błędy; ROI)

background image

Kodowanie współczynników po
kwantyzacji

Etap 2.

Definiuje się

warstwy jakości

rekonstrukcji obrazu

przypisując poszczególnym warstwom przebiegi kodowania

warstwy mogą by warunkowo odrzucane

Przebiegi kodowania bloków kodowych grupowane są w

pakiety

Podpasma kafelka dzielone są na prostokątne obszary ―

precints

ograniczenie: każdy z bloków kodowych podpasma musi w całości zawierać się w jednym z

precints

sposób podziału podpasm na obszary precints jest zależny od poziomu rozdzielczości

odpowiadającego danemu podpasmu

pakiet zawiera wszystkie przebiegi kodowania płaszczyzn bitowych należące do danej warstwy

jakości danego precint

Pakiet opisuje dane obrazowe związane z konkretnym obszarem kafelka składowej,

konkretnym podpasmem (a więc poziomem rozdzielczości) i konkretną warstwą jakości.

Grupowanie zakodowanych płaszczyzn bitowych bloków kodowych w pakiety a

następnie określenie kolejności umieszczenia pakietów w strumieniu bitów umożliwia

transmisję progresywną względem jakości albo rozdzielczości

background image

JPEG2000

UWAGA:

to był tylko zarys podstawowego standardu ...

... są również rozszerzenia standardu

uogólniona transformata falkowa

inna kwantyzacja

transformacje przestrzeni barw

inne ...

(standard liczy 200 stron a rozszerzenia standardu ― ponad 300)

background image

Algorytm bazowy JPEG2000

Dlaczego JPEG2000 jest stratny?

przede wszystkim

kwantyzacja

odrzucanie pakietów wyższych warstw jakości

(podpróbkowanie składowych chrominancji jak w JPEG

można zrealizować za pomocą warstw jakości)

również nie-odwracalne

transformacja przestrzeni barw

DWT

background image

Inne metody stosowane w
kompresji stratnej obrazów

Kodowanie predykcyjne

Kwantyzacja wektorowa

Kompresja fraktalna


Document Outline


Wyszukiwarka

Podobne podstrony:
Nr 17 Praca zaliczeniowa Kompresja stratna i?zstratna
Kompresja dzwieku i obrazu wideo Real World
sprawozdanie3 kompresja obrazu
Cyfrowy system rejestracji obrazu
Znaki w sztuce na przykładzie obrazu Małżenstwo Arnolfinich
Przykladowy wywiad obrazujacy prace z oporem, Wywiad psychologiczny i jakościowe metody diagnostyczn
materialy 07geometryczne i radimetryczne znieksztalcenie obrazu, materiały
Kompresja danych (FAQ), Informatyka -all, INFORMATYKA-all
Test kompresyjny otworw midzykrgowych, biomechanika kliniczna testy
Dokonaj analizy i interpretacji obrazu Hansa Memlinga
Lab 2 Visual Analyser oraz kompresje v2
KompresjaStratnai
3 Przykladowy opis obrazu 2 id Nieznany (2)
kompresja danych
Kompresja wielopasmowa
Kompresory- podstawy parametry, Realizacja Audio - recording, mix
Kompresja klatki piersiowej skuteczniejsza niż standardowa RKO, MEDYCYNA, RATOWNICTWO MEDYCZNE, BLS,

więcej podobnych podstron