Codificacion Shannon-Fano
Codificacion Shannon-Fano Codificaci€n Shannon-Fano, en el campo de la compresi€n de datos, la codificaci€n Shannon-Fano es una t•cnica para construir un c€digo prefijo basado en un conjunto de s‚mbolos y sus probabilidades (estimadas o medidas). No es €ptimo en el sentido de que no consigue la menor longitud de palabra c€digo esperada posible como en la codificaci€n Huffman; aunque a diferencia de la codificaci€n Huffman, garantiza que todas las longitudes de palabras de c€digo estƒn a un bit de su ideal te€rico € logP(x). La t•cnica fue propuesta por Claude Elwood Shannon, en •Una Teor‚a Matemƒtica de la Comunicaci€n ‚, su art‚culo de 1948 introduciendo el campo de la teor‚a de la informaci€n. El m•todo fue atribuido a Robert Fano, quien posteriormente lo public€ como un informe t•cnico. La codificaci€n Shannon-Fano no debe confundirse con la codificaci€n Shannon, m•todo de codificaci€n usado para probar el teorema de Shannon de la codificaci€n sin ruido, ni con la codificaci€n Shannon-Fano-Elias (tambi•n conocida como codificaci€n Elias), el precursor de la codificaci€n aritm•tica. En la codificaci€n Shannon-Fano, los s‚mbolos se ordenan del mƒs al menos probable, y se dividen en dos subconjuntos cuyas probabilidades totales son tan pr€ximas a ser iguales como sea posible. A continuaci€n todos los s‚mbolos tendrƒn el primer d‚gito de sus c€digos asignados; los del primer subconjunto recibirƒn el •0‚ y los del segundo el •1‚. Mientras exista alg„n subconjunto con mƒs de un t•rmino, se repetirƒ el mismo proceso para determinar los sucesivos d‚gitos de sus c€digos. Cuando uno de los subconjuntos ha sido reducido a un s‚mbolo, esto significa que el c€digo del s‚mbolo es completo y que no formarƒ el prefijo del c€digo de ning„n otro s‚mbolo. El algoritmo funciona, y produce codificaciones de longitud variable bastante eficientes; cuando los dos subconjuntos producidos por una divisi€n tienen la misma probabilidad, ya que el bit de informaci€n usado para distinguirlos se usa mƒs eficientemente. Desafortunadamente, Shannon-Fano no produce siempre c€digos prefijos €ptimos; el conjunto de probabilidades {0.35, 0.17, 0.17, 0.16, 0.15} es un ejemplo de esto. Por esta raz€n, Shannon-Fano apenas se usa; la codificaci€n Huffman es casi tan computacionalmente simple y produce c€digos prefijos que siempre consiguen la menor longitud esperada de palabra de c€digo, bajo la restricci€n de que cada s‚mbolo es representado por un c€digo formado por un n„mero integral de bits. Esta es una restricci€n a menudo innecesaria, ya que los c€digos serƒn empaquetados de un extremo a otro en largas secuencias. I consideramos grupos de c€digos en un instante, s‚mbolo a s‚mbolo la codificaci€n Huff s€lo es €ptima si las probabilidades de que los s‚mbolos sean independientes y estƒn elevadas a un medio, p.e., 21/2. En la mayor‚a de las situaciones, la codificaci€n aritm•tica puede producir mayor compresi€n general que Huffman o que Shannon-Fano, ya que puede codificar en n„meros fraccionarios de bits, mƒs cercanos al contenido real de informaci€n de cada s‚mbolo. Sin embargo, la codificaci€n aritm•tica reemplazado a la de Huffman de la manera que esta sobrepasa a Shannon-Fano, ya que la codificaci€n aritm•tica es mƒs costosa computacionalmente y porque estƒ sujeta a m„ltiples patentes. La codificaci€n Shannon-Fano se usa en el m•todo de compresi€n IMPLODE, que es parte del formato de los archivos ZIP.
1
Codificacion Shannon-Fano
2
El algoritmo Shannon-Fano Un arbol Shannon-Fano se construye de acuerdo a una especificaci€n dise…ada para definir una tabla de c€digos efectiva. El algoritmo actual es simple: 1 Para una lista de s‚mbolos dada, crear su correspondiente lista de probabilidades o de frecuencias de aparici€n de manera que se conozca la frecuencia relativa de ocurrencia de cada s‚mbolo. 2 Ordenar las listas de s‚mbolos de acuerdo a la frecuencia, con los s‚mbolos de ocurrencia mƒs 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 mƒs pr€xima posible a la de la mitad derecha. 4 Asignar a la mitad izquierda el d‚gito binario •0‚, y a la mitad derecha el d‚gito •1‚. Esto significa que los c€digos para los s‚mbolos en la primera mitad empezarƒn con •0‚, y que los c€digos de la segunda mitad empezarƒn por •1‚. 5 Aplicar recursivamente los pasos 3 y 4 a cada una de las dos mitades, subdividi•ndolas en grupos y a…adiendo bits a los c€digos hasta que cada s‚mbolo se corresponde con una hoja del ƒrbol.
Ejemplo El ejemplo muestra la construcci€n de un c€digo Shannon para un peque…o alfabeto. Los cinco s‚mbolos que pueden ser codificados tienen la siguiente fr ecuencia. S•mbolo
A B C D E
Frecuencia 15 7
6
6
5
Todos los s‚mbolos 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 divisi€n, A y B tendrƒn ambas un c€digo 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 c€digo 00 y a B en otra con el c€digo 01. Tras cuatro divisiones, terminamos el ƒrbol de c€digos. Al final, los s‚mbolos del ƒrbol con frecuencias mƒs altas tienen todos c€digos de 2 bits, y los otros dos s‚mbolos con menor frecuencia tienen c€digos de 3 bits, como se ve en la tabla inferior. S•mbolo A C€digo
B
C
D
E
00 01 10 110 111
Notas Este art‚culo es una traducci€n 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 † Shannon € Fano at Binary Essence (http:/ / www.binaryessence.com/ dct/ en000041.htm)
3
Fuentes y contribuyentes del art‚culo
Fuentes y contribuyentes del art•culo Codificacion Shannon-Fano Fuente: http://es.wikipedia.org/w/index.php?oldid=68617053 Contribuyentes: Dangelin5, Ploncomi, UA31, 4 ediciones an€nimas
Licencia Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/
4