[3/4] ipa: rpi: pisp: vc4: Update tuning files for new awb and add model
diff mbox series

Message ID 20251024144049.3311-4-david.plowman@raspberrypi.com
State New
Headers show
Series
  • Raspberry Pi AWB using neural networks
Related show

Commit Message

David Plowman Oct. 24, 2025, 2:16 p.m. UTC
From: Peter Bailey <peter.bailey@raspberrypi.com>

Update the tuning files to include the new Awb algorithm. It is enabled by
renaming disable.rpi.nn.awb to rpi.nn.awb and rpi.awb to disable.rpi.awb.

Add a model for the Awb algorithm to use by default.

Signed-off-by: Peter Bailey <peter.bailey@raspberrypi.com>
---
 src/ipa/rpi/pisp/data/awb_model.tflite       | Bin 0 -> 47624 bytes
 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            |  63 +++++++++++++++
 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/imx500.json            |  67 ++++++++++++++++
 src/ipa/rpi/pisp/data/imx708.json            |  64 ++++++++++++++-
 src/ipa/rpi/pisp/data/imx708_wide.json       |  62 +++++++++++++++
 src/ipa/rpi/pisp/data/meson.build            |   7 ++
 src/ipa/rpi/pisp/data/ov5647.json            |  63 +++++++++++++++
 src/ipa/rpi/vc4/data/awb_model.tflite        | Bin 0 -> 42976 bytes
 src/ipa/rpi/vc4/data/imx219.json             |  64 +++++++++++++++
 src/ipa/rpi/vc4/data/imx296.json             |  64 +++++++++++++++
 src/ipa/rpi/vc4/data/imx477.json             |  69 ++++++++++++++++
 src/ipa/rpi/vc4/data/imx500.json             |  67 ++++++++++++++++
 src/ipa/rpi/vc4/data/imx708.json             |  72 +++++++++++++++++
 src/ipa/rpi/vc4/data/imx708_wide.json        |  62 +++++++++++++++
 src/ipa/rpi/vc4/data/meson.build             |   8 ++
 src/ipa/rpi/vc4/data/ov5647.json             |  64 +++++++++++++++
 23 files changed, 1254 insertions(+), 8 deletions(-)
 create mode 100644 src/ipa/rpi/pisp/data/awb_model.tflite
 create mode 100644 src/ipa/rpi/vc4/data/awb_model.tflite

Patch
diff mbox series

diff --git a/src/ipa/rpi/pisp/data/awb_model.tflite b/src/ipa/rpi/pisp/data/awb_model.tflite
new file mode 100644
index 0000000000000000000000000000000000000000..280733265b669eee4c8c3e048ca5a18fbdde679f
GIT binary patch
literal 47624
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
E57+Fj!vFvP

literal 0
HcmV?d00001

diff --git a/src/ipa/rpi/pisp/data/imx219.json b/src/ipa/rpi/pisp/data/imx219.json
index 3d076548..316afe12 100644
--- a/src/ipa/rpi/pisp/data/imx219.json
+++ b/src/ipa/rpi/pisp/data/imx219.json
@@ -195,6 +195,69 @@ 
                 "transverse_neg": 0.034
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2860.0, 0.9514, 0.4156,
+                    2960.0, 0.9289, 0.4372,
+                    3603.0, 0.8305, 0.5251,
+                    4650.0, 0.6756, 0.6433,
+                    5858.0, 0.6193, 0.6807,
+                    7580.0, 0.5019, 0.7495
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.03392,
+                "transverse_neg": 0.034,
+                "ccm":
+                [
+                    2.2229345364238413, -0.7596721523178808, -0.46326238410596027,
+                    -0.6834893874172185, 2.7118816887417223, -1.02839940397351,
+                    -0.2613746357615894, -0.668015927152318, 1.9293905629139072
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -1187,6 +1250,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
\ No newline at end of file
diff --git a/src/ipa/rpi/pisp/data/imx296.json b/src/ipa/rpi/pisp/data/imx296.json
index 7fabb48d..333b4191 100644
--- a/src/ipa/rpi/pisp/data/imx296.json
+++ b/src/ipa/rpi/pisp/data/imx296.json
@@ -194,6 +194,68 @@ 
                 "transverse_neg": 0.02154
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2875.0, 0.4699, 0.3209,
+                    3610.0, 0.4089, 0.4265,
+                    4640.0, 0.3281, 0.5417,
+                    5912.0, 0.2992, 0.5771,
+                    7630.0, 0.2285, 0.6524
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.01783,
+                "transverse_neg": 0.02154,
+                "ccm":
+                [
+                    2.1073753846153847, -0.8054946153846154, -0.30188076923076923,
+                    -0.43306999999999995, 2.162828076923077, -0.7297680769230768,
+                    -0.126655, -0.5027626923076922, 1.6294176923076922
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -1194,6 +1256,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
\ No newline at end of file
diff --git a/src/ipa/rpi/pisp/data/imx296_16mm.json b/src/ipa/rpi/pisp/data/imx296_16mm.json
index 372d1ded..b4c5389d 100644
--- a/src/ipa/rpi/pisp/data/imx296_16mm.json
+++ b/src/ipa/rpi/pisp/data/imx296_16mm.json
@@ -194,6 +194,68 @@ 
                 "transverse_neg": 0.02154
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2875.0, 0.4699, 0.3209,
+                    3610.0, 0.4089, 0.4265,
+                    4640.0, 0.3281, 0.5417,
+                    5912.0, 0.2992, 0.5771,
+                    7630.0, 0.2285, 0.6524
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.01783,
+                "transverse_neg": 0.02154,
+                "ccm":
+                [
+                    2.1073753846153847, -0.8054946153846154, -0.30188076923076923,
+                    -0.43306999999999995, 2.162828076923077, -0.7297680769230768,
+                    -0.126655, -0.5027626923076922, 1.6294176923076922
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -1247,6 +1309,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
\ No newline at end of file
diff --git a/src/ipa/rpi/pisp/data/imx296_6mm.json b/src/ipa/rpi/pisp/data/imx296_6mm.json
index 7b946c85..035ef18b 100644
--- a/src/ipa/rpi/pisp/data/imx296_6mm.json
+++ b/src/ipa/rpi/pisp/data/imx296_6mm.json
@@ -194,6 +194,68 @@ 
                 "transverse_neg": 0.02154
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2875.0, 0.4699, 0.3209,
+                    3610.0, 0.4089, 0.4265,
+                    4640.0, 0.3281, 0.5417,
+                    5912.0, 0.2992, 0.5771,
+                    7630.0, 0.2285, 0.6524
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.01783,
+                "transverse_neg": 0.02154,
+                "ccm":
+                [
+                    2.1073753846153847, -0.8054946153846154, -0.30188076923076923,
+                    -0.43306999999999995, 2.162828076923077, -0.7297680769230768,
+                    -0.126655, -0.5027626923076922, 1.6294176923076922
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -1247,6 +1309,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
\ No newline at end of file
diff --git a/src/ipa/rpi/pisp/data/imx477.json b/src/ipa/rpi/pisp/data/imx477.json
index 314ec639..91d22633 100644
--- a/src/ipa/rpi/pisp/data/imx477.json
+++ b/src/ipa/rpi/pisp/data/imx477.json
@@ -195,6 +195,69 @@ 
                 "transverse_neg": 0.02255
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2850.0, 0.4307, 0.3957,
+                    2960.0, 0.4159, 0.4313,
+                    3580.0, 0.3771, 0.5176,
+                    4559.0, 0.3031, 0.6573,
+                    5881.0, 0.2809, 0.6942,
+                    7600.0, 0.2263, 0.7762
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.02634,
+                "transverse_neg": 0.02255,
+                "ccm":
+                [
+                    2.1643743343419066, -0.972589984871407, -0.19177768532526474,
+                    -0.3769567095310136, 2.0993768608169443, -0.722416815431165,
+                    -0.11786965204236007, -0.4893621633888049, 1.607231815431165
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/pisp/data/imx477_16mm.json b/src/ipa/rpi/pisp/data/imx477_16mm.json
index 8b94d1cf..a4ac8e58 100644
--- a/src/ipa/rpi/pisp/data/imx477_16mm.json
+++ b/src/ipa/rpi/pisp/data/imx477_16mm.json
@@ -195,6 +195,69 @@ 
                 "transverse_neg": 0.02255
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2850.0, 0.4307, 0.3957,
+                    2960.0, 0.4159, 0.4313,
+                    3580.0, 0.3771, 0.5176,
+                    4559.0, 0.3031, 0.6573,
+                    5881.0, 0.2809, 0.6942,
+                    7600.0, 0.2263, 0.7762
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.02634,
+                "transverse_neg": 0.02255,
+                "ccm":
+                [
+                    2.1643743343419066, -0.972589984871407, -0.19177768532526474,
+                    -0.3769567095310136, 2.0993768608169443, -0.722416815431165,
+                    -0.11786965204236007, -0.4893621633888049, 1.607231815431165
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -1240,6 +1303,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
\ No newline at end of file
diff --git a/src/ipa/rpi/pisp/data/imx477_6mm.json b/src/ipa/rpi/pisp/data/imx477_6mm.json
index c8b27d6c..4c9bdfa8 100644
--- a/src/ipa/rpi/pisp/data/imx477_6mm.json
+++ b/src/ipa/rpi/pisp/data/imx477_6mm.json
@@ -195,6 +195,69 @@ 
                 "transverse_neg": 0.02255
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2850.0, 0.4307, 0.3957,
+                    2960.0, 0.4159, 0.4313,
+                    3580.0, 0.3771, 0.5176,
+                    4559.0, 0.3031, 0.6573,
+                    5881.0, 0.2809, 0.6942,
+                    7600.0, 0.2263, 0.7762
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.02634,
+                "transverse_neg": 0.02255,
+                "ccm":
+                [
+                    2.1643743343419066, -0.972589984871407, -0.19177768532526474,
+                    -0.3769567095310136, 2.0993768608169443, -0.722416815431165,
+                    -0.11786965204236007, -0.4893621633888049, 1.607231815431165
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -1240,6 +1303,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
\ No newline at end of file
diff --git a/src/ipa/rpi/pisp/data/imx477_scientific.json b/src/ipa/rpi/pisp/data/imx477_scientific.json
index 3cfb4d14..85517082 100644
--- a/src/ipa/rpi/pisp/data/imx477_scientific.json
+++ b/src/ipa/rpi/pisp/data/imx477_scientific.json
@@ -164,6 +164,83 @@ 
                 "coarse_step": 0.1
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2000.0, 0.6331025775790707, 0.27424225990946915,
+                    2200.0, 0.5696117366212947, 0.3116091368689487,
+                    2400.0, 0.5204264653110015, 0.34892179554105873,
+                    2600.0, 0.48148675531667223, 0.38565229719076793,
+                    2800.0, 0.450085403501908, 0.42145684622485047,
+                    3000.0, 0.42436130159169017, 0.45611835670028816,
+                    3200.0, 0.40300023695527337, 0.48950766215198593,
+                    3400.0, 0.3850520052612984, 0.5215567075837261,
+                    3600.0, 0.36981508088230314, 0.5522397906415475,
+                    4100.0, 0.333468007836758, 0.5909770465167908,
+                    4600.0, 0.31196097364221376, 0.6515706327327178,
+                    5100.0, 0.2961860409294588, 0.7068178946570284,
+                    5600.0, 0.2842607232745885, 0.7564837749584288,
+                    6100.0, 0.2750265787051251, 0.8006183524920533,
+                    6600.0, 0.2677057225584924, 0.8398879225373039,
+                    7100.0, 0.2617955199757274, 0.8746456080032436,
+                    7600.0, 0.25693714288250125, 0.905569559506562,
+                    8100.0, 0.25287531441063316, 0.9331696750390895,
+                    8600.0, 0.24946601483331993, 0.9576820904825795
+                ],
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
+                "transverse_pos": 0.0238,
+                "transverse_neg": 0.04429,
+                "coarse_step": 0.1,
+                "ccm":
+                [
+                    2.003815467921944, -1.0081613204143252, 0.005840157117467748,
+                    -0.18090523909630973, 1.597736399205449, -0.4326323675585491,
+                    0.05055066369087284, -0.6057020512156361, 1.5577256973300102
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -546,6 +623,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
\ No newline at end of file
diff --git a/src/ipa/rpi/pisp/data/imx500.json b/src/ipa/rpi/pisp/data/imx500.json
index 59a2aac5..a20546dd 100644
--- a/src/ipa/rpi/pisp/data/imx500.json
+++ b/src/ipa/rpi/pisp/data/imx500.json
@@ -199,6 +199,73 @@ 
                 "transverse_neg": 0.02678
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2800,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2800,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 7600
+                    }
+                },
+                "ct_curve":
+                [
+                    2800.0, 0.7115, 0.3579,
+                    2860.0, 0.6671, 0.4058,
+                    2880.0, 0.6641, 0.4089,
+                    3580.0, 0.5665, 0.5113,
+                    3650.0, 0.5621, 0.5159,
+                    4500.0, 0.4799, 0.5997,
+                    4570.0, 0.4752, 0.6046,
+                    5648.0, 0.4139, 0.6657,
+                    5717.0, 0.4118, 0.6678,
+                    7600.0, 0.3625, 0.7162
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.02822,
+                "transverse_neg": 0.02678,
+                "ccm":
+                [
+                    1.6753287012987015, -0.4685774582560297, -0.20675124304267162,
+                    -0.3610687012987013, 1.906408293135436, -0.5453335807050093,
+                    -0.057295510204081634, -0.48813066790352505, 1.5454261781076069
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/pisp/data/imx708.json b/src/ipa/rpi/pisp/data/imx708.json
index 6b68bbc4..7b5ee46b 100644
--- a/src/ipa/rpi/pisp/data/imx708.json
+++ b/src/ipa/rpi/pisp/data/imx708.json
@@ -194,6 +194,68 @@ 
                 "transverse_neg": 0.01831
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2964.0, 0.7451, 0.3213,
+                    3610.0, 0.6119, 0.4443,
+                    4640.0, 0.5168, 0.5419,
+                    5910.0, 0.4436, 0.6229,
+                    7590.0, 0.3847, 0.6921
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.01752,
+                "transverse_neg": 0.01831,
+                "ccm":
+                [
+                    1.5407949606299214, -0.3714970078740158, -0.16929511811023623,
+                    -0.2801589763779528, 1.649028503937008, -0.36886236220472446,
+                    0.004032519685039371, -0.5251851181102363, 1.521162598425197
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
@@ -1287,6 +1349,6 @@ 
             "rpi.sync":
             {
             }
-	    }
+        }
     ]
 }
diff --git a/src/ipa/rpi/pisp/data/imx708_wide.json b/src/ipa/rpi/pisp/data/imx708_wide.json
index aeeb1a0d..8760ddff 100644
--- a/src/ipa/rpi/pisp/data/imx708_wide.json
+++ b/src/ipa/rpi/pisp/data/imx708_wide.json
@@ -194,6 +194,68 @@ 
                 "transverse_neg": 0.01376
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2868.0, 0.6419, 0.3613,
+                    3603.0, 0.5374, 0.4787,
+                    4620.0, 0.4482, 0.5813,
+                    5901.0, 0.3883, 0.6514,
+                    7610.0, 0.3279, 0.7232
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.01908,
+                "transverse_neg": 0.01376,
+                "ccm":
+                [
+                    1.5820866588602653, -0.39406808743169397, -0.1880145042935207,
+                    -0.3101711553473849, 1.756938087431694, -0.44677099921935987,
+                    -0.018062732240437158, -0.5139293442622951, 1.5319991100702577
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/pisp/data/meson.build b/src/ipa/rpi/pisp/data/meson.build
index a39ce510..e671137e 100644
--- a/src/ipa/rpi/pisp/data/meson.build
+++ b/src/ipa/rpi/pisp/data/meson.build
@@ -27,5 +27,12 @@  conf_files = files([
     'uncalibrated.json',
 ])
 
+model_files = files([
+    'awb_model.tflite'
+])
+
 install_data(conf_files,
              install_dir : ipa_data_dir / 'rpi' / 'pisp')
+
+install_data(model_files,
+             install_dir : ipa_data_dir / 'rpi' / 'pisp')
diff --git a/src/ipa/rpi/pisp/data/ov5647.json b/src/ipa/rpi/pisp/data/ov5647.json
index beb20799..959bf589 100644
--- a/src/ipa/rpi/pisp/data/ov5647.json
+++ b/src/ipa/rpi/pisp/data/ov5647.json
@@ -195,6 +195,69 @@ 
                 "transverse_neg": 0.03906
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7700
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8000
+                    }
+                },
+                "ct_curve":
+                [
+                    2873.0, 1.0463, 0.5142,
+                    2965.0, 1.0233, 0.5284,
+                    3606.0, 0.8947, 0.6314,
+                    4700.0, 0.7665, 0.7897,
+                    5890.0, 0.7055, 0.8933,
+                    7600.0, 0.6482, 1.0119
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.04072,
+                "transverse_neg": 0.03906,
+                "ccm":
+                [
+                    2.041588151260504, -0.5494553781512606, -0.49214025210084034,
+                    -0.5116488235294118, 1.9901442857142857, -0.47849546218487393,
+                    -0.10519773109243696, -0.641700168067227, 1.7468953781512604
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/vc4/data/awb_model.tflite b/src/ipa/rpi/vc4/data/awb_model.tflite
new file mode 100644
index 0000000000000000000000000000000000000000..926e98ff4c2ddc1512bc55630c218bfac6141ab1
GIT binary patch
literal 42976
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

literal 0
HcmV?d00001

diff --git a/src/ipa/rpi/vc4/data/imx219.json b/src/ipa/rpi/vc4/data/imx219.json
index c43d6db4..51f4e2e0 100644
--- a/src/ipa/rpi/vc4/data/imx219.json
+++ b/src/ipa/rpi/vc4/data/imx219.json
@@ -128,6 +128,70 @@ 
                 "transverse_neg": 0.04881
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 8000
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8600
+                    }
+                },
+                "ct_curve":
+                [
+                    2498.0, 0.9309, 0.3599,
+                    2911.0, 0.8682, 0.4283,
+                    2919.0, 0.8358, 0.4621,
+                    3627.0, 0.7646, 0.5327,
+                    4600.0, 0.6079, 0.6721,
+                    5716.0, 0.5712, 0.7017,
+                    8575.0, 0.4331, 0.8037
+                ],
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
+                "transverse_pos": 0.04791,
+                "transverse_neg": 0.04881,
+                "ccm":
+                [
+                    2.2229345364238413, -0.7596721523178808, -0.46326238410596027,
+                    -0.6834893874172185, 2.7118816887417223, -1.02839940397351,
+                    -0.2613746357615894, -0.668015927152318, 1.9293905629139072
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/vc4/data/imx296.json b/src/ipa/rpi/vc4/data/imx296.json
index c9b9ee61..0472b8cf 100644
--- a/src/ipa/rpi/vc4/data/imx296.json
+++ b/src/ipa/rpi/vc4/data/imx296.json
@@ -128,6 +128,70 @@ 
                 "transverse_neg": 0.02374
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 7600
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 7600
+                    }
+                },
+                "ct_curve":
+                [
+                    2500.0, 0.5386, 0.2458,
+                    2800.0, 0.4883, 0.3303,
+                    2900.0, 0.4855, 0.3349,
+                    3620.0, 0.4203, 0.4367,
+                    4560.0, 0.3455, 0.5444,
+                    5600.0, 0.2948, 0.6124,
+                    7400.0, 0.2336, 0.6894
+                ],
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
+                "transverse_pos": 0.03093,
+                "transverse_neg": 0.02374,
+                "ccm":
+                [
+                    2.1073753846153847, -0.8054946153846154, -0.30188076923076923,
+                    -0.43306999999999995, 2.162828076923077, -0.7297680769230768,
+                    -0.126655, -0.5027626923076922, 1.6294176923076922
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/vc4/data/imx477.json b/src/ipa/rpi/vc4/data/imx477.json
index 46f51287..4b40299c 100644
--- a/src/ipa/rpi/vc4/data/imx477.json
+++ b/src/ipa/rpi/vc4/data/imx477.json
@@ -133,6 +133,75 @@ 
                 "transverse_neg": 0.04429
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 8000
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8600
+                    }
+                },
+                "ct_curve":
+                [
+                    2360.0, 0.6009, 0.3093,
+                    2848.0, 0.5071, 0.4,
+                    2903.0, 0.4905, 0.4392,
+                    3628.0, 0.4261, 0.5564,
+                    3643.0, 0.4228, 0.5623,
+                    4660.0, 0.3529, 0.68,
+                    5579.0, 0.3227, 0.7,
+                    6125.0, 0.3129, 0.71,
+                    6671.0, 0.3065, 0.72,
+                    7217.0, 0.3014, 0.73,
+                    7763.0, 0.295, 0.74,
+                    9505.0, 0.2524, 0.7856
+                ],
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
+                "transverse_pos": 0.0238,
+                "transverse_neg": 0.04429,
+                "ccm":
+                [
+                    2.1643743343419066, -0.972589984871407, -0.19177768532526474,
+                    -0.3769567095310136, 2.0993768608169443, -0.722416815431165,
+                    -0.11786965204236007, -0.4893621633888049, 1.607231815431165
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/vc4/data/imx500.json b/src/ipa/rpi/vc4/data/imx500.json
index 224ffb92..e12068a5 100644
--- a/src/ipa/rpi/vc4/data/imx500.json
+++ b/src/ipa/rpi/vc4/data/imx500.json
@@ -131,6 +131,73 @@ 
                 "transverse_neg": 0.02626
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2800,
+                        "hi": 8000
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2800,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 7600
+                    }
+                },
+                "ct_curve":
+                [
+                    2800.0, 0.7126, 0.3567,
+                    2860.0, 0.6681, 0.4042,
+                    2880.0, 0.6651, 0.4074,
+                    3580.0, 0.5674, 0.5091,
+                    3650.0, 0.5629, 0.5137,
+                    4500.0, 0.4792, 0.5982,
+                    4570.0, 0.4752, 0.6022,
+                    5648.0, 0.4137, 0.6628,
+                    5717.0, 0.4116, 0.6648,
+                    7600.0, 0.3609, 0.7138
+                ],
+                "sensitivity_r": 1.0,
+                "sensitivity_b": 1.0,
+                "transverse_pos": 0.02798,
+                "transverse_neg": 0.02626,
+                "ccm":
+                [
+                    1.6856933395176252, -0.4760917810760668, -0.20960155844155848,
+                    -0.3666382560296846, 1.9130496103896104, -0.5464153432282004,
+                    -0.060413803339517624, -0.4878164935064935, 1.5482282745825604
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/vc4/data/imx708.json b/src/ipa/rpi/vc4/data/imx708.json
index 5aae842e..56271cbc 100644
--- a/src/ipa/rpi/vc4/data/imx708.json
+++ b/src/ipa/rpi/vc4/data/imx708.json
@@ -136,6 +136,78 @@ 
                 "transverse_neg": 0.03061
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 8000
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8600
+                    }
+                },
+                "ct_curve":
+                [
+                    2498.0, 0.8733, 0.2606,
+                    2821.0, 0.7707, 0.3245,
+                    2925.0, 0.7338, 0.3499,
+                    2926.0, 0.7193, 0.3603,
+                    2951.0, 0.7144, 0.3639,
+                    2954.0, 0.7111, 0.3663,
+                    3578.0, 0.6038, 0.4516,
+                    3717.0, 0.5861, 0.4669,
+                    3784.0, 0.5786, 0.4737,
+                    4485.0, 0.5113, 0.5368,
+                    4615.0, 0.4994, 0.5486,
+                    4671.0, 0.4927, 0.5554,
+                    5753.0, 0.4274, 0.6246,
+                    5773.0, 0.4265, 0.6256,
+                    7433.0, 0.3723, 0.6881
+                ],
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
+                "transverse_pos": 0.03148,
+                "transverse_neg": 0.03061,
+                "ccm":
+                [
+                    1.5407949606299214, -0.3714970078740158, -0.16929511811023623,
+                    -0.2801589763779528, 1.649028503937008, -0.36886236220472446,
+                    0.004032519685039371, -0.5251851181102363, 1.521162598425197
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/vc4/data/imx708_wide.json b/src/ipa/rpi/vc4/data/imx708_wide.json
index a678dc32..684550f0 100644
--- a/src/ipa/rpi/vc4/data/imx708_wide.json
+++ b/src/ipa/rpi/vc4/data/imx708_wide.json
@@ -126,6 +126,68 @@ 
                 "transverse_neg": 0.01601
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 8000
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8600
+                    }
+                },
+                "ct_curve":
+                [
+                    2750.0, 0.7881, 0.2849,
+                    2940.0, 0.7559, 0.3103,
+                    3650.0, 0.6291, 0.4206,
+                    4625.0, 0.5336, 0.5161,
+                    5715.0, 0.4668, 0.5898
+                ],
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
+                "transverse_pos": 0.01165,
+                "transverse_neg": 0.01601,
+                "ccm":
+                [
+                    1.5820866588602653, -0.39406808743169397, -0.1880145042935207,
+                    -0.3101711553473849, 1.756938087431694, -0.44677099921935987,
+                    -0.018062732240437158, -0.5139293442622951, 1.5319991100702577
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {
diff --git a/src/ipa/rpi/vc4/data/meson.build b/src/ipa/rpi/vc4/data/meson.build
index b42f5f6c..7516c653 100644
--- a/src/ipa/rpi/vc4/data/meson.build
+++ b/src/ipa/rpi/vc4/data/meson.build
@@ -29,6 +29,14 @@  conf_files = files([
     'uncalibrated.json',
 ])
 
+model_files = files([
+    'awb_model.tflite'
+])
+
+
 install_data(conf_files,
              install_dir : ipa_data_dir / 'rpi' / 'vc4',
              install_tag : 'runtime')
+
+install_data(model_files,
+             install_dir : ipa_data_dir / 'rpi' / 'vc4')
diff --git a/src/ipa/rpi/vc4/data/ov5647.json b/src/ipa/rpi/vc4/data/ov5647.json
index 38d4d265..56e33b5b 100644
--- a/src/ipa/rpi/vc4/data/ov5647.json
+++ b/src/ipa/rpi/vc4/data/ov5647.json
@@ -128,6 +128,70 @@ 
                 "transverse_neg": 0.04313
             }
         },
+        {
+            "disable.rpi.nn.awb":
+            {
+                "modes":
+                {
+                    "auto":
+                    {
+                        "lo": 2500,
+                        "hi": 8000
+                    },
+                    "incandescent":
+                    {
+                        "lo": 2500,
+                        "hi": 3000
+                    },
+                    "tungsten":
+                    {
+                        "lo": 3000,
+                        "hi": 3500
+                    },
+                    "fluorescent":
+                    {
+                        "lo": 4000,
+                        "hi": 4700
+                    },
+                    "indoor":
+                    {
+                        "lo": 3000,
+                        "hi": 5000
+                    },
+                    "daylight":
+                    {
+                        "lo": 5500,
+                        "hi": 6500
+                    },
+                    "cloudy":
+                    {
+                        "lo": 7000,
+                        "hi": 8600
+                    }
+                },
+                "ct_curve":
+                [
+                    2500.0, 1.0289, 0.4503,
+                    2803.0, 0.9428, 0.5108,
+                    2914.0, 0.9406, 0.5127,
+                    3605.0, 0.8261, 0.6249,
+                    4540.0, 0.7331, 0.7533,
+                    5699.0, 0.6715, 0.8627,
+                    8625.0, 0.6081, 1.0012
+                ],
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
+                "transverse_pos": 0.0321,
+                "transverse_neg": 0.04313,
+                "ccm":
+                [
+                    2.041588151260504, -0.5494553781512606, -0.49214025210084034,
+                    -0.5116488235294118, 1.9901442857142857, -0.47849546218487393,
+                    -0.10519773109243696, -0.641700168067227, 1.7468953781512604
+                ],
+                "enable_nn": 1
+            }
+        },
         {
             "rpi.agc":
             {