沈靜波,劉 揚(yáng)
(中國(guó)電子科技集團(tuán)公司第38研究所,合肥230088)
隨著計(jì)算機(jī)處理能力的提高和計(jì)算機(jī)圖形學(xué)的發(fā)展,雷達(dá)光柵顯示設(shè)備不僅可以顯示動(dòng)目標(biāo)信息,而且可以疊加顯示地圖、刻度線和標(biāo)繪信息,為用戶提供了更加友好的人機(jī)界面,從而成為當(dāng)前雷達(dá)主流的顯示平臺(tái)[1]。但光柵顯示也存在一個(gè)明顯的瓶頸:雷達(dá)回波顯示。由于雷達(dá)回波顯示的計(jì)算量龐大,再加上余輝模擬的計(jì)算量,往往難以支持過高的雷達(dá)轉(zhuǎn)速?,F(xiàn)階段的雷達(dá)回波顯示技術(shù)一般可以良好地支持10~20r/min的轉(zhuǎn)速,提供連續(xù)穩(wěn)定的回波顯示和余輝繪制。但隨著雷達(dá)技術(shù)的發(fā)展和用戶需求的不斷提高,場(chǎng)面監(jiān)視雷達(dá)的轉(zhuǎn)速已經(jīng)提高到60r/min,傳統(tǒng)的雷達(dá)回波顯示技術(shù)已經(jīng)不能適應(yīng)這種高速大容量雷達(dá)回波顯示的需求。
雷達(dá)回波顯示的主要瓶頸在于計(jì)算量大。
雷達(dá)顯示器的分辨率一般為1 600×1 200,顯示回波和其他雷達(dá)圖像信號(hào)的主顯示區(qū)大小為1 200×1 200。雷達(dá)顯示需要支持漫游和縮放操作,常規(guī)雷達(dá)可以支持8倍率的放大,這就意味著每個(gè)方位必須有至少600×8(即4 800)個(gè)點(diǎn),才能實(shí)現(xiàn)距離上的全覆蓋。為了實(shí)現(xiàn)遠(yuǎn)端方位上的全覆蓋,信號(hào)處理一般會(huì)傳入16 384個(gè)方位,盡可能地消除放大后的遠(yuǎn)端死點(diǎn)。對(duì)于每個(gè)回波點(diǎn),雷達(dá)顯示軟件都需要進(jìn)行坐標(biāo)轉(zhuǎn)換,計(jì)算出對(duì)應(yīng)的屏幕像素點(diǎn),并對(duì)位于屏幕顯示范圍內(nèi)的回波點(diǎn)完成顯示和繪制。這就意味著,當(dāng)雷達(dá)轉(zhuǎn)速為60r/min時(shí),每秒需要完成4 800×16 384(約8千萬)個(gè)點(diǎn)的坐標(biāo)轉(zhuǎn)換和繪制工作,這涉及到大量的sin函數(shù)和cos函數(shù)的浮點(diǎn)運(yùn)算。且在回波繪制的同時(shí),需要實(shí)現(xiàn)余輝消隱,這就意味著每秒鐘至少要對(duì)全屏每個(gè)像素點(diǎn)進(jìn)行20次以上的衰減操作。
為了實(shí)現(xiàn)雷達(dá)回波的實(shí)時(shí)顯示,傳統(tǒng)雷達(dá)主要通過純軟件和軟硬件結(jié)合2種方式實(shí)現(xiàn)雷達(dá)顯示畫面的繪制。
(1)純軟件的方法:主要是通過DirectX的直接寫屏技術(shù)[2]或 OpenGL的渲染繪制技術(shù)[3],并配合動(dòng)態(tài)查表法以提高坐標(biāo)轉(zhuǎn)換的速度,從而實(shí)現(xiàn)雷達(dá)回波的繪制,最高可以達(dá)到30r/min。
(2)軟硬件結(jié)合的方法:主要通過專用的圖形采集卡對(duì)回波信號(hào)直接進(jìn)行抽取和繪制,最后將形成的回波圖像直接送顯卡,和顯示軟件生成的目標(biāo)和地圖等二次信息圖像進(jìn)行疊加,實(shí)現(xiàn)雷達(dá)回波的繪制,最高也可以達(dá)到30r/min。
對(duì)于場(chǎng)面監(jiān)視雷達(dá)60r/min的高轉(zhuǎn)速需求,不管是純軟件的方法還是軟硬件結(jié)合的方法,都有些顯得心有余而力不足,所以不得不另辟蹊徑。隨著顯卡性能的不斷提升,當(dāng)前主流顯卡都已經(jīng)具備圖形處理單元(GPU)運(yùn)算能力。而雷達(dá)回波繪制的過程是一個(gè)高度并行化的計(jì)算過程,每個(gè)屏幕像素點(diǎn)可以獨(dú)立繪制,所以非常適合移植到GPU上進(jìn)行并行計(jì)算。近兩年,謝永亮[4]和王金波[5]先后邁出了雷達(dá)回波并行化處理的第一步。
這里考慮引入CUDA技術(shù),通過屏幕直角坐標(biāo)系的形式存儲(chǔ)雷達(dá)回波數(shù)據(jù),利用顯卡的并行化計(jì)算能力處理分擔(dān)中央處理器(CPU)的計(jì)算量,實(shí)現(xiàn)雷達(dá)回波的繪制,同時(shí)支持顯示畫面的縮放和漫游等顯示干預(yù)操作。
這里的回波繪制分為3個(gè)階段:
(1)根據(jù)實(shí)時(shí)傳入的回波數(shù)據(jù)生成整個(gè)回波顯示區(qū)的屏幕回波強(qiáng)度表;
(2)根據(jù)屏幕回波強(qiáng)度表在回波位面上繪制回波圖像;
(3)余輝衰減。
其中,屏幕回波強(qiáng)度表為一個(gè)二維數(shù)組,記為arrScreenEcho[1200][1200],用于存儲(chǔ)每個(gè)屏幕像素點(diǎn)的回波強(qiáng)度。此處沒有采用如參考文獻(xiàn)[4]和[5]中極坐標(biāo)系的方式存儲(chǔ)雷達(dá)回波數(shù)據(jù)的主要原因:當(dāng)顯示畫面需要支持縮放和漫游時(shí),極坐標(biāo)系所需的存儲(chǔ)空間會(huì)隨著方位單元和距離單元數(shù)的增加而大幅增長(zhǎng),而屏幕直角坐標(biāo)系的存儲(chǔ)空間消耗則是穩(wěn)定的。
首先,為每個(gè)方位的回波數(shù)據(jù)定義一個(gè)屬性結(jié)構(gòu)體:
每當(dāng)接收到一個(gè)方位的回波數(shù)據(jù),CPU都會(huì)把回波數(shù)據(jù)和方位信息傳入顯卡,由顯卡上的GPU對(duì)回波數(shù)據(jù)進(jìn)行處理,更新顯存中保存的屏幕回波強(qiáng)度表。這是一個(gè)高度并行化的過程,顯卡GPU啟動(dòng)4 800個(gè)線程,每個(gè)線程對(duì)應(yīng)一個(gè)回波點(diǎn)。每個(gè)線程根據(jù)當(dāng)前縮放比例進(jìn)行坐標(biāo)轉(zhuǎn)換,獲得屏幕點(diǎn)坐標(biāo),更新屏幕回波強(qiáng)度表。
由于整個(gè)屏幕是定時(shí)翻屏刷新,所以,每當(dāng)需要刷新回波畫面時(shí),都需要將屏幕回波強(qiáng)度表中每個(gè)像素點(diǎn)顯示到回波位面上。此時(shí),每個(gè)像素點(diǎn)對(duì)應(yīng)一個(gè)線程,整個(gè)屏幕對(duì)應(yīng)了1 200×1 200個(gè)線程。這些線程被分為75×75個(gè)線程塊,每個(gè)塊中包含16×16個(gè)線程。假設(shè):
則x和y的值就對(duì)應(yīng)了該線程像素點(diǎn)的屏幕坐標(biāo)。每個(gè)線程根據(jù)屏幕回波強(qiáng)度表獲得該像素點(diǎn)的回波強(qiáng)度,計(jì)算出該點(diǎn)對(duì)應(yīng)的顏色值,并將結(jié)果寫入回波位面的對(duì)應(yīng)地址,從而形成了回波圖像。
整個(gè)屏幕定時(shí)觸發(fā)余輝衰減,對(duì)每個(gè)像素點(diǎn)的亮度進(jìn)行衰減,這同樣是一個(gè)高度并行化的過程。沿用2.2節(jié)的線程劃分,每個(gè)像素點(diǎn)對(duì)應(yīng)一個(gè)線程,根據(jù)屏幕回波強(qiáng)度表中的回波強(qiáng)度進(jìn)行衰減,再將計(jì)算結(jié)果存入屏幕回波強(qiáng)度表,等待下一次翻屏刷新時(shí)繪制。
通過使用上述三段式的回波繪制方法,CPU只需要實(shí)時(shí)將回波數(shù)據(jù)傳入顯存,并定時(shí)觸發(fā)回波繪制和余輝衰減,再?gòu)娘@存獲取生成的回波位面即可。而大量的坐標(biāo)轉(zhuǎn)換運(yùn)算、繪制操作和余輝消隱都通過顯卡的GPU并行化實(shí)現(xiàn),極大降低了CPU的負(fù)載,使其可以專注于目標(biāo)信息以及地圖等二次信息的繪制。
上述雷達(dá)回波數(shù)據(jù)顯示技術(shù)已在某場(chǎng)面監(jiān)視雷達(dá)中得到應(yīng)用。該雷達(dá)的轉(zhuǎn)速為60r/min,雷達(dá)回波區(qū)分辨率1 200×1 200,每秒翻屏50次,余輝衰減25次。程序運(yùn)行在Pentium Dual-Core CPU上,主頻3.2GHz,顯卡為NVIDIA Quadro 2000。
圖2是根據(jù)模擬數(shù)據(jù)產(chǎn)生的雷達(dá)回波畫面,圖3是放大后的雷達(dá)回波畫面。該畫面清晰平滑,顯示流暢,可以同時(shí)疊加刻度線等矢量信息,能適應(yīng)高速大容量的雷達(dá)回波數(shù)據(jù)。
圖1 高分辨率的雷達(dá)回波畫面
圖2 放大后的回波顯示效果
本文將CUDA技術(shù)和DirectX技術(shù)相結(jié)合,提出了一種高速雷達(dá)回波的顯示技術(shù)。該技術(shù)通過利用顯卡的并行化計(jì)算能力,將坐標(biāo)轉(zhuǎn)換和余輝消隱等并行化程度高且計(jì)算量較大的操作都放在GPU中進(jìn)行,從而提高了雷達(dá)回波的顯示速度,使得CPU可以專注于目標(biāo)信息、地圖和刻度線信息等二次信息的繪制。該技術(shù)已在某場(chǎng)面監(jiān)視雷達(dá)中得到應(yīng)用,顯示畫面清晰流暢,支持縮放、漫游等顯示干預(yù)操作,能滿足60r/min高速雷達(dá)回波顯示的設(shè)計(jì)要求。
[1]劉揚(yáng).軟件化多功能雷達(dá)光柵顯示設(shè)備設(shè)計(jì)[J].雷達(dá)科學(xué)與技術(shù),2008,6(3):206-209.
[2]程玉榮,劉忠義,劉鴻.基于動(dòng)態(tài)數(shù)據(jù)表的實(shí)時(shí)高分辨率雷達(dá)回波顯示[J].系統(tǒng)仿真學(xué)報(bào),2008,20(4):882-884.
[3]張鵬.一種基于OpenGL的雷達(dá)回波顯示方法 [J].艦船電子對(duì)抗,2011,34(3):39-42.
[4]謝永亮,湯曉迪,劉尚富,等.基于CUDA技術(shù)模擬雷達(dá)余輝的方法[J].微型機(jī)與應(yīng)用,2011,30(8):61-63,66.
[5]王金波,察豪,劉峰.一種利用CUDA技術(shù)實(shí)現(xiàn)雷達(dá)余輝效果的方法[J].海軍工程大學(xué)學(xué)報(bào),2012,24(3):103-106.