Képformátumok: GIF Írta: TFeri.hu
GIF fájlformátum:
GIF= Graphics Interchange Format. Magát a formátumot a CompuServe cég hozta létre 1987-ben. Alapvetően bittérképes, tömörítetlen formátum. Elterjedését az internet forgalmának hihetetlen megerősödése segítette elő, valamint az, hogy maga a formátum széles körűen támogatott és könnyen használható.
A GIF jelenlegi állapotában csak a képpontonkénti 8 bites megjelenést támogatja, így a kép megjelenése a paletta maximum 256 hivatkozásából áll össze. A paletta természetesen a 24-bites RGB-színtérből áll össze. További lehetőség az átlátszó szín használata is, ami további esélyt ad a GIF-nek.
A formátum egyik legnagyobb előnye, hogy támogatja az egyszerű animációk megjelenítését azon kikötéssel, hogy egy képen egyszerre maximum 256 szín jelenhet meg. (Lásd oldalt a forgó Föld – URL: http://en.wikipedia.org/wiki/GIF .)
A színek számának ilyen mértékű korlátozása erősen beszűkíti a GIF lehetséges alkalmazási területeit, mivel a jó minőségű digitális (fény)képekre ezen formátum nem alkalmas. Ellenben kiválóan alkalmas logók, rajzok vagy egyszerű animációk megjelentetésére!
A GIF képek Lempel-Ziv-Welch (LZW) eljárással veszteségmentesen tömörítettek. Ezt a tömörítési technológiát 1985-ben szabadalmazták. Mivel a Unisys (az LKW tömörítési eljárás birtokosa) és a CompuServe komoly ellentétbe keveredett az idők során, ezért a kezdeti LZW-t
1/7
Képformátumok: GIF Írta: TFeri.hu
1994-ben lecserélték a PNG-re, bár már az eredeti tömörítésnek is minden szabadalma lejárt.
Történelem: Az amerikai internet-szolgáltató óriás, a CompuServe 1987-ben egyrészt azért vezette be a GIF formátumot, hogy az akkoriban használt RLE-t helyettesíteni tudja, másrészt azért is, mert az RLE csak fekete-fehér képek megjelenítésére volt alkalmas. (RLE = run-length encoding) A GIF hamar népszerű lett, mivel egyrészt a hatékony LZW kódolást használta, másrészt 256 színt tudott megjeleníteni egyszerre, harmadrészt a programozók számára a kifejlesztő cég ingyenesen lehetővé tette a formátum alkalmazását azzal a kikötéssel, hogy hivatkoznak rá, mint jogtulajdonosra.
A méretnek hála az akkoriban használatos PCX és MacPaint képeknél sokkal gyorsabban töltődött le még az akkori lassú telefonos modemeken keresztül is.
Az eredeti GIF-verzió neve: GIF87a volt (Dátum: 1987. május). Továbbfejlesztés volt a GIF89a, (Dátum: 1989 július) amely immáron támogatta az egy fájlon belüli több kép tárolását (értsd: kis animációkat!), amelyet átlapolásos, illetve áttűnéses technikával lehetett megjeleníteni. (URL: http://www.w3.org/Graphics/GIF/spec-gif89a.txt ) A két verziót leginkább az első 6 bájtjával lehet megkülönböztetni, amelyek az ASCII szabvány szerint kiolvasva: „GIF87a”, illetve „GIF89a”. A GIF az első kettő olyan képformátum között volt, amit a weboldalakon meg tudtak jeleníteni. A másik lehetőség a csak fekete-fehér lehetőségekkel rendelkező XBM (= X BitMap; URL: http://en.wikipedia.org/wiki/X_Bitmap) volt. Érdekes, hogy a GIF megjelenítését eleinte csak a Mosaic böngésző támogatta!
A GIF89a legfontosabb jellemzője, hogy több képet is képes tárolni egyetlen fájlban, így egyszerű animációkat is meg lehet jeleníteni. A GIF népszerűségének egyik oka az animáció, míg a másik az, hogy a felhasználó egyszerűen megszakíthatja a letöltést. Harmadrészt az is fontos, hogy az egyik szín átlátszó volt.
1994-ben az Unisys szoftvercég rájött, hogy rendelkezik egy 1983-ban bejegyzett szabvánnyal, ami a GIF formátum által használt LZW eljárásra vonatkozik. Ezért elkezdett licencdíjakat követelni a GIF-et alkalmazó/létrehozó kereskedelmi programok gyártóitól. Ekkor már azonban olyan elterjedt volt a GIF a világhálón, hogy a Unisys követelésének a gyártók nemigen tudtak ellenállni. Jóllehet a freeware (ingyenes) és a nem kereskedelmi célú termékekkel szemben a Unisys nem támasztott ilyen követelést, de a botrány már kipattant. A kialakult helyzet mégis
2/7
Képformátumok: GIF Írta: TFeri.hu
PNG fájlformátum kifejlesztéséhez vezetett, ami GIF-et volt hivatott felváltani, mint kvázi-szabványt.
1999-ben az Unisys már az ingyenes szoftverek után is licencdíjat kezdett követelni és ezzel egyidőben azon felhasználók ellen is jogi eljárást indítottak, akik olyan GIF képeket használtak a Web oldalaikon, amelyek nem licencelt szoftverrel készültek.
A szabvány védettsége 2003-2004-ben járt le világszerte. De a baj, amit a szabadalmi jog körüli zűrzavar okozott, már megtörtént, így a GIF népszerűsége lecsökkent!
Használat: A GIF kifejezetten alkalmas kis méretű logók, animációk megjelenítésére. Ráadásul mivel támogatja az olyan veszteségmentes tömörítést is, amelyek egységes színű területeket és határozott széleket jelenít meg, ezért népszerűsége ilyen esetekben jobb, mint az ezeket nem szerető JPEG képeknél. A JPEG-nél ugyanis előnyben vannak a sima színátmenetek és a lágyabb élek. A GIF szintén támogatja a kis animált (például játékokhoz használt) képecskéket. Alkalmas a kis animációk és az rövid filmrészletek megjelenítésére. Mivel a GIF alapértelmezésben csak maximum 256 színt képes megjeleníteni, ezért nem igazán alkalmas digitális fényképek megjelenítésére. A digitális fotók megfelelő tárolására alkalmasabbak a több színt megfelelően tároló formátumok: TIFF, RAW, illetve JPEG. A PNG formátum szintén népszerű alternatívája a GIF-nek, mivel a PNG-nél nincs 256 színes határ, de nem létezik animációs támogatás. Újabb, nem igazán népszerű lehetőségek az MNG
3/7
Képformátumok: GIF Írta: TFeri.hu
és az APNG formátumok, amelyek egyaránt a PNG-ből származnak, de támogatják az animációt. Animált GIF formátum esetén a megjelenítendő képek száma után a fájlban egymás után kódolva vannak a sorban megjelenítendő képek, illetve a megfelelő paletta. Természetesen kódolni kell a megjelenítés hosszát (századmásodpercben), valamint az esetleges átlátszó szín kódját.
Mintafájl:
Bájt# (hexa) Hexa érték Szöveg értékv. Jelentés $0047 49 GIF89a 46Fejléc 38 39 Logikai 61 képleírás $0603 00 3 szélesség képpontban $0805 00 5 magasság képpontban $0AF7 GCT-érték: 256 színű kép 3x8 bittel ábrázolva $0B$00 0 Háttérszín: #0. $0C $00
Alapértelmezett képarány R G B Elsődleges színtáblázat $0D00 00 0 000#0 0szín (fekete) $1080 00 12800#1 0 szín 0 $8500 00 0 000#400 szín (fekete)
4/7
Képformátumok: GIF Írta: TFeri.hu
...
...
...
… $30A FF FF FF 255 255 #255255 szín (fehér) $30D 21 F9 04 Grafikus ellenőrző kiterjesztés $310 $10 átlátszóság engedélyezett $311 00 00 animáció késleltetése – nem használt $313 $1016 A #16-os szín az átlátszó $314 $00 vége $315 $2C Képleírás
5/7
Képformátumok: GIF Írta: TFeri.hu
$316 00 00 ($00,$00) 00Leírás 00 bal felső saroktól... $31A 03 00 ($03,$05) 05...jobb 00 alsó sarokig. $31E $00 vége $31F $08 8 LZW minimális kódméret $320 $0B 11 11 bájt LZW-kódolt képleírás $321 00 51 FC 1B 28 70 A0 C1 83 01 01 $32C $00
vége $32D $3B GIF fájl vége Minta eredetije: http://en.wikipedia.org/wiki/GIF
LZW algoritmus:
6/7
Képformátumok: GIF Írta: TFeri.hu
Teljes nevén: Lempel-Ziv-Welch veszteségmentes tömörítési algoritmusa. Megalkotói: Abraham Lempel, Jacob Ziv és Terry Welch. Az eredetileg még LZ78-as névre hallgató verziót Lempel és Ziv publikálta 1978-ban, majd ezt fejlesztette tovább Welch 1984-ben. Az eljárás célja, hogy gyors, de nem feltétlenül a legkisebb méretű állományt hozzák létre; így csak korlátozott a feldolgozott adatok mennyisége.
Az algoritmus kódolás közben egy szövegtáblázatot épít, melyek azonos hosszú, általában egy 12-bites egységekből állnak. Kódoláskor az algoritmus ismétléseket keres a tömörítendő anyagban, hogy azokra tudjon visszautalni a táblázat segítségével.
(c) TFeri.hu, 2009
Felújítva: 2016.
7/7