Вы находитесь на странице: 1из 26

Rafael Molina Tema 2: Herramientas 1

Tema 2: Teora de la
Informacin, Modelos para
la Compresin, Codificacin.
Rafael Molina
Depto de Ciencias de la Computacin
e Inteligencia Artificial
Universidad de Granada
Rafael Molina Tema 2: Herramientas 2
Objetivos del tema
Breve introduccin a la Teora de la Informacin
Modelos para la compresin
Modelos fsicos
Modelos probabilsticos simples
Modelos de Markov
Modelo de fuente compuesta
Codificacin
Cdigos decodificables de modo nico
Test para decodificacin nica
Cdigos prefijo
Decodificacin de una secuencia de palabras en
cdigo prefijo
Resumen
Bibliografa
Contenidos
Rafael Molina Tema 2: Herramientas 3
II.1 Objetivos del tema
1. Necesitamos conocer algunos conceptos bsicos de la
teora de la informacin para analizar los mtodos de
compresin que veremos en el curso.
2. Veremos tambin en este tema modelos que pueden
utilizarse para describir los datos y para su posterior
codificacin.
3. Por ltimo, analizaremos algunos tipos de cdigos que
sern utilizados a lo largo del curso.
Rafael Molina Tema 2: Herramientas 4
II.2 Breve Introduccin a
la teora de la Informacin
C. Shannon
1916-2001
Supongamos que tenemos un suceso que es el resultado de
un proceso aleatorio. Si P(A) es la probabilidad de dicho
suceso entonces la auto-informacin asociada a A viene dada
por
Aunque la idea de medir cuantitativamente
la informacin haba sido estudiada con
anterioridad, Claude Shannon (ingeniero
elctrico en Bells Lab) fue la persona que
desarroll los conceptos de forma
matemtica.
) ( log
) (
1
log ) ( A P
A P
A i = =
El logaritmo ser
siempre entendido
en base dos
Rafael Molina Tema 2: Herramientas 5
1. Recordemos que log(1)=0 y la funcin -log(x) logaritmo
crece cuando x se mueve de uno a cero. Por tanto, a
mayor probabilidad de un suceso menor auto-informacin
asociada.
2. De Sherlock Holmes: el ladrido de un perro durante un
robo es un suceso muy probable y por tanto contiene poca
informacin, sin embargo el que un perro no labre durante
un robo es muy poco probable y contiene mucha
informacin.
3. Propiedad de la auto-informacin: La auto-informacin de
dos sucesos A y B que son independientes es la suma las
auto-informaciones de A y B.
Demostracin:
) ( ) ( ) log( ) ( log
] indep. [ ) ( log
) (
1
log ) (
B i A i B A P
AB P
AB P
AB i
+ = =
= =
Rafael Molina Tema 2: Herramientas 6
Ejemplo 2.1:
Sean cara (C) y cruz (X) los posibles resultados de lanzar una
moneda. Si la moneda no est sesgada tendremos
2
1
) ( ) ( = = X P C P
e
bit 1 ) ( ) ( = = X i C i
La cantidad de informacin depende de la base del logaritmo.
Si la base del logaritmo es 2 la unidad es bits, si es e la
unidad es nats y si es 10 la unidad se llama hartleys.
Si la moneda est cargada la informacin asociada a cada
suceso es diferente. Por ejemplo, si
8
7
) ( ,
8
1
) ( = = X P C P bits 193 . 0 ) ( bits 3 ) ( = = X i C i
Rafael Molina Tema 2: Herramientas 7
Experimento
.
.
.
.
A
1
A
i
A
M
Los sucesos A
i
son
independientes y
cubren todos los
posibles resultados del
experimento
La cantidad
) log( ) ( ) ( ) (
1 1
k
M
k
k k
M
k
k
A A P A i A P H
_ _
= =
= =
Recibe el nombre de entropa de primer orden asociada al
experimento (fuente)
Shannon prob que lo mejor que un esquema de
compresin sin prdida puede hacer es codificar la salida
de una fuente (experimento) con un nmero medio de bits
igual a la entropa de la fuente.
Rafael Molina Tema 2: Herramientas 8
En la terminologa de compresin, el conjunto de smbolos A
generados por una fuente S recibe el nombre de alfabeto y los
smbolos son llamados letras. As pues, hablaremos de letras
del alfabeto.
n
n
G
n
H
1
lim ) (

= S
Dada una fuente S que tiene un alfabeto A={1,2,,m} que
genera una sucesin {X
1
,X
2
,.} su entropa viene dada por
donde
( ) ( )
_ _
= =
= = = = =
m
i
m
i
n n n n n
n
i X i X P i X i X P G
1 1
1 1 1 1
1
, , log , , ...
y {X
1
,,X
n
} es una sucesin de longitud n de la fuente S.
(1)
Observa: nos dar el nmero
medio de bits por smbolo
(letra)
Rafael Molina Tema 2: Herramientas 9
Supongamos que las variables X
i
son independientes e
idnticamente distribuidas (iid) y notemos su distribucin
comn mediante X. Puede probarse fcilmente que
( ) ( )
( ) ( )
_
_ _
=
= =
= = = =
= = = = =
m
i
m
i
m
i
n n n n n
i X P i X P n iid
i X i X P i X i X P G
n
1
1 1
1 1 1 1
log ) (
, , log , , ...
1

y la ecuacin para la entropa se convierte en
( ) ( )
_
=
= = =
m
i
i X P i X P H
1
log ) (S
(2)
En general las entropas definidas en (1) (pgina anterior) y
(2) no coinciden por lo que (2) suele recibir el nombre de
entropa de primer orden y (1) entropa.
Rafael Molina Tema 2: Herramientas 10
Es muy importante entender bien este teorema. Supongamos
que tenemos una fuente cuyas realizaciones son
independientes con tres posibles resultados A
1
, A
2
y A
3
de
forma que
bits 5 . 1 2
4
1
2
4
1
1
2
1
= + + = H
4
1
) ( ) (
2
1
) (
3 2 1
= = = A P A P A P
La entropa de esta fuente vale
Un esquema de codificacin que alcanza esta cota inferior es:
A
1
A
3
A
2
0
10
11
Sin embargo, si la fuente genera los smbolos
A
2
A
2
A
2
A
2
es obvio que para esta secuencia en
particular podramos haber elegido otra
codificacin mejor. El teorema de Shannon habla
de comportamiento medio.
Rafael Molina Tema 2: Herramientas 11
Sigamos entendiendo el teorema
de Shannon.
Consideremos una fuente binaria
con sucesos A
1
y A
2
que cumplen
P(A
1
)=p y P(A
2
)=1-p 0 p 1
1. Una codificacin que le asigne un dgito binario (por
ejemplo el cero) a A
1
y el otro dgito binario (el uno) a A
2
,
slo ser ptima si p=1/2.
2. Si p1/2, la entropa, H(p), es siempre menor que uno y el
teorema de Shannon nos dice que, al menos, tericamente
podemos hacerlo mejor que codificar A
1
y A
2
con un bit
cada uno.
Su entropa vale H(p)=-plog(p)-(1-p)log(1-p) (ver
grfico)
Rafael Molina Tema 2: Herramientas 12
Qu ocurre si queremos codificar una secuencia dada y no
conocemos las probabilidades de las letras del alfabeto?.
Consideremos la secuencia
1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10
si suponemos independencia en cada observacin (es decir,
todas las variables X
i
son iid) y estimamos la probabilidad
de ocurrencia de cada letra mediante su frecuencia en la
secuencia obtenemos
16
2
) 9 ( ) 8 ( ) 5 ( ) 4 ( ) 3 ( ) 2 (
16
1
) 10 ( ) 7 ( ) 6 ( ) 1 (
= = = = = =
= = = =
P P P P P P
P P P P
Rafael Molina Tema 2: Herramientas 13
Usando estas probabilidades, la entropa de la fuente sera
bits 25 . 3 ) ( log ) (
10
1
= =
_
= i
i P i P H
Puede probarse que lo mejor que podemos hacer para
codificar esta secuencia es utilizar 16x3.25 bits supuesto que
las 16 observaciones vienen de variables
independientes idnticamente distribuidas.
Es importante entender la diferencia entre este resultado y el
teorema de Shannon que hemos visto. El teorema de Shannon
habla de comportamiento medio y este resultado habla de una
secuencia concreta con un modelo concreto de observaciones.
Recuerda que los 3.25 bits se alcanzan suponiendo iid en las
16 observaciones.
Rafael Molina Tema 2: Herramientas 14
Consideremos de nuevo la secuencia
1 2 3 2 3 4 5 4 5 6 7 8 9 8 9 10
ahora, para eliminar la correlacin entre los datos calculamos
la diferencia entre cada valor y el anterior. Obtenemos
entonces la secuencia (adems del uno inicial)
1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 1
de la que calculamos
bits 70 . 0 ) (
15
3
) 1 (
15
12
) 1 ( = = = S H P P
y podramos codificar la secuencia desde el segundo elemento
en el mejor de los casos, bajo las hiptesis que sabemos, con
15x0.70 bits.
Rafael Molina Tema 2: Herramientas 15
Observemos que en este caso tendramos que codificar la
secuencia
1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 1
y tambin enviar el primer valor, un uno y el modelo para la
secuencia, es decir,
1 16 , , 2
1 1
= = + =

x n r x x
n n n

donde x
n
es el n-simo elemento de la secuencia original y
r
n
es el n-simo elemento de la secuencia de residuos.
Este modelo se llama esttico porque los parmetros no
cambian con n. Un modelo en el que los parmetros
cambian (o se adaptan) con n se llama adaptativo.
Rafael Molina Tema 2: Herramientas 16
Consideremos ahora la siguiente secuencia
1 2 1 2 3 3 3 3 1 2 3 3 3 3 1 2 3 3 1 2
Necesitaramos 20x1.5=30 bits para representar la
secuencia. Sin embargo, si consideramos dos smbolos
consecutivos tendremos
lo bits/smbo 5 . 1 ) (
2
1
) 3 (
4
1
) 2 ( ) 1 (
=
= = =
S H
P P P
Si miramos un smbolo cada vez tendremos
o bit/smbol 1 ) (
2
1
) 3 3 ( ) 2 1 (
=
= =
S H
P P
Rafael Molina Tema 2: Herramientas 17
1. Obviamente cuanto mayor sea el tamao de los bloques
de letras del alfabeto ms podemos, en principio,
mejorar la compresin.
2. Sin embargo, hay obviamente un lmite de tipo prctico
en esta aproximacin.
3. En la siguiente seccin vamos a describir diferentes
modelos usados en los mtodos de compresin sin
prdida.
Necesitaramos por tanto, con este modelo, 10x1=10 bits
para representar la secuencia.
Rafael Molina Tema 2: Herramientas 18
II.3 Modelos para la compresin
II.3.1 Modelos fsicos
Aunque el proceso fsico de obtencin de datos es, en
muchos casos, muy complicado, hay situaciones en las
que es posible el modelado de dicho proceso.
Veremos como el modelo fsico puede ser utilizado en
problemas de compresin de audio.
Rafael Molina Tema 2: Herramientas 19
II.3.2 Modelos probabilsticos simples
El modelo probabilstico ms simple que podemos usar es
suponer que cada letra del alfabeto que se genera es
independiente de las dems y que todas tienen la misma
probabilidad. Es el llamado modelo de ignorancia que
normalmente no es cierto y en el que, por desgracia, no
podemos alcanzar mucha compresin.
Supongamos que m es el nmero de letras del alfabeto. Si
una fuente S sigue el modelo de ignorancia su entropa vale:
m
m m
H
m
i
log
1
log
1
) (
1
= =
_
=
S
Rafael Molina Tema 2: Herramientas 20
El modelo probabilstico siguiente en complicacin mantiene
la hiptesis de independencia, pero elimina la asignacin de
la misma probabilidad a todas las letras. As pues, ahora
tenemos para A={a
1
,,a
m
} el modelo de probabilidades
P={P(a
1
),,P(a
m
)} siendo uno la suma de las
probabilidades. Su entropa vale:
Si la hiptesis de independencia no es correcta, tenemos que
utilizar otros modelos alternativos.
Ejemplos de estos modelos probabilsticos ms
complicados son los modelos de Markov que veremos a
continuacin.
( ) ( )
_
=
= = =
m
i
i X P i X P H
1
log ) (S
Rafael Molina Tema 2: Herramientas 21
II.3.3 Modelos de Markov
La forma ms usada para representar
dependencia entre datos es el uso de las
cadenas de Markov.
Los modelos de Markov utilizados en
compresin sin prdida son las llamadas
cadenas de Markov en tiempo discreto.
Andrei Andreivich Markov
(1856-1922)
Una sucesin de observaciones {x
n
} se dice que sigue un
modelo de Markov de orden k-simo si para todo n
) , , , | ( ) , , | (
1 1

k n n n k n n n
x x x P x x x P

=
Es decir, el conocimiento de los k smbolos anteriores es
equivalente al conocimiento de todo el pasado. Los valores
tomados por el conjunto {x
1
,,x
k
} reciben el nombre de
estado del proceso.
Rafael Molina Tema 2: Herramientas 22
El modelo de Markov ms usado es el de primer orden en el
que se tiene
) | ( ) , , | (
1 2 1
=
n n n n n
x x P x x x P
Podemos desarrollar diferentes modelos de primer orden
dependiendo de la forma de dependencia entre las
muestras.
Por ejemplo, podramos utilizar el modelo lineal siguiente
Donde
n
es ruido (normalmente blanco). Este modelo se
utiliza frecuentemente en la codificacin de imgenes y voz.
Veamos un modelo de Markov para codificacin de fax.
n n n
x x c + =
1
Rafael Molina Tema 2: Herramientas 23
B N
Para el instante actual tenemos las probabilidades P(B) y P(N):
1. Una vez observada la letra N tendremos P(B|N) y P(N|N) que
cumplen P(B|N)+P(N|N)=1
2. Una vez observada la letra B tendremos P(B|B) y P(N|B) que tambin
cumplen P(B|B)+P(N|B)=1. Grficamente:
P(N|B)
P(B|N)
P(B|B)
P(N|N)
Supongamos que tenemos un texto en Blanco y Negro.
Pensamos que la aparicin de un pxel blanco (B) en la siguiente
observacin depende de que hayamos observado un pixel blanco (B) o
negro (N) en la observacin actual.
Rafael Molina Tema 2: Herramientas 24
bits 206 . 0 2 . 0 log 2 . 0 8 . 0 log 8 . 0 ) ( = = S H
Supongamos que las probabilidades asociadas a nuestra
fuente S son
2 . 0 ) ( 8 . 0 ) ( = = N P B P
con
7 . 0 ) | ( 3 . 0 ) | ( 01 . 0 ) | ( 99 . 0 ) | ( = = = = N N P N B P B N P B B P
Supongamos que queremos codificar a partir del segundo
trmino una sucesin de Bs y Ns. Para el primero,
obviamente, usamos como lmite inferior la entropa
correspondiente a las probabilidades P(B)=0.8 y P(N)=0.2.
Si suponemos independencia tendremos
Ejemplo II.3.1
Rafael Molina Tema 2: Herramientas 25
Tambin podemos basarnos en la entropa de las distribuciones
condicionadas a los dos casos posibles:
Observada una N
Observada una B
bits 881 . 0 7 . 0 log . 0 03 log 3 . 0
)) | ( log( ) | ( )) | ( log( ) | ( ) (
= =
= N B P N B P N N P N N P H
N
S
bits 081 . 0 99 . 0 log 99 . 0 01 . 0 log 01 . 0
)) | ( log( ) | ( )) | ( log( ) | ( ) (
= =
= B B P B B P B N P B N P H
B
S
Por tanto, para la codificacin a partir del segundo smbolo
tendramos como cota inferior
bits 107 . 0 081 . 0 8 . 0 881 . 0 2 . 0
) ( ) ( ) ( ) ( ) (
= + =
+ =
N B
S S S H N P H B P H
Casi la mitad de la obtenida cuando se supone independencia.
Rafael Molina Tema 2: Herramientas 26
Como es obvio, los modelos de Markov son especialmente
tiles para la compresin de texto un problema en el que la
aparicin de una letra condiciona la siguiente letra en aparecer.
Shannon utiliz un modelo de Markov de segundo orden para
la lengua inglesa usando 26 letras y un espacio. Obtuvo una
entropa de 3.1 bits/letra. Para un modelo de segundo orden
basado en palabras y no en letras obtuvo una entropa de 2.4
bits/smbolo.
Conociendo las 100 letras anteriores, Shannon acot la
entropa del smbolo siguiente entre 1.3 y 0.6 bits. No
obstante, si usamos un modelo de orden k con N letras para la
prediccin, tenemos N
k
posibles contextos y muchos no
aparecern nunca como realizacin del sistema.
Rafael Molina Tema 2: Herramientas 27
II.3.4 Modelo de fuente compuesta
Los modelos de fuente compuesta se pueden representar
como un conjunto de fuentes individuales S
i
en el que cada
fuente S
i
tiene su modelo M
i
y un conmutador que
selecciona la fuente S
i
con probabilidad P
i
.
El modelo es muy rico y puede usarse para describir
procesos muy complicados.
Fuente 1
Fuente 2
Fuente n
.
.
.
conmutador
Rafael Molina Tema 2: Herramientas 28
II.4 Codificacin
Un alfabeto ser un conjunto de smbolos llamados letras.
Codificacin(para nosotros)=asignacin de secuencias binarias a
letras de un alfabeto.
El conjunto de secuencias binarias se llama cdigo. Los miembros
individuales del conjunto se llaman palabras del cdigo.
Un alfabeto pueden ser las letras maysculas y minsculas y
algunos smbolos de punrtuacin. Estos elementos se llamarn
letras.
A cada letra le asignamos un cdigo en binario (palabra de cdigo)
y el conjunto total se llama cdigo. ASCII es un cdigo de longitud
fija.
Rafael Molina Tema 2: Herramientas 29
II.4.1 Cdigos decodificables de modo nico
Letra Probabilidad Cdigo 1 Cdigo 2 Cdigo 3 Cdigo 4
a
1
0.5 0 0 0 0
a
2
0.25 0 1 10 01
a
3
0.125 1 00 110 001
a
4
0.125 10 11 111 0001
Longitud media 1.125 1.25 1.75 1.875
Consideremos el ejemplo siguiente (ver tabla): nuestro
alfabeto tiene cuatro letras con las probabilidades que se
muestran y pensamos en asignarles los siguientes cdigos.
La entropa de esta fuente es 1.75 bits/smbolo.
Rafael Molina Tema 2: Herramientas 30
Letra Probabilidad Cdigo 1
a
1
0.5 0
a
2
0.25 0
a
3
0.125 1
a
4
0.125 10
Longitud media 1.125
El primer cdigo parece el
mejor en cuanto a la longitud
media.
Sin embargo los smbolos a
1
y
a
2
han sido asignados a la
misma palabra.
Cuando leemos un cero no
sabemos de qu smbolo
viene
Necesitamos trabajar con cdigos que asignan palabras
distintas a smbolos distintos.
Rafael Molina Tema 2: Herramientas 31
Letra Probabilidad Cdigo 2
a
1
0.5 0
a
2
0.25 1
a
3
0.125 00
a
4
0.125 11
Longitud media 1.25
Este cdigo no parece tener
el problema de la
ambigedad.
Sin embargo si tenemos la
secuencia de bits 100 su
decodificacin no es nica.
Nos gustara que la secuencia tuviera una decodificacin nica
por el decodificador.
Rafael Molina Tema 2: Herramientas 32
La regla de decodificacin de
este cdigo es simple:
Acumular dgitos hasta que
encontremos un cero o
encontremos tres unos
consecutivos.
Este tipo de cdigos recibe el nombre de instantneos.
Cuando llega una codificacin de un mensaje somos capaces
de decodificarla inmediatamente.
Letra Probabilidad Cdigo 3
a
1
0.5 0
a
2
0.25 10
a
3
0.125 110
a
4
0.125 111
Longitud media 1.75
Rafael Molina Tema 2: Herramientas 33
La regla de decodificacin de
este cdigo es muy simple:
La decodificacin consistir
en acumular dgitos hasta que
encontremos un cero. El bit
anterior al cero es el ltimo
de la anterior palabra
Este cdigo no es instantneo, aunque casi cumple la
condicin de instantaneidad. La condicin de instantaneidad
es interesante pero no es obligatoria como veremos a
continuacin.
Letra Probabilidad Cdigo 4
a
1
0.5 0
a
2
0.25 01
a
3
0.125 011
a
4
0.125 0111
Longitud media 1.875
Rafael Molina Tema 2: Herramientas 34
Estudiemos un poco ms la
instantaneidad de los cdigos.
Consideremos la codificacin
proporcionada por la tabla a la
izquierda y decodifiquemos la
secuencia 011111111111111111
Letra Cdigo 4
a
1
0
a
2
01
a
3
11
Decodificando
empezando por
a
1
(0)
obtendramos:
0 11 11 11 11 11 11 11 11 1
a
1
a
3
a
3
a
3
a
3
a
3
a
3
a
3
a
3
No vlido
Empezando por a
2
obtendramos la
decodificacin vlida:
01 11 11 11 11 11 11 11 11
a
2
a
3
a
3
a
3
a
3
a
3
a
3
a
3
a
3
Obviamente el cdigo no es instantneo, pero probaremos
despus que todas las secuencias de dgitos (no slo sta) son
decodificables de modo nico.
Rafael Molina Tema 2: Herramientas 35
Consideremos la codificacin
proporcionada por la tabla de la
izquierda y decodifiquemos la
secuencia 01010101010101010
Letra Cdigo 4
a
1
0
a
2
01
a
3
10
Decodificando
empezando por a
1
(0)
obtendramos la
codificacin vlida:
0 10 10 10 10 10 10 10 10
a
1
a
3
a
3
a
3
a
3
a
3
a
3
a
3
a
3
Empezando por a
2
obtendramos la
decodificacin tambin
vlida:
01 01 01 01 01 01 01 01 0
a
2
a
2
a
2
a
2
a
2
a
2
a
2
a
2
a
1
Por tanto este cdigo no produce secuencias decodificables de
modo nico.
Rafael Molina Tema 2: Herramientas 36
II.4.2 Test para decodificacin nica
Definicin: Supongamos que tenemos dos palabras, a y
b, de un cdigo binario donde a tiene k bits y b tiene n
bits con k<n.
Si los k primeros bits de b coinciden con a, diremos que a
es un prefijo de b.
Los restantes n-k bits de b reciben el nombre de sufijo
restante.
Ejemplo: si a=010 y b=01011 entonces a es prefijo de b
y el sufijo restante es 11
Rafael Molina Tema 2: Herramientas 37
Test sobre decodificacin nica
1. Construir una lista con todas las palabras del cdigo,
2. Examinar todos los pares de palabras del cdigo para
ver si una palabra es prefijo de otra,
3. Cada vez que encontremos una palabra prefijo de otra,
aadir el sufijo restante a la lista antes construida,
4. Repetir el proceso usando esta lista mayor,
5. Continuar el proceso hasta que ocurra uno de los
siguientes sucesos
1. Obtenemos un sufijo restante que es una palabra
del cdigo,
2. No hay ms sufijos restantes nuevos.
El el primer caso el cdigo no ser decodificable de modo
nico y en el segundo s.
Rafael Molina Tema 2: Herramientas 38
Ejemplo II.4.1
Consideremos el cdigo C={0,01,11} y la lista inicial
L={0,01,11}.
La palabra 0 es prefijo de 01 y no hay ningn otro par de
palabras que cumplan esta condicin. Generamos la nueva
lista
L={0,01,11,1}.
En ella, el cdigo sufijo aadido no es una palabra del
cdigo original.
Repetimos el proceso con L pero vemos que no aadimos
ningn sufijo restante nuevo.
El cdigo es decodificable de modo nico.
Rafael Molina Tema 2: Herramientas 39
La palabra 0 es prefijo de 01 y no hay ningn otro par de
palabras que cumplan esta condicin. Generamos la nueva
lista
L={0,01,10, 1 }.
En ella, el cdigo sufijo aadido no es una palabra del cdigo
original.
Repetimos el proceso con L y vemos que 1 es prefijo del 10
y el sufijo restante 0 es una palabra del cdigo original.
aadido
Ejemplo II.4.2
Consideremos el cdigo C={0,01,10} y la lista L={0,01,10}
El cdigo no es decodificable de modo nico.
Rafael Molina Tema 2: Herramientas 40
II.4.3 Cdigos prefijo
Cdigo prefijo: cdigo en el que ninguna palabra del cdigo
es prefijo de otra palabra del cdigo.
Para comprobar si un cdigo es prefijo qu hacemos?:
Observa que por construccin los cdigos prefijos
son decodificables de modo nico.
1. Dibujamos un rbol binario para el cdigo (la rama
izquierda se utilizar para el cero y la derecha para el
uno).
2. En un cdigo prefijo las palabras del cdigo estarn
asociadas slo a nodos externos (hojas).
Rafael Molina Tema 2: Herramientas 41
Letra Cdigo 2
a
1
0
a
2
1
a
3
00
a
4
11
No es prefijo
Letra Cdigo 3
a
1
0
a
2
10
a
3
110
a
4
111
S es prefijo
a
4
a
1
a
2
a
3
a
2
a
3
a
1
a
4
rbol binario
Rafael Molina Tema 2: Herramientas 42
a
4
a
1
a
2
a
3
Letra Cdigo 4
a
1
0
a
2
01
a
3
011
a
4
0111
No es prefijo
Sin embargo, puede probarse fcilmente que este cdigo
cumple la condicin de decodificacin nica. Ser cdigo
prefijo es una condicin suficiente para ser decodificable de
modo nico pero no es necesaria.
rbol binario
Rafael Molina Tema 2: Herramientas 43
Podramos encontrar palabras ms cortas si no ussemos slo cdigos prefijo?.
Puede probarse que para cualquier cdigo no prefijo decodificable de modo nico,
podemos encontrar siempre un cdigo prefijo con la misma longitud de palabras.
Este resultado se basa en los teoremas siguientes
Teorema (desigualdad de Kraft-McMillan). Sea C un cdigo con N palabras de
longitudes l
1
,l
2
,,l
N
. Si C es decodificable de modo nico entonces
Teorema. Dado un conjunto de enteros l
1
,l
2
,,l
N
que cumplen
Podemos encontrar siempre un cdigo prefijo con longitudes de palabra l
1
,l
2
,,l
N
K(C)
=
N X
n
=
1
2

l
n

1 K(C)
=
X
n
=
1
2

l
n

1
N X
n
=
1
2

l
n

1
X
n
=
1
2

l
n

1
Rafael Molina Tema 2: Herramientas 44
II.4.4 Decodificacin de una secuencia de
palabras en cdigo prefijo
Para decodificar una secuencia codificada usando un cdigo
prefijo slo tenemos que ejecutar el siguiente algoritmo:
Repetir
Comenzar en el nodo del rbol
repetir
if leer bit = 1 entonces ir derecha
else ir izquierda
hasta que el nodo es una hoja
mostrar la hoja (o camino hasta la hoja)
Hasta final de la secuencia
Rafael Molina Tema 2: Herramientas 45
Decodifiquemos la secuencia 110001 para el siguiente
rbol que corresponde a un cdigo prefijo.
a
c
b
0 1
0 1
Rafael Molina Tema 2: Herramientas 46
a
c
b
0 1
0 1
110001
a
c
b
0 1
0 1
110001
c
Indica nodo que vamos recorriendo.
Dgito en rojo, el bit que vamos recorriendo
Decodificacin actual:
Rafael Molina Tema 2: Herramientas 47
a
c
b
0 1
0 1
110001
a
c
b
0 1
0 1
110001
cc
Decodificacin actual:
Rafael Molina Tema 2: Herramientas 48
a
c
b
0 1
0 1
110001
a
c
b
0 1
0 1
110001
a
c
b
0 1
0 1
110001
cca : Decodificacin actual
Rafael Molina Tema 2: Herramientas 49
a
c
b
0 1
0 1
110001
a
c
b
0 1
0 1
110001
a
c
b
0 1
0 1
110001
ccab : Decodificacin actual
Rafael Molina Tema 2: Herramientas 50
II.5 Resumen del tema
1. Bases de la teora de la informacin,
2. Modelos para la compresin,
3. Decodificacin nica,
4. Cdigos prefijo.
Rafael Molina Tema 2: Herramientas 51
II.6 Bibliografa
K. Sayood, Introduction to Data Compression, Morgan
and Kaufmann, 2000.
Temas 2 y 3 del curso de compresin de datos impartido en Chalmers
University of Technology (Suecia), curso 2003-2004. (tema2_chalmers.pdf y
tema3_chalmers.pdf )
Tema 1 del curso de compresin de datos impartido en Stony Brook
University (NY, USA), 2002-2003. (tema1_stony_univ.pdf).
Material Complementario

Вам также может понравиться