You are on page 1of 3

24/09/2012

Algoritmos de compresin sin perdida

Algoritmos de compresin de archivos sin perdida

La compresin de archivos concibe la creacin de algoritmos de forma inversa, es decir, utilizar el menor espacio posible de ando a un lado el tiempo!

Codificacin por Longitud de series


"l tipo mas simple de redundancia #ue se puede encontrar en un archivo son las largas series de caracteres repetidos! $AAAA%%%AA%%%%%&&&&&&&&'A%&%AAA%%%%&&&'( "sta cadena se puede codificar de forma mas compacta remplazando cada repeticin de caracteres por un solo e emplar del car)cter repetido precedido del numero de veces #ue este se repite es decir* $4A++%AA,%-&'A%&%+A4%+&'(

Codificacin de Longitud Variable


"sta t.cnica de compresin permite ganar una cantidad considerable de espacio en archivos, la idea es utilizar pocos bits para los caracteres #ue aparecen habitualmente / unos pocos mas para los #ue aparecen menos! 0omemos como e emplo la cadena $A%1A&A'A%1A(, cu/a representacin en cdigo binario esta dada por , bits de i #ue reproducen la i2esima letra del alfabeto 30 para los blancos4

Codificacin de Longitud Variable (II)


5ara aplicar el m.todo se asigna de forma proporcional la cadena mas corta de bits a la letra mas frecuente / as6 sucesivamente con todos los caracteres, para nuestro caso* A 270 , %27 1 , 127 01 , &27 10 , '27 11 "sta cadena utiliza solo 1, bits en lugar de los ,, #ue usaba la anterior!

1epresentacin del cdigo mediante un )rbol


"n efecto cual#uier )rbol de 8 ho as es capaz de representar un mensa e de 8 caracteres diferentes

24/09/2012

Cdigo de Huffman
Los cdigos de 9uffman son una t.cnica mu/ :til para comprimir ficheros, este utiliza una tabla de frecuencias de aparicin de cada car)cter para construir una forma ptima de representar los caracteres con cdigos binarios! Los pasos en la construccin del cdigo de 9uffman son* 1! ;e cuenta el numero de veces #ue se repite un car)cter 3frecuencia de aparicin4, en el mensa e #ue se va a codificar 2! ;e constru/e el )rbol de aba o hacia arriba de acuerdo con las frecuencias! Al construir el )rbol se considera como un )rbol binario, luego como un )rbol de codificacin

&onstruccin del )rbol


1! ;e crea un nodo de )rbol para cada frecuencia distinta de cero, asociada a su car)cter 2! ;e escogen los nodos con las frecuencias mas pe#ue<as / se unen en un nodo cu/os hi os ser)n los #ue un6 / la frecuencia del nodo nuevo ser) la suma da las frecuencias de los nodos unidos +! &ontinuar este proceso hasta #ue se forme un )rbol :nico =>0A* "n caso de #ue en una serie de nodos ha/an mas de 2 nodos #ue cumplen con ser los mas pe#ue<os, se escoge arbitrariamente los #ue se unir)n! "sta escogencia genera )rboles distintos pero e#uivalentes desde el punto de vista de la optimidad!

" emplo
;e tiene un fichero con 100!000 caracteres #ue se desea compactar! Las frecuencias de aparicin de caracteres en el fichero son las siguientes*

&onstruccin del )rbol

"ntrop6a
La entrop6a denota el m6nimo n:mero de bits por s6mbolo necesarios para representar una cadena! 9uffman es un e emplo de codificacin basada en la entrop6a! "s un 6ndice #ue denota la cantidad de informacin #ue e?iste en una fuente de datos 3la cadena a codificar4! Aun#ue el c)lculo de la entrop6a general no se puede calcular, de forma pr)ctica se suele emplear la entrop6a de primer orden como una apro?imacin!

" emplo
9allar la entrop6a de la siguiente cadena de s6mbolos* ;@AaabaaccB La probabilidad de cada uno de los s6mbolos vendr) dada por las siguientes e?presiones* 53a4@4/C 53b4@1/C 53c4@2/C

;iendo ai cada uno de los smbolos del alfabeto A.

24/09/2012

" ercicio
;e tiene un fichero con 20!000 caracteres #ue se desea compactar! Las frecuencias de aparicin de caracteres en el fichero son las siguientes
Caracter Erecuencia +2 ! 2" 1, # 9 $ C % , & 4

Denerar el cdigo 9uffman para la frase* Navidad es la poca del ao en que se nos acaba el dinero antes que los amigos 'eterminar la entrop6a de los e ercicios anteriores

You might also like