Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Codificación de Huffman y Aritmética
1. Algoritmos de Compresi´on sin P´erdida
Codificaci´on de Huffman y Aritm´etica
Bryan Aguilar
Kamila Molina
Gabriela Delgado
Universidad de Cuenca
Facultad de Ingenier´ıa
Escuela de Ingenier´ıa de Sistemas
21 de junio de 2017
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 1 / 47
2. Contenido
1 Codificaci´on de Huffman
Definici´on
Caracter´ısticas
Pasos del Algoritmo
Ejemplo
Codigo Fuente
2 Codificaci´on Aritm´etica
Definici´on
Historia
Caracter´ısticas
Pasos del Algoritmo
Ejemplo
Codigo Fuente
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 2 / 47
3. Codificaci´on de Huffman
Definici´on
Es un algoritmo usado para compresi´on de datos. El t´ermino se refiere al
uso de una tabla de c´odigos de longitud variable para codificar un
determinado s´ımbolo (como puede ser un car´acter en un archivo) donde la
tabla se llena bas´andose en la probabilidad de aparici´on de cada posible
valor de dicho s´ımbolo. Es un m´etodo de compresi´on sin p´erdida.
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 3 / 47
4. Codificaci´on de Huffman
Caracter´ısticas
Se utiliza para la comprensi´on o encriptaci´on de datos.
Consiste en asignar c´odigos de distinta longitud de bits a cada uno de
los caracteres de un archivo.
Al asignar c´odigos m´as cortos a los caracteres que aparecen m´as a
menudo se consigue una compresi´on del archivo.
Se consigue una compresi´on mayor cuando la variedad de caracteres
diferentes que aparecen es menor.
Para recuperar el archivo original es necesario: el c´odigo asignado a
cada car´acter y su longitud en bits.
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 4 / 47
5. Codificaci´on de Huffman
Pasos del Algoritmo
1 Crear una lista enlazada que contenga: cada caracter del fichero y su
frecuencia.
2 Ordenar la lista por frecuencia de menor a mayor.
3 Convertir cada elemento de la lista en un nodo ra´ız de un ´arbol.
4 Fusionar todos los ´arboles en un ´unico.
5 Asigna un c´odigo a cada caracter: las ramas a la izquierda son ceros o
a la derecha unos y ordenar por caracter.
6 Empaquetar los bits en grupos de ocho, es decir en bytes.
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 5 / 47
6. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 6 / 47
7. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 7 / 47
8. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 8 / 47
9. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 9 / 47
10. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 10 / 47
11. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 11 / 47
12. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 12 / 47
13. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 13 / 47
14. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 14 / 47
15. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 15 / 47
16. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 16 / 47
17. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 17 / 47
18. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 18 / 47
19. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 19 / 47
20. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 20 / 47
21. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 21 / 47
22. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 22 / 47
23. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 23 / 47
24. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 24 / 47
25. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 25 / 47
26. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 26 / 47
27. C´odigo Fuente
Llenar el ´Arbol original con caracteres
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 27 / 47
28. C´odigo Fuente
Fusionar los dos primero ´arboles en un nuevo ´arbol
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 28 / 47
29. C´odigo Fuente
Fusionar los dos primero ´arboles en un nuevo ´arbol
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 29 / 47
30. Codificaci´on Aritm´etica
Definici´on
Es un m´etodo de codificaci´on sin p´erdidas que es independiente de las
caracter´ısticas espec´ıficas del medio. Teniendo en cuenta que las palabras
se representan con un n´umero fijo de bits por car´acter (Ej. c´odigo ASCII).
La codificaci´on aritm´etica hace que los caracteres frecuentemente usados
ser´an almacenados con menos bits y los no-tan-frecuentemente utilizados
caracteres ser´an almacenados con m´as bits. (Resultando en menos bits en
total). Este algoritmo difiere de la codificaci´n de Huffman.
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 30 / 47
31. Codificaci´on Aritm´etica
Pasos del Algoritmo
1 Se lee cada s´ımbolo y se calcula su probabilidad.
2 Una vez obtenidas las probabilidades, se define el intervalo de 0 a 1.
3 Es valor del intervalo para cada s´ımbolo se da empezando en 0 y
sumando la probabilidad del caracter.
4 Cuando los intervalos est´an definidos se procede a realizar el proceso
de codificaci´on en donde se buscan los nuevos l´ımites inferior y
superior. F´ormulas. Dando como resultado la reducci´on del intervalo.
5 Obtenemos el subintervalo final.
6 Finalmente, los valores son convertidos de n´umero punto flotante a
n´umero binario.
7 Una vez realizada la conversi´on se seleccionan los d´ıgitos que
consideran ambos n´umeros binarios. Dando un solo n´umero que sea
el resultado que contienen todos los s´ımbolos.
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 31 / 47
32. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 32 / 47
33. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 33 / 47
34. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 34 / 47
35. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 35 / 47
36. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 36 / 47
37. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 37 / 47
38. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 38 / 47
39. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 39 / 47
40. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 40 / 47
41. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 41 / 47
42. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 42 / 47
43. Ejemplo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 43 / 47
44. C´odigo Fuente
Codificaci´on de L´ımites inferior y superior
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 44 / 47
45. C´odigo Fuente
Asignaci´on de secuencia binaria al intervalo
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 45 / 47
46. Conclusiones
El algoritmo de Huffman es una manera de lograr comprensi´on de la
informaci´on sin perdida de manera que la informaci´on enviada pueda
llegar completa.
La codificaci´on aritm´etica puede considerarse como una generalizaci´on
de la codificaci´on de Huffman, de hecho, en la pr´actica la codificaci´on
Aritm´etica viene precedida por la codificaci´on de huffman.
Aunque la codificaci´on de Huffman es ´optima para una codificaci´on
s´ımbolo a s´ımbolo dada una distribuci´on de probabilidad, su
optimalidad a veces puede verse accidentalmente exagerada.
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 46 / 47
47. C´odigo Fuente Codificaci´on de Huffman y Aritm´etica
Disponible en:
https://github.com/gabyDelgado97/AlgoritmosCompresion
Bryan Aguilar Kamila Molina Gabriela Delgado (Universities of Somewhere and Elsewhere)Algoritmos de Compresi´on sin P´erdida 21 de junio de 2017 47 / 47