视图渲染系统、频谱分析仪和渲染方法与流程

文档序号:16364312发布日期:2018-12-22 08:20阅读:355来源:国知局
视图渲染系统、频谱分析仪和渲染方法与流程

本发明属于视图渲染技术领域,尤其涉及一种视图渲染系统、频谱分析仪和渲染方法。

背景技术

视图渲染的过程是在获取到modelandview后的过程,即视图的渲染过程是把model包装成map形式通过request的属性带到服务器端。

频谱分析仪是研究电信号频谱结构的仪器,用于信号失真度、调制度、谱纯度、频率稳定度和交调失真等信号参数的测量,可用以测量放大器和滤波器等电路系统的某些参数,是一种多用途的电子测量仪器。

手持式频谱分析仪搭载的嵌入式频谱分析软件(下文简称频谱分析软件)很大程度上影响着频谱分析仪的分析效率和电池电量的消耗情况,对测量分析结果的视图渲染是频谱分析软件中非常耗费资源的部分,且视图渲染在整个测量过程中是持续高速进行的。频谱分析软件在分析测量过程中,通常会将单个视图从视图背景、信号曲线至分析结果等元素在后台依次渲染至同一缓冲区,然后将渲染完成后的结果一次性复制至显示设备上,实现对频谱分析结果的持续观测。由于手持式频谱分析仪体积小等特点,系统是不带gpu显卡硬件的,因此,对信号的渲染处理均由中央处理器即cpu进行的。

频谱分析软件的视图由多种元素组成,渲染元素多,计算量大,这种单层双缓冲渲染方法在持续测量过程中,会将不变或被动变化的内容,如视图中按对数分布的背景网格、参考幅度、扫描信息等元素,随着持续变化的信号曲线被不断的重复渲染,这种含有大量浮点型对数计算的重复渲染会持续消耗中央处理器资源,延长单次渲染时间和增加电池耗电量,进而降低手持式频谱分析软仪的分析效率和电池使用时长。



技术实现要素:

本发明针对现有技术中在频谱分析软件的测量分析结果的视图渲染过程中,所存在的资源耗费的技术问题,提出一种具有降低资源消耗和提高视图渲染灵活性的视图渲染系统、频谱分析仪和渲染方法。

为了实现上述目的,本发明提供了一种视图渲染系统,其特征在于,包括第一元素缓冲单元和第二元素缓冲单元,第一元素缓冲单元用于视图的持续变化的元素的持续渲染;第二元素缓冲单元用于视图的不变或被动变化的元素的渲染。

优选的是,所述视图渲染系统还包括数据合成显示单元,数据合成显示单元用于合成并显示第一元素缓冲单元中视图的持续变化的元素、第二元素缓冲单元中视图的不变或被动变化的元素的渲染画面。

优选的是,所述的数据合成显示单元还包括显示层设置模块,所述的显示层设置模块用于设置第一元素缓冲单元、第二元素缓冲单元的显示层背景色。

优选的是,第一元素缓冲单元对应显示设备的上层显示层,第二元素缓冲单元对应显示设备的下层显示层,其中,上层显示层的背景色设置为透明色;下层显示层的背景色设置为黑色。

本发明还提供了一种频谱分析仪,其特征在于,包括所述的视图渲染系统。

本发明还提供了一种视图渲染方法,其特征在于,包括:

渲染元素的类型划分,划分为至少两类,一类为视图的持续变化的元素,另一类为不变或被动变化的元素;

对持续变化的元素、不变或被动变化的元素进行独立渲染。

优选的是,持续变化的元素形成集合d,其中的元素以di进行标识,i=0,1,2…n,n为集合d中待渲染元素总数;

不变或被动变化的元素形成集合s,其中的元素以si进行标识,i=0,1,2…m,m为集合s中待渲染元素总数。

优选的是,对视图持续变化的元素渲染至第一元素缓冲单元对应的显示层中,对不变或被动变化的元素渲染至第二元素缓冲单元对应的显示层中。

优选的是,发生多视图切换时,根据视图尺寸及元素特性,对第一元素缓冲单元、第二元素缓冲单元进行独立的尺寸缩放,并对所用绘图工具对象状态复位。

优选的是,不变或被动变化的元素的状态可被设定,改变不变或被动变化元素的状态后,覆盖改变前的第二元素缓冲单元显示层显示的内容,再将改变后的不变或被动变化的元素渲染至第二元素缓冲单元对应的显示层中。

优选的是,第一元素缓冲单元、第二元素缓冲单元的渲染结果从下层显示层至上层显示层依次持续复制到显示设备上。

与现有技术相比,本发明的优点和积极效果在于:通过设定两个独立的第一元素缓冲单元、第二元素缓冲单元,且上述第一元素缓冲单元进行持续变化元素的渲染,不变或被动变化的元素的渲染从渲染线程中脱离出来,只在元素发生变化的时候,在第二元素缓冲单元中进行独立渲染,由于第二元素缓冲单元不是持续渲染,这样就缩短了频谱分析软件单次渲染时间及降低电池耗电量,且更有利于提高基于这种视图渲染系统和方法的手持式频谱分析仪的整体性能。另外,第一元素缓冲单元、第二元素缓冲单元的渲染均独立控制,能够满足更多的渲染需求,提高渲染的灵活适应性,从而有效避免了对视图中不变或是被动变化的元素的重复渲染计算,实现了只在需要时候进行渲染计算的目的,具有有效提高分析效率和节省用电量的积极效果。

附图说明

图1为本发明渲染线程的主流程控制图;

图2为本发明发生多视图切换状态下的分支流程控制图;

图3为本发明执行用户操作状态下的分支流程控制图。

具体实施方式

以下,结合附图对本发明的具体实施方式进行进一步的描述。

本发明所提供的一种视图渲染系统,包括第一元素缓冲单元和第二元素缓冲单元,第一元素缓冲单元用于视图的持续变化的元素的持续渲染;第二元素缓冲单元用于视图的不变或被动变化的元素的渲染。

本发明还提供了一种基于上述视图渲染系统的频谱分析仪,其中,第一元素缓冲单元用于扫频分析过程中视图的持续变化的元素的持续渲染,例如:信号曲线、频标等。第二元素缓冲单元用于扫频分析过程中视图的不变或被动变化的元素的渲染,并将不变或被动变化的元素的渲染从渲染线程中脱离出来,只在元素发生变化的时候,在第二元素缓冲单元中进行独立渲染,例如:背景网格等。

视图渲染系统还包括数据合成显示单元,数据合成显示单元分别用于合成并显示第一元素缓冲单元中视图的持续变化的元素、第二元素缓冲单元中视图的不变或被动变化的元素的渲染画面。数据合成显示单元还包括显示层设置模块,显示层设置模块用于第一元素缓冲单元、第二元素缓冲单元的显示层背景色的设置。其中,第一元素缓冲单元对应有上层显示层,第二元素缓冲单元对应有下层显示层,且上层显示层的背景色设置为透明色;下层显示层的背景色设置为黑色。持续变化的元素、不变或被动变化的元素通过本发明的渲染系统分析处理后的渲染画面,彼此独立渲染在第一元素缓冲单元的上层显示层、第二元素缓冲单元的下层显示层。

具体地,在基于上述视图渲染系统的频谱分析仪中,通过频谱分析软件中的qt窗体应用程序,定义两个独立的qpixmap对象,作为后台双层缓冲区的第一元素缓冲单元、第二元素缓冲单元,渲染线程对第一元素缓冲单元进行持续变化元素的渲染,第一元素缓冲单元对应显示设备的上层显示层,且上层显示层的背景色设置为透明色,第二元素缓冲单元进行不变或被动变化元素的渲染,第二元素缓冲单元对应显示设备的下层显示层,且下层显示层的背景色设置为黑色,第一元素缓冲单元与第二元素缓冲单元的渲染结果的显示过程,由渲染线程异步触发,并从下层显示层至上层显示层依次持续复制到显示设备上。这样第一元素缓冲单元对应的上层显示层透明色的背景,就不会遮挡第二元素缓冲单元对应的下层显示层的黑色背景图层了,从而实现有利于实现完整的视图渲染显示。另外,由于第二元素缓冲单元不是持续渲染,这样就缩短了频谱分析软件单次渲染时间及降低了电池耗电量,提高了手持式频谱分析仪的整体性能,同时,第一元素缓冲单元、第二元素缓冲单元的渲染及显示层的尺寸缩放均独立控制,使分析软件满足更多的渲染需求,提高渲染的灵活适应性。

本发明还提供了一种视图渲染方法,如图1-3所示的控制流程图,具体包括以下控制过程:

渲染元素的类型划分:

持续变化的元素形成集合d,其中的元素以di进行标识,i=0,1,2…n,n为集合d中待渲染元素总数;

不变或被动变化的元素形成集合s,其中的元素以si进行标识,i=0,1,2…m,m为集合s中待渲染元素总数;

对象预定义:

对于集合d中元素di,定义内部私有渲染函数dynprirenderfunc_i(),用于在渲染线程的内部调用,将元素di渲染至第一元素缓冲单元;

对于集合s中元素si,定义内部私有渲染函数staprirenderfunc_i(),用于视图尺寸发生变化时内部调用;定义外部公有渲染函数stapubrenderfunc_i(),用于不变或被动变化的元素的状态改变时的外部调用,其中,内部调用与外部调用在控制上独立,元素si渲染至第二元素缓冲单元;

第一元素缓冲单元定义为gupperbufmap,作为上层缓冲区;

第二元素缓冲单元定义为glowerbufmap,作为下层缓冲区;

还包括重载函数:repaint()函数、paintevent()函数、resizeevent()函数,其中,repaint()函数用于触发paint事件;paintevent()函数用于异步响应paint事件;resizeevent()函数用于响应resize事件;

执行双层双缓冲渲染控制,包括以下步骤:

步骤1.11:频谱分析软件启动渲染线程,在扫频分析过程中,对第一元素缓冲单元持续渲染和异步触发paint事件;

步骤1.12:将第一元素缓冲单元背景色置成透明色,覆盖上次渲染的画面,同时对所用绘图工具对象状态复位,为渲染当前元素集合d做好准备;

步骤1.13:对集合d中的元素,通过调用渲染函数dynprirenderfunc_i(),将元素di依次渲染至第一元素缓冲单元中;其中,渲染函数dynprirenderfunc_i()在调用时,只对集合d中元素渲染计算,将元素数据进行坐标系映射转换及形状渲染,在后台中完成整个动态元素集合的渲染计算;

步骤1.14:调用repaint()函数,触发paint事件,渲染线程重新从步骤1.11循环执行,同时,执行步骤1.41;

步骤1.21:发生多视图切换时,触发视图resize事件,导致整个视图内容无效,resizeevent()函数响应resize事件,并根据视图尺寸及元素特性对第一元素缓冲单元、第二元素缓冲单元进行独立的尺寸缩放;

步骤1.22:将第二元素缓冲单元背景色置成黑色,覆盖当前的画面状态,同时对所用绘图工具对象状态复位,为更新元素集合s做好准备;

步骤1.23:对集合s中的元素,通过调用渲染函数staprirenderfunc_i(),其中i=0,1,2…m,将元素si依次渲染至第二元素缓冲单元中,并执行步骤1.41,将更新后的第二元素缓冲单元的渲染结果复制至显示设备中;其中,渲染函数staprirenderfunc_i()在调用时,只对集合s中元素渲染计算,resize事件响应完成后,结束对元素集合s的渲染;

步骤1.31:不变或被动变化的元素的状态被设定时,用户执行具体操作,改变集合s中元素si的状态,将第二元素缓冲单元对应部分背景色置成黑色,覆盖改变前的第二元素缓冲单元显示层显示的内容,同时对所用绘图工具对象状态复位,为更新元素si做好准备;

步骤1.32:对于元素si,通过调用渲染函数stapubrenderfunc_i(),其中i=j~k,j>=0,k<=m,将元素si依次渲染至第二元素缓冲单元中,并执行步骤1.41,将更新后的第二元素缓冲单元的渲染结果复制至显示设备中;其中,渲染函数stapubrenderfunc_i()在调用时,只对集合s中元素渲染计算,响应完用户操作后,结束对元素集合s的渲染;

步骤1.41:paintevent()函数异步响应paint事件,脱离渲染线程执行,将第一元素缓冲单元和第二元素缓冲单元的渲染结果依次复制到显示设备中,实现元素集合d和元素集合s的完整显示。

本发明将频谱分析软件视图渲染的元素按是否持续变化划分,划分为至少两类,一类为视图的持续变化的元素,另一类为不变或被动变化的元素。具体地,一类为持续变化的元素,形成集合d;一类为不变或被动变化的元素,形成集合s。定义双层双缓冲区的第一元素缓冲单元、第二元素缓冲单元,在渲染线程中对集合d中的元素在第一元素缓冲单元中持续渲染,将集合s中元素的渲染从渲染线程中脱离出来,只当集合s中元素发生变化时在第二元素缓冲单元中独立渲染。本发明避免了对不变或被动元素的持续重复渲染,有效降低资源消耗和单次渲染耗时,提高手持式频谱分析仪的分析效率和降低电池耗电量,同时对视图元素的渲染有更好的灵活适应性。

在某型号手持式超外差扫频频谱分析仪项目中,运行连续扫描模式,通过应用本发明,相对采用单层双缓冲方式对视图中所有元素持续渲染,不仅能够有效避免对重复元素的持续渲染,且在资源使用率、分析性能及渲染灵活适应性等方面均有明显提升。

在本实施例中,进行测试的系统资源配置如下:

操作系统:ubuntu14.04.264位

中央处理器:intel(r)core(tm)i5-6500cpu@3.20ghz

内存:2gb

缓存:6144kb

qmake:qt5.9.2

编译器:gcc、g++64bit

频谱分析软件运行在单视图连续扫频模式下,视图同时显示最大保持、最小保持及正常3条数据曲线,应用本发明后,在中央处理器资源使用率方面降低的典型值为:3%,单次渲染耗时降低的典型值为:60%。当瀑布视图发生尺寸变化时,视图中的元素是按非等比例进行缩放,对于用来展现一段时间内频谱状况的瀑布图,通过对双层缓冲区,即第一元素缓冲单元、第二元素缓冲单元独立的缩放处理,能够迅速准确的实现视图的转化,体现了良好的灵活适应性。

由上述实施例可见,本发明的应用,不仅有效降低资源使用率和单次渲染耗时,还能够提高手持式频谱分析仪的分析效率和降低耗电量,提高整体性能,另外,对视图元素的渲染具有更好的灵活适应性。

以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1