[00/10] Add Mali-C55 IPA Module and Algorithms
mbox series

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

Message

Dan Scally June 13, 2024, 1: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 a couple of fixes to the pipeline handler itself which
are not yet upstream, but will be posted as a separate set shortly. None of them
are consequential for this set so I thought it better to keep them separate.

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

Thanks
Dan

[1] https://lore.kernel.org/linux-media/20240529152858.183799-1-dan.scally@ideasonboard.com/

Daniel Scally (8):
  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.in                    |   1 +
 include/libcamera/ipa/mali-c55.mojom         |  34 +
 include/libcamera/ipa/meson.build            |   1 +
 include/linux/mali-c55-config.h              | 851 +++++++++++++++++++
 include/linux/videodev2.h                    |   3 +
 meson_options.txt                            |   2 +-
 src/ipa/mali-c55/algorithms/agc.cpp          | 450 ++++++++++
 src/ipa/mali-c55/algorithms/agc.h            |  82 ++
 src/ipa/mali-c55/algorithms/algorithm.h      |  24 +
 src/ipa/mali-c55/algorithms/awb.cpp          | 231 +++++
 src/ipa/mali-c55/algorithms/awb.h            |  38 +
 src/ipa/mali-c55/algorithms/blc.cpp          | 119 +++
 src/ipa/mali-c55/algorithms/blc.h            |  40 +
 src/ipa/mali-c55/algorithms/lsc.cpp          | 218 +++++
 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               |  84 ++
 src/ipa/mali-c55/mali-c55.cpp                | 410 +++++++++
 src/ipa/mali-c55/meson.build                 |  33 +
 src/ipa/mali-c55/module.h                    |  27 +
 src/libcamera/pipeline/mali-c55/mali-c55.cpp | 466 +++++++++-
 25 files changed, 3586 insertions(+), 23 deletions(-)
 create mode 100644 include/libcamera/ipa/mali-c55.mojom
 create mode 100644 include/linux/mali-c55-config.h
 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