[PATCH v8 0/4] ipa: Move Pwl from Raspberry Pi to libipa

Paul Elder paul.elder at ideasonboard.com
Tue Jun 11 15:24:26 CEST 2024


This patch series moves the piecewise linear function class from
the Rasberry Pi IPA to libipa so that all IPAs can use it.

First an addition to the geometry header is needed, to add a
floating-point version of the Point class, then the pwl is copied over,
and the Raspberry Pi IPA is converted to use the libipa Pwl class.

The main changes in v2 are s/FPoint/PointF/g and improving the
documentation.

v3 has almost no change...

v4 adds/fixes documentation.

v5 mainly replaces the public API PointF with an libipa-internal Vector
class, which is then typedefed to PointF to be used in Pwl.
Documentation is also improved/fixed.

v6 fixes the order of adding pwl to meson.

v7 mainly fixes documentation and license in the Vector class.

v8 is more fixes and cleanups

Paul Elder (4):
  ipa: libipa: Add Vector class
  ipa: libipa: Copy pwl from rpi
  ipa: libipa: pwl: Clean up Pwl class to match libcamera
  ipa: rpi: controller: Use libipa's Pwl class

 src/ipa/libipa/meson.build                 |   4 +
 src/ipa/libipa/pwl.cpp                     | 421 +++++++++++++++++++++
 src/ipa/libipa/pwl.h                       |  88 +++++
 src/ipa/libipa/vector.cpp                  | 150 ++++++++
 src/ipa/libipa/vector.h                    | 203 ++++++++++
 src/ipa/rpi/controller/cac_status.h        |   2 -
 src/ipa/rpi/controller/contrast_status.h   |   4 +-
 src/ipa/rpi/controller/meson.build         |   2 +-
 src/ipa/rpi/controller/pwl.cpp             | 269 -------------
 src/ipa/rpi/controller/pwl.h               | 127 -------
 src/ipa/rpi/controller/rpi/af.cpp          |   4 +-
 src/ipa/rpi/controller/rpi/af.h            |   5 +-
 src/ipa/rpi/controller/rpi/agc_channel.cpp |   8 +-
 src/ipa/rpi/controller/rpi/agc_channel.h   |   7 +-
 src/ipa/rpi/controller/rpi/awb.cpp         |  84 ++--
 src/ipa/rpi/controller/rpi/awb.h           |  23 +-
 src/ipa/rpi/controller/rpi/ccm.cpp         |   4 +-
 src/ipa/rpi/controller/rpi/ccm.h           |   5 +-
 src/ipa/rpi/controller/rpi/contrast.cpp    |  14 +-
 src/ipa/rpi/controller/rpi/contrast.h      |   5 +-
 src/ipa/rpi/controller/rpi/geq.cpp         |   5 +-
 src/ipa/rpi/controller/rpi/geq.h           |   4 +-
 src/ipa/rpi/controller/rpi/hdr.cpp         |   8 +-
 src/ipa/rpi/controller/rpi/hdr.h           |   9 +-
 src/ipa/rpi/controller/rpi/tonemap.cpp     |   2 +-
 src/ipa/rpi/controller/rpi/tonemap.h       |   5 +-
 src/ipa/rpi/controller/tonemap_status.h    |   4 +-
 27 files changed, 972 insertions(+), 494 deletions(-)
 create mode 100644 src/ipa/libipa/pwl.cpp
 create mode 100644 src/ipa/libipa/pwl.h
 create mode 100644 src/ipa/libipa/vector.cpp
 create mode 100644 src/ipa/libipa/vector.h
 delete mode 100644 src/ipa/rpi/controller/pwl.cpp
 delete mode 100644 src/ipa/rpi/controller/pwl.h

-- 
2.39.2



More information about the libcamera-devel mailing list