(Mitte)pogressiivne laotus

 

Siis saadeti minema ka vangivaht, tema asemele aga pandi timuka teine poeg, kes mooratüdruku keldrisse heitis ja temale käte ja jalgade külge ebainimlikult üle neljakümne naela raskused vangirauad pani, lisaks veel puust vöö. Ja vangitorni hakkasid valvama linna ammukütid ja peapiiskopi sõjasulased. Plikat piinutati ja vaevati, tema kondid murti katki ja valu pärast andis tema Jehan de la Haye soovimist mööda tunnistusi ja mõisteti üsna pea ärapõletamisele Sainct-Estienne'i istandikus, enne aga pandi ta väävlisärgis kiriku ukse ette häbiposti, tema vara sai Toomkapiitlile, et caetera.

H.de Balzac, Succuba

Siinkohal võiks anda väikese ülevaate sellest, kuidas GIF- animatsioone oleks võimalik kasutada, saavutamaks analoogilist efekti nagu annab progressiivse laotuse kasutamine GIF- ja JPEG- formaadi korral. Progressiivne laotus on mõeldud eelkõige pildi pikselite sidekanalit pidi liikumise kontrollimiseks, mille eesmärgiks on anda lühema ajaga madalakvaliteediline pilt, mille kvaliteet uute pikselite saabumisega pidevalt paraneb. JPEG- formaadi mõni modifikatsioon võimaldab laadida esmalt mustvalge pildi, millele värvid alles hiljem  lisanduvad. Järgnevas vaatamegi, kuidas GIF- animatsioone kasutades sarnast tulemust saavutada.

 

Isegi oma puudustele vaatamata on progressiivse laotusega GIF-d on tuntud vahendid leheküljest kiiremini ülevaate saamiseks. Nende struktuur seisneb pikselite laadimises mitmes etapis, võimaldades nii pildist ülevaadet saada ilma, et peaks ära ootama kogu pildi laadimist. Selline võimalus on tihti küllalt kasulik, kuid kätkeb endas ka ohte- nimelt on paljude progressiivsete piltidega lehe laadimine mõnevõrra aeglasem, kuna nõutav on piltide pidev ümberarvutamine. Teine oluline puudus seisneb selles, et GIF- formaat on laialt kasutatav joonkujutiste esitamiseks; progressiivne laotus aga määrib kõik jooned jooksva pikseli laiuseks (16, 8, 4  või 2- originaalpikselit), mis joonist tugevalt moonutab (progressiivse laotusega JPEG puhul on foto teravuse vähenemine loomulik, ega häiri vaatajat sedavõrd).

Nii ongi järgneva eesmärk näidata, kuidas on võimalik GIF- animatsiooni struktuuri kasutades kontrollida milline info kõigepealt vaatajani jõuab. Alustame värvidest, kusjuures eesmärgiks on analoogiline efekt nagu JPEG modifikatsioonil- mustvalge pilt enne värve. Kuna GIF on eelkõige joonkujutiste jaoks mõeldud formaat, kasutame esimeseks kaadriks ülatoodud 4- värvise paletiga (3 tooni ja läbipaistev taust) joonkujutist. 2-värvine palett ei anna kahjuks monitoride väikese lahutusvõime (96 või 92 punkti tollile- printeritel suurusjärk või paar suurem) tõttu piisavalt kvaliteetset kujutist. Üks lahendus on laadida must ja taust esimeses kaadris, kaks ülejäänud värvi järgmises, kuid selle variandi korral ületab kahekaadrilise animatsiooni failisuurus märgatavalt neljavärvipildi oma, kuigi esimene kaader on pisike, on teise kaadri suurus pakkimisalgoritmi tõttu kogupildi omast ainult veidi väiksem. Suurem värvide arv pole joonkujutise puhul üldiselt vajalik (täpsemalt- faili maht suureneb märksa kiiremini kui paraneb pildi kvaliteet). Järgneva(d) kaadri(d) moodustab värvusinfo ehk mittemustad ja mitteläbipaistvad pikselid. Järgnevalt on toodud 4 animatsiooni (normaalse tulemuse saamiseks tuleks, erinevalt toodud illustratsioonidest, muuta viimase kaadri näitamisaeg oluliselt pikemaks esimese omast ja/või määrata ainult üks animatsioonitsükkel lõpmatu või suurearvulise korduse asemel).

Esimese animatsiooni puhul on kasutatud kaht kaadrit- kogu värvusinfo on teises kaadris. Huvitav on siinjuures, et neljas animatsioon, mille värvusinfo on jaotatud tervelt 16 kaadri vahel on tänu pakkimismeetodi omapärale ainult veidi suurem (vastavalt 27010 baiti ja 28676 baiti). Teine ja kolmas animatsioon illustreerivad seda, et alati ei ole vaja kasutada traditsioonilisi laotusmeetodeid. Paari lisakaadriga on võimalik pildi värvimist elavdada.

Suurim progressiivse laotusega GIF-i eelis on pikselite laadimine mitmes etapis, mis võimaldab pildist kiiret ülevaate saamist. Kõrvalolev pilt illustreerib analoogilist meetodit animatsiooni kasutamisega.

Selle asemel, et lasta laadida valimatult kõik pikselid, võime failisuurust oluliselt muutmata kasutada erinevate olulisemate kohtade esmalt laadimist. Kõik puuduvad pikselid. võime lisada viimase kaadriga. Nii on ka tehtud, jaotades pilt mitmeks osaks ning need seejärel ühekaupa lisades. Sellise meetodiga võib joonpildi olulisemad osad kvaliteeti halvendamata esmalt laadida, lisades lõpuks pakkimismeetodist tingituna küllalt suure mahuga tausta.

 

Sisukord Eelmine Pealeht Järgmine

reede, 05. mai 2000. A.

Kirjake autorile