[libcamera-devel] [RFC PATCH 0/4] Add tuning data file support to the IPU3 IPA module

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Aug 2 12:09:51 CEST 2022


Hello,

This patch series adds support for tuning data files to the IPU3 IPA
module. It mimicks the RkISP1 implementation that was merged recently,
and brings dynamic instantiation of algorithms from the tuning file.

The series leaves a few questions unanswered, in particular how to
handle the IPU3 IPA module based on the closed-source Intel 3A binaries.
I don't think this is a blocker, the pipeline handler will pass a tuning
file name to the IPA module, which that particular module will ignore. I
haven't really thought about how to handle the fact that different IPA
modules may require different tuning files, maybe this should be handled
in the broader context of how to select one IPA module among multiple
options.

Another question is if there is room for more code sharing, both on the
pipeline handler side and the IPA module side, as the IPU3 code is very
similar to the RkISP1 code. I think this should be addressed in a second
step, once we'll see how both implementations will evolve.

The patches haven't been tested yet, hence the RFC. I'd like feedback on
the direction this is taking, and if someone wants to give the series a
go on an IPU3 device, that will also be appreciated.

Laurent Pinchart (4):
  pipeline: ipu3: Support IPA tuning file
  ipa: ipu3: Add an uncalibrated.yaml tuning data file
  ipa: ipu3: Register algorithms
  ipa: ipu3: Add YAML tuning file support

 src/ipa/ipu3/algorithms/af.cpp           |  2 +
 src/ipa/ipu3/algorithms/agc.cpp          |  2 +
 src/ipa/ipu3/algorithms/awb.cpp          |  2 +
 src/ipa/ipu3/algorithms/blc.cpp          |  2 +
 src/ipa/ipu3/algorithms/tone_mapping.cpp |  2 +
 src/ipa/ipu3/data/meson.build            |  8 +++
 src/ipa/ipu3/data/uncalibrated.yaml      | 11 ++++
 src/ipa/ipu3/ipu3.cpp                    | 70 ++++++++++++++++++------
 src/ipa/ipu3/meson.build                 |  1 +
 src/libcamera/pipeline/ipu3/ipu3.cpp     | 22 +++++++-
 10 files changed, 102 insertions(+), 20 deletions(-)
 create mode 100644 src/ipa/ipu3/data/meson.build
 create mode 100644 src/ipa/ipu3/data/uncalibrated.yaml

-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list