| Képformátumok: GIF |
|
|
|
GIF fájlformátum:
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 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-lenght 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 JPEG (vagy JPG) 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 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:
Mintafájl:
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bájt# (hexa) |
Hexa érték |
Szöveg v. érték |
Jelentés |
$00 |
47 49 46 38 39 61 |
GIF89a |
Fejléc Logikai képleírás |
$06 |
03 00 |
3 |
szélesség képpontban |
$08 |
05 00 |
5 |
magasság képpontban |
$0A |
F7 |
|
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 |
|||
$0D |
00 00 00 |
0 0 0 |
#0 szín (fekete) |
$10 |
80 00 00 |
128 0 0 |
#1 szín |
$85 |
00 00 00 |
0 0 0 |
#40 szín (fekete) |
|
... |
... |
... |
… |
$30A |
FF FF FF |
255 255 255 |
#255 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 |
$10 |
16 |
A #16-os szín az átlátszó |
$314 |
$00 |
|
vége |
$315 |
$2C |
|
Képleírás |
$316 |
00 00 00 00 |
($00,$00) |
Leírás bal felső saroktól... |
$31A |
03 00 05 00 |
($03,$05) |
...jobb 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:
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






