基于FPGA的机载显示系统架构设计与优化(3)
基于FPGA的机载显示系统架构设计与优化(3)资源
3机载显示系统架构优化
设计的机载显示系统架构能够满足性能要求,但是还需要进一步优化。如图5所示,改变不同模块之间的顺序来优化设计,同时改进算法。具体改变如下:
①图形整体相对于屏幕的缩放和旋转功能在CPU端发送命令前实现,因为CPU端旋转和缩放是针对顶点进行的,方便快速,同时减少了FPGA的BRAM资源占用,减少了进出DDR3的次数;
②改进帧速率提升算法,进一步减少延迟,提高实时性;
③改进视频旋转算法,进一步降低缓存区的大小,减少BRAM的占用率;
④帧速率提升和平移、翻转、镜像都需要通过读写DDR3来完成,将两者合并,同时完成,减少进出DDR3的次数。
图5 FPGA逻辑优化的整体流程图
3.1实时性分析
实时性是机载显示系统重要的衡量标准之一,为了确保飞机运行安全,必须确保视频处理的各个模块都有较高的实时性。视频采集、视频缩放、视频校正、视频输出延迟都是几行,延迟时间在以内。帧速率提升模块的延迟远大于其他各个模块延迟之和,需要进一步改进,在保证显示质量的同时,进一步降低延迟时间。
3.1.1帧速率提升算法优化
改进的帧速率提升算法仍使用帧复制法。在DDR3中开辟4个存储空间做切换用于存放帧速率为25Hz、场速率为50Hz的PAL图像。有4个场缓存区,当接收当前帧的奇场后与前一帧的偶场结合成一帧数据输出。
帧速率改进算法示意图如图6所示。A场正好写完,B场正好读完,下一帧读取A场数据,这样延迟为PAL的1场(半帧);A场正好还差1行写完,B场已读完,下一帧继续读B场,这样延迟为PAL的1+(25/60)=1.42场。延迟为PAL的1~1.42场。最大延迟为。
图6帧速率改进算法示意图
3.2 BRAM资源占用
原设计的机载显示系统架构使用反向映射的方法实现旋转算法,每一行旋转后数据反向旋转时需要缓存334行视频旋转前数据,即需要279个36Kb的BRAM.相对于其它模块缓存几行相比,占用了大量的BRAM空间,因此需要改进。
3.2.1视频旋转算法优化
视频旋转提出了一种改进的旋转映射法,降低缓存空间。示意图如图7所示。对以行扫描的方式获取的视频图像,缓存两行就能开始旋转处理,先进行正向映射,根据当前两行对应的旋转后浮点坐标,找到两行内的整点坐标,再对其进行反向映射,利用当前两行来得到旋转后整点坐标的像素值。
图7视频旋转改进算法示意图
该算法涉及原始图像中的2*2大小邻域,为了提高该模块的处理速度,设计了一组由三个双端口块存储器BRAM组成的原始图像数据缓存器。每个BRAM用来存储1行原始图像的数据,3个BRAM中存储的原始图像数据包括当前旋转计算涉及的两行原始图像数据以及下一行旋转计算涉及的一行原始图像数据。因此,需要缓存3行,使用3个36Kb的BRAM.
3.3 DDR3吞吐量分析
从图5可以看出,优化后的系统流程最多经过DDR3共5次,下面依次介绍每次读写DDR3的必要性和数据量。
①图形及字符生成模块读写数据,此与原模块相同,则图形生成模块读写数据量为
②图形输出模块读数据及清屏操作写数据,由于视频输出模块是对整个画面的处理,所以需要从DDR3中读取出来,而由于图形及字符不是对每个像素点都进行操作的,所以取出后,需要进行清屏操作。则读写数据量为474.6 MB/s.
③视频旋转写数据,旋转后的数据没有严格按照屏幕自上而下的顺序,必须将数据存储到DDR3中进行变换操作,读写数据量为
表2为该系统数据吞吐量的计算表,其吞吐量合计为2135.7MB/s.DDR3的数据带宽为6400MB/s(800MHz*64bit),满足本文设计系统的数据吞吐量要求。
表2优化后系统数据吞吐量计算表
基于FPGA的机载显示系统架构设计与优化(3) 基于FPGA的机载显示系统架构设计与优化(3)
页:
[1]