太原航空仪表有限公司 贾万春
现代飞机座舱显示系统要求高分辨率大屏幕显示,这样不同的视频源要同时显示于主画面之上。这样带来视频叠加的应用,本文采用FPGA+RAM乒乓模式实现视频叠加,运算速度快,且不占用图形处理器的资源,便于移植,满足座舱显示要求。
随着科学技术的不断发展,显示系统应用越来越广泛,液晶显示器因其不闪烁、低辐射、低功耗、重量轻、可视面积大等优点,全面应用于航空领域。由于座舱显示系统中高分辨率大屏幕显示要求,要求不同视频源要同时显示于主画面之上。这样带来视频叠加的应用,随着FPGA的不断发展,价格也不断下降,其运行速度快、管脚资源丰富、容易实现大规模的系统设计,并且它的软核易于移植和升级,便于二次开发。本设计采用FPGA+RAM乒乓模式实现视频叠加,此设计具有成本低、功耗小,速度快、可靠性高等特点。
硬件采用FPGA+RAM构架。FPGA采用Altera的EP2S-60F1020I4N, 包括48 352个逻辑单元,36个DSP模块,12个PLL(锁相环);内部Memory 2511492bits;RAM采用CYPRESS的CY-7C1072AV33, 32-Mbit (1M x 32) Static RAM,速度可达100MHz,本论文以外部输入视频为1024×768@60Hz灰度等级为256级的图象为例,数据位为每色8位,三基色共24位,像素时钟为65 MHz,所以一帧图像的数据量为786432 bit×24(1024×768×24),小于RAM容量(1M x 32),实际存取速度最高为65 MHz,小于100MHz,所以满足使用要求,而且其操作简单,性能稳定。
将两路视频输入FPGA中,两路视频的分辨率可相同也可不同,由被叠加视频(前景色)时序信号产生写RAM控制时序,将被叠加视频数据写入RAM中,用主视频(背景色)时序信号产生读RAM控制时序,将写入RAM中的被叠加视频数据读出,两片RAM乒乓进行读写操作。在FPGA中实现叠加功能。
硬件原理框图及如图1:
图1 系统原理框图
本设计的关键是建立在Altera的FPGA(EP2S60F1020I4N)基础上,开发片上处理系统。该设计是在Quartus II9.0完成。
为保证叠加后图像稳定,输入两路图像的刷新率必须是相同。以60Hz为例,这样就决定了写入一帧图像到RAM和从RAM读取一帧图像的时间是一样的即16.6ms,
采用主视频信号的场同步一次分频作为读写控制信号。
这样用主视频信号的场同步作为读写控制信号可以保证读取RAM是从(0,0)地址开始,但在切换时写RAM 地址是随机的可能不会在(0,0)地址,这样会带来第一片RAM放入部分图像后剩余图像切换放到第二片RAM中,但是图像写入RAM时图像第一点永远是放入RAM的(0,0)地址,然后顺序写入,只是不知道当前画面是的起始点是写入哪片RAM,但在16.6ms时间内地址刚好是循环的一次,所以对于输入为静态画面不管从任何地址开始取数据,都可以循环取完一帧图像。对于输入为动态画面在两幅图像切换瞬间会带来一幅图像的失真,即会瞬间显示上一幅部分图像,从实际使用角度来说,人眼对事物的分辨频率为25Hz以下,即40ms以下,所以当以16.6ms 的速度去切换一幅失真画面人是不能捕捉到的,所以不影响实际使用效果。
将被叠加视频的时钟信号在其使能信号有效情况下进行分频计算出行地址,将使能信号在其场信号有效情况下分频计算出列地址,寻址空间刚好是其有效像素空间。部分代码如下:
将主视频的时钟信号在使能信号有效情况下进行分频计算出行地址,将使能信号在场信号有效情况下分频计算出列地址。
叠加有透明叠加和开窗叠加
叠加公式:
R=(R1×(1-a))+(R2×a)
G=(G1×(1-a))+(G2×a)
B=(B1×(1-a))+(B2×a)
其中:
G、B为叠加后的颜色;R1、G1、B1为背景色;R2、G2、B2为前景色;a为叠加系数;a在0和1之间连续取值,叠加效果可以连续变换;a=0.5时半透明叠加。
本设计已经在工程实践中得到广泛应用,性能稳定,可移植性好,成本低、功耗小,达到预期效果,已应运于实践。