Lectura 4 - Aplicaciones
Lectura 4 - Aplicaciones
Lectura 4 - Aplicaciones
Lectura 4
Unidad 4: Aplicaciones
Introducción
La compresión de datos es una técnica muy importante en Computación; se
emplea para reducir el tamaño de los archivos guardados en disco.
“Para distinguir estos caracteres se necesitan [log 100]=7 bits. Siete bits
permiten la representación de 128 caracteres, de modo que el conjunto de
caracteres ASCII contiene además algunos caracteres no imprimibles. Se
añade un octavo bit para poder realizar tests de paridad.” 1
1
Mark Allen Weiss, “Estructuras de Datos en Java”, Adisson Weisley - 2000 - S/D - Bs As
Materia – Profesor | 2
Supongamos que tenemos un fichero que contiene sólo caracteres a, e, s, t,
además de espacios en blanco (sp) y caracteres de nueva línea (nl).
Supongamos que la frecuencia de cada carácter es 10, 15, 12 3, 4, 13 y 1,
respectivamente, como se muestra en la siguiente tabla:
Este archivo debería ocupar 174 bits, ya que contiene 58 caracteres y en este
contexto, cada carácter necesitaría sólo 3 bits para ser representado.
Por lo general, los archivos son de gran tamaño y existe una gran disparidad
entre el número de apariciones de los caracteres más frecuentes y los menos
frecuentes. Por ejemplo, muchos archivos de datos de gran tamaño tienen
una enorme cantidad de dígitos en blanco y caracteres de nueva línea
mientras que tienen muy pocos dígitos como q o x. Una forma de
comprimir archivos es reducir la cantidad de bits para la representación de
los datos. Para esto, es necesario codificar (comprimir) y decodificar
(descomprimir).
Materia – Profesor | 3
4.2- Algoritmo de Huffman
Contexto
Huffman fue capaz de diseñar el método de compresión más
eficiente.
2
A Method for the Construction of Minimum-Redundancy Codes, DAVID A. HUFFMAN,
ASSOCIATE, IRE
http://compression.ru/download/articles/huff/huffman_1952_minimum-redundancy-codes.pdf
Materia – Profesor | 4
Fuente: Pagina web http://es.wikipedia.org/wiki/Codificaci%C3%B3n_Huffman
Codificar esta frase usando este código requiere 156 bits, sin contar con el
espacio para el árbol.
Materia – Profesor | 5
4.3- Implementación
Codificación
El objetivo es representar símbolos con la menor cantidad de bits.
Materia – Profesor | 6
A su vez, también debemos realizar algunas modificaciones en la clase Dato
para poder persistir el símbolo (carácter) la su frecuencia.
Materia – Profesor | 7
Combinando todos los métodos mencionados anteriormente, obtenemos
como resultado la tabla de codificación Huffman:
Materia – Profesor | 8
Una vez creada la tabla, resultan necesarios los métodos para codificar
(comprimir) y decodificar (descomprimir):
Materia – Profesor | 9
Finalmente, los métodos codificar y decodificar se utilizan de la siguiente
manera:
Materia – Profesor | 10
Bibliografía Lectura
Mark Allen Weiss, “Estructuras de Datos en Java”, Adisson Weisley - 2000 -
S/D - Bs As
www.uesiglo21.edu.ar
Materia – Profesor | 11