[libcamera-devel] [PATCH v3 0/9] IPU3: Introduce modularity for algorithms

Jean-Michel Hautbois jeanmichel.hautbois at ideasonboard.com
Wed Aug 18 17:53:54 CEST 2021


This patch series splits the algorithms in IPU3 into a modular form.
When the Metadata class was discussed a proposal from Kieran was to have
a fully-defined structure which would be used to pass the context
between algorithms and the IPAIPU3 class, as well as between the
algorithms themselves.

The algorithms are statically emplaced in a list for the moment, and a
registration system may be used later.
In order to demonstrate how to add a new algorithm, patch 5/9
moves the contrast algorithm from AWB into its own algorithm.

Patch 6/9 and 7/9 change the AWB and AGC to use the new interface.
And the two latest patches are indeed the usage of the new modular
interface applied to AWB and AGC.

Jean-Michel Hautbois (9):
  ipa: move libipa::Algorithm to ipa/ipu3/algorithms
  ipa: ipu3: Introduce a Context structure
  ipa: ipu3: Add the functions to the Algorithm class
  ipa: ipu3: Introduce modular algorithm
  ipa: ipu3: Introduce a modular contrast algorithm
  ipa: ipu3: convert AWB to the new algorithm interface
  ipa: ipu3: convert AGC to the new algorithm interface
  ipa: ipu3: Move IPU3 awb into algorithms
  ipa: ipu3: Move IPU3 agc into algorithms

 .../ipu3/{ipu3_agc.cpp => algorithms/agc.cpp} |  39 ++--
 src/ipa/ipu3/{ipu3_agc.h => algorithms/agc.h} |  32 ++--
 src/ipa/ipu3/algorithms/algorithm.cpp         |  76 ++++++++
 src/ipa/ipu3/algorithms/algorithm.h           |  33 ++++
 .../ipu3/{ipu3_awb.cpp => algorithms/awb.cpp} | 168 +++++++-----------
 src/ipa/ipu3/{ipu3_awb.h => algorithms/awb.h} |  26 +--
 src/ipa/ipu3/algorithms/contrast.cpp          |  53 ++++++
 src/ipa/ipu3/algorithms/contrast.h            |  32 ++++
 src/ipa/ipu3/algorithms/meson.build           |   8 +
 src/ipa/ipu3/ipa_context.h                    |  54 ++++++
 src/ipa/ipu3/ipu3.cpp                         | 124 +++++++++----
 src/ipa/ipu3/meson.build                      |   6 +-
 src/ipa/libipa/algorithm.cpp                  |  39 ----
 src/ipa/libipa/algorithm.h                    |  24 ---
 src/ipa/libipa/libipa.cpp                     |  22 +++
 src/ipa/libipa/meson.build                    |   5 +-
 16 files changed, 484 insertions(+), 257 deletions(-)
 rename src/ipa/ipu3/{ipu3_agc.cpp => algorithms/agc.cpp} (88%)
 rename src/ipa/ipu3/{ipu3_agc.h => algorithms/agc.h} (51%)
 create mode 100644 src/ipa/ipu3/algorithms/algorithm.cpp
 create mode 100644 src/ipa/ipu3/algorithms/algorithm.h
 rename src/ipa/ipu3/{ipu3_awb.cpp => algorithms/awb.cpp} (71%)
 rename src/ipa/ipu3/{ipu3_awb.h => algorithms/awb.h} (77%)
 create mode 100644 src/ipa/ipu3/algorithms/contrast.cpp
 create mode 100644 src/ipa/ipu3/algorithms/contrast.h
 create mode 100644 src/ipa/ipu3/algorithms/meson.build
 create mode 100644 src/ipa/ipu3/ipa_context.h
 delete mode 100644 src/ipa/libipa/algorithm.cpp
 delete mode 100644 src/ipa/libipa/algorithm.h
 create mode 100644 src/ipa/libipa/libipa.cpp

-- 
2.30.2



More information about the libcamera-devel mailing list