Académique Documents
Professionnel Documents
Culture Documents
Programacin 3 G1.
Resumen
El presente informe tiene como objetivo dar a conocer sobre los conceptos bsicos de la
compresin de datos, se detallan los distintos mtodos y las distintas variantes en la compresin
de datos, y su importancia en la era actual. Se centra principalmente en los algoritmos para la
compresin de datos sin prdida, en los cuales se analizan los modelos que pueden abarcar: el
modelo esttico y el modelo dinmico. Adems, trata dos mtodos de compresin de datos: el
mtodo de Huffman y el mtodo de Burrows-Wheeler, en ambos casos se explica de forma
muy detallada la manera en que estos funcionan mediante ejemplos, tambin se explican los
campos de aplicacin.
Introduccin
Los algoritmos de compresin sin prdida son aquellos que tienen como objetivo representar
cierta cadena de datos utilizando y ocupando menor espacio y cuya reconstruccin sea exacta
a la cadena original de datos, es por esta razn que estos tipos de algoritmos son utilizados para
comprimir archivos que no pueden ser degradados o en los cuales no se puede permitir perder
ninguna porcin de informacin, como pueden ser documentos de textos, imgenes y sonido.
La mayora de estos archivos se basan en los conceptos de la Teora de la Informacin, tales
como la Redundancia y Entropa de datos y pueden ser implementados usando uno de los
modelos: el modelo esttico y el modelo basado en diccionarios.
La redundancia hace referencia a los datos que son repetitivos o previsibles y la entropa se
refiere a la informacin nueva o esencial que se define como la diferencia entre la cantidad
total de datos de un mensaje y su redundancia.
El modelo esttico lee y codifica utilizando la probabilidad de aparicin de cada carcter,
representado de forma simple en una tabla esttica de probabilidades, el proceso de generar un
rbol de Huffman completo de todos los datos de la cadena a comprimir tiene un coste
significativo, razn por la cual no siempre se genera este rbol completo, sino que en reemplazo
a ste primero se analiza por bloques de datos representativos dando lugar a dicha tabla de
frecuencias y a partir de esta tabla se genera el rbol de Huffman.
Se debe tener en cuenta que utilizar este modelo conlleva algunas desventajas, entre la principal
tenemos que, si un flujo de entrada no concuerda bien con la estadstica de la tabla de
probabilidades anteriormente acumulada, la compresin se degrada o incluso se da posibilidad
de que el archivo comprimido sea igual a ms pesado que el flujo original.
El modelo basado en diccionarios usa cdigo simple para reemplazar cadenas de smbolos,
acta de la siguiente manera, lee una entrada de datos y observa por grupos de smbolos que
aparecen en el diccionario, si la cadena concuerda, un indicador o ndice puede ocupar en lugar
de toda esa cadena.
Codificacin de Huffman
Algoritmo de Huffman
1. Se crea varios rboles, uno por cada carcter del alfabeto, consistiendo cada uno de los
rboles en nodo sin hijos y etiquetado cada uno con su carcter y con su frecuencia de
aparicin.
2. Se toman los dos rboles de menor frecuencia y se unen al nuevo rbol. La etiqueta de
la raz ser la suma de las frecuencias de las races de los dos sub-rboles que se unen,
y cada uno de estos rboles ser un hijo del nuevo rbol. Tambin se etiquetan las dos
ramas del nuevo rbol: con un 1 la de la izquierda y un 0 la de la derecha.
3. Se repite el paso 2 hasta que slo quede un rbol.
Ejemplo:
Vea Ilustracin 1.
Para obtener el cdigo asociado a un smbolo se debe proceder del siguiente modo:
Algoritmo de Burrows-Wheeler
Ejemplo:
Usaremos la cadena swiss_miss.
Dada la cadena de datos de n smbolos se construye una matriz de n x n, donde almacena
la cadena S en la primera fila, seguida por n-1 copias de S, cada una desplazada
cclicamente un smbolo a la izquierda Ilustracin 3.
A partir de esto la matriz se ordena lexicogrficamente2 por filas, produciendo la matriz
ordenada Ilustracin 4.
La permutacin de L seleccionada por el codificador es la ltima columna de la matriz
ordenada. La informacin necesaria para reconstruir eventualmente S a partir de L es
el nmero de la fila de cadena original en la matriz ordenada, que es nuestro ejemplo
es 8, este nmero se almacena en I.
1
La compresin RLE o Run-length encoding es una forma muy simple de compresin de datos en la que
secuencias de datos con el mismo valor consecutivas son almacenadas como un nico valor ms su recuento. Esto
es ms til en datos que contienen muchas de estas secuencias.
2 El orden lexicogrfico es el que se utiliza para ordenar caracteres. Normalmente se diferencia entre letras
Conclusiones
En nuestra era resulta imprescindible utilizar algoritmos de compresin de datos, ya que estos
acarrean grandes beneficios para mejorar las telecomunicaciones y el almacenamiento de
informacin. Grandes algoritmos han sido desarrollados, implementando varios modelos de
acuerdo a su campo de uso, aun as, comparten la caracterstica comn de la eliminacin de
redundancia de caracteres. Tambin es necesario aclarar que varios de estos mtodos se
complementan entre s para lograr la mayor compresin, en especfico el mtodo de Burrows-
Wheeler es implementado con ayuda de la codificacin de Huffman y otros mtodos ms.
La calidad de la compresin depender mucho del campo y del formato del cual se est
comprimiendo, por este motivo es difcil decidir cul mtodo es mejor que otro.
Referencias
Figuras
Ilustracin 1: rbol de Huffman