Es la codificación de información de manera que ocupe menos espacio
Existen algunas razones por las que queremos hacer archivos más pequeños:
Usar menos almacenamiento en disco, en consecuencia menos costos
Menor tiempo de transferencia
Mayor velocidad para el acceso secuencial
El espectro de técnicas empleadas para compresión de datos es
enorme
Depende del tipo de datos que se esté utilizando (imágenes, voz,
texto, etc).
De manera que sólo se presentarán los aspectos generales de dicha
tecnología
Decimos que una compresión es reversible si se puede seguir el procedimiento:
datosA ---> compresión ---> descompresión
--> datosB
donde datosA = datosB
Para lo anterior existen 3 técnicas principales:
Utilizar una notación diferente
Podemos mencionar que es similar a "Abreviar"
Ejemplo:
Para los estados del país usamos "pue, df, ags,
ver"
Suprimir Secuencias Repetitivas
Consiste en detectar secuencias de ciertos "valores", ya sean caracteres o números.
Ej. Hoooooooooooola ---> H#12ola
Para una imagen
ocurre algo similar, si tenemos una zona de cierto color (cielo azul,
sol):
23 21 56 24 24 24 24 24 24 24 24 24 78 65 99 99 99
99 99 98
---> 23 21 56 ff 24 09 78
65 ff 99 05 98
Asignar Códigos de Longitud Variable
Se analiza la "popularidad" de los valores, y se sustituyen los
más populares por cadenas más cortas
el --->
&3
una --->
&25
alguna ---> &456
Esta popularidad se analiza a través del "Código de Huffman", el cual determina las probabilidades de cada valor y construye un árbol binario que representa el código para cada valor, por ejemplo:
Letra |
a |
b |
c |
d |
e |
f |
g |
Probabilidad |
0.4 |
0.1 |
0.1 |
0.1 |
0.1 |
0.1 |
0.1 |
Código |
1 |
010 |
011 |
0000 |
0001 |
0010 |
0011 |
Existen muchos algoritmos y aplicaciones de compresión que son bastante
populares:
A continuación se muestran algunos datos estadísticos de los algoritmos de compresión
Figura 10.1 Performance de los algoritmos de compresión
a) English text, b) fax image, c) C program source code, d) spreadsheet, e) SPARC object code, f) Overall average
Figura 10.2 Compresión, Efectividad vs Velocidad
Figura 10.3 Compresión, Tiempos y % de comprimir 4Mb
Figura 10.2 Compresión, Efectividad vs Año de descubrimiento
Decimos que una compresión es irreversible si no se puede seguir
el procedimiento:
datosA ---> compresión ---> descompresión
--> datosB
de manera que el procedimiento de compresión irreversible es:
datos ---> compresión
Se emplea principalmente para ciertos tipos de archivos por ejemplo:
Sonido: Modificando la codificación de modo que se alteren algunos
parámetros
Permitiendo cierto
grado de distorción
Imágenes: Al reducir la calidad o el tamaño
|
|
|
Millones de Colores |
256 Colores |
16 Colores |
Video: Al reducir el número de frames por segundo
Texto: ???
La Compresión de datos es un área demasiado amplia y de constante investigación
Siempre que hablemos de grandes volúmenes de información debemos asociar cierta compresión
La técnica y el algoritmo de compresión a utilizar variará de acuerdo al tipo y características de los datos
Los algoritmos de compresión son en su mayoría de dominio público y pueden incorporarse fácilmente dentro de cualquier aplicación de almacenamiento y recuperación de información.