Sie sind auf Seite 1von 2

No importa que tan rpidas sean las computadoras o las redes modernas, los usuarios siempre necesitaran servicios

de mayor velocidad. Para reducir el volumen de datos que se transfieren, generalmente se utiliza cierto tipo de compresin. Por eso, este tema resulta ser un interesante campo de investigacin dentro de las Ciencias de la Computacin. Existen muchos tipos de algoritmos de compresin de datos, algunos no tienen perdidas, otros pierden una parte de los datos que comprimen, pero el principal o !etivo es el ahorro de almacenamiento y una mayor velocidad de transferencia Run-Length Encoding Como primer e!emplo, tenemos un algoritmo sencillo conocido como "#E o "un$length encoding. Este algoritmo consiste en reemplazar largas secuencias de datos repetitivos con un solo digito, seguido por un contador indicando el n%mero de veces que se repite el digito. Por e!emplo& aaaaaaaaaabbbaxxxxyyyzyx Esta varia le es de '( d)gitos y tiene muchas repeticiones. *tilizando el "#E, podemos reemplazarlo por una varia le ms corta como esta& a10b3a1x4y3z1y1x1 +hora la varia le es de ,- d)gitos, que es aproximadamente un -./ ms corta. 0e puede optimizar a%n ms el algoritmo para lograr una mayor compresin eliminando los d)gitos unitarios 1los que indican que solo hay un digito2, quedando& a10b3ax4y3zyx Este algoritmo se usa tam i3n para arreglos y se ha usado para imgenes, como el formato 456 y 78P. Variable-Length Encoding En este caso, el algoritmo utiliza un n%mero varia le de its para representar los datos que se quieren comprimir. Este algoritmo permite una compresin y descompresin de una serie de its sin error o sin p3rdida. Estos cdigos se utilizan con mucha frecuencia por lo mencionado y tienen mucha aplicacin, porque son ms eficientes que los cdigos de longitud fi!a. Esto es, el n%mero de d)gitos que se requieren para representar un mensa!e dado con un cdigo de longitud varia le es frecuentemente menor que si se compara con un "#E. Construccin del Cdigo Huffman El algoritmo de 9uffman es un algoritmo para la construccin de cdigos de 9uffman, desarrollado por :avid +. 9uffman en ,;<'. Este algoritmo toma un alfa eto de n s)m olos, !unto con sus frecuencias de aparicin asociadas, y produce un cdigo de 9uffman para ese alfa eto y esas frecuencias. El algoritmo consiste en la creacin de un r ol inario que tiene cada uno de los s)m olos por ho!a, y construido de tal forma que sigui3ndolo desde la ra)z a cada una de sus ho!as se o tiene el cdigo 9uffman asociado. $ $ 0e crean varios r oles, uno por cada uno de los s)m olos del alfa eto, consistiendo cada uno de los r oles en un nodo sin hi!os, y etiquetado cada uno con su s)m olo asociado y su frecuencia de aparicin. 0e toman los dos r oles de menor frecuencia, y se unen creando un nuevo r ol. #a etiqueta de la ra)z ser la suma de las frecuencias de las ra)ces de los dos r oles que se unen, y cada uno de estos

r oles ser un hi!o del nuevo r ol. =am i3n se etiquetan las dos ramas del nuevo r ol& con un . la de la izquierda, y con un , la de la derecha. 0e repite el paso anterior hasta que slo quede un r ol.

Con este r ol se puede conocer el cdigo asociado a un s)m olo, as) como o tener el s)m olo asociado a un determinado cdigo. Para o tener el cdigo asociado a un s)m olo se de e proceder del siguiente modo& $ $ $ $ $ $ Comenzar con un cdigo vac)o. 5niciar el recorrido del r ol en la ho!a asociada al s)m olo. Comenzar un recorrido del r ol hacia arri a. Cada vez que se su a un nivel, a>adir al cdigo la etiqueta de la rama que se ha recorrido. =ras llegar a la ra)z, invertir el cdigo. El resultado es el cdigo 9uffman deseado.

Para o tener un s)m olo a partir de un cdigo se de e hacer as)& $ $ $ Comenzar el recorrido del r ol en la ra)z de 3ste Extraer el primer s)m olo del cdigo a descodificar :escender por la rama etiquetada con ese s)m olo

*n e!emplo de uso se ve ilustrado en la siguiente imagen&

#a ta la descri e el alfa eto a codificar, !unto con las frecuencias de sus s)m olos. En el grfico se muestra el r ol construido a partir de este alfa eto siguiendo el algoritmo descrito. 0e puede ver con facilidad cul es el cdigo del s)m olo E& su iendo por el r ol se recorren ramas etiquetadas con ,, , y .? por lo tanto, el cdigo es .,,. Para o tener el cdigo de : se recorren las ramas ., ,, , y ,, por lo que el cdigo es ,,,.. #a operacin inversa tam i3n es fcil de realizar& dado el cdigo ,. se recorren desde la ra)z las ramas , y ., o teni3ndose el s)m olo C. Para descodificar .,. se recorren las ramas ., , y ., o teni3ndose el s)m olo +.

Das könnte Ihnen auch gefallen