[libcamera-devel] [PATCH v4 00/11] libcamera: ipa: Add basic IPA support

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Oct 3 19:49:30 CEST 2019


Hi,

This series adds basic support for Image Processing Algorithms (IPA). It
extends the pipeline handler framework to optionally allow an IPA plugin
to interact with buffers and to send actions to the pipeline.

This series adds an Auto Exposure control and extends the rkisp1
pipeline with and IPA that implements a very basic control loop for
exposure time and gain. The series compared to v2 have been merged with
the meta data series that was developed on top of this and now supports
reporting meta data back to the application about the control loop
state.

The series depends on the ControlList series which currently are out of 
tree. Future work which can be done on top of this is the use the 
ControlList in the IPAOperationsData to carry v4l2 controls once that 
support is ready.

* Changes since v3
- Rebase to make use of ControlList's.
- Total redesign on the IPA/pipeline interface. Fall out of this is mor 
  or less all patches in the series have been reworked compared to v3.

* Changes since v2
 - The series is more or less rewritten from v2 so a meaningful change 
   log is hard to produce.

Niklas Söderlund (11):
  libcamera: pipeline: Move IPA from pipeline to camera data
  libcamera: controls: Add AeEnable control
  libcamera: controls: Add AeLocked control
  libcamera: request: Add meta data information
  libcamera: ipa: meson: Allow access to internal libcamera headers
  libcamera: ipa: Extend to support IPA interactions
  libcamera: timeline: Add a basic timeline implementation
  test: Add timeline test
  include: linux: Add rkisp1 kernel header and format definitions
  libcamera: ipa: rkisp1: Add basic control of auto exposure
  libcamera: pipeline: rkisp1: Attach to an IPA

 include/ipa/ipa_interface.h                |  37 +
 include/ipa/rkisp1.h                       |  23 +
 include/libcamera/request.h                |   2 +
 include/linux/rkisp1-config.h              | 816 +++++++++++++++++++++
 include/linux/videodev2.h                  |   4 +
 src/ipa/ipa_dummy.cpp                      |   7 +-
 src/ipa/ipa_rkisp1.cpp                     | 278 +++++++
 src/ipa/meson.build                        |  15 +-
 src/libcamera/control_ids.yaml             |  14 +
 src/libcamera/include/meson.build          |   1 +
 src/libcamera/include/pipeline_handler.h   |   2 +
 src/libcamera/include/timeline.h           |  71 ++
 src/libcamera/ipa_interface.cpp            | 132 ++++
 src/libcamera/meson.build                  |   1 +
 src/libcamera/pipeline/rkisp1/meson.build  |   1 +
 src/libcamera/pipeline/rkisp1/rkisp1.cpp   | 326 +++++++-
 src/libcamera/pipeline/rkisp1/rkisp1.h     |  78 ++
 src/libcamera/pipeline/rkisp1/timeline.cpp |  56 ++
 src/libcamera/pipeline/vimc.cpp            |  12 +-
 src/libcamera/pipeline_handler.cpp         |   8 +
 src/libcamera/proxy/ipa_proxy_linux.cpp    |  14 +-
 src/libcamera/request.cpp                  |  12 +
 src/libcamera/timeline.cpp                 | 267 +++++++
 test/meson.build                           |   1 +
 test/timeline.cpp                          |  97 +++
 25 files changed, 2245 insertions(+), 30 deletions(-)
 create mode 100644 include/ipa/rkisp1.h
 create mode 100644 include/linux/rkisp1-config.h
 create mode 100644 src/ipa/ipa_rkisp1.cpp
 create mode 100644 src/libcamera/include/timeline.h
 create mode 100644 src/libcamera/pipeline/rkisp1/rkisp1.h
 create mode 100644 src/libcamera/pipeline/rkisp1/timeline.cpp
 create mode 100644 src/libcamera/timeline.cpp
 create mode 100644 test/timeline.cpp

-- 
2.23.0



More information about the libcamera-devel mailing list