Está en la página 1de 5

Captulo 1

Compresi
on de datos
En la sociedad de la informacion en la que vivimos actualmente, en
cualquier actividad cientfico-tecnica o profesional se plantea la necesidad
de transmitir o almacenar un gran n
umero de datos, n
umero que esta creciendo de forma explosiva. Las tecnicas de compresion de datos tratan de
reducir el n
umero de bits necesarios para representar la informacion que, por
lo general, esta en forma digital. Para una mejor comprension de la magnitud
del problema, pueden servir los ejemplos siguientes. Para representar digitalmente un segundo de video, sin compresion, se necesitan (en formato CCIR
601) mas de 20 megabits. Para representar 2 minutos de un CD de m
usica se
requieren mas de 84 millones de bits. Es cierto que se han producido significativos avances tecnologicos que permiten transmitir o almacenar cantidades de
informacion cada vez mas grandes. Sin embargo, parece que las necesidades
crecen con mayor rapidez que los avances tecnologicos en cuestion y, por ello,
las tecnicas de compresion se hacen imprescindibles.
Uno de los primeros ejemplos de compresion de datos lo constituye el
codigo Morse, desarrollado por S. Morse a mediados del siglo XIX. Las letras
se codifican en el alfabeto binario {, }, atendiendo a las diferencias en las
frecuencias de las letras del alfabeto ingles: las letras con mayor frecuencia
de aparicion se codifican con palabras-codigo de menor longitud. El codigo
Braille, que data aproximadamente de la misma epoca, emplea matrices de
1

DE DATOS
CAPITULO 1. COMPRESION

2 3 puntos, atendiendo a las frecuencias de las palabras. Esta idea es la


base de todos los metodos de compresion de datos en los que los smbolos a
codificar aparecen con frecuencias diferentes. En los temas que siguen estudiaremos dos de los metodos mas importantes de esta clase: la codificacion de
Huffman y la aritmetica. Pero existen otros tipos de estructura en los datos
que pueden ser usados para conseguir compresion. As, por ejemplo, en una
se
nal de video hay una considerable cantidad de informacion que es irrelevante desde el punto de vista de su percepcion por el ojo humano y que, por
tanto, podra ser eliminada para conseguir compresion.
En este breve tema introductorio vamos a considerar solo nociones y terminologa basicas sobre compresion de datos.

1.1.

T
ecnicas de compresi
on

Todo algoritmo de compresion consta, de hecho, de dos algoritmos: el


de compresion y el de representacion. El primero, a partir de los datos de
entrada X, genera una representacion Xc que necesita un menor n
umero de
bits, mientras que el segundo genera la reconstruccion Y . Las tecnicas de
compresion se suelen clasificar en dos grandes clases: tecnicas de compresion
sin perdida de informacion (lossless compression) y tecnicas de compresion
con perdida de informacion (lossy compression). En las primeras X es igual a
Y , por el contrario, en las segundas X es diferente de Y , pero esto se compensa
con el hecho de que por lo general proporcionan mayor compresion. El empleo
de unas u otras depende del problema concreto que estemos tratando. Por
ejemplo, si se trata de compresion de texto, deberemos usar tecnicas del
primer tipo, pues una mnima diferencia puede dar lugar a un significado
completamente distinto, como muestra el ejemplo siguiente: estoy cansado
y estoy casado. En otras aplicaciones, la perdida de parte de la informacion
contenida en los datos no es un problema. Este es el caso, por ejemplo, cuando
se trata de ver un video. Por lo general, no es importante que la reconstruccion
sea diferente del original, siempre que las diferencias no sobrepasen ciertos


1.2. MODELADO Y CODIFICACION

lmites.
Una forma de evaluar una tecnica concreta de compresion consiste en
calcular la razon entre el n
umero de bits necesarios antes de la compresion
y el n
umero necesario de bits despues de la compresion. Llamaremos a este
n
umero razon de compresion.
Cuando la compresion supone perdida de informacion, la diferencia entre
el original y la reconstruccion se denomina distorsion y existen diversas formas de medirla. Tambien se usan otros terminos como fidelidad y calidad.
Entonces cuando la diferencia entre el original y la reconstruccion es muy
peque
na diremos que la fidelidad o calidad de la reconstruccion es alta.
No existe una medida de la calidad de la se
nal que sale del decodificador
aceptada universalmente. Una que se usa a menudo es la llamada medida
SNR (signal to noise ratio) que se define como
ESC
,
ESR
donde ESC denota la energa de la se
nal que entra en el codificador y ESR que
es la energa de una hipotetica se
nal que es la diferencia entre la se
nal anterior
y la que sale del decodificador. La unidad es el decibelio (dB). Ocurre, sin
embargo, que no siempre un valor alto de SNR se corresponde con una alta
calidad de la se
nal reconstruida.
SNR = 10 log10

1.2.

Modelado y codificaci
on

En el desarrollo de un metodo de compresion, por lo general, se pueden


distinguir dos fases. La primera se llama modelado y en ella se trata de
descubrir toda la redundancia existente en los datos y de su descripcion con
un modelo apropiado. La segunda fase se llama codificacion. En ella tratamos
de codificar, con un alfabeto binario, el modelo y las diferencias con los datos.
Ejemplos 1.2.1. a) Consideremos la sucesion de n
umeros
6, 7, 7, 7, 8, 9, 10, 11, 13.

DE DATOS
CAPITULO 1. COMPRESION

Supongamos que se desea transmitir o almacenar estos n


umeros. Al ser en
total 9, si los codificamos con cadenas binarias de igual longitud se precisan
cadenas de 4 bits por n
umero. Entonces la sucesion completa precisara de
4 9 = 36 bits. Pero, en lugar de esto, vamos a explotar la estructura de los
datos para conseguir compresion. Notese que el modelo
xn = n + 5 n = 1, 2, 3, ...
puede servir para nuestro objetivo. Las diferencias entre el modelo y los datos
es
dn = xn xn : 0, 0, 1, 2, 2, 2, 2, 2, 1.
La sucesion residual solo contiene 3 n
umeros diferentes {2, 1, 0}, que
pueden ser codificados con cadenas binarias de longitud 2. Por tanto, con
18 bits podemos codificar la sucesion de diferencias, a lo que hay que a
nadir
los bits necesarios para el modelo.
b) Consideremos ahora la sucesion
10, 11, 12, 9, 8, 9, 12, 13, 12.
En este caso se observa que cada termino de la sucesion es cercano al anterior. Entonces un modelo apropiado para representar la sucesion consiste en
reflejar el primero seguido de las diferencias de cada uno al anterior
10, 1, 1, 3, 1, 1, 3, 1, 1.
Vemos que hay solo 4 diferencias distintas, por lo que nuevamente estas
pueden ser codificadas con cadenas binarias de longitud 2.
c) Un tipo diferente de redundancia es la de caracter estadatico. A
menudo, especialmente cuando tratamos de comprimir textos, la fuente genera los smbolos con diferente frecuencia y, como ya hemos dicho, este hecho
puede ser explotado asignando palabras-codigo de menor longitud a los smbolos con mayor frecuencia. En el caso de textos existe, ademas, otra forma
de redundancia: hay grupos de letras que se repiten con gran frecuencia.


1.2. MODELADO Y CODIFICACION

Una forma de aprovechar esta circunstancia consiste en la elaboracion de


una lista o diccionario con las combinaciones mas frecuentes de letras del
alfabeto fuente y las palabras-codigo correspondientes.
El diccionario puede ser estatico o din
amico. Cuando se tiene un buen
conocimiento a priori de la fuente en cuestion, se utiliza un diccionario estatico. Por ejemplo, si se desea comprimir los datos de los estudiantes de una
universidad, hay palabras como estudiante, nombre, creditos, etc que seran
muy frecuentes. Por el contrario, si no se dispone de ese conocimiento previo de la fuente, tendremos que adquirirlo de alg
un modo en el momento de
la codificacion. Esta es la idea clave para la elaboracion de un diccionario
dinamico.

También podría gustarte