KOMPRESJA STRATNA OBRAZÓW Koncepcja podstawowa PODSTAWY TECHNIK MULTIMEDIALNYCH A.Przelaskowski Wprowadzenie Kwantyzacja Koncepcja kodowania transformacyjnego DCT JPEG Falki JPEG2000 Rodzina MPEG i inne standardy skompresowana reprezentacja danych selekcja informacji Paradygmat klasyczny Kwantyzacja Kwantyzacja to złożenie dwóch odwzorowań: wejściowy ciąg danych źródło Transformacja (dekorelacja, koncentracja energii sygnału) Kwantyzacja, selekcja, porządkowanie z ograniczeniem kod Kodowanie bezstratne bitowy ciąg wyjściowy archiwum, strumień, dokument Kodera (k.prosta): nieskończony (skończony duży) zbiór wartości rzeczywistych z określonego zakresu skończony (mały) zbiór wartości całkowitych (lub niekiedy słów kodowych, lub wartości o zdecydowanie mniejszej precyzji) indeksów przedziałów kwantyzacji dzielących zakres wartości wejściowych Dekodera (k.odwrotna): zbiór indeksów zbiór (mały) rzeczywistych wartości rekonstruowanych (reprezentantów przedziałów kwantyzacji) We: Wy: Kwantyzacja: z błędem: przy czym jeśli jest zbiorem punktów granicznych przedziałów kwantyzacji z punktami rekonstrukcji
Kwantyzacja równomierna Kwantyzacja sterowana estymatą funkcji gęstości prawdopodobieństwa Metoda Lloyda-Maxa (iteracyjna, zbieżna do lokalnego optimum, duży wpływ inicjalizacji, czasochłonna) Obowiązujące zasady centroidu i najbliższego sąsiada Stratna DPCM WYBRANE METODY KOMPRESJI STRATNEJ
Typowe zniekształcenia stratnej DPCM Blokowa kwantyzacja dwupoziomowa BTC Podział na bloki Segmentacja progowa, charakterystyka obszarów (w. średnie) Wyznaczenie map bitowych Rekonstrukcja Kwantyzacja wektorowa VQ (metoda kompresji) VQ bardziej obrazowo oryginalny zbiór danych Formowanie strumienia wektorów danych kompresja Poszukiwanie optymalnego wektora kodu dla kolejnych wektorów danych Książka kodów zakodowana reprezentacja (indeksy książki kodowej) Wejście: wektory danych...... Wyszukiwanie Indeksy 1 2 3 42......... Książka kodowa C M wektorów kodowych Wyjście: 3, 42,... Zbiór treningowy T zakodowana reprezentacja (indeksy) Odczytanie kolejnych wektorów kodu rekonstruowany zbiór danych M 8 32 11 N wymiarowe wektory K wektorów treningowych dekompresja Książka kodów
VQ - wyjaśnienia VQ - zagadnienia Książka kodów Wektory wejściowe Indeksy Wektory rekonstrukcji przykłady Budowa książki kodowej (kraty-nośniki, metoda LBG) Na bazie LBG: Inicjalizacja (losowa, grupowanie, rozdzielanie) Struktura książki kodowej (drzewa, adaptacja, klasyfikacja) Wykorzystanie książki kodowej do kompresji Formowanie, kodowanie indeksów Ograniczenia metody (złożoność, brak optymalnych metod wyznaczania książki, małe stopnie kompresji) Kwantyzacja skalarna Kwantyzacja wektorowa KK - drzewo Metody kodowania transformacyjnego Binarne Stożkowe Okrojone Uproszczenie kwantyzacji Dobór transformacji Metoda kwantyzacji z kodowaniem JPEG JPEG
Koncepcja kodowania: uproszczenie kwantyzacji Transformacja kwantyzacja skalarna kwantyzacja wektorowa Pożądane cechy: Dekorelacja danych (usuwanie zależności statystycznych), upakowanie energii wzdłuż wybranych kierunków (wokół elementów bazy) Dobrana baza transformacji (dopasowana lokalnie do sygnału, elastyczna, zupełna) Szybka implementacja obrót+kwantyzacja skalarna Transformacja DCT (2W) Paradygmat TRANSFORMACYJNEGO KODOWANIA prosta odwrotna Stosowana m,in, w JPEG
Selekcja próbek blok obrazu DCT strefowa selekcja próbek progowa selekcja próbek (próg=10) STANDARDY JPEG rekonstrukcje bloku Standard JPEG (szczególna realizacja paradygmatu TK) Podstawowy proces kodowania (ang. baseline process). Rozszerzony, bazujący na DCT proces kodowania (ang. extended DCT- based process). Bezstratny proces kodowania (ang. lossless process). Hierarchiczny proces kodowania (ang. hierarchical process). Progresja kodowania Właściwości kodeka JPEG sekwencyjnie z progresją Kodowanie hierarchiczne (z podpróbkowaniem)
Kwantyzacja i kodowanie w JPEG Efekty JPEGowe u składowa stała v Kwantyzacja/selekcja: dzielenie współczynników DCT k(u,v) przez element tablicy kwantyzacji o współrzędnych (u,v) i zaokrąglanie do liczby całkowitej percepcyjna tablica kwantyzacji Oryginał Kodowanie: przeglądanie zygzak, różnicowo składowa stała bloków (predykcja), kod Huffmana-RLE lub kod arytmetyczny 12:1 43:1 Efekty JPEGowe Ćwiczenie z JPEG http://www.sfu.ca/~cjenning/toybox/hjpeg/index.html
Paradygmat JPEG Opcje kodera: format danych: obrazy ze skalą szarości i obrazy binarne dzielenie na części (podobrazy, ang. tiling) kompresja stratna-bezstratna pozostałe jak w paradygmacie JPEG Paradygmat JPEG2000 skalowanie jakości Kompresja/Dekompresja skalowanie rozdzielczości odtworzenie wybranego komponentu progresja z wybranym ROI rekonstrukcja wybranego ROI kompresja bezstratna Opcje dekodera: rozdzielczość obrazu jakość obrazu ustalanie dokładnego rozmiaru reprezentacji bitowej dekodowanej informacji składniki (komponenty) regiony zainteresowań kompresja stratna-bezstratna Dodatkowe możliwości schematu kompresji: zwiększona odporność na zakłócenia adnotacje o prawach autorskich XML-owa struktura informacji dodatkowych osadzony strumień bitowy (progresywne dekodowanie i skalowalność SNR) reprezentacja wielorozdzielcza bezpośredni dostęp do kodowanego strumienia i przetwarzanie SPOSÓB: hierarchia skal, podpasma i lokalne upakowanie Dekompozycja falkowa Poziom 3 (N/8 N/8) Poziom 2 (N/4 N/4) Poziom 1 (N/2 N/2) Poziom 0 (N N) Obraz oryginalny/ rekonstruowany
Dekompozycja... Rekonstrukcja... Baza falkowa: dopasowana do cech sygnału (obrazu?) Realizacja dekompozycji falkowej Przykładowe falki: Baza falkowa: translacja skalowanie falka: meksykański kapelusz moduł trans. Fouriera tej falki Falkowy opis sygnału: ψ s, x (t ) = 1 t x ψ, s s s 0
Podstawy R-D: Operacyjna krzywa RD Lepiej, czyli porządkowanie informacji w JPEG2000 D Punkty Kwantyzacji krzywa ORD wypukła ORD krzywa RD Optymalizacja w sensie R-D, czyli progowanie z kontekstem kodowania t min D( p), przy R( p) R p K p p K p Optymalizacja z ograniczeniami: lub t min R( p), przy D( p) D a c b a c d d b Lepiej po niż po D koń { i PK : R R D D, j PK i j} ORD =, i j i j R t BR Średnia bitowa BR Testy Testy JPEG2000 JPEG JPEG2000 JPEG 0.25bpp
JPEG vs JPEG2000 JPEG vs JPEG2000 http://www.imagepower.com/technology/jpeg2000/compare/index.html F. Ebrahimi, M. Chamik, S. Winkler, JPEG vs. JPEG2000: An Objective Comparison of Image Encoding Quality, Proc. SPIE Applications of Digital Image Processing, 5558:300-308, 2004. JPEG vs JPEG2000 Testy
Zastosowania teleinformatyczne Zapotrzebowanie na kompresję Interaktywna transmisja (JPIP) Transmisja bezprzewodowa (JPWL) Kompresja sekwencji obrazów - kino domowe (Motion JPEG2000) Kompresja danych 3W (JP3D) Ochrona danych () Standard uniwersalny Interaktywna transmisja (JPIP)
JPIP JPIP (przykłady) wybrany ROI JPIP/SITP HTTP TCP UDP przykłady IP protokół 0.5% 2% 100% JPWL JP3D Tile Data X Y Z JPEG2000 Part 1 & 2 Lifting Coefficients Along Z (if applicable) Lifting Coefficients Along Y (if applicable) Lifting Coefficients Along X (if applicable)
tool ID Security Property Image Security Property Cryptographic data creator Registration Authority Cryptographic data manager node tool ID Cryptographic data stream decoder tool ID Image / Security output Granted resolution, quality, and/or region Master key Creator Key server Viewer Access key Plain image Protected image Accepted image (e.g. thumnail) Case A Image Case B Image JPEG-2000 Encoder JPEG-2000 or codestream Encoder & Creator JPEG-2000 codestream codestream Creator codestream Creator 1 Creator 2 Creator 3 * codestream codestream Consumer 1 Consumer 2 Consumer 3 Consumer Consumer & Decoder JPEG-2000 codestream wavelet transform Image JPEG-2000 Decoder JPEG-2000 or codestream Image quantizer Digital signature Watermarking Encryption, including scrambling Key generation and management Identification and registration selective scrambling PRNG seed arithmetic coder syntax encryption scrambled codestream encrypted seed Block Diagram for wavelet domain scrambling codestream Scrambling (szyfrowane kodowanie) Wspólny algorytm kodowania descrambling Różne systemy warunkowego dostępu (CA) z generacją słów kontrolnych
Estymacja ruchu Po wierszach Frame n-1 Frame n Obszar poszukiwań KODEKI WIDEO MV(0,0) MV(1,0) Hybrydowa metoda kompresji, blokowa (DCT) z kompensacją ruchu Przykład 1 wejściowy makro-blok Transformacja, Kwantyzacja, Kodowanie kodowane błędy predykcji (kanał) Ramka poprzednia Ramka bieżąca Pole wektorów ruchu predykcja z kompensacją ruchu Dekodowanie, Dekwantyzacja, Transformacja -1 Dekoder zdekodowany makro-blok (wyświetlanie) Przewidywany makro-blok Bufor ramek (z opóźnieniem) Estymacja Ruchu wektor ruchu i dane dodatkowe (kanał) Ramka różnicowa Ramka różnicowa po kompensacji ruchu
Przykład 2 Format ramek Ramka poprzednia Ramka bieżąca Pole wektorów ruchu CIF Common Intermediate Format 4:2:0 Y Cr Cb format, progresja (bez przeplotu) 352 x 288 dla ramek luminancji, 176 x 144 dla ramek chrominancji 8 8 Y Y granica bloku Y Y Cr Cb próbki luminancji próbki chrominancji Ramka różnicowa Ramka różnicowa po kompensacji ruchu Predykcja INTER (międzyobrazowa) Referencyjne ramki B GOP GOP I B B P B B P I 0 B 1 B 2 B 3 P 4 B 5 B 6 Time Porządek kodowania: I P B B P B B Porządek wyświetlania: I B B P B B P Playback order: I 0 B 1 B 2 B 3 P 4 B 5 B 6... Bitstream order: I 0 P 4 B 1 B 3 B 2 P 8 B 5...
Estymacja ruchu Standardy rodziny MPEG i pokrewne H.261 H.261 H.263 H.263+ H.263++ (Version 1) (Version 2) ITU-T Standard Joint ITU-T/MPEG Standards 15 15 MB H.262/MPEG-2 MPEG Standard H.264/MPEG-4 AVC MPEG-4 (Version 1) MPEG-1 MPEG-4 (Version 2) 15 1988 1990 1992 1994 1996 1998 2000 2002 2004 15 Makroblok 16x16 Struktura danych w MPEG Sequence GOP SH GOP Macroblock GOP SH GOP I B B P B B P B B B P slice Picture Slice SH slice MB MB MB MB MB MB. Y1 Y2 Y3 Y4 Cb Cr
Struktura kodeka h.264 Predykcja INTRA Wejściowe wideo Podział na makrobloki 16x16 pikseli - Intra/Inter Dekoder Sterowanie koderem Transform/ scal./kwant. Predycja INTRA Kompensacja ruchu Estymacja ruchu skalowanie & transform. odwr. Filtr redukcji ef. blok. Dane sterujące Skwantowane współcz. transf. Wyjściowe wideo Zapis ruchu Kodowanie entropijne Nowe cechy H.264 4 mody luminancji 16x16 9 modów luminancji 4x4 4 mody chrominancji 8x8 Znacząca złożoność kodowania 0 (vertical) 1 (horizontal) 2 (DC) 3 (diagonal down-left) 4 (diagonal down-right) M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I Mean J (A..D, K I..L) L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L M A B C D E F G H I J K L 5 (vertical-right) 6 (horizontal-down) 7 (vertical-left) 8 (horizontal-up) M A B C D E F G H I J K L Estymacja ruchu z nadpróbkowaniem Dokładność kompensacji ruchu A c C b B d D nadpróbkowanie piksele pół-piksele b = round[(a+b)/2] c = round[(a+c)/2] d = round[(a+b+c+d)/4] 16x16 8x16 16x8 8x8 split 8x8 4x8 8x4 4x4 różna wielkość bloków E A C aa bb K L M s N O P B D F G a b c H I J d e f g cc dd h i j k m ee ff n p q r b 1 =(E-5F+20G+20H-5I+J) h 1 =(A-5C+20G+20M-5R+T) b=(b 1 +16) >> 5 clipped to h=(h 1 +16) >> 5 0~255 ---------- j 1 =cc-5dd+20h 1 +20m 1-5ee+ff j = (j 1 +512) >>10 ---------- a=(g+b+1) >>1 clipped to 0~255 R gg S e=(b+h+1) >> 1 16x16 16x8 8x16 8x8 8x4 4x8 4x4 T hh U
Przykład podziału na makrobloki Kompensacja ruchu Wiele obrazów referencyjnych Dowolne wagi Kierunek ruchu nieistotny Klatki B mogą być referencyjne =4 =2 =1 Klatki już zdekodowane Kodowany obraz Estymacja ruchu Nieregularne siatki do modelowania obiektów w ruchu MPEG-2 / MPEG-4 Nowy rodzaj transformacji Wejściowe bloki 8x8 Transformacja DCT Przetransformowane bloki 8x8 MPEG-4 AVC Globalna estymacja ruchu MV MV 01 00 Wejściowe bloki 4x4 Transformacja całkowitoliczbowa Przetransformowane bloki 4x4 Estymacja dużych fragmentów obrazu z uwzględnieniem zmieniającej się perspektywy lub skali obiektów MV 10 MV 11
Transformacje w AVC Adaptacyjny filtr redukcji efektów blokowych Rozszerzona na 8x8 dla Chroma za pomocą transformacji Hadamarda 2x2 współczynników DC Rozszerzona na 16x16 dla Luma Intra16x16 za pomocą transformacji Hadamarda 4x4 współczynników DC Filtracja zależy od Intra/Inter, wektorów ruchu, różnic pomiędzy pikselami, QP Redukcja średniej bitowej o 6~9% Poprawa subiektywnej jakości oraz PSNR dekodowanych klatek Bez filtru Standardy multimedialne H.320 H.324 Z filtrem