Está en la página 1de 14

Codificacin de Shannon-

Fano
Introduccin
La codificacin Shannon-Fano es una tcnica
para construir un cdigo prefijo basado en un
conjunto de smbolos y sus probabilidades
(estimadas o medidas). No es ptimo en el
sentido de que no consigue la menor longitud
de palabra cdigo esperada posible como en
la codificacin Huffman; aunque a diferencia
de la codificacin Huffman, garantiza que
todas las longitudes de palabras de cdigo
estn a un bit de su ideal terico logP(x).
Usos
La codificacin Shannon-Fano se usa
en el mtodo de compresin
IMPLODE, que es parte del formato
de los archivos ZIP.
Algoritmo
1) Para una secuencia de smbolos,
se calcula la correspondiente lista de
frecuencias de aparicin de los
smbolos.

2) Se ordena la lista de smbolos


segn su frecuencia en orden
decreciente.

3) Se divide la lista en dos partes, de


forma que la suma total de
frecuencias de la mitad superior sea
lo ms cercana posible a la suma
4) A la mitad superior de la lista se le asigna
el dgito binario 0, y a la mitad inferior se le
asigna el dgito binario 1. Esto significa que
los cdigos de los smbolos en la primera
mitad empezarn todos con 0 y los cdigos
en la segunda mitad empezarn todos con 1.

5) Recursivamente se aplica el mismo


procedimiento a cada una de las dos
mitades, se subdivide en grupos y se
agregan bits a las cdigos hasta que cada
grupo conste de un nico smbolo
6) Se calcula la entropa como:
X = Largo de la serie /
frecuencia
Entropa = Log 2 (X)

7). Una vez calculada la entropa se


calcula la entropa en el mensaje
(cantidad de bits necesarios para
representar el smbolo en el mensaje)

Entropa * frecuencia del smbolo


Ejemplo
Ejemplo de clculo de cdigos de Shannon-Fano

Secuencia de smbolos inicial:

DDABEBADACABAAECDCBAEACABCBA
ADDEAACAEAB

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

Total de veces que se repite cada


smbolo en la series
Tabla de
frecuencias:
Se aplica la divisin entre B y C quedando
dos grupos, uno suma 22 y otro 17
Se contina el proceso hasta quedar
como se muestra en la siguiente
tabla
Los cdigos que representan los
smbolos se pueden expresar en forma
de rbol:
La siguiente tabla muestra la cantidad de informacin
que contiene el mensaje segn nuestro cuerpo terico
Secuencia de smbolos sin
codificar
39 x 8 bits = 312 bits
Usando Shannon-Fano
necesitaramos: 89 bits
Razn de compresin
Slo codificamos el 29%
(89/312)

También podría gustarte