Datamaskiner, Informasjonsteknologi
Huffman koder: eksempler, søknad
For øyeblikket tenker få mennesker på hvordan komprimering fungerer. Sammenlignet med fortiden har det blitt mye lettere å bruke en personlig datamaskin. Og praktisk talt alle personer som jobber med filsystemet bruker arkiver. Men få mennesker tenker på hvordan de jobber, og på hvilket prinsipp er komprimering av filer. Den aller første versjonen av denne prosessen var Huffman-kodene, og de brukes fortsatt i forskjellige populære arkiver. Mange brukere tenker ikke engang på hvor lett det er å komprimere filen og i henhold til hvilken ordning det fungerer. I denne artikkelen ser vi på hvordan komprimering fungerer, hvilke nyanser bidrar til å fremskynde og forenkle kodingsprosessen, og også forstå hva prinsippet om å bygge et kodende tre er.
Algoritmens historie
Den aller første algoritmen for effektiv koding av elektronisk informasjon var koden som ble foreslått av Huffman i midten av det tjuende århundre, nemlig i 1952. Det er for tiden det viktigste grunnelementet i de fleste programmer som er opprettet for å komprimere informasjon. For øyeblikket er en av de mest populære kildene som bruker denne koden arkiver av ZIP, ARJ, RAR og mange andre.
Prinsippet om effektiv koding
Grunnlaget for Huffman-algoritmen er et system som lar deg erstatte de mest sannsynlige, mest opptatte symbolene med koder for det binære systemet. Og de som er mindre vanlige, erstattes av lengre koder. Overgangen til lange Huffman koder oppstår først etter at systemet bruker alle minimumsverdiene. Denne teknikken lar deg minimere kodenes lengde for hvert tegn i den opprinnelige meldingen som helhet.
Huffman kode, eksempel
For å illustrere algoritmen, la oss ta en grafisk variant av å bygge et kode tre. For å bruke denne metoden var effektiv, er det verdt å klargjøre definisjonen av noen verdier som er nødvendige for begrepet denne metoden. Sett med buer og noder som er rettet fra node til node kalles vanligvis en graf. Selve treet er en graf med et sett med visse egenskaper:
- I hver knute kan ikke komme inn mer enn en av buene;
- En av noderne må være roten til treet, det vil si at det ikke burde være noen buer i den;
- Hvis fra roten til å begynne å bevege seg langs buer, bør denne prosessen tillate å komme helt inn i noen av knutepunktene.
Algoritme for å bygge et tre ifølge Huffman
Konstruksjonen av Huffman-koden er laget av bokstavene i inngangs-alfabetet. En liste over de noder som er ledige i fremtiden, er opprettet. Vekten til hver knutepunkt i denne listen skal være den samme som sannsynligheten for forekomsten av brevet i meldingen som svarer til denne knuten. I dette tilfellet er blant de få gratis nodene til det fremtidige treet det som veier minst. På samme tid, hvis minimumsindikatorene observeres i flere noder, er det mulig å velge fritt par av parene.
Forbedre kompresjonseffektivitet
For å øke effektiviteten av komprimering er det nødvendig å bruke alle data om sannsynligheten for bokstaver som vises i en bestemt fil som er knyttet til treet, og ikke la dem spres over et stort antall tekstdokumenter når de bygger kodeordet. Hvis du først går gjennom denne filen, kan du umiddelbart beregne statistikken for hvor ofte bokstaver fra objektet som skal komprimeres, er.
Accelerasjon av kompresjonsprosessen
For å øke hastigheten på algoritmen, må bokstavene ikke bestemmes av indeksene av sannsynligheten for forekomst av et bestemt brev, men av hyppigheten av forekomsten. Takket være dette blir algoritmen enklere, og arbeidet med det er sterkt akselerert. Dette unngår også operasjonene knyttet til flytende komma og divisjon.
konklusjon
Huffmans koder er en enkel og langvarig algoritme som fortsatt brukes av mange kjente programmer og selskaper. Dens enkelhet og klarhet gjør det mulig å oppnå effektive komprimeringsresultater for filer av hvilken som helst størrelse og redusere betraktelig plassen de opptar på lagringsdisken. Med andre ord er Huffman-algoritmen et langt studert og godt designet skjema, hvis relevans ikke reduseres til denne dagen.
Similar articles
Trending Now