1 / 44

Bezstratna kompresja obrazów

Bezstratna kompresja obrazów. Bezstratna kompresja obrazów. P rzegląd pojęć i metod Proste algorytmy kompresji obrazów Algorytm Lossless JPEG Algorytm JPEG-LS Inne popularne a lgorytmy ( JBIG, JBIG II , GIF, PNG ). Obraz cyfrowy.

duncan
Download Presentation

Bezstratna kompresja obrazów

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Bezstratna kompresja obrazów

  2. Bezstratna kompresja obrazów • Przegląd pojęć i metod • Proste algorytmy kompresji obrazów • Algorytm Lossless JPEG • Algorytm JPEG-LS • Inne popularne algorytmy (JBIG, JBIG II, GIF, PNG)

  3. Obraz cyfrowy • Obraz cyfrowy jest dyskretną reprezentacją naturalnego obrazu otrzymaną w wyniku procesu akwizycji bądź wygenerowaną w sposób sztuczny. Obraz najczęściej jest reprezentowany komputerowo jest jako prostokątna tablica pikseli • Piksel, jako element obrazu cyfrowego, reprezentuje odpowiadający mu fragment powierzchni obrazu rzeczywistego. Praktycznie piksel to wektor dyskretnych wartości — składowych barwy fragmentu powierzchni obrazu • Ze względu na liczbę składowych piksela oraz sposób ich reprezentacji i interpretacji obrazy cyfrowe dzielimy na kilka klas obrazów

  4. Klasy obrazów cyfrowych

  5. Klasy obrazów cyfrowych • Obrazy binarne — piksel to bit • 0 — czarny, 1 — biały • Obrazy w stopniach szarości — piksel jest nieujemną liczbą całkowitą • Zakres wartości piksela (liczba stopni szarości, liczba poziomów jasności) na ogół nie przekracza 216 • Przez obraz o głębi jasności N bitów na piksel rozumieć będziemy obraz o liczbie stopni szarości 2N • Zwykle: 0 — czarny, 2N– 1 — biały

  6. Klasy obrazów cyfrowych • Obrazy barwne — piksel to 3-elementowy lub 4-elementowy wektor składowch obrazu w danej przestrzeni barw • RGB • YCrCb • HSV • ... i inne • Obrazy k-spektralne (lub multispektralne) • piksel to k-elementowy wektor, jego poszczególne składowe opisują jasność obrazu w różnych zakresach spektrum elektromagnetycznego (np. podczerwień, zakresy widzialne) • obrazy satelitarne mogą mieć kilkadziesiąt składowych • obraz RGB jest obrazem multispektralnym • obrazy YCrCb, HSV nie są obrazami multispektralnymi

  7. Klasy obrazów cyfrowych • Obrazy z paletą barw— piksel to pojedyncza nieujemna liczba całkowita interpretowana jako numer barwy z pewnej palety barw. • W odróżnieniu od pozostałych klas, dla obrazów z paletą barw przyjmuje się, iż nie ma bezpośredniego związku pomiędzy wartością piksela a jasnością, nasyceniem ani barwą elementu obrazu • Obrazy binarne i obrazy z paletą barw często pozyskiwane są jako odpowiednio obrazy w stopniach szarości oraz barwne, a następnie przekształcane • dithering • progowanie

  8. Cechy obrazów cyfrowych • Obraz jest 2D • Naturalne obrazy zawierają szum • Rozmiar alfabetu źródła jest duży (dla stopni szarości typowo 256 do 65536, dla obrazów barwnych 16777216 do 281474976710656 ) • kosztowne staje się stosowanie zwykłych modeli danych (tym bardziej dla wyższych rzędów modelu) • problemy z adaptacją modelu • Barwa większości pikseli typowego obrazu jest zbliżona do barwy pikseli go otaczających

  9. Kompresja obrazów cyfrowych • Dla obrazów konstruujemy specjalizowane algorytmy kompresji • algorytmy uniwersalne nie sprawdzają się • nie wykorzystują cech charakterystycznych obrazów • stosujemy je, lecz jako element bardziej złożonego algorytmu • kompresja stratna obrazów (za tydzień) • wykorzystuje cechy charakterystyczne obrazów i zmysłu wzroku człowieka • „wizualnie bezstratne” • „diagnostycznie bezstratne” • dlaczego i kiedy stosujemy? • dlaczego (i kiedy) nie?

  10. Kompresja obrazów cyfrowych • Dla obrazów konstruujemy specjalizowane algorytmy kompresji • dodatkowe przydatne cechy algorytmów • (podstawowe to były: współczynnik i złożoności) • kodowanie progresywne/hierarchiczne • podział obrazu na poziomy rozdzielczości, kodowane od najmniejszej • kodowanie „piramidowe” gdy rozdzielczość poziomów rośnie w obu kierunkach • algorytmy LPL (lossy plus lossless) • kodowanie obszarów zainteresowania • dostęp swobodny do wybranego fragmentu obrazu(czyli dekodowanie części obrazu bez dekodowania całości)

  11. Proste algorytmy kompresji obrazów (starsze) • Kodowanie długości sekwencji • Kodowanie konturowe • Kodowanie drzewiaste

  12. Kodowanie długości sekwencji • obraz przeglądamy w kolejności rastrowej (lub innej), tzw. linearyzacja • ciąg pikseli kodujemy algorytmem RLE • stosowany w formacie .TIFF

  13. Kodowanie konturowe • obraz dzielimy na tzw. kontury, czyli spójne obszary składające się z jednakowych pikseli, kodujemy zbiór opisów konturów • opis danego konturu zawiera informacje o barwie pikseli konturu, położeniu konturu w obrazie oraz kształcie konturu, zadanym przez krawędź konturu opisaną tzw. kodem łańcuchowym:PPDDDLLLGPGGPrawo Prawo Dół ...

  14. Kodowanie drzewiaste • Obraz reprezentowany jest przez drzewo czwórkowe • Korzeń drzewa to cały obraz • Dany węzeł odpowiada prostokątnemu fragmentowi obrazu • Jeżeli wszystkie piksele tego fragmentu są identyczne, to węzeł jest liściem, w którym pamięta się barwę pikseli • W przeciwnym przypadku węzeł ma 4 synów, każdy z nich opisuje dokładnie jedną ćwiartkę obrazu odpowiadającego temu węzłowi

  15. Proste algorytmy kompresji obrazów (starsze) • Kodowanie długości sekwencji • Kodowanie konturowe • Kodowanie drzewiaste • Inne ... • Stosowane przede wszystkim dla rysunków i prostych obrazów o małej liczbie barw, obrazów binarnych • Ciąg symboli opisujący obraz zakodowany z użyciem tych metod zwykle nadaje się do dalszej kompresji za pomocą algorytmów statystycznych bądź słownikowych

  16. 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

  17. Predykcja • Rozkład prawdopodobieństwa jasności pikseli typowego obrazu jest mniej-więcej równomierny • Po predykcji typowo otrzymujemy ciąg symboli (zwany residuum) o rozkładzie Laplace’a (symetryczny rozkład wykładniczy) • łatwiej kodować (Golomb, Golomb-Rice) • łatwiej modelować(nawet dla dużego alfabetu) • lepsze współczynniki

  18. Algorytm Lossless JPEG • Komitet JPEG • powołany w 1986 z inicjatywy organizacji ISO, CCITT oraz IEC aby opracować standardowy algorytm kompresji obrazów, po kilku latach opracowano 2 standardy • tzw „JPEG” ― popularny do dziś transformacyjny algorytm kompresji stratnej • Lossless JPEG― adaptacyjny algorytm bezstratny, przeznaczony do kompresji obrazów w stopniach szarości o głębiach jasności 2-16 bitów na piksel(Lossless JPEG to zaadaptowany algorytmSunset,opracowany w latach 80. przez Langdona, Rissanena Todda)Langdon, G.; Gulati, A.; Seiler, E.: On the JPEG model for lossless image compression. Proceedings DCC'92, 1992, pp. 172-80

  19. Algorytm Lossless JPEG ― predykcja • Obraz przeglądamy w kolejności rastrowej • Dokonujemy predykcji jednym z 8 predyktorów zdefiniowanych w standardzie • użyj ten sam predyktor dla całego obrazu • można wypróbować wszystkie predyktory i wybrać najlepszy

  20. Algorytm Lossless JPEG ― modelowanie • Kontekstem dla PX = Pred(X) ― błędu predykcji piksela X są błędy predykcji sąsiadów górnego PB i lewego PA • Konteksty zgrupowano w kubełki • metoda zastosowana pierwszy raz w algorytmie sunset • ograniczenie złożoności pamięciowej (w Lossless JPEG 25 kubełków) • lepsza adaptacjaproblem „rozmycia kontekstu” (context dilution)

  21. Algorytm Lossless JPEG ― kodowanie • Do wyboru • arytmetyczny koder entropijny (QM-coder) z kontekstowym modelem danych • koder Huffmana z modelem bezpamięciowym • predefiniowana rodzina kodów

  22. Algorytm JPEG-LS • Nowy standard komitetu JPEG dla bezstratnej kompresji obrazów • ITU-T; ISO/IEC: Information technology – Lossless and near-lossless compression of continuous-tone still images – Baseline. ITU-T Recommendation T.87 and ISO/IEC International Standard 14495-1, June 1999. • Z roku 1999, następca algorytmu Lossless JPEG, wyłoniony w drodze konkursu (ogłoszonego w 1996) oparty o algorytm LOCO-I (Weinberger, Seroussi, Sapiro, 1996) • Weinberger, M. J.; Seroussi G.; Sapiro G.: LOCO-I: A low complexity, context-based, lossless image compression algorithm. Proceedings DCC'96, IEEE Comput. Soc. Press, Los Alamitos, California, 1996, pp. 140-9. • Weinberger M. J., Seroussi G., Sapiro G.: The LOCO-I lossless image compression algorithm: Principles and standardization into JPEG-LS. IEEE Trans. Image Processing, August 2000, Vol. 9(8), pp. 1309-24.

  23. C B A X Algorytm JPEG-LS ― predykcja • Predyktor nieliniowy • wykrywanie krawędzi poziomych i pionowych • predyktor prosty lecz skuteczny PredMED(X) = median(A, B, A + B – C) if C ≥ max(A; B) PredMED(X) = min(A; B) else if C ≤ min(A; B) PredMED(X) = max(A; B) else PredMED(X) = A + B − C;

  24. Algorytm JPEG-LS ― kodowanie • Dla obrazu o głębi N bitów • jasność piksela X jest w zakresie [0, 2N– 1] • błąd predykcji Rp = X–Pred(X) jest w zakresie [–2N+ 1, 2N– 1] • ale dla danej wartości predyktora możliwych jest tylko 2N wartości błędu predykcji • można zatem wykonywać obliczenia w arytmetyce modulo 2N kodowanie: Rm = ( X–Pred(X) ) mod 2N dekodowanie: X = ( Rm+Pred(X) ) mod 2N • w JPEG-LS obliczenia „modulo” w przedziale [–2N–1, 2N–1– 1] • operacja zaburza rozkład po dekorelacji • ale zaburza dla typowych obrazów nieznacznie • unikamy „ekspansji alfabetu”

  25. Algorytm JPEG-LS ― kodowanie • Do kodowania zastosowano zmodyfikowaną rodzinę kodów Rice’a, przeznaczoną dla rozkładu wykładniczego (a nie rozkładu Laplace’a) • Konieczne jest mapowanie błędów predykcji • kolejność: 0, –1, 1, –2, 2, –3, 3 ...

  26. Algorytm JPEG-LS ― kodowanie • Zastosowano zmodyfikowaną rodzinę kodów Rice’a • długość kodu ograniczona (do 32 dla głębi obrazu 8 bitów) • (przykład /następny slajd/ dla głębi 4 ograniczenie do 8 bitów) • dlaczego ograniczamy długości słów kodowych?

  27. Algorytm JPEG-LS ― kodowanie

  28. C B D A X Algorytm JPEG-LS ― modelowanie • Kontekst wyznaczony na podstawie trzech tzw. „gradientów” γ1 = D – B, γ2 = B – C, γ3 = C – A • Konteksty zgrupowano w 365 kubełków

  29. Algorytm JPEG-LS ― modelowanie • Model dedykowany dla rodziny kodów Rice’a • Aby wyznaczyć parametr k kodu Rice’a dla każdego z kontekstów wystarczy pamiętać liczbę błędów predykcji S oraz sumę błędów predykcji A, następnie: k = min{ k’ | 2k’ S ≥ A } for ( k=0; (S<<k)<A; k++ ); • Okresowe dzielenie liczników

  30. Algorytm JPEG-LS ― udoskonalenia • Korekta wartości średniej błędu predykcji • Dla całego obrazu błędy predykcji mają rozkład Laplace’a o wartości średniej 0 • Ale lokalnie dla poszczególnych kontekstów wartość średnia jest jedynie bliska 0 • Dla każdego kubełka adaptacyjnie szacuje się ∆X, czyli wartość średnią błędu predykcji i przed kodowaniem przeprowadza korektę kodujemy:X – PredMED(X) –∆X

  31. Algorytm JPEG-LS ― udoskonalenia • Obszary o stałej jasności • W obrazach, zwłaszcza nie-naturalnych, występują obszary o stałej jasności • Dla takich obszarów • modele projektowane dla typowych obrazów nie sprawdzają się dobrze • kody przedrostkowe są nieefektywne(nie osiągniemy współczynnika lepszego niż 1 bit na piksel) • Można wykrywać takie obszary i kodować je odmiennie niż resztę obrazu, w JPEG-LS: • gdy γ1 = γ2 = γ3 = 0 to przechodzimy do odmiennego trybu kodowania, tzw. „run mode” • ... i kodujemy pojedynczym słowem kodowym liczbę kolejnych pikseli o takiej samej jasności

  32. Algorytm JPEG-LS • Cechy • predykcyjny • dość prosty/szybki • współczynniki kompresji zbliżone do najlepszych • jest wariant „prawie bezstratny: (nearly lossless) • jest wiele rozszerzeń, w tym rozszerzenie o większej złożoności i lepszych współczynnikach oparte na kodowaniu arytmetycznym

  33. Inne algorytmy ― obrazy binarne • CCITT Group 3 (1985) • standard dla faksów, nadal stosowany • kodowanie długości sekwencji białych i czarnych pikseli obrazu przeglądanego w porządku rastrowym • długość sekwencji kodowana za pomocą predefiniowanych kodów przedrostkowych • CCITT Group 4 • uwzględniamy poprzedni wiersz, kodujemy różnice • występuje niebezpieczeństwo propagacji błędu, gdyżtransmisja faksowa odbywa się przez kanał z szumem • co kilka wierszy kodujemy wiersz algorytmem CCITT Group 3

  34. Inne algorytmy ― obrazy binarne • JBIG • adaptacyjny koder arytmetyczny (QM-Coder) • kontekst zbudowany z 10-12 już przetworzonych pikseli (zatem mamy 1024-4096 kontekstów) • tryb progresywny „piramidowy” • obraz w niższej rozdzielczości tworzony jest przez uśrednienie bloków 2x2 piksele obrazu wyższej rozdzielczości • konieczne było zdefiniowanie sposobu uśredniania bloków zawierających po 2 piksele białe i czarne • przy kodowaniu obrazu w wyższej rozdzielczości kontekst zawiera również piksele obrazu niższej rozdzielczości

  35. Inne algorytmy ― obrazy binarne • JBIG2 • znacznie rozszerzony algorytm JBIG • kilka trybów kodowania • algorytmy ze specyfikacji CCITT 3 i 4 • kodowanie arytmetyczne z JBIG • kodowanie słownikowe (słownik symboli-bitmap) – dla kompresji tekstów i półtonów • różne fragmenty obrazu mogą być kodowane różnymi metodami • standard definiuje dekompresor (tylko dekompresor) • dopuszcza się kompresję stratna • koder wybiera jak i które metody zastosować

  36. Inne algorytmy ― obrazy w stopniach szarości • Algorytmy JBIG stosuje się również do obrazów w stopniach szarości po rozbiciu tych obrazów na płaszczyzny bitowedla naturalnego kodu binarnego lub dla kodu Graya 000 001 011 010 110 111 101 100 unsigned gray = binary ^ (binary >> 1); // ^ to xor słowa kodowe kolejnych liczb różnią się dokładnie jednym bitem odległość Hamminga dla dwóch kolejnych słów wynosi 1

  37. Inne algorytmy ― obrazy w stopniach szarości • CALIC (X. Wu i N. Memon 1996) • algorytm predykcyjny, w którym po linearyzacji w kolejności rastrowej, ciąg błędów predykcji kompresuje się arytmetyczne lub koderem Huffmana • algorytm uzyskuje wysokie współczynniki kompresji, jest uznawany za nieoficjalny standard pod tym względem • istnieją algorytmy lepsze, dla typowych obrazów uzyskują o kilka procent lepsze współczynniki i kilka (lub nawet kilkaset) razy mniejszą prędkość • w porównaniu do JPEG-LS, CALIC uzyskuje o kilka procent lepsze współczynniki i 2-5 razy mniejszą prędkość

  38. Inne algorytmy ― obrazy w stopniach szarości

  39. Inne algorytmy ― obrazy barwne • W obrazach RGB poszczególne składowe obrazu są na ogół silnie skorelowane. Większość algorytmów radzi sobie z tym następująco: • przeprowadza transformację obrazu do innego modelu barw, uzyskując nowy, mniej nadmiarowy zbiór składowych piksela, • YCrCb • YC1C2 • KLT/PCA • koduje poszczególne składowe (np. predykcyjnie) • niezależnie od pozostałych składowych • lub używając już zakodowanych składowych do polepszenia modelowania dla kodowanej składowej

  40. Inne algorytmy ― obrazy barwne • Transformacja przestrzeni barw obrazu do innego modelu, użyta w algorytmie bezstratnym musi być odwracalna • składowe po transformacji zaokrąglamy do liczb całkowitych • Odwracalna transformacja YC1C2 (z JPEG2000) • jest też wersja bez „ekspansji alfabetu” w arytmetyce modulo z rozszerzonego standardu JPEG-LS

  41. Inne algorytmy ― obrazy z paletą • GIF • początkowo wewnętrzny standard opracowanym przez sieć CompuServe • do kompresji obrazów z paletą do 256 barw, oparty o LZW • opatentowany • dodatkowe elementy • seria obrazów (animacja) • progresywny schemat kompresji obrazu, który polega na linearyzacji obrazu w porządku z przeplotem (najpierw co 8 wiersz obrazu poczynając od wiersza 0, po czym co 8 wiersz poczynając od wiersza 4, następnie co 4 wiersz poczynając od 2 wiersza i ostatecznie co 2 wiersz poczynając od wiersza 1)

  42. Inne algorytmy ― obrazy z paletą • PNG • algorytm predykcyjny (4 predyktory do wyboru) oparty o kodowanie słownikowe LZ77 i kody Huffmana (z ograniczoną długością słowa kodowego lub predefiniowane) • wolny od patentów standard WWW Consortium, przeznaczony dla • obrazów z paletą barw • obrazów barwnych i obrazów w stopniach szarości o głębi jasności do 16 bitów na piksel (jednak tutaj nie dorównuje JPEG-LS ani pod względem współczynnika ani szybkości) • tryb progresywny doskonalszy niż w algorytmie GIF

  43. Ciekawostka • Obrazy o rzadkich histogramach • tu PNG może by lepszy od JPEG-LS i CALIC

  44. Ciekawostka • Pakowanie histogramów (histogram packing) • wymaga zakodowania oryginalnego histogramu • może poprawić współczynnik o kilkadziesiąt procent

More Related