[libcamera-devel,v2] ipa: raspberrypi: imx296: Minor tuning updates
diff mbox series

Message ID mailman.41.1677666527.25031.libcamera-devel@lists.libcamera.org
State Accepted
Commit 1957219d7e7ca557d6068fb7e46bd29b30211e6a
Headers show
Series
  • [libcamera-devel,v2] ipa: raspberrypi: imx296: Minor tuning updates
Related show

Commit Message

David Plowman March 1, 2023, 10:28 a.m. UTC
Some updates to the tuning for the imx296 sensors.

For the colour variant:

* Minor change to the AWB curve, making things a little less green.
* Updated CCMs that reduce colour saturation to a more accurate level.
  Thanks to Dr. Rolf Henkel for these measurements and calculations.
* Sharpening has been toned down quite a lot.
* rpi.focus algorithm added so that the focus measure can be accessed.

The sharpening and focus changes are applied to the mono version of
the sensor too as we expect similar characteristics.

Signed-off-by: David Plowman <david.plowman@raspberrypi.com>
---
 src/ipa/raspberrypi/data/imx296.json      | 180 ++++++++++++++++++----
 src/ipa/raspberrypi/data/imx296_mono.json |  12 +-
 2 files changed, 158 insertions(+), 34 deletions(-)

Comments

Naushir Patuck March 1, 2023, 10:40 a.m. UTC | #1
Hi David,

Thanks for the update!

On Wed, 1 Mar 2023 at 10:28, David Plowman via libcamera-devel
<libcamera-devel@lists.libcamera.org> wrote:
>
> Some updates to the tuning for the imx296 sensors.
>
> For the colour variant:
>
> * Minor change to the AWB curve, making things a little less green.
> * Updated CCMs that reduce colour saturation to a more accurate level.
>   Thanks to Dr. Rolf Henkel for these measurements and calculations.
> * Sharpening has been toned down quite a lot.
> * rpi.focus algorithm added so that the focus measure can be accessed.
>
> The sharpening and focus changes are applied to the mono version of
> the sensor too as we expect similar characteristics.
>
> Signed-off-by: David Plowman <david.plowman@raspberrypi.com>

Reviewed-by: Naushir Patuck <naush@raspberrypi.com>

> ---
>  src/ipa/raspberrypi/data/imx296.json      | 180 ++++++++++++++++++----
>  src/ipa/raspberrypi/data/imx296_mono.json |  12 +-
>  2 files changed, 158 insertions(+), 34 deletions(-)
>
> diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json
> index 4e830517..346f5b65 100644
> --- a/src/ipa/raspberrypi/data/imx296.json
> +++ b/src/ipa/raspberrypi/data/imx296.json
> @@ -78,7 +78,7 @@
>                      "auto":
>                      {
>                          "lo": 2500,
> -                        "hi": 8000
> +                        "hi": 7600
>                      },
>                      "incandescent":
>                      {
> @@ -108,7 +108,7 @@
>                      "cloudy":
>                      {
>                          "lo": 7000,
> -                        "hi": 8600
> +                        "hi": 7600
>                      }
>                  },
>                  "bayes": 1,
> @@ -122,8 +122,8 @@
>                      5600.0, 0.2948, 0.6124,
>                      7400.0, 0.2336, 0.6894
>                  ],
> -                "sensitivity_r": 1.0,
> -                "sensitivity_b": 1.0,
> +                "sensitivity_r": 1.05,
> +                "sensitivity_b": 1.05,
>                  "transverse_pos": 0.03093,
>                  "transverse_neg": 0.02374
>              }
> @@ -352,73 +352,189 @@
>              {
>                  "ccms": [
>                      {
> -                        "ct": 2500,
> +                        "ct": 2000,
>                          "ccm":
>                          [
> -                            1.73697, -0.36758, -0.36939,
> -                            -0.46469, 1.75868, -0.29399,
> -                            0.14353, -1.26221, 2.11867
> +                            1.48716, -0.1877, -0.35079,
> +                            -0.48577, 1.55088, -0.03387,
> +                            0.24919, -1.4583, 2.12083
> +                        ]
> +                    },
> +                    {
> +                        "ct": 2200,
> +                        "ccm":
> +                        [
> +                            1.53439, -0.28852, -0.29392,
> +                            -0.44748, 1.56295, -0.08907,
> +                            0.23529, -1.30488, 1.99784
> +                        ]
> +                    },
> +                    {
> +                        "ct": 2400,
> +                        "ccm":
> +                        [
> +                            1.57619, -0.36904, -0.25181,
> +                            -0.41654, 1.57046, -0.13192,
> +                            0.21678, -1.18352, 1.90786
> +                        ]
> +                    },
> +                    {
> +                        "ct": 2600,
> +                        "ccm":
> +                        [
> +                            1.61348, -0.43497, -0.2198,
> +                            -0.39075, 1.5753, -0.1665,
> +                            0.19789, -1.08592, 1.83942
>                          ]
>                      },
>                      {
>                          "ct": 2800,
>                          "ccm":
>                          [
> -                            1.77684, -0.48089, -0.29595,
> -                            -0.41669, 1.74344, -0.32675,
> -                            0.11995, -1.10172, 1.98177
> +                            1.64717, -0.49009, -0.1951,
> +                            -0.36881, 1.57852, -0.1952,
> +                            0.18016, -1.00609, 1.78575
> +                        ]
> +                    },
> +                    {
> +                        "ct": 3000,
> +                        "ccm":
> +                        [
> +                            1.67798, -0.53693, -0.17591,
> +                            -0.34986, 1.58074, -0.21955,
> +                            0.16406, -0.9398, 1.74261
> +                        ]
> +                    },
> +                    {
> +                        "ct": 3200,
> +                        "ccm":
> +                        [
> +                            1.70647, -0.5773, -0.161,
> +                            -0.33332, 1.58235, -0.24056,
> +                            0.14961, -0.88398, 1.70721
> +                        ]
> +                    },
> +                    {
> +                        "ct": 3400,
> +                        "ccm":
> +                        [
> +                            1.73305, -0.61248, -0.14951,
> +                            -0.31875, 1.58355, -0.25894,
> +                            0.13671, -0.83642, 1.67769
> +                        ]
> +                    },
> +                    {
> +                        "ct": 3600,
> +                        "ccm":
> +                        [
> +                            1.75802, -0.64343, -0.14077,
> +                            -0.30581, 1.5845, -0.27518,
> +                            0.12518, -0.79546, 1.65271
>                          ]
>                      },
>                      {
> -                        "ct": 2900,
> +                        "ct": 4100,
>                          "ccm":
>                          [
> -                            1.83447, -0.50694, -0.32754,
> -                            -0.44924, 1.86236, -0.41312,
> -                            0.06159, -0.91231, 1.85071
> +                            1.78116, -0.67459, -0.13048,
> +                            -0.26859, 1.58692, -0.31929,
> +                            0.11915, -0.77931, 1.64012
>                          ]
>                      },
>                      {
> -                        "ct": 3620,
> +                        "ct": 4600,
>                          "ccm":
>                          [
> -                            1.91315, -0.61463, -0.29852,
> -                            -0.38782, 1.80483, -0.41701,
> -                            0.00632, -0.74309, 1.73678
> +                            1.83867, -0.73605, -0.12044,
> +                            -0.24947, 1.58699, -0.34207,
> +                            0.09949, -0.71041, 1.59842
>                          ]
>                      },
>                      {
> -                        "ct": 4560,
> +                        "ct": 5100,
>                          "ccm":
>                          [
> -                            2.13144, -0.79703, -0.33441,
> -                            -0.41488, 2.10864, -0.69376,
> -                            -0.03975, -0.70785, 1.74761
> +                            1.88967, -0.78455, -0.11744,
> +                            -0.23398, 1.58806, -0.36172,
> +                            0.08362, -0.6574, 1.56728
>                          ]
>                      },
>                      {
>                          "ct": 5600,
>                          "ccm":
>                          [
> -                            1.95828, -0.76779, -0.19049,
> -                            -0.26299, 1.70577, -0.44278,
> -                            -0.05451, -0.51918, 1.57369
> +                            1.93485, -0.82318, -0.1191,
> +                            -0.22108, 1.58973, -0.37892,
> +                            0.07074, -0.61609, 1.54362
> +                        ]
> +                    },
> +                    {
> +                        "ct": 6100,
> +                        "ccm":
> +                        [
> +                            1.97481, -0.85423, -0.12371,
> +                            -0.21015, 1.59169, -0.39406,
> +                            0.06021, -0.58353, 1.52536
> +                        ]
> +                    },
> +                    {
> +                        "ct": 6600,
> +                        "ccm":
> +                        [
> +                            2.01029, -0.87946, -0.13017,
> +                            -0.20074, 1.59378, -0.4075,
> +                            0.05146, -0.55732, 1.51096
> +                        ]
> +                    },
> +                    {
> +                        "ct": 7100,
> +                        "ccm":
> +                        [
> +                            2.04183, -0.9002, -0.13765,
> +                            -0.19255, 1.59586, -0.41944,
> +                            0.04414, -0.53603, 1.49947
> +                        ]
> +                    },
> +                    {
> +                        "ct": 7600,
> +                        "ccm":
> +                        [
> +                            2.07001, -0.91744, -0.14566,
> +                            -0.18534, 1.59788, -0.43013,
> +                            0.03791, -0.51841, 1.49013
> +                        ]
> +                    },
> +                    {
> +                        "ct": 8100,
> +                        "ccm":
> +                        [
> +                            2.09534, -0.93195, -0.15388,
> +                            -0.17893, 1.59981, -0.43974,
> +                            0.03256, -0.50364, 1.48243
>                          ]
>                      },
>                      {
> -                        "ct": 7400,
> +                        "ct": 8600,
>                          "ccm":
>                          [
> -                            2.14829, -0.65425, -0.49405,
> -                            -0.46729, 2.66571, -1.19841,
> -                            -0.28128, -0.56248, 1.84377
> +                            2.11799, -0.94416, -0.16203,
> +                            -0.17324, 1.60161, -0.44836,
> +                            0.02795, -0.4912, 1.47604
>                          ]
>                      }
>                  ]
>              }
>          },
>          {
> -            "rpi.sharpen": { }
> +            "rpi.sharpen":
> +            {
> +                "threshold": 0.1,
> +                "strength": 1.0,
> +                "limit": 0.18
> +            }
> +        },
> +        {
> +            "rpi.focus": { }
>          }
>      ]
> -}
> \ No newline at end of file
> +}
> diff --git a/src/ipa/raspberrypi/data/imx296_mono.json b/src/ipa/raspberrypi/data/imx296_mono.json
> index b68b11db..e9fa30c6 100644
> --- a/src/ipa/raspberrypi/data/imx296_mono.json
> +++ b/src/ipa/raspberrypi/data/imx296_mono.json
> @@ -222,7 +222,15 @@
>              }
>          },
>          {
> -            "rpi.sharpen": { }
> +            "rpi.sharpen":
> +            {
> +                "threshold": 0.1,
> +                "strength": 1.0,
> +                "limit": 0.18
> +            }
> +        },
> +        {
> +            "rpi.focus": { }
>          }
>      ]
> -}
> \ No newline at end of file
> +}
> --
> 2.30.2
>

Patch
diff mbox series

diff --git a/src/ipa/raspberrypi/data/imx296.json b/src/ipa/raspberrypi/data/imx296.json
index 4e830517..346f5b65 100644
--- a/src/ipa/raspberrypi/data/imx296.json
+++ b/src/ipa/raspberrypi/data/imx296.json
@@ -78,7 +78,7 @@ 
                     "auto":
                     {
                         "lo": 2500,
-                        "hi": 8000
+                        "hi": 7600
                     },
                     "incandescent":
                     {
@@ -108,7 +108,7 @@ 
                     "cloudy":
                     {
                         "lo": 7000,
-                        "hi": 8600
+                        "hi": 7600
                     }
                 },
                 "bayes": 1,
@@ -122,8 +122,8 @@ 
                     5600.0, 0.2948, 0.6124,
                     7400.0, 0.2336, 0.6894
                 ],
-                "sensitivity_r": 1.0,
-                "sensitivity_b": 1.0,
+                "sensitivity_r": 1.05,
+                "sensitivity_b": 1.05,
                 "transverse_pos": 0.03093,
                 "transverse_neg": 0.02374
             }
@@ -352,73 +352,189 @@ 
             {
                 "ccms": [
                     {
-                        "ct": 2500,
+                        "ct": 2000,
                         "ccm":
                         [
-                            1.73697, -0.36758, -0.36939,
-                            -0.46469, 1.75868, -0.29399,
-                            0.14353, -1.26221, 2.11867
+                            1.48716, -0.1877, -0.35079,
+                            -0.48577, 1.55088, -0.03387,
+                            0.24919, -1.4583, 2.12083
+                        ]
+                    },
+                    {
+                        "ct": 2200,
+                        "ccm":
+                        [
+                            1.53439, -0.28852, -0.29392,
+                            -0.44748, 1.56295, -0.08907,
+                            0.23529, -1.30488, 1.99784
+                        ]
+                    },
+                    {
+                        "ct": 2400,
+                        "ccm":
+                        [
+                            1.57619, -0.36904, -0.25181,
+                            -0.41654, 1.57046, -0.13192,
+                            0.21678, -1.18352, 1.90786
+                        ]
+                    },
+                    {
+                        "ct": 2600,
+                        "ccm":
+                        [
+                            1.61348, -0.43497, -0.2198,
+                            -0.39075, 1.5753, -0.1665,
+                            0.19789, -1.08592, 1.83942
                         ]
                     },
                     {
                         "ct": 2800,
                         "ccm":
                         [
-                            1.77684, -0.48089, -0.29595,
-                            -0.41669, 1.74344, -0.32675,
-                            0.11995, -1.10172, 1.98177
+                            1.64717, -0.49009, -0.1951,
+                            -0.36881, 1.57852, -0.1952,
+                            0.18016, -1.00609, 1.78575
+                        ]
+                    },
+                    {
+                        "ct": 3000,
+                        "ccm":
+                        [
+                            1.67798, -0.53693, -0.17591,
+                            -0.34986, 1.58074, -0.21955,
+                            0.16406, -0.9398, 1.74261
+                        ]
+                    },
+                    {
+                        "ct": 3200,
+                        "ccm":
+                        [
+                            1.70647, -0.5773, -0.161,
+                            -0.33332, 1.58235, -0.24056,
+                            0.14961, -0.88398, 1.70721
+                        ]
+                    },
+                    {
+                        "ct": 3400,
+                        "ccm":
+                        [
+                            1.73305, -0.61248, -0.14951,
+                            -0.31875, 1.58355, -0.25894,
+                            0.13671, -0.83642, 1.67769
+                        ]
+                    },
+                    {
+                        "ct": 3600,
+                        "ccm":
+                        [
+                            1.75802, -0.64343, -0.14077,
+                            -0.30581, 1.5845, -0.27518,
+                            0.12518, -0.79546, 1.65271
                         ]
                     },
                     {
-                        "ct": 2900,
+                        "ct": 4100,
                         "ccm":
                         [
-                            1.83447, -0.50694, -0.32754,
-                            -0.44924, 1.86236, -0.41312,
-                            0.06159, -0.91231, 1.85071
+                            1.78116, -0.67459, -0.13048,
+                            -0.26859, 1.58692, -0.31929,
+                            0.11915, -0.77931, 1.64012
                         ]
                     },
                     {
-                        "ct": 3620,
+                        "ct": 4600,
                         "ccm":
                         [
-                            1.91315, -0.61463, -0.29852,
-                            -0.38782, 1.80483, -0.41701,
-                            0.00632, -0.74309, 1.73678
+                            1.83867, -0.73605, -0.12044,
+                            -0.24947, 1.58699, -0.34207,
+                            0.09949, -0.71041, 1.59842
                         ]
                     },
                     {
-                        "ct": 4560,
+                        "ct": 5100,
                         "ccm":
                         [
-                            2.13144, -0.79703, -0.33441,
-                            -0.41488, 2.10864, -0.69376,
-                            -0.03975, -0.70785, 1.74761
+                            1.88967, -0.78455, -0.11744,
+                            -0.23398, 1.58806, -0.36172,
+                            0.08362, -0.6574, 1.56728
                         ]
                     },
                     {
                         "ct": 5600,
                         "ccm":
                         [
-                            1.95828, -0.76779, -0.19049,
-                            -0.26299, 1.70577, -0.44278,
-                            -0.05451, -0.51918, 1.57369
+                            1.93485, -0.82318, -0.1191,
+                            -0.22108, 1.58973, -0.37892,
+                            0.07074, -0.61609, 1.54362
+                        ]
+                    },
+                    {
+                        "ct": 6100,
+                        "ccm":
+                        [
+                            1.97481, -0.85423, -0.12371,
+                            -0.21015, 1.59169, -0.39406,
+                            0.06021, -0.58353, 1.52536
+                        ]
+                    },
+                    {
+                        "ct": 6600,
+                        "ccm":
+                        [
+                            2.01029, -0.87946, -0.13017,
+                            -0.20074, 1.59378, -0.4075,
+                            0.05146, -0.55732, 1.51096
+                        ]
+                    },
+                    {
+                        "ct": 7100,
+                        "ccm":
+                        [
+                            2.04183, -0.9002, -0.13765,
+                            -0.19255, 1.59586, -0.41944,
+                            0.04414, -0.53603, 1.49947
+                        ]
+                    },
+                    {
+                        "ct": 7600,
+                        "ccm":
+                        [
+                            2.07001, -0.91744, -0.14566,
+                            -0.18534, 1.59788, -0.43013,
+                            0.03791, -0.51841, 1.49013
+                        ]
+                    },
+                    {
+                        "ct": 8100,
+                        "ccm":
+                        [
+                            2.09534, -0.93195, -0.15388,
+                            -0.17893, 1.59981, -0.43974,
+                            0.03256, -0.50364, 1.48243
                         ]
                     },
                     {
-                        "ct": 7400,
+                        "ct": 8600,
                         "ccm":
                         [
-                            2.14829, -0.65425, -0.49405,
-                            -0.46729, 2.66571, -1.19841,
-                            -0.28128, -0.56248, 1.84377
+                            2.11799, -0.94416, -0.16203,
+                            -0.17324, 1.60161, -0.44836,
+                            0.02795, -0.4912, 1.47604
                         ]
                     }
                 ]
             }
         },
         {
-            "rpi.sharpen": { }
+            "rpi.sharpen":
+            {
+                "threshold": 0.1,
+                "strength": 1.0,
+                "limit": 0.18
+            }
+        },
+        {
+            "rpi.focus": { }
         }
     ]
-}
\ No newline at end of file
+}
diff --git a/src/ipa/raspberrypi/data/imx296_mono.json b/src/ipa/raspberrypi/data/imx296_mono.json
index b68b11db..e9fa30c6 100644
--- a/src/ipa/raspberrypi/data/imx296_mono.json
+++ b/src/ipa/raspberrypi/data/imx296_mono.json
@@ -222,7 +222,15 @@ 
             }
         },
         {
-            "rpi.sharpen": { }
+            "rpi.sharpen":
+            {
+                "threshold": 0.1,
+                "strength": 1.0,
+                "limit": 0.18
+            }
+        },
+        {
+            "rpi.focus": { }
         }
     ]
-}
\ No newline at end of file
+}