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

Podobne dokumenty