| Képformátumok: GIF |
|
|
|
| Írta: TFeri.hu | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 2009. május 24. vasárnap, 08:00 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
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
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