Está en la página 1de 17

Codificacin de Fuente y Canal

Reporte

Codificacin de Huffman
Ejercicio 3.2

Preparado por

Alan Rodrigo DAZ RIZO


Fernando HERMOSILLO REYNOSO
Manuel HERNNDEZ ARAMBURO

CINVESTAV

26/02/2017
ProblemasNumricos Pg.2

ndicedelDocumento
NDICE DEL DOCUMENTO....................................................................................II

1. EJERCICIO 3.2 REALIZAR UN PROGRAMA PARA CODIFICAR Y DECODIFICAR


HUFFMAN PARA REALIZAR LO SIGUIENTE (EN CADA CASO USAR EL LIBRO DE
CDIGOS GENERADO POR LA IMAGEN A SER COMPRIMIDA)..................................1
1.1 ESTRUCTURA DE LOS PROGRAMAS........................................................................................ 1
1.2 A) CODIFICACIN DE LAS IMGENES SENA, SENSIN Y OMAHA....................................................2
1.3 B) ESCRIBIR UN PROGRAMA QUE TOME LAS DIFERENCIAS ENTRE PIXELES ADJUNTOS Y LUEGO USAR LOS
PROGRAMAS DE HUFFMAN PARA CODIFICARLAS...................................................................3
2. CONCLUSIONES........................................................................................... 4

APNDICE A....................................................................................................... 5
APNDICE B..................................................................................................... 12
CodificacinHuffman Pg.3

1. Ejercicio 3.2 Realizar un programa para codificar y


decodificarHuffmanpararealizarlosiguiente(encada
casousarellibrodecdigosgeneradoporlaimagenaser
comprimida)
1.1Estructuradelosprogramas

Sedisearonvariossubmdulos,loscualesseenlistanacontinuacinysernincluidosenel
ApndiceA.

Obtienelasestadsticasdeunarchivodeimagendel
getImgStats
tipo.imgdondelosdatosestnencrudo.
Creaunaestructurasimilaraunrbolbinario,donde
huffmanBinaryTree guardalosndicesdeunvectordeprobabilidades,enlugar
deestasltimas.
Esunafuncincomplementariaalaanterior,esdeltipo
createHuffmanCodes recursivaygeneraloscdigosasignadosacadasmbolo
medianteunrecorridodelrbolbinario.
setGlobalCodebook Estableceelvaloraunavariablegloballlamadacodebook.
updateGlobalCodebook Actualizaelvaloraunavariablegloballlamadacodebook.
getGlobalCodebook Obtieneelvalordeunavariablegloballlamadacodebook.
Calculaellibrodecdigosparaunaentradade
computeHuffmanCodebook
probabilidadounarchivoaanalizardado.
Codificaunarchivodeacuerdoallibrodecdigo
huffmanEncode
generadoconlafuncinanterior.
Decodificaunvectordepalabrascodificadasgeneradocon
huffmanDecode
lafuncinanterior.
Calculaladiferenciadepixelesadjuntosconelfinde
diffPixel
obtenerlasestadsticasalutilizardichatcnica.

EstossubmdulossernbsicosparalageneracindecdigosHuffmanascomolacodificaciny
decodificacindesmbolos.

Yseescribieronlosmdulosprincipalesparaesteejercicio.

Generalibrodecdigosdeimagenasercodificadapara
HuffmanScript
posteriormentedecodificarla.
HuffmanDifference Calculaladiferenciaentrepixelesadjuntosparauna
CodificacinHuffman Pg.4

imagen.imgdada,calculaellibrodecdigosparaestas
diferenciasycodifica/decodificalaimagen.
CodificacinHuffman Pg.5

1.2A)CodificacindelasimgenesSena,SensinyOmaha

1.2.1 Sena

Longituddelosdatosencrudo 524288[bits]
Longituddelosdatoscodificados 449771[bits]
Razndecompresinlograda 1.1657
Elhistogramadelaimagen(Figura1)nosdaunaideade
lacompresinlograda.

1.2.2 Sensin

Longitudenbitsdelosdatosencrudo 589824[bits]
Longitudenbitsdelosdatoscodificados 481177[bits]
Razndecompresinlograda 1.0896
Presentalapeorcompresin,notienetantaredundancia
conrespectoalasotras2imgenes.Histogramaenla
Figura2

1.2.3 Omaha

Longituddelosdatosencrudo 589824[bits]
Longituddelosdatoscodificados 456738[bits]
Razndecompresinlograda 1.1479
HistogramaenlaFigura3
CodificacinHuffman Pg.6

1.3B)Escribirunprogramaquetomelasdiferenciasentrepixeles
adjuntosyluegousarlosprogramasdeHuffmanparacodificarlas

1.3.1 Sena

Longituddelasdiferencias 589824[bits]
Longituddelasdiferenciascodificadas 253468[bits]
Razndecompresinlograda 2.0685
Tienelamayorcompresindelas3imgenesdebidoal
incrementodelaredundanciaqueestaimagenpose,lo
podemosobservarensuhistograma(Figura4).

1.3.2 Sensin

Longituddelasdiferencias 589824[bits]
Longituddelasdiferenciascodificadas 298050[bits]
Razndecompresinlograda 1.7591
Mejorobastantelacompresinconrespectoalaanterior
compresinestofueporlasdiferenciasgeneraronmayor
redundanciaenlaimagen.HistogramaenlaFigura5.

1.3.3 Omaha

1.4 Longituddelasdiferencias 589824[bits]


Longituddelasdiferenciascodificadas 410916[bits]
Razndecompresinlograda 1.2759
Noseincrementengranmedidalaredundanciadela
imagenparamejorarlacompresin,peroesmayorcon
respectoalacodificacinporestadsticasdelpixel.
HistogramaenlaFigura6.
CodificacinHuffman Pg.7

2. Conclusiones
ElobjetivodeesteejerciciofuemostrarventajasydesventajasdelacodificacinHuffman,su
compresinenfuncindelasestadsticasquetengalafuente.

Enelinciso(a)serealizlacodificacindelasimgenesenbaseaestadsticasporpixel,locual
generounarazndecompresinbajoparaestasimgenes,siendoSensinlaquesecomprimi
menosySenalademayorcompresin,estodebidoalaspocasredundanciaspresentesenlaimagen
comosevioenloshistogramas(ApndiceB),olasconcentracionesdepixeles.

Sinembargo,enelinciso(b),setomaronlasdiferenciasqueexistenentrelospixelesadjuntos,con
locualsemejorbastantelacompresindebidoalaumentodelasredundanciasquehayenlas
imgenes,SenafuedenuevacuentalaquetuvomayorcompresinperoOmahaenestecasofuela
de menor compresin debido a la poca redundancia. En este inciso se obtuvieron las mejores
compresiones,apesardequeOmahafuelademenorcompresinsuraznaumentorespectoala
delinciso(a).
CodificacinHuffman Pg.8

ApndiceA
CodificacinHuffman Pg.9
CodificacinHuffman Pg.10
CodificacinHuffman Pg.11
CodificacinHuffman Pg.12
CodificacinHuffman Pg.13
CodificacinHuffman Pg.14
CodificacinHuffman Pg.15

ApndiceB

Figura1HistogramadeSenadelinciso(a)

Figura2HistogramadeSensindelinciso(a)
CodificacinHuffman Pg.16

Figura3HistogramadeOmahadelinciso(a)

Figura4HistogramadeSenadelinciso(b)
CodificacinHuffman Pg.17

Figura5HistogramadeSensindelinciso(b)

Figura6HistogramadeOmahadelinciso(b)

También podría gustarte