15.07.2013 Views

Titel: Om fingeraftryk – komprimering med ... - of Arne Mejlholm

Titel: Om fingeraftryk – komprimering med ... - of Arne Mejlholm

Titel: Om fingeraftryk – komprimering med ... - of Arne Mejlholm

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

6.2 Huffman kodning 6. Komprimeringsteknikker<br />

6.2.2 Huffman kodning vist ved eksempel<br />

Vi vil her vise et simpelt eksempel p˚a hvordan Huffman <strong>komprimering</strong> kan<br />

reducere størrelsen p˚a en fil. Vores fil vil i eksemplet best˚a af en række tegn:<br />

AAAAAAAAAABBBBBBBBCCCCCCDDDDDEE<br />

Som vi kan se dukker nogle tegn op flere gange end andre. Her følger en<br />

liste over de forskellige tegns hyppighed, senere omtalt som tegnets “frekvens” 4 :<br />

A = 10 B = 8 C = 6<br />

D = 5 E = 2<br />

Som i normal ASCII kode vil filen fylde 8 bit pr. tegn, hvilket giver:<br />

10 · 8 + 8 · 8 + 6 · 8 + 5 · 8 + 2 · 8 = 248 bits<br />

Bruger vi Huffman kodning til at komprimere dataene <strong>med</strong>, ser det s˚aledes<br />

ud. Vi har allerede talt frekvenserne p˚a tegnene op, s˚a skal man blot sætte<br />

hvert tegn til en værdi. Det vil sige at hvis vi sætter værdierne til:<br />

A = 11 (2 bit) B = 10 (2 bit) C = 01 (2 bit)<br />

D = 001 (3 bit) E = 000 (3 bit)<br />

Vi ganger herefter, som <strong>med</strong> ASCII, antal bit, <strong>med</strong> hvert tegns “frekvens”,<br />

og adderer:<br />

10 · 2 + 8 · 2 + 6 · 2 + 5 · 3 + 2 · 3 = 69 bits<br />

Som det fremg˚ar har vi repræsenteret samme mængde tegn, men bruger<br />

mindre plads.<br />

6.2.3 Træstrukturer<br />

Tildelingen af bitværdier til tegn kan ogs˚a opstilles som en binær træstruktur.<br />

Dette fungerer s˚aledes at man starter <strong>med</strong> at have et knudepunkt, der<br />

maksimum har 2 ”børn”. Hvert barn har, ligesom sin forælder, mulighed for<br />

at have to børn, og s˚aledes fortsætter træet.<br />

Opbygningen af en Huffman træstruktur foreg˚ar bagfra. Man opstiller<br />

sin liste over tegn, og deres frekvenser. Udfra denne opremsning følger man<br />

denne løkke:<br />

1. Tag de to tal <strong>med</strong> laveste frekvens.<br />

2. De to tal skal danne et børnepar.<br />

4 reel frekvens er f.eks. 10/31, men bruges her til at tælle antal forekomster af tegnet<br />

48

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!