Compresión de datos: principios, modelos y teoría de la información

Fuentes: Data Compression Explained

La compresión de datos es la disciplina dedicada a reducir el número de bits necesarios para almacenar o transmitir información, y se divide en dos grandes familias. La compresión sin pérdida permite reconstruir exactamente los datos originales; un ejemplo temprano es el código Morse de 1848, que asigna las secuencias más cortas a las letras más frecuentes en inglés, como la E y la T, y las más largas a las menos habituales, como J, Q, X y Z. La compresión con pérdida, en cambio, descarta información considerada irrelevante para la percepción humana, como ocurre con el estándar NTSC de televisión en color de 1953, que reduce la resolución de la señal de color frente a la de brillo porque el ojo distingue peor los detalles finos de color que los de luminancia.

Todos los algoritmos de compresión comparten una estructura básica: un modelo, que estima la distribución de probabilidad de los símbolos, y un codificador, que asigna códigos más cortos a los símbolos más probables. Aunque la codificación cuenta con soluciones eficientes y óptimas, la modelización óptima ha demostrado ser no computable, lo que la convierte tanto en un problema de inteligencia artificial como en un arte. En la compresión con pérdida se añade una etapa previa de transformación que separa la información importante de la prescindible, y el diseño de esa transformación también depende de entender la percepción humana.

La teoría de la información establece límites firmes a lo que puede comprimirse sin pérdida. Mediante el argumento de conteo se demuestra que ningún compresor puede reducir todos los datos: la fracción de cadenas compresibles de n bits a m bits es como máximo 2^(m−n), de modo que menos del 0,4 % de las cadenas se puede comprimir siquiera en un byte. Además, todo compresor que reduce alguna entrada debe expandir otra, aunque nunca más de un símbolo.

El texto introduce los conceptos de entropía, longitud óptima de código (logaritmo en base 2 del inverso de la probabilidad), códigos de Huffman, códigos aritméticos y la regla de la cadena, y los ilustra comparando la codificación BCD, Huffman y binaria aplicada a los dígitos de π, donde el límite teórico ronda los 3,3219 bits por dígito. La obra está dirigida a lectores con nociones de programación y matemáticas que deseen comprender el funcionamiento de la compresión o desarrollar software en este ámbito.