Hace 15 años | Por xabih a abadiadigital.com
Publicado hace 15 años por xabih a abadiadigital.com

Supón que coges una imagen en formato .jpg, la abres con tu editor favorito y, sin realizar ningún tipo de modificación, te vas a 'Archivo' y le das a 'Guardar'. Ahora imagina que repites el proceso 600 veces. ¿Qué sucedería?

Comentarios

D

etiqueta kurioso ¡ya!

danic

#15 ojo, no siempre, un formato comprimido no tiene porque tener perdida

formato con perdida: el jpg

formato sin perdida: png, zip, rar, tar
algunos formatos admiten opcion de sin comprimir o comprimidos sin perdida (el targa)

el jpg2000 fue un intento de sacar un jpg que admitiera compresion sin perdida, pero no cuajo...

D

Ojo, en el enlace original dice que hay que guardarlo 600 veces pero con una ligera mayor compresión.


#9 Ahí está tu respuesta.

solivent

#44 Mmmm, si por alguna de aquellas te quedas sin chorizo a mitad del bocata te pasas el resto de iteraciones tirando a la basura el chorizo y abriendo otro :-P.

D

Bienvenidos al fascinante mundo de la Entropía.

e

Para los que tengan linux e imagemagik instalado:
for var in `seq 1 600`; do convert nubes.jpg nubes.jpg;echo $var; done

ailian

#46 El C es muy cómodo para estos menesteres ya que al ser de bajo nivel te permite controlar con mayor eficacia el grosor de las lonchas de chorizo. Yo antes lo hacía en javascript y tenía que tirar de librerías.

BucaneroElPatapalo

¡¡¡¡ BRUJERIA!!!!!

D

Siempre tuve ganas de hacer el experimento... gracias por evitarme el esfuerzo

Corrijo... un flash...

paso

g

#15 Puntualizando un poco:

No es cierto que siempre que haya compresión haya pérdida. Existen algoritmos de compresión sin pérdida. En concreto, el JPG es un algoritmo con pérdida, lo que ocurre es que normalmente se hace bien y sólo un par de veces con lo que la pérdida de información (calidad) es imperceptible.

Resumiendo:

- Para que una imagen no ocupe tropecientos megabytes, se le somete a procesos de compresión. El más popular para fotografías es el JPEG o JPG.

- Existen algoritmos de compresión con pérdida y sin pérdida. Obviamente, la perdida significa que conseguimos comprimir más.

- El formato JPG es con pérdida, por lo que hay que limitar su uso

atzu

#9 Sucede porque lo que se està aplicando es una compresiòn con pérdida de informaciòn (o entropìa). Sucede también con el MP3 por ejemplo.
La imagen pasa a través de un algoritmo que mide las frecuencias de la informaciòn visible y usa una transformada discreta del coseno (DCT) para individuar los componentes de mayor energìa de la imagen. Estos valores son cuantizados ulteriormente, es decir se va a completar el eje de abscisas con valores discretos que suponen una aproximaciòn de los valores continuos de una senal analògica. Este proceso de cuantizaciòn contribuye con ruido a la imagen comprimida.
Después pasa por un algoritmo DPCM (Differential Pulse Code Modulation) que en grandes lìneas codifica los bloques basàndose en la diferencia de los bloques precedentes en modo de reducir la redundancia de informaciòn. Cuando termina este proceso a los bits que se han creado después del proceso de modulaciòn se les aplica una compresiòn entròpica sin pérdida bastante comùn conocida como algoritmo de Huffmann. Este proceso es totalmente reversible y se puede llegar a un bit-stream como el original sin ninguna diferencia. El problema es que antes de llegar a este proceso hemos tenido ya diversos procesos con pérdida que han contribuido a un deterioro de la imagen. La repeticiòn de este proceso 600 veces es lo que lleva a un deterioro como el que nos muestra este vìdeo.
Grosso modo esto es lo que hace el algoritmo JPEG, sin entrar demasiado en los detalles.
#21 El JPEG2000 puede ser con pérdida y sin pérdida, y es un formato estupendo para la comunicaciòn en Internet. Pero tienes razòn no ha cuajado, seguramente por intereses de varios tipos.
#15 Como en el formato Zip verdad? No es cierto lo que dices.

D

#18 para conseguir una portada en Menéame. ¿Te parece poco?

A

#6 #32 ¿De verdad creeis que lo ha hecho "a mano", guardandolo y volviendolo a abrir 600 veces?

D

#18: ¿Para que veas la pérdida de calidad que produce?

O dicho de otra forma: guardar en JPEG daña la calidad, así que si no quieres perderla, usa PNG.

#20: Yo tengo en Windows un programa que se llama "jpegcrop.exe" y va bastante bien, aunque falla un poco con imágenes cuyas medidas no son múltiplo de 16, pero es más que nada por deficiencias del algoritmo.

#21: JPEG 2000 es un algoritmo diferente a JPEG, y funciona por "wavelets" en lugar de DCT que es lo que usa JPEG normal. JPEG 2000 se ve mejor que JPEG, en imágenes muy comprimidas, pero a compresiones intermedias, da unos resultados bastante similares en calidad a JPEG. JPEG 2000 suele matar más las texturas que JPEG, pero JPEG suele generar bloques, sobretodo en zonas de bordes y tal.

De todas formas ,si no se usa JPEG 2000 es fundamentalmente por el tema de las patentes.

#30: Efectivamente, GIF no pierde calidad. La calidad se pierde al convertir la imagen a 256 colores diferentes para que pueda ser aceptada por GIF (aunque dicho sea de paso, en GIF si es posible guardar imágenes a todo color, usando ciertos trucos).

#35: Si, de hecho pone que la iba comprimiendo cada vez un poco más, porque sino, llega un momento en que no se degrada mucho la imagen. Eso si, el submuestreo de colores tiene un efecto similar a aplicar un desenfoque en los colores de la imagen, que se va acumulando según guardas la imagen.

Pennywiser

#9 el problema viene cuando no es un copia pega normal, sino que se copia, se pega, se guarda y en ese nuevo guardado de intenta comprimir de nuevo la imagen, si comprimes la imagen de la imagen comprimida, que ya estaba comprimida....etc, al final sale un churro como ese.

P

Comentario en la web:

"ya puestos, otra preguntilla... ¿y si no guardas? Solo abres y cierras... no hay pérdida de calidad, ¿no?"

Perdida de calidad no, pero de tiempo.... lol

D

#9 http://es.wikipedia.org/wiki/Joint_Photographic_Experts_Group#Compresi.C3.B3n_del_JPEG Se trata de un algoritmo de compresión con pérdida de información.

Sin embargo, con las imágenes png, esto no sucede, pues no tienen pérdida de información: http://es.wikipedia.org/wiki/Png

D

¿Y alguien sabe por qué pasa eso? Con mis mínimos conocimientos de informática no soy capaz de explicármelo. Creía que el copia-pega de Byte siempre era igual.

m

#15 Corrección: no siempre donde hay compresión hay pérdida de calidad. Depende de la imagen y del formato. Por ejemplo, si comprimes en GIF una imagen con menos de 255 colores, no hay pérdida de calidad. Por otro lado, no todos los formatos son iguales. Si guardo una imagen RAW en PNG de 24 bits hay pérdida de calidad, aunque casi inapreciable al ojo humano. Si ahora abres y guardas la imagen 600 o mil veces, la imagen sigue igual.

ailian

#41 Ahora le voy a decir a uno de mis scripts que me prepare un bocadillo. lol

dale

Hay muchas transformaciones que se pueden hacer a una imagen comprimida en formato JPEG sin que se produzcan pérdidas. Para los linuxeros, véase man jpegtran

D

Los viejos lobos de internet que bajamos pron de servidores de archivos en canales irc conocemos bien el fenómeno

Ycorrijo, pasa con abrirla para edición y grabarla al 90 pro cien de calidad cada vez siempre sin comprimir más

jpg no es zip, reprocesa la imagen abierta como si fuese una imagen limpia sin comprimir

Hojaldre

jaja ¡se convierte en una foto hecha con un movil cutre!

D

#15 "... y donde hay compresión siempre hay pérdida de calidad ..."
NO: http://en.wikipedia.org/wiki/Lossless_data_compression

light

#11 ha dado en el clavo.

Hay que modificar ligeramente los parámetros de compresión para acumular pérdidas. JPG no tiene pérdidas porque sí. JPG tiene pérdidas porque transforma la imagen en una más fácil de comprimir. Si volviese a abrir esa imagen, y la volviese a guardar exáctamente con los mismos parámetros, JPG se encontraría con que la imagen no necesita ser modificada para ser guardada con esa calidad.

Imaginemos que el algoritmo consiste en, dividir la imagen en cuadrículas de 16x16 píxeles. Y las cuadrículas que tienen más del 70% de píxeles negros, las ponemos completamente negras. Así, podemos utilizar un solo color, para guardar los 16x16=256 colores de esa cuadrícula. Es un algoritmo un poco ridículo, pero el concepto de pérdida es similar en jpg. Así si volvemos a comprimir la imagen con pérdida, con el mismo criterio (70% de negros), y mismo tamaño de cuadrícula, el algoritmo se encontrará con que las cuadrículas con más del 70% de negros, ya son totalmente negras, y las que tenían menos del 70% siguen sin cumplir el criterio, así que no las toca.

En consecuencia, la imagen resultante sería exáctamente igual que la primera vez. La diferencia, con jpg, es que tiene muchos más parámetros, cambiar ligéramente el criterio en cada pasada, o simplemente el tamaño de las cuadrículas, generaría una imagen diferente. Pero con los mismos parámetros no debería de tener por qué acumular pérdidas.

(Ahora es cuando una prueba con photoshop, derrumba mi explicación...)

Sinforosa

¿¿Pero quién tiene tanto tiempo libre??

capullo

Por un mundo con más PNG (en los casos adecuados).

D

#45: Yo ni friki ni, ni geek, ni nada, porque no tengo casi idea de hacer scripts (perl, phyton, sh...). De hecho lo que puse en #44 es en C, que es casi el único lenguaje que conozco. lol

D

Creo que habría que votar errónea, no?

"Esto es lo que pasa si abres y guardas una imagen 600 veces"

Deberia ser:

"Esto es lo que pasa si abres y guardas una imagen 600 veces en JPEG aplicando compresión cada vez"

Porque si no aplicas ninguna compresión, la imagen queda tal como está :S. Gimp por ejemplo ,si le dices que te guarde una foto con formato/extension JPG, siempre te aplica compresión por defecto.

D

#6 No lo sé, alguno por ahí diría que "algún hijo de puta al que habría que coser a bofetadas". lol

D

#19 Yo es que ni llego a friki de informática... me considero símplemente "friki" lol

J

#21 #24 #29 #30 Sí, tenéis razón, pasa que ya no puedo editar mi comentario para especificar que no todos los formatos de compresión van asociados a una pérdida de información

danic

#20 para windows el irfanview por ejemplo permite algunas modificaciones sin perdida tambien (recortes y giros de 90º)

e

Bueno, para que comprobeis que el archivo cambia:
for var in `seq 1 600`; do convert nubes.jpg nubes.jpg;echo $var;md5sum nubes.jpg; done
Eso si, después de 600 veces, la imagen es la misma.
No sé com que guardaran esos jpg, pero con imagemagik almenos no hay diferencia apreciable entre la original y la guardada 600 veces.
Para la prueba he usado esta imagen:
http://www.turbophoto.com/graphic-design-stock-photos/Images/Clouds.JPG

Da gusto poder comprobar las cosas.

LadyMarian

Anda...yo siempre pensé que esto era una leyenda urbana.

atzu

I'm feeling lossy...

ailian

Por una vez diré una frase que odio en menéame: ¿Como puede llegar esto a portada?

A lo que añado: ¿Donde están los frikis de la informática cuando se les necesita?

Menos mal que han pasado un par: Grácias #11, #13 y #15 no todo está perdido.

elgusano

Que guay, voy a probarlo....

NO!

Froda

Y eso no es todo. Si en el word pulsas la tecla Control + la "n" el texto se escribe, pero mucho más oscuro si "esto" es una portada como dice #19 ¡apaga y vámonos!

D

En realidad con que abras el paint, pongas el zoom al maximo y lo guardes una vez ya se nota bastante.

i

Conforme avanza me recuerda a las fotos en 256 colores de Marta sanchez que tenia en mi 286 jejeje.

c

#15 #9 JPEG es un formato comprimido, y donde hay compresión siempre hay pérdida de calidad, de ahí que si repites el proceso 600 veces al final te queda una imagen de una calidad muy baja.

Pues a ver si se lo aplica la gente que dice que los mp3 suenan igual o mejor que los CDs de audio.

Que me cabreo.

Froda

#60 Pero... ¿se te aparece en 3D y te pega o sólo es una imagen plana y pixelada? lol

D

#62: Prueba a usar diferentes factores de compresión.

test

#35 Seguramente por eso pone que hay que incrementar ligeramente la compresion, en general supongo que con variarla un poco basta.

N

Una pregunta muy tonta, si no recuerdo mal el jpg funcionava de una forma parecida a la siguiente:

Divides la imagen en cuadrados pequeños (8x8), para cada cuadrado:
- Separas los componentes por colores y frequencias (diferentes combinaciones de vertical-horizontal)
- Asignas un numero diferente de bits a cada color, y te quedas solo con determinadas frequencias (las mas bajas).

Al guardar cualquier formato a jpg haces esto.
Ahora mi duda es: si lo que tenemos ya solo contiene frequencias bajas y no tiene mas precision en los colores, no es extraño que al abrir y guardar el mismo archivo, con la misma compresion y descompresion se produzcan perdidas?
A mi me huele más a error del encoder-decoder que a fallo del estandard jpeg.

D

#65: Con 100 no te queda una imagen igual punto a punto, así que mejor usa PNG.

#67: ... y que si vas a guardar en JPEG, tengas cuidado. Usa PNG si quieres estar seguro.

#68: No siempre, PNG comprime y no pierde calidad.

Irrelevanterrimo

#35 Te votaría positivo si no fuera por ese "funcionava"

Bad_Religion

La gente se aburre mucho... 600 veces... lol

PD: No deja de ser curioso.

D

#54: Sería interesante comprobar el efecto del submuestreo de color, porque eso es aumentar y reducir la resolución de la imágen a la mitad una y otra vez, y solo con los colores, no el brillo.

#55: No es "100%", es "100" (algún programa está mal). 100 significa que no se reduce la calidad, pero si que pierde calidad un poquitín debido a errores de redondeo. Si usas submuestreo de color, siempre pierdes calidad, aunque uses 100, ya que la resolución de los colores la reduces a la mitad.

ivancio

#23 Sí dices 600 veces Chuck Norris delante de un espejo, creo que se te aparece.

c

¿Y para qué quieres guardar ¡600 veces! lo mismo? No lo entiendo.

Lilithe

No es mas facil usar el efecto Granulado de Photoshop, ahi hasta te pregunta si quieres usar el tipo de granulado normal, suave, rociado, denso, contrastado, ampliado, punteado, horizontal, vertical, moteado, ...

a

#15 y #17
Cuando salvas JPG hay un parámetro que es la "calidad", cuyo valor máximo es 100%. Cuanta mayor es la "calidad", más pesado es el fichero que generas pero más calidad tiene la imagen (¡gracias, capitan Obvio!).

La pregunta es: si este parámetro estuviera siempre al máximo... ¿la calidad de la sescentésima imagen sería igual a la de la primera? O, en otras palabras, ¿100% de parámetro de calidad equivale a compresión sin pérdida?

Gracias.

D

Esto me recuerda que al abrir una imagen con el visor de imágenes de windows xp y lo rotabas unas cuantas veces podías ver como se degradaba poco a poco.

D

Por defecto la mayoria de los programas al guardar aplican una compresion entre el 80 y el 90 (100 seria sin compresion alguna, por lo tanto sin perdida), asi que el problema no es de abrir y guardarlo 600 veces es no saber usar el programa

L

Como mola!

g

mm ... ¿y?

N

#47 Si, ahora que lo dices me duele a la vista. Aunque seguro que si buscas encontrarás algún error más.

D

Eso será con los programas de Micro$oft. La mayoría de los programas decentes sólo guardan en disco si han hecho modificaciones en el archivo. Si se fuerza el guardado no cambia nada en la mayoría de ellos porque el algoritmo es el mismo para los mismos datos (otro gallo canta en productos micro$oft).

Abuelooorl

#32, #53... Sip... lo que hace el aburrimiento...

MasterChof

pues hay que estar tela de aburrido para guardar una imagen 600 veces...