Sie sind auf Seite 1von 18

UNIVERSIDAD PERUANA DE CIENCIAS APLICADAS

COMPRESIÓN DE DATOS

Curso : Ingeniería de Comunicaciones 2

Profesor : Rodríguez Gutiérrez, Alfredo Efraín

Integrantes : - Mejia Huanca, Himmler Joel (u20141a752)

- Inga Cuyutupac, Pharis (u201424696)

- Izquierdo Huamani, Cesar Augusto (u201013052)

- Palga Noriega, Arturo (u201519611)

- Rios Valenzuela, Jhonatan (u201220931)

- Mendoza Pantoja, Miguel (u201403576)

UPC 2016 - Compresión de datos 1


ÍNDICE
CAPITULO 1 INTRODUCCIÓN
1.1 Objetivo de la compresión …………………………………………………………………………………. 04
1.2 Tipos de compresión .………………………………………………………………………………………... 04
1.3 Algoritmos de codificación ………………………………………………………………………….……… 05

CAPITULO 2 ALGORITMOS DE COMPRESIÓN SIN PERDIDA (LOSSLESS)


2.1 Algoritmos de compresión estadístico

2.1.1 Algoritmo de Huffman

2.1.2 Algoritmo Aritmético

2.2 Algoritmos de compresión por diccionario

2.2.1 Algoritmo Lz77

2.2.2 Algoritmo Lz78/W

2.3 Algoritmos de compresión predictores

2.3.1 Algoritmo aritmético O (n)

2.3.2 Algoritmo aritmético orden 1

2.3.3 Algoritmo PPMC

2.4 Algoritmos de compresión híbridos

2.4.1 Half Coding

2.4.2 LZHuff

2.4.3 LZP

UPC 2016 - Compresión de datos 2


CAPITULO 3 TECNICAS DE OPTIMIZACION DE COMPRESIÓN
3.1 Block Sorting

3.2 Move to Front

3.3 Modelo de Shanon

3.4 Modelo Estructurado

CAPITULO 4 ALGORITMOS DE COMPRESION CON PERDIDA (LOSSY)

4.1 JPEG

4.2 MPEG

CONCLUSIONES

BIBIOGRAFIA

UPC 2016 - Compresión de datos 3


CAPITULO 1 INTRODUCCIÓN
Este documento tiene la intención de dar a conocer cuáles son los tipos de compresión de
datos que hay en la actualidad, como funcionan, que tipo tecnologías utilizan y como son
aplicados en la trasmisión de datos para que tengan un peso menor que al de la información
original.

1.1 Objetivo de la compresión

El avance de la tecnología ha contribuido en la disminución de costos en las


memorias principales y secundarias de los ordenadores y servidores; pero también
ha aumentado la demanda de los usuarios para acceder a distintos servicios que
estos brindan.

Por otro lado, la velocidad en la trasferencia de datos no ha ido a la par de esta


evolución a nivel hardware. Es aquí donde toma importancia la compresión de
datos, ya que el proceso de la trasmisión de datos comprimidos es más rápida que
la de datos no comprimidos.

1.2 Tipos de compresión

Existen muchos métodos de compresión, ya sea por el tipo de algoritmo que utiliza,
la metodología para revertir la compresión (reversibilidad), la expectativa de la
aplicación que la utiliza (video, voz tiempo real, etc) y por la cantidad de perdida de
información.

Para una clasificación general se ha tomado como punto de clasificación la


metodología para revertir la compresión (reversibilidad), de lo cual se han obtenido
dos tipos de compresión de datos principales:

 Compresión de datos lossless o sin pérdida, utilizada en casos en


donde es improductivo perder información, por lo que al aplicar la
reversibilidad se recupera toda la información.

 Compresión de datos lossy o con pérdidas, que es cuando se pierde


cierta parte de la información, pero que al momento de aplicar la
reversibilidad aún es posible interpretar la información original.

UPC 2016 - Compresión de datos 4


1.3 Algoritmos de codificación

Asi como existen distintos tipos de compresión de datos, existen también distintos
algoritmos de compresión. A continuación listaremos algunos de ellos:

 LZ77

 LZ78

 LZW

 Huffman

 Aritméticos

 Fractales

 MPEG

 JPEG

UPC 2016 - Compresión de datos 5


2.3 Algoritmos de compresión predictores

Los algoritmos de compresión predictores llevan un registro de lo que ya ha sido procesado y


aplica un algoritmo para predecir los datos por procesar (puede acertar o no).

Este tipo de algoritmo puede utilizar la técnica de múltiples contextos; estos a su vez, utilizan la
probabilidad condicional al modificar la fórmula de Shanon, de esta manera, incrementan las
probabilidades de aparición generando códigos más cortos (comprimiendo más). Adicionalmente,
parten de una concepción estadística, que reconoce como altamente probable la aplicación de la
misma acción ante una misma situación (acierto predictor) basandose en algoritmos estadísticos
clásicos, pero modifican la forma de calcular la probabilidad de la apariciones considerando
probabilidades condicionales (contextos).

Contextos:

Se parte de la base de que un texto tiene secuencias que se repiten, por ejemplo, en un programa
escrito en C, luego del caracter “;” es altamente probable un fin de linea. Para cada carater, el o los
caracteres precedentes son su contexto. El orden de un contexto es la cantidad de caracteres
precedentes que se toman en cuenta para predecir. Orden 0 (“O(0)”) significa ningún caracter.
Orden 1 (“O(1)”), un caracter.

Este método realice un consumo elevado de memoria por la gran cantidad de datos que debe
registrar.

2.3.1 Algoritmo aritmético O (n)

UPC 2016 - Compresión de datos 6


Este tipo de algoritmo es una generalización del Algorítmo aritmético de compresión. Separa las
estructuras de emisión y de distribución de probabilidades.

Para cada caracter (o cadena) se almacena una tabla de probabilidades asociada para considerar a
todos los caracteres que le pueden seguir.

Utilizar distintas tablas de probabilidades según el contexto ayuda a predecir mejor, esto equivale
a mejores modelos probabilísticos que a su vez equivalen a una menor emisión en bits. Por otro
lado, O(0) necesita una tabla de 256 posiciones (una para cada caracter), O(1) requiere de una
tabla de 256x256 y así sucesivamente, esto se traduce en un crecimiento exponencial de las tablas,
por lo que si la fuente no tiene patrones repetidos, utilizar contextos no mejora la compresión.

Crecimiento exponencial de la tabla

2.3.2 Algoritmo aritmético orden 1

UPC 2016 - Compresión de datos 7


Un algoritmo de compresión que utiliza el orden 1 se basa en el uso de reglas sintácticas estríctas.
Entre los algoritmo de orden 1 se tienen al algoritmo Horspool y Cormack 92, estos deben
mantener una estructura de datos apropiada para las frecuencias de todos los pares de palabras
alfanuméricas. Un ejemplo es una palabra de puntuación que contiene un punto, que suele indicar
el final de una frase, lo que indica que la palabra alfanumérica siguiente probablemente comience
con una letra mayúscula, y que además sea un artículo.

prevW:=escape;

repeat

introducir la siguiente palabra de puntuación WP y emitir su texto;

introducir la siguiente palabra alfanumérica WA;

if WA es nueva then

emitir un escape;

emitir WA aritméticamente codificada en caracteres;

añadir AW a la lista de palabras;

establecer la frecuencia del par (prevW,WA) en 1;

incrementar la frecuencia del par (prevW,escape) en 1;

else

emitir WA aritméticamente codificada;

incrementar la frecuencia del par (prevW,WA);

endif;

prevW:=WA;

until fin-de-archivo.

Predictor de orden 1 basado en palabras

2.3.3 Algoritmo PPMC

El algoritmo PPM presenta una buena razón de compresión, pero su velocidad puede llegar a ser
inadecuada para algunas aplicaciones como la transmisión de datos; esta mantiene un diccionario

UPC 2016 - Compresión de datos 8


con un modelo estadístico de datos, asigna probabilidades a los símbolos y envía estas
probabilidades a un codificador aritmético.

Un modelo PPMC de orden O lee un símbolo s y considera los O símbolos como el contexto actual.
Después busca el contexto seguido del símbolo s. Si el símbolo no se encuentra, el modelo
“escapa” al siguiente contexto de orden mas bajo O-1 mediante la transmición de un código de
escape; este proceso continua hasta que el símbolo se encuentra o el modelo alcanza el orden 0.Si
el símbolo no se encuentra en el orden 0, entonces un escape final es transmitido y el símbolo s se
predice por el orden -1, donde todos los símbolos tienen la misma probabilidad (1/256, donde el
alfabeto tiene 256 símbolos). Por último, el diccionario se actualiza añadiendo el símbolo s al
contexto correspondiente. Las siguientes fórmulas se usan para calcular las probabilidades de los
símbolos y del escape:

Para ejemplificarlo tomamos una cadena de caracteres. Por claridad, representamos el espacio en
blanco con un guión bajo.

En la primera columna se enumera cada evento, es decir, la lectura de un símbolo. En la segunda


columna se muestra cada uno de los símbolos leídos de la cadena. Si el símbolo se encuentra en el
orden 0, se calcula su probabilidad según las fórmulas en (1), e indicado en la tabla con un check.
Si el símbolo no se encuentra en el orden 0, se escapa de este orden enviando la probabilidad del
escape y la probabilidad del símbolo en el orden -1. El modelo transmite al codificador las

UPC 2016 - Compresión de datos 9


probabilidades de ocurrencia, en forma de frecuencias acumuladas, según se obtengan. En este
caso las probabilidades son: 1, 1/256, 1/2, 1/256, 1/2, 1/256, 1/2, 1/256, 1/8, 1/9, 2/5, 1/256,
5/12, 1/256, 3/7, 1/256, 7/16, 1/256.

Después de procesar la cadena de prueba, las probabilidades de los símbolos de acuerdo al estado
actual del diccionario son las mostradas en la siguiente Tabla. Esta tabla se obtuvo por separado,
por lo que comprobamos el correcto funcionamiento del algoritmo.

2.4 Algoritmos de compresión híbridos

Un algoritmo hibrido es uno que combina dos o más algoritmos que solucionan el mismo
problema, ya sea escogiendo uno (a merced de los datos), o cambiando entre ellos sobre el curso
del algoritmo. Esto es hecho generalmente para combinar caraterísticas deseadas de cada uno, a
fin de que el algoritmo global sea mejor que los componentes individuales.

2.4.1 Half Coding

Combina run-lenght con estadística (Huffman), sólo es eficiente cuando un carácter es muy
repetido, más que el 50% de ocurrencias, en su contra parte, Huffman no es efectivo porque no
puede codificar con menos de 1 bit, puede ser estático o dinámico. Este método codifica la
longitud del caracter más probable; por cada ocurrencia se escribe su longitud en binario, se le

UPC 2016 - Compresión de datos 10


suma 1, se le quita el bit más significativo (un 1) y se reemplaza 0=α y 1=β; se trata a alfa y beta
como dos caracteres mas y se los codifica con Huffman.

Ejemplo estático: AAAABAACAAAAAAACDAAA

Con Half Coding se convierte a: α β B β C α α α C D α α

Y se comprime a 24bits: 0-111-100-111-110-0-0-0-110-101-0-0

Referencias:

http://pdi-fich.wdfiles.com/local--files/teorias/PDI_Unidad_VIb.pdf

The data compression book – Second edition – Mark Nelson – Jean Loup Gailly

Introduction to Data Compression Third edition – Khalid Sayood – University of Nebraska

https://ccc.inaoep.mx/~cferegrino/Publicaciones/articulos/Impl_FPGA_PPMC_TCR04.pdf

TECNICAS DE OPTIMIZACION DE COMPRESIÓN

3.1 Block Sorting:

UPC 2016 - Compresión de datos 11


Tambien llamada transformación de Burrows-Wheeler (BWT), inventado en 1994 por
Michael Burrows y David Wheeler.

Cuando se transforma una cadena de caracteres mediante la BWT, ninguno de sus


caracteres cambia de valor. La transformación permuta el orden de los caracteres. Si la
cadena original contiene muchas subcadenas que aparecen a menudo, entonces la
cadena transformada contendrá múltiples posiciones en las que un mismo carácter esté
repetido varias veces en una fila. Esto es útil para la compresión, ya que tiende a ser
fácil comprimir una cadena que contiene secuencias de caracteres repetidos.

Ejemplo.

3.3 Modelos de Shannon

Por 1960 Cloude E. Shannon y Robert M Fano desarrollaron un procedimiento para generar un
árbol de código binario. El procedimiento evalúa la probabilidad del símbolo y asigna palabras de
código con una longitud de código correspondiente

UPC 2016 - Compresión de datos 12


Comparado con otros métodos este código es fácil de implementar. En la práctica este código no
tiene mayor importancia. Esto es porque en comparación con la técnica de Huffman es menos
eficiente.

La utilización de este código tiene sentido si se desea aplicar un algoritmo simple con un alto
rendimiento y los requisitos mínimos para la programación. Un ejemplo de este método esta
especificado en el formato zip.

Ejemplo1

Para crear un árbol de código de acuerdo con Shannon y Fano una tabla ordenada se requiere
proveer la frecuencia de cualquier símbolo. Cada parte de la tabla se divide en dos segmentos. El
algoritmo tiene que asegurarse de que, o bien la parte superior y la parte inferior del segmento
tienen casi la misma suma de frecuencias. Este procedimiento se repite hasta que queden
símbolos iguales.

Symbol Frequency Code Code Total


Length Length
------------------------------------------
A 24 2 00 48
B 12 2 01 24
C 10 2 10 20
D 8 3 110 24
E 8 3 111 24
------------------------------------------
total: 62 symbols SF coded: 140 Bit
linear (3 Bit/Symbol): 186 Bit

Los datos originales se pueden codificar con una longitud media de 2,26 bits, una codificación
lineal de 5 símbolos requeriría 3 bits por símbolo, pero antes de generar un árbol de código de
Shannon-Fano la tabla debe ser conocida o debe derivarse de los datos anteriores.

UPC 2016 - Compresión de datos 13


Ejemplo 2

El ejemplo muestra la construcción de un código Shannon para un pequeño alfabeto. Los cinco
símbolos que pueden ser codificados tienen la siguiente frecuencia.

Todos los símbolos son ordenados por frecuencia, de izquierda a derecha. Dividiendo entre B y C
obtenemos un total de 17 en el grupo de la derecha y 22 en el de la izquierda. Esto minimiza la
diferencia total entre los dos grupos. Con esta división, A y B tendrán ambas un código que
empezará con el bit 0, y C, D y E con el bit 1. Seguidamente, la mitad izquierda del árbol se
subdivide en A y B, lo que pone a A en una hoja con el código 00 y a B en otra con el código 01.
Tras cuatro divisiones, terminamos el árbol de códigos. Al final, los símbolos del árbol con
frecuencias más altas tienen todos códigos de 2 bits, y los otros dos símbolos con menor
frecuencia tienen códigos de 3 bits, como se ve en la tabla inferior.

UPC 2016 - Compresión de datos 14


3.4 Modelo Estructurado

Es un compresor que utiliza como base el aritmético, de la misma forma que el Modelo de
Shannon. Se comporta bien si la fuente es de salida BS y MTF.

Utiliza 9 modelos o contextos numerados donde los más altos machean con más cantidad de
símbolos.

Ejemplo 002003508

UPC 2016 - Compresión de datos 15


COMPRENSIÓN CON PÉRDIDAS:

Todos los sistemas requieren de dos algoritmos, el primero es para codificar y el segundo es el
decodificador, es decir, comprimir los datos en el origen en consecuencia descomprimirlos en el
destino.

En el pasado las técnicas y algoritmos de comprensión hicieron posible la comprensión de datos


multimedia. Estas técnicas tienen desigualdades, un dato multimedia -una película- será codificado
una vez y alojada en un repositorio luego será decodificada miles de veces (vista por varios usuarios
finales). Muchos sistemas realizan la comprensión rápida otros lo realizan en un tiempo mayor
siendo esto para algunos inaceptable. En multimedia los datos obtenidos luego de decodificar es
ligeramente diferente al original y a esto llamamos una comprensión de datos con perdida.

EL estándar JPEG:

Desarrollado por expertos fotográficos, este estándar tiene cuatro modos y muchas opciones estás,
se deben a que las imágenes se puede aplicar efectos como: invertir, girar, transponer. Definido en
el estándar 10918. Utilizado para codificar imágenes de video RGB de 24 bit.

Paso 1: Preparar la imagen en bloques (imagen de 24 bit por pixel)

Paso 2: Aplicar una transformación discreta de cosenos a cada uno de los 7200 bloques
separadamente. En este paso matemáticamente se da sin pérdidas mientras que llevado a la
práctica utilizando números en coma flotante se introduce error de redondeo, lo que significa
pérdida de información.

UPC 2016 - Compresión de datos 16


Paso 3: Aquí se realiza el proceso de cuantización, en el cual se quitan los coeficientes menos
importantes de la transformación discreta de cosenos.

Paso 4: reduce el valor de cada bloque reemplazándolo por la cantidad en que difiere del elemento
correspondiente ene l bloque previo.

Paso 5: recorrer la tabal en zigzag de izquierda a derecha y de arriba hacia abajo para el ejemplo
anterior hay 38 ceros al final de la matriz.

Paso 6: Finalmente se codifica por Huffman los números para almacenamiento o transmisión.

Es estándar “JPEG “ofrece una comprensión de 20:1 utilizado frecuentemente por los usuarios,
además decodificar requiere solo ejecutar el algoritmo al revés, JPEG es muy simétrico: decodificar
lleva el mismo tiempo como codificar.

El estándar MPEG:

Son los algoritmos más importantes para comprimir videos y son un estándar desde 1993. Aquí se
comprime video y audio sin embargo el video necesita más ancho de banda además contiene mayor
redundancia que el audio. Existen cuatro versiones: MPEG-1, MPEG-2, MPEG-3, MPEG-4.

Estándar Calidad Bit rate Uso


MPEG-1 VCR 1.2 Mbps Par trenzado, CD-ROM, DVD
MPEG-2 NTSC, PAL, HDTV 4-6 Mbps Difusión, alta definición
MPEG-3 Proyecto cancelado, incluido en MPEG-2
MPEG-4 Baja resolución 64 kbps Videoconferencia en N-RDSI B

MPEG-1 y MPEG-2 son similares, la versión de MPEG-2 es un conjunto de


MPEG-1 con características adicionales, formatos de fotograma y opciones
de codificación.
La comprensión de audio se realiza haciendo la transformada de Fourier
mientras que en la comprensión de video se aplica el estándar JPEG y esto
se aplica cuando se requiere acceder a un fotograma en especial, para
escenas donde la cámara y el fondo son estacionarios y uno o dos actores
se mueven, casi todos los pixeles serán idénticos. Pero para escenas
donde se hace zoom o la cámara se mueve la técnica falla para lo cual se
desarrolló MPEG.

UPC 2016 - Compresión de datos 17


Imagen #: sincronización de audio y video

Conclusiones:

 Los algoritmos que permiten comprimir los datos nos permitieron transmitir archivos en
menor tiempo.
 Las técnicas utilizadas para ciertas codificaciones de datos presentan perdida, sin embargo
es imperceptible para el usuario final.
 Actualmente el tiempo en comprimir un archivo es casi igual al tiempo utilizado para
descomprimir el archivo.
 Algunas técnicas y algoritmos de compresión, matemáticamente son precisos, es decir, se
recupera el mismo archivo, pero al llevarlo a la práctica este archivo contiene una ligera
pérdida ya que en el trascurso de decodificación existe el redondeo matemático.
 Mediante el siguiente trabajo se conoció sobre las técnicas y algoritmos de comprensión de
datos.

UPC 2016 - Compresión de datos 18

Das könnte Ihnen auch gefallen