Sei sulla pagina 1di 64

COMPRESION DE DATOS

Telecomunicaciones III
Ing. Luis Degregori C.

Problema: LA CANTIDAD DE INFORMACION


La informacin en las redes sigue aumentando con el tiempo, causando saturacin de los recursos de transmisin y conmutacin, generando congestin y esto causa retardos inadmisibles.
Ancho de banda requerido (Mbps)

Video
Sonido Color
Imgenes Fijas Graficos
Texto y Numeros Tiempo (Aos)

Introduccin

La compresin es una representacin mas compacta de la seal digital, eliminando la redundancia existente en una seal. El objetivo es minimizar el caudal de bits a transmitir o almacenar, manteniendo una seal de calidad. Las seales de audio y vdeo se comprimen, debido a que contienen gran cantidad de informacin redundante que en gran parte puede eliminarse antes de su transmisin o almacenamiento.

Necesidad de la compresin

Aplicaciones multimedia requieren volmenes importantes de almacenamiento y transmisin.


CD-ROM 640 Mb Una pelcula de 90 min. 120 Gb Un canal HDTV requiere 2 Gb/seg

Por esto es importante la compresin de las seales audiovisuales que permitan reducir considerablemente el volumen de informacin necesario para representarlas.

Redundancia de la seal

Redundancia espacial:
Dentro de una imagen o de un cuadro de vdeo, existe una correlacin significativa entre muestras vecinas.

Redundancia temporal
En secuencias de vdeo, hay tambin una correlacin significativa entre muestras vecinas temporalmente.

Hay una considerable informacin en la seal que es irrelevante desde un punto de vista perceptivo.

CONCEPTOS GENERALES
La informacin transmitida se puede clasificar de tres formas diferentes de comportamiento. Relevante: Necesaria para la reconstruccin precisa. Irrelevante: Susceptible de descarte. Redundante: Datos cclicos clasificables con precisin dentro de un conjunto de patrones redundantes.

CONCEPTOS GENERALES
Entropa: informacin nueva o esencial, diferencia entre la cantidad total de datos de un mensaje y su redundancia.

Sin prdidas reales: Transmite toda la entropa del mensaje (la informacin bsica e irrelevante) pero eliminando la redundante. Subjetivamente sin prdidas: Elimina la informacin redundante y la irrelevante. Subjetivamente con prdidas: Elimina cierta cantidad de informacin bsica. Reconstruccin con errores perceptibles pero tolerables (videoconferencia).

CONCEPTOS GENERALES
As la compresin de datos se puede clasificar a su vez en dos modelos diferentes.

Reversible: Sin prdida de datos, permite la reconstruccion de datos originales . Se emplea en cadenas de texto. Irreversible: Descarta parte de la informacin que resulta inapreciable a los sentidos de la vista y odo humano. Irrecuperable el objeto original. Audio y video.

Aspectos bsicos

Un sistema de compresin consta de:


Donde estos pueden ser:
Asimtricos

Codificador Decodificador

Simtricos

El codificador es mucho mas complejo y lento que el descodificador (p.e. vdeo sobre demanda) Coste computacional similar (p.e. videoconferencia) Adecuada para medios continuos (audio y vdeo) Mayores tasas de compresin

Con prdidas o irreversible


Sin prdidas o reversible

Adecuada para ficheros de datos, imgenes, etc. Tasas de compresin muy moderadas.

Clasificacin de la tcnicas

Codificacin de muestras:
Se utiliza nicamente informacin de los pxeles o muestras individuales para comprimir la seal digital.

Codificacin perceptiva:
Tienen como base el conocimiento de la percepcin psico-visual del ojo humano y de la percepcin psico-acstica del odo humano.

Codificacin por transformada:


Transforman la informacin a otro dominio donde la data est mas (compactada) decorrelada que en el dominio espacial, y la informacin se acumula en un pequeo nmero de muestras.

Clasificacin de la tcnicas

Codificacin predictiva:

Codificacin sub-banda:

explotan la correlacin temporal y espacial de las seales de audio, imgenes y vdeo para codificar eficientemente la informacin. Se divide la seal en subbandas de frecuencia y efectuar una compresin en cada una de las bandas de acuerdo a su importancia.
Se utiliza en PCs y se basa en codificar un conjunto de muestras (vector) en base a una lista de vectores pre-establecidos. La asignacin se realiza de forma que se minimice el error introducido.

Cuantificacin vectorial:

ALGORITMOS DE COMPRESION - DATOS


Mayormente se basan (1ro) en un anlisis inicial del texto identificando cadenas repetidas y armando un diccionario de equivalencias, asignando cdigos breves a estas cadenas. Luego (2do), se convierte el texto utilizando los cdigos equivalentes para las cadenas repetidas. Tambin requiere que el diccionario se encuentre junto con el texto codificado, incrementando el tamao del archivo de salida.

Por ejemplo, si en un archivo aparece la secuencia DDDDD", ocupando 5 bytes se podra almacenar simplemente 5D" que ocupa solo 2 bytes, en algoritmo RLE.

REDUNDANCIA
La compresin de datos es una aplicacion donde mejor se aprecian los conceptos desarrollados por la Teora de la Informacin, en especial el de redundancia.

La informacin redundante presente en un mensaje, significa que hay un nmero de smbolos o caracteres mayor del mnimo necesario y si se logra eliminar la redundancia, entonces se habr reducido el tamao del archivo.

AUTOINFORMACION
Mensajes de la misma longitud no llevan siempre la misma cantidad de informacin, ya que sta depende de la probabilidad de que un determinado smbolo aparezca en el mensaje.
Si una fuente de informacin discreta emite una secuencia de smbolos pertenecientes a un alfabeto de N posibles smbolos s1, s2,......sN.
FUENTE S =(S1,S2,S3,S4,..Sn)

AUTOINFORMACION
La probabilidad pi que se emita el smbolo si permite cuantificar la informacin I que lleva ese smbolo (Tambin llamada Autoinformacin):

I = - log2 pi bits
Es la informacion del Simbolo

ENTROPIA DE LA INFORMACION
La Entropa H de una fuente es la informacin promedio que lleva cada smbolo emitido por esa fuente, y no cada smbolo individual. Concebido por Claude Shannon (1948) .- Dedujo que: A mayor Entropa , mayor Informacin.

ENTROPIA DE LA INFORMACION
Si la probabilidad de ocurrencia de un smbolo particular no depende de que otro haya ocurrido antes (es decir que la secuencia es estadsticamente independiente), la entropa, viene dada por:

La Entropia, es la informacin promedio que lleva cada smbolo

Ntese que la informacin log2 pi de cada smbolo es ponderada por la probabilidad pi de ocurrencia de dicho smbolo.

ENTROPIA DE LA INFORMACION
Expresado en palabras, esto quiere decir que: En promedio, podemos esperar de obtener H bits de informacin por smbolo. Pero no podemos saber por anticipado cul ser el prximo smbolo y en consecuencia su informacin.

ENTROPIA DE LA INFORMACION
El valor mximo de H se alcanza cuando todos los smbolos tienen la misma probabilidad de ocurrencia y viene dado por:

H max = log2N
N: Numero de simbolos

ENTROPIA DE LA INFORMACION
Cuando la entropa es mxima cada smbolo lleva la mxima cantidad de informacin posible. Esto significa un smbolo binario (0,1) puede llevar al mximo log22 = 1 bit de informacin. Un smbolo ternario (0,1,2) puede llevar al mximo log23 = 1.6 bits de informacin

Un smbolo cuaternario (0,1,2,3) puede llevar al mximo log24 = 2 bits de informacin.

ENTROPIA DE LA INFORMACION
Por ejemplo, si en un mensaje todos los 256 caracteres ASCII fuesen igualmente probables de aparecer (p = 1/256) la entropa H de ese mensaje sera:

H = -log2 1/256 = 8 bits/caracter.


Pero usualmente eso no ocurre, por lo que la entropa de ese mensaje podra ser, por ejemplo, de 6 bits/carcter.

MODELADO Y CODIFICACION
La compresin de datos bsicamente consiste en procesar un conjunto de smbolos de entrada y transformarlos en un conjunto de cdigos. Si la compresin es efectiva, el conjunto de salida tendr un tamao menor que el de entrada.

La transformacin de un smbolo en cdigo se hace mediante una regla o algoritmo basado en un modelo de los datos de entrada.

MODELADO Y CODIFICACION
El modelado permite caracterizar apropiadamente los datos a comprimir, definir con precisin las probabilidades para los smbolos y generar los cdigos apropiados basado en esas probabilidades. En la figura se representa el esquemticamente el proceso de modelado y codificacin.
Smbolos
Flujo de entrada Modelo

Probabilidades
Codificador

Cdigos
Flujo de salida

MODELOS ESTADISTICOS
Estos modelos pueden ser divididos en 3 categora principales, dependiendo de la forma en que se vayan a determinar las probabilidades relativas: (1) fijos (2) adaptables (2 pasadas) (3) adaptables dinmicamente (1 sola pasada)

MODELO ESTADISTICO FIJO


El modelo fijo usa la misma estadstica en cada caso. Esta estadstica representa un promedio obtenido a travs del anlisis de un gran nmero de fuentes "tpicas. No comprimen los datos tan bien como los otros, sin embargo son ms simples y rpidos.

MODELO ESTADISTICO FIJO


Por ejemplo, en un texto tpico en espaol, la frecuencia relativa de las letras puede ser la siguiente: Letra E T A O I Q Z Frecuencia relativa 0.1031 0.0796 0.0642 0.0632 0.0575 0.0008 0.0005

Cada valor en la tabla representa con buena aproximacin la probabilidad de que aparezca la letra correspondiente cuando se est leyendo un texto en espaol tpico.

MODELO ESTADISTICO ADAPTABLE


Los modelos adaptables dinmicamente de 1 pasada, en cambio, ajustan la estadstica a medida que la compresin avanza. Tanto el codificador que el decodificador comienzan con la misma estadstica inicial usada para codificar (y descodificar) los primeros smbolos. Luego la estadstica se actualiza a medida que los datos van siendo procesados.

MODELO ESTADISTICO ADAPTABLE


Los modelos adaptables de 2 pasadas efectan una primera pasada sobre los datos para acumular estadstica. La segunda pasada comprime los datos usando cdigos basado en esa estadstica. Estos modelos de 2 pasadas comprimen muy bien, pero tienen ciertas desventajas, ya que requieren mayor tiempo de codificacin.

CODIGOS DE LONGITUD VARIABLE


Tcnica donde se asignan cdigos cortos a eventos que ocurren a frecuentemente y cdigos largos a eventos menos frecuentes. Los sistemas que usan este principio son conocidos tambin como codificadores de entropa.

CODIGOS DE LONGITUD VARIABLE


Un ejemplo de cdigos de longitud variable para las letras del alfabeto se muestra en la tabla (donde se indican slo algunos elementos). En este ejemplo los smbolos de entrada pertenecen a un alfabeto de 28 smbolos y que los cdigos de salida pertenecen a un alfabeto de 2 smbolos (dgitos binarios). Letra E T A O I Q Z Frecuencia relativa Cdigo 0.1031 10 0.0796 001 0.0642 010 0.0632 0110 0.0575 11001 0.0008 11110110 0.0005 1111111111

Cdigo de Shannon - Fano


Es el primer mtodo bien conocido de cdigos de longitud variable.
Claude Shannon y Robert Fano, lo descubrieron casi simultneamente a principios de los aos 50. El mtodo se basa en determinar la probabilidad de ocurrencia de cada smbolo en un dado mensaje. Con estas probabilidades se puede construir una tabla de codificacin que tiene varias propiedades interesantes:

Cdigo de Shannon - Fano


En la tabla se muestra un ejemplo sencillo, utilizando un alfabeto de 5 caracteres.
Smbolo 1 2 Frecuencia Relativa 0.4 0.2 Cdigo 00 01

3
4 5

0.2
0.1 0.1

10
110 111

Cdigo de Hufman

La codificacin Shannon-Fano fue desplazada por un mtodo an mejor: la codificacin Huffman 1952
En la codificacin Huffman los smbolos a codificar se colocan primero en una tabla en orden decreciente de frecuencia relativa de ocurrencia. Los dos smbolos menos probables (s4 y s5) se funden provisionalmente en un solo smbolo cuya probabilidad es la suma de las dos (0.2).

Cdigo de Hufman
De esta forma hay que codificar un alfabeto que contiene un smbolo menos que el original.

Cdigo de Hufman
Repitiendo el proceso de reduccin, se llega al punto en que queda un alfabeto con slo dos smbolos, a los cuales se les empieza por codificar con 0 y 1 respectivamente.

Cdigo de Hufman
Efectuando ahora el proceso en sentido inverso, se va aadiendo un 0 y un 1 cada vez que un smbolo codificado se expande en dos, hasta completar la codificacin.

Cdigo de Hufman
Huffman demostr que su codificacin es ptima, en el sentido que la longitud promedio L es mnima para un modelo dado con cierta distribucin de probabilidades.

En el ejem. que hemos ilustrado, se tienen


Si Pi 0.4 0.2 0.2 0.1 0.1 S1 S2 S3 S4 S5

L = 2.2 dgitos/smbolo.

Cdigo de Hufman
La codificacin Huffman utilizando una estructura de datos basada en rbol binario. Se muestra 2 posibles rboles de Huffman para los 5 smbolos del ejemplo visto anteriormente.

En la figura se muestran 2 posibles rboles de Huffman para los 5 smbolos del ejemplo visto anteriormente.

10

110

1110

1111

00

01

10

110

111

Comparacion de Cdigos
En la tabla comparativa entre el cdigo Shannon-Fano , Huffman y Morse. Se utilizan como ejemplo las letras del alfabeto, con la frecuencia relativa tpica que aparece en un texto en ingls (incluyendo el espacio).

Cdificacion Aritmetica
Es una codificacin muy eficiente, se definen unos intervalos de numeros entre 0 y 1 para los simbolos. A mayor cantidad de simbolos, su correspondiente intervalo sera cada vez menor. Para mensajes largos su eficiencia es cercana al 100%.

Cdificacion Aritmetica
Los intervalos en esta tecnica se definen como: Sn(inf) = Sn-1 (inf)+(Sn-1(sup) Sn-1(inf))*Sn (inf) Sn(sup) = Sn-1 (inf)+(Sn-1(sup) Sn-1(inf))*Sn (sup)

Codigo Lempel Ziv (LZ77)


En la decada del 70 sistemas de compresin mayormente utilizaban modelos estadsticos, es decir: Se lee un smbolo (o varios smbolos) y se codifica de acuerdo a su probabilidad obtenida a partir de un modelo estadstico. Pero los matemticos israeles, Abraham Lempel y Jacob Ziv, en 1977 presentaron mtodo de compresin basado en diccionario, consiguiendo tasas de compresin mas altas.

Codigo Lempel Ziv (LZ77)


Este mtodo fue descrito en el artculo "A universal algorithm for sequential data compression" de la revista IEEE Transactions on Information Theory de mayo 1977. Al diferencia de la codificacin Huffman, la compresin basada en diccionario no codifica smbolos individuales de longitud fija en forma de cdigos de longitud variable, sino que codifica cadenas de smbolos, esto es secuencias de longitud variable, por medio de cdigos de longitud prefijada. Bsicamente los que se hace es leer una cadena de smbolos de entrada y se busca en un diccionario guardado en memoria.

Codigo Lempel Ziv (LZ77)


Un diccionario de verdad contiene palabras, pero en LZ77 se manejan cadenas (Strings) de smbolos (por ejemplo ASCII). por lo que son ms bien frases y no palabras. Los seres humanos estamos acostumbrados a una forma de diccionario adaptable cuando realizamos la sustitucin de acrnimos en libros y revistas. As, la primera vez que mencionemos en un texto a la Universidad Nacional de ingenieria (UNI), se define tanto la frase completa en el diccionario y su sustitucin (UNI).

Codigo Lempel Ziv (LZ77)


Con la compresin adaptable, en vez de tener un diccionario predefinido desde el mismo inicio de la compresin, se empieza sin diccionario o con un diccionario muy pequeo.

A medida que la compresin avanza, el algoritmo aade nuevas cadenas para ser utilizadas posteriormente como cdigos. La compresin basada en LZ77 es del tipo adaptable y se caracteriza adems por las siguientes propiedades:

Codigo Lempel Ziv (LZ77)


Es universal, en el sentido de que no se requiere conocer nada en particular acerca de las caractersticas de los datos que se quieren comprimir. Como no es necesario determinar previamente la estadstica de esos datos, el algoritmo puede operar sobre la marcha, es decir que la compresin se efecta con una sola pasada sobre los datos a comprimir. No produce prdida de informacin, ya que los datos originales se recuperan completamente en la descompresin, sin ningn tipo de error (siempre y cuando, por supuesto, no haya habido errores durante el almacenamiento en disco o durante la transmisin de los datos comprimidos).

Codigo Lempel Ziv (LZ77)


En LZ77 el diccionario consiste de todas las cadenas o frases existentes en una porcin previa del mensaje. El mtodo se basa en el reconocimiento de cadenas de smbolos ya existentes en esa porcin previa del mensaje. A este proceso se le conoce en ingls como parsing y es anlogo al anlisis gramatical de una palabra o frase.

Codigo Lempel Ziv (LZ77)


A medida que se va construyendo la cadena de entrada, se comprueba si esa cadena ya exista en la porcin previa del mensaje.
Si se encuentra una concordancia (match), se codifica como un puntero y se enva al flujo de salida. Si no es as, se enva a la salida otro tipo de cdigo. El proceso se repite hasta codificar todos los datos de entrada.

Codigo Lempel Ziv (LZ77)


Para entender mejor el proceso de codificacin, imaginemos que estamos viendo los datos de entrada (alineados de izquierda a derecha) a travs de una ventana deslizante en la cual caben N smbolos.

Esta ventana es el diccionario dinmico.


Ventana Buffer

(N smbolos)

(B smbolos)

Codigo Lempel Ziv (LZ77)

Ventana (N smbolos)

Buffer (B smbolos)

Los datos visibles en la ventana son los ms recientes N smbolos, que ya fueron codificados.
Los prximos smbolos a codificar se encuentran fuera de la ventana, en un look-ahead buffer, de tamao B, que contiene los smbolos que han sido ledos del flujo de entrada pero que todava no han sido codificados.

Codigo Lempel Ziv (LZ77)


Cuando se consigue una coincidencia en la ventana, el evento se puede representar mediante un cdigo de 3 partes F,L,P Donde:
F es una bandera (flag) de 1 bit que se pone en 1 para indicar que se encontr una coincidencia. El siguiente trmino L indica la longitud de la cadena encontrada.

El ltimo P indica su posicin con respecto al extremo derecho de la ventana.

Codigo Lempel Ziv (LZ77)


Cuando no se consigue una coincidencia, se usa el cdigo de 2 partes F,C Donde: F es la bandera de 1 bit que se pone en 0 para indicar que no se encontr una coincidencia. El siguiente trmino C es el primer carcter o smbolo en el buffer (para el cual no se encontr coincidencia).

Codigo Lempel Ziv (LZ77)


La descompresin (o decodificacin) es el proceso inverso al anterior: Si la bandera F es 1, indica que el cdigo corresponde a una cadena conocida, as que se determina con ese mismo cdigo su longitud L y su posicin P en la ventana. A continuacin se copian a la salida L caracteres, contados a partir de P. Luego se desliza la ventana de P posiciones, para as pasar a decodificar el siguiente cdigo.

Si la bandera F es 0, se extrae a la salida el carcter ASCII que sigue a la bandera.

Codigo Lempel Ziv (LZ77)


La descompresin requiere mucho menos trabajo y es mucho ms rpida que la compresin, ya que no hay que buscar coincidencias. LZ77 es un sistema asimtrico: La rutina de compresin es complicada y debe realizar bastante trabajo para cada cadena que comprime. En cambio, la rutina de descompresin es ms simple. Esta caracterstica hace que LZ77 sea ms apropiado para datos que son comprimidos una sola vez, pero que son descomprimidos muchas veces (por ejemplo los programas que se distribuyen a travs de discos o a travs de Internet).

Codigo Lempel Ziv (LZ77)


LZ77 se usa en programas como PKZIP, WinZIP y LHARC, que se han vuelto muy populares para comprimir archivos en general. LZ77 es muy efectivo para explotar la Tamao: redundancia que existe en patrones que (sin se 153600 bytes compresin) repiten varias veces (archivos de texto, 52577 bytes (JPEG) programas fuentes e ejecutables, bases de datos, 37044 bytes (PCX) grficas de computadoras), pero no es 27592 bytes (BMP) particularmente bueno para comprimir audio e 17770 bytes (LZ77) imgenes digitalizadas.
10221 bytes (GIF) 8723 bytes (PNG)

Codigo Compresion LZ78 y LZW


En 1978 Ziv y Lempel describieron un segundo mtodo de compresin en el artculo "Compression of individual sequences via variable-rate coding" de la revista IEEE Transactions on Information Theory de septiembre 1978 y por tal razn posteriormente se le denomin compresin LZ78. Histricamente, LZ78 fue el primero de los algoritmos LZ en hacerse popular, debido a su adaptacin por parte de Terry Welch en el algoritmo LZW y su posterior inclusin en el programa COMPRESS utilizado bajo el sistema operativo Unix.

Codigo Compresion LZ78 y LZW


Si bien LZ77 y LZ78 parecen muy semejantes, en realidad se diferencian apreciablemente y cada uno tiene ventajas y desventajas. LZ78 utiliza un enfoque distinto a LZ77 para construir y mantener el diccionario, abandonando el concepto de una ventana abierta sobre los smbolos previos, tal como se hace en LZ77. En vez de utilizar una ventana de tamao limitado que se desliza sobre los smbolos de entrada ya procesados, LZ78 construye su diccionario a partir de todos los smbolos de entrada ya procesados.

Codigo Compresion LZ78 y LZW


El diccionario de cadenas o frases se construye aadiendo un solo smbolo a la vez a las cadenas ya existentes. Cada cdigo contiene 2 componentes: la posicin de la cadena en el diccionario y el carcter que le sigue. Pero a diferencia de LZ77, la longitud no se codifica, ya que el descompresor la puede determinar por su cuenta.

Codigo Compresion LZ78 y LZW


Veamos un ejem. de cmo funciona el compresor, usando como entrada la siguiente secuencia de caracteres:
BCBCACBCBCABCABCABACABCBC El compresor empieza sin tener frases o cadenas en el diccionario y el ndice 0 se usa para definir la cadena vaca. El primer carcter que se lee (esto es B) corresponde a una cadena que todava no existe en el diccionario.

As que la cadena B se aade en el diccionario en la posicin 1 y se emite a la salida el cdigo formado por prefijo + extensin, en esto caso 0B.

Codigo Compresion LZ78 y LZW


BCBCACBCBCABCABCABACABCBC El siguiente carcter C tampoco existe en el diccionario y se aade en la posicin 2, emitiendo el cdigo 0C. Cuando se llega al tercer carcter, es decir B, ste ya existe en el diccionario y en consecuencia se avanza al cuarto (es decir C), y se forma la cadena BC, que todava no existe en el diccionario, por lo que se le aade y se emite el cdigo 1C, ya que 1 corresponde al ndice en el diccionario donde est guardado el carcter B. A medida que avanza el proceso, se aaden al diccionario cadenas cada vez ms largas.

Codigo Compresion LZ78 y LZW


Secuencia de entrada: BCBCACBCBCABCABCABACABCBC

Por ejemplo, si en la posicin 9 se guarda 3A, se puede saber que corresponde a BCA ya que el prefijo 3 nos enva a la posicin 3 donde est la extensin C y el prefijo 1, el cual nos enva a la posicin 1 donde est la extensin A.

Cdigo Compresin LZ78 y LZW


Por su lado el descompresor puede recrear un diccionario idntico a partir de los cdigos recibidos, por lo que el mtodo es muy conveniente ya que no se necesita enviar el diccionario al descompresor. Recin en junio de 1984 debido a un artculo de IEEE titulado "A technique for high-performance data compression", escrito por Terry Welch, se popularizo.

FORMATOS DE COMPRESION DE DATOS


Entre los ms conocidos se encuentran: SIN PERDIDAS: ZIP RAR (Roshal ARchive) CAB (Cabinet- nativo de Microsoft Windows). CON PERDIDAS: JPEG (Compresin de Imagen) MPEG (Compresin de Video) WMA (Compresin de Audio)

Potrebbero piacerti anche