Logo Studenta

¿Es posible comprimir un archivo de computadora grande (por ejemplo: 3GB) una y otra vez hasta que se vuelva muy pequeño (por ejemplo: 2MB)?

💡 1 Respuesta

User badge image

Aprendiendo con Apuntes

Es posible pero no como piensas ;–)

Imagina que tienes un archivo de texto con 3000 millones de letras A ("AAAAAAAAA…") que ocupa casi 3GB. Lo podrías comprimir así, sin mayor misterio:

  1. A%3x10^9 

¡Listo! ¡Hemos comprimido 3GB en solo 8 bytes! Si queremos descomprimir esos 8 bytes, lo hacemos así: el primer carácter es la letra a repetir, A, y después del %%, está la cantidad de veces que tiene que repetirse en notación matemática, 3×1093×109. Como puedes ver, será fácil descomprimirlo y recuperar el archivo original.


Este ejemplo sirve bien para mostrar de qué trata la compresión y descompresión: básicamente, buscar patrones de datos que se repiten y reemplazarlos por datos más pequeños. Luego, cuando se necesite, tomar esos datos pequeños y recuperar la información original.

En ese sentido un ejemplo de compresión más realista sería este: podemos comprimir "AAAAAABBBCCCCC" (14 bytes) como "A6B3C5" (6 bytes). Creo que el truco para descomprimir es bastante obvio, ¿verdad? :–)


Volviendo a tu pregunta: ¿se puede comprimir un archivo una y otra vez hasta que sea minúsculo?

Depende… Si no deseas perder información, en cada intento, los patrones que se repiten irán desapareciendo y no será posible obtener una ganancia significativa. Incluso el archivo "comprimido" puede ser más grande que el original. De ahí que comprimir un archivo que alcanzó su máximo, ya no tiene sentido. Toma nota que dependiendo del método de compresión, ¡esto podría pasar al 2do o 3er intento!

Si es aceptable perder información, entonces sí puedes llegar más lejos, pero tendrás que aceptar que no podrás recuperar el archivo original.

Reutilizando el ejemplo anterior, si tienes "AAAAAABBBCCCCC" (14 bytes) pero es aceptable perder el 33% al azar y te queda "AAAAACCCC" (9 bytes donde, por coincidencia, se perdieron todas las "B"), comprimido va resultar en "A5C4" (4 bytes), 33% menos si comparamos con el ejemplo anterior sin pérdida de información, "A6B3C5".


Ejemplos de compresor sin pérdida son ZIP o RAR que permiten comprimir archivos y recuperar los originales. Ejemplos de compresores con pérdida son los que pertenecen al estándar MPEG, que se utilizan para audio y video. Se puede perder calidad, pero mientras sea posible entender lo que se transmite, se considera aceptable. Claro está, después de la pérdida ya no se puede recuperar el audio o video original con máxima calidad.


En resumen, hay un límite para la compresión de datos que puede ser sobrepasado hasta cierto punto si se acepta perder información.

Sobre el ejemplo de tu pregunta: salvo que haya muchos patrones de datos repetidos en ese archivo de 3GB, dudo mucho que llegue a 2MB, sin importar cuántas veces se lo comprima.

0
Dislike0

✏️ Responder

FlechasNegritoItálicoSubrayadaTachadoCitaCódigoLista numeradaLista con viñetasSuscritoSobreDisminuir la sangríaAumentar la sangríaColor de fuenteColor de fondoAlineaciónLimpiarInsertar el linkImagenFórmula

Para escribir su respuesta aquí, Ingresar o Crear una cuenta

User badge image

Otros materiales