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.