Daugeliui pažįstama situacija: norime išsiųsti failą el. paštu ar įkelti į USB atmintinę, tačiau prieš akis iššoka erzinantis pranešimas, kad jis per didelis. Tuomet atsidūstame ir bandome išsiaiškinti, kaip siunčiamą bylą suspausti ar, buitiškai kalbant, suzipinti. Atlikus šį veiksmą prisegtukas stebuklingai sumažėja, tačiau kaip ši kompiuterinė magija veikia? Šias paslaptis atskleidžia paslaugų centro „Telia Global Services Lithuania“ IT paslaugų tiekimo specialistas Tomas Niparavičius.
Asociatyvi „Pixabay“ nuotr.
„Failų glaudinimo technologijas galima padalinti į dvi dalis. Pirmoji – glaudinimas be nuostolių (angl. lossless), kuomet failai suspaudžiami išsaugant visus pradinius duomenis, pavyzdžiui, naudojant ZIP ar RAR archyvus. Antras būdas – nuostolingas (angl. lossy) glaudinimas, kuomet specialiais algoritmais pašalinami nebūtini, pertekliniai duomenys. Pastarojo pavyzdžiai galėtų būtų JPEG formato paveikslėliai ar MP3 muzikos įrašai“, – sako T. Niparavičius.
Abu failų suspaudimo būdai ir jų formatai daugeliui žmonių yra puikiai pažįstami ir kone kasdien naudojami. Tačiau ar kada susimąstėte, kaip failai sumažėja ir kur pasislepia tie megabaitai, o kartais – ir gigabaitai duomenų?
Paprasta, bet efektyvi gudrybė
Failą suspaudžiant į ZIP, RAR ar kitokį archyvą jo apimtis sumažėja, tačiau jį išskleidus gaunamas originalui identiškas failas. Naudojant glaudinimą be nuostolių failų turinys yra trumpinamas surandant pasikartojančius elementus ir juos užkoduojant, o pasikartojančiose dalyse paliekami tik programai suprantami kodai. Kuo daugiau kartotinių turi failas, tuo labiau jį galima suspausti.
Tekstiniame dokumente kodo simboliu gali tapti raidžių junginys, žodis ar žodžių junginys. Pavyzdžiui, greitakalbę „Pakopa po pakopos, pakopa po pakopos, pakopa po pakopos mes kopiame aukštyn“ sudaro 12 žodžių ir 75 simboliai su tarpais, taigi ją išsiųsti reikėtų 75 baitų. Tačiau trys žodžiai joje kartojasi kelis kartus, taigi jiems galime suteikti skaitinius kodus ir sukurti biblioteką:
- pakopa
- po
- pakopos
Dabar greitakalbę galėtume užrašyti taip: „1 2 3, 1 2 3, 1 2 3 mes kopiame aukštyn“ ir ji užimtų jau 39 simbolius su tarpais. Tiesa, biblioteka užima dar 18 simbolių, taigi greitakalbę „suspaudėme“ iki 57 simbolių. O jei skaitinį kodą 1 priskirtume visai frazei „pakopa po pakopos“? Tuomet užtektų užrašyti „1, 1, 1 mes kopiame aukštyn“ ir visa greitakalbė sudarytų vos 27 simbolius plius 18 simbolių biblioteka – viso 45 simboliai, beveik perpus mažiau nei originalas.
Kuo ilgesnis tekstas ir kuo jame daugiau pasikartojančių žodžių ar frazių, tuo labiau failą galime suspausti neprarasdami jokių duomenų. „Priklausomai nuo failo formato, jį gali sudaryti žodžiai ar tiesiog baitų sekos, kurias archyvavimo programa išanalizuoja ir įvertina, kaip geriausiai visa tai suspausti neprarandant duomenų. Tiesa, tam tikrais atvejais archyvavimas mažai gelbsti, pavyzdžiui, kai bandoma suspausti ir taip „taupaus“ formato failą“, – pastebi IT paslaugų tiekimo specialistas Tomas Niparavičius.
Kai nėra ko suspausti, belieka „apkarpyti“
Nuostolingas failų suspaudimo būdas yra kita alternatyva, kuomet archyvavimas nepadeda arba duoda pernelyg mažai naudos. Tai galioja tokiems failams, kaip nuotraukos, garso ar vaizdo įrašai. Šiuos failus sudaro tiek daug skirtingų elementų, kad juose sunku surasti pasikartojančias reikšmes.
Taikant nuostolingą glaudinimą iš failo pašalinami nebūtini, pertekliniai duomenys. Pavyzdžiui, garso įraše tai gali būti itin aukšto ar itin žemo dažnio garsai, kuriuos neišlavinta žmogaus ausis ir taip prastai girdi arba negirdi apskritai, nuotraukoje gali būti atsisakoma itin panašių atspalvių.
Tokiu būdu originalus garso įrašas ar nuotrauka, užėmusi 30–50 megabaitų (MB), suglaudintame MP3 ar JPEG formate teužima 3–6 MB vietos. Tačiau atkurti pradinio failo jau nebebus įmanoma – pavyzdžiui, jei profesionaliu fotoaparatu darytoje nuotraukoje buvo 20 skirtingų mėlynos atspalvių, JPEG faile gali likti tik keli jų ir atkurti visus turint tik suglaudintą failą bus neįmanoma.
„Žinoma, muzikos profesionalas nesunkiai atskirs suglaudintą įrašą, o fotografo akis nesunkiai įžvelgs skirtumą tarp RAW ir JPEG formatų. Visgi daugelis žmonių yra muzikos klausytojai ir fotografijos mėgėjai, taigi mums pilnai užtenka suglaudintų failų kokybės ir padaryti pakeitimai dažnai yra nepastebimi, o patogumas ir šių failų lengvumas smarkiai atsveria netektis“, – komentuoja „Telia Global Services Lithuania“ ekspertas.
Kada failo suspausti nederėtų?
Kartais glaudinimas nėra naudingas. Pavyzdžiui, į ZIP ar RAR archyvą dažnai neverta glaudinti nuotraukų, vaizdo ar garso įrašų, kadangi šie failai dažnai sumažėja vos keliais procentais, tačiau jų suspaudimas ir atkūrimas atima papildomai laiko – nuo keliolikos sekundžių iki kelių ar net keliolikos minučių, priklausomai nuo failų kiekio ir dydžio.
Taip pat, ar naudinga failą suspausti, priklauso nuo jo panaudojimo. Socialiniams tinklams ir asmeniniam naudojimui pilnai užtenka JPEG formato nuotraukų, tačiau jei ją ketinate spausdinti dideliu formatu ar naudoti profesionaliai (reklaminiame stende, ant žurnalo viršelio ir pan.), tuomet kiekviena detalė yra svarbi ir geriau naudoti RAW formato nesuspaustas nuotraukas.
Panaši situacija yra ir su muzikos įrašais. Daugelis mūsų kasdien klausomės suspausto formato įrašų, iš kurių yra pašalintos eilinio žmogaus ausiai negirdimos ir didelio skirtumo nedarančios detalės. Tačiau tikri melomanai, klausydamiesi įrašų naudodami profesionalią įrangą, šiuos niuansus girdi, todėl vertina originalius įrašus. Taip pat nesuspausti failai įprastai naudojami įrašų studijose, koncertų metų ir pan.