Tips on improving shooting speed with remote synced cam's - page 2 - Hotwire! Hardware Mods, Accessories and Insights - CHDK Forum

Tips on improving shooting speed with remote synced cam's

  • 17 Replies
  • 3894 Views
*

Offline reyalp

  • ******
  • 12793
Re: Tips on improving shooting speed with remote synced cam's
« Reply #10 on: 17 / March / 2016, 20:59:24 »
Advertisements
If I can't get things working fast enough in this mode, maybe I should try to build a remote trigger mode that is based on continuous mode? I could just hold down full shot and then use the sync code to hold the shot between trigger events?
I'm not clear why you are messing with the action stack code. If you use the usb_sync_wait  flag waterwingz mentioned, you should be able hold down full shoot using script in continuous mode and just trigger each shot with the remote.
Don't forget what the H stands for.

Re: Tips on improving shooting speed with remote synced cam's
« Reply #11 on: 17 / March / 2016, 21:08:21 »
Ah. Dug in here and have the sync working with my half shoot held mode. I modified action_stack.c to add some new shoot scripts.
One of the nice features of working with CHDK. You have the source code and can do anything that you want!


Quote
The minimum "setup time" ie the time the remote needs to be in half_press state is now extremely short (I can't reliably measure it but I'd say 100ms tops, as we'd expect since in half shoot mode everything should be ready to shoot). I'm at 26 shots/minute now, so getting a lot closer to my 30 shots/minute target.
The minimum time after you assert the half_press state is a function of the time to focus and set exposure. So if you have a subject with lots of contrast and good lighting,  that can be pretty quick.

Quote
I assume the delay between remote full state and shutter close is set by the sync code? Seems to be about a half second right now, which is not bad and a small part of my 2s/shot time budget.
Umm .. not exactly.  It's set by the time the Canon code takes to get there.  Not really anything to do with CHDK.

Quote
There seems to be still a fairly long time between the shutter close and when it is ready for the next trigger event (about 2s).
In my experience, that's almost entirely the time to process and save the JPG image to the SD card.

Quote
Much longer than when shooting in continuous mode.
From what I've seen,  continuous mode buffers images in RAM and writes to the SD card asynchronously while the next shot(s) happen.  At least until it runs out of RAM that is.  If you have a camera that will shoot continuously in continuous mode,  you will usually see the shot rate slow down after a while.   In fact, IIRC we had to do a "minimum memory footprint" version of CHDK for someone a few years ago so that he could get enough RAM back to shoot continuously at all.   I think there are other tricks the camera pulls - like saving in increased compression too.

Quote
Any ideas how I might trim this down? In my special action_stack shoot script I removed the retry functionality and the delay that was in there to wait for the jpeg to be saved. This helped, but I'm not sure where else to trim time out.
Like I said,  you are fighting the Canon firmware and the limitation of low cost hardware here.  But my kap_uav.lua script routinely gets 2 shots per second in continuous mode - i.e. with focus and exposure locked by a held "shoot_half" and the "shoot_full" toggled at 2 fps.  This works better on some cameras than others.

Quote
If I can't get things working fast enough in this mode, maybe I should try to build a remote trigger mode that is based on continuous mode? I could just hold down full shot and then use the sync code to hold the shot between trigger events?
I don't see why not.  That also works with my kap_uav.lua script although it does not seem to work any faster when tested with my S100.
Ported :   A1200    SD940   G10    Powershot N    G16

Re: Tips on improving shooting speed with remote synced cam's
« Reply #12 on: 17 / March / 2016, 22:04:32 »

Quote
Quote
Much longer than when shooting in continuous mode.
From what I've seen,  continuous mode buffers images in RAM and writes to the SD card asynchronously while the next shot(s) happen.  At least until it runs out of RAM that is.  If you have a camera that will shoot continuously in continuous mode,  you will usually see the shot rate slow down after a while.   In fact, IIRC we had to do a "minimum memory footprint" version of CHDK for someone a few years ago so that he could get enough RAM back to shoot continuously at all.   I think there are other tricks the camera pulls - like saving in increased compression too.
[/size]


Any idea how long this might be? I've tested my camera for several minutes of continuous shooting with no slow downs so far. Haven't done an hour of continuous shooting to test, but maybe I need to try it. I just did a little comparative testing between continuous and single shot and I don't see any difference in image quality or file size, so I suspect JPEG settings are the same (at least on this cam).

[/size]
Quote

Quote
Any ideas how I might trim this down? In my special action_stack shoot script I removed the retry functionality and the delay that was in there to wait for the jpeg to be saved. This helped, but I'm not sure where else to trim time out.
Like I said,  you are fighting the Canon firmware and the limitation of low cost hardware here.  But my kap_uav.lua script routinely gets 2 shots per second in continuous mode - i.e. with focus and exposure locked by a held "shoot_half" and the "shoot_full" toggled at 2 fps.  This works better on some cameras than others.
[/size]

[/size]
Manually toggling the shutter I can get 30-40 images/minute if I hold the shutter in half shoot between shots, so I know the hardware can do it. 2 fps is awesome but this cam definitely can't go that fast, but I only need to break 30 shots/minute to be happy.
[/size]
Quote
Quote

If I can't get things working fast enough in this mode, maybe I should try to build a remote trigger mode that is based on continuous mode? I could just hold down full shot and then use the sync code to hold the shot between trigger events?

I don't see why not.  That also works with my kap_uav.lua script although it does not seem to work any faster when tested with my S100.




You may be right that it isn't faster. It is marginally faster when I am triggering by hand, but this could just be the sum total of delays introduced by my trigger finger. Continuous may not be that "special" on this camera. May be worth a try though, there still seem to be some additional delays. I'm very close though! In bright outdoor light I may actually already be at my target speed since most of my testing is indoors with exposure times of a few hundred ms.


Thanks for the tips, I'll keep experimenting.

*

Offline reyalp

  • ******
  • 12793
Re: Tips on improving shooting speed with remote synced cam's
« Reply #13 on: 17 / March / 2016, 22:59:04 »
Quote
From what I've seen,  continuous mode buffers images in RAM and writes to the SD card asynchronously while the next shot(s) happen.  At least until it runs out of RAM that is.  If you have a camera that will shoot continuously in continuous mode,  you will usually see the shot rate slow down after a while.   In fact, IIRC we had to do a "minimum memory footprint" version of CHDK for someone a few years ago so that he could get enough RAM back to shoot continuously at all.   I think there are other tricks the camera pulls - like saving in increased compression too.
Any idea how long this might be? I've tested my camera for several minutes of continuous shooting with no slow downs so far. Haven't done an hour of continuous shooting to test, but maybe I need to try it.
FWIW, this behavior seems quite camera dependent. All of my cameras except g7x seem to shoot at a pretty much constant rate in continuous mode until the card fills up or battery runs out.

The g7x shoots a handful of shots quickly first. If the camera does buffer like this I would expect it to reach steady state speed after a few tens of shots at most.

I have never heard of, or seen evidence of continuous mode reducing quality. CHDK using exmem can prevent superfine from working, but AFAIK that is unrelated to continuous mode.
Quote
Manually toggling the shutter I can get 30-40 images/minute if I hold the shutter in half shoot between shots, so I know the hardware can do it.
On some cameras, holding half and clicking full gives very similar performance to continuous mode. On others, it's noticeably slower. Doing a half press cycle every shot will always be much slower than either of these.
Don't forget what the H stands for.


Re: Tips on improving shooting speed with remote synced cam's
« Reply #14 on: 17 / March / 2016, 23:01:29 »
Any idea how long this might be?
You'll likely see it after 10 to 15 shots IIRC.   But to be fair, this happens with Powershots that try to shoot at 10 fps or better in "sports" modes.   You might not see it at the lower rates supported by the simpler models.


Quote
Thanks for the tips, I'll keep experimenting.
I have a little experience with how much fun it can be hacking the CHDK core code.   

But before you spend too much time there,  you might want to benchmark your camera with a couple of tested scripts that either run in continuous mode or in "half press held down" mode  :

fast_intv.bas

fastshot.lua

Those will give you a pretty good indication of what your camera can do.  Rewriting the CHDK "C" code is unlikely to improve that much.
Ported :   A1200    SD940   G10    Powershot N    G16

Re: Tips on improving shooting speed with remote synced cam's
« Reply #15 on: 17 / March / 2016, 23:34:39 »
If I can't get things working fast enough in this mode, maybe I should try to build a remote trigger mode that is based on continuous mode? I could just hold down full shot and then use the sync code to hold the shot between trigger events?
I'm not clear why you are messing with the action stack code. If you use the usb_sync_wait  flag waterwingz mentioned, you should be able hold down full shoot using script in continuous mode and just trigger each shot with the remote.


I missed this reply. I'll try this. I wondered if this might be the best approach. In continuous mode the camera can shoot 40-50 shots per minute, so I should be able to hit my target if this works.


Re: Tips on improving shooting speed with remote synced cam's
« Reply #16 on: 18 / March / 2016, 00:11:27 »
I missed this reply. I'll try this. I wondered if this might be the best approach. In continuous mode the camera can shoot 40-50 shots per minute, so I should be able to hit my target if this works.
FWIW .. you can test this pretty quickly with a Lua script.  It's the mechanism that kap_uav.lua uses.
Ported :   A1200    SD940   G10    Powershot N    G16

Re: Tips on improving shooting speed with remote synced cam's
« Reply #17 on: 18 / March / 2016, 14:50:28 »
I think I've got it now. I determined that in continuous mode there is no change in shooting speed between holding down full shoot, and alternating between full shoot and half shoot. Whatever optimizations that happen in continuous to get the shoot cycle faster occur regardless of if you are holding full. So I modified my "half shoot always" usb remote mode slightly, and now use it with the camera in continuous. With this setup I can use precision sync and shoot at the full speed of continuous mode and hit my target of 30 shots/minute with a little margin.


I did try adding a mode where essentially full shoot is held continuously and then the shots are gated by the sync. The problem with this is that when the camera is waiting in sync mode it is completely in tight loop wait mode. You can't even power it off... so any remote control functions over USB are out of the question. So then the timeouts would have to be utilized to get it listening again when I wanted to control the camera. It could work, and would likely be even a bit faster, but the logistics are harder.


Thanks for all the help guys... going to run with this solution for now.


 

Related Topics