Problem mit get_sv96() - ein ISO-Bug?

CHDK-Skripte, CHDK-Entwicklung, PC-Zusatzprogramme, Informationen für Tüftler

ISO verwirrend

Beitragvon Sinter » 29.04.2010, 11:06

Hallo,

vielen Dank für Eure Unterstützung. Wenn man unsere drei Logfiles vergleicht kommt man der Tücke etwas näher:

Hamsters Logfile ist mit dem Logfile von Msl identisch und weist teilweise parallele Ungereimtheiten zu meinem eigenen Logfile auf.
Zusätzlich weicht mein Logfile in einem weiteren Punkt unerklärlich von einem gewünschten Ergebnis ab. Möglicherweise sind für meine Ixus60 die in CHDK hinterlegten ISOMode-Werte nicht ganz korrekt. (Modemap falsch?, Portierungsproblem?)

Bei allen Logfiles erscheint mir problematisch, dass Auslesebefehle teilweise zu unterschiedlichen Ergebnissen führen, manchmal je nachdem ob ein Kaltstart oder Warmstart des Skripts vorliegt.

Egal welcher der vier möglichen ISO-Auslesebefehle, es findet sich für jeden Befehl irgendwo ein unerklärliches Verhalten. Untereinander sind die Ergebnisse ebenfalls nicht stimmig. Es fragt sich, ob das nun an den Befehlen selbst liegt, oder an der internen ISO-Verwaltung?

Letztlich ist alles ziemlich verwirrend und lässt Handlungsbedarf vermuten. Vielleicht verschafft ihr euch selbst einen kleinen Eindruck über die seltsamen Resultate. Im folgenden ZIP-File befinden sich die beiden Logfiles, in denen ich die Auffälligkeiten kurz kommentiert habe. Vielleicht könnt ihr einen Blick darauf werfen, wie man den Sachverhalt nun interpretieren darf. Es bietet sich an, beide Files gleichzeitig nebeneinander anzusehen und parallel zu vergleichen.

Viele Grüße,
Sinter
Dateianhänge
iso_logfilevergleich.zip
ISO-Logfile-Vergleich
(1.61 KiB) 376-mal heruntergeladen
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Hierher ausgegliedert

Beitragvon Sinter » 03.05.2010, 13:25

Hallo,

obige Beiträge wurden aus der LowLight.lua-Diskussion hierher ausgegliedert da die besprochene ISO-Befehls-Problematik allgemeiner Natur ist:

Die Befehle zur Ermittlung von ISO-Werten scheinen äußerst tückisch zu sein und ich frage mich, ob wir bei diesen Befehlen nun aus technischen Gründen mit dem unbefriedigenden Status Quo leben müssen, oder ob jemand mit detailliertem CHDK-Systemverständnis vielleicht doch noch geniale Wege erkennt, wie sich auch diese Befehle noch zu einer soliden CHDK-Qualität formen lassen. Derzeit scheint mir die Anwendung sämtlicher ISO-Auslesebefehle unzuverlässig.

Besitzt vielleicht jemand irgendwelche Erkenntnisse oder kann abschätzen, ob sich hier doch noch etwas machen lässt?

Vielen Dank und viele Grüße,
Sinter
Ixus 60 (SD600) Firmware 1.00a
CHDK-DE aktuelle Version
Benutzeravatar
Sinter
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 416
Bilder: 2
Registriert: 14.08.2009, 13:16
Wohnort: München

Re: Problem mit get_sv96() - ein ISO-Bug?

Beitragvon LanaBüba » 20.01.2014, 21:12

Hallo,

weiß jemand, ob dieses Thema hier noch aktuell ist? Ich versuche gerade mein erstes Skript zu schreiben und schaffe es einfach nicht, zuverlässig per get_sv96 und set_sv96 die ISO-Werte zu lesen bzw. zu schreiben. Es ist egal wie ich press "shoot_half" und Co auch in Verbindung mit sleep bzw. get_shooting einsetze. Als Ergebnis erhalte ich z.B. den Werte 0 (kein Auto-ISO eingeschaltet) oder die Exif-Werte stimmen nicht mit den gesetzten Werten überein.

Interessant ist vielleicht noch folgendes: Die G1X ist lauf Canon-Homepage eine Digic 5-Kamera. Wenn ich mir im Skript get_propset ausgeben lasse, erhalte ich als Ergebnis eine 4, was laut Handbuch (S. 103) aber eine Digic 4-Kamera sein sollte.

Diese Seite habe ich u.a. zu Rate gezogen: viewtopic.php?f=7&t=1594
Canon Powershot G1X, Firmware: V1.0.1a; CHDK V1.3 Rev. 3326
Benutzeravatar
LanaBüba
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 28
Bilder: 0
Registriert: 11.01.2014, 12:47
Wohnort: Niederrhein
Kamera(s): Canon Powershot G1X V1.0.1a; CHDK V1.3 Rev. 3326

Re: Problem mit get_sv96() - ein ISO-Bug?

Beitragvon Knarf » 20.01.2014, 21:56

Von 0 bis 4 sind doch 5 Schritte!? Hm im Handbuch steht das anderst. Gib bitte mal das Script. Mal schauen was bei mir passiert.
Knarf
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 472
Bilder: 2
Registriert: 28.12.2011, 17:42
Kamera(s): SX130IS 101c
CHDK-DE-Modulversion

Re: Problem mit get_sv96() - ein ISO-Bug?

Beitragvon msl » 20.01.2014, 22:53

DIGIC und Propset stehen nicht im direkten Zusammenhang. Das eine ist der Prozessorname. Das andere ist das Propertycase-Set, sprich das Variablen-Set, unter dem wichtige Informationen abgelegt sind.

Die G1X wird mit einem DIGIC5-Prozesser und betrieben und hat das Propset 4.

get/set_sv96 arbeitet nach dem APEX96-Prinzip. Die Zahlen entsprechen nicht den ISO-Zahlen. Dazu muss ein sv96-Wert noch umgerechnet werden: sv96_to_iso und iso_real_to_market.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Problem mit get_sv96() - ein ISO-Bug?

Beitragvon LanaBüba » 22.01.2014, 11:19

Danke für eure Hilfe.

msl hat geschrieben:DIGIC und Propset stehen nicht im direkten Zusammenhang.

Das Handbuch suggeriert das aber (s.o.). Auch der dort genannte Link unterstützt diesen Zusammenhang, allerdings wird dort das Propset 4 Digic 4 und 5 Kameras zugeordnet, während im Handbuch das Propset 4 Digic 4 Kameras zugeordnet ist. Außerdem sind im Handbuch 6 beim Link aber nur 5 Propsets genannt.

msl hat geschrieben:Das eine ist der Prozessorname. Das andere ist das Propertycase-Set, sprich das Variablen-Set, unter dem wichtige Informationen abgelegt sind.

Das hatte ich auch so verstanden.

msl hat geschrieben:Die G1X wird mit einem DIGIC5-Prozesser und betrieben und hat das Propset 4.

Ich habe das so verstanden, dass das Propset eine Kamera interne Tabelle ist, in der von der Kamera Einstellungen und Messwerte abgelegt werden und auf die man per CHDK lesend (und schreibend) zugreifen kann. Ein get_sv96-Befehl würde dann die entsprechende Zeile im Propset auslesen (ein set_sv96-Befehl schreiben). Wenn der G1X jetzt aber das falsche Propset zugeordnet ist, dann könnte es Unstimmigkeiten bei der Ausführung einiger Befehle geben.

msl hat geschrieben:get/set_sv96 arbeitet nach dem APEX96-Prinzip. Die Zahlen entsprechen nicht den ISO-Zahlen. Dazu muss ein sv96-Wert noch umgerechnet werden: sv96_to_iso und iso_real_to_market.

Das habe ich schon so verstanden. Ich kann bloß keine Belichtungsberechnungen durchführen, wenn ich mit get_sv96 den Wert 0 zurück bekomme, was vielleicht ISO-Auto bedeuten könnte, aber nicht eingestellt war. Außerdem führt ein set_sv96-Befehl nicht zuverlässig zu einer Änderung des ISO-Werts, weder in der Anzeige noch in den ExIf-Daten.

Das angehängte experimentelle Skript in seiner jetzigen Form, enthält verschiedene Varianten die ich durchprobiert habe. Schlussendlich ging es mir am Schluss nur noch darum die Konsistenz der get- und set-Befehle zu überprüfen. Darum auch die ganzen print- und wait-click-Befehle.
Dateianhänge
scharft.bas
(1.03 KiB) 336-mal heruntergeladen
Canon Powershot G1X, Firmware: V1.0.1a; CHDK V1.3 Rev. 3326
Benutzeravatar
LanaBüba
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 28
Bilder: 0
Registriert: 11.01.2014, 12:47
Wohnort: Niederrhein
Kamera(s): Canon Powershot G1X V1.0.1a; CHDK V1.3 Rev. 3326

Re: Problem mit get_sv96() - ein ISO-Bug?

Beitragvon msl » 22.01.2014, 12:40

Gut, ich könnte mich jetzt damit herausreden, dass irgendwo in der Einleitung steht, dass nicht immer alle Aussagen für alle Kameras zutreffen. Fakt ist, die G1X hat das Propset 4. Der Prozessortyp ist mehr oder weniger uninteressant. Für CHDK ist da die Betriebssystem-Version interessanter.

Damit du siehst, was alles so für die G1X kameraspezifisch definiert ist, hier mal der entsprechende Link zum Quellcode-Teil, der dafür zuständig ist: https://www.assembla.com/code/chdk/subv ... m_camera.h

Da meine SX220 ebenfalls das Propset 4 benutzt, kann ich dich auch auf folgende Seite verweisen, auf der ich die gefundenen Propertycase-Variablen ausführlicher gelistet habe: viewtopic.php?f=10&t=2444#p22811

get_sv96 müsste bei eingestellter ISO100 einen Wert um 411 ergeben (Das ist von Kamera zu Kamera leicht abweichend). Das nur mal als Beispiel.

Gruß msl

Edit: Es gibt im Unterordner CHDK/SCRIPTS/TEST zwei Skripte für ISO-Tests.
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Re: Problem mit get_sv96() - ein ISO-Bug?

Beitragvon LanaBüba » 28.01.2014, 13:44

So, habe jetzt endlich mal wieder Zeit, mich um dieses Thema zu kümmern.

msl hat geschrieben:Damit du siehst, was alles so für die G1X kameraspezifisch definiert ist, hier mal der entsprechende Link zum Quellcode-Teil, der dafür zuständig ist: https://www.assembla.com/code/chdk/subv ... m_camera.h

Danke. So ähnlich habe ich mir das vorgestellt - eine CHDK-spezifische Charakterisierung der Kamera. Kann ich aus der Datei jetzt auch etwas herauslesen, was für die Skrip-Programmierung relevant ist.
Aufgefallen ist mir z.B. die Tatsache, dass anscheinend Blendzahl 16 das Maximum für die G1X ist (CAM_EXT_AV_RANGE).
Was verbirgt sich z.B. hinter "CAM_DNG_LENS_INFO"?
Bei "CAM_DISABLE_RAW_IN_HQ_BURST" und folgende: Bedeuted dies, dass ich in diesen Modi auch das CHDK-Raw nicht verwenden kann?
Verbirgt sich hinter "CAM_MARKET_ISO_BASE" der nataive ISO-Wert der Kamera?

msl hat geschrieben:Da meine SX220 ebenfalls das Propset 4 benutzt, kann ich dich auch auf folgende Seite verweisen, auf der ich die gefundenen Propertycase-Variablen ausführlicher gelistet habe: viewtopic.php?f=10&t=2444#p22811

Sehr interessante Seite, besonders da die Auflistung ausführlicher ist als auf dieser Seite. Ich habe stichprobenartig einige Einträge für die G1X überprüft und komme zum selben Ergebnis.

Ich müsste doch jetzt die get_av- und set_av-Befehle eigentlich auch durch direktes lesen und schreiben über Propset ersetzen können.

msl hat geschrieben:get_sv96 müsste bei eingestellter ISO100 einen Wert um 411 ergeben (Das ist von Kamera zu Kamera leicht abweichend). Das nur mal als Beispiel.

Wenn ich keine 0 erhalten habe, dann passten die Werte wie von dir beschrieben schon.

msl hat geschrieben:Es gibt im Unterordner CHDK/SCRIPTS/TEST zwei Skripte für ISO-Tests.

Danke für den Hinweis. Werde ich demnächst ausprobieren.
Canon Powershot G1X, Firmware: V1.0.1a; CHDK V1.3 Rev. 3326
Benutzeravatar
LanaBüba
CHDK-Einsteiger
CHDK-Einsteiger
 
Beiträge: 28
Bilder: 0
Registriert: 11.01.2014, 12:47
Wohnort: Niederrhein
Kamera(s): Canon Powershot G1X V1.0.1a; CHDK V1.3 Rev. 3326

Re: Problem mit get_sv96() - ein ISO-Bug?

Beitragvon msl » 28.01.2014, 22:24

Eine Beschreibung der Definitionen ist hier zu finden: https://www.assembla.com/code/chdk/subv ... e/camera.h

In dieser Datei werden die grundsätzlichen kameraspezifischen Definitionen festgelegt, die dann je nach Kamera andere Festlegungen erhalten können.

CAM_DNG_LENS_INFO => Objektivangaben für DNG-Exif-Daten
CAM_DISABLE_RAW_IN_HQ_BURST => Wenn definiert, werden in diesem Modus keine CHDK-RAW/DNG-Dateien erzeugt, da dies zu Fehlern führt.
CAM_MARKET_ISO_BASE => Basis-Wert für Berechnungen von Market-ISO-Werten, kann je nach Kamera abweichen.

Av- und Tv-Werte kannst du sicherlich auch direkt aus den Variablen auslesen. das macht aber wenig Sinn, da die Skriptfunktionen das Gleiche machen.

Gruß msl
Benutzeravatar
msl
Super-Mod
Super-Mod
 
Beiträge: 4567
Bilder: 271
Registriert: 22.02.2008, 11:47
Wohnort: Leipzig
Kamera(s): A720 1.00c
SX220 1.01a

Vorherige

Zurück zu Code-Ecke

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 21 Gäste