How to reduce Android camera shutter lag variability?

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.)

enter image description here

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?

enter image description here

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

enter image description here

+8
android android camera
source share
1 answer
  • What is the x axis and what is the y axis?

  • you can use low level coding (e.g. NDK / renderscript) instead of using java.

  • You can change the camera settings to make it faster.

0
source share

All Articles