Komprimace: Který formát je nejlepší?

V dnešní době, kdy diskety již opouštějí útroby počítačů a jsou nahrazovány přepalovatelnými CD i DVD, sice komprimace už neplní tak důležitou úlohu, nicméně na internetu je velmi potřeba. Který formát je nejvhodnější?

Nejprve bychom si měli řict, co to ta komprimace vlastně je. Jedná se o zhuštění dat tak, že zabírají méně místa, přičemž je lze zpětně dekódovat do původní podoby (neplatí pro ztrátovou kompresi). Jako příklad můžeme uvést třeba toto: AAAAAABBBCCCC se dá stejně dobře zapsat jako 6A3B4C. nebo ještě jednodušeji: 000000000000 můžeme zapsat jako 12×0. Při prvním způsobu jsme potřebovali 12 znaků, kdežto ve druhém pouze čtyři. Dnes se zaměříme na nejpoužívanější kompresní formáty, těmi jsou ACE, RAR, ZIP a nově také 7Z (7Zip). ARJ již vynechávám, kdysi byl sice velmi rozšířený, dnes se s ním prakticky setkat nelze, je to určitě způsobeno přechodem na Windows. WinARJ je totiž až tragicky neovladatelný program. Zatímco všechny čtyři předcházející formáty mají i svůj velmi vydařený program, WinARJ spíše ovladatelnost od dob DOSu zhoršilo.
Tento článek nemá za úkol vás nějak velmi podrobně sblížit s každým formátem a možnostmi jejich opravdu bohatého nastavení, ale spíše jen stručně přiblížit dané formáty a hlavně otestovat jejich rychlost a kvalitu komprimace. Pokud chcete skutečně dobrý článek o popisu komprimačních technik a ne formátů, tak koukněte na www.pcsvet.cz.

Testy a další podrobnosti

Nejprve vám představím svou, dnes již bývalou, testovací konfiguraci. Jedná se o procesor Intel Celeron 950MHz na základní desce QDI Synactix 1 (chipset i815) osazené jedním 256MB modulem PC133 paměti při časování CL3. Jako harddisk posloužil Seagate 40GB 5400rpm ATA100 (ovšem na ATA66 řadiči) s 2MB cache. Testovalo se v nejnovějších verzích programů WinAce 2.5, WinRar 3.3, WinZip 9.0 a 7Zip 3.13.

Nejprve zkusíme jen tak porovnat činnost programu WinAce. Vzal jsem 182 souborů HTM tvořících moje internetové stránky o celkové velikosti 706.404 bajtů. Výsledky jsou v grafu, byl použit 1024kB slovník.

Velikost archivu ve WinACE

Sami vidíte jednu zvláštnost. Zatímco rozdíly mezi Super Fast, Normal a Maximum kompresí jsou minimální, přípona Solid stlačila formát na méně než polovinu. Co tedy solid archiv znamená? Komprimační program uloží celý soubor jako jeden datový blok. To má výhodu pokud balíte velké množství souborů, které nejsou příliš velké. V tomto případě dosáhnete mnohem lepšího kompresního poměru. Když použijete malé množství velkých souborů, výhoda se ztrácí a může se dokonce stát, že archiv ještě trochu naroste. Jenže není vše zlato, co se třpytí. Solid archivy mají i svou nevýhodu. Zatímco v normálních archivech jsou soubory prakticky baleny zvlášť, v solid archivech tomu tak není. Chcete-li tak rozbalit pouze jeden soubor z archivu, musíte dekomprimovat celý archiv. Velkou nevýhodou Zipu je právě nemožnost vytvořit solid archiv.

Potom, co jsme si vysvětlili solid archivy, je třeba ještě přistoupit k dalším možnostem archivování. Další možnost nabízí rozdělení archivu do několik částí. Možná si říkáte, co je to za blbost, dělit archiv, když velkou výhodou archivu je právě to, že tvoří jeden soubor. Jenže si představte následující situaci. Máme dejme tomu 3MB soubor. Ten se nám na disketu nevleze (ne všichni mají CD-RW). Tak jej zabalíme tou nejlepší kompresí. Výsledkem bude třeba 1,8MB. A to je na disketu stále mnoho. Rozdělíme tedy archiv na 1,44MB a zbytek. Později jej můžeme složit zase zpátky. Je to tak skvělý způsob jak přenést objemově větší data i přes diskety.

Dále zde máme poněkud záhadně vyhlížející SFX archivy. Zvláštní jsou už v příponě. Ta je EXE. Ano, je to program. Lépe řečeno, pokud chcete, aby archiv šel rozbalit skutečně na každém počítači, stačí jej uložit jako SFX archiv. K zabaleným datům se přidá ještě dekódovací algoritmus, takže každý počítač může archiv rozbalit. Nevýhodou je samozřejmě větší obsah archivu, protože algoritmus také něco zabere. Jako příklad uvedu již použité stránky. Vytvořil jsem solid archiv s Normal kompresí jak normálně, tak i jako SFX.

Porovnání normálních a SFX archivů



SFX archiv tedy přidá nějakých 50-70kB navíc. Zkoušel jsem i větší archiv a bylo to 12.587.741 bajtů proti 12.640.447 bajtů u SFX. Rozdíl 52.706 bajtů.

Do testů dám raději menší objemy dat. To už z několika důvodů. Za prvé, nemusím na článku pracovat celý měsíc, ale pouze několik dní. Za druhé. Všechny programy budou otestovány v následujících podmínkách. Vždy normální archiv na Normal kompresi. S výjimkou Zipu pak i jako solid archiv s 1MB slovníkem na normální kompresi, tedy stav, který použije každý uživatel, který se v tom nechce příliš hrabat. Nakonec opět s výjimkou Zipu ještě solid archiv na nejlepší kompresi s největším možným slovníkem.

Komprimace hry 1

Komprimoval jsem báječnou DOSovskou hru Transport Tycoon DeLuxe. Velikost souborů byla celkem 27.066.044 bajtů. Celkem bylo obsaženo 138 souborů.

komprimace hry 1 - velikost

Je vidět, že Zip té komprimaci příliš nedává, navíc není možno vytvořit solid archiv. Jako vítěz vyšel 7Zip. Ten se může pochlubit až 192MB slovníkem (nejspíš omezeno mojí pamětí RAM, ale kdo ví). V testu jsem však použil 16MB slovník, protože jinak se 7Zip začal zasekávat a byl po překročení 80% archivu neuvěřitelně pomalý, po třech minutách se nic nedělo.

Komprimace hry 1 - čas

Srovnáme-li časy, jsou rozdíly obrovské. Nejrychlejší je Zip, má ovšem také nejhorší komprimaci. ACE a RAR jsou poměrně vyrovnané, ale 7Zip je už pomalejší. Je to jistě dáno také vynikající kompresí.

Komprimace hry 2

Opět jsem komprimoval DOSovskou hru, tentokrát to byla vynikající rallye Network Q Rally Championship. Celá složka měla 92.700.945 bajtů. Celá obsahovala 775 souborů.

Komprimace hry 2 -velikost

Je vidět, že solid archiv zde o mnoho lepší výsledky nepřináší. Jako obvykle komprimace příliš nejde Zipu. ACE obsadil třetí příčku a vyrovnaní jsou nyní RAR s 7Zipem, přičemž 7Zip je ještě o chlup lepší.

Komprimace hry 2 - čas

Situace se opakuje i při časovém srovnání. Nejrychlejší je Zip, i když při nejlepší kompresi lze jeho výkon srovnávat i s RARem. Bezkonkurenčně nejpomalejší je 7Zip, Dále je to ACE, který ani komprimačními vlastnostmi tentokrát nepřesvědčil a velmi rychlý byl RAR. Nicméně na Zip to zdaleka nestačí.

Komprimace obrázků BMP

Složka obsahovala 102 obrázků ve formátu BMP o celkové velikosti 38.230.383 bajtů.

Komprimace obrázků BMP - velikost

Zip je tradičně úplně jiná liga. Zbylá trojice má však kupodivu mezi sebou obrovské rozdíly. ACE to s přehledem vyhrává (i když je s podivem nejhorší výsledek při údajně nejlepší kompresi), daleko za ním je RAR a hodně zklamal i 7Zip.

Komprimace obrázků BMP - čas

Opět platí, že Zip je jiná liga. Komprimace nic moc, ale ty časy jsou skvělé. ACE, který byl nejlepší má průměrný čas ze zbývající trojice. RAR je na tom lépe, ale u 7Zipu nastal zajímavý jev. Komprimace byla velmi špatná a časy jsou s velkým náskokem nejhorší. Škoda.

Komprimace souborů HTML

Toto jsou sobory použité i úplně na začátku, tentokrát ale se všemi programy. Bylo to 182 souborů o celkové velikosti 706.404 bajtů.

Komprimace souborů HTML - velikost

Zde příliš velké rozdíly mezi programy nejsou. Vynecháme-li svérázný Zip, pak to trochu prohrává ACE, jinak jsou na tom RAR i 7Zip velmi dobře. Při tomto uspořádání souborů (hodně malých souborů stejného typu) je spíše velkým rozdílem, zda vytváříte solid archiv. Ten je o více než polovinu menší!

Komprimace soubroů HTML - čas

ACE se příliš nevytáhl, stejně jako 7Zip. Naprosto vynikající výsledky podal Zip i RAR.

Komprimace dokumentů DOC a XLS

Na harddisku se vždy najde spousta dokumentů. Nejinak je to i v mém případě. Vzal jsem všechny soubory DOC a XLS na disku a vynechal jsem z testu ty, které jsou tvořeny pouze obrázky. Takže zůstaly jen dokumenty s textem, případně textem doplněným o pár obrázků, tedy asi nejčatěji se vyskytující dokumenty tohoto typu. Zůstalo 200 souborů o celkové velikosti téměř 10MB, přesněji 9.996.888 bajtů.

Komprimace dokumentů DOC a XLS - velikost

Zip si hraje na svém vlastním písečku, ACE a RAR jsou vyrovnané a 7Zip to tentokrát s poměrně slušným 10% náskokem vyhrál.

Komprimace dokumentů DOC a XLS - čas

Myslím, že není třeba komentáře. Situace se už popáté opakuje.

Logický test

Doteď jsme zkoušeli poměrně praktickou komprimaci. Nyní zkusíme naprostou šílenost. Vytvořil jsem soubor, který obsahoval pouze znak "_", tedy znak s hodnotou 11111111 ve dvojkové soustavě. Měl by to být tak nejvhodnější kandidát na komprimaci. Celý textový soubor měl takřka 50MB, přesně 50.000.000 bajtů.

Logický test - velikost

Hned na první pohled je vidět, že solid archiv nepřinese ani bajt k dobru, což je ostatně naprosto pochopitelné. Nejhůř je na tom ACE. S ním nehnulo naprosto nic a má tak suverénně nejhorší výsledky. RAR měl dobrý výsledek, který po přepnutí na nejlepší kompresi s největším slovníkem jen potvrdil. 7Zip měl na Normal nejlepší výsledek, ale opět s nim žádné nastavení nehnulo. Zip, pravidelný odpadlík sice na Normal nic moc nepředvedl, ale při nastavení Best (resp. Maximum) ukázal, jak se komprimuje. Necelé 2kB z 47,6MB, to je něco!!!

Logický test - čas

Zde není potřeba příliš co dodávat, situace se v podstatě opět opakuje. Jeden rozdíl zde ale přece jenom je. Vzpomeňte si na výsledky 7Zipu. Vždy stejné. A časy? Při nejlepší konfiguraci má čas téměř dvě minuty, přičemž docílil stejného výsledku jako předtím, tedy za necelou půlminutu, a i to je hodně.

Závěr

Hodnocení je jednoduché. Nejlepší v daném testu získal 100%, další od něj poměrově méně. Zip díky nemožnosti vytvořit solid archiv byl započítáván pouze při testu na Normal. Pozn. Test 1/1 znamená první test na Normal, Test 3/2 třetí test na Normal Solid a konečně Test 2/3 druhý test na Best Solid 16MB.

VelikostACERAR7ZipZip
Test 1/194,7%94,4%100%87,1%
Test 1/294,7%95,3%100%-
Test 1/393,3%95,6%100%-
Test 2/196,6%99,6%100%91,5%
Test 2/294,8%99,2%100%-
Test 2/396,0%100%100%-
Test 3/1100%77,0%64,8%53,5%
Test 3/2100%77,0%64,9%-
Test 3/3100%78,3%66,6%-
Test 4/196,9%95,7%100%93,3%
Test 4/288,1%92,7%100%-
Test 4/381,0%100%96,6%-
Test 5/191,1%91,0%100%84,6%
Test 5/290,8%89,8%100%-
Test 5/390,3%91,5%100%-
Průměr93,9%91,8%92,9%82%*

Po zesumírování to vypadá, že naše trojice je velmi vyrovnaná. 7Zip to nevyhrál jen kvůli špatné komprimaci BMP obrázků. Ani by se nedalo říct, že RAR je horší, protože právě komprimace BMP mu také nešla, kdežto ACE je v ní přeborník. Klasický Zip je už o 10% horší.

Bohužel čas by nešel nějak objektivně převést na Index kvůli Zipu. Buď bych jej musel vynechat nebo získat strašně divné výsledky. Stačí se ale podívat na grafy a je vše jasné.

ACE - má velmi dobrou komprimaci, ale trvá mu to dost dlouho. Co se týče programu WinACE, ten je velmi hezký a při komprimaci ukazuje rychlost, uplynulý i zbývající čas a může zobrazit i graf úspěšnosti komprimace.

RAR - pokud nepočítám archivaci BMP obrázků, pak má o něco lepší kompresi ve všem ostatním. Navíc je i o něco rychlejší, takže jej mohu doporučit více než předešlý ACE. Podotýkám ale, že rozdíly jsou malé. Co se týče programu WinRAR, zobrazuje ty samé veličiny jako ACE, jen ten graf je automaticky zobrazen poměrně zajímavým způsobem.

Zip - Kapitola sama pro sebe. Komprimace teda nic moc, ale ty časy jsou vynikající. Pokud potřebujete rychle něco zabalit, pak je Zip ta správná volba. Pokud však potřebujete něco dobře zapakovat, pak u Zipu moc nepochodíte. Program WinZip je sice už v deváté verzi, ale stále chybí jakýkoli ukazatel úspěšnosti komprese při archivování. Co mě však opravdu mrzelo, je to, že chybí ukazatel času, takže jen u Zipu jsem musel měřit se stopkami (hodinkami) v ruce. Ne že by to nějak vadilo, ale když to všichni ostatní mají, tak proč se obtěžovat navíc, no ne?

7Zip - velice kontroverzní formát. Mohu vám říci, že s Zipem nemá společného snad vůbec nic. Jeho komprese je bezkonkurenční (až na ty BMP soubory), tedy naprostý opak Zipu. S časem je to podobné. Zatímco Zip je velmi rychlý, tak 7Zip je neuvěřitelně pomalý. Ale musím říct, že zatraceně pomalý, a výborná komprese to podle mně nenahradí.

Koho tedy určit vítězem? Abych řekl pravdu, tak nevím. Zip bych označil za spolehlivého rychlíka v případě nutnosti, zde je nejlepší. Jinak jeho možnosti a komprese jsou špatné. Pokud už jde fakt o komprimaci na úrovni, pak je tím pravým asi RAR. Je ze zbývající trojky nejrychlejší a nabízí stejně dobrou kompresi jako ostatní.

Zdroje: www.winace.com, www.winzip.com, www.winrar.de, www.7zip.org

Speciály

Robertův sloupek

Aktuality

Vysvětlení pojmů

Tiskové zprávy