curso telecom iii_compresion_datos 2012 (1)

64
COMPRESION DE DATOS COMPRESION DE DATOS Telecomunicaciones III Telecomunicaciones III Ing. Luis Degregori C. Ing. Luis Degregori C.

Upload: gian-carlos-manrique-valentin

Post on 20-Jan-2016

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Curso Telecom III_Compresion_datos 2012 (1)

COMPRESION DE DATOSCOMPRESION DE DATOS

Telecomunicaciones IIITelecomunicaciones IIIIng. Luis Degregori C.Ing. Luis Degregori C.

Page 2: Curso Telecom III_Compresion_datos 2012 (1)

Problema: LA CANTIDAD DE INFORMACIONLa información en las redes sigue aumentando con el tiempo, causando saturación de los recursos de transmisión y conmutación, generando congestión y esto causa retardos inadmisibles.

Tiempo (Años)Texto y Numeros

Sonido

Video

Color

Imágenes Fijas

Graficos

Page 3: Curso Telecom III_Compresion_datos 2012 (1)

IntroducciónIntroducción La compresión es una representación

mas compacta de la señal digital, eliminando la redundancia existente en una señal.

El objetivo es minimizar el caudal de bits a transmitir o almacenar, manteniendo una señal de calidad.

Las señales de audio y vídeo se comprimen, debido a que contienen gran cantidad de información redundante que en gran parte puede eliminarse antes de su transmisión o almacenamiento.

Page 4: Curso Telecom III_Compresion_datos 2012 (1)

Necesidad de la compresiónNecesidad de la compresión

Aplicaciones multimedia requieren volúmenes importantes de almacenamiento y transmisión.• CD-ROM 640 Mb• Una película de 90 min. 120 Gb• Un canal HDTV requiere 2 Gb/seg

Por esto es importante la compresión de las señales audiovisuales que permitan reducir considerablemente el volumen de información necesario para representarlas.

Page 5: Curso Telecom III_Compresion_datos 2012 (1)

Redundancia de la señalRedundancia de la señal

Redundancia Redundancia espacialespacial::• Dentro de una imagen o de un cuadro de vídeo,

existe una correlación significativa entre muestras vecinas.

Redundancia Redundancia temporaltemporal • En secuencias de vídeo, hay también una correlación

significativa entre muestras vecinas temporalmente. Hay una considerable información en la señal

que es irrelevante desde un punto de vista perceptivo.

Page 6: Curso Telecom III_Compresion_datos 2012 (1)

CONCEPTOS GENERALESCONCEPTOS GENERALES

La información transmitida se puede clasificar de tres formas diferentes de comportamiento. Relevante: Relevante: Necesaria para la reconstrucción precisa.Irrelevante: Irrelevante: Susceptible de descarte.Redundante: Redundante: Datos cíclicos clasificables con precisión dentro de un conjunto de patrones redundantes.

Page 7: Curso Telecom III_Compresion_datos 2012 (1)

CONCEPTOS GENERALESCONCEPTOS GENERALES

Entropía: información nueva o esencial, diferencia entre la cantidad total de datos de un mensaje y su redundancia.

Sin pérdidas realesSin pérdidas reales: T: Transmite toda la entropía del mensaje (la información básica e irrelevante) pero eliminando la redundante.

Subjetivamente sin pérdidasSubjetivamente sin pérdidas: E: Elimina la información redundante y la irrelevante.

Subjetivamente con pérdidasSubjetivamente con pérdidas: E: Elimina cierta cantidad de información básica. Reconstrucción con errores perceptibles pero tolerables (videoconferencia).

Page 8: Curso Telecom III_Compresion_datos 2012 (1)

CONCEPTOS GENERALESCONCEPTOS GENERALES

Así la compresión de datos se puede clasificar a su vez en dos modelos diferentes.

Reversible:Reversible: Sin pérdida de datos, permite la reconstruccion de datos originales . Se emplea en cadenas de texto.

IrreversibleIrreversible: : Descarta parte de la información que resulta inapreciable a los sentidos de la vista y oído humano. Irrecuperable el objeto original. Audio y video.

Page 9: Curso Telecom III_Compresion_datos 2012 (1)

Aspectos básicosAspectos básicos Un sistema de compresión consta de:

• Codificador• Decodificador

Donde estos pueden ser:• AsimétricosAsimétricos

El codificador es mucho mas complejo y lento que el descodificador (p.e. vídeo sobre demanda)

• SimétricosSimétricos Coste computacional similar (p.e. videoconferencia)

• Con pérdidas o irreversibleCon pérdidas o irreversible Adecuada para medios continuos (audio y vídeo) Mayores tasas de compresión

• Sin pérdidas o reversibleSin pérdidas o reversible Adecuada para ficheros de datos, imágenes, etc. Tasas de compresión muy moderadas.

Page 10: Curso Telecom III_Compresion_datos 2012 (1)

Clasificación de la técnicasClasificación de la técnicas Codificación de muestrasCodificación de muestras: :

• Se utiliza únicamente información de los píxeles o muestras individuales para comprimir la señal digital.

Codificación perceptivaCodificación perceptiva: : • Tienen como base el conocimiento de la

percepción psico-visual del ojo humano y de la percepción psico-acústica del oído humano.

Codificación por transformadaCodificación por transformada: : • Transforman la información a otro dominio

donde la data está mas (compactada) decorrelada que en el dominio espacial, y la información se acumula en un pequeño número de muestras.

Page 11: Curso Telecom III_Compresion_datos 2012 (1)

Clasificación de la técnicasClasificación de la técnicas Codificación predictivaCodificación predictiva: :

• explotan la correlación temporal y espacial de las señales de audio, imágenes y vídeo para codificar eficientemente la información.

Codificación sub-bandaCodificación sub-banda: : • Se divide la señal en subbandas de frecuencia

y efectuar una compresión en cada una de las bandas de acuerdo a su importancia.

Cuantificación vectorialCuantificación vectorial: : • Se utiliza en PCs y se basa en codificar un

conjunto de muestras (vector) en base a una lista de vectores pre-establecidos. La asignación se realiza de forma que se minimice el error introducido.

Page 12: Curso Telecom III_Compresion_datos 2012 (1)

ALGORITMOS DE ALGORITMOS DE COMPRESION - DATOSCOMPRESION - DATOS

Mayormente se basan (1ro) (1ro) en un análisis inicial análisis inicial del texto identificando cadenas repetidas y armando un diccionario de equivalencias, asignando códigos breves a estas cadenas. Luego (2do), se convierteconvierte el texto utilizando los códigos equivalentes para las cadenas repetidas. También requiere que el diccionario se encuentre junto con el texto codificado, incrementando el tamaño del archivo de salida.

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

Page 13: Curso Telecom III_Compresion_datos 2012 (1)

La compresión de datos es una aplicacion donde mejor se aprecian los conceptos desarrollados por la Teoría de la Información, en especial el de redundancia.

La información redundante presente en un mensaje, significa que hay un número de símbolos o caracteres mayor del mínimo mayor del mínimo necesarionecesario y si se logra eliminar la redundancia, entonces se habrá reducido el tamaño del archivo.

REDUNDANCIAREDUNDANCIA

Page 14: Curso Telecom III_Compresion_datos 2012 (1)

Mensajes de la misma longitud no llevan siempre la misma cantidad de información, ya que ésta depende de la probabilidad de que un determinado símbolo aparezca en el mensaje.

Si una fuente de información discreta emite una secuencia de símbolos pertenecientes a un alfabeto de N posibles símbolos s1, s2,......sN.

AUTOINFORMACIONAUTOINFORMACION

FUENTE S =(S1,S2,S3,S4,…..Sn)

Page 15: Curso Telecom III_Compresion_datos 2012 (1)

La probabilidad ppii que se emita el símbolo

ssii permite cuantificar la información I que lleva ese símbolo

(También llamada “Autoinformación”):

I = - log2 pi bits

Es la informacion del Simbolo

AUTOINFORMACIONAUTOINFORMACION

Page 16: Curso Telecom III_Compresion_datos 2012 (1)

La Entropía H de una fuente es la información promedio que lleva cada símbolo emitido por esa fuente, y no cada símbolo individual.

Concebido por Claude Shannon (1948) .- Dedujo que: “A mayor Entropía , mayor Información”.

ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION

Page 17: Curso Telecom III_Compresion_datos 2012 (1)

Si la probabilidad de ocurrencia de un símbolo particular no depende de que otro haya ocurrido antes (es decir que la secuencia es estadísticamente independiente), la entropía, viene dada por:

Nótese que la información log2 pi de cada símbolo es ponderada por la probabilidad pi de ocurrencia de dicho símbolo.

ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION

La Entropia, es la información promedio que lleva cada símbolo

Page 18: Curso Telecom III_Compresion_datos 2012 (1)

Expresado en palabras, esto quiere decir que:

En promedio, podemos esperar de obtener H bits de información por símbolo.

Pero no podemos saber por anticipado cuál será el próximo símbolo y en consecuencia su información.

ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION

Page 19: Curso Telecom III_Compresion_datos 2012 (1)

El valor máximo de H se alcanza cuando todos los símbolos tienen la misma probabilidad de ocurrencia y viene dado por:

H max = log2N

N: Numero de simbolos

ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION

Page 20: Curso Telecom III_Compresion_datos 2012 (1)

Cuando la entropía es máxima cada símbolo lleva la máxima cantidad de información posible.

Esto significa un símbolo binario (0,1) puede llevar al máximo log22 = 1 bit de información.

Un símbolo ternario (0,1,2) puede llevar al máximo log23 = 1.6 bits de información

Un símbolo cuaternario (0,1,2,3) puede llevar al máximo log24 = 2 bits de información.

ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION

Page 21: Curso Telecom III_Compresion_datos 2012 (1)

Por ejemplo, si en un mensaje todos los 256 caracteres ASCII fuesen igualmente probables de aparecer (p = 1/256) la entropía H de ese mensaje sería:

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

Pero usualmente eso no ocurre, por lo que la entropía de ese mensaje podría ser, por ejemplo, de 6 bits/carácter.

ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION

Page 22: Curso Telecom III_Compresion_datos 2012 (1)

La compresión de datos básicamente consiste en procesar un conjunto de símbolos de entrada y transformarlos en un conjunto de códigos.

Si la compresión es efectiva, el conjunto de salida tendrá un tamaño menor que el de entrada.

La transformación de un símbolo en código se hace mediante una regla o algoritmo basado en un modelo de los datos de entrada.

MODELADO Y CODIFICACIONMODELADO Y CODIFICACION

Page 23: Curso Telecom III_Compresion_datos 2012 (1)

El modelado permite caracterizar apropiadamente los datos a comprimir, definir con precisión las probabilidades para los símbolos y generar los códigos apropiados basado en esas probabilidades.

En la figura se representa el esquemáticamente el proceso de modelado y codificación.

Flujo deentrada

Modelo CodificadorFlujo desalida

Símbolos Probabilidades Códigos

MODELADO Y CODIFICACIONMODELADO Y CODIFICACION

Page 24: Curso Telecom III_Compresion_datos 2012 (1)

Estos modelos pueden ser divididos en 3 categoría principales, dependiendo de la forma en que se vayan a determinar las probabilidades relativas:

(1) fijos (2) adaptables (2 pasadas) (3) adaptables dinámicamente (1 sola pasada)

MODELOS ESTADISTICOSMODELOS ESTADISTICOS

Page 25: Curso Telecom III_Compresion_datos 2012 (1)

El modelo fijo usa la misma estadística en cada caso.

Esta estadística representa un promedio obtenido a través del análisis de un gran número de fuentes "típicas“.

No comprimen los datos tan bien como los otros, sin embargo son más simples y rápidos.

MODELO ESTADISTICO FIJOMODELO ESTADISTICO FIJO

Page 26: Curso Telecom III_Compresion_datos 2012 (1)

Por ejemplo, en un texto “típico” en español, la frecuencia relativa de las letras puede ser la siguiente:

Letra Frecuencia relativa E 0.1031 T 0.0796 A 0.0642 O 0.0632 I 0.0575

··············· ················ ················· Q 0.0008 Z 0.0005

Cada valor en la tabla representa con buena aproximación la probabilidad de que aparezca la letra correspondiente cuando se está leyendo un texto en español típico.

MODELO ESTADISTICO FIJOMODELO ESTADISTICO FIJO

Page 27: Curso Telecom III_Compresion_datos 2012 (1)

Los modelos adaptables dinámicamente de 1 pasada, en cambio, ajustan la estadística a medida que la compresión avanza.

Tanto el codificador que el decodificador comienzan con la misma estadística inicial usada para codificar (y descodificar) los primeros símbolos.

Luego la estadística se actualiza a medida que los datos van siendo procesados.

MODELO ESTADISTICO MODELO ESTADISTICO ADAPTABLEADAPTABLE

Page 28: Curso Telecom III_Compresion_datos 2012 (1)

Los modelos adaptables de 2 pasadas efectúan una primera pasada sobre los datos para acumular estadística.

La segunda pasada comprime los datos usando códigos basado en esa estadística.

Estos modelos de 2 pasadas comprimen muy bien, pero tienen ciertas desventajas, ya que requieren mayor tiempo de codificación.

MODELO ESTADISTICO MODELO ESTADISTICO ADAPTABLEADAPTABLE

Page 29: Curso Telecom III_Compresion_datos 2012 (1)

Técnica donde se asignan códigos cortos a eventos que ocurren a frecuentemente y códigos largos a eventos menos frecuentes.

Los sistemas que usan este principio son conocidos también como codificadores de entropía.

CODIGOS DE LONGITUD VARIABLECODIGOS DE LONGITUD VARIABLE

Page 30: Curso Telecom III_Compresion_datos 2012 (1)

Un ejemplo de códigos de longitud variable para las letras del alfabeto se muestra en la tabla (donde se indican sólo algunos elementos).

En este ejemplo los símbolos de entrada pertenecen a un alfabeto de 28 símbolos y que los códigos de salida pertenecen a un alfabeto de 2 símbolos (dígitos binarios).

Letra Frecuencia relativa Código E 0.1031 10 T 0.0796 001 A 0.0642 010 O 0.0632 0110 I 0.0575 11001

··············· ················ ················· Q 0.0008 11110110 Z 0.0005 1111111111

CODIGOS DE LONGITUD VARIABLECODIGOS DE LONGITUD VARIABLE

Page 31: Curso Telecom III_Compresion_datos 2012 (1)

Es el primer método bien conocido de códigos de longitud variable.

Claude Shannon y Robert Fano, lo descubrieron casi simultáneamente a principios de los años 50.

El método se basa en determinar la probabilidad de ocurrencia de cada símbolo en un dado mensaje.

Con estas probabilidades se puede construir una tabla de codificación que tiene varias propiedades interesantes:

Código de Shannon - FanoCódigo de Shannon - Fano

Page 32: Curso Telecom III_Compresion_datos 2012 (1)

En la tabla se muestra un ejemplo sencillo, utilizando un alfabeto de 5 caracteres.

Símbolo Frecuencia RelativaCódigo

1 0.4 00

2 0.2 01

··························································

3 0.2 10

4 0.1 110

5 0.1 111

Código de Shannon - FanoCódigo de Shannon - Fano

Page 33: Curso Telecom III_Compresion_datos 2012 (1)

La codificación Shannon-Fano fue desplazada por un método aún mejor: la codificación Huffman – 1952

En la codificación Huffman los símbolos a codificar se colocan primero en una tabla en orden decreciente de frecuencia relativa de ocurrencia. Los dos símbolos menos probables (s4 y s5) se funden provisionalmente en un solo símbolo cuya probabilidad es la suma de las dos (0.2).

Código de HufmanCódigo de Hufman

Page 34: Curso Telecom III_Compresion_datos 2012 (1)

De esta forma hay que codificar un alfabeto que contiene un símbolo menos que el original.

Código de HufmanCódigo de Hufman

Page 35: Curso Telecom III_Compresion_datos 2012 (1)

Repitiendo el proceso de reducción, se llega al punto en que queda un alfabeto con sólo dos símbolos, a los cuales se les empieza por codificar con 0 y 1 respectivamente.

Código de HufmanCódigo de Hufman

Page 36: Curso Telecom III_Compresion_datos 2012 (1)

Efectuando ahora el proceso en sentido inverso, se va añadiendo un 0 y un 1 cada vez que un símbolo codificado se expande en dos, hasta completar la codificación.

Código de HufmanCódigo de Hufman

Page 37: Curso Telecom III_Compresion_datos 2012 (1)

Huffman demostró que su codificación es óptima, en el sentido que la longitud promedio L es mínima para un modelo dado con cierta distribución de probabilidades.

En el ejem. que hemos ilustrado, se tienen

L = 2.2 dígitos/símbolo.

Código de HufmanCódigo de Hufman

SiSi PiPi

S1 0.4

S2 0.2

S3 0.2

S4 0.1

S5 0.1

Page 38: Curso Telecom III_Compresion_datos 2012 (1)

La codificación Huffman utilizando una estructura de datos basada en árbol binario. Se muestra 2 posibles árboles de Huffman para los 5 símbolos del ejemplo visto anteriormente.

Código de HufmanCódigo de Hufman

Page 39: Curso Telecom III_Compresion_datos 2012 (1)

En la figura se muestran 2 posibles árboles de Huffman para los 5 símbolos del ejemplo visto anteriormente.

0 10 110 1110 1111 00 01 10 110 111

Page 40: Curso Telecom III_Compresion_datos 2012 (1)

En la tabla comparativa entre el código Shannon-Fano , Huffman y Morse.

Se utilizan como ejemplo las letras del alfabeto, con la frecuencia relativa típica que aparece en un texto en inglés (incluyendo el espacio).

Comparacion de CódigosComparacion de Códigos

Page 41: Curso Telecom III_Compresion_datos 2012 (1)

Es una codificación 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%.

Códificacion AritmeticaCódificacion Aritmetica

Page 42: Curso Telecom III_Compresion_datos 2012 (1)

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)

Códificacion AritmeticaCódificacion Aritmetica

Page 43: Curso Telecom III_Compresion_datos 2012 (1)

En la decada del 70 sistemas de compresión mayormente utilizaban modelos estadísticos, es decir:

Se lee un símbolo (o varios símbolos) y se codifica de acuerdo a su probabilidad obtenida a partir de un modelo estadístico.

Pero los matemáticos israelíes, Abraham Lempel y Jacob Ziv, en 1977 presentaron método de compresión basado en diccionario, consiguiendo tasas de compresión mas altas.

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 44: Curso Telecom III_Compresion_datos 2012 (1)

Este método fue descrito en el artículo "A universal algorithm for sequential data compression" de la revista IEEE Transactions on Information Theory de mayo 1977.

Al diferencia de la codificación Huffman, la compresión basada en diccionario no codifica símbolos individuales de longitud fija en forma de códigos de longitud variable, sino que codifica cadenas de símbolos, esto es secuencias de longitud variable, por medio de códigos de longitud prefijada. Básicamente los que se hace es leer una cadena de símbolos de entrada y se busca en un diccionario guardado en memoria.

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 45: Curso Telecom III_Compresion_datos 2012 (1)

Un diccionario de verdad contiene palabras, pero en LZ77 se manejan cadenas (Strings) de símbolos (por ejemplo ASCII). por lo que son más bien frases y no palabras.

Los seres humanos estamos acostumbrados a una forma de diccionario adaptable cuando realizamos la sustitución de acrónimos 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 sustitución (UNI).

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 46: Curso Telecom III_Compresion_datos 2012 (1)

Con la compresión adaptable, en vez de tener un diccionario predefinido desde el mismo inicio de la compresión, se empieza sin diccionario o con un diccionario muy pequeño.

A medida que la compresión avanza, el algoritmo añade nuevas cadenas para ser utilizadas posteriormente como códigos.

La compresión basada en LZ77 es del tipo adaptable y se caracteriza además por las siguientes propiedades:

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 47: Curso Telecom III_Compresion_datos 2012 (1)

Es universal, en el sentido de que no se requiere conocer nada en particular acerca de las características de los datos que se quieren comprimir. Como no es necesario determinar previamente la estadística de esos datos, el algoritmo puede operar sobre la marcha, es decir que la compresión se efectúa con una sola pasada sobre los datos a comprimir.

No produce pérdida de información, ya que los datos originales se recuperan completamente en la descompresión, sin ningún tipo de error (siempre y cuando, por supuesto, no haya habido errores durante el almacenamiento en disco o durante la transmisión de los datos comprimidos).

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 48: Curso Telecom III_Compresion_datos 2012 (1)

En LZ77 el diccionario consiste de todas las cadenas o frases existentes en una porción previa del mensaje.

El método se basa en el reconocimiento de cadenas de símbolos ya existentes en esa porción previa del mensaje.

A este proceso se le conoce en inglés como parsing y es análogo al análisis gramatical de una palabra o frase.

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 49: Curso Telecom III_Compresion_datos 2012 (1)

A medida que se va construyendo la cadena de entrada, se comprueba si esa cadena ya existía en la porción previa del mensaje.

Si se encuentra una concordancia (match), se codifica como un puntero y se envía al flujo de salida.

Si no es así, se envía a la salida otro tipo de código.

El proceso se repite hasta codificar todos los datos de entrada.

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 50: Curso Telecom III_Compresion_datos 2012 (1)

Para entender mejor el proceso de codificación, imaginemos que estamos viendo los datos de entrada (alineados de izquierda a derecha) a través de una ventana deslizante en la cual caben N símbolos.

Esta ventana es el diccionario dinámico.

Ventana Buffer

(N símbolos) (B símbolos)

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 51: Curso Telecom III_Compresion_datos 2012 (1)

Ventana Buffer (N símbolos) (B símbolos)

Los datos visibles en la ventana son los más recientes N símbolos, que ya fueron codificados.

Los próximos símbolos a codificar se encuentran fuera de la ventana, en un look-ahead buffer, de tamaño B, que contiene los símbolos que han sido leídos del flujo de entrada pero que todavía no han sido codificados.

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 52: Curso Telecom III_Compresion_datos 2012 (1)

Cuando se consigue una coincidencia en la ventana, el evento se puede representar mediante un código 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 término L indica la longitud de la cadena encontrada.

El último P indica su posición con respecto al extremo derecho de la ventana.

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 53: Curso Telecom III_Compresion_datos 2012 (1)

Cuando no se consigue una coincidencia, se usa el código 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 término C es el primer carácter o símbolo en el buffer (para el cual no se encontró coincidencia).

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 54: Curso Telecom III_Compresion_datos 2012 (1)

La descompresión (o decodificación) es el proceso inverso al anterior:

Si la bandera F es 1, indica que el código corresponde a una cadena conocida, así que se determina con ese mismo código su longitud L y su posición P en la ventana.

A continuación 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 código.

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

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 55: Curso Telecom III_Compresion_datos 2012 (1)

La descompresión requiere mucho menos trabajo y es mucho más rápida que la compresión, ya que no hay que buscar coincidencias.

LZ77 es un sistema asimétrico: La rutina de compresión es complicada y debe realizar bastante trabajo para cada cadena que comprime.

En cambio, la rutina de descompresión es más simple.

Esta característica hace que LZ77 sea más apropiado para datos que son comprimidos una sola vez, pero que son descomprimidos muchas veces (por ejemplo los programas que se distribuyen a través de discos o a través de Internet).

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Page 56: Curso Telecom III_Compresion_datos 2012 (1)

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 redundancia que existe en patrones que se repiten varias veces (archivos de texto, programas fuentes e ejecutables, bases de datos, gráficas de computadoras), pero no es particularmente bueno para comprimir audio e imágenes digitalizadas.

Codigo Lempel Ziv (LZ77)Codigo Lempel Ziv (LZ77)

Tamaño:

153600 bytes (sin compresión)

52577 bytes (JPEG)

37044 bytes (PCX)

27592 bytes (BMP)

17770 bytes (LZ77)

10221 bytes (GIF)

8723 bytes (PNG)

Page 57: Curso Telecom III_Compresion_datos 2012 (1)

En 1978 Ziv y Lempel describieron un segundo método de compresión en el artículo "Compression of individual sequences via variable-rate coding" de la revista IEEE Transactions on Information Theory de septiembre 1978 y por tal razón posteriormente se le denominó compresión LZ78.

Históricamente, LZ78 fue el primero de los algoritmos LZ en hacerse popular, debido a su adaptación por parte de Terry Welch en el algoritmo LZW y su posterior inclusión en el programa COMPRESS utilizado bajo el sistema operativo Unix.

Codigo Compresion LZ78 y LZWCodigo Compresion LZ78 y LZW

Page 58: Curso Telecom III_Compresion_datos 2012 (1)

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 símbolos previos, tal como se hace en LZ77.

En vez de utilizar una ventana de tamaño limitado que se desliza sobre los símbolos de entrada ya procesados, LZ78 construye su diccionario a partir de todos los símbolos de entrada ya procesados.

Codigo Compresion LZ78 y LZWCodigo Compresion LZ78 y LZW

Page 59: Curso Telecom III_Compresion_datos 2012 (1)

El diccionario de cadenas o frases se construye añadiendo un solo símbolo a la vez a las cadenas ya existentes.

Cada código contiene 2 componentes: la posición de la cadena en el diccionario y el carácter 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 LZWCodigo Compresion LZ78 y LZW

Page 60: Curso Telecom III_Compresion_datos 2012 (1)

Veamos un ejem. de cómo 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 vacía.

El primer carácter que se lee (esto es B) corresponde a una cadena que todavía no existe en el diccionario.

Así que la cadena B se añade en el diccionario en la posición 1 y se emite a la salida el código formado por prefijo + extensión, en esto caso 0B.

Codigo Compresion LZ78 y LZWCodigo Compresion LZ78 y LZW

Page 61: Curso Telecom III_Compresion_datos 2012 (1)

BCBCACBCBCABCABCABACABCBC···

El siguiente carácter C tampoco existe en el diccionario y se añade en la posición 2, emitiendo el código 0C.

Cuando se llega al tercer carácter, 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 todavía no existe en el diccionario, por lo que se le añade y se emite el código 1C, ya que 1 corresponde al índice en el diccionario donde está guardado el carácter B.

A medida que avanza el proceso, se añaden al diccionario cadenas cada vez más largas.

Codigo Compresion LZ78 y LZWCodigo Compresion LZ78 y LZW

Page 62: Curso Telecom III_Compresion_datos 2012 (1)

Por ejemplo, si en la posición 9 se guarda 3A, se puede saber que corresponde a BCA ya que el prefijo 3 nos envía a la posición 3 donde está la extensión C y el prefijo 1, el cual nos envía a la posición 1 donde está la extensión A.

Secuencia de entrada: BCBCACBCBCABCABCABACABCBC···

Codigo Compresion LZ78 y LZWCodigo Compresion LZ78 y LZW

Page 63: Curso Telecom III_Compresion_datos 2012 (1)

Por su lado el descompresor puede recrear un diccionario idéntico a partir de los códigos recibidos, por lo que el método es muy conveniente ya que no se necesita enviar el diccionario al descompresor.

Recién en junio de 1984 debido a un artículo de IEEE titulado "A technique for high-performance data compression", escrito por Terry Welch, se popularizo.

Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW

Page 64: Curso Telecom III_Compresion_datos 2012 (1)

FORMATOS DE COMPRESION FORMATOS DE COMPRESION DE DATOSDE DATOS

Entre los más conocidos se encuentran:

SIN PERDIDAS:SIN PERDIDAS: ZIP RAR (Roshal ARchive) CAB (Cabinet- nativo de Microsoft Windows).

CON PERDIDAS:CON PERDIDAS: JPEG (Compresión de Imagen) MPEG (Compresión de Video) WMA (Compresión de Audio)