[libcamera-devel,0/3] Raspberry Pi AGC improvements
mbox series

Message ID 20201125113640.20246-1-david.plowman@raspberrypi.com
Headers show
Series
  • Raspberry Pi AGC improvements
Related show

Message

David Plowman Nov. 25, 2020, 11:36 a.m. UTC
Hi everyone

Thanks to Kieran for merging my previous AGC patches. I think I
mentioned then that there would still be a few more to come - though
nothing of great complexity - so here's the first few.

I think only the second of these patches rises above the level of
"fairly trivial", so it would certainly be good for Naush to review
that one! We have:

1. When setting explicit shutter and gain values, the AGC would adapt
 slowly towards them. I think users would expect it to "jump" there
 immediately.

2. This patch stops us ever turning the AGC off even when it's
 disabled. Instead we put it into "fixed shutter and gain" mode, using
 the last values we saw. This is better because, if you then set the
 gain (for example), the shutter won't start "floating" again (which
 was the previous behaviour and, I think, unexpected for users).

3. Fixes some AGC oscillation problems (particularly at startup) with
 the imx219, caused by the fact that the sensor metadata isn't working
 for us. This means things can be unstable if we request exposures or
 gains that the sensor can't deliver (we have the same situation with
 the ov5647).

Subsequent to these I do have a couple more AGC changes ready to go,
mostly related to figuring out the correct number of frames to drop
when the camera starts. However, these are dependent on Naush's
Camera::start() patch set (or some equivalent variation thereof), so
might I give that one a little nudge in passing please?

Thanks and best regards
David

David Plowman (3):
  src: ipa: raspberrypi: Avoid AGC filtering when both gain and shutter
    specified
  src: ipa: raspberrypi: Improve behaviour when AE disabled
  src: ipa: raspberrypi: Fix initial AGC oscillation for imx219 sensor

 src/ipa/raspberrypi/controller/rpi/agc.cpp |  7 +++-
 src/ipa/raspberrypi/data/imx219.json       |  4 +-
 src/ipa/raspberrypi/raspberrypi.cpp        | 48 ++++++++++++++--------
 3 files changed, 38 insertions(+), 21 deletions(-)