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

Podobne dokumenty
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

Kompresja obrazów w statycznych - algorytm JPEG

Klasyfikacja metod kompresji

Joint Photographic Experts Group

Klasyfikacja metod kompresji

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

dr inż. Piotr Odya Wprowadzenie

Kompresja sekwencji obrazów - algorytm MPEG-2

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

Kompresja video (MPEG)

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.

Kompresja sekwencji obrazów

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

Kompresja dźwięku w standardzie MPEG-1

Kompresja Kodowanie arytmetyczne. Dariusz Sobczuk

Fundamentals of Data Compression

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

Transformaty. Kodowanie transformujace

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

Wybrane metody kompresji obrazów

Kodowanie predykcyjne

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

Python: JPEG. Zadanie. 1. Wczytanie obrazka

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

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

Kodowanie i kompresja Streszczenie Studia dzienne Wykład 9,

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

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

Zastosowania grafiki komputerowej

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

9. Dyskretna transformata Fouriera algorytm FFT

Cyfrowe przetwarzanie i kompresja danych

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

NIEOPTYMALNA TECHNIKA DEKORELACJI W CYFROWYM PRZETWARZANIU OBRAZU

Progresywny internetowy kodek falkowy

Zastosowanie kompresji w kryptografii Piotr Piotrowski

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

Przedmowa Wykaz oznaczeń Wykaz skrótów 1. Sygnały i ich parametry Pojęcia podstawowe Klasyfikacja sygnałów

2. Próbkowanie Sygnały okresowe (16). Trygonometryczny szereg Fouriera (17). Częstotliwość Nyquista (20).

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

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

Technika audio część 2

Kodowanie predykcyjne

Przekształcenia widmowe Transformata Fouriera. Adam Wojciechowski

Akwizycja obrazów. Zagadnienia wstępne

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

1. Wprowadzenie 1.1. Zdefiniowanie problemu badawczego

Kody splotowe. Zastosowanie

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

Kompresja falkowa na przykładzie JPEG2000

Kody splotowe (konwolucyjne)

Sieci neuronowe - projekt

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

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

Przetwarzanie obrazu cyfrowego

PL B BUP 16/04. Kleczkowski Piotr,Kraków,PL WUP 04/09

Transformata Fouriera

Obraz jako funkcja Przekształcenia geometryczne

Przekształcenie Fouriera obrazów FFT

KOMPRESJA STRATNA OBRAZÓW. Paradygmat klasyczny. Kwantyzacja. Koncepcja podstawowa. PODSTAWY TECHNIK MULTIMEDIALNYCH A.Przelaskowski.

Kody Tunstalla. Kodowanie arytmetyczne

Kodowanie informacji

Nowoczesne metody emisji ucyfrowionego sygnału telewizyjnego

RENDERING W CZASIE RZECZYWISTYM. Michał Radziszewski

FFT i dyskretny splot. Aplikacje w DSP

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

2. STRUKTURA RADIOFONICZNYCH SYGNAŁÓW CYFROWYCH

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

Technologie cyfrowe semestr letni 2018/2019

1.1. Pozycyjne systemy liczbowe

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

Kwantyzacja wektorowa. Kodowanie różnicowe.

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 ),...

PL B1. Sposób i układ do modyfikacji widma sygnału ultraszerokopasmowego radia impulsowego. POLITECHNIKA GDAŃSKA, Gdańsk, PL

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

Przykładowe zadanie praktyczne

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

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

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

Przedstawiamy Państwu tekst będący

TECHNIKI MULTIMEDIALNE

Wielokanałowe systemy kodowania dźwięku

Systemy bezpieczne i FTC (Niezawodne Systemy Cyfrowe)

Kodowanie informacji. Przygotował: Ryszard Kijanka

Algorytmy kodowania predykcyjnego

Podstawowe pojęcia. Teoria informacji

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

Kompresja danych DKDA (7)

Ćwiczenie 12/13. Komputerowy hologram Fouriera. Wprowadzenie teoretyczne

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

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

Teoria sygnałów Signal Theory. Elektrotechnika I stopień (I stopień / II stopień) ogólnoakademicki (ogólno akademicki / praktyczny)

dr inż. Jacek Naruniec

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

L6.1 Systemy liczenia stosowane w informatyce

Formaty plików graficznych

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

Transkrypt:

Krótki przegląd pierwszych standardów kompresji obrazów Najstarszymi (980 rok) i szeroko stosowanymi obecnie standardami kompresji obrazów cyfrowych są międzynarodowe standardy kodowania cyfrowych faksów, odpisów (ang. facsimile) Grupy 3 i Grupy 4 opracowane przez grupę konsultacyjną CCITT (Consultative Committee of the International Telephone and Telegraph). Standardy te dotyczą jedynie binarnych obrazów zawierających teksty i dokumenty. Wzrost liczby zastosowań wielopoziomowych obrazów cyfrowych w szerokiej gamie zastosowań nieuchronnie prowadzi do opracowywania nowych standardów kompresji. Udogodnienia związane z wprowadzeniem tych standardów dotyczą nie tylko łatwiejszej wymiany obrazów pomiędzy różnymi systemami i aplikacjami, lecz także pozwalają na znaczące ograniczenie kosztu budowy wyspecjalizowanych urządzeń cyfrowych niezbędnych w wielu systemach kompresji obrazów w czasie rzeczywistym. W ostatnich latach prace nad nowymi standardami kompresji obrazów prowadzone były w trzech zasadniczych kierunkach: - obrazy binarne W 988 roku został uformowany komitet znany jako JBIG (Joint Bilevel Imaging Group) pod auspicjami ISO-IEC/JTC/SC2/WG8 i CCITT SG VIII NIC, w celu opracowania standardu kompresji i dekompresji obrazów binarnych. Grupa skoncentrowała swoje wysiłki na poszukiwaniu efektywniejszego algorytmu od opracownych wcześniej przez CCITT, w zastosowaniu do klasycznych aplikacji (n.p. ośmiu binarnych obrazów odniesienia zaproponowanych przez CCITT), a także rozszerzenia ich stosowalności do nowych aplikacji. Chodziło głównie o opracowanie algorytmów progresywnych i adaptacyjnych. Należy też wspomnieć o opracowanej przez naukowców z IBM w 988 roku binarnej wersji kodera arytmetycznego o nazwie Q-koder i zastosowaniu go do kompresji obrazów binarnych - technika ABIC (Arithmetic Binary Image Compression). CCITT Group 3 i 4 - kodowanie długości sekwencji do kompresji obrazów binarnych JBIG/JBIG2 (Joint Bilevel Imaging Group) - kodowanie arytmetyczne do kompresji danych binarnych - pojedyncze obrazy wielopoziomowe, monochromatyczne i kolorowe Komitet znany powszechnie pod nazwą JPEG (Joint Photographic Experts Group), działający jako ISO-IEC/JTC/SC2/WG0 przy bliskiej nieformalnej współpracy z CCITT SG VIII NIC, uformowany został pod koniec 986 roku w celu opracowania międzynarodowego standardu dla pojedynczych, wielopoziomowych, monochromatycznych i kolorowych obrazów. Zadaniem zespołu było zdefiniowanie standardu dla tak różnych zastosowań jak foto- i telegazeta, grafika komputerowa, skład komputerowy, mała poligrafia, kolorowe faksy, systemy medyczne i wiele innych. Pomimo tego, iż w tej dziedzinie nie istniały wcześniejsze standardy, członkowie JPEG byli silnie przekonani, że wymagania zdecydowanej większości tych zastosowań winny być uwzględnione w standardzie. Ostateczna propozycja standardu, która została opublikowana w 992/993 r. jako standard międzynarodowy ISO/IEC zawiera trzy główne składniki: ) system podstawowy, który zawiera prosty i efektywny algorytm, adekwatny w stosunku do większości zastosowań kompresji obrazów, 2) zbiór rozszerzeń systemu zawierający przede wszystkim algorytm progresywnego kodowania rozszerzający pole zastosowań, 3) niezależna bezstratna metoda kodowania dla zastosowań wymagających tego typu kompresji. Bardziej dokładne omówienie tego standardu, ze względu na przewidywane przez twórców jego zastosowanie także w systemach obrazowania medycznego, zostanie przedstawione w następnej części tego podrozdziału.

Standard JPEG Specyfikacja normy standardu JPEG zawiera: opis procesu przetwarzania źródłowych danych obrazowych w dane obrazowe skompresowane; opis procesu przetwarzania skompresowanych danych obrazowych w zrekonstruowane dane obrazu; wskazania dotyczące praktycznych implementacji standardu; opis zakodowanej reprezentacji skompresowanych danych obrazowych. Specyfikacja nie opisuje kompletnej zakodowanej reprezentacji obrazu, może ona zawierać pewne parametry zależne od aplikacji. W normie znajdują się cztery techniki kompresji, a mianowicie:. Podstawowy proces kodowania (ang. baseline process). 2. Rozszerzony, bazujący na DCT proces kodowania (ang. extended DCT- based process). 3. Bezstratny proces kodowania (ang. lossless process). 4. Hierarchiczny proces kodowania (ang. hierarchical process). Kodowanie każdego składnika obrazu (luminancja, składowe chrominancji) przebiega analogicznie. W podstawowym procesie kodowania dane wejściowe muszą być ośmiobitowe. Obraz jest dzielony na bloki 8x8 i każdy blok jest transformowany za pomocą DCT (ang. discrete cosine transform), przy czym kodowanie obrazu przebiega sekwencyjnie, tzn. z lewej strony na prawą zaczynając od góry obrazu i przemieszczając się na dół. W standardzie JPEG zastosowano zbiór funkcji bazowych transformacji DCT, 2-D dyskretna transformacja kosinusowa zdefiniowana jest w sposób następujący: N N k u v N C u C v f x y x u y v (, ) ( ) ( ) (, ) cos ( 2 + = ) π cos ( 2 + ) π, () 2 2N 2 N a transformacja odwrotna: x= 0 y= 0 N N x u y v f ( x, y) C( u) C( k( u, cos ( 2 + = ) π cos ( 2 + ) π, (2) 2 N 2 N 2 N u= 0 v= 0 gdzie C( u), C( = / 2 dla u, v = 0; C( u), C( = wpp. oraz k(u, są wartościami współczynników transformaty w jej dziedzinie, f(x,y) są wartościami pikseli w dziedzinie obrazu, N zaś określa rozmiar bloku N N obrazu, w którym liczona jest transformata. Obliczone 64 współczynniki z każdego bloku podlegają kwantyzacji. Każdy ze współczynników jest dzielony przez odpowiadającą mu wartość w tablicy kwantyzacji. Tablicę tę można dobrać w zależności od aplikacji. Metoda pozwala połączyć progowanie i równomierną kwantyzację wartości współczynników transformaty zorientowanych przestrzennie i oznaczonych k(u, według następującego wyrażenia: k( u, k ˆ( u, = NINT[ ], (3) z( u,

gdzie kˆ ( u, jest skwantowaną aproksymacją k( u,, a z(u, oznacza element tablicy kwantyzacji, określającej progi i jednocześnie elementarne przedziały kwantyzacji. NINT - zaokrąglenie do najbliższej liczby całkowitej. Oznacza to, że dla przykładowej wartości z(u, równej c (zobacz rysunek a) wartość k ˆ( u, przyjmuje wartość p wtedy i tylko wtedy, jeśli c c pc k( u, < pc +. (4) 2 2 Jeśli z(u, > 2 k(u,, wówczas k ˆ ( u, = 0, czyli następuje zupełne usunięcie tego współczynnika ze zbioru kompresowanych danych. Przykładowa postać tablicy kwantyzacji została przedstawiona na rys. b). W celu osiągnięcia różnych stopni kompresji tablica ta jest modyfikowana w następujący sposób: z'( u, = NINT[ z( u, c], u,v=0... 7 (5 gdzie z'( u, jest nową wartością w tablicy zamiast z(u,, a c jest stałą dobieraną przez użytkownika. a) k(u, 3 2-4c -3c -2c -c c 2c 3c 4c - -2-3 k(u, b) 6 2 4 2 0 6 4 3 26 29 56 87 95 4 8 7 6 9 24 40 24 22 22 24 49 35 37 40 58 5 6 60 57 5 55 64 72 92 78 64 68 69 55 56 8009 8 87 98030403 62 773 220020 92003 99 Rys.. a) krzywa równomiernej kwantyzacji z selekcją progową; b) tablica kwantyzacji optymalizująca jakość rekonstruowanych obrazów pod kątem oceny psychowizualnej (zamieszczona w normie standardu JPEG, jednak nie obligatoryjna). Powyższy schemat kwantyzacji pozwala więc przy niewielkim błędzie kwantyzacji zachować współczynniki o wyższych częstotliwościach, a ponadto, poprzez dobranie odpowiednich wartości tablicy kwantyzacji, zgodnie z perceptualną wagą poszczególnych współczynników, wysoką psychowizualną jakość obrazu. Dodatkową zaletą jest zmniejszenie efektów blokowych poprzez zastosowanie tego samego przedziału kwantyzacji dla składowej stałej we wszystkich blokach. Standard JPEG dopuszcza dowolną postać tablicy kwantyzacji, jednak w normie podano przykładową postać tablicy kwantyzacji (b)) dla luminancji, która zawiera doświadczalnie wyznaczone wartości (w wyniku wieloletnich badań nad psychowizualnym odbiorem obrazów naturalnych), odzwierciedlające perceptualną wagę poszczególnych współczynników.

0 5 6 4 5 27 28 2 4 7 3 6 26 29 42 3 8 2 7 25 30 4 43 9 8 24 3 40 44 53 0 9 23 32 39 45 52 54 20 22 33 38 46 5 55 60 2 34 37 47 50 56 59 6 35 36 48 49 57 58 62 63 Rys. 2. Kolejność ustawienia wartości współczynników w bloku w jednowymiarowy ciąg danych według sekwencji zygzak. W celu efektywniejszej kompresji wartości współczynników w blokach są ustawiane w jednowymiarowy ciąg danych według sekwencji zygzak (rys.2). Ze względu na charakterystyczny rozkład tych wartości w bloku (dominującej najczęściej, co do wartości bezwzględnej, składowej stałej i coraz mniejszych wartości współczynników wyższych częstotliwości, często zerowych), taki rodzaj dekompozycji danych w bloku pozwala na kolejne ustawienie danych o zbliżonych wartościach. Uzyskuje się w ten sposób jednowymiarowy ciąg wartości zakończony dużą ilością zer, który może być bardzo skutecznie kodowany przy pomocy techniki RLE. Tak uszeregowane dane z poszczególnych bloków są następnie kodowane, przy czym składową stałą koduje się różnicowo, tzn. koduje się jedynie różnicę pomiędzy wartością składowej stałej obecnego bloku i poprzedniego. Do kodowania używa się kodu Huffmana, przy czym tablica Huffmana nie jest objęta normą. Norma dopuszcza także stosowanie kodera arytmetycznego. Rys. 3. Schemat blokowy algorytmu kompresji wykorzystującego DCT. Proces dekompresji przebiega dokładnie odwrotnie, przy czym dekoder musi posługiwać się dokładnie tymi samymi tablicami specyfikacji (tablica kwantyzacji, Huffmana). Umożliwia to format zapisu, w którym tablice specyfikacji poprzedzone odpowiednimi markerami umieszczone są w pliku razem z danymi skompresowanymi. Dokładny opis formatu znajduje się w normie. Rozszerzony proces kompresji umożliwia kompresję zarówno 8- mio jak i 2- to bitowych danych, przy czym kodowanie może być nie tylko sekwencyjne, ale i progresywne.

W modzie progresywnym poszczególne bloki współczynników są kodowane w tej samej kolejności, ale w wielu skanach dzielących współczynniki każdego bloku na poszczególne pasma. Związane jest to jednak z zapewnieniem dodatkowego bufora pamięci do przechowania wartości współczynników z całego obrazu po fazie kwantyzacji, a przed statystycznym kodowaniem tych wartości. Są one następnie kolejno kodowane w skanach zbierających wartości w określonym paśmie ze wszystkich bloków. W normie występują dwa rodzaje procedur progresywnego kodowania. Pierwsza, nazywana selekcją widma, dzieli współczynniki ustawione według sekwencji zygzak na kolejne pasma, które zawierają poszczególne części częstotliwościowego spektrum każdego z bloków. Druga procedura związana jest z precyzją, z jaką kodowane są współczynniki w każdym z pasm i nazywana jest sukcesywną aproksymacją. Najpierw kodowana jest pewna liczba bardziej znaczących bitów wartości tych współczynników, a następnie mniej znaczące bity. Można progresywnie kodować współczynniki jedynie przy pomocy procedury selekcji widma, jak też z wykorzystaniem obu procedur. Wówczas mamy do czynienia z tzw. pełną progresją. Ze stwierdzeń zawartych w opisie normy wynika, że zastosowanie selekcji widmowej, jakkolwiek wygodne dla wielu zastosowań, daje porównywalne bądź nieco gorsze wyniki kompresji niż sekwencyjna metoda kodowania, podczas gdy przy pełnej progresji skuteczność kompresji może się okazać nieco większa. W rozszerzonym procesie kodowania możliwe jest także arytmetyczne kodowanie, a tablica warunkowych zależności danych (ang. conditioning table) jest wówczas zapamiętywana jako tablica specyfikacji. Proces kodowania bezstratnego ujęty w standardzie nie wykorzystuje DCT, lecz polega na predyktywnym kodowaniu wartości piksela na podstawie trzech wartości pikseli sąsiednich. Dla danego skanu można wybrać jedną z ośmiu predykcji przedstawionych na rys. 4. Następnie oblicza się różnicę pomiędzy wartością przewidywaną Px, a rzeczywistą wartością piksela i koduje się otrzymaną różnicę odpowiednio dostosowaną metodą Huffmana lub arytmetycznie. W metodzie Huffmana stosuje się 7 kategorii różnicowych wartości, a w kodowaniu arytmetycznym buduje się dwuwymiarowy model statystyczny. Numer Predykcja c a b x 0 2 3 4 5 6 7 Bez predykcji Px=Ra Px=Rb Px=Rc Px=Ra+Rb-Rc Px=Ra+((Rb-Rc)/2) Px=Rb+((Ra-Rc)/2) Px=(Ra+Rb)/2 Rys. 4. Przestrzenna relacja pomiędzy pikselami (a,b,c), których wartości służą do wyznaczania wartości przewidywanej w pikselu x. Obok rodzaje predykcji dla bezstratnego kodowania. Predykcja 0 może być używana dla różnicowego kodowania w modzie hierarchicznym,,2 i 3 to predykcje jednowymiarowe wykorzystywane głównie na skraju obrazów, podczas gdy predykcje 4-7 są dwuwymiarowe. Można tą metodą odwracalnie

kodować od 2 do 6 bitowe wartości pikseli obrazu. Można więc go z łatwością implementować do kompresji szerokiej klasy obrazów. Hierarchiczny proces kodowania polega na kompresji obrazu poprzez zakodowanie sekwencji kadrów tego obrazu (różnicowo lub nieróżnicowo) o różnej rozdzielczości za pomocą rozszerzonego procesu kodowania (wykorzystującego DCT) lub metody bezstratnej. Można także połączyć te dwie metody i po kodowaniu opartym na DCT w ostatecznej fazie zastosować kodowanie bezstratne (bez fazy kwantyzacji). Wówczas zrekonstruowany obraz różni się od oryginalnego jedynie wskutek błędów przybliżeń wartości DCT i IDCT. Tworzy się zrekonstruowane składniki odniesienia obrazu różnej rozdzielczości i koduje się różnice pomiędzy obrazem oryginalnym a tymi składnikami odniesienia. Stosowanie filtrów próbkujących obraz oryginalny z różną rozdzielczością tworzy charakterystyczną piramidę przestrzennej rozdzielczości. Mod hierarchiczny może być stosowany alternatywnie, aby zwiększyć jakość rekonstruowanych składników obrazu o danej rozdzielczości. Oferuje progresywną prezentację czy transmisję, ale jest najczęściej użyteczna jedynie w systemach posługujących się wielorozdzielczymi wersjami danych obrazów.