dcraw ist ein in mühevoller und jahrelanger Kleinarbeit entstandener Raw-Konverter, den Dave Coffin durch 'reverse engineering' von verschiedenen Raw-Dateien programmiert hat. Hier ist die Seite des Autors mit der aktuellen Kameraliste. Das Programm selbst ist in C geschrieben, der Quellcode ist ebenfalls auf dieser Seite erhältlich. Ausführbare Programme für Mac und Win gibt es hier, und hier gibt es sogar prozessoroptimierte Versionen.
Soweit nichts neues, nur leider gibt es keine anständige Dokumentation. Das beste, was ich gefunden habe war das hier und das hier. Ich möchte hier mal eine kleine Zusammenfassung und Anleitung auf deutsch verfassen (für Win XP).
Zuerst muss man sich natürlich das Programm (für Win dcraw.exe) runterladen, und in irgendein Verzeichnis schmeißen, zB C:\dcraw. Dann im Start-Menu auf "Ausführen" clicken und in das Feld "cmd +" eintippen und bestätigen. Dann geht ein Fensterchen auf, und man kommt sich vor, wie zu DOS-Zeiten... /ninja.gif" style="vertical-align:middle" emoid="" border="0" alt="ninja.gif" />
http://minolta.eazypix.de/forum/dcraw1.gif' target='_blank
Man startet im User-Verzeichnis, und muss sich dann erstmal mit entsprechenden "cd"-Eingaben (change directory) zum richtigen Verzeichnis durchkämpfen (Ich schreibe das deshalb so ausführlich, weil das wohl heute nicht mehr unbedingt zum Standardrepertoire der WinXP-Userschaft zählt). Mit "cd.." geht man eine Verzeichnisebene "hoch", also in Richtung C:, mit "cd blabla" geht's im Verzeichnis "runter" in das Unterverzeichnis blabla. Bei mir waren das also folgende Eingaben:
cd..
cd..
cd dcraw
Dann kommt folgender prompt.
C:\dcraw>_
Jetzt ist man im richtigen Verzeichnis und es kann losgehen: Zuerst kann man mal "dcraw" eintippen, dann kommt eine Schnellanleitung:
http://minolta.eazypix.de/forum/dcraw2.gif' target='_blank
Mehr gibt's nicht an offizieller Dokumentation /smile.gif" style="vertical-align:middle" emoid="" border="0" alt="smile.gif" />
Wenn man nun ein Bild konvertieren will, dann tippt man also folgendes ein:
dcraw.exe [Parameter] [Datei(liste)]
Der Knackpunkt und das Besondere sind die Parameter, und die will ich mal genauer erklären.
-[n]Bestimmt das Ausgabeformat. Erlaubte Werte sind:
2 ... erzeugt eine gamma-korrigierte 8bit PPM- oder PBM-Datei (default)
3 ... erzeugt eine lineare 16bit PSD-Datei
4 ... erzeugt eine lineare 16bit PPM-Datei
Besonders interessant ist der Parameter -3, da hierbei die Daten am wenigsten "verbogen" werden, und somit ein Optimum an Qualität möglich wird. Da keine Gamma-Korrektur der Daten stattfindet, ist das Bild dunkler als "normal". -2 setzt den Weißpunkt auf 99% und wendet ein Gamma von 0.45 an.
-aErzeugt einen automatischen Weißabgleich. Dazu werden die einzelnen Sensoren gemäß ihrer "Farbe" im Mosaikfilter mit unterschiedlichen Multiplikatoren bearbeitet. Dieser Multiplikator-Satz besteht aus vier einzelenen Multiplikatoren für die Farben Rot Grün Blau Grün, und kann manuell über den Parameter -r [n1] [n2] [n3] [n4] eingegeben werden. Sinn dieser Funktion ist, eine Aufnahme einer weißen Fläche von dcraw analysieren zu lassen, sich die Daten durch den Parameter -v anzeigen zu lassen, und dann für weitere Bilder manuell vorzugeben.
Achtung: Der Parameter -a wird von einem gesetzten Parameter -r überschrieben und somit wirkungslos.
-b 1.0 Führt eine Gamma-Korrektur an den Raw-Daten durch. Der Wert 1.0 ist der default-Wert, ein kleinerer Wert erzeugt ein dunkleres Bild (0 = schwarz), ein größerer ein helleres Bild. Die Software UFRaw erlaubt eine Betrachtung der Wirkung von -b auf das Histogramm. Diese Angabe ist mit gesetztem Parameter -3 oder -4 sinnlos, da dann eine lineare Konvertierung erfolgt.
-B [n1] [n2]Wendet ein "kantenschonendes" Rauschfilter an. [n1] beschreibt einen Pixelwert, [n2] ist eine Farbangabe in CIE Lab (Farbabstand). Ein Startwert von -B 2 4 wird empfohlen. Ich habe damit noch nicht experimentiert.
-cSchreibt die Daten in die Standardausgabe. Keine Ahnung, was man damit anfangen kann.
-dSteht für document mode, und ist für Bilder von Drucksachen vorgesehen. Dabei wird keine Farbinterpolation (Demosaicking) vorgenommen. Es erscheinen also im Bild die einzelnen Pixel in der Grauschattierung (Helligkeit), die die Sensorpixel registriert haben. Das Ergebnis lässt sich mit -b oder -r beeinflussen, der Multiplikator-Satz zur Einzelsensor-Anpassung wird also angewendet. Weiterhin werden auch die Bit-Werte auf den Zielraum skaliert, also zB 12bittige Sensor-Werte mit 16 multipliziert, um den vollen Wertebereich in 16bit auszunutzen. Ohne Parameter wird ein 8bit PGM erzeugt, mit -3 oder -4 ein lineares 16bit PSD resp. PGM.
Achtung: Der Parameter -d wird bei gesetztem -h ignoriert.
-DWirkt wie -d, aber noch extremer: Es finden keinerlei Anpassungen statt, noch nicht mal die Bit-tiefe wird auf das Endformat skaliert. Liegen die Raw-Daten 12bittig vor, werden sie 1:1 in den 16bit Raum überführt. Von den möglichen Werten 0-65.535 in 16bit werden nur die ersten 12 Bit genutzt, also nur die Werte 0-4.095. Daher erscheint das Bild extrem dunkel. Das ist wohl die rohest mögliche Konvertierung. Das Ergebnis ist ein lineares 16bit PSD.
-eExtrahiert das Vorschaubild (Thumbnail), und speichert es als [Dateiname].thumb.jpg (oder. Ppm, abhängig von der Kamera).
Achtung: Dieser Parameter überschreibt alle anderen. Bei gesetztem -e wird immer nur das Vorschaubild extrahiert, es findet keine sonstige Konvertierung statt.
-fSteht für four color und dient dazu, bei der Farbinterpolationdas Bild mit 4 Farben zu berechnen. Zum einen wichtig bei Kameras, die 4-Farb-Filter verwenden (Kodak DCS20x/720x: YMYC; Nikon Coolpix 700/775/800/880/885/900/900S/950/990/995/2100/2500/3100/3500/4300/4500/5000/5700: CYGM; Sony DSC-F828: RGBE), zum anderen empfohlen, wenn bei den Interpolationsarten VNG (-q 2) oder AHD (default, -q 3) Probleme mit Artefakten in glatten Flächen auftauchen. Bei 4-Farb-Kameras wird eine PAM-Datei erzeugt.
-hErzeugt ein half-size image, bei dem aus jeweils 4 Sensorpixeln ein Bildpixel interpoliert wird. Das ist die mit Abstand schnellste Konvertierung, und ist unerlässlich beim Experimentieren.
Achtung: Eventuell gesetzte Parameter -d oder -D werden ignoriert
-H [n]Spitzlicht-Restaurierung (Highlight recovery). Befinden sich in mindestens einem Farbkanal an einer Stelle noch Werte unterhalb der Überlaufschwelle, dann können die anderen Kanäle damit restauriert werden - natürlich nicht farbverbindlich. Was bei Adobe Camera Raw ganz hervorragend klappt, gelingt dcraw nur symbolisch: Übergelaufene Werte werden durch Rosa-Schattierungen ersetzt... /ninja.gif" style="vertical-align:middle" emoid="" border="0" alt="ninja.gif" />
Folgende Werte sind erlaubt:
0 ... Ausgeschaltet, die Spitzlichter werden gekappt (clipping), und die Kanäle mit weiß "gefüllt" (default)
1 ... Die Spitzlichter werden nicht abgeschnitten, sondern "irgendwie" mit Rosa gefüllt. (= -n)
2..9 ... Hier sollten die Spitzlichter "intelligent" wiederhergestellt werden. Allerdings ohne vorzeigbares Resultat.
Hierbei werden die Werte, die per -i unter daylight multipliers ausgelesen werden (als R G /cool.gif" style="vertical-align:middle" emoid="" border="0" alt="cool.gif" /> so umgerechnet, dass der Rot-Wert auf 1.000000 landet, und die anderen entsprechend skaliert werden. Werden also die Werte [n1] [n2] [n3] ausgelesen, dann berechnet sich der Multiplikator-Satz so:
1.000000 [n2/n1] 1.000000 [n3/n1]
Achtung: Der Parameter -H wird von einem gesetzten Parameter -r überschrieben und somit wirkungslos.
-iIdentifiziert die Kamera, und liest einige EXIF-Daten aus. Besonders interessant sind die letzten beiden Zeilen (Beispiel Dimage A2):
Daylight multipliers: 2.094750 0.922500 1.174418
Camera multipliers: 271.000000 256.000000 751.000000 256.000000
Die erste Zeile gibt die Multiplikatoren an, mit denen jeder einzelene Farbwert multipliziert werden muss, um bei Tageslicht eine ausgewogene Farbgebung zu erzeugen. In diesem Falle werden R-Werte mit 2.094750, G-Werte mit 0.922500 und B-Werte mit 1.174418 multipliziert. Wird eine neutrale Fläche bei Tageslicht aufgenommen, so wird diese Fläche auch im konvertierten Bild als neutraler Grauton wiedergegeben. Das rührt daher, dass zum einen die Sensoren unterschiedlich auf bestimmte "Lichtfarben" reagieren, und zum anderen die Farben der Filter unterschiedlich "dicht" sind. Weicht das Licht in seiner Farbtemperatur von Tageslicht ab, dann müssen andere Multiplikatoren verwendet werden. Diese lassen sich zB mit -a ermitteln. Bei der Konvertierung ohne Parameter werden genau diese Multiplikatoren als Multiplikator-Satz verwendet. Dabei wird der kleinste Wert (G) auf 1.000000 normiert, und die beiden anderen entsprechend skaliert:
0.922500 normiert auf 1.000000 (G)
2.094750 : 0.922500 = 2.270731 für R und
1.174418 : 0.922500 = 1.273082 für B ergibt:
2.270731 1.000000 1.273082 1.000000
Die zweite Zeile gibt die Multiplikatoren gemäß der Kamereinstellung bezgl. Weißabgleich an, und zwar in der Reihenfolge des Multiplikator-Satzes R G B G. Diese Werte werden ebenfalls normiert:
256.000000 normiert auf 1.000000 (G)
271 : 256 = 1.058594 ( r)
751 : 256 = 2.933594 ( b) ergibt:
1.058594 1.000000 2.933594 1.000000
Achtung: Dieser Parameter überschreibt alle anderen außer -e. Es finden außer der Anzeige der Daten keine weiteren Konvertierungen statt.
-jFür Fujifilm Kameras mit SuperCCD. Dabei wird das Bild um 45° gedreht, so dass ein Bildpixel einem Sensorpixel entspricht. Klingt nach cooler Spielerei...
Dieser Parameter wird bei Raw-Bildern von anderen Kameras ignoriert.
-k [n]Setzt den Schwarzpunkt. Defaultmäßig von der Kamera bestimmt, kann er hier manuell entsprechend gesetzt werden. Die Skalierung findet im Bit-Raum des Raw-Bildes statt, und bringt Farbverschiebungen mit sich. Wird mit gesetztem Parameter -v sichtbar:
Scaling with black=0, pre_mul[] = 2.270731 1.000000 1.273082 1.000000
-mEntspricht dem Parameter -o 0 (Keine Farbraum-Konvertierung).
-nEntspricht dem Parameter -H 1 (kein channel clipping).
Achtung: Der Parameter -n wird von einem gesetzten Parameter -r überschrieben und somit wirkungslos.
-o [n]Gibt den Ziel-Farbraum an. Mögliche Werte sind:
0 .. .RAW: Farbraum der Kamera, die Werte werden nicht konvertiert. (= -m)
1 ... sRGB (D65) (default)
2 ... AdobeRGB (D65)
3 ... Wide Gamut D65
4 ... Kodak ProPhotoRGB (D65)
5 ... CIE XYZ
-qGibt den Algortihmus der Farbinterpolation vor. Erlaubte Werte sind:
0 ... Bilineare Interpolation: Schnell und einfach.
1 ... Reverse. konnte bei einem schnellen Test keinen Unterschied zu 1 feststellen.
2 ... VNG (Variable Number of Gradients): Hochwertiges Ergebnis, neigt aber zu schachbrettartigen Kanten. Einfach zu entfernendes Rauschen.
3 ... AHD (Adaptive Homogeneity-Directed): Generell bestes Ergebnis, bessere Kanten als VNG, dafür nicht so gut zu entrauschen.
Hier findet sich ein guter Vergleich zwischen VNG und AHD.
-r [n1] [n2] [n3] [n4] Bestimmt den Multiplikator-Satz, der bei gesetztem Parameter -v in folgender Zeile angezeigt wird:
Scaling with black=0, pre_mul[] = 2.270731 1.000000 1.273082 1.000000
Wird -r nicht gesetzt, dann werden die daylight multipliers-Werte übernommen (siehe Parameter -i). Eine unverfälschte Darstellung erhält man, wenn man -r 1 1 1 1 setzt. Dann werden die unterschiedlichen Helligkeiten der Primärfarben ins konvertierte Bild übernommen. Somit kann man beispielsweise eine notwendige Korrekturfilterung für eine bestimmte Lichttemperatur ermitteln. Hier kann man die mit den Parametern -a und -v ermittelten Werte einsetzen.
Achtung: Der Parameter -r überschreibt gesetzte Parameter -a, -w, und -H (-n).
-sFür Fujifilm-Kameras mit SR-Pixeln. Die Werte der sekundären Pixel werden dabei um 4 Stufen unterbelichtet eingerechent, um Details in den Lichtern darzustellen. Dieser Parameter wird bei Raw-Bildern von anderen Kameras ignoriert.
-tDreht oder spiegelt das Bild. Erlaubte Werte:
0 ... Unterdrückt jede Drehung, auch wenn von Kamera in EXIF hinterlegt (0:0:0).
1 ... Spiegelung an der vertikalen Bildachse (H:0:0).
2 ... Spiegelung an der horizontalen Bildachse (0:V:0).
3 ... Spiegelung an horizontaler und vertikaler Bildachse = Drehung um 180° (H:V:0).
4 ... Spiegelung an vertikaler Bildachse und Drehung um 90° CCW (0:0:T).
5 ... Drehung um 90° CCW (H:0:T).
6 ... Drehung um 90° CW (0:V:T).
7 ... Spiegelung an vertikaler Bildachse und Drehung um 90° CW (H:V:T)
8 ... wie 0 (0:0:0).
9 ... wie 1 (H:0:0), usw.
90 ... 90° CW, entspricht 6 (0:V:T).
180 ... 180°, entspricht 3 (H:V:0).
270 ... 270° CW, entspricht 5 (H:0:T).
Wird kein Wert vorgegeben, wird die Kameraeinstellung übernommen.
-vGibt bei der Konvertierung entsprechende Meldungen aus:
http://minolta.eazypix.de/forum/dcraw3.gif' target='_blank
Unerlässlich beim Testen und Experimentieren.
-wNimmt einen Weißabgleich entsprechend den Kameraeinstellungen vor. Dabei werden die unter camera multipliers genannten Werte für den Multiplikator-Satz verwendet (siehe Parameter -i).
Achtung: Der Parameter -w wird von einem gesetzten Parameter -r überschrieben und somit wirkungslos.
-zSetzt den Zeitstempel der ausgegebenene Datei auf den Aufnahmezeitpunkt aus den EXIF's.
Werden keine Parameter explizit gesetzt, dann werden folgende Parameter implizit gesetzt:
-2 ... 8bit gammakorrigiertes PPM/PBM
-b 1.0 ... Standard-Helligkeit
-H 0 ... Kanal-Clipping
-k 0 (oder kamerabhängiger Wert) ... Setzung des Schwarzpunktes
-o 1 ... Konvertierung nach sRGB
-r [Werte entsprechend daylight multipliers] ... Weißabgleich
-t [Wert entsprechend Kameravorgabe] ... Drehung
Eine möglichst unverfälschte farbige Darstellung ergibt folgender Parameter-Satz:
-3 -m -r 1 1 1 1
So, habe fertig, und nun viel Spaß!