[RFC,v1,00/17] ipa: libipa: agc rework
mbox series

Message ID 20260703153819.1088752-1-barnabas.pocze@ideasonboard.com
Headers show
Series
  • ipa: libipa: agc rework
Related show

Message

Barnabás Pőcze July 3, 2026, 3:38 p.m. UTC
This is a first early of the AGC rework that is supposed to remove duplication
of AGC related code from multiple IPA modules.

It also enables the use of AgcMeanLuminance in the simple pipeline handler
if a camera sensor helper is available.

This applies on top of the current master branch, not rebased on any of
the libipa rework yet. Conflicts should be minimal.

TODO: handling of DigitalGain + AeEnable needs to be clarified

Barnabás Pőcze (17):
  ipa: simple: Fix control presence sanity check
  ipa: rkisp1: Remove `IPASessionConfiguration::sensor.defVBlank`
  ipa: simple: agc: Do not overwrite sensor exposure/gain
  ipa: libipa: agc_mean_luminance: Remove the need for inheritance
  ipa: rkisp1: Move sensor control info map to context
  ipa: rkisp1: Update sensor info when configuring
  ipa: rkisp1: updateControls(): Use sensor info from context
  ipa: rkisp1: Move AGC related controls into AGC algorithm
  ipa: mali-c55: Remove `DigitalGain` support
  ipa: libipa: Add `AgcMeanLuminance` wrapper
  ipa: rkisp1: Port to `AgcMeanLuminanceAlgorithm`
  ipa: mali-c55: Port to `AgcMeanLuminanceAlgorithm`
  ipa: ipu3: Port to `AgcMeanLuminanceAlgorithm`
  ipa: libipa: agc_mean_luminance: controls(): Return const ref
  ipa: libipa: Add `AgcAlgorithm`
  ipa: simple: agc: Port to `AgcAlgorithm`
  ipa: simple: agc: Use `AgcMeanLuminance` if sensor helper is available

 src/ipa/ipu3/algorithms/agc.cpp       | 199 +++++------
 src/ipa/ipu3/algorithms/agc.h         |  19 +-
 src/ipa/ipu3/ipa_context.cpp          |  49 +--
 src/ipa/ipu3/ipa_context.h            |  27 +-
 src/ipa/ipu3/ipu3.cpp                 | 138 ++------
 src/ipa/libipa/agc.cpp                | 488 ++++++++++++++++++++++++++
 src/ipa/libipa/agc.h                  | 100 ++++++
 src/ipa/libipa/agc_mean_luminance.cpp | 268 ++++++++++++--
 src/ipa/libipa/agc_mean_luminance.h   |  65 +++-
 src/ipa/libipa/meson.build            |   2 +
 src/ipa/mali-c55/algorithms/agc.cpp   | 205 +++--------
 src/ipa/mali-c55/algorithms/agc.h     |   7 +-
 src/ipa/mali-c55/ipa_context.h        |  38 +-
 src/ipa/mali-c55/mali-c55.cpp         | 163 ++-------
 src/ipa/rkisp1/algorithms/agc.cpp     | 478 ++++++-------------------
 src/ipa/rkisp1/algorithms/agc.h       |  13 +-
 src/ipa/rkisp1/algorithms/lux.cpp     |   2 +-
 src/ipa/rkisp1/algorithms/wdr.cpp     |   2 +-
 src/ipa/rkisp1/ipa_context.cpp        | 104 +-----
 src/ipa/rkisp1/ipa_context.h          |  48 +--
 src/ipa/rkisp1/rkisp1.cpp             | 120 +------
 src/ipa/simple/agc_simple.cpp         | 197 +++++++++++
 src/ipa/simple/agc_simple.h           |  59 ++++
 src/ipa/simple/algorithms/agc.cpp     | 296 ++++++++--------
 src/ipa/simple/algorithms/agc.h       |  16 +-
 src/ipa/simple/ipa_context.h          |  25 +-
 src/ipa/simple/meson.build            |   1 +
 src/ipa/simple/soft_simple.cpp        |  80 ++---
 28 files changed, 1743 insertions(+), 1466 deletions(-)
 create mode 100644 src/ipa/libipa/agc.cpp
 create mode 100644 src/ipa/libipa/agc.h
 create mode 100644 src/ipa/simple/agc_simple.cpp
 create mode 100644 src/ipa/simple/agc_simple.h

--
2.54.0