RAW图的bayer格式理解
Bayer是相机内部的原始图片, 一般后缀名为.raw。可以利用一些软件查看, 比如picasa、irfanview、photoshop。
Raw 在输出时具有一定的顺序格式,一般分为四种:

如上,为四种排列格式的rawRGB数据。假设一个sensor的像素是88(分辨率为88),那么这个sensor就有8*8个感光点,每个感光点就是一个晶体管。

格式名由图像中(1,1)和(1,2)决定,如上图为RGGB格式,(1,1)为B,(1,2)为G,则对应BG格式,对应COLOR_BayerBG2RGB。(直白一点的记法就是后两位倒过来,例如GRBG分布为GB格式,BGGR分布为RG格式等等)。
每种格式种存在两个G分量。其中每个分量代表一个piexl,所以GR/BG代表4个piexl,就表示sensor上面的4个晶体管,每个晶体管只采集一个颜色分量,然后通过插值计算出每个piexl的其他分量,目的是降低功耗。
Raw存储格式
raw图目前遇到的有2种存储格式,一种是经过压缩的MIPI raw,另一种是未经过压缩的unpacked raw,通常采集的raw图是10bit的,需要用2个字节来存储,两个字节有16个bit位,这样就有6个bit位为空。
MIPI raw就充分利用了这6个bit位,每5个字节存储4个像素值,如图1.1所示,每格代表两个bit位,前4个红色的格子存储的是第一个像素的高8位,接着4个黄色的格子存储的是第二个像素的高8位,接着4个绿色的格子存储的是第三个像素的高8位,接着4个蓝色的格子存储的第四个像素的高8位,接着1个蓝色的格子存储的是第4个像素的低2位,接着一个绿色的格子存储的是第3个像素的低2位,接着一个个黄色的格子存储的是第2个像素的低2位,最后一个红色的格子存储的是第1个像素的低2位。

unpacked raw的存储格式如图1.2所示,每个格子代表1个bit,绿色格子代表低10位被占用,白色格子表示高6位为空

RAW8
用8bit表示G/R/G/B中的一个分量。
RAW10
用10bit表示G/R/G/B中的一个分量,但是数据中是16bit,高6位没用,对应上面的unpacked raw的存储方式。
RAW12.
用12bit表示G/R/G/B中的一个分量,但是数据中是16bit,高4位没用。
这里要注意的是, bayer每个像素的值是8位的. 但是有的相机的bayer格式却有10位, 12位以及14位, 16位的, 那么则需要将高于8位的数据转换为8位数据。 拿12位数据来说, 有的是取高8位或是低8位, 那么这样就会出现一个问题, 这张图像会有一个斜度, 不是偏亮就是偏暗, 或是出现其它颜色问题,需要后期进行校正。
5087

被折叠的 条评论
为什么被折叠?



