撒萌萌

 

DE2_CCD中bayer图像格式转化为30位标准RGB格式详解

CIS mt9m011使用的是bayer颜色格式,如图1所示(黑的地方像素值为0)。奇数行包括green和red颜色的像素,偶数行包括blue和green颜色的像素。奇数列包括green和blue颜色的像素,偶数列包括red和green颜色的像素。

                                                           图1

 过程总述:采用行缓冲+流水线的处理方式,将前一级抓取到的行数据(bayer color pattern),实时转换成标准的30位RGB数据并进行适当的下采样,以便于后继的图像处理及显示。

 

       首先调用一个altshift_taps 的megafunction,altshift_taps 可以作为数据移动寄存器组,经常在图像处理程序中用到。采集进来一系列像素点数据,需要同时对2行像素点同时进行处理时,就可以用这个altshift_taps.共2个taps,每个taps数据宽度为图像每行像素点的个数(1280)。(针对这个megafunction做一下波形仿真就容易理解了)。

      

      在格式转换时,用到4个量:

mDATA_0:第M行第N列的像素

mDATAd_0:第M行第N-1列的像素

mDATA_1:第M+1行第N列的像素

mDATAd_1:第M+1行第N-1列的像素

4个量组成一个以mDATA_0(位于左上角)为核心的模板:

 mDATA_0  mDATAd_0
 mDATA_1  mDATAd_1

 模板中必定包含一个R、一个B、2个G像素点,那么R作为当前像素mDATA_0的R值,B作为当前像素mDATA_0的B值,取2个G的平均值作为当前像素mDATA_0的G值(通过取G的高10位,舍去最后一位来实现)。对这bayer颜色格式图,任取一个颜色的像素作为核心元素套进模板,这样就可以很好的理解RAW2RGB程序中关于图像格式转化的那部分代码了。

posted on 2011-10-23 20:08  撒萌萌  阅读(1207)  评论(0编辑  收藏  举报

导航