¿Reducir gradualmente perjudicará la calidad?

10

En Photoshop, ¿habrá una diferencia de calidad cuando un ráster se reduzca 75% una vez en lugar de reducirse 50% dos veces ? En ambos casos, el tamaño final será el mismo: 25% del original.

La razón por la que pregunto es porque a veces quiero reducir una imagen que sé que se ha reducido previamente. Odio tener que presionar CTRL + Z (deshacer) cien veces hasta el estado en que la imagen tenía su tamaño original. Si la calidad final no se ve afectada, prefiero escalar la imagen allí mismo.

JoJo
fuente
1
¿Asumo que quieres decir "50% una vez vs 25% dos veces"? Aun así, (100%-75%)*(100%-75%) != 50%. Pero creo que sé lo que quieres decir, y la respuesta a eso es "no", y realmente no podrás notar la diferencia, si es que hay alguna.
Mateen Ulhaq
2
No es una respuesta, sino una posible solución para su problema en ⁋2: si es posible, convierta la capa que está a punto de cambiar de tamaño a un objeto inteligente, se puede escalar de un lado a otro sin ningún efecto en la calidad del archivo original.
Jari Keinänen
1
@muntoo Editado para decir 75% una vez y 50% dos veces. 25% dos veces es realmente mayor que 50% una vez
JoJo

Respuestas:

10

Es el wiki de la comunidad, por lo que puedes arreglar esta publicación terrible.


Grrr, no LaTeX. :) Creo que tendré que hacerlo lo mejor que pueda.


Definición:

Tenemos una imagen (PNG u otro formato sin pérdida *) llamada A de tamaño A x por A y . Nuestro objetivo es escalarlo en p = 50% .

Image ( "array") B será una versión "directamente a escala" de A . Tendrá B s = 1 número de pasos.

A = B B s = B 1

Image ( "array") C será un "incrementalmente escalado" versión de A . Tendrá C s = 2 número de pasos.

A ≅ C C s = C 2


Lo divertido:

A = B 1 = B 0 × p

C 1 = C 0 × p 1 ÷ C s

A ≅ C 2 = C 1 × p 1 ÷ C s

¿Ves esos poderes fraccionales? Teóricamente degradarán la calidad con imágenes ráster (los rásteres dentro de los vectores dependen de la implementación). ¿Cuánto cuesta? Lo resolveremos a continuación ...


Lo bueno:

C e = 0 si p 1 ÷ C s ∈ ℤ

C e = C s si p 1 ÷ C s ∉ ℤ

Donde e representa el error máximo (peor de los casos), debido a errores de redondeo de enteros.

Ahora, todo depende del algoritmo de reducción de escala (Supermuestreo, Bicubic, muestreo de Lanczos, Vecino más cercano, etc.).

Si estamos utilizando el vecino más cercano (el peor algoritmo para cualquier cosa de cualquier calidad), el "verdadero error máximo" ( C t ) será igual a C e . Si estamos usando alguno de los otros algoritmos, se complica, pero no será tan malo. (Si quieres una explicación técnica sobre por qué no será tan malo como el vecino más cercano, no puedo darte una porque es solo una suposición. NOTA: ¡Hola, matemáticos! ¡Arreglen esto!)


Ama a tu prójimo:

Hagamos una "matriz" de imágenes D con D x = 100 , D y = 100 y D s = 10 . p sigue siendo el mismo: p = 50% .

Algoritmo de vecino más cercano (terrible definición, lo sé):

N (I, p) = mergeXYDuplicates (floorAllImageXYs (I x, y × p), I) , donde solo se multiplican los x, y ; no sus valores de color (RGB)! Sé que realmente no puedes hacer eso en matemáticas, y esta es exactamente la razón por la que no soy EL LEGENDARIO MATEMÁTICO de la profecía.

( mergeXYDuplicates () mantiene solo los "elementos" x, y más inferiores a la izquierda / más a la izquierda en la imagen original I para todos los duplicados que encuentra, y descarta el resto).

Tomemos un píxel aleatorio: D 0 39,23 . Luego aplique D n + 1 = N (D n , p 1 ÷ D s ) = N (D n , ~ 93.3%) una y otra vez.

c n + 1 = piso (c n × ~ 93.3%)

c 1 = piso ((39,23) × ~ 93.3%) = piso ((36.3,21.4)) = (36,21)

c 2 = piso ((36,21) × ~ 93.3%) = (33,19)

c 3 = (30,17)

c 4 = (27,15)

c 5 = (25,13)

c 6 = (23,12)

c 7 = (21,11)

c 8 = (19,10)

c 9 = (17,9)

c 10 = (15,8)

Si hiciéramos una escala simple solo una vez, tendríamos:

b 1 = piso ((39,23) × 50%) = piso ((19.5,11.5)) = (19,11)

Comparemos b y c :

b 1 = (19,11)

c 10 = (15,8)

¡Eso es un error de (4,3) píxeles! Probemos esto con los píxeles finales (99,99) y tengamos en cuenta el tamaño real en el error. No volveré a hacer todos los cálculos aquí, pero te diré que se convierte en (46,46) , un error de (3,3) de lo que debería ser, (49,49) .

Combinemos estos resultados con el original: el "error real" es (1,0) . Imagínese si esto sucede con cada píxel ... puede terminar haciendo una diferencia. Hmm ... Bueno, probablemente haya un mejor ejemplo. :)


Conclusión:

Si su imagen es originalmente de gran tamaño, en realidad no importará, a menos que haga varias escalas descendentes (consulte "Ejemplo del mundo real" a continuación).

Empeora en un máximo de un píxel por paso incremental (hacia abajo) en el vecino más cercano. Si hace diez escalas, su imagen se degradará ligeramente en calidad.


Ejemplo del mundo real:

(Haga clic en las miniaturas para ampliarla).

Reducido en un 1% de forma incremental usando Supermuestreo:

Original Reducido x1 Reducido x10 Zoom en reducción de escala x1 Zoom en reducción de escala x10

Como puede ver, el Supermuestreo lo "difumina" si se aplica varias veces. Esto es "bueno" si está haciendo una reducción de escala. Esto es malo si lo estás haciendo de forma incremental.


* Según el editor y el formato, esto podría marcar la diferencia, por lo que lo mantengo simple y lo considero sin pérdidas.

muntoo
fuente
hiciste mucho esfuerzo jajaja .... + 1
Jack
2
+1 por esfuerzo ... -1000 por pensar que la gente de tipo artístico leerá todo eso. Me desplacé al pix :-). Y tú hiciste tu punto.
Dawson
Gran respuesta, pero no estoy seguro de qué buenos ejemplos están usando el vecino más cercano o el supermuestreo; especialmente porque la interpolación bicúbica es el valor predeterminado de Photoshop. También he leído lo contrario al agrandar una imagen: la ampliación escalonada produce resultados ligeramente mejores que una ampliación de una sola parada: photo.stackexchange.com/a/3985/1913 ¿ Por qué este no sería el caso para la reducción?
Jari Keinänen
1
@koiyu Bicubic es peor que Supersampling, IIRC. En la reducción de escala, la imagen está perdiendo datos. [No del todo cierto, pero:] La mayoría de los algoritmos de reducción de escala están diseñados para perder estos datos mientras se elimina el nerviosismo que produce el vecino más cercano al 'desenfocar' un poco los bordes. Este desenfoque se suma. [Supongo] Si la imagen se está ampliando, se está mejorando 'recursivamente'. Apuesto a que existe un algoritmo (s) en el que esta calidad recursiva, aunque costosa en la CPU, produce menos desenfoque en la imagen que cuando se amplía todo de una vez. [/ Guess]
Mateen Ulhaq
Maldición imgur por eliminar mis imágenes después de la inactividad. ¿Alguien conoce un servicio en el que las imágenes son "permanentes"?
Mateen Ulhaq
5

JoJo pregunta por la calidad. La mayoría de las respuestas son sobre la precisión de los píxeles , lo cual es casi irrelevante para un diseñador, o incluso un fotógrafo.

La calidad es una medida de cuán convincente y agradable es el resultado final, no de cuán "preciso" sea. Como un buen ejemplo, la Clonación o el Relleno consciente del contenido reemplazan las partes no deseadas de una imagen con píxeles plausibles : se ven bien, pero ciertamente no pueden considerarse precisas.

En Photoshop, la principal diferencia práctica entre reducir el tamaño incrementalmente o reducir el tamaño en una sola toma es que lleva mucho más tiempo. Si cobra por hora, vaya al 1% por vez. Si no, reduzca el tamaño de una vez. Convierta la imagen en un objeto inteligente primero, en caso de que alguna vez quiera hacer una versión más grande.

No importa qué algoritmo use (y el comentario de Dawson acerca de esos algoritmos es acertado, son increíbles), la reducción de tamaño arroja píxeles. El algoritmo resta píxeles y modifica a otros adivinando cómo hacer que se vean bien. Un buen algoritmo hace buenas conjeturas; le da un resultado que parece convincente, pero no es exacto en ningún sentido significativo. Honestamente, preciso , ¡aparte del color! - no es lo que está buscando a menos que sea un científico, en cuyo caso probablemente no reducirá su tamaño en primer lugar.

Una imagen que se ha reducido utilizando el algoritmo bicúbico habitual a menudo se beneficia de un poco de nitidez, pero si está creando jpegs para la web, la nitidez aumentará el tamaño del archivo.

La calidad correcta en el diseño es la calidad que necesita para su producto final. Cualquier cosa más allá agrega tiempo, pero no valor, a su trabajo.

[Editar: Ya que hubo una mención de ampliación en el renacimiento de koiyu de esta pregunta. He agregado algunos comentarios sobre ese tema.]

Existe la idea de que si sube una imagen en pequeños pasos, en lugar de un solo salto gigante, obtendrá un resultado ligeramente mejor ("un poco menos malo" sería más preciso). Scott Kelby promovió la idea hace algunos años, y puede haber sido cierta a partir de PS 7. No he visto nada que me haya convencido de que hoy sea correcta. No se demostró en mis propias pruebas, en torno a PS CS2 y 3, pero hay que decir que no perdí mucho tiempo en ellas.

No pasé tiempo en pruebas profundas porque la ligera diferencia entre "calidad de imagen degradada" y "calidad de imagen ligeramente menos degradada" no tiene ningún valor práctico: tampoco es utilizable. En mi propio trabajo, mi regla simple es: "No aumentar el tamaño". Como cuestión de practicidad en el trabajo de diseño, una imagen que tiene una resolución demasiado baja para un propósito particular siempre se ve mejor utilizada tal cual que la misma imagen "ampliada" a la resolución "correcta" por cualquier proceso que haya encontrar, incluyendo variaciones fractales y bicúbicas.

Alan Gilbertson
fuente
"Si cobra por hora, vaya al 1% por vez". ...¿Heterodoxo? :)
Mateen Ulhaq
Por cierto, ¿no se percibe el "desenfoque" percibido por algoritmos de reducción de escala a propósito?
Mateen Ulhaq
Bicubic no se difumina por intención, pero un ligero ablandamiento es un artefacto común. Cuando ocurre, un moderado enfoque lo arregla.
Alan Gilbertson
1
@muntoo: "Si cobra por hora ..." es un sarcasmo leve que es común en las discusiones sobre los flujos de trabajo de diseño, para enfatizar que los usos ineficientes y derrochadores del tiempo de trabajo son ineficientes y derrochadores.
Alan Gilbertson
+1 Muchas cosas buenas: "La calidad es una medida de cuán convincente y agradable es el resultado final, no de cuán" preciso "sea", "preciso ... no es lo que estás buscando a menos que seas un científico "," la ligera diferencia entre "calidad de imagen degradada" y "calidad de imagen ligeramente menos degradada" no tiene ningún valor práctico "
Farray
3

En general, los escalados múltiples reducirán la calidad en una escala única al tamaño final, pero a menudo la diferencia será mínima. En particular, la escala más pequeña en proporciones exactas, como su ejemplo de (2: 1, 2: 1) versus (4: 1), tendrá una degradación muy pequeña en comparación con la escala única. Por supuesto, es mejor hacer todas las modificaciones en la resolución más alta y luego escalar solo una vez al final. Cuando la escala exacta no se conoce inicialmente, se puede hacer una serie de escalas de prueba para encontrar el tamaño correcto, luego observar el tamaño, tirar la imagen de prueba y realizar una escala única a ese tamaño desde el original.

mgkrebbs
fuente
1
Usted dice que la escala incremental es peor, pero ¿hay alguna prueba teórica?
JoJo
1
Acabo de tomar una captura de pantalla de mi configuración multimonitor y luego usé Photoshop para escalar una versión al 25% y una 50 y luego 50. Los dos resultados fueron idénticos en píxeles. Me sorprendió
horatio
@ Jojo: no tengo una prueba teórica para ofrecer (y una prueba dependería de cuál de varios algoritmos de interpolación se usó en la escala). Creo que prácticamente podría mostrarlo: tome una imagen no trivial digamos 400x400, escale a 380px, eso a 360, y eso a 340. Compárelo con uno escalado del original a 340px. No he intentado esto, pero creo que habrá un mayor desenfoque, aunque puede que no sea tan perceptible visualmente. Tenga en cuenta que la escala sugerida no utiliza buenas proporciones.
mgkrebbs
1
Hice el ejercicio Aquí está la versión a escala 1 y aquí está la versión a escala 3x . Puede ver la pérdida de detalles en las líneas finas de la mitad inferior. Con el zoom, puedes ver algo similar en muchos lugares. Esta fue una interpolación cúbica a través de Gimp, y usó archivos PNG para evitar la compresión con pérdida.
mgkrebbs
1

¡Esta pregunta es INCREÍBLE! ... Creo que todos nos estamos volviendo demasiado técnicos.

Imagen de 100 x 100 píxeles = 10000 píxeles totales

Al reducir una imagen hacia abajo, se extraen los píxeles. La ampliación los agrega. De cualquier manera, el software toma una "suposición educada" para alterar el archivo.

Una sola reducción: 90 x 90 (1900px eliminado de la información del archivo original)

Reducción de 2 pasos: 95 x 95 (975 px eliminado), 90 x 90 (otro 925). El detalle a tener en cuenta aquí es el del total de 1900px eliminado: 975 de ellos NO formaron parte de la información original .

La imagen original es siempre la mejor. Menos "generaciones" siempre equivale a una mejor calidad (más cercana a la calidad original).

PRUEBA (y una respuesta al comentario de @mutoo)

ingrese la descripción de la imagen aquí

Es simple ... es un algoritmo ... no es un conjunto de ojos humanos. Hay 3 colores aquí. 100% negro, 50% negro y blanco (imagen en escala de grises). No importa cómo lo escale: menú de tamaño de imagen, herramienta de transformación, RGB, CMYK, 100 x 100 px, 10 x 10 pulgadas, los resultados son los mismos:

A lo largo del borde negro / gris encontrarás 80% de negro (un color que no existe). A lo largo del borde blanco / gris, encontrará un 7% de negro (no existe). [No es una invitación para el argumento anti-alias aquí]

Como todos sabemos (ser humano, y todo), una reducción o ampliación perfecta produciría una caja de rayas Negra / Gris / Blanca. Y todavía encontré que una sola iteración (arriba o abajo) creó una réplica mejor que la múltiple.

Dawson
fuente
La parte sobre "NO es parte de la información original" no es del todo correcta. El algoritmo de vecino más cercano, por ejemplo, nunca cambia los valores de los píxeles; solo elimina los píxeles seleccionados. Finalmente, los "píxeles incorrectos" comienzan a eliminarse debido a errores de redondeo de enteros, por lo que la calidad se degrada. Mientras tanto, los algoritmos "mejores" pueden mezclar los colores de los píxeles, y algunos algoritmos de escala de píxeles pueden incluso "adivinar". Esto conduce a un desenfoque, lo cual es deseable cuando se hace una sola escala hacia abajo, pero no múltiples.
Mateen Ulhaq
[continuación] Sin embargo, el vecino más cercano es aún peor: elimina los "píxeles incorrectos" y hace que su imagen parezca una escalera realmente extraña (vista superior).
Mateen Ulhaq
Me lleva de vuelta a mis días de cámara de estadísticas: compílelo / tírele el tamaño que necesita para la mejor reproducción posible. Grandes apoyos para la gente que escribe esos algoritmos ... "Creemos UNA cosa que procesará TODO y lo hará ver realmente bien el 99% del tiempo". <- cosas bastante hardcore, en serio.
Dawson el
-1

Probablemente sí, pero en la mayoría de los casos ni siquiera podrás notar la diferencia.

Editar: veo que a la gente no le gusta mi respuesta :). Quizás porque es simple. En mi humilde opinión, no lo hace menos cierto. Bueno ... prueba que estoy equivocado :).

Edición 2: quería mantener mi respuesta breve pero ... :)

P: En Photoshop, ¿habrá una diferencia en la calidad cuando un ráster se reduzca un 75% una vez en lugar de reducirse un 50% dos veces? En ambos casos, el tamaño final será el mismo: 25% del original.

UN:

  1. "Lo más probable es que sí" - mira la publicación de muntoo. Él dice que cada paso de interpolación introduce algunos errores menores. Son errores de redondeo o representación y pueden contribuir a la degradación de la calidad. Conclusión simple: más pasos, más posible degradación. Por lo tanto, la imagen "más probable" perderá calidad durante cada paso de escala. Más pasos: más posible degradación de la calidad. Por lo tanto, la imagen "más probable" se degradará más si se escala en dos veces que en una. La pérdida de calidad no es segura: tome una imagen en color sólido, por ejemplo, pero ¿con qué frecuencia cualquier diseñador escalará imágenes similares?

  2. "pero en la mayoría de los casos ni siquiera podrás notar la diferencia" , nuevamente, la publicación de muntoo. ¿Qué tan grandes son los posibles errores? En sus ejemplos, las imágenes se escalan no en 2 sino en 75 pasos y los cambios en la calidad son notables pero no dramáticos. En 75 pasos! ¿Qué sucede cuando la imagen se escala al 25% en Ps CS4 (bicubic, muestra de muntoo, se escala en uno y dos pasos en consecuencia)?

en un solo paso en dos pasos

¿Alguien puede ver la diferencia? Pero la diferencia está ahí:

#: gm compare -metric mse one-step.png two-step.png Image Difference (MeanSquaredError):
           Normalized    Absolute
          ============  ==========
     Red: 0.0000033905        0.0
   Green: 0.0000033467        0.0
    Blue: 0.0000033888        0.0
   Total: 0.0000033754        0.0

Y se puede ver si está marcado correctamente (gm compare -highlight-color purple -file diff.png one-step.png two-step.png):

diferencia entre escala de uno y dos pasos

1 y 2 hace mi respuesta, que esperaba mantener breve, ya que otras eran bastante elaboradas;).

¡Eso es! :) Juzga tú mismo.

thebodzio
fuente
1
-1 porque esta no es una respuesta real. "probablemente sí" ... ¿basado en qué ? "No podrá notar la diferencia" ... este sitio de control de calidad está dirigido a profesionales del diseño , que son precisamente las personas que notarían pequeñas diferencias en las imágenes. Si elimina la teoría no admitida y la afirmación no admitida, no hay otro contenido en su publicación.
Farray
De acuerdo con mi experiencia. ¿Lo has probado? Un buen profesional sabe cuándo usar la aproximación en lugar de intentar contar si el color difiere en una fracción del porcentaje :)
thebodzio
Quiero decir: ¿ha intentado volver a muestrear alguna imagen cada vez más y comparar los resultados con la imagen muestreada en un solo paso? No me adherí a tu experiencia.
thebodzio
1
La elaboración de @thebodzio realmente ayudó a esta respuesta, y como los votos negativos no son permanentes, he eliminado el mío.
Jari Keinänen