浅谈ISP-CCM

一.概述

    CCM是ISP pipeline 中有关颜色调整的重要模块,介绍CCM前先了解人眼以及半导体对于颜色的感光情况。

人眼视网膜上有三种锥细胞(cone)用于感受蓝、绿、红三种频率的色光,一种杆细胞(rod)只在低照度条件下感应亮度信息。人眼对波长为绿色光吸收率可达20%,对波长为橙色光的吸收率在4%左右,对蓝色光的吸收率最高只有2%左右。人眼对480~640nm区间色光的色调分辨力较高,其中,对500nm (青绿色)和600nm(橙黄色)两个波长来说,只要波长变化约1nm,便可分辨出色调的变化。由此可见有的cfa中有两个G或者两个Y的滤波器是有一定道理的(RGGB,RYYB)。

    对于半导体来说,一个典型的硅材料sensor在500nm处对蓝、绿光的响应几乎是相等的,但是人眼的蓝色锥细胞对500nm的蓝绿光响应却几乎为零,两者差异较大。同时不同的厂家其所制作的sensor也会有所不同,对于不同波段的R,G,B也会不同。

    除此之外,其他光学器件,例如镜头,镜头镀膜,IRCUT的频率响应都会对颜色还原造成偏差。因此需要对所有光学器件综合得到的颜色进行矫正,以符合人眼的感知。

二.CCM矫正

    CCM是在RGB域中所做的,主流的方式是用一个3*3的矩阵将输入的RGB映射为一个新的像素值R’ G’B’。

为了保持awb计算结果的白平衡,需要让a00+a11+a22=1。由于输入颜色可以有上千万种组合,而CCM参数却只有9个,实际上只能优先保证几个最重要的颜色看起来符合人眼要求,而不可能保证所有颜色在所有条件下都是最优的。后续可用其他算法模块替换或者补充比如:CLUT,颜色映射的方式,实现上千种颜色的映射的调整。

    实践中通常使用X-Rite 24色卡上的18个彩色色块为标准计算校正系数,即使用拍摄不同色温下的色卡,得到图像后,提取18个色块的平均颜色,构成输入矩阵S,用标准的RGB值作为目标S’:

S'=M·S

通常直接解的M可使用最小二乘法,但是有a00+a11+a22=1时,需要使用带约束条件的最小二乘法来解了。

当然有时为了满足某些颜色的需要:如美颜、个性色调、客户偏好等,需要手动去调整CCM矩阵。但是此时,我们看到的RGB图像是经过AWB、CCM、Gamma等非线性处理后的,如下公式所示。因此当微动(大动)矩阵时可能会有较大(微动)的波动,同时,CCM矩阵需要和Gamma绑定,即当gamma变化后,CCM需要重新调整。

浅谈ISP-CCM_第1张图片

更多内容可关注我的公众号:我爱图像处理

你可能感兴趣的:(图像处理,大数据,机器学习,图像处理)