HuffmankodningHuffmankodning är en datakomprimeringsalgoritm uppfunnen 1952 av doktoranden David A. Huffman. I Huffmankodning byts sekvenser av symboler av fix längd entydigt ut mot andra sekvenser av tecken och koder av olika längd beroende på symbolens relativa frekvens. Relativ frekvens kan ses som sannolikheten att en viss symbol ska sändas. Ofta förekommande symboler ges kortare koder än sällan förekommande, så att den totala kodsekvensen blir så kort som möjligt. Det finns två metoder för att uppskatta den relativa frekvensen för symbolerna:
En algoritm för att finna en binär (statisk) Huffmankodning är den följande:
Varje huffmankod kan representeras som ett huffmanträd, där symbolerna är lövnoder. Koden är sekvensen av ettor och nollor räknad från den sista tilldelningen. ExempelGivet följande tecken och deras respektive frekvenser:
De två ovanligaste tecknen är B och C. Tilldela B koden 0 och C koden 1. Slå ihop deras frekvenser, B+C: .
De två ovanligaste tecknen är A och B+C. Tilldela A koden 0 och B+C koden 1 (vilket blir det första tecknet i koderna för B och C). Koderna blir:
Den genomsnittliga kodlängden är AnvändningsområdenHuffmankodning är vanlig vid komprimering av data. Populära filformat som ZIP, JPEG och MP3 använder Huffmankodning som en del av komprimeringsprocessen. |