LZX es un algoritmo de compresión de la familia LZ77 , una versión ligeramente mejorada de DEFLATE . [1] También es el nombre de un archivador de archivos con el mismo nombre. Ambos fueron inventados por Jonathan Forbes y Tomi Poutanen en la década de 1990.
LZX se lanzó al público como un archivador de archivos para Amiga en 1995, mientras los autores estudiaban en la Universidad de Waterloo en Canadá . El software era shareware , lo que era común para el software de compresión en ese momento. La versión registrada contenía correcciones y mejoras que no estaban disponibles en la versión de evaluación. En 1997, los autores regalaron un archivo de clave gratuito, que permitía a cualquiera usar la versión registrada, ya que habían dejado de trabajar en el archivador y dejaron de aceptar registros.
En 1996, Forbes empezó a trabajar para Microsoft [ 2] y el archivador de archivos de Microsoft se mejoró para incluir el método de compresión LZX. Las mejoras incluyeron un tamaño de ventana de búsqueda variable; Amiga LZX se fijó en 64 KB, y Microsoft LZX podía variar en potencias de dos entre 32 y 2048 kilobytes (32.768 a 2.097.152 bytes). Se añadió un preprocesador especial para detectar las instrucciones "CALL" de Intel 80x86 , convirtiendo sus operandos de direccionamiento relativo a direccionamiento absoluto, por lo que las llamadas a la misma ubicación dieron como resultado cadenas repetidas que el compresor podía igualar, mejorando la compresión del código binario 80x86. (Esta técnica se generalizó más tarde como filtrado Branch-Call-Jump [BCJ]).
Cuando Microsoft presentó Microsoft Compressed HTML Help , el reemplazo de su formato de archivo de ayuda clásico, optó por comprimir todos los datos HTML con el algoritmo LZX. Sin embargo, para mejorar la velocidad de acceso aleatorio, se modificó el compresor para que se reiniciara después de cada intervalo de 64 kilobytes (65.536 bytes) y se realineara a un límite de 16 bits después de cada intervalo de 32 kilobytes. De este modo, el software HTMLHelp podía buscar inmediatamente el intervalo de 64 kilobytes más cercano y comenzar a decodificar desde allí, en lugar de decodificar desde el principio del flujo de datos comprimido en todo momento.
Los archivos Microsoft LIT para Microsoft Reader son simplemente una extensión del formato de archivo CHM y, por lo tanto, también utilizan compresión LZX.
Windows Imaging Format , el formato de archivo de imagen de instalación/unidad de Windows Vista y Windows 7 , utiliza LZX como uno de los métodos de compresión. [3]
En Windows 10 , se utiliza la compresión LZX de Windows Imaging Format para la nueva compresión de archivos NTFS de CompactOS .
Microsoft utiliza compresión LZX en los avatares de Xbox Live para reducir sus requisitos de disco y ancho de banda. [4]
El programa unlzx y XAD pueden descomprimir archivos LZX de Amiga. El programa cabextract puede descomprimir archivos cabinet de Microsoft utilizando el método LZX. [5] Hay una multitud de herramientas multiplataforma para descompilar o visualizar archivos CHM, como se indica en el artículo sobre CHM . Los archivos LIT se pueden descomprimir utilizando el software Convert LIT. [6]