115、色彩校正矩阵CCM与3D-LUT:色域映射、肤色保护与光源一致性调优
115、色彩校正矩阵CCM与3D-LUT:色域映射、肤色保护与光源一致性调优从一次“翻车”的调试说起去年夏天,某品牌旗舰机在东南亚市场上市前,QA报了一个让我头疼的bug:室内暖光下自拍,人脸发黄得像得了黄疸;切换到户外阴天,肤色又偏青灰,像刚从水里捞出来。更诡异的是,同一场景下,用专业相机拍出来的人脸肤色是正常的。我第一反应是AWB(自动白平衡)没调好。但翻看log发现,AWB给出的色温估算很准,R/G、B/G比值都在目标范围内。问题出在哪?后来我盯着ISP pipeline的调试记录,发现CCM(色彩校正矩阵)模块在作祟——它把AWB已经校正过的颜色,又“二次加工”了一遍,而且对不同光源的响应不一致。这就是典型的“光源一致性”问题。CCM不是万能的,但调不好它,你的整个色彩体系都会崩盘。今天这篇笔记,我就把CCM和3D-LUT那些坑,掰开了揉碎了讲清楚。CCM的本质:一个3x3矩阵的“暴力美学”CCM的核心逻辑很简单:把sensor输出的RGB值,通过一个3x3矩阵变换到目标色彩空间(通常是sRGB或Adobe RGB)。数学上就是:[R'] [a11 a12 a13] [R] [G'] = [a21 a22 a23] [G] [B'] [a31 a32 a33] [B]但别被这个简单形式骗了。实际调试中,这9个系数能让你调到头秃。为什么?因为CCM本质上是一个线性变换,它假设sensor的响