Upload
adrian-nae
View
80
Download
8
Embed Size (px)
DESCRIPTION
Tehnologia Informatiilor si a codurilorTicProiect Tic LaboratorLaborator Tic
Citation preview
Nae Adrian Grupa 8216
Codarea Shannon – Fano
Algoritmii statici de compresie presupun traversarea în întregime a fişierului ce
urmează a fi compresat, înaintea realizării compresiei. Din această clasă fac e parte algoritmul
Shannon - Fano.
În 1949, Claude Shannon şi Robert Fano au venit simultan cu ideea unei metode
sistematice de a atribui cuvinte de cod bazate pe probabilitatea simbolurilor. Acesta este prima
metodă bine-cunoscută de compresie a semnalelor digitale, cunoscută sub numele de codarea
Shannon-Fano. Algoritmul atribuie cuvinte de cod binare simbolurilor dintr-un fişier de date.
Avantajul acestei tehnici de codare este simplitatea. Codul este construit din mesajul
sursă ce urmează a fi transmis v(x) şi probabilitaţiile de apariţie a caracterelor p(v(x)), ordonate
în ordinea descrescătoare a apariţiei lor.
Algoritmul Shannon – Fano este împărţit în trei faze:
parcurgerea mesajului ce urmează a fi transmis î n vederea stabilirii frecvenţelor de apariţie a fiecarui simbol;
codificarea simbolurilor după un algoritm prestabilit; compresia fişierului folosind noul cod Fano-Shannon.
Paşii algoritmului de codificare a simbolurilor propus sunt :
1. simbolurile din cuvântul de transmis se sortează în funcţie de numarul de apariţii. 2. se crează un arbore binar a cărui rădăcină este cuvântul iniţial. 3. urmatoarele două noduri sunt formate din acelaşi cuvâ nt, împarţit astfel încât, în
fiecare nod frecvenţele de apariţie ale caracterelor să fie pe câ t posibil egale. 4. se atribuie primului nodului bitul 0 iar de al doilea bitul 1. 5. procesul este unul recursiv şi se repetă până când fiecare nod conţine doar un singur
caracter.
Exemplu de codare Shannon – Fano. Se presupune că s-a parcurs mesajul iar frecvenţele de apariţie ale simbolurilor
sunt următoarele:
1 1 1 1 1 1 2 log 2 log 4 log 2.75
4 4 8 8 16 16
1 1 1 P x
i n
i 2 2 2 3 4 4 2.75
4 8 16
Mesaj X1 X2 X3 X4 X5 X6 X7 X8
Probabilitate 0.25 0.25 0.125 0.125 0.0625 0.0625 0.0625 0.0625
Se crează arborele binar .
x1,x2,x3,x4,x5 ,x6,x7,x8
0 1
x1,x2 x3,x4,x5,x6,x7,x8
00 01 10 11
x1 x2 x3,x4 x5,x6,x7,x8
100 101 110 111
x3 x4 x5,x6 x7,x8
1100 1101 1110 1111
x5 x6 x7 x8
Entropia este dată de formula :
H
… iar lungimea medie a vectorului de codare este :
L
Aşadar metoda de codare Shannon – Fano are o eficenţa de 100%, în acest caz.
Însa această eficienţă a algoritmului Shannon – Fano nu este mereu atât de ridicată
deoarece depinde de cuvintele de intrare, care vor fi mereu variabile. Vectorul de codare creşte
de asemenea liniar cu numărul simbolurilor.Un exemplu de eficienţa scăzută a codarii este
pentru setul de probabilităţi { 0.35, 0.17, 0,17, 0,16, 0,15}.Altă metodă de codare preferată în
locul celei Shannon – Fano este codarea Huffman.
În concluzie, principalele avantaje şi dezavantaje ale codarii Shannon – Fano sunt:
metodă simplu de implementat
metodă statică de codare
metodă de compresie în doi paşi
este semi – adaptabilă pentru diverse mesajele de intrare
metode asimetrică de codare
rezultatul codării este mai slab decâ t cel al codarii Huffman
datele de ieşire optime nu sunt garantate