Autor: Krzysztof Karaś Tytuł: Sprasowany kolor

Transkrypt

Autor: Krzysztof Karaś Tytuł: Sprasowany kolor
Autor: Krzysztof Karaś
Tytuł: Sprasowany kolor
Podtytuł: Formaty graficzne w sieci WEB i ich optymalizacja
Tworzenie grafiki dla stron WWW narzuca projektantowi specyficzne wymagania. Każda osoba pracująca nad
tego typu grafiką musi pamiętać, że efekt jego pracy będzie przesyłany przez łącza, najczęściej telefoniczne. Jeśli
nie zadbamy o to by pojemność grafiki była jak najmniejsza, strona WWW, na której ją umieścimy będzie
„ładowała się” niemiłosiernie długo. Nikt przy zdrowych zmysłach nie umieszcza na stronie pełnoekranowych
grafik w wysokiej rozdzielczości. Jeśli nawet chcemy umieszczać duże elementy graficzne, dobrze jest je
wcześniej pociąć przy pomocy odpowiedniego oprogramowania. Pozwoli to w znacznym stopniu skrócić czas
wczytywania obrazu. Bardzo dobrze do tego celu nadaje się program ImageReady. Kolejnym sposobem
przyśpieszenia wczytywania grafiki na stronie WWW jest jej optymalizacja.
Optymalizacja polega na odpowiednim doborze ilości kolorów w palecie tworzącej obraz, tak by nie tracąc na
jakości obrazu uzyskać efekt maksymalnego zmniejszenia rozmiarów plików graficznych. Obróbka
optymalizacyjna grafiki wiąże się ze znajomością formatów graficznych i samego sposobu zapisu poszczególnych
plików graficznych. W chwili obecnej przeglądarki internetowe wykorzystują dwa rodzaje plików graficznych.
Pierwszym z nich jest GIF (.gif) drugim JPEG (.jpg). Sytuacja ta może ulec zmianie po upowszechnieniu się
formatu JPEG200 posiadającego całkowicie nowe możliwości.
Format GIF (Graphic Interchange Format) jest najstarszym z formatów używanych obecnie dla prezentacji grafiki
na stronach WWW. Został stworzony w 1987 roku przez firmę CopmpuServe. Pierwsza wersja tego formatu miała
oznaczenie 87a, kolejna powstała w 1989 roku i otrzymała oznaczenie kodowe 89a. W odróżnieniu od pierwszej
wersji posiadała możliwość zapisu przezroczystości obrazu oraz animacji. Format GIF oparty jest na 8 bitowej
palecie (256 kolorów). Firma CompuServe zdecydowała się na ograniczenie palety kolorów w celu
maksymalnego przyśpieszenia transmisji danych przez sieć. GIF wykorzystuje paletę kolorów, która może się
składać z 2, 4, 8, 16, 32, 64, 128 i 256 kolorów. Konwersja obrazu z formatu 24 bitowego do formatu GIF
powoduje zmniejszenie głębi barw. Redukcja ta przyczynia się do utraty części informacji o obrazie. Im mniejsza
paleta kolorów tym mniej potrzeba miejsca na zapis obrazu i szybsze jest ładowanie grafiki. Każdy kolor
wykorzystywany w obrazie musi pochodzi z wybranej palety kolorów. Format dopuszcza określenia lokalnej
palety kolorów dla konkretnego obrazu. GIF umożliwia wyświetlanie grafiki w czterech niezależnych od siebie
fazach. Jest to tak zwany zapis obrazu z przeplotem. Ten sposób ładowania grafiki stwarza efekt stopniowego
wyostrzania się obrazu. Przeplot umożliwia obejrzenie obrazu od samego początku. GIF daje możliwość
określenia przezroczystego koloru. Istnieje także możliwość tworzenia plików z animacją. W tym przypadku
użytkownik może określić odstępy czasowe pomiędzy wyświetlaniem poszczególnych klatek animacji. Minimalny
przedział czasowy to 1/100 sekundy. Do kompresji obrazu format GIF wykorzystuje algorytm LZW. Jest on
bezstratną metodą kompresji obrazu. Został on opracowany w 1984 roku. Działanie jego polega na wyszukiwaniu
w obrazie sekwencji pikseli, tworzących powtarzający się schemat informacji nadmiarowej. Następnie taka
sekwencja zastępowana jest kodami liczbowymi umieszczonymi w tablicy kodów. Im więcej wyszukanych
sekwencji nadmiarowych tym lepsza kompresja obrazu. Dzięki bezstratnej kompresji istnieje możliwość
dekompresji i otrzymania obrazu zgodnego z oryginałem. LZW w połączeniu z redukcją palety kolorów pozwala
na uzyskanie stopnia kompresji granicach 20 do 80 procent. Reasumując, GIF nadaje się świetnie do zapisu
grafiki wykorzystującej małą liczbę kolorów, w których większa część powierzchni wypełniona jest jednym
kolorem lub wypełnionych małą liczba kolorów kontrastujących. Format GIF nie nadaje się natomiast do zapisu
obrazów o dużej palecie kolorów oraz cieni.
Nazwa kolejnego formatu zapisu obrazu pochodzi od skrótu Joint Photographic Expert Group – JPG (DOS) i
JPEG (Unix). Format ten został opracowany w celu zapisu i kompresji zdjęć i ilustracji zawierających dużą ilość
kolorów i półcieni. Dzięki zastosowaniu bardzo wydajnych metod kompresji uzyskujemy pliki o niewielkich
rozmiarach. Format JPEG zapisuje obraz w 24 bitowej palecie kolorów – format RGB. Każda barwa z grupy
trzech kolorów (tzn. czerwony – red, zielony – green oraz niebieski 0 blue = RGB) reprezentowana jest przez 8
bitów informacji. W sumie składa się to na 24 bitowy piksel. Każdy kolor reprezentowany jest przez jeden 256
jego odcieni, co w sumie daje paletę 16.777.216 barw. W przypadku skali szarości format JPEG operuje głębią 8
bitową, co pozwala na uzyskanie 256 odcieni szarości. Dzięki temu lepiej nadaje się on do zapisu grafik czarnobiałych niż GIF. W formacie JPEG nie ma możliwości zapisu informacji o przezroczystości. JPEG pozwala na
ustalenie stopnia kompresji obrazu, dzięki czemu użytkownik ma możliwość dobrania odpowiednich rozmiarów
pliku. Kompresja powoduje jednak straty informacji o odcieniach barw, nie są natomiast tracone informacje o
poziomie jasności obrazu. Im wyższy współczynnik kompresji obrazu tym większe straty danych i pogorszenie
jego jakości. Związane jest to z metoda kompresji polegającą na usuwaniu fragmentów obrazu podobnych do
siebie. W kompresji JPEG obraz dzielony jest na strefy barwne, które mają kształt kwadratu. Wyselekcjonowana
jest również i dzielona informacja o jaskrawości i odcieniach kolorów. Kolejny etap to zapis informacji o różnicach
pomiędzy grupami pikseli w obrazie. Należy pamiętać, iż każdorazowa zmiana w obrazu w formacie JPEG i jego
ponowne zapisanie powoduje pogorszenie jego jakości, ponieważ efekt kompresji jest kumulowany. Kompresja w
formacie JPEG należy do stratnych, a co za tym idzie i nieodwracalnych metod. Podczas kompresji informacje o
obrazie są kasowane. JPEG dopuszcza kompresje w zakresie 1:100. Kompresja 1:20 nie powoduje strat
zauważalnych przez ludzkie oko. Wyższa kompresja to zwiększony współczynnik strat w jakości obrazu. Format
ten nie nadaje się do zapisu obrazu zawierającego duże obszary jednolitego koloru oraz do tworzenia prostych
obrazków, miniaturek i ikon tzn. elementów o małej palecie kolorów.
GIF oraz JPEG są formatami, używanymi już od dłuższego czasu. Każdy z nich ma swoje wady i zalety. Żaden z
nich nie jest formatem idealnym. Próba stworzenia formatu, który będzie lepiej dostosowany do rosnących
potrzeb zarówno fotografii cyfrowej jak i sieci Internet jest opracowanie JPEG2000. Do niewątpliwych zalet
nowego formatu należy możliwość bezstratnego zapisu obrazu. Dzięki całkowicie nowym algorytmom i sposobom
kompresji otrzymujemy możliwość uzyskania silnie skompresowanego obrazu przy bardzo dobrej jego jakości.
Otwiera to całkiem nowe możliwości przed kreatorami stron WWW. Kolejną zaletą JPEG2000 jest możliwość
tworzenia plików z zapamiętanymi kolejnymi klatkami animacji. Nowy format zapisu obrazu, jakim jest JPEG200
ma niewątpliwe zalety. Jeśli zdobędzie popularność, a wszystko na to wskazuje, może zrewolucjonizować zapis
obrazu cyfrowego oraz kreowania stron WWW. Już teraz, pomimo tego, iż nie został oficjalnie zatwierdzony przez
organizację ISO obserwuje się duże zainteresowanie jego możliwościami. Pojawiły się pluginy do
najpopularniejszych przeglądarek internetowych pozwalające na wyświetlanie grafiki w nowym formacie. Oferuje
je miedzy innymi firma LuraTech, Inc. (http://www.luratech.com/). Trwają prace związane z implementacją
standardu JPEG2000 z Javie. W prace te zaangażowane są firmy Canon oraz Ericsson. Obecnie realizowanych
jest kilka projektów mających na celu szybkie przejście narzędzi do zapisu i obróbki grafiki na standard
JPEG2000. Biorąc pod uwagę zainteresowanie, jakim cieszy się format JPEG2000 oraz metoda kompresji obrazu
z wykorzystaniem technologii faletek, najprawdopodobniej już w przyszłym roku pojawi się oprogramowanie
wykorzystujące ten standard a obróbka i zapis grafiki zyska nowe możliwości.
Ramka: Format JPEG2000
Najpopularniejszym formatem kompresji obrazu jest obecnie JPEG. Wykorzystywany jest do zapisu informacji
przez wszystkie obecne na rynku programy graficzne. Po GIF-ie jest to najpopularniejszy format edycji zdjęć w
sieci Internet. W zapisie bezstratnym w dalszym ciągu najpopularniejszym pozostaje format TIFF. JPEG jest
standardem opracowanym w latach osiemdziesiątych. Od tego czasu wymagania użytkowników komputerów
uległy zmianie. Mimo wielkiej zalety, jaką jest możliwość wysokiego stopnia kompresji, ma on też wady. Główną
są straty powstałe podczas tego procesu, tym większe i bardziej pakujemy informacje o obrazie. Wyeliminowanie
tych wad oraz sprostanie nowym wymaganiom skłoniło programistów do opracowania nowego formatu zapisu
obrazu.
W marcu bieżącego roku na spotkaniu w Tokio zespół projektowy pracujący nad nowym formatem zapisu
fotografii cyfrowej oraz grafiki komputerowej o nazwie JPEG2000 (oznaczenie kodowe ISO 15444), poinformował
o zakończeniu prac. Na grudzień 2000 roku przewidywane jest zatwierdzenie nowego formatu jako
międzynarodowego standardu kompresji obrazu. Decyzje o podjęciu prac nad nowym formatem podjęto na
konferencji w Genewie w marcu 1988 roku. Zainicjował je zespół Digital Imaging Group, a także grupa związana z
organizacją standaryzacji ISO. JPEG200 jest całkowicie nowym formatem graficznym. Głównym założeniem prac
było stworzenie formatu kompresji pozwalającego na zwiększenie współczynnika kompresji w połączeniu z
polepszeniem jakości kompresowanego obrazu. Specjalnie dla formatu JPEG2000 opracowano nowy algorytm
kompresji. Specyfikacja nowego standardu JPEG2000 składa się z dwóch części. Pierwsza z nich jest darmowe i
będzie dostępna dla wszystkich zainteresowanych. Druga część specyfikacji przewiduje płatne rozszerzenia. Z
ciekawszych płatnych rozszerzeń należy wymienić możliwość zapisu obrazu zawierający czarno-biały tekst przy
użyciu innego algorytmu niż całego zdjęcia. Tego typu metoda zapisu pozwoli na lepsze rozpoznawanie
skanowanego tekstu przez programy OCR. Płatna część specyfikacji pozwoli również na umieszczanie informacji
o animacji. Możliwe będzie włączenie do zawartości pliku danych o kolejnych klatkach oraz prędkości, z jaką
mają być one wyświetlane. To tylko część nowatorskich rozwiązań, jakie niesie ze sobą format JPEG2000.
Działanie wszystkich algorytmów kompresji polega na usuwaniu z obrazu powtarzających się jego elementów. Im
lepsza metoda kompresji tym mniej powstałych ubytków nawet przy dużym stopniu spakowania obrazu. W
standardzie JPEG algorytm kompresji dzieli obraz na bloki o rozmiarach 8 x 8 pikseli. Następnie każdy z bloków
poddawany jest transformacji kosinusowej (DTC) oraz kilku dodatkowym operacjom. Format JPEG2000
wykorzystuje tzw. algorytm faletkowy (ang. wavelet algorithm). Główną zaletą stosowania tego algorytmu jest
brak artefaktów, które towarzyszą kompresji obrazu w obecnie używanym formacie, jakim jest JPEG. Obecnie po
dość silnym spakowaniu obrazu zaczynają się pojawiać kwadratowe obszary, które nie pasują do otaczających je
innych fragmentów zdjęcia. Obraz staje się zbiorem kwadratów. Spowodowane jest to tym, iż obecnie
wykorzystywany algorytm przeprowadza kompresje na małych fragmentach obrazu, a nie na jego całości.
Całkowicie odmiennie przedstawia się sytuacja w przypadku formatu JPEG2000. Algorytm przeprowadzając
transformacje operuje na całości obrazu, a nie na jego fragmentach. Przy dużym stopniu kompresji też pojawiają
się zniekształcenia, lecz mają nieregularne kształty, przez co obraz ma o wiele lepszy wygląd niż w standardowej
metodzie kompresji. W jaki sposób działa nowy algorytm kompresji obrazu? Pierwszym etapem jest transformacja
obrazu z wykorzystaniem faletek w macierz. Użyte do kompresji faletki należą do tej samej rodziny, która
zbudowana jest na bazie funkcji mather wavelet. Otrzymana po tym etapie obróbki obrazu macierz jest
„czyszczona” celem wyeliminowania części informacji o obrazie. Usuwane są głównie szumy. Po zakończeniu
tego etapu obraz poddawany jest kwantyzacji. Polega ona na zaokrąglaniu współczynników do z góry założonych
poziomów. Dzięki tej operacji następuje zamiana do postaci całkowitoliczbowej. Tego typu sposób
kompresowania obrazu pozwala na wierne oddawanie kolorów. Zwiększenie współczynnika kompresji powoduje
obniżenie tej wierności. Format JPEG2000 podobnie jak formaty GIF, PNG, FlashPix pozwala na określenie
sposobu wyświetlania obrazu. Możemy zadecydować czy obraz będzie wyświetlany w mniej lub bardziej
dokładny sposób. Jest szczególnie przydatne w przypadku cyfrowych zdjęć publikowanych w sieci Internet.
Zarówno osoba publikująca zdjęcie w Internecie jak i użytkownik sieci oglądający je, może samodzielnie określić
jakość wyświetlanego obrazu. JPEG2000 to całkowicie nowe podejście do zagadnienia kompresji obrazu.
Pozwala między innymi na wyświetlanie fragmentu zdjęcia z większą jakością niż pozostała jego część. Wybrane
fragmenty obrazu mogą być skalowane, obracane oraz poddawać procesowi filtrowania. Dzięki temu, że format
JPEG2000 dopuszcza bezstratny zapis obrazu, użytkownik może całkowicie zrezygnować z innych niż on
bezstratnych formatów zapisu ( np. z formatu TIFF). Specyfikacja JPEG2000 przewiduje występowanie w samym
pliku grafiki specjalnych sekcji, które będą zawierały tzw. metadane. Dzięki temu będzie możliwe rozszerzanie
formatu. Sekcje te pozwolą również na zapisywanie dodatkowych informacji o obrazie. Specyfikacja dopuszcza
dopisywanie meta danych na końcu pliku. Kolejną ciekawą możliwością formatu JPEG2000 jest możliwość
dołączania w postaci meta danych informacji o profilach kolorów ICC i barwach CMYK. Specyfikacja JPEG2000
przewiduje, że kolory będą definiowane w standardzie sRGB.
Więcej informacji o nowym standardzie kompresji – JPEG200 można znaleźć w sieci pod adresem:
http://www.jpeg.org/JPEG2000.htm
Podstawowe zasady optymalizacji grafiki
Istnieją zasadnicze różnice pomiędzy tworzeniem obrazu w programie graficznym i w przeglądarce internetowej.
Większość programów graficznych operuje w palecie 16,7 mln kolorów, przeglądarki natomiast maja ograniczone
możliwości i w dalszym ciągu operują paletą 256 kolorów. Ograniczenie to związane jest z zaszłościami z epoki,
gdy komputery mogły obsługiwać się jedynie 256 kolorami. Ograniczenia te są jeszcze większe, gdy chcemy
tworzyć grafikę do stron WWW obsługiwaną przez najpopularniejsze przeglądarki, jakimi są Internet Explorer i
Netscape oraz zgodną z dwoma najpopularniejszymi systemami obecnymi w sieci, a mianowicie Windowsami i
systemami z pod znaku zielonego jabłuszka. W tym wypadku pozostaje nam do dyspozycji paleta 216 kolorów,
ponieważ różnice w palecie obsługiwanej przez Windows, a Macintsha wynoszą aż 40 kolorów. O tego typu
ograniczeniach powinni pamiętać projektanci grafiki do stron WWW. Jeśli podczas tworzenia grafiki zastosujemy
kolory nie występujące w palecie używanej przez daną przeglądarkę, ta posługując się metodą ditheringu
zasymuluje taki kolor. Dithering polega na mieszaniu dostępnych kolorów i wyświetlaniu obok siebie pikseli o
różnych odcieniach, tak, aby stworzyć jak najlepsze przybliżenie żądanego koloru. Obraz poddany temu
procesowi dość dobrze wygląda, ponieważ oko ludzkie ma swoje niedoskonałości. Uśrednia ono intensywność
poszczególnych pikseli. Spowodowane jest to tym, iż nie skupia się ono na każdym z nich osobno, a obejmuje
widzeniem większy obszar. Zawężoną paletę kolorów powinno się stosować do zobrazowania kolorów tła, grafiki
o dużych jednokolorowych powierzchniach oraz tekstu. Pozwoli to nam uniknąć złej interpretacji naszej strony
przez przeglądarkę. Metoda zawężania palety kolorów i ditheringu posługuje się większość programów do
optymalizacji grafiki.
Ponieważ monitor komputera nie może wyświetlić obrazu o większej gęstości obrazu niż 72 dpi, nie ma sensu
stosować do konstrukcji elementów strony grafiki o innych gęstościach. Nie dotyczy to projektu wstępnego, który
będziemy poddawali procesowi optymalizacji. Gęstość pikseli grafiki stanowiącej projekt powinna stanowić 3¸4
krotną wielkość wartości 72 dpi. Dla przykładu by uzyskać grafikę o 400 x 50 pikseli i gęstości obrazu 72 piksele,
powinno przygotowywać się projekt wstępny o optymalnych wymiarach 1600 x 200 pikseli i gęstości 288 dpi. Po
zakończeniu procesu obróbki, projekt poddajemy procesowi reskalowania rozmiarów i zmniejszania gęstości
obrazu do wartości 72 dpi. Stosowanie się do tej zasady pozwoli nam na uzyskiwanie graficznych elementów
strony o odpowiedniej jakości.
Przy konstruowaniu stron WWW ważnym jest by stosować odpowiedni typ grafiki do danego elementu strony.
Pozwoli to nam zoptymalizować ją pod kontem, jak najszybszego wczytywania przez przeglądarkę. Należy
pamiętać o tym by wszędzie tam gdzie wykorzystujemy grafikę o małej liczbie kolorów, dużych powierzchniach
jednobarwnych, zawierającej dużo geometrycznych kształtów najodpowiedniejszym formatem będzie GIF. JPEGa używajmy wtedy, gdy chcemy publikować zdjęcia oraz grafiki o dużej palecie kolorów.
Coraz większa liczba programów zostaje wyposażona w narzędzie do przeprowadzania optymalizacji do stron
WWW. Kombajn do obróbki grafiki, jakim jest PhotoShop został wyposażony w moduł Image Ready oferujący
zaawansowane opcje do przeprowadzania procesu optymalizacji. Nie ustępuje mu możliwościami Paint Shop
Pro. Oprócz dużych programów jest cała masa „drobiazgu” służąca do optymalizacji grafiki. Jednymi z lepszych
programów do optymalizacji GIF-ów są A Smaller GIF, GIF Movie Gear oraz Animagic GIF. W optymalizacji
JPEG-ów najlepiej się spisuje JPG Optymalizer. Poznanie zasad optymalizacji i dobór odpowiedniego
oprogramowania zapewni każdemu twórcy sukces w tworzeniu grafiki dla stron WWW.

Podobne dokumenty