• 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.
  • Stimmt ab über die Sieger des DSLR-Forum Fotowettbewerbs September 2025.
    Thema: "Straßenfotografie s/w"

    Nur noch bis zum 30.09.2025 23:59!
    Jeder darf abstimmen!
    Zur Abstimmung und Bewertung hier lang
  • 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.
    Alle Informationen dazu gibt es demnächst 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

5D Mark II - Sensortemperatur im RAW-File gespeichert?

Nannte sich früher "signed short" als es noch 16-Bit CPUs gab oder auch "signed byte" und ist in der Informatik etwas ganz normales. War es jedenfalls früher, als man mit Speicher noch haushalten mußte und nicht für jeden Boolean 64 Bit verballern konnte.
Nö falsch.

Erstens gibt es auch heute noch signed byte und signed short.
Zweitens werden und wurden die signed-Zahlen im Zweierkomplement gespeichert.
15 = 0b 0000 1111
-15 = 0b 1111 0001

siehe hier: http://de.wikipedia.org/wiki/Zweierkomplement

Ich kann mal mit der 40D probieren, ob die sowas auch hat :cool:
 
Ich kann mal mit der 40D probieren, ob die sowas auch hat :cool:
Check mal im CR2 die dezimale Position 1464, ob du das auch nachstellen kannst.

Habe bei der 350D nachgeschaut, konnte in der Gegend leider nichts finden, was sinnvolle Werte liefert wenn ich mir die tatsächliche Umgebungstemperatur dazu ansehe.
 
Moin,

also das mit -128 macht folgendermassen Sinn:
1 Byte entspricht 8 Bits. Bit ist entweder 0 oder 1.

8 Bits: [ ][ ][ ][ ] [ ][ ][ ][ ]

Canon könnte sich jetzt überlegen, das erste Bit als Vorzeichen zu benutzen. Das erste Bit hat den Wert 128.

Somit wäre die Korrekte Auswertung dann aber nicht "-128", sondern nur die hinteren sieben Bits anzuschauen.

Wobei dann aber immer noch nicht gesagt ist, ob man direkt bei einem °F oder °C-Wert ist. Je nachdem, welchen Bereich man abdecken will, ist wahrscheinlich nochmal ein Offset drin, könnte genausogut auch sein, dass es 0,5°-Schritte sind, etc.
 
könnte genausogut auch sein, dass es 0,5°-Schritte sind, etc.
könnte natürlich sein. Vielleicht sinds auch 0.1°-Schritte... wer legt seine Cam mal ins Tiefkühlfach? :rolleyes:
 
Wobei dann aber immer noch nicht gesagt ist, ob man direkt bei einem °F oder °C-Wert ist. Je nachdem, welchen Bereich man abdecken will, ist wahrscheinlich nochmal ein Offset drin, könnte genausogut auch sein, dass 0,5°-Schritte sind, etc.
Wenn man die Kamera in Raumtemperatur, die man genau bestimmen kann, legt und nach einer Stunde einschaltet und sofort ein Bild macht, dürfte der Wert in etwa der Raumtemperatur entsprechen. Das ganze noch in einem anderen Zimmer, das wärmer/kälter ist machen (jeweils die Kamera ein paar Stunden liegen lassen) und man hat noch einen Referenzwert... Tjo und das dann so oft wiederholen wie man mag, machts dann nur aussagekräftiger oder widerlegt die Theorie der Sensortemperatur.
 
Moin

Check mal im CR2 die dezimale Position 1464, ob du das auch nachstellen kannst.
Wie kommst du gerade auf Position 1464? Ist es 1464 dezimal oder hexadezimal?

1464 (dez) = 568 (hex): // sorry, falsch = 5B8 (hex) siehe weiter unten...
0000560: 00000000 00000000 6d726946 65726177

6d (hex) = 1101101 (bin)
1101101 (bin) = 109
0101101 (bin) = 45, was dann ja -45 entsprechen würde.

Also das scheint nicht zu stimmen.

Und auf 1464 (hex):
0001460 00000000 00000000 00000030 00000000

Da steht auch nichts.
 
Zuletzt bearbeitet:
Bei der 50D ist an der Position 685h entsprechendes zu finden - WERT AND 01111111 ergibt Werte die ich als "Grad Celsius" gelten lassen könnte. Hier nach längerem Aufenthalt im Zimmer (ca. 21 Grad) kommt auch 21 Grad raus. Ein paar Minuten Live View bei ISO 3200, und ein paar Bilder gemacht steigt der Wert von Bild zu Bild bis 27 Grad(?). Nach dem längeren Spaziergang (etwas unter 0 ° C draußen) neulich ist die Temperatur anscheinend allmählich bis 10 Grad herunter gegangen.

Vielleicht lege ich die Kamera mal über Nacht (ohne Akku) in die Tiefkühltruhe. Vielleicht macht das aber auch jemand anders gerne lieber...
 
Adresse 5B8 (hex):
00005b0: 0000 0186 0200 0108 861a 4a53 0000 3500 ..........JS..5.

86 (hex) = 10000110 (bin)
10000110 (bin) = 134 (dez)
00000110 (bin) = 6 (dez) ~= +6°C

Könnte gut sein :top:
 
Zuletzt bearbeitet:
Wie kommst du gerade auf Position 1464? Ist es 1464 dezimal oder hexadezimal?
Die Position ist, wie ich sagte, dezimal. Wie ich darauf komme? Ich habe mir ne Aufnahme angesehen und die Temperatur geschätzt, sie in HEX umgerechnet und dann einen Wert in der Größenordnung in der Nähe der Fundstelle von kaha auch im 40D-Raw gesucht. Dann mit 2 anderen verglichen und die werte waren für mich plausibel.
 
Die Makernotes haben eigentlich nichts mit den EXIFs zu tun. Nicht jeder Wert wird in die EXIFs übernommen.
Falsch. Die MakerNotes sind Bestandteil der EXIF-Datenstruktur. Bei Canon sind sie analog zu EXIF auch aufgebaut.
Daher kann ich Dir sagen, dass Deine Entdeckung damit nicht wirklich etwas zu tun hat. Warum? Der Wert passt nicht in die Struktur, wenn ich mir die Bytes davor ansehe. Es könnte natürlich sein, dass dies ein ausgelagerter Datenblock ist, wie die Strings. Denn innerhalb der Sturktur lassen sich nur max. 4 Bytes kodieren. Alles andere muss in extra Datenblocks ausgelagert werden. Da man die Temperatur aber nie in mehr als 4 Bytes kodieren würde, würde man es auch nicht auslagern. Also kurzum, alles spricht gegen Deine Entdeckung.

Nachtrag: Die Struktur ist folgendermaßen aufgebaut:
[Tag]{2 bytes} - [Datentyp]{2 bytes} - [Länge]{4 bytes} - [Wert/Pointer zu Daten]{4 bytes}
 
Bei der 50D ist an der Position 685h

685 (hex) = 1669 (dez), also gleich wie bei der 5D MKII. Könnte das mit dem DIGIC IV Prozessor zusammenhängen? Sprich, alle Kameras mit diesem Prozessor speichern es in 685 (hex) ab?
Und Kameras mit DIGIC III (d.h. 40D & Co) speichern es an Position 5B8 (hex)... Dann müsste das bei der 450D auch dort sein, und bei der 1000D auch. Kann das jemand verifizieren?
 
AFAIK wird die Akkuspannung mit abgespeichert.

Einheit? ADC-Werte eines 8-bit-Wandlers.

Beispiel:
#FF ~ 13,2 V
#A8 ~ 8,7 V
#A0 ~ 8,3 V (2-Zellen-LiIon Akku voll bei 20 °C)
#89 ~ 7,1 V
#74 ~ 6,0 V (Abschaltgrenze)
#00 ~ 0,0 V
 
Zuletzt bearbeitet:
Akkuspannung kann ich nahezu ausschließen, der Wert dürfte nicht so stark schwanken und vor allem tendiert er bei längeren Shootings bei konstanter Umgebungstemperatur nicht nach unten, sondern nach oben (wenn man viele Bilder in kürzerer Zeit gemacht hat). Die Spannung müsste bei längerer Belastung durch LiveView merklich abfallen, kaha hat genau das Gegenteil beobachtet. Dass der Sensor den Akku mit aufwärmt und somit scheinbar höhere Spannungswerte bewirkt, kann ich nicht recht glauben, auch wenn die Umgebungstemperatur sicherlich auf den Akku auswirkungen hat.

Übrigens ist es bei der 40D mit der Firmware 1.0.3 nicht an der Stelle, die Angabe 1464 (dez.) bzw. 5B8 (hex.) bezieht sich nur auf die aktuelle 1.0.8.
 
Hab ich mal in den RAW-Files nachgeschaut,

40D und 50D: ist wohl 1464 dezimal bei beiden.
1DIII und 1DIII: 1488
450D: 1440

Man kann sich aber nicht immer drauf verlassen, dass der Wert absolut immer an der selben Stelle steht. Vor allem bei Firmware Änderungen kann sich das verschieben.

Der Wert ist aber folgendermassen leicht zu finden (und 1 Byte vor dem Wert steht immer 00):

- von vorna weg nach dem String Firmware suchen
- ab da das erste Byte mit Hex AA suchen (Start Makernotes)
- ab da sind es dann:

450D: 34 Byte
40D und 50D: 24 Byte
5dII: 25 Byte
1DIII und 1DsIII: 24 Byte

dort steht der Wert

Gruß,

Karl-Heinz
 
WERBUNG
Zurück
Oben Unten