From patchwork Tue Dec 16 16:40:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 25567 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 EDA5BC3257 for ; Tue, 16 Dec 2025 16:44:57 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 1AA0061A19; Tue, 16 Dec 2025 17:44:57 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="luzq9xz1"; dkim-atps=neutral Received: from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com [IPv6:2a00:1450:4864:20::42f]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 2C7076191D for ; Tue, 16 Dec 2025 17:44:55 +0100 (CET) Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-42e33956e76so2267902f8f.3 for ; Tue, 16 Dec 2025 08:44:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1765903494; x=1766508294; 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=hYmPc4XOapEWERh0B39hWnShtiurIF0WJPdRhhzWFvo=; b=luzq9xz1EsyXxXkawBX30vNPosZk+1jgKqG8J1PF20DYtzctQm3Sk+2wk4QfE20Cvg l6wIY3f0VoAysNVzsLoAYVkf/4kG0P0M5j7T3+IJfNNcn2/zzFCa5/e2PoHlpvMhge0M Lke1S3FinfKNIJlM+AENCNO89O6tBGt05zlGOp3ftjZY7URN/1P9DTGNU2uwIbuMQfYm OwepjN6I/cnGQWb6/tO5LFN1ErBma1VWCl12wVjl1zGS59xjGPn11c6j7KDeUm6agesr 5SJDkt4POorS+Ots9wkf2Xe27oMUJ01Ufnhv7Wa2NzUKuHb9lf1ugqv4muDaTUmbVI67 EQaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765903494; x=1766508294; 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=hYmPc4XOapEWERh0B39hWnShtiurIF0WJPdRhhzWFvo=; b=dq/B6FtuzJCUO29I2Tc3yr2ECZK1wdh+wEn9MCpufdSGRMw63WU3efOsoIlS2OlAgi U3+0lMsDbSDnrLEbMOKeassItEyu9HgNFxQ4n0Fvp8quS7ik2zU15rg4Yauz7hpoqhs7 kFgR7zs6wYFlYWj4MhjgHglGXmR0zVmZ9FnmuVrKO7XcmlTg0OUajtg3tg/FwhKLjzF5 aT1O64ktcnd00HTL8gYJqEtVxwYrpCgzvV4S4rABKksvyvofKGMhOrw8MAUopoEL0/xx oqbqQXhbKFpSSHP+j2JMNnPqhhqwFj1+c4sYeyJCu/Xk6ax274HlM4oucwIMSn5WZMpH Bxig== X-Gm-Message-State: AOJu0YwToIqb3OZcMDI6EibXrbsW6l7vrxf8yIwsO2xXC1jSETI9paQE 43BUefv0AG7gskVTliI2UWaDJPkikSMOrEuyvL3fbBhz5yIIrgm7lMQho97lWbmET5aVv42427O 8hnfq X-Gm-Gg: AY/fxX4DD8P7SANrVr7mrS0mxba805hpUSHUB0SVBsN9a/agChoggTcJIXQn1ucyu6a VJWjOEbrRzWBfVbrkAppZzz5NVzhaf5fB5d8RmDWE9I4l9FRD1VAdM+f7eVWnLzX2VbFxEeQJ9F mceel4zdO5+alIdr2EtgCxQ3jkjOgLV8DmsNIHBoj/F/Lnfsa1PaE5jP0OBo+maLF3JucEDU175 WwfbykrsbPrPA54PZqNlfbgBRQeqp0S5yKAbGvG6gsYaGbYbrK6/oqtW2WRjsrteBigQF5Jtuj/ e/sDdCjORMtQxXo370cW0aLbgCLalO0rHErUJmjaUGSQXPnpnAtOshIaS98aW/R2mFI0EkIDW0b BxMZ4i7Mnao81/mI6vUFRRXYiVtL93gpcBfU5mcrpIS5rg184QieWsBhWvP7yFa8/HAuplUaFRf /AEsj7JAUH+29QZ0M/pX1sddLr6/hVvqr896G4++negVnNHIrJXCvldGG4B4dAR+YTYhDCTqORj OvLWfTbO5jqjWSvpSZbfPFP0ECvoFWztJDaN5k3 X-Google-Smtp-Source: AGHT+IHxiFJmYl2+Tb3+WNpQS2+eLDAK5QO4+PFhvlpWqxs919izFg4casUsJqDsvxzYQJGphU74Qg== X-Received: by 2002:a5d:5550:0:b0:42f:b683:b3bf with SMTP id ffacd0b85a97d-42fb683b57amr13352146f8f.19.1765903493944; Tue, 16 Dec 2025 08:44:53 -0800 (PST) Received: from davidp-pi5.pitowers.org ([2a00:1098:3142:1f:88ea:c658:5b20:5e46]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4310ada856bsm26826f8f.3.2025.12.16.08.44.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Dec 2025 08:44:53 -0800 (PST) From: David Plowman To: libcamera-devel@lists.libcamera.org Cc: David Plowman Subject: [PATCH v4 0/4] Raspberry Pi AWB using neural networks Date: Tue, 16 Dec 2025 16:40:40 +0000 Message-ID: <20251216164451.13055-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 v4 of this set. The only changes are to fix merge conflicts, which were exclusively in the tuning files, as far as I could tell. So I think it's all good now, but please let me know if there's anything I've missed! 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 | 65 +++ src/ipa/rpi/pisp/data/imx296.json | 64 +++ src/ipa/rpi/pisp/data/imx296_16mm.json | 64 +++ src/ipa/rpi/pisp/data/imx296_6mm.json | 64 +++ src/ipa/rpi/pisp/data/imx477.json | 65 +++ src/ipa/rpi/pisp/data/imx477_16mm.json | 65 +++ src/ipa/rpi/pisp/data/imx477_6mm.json | 65 +++ src/ipa/rpi/pisp/data/imx477_scientific.json | 79 ++++ src/ipa/rpi/pisp/data/imx708.json | 64 +++ 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/imx708.json | 74 +++ src/ipa/rpi/vc4/data/imx708_wide.json | 64 +++ src/ipa/rpi/vc4/data/ov5647.json | 66 +++ 24 files changed, 2142 insertions(+), 420 deletions(-) create mode 100644 src/ipa/rpi/controller/rpi/awb_bayes.cpp create mode 100644 src/ipa/rpi/controller/rpi/awb_nn.cpp