Algoritmos de Comprensión de Datos
Transcript of Algoritmos de Comprensión de Datos
-
8/18/2019 Algoritmos de Comprensión de Datos
1/20
CARRERA
ING. EN SISTEMAS COMPUTACIONALES
DOCENTE
M.T.I. LILY ALEJANDRA MEDRANO MENDOZA.
ASIGNATURA
SISTEMAS MULTIMEDIA.
TRABAJO:
INVESTIGACION DE ALGORITMOS DE COMPRESION.
ALUMNOS:
RAMIREZ LAZARO JOAQUIN.PEREZ XOLO LUIS DAVID.
COBAXIN MARTINEZ ANGEL SANTIAGO.
GRUPO
804 “B”
SAN ANDRES TUXTLA VER, 0!0"!#0$%
-
8/18/2019 Algoritmos de Comprensión de Datos
2/20
INDICEINTRODUCCION...................................................................................................3
Algoritmos de Comprensión de Datos..............................................................4
Diferencias entre compresión con Perdida y sin prdida..................................!
Algoritmo de compresión sin prdida..............................................................!Algoritmo de compresión con prdida............................................................."
#todos de compresión con prdida............................................................"
Algoritmo de Compresión $%&man..................................................................'
Descripción...................................................................................................'
()emplo de %so........................................................................................... *+
,imitaciones................................................................................................**
Códigos $%&man n-arios............................................................................*
Algoritmo de Compresión R,(........................................................................*3
Algoritmo de Compresión /0annon-1ano.......................................................*4
(l algoritmo /0annon-1ano............................................................................*!
()emplo.......................................................................................................*!
CONC,U/ION..................................................................................................... *"
R(1(R(NCIA/ (,(CTR2NICA/...........................................................................*"
.
/I/T(#A/ #U,TI#(DIA Pgina
-
8/18/2019 Algoritmos de Comprensión de Datos
3/20
INTRODUCCION
Actualmente, el poder de procesamiento de los procesadores se incrementamás rápido que la capacidad de almacenamiento y es más veloz que los anchosde banda de las redes, porque estos últimos requieren cambios enormes en lasinfraestructuras de telecomunicación.Por lo tanto, para compensar esto, es más común el procedimiento de reducir eltamaño de los datos al explotar el poder de procesamiento de los procesadores,que incrementar la capacidad de almacenamiento y de transmisión de datos.
a compresión consiste en reducir el tamaño f!sico de bloques deinformación. "n compresor se vale de un al#oritmo que se utiliza para optimizar los datos al tener en cuenta consideraciones apropiadas para el tipo de datos quese van a comprimir. Por lo tanto, es necesario un descompresor para reconstruir los datos ori#inales por medio de un al#oritmo opuesto al que se utiliza para lacompresión.
$l m%todo de compresión depende intr!nsecamente del tipo de datos que sevan a comprimir& no se comprime una ima#en del mismo modo que un archivo deaudio.
/I/T(#A/ #U,TI#(DIA Pgina 3
-
8/18/2019 Algoritmos de Comprensión de Datos
4/20
A&'()*+(- / C()/1-*21 / D3+(-
$s la reducción del volumen de datos tratables para representar una
determinada información empleando una menor cantidad de espacio. Al acto de
compresión de datos se denomina compresión, y al contrario descompresión.
$l espacio que ocupa una información codificada 'datos, señal di#ital, etc.(
sin compresión es el cociente entre la frecuencia de muestreo y la resolución. Por
tanto, cuantos más bits se empleen mayor será el tamaño del archivo. )o
obstante, la resolución viene impuesta por el sistema di#ital con que se traba*a y
no se puede alterar el número de bits a voluntad+ por ello, se utiliza la compresión,
para transmitir la misma cantidad de información que ocupar!a una #ran resolución
en un número inferior de bits.
a compresión es un caso particular de la codificación, cuya caracter!stica
principal es que el códi#o resultante tiene menor tamaño que el ori#inal.
a compresión de datos se basa fundamentalmente en buscar repeticiones
en series de datos para despu%s almacenar solo el dato *unto al número de veces
que se repite. As!, por e*emplo, si en un fichero aparece una secuencia como
AAAAAA, ocupando - bytes se podr!a almacenar simplemente -A que ocupa
solo bytes, en al#oritmo /$.
/I/T(#A/ #U,TI#(DIA Pgina 4
-
8/18/2019 Algoritmos de Comprensión de Datos
5/20
$n realidad, el proceso es mucho más comple*o, ya que raramente se
consi#ue encontrar patrones de repetición tan exactos 'salvo en al#unas
imá#enes(. 0e utilizan al#oritmos de compresión&
Por un lado, al#unos buscan series lar#as que lue#o codifican en formas
más breves.
Por otro lado, al#unos al#oritmos, como el al#oritmo de 1uffman, examinan
los caracteres más repetidos para lue#o codificar de forma más corta los
que más se repiten.
2tros, como el 34, construyen un diccionario con los patrones
encontrados, a los cuales se hace referencia de manera posterior.
a codificación de los bytes pares es otro sencillo al#oritmo de compresión
muy fácil de entender.
A la hora de hablar de compresión hay que tener presentes dos conceptos&
5. Redundancia& 6atos que son repetitivos o previsibles
. Entropía& a información nueva o esencial que se define como la diferencia
entre la cantidad total de datos de un mensa*e y su redundancia.
a información que transmiten los datos puede ser de tres tipos&
5. Redundante& información repetitiva o predecible.
. Irrelevante& información que no podemos apreciar y cuya eliminación por
tanto no afecta al contenido del mensa*e. Por e*emplo, si las frecuencias
que es capaz de captar el o!do humano están entre 5-78 1z y
5-.88878.888 1z, ser!an irrelevantes aquellas frecuencias que estuvieran
por deba*o o por encima de estos valores.
9. Básica& la relevante. a que no es ni redundante ni irrelevante. a que debe
ser transmitida para que se pueda reconstruir la señal.
:eniendo en cuenta estos tres tipos de información, se establecen trestipolo#!as de compresión de la información&
/I/T(#A/ #U,TI#(DIA Pgina
http://es.wikipedia.org/wiki/Algoritmo_de_Huffmanhttp://es.wikipedia.org/wiki/LZWhttp://es.wikipedia.org/wiki/Codificando_los_bytes_pareshttp://es.wikipedia.org/wiki/Redundanciahttp://es.wikipedia.org/wiki/Entrop%C3%ADa_(informaci%C3%B3n)http://es.wikipedia.org/wiki/Algoritmo_de_Huffmanhttp://es.wikipedia.org/wiki/LZWhttp://es.wikipedia.org/wiki/Codificando_los_bytes_pareshttp://es.wikipedia.org/wiki/Redundanciahttp://es.wikipedia.org/wiki/Entrop%C3%ADa_(informaci%C3%B3n)
-
8/18/2019 Algoritmos de Comprensión de Datos
6/20
5. Sin pérdidas reales& es decir, transmitiendo toda la entrop!a del mensa*e
'toda la información básica e irrelevante, pero eliminando la redundante(.
. Subjetivamente sin pérdidas& es decir, además de eliminar la información
redundante se elimina tambi%n la irrelevante.
9. Subjetivamente con pérdidas& se elimina cierta cantidad de información
básica, por lo que el mensa*e se reconstruirá con errores perceptibles pero
tolerables 'por e*emplo& la videoconferencia(.
D*/)/15*3- /1+)/ 5()/-*21 5(1 P/)*3 6 -*1 7)*3$l ob*etivo de la compresión es siempre reducir el tamaño de la información,intentando que esta reducción de tamaño no afecte al contenido. )o obstante, lareducción de datos puede afectar o no a la calidad de la información&
;ompresión sin p%rdida& los datos antes y despu%s de comprimirlos sonexactos en la compresión sin p%rdida. $n el caso de la compresión sin p%rdida unamayor compresión solo implica más tiempo de proceso. $l bit rate siempre esvariable en la compresión sin p%rdida. 0e utiliza principalmente en la compresiónde texto.
"n al#oritmo de compresión con p%rdida puede eliminar datos para disminuir aún más el tamaño, con lo que reduce la calidad. $n la compresión con p%rdida elbit rate puede ser constante ';
-
8/18/2019 Algoritmos de Comprensión de Datos
7/20
A&'()*+( / 5()/-*21 -*1 7)*3
0e denomina algoritmo de compresión sin pérdida a cualquier
procedimiento de codificación que ten#a como ob*etivo representar cierta cantidad
de información utilizando u ocupando un espacio menor, siendo posible una
reconstrucción exacta de los datos ori#inales.
$s utilizada para comprimir archivos o información que contienen datos que
no pueden ser de#radados o perdidos, como pueden ser documentos de texto,
imá#enes y sonido.
a compresión sin p%rdidas es una t%cnica que consiste en la #arant!a de
#enerar un duplicado exacto del flu*o de datos de entrada despu%s de un ciclo de
compresión 7 expansión. $s #eneralmente implementada usando uno o dos
diferentes tipos de modelos& estático o basado en diccionario.
$l modelo estático lee y codifica mientras utiliza la probabilidad de aparición
de un carácter. 0u forma más simple usa una tabla estática de probabilidades. $n
el inicio #enerar un árbol de 1uffman ten!a costos si#nificantes+ por tanto, no
siempre era #enerado, sino que en su lu#ar se analizaban bloques representativos
de datos, dando una tabla de frecuencia caracter!stica.
$ntonces los árboles de 1uffman se #eneraban y los pro#ramas ten!an
acceso a este modelo estático. Pero utilizar un modelo estático tiene suslimitaciones. 0i un flu*o de entrada no concuerda bien con la previamente
estad!stica acumulada, la relación de compresión se de#radar!a, posiblemente
hasta el punto de que el flu*o de datos saliente fuese tan lar#o como el entrante.
Por tanto la si#uiente me*ora obvia fue construir una tabla estática a cada flu*o de
entrada único.
$l modelo basado en diccionario usa un códi#o simple para reemplazar
cadenas de s!mbolos+ los modelos estáticos #eneralmente codifican un s!mbolo a
la vez. $l esquema de compresión basada en diccionario utiliza un concepto
diferente. ee una entrada de datos y observa por #rupos de s!mbolos que
aparecen en el diccionario. 0i una cadena concuerda, un indicador o !ndice en el
diccionario puede salir en lu#ar del códi#o del s!mbolo.
Al#unos al#oritmos de compresión sin p%rdidas son los al#oritmos empel@
3iv, que incluyen 3, 3B y 3@4.
/I/T(#A/ #U,TI#(DIA Pgina 5
-
8/18/2019 Algoritmos de Comprensión de Datos
8/20
$ste sistema de compresión se usa en compresores de
archivo '/A/, #zip, bzip, zip, z, A/>, 1A( y de disco+ tambi%n en imá#enes
'P)?, /$( y en al#ún formato de audio 'CA;, DonEeyFs Audio(. $n v!deo es
menos común+ pueden ser usados para su captura y edición, pero no
comercializados para reproducción dom%stica.
$xisten distintos m%todos de compresión sin p%rdidas. Por e*emplo está la
compresión /$ o run@len#th encodin# 'utilizada para los archivos
-
8/18/2019 Algoritmos de Comprensión de Datos
9/20
a compresión con p%rdida acepta una p%rdida de datos para poder me*orar el factor de compresión. 0e aplica #eneralmente al almacenamiento di#ital dedatos analó#icos como ficheros de #ráficos y de sonidos. a #ran venta*a decomprensión con p%rdida es alcanzar una tasa de compresión más elevadas acosta de sufrir una p%rdida de información sobre la ima#en ori#inal.
M7+((- / 5()/-*21 5(1 7)*3
Compresión de imagen con pérdida
• "n m%todo consiste en reducir el espacio de color de la ima#en a los
colores más comunes dentro de la misma ima#en. $sto se utiliza a menudo en
imá#enes con formato ?GC y, a veces en imá#enes P)? para dar lu#ar a
archivos más pequeños. ;uando se utiliza en el tipo correcto de imá#enes y es
combinado con tramado, puede dar lu#ar a imá#enes casi id%nticas a los
ori#inales
A&'()*+( / C()/-*21 931
$l algoritmo de Huffman es un al#oritmo para la construcción de códi#os
de 1uffman, desarrollado por 6avid A. 1uffman en 5HI y descrito en A Method
for the Construction of Minimum-Redundancy Codes.5
$ste al#oritmo toma un alfabeto de n s!mbolos, *unto con sus frecuencias de
aparición asociadas, y produce un códi#o de 1uffman para ese alfabeto y esas
frecuencias.
$l al#oritmo de compresión sin p%rdida 1uffman se caracteriza por elempleo de un diccionario que se construye a partir de la naturaleza de los datos.
$s un al#oritmo de lon#itud variable, ya que el tamaño de la palabra para
cada valor está en función de las probabilidades del mismo, para la
descompresión de este tipo de al#oritmo es necesario que el sistema de recepción
/I/T(#A/ #U,TI#(DIA Pgina '
http://es.wikipedia.org/wiki/GIFhttp://es.wikipedia.org/wiki/PNGhttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Codificaci%C3%B3n_Huffmanhttp://es.wikipedia.org/wiki/Codificaci%C3%B3n_Huffmanhttp://es.wikipedia.org/wiki/David_A._Huffmanhttp://es.wikipedia.org/wiki/David_A._Huffmanhttp://es.wikipedia.org/wiki/1952http://es.wikipedia.org/wiki/Algoritmo_de_Huffman#cite_note-1http://es.wikipedia.org/wiki/Alfabetohttp://es.wikipedia.org/wiki/S%C3%ADmbolohttp://es.wikipedia.org/wiki/Frecuenciahttp://es.wikipedia.org/wiki/GIFhttp://es.wikipedia.org/wiki/PNGhttp://es.wikipedia.org/wiki/Algoritmohttp://es.wikipedia.org/wiki/Codificaci%C3%B3n_Huffmanhttp://es.wikipedia.org/wiki/Codificaci%C3%B3n_Huffmanhttp://es.wikipedia.org/wiki/David_A._Huffmanhttp://es.wikipedia.org/wiki/1952http://es.wikipedia.org/wiki/Algoritmo_de_Huffman#cite_note-1http://es.wikipedia.org/wiki/Alfabetohttp://es.wikipedia.org/wiki/S%C3%ADmbolohttp://es.wikipedia.org/wiki/Frecuencia
-
8/18/2019 Algoritmos de Comprensión de Datos
10/20
de datos conten#a el mismo diccionario que el sistema transmisión, ya que sin
este no es posible recuperar la información recibida.
D/-5)*5*21
$l al#oritmo consiste en la creación de un árbol binario que tiene cada uno
de los s!mbolos por ho*a, y construido de tal forma que si#ui%ndolo desde la ra!z a
cada una de sus ho*as se obtiene el códi#o 1uffman asociado.
5. 0e crean varios árboles, uno por cada uno de los s!mbolos del alfabeto,
consistiendo cada uno de los árboles en un nodo sin hi*os, y etiquetado
cada uno con su s!mbolo asociado y su frecuencia de aparición.
. 0e toman los dos árboles de menor frecuencia, y se unen creando un
nuevo árbol. a etiqueta de la ra!z será la suma de las frecuencias de las
ra!ces de los dos árboles que se unen, y cada uno de estos árboles será un
hi*o del nuevo árbol. :ambi%n se etiquetan las dos ramas del nuevo árbol&
con un 8 la de la izquierda, y con un 5 la de la derecha.
9. 0e repite el paso hasta que sólo quede un árbol.
;on este árbol se puede conocer el códi#o asociado a un s!mbolo, as!
como obtener el s!mbolo asociado a un determinado códi#o.
Para obtener el códi#o asociado a un s!mbolo se debe proceder del
si#uiente modo&
5. ;omenzar con un códi#o vac!o
. Gniciar el recorrido del árbol en la ho*a asociada al s!mbolo
9. ;omenzar un recorrido del árbol hacia arriba
J. ;ada vez que se suba un nivel, añadir al códi#o la etiqueta de la rama que
se ha recorrido
I. :ras lle#ar a la ra!z, invertir el códi#o
-. $l resultado es el códi#o 1uffman deseado
/I/T(#A/ #U,TI#(DIA Pgina *+
http://es.wikipedia.org/wiki/%C3%81rbol_binariohttp://es.wikipedia.org/wiki/%C3%81rbol_binario
-
8/18/2019 Algoritmos de Comprensión de Datos
11/20
Para obtener un s!mbolo a partir de un códi#o se debe hacer as!&
5. ;omenzar el recorrido del árbol en la ra!z de %ste
. $xtraer el primer s!mbolo del códi#o a descodificar
9. 6escender por la rama etiquetada con ese s!mbolo
J. =olver al paso hasta que se lle#ue a una ho*a, que será el s!mbolo
asociado al códi#o
$n la práctica, casi siempre se utiliza el árbol para obtener todos los
códi#os de una sola vez+ lue#o se #uardan en tablas y se descarta el árbol.
E;/&( / 9-(
a tabla describe el alfabeto a codificar, *unto con las frecuencias de sus
s!mbolos. $n el #ráfico se muestra el árbol construido a partir de este alfabeto
si#uiendo el al#oritmo descrito.
Krbol para construir el códi#o 1uffman.
0e puede ver con facilidad cuál es el códi#o del s!mbolo E& subiendo por el
árbol se recorren ramas etiquetadas con , y !+ por lo tanto, el códi#o es !.
/I/T(#A/ #U,TI#(DIA Pgina **
0!mbol
o
Crecuencia
A 8,5I
B 8,98
" 8,8
# 8,8I
E 8,5I
$ 8,8I
% 8,58
-
8/18/2019 Algoritmos de Comprensión de Datos
12/20
Para obtener el códi#o de # se recorren las ramas !, , y , por lo que el códi#o
es !.
a operación inversa tambi%n es fácil de realizar& dado el códi#o ! se
recorren desde la ra!z las ramas y !, obteni%ndose el s!mbolo ". Para
descodificar !! se recorren las ramas !, y !, obteni%ndose el s!mbolo A.
L**+35*(1/-
Para poder utilizar el al#oritmo de 1uffman es necesario conocer de
antemano las frecuencias de aparición de cada s!mbolo, y su eficiencia depende
de lo próximas a las frecuencias reales que sean las estimadas. Al#unas
implementaciones del al#oritmo de 1uffman son adaptativas, actualizando las
frecuencias de cada s!mbolo conforme recorre el texto.
a eficiencia de la codificación de 1uffman tambi%n depende del balance
que exista entre los hi*os de cada nodo del árbol, siendo más eficiente conforme
menor sea la diferencia de frecuencias entre los dos hi*os de cada nodo.
$*emplos&
a codificación binaria es un caso particular de la codificación de 1uffman
que ocurre cuando todos los s!mbolos del alfabeto tienen la mismafrecuencia. 0e tiene pues que la codificación binaria es la más eficiente
para cualquier número de s!mbolos equiprobables.
$l al#oritmo de 1uffman aplicado sobre un alfabeto de dos s!mbolos
asi#nará siempre un 5 al primero y un 8 al se#undo, independientemente de
la frecuencia de aparición de dichos s!mbolos. $n este caso nunca se
realiza compresión de los datos, mientras que otros al#oritmos s! podr!an
conse#uirlo.
"na manera de resolver este problema consiste en a#rupar los s!mbolos en
palabras antes de e*ecutar el al#oritmo. Por e*emplo, si se tiene la cadena de
lon#itud -J
/I/T(#A/ #U,TI#(DIA Pgina *
http://es.wikipedia.org/wiki/Algoritmos_Adaptativoshttp://es.wikipedia.org/wiki/Sistema_binariohttp://es.wikipedia.org/wiki/Sistema_binariohttp://es.wikipedia.org/wiki/Algoritmos_Adaptativoshttp://es.wikipedia.org/wiki/Sistema_binario
-
8/18/2019 Algoritmos de Comprensión de Datos
13/20
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAA<
$l al#oritmo de 1uffman aplicado únicamente a los s!mbolos devuelve el códi#o&
5555555555555555555555555555555555555555555555555555555555555558
:ambi%n de lon#itud -J. 0in embar#o, si antes de utilizar el al#oritmo, se
a#rupan los s!mbolos en las palabras &AA&, &AB& y &B& 'que se codifican como 5,
85 y 88(, el al#oritmo devuelve la si#uiente cadena&
555555555555555555555555555555585
Lue tiene lon#itud 99, la mitad que si no se hubiera a#rupado. 0i observa el árbol
de 1uffman, se puede comprobar que la diferencia de frecuencias entre las ramas
del árbol es menor que en el caso anterior.
C2*'(- 931 1
-
8/18/2019 Algoritmos de Comprensión de Datos
14/20
A&'()*+( / C()/-*21 RLE
a compresión de p!xeles es un m%todo que permite almacenar p!xeles deforma óptima& para una ima#en monocromática hay, por definición, sólo doscolores. Por lo tanto, se puede codificar un punto de la ima#en en un solo bit para#anar espacio en la memoria.
$l m%todo de compresión R'E 'Run Length Encoding , a vecesescrito RLC por Run Length Coding ( es utilizado por muchos formatos de ima#en'
-
8/18/2019 Algoritmos de Comprensión de Datos
15/20
o un desplazamiento de puntero sobre la ima#en de MM columnas e
QQ filas en la dirección de lectura '00 02 XX (.
Por lo tanto, no tiene sentido utilizar la compresión /$ excepto para datoscon diversos elementos repetidos de forma consecutiva, en imá#enes particularescon áreas #randes y uniformes. 0in embar#o, la venta*a de este m%todo es que esde fácil implementación.
$xisten alternativas en las que la ima#en está codificada en bloques dep!xeles, en filas o incluso en zi#za#.
a compresión /un en#th $ncodin# '/$( es una forma de compresión de
datos en la que secuencias de datos con el mismo valor consecutivas sonalmacenadas como un único valor más su recuento. $sto es más útil en datos quecontienen muchas de estas secuencias+ por e*emplo, #ráficos sencillos con áreasde color plano, como iconos y lo#otipos.
$l primer byte contiene un número que representa el número de veces queel carácter se repite en la trama, el se#undo byte contiene al propio carácter. $notros casos se codifican en un solo byte& 5 bit '8 o 5( y bits para especificar elnúmero de caracteres consecutivos.
a codificación run-!ength realiza una compresión de datos sin p%rdidas y
es muy utilizado en imá#enes de B bits indexadas 'en un principio fue utilizadopara imá#enes en blanco y ne#ro(. )o funciona tan bien en imá#enes donde var!aconstantemente el color de los p!xels como foto#raf!as, aunque >P$? lo utiliza deforma efectiva en los coeficientes que quedan despu%s de transformar y cuantificar bloques de imá#enes.
/I/T(#A/ #U,TI#(DIA Pgina *
http://es.wikipedia.org/wiki/Algoritmo_de_compresi%C3%B3n_sin_p%C3%A9rdidahttp://es.wikipedia.org/wiki/JPEGhttp://es.wikipedia.org/wiki/JPEGhttp://es.wikipedia.org/wiki/Algoritmo_de_compresi%C3%B3n_sin_p%C3%A9rdidahttp://es.wikipedia.org/wiki/JPEG
-
8/18/2019 Algoritmos de Comprensión de Datos
16/20
A&'()*+( / C()/-*21 S=311(131(
$n el campo de la compresión de datos, la codificación S(annon)$ano es
una t%cnica para construir un códi#o prefi*o basado en un con*unto de s!mbolos y
sus probabilidades 'estimadas o medidas(. )o es óptimo en el sentido de que noconsi#ue la menor lon#itud de palabra códi#o esperado posible como en la
codificación 1uffman+ aunque a diferencia de la codificación 1uffman, #arantiza
que todas las lon#itudes de palabras de códi#o están a un bit de su ideal teórico T
lo#P'x(.
a t%cnica fue propuesta por ;laude $lUood 0hannon, en N"na :eor!a
Datemática de la ;omunicaciónO, su art!culo de 5HJB introduciendo el campo de la
teor!a de la información. $l m%todo fue atribuido a /obert Cano, quien
posteriormente lo publicó como un informe t%cnico.
a codificación 0hannon@Cano no debe confundirse con la codificación
0hannon, m%todo de codificación usado para probar el teorema de 0hannon de la
codificación sin ruido, ni con la codificación 0hannon@Cano@$lias 'tambi%n
conocida como codificación $lias(, el precursor de la codificación aritm%tica.
$n la codificación 0hannon@Cano, los s!mbolos se ordenan del más al
menos probable, y se dividen en dos subcon*untos cuyas probabilidades totales
son tan próximas a ser i#uales como sea posible. A continuación todos loss!mbolos tendrán el primer d!#ito de sus códi#os asi#nados+ los del primer
subcon*unto recibirán el N8O y los del se#undo el N5O. Dientras exista al#ún
subcon*unto con más de un t%rmino, se repetirá el mismo proceso para determinar
los sucesivos d!#itos de sus códi#os.
;uando uno de los subcon*untos ha sido reducido a un s!mbolo, esto
si#nifica que el códi#o del s!mbolo es completo y que no formará el prefi*o del
códi#o de nin#ún otro s!mbolo.
$l al#oritmo funciona, y produce codificaciones de lon#itud variablebastante eficientes+ cuando los dos subcon*untos producidos por una división
tienen la misma probabilidad, ya que el bit de información usado para distin#uirlos
se usa más eficientemente.
/I/T(#A/ #U,TI#(DIA Pgina *!
http://es.wikipedia.org/wiki/C%C3%B3digo_prefijohttp://es.wikipedia.org/wiki/C%C3%B3digo_prefijohttp://es.wikipedia.org/wiki/C%C3%B3digo_prefijo
-
8/18/2019 Algoritmos de Comprensión de Datos
17/20
6esafortunadamente, 0hannon@Cano no produce siempre códi#os prefi*os
óptimos+ el con*unto de probabilidades V8.9I, 8.5, 8.5, 8.5-, 8.5IW es un e*emplo
de esto.
Por esta razón, 0hannon@Cano apenas se usa+ la codificación 1uffman es
casi tan computacionalmente simple y produce códi#os prefi*os que siempre
consi#uen la menor lon#itud esperada de palabra de códi#o, ba*o la restricción de
que cada s!mbolo es representado por un códi#o formado por un número inte#ral
de bits.
$sta es una restricción a menudo innecesaria, ya que los códi#os serán
empaquetados de un extremo a otro en lar#as secuencias. G consideramos #rupos
de códi#os en un instante, s!mbolo a s!mbolo la codificación 1uff sólo es óptima si
las probabilidades de que los s!mbolos sean independientes y están elevadas a un
medio, p.e., 57.
$n la mayor!a de las situaciones, la codificación aritm%tica puede producir
mayor compresión #eneral que 1uffman o que 0hannon@Cano, ya que puede
codificar en números fraccionarios de bits, más cercanos al contenido real de
información de cada s!mbolo.
0in embar#o, la codificación aritm%tica reemplazado a la de 1uffman de la
manera que esta sobrepasa a 0hannon@Cano, ya que la codificación aritm%tica es
más costosa computacionalmente y porque está su*eta a múltiples patentes.
a codificación 0hannon@Cano se usa en el m%todo de compresión
GDP26$, que es parte del formato de los archivos 3GP.
E& 3&'()*+( S=311(131(
"n árbol 0hannon@Cano se construye de acuerdo a una especificación
diseñada para definir una tabla de códi#os efectiva. $l al#oritmo actual es simple&
5. Para una lista de s!mbolos dada, crear su correspondiente lista de
probabilidades o de frecuencias de aparición de manera que se conozca la
frecuencia relativa de ocurrencia de cada s!mbolo.
/I/T(#A/ #U,TI#(DIA Pgina *5
-
8/18/2019 Algoritmos de Comprensión de Datos
18/20
. 2rdenar las listas de s!mbolos de acuerdo a la frecuencia, con los s!mbolos
de ocurrencia más frecuente a la izquierda y los menos comunes a la derecha.
9. 6ividir la lista en dos partes, haciendo la frecuencia total de la mitad
izquierda lo más próxima posible a la de la mitad derecha.
J. Asi#nar a la mitad izquierda el d!#ito binario N8O, y a la mitad derecha el
d!#ito N5O. $sto si#nifica que los códi#os para los s!mbolos en la primera mitad
empezarán con N8O, y que los códi#os de la se#unda mitad empezarán por N5O.
I. Aplicar recursivamente los pasos 9 y J a cada una de las dos mitades,
subdividi%ndolas en #rupos y añadiendo bits a los códi#os hasta que cada s!mbolo
se corresponde con una ho*a del árbol.
E;/&(
$l e*emplo muestra la construcción de un códi#o 0hannon para un pequeño
alfabeto. os cinco s!mbolos que pueden ser codificados tienen la si#uiente
frecuencia.
S?@(&( A B C D E
1rec%encia * 5 ! !
:odos los s!mbolos son ordenados por frecuencia, de izquierda a derecha.
6ividiendo entre < y ; obtenemos un total de 5 en el #rupo de la derecha y en
el de la izquierda. $sto minimiza la diferencia total entre los dos #rupos. ;on esta
división, A y < tendrán ambas un códi#o que empezará con el bit 8, y ;, 6 y $ con
el bit 5.
0e#uidamente, la mitad izquierda del árbol se subdivide en A y
-
8/18/2019 Algoritmos de Comprensión de Datos
19/20
Código ++ +* *+ **+ ***
;odificación 0hannon@Cano, posee un códi#o prefi*o basado en un con*untode s!mbolos y sus probabilidades, #arantiza que todas las lon#itudes de palabrasde códi#o están a un bit de su ideal teórico T lo# P'x(. Cue propuesta por ;laude$lUood 0hannon, en su art!culo N"na :eor!a Datemática de la ;omunicaciónO, de5HJB. $l m%todo fue atribuido a /obert Cano, quien posteriormente lo publicócomo un informe t%cnico.
CONCLUSION.
-
8/18/2019 Algoritmos de Comprensión de Datos
20/20
apropiada basada en esas probabilidades.
os conceptos de mode!o y codificación son cosas diferentes. "sualmentela #ente cae en el error de emplear el t%rmino de codificación para referirse a
todo el proceso de compresión de datos en vez de considerarlo como un simplecomponente de ese proceso.
Por e*emplo, codificación 1uffman y codificación /un@en#th se suelecaer en el error de ser descritas como t%cnicas de compresión de datos, cuandode hecho solo son m%todos de codificación usados en con*unción con un modelode compresión de datos.
6entro del presente traba*o se describió todo las caracter!sticas de losal#oritmos.
RE>ERENCIAS ELECTRNICAS Anónimo tomado en&
Cecha& 8789785I
http&77es.UiEipedia.or#7UiEi7Al#oritmoXdeX1uffmanhttp&77es.UiEipedia.or#7UiEi7/un@len#thXencodin#http&77es.UiEipedia.or#7UiEi7;odificacionX0hannon@Canohttp&77es.UiEipedia.or#7UiEi7;ate#or;9A6a&Al#oritmosXdeXcompresi;9