Zabalte to ... (Komprimace dat) | Jaroslav Smíšek 14/2003 | ||||
Uživatelé počítačů často používají výrazy jako „zabalit“, „zapakovat“, „komprimovat“. V podstatě jde stále o totéž – zmenšit data tak, aby na paměťovém nosiči zabírala co nejméně místa, ale aby podstata dat zůstala zachována. | |||||
Když počítačová data nabyla takového objemu, že začal být problém je ukládat na existující paměťové nosiče (diskety, pásky...), vznikla potřeba komprese dat. Můžete věřit tomu, že to bylo už velmi dávno. Komprese dat se dnes vyskytuje v mnoha podobách. Zapakovat můžeme například textové soubory či tabulky. Komprese se však využívá i u obrázků, videa nebo muziky. Hned ze začátku je třeba zavést dva důležité pojmy – jde o bezztrátovou a ztrátovou kompresi. Bezztrátová komprese znamená, že data budou po rozpakování absolutně identická s těmi, která jsme pakovali. To je příklad komprese textových souborů nebo programů (do souborů typu ZIP, ARJ, RAR apod., které nazýváme též archivními soubory). Při ztrátové kompresi dochází k tomu, že výsledná data ztrácejí část své původní kvality (u obrázku to může být například ostrost či barevná hloubka), aby se co nejvíce zmenšil jejich objem. | |||||
Beze ztráty Jak již bylo řečeno, při bezztrátové kompresi je soubor po rozbalení stejný jako před komprimací. Nedochází tedy ke ztrátě části dat ani ke snížení kvality. Komprimace pracuje principiálně tak, že program, který kompresi provádí, se snaží najít v souboru nějaké vztahy, posloupnosti, kterých může využít. Tak například v souboru bude: „AAAAAABBBBBB“; zde stačí napsat 6×A+6×B, a ušetříme pět znaků. Řetězec znaků „ABCDABCDABCD“ lze zase zapsat jako 3×(A-D). Pro osvětlení principu komprese jsme uvedli zjednodušené, primitivní ukázky, současné metody komprese souborů jsou mnohem komplikovanější. Úspěšnost bezztrátové komprese je třeba zvažovat. Některé typy souborů jsou snáze komprimovatelné, u jiných je to v podstatě nemožné. Například textové soubory lze zapakovat poměrně dobře, třeba i na čtvrtinovou velikost. Bezztrátovou kompresí však nelze zmenšit soubory, které již byly jednou zkomprimovány (např. video a soubory MP3). Nejznámějšími komprimačními programy jsou WinZip, WinRAR či WinArj. Jejich první verze se objevily již v raných dobách osobních počítačů v operačním systému MS-DOS. S příchodem Windows získaly lepší, grafické uživatelské rozhraní, které výrazně zjednodušilo jejich používání. | |||||
Se ztrátou, ale akceptovatelnou Spousta typů dat zabírá hodně prostoru na disku – jde o video, obrázky a hudbu. Přitom se jedná o data, u nichž určitou ztrátu kvality nepostřehneme nebo u nichž je taková, že jsme ji ochotni akceptovat. První ztrátová komprese se objevila pravděpodobně u obrázků. Vezmeme-li v úvahu, že obrázek o rozlišení 1024 × 768 bodů s barevnou hloubkou 24 bitů zabírá na disku 2,25 MB místa v nezkomprimované podobě, je nasnadě, že bylo třeba něco vymyslet. Jako základ se využívá bezztrátové komprese a hledají se oblasti, které mají stejné barvy, například bílé pozadí obrázku. Informace o nich zabírají mnohem méně místa než plný datový výpis. Takto lze tedy obrázky výrazně zmenšit, aniž se kvalita sníží. Toho se hojně využívá v profesionální práci s obrazovými daty (fotografové, grafici). Pro běžné domácí použití jsou však takové soubory stále příliš velké. Ke slovu se tedy dostává ztrátová komprese. V případě zmíněných barevných oblastí je to tak, že jsou tolerovány určité odchylky barev, které oko běžného uživatele nepostřehne. Barvy podobného odstínu jsou považovány za tutéž barvu, a soubor tedy může být i několikanásobně menší. Podobně to funguje s ostrostí. Míru oné tolerance lze nastavit při ukládání obrázku. Nejoblíbenějším formátem při komprimaci obrázků je JPG. | |||||
Inteligentní video Video jsou vlastně obrázky, které se mění určitou frekvencí, například 25krát za sekundu. Nejjednodušší formou jsou nekomprimované obrázky, které se budou postupně načítat a střídat. Takové video však zabírá obrovský prostor. Jednoduchou pomocí je používat zkomprimované obrázky. Tady však vstupuje do hry další faktor – výpočetní náročnost. Máme-li zkomprimován jeden obrázek, nevadí nám třeba půl vteřiny počkat, než se obrázek dekomprimuje. Jenže u videa je obrázků hodně v malém časovém úseku, takže je třeba volit takovou metodu a míru komprese, aby se vše stihlo. Pokročilejší metody komprese videa využívají toho, že po sobě jdoucí obrázky se obvykle mění jen málo. Například když kamera zabírá člověka, který se nehýbe, ale jen mluví, není třeba neustále měnit celý obraz, ale jen obličej. Při kompresi tedy komprimační program porovnává následující snímky a zjišťuje, zda je lepší zaznamenat změny (málo dynamická sekvence), nebo zda je výhodnější zobrazit nový obrázek (např. při střihu). S komprimovaným videem se setkáváme všude tam, kde je digitální video – digitální videokamery, DVD apod. | |||||
| |||||
Komprese zvuku je náročná Komprese hudby či zvuku obecně není tak „jednoduchá“ jako u obrázků nebo videa. Oproti obrázkům a videu zde totiž nelze použít jednodušší metody. Ztrátová komprese zvuku bere v úvahu schopnost lidského ucha různě vnímat různé frekvence zvuku. Lidské ucho je nejcitlivější ve frekvenční oblasti řečového pásma, nepostřehne však ani poměrně velké zkreslení zvuku v nízkých tónech. Určité rozdíly ve frekvencích jsou tedy při kompresi zanedbávány. Jiné zvuky jsou zjednodušeny tak, aby se soubor sice zmenšil, ale aby běžný posluchač nezaznamenal snížení kvality zvuku. Za nejoblíbenější zvukový kompresní formát lze považovat formát MP3, který vznikl pro účely prvních videozáznamů na počítači. Formátem pracujícím na podobných principech je formát ATRAC, jejž vyvinula firma Sony pro svůj hudební nosič MiniDisc. Stejně jako u ztrátové komprese obrázků lze i u zvuku nastavit, jak velké bude snížení kvality. Měříme to tzv. datovým tokem. Platí přitom, že čím je datový tok větší, tím je zvuk kvalitnější, ale tím větší je zároveň zvukový soubor. Nejpoužívanějším datovým tokem ve formátu MP3 je 128 kb/s (kilobitů za sekundu); tehdy jde již o poměrně věrnou reprodukci, kterou většina lidí není schopná na běžných audiozařízeních rozeznat od kvality zvukového CD. | |||||
Dvojí způsob zmenšení Musíme také rozlišovat, zda komprimujeme obrázek, nebo hudbu, anebo soubor. Obrázek ve formátu BMP (formát bez komprimace) lze tedy zmenšit kompresí bezztrátovou i ztrátovou (formáty TIF, JPG). Pokud však chceme obrázek zachovat ve formátu BMP, můžeme použít komprese souboru (formáty ZIP, RAR, ARJ). Kvalitu obrázku přitom neztratíme a v případě formátu BMP budeme se zmenšením souboru poměrně úspěšní. Kdybychom však chtěli zkomprimovat zvukový datový soubor kompresí bezztrátovou, soubor by se téměř nezmenšil. Jak již bylo naznačeno, také nemá smysl snažit se komprimovat soubory ve formátech JPG, TIF, MP3, AVI či MPG, neboť úroveň komprese těchto typů souborů je velmi vysoká a výrazněji je zmenšit se již nepodaří. | |||||
Neviditelná komprese Komprese mnohdy využíváme, aniž bychom o tom vůbec věděli. Například jste-li připojeni prostřednictvím modemu ať již k poskytovateli internetu, či k nějakému faxu, jsou data automaticky přenášena zkomprimovaná. Také některé databázové programy využívají komprese dat automaticky. Jiného typu automatické komprese se dříve využívalo pro kompresi veškerých dat i programů na disku počítače, aby se lépe využilo místo na disku. Můžete také narazit na soubor s příponou exe, který nebude přímo programem, ale skrývá zkomprimovaná data. Takovému souboru se říká „samorozbalovací“ a hojně se ho využívá například na instalačních CD. Výhoda tohoto typu souboru spočívá v jeho jednoduchosti – po jeho spuštění se data sama dekomprimují a uživatel nemusí umět ovládat komprimační programy. | |||||
Pozor na viry Probrali jsme různé typy komprese, a tak je čas si říct, že komprese s sebou nese i jedno riziko. Pokud máte na disku např. soubory ZIP, může v nich být zapakovaný soubor, který obsahuje virus. Ne všechny antivirové programy však dokážou obsah těchto souborů kontrolovat. Ještě horší je to se soubory samorozbalovacími. Není třeba se komprimace bát, namístě je však zvýšená opatrnost. Pokud dostanete elektronickou poštou program zapakovaný jako soubor ZIP, rozpakujte ho do zvláštního adresáře. Pak spusťte antivirový program a nechte ho, aby obsah tohoto adresáře zkontroloval. Teprve je-li vše v pořádku, můžete program spustit. Komprese dat je velmi často používaný nástroj a je užitečné ho využívat, ať již ve formě bezztrátové komprese, nebo ve formě komprese obrázků nebo zvuku. | |||||
Čím rozpakovat soubor Co dělat, když dostanete zkomprimovaný soubor? Jak již víte, typ souboru poznáte podle jeho přípony. Zkomprimované soubory mají přípony podle programů, kterými byly zkomprimovány. Takových programů se v historii komprimace objevilo velké množství, ovšem dnes se můžete setkat jen se třemi: jsou to programy WinZip, WinRAR a WinArj. Všechny jsou k dispozici jako shareware. Lze si je tedy po omezenou dobu vyzkoušet zdarma, poté byste se měli zaregistrovat a zaplatit registrační poplatek. Čas od času je umisťujeme na CD PPK, volně je lze stáhnout z internetových stránek výrobců. WinZip naleznete na adrese www.winzip.com, WinArj na www.lasoftoz.com a WinRAR na www.winrar.com. Nespornou výhodou těchto programů je, že většinou umějí dekomprimovat také konkurenční formáty, a to včetně těch starších, které se dnes již téměř nepoužívají (nějaký soubor staršího formátu se však přece jen může občas objevit). |