Posledná zmena: 08.06.2012
Otázka: Chcel by som sa opýtať, ako sa dá na PC, napríklad cez program WinRAR, zbaliť väčší súbor na menší. Pamätám si, že som mal od kamaráta hru na 3 CD, ktorá mala po rozbalení na disku veľkosť 15 GB. Ako sa to dá vôbec urobiť? Možno také zmenšenie dosiahnuť programom WinRAR alebo potrebujem nejaký iný?
Komprimácia súborov sa delí na stratovú a bezstratovú. Stratová kompresia je obyčajne mimoriadne účinná a dosahuje veľmi dobré komprimačné pomery. Základný predpoklad je odobrať informácie, ktoré sú za hranicou schopností ľudského zraku či sluchu, takže ich odstránenie je nerozpoznateľné. Z tohto hľadiska je jasné, že musí ísť o súbor, ktorý pozostáva z obrazových alebo zvukových informácií. Stratové kompresie sa teda používajú na videá, hudbu či fotografie. Azda najznámejšie sú kompresie JPEG (pre fotografie), MP3 (pre hudbu) a MPEG4 Part2 s kodérmi, ako je napríklad XVID (pre video). So všetkými možno ísť pri zmenšovaní až za hranice, keď už človek rozpozná, že kvalita súboru klesá. Snaha je, samozrejme, dosiahnuť vždy čo najmenšiu veľkosť pri zachovaní čo najviac detailov. Pri súboroch, ako sú napríklad klasické programy, hry a textové dokumenty, sa používa bezstratová kompresia, ktorá je už z princípu oveľa menej účinná ako stratová (možno ju, samozrejme, používať aj na audio/video). Pri súboroch tohto typu je totiž nevyhnutné, aby všetky dáta boli opätovne zostaviteľné. Nesmie z nich nič chýbať. Ak odstránenie dát pri stratovej kompresii spôsobí, že nejaký detail na fotografii bude viac neostrý, nejde o nič, čo by zabránilo pozerať sa na fotografiu. Človek si to často ani nevšimne. Keby ste rovnaký systém straty dát použili na textový dokument, určite by vám prekážalo, keby chýbalo napríklad každé tretie slovo. Z rovnakého dôvodu nemožno odstrániť „menej potrebné" bajty z programov. Program by sa jednoducho znefunkčnil. Komprimačné nástroje ako WinRAR, 7ZIP či WinZIP používajú práve bezstratovú kompresiu. Súbor je po zabalení do bezstratovej komprimovanej podoby vždy spätne obnoviteľný do úplne rovnakého stavu. Pri kompresii ide o dosiahnutie úspory miesta komplexnejším výpočtom (zväčša výpočtom štatistického modelu dát, podľa ktorého sa dáta následne adaptívne zmapujú), ktorý je náročnejší na výkon, ale má menší objem. Na jednoduchú predstavu poslúži nasledujúci príklad: sekvenciu AAAFFFFF môžeme na úsporu miesta zapísať 3A5F. Dáta sú omnoho menšie, ale zmenené, takže niečo bude musieť náš zápis pred použitím dekomprimovať do pôvodnej podoby. To si, samozrejme, vyžaduje čas a výkon.
Komprimačný pomer, ktorý je pri bezstratovej kompresii dosiahnutý (teda to, o koľko sa súbor zmenší v pomere k nekomprimovanému originálu), je pri rôznych typoch súborov odlišný. Keby ste sa napríklad snažili uplatniť bezstratovú kompresiu na už stratovo komprimované súbory (napríklad audio v MP3 či obrázok v JPEG), zmenšenie by bolo prakticky nulové (alebo by sa dokonca súbory pre komprimačnú informáciu ešte o trošku zväčšili). Zápis je totiž už pri takýchto súboroch komprimovaný a nedá sa bezstratovou kompresiu viac skomprimovať. Súbor možno zmenšiť už iba ďalším odobratím dát. Z rovnakého dôvodu už nebudete úspešný ani pri opätovnom bezstratovom skomprimovaní súboru, na ktorý už bola stratová kompresia použitá. Pri kompresii jednotlivých ešte nekomprimovaných súborov bude úspešnosť rôzna. Dáta, ako sú napríklad textové súbory, sú z hľadiska bezstratovej kompresie mimoriadne dobre komprimovateľné. Kolekciu tisícov textov s použitím bezstratovej kompresie, používanú napríklad programom WinRAR, môžete vo výsledku mnohonásobne zmenšiť. Pri kompresii programov, ako sú napríklad hry (pokiaľ už nie sú skomprimované nejakou kompresiou do podoby malého inštalátora), sa výsledok nedá nijako odhadnúť. Niektoré súbory pôjdu komprimovať dobre (rôzne textové a konfiguračné knižnice), iné skoro vôbec (grafické súbory, zvuky). Zistíte to jedine tak, že to vyskúšate. Neexistuje žiadny „magický trik", ktorý každú 15 GB hru skomprimuje na niekoľko málo GB. Niektoré súbory sa skrátka dajú komprimovať účinne a niektoré nie. Všetko závisí od vnútornej štruktúry dát. To, že hra zaberá po nainštalovaní na disku oveľa viac miesta ako inštalačné súbory na CD či DVD, je úplne normálne. Pri tvorbe inštalátora autori používajú bezstratové kompresie. Súbory sú potom pri inštalácii dekomprimované do veľkej „čistej" podoby, ktorá sa dá rýchlo a bez zbytočne náročného výpočtu čítať, čo je napríklad pri hrách z hľadiska dobrého výkonu veľmi žiadané.
Zdroj: PCR 6/2012