For øyeblikket er det få som tenker påhvordan filkomprimering fungerer. Sammenlignet med fortiden, har det blitt mye enklere å bruke en datamaskin. Og nesten hver person som jobber med filsystemet bruker arkiver. Men få mennesker tenker på hvordan de fungerer og etter hvilket prinsipp filkomprimering oppstår. Huffman-koder ble den aller første versjonen av denne prosessen, og de brukes fremdeles i forskjellige populære arkiver. Mange brukere tenker ikke engang på hvor enkel filkomprimeringen er og etter hvilket skjema det fungerer. I denne artikkelen vil vi vurdere hvordan komprimering oppstår, hvilke nyanser som hjelper med å fremskynde og forenkle kodingsprosessen, og også vil vi forstå hva prinsippet om å bygge et kodetre er.
Den aller første algoritmen for å utføre effektivkoding av elektronisk informasjon var koden foreslått av Huffman allerede i midten av det tjuende århundre, nemlig i 1952. Det er han som for øyeblikket er det viktigste grunnleggende elementet i de fleste programmer designet for å komprimere informasjon. For tiden er en av de mest populære kildene som bruker denne koden ZIP, ARJ, RAR og mange andre.
Huffman-algoritmen er basert på en krets,slik at du kan erstatte de mest sannsynlige, vanligste tegnene med binære systemkoder. Og de som er mindre vanlige erstattes med lengre koder. Overgangen til lange Huffman-koder skjer først etter at systemet bruker alle minimumsverdiene. Denne teknikken lar deg minimere kodelengden for hvert tegn i den opprinnelige meldingen som helhet.
For å illustrere algoritmen, tagrafisk versjon av kodetreet konstruksjon. For at bruken av denne metoden skal være effektiv, er det verdt å avklare definisjonen av noen verdier som er nødvendige for konseptet med denne metoden. Settet med mange buer og noder som er rettet fra node til node, kalles en graf. Selve treet er en graf med et sett med spesifikke egenskaper:
Huffman-koden er laget av bokstaverinnføringsalfabet. En liste over de nodene som er gratis i det fremtidige kodetreet, blir dannet. Vekten til hver node i denne listen skal være den samme som sannsynligheten for en meldingsbokstav som tilsvarer den noden. Dessuten er den som veier minst valgt blant de få gratis noder for det fremtidige treet. Hvis minimumsindikatorene overholdes i flere noder, kan du dessuten fritt velge hvilket som helst av parene.
Чтобы повысить эффективность сжатия, нужно во mens du bygger kodetreet, bruker du alle dataene om sannsynligheten for at bokstaver vises i en bestemt fil festet til treet, og ikke la dem spres over et stort antall tekstdokumenter. Hvis du først går gjennom denne filen, kan du umiddelbart beregne statistikk over hvor ofte bokstaver fra objektet som skal komprimeres.
For å få fortgang i algoritmen ved å identifisere bokstaverdet er nødvendig å utføre ikke i henhold til indikatorene for sannsynligheten for utseendet til en bestemt bokstav, men i henhold til hyppigheten av dens forekomst. Dette gjør algoritmen enklere og mye raskere å jobbe med. Det unngår også flytende punkt- og divisjonsoperasjoner.
Huffman-koder - enkel og veletablerten algoritme som fremdeles brukes av mange kjente programmer og selskaper. Dets enkelhet og klarhet lar deg oppnå effektive resultater av komprimering av filer i alle størrelser og redusere lagringsdiskplassen deres betydelig. Med andre ord, Huffman-algoritmen er et lenge studert og utdypet skjema, hvis relevans ikke avtar til i dag.