高时间精度红外场景生成延时控制技术研究
2020-12-26杜惠杰
杜惠杰,杜 渐,张 兴,任 重
(1. 航天系统仿真重点实验室,北京 100854; 2. 浙江大学,浙江 杭州 310027)
0 引 言
在实验室半实物仿真回路中实现对探测系统性能的高精度仿真评估,仿真链路的时间特性是影响仿真精度的关键因素。红外动态场景仿真系统用于在实验室条件下模拟探测系统实时观测的动态场景,构成的信息串联传输链路包括接收仿真机实时解算数据、计算机图像生成、图像数据至目标模拟器的传输、目标模拟器刷新显示等环节。这个信息链路上每个环节造成的时间延迟都是仿真系统固有的,并不是真实场景中存在的,导致探测系统观测到的将是由图像生成、数据传输引起的具有延时的仿真场景,这将直接降低半实物仿真系统的精度和可靠性,亟待解决。
1 国内外现状分析
仿真回路中的红外动态场景生成需要满足在模拟器触发图像获取时能够得到实时的仿真红外图像,这就要求红外动态场景生成能够以低稳延时实现仿真红外图像的生成。由于低延时的图像序列总是可以通过延时填充的方式满足稳定性要求,所以稳定延时的需求其实暗含在低延时需求中。低稳延时的红外动态场景模拟技术在虚拟现实的绘制领域是一个热点研究方向,原因是过长和不稳定的延时将直接造成虚拟现实用户长时间使用系统时的明显不适感。正因如此,降低图像生成的延时,一直以来是虚拟现实领域研究的热点问题,并随着近年来虚拟现实软硬件的快速发展引起越来越多的重视。以美国为代表的西方国家的科研机构在图像生成系统和解决图像生成系统延时方面做了大量的工作,以适应低稳延时需求。在硬件加速方面,最大的图形加速卡生产厂商 NVIDIA 针对降低延时提出了专门的硬件架构和图像处理流水线来降低延时[1],并针对特定需求利用专门设计的硬件来加速;VINCENZI 等结合“Warper Board”技术构造的头戴显示的延时抑制系统[2],能够将原有的绘制延时从 40 ms 降低到 4 ms 左右;POPESCU 等设计了一种专门处理的并行计算硬件形变阵列和区域累积器来实现基于深度缓存的图像扭曲和重构计算,并在此基础上设计了完整的图像生成引擎 WarpEngine[3];LI 等基于现场可编程逻辑门阵列(field programmable gate array, FPGA)架构实现了完整的柱面深度图像形变计算[4],可以在电路上以 88.152 MHz 的频率运行。在流水线及算法优化方面,通过定制图形加速算法来降低延时,REGAN和POSE建立了地址重计算流水线,实现了观察位置和方向与绘制过程的解耦[5],可以明显降低延时且更稳定。Mark等提出了一种基于3D绘制后变形的动态图像生成体系架构[6],系统的整体延时得到明显降低。后续发展根据参考帧的图像分辨率建立了一个网格,然后使用典型的图形处理器(graphics processing unit,GPU)顶点着色器功能来对网格进行形变,最终输出的图像可以通过多种方式重构,实现最好的性能-质量均衡。
从目前国内研究的情况来看,仍然没有一套系统详实的处理方法来明确地解决半实物仿真图像生成及传输过程中出现的延时问题,这一领域的研究还处于相对空白状态。
2 红外动态场景模拟延时性能分析
红外动态场景模拟系统通常由计算机图像生成系统、目标模拟器、输入输出接口板卡等部分组成,构成信息串联传输链路,包括接收仿真机实时解算数据、计算机图像生成、图像数据至目标模拟器的传输、目标模拟器刷新显示等环节。
以基于图形工作站、图像软件及目标模拟器构成的红外动态场景仿真系统的延时为例,通过示波器测试数据输入时刻与图像数据输出时刻的时间差,如表1所示。
表1 系统延时数据记录Tab.1 System delay data
由表1数据可知,最大延时为50.8 ms,最小延时为41.2 ms,平均延时为44.8 ms。
上述系统延时的存在及每帧延时的不稳定性,导致观测系统观测到的将是延迟的模拟红外场景,主要影响因素如下:①由非实时操作系统引起的实时响应能力不足;②图像数据传输带来的不稳定长延时。红外动态场景模拟不稳定延时直接影响半实物仿真系统的精度和可靠性。
3 基于PCI-E总线的延时控制技术
由于显卡GPU提供了非常强大的计算及图像图形处理渲染能力,基于PCI-E总线内存映射的延时控制方法,保留了显卡GPU强大的图像渲染能力,即可利用图形硬件软件接口OpenGL、SE-WORKBENC、Vega等图像仿真软件平台实现复杂场景光学特性仿真。另一方面,场景渲染后规避显卡DVI输出接口的延时问题,利用显存数据读出技术将每帧图像读入内存,以直接存储器访问(direct memory access,DMA)方式,经PCI-E总线及光纤传输,将数据直接存入目标模拟系统缓存以实现同步刷新,从而实现复杂场景稳定短延时输出,信息流程图如图1所示。
图1 信息流程图Fig.1 Information flow diagram
3.1 基于计算机显卡GPU实现复杂场景仿真
计算机GPU以大大超过摩尔定律的速度高速发展,极大地提高了计算机图形处理的速度和图形质量,并促进了计算机图形相关应用领域的发展。本文基于GPU及其图形接口软件或图像仿真软件系统实时接收姿态角、位置及时间等数据量,依据目标、环境及背景数据生成观测系统视线下的场景仿真图像,如图2所示,最终形成二维分布灰度数据存入帧缓存。
图2 复杂场景仿真流程Fig.2 Complicated scene simulation flow
3.2 实现显存图像数据到内存图像数据映射
GPU提供的图形接口函数支持CPU与GPU间的数据通讯,接口函数为glReadPixels(),该函数实现从帧缓存中读取二维图像灰度数据,然后执行像素转移操作,再将数据封装到处理器内存中。为实现动态图像渲染,通常采用前后缓存交换技术,进而保证动态图像的流畅播放。为了减小延时、提高读出速度,采用像素存储模式控制技术,保证每帧图像生成后图像数据存入前缓存,不执行缓存交换,直接利用接口函数glReadPixels()将显存数据封装到处理器内存中。
3.3 基于DMA方式的PCI-E总线及高速光纤数据传输
图像生成后利用PCI-E总线传输,即图像数据取回内存后,下一步将以DMA方式利用PCI-E卡读出处理器内存数据,经高速光纤将数据直接传输到目标模拟器内存,这种传输方式最大限度地实现了短延时稳定输出。一方面,DMA传输是计算机与外设实时交换数据的重要方法,在数据传输过程中DMA代替CPU掌握总线数据传输控制权,避免了操作系统控制带来的不稳定性。另一方面,采用PCI-E总线与单模光纤高速相结合的传输方式,输出卡应用程序接口(application programming interface,API)会按照输出卡发出的时钟中断信号,不断地从处理器内存读取先前封装的灰度图像,这样就避免了不同时钟源的严格同步问题。
在半实物仿真过程中,必须保证在观测系统曝光期间看到稳定、无闪烁的图像,因此观测系统与目标模拟器必须实现曝光同步,避免观测到假灰度图像。仿真数据存储到目标模拟器内存后接收同步信号,目标模拟器刷新稳定后,观测系统开始曝光,完成当帧场景图像观测的采集。
上述方法充分利用了GPU的强大图像处理功能,规避了视频传输的不稳定延时问题,利用DMA实时传输优势,借助PCI-E及光纤的高带宽传输能力,实现了复杂三维动态场景实时短延时稳定输出。在半实物仿真过程中,从图像计算机接收仿真数据到目标模拟器输出辐射场景,实现了2帧延时的技术状态。
这种依赖图像计算机及其高性能显卡的图像生成及传输环节,由于其固有特点及工业标准的限制,无法满足仿真验证针对场景输出的更高水平的低稳延时性能需求。
4 基于众核处理器的延时控制技术
基于众核处理器的动态场景图像生成低稳延时控制技术,是为了解决计算机非实时操作系统及显卡传输的限制,通过建立具有严格同步节拍控制的硬件架构,从渲染顺序、缓冲与主存使用、并行与同步三方面优化延时管线设计,高效完成图像生成及输出。
4.1 硬件架构的延时优化方法
硬件架构采用基于众核处理器架构的图像处理器来实现动态场景的生成和传输,如图3所示。
图3 基于众核处理器场景生成硬件架构Fig. 3 The scene generation hardware structure based on the Many-Core processor
系统由三维图形处理核心和一个或多个接口扩展模块组成,前者负责三维图形的低稳延时绘制,后者提供和外部系统的接口以及图像后处理。两者之间通过高速PCI-E总线连接。设备从上位机通过网络或高速USB接口获得预处理好的目标和场景几何数据,通过光纤接口从仿真机获得仿真实时数据和同步信号,通过三维绘制和图像后处理计算完成二维图像的低稳延时生成,将生成的图像数据通过DVI/DP接口输出给目标模拟器,同时具有通过特定接口向信息处理机传输图像数据的能力。
4.2 低稳延时流水线架构
典型的绘制流水线如图4所示。其中第一个步骤和第二个步骤是应用相关的生成数字化场景的过程;第三个步骤中,场景被表达成粒子、三角面片等元素后进入绘制流水线。后者包括了阴影处理、光栅化、环境光遮蔽(ambient occlusion,AO)、着色、后处理特效等环节(典型的后处理特效包括景深、反射、雾、调色、运动模糊和反走样等),每一个环节都会带来额外的延时。
图4 典型的绘制流水线构成Fig.4 The typical rendering pipeline
图4中的每一根红色竖线代表着一个同步点,同步点的存在进一步放大了延时,即后一个步骤必须在前一个步骤的所有像素处理完毕后才能开始,如光栅化需要等阴影图的生成全部结束后才能开始进行。控制信号(用户交互)反馈到绘制之前的仿真环节,因此控制和最终显示刷新之间的延时就是由仿真计算、绘制的各个子环节加上显示信号传输的延时构成的。从以上延时成因可以看出,图像处理流水线中延时分析、缩减延时可以从减少绘制环节、减少或消除同步点以及提升每个环节的计算效率这几个方面着手。
1) 通过减少绘制环节可以最直接有效地降低延时,即为了降低图像生成延时,可根据实际应用状态放弃复杂着色效果以及景深、反射等效果支持。减少绘制环节通常是最直接有效的降低延时方法,但绘制环节的减少往往会带来图像效果的减弱,或放弃对特定视觉效果的支持。如图5所示,因为虚拟现实至少需要90 Hz的刷新频率,因此为了降低图像生成延时,很多虚拟现实应用中放弃了对动态AO、复杂着色效果、景深、反射等视觉效果的支持,利用纹理烘焙的方式将静态的光照效果存储在纹理中。
图5 通过减少绘制环节来降低延时Fig.5 The time delay control technique by reducing drawing steps
2) 通过减少同步点降低延时。为了减少绘制环节的同步点,研究者们提出了所谓的“无帧”(frameless)绘制技术。在无帧绘制方法中,图像不是以帧为单位进行更新,而是以像素为单位对图像变化的部分进行更新。由于要进行单个像素的颜色更新,这类方法通常建立在光线跟踪的绘制框架上。
由于场景绘制对复杂视觉效果的支持要求相对较低,为了不增加硬件方面的负担,可以提升渲染阶段的效率来降低延时。采用“时间扭曲”(time warp,TW)技术,当只有视点发生转动变化而场景特性不发生变化时,图像绘制无需走过完整的绘制流水线来生成图像,而是根据视点的变化从绘制流水线后端取得绘制完成的图像来进行显示。由于这一位置更接近显示环节,使用TW技术能够显著降低绘制延时。
4.3 仿真测试与分析
4.3.1 测试验证系统搭建
为完成亚毫秒级的延时测试,本文采用一种基于高频线扫描相机的亚毫秒级延时的测量方法。通过每一帧只记录显示器的某一行或者某几行像素来换取更高的刷新频率,使用线扫描设备也能大幅减少每帧需要存储的数据量,确保缓存操作的效率。具体设备及型号为Basler工业相机raL2096-24gm,网口为GigE,分辨率为4 k,最高行频可达26 kHz(设备端口、系统框图和实际系统如图6所示)。
(a) 高频线扫描相机 (b) 搭建的测试环境 图6 延时测量系统Fig.6 The time delay measurement system
系统工作流程为:场景生成程序在Xavier芯片的嵌入式操作系统Ubuntu中运行;生成的场景通过与之相连的显示器进行显示;用户动作(键盘事件)导致场景发生变化,并同步触发高频线扫描设备采图,触发命令通过Xavier的通用输入/输出扩展头(general-purpose input/output, GPIO)电信号给出;相机收到触发命令,立即拍摄显示器的显示内容,拍摄结果缓存到PC端;PC端对拍摄结果进行处理,检测显示内容的变化。结合上述过程中的各个同步点以及相应的时间记录,即可得出端到端延时的测量结果。
系统时间流如图8所示,端到端延时对应为t1~t4。从键盘触发开始到GPIO信号发出的延时对应为t1~t2, 从收到GPIO信号到采得第1帧图像的延时对应为t2~t3,从第1帧到跳变帧的延时对应为t3~t4。
图7 系统时间流Fig.7 The system time flow
4.3.2 测试与分析
利用市面上可买到的最接近目标模拟器刷新频率(200 Hz)的AOC27G2显示器完成测试,其刷新频率可以达到144 Hz,响应时间为1 ms,图像信号通过带宽为6 GB/s的HDMI 2.1接口与显示器相连。通过测量更新延时来完成延时性能的测量与分析。
更新延时反映了当场景发生变化时最快反映到目标显示器上的图像变化的延时,由当前帧的绘制计算、交换缓存和图像传输的延时构成。因为场景变化发生的时间和垂直同步(vertical synchronization,VSync)信号不同步,因此使用非垂直同步方式,10次测量结果见表2(其中Nsight延时为使用NVIDIA的Nsight分析和优化工具测得的图像生成器系统内延时)。
表2 基于众核处理器的系统延时数据记录Tab.2 The system delay data based on the Many-Core processor
基于众核架构的延时控制技术,摆脱了高性能显卡传输工业标准的限制,模拟的目标场景面片数不小于5万,分析评估图像生成至目标模拟器输出的时间不大于10 ms,极大地提高了半实物图像生成时间精度。
5 结束语
本文提出的基于PCI-E总线内存映射的延时控制技术及基于众核处理器的延时控制技术,从不同使用角度解决了复杂场景图像生成短延时且时序稳定可控这一技术瓶颈问题,为实现高精度半实物仿真光学动态场景模拟提供支持,并可通过辐射式、注入式接口规范设计,进一步提升场景生成系统的平台化服务能力,对支持高精度半实物仿真系统建设具有重要的现实意义。