摘要:目前红外图像已经成为光学最重要的跟踪测量、景象获取和辐射特性测量的手段,现有光学仿真系统主要应用在可见光测量系统,而红外系统的仿真手段极为匮乏;为满足红外图像的仿真目标与真实背景实时融合对高速实时数据流播放的需求,提出了一种基于
FPGA和
DSP技术实现的红外仿真图像高速实时数据流播放播放器设计,通过多级缓存传输的输入控制、多级乒乓切换的输出控制以及图像缓存循环队列控制等关键算法设计。 实现了高带宽、高帧频、高
分辨率的红外图像流数据的实时输出。解决了仿直目标与直实背
景融合的大数据量运算问题;在实际应用中,取得了较好的视觉效果和训练效果,具有广泛的应用价值。
红外图像以其独特的成像特点和复杂天气条件下的适应能力,已经成为发射场光电经纬仪最重要的目标跟踪测量、景象获取和辐射特性测量的手段。而目前光学仿真训练系统主要针对可见光测量系统,红外图像的仿真训练系统研究较少。为满足仿真训练的需求,实现不同任务目标的成像和飞行姿态仿真,以及环境背景的仿真,采用增强现实的思想,提出基于红外虚拟目标与真实背景融合的红外图像仿真方法,提升仿真训练效果,该方法采用高速实时数据流的播放技术,因此,研究高速实时数据流播放器成为实现红外图像仿真的关键。
目前,现有的大众型多媒体播放器通常是一种集成音频、
视频、图片浏览于一体的多功能播放器。由于主要应用于人眼观赏,所以一般存在格式比较固定,播放的帧频较低等不足。现有的播放器技术存在的问题突出表现为以下几点∶
1)通用的基于专用
ASIC的播放器,以大众化视听为目的,格式固定,各种性能指标都比较低,不能满足专业领域的需求;
2)一些简单的仅使用 FPGA 实现的图像播放器,由于FPGA 内部存储器非常小,都是播放固定格式的单帧图像,主要用来测试电路的时序关系正确性,无法满足高带宽、高帧频的需求。
3)目前的播放器都不具备实时图像与仿真图像信息合成的功能,不能实现同时输入和输出。
为了满足光电经纬仪仿真训练系统对高速实时数据流播放的需求,本文提出了一种基于FPGA和 DSP技术实现的红外图像仿真高速实时数据流播放器,实现高带宽、高帧频、高分辨率的图像流数据的实时输出,用于光电经纬仪仿真训练系统的红外仿真图像的高速实时播放。
1、高速实时数据流播放器总体设计
播放器主要包括了FPGA
芯片(
Xilinx公司的XC5VLX110T)、DSP芯片(TI公司的
TMS320C6474)以及时钟芯片、FLASH存储器、DDR2存储器、SFP千兆网
模块以及SFP
光模块等。
播放器工作的3个过程,即图像采集、虚拟目标叠加、图像发送,3个过程并行执行。整个处理模块的输入与输出接口为图像输入光纤口和图像输出光纤口、
编码器输入
串口、虚拟目标输入千兆网口。DSP芯片具有3个独立的
内核,每个内核具有完全对等的结构和功能。根据播放器的应用需求,播放器具有虚拟目标图像接收功能、虚拟目标与真实背景融合功能、真实背景图像输入与融合图像输出功能。每个功能赋给1个独立的 DSP内核去完成。其中,DSP的第一个内核用来负责与外部主机进行千兆网络通信,DSP 的第二个内核用来接收外部的串口数据输入及进行叠加算法运算,DSP 的第三个内核负责与FPGA进行 SRIO通信,将 FPGA 芯片中
FIFO内的数据搬运到 DSP 的第三个内核的 RAM中,并把 RAM中的数据传输到外部 DDR2 中。DSP 的 3 个内 核都可 以访问外部DDR2,通过访问外部 DDR2 可以实现 3个内核之间的数据共享。
叠加算法运算由 DSP的第二个内核来完成。第二个内核在每次帧中断来时,采集实时编码器数据,把虚拟目标的指向编码器与实时编码器进行比对计算出像素偏移量,在采集好的图像合适位置叠加上虚拟目标,并进行边缘融合处理,使得虚拟目标与背景融合效果更逼真。虚拟目标图像数据通过千兆网传输,由 DSP的第一个内核接收并缓存至 DDR2。
经过叠加处理后的增强现实图像信息在外部 DDR2 上,DSP的第三个内核首先从 DDR2中分批传输图像到第三个内核的L2中,再通过 SRIO接口把L2的数据发送到 FPGA,在FPGA中实现电光转换发送出去。
播放器总体结构如图 1 所示。在上电后,FLASH 存储器中的代码自动加载到FPGA 芯片内部开始工作,通过千兆网模块将仿真图像发送到DDR2存储器上缓存,FPGA芯片读取DDR2存储器中的叠加图像并进行电光转换,发送到光模块输出,实现整个虚拟目标叠加的功能。FLASH存储器与FPGA 芯片连接,FLASH存储器用于存储 FPGA代码,加载代码后驱动FPGA芯片进行数据处理;DDR2存储器与 DSP芯片连接,DDR2存储器用于存储仿真图像;FPGA芯片与 DSP芯片连接,用于实现从 DDR2存储器中读取图像数据发送到 FPGA 芯片对应的 FPGA内部串行口上;光模块与 FPGA芯片连接,用于将FPGA串行
通道上的数据通过光模块发送到外部光纤通道;千兆网模块与 DSP芯片连接,用于将外部产生的仿真图像通过千兆网模块和 DSP芯片传输到 DDR2存储器上。
2、关键算法实现
2.1 多级缓存传输的输入控制
图 2所示为播放器多级缓存传输的输入控制逻辑图。利用该控制逻辑,实现了外部图像数据通过光纤输入到 FPGA 内部的GTP 缓存
控制器,再由 SRIO输入到 DSP的 DDR2存储器。该多级缓存传输的输入控制逻辑具体算法如下∶
1)光纤图像接收解析模块,根据上述设计的光纤图像帧格式、包格式,解析出需要的帧首
信号、帧尾信号、16 位图像原始数据、原始数据有效信号。
2)在 FPGA 内部构建一个 256 Kbit 的 FIFO缓冲区。解析出的帧首信号作为FIFO的复位信号,16位原始数据有效信号作为该 FIFO的写使能,16 位图像原始数据连接到 FIFO的数据输入
端口。基于这样的写逻辑,实现了外部光纤图像数据不断输入到内部FPGA的FIFO中。但是这个FIFO的容量有限,不能保存下一幅完整的图像,因此需要下面的读逻辑来读取FIFO内的数据。
3)构造一个读控制逻辑。读逻辑由 FIFO的 wr_data-count 信号来决定是否对 FIFO进行读取,设置门限为2 Kbit,即 wr_data_count 信号大于1023后,启动 SRIO使能信号igen_bypass_vld_i信号。每启动1次后,能够以3.125 Gb-ps的数率传输 2 Kbit到 DSP端。在 A步骤中,外部原始图像数据光纤传输数率为 2.5 Gbps,小于读数据速率。因此,FIFO能够完整接收并完全转移一幅完整图像,而且 FIFO不会产生溢出。
4)由 FPGA 的 FIFO中读取的图像数据,通过 SRIO接口输出到了DSP 端的内部 L2RAM中,然而可用于图像缓存的L2RAM容量只有 256 Kbit,不能缓存下一幅完整图像,因此设计了两个128 Kbit 的缓存用来做乒乓(PingPong)接收,在步骤 3)中构建一个 SRIO,每传输完 128 Kbit 产生一个脉冲信号go-
GPIO7_s,该信号通过GPIO输出到 DSP中,作为DSP进行乒乓切换的中断源。
5)当 Ping 部分在接收 SRIO数据时,通过 DMA的方式将 Pong 中的数据从 L2RAM 读走 输出 到 DDR2 中。从L2RAM到 DDR2的数据读走数率为3.2Gbps,该速率大于SRIO写入 L2RAM 的速率。因此,可以保证传输过程中L2RAM不会发生溢出。
更多详细内容请下载附件查看