Another big CHDK enhancement.
Existed CHDK AutoISO greatly improve regular automode. But it could be even better.
Why I improve AutoISO - I want to get nice shoot on all range of scenes (daylight, indoor, night scenes) without any readjustment. In most cases I have no time to adjust, or I am lazy about it, or my wife take a shoot and she would like to know nothing about adjusting.
How AutoISO works in current CHDK in simple words:
- Canon make his decision based on his firmware logic
- CHDK try to adopt ISO to minISO with locked brightness. If result Tv is more than TVthreshold, then try to keep Tv on this threshold with increasing ISO (but not more than MaxISO)
So we have three phases on Tv:
* Tv adjusted to MinISO (until TVmin)
* Tv is locked to TVmin and ISO is adjusted until required ISO< MaxISO
* Tv adjusted to MaxISO
What is done by this change:
* Indoor Phase.
If for ISO=ISOMax and Tv is more than TVmin, then not change only Tv but change slowly both Tv and ISO to reach TvMin2/ISOMax2.
Example usage: I think that 1/125 is nice enough Tv for all cases and ISO=200 is nice ISO on my S95. This limits are good for daylight but they are bad for twilight/indoor.
At same time I don't wont decrease Tv to 1/45 or ISO to 500 if I could avoid this. But this limits are still useful for me for mid-light condition.
So I set ISOMax:TvMin to 200:1/125, also set ISOMax2:Tv2 to 500:1/45 and then if camera can't limit both values inside first range (good 200:1/125) will increase slightly both ISO and Tv.
As result we got acceptable (for personal choose) both ISO and Tv. Surely this will not help in night scenes, when ISO will be locked as max acceptable 500 and compensated by Tv.
This phase could be turned off in CHDK menu. In this case AutoISO mechanizm will work exactly as in previous version CHDK (except separated new "Overexposure correction" feature)
* Day overexposure compensation
On daylight (below ISOmax1) if more than X% of pixels are overexposed exposition (by zebra) will be changed on Y.
Goal of this enhancement:
a) Many camera has tendency to overexpose shots. This should be prevented
b) better shots of cloudy days. Shadows could be easily restored from RAW while too bright image can't.
Why daylight only: In my experiments in night time situation of high contrast scene (light sources and dark most image) is quite often and in this case such autocorrection often could decrease result image quality
This feature could be turned off in CHDK menu. Type of correction (daylight-only or overall correction is adjustable in CHDK sources by #define OVEREXP_COMPENSATE_OVERALL)
Attention: In opposition to main AutoISO mechanizm (adapt expo-pair but keep brightness), this feature WILL change brightness.
Known failure: a) This feature could react on direct sun shooting. This could be unexpected by photographer.
b) Also this feature could negate premeditated too high expo-correction (with big overexposed areas).
For my taste shoots which are fixed by this feature is better then without in most cases. Just do not set too high correction value. Or if you don't like this you could turn this feature off from menu.
* Marketing ISO
For me it is entangleous to set values in real ISO. I suspect that for most other peoples also.
I easily know what is the quality of marketing ISO500 (because I see marketing value correspondence to result image often). And I don't want to calculate each time what real ISO it is.
On my S95 correspondence is not exactly but quite linear, so it could be easily calculated by CHDK with acceptable error.
This feature is adjustable in sources by #define USE_REAL_AUTOISO
There are two patches in attachment. First one is ready to include into CHDK branch.
Second file contain same logic, but it also contain debug logging into A/CHDK/BOOKS information for each shot which made with AutoISO feature. So you can investigate translation from marketing values, is Indoor Phase or Overexp correction features do their process (and details how they do this).