Evolución de los compresores

Tras el interés de Compresores de ejecutables, continuamos con el mundo de la compresión. Esta vez hablando de los archivadores de datos tradicionales.

Corría el año 1985 cuando Thom Henderson de SEA, revoluciona el por aquel entonces pequeño mundo de los ordenadores personales con su ARC. Un pequeño programa capaz de empaquetar y comprimir archivos. El incipiente mundo de las BBS, empieza a adoptarlo para facilitar las descargas, y por supuesto para ahorar ancho de banda. La extensión .ARC empieza a popularizarse.

Aprovechando la disponibilidad del código fuete de ARC, en 1987 Phil Katz, a los mandos de PKWare programa PKARC, que más tarde es rebautizado como PKPAK (formato .PAK). Compatible con el ARC original, pero mucho más veloz.

En 1989 superándose a si mismo, crea PKZip, capaz de ofrecer una relación de compresión mucho más elevada, con una velocidad de compresión comparable a los anteriores programas.

Poco después LHARC escrito por el doctor Haruyasu Yoshizaki (Yoshi), hackeado como ICE, y que más tarde se renombra a LHA, ofrece mayor compresión todavía a costa de menor velocidad. El formato .LZH/.ICE/.LHA se hace tremendamente popular en entornos Amiga.

En 1990 Robert Jung crea ARJ (formato .ARJ), con un grado de compresión todavía superior al ofrecido por LHA, y multitud de opciones que lo hacen ideal para copias de seguridad en entornos corporativos.

La empresa rusa Transas Marine contraataca con AIN (.AIN), que supera las espectativas de muchos usuarios. Velocidad de compresión como ZIP, pero comprimiendo más que ARJ. Uno de sus secretos es el uso de archivos sólidos.

En 1991 los usuarios empiezan a migrar a Windows 3, por lo que Nico Mak decide utilizar el formato ZIP en un producto para Windows: WinZIP.

En el año 1993 RAR de Eugene Roshal, no solamente ofrece una compresión que supera con creces a sus rivales, sino que añade una interfaz de usuario al estilo Comandante Norton, que lo hace ideal para usuarios noveles.

En 1995, Ad Infinitum Programs acaba su Ultra Compressor II (.UC2). Una mejora de las anteriores técnicas, con un original método de fuerza bruta que era capaz de mejorar en un pequeño porcentaje la compresión obtenida.

Llega 1996 y aparece el formato .ACE de ACE, añadiendo todavía mayor compresión gracias a explotar las características de los procesadores de 32 bits.

Durante 1997 me propongo el reto de crear el compresor más veloz: Blink. Y no lo consigo por poco.

Uwe Herklotz desarrolla UHARC (.UHA), con increíbles relaciones de compresión a pesar de su lenta velocidad de compresión/descompresión.

En 1999 Igor Paulov lanza 7-Zip, una herramienta de código abierto que ofrece grados de compresión superiores a RAR o ACE, al mismo tiempo que ofrece un interface gráfico sencillo de usar.

M Software distribuye en 2003 WinRK diseñado para comprimir la información al máximo, cueste lo que cueste.

En 2005 Dwing presenta WinUDA, una simple herramienta para obtener elevados ratios de compresión de forma puntual, con una velocidad aceptable.

La historia ha demostrado, que los formatos que han triunfado (.ARC, .ZIP, y .RAR), no son los que más compresión ofrecían. Sino más bien, un mejor balance entre compresión y velocidad. Para ser aceptadas por los usuarios, deben ser sencillas de utilizar. Además la interoperabilidad con otros formatos debe estar asegurada. Es por ello que creo que 7-Zip irá tomando relevancia en los próximos años… Veamos a ver como avanza la lucha 7-Zip 5 contra WinRAR 4.

Tenéis pruebas cuantitativas más detalladas en Maximum Compression. En Archivator, están disponbile multitud de capturas de pantalla de los programas.

Evolución de los compresores

14 comentarios en “Evolución de los compresores”

  1. Muy interesante el post, de veras que me ha parecido mucho más de lo que prometía… Sin embargo, echo en falta algunos formatos… Yo no entiendo en absoluto de compresión, pero habitualmente utilizo archivos .tar, .tar.gz, .tar.bz2…

    Esos no entran en tu lista porque sean más nuevos, peores, porque estén desarrolaldos para unix o algo…¿?

    Por cierto… una pregunta estúpida: ¿Sabes si el formato .tar a secas comprime algo o sólo empaqueta? Es por una discusión que acabamos de tener un colega y yo…

    ¡¡¡Ilumínanos, porfaplis!!!

    Salu3.

  2. Javier Gutiérrez Chamorro (Guti)

    En mi vida no he tratado demasiado con *NIX. A pesar de que TAR, GZIP, y BZIP2 también están disponbiles pada Windows, y algunos para DOS, no creo que hayan aportado demasiado interesante a la compresión.

    Si me apuras, quizás TAR fue el precursor de la compresión sólida empaquetando archivos, aunque sin compresión (esto responde a tu pregunta). Es por ello que es raro encontrar simplemente archivos TAR, y se combinan como tgz/tar.gz (TAR comprimido luego con GZIP), o tar.bz (TAR comprimido BZIP2).

  3. Guti, felicidades por tu interesantísimo artículo.
    Me ha entrado nostalgia y todo.
    Por los viejos tiempos: arj -x -v1440 *.* estrellabinaria.arj

  4. Durante 1997 me propongo el reto de crear el compresor más veloz: Blink. Y no lo consigo por poco.
    ————–
    Creaste un compresor de archivos?

  5. Javier Gutiérrez Chamorro (Guti)

    Bueno Manuel, hice unos cuantos, la mayoría basados en RLE, hasta que llegué al más avanzado, y es el que menciono en el artículo: BLINK, y que si tienes curiosidad está todavía disponible: http://www.geocities.ws/siliconvalley/4505/blink.zip

    La versión Windows, era bastante experimental, así que te recomiendo que uses las de DOS si tienes curiosidad.

  6. Genial, lo voy a probar. Siempre he querido hacer mi propio compresor/descompresor de archivos, 7-Zip permite usar su línea de comandos y hasta cierto punto he logrado comprimir archivos, pero no creo que sea lo mejor, no se tiene control sobre lo que se esta haciendo.

  7. Visitando un poco la web que mencionas veo que la original era en geocities si no me equivoco verdad?, Vaya recuerdos de geocities 🙂

  8. Javier Gutiérrez Chamorro (Guti)

    Bueno Manuel, como se suele decir, querer es poder. Yo empecé con RLE que es muy sencillo en los tiempos del Spectrum. En realidad, pensé que yo había descubierto ese esquema de compresión, hasta que muchos años después me enteré que ya estaba inventado. RLE siempre me ha encantado, y de hecho, hace no demasiados años, volví a intentar el compresor más rápido del mundo usando esa técnica, y en ese caso lo consiguió al menos en algunos casos. Era RLE64, que con solamente un core, era capaz de comprimir a cerca de 5 GB/s, en la página explico además un poco de su historia.

    ¡Feliz lectura!

    El artículo de la Wikipedia lo explica muy bien, así que a ver si pronto nos sorprendes con tu propia implementación en VB.NET. Luego vendrá Huffman, LZ, …

  9. Javier Gutiérrez Chamorro (Guti)

    Efectivamente. Estuvo en Geocities, y de hecho, fue de las primeras webs alojadas allí, empezando en 1995.

    Ahora puede resultar chocante, pero eso ocurrió, años antes de que grandes empresas tuvieran siquiera presencia en la web.

    No me refiero solamente a grandes compañías nacionales, sino incluso muchas del sector tecnológico.

    Te dejo algo más de historia. Era/es, De Trans Software (D.T.S.), aún viva, gracias a los mirrors que fueron apareciendo.

Deja un comentario