@@ -1,6 +1,8 @@
# SPDX-License-Identifier: CC0-1.0
conf_files = files([
+ 'ov13858.yaml',
+ 'ov5693.yaml',
'uncalibrated.yaml',
])
new file mode 100644
@@ -0,0 +1,40 @@
+# SPDX-License-Identifier: CC0-1.0
+# Calibrated from the AIQB blob shipped with the Windows camera driver of
+# the Surface Pro 8 rear camera. The gains are the inverse of the white
+# point of each light source, so they match its matrix.
+%YAML 1.1
+---
+version: 1
+algorithms:
+ - BlackLevel:
+ - Awb:
+ algorithm: bayes
+ colourGains:
+ - ct: 2514
+ gains: [ 0.982, 2.138 ]
+ - ct: 2848
+ gains: [ 1.141, 2.093 ]
+ - ct: 2870
+ gains: [ 1.121, 1.991 ]
+ - ct: 3786
+ gains: [ 1.439, 1.698 ]
+ - ct: 5438
+ gains: [ 1.713, 1.405 ]
+ - ct: 6366
+ gains: [ 1.952, 1.300 ]
+ # Flat priors: there are no illuminant statistics for these
+ # modules, so every calibrated source is equally likely.
+ priors:
+ - lux: 0
+ ct: [ 2514, 2848, 2870, 3786, 5438, 6366 ]
+ probability: [ 0.167, 0.167, 0.167, 0.167, 0.167, 0.167 ]
+ - lux: 100
+ ct: [ 2514, 2848, 2870, 3786, 5438, 6366 ]
+ probability: [ 0.167, 0.167, 0.167, 0.167, 0.167, 0.167 ]
+ AwbMode:
+ Auto:
+ lo: 2314
+ hi: 7266
+ - Adjust:
+ - Agc:
+...
new file mode 100644
@@ -0,0 +1,42 @@
+# SPDX-License-Identifier: CC0-1.0
+# Calibrated from the AIQB blob shipped with the Windows camera driver of
+# the Surface Pro 8 front camera. The gains are the inverse of the white
+# point of each light source, so they match its matrix.
+%YAML 1.1
+---
+version: 1
+algorithms:
+ - BlackLevel:
+ - Awb:
+ algorithm: bayes
+ colourGains:
+ - ct: 2592
+ gains: [ 0.869, 2.577 ]
+ - ct: 2773
+ gains: [ 1.037, 2.484 ]
+ - ct: 3716
+ gains: [ 1.332, 2.025 ]
+ - ct: 3763
+ gains: [ 1.379, 2.006 ]
+ - ct: 4877
+ gains: [ 1.447, 1.608 ]
+ - ct: 5894
+ gains: [ 1.642, 1.453 ]
+ - ct: 6905
+ gains: [ 1.803, 1.342 ]
+ # Flat priors: there are no illuminant statistics for these
+ # modules, so every calibrated source is equally likely.
+ priors:
+ - lux: 0
+ ct: [ 2592, 2773, 3716, 3763, 4877, 5894, 6905 ]
+ probability: [ 0.143, 0.143, 0.143, 0.143, 0.143, 0.143, 0.143 ]
+ - lux: 100
+ ct: [ 2592, 2773, 3716, 3763, 4877, 5894, 6905 ]
+ probability: [ 0.143, 0.143, 0.143, 0.143, 0.143, 0.143, 0.143 ]
+ AwbMode:
+ Auto:
+ lo: 2392
+ hi: 7805
+ - Adjust:
+ - Agc:
+...
Both sensors are the cameras of the Surface Pro 8, the ov13858 at the back and the ov5693 in front, behind the Intel IPU6. With no tuning file of their own they fall back to uncalibrated.yaml, which has grey world AWB and no colour correction, and a white surface comes out with a green cast. The colour gains are the ones the module vendor ships in the AIQB blob that comes with the Windows camera driver of this machine, six light sources for the ov13858 (2514 K to 6366 K) and seven for the ov5693 (2592 K to 6905 K). Each gain is the inverse of the calibrated white point of its light source, so the table and the matrices in the blob cannot disagree. The priors give every calibrated source the same probability, as there are no illuminant statistics for these modules. The blob also carries a colour matrix per light source, and those are left out. Without a chart there is nothing to check them against, and on this machine they push the same neutral surface from R/G 0.981, B/G 1.008 to 0.959 and 1.017 while doubling the saturation of the scene: more colourful, not demonstrably more accurate. They can come back once the gains have been verified against a known illuminant. Tested on a Surface Pro 8 with the software ISP, exposure and gain set by hand so that AGC does not move between runs. Under a 5700 K LED the AWB settles at 5702 K and a white sheet reads R/G 0.981 and B/G 1.008. Signed-off-by: Emfox Zhou <emfox@debian.org> --- src/ipa/softisp/data/meson.build | 2 ++ src/ipa/softisp/data/ov13858.yaml | 40 +++++++++++++++++++++++++++++ src/ipa/softisp/data/ov5693.yaml | 42 +++++++++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 src/ipa/softisp/data/ov13858.yaml create mode 100644 src/ipa/softisp/data/ov5693.yaml