You are on page 1of 4

Codificacion Shannon-Fano

Codificacion Shannon-Fano
Codificacin Shannon-Fano, en el campo de la compresin de datos, 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). 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. En la codificacin Shannon-Fano, los smbolos se ordenan del ms al menos probable, y se dividen en dos subconjuntos cuyas probabilidades totales son tan prximas a ser iguales como sea posible. A continuacin todos los smbolos tendrn el primer dgito de sus cdigos asignados; los del primer subconjunto recibirn el 0 y los del segundo el 1. Mientras exista algn subconjunto con ms de un trmino, se repetir el mismo proceso para determinar los sucesivos dgitos de sus cdigos. Cuando uno de los subconjuntos ha sido reducido a un smbolo, esto significa que el cdigo del smbolo es completo y que no formar el prefijo del cdigo de ningn otro smbolo. El algoritmo funciona, y produce codificaciones de longitud variable bastante eficientes; cuando los dos subconjuntos producidos por una divisin tienen la misma probabilidad, ya que el bit de informacin usado para distinguirlos se usa ms eficientemente. Desafortunadamente, Shannon-Fano no produce siempre cdigos prefijos ptimos; el conjunto de probabilidades {0.35, 0.17, 0.17, 0.16, 0.15} es un ejemplo de esto. Por esta razn, Shannon-Fano apenas se usa; la codificacin Huffman es casi tan computacionalmente simple y produce cdigos prefijos que siempre consiguen la menor longitud esperada de palabra de cdigo, bajo la restriccin de que cada smbolo es representado por un cdigo formado por un nmero integral de bits. Esta es una restriccin a menudo innecesaria, ya que los cdigos sern empaquetados de un extremo a otro en largas secuencias. I consideramos grupos de cdigos en un instante, smbolo a smbolo la codificacin Huff slo es ptima si las probabilidades de que los smbolos sean independientes y estn elevadas a un medio, p.e., 21/2. En la mayora de las situaciones, la codificacin aritmtica puede producir mayor compresin general que Huffman o que Shannon-Fano, ya que puede codificar en nmeros fraccionarios de bits, ms cercanos al contenido real de informacin de cada smbolo. Sin embargo, la codificacin aritmtica reemplazado a la de Huffman de la manera que esta sobrepasa a Shannon-Fano, ya que la codificacin aritmtica es ms costosa computacionalmente y porque est sujeta a mltiples patentes. La codificacin Shannon-Fano se usa en el mtodo de compresin IMPLODE, que es parte del formato de los archivos ZIP.

Codificacion Shannon-Fano

El algoritmo Shannon-Fano
Un arbol Shannon-Fano se construye de acuerdo a una especificacin diseada para definir una tabla de cdigos efectiva. El algoritmo actual es simple: 1 Para una lista de smbolos dada, crear su correspondiente lista de probabilidades o de frecuencias de aparicin de manera que se conozca la frecuencia relativa de ocurrencia de cada smbolo. 2 Ordenar las listas de smbolos de acuerdo a la frecuencia, con los smbolos de ocurrencia ms frecuente a la izquierda y los menos comunes a la derecha. 3 Dividir la lista en dos partes, haciendo la frecuencia total de la mitad izquierda lo ms prxima posible a la de la mitad derecha. 4 Asignar a la mitad izquierda el dgito binario 0, y a la mitad derecha el dgito 1. Esto significa que los cdigos para los smbolos en la primera mitad empezarn con 0, y que los cdigos de la segunda mitad empezarn por 1. 5 Aplicar recursivamente los pasos 3 y 4 a cada una de las dos mitades, subdividindolas en grupos y aadiendo bits a los cdigos hasta que cada smbolo se corresponde con una hoja del rbol.

Ejemplo
El ejemplo muestra la construccin de un cdigo Shannon para un pequeo alfabeto. Los cinco smbolos que pueden ser codificados tienen la siguiente frecuencia.
Smbolo A B C D E

Frecuencia 15 7 6 6 5

Todos los smbolos son ordenados por frecuencia, de izquierda a derecha. Dividiendo entre B y C obtenemos un total de 17 en el grupo de la derecha y 22 en el de la izquierda. Esto minimiza la diferencia total entre los dos grupos. Con esta divisin, A y B tendrn ambas un cdigo que empezar con el bit 0, y C, D y E con el bit 1. Seguidamente, la mitad izquierda del rbol se subdivide en A y B, lo que pone a A en una hoja con el cdigo 00 y a B en otra con el cdigo 01. Tras cuatro divisiones, terminamos el rbol de cdigos. Al final, los smbolos del rbol con frecuencias ms altas tienen todos cdigos de 2 bits, y los otros dos smbolos con menor frecuencia tienen cdigos de 3 bits, como se ve en la tabla inferior.
Smbolo A Cdigo B C D E

00 01 10 110 111

Notas
Este artculo es una traduccin parcial de "Shannon-Fano coding", encontrado en Wikipedia English

References
C.E. Shannon, " A Mathematical Theory of Communication (http://cm.bell-labs.com/cm/ms/what/ shannonday/shannon1948.pdf)", Bell System Technical Journal, vol. 27, pp. 379-423, July 1948. R.M. Fano, "The transmission of information", Technical Report No. 65, 1949. Research Laboratory of Electronics, M.I.T., Cambridge (Mass.), USA.

Codificacion Shannon-Fano

Enlaces externos
ShannonFano at Binary Essence (http://www.binaryessence.com/dct/en000041.htm)

Fuentes y contribuyentes del artculo

Fuentes y contribuyentes del artculo


Codificacion Shannon-Fano Fuente: http://es.wikipedia.org/w/index.php?oldid=68617053 Contribuyentes: Dangelin5, Ploncomi, UA31, 4 ediciones annimas

Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/