Grafika teoria 3.
Transkrypt
Grafika teoria 3.
FORMATY GRAFICZNE „Dobra ilustracja przychodzi w małym pliku.” David Siegel, „Tworzenie stron WWW” 1. Rodzaje plików graficznych 1. Mapy bitowe – reprezentują obraz jako prostokątną tablicę pikseli (np. standardy PCX, BMP, Targa, TIFF, GIF, JPEG), 2. Pliki wektorowe – obraz reprezentowany jako zbiór prostych, łuków, krzywych itp. 3. Metapliki – oprócz danych wektorowych zawierają listę poleceń dla systemu graficznego (np. WMF), 4. Pliki danych drukarek: • Rozszerzone formaty tekstowe – włączają informacje graficzne do konwencjonalnego strumienia danych tekstowych (np. PCL), • Języki opisu strony – język programowania używany do opisu strony (np. PostScript). Przykład kodu Postscriptu: 10.5 11.3 moveto % przesun pioro bez rysowania 40 53.6 lineto % rysuj linie od biezacej pozycji showpage % renderuj strone 2. Rodzaje kompresji Kompresja zmniejsza ilość miejsca na dysku potrzebnego do zachowania obrazu: • Kompresja bezstratna umiarkowanie zmniejsza rozmiar pliku bez utraty jakichkolwiek informacji: RLE (run-length encoding) - kodowanie długości ciągów i LZW (Lemple-Ziv-Welch). • Kompresja stratna znacznie zmniejsza rozmiar pliku (do 1/40) kosztem straty części informacji, a tym samym kosztem pogorszenia jakości obrazu (JPEG). 2.1. Kompresja RLE Niech a, b, c, d, e reprezentują jednobajtowe wartości pikseli „aaaaabcdea” – dane oryginalne Licznik „5a5bcdea” – dane skompresowane Bit sterujący: 1-dane powtarzane, 0-dane przepisywane 1 2.2. Kompresja słownikowa LZW (licencja firmy Unisys Corporation) Wartościom wejściowym o zmiennej długości (tzn. poziomym ciągom pikseli tworzących powtarzający się wzór) przypisywane są kody o stałej długości. Kompresor LZW zapisuje na początku słownika kodów wszystkie możliwe wartości pikseli (przy kodowaniu bajtów są to wartości od 0 do 255). Następnie w trakcie tworzenia pliku obrazu do słownika dodawana jest nowa pozycja, gdy znaleziona zostanie sekwencja wartości wejściowych, która jeszcze w słowniku nie występuje. Dekompresor odtwarza oryginalne piksele odszukując ciąg pikseli odpowiadający każdemu kodowi. Przykład 1: zawartość słownika dla 4-bitowych pikseli: Kod Ostatni piksel Poprzedni ciąg 100 87 65 58 3 7 1 4 1 3 87 65 58 49 - Jeżeli w słowniku jest zakodowany ciąg „31417” to są w nim również ciągi „3141”, „314”, „31”, „3”. Przykład 2: wszystkie obrazki są 8-bitowe, rozmiar 90×90pikseli (8100 bajtów bez kompresji). Dłuższe ciągi poziome dają lepszą kompresję (źródło D. Siegel). 2 2.3. Kompresja JPEG Każda implementacja JPEG musi zawierać bazowy schemat kompresji: Obraz oryginalny Model kodera symbole Koder Obraz skompresowany Model kodera: Y f Cb Cr Kodowanie koloru FDCT F Składowa stała F(0,0) Kwantyzacja Składowe zmienne Uwaga: Silna kompresja (jakość poniżej 25%) daje niebazowy plik JPEG Kodowanie koloru: Obraz RGB w skali szarości Zamiast przechowywać trzy składowe r = g = b, barwa każdego piksela kodowana jest w jednym bajcie reprezentującym jasność piksela. Obraz pełnokolorowy (true color) 24-bitowa barwa RGB poddawana jest konwersji do standardu YCbCr opartego na systemie telewizji kolorowej, gdzie Y-luminancja, Cb, Cr – chrominancje: 0.587, 0.114 ⎤ ⎡ R ⎤ ⎡ Y ⎤ ⎡ 0.299, ⎥ ⎢G ⎥ ⎢Cb ⎥ = ⎢− 0.1687, − 0.3313, 0 . 5 ⎥⎢ ⎥ ⎢ ⎥ ⎢ ⎢⎣Cr ⎥⎦ ⎢⎣ 0.5, − 0.4187, − 0.0813⎥⎦ ⎢⎣ B ⎥⎦ Oko ludzkie jest bardziej czułe na zmiany jasności niż koloru, więc gęstość próbkowania chrominancji pikseli jest zmniejszana: B 4 piksele RGB = 12B Cr G Cb R Y Y Cb Cr Suma = 4B = 1B = 1B = 6B Transformata FDCT Dyskretna transformata kosinusowa Fouriera stosowana jest w celu wykrycia stopnia zmian przetwarzanej składowej f obrazu w bloku (n×n) pikseli. W JPEG dla bloku (8×8) pikseli stosuje się szybką dyskretną transformatę kosinusową FDCT: 3 7 7 F (u, v) = C (u )C (v)∑∑ f (i, j ) cos 1 4 i =0 j =0 (2i + 1)uπ (2 j + 1)vπ cos 16 16 gdzie: f(i,j) – wartość piksela w punkcie (i,j), u, v - indeksy w tablicy składowych F[8×8], ⎧1 / 2 dla u , v = 0 C (u ), C (v) = ⎨ dla u, v > 0 ⎩1 F(0,0) F(0,0) - składowa stała reprezentująca stopień niezmienności f w bloku pikseli (uśredniona wartość f), F(u,v) dla u, v>0 - składowe zmienne reprezentujące szybsze zmiany składowej f w bloku pikseli. Kwantyzacja Stosowana jest dla obrazów poddanych transformacji FDCT w celu dokładniejszego zapamiętania stopniowych zmian składowej f obrazu i mniej dokładnego zapamiętania lub usunięcia informacji o dużych gradientach składowej f (nagłych zmianach jasności lub koloru) w próbkowanym bloku (8×8) pikseli (dokładnie zapamiętywana jest tylko F(0,0)). Składowe F(u,v) dzieli się przez odpowiednie elementy macierzy kwantyzacji Q. Po kwantyzacji wiele składowych zmiennych ulega zaokrągleniu do zera. ⎡ ⎢ ⎢ ⎢ ⎢ Q=⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢⎣ 16, 11, 10, 16, 24, 40, 51, 12, 12, 14, 19, 26, 58, 60, 14, 13, 16, 24, 40, 57, 69, 14, 17, 22, 29, 51, 87, 80, 18, 22, 37, 56, 68, 109, 103, 24, 35, 55, 64, 81, 104, 113, 49, 64, 78, 87, 103, 121, 120, 72, 92, 95, 98, 112, 100, 103, 61,⎤ 55,⎥⎥ 56,⎥ ⎥ 62,⎥ 77,⎥ ⎥ 92,⎥ 101,⎥ ⎥ 99,⎥⎦ Dwuwymiarowa tablica składowych F(u,v) jest następnie przekształcana w tablicę jednowymiarową, w której składowe umieszczone są w kolejności określonej zygzakiem (strzałki na macierzy Q). Dzięki temu składowe o niższych częstotliwościach znajdują się na początku tablicy, o wysokich (dużo zer) na końcu tablicy. Ułatwia to kodowanie. 4 mapa bitowa TIFF (211×308) 190 kB JPEG - jakość średnia 25,5 kB JPEG - jakość maksymalna 117 kB JPEG - jakość najniższa 10,6 kB JPEG - jakość wysoka (75%) 44,4 kB JPEG – kompresja 100% 1,96 kB 3. Charakterystyka wybranych standardów 3.1. GIF – Standardowa metoda kodowania skanowanych i generowanych komputerowo obrazów zdefiniowana przez CompuServe w 1987r. Czym jest GIF ? • Format plików (*.gif) • Format strumienia danych przesyłanych z komputera głównego do terminala graficznego Ilość kodowanych kolorów Maksymalnie 256 barw. Piksele są zapisywane przy użyciu najmniejszej koniecznej liczby bitów: 256 barw – 8 bitów/piksel, 2 barwy – 1 bit/piksel. 5 Kompresja LZW – bezstratna, średni współczynnik kompresji 4:1 Zastosowanie • Skanowane obrazy 2-kolorowe, w skali szarości, z paletą do 256 kolorów, z dużą ilością szczegółów, linii, krawędzi (wykres, siatka, szkic, diagram, logo, napis, itp.). • Obrazy generowane komputerowo (max 256 barw) z dużymi polami jednobarwnych wypełnień i wzorów oraz z ostrymi krawędziami, które powinny być zachowane. Uwagi: Obraz zawierający więcej niż 256 barw jest przybliżany paletą 256 barw przed kodowaniem GIF. GIF89a Stosowany do animacji, udostępnia przeplot (interlaced) i przezroczystość jednego koloru obrazka. Przeplot - dane zapisywane są w kolejności wierszy: co 8-y, 4-ty, 2-gi, nieparzyste. Umożliwia to terminalowi wyświetlanie kolejnych przybliżeń obrazka w trakcie jego ładowania. GIF (paleta adaptacyjna) 60,4 kB Animacja - przezroczystość, opóźnienia między klatkami do 1/100sekundy, pętlenie skończone lub nieskończone. Nagłówek pliku Globalna mapa kolorów o b r a z e k 1 Wymagana gdy brak mapy globalnej. Przesłania globalną gdy są obie. Lokalna mapa kolorów Opcjonalne bloki rozszerzeń Skompresowane dane obrazka Jak długo obrazek ma być wyświetlany, czy ma być nałożony na poprzedni obraz, itp. Obrazek 2 Obrazek 3 ..... 6 3.2. PNG – bezpłatny standard, który powstał w 1995r. jako odpowiedź na zapowiedź firm UNISYS i CompuServe o planowanym pobieraniu opłat za korzystanie z oprogramowania do kompresji plików GIF. Czym jest PNG ? • Format plików (*.png) • Format strumienia danych przesyłanych z komputera głównego do terminala graficznego Ilość kodowanych kolorów Kompresja Maksymalna głębia piksela 48 bitów, skala szarości do 16 bitów, pełny 8-bitowy kanał Alfa. Zastosowanie W programach multimedialnych, gdy obraz wymaga efektów przezroczystości, maskowania i przechowywania innych informacji. Uwagi: • Obsługuje dwukierunkowy przeplot, korekcję gamma w celu kontroli jasności obrazka na różnych platformach, sprawdzenie poprawności pliku. • Pozwala dodać do pliku ilustracji dowolnie określony obszar przeznaczony na tekstową metainformację, włączając w to adres URL i informacje związane z bazami danych. LZW – bezstratna (nie opatentowana wersja, lepsza niż w GIF) 3.3. JPEG – (Joint Photographic Experts Group – Wspólna Grupa Ekspertów Fotografii). Standardowa metoda kompresji zdigitalizowanych fotografii przeznaczonych do przesyłania liniami komunikacyjnymi. Czym jest JPEG • Format plików (*.jpg) • Standard wymiany danych w sieci. Kodowanie kolorów True Color RGB 224 =16,7 mln. barw Zeskanowana fotografia jest kodowana przy użyciu przeciętnie jednego bitu na piksel (współczynniki kompresji od 10:1 do 100:1). Kompresja Stratna jpeg. Zastosowanie Najpopularniejszy format tonalnych obrazów w skali szarości i pełnokolorowych dla sieci Internet, programów prezentacyjnych i multimedialnych, wymagających małych plików. Uwagi: • Im większy stopień kompresji tym mniejszy plik i tym większa strata jakości. Z obrazu mogą zostać usunięte drobne szczegóły, a linie i ostre krawędzie zostaną rozmyte. 7 • Należy używać zawsze tego samego stopnia kompresji przy wielokrotnym ponownym kompresowniu tego samego obrazu JPEG. • Obrazy o wysokiej rozdzielczości są degradowane o wiele mniej niż obrazy o niskiej rozdzielczości. 3.4. TIFF – (Tagged Image Format – znacznikowy format pliku obrazowego) Kodowany kolor Obraz 2-kolorowy, indeksowana paleta kolorów (w tym duotony, tritony, quadtony) pełnokolorowy RGB lub CMYK, YCbCr (model oparty na systemie telewizji kolorowej), CIE La*b* Kompresja Bez kompresji (mimo to format stosunkowo wydajny) lub bezstratna kompresja LZW. Zastosowanie Najpopularniejszy format obrazów skanowanych przeznaczonych do druku oraz do prac DTP (Desktop Publishing – skład i montaż komputerowy). Uwagi • Pliki TIFF są praktycznie niezależne od platformy, więc można je przenosić np. między platformami Maintosh i Windows (programy edycji obrazów powinny otworzyć każdy plik TIFF). • Część programów prezentacyjnych lub multimedialnych nie obsługuje formatu TIFF. Plik TIFF zawiera katalog IFD (ang. Image File Directory), którego każda pozycja (o długości 12 bajtów) zawiera znacznik identyfikujący dane. Przykładowe znaczniki: Nazwa Znacznik TIFFTAG_IMAGEWIDTH 256 TIFFTAG_COMPRESSION 259 COMPRESSION_LZW 5 COMPRESSION_JPEG 6 COMPRESSION_PACKBITS 32773 COMPRESSION_NONE 1 TIFFTAG_PHOTOMETRIC 262 PHOTOMETRIC_RGB 2 PHOTOMETRIC_PALETTE 3 PHOTOMETRIC_SEPARATED 5 PHOTOMETRIC_YCBCR 6 PHOTOMETRIC_CIELAB 8 TIFFTAG_THRESHHOLDING 263 THRESHHOLD_BILEVEL 1 THRESHHOLD_HALFTONE 2 THRESHHOLD_ERRORDIFFUSE 3 Opis Szerokość obrazu w pikselach Technika kompresji danych: Lempel-Ziv&Welch kompresja JPEG Macintosh RLE tryb bez kompresji Kolory: model RGB indeksowana paleta kolorów separacja CMYK CCIR 601 1976 CIE L*a*b Technika rastrowania: dwa poziomy półtonowanie metoda Floyd-Steinberg 8 TIFFTAG_XPOSITION TIFFTAG_INKNAMES TIFFTAG_DOTRANGE TIFFTAG_TARGETPRINTER TIFFTAG_MODEL 286 333 336 337 273 pozioma pozycja lewej krawędzi obrazu na stronie nazwa ASCII atramentu kody punktów 0%-100% docelowa drukarka nazwa/nr modelu skanera 3.5. EPS – (Encapsulated PostScript – niejawny PostScript) Kodowany kolor Kodowanie Obraz 2-kolorowy, obraz w skali szarości, duotone, tritone, quadtone, pełnokolorowy RGB lub CMYK ASCII, binarne, JPEG (od PostScript Level 2) Zastosowanie Do przechowywania obrazków obiektów zawartych wewnątrz ścieżki obcinania, np. w celu wstawienia do katalogu. Do przechowywania informacji o ekranowaniu (rastrze półtonowym), gdy obraz ma być drukowany na naświetlarce lub stosowane są własne wzory ekranowania. Uwagi Celowe jest zachowywanie plików EPS z podglądem obrazka. Spłaszczenie = 0 - ścieżka zostanie wydrukowana dokładnie tak jak została stworzona. Spłaszczenie > 0 - obcinane są rogi ścieżki, czyniąc ją mniej dokładną. W większości przypadków ustawienie spłaszczenia na 2 lub 3 daje dobry efekt i znacznie skraca czas druku. 9