Il ridimensionamento danneggerà progressivamente la qualità?


10

In Photoshop, ci sarà una differenza di qualità quando un raster viene ridimensionato del 75% una volta anziché ridimensionato del 50% due volte ? In entrambi i casi, la dimensione finale sarà la stessa: il 25% dell'originale.

Il motivo per cui lo chiedo è perché a volte voglio ridimensionare un'immagine che so essere stata ridimensionata in precedenza. Odio dover CTRL + Z (annullare) cento volte allo stato in cui l'immagine era nella sua dimensione originale. Se la qualità finale non viene influenzata, preferirei semplicemente ridimensionare l'immagine proprio lì e poi.


1
Suppongo che intendi "50% una volta contro 25% due volte"? Anche così, (100%-75%)*(100%-75%) != 50%. Ma credo di sapere cosa intendi, e la risposta è "no", e non sarai davvero in grado di dire la differenza, se ce ne sono.
Mateen Ulhaq,

2
Non una risposta ma una possibile soluzione al tuo problema in ⁋2: se possibile, converti il ​​livello che stai per ridimensionare in un oggetto intelligente, può essere ridimensionato avanti e indietro senza effetti sulla qualità del file originale.
Jari Keinänen,

1
@muntoo Modificato per dire 75% una volta e 50% due volte. Il 25% due volte è in realtà più grande del 50% una volta.
JoJo

Risposte:


10

E 'wiki comunità, in modo che si può risolvere questo terribile, terribile messaggio.


Grrr, no LaTeX. :) Immagino che dovrò solo fare il meglio che posso.


Definizione:

Abbiamo un'immagine (PNG o un altro formato senza perdita di dati *) denominata A della dimensione A x di A y . Il nostro obiettivo è ridimensionarlo di p = 50% .

Immagine ( "matrice") B sarà una versione "direttamente in scala" di A . Avrà B s = 1 numero di passi.

A = B B s = B 1

Immagine ( "matrice") C sarà una versione "incrementale in scala" di A . Avrà C s = 2 numero di passaggi.

A ≅ C C s = C 2


The Fun Stuff:

A = B 1 = B 0 × p

C 1 = C 0 × p 1 ÷ C s

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

Vedi quei poteri frazionari? Teoricamente degraderanno la qualità con immagini raster (i raster all'interno dei vettori dipendono dall'implementazione). Quanto? Lo scopriremo dopo ...


La roba buona:

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

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

Dove e rappresenta l'errore massimo (scenario peggiore), a causa di errori di arrotondamento per intero.

Ora, tutto dipende dall'algoritmo di downscaling (Super Sampling, Bicubic, Lanczos sampling, Il prossimo più vicino, ecc.).

Se stiamo usando il vicino più vicino (l' algoritmo peggiore per qualsiasi qualità), il "vero errore massimo" ( C t ) sarà uguale a C e . Se stiamo usando uno degli altri algoritmi, diventa complicato, ma non sarà così male. (Se vuoi una spiegazione tecnica sul perché non sarà così male come il vicino più vicino, non posso darti una causa perché è solo un'ipotesi. NOTA: Ehi matematici! Risolvilo!)


Ama il tuo prossimo:

Facciamo un "array" di immagini D con D x = 100 , D y = 100 e D s = 10 . p è sempre lo stesso: p = 50% .

Algoritmo Neighbor più vicino (definizione terribile, lo so):

N (I, p) = mergeXYDuplicates (floorAllImageXYs (I x, y × p), I) , dove vengono moltiplicati solo gli x, y stessi; non i loro valori di colore (RGB)! So che non puoi davvero farlo in matematica, ed è per questo che non sono IL MATEMATICO LEGGENDARIO della profezia.

( mergeXYDuplicates () mantiene solo gli "elementi" x, y più in basso a sinistra nell'immagine originale I per tutti i duplicati che trova e scarta il resto.)

Prendiamo un pixel casuale: D 0 39,23 . Quindi applicare D n + 1 = N (D n , p 1 ÷ D s ) = N (D n , ~ 93,3%) più e più volte.

c n + 1 = piano (c n × ~ 93,3%)

c 1 = piano ((39,23) × ~ 93,3%) = piano ((36.3,21.4)) = (36,21)

c 2 = piano ((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)

Se avessimo fatto una semplice riduzione solo una volta, avremmo:

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

Mettiamo a confronto B e C :

b 1 = (19,11)

c 10 = (15,8)

Questo è un errore di (4,3) pixel! Proviamo con i pixel finali (99,99) e consideriamo la dimensione effettiva dell'errore. Non farò di nuovo tutta la matematica qui, ma ti dirò che diventa (46,46) , un errore di (3,3) da come dovrebbe essere, (49,49) .

Uniamo questi risultati con l'originale: l '"errore reale" è (1,0) . Immagina se questo accade con ogni pixel ... potrebbe finire per fare la differenza. Hmm ... Beh, probabilmente c'è un esempio migliore. :)


Conclusione:

Se la tua immagine è originariamente di grandi dimensioni, non importa, a meno che non esegui più downscales (vedi "Esempio reale" di seguito).

Peggiora di un massimo di un pixel per passaggio incrementale (in basso) nel vicino più vicino. Se esegui dieci downscales, l'immagine sarà leggermente degradata in termini di qualità.


Esempio nel mondo reale:

(Fare clic sulle miniature per ingrandirla.)

Ridimensionato dell'1% in modo incrementale usando il Super Sampling:

Originale Ridimensionato x1 Ridimensionato x10 Ingrandisci in scala ridotta x1 Ingrandisci in scala ridotta x10

Come puoi vedere, il Super Sampling lo "sfoca" se applicato più volte. Questo è "buono" se stai facendo un downscale. Questo è male se lo stai facendo in modo incrementale.


* A seconda dell'editor e del formato, questo potrebbe potenzialmente fare la differenza, quindi lo mantengo semplice e lo chiamo senza perdita.


hai fatto un sacco di sforzo lol .... + 1
Jack

2
+1 per sforzo ... -1000 per aver pensato che gente di tipo artistico leggerà tutto ciò. Sono passato alla foto :-). E hai fatto il tuo punto.
Dawson,

Ottima risposta, ma non sono sicuro di come buoni esempi stiano usando il vicino più vicino o il super campionamento; soprattutto perché l'interpolazione bicubica è l'impostazione predefinita di Photoshop. Inoltre ho letto il contrario durante l' ingrandimento di un'immagine: l'ingrandimento a gradini produce risultati leggermente migliori rispetto a un ingrandimento completo : foto.stackexchange.com/a/3985/1913 Perché questo non sarebbe il caso di una riduzione?
Jari Keinänen,

1
@koiyu Bicubic è peggio di Supersampling, IIRC. Nel downscaling, l'immagine sta perdendo dati. [Non del tutto vero, ma:] La maggior parte degli algoritmi di downscaling sono progettati per perdere questi dati mentre rimuovono il margine più vicino che produce più vicino sfocando leggermente i bordi. Questa sfocatura si somma. [Indovina] Se l'immagine viene ingrandita, viene migliorata in modo "ricorsivo". Scommetto che esiste un algoritmo / i in cui questa qualità ricorsiva, sebbene costosa in CPU, produce meno sfocatura dell'immagine rispetto a quando si esegue l'upscaling in una sola volta. [/ Indovina]
Mateen Ulhaq,

Maledisci imgur per aver eliminato le mie immagini dopo l'inattività. Qualcuno conosce un servizio in cui le immagini sono "permanenti"?
Mateen Ulhaq,

5

JoJo chiede della qualità. La maggior parte delle risposte riguarda l'accuratezza dei pixel , che è quasi irrilevante per un designer o persino un fotografo.

La qualità è una misura di quanto sia convincente e piacevole il risultato finale, non di quanto sia "accurato". Ad esempio, Cloning o Content Aware Fill sostituiscono parti indesiderate di un'immagine con pixel plausibili : sembrano giusti, ma certamente non possono essere considerati precisi.

In Photoshop, la principale differenza pratica tra il ridimensionamento in modo incrementale rispetto al ridimensionamento in un colpo solo è che impiega molto più tempo. Se carichi ogni ora, vai all'1% alla volta. In caso contrario, ridimensiona in un colpo solo. Trasforma prima l'immagine in un oggetto intelligente, nel caso in cui tu voglia creare una versione più grande in un secondo momento.

Indipendentemente dall'algoritmo che usi (e il commento di Dawson su quegli algoritmi è morto - sono incredibili), il ridimensionamento getta via i pixel. L'algoritmo sottrae i pixel e modifica gli altri indovinando come farli apparire giusti. Un buon algoritmo fa buone supposizioni; ti dà un risultato che sembra convincente, ma non è preciso in alcun senso significativo. Onestamente, preciso - diverso dal colore! - non è quello che stai cercando a meno che tu non sia uno scienziato, nel qual caso probabilmente non saresti ridimensionamento in primo luogo.

Un'immagine che è stata ridimensionata usando il solito algoritmo bicubico spesso beneficia di un po 'di nitidezza, ma se stai creando jpeg per il web, la nitidezza aumenterà le dimensioni del file.

La corretta qualità nella progettazione è la qualità necessaria per il prodotto finale. Qualsiasi cosa oltre a ciò aggiunge tempo, ma non valore, al tuo lavoro.

[Modifica: dal momento che si parlava di un allargamento nel risveglio di Koiyu di questa domanda. Ho aggiunto alcuni commenti sull'argomento.]

C'è un'idea che se si esegue l'upgrade di un'immagine a piccoli passi, invece di un singolo salto gigante, si ottiene un risultato leggermente migliore ("leggermente meno cattivo" sarebbe più preciso). Scott Kelby ha promosso l'idea alcuni anni fa e potrebbe essere vero su PS 7. Non ho visto nulla che mi abbia convinto che oggi sia corretto. Non ha dimostrato nei miei test, su PS CS2 e 3, ma devo dire che non ho perso molto tempo con loro.

Non ho trascorso molto tempo a test approfonditi perché la leggera differenza tra "qualità dell'immagine degradata" e "qualità dell'immagine leggermente meno degradata" non ha alcun valore pratico: né è utilizzabile. Nel mio lavoro, la mia semplice regola è "Non sovradimensionare". Per praticità nel lavoro di progettazione, un'immagine che ha una risoluzione un po 'troppo bassa per uno scopo particolare sembra sempre meglio usata così com'è della stessa immagine "ingrandita" alla risoluzione "corretta" da qualsiasi processo che ho imbattersi, comprese le variazioni frattali e bicubiche.


"Se carichi ogni ora, vai all'1% alla volta." ... Unorthodox? :)
Mateen Ulhaq il

A proposito, la "sfocatura" percepita non viene fatta apposta dagli algoritmi di downscaling?
Mateen Ulhaq,

Il bicubico non sfuoca intenzionalmente, ma un leggero ammorbidimento è un artefatto comune. Quando si verifica, una modesta nitidezza lo risolve.
Alan Gilbertson il

1
@muntoo: "Se carichi ogni ora ..." è un lieve sarcasmo comune nelle discussioni sui flussi di lavoro di progettazione, per sottolineare che gli usi inefficienti e dispendiosi del tempo di lavoro sono sia inefficienti che dispendiosi.
Alan Gilbertson il

+1 Un sacco di cose positive: "La qualità è una misura di quanto sia convincente e piacevole il risultato finale, non di quanto sia" accurato ".", "Preciso ... non è quello che stai cercando a meno che tu non sia un scienziato "," la leggera differenza tra "qualità dell'immagine degradata" e "qualità dell'immagine leggermente meno degradata" non ha alcun valore pratico "
Farray,

3

Generalmente i ridimensionamenti multipli ridurranno la qualità su un singolo ridimensionamento alla dimensione finale, ma spesso la differenza sarà minima. In particolare, il ridimensionamento più piccolo di rapporti esatti, come il tuo esempio di (2: 1, 2: 1) rispetto a (4: 1), avrà un degrado molto piccolo rispetto al singolo ridimensionamento. È meglio, ovviamente, apportare tutte le modifiche alla massima risoluzione e ridimensionare solo una volta alla fine. Quando inizialmente il ridimensionamento esatto non è noto, si può fare una serie di ridimensionamenti di prova per trovare la giusta dimensione, quindi annotare la dimensione, buttare via l'immagine di prova ed eseguire un singolo ridimensionamento a quella dimensione dall'originale.


1
Dici che il ridimensionamento incrementale è peggio, ma esiste una prova teorica?
JoJo,

1
Ho appena preso uno screencap della mia configurazione multimonitor e poi ho usato Photoshop per ridimensionare una versione al 25% e una 50 e 50. I due risultati erano identici ai pixel. Sono rimasto sorpreso
horatio,

@Jojo: non ho una prova teorica da offrire (e una prova dipenderebbe da quale dei diversi algoritmi di interpolazione è stato utilizzato nel ridimensionamento). Penso che potresti praticamente mostrarlo: prendi un'immagine non banale diciamo 400x400, ridimensionala a 380px, quella a 360, e quella a 340. Confrontala con una in scala dall'originale a 340px. Non ho provato questo, ma penso che ci sarà un po 'di sfocatura maggiore, anche se potrebbe non essere così visivamente percepibile. Nota che il ridimensionamento suggerito non sta usando buoni rapporti.
mgkrebbs,

1
Ho fatto l'esercizio. Ecco la versione in scala 1 ed ecco la versione in scala 3x . Puoi vedere la perdita di dettagli nelle linee sottili del centro inferiore. Con lo zoom, puoi vedere simili in molti luoghi. Questa è stata un'interpolazione cubica tramite Gimp e ha utilizzato file PNG per evitare la compressione con perdita di dati.
mgkrebbs,

1

Questa domanda è FANTASTICA! ... Penso che stiamo diventando sempre troppo tecnici.

Immagine 100 x 100 pixel = 10000 pixel totali

Il ridimensionamento di un'immagine riduce i pixel. Il ridimensionamento li aggiunge. In entrambi i casi il software prende una "ipotesi istruita" per modificare il file.

Una sola riduzione: 90 x 90 (1900 px rimosso dalle informazioni sul file originale)

Riduzione in 2 passaggi: 95 x 95 (rimosso 975 px), 90 x 90 (un altro 925). Il dettaglio da catturare qui è quello del totale di 1900 px rimosso - 975 di loro NON facevano parte delle informazioni originali .

L'immagine originale è sempre la migliore. Meno "generazioni" equivalgono sempre a una qualità migliore (più vicina alla qualità originale).

PROOF (e una risposta al commento di @ mutoo)

inserisci qui la descrizione dell'immagine

È semplice ... è un algoritmo ... non è un insieme di occhi umani. Ci sono 3 colori qui. 100% nero, 50% nero e bianco (immagine in scala di grigi). Non importa come lo ridimensiono - menu dimensioni immagine, strumento di trasformazione, RGB, CMYK, 100 x 100px, 10 x 10 pollici, i risultati sono gli stessi:

Lungo il bordo nero / grigio trovi l'80% di nero (un colore che non esiste). Lungo il bordo bianco / grigio trovi il 7% nero (non esiste). [non un invito per argomento anti-alias qui]

Come tutti sappiamo (essere umani e tutti), una riduzione o un ingrandimento perfetti produrrebbe una scatola a strisce nera / grigia / bianca. E ho ancora scoperto che una singola iterazione (su o giù) ha creato una replica migliore rispetto a più.


La parte relativa alla "NON parte delle informazioni originali" non è del tutto corretta. L'algoritmo Neighbor più vicino, ad esempio, non modifica mai i valori dei pixel; rimuove solo i pixel selezionati. Alla fine, i "pixel sbagliati" iniziano a essere rimossi a causa di errori di arrotondamento dei numeri interi, quindi la qualità peggiora. Gli algoritmi "migliori", nel frattempo, possono mescolare i colori dei pixel e alcuni algoritmi di ridimensionamento della pixel art possono persino prendere "ipotesi". Questo porta alla sfocatura, che è desiderabile quando si esegue una scala singola verso il basso, ma non più.
Mateen Ulhaq,

[continua] Il prossimo più vicino è ancora peggio: rimuove i "pixel sbagliati" e fa apparire l'immagine come una scala davvero strana (vista dall'alto).
Mateen Ulhaq,

Mi riporta ai miei giorni con le telecamere stat: costruiscilo / scatta la dimensione che ti serve per la migliore riproduzione possibile. Grandi oggetti di scena per le persone che scrivono quegli algoritmi ... "Creiamo UNA cosa che elabori TUTTO e lo faccia sembrare davvero buono il 99% delle volte." <- cose piuttosto hardcore, sul serio.
Dawson,

-1

Molto probabilmente sì, ma nella maggior parte dei casi non sarai nemmeno in grado di notare la differenza.

Modifica: vedo che alla mia risposta non piace :). Forse perché è semplice. IMHO non lo rende meno vero. Beh ... dimostrami che ho torto :).

Modifica 2: volevo mantenere breve la mia risposta ma ... :)

D: In Photoshop, ci sarà una differenza di qualità quando un raster viene ridimensionato del 75% una volta anziché ridimensionato del 50% due volte? In entrambi i casi, la dimensione finale sarà la stessa: il 25% dell'originale.

UN:

  1. "Molto probabilmente sì" - dai un'occhiata al post di muntoo. Dice che ogni passaggio di interpolazione introduce alcuni errori minori. Sono errori di arrotondamento o di rappresentazione e possono contribuire al degrado della qualità. Conclusione semplice: più passaggi, più possibile degrado. Quindi l'immagine "molto probabilmente" perderà la qualità durante ogni fase di ridimensionamento. Più passaggi: più possibile degrado della qualità. Quindi l'immagine "molto probabilmente" sarà più degradata se ridimensionata in due volte rispetto a una. La perdita di qualità non è certa: ad esempio un'immagine a tinta unita, ma con quale frequenza un designer ridimensionerà immagini simili?

  2. "ma nella maggior parte dei casi non sarai nemmeno in grado di notare la differenza" - di nuovo - il post di muntoo. Quanto sono grandi gli errori potenziali? Nei suoi esempi sono le immagini ridimensionate non in 2 ma in 75 passaggi e i cambiamenti nella qualità sono evidenti ma non drammatici. In 75 passaggi! Cosa succede quando l'immagine viene ridimensionata al 25% in Ps CS4 (bicubico, campione di muntoo, ridimensionato in uno e due passaggi di conseguenza)?

in un solo passaggio in due passaggi

Qualcuno può vedere la differenza? Ma la differenza è lì:

#: 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

E può essere visto se correttamente contrassegnato (gm compare -highlight-color purple -file diff.png one-step.png two-step.png):

differenza tra ridimensionamento di uno e due passaggi

1 e 2 danno la mia risposta, che speravo di tenere breve, poiché altri erano abbastanza elaborati;).

Questo è tutto! :) Giudicalo tu stesso.


1
-1 perché questa non è una vera risposta. "probabilmente sì" ... in base a cosa ? "Non sarai in grado di notare la differenza" ... questo sito QA è rivolto ai professionisti del design , che sono proprio le persone che noterebbero piccole differenze nelle immagini. Se rimuovi la teoria non supportata e l'asserzione non supportata, non ci sono altri contenuti nel tuo post.
Farray,

Sulla base della mia esperienza. L'hai provato? Un bravo professionista sa quando usare l'aproximation invece di provare a contare se il colore differisce di una frazione del percento :)
thebodzio

Intendevo: hai provato a ricampionare l'immagine in modo incrementale e confrontare i risultati con l'immagine ricampionata in un solo passaggio? Non ho aderito alla tua esperienza.
thebodzio,

1
L'elaborazione di @thebodzio ha davvero aiutato questa risposta - e poiché i downgrade non sono permanenti, ho rimosso il mio.
Jari Keinänen,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.