¿Qué es la compresión de datos sin pérdida?

La compresión de datos sin pérdida es un método informático para almacenar archivos y combinarlos en archivos que ocupan menos espacio físico en la memoria del que ocuparían los archivos sin perder la información que contienen los datos en el proceso. La compresión con pérdida, por el contrario, reduce el tamaño del archivo con aproximaciones de los datos, y la restauración es casi un facsímil al contenido del archivo original. Los algoritmos utilizados para la compresión de datos sin pérdidas son esencialmente un conjunto de reglas o instrucciones optimizadas para codificar la información utilizando menos bits de memoria y, al mismo tiempo, conservando la capacidad de restaurar los datos a su formato original sin alteraciones.

Algunos tipos de archivos comunes que utilizan compresión de datos sin pérdida incluyen los archivos zip basados ​​en computadora de International Business Machines (IBM) y los archivos de archivos gzip basados ​​en computadora de Unix. También se utilizan formatos de archivo de imagen como el formato de intercambio gráfico (GIF), gráficos de red portátiles (PNG) y archivos de mapa de bits (BMP). Los algoritmos de compresión de datos también varían según el tipo de archivo que se comprime, con variaciones comunes para texto, audio y archivos de programas ejecutables.

Las dos categorías principales de algoritmos para la compresión de datos sin pérdidas se basan en un modelo estadístico de datos de entrada y un modelo de mapeo de cadenas de bits en un archivo de datos. Los algoritmos estadísticos de rutina utilizados son la transformada de Burrows-Wheeler (BWT), el algoritmo de Abraham Lempel y Jacob Ziv (LZ77) publicado en 1977 y el método Prediction by Partial Matching (PPM). Los algoritmos de mapeo empleados con frecuencia incluyen el algoritmo de codificación de Huffman y la codificación aritmética.

Algunos de los algoritmos son herramientas de código abierto y otros son propietarios y están patentados, aunque las patentes de algunos también han expirado. Esto puede provocar que en ocasiones se apliquen métodos de compresión al formato de archivo incorrecto. Debido al hecho de que ciertos métodos de compresión de datos son incompatibles entre sí, el almacenamiento de archivos mixtos a menudo puede degradar un componente de un archivo. Por ejemplo, un archivo de imagen con texto comprimido puede mostrar degradación en la legibilidad del texto una vez restaurado. Los escáneres y el software que emplean la inducción gramatical pueden extraer el significado del texto almacenado junto con los archivos de imagen mediante la aplicación de lo que se conoce como análisis semántico latente (LSA).

Otra forma de método de algoritmo de mapeo para la compresión de datos sin pérdidas es el uso de código universal. Más flexible de usar que la codificación de Huffman, no requiere el conocimiento de los valores enteros máximos antes de tiempo. Sin embargo, la codificación de Huffman y la codificación aritmética producen mejores tasas de compresión de datos. También se están realizando esfuerzos para producir métodos de compresión de datos universales que crearían algoritmos que funcionen bien para una variedad de fuentes.