Algoritmos de Comprensión de Datos

  • Upload
    joaquin

  • View
    225

  • Download
    0

Embed Size (px)

Citation preview

  • 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