[v2,00/11] ipa: libipa: Introduce libipa algorithms
mbox series

Message ID 20260623-libipa-algorithms-v2-0-f97433f12e4e@ideasonboard.com
Headers show
Series
  • ipa: libipa: Introduce libipa algorithms
Related show

Message

Jacopo Mondi June 23, 2026, 1:54 p.m. UTC
This series introduces the first algorithms in libipa: Awb, Lsc and Ccm.

As most of the implementations of the common algorithms derive from
RkISP1 it wasn't possible to separate the algorithm introduction with
the RkISP1 IPA modifications to maintain bisectability.

This series contains:

- Awb (Grey and Bayes)
 - RkISP1
 - Simple
 - Mali-C55

- Ccm
 - RkISP1
 - Simple
 - Mali-C55

- Lsc (grid and polynomial)
 - RkISP1
 - Mali-C55

Tested on RkISP1 with imx219 (Grey world awb and grid-based LSC) and on
Mali-C55 with imx708 (Bayes AWB and grid-based LSC).

More test on Simple and with polynomial LSC would be helpful :)

Signed-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
---
Changes in v2:
- Introduce awb::Context to simplify ActiveState and FrameContext
  definition
- Add mali uAPI header for CCM and Gamma
- Do not rename Mali functions for hardware configuration in awb and lsc
- Spelling and documentation

---
Jacopo Mondi (9):
      ipa: libipa: awb: Reimplement AwbAlgorithm
      ipa: mali-c55: awb: Port to use libipa AwbAlgorithm
      ipa: libipa: Add CcmAlgorithm to libipa
      ipa: rkisp1: ccm: Port to use CcmAlgorithm
      include: linux: mali-c55: Update to support CCM and Gamma
      ipa: mali-c55: Implement Ccm algorithm
      ipa: libipa: Introduce LscAlgorithm
      ipa: mali-c55: Add sensorInfo to IPAContext
      ipa: mali-c55: Port to use LscAlgorithm

Kieran Bingham (2):
      ipa: simple: awb: Port to use libipa AwbAlgorithm
      ipa: simple: Use libipa CcmAlgorithm

 .../internal/software_isp/debayer_params.h         |   4 +-
 include/linux/media/arm/mali-c55-config.h          |  85 +++-
 src/ipa/libipa/awb.cpp                             | 527 ++++++++++++++++++---
 src/ipa/libipa/awb.h                               | 114 ++++-
 src/ipa/libipa/awb_bayes.cpp                       |  42 +-
 src/ipa/libipa/awb_bayes.h                         |  11 +-
 src/ipa/libipa/awb_grey.cpp                        |  25 +-
 src/ipa/libipa/awb_grey.h                          |   5 +-
 src/ipa/libipa/ccm.cpp                             | 245 ++++++++++
 src/ipa/libipa/ccm.h                               |  77 +++
 src/ipa/libipa/lsc.cpp                             | 324 +++++++++++++
 src/ipa/libipa/lsc.h                               | 145 ++++++
 src/ipa/libipa/lsc_base.cpp                        | 155 ++++++
 src/ipa/libipa/lsc_base.h                          |  59 +++
 src/ipa/libipa/lsc_grid.cpp                        |  33 ++
 src/ipa/libipa/lsc_grid.h                          | 113 +++++
 src/ipa/libipa/lsc_polynomial.cpp                  | 154 +++++-
 src/ipa/libipa/lsc_polynomial.h                    | 147 +++---
 src/ipa/libipa/meson.build                         |   7 +
 src/ipa/mali-c55/algorithms/awb.cpp                | 193 ++++----
 src/ipa/mali-c55/algorithms/awb.h                  |  28 +-
 src/ipa/mali-c55/algorithms/ccm.cpp                | 175 +++++++
 src/ipa/mali-c55/algorithms/ccm.h                  |  66 +++
 src/ipa/mali-c55/algorithms/lsc.cpp                | 156 +++---
 src/ipa/mali-c55/algorithms/lsc.h                  |  32 +-
 src/ipa/mali-c55/algorithms/meson.build            |   1 +
 src/ipa/mali-c55/ipa_context.cpp                   |   6 +
 src/ipa/mali-c55/ipa_context.h                     |  24 +-
 src/ipa/mali-c55/mali-c55.cpp                      |  29 +-
 src/ipa/mali-c55/params.h                          |   2 +
 src/ipa/rkisp1/algorithms/awb.cpp                  | 223 ++-------
 src/ipa/rkisp1/algorithms/awb.h                    |  18 +-
 src/ipa/rkisp1/algorithms/ccm.cpp                  |  97 +---
 src/ipa/rkisp1/algorithms/ccm.h                    |  17 +-
 src/ipa/rkisp1/algorithms/lsc.cpp                  | 421 +++-------------
 src/ipa/rkisp1/algorithms/lsc.h                    |  45 +-
 src/ipa/rkisp1/ipa_context.h                       |  49 +-
 src/ipa/simple/algorithms/awb.cpp                  | 111 +++--
 src/ipa/simple/algorithms/awb.h                    |  29 ++
 src/ipa/simple/algorithms/blc.cpp                  |   2 +-
 src/ipa/simple/algorithms/ccm.cpp                  |  69 +--
 src/ipa/simple/algorithms/ccm.h                    |  23 +-
 src/ipa/simple/ipa_context.h                       |  15 +-
 src/libcamera/software_isp/debayer_cpu.cpp         |  12 +-
 44 files changed, 2920 insertions(+), 1195 deletions(-)
---
base-commit: d780e285b593dd12e950777c13f69ce0799981e1
change-id: 20260615-libipa-algorithms-59666bca0a2f

Best regards,