Discussion:
obtener el ratio máximo de compresión de un programa
(demasiado antiguo para responder)
GoLiArDo
2005-05-17 18:42:15 UTC
Permalink
hola, en un examen con un programa en c pregunta cuál es el ratio máximo de
compresión que se puede lograr.

No sé como se obtiene y he mirao la bibliografía y tampoco he visto nada

alguien me lo sabría explicar

gracias y saludos
JFL
2005-05-18 10:26:15 UTC
Permalink
Post by GoLiArDo
hola, en un examen con un programa en c pregunta cuál es el ratio máximo de
compresión que se puede lograr.
No sé como se obtiene y he mirao la bibliografía y tampoco he visto nada
alguien me lo sabría explicar
gracias y saludos
La compresion siempre depende de la entropia de los datos a comprimir.
De hecho dicha entropía es el limite de la compresion (no se puede
comprimir un mensaje mas allá de la entropia de este). Y no depende de
si está escrito en C, claro.

aunque siempre puede pasar que hayas leido mal la pregunta del examen ;)
Oscar Garcia
2005-05-18 10:47:04 UTC
Permalink
El Tue, 17 May 2005 20:42:15 +0200, "GoLiArDo"
Post by GoLiArDo
hola, en un examen con un programa en c pregunta cuál es el ratio máximo de
compresión que se puede lograr.
No sé como se obtiene y he mirao la bibliografía y tampoco he visto nada
Tal y como dice JFL, dependiendo de la entropía una secuencia de datos
puede comprimirse más o menos usando métodos estadísticos. ¿Qué método
estás analizando?.

Hay métodos que pueden ser analizados midiendo el peor y mejor caso y
así analizar la sobre carga de cabeceras de compresión, etc... Si ese
es tu caso expón el método o péganos el código del algoritmo.

Un saludo.
--
Óscar Javier García Baudet
LinaresDigital
http://redstar.linaresdigital.com/
Antoine Leca
2005-05-18 11:40:41 UTC
Permalink
Post by GoLiArDo
hola, en un examen con un programa en c pregunta cuál es el ratio
máximo de compresión que se puede lograr.
Si redondeas, puede ser del 100%.

[ La pregunta sobre el lenguaje C ha sido tan comprimida que no queda ni
rastro. ]

Antoine
Zephryn Xirdal
2005-05-18 11:51:59 UTC
Permalink
Post by Antoine Leca
=
hola, en un examen con un programa en c pregunta cu=E1l es el ratio
m=E1ximo de compresi=F3n que se puede lograr.
Si redondeas, puede ser del 100%.
[ La pregunta sobre el lenguaje C ha sido tan comprimida que no queda =
ni
Post by Antoine Leca
rastro. ]
Antoine
Yo conoc=ED a un ex-compa=F1ero de trabajo que conoci=F3 a un chaval que=
hab=EDa =

hecho un compresor que comprim=EDa SIEMRE al 50%. Le faltaba por hacer e=
l =

descompresor.

Menuda jart=E1 a reir, cuando le dijimos al chaval que pasara su propio =
=

compresor por el compresor hasta que llegara a 1 byte de tama=F1o.

XDDDDDDDDDDDDDDDD
GoLiArDo
2005-05-18 12:39:05 UTC
Permalink
Post by GoLiArDo
hola, en un examen con un programa en c pregunta cuál es el ratio máximo
de compresión que se puede lograr.
No sé como se obtiene y he mirao la bibliografía y tampoco he visto nada
alguien me lo sabría explicar
gracias y saludos
perdonad mi ignorancia, pero no se lo que es la entropía de los datos.

La pregunta lógicamente esta relacionada con el código del programa que no
lo había leido muy bien.

El código del programa lo que hace es comprimir un archivo ASCII texto
mediante la creación de un diccionario dinámico basado en los 128 diagramas
más frecuentes y sustituyendolo por los 128 caracteres ASCII extendidos. El
ratio de compresión debe de ser debido a la tabla que crea el programa.

Muchas gracias por responder
JFL
2005-05-18 16:01:46 UTC
Permalink
Post by GoLiArDo
Post by GoLiArDo
hola, en un examen con un programa en c pregunta cuál es el ratio máximo
de compresión que se puede lograr.
No sé como se obtiene y he mirao la bibliografía y tampoco he visto nada
alguien me lo sabría explicar
gracias y saludos
perdonad mi ignorancia, pero no se lo que es la entropía de los datos.
La pregunta lógicamente esta relacionada con el código del programa que no
lo había leido muy bien.
El código del programa lo que hace es comprimir un archivo ASCII texto
mediante la creación de un diccionario dinámico basado en los 128 diagramas
más frecuentes y sustituyendolo por los 128 caracteres ASCII extendidos. El
ratio de compresión debe de ser debido a la tabla que crea el programa.
Muchas gracias por responder
siguen faltando datos. Asi a bote pronto diria que es una codificacion
de Huffman, pero no dices si los bloques tienen el mismo tamaño, si hay
que tener en cuenta todo el alfabeto, etc. De todas formas depende del
texto ASCII que quieras comprimir: puede ir desde compresion 0 (texto
completamente aleatorio) a compresion 99.9% (imaginate que todo el texto
son 'a').
Antoine Leca
2005-05-19 11:43:17 UTC
Permalink
Post by JFL
Post by GoLiArDo
El código del programa lo que hace es comprimir un archivo ASCII
texto mediante la creación de un diccionario dinámico basado en los
128 diagramas más frecuentes y sustituyendolo por los 128 caracteres
ASCII extendidos. El ratio de compresión debe de ser debido a la
tabla que crea el programa.
siguen faltando datos.
Cierto, el tamaño del archivo por ejemplo, y más cosas.
Post by JFL
compresion 99.9% (imaginate que todo el texto son 'a').
Pués, si el archivo original es de 2 carácteres, sigue compresión 0; con 4
('aaaa') conseguirá 25% ('aa\200'); con 6 será 33%, con 10 será 50% o 40% si
es recursivo ('aa\200\200\201') o no. Incluso puede ser 60% con el truco de
Hufmann ('aa\201\200').

Sin el truco, al máximo el resultado tiene que ser
'aa\200\200\201\201\202...\377', comprimido 2+2*127+1=257, extendido el
largo serían un número de 39 dígitos, entonces el ratio de 99.99 con al
menos 33 nueves detras de la coma.
Con el truco, al máximo el resultaso sería 'aa\377', solo 3 carácteres,
extendido serían 3.4e38, el ratio alcanza 36 nueves detrás de la coma.
Tales archivos expandidos no caben en ningun disco duro de este decada, es
todo teórico.

Ahora, si el archivo original tiene largo impar, con el dicho no sé como
recontruirlo. Tampoco sé que pasaría con un archivo de tipo 'aaaaababacac'
etc de más de 512 carácteres: ¿algun código puede servir de reset?


Antoine

Antoine Leca
2005-05-19 10:59:15 UTC
Permalink
Post by GoLiArDo
perdonad mi ignorancia, pero no se lo que es la entropía de los datos.
El grado de variación (variabilidad, desordre) entre los datos.

Si hay mucha variación, es decir, si los datos no tienen ninguna relación
entre ellos (se dice que los datos son aleatorios), no puedes comprimir
nada, porque si lo haces estarías perdiendo información que no podiera
recubrir después.


Antoine
Loading...