![]() |
RAW vs. CRAW
Hallo,
habe bisher immer das craw-Format verwendet. Hat hier jemand Erfahrung ob es da große Unterschiede bezüglich der Qualität zum raw-Format gibt? Für ein paar Hinweise wäre ich sehr dankbar (bin mit einer A900 u. Aperture 3 unterwegs). Peter |
Laut Sony gibt es keine Qualitätsunterschiede zwischen craw und raw.
Gruß, Jochen |
Da gibt es ein paar Threads zu. Es gibt Testbilder auf denen man einen Qualitätsverlust nachweisen konnte, allerdings sehr technisch Testbilder die selten der Realität entsprechen (am nächsten dran kam Astrofotografie). Anders gesagt der Qualitätsverlust ist minimal.
|
Ich habe länger mit RAW fotografiert, dann mit CRAW. Macht in meinen Augen in der Praxis keinen Unterschied.
RAW hat aber dann einen Vorteil, wenn man die Bilder - so wie ich - zum Speicherplatz-Sparen in dng konvertiert. Interessanterweise sind konvertierte RAWs kleiner als konvertierte CRAWs. |
Danke,
werde dann bei craw bleiben. Peter |
Ich hab mir die Implementierung der Sony cRAW-Dekomprimierung in dcraw.c mal näher angeschaut. Das ist ganz schön gewieft was da passiert :D (keine Angaben auf Gewähr)
Es werden immer Blöcke aus 16 Pixeln komprimiert. Dabei wird der größte und der kleinste Wert bestimmt und im cRAW gespeichert (jeweils als 11 Bit Wert). Die Position 0-15 des minimalen Werts und des maximalen Werts werden danach mit jeweils 4 Bit kodiert. Damit sind von 16 späteren Pixeln noch 14 Pixel zu speichern. Diese werden als 7-Bit Offset zum Minimalwert gerechnet. So wird aus ursprünglich 16 x 12 Bit = 192 Bit = 24 Bytes ein komprimierter Block aus 11+11+4+4+(14x7) = 128 Bit = 16 Bytes. Code:
11 11 4 4 7 7 Gruß, Jochen |
Hallo Jochen,
Danke für den Einblick. Ich als Informatiker teile Deine Meinung: sehr gewieft und ausgefuchst. Allerdings sind diese Algorithmen schon länger bekannt und finden hier ein sehr sinnvolles Anwendungsfeld. Zitat:
Grüße, Jörg |
Zitat:
vermutlich wird dann das niederwertigste Bit weggelassen und hinterher durch eine Null ergänzt. Ich sehe für die Bildqualität eher einen Nachteil, wenn nur geringe Kontraste auftreten, z.B. bei einem Bild im Nebel. Aus xxxxxxxx0000 bis xxxxxxxx1111 wird dann xxxxxxxx0000 bis xxxxxxxx1110, statt 16 Stufen existieren nur noch 8. Gruß, Stuessi |
Hallo,
laut Sony ist das RAW-Format eine verlustfreie Komprimierung der Daten und das cRAW ein verlustbehaftete Komprimierung der Bilddaten. JPEG ist auch eine verlustbehaftete Komprimierung. Der entstehende Verlust an Bildinformation ist sicherlich Situationsbedingt. |
@wolfram.rinke
Wo kann man dieses Statement von Sony nachlesen? Gruß, Jochen |
Zitat:
Der Gewinn beim Komprimieren von RAW nach DNG ist aber nicht soooo erheblich im Vergleich zu RAW zu cRAW. |
Zitat:
Im Prinzip funktioniert das ca. so: Code:
12 Bit Was mir noch nicht klar ist: 1) dcraw.c benutzt ein Feld "curves" um das Dekomprimierte 11-Bit Resultat auf den finalen Wert zu setzen. Mir ist noch nicht klar was für eine Abbildungsfunktion dahintersteckt 2) Ist das wirklich der Algorithmus oder womöglich eine nicht ganz stimmige Rekonstruktion. Ich habe da ein paar Indizien gesehen, die andeuten, dass das noch nicht das ganze Ding ist. Gruß, Jochen |
Zitat:
Grüße Uwe |
Zitat:
|
Zitat:
|
|
Da auch hier immer wieder DNG ins Spiel gebracht wird.
Wer sicher auch zukünftig immer in der Adobe-Welt bleiben will, mag sich überlegen, seine Raws durch gewandelte DNGs zu ersetzen. Wer auch andere Konverter einsetzen will - oder zumindest nicht ausschließen will, das später einmal zu tun - der sollte sich diesen Schritt gut überlegen. Die meisten Nicht-Adobe-Konverter kommen nicht, oder nur sehr eingeschränkt mit DNGs zurecht. Da nützt es auch nichts, wenn immer wieder die "Zukunftssicherheit" von DNG im Vergleich zu den "proprietären" Formaten beschwört wird. Das Gegenteil ist der Fall. Rainer |
Zitat:
Das Benutzerhandbuch zur Alpha700 beschreibt cRAW als "komprimiert" und RAW als "Rohdaten". (S96) Eine weitere Fußnote verweist auf eine Komprimierung von 60-70% (!). Dies dürfte sicher aber nicht auf cRAW sondern auf die "JPEG fein" Formateinstellung beziehen. Zitat: "Die Daten werden um 60 bis 70% im vergleich zu einem nicht komprimierten Bild komprimiert." Im Benutzerhandbuch der Alpha850 wird auf S100 ebenfalls cRAW als "komprimiert" beschrieben und mit der Anmerkung "Die Daten werden um 60 bis 70% im vergleich zu einem nicht komprimierten Bild komprimiert." angegeben. Im Alpha 700 handbuch sind 2 Fußnoten angegeben im Alpha850 Handbuch nur mehr eine Fußnote mit dem selben Text. Ich vermute, dass es sich dabei um einen Übersetzungsfehler handelt. Bzw sich die Angaben bei der A850 nicht auf das cRAW sondern auf das "JPEG fine" Format beziehen (wie bei der Alpha700). Scheibl beschreibt in seinem Buch "Sony Alpha 700" auf Seite 19ff das RAW-Dateiformat leider nicht korrekt. Er stellt das RAW als "völlig unkomprimiert" und cRAW als "verlustfrei komprimiert" dar. Frank Exner beschreibt in seinem Buch "Sony Alpha 700 (Digital ProLine, Data Becker)" das cRAW Format als komprimiertes RAW Format mit "nahezu" verlustfrei. Die schwankenden Dateigrößen eines RAW Bildes, sind durch die eine Verlustfreiekomprimierung zu erklären, da ein völlig unkomprimiertes Bild mit zB 24MPixel und 12Bit ADC je Farbpixel ergibt 48 Bit je Pixel (wegen RGBG Bayer-Pattern), d.h. 6Byte je Pixel. Somit liefert ein RAW Sensor 144MB an Daten. Tatsächlich hat die RAW Datei aber nur zw. 34-36MByte. Was bedeutet, dass die RAW Daten verlustfrei komprimiert sein müssen. Das cRAW Format interpretiert mit seinem Verfahren den Bildinhalt bzw. und interpoliert zwischen den Min und Max Wert, wodurch zumindest theoretisch und auch real ein Datenverlust auftritt, der sich aber in der JPEG Ausarbeitung nicht erkennbar macht. Ein technisches Benutzerhandbuch wäre zur Alpha Serie sicher sehr hilfreich. |
Zitat:
Frage: wieviel MB hat ein entwickeltes craw im Format Tiff? (da ich keines davon auf der Platte habe, kann ich nicht nachschauen, müsste extra eines produzieren, hab aber gerade die Kamera nicht hier ;) ) |
Zitat:
Zitat:
Zitat:
Übrigens sind es natürlich im TIFF 144MB, weil das TIFF 24MPx(16Bitx3)/8 = 144MB an Daten enthält. Die R, G und B Pixel des Bayer-Sensors werden nicht kombiniert! Für jeden der 24MP wird anhand seines Wertes und seiner Umgebung die R, G und B Komponente errechnet. Sonst würde die "Pixelposition" im späteren Bild ja gar nicht mehr mit der "Pixelposition" auf dem Sensor übereinstimmen. Ob bei cRAW tatsächlich real ein Datenverlust auftritt kann man so nicht klar sagen. Das gesamte Prinzip eines Bayer-Sensors ist statistisch und nicht exakt - ob die technisch möglichen Variationen der Sensorwerte sich also innerhalb der ganzen Pipeline von Sensordaten zu 16Bit RGB-Daten (also noch vor JPEG-Wandlung!) tatsächlich als statistisch signifikant erweisen, das ist so nicht klar. Zitat:
Gruß, Jochen |
Zitat:
Es können ja keine Pixel verlorengehen ... |
Ich habe eben 2 Testfotos gegen einen kontrastlosen Hintergrund (weisse Wand).
Das RAW Bild ist 36MB das cRAW ist 24MB (bzw. 1/3) kleiner. Zitat:
|
Wir bräuchten eigentlich ein unkomprimiertes RAW, aus dem wir ein komprimiertes machen. Das Komprimierte wird dann wieder dekomprimiert und mit dem ersten verglichen. Insbesondere wäre auch ein Vergleich der entwickelten Bilder interessant.
Leider ist es nicht so einfach mit dem komprimieren, da ein paar Dinge nicht ganz klar sind wie es die Kameras machen. Gruß, Jochen |
Zitat:
Zitat:
|
Das wäre schon möglich - vielleicht gibt es da schon was - in einem der verlinkten Threads wurde das Programm RAWHide (http://www.my-spot.com/RHC/) eines der Mitglieder erwähnt. Damit soll es möglich sein. Wenn ich wieder ein bisschen mehr Freizeit habe, werde ich das auch mal probieren. Trotzdem besteht natürlich das Problem, dass wir nicht entgültig wissen können, ob die dort implementierte Komprimierung wirklich dieselben Annahmen verfolgt wie bei jener in der Kamera. Da geht es beispielsweise um Themen wie Rundungen, oder ob mit den Daten noch irgendeine andere Aufbereitung erfolgt.
Gruß, jochen |
Hochinteressante Diskussion, geht richtig in die Grundlagen. Bin gespannt auf die Fortsetzung :-)
Grüße, Uwe |
Zitat:
Zitat:
Gespeichert werden dann nicht die Differenzen (xi-Min) sondern die modifizierten Werte. Bis zu einem Kontrastumfang von 7 Blendenstufen bleiben dann auch alle Zwischenwerte erhalten. Gruß, Stuessi |
Zitat:
Zitat:
Gruß, Jochen |
Ihr seit schon abgefahren irgendwie :lol::top::cool:
Gibts eigentlich sowas auch bei Nikon, Canon? |
Zitat:
Streng mathematisch ist es natürlich Augenwischerei: cRAW ist dort verlustfrei, wo der Helligkeitsumfang nur maximal 7 Bit oder 128 Stufen beträgt. Da wäre JPEG aber auch verlustfrei ;-) Betrachtet man das ganze aber rein pragmatisch vom Ergebnis, scheint cRAW völlig zu reichen. Mit dem Auge lässt sich nach Aussage von Grafikern wohl kein Qualitätsunterschied erkennen, selbst bei Pixel-peeping in 100% Ansicht. Grüße, Uwe |
@Karsten
Das Thema ist vielleicht wieder etwas interessanter, wenn man bedenkt, dass außer bei A700, A850 und A900 der nicht-komprimierte RAW-Modus gar nicht existiert! Alle anderen Modelle implementieren heute cRAW! Die A3x0, A5x0 liefern also als RAW ausschließlich cRAW! Bei Nikon gibt es ähnliches: http://regex.info/blog/photo-tech/nef-compression http://majid.info/blog/is-the-nikon-...ruly-lossless/ Erst ab der D300 aufwärts gibt es "lossless compressed" NEF. Zitat:
http://www.rawtherapee.com/RAW_Compare/ Man sollte sich bewusst sein, was ein Bayer-Sensor - mit seinem 1-Chip-Design und den spatial getrennten Farbkomponenten im Bayer-Muster für jeden einzelnen Pixel bedeutet! Ein herkömmlicher RGB-Pixel besteht bereits aus allen drei Komponenten - ein Bayerpixel wiederrum ist nichts wert ohne den Kontext in dem er sich befindet. Zitat:
Gruß, Jochen |
Das stimmt. Das ist interessant. Nur in der berühmten Praxis wahrscheinlich zu 99,99% irrelevant.
|
@Karsten
ich sehe das Problem eher als psychisch - obwohl die praktische Relevanz vermutlich wirklich völlig vernachlässigbar ist, kann ich mir gut vorstellen, dass darüber der eine oder andere A900-Nutzer anders denkt. Gruß, Jochen |
Zitat:
Was Du schreibst ist alles richtig und spiegelt etwas den Unterschied im Ansatz von Mathematikern und Physikern wider ;) Als "nullte Näherung" wird ein Physiker die ganze Weiterverarbeitung zunächst vernachlässigen (mathematisch die Übertragungsfunktion =1 setzen), um zu einer ersten Abschätzung zu kommen. Dass die tatsächlichen Auswirkungen der Kompression durch die nachfolgenden Weiterverarbeitungsschritte abgemindert (oder aber auch verstärkt!!!) werden können, sei damit nicht bestritten. Solange wir diesen Einfluss aber nicht kennen, ist die einfachste Näherung, ihn zunächst einmal zu vernachlässigen - sonst sind wir nur am spekulieren ;) Unter dieser Vereinfachung noch mal ein quantitativer Versuch: cRAW arbeitet mit 11 Bit. In einem lokalen Bereich von 16 Pixeln kann ungünstigstenfalls sowohl der dunkelste Wert = 0 als auch der hellste Wert = 2^11 = 2048 vorkommen. cRAW kann 2^7 = 128 Zwischenwerte zwischen dem hellsten und dem dunkelsten der 16 Pixel darstellen. Bei einer linearen Teilung wären das schlimmstenfalls Helligkeitsschritte von 2048/128 = 16 Bit Breite (bei einem Dynamikumfang des Sensors von 12 Blendenstufen entspräche eine Stufe der Breite 16 Bit durchschnittlich maximal 1/10 Belichtungsstufe). Alle digitalen Helligkeitswerte von "0" bis "15" würden in cRAW dann z.B. zu einem Näherungswert "ungefähr 8", alle Helligkeitswerten von "16" bis "31" zu "ungefähr 24", alle Helligkeitswerte "32" bis "47" zu "ungefähr 40" usw. Was kann schlimmstenfalls passieren: a) Kleine Unterschiede von weniger als 1/10 Belichtungsstufe können "weggebügelt" werden (z.B. eine feine Struktur mit Helligkeitswerten zwischen "0" und "17" würde zu einem unstrukturierten einheitlichen Wert "8"). b) Kleine Unterschiede können auf maximal 1/10 Belichtungsstufe "übertrieben" werden (z.B. wenn benachbarte Pixel gerade in unterschiedliche Bereiche fallen: "17" würde zu "ungefähr 8" abgerundet, "18" würde zu "ungefähr 24" aufgerundet). Die maximale Abweichung von 1/10 Belichtungsstufe würde nur an Stellen im Bild auftreten, an denen innerhalb von 16 Pixeln die Helligkeitswerte von Null auf Maximal springen. Mal ganz abgesehen von allen Überlagerungen durch Rauschen, Bayer-Interpolation, JPEG-Konversion usw. bei der anschließenden Weiterverarbeitung bis zum fertigen Bild ist die Frage, ob das Auge eine mögliche Helligkeitsschwankung von 1/128 des maximalen Dynamikumfangs auf 0,3 mm Bildfläche auflösen kann. Und selbst wenn es das kann bleibt die Frage, ob es für den Bildeindruck wichtig ist, was innerhalb dieses Pünktchens passiert. Eine interessante Frage ergibt sich natürlich aus der ganzen Diskussion: Braucht man überhaupt 12 oder 14 Bit A/D Wandler, solange der ganze Dynamikumfang des Sensors auf nur 10-12 Belichtungsstufen absolut begrenzt ist? Sind die digitalen Helligkeitsstufen nicht schon zu fein, ist da überhaupt noch Information enthalten - oder nur noch Fluktuation durch Rauschen? Geht solche feine Information nicht im weiteren Prozess eh verloren? Und könnte unser Auge am Ende der ganzen Kette solche feinen Information aufnehmen und verarbeiten? Ich habe mal gelesen, dass 16 deutlich unterscheidbare Grauwerte ein brilliantes, scharfes s/w-Bild ergeben. Da sind wir dann wieder bei der Verkaufs-Psychologie, und in der Schlussfolgerung beinander ;) Grüße, Uwe |
moin,
Zitat:
Von daher ist es sinnvoll, die RAW-Werte mit einer möglichst hohen bit-Auflösung darzustellen, um bei der Entwicklung (Bayer-Demosaicing und Dynamik-Kompression und Tonwertkorrektur) möglichst viel Reserve zu haben. cRAW bringt jedenfalls kaum Vorteile, Speicherplatz kostet ja fast nix mehr. Schneller werden die Kameras dadurch nicht. PS: auch die NEX kennen offenbar nur cRAW, jedenfalls sind die RAWs zu klein für unkomprimierte Dateien. A700/850/900 kennen beide Modi, aber keinen verlustfrei komprimierten RAW-Modus: wenn man die einzelnen Farblayer als TIFFs ablegt, könnte man die z.B. mittels lzw komprimieren und so ähnliche (allerdings stark inhaltsabhängie) Kompressionsraten erzielen wie das eben gerade nicht verlustfreie cRAW. Per 7zip(lzma) oder bzip2 lassen sich die RAWs der a900 z.B. auf typisch 60-70% verlustfrei komprimieren; das wäre eine Option, wenn man den inneren Aufbau der RAWs nicht ändern möchte. |
Zitat:
|
@ddd
Inwiefern kannst du wissen, ob cRAW keine Vorteile bietet? Der Algorithmus scheint sich - nach allem was ich bisher gesehen habe - ideal für eine Hardwareimplementierung eignen. Die Kompressionsrate ist fix - das sind alles Eigenschaften, die ein so zeitkritisches System wie eine Kamera sehr beeinflussen können. Du machst es dir also glaube ich etwas zu einfach, wenn du den Nutzen von cRAW gleich abschreibst. Unsere Vorstellungen der Sensorverarbeitungspipeline ist ebenfalls oft zu simpel: In einem der beiden von mir gezeigten Nikon Links wird u. a. erwähnt, dass viele A/D-Wandler-Implementierungen auf einfacher zu bauenden D/A-Wandlern aufbauen, kombiniert mit einem Zähler und einem "precision voltage comparator". Im beschriebenen Fall beschleunigt das den Capture-Prozess um das 8-Fache. Die quantisierten Daten des RAW-Sensors wären also tatsächlich nicht "lossy" und die Komprimierung eigentlich nur eine optimale Speicherung der sowieso vom Sensor gelieferten Daten. Für eine auf Geschwindigkeit ausgelegte Kamera durchaus ein brauchbares Design. Genau genommen ist nichteinmal klar, ob das "unkomprimierte" RAW der A700 nicht womöglich einfach ein entpacktes cRAW ist! Zumindest gibt es nichts offizielles dazu. Deine Ausführung zu Reserven durch möglichst hohe Bitauflösungen kann ich so ebenfalls nicht einfach teilen. Zum einen gilt nunmal einfach "Garbage in" -> "Garbage out". Was nützen denn feiner aufgelöste RAW-Werte, wenn schon alleine Objektiv, AA-Filter und A/D-Wandler diese Auflösung einfach nicht bringen - das Leben ist kein Wunschkonzert. Gruß, Jochen |
moin,
wenn ich mich recht entsinne, schafft die a900 auch in cRAW nicht mehr Bilder bis "buffer full" als im RAW-Modus (ich hatte das ausprobiert, aber bin mir jetzt nicht sicher). Das Wegschreiben der Daten dauert selbst mit einer Extreme Pro (90MByte/s) auf jeden Fall zu lange, um die 5B/s aufrecht zu erhalten. Jochen, Deine links zum NEF-Format sind interessant, aber die Sony-cRAW-Kompression funktioniert fundamental anders. (Vorsicht: die "Kompression" z.B. der Dimage A2 ist wieder was anderes und definitv lossless). Die dort beschrieben NEF-Kompression stellt eine Art Gammakurve dar, wohingegen der Sony-Algorithmus eine Art HAM-Modus mit optionaler Tonwertkompression ist (Amiga-Freunde wissen, was ich meine). Damit greift auch Dein Hinweis auf die Beschleunigung nicht, ist auch (bei der a900) nicht nötig: der Sensor hat auf jeder Spalte einen A/D-Wandler, und jeder der über 6000 A/D-Wandler muss pro Frame nur gut 4000 Werte digitalisieren. Das ist nun wirklich vom timing her nicht sehr anspruchsvoll... Den Rest erledigen DSPs, die a900 hat mehrere davon. Nebenbemerkung: alle mir bekannten schnellen A/D-Wandler basieren auf dem "umgekehrten" Prinzip; ich bin mir nicht mal sicher, dass es andere überhaupt (noch) gibt. Noch mehr Speed kann man rausholen, wenn man den Zähler durch einen B-Tree ersetzt, dann ist man schon nach maximal <bit-Tiefe>-Schritten+Einschwingzeit fertig statt nach <zielauflösung>-Schritten. Garbage-In > Garbage-Out: das Problem hast Du bei jeder Messung. Wenn man das aber zu Ende denkt, würden 8bit-A/D-Wandler oder sogar 6bit-Wandler völlig ausreichen... Warum sollte man 12bit, 14bit oder gar 16bit (bei MF-Rückteilen üblich) verwenden, welche viel aufwändiger sind... Nein, lieber "Überabtastung" und hinterher in Ruhe den "Müll" (Rauschen, jetzt nicht wie hier üblich sondern als Rauschen im Sinne des universalen Messproblems zu lesen) erkennen und aussortieren/abschneiden/verwerfen. Denn alle o.g. Algorithmen machen per se-Annahmen, legen also vorher fest, was weggelassen wird. Nachträglich kann man dagegen feststellen, wo die Grenze zwischen Inhalt und Müll ist und situationsangepasst nur den Müll verwerfen. Ok, real dürfte z.Zt. der Unterschied zwischen RAW und Sony-cRAW gering sein und bei 99% aller Bilder bei 99% aller Nutzer keine Rolle spielen. Es muss jeder für sich selbst entscheiden, ob sie/er diese marginale Reserve haben möchte oder nicht. |
Zitat:
Zitat:
Zitat:
Nebenbemerkung (hat nichts mit deinem Post zu tun): Ich finde es immer wieder lustig, wie im Rahmen der Diskussion immer wieder erbost angemerkt wurde, dass man doch mit Algorithmen wie "bzip" oder "RAR" ebenso stark komprimieren könne und dass Ergebnis "lossless" wäre. Wer derartiges ernsthaft vorschlägt hat noch nie auf so hardwarenaher Ebene gearbeitet ;-). Zitat:
Zitat:
Zitat:
Zitat:
Gruß, Jochen |
Hallo,
da wir uns ziemlich einig über den Algorithmus für craw sind ist es an der Zeit, zu überlegen, welche Aufnahmesituationen evtl. einen Unterschied zwischen aus craw- und raw-Format entwickelten Bildern erkennen lassen. Gruß, Stuessi |
Alle Zeitangaben in WEZ +2. Es ist jetzt 04:06 Uhr. |