IXUS160/ELPH160 Porting attempt - page 12 - DryOS Development - CHDK Forum

IXUS160/ELPH160 Porting attempt

  • 497 Replies
  • 232600 Views
*

Offline reyalp

  • ******
  • 14114
Re: IXUS160/ELPH160 Porting attempt
« Reply #110 on: 17 / June / 2015, 17:22:50 »
Advertisements
Remote shooting is faster because USB speed is 20MB/s instead 10MB/s for card writing.
10MB/s seems a bit slow for a modern cam. On elph140 using a class 10 wintec card, the first benchmark run after boot seems to be ~10MB/s but after that it's 14-20. We have previously noticed that the first shot after startup tends to be slow too.

Quote
But just for understand process better: usually(without RAW saving) Ixus 160 able to shoot 0.8 photos per second(by Canon specification). But "shoot" process is very fast - 1/60 of seconds. What is happen for 1 second after that ? As far as I understand, it's conversion to JPEG.
I would guess so, although it's more than just converting to JPEG, there's a lot of other image processing applied for noise reduction, lens distortion etc.

Just reading out the full sensor data may also take a noticeable amount of time. On D10, it looks like the time between usb remote hook (which should be shortly before the shutter actually opens) and the raw hook (which should be before most jpeg processing starts) is ~500 ms, excluding the exposure time.
Don't forget what the H stands for.

*

Offline srsa_4c

  • ******
  • 4451
Re: IXUS160/ELPH160 Porting attempt
« Reply #111 on: 17 / June / 2015, 19:45:06 »
Moving the raw hook right before loc_FFAD7E84 works.
Does that mean the counter is updated at that point _and_ the DNG is not getting corrupted?

Just reading out the full sensor data may also take a noticeable amount of time. On D10, it looks like the time between usb remote hook (which should be shortly before the shutter actually opens) and the raw hook (which should be before most jpeg processing starts) is ~500 ms, excluding the exposure time.
That means, in theory,  we could start the RAW/DNG creation process a bit earlier (although it could turn out to be very problematic - dark frame, RAW data post-manipulation, etc. And, of course, CMOS cameras have much faster readout).

*

Offline adong

  • **
  • 66
Re: IXUS160/ELPH160 Porting attempt
« Reply #112 on: 18 / June / 2015, 07:58:30 »
Moving the raw hook right before loc_FFAD7E84 works.
Does that mean the counter is updated at that point _and_ the DNG is not getting corrupted?
yes

*

Offline srsa_4c

  • ******
  • 4451
Re: IXUS160/ELPH160 Porting attempt
« Reply #113 on: 19 / June / 2015, 19:30:55 »
There's yet another thing I'm curious about: can you benchmark the camera?
Use this version of modules/gui_bench.c as it can do more than the current one.
Start the benchmark (misc. stuff -> tools -> benchmark) in playback mode. Use the left/right key to enable/disable logging. Use the SET button to start the complete benchmark, you can also start the measurement with a half-shoot which jumps over the card benchmarks. This version of the module runs the measurement routines in the context of spytask, that means the results vary more due to this task's lower priority.

Needless to say, you don't need to do this right away.


*

Offline reyalp

  • ******
  • 14114
Re: IXUS160/ELPH160 Porting attempt
« Reply #114 on: 19 / June / 2015, 21:03:59 »
Does that mean the counter is updated at that point _and_ the DNG is not getting corrupted?
yes
It's a good idea to check if the counter updated consistently if you use continuous mode or a "hold half shoot, click full shoot" script like http://chdk.wikia.com/wiki/HDR_Fast_Shooter
Don't forget what the H stands for.

*

Offline adong

  • **
  • 66
Re: IXUS160/ELPH160 Porting attempt
« Reply #115 on: 20 / June / 2015, 10:23:13 »
There's yet another thing I'm curious about: can you benchmark the camera?
Use this version of modules/gui_bench.c as it can do more than the current one.
Start the benchmark (misc. stuff -> tools -> benchmark) in playback mode. Use the left/right key to enable/disable logging. Use the SET button to start the complete benchmark, you can also start the measurement with a half-shoot which jumps over the card benchmarks. This version of the module runs the measurement routines in the context of spytask, that means the results vary more due to this task's lower priority.

Needless to say, you don't need to do this right away.

attached the bench results.
3 first times are done back to back (to see if there's some warm up)
last one is right after boot

Does that mean the counter is updated at that point _and_ the DNG is not getting corrupted?
yes
It's a good idea to check if the counter updated consistently if you use continuous mode or a "hold half shoot, click full shoot" script like http://chdk.wikia.com/wiki/HDR_Fast_Shooter

did continuous mode for 5 shots, seemed okay, the script worked too. (5 shots too)
did not try for long runs, if you want me to do so please ask.

*

Offline reyalp

  • ******
  • 14114
Re: IXUS160/ELPH160 Porting attempt
« Reply #116 on: 20 / June / 2015, 14:34:50 »
did continuous mode for 5 shots, seemed okay, the script worked too. (5 shots too)
Did you have raw / dng enabled? If there is a problem with the counter, you will get less raws than jpegs (because some will have the same number and overwrite the previous one)

You can do the same test in continuous mode without a script, just hold enable raw, shoot a burst and make sure there's a matching raw for each jpeg.

Both cases should be tested, since they are likely different code paths in the canon firmware.
Don't forget what the H stands for.

*

Offline adong

  • **
  • 66
Re: IXUS160/ELPH160 Porting attempt
« Reply #117 on: 20 / June / 2015, 14:52:15 »
I did enable raw, and there was a corresponding .crw for each .jpg in both cases.


*

Offline srsa_4c

  • ******
  • 4451
Re: IXUS160/ELPH160 Porting attempt
« Reply #118 on: 21 / June / 2015, 08:52:48 »
attached the bench results.
3 first times are done back to back (to see if there's some warm up)
last one is right after boot
Thanks. The ARM core is running at 84MHz (same as my fastest DIGIC4 cam). For some reason, reading of bytes from uncached memory ("Viewport read") is way faster than on any of my cameras (I know that the benchmark routines are not ideal, but it's still interesting).
You can compare text drawing speed once you implement DRAW_ON_ACTIVE_BITMAP_BUFFER_ONLY.

*

Offline adong

  • **
  • 66
Re: IXUS160/ELPH160 Porting attempt
« Reply #119 on: 22 / June / 2015, 10:51:09 »
I will have less time to work on this in the coming weeks, so if anyone wants to dev on it, go ahead. I'll /try/ to put the updated sources on github, but the latest change is just moving the raw hook further down (use << label in codegen to put before the label).

 

Related Topics


SimplePortal 2.3.6 © 2008-2014, SimplePortal