Tömörítés
Történeti modul
- 1950-es Az első publikációt egy tömörítési algoritmusról[1] Shannon és Fano tette közzé.
- 1977-ben az egyik leghíresebb adattömörítéssel foglalkozó páros Ziv és Lempel publikálták,több algoritmust is készítettek.A legtöbb tömörítő program Ziv és Lempel valamelyik algoritmusát használja. Ilyen tömörítő program például a Pkzip, vagy az õ munkájuk során készült a GIF képállományok belső tömörítése is.
- 1987-ben indult a leghíresebb tömörítési formátum,az mp3[2] története,amikor az erlangeni Fraunhofer Intézet az EU Digitális Rádiósugárzási projektjének finanszírozásával megkezdte annak kutatását.
- 1989-ben az indulás után az intézet szabadalmaztatta eljárását, melyet ma mp3 néven ismerünk. A tömörítés megvalósítása alapvetõen két módon, veszteséges és veszteségmentes formában valósítható meg. Az mp3 a veszteséges tömörítés körébe tartozik, mely a veszteségmentes tömörítésnél lényegesen kisebb méretû fájl létrehozását teszi lehetõvé, a tömörítés folyamán információ vész el.
- 1991-ben látott napvilágot a Zip nevű alkalmazásuk. A program előnye az volt, hogy kis méretű, megfelelően működött és rendelkezett néhány kiegészítő, munkát is megkönnyítő funkcióval. A program bármilyen formátummal rendelkező fájlt Zip formátumba tömörített. Ennek során külön fájlokat, egész katalógusokat vagy részeiket is külön archiválta. Annak köszönhetően, hogy ez a program egyike volt az elsőknek és megfelelő kidolgozással rendelkezett, nagyon nagy népszerűséget vívott ki magának.
- 1995-ben napvilágott látott a Microsoft Windows 95[3],az új operációs rendszer számos újdonságot hozott magával, mind a programok, mind a hardverek működésében. Hiba lett volna nem kihasználni a lehetőséget. A WinZip Computing Inc. cég munkatársai és a RAR Windows számára készített verziójának programozója -- Jevgenyij Rosal -- érezték meg a legjobban a közeledő vihart. Így jelent meg a WinZip és a WinRAR.
Definíciós modul
Fogalom meghatározás: A tömörítés egy olyan eljárás, amelynek segítségével egy fájlból egy kisebb fájl állítható elő. Ha a tömörített fájlból teljes mértékben visszanyerhető az eredeti fájl (``bitről bitre), akkor veszteségmentes, ha nem akkor veszteséges tömörítésről beszélünk. Az első általánosan alkalmazható, a második csak akkor hogyha kis eltérések nem számítanak, pl. kép- és hangfájlok esetén. A tömörítés nagyon hasznos lehet, ha pl. helyet akarunk megspórolni a lemezen, vagy egy viszonylag lassú (pl. telefon) vonalon szeretnénk egy nagyobb fájlt elküldeni. Általános szabályként elmondható, hogy minél hatékonyabb egy tömörítési eljárás, annál több számolást igényel, vagyis lassabb. Nincs ``optimális tömörítés, mindig el kell dönteni, hogy érdemes-e több időt rááldozni arra, hogy a kapott fájl valamivel kisebb legyen.
A tömörítések többek között a fájlban levő ismétlődéseket és más redundanciákat használják ki, például azt, hogy egy szövegfájl minden egyes byte-ján 256 érték lenne ábrázolható, szemben az általában kihasznált kb. 70 betűvel és írásjellel. Azok a fájlok amelyek nem ennyire ``rendezettek, kevésbé tömöríthetőek. Például egy bináris[4] fájl általában kevésbé tömöríthető mint egy szövegfájl, egy tömörített fájl pedig szinte egyáltalán nem tömöríthető tovább.
A tömörítés nagyon hasznos lehet, ha pl. helyet akarunk megspórolni a lemezen, vagy egy viszonylag lassú (pl. telefon) vonalon szeretnénk egy nagyobb fájlt elküldeni. Általános szabályként elmondható, hogy minél hatékonyabb egy tömörítési eljárás, annál több számolást igényel, vagyis lassabb. Nincs ``optimális tömörítés, mindig el kell dönteni, hogy érdemes-e több időt rááldozni arra, hogy a kapott fájl valamivel kisebb legyen.
A tömörítések többek között a fájlban levő ismétlődéseket és más redundanciákat használják ki, például azt, hogy egy szövegfájl minden egyes byte-ján 256 érték lenne ábrázolható, szemben az általában kihasznált kb. 70 betűvel és írásjellel. Azok a fájlok amelyek nem ennyire ``rendezettek, kevésbé tömöríthetőek. Például egy bináris fájl általában kevésbé tömöríthető mint egy szövegfájl, egy tömörített fájl pedig szinte egyáltalán nem tömöríthető tovább.
Alapvetően kétféle adattömörítési megoldás létezik:
- veszteségmentes tömörítés: Olyan tömörítési eljárás, amely esetében a tömörített adatsorból az eredeti (tömörítés előtti) információfolyam maradéktalanul reprodukálható.Adatvesztés nélküli tömörítést használunk olyan esetekben, ahol elfogadhatatlan a részletek elvesztése; ilyen pl. egy szövegfájl tömörítése, ahol nem veszhetnek el betűk a szövegből. Ilyen tömörítési mód az LZW tömörítő algoritmus vagy a futáshossz-kódolás. Ilyen tömörítési algoritmusokkal körülbelül 2:1 tömörítési arányt tudunk elérni, azaz egy adatállományt nagyjából a felére lehet letömöríteni. Ilyen tömörítési módszerekkel dolgozik pl. a TIFF[5] vagy a PCX képformátum.
- veszteséges tömörítés:Olyan tömörítési eljárás, amely esetében a tömörített adatsorból az eredeti (tömörítés előtti) információfolyam nem feltétlenül állítható elő.A veszteséges tömörítés a veszteségmentes eljárásokhoz képest sokkal nagyobb tömörítési arányt tesz lehetővé, de csakis olyan adatfolyamok kódolásához használható, amelyek esetében nem követelmény az eredeti adatsor pontos visszaállítása, hanem kisebb eltérések megengedhetőek. Adatvesztéses tömörítést használunk olyan nagyfelbontású és sokszínű képek tömörítésénél, ahol bizonyos mértékű részletvesztés – éppen a sok szín és a nagy felbontás miatt – nem feltűnő. Ilyen esetben a tömörített állományból már nem lehet pontosan visszanyerni az eredeti képet, de lényegesen nagyobb (15:1 vagy 20:1) tömörítési arány érhető el, a képen pedig az emberi szem úgyis csak nehezen vagy éppenséggel sehogy sem veszi észre a változást. Ilyen tömörítési módszert használ a JPEG[6] képformátum vagy a videoinformáció és hanganyag tömörítésére alkalmazott MPEG algoritmus.
Tömörítés fajtái
- Kódolt tárolási mód: A kódolt tárolási módnál az adatok tárolása adatveszteség nélkül történik,
- Redudancia kiszűrése(pl. képtömörítés):a redudancia (fölös információ) kiszűrésénél az adatok elhagyása lehetséges úgy, hogy az információ vesztéssel nem jár.
- Jobb tárolási kód:a kódolt tárolási mód méretének optimálissá való csökkentését értjük.
Kétfile-os tömörítők használata:
- Tömörítés: segédprogram (kódoló), (hová) mit (honnan/miből) (+kapcsolók).
- Kibontás: segédprogram (dekódoló), (honnan/) miből (hová) (+kapcsolók).
- Kódolás - dekódolás esetén a tömörített állománynak speciális, tömörítőprogramtól függő kiterjesztése van.
Egyfile-os tömörítők használata
parancs (kódolás) (hová)/mit (honnan/miből) (+kapcsolók) segédprogram: parancs (dekódolás) (honnan)/miből (hová) (+kapcsolók) kapcsoló jelek: “-“ vagy “/”
A különböző tömörítő programok kiterjesztései:
- arj
- lzh
- rar
- uc2
- ain
- yc
- ice
- zoo
- hyp
- sqz
- amg
A tömörítőprogramok csoportosítása:
- Röptömörítők: a nem tömörített állományokat egy rezidens program vagy egy segédprogram segítségével tömörített formában tároljuk. A tömörített állományok kibontása AUTOMATIKUSAN (esetleg rezidens program segítségével) történik.
- Fájl tömörítők: a fájltömörítés az általunk kiválasztott állományokat (esetleg könyvtárszerkezettel együtt) tömöríti be egy archív állományba.
Előnye: - jó a tömörítési hatásfok könnyen utaztathatók (lemezen v. kommunikációs csatornán(pl. telefonvonal)) Hátránya: - használat előtt mindig ki kell csomagolni kicsomagoláskor átmenetileg dupla helyet foglal el