Algoritmo para código de prefijo binario
En teoría de la información , la codificación de Shannon-Fano-Elias es un precursor de la codificación aritmética , en la que se utilizan probabilidades para determinar palabras clave. [1] Lleva el nombre de Claude Shannon , Robert Fano y Peter Elias .
Descripción del algoritmo
Dada una variable aleatoria discreta X de valores ordenados a codificar, sea la probabilidad de cualquier x en X . Defina una función
Algoritmo:
- Para cada x en X ,
- Sea Z la expansión binaria de .
- Elija la longitud de la codificación de x , , para que sea el número entero
- Elija la codificación de x , , sean los primeros bits más significativos después del punto decimal de Z.
Ejemplo
Sea X = { A , B , C , D }, con probabilidades p = {1/3, 1/4, 1/6, 1/4}.
- Para A
- En binario, Z ( A ) = 0,001 0101010 ...
- El código ( A ) es 001
- Para B
- En binario, Z ( B ) = 0,011 10101010101 ...
- El código ( B ) es 011
- Para C
- En binario, Z ( C ) = 0. 1010 10101010...
- El código ( C ) es 1010
- Para D
- En binario, Z(D) = 0,111
- El código ( D ) es 111
Análisis de algoritmos
Código de prefijo
La codificación de Shannon-Fano-Elias produce un código de prefijo binario que permite una decodificación directa.
Sea bcode( x ) el número racional formado añadiendo un punto decimal antes de un código binario. Por ejemplo, si code( C ) = 1010 entonces bcode( C ) = 0,1010. Para todo x , si no existe y tal que
Entonces todos los códigos forman un código de prefijo.
Comparando F con la CDF de X , esta propiedad se puede demostrar gráficamente para la codificación de Shannon-Fano-Elias.
Por definición de L se deduce que
Y como los bits después de L ( y ) se truncan de F ( y ) para formar código ( y ), se deduce que
Por lo tanto, bcode( y ) no debe ser menor que CDF( x ).
Por lo tanto, el gráfico anterior demuestra que la propiedad , por lo tanto, el prefijo se cumple.
Longitud del código
La longitud media del código es .
Por lo tanto, para H ( X ), la entropía de la variable aleatoria X ,
Los códigos de Shannon Fano Elias utilizan de 1 a 2 bits adicionales por símbolo de X que la entropía, por lo que el código no se utiliza en la práctica.
Véase también
Referencias
- ^ TM Cover y Joy A. Thomas (2006). Elementos de la teoría de la información (2.ª ed.). John Wiley and Sons. pp. 127–128. ISBN 978-0-471-24195-9.