Adding new cameras, applying patches into trunk (with source code prepared) - page 52 - General Discussion and Assistance - CHDK Forum

Adding new cameras, applying patches into trunk (with source code prepared)

  • 1654 Replies
  • 580062 Views
Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #510 on: 09 / November / 2011, 04:17:15 »
Advertisements
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).
« Last Edit: 09 / November / 2011, 04:20:28 by tsvstar »

*

Offline philmoz

  • *****
  • 3319
    • Photos
Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #511 on: 09 / November / 2011, 23:41:49 »
Colored icons for sx130is - colors tuned as best possible (I guess).

Added in changeset 1402.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #512 on: 10 / November / 2011, 03:56:37 »
Pretty simple bugfix.

Fixed problem:
If try to open text reader "Miscelanous - Text File Reader - Open New File..." and then press "menu" in file selector, clear screen is displayed and then I can't do power off (lens keep retracted), can't see any CHDK screen etc. Only removing battery help.
Because I often use text reader (to read debug info) it was extremely annoying bug.

*

Offline philmoz

  • *****
  • 3319
    • Photos
Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #513 on: 10 / November / 2011, 15:33:10 »
Pretty simple bugfix.

Fixed problem:
If try to open text reader "Miscelanous - Text File Reader - Open New File..." and then press "menu" in file selector, clear screen is displayed and then I can't do power off (lens keep retracted), can't see any CHDK screen etc. Only removing battery help.
Because I often use text reader (to read debug info) it was extremely annoying bug.

Added in changeset 1405.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #514 on: 10 / November / 2011, 15:58:41 »
One more small bugfix.

I do separate it from my big ubasic enhancement package by waterwingz request.

CHDK will hangup and then shutdown with retracted lens on some scripts (like Omni-Intervalometer) because wrong UnknownStatement processing. Below are two extremely simple examples when my S95 will hangup.

Code: [Select]
get_tv k

Code: [Select]
@title hang2a

  print "Grab property to LOG_".a
  print_screen a

*

Offline philmoz

  • *****
  • 3319
    • Photos
Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #515 on: 10 / November / 2011, 16:29:20 »
One more small bugfix.

I do separate it from my big ubasic enhancement package by waterwingz request.

CHDK will hangup and then shutdown with retracted lens on some scripts (like Omni-Intervalometer) because wrong UnknownStatement processing. Below are two extremely simple examples when my S95 will hangup.

Code: [Select]
get_tv k

Code: [Select]
@title hang2a

  print "Grab property to LOG_".a
  print_screen a

Added in changeset 1406.

Thanks for all these fixes - nice to have another active developer on the team :)

I haven't had time to look closely at the other ubasic and auto ISO changes. These will take more time to review and understand; but I haven't forgotten about them.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #516 on: 10 / November / 2011, 17:54:34 »
I would like do not make conflict with my own big requests, so only small piece of planed interface changes below...
All the more small steps are integrated quickly.

1. Add comments to some data structure. Such comments are always helpfull and save time.
2. In my opinion CHDK interface require to be significatelly improved. One of issue is displaying many things when they have no sense. Small step to fix that - filemanager do not display some Raw operation when it surely anymore.
3. Another usability issue is non-intuitive control key sometimes. I was very surprised when found that to cancel filemanager popup menu I have to press 'Left'. I add much more reasonable 'Menu'.
« Last Edit: 10 / November / 2011, 17:57:23 by tsvstar »

*

Offline philmoz

  • *****
  • 3319
    • Photos
Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #517 on: 10 / November / 2011, 18:57:39 »
I would like do not make conflict with my own big requests, so only small piece of planed interface changes below...
All the more small steps are integrated quickly.

1. Add comments to some data structure. Such comments are always helpfull and save time.
2. In my opinion CHDK interface require to be significatelly improved. One of issue is displaying many things when they have no sense. Small step to fix that - filemanager do not display some Raw operation when it surely anymore.
3. Another usability issue is non-intuitive control key sometimes. I was very surprised when found that to cancel filemanager popup menu I have to press 'Left'. I add much more reasonable 'Menu'.

Added in changeset 1407.

One suggestion, to maintain formatting compatibility with the current code can you set your editor to insert spaces instead of tabs and set the tab size to 4.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)


Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #518 on: 12 / November / 2011, 11:00:20 »
Patch for IXUS65_SD630 to allow the use of alternate ALT button per http://chdk.setepontos.com/index.php?topic=7088


Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline philmoz

  • *****
  • 3319
    • Photos
Re: Adding new cameras, applying patches into trunk (with source code prepared)
« Reply #519 on: 12 / November / 2011, 17:07:09 »
Patch for IXUS65_SD630 to allow the use of alternate ALT button per http://chdk.setepontos.com/index.php?topic=7088




Added in changeset 1411.

Phil.
CHDK ports:
  sx30is (1.00c, 1.00h, 1.00l, 1.00n & 1.00p)
  g12 (1.00c, 1.00e, 1.00f & 1.00g)
  sx130is (1.01d & 1.01f)
  ixus310hs (1.00a & 1.01a)
  sx40hs (1.00d, 1.00g & 1.00i)
  g1x (1.00e, 1.00f & 1.00g)
  g5x (1.00c, 1.01a, 1.01b)
  g7x2 (1.01a, 1.01b, 1.10b)

 

Related Topics