[v4,00/11] Add Mali-C55 IPA Module and Algorithms
mbox series

Message ID 20241115122540.478103-1-dan.scally@ideasonboard.com
Headers show
Series
  • Add Mali-C55 IPA Module and Algorithms
Related show

Message

Dan Scally Nov. 15, 2024, 12:25 p.m. UTC
Hello all

This series adds an IPA Module to go with the Mali-C55 ISP's pipeline handler.
Algorithms are included for Black Level Correction, Auto-Exposure and Gain, Auto
White Balance and Lens Shading Correction. A tuning file for the IXM415 sensor
is also included.

The series is based on the "Miscellaneous Mali-C55 Pipeline Fixes" set and the
"Centralise common functions in IPA modules​" set.

The pipeline handler / IPA module implemented following application of this
patchset is developed using version 8 of the Mali-C55 ISP driver currently on
the linux-media mailing list [1]

Thanks
Dan

Series level changes:

	- A new patch centralises the rkisp1 floating / fixed point helpers

[1] https://lore.kernel.org/linux-media/20241106100534.768400-1-dan.scally@ideasonboard.com/T/#t

Daniel Scally (9):
  libipa: Centralise Fixed / Floating point convertors
  include: linux: Add mali-c55-config.h
  include: linux: Add Mali-C55 Stats and Params V4L2 format
  libcamera: mali-c55: Acquire and plumb in 3a params and stats
  ipa: mali-c55: Add Mali-C55 ISP IPA module
  ipa: mali-c55: Add Agc algorithm
  ipa: mali-c55: Add AWB Algorithm
  ipa: mali-c55: Add Lens Shading Correction algorithm
  ipa: mali-c55: Add IMX415 tuning data file

Jacopo Mondi (2):
  mali-c55: Plumb the IPA module in
  ipa: mali-c55: Add BLC Algorithm

 Documentation/Doxyfile-common.in              |   1 +
 include/libcamera/ipa/mali-c55.mojom          |  34 +
 include/libcamera/ipa/meson.build             |   1 +
 include/linux/mali-c55-config.h               | 909 ++++++++++++++++++
 include/linux/videodev2.h                     |   3 +
 meson_options.txt                             |   2 +-
 .../utils.cpp => libipa/fixedpoint.cpp}       |  10 +-
 .../{rkisp1/utils.h => libipa/fixedpoint.h}   |   6 +-
 src/ipa/libipa/meson.build                    |   2 +
 src/ipa/mali-c55/algorithms/agc.cpp           | 410 ++++++++
 src/ipa/mali-c55/algorithms/agc.h             |  81 ++
 src/ipa/mali-c55/algorithms/algorithm.h       |  39 +
 src/ipa/mali-c55/algorithms/awb.cpp           | 230 +++++
 src/ipa/mali-c55/algorithms/awb.h             |  40 +
 src/ipa/mali-c55/algorithms/blc.cpp           | 140 +++
 src/ipa/mali-c55/algorithms/blc.h             |  42 +
 src/ipa/mali-c55/algorithms/lsc.cpp           | 216 +++++
 src/ipa/mali-c55/algorithms/lsc.h             |  45 +
 src/ipa/mali-c55/algorithms/meson.build       |   8 +
 src/ipa/mali-c55/data/imx415.yaml             | 325 +++++++
 src/ipa/mali-c55/data/meson.build             |   9 +
 src/ipa/mali-c55/data/uncalibrated.yaml       |   7 +
 src/ipa/mali-c55/ipa_context.cpp              | 101 ++
 src/ipa/mali-c55/ipa_context.h                |  85 ++
 src/ipa/mali-c55/mali-c55.cpp                 | 399 ++++++++
 src/ipa/mali-c55/meson.build                  |  33 +
 src/ipa/mali-c55/module.h                     |  27 +
 src/ipa/rkisp1/algorithms/ccm.cpp             |   4 +-
 src/ipa/rkisp1/meson.build                    |   1 -
 src/libcamera/pipeline/mali-c55/mali-c55.cpp  | 540 ++++++++++-
 .../fixedpoint.cpp}                           |  16 +-
 test/ipa/libipa/meson.build                   |   1 +
 test/ipa/meson.build                          |   1 -
 test/ipa/rkisp1/meson.build                   |  15 -
 34 files changed, 3718 insertions(+), 65 deletions(-)
 create mode 100644 include/libcamera/ipa/mali-c55.mojom
 create mode 100644 include/linux/mali-c55-config.h
 rename src/ipa/{rkisp1/utils.cpp => libipa/fixedpoint.cpp} (87%)
 rename src/ipa/{rkisp1/utils.h => libipa/fixedpoint.h} (93%)
 create mode 100644 src/ipa/mali-c55/algorithms/agc.cpp
 create mode 100644 src/ipa/mali-c55/algorithms/agc.h
 create mode 100644 src/ipa/mali-c55/algorithms/algorithm.h
 create mode 100644 src/ipa/mali-c55/algorithms/awb.cpp
 create mode 100644 src/ipa/mali-c55/algorithms/awb.h
 create mode 100644 src/ipa/mali-c55/algorithms/blc.cpp
 create mode 100644 src/ipa/mali-c55/algorithms/blc.h
 create mode 100644 src/ipa/mali-c55/algorithms/lsc.cpp
 create mode 100644 src/ipa/mali-c55/algorithms/lsc.h
 create mode 100644 src/ipa/mali-c55/algorithms/meson.build
 create mode 100644 src/ipa/mali-c55/data/imx415.yaml
 create mode 100644 src/ipa/mali-c55/data/meson.build
 create mode 100644 src/ipa/mali-c55/data/uncalibrated.yaml
 create mode 100644 src/ipa/mali-c55/ipa_context.cpp
 create mode 100644 src/ipa/mali-c55/ipa_context.h
 create mode 100644 src/ipa/mali-c55/mali-c55.cpp
 create mode 100644 src/ipa/mali-c55/meson.build
 create mode 100644 src/ipa/mali-c55/module.h
 rename test/ipa/{rkisp1/rkisp1-utils.cpp => libipa/fixedpoint.cpp} (85%)
 delete mode 100644 test/ipa/rkisp1/meson.build