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.

pravdomil

Quote from: vertigopix on October 28, 2013, 09:42:42 AM
But the question is what to configure for the aperture ?
just nothing, aperture settings will be bypassed I think

1%

Ok, so I shot a bunch on 7D today. Is it possible to link autoexpo with ETTR? I find the first shot ETTR takes is often jacked and it takes 2 or so more to get a proper expo. It works faster with auto expo but then it overrides auto ettr. Amazingly things are coming out this way better than with ETTR alone.

So ie. autoexpo takes the 1st shot, ettr reads this and takes the next shot and then you have pretty much 0 wasted shots and correct initial exposure vs something dark or blown out. The 7D I have has no display in the viewfinder so its impossible to see what the initial exposure is and adjust it before ETTR.

hjfilmspeed

Quote from: 1% on November 04, 2013, 12:09:19 AM
Ok, so I shot a bunch on 7D today. Is it possible to link autoexpo with ETTR? I find the first shot ETTR takes is often jacked and it takes 2 or so more to get a proper expo. It works faster with auto expo but then it overrides auto ettr. Amazingly things are coming out this way better than with ETTR alone.

So ie. autoexpo takes the 1st shot, ettr reads this and takes the next shot and then you have pretty much 0 wasted shots and correct initial exposure vs something dark or blown out. The 7D I have has no display in the viewfinder so its impossible to see what the initial exposure is and adjust it before ETTR.

Combining would be sick!!!

RenatoPhoto

From my experience ETTR nails the exposure if the first exposure is a bit underexposed.  I was hopping to accomplish this by simply using Canon BV and lowering it by -1 EV as a starting point for ETTR.  If this can be done via autoexpo.mo link then it would be great but I wonder if it is necessary.
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


Audionut

Quote from: 1% on November 04, 2013, 12:09:19 AM
So ie. autoexpo takes the 1st shot, ettr reads this and takes the next shot and then you have pretty much 0 wasted shots and correct initial exposure vs something dark or blown out.

This will fail on high DR scenes where the Canon meter will ignore the highlights (blow them) to get a midtone.
ETTR works very well when the initial exposure is under.  When it's over, it has to start guessing.

Marsu42

@pravdomil:

I've re-implemented Av/Tv in M with your method in my auto_iso module which serves a different purpose than your autoexpo - your module is for 100% automatic exposure, mine is for semi-automatic and dumb EC on M. But metering should work the same way, so here are two questions:

* Metering sometimes fails, I cannot really pinpoint it yet (you're on 5d2, I'm on 60d/6d). I solved this by simply ignoring too high EC values beyond +-45, but I'm not really happy with this solution since this doesn't seem to be portable and I'm not really able to tell faulty metering from valid values. Any ideas? Obviously Canon indented the EC-metering display only as a nice feedback for the user, and not to be used by ML for actual metering...

* There is an inherent metering lag vs. plain Av/Tv since Canon sets the EC, then ML reads the EC and modifies the exposure. Did you try to speed this up with a high prio task that runs all the time? Your current task approach simply offloads some tiny calculations and is only run one, and when I tried the same thing I don't see any difference... but a continuous task might do better that is not triggered buy the usual module shoot task.

pravdomil

Quote from: Marsu42 on November 13, 2013, 10:17:36 AM
* Metering sometimes fails, I cannot really pinpoint it yet (you're on 5d2, I'm on 60d/6d). I solved this by simply ignoring too high EC values beyond +-45
I didn't encountered this behavior. Autoexpo also fails?

Quote from: Marsu42 on November 13, 2013, 10:17:36 AM
* There is an inherent metering lag vs. plain Av/Tv since Canon sets the EC, then ML reads the EC and modifies the exposure.  Your current task approach simply offloads some tiny calculations and is only run one, and when I tried the same thing I don't see any difference... but a continuous task might do better that is not triggered buy the usual module shoot task.
Yes this is the biggest problem, autoexpo or any exposure algorithms based on AE_VALUE are one step after current exposure.
There is some Canon runtime that sets continuously the exposure (and changes AE_VALUE). Then ML detects the change and sets own exposure, but with delay around 60ms I think.

Quote from: Marsu42 on November 13, 2013, 10:17:36 AM
Did you try to speed this up with a high prio task that runs all the time?
It will no be perfect, since lens_set_rawaperture / iso / shutter functions takes some time and creates the delay.

The solution is finding raw values from brightness sensors.
http://www.magiclantern.fm/forum/index.php?topic=8007.0
https://bitbucket.org/hudson/magic-lantern/pull-request/193/debugger-module

Marsu42

Quote from: pravdomil on November 13, 2013, 03:40:53 PM
I didn't encountered this behavior. Autoexpo also fails?

I never really tried since I didn't manage to get the curves to do what I want :-p but I very much expect the same behavior since the bv code is equal - when I print the current AE value in LV, it works ok most of the sime, but then there are spikes of +-46 and some completely off any scale. Simply cutting off these spikes seems to work, but of course at the expense of an even larger lag.

Quote from: pravdomil on November 13, 2013, 03:40:53 PM
There is some Canon runtime that sets continuously the exposure (and changes AE_VALUE). Then ML detects the change and sets own exposure, but with delay around 60ms I think. The solution is finding raw values from brightness sensors.

I hope someone finds a way to directly access the Canon metering w/o AE_VALUE, until then it's likely I'll be sticking to Av/Tv modes since Canon metering ensures you've always got an ok exposure, while in M the delay can cause a mis-exposure if you're very unlucky and lighting suddenly changes

Quote from: pravdomil on November 13, 2013, 03:40:53 PM
It will no be perfect, since lens_set_rawaperture / iso / shutter functions takes some time and creates the delay.

Indeed, the question which lag is larger - the one because of Canon metering or of setting aperture/shutter...

engardeknave

Either of you interested in implementing spotmetering in LV? There is an actual spotmeter function, so I don't think it would be impossible to too difficult.

Marsu42

Quote from: engardeknave on November 13, 2013, 09:55:15 PM
Either of you interested in implementing spotmetering in LV?

I never use lv for regular shooting, and if I want proper metering for tripod & focus stacking in lv I use auto-ettr (and dual_iso or bracketing)...

Danne

Thanks Pravdomil for you,re very clever autoexpo module. Thanks to Marsu42 autoiso module I started looking for a solution to my needs when out shooting nature, birds and such. My main concern with canons automatic stuff is mainly the lowest shutter but also not being able to tweak the correlation between shutter and iso in av mode. The camera chooses whatever it thinks is best but sometimes a faster shutter is required , or slower for that matter. I believe these problems are solved with your module.
I did like this.

1 - set lowest shutter in Tv minimum
2 - set EC to specific situation
3 - start changing the ISO curve to change correlation between shutter and iso.(For now I just change the right EVpBV setting up or down)

It,s pretty fast to change while out shooting. A few buttons away from the "modified" shortcut menu.
WHat I would really like is being able to choose shortcuts to the "modified" menu myself.

Is it possible to have slowest shutter linked to the scrollwheel like you can in ettrmode or will this interfere with other things? Same question goes for changing EC and having it linked to the other wheel? Asked Marsu42 for this as well in his fine auto-iso module :).
Biggest thanks!
/D

StefanKeller.AC

Quote from: Marsu42 on November 13, 2013, 10:17:36 AM
I've re-implemented Av/Tv in M with your method in my auto_iso module which serves a different purpose than your autoexpo - your module is for 100% automatic exposure, mine is for semi-automatic and dumb EC on M.

this may fit better to me, where can I find/download it?

is it possible to read out focal length and adjust minimum Tv ??

Marsu42

Quote from: StefanKeller.AC on November 20, 2013, 12:21:52 PM
this may fit better to me, where can I find/download it?

http://www.magiclantern.fm/forum/index.php?topic=8688.0 ... repo is currently down, I'll re-upload it shortly - sorry for the delay, I'm currently more shooting & postprocessing than coding :-o

Quote from: StefanKeller.AC on November 20, 2013, 12:21:52 PM
is it possible to read out focal length and adjust minimum Tv ??

No, very, very unfortunately not so and I miss it a lot with my 70-300L ... ML can only read the focal length in live view, at least no one has managed to do otherwise even though obviously the Canon fw can. I'll add a feature request though:

http://www.magiclantern.fm/forum/index.php?topic=9367.new#new

StefanKeller.AC


Exile

I've been trying out autoexpo but i can't seem to get to change the aperture, it stays wide open(2.8 in my case) am i missing a setting? I read through this tread but can't find an answer.

Thanks in advance

Danne



Exile

Oke that changes it, alhough its 2.8 4.0 or 10.0, why can't it be changed with main dial as it would normally do in m mode?

Marsu42

Quote from: Exile on November 22, 2013, 10:17:05 PM
Oke that changes it, alhough its 2.8 4.0 or 10.0, why can't it be changed with main dial as it would normally do in m mode?

You're mis-understanding the whole purpose of the autoexpo module: It is to expose completely *automatically* just like in P mode: auto!expo! ... the module just happens to be implemented in M because that's the only mode ML can set aperture & shutter at the same time. If you want semi-manual like Av/Tv look at the upcoming auto_iso module.

Exile

Ah oke, thanks for clearing that up.

Sounds like that is what i'm looking for, i would like to have a set shutter speed a variable aperture and depending on those 2 an as low as possible iso.
Canon already does this if i put auto iso on and put a minimum shutterspeed and shoot in aperture priority, but for some reason most of the time i get (much) higher shutterspeeds
then my minimum setting what leads to high iso setting which is not what i want.

Gues i misunderstood auto expo, sorry for noob question and i will be looking out for auto iso!

Exile

BTW

In what situation would you use auto expo?

You always have the desire for a sertend aperture or shutterspeed, or am I missing something?

mgrant

I'm playing with this module on a 7D.  I'm using the version that made it into tragiclantern-v2.3.NEXT.2014Jan14.7D203.

Couple of things I noticed:

1) With the camera in Manual mode, the wheel on the back seems to alter the aperture as if this is Av mode while the module sets the shutter speed and ISO. 

2) If I put the camera in Av mode, the module only alters the shutter.  NOT THE ISO.

3) If I put the camera in Tv mode, the module only alters the aperture.  NOT THE ISO.

I wasn't expecting that about the ISO in 2 and 3.

In my mind, the wheel should adjust an offset of the BV.  It should let me push the scene darker or lighter.  For instance, if I were shooting in snow, I want to tell the camera that the scene is, in fact, very bright and hence to push the scene lighter (as if a lower BV).  If you use only the straight BV, it seems like you are always going to go towards a scene that is grey.  If you keep an internal variable and if the wheel is rotated say to the left, you increase the number in this variable and to the right you decrease it, then, you add this variable to the BV before setting based on the curves, shouldn't this do what I'm talking about?

I see talk above about using the main dial for shutter/aperture but I don't think I'd do this.  I'd use the dial near the trigger button for the shutter/aperture in Av/Tv mode only and use the main wheel on the back of the camera like I said above.

However, in Av and Tv mode, I do see the wheel on the back of the camera having some effect.  I can't tell if the Canon part of the firmware is taking that into account or if it's the module or both, but I do still see the module automatically trying to set the exposure or aperture.  Whatever is happening, it seems to almost be doing the right thing in those semi-automatic modes.

Where can I see the current BV of the scene that the camera is measuring?  I see some screen shots with the BV at the top of the info screen but I don't see that on m 7D when press the info button.  Is there some feature I need to enable to get that to appear somewhere?


pravdomil

Quote from: mgrant on February 17, 2014, 11:11:52 AM
Where can I see the current BV of the scene that the camera is measuring?  I see some screen shots with the BV at the top of the info screen but I don't see that on m 7D when press the info button.  Is there some feature I need to enable to get that to appear somewhere?

last BV value of current scene is marked with the cyan line in the graph view

mgrant

I don't see what cyan line you're referring to.  I did find in Overlay -> Spot Meter, there is Spotmeter Unit which I can set to RAW (EV).  Is this the BV value based on the spot metering (extreme center point of scene)?

What do you think about my other comments about using the wheel to offset the BV that you use to calculate the aperture, shutter &iso?