Given a known periodic movement (e.g. walking), I would like to take a full resolution shot at the same point of movement (i.e. with the same temporal offset in different periods). However, on Nexus S (currently running OS 4.1.1, but the same applies to previous versions of the OS), I observe so much variability in shutter lag that I canβt accurately plan the synchronization of the snapshot. Here is a histogram of the shutter of 50 shots. (I measured the shutter lag with one System.nanoTime () just before Camera.takePicture () and another System.nanoTime () at the start of the shutter callback. The camera lens was constantly closed to remove any variation due to lighting.)

Is there anything I can do in the application to reduce this shutter variability? (In this application, the average value of the delay can be of any duration, but the standard deviation should be small ... much less than the standard deviation of 0.5 from the shutter delays shown in the histogram above.) I hope someone has smart offer, If I do not have any offers, I will send the function request to the Android tracker.
UPDATE: I turned off autofocus (setting focus to infinity) after RichardC's suggestion at https://groups.google.com/forum/?hl=en&fromgroups#!topic/android-developers/WaHhTicKRA0 This helped, as shown in the following histogram. Any ideas to further reduce shutter volatility?

UPDATE 2: I turned off the remaining automatic settings: white balance, scene mode, flash. The following histogram of the shutter time variability seems to be about as good as for the Nexus S running OS 4.1.1. It would be nice to have much less variability in shutter lag time, possibly specifying an additional minimum shutter lag time in Camera.takePicture (), which would delay the shutter if it was ready to the specified minimum. I sent a feature request to the tracker for Android. If you are also interested in getting this feature, "star" it at http://code.google.com/p/android/issues/detail?id=35785

android android camera
gregS
source share