SlideShare una empresa de Scribd logo
COMPRESION DE DATOSCOMPRESION DE DATOS
TELECOMUNICACIONES FIEE
Ing. Luis Degregori C.Ing. Luis Degregori C.
Problema: LA CANTIDAD DE INFORMACION
La 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 Números
Sonido
Video
Imágenes a Color
Imágenes Fijas
Gráficos
IntroducciónIntroducción
 La compresión es una representación mas
compacta de la señal digital, eliminando la
redundancia existente.
 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.
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.
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).
CONCEPTOS GENERALESCONCEPTOS GENERALES
Con otro enfoque, la compresión de datos se puede
clasificar también en dos modelos diferentes.
 Reversible:Reversible: Sin pérdida de datos (lossless), permite la
reconstrucción de datos originales . Se emplea en
cadenas de texto.
 IrreversibleIrreversible:: Descarta parte de la información (less) que
resulta inapreciable a los sentidos de la vista y oído
humano. Irrecuperable el objeto original. Audio y video.
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.
ALGORITMOS DEALGORITMOS DE
COMPRESION - DATOSCOMPRESION - DATOS
Mayormente se basan (1ro)(1ro) en un análisis inicialaná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 un
algoritmo denominado RLE.
La compresión de datos es una aplicación 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ínimomayor del mínimo
necesarionecesario y si se logra eliminar la redundancia,
entonces se habrá reducido el tamaño del
archivo.
REDUNDANCIAREDUNDANCIA
Mensajes de la misma longitud no llevan siempre
la misma cantidad de información, ya que ésta
depende de la probabilidad de tenga un
determinado símbolo que 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)
La probabilidad ppii que se emita el símbolo
ssii permite cuantificar la información I que
lleva ese símbolo
(También llamada “Auto información”):
I = - log2 pi bits
Es el aporte de información de un Símbolo
AUTOINFORMACIONAUTOINFORMACION
La Entropía H de un mensaje es la información
promedio que lleva cada símbolo emitido por ese
mensaje, 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
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 Entropía, es la información promedio que lleva cada símbolo
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
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 símbolos
ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION
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
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/carácter.
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
La compresión de datos, 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
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
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
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
Los modelos adaptables dinámicamente de 1 pasada,
en cambio, ajustan la estadística a medida que la
compresión avanza.
Tanto el codificador como el decodificador comienzan con
la misma estadística inicial usada para codificar (y
decodificar) los primeros símbolos.
Luego la estadística se va actualizando a medida que los
datos van siendo procesados.
MODELO ESTADISTICOMODELO ESTADISTICO
ADAPTABLEADAPTABLE
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 ESTADISTICOMODELO ESTADISTICO
ADAPTABLEADAPTABLE
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 o estadísticos.
CODIGOS DE LONGITUD VARIABLECODIGOS DE LONGITUD VARIABLE
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
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
En la tabla se muestra un ejemplo sencillo, utilizando
un alfabeto de 5 caracteres.
Símbolo Frecuencia Relativa Có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
La codificación Shannon-Fano fue desplazada por
otro método estadístico 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
De esta forma hay que codificar un alfabeto que contiene un
símbolo menos que el original.
Código de HufmanCódigo de Hufman
Si pi pi pi pi
S1 0.4 0.4 0.4 0.6
S2 0.2 0.2 0.4 0.4
S3 0.2 0.2 0.2
S4 0.1 0.2
S5 0.1
REDUCCION
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
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
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
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
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
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
Es otra codificación estadística muy
eficiente, se definen unos intervalos de
números entre 0 y 1 para los símbolos.
A mayor cantidad de símbolos, su
correspondiente intervalo será cada vez
menor.
Para mensajes largos su eficiencia es
cercana al 100%.
Codificación AritméticaCodificación Aritmética
Los intervalos en esta técnica 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)
Codificación AritméticaCodificación Aritmética
A fines de la década de los 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)
Método descrito en el artículo "A universal algorithm for
sequential data compression" de la revista IEEE
Transactions on Information Theory (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)
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 ingeniería (UNI), se define tanto la
frase completa en el diccionario y su sustitución (UNI).
Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
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:
Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
• 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.
• OPERA SOBRE LA MARCHA:
• Con este algoritmo no se necesita determinar
previamente la estadística de esos datos, es decir que la
compresión se efectúa con una sola pasada sobre los
datos a comprimir.
Propiedades: Código Lempel ZivPropiedades: Código Lempel Ziv
• NO PRODUCE PÉRDIDA DE INFORMACIÓN:
• Por 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).
Propiedades: Código Lempel ZivPropiedades: Código Lempel Ziv
(LZ77)(LZ77)
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.
Código Lempel ZivCódigo Lempel Ziv
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.
Código Lempel ZivCódigo Lempel Ziv
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)
Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
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.
Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
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.
Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
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).
Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
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.
Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
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)
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.
Código Lempel Ziv (LZ77)Código 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)
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
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.
Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
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.
Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
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.
Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
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.
Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
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 BC y el prefijo 1,
el cual nos envía a la
posición 1 donde está la
extensión A.
Secuencia de entrada: BCBCACBCBCABCABCABACABCBC···
Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
Posición Contenido Código de
salida
0 nulo
1 B 0B
2 C 0C
3 BC 1C
4 A 0A
5 CB 2B
6 CBC 5C
7 AB 4B
8 CA 2A
9 BCA 3A
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 esta técnica.
Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
FORMATOS DE COMPRESIONFORMATOS DE COMPRESION
DE DATOSDE DATOS
Entre algunos de los conocidos tenemos:
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)

Más contenido relacionado

PPT
Lecture 3 codificación fuente
PPTX
CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
PPTX
Tema 4 codificación de canal
PPT
Codificacion BCH
PPTX
Métodos para la detección y corrección de errores
PPTX
Códigos
PPTX
Multiplexación por división de frecuencia (FDM)
PPTX
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación
Lecture 3 codificación fuente
CAPACIDAD DE CANAL DE COMUNICACIÓN DE DATOS
Tema 4 codificación de canal
Codificacion BCH
Métodos para la detección y corrección de errores
Códigos
Multiplexación por división de frecuencia (FDM)
Fundamentos de Telecomunicaciones - Unidad 4: Técnicas de Conmutación

La actualidad más candente (20)

PPT
Capas superiores
PPTX
Medios de transmisión
PPTX
Control de Flujo [Telecomunicaciones]
PPS
Trab. Multiplexacion
PDF
Códigos de línea
PPTX
Métodos de modulación y multiplexación en telefonía móvil
PPT
Reed Solomon
PPTX
Modulación por desplazamiento de frecuencia
PPTX
Capacidad del canal
PPTX
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
PDF
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
PDF
Investigación Técnicas de detección de errores de transmisión
PDF
21 conmutacion circuitos
PPTX
Multiplexación
PPTX
Fundamentos de Telecomunicaciones - Unidad 3 modulacion
PDF
Telefonía IP (SIP, Diameter, RTP/RTPC)
PDF
Detección y Corrección de errores
Capas superiores
Medios de transmisión
Control de Flujo [Telecomunicaciones]
Trab. Multiplexacion
Códigos de línea
Métodos de modulación y multiplexación en telefonía móvil
Reed Solomon
Modulación por desplazamiento de frecuencia
Capacidad del canal
Fundamentos de Telecomunicaciones Unidad 2 medios de transmisión y caracterís...
Ejercicios Modulación Análoga & Digital resultados(fam)-rev3
Investigación Técnicas de detección de errores de transmisión
21 conmutacion circuitos
Multiplexación
Fundamentos de Telecomunicaciones - Unidad 3 modulacion
Telefonía IP (SIP, Diameter, RTP/RTPC)
Detección y Corrección de errores
Publicidad

Similar a Compresion de Datos - Telecomunicaciones III (20)

PDF
Codificacion De Datos
PPT
TRANSMISION DE DATOS
PPTX
Actividad 1 transmision de datos
PPT
Unidad I Teleinformática
PPTX
Transmisión de datos
PPTX
Transmisión de datos
PPTX
Códigos y Modos de Transmisión de Datos
PPT
algoritmos-criptograficos.ppt
PDF
Sistemas de Telecomunicaciones cap 2
PPTX
Examen semestral inf.100
PPT
Algoritmos criptograficos
ODP
Tema 2 - Introducción a la Criptografía
PDF
Comunicación serie y paralelo
DOC
Teoria de la informacion
DOCX
Técnicas de compresión
PPTX
Base de la teoría de la comunicación
PPT
Ingeneria De Software
PPT
Modelo osi
PPT
Codificacion De Datos
TRANSMISION DE DATOS
Actividad 1 transmision de datos
Unidad I Teleinformática
Transmisión de datos
Transmisión de datos
Códigos y Modos de Transmisión de Datos
algoritmos-criptograficos.ppt
Sistemas de Telecomunicaciones cap 2
Examen semestral inf.100
Algoritmos criptograficos
Tema 2 - Introducción a la Criptografía
Comunicación serie y paralelo
Teoria de la informacion
Técnicas de compresión
Base de la teoría de la comunicación
Ingeneria De Software
Modelo osi
Publicidad

Más de Andy Juan Sarango Veliz (20)

PDF
Examen final de CCNA Routing y Switching Academia OW
PDF
Criptología de empleo en el Esquema Nacional de Seguridad
PDF
Alfabetización Informática - 3. Navegador Web
PDF
Alfabetización Informática - 2. Test de Conceptos Básicos
PDF
Alfabetización Informática - 1. Conceptos Básicos
PDF
Gestión y Operación de la Ciberseguridad
PPTX
Tecnologías de virtualización y despliegue de servicios
PDF
3. wordpress.org
PDF
2. wordpress.com
PDF
1. Introducción a Wordpress
PDF
Redes de Computadores: Un enfoque descendente 7.° Edición - Capítulo 9
PDF
Análisis e Implementación de una Red "SDN" usando controladores "Open Source"
PDF
Software Defined Radio - Capítulo 5: Modulación Digital I
PDF
Software Defined Radio - Capítulo 4: Modulación FM
PDF
Software Defined Radio - Capítulo 3: Modulación AM
PDF
Software Defined Radio - Capítulo 2: GNU Radio Companion
PDF
Software Defined Radio - Capítulo 1: Introducción
PDF
MAE-RAV-ROS Introducción a Ruteo Avanzado con MikroTik RouterOS v6.42.5.01
PDF
Los cuatro desafíos de ciberseguridad más críticos de nuestra generación
PDF
ITIL Foundation ITIL 4 Edition
Examen final de CCNA Routing y Switching Academia OW
Criptología de empleo en el Esquema Nacional de Seguridad
Alfabetización Informática - 3. Navegador Web
Alfabetización Informática - 2. Test de Conceptos Básicos
Alfabetización Informática - 1. Conceptos Básicos
Gestión y Operación de la Ciberseguridad
Tecnologías de virtualización y despliegue de servicios
3. wordpress.org
2. wordpress.com
1. Introducción a Wordpress
Redes de Computadores: Un enfoque descendente 7.° Edición - Capítulo 9
Análisis e Implementación de una Red "SDN" usando controladores "Open Source"
Software Defined Radio - Capítulo 5: Modulación Digital I
Software Defined Radio - Capítulo 4: Modulación FM
Software Defined Radio - Capítulo 3: Modulación AM
Software Defined Radio - Capítulo 2: GNU Radio Companion
Software Defined Radio - Capítulo 1: Introducción
MAE-RAV-ROS Introducción a Ruteo Avanzado con MikroTik RouterOS v6.42.5.01
Los cuatro desafíos de ciberseguridad más críticos de nuestra generación
ITIL Foundation ITIL 4 Edition

Último (20)

PPTX
Gestion de seguridad y salud ocupacional.pptx
PPTX
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
PDF
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
PDF
MATRIZ IDENTIFICACIÓN EVALUACION CONTROL PRL.pdf
PPTX
GEOLOGIA, principios , fundamentos y conceptos
PDF
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
PDF
Informe Estudio Final Apagon del 25 de febrero
PPTX
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx
PDF
COMPARACION DE LA NUEVA LEY DE CONTRATAIONES DEL ESTADO 30269.pdf
PDF
marco legar de la gestion tecnologica en venezuela
PPTX
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
PPTX
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
PDF
TESTAMENTO DE DESCRIPTIVA ..............
PPT
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
PDF
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
PDF
CI digitales -1. Introduccion 2024-25.pdf
PPTX
Presentacion_Palcoma_Alta energia solar eolica
PDF
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
PPT
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
PDF
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf
Gestion de seguridad y salud ocupacional.pptx
MARITIMO Y LESGILACION DEL MACO TRANSPORTE
CALIDAD SSOMA AMBIENTE PRL UNIVERSIDADDD
MATRIZ IDENTIFICACIÓN EVALUACION CONTROL PRL.pdf
GEOLOGIA, principios , fundamentos y conceptos
Sustitucion_del_maiz_por_harina_integral_de_zapall.pdf
Informe Estudio Final Apagon del 25 de febrero
Cortinas-en-Presas-de-Gravedad-Vertedoras-y-No-Vertedoras.pptx
COMPARACION DE LA NUEVA LEY DE CONTRATAIONES DEL ESTADO 30269.pdf
marco legar de la gestion tecnologica en venezuela
MODULO 1.SEGURIDAD Y SALUD CONCEPTOS GENERALES.pptx
MODULO 2. METODOLOGIAS PARA ANALISIS DE RIESGOS 2da Parte.pptx
TESTAMENTO DE DESCRIPTIVA ..............
tema DISEÑO ORGANIZACIONAL UNIDAD 1 A.ppt
NORMATIVA Y DESCRIPCION ALCANTARILLADO PLUVIAL.pdf
CI digitales -1. Introduccion 2024-25.pdf
Presentacion_Palcoma_Alta energia solar eolica
fulguracion-medicina-legal-418035-downloable-2634665.pdf lesiones por descarg...
PRIMEROS AUXILIOS EN EL SECTOR EMPRESARIAL
5 Presentación de PowerPointGENERACIÓN DESECHOS UIS 18-02-2023 (1).pdf

Compresion de Datos - Telecomunicaciones III

  • 1. COMPRESION DE DATOSCOMPRESION DE DATOS TELECOMUNICACIONES FIEE Ing. Luis Degregori C.Ing. Luis Degregori C.
  • 2. Problema: LA CANTIDAD DE INFORMACION La 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 Números Sonido Video Imágenes a Color Imágenes Fijas Gráficos
  • 3. IntroducciónIntroducción  La compresión es una representación mas compacta de la señal digital, eliminando la redundancia existente.  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.
  • 4. 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.
  • 5. 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).
  • 6. CONCEPTOS GENERALESCONCEPTOS GENERALES Con otro enfoque, la compresión de datos se puede clasificar también en dos modelos diferentes.  Reversible:Reversible: Sin pérdida de datos (lossless), permite la reconstrucción de datos originales . Se emplea en cadenas de texto.  IrreversibleIrreversible:: Descarta parte de la información (less) que resulta inapreciable a los sentidos de la vista y oído humano. Irrecuperable el objeto original. Audio y video.
  • 7. 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.
  • 8. ALGORITMOS DEALGORITMOS DE COMPRESION - DATOSCOMPRESION - DATOS Mayormente se basan (1ro)(1ro) en un análisis inicialaná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 un algoritmo denominado RLE.
  • 9. La compresión de datos es una aplicación 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ínimomayor del mínimo necesarionecesario y si se logra eliminar la redundancia, entonces se habrá reducido el tamaño del archivo. REDUNDANCIAREDUNDANCIA
  • 10. Mensajes de la misma longitud no llevan siempre la misma cantidad de información, ya que ésta depende de la probabilidad de tenga un determinado símbolo que 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)
  • 11. La probabilidad ppii que se emita el símbolo ssii permite cuantificar la información I que lleva ese símbolo (También llamada “Auto información”): I = - log2 pi bits Es el aporte de información de un Símbolo AUTOINFORMACIONAUTOINFORMACION
  • 12. La Entropía H de un mensaje es la información promedio que lleva cada símbolo emitido por ese mensaje, 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
  • 13. 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 Entropía, es la información promedio que lleva cada símbolo
  • 14. 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
  • 15. 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 símbolos ENTROPIA DE LA INFORMACIONENTROPIA DE LA INFORMACION
  • 16. 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
  • 17. 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/carácter. 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
  • 18. La compresión de datos, 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
  • 19. 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
  • 20. 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
  • 21. 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
  • 22. Los modelos adaptables dinámicamente de 1 pasada, en cambio, ajustan la estadística a medida que la compresión avanza. Tanto el codificador como el decodificador comienzan con la misma estadística inicial usada para codificar (y decodificar) los primeros símbolos. Luego la estadística se va actualizando a medida que los datos van siendo procesados. MODELO ESTADISTICOMODELO ESTADISTICO ADAPTABLEADAPTABLE
  • 23. 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 ESTADISTICOMODELO ESTADISTICO ADAPTABLEADAPTABLE
  • 24. 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 o estadísticos. CODIGOS DE LONGITUD VARIABLECODIGOS DE LONGITUD VARIABLE
  • 25. 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
  • 26. 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
  • 27. En la tabla se muestra un ejemplo sencillo, utilizando un alfabeto de 5 caracteres. Símbolo Frecuencia Relativa Có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
  • 28. La codificación Shannon-Fano fue desplazada por otro método estadístico 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
  • 29. De esta forma hay que codificar un alfabeto que contiene un símbolo menos que el original. Código de HufmanCódigo de Hufman Si pi pi pi pi S1 0.4 0.4 0.4 0.6 S2 0.2 0.2 0.4 0.4 S3 0.2 0.2 0.2 S4 0.1 0.2 S5 0.1 REDUCCION
  • 30. 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
  • 31. 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
  • 32. 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
  • 33. 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
  • 34. 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
  • 35. 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
  • 36. Es otra codificación estadística muy eficiente, se definen unos intervalos de números entre 0 y 1 para los símbolos. A mayor cantidad de símbolos, su correspondiente intervalo será cada vez menor. Para mensajes largos su eficiencia es cercana al 100%. Codificación AritméticaCodificación Aritmética
  • 37. Los intervalos en esta técnica 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) Codificación AritméticaCodificación Aritmética
  • 38. A fines de la década de los 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)
  • 39. Método descrito en el artículo "A universal algorithm for sequential data compression" de la revista IEEE Transactions on Information Theory (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)
  • 40. 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 ingeniería (UNI), se define tanto la frase completa en el diccionario y su sustitución (UNI). Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
  • 41. 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: Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
  • 42. • 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. • OPERA SOBRE LA MARCHA: • Con este algoritmo no se necesita determinar previamente la estadística de esos datos, es decir que la compresión se efectúa con una sola pasada sobre los datos a comprimir. Propiedades: Código Lempel ZivPropiedades: Código Lempel Ziv
  • 43. • NO PRODUCE PÉRDIDA DE INFORMACIÓN: • Por 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). Propiedades: Código Lempel ZivPropiedades: Código Lempel Ziv (LZ77)(LZ77)
  • 44. 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. Código Lempel ZivCódigo Lempel Ziv
  • 45. 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. Código Lempel ZivCódigo Lempel Ziv
  • 46. 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) Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
  • 47. 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. Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
  • 48. 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. Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
  • 49. 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). Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
  • 50. 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. Código Lempel Ziv (LZ77)Código Lempel Ziv (LZ77)
  • 51. 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)
  • 52. 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. Código Lempel Ziv (LZ77)Código 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)
  • 53. 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
  • 54. 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. Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
  • 55. 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. Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
  • 56. 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. Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
  • 57. 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. Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
  • 58. 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 BC y el prefijo 1, el cual nos envía a la posición 1 donde está la extensión A. Secuencia de entrada: BCBCACBCBCABCABCABACABCBC··· Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW Posición Contenido Código de salida 0 nulo 1 B 0B 2 C 0C 3 BC 1C 4 A 0A 5 CB 2B 6 CBC 5C 7 AB 4B 8 CA 2A 9 BCA 3A
  • 59. 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 esta técnica. Código Compresión LZ78 y LZWCódigo Compresión LZ78 y LZW
  • 60. FORMATOS DE COMPRESIONFORMATOS DE COMPRESION DE DATOSDE DATOS Entre algunos de los conocidos tenemos: 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)