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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!