DatorerInformationsteknik

Huffman-koder: exempel ansökan

Just nu är det få människor tycker om det faktum, hur filkomprimering. Jämfört med tidigare användning av persondatorn har blivit mycket enklare. Och nästan varje person som arbetar med filsystemet använder filer. Men få människor tänka på hur de fungerar och på vilka grunder är filkomprimering. Den allra första versionen av denna process var Huffman-koder, och de används idag i en mängd olika populära archi. Många användare vet inte ens tänka på hur lätt filkomprimering sker och det fungerar på ett system. I den här artikeln tittar vi på hur komprimeringen är vad nyanserar att påskynda och förenkla processen för kodning, samt se vad principen om trädet kodning.

historia algoritm

Den allra första algoritmen för effektiv kodning av elektronisk information har blivit en kod Huffman föreslog så tidigt som i mitten av nittonhundratalet, det vill säga 1952. Det var han som just nu är baselementet hos de flesta program som skapats för att komprimera informationen. Just nu, en av de mest populära källorna som använder denna kod är arkiv ZIP, ARJ, RAR och många andra. Dessutom är Huffman-algoritmen som används för att komprimera JPEG-bilder och andra grafiska objekt. Tja, alla fax också med hjälp av modern kodning, uppfanns 1952. Trots det faktum att sedan bildandet av koden tog så mycket tid i dag används det i en mängd nya membran och utrustning gamla och moderna typer.

Principen om effektiv kodning

Grunden för Huffman-algoritmen har ett system som gör det möjligt att byta ut den mest trovärdiga, oftast förekommande symboler kodade binära systemet. Och de som är mindre vanliga, ersatt med längre koder. Ligga långt Huffman-koder sker endast efter att systemet använder alla minimivärden. Denna teknik gör det möjligt att minimera längden av koden för varje symbol av det ursprungliga meddelandet i sin helhet. Det viktiga är att i början av kodnings sannolikheten för förekomst av breven bör redan kända. Det är från dem kommer att vara förberedd och sista budskap. Baserat på dessa data genom ut byggandet av Huffman kodträdet, på grundval av vilka kommer att hållas bokstäver kodningen i arkivet.

Huffman-kod, t.ex.

För att illustrera algoritmen, överväga en grafisk variant av byggandet av kodträdet. Om du vill använda den här metoden för att vara effektiv, är det nödvändigt att klargöra definitionen av vissa värden som är nödvändiga för begreppet processen. Den uppsättning av nämnda flertal noder och bågar, som är riktade från nod till nod, som kallas grafen. Trädet i sig är en graf med en uppsättning specifika egenskaper:

  • i varje nod kan innefatta inte mer än en av bågarna;
  • en av noderna måste vara roten av trädet, det vill säga, det bör inte vara en del av bågen alls,
  • Om stammen börjar röra sig längs bågarna bör processen gör det möjligt att få helt i någon av noderna.

Det finns också en sådan sak, en del av Huffman-koder som ett löv i trädet. Det är en nod som inte bör gå någon båge. Om två noder är anslutna med en båge, är en av dem förälder till det andra barnet, beroende på från vilken nod bågen slocknar, och vad som ingår. Om två noder har samma överordnade noden, kallas de systersajter. Om det i bladen, avgår från noderna i flera bågar, då det kallas ett binärt träd. Precis så är Huffman träd. Den egenheten att bygga enheter är att vikten av varje förälder är lika med summan av vikterna av alla barn noder.

En algoritm för att konstruera trädet Huffman

Byggandet av Huffman-kod matas in från bokstäverna i alfabetet. Genererat en lista över webbplatser som är fria i framtiden kodträdet. Vikten av varje nod i listan måste vara densamma som sannolikheten för förekomst av bokstäverna inlägg som motsvarar denna nod. I detta fall är den som väger minst vald bland flera fria platser i framtiden trädet. I det här fallet, om de minimipriser observeras i flera platser, kan du fritt välja någon av paren. Sedan kommer skapandet av den överordnade nod, som måste väga så mycket som summan av vikterna av paret noder. Efter det föräldrar skicka listan med de fria toaletter, och barnen tas bort. I denna båge är lämpliga indikatorer ettor och nollor. Denna process upprepas så mycket som behövs för att hålla en enda nod. Skriv sedan ut de binära siffrorna från topp till botten.

Att förbättra effektiviteten av kompressionen

För att öka kompressionseffektiviteten är det nödvändigt under träd byggnad kod för att använda alla data på sannolikheten för förekomst av bokstäverna i en viss fil, fäst vid ett träd, och inte låta det faktum att de är spridda över ett stort antal textdokument. Om pre-promenad genom den här filen, kan du omedelbart beräkna statistik över hur ofta det finns bokstäverna i anläggningen som omfattas av komprimering.

Acceleration av kompressionsprocessen

För att påskynda algoritmen bör definitionen av bokstäverna göras inte i termer av sannolikheten för förekomst av en viss bokstav, och frekvensen av dess förekomst. Med denna algoritm blir lättare, och arbeta med dem mycket snabbare. Det undviker också verksamheten i samband med flyttalsdivision. Dessutom, som arbetar i det här läget är den dynamiska Huffman-kod, eller snarare själva algoritmen inte föremål för några ändringar. Detta beror främst på det faktum att sannolikhet är direkt proportionell mot frekvensen. Det är värt att uppmärksamma det faktum att den slutliga vikten av filen, eller den så kallade rotnod är lika med summan av antalet tecken i objektet som ska behandlas.

slutsats

Huffman koder - enkelt och sedan länge etablerad algoritm, som fortfarande används av många välkända program och företag. Dess enkelhet och tydlighet kan uppnå effektiva resultat komprimera filer av någon volym och avsevärt minska utrymmet på disklagring. Med andra ord, den Huffman-algoritmen - har länge undersökts och arbetsschema som brådska inte reduceras med denna dag. Och med möjlighet att minska storleken på filerna, överföra dem via ett nätverk eller på annat sätt är det enklare, snabbt och bekvämt. Arbeta med algoritmen, kan du komprimera all information helt utan att skada dess struktur och kvalitet, men med maximal effekt för att minska vikten filen. Med andra ord har kodningen av Huffman-koden varit och är fortfarande den mest populära och relevant sätt att komprimera filstorleken.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 sv.unansea.com. Theme powered by WordPress.