网上关于RGB Raw data的介绍的比较混乱,现整理了一下给大家发出来,
先看看网上的一种说法“摄像头的数据输出格式一般分为CCIR601、CCIR656、RAW RGB等格式,此处说的RGB格式应该就是CCIR601或CCIR656格式。而RAW RGB格式与一般的RGB格式是有区别的。”
大嘴评述:这里的摄像头严格来说应该是传感器(sensor),个人觉得CCIR601和CCIR656更应该看做是一种标准和计算方式,而不应该是数据格式,这里我觉得有些误导,不必生就,具体关于CCIR601和CCIR656感兴趣的朋友请自行查阅资料,这里只做简单介绍。
我们知道,Sensor的感光原理是通过一个一个的感光点对光进行采样和量化,但在Sensor中,每一个感光点只能感光RGB中的一种颜色。所以,通常所说的30万像素或130万像素等,指的是有30万或130万个感光点。每一个感光点只能感光一种颜色。
但是,要还原一个真正图像,需要每一个点都有RGB三种颜色,所以,对于CCIR601或656的格式,在Sensor模组的内部会有一个ISP模块,会将Sensor采集到的数据进行插值和特效处理,例如:如果一个感光点感应的颜色是R,那么,ISP模块就会根据这个感光点周围的G、B感光点的数值来计算出此点的G、B值,那么,这一点的RGB值就被还原了,然后在编码成601或656的格式传送给Host。
而RGB RAW格式的Sensor则是将每个感光点感应到的RGB数值直接传送给Host,由Host来进行插值和特效处理。由此可见RGB RAW DATA才是真正的原始数据。
RGB RAW DATA是指原始的数据,单个pixle只能感应一种颜色。
如果这个原始数据的排列格式是 RGRG/GBGB排列的,我们叫做 Bayer pattern(这个最最常见)。所以 Bayer RGB是属于 RGB RAW data的,但是 RGB RAW data不一定是bayer pattern,不同厂家的sensor,其RGB RAW DATA排列是不同的, 不过对于我们来说不必过于关心扫描格式,反正厂家都会提供API.
下图是找到了一个从14bit RGB RAW DATA获取10bitRGB RAW DATA的简单示意流程图,
【10bit Raw RGB: 就是说用10bit 去表示一个R, G, 或者B, 通常的都是用8bit 的. 所以你后面处理时要把它转换为8bit 的, 比较简单的方法就是将低两位去掉, 因为低两位的信号代表范围很小(0~3), 所以可以忽略不计的. 当然, 你也可以根据转换表去转换, 那比较复杂.】
![传感器原始图像格式:Bayer <wbr>RGB <wbr>和RGB <wbr>RAW 传感器原始图像格式:Bayer <wbr>RGB <wbr>和RGB <wbr>RAW](https://i-blog.csdnimg.cn/blog_migrate/a298c43f25e8856e3bfd7804dfdf0e88.jpeg)