{"id":15442,"url":"https://patchwork.libcamera.org/api/patches/15442/?format=json","web_url":"https://patchwork.libcamera.org/patch/15442/","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":"<20220311131929.506764-1-umang.jain@ideasonboard.com>","date":"2022-03-11T13:19:29","name":"[libcamera-devel] ipa: ipu3: awb: Clamp gain values","commit_ref":null,"pull_url":null,"state":"accepted","archived":false,"hash":"4fbeddead8632ea9b32d2f3fc3babaff90cada58","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/?format=json","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/15442/mbox/","series":[{"id":2959,"url":"https://patchwork.libcamera.org/api/series/2959/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=2959","date":"2022-03-11T13:19:29","name":"[libcamera-devel] ipa: ipu3: awb: Clamp gain values","version":1,"mbox":"https://patchwork.libcamera.org/series/2959/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/15442/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/15442/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\r\n\t[92.243.16.209])\r\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id F2440BF415\r\n\tfor <parsemail@patchwork.libcamera.org>;\r\n\tFri, 11 Mar 2022 13:19:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\r\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 539C6604E9;\r\n\tFri, 11 Mar 2022 14:19:46 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\r\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\r\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B5128604E8\r\n\tfor <libcamera-devel@lists.libcamera.org>;\r\n\tFri, 11 Mar 2022 14:19:44 +0100 (CET)","from perceval.ideasonboard.com (unknown [103.251.226.65])\r\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 90C27482;\r\n\tFri, 11 Mar 2022 14:19:42 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\r\n\ts=mail; t=1647004786;\r\n\tbh=juPqk83+z/tOMHpGkI8BUxszy3RPuuTuCn17FT4vubM=;\r\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\r\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\r\n\tFrom;\r\n\tb=waHRTpW3cCheZwBaJ2W+g8y0TNPSyxlEZA4WgIvSlcPyt6eJntsdZKHceEvH3mVKC\r\n\t7vKIFCMMqMTsVNe6eddunN2N1NlJipEpar3l71KYMszPJYkOd7wIx6s8kTWGJdQ2AS\r\n\tNrmXPcPpHscb3Qkt/DQt7OLG1G27OG0H+UjEEuxvcQNZJVORXthOEsMGMxwmMH0Duh\r\n\tRMi75vYxbKHZ95GO5oue8bYatsEndPGb44OIyDSdjBBnMS/5qOpb6N7m+jfsZlg0Ro\r\n\th2Q1EOTuNfFTNG6djB7PqWTMVOK1Jh4A4dz+X83Q4QJIilKSWdKRhf4n601BW5o/KY\r\n\tEztHARaz2Wq6Q==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\r\n\ts=mail; t=1647004784;\r\n\tbh=juPqk83+z/tOMHpGkI8BUxszy3RPuuTuCn17FT4vubM=;\r\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\r\n\tb=LnFMfhGpOfk5nf+87TMcBo3F0VFTWGJE5ii8A/7a9Jexw05vMnw/6VGDmOboyKHh8\r\n\t2eqKgWxZQ5e+Cpd4h6KDfHNBMOdCtUVxBRNIGH70es8tCBEEXyhizaFZgj30/7wqvX\r\n\ti1qloBN/0A6YLoPoymjBiNQ2xfUTP0UkGBtQVsIg="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \r\n\tunprotected) header.d=ideasonboard.com\r\n\theader.i=@ideasonboard.com\r\n\theader.b=\"LnFMfhGp\"; dkim-atps=neutral","To":"libcamera-devel@lists.libcamera.org","Date":"Fri, 11 Mar 2022 18:49:29 +0530","Message-Id":"<20220311131929.506764-1-umang.jain@ideasonboard.com>","X-Mailer":"git-send-email 2.31.1","In-Reply-To":"<20220224151113.109858-5-jeanmichel.hautbois@ideasonboard.com>","References":"<20220224151113.109858-5-jeanmichel.hautbois@ideasonboard.com>","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH] ipa: ipu3: awb: Clamp gain values","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>,\r\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>,\r\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Umang Jain via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"Umang Jain <umang.jain@ideasonboard.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"From: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\n\nThe gain values are coded as u3.13 fixed point values, ie they can not\nbe more than 8. Clamp the values in order to avoid any off limits value\nwhich could make the IPU3 behave in a weird manner.\n\nSigned-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\nSigned-off-by: Umang Jain <umang.jain@ideasonboard.com>\n---\n src/ipa/ipu3/algorithms/awb.cpp | 8 ++++++++\n 1 file changed, 8 insertions(+)","diff":"diff --git a/src/ipa/ipu3/algorithms/awb.cpp b/src/ipa/ipu3/algorithms/awb.cpp\r\nindex 1dc27fc9..dc25be81 100644\r\n--- a/src/ipa/ipu3/algorithms/awb.cpp\r\n+++ b/src/ipa/ipu3/algorithms/awb.cpp\r\n@@ -353,6 +353,14 @@ void Awb::awbGreyWorld()\r\n \r\n \t/* Color temperature is not relevant in Grey world but still useful to estimate it :-) */\r\n \tasyncResults_.temperatureK = estimateCCT(sumRed.R, sumRed.G, sumBlue.B);\r\n+\r\n+\t/*\r\n+\t * Gain values are unsigned integer value, range 0 to 8 with 13 bit\r\n+\t * fractional part.\r\n+\t */\r\n+\tredGain = std::clamp(redGain, 0.0, 65535.0 / 8192);\r\n+\tblueGain = std::clamp(blueGain, 0.0, 65535.0 / 8192);\r\n+\r\n \tasyncResults_.redGain = redGain;\r\n \t/* Hardcode the green gain to 1.0. */\r\n \tasyncResults_.greenGain = 1.0;","prefixes":["libcamera-devel"]}