Documente Academic
Documente Profesional
Documente Cultură
LIC EN MATEMATICAS
Run-Length Encoding
Como primer ejemplo, tenemos un algoritmo sencillo conocido como RLE
o Run-length encoding. Este algoritmo consiste en reemplazar largas
secuencias de datos repetitivos con un solo digito, seguido por un
contador indicando el nmero de veces que se repite el digito. Por
ejemplo:
aaaaaaaaaabbbaxxxxyyyzyx
Esta variable es de 24 dgitos y tiene muchas repeticiones. Utilizando el
RLE, podemos reemplazarlo por una variable ms corta como esta:
a10b3a1x4y3z1y1x1
Ahora la variable es de 17 dgitos, que es aproximadamente un 70% ms
corta. Se puede optimizar an ms el algoritmo para lograr una mayor
compresin eliminando los dgitos unitarios (los que indican que solo hay
un digito), quedando:
a10b3ax4y3zyx
Este algoritmo se usa tambin para arreglos y se ha usado para
imgenes, como el formato GIF y BMP.
Variable-Length Encoding
En este caso, el algoritmo utiliza un nmero variable de bits para
representar los datos que se quieren comprimir. Este algoritmo permite
una compresin y descompresin de una serie de bits sin error o sin
prdida. Estos cdigos se utilizan con mucha frecuencia por lo
mencionado y tienen mucha aplicacin, porque son ms eficientes que
los cdigos de longitud fija. Esto es, el nmero de dgitos que se
requieren para representar un mensaje dado con un cdigo de longitud
variable es frecuentemente menor que si se compara con un RLE.
Construccin del Cdigo Hoffman
El algoritmo de Huffman es un algoritmo para la construccin de
cdigos de Huffman, desarrollado por David A. Huffman en 1952. Este
algoritmo toma un alfabeto de n smbolos, junto con sus frecuencias de
aparicin asociadas, y produce un cdigo de Huffman para ese alfabeto
y esas frecuencias. El algoritmo consiste en la creacin de un rbol
binario que tiene cada uno de los smbolos por hoja, y construido de tal
LIC EN MATEMATICAS
forma que siguindolo desde la raz a cada una de sus hojas se obtiene
el cdigo Huffman asociado.
-
Se crean varios rboles, uno por cada uno de los smbolos del
alfabeto, consistiendo cada uno de los rboles en un nodo sin
hijos, y etiquetado cada uno con su smbolo asociado y su
frecuencia de aparicin.
Se toman los dos rboles de menor frecuencia, y se unen creando
un nuevo rbol. La etiqueta de la raz ser la suma de las
frecuencias de las races de los dos 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 0 la de la
izquierda, y con un 1 la de la derecha.
Se repite el paso anterior hasta que slo quede un rbol.
LIC EN MATEMATICAS