Si alguna vez ha tenido que enviar por correo electrónico, cargar o descargar varios archivos o programas de gran tamaño, es muy probable que se haya encontrado con archivos ZIP. También conocidos como archivos comprimidos o archivados, los archivos ZIP condensan varios archivos en una sola ubicación con la extensión .zip o .ZIP, reduciendo el tamaño total y facilitando su transmisión.
Phillip Katz inventó el archivo ZIP en 1986, y se implementó por primera vez con el programa PKZip para la empresa de Katz, PKWare, Inc. Con el tiempo, el método de compresión de Katz se convirtió en un uso común dentro de los sistemas operativos más populares. Microsoft Windows y Mac OS de Apple incluyen utilidades integradas para comprimir y descomprimir archivos, y programas como WinRAR, WinZip y StuffIt pueden ampliarlos.
¿Pero cómo funciona todo esto? ¿Qué tipo de magia tecnológica está en juego que hace que sus archivos sean más pequeños mientras mantiene toda la información para más adelante?
Esa “magia” es en realidad un algoritmo bastante sencillo que toma los aspectos redundantes de un archivo y lo divide en partes más pequeñas.
Para un ejemplo fácil de entender, tomemos la frase “Mashable puede ayudar a que los lectores sean más inteligentes; los lectores pueden ayudar a que Mashable sea más inteligente”, y hagamos como si fuera un archivo.
Cada palabra de la frase de ejemplo aparece dos veces. Si cada carácter y espacio de esta frase constituyera una unidad de memoria, el conjunto tendría un tamaño de archivo de 78 unidades. Si creáramos un código numerado -o “diccionario”- para esta frase, podría ser algo así:
1. Mashable
2. can
3. help
4. make
5. readers
6. smarter
Esta nueva frase sólo tiene 24 unidades. Por lo tanto, el archivo comprimido tendría sólo 24 unidades de memoria, además de otro archivo que enumera nuestro código numerado, para que el programa de compresión sepa cómo aplicar cada unidad de información. Esto se llama “compresión sin pérdidas”; toda la información original se conserva.
La forma en que funciona un programa de compresión real es un poco más complicada que el ejemplo anterior: reconocería patrones. Un ejemplo es la letra “e” y un espacio después de “Mashable” y “make”. Pero como no hay muchos casos en los que aparezca este patrón en particular, lo más probable es que el programa lo sobrescriba con un patrón más aparente. El programa real es capaz de encontrar un diccionario y un archivo comprimido mucho más eficientes que los que podríamos encontrar nosotros.
Según el sitio web educativo e instructivo HowStuffWorks, es común que los idiomas tengan patrones redundantes, por lo que los archivos de texto se comprimen fácilmente. Pero la proporción de reducción del archivo depende de varios factores, como el tipo y el tamaño del archivo y la forma en que el programa decida comprimirlo.
En cambio, las imágenes y los archivos MP3 contienen más información única sin muchos patrones. Ahí es donde entra la “compresión con pérdidas”: los programas de compresión se deshacen de lo que consideran información innecesaria. Si tuviéramos una imagen escaneada, por ejemplo, con un cielo azul, un programa de compresión podría elegir un color de azul para cada píxel. Si el esquema de compresión funciona bien, el cambio no sería muy perceptible, pero el tamaño del archivo sería significativamente menor.
El problema de la compresión con pérdidas, sin embargo, es que no se puede obtener el archivo original a partir del archivo comprimido, por lo que es menos ideal que la compresión sin pérdidas cuando se necesita conservar toda la información original, como cuando se descargan bases de datos y ciertas aplicaciones.
Imagen compuesta de Mashable cortesía de , tose, Auris.