LZMA

algoritmo de compresión de datos

El Algoritmo de cadena de Lempel-Ziv-Markov (Lempel–Ziv–Markov chain algorithm) o LZMA, es un algoritmo de compresión de datos sin pérdidas.

Lleva desarrollándose desde 1996 o 1998 por Igor Pavlov[1]​ y se utilizó por primera vez en el formato 7z del archivador 7-Zip. Este algoritmo utiliza un esquema de compresión de diccionario algo similar al algoritmo LZ77 publicado por Abraham Lempel y Jacob Ziv en 1977 y se caracteriza por un alto ratio de compresión (generalmente superior al de bzip2)[2][3]​ y un tamaño de diccionario de compresión variable (hasta 4 GB),[4]​ manteniendo una velocidad de descompresión similar a la de otros algoritmos de compresión de uso común.[5]

LZMA2 es un formato contenedor simple que puede incluir tanto datos sin comprimir como datos LZMA, posiblemente con múltiples parámetros de codificación LZMA diferentes. LZMA2 soporta compresión y descompresión multihilo arbitrariamente escalable y compresión eficiente de datos que son parcialmente incompresibles[6]​.

Descripción

editar

LZMA utiliza un algoritmo de compresión por diccionario (una variante de LZ77 con diccionarios de gran tamaño y soporte especial para distancias de coincidencia utilizadas repetidamente), cuya salida se codifica después con un Rango de codificación, utilizando un modelo complejo para hacer una predicción de probabilidad de cada bit. El compresor de diccionario encuentra coincidencias utilizando sofisticadas estructuras de datos de diccionario, y produce un flujo de símbolos literales y referencias de frases, que es codificado bit a bit por el codificador de rango: son posibles muchas codificaciones, y se utiliza un algoritmo de Programación dinámica para seleccionar una óptima bajo ciertas aproximaciones.[7]

Referencias

editar
  1. Igor Pavlov (19 de febrero de 2004). «LZMA spec?». Archivado desde el original el 9 de noviembre de 2012. Consultado el 16 de junio de 2013. 
  2. Lasse Collin (31 de mayo de 2005). «A Quick Benchmark: Gzip vs. Bzip2 vs. LZMA». Consultado el 21 de octubre de 2015.  - LZMA Unix Port fue finalmente sustituido por xz, que ofrece una compresión mejor y más rápida; a partir de aquí sabemos que incluso LZMA Unix Port era mucho mejor que gzip y bzip2.
  3. Klausmann, Tobias (8 de mayo de 2008). «Gzip, Bzip2 and Lzma compared». Blog of an Alpha animal. Archivado desde el original el 6 de enero de 2013. Consultado el 16 de junio de 2013. 
  4. Igor Pavlov (2013). «7z Format». Consultado el 16 de junio de 2013. 
  5. Mahoney, Matt. «Data Compression Explained». Consultado el 13 de noviembre de 2013. 
  6. Antonio Diaz Diaz. «Xz format inadequate for long-term archiving». Consultado el 20 de julio de 2018. 
  7. «LZMA Specification.7z in LZMA SDK». 7-zip.org.