Teoría de la Información 2 de mar de 2004 Codificación de imágenes y v ideo El clima en el Río de la Plata... N: nublado; S: soleado; L: lluvia; T: tormenta N L N L T S L ... N N N T N S N ... N L S S N N S ... T T S S L S N ... L L N S L N N ... L L L T L L N ... N S L N N L N ... p(N)=0.5, p(S)=0.25, p(L)=0.125, p(T)=0.125 2 de mar de 2004 Codificación de imágenes y v ideo 2 Motivación Para comunicar estos cuatro símbolos se acuerda usar el siguiente código: C(N) = 00 C(S) = 01 C(L) = 10 C(T) = 11 Típicamente uno se pasa usando el código C(N)=00. La pregunta es: ¿existe otra codificación más eficiente? 2 de mar de 2004 Codificación de imágenes y v ideo 3 Formalización Se puede considerar al estado del tiempo como una variable aleatoria discreta X, con un alfabeto A={N,L,T,S} y una función de probabilidad p(x)=Probabilidad(X=x) con x en A. 2 de mar de 2004 Codificación de imágenes y v ideo 4 Formalización: información Dado que típicamente esta nublado, el símbolo N contiene poca “información”, es “predecible”, es más probable, “no es noticia”. Información. Una medida de la información podría ser: I(x) = -log2(p(x)) I(N) = 1, I(S) = 2, I(L) = 3, I(T) = 3 2 de mar de 2004 Codificación de imágenes y v ideo 5 Información ¿Qué pasa si supiéramos que siempre está nublado (p (N)=1)?. En este caso I(N) = 0, podemos predecir con probabilidad 1 que va a estar nublado, no hay incertidumbre, no hay información. La situación de mayor incertidumbre es cuando p(N) =p(L)=p(S)=p(T)=1/4. 2 de mar de 2004 Codificación de imágenes y v ideo 6 Información Si pudiéramos elegir libremente (símbolos equiprobables) entre 2 símbolos necesitaríamos 1 bit, para 16 símbolos necesitaríamos 4 bits y en general para N símbolos se necesitan log2(N) bits. log2(N) = -log2(1/N), lo que nos dice que hay una relación entre información y cantidad de bits necesarios. 2 de mar de 2004 Codificación de imágenes y v ideo 7 Entropía La entropía H(X) es la media de la información de la fuente: H ( X ) EI ( x) p( x) log 2 p ( x) X Idea: La entropía mide la información media, y por tanto, la cantidad media de símbolos necesarios. 2 de mar de 2004 Codificación de imágenes y v ideo 8 Entropía Se puede ver fácilmente H(X)>=0. Esto corresponde al caso de menor incertidumbre Además, H(X)<=log(|A|), |A|=cantidad de elementos A. Lo que corresponde al caso de mayor incertidumbre, símbolos equiprobables. 2 de mar de 2004 Codificación de imágenes y v ideo 9 Entropía Definición: x es una variable aleatoria discreta (V.A.D.) con probabilidad p(x) y un conjunto de mensajes posibles A={x1,...,xN}. Definición: Entropía H ( X ) p ( x) log p ( x) xA Observación: H(X) = E{ -log p(X) } 2 de mar de 2004 Codificación de imágenes y v ideo 10 Ejemplos de códigos 2 de mar de 2004 Evento Probabilidad Código 1 Código 2 Nublado 0.5 00 0 Sol 0.25 01 10 Lluvia 0.125 10 110 Tormenta 0.125 11 111 Codificación de imágenes y v ideo 11 Largo medio El largo medio de estos códigos es: L E{C ( x)} p ( x)C ( x) X donde C(x) es el largo de x. Para este caso L1 = 2 L2 = 0.5 x 1 + 0.25 x 2 + 0.125 x 3 + 0.125 x 3 = 1.75 H(x) =1.75 Alcanzamos la entropía. 2 de mar de 2004 Codificación de imágenes y v ideo 12 Largo medio: ejemplo Fuente con dos símbolos X={x1,x2}, con probabilidades p1 y p2. Caso 1 p1=p2=0.5; x1=”0”; x2=”1” H(X)=0.5 x log2(2) + 0.5 x log2(2) = 1 L = 0.5 x 1 + 0.5 x 1 = 1 Caso 2 p1=0.1; p2=0.9; x1=”0”; x2=”1” H(X)=0.1 x log2(10) + 0.9 x log2(10/9) = 0.467 L = 0.1 x 1 + 0.9 x 1 = 1 2 de mar de 2004 Codificación de imágenes y v ideo 13 Shannon Se puede demostrar que no existe ningún código que permita codificar a un bit-rate menor a la entropía. Teorema (Shannon 1948) min{L} H ( X ) Se puede demostrar también que el bit rate se puede acercar arbitrariamente a la entropía. 2 de mar de 2004 Codificación de imágenes y v ideo 14 Entropía conjunta Definición: La entropía conjunta H(X,Y) de un par de variables aleatorias con distribución p(x,y) es: H ( X , Y ) E{ log p ( x, y )} p ( x, y ) log p( x, y ) Teorema (Regla de la cadena): H ( X , Y ) H ( X ) H (Y | X ) 2 de mar de 2004 Codificación de imágenes y v ideo 15 Entropía Condicional Definición: La entropía condicional de dos variables (X,Y)~p(x,y) es: H (Y | X ) p( x)H (Y | X x ) x A ( X ) p (x , y ) log p( y | x) x A ( X ) y A (Y ) Observación: A(X) es el alfabeto de X 2 de mar de 2004 Codificación de imágenes y v ideo 16 Kullback-Leibler Definición: La entropía relativa o “distancia” KullbackLeibler entre dos distribuciones de probabilidad p(x) y q(x) se define como: p( x) p( x) D( p || q ) p( x) log E log x A q( x) q( x) Teorema: D( p || q ) 0 y la igualdad se cumple si p(x)=q(x) 2 de mar de 2004 Codificación de imágenes y v ideo 17 Kullback-Leibler: Aplicaciones Teorema: H(X) <= log(|A|) Teorema: El condicionar reduce la entropía, H(Y|X) <= H(Y) y la igualdad se da si X e Y son independientes. 2 de mar de 2004 Codificación de imágenes y v ideo 18 Extensión de una fuente Extensión de orden N zi=(xi1, xi2, ... , xiN) p(zi)= p(xi1) p(xi2)... p(xiN) Teorema: H(XN)=N.H(X) 2 de mar de 2004 Codificación de imágenes y v ideo 19 Extensión de una fuente: ejemplo Fuente con dos símbolos X={x1,x2}, con probabilidades p1=0.1 y p2=0.9 Z={x1x1, x1x2, x2x1, x2x2} p(Z)={0.01, 0.09, 0.09, 0.81} H(Z)=0.01 x log2(100) + 2 x ( 0.09 x log2(100/9) ) + 0.81xlog2(100/81) = 0.934=2 x 0.467 C1={“00”,“01”,“10”,“11”} L1 = 0.01 x 2 + 2 x ( 0.09 x 2 ) + 0.81 x 2 = 2 C2={“111”,“110”,“10”,“0”} L2 = 0.01 x 3 + 0.09 x 3 + 0.09 x 2 + 0.81 x 1 = 1,29 2 de mar de 2004 Codificación de imágenes y v ideo 20 Regla de la cadena Teorema: (Regla de la cadena) (X1,...,Xn) ~ p(x1,...,xn): n H ( X1 ,..., X n ) H ( X i | X i 1 ,..., X1 ) i 1 Teorema: n H ( X1 ,..., X n ) H ( X i ) i 1 2 de mar de 2004 Codificación de imágenes y v ideo 21 Dependencia Observando el estado del tiempo en días sucesivos se ve que el estado del tiempo en un día depende del día anterior y condiciona el siguiente. No es simplemente memoria. 2 de mar de 2004 una variable Codificación de imágenes y v ideo aleatoria sin 22 Formalización: Markov de orden k Una fuente se dice Markov de orden k si símbolos sucesivos son estadísticamente dependientes, i.e. cada símbolo depende de los k anteriores Una fuente MKS se especifica con: p ( X i x | X i 1 , , X i k )i, k 2 de mar de 2004 Codificación de imágenes y v ideo 23 MKS: Entropía La entropía de una fuente markov se define a partir de la entropía condicional p( X H ( X | X i1, , X i k ) i x | X i 1, , X i k ) log 2 p( X i x | X i 1 , , X i k ) H MKS ( X ) p ( X i 1 , , X i k ) H ( X | X i 1 , , X i k ) En general HMKS(X) < H DMS(X), por lo tanto, podríamos comprimir aún más! Vale el resultado H(XN)=N.H(X) 2 de mar de 2004 Codificación de imágenes y v ideo 24 Métodos para símbolos dependientes Codificación condicional: Se calculan las nuevas probabilidades dado el símbolo anterior. (H(X|Y)<H(X) ) Codificación en bloques: Se agrupan consecutivos en bloques (nuevos símbolos). símbolos Codificación predictiva: Dado Xi predecimos Xi+1 y codificamos la diferencia. 2 de mar de 2004 Codificación de imágenes y v ideo 25 Ejemplo: codificación predictiva de imágenes Idea: Usa la redundancia presente en la imagen (la correlación entre los píxeles) para estimar el nivel de gris en (i,j): Î(i,j). Error: e(i,j)=Î(i,j)-I(i,j). Compresión con pérdidas. Los valores de e(i,j) son cuantificados y comprimidos. Compresión sin cuantificada. 2 de mar de 2004 pérdidas. La Codificación de imágenes y v ideo señal e no es 26 Ejemplo: codificación predictiva de imágenes Predicción lineal. T: template con píxeles anteriores x̂ ai xi iT El alfabeto de los errores de predicción será el doble de grande que el original. Un buen predictor minimiza el error; el símbolo más probable será el 0. 2 de mar de 2004 Codificación de imágenes y v ideo 27 Ejemplo: codificación predictiva de imágenes 2 de mar de 2004 Codificación de imágenes y v ideo 28 Ejemplo: codificación predictiva de imágenes La predicción es Î=(a+b+c+d)/4. 2 de mar de 2004 Codificación de imágenes y v ideo 29 Ejemplo: codificación predictiva de imágenes Imagen diferencia y su histograma 2 de mar de 2004 Codificación de imágenes y v ideo 30 Ejemplo: codificación predictiva de imágenes ¿Cómo hallar los ai ? Iˆ a1 I (i, j 1) a2 I (i 1, j 1) a3 I (i 1, j ) Si asumimos I estacionario con media 0. Encontramos los ai minimizando la esperanza del error. a1R( 0,0) a2 R( 0,1) a3 R (1,1) R (1,0) a1R( 0,1) a 2R (0,0) a3 R (1,0) R(1,1) a1R(1,1) a2 R(1,0) a3 R( 0,0) R (0,1) 2 de mar de 2004 Codificación de imágenes y v ideo 31 Códigos Definición: Un código de fuente C, para una V.A.D, es un mapeo de A a D*, el conjunto de secuencias finitas de símbolos de una alfabeto D. N i D* D i 1 Observación: C(x) es el código para x y l(x) su largo Observación: Típicamente usaremos: D =B = {0,1} 2 de mar de 2004 Codificación de imágenes y v ideo 32 Códigos: Largo Esperado Definición: El largo esperado de un código de fuente C es: L(C ) p ( x)l ( x) x A Ejemplo: A={N,S,L,T} p(N)=1/2 p(S)=1/4 p(L)=p(T)=1/8 C(N)=0 C(S)=10 C(L)=110 C(T)=111. l(N)=1 l(S)=2 l(L)=l(T)=3 L (C)=1,75 2 de mar de 2004 Codificación de imágenes y v ideo 33 Códigos no singulares Definición: Un código se dice no singular si cada elemento de A se mapea en un elemento diferente en D*. Definición: La extensión C* de C es el mapeo de secuencias de símbolos de A en secuencias de D, C(x1x2...xn)=C(x1)C(x2)...C(xn) 2 de mar de 2004 Codificación de imágenes y v ideo 34 Códigos de decodificación única Definición: Un código se dice de decodificación única si su extensión es no singular. Definición: Un código es instantáneo si palabra de código es prefijo de otra. no singulares códigos singulares 2 de mar de 2004 ninguna unívocamente decodificables instantáneos no unívocamente decodificables no instantáneos Codificación de imágenes y v ideo 35 Desigualdad de Kraft Teorema: Para cada código instantáneo sobre un alfabeto de dimensión d=|D|, los largos de las palabras del código, li , deben satisfacer: d li 1 i Dados li que cumplen lo anterior, existe un código instantáneo con esos largos. 2 de mar de 2004 Codificación de imágenes y v ideo 36 Códigos óptimos Teorema: El largo esperado (L) de cualquier código instantáneo (C) para una V.A.D cumple LC H X y se da la igualdad si y solo si d-li = pi (1er. Teorema de Shannon) 2 de mar de 2004 Codificación de imágenes y v ideo 37 Cotas para el L óptimo Motivación para 1 log p x Teorema: Sean li* los largos de los códigos óptimos y L* el largo esperado asociado entonces: H ( X ) L* H ( X ) 1 2 de mar de 2004 Codificación de imágenes y v ideo 38 Codificación en bloques ¿Que pasa si juntamos símbolos? C(x1...xn), l(x1...xn) Definición: Largo esperado por símbolo 1 Ln p ( x1 ,..., xn ) l ( x1 ...xn ) n Corolario: Para Xi I.I.D 1 H ( X ) Ln H ( X ) n 2 de mar de 2004 Codificación de imágenes y v ideo 39 Códigos de Huffman ¿Podemos llegar a codificar con H(X) bits? Idea: Usar códigos más cortos para símbolos más probables (Código Morse). Ejemplo. C(N)=0, C(S)=10, C(L)=110, C(T)=111. ¿Cómo encontrar sistemática? 2 de mar de 2004 el código Codificación de imágenes y v ideo óptimo de forma 40 Algoritmo de Huffman 0 10 110 p(N)=0.5 p(S)=0.25 p(L)=0.125 0 10 p(N)=0.5 p(S)=0.25 p(T)=0.125 2 de mar de 2004 p(N)=0.5 0 p(Y)=0.5 1 10 110 p(X)=0.25 111 0 11 111 Codificación de imágenes y v ideo 41 Run Length Encoding Útil cuando símbolos consecutivos son idénticos. Cada símbolo es seguido por el número de repeticiones. Zero run length coding 2 de mar de 2004 Codificación de imágenes y v ideo 42