/ / Huffman kodovi: primjeri, primjena

Huffmanovi kodovi: primjeri, aplikacije

Trenutačno malo ljudi razmišljakako funkcionira kompresija datoteka. U usporedbi s prošlošću, korištenje osobnog računala postalo je puno lakše. Gotovo svaka osoba koja radi s datotečnim sustavom koristi arhive. No, malo ljudi razmišlja o tome kako rade i koje je načelo kompresije datoteka. Prva verzija tog procesa bila je Huffmanov kodovi, a oni se još uvijek koriste u raznim popularnim arhivatorima. Mnogi korisnici čak ni ne razmišljaju o tome koliko je lako komprimirati datoteku i prema kojem shemu funkcionira. U ovom ćemo članku pogledati kako se pojavljuje kompresija, koje nijanse pomažu u ubrzavanju i pojednostavljivanju procesa kodiranja, a također i saznati što je načelo izgradnje šifriranja.

Povijest algoritma

Prvi algoritam za provedbu učinkovitkodiranje elektroničkih informacija postalo je kod koji je Huffman predložio sredinom dvadesetog stoljeća, odnosno 1952. godine. Da je on trenutno glavni osnovni element većine programa dizajniranih za komprimiranje informacija. Trenutno, jedan od najpopularnijih izvora koji koriste ovaj kôd su ZIP, ARJ, RAR i mnogi drugi arhivi.

Kodovi Huffmana
Također, koristi se ovaj Huffmanov algoritamkomprimirati JPEG slike i druge grafičke objekte. Pa, svi moderni telefakseri također koriste kodiranje izumljeno 1952. godine. Unatoč činjenici da je prošlo toliko vremena od stvaranja koda, ona se još uvijek koristi u najnovijim školjkama i opremi starih i modernih tipova.

Načelo učinkovitog kodiranja

Huffmanov algoritam temelji se na shemiomogućuje zamjenu najvjerojatnijih, najčešćih znakova kodova binarnog sustava. A one manje poznate zamjenjuju se duljim kodovima. Prijelaz na duge Huffmanove kodove događa se tek nakon što sustav koristi sve minimalne vrijednosti. Ova tehnika omogućuje vam da minimizirate duljinu koda za svaki znak izvorne poruke u cjelini.

Huffmanov algoritam
Važna je točka na početkuVjerojatnosti kodiranja izgleda slova već bi trebale biti poznate. Od njih će se sastaviti posljednja poruka. Na temelju tih podataka izgrađuje se Huffmanova šifra, na temelju koje će se provesti proces kodiranja pisama u arhivi.

Primjer kod Huffmana

Za ilustraciju algoritma, uzmigrafička inačica konstrukcije stabla koda. Da bi se ova metoda učinkovito koristila, vrijedno je razjasniti definiciju nekih vrijednosti potrebnih za koncept ove metode. Skup lukova i čvorova koji su usmjereni od čvora do čvora zove se grafikon. Sam stablo je grafikon s nizom specifičnih svojstava:

  • svaki čvor može sadržavati ne više od jednog od lukova;
  • jedan od čvorova mora biti korijen stabla, tj. nema lukova koji bi trebali ući;
  • ako se krećete od korijena uz lukove, ovaj proces bi trebao omogućiti da potpuno pasti u bilo koji od čvorova.

primjer kod huffmana
Tu je i takva stvar uključena u kodoveHuffman je poput stabla. To je čvor od kojeg se ne bi trebao protezati luk. Ako su dva čvorova povezana lukom, onda je jedan od njih roditelj, drugi dijete, ovisno o čijem čvoru luk ide i u koji ulazi. Ako dva čvora imaju isti roditeljski čvor, oni se nazivaju bratski čvorovi. Ako, osim lišća, čvorovi izlaze u nekoliko lukova, onda se ovo stablo zove binarno. Baš takav je stablo Huffman. Značaj čvorova ove konstrukcije je da je težina svakog roditelja jednaka zbroju težine svih ključnih djece.

Huffman algoritam gradnje drveta

Izgradnja Huffmanovog koda izrađena je od pisamaulazna abeceda. Izrađen je popis onih čvorova koji su slobodni u budućem stablu koda. Težina svakog čvora na ovom popisu mora biti jednaka vjerojatnosti pojavljivanja slova poruke koja odgovara ovom čvoru. U ovom slučaju, između nekoliko slobodnih čvorova buduće stabla odabire se ona koja teži najmanjem. Štoviše, ako se minimalni pokazatelji promatraju u nekoliko čvorova, onda možete slobodno odabrati bilo koji od parova.

graditi huffmanov kod
Nakon toga, stvaranje roditeljačvor koji treba težak koliko i zbroj ovog par čvorova. Nakon toga roditelj se šalje na popis s besplatnim čvorovima, a djeca se uklanjaju. U ovom slučaju, lukovi dobivaju odgovarajuće pokazatelje, one i nula. Ovaj proces ponavlja točno onoliko dugo koliko je potrebno da napusti samo jedan čvor. Zatim se binarne brojke upisuju u smjeru od vrha do dna.

Poboljšana učinkovitost kompresije

Da biste poboljšali učinkovitost kompresije, trebatevrijeme za izgradnju stabla koda kako bi se svi podaci o vjerojatnosti slova u određenoj datoteci pridružili stablu i spriječili raspršivanje velikog broja tekstualnih dokumenata. Ako prvo prođete ovu datoteku, možete odmah izračunati statistiku o tome koliko često se nalaze slova iz objekta koji će se komprimirati.

Ubrzavanje procesa kompresije

Da biste ubrzali algoritam, definicija slovaTo bi se trebalo provesti ne ovisno o vjerojatnosti pojavljivanja slova, već prema učestalosti njezine pojave. Zbog toga algoritam postaje lakši, a rad s njim uvelike se ubrzava. Također izbjegava operacije povezane s plutajućim zarezima i podjelom.

dinamički huffmanov kod
Osim toga, rad u ovom načinu rada, dinamičanHuffmanov kod, odnosno sam algoritam, ne podliježe nikakvim promjenama. To je uglavnom zbog činjenice da su vjerojatnosti izravno proporcionalne frekvencijama. Posebnu pozornost treba obratiti na činjenicu da će konačna težina datoteke ili tzv. Korijenski čvor biti jednaka zbroju broja slova u predmetu koji se obrađuje.

zaključak

Huffman kodovi - jednostavni i dugogodišnjialgoritam koji još uvijek koriste mnogi poznati programi i tvrtke. Njegova jednostavnost i jasnoća omogućuju postizanje učinkovitih rezultata komprimiranja datoteka bilo koje veličine i značajno smanjenje prostora na disku koji zauzimaju. Drugim riječima, Huffmanov algoritam je dugo proučavana i dobro razvijena shema, čija se važnost ne smanjuje do danas.

Kodiranje Huffmana
I zahvaljujući mogućnosti smanjenja veličine datoteka,njihov prijenos putem mreže ili na drugi način postaje lakši, brži i praktičniji. Rad s algoritmom, moguće je komprimirati apsolutno bilo koju informaciju bez štete svojoj strukturi i kvaliteti, ali s maksimalnim učinkom smanjenja težine datoteke. Drugim riječima, kodiranje Huffmana je i ostaje najpopularnija i aktualna metoda sažimanja veličine datoteke.

Pročitajte više: