Sei sulla pagina 1di 22

SHANNON-

FANO
CODING
La tcnica fue propuesta por Claude Elwood
Shannon, en Una Teora Matemtica de la
Comunicacin, su artculo de 1948
introduciendo el campo de la teora de la
informacin. El mtodo fue atribuido a
Robert Fano, quien posteriormente lo public
como un informe tcnico.
La codificacin Shannon-Fano no debe
confundirse con la codificacin Shannon,
mtodo de codificacin usado para probar el
teorema de Shannon de la codificacin sin
ruido, ni con la codificacin Shannon-Fano-
Elias (tambin conocida como codificacin
Elias), el precursor de la codificacin
aritmtica.
La codificacin de Shannon-Fano es una compresin
sin perdida y esta considerada junto con la
codificacin Huffman como una de las
compresiones con mnima redundancia. Aunque no
es mas optima que la codificacin Huffman
La codificacin de Shannon-Fano fue el primer
mtodo estadstico que logro una buena codificacin
de longitud variable.
La codificacin Shannon-Fano
se usa en el mtodo de
compresin IMPLODE, que es
parte del formato de los
archivos ZIP.
IMPLODING. La implosin
implica comprimir secuencias
de bytes repetidamente con una
funcin de ventana deslizante y
posteriormente comprimir el
resultado utilizando mltiples
arboles Shannon-Fano.
Codificacin por tabla
Codificacin por rbol
Comienza con un conjunto de n smbolos con probabilidades
conocidas (o frecuencias) de ocurrencia. En primer lugar se
disponen los smbolos en orden decreciente, segn sus
probabilidades
Xi P(xi)
A 0.3
B 0.25
C 0.2
D 0.12
E 0.08
F 0.05
La lista obtenida se divide para formar dos
grupos, de modo que la probabilidad total Xi P(xi) 1er
de ambos grupos tenga un valor similar El A 0.3 0
conjunto de smbolos se divide en dos B 0.25 0

subconjuntos que tienen las mismas (o casi C 0.2 1

las mismas) probabilidades. A todos los D 0.12 1

smbolos de un subconjunto se les asignan E 0.08 1


F 0.05 1
cdigos que comienzan con un 0, mientras
que los cdigos de los smbolos del otro
subconjunto comienzan con un 1.
Despus, cada subconjunto se divide en dos partes de
probabilidades casi iguales, y el segundo bit de todos los cdigos se
determina de forma similar. Esto se repite de forma recursiva con
cada divisin.

Xi P(xi) 1er 2do 3era 4ta Codigo


A 0.3 0 0 ---------- ---------- 00
B 0.25 0 1 ---------- ----------- 01
C 0.2 1 0 ----------- ----------- 10
D 0.12 1 1 0 ----------- 110
E 0.08 1 1 1 0 1110
F 0.05 1 1 1 1 1111
Ejercicio:
Dada la siguiente secuencia de smbolos codifique segn shannon-fano:
DDABEBADACABAAECDCBAEACABCBAADDEAACAEAB

1 Calcular frecuencias de smbolos


A = 15 ; B = 7; C = 6; D = 6; E = 5

Simbolo frecuencia Simbolo frecuencia 1er


A 15 A 15 0
B 7 B 7 0
C 6 C 6 1
D 6 D 6 1
E 5 E 5 1
Simbolo Frecuencia 1er 2da 3era Codigo

A 15 0 0 ------------ 00

B 7 0 1 ------------ 01

C 6 1 0 ------------- 10

D 6 1 1 0 110

E 5 1 1 1 111
Simbolo frecuencia Codigo
A 15 00
B 7 01
C 6 10
D 6 110
E 5 111
Shannon-Fano Coding
vs
Huffman Coding
Cdigo Huffman. Similar al cdigo
Shannon-Fano se lo puede realizar por el
mtodo de tabla y de rbol, la diferencia
es que en el cdigo Huffman se parte
desde las probabilidades mas pequeas,
dejando de lado el smbolo con mayor
probabilidad para expresarlo con una
palabra cdigo de menor longitud.
Codificacin Huffman
Codificacin Shannon-Fano
Codificacin Codificacin
Huffman Shannon-Fano
Simbolo Probabilidad Codigo Simbolo Probabilidad Codigo

A 0.4 0 A 0.4 00
B 0.18 100 B 0.18 01
C 0.15 101 C 0.15 10
D 0.15 110 D 0.15 110
E 0.12 111 E 0.12 111
= 0,41 + 0,183 + 0.153 + 0,153 + 0,123
= 2,2 /
= 0,42 + 0,182 + 0.152 + 0,153 + 0,123
= 2,27/
E(s)=0.4log2(1/0.4)+0.18log2(1/0.18)+0.15(2)log2(1/0.15)+
0.12log2(1/.12)
E(s)=2.16 bits/smbolo
Eficiencia de Huffman n=0,983
Eficiencia de Shannon n=0,95
Codificacin Codificacin
Shannon-Fano Huffman
smbolo Frecuencia cdigo longitud total cdigo longitud total
A 24 00 2 48 0 1 24
B 12 01 2 24 100 3 36
C 10 10 2 20 101 3 30
D 8 110 3 24 110 3 24
E 8 111 3 24 111 3 24

140 138
El cdigo Shannon-Fano no ofrece la mejor
eficiencia de codificacin para la estructura de
datos del ejemplo anterior. Esto no es
necesariamente el caso para cualquier distribucin
de frecuencias. Pero el Algoritmo de Huffman
Proporciona una mejor codificacin a comparacin
de la codificacin Shannon-Fano, esto se puede
notar en la cantidad de bits utilizados. (Objetivos
de compresin)
EJERCICIO

simbolo frecuen 1era 2da 3era 4ta


cia
A
M
L
D
Y
Bibliografa
http://site.iugaza.edu.ps/jroumy/files/Shanon-Fano.pdf
http://www.binaryessence.com/dct/en000047.htm
http://es.slideshare.net/anithabalaprabhu/shannon-fano
https://www.youtube.com/watch?v=dJCck1OgsIA
https://www.youtube.com/watch?v=Sn14oGVVzSY
https://www.youtube.com/watch?v=8oCIR-YpzqE

Potrebbero piacerti anche