[libcamera-devel,v1,0/7] IPU3: AWB and AGC improvements
mbox series

Message ID 20210823124937.253539-1-jeanmichel.hautbois@ideasonboard.com
Headers show
Series
  • IPU3: AWB and AGC improvements
Related show

Message

Jean-Michel Hautbois Aug. 23, 2021, 12:49 p.m. UTC
Now that we have a full context share between algorithms when needed,
and a modular algorithm instanciation, we can introduce a new AGC
algorithm to demonstrate how one can chose between one or another (it
could obviously be done with a configuration file).

The algorithm comes from the RPi source code, and has been adapted but
stays similar in its concepts. It uses the AWB gains calculated at each
frame to adjust the exposure.
As we need to access the AWB statistics, having the needed structures
outside the AWB class sounds better.

Finally, we can introduce the Black level correction values in order to
slightly improve the contrast (we still lack Lens Shading Correction and
sensor linearization, though).

Jean-Michel Hautbois (7):
  ipa: ipu3: Move the AWB stats structures
  ipa: ipu3: awb: Correct the relevant zones proportion
  ipa: ipu3: awb: Correct the gain multipliers
  ipa: ipu3: awb: Add some documentation on the algorithm used
  ipa: ipu3: rename AGC algorithm
  ipa: ipu3: Introduce a new AGC algorithm
  ipa: ipu3: Introduce Black Level Correction

 .../ipu3/algorithms/{agc.cpp => agc_mean.cpp} |  31 +-
 src/ipa/ipu3/algorithms/{agc.h => agc_mean.h} |   8 +-
 src/ipa/ipu3/algorithms/agc_metering.cpp      | 336 ++++++++++++++++++
 src/ipa/ipu3/algorithms/agc_metering.h        |  81 +++++
 src/ipa/ipu3/algorithms/awb.cpp               |  59 ++-
 src/ipa/ipu3/algorithms/awb.h                 |  78 ++--
 src/ipa/ipu3/algorithms/meson.build           |   3 +-
 src/ipa/ipu3/ipa_context.h                    |   8 +
 src/ipa/ipu3/ipu3.cpp                         |  12 +-
 9 files changed, 546 insertions(+), 70 deletions(-)
 rename src/ipa/ipu3/algorithms/{agc.cpp => agc_mean.cpp} (87%)
 rename src/ipa/ipu3/algorithms/{agc.h => agc_mean.h} (90%)
 create mode 100644 src/ipa/ipu3/algorithms/agc_metering.cpp
 create mode 100644 src/ipa/ipu3/algorithms/agc_metering.h