Tömörítés¶
Az adattömörítés a számítógépes tudományágak egy területe, melynek célja az adatok feldolgozása oly módon, hogy azok minél kevesebb helyet foglaljanak, vagy minél gyorsabban lehessen őket továbbítani. Ez azért lehetséges, mert a valós világ adatai többnyire igen redundánsan és nem a lehető legtömörebb formában reprezentálódnak.
Redundancia
Redundancia az információelméletben az információ- vagy üzenetátvitelre használt csatornán maximálisan egyszerre átvihető bitek számának és az aktuális információ vagy üzenet bitjei számának a különbsége.
Az adattömörítés egy lehetséges mód a nem kívánt redundancia csökkentésére, a különféle ellenőrzőösszegek pedig hibajavítás céljából növelik a redundanciát, ha az átvitel egy zajos csatornán folyik, ahol a zaj csökkenti az átviteli kapacitást.
Jogosultságok megőrzése nem garantált
A tömörített fájlok meta adatainak megőrzése csak azonos fájlrendszeren való kitömörítés mellett lehetséges, de ott se garantált. Vagyis előfordulhat, hogy a fájlok időbéjegzője és a hozzájuk rendelt jogosultságok megváltoznak. Ez főleg konfigurációs fájlok esetében okozhat problémát.
Veszteséges tömörítés¶
A veszteséges tömörítés az adattömörítési algoritmusok egy osztálya, ami a veszteségmentes tömörítéssel ellentétben nem teszi lehetővé a tömörített adatból az eredeti adatok pontos rekonstrukcióját, ám egy „elég jó” rekonstrukciót igen.
JPG
A JPEG – (Joint Photographic Experts Group) képek tárolására alkalmas fájlformátum. Kiterjesztéseként a .jpeg, .jpg, ritkábban a .jpe használt. A JPEG normát 1992-ben fogadták el, ami különböző képtömörítési módokat ír le.
A képen lévő információt veszteségesen tömöríti ez a formátum. A szabvány által leírt veszteségmentes tömörítést nem használják. Bár a tömörítés információveszteséggel jár, akár 10-100× kisebb fájlméret mellett is élvezhető a tömörített kép. Elsősorban fényképek, rajzok tárolására való.
MP3
Az MP3 egy veszteséges tömörítésen alapuló, hangfájlok (főképp zene) tárolására használt fájlformátum, jelenleg az egyik legelterjedtebb. Valójában két különböző, de nagyon hasonló formátum, az MPEG–1 Audio Layer 3 és az MPEG–2 Audio Layer 3 közös neve; illetve létezik egy nem hivatalos MPEG–2.5 Audio Layer 3 is. Ez a három formátum elsősorban a bitráta és a mintavételezési frekvencia megengedett értékeiben tér el egymástól.
Az MP3 szabványok nem definiálják a tömörítő algoritmust, csak a kitömörítőt és a fájl formátumát, így az MP3-nak a használt tömörítő (kodek) szerint számos különböző változata lehet.
MPEG-4
Az MPEG-4 az MPEG adattömörítési algoritmuscsalád tagja. Az 1998-ban bemutatott szabvány egyaránt alkalmas hang- és képjelek (audió és videó) kódolására és tömörítésére, elsődlegesen alacsony sávszélesség-igényű, 4800 bit/s-tól kb. 4 Mbit/s-ig terjedő digitális tartalmak esetében.
Veszteségmentes tömörítés¶
A veszteségmentes tömörítés az adattömörítési algoritmusok egy osztálya, ami lehetővé teszi a tömörített adatból az eredeti adatok pontos rekonstrukcióját. Párja a veszteséges tömörítés, amikor az eredeti adatok nem mindig állíthatók pontosan helyre – ezt főleg a multimédia területén használják. Veszteségmentes tömörítést akkor alkalmaznak, ha fontos, hogy az eredeti és a kicsomagolt adat bitről bitre megegyezzen, illetve ha nem tudni, hogy az esetleges eltérések kritikusak-e. Tipikus példák a futtatható állományok vagy a forráskódok.
ZIP
A .ZIP egy archív fájlformátum, amely a veszteségmentes tömörítést támogatja. Egy .ZIP fájl tartalmazhat egy vagy több fájlt és/vagy mappát, amely már tömörített. A .ZIP fájlformátum lehetővé teszi számos tömörítési algoritmus működését. A formátumot eredetileg 1989-ben Phil Katz készítette, és a PKWARE által terjesztett PKZIP alkalmazás használta, felváltva az addigi Thom Henderson-féle ARC tömörítést.
Jelenleg a .ZIP fájlformátumot több alkalmazás is támogatja. A Microsoft 1998 óta beépíti ezt a tömörítettfájlformátum-támogatást „tömörített mappa” név alatt. Az Apple is bevezette a .ZIP formátum támogatását a Mac OS X 10.3-tól (a BOMArchiveHelperen keresztül, jelenleg az Archive Utilityn). Ugyanakkor a legtöbb ingyenes operációs rendszer is beépítette a .ZIP fájlformátum támogatását a Microsoft és Apple cégekhez hasonlóan.
7z
A 7z egy tömörített archív fájlformátum, amely számos különböző adattömörítési algoritmust támogat. A formátumot eredetileg a 7-Zip program vezette be; mind a fájlformátum, mind a 7-Zip megvalósítása GNU LGPL licenc alatt érhető el.
tar.gz
A gzip egy számítógépes alkalmazás adatok tömörítésére és kibontására. A kifejezés legtöbbször a GNU Projekt implementációra utal, ahol a gzip a GNU zip rövidítése. Alapja a DEFLATE algoritmus, mely a Lempel-Ziv (LZ77) és a Huffman-kódolás kombinációja. A programot Jean-Loup Gailly és Mark Adler készítette, mint a korai Unix rendszereken használt compress algoritmus szabad szoftveres helyettesítése, a GNU projektben való használat céljára. A 0.1-es verziót nyilvánosan először 1992 október 30-án adták ki, míg az 1.0-sat 1993 februárjában.
Habár az eredeti formátum engedélyezi több adat összefűzését (a zippelt fájlok kitömörítéskor ezen esetben úgy jelennek meg, mintha eredetileg egy fájlban lettek volna), a gzipet általánosságban csak egy fájlra használják. A tömörített archívumokat általánosságban a fájlokat egy tar archívumba fűzik össze, melyet aztán gzippel tömörítenek. A végső .tar.gz vagy .tgz fájlt általánosan "tarball"-nak hívják.
FLAC
A FLAC-et (Free Lossless Audio Codec, magyarul "Szabad, veszteségmentes audiokodek") az MP3-hoz hasonlóan hanganyagok tömörítésére használják, de azzal ellentétben a FLAC-kel való tömörítés veszteségmentes, tehát tömörítés közben a hanganyag egyáltalán nem veszít a minőségéből.
A FLAC hanganyagok tömörítése az általános célú tömörítőknél (például ZIP, gzip) jóval hatékonyabb: a tömörítetlen hangfájlokhoz képest akár 30-50%-os méretcsökkenés is elérhető vele, míg például ZIP-pel legfeljebb 10-20%. Összehasonlításképp egy Vorbis vagy MP3 file esetén tömörítés akár a 80%-ot is meghaladhatja, de a veszteséges eljárás miatt az eredetivel pontosan megegyező hanganyag nem állítható újból elő.
PNG
A PNG egy veszteségmentes tömörítési eljárás. Ez azt jelenti, hogy ha adott egy tömörítetlen kép, melyet PNG formátumba tömörítünk (ezzel a fájl méretét csökkentve), majd az eredményt kicsomagoljuk, és az eredeti képpel együtt kinagyítjuk, akkor képpontról képpontra haladva az összehasonlítás azt mutatja, hogy az eredeti kép és a tömörítésen átesett kép tökéletesen megegyezik, tehát semmilyen információ nem veszett el vagy torzult el a tömörítés során.
A PNG egy viszonylag fiatal fájlformátum, a GIF utódaként emlegetik. Kifejlesztésének oka volt, hogy a GIF formátumnál használt LZW tömörítési algoritmus jogi oltalom alá eső eljárásokat tartalmazott, vagyis a GIF tömörítés üzleti használatához jogdíj megfizetése volt kötelező. A PNG elsődlegesen a deflation nevű algoritmust használja (az LZ77 egy módosított változatát, a "zlib" programkönyvtár segítségével).
A veszteséges tömörítéssel nem dobunk el adatot?¶
A veszteséges módszerek használatának az az előnye a veszteségmentes módszerekhez képest, hogy sok esetben a veszteséges tömörítés sokkal kisebb fájlt képes előállítani, mint bármely veszteségmentes, és még így is kellően jó minőséget ér el.
A veszteséges módszereket általában a hang-, kép- és videotömörítés során használják. A tömörítési arány (tehát a tömörített fájl mérete a tömörítetlenhez képest) általában a videók esetében a legjobb (akár 300:1 is lehet látható minőségromlás nélkül), hanganyagnál ez az érték 10:1 körül mozog. A veszteségesen tömörített képeknél is gyakori a 10:1-es tömörítési arány, de a minőségromlás itt vehető észre talán a legkönnyebben.
A veszteségesen tömörített fájl bitszinten teljesen különböző lehet az eredetitől, ugyanakkor az emberi szem vagy fül számára nehéz lehet megkülönböztetni őket. A legtöbb veszteséges tömörítő figyelembe veszi az emberi test anatómiai felépítését: például, hogy az emberi szem bizonyos frekvenciájú fényt lát csak. A hangtömörítés során pedig felhasználják az emberi hallás pszichoakusztikus modelljét, ami tartalmazza, hogy az emberi fül milyen hangmagasságokra érzékenyebb, vagy hogy az egyszerre megszólaló frekvenciák hogyan maszkolják egymást.
Csomagolás
Bizonyos esetben nem szereténk az időigényes tömörítési algoritmusokat futtatni, azonban szükség van rá hogy egyben kezeljünk több állományt. Ilyenkor praktikus a csomagolás vagy archiválás, mely tulajdonképpen egy méret csökkentés nélküli összefűzés egyetlen egy fájlba. Az eredeti állományok természetesen veszteségmentesen visszanyerhetőek, azonban a művelet sokkal gyorsabb mint a tömörítés. Hálózaton, vagy adattárolók között való másolás során lehet praktikus, ahol nagyobb hátrány a be-, kitömörítési idő mint a méret.