encoden | decoderen | comprimeren

> shannon | fano | entropie <

// Shannon-Fano – Top-down-entropiecodering voor gegevenscompressie

[ENTROPY]

Gebaseerd op entropie

Gebruikt informatietheorie om efficiënte codes met variabele lengte te maken.

[TOP-DOWN]

Top-down-aanpak

Deelt symbolen recursief in groepen met vergelijkbare waarschijnlijkheid.

[HISTORIC]

Historisch algoritme

Pioniersmethode die moderne compressietechnieken heeft beïnvloed.

>> technische informatie

Hoe Shannon-Fano werkt:

Shannon-Fano-codering sorteert symbolen op frequentie en splitst ze vervolgens recursief in twee groepen met zo gelijk mogelijk totale waarschijnlijkheid. Elke splitsing voegt een bit toe aan de code (0 links, 1 rechts). Het resultaat is een prefixcode met variabele lengte.

Coderingsproces:

Tekst: "AAABBCD" Frequenties: A:3, B:2, C:1, D:1 Splitsing: [A] | [B,C,D] Codes: A: 0 B: 10 C: 110 D: 111 Gecodeerd: 0 0 0 10 10 110 111

Waarom Shannon-Fano gebruiken:

  • >Eenvoudig te implementeren
  • >Goede compressieratio’s
  • >Historische relevantie
  • >Handig voor educatie
  • >Prefixcodes

>> veelgestelde vragen

Wat is Shannon-Fano-codering?

Shannon-Fano-codering is een entropiecoderingstechniek die in de jaren 40 werd ontwikkeld door Claude Shannon en Robert Fano. Het was een van de eerste algoritmen die codes met variabele lengte gebruikte op basis van symboolwaarschijnlijkheid.

Shannon-Fano of Huffman?

Beide produceren codes met variabele lengte, maar Huffman is optimaal en levert de kortste gemiddelde codelengte. Shannon-Fano is eenvoudiger maar kan iets langere codes opleveren. Huffman bouwt de boom van onder naar boven, Shannon-Fano van boven naar beneden.

Hoe werkt het splitsen van symbolen?

Symbolen worden op frequentie gesorteerd en gesplitst in twee groepen met zo vergelijkbaar mogelijke totale waarschijnlijkheid. Dit proces wordt recursief herhaald totdat elke groep slechts één symbool bevat.

Wordt Shannon-Fano nog gebruikt?

Shannon-Fano wordt tegenwoordig vooral gebruikt als historisch en educatief voorbeeld. In de praktijk is het grotendeels vervangen door Huffman-codering, die optimale codes garandeert. Het blijft echter nuttig om de basis van compressie te leren.

Andere talen