most examples include the following line:
sensor.skip_frames(time = 2000) # Let new settings take affect.
Depending on the application, especially when waking up from deep sleep, 2000 ms is a long time.
What would be the minimum setting that still works in most cases?
And how is “works” defined, image quality?
You can find out the exact time for register updates to take effect in frames/ms or the numbers of frames to skip after wakeup from low-power/standby etc… from the sensors datasheets. This time is just a number large enough for most sensors.
Thanks! I think the OpenMV Cam H7 Plus uses OV5640, i.e.
Searching for “ms” I find
- “power up sequence” timing, below 30 ms, p.29
- “settling time for register setting <300 ms” p.168
Not sure which one, but both better than 2000 ms
You can use 0. We have a 300ms wait in the sensor driver to prevent corrupted image outputs. After that it’s just the auto exposure algorithm adjusting the image brightness.
300ms wait in the sensor driver
This one, right? https://github.com/openmv/openmv/blob/master/src/omv/sensors/ov5640.c#L692
After that it’s just the auto exposure algorithm
I assume skipping this would change the image quality?
Or is auto exposure just a “filter” that could be applied later on?
Auto exposure changes the image brightness/contrast. You don’t need to wait for it. However, the 300ms is required in the driver as the camera will output very corrupted frames on resolution change.