Categorías destacadas
programacion php    
Artículo
2
¡votar!

 Introducción a la compresión de datos: Lempel-Ziv, Gzip


Introducción

Seguramente todo el mundo sabe lo que es comprimir datos. Si no lo ha hecho nunca, basta con que busque un fichero, preferiblemente grande (para que el resultado sea más impactante) y de texto (puesto que estos ficheros suelen tener más redundancia que los ficheros binarios) y hacer:

ls -l fichero_grande
gzip fichero_grande
ls -l fichero_grande.gz

Puesto que en este artículo vamos a explicar el método de compresión en el que se basa gzip, resulta interesante comprobar cuánto comprime gzip su propio código fuente. Inicialmente tenemos todo el código fuente archivado en un .tar, que es un formato que sólamente junta ficheros; no los comprime. Veamos lo que ocupa este tar antes y después de la compresión:

juanma@garfield:~/opr> ls -l gzip_1.2.4.tar
-rw-------   1 juanma   juanma     368640 Mar  7 02:30 gzip_1.2.4.tar
juanma@garfield:~/opr> gzip gzip_1.2.4.tar
juanma@garfield:~/opr> ls -l gzip_1.2.4.tar.gz
-rw-------   1 juanma   juanma     103898 Mar  7 02:30 gzip_1.2.4.tar.gz

Hemos pasado de ocupar 368.640 bytes a menos de la tercera parte: 103.898. No está nada mal.

La compresión es posible porque normalmente en una fuente (en este caso el fichero con el código fuente del gzip) además de información hay también redundancia, es decir, datos que no nos aportan más información, en general porque pueden obtenerse a partir de los datos anteriores.

¿Exite un límite en cuanto a lo que podemos llegar a comprimir esos 368.640 bytes, un punto a partir del cual no se pueda reducir ya más el tamaño de la fuente, un punto en el que se haya eliminado toda la redundancia y ya sólo quede información? La intuición nos dice que sí. Si llegáramos a comprimirlo hasta 0 ó 1 byte, parece difícil que seamos capaces de sacar toda esa información -10.460 líneas de código- de ahí.

Dentro de la Teoría de la Información, que es la rama de la ciencia que se ocupa de la compresión de datos, hace tiempo que se ha demostrado que ese límite, efectivamente, existe, y recibe el nombre de entropía.

 
Publicado por:
Elio Aldo Santos Vargas
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon