[PATCH v6 0/9] rkisp1: Add manual colour temperature control

Stefan Klug stefan.klug at ideasonboard.com
Thu Dec 19 18:57:17 CET 2024


This series adds the ability to manually set the colour temperature
control. It is a partial resurrection of the "libcamera: controls:
Update the ColourTemperature control to be writable" series by David
Plowman [1], but with a implementation for the rkisp1 instead of the
rpi.

Patch 1 updates the control id documentation. Patches 2-3 implement the
control for the rkisp1. Patches 4-8 update the tuning scripts
accordingly.

Patch 9 is a rebase of the RPi implementation form [1]. It was tested and seems
to work as expected.

After some discussions in v4 an agreement on the expected behavior of
the manual controls was found and documented in control_ids_core.yaml.

Changes v5 -> v6:
- Updated documentation according to discussions in v4
- Fixed minor issues from v5 reviews
- Changed colour temperature metadata to be the temperature used for the frame
  instead of the latest measurement
- Added the RPi implementation form David as patch 9/9

Changes v4 -> v5:
- Rebased on current master
- Small fixes from review
- Replaced Interpolator<Matrix> with Interpolator<Vector> as we now have
  a genric Vector class.

Changes v1 -> v4:
- Incremented series version to v4, because technically it is a superset of [1]
- Fixed compile issue on patch 2
- Fixed typos and wording in patch 1
- Collected tags

Best regards,
Stefan

[1] https://patchwork.libcamera.org/project/libcamera/list/?series=4083 

David Plowman (1):
  ipa: rpi: awb: Make it possible to set the colour temperature directly

Stefan Klug (8):
  libcamera: controls: Update the ColourTemperature control to be
    writable
  ipa: rkisp1: awb: Load white balance gains from tuning file
  ipa: rkisp1: awb: Implement ColourTemperature control
  libtuning: Use logging framework in ctt_awb.awb()
  libtuning: Remove the Cam object from ctt_awb.awb()
  libtuning: Fix access to color member in ctt_awb.awb()
  libtuning: Add initial AWB module
  utils: tuning: rkisp1: Replace static AWB with new AWB module

 src/ipa/rkisp1/algorithms/awb.cpp             | 67 ++++++++++++++++---
 src/ipa/rkisp1/algorithms/awb.h               |  7 ++
 src/ipa/rkisp1/ipa_context.h                  |  1 +
 src/ipa/rpi/common/ipa_base.cpp               | 20 ++++++
 src/ipa/rpi/controller/awb_algorithm.h        |  1 +
 src/ipa/rpi/controller/rpi/awb.cpp            | 18 +++++
 src/ipa/rpi/controller/rpi/awb.h              |  1 +
 src/libcamera/control_ids_core.yaml           | 38 ++++++++++-
 utils/tuning/libtuning/ctt_awb.py             | 55 +++++++--------
 .../tuning/libtuning/modules/awb/__init__.py  |  6 ++
 utils/tuning/libtuning/modules/awb/awb.py     | 36 ++++++++++
 utils/tuning/libtuning/modules/awb/rkisp1.py  | 27 ++++++++
 utils/tuning/rkisp1.py                        |  4 +-
 13 files changed, 240 insertions(+), 41 deletions(-)
 create mode 100644 utils/tuning/libtuning/modules/awb/__init__.py
 create mode 100644 utils/tuning/libtuning/modules/awb/awb.py
 create mode 100644 utils/tuning/libtuning/modules/awb/rkisp1.py

-- 
2.43.0



More information about the libcamera-devel mailing list