[v3,00/10] libipa: Re-work IPU3 IPA to use libipa algorithms
mbox series

Message ID 20260902-ipu3-libipa-rework-v3-0-b7da9b062326@ideasonboard.com
Headers show
Series
  • libipa: Re-work IPU3 IPA to use libipa algorithms
Related show

Message

Dan Scally Sept. 2, 2026, 9:07 a.m. UTC
Hello all

This series builds on top of the recent work adding libipa
implementations of the AGC, AWB, CCM and LSC algorithms by adapting
the IPU3 IPA to use them. As CCM and LSC were not present for this
IPA previously, this series adds them.

I also introduce the Gamma Correction algorithm to libipa following
the theme of the earlier work and update the IPU3 and RkISP1 IPAs to
use it.

Tested on the IPU3 via the Surface Go2 with OV5693 and on RkISP1 via
the Debix A with an imx708. 

Dan

Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
---
Changes in v3:
- Dropped three patches who's contents were superseded by the merged
  work from Barnabas:
    - ipa: ipu3: Convert from separate gains to RGB<double> in AGC
    - ipa: ipu3: Don't pass sensorInfo to updateControls()
    - ipa: ipu3: Add IPACameraSensorInfo to IPAContext
- New patch to correct an error in AwbGrey
- Link to v2: https://patchwork.libcamera.org/project/libcamera/list/?series=6022

Changes in v2:
- Added a patch converting the AGC from using separate class members
  for each colour channel's gain to a single RGB member
- Added a patch that drops the sensorInfo parameter from
  IPAIPU3::updateControls()
- Link to v1: https://patchwork.libcamera.org/project/libcamera/list/?series=5995

---
Daniel Scally (10):
      libipa: awb_grey: Correct minimum gain clamping
      ipa: ipu3: Remove ~Awb() from source and header
      ipu3: awb: Remove CCM settings from Awb algorithm
      ipa: ipu3: awb: Port to the new libipa AwbAlgorithm
      ipa: ipu3: ccm: Add a Colour Correction Matrix algorithm
      ipa: libipa: Add GammaAlgorithm class
      ipa: ipu3: ToneMapping: Convert to use GammaAlgorithm
      ipa: ipu3: Add Ccm to uncalibrated.yaml
      ipa: rkisp1: goc: Re-work to use GammaAlgorithm class
      ipa: ipu3: Add Lens Shading Correction algorithm

 src/ipa/ipu3/algorithms/agc.cpp          |  16 +-
 src/ipa/ipu3/algorithms/awb.cpp          | 243 ++++++++++++-------------
 src/ipa/ipu3/algorithms/awb.h            |  22 ++-
 src/ipa/ipu3/algorithms/ccm.cpp          | 116 ++++++++++++
 src/ipa/ipu3/algorithms/ccm.h            |  48 +++++
 src/ipa/ipu3/algorithms/lsc.cpp          | 295 +++++++++++++++++++++++++++++++
 src/ipa/ipu3/algorithms/lsc.h            |  60 +++++++
 src/ipa/ipu3/algorithms/meson.build      |   2 +
 src/ipa/ipu3/algorithms/tone_mapping.cpp |  73 ++++----
 src/ipa/ipu3/algorithms/tone_mapping.h   |  12 +-
 src/ipa/ipu3/data/uncalibrated.yaml      |   1 +
 src/ipa/ipu3/ipa_context.cpp             |  60 ++++---
 src/ipa/ipu3/ipa_context.h               |  27 ++-
 src/ipa/libipa/awb.cpp                   |   5 -
 src/ipa/libipa/awb_grey.cpp              |   6 +-
 src/ipa/libipa/gamma.cpp                 | 257 +++++++++++++++++++++++++++
 src/ipa/libipa/gamma.h                   |  94 ++++++++++
 src/ipa/libipa/meson.build               |   2 +
 src/ipa/rkisp1/algorithms/goc.cpp        |  65 ++-----
 src/ipa/rkisp1/algorithms/goc.h          |   7 +-
 src/ipa/rkisp1/ipa_context.h             |  10 +-
 21 files changed, 1141 insertions(+), 280 deletions(-)
---
base-commit: 1df5cbe722a839ce4e257093550fa8107c02cf8b
change-id: 20260616-ipu3-libipa-rework-f2364436d42b

Best regards,