ISP——CSC

CSC简介

CSC-coloer space convert,也有的地方叫CSM(color space matrix),通过一些线性变化,将原本图像的颜色空间转换到其他的颜色空间, 常见的有RGB2YUV,RGB2SV等等,如下图是MATLAB文档中对CSC的定义

ISP——CSC_第1张图片

但是通常在ISP的Pipeline中用到的CSC转换只有RGB2YUV,然后有一些主控(很多没有这个)设计的时候在CCM之后会有一个RGB2HSV的转换,以便进一步通过色度和饱和度两个层面对颜色做进一步的处理。

那么ISP要实现RGB2YUV转换就必定会有一个转换公式,通常在网上查这个公式,可能会查到不同的转换公式,这是因为各个转换公式的的标准不同,通常我们采用BT的标准,也就是国际电信联盟指定的标准,如下图分别罗列了BT601,BT709和BT2020三个标准,具体在选用的时候根据需要选择一个就行了。

BT601

ISP——CSC_第2张图片

BT709

ISP——CSC_第3张图片

BT2020

ISP——CSC_第4张图片

以上就是三个标准给出的转换公式的部分截图,感兴趣的同学也可自行上网搜完整的文档学习。

YUV的作用

ISP——CSC_第5张图片

针对为什么pipeline中需要这么一个转换将RGB转为YUV,个人总结为三点:

  1. YUV是早期欧洲定义的一种信号格式,主要是为了解决黑白电视和彩色电视过渡时期的信号兼容问题,黑白电视只需要亮度值,不需要彩色信号,而彩色电视既需要亮度信号也需要色彩信号,所以如果直接使用RGB就会带来兼容问题,而采用YUV信号,黑白电视不处理彩色信号即可;
  2. 可以将Y和UV分开处理,即将亮度信号和色度信号分开处理,这样更符合HVS,因为本专题前面的博文也提到过HVS中人眼对亮度信号更明高,对色度信号相对不明感,那么在去噪等一些处理的时候就可以针对不同层面的信号做不同强度的处理,从而最大程度的保护图像效果;
  3. 为后续的数据压缩做准备,因为通常现在用的多的MJPG和网络传输用的H264和H265等信号都是基于YUV信号的基础上做进一步的数据压缩得来的。
    ISP——CSC_第6张图片

YUV简介

YUV中Y表示亮度信号,UV表示色度信号也就是色差信息,通常查资料还会出现YCrCb这种信号,其实YCrCb是数字信号时代定义的一种色差信号,是通过YUV加上一定程度的offset得到的,使得色差数据都大于0,大多数情况下已经不对二者进行区分了,现在提到的YUV其实都是指的YCrCb格式,只是习惯原因通常还是会直接说是YUV。

YUV格式有很多种类,如下图是微软WindowsAPI文档中对YUV的一些宏定义

ISP——CSC_第7张图片

图中的那些数据格式都是YUV格式,而它们各自的区别主要就是采样比和信号的排列循序。

采样比例分类

ISP——CSC_第8张图片

如图是三种最常见的采样比例,黑色实心点为Y分量,空心的圆圈为UV分量:

  • YUV444:完全采样,即每一个Y信号对应的UV信号都采样,没有损失任何信号;
  • YUV422:两个Y信号公用一个UV分量,及4个有分量对应2个U和2个V分量,色度信号损失一部分从而减小数据量;
  • YUV420:四个Y分量公用一个UV分量,在422的基础上进一步降低数据量。

其实从定义看YUV420可能叫411更好理解,但是为啥又叫420呢?因为还有一种基本没见过(也可能是作者见识短)的格式叫YUV411,他和420一样也是4个Y对应一个UV,不同的是411只在水平方向对UV降采样,因为基本不用就不做过多介绍,感兴趣的同学可以自行上网搜索。

信号排列分类

从微软文档中可以看到有一个YUY2的格式,其实这种格式又叫YUYV格式是一种422的采样格式,然后还有一种YVYU的格式也是422采样,两者又有什么不同呢,其实就是信号排列不同,比如在内存中YUYV格式存储为Y1U1Y2V1Y3U2Y4V2而YVYU则存储为Y1V1Y2U1Y3V2Y3U2这种方式都是Y和UV交替存储,还有一种常见的存储方式就是先将所有的Y分量存储好,然后再去存储UV分量,当时后续的UV分量的排列又会有不同的变化。这种排列组合方式很多也就带来的不同的格式的出现,这里就不在进一步做介绍了,有兴趣的同学可以自行上网了解。

相关链接

  • zhihu: ISP图像处理 - 知乎 (zhihu.com)
  • CSDN:ISP图像处理_wtzhu_13的博客-CSDN博客
  • Bilibili:食鱼者的个人空间_哔哩哔哩_Bilibili
  • Gitee:ISPAlgorithmStudy: ISP算法学习汇总,主要是论文总结 (gitee.com)

你可能感兴趣的:(ISP图像处理,接口隔离原则,matlab,算法)