Alapfogalmak, módszerek, szoftverek Fájltömörítés Alapfogalmak, módszerek, szoftverek Kiegészítések
A tömörítés A tömörítés fogalma A számítógépek háttértárainak véges kapacitása és a számítógépes hálózatok megjelenése indokolttá tette olyan eljárások kifejlesztését, amelyekkel adataink eredeti méretüknél kisebb helyet foglalnak el a háttértárunkon. Ilyen eljárás a 80-as évek elején kifejlesztett tömörítés, amelynek feladata az adathordozón való tároláskor az állományok méretének csökkentése. A tömörítő eljárás során az állomány felhasználásának szempontjából két műveletet hajtunk végre.
Tömörítés A tömörítés fogalma Az állományok betömörítésével létrehozunk egy archív állományt. A betömörítés során a program az ismétlődő karaktereket, karakterláncokat felismeri, és összevonja. Ebben a betömörített állapotban a programok nem használhatók, szállítani és tárolni azonban könnyebb azokat. A kibontás során a betömörített állományt állítjuk vissza az eredeti állapotába. A számítógépen tárolt adatok közül tömörítés szempontjából négy típust különböztetünk meg: szöveges, bináris, képi és hangadatokat.
Tömörítés típusai Veszteség mentes tömörítés Ezek a programok az eredeti állományt betömörítve, majd újra kibontva olyan állományt adnak, amely bitről bitre megegyezik az eredeti állománnyal. Ilyen típusú tömörítést használunk például szövegfájlok vagy bináris fájlok tömörítésére, ahol nem veszhetnek el betűk a szövegből. Ezt a fajta tömörítést valósítják meg például az archiválásra használt WinZip, WinRar, Arj, WinAce programok. Egyes tömörítőprogramok - nagy mennyiségű adat archiválásának megkönnyítésére - lehetővé teszik az archív állomány szeletelését, azaz az archív fájl több, előre meghatározott méretű részre történő szétbontását.
Tömörítés típusai Veszteséges tömörítés Ebben az esetben a tömörített állományból már nem lehet pontosan visszanyerni az eredeti állományt. Ezt a módszert főleg képek és hangállományok tömörítésére használhatjuk. Veszteséges tömörítési eljárást alkalmazunk például a JPEG képformátumok, MPEG mozgókép- és hangformátumok előállítása során. A tömörítés során olyan információk vesznek el, melyek az emberi fül vagy szem által már nem lennének érzékelhetők. Egymáshoz közeli színárnyalatokat szemünk nem képes megkülönböztetni Magas frekvenciájú hangokat fülünk nem érzékel
Veszteséges tömörítés – JPEG Kiegészítések Hasonlítsuk össze a két kép minőségét. Figyeljük meg az egyes részleteket! Méret: 160 kByte Méret: 10 kByte
JPEG tömörítés A JPEG tömörítés a veszteséges eljárások csoportjába tartozik. Segítségével akár 24 bites (true color) tömörített képek is létrehozhatók, bár ez a színmélység erősebb tömörítési arányok mellett csökken. Az eljárást úgy alakították ki, hogy mind hardveres, mind szoftveres úton igen könnyen megvalósítható legyen. Segítségével 1:30 tömörítési arány is elérhető úgy, hogy a megengedett minőségromlás értékét a felhasználó határozhatja meg. Kiegészítések Az eljárás a színösszetevőket egymástól függetlenül kezeli, ami azt jelenti hogy színes képek esetén mindhárom összetevőre végre kell hajtani. Ha a JPEG veszteség nélküli tömörítés lenne, nem lenne jelentősége annak, hogy milyen színtérben ábrázoljuk a világosságkódokat. Mivel ez a szabvány megengedi a veszteséget, célszerű olyan világosságkód-ábrázolást választani, amelyben az elkövetett hibák a legkevésbé érzékelhetőek az emberi szem számára. Fontos az is, hogy az adott ábrázolási mód az adatok legnagyobb tömörítését tegye lehetővé. Az emberi szem kevéssé érzékeny a kép színinformációinak megváltozására, mint a fényességviszonyok megváltozására. Ezért JPEG tömörítés esetén nem RGB, hanem a már szintén bemutatott YUV színrendszerben tároljuk a képet. A színrendszer átalakítása után a következőket végzi el a tömörítő algoritmus: A tömörítés megkezdéséhez a képet 8x8 pixeles blokkokra bontja, melyeket ezután külön egységenként kezel, a tömörítés pedig egyenként, ezeken a blokkokon történik meg. A tömörítés során alakítja át ezeket a blokkokat, melyek eredményéből majdnem tökéletesen visszaállíthatók az eredeti adatok. Ezeket az adatokat 8x8-as mátrixba helyezi. Végül frekvencia szerint csoportosítva egy mátrixba helyezi a képelemeket, és a mátrixot tömöríti. JPEG tömörítés alkalmazásánál vigyázni kell arra, hogy (mivel veszteséges tömörítés, ezért kitömörítéskor nem az eredeti képet kapjuk vissza) újratömörítéskor a már tömörített képet tömörítjük újra, így a minőségromlás erősebb tömörítés választása esetén már igen komoly is lehet.
Futamhossz kódolás Ezen kódolás alapötlete, hogy az adattömbök sokszor ugyan azon adatot tartalmazzák egymás után. Ilyenek a szöveg alapú fájlok, melyben sokszor előfordul pl. a szóköz egymás után. Képek esetén általában a héttérszín fordul elő sokszor egymás után. Az ismétlődő karakterek helyett csak a karaktert és a darabszámot tárolja Honnan tudja, hogy mi az ismétlődő karakter? Például PackBits algoritmus esetén a kódoló a 1 2 3 4 4 4 4 4 4 6 1 2 sorozatot 1 2 3 -4 6 6 1 2 –vel kódolja. Kiegészítések Minden esetben, amikor ismétlődés van, két adat tárolódik az ismétlődők helyett. Az első adat mutatja, melyik adat fog ismétlődni, a második a darabszámát. Ha az ismétlődő karakterek száma nagyobb kettőnél, a tömörítés nyereséges. Kérdés azonban, hogy a dekódolás esetén hogyan különbözteti meg a dekódoló algoritmus azt, hogy az 13-at 3 db 1-el, vagy 13-al dekódolja. Ezen több módon is lehet segíteni. Az első, hogy futamok tömörítését jelezni kell egy választott, speciális karakterrel. Így ha a dekódoló speciális karaktert lát, az utána található két adat segítségével dekódolja a futamhosszt. Másik lehetőség a Macintosh által fejlesztett PackBits algoritmus. Az alapötlet nagyon egyszerű: minden byte-ot a bemeneten a kódoló 9 bittel kódol. A 9. bit egy egyszerű előjelbit. Így kilenc bittel 0-255 értéktartomány helyett -255..255 –et lehet ábrázolni. A dekódolás esetén, ha a dekódoló negatív számot talál, akkor tudja, hogy ez lesz a speciális karakter. Így a negatív szám abszolút értéke jelenti az ismételendő értéket, az utána következő adat pedig az ismétlések számát. Például PackBits algoritmus esetén a kódoló a 1 2 3 4 4 4 4 4 4 6 1 2 sorozatot 1 2 3 -4 6 6 1 2 –vel kódolja.
A WinZip tömörítő program A tömörítőprogramok közül az egyik legelterjedtebb a WinZip. Az ablakos technológiának köszönhetően használata igen egyszerű. A WinZip programmal megvalósított tömörítés menetét egy konkrét példán keresztül mutatjuk be. A WinZip használata
Windows Commander használata Becsomagolás Állítsuk be a paneleket úgy, hogy az egyik panelben a becsomagolni kívánt állományok legyenek, a másikban pedig az a mappa, ahová a becsomagolás irányul Jelöljük ki az állományokat, Majd ugyanabban a panelban válasszuk a Fájl\Becsomagolás parancsot
Windows Commander használata Válasszuk ki, hogy milyen algoritmussal szeretnénk tömöríteni Állítsuk be a speciális jellemzőket Például alkönyvtárakat is Önkicsomagoló állomány készítése Esetleg a Beállítás… gomb használata, ha a tömörítési beállításokat még jobban finomítani szeretnénk. A végén az OK gomb
Windows Commander használata Beállítások ablak Zip tömörítő Egyéb tömörítők
Windows Commander használata Kicsomagolás Állítsuk be a panelokat úgy, hogy az egyik oldalon a kicsomagolni kívánt állományokat lássuk a másikban pedig azt a panelt, ahová a kicsomagoltakat menteni szeretnénk. Jelöljük ki a tömörített állományokat, Majd Fájl\Kicsomagolás