• Neuer Gutscheincode unseres Partners Schutzfolien24:
    DSLR-Forum2025
    Dauerhaft 10% Rabatt auf alle Displayschutzfolien und Schutzgläser der Eigenmarken
    "Upscreen", "Screenleaf", BROTECT" und "Savvies".
    Der Code ist für alle Geräteklassen gültig.
  • Ich freue mich bekannt geben zu können, dass das DSLR-Forum einen neuen Aktionspartner gewinnen konnte.

    Saal Digital bietet Fotoprodukte in HighEnd-Qualität.
    Für die Mitglieder des DSLR-Forums locken Rabatte und Sonderaktionen!
    Alle Informationen dazu sowie ein tolles Einstiegsangebot unseres neuen Kooperationspartners gibt es hier.
  • Mitmachen beim DSLR-Forum Fotowettbewerb Oktober 2025.
    Thema: "Abendstimmung"

    Jeden Monat attraktive Gewinnprämien, gesponsert von unserem Partner PixelfotoExpress.
    Alle Infos zum Oktober-Wettbewerb hier!
  • In eigener Sache!

    Liebe Mitglieder, liebe Besucher und Gäste
    ich weiß, es ist ein leidiges Thema, aber ich muss es ansprechen: Werbung, Werbeblocker und Finanzierung des Forums.
    Bitte hier weiterlesen ...

  • Nicht erreichbare Adressen im Benutzerkonto
    Wir bekommen zurzeit eine große Anzahl an E-Mails, die das System zum Beispiel als Benachrichtigungen an Nutzer verschickt,
    als unzustellbar zurück, weil z.B. die Adressen nicht erreichbar sind oder das Postfach gar nicht existiert.
    Stellt doch bitte sicher, dass die Benachrichtigungen, die ihr vom System erwartet, auch zugestellt werden können.
    Nicht erreichbare E-Mail-Adressen sind dazu wenig hilfreich.
    Danke!
WERBUNG

Gamma-Fehler beim Skalieren

Archimedes1

Themenersteller
Ich möchte ja keine schlafenden Hunde wecken, aber wenn ich mir den folgenden Link so durchlese, dann erzeugen die meisten Softwareprogramme offensichtlich Gamma-Fehler beim Skalieren.

http://www.4p8.com/eric.brasseur/gamma.html

Ich habe mir das mit Hilfe von AviSynth mal genauer angeschaut. Habe hierzu ein Originalbild auf zwei verschiedene Arten verkleinert. Das erste Bild wurde mit Spline36Resize ganz normal verkleinert, das zweite mit einer entsprechenden Levels-Korrektur.

Mit dieser Levels-Korrektur bleibt der Dalai Lama auch nach einer Verkleinerung erhalten (siehe obiger Link).
 
Zuletzt bearbeitet:
Ich habe davon noch nichts gemerkt. Entscheident ist der Zentral- u./o. Mittelwert im Histogramm und der ändert sich bei mir im Promilebereich.

z.B. von 100% auf 33% verkleinern:
Mittelwert 113,18 ->113,17
Zentralwert 112 -> 111

Der Inhalt auf den der Link verweist ist leider englisch, da kann ich also nicht mitreden, weil bei solchen spezifischen Sachen Übersetzungsversuche wenig sinnvoll sind.
 
Genial :top::top:
Ich mach gerade was zum Freistellen und bin auch schon darauf gekommen, daß meine ganze Rechnerei im Prinzip falsch ist, weil die Zahlenwerte in der Datei im Prinzip zum Addieren usw. falsch sind, weil sie halt mit Gamma umgerechnet sind.

Aber:Ein praktisch wichtiger Unterschied ist mir nicht aufgefallen.
Und: Das Bild des Dalai Lama ist extra konstruiert, daß bei der üblichen, falschen Anwendung der Zahlen alles sichtbare verloren geht. Es lässt sich ganz einfach ein Bild daraus konstruieren, bei dem die übliche, falsche Anwendung ein deutliches Ergebnis bringt, die korrekte Anwendung aber nichts mehr zeigt: Einfach nochmal ein Gamma von 2.2 anwenden. In dem Falle ist das (total falsche) Ergebnis der üblichen Rechnerei ansehnlicher. Da tritt dann nämlich der umgekehrte Effekt auf: Die falsche Rechnung verbessert den Kontrast.

Ach ja, Workaround: In 16Bit arbeiten, Gamma von .45 anwenden, arbeiten, am Ende Gamma von 2.2 anwenden. Grundsätzlich linear arbeiten wollte ich nicht, dazu müsste man immer in 16- oder besser 32Bit arbeiten, das dürfte dann doch ganz derbe bremsen.
 
Tach zusammen!

Also hier geht aber einiges daneben... Eric Brasseur nennt es zwar "Gamma-Fehler". Aber im Grunde schreibt er doch darüber, daß bei einigen Bildskalierungsalgorithmen Details in den Tiefen "verschmelzen". Das hat den optischen Eindruck, als ob diese Stellen dunkler werden.

Auch bei seinen Beispielen sieht man doch ganz klar, daß nicht das Gesamt-Gamma verändert wurde, dann wäre das gesamte Bild dunkler, doch Mitteltöne und Lichter sind nicht betroffen. Oder?

Viele Grüße, Frank.
 
Also ich verstehe das so:
Wenn ich mir auf dem Bildschirm ein 50% Grau anzeigen lasse, dann steht da 50%, und ich empfinde das auch als halb so hell wie weiß. Frage ich den Kollegen wird der mir auch sagen, daß das Grau so halb so hell ist wie das Weiß. Frage ich eine Digitalkamera wird die mir sagen, daß das Grau bloß 25% der Helligkeit hat. Das Auge hat nämlich die Eigenschaft, für das Empfinden eines doppelten Reizes 4mal so viel Licht zu brauchen, während die Kamera das mehr so physikalisch sieht.

Die Zahlen in Dateien sind aufs menschliche Auge angepasst. Zwischen 0% und 100% liegen 50%, aber halt menschliche 50%, physikalische 50% sehen anders aus. Aus Sicht der Digitalkamera ist das, was Menschen da in der Mitte sehen, falsch und viel zu dunkel.

Das Bild des Dalai Lama sind ja so komische einzelne Punkte, die sich auf dem Weg ins Auge wegen dessen beschränkter Aufllösung mischen - und zwar physikalisch. Will man diesen Mischeffekt nun ins Bild einrechnen, kann man ein bisschen Weichzeichnen oder halt um 50% skalieren. Hätte man das mit den physikalischen Zahlen gemacht hätte man auch ein korrektes Ergebnis bekommen. Aber da alle Programme mit den menschlichen Zahlen rechnen kommt halt was physikalisch falsches heraus. In diesem konstruierten Fall verschwindet das Bild. Mit dem Algorithmus hat das nichts zu tun.
 
Das Bild des Dalai Lama sind ja so komische einzelne Punkte, die sich auf dem Weg ins Auge wegen dessen beschränkter Aufllösung mischen - und zwar physikalisch. Will man diesen Mischeffekt nun ins Bild einrechnen, kann man ein bisschen Weichzeichnen oder halt um 50% skalieren. Hätte man das mit den physikalischen Zahlen gemacht hätte man auch ein korrektes Ergebnis bekommen. Aber da alle Programme mit den menschlichen Zahlen rechnen kommt halt was physikalisch falsches heraus. In diesem konstruierten Fall verschwindet das Bild. Mit dem Algorithmus hat das nichts zu tun.

Weichzeichnen und skalieren hat in diesem Fall nicht den gleichen Effekt. Wir haben hier ja klar abgerenzte rote, grüne und blaue Kästchen, die erst auf dem Weg zum Auge die Farbmischung ergeben. Im Prinzip so, wie es jeder Bildschirm auch macht. Beim Weicheichnen werden die harten Kanten aufgebrochen und die Farben gemischt, sie "bluten aus". Beim skalieren berechnet die Software aus angrenzenden Kästchen einen Mittelwert. Aus jeweils "etwas" Rot, Grün und Blau wird dann eben Grau.

Das hat mit "realen" und "menschlichen" Farbwerten nichts zu tun. Das hat etwas damit zu tun, daß den Skalierungsalgorithmen die Wahrnehmung, die "Übersicht" fehlt, sie arbeiten rein mathematisch.
 
Ich hab grad kein Werkzeug zur Hand, hatte aber gestern Abend den Dalai LAma auch mal Weichgezeichnet, und das hatte genau den gleichen Effekt, nämlich daß er dann weg ist. Der Weichzeichner und ein bilineares Skalieren haben einige Ähnlichkeiten, da werden Farbwerte einiger Pixel gelesen und ein Durchschnitswert berechnet.

Auch der verbesserte Algorithmus von der Webseite macht für das Skalieren nichts anders als der Original-Algorithmus. Er rechnet nur vorher die "menschlichen" Zahlenwerte in "maschinelle" Zahlenwerte um und hinterher wieder zurück. Mit meinem Workaround oben mache ich das Gleiche in Grün und bekomme dann auch das gleiche Ergebnis.
 
Ich habe auch noch ein paar Tests mit AviSynth gemacht, um zu sehen, ob diese "Linearisierung" (Gamma-Korrektur auf 0,45) auch noch für andere Funktionen bzw. Filter sinnvoll einsetzbar ist. Beim Vergrößern und Entrauschen ging der Schuss schon mal nach hinten los. So wie es aussieht, macht die Gamma-Korrektur (in AviSynth) hauptsächlich beim Verkleinern Sinn. Die Unterschiede finde ich, je nach Motiv, doch sehr beträchtlich. Deswegen habe ich meine Scripte zum Verkleinern auch schon entsprechend angepasst.
 
Zuletzt bearbeitet:
sorry wenn ich den thread kapere, aber ich habe eine frage zu gammageschichten. wenn man aus einem rawconverter wie ufraw oder bibble ein 16bit tiff exportiert ist das dann immer linear? wenn man auf dieses bild dann einen gamma von 2.2 anwendet ist das dann eine gammakorrektur?
 
@xvlun

Im Raw-Konverter wird in jedem Falle eine kameraspezifische Kennkurve angewendet, spätestens beim Export aus dem RAW-Konverter geht somit die Linearität der Bilddaten verloren, möglichweise(?) sogar schon vor dem Import wenn die eine Vorkorrektur bereits hardwareseitig hinterm Sensor erfolgt (bei der 40D mit der Tonwertprio sher wahrscheinlich).
 
In Canons DPP gibt es da extra ein Häkchen, das die Kontrastkurve abschaltet und linear einschaltet. Dürfte also vom Raw-Konverter abhängen, Linear aktiviert man aber ganz sicher nicht versehentlich: Zeigt man linear "einfach so" an sieht das Bild sehr unnatürlich dunkel aus, aber in der EBV kann man dann das Gamma nachträglich einstellen, würde ich Gamma-Korrektur nennen.
 
Wie sich herausgestellt hat, ist diese Gamma-Korrektur im 8-Bit-Modus nur mit Vorsicht zu genießen (motivabhängig). Man kann zwar den Fehler, der bei der Gamma-Korrektur entsteht, ermitteln, resizen und auf die verkleinerte Version des Bildes anwenden - das geht mit Hilfe von AviSynth -, aber ganz ausbügeln lassen sich die Fehler, die vor allem in dunklen Bereichen auftauchen, offensichtlich nicht.
 
Ich kann die Sache immer noch nicht nachvollziehen, wenn ich mit Gammakorrektur skaliere saufen mir die Tiefen ab, bei den Lichter gibt es fast keinen Unterschied zum skalierten Bild ohne den Gammamurkst (dort sind sie etwas heller, weil ich Bikubisch schärfer verwende).

Beim Dalai Lama klappt das zwar wunderbar, schaut man sich aber das Histogramm an, sieht man, daß man mehr als die hälfte der Tonwerte wegwirft. :eek:

... beidemale natürlich bei 16bit gearbeitet.

Da man nach den Verkleinern eigentlich immer nochmal dezent nachschärft, frage ich mich wirklich, was du mit diesen Aufwand erreichen willst - a) leiden die Tonwerte (das KO-Kriterium m.M.n.), b) die minimalen Veränderungen sind ohne Vergleich nicht spürbar, c) eine minimale Kontrastanpassung in Tiefen und Lichtern oder dezentes Schärfen reicht als Gegenmaßnahme vollkommen aus.
 
Also ich hab dieses rätselhafte Gamma-Gerechne für mich jetzt so gelöst: Ich denke mir bei den Helligkeitsangaben immer noch eine Maßeinheit dazu: 50% Mensch (=Gamma 2.2) oder 50% Physik (=Gamma 1=linear)?
Ein normales Bild ist auf Mensch umgerechnet, das ist auch das, was der Monitor erwartet. Hast Du ein Gamma 0,45 auf das Bild angewendet, dann hast Du im Prinzip die Zahlenwerte der Physik. Da aber der Monitor weiter von menschlichen Zahlen ausgeht zeigt er falsch an. Zum vernünftigen ansehen muß man noch eine Histogramm-Arbeitsebene mit Gamma 2.2 drüberlegen oder das dem Programm oder Monitor sonstwie beibringen.
Aus menschlicher Sicht hat ein lineares Bild zu wenig Unterscheidungen in den Tiefen, aus Sicht eines Photonenzählers hat die menschliche Skala zu wenig in den Höhen.

Ob das beim Bearbeiten wirklich mal öfters einen Unterschied macht weiß ich auch noch nicht, aber stell Dir einen 0%-Würfel vor 100%-Hintergrund vor: Die Kanten sollten sich zu 50% "Physik" mischen, nicht zu 100% Mensch.

Aber kann man in PS nicht sowieso irgendwo einstellen, daß der mit Gamma 1 rechnet? Ich erinnere mich da an Bilder mit Magenta-Farbverläufen auf grünem Grund, die das demonstriert haben - in dem Fall gibt es nämlich ähnlich drastische Unterschiede wie beim Dalai Lama.
 
Aber kann man in PS nicht sowieso irgendwo einstellen, daß der mit Gamma 1 rechnet?

Man kann sich (in CS3) eine Aktion 32bit->Skalieren->8 bzw. 16 bit machen und der Dalailama bleibt erhalten. 32bit = linear, wenn ich das richtig verstanden habe (bin lieber Anwender als Informatiker ;)). Die Skalierung ist so auch bei anderen Bildchen echt ein bisschen anders. Ob besser - da muss ich nochmal drüber meditieren.

Ich finde aber, dass all der pixelzählende Aufwand für Webfotos ziemlich übertrieben ist und bei größeren Bildern und im Druck eh nicht sichtbar wäre. Ob nun bei Schärfungen oder in diesem Fall der Skalierung. Wenn es sich nicht gerade um ein spezielles Beispiel wie das mit dem Dalai Lama handelt, macht das doch nicht wirklich einen relevanten Unterschied.
 
Hehe Olaf, mit den 32 Bit erspart man sich tatsächlich den Gammamurks. :top:

Ich denke intern wird bei 32bit wahrscheinlich mit Fließkommaarithmetik gerechnet.

Ich bin da mit mir selber noch nicht einig, ob das nicht beim Freistellen einen großen Unterschied macht...
Ist es dir bisher aufgefallen?

Ja - Ja es macht einen "großen" Unterschied (für dich ;))
Nein - dann kann man es vernachlässigen (merkt keine Sau .. äh Hoogo :D)
 
WERBUNG
Zurück
Oben Unten