www.abadiadigital.com/noticia3639.html por xabih el 23-03-2009 11:25 UTC publicado el 23-03-2009 11:40 UTC
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?
#11 Ojo, en el enlace original dice que hay que guardarlo 600 veces pero con una ligera mayor compresión. vimeo.com/3750507?pg=embed&sec= #9 Ahí está tu respuesta.
#13#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.
#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.
#16 Manual básico para el fotógrafo aficionado:
1- Dispara siempre en formato RAW (si tu cámara lo permite; ólvidate de tantos megapíxeles y busca una cámara con Raw y un buen zoom óptico)y guarda siempre ese archivo como el "negativo" de la imagen.
2- Para editar las fotos, usa siempre un Tiff sacado de ese Raw, y preferiblemente usa capas para hacer los retoques.
3- Convierte el archivo a jpg solamente cuando ya tengas la versión definitiva que vas a imprimir, enviar, llevar al laboratorio, etc.
#17#9 el jpg es un formato comprimido 'con perdida', significa que la imagen que se obtiene despues al 'descomprimir' un jpg para verlo es diferente de la original,minimamente, pero diferente, el jpg usa por decirlo a lo bruto funciones matematicas que 'aproximan' el resultado (en bloques de 8x8 pixeles) , la perdida solo se produce cuando recomprimies un fichero (es decir, lo abres y fuerzas a que vuelva a grabarlo, por eso insiste en el proceso de abrir-modificar-guardar)
Normalmente la perdida por abrir-modificar-guardar 3 o 10 veces no vas a verla a simple vista, y dependera tambien de la calidad (cuando guardas en jpg veras que normalmente te pide calidad, a mas calidad mas se aproxima al original, a menos calidad comprime mas sacrificando el 'poder alejarse un poco' del original)
Por eso es bueno mantener una copia de las fotos en formato sin comprimir (o comprimido pero 'sin volver a tocar') aunque luego una se retoque para lo que sea
#20 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
#24#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.
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
#30#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.
#33#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
#34 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.
#35 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.
#37 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!
"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.
#48#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.
#49#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.
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...)
#55#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?
#58 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, ...
#62 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: www.turbophoto.com/graphic-design-stock-photos/Images/Clouds.JPG
#65 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
#68#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.
Corrijo... un flash...
paso
vimeo.com/3750507?pg=embed&sec=
#9 Ahí está tu respuesta.
1- Dispara siempre en formato RAW (si tu cámara lo permite; ólvidate de tantos megapíxeles y busca una cámara con Raw y un buen zoom óptico)y guarda siempre ese archivo como el "negativo" de la imagen.
2- Para editar las fotos, usa siempre un Tiff sacado de ese Raw, y preferiblemente usa capas para hacer los retoques.
3- Convierte el archivo a jpg solamente cuando ya tengas la versión definitiva que vas a imprimir, enviar, llevar al laboratorio, etc.
Normalmente la perdida por abrir-modificar-guardar 3 o 10 veces no vas a verla a simple vista, y dependera tambien de la calidad (cuando guardas en jpg veras que normalmente te pide calidad, a mas calidad mas se aproxima al original, a menos calidad comprime mas sacrificando el 'poder alejarse un poco' del original)
Por eso es bueno mantener una copia de las fotos en formato sin comprimir (o comprimido pero 'sin volver a tocar') aunque luego una se retoque para lo que sea
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.
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...
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.
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
PD: No deja de ser curioso.
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.
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
"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.
</taliban programador>
NO!
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...)
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.
for var in `seq 1 600`; do convert nubes.jpg nubes.jpg;echo $var; done
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:
www.turbophoto.com/graphic-design-stock-photos/Images/Clouds.JPG
Da gusto poder comprobar las cosas.
"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....
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.
#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.