Message ID | mailman.41.1677666527.25031.libcamera-devel@lists.libcamera.org |
---|---|
State | Accepted |
Commit | 1957219d7e7ca557d6068fb7e46bd29b30211e6a |
Headers | show |
Series |
|
Related | show |
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 >
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 +}
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(-)