Sunteți pe pagina 1din 3

GUILEBALDO MINERO AGUILAR AL12526210

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

GUILEBALDO MINERO AGUILAR AL12526210

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.

Con este rbol se puede conocer el cdigo asociado a un smbolo, as


como obtener el smbolo asociado a un determinado cdigo. Para
obtener el cdigo asociado a un smbolo se debe proceder del siguiente
modo:
-

Comenzar con un cdigo vaco.


Iniciar el recorrido del rbol en la hoja asociada al smbolo.
Comenzar un recorrido del rbol hacia arriba.
Cada vez que se suba un nivel, aadir al cdigo la etiqueta de la
rama que se ha recorrido.
Tras llegar a la raz, invertir el cdigo.
El resultado es el cdigo Huffman deseado.

Para obtener un smbolo a partir de un cdigo se debe hacer as:


-

Comenzar el recorrido del rbol en la raz de ste


Extraer el primer smbolo del cdigo a descodificar
Descender por la rama etiquetada con ese smbolo

La tabla describe el alfabeto a codificar, junto con las frecuencias de sus


smbolos. En el grfico se muestra el rbol construido a partir de este
alfabeto siguiendo el algoritmo descrito. Se puede ver con facilidad cul
es el cdigo del smbolo E: subiendo por el rbol se recorren ramas
etiquetadas con 1, 1 y 0; por lo tanto, el cdigo es 011. Para obtener el
cdigo de D se recorren las ramas 0, 1, 1 y 1, por lo que el cdigo es
1110.
La operacin inversa tambin es fcil de realizar: dado el cdigo 10 se
recorren desde la raz las ramas 1 y 0, obtenindose el smbolo C. Para

GUILEBALDO MINERO AGUILAR AL12526210

LIC EN MATEMATICAS

descodificar 010 se recorren las ramas 0, 1 y 0, obtenindose el smbolo


A.

S-ar putea să vă placă și