[Lua] AV-Skript mit langen Belichtungszeiten grösser als 1 sec.

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

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon msl » 19.11.2011, 11:06

Hallo Werner_O,

ich war dir ja noch ein Test-Skript schuldig. Aus Zeitgründen ist es aber nur ein einfacher Test geworden. Das Skript macht 5 Aufnahmen. Die erste Aufnahme ist eine ganz normale Aufnahme zum Vergleich. Die weiteren 4 Aufnahmen versuchen mit unterschiedlichen Methoden eine Belichtungszeit von 2 Sekunden zu erzwingen. Zwischen den Aufnahmen wird 5 Sekunden gewartet, um sicher zu stellen, dass die Aufnahmen vollständig abgearbeitet werden. Vorzugsweise sind der P- und Av-Modus zu verwenden.
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
********************************
Licence: GPL
(c) msl 2011/11/19
********************************
@title Shoot Test
@param a parameter 1
@default a 0
]]


print("Aufnahme-Test")
print("****************")
print("normale Aufnahme")
sleep(3000)
shoot()

cls()
print("erzwinge 2 Sekunden:")
print("1.Versuch")
sleep(3000)
set_tv96_direct(-96)
shoot()

print("2.Versuch")
sleep(5000)
set_tv96_direct(-96)
press("shoot_half")
repeat sleep(10) until get_shooting() == true
press("shoot_full")
release("shoot_full")
release("shoot_half")
repeat sleep(10) until get_shooting() ~= true

print("3.Versuch")
sleep(5000)
set_tv96_direct(-96)
press("shoot_half")
repeat sleep(10) until get_shooting() == true
set_tv96(-96)
press("shoot_full")
release("shoot_full")
release("shoot_half")
repeat sleep(10) until get_shooting() ~= true

print("4.Versuch")
sleep(5000)
press("shoot_half")
repeat sleep(10) until get_shooting() == true
set_tv96_direct(-96)
press("shoot_full")
release("shoot_full")
release("shoot_half")
repeat sleep(10) until get_shooting() ~= true
Erstellt in 0.009 Sekunden, mit GeSHi 1.0.8.9


Ich bin gespannt, wie die SX20 reagiert. Meine beiden Kameras erzeugen bei allen 4 Methoden eine Belichtungszeit von 2 Sekunden.

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: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon Werner_O » 19.11.2011, 13:33

Hallo msl,

schön daß Du die Zeit für ein weiteres Test-Skript gefunden hast.

Hier meine Testergebnisse nach 10 Testreihen im P- und AV-Modus:
die Aufnahmen 2-5 haben auch bei mir 2 sec Belichtungszeit :-)

Hinweis für andere Tester:
Allerdings muß man die Kamera nach jeder Skriptausführung aus- und wieder einschalten weil sonst entweder bereits das erste Bild 2 sec BZ hat oder aber das Skript nur noch insgesamt 4 Aufnahmen machen könnte (das ist mir zwei mal passiert).
EDIT:
Hier noch ein Link für den bequemen Download dieses Skriptes von meiner HP.

Den im Skript einstellbaren "Parameter 1" habe in der Defaulteinstellung von 0 gelassen.

Liebe Grüße
Werner_O
(CHDK-DE 1.1.0 859)
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon msl » 20.11.2011, 22:03

Hallo Werner_O,

damit wäre nun bewiesen, dass auch bei der SX20 das Überschreiben der Belichtungszeit ganz normal funktioniert. Das "Skript" ist so natürlich kaum zu gebrauchen, da die Werte permanent bis zum Ausschalten überschrieben werden. War auch nur schnell so dahin geschrieben.

Nun können wir uns dem eigentlichen Problem wieder annehmen. Vielleicht sollte noch einmal das Skript Tvextend_v2 mit aktiviertem Shooting getestet werden.

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: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon Werner_O » 21.11.2011, 00:51

Hallo msl,

das Skript "Tvextend_v2" hatte ich doch bereits auch mit aktiviertem Shooting ausgiebig getestet und es war leider immer nur max. 1 sec BZ möglich.

Habe ich da vielleicht etwas übersehen, und wenn ja was sollte ich da evtl. neu testen?

Liebe Grüße
Werner_O

(CHDK-DE 1.1.0 859)
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon msl » 21.11.2011, 11:28

Hallo Werner_O,

ich habe jetzt noch einmal alle Schritte überprüft und festgestellt, mit dem zur Verfügung gestellten Skript kann es garnicht funktionieren. Wie so oft war der Fehler hinter der Kamera zu suchen.

Lange Rede kurzer Sinn, ich habe dir einfach einen falschen Befehl in das Skript eingebaut. In meiner Testumgebung stand aber der richtige Befehl. So konnte ich immer behaupten, dass es bei mir funktioniert - sorry #-o .

Hier nun das geänderte und erweiterte Skript:
Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
********************************
Licence: GPL
(c) msl 2011/11/21
********************************
@title Tv extended
@param a Shooting 1=ja 0=nein
@default a 0
@param b Beli-Korrektur
@default b 0
]]


function getShootInfo()
    press("shoot_half")
    repeat
        sleep(10)
    until get_shooting() == true
   
    local Bv=get_bv96()
    local Av=get_av96()
    local Sv=get_sv96()
    local Tv=get_tv96()
    local F =get_focus_state()
   
    release("shoot_half")
    repeat
        sleep(10)
    until get_shooting() ~= true
   
    local Tv_calc = Bv + Sv - Av
    local FocusState = "nicht OK"
    if F > 0 then FocusState = "OK" end
   
    cls()
    print("Kamera:", Tv)
    print("CHDK  :", Tv_calc)
    print("Fokus :", FocusState)
   
    return Tv, Tv_calc, F
end

tv96, tv96_calc, focus_state = getShootInfo()

if a == 1 and focus_state > 0 then
    if tv96_calc < 0 then set_tv96_direct(tv96_calc) else set_tv96_direct(tv96) end
    if b ~= 0 then set_ev(32*b) end
    shoot()
end
Erstellt in 0.006 Sekunden, mit GeSHi 1.0.8.9
In den Parametern gibt es zusätzlich einen weiteren Parameter zur Belichtungskorrektur. Damit ist es möglich, in Drittelschritten die Belichtung zu korrigieren, z.B. -2 entspricht -2/3 Belichtungseinheiten.

Da der Befehl zum Überschreiben der Belichtungszeit diesen Wert dauerhaft bis zum Ausschalten der Kamera einträgt, wird dieser nun auch immer wieder neu überschrieben, egal ob der von CHDK oder von der Kamera berechnete Wert benutzt wird.

So, nun bin ich mal gespannt, ob wir uns der Lösung der eigentlichen Aufgabe nähern.

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: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon Werner_O » 22.11.2011, 01:16

Hallo msl,

vielen Dank für die Klarstellung und das neue Skript.

Letzteres habe ich eben mal ausgiebig vor allem im AV-Modus getestet, aber auch einige Test-Aufnahmen im P-Modus kamen zu den gleichen Ergebnissen:
damit werden tatsächlich automatisch berechnete Belichtungszeiten (im AV- oder P-Modus) größer als 1 sec möglich :-)))

Das Testszenarium war ein abgedunkelter Raum, in welchem ich durch Änderung der Blende und ISO-Einstellungen sowie meinem stufenlos regelbaren Deckenfluter lange Belichtungszeiten sogar größer als 15 sec erzwingen wollte, da bei meiner SX20IS laut Handbuch die max. Belichtungszeit (im M-Modus) bei 15 sec liegt.
"Shoot" war dabei jeweils aktiviert, und von der Möglichkeit einer Belichtungskorrektur habe ich bei diesen ersten Tests noch keinen Gebrauch gemacht.

Hier die ersten Testergebnisse zum neuen Skript bei meiner SX20IS 1.02d:
1) Durch das Skript werden automatische Belichtungszeiten von bis zu max. 15 sec möglich - noch länger geht bei mir nicht (auch wenn es nötig wäre).
<< EDIT 22.11.2011:
Diese Aussage von mir ist eindeutig falsch - siehe mein nächstes Posting! >>
2) Die vom Skript angezeigten Werte für die Belichtungszeit (siehe Seite 133 im aktuellen deutschen CHDK-Handbuch) passen durchaus zu den tatsächlichen Belichtungszeiten bei den Aufnahmen. Desweiteren wird aber klar, daß meine SX20IS keinen stufenlosen Verschluß hat und Belichtungszeiten von 1-15 sec nur stufig einstellen kann. Inwieweit Belichtungszeiten kleiner als 1 sec stufenlos oder ebenfalls nur stufig möglich sind habe ich bisher noch nicht getestet.
3) Bei von der Kamera errechneten Belichtungszeiten >= 1 sec wird bei Aufnahmen diese Belichtungszeit verwendet und nicht die vom Skript errechnete Belichtungszeit (so wie es im Skript auch gewollt ist).
4) Ungewöhnlich ist, daß meine Kamera vor der Aufnahme gleich zwei mal hintereinander per AF fokussiert (und jeweils vorher AF-Hilfslichter sendet da diese aktiviert sind). Wird bei der ersten AF-Fokussierung kein gültiges Ergebnis erreicht bricht das Skript die Aufnahme ab, ansonsten wird danach erneut per AF fokussiert. Hier sehe ich noch Verbesserungsbedarf.
5) Die vom Skript überschriebene BZ ist nun nicht mehr endgültig und nur durch Aus-/Ein-Schalten löschbar. Ein neuer Skriptaufruf generiert eine neue BZ, ebenso eine "normale Aufnahme" ohne aktiviertem Alt-Modus.

So, nun bin ich mal gespannt, ob wir uns der Lösung der eigentlichen Aufgabe nähern.

Auf jeden Fall - meine neuen Testergebnisse sind ja sehr vielversprechend!

Schade nur, daß hier im Forum außer mir niemand anders Deine Testskripts ebenfalls testet :-(((
Das geht ja eigentlich alle hier im Forum an, weil es fast alle Kameramodelle betrifft (und nicht nur meine SX20IS)!

Jetzt machst Du Dir tatsächlich die Mühe diese unselige 1 sec Belichtungszeit-Grenze im AV-/P-Modus zu knacken und alle schauen nur tatenlos zu ohne selber mal an der eigenen Kamera zu testen - das empfinde durchaus als recht frustrierend.
Ich möchte darum explizit noch mal darauf hinweisen daß dieses Forum kein "Selbstbedienungsladen" ist sondern auf die Mithilfe möglichst vieler User angewiesen ist!

Auch die neueste Version dieses Lua-Skriptes von msl kann man nun von meiner eigenen Homepage direkt und sehr bequem herunterladen:
TVExt4.zip
Es wäre halt nur schön, daß auch andere hier das immense Potential dieses Skriptes (momentan natürlich noch eine frühe Beta-Version) begreifen würden und darum eigene Tests in ihrem eigenen Interesse machen würden damit daraus zukünftig "eine runde Sache werden kann".
Außerdem sollte es ja ein besonderer Anreiz sein, an dieser Stelle mithelfen zu können, bisher als nicht änderbar angesehene Beschränkungen vom Canon-OS via CHDK-Skript zu durchbrechen.

Liebe Grüße
Werner_O
Zuletzt geändert von Werner_O am 23.11.2011, 00:08, insgesamt 2-mal geändert.
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon h3px » 22.11.2011, 17:28

Hi msl, hi Werner_o,
ich teste gerade an meiner SX200IS 1.00c. Sieht soweit gut aus.

Ich habe mal die Antworten von Werner_o genommen und kommentiert:
1) Durch das Skript werden automatische Belichtungszeiten von über 60 sec. möglich. Allerdings scheint die Kamera ab irgendeinem Wert auszusteigen.
CHDK-Wert -684 ging noch. Knapp über eine Minute. Bei CHDK-Wert -901 ist die Kamera jetzt wohl wieder ausgestiegen.
Mal sehen ob ich das genauer eingrenzen kann.


2) Die vom Skript angezeigten Werte für die Belichtungszeit (siehe Seite 133 im aktuellen deutschen CHDK-Handbuch) passen durchaus zu den tatsächlichen Belichtungszeiten bei den Aufnahmen.
Ja, passt. Die Kamera rechnet auch "krumme" Werte (-138), ob genau die Belichtungszeit oder der nächste Schrittwert genommen wir, kann ich nicht sagen. In den EXIFs stehen keine krummen Werte.

3) Bei von der Kamera errechneten Belichtungszeiten >= 1 sec wird bei Aufnahmen diese Belichtungszeit verwendet und nicht die vom Skript errechnete Belichtungszeit (so wie es im Skript auch gewollt ist).
Ja, 1/6 gem. Kamera, 1/8 CDHK --> EXIF 1/6. Passt...

4) Ungewöhnlich ist, daß meine Kamera vor der Aufnahme gleich zwei mal hintereinander per AF fokussiert (und jeweils vorher AF-Hilfslichter sendet da diese aktiviert sind). Wird bei der ersten AF-Fokussierung kein gültiges Ergebnis erreicht bricht das Skript die Aufnahme ab, ansonsten wird danach erneut per AF fokussiert. Hier sehe ich noch Verbesserungsbedarf.
In der Tat. Im Dunkeln fokussiert es sich oft schlecht. Und MF nimmt das Script bei mir nicht an.

5) Die vom Skript überschriebene BZ ist nun nicht mehr endgültig und nur durch Aus-/Ein-Schalten löschbar. Ein neuer Skriptaufruf generiert eine neue BZ, ebenso eine "normale Aufnahme" ohne aktiviertem Alt-Modus. Yep.

6) Die Belichtungskorrektur scheint bei mir nicht zu funktionieren. Ich habe mal mit Werten bis 9 getestet. Die CHDK-Werte bleiben gleich (sollen sie vermutlich auch) die Bilder sind gleich.
Allerdings zeigt die Rückschau eine Belichtungskorrektur von +3 an. Nur das Bild ist nicht heller.

Ansonsten sind die Bilder genau so belichtet, wie man es sich beim manuellen Einstellen der Belichtungszeit im CHDK-Menü immer wünscht. :D

Wie immer DANKE & viele Grüße
h3px
Benutzeravatar
h3px
CHDK-Begeisterter
CHDK-Begeisterter
 
Beiträge: 365
Bilder: 10
Registriert: 15.01.2009, 20:38
Wohnort: ~ MUC
Kamera(s): S 110 103a - SX 260 101a
Ixus 870 101a - A590 101b

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon Werner_O » 22.11.2011, 21:08

Hallo h3px:

Danke für Deine Tests und Deine Rückmeldung :-)

Durch das Skript werden automatische Belichtungszeiten von über 60 sec. möglich. Allerdings scheint die Kamera ab irgendeinem Wert auszusteigen.
CHDK-Wert -684 ging noch. Knapp über eine Minute. Bei CHDK-Wert -901 ist die Kamera jetzt wohl wieder ausgestiegen.

Du hast im Prinzip Recht: Ich hatte mich leider von den falschen EXIF-Daten der JPGs täuschen lassen.

Eben habe ich darum nochmal getestet, wobei ich für die nun manuelle Zeitmessung die Zeitspanne gewertet habe, ab dem der Bildschirm nach dem Auslösen dunkel wird und sich danach wieder etwas bei der Kamera tut.
Das erste Bild mit dem Tv96-Wert -602 führte zu einer Belichtungszeit von etwa 1min 20sec, das zweite Bild mit -818 zu einer BZ von knapp über 6min und das dritte Bild mit -933 zu einer BZ von knapp über 14min!
Meine vorherige Aussage, daß mit dem Skript bei meiner SX20IS nur max. 15sec BZ möglich sein sollen war somit völliger Quatsch - sorry.

Insofern ist Deine Kamera bei -901 evtl. gar nicht ausgestiegen sondern Du hattest vielleicht nur nicht genug Geduld.

@msl:
Seinem Namen macht Dein Skript bereits schon jetzt alle Ehre ;-)

Die Belichtungskorrektur scheint bei mir nicht zu funktionieren.

Bei mir auch nicht, das habe ich eben getestet mit 0 und +/- 6 (= +/- 2EV): alle Bilder waren gleich belichtet.

Und MF nimmt das Script bei mir nicht an.

Auch bei mir bricht das Skript bei MF ab.

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon msl » 22.11.2011, 21:19

Hallo Skriptiker,

Danke fürs Testen.

Das mit der Belichtungskorrektur müssen wir noch mal zurück stellen. Die Exif-Daten werden zwar geschrieben. Die Korrektur erfolgt aber nicht wirklich. Ich muss erst mal schauen, ob sich das im Zusammenspiel mit dem Überschreiben der Belichtungszeit nutzen lässt.

zu Punkt 1 und 2:
Normalerweise kann jede Kamera Belichtungszeiten bis 64 Sekunden realisieren. Bei längeren Zeiten ist das nur noch mit einigen Kameras möglich - siehe Handbuch "Ersetze Tv". Ab mehr als 15 Sekunden gibt es auch keine realen Exif-Werte in den JPG-Dateien. Benutzt man DNG, werden in dieser Datei auch längere Verschlusszeiten als 15 Sekunden korrekt in die Exif-Daten geschrieben.

zu Punkt 4 und 6:
(4) Das Verhalten ist normal. Man muss sich das so vorstellen als würde man zum Messen den Auslöser halb drücken und wieder loslassen. Dann werden die Werte berechnet. Mit diesen Werten wird der Auslöser voll gedrückt. Dadurch spricht auch der AF-Vorgang zweimal an. Man könnte nach dem Messvorgang für das eigentliche Shooting AF-Lock aktivieren und nach dem Shooting wieder deaktivieren.

(6) Das eigentliche Shooting muss evt. auch hinsichtlich der Belichtungskorrektur noch etwas abgeändert werden.

Generell wäre dann noch zu klären, wie eine endgültige Skriptversion aussehen könnte. Die prinzipielle Funktionsweise ist geklärt. Nun sollte auch noch etwas Komfort dazu kommen, z.B. ein kleines Menü zur Bedienung. Außerdem wäre es aus meiner Sicht sinnvoll, statt der APEX96-Werte reale Belichtungszeiten anzeigen zu lassen. Für weitere Ideen bin ich offen.

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: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon Werner_O » 22.11.2011, 23:38

Hallo msl,

Nun sollte auch noch etwas Komfort dazu kommen...
Für weitere Ideen bin ich offen.

Jetzt fange ich mal an zu träumen - hier ist mein Wunschzettel:

1) Die erste AF-Messung wird zwischengespeichert sodaß keine zweite AF-Messung erfolgen muß.

2) Das Skript funktioniert auch mit MF, damit ich bspw. bereits vor der Aufnahme via CHDK den hyperfokalen Fokus einstellen kann.

3) Eine Belichtungskorrektur ist irgendwie möglich, da gerade bei DNGs eine knappe Belichtung oft sinnvoll ist bei den aktuellen 12Bit-Sensoren.

4) Man kann mit dem Skript auch Blendenwerte vorwählen und sogar solche, die kleiner sind als die Kamera eigentlich erlaubt!
Ich kann ja bisher bei der SX20IS nur min. f8.0 vorwählen, obwohl theoretisch noch kleinere Blenden (=noch größere Blendenwerte) möglich sein sollen für Aufnahmen mit noch mehr Tiefenschärfe. Verbunden mit dem hyperfokalen Fokus im MF-Betrieb (und natürlich einem Stativ) sollten so Landschaftsaufnahmen mit einer beeindruckenden Tiefenschärfe von kurz vor dem Objektiv bis Unendlich möglich werden.

5) Der P-Modus, welchen Dein Skript bisher ebenfalls unterstützt, ist mir dabei eigentlich völlig egal.
Ich verweise hier nur noch mal kurz auf den Titel dieses von mir ins Leben gerufenen Threads:
AV-Skript mit langen Belichtungszeiten grösser als 1 sec.
Das ist so wörtlich zu nehmen inkl. meinem bereits geäußertem Wunsch, möglichst auch kleinere Blenden als normalerweise möglich vorwählen zu können.

Momentan erlaubt Deine letzte Skriptversion davon "nur" längere automatisch errechnete TV-Werte als 1sec und Du nennst es korrekt auch "TV Extend", aber das entspricht noch nicht meiner ursprüngliche Absicht.
Trotzdem sehe ich Deine bisherigen Ergebnisse durchaus als Meilenstein für CHDK-Entwickler und CHDK-User: die unselige max. 1sec-Grenze für TV-Werte im AV/P-Automatikbetrieb ist nun endgültig geknackt (GsD!) und zudem können bei zumindest einigen Canon-Kameras nun Belichtungszeiten auch weit über 64sec erreicht werden (mind. 14min BZ bei meiner SX20IS!). Da kann ich nur sagen: Hut ab!

Insofern wäre es m.E. vielleicht sinnvoll, dieses Skript in verschiedenen Varianten für AV- und P-Modus weiterzuentwickeln.

So, für heute habe ich genug geträumt,
liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon msl » 23.11.2011, 21:18

Hallo Experimentierfreudige,

na da sind ja einige Wünsche zusammengekommen. Aber erst mal ein paar theoretische Überlegungen zu der Wunschliste.

1. Das sollte schon machbar sein. Mehr dazu nachfolgend im neuen Testskript.

2. Mehr dazu nachfolgend im neuen Testskript.

3. Die Belichtungskorrektur entwickelt sich bei genauerem Untersuchen zu einem größeren Problem. Immer dann, wenn wir uns der ominösen Ein-Sekunden-Grenze nähern, verweigert die Belichtungskorrektur ihren Dienst. Das können wir also nur mathematisch über die Verschlusszeit regulieren. Dabei gehen wir wieder von der schon für die Belichtungszeit verwendeten Formel aus.

Tv + Av = Sv + Bv oder verkürzt Tv + Av = Ev

Führt die Kamera eine Belichtungskorrektur durch, wird die Summe aus Tv und Av verändert. Sv (ISO) und Bv sind konstant. Da wir einen festen Blendenwert (Av-Modus) verwenden wollen, ist auch dieser Wert konstant. D.h., wir müssen den Tv-Wert für die Belichtungskorrektur verändern. Das würde z.B. bedeuten, dass bei einer berechneten Belichtungszeit von 2 Sekunden und eingestellter Belichtungskorrektur von 1 Ev sich die Belichtungszeit verdoppelt, also 4 Sekunden betragen würde.

Soweit die Theorie. Wie sich das für den Benutzer verträglich in einem Skript umsetzen lässt, muss man sehen.

4. Hier muss man sehen, was die Kamera wirklich hergibt. Erfahrungsgemäß sind maximal 2 - 3 Stufen in Richtung kleine Blende zusätzlich möglich, also F9.0, F10.0, F11.0. Teilweise wird da elektronisch nachgeholfen (kameraabhängig). In der anderen Richtung gibt keine Möglichkeiten. Mehr als vollständig geöffnete Blende geht nicht.

5. Wenn wie in Wunsch 4 die Blende auch noch von CHDK gesetzt wird, ist der Modus für das Skript vollkommen egal, mal abgesehen von irgendwelchen Auto- oder Herzilein-Modi. Hauptsache, die für die Berechnung relevanten Werte werden geliefert.

Nun aber zu einem weiteren Test. Bei der neuen Variante wird vor dem eigentlichen Shooting automatisch in den MF-Modus gewechselt und nach dem Shooting wieder zurück zum AF-Modus. Dadurch soll ein erneutes Fokussieren verhindert werden. Außerdem ist das Setzen des hyperfokalen Fokus per Parametereinstellung möglich. Ist diese Einstellung aktiv, werden normaler Fokus und hyperfokaler Fokus angezeigt, um numerische Informationen zur Überprüfung zu erhalten. Für die Anzeige wird 2 Sekunden gewartet. Die Verzögerung bei aktivem hyperfokalen Fokus hat also nichts mit den Kamerafunktionen zu tun.

Außerdem muss wie gehabt das Shooting in den Skriptparametern aktiviert werden.

Mich interessiert in erster Linie, ob die Umschaltung in den MF-Modus funktioniert und wie es mit dem hyperfokalen Fokus aussieht. Die Ergebnisse der Belichtungszeit sind eher zweitrangig. Das Thema gilt als geklärt.

Syntax: [ Download ] [ Verstecken ]
Benutze Lua Syntax Highlighting
--[[
********************************
Licence: GPL
(c) msl 2011/11/23
********************************
@title Tv extended
@param a Shooting 1=ja 0=nein
@default a 0
@param b HypFoc 1=ja 0=nein
@default b 0
]]


--functions
function getShootInfo()
    press("shoot_half")
    repeat sleep(10) until get_shooting() == true
    local Bv=get_bv96()
    local Av=get_av96()
    local Sv=get_sv96()
    local Tv=get_tv96()
    local F =get_focus_state()
    release("shoot_half")
    repeat sleep(10) until get_shooting() ~= true
    local Tv_calc = Bv + Sv - Av
    local FocusState = "nicht OK"
    if F > 0 then FocusState = "OK" end
    cls()
    print("Kamera:", Tv)
    print("CHDK  :", Tv_calc)
    print("Fokus :", FocusState)
    return Tv, Tv_calc, F
end

function SwitchAF_MF()
    post_levent_for_npt("PressSw1AndMF")
end

function dofinfo()
    dof = get_dofinfo()
    return dof.hyp_dist, dof.focus
end

function restore()
    if get_focus_mode == 1 then SwitchAF_MF() end
end

--main script
tv96, tv96_calc, focus_state = getShootInfo()

if a == 1 and focus_state > 0 then
    if tv96_calc < 0 then set_tv96_direct(tv96_calc) else set_tv96_direct(tv96) end
    SwitchAF_MF()
    sleep(500)
    if b == 1 then
        h_focus, focus = dofinfo()
        set_focus(h_focus)
        print("Fokus normal:", focus)
        print("Hyperfokal  :", h_focus)
        sleep(2000)
    end
    shoot()
    SwitchAF_MF()
end
Erstellt in 0.006 Sekunden, mit GeSHi 1.0.8.9


Gruß msl

P.S. Bitte Skript nur benutzen, wenn die Testkamera über die Betriebsart manueller Fokus (MF) verfügt!
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: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon Werner_O » 24.11.2011, 00:57

Hallo msl,

zunächst herzlichen Dank für Deine informativen Erläuterungen.
Was bedeutet eigentlich Ev genau? Anscheinend ist es die Summe von Sv (ISO-Wert) und Bv (der gemessenen "Helligkeit").
Danke auch für den Hinweis, daß bei Blende f11,0 wohl Schluß ist bzgl. via CHDK erzwungenen kleineren Blendenwerten.

Dein neues Skript habe ich eben mal auf die Schnelle mit aktiviertem "Shoot" im AV-Modus mit Blende f8,0 und ISO 100 getestet.
Die resultierenden Belichtungszeiten bei meinem Testszenario lagen bei etwa 5-6 sec.

1) Ohne aktivierten "HypFoc"

Jetzt wird nur noch einmal fokussiert und danach nur dann ein Bild gemacht, wenn diese Fokussierung auch erfoglreich war (Meldung "Fokus: OK").
Bei erfolgloser AF-Fokussierung bricht das Skript ab (Meldung "Fokus: nicht OK").

Das scheint m.E. so in Ordungs zu sein.

2) Mit aktiviertem "HypFoc"

Hier passiert anscheinend dasselbe wie bei 1) mit dem Unterschied, daß nach erfolgreicher Autofokussierung und einem gemachten Bild zusätzlich Werte für "Fokus normal" und "Hyperfokal" am Display ausgegeben werden. Ohne erfolgreiche Fokussierung wird ebenfalls keine Aufnahme gemacht und das Skript abgebrochen.

Das ist m.E. alles andere als OK:
Nach meinem Wissen ist "Hyperfokal" ein von CHDK errechneter Wert für den Fokus des Objektives, welcher passend zur jeweiligen Brennweite und der eingestellten Blende dafür sorgt, daß die Schärfe ausgehend von Unendlich bis möglichst nahe vor die Linse gewährleistet ist.
Ohne Skript läßt sich das leicht erreichen indem man bei aktiviertem MF in den Alt-Modus wechselt und die Taste "Nach unten" drückt - dann wird automatisch "Hyperfokal" eingestellt.
Insofern kann ich nicht nachvollziehen, warum das neue Skript bei aktiviertem "Hyperfokal" überhaupt noch eine AF-Messung durchführt da diese m.W. bzgl. "Hyperfokal" sowieso völlig irrelevant ist.

Soviel zunächst von mir,
liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon msl » 24.11.2011, 14:23

Hallo Werner_O,

ein paar Dinge deiner Anmerkungen sollten klar gestellt werden:

Werner_O hat geschrieben:Was bedeutet eigentlich Ev genau? Anscheinend ist es die Summe von Sv (ISO-Wert) und Bv (der gemessenen "Helligkeit")..
Das stimmt, ist aber nur die halbe Wahrheit. Ev ist auch die Summe von Tv und Av. Ev (Exposure value = Belichtungswert) oder LW (Lichtwert) wird aber auch als Schrittweitenangabe verwendet, z.B. bei Belichtungsreihen. Ich habe hier mal eine Zusammenfassung dieser Begriffe erstellt.

Werner_O hat geschrieben:Das ist m.E. alles andere als OK: Nach meinem Wissen ist "Hyperfokal" ein von CHDK errechneter Wert für den Fokus des Objektives, welcher passend zur jeweiligen Brennweite und der eingestellten Blende dafür sorgt, daß die Schärfe ausgehend von Unendlich bis möglichst nahe vor die Linse gewährleistet ist.
Ohne Skript läßt sich das leicht erreichen indem man bei aktiviertem MF in den Alt-Modus wechselt und die Taste "Nach unten" drückt - dann wird automatisch "Hyperfokal" eingestellt.
Insofern kann ich nicht nachvollziehen, warum das neue Skript bei aktiviertem "Hyperfokal" überhaupt noch eine AF-Messung durchführt da diese m.W. bzgl. "Hyperfokal" sowieso völlig irrelevant ist.
Wir sprechen zwar umgangssprachlich von AF-Messung. Dieser Vorgang beinhaltet aber auch noch die Feststellung aller anderen relevanten Werten. So werden auch der Wert für Bv und alle Werte bezüglich Fokus ermittelt. Bv brauchen wir wir für die Berechnung der Belichtung. Fokuswerte (DOF) brauchen wir u.a. auch für den hyperfokalen Fokus. Woher soll das Skript sonst wissen, welche Blenden- und Zoom-Einstellung aktuell vorliegt. Du könntest zwischenzeitlich z.B. die Brennweite verändern. Dann hätten wir wieder einen neuen hyperfokalen Fokus.

Egal, was wir machen wollen. Wenn wir etwas neu berechnen wollen, brauchen wir für die Erfassung der aktuellen Ist-Werte einen (AF)-Mess-Vorgang, damit wir Ausgangswerte haben.

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: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon Werner_O » 24.11.2011, 19:43

Hallo msl,

Danke für die Erläuterungen - jetzt habe ich die Hintergründe verstanden.

Ich habe darum eben noch einige Testaufnahmen mit dem Skript gemacht bei 200mm Brennweite (KB), wobei das AF-Feld auf ein Objekt ca. 1,8 m vor der Kamera ausgerichtet war und im Hintergrund (ca. 6 m entfernt) noch die Mitteltonkalotte meiner HiFi-Box am Rande mit im Bild war.
Ohne HypFoc wurde das nähere Testobjekt scharf abgebildet, mit HypFoc dagegen war dieses unscharf und die entfernte Kalotte dagegen scharf. Die AF-Messung wurde mit HypFoc also erfolgreich ignoriert und anscheinend durch den HypFoc ersetzt - zu Außentestaufnahmen mit quasi "echtem unendlich entfernten Horizont" komme ich momentan leider nicht.

In den EXIF-Daten erscheint auch immer (mit oder ohne HypFoc) als Fokustyp MF, was ebenfalls auf eine korrekte Abarbeitung Deines Skriptes hindeutet.
Summa summarum sieht es bzgl. dieses Skriptes m.E. doch sehr gut aus.

Wer gerne mit testen möchte - auch dieses Skript gibt es bequem direkt von meiner Homepage:
TVExt5.zip

Liebe Grüße
Werner_O
Benutzeravatar
Werner_O
CHDK-Legende
CHDK-Legende
 
Beiträge: 1027
Registriert: 22.10.2010, 13:12
Wohnort: Köln
Kamera(s): SX20 1.02d
SX240 1.01a
S100 1.01a
S3 1.00a

Re: AV-Skript mit langen Belichtungszeiten grösser als 1 sec

Beitragvon msl » 27.11.2011, 15:18

Ein paar Worte zur Einführung: Das Skript beruht auf vielen mathematischen Berechnungen. Und da gibt es unter CHDK die Einschränkung, dass wir nur mit Ganzzahlen und nicht wie hier eigentlich erforderlich mit Dezimalzahlen die Berechnungen ausführen müssen. Das betrifft vor allem die Berechnung der hyperfokalen Distanz. Dadurch kommt es teilweise zu leichten Abweichungen.

Außerdem muss immer wieder durch Messung abgeglichen werden, weil erforderliche Werte nicht automatisch aktualisiert werden.

Das alles braucht auch Zeit. Da wir aber ein Skript haben wollen, was u.a. als Hauptaufgabe die Ãœberwindung der Ein-Sekunden-Grenze beinhalten soll, ist Geschwindigkeit nicht das wichtigste Kriterium (meine Meinung).

Das Skript ist nur mit Kameras benutzbar, die über manuellen Fokus und Irisblende verfügen!

Was kann das Skript?
  • Berechnung der tatsächlichen Belichtungszeit unter Ausschluss der Ein-Sekunden-Grenze
  • Einstellbarer Blendenwert (auch Werte jenseits der nativen Kameramöglichkeiten) im laufenden Skript
  • Auswahl und Benutzung Fokusdistanz oder hyperfokale Distanz
  • Belichtungskorrektur
Skriptbedienung

Das Skript zeigt in der Skript-Konsole in einer Infozeile alle relevanten Werte an: Belichtungskorrektur, Verschlusszeit, Blende, Fokusdistanz, hyperfokale Distanz
Außerdem werden die benutzbaren Bedienelemente angezeigt (optional abstellbar).
  • [hoch, runter] - Belichtungskorrektur in 1/3-Schritten (z.B. 6/3 = 2 Ev)
  • [halb gedrückter Auslöser] - wie normale Kamerafunktion zum Ãœberprüfen der Werte (Achtung: voll gedrückter Auslöser unterbricht das Skript.)
  • [links, rechts] - Auswahl Blendenwert
  • [SET] - Auslösen mit über Parameter einstellbarer Verzögerung (Verwacklungsschutz wegen langer Belichtungszeiten). Bei Anzeige "Fokus nicht OK!" und Verwendung der normalen Fokusdistanz wird nicht ausgelöst!
  • [DISP.] - Hin- und Herschalten zwischen Verwendung Fokusdistanz oder hyperfokaler Distanz (verwendeter Wert wird in der Infozeile durch ein Dreieck gekennzeichnet.)
  • [MENU] - Skriptende
Das Skript läuft in einer Schleife. Man muss also für eine weitere Aufnahme nicht erneut einen Skriptstart ausführen.

Skriptparameter
  • Verzoegerung [s] - in Sekunden einstellbare Auslöseverzögerung, voreingestellt 2
  • Bedien-Info - optionales Ausblenden der Anzeige der Skript-Bedienelemente 1=an 0=aus, voreingestellt 1
  • Offset Konsole - Verschiebung der Skriptkonsole nach rechts (positive Werte, maximal 7) oder links (negative Werte, maximal -6) zur persönlichen Anpassung
  • Korrektur Hyp [%] - ermöglicht eine prozentuale Korrektur der berechneten hyperfokalen Distanz, wenn es Abweichungen zum DOF-Rechner gibt.
  • Berechnen < 1s - Option zur Neuberechnung der Belichtungszeit durch das Skript auch unter einer Sekunde, 1=an 0=aus, voreingestellt 0
  • Color-Info - Option für alternative mehrfarbige Anzeige der Skript-Informationen statt in der normalen Skript-Konsole, 1=an 0=aus, voreingestellt 0
  • Anzeigeverzoegerung [100ms] - gilt für mehrfarbige Anzeige. Da andere Kamera-Anzeige-Funktionen die mehrfarbige Anzeige überschreiben, kann hier eine Verzögerung in 100-Millisekunden-Schritten eingestellt werden. Voreingestellt ist 4, also 400 ms.
  • LCD - Angabe zum Seitenverhältnis des LCD-Bildschirms, damit die mehrfarbige Anzeige zentriert erfolgt, 0=4:3 1=16:9. Voreingestellt ist 4:3.

Besonderheiten
  • Je nach Einstellung der Brennweite (Zoom) ändert sich kleinstmögliche Blendenzahl. (Je mehr Brennweite desto weniger Offenblende).
  • Bei Benutzung der Fokus-Distanz wird nur ein Foto erstellt, wenn auch der Fokus ok ist (meist grüner AF-Rahmen).
  • Bei Benutzung der hyperfokalen Distanz wird auch ohne korrekte Fokussierung ein Foto erstellt.
  • Die eingestellte Belichtungskorrektur wird nicht in den Exif-Daten eingetragen. Dafür weicht die Angabe für die Belichtungszeit um den eingestellten Betrag der Belichtungskorrektur ab (z.B. Tv=1s, Belichtungskorrektur -1EV, Exif-Angabe der Belichtungszeit=0,5s). Die Belichtungskorrektur der Kamera sollte nicht verwendet werden!

Ich denke, die wichtigsten Dinge sind beschrieben. Alles andere ergibt sich aus der Anwendung.

Gruß msl
Dateianhänge
Av_Plus.lua
Nur für Kameras mit Av-Modus!
(10.04 KiB) 402-mal heruntergeladen
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

VorherigeNächste

Zurück zu Code-Ecke

Wer ist online?

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

cron