libcamera: stabilize AWB with a white point locus clamp + damping (r8)
The softISP AWB is pure gray world, so panning swings ColourGains with the frame average (white wall renders green when the frame is warm-dominated, dark desk renders red when cool-dominated) and the CCM, interpolated over a CT estimated from those gains, amplifies and quantizes the swings. Patch 0015 (ours, original work) adds optional per-sensor Awb tuning to the simple IPA: a piecewise-linear locus of calibrated illuminant white points in gain space that the gray-world estimate is clamped to (clampMargin), a per-stats-frame EMA on the applied gains (damping) with a fast-converge path for persistent illuminant changes, and CT interpolated from the applied gains' position along the locus - on the same scale as the tuning file's ccms table - instead of the generic estimateCCT(). Tuning files without whitePoints keep the previous behaviour exactly, so every other sensor is unaffected. imx896.yaml gains the locus from the stock tuning blob's 10-point per-illuminant AWB calibration (white points and their exactly reciprocal gain triplets, cross-validated): the 7 on-locus points as nodes, the 3 fluorescent points admitted via clampMargin 0.35. The 5000 K label is the blob's own proven anchor; 2856 K (A) is locked by the fluorescent trio projecting onto the 2856-5000 chord at ~3960 K (TL84); the rest are geometry-derived approximations. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
a5e3d1626c
commit
48cedac3c3
3 changed files with 437 additions and 2 deletions
|
|
@ -3,7 +3,7 @@ maintainer="Robert Mader <robert.mader@collabora.com>"
|
|||
pkgname=libcamera
|
||||
_pkgver=0.7.2
|
||||
pkgver=9999$_pkgver
|
||||
pkgrel=7
|
||||
pkgrel=8
|
||||
pkgdesc="Linux camera framework"
|
||||
url="https://libcamera.org/"
|
||||
arch="all"
|
||||
|
|
@ -72,6 +72,7 @@ source="https://gitlab.freedesktop.org/camera/libcamera/-/archive/v$_pkgver/libc
|
|||
0012-libcamera-software_isp-af-Harden-the-lens-control-ha.patch
|
||||
0013-libcamera-software_isp-af-Add-AfMode-and-focus-witho.patch
|
||||
0014-libcamera-software_isp-af-Re-baseline-the-scene-refe.patch
|
||||
0015-ipa-simple-awb-Add-optional-white-point-locus-clamp-.patch
|
||||
qcam.desktop
|
||||
$_tuning_files
|
||||
"
|
||||
|
|
@ -199,6 +200,7 @@ c8ddc64ab943d9b215f4c997f2629e4403744c0ddb5de88cd42d384506a27c0762191eddd4d13559
|
|||
8734e27966bd1bc5a4b0324a3d8a3ee4ab371f6d1536500b2bb44d49bde874c3fd6f244312332226c352e4716ba12fb72bf51e64b9e97cf6fa646aa6dfef3277 0012-libcamera-software_isp-af-Harden-the-lens-control-ha.patch
|
||||
dce81c2863ff6b9374115325f4af14ac5d396a6e2aee12f87d55a47d1d0bda860ae2af5a9d6885b126e20a12b7f3f40e49a2b9d738f94c04177bff6149da64e1 0013-libcamera-software_isp-af-Add-AfMode-and-focus-witho.patch
|
||||
18ed6a03fbe3bcd750fac280831d1e62f2a2e35f76880535f2dc16ff196308512535e077ab0d8a923ad241090713edb53d1777e0dd6e5dcc10de495db1277052 0014-libcamera-software_isp-af-Re-baseline-the-scene-refe.patch
|
||||
b01deba75c093ad4312ffa829ddbe5d745f2dfb199a3f00cdd52a8cb972fbe58bfb7cd94fa825b30d65047ac0c371ecf3ec0d0e356f090119d11086552f514be 0015-ipa-simple-awb-Add-optional-white-point-locus-clamp-.patch
|
||||
22167a4eceb6d1b40b0b7c45fdf116c71684f5340de7f767535cb8e160ad9d2ae0f00cb3d461f73a344520a48a4641cf46226841d78bee06bfbfd2a91337f754 qcam.desktop
|
||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f hi846.yaml
|
||||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx355.yaml
|
||||
|
|
@ -207,7 +209,7 @@ dce81c2863ff6b9374115325f4af14ac5d396a6e2aee12f87d55a47d1d0bda860ae2af5a9d6885b1
|
|||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx376.yaml
|
||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f imx519.yaml
|
||||
55dab9dcb9b1982143b9d63e4e51138c5bffd7c8f4a8e4e122750b3ad9d475446956bc297d9f564819ade4be75a575d06633a064e14f8ba3ef77986783c5f067 imx858.yaml
|
||||
cbb6204657fdb4bc35e9ee686200900291c8bb74678d3f19f8ed30120e5d939836534f8724726c58e8b7aa2eb99e99edace96350b11472fbbf4878cc1025c3f5 imx896.yaml
|
||||
918bc5fc2035ba32af617a9f00a98dda1b8272cab04d7cea12bdf26b7e0d9811a8c8c2061191e00174d01a1ad991a3327bf418ce89dfb3610d06787f14389fa0 imx896.yaml
|
||||
2ee566653b17d565d2c0de67cbe6ebad25df5aac6051cad78e6bae52016fa2ca0247e964d735ac776b3e0bd447ead9c4fcb26cd7629228cdba3ceb91b46f378f s5k3l6xx.yaml
|
||||
d59020e62520ee622282c85ce7bcdfe453c99becf48cc1005c5f8a4bb8b2511b19c89f38fb3c994e7c6a79d1f84e2ed5f5a09b4c5bdc1dc4a44b071dbccf0d44 s5kjn1.yaml
|
||||
"
|
||||
|
|
|
|||
Loading…
Reference in a new issue