From patchwork Fri Dec 6 14:52:20 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Klug X-Patchwork-Id: 22217 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id 8B9F1BF415 for ; Fri, 6 Dec 2024 14:52:50 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 751B46615F; Fri, 6 Dec 2024 15:52:49 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="uz2hJKWe"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 543A7618B3 for ; Fri, 6 Dec 2024 15:52:47 +0100 (CET) Received: from ideasonboard.com (unknown [IPv6:2a00:6020:448c:6c00:3543:aebe:e043:ef86]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B135D641; Fri, 6 Dec 2024 15:52:17 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1733496737; bh=ZQHemcqLzti+Vi0E9srTsr2d/i66vgcJzUrRYb1FPQA=; h=From:To:Cc:Subject:Date:From; b=uz2hJKWe2CmRySwSy2yZW+Mh9ZxQHtkvhg9UqnHV2ulZHH/7TVjdfgc2PvRjWGOdx oyMLTgtLvYgqJ/HYd3oqNol5SsOA5tCfG56S6eJ0nqlnxc695OSCQl5/5haI+V47e9 kQ9EZ/0fYt/GcHZs86KA4FmdzuuKOxLGmU/1TUys= From: Stefan Klug To: libcamera-devel@lists.libcamera.org Cc: Stefan Klug Subject: [PATCH v5 0/8] rkisp1: Add manual colour temperature control Date: Fri, 6 Dec 2024 15:52:20 +0100 Message-ID: <20241206145242.827886-1-stefan.klug@ideasonboard.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" 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-7 update the tuning scripts accordingly. There were some discussion points in v4 that were not completely resolved. These circled around a more exotic use case: what happens if ColourGains get set when AwbEnable is off. Rpi then uses the colour gains to estimate the colour temperature and adjust the ccm accordingly. The rkisp1 implementation doesn't do that at the moment. But improvements of that are in the works. So I'd suggest to merge this series in, even with a slightly pipeline defined behavior. We can easily improve from that point onward. Changes v4 -> v5: - Rebased on current master - Small fixes from review - Replaced Interpolator with Interpolator 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 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 | 51 +++++++++++++++-- src/ipa/rkisp1/algorithms/awb.h | 7 +++ src/libcamera/control_ids_core.yaml | 29 +++++++++- 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 +- 8 files changed, 179 insertions(+), 36 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