Hafmaņa kodi: piemēri, lietojumprogrammas
Šobrīd maz cilvēki domā par to,kā kompresijas darbi. Salīdzinājumā ar pagātni personālo datoru ir kļuvis daudz vieglāk. Un praktiski ikviens, kas strādā ar failu sistēmu, izmanto arhīvus. Taču daži cilvēki domā par to, kā viņi strādā, un par to, kurš princips ir failu saspiešana. Pati pirmā šī procesa versija bija Hafmaņa kodi, un tos joprojām izmanto dažādos tautas arhīvos. Daudzi lietotāji pat nedomā, cik viegli ir saspiest failu un saskaņā ar kuru shēmu tā darbojas. Šajā rakstā mēs aplūkosim, kā kompresija tiek veikta, kādas nianses palīdz paātrināt un vienkāršot kodēšanas procesu, un mēs noskaidrosim, kas ir kodēšanas koka konstruēšanas princips.
Algoritma vēsture
Pirmais algoritms efektīvaielektroniskās informācijas kodēšanas kļuvusi ko Huffman ierosināja vēl vidū divdesmitā gadsimta, proti, 1952. gadā kodu. Tas bija viņš, kurš šobrīd ir pamats lielākajai daļai programmām, kas radītas, lai saspiestu informāciju elements. Šobrīd viens no populārākajiem avotiem, izmantojot šo kodu ir arhīvu ZIP, ARJ, RAR un daudzi citi.
Efektīvas kodēšanas princips
Huffmana algoritma pamats ir shēma,Tas ļauj aizstāt visbiežāk sastopamos simbolus ar binārās sistēmas kodiem. Un tie, kas ir retāk sastopami, tiek aizstāti ar ilgākiem kodiem. Pāreja uz ilgiem Hafmana kodiem notiek tikai pēc tam, kad sistēma izmanto visas minimālās vērtības. Šis paņēmiens ļauj minimizēt koda garumu katra sākotnējā ziņojuma rakstzīmju kopumā.
Huffmana kods, piemērs
Lai ilustrētu algoritmu, pieņemsimkoda koka konstrukcijas grafiskā versija. Lai šo metodi izmantotu efektīvi, ir lietderīgi precizēt dažu šīs metodes jēdzienu vajadzīgo vērtību definīciju. Loka un mezglu kopums, kas tiek virzīts no mezgla uz mezglu, parasti sauc par grafiku. Pati koks ir diagramma ar noteiktu rekvizītu komplektu:
- katrā mezglā var ievadīt ne vairāk kā vienu no lokiem;
- vienam no mezgliem jābūt koka saknēm, tas ir, loka nav jāievada vispār;
- ja no saknes, lai sāktu pārvietoties pa lokiem, šim procesam vajadzētu ļaut pilnīgi iekļūt kādā no mezgliem.
Koka konstrukcijas algoritms atbilstoši Huffmanam
Hafmana koda konstrukcija ir veidota no burtiemno ievades alfabēta. Tiks izveidots to mezglu saraksts, kuri ir brīvi nākamajā koda kokā. Katras mezgla sarakstā svars ir tāda pati kā varbūtību ar burtu amatu, kas atbilst šajā mezglā. Šajā gadījumā ir izvēlēts viens no mazākajiem nākotnes koka mezgliem. Tajā pašā laikā, ja minimālie rādītāji tiek novēroti vairākos mezglos, tad ir iespējams brīvi izvēlēties kādu no pāriem.
Kompresijas efektivitātes uzlabošana
Lai palielinātu kompresijas efektivitāti, ir nepieciešamslaiks, lai izveidotu koda koku, lai izmantotu visus datus par burtu varbūtību, kas parādās konkrētā kokā pievienotā failā, un neļaut tiem izkliedēt lielu skaitu teksta dokumentu. Ja jūs vispirms izmantojat šo failu, varat nekavējoties aprēķināt statistiku par to, cik bieži tiek saskarē saspiestā objekta burti.
Saspiešanas procesa paātrināšana
Lai paātrinātu algoritmu, burtu definīcijaNepieciešams veikt rādītājus par šīs vai šīs vēstules rašanās varbūtību un tās rašanās biežumu. Pateicoties tam, algoritms kļūst vienkāršāks, un darbs ar to ir ievērojami paātrināts. Tas arī novērš darbības, kas saistītas ar peldošajām komām un sadalīšanu.
Secinājums
Huffmana kodi - vienkārši un ilgstošialgoritms, kuru joprojām izmanto daudzas pazīstamas programmas un uzņēmumi. Tās vienkāršība un skaidrība ļauj sasniegt efektīvus saspiešanas rezultātus jebkura izmēra failiem un ievērojami samazināt telpu, ko tie aizņem uzglabāšanas diskā. Citiem vārdiem sakot, Huffman algoritms ir ilgi izpētīta un labi izstrādāta shēma, kuras atbilstība līdz šodienai nav mazāka.