Tabla de contenido
Definición sobre algoritmos de compresión:
Los algoritmos de compresión son formas que se elaboraron para economizar el uso de espacio de almacenamiento de información. Actualmente, el poder de procesamiento de los procesadores se incrementa más rápido que la capacidad de almacenamiento y es más veloz que los anchos de banda de las redes. Por lo tanto, para compensar esto es más común el procedimiento de reducir el tamaño de los datos al explotar el poder de procesamiento de los procesadores que incrementar la capacidad de almacenamiento y de transmisión de datos de los equipos.
La compresión consiste en reducir el tamaño físico de bloques de información. Un compresor se vale de un algoritmo que se utiliza para optimizar los datos al tener en cuenta consideraciones apropiadas para el tipo de datos que se van a comprimir. Por lo tanto, es necesario un descompresor para reconstruir los datos originales por medio de un algoritmo opuesto al que se utiliza para la compresión.
El método de compresión está ligado tipo de datos que se van a comprimir, no se comprime una imagen del mismo modo que un archivo de audio.
La compresión realizada por los algoritmos de compresión es un caso particular de la codificación, cuya característica principal es que el código resultante tiene menor tamaño que el original.
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.
A la hora de hablar de compresión hay que tener presentes dos conceptos:
Redundancia: Datos que son repetitivos o previsibles
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:
Redundante: información repetitiva o predecible.
Irrelevante: información que no podemos apreciar y cuya eliminación por tanto no afecta al contenido del mensaje.
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.
Tipos básicos de algoritmos de compresión:
La compresión física y lógica
La compresión física actúa directamente sobre los datos; por lo tanto, es cuestión de almacenar los datos repetidos de un patrón de bits a otro.
La compresión lógica, por otro lado, se lleva a cabo por razonamiento lógico al sustituir esta información por información equivalente.
La compresión simétrica y asimétrica
En el caso de la compresión simétrica, se utiliza el mismo método para comprimir y para descomprimir los datos. Por lo tanto, cada operación requiere la misma cantidad de trabajo. En general, se utiliza este tipo de compresión en la transmisión de datos.
La compresión asimétrica requiere más trabajo para una de las dos operaciones. Es frecuente buscar algoritmos para los cuales la compresión es más lenta que la descompresión. Los algoritmos que realizan la compresión de datos con más rapidez que la descompresión pueden ser necesarios cuando se trabaja con archivos de datos a los cuales se accede con muy poca frecuencia (por razones de seguridad, por ejemplo), ya que esto crea archivos compactos.
La compresión con pérdida
La compresión con pérdida, a diferencia de la compresión sin pérdida, elimina información para lograr el mejor radio de compresión posible mientras mantiene un resultado que es lo más cercano posible a los datos originales. Es el caso, por ejemplo, de ciertas compresiones de imágenes o de sonido, como por ejemplo los formatos MP3 o el Ogg Vorvis.
Como este tipo de compresión elimina información que está contenida en los datos que se van a comprimir, por lo general se habla de métodos de compresión irreversible.
Los archivos ejecutables, por ejemplo, no pueden comprimirse mediante este método, porque necesitan especialmente preservar su integridad para poder ejecutarse. De hecho, es inconcebible reconstruir un programa omitiendo y después agregando bits.
Por otro lado, los datos multimedia (audio, vídeo) pueden tolerar un cierto nivel de degradación sin que los órganos sensoriales (el ojo, el tímpano, etc.) distingan alguna degradación importante.
La codificación adaptativa, la semi-adaptativa y la no adaptativa
Algunos algoritmos de compresión están basados en diccionarios para un tipo específico de datos: éstos son codificadores no adaptativos. La repetición de letras en un archivo de texto, por ejemplo, depende del idioma en el que ese texto esté escrito.
Un codificador adaptativo se adapta a los datos que va a comprimir. No parte de un diccionario ya preparado para un tipo de datos determinado.
Un codificador semi-adaptativo crea un diccionario según los datos que va a comprimir: crea el diccionario mientras analiza el archivo y después lo comprime.
Tipos de compresión:
Imágenes: jpg, png, gif, Tiff, Raw
Audio: MP3, MP4, Wav, Ogg
Datos: ZIP, RAR, 7ZIP