[libcamera-devel] [PATCH v1 00/14] Raspberry Pi: Camera Module 3 support

Naushir Patuck naush at raspberrypi.com
Thu Jan 19 11:45:30 CET 2023


Hi,

This series adds support for the Raspberry Pi Camera Module 3 (IMX708).
A new hybrid PDAF/CDAF autofocus algorithm has been implemented to drive the
autofocus mechanism available on this module.  All libcamera focus related
controls are now hanled by the IPA.

Camera Module 3 is available either with an IR or without an IR (NoIR) filter,
and a normal or wide angle lens.  This makes a total of 4 possible variants.
Detection of the variant is done through an OTP on the module, and signalled
back to userland through changing the suffix on the device entity name.  As such,
we have 4 different tuning files and 4 duplicate instances of camera helpers and
sensor properties entires.

There is a single HDR sensor mode available in the sensor.  Because of current
limitations, this needs to be switched on/off externally before running
libcamera:

v4l2-ctl --set-ctrl wide_dynamic_range=[0|1] -d /dev/v4l-subdev0

in order for the CameraSensor class to cache the correct sensor mode.  In our
libcamera-apps, you can simply use the --hdr argument to switch this on.  This
is only a temporary measure, and we need to work on a more permanent solution by
adding HDR pixel formats into V4L2.

Thanks,
Naush

Naushir Patuck (7):
  pipeline: ipa: raspberrypi: Check if lens actuator is available
  pipeline: ipa: raspberrypi: Remove unused streamConfig
  pipeline: ipa: raspberrypi: Replace entityControls
  pipeline: ipa: raspberrypi: Validate lens controls
  ipa: raspberrypi: Reorder header file inclusion
  ipa: raspberrypi: Include autofocus controls in the IPA ControlInfoMap
  ipa: raspberrypi: Add lens position to DeviceStatus

Nick Hollinghurst (7):
  ipa: mojom: raspberrypi: Add setLensControls() function
  ipa: raspberrypi: Add autofocus algorithm interface headers
  ipa: raspberrypi: Handle autofocus controls
  ipa: raspberrypi: Handle autofocus algorithm results
  ipa: raspberrypi: First version of autofocus algorithm using PDAF
  libcamera: camera_sensor: Add Sony IMX708 sensor properties
  ipa: raspberrypi: Add support for the Sony IMX708 sensor

 include/libcamera/ipa/raspberrypi.mojom       |  10 +-
 src/ipa/raspberrypi/cam_helper_imx708.cpp     | 350 ++++++++
 src/ipa/raspberrypi/controller/af_algorithm.h |  76 ++
 src/ipa/raspberrypi/controller/af_status.h    |  35 +
 .../raspberrypi/controller/device_status.h    |   4 +-
 src/ipa/raspberrypi/controller/pdaf_data.h    |  21 +
 src/ipa/raspberrypi/controller/rpi/af.cpp     | 755 ++++++++++++++++++
 src/ipa/raspberrypi/controller/rpi/af.h       | 153 ++++
 src/ipa/raspberrypi/data/imx708.json          | 559 +++++++++++++
 src/ipa/raspberrypi/data/imx708_noir.json     | 559 +++++++++++++
 src/ipa/raspberrypi/data/imx708_wide.json     | 462 +++++++++++
 .../raspberrypi/data/imx708_wide_noir.json    | 462 +++++++++++
 src/ipa/raspberrypi/data/meson.build          |   4 +
 src/ipa/raspberrypi/meson.build               |   2 +
 src/ipa/raspberrypi/raspberrypi.cpp           | 267 ++++++-
 src/libcamera/camera_sensor_properties.cpp    |  16 +
 .../pipeline/raspberrypi/raspberrypi.cpp      |  35 +-
 17 files changed, 3729 insertions(+), 41 deletions(-)
 create mode 100644 src/ipa/raspberrypi/cam_helper_imx708.cpp
 create mode 100644 src/ipa/raspberrypi/controller/af_algorithm.h
 create mode 100644 src/ipa/raspberrypi/controller/af_status.h
 create mode 100644 src/ipa/raspberrypi/controller/pdaf_data.h
 create mode 100644 src/ipa/raspberrypi/controller/rpi/af.cpp
 create mode 100644 src/ipa/raspberrypi/controller/rpi/af.h
 create mode 100644 src/ipa/raspberrypi/data/imx708.json
 create mode 100644 src/ipa/raspberrypi/data/imx708_noir.json
 create mode 100644 src/ipa/raspberrypi/data/imx708_wide.json
 create mode 100644 src/ipa/raspberrypi/data/imx708_wide_noir.json

-- 
2.25.1



More information about the libcamera-devel mailing list