APP下载

基于FPGA的多视频信号叠加系统的设计与实现

2017-08-24卢小冰

科技创新导报 2017年15期

卢小冰

摘 要:该文介绍一种基于FPGA多视频信号任意叠加的设计与实现,给出了实现原理及模块设计。设计包含视频采集预处理模块、I?C总线接口模块、DDR3 SDRAM存储模块、放大叠加融合模块、LVDS显示输出模块等五个部分。该系统在LATTICE的LFE3-70EA-8FN484C芯片系统上得到实现并运用到视频监控系统。

关键词:叠加 LVDS显示 FPGA

中图分类号:TP302 文献标识码:A 文章编号:1674-098X(2017)05(c)-0162-02

随着平安城市建设的不断推进,视频监控系统成为社会立体化防控的重要组成部分。随着城市的发展,监控点位剧增,视频信号随之剧增,对于终端显示能力的需求也不断剧增。不仅要求实时显示,还要求能够同时显示更多的信息,此时就需要视频叠加技术。

1 系统整体设计

该文介绍了基于FPGA的多视频叠加系统,该系统支持多路视频源的输入。系统支持PAL、VGA、HDMI、SDI四种格式视频源输入,经过FPGA系统处理,视频数据最终完成视频叠加并通过LVDS输出到终端显示。系统由五大模块组成,包括视频采集预处理模块、I2C总线接口模块、DDR3 SDRAM存储模块、放大叠加融合模块、LVDS输出显示模块。本设计的创新点在于系统可同时支持PAL、VGA、HDMI、SDI四种格式的视频图像的采集,并完成后续的视频叠加动作。作为一种新型的视频叠加技术,它具有灵活性强,功能强大,实时性高,体积小,功耗低等特点,具有广泛的应用前景。

本设计在以FPGA为主控芯片的硬件平台上实现视频图像的缩放与叠加融合功能,可实现多路任意分辨率输入视频信号在屏幕任意位置叠加显示,通过缩放算法对每一路视频信号进行放大或缩小,进而调整各路视频信号在终端显示中的比例;还可通过更改各路视频的相应参数,调节各路视频在终端显示的位置。该方案实时性好,处理速度快,灵活性较高。

2 I?C总线接口模块

I?C总线是一种双线串行总线,分别是串行数据SDA和串行时钟SCL线。它采用多主多从的结构,所有连接在总线上的设备都有唯一的地址识别。为实现图像位置、大小的可配置性,系统设置了I?C总线接口模块,用于接收配置数据。FPGA仅接收配置数据值,所以只需要把FPGA作为从机设备且只有写操作。I?C主机将对应的的输入视频信号的配置信息通过I2C总线发送至从机FPGA系统上,FPGA系统对接收到的数据,通过建立视频图像信号配置信息对应的表格进行存储,待后续视频数据采集后预处理做准备。

3 视频采集预处理模块

视频采集芯片,将输入的PAL、VGA、HDMI三种信号转为RGB格式后,同SDI一起输入FPGA系统中进行视频采集预处理,根据由I?C总线传输过来的已保存的配置信息,对视频信号进行处理,对于只有部分显示的视频信号进行裁剪,提高数据传输的效率;对于需要缩小显示的视频信号进行压缩处理,然后将输入视频图像数据进行保存。

4 读写控制模块

读写控制模块控制帧地址的切换。为了提高并行处理的速度,简化数据读写冲突,视频图像数据分别存储在DDR3 SDRAM中。

讀写控制模块主要是先将DDR3 SDRAM空间进行划分,然后通过控制帧地址的切换进行有效储存。为了简化设计,将视频图像信号划分区域保存。输入多视频信号按帧划分,同一帧,所有输入视频信号保存至同一bank中;输入信号做3帧保存处理,即分别保存至3个bank中。视频图像放大、叠加处理及输出显示处理的存储则全部保存至同一bank中。保存时,一个bank分3块区域,保存独立的3帧视频图像。

此模块的工作过程分为写操作和读操作。

(1)写操作。主要处理输入视频图像信号的存储、视频图像信号处理后的存储。输入视频图像信号的存储优先级高于后处理的。输入视频图像信号运用乒乓效应轮流缓存到FIFO中,当缓存中数据满足DDR3 SDRAM写操作数据量时,申请写操作。FIFO中数据在每一帧视频图像信号完成后进行清空处理,避免信号间数据交叉异常出错。视频图像信号是连续不中断的且信息容量不一致,针对出现前一帧未处理完而新的一帧数据已到达情况,该系统采用了并行的2个FIFO交叉轮流处理数据,有效及时地处理了前端输入数据。视频图像信号处理过程则是通过对从DDR3 SDRAM存储器中读出的数据,根据设置参数进行放大,叠加处理后,存入FIFO中缓存,同样的,也采用了2个FIFO交替处理,等待写入DDR3 SDRAM存储器中。

(2)读操作。主要是输入视频图像信号的读取处理操作及终端显示数据读取操作。此过程,读取终端显示数据操作优先于读取输入视频图像信号待叠加放大处理操作。输出视频图像信号显示是一个连续的过程。所以读取终端显示数据的优先级高。通过从DDR3 SDRAM存储器中读取视频图像信号的数据缓存到FIFO中,待终端显示读取或者信号缩放叠加处理。

5 DDR3 SDRAM仲裁器控制模块

DDR3 SDRAM用户接口仲裁控制模块将每一个数据读写请求设置成中断,借鉴中断处理思想来进行仲裁控制,从而解决数据存储的冲突。

每片DDR3 SDRAM只有一组控制、地址和数据总线,因此同一时刻只能有一个设备在访问。常见的总线切换方式有两种:一种是轮询机制,软件实现简单,但实时性不高;一种是仲裁机制,设备发送中断请求,从而进行总线切换。由于视频图形显示系统对实时性要求高,因此选择仲裁机制。

为了提高并行速度,将视频信号处理操作分别进行中断处理。将设备中断请求解析成多个子请求,进行优先级判断,每个子请求对应一个中断处理逻辑。

6 视频放大叠加处理模块

视频叠加是指多帧视频图像信号按照一定的原则和顺序叠加起来,形成一幅完整的视频图像信号。依据确定最终信号中每个像素点对应的坐标,完成叠加。若最终图像N(x,y)为n幅小图像n(x,y)组成,则

根据叠加的概念,本系统输出显示分辨率为1920*1080。模块主要包括放大处理模块、坐标位置定位模块、叠加模块三部分。

放大处理模块采用了Lattice芯片Scaler IP核对视频信号进行放大处理。视频数据从DDR3 SDRAM中读取出来,通过查找I2C传输过来的已保存的配置信息表,查找到对应视频的配置信息,再依据配置信息对视频图像信号进行放大处理。

坐标位置定位模块,通过配置信息表中的图像位置信息进行处理。显示数据的存储位置按照终端显示位置保存。由于DDR3 SDRAM一行的容量不够存储分辨率为1920*1080的视频图像信号24位RGB数据一行的数据,因此,将图像一行数据分为2行数据进行存储。这意味着视频图像信号的坐标都需要进行调整。坐标位置定位模块则对每一个视频图像信号的位置信息进行计算转换处理。

叠加模块,根据计算转换好的位置信息,把經过Scaler IP核处理好的视频图像信号存储到相应的位置。

7 LVDS输出显示模块

LVDS,即Low Voltage Differential Signaling,是一种低压差分信号技术接口。LVDS信号发送模块主要由LVDS发送数据控制、双口RAM、FIFO缓冲、LVDS信号发送器和DDS控制器组成。LVDS发送数据控制用于产生各模块的地址、数据和控制总线,实现数据转移和交互。双口RAM实现并串转换和乒乓存储。LVDS信号发送器为数据帧添加包头,并连同帧数据发送至显示端。

8 系统验证结果显示

操作控制平台,设置画面配置信息,PAL、VGA、HDMI、SDI四种格式视频源同时输入,配置软件将配置完的信息通过I?C总线发送至FPGA系统平台上,系统平台根据收到的配置信息,对视频信号准确叠加处理。可以看到,多视频信号任意位置的显示配置,终端可以正常如设置要求显示,如图。

9 结语

该系统介绍了基于FPGA的多视频信号叠加系统,具有强大的视频处理能力,同时由于可编程的特性,系统的升级、维护都较为灵活。

参考文献

[1] 宋承杰,王景存.基于FPGA的视频字符叠加的设计与实现[J].器件与应用,2009(12):23-27.

[2] 郑博文,胡小龙. 基于FPGA的多幅图像融合叠加的设计与实现[J].计算机系统应用,2009(9):85-87.