The fastest I can get when releasing shoot_full_only after each shot is 1 shot per second.
Still better than was previously considered possible. Will be interesting to try on other (less expensive) cameras.
Here's a link to the Powershot series where you can find the specs for any of them. The spec on the G1X is 1.9 shots per second continuous, and 2.4 for the SX260. The cheapest Elph 100 says it takes 3.4 shots per second. Maybe it has more to do with the size and weight of the mechanical shutter than the cost. But yes, it should be interesting.
http://www.usa.canon.com/cusa/consumer/products/cameras/digital_camerasMy code seems to be able to measure and change exposure between shots without slowing the camera down. It only takes about 10 msec to calculate according to my rough, tick_count measurements. I think I'm ok to optionally double the calculation time to be able to get a histogram of the entire picture, or a different specified area.
So time isn't an issue, but what about memory? The current shot_histo code allocates 1024 short int, or 2048 bytes. I'd need 4 times that for a full 12-bit histogram, and 4 times more for 14 bit.
Would it be acceptable to use 8K temporary memory instead of 2K? How about 32K? It would be faster to use int instead of short int. So is there 64K available for a histogram? It's only in use when a histogram is requested. You could get the shot_meter without using any extra memory.