{"id":19222,"url":"https://patchwork.libcamera.org/api/1.1/patches/19222/?format=json","web_url":"https://patchwork.libcamera.org/patch/19222/","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":"<20231122091302.550574-1-david.plowman@raspberrypi.com>","date":"2023-11-22T09:13:02","name":"[libcamera-devel] ipa: rpi: alsc: Do not allow zero colour ratio statistics","commit_ref":"2fae9603e6cc483d9d0d74868721b272776513cf","pull_url":null,"state":"accepted","archived":false,"hash":"f31c493f89a79a440aaae0cee6211cd1a78817a7","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/1.1/people/42/?format=json","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/19222/mbox/","series":[{"id":4078,"url":"https://patchwork.libcamera.org/api/1.1/series/4078/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4078","date":"2023-11-22T09:13:02","name":"[libcamera-devel] ipa: rpi: alsc: Do not allow zero colour ratio statistics","version":1,"mbox":"https://patchwork.libcamera.org/series/4078/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/19222/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/19222/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 C385ABDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 22 Nov 2023 09:13:10 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id CC851629BC;\n\tWed, 22 Nov 2023 10:13:09 +0100 (CET)","from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com\n\t[IPv6:2a00:1450:4864:20::32b])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 234F161DAB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Nov 2023 10:13:07 +0100 (CET)","by mail-wm1-x32b.google.com with SMTP id\n\t5b1f17b1804b1-40839807e82so3457315e9.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 22 Nov 2023 01:13:07 -0800 (PST)","from pi4-davidp.pitowers.org\n\t([2a00:1098:3142:14:2bce:64d6:1a5c:49a2])\n\tby smtp.gmail.com with ESMTPSA id\n\tq17-20020a05600c46d100b004064288597bsm1506394wmo.30.2023.11.22.01.13.05\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tWed, 22 Nov 2023 01:13:05 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1700644389;\n\tbh=lNiz4SSegP2bboTuu9uTak3GUxIWIRuS71AwMwkyozA=;\n\th=To:Date:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:\n\tList-Help:List-Subscribe:From:Reply-To:From;\n\tb=ZDtME6Y9+glaCR5oxiBqwdLPaCiTwI8KDS5JpLMyRFusu024MEQe1AKEjY2Ohu1zB\n\thpN8BQV/FspVRnBY/8O/vNaNQi5C9BR4XMIL2Q1BH1/Lunf/1ZJXJHxMSCOgMOO/6u\n\twUYQ5QSxsmjaVBHUj2qyu2WgWG5hjOdRDxl4a+8MhZN/k7+cWhnTtmhT8xNVOkMoMk\n\tYNZ09RdbAYS/lDeurwvD1ayc3DeikcMa5EjCWFdvfdTgSkcm6giQNCqOZ6GcOTdKX8\n\tGJk0RHm5UpDGdaek9o/5ZYXPhkC34rcWmU8SI3TH1r54gIZ+yJycrLl5jK6UeBnl4h\n\tA+ob/kuy+oFdg==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1700644386; x=1701249186;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:from:to:cc:subject:date:message-id:reply-to;\n\tbh=LFFoAOCoH8nVM/sE2NTlrADNUQ0wHIMyqkDKwoxyvEY=;\n\tb=APBvb5+G526smvBu09KV6EaJXXLdpwnKR5SiXW+K2bu6q437ubzxQMwOzBX97UO2LW\n\ti3fExI6iQQySXrggt3dhgxcPJxxRYFoDT7Lh6hPJLFIINbJDH9/PzuoHf2C7XWKiH4h+\n\tffENjAsKiuTn14UMiYHtZJbyziK8e/xhE9lfZIUNwvdBk6AeZjgb/X1yBnS9Qj24idk6\n\t7XLd78wRQLT2BkSjX8r2XlBUtbSCHEuW3nSINEe9QmAuL6TNXLNcNvcSgBaXdBVN75Yt\n\tNkiYjn147bJ7Ea4g+hJayq0tBzOpUdcTQPBy69DHhTe65Db+Gzt1VEtAujGarVvy/QNQ\n\tdVaA=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"APBvb5+G\"; dkim-atps=neutral","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1700644386; x=1701249186;\n\th=content-transfer-encoding:mime-version:message-id:date:subject:cc\n\t:to:from:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=LFFoAOCoH8nVM/sE2NTlrADNUQ0wHIMyqkDKwoxyvEY=;\n\tb=A2yIcSKbxvSKsURETIbCi4heBFLn+CvyXxJwLTLthhrAg4Ku5pIuLnSVT8WE4U2xQD\n\tANSRw/LeaZ1y0GhK8nkZhyYb6KIZV674wTyOCD5x+IEQdSu8wGp37bF6itwx5KOgPaN8\n\tYms0S4pdLNwohaUgg6GrfJGF4DNXwJcgq1sSj44w7lopuZVGUzW8gF0mSrFG2FMUMv2Z\n\t+4yLcC/IovHvyviaR3cp3r/28rVmTKKHkgYMHEWT8gRwvRPZ0KHzTDT+KpEVqJ/c7yLK\n\ti3WBfM3DvjlF+oJDsrjMvgIYIiJxYPQMl4lHUde5FlWIi/Ifkp7E4yejYg/q8y6M84Jx\n\tDo8g==","X-Gm-Message-State":"AOJu0YxoTmV1Avf+ubSPQ9So1XWFtVq+rhPVLJCjHQm97KjEnKrs7LcI\n\tWATfpnua1lMngRQYCh6qiWC3JPJI7vw1nM7nttY=","X-Google-Smtp-Source":"AGHT+IGXKSzWGDMK1dNipCoMQJnAxpANS7KOZktdL4Ynvyh5RonVOymJaXkFWn1g32KM7HlnUUVIhg==","X-Received":"by 2002:a1c:7518:0:b0:40b:2afd:1a9 with SMTP id\n\to24-20020a1c7518000000b0040b2afd01a9mr3662170wmc.15.1700644385961; \n\tWed, 22 Nov 2023 01:13:05 -0800 (PST)","To":"libcamera-devel@lists.libcamera.org","Date":"Wed, 22 Nov 2023 09:13:02 +0000","Message-Id":"<20231122091302.550574-1-david.plowman@raspberrypi.com>","X-Mailer":"git-send-email 2.30.2","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [PATCH] ipa: rpi: alsc: Do not allow zero colour\n\tratio statistics","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>","From":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"The algorithm computes R/G and B/G colour ratio statistics which we\nshould not allow to go to zero because there is clearly no gain you\ncould apply to R or B to equalise them. Instead flag such regions as\nhaving \"insufficient data\" in the normal manner.\n\nSigned-off-by: David Plowman\n---\n src/ipa/rpi/controller/rpi/alsc.cpp | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)","diff":"diff --git a/src/ipa/rpi/controller/rpi/alsc.cpp b/src/ipa/rpi/controller/rpi/alsc.cpp\nindex b7413611..8a205c60 100644\n--- a/src/ipa/rpi/controller/rpi/alsc.cpp\n+++ b/src/ipa/rpi/controller/rpi/alsc.cpp\n@@ -548,7 +548,9 @@ static void calculateCrCb(const RgbyRegions &awbRegion, Array2D<double> &cr,\n \tfor (unsigned int i = 0; i < cr.size(); i++) {\n \t\tauto s = awbRegion.get(i);\n \n-\t\tif (s.counted <= minCount || s.val.gSum / s.counted <= minG) {\n+\t\t/* Do not return unreliable, or zero, colour ratio statistics. */\n+\t\tif (s.counted <= minCount || s.val.gSum / s.counted <= minG ||\n+\t\t    s.val.rSum / s.counted <= minG || s.val.bSum / s.counted <= minG) {\n \t\t\tcr[i] = cb[i] = InsufficientData;\n \t\t\tcontinue;\n \t\t}\n","prefixes":["libcamera-devel"]}