Huffman-koodit: esimerkkejä, sovellus
Tällä hetkellä harvat ihmiset ajattelevat sitä,miten pakkaus toimii. Aiempiin verrattuna henkilökohtaisen tietokoneen käyttö on tullut paljon helpommaksi. Ja käytännöllisesti katsoen jokainen tiedostojärjestelmän kanssa työskentelevä henkilö käyttää arkistoja. Mutta harvat ihmiset ajattelevat, miten he työskentelevät ja millainen periaate tiedostojen puristamisesta. Prosessin ensimmäinen versio oli Huffman-koodit, ja niitä käytetään edelleen useissa suosituissa arkistoissa. Monet käyttäjät eivät edes ajattele kuinka helppoa on kompressoida tiedosto ja sen mukaan, mikä järjestelmä se toimii. Tässä artikkelissa tarkastelemme kompressoinnin tekemistä, mitä vivahteita nopeuttaa ja yksinkertaistaa koodausprosessia, ja selvitämme, mikä koodauspuun rakentamisen periaate on.
Algoritmin historia
Ensimmäinen algoritmi tehokkaaksielektronisen tiedon koodaaminen oli Huffmanin ehdottama koodi vuosisadan puolivälissä eli vuonna 1952. Se on tällä hetkellä tärkein perusosa useimmille ohjelmille, jotka on luotu pakata tietoja. Tällä hetkellä yksi suosituimmista lähteistä, jotka käyttävät tätä koodia, ovat ZIP, ARJ, RAR arkistot ja monet muut.
Tehokkaan koodauksen periaate
Huffman-algoritmin perusta on järjestelmä,Sen avulla voidaan korvata todennäköisimmät, useimmin esiintyvät symbolit binaarijärjestelmän koodeilla. Ne, jotka ovat harvinaisempia, korvataan pitemmillä koodeilla. Siirtyminen pitkään Huffman-koodeihin tapahtuu vasta sen jälkeen, kun järjestelmä käyttää kaikkia vähimmäisarvoja. Tämän tekniikan avulla voit minimoida koodin pituuden alkuperäisen viestin jokaiselle merkille kokonaisuutena.
Huffmanin koodi, esimerkki
Jotta voimme kuvata algoritmia, ottakaammegraafinen versio koodipuun rakentamisesta. Tämän menetelmän käyttämiseksi oli tehokasta, on syytä selventää eräiden tämän menetelmän käsitteen kannalta välttämättömien arvojen määritelmää. Kaaria ja solmuja, jotka ohjataan solmusta solmuun, kutsutaan yleensä kaavioksi. Itse puu on kaavio jossa on joukko tiettyjä ominaisuuksia:
- jokaisessa solmussa voi olla enintään yksi kaaria;
- yksi solmuista tulee olla puun juureen, eli ei kaaren pitäisi syöttää sitä ollenkaan;
- Jos kara ryhdy liikkumaan pitkin kaarta, prosessin pitäisi voida saada täysin missään solmuja.
Algoritmi puun rakentamiseksi Huffmanin mukaan
Huffman-koodin rakentaminen on tehty kirjaimistasyöttöaiheesta. Luodaan luettelo tulevasta koodipuusta vapaista solmuista. Tämän luettelon kunkin solmun painon tulisi olla sama kuin tämän solmun vastaavan sanoman kirjaimen todennäköisyys. Tällöin valitaan tulevaisuuden puun muutaman vapaan solmun joukossa valittuna oleva paino. Samalla, jos vähimmäisindikaattoreita havaitaan useissa solmuissa, on mahdollista valita vapaasti jokin pareista.
Parantaa pakkausteknistä tehokkuutta
Puristustehokkuuden lisäämiseksi on välttämätöntäaikana puu rakennusmääräykset käyttää kaikkia tietoja esiintymistodennäköisyys kirjaimet tietty tiedosto, kiinni puuhun, eikä salli sitä, että ne ovat hajallaan useita tekstitiedostoja. Jos ensin käydään läpi tämän tiedoston, voit välittömästi laskea tilastot, kuinka usein kirjataan pakatun objektin kirjaimet.
Puristusprosessin kiihdytys
Algoritmin nopeuttamiseksi kirjainten määritelmäOn välttämätöntä suorittaa tämän tai kyseisen kirjeen esiintymisen todennäköisyysindikaattorit ja sen esiintymistiheys. Tämän ansiosta algoritmi muuttuu yksinkertaisemmaksi ja sen kanssa tapahtuva työskentely nopeutuu huomattavasti. Tämä myös välttää kelluvia pilkkuja ja jakoa.
johtopäätös
Huffmanin koodit - yksinkertainen ja pitkäaikainenalgoritmi, jota monet tunnetut ohjelmat ja yritykset käyttävät edelleen. Sen yksinkertaisuus ja selkeys mahdollistavat tehokkaat pakkaustulokset kaikenkokoisille tiedostoille ja vähentävät merkittävästi tilaa, jota ne käyttävät tallennuslevyllä. Toisin sanoen Huffman-algoritmi on pitkään tutkittu ja hyvin suunniteltu järjestelmä, jonka merkitys ei vähene tähän päivään asti.