GIF

Graphics Interchange Format (rohkem tuntud akronüümina GIF) on rasterpildi vorming, mis võeti kasutusele CompuServe'i poolt aastal 1987 ning on sealtpeale väga laialdaselt veebis kasutusel just tänu oma tehnilisele toele ja lihtsusele.
GIF-vorming toetab igas pildis kuni 8 bitti piksli kohta, mis võimaldab ühel pildil kuni 256 erinevat värvi. Samuti toetab GIF-vorming animatsioone, sealjuures iga kaadri kohta värviskaalat (kuni 256 värvi). Värvitoonide skaala piirangud muudavad GIF-vormingu vähem sobivaks piltide taastamiseks või ümbervormindamiseks, pigem sobib GIF-vorming hästi lihtsamate pilte jaoks (logod, ikoonid, liikuvad logod, algelisemate mängude graafika).
GIF-vormingus pildid on pakitud Lempel-Ziv-Welchi (lühendatult LZW) meetodil, mis on universaalne, kadudeta pakkimist võimaldav algoritm. Lempel-Ziv-Welchi meetod lubab vähendada faili mahtu ilma pildikvaliteedi olulise halvenemiseta. Lempel-Ziv-Welchi pakkimise meetod patenteeriti 1985. aastal. Vaidlus litsentsilepingu üle toonaste patenti omavate firmade vahel (Unisys ja CompuServe) tõi kaasa uue GIF-vorminguga sarnase vormingu – PNG loomise 1996. aastal. Vaidlus kestis kuni aastani 2003, kui vaidlusalused patendid Ameerika Ühendriikides kehtivuse kaotasid.

Ajalugu

GIF-vormingu töötas välja CopuServe ja avaldas selle 1987. aastal. GIF-vorming oli alternatiiv RLE-vormingule (ingl: Run-length encoding format), revolutsiooniliseks tegi GIF-vormingu aga värvide tugi (256 värvi), sest RLE-vorming võimaldas luua vaid must-valgeid kujutisi. GIF-vorming leidis kiiresti ülemaailmset kasutust ning võitis populaarsust just tänu Lempel-Ziv-Welchi andmete pakkimise meetodile, mis võrreldes varasema RLE-vorminguga suutis küllaltki suuri pilte "pakkida", tehes need märgatavalt kiiremini allalaaditavaks ka tollal kasutusel olnud aeglaste modemitega. Nii sai GIF-vormingust üks kahest populaarseimast vormingust (koos algelisema XBM-vorminguga, mis toetas vaid must-valgeid pilte), mida veebilehtedel kasutati.
GIF-vormingul on kaks versiooni: algne 1987. aastal loodud "87a" ja 1989. aastal paljude täiendustega välja antud versioon "89a". Viimase versiooniga lisandus GIF-vormingule läbipaistvate piirkondade võimalus GIF-vormingus ja interlace-omadus, mis lubab GIF-vormingus veebilehele üleslaaditud piltide kiiret eelvaadet (laadimise alguses on pilt hägune ning teravdub vastavalt laadimise edenemisele, see võimaldab ka aeglasema ühenduse puhul otsida soovitud pilte lihtsamalt, ilma neid täielikult laadimata, vaid otsustades eelvaate järgi).
Unisys kaotas 1999. aastal GIF-vormingu litsentsitasud mittekommertslikele tegevustele ja individuaalkasutajatele. Aastal 2003 kaotas kehtivuse Lempel-Ziv-Welchi patent Ameerikas ja aastal 2004 Jaapanis. Ka IBM on litsentseerinud Lempel-Ziv-Welchi algoritmi, kuid pole kasutamise eest tasu nõudnud. Facebooki jõudis GIF-vorming 2015. aastal.

Kvaliteedi parandamine

GIF-vormingus pildi bittide arv piksli kohta varieerub 1-st kuni 8-ni. Mida rohkem bitte piksli kohta, seda teravam pilt. Tõetruu värvide kujutamine algab aga alates 24-st bitist piksli kohta, seega on standardne GIF-vormingus pilt limiteeritud värvidega ning värvipaletti mitte mahtuvad toonid (maksimaalselt 256 tooni) kaotatakse ära. Kvaliteedi parandamiseks võimaldavad pilditöötlusprogrammid kasutada pilditöötlusel pseudotoonimist ehk virvtoonimist (inglise keeles: dithering), mis lubab kasutajal määrata, millist värvitooni olemasolevast spektrist hoitakse suurima visuaalse kvaliteediga. Kvaliteedi parandamisega kaasneb ka failimahu suurenemine, sest GIF-vormindusel kehtib reegel: mida rohkem värve on paletis, seda suurem on pildifail. Teine võimalus visuaalset kvaliteeti tõsta on servade eraldamist teostava lineaarse filtri lisamine, kaotades nii GIF-vormingus pildi "teralise" välimuse ja lisades teravust.

Loomutruu värv

GIF-vormindus piirab bittide arvu pikslis vaid 8 bitini piksli kohta, seega on GIF-vormingus pildid piiratud paletiga, milles saab olla maksimaalset 256 värvi (läbipaistvat tooni kasutades 255 värvi pluss läbipaistev kiht). Ainuüksi 256 värviga ei ole võimalik loomutruusid värve edastada, seega liidetakse mitu GIF-vormingus pilti ühte plokki, mitmekordistades nii võimalike värvide arvu ja võimaldades tõetruu värvi edastamise ka GIF-vormingus failidega.
Teine võimalus tõetruusid värve GIF-vormingus kuvada on kasutada "89a" versiooniga lisandunud läbipaistvat kihti. Kasutades läbipaistvaid kihte saab iga pildi allesjäänud 255 värvi kuhjata üksteise otsa, sellises moel koostatud piltide plokk suudab tänu läbipaistvatele kihtidele edastada rohkem kui 265 värvi, luues efekti tõetruust värvist.
Peamine probleem, mis tõetruu värvi saavutamisega kaasneb, on selles, et iga pildiploki osa nõuab oma värvipaletti, kaotades nii GIF-vorminduse põhiväärtuse – suurte failide oluliselt väiksemaks pakkimise. Teine probleem on pildi kihilisusega kaasnev faili keerukus, mis käib osadele GIF-i viimistlusega tegelevatele programmidele üle jõu. Paljud piltide viimistlusprogrammid tõlgendavad ploki kihte või osasid iseseisvate animeeritud kaadritena ning näitavad neid üksteise järel, mitte üheaegselt, kaotades nii tõetruu värvi efekti. Ka paljudel veebilehtedel on probleeme keerukama, kihilise GIF-vormindusega ning veebibrauser näitab erinevaid kihte väikese viitega ükshaaval.