Menü

Kategóriák
 


Tömörítsünk! De mivel?
2009-03-06 17:15:22


A tömörítés fogalmát mindenki ismeri. De azzal nem biztos, hogy mindenki tisztában van, mit is takar tulajdonképpen a dolog. Nos, első körben meg kell különböztetnünk kétfajta tömörítési módot. Először is van a Veszteséges tömörítési eljárás.
 
Ezzel mindenki találkozik akit egy kicsit is érdekel a multimédia. Ugyanis ha egy MP3 fájlt hallgatunk vagy akár egy AVI videót nézünk, tisztában kell lennünk azzal, hogy ez bizony veszteséges eljárással készült. Természetesen ez nem azt jelenti, hogy bármilyen jelenet is hiányozna pl. a filmünkből (ha igen, akkor forduljunk a kiadóhoz :)), hanem, hogy az eredetileg gigászi (és ezt lehet szó szerint venni, mivel egy tömörítetlen AVI pl. több 10 akár 100 gigákat lefoglal!) fájlt olyan eljárással zsugorítjuk apróbbá, hogy közben „néhány dolog” elvész. Ez a néhány dolog azt jelenti, hogy a tömörítő hasonlóságokat keres a videóban (vagy hangban) és ezeket szépen egy kalap alá veszi. Ezzel eléri, hogy egy akár több képkockában is tulajdonképpen ugyanazok a pixelek (jelen esetben ez több pixel összekapcsolásából adódik) jelennek meg újra és újra. Így nem kell minden egyes képpontot (hívjunk inkább „blokkoknak”) külön beleírnia a fájlba, hanem elég utalnia rá, hogy „itt is, meg ott is ez van” és kész. Ezzel viszont elveszik sok értékes képanyag. Biztos sokan észreveszik, hogy sok videó olyan „kockás”. A kép mintha sok kockából lenne összerakva. Gyors képváltásoknál és mozgásoknál pedig észrevehetően tele lesz a videónk kisebb nagyobb kockával és elmosódik. Ez a tömörítés vesztesége miatt adódik. No persze vannak ma már egész jó minőséget produkáló kódolási eljárások (gondolok itt az x264-ra), melyeknél csak sasszeműek vesznek észre valamit is.
 
 Röviden (hehe, jó rövid lett :)) ennyit a veszteséges tömörítésről. A másik nagy csoport (na?kitalálta valaki??) a Veszteség mentes tömörítési eljárás.
 
 Ezt is mindenkinek ismernie kell. Ugye ezek a Zip és társai. Na jó nevezzük név szerint őket. Zip, Rar, 7z. Több is van, sőt rengeteg fajta létezik a tömörítőkből, de a legismertebb és leggyakrabban használt ez a három. De mi is tulajdonképpen az, hogy veszteség mentes? Azt jelenti, hogy ők olyan eljárással alkotnak archívumokat, hogy közben az eredeti fájl (vagy mappa) eredeti formájában, változatlanul megmarad. Azaz ugyanazt kapjuk vissza, amikor kibontjuk a tömörített archívumot, mint amit betömörítettünk (meglepő, mi?). Van jó oldala, és van rossz is. Egyértelműen az az előnye, hogy kevesebb helyet foglal. Viszont sok időbe és teljesítménybe kerül (ez relatív) be-, és kicsomagolgatni. Az eljárás hasonlóan működik mint a veszteséges, mivel itt is a „hasonlóságokra építünk”. A tömörítők különböző algoritmusokat keresnek, melyekkel bithalmazokat tudnak felcímkézni, így azokat egy blokkban elmentve utalnak azok hollétére. Ezzel helyet takarítanak meg. Ez az egyszerűsített elv, de jöjjenek a tények.
 
 Elsőként vegyük az eljárásokat górcső alá! A Zip az egyik legrégebbi tömörítő, és mai napig (ha pontosak az értesüléseim) leggyakrabban használt módszer. Előnye talán, hogy a Windows is alapból ismeri így nem kell azzal bajlódni, hogy különböző programokat rakjunk fel, amik tudják kezelni ezeket. Aztán itt van a Rar formátum, ami hasonló sebességű, mint a Zip, de valamivel jobban tömörít. Valamint itt az új (igaz már pár éve jelen van) üdvöske, a 7z („seven zip”, gyengébbek kedvéért :)), ami kisebb fájlokat ígér, mint bármi más. Lássuk mi igaz mindebből!
 
 Végeztem egy tesztet, melyben 2 „állományt” tömörítgettem mindhárom formátumba. Közben rögzítettem melyik mennyi memóriát evett, mennyi időbe telt míg végez és persze mennyire tudta összepréselni a tesztfájlokat. Az első egy vdi fájl, vagyis egy virtual pc merevlemez fájl, amire fel van telepítve egy xp sp3. A nagy mérete miatt döntöttem e mellett (megközelítőleg 1,5 giga). A másik egy mappa, ami a Doom 3 savegame-eket tartalmaz :). Összesen 55db fálj van benne és 238Mb a mérete. Minden fájlt Ultra (azaz legmagasabb) tömörítési fokon csomagoltam, különböző szoftverekkel. A tömörítési idő természetesen relatív lett, mivel az én gépem teljesítményéhez igazodik (AMD 3700+ és 1 giga dual RAM. Kicsit gyenge már szegény :( ), de összehasonlítási alapnak tökéletes.
Íme az eredmények:
 
 .vdi file - 1565Mb ~1,5Gb

     
  • Eljárás: Zip

  •  
  • Szoftver: Total Commander

  •  
  • Szükséges idő: ~7 perc

  •  
  • Szükséges memória: ~7,5Mb

  •  
  • Eredmény: 1565Mb -> 756Mb



     
  • Eljárás: Rar

  •  
  • Szoftver: WinRar

  •  
  • Szükséges idő: ~17 perc

  •  
  • Szükséges memória: ~60Mb

  •  
  • Eredmény: 1565Mb -> 668Mb

 
  • Eljárás: 7z

 
  • Szoftver: 7zip file manager

 
  • Szükséges idő: ~24 perc

 
  • Szükséges memória: ~690Mb

 
  • Eredmény: 1565Mb -> 621Mb


Doom 3 savegame mappa - 238Mb (55 különböző fájl)


 
  • Eljárás: Zip
 
  • Szoftver: Total Commander
   
  • Szükséges idő: ~2:04 sec
   
  • Szükséges memória: ~7Mb
  
  • Eredmény: 238Mb -> 37Mb
   
  • Eljárás: Rar
   
  • Szoftver: WinRar
   
  • Szükséges idő: ~1:15 sec
   
  • Szükséges memória: ~40Mb
   
  • Eredmény: 238Mb -> 17Mb

     
Eljárás: 7z
 
  • Szoftver: 7zip file manager
   
  • Szükséges idő: ~2:30 sec
   
  • Szükséges memória: ~694Mb
   
  • Eredmény: 238Mb -> 9,9Mb

Mindenki levonhatja a konklúziót. Ha a tömörítés hatásfokát nézzük akkor a rangsor felállt:

1. helyezett :7z  
2. helyezett: Rar
3. helyezett: Zip
  •  

Figyelembe kell venni, hogy más-más fájl eltérő eredmény adna. Ugyanis nem mindegy, hogy pl. egy pdf állományt csomagolunk be, vagy egy avi fájlt. Mivel az utóbbi már eleve tömörített, így csekély az esély rá, hogy sokkal kisebb lenne, mint az eredeti. Pár megabájtot tudnánk csak nyerni, magyarul értelmetlen ilyenben gondolkodni. Mint látható a 2 tesztpéldány meglepően jól tömöríthető (azért a 238Mb-ból 9,9Mb 7z-el magáért beszél! :)).
 
 Ugyanakkor látható, hogy a Zip és a Rar között égbekiáltó különbség nincs, ha a teljesítményt és gépigényt vesszük figyelembe. Igaz, hogy a Rar pl. többszörös memóriát igényelt a Zip-hez képest, de mindez eltörpül a 7z majd egy CD-s (700Mb) memó igényénél! A tömörítési idő is lineárisan nő, hasonlóan a gépigényhez. Az eredmények legtöbbünk számára szerintem nem hoztak nagy meglepetéseket, de azért jó számszerűen látni melyik mire képes.
 
 A lehetőség adott. Mindenki eldöntheti, hogy mit használ. Ha erős gépünk van akkor szerintem a 7z a nyerő, hiába ott a nagy gépigény. A gépek erősödésével idővel valószínűleg kiváltja a mai vetélytársakat. Az apró fájlok nagyon csábítóak mindenki számára. „Kevesebb letöltési idő; több minden ráfér a CD-nkre, DVD-nkre, merevlemezünkre; sok apró fájlt össze tudunk fogni mindössze egy fájlba (kevesebb merevlemez használat!); stb.” - ezek a kulcsszavak.
 
 Jó tömörítgetést mindenkinek! :)


TSaba