[libcamera-devel] [PATCH 00/13] libcamera: ipa: Add basic IPA support
Niklas Söderlund
niklas.soderlund at ragnatech.se
Wed Aug 28 03:16:57 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 prepare a parameters buffer and examine a statistics buffer as well
as applying V4L2 controls on a sensor. It's not mandatory for a pipeline
to have an IPA component, but if a pipeline handler supports an IPA it
becomes mandatory, if an IPA component can't be found that pipeline will
not register any cameras.
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 lack support for exposing the status of control loops running
inside an IPA to the pipeline handler and users of libcamera. This is
something that is planed to be added on top of this series.
Other bits missing which are also planed for the near future is
serialization of data being transferred between pipeline handler and IPA
to allow process isolation.
Niklas Söderlund (13):
libcamera: pipeline: vimc: Increase version of dummy IPA
libcamera: pipeline: Move IPA from pipeline to camera data
libcamera: pipeline: Add method to prepare buffer for IPA
libcamera: pipeline: Add initialization hook for CameraData
libcamera: controls: Add AeEnable
libcamera: controls: Allow read only access to control values
libcamera: request: Add RequestData
libcamera: request: Allow read only access to controls
libcamera: ipa: meson: Allow access to internal libcamera headers
libcamera: ipa: Extend to support IPA interactions
include: linux: Add rkisp1-config.h kernel header
libcamera: ipa: rkisp1: Add basic control of auto exposure
libcamera: pipeline: rkisp1: Attach to an IPA
include/libcamera/control_ids.h | 1 +
include/libcamera/controls.h | 1 +
include/libcamera/ipa/ipa_interface.h | 17 +-
include/libcamera/request.h | 6 +
include/linux/rkisp1-config.h | 798 +++++++++++++++++++++++
include/linux/videodev2.h | 4 +
src/ipa/ipa_dummy.cpp | 13 +-
src/ipa/ipa_dummy_isolate.cpp | 11 +-
src/ipa/ipa_rkisp1.cpp | 165 +++++
src/ipa/meson.build | 3 +-
src/libcamera/controls.cpp | 41 ++
src/libcamera/include/pipeline_handler.h | 16 +-
src/libcamera/ipa_interface.cpp | 72 +-
src/libcamera/pipeline/rkisp1/rkisp1.cpp | 263 +++++++-
src/libcamera/pipeline/vimc.cpp | 10 +-
src/libcamera/pipeline_handler.cpp | 69 +-
src/libcamera/proxy/ipa_proxy_linux.cpp | 12 +-
src/libcamera/request.cpp | 15 +-
18 files changed, 1466 insertions(+), 51 deletions(-)
create mode 100644 include/linux/rkisp1-config.h
create mode 100644 src/ipa/ipa_rkisp1.cpp
--
2.22.1
More information about the libcamera-devel
mailing list