Codificación Shannon-Fano

Anuncio
Codificación de Shannon-Fano
Facultad de Ingeniería
Comunicación de Datos.
Profesor :
Alumnos :
Marzo, 2003
Contenido
1.
2.
3.
4.
5.
6.
Antecedentes
Método de Shannon-Fano
Propiedades de las tablas de código
Entropía
Utilización del método
Conclusión
Antecedentes
Este método de codificación fue desarrollado por
Claude Shannon en los laboratorios Bell y por
Robert Fano en MIT (Massachussets Institute of
Technology)
en la década del 40 casi
simultáneamente
C. Shannon
R. Fano
Método de Shannon - Fano
 Se refiere a la probabilidad de aparición de cada
símbolo en un mensaje.
 Básicamente se utiliza para la compresión de datos.
Propiedades Tablas de código
 Diferentes códigos, tienen diferentes tipos de bits
 Los códigos para símbolos con bajas
probabilidades tienen más bits
 Los códigos para símbolos con altas
probabilidades tienen menos bits
 Códigos de longitud diferente pueden ser
unívocamente decodificados
Entropía
 La entropía se refiere a la cantidad de bits
necesarios para representar un símbolo
En un símbolo = - log2 (probabilidad)
En un mensaje = suma de la entropía de sus
símbolos
Utilización del método
1. Para una secuencia de símbolos, se calcula la
correspondiente lista de frecuencias de aparición
de los símbolos.
2. Se ordena la lista de símbolos según 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 más cercana posible a la suma total de la parte
inferior.
Utilización del método
4. A la mitad superior de la lista se le asigna el dígito
binario 0, y a la mitad inferior se le asigna el
dígito binario 1. Esto significa que los códigos de
los símbolos en la primera mitad empezarán todos
con 0 y los códigos en la segunda mitad
empezarán todos con 1.
Utilización del método
5. Cada una de las mitades, se subdivide en grupos y
se agregan bits (digitos binarios) a los códigos
hasta que cada grupo conste de un único símbolo.
6. Se pueden representar los símbolos a modo de árbol
binario
Utilización del método
7. Se calcula la entropía como:
X = Largo de la serie / frecuencia
Entropía = Log 2 (X)
8. Una vez calculada la entropía se calcula la entropía
en el mensaje (cantidad de bits necesarios para
representar el símbolo en el mensaje)
Entropia * frecuencia del símbolo
Utilización del método
9. Finalmente el cálculo de los bits de código a
transmitir está dado por la representación binaria
(0,1) del símbolo y los bits de mensajes es la
multiplicación de los bits de códigos * la frecuencia
del símbolo
Ejemplo
 Secuencia de símbolos inicial:
DDABEBADACABAAECDCBAEACA
BCBAADDEAACAEAB
1. Cálculo de Frecuencias de símbolos
DDABEBADACABAAECDCBAEACA
BCBAADDEAACAEAB
 A = 15 ; B = 7; C = 6; D = 6; E = 5
Total de veces que se repite cada símbolo en la
series
2. Lista de símbolos
Símbolo
Frecuencia
A
15
B
7
C
6
D
6
E
5
• Frecuencia: Veces que aparece cada letra o símbolo en la serie
a transmitir
3. Se divide el grupo en dos (entre B y C)
Símbolo Frecuencia
A
15
B
7
C
6
D
6
E
5
15+7 = 22
6+6+5=17
4. Mitad superior se asigna 0 e inferior 1
Símbolo Frecuencia 1 div
A
15
0
B
7
0
C
6
1
D
6
1
E
5
1
5. Se agregan bits hasta que sean únicos
Símbolo Frecuencia 1 div 2 div 3 div
A
15
0
00
------
B
7
0
01
------
C
6
1
10
------
D
6
1
11
110
E
5
1
11
111
6. Representación como Árbol Binario
Raíz
0
A = 00
B = 01
C = 10
D = 110
E = 111
1
0
1
0
A
B
C 0
1
D
E
1
7. Entropía
Símbolo
A=Log2(39/15)=1.38
B=Log2 (39/7) =2.48
C=Log2 (39/6) =2.70
D=Log2 (39/6) =2.70
E=Log2 (39/5) =2.96
A
B
C
D
E
Total
Frec. Entropía
15
7
6
6
5
39
1.38
2.48
2.70
2.70
2.96
12.32
8. Entropía en el mensaje
Símbolo Frec. Entropía Entropía en el mensaje
A
B
C
D
E
Total
15
7
6
6
5
39
1.38
2.48
2.70
2.70
2.96
12.32
20.68
17.35
16.20
16.20
14.82
85.25
9. Bits de código y de Mensaje
Símbolo
Frec.
A
B
C
D
E
Total
15
7
6
6
5
39
Entropía Entropía Bits
Bits
mensaje Código Mensaje
1.38
20.68
2
30
2.48
17.35
2
14
2.70
16.20
2
12
2.70
16.20
3
18
2.96
14.82
3
15
12.32
85.25
12
89
Conclusión
Si codificáramos esta secuencia de símbolos
utilizando 8 bits, utilizaríamos en total 312
bits (8 * 39 = 312).
Si utilizáramos Shannon-Fano sólo
usaríamos 89 bits.
=> Sólo codificamos el 29% (89/312)
Descargar