Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
A Huffman féle tömörítő algoritmus
Huffman kód A Huffman féle tömörítő algoritmus
2
Az algoritmus alap elvei
Karakterek hossza különböző A karakter hossza sűrűsége határozza meg: Minél több előfordulása van a karakternek, annál rövidebb Fa felépítési elve: mohó algoritmus A Huffman tömörítő kód a tömörítések közül, nem ismétlődéseket tömörít, mint az LZW, hanem betűket kisebb helyre próbálja redukálni. Ezekből azokat a karaktereket, amelyek többször ismétlődnek, kisebb részekre próbálja redukálni. Ezt egy bináris fa segítségével oldja meg, amely talán furcsa mód, nem fentről lefelé építi fel, hanem lentről felfelé. Ezt a mohó algoritmus segítségével építi fel.
3
Az algoritmusban elvégzett lépések
Minden karaktert kikeresünk, és megszámoljuk azoknak az előfordulását Felírjuk egymás mellé, és melléírjuk előfordulási számukat A fát felépítjük A levelek legkisebb értékű leveleit összekötjük, és az így keletkezett csúcsba az előfordulás összeget írjuk be Ahhoz, hogy egy fát fel tudjunk építeni, meg kell vizsgálnunk az adott szöveg karaktereit, vagy betűit, és meg kell számolnunk előfordulásukat. (Ezt oly módon lehet megcsinálni, hogy végig megyünk a szövegen betűnként, és ha a listánkon még nem szerepel egy betű, akkor felírjuk, és mindenképpen megnöveljük előfordulási számát.) A betűket ezek után kiírjuk sorban, melléjük az előfordulásuk számát. Kiválasztjuk a két tetszőleges legkisebb értékű gyökeret, és azokat egybe kötjük egy új csúcsba, és ebbe beleírjuk a két összekötött csúcs összegértékét. Ezt addig ismételjük, amíg egy fa nem lesz.
4
Az algoritmus menete Kakukk madaramnak Ez 48 bit 6 4 2 2 1 1 1 1 2 5 5
16 6 4 Vegyük a következő példát Fekete tanár úr előadásáról: „Kakukk madaramnak”. Következő betűk szerepelnek: K-5; A-5; U-1; M-2; R-1; N-1; D-1. Ebben 7 különböző betű van melyet 3 biten el lehet tárolni. A szöveg hossza 16 betű, tehát ez a szöveg 48 bit. A betűket ezek után kiírjuk sorban, melléjük az előfordulásuk számát. Kiválasztjuk a két tetszőleges legkisebb értékű gyökeret, és azokat egybe kötjük egy új csúcsba, és ebbe beleírjuk a két összekötött csúcs összegértékét. Ezt addig ismételjük, amíg egy fa nem lesz. Megjegyzés: Ebben a példában mi betűkkel fogunk dolgozni, nem karakterekkel. Azért is emlegetem inkább karaktereket, mert programozáskor minden karaktert feldolgozunk. 2 2 10 1 1 1 1 2 5 5 U R N D M K A
5
A fa gyümölcse 4×(1×4)+2×2+2×(2×5)= 40 bit 83.3% 1 1 1 M K A 1 1 1 U
1 1 M K A 1 Az így kapott fát kiigazítjuk. Ha megszámoljuk, hogy most így mekkora lesz a szövegünk, akkor 40 bit jön ki, ami 83%-a az eredeti szövegünknek. 1 1 4×(1×4)+2×2+2×(2×5)= 40 bit 83.3% U R N D
6
Pro és kontra Akkor hasznos, ha hosszúak a karakterek tárolása, de keveset használunk LZW sok karakterre hatékonyabb tömörítés Aritmetikus kódolásokhoz használják Nincs szabadalmaztatva, széles körben használják Előfordulásuk: JPEG, MP3 Miért is jó ez az algoritmus, és miért jobb más. <Összehasonlítás LZW és más algoritmusokkal>
7
<Áttűnéses kilépés>
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.