[v3,0/4] Raspberry Pi AWB using neural networks
mbox series

Message ID 20251212103401.3776-1-david.plowman@raspberrypi.com
Headers show
Series
  • Raspberry Pi AWB using neural networks
Related show

Message

David Plowman Dec. 12, 2025, 10:23 a.m. UTC
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

Comments

Kieran Bingham Dec. 16, 2025, 9:58 a.m. UTC | #1
Hi David,

Quoting David Plowman (2025-12-12 10:23:49)
> 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

I've tried pushing this series through CI, but it doesn't apply on
master.

I think there's a conflict/change in either meson_options or meson_build
somewhere and more crucially:


>  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 +++

We don't have the IMX500 upstream.

I've manually applied the patches to push for tests:

https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1568027

which look fine otherwise.

The only thing I'll look for is an acceptance on the new meson option -
but all of the rest is src/ipa/rpi so can already go in.

Will you be ok merging without IMX500 ? I presume that can be tracked on
top on the RPi tree for now?
--
Kieran


>  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
> 
> -- 
> 2.47.3
>
David Plowman Dec. 16, 2025, 10:22 a.m. UTC | #2
Hi Kieran

Ah yes, the IMX500. Sigh. Sorry about that. Let me do a version
without that, and which will apply cleanly

Thanks for trying it out!

David

On Tue, 16 Dec 2025 at 09:58, Kieran Bingham
<kieran.bingham@ideasonboard.com> wrote:
>
> Hi David,
>
> Quoting David Plowman (2025-12-12 10:23:49)
> > 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
>
> I've tried pushing this series through CI, but it doesn't apply on
> master.
>
> I think there's a conflict/change in either meson_options or meson_build
> somewhere and more crucially:
>
>
> >  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 +++
>
> We don't have the IMX500 upstream.
>
> I've manually applied the patches to push for tests:
>
> https://gitlab.freedesktop.org/camera/libcamera/-/pipelines/1568027
>
> which look fine otherwise.
>
> The only thing I'll look for is an acceptance on the new meson option -
> but all of the rest is src/ipa/rpi so can already go in.
>
> Will you be ok merging without IMX500 ? I presume that can be tracked on
> top on the RPi tree for now?
> --
> Kieran
>
>
> >  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
> >
> > --
> > 2.47.3
> >