Veszteséges tömörítés Nyitrai Péter (FHCHC7) 2014. 06. 25.
A tömörítés egy olyan eljárás, melynek során egy fájlból kisebb méretű, de lényegében azonos információt tartalmazó fájl jön létre. A tömörítés igénye elsődlegesen nem az adattárolás miatt merült fel, hanem a számítógépes adatátvitel gyorsabbá tétele volt a cél. A számítógépes hálózatok megjelenése volt az, ami arra sarkalta a kutatókat, hogy a rendelkezésre álló átviteli közegen, egységnyi idő alatt minél több hasznos információt vigyenek át. Ez nem csak az adatátviteli közegek lassúsága miatt volt fontos, hanem sokszor gazdaságossági vonatkozásai is voltak: hiszen egyes vonalak használatáért a felhasznált idő függvényében kell fizetni. A matematikusok csakhamar olyan algoritmusokat alkottak, amelyek segítségével az adatokat tömörítették és a kevesebb byte-ot nyilván hamarabb el is tudták a hálózaton küldeni. Ilyen esetekben az átviteli költségeket jelentősen lehet csökkenteni tömörítés segítségével.
Alapvetően kétféle adattömörítési megoldás létezik: 1, Ha a tömörített fájlból teljes mértékben visszanyerhető az eredeti fájl minden egyes bit-je, akkor a tömörítést veszteségmentesnek nevezzük. Az adathalmaz mérete csökken amellett, hogy annak minősége bármilyen módon változna; adatvesztés nem következik be. Az eljárások között azok jobbak, melyek nagyobb tömörítést érnek el. A veszteségmentesen elérhető méretcsökkenés tipikus mértéke 15%–50%. Ez a tömörítési típus általánosan alkalmazható, minden fájltípusra. Pl.: ARJ, ZIP, RAR A tömörített adathalmazból később egy fordított eljárással pontosan visszanyerhető az eredeti adat. Az olyan adatoknál, mint pl. a szöveges dokumentumok, követelmény a veszteségmentes tömörítés, hiszen akár egyetlen bit változás is megváltoztathatja a szöveg jelentését. 2, Ha a tömörített fájlból nem nyerhető vissza teljes mértékben az eredeti fájl, akkor veszteséges tömörítésről beszélünk. A veszteséges tömörítés az adattömörítési algoritmusok egy fajtája. 1
A veszteségmentes tömörítéssel ellentétben ez nem teszi lehetővé a tömörített adatból az eredeti adatok pontos visszaállítását, de egy megfelelő rekonstrukciót igen. Sokszor a csekély, a felhasználó számára nem észrevehető veszteség megengedhető. Ezekben az estekben a tömörítés hatásosságára széles választékból válogathatunk attól függően, hogy inkább kevéssé tömörített jó minőségű vagy jobban tömörített, de nagyobb veszteséget okozó tömörítési eljárást kívánunk alkalmazni. A képek vagy hangok tömörítésénél egyúttal az emberi érzékszervek érzékenysége határozhatja meg az adattömörítés módját, hiszen megengedhető olyan veszteség, amely olyan változást okoz, ami számunkra nem észrevehető. A veszteséges tömörítési eljárások általában hatékonyabbak, (kisebb méretű fájlt állítanak elő), de nem minden esetben alkalmazhatóak.
Veszteséges tömörítésre két alapvető koncepció létezik: Az egyik esetben (az ún. veszteséges transzformációs kodekekben) a forrásból mintavétel történik (lehet ez hang, kép stb.). A mintát új bázistérbe transzformálják, majd kvantálják. A végeredményt entrópia-kódolásnak (például Huffman-kódolás) vetik alá. A másik esetben (a veszteséges prediktív kodekekben) az adott mintát megelőző és/vagy követő minták segítségével próbálják megjósolni az aktuális hangmintát vagy képkockát. A megjósolt adat és a valós adat közti eltérést (a jóslás reprodukálásához szükséges egyéb információkkal együtt) kvantálják és kódolják. Egyes rendszerekben a két technikát kombinálják, és transzformációs kodekkel tömörítik a prediktív kodek hibajelét.
a A veszteséges módszerek használatának az az előnye veszteség-mentes módszerek-
hez képest, hogy sokkal kisebb méretű fájlt képes előállítani, mint bármely veszteségmentes, és így is megfelelő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ó képminőség-romlá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 leginkább. A veszteségesen tömörített fájl bitszinten teljesen különböző lehet az eredetitől, ugyanakkor az emberi fül vagy szem számára nehéz megkülönböztetni őket. A legtöbb vesz2
teséges tömörítő figyelembe veszi az emberi test speciális tulajdonságait, pl. a szemünk felbontóképességét, a látható fény frekvenciatartományát, vagy a fülünk pszichoakusztikus tulajdonságait, ami meghatározza, hogy egyes hangokat hogyan hallunk.
Tömörítések elve: A tömörítések többek között a fájlban levő ismétlődéseket használják ki. Azok a fájlok, amelyek nem eléggé ”rendezettek”, kevésbé tömöríthetőek. Például jól tömöríthető egy szövegfájl, de egy tömörített fájl pedig szinte egyáltalán nem tömöríthető tovább. Egyszerű példa: Eredeti adatsor: 3,7,6,6,6,6,6,6,6,9,3,5,1,1,1,1,8 ( 17 db szám) Veszteségmentesen tömörített: 3,7,0,7,6,9,3,5,0,4,1,8 (12 db szám, melyben a nullást az ismétlődések jelölésére használjuk.) Veszteségesen tömörített: 3,7,6,9,3,5,1,8 ( 8 db szám, de az ismétlődések nincsenek jelölve, így ez az információ elveszett.)
3
Veszteséges tömörítési módszerek:
1, Képek tömörítésének elve: a, Diszkrét koszinusz transzformáció A diszkrét koszinusz transzformáció (discrete cosine transform - DCT) célja, hogy a lényegtelen információt kiszűrje. Mivel a jelek alacsony frekvenciás összetevőire koncentrál, nagy tömörítési hatásfokot lehet vele elérni. A DCT lényegében egy valós számokon értelmezett a diszkrét Fourier transzformációs eljáráshoz hasonló transzformáció. A képet leggyakrabban 8x8 képpontból álló tartományokra bontja, majd diszkrét koszinusz transzformációval kétdimenziós frekvenciasíkba transzformálja az adatokat. A szürkeárnyalatos képek esetén így akár 1:60 tömörítési arányt is el lehet érni. Diszkrét koszinusz transzformációt alkalmazó raszter formátumok: JPEG, FIF. b, Wavelet tömörítés Wavelet-ek legnagyobb előnye, hogy viszonylag alacsony számítási kapacitást igényelnek. Elsődlegesen rekurzív szűrések sorozatából álló algoritmusa nagyban hasonlít a DCT algoritmusához. A diszkrét wavelet transzformáció a képek 2N méretű adattartományonként egy ugyanilyen dimenziójú méretű kimeneti tartományba transzformálja át. Raszteres terepmodellek esetében a DCT-nél is jobb tömörítési arány érhető el. c, Fraktál tömörítés A fraktál tömörítés algoritmusa a képek azonos és/vagy hasonló részleteit keresi ki, mivel a képek többsége kellően redundáns ezért ezzel az eljárással igen nagy tömörítés érhető el. Gyakorlati életben kevésbé elterjedt, mivel az ismétlődő vagy hasonló képrészleteket megtaláló algoritmus hosszadalmas és nagy számítási igényű. Elérhető tömörítési arány 1:100-oz , de akár 1:1000-es tömörítés is elérhető segítségével.
2, Hangtömörítés: A hangtömörítési eljárások nagy része veszteséges tömörítés, vagyis a tömörítés folyamán információ vész el: a cél az, hogy ez az információvesztés ne okozzon hallható minőségromlást, illetve, hogy a minőségromlás minél kisebb legyen. Az, hogy ezt a célt mennyire sikerül elérni (vagyis hogy egy adott mértékű tömörítés esetén mekkora a minőségromlás) határozza meg az eljárás sikerességét, jóságát. (Szigorúan véve ezen eljárások nem adattö4
mörítések, hanem lényegtelen adatokat mellőző kódolások (irrelevance coding), mivel adatvesztést okoznak.) A módszer lényege az úgynevezett pszichoakusztika, vagyis hogy az emberi fül nem minden létező hangot hall meg, illetve nem minden hangmagasságra egyformán érzékeny. Az eljárások megpróbálják a kevéssé hallott, vagy nem hallható részeket elhagyni, vagy beolvasztani a jobban hallható részekbe úgy, hogy ezzel adatcsökkenést tudjanak elérni. Mivel a kódolások adatvesztéssel járnak, és az eltérő eljárások eltérő módon okoznak adatvesztést, minden ezen eljárásokkal kódolt hanganyag (veszteséges tömörítéssel való) újrakódolása vagy átalakítása jelentős minőségromlást eredményez.
Fajtái: a) MP3 A németországi Fraunhofer Intézet 1987-ben hatékony hangtömörítési eljárás, az úgynevezett perceptuális audiokódolási rendszer kifejlesztésébe fogott. A kitűzött célt végül Dierter Seitzerrel együttműködve érték el: megszületett az ISO MPEG 1 Audio Layer 3, közismert nevén az MP3. Az MP3 jelenleg az egyik legelterjedtebb formátum. 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. 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ő szerint számos különböző változata lehet. Az érzeti kódolást az emberi fül jellemzőire alapozták. Mivel a fülünk adott frekvenciatartományban csak a leghangosabb jeleket érzékeli, ezért a digitális jelet feldarabolták frekvenciasávokra (MPEG Layer 3 esetén 22 sávra), majd a kapott darabokban a leghangosabb jeleket meghagyták, az ezek által elfedett többit pedig egyszerűen eldobták. A különböző frekvenciákat különböző pontossággal tárolják, mert például az emberi fül legjobban a 2 kHz és 5 kHz közötti jeleket érzékeli, ez alatt és felett erősen csökken az érzékenysége, tehát ott kevésbé fontos a pontosság. A tömörítési módok közül az alábbiakat választhatjuk: Állandó bitráta (Constant bitrate CBR) Ez az eredeti tömörítési mód; 128 Kbps már jó, 196 Kbps már kiváló minőséget ad. Előnye, hogy kiszámítható előre a létrejövő mp3 fájl hossza, és minden lejátszó le is tudja játszani. Változó bitráta (Variable bitrate VBR) 5
A lényege, hogy a zeneszám összetettségétől függően tömörít, bonyolult részeket kevésbé, egyszerű részeket, szüneteket jobban. Egy csúszka segítségével beállíthatjuk a tömörítés minőségét. Előnye a kisebb fájlméret ugyanolyan minőség mellett, hátránya, hogy sajnos nem minden mp3 lejátszó támogatja a VBR-t, továbbá kódolás előtt nem tudjuk előre, milyen méretű lesz az mp3 fájl. Átlagos bitráta (Average bitrate – ABR) Megadható a fájl átlagos bitrátája (pl.: 196 Kbps), de ez csak az átlag, valójában a tartalomtól függően változik a tömörítés mértéke ezen belül. Csatornák A mono beállítás azt jelenti, hogy az mp3 fájl csak egy hangcsatornát tartalmaz. Egyesített sztereó (Joint Stereo) beállítás azt jelenti, hogy az enkóder kihasználja tömörítéskor a két csatorna hasonlóságát, és ami megegyező, azt csak egyszer tömöríti, de azért sztereo mp3 hangfájlt hoz létre. A sztereó (Stereo) beállítás azt jelenti, hogy az mp3 fájl két független hangcsatornát fog tartalmazni. A teljes bitráta nem fele-fele alapon osztozik a csatornák között. A kettős sztereót (Dual Stereo) inkább kettős mononak kéne nevezni, azért, mert ez két kompletten elszeparált csatorna, ahol mindegyik csatorna a teljes bitráta felét fogja tartalmazni. b) ADPCM A PCM egyik bonyolultabb és tömörebb változata az ADPCM (Adaptive Delta Pulse Code Modulalton - adaptív differenciális impulzuskódolású moduláció). Az ADPCM esetében nem az aktuális értékeket, hanem az egymást követő minták különbségét tároljuk. Az így tárolt hanghullámot a kezdőpontból kiindulva a változások ábrázolásával állítjuk elő. Az ADPCM egy 4 bites skálatényező értéket rendel a mintához, és ha ezzel megszorozzuk az előző minta amplitúdóját, megkapjuk az aktuális minta amplitúdóját. A 4 bites ADPCM esetén 16 skálatényezőnk szabályozza a hullámforma alakját, míg a 8 bitesnél 256, ami már garantálja a minőséget. c) OGG Az Ogg Vorbis teljesen nyílt fejlesztésű audioformátum, jelenleg az MP3 legerősebb vetélytársa. Az MP3-hoz hasonlóan veszteséges tömörítési eljárással dolgozik, ám sokkal kifinomultabb akusztikai modellt használ, és más matematikai elvek alapján tömörít, így a hasonló bitrátájú MP3-énál jobb minőséget eredményez. 6
d) ATRAC A SONY által a kilencvenes évek elején kidolgozott, közel CD-minőséget nyújtó tömörítőkodek. Legfőbb felhasználási területe a MiniDisc formátum, ahol ennek segítségével rögzíthetünk egy teljes CD-nyi anyagot az aprócska, mindössze 2,5” lemezen. A kodek legújabb változata az ATRAC3 névre hallgat, és még nagyobb arányú tömörítést tesz lehetővé. Ezt használják például egyes drágább MiniDisc felvevők az MDLP (MiniDisc Long Play) felvételekhez, bizonyos hordozható audiolejátszók és többek között olyan internetes zenei alkalmazások, mint például a Liquid Audio és Real Audio .
3, Mozgóképtömörítés: A mozgókép-tömörítési eljárások fő célja, hogy a nagyon nagy méretű video anyagok méretét csökkentse, és így gazdaságosabbá tegye tárolásukat, illetve lehetővé tegye azok tárolását korlátozott kapacitású médiákon (mint amilyen a CD és a DVD).Szinte mindegyik veszteséges tömörítés. Az eljárások alapelve a legtöbb esetben az, hogy a mozgókép egymást követő álló képkockákból áll, és ezek gyakran csak kevéssé térnek el az őket megelőző, őket követő képkockáktól; ha csak a változást tároljuk le, akkor a szükséges adatmennyiség nagyságrendekkel csökkenthető. Az eljárások abban különböznek, hogy milyen módon igyekeznek megtalálni ezen hasonlóságokat és eltéréseket; milyen módon határozzák meg azt, hogy az eredeti képet, vagy pedig az előzőektől való különbséget használják. a, Az MPEG eljárás Az MPEG videokódolás meglehetősen összetett algoritmust követ. Az MPEG kétféle képkódolást használ, egyet az állóképként való tömörítésre (intraframe), és egyet a képek közötti összefüggések leírására (interframe). Ehhez a három típushoz adtak hozzá még egy negyediket is, amely az kép egy speciális változata. A kódolási folyamatban ezen két módszer természetesen együttműködik, nem lehet éles határvonalat húzni a kettő közé. Az ábra mutatja a képkódolás menetét.
7
Tömörítetlen képkocka
Képelőkészítés
Mozgás kompenzáció
Színkonverzió
Transzformációs kódolás
Kvantálás
Cik-cakk rendezés
Futamhossz kódolás
Bináris kódolás
Binárisan tömörített kód
Az MPEG-1 szabvány 1992-ben készült el az MPEG első ajánlása az MPEG-1. A fő cél olyan kódolási technika kifejlesztése volt, amely támogatja az audio és videó jelek számítógépes feldolgozását. A fejlesztők sztereó hangot, kétfajta felbontású képméretet, maximum 30 képkocka/másodperc képváltási sebességet és jó minőségű lejátszást garantáltak az ajánlásukban. Mivel akkoriban az 1x CD-ROM volt elérhető a piacon, ezért erre a sebességre optimalizálták a lejátszást. (1.5 Mbit/s) Az MPEG-2 szabvány Az MPEG fejlesztők 1993 novemberében publikálták az MPEG-2 Bizottsági Tervezetét, amely 1994 óta egy általánosan alkalmazott nemzetközi szabvány. Céljuk a jó minőségű videók kódolásának támogatása, mint például a műholdas műsorsugárzás megvalósítása. A sávszélesség 2 és 15 Mbit/s között mozog, a felbontás négyszer nagyobb, mint az MPEG-1nél. A kódolás és dekódolás is bonyolultabb lett, ezért a lejátszáshoz kb. tízszer akkora számítási igényre van szükség. Az MPEG-2 képes kezelni az átlapolt (interlaced) megjelenítésű videókat is. A megjelenítés sebessége továbbra is 25-30 FPS. A hangminőség továbbra is CD 8
minőségű, ám több csatorna használatát is lehetővé teszi, ezáltal támogatja a térhangzást is. A kódolási eljárások és technikák nagy része az MPEG-1-re épül, megegyezik azzal. Az MPEG2 felülről kompatibilis, tehát az MPEG-2 képes kezelni az MPEG-1 adatfolyamokat is. Az MPEG-3 szabvány Az MPEG-3 célja a HDTV (High Definition Television) alkalmazások kiszolgálása, méghozzá 1920x1080 felbontású és 30 FPS sebességű megjelenítés felhasználásával. A bitarányt 20-40 Mbit/s nagyságúra tervezték. Később rájöttek, hogy az átviteli arány finomításával az MPEG-2 is képes ezeket a paramétereket kezelni. A lényeg az, hogy meg kellett találni a kompromisszumot a mintavételezés és az átviteli sebesség között. Ma már a HDTV az MPEG2 High 1440 szint ill. a High szint része, ezáltal az MPEG-3 az MPEG-2 részévé vált. Az MPEG-4 szabvány Az MPEG-4 szabvány 1998-ban jelent meg és ez alapjaiban változtatta meg az eddigi videó kódolási technikákat. Ez az új szabvány egységes keretbe foglalta a kommunikációt, a mozit és a multimédiát. Az MPEG-4 célja az igen alacsony átviteli sebességű, kisfelbontású interaktív mobil kommunikáció, a videotelefónia, a mobil audiovizuális kommunikáció, a távérzékelés, a multimédiás elektronikus levelek, az elektronikus újságok, az interaktív multimédia adatbázisok, a játékok valamint a multimédiás videotex területén működő mozgóképek kódolása volt. Az átviteli arányt 2 kbps és 64 kbps közé optimalizálták, amíg a felbontást 176x144 képpontra, míg a képváltási sebességet 10 FPS értékűre tervezték. Ez az első olyan szabvány, amely bevezeti az interaktivitást az addigi passzív szemléltetés helyett. Innentől kezdve a képkockákat nem szín- és hangadatok összességeként kezelik, hanem audiovizuális objektumok egymáshoz kapcsolódásaként tekintenek rá. A dekóder ezekből az objektumokból képes a képkocka eredeti tartalmának összeállítására. Ezen objektumok bizonyos tulajdonságai megváltoztathatóak, ilyenek például a hely mérete, sebessége, emellett akár törölhetjük és be is szúrhatjuk őket egy adott képkockába. Az interaktivitás megvalósításához szükséges volt új kódolási eljárások kidolgozása, amelyek olyan objektumokat írnak le, amelyek igazodnak az ember gondolkodási sémáihoz, mivel az általunk kódolni kívánt adatok jelentéssel bíró összefüggések, kompozíciók összessége. Ehhez a teljesen új kódolási eljáráshoz a korábban alkalmazottakhoz képest teljesen új adatstruktúra kifejlesztésére volt szükség. Az MPEG-4 támogatja a sztereovizuális kódolást, tehát a két szemünkkel látott különböző képeket egy adatfolyamba tudja integrálni, így akár egy jelenet (szekvencia) több különböző nézőpontból felvett képét is képes magába foglalni (virtuális valóság). Másik nagy elő9
nye az MPEG-4-nek, hogy a természetes és a mesterséges képtartalmak tetszőlegesen keverhetőek egymással. b) Az AVI eljárás Az AVI (Audio Video Interleaved) a Video for Vindows standard állomány típusa. Az AVI állományokban az audio- és videoadatok egymásután követik egymást. A hangadatokat WAVE formában, a képeket DIB formátumban tárolja. A DIB (Device Independent Bitmap) egy olyan eszközfüggetlen pontmátrixos képtípus, amelyet a Windows megjelenésekor fejlesztettek ki a multimédiás tartalmak támogatására. A BMP-hez hasonlóan az ilyen módon előállított kép is független a videokártyától és 24 bit színmélységű. Az AVI-ban a képeket nem állóképek sorozataként tároljuk, hanem egy teljes képből kiindulva a következő képkockák (frame) mindig csak az azt meglőző képkockától mért különbéget tartalmazzák (lásd MPEG). Fontos kérdés, hogy mekkora az a legkisebb különbség két egymás utáni képkocka között, amelyet még változásnak tekintünk. Ez a küszöbérték hatással van a tömörítési aránytényező nagyságára, valamint a kép minőségére is. Alacsony küszöbérték esetén kismértékű változást is érzékel, ebből kifolyólag a deltakeret kicsi lesz, míg a tömörítési aránytényező nagynak adódik. Magas küszöbérték jelentős mértékű változásnál nagy, de ritkán előforduló deltakeretet eredményez jó tömörítési hatékonyság mellett, viszont a kép gyengébb minőségű lesz. A pszichovizuális – emberi látás tulajdonságait figyelembe vevő – elvek a figyelembe vételével megállapítható egy helyes küszöbérték. Az AVI állományok előállítása lehetséges külső videoforrásból videodigitalizáló kártya segítségével, vagy néhány animáció készítő, videoszerkesztő programnak is lehet ilyen formátumú kimenete. A lejátszás során a kitömörített videoadatok a videokártya felé, az audioadatok a hangkártya felé áramolnak. A két részfolyamat időben összehangoltan játszódik le, ezt szinkronizálásnak nevezzük. A digitalizált videoklippek képeinek felbontása 160*120, 192*144, 320*240 képpont, színmélység általában 8 bit. c) DivX A DivX Networks Inc. által kifejlesztett videó kodek (mozgókép-tömörítési eljárás), amely főként arról ismert, hogy képes jelentősen összetömöríteni terjedelmes videókat, és így az írásvédett DVD-k sokszorosításával és kereskedelmével kapcsolatos botrányokkal került az érdeklődés középpontjába. Az újabb DVD-lejátszók már képesek lejátszani a DivX-es filmeket is. 10
Egy átlagos film a DVD-n 5-6 GB nagyságú, de DivX-szel akár 600 MB-ra is összetömöríthető, mely így már kényelmesen elfér egy CD-n is. A veszteség elhanyagolható, kivéve a gyors, pörgős, akciódús jeleneteket. Számos program látott napvilágot, amely arra szolgál, hogy DVD-ről egy DivX-es fájlba merevlemezre mentse, optikai tárolóra írja a DVD tartalmát (rippelés). A video adatfolyamok ilyen nagymértékű tömörítését úgy érik el, hogy kihasználják az egymás után következő képkockák hasonlóságát. A képkocka tömörítése során pedig nemcsak egyszerűen egy JPEG vagy JPG kódolást használnak, hanem úgy kódolják le az adott képkockát, hogy „ez olyan mint az előző képkocka, csak itt meg itt meg itt más”. Sőt, a jelenlegi képkockát a következőhöz is szokták viszonyítani, hisz ahhoz is valószínűleg nagyon hasonló. Ha két képkocka hasonló, akkor pedig azt kevesebb bittel le lehet írni, hogy miben különböznek. Ezt a módszert egyébként az MPEG szabványban írták le először.
Források: http://users.atw.hu/blamk/tomor.htm http://hu.wikipedia.org/wiki/Veszteseges_tomorites http://www.tankonyvtar.hu/hu/tartalom/tamop425/0038_informatika_Muholdas/ar01s27. html http://www.hang-kep-tan.eu/HUN/index.php?action=showarticle&art_id=167 http://www.bgk.uni-obuda.hu/~tkt/segedanyagok/valaszthato/multi24.pdf
11