Você está na página 1de 17

1

Y CODIFICACION TEOR IA DE LA INFORMACION

C andido Pi neiro G omez

Cap tulo 1 Compresi on de datos


En la sociedad de la informaci on en la que vivimos actualmente, en cualquier actividad cient co-t ecnica o profesional se plantea la necesidad de transmitir o almacenar un gran n umero de datos. Las t ecnicas de compresi on de datos tratan de reducir el n umero de bits necesarios para representar la informaci on. Para una mejor comprensi on de la magnitud del problema, pueden servir los ejemplos siguientes: 1) para representar digitalmente un segundo de video, sin compresi on, se necesitan (en formato CCIR 601) m as de 20 megabits y 2) para representar 2 minutos de un CD de m usica se requieren m as de 84 millones de bits. Es cierto que se han producido signicativos avances tecnol ogicos que permiten transmitir o almacenar cantidades de informaci on cada vez m as grandes. Sin embargo, parece que las necesidades crecen con mayor rapidez que los avances tecnol ogicos en cuesti on y, por ello, las t ecnicas de compresi on se hacen imprescindibles. Uno de los primeros ejemplos de compresi on de datos lo constituye el c odigo Morse, desarrollado por S. Morse a mediados del siglo XIX. Las letras se codican en el alfabeto binario {, }, atendiendo a las frecuencias de las letras del alfabeto ingl es: las letras con mayor frecuencia de aparici on se codican con palabras-c odigo de menor longitud. El c odigo Braille, que data aproximadamente de la misma epoca, emplea matrices de 2 3 puntos, atendiendo a las frecuencias de las palabras. Esta idea es la base de todos los 2

DE DATOS CAP ITULO 1. COMPRESION

m etodos de compresi on de datos en los que los s mbolos a codicar aparecen con frecuencias diferentes. En los temas que siguen estudiaremos los m etodos m as importantes de esta clase: los c odigo de Human, el c odigo aritm etico y la codicaci on mediante diccionarios. Pero existen otros tipos de estructura en los datos que pueden ser usados para conseguir compresi on. As , por ejemplo, en una se nal de video hay una considerable cantidad de informaci on que es irrelevante desde el punto de vista de su percepci on por el ojo humano y que, por tanto, podr a ser eliminada para conseguir compresi on. En este tema vamos a considerar nociones y terminolog a b asicas sobre compresi on de datos y algunas de las t ecnicas de compresi on m as simples.

1.1.

T ecnicas de compresi on reversibles e irreversibles

Todo algoritmo de compresi on consta, de hecho, de dos algoritmos: el de compresi on y el de reconstrucci on. El primero, a partir de los datos de entrada X , genera una representaci on Xc que necesita un menor n umero de bits, mientras que el segundo genera la reconstrucci on Y . Las t ecnicas de compresi on se suelen clasicar en dos grandes clases: t ecnicas de compresi on sin p erdida de informaci on o reversibles (en ingl es, lossless compression) y t ecnicas de compresi on con p erdida de informaci on o irreversibles (en ingl es, lossy compression). En las primeras X es igual a Y , por el contrario, en las segundas X es diferente de Y , pero esto se compensa con el hecho de que por lo general proporcionan mayor compresi on. El empleo de unas u otras depende del problema concreto que estemos tratando. Por ejemplo, si se trata de compresi on de texto, deberemos usar t ecnicas del primer tipo, pues una m nima diferencia puede dar lugar a un signicado completamente distinto. En otras aplicaciones, la p erdida de parte de la informaci on contenida en los datos no es un problema. Este es el caso, por ejemplo, cuando se trata de ver un video. Por lo general, no es importante que la reconstrucci on sea difer-

DE DATOS CAP ITULO 1. COMPRESION

ente del original, siempre que las diferencias no sobrepasen ciertos l mites. Para evaluar un m etodo de compresi on podemos recurrir a caracter sticas como las siguientes: complejidad del algoritmo, espacio de memoria requerido para su implementaci on, rapidez con que se desarrolla en una m aquina dada, cantidad de compresi on que consigue y c omo de pr oximos est an los datos de su reconstrucci on. Nosotros s olo vamos a considerar los dos u ltimos aspectos. Una forma de evaluar una t ecnica concreta de compresi on consiste en calcular la raz on entre el n umero de bits necesarios antes de la compresi on y el n umero necesario de bits despu es de la compresi on. Llamaremos a este n umero raz on de compresi on. La compresi on es tanto mejor cuanto mayor sea este n umero. Pero cuando la compresi on supone p erdida de informaci on, se hace necesario considerar tambi en la diferencia entre el original y la reconstrucci on, que se denomina distorsi on. C omo medir la distorsi on depende en buena parte de la naturaleza de los datos a comprimir y de qui en lo hace. Dos medidas usadas son el error cuadr atico medio y el error medio absoluto. Si (xn ) es la sucesi on formada por los datos e (yn ) es la sucesi on reconstruida, el error medio cuadr atico tiene la forma N 1 2 d = (xn yn )2 N n=1 y el error medio absoluto 1 d1 = N
N

|x n y n |
n=1

Cuando estamos interesados en el tama no del error relativo a los datos, se 2 2 2 considera el cociente /d ( es la varianza de los datos). Este cociente se denomina medida SNR (signal to noise ratio). A menudo, es medida sobre una escala logar tmica y adopta la forma SNR = 10 log10 2 , 2 d

DE DATOS CAP ITULO 1. COMPRESION

La unidad es el decibelio (dB). Tambi en se usan otros t erminos como delidad y calidad. Cuando la diferencia entre el original y la reconstrucci on es muy peque na diremos que la delidad o calidad de la reconstrucci on es alta.

1.2.

C odigos de datos

Si vamos a estudiar t ecnicas de compresi on de datos, parece obvio que debemos empezar familiariz andonos con los llamados c odigos de datos (data codes) m as usuales. Examinaremos brevemente los cuatro m as populares: el c odigo de Baudot y los c odigos BCD, EBCDIC y ASCII. I) El c odigo de Baudot. Fue creado para conseguir que la transmisi on de la informaci on por medio del tel egrafo fuera m as precisa y para que los teleimpresores (teletypes) funcionaran con mayor rapidez. Se trata de un c odigo binario de longitud 5 y, por tanto, s olo puede representar un conjunto de 32 s mbolos diferentes. Sin embargo, en un texto podemos encontrar letras del alfabeto, d gitos num ericos y signos de puntuaci on. Por ello, se hace necesario aumentar el tama no del c odigo. Para extender el c odigo usaban dos caracteres (llamados letter shift y gure shift) de la siguiente manera: una cadena de 5 ceros advert a al receptor que los caracteres siguientes deb an ser interpretados como letras y una cadena con 5 unos indicaba que los caracteres siguientes eran num ericos o s mbolos. II)Los c odigos BCD y EBCDIC. BCD son las iniciales de binary-coded decimal. Usa 6 bits y, por tanto, permite codicar un conjunto de hasta 64 s mbolos. En la tabla siguiente se recogen las representaciones binarias de las letras del alfabeto ingl es y de los d gitos.

DE DATOS CAP ITULO 1. COMPRESION b6 0 0 0 0 0 0 0 0 0 0 b6 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 b5 0 0 0 0 0 0 0 0 0 1 b5 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 b4 0 0 0 0 0 0 0 1 1 0 b4 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 b3 0 0 0 1 1 1 1 0 0 0 b3 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 b2 0 1 1 0 0 1 1 0 0 0 b2 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 b1 0 0 1 0 1 0 1 0 1 1 b1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Car acter A B C D E F G H I J Car acter K L M N O P Q R S T U V W X Y Z

DE DATOS CAP ITULO 1. COMPRESION b6 1 1 1 1 1 1 1 1 1 1 b5 1 1 1 1 1 1 1 1 1 1 b4 0 1 0 0 0 0 0 0 1 1 b3 0 0 0 0 1 1 1 1 0 0 b2 0 0 1 1 0 0 1 1 0 0 b1 0 1 0 1 0 1 0 1 0 1 Car acter 0 1 2 3 4 5 6 7 8 9

Fue uno de los primeros c odigos usados para expresar los datos en una forma aceptable para los ordenadores. Adem as de las letras, d gitos y signos de puntuaci on, se precisan otros caracteres de control como los que indican el n de un p arrafo, el n del texto, los tabuladores vertical y horizontal, etc. (tambi en se necesitan caracteres especiales para indicar que ha habido compresi on y de qu e tipo, trataremos de esto m as adelante). Por ello, se hace necesario ampliar el c odigo de datos y como una extensi on del c odigo BCD es como surge el c odigo EBCDIC. Su nombre est a compuesto por las iniciales de extended binary-coded decimal interchange code, usa 8 bits y, por tanto, permite representar 256 caracteres diferentes. Hay cadenas de 8 bits que quedan sin asignar y pueden ser usadas para indicar que se ha empleado alg un sistema de compresi on. III) El c odigo ASCII. En un momento dado, la diversidad de c odigos de datos en uso hac a sumamente conveniente intentar el establecimiento de uno est andar. Es as como surge el c odigo de datos ASCII (American Standard Code for Information Interchange). Se trata de un c odigo de 7 bits. A continuaci on se recogen los 95 caracteres que se denominan imprimibles (letras, d gitos y signos de puntuci on, principalmente) con su representaci on decimal (los enteros desde 33 hasta 126). Al expresar estos n umeros en la base 2, se obtienen las representaciones binarias de los caracteres correspondientes.

DE DATOS CAP ITULO 1. COMPRESION

As , por ejemplo, al s mbolo + le corresponde la cadena binaria 0101011, que no es otra cosa que 43 en base 2. Car acter Decimal Car acter Decimal Car acter Decimal Car acter Decimal Car acter Decimal Car acter Decimal Car acter Decimal ! 33 / 47 = 61 K 75 Y 89 g 103 s 115 34 0 48 > 62 L 76 Z 90 h 104 t 116 # 35 1 49 ? 63 M 77 [ 91 $ 36 2 50 @ 64 N 78 \ 92 % 37 3 51 A 65 = 79 ] 93 j 106 v 118 & 38 4 52 B 66 P 80 94 k 107 w 119 39 5 53 C 67 Q 81 ( 40 6 54 D 68 R 82 ` 96 ) 41 7 55 E 69 S 83 a 97 * 42 8 56 F 70 T 84 b 98 n 110 z 122 + 43 9 57 G 71 U 85 c 99 o 111 { 123 , 44 : 58 H 72 V 86 d 100 p 112 | 124 45 ; 59 I 73 W 87 e 101 q 113 } 125 . 46 < 60 J 74 X 88 f 102 r 114 126

95 l 108 x 120

i 105 u 117

m 109 y 121

En las tablas anteriores falta por incluir el espacio, que se corresponde con el n umero 32. Otra versi on popular del c odigo ASCII usada en los ordenadores personales es el denominado c odigo extendido ASCII que emplea 8 bits. Los primeros 128 son exactamente los mismos en uno y otro. Los otros s mbolos se corresponden con los enteros desde 128 hasta 255, que en binario se expresan con 8 bits. La tabla siguiente muestra los n umeros que se corresponden con las letras griegas. Car acter Decimal 224 225 226 227 228 229 230 231 232 233 234 235

DE DATOS CAP ITULO 1. COMPRESION

1.3.

Modelado y codicaci on

En el desarrollo de un m etodo de compresi on, por lo general, se pueden distinguir dos fases. La primera se llama modelado y en ella se trata de descubrir toda la redundancia existente en los datos y de su descripci on con un modelo apropiado. La segunda fase se llama codicaci on. En ella tratamos de codicar, con un alfabeto binario, el modelo y las diferencias con los datos.

Ejemplos 1.3.1. a) Consideremos la sucesi on de n umeros 6, 7, 7, 7, 8, 9, 10, 11, 13. Supongamos que se desea transmitir o almacenar estos n umeros. Al ser en total 9, si los codicamos con cadenas binarias de igual longitud se precisan cadenas de 4 bits por n umero. Entonces la sucesi on completa precisar a de 4 9 = 36 bits. Pero, en lugar de esto, vamos a explotar la estructura de los datos para conseguir compresi on. N otese que el modelo xn = n + 5 n = 1, 2, 3, ... puede servir para nuestro objetivo. Las diferencias entre el modelo y los datos es dn = xn xn : 0, 0, 1, 2, 2, 2, 2, 2, 1. La sucesi on residual s olo contiene 3 n umeros diferentes {2, 1, 0}, que pueden ser codicados con cadenas binarias de longitud 2. Por tanto, con 18 bits podemos codicar la sucesi on de diferencias, a lo que hay que a nadir los bits necesarios para el modelo. b) Consideremos ahora la sucesi on 10, 11, 12, 9, 8, 9, 12, 13, 12. En este caso se observa que cada t ermino de la sucesi on es cercano al anterior. Entonces un modelo apropiado para representar la sucesi on consiste en

DE DATOS CAP ITULO 1. COMPRESION reejar el primero seguido de las diferencias de cada uno al anterior 10, 1, 1, 3, 1, 1, 3, 1, 1.

10

Vemos que hay s olo 4 diferencias distintas, por lo que nuevamente estas pueden ser codicadas con cadenas binarias de longitud 2. Esta idea es la base de un m etodo de compresi on que ser a estudiado en un tema posterior y que se denomina compresi on diferencial. Un tipo diferente de redundancia es la de car acter estad stico. A menudo, especialmente cuando tratamos de comprimir textos, la fuente genera los s mbolos con diferente frecuencia y, como ya hemos dicho, este hecho puede ser explotado asignando palabras-c odigo de menor longitud a los s mbolos con mayor frecuencia. En el caso de textos existe, adem as, otra forma de redundancia: hay grupos de letras que se repiten con gran frecuencia. Una forma de aprovechar esta circunstancia consiste en la elaboraci on de una lista o diccionario con las combinaciones m as frecuentes de letras del alfabeto fuente y las palabrasc odigo correspondientes. El diccionario puede ser est atico o din amico. Cuando se tiene un buen conocimiento a priori de la fuente en cuesti on, se utiliza un diccionario est atico. Por ejemplo, si se desea comprimir los datos de los estudiantes de una universidad, hay palabras como estudiante, nombre, cr editos, etc que ser an muy frecuentes. Por el contrario, si no se dispone de ese conocimiento previo de la fuente, tendremos que adquirirlo de alg un modo en el momento de la codicaci on. Esta es la idea clave para la elaboraci on de un diccionario din amico.

1.4.

Algunas de las primeras t ecnicas de compresi on

Vamos a ver algunos de los m etodos (nada sosticados) que se empleaban antes de que se desarrollara una teor a elaborada de la compresi on de

DE DATOS CAP ITULO 1. COMPRESION

11

datos. Estos m etodos no tienen por qu e aplicarse individualmente, sino que a menudo se usan conjuntamente dos o m as de ellos. En general, cualquier sistema de compresi on consta de varios niveles y en el primer nivel, en ocasiones, se siguen usando algunas de las t ecnicas que vamos a desarrollar a continuaci on. Todos se caracterizan porque se usan c odigos de longitud constante, en contraposici on a los m etodos que veremos en los cap tulos posteriores, y por la necesidad de usar un s mbolo especial para indicar al receptor que los bits siguientes son el resultado de haber aplicado a los datos originales un determinado m etodo de compresi on. Por lo general, este s mbolo especial, en binario, es una de las cadenas del c odigo de datos usado que quedan sin asignar (lo que ocurre, por ejemplo, en el c odigo EBCDIC) o bien un s mbolo que normalmente no aparece en el tipo de datos en cuesti on. En concreto, si se quiere comprimir texto en ingl es, lo m as apropiado es escoger Z o Q pues son muy infrecuentes. En estos casos, debemos asegurarnos de que realmente escogemos un s mbolo que no aparece en el texto. Otra forma de proceder, en los casos de los c odigos ASCII y EBCDIC, consiste en el uso de la capacidad de redenir caracteres mediante la utilizaci on de los caracteres SI (shift in) y SO (shift out) de la siguiente forma. SI indicar a que los caracteres que siguen hasta el pr oximo SO tienen nuevos signicados representados por un conjunto de caracteres que se ha denido.

1.5.

Supresi on de blancos

Se trata de una de las primeras t ecnicas de compresi on de datos. Hoy se emplea todav a en el protocolo de transmisi on IBM 3780 BISYNC. El m etodo consiste en ir localizando cadenas de blancos consecutivos y sustituirlas por un par de s mbolos que se forma del siguiente modo: El primero es el car acter especial que indica que se ha usado una t ecnica de compresi on y el segundo es la longitud de la cadena de blancos en cuesti on. Recordemos que

DE DATOS CAP ITULO 1. COMPRESION

12

el s mbolo especial para indicar compresi on puede ser: a) un car acter que no est a adjudicado, si lo hay en el c odigo de datos que usamos, b) un car acter redenido SI IC SO y c) un s mbolo cualquiera del que estemos seguros que no aparece entre los datos a comprimir. En los casos a) y c) el m etodo produce compresi on al aplicarlo a cualquier cadena de nulos de longitud mayor o igual que 3; por el contrario, en el caso b) s olo se aplicar a a las cadenas de al menos 5 nulos.

Ejemplo 1.5.1. Aplicar el m etodo de supresi on de nulos a la cadena fuente A B C D A, suponiendo que usamos un car acter redenido para indicar compresi on. La cadena comprimida ser a: A B A SI C IC SO D A, donde C es el contador de nulos (5, en nuestro caso).

1.6.

El m etodo RLC

RLC son las iniciales de Run Length Coding. Se trata de una generalizaci on de la t ecnica anterior en el sentido de que reduce cada cadena de s mbolos consecutivos iguales. Localizada una de estas cadenas, se procede a sustituirla por una terna formada por un s mbolo especial, para indicar que se ha realizado la compresi on, el s mbolo que se repite en la cadena en cuesti on y la longitud de esta.

Ejemplo 1.6.1. Consideremos la cadena de texto AAAAABBBBBB. Por el m etodo RLC se sustituir a por Sc A5Sc B 6. La cadena sin comprimir consta de 7 11 = 77 bits en el c odigo ASCII. La cadena comprimida ocupar a 7 6 = 42.

DE DATOS CAP ITULO 1. COMPRESION

13

1.7.

Sustituci on de las palabras m as frecuentes

Dependiendo de la naturaleza de los datos a comprimir, este m etodo establece una tabla de dos columnas. La primera consta de las palabras m as frecuentes y la segunda de las cadenas binarias que sustituir an a las referidas palabras. Un ejemplo puede ayudar a comprender mejor el m etodo. Supongamos que deseamos comprimir un programa de FORTRAN. Palabras como FORMAT, DO, WRITE, etc aparecer an a menudo. Entonces ,en lugar de transmitir s mbolo a s mbolo una de estas palabras cada vez que aparece, se transmite una cadena binaria del c odigo de datos que queda sin asignar. Si usamos el c odigo ASCII, la palabra WRITE requiere 5 7 = 35 bits sin comprimir (cada vez que aparece) y comprimida 7 bits. Cuando se trata de comprimir un texto en ingl es, palabras como the, and, that,etc. son muy frecuentes y estar an entre las escogidas para formar la tabla de palabras que ser an sustituidas. Esta t ecnica puede considerarse como la base de las m as modernas t ecnicas de compresi on de datos mediante diccionarios, que ser an estudiadas en un tema posterior.

1.8.

El m etodo BIT-MAPPING

Esta t ecnica se usa cuando en los datos hay un determinado s mbolo que aparece un gran n umero de veces (por ejemplo, los blancos). Se consideran bloques de 8 s mbolos y con cada bloque se opera de la forma siguiente. Con una aplicaci on que toma s olo los valores 0 o 1, de ah el nombre del m etodo, se indica la ausencia o la presencia del s mbolo en cuesti on en el bloque de 8 s mbolos.

Ejemplo 1.8.1. Supongamos que se desea aplicar esta t ecnica a la cadena

DE DATOS CAP ITULO 1. COMPRESION

14

de texto siguiente: I-am-a-boy.H. La cadena contiene 16 s mbolos de los cuales 7 son blancos (denotados por -). La cadena comprimida tendr a el siguiente aspecto: <10110101>Iamab<11100100>oy.H, que contiene 9 s mbolos m as las 2 cadenas de 8 bits que representan a las aplicaciones bit. La principal dicultad de esta t ecnica radica en la necesidad de desarrollar un m etodo para reconocer si un car acter es una aplicaci on bit o un dato. Hay una forma f acil de hacer esto, aunque se consigue una compresi on menor. Se considerar an bloques de 7 datos y de este modo las aplicaciones bit se podr an indicar como una cadena binaria de longitud 7 Si usamos el c odigo ASCII de 8 bits y todos los datos se pueden codicar con una cadena binaria que comienza con un 0, entonces a la aplicaci on bit puede a nadirse un 1 a la izquierda y, de esta forma, tanto los datos como las aplicaciones bit se codican como una cadena binaria de 8 bits. Los datos comienzan con un 0 y las aplicaciones con un 1. Encontrado un blanco, se construye la aplicaci on bit que le corresponde a la cadena de 7 s mbolos formada por el blanco y los 6 s mbolos siguientes en el mensaje y se codica con 1 delante. Este hecho es clave pues advierte al decodicador que dicha cadena no corresponde a un s mbolo imprimible sino que se trata del c odigo que le corresponde a una aplicaci on bit.

1.9.

Compresi on por reducci on a la mitad

En ingl es, esta t ecnica se denomina half-byte packing. En cierto sentido es una t ecnica que se deriva del m etodo anterior. Puede ser u til para la compresi on de datos de diversa composici on pero, para simplicar, vamos a suponer que en los datos aparecen en una gran proporci on n umeros, los s mbolos + , -, * y / para las operaciones aritm eticas, la coma , (para marcar las unidades de millar) el punto . para la parte decimal, el signo del d olar $ y, nalmente, sp para el espacio.

DE DATOS CAP ITULO 1. COMPRESION

15

Este es obviamente el caso de los datos contables. Esta t ecnica se basa en la forma particular que adoptan estos s mbolos en el sistema ASCII (en binario), lo que recogemos en la tabla siguiente. Binario 011 0000 011 0001 011 0010 011 0011 011 0100 011 0101 011 0110 011 0111 011 1000 S mbolo 0 1 2 3 4 5 6 7 8 Binario 011 1001 010 0100 010 1100 010 1110 010 1010 010 1011 010 1101 010 0000 010 1111 S mbolo 9 $ , . * + sp /

Si examinamos las tablas anteriores, vemos que en la primera todos los s mbolos tienen los tres primeros bits por la izquierda iguales (011), mientras que en la segunda todos empiezan por 010. Por ello, se ocurre prescindir de los tres primeros bits para as poder representar estos s mbolos con s olo 4 bits. Sin embargo, nos encontramos con la dicultad de que dos de estos s mbolos (por ejemplo, $ y 4) tendr an la misma representaci on en 4 bits: 0100. De todas formas, podemos representar este grupo reducido de 18 s mbolos con 4 bits si renunciamos a un par de ellos y redenimos los 16 restantes como cadenas de 4 bits. Una posibilidad podr a ser la siguiente:

DE DATOS CAP ITULO 1. COMPRESION

16

Binario 0000 0001 0010 0011 0100 0101 0110 0111

S mbolo 0 1 2 3 4 5 6 7

Binario 1000 1001 1010 1011 1100 1101 1110 1111

S mbolo 8 9 $ , . * + -

Una vez establecida la tabla con las nuevas representaciones de 4 bits del conjunto de los 16 s mbolos que aparecen con mayor frecuencia en un documento nanciero o contable, hay varias formas de realizar la compresi on, siendo la m as usual la que exponemos a continuaci on, considerando un ejemplo. Supongamos que se desea comprimir la cadena num erica 8 0 0 3 4 1 1. En el c odigo ASCII de 7 bits tendr a la forma 0111000 0110000 0110000 0110011 0110100 0110001 0110001. Mientras que si realizamos la compresi on de acuerdo con la t ecnica half-Byte packing, la cadena comprimida adopta la forma siguiente xxxxxxx 0111 1000 0000 0000 0011 0100 0001 0001. La cadena de 7 bits xxxxxxx es la representaci on binaria del s mbolo especial que indica que se ha realizado la compresi on. Este s mbolo podr a ser la tilde (126 en el c odigo ASCII), por tratarse de un s mbolo que lo usual es que no aparezca en un documento como los que estamos considerando. Seguidamente, gura un contador que indica el n umero de s mbolos codicados que aparecen a continuaci on, 7 en nuestro ejemplo, o 0111 en binario con 4 bits.

DE DATOS CAP ITULO 1. COMPRESION

17

Finalmente aparecen las cadenas de 4 bits que sustituyen a cada uno de los s mbolos que componen la cadena a comprimir. Es importante se nalar que el contador puede tomar como m aximo el valor 15. De todas formas, veremos que hay la posibilidad de mejorar esta circunstancia, pero previamente vamos a calcular la raz on de compresi on. Si n es el n umero de s mbolos de la cadena a comprimir, entonces 7n es el n umero total de bits si la expresamos en el c odigo ASCII de 7 bits. Por su parte, la cadena comprimida consta de 7+4+4n bits. Por tanto, la raz on de compresi on es r = 7n/(4n + 11). Para que haya compresi on debe ser r > 1, lo que implica que n 4. Esto nos dice que el m etodo s olo es efectivo si se comprimen cadenas con 4 s mbolos o m as. Entonces cabe la posibilidad de establecer que el contador marque cero cuando la cadena comprimida sea de longitud 4 y 15 cuando la cadena sea de 19 s mbolos.

1.10.

Pr acticas de Programaci on

1. Elaborar un programa de Matlab para comprimir un texto por uno de los m etodos siguientes: a) Supresi on de blancos. b) Run Length c) Bit mapping d) Half-byte packing

Você também pode gostar