1. UNIVERSIDAD DE ORIENTE
NÚCLEO ANZOÁTEGUI
ESCUELA DE INGENIERÍA
DEPARTAMENTO DE COMPUTACIÓN Y SISTEMAS
ANALISIS Y DISEÑO DE ALGORITMOS
CICLOS DE INSTRUCCIONES
Profesora: Integrantes:
Julima Anato Eulises Brazon
Josue Baez
2. Codificación de Huffman
Nombre Apellido
La codificación de Huffman es un algoritmo utilizado para la compresión de datos
que nos permite representar una información con la mínima cantidad de bits
necesarios, según la cantidad de caracteres presentes y la frecuencia con la que
estos se repiten.
El codificador Huffman crea una estructura arbórea ordenada con todos los
símbolos y la frecuencia con que aparecen. Las ramas se construyen en forma
recursiva comenzando con los símbolos menos frecuentes.
Ojo hay que acomodar esto
3. Codificación de Huffman- Antecedentes
Nombre Apellido
Techinfo explica la codificación HuffmanLa compresión de datos tiene una historia anterior a la
informática física. El código Morse, por ejemplo, comprime la información asignando códigos más
cortos a los caracteres que son estadísticamente comunes en el idioma inglés (como las letras “e”
y “t”). La codificación de Huffman surgió como resultado de un proyecto de clase en el MIT de su
entonces estudiante, David Huffman.
En 1951, Huffman estaba tomando una clase con Robert Fano, quien (con la ayuda de un
ingeniero y matemático llamado Claude Shannon) inventó un esquema de eficiencia conocido
como codificación Shannon-Fano. Cuando Fano le dio a su clase la oportunidad de escribir un
trabajo final o tomar un examen final, Huffman eligió el trabajo final, que buscaba encontrar un
método de codificTechinfo explica la codificación HuffmanLa compresión de datos tiene una
historia anterior a la informática física. El código Morse, por ejemplo, comprime la información
asignando códigos más cortos a los caracteres que son estadísticamente comunes en el idioma
inglés (como las letras “e” y “t”). La codificación de Huffman surgió como resultado de un
proyecto de clase en el MIT de su entonces estudiante, David Huffman.En 1951, Huffman estaba
tomando una clase con Robert Fano, quien (con la ayuda de un ingeniero y matemático llamado
Claude Shannon) inventó un esquema de eficiencia conocido como codificación Shannon-Fano.
Cuando Fano le dio a su clase la oportunidad de escribir un trabajo final o tomar un examen final,
Huffman eligió el trabajo final, que buscaba encontrar un método de codificación binaria
eficiente. Esto resultó en la codificación de Huffman, que en la década de 1970 se había
convertido en un algoritmo de codificación digital prominente.ación binaria eficiente. Esto
resultó en la codificación de Huffman, que en la década de 1970 se había convertido en un
algoritmo de codificación digital prominente..
4. Esquema algorítmico
Nombre Apellido
Se listan la frecuencia de los
caracteres de menor a mayor
Se localizan los dos valores mas
pequeños,pu y pv
Se eliminan pu y pv de la lista L
Se insertan en L el valor pu+ pv de
forma que siga ordenado de menor
a mayor.
numero de
elementos de
la nueva lista L
es distinto de 2
Sea T(L) Una arborescencia
binaria con vértice V0 y dos
vértices de grado de entrada
1 que etiquetamos con los
valores de la ultima lista L.
. Se reemplaza el vértice
cuya etiqueta sea la suma
de dos valores, pu + pv por
un árbol dirigido con raíz
binario cuya raíz sea dicho
vértice y los otros dos .
Las etiquetas del
árbol dirigido con
raíz generado
coincidide con
los valores de
entrada de datos
Si
No
Fin
Si
No
5. Esquema algorítmico
Nombre Apellido
Paso 1: Se listan las frecuencias de menar a mayor L
Paso 2. Se localizan los dos valores más pequeños de la lista, pu y pv
Se eliminan de la lista L
Se insertan en L el valor pu + pv de forma que siga siendo una lista de
números creciente.
Si el numero de elementos de la nueva lista L es distinto de 2
ir al PASO 2
Paso 3. Sea T(L) Una arborescencia binaria con vértice V0 y dos vértices de frado de
entrada 1 que etiquetamos con los valores de la ultima lista L.
Paso 4. Se reemplaza el vértice cuya etiqueta sea la suma de dos valores, pu + pv por
un árbol dirigido con raíz binario cuya raíz sea dicho vértice y los otros dos
vértices tengan como etiquetas los valores pu y pv.
Ir a pasa 4 hasta que las etiquetas del árbol dirigido con raíz generado coincidid con los
valores de entrada de datos
.
6. Codificación de Huffman
Ejemplo
Caracteres “x”, “y”,“ * ”,“+”,“(”,“)”
Código 1: x➜01 y➜10 *➜101 +➜0 ) ➜11 (➜00
Código 2: x➜1110 y➜1111 *➜110 +➜10 ) ➜01 (➜00
Significado?
Código 1: 00010101110101 00 01 0 10 11 101 01
( x + y ) * X
0 00 10 101 11 01 01
+ ( y * ) x x
Código 2: 001110101111011101110 00 1110 10 1111 01 110 1110
( x + y ) * X
Eulises Brazon
7. Codificación de Huffman
Obtención del código prefijo+
1. Se construye un árbol dirigido con raíz binario donde:
1. el arco de salida izquierdo de cada vértice esta etiquetado con 0
2. El arco de salida derecho de cada vértice esta etiquetado con 1
2. Los vértices de grado de salida 0 (hijos) están etiquetados con caracteres
Ejemplo: 0
0 0
0
0
1
1
1
1
1
( ) +
*
x y
Eulises Brazon
8. Codificación de Huffman
Obtencion del mejor código prefijo asociando a los símbolos “x”, “y”,“*”,“+”,“(”,“)”.
Las frecuencia con que estos aparecen vienen reflejadas en la tabla siguiente
10, 10, 15, 20, 20, 25
15, 20, 20, 20, 25
20, 20, 25, 35
25, 35, 40
46, 60
0
0 0
0
0
1
1
1
1
1
( ) +
*
x y
Caracteres x y * + ( )
Frecuencia 10 10 15 25 20 20
10 10
15
25
20
20
Eulises Brazon
9. Aplicaciones de la Codificación de Huffman
Esta compresión no se limita únicamente a
archivo, ya que la codificación de Huffman
sirve como base par multiples técnicas y
formatos de Compresión, como la compresión
de imagen, que delimitan aquellas áreas
donde un mismo color se repite
constantemente y en conjunto con la
codificación de huffman se logra reducir su
tamaño, pero conservando la calidad de
imagen.
La codificación Huffmann permite la
compresión de archivos, después de asignar
códigos Huffmann a cada carácter en un
archivo, estos caracteres deben reemplazarse
con códigos Huffmann equivalentes en el
archivo comprimido.
Eulises Brazon