颜色校正矩阵(CCM)的算法设计 | ccm gamma
概要:1CCM定义及出现的原因;2CCM的算法设计;3注意事项1.CCM是什么以及出现的原因1.1CCM是什么ColorCorrectionMatrix(CCM)是一个由至少俩矩阵合在一起的矩阵。如图1所示一般的ISP流程,在去马赛克过后就进行了CCM。之后再进行Gamma校正。图1ISP示例Gamma之后ISP中的空间就变成了非线性sRGB空间了。但必须在这之前进行sensor_RGB空间到XYZ空间的转换再到线性sRGB空间的转换。1.2CCM出现的原因是因为颜色空间的转换。如图2所示是CCM之前和之后的对比图。可以明显看出差别。图2CCM之前和之后对比图2CCM的算法设计图3可知,由sensor_RGB...
概要:1 CCM定义及出现的原因;2 CCM的算法设计;3 注意事项
1. CCM是什么以及出现的原因
1.1 CCM是什么
Color Correction Matrix (CCM)是一个由至少俩矩阵合在一起的矩阵。
如图1所示一般的ISP流程,在去马赛克过后就进行了CCM。之后再进行Gamma校正。
图 1 ISP示例Gamma之后ISP中的空间就变成了非线性sRGB空间了。但必须在这之前进行sensor_RGB空间到XYZ空间的转换再到线性sRGB空间的转换。
1.2 CCM出现的原因
是因为颜色空间的转换。如图2所示是CCM之前和之后的对比图。可以明显看出差别。
图2 CCM之前和之后对比图2 CCM的算法设计
图3可知,由sensor_RGB空间分别经过 和 以及 校正完成。其中,sensorRGB空间我们称之为“源色彩空间",非线性sRGB空间称之为“目标颜色空间”,目前,我们能够得到源色彩空间的“不饱和图”对应的24色色快,也有非线性sRGB空间的“饱和图”对应的24色色快,而 和 的数值是已知的,那么,只需要将非线性sRGB空间的图片经过反 校正然后再转换到XYZ空间,那时就可以和sensorRGB数值联立从而求得矩阵 ,继而求得 。
图 3 空间转换示意图具体算法大致分两类:模型法和经验法。模型法是希望通过设备呈色机理进行研究,因为用的少,在此不作介绍。经验法是一种“暴力”法,直接通过输入和输出期望得到一个映射,本文将介绍两个典型算法,多项式拟合和三维查找表(3D-LUT)法。
2.1 多项式拟合(最小二乘)
首先对非线性sRGB做反Gamma校正得到线性sRGB,
=
之后,将线性sRGB转换至XYZ空间,
= *
这时我们可以得到如下式,
其中,m是色块的大小,如果取24色卡,则m=24,n为每个色块的平均颜色值,n=3,显然m>n,这是过定问题,可得,
求得,
总结:
这种算法是ISP中最常用到的拟合方法,简单有效。但毕竟是非线性映射的线性模...