Luego: Cadena original = Cadena descomprimida entonces es Compresin sin perdida de datos Compresor / Descompresor 101100 Cadena comprimido 101100 Compresor / Descompresor aabbabaa aabbabaa Cadena descomprimida Modelos Compresores Estadsticos Compresores basados en diccionarios Compresores Estadsticos Usan propiedades estadsticas Parten de: 1. Fuente de informacin de n mensajes 2. La probabilidad de aparicin de cada mensajes 3. Un alfabeto de salida Se dividen en: 1. Compresores Aritmticos 2. Compresores Predictivos Compresores Aritmticos Ejemplo: Comprimir la cadena abc, cuyas probabilidades son: P(a)=0.7, P(b)=0.1, P(c)=0.2 Cadena Probabilidad a b c 0.7 0.1 0.2 0 1 Compresin de cadena abc
Codificamos la cadena a Partimos el intervalo segn la probabilidad
Cadena Probabilidad a b c 0.7 0.1 0.2 0 1 0.7 0.8 a b c 0 0.7 Compresin de cadena abc
Codificamos la cadena ab Partimos el intervalo segn la probabilidad
0 0.7 0.56 0.49 a c b 0.49 0.56 Compresin de cadena abc
Codificamos la cadena abc Partimos el intervalo segn la probabilidad
0.49 0.56 0.546 0.539 a c b 0.546 0.56
La cadena abc quedara codificada por cualquier valor que se encuentre en el intervalo [0.546 , 0.56] En este caso elegiremos el valor medio : 0.553 Por tanto, la codificacin de la cadena abc es 0.553 0 0.546 1 0.7 0 0.56 0.56 0.49 Compresores Predictivos Que hacen? Predicen el siguiente mensaje de entrada tomando como base las entradas procesadas hasta el momento. Si la prediccin es correcta, la compresin se har con menos bits. Pero si es incorrecta, la compresin se har con mas bits. 1.Actan sobre un mensaje cada vez y realizan una prediccin que generalmente suele ser de calculo sencillo. 2.Resultan sencillos de programar 3.Permiten una compresin transparente en tiempo real. Se apoyan usando matrices o tablas dinmicas. Ejemplo Compresor Predictivo Predictor Que mtodo utiliza? Predice la entrada siguiente analizando la dos ultimas entradas. Qu estructura de datos usa? Este compresor se apoya de una matriz para guardar sus predicciones. Cmo funciona? Predictor C Entrada actual i - j Entradas anteriores P = A[i,j] Prediccin P Prediccin correcta Prediccin incorrecta Compresores basados en diccionarios La idea principal de estos compresores es la construccin de un diccionario de cadenas con sus respectivos ndices, a medida de que se va comprimiendo el archivo.
aabbaaaccff Secuencia seleccionada Diccionario ndice Cadena 1 2 aff aab 2baaaccff Cadena comprimida Algoritmo LZW Este algoritmo es una mejora eficiente al algoritmo LZ78. Parte con un diccionario en el cual se encuentran los cdigos ASCII. El propsito del algoritmo es construir un diccionario en el que se guardan todas las cadenas que han aparecido en la entrada. A cada cadena se le asigna un ndice que la representa. Al ir codificando, si nos encontramos con una cadena que ya esta en el diccionario, la salida del algoritmo ser el cdigo de la cadena en el diccionario. La eficiencia reside en que es posible crear de manera automatica y en una unica pasada el diccionario de cadenas al mismo tiempo en que se va codificando Como ejemplo codificaremos la cadena: TOBEORNOTTOBEOR Actual Carcter sgte. Salida-Cd. Salida-bits Diccionario-Codigo Diccion.-Cadena NULL T T O 84 1010100 256 TO O B 79 1001111 257 OB B E 66 1000010 258 BE E O 69 1000101 259 EO O R 79 1001111 260 OR R N 82 1010010 261 RN N O 78 1001110 262 NO O T 79 1001111 263 OT T T 84 1010100 264 TT TO B 256 100000000 265 TOB BE O 258 100000010 266 BEO OR T 260 100000100 267 ORT TOB E 265 100001001 268 TOBE EO R 259 100000011 269 EOR R NULL 82 1010010 La cadena comprimidas es: 10101001001111100001010001011001111010010 La cadena original es: TOBEORNOTTOBEOR Tamao de la cadena comprimida: 93 bits Tamao de cadena original: 15caracteres*(8bits) = 120 bits Porcentaje de compresin es: (93/120)*100% = 22.5%