Auto exposure algorithm for shooting - auto iso, ae (autoexpo.mo)

Started by pravdomil, July 20, 2013, 10:19:10 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

frogcement

Quote from: arrinkiiii on August 25, 2013, 04:40:46 AM
Here you go my friend

https://www.dropbox.com/sh/9w5t3lcmgugo32g/Xmn6H066DY


The autoexpo.mo that are im ML folder i think is more older that the version that Audionut have put now.
Thank you for such a quick reply arrinkiiii, and for your posting the stuff i needed, but unfortunately we have the same versions :(
but a thousand thanks for trying to help me i will remember this if i can ever help you in future..
--
K.C.

Audionut

Quote from: pravdomil on August 24, 2013, 08:30:48 PM
I tried to implement min TV relation but it doesn't make sense for me, could you please post some example?





Respecting min Av set by user.  User set min Av so that lens doesn't become wide open where quality (sharpness) can suffer.
We can use option "Lock AV min".  ??
.help = "Lock AV min setting to avoid changes by TV min.",

Else, where min AV is not at minimum,


Push AV min to lens AV min and adjust ISO curve as needed.


Quote from: pravdomil on August 24, 2013, 08:30:48 PM
Above that I want to have same TV on and set min TV without changing other variables.

UnLink curves from TV min ??
.help = "Adjust TV min without changing curves.",

Audionut

Quote from: frogcement on August 25, 2013, 04:29:28 AM
I cant get it to load, im running 2013Aug20.7D203

My mistake.  I didn't link it to a 7D build and I can't make a 7D due to compile errors.  :(

arrinkiiii

Quote from: frogcement on August 25, 2013, 04:49:10 AM
Thank you for such a quick reply arrinkiiii, and for your posting the stuff i needed, but unfortunately we have the same versions :(
but a thousand thanks for trying to help me i will remember this if i can ever help you in future..

Anytime my friend.

But you can't put it to work/load the autoexpo.mo?  I have load it now. After load the module i go to expo tab in ML menu, scroll down and is there.

Didn't try this last version from Audionut... is this last version the audionut upload that you ca't load? And the oldest evrsion you can? (just for trying understand what happen)


@Audionut

Hi,
you can't make a 7D due to compile errors? But this compile errors is because it's for the 7D?

frogcement

Quote from: arrinkiiii on August 25, 2013, 06:45:27 AM
Anytime my friend.

But you can't put it to work/load the autoexpo.mo?  I have load it now. After load the module i go to expo tab in ML menu, scroll down and is there.

Didn't try this last version from Audionut... is this last version the audionut upload that you ca't load? And the oldest evrsion you can? (just for trying understand what happen)


@Audionut

Hi,
you can't make a 7D due to compile errors? But this compile errors is because it's for the 7D?
I'm sorry i didnt explain better, the version I have now is the same as the one you posted for me to download
and yes it works wonderfully, I was saying the version that audionut posted will not load for me, then he posted that
it wouldnt work as he couldnt compile for 7D. Im trying my own compile now,and unfortunately i am having to use the cygwin method as my linux box is down indefinitely. many thanks for your help anyway..
--
K.C. 
--
K.C.

frogcement

Quote from: Audionut on August 25, 2013, 04:56:16 AM
My mistake.  I didn't link it to a 7D build and I can't make a 7D due to compile errors.  :(
Thanks audionut, im trying my own build, i doubt i'll have any luck but is worth a try.
--
K.C.
--
K.C.

pravdomil

@Audionut
I understand now, but I have no idea how to implemented in C yet

I'm waiting for merging with offic repo but devs have a vacation time?

arrinkiiii

Quote from: frogcement on August 25, 2013, 07:26:22 AM
I'm sorry i didnt explain better, the version I have now is the same as the one you posted for me to download
and yes it works wonderfully, I was saying the version that audionut posted will not load for me, then he posted that
it wouldnt work as he couldnt compile for 7D. Im trying my own compile now,and unfortunately i am having to use the cygwin method as my linux box is down indefinitely. many thanks for your help anyway..
--
K.C.

Ask to britom  for compile, i think that he don't mind

Marsu42

Pravdomil, I've got a request that imho is important for action flash shooting, thus the long text (sorry :-)). I originally wanted to implement it in the autoiso module, but since your autoexpo now has ec on m and only in m can modify both shutter & iso imho it makes sense to implement it here and leave the autoiso module to good ol' Tv/Av.

As you know most likely know beyond a certain shutter value the camera goes to high speed sync mode if the speedlite supports it. This is often a problem because a) it draws more power, possibly maxing out the flash and b) it generates blur since hss is a continuous light rather than a burst, the latter lasts less than ~1/800s at full flash power.

As a consequence, the dumbest thing that can happen is to shoot a little faster than x-sync, for example 1/320s when the x-sync is 1/250s. You get a proper exposure alright, but with the bad side-effects written above. You can limit the shutter to max. x-sync in the Canon fw, but then the camera closes the aperture _ad_infinitum_ ... this request about making this behavior more flexible.

Request: a new option "X-Sync Delay" with +ev values in 1/3 stops that modify the curve. Up to max. x-sync + this value, stick to max. x-sync but close the aperture. Above this value, go back to the original aperture as it's hss now - this basically creates a "bump" in the curve.

Example if the bv rises, x-sync delay set to +1/3 with 1/250s x-sync (like on 60d):
... f5.6 @ 1/200
f5.6 @ 1/250
f6.3 @ 1/250 (instead of f5.6 @ 1/320)
f5.6 @ 1/500
f5.6 @ 1/640...

Implementation: 1. put camera-specific max. x-sync speeds into platform/const.h as #define
FASTEST_XSYNC_SPEED_RAW, 2. with the bv values modify ec to match the curve

With this and ec on m combined it's possible to shoot moving objects with flash in changing lighting conditions and still get the best possible result.

The reason just I don't do this myself is that I first wanted to discuss the idea and also see if you'd add it yourself since you're a much, much better programmer as I am and can implement these curve modifications while I'd probably fail at it :-o

pravdomil

Quote from: Marsu42 on August 25, 2013, 04:26:53 PM
I originally wanted to implement it in the autoiso module, but since your autoexpo now has ec on m and only in m can modify both shutter & iso imho it makes sense to implement it here and leave the autoiso module to good ol' Tv/Av.
Agree, autoiso by a1ex was experimental feature.

Quote from: Marsu42 on August 25, 2013, 04:26:53 PM
Pravdomil, I've got a request that imho is important for action flash shooting

I was shotting with flash more then 4 years ago, I have no flash now. And I prefer shooting without it.
Sorry, I will not be the one who does it.

Quote from: Marsu42 on August 25, 2013, 04:26:53 PM
The reason just I don't do this myself is that I first wanted to discuss the idea and also see if you'd add it yourself since you're a much, much better programmer as I am and can implement these curve modifications while I'd probably fail at it :-o
When I came to ML I don't know much about C, so try it, make pull req and I will give you some hints if I can.
Maybe some other dev will join 1%?

Marsu42

Quote from: pravdomil on August 25, 2013, 05:06:11 PM
Agree, autoiso by a1ex was experimental feature.

Still, imho since it uses the traditional Av/Tv dial settings and is very clean, simple and accessible it's still bringing it back as a module as it basically backports the min. shutter setting from 6d/5d3.... not to put too fine a point on it: the options of your autoexpo are frightening if looked at the first time :-o

Marsu42

Yo, Pravdomil, I hope you don't mind me bombarding you with requests, but your autoexpo module and graph are really terrific and I see a lot of potential in this approach.

Today I had a good look at the module and tried shooting with it (again :-)) . Unfortunately, I cannot get it to do what I want it to do, and I even found the reason for it. Your module does great from a technical point of view to find the correct exposure within certain bounds/corrections by observing the parametric iso/aperture curve. However, from a photographic pov imho this leaves something to be desired:

My main issue here is the _linear_ aperture curve, no matter how I tweak it it goes to soon wider open (shallower dof than wanted & loss of sharpness), too soon closed too far (deeper dof & slower shutter than wanted) and/or too late closed (causing overexposure).

I don't know what you intend with the module, but what it in essence does is what all the "Creative Zone" dial settings from Canon do: implement some custom iso/shutter/av curve. Canon has a "black box" approach since you don't know what it does, and your parametric approach, even if tweaked to be non-linear might never be able to satisfy everyone.

But there is a solution: optional completely non-parametric, manual curves like the Canon digital back from the 90s allowed you to program. For each bv, let the user set what iso/shutter/aperture is wanted, and show the resulting curve plus the over/underexposure (i.e. the implicit ec) in the diagram.

If done with different profiles, everyone could program his favorite action/stills/macro/... curve and never worry about exposure again, well, unless Canon metering screws up and you have to shoot real m w/o autoexpo anyway.

The menu structure would be like this:
Bv value: ...
Shutter for this bv: ...
Aperture for this bv: ...
ISO for this bv: ...

Last not least, some "global ec" would be nice to shift this whole manual curve up or down if required. Btw this approach would also cover the problems with x-sync I described above. What do you (all) think?

Audionut

Quote from: Marsu42 on August 25, 2013, 10:43:30 PM
My main issue here is the _linear_ aperture curve, no matter how I tweak it it goes to soon wider open (shallower dof than wanted & loss of sharpness), too soon closed too far (deeper dof & slower shutter than wanted) and/or too late closed (causing overexposure).

This should be fixed once aperture is linked to a speed dial.  Then you can control DOF for the scene at hand and shutter/ISO will respond via the curves you have programmed.


Quote from: Marsu42 on August 25, 2013, 10:43:30 PM
Last not least, some "global ec" would be nice to shift this whole manual curve up or down if required. Btw this approach would also cover the problems with x-sync I described above. What do you (all) think?

There already is global EC.  And it also will be able to be linked to a scroll wheel and adjusted by the user on the fly.

Marsu42

Quote from: Audionut on August 26, 2013, 02:27:42 AM
This should be fixed once aperture is linked to a speed dial.  Then you can control DOF for the scene at hand and shutter/ISO will respond via the curves you have programmed.

Sorry if I've been missing the "todo list"  and it's all in the queue, I'll happily keep observing the development - though I don't fully understand how manually changing the current dof for a scene would solve what I've described.

What I'd personally like is for the aperture curve to automatically remain at a "sweet" spot as long as possible, and only get modified at the both curve ends if the shutter or iso reach certain critical limits. However I tweaked it, the current linear approach doesn't seem to be able to do that because it's linear and the aperture gets constantly modified or has a cutoff value that is absolute evne if under/overexposure sets in.

Quote from: Audionut on August 26, 2013, 02:27:42 AM
There already is global EC.  And it also will be able to be linked to a scroll wheel and adjusted by the user on the fly.

I know, what I wrote was as the only option for a non-parametric curve plotted for the user. Btw good luck with tying some settings to the wheel, afaik nobody managed to link a function to this yet :-o

Audionut

Quote from: Marsu42 on August 26, 2013, 09:03:13 AM
What I'd personally like is for the aperture curve to automatically remain at a "sweet" spot as long as possible, and only get modified at the both curve ends if the shutter or iso reach certain critical limits.

The left side of the curve (so to speak) is already controlled with EVpBV.  The right side could be controlled by,

if EC > -0.0
         lower min AV,

Quote from: Marsu42 on August 26, 2013, 09:03:13 AM
Btw good luck with tying some settings to the wheel, afaik nobody managed to link a function to this yet :-o

http://www.magiclantern.fm/forum/index.php?topic=7816.0


Marsu42

Quote from: Audionut on August 26, 2013, 09:29:44 AM
The right side could be controlled by if EC > -0.0 lower min AV,

Doh - am I missing something here? To me it seems the ec curve is independent from the av curve, i.e. ec doesn't lower min av as you just suggested? This is because the current autoexpo approach basically looks like a tweaked Av mode implemented in M, the main dependent variable is the shutter.

Quote from: pravdomil on August 26, 2013, 09:57:29 AM
bad news

I'm sure you and alex will find a way to resolve this, your autoexpo module is great, your menu approach with both wheels is a terrific contribution and you're really putting work into this!

Talking of that, another request: Please also mark the currently/last measured bv with a vertical bar in the graph so one can instantly see what the resulting av/tv/iso _right_now_ are w/o any further hassle :-)

Audionut

Look at this.



EC +-0.

Notice how the EC curve falls to negative at low BV values.  Why?  Because current settings result in that amount of underexposure.

So map min AV to that EC curve.

Where EC > -0.0, reduce min AV to compensate.  This would result in EC curve remaining flat at lower BV with the AV min curve falling.

Isn't that what you want?  Reduce AV at lower BV to compensate? 

pravdomil

Quote from: Marsu42 on August 26, 2013, 10:09:08 AM
Talking of that, another request: Please also mark the currently/last measured bv with a vertical bar in the graph so one can instantly see what the resulting av/tv/iso _right_now_ are w/o any further hassle :-)
already done

I'm going to vacation, I will be left for 14 days. See later.

Btw here is the patched version:
https://bitbucket.org/pravdomil/magic-lantern-hack/commits/0352dd9cf59c8968f1a25727b878a1bd109218b5

1%

btw: If you leave auto expo on and shoot some raw video... and have a camera that does the memory trick (6D/5DIII) autoexpo takes a reading while LV is closed/opened and what you're recording may be really off from what you wanted. it just ate what I was shooting (set iso 128K)

RenatoPhoto

Camera 5D3, with yesterdays compile from unified.

Trying to learn how to use this but I ran into a problem.  Without changing anything the shutter speed is always very high and I dont know what to change to bring the shutter speed lower.

Specifically here is what the setup looks like and the shutter is always above 200 why?

http://www.pululahuahostal.com  |  EF 300 f/4, EF 100-400 L, EF 180 L, EF-S 10-22, Samyang 14mm, Sigma 28mm EX DG, Sigma 8mm 1:3.5 EX DG, EF 50mm 1:1.8 II, EF 1.4X II, Kenko C-AF 2X

pravdomil

so your photos are underexposed?
there can be conflict with other features, not fixed yet
and what the graph looks like?

RenatoPhoto

Quote from: pravdomil on September 14, 2013, 10:55:27 PM
so your photos are underexposed?

No, they look ok.  EC also works but the shutter is stubborn.

Quote from: pravdomil on September 14, 2013, 10:55:27 PM
and what the graph looks like?

http://www.pululahuahostal.com  |  EF 300 f/4, EF 100-400 L, EF 180 L, EF-S 10-22, Samyang 14mm, Sigma 28mm EX DG, Sigma 8mm 1:3.5 EX DG, EF 50mm 1:1.8 II, EF 1.4X II, Kenko C-AF 2X

Marsu42

Request: Autoexpo has EC on M and a great BV backend, but as far as I tried it cannot be easily used (yet) as a traditional M mode with Auto ISO that doesn't touch the pre-set shutter/aperture values, at least until the shutter or iso bounds are reached.

Also if autoexpo would have a straight "auto iso" option for M the problem with the camera stuck @iso400 with flash would be gone.

Would it possible to add this as an easy option? Nikon has it, or see here for a sample request: http://www.canonrumors.com/forum/index.php?topic=16973.msg313861

pravdomil

Quote from: RenatoPhoto on September 14, 2013, 11:30:32 PM
No, they look ok.  EC also works but the shutter is stubborn.
well could you try press shutter half way and remember what values it set, and goto the autoexpo menu and compare with values at the cyan linem, does it match?

Quote from: Marsu42 on September 15, 2013, 08:45:40 AM
Would it possible to add this as an easy option?
not now, my goal for now is finding a brightness sensors