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

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Jan 22 20:12:26 CET 2023


Hello,

On Thu, Jan 19, 2023 at 10:45:30AM +0000, Naushir Patuck via libcamera-devel wrote:
> 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.

It's nice to see support for this camera module, as well as PDAF :-) I
haven't tested the IMX708 personally, but Kieran told me how good he
thinks it is.

We have a rule in libcamera that support for new hardware can be merged
only if the corresponding kernel drivers are on their way to upstream. I
haven't seen an imx708 driver posted to the linux-media mailing list.
Did I miss something ?

> 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

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list