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

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

Message

Dan Scally June 16, 2026, 6:41 a.m. UTC
Hello all

This series builds on top of Jacopo's recent set [1] adding libipa
implementations of the AWB, LSC and CCM 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 Jacopo's 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 and imx708.

Dan

[1] https://patchwork.libcamera.org/project/libcamera/list/?series=5992

Signed-off-by: Daniel Scally <dan.scally@ideasonboard.com>
---
Daniel Scally (10):
      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 IPACameraSensorInfo to IPAContext
      ipa: ipu3: Add Lens Shading Correction algorithm

 src/ipa/ipu3/algorithms/agc.cpp          |  12 +-
 src/ipa/ipu3/algorithms/awb.cpp          | 204 +++++++++-------------
 src/ipa/ipu3/algorithms/awb.h            |  22 +--
 src/ipa/ipu3/algorithms/ccm.cpp          | 116 +++++++++++++
 src/ipa/ipu3/algorithms/ccm.h            |  43 +++++
 src/ipa/ipu3/algorithms/lsc.cpp          | 290 +++++++++++++++++++++++++++++++
 src/ipa/ipu3/algorithms/lsc.h            |  58 +++++++
 src/ipa/ipu3/algorithms/meson.build      |   2 +
 src/ipa/ipu3/algorithms/tone_mapping.cpp |  73 ++++----
 src/ipa/ipu3/algorithms/tone_mapping.h   |   9 +-
 src/ipa/ipu3/data/uncalibrated.yaml      |   1 +
 src/ipa/ipu3/ipa_context.cpp             |  82 +++++----
 src/ipa/ipu3/ipa_context.h               |  32 ++--
 src/ipa/ipu3/ipu3.cpp                    |   1 +
 src/ipa/libipa/gamma.cpp                 | 248 ++++++++++++++++++++++++++
 src/ipa/libipa/gamma.h                   |  93 ++++++++++
 src/ipa/libipa/meson.build               |   2 +
 src/ipa/rkisp1/algorithms/goc.cpp        |  49 ++----
 src/ipa/rkisp1/algorithms/goc.h          |   5 +-
 src/ipa/rkisp1/ipa_context.h             |  10 +-
 20 files changed, 1094 insertions(+), 258 deletions(-)
---
base-commit: ff5cb4f17b0b9989dd853b4d4320ddb2c59a9c0e
change-id: 20260616-ipu3-libipa-rework-f2364436d42b
prerequisite-change-id: 20260615-libipa-algorithms-59666bca0a2f

Best regards,