libcamera: ship the IMX896 colour tuning (r6)
Some checks failed
image / image (push) Failing after 4m4s
Some checks failed
image / image (push) Failing after 4m4s
Adds imx896.yaml (CCMs for 2800/4000/5750 K) so the main camera gets real colour instead of the uncalibrated fallback. The matrices are numeric calibration data read out of the stock Android tuning blob - measured spectral response of this sensor, not authored expression - and are shipped by the project owner's decision, consistent with the vendor-derived data this image already carries. Durable replacement is to measure our own from a colour chart. Note the file lists Adjust/Agc/Af as well as BlackLevel/Awb/Ccm: a sensor-specific tuning file REPLACES the fallback's algorithm list, so omitting them silently disables auto-exposure and autofocus. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
236015ef36
commit
b48702225b
2 changed files with 54 additions and 1 deletions
|
|
@ -3,7 +3,7 @@ maintainer="Robert Mader <robert.mader@collabora.com>"
|
||||||
pkgname=libcamera
|
pkgname=libcamera
|
||||||
_pkgver=0.7.2
|
_pkgver=0.7.2
|
||||||
pkgver=9999$_pkgver
|
pkgver=9999$_pkgver
|
||||||
pkgrel=5
|
pkgrel=6
|
||||||
pkgdesc="Linux camera framework"
|
pkgdesc="Linux camera framework"
|
||||||
url="https://libcamera.org/"
|
url="https://libcamera.org/"
|
||||||
arch="all"
|
arch="all"
|
||||||
|
|
@ -53,6 +53,7 @@ _tuning_files="
|
||||||
imx376.yaml
|
imx376.yaml
|
||||||
imx519.yaml
|
imx519.yaml
|
||||||
imx858.yaml
|
imx858.yaml
|
||||||
|
imx896.yaml
|
||||||
s5k3l6xx.yaml
|
s5k3l6xx.yaml
|
||||||
s5kjn1.yaml
|
s5kjn1.yaml
|
||||||
"
|
"
|
||||||
|
|
@ -206,6 +207,7 @@ dce81c2863ff6b9374115325f4af14ac5d396a6e2aee12f87d55a47d1d0bda860ae2af5a9d6885b1
|
||||||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx376.yaml
|
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx376.yaml
|
||||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f imx519.yaml
|
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f imx519.yaml
|
||||||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx858.yaml
|
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx858.yaml
|
||||||
|
821f4ebfe73b98bade5ee44696680693370a33f076466d662b6bc1c6ffef3c5bd5b1f7a7bd8529d1df63ae58299e770e175dcda9a67f8b0796a724e6e90be0a5 imx896.yaml
|
||||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f s5k3l6xx.yaml
|
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f s5k3l6xx.yaml
|
||||||
d59020e62520ee622282c85ce7bcdfe453c99becf48cc1005c5f8a4bb8b2511b19c89f38fb3c994e7c6a79d1f84e2ed5f5a09b4c5bdc1dc4a44b071dbccf0d44 s5kjn1.yaml
|
d59020e62520ee622282c85ce7bcdfe453c99becf48cc1005c5f8a4bb8b2511b19c89f38fb3c994e7c6a79d1f84e2ed5f5a09b4c5bdc1dc4a44b071dbccf0d44 s5kjn1.yaml
|
||||||
"
|
"
|
||||||
|
|
|
||||||
51
aports/temp/libcamera/imx896.yaml
Normal file
51
aports/temp/libcamera/imx896.yaml
Normal file
|
|
@ -0,0 +1,51 @@
|
||||||
|
# libcamera softISP tuning for the Fairphone 6 main camera (Sony IMX896).
|
||||||
|
#
|
||||||
|
# CCMs extracted from the FP6 stock Android tuning blob
|
||||||
|
# com.qti.tuned.fp6_tsp_imx896.bin (vendor_a.img, sha256 0500766f...c1a5d29f),
|
||||||
|
# CamX cc13_ope_v2 module, tree root at 0x2709fe: 3 lux zones, 3-5 CCT
|
||||||
|
# regions each, offsets all zero, rows sum to 1.0. This file carries the
|
||||||
|
# BRIGHT zone (lux-index trigger 1-200) — the true-color tuning, same
|
||||||
|
# convention as the sibling ov13b10.yaml. Note the bright zone has only
|
||||||
|
# three CT nodes and merges D50/D65 into one 4800-6700 K region (node
|
||||||
|
# placed at its 5750 K midpoint); the lowlight zone has proper 5000/6500 K
|
||||||
|
# nodes but at reduced saturation (chroma-noise hiding) — see
|
||||||
|
# chromatix/imx896-ccm-awb-extracted.txt for all 12 matrices.
|
||||||
|
# CT nodes = the chromatix CCT trigger midpoints: 2800 (A), 4000 (TL84),
|
||||||
|
# 5750 (merged D50/D65 region).
|
||||||
|
#
|
||||||
|
# No blackLevel is set: the IMX896 pedestal has not been measured on this
|
||||||
|
# hardware and no datasheet value is available (the softISP then estimates
|
||||||
|
# it dynamically per frame). Once a dark-frame measurement exists, add
|
||||||
|
# - BlackLevel:
|
||||||
|
# blackLevel: <16-bit value>
|
||||||
|
#
|
||||||
|
# PROVENANCE / LICENSE: the matrices are numeric calibration data read out
|
||||||
|
# of the proprietary vendor blob (measured spectral response of this
|
||||||
|
# sensor, not authored expression). Shipping decided 2026-08-17 by the
|
||||||
|
# project owner, consistent with existing practice in this image; NOT
|
||||||
|
# marked CC0. Durable replacement: measure our own matrices from a colour
|
||||||
|
# chart with libcamera's tuning tooling.
|
||||||
|
%YAML 1.1
|
||||||
|
---
|
||||||
|
version: 1
|
||||||
|
algorithms:
|
||||||
|
- BlackLevel:
|
||||||
|
- Awb:
|
||||||
|
- Ccm:
|
||||||
|
ccms:
|
||||||
|
- ct: 2800
|
||||||
|
ccm: [ 1.593410, -0.552769, -0.040641,
|
||||||
|
-0.166429, 1.170414, -0.003985,
|
||||||
|
0.004114, -0.855526, 1.851411 ]
|
||||||
|
- ct: 4000
|
||||||
|
ccm: [ 1.612519, -0.785270, 0.172751,
|
||||||
|
-0.110672, 1.189965, -0.079293,
|
||||||
|
0.091939, -0.965137, 1.873197 ]
|
||||||
|
- ct: 5750
|
||||||
|
ccm: [ 1.900000, -0.581250, -0.318750,
|
||||||
|
-0.292500, 1.778126, -0.485626,
|
||||||
|
0.014573, -0.734843, 1.720270 ]
|
||||||
|
- Adjust:
|
||||||
|
- Agc:
|
||||||
|
- Af:
|
||||||
|
...
|
||||||
Loading…
Reference in a new issue