Jump to content

Empfohlene Beiträge

Also, auf die Gefahr mich hier vollends zu blamieren, stelle ich den Experten meinen Algorithmus zur Schärfung einer RAW-Datei vor:

 

-> Wandeln RAW in RGB-Pixel

-> Schärfen

-> die Differenzmatrix (gegenüber Original) auf das RAW Bild "zurückrechnen"

 

Was ist daran kompliziert? :D

 

Und jetzt bitte konkrete Beiträge, keine Quellcodes oder sonstige, verklausulierten Andeutungen.

 

Hans

Link zum Beitrag
Auf anderen Seiten teilen

Also, auf die Gefahr mich hier vollends zu blamieren, stelle ich den Experten meinen Algorithmus zur Schärfung einer RAW-Datei vor:

 

-> Wandeln RAW in RGB-Pixel

-> Schärfen

-> die Differenzmatrix (gegenüber Original) auf das RAW Bild "zurückrechnen"

 

Was ist daran kompliziert? :D

Eigentlich will man sich mit den Raw-Daten nicht so viel Arbeit machen … Es ist zwar nicht kompliziert, aber es würde keine sinnvollen Ergebnisse bringen. Abgesehen davon, dass es einen bestimmten Demosaicing-Algorithmus voraussetzt, während der am Ende verwendete Raw-Konverter einen anderen verwenden könnte, geht es an der Sache vorbei: Das Nachschärfen soll dem nach dem Demosaicing naturgemäß unscharfe Bild zu knackigeren Konturen verhelfen. Dabei geht es vor allem um den Kontrast zwischen benachbarten Pixeln, die in den Raw-Daten aber die Helligkeiten in unterschiedlichen Farbkanälen enthalten – wie soll ich den Kontrast zweier Pixel vergrößern, wenn ich von einem nur dessen Rot-Anteil und vom anderen nur den Grün-Anteil kenne? Und was immer ich damit anstelle, müssen die fehlenden Informationen beim Demosaicing dann doch wieder interpoliert werden, wobei Unschärfe entsteht, der man erneut durch Nachschärfen beikommen müsste … Das Schärfen von Raw-Daten hätte deshalb wenig Sinn, selbst wenn es möglich wäre.

Link zum Beitrag
Auf anderen Seiten teilen

Wenn anerkannt wird, dass Rauschunterdrückung eine Methode der Schärfung ist

Nein, das wird nicht anerkannt. Eine Rauschunterdrückung reduziert vielmehr die Schärfe, weil die Unterdrückung des Rauschens Unterschiede zwischen benachbarten Pixeln einebnet. Man versucht, diesen Effekt zu begrenzen, indem man größere Helligkeitsunterschiede unangetastet lässt (sodass Konturen erhalten bleiben, die Textur kontrastarmer Flächen aber verloren geht) und/oder die Bildinformationen in Farb- und Helligkeitsinformationen auftrennt und nur in den Farbkanälen weichzeichnet. Damit wird das auffälligere und störendere Farbrauschen wirksam unterdrückt, während das akzeptablere Helligkeitsrauschen (aber auch die Detailzeichnung) teilweise sichtbar bleibt.

 

Aber dennoch: Eine Rauschunterdrückung ist generell mit einer Weichzeichnung verbunden, mit der die Schärfe ab- und nicht zunimmt.

Link zum Beitrag
Auf anderen Seiten teilen

Dabei geht es vor allem um den Kontrast zwischen benachbarten Pixeln, die in den Raw-Daten aber die Helligkeiten in unterschiedlichen Farbkanälen enthalten – wie soll ich den Kontrast zweier Pixel vergrößern, wenn ich von einem nur dessen Rot-Anteil und vom anderen nur den Grün-Anteil kenne? Und was immer ich damit anstelle, müssen die fehlenden Informationen beim Demosaicing dann doch wieder interpoliert werden, wobei Unschärfe entsteht, der man erneut durch Nachschärfen beikommen müsste … Das Schärfen von Raw-Daten hätte deshalb wenig Sinn, selbst wenn es möglich wäre.

 

Nach der Wandlung der Rohdaten in RGB Pixel kann ich schärfen, so viel steht fest.

 

Nach dieser Operation stelle ich Pixel für Pixel die Helligkeitsunterschiede fest, z. B. ein Pixel wird 10% heller. Es setzt sich auf Chipebene aus zwei Grün, einem Blau und einem Rot Pixel zusammen. Bei jedem der beteiligten Kandidaten erhöhe ich nun die Intensität um 10%, also den Differenzwert des RGB Pixels. Fertig.

 

Probleme sehe ich in Quantisierungseffekten. Tun wir mal so, dass Statistik auch hier unser Freund ist (Fehler bei einem Pixel werden durch Fehler bei anderen kompensiert ;)). Möglicherweise ist dies bei der schwachen Schärfung, die man auf RAW Ebene anwenden möchte, jedoch ohne Belang.

 

Hans

Link zum Beitrag
Auf anderen Seiten teilen

Will heißen der Schärfungsalgorithmus lässt sich so umrechnen, dass er vor dem Demosaicing genau das gleiche Ergebnis erzielt wie danach.

Du solltest dir das doch noch einmal (sehr gut) überlegen. Ein vertieftes Einlesen in dcraw.c kann da sehr lehrreich sein.

Ich geb's zu. Nachdem ich mich durch diverse IEEE Artikel gewühlt habe (verglichen mit C Code sind mir mathematische Abhandlungen zur Signalverarbeitung dann doch lieber ;) ), ist mir auch klar, dass ich Blödsinn geschrieben habe.

 

Was ich sonst daraus gelernt habe, ist folgendes:

 

- Die meisten Demosaicing Algorithmen enthalten schon eine Schärfung quasi als Nebeneffekt. Manche Algorithmen schärfen stärker/besser als andere. Hier ist das sehr schön veranschaulicht: Demosaicing

 

- Es gibt Demosaicingalgorithmen, die die Daten in den Fourierraum transformieren. Wenn die ohnehin schon dort gelandet sind, kann man auch gleich einen Schärfungsalgorithmus darauf loslassen, der im Fourierraum operiert, z.B. einen Wiener Filter, bevor das Ergebnis nach RGB umgerechnet wird. Ob das in der Praxis in einer Kamera wirklich gemacht wird, ist mir nicht bekannt.

Link zum Beitrag
Auf anderen Seiten teilen

Werbung (verschwindet nach Registrierung)

Nach dieser Operation stelle ich Pixel für Pixel die Helligkeitsunterschiede fest, z. B. ein Pixel wird 10% heller. Es setzt sich auf Chipebene aus zwei Grün, einem Blau und einem Rot Pixel zusammen. Bei jedem der beteiligten Kandidaten erhöhe ich nun die Intensität um 10%, also den Differenzwert des RGB Pixels. Fertig.

Da sehe ich spontan zwei Probleme: Erstens strebt eine Schärfung danach, die Korrelationen zwischen benachbarten Pixeln zu verringern; ein Pixel soll hell sein können, auch wenn sein Nachbar dunkel ist, um eine scharfe Kontur zu erzeugen. Mit der Rückverteilung des Ergebnisses der Schärfung eines einzelnen Pixels auf die Nachbarpixel, aus denen es zum großen Teil interpoliert worden ist, erhöhst Du aber wieder die Korrelation, sorgst also für weniger statt mehr Schärfe. Zweitens werden die Nachbarpixel auch zur Interpolation von deren Nachbarpixel herangezogen, sodass Deine nachträgliche Manipulation der Raw-Daten sogar noch Pixel in größerem Abstand als die unmittelbaren Nachbarpixel beeinflussen würde – das ergäbe noch mehr Unschärfe.

Link zum Beitrag
Auf anderen Seiten teilen

Die Fourier-Transformation (üblicher Weise als FFT implementiert) kann den Zeitbereich in den Frequenzbereich überführen und die inverse kann zurück transformieren.

In der Bildverarbeitung hat man es allerdings mit Ortsfrequenzen zu tun; die Zeit spielt hier keine Rolle. Die Fourier-Transformation lässt sich aber ganz genauso auf Schwingungen im Raum wie auf solche in der Zeit anwenden.

Link zum Beitrag
Auf anderen Seiten teilen

Hallo!

- Es gibt Demosaicingalgorithmen, die die Daten in den Fourierraum transformieren. Wenn die ohnehin schon dort gelandet sind, kann man auch gleich einen Schärfungsalgorithmus darauf loslassen, der im Fourierraum operiert, z.B. einen Wiener Filter, bevor das Ergebnis nach RGB umgerechnet wird. Ob das in der Praxis in einer Kamera wirklich gemacht wird, ist mir nicht bekannt.
Jetzt einmal nur aus dem Bauch heraus, jede "Schärfung" in der Frequenzdomäne lauft im Endeffekt auf eine Anhebung der hohen und höchsten Ortsfrequenzen hinaus. Das ist auch nicht allzuweit von einer Kantenverstärkung entfernt. Zwar wunderbar zum Blenden des Betrachters, aber schärfer wird dadurch nichts (das geht eher noch mit Paprika :-)

Ich vermute (!!!), daß diese Filterverfahren in der Frequenzdomäne eher zur (Farb)Rauschverminderung eingesetzt werden denn zur Schärfung alleine.

Link zum Beitrag
Auf anderen Seiten teilen

Nein, das wird nicht anerkannt. Eine Rauschunterdrückung reduziert vielmehr die Schärfe, weil die Unterdrückung des Rauschens ....

 

Allgemeingültig ist das nicht. Die Independent Component Analysis (ICA) oder auch ein Wiener-Kolmogoroff-Filter zeigen, dass Rauschunterdrückung - oder bei Anwendung der ICA sogar Entfernung des Rauschens möglich ist, ohne die Bandbreite des Signals zu beschneiden.

Ulrich

Link zum Beitrag
Auf anderen Seiten teilen

Allgemeingültig ist das nicht. Die Independent Component Analysis (ICA) oder auch ein Wiener-Kolmogoroff-Filter zeigen, dass Rauschunterdrückung - oder bei Anwendung der ICA sogar Entfernung des Rauschens möglich ist, ohne die Bandbreite des Signals zu beschneiden.

Theoretisch schon; in der Praxis bleibt das, nun ja, Theorie. Aber es spielt in diesem Zusammenhang auch keine Rolle: Die Annahme, eine Rauschunterdrückung sei eine Form des Nachschärfens, ist falsch, und damit auch Deine Schlussfolgerung, dass eine Rauschunterdrückung auf Basis der Raw-Daten ein Beleg für ein Nachschärfen der Raw-Daten sei.

Link zum Beitrag
Auf anderen Seiten teilen

Jetzt einmal nur aus dem Bauch heraus, jede "Schärfung" in der Frequenzdomäne lauft im Endeffekt auf eine Anhebung der hohen und höchsten Ortsfrequenzen hinaus. Das ist auch nicht allzuweit von einer Kantenverstärkung entfernt. Zwar wunderbar zum Blenden des Betrachters, aber schärfer wird dadurch nichts (das geht eher noch mit Paprika :-)

Schärfer wird’s schon; nur die Auflösung bleibt davon unbeeindruckt. Objektiv und Sensor sorgen für die Auflösung; um das gewünschte Maß an Schärfe kümmert sich dann das Nachschärfungsverfahren, und da kann man so viel Schärfe ’reindrehen, wie man mag.

Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...