LZMA

LZMA para Lempel - Ziv - El algoritmo de cadena de Markov es un algoritmo para la compresión de datos sin pérdida en desarrollo hasta 2001 y utilizado en el programa de formato 7z 7-Zip , StuffitX y algunos otros archivadores, así como los controles dedicados a la compresión de datos, xz y lzma. Utiliza una compresión de diccionario bastante similar a la LZ77 y ofrece una alta relación de compresión (generalmente más fuerte que Bzip2 ) y un tamaño de diccionario de compresión variable (hasta 4  GB ).

Además de su mayor tasa de compresión, tiene la doble ventaja de ser más rápido que bzip2 para ratios de compresión bajos, pero sobre todo de ser más rápido que bzip2 durante la descompresión y con un ratio de compresión más alto. Por otro lado, tiene la desventaja de ser muy lento y consumir memoria durante la compresión con altas relaciones de compresión. Cuando se utilizan las relaciones de compresión más fuertes (-9 y -e), se requieren 311 MB de RAM para la compresión y 33 MB de RAM para la descompresión.

Una nueva versión de LZMA, LZMA2 , lo reemplaza en el formato XZ , que reemplazará al formato .lzma (trayendo nuevas características, en particular la verificación de integridad). 7-Zip es compatible con LZMA2 desde la versión 9.04 beta (lanzada el30 de mayo de 2009) y lo convirtió en el formato de compresión predeterminado desde la versión 9.30 alpha (lanzada el 26 de octubre de 2012). WinRAR permite la descompresión de archivos 7z utilizando LZMA2 desde la versión 3.91 (publicada el15 de diciembre de 2009).

Usos

7-Zip es un archivador que usa compresión LZMA por defecto. Su autor, el ruso Igor Pavlov , lo creó en torno al kit de desarrollo LZMA. El SDK y 7-zip se portaron a entornos POSIX en P7zip .

El kit de desarrollo proporcionó en sus primeras versiones, entre otras, el ejecutable "lzma" que es un compresor de flujo simple (utilidad comparable a bzip2). La herramienta lzma comprime archivos agregando una extensión .lzma al final del nombre del archivo. Los diseñadores desaconsejan el uso de este formato de archivo porque este formato no tiene una verificación de integridad de datos. En particular, la herramienta lzma ignora cualquier dato adicional al final del archivo; otros programas del mismo tipo suelen interpretar estos datos como un error.

Entonces, los diseñadores crearon una nueva versión de su kit, llamada xz, agregando una suma de verificación de integridad a los archivos. Recomiendan el uso de estas herramientas XZ , que permiten, entre otras cosas, utilizar el algoritmo LZMA, junto con un algoritmo de control de integridad. Las herramientas xz tienen una sintaxis similar a la de las herramientas lzma y permiten descomprimir archivos en este formato.

La herramienta pxz (para "paralelo xz" también presente en 7-Zip permite realizar la compresión LZMA distribuyéndola entre varios procesadores. Esto tiene la ventaja de acelerar este tipo de compresión en arquitecturas multiprocesador, pero debido al tamaño variable de los paquetes. procesado en este algoritmo, para tener una tasa de compresión menos eficiente que la versión de un solo procesador.

Usos

Tener una tasa de compresión muy buena y una velocidad de descompresión excelente ha permitido que este formato se utilice en formatos de sistemas de archivos comprimidos a los que se accede como solo lectura.

LZMA se puede utilizar sobre el archivador tar , como bzip2 o gzip. Algunas versiones de tar ( por ejemplo, la de busybox ) administran archivos LZMA (.tar.lzma).

Dado que LZMA admite de forma nativa el subproceso múltiple , puede ser más rápido que usar bzip2. Hoy en día existe una versión multiproceso de bzip2 con el nombre pbzip2 que proporciona el mismo tipo de ganancia de velocidad.

Licencia

El SDK de LZMA se ha colocado en el dominio público desde la versión 4.62.

Notas y referencias

  1. (en) banco de pruebas gzip / bzip2 / LZMA .
  2. Historial de cambios de 7-zip
  3. Historial de WinRAR (versión archivada)
  4. página de manual del programa
  5. (in) PXZ - Compresor LZMA paralelo usando liblzma

enlaces externos