[libcamera-devel] [PATCH v3 0/6] Raspberry Pi AGC: initial frame drop count

David Plowman david.plowman at raspberrypi.com
Tue Dec 8 21:44:35 CET 2020


Hi everyone

Thanks for all the reviews, comments and discussion! I've lost track a
little bit of which comments were in which thread, so perhaps I can
address a few of the remaining issues here.

1. Hide/Mistrust frames at Startup/ModeSwitch

Yes, I see that some of these are the same now. I'm slightly inclined
to keep all 4 variants for the moment as it seems to me they might be
different, however, if it transpires that new cameras that come along
still don't need them maybe we do some simplification then?

2. Should GetConvergenceFrames be in the Algorithm class?

Again, I'm slightly inclined to avoid it just because there are only 2
implementations of this, yet there are actually over a dozen
"algorithms". But like all things, we keep an eye on it!

3. "Hiding" vs. "Mistrusting"

Just to clarify the distinction here, "hiding" means "do not show this
to the user because it will look unexpected in some
way". "Mistrusting" means "do not allow algorithms to process this
frame because it will cause them to wobble or do something bad".

"Mistrusting" includes both statistics and metadata from the device. I
suppose if the ISP statistics are bad then the frame may be bad too,
so it would feature in the "hide" number already. It is possible that
you could get frames that look OK but where the device is lying about
its metadata, so there is a distinction between the two.

Yet perhaps this distinction never really happens in practice - so
this should go on this list of things we keep an eye on with a view to
simplification.

As regards the patches themselves, they are structured exactly as
before. The main differences are:

1. No change.

2. and 3. GetConvergenceFrames has dropped the parameter (that's
handled back in the IPA now, patch 6).

4. Pwl::Inverse is a bit more careful about adding to its existing end
points as it goes.

5. No more std::move.

6. The adding of the "mistrusted" frames is handled here now.

And I think that's it, please remind me if anything has slipped
through the cracks!

Thanks and best regards
David

David Plowman (6):
  src: raspberrypi: Pass the drop frame count in start, not configure
  src: ipa: raspberrypi: agc: Add GetConvergenceFrames method to AGC
    base class
  src: ipa: raspberrypi: awb: Add GetConvergenceFrames method to AWB
    base class
  src: ipa: raspberrypi: Compute inverse of piecewise linear function
  src: ipa: raspberrypi: Estimate the colour temerature if starting with
    fixed colour gains
  src: ipa: raspberrypi: Move initial frame drop decision to AGC/AWB

 src/ipa/raspberrypi/cam_helper.cpp            |  6 +-
 src/ipa/raspberrypi/cam_helper_ov5647.cpp     | 10 +++
 .../raspberrypi/controller/agc_algorithm.hpp  |  1 +
 .../raspberrypi/controller/awb_algorithm.hpp  |  1 +
 src/ipa/raspberrypi/controller/pwl.cpp        | 30 ++++++++
 src/ipa/raspberrypi/controller/pwl.hpp        |  3 +
 src/ipa/raspberrypi/controller/rpi/agc.cpp    | 11 +++
 src/ipa/raspberrypi/controller/rpi/agc.hpp    |  2 +
 src/ipa/raspberrypi/controller/rpi/alsc.cpp   |  6 +-
 src/ipa/raspberrypi/controller/rpi/awb.cpp    | 25 +++++++
 src/ipa/raspberrypi/controller/rpi/awb.hpp    |  3 +
 src/ipa/raspberrypi/raspberrypi.cpp           | 73 ++++++++++++++-----
 .../pipeline/raspberrypi/raspberrypi.cpp      | 25 ++++---
 13 files changed, 160 insertions(+), 36 deletions(-)

-- 
2.20.1



More information about the libcamera-devel mailing list