90 likes | 218 Views
Matematički institut SANU. HUFFMAN-OVO KODOVANJE Lazar Velimirović, Miomir Stanković,. Huffman- ovo kodovanje.
E N D
Matematički institut SANU HUFFMAN-OVO KODOVANJE Lazar Velimirović, Miomir Stanković,
Huffman-ovokodovanje • Huffman-ovo kodovanje predstavlja algoritam entropijskog kodovanja koji sekoristi za kompresiju podataka.Ovajalgoritam pronalazi optimalni sistem kodovanja simbolazasnovan na relativnoj frekvenciji pojave svakog simbola u listi. • Algoritam je 1953. razvio David A. Huffman (1925-1999) iobjaviouraduA Method for the Construction of Minimum-Redundancy Codes (Postupakkonstrukcijekodovasaminimalnomredudansom).
Huffman-ovokodovanje • Huffman-ov kod je optimalnibinarni prefiksni kod promenljive dužine. Povodomosobine optimalnosti,važno je istaći da je Huffman-ovo kodovanje najefikasnijikompresioni metod u svojoj klasi.Reči binarnog koda su nizovi bitova, a rečiprefiksnog koda imaju svojstvo da niti jedna reč nije prefiks druge. Za kod kažemo da je kod promenljive dužine ako različitim simbolima odgovaraju kodovi različitihdužina.
Huffman-ovokodovanje • Huffman-ov postupak je zasnovan na dva zapažanja u vezi sa optimalnimprefiks kodovima: 1.U optimalnom kodu,simboli koji se javljanju češće(imaju većuverovatnoću događaja) imaće kraće kodne reči nego simboli koji sejavljaju ređe, tj. što je verovatnoća pojavljivanja simbola veća, utoliko jemanji broj bita kojim se on reprezentuje 2.U optimalnom kodu, dva simbola koji se javljaju ređe imaće istu dužinu
Huffman-ovokodovanje • Kodovanje/dekodovanje simbola se vrši i na osnovu Huffman–ovogstabla. Simboli u stablu se nalaze organizovani premaverovatnoćipojavljivanja. • Simboli savećom verovatnoćomse nalaze bližekorenu stabla, dok se simbolisamanjom verovatnoćomnalaze dalje. Huffman-ovo stablo se gradi od dna ka vrhu.Kreće se od listova stabla i progresivno se gradi sve do korena. • Prvo se formira niz simbola u oblikulistova koji će se povezati u binarno stablo. Za svaki od simbola se vezuje težina kojaopisuje njegovu verovatnoću pojavljivanja (što je težina veća, to je veća iverovatnoća).
Huffman-ovokodovanje • Stablo se gradi kroz sledeće korake: 1.Pronalaze se dvaslobodnačvora u nizusanajmanjomvrednošćutežina. 2.Kreira se roditeljskičvorzapronaĎenečvorove. Dodaje mu se težinajednakazbirutežinanjegovihpotomakačvorova. 3. Roditeljskičvor se dodaje u nizslobodnihčvorova a potomcičvoroviseizvlačeizniza. 4. Putanjiodroditeljskog do jednogodpotomakačvorova se dodeljujevrednost 0, dok se putanji do drugogčvoradodeljujevrednost 1. 5. Prethodnikoraci se ponavljajusvedok u nizuslobodnihčvorova ne preostanesamojedan. Poslednjičvor je koren Huffman-ovogbinarnogstabla.
Huffman-ovokodovanje 0 0.4 0.4 0.4 0.4 1 0 0.2 0.2 0.2 0 0.6 1 0.2 0.2 0 0.4 1 0.1 0.2 1 0.1 1
HVALA! Contact e-mail: velimirovic.lazar@gmail.com