Iformácós redszerek elmélet alapja Iformácóelmélet
Glbert-Moore Szemléltetése hasoló a Shao kódhoz A felezőpotokra a felezős kódolás A felezőpot értéke bttel hosszabb kfejtést géyel /2 0 x x x p p 2 p x Ide kerüljö a felező leálláskor bttel hosszabb kód p /2 legye bee 0 0 0 0 Az tervallum felezőpotjára felezéses kódfa, leáll ha egyedül marad, 0 206.04.8. Molár Bált, Beczúr Adrás 2
p Q,,Q,, p p l cseek redezve az tervallumok felezőpotja A kódját (mt Shao - Fao kódál) felezésekkel építjük fel. H 2 206.04.8. Molár Bált, Beczúr Adrás 3
Molár Bált, Beczúr Adrás Glbert-Moore hosszba kfejtése bárs üzeetre voatkozó kód az Az 2 2 2 2 Legye 2 kódszó, val.szg.- ek szert em a pl. alfabetkus, tetszőleges sorredbe redezhetők jele A forrás kmeet 2 2 2 2 2 l -l l u u p u p u p u p, u p u p, u p u p l u legth u
Példa Glbert-Moore kódra Molár Bált, Beczúr Adrás
Huffma kód Optmáls kód: Rekurzív felépítés az eloszlás elemszáma szert q,,q p A a p,, p p s s, p s legye q kódja : 0, p s s kódja legye azoos hosszú, Huffma kódot, smerjük az eloszlást, p s p,, p s s re, legye p :, alakú. p s q s, p eloszlásra s a két legksebb készítjük el ω 0 P - P Molár Bált, Beczúr Adrás
Huffma kód A két legksebb val.szg-ű forráskód szmbólumot összevojuk, ezzel az üzeet abct egy szmbólummal csökketettük. Újra redezzük, majd megt a két legksebb val.szg-ű forráskód szmbólumot összevojuk. Ezt smételjük rekurzív módo, addg, amíg az üzeet abc két szmbólumra redukálódk, ezeket a szmbólumokat a bárs kód 0 lletve szmbólumával jelöljük meg. Ezek utá a rekurzív eljárást megfordítjuk, vsszafelé meve 0 lletve szmbólumokat kokateáluk a kódszavakhoz, azoko a potoko, ahol előbb két kódszót összevotuk. Molár Bált, Beczúr Adrás
Huffma kód Állítás: A prefx kódok között a Huffma kód optmáls Bzoyítás: dukcóval p l Bármely más prefx kód H Vegyük tetszőleges,,, prefx - metes kódot p,, p akkor cseréljük fel. Ezzel a Összevova p Ha em a leghosszab kódok tartozak hozzájuk, Átredezhetjük a leghosszabb p l p l, p, p kódja 0, legye. vezettük vssza. p Huffmakód - hez p p q -, p, legye a két legksebb érték kódhossz várható értéke em ő kódokat(párba vaak), hogy t, a feladatot eggyel rövdebb eloszlásra Molár Bált, Beczúr Adrás
Molár Bált, Beczúr Adrás Huffma kód N H ~ N H,, H N, H N,, H,, H,, l N m l m N x H jutó kódhossz, az egy szmbólumra Mvel várható értékű kódhossz. elérhető vagy a Shao - Fao kóddal Huffma kóddal, együttes eloszlásához a A elő szer fordul gyakorságok vaak : Ha - t. a - re közelít N várható értéke jutó kódhossz Egy szmbólumra eloszlás
Nevezetes kódok Tetszőleges közel tuduk me a C /H sebességgel, ha agyo sok hosszú kódsorozatot kódolok egybe. Nagyo agy kódok, valamlye tpkus halmazo való vselkedéshez hasolóa működek. Molár Bált, Beczúr Adrás
Uverzáls forráskódolás Adaptív kód: Ncs előre adott kódszó redszer, amt kostas kezdet költségű kódkét át kell külde. (mt pl. Shao-Fao. Huffma kód) Molár Bált, Beczúr Adrás
Uverzáls forráskódolás (Győrf,L.: Iformácó és kódelmélet) Az eddg vzsgált kódok alkalmazásakor az adó és a vevő között átvtelre kerülő btek két csoportot alkotak. Először átvsszük a blokk-kódot leíró formácót. Ez egy álladó költséget jelet, függetle az üzeet téyleges hosszától. Majd következek az üzeet kódszava. Molár Bált, Beczúr Adrás
Uverzáls forráskódolás Elmélet vzsgálatak sorá azzal a feltételezéssel éltük, hogy a továbbítadó üzeetük végtele hosszú. Ily módo, a kódok aszmptotkus vselkedését tektve, az álladó költség fajlagosa ullához tart, tehát elhayagolható. A gyakorlatba azoba véges forrásokkal va dolguk. Molár Bált, Beczúr Adrás
Uverzáls forráskódolás Ebbe az esetbe az álladó költség akár agyobb s lehet, mt az üzeet kódszavaak összhosszúsága. Ezt elkerüledő, jó lee, ha redelkezésükre álla egy olya techka, amelyek cs álladó költsége, de aszmptotkusa ugyaolya jó tömörítés aráyt ér el, mt a blokk-kódok. Az álladó költség abból adódk, hogy a kódot a forráso előzetese elvégzett statsztka vzsgálatok (a forrásszmbólumok gyakorsága) alapjá hozzuk létre, tehát ezek az adatok szükségesek a kód leírásához. Molár Bált, Beczúr Adrás
Uverzáls forráskódolás Ehelyett járjuk el úgy, hogy meet közbe gyűjtük formácót a forrásszmbólumokról, vagys az aktuáls szmbólumot az ezt megelőző szmbólumok alapjá kódoljuk. Az lye kódokat adaptív kódokak evezzük, alkalmazásuk sorá cs álladó költség. (Létezk pl. adaptív Huffma-kód). A most tárgyalásra kerülő Lempel Zv-kódok s ebbe a családba tartozak. Molár Bált, Beczúr Adrás
Uverzáls forráskódolás Az első LZ-algortmus az 977-be publkált LZ77. Molár Bált, Beczúr Adrás
Lempel-Zv kódok LZ77 algortmus Csúszóablakba éz a forrásszmbólumokat h a = h k + h e h a h k Már kódolt h e kódoladó Molár Bált, Beczúr Adrás
Az LZ77 algortmus (ld. Győrf) A kódoló a forrásszmbólumok sorozatát egy h a hosszú csúszó ablako keresztül vzsgálja. Az ablak két részből áll: egy kereső pufferből, amely a legutóbb kódolt h k darab forrásszmbólumot tartalmazza, és egy előretektő pufferből, amely a következő h e darab kódoladó szmbólumot tartalmazza (h a =h k +h e ). A kódoló a kereső pufferbe megkeres az előre tektő puffer első szmbólumával megegyező szmbólumokat. Ehhez egy hátrafelé haladó mutatót haszál. loghloghlogx *k e Molár Bált, Beczúr Adrás
Az LZ77 algortmus (ld. Győrf) Megéz, hogy a megtalált pozícókkal kezdődőe, a kereső pufferbe lévő szmbólumok mlye hossza egyezek meg az előretektő puffer szmbólumaval, és a találatok közül azt választja k, amelytől kezdve a leghosszabb az egyezés. A kódoló ezutá elküld egy <t h c > hármast, ahol t a kereső pufferbe megtalált szmbólum távolsága az előretektő puffertől (offset), h a kereső-és az előre- tektő puffer egyező szmbólumaak legagyobb hosszúsága, c pedg az első, az előretektő pufferbe lévő em egyező karakter kódszava. Azért küldjük el az első em egyező karakter kódját s, hogy kezeljük azt az esetet, amkor az előre tektő puffer szmbólumat em találjuk meg a kereső pufferbe. Ilyekor t és h értéke 0. Egy hármas kódolásához álladó hosszúságú kód haszálatával (*)bt szükséges, ahol X a forrásábécé mérete. Az egyező szmbólumok hosszúságáak átvteléhez em log h k, haem log h e bt szükséges. Eek oka, hogy az egyezés hossza meghaladhatja a kereső puffer hosszát,vagys az egyezőrész átlóghat az előretektő pufferbe. loghloghlogx *k e Molár Bált, Beczúr Adrás
LZ77 A LZ77 egy redkívül egyszerű adaptív algortmus, amely em géyel előzetes smeretet vagy feltevést a forrásról. Megmutatható, hogy az eljárás hatékoysága aszmptotkusa (h k, h e ) megközelít az optmáls algortmusét, amely előzetese smer a forrás eloszlást, azaz stacoárus és ergodkus forrás eseté az átlagos kód szóhossz kovergál H- hoz (bárs abc), ha (h k, h e ). Bár ez aszmptotkusa gaz, a gyakorlatba az LZ77 számos továbbfejlesztése smeretes, amelyek célja a hatékoyság övelése. A épszerű PKZIP és ARJ tömörítőkbe a hármasokat em fx, haem változó hosszúságú kóddal kódolják. Egy másk varácó változtatható méretű kereső és előretektő ablakot haszál. 206.04.8. Molár Bált, Beczúr Adrás 20
LZ77 Az LZ77 legegyszerűbb módosítása aak kküszöbölése, amkor egyetle karaktert kódoluk egy hármassal. Ez egy jelző bttel oldható meg. Ezzel jelezzük, hogy em egy hármast, haem csak egy kódszót küldük át. Az LZ77 alkalmazása sorá a forrásszmbólumok legutóbb kódolt sorozatát haszáljuk, így azzal a feltételezéssel élük, hogy a mták egymáshoz közel tervallumokba vsszatérek (a mozgó ablako belül). Szélsőséges esetbe, ha az smétlődés hossza éppe eggyel hosszabb a kereső puffer méretéél, em tuduk tömöríte. Az LZ-algortmus következő, 978-as verzójáál (LZ78) ezt a problémát egy másfajta, adaptív szótár alapú redszerrel oldják fel. http://cs.staford.edu/people/eroberts/co urses/soco/projects/datacompresso/lossless/lz77/example.htm http://www.strgology.org/datacompre sso/lz77/dex_e.html 206.04.8. Molár Bált, Beczúr Adrás 2
LZ77 206.04.8. Molár Bált, Beczúr Adrás 22
LZ77 206.04.8. Molár Bált, Beczúr Adrás 23
The_fat_cat_sat_o_the_mat. (0,0,t) (0,0,h) (0,0,e) (0, 0,_) (0, 0,f ) (0, 0, a) (0, 0, t) (0, 0, _) (0, 0, c); (4, 3, s) (4, 3, o); (0, 0, ) (0, 0, _); (l9, 4, m) (ll,2,.) 206.04.8. Molár Bált, Beczúr Adrás 24
206.04.8. Molár Bált, Beczúr Adrás 25
LZ78 Az LZ78 algortmus A kódoló és a dekódoló s szótárt épít az előzőleg elő fordult sorozatokból. A kódoló megkeres a forrásszmbólumok aktuáls pozícójától kezdődő leghosszabb egyezést a szótárba. Átküld egy <, c> párt, ahol az egyező karaktersorozat szótárbel dexét jelöl, c pedg az első em egyező karakter kódja, majd felvesz a szótárba az dexű egyező karaktersorozat és a c karakter kokateácójakét kapott strget ( karakter füzért ) (a következő szabad dexet adja ek). Ha em talál egyező karaktersorozatot a szótárba, akkor a <0, c> párost küld át, c tt s az első em egyező karakter kódja, amely ebbe az esetbe természetese az első feldolgozadó szmbólum. 206.04.8. Molár Bált, Beczúr Adrás 26
LZ78 206.04.8. Molár Bált, Beczúr Adrás 27
206.04.8. Molár Bált, Beczúr Adrás 28
LZ78 Megmutatható, hogy az LZ78 egy betűre jutó átlagos kódszó hossza kovergál H(X)/log s -hez mde stacoárus és ergodkus forrásra. X=X,X 2,, X ergodkus, stacoárus s a kódábécé elemszáma Az LZ78 algortmus egyk hbája, hogy a szótár folyamatosa, korlát élkül övekszk. A gyakorlatba egy bzoyos határo túl gátat szabuk a övekedések: vagy redszerese eltávolítjuk a felesleges vagy rtká haszált bejegyzéseket, vagy egy dő utá fx szótáraskét működk tovább az eljárás. 206.04.8. Molár Bált, Beczúr Adrás 29
Az LZW algortmus Terry Welch az LZ78 módosításával egy olya techkát dolgozott k, amellyel megtakarítható az < c> párból a c karakterkód átküldése. Ez az ú. LZW algortmus. A kódoló tehát csak szótárbel dexeket küld át. Ehhez szükséges, hogy a szótárba már a kduló állapotba s szerepelje az összes egybetűs szmbólum a forrásábécéből. A kódolás sorá az aktuáls pozícótól kezdve addg olvassuk be a forrásszmbólumokat a p pufferbe, amíg a sorozat szerepel a szótárba. Ha az a karakter az első olya, amelyre pa cs bee a szótárba (az egymás utá írással a kokateácót jelöltük), akkor átküldjük a p sorozat dexét, a pa sorozatot felvesszük a szótárba és az a karaktertől kezdve folytatjuk az eljárást. 206.04.8. Molár Bált, Beczúr Adrás 30
206.04.8. Molár Bált, Beczúr Adrás 3
206.04.8. Molár Bált, Beczúr Adrás 32
A Ux COMPRESS paracsa és a G I F (Graphcs Iterchage Format) képtömörítő eljárás s az LZW algortmust haszálja, 206.04.8. Molár Bált, Beczúr Adrás 33
Matematka ktérő 206.04.8. Molár Bált, Beczúr Adrás 34
Matematka ktérő 206.04.8. Molár Bált, Beczúr Adrás 35
Hvatkozás http://www.takoyvtar.hu/e/tartalom/tamop42 5/0046_formaco_es_kodelmelet/ch04s07.ht ml 206.04.8. Molár Bált, Beczúr Adrás 36
Stacoárus és ergodkus fogalom matematka meghatározása 206.04.8. Molár Bált, Beczúr Adrás 37