[v1,0/4] libipa: agc: Fix constraints yTarget handling and add PWL support
mbox series

Message ID 20251014142427.3107490-1-stefan.klug@ideasonboard.com
Headers show
Series
  • libipa: agc: Fix constraints yTarget handling and add PWL support
Related show

Message

Stefan Klug Oct. 14, 2025, 2:24 p.m. UTC
Hi all,

This series introduces support for specifying the
relativeLuminanceTarget based on the current lux level by using a PWL
for the mapping. The typical use case is to ensure that images in a
bright environment are regulated a tad brighter than images taken in a
dark environment. This is a very subjective setting and should thereofre
left for the customer. Mainlining this feature was already tried here
[1] but got rejected at that time because there was no direct user of
it.  Meanwhile the lux algorithm got upstreamed and we have customers
that actually miss that feature. So I start another try of upstreaming
it (Patches 1-2).

During implementation it turned out that the yTarget of AGC constraints
never worked at all. So patches 3-4 fix that and also add PWL support
for the constraints which is sensible to do if we support it for the
relativeLuminanceTarget.

Best regards,
Stefan

Stefan Klug (4):
  ipa: libipa: pwl: Add swap() function
  ipa: libipa: agc_mean_luminance: Change luminance target to piecewise
    linear function
  ipa: libipa: pwl: Add construction from initializer_list
  ipa: libipa: agc_mean_luminance: Fix yTarget handling in constraints

 src/ipa/libipa/agc_mean_luminance.cpp | 113 ++++++++++++++++++++++----
 src/ipa/libipa/agc_mean_luminance.h   |  16 ++--
 src/ipa/libipa/pwl.cpp                |  25 ++++++
 src/ipa/libipa/pwl.h                  |   2 +
 src/ipa/rkisp1/algorithms/agc.cpp     |   1 +
 src/ipa/rkisp1/algorithms/wdr.cpp     |   3 +-
 6 files changed, 136 insertions(+), 24 deletions(-)