Real vs market ISO - page 4 - General Discussion and Assistance - CHDK Forum supplierdeeply

Real vs market ISO

  • 110 Replies
  • 22780 Views
*

Offline dvip

  • ****
  • 451
Re: Real vs market ISO
« Reply #30 on: 07 / July / 2013, 16:51:34 »
Advertisements
@reyalp, when I check "test MIN-100" the SX40HS displays "test 80", "test 81", then it crashes...
Need to pressing the power button to re-start.
I don't think it gets to the point where it writes the CSV file, crashes in the loop, I guess.

I'll be gone for some hours but will be happy to keep testing this.



*

Offline reyalp

  • ******
  • 13449
Re: Real vs market ISO
« Reply #31 on: 07 / July / 2013, 16:58:04 »
@reyalp, when I check "test MIN-100" the SX40HS displays "test 80", "test 81", then it crashes...
Need to pressing the power button to re-start.
This is interesting, but probably doesn't matter for what we are trying to test. I'm only worried about the ISO ranges that are available in the firmware menu.

If you can get a romlog from the crash, post it.
Don't forget what the H stands for.

*

Offline dvip

  • ****
  • 451
Re: Real vs market ISO
« Reply #32 on: 07 / July / 2013, 18:26:01 »
@reyalp, it runs fine on the A590IS-100b, no crashes :)
Attached is the CSV from the A590IS, and the romlog from the SX40HS-100i.

*

Offline reyalp

  • ******
  • 13449
Re: Real vs market ISO
« Reply #33 on: 07 / July / 2013, 18:39:08 »
@reyalp, it runs fine on the A590IS-100b, no crashes :)
Attached is the CSV from the A590IS, and the romlog from the SX40HS-100i.
Thanks. As expected a590 behaves like my cams.

The romlog is an assert in Canon ISO code, so I'd say the answer there is don't try to set ISO mode out of the factory range.
Don't forget what the H stands for.


*

Offline philmoz

  • *****
  • 3332
    • Photos
Re: Real vs market ISO
« Reply #34 on: 07 / July / 2013, 19:22:33 »
G12 has the same problem as G10 - setting the ISO_MODE property doesn't change the camera ISO setting.
May be an issue with any camera that has a physical ISO dial.

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: Real vs market ISO
« Reply #35 on: 07 / July / 2013, 19:30:27 »
G12 has the same problem as G10 - setting the ISO_MODE property doesn't change the camera ISO setting.
May be an issue with any camera that has a physical ISO dial.
Good - thought I was losing it after the SX50 & A1200 worked perfectly.

I noticed the ISO80 & ISO100 settings seemed to at least respond - almost as if only the first 4 choice for propcase 149 : ISO Mode (0=Auto, 1=High Auto, 80=ISO 80, 100=ISO 100...) apply.  http://chdk.wikia.com/wiki/PropertyCase#Digic_III_.26_Digic_IV_.28propset2.29

Now I need to puzzle out the IXUS120_SD940 too ...
Ported :   A1200    SD940   G10    Powershot N    G16

*

Offline srsa_4c

  • ******
  • 4426
Re: Real vs market ISO
« Reply #36 on: 07 / July / 2013, 19:31:14 »
Re-tested 11 cameras with the newest script for those <ISO100 details. I have scanned some non-UI ranges on a few of them, those lines are grayed.

Re: Real vs market ISO
« Reply #37 on: 07 / July / 2013, 21:51:36 »
With a big hint from reyalp to set ISO manually from the Canon menu (or via the ISO dial on the G10) and then run a short script to see what propcases that sets, I got the G10 and SD940 done.  Hand edited csv files attached.

Here's the script :
Code: [Select]
--[[
@title ISO test 2
]]--
props=require'propcase'
print("ISO_MODE=",get_prop(props.ISO_MODE));
print("SV=",get_prop(props.SV));
print("SV_MARKET=",get_prop(props.SV_MARKET));


tl;dr :  values in the spreadsheets are identical to the sx50 & a1200 ... there seems to be a trend here
Ported :   A1200    SD940   G10    Powershot N    G16


*

Offline reyalp

  • ******
  • 13449
Re: Real vs market ISO
« Reply #38 on: 13 / July / 2013, 16:38:04 »
Summary of what we have so far:

All "modern" cameras, starting sometime around 2005-2006 seem to values that are effectively identical.

Most values are given by
sv96market = sv96 + 69 or equivalently ISOmarket = ISOreal*1.6457...

ISO 80 (if present) is a special case
sv96m = sv96 + 78, ISOm = ISOr*1.757...
some cameras use 79 vs 78, but this should not be significant.

ISO 80 to 100 does not "ramp" between these to factors, ISO 81 and beyond essentially use the 1.6 factor, subject minor variation described below. When the lowest ISO is 100, there is no special case.

Single ISO increments (e.g ISO 81, ISO 82 etc) don't use exactly the same conversion factor (probably because of rounding/precision issues in the canon firmware), but the differences is small enough that I don't think we have to worry about it. Between ISO 81 and 99, the difference between real and market APEX*96 values ranges from 61 to 71.

The older cameras (ixus30, ixus40, s80, a410 ...) show a different pattern
There is no special case for the lowest value.
The conversion factor varies, but general is much smaller. For example on ixus30, ISOmarket 50 is 57 real. Each camera seems to use a constant conversion factor for the entire range. The APEX96 conversion may be positive or negative (i.e. real may be greater or less than market)

A430 seems to be intermediate between the "modern" and "old", it uses the "modern" conversion factor, but the lowest ISO is 64, and that uses +72 rather than +69.

Bottom line:
I think we can come up with a simple set of conversion functions that work on the "modern" cameras, and provide defines that allow adjustment for the others. In the future, verifying the conversion should become a normal part of the porting process. This could perhaps be part of the standard test scripts. There are only a handful of cameras in the "old" range who's behavior is unknown.

One issue that might come up if we try to do this is the behavior of out-of-range values. The behavior of this might change compared to the current code that calculates the deltas from camera values. For example, if you set ISO_MODE below the factory limit, sv96 appears to just go to the lowest supported value, while sv96_market just does the standard conversion.
Don't forget what the H stands for.

*

Offline reyalp

  • ******
  • 13449
Re: Real vs market ISO
« Reply #39 on: 13 / July / 2013, 17:04:45 »
If we wanted to implement this, what would it look like? One idea

camera.h
Code: [Select]
// defaults for modern cams
#define CAM_SV96_MARKET_LOW 449 // special case for ISO 80
#define CAM_SV96_REAL_LOW 371 // but note this is annoyingly 370 on some cams...
#define CAM_SV96_MARKET_OFFSET 69
example platform_camera.h for old cam (ixus 40)
Code: [Select]
#undef CAM_SV96_MARKET_LOW // no special case low value
#undef CAM_SV96_REAL_LOW
#define CAM_SV96_MARKET_OFFSET -10

shooting.c
Code: [Select]
#define SV96_MARKET_LOW_OFFSET (CAM_SV96_MARKET_LOW - CAM_SV96_REAL_LOW)

int sv96_market_to_real(int isom)
#ifdef CAM_SV96_MARKET_LOW
 if(isom <= CAM_SV96_MARKET_LOW) {
  return isom - SV96_MARKET_LOW_OFFSET;
 }
#endif
 return isom - CAM_SV96_MARKET_OFFSET;
}

int sv96_real_to_market(int isor)
#ifdef CAM_SV96_MARKET_LOW
 if(isor <= CAM_SV96_REAL_LOW {
  return isor + SV96_MARKET_LOW_OFFSET;
 }
#endif
 return isor + CAM_SV96_MARKET_OFFSET;
}
Conversions of ISO could just use standard ISO <> APEX96 conversions.

The <= above is a hack to handle the fact that SV96_REAL_LOW may be 370 or 371 without having to find the exact value for lots of cameras.
Don't forget what the H stands for.

 

Related Topics