Wird eine schrittweise Verkleinerung die Qualität beeinträchtigen?

10

Gibt es in Photoshop einen Qualitätsunterschied, wenn ein Raster einmal um 75% und nicht zweimal um 50% verkleinert wird ? In beiden Fällen ist die endgültige Größe gleich: 25% des Originals.

Der Grund, den ich frage, ist, dass ich manchmal ein Bild verkleinern möchte, von dem ich weiß, dass es zuvor verkleinert wurde. Ich hasse es, hundertmal STRG + Z (rückgängig machen) zu müssen, bis das Bild seine ursprüngliche Größe hat. Wenn die endgültige Qualität nicht beeinträchtigt wird, verkleinere ich das Bild lieber genau dort und dann.

JoJo
quelle
1
Ich nehme an, Sie meinen "50% einmal gegen 25% zweimal"? Trotzdem (100%-75%)*(100%-75%) != 50%. Aber ich glaube, ich weiß, was Sie meinen, und die Antwort darauf lautet "Nein", und Sie werden den Unterschied nicht wirklich erkennen können, wenn es einen gibt.
Mateen Ulhaq
2
Keine Antwort, aber eine mögliche Lösung für Ihr Problem in ⁋2: Wenn möglich, konvertieren Sie die Ebene, deren Größe Sie ändern möchten, in ein Smart-Objekt. Sie kann ohne Auswirkungen auf die Qualität der Originaldatei hin und her skaliert werden.
Jari Keinänen
1
@muntoo Bearbeitet, um 75% einmal und 50% zweimal zu sagen. 25% zweimal ist tatsächlich größer als 50% einmal.
JoJo

Antworten:

10

Es ist ein Community-Wiki, also kannst du diesen schrecklichen, schrecklichen Beitrag reparieren.


Grrr, kein LaTeX. :) Ich denke, ich muss einfach mein Bestes geben.


Definition:

Wir haben ein Bild (PNG oder ein anderes verlustfreies * Format) mit dem Namen A der Größe A x von A y . Unser Ziel ist es, es um p = 50% zu skalieren .

Bild ( "array") B wird eine "direkt skalierten" Version seiner A . Es wird B s = 1 Anzahl von Schritten haben.

A = B B s = B 1

Bild ( „array“) C wird eine „schrittweise skaliert“ Version seiner A . Es wird C s = 2 Anzahl von Schritten haben.

A ≅ C C s = C 2


Das lustige Zeug:

A = B 1 = B 0 × p

C 1 = C 0 × p 1 ÷ C s

A ≤ C 2 = C 1 × p 1 ≤ C s

Sehen Sie diese gebrochenen Kräfte? Sie verschlechtern theoretisch die Qualität von Rasterbildern (Raster innerhalb von Vektoren hängen von der Implementierung ab). Wie viel? Wir werden das als nächstes herausfinden ...


Das gute Zeug:

C e = 0, wenn p 1 ÷ C s ∈ ∈ ist

C e = C s, wenn p 1 ÷ C s ∉ ℤ

Wobei e den maximalen Fehler darstellt (Worst-Case-Szenario), aufgrund ganzzahliger Rundungsfehler.

Jetzt hängt alles vom Downscaling-Algorithmus ab (Super Sampling, Bicubic, Lanczos Sampling, Nearest Neighbor usw.).

Wenn wir Nearest Neighbor verwenden (der schlechteste Algorithmus für irgendetwas von irgendeiner Qualität), ist der "wahre maximale Fehler" ( C t ) gleich C e . Wenn wir einen der anderen Algorithmen verwenden, wird es kompliziert, aber es wird nicht so schlimm sein. (Wenn Sie eine technische Erklärung wünschen, warum es nicht so schlimm sein wird wie der nächste Nachbar, kann ich Ihnen keine einzige Ursache nennen, die nur eine Vermutung ist. HINWEIS: Hey Mathematiker! Korrigieren Sie das!)


Liebe deinen Nächsten:

Lassen Sie uns ein "Array" von Bildern D mit D x = 100 , D y = 100 und D s = 10 erstellen . p ist immer noch dasselbe: p = 50% .

Algorithmus für den nächsten Nachbarn (schreckliche Definition, ich weiß):

N (I, p) = mergeXYDuplicates (floorAllImageXYs (I x, y × p), I) , wobei nur die x, y selbst multipliziert werden; nicht ihre Farbwerte (RGB)! Ich weiß, dass man das in Mathe nicht wirklich kann, und genau deshalb bin ich nicht DER LEGENDÄRE MATHEMATIKER der Prophezeiung.

( mergeXYDuplicates () behält nur die x, y "Elemente" ganz unten / ganz links im Originalbild I für alle gefundenen Duplikate bei und verwirft den Rest.)

Nehmen wir ein zufälliges Pixel: D 0 39,23 . Wenden Sie dann immer wieder D n + 1 = N (D n , p 1 ÷ D s ) = N (D n , ~ 93,3%) an .

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

c 1 = Boden ((39,23) × ~ 93,3%) = Boden ((36,3,21,4)) = (36,21)

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

Wenn wir nur einmal eine einfache Verkleinerung vornehmen würden, hätten wir:

b 1 = Boden ((39,23) × 50%) = Boden ((19,5,11,5)) = (19,11)

Vergleichen wir b und c :

b 1 = (19,11)

c 10 = (15,8)

Das ist ein Fehler von (4,3) Pixel! Versuchen wir dies mit den Endpixeln (99,99) und berücksichtigen die tatsächliche Größe des Fehlers. Ich werde hier nicht noch einmal rechnen , aber ich sage Ihnen, es wird (46,46) , ein Fehler von (3,3) von dem, was es sein sollte (49,49) .

Kombinieren wir diese Ergebnisse mit dem Original: Der "echte Fehler" ist (1,0) . Stellen Sie sich vor, wenn dies bei jedem Pixel passiert, kann dies einen Unterschied machen. Hmm ... Nun, es gibt wahrscheinlich ein besseres Beispiel. :) :)


Fazit:

Wenn Ihr Bild ursprünglich groß ist, spielt es keine Rolle, es sei denn, Sie führen mehrere Downscales durch (siehe "Beispiel aus der Praxis" weiter unten).

In Nearest Neighbor wird es um maximal ein Pixel pro inkrementellem Schritt (nach unten) schlechter. Wenn Sie zehn Downscales durchführen, wird die Qualität Ihres Bildes leicht beeinträchtigt.


Beispiel aus der Praxis:

(Klicken Sie auf die Miniaturansichten, um eine größere Ansicht zu erhalten.)

Mit Super Sampling schrittweise um 1% verkleinert:

Original X1 verkleinert X10 verkleinert Zoomen Sie in Downscaled x1 Vergrößern Sie Downscaled x10

Wie Sie sehen können, "verwischt" das Super Sampling es, wenn es mehrmals angewendet wird. Dies ist "gut", wenn Sie eine Verkleinerung durchführen. Dies ist schlecht, wenn Sie es schrittweise tun.


* Je nach Editor, und das Format, dies könnte möglicherweise einen Unterschied machen, so dass ich es einfach bin zu halten und es lossless aufrufen.

muntoo
quelle
Sie haben sich viel Mühe gegeben lol .... + 1
Jack
2
+1 für Mühe ... -1000 für den Gedanken, dass wir künstlerischen Leute das alles lesen werden. Ich habe zu den Bildern gescrollt :-). Und du hast deinen Standpunkt klar gemacht.
Dawson
Gute Antwort, aber ich bin mir nicht sicher, wie gute Beispiele den nächsten Nachbarn oder Super-Sampling verwenden. Zumal die bikubische Interpolation die Standardeinstellung von Photoshop ist. Außerdem habe ich beim Vergrößern eines Bildes das Gegenteil gelesen : Eine schrittweise Vergrößerung führt zu etwas besseren Ergebnissen als eine Vergrößerung aus einer Hand : photo.stackexchange.com/a/3985/1913 Warum ist dies bei einer Verkleinerung nicht der Fall?
Jari Keinänen
1
@koiyu Bicubic ist schlimmer als Supersampling, IIRC. Beim Downscaling verliert das Bild Daten. [Nicht ganz richtig, aber:] Die meisten Downscaling-Algorithmen sind so konzipiert, dass diese Daten verloren gehen, während die Kanten entfernt werden, die der nächste Nachbar erzeugt, indem die Kanten ein wenig "verwischt" werden. Diese Unschärfe summiert sich. [Vermutung] Wenn das Bild vergrößert wird, wird es "rekursiv" verbessert. Ich wette, es gibt einen oder mehrere Algorithmen, bei denen diese rekursive Qualität, obwohl sie in der CPU teuer ist, weniger Unschärfe im Bild erzeugt als beim gleichzeitigen Hochskalieren. [/ Guess]
Mateen Ulhaq
Fluch imgur für das Löschen meiner Bilder nach Inaktivität. Kennt jemand einen Dienst, bei dem die Bilder "permanent" sind?
Mateen Ulhaq
5

JoJo fragt nach Qualität. Bei den meisten Antworten geht es um die Pixelgenauigkeit , die für einen Designer oder sogar einen Fotografen so gut wie irrelevant ist.

Qualität ist ein Maß dafür, wie überzeugend und angenehm das Endergebnis ist, nicht wie "genau" es ist. Als gutes Beispiel: Klonen oder inhaltsbewusstes Füllen ersetzen unerwünschte Teile eines Bildes durch plausible Pixel: Sie sehen richtig aus, können aber sicherlich nicht als genau angesehen werden.

In Photoshop besteht der praktische Hauptunterschied zwischen dem schrittweisen Verkleinern und dem Verkleinern in einer Aufnahme darin, dass es viel länger dauert. Wenn Sie stundenweise aufladen, gehen Sie auf jeden Fall 1% auf einmal. Wenn nicht, verkleinern Sie auf einen Schlag. Machen Sie das Bild zuerst zu einem intelligenten Objekt, falls Sie später jemals eine größere Version erstellen möchten.

Unabhängig davon, welchen Algorithmus Sie verwenden (und Dawsons Kommentar zu diesen Algorithmen ist absolut zutreffend - sie sind erstaunlich), wirft das Verkleinern Pixel weg. Der Algorithmus subtrahiert Pixel und modifiziert andere, indem er errät, wie sie richtig aussehen. Ein guter Algorithmus macht gute Vermutungen; Sie erhalten ein überzeugendes Ergebnis, das jedoch in keinem sinnvollen Sinne korrekt ist . Ehrlich gesagt, genau - außer Farbe! - ist nicht das, wonach Sie suchen, es sei denn, Sie sind Wissenschaftler. In diesem Fall würden Sie wahrscheinlich gar nicht erst verkleinern.

Ein Bild, das mit dem üblichen bikubischen Algorithmus verkleinert wurde, profitiert häufig von ein wenig Schärfen. Wenn Sie jedoch JPEGs für das Web erstellen, erhöht das Schärfen die Dateigröße.

Richtige Designqualität ist die Qualität, die Sie für Ihr Endprodukt benötigen . Alles darüber hinaus erhöht die Zeit, aber nicht den Wert Ihrer Arbeit.

[Bearbeiten: Da in Koiyus Wiederbelebung dieser Frage eine Erweiterung erwähnt wurde. Ich habe einige Kommentare zu diesem Thema hinzugefügt.]

Es gibt eine Idee, die besagt, dass Sie ein etwas besseres Ergebnis erzielen ("etwas weniger schlecht" wäre genauer), wenn Sie ein Bild in kleinen Schritten nach oben verschieben, im Gegensatz zu einem einzelnen großen Sprung. Scott Kelby hat die Idee vor einigen Jahren beworben, und ab PS 7 war sie möglicherweise wahr. Ich habe nichts gesehen, was mich davon überzeugt hätte, dass sie heute richtig ist. Es hat sich in meinen eigenen Tests um PS CS2 und 3 nicht bewährt, aber es muss gesagt werden, dass ich nicht viel Zeit damit verschwendet habe.

Ich habe keine Zeit mit gründlichen Tests verbracht, da der geringfügige Unterschied zwischen "verschlechterter Bildqualität" und "etwas weniger verschlechterter Bildqualität" keinen praktischen Wert hat: Auch ist er nicht verwendbar. In meiner eigenen Arbeit lautet meine einfache Regel: "Nicht vergrößern". Aus praktischen Gründen in der Entwurfsarbeit sieht ein Bild, das für einen bestimmten Zweck etwas zu niedrig aufgelöst ist, immer besser aus als es ist, als dasselbe Bild, das von jedem Prozess, den ich habe, auf die "richtige" Auflösung "vergrößert" wurde stoßen auf, einschließlich fraktaler und bikubischer Variationen.

Alan Gilbertson
quelle
"Wenn Sie stundenweise aufladen, gehen Sie auf jeden Fall 1% auf einmal." ...Unorthodox? :)
Mateen Ulhaq
Übrigens, wird die wahrgenommene "Unschärfe" nicht absichtlich durch Downscaling-Algorithmen verursacht?
Mateen Ulhaq
Bicubic verschwimmt nicht absichtlich, aber eine leichte Erweichung ist ein häufiges Artefakt. Wenn es auftritt, wird es durch ein leichtes Schärfen behoben.
Alan Gilbertson
1
@muntoo: "Wenn Sie stundenweise aufladen ..." ist ein milder Sarkasmus, der in Diskussionen über Design-Workflows häufig vorkommt, um zu betonen, dass ineffiziente und verschwenderische Arbeitszeitnutzungen sowohl ineffizient als auch verschwenderisch sind.
Alan Gilbertson
+1 Viele gute Punkte: "Qualität ist ein Maß dafür, wie überzeugend und erfreulich das Endergebnis ist, nicht wie" genau "es ist.", "Genau ... ist nicht das, wonach Sie suchen, es sei denn, Sie sind ein Wissenschaftler "," der geringfügige Unterschied zwischen "verschlechterter Bildqualität" und "etwas weniger verschlechterter Bildqualität" hat keinen praktischen Wert "
Farray
3

Im Allgemeinen reduzieren mehrere Skalierungen die Qualität über eine einzelne Skalierung auf die endgültige Größe, aber häufig ist der Unterschied minimal. Insbesondere eine um exakte Verhältnisse kleinere Skalierung, wie beispielsweise Ihr Beispiel von (2: 1, 2: 1) gegenüber (4: 1), führt im Vergleich zur einzelnen Skalierung zu einer sehr geringen Verschlechterung. Es ist natürlich am besten, alle Änderungen in der höchsten Auflösung vorzunehmen und am Ende nur einmal zu skalieren. Wenn die genaue Skalierung zunächst nicht bekannt ist, können Sie eine Reihe von Testskalierungen durchführen, um die richtige Größe zu finden. Notieren Sie dann die Größe, werfen Sie das Testbild weg und führen Sie eine einzelne Skalierung auf diese Größe vom Original durch.

mgkrebbs
quelle
1
Sie sagen, die inkrementelle Skalierung ist schlechter, aber gibt es einen theoretischen Beweis?
JoJo
1
Ich habe gerade eine Bildschirmabdeckung meines Multimonitor-Setups erstellt und dann mit Photoshop eine Version auf 25% und eine 50 auf 50% skaliert. Die beiden Ergebnisse waren pixelidentisch. Ich war überrascht
Horatio
@ Jojo: Ich habe keinen theoretischen Beweis anzubieten (und ein Beweis würde davon abhängen, welcher von mehreren Interpolationsalgorithmen bei der Skalierung verwendet wurde). Ich denke, Sie könnten es praktisch zeigen: Nehmen Sie ein nicht triviales Bild, sagen wir 400x400, skalieren Sie es auf 380px, das auf 360 und das auf 340. Vergleichen Sie es mit einem Bild, das vom Original auf 340px skaliert wurde. Ich habe das noch nicht ausprobiert, aber ich denke, es wird eine größere Unschärfe geben, obwohl es möglicherweise nicht so visuell wahrnehmbar ist. Beachten Sie, dass für die vorgeschlagene Skalierung keine guten Verhältnisse verwendet werden.
mgkrebbs
1
Ich habe die Übung gemacht. Hier ist die 1-skalierte Version und hier ist die 3x-skalierte Version . Sie können Detailverlust in den feinen Linien der unteren Mitte sehen. Mit Zoom können Sie an vielen Stellen ähnliche sehen. Dies war eine kubische Interpolation über Gimp und verwendete PNG-Dateien, um verlustbehaftete Komprimierung zu vermeiden.
mgkrebbs
1

Diese Frage ist super! ... Ich denke, wir werden alle zu technisch.

100 x 100 Pixel Bild = 10000 Pixel insgesamt

Durch Verkleinern eines Bildes werden Pixel herausgezogen. Durch Skalieren werden sie hinzugefügt. In beiden Fällen nimmt die Software eine "fundierte Vermutung" an, um die Datei zu ändern.

Eine einzelne Verkleinerung: 90 x 90 (1900 Pixel aus den ursprünglichen Dateiinformationen entfernt)

2-Stufen-Reduzierung: 95 x 95 (975 Pixel entfernt), 90 x 90 (weitere 925 Pixel). Das Detail, das hier zu fangen ist, ist das der insgesamt entfernten 1900px - 975 von ihnen waren NICHT Teil der ursprünglichen Informationen .

Das Originalbild ist immer das Beste. Weniger "Generationen" bedeuten immer eine bessere Qualität (die der ursprünglichen Qualität am nächsten kommt).

Beweis (und eine Antwort auf @ mutoos Kommentar)

Geben Sie hier die Bildbeschreibung ein

Es ist einfach ... es ist ein Algorithmus ... es ist kein Satz menschlicher Augen. Hier gibt es 3 Farben. 100% Schwarz, 50% Schwarz und Weiß (Graustufenbild). Egal wie ich es skaliere - Bildgrößenmenü, Transformationswerkzeug, RGB, CMYK, 100 x 100 Pixel, 10 x 10 Zoll, die Ergebnisse sind dieselben:

Entlang der schwarz / grauen Kante finden Sie 80% Schwarz (eine Farbe, die es nicht gibt). Entlang der weiß / grauen Kante finden Sie 7% Schwarz (existiert nicht). [hier keine Einladung zum Anti-Alias-Argument]

Wie wir alle wissen (menschlich und alle), würde eine perfekte Verkleinerung oder Vergrößerung eine schwarz / grau / weiß gestreifte Box ergeben. Und ich fand immer noch, dass eine einzelne Iteration (nach oben oder unten) eine bessere Replik als mehrere erstellte.

Dawson
quelle
Der Teil über den "NICHT Teil der Originalinformationen" ist nicht ganz korrekt. Der Nearest Neighbor-Algorithmus ändert beispielsweise niemals die Werte der Pixel. Es werden nur ausgewählte Pixel entfernt. Schließlich werden die "falschen Pixel" aufgrund von ganzzahligen Rundungsfehlern entfernt, sodass sich die Qualität verschlechtert. "Bessere" Algorithmen können unterdessen die Farben der Pixel miteinander mischen, und einige Pixelkunst-Skalierungsalgorithmen können sogar "Vermutungen" anstellen. Dies führt zu Unschärfe, was wünschenswert ist, wenn eine einzelne Verkleinerung durchgeführt wird, jedoch nicht mehrere.
Mateen Ulhaq
[Fortsetzung] Der nächste Nachbar ist jedoch noch schlimmer: Er entfernt die "falschen Pixel" und lässt Ihr Bild wie eine wirklich seltsame Treppe aussehen (Draufsicht).
Mateen Ulhaq
Bringt mich zurück zu meinen stat Kameratagen - baue es / fotografiere es in der Größe, die du für die bestmögliche Reproduktion brauchst. Große Requisiten an die Leute, die diese Algorithmen schreiben ... "Lassen Sie uns EIN Ding erstellen, das ALLES verarbeitet und es 99% der Zeit wirklich gut aussehen lässt." <- ziemlich hardcore Zeug, im Ernst.
Dawson
-1

Höchstwahrscheinlich ja, aber in den meisten Fällen werden Sie den Unterschied nicht einmal bemerken.

Edit: Ich sehe, dass die Leute meine Antwort nicht mögen :). Vielleicht, weil es einfach ist. IMHO macht es nicht weniger wahr. Nun ... beweise mir das Gegenteil :).

Edit 2: Ich wollte meine Antwort kurz halten, aber… :)

F: Gibt es in Photoshop einen Qualitätsunterschied, wenn ein Raster einmal um 75% und nicht zweimal um 50% verkleinert wird? In beiden Fällen ist die endgültige Größe gleich: 25% des Originals.

EIN:

  1. "Höchstwahrscheinlich ja" - werfen Sie einen Blick auf Muntoos Beitrag. Er sagt, dass jeder Interpolationsschritt einige kleinere Fehler mit sich bringt. Sie sind Rundungs- oder Darstellungsfehler und können zur Qualitätsverschlechterung beitragen. Einfache Schlussfolgerung: mehr Schritte, mehr mögliche Verschlechterung. "Höchstwahrscheinlich" verliert das Bild bei jedem Skalierungsschritt an Qualität. Mehr Schritte - mehr mögliche Qualitätsminderung. Das Bild "höchstwahrscheinlich" wird also schlechter, wenn es zweimal skaliert wird als einmal. Qualitätsverlust ist nicht sicher - nehmen Sie zum Beispiel ein einfarbiges Bild, aber wie oft skaliert ein Designer ähnliche Bilder?

  2. "aber in den meisten Fällen werden Sie den Unterschied nicht einmal bemerken" - wieder - muntoos Beitrag. Wie groß sind mögliche Fehler? In seinen Beispielen sind Bilder nicht in 2, sondern in 75 Schritten skaliert und Qualitätsänderungen sind spürbar, aber nicht dramatisch. In 75 Schritten! Was passiert, wenn das Bild in Ps CS4 auf 25% skaliert wird (bikubisch, Muntoo-Beispiel, entsprechend in ein und zwei Schritten skaliert)?

in einem Schritt in zwei Schritten

Kann jemand den Unterschied sehen? Aber der Unterschied ist da:

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

Und kann gesehen werden, wenn richtig markiert (gm vergleiche -highlight-color lila -file diff.png one-step.png two-step.png):

Unterschied zwischen ein- und zweistufiger Skalierung

1 und 2 machen meine Antwort, die ich hoffte kurz zu halten, da andere ziemlich ausführlich waren;).

Das ist es! :) Beurteile es selbst.

thebodzio
quelle
1
-1, weil dies keine echte Antwort ist. "wahrscheinlich ja" ... basierend auf was ? "Sie werden den Unterschied nicht bemerken können" ... diese QS-Site richtet sich an Designprofis , die genau die Personen sind, die winzige Unterschiede in den Bildern bemerken würden. Wenn Sie die nicht unterstützte Theorie und die nicht unterstützte Behauptung entfernen, enthält Ihr Beitrag keinen weiteren Inhalt.
Farray
Basierend auf meiner Erfahrung. Hast du es versucht? Ein guter Fachmann weiß, wann er eine Annäherung verwenden muss, anstatt zu zählen, ob sich die Farbe um einen Bruchteil von Prozent unterscheidet :)
thebodzio
Ich meinte: Haben Sie versucht, ein Bild schrittweise nach unten abzutasten und die Ergebnisse mit dem in einem Schritt neu abgetasteten Bild zu vergleichen? Ich habe mich nicht an deine Erfahrung gehalten.
Thebodzio
1
Die Ausarbeitung von @thebodzio hat dieser Antwort wirklich geholfen - und da Abstimmungen nicht dauerhaft sind, habe ich meine entfernt.
Jari Keinänen