APP下载

一种雷达终端软件化显示方法*

2014-07-10苗振奎

现代防御技术 2014年1期
关键词:海图纹理终端

苗振奎

(江苏自动化研究所,江苏 连云港 222061)

0 引言

随着计算机技术、图像处理技术以及数字信号处理技术的发展,利用通用计算机进行雷达信息处理和视频显示成为一种趋势。这种方法不仅可以降低成本而且能够更加灵活地对雷达信息进行处理,并且可以满足雷达信息多样化的需求。目前雷达数据的终端显示虽然都是利用通用微机显示,但很多处理都是通过DSP(digital signal processing)等器件来实现的。在DSP 中实现的优点是显而易见的,它可以实现信号的高速处理。但随着计算机硬件技术的进步,利用软件对雷达视频处理也能满足实时性需求,同时还能进一步降低成本。基于DirectX[1]开发的多媒体程序是运行在硬件抽象层上,既可以充分利用系统的硬件加速功能,又能隐藏硬件的设备特性,通过编写与设备无关的高效代码,DirectX程序能以最佳的方式运行,并具有效率高和易开发的优点[2]。本文提出了一种基于Direct3D的雷达终端软件化显示方法,并在此基础上用C++语言加以实现。

1 Direct3D显示技术

目前,基于Windows操作系统下雷达终端显示的有2种方式:一种是利用FPGA(field-programmable gate array)或DSP硬件来实现的;一种是基于软件程序开发。后一种选用基于DirectX或OpenGL,其普通做法是先量化雷达扫描线,每条扫描线分为512个点,逐点填写颜色实现[3]。这种方式占用计算机资源较多,不利于雷达终端作后续的信号处理。本文利用Direct3D渲染三维对象技术实现雷达PPI(plane position indications)显示,利用Alpha混合技术来实现雷达余辉衰减。相对于前一种方法,占用计算机资源较少,能为后续的目标点迹提取,目标跟踪等节约较多的计算空间和计算时间,满足雷达软件化总体要求。

软件化显示技术包含3个方面的问题:①渲染三维对象;②利用Alpha混合技术实现雷达视频余辉衰减;③使用纹理技术实现海图覆盖层。Direct3D渲染三维对象的过程分为2个阶段:第1个称为T&L(transforming and lighting)阶段;第2个称为光栅化处理。其具体关系如图1所示。

图1 渲染3D对象的两个阶段Fig.1 Two stages of rendering 3D objects

其中T&L流水线经过一系列的变换,如图2所示。

图2 T&L流水线Fig.2 T&L pipeline

Direct3D为了绘制透明物体,通过定义一个表示物体半透明度的Alpha值和一个透明的计算公式,可以把将要绘制的物体颜色与颜色缓冲区内的颜色相混合,进而绘制出具有半透明效果的物体,其计算方法为

↑Color=(RGBsrcKsrc)OP(RGBdstKdst),

(1)

式中:Color为Alpha混合后的颜色值;RGBsrc为源颜色值,即将要绘制的图元的颜色值;Ksrc为源的混合系数,通常赋值为表示物体半透明程度的Alpha值,用来和RGBsrc相乘;RGBdst为目标颜色值,即当前颜色缓冲区的颜色值;Kdst为目标混合系数,用来和RGBdst相乘;OP表示源计算结果与颜色缓冲区计算结果的混合方法,属于枚举类型D3DBLEND的值。

2 方法设计

利用上面介绍的原理,雷达终端软件化显示方法中渲染图形的核心方法如下:

(1) 创建纹理

该过程需要创建2个纹理[4]:一个是作为可操作的表面,作为PPI显示的背景;一个是实时显示每一个视角下的纹理。创建第1个纹理,Direct3D提供了创建纹理的接口D3DXCreateTextureFromFileEx(),根据实际雷达PPI显示的大小,创建纹理。设置纹理属性使该纹理为可操作的表面,以便后续对其进行更新处理;创建第2个纹理使用D3DXCreateTexture()接口,其宽度为表面纹理的宽度,高度为1,用来更新显示。

(2) 渲染三维对象

传统PPI显示采用量化方位线,逐点填色的方式[5]。由于雷达数据量大,此方法计算时间长,成为实现短周期雷达终端显示的瓶颈。本软件化显示技术的关键在使用T&L流水线处理,使用变换坐标的方法,每更新一条方位的视频数据,更新一个世界变换矩阵,使摄像机绕PPI圆心进行旋转,在不影响显示效果的情况下,雷达数据量化为4 096条方位线,旋转速度以(360°/4 096)/次为佳。

(3) Alpha混合技术

使用Alpha混合技术,可设置2层纹理的渲染状态[6],利用SetRenderState()接口来实现。将第1层纹理设置为PPI表面纹理,将第2层设置为更新时的纹理,然后将2次纹理的颜色相乘输出。视频余辉衰减是依据每更新一帧视频数据,原来颜色逐渐减弱为背景色(默认为黑色)的原理实现的。首先设置跟第1层纹理混合的系数,即D3DCOLOR_ARGB()参数的值,然后启用Alpha混合,将第2层纹理颜色与第1层颜色相减,实现PPI颜色衰减显示。

(4) 叠加海图覆盖层

在创建纹理的基础上,可实现海图覆盖层的叠加[7],进一步满足操控者对整个态势的把握和掌控。设置PPI显示的纹理、纹理阶段状态和纹理坐标索引后,利用初始化时创建的第2层纹理,即带有海图信息的.dds文件,设置其和PPI显示的纹理颜色相加。使用接口函数SetTextureStageState(),可以有选择地实现海图覆盖层是否显示。

3 实现

基于上述方法,所使用计算机配置为:四核Intel Core Q8400 2.66GHz,Nvidia GeForce GT220,利用VS2005创建基于MFC的单文档项目[8]。首先创建一个Windows窗口[9],然后初始化Direct3D,包括创建Direct3D对象、Direct3D设备对象以及要渲染的图形对象。利用Button按钮启动多媒体定时器[10],进入消息循环。渲染图形的代码在定时器里实现,包括对顶点的变换、像素渲染、Alpha测试混合和提交显示。其中顶点变换是对流水线中的顶点作模型矩阵,投影矩阵处理;像素渲染是对流水线中的顶点赋值雷达视频数据的RGB值和Alpha值;Alpha测试混合是对像素渲染后的顶点Alpha值按照公式(1)进行处理,实现视频颜色的衰减。根据不同操控方式,如不同的雷达扫描周期下,设置加速和减速2个Button按钮,每加速或者减速一次,绘制不同扫描周期下的视频信息。程序设计框图3所示。

图3 程序框图Fig.3 Program diagram

软件实现后,可以实现任意扫描周期下的PPI显示,且不增加CPU的使用率。为了增强显示效果,在整个PPIView窗口上显示4个距离环和12条方位线。最终实现界面和占用CPU资源情况如图4所示。

图4 雷达终端软件化显示和CPU占用资源情况Fig.4 Software implementation of radar terminal display and the occupation resources of CPU

从图4可以看出,该方法可以实现雷达终端软件化显示,并且使用CPU资源较少,仅为4%,为后续视频数据的进一步处理留足了时间。

利用“衰减+”和“衰减-”2个按钮实现视频余辉衰减的控制,改变D3DCOLOR_ARGB()参数实现256级衰减。衰减情况及占用CPU资源情况如图5所示。

图5 衰减情况和CPU占用资源情况Fig.5 Attenuation and the occupation resources of CPU

由图5可以看出,此方法实现的衰减效果理想,且不额外增加CPU占用率,是一种理想的显示方法。

利用按钮选择是否添加海图。添加海图后的显示结果如图6和图7所示。

图6 添加覆盖层后显示效果Fig.6 Display effect after adding over layer

图7 添加覆盖层衰减后的效果Fig.7 Display effect after attenuation of over layer

由图6可以看出,利用纹理技术和Alpha混合技术能实现雷达终端的显示,占用CPU使用率为4%,没有增加图形显示的压力,同时不影响显示效果。加衰减后的显示效果如图7所示。由图7可以看出,添加海图覆盖层后,没有增加CPU占用率,没有影响余辉显示效果,表明该方法是一种理想的实现手段。

4 结束语

雷达终端软件化显示是雷达装备的发展趋势,它不仅表现在成本低[11],而且在信号处理与操控方面也十分灵活。Direct3D技术是微软公司发布的,在Windows系统下对GPU操作的显示技术[12]。Direct3D软件开发工具包(SDK)提供了一套优秀的应用程序编程接口(APIS),这个编程接口可以提供开发高质量、强实时性应用程序所需要的各种资源。合理利用渲染对象和Alpha混合技术可以很好地实现雷达终端软件化,并且占用计算机资源较少,可以满足工程上雷达实时性的要求。在此基础上,可以继续利用软件进行点迹凝聚和目标跟踪等算法的实现。

参考文献:

[1] 王德才,杨关胜,孙玉萍,等.精通DirectX 3D 图形与动画程序设计[M].北京:人民邮电出版社,2009.

WANG De-cai,YANG Guan-sheng,SUN Yu-ping, et al.Proficient in DirectX 3D Graphics and Animation Programming[M].Beijing: People′s Posts and Telecommunications Press,2009.

[2] 王立振,刘润华.基于Visual C++和OpenGL的雷达显示系统实现[J].空军雷达学院学报,2010,17(4):10-12.

WANG Li-zhen,LIU Run-hua. System Design of Visual C++ and OpenGL Based on the Radar Display[J]. Journal of Air Force Radar Academy,2010,17(4):10-12.

[3] 樊世友,杨作宾,孙书鹰,等.基于余辉模型的P型雷达显示器计算机仿真[J].计算机仿真,2008,20(4):6-8.

FAN Shi-you,YANG Zuo-bing,SUN Shu-ying,et al. Type P Radar Display Persistence Model Based on Computer Simulation[J]. Computer Simulation,2008,20(4):6-8.

[4] 徐宏宇,陶然,单涛,等.一种实时雷达显示控制终端软件的设计[J].火控雷达技术,2009,5(1):7-9.

XU Hong-yu,TAO Ran,SHAN Tao,et al. Design of the Control Terminal Software for Real-Time Radar Display[J]. Fire Control Radar Technology,2009,5(1):7-9.

[5] 侯俊杰.深入浅出MFC[M].2版.武汉:华中科技大学出版社,2003.

HOU Jun-jie.Explain Profound Theories in Simple Language MFC[M].2nd ed.Wuhan:Huazhong University of Science and Technology Press,2003.

[6] 刘淼,张宏伟,马俊涛,等.基于COM技术和WinSock技术的雷达显示系统设计[J].仪表技术,2010,1(2):18-20.

LIU Miao,ZHANG Hong-wei,MA Jun-tao,et al.System Design of COM Technology and WinSock Technology Based on the Radar Display[J]. Instrumental Technique,2010,1(2):18-20.

[7] 宋锐,张静,夏胜平,等.基于通用微机的数字化雷达显控终端实现[J].系统仿真学报,2003,4(5):10-12.

SONG Rui,ZHANG Jing,XIA Sheng-ping,et al. Realization of Digital Radar Terminal Display and Control based on Microcomputer[J]. Journal of System Simulation,2003,4(5):10-12.

[8] Davis Chapman.学用Visual C++6.0[M].骆长乐,译.北京:清华大学出版社,2005.

Davis Chapman.Studies with Visual C++6.0[M].LUO Chang-le,Translate.Beijing: Tsinghua University Press,2005.

[9] 黄银园.基于消息驱动的光栅扫描雷达显示器软件设计[J].现代雷达,2010,6(4):18-19.

HUANG Yin-yuan. Raster Scan Radar Display Software Design Based on Message Drive[J]. Modern Radar,2010,6(4):18-19.

[10] 毕红葵,王红,武文,等.光栅扫描雷达显示系统关键技术问题解决方案[J].系统工程与电子技术,2002, 24(5):14-15, 19.

BI Hong-kui,WANG Hong,WU Wen,et al. Solution of Key Technical Problems of the System of Raster Scan Radar Display[J]. Systems Engineering and Electronics,2002, 24(5):14-15, 19.

[11] 贺其元,张尊泉.基于DirectX和PCI总线的光栅扫描显示系统[J].现代雷达,2003,25(2):54-56.

HE Qi-yuan,ZHANG Zun-quan. Raster Scan and Display System Based on DirectX and PCI bus[J]. Modern Radar,2003,25(2):54-56.

[12] 邹焕新,周石琳,郑键. 基于 VC++和Direct3D 的雷达PPI 显示器仿真[J].计算机工程,2009,35(6):20-22.

ZOU Huan-xin,ZHOU Shi-lin,ZHENG Jian. Radar PPI Display VC++ and Simulation Based on Direct3D[J]. Computer Engineering,2009,35(6):20-22.

猜你喜欢

海图纹理终端
复杂线束在双BCI耦合下的终端响应机理
X美术馆首届三年展:“终端〉_How Do We Begin?”
纸海图AI小改正制作模式探讨
基于BM3D的复杂纹理区域图像去噪
使用纹理叠加添加艺术画特效
基于声波检测的地下防盗终端
少林功夫拳(三)
TEXTURE ON TEXTURE质地上的纹理
民用海图编绘中数据一致性分析和改进
“吃人不吐骨头”的终端为王