Shannonin algoritmi

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 16. huhtikuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 3 muokkausta .

Tietojen pakkaamisen alalla Shannon-koodi , joka on nimetty sen luojan Claude Shannonin mukaan, on häviötön tietojen pakkausalgoritmi , joka muodostaa etuliitekoodeja, jotka perustuvat merkkijoukkoon ja niiden todennäköisyyksiin (laskettu tai mitattu). Se ei ole optimaalinen siinä mielessä, että se ei saavuta pienintä mahdollista koodin pituutta, kuten Huffman-koodauksessa , eikä se ole koskaan parempi, mutta joskus sama kuin Shannon-Fano- koodi .

Tämä menetelmä oli ensimmäinen laatuaan, tätä tekniikkaa käytettiin todistamaan Shannonin virheenkorjaava koodauslause vuonna 1948 hänen artikkelissaan "Mathematical Communication Theory" [1] .

Shannon-koodauksessa merkit on järjestetty todennäköisimmästä epätodennäköisimpään. Heille annetaan koodit ottamalla kumulatiivisen todennäköisyyden binäärihajotelman ensimmäiset numerot . Tässä tarkoittaa funktion kattoa , joka pyöristyy lähimpään kokonaisarvoon, joka on suurempi tai yhtä suuri kuin .

Esimerkki

Tässä taulukossa on esimerkki Shannon-koodauksesta. Voit heti huomata lopullisista koodeista, että se on vähemmän optimaalinen kuin Fano-Shannon -menetelmä .

Ensimmäinen askel on laskea kunkin symbolin todennäköisyydet. Sitten lasketaan kunkin todennäköisyyden luku. Esimerkiksi 2 : lle se on yhtä kuin kolme (  on kahden −3:n minimiteho, joten se on yhtä suuri kuin kolme). Tämän jälkeen otetaan huomioon todennäköisyyksien summa 0 :sta i-1 :een ja muunnetaan binäärimuotoon. Sitten murto-osa katkaistaan ​​vasemmalla merkkien lukumäärään.

a i p(a i ) l i Summa 0 - i-1 Summa yli p(a i ) bin Lopullinen
koodi
a 1 0,36 2 0,0 0.0000 00
a 2 0,18 3 0,36 0,0101 010
a 3 0,18 3 0,54 0,1000 100
a 4 0.12 neljä 0,72 0,1011 1011
a 5 0.09 neljä 0,84 0,1101 1101
a 6 0,07 neljä 0,93 0,1110 1110

Linkit

  1. "A Mathematical Theory of Communication" http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf Arkistoitu 15. heinäkuuta 1998 Wayback Machinessa