{"id":22408,"url":"https://patchwork.libcamera.org/api/covers/22408/?format=json","web_url":"https://patchwork.libcamera.org/cover/22408/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20241219175729.293782-1-stefan.klug@ideasonboard.com>","date":"2024-12-19T17:57:17","name":"[v6,0/9] rkisp1: Add manual colour temperature control","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/people/184/?format=json","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"mbox":"https://patchwork.libcamera.org/cover/22408/mbox/","series":[{"id":4919,"url":"https://patchwork.libcamera.org/api/series/4919/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4919","date":"2024-12-19T17:57:17","name":"rkisp1: Add manual colour temperature control","version":6,"mbox":"https://patchwork.libcamera.org/series/4919/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/22408/comments/","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id E244AC3272\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 19 Dec 2024 17:57:37 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B8D4C68472;\n\tThu, 19 Dec 2024 18:57:36 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CAF0661899\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 19 Dec 2024 18:57:34 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:783:85f9:c998:cb11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E254C163;\n\tThu, 19 Dec 2024 18:56:55 +0100 (CET)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Y3ioFpB1\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1734631016;\n\tbh=PcpELKNwZmor4Se6r1qyMP0HJcH3vqQ02B28QJIKmCU=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=Y3ioFpB17GWbW/pEI5nv6aiUJEnzaSlGt059/fnjB7mKFB0WfruoN6R1RThI+UQxH\n\tlHGKAY7IgVYp9ovYuu4hC6qlqVv8ZBPHdP5HUt7P6yG2gL9/NM6JWxdyttnl4VYFTt\n\tpIKf9HhRfjtysMAiBJ2pAR6cbMR8bZidkXxkY6rM=","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","Subject":"[PATCH v6 0/9] rkisp1: Add manual colour temperature control","Date":"Thu, 19 Dec 2024 18:57:17 +0100","Message-ID":"<20241219175729.293782-1-stefan.klug@ideasonboard.com>","X-Mailer":"git-send-email 2.43.0","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"This series adds the ability to manually set the colour temperature\ncontrol. It is a partial resurrection of the \"libcamera: controls:\nUpdate the ColourTemperature control to be writable\" series by David\nPlowman [1], but with a implementation for the rkisp1 instead of the\nrpi.\n\nPatch 1 updates the control id documentation. Patches 2-3 implement the\ncontrol for the rkisp1. Patches 4-8 update the tuning scripts\naccordingly.\n\nPatch 9 is a rebase of the RPi implementation form [1]. It was tested and seems\nto work as expected.\n\nAfter some discussions in v4 an agreement on the expected behavior of\nthe manual controls was found and documented in control_ids_core.yaml.\n\nChanges v5 -> v6:\n- Updated documentation according to discussions in v4\n- Fixed minor issues from v5 reviews\n- Changed colour temperature metadata to be the temperature used for the frame\n  instead of the latest measurement\n- Added the RPi implementation form David as patch 9/9\n\nChanges v4 -> v5:\n- Rebased on current master\n- Small fixes from review\n- Replaced Interpolator<Matrix> with Interpolator<Vector> as we now have\n  a genric Vector class.\n\nChanges v1 -> v4:\n- Incremented series version to v4, because technically it is a superset of [1]\n- Fixed compile issue on patch 2\n- Fixed typos and wording in patch 1\n- Collected tags\n\nBest regards,\nStefan\n\n[1] https://patchwork.libcamera.org/project/libcamera/list/?series=4083 \n\nDavid Plowman (1):\n  ipa: rpi: awb: Make it possible to set the colour temperature directly\n\nStefan Klug (8):\n  libcamera: controls: Update the ColourTemperature control to be\n    writable\n  ipa: rkisp1: awb: Load white balance gains from tuning file\n  ipa: rkisp1: awb: Implement ColourTemperature control\n  libtuning: Use logging framework in ctt_awb.awb()\n  libtuning: Remove the Cam object from ctt_awb.awb()\n  libtuning: Fix access to color member in ctt_awb.awb()\n  libtuning: Add initial AWB module\n  utils: tuning: rkisp1: Replace static AWB with new AWB module\n\n src/ipa/rkisp1/algorithms/awb.cpp             | 67 ++++++++++++++++---\n src/ipa/rkisp1/algorithms/awb.h               |  7 ++\n src/ipa/rkisp1/ipa_context.h                  |  1 +\n src/ipa/rpi/common/ipa_base.cpp               | 20 ++++++\n src/ipa/rpi/controller/awb_algorithm.h        |  1 +\n src/ipa/rpi/controller/rpi/awb.cpp            | 18 +++++\n src/ipa/rpi/controller/rpi/awb.h              |  1 +\n src/libcamera/control_ids_core.yaml           | 38 ++++++++++-\n utils/tuning/libtuning/ctt_awb.py             | 55 +++++++--------\n .../tuning/libtuning/modules/awb/__init__.py  |  6 ++\n utils/tuning/libtuning/modules/awb/awb.py     | 36 ++++++++++\n utils/tuning/libtuning/modules/awb/rkisp1.py  | 27 ++++++++\n utils/tuning/rkisp1.py                        |  4 +-\n 13 files changed, 240 insertions(+), 41 deletions(-)\n create mode 100644 utils/tuning/libtuning/modules/awb/__init__.py\n create mode 100644 utils/tuning/libtuning/modules/awb/awb.py\n create mode 100644 utils/tuning/libtuning/modules/awb/rkisp1.py"}