(一)综述

1. 基础调色方案

系统的颜色主要由AWB+CCM+GAMMA控制,颜色风格为整个色域内一致的风格,指的是由CCM的3x3矩阵将sensor的native色彩空间(设备相关的色彩)转换到sRGB 标准定义的色彩空间(设备无关的色彩)。特点是Sensor的响应被线性扩展到目标空间,即各种颜色获得同样的线性扩展。颜色的呈现随着sensor的光谱响应特性的不同而变化。
所有颜色的饱和度会随着CCM 变大和变小,不同的色调之间可能发生一些冲突,即优先调节某些色调会导致相邻的色调无法调整到位。由于3x3 矩阵的原因,暗处,中间亮度,高亮区域的颜色的调节是一致的,如果需要对三个亮度区域做不同的颜色调整,那么就不能满足需求。
如蓝色在高亮区域,饱和度比较低,在暗处饱和度比较高。而黄色在高亮区域饱和度比较高,在暗处饱和度比较低。

2. 高级调色方案

系统的颜色主要由AWB+CCM+CLUT+GAMMA+CA 控制,颜色风格可以按需调节。
使用高级调色方案可以调试出不同的颜色风格,比如对于饱和度高的颜色处理方法的不同可以产生不同的效果。
由于CCM矩阵3x3的局限性,可能会存在sensor上面的RGB,乘以CCM矩阵后,颜色饱和的情况。这种情况下,sensor能够感知到的色域就没有体现出来,少掉了一部分。
下面有两种映射的风格,根据不同的sensor去选择。
色域边缘的颜色向色域内映射的风格,指的是在CCM达到的颜色的基础上,将饱和度高的区域的颜色向色域内映射。特点是饱和度高的颜色的饱和度会降低,避免RGB 中有值发生小于0或者大于1 的现象。能将更多的高饱和颜色的变化保留下来,达到色域扩展的效果。适用于光谱响应比较好的sensor。这种调试目标会让饱和度中低的颜色在CCM 的作用下得到很好的表现,优先保留饱和度中低的颜色层次。
色域边缘的颜色向色域外映射的风格,指的是在CCM达到的颜色的基础上,将饱和度高的区域的颜色向色域外映射。特点是饱和度高的颜色的饱和度会增加,会更容易发生RGB 中有值小于0 或者大于1的现象。可以让颜色更鲜艳,突出画面中的主体。适用于光谱响应比较差的sensor,饱和度由CLUT补足,可以避免CCM的系数过大。这种调试目标会让饱和度中低的颜色在CCM的作用下不过于鲜艳,优先保留饱和度高的颜色层次。

(二)CCM

1. 原理

CCM 标定的原理是,使用sensor抓拍到的24 色卡场景下前18 个色块的实际颜色信息和其期望值,计算3x3的CCM 矩阵。输入颜色经CCM 矩阵处理得到的颜色与其期望值差距越小,则CCM矩阵就越理想。

2. 标定步骤

  1. 拍摄24色卡,调整AE 目标亮度,最亮灰阶(Block 19)的G 分量亮度在饱和值的0.8 倍左右(以12bitRAW数据为例,G分量数值在0xC00-0xD80 之间)。
  2. 框定24色卡的每个色块
  3. 设置当前生效的gamma,设置色块权重(如果针对肤色,可以把肤色的权重选大一点,然后就是红绿蓝的权重也要大一点),差异标准选CIE76 Delta E*ab,如果亮度达不到就autoGain,如果gamma是自定义的,就需要选择BT2020
  4. 点击calibrate进行标定,在result页面可以手动调整色调和饱和度

3. 手动修改CCM

为了保证白平衡不受破坏,参数必须满足条件:
ai0 + ai1 + ai2 = 1
R’中主要应该还是R分量的部分居多,因此必须满足条件:
aii ≥ 1
在满足以上条件的情况下,就可以微调颜色校正矩阵而不致产生破坏性影响。

如果对比发现的红色块的B 分量偏大,导致红色块偏水红色,那么根据公式B’ = a20R+ a21G + a22B,且a20,a21,a22 的正负性分别为负,负,正,当前水红色的R,G,B值的大小顺序为R>B>G,且已知目标标准是(175,54,60),而且a20 + a21 + a22 = 256,因此可以通过三种方式来实现B’减小的目的:

  • 增大a20 的绝对值,同时等量减小a21 的绝对值;
  • 增大a21 的绝对值,同时等量增大a22 的绝对值;
  • 增大a20 的绝对值,同时等量增大a22 的绝对值。

通过这种方式,减小最终红色块的B’分量的值,从而将水红色的红色块校正回来。

(三)CA

1. 原理

CSC模块把RGB转到YUV色彩空间后,CA颜色调整模块支持在YUV 空间进行色域调整的操作。
在 CA模式下,通过下面的公式可以将一个像素点(Y,U,V)映射到另一个像素点(Y’,U’,V’)。
Y’=Y;U’=aU;V’=aV;
其中a 是转换系数,采用这组公式可以在一定程度上保持亮度和色调的恒定,对像素点的饱和度做一个调整。转换系数a 和像素点亮度Y 联系,就可以根据亮度的变化来调整饱和度,达到局部调整饱和度的目的,亮处的颜色更鲜艳,暗处的色噪不明显。

2. 调试方法

通过au32YRatioLut调节亮区和暗区的饱和度,暗区的饱和度可以小一点,减少色噪,亮区的饱和度大一点
通过as32ISORatio根据增益调节饱和度

(四)CLUT

1. 原理

CLUT 是一个改变线性RGB 值的模块,这个模块把用户的颜色调节需求,转化为源和目标RGB对的数据映射关系。
CLUT 是利用线性RGB 空间27x27x27分格的3D LUT 实现复杂的颜色调整操作,比如亮度,饱和度,色调的调整。可以对阴影,中间亮度,高亮区域分别调整。
可以参考此论文 《Strengths and limitations of a uniform 3D-LUT approach for digital camera characterization》

2. 使用方法

  1. 使用源设备和目标设备同时拍摄色卡,获得色卡上面的颜色对
  2. 使用源设备和目标设备同时拍摄同一场景,可以从场景中选择对应的物体表面,可以获得任意颜色对,指导CLUT表的生成。这种方法可以专门优化肤色
  3. 在没有目标设备的情况下,用源设备拍摄场景后,可以选择想调节的颜色表面,然后通过调整HSL参数来获得目标RGB值,指导CLUT表的生成。hue范围+-20,sat范围0.4-1.6 倍,light范围0.6-1.4 倍。

(五)WDR模式下的调试

对于WDR模式,因为CCM容易受到DRC 的影响,容易造成颜色难以矫正。所以对于WDR 模式来说,调整颜色需注意以下三点:

  • 在标准光源下(一般是三组光源,分别是D50,TL84,A 光源)拍标准24色卡,曝光比手动最大,同时也要调整亮度值,避免长帧过曝,采集长帧的RAW数据进行CCM的标定。标定过程中可以适当的降低饱和度,不能选择开启autoGain 功能。
  • 适当减少DRC曲线对图像亮度的大幅度提升,这样DRC对颜色的改变会较弱。此时,图像的亮度会有所降低达不到想要的亮度,这时,可以用gamma对亮度进行适当的提升。这样联调DRC和gamma模块,可以让整体的颜色调节更准确一些。
  • 对于WDR模式,因为大多场景是混合光源场景,容易出现亮处颜色偏色,人脸颜色偏红等问题,除了可以降低饱和度值以外,还可以使用CA 模块对这些区域适当的降低饱和度。

(六)调试注意点

  1. 在修改红色块的B分量时,由于其他颜色的RGB大小顺序可能和红色块的冲突会导致其他色块的最终结果受到影响,所以要注意兼顾其他颜色,尤其是绿色块,肤色块,防止由于修改CCM矩阵带来的其他典型色块的偏色问题。
  2. 对于深肤色和浅肤色这种三个颜色分量的值都差不多的色块,不是特别好单独调节。建议还是将红、绿、蓝这三个单色块的颜色校准确,其他颜色才会准确,因为其他颜色都是这三种颜色的混合色。
  3. 由于参与CCM 标定的样本的影响,CCM的标定结果可能接近最佳而不是最佳。对CCM 标定的结果进行手动调节,可以参考下面的几种做法
    • CCM 主对角线以外元素均为负值会较好。如果a02为正数,会导致饱和度高的红色偏紫,如果a20 为正数,会导致饱和度高的蓝色偏紫。如果遇到这类偏紫的问题时,可以考虑手动将a02 或a20 从接近0 的正数改为比较小的负数。
    • a10 为负值时,a10绝对值越大,CCM后红色的G通道值越小,红色的饱和度越高;a12 为负值时,a12 绝对值越大,CCM后蓝色的G 通道值越小,蓝色的饱和度越高。如果遇到红色或蓝色的饱和度过高的问题时,可以考虑减小a10 或a12的绝对值。
  4. 蓝色红色的误差最好分布在亮度维度上,因为如果红色和蓝色的误差分布在饱和度上,容易过饱和而超出色域。黄色的误差不用在意,因为在色卡中黄色属于这个画面亮度最高的色块,如果这张图片降低一个亮度等级,那么黄色块的颜色误差自然会好一些。

(七)问题定位

1. 局部偏色问题

局部偏色问题首先要分析Raw数据,确认是采集端引入还是后续算法处理引入。推荐灌Raw数据到HiISP 单板,操作PQTools 定位问题原因。

  1. 确认黑电平和RGGB顺序正确
  2. Bypass 或Disable CCM、Gamma、ACM等影响颜色的模块,将AWB 问题和其他模块问题分开。
  3. 打开3A分析工具,手动配置白平衡系数。选择左图中的灰色块,右键选择ApplyResult to Global,当前灰色块期望的AWB增益生效。
  4. 观察图像中灰色区域颜色是否正常。示例图像仅做了Manual AWB,已经出现了局部区域偏粉,说明Raw数据有问题,请向前端追溯。
  5. 如果以上步骤确认Raw数据是正常的,那么需要检查Gamma曲线是否合理。可以在板端配置Manual AWB,仅使能BLC、AWB、Demosaic和Gamma几个模块,开关Gamma对比偏色问题。
  6. 局部偏色问题,还要确认是否混合光源场景。可以用3A分析工具分别选不同的区域手动计算白平衡系数,如果不同区域期望的白平衡增益差异大,说明是混合光源场景。只能通过降低饱和度或者色温权重调整等方式优化颜色表现。

2. 3A分析工具看白色区域是否合理(AWB)

  1. 从统计结果确认统计参数配置是否合理。选择白色块,正常情况CountAll应接近0xFFFF。如果CountAll为0,说明统计模块未找到灰点。

  2. 关闭CrMax等灰点条件自适应功能。

  3. 调整灰点配置参数,调试原则是:上限调大,下限调小,到3A分析工具显示的统计结果,CountAll接近0xFFFF为止。确认是哪个参数引入问题后,WhiteLevel和BlackLevel修改默认参数,Cr等需要调整数组。

  4. 统计模块OK后,确认室内外检测是否正确,如果室内外检测错误,先用Manual的方式配置正确的室内外模式。

  5. 确认检测色温有没有超出色温的上下限。将色温的上限调大,下限调小,观察问题是否有改善。

  6. 确认灰色块有没有在白色区域范围内。

  7. 场景内有多个光源点时,需要排除肤色检测模块对算法的影响。

  8. 仍然不能确定偏色原因时,将算法由Advance设置为LowCost,看能否解决;若不能解决,将Attr的ZoneSel设置为0,看能否解决;若还不能解决,就需要从滤光片、黑电平等模块系统分析。

(八)附录

24色卡每个色块的RGB值以及名称

监控上的颜色标准

判断色彩是否准确的方法是在不同的色温下拍摄24色卡后用imatest软件进行测量。

偏色的判定依据是连接图像坐标中心点和对应的目标方形色块点,得到一条直线,如果对应的圆形camera色块点,在这条直线上,则说明色差较小,方块和圆形的距离越远说明饱和度相差比较大,越近则饱和度相差比较小。

当坐标原点,方块ideal点和对应camera圆点,三点在一条直线上时,色差最小。camera圆点偏离的角度越大,则色差越大。当camera圆点越往外发散,则饱和度越高,越往内收敛,则饱和度越低。

24色卡中重点关注蓝色(13)绿色(14)红色(15)肤色(2)的色偏问题。

色温 imagetestSAT ΔE*abmean ΔE*abmax WBΔC
D75 120%±5% 13 25 2
D65 120%±5% 13 25 2
D50 120%±5% 13 25 2
CWF 110%±5% 13 25 2
TL84 110%±5% 13 25 3
A/H 100%±5% 13 25 3