Grafické formáty BMP a GIF
Formát BMP
BMP grafický formát pôvodne pochádza z dielne Microsoft Windows a v tomto operačnom systéme je plne podporovaný
Aj keď je formát BMP dobre definovaný, neexistuje oficiálna špecifikácia publikovaná firmou Microsoft. Informácie o štruktúre a kódových metódach sú obsiahnuté v nespočetnom množstve príručiek, manuálov a tiež v Microsoft Windows Software Development Kit (SDK).
Súbor sa dá logicky rozdeliť do štyroch častí: bitmapová hlavička, informačná hlavička, paleta a bitmapa.
Prevažná časť BMP súborov je ukladaná v nekomprimovanej podobe. Komprimujú sa iba obrazové dáta uložené v štyroch alebo ôsmych bitoch na bod.
Formát GIF
GIF je skratka od Graphics Interchange Format a je výtvorom firmy Compuserve Inc. Compuserve dovoľuje neobmedzené použitie tohto formátu s podmienkou, že ich uvediete ako autora formátu. Na druhej strane, kompresia použitá v tomto formáte (LZW), už bola predmetom niekoľkých súdnych sporov. Čítanie a uchovávanie grafických súborov komprimovaných LZW algoritmom je povolené, ale na druhej strane tvorba softvéru, ktorý vie zapisovať pomocou LZW kompresie, je nelegálna.
Organizácia dát: Formát GIF sa veľmi líši od bežných bitmapových formátov. Skladá sa zo série dátových blokov a subblokov. Tento formát je schopný uchovávať dáta s bitovou hĺbkou od 1 do 8 bitov. Tiež je schopný ukladať viacej obrázkov naraz.
Existujú dve verzie tohto formátu. Pôvodná verzia má označenie 87a, neskoršia verzia 89a. V novšej verzii bola pridaná schopnosť hlavne ukladať text a grafiku v jenom súbore.
Súbory GIF sa nedajú veľmi komprimovať pomocou archivačných programov ako ZIP, RAR. Dôvodom je v metóde uloženia obrazových dát, ktoré sú komprimované pomocou kompresie LZW.
GIF ukladá svoje dáta ako sériu subblokov. Každý dátový subblok začína počítadlom, ktorého hodnota je v rozmedzí od 1-255 a indikuje počet dátových bajtov v subbloku. Za počítadlom nasledujú dátové toky, ktoré sú ukončené hodnotou 0. Každý subblok musí byť čítaný osobitne a posielaný dekóderu. Tiež sa tu nesleduje, kde končia, prípadne začínajú skenovacie riadky, takže sa môže stať, že prechod na nový riadok nastane niekde uprostred bloku.
Samotný formát dekódovaných dát je pomerne jednoduchý. Každý bod v dekódovanom skenovacom riadku je index do globálnej alebo lokálnej palety.
Skenovacie riadky sú obvykle ukladané za sebou, začínajúc prvým riadkom a končiac posledným. Formát GIF podporuje však aj prekladanú (interlaced) metódu. Použitá prekladaná metóda je štvorprechodová. Prvý prechod začína na riadku 0 a kóduje každý ôsmi riadok. Druhý začína na štvrtom riadku a tiež kóduje každý ôsmi riadok. Posledné dva prechody kódujú každý druhý riadok a začínajú na druhom a prvom riadku. Ak teda máme 16 skenovacích riadkov, potom ich budeme v prekladanom režime dekódovať v poradí: 0,8,4,12,2,6,10,14,1,3,5,7,9,11,13,15.