A képtömörítési eljárások annak érdekében születtek meg, hogy egy adott kép információtartalmának tárolása vagy továbbítása tömörített formában minél kisebb adattartalommal történjen, ugyanakkor kitömörítést követően minél jobban hasonlítson az eredeti képhez. A tömörítési eljárásokat kodek néven emlegetjük, az eredeti angol elnevezés alapján, ami a coder-decoder rövidítéséből származó codec. Képtömörítésről, illetve videótömörítésről elsősorban a digitalizált, vagy digitálisan létrehozott képek és videótartalmak esetében beszélhetünk. A képtömörítés azon alapul, hogy a legtöbb kép nagy számban tartalmaz ismétlődő elemeket. Ezeket az ismétlődéseket felismerve és felhasználva az azonos információtartalmú képelemek elhagyhatók, így a kép mérete lecsökkenthető. A tömörítés legfontosabb paramétere a tömörítési arány, ami azt fejezi ki, hogy milyen mértékben csökkent a tömörített állomány mérete az eredeti állapothoz képest.
Veszteségmentes képtömörítés
Alkalmazásával csak kismértékű tömörítés, illetve alacsony tömörítési arány érhető el. Előnye, hogy kitömörítés után az eredetivel teljesen megegyező képet kapunk vissza, információveszteség nem lép fel. Az ismertebb veszteségmentes képformátumok közé tartozik a GIF és a PNG is.
Veszteséges képtömörítés
Alkalmazásával nagymértékű tömörítés érhető el, azonban mindez minőségromlással is jár. Az ilyen eljárással készült képek kitömörítése után információveszteség adódik, így az eredeti kép már nem állítható vissza. A kitömörített kép felismerhetősége szempontjából csak a kevésbé lényeges információk vesznek el. Az alapvető cél elsősorban az, hogy a tömörítés során a kép mérete, ugyanakkor a minőségromlása is minél kisebb legyen, sőt ez utóbbit lehetőleg ne is lehessen észrevenni.
A képtömörítési eljárásoknak, a kodekeknek nagyon sokféle típusa létezik, közöttük számos szabványosított módszer is. Természetesen a veszteséges tömörítések típusváltozatai jóval nagyobb számban lelhetők fel, mint a veszteségmentes eljárásoké. Azt, hogy adott alkalmazásnál melyiket célszerű használni, a felmerülő igények határozhatják meg. A tömörítési módszereket két nagy csoportra oszthatjuk: állókép- és videótömörítés. Míg az állókép tömörítési eljárások egy adott pillanatban csak egy bizonyos képre koncentrálnak, addig a mozgókép tömörítési eljárások az egymást gyorsan követő képek, vagyis a videó adatfolyam jellegzetességeire épülnek.
A képtömörítés és a színek
A színes TV, a monitor, és a videokamera is additív, vagyis összeadó színkeverési eljárást alkalmaz, mivel minden szín, illetve színárnyalat megalkotható a három alapszín, azaz a vörös, a zöld és a kék (Red, Green, Blue) megfelelő arányú keverésével. A színek angol nevének kezdőbetűi alapján ezt a színrendszert RGB színkeverésnek nevezik. A képtömörítés során azonban nem ezt, hanem az YUV színrendszert szokták használni, amivel jóval nagyobb tömörítési arány érhető el. Az YUV színkezelési megoldás nem új keletű. A színes televíziózás kezdetéhez nyúlik vissza, amikor meg kellett oldani, hogy a fekete-fehér TV-ken is lehessen fogni a színes adást, az RGB színjelek továbbítására viszont nem állt rendelkezésre elegendő sávszélesség. Az YUV színkeverés is – aminek az alapelveit már 1938-ban lefektették – az RGB színkezelésen alapul, ugyanakkor illeszkedik az emberi látás biológiai jellemzőihez is. Az emberi szem sajátossága, hogy a világosság változásait sokkal jobban érzékeli, mint a színekét, ami egyúttal azt is jelenti, hogy a színváltozás jelentősen tömöríthető anélkül, hogy ezt a szemünk észrevenné. A fekete-fehér TV-k az Y komponens alapján képesek voltak megjeleníteni a képet, a színes TV-k pedig az U és V komponensek alapján elő tudták állítani az RGB színrendszerű képet. Ebből az Y a világosságszint (luminancia), ami a fényerőt határozza meg, az U a kék, a V pedig a vörös színkülönbségi (krominancia) jelet takarja, amik meghatározzák azt, hogy mekkora a világosságszinthez képest a kék és vörös színek fényerejének eltérése. Az U és a V színkülönbségi jeleknek nincs világosságszintjük, csak színinformációt tartalmaznak. A hatékony tömörítést az teszi lehetővé, hogy a világosságszint és a színek tárolása különválik. A kép minden pixelének fényereje tárolásra kerül, de a színek már csak a képpontok egy részénél. A kép betömörítése az RGB rendszerű képnek az YUV színrendszerbe történő konvertálásával kezdődik, majd megtörténik maga a tömörítés. Kitömörítéskor az YUV értékek kerülnek visszaszámolásra az RGB rendszerbe.
A képtömörítés kifejlődése
A tömörítési eljárások kifejlesztése során technikailag egyrészt az emberi látás tulajdonságaiból adódó, másrészt a természetes mozgókép tulajdonságaiból adódó jellemzőket vették alapul. Ezek a következők:
Az emberi látás tulajdonságaiból adódó jellemzők:
- Az emberi szem – a látott kép színösszetételétől függően – jóval érzékenyebb a fényességviszonyok megváltozására, mint a színváltozásokra.
- Jó felbontásra csak álló és lassan mozgó képek esetén van szükség, míg gyors mozgások esetében gyengébb felbontás is elegendő.
- A gyengébb képminőség csak álló és lassan mozgó képek esetében zavaró, míg gyors mozgás vagy hirtelen képváltozás esetében ez kevésbé jelent problémát.
A természetes mozgókép tulajdonságaiból adódó jellemzők:
A mozgókép egymást követő álló képkockákból áll, amelyeknél mind az egyes képkockák között, mind pedig az egyes képkockák képrészletei között található hasonlóság, redundancia. Ha csak a változó képrészleteket tároljuk, akkor a szükséges adatmennyiség nagyságrendekkel kisebb lesz.
A tömörítési arányt meghatározó jellemzők:
- az elhagyható információk mennyisége, milyensége;
- a tömörítő eljárás típusa és hatékonysága;
- a tömörítendő kép statisztikája, azaz mennyi benne a hasonló képrészlet.
A tömörítési eljárás az alábbi módon történik. Az egyes képpontok fényértéke külön-külön tárolásra kerül, a színeké azonban csak bizonyos pixeleknél. Mindezt egy hármas aránypárral jelölik (x:x:x). Ebből az első érték minden esetben azt mutatja meg, hogy milyen széles blokkon (ennek magassága mindig 2 pixel értékű) jelenik meg a színinformáció. A második érték az első sorban, a harmadik érték pedig a második sorban tárolt színinformáció mennyiségét mutatja. Néhány általános értékfelvételről tudunk: a harmadik szám vagy 0 értéket vesz fel (ebben az esetben nincs külön színinformáció megadva a hozzá tartozó sorban), vagy pedig megegyezik a második szám értékével.
Az alábbi képen néhány példát láthatunk arról, hogy az egyes blokkokban milyen értékeket vehetnek fel a világossági és színkülönbségi jelek.
A képeken 4×2-es blokkokban történik a színinformációk tárolása. Az első ábrán minden sorban csak egy-egy színt, a harmadik ábrán pedig csak két-két színt tárolunk. A 4:4:4-es blokkban minden pixel rendelkezik színinformációval. A második ábrán az első sorban kettő, a második sorban pedig 0 színinformáció kerül tárolásra. Ilyen esetekben, ha 0 értéket vesz fel az utolsó sor, akkor mindig az előző sor színinformációit használja.
Ha már a blokkoknál tartunk, néhány szót érdemes bővebben is ejteni róluk. Az egyes tömörítő kodekek minden esetben azzal kezdik a tömörítést, hogy magát a képet blokkokra, azaz kisebb területekre osztják fel. Ezek mérete általában kodekfüggő, de általánosságban elmondható, hogy minél kisebb az egyes blokkok mérete, annál több hasznos információ marad meg, ugyanakkor a tároláshoz szükséges hely is annál nagyobb lesz.
Miután a blokkméretek meghatározásra kerültek, következik az információtartalom elosztása, magyarán annak meghatározása, hogy az egyes területeken milyen mértékben oszlanak el a lényeges információk. Ez legtöbbször a diszkrét cosinus transzformációval történik, ami az egyes területek frekvenciaspektrumát, illetve az egyes képpontok frekvenciáját megmutató mátrix. Minél kisebb frekvenciájú a terület, ahol az adott pixel található, annál lényegesebb információtartalommal bír. A transzformáció elvégzése után a keletkezett mátrixon egy ún. kvantálási műveletet hajtanak végre a tömörítő programok, ami tulajdonképpen egy osztási művelet. Az eljárás során ezeket az osztásokat az összes blokkon elvégzik, aminek eredményeként rengeteg „szám” keletkezik. Innentől kezdve már csak ezeket a számokat kell a lehető legkisebb helyen eltárolni.
(A bejegyzés a www.geeks.hu „Így működik a H.264 kódolás” című cikk alapján készült.)
Állókép tömörítési eljárások
Az állókép tömörítési eljárásokon belül a legismertebb és legelterjedtebb: a JPEG és a JPEG2000.
JPEG tömörítés
A JPEG-et az 1986-ban alakult Joint Photographers Experts Group elnevezésű csoport hozta létre, a tömörítési eljárás is ennek az elnevezésnek rövidítéséből származik. A JPEG a veszteséges tömörítési eljárások közé tartozik, és ez tekinthető a többi tömörítési eljárás alapeljárásának. Ennek ellenére akár 10-100-szoros tömörítés mellett is, nemcsak hogy felismerhető, de élvezhető marad a kép. A tömörítéskor a képet 8×8 pixelből álló részekre osztják, ahol a 64 pixelt együttesen, mint képet (és nem képpontokat) transzformálják le ún. diszkrét cosinus transzformációval (DTC). JPEG esetében mindig állóképek tömörítéséről beszélünk. Kiterjesztései: jpeg, jpg, esetenként jpe.
JPEG 2000 tömörítés
A JPEG 2000 szabvány szintén a Joint Photographers Experts Group nevéhez fűződik, a megjelenés pedig, ahogy arra a neve is utal, 2000-ben történt (pontosabban 2001 januárjában került szabványosításra). A JPEG 2000 mind állóképek, mind mozgóképek tömörítésére alkalmas. A szabvány általános használatához több mint 10 évnek kellett eltelni, ami elsősorban abból adódott, hogy az új szabvány nem kompatibilis a JPEG-gel. Jelenlegi népszerűségét viszont annak köszönheti, hogy az igen nagy felbontású multi-megapixeles kamerák képeinek magasabb képfrissítésű továbbítására más képtömörítési eljárások nem igazán voltak képesek. Bár a JPEG továbbfejlesztése, a tömörítésnél a diszkrét cosinus transzformáció helyett wavelet transzformációt használnak, amely képminőségben és tömörítési hatékonyságban is felülmúlja a JPEG-et.
Ezen túl a szoftver számos olyan tulajdonsággal bővült, ami jóval meghaladja a JPEG tulajdonságait:
- Alkalmas rendkívül nagy, ún. multi-megapixeles felbontású képek tömörítésére.
- Veszteséges és veszteségmentes tömörítésre is képes.
- A JPEG-hez viszonyítva akár háromszor kisebb tömörítési méretet lehet létrehozni, így alkalmazásánál jóval kisebb sávszélességre van szükség.
- A JPEG 2000-el tömörített képek esetében még alacsony minőség esetén sem tapasztalható kockásodás, mint pl. a JPEG esetében. Az adatvesztés kevésbé észrevehető.
- Igen nagy előnye, hogy felbontás váltásra a kép újrakódolása nélkül képes. Internetes megjelenítésnél először alacsony felbontásban töltődik be a kép, majd fokozatosan alakul át egyre jobb felbontásúvá. Ez azt jelenti, hogy a betöltés során a monitor felbontásához igazítja azt, így mindig csak akkora felbontásban mutatja a képet, amekkora a kijelzőé. A sávszélesség igényt ez a funkció is csökkenti.
A JPEG 2000-nek többféle kiterjesztése lehet: J2K, JP2, J2C, JPC, JPX, JPF.
Mozgókép tömörítési eljárások
A mozgókép tömörítés fő célja eredetileg az volt, hogy a nagyméretű videóanyagok tárolása egyrészt gazdaságos legyen, másrészt CD-ken, DVD-ken is lehetővé váljon. Mindezt úgy megoldva, hogy sem látható, sem hallható információvesztés ne keletkezzen az anyagban. A videóanyagok mérete az önálló képekhez képest olyan nagy, hogy gyakorlatilag nincs értelme a tömörítés nélküli rögzítésnek vagy tárolásnak. Ráadásul a tömörítetlen és a tömörített videók közötti minőségkülönbség sem indokolja, hogy ne tömörítsék őket valamilyen módon.
A mozgókép tömörítési eljárásokon belül a legismertebbek: az MJPEG, és a szabványcsaládot képező MPEG (azon belül az MPEG-1, MPEG-2, MPEG-4 és a H.264). A biztonságtechnikai megfigyelő rendszerekben ezek a típusok használatosak. Az eljárások zöme alapvetően arra épül, hogy a mozgókép állóképek sorozatából áll, amelyeknél a közvetlenül egymást követő képek az esetek többségében nagymértékben hasonlóak. Egy videókamera képei között például csak akkor van különbség, ha mozgás történik a megfigyelt területen. Emiatt ha csak a változásokat rögzítjük, a tárolandó videómennyiség mérete lényegesen csökkenthető.
Motion JPEG (MJPEG)
Az MJPEG minden képkockát külön-külön JPEG formátumra tömörít, majd ezeket összefűzi egy videofolyammá. A tömörítési arány képkockáról képkockára változik, ezért nem könnyű megbecsülni az ilyen tömörítési eljárással készülő videók méretét. 5:1 tömörítési arány esetén még igen jó minőségű képet kapunk, 10:1 arány esetén viszont már észrevehető a képromlás. Előnye, hogy alacsony a hardverigénye, így a gyengébb műszaki paraméterű számítógépeknél, digitális rögzítőknél is használható.
MPEG
1988-ban a Nemzetközi Szabványügyi Szervezet, az ISO megalakította a Moving Picture Experts Group nevű munkacsoport, melynek rövidítéséből származik az MPEG név. A csoport feladatául kapta, hogy létrehozza az ekkor már gyorsan fejlődő digitális videók formátum szabványát. Az MPEG szabványcsalád lényege, hogy az eljárás a videó adatfolyamon belül nem tömörít külön-külön minden képkockát, hanem azokat 1-15 képből álló csoportokra osztja. Minden csoport első képkockája egy JPEG eljárással tömörített, jó minőségű referencia képkocka, amely a teljes képinformációt tartalmazza. Az azt követő képeknek csak azon a részletei kerülnek tárolásra és tömörítésre, amelyeken eltérés van. Mivel az egymást követő képek közötti különbség általában nem jelentős, ezért a változás – az esetek nagy részében – jobban tömöríthető, mint az MJPEG kódolással létrehozott videó adatfolyam esetén.
Az MPEG (és a H.26x) szabvány típusai
MPEG-1
1993-ban jelent meg. 352×288-as felbontású képpel dolgozik (VHS videóminőség), és 25 frame/sec képfrissítés esetén a képátvitel sebessége 1.5 Mbit/s. Az MPEG-1 formátum csak a progresszív mozgóképek kódolására használható, és a tömörítés bitsebessége állandó. Tulajdonképpen a VHS minőségű digitális videók szabványáról beszélhetünk. Lehetővé tette, hogy egy 74 perces film elférjen egy videó CD-n. A tömörítési formátum hátránya – mai szemmel nézve az alacsony felbontás mellett –, hogy olyan videójeleneteknél, ahol nemcsak a személyek és a tárgyak, hanem a háttér is gyorsan mozgott, gyenge képminőséget eredményezett.
Az MPEG-1 alapja az ITU (International Telecommunication Union) telekommunikációval és távközléssel kapcsolatos nemzetközi szabványosításra szakosodott szervezetének, az ITU-T-nek a videotelefon és videokonferencia alkalmazásokhoz kifejlesztett szabványa volt, ami H.261 néven jelent meg. Erre építve és továbbfejlesztve jöttek létre a további MPEG szabványok. Az MPEG munkacsoport és az ITU a későbbiekben hol egymástól függetlenül, hol egymással együttműködve fejlesztette a digitális videótechnikára vonatkozó szabványait. Minden H.26x szabvány egyben ITU szabvány is.
MPEG-2
Tartalmilag megegyezik az ITU-T által fejlesztett H.262 szabvánnyal. A kodek jóval bonyolultabb, mint az MPEG-1 esetén. Ezt a szabványt a műholdas-, a kábeles- és a földi terjesztésű digitális műsorsugárzás számára (DVB), illetve a DVD alkalmazásokra készítették 1994-ben. Az elődjénél nagyobb felbontásban és változó bitrátával képes tömöríteni. A szabvány lehetővé teszi az adatátviteli sebesség és egyúttal a tömörítés széles tartományban történő változtatását 1,5 Mbit/sec-től egészen 40 Mbit/sec-ig. Az analóg TV-jel (PAL) legjobb felbontásánál (720×576-os képméret), 25 frame/sec képfrissítésnél a tipikus adatátviteli sebesség 4-10 Mbit/sec. Lassan két évtizede lesz annak, hogy ez a szabvány piacra került, ám a hagyományos DVD lejátszók esetében még mindig ezt alkalmazzák. Az MPEG-2 alkalmas a nagyfelbontású televíziós technológia, a HDTV (1920×1080-as felbontás) elvárásainak kielégítésére is, annak ellenére, hogy a megjelenésekor ezzel még nem számoltak.
H.263
Bár ez az 1995-96-ban kifejlesztett tömörítési formátum nem videómegfigyeléshez készült, néhány szóban érdemes megemlíteni. Eredetileg videokonferencia beszélgetésekhez fejlesztette ki az ITU-T, de széles körben a mobiltelefonoknál került alkalmazásra. A technológia lényege, hogy állandó és rendkívül alacsony bitrátával tömörít. Sajnos, ha a videón gyorsabban mozgó objektumok vannak, a képminőség is gyenge.
MPEG-3
Ez a szabvány alapvetően arra készült volna, hogy a HDTV alkalmazásokban használják, de a fejlesztés során kiderült, hogy az MPEG-2 szabvánnyal is kielégíthetőek a nagyfelbontású televízióra vonatkozó elvárások, ezért végül okafogyottá vált az MPEG-3 kiadása.
MPEG-4 csoport
Az MPEG-4 tulajdonképpen nem egy önálló szabvány, hanem egy közel 30 részből álló szabványcsoport. Kialakításuk 1998-ban kezdődött. Ezek közül a legismertebb, és a videómegfigyelés területén is leginkább használt két rész-szabvány az MPEG-4 Part 2, vagy más néven MPEG-4 ASP, valamint az MPEG-4 Part 10, vagy közismert nevén a H.264.
MPEG-4 Part 2
1999-ben bevezetett szabvány. Amikor egy kamerarendszernél MPEG-4 tömörítésről beszélünk, akkor az valójában az MPEG-4 Part 2 formátumot jelenti. A képsebességet már nem korlátozták 25/30 frame/sec-ra. Kifejlesztésének elsődleges célja az alacsony – jellemzően 5 kBit/sec-től 4 Mbit/sec-ig terjedő – bitsebességű videótartalmak kódolása volt. Képet és hangot egyaránt lehet vele kódolni, illetve tömöríteni. Erőforrásigénye jóval nagyobb, mint elődjének, az MPEG-2 formátumnak. Televíziós programoknál, videótelefonoknál, webes médiafolyamoknál történő alkalmazása mellett néhány éve még ez volt a digitális rögzítők és az IP kamerák jellemző tömörítési eljárása.
H.264 vagy MPEG-4 Part 10 vagy MPEG-4 AVC
A fentebb tárgyalt MPEG-4 Part 2-es szabvány továbbfejlesztett verziója a H.264, más néven MPEG-4 Part 10 vagy MPEG-4 AVC, amelynek első kiadása 2003-ban jelent meg. Kifejlesztése az ITU alá tartozó VCEG (Video Coding Experts Group) és az ISO alá tartozó MPEG csoport által 2001-ben létrehozott közös szervezet, a Joint Video Team nevéhez fűződik. Bár az MPEG-szabvány részének tekintendő, a tömörítési eljárás mégis jelentősen különbözik az előzőektől. Rendkívül nagy tömörítési aránnyal dolgozik: az MJPEG-hez képest 80%-kal, az MPEG-4-hez képest pedig akár 50%-kal tudja lecsökkenteni a fájlméretet minőségromlás nélkül. A H.264 jelenleg a legfejlettebb tömörítési szabvány, ezzel lehet elérni a legtakarékosabb sávszélességet, és ez az, amivel a legkisebb tárhely igényű tömörített anyagokat tárolni lehet. A H.264-et kifejezetten az interneten történő videólejátszásra fejlesztették ki, de az elmúlt 1-2 évben a digitális rögzítőknél és a hálózati kameráknál egyaránt általánossá vált. H.264 kódolást használ a YouTube és az Apple QuickTime programja. A Blu-ray lemezek filmjei és a netről letölthető MKV videók szintén ezzel az eljárással készülnek, de az IPTV-s, illetve a 3D-s anyagok kódolására is alkalmas. A szabadalmak körüli hercehurca miatt a Google Chrome böngésző, valamint a Firefox és az Opera nem támogatja, a Safari és az Internet Explorer viszont igen.
Jellemzői:
- A H.264 egy nyílt szabvány, ami csak az eszköztárat határozza meg, míg a tömörítés konkrét menetében szabad kezet ad a fejlesztőknek, és lehetőséget biztosít arra, hogy a program kompatibilis maradjon a legkülönfélébb eszközökkel.
- A szabvány a konfigurációs paraméterek mellett számos profilt, és a profilokon belül még különféle szinteket határoz meg. A profilban az került meghatározásra, hogy a tömörítés során milyen eszköz, eljárás, kódolás, sorkiolvasás stb. engedélyezett, illetve milyen nem, a különféle szinteknél pedig az, hogy az adott profilok esetében mi a megengedhető legnagyobb felbontás, pufferméret, bitráta, és a másodpercenkénti makroblokk szám.
- Progresszív és váltott soros videó-felbontásra is alkalmazható.
- A 128×96 (sub-QCIF) felbontástól a nagyfelbontású HD videókig is használható.
- A változásokat nemcsak a referenciaképekhez viszonyítva adja meg, hanem akár tetszőleges előző 32 képhez is.
- A tömörítés során a már korábban említett kvantálást nem kell az összes blokkra elvégezni, hanem a szomszédos blokkok információtartalma alapján is meg lehet becsülni az éppen elemzett blokk tartalmát. Tárolásra csak a becslés alapján kapott és a tényleges értékek közötti különbség kerül.
- Digitális földi és műholdas HDTV adatátvitelre egyaránt használható.
- 200:1 arányú tömörítés mellett is olyan minőségű tömörített anyagot kapunk, ami lejátszáskor szinte nem különböztethető meg az eredetitől.
A H.264 szabvány profiljai közül a három legfontosabb a Baseline, a Main és a High profil. A digitális rögzítők és az IP kamerák gyártói eszközeikben többnyire a Main profilt használják. A High profil alkalmazása ritkább, ugyanakkor ez az a profil, amivel sokkal jobb minőségű tömörítést lehet elérni, mint a Main profillal. Mivel ilyenkor az alkalmazott processzor és egyéb videójel feldolgozó áramkörök is magasabb minőségi kategóriába esnek, ezért az ilyen eszközök árszintje is magasabb.
MJPEG vagy H.264?
Az eddig leírtak alapján azt feltételeznénk, hogy a H.264 tömörítés minden szempontból jobb eredményt ad, mint a sokkal régebbi fejlesztésű MJPEG. Bár általában jóval hatékonyabb eredmény érhető el a H.264 tömörítési szabvánnyal, bizonyos esetekben mégis az MJPEG bizonyul jobb választásnak.
Ez sok mozgást, illetve változó fényviszonyokat tartalmazó videók esetében jelentkezik, hiszen ilyenkor minden képkocka más. Az előző képeket nem lehet referenciaként venni, nem lehet csak a különbségeket továbbítani, így a H.264 elveszíti az ebből adódó előnyét. Mivel az MJPEG képkockánként külön-külön dolgozza fel a videóanyagot, így olyan esetekben, amikor a kamera mozgó járműre, erős szélnek kitett oszlopra van telepítve, vagy olyan területet figyel meg, ahol jellemző az állandó mozgás és a fényviszonyok sűrű változása, az MJPEG sokkal gazdaságosabb és hatékonyabb tömörítési módszernek bizonyul.
Minden jog fenntartva. Copyright © Oktel Kft. 1998-2018