|


Poradnik webdesignera

Strona główna
Uwagi ogólne
Błędy
Przykazania
Artykuły
Linki
Słowo od autorki
Email |
|
|
Format graficzny GIF -
cechy, struktura i kompresja pliku
FORMAT GIF (Graphic Interchange Format)
Format ten został stworzony przez firmę CompuServe w 1987 roku w USA.
Pierwsza jego wersja miała numer 87a, pochodzący od dwóch ostatnich
cyfr roku i litery oznaczającej kolejną wersję. Następna wersja, ukazała
się dwa lata później i otrzymała numer 89a, a jej nowe cechy to przede
wszystkim: możliwość animacji oraz zapisu przezroczystości.
Paleta kolorów (Color Palette)
Format GIF jest ograniczony do 8 bitów, czyli oferuje paletę 256
kolorów, co miało na celu maksymalne zmniejszenie jego objętości ze
względu na wolną transmisję sieci. Plik GIF posiada globalną paletę
kolorów, która może zawierać 2,4,8,16,32,64,128 lub 256 kolorów. Plik
graficzny truecolor po konwersji do standardu GIF zmniejsza głębię barw
z 24 bitów (16,7 milionów kolorów) do 8 bitów (256 kolorów). Redukcja
barw powoduje utratę części informacji. Jeżeli jednak nie wpływa to
na jakość grafiki, warto jest ten format zastosować ponieważ im mniej
kolorów jest zadeklarowanych w palecie, tym szybciej obraz jest ładowany.
Każdy kolor używany w obrazach musi pochodzić z palety kolorów, przy
czym istnieje możliwość zadeklarowania lokalnej palety dla konkretnego
obrazu.
Przeplot (Interlacing)
Format GIF pozwala wyświetlać na stronie grafikę warstwa po warstwie. W
przypadku GIF’a mamy możliwość wyświetlić grafikę w czterech
niezależnych od siebie fazach (interlace passes). Wyświetlane są
kolejno linie: w pierwszej fazie - co ósma zaczynając od zerowej linii,
w drugiej fazie - co ósma zaczynając od czwartej linii, w trzeciej fazie
- co druga zaczynając od drugiej linii, a w czwartej - pozostałe.
Sprawia to na początku wrażenie rozmazanego obrazka, który w trakcie ładowania
nabiera ostrości. Dzięki temu prawie od początku ściągania grafiki
wiemy co ona przedstawia. Możemy oczywiście zrezygnować z tej możliwości
i wyświetlać grafikę linijka po linijce.
CECHY FORMATU GIF W WERSJI 89a
- określenie przezroczystego koloru
- animacja – możemy nawet określić po jakim czasie ma być wyświetlany
następny obraz z dokładnością do 1/100 sekundy
- oczekiwanie na reakcję użytkownika
- załączenie komentarzy, które będą ignorowane przez dekoder grafiki
- wyświetlanie tekstu jako grafiki
- określenie sposobu usunięcia aktualnego obrazu
- zamieszczenie rozszerzeń aplikacyjnych
STRUKTURA PLIKU GIF89a
Plik w formacie GIF składa się z bloków oraz rozszerzeń.
Bloki można podzielić na trzy podstawowe
grupy:
- kontrolne (nagłówek, opis ekranu logicznego, kontrolne
rozszerzenie grafiki i blok końcowy)
- informacyjne (opis obrazu, rozszerzenie tekstowe)
- specjalnego przeznaczenia (komentarze, rozszerzenia aplikacyjne)
Dostępne bloki:
- Nagłówek(Header), w którym zawarte są informacje
dla programu dekodującego dotyczące rodzaju pliku (czyli GIF) oraz numer
wersji (87a, 89a) – razem 6 bajtów (GIF87a lub GIF89a)
- Opis ekranu logicznego (Logical Screen Description
Block): szerokość oraz wysokość ekranu, informacje o globalnej tablicy
kolorów, indeks koloru tła, proporcje punktu.
- Globalna tablica kolorów (Global Color Table) –
blok ten występuje w większości plików GIF lecz nie jest obowiązkowy.
Paleta kolorów w nim zdefiniowana jest stosowana do wszystkich obrazów
zawartych w zbiorze nie posiadających tablic lokalnych oraz do rozszerzeń
tekstowych.
- Rozszerzenia aplikacyjne (Application Extension),
czyli instrukcje dla konkretnych programów.
- Blok rozszerzenia grafiki (Graphic Control Block)
- opcjonalny blok z dodatkowymi danymi dla dekodera (m.in. kolor przezroczysty,
informacja czy dany obraz posiada własną paletę kolorów, oczekiwanie
na reakcję użytkownika, czas opóźnienia, sposób usunięcia aktualnego
obrazu)
- Opis obrazu (Image Descriptor) zawiera: tablicę danych
obrazu (pogrupowane w sekwencyjnie bloki poszczególne punkty obrazu),
opcjonalną lokalną tablicę kolorów (Local Color Table), rozmiary obrazu,
pozycję obrazu na logicznym ekranie, informacje czy obraz ma być wyświetlany
z przeplotem czy linia po linii. Blok ten zawiera etykietę ($2C), która
umożliwia zamieszczenie w pliku GIF więcej niż jednego obrazu.
- Rozszerzenie tekstowe (Plain Text Extension) –
zawiera dane tekstowe oraz parametry konieczne do ich wyświetlenia jako
grafiki.
- Komentarze (Comment Block) - w pliku GIF można zamieścić
dowolne komentarze (na przykład dane autora), które nie będą wyświetlane
na ekranie. Najbezpieczniej jest zamieścić ten blok na końcu pliku,
gdyż przyspieszy to ładowanie danych.
- Blok końcowy (trailer) – znacznik końca pliku
(etykieta: 0x3B).
KOMPRESJA FORMATU GIF
Format GIF łączy redukcję kolorów z kompresją. Format GIF korzysta
z algorytmu kompresji LZW, którego nazwa pochodzi od inicjałów jego
autorów: Lempel, Ziv i Welch. Od roku 1984, kiedy powstała, do
dzisiejszego dnia uważana jest za jedną z najbardziej efektywnych metod
kompresji. Działanie tego algorytmu polega na wyszukiwaniu w obrazie
sekwencji pikseli, które stanowią powtarzający się schemat będący
informacją nadmiarową (na przykład ciąg punktów o tym samym kolorze).
Sekwencje te są zastępowane odpowiednimi kodami liczbowymi umieszczonymi
w tablicy. Im wiecej takich powtarzających się sekwencji, tym lepszy
uzyskujemy efekt kompresji, dzięki czemu rozmiar pliku jest mniejszy. LZW
należy do bezstratnych metod kompresji (lossless compression mechanisms),
które nie powodują utraty danych. Po dekompresji pliku spakowanego tą
metodą uzyskamy obraz identyczny z oryginałem. Stopień kompresji LZW w
połączeniu z redukcją kolorów wynosi od 20 do 80 procent, w zależności
od rodzaju i wielkości grafiki.
Specyfikacja formatu GIF obejmująca szczególówy opis poszczególnych
bloków (w języku angielskim):
GRAPHICS
INTERCHANGE FORMAT (GIF) - Version 89a
(http://www.lintilla.demon.co.uk/gif89a.htm)
Agnieszka Richter
Artykuł został napisany dla Optimus
Pascal S.A. Publikowanie całości lub fragmentów niniejszego artykułu
jest zabronione bez zgody właściciela.
|