La compresión consiste en la reducción del volumen de información a tratar (procesar, transmitir o grabar). En principio, con la compresión se pretende transportar la misma información, pero empleando la menor cantidad de espacio.
El espacio que ocupa una información codificada (datos, señal digital…) sin compresión viene a ser el cociente entre la frecuencia de muestreo y la resolución. Por tanto, cuantos más bits se empleen mayor será el tamaño del archivo, no obstante, la resolución viene impuesta por el sistema digital con que se trabaja y no se puede alterar el número de bits a voluntad, por ello, se utiliza la compresión, para transmitir la misma cantidad de información que ocuparía una gran resolución en un número inferior de bits.
La compresión de datos se basa fundamentalmente en buscar repeticiones en series de datos para después almacenar solo el dato junto al número de veces que se repite. Así, por ejemplo, si en un fichero aparece una secuencia como «AAAAAA», ocupando 6 bytes se podría almacenar simplemente «6A» que ocupa solo 2 bytes, en algoritmo RLE.
En realidad, el proceso es mucho más complejo, ya que raramente se consigue encontrar patrones de repetición tan exactos (salvo en algunas imágenes). Se utilizan algoritmos de compresión:
* Por un lado, algunos buscan series largas que luego codifican de formas más cortas.
* Por otro lado, algunos algoritmos como el algoritmo de Huffman, examinan los caracteres más repetidos para luego codificar de forma más corta los que más se repiten.
* Otros, como el LZW, construyen un diccionario con los patrones encontrados, a los cuales se hace referencia de manera posterior.
A la hora de hablar de compresión hay que tener presentes dos conceptos:
1. Redundancia: Datos que son repetitivos o previsibles
2. Entropía: La información nueva o esencial que se define como la diferencia entre la cantidad total de datos de un mensaje y su redundancia.
La información que transmiten los datos puede ser de tres tipos:
1. Redundante: Información repetitiva o predecible.
2. Irrelevante: Información que no podemos apreciar y cuya eliminación por tanto no afecta al contenido del mensaje. Por ejemplo, si las frecuencias que es capaz de captar el oído humano están entre 16/20 Hz y 16.000/20.000 Hz s, serían irrelevantes aquellas frecuencias que estuvieran por debajo o por encima de estos valores.
3. Básica: La relevante. La que no es ni redundante ni irrelevante. La que debe ser transmitida para que se pueda reconstruir la señal.
Teniendo en cuenta estos tres tipos de información, se establecen tres tipologías de compresión de la información:
1. Sin pérdidas reales: Es decir, transmitiendo toda la entropía del mensaje (toda la información básica e irrelevante, pero eliminando la redundante).
2. Subjetivamente sin pérdidas: Es decir, además de eliminar la información redundante se elimina también la irrelevante.
3. Subjetivamente con pérdidas: Se elimina cierta cantidad de información básica, por lo que el mensaje se reconstruirá con errores perceptibles pero tolerables (por ejemplo: la videoconferencia).
Diferencias entre compresión con y sin pérdida
El objetivo de la codificación siempre es reducir el tamaño de la información, intentando que esta reducción de tamaño no afecte al contenido. No obstante, la reducción de datos puede afectar a la calidad de la información o no hacerlo:
* Compresión sin pérdida: Los datos antes y después de comprimirlos son exactos en la compresión sin pérdida. En el caso de la compresión sin pérdida una mayor compresión solo implica más tiempo de proceso. El bitrate siempre es variable en la compresión sin pérdida. Se utiliza principalmente en la compresión de texto.
* Una algoritmo de compresión con pérdida puede eliminar datos para reducir aun más el tamaño, con lo que se suele reducir la calidad. En la compresión con pérdida el bit rate puede ser constante o variable. Hay que tener en cuenta que una vez realizada la compresión, no se puede obtener la señal original, aunque sí una aproximación cuya semejanza con la original dependerá del tipo de compresión. Se utiliza principalmente en la compresión de imágenes, videos y sonidos.
vía: Wikipedia