Está en la página 1de 5

Compresin de Datos

Muchas veces al descargar cosas de Internet, nos encontramos con archivos .zip y .rar. Estos formatos de compresin son una herramienta bastante til, sobre todo para aquellos que navegamos bajando cosas por aqu y por all. Principalmente debido a que nos ayudan a disminuir los tiempos de descarga y adems nos ayudan a ocupar menos espacio en nuestros discos duros. La idea bsicamente es comprimir un archivo con un programa (Winzip o Winrar, que son los ms comunes) para as disminuir su tamao, y luego cuando queremos acceder a la informacin utilizamos el mismo programa para volver al tamao original. A primera vista este proceso parece bastante misterioso. Cmo uno puede reducir una cantidad de bits y bites, y luego agregarlos de vuelta como si nada? Es por esto que en este captulo de CHWonders veremos el concepto bsico detrs de la compresin de los archivos, para que as puedan entender de qu trata.

Concepto
Por lo general, la mayora de los archivos de nuestro computador son redundantes, Qu quiere decir esto?, pues contienen paquetes en los cuales la informacin se repite una y otra vez en otro paquete. Es por esto que los programas de compresin de archivos, simplemente se deshacen de esta redundancia, y lo nico que hacen es guardar una sola copia de la informacin, y luego dejar registrada la referencia de las ubicaciones en donde sta informacin aparece nuevamente dentro del archivo. Para dar un ejemplo utilizare un conocido trabalenguas: Pablito clavo un clavito que clavito clavo Pablito

Dentro de esta frase, hay 8 palabras, compuestas de 43 letras, 8 espacios y 1 guion. Si tomamos a cada letra, espacio y smbolo como unidad de memoria, entonces tendramos un total de 52 unidades. Para disminuir el tamao del archivo, necesitamos ver las redundancias presentes. Entonces nos damos cuenta que: Pablito aparece dos veces clavo aparece dos veces un aparece una vez clavito aparece dos veces que aparece una vez Por lo cual 3 de las 8 palabras que hay en la frase son en verdad redundantes, y con tan solo 5 palabras podemos construir la totalidad de la frase. Solo basta indicar la ubicacin en la cual estas palabras van para poder construir la frase. A continuacin veremos cmo los sistemas de compresin trabajan con estas redundancias.

Redundancia y Algoritmos
La mayora de los programas de compresin que utilizamos usan una variacin del algoritmo LZ adaptivo basado en diccionario para comprimir archivos. LZ se refiere a Lempel y Ziv, los creadores de este algoritmo para catalogar piezas de informacin.

Abraham Lempel, contribuyo a la creacin del algoritmo del formato .gif

El sistema para ordenar las variantes por diccionario puede variar, pero puede ser tan simple como usar una lista enumerada. Entonces cuando utilizamos el trabalenguas y ordenamos numricamente las redundancias obtenemos lo siguiente: 1. Pablito 2. clavo 3. clavito Y al leerlo lo haramos as: 1 2 un 3 que 3 2 1 Entonces con tan solo el orden y 5 palabras, obtenemos una frase compuesta de 8 palabras. Esto es lo que hacen bsicamente los programas al descomprimir los archivos que tenemos en nuestro computador, leer la informacin redundante y la ubicacin de estos, para reintegrarlos al archivo original. Por lo tanto, de las 52 unidades de la frase original, pasamos a tan solo 39 unidades (que es la suma de la cantidad de caracteres de nuestras palabras redundantes, ms la cantidad de caracteres en nuestra frase codificada numricamente), lo cual equivale a un 25% menos de la informacin original que tenamos. Si este mismo proceso lo aplicramos a un largo archivo de texto, la compresin seria cada vez mayor aun. Pero como nuestra computadora no ve los archivos que tenemos como palabras, lo que hace es buscar patrones dentro de los archivos, y ser lo que explicare a continuacin.

La compresin de datos en imgenes

En bsqueda de patrones Debido a que el computador no es capaz de identificar inmediatamente un patrn por completo, lo que hace es ir paso por paso descubriendo las redundancias presentes. Si un programa de compresin leyera nuestro texto, la primera redundancia que encontrara seria de tan solo unas letras. En Pablito clavo un clavito hay un patrn que se repite de la letra o seguida de un espacio. Si el programa agregara este patrn al diccionario, agregara un 1 por cada o que existiera antes de un espacio, pero debido a que dentro de esta corta frase, el patrn no ocurre la cantidad de veces suficiente, no se justifica este diccionario. Por lo cual luego el programa pasara al siguiente patrn, el cual es ito, que aparece en Pablito y en clavito, logrando de esta manera omitir 3 unidades (ito) en vez de los 2 de la o y el espacio. Pero luego el programa analizara en busca de otro patrn existente y se encontrara con clavito repetido dos veces, si es que fuese ledo secuencialmente, y as encontrara adems, clavo y Pablito. Pero eso no es todo, luego el computador vera que las palabras clavito y clavo en cada parte que se repiten van acompaados de un espacio, por lo cual finalmente el diccionario lo almacenara as, si es que consideramos al _ como el espacio: 1. clavito_ 2. clavo_ 3. Pablito Dndonos finalmente esta sentencia: 3_2un1-_que_123 Si el computador despus de analizar no encontrara ms patrones y se quedara con este, la cantidad de unidades que obtenemos entre la sentencia y el diccionario es de tan solo 36 unidades (3 menos que la anterior que utilizamos). Aun as esta es una de las tantas maneras que existen de comprimir la frase, y no necesariamente la ms eficiente (a ver si a ustedes se les ocurre una mejor).

Conclusin
En la mayora de los lenguajes del mundo, ciertas letras y palabras aparecen juntas dentro de un mismo patrn. Y debido a esta alta cantidad de redundancia, los archivos de textos se comprimen muy bien, logrando una reduccin de incluso un 50% del tamao original del texto. Muchos lenguajes de programacin tambin son redundantes debido a que los archivos creados, utilizan comandos que se van repitiendo a travs del programa, generando de esta manera patrones. Pero archivos que incluyen mucha informacin nica, como los grficos o archivos MP3, no pueden comprimirse mucho con este sistema debido a que dentro de estos archivos no se repiten muchos patrones. Por lo tanto la capacidad de compresin de un archivo, depende de la cantidad de informacin existente, las redundancias que haya y de los patrones que se puedan ir obteniendo a travs del anlisis. Y principalmente dependen del algoritmo utilizado por el programa. Algunos programas estn hechos para elegir una serie de patrones de ciertos tipos de archivos, por lo cual comprimen esos archivos de mejor manera. En cambio otros trabajan con diccionarios por lo cual comprimirn una mayor proporcin si el archivo es grande, y comprimirn poco si el archivo es chico. Cada vez los programadores van descubriendo nuevos algoritmos, y gracias a la inteligencia artificial es que veremos a futuro programas ms eficientes al momento de comprimir nuestros archivos. Si les interesa el tema, los dejo con un video muy educativo desde el punto de vista de la programacin

También podría gustarte