[{"id":37310,"web_url":"https://patchwork.libcamera.org/comment/37310/","msgid":"<CAHW6GY+D8B0tpqkF-W=o6YMgccYLp_Uv1maFPbFhyrFZJZmbEg@mail.gmail.com>","date":"2025-12-11T14:31:04","subject":"Re: [PATCH v2 0/4] Raspberry Pi AWB using neural networks","submitter":{"id":42,"url":"https://patchwork.libcamera.org/api/people/42/","name":"David Plowman","email":"david.plowman@raspberrypi.com"},"content":"Ah, I notice I forgot to add Naush's \"Reviewed-by\" tags. Will do that for\nversion 3!\n\nDavid\n\nOn Thu, 11 Dec 2025 at 14:28, David Plowman <david.plowman@raspberrypi.com>\nwrote:\n\n> Hi again\n>\n> Thanks for the various review comments, here's version 2 of the set. I\n> think I've applied changes for all the comments that were made:\n>\n> * A few cosmetic things.\n>\n> * I've removed the .tflite neural network files from these\n>   commits. They'll come from our software repos.\n>\n> * I've added a meson option \"rpi-awb-nn\" to enable/disable the new\n>   algorithm explicitly. Default is auto, which builds it if\n>   libtensorflow-lite is available.\n>\n> * I went with an explicit \"enabled\" field in our algos as per\n>   Barnabas' suggestion, which can be set to false to disable them.\n>\n> The only other small change I made was to make the code fail if, for\n> example, it tries to load and run two AWB algorithms at the same\n> time. You just know someone will do this by mistake, and nothing good\n> will come of it!\n>\n> Thanks again to everyone\n>\n> David\n>\n> Peter Bailey (4):\n>   ipa: rpi: controller: awb: Separate Bayesian AWB into AwbBayes\n>   ipa: rpi: controller: awb: Add Neural Network AWB\n>   ipa: rpi: controller: Ignore algorithms that are not enabled\n>   ipa: rpi: pisp: vc4: Update tuning files for new AWB\n>\n>  meson_options.txt                            |   5 +\n>  src/ipa/rpi/controller/controller.cpp        |  18 +\n>  src/ipa/rpi/controller/meson.build           |  10 +\n>  src/ipa/rpi/controller/rpi/awb.cpp           | 409 ++---------------\n>  src/ipa/rpi/controller/rpi/awb.h             |  99 ++--\n>  src/ipa/rpi/controller/rpi/awb_bayes.cpp     | 444 ++++++++++++++++++\n>  src/ipa/rpi/controller/rpi/awb_nn.cpp        | 446 +++++++++++++++++++\n>  src/ipa/rpi/pisp/data/imx219.json            |  67 ++-\n>  src/ipa/rpi/pisp/data/imx296.json            |  66 ++-\n>  src/ipa/rpi/pisp/data/imx296_16mm.json       |  66 ++-\n>  src/ipa/rpi/pisp/data/imx296_6mm.json        |  66 ++-\n>  src/ipa/rpi/pisp/data/imx477.json            |  65 +++\n>  src/ipa/rpi/pisp/data/imx477_16mm.json       |  67 ++-\n>  src/ipa/rpi/pisp/data/imx477_6mm.json        |  67 ++-\n>  src/ipa/rpi/pisp/data/imx477_scientific.json |  81 +++-\n>  src/ipa/rpi/pisp/data/imx500.json            |  69 +++\n>  src/ipa/rpi/pisp/data/imx708.json            |  66 ++-\n>  src/ipa/rpi/pisp/data/imx708_wide.json       |  64 +++\n>  src/ipa/rpi/pisp/data/ov5647.json            |  65 +++\n>  src/ipa/rpi/vc4/data/imx219.json             |  66 +++\n>  src/ipa/rpi/vc4/data/imx296.json             |  66 +++\n>  src/ipa/rpi/vc4/data/imx477.json             |  71 +++\n>  src/ipa/rpi/vc4/data/imx500.json             |  69 +++\n>  src/ipa/rpi/vc4/data/imx708.json             |  74 +++\n>  src/ipa/rpi/vc4/data/imx708_wide.json        |  64 +++\n>  src/ipa/rpi/vc4/data/ov5647.json             |  66 +++\n>  26 files changed, 2288 insertions(+), 428 deletions(-)\n>  create mode 100644 src/ipa/rpi/controller/rpi/awb_bayes.cpp\n>  create mode 100644 src/ipa/rpi/controller/rpi/awb_nn.cpp\n>\n> --\n> 2.47.3\n>\n>","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 1CCACBD1F1\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 11 Dec 2025 14:31:21 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6595E61612;\n\tThu, 11 Dec 2025 15:31:20 +0100 (CET)","from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com\n\t[IPv6:2a00:1450:4864:20::52c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 70F2261606\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 11 Dec 2025 15:31:19 +0100 (CET)","by mail-ed1-x52c.google.com with SMTP id\n\t4fb4d7f45d1cf-6496a094ae1so248988a12.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 11 Dec 2025 06:31:19 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=raspberrypi.com header.i=@raspberrypi.com\n\theader.b=\"ljQzcbTN\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google; t=1765463478; x=1766068278;\n\tdarn=lists.libcamera.org; \n\th=to:subject:message-id:date:from:in-reply-to:references:mime-version\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=yucR8945tcKcqMLoA6wUcSVt1DCSLUFj9QU2GJ+brpc=;\n\tb=ljQzcbTNMG3WPJ34F3BYeagH+WqteWK0hUVFrvmaZ1sN4mC04kKruh5guNWbZWo4AX\n\tKAljunKBB7UAgUV7nM4jbgqgRH8wstVbm2dB+Mhahsw2Vj+upMQ+R1W6PkyZ/CgmOZBP\n\t0qHC3xzR6kR1L8VXSkRstGTYweHnOfKhfxOgGWTcOu2PIyg2KqQzijvmi94i74IKVmUO\n\tOxq8sWnKHnphHb/I0s+gYDDSq1epxtXS8fSHffg8hVahfDqmw5NRruGMHqeIuFl3Hixx\n\tRDqejwsdbs8d2jsSsp28uHip6+yKeFKe1jceg1kKAlCunEYqHrQVbEqWad+kyLirZ6IT\n\tiNOQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1765463478; x=1766068278;\n\th=to:subject:message-id:date:from:in-reply-to:references:mime-version\n\t:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=yucR8945tcKcqMLoA6wUcSVt1DCSLUFj9QU2GJ+brpc=;\n\tb=Njpne9mmCnrHSUOcjBT60EAHw9Xcddb4XwYNncV+EsY5Zh7XBXitLlIKGwJNkxID9z\n\tKTd/hqC/ODPunJ9tQb14s/LWH6gMVQ7SDc/O2c6fSLmRLb/aigZURfootFMBw38vCpYa\n\t1DE75DtCWlhaPCciX5W5Hv1JyqmYhqlCARsOcX12R+HmbTsyuwpnzSdsObpmlOS3pn/x\n\t0Wd2xV1dMXeV1Atpy7Zjk3MfnJwk7XvK5HRkAkX7MRWfJ17HfkvwQkqF5Bs9Dl05uUWB\n\tTZ1dOrX979Ky8k200r53301eh+n/GTJG6zGmmhNIfoPHnMcA+vJmMiM42d9FfLiLiLgm\n\tgoBQ==","X-Gm-Message-State":"AOJu0YzaWL9I8TaVzhCGYAN416E59gdEpVNq+JCvew/suqcrzM7k61Es\n\tXverQkv1JqpT8G2wgbUO+Jx2pz+/8nqBEDuKw7EzU+Li5Kws5pO7V9+tRWq0Z8NVtPB6oTbPT/u\n\tq8fZKElPBC5/9wcHBO9xM8v82rIHTeKu06eToDItWIVyqV89qlxtR","X-Gm-Gg":"AY/fxX7qezCdWETUFwb/RP2O636EDLnoPmtjfQ9yExEiEQQugB1jPD0sk22KZJXrj9S\n\tgImXGBAozS0eJqIPoP+E7DSntlmgKxS7ng2gE1p87jATSuMN/oCRfB7GECCXwG3hBUDv6ZEF5eQ\n\tZO09nQaBUFk/ssI+7uP0X6tYVhgkZw9lUqfuZ6PodqwbFeESkG6qu8eB4NJRB63jl9FU+PbIhlT\n\tJUngTaGpCrV59j6kMhbJjtw7XbGrmkOkWASJKLeuj1MSMLw7JgOD/CtjnytoI47iUNE8+MVxWg4\n\tdNpVroA/X1V3oxT2f2q0CPhFLI2jnWQFBkHAo0P0MhRqXsWUvcqgdg1Oa0cRcCXTfHGiGluNkZt\n\thP6ojNz2m1RRA","X-Google-Smtp-Source":"AGHT+IE0J+madhgK6eXaPVp43PXlr6TK/BNwa3uXb3kmwUS5q8zGoDshNN32f1owMBHGBKwJZTSQuqA0govwzaCftLs=","X-Received":"by 2002:a17:907:8693:b0:b73:9792:918b with SMTP id\n\ta640c23a62f3a-b7ce831c0b5mr734665766b.27.1765463477619;\n\tThu, 11 Dec 2025 06:31:17 -0800 (PST)","MIME-Version":"1.0","References":"<20251211142824.26635-1-david.plowman@raspberrypi.com>","In-Reply-To":"<20251211142824.26635-1-david.plowman@raspberrypi.com>","From":"David Plowman <david.plowman@raspberrypi.com>","Date":"Thu, 11 Dec 2025 14:31:04 +0000","X-Gm-Features":"AQt7F2o-52PRfxYhLAl9jXTr7sXiJs8e8Ngi2b8rdSC62h0WZeRCZz3U6cppvxk","Message-ID":"<CAHW6GY+D8B0tpqkF-W=o6YMgccYLp_Uv1maFPbFhyrFZJZmbEg@mail.gmail.com>","Subject":"Re: [PATCH v2 0/4] Raspberry Pi AWB using neural networks","To":"libcamera-devel@lists.libcamera.org","Content-Type":"multipart/alternative; boundary=\"00000000000072ad630645adff44\"","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>"}}]