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.


RenatoPhoto

Quote from: pravdomil on August 14, 2013, 09:04:16 PM
https://maps.google.com/maps?saddr=Prague,+Czech+Republic&daddr=Quito+Ecuador&hl=en&sll=37.0625,-95.677068&sspn=57.249013,73.652344&oq=Pragu&mra=ls&t=m&z=3
We could not calculate directions between Prague, Czech Republic and Quito Canton, Ecuador.

Ha Ha ;D ;D

Faulty Code!  You have to take a plane, land in Quito and call me 0991914333.  I will come and pick you up!  Bring Alex and G3GGo with you too!
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

Quote from: RenatoPhoto on August 14, 2013, 09:03:14 PM
Then I turn on module ON and press the LV button to go to life View.
no LV! How do you figure that?

Quote from: RenatoPhoto on August 14, 2013, 09:03:14 PM
I need to aim at bright light and press the half shutter, then put cap on and press half shutter.
turn mem_spy ON, wait 10s, hold halfshutter and watch what it changing, still hold halfshutter don't unpress it until you find correct value

Quote from: RenatoPhoto on August 14, 2013, 09:03:14 PM
How many memory locations should I find?  I assume that the mem locations are like 2d2cc?
as I said
Quote from: pravdomil
set setting - halshutter related on, look for int16, range of adress 0x0 - 0x20 000, changes 20 - 300

Quote from: RenatoPhoto on August 14, 2013, 09:03:14 PM
Then there is two colums of numbers and a mem location, then two colums.
addr TAB num of changes TAB value

good luck!

RenatoPhoto

Ok, I am not a programer but can read numbers.  I am an engineer so I will look into this later, I have to go now to the airport to pick up Nanomad and Audionut and others...  Just kidding.  Bu I do have to go to airport to get customers.
Thanks
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

it's easy, you don't have to be a programmer

some detailed instructions
turn you camera on
set M mode
go to mem_spy settings in debug menu
set look for int16 (maybe int8), halshutter related on, range of adress 0x0 - 0x20 000, changes 20 - 300, other options should be turned off
turn mem_spy on
wait 10s and go to info screen (dont press halfshutter)
hold halfshutter until you find correct value
20x changes scene brightness
some variables will occur
look at the values in every third column how they react on scene brightness
if you have some suspicious, look at the exposure compensation and analyze what values have 0EV +1EV -1EV

if you will testing for long time some variables will hide, that's max 300 changes limit, in other word if you 300x changes you exposure our variable will hide (~ 2 changes in second on 5D2)

on 5D2 and 5D3


look at these images should get 1EV and your value 2049 or -1EV value 2047

pravdomil

Quote from: RenatoPhoto on August 14, 2013, 09:15:53 PM
I have to go now to the airport to pick up Nanomad and Audionout and others...
G3GGo is from Germany and A1ex I think form Romania (not sure), Nanomad from Italia, Audionut dont know
we should make some ML party and find BV value on 5D3!

ed.jenner

For me this seems like the almost-perfect 'auto' shooting control.  It takes some playing with to figure out initially what settings are going to work for particular situations, so I imagine you will get a lot of 'how do I use this' from people that don't have the patience to play with it for a while after which it makes total sense.

Of course the first 30mins I tried to use it  I had 'Exposure Lock' on and that did all sorts of strange stuff.  Made me wonder if there is a protocol for ML modules not trampling/fighting on each other.  Might become more of an issue as people add more individual modules, even if we are supposed to be power-users and know what we are doing!

I also don't understand why someone would need it to work in anything by Manual mode because you can set both Av and ISO to a particular value (min=max) and have anything else change exactly as you specify.  I guess you can fix Shutter Speed if you specify the appropriate Av and ISO changes, but in any case I think the minimum is enough and what most people would want the options the way they are.

Now you did mention Exposure Compensation in the first post and I would love to see this because I'm nearly always shooting the 5DII at +1/3 to +1EC.  Without that I basically have to accept that I'm going to be under exposing up to a stop from where I want to be.   Even with changing light, if I'm in Av then I often just leave the EC at +1/3 or +2/3 (1/2 stop increments in EC would be just fine too).

With that and several hours of practice at moving the curves around, the only remaining issue is that it is almost as far removed from 'auto' as one could imagine (in the best way possible).  It's like a real 'P' where you actually program what you want the camera to do depending on the light.

With EC I'd shoot everything but landscapes (for which I use LV and M) using this module.

pravdomil

Quote from: ed.jenner on August 14, 2013, 11:51:49 PM
For me this seems like the almost-perfect 'auto' shooting control.
It's like a real 'P' where you actually program what you want the camera to do depending on the light.
definitely, this is meant as perfect auto exposure algorithm
I never have to set my exposure

Quote from: ed.jenner on August 14, 2013, 11:51:49 PM
It takes some playing with to figure out initially what settings are going to work for particular situations, so I imagine you will get a lot of 'how do I use this' from people that don't have the patience to play with it for a while after which it makes total sense.
true, maybe some video tutorial where will be explained, basic of exposure, APEX system and finally Auto exposure module (curves, ranges, limits)
this is warning for people that don't understand what auto expo do, please play with it for weeks before asking

Quote from: ed.jenner on August 14, 2013, 11:51:49 PM
I also don't understand why someone would need it to work in anything by Manual mode
agree

Quote from: ed.jenner on August 14, 2013, 11:51:49 PM
Now you did mention Exposure Compensation in the first post and I would love to see this
I have already think of it and I have some idea
another case - I need shoot low light scenes underexposed as they are (it can be done by setting minimum shutter value, but it is not cleanest sollution)
so EC will be just next curve
I will add
    EC value (which will constantly decrease or increase EC curve)
    EC range (min - max)
    EC curve (at BV +/- EV per BV)

thanks for feedback

chris_overseas

I've been trying to track down the memory location on the 5D3. So far I've found:

0x268DC - changes when rolling the rear dial.
0x2E770 - changes when rolling the rear dial.
0x2E780 - changes with the scene's brightness. Values are between -7000 and +9000 or so.
0x2E7C0 - ranges between 250 and 500 or so. Doesn't seem to map to brightness directly but is somehow related.
0x323F8 - possible?
0x323EC - possible?

I tried copying the 5D2 code that's in consts.h and using the address 0x2E780 but that froze the screen (top LCD and camera buttons still worked, wouldn't take a photo). I was going to play further but my camera batteries all need charging and it's 2:30am. Will try some more tomorrow.

In the meantime, I have a couple of questions:
What range of values should I be looking for? Is -7000 to +9000 reasonable?
How do I know whether to look for an int16 or an int8? It seems the 5D2 is an int16 but all other Canon cameras are int8?
When I think I've found the right address, what exactly should I do to test it?

Apologies for my lack of understanding, I'm new to this.

One small bug I noticed in mem_spy. The call to bmp_fill() should take FONT_SIZE rather than a hard-coded 12 (I noticed this because I had to make the font bigger so I could read the output!).
EOS R5 1.1.0 | Canon 16-35mm f4.0L | Tamron SP 24-70mm f/2.8 Di VC USD G2 | Canon 70-200mm f2.8L IS II | Canon 100-400mm f4.5-5.6L II | Canon 800mm f5.6L | Canon 100mm f2.8L macro | Sigma 14mm f/1.8 DG HSM Art | Yongnuo YN600EX-RT II

Audionut

Quote from: chris_overseas on August 15, 2013, 03:48:32 AM
0x2E780 - changes with the scene's brightness. Values are between -7000 and +9000 or so.

This one is 2049 at EC+1.


Audionut

Looks like I got it working on the 5D3.  I'll create a pull request shortly.
Camera freezes as chris_overseas notes above when "Lock ISO & AV" is set to off.

@pravdomil

Can we stop it using digital ISOs?  Confine it to ISO 100, 200, 400, 800, etc.

EC adjustment will be very handy. 

Also the ability to link maximum aperture to Canon menu (like shutter in AutoETTR).  This way I can lock aperture to f/2.8 most times (sharpest for lens and reasonable DOF), but the option to adjust aperture to f/1.4 for low light situations and have the ISO curve respond like so,




pravdomil

you find it!
https://bitbucket.org/hudson/magic-lantern/pull-request/180/autoexpo-working-on-5d3/

Quote from: Audionut on August 15, 2013, 05:05:35 AM
Camera freezes as chris_overseas notes above when "Lock ISO & AV" is set to off.
will be fixed as soon as possible
I don't know what is not working

Quote from: Audionut on August 15, 2013, 05:05:35 AM
Can we stop it using digital ISOs?  Confine it to ISO 100, 200, 400, 800, etc.
not yet, I will add a option
for now you can use round values at eg. at 3 + 1 EVpBV (APEX theory)

Quote from: Audionut on August 15, 2013, 05:05:35 AM
EC adjustment will be very handy. 
I will add it

Quote from: Audionut on August 15, 2013, 05:05:35 AM
This way I can lock aperture to f/2.8 most times (sharpest for lens and reasonable DOF), but the option to adjust aperture to f/1.4 for low light situations
well this is in todo list, you want two point curve

Audionut

Quote from: pravdomil on August 15, 2013, 10:50:49 AM
well this is in todo list, you want two point curve


2 is good.  More is always better  ;D

Thanks.

Stedda

5D Mark III -- 7D   SOLD -- EOS M 22mm 18-55mm STM -- Fuji X-T1 18-55 F2.8-F4 & 35 F1.4
Canon Glass   100L F2.8 IS -- 70-200L F4 -- 135L F2 -- 85 F1.8 -- 17-40L --  40 F2.8 -- 35 F2 IS  Sigma Glass  120-300 F2.8 OS -- 50 F1.4 -- 85 F1.4  Tamron Glass   24-70 2.8 VC   600EX-RT X3

RenatoPhoto

Quote from: chris_overseas on August 15, 2013, 03:48:32 AM
0x2E780 - changes with the scene's brightness. Values are between -7000 and +9000 or so.


Quote from: Audionut on August 15, 2013, 04:08:59 AM
This one is 2049 at EC+1.

Yes,  Confirmed at mem location: 0x2E780
EC=-1 get -2047
EC=0  get 0
EC=+1 get 2049
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


1%

QuoteCan we stop it using digital ISOs?  Confine it to ISO 100, 200, 400, 800, etc.

On 50D, except for 100 those are digital ISOs. I suspect 5DII(550D?500D?) may be similar.

Audionut

Quote from: 1% on August 15, 2013, 03:24:38 PM
On 50D, except for 100 those are digital ISOs. I suspect 5DII(550D?500D?) may be similar.

If 100 is analog, so is every multiple.  I'd say the registers are backwards for some reason on the 50d, if my memory of your dualISO work is true. 

In photo mode, the in camera digital manipulation is burned into the cr2.  You can observe the results with a raw analyzer.

I rambled about digital ISOs here.

RenatoPhoto

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

Quote from: Audionut on August 15, 2013, 11:26:53 AM
2 is good.  More is always better  ;D
have you idea how it can be done? what menu gui

Audionut

No. Perhaps it's best to leave it as a 2 point curve option.

It doesn't solve my need for quick user adjustment of maximum aperture though.  User should be able to control DOF while having the shutter/ISO curves respond accordingly.
And I guess the same for shutter control (not one I use except for minimum).  User adjusts shutter and other curves respond.
Either as an option in prefs in M mode, or automatically in Av/Tv modes.

No idea how to do that either, that's way above my pay grade.

Note:  line 317
help = "Use main dial for maximum and left & right for minimum."

Should read the opposite way,
help = "Use main dial for minimum and left & right for maximum."

pravdomil

Quote from: Audionut on August 16, 2013, 12:08:05 AM
User should be able to control DOF while having the shutter/ISO curves respond accordingly.
User adjusts shutter and other curves respond.
well this is very hard to implement, you have to define all dependencies, I don't really know how to do that
if you will do some research, some excel file with graphs, it can be our starting point
for now I don't care about DOF and shutter, I only use setting in the first post
I don't know if I should implement 2 point curve

Quote from: Audionut on August 16, 2013, 12:08:05 AM
Note:  line 317
Should read the opposite way,
thanks I will switch it

1%

QuoteIf 100 is analog, so is every multiple.

Why? 100 is always like 00. It changes ISO registers on the intermediates not on the 100s. So the register is already changed at 1250 and is no different at 1600, etc. On other cameras ISO 160 is ISO 200 with gain turned down. Here the next change is ISO 320.


Audionut

Think photography stops.  Did you find the SHAD_GAIN register (a1ex pdf page 4)?


Audionut

@pravdomil

If you enable in Av/Tv modes, couldn't you apply the maths from a fixed (user set) aperture/shutter?

if mode = Av / get_aperture_from_canon
Something along those lines?

Shutter value should always be reduced first for (best) quality, before raising ISO, +1.0 EVpBV
In Tv, aperture value should always be reduced for (best) quality before ISO, -1.0 EVpBV.  In Tv mode have the user ability to set minimum aperture value (this will keep people happy).
http://forums.whirlpool.net.au/archive/1988678

Now I remember why I ditched Canon Av/Tv modes, Canon autoISO uses digital ISOs, even when custom function is full stop ISOs ffs.

edit:  Haven't had a chance to look at this yet, but here is a LV calculator.
http://www.pentaxforums.com/forums/photography-articles/88197-excel-2003-lv-light-value-calculator.html

re 2 point curve.  Maybe see what interest it receives before spending coding time.