座舱显示器罗盘画面的快速绘制算法

2020-06-24 03:06魏延岩
中国新通信 2020年2期
关键词:嵌入式系统

魏延岩

摘要:在嵌入式系统中为了实现罗盘刻度在运动过程中做到实时、反走样、不扭曲、高速绘制,需要采取各种软件方法实现,包括采用软件滤波算法、提取多幅图像或者高级可编程图形处理芯片等。通过实践验证,采用压缩图像灰度数据的算法将复杂的算法都在桌面通用系统中实现,而在嵌入式系统中绘制罗盘时只需要最为简单直接的刻度线上的像素点绘制。该算法适用于没有可编程图形处理芯片的嵌入式处理器平台。

关键词:嵌入式系统;压缩;罗盘刻度;

引言

罗盘作为座舱航电系统中最主要的飞行仪表之一,对于安全飞行是非常重要的,20世纪50年代,飞机采用的大多是机械式、磁电式、机电伺服式组合仪表,磁罗盘就是在这个时期被广泛应用。

20世纪80年代中后期,飞机座舱开始采用电子综合显示器,采用图形、数字等电子显示符号模拟机械式仪表盘,提高了集成度,实现了综合显示。

电子显示符号最为电子显示器最重要的元素,用于产生飞机状态和各种飞行参数画面,例如:主飞行显示画面(PFD)、导航画面(ND)、发动机指示及机组告警系统(EICAS)。

这些电子显示符号对应的图形在运动过程中必须做到平滑旋转、不扭曲变形、不闪烁、不卡顿等高质量的显示效果。由于电子显示器受到液晶显示屏分辨率、有效显示面积、以及生成图形所采用的图形处理芯片的限制,针对不同的硬件平台需要采用不同的软件方法实现罗盘的绘制,如采取纯软件算法实现反走样刻度线的绘制,采用图形芯片自带的硬件反走样直线再结合软件算法改善线段端点,以及本文采取的图像压缩及解压缩算法实现。

一、罗盘走样的原因

通常罗盘是有每10度一根的长刻度线和每5度一根的短刻度线绘制的。

如果刻度线本身不具备反走样处理,或者线段具有反走样,而线段的端点不具备反走样处理,则在旋转过程中就会出现扭曲、抖动的现象;而如果绘制速度过慢则会导致罗盘卡顿现象。

二、几种罗盘绘制方法对比

罗盘反走样绘制技术一般有以下几种方法:

(一)纯软件算法

采用扩展的Bresenham算法和使用不同卷积核的多种滤波算法,如著名的Wu算法、以及根据面积画反走样直线的算法等。这种算法适用于分辨率较低且不带有图形硬件加速能力的显示,因为如果罗盘尺寸越大,线段越粗,采用软件算法绘制直线的计算量就越大,从而导致画面显示卡顿,影响判读。而采用软件算法的优点是绘制的罗盘反走样效果好,软件占用空间小。

(二)硬件加速结合软件算法

指采用图形处理芯片,这类芯片具有自带的硬加加速反走样直线、多边形填充等功能,但是之类芯片中的硬加加速反走样直线通常有一个缺点,就是线段的端点不具有反走样处理,如图4所示,线段在45度角以下的端点为垂直边界,45度角以上为水平边界。

这类情况需要采用软件算法对其端点进行处理,最简单的方法是计算每条线段的法线方向,采用与线段垂直的背景色线段进对其两个端点进行覆盖,从而实现反走样罗盘的绘制。这种方法的优点是绘制速度快,缺点是必须采用高质量的图形处理芯片,采用保证其硬件加速反走样直线的显示效果。

三、本文提出的罗盘压缩与显示算法

本文提到的罗盘压缩与显示是在贴图绘制方法的基础上进行优化的。

首先根据需要可以通过PhotoShop等图形处理软件绘制一幅0度的全罗盘,提取的灰度数组设定为image [pic_wide*pic_wide],确保每条刻度线都是等线宽,且线段两个端点根据需要绘制成反走样的矩形或圆形。

将每0.25度旋转的40幅罗盘画面的图像绘制好,也可以通过VC等软件采用纯软件反走样的旋转算法实现罗盘的40幅图像的绘制。

假定分辨率为384×384像素的罗盘,只需要提取第一像素的图像的灰度值,每幅画面占有36864(192×192)个字节,由于罗盘画面的灰度值只有高4位有效,如果是黑色则低4位为0,如果有灰度则低4位为0xf,对灰度数组进行压缩处理,压缩采取背景色和最高灰度色压缩,即当检测到图像对应的灰度数组中的像素为背景色时,开始记录有多少个连续的像素为背景色,以两个字节代表,设置字头为0xC0,字头的低6位和第二个字节代表背景色像素数量;当检测到图像对应的灰度数组中的像素为最高灰度值0xff时,用一个字节代表,设置字头为0x80,第二个字节代表最高灰度值像素数量;其它灰度值采用单个字节表示,设置字头为字节的高2位为0。

根据压缩算法得到的40幅画面压缩后占用的存储空间相当于压缩前2幅画面所占用的空间。非常有效的节省了旋转图像所占用的内存空间。

在绘制罗盘时只需要采用与压缩方式相反的方法解压缩数据,并可根据需要选择指定颜色的罗盘刻度线,如白色或蓝色,另外,还可以实现与背景色融合。采用这种方法绘制的罗盘反走样效果好,且不需要复制算法计算,且可以只绘制刻度线而不绘制背景色,每次还可以同时绘制四个象限的相同点,在嵌入式系统中采用这种方式绘制罗盘最为简洁快速,对硬件要求最低,不需要图形处理器硬件加速。

四、结束语

采用圖像压缩技术绘制罗盘刻度,和其他算法相比较,更简单直接,将复杂的工作都在前期完成,而真正绘制罗盘时既简单又快速,尤其适用于嵌入式平台。该方法已经在Windows环境下的VC软件以及嵌入式图形生成环境下实践,通过测试,反走样效果好,绘制算法简单,具有快速的处理速度,从而实现反走样罗盘刻度的快速绘制。该图像压缩方法也适用于指针、刻度的旋转。

参考文献:

[1]张波,张焕春,经亚枝。基于DSP和FPGA的座舱图形显示系统关键技术研究。南京:南京航空航天大学,2003。

[2]杜晨辉。提高飞机座舱显示系统罗盘画面显示质量的研究。南京:南京航空航天大学,2002.1。

[3](美)罗杰斯(Rogcrs,D.F.)著;石教英等译。计算机图形学的算法基础(Procedural Elements for Computer Graphics)。北京;机械工业出版社。2002.1。

[4]孙家广 等编著。计算机图形学(第三版)。北京:清华大学出版社,2002。

[5]何明耘,张素,戴冠中,徐乃平。虚拟座舱中平显功能实现算法研究。西安:西北工业大学,2001。

猜你喜欢
嵌入式系统
Teaching Research on IoT and—Embedded System of Software Engineering
基于Xilinx口袋实验室的组合逻辑电路设计实验
面向应用的智能专业嵌入式系统教学
基于AVR单片机的SPI接口设计与实现
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究