{"id":22795,"url":"https://patchwork.libcamera.org/api/1.1/patches/22795/?format=json","web_url":"https://patchwork.libcamera.org/patch/22795/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20250217100203.297894-10-stefan.klug@ideasonboard.com>","date":"2025-02-17T10:01:50","name":"[09/10] ipa: rkisp1: awb: Take the CCM into account for the AWB gains calculation","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"76a59c869415b01ded8e7803a4cc14d3096a4656","submitter":{"id":184,"url":"https://patchwork.libcamera.org/api/1.1/people/184/?format=json","name":"Stefan Klug","email":"stefan.klug@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/22795/mbox/","series":[{"id":5005,"url":"https://patchwork.libcamera.org/api/1.1/series/5005/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5005","date":"2025-02-17T10:01:41","name":"Some rkisp1 awb improvements","version":1,"mbox":"https://patchwork.libcamera.org/series/5005/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/22795/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/22795/checks/","tags":{},"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 2A890C327D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 17 Feb 2025 10:02:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D58F368680;\n\tMon, 17 Feb 2025 11:02:38 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 14BBB6867E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 17 Feb 2025 11:02:33 +0100 (CET)","from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:b47f:e20a:c4c7:ece1])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id A96F4842;\n\tMon, 17 Feb 2025 11:01:12 +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=\"HvfqKpPk\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1739786472;\n\tbh=2TV5LHpoYSbm2dW3u7AWZzvpdbmHFAFImM/UHfEq1GU=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=HvfqKpPkA/8cxepltPlqByrM4oIBSajRPGkisauGe791BvZ9GsTx9nzU0Wgw4XC5X\n\tH+AFWe76TdYFnHXlFNagOhrA9vPRTZv0eKKxfEHFentHwaLlEv4uBS+O47vFCQvwu2\n\tY/UF57hP9DtfgW/gor2KwBsF5Ltm4hrUxvU8RWNs=","From":"Stefan Klug <stefan.klug@ideasonboard.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"Stefan Klug <stefan.klug@ideasonboard.com>","Subject":"[PATCH 09/10] ipa: rkisp1: awb: Take the CCM into account for the\n\tAWB gains calculation","Date":"Mon, 17 Feb 2025 11:01:50 +0100","Message-ID":"<20250217100203.297894-10-stefan.klug@ideasonboard.com>","X-Mailer":"git-send-email 2.43.0","In-Reply-To":"<20250217100203.297894-1-stefan.klug@ideasonboard.com>","References":"<20250217100203.297894-1-stefan.klug@ideasonboard.com>","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":"Apparently AWB measurements are taken after the CCM. So the estimated\ncolour temperature and the corresponding CCM also lead to changed\nrgbMeans. This is another source of oscillations. Fix that by applying\nthe inverse transform on the rgbMeans.\n\nSigned-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/awb.cpp | 2 ++\n 1 file changed, 2 insertions(+)","diff":"diff --git a/src/ipa/rkisp1/algorithms/awb.cpp b/src/ipa/rkisp1/algorithms/awb.cpp\nindex 12934771c69c..66e6aecedc4c 100644\n--- a/src/ipa/rkisp1/algorithms/awb.cpp\n+++ b/src/ipa/rkisp1/algorithms/awb.cpp\n@@ -305,6 +305,8 @@ void Awb::process(IPAContext &context,\n \t\trgbMeans = rgbMeans.max(0.0);\n \t}\n \n+\trgbMeans = frameContext.ccm.ccm.cast<double>().inverse() * rgbMeans;\n+\n \t/*\n \t * The ISP computes the AWB means after applying the colour gains,\n \t * divide by the gains that were used to get the raw means from the\n","prefixes":["09/10"]}