tema 2: teoría de la información, modelos para la ...€¦ · ii.1 objetivos del tema 1....

52
Rafael Molina Tema 2: Herramientas 1 Tema 2: Teoría de la Información, Modelos para la Compresión, Codificación. Rafael Molina Depto de Ciencias de la Computación e Inteligencia Artificial Universidad de Granada

Upload: others

Post on 25-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 1

Tema 2: Teoría de la Información, Modelos para la Compresión, Codificación.

Rafael MolinaDepto de Ciencias de la Computación

e Inteligencia ArtificialUniversidad de Granada

Page 2: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 2

• Objetivos del tema• Breve introducción a la Teoría de la Información• Modelos para la compresión

– Modelos físicos– Modelos probabilísticos simples– Modelos de Markov– Modelo de fuente compuesta

• Codificación– Códigos decodificables de modo único– Test para decodificación única– Códigos prefijo– Decodificación de una secuencia de palabras en

código prefijo• Resumen• Bibliografía

Contenidos

Page 3: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 3

II.1 Objetivos del tema

1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar los métodos de compresión que veremos en el curso.

2. Veremos también en este tema modelos que pueden utilizarse para describir los datos y para su posterior codificación.

3. Por último, analizaremos algunos tipos de códigos que serán utilizados a lo largo del curso.

Page 4: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 4

II.2 Breve Introducción a la teoría de la Información

C. C. ShannonShannon19161916--20012001

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-información asociada a A viene dada por

Aunque la idea de medir cuantitativamente la información había sido estudiada con anterioridad, Claude Shannon (ingeniero eléctrico en Bells Lab) fue la persona que desarrolló los conceptos de forma matemática.

)(log)(

1log)( APAP

Ai −==El logaritmo será siempre entendido en base dos

Page 5: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 5

1. Recordemos que log(1)=0 y la función -log(x) logaritmo crece cuando x se mueve de uno a cero. Por tanto, a mayor probabilidad de un suceso menor auto-información asociada.

2. De Sherlock Holmes: el ladrido de un perro durante un robo es un suceso muy probable y por tanto contiene poca información, sin embargo el que un perro no labre durante un robo es muy poco probable y contiene mucha información.

3. Propiedad de la auto-información: La auto-información de dos sucesos A y B que son independientes es la suma las auto-informaciones de A y B.

Demostración:

)()()log()(log

]indep. [)(log)(

1log)(

BiAiBAP

ABPABP

ABi

+=−−=

−==

Page 6: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

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

21)()( == XPCP e bit1)()( == XiCi

La cantidad de información 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 información asociada a cada suceso es diferente. Por ejemplo, si

87)(,

81)( == XPCP bits193.0)( bits 3)( == XiCi

Page 7: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 7

Experimento

..

..

..

..

A1

Ai

AM

Los sucesos Ai son independientes y cubren todos los posibles resultados del experimento

La cantidad)log()()()(

11k

M

kkk

M

kk AAPAiAPH ∑∑

==

−==

Recibe el nombre de entropía asociada al experimento (fuente)

Shannon probó que lo mejor que un esquema de compresión sin pérdida puede hacer es codificar la salida de una fuente (experimento) con un número medio de bits igual a la entropía de la fuente.

Page 8: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 8

Es muy importante entender bien este teorema. Supongamos que tenemos una fuente con tres posibles resultados independiente A1, A2 y A3 de forma que

bits 5.12412

411

21

=×+×+×=H

41)()(

21)( 321 === APAPAP

La entropía de esta fuente vale

Un esquema de codificación que alcanza esta cota inferior es:

A1

A3

A2

0

10

11

Sin embargo, si la fuente genera los símbolos A2A2A2A2 es obvio que para esta secuencia en particular podríamos haber elegido otra codificación mejor. El teorema de Shannonhabla de comportamiento medio de una fuente.

Page 9: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 9

Sigamos entendiendo el teorema de Shannon.

Consideremos una fuente binaria con sucesos A1 y A2 que cumplen

P(A1)=p y P(A2)=1-p 0≤ p ≤1

1. Una codificación que le asigne un dígito binario (por ejemplo el cero) a A1 y el otro dígito binario (el uno) a A2, sólo será óptima si p=1/2.

2. Si p≠1/2, la entropía, H(p), es siempre mejor que uno y el teorema de Shannon nos dice que, al menos, teóricamente podemos hacerlo mejor que codificar A1 y A2 con un bit cada uno.

Su entropía vale H(p)=-plog(p)-(1-p)log(1-p) (ver gráfico)

Page 10: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 10

En la terminología de compresión, el conjunto de símbolos A generados por una fuente S recibe el nombre de alfabeto y los símbolos son llamados letras. Así pues, hablaremos de letras del alfabeto.

nnG

nH 1lim)(

∞→=S

Dada una fuente S que tiene un alfabeto A={1,2,…,m} que genera una sucesión {X1,X2,….} su entropía viene dada por

donde

( ) ( )∑ ∑= =

====−=m

i

m

innnnn

n

iXiXPiXiXPG1 1

11111

,,log,,... KK

y {X1,…,Xn} es una sucesión de longitud n de la fuente S.

(1)(1)

Page 11: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 11

Supongamos que las variables Xi son independientes e idénticamente distribuidas (iid) y notemos su distribución común mediante X. Puede probarse fácilmente que

( ) ( )

( ) ( )∑

∑ ∑

=

= =

==−==

====−=

m

i

m

i

m

innnnn

iXPiXPniid

iXiXPiXiXPGn

1

1 11111

log)(

,,log,,...1

KK

y la ecuación para la entropía se convierte en

( ) ( )∑=

==−=m

iiXPiXPH

1log)(S (2)

En general las entropías definidas en (1) (página anterior) y (2) no coinciden por lo que (2) suele recibir el nombre de entropía de primer orden y (1) entropía.

Page 12: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

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 observación (es decir, todas las variables Xi son iid) podemos estimar la probabilidad de ocurrencia de cada letra mediante su frecuencia en la secuencia obteniendo

162)9()8()5()4()3()2(

161)10()7()6()1(

======

====

PPPPPP

PPPP

Page 13: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 13

Usando estas probabilidades, la entropía de la fuente sería

bits 25.3)(log)(10

1=−= ∑

=iiPiPH

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 idénticamente distribuidas.

Es importante entender la diferencia entre este resultado y el teorema de Shannon que hemos visto. El teorema de Shannonhabla 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.

Page 14: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

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 correlación entre los datos calculamos la diferencia entre cada valor y el anterior. Obtenemos entonces la secuencia

1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 1de la que calculamos

bits 70.0)(153)1(

1512)1( ==−= SHPP

y podríamos codificar la secuencia desde el segundo elemento en el mejor de los casos, bajo las hipótesis que sabemos, con 15x0.70 bits.

Page 15: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 15

Observemos que en este caso tendríamos que codificar la secuencia

1 1 -1 1 1 1 -1 1 1 1 1 1 -1 1 1

y también enviar el primer valor, un uno y el modelo para la secuencia, es decir,

116,,2 11 ==+= − xnrxx nnn K

donde xn es el n-ésimo elemento de la secuencia original y rn es el n-ésimo elemento de la secuencia de residuos.

Este modelo se llama estático porque los parámetros no cambian con n. Un modelo en el que los parámetros cambian (o se adaptan) con n se llama adaptativo.

Page 16: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

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

Necesitaríamos 20x1.5=30 bits para representar la secuencia. Sin embargo, si consideramos dos símbolos consecutivos tendremos

lobits/símbo 5.1)(21)3(

41)2()1(

=

===

SH

PPP

Si miramos un símbolo cada vez tendremos

obit/símbol 1)(21)33()21(

=

==

SH

PP

Page 17: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 17

1. Obviamente cuanto mayor sea el tamaño de los bloques de letras del alfabeto más podemos, en principio, mejorar la compresión.

2. Sin embargo, hay obviamente un límite de tipo práctico en esta aproximación.

3. En la siguiente sección vamos a describir diferentes modelos usados en los métodos de compresión sin pérdida.

Necesitaríamos por tanto, con este modelo, 10x1=10 bits para representar la secuencia.

Page 18: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 18

II.3 Modelos para la compresión

II.3.1 Modelos físicos

Aunque el proceso físico de obtención de datos es, en muchos casos, muy complicado, hay situaciones en las que es posible el modelado de dicho proceso.

Veremos en el tema 7 como el modelo físico puede ser utilizado en problemas de compresión de audio.

Page 19: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 19

II.3.2 Modelos probabilísticos simples

El modelo probabilístico más simple que podemos usar es suponer que cada letra del alfabeto que se genera es independiente de las demás 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 compresión.

Supongamos que m es el número de palabras del alfabeto. Si una fuente S sigue el modelo de ignorancia su entropía vale:

mmm

Hm

ilog1log1)(

1=−= ∑

=

S

Page 20: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 20

El modelo probabilístico siguiente en complicación mantiene la hipótesis de independencia, pero elimina la asignación de la misma probabilidad a todas las letras. Así pues, ahora tenemos para A={a1,…,am} el modelo de probabilidades P={P(a1),…,P(am)} siendo uno la suma de las probabilidades. Su entropía vale:

Si la hipótesis de independencia no es correcta, tenemos que utilizar otros modelos alternativos.

Ejemplos de estos modelos probabilísticos “más complicados” son los modelos de Markov que veremos a continuación.

( ) ( )∑=

==−=m

iiXPiXPH

1log)(S

Page 21: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 21

II.3.3 Modelos de MarkovLa forma más usada para representar dependencia entre datos es el uso de las cadenas de Markov.Los modelos de Markov utilizados en compresión sin pérdida son las llamadascadenas de Markov en tiempo discreto. Andrei Andreivich Markov

(1856-1922)

Una sucesión de observaciones {xn} se dice que sigue un modelo de Markov de orden k-ésimo si para todo n

),,,|(),,|( 11 KKK knnnknnn xxxPxxxP −−−− =Es decir, el conocimiento de los k símbolos anteriores es equivalente al conocimiento de todo el pasado. Los valores tomados por el conjunto {x1,…,xk} reciben el nombre deestado del proceso.

Page 22: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 22

El modelo de Markov más usado es el de primer orden en el que se tiene

),,|()|( 211 K−−− = nnnnn xxxPxxP

Podemos desarrollar diferentes modelos de primer orden dependiendo de la forma de dependencia entre las muestras.

Por ejemplo, podríamos utilizar el modelo lineal siguiente

Donde εn es ruido (normalmente blanco). Este modelo se utiliza frecuentemente en la codificación de imágenes y voz. Veamos con un ejemplo un modelo de Markov no lineal.

nnn xx ε+= −1

Page 23: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 23

B N

Supongamos que tenemos un texto en Blanco y Negro. Pensamos que la aparición de un píxel blanco en la siguiente observación depende de que hayamos observado un pÍxel blanco o negro en la observación actual.

Para el instante actual tenemos las probabilidades P(B) y P(N) y una vez observada la letra N o B tendremos, respectivamente, el modelo P(B|N), P(N|N) que cumple P(B|N)+P(N|N)=1 o P(B|B), P(N|B) que también cumple P(B|B)+P(N|B)=1. Gráficamente:

P(N|B)

P(B|N)

P(B|B) P(N|N)

Page 24: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 24

bits206.02.0log2.08.0log8.0)( =−−=SH

Supongamos que las probabilidades de nuestra fuente S son2.0)(8.0)( == NPBP

con7.0)|(3.0)|(01.0)|(99.0)|( ==== NNPNBPBNPBBP

Supongamos que queremos codificar a partir del segundo término una sucesión de Bs y Ns. Para el primero, obviamente, usamos como límite inferior la entropía correspondiente a las probabilidades P(B)=0.8 y P(N)=0.2.

Si suponemos independencia tendremos

Ejemplo II.3.1

Page 25: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 25

También podemos basarnos en la entropía de las distribuciones condicionadas a los dos casos posibles: ha salido una N

o ha salido una Bbits881.07.0log.003log3.0

))|(log()|())|(log()|()(=−−=

−−= NBPNBPNNPNNPH NS

bits081.099.0log99.001.0log01.0))|(log()|())|(log()|()(

=−−=−−= BBPBBPBNPBNPH BS

Por tanto, para la codificación a partir del segundo símbolo tendríamos como cota inferior

bits107.0081.08.0881.02.0)()()()()(

=×+×=+= NB SSS HNPHBPH

Casi la mitad de la obtenida cuando se supone independencia

Page 26: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 26

Como es obvio, los modelos de Markov son especialmente útiles para la compresión de texto un problema en el que la aparición 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 entropía de 3.1 bits/letra. Para un modelo de segundo orden basado en palabras y no en letras obtuvo una entropía de 2.4 bits/símbolo.

Conociendo las 100 letras anteriores, Shannon acotó la entropía del símbolo siguiente entre 1.3 y 0.6 bits. No obstante, si usamos un modelo de orden k con N letras para la predicción, tenemos Nk posibles contextos y muchos no aparecerán nunca como realización del sistema.

Page 27: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 27

Además dos contextos distintos (dos realizaciones previas de k letras) pueden dar lugar a probabilidades condicionadas muy distintas, con lo que será obligatorio ir adaptando estas probabilidades.

Desgraciadamente puede ocurrir que aparezca un símbolo que para el contexto que tenemos tenga probabilidad cero (el problema de la frecuencia cero) lo que nos obligará a enviar un código indicando que lo que ahora enviamos es nuevo.

Si esto ocurre frecuentemente tenemos un problema porque perderemos capacidad de compresión. Algunas soluciones están basadas en el algoritmo ppm (prediction with partiallymatch) que veremos en el tema 6.

Page 28: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 28

II.3.4 Modelo de fuente compuesta

Los modelos de fuente compuesta se pueden representar como un conjunto de fuentes individuales Si, en el que cada fuente Si tiene su modelo Mi y un conmutador que selecciona la fuente Si con probabilidad Pi.

El modelo es muy rico y puede usarse para describir procesos muy complicados.

Fuente 1Fuente 1

Fuente 2Fuente 2

Fuente nFuente n

...... conmutadorconmutador

Page 29: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 29

II.4 Codificación

Codificación: [significa normalmente] asignación de secuencias binarias a los elementos de un alfabeto.

Código: conjunto de secuencias binarias.

Palabra del código: elemento del código.

Ejemplo: Usando el código ASCII la letra a es codificada con la palabra del código 1000011 y la A mediante 1000001.

Los códigos que utilizan el mismo número de bits para todas las palabras se llaman códigos de longitud fija.

El número medio de bits por símbolo se llama razón (rate) del código.

Page 30: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 30

II.4.1 Códigos decodificables de modo único

Letra Probabilidad Código 1 Código 2 Código 3 Código 4

a1 0.5 0 0 0 0

a2 0.25 0 1 10 01

a3 0.125 1 00 110 001

a4 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 muestra la tabla siguiente. La entropía de esta fuente es 1.75 bits/símbolo.

Page 31: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 31

Letra Probabilidad Código 1

a1 0.5 0

a2 0.25 0

a3 0.125 1

a4 0.125 10

Longitud media 1.125

El primer código parece el mejor en cuanto a la longitud media.

Sin embargo los símbolos a1 y a2 han sido asignados a la misma palabra.

Cuando leemos un cero no sabemos de qué símbolo viene

Necesitamos trabajar con códigos que asignan palabras distintas a símbolos distintos.

Page 32: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 32

Letra Probabilidad Código 2

a1 0.5 0

a2 0.25 1

a3 0.125 00

a4 0.125 11

Longitud media 1.25

Este código no parece tener el problema de la ambigüedad.

Sin embargo si tenemos la secuencia de bits 100 su decodificación no es única.

En general esta no es una buena propiedad del código aunque a veces tiene arreglo (ahora lo veremos)

Nos gustaría que la secuencia tuviera una decodificación únicapor el decodificador.

Page 33: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 33

La regla de decodificación de este código es simple:

Acumular dígitos hasta que encontremos un cero o encontremos tres unos consecutivos.

Este tipo de códigos recibe el nombre de instantáneos. Cuando llega una letra del alfabeto somos capaces de decodificarla inmediatamente.

Letra Probabilidad Código 3

a1 0.5 0

a2 0.25 10

a3 0.125 110

a4 0.125 111

Longitud media 1.75

Page 34: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 34

La regla de decodificación de este código es muy simple:

La decodificación consistirá en acumular dígitos hasta que encontremos un cero. El bitanterior al cero es el último de la anterior palabra

Este código no es instantáneo, aunque casi cumple la condición. La condición de instantaneidad es interesante pero no es obligatoria como veremos a continuación.

Letra Probabilidad Código 4

a1 0.5 0

a2 0.25 01

a3 0.125 011

a4 0.125 0111

Longitud media 1.875

Page 35: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 35

Estudiemos un poco más la instantaneidad de los códigos. Consideremos la codificación proporcionada por la tabla a la izquierda y decodifiquemos la secuencia 011111111111111111

Letra Código 4

a1 0

a2 01

a3 11

Decodificando empezando por a1 (0) obtendríamos:

0 11 11 11 11 11 11 11 11 1

a1 a3 a3 a3 a3 a3 a3 a3 a3 No válido

Empezando por a2obtendríamos la decodificación válida:

01 11 11 11 11 11 11 11 11

a2 a3 a3 a3 a3 a3 a3 a3 a3

Obviamente el código no es instantáneo, pero probaremos después que todas las secuencias de dígitos (no sólo ésta) son decodificables de modo único.

Page 36: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 36

Consideremos la codificación proporcionada por la tabla de la izquierda y decodifiquemos la secuencia 01010101010101010

Letra Código 4

a1 0

a2 01

a3 10

Decodificando empezando por a1 (0) obtendríamos la codificación válida:

0 10 10 10 10 10 10 10 10

a1 a3 a3 a3 a3 a3 a3 a3 a3

Empezando por a2obtendríamos la decodificación también válida:

01 01 01 01 01 01 01 01 0

a2 a2 a2 a2 a2 a2 a2 a2 a1

Por tanto este código no produce secuencias decodificables de modo único.

Page 37: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 37

II.4.2 Test para decodificación única

Definición: Supongamos que tenemos dos palabras, a y b, de un código 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

Page 38: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 38

Test sobre decodificación única

1. Construir una lista con todas las palabras del código,2. Examinar todos los pares de palabras del código para

ver si una palabra es prefijo de otra,3. Cada vez que encontremos una palabra prefijo de otra,

añadir 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 sucesos1. Obtenemos un sufijo restante que es una palabra

del código,2. No hay más sufijos restantes nuevos.

El el primer caso el código no será decodificable de modo único y en el segundo sí.

Page 39: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 39

Ejemplo II.4.1

Consideremos la fuente S={0,01,11} y la lista inicial L={0,01,11}.

La palabra 0 es prefijo de 01 y no hay ningún otro par de palabras que cumplan esta condición. Generamos la nueva lista

L={0,01,11,1}.

En ella, el código sufijo añadido no es una palabra del código original.

Repetimos el proceso con L pero vemos que no añadimos ningún sufijo restante nuevo.El código es decodificable de modo único..

Page 40: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 40

Ejemplo II.4.2

Consideremos la fuente S={0,01,10} y la lista L={0,01,10}

La palabra 0 es prefijo de 01 y no hay ningún otro par de palabras que cumplan esta condición. Generamos la nueva lista

L={0,01,10, 1 }.

En ella, el código sufijo añadido no es una palabra del código original.

Repetimos el proceso con L y vemos que 1 es prefijo del 10 y el sufijo restante 0 es una palabra del código original.

El código no es decodificable de modo único.

añadido

Page 41: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 41

II.4.3 Códigos prefijo

Un tipo de códigos en el que el sufijo restante no es nunca una palabra del código son los llamados códigos prefijo.

Código prefijo: código en el que ninguna palabra del código es prefijo de otra palabra del código.

Para comprobar si un código es prefijo:1. Dibujamos un árbol binario para el código (la rama

izquierda se utilizará para el cero y la derecha para el uno).

2. En un código prefijo las palabras del código estarán asociadas sólo a nodos externos (hojas).

Page 42: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 42

Letra Código 2

a1 0

a2 1

a3 00

a4 11

No es prefijo

Letra Código 3

a1 0

a2 10

a3 110

a4 111

Sí es prefijoa4

a1

a2

a3

a2

a3

a1

a4

Árbol binario

Page 43: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 43

a4

a1

a2

a3

Letra Código 4

a1 0

a2 01

a3 011

a4 0111

No es prefijo

Sin embargo, puede probarse fácilmente que este código cumple la condición de decodificación única. Ser código prefijo es una condición suficiente para ser decodificable de modo único pero no es necesaria.

Árbol binario

Page 44: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 44

¿Podríamos encontrar palabras más cortas si no usásemos sólo códigos prefijo?.

Puede probarse que para cualquier código no prefijo decodificable de modo único, podemos encontrar siempre un código prefijo con la misma longitud de palabras.

Page 45: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 45

II.4.4 Decodificación de una secuencia de palabras en código prefijo

Para decodificar una secuencia codificada usando un código prefijo sólo tenemos que ejecutar el siguiente algoritmo:

RepetirComenzar en el nodo del árbolrepetir

if leer bit = 1 entonces ir derechaelse ir izquierda

hasta que el nodo es una hojamostrar la hoja (o camino hasta la hoja)

Hasta final de la secuencia

Page 46: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 46

Decodifiquemos la secuencia 110001 para el siguiente árbol que corresponde a un código prefijo.

a

c

b

0 1

0 11

Page 47: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 47

a

c

b

0 1

0 1

110001

a

c

b

0 1

0 1

110001 c

Indica nodo que vamos recorriendo.

Dígito en rojo, el bit que vamos recorriendo

Decodificación actual:

Page 48: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 48

a

c

b

0 1

0 1

110001

a

c

b

0 1

0 1

110001ccDecodificación actual:

Page 49: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

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

110001cca : Decodificación actual

Page 50: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 50

a

c

b

0 1

0 1

110001

a

c

b

0 1

0 1

110001

a

c

b

0 1

0 1

110001ccab : Decodificación actual

Page 51: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 51

II.5 Resumen del tema

1. Bases de la teoría de la información,2. Modelos para la compresión,3. Decodificación única,4. Códigos prefijo.

Page 52: Tema 2: Teoría de la Información, Modelos para la ...€¦ · II.1 Objetivos del tema 1. Necesitamos conocer algunos conceptos básicos de la teoría de la información para analizar

Rafael Molina Tema 2: Herramientas 52

II.6 Bibliografía

K. Sayood, “Introduction to Data Compression”, Morgan and Kaufmann, 2000.

Temas 2 y 3 del curso de compresión de datos impartido en ChalmersUniversity of Technology (Suecia), curso 2003-2004. (tema2_chalmers.pdf y tema3_chalmers.pdf )Tema 1 del curso de compresión de datos impartido en Stony BrookUniversity (NY, USA), 2002-2003. (tema1_stony_univ.pdf).

Material Complementario