魏延巖
摘要:在嵌入式系統(tǒng)中為了實現(xiàn)羅盤刻度在運動過程中做到實時、反走樣、不扭曲、高速繪制,需要采取各種軟件方法實現(xiàn),包括采用軟件濾波算法、提取多幅圖像或者高級可編程圖形處理芯片等。通過實踐驗證,采用壓縮圖像灰度數(shù)據(jù)的算法將復(fù)雜的算法都在桌面通用系統(tǒng)中實現(xiàn),而在嵌入式系統(tǒng)中繪制羅盤時只需要最為簡單直接的刻度線上的像素點繪制。該算法適用于沒有可編程圖形處理芯片的嵌入式處理器平臺。
關(guān)鍵詞:嵌入式系統(tǒng);壓縮;羅盤刻度;
引言
羅盤作為座艙航電系統(tǒng)中最主要的飛行儀表之一,對于安全飛行是非常重要的,20世紀(jì)50年代,飛機(jī)采用的大多是機(jī)械式、磁電式、機(jī)電伺服式組合儀表,磁羅盤就是在這個時期被廣泛應(yīng)用。
20世紀(jì)80年代中后期,飛機(jī)座艙開始采用電子綜合顯示器,采用圖形、數(shù)字等電子顯示符號模擬機(jī)械式儀表盤,提高了集成度,實現(xiàn)了綜合顯示。
電子顯示符號最為電子顯示器最重要的元素,用于產(chǎn)生飛機(jī)狀態(tài)和各種飛行參數(shù)畫面,例如:主飛行顯示畫面(PFD)、導(dǎo)航畫面(ND)、發(fā)動機(jī)指示及機(jī)組告警系統(tǒng)(EICAS)。
這些電子顯示符號對應(yīng)的圖形在運動過程中必須做到平滑旋轉(zhuǎn)、不扭曲變形、不閃爍、不卡頓等高質(zhì)量的顯示效果。由于電子顯示器受到液晶顯示屏分辨率、有效顯示面積、以及生成圖形所采用的圖形處理芯片的限制,針對不同的硬件平臺需要采用不同的軟件方法實現(xiàn)羅盤的繪制,如采取純軟件算法實現(xiàn)反走樣刻度線的繪制,采用圖形芯片自帶的硬件反走樣直線再結(jié)合軟件算法改善線段端點,以及本文采取的圖像壓縮及解壓縮算法實現(xiàn)。
一、羅盤走樣的原因
通常羅盤是有每10度一根的長刻度線和每5度一根的短刻度線繪制的。
如果刻度線本身不具備反走樣處理,或者線段具有反走樣,而線段的端點不具備反走樣處理,則在旋轉(zhuǎn)過程中就會出現(xiàn)扭曲、抖動的現(xiàn)象;而如果繪制速度過慢則會導(dǎo)致羅盤卡頓現(xiàn)象。
二、幾種羅盤繪制方法對比
羅盤反走樣繪制技術(shù)一般有以下幾種方法:
(一)純軟件算法
采用擴(kuò)展的Bresenham算法和使用不同卷積核的多種濾波算法,如著名的Wu算法、以及根據(jù)面積畫反走樣直線的算法等。這種算法適用于分辨率較低且不帶有圖形硬件加速能力的顯示,因為如果羅盤尺寸越大,線段越粗,采用軟件算法繪制直線的計算量就越大,從而導(dǎo)致畫面顯示卡頓,影響判讀。而采用軟件算法的優(yōu)點是繪制的羅盤反走樣效果好,軟件占用空間小。
(二)硬件加速結(jié)合軟件算法
指采用圖形處理芯片,這類芯片具有自帶的硬加加速反走樣直線、多邊形填充等功能,但是之類芯片中的硬加加速反走樣直線通常有一個缺點,就是線段的端點不具有反走樣處理,如圖4所示,線段在45度角以下的端點為垂直邊界,45度角以上為水平邊界。
這類情況需要采用軟件算法對其端點進(jìn)行處理,最簡單的方法是計算每條線段的法線方向,采用與線段垂直的背景色線段進(jìn)對其兩個端點進(jìn)行覆蓋,從而實現(xiàn)反走樣羅盤的繪制。這種方法的優(yōu)點是繪制速度快,缺點是必須采用高質(zhì)量的圖形處理芯片,采用保證其硬件加速反走樣直線的顯示效果。
三、本文提出的羅盤壓縮與顯示算法
本文提到的羅盤壓縮與顯示是在貼圖繪制方法的基礎(chǔ)上進(jìn)行優(yōu)化的。
首先根據(jù)需要可以通過PhotoShop等圖形處理軟件繪制一幅0度的全羅盤,提取的灰度數(shù)組設(shè)定為image [pic_wide*pic_wide],確保每條刻度線都是等線寬,且線段兩個端點根據(jù)需要繪制成反走樣的矩形或圓形。
將每0.25度旋轉(zhuǎn)的40幅羅盤畫面的圖像繪制好,也可以通過VC等軟件采用純軟件反走樣的旋轉(zhuǎn)算法實現(xiàn)羅盤的40幅圖像的繪制。
假定分辨率為384×384像素的羅盤,只需要提取第一像素的圖像的灰度值,每幅畫面占有36864(192×192)個字節(jié),由于羅盤畫面的灰度值只有高4位有效,如果是黑色則低4位為0,如果有灰度則低4位為0xf,對灰度數(shù)組進(jìn)行壓縮處理,壓縮采取背景色和最高灰度色壓縮,即當(dāng)檢測到圖像對應(yīng)的灰度數(shù)組中的像素為背景色時,開始記錄有多少個連續(xù)的像素為背景色,以兩個字節(jié)代表,設(shè)置字頭為0xC0,字頭的低6位和第二個字節(jié)代表背景色像素數(shù)量;當(dāng)檢測到圖像對應(yīng)的灰度數(shù)組中的像素為最高灰度值0xff時,用一個字節(jié)代表,設(shè)置字頭為0x80,第二個字節(jié)代表最高灰度值像素數(shù)量;其它灰度值采用單個字節(jié)表示,設(shè)置字頭為字節(jié)的高2位為0。
根據(jù)壓縮算法得到的40幅畫面壓縮后占用的存儲空間相當(dāng)于壓縮前2幅畫面所占用的空間。非常有效的節(jié)省了旋轉(zhuǎn)圖像所占用的內(nèi)存空間。
在繪制羅盤時只需要采用與壓縮方式相反的方法解壓縮數(shù)據(jù),并可根據(jù)需要選擇指定顏色的羅盤刻度線,如白色或藍(lán)色,另外,還可以實現(xiàn)與背景色融合。采用這種方法繪制的羅盤反走樣效果好,且不需要復(fù)制算法計算,且可以只繪制刻度線而不繪制背景色,每次還可以同時繪制四個象限的相同點,在嵌入式系統(tǒng)中采用這種方式繪制羅盤最為簡潔快速,對硬件要求最低,不需要圖形處理器硬件加速。
四、結(jié)束語
采用圖像壓縮技術(shù)繪制羅盤刻度,和其他算法相比較,更簡單直接,將復(fù)雜的工作都在前期完成,而真正繪制羅盤時既簡單又快速,尤其適用于嵌入式平臺。該方法已經(jīng)在Windows環(huán)境下的VC軟件以及嵌入式圖形生成環(huán)境下實踐,通過測試,反走樣效果好,繪制算法簡單,具有快速的處理速度,從而實現(xiàn)反走樣羅盤刻度的快速繪制。該圖像壓縮方法也適用于指針、刻度的旋轉(zhuǎn)。
參考文獻(xiàn):
[1]張波,張煥春,經(jīng)亞枝。基于DSP和FPGA的座艙圖形顯示系統(tǒng)關(guān)鍵技術(shù)研究。南京:南京航空航天大學(xué),2003。
[2]杜晨輝。提高飛機(jī)座艙顯示系統(tǒng)羅盤畫面顯示質(zhì)量的研究。南京:南京航空航天大學(xué),2002.1。
[3](美)羅杰斯(Rogcrs,D.F.)著;石教英等譯。計算機(jī)圖形學(xué)的算法基礎(chǔ)(Procedural Elements for Computer Graphics)。北京;機(jī)械工業(yè)出版社。2002.1。
[4]孫家廣 等編著。計算機(jī)圖形學(xué)(第三版)。北京:清華大學(xué)出版社,2002。
[5]何明耘,張素,戴冠中,徐乃平。虛擬座艙中平顯功能實現(xiàn)算法研究。西安:西北工業(yè)大學(xué),2001。