基于FPGA的Bayer彩色自动白平衡设计与实现
G和B三色光后,分别投向三块CCD,这样在信号输出时就可以获得每个像素的三基色信息。Bayer格式的CCD感光表面覆盖有如图3所示的CFA,CFA上每个格点仅允许通过一种颜色分量,使每个感光单元只产生一个分量的灰度值。要获得每个像元的[r,g,b]信息,需要用到色彩空间插值。
Bayer CCD相机与全色相机相比,有价格相对便宜、要求进入光线的照度低、输出帧频高等优点,被广泛应用于工程实践中。本文所用的Bayer CCD相机有效像元数为1 024×1 024,帧频为30 Hz,像素时钟为45 MHz,像素位深度为8 bit,以Camera Link协议输出。
Camera Link是专门为数字摄像机提出的一种工业级的高速数据连接与传输协议。采用LVDS(Low Voltage Differential Signaling)技术,使用较少的连线,却能达到理论上最大1.923 G b/s的传输速率,并且传输距离比普通的传输方式更远。Camera Link标准中包含Base、Medium、Full 3种规范,其中Base规范只需要一个26针的连接器即可实现。26 bit信号中包括:5对图像数据信号(X0,X1,X2,X3,Xclk),X0~X3传递图像数据,Xclk传递像素时钟;4对相机控制线(CC1,CC2,CC3,CC4),相机制造商可以自由定义各控制信号的功能以满足其特殊产品;2对异步串行通信信号线(SerTC,SerTFG),可用于相机和图像采集卡之间的异步串行通信;2对屏蔽线,直接接地即可。在本文所述的系统只需要用到5对图像数据信号线。
本文采用的Camera Link协议芯片为DS90CR288A和DS90CR287,最高工作频率为85 MHz,能满足系统设计要求。DS90CR288A把接收到的4路LVDS数据信号和1路LVDS时钟信号,分别转换为28 bit的CMOS/TTL并行数据和像素时钟信号。4路LVDS数据线能传递28 bit数据,传递频率是LVDS时钟信号的7倍,最高可达595 MHz。28 bit数据中包括24 bit像素信号,1 bit帧同步信号(FVAL)、1 bit行同步信号(LVAL),1 bit数据有效信号(DVAL)和1 bit保留信号。在FPGA设计中,只需要应用帧、行同步信号,像素时钟和有效的像素信号即可完成对图像数据的处理。DS90CR287的工作过程和DS90CR288A相反,把数据和同步信号转换为LVDS信号传递出去。
系统用的主芯片为Altera公司的Cyclone III系列芯片EP3C16Q240C8,其具有丰富的逻辑资源和触发器资源,内嵌大量乘法器和丰富的RAM资源,特别适合时序操作和大量数据的并行运算。系统还用到容量2 MB的2块SRAM,最短访问周期10 ns,可以把处理后的图像数据存于其中,供板上其他系统使用。
3 EDA设计
FPGA的设计采取自顶向下的模块化设计方法,系统的一级框图如图4所示。
写SRAM模块根据帧、行同步信号、像素时钟以及行、列偏移量,获得有效像素的起止,把像素数据存入SRAM。白平衡处理过程就在写SRAM模块中完成。“双向开关”由FVAL_In信号触发,起到信号线切换的作用,完成乒乓操作。当写SRAM模块把数据写入SRAM_A的同时,读SRAM模块从SRAM_B读取数据,当写SRAM模块把数据写入SRAM_B的同时,读SRAM模块从SRAM_A读取数据。读SRAM模块读取SRAM中的像素数据并以Camera Link 协议的形式传出。从整体效果上看,数据能源源不断地流过系统。
写SRAM模块中白平衡过程如图5 所示。
电路中色温校正模块,色温统计模块和增益计算模块连接形成一个负反馈回路,能根据场景色温的变化,实时修正增益系数,使修正后的图像稳定在白平衡状态。
在色温统计的过程中没有必要对全平面像素做统计,为了编程和设计的方便,本文在每个4×4的块中选两点做色温统计,如图3中的(2,1)和(1,2)两个点。在色彩空间转换之前需要进行色彩插值,恢复待测像素的三原色数据[r,g,b],用线性插值法恢复的算法如下。
恢复每一个像素的[r,g,b]值,需要用到相邻的3×3范围的像素值,然而相机数据是逐行依次输出的,所以必须暂存至少3行的像素值。本文引入一块8 KB的DPRAM,可以存储8行的像素信息。色温校正模块把数据写入外部SRAM的同时也把数据存入了内部的DPRAM,存满了8 KB的空间后,从地址0重新开始写入。把DPRAM分为上下两半页,每存好半页后, Bayer转RGB模块便从刚存的半页中寻址,读取数据,进行插值转换。
用Quartus II设计的DPRAM宏模块,如图6所示。可以看出输入DPRAM的信号都是在时钟上升沿锁存的,输出不锁存。访问DPRAM以及完成插值过程可用“12状态法”实现,如图7所示。实验仿真图,如图8所示。
时间分析:相机输入4行数据的时钟周期数至少为1 144×4=4 576 T,上述过程操作时间为:1 024/4×12=3 072 T,所以上述转换过程能在色温校正模块
- 基于DSP+FPGA的数字导弹飞控计算机设计(10-22)
- 一种基于FPGA+DSP的通用飞控计算机平台设计(07-08)
- 数据采集装置在某型控制器中的应用(01-21)
- 双端口RAM在单片机系统中的应用(03-08)
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)