[libcamera-devel] [PATCH v2 4/4] src: ipa: raspberrypi: Fix initial AGC oscillation for imx219 sensor
Kieran Bingham
kieran.bingham at ideasonboard.com
Mon Nov 30 12:35:09 CET 2020
Hi David,
On 30/11/2020 11:15, David Plowman wrote:
> Hi Kieran
>
> Just to answer briefly... yes there is stuff that needs addressing
> there, but that's coming in Naush's next patch set (after
> Camera::start).
Ok, no problem, understood - and I don't think this series is blocked.
> There are currently some problems when the AGC/AEC requests exposure
> times (or analogue gains) that the sensor can't deliver. If a sensor
> reports the metadata correctly (like imx477) things still work OK,
> because the AGC/AEC isn't being lied to. So you can ask for long
> exposures and if you get them - great, if not - it manages without.
>
> Our other sensors (ov5647 and imx219) aren't reporting metadata
> correctly. For these, we end up assuming the sensor gives us what we
> asked for, and if it didn't, the AGC gets lied to. This tends to cause
> oscillations.
>
> For now, we can prevent the oscillations by not asking for anything
> that's unachievable (hence this particular patch). But it's not the
> ideal solution - Naush's next patch set addresses all this!
Thanks, I'll chase up where we are with start() again.
I hope everyone has had enough time to mull things over on that by now.
--
Kieran
> Best regards
> David
>
> On Mon, 30 Nov 2020 at 10:47, Kieran Bingham
> <kieran.bingham at ideasonboard.com> wrote:
>>
>> Hi David,
>>
>> On 26/11/2020 12:32, David Plowman wrote:
>>> The exposure times in the exposure modes were causing AGC oscillations
>>> because the algorithm was demanding long unachievable exposure times
>>> but, without working sensor metadata, thought it was getting them when
>>> actually it was not. We fix it by making the exposure profile request
>>> only achievable exposure times, as we do for the ov5647 tuning.
>>>
>>> Signed-off-by: David Plowman <david.plowman at raspberrypi.com>
>>> Reviewed-by: Naushir Patuck <naush at raspberrypi.com>
>>> Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
>>> ---
>>> src/ipa/raspberrypi/data/imx219.json | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/src/ipa/raspberrypi/data/imx219.json b/src/ipa/raspberrypi/data/imx219.json
>>> index b03a7beb..212f8b9a 100644
>>> --- a/src/ipa/raspberrypi/data/imx219.json
>>> +++ b/src/ipa/raspberrypi/data/imx219.json
>>> @@ -133,7 +133,7 @@
>>> {
>>> "shutter":
>>> [
>>> - 100, 10000, 30000, 60000, 120000
>>> + 100, 10000, 30000, 30000, 30000
>>
>> Given the existing repetition, I assume an extra 30000 isn't an issue,
>> and it looks like this is just setting the shutter time on the modes array.
>>
>> I also see shutter values of 120000 on the imx477, and in 'uncalibrated'.
>>
>> I am going to wildly presume the imx477 is a better sensor, so it's more
>> appropriate there, or simply hasn't been considered yet (which isn't a
>> problem as this patch directly addresses the imx219).
>>
>> I'm also curious about the high value in uncalibrated though. Should it
>> stay high, and as it's uncalibrated, it doesn't matter, as it's up to
>> the user to define and calibrate specific sensors?
>>
>> I assume yes and those are only discussions so:
>>
>> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
>>
>>> ],
>>> "gain":
>>> [
>>> @@ -144,7 +144,7 @@
>>> {
>>> "shutter":
>>> [
>>> - 100, 5000, 10000, 20000, 120000
>>> + 100, 5000, 10000, 20000, 30000
>>> ],
>>> "gain":
>>> [
>>>
>>
>> --
>> Regards
>> --
>> Kieran
--
Regards
--
Kieran
More information about the libcamera-devel
mailing list