From patchwork Fri Dec 12 10:23:49 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 25543 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 270DAC3257 for ; Fri, 12 Dec 2025 10:34:10 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id DF21061657; Fri, 12 Dec 2025 11:34:08 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="b1hWMbKB"; dkim-atps=neutral Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 803BC6069A for ; Fri, 12 Dec 2025 11:34:06 +0100 (CET) Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-42e2e6aa22fso494358f8f.2 for ; Fri, 12 Dec 2025 02:34:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1765535646; x=1766140446; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=Cjfaj1NJIQkqV8anTO7VXimsUmy/X3A39/jHl/HaW0E=; b=b1hWMbKBXc6QUMWiVFmfOVP59jCZUVfWVRujSQF1E4dpaW4g1S5jf3xcdhdg5OY7Y4 lNp6lDEN/Q9xI40sXu1OoIe6zKTd00mVR/ianKv25CxdKmvROJdd+hHCYXJGm9TMTjhu f5faiBcztwkDukxQTkCR/Thn7UQkkugmNz2vU+dSd+wEvOgimhB4OK1GWBXO7KA8Kl/2 FLGZWyBq0m6WdnLCoMebX2Iw/UU1UIcblM1+9CW6XjZovO3huJPClyR9bEBQQlUWxby1 eIIk1SjL38lwJkET6kzXJDWlBibXcbUFrYCBbZ+H/a/Td2yBfoV59hi1mRRiVnqH9zfT LKHA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765535646; x=1766140446; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=Cjfaj1NJIQkqV8anTO7VXimsUmy/X3A39/jHl/HaW0E=; b=t8Q8tNMaqVnIGo9mr3gxBm6D6VGZpdMnN67t0e9b+s0dQmSgJlTCl+0KQGNKuPudfV DhKf3t9TuuAdtuzxVA15HmnnzQ59DQOEykoT1SwD4gPxd0+R5B+DkdpoLewt1a/FJaNH CtRsKTcVGd7nPtfMH1wRi6QQexgn3Vc7S3CI9prE5NeEklmV+2adz9kAmWucri/7MbzL VSSBwoAtlpBxnDJZIQuGZbqR+lft/RRRg6i2Tqj7zQ7s/pB/+84g9NxmMAg1/ML540Nv 2OlcjRFxmOkcwMHs8Yh/rxrzGFl8+vVquam9lJdwoD9em5BDI8o66t4MeC9llMX/c/bO wS3A== X-Gm-Message-State: AOJu0Yz3dF0OzwMJiGCAO7kK4N3B8JilBpLuAoOLzHHAJ914Sclem8Q+ ZxrVKOlgZoxxvXH8BDr3CiLk5iYOGHNbfr++S5Y3CAyHj6PADNBM/DgjnCHxTNCMZ6NrrFv9fSq TF19e X-Gm-Gg: AY/fxX7oXIJjisTH5w4Plaawhzw/ACVeJ+yWTK3Zllm3X7Gx3Gr01K+BZDYkrbjejns WTZT/hIVds+cWZPrREBtqj2q0ZnydTdyrTJwEN8cg8Hs6NcSgxnGN2izZMfVdzu8lDIR4D6w4Qk DAh8vxFM7dIRjwxvmV+ty+MQtGGP/2GLfQXsSY1/GgcpIR8YrKKx2yJZ4JHSFWKRV2txz7SHeZn 8o9Y1bc6D5C4y+ry94ZfBcvk42/VRCAIapkImrhNrL6fyflrX+CIqYoMNYyO28CmCvn6+WCTKgM gRqcVRtNHxB2D9aFraF6ifULRy/QX8JAHDKQ6C3LcE1mX203uoxD2+5fa60hMilp4QDdkCCnIo9 McQKM4kllAixDAN1EywRm4x/OjMr3dajDqALPtaVbvs1pg/xWO/qcx2n+W6C2g6M7RwfPJcrYmu d0g056cg4ccPvbtI+c5JvL5+wf4fKEdKOTcSxmW3MrfC2z6kivi7NdphG2gSnS5qKdi+gkkTPh/ 8HVwE2vjWe3ZluyfhqjSe7ePQ== X-Google-Smtp-Source: AGHT+IGoV8WDY4Wp4BPhPxEuPEB/+IWdA5GH33pOoB99xX7GXHyCwsbYCAWBLTDX/3GfQLEhk1YB7A== X-Received: by 2002:a05:6000:604:b0:42f:b0ab:7b25 with SMTP id ffacd0b85a97d-42fb44a2910mr1238934f8f.7.1765535645598; Fri, 12 Dec 2025 02:34:05 -0800 (PST) Received: from localhost.localdomain ([2a06:61c0:f337:0:9c1f:b517:931a:3b19]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-42fa8a7044csm12232495f8f.15.2025.12.12.02.34.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 12 Dec 2025 02:34:03 -0800 (PST) From: David Plowman To: libcamera-devel@lists.libcamera.org Cc: David Plowman Subject: [PATCH v3 0/4] Raspberry Pi AWB using neural networks Date: Fri, 12 Dec 2025 10:23:49 +0000 Message-ID: <20251212103401.3776-1-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.47.3 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" Hi again Here's v3 of this patch set. v3 changes over v2: * Missing Reviewed-by tags added. * Fixed finger trouble in the 'rpi-awb-nn' meson option. v2 changes over v1: * Minor tidies. * Use "enabled" option in algorithms rather than "disable" in the algorithm name. * Add 'rpi-awb-nn'meson option. Thanks! David Peter Bailey (4): ipa: rpi: controller: awb: Separate Bayesian AWB into AwbBayes ipa: rpi: controller: awb: Add Neural Network AWB ipa: rpi: controller: Ignore algorithms that are not enabled ipa: rpi: pisp: vc4: Update tuning files for new AWB meson_options.txt | 5 + src/ipa/rpi/controller/controller.cpp | 18 + src/ipa/rpi/controller/meson.build | 10 + src/ipa/rpi/controller/rpi/awb.cpp | 409 ++--------------- src/ipa/rpi/controller/rpi/awb.h | 99 ++-- src/ipa/rpi/controller/rpi/awb_bayes.cpp | 444 ++++++++++++++++++ src/ipa/rpi/controller/rpi/awb_nn.cpp | 446 +++++++++++++++++++ src/ipa/rpi/pisp/data/imx219.json | 67 ++- src/ipa/rpi/pisp/data/imx296.json | 66 ++- src/ipa/rpi/pisp/data/imx296_16mm.json | 66 ++- src/ipa/rpi/pisp/data/imx296_6mm.json | 66 ++- src/ipa/rpi/pisp/data/imx477.json | 65 +++ src/ipa/rpi/pisp/data/imx477_16mm.json | 67 ++- src/ipa/rpi/pisp/data/imx477_6mm.json | 67 ++- src/ipa/rpi/pisp/data/imx477_scientific.json | 81 +++- src/ipa/rpi/pisp/data/imx500.json | 69 +++ src/ipa/rpi/pisp/data/imx708.json | 66 ++- src/ipa/rpi/pisp/data/imx708_wide.json | 64 +++ src/ipa/rpi/pisp/data/ov5647.json | 65 +++ src/ipa/rpi/vc4/data/imx219.json | 66 +++ src/ipa/rpi/vc4/data/imx296.json | 66 +++ src/ipa/rpi/vc4/data/imx477.json | 71 +++ src/ipa/rpi/vc4/data/imx500.json | 69 +++ src/ipa/rpi/vc4/data/imx708.json | 74 +++ src/ipa/rpi/vc4/data/imx708_wide.json | 64 +++ src/ipa/rpi/vc4/data/ov5647.json | 66 +++ 26 files changed, 2288 insertions(+), 428 deletions(-) create mode 100644 src/ipa/rpi/controller/rpi/awb_bayes.cpp create mode 100644 src/ipa/rpi/controller/rpi/awb_nn.cpp