CN113610699A - 一种硬件图层渲染调度方法、装置、设备及储存介质 - Google Patents
一种硬件图层渲染调度方法、装置、设备及储存介质 Download PDFInfo
- Publication number
- CN113610699A CN113610699A CN202110814760.6A CN202110814760A CN113610699A CN 113610699 A CN113610699 A CN 113610699A CN 202110814760 A CN202110814760 A CN 202110814760A CN 113610699 A CN113610699 A CN 113610699A
- Authority
- CN
- China
- Prior art keywords
- rendering
- hardware layer
- time
- hardware
- layer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000009877 rendering Methods 0.000 title claims abstract description 310
- 238000000034 method Methods 0.000 title claims abstract description 56
- 230000000694 effects Effects 0.000 abstract description 9
- 238000004364 calculation method Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
- H04N21/44012—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving rendering scenes according to scene graphs, e.g. MPEG-4 scene graphs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/488—Data services, e.g. news ticker
- H04N21/4884—Data services, e.g. news ticker for displaying subtitles
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本发明实施例公开了一种硬件图层渲染调度方法、装置、设备及储存介质,通过周期对硬件图层进行渲染轮询,若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;判断在本周期内是否所有的硬件图层都不需要进行渲染;若是,在本周期内对目标硬件图层进行渲染,目标硬件图层为前一周期中渲染速度最快的硬件图层。通过当所有硬件图层都不需要进行渲染时,对目标硬件图层进行渲染,提高了目标硬件图层的渲染次数,解决了现有技术硬件图层的渲染效果差的技术问题。
Description
技术领域
本申请实施例涉及图像处理领域,尤其涉及一种硬件图层渲染调度方法、装置、设备及储存介质。
背景技术
目前,在高性能的嵌入式平台的硬件,一般能够提供多个硬件图层并且实现多个硬件图层相互混合的功能。与软件图层混合需要大量的计算量相比,硬件图层在进行混合时几乎不会浪费计算资源。在使用过程中,用户只需要根据实际需求把不同的画面渲染在不同的硬件图层上面,嵌入式平台会自动将所有的硬件图层进行混合叠加并且输出到屏幕上进行显示。
而在真实的使用过程中,用户更加希望可以对每个硬件图层的刷新率进行控制,例如对于视频播放器需求的界面,该界面包含视频和操作界面,当需要对视频和操作界面的刷新率进行控制时,具有以下两种方式:
1,使用现成的GUI(图形用户界面)类库来渲染视频和操作界面,但目前现有的GUI类库都是单线程的,需要在同一条线程中进行所有图层的渲染流程,当图层需要渲染的任务量较多时,会导致整个视频播放器(包括视频流)出现卡顿。
2,创建两个线程,一条线程负责把视频渲染到硬件图层上,另外一条线程负责调用GUI类库将操作界面渲染到另外一个硬件图层上,从而可以分别控制每套线程的刷新率,通过GUI类库来处理复杂的操作界面以及减低操作界面的刷新率,从而保证视频的流畅性。
当创建两个线程来各自对硬件图层的刷新率进行控制时,如图1所示,若此时再增加渲染一个硬件图层(同时也增加一条线程来控制这个硬件图层)来渲染炫酷弹幕效果时,由于GUI类库是单线程,会导致中间的弹幕层无法使用GUI类库进行渲染;若弹幕层和操作界面层都采用同一条线程进行渲染,则会导致弹幕播放不流畅(弹幕滚动是需要流畅的滚动的),而如果不使用GUI类库来渲染炫酷弹幕效的话,又会大幅度增加工作难度和开发时间。
综上所述,现有技术中由于GUI类库是单线程,只能使用一条线程来渲染多个硬件图层,导致硬件图层的渲染效果差的技术问题。
发明内容
本发明实施例提供了一种硬件图层渲染调度方法,用于解决现有技术中GUI类库只能使用一条线程来渲染多个硬件图层,导致硬件图层的渲染效果差的技术问题。
第一方面,本发明实施例提供了一种硬件图层渲染调度方法,包括以下步骤:
周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,所述硬件图层至少包括两种类型;
若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;
若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;
判断在本周期内是否所有的硬件图层都不需要进行渲染;
若是,在本周期内对目标硬件图层进行渲染,所述目标硬件图层为前一周期中渲染速度最快的硬件图层。
优选的,所述根据该硬件图层的类型更新渲染时间的具体过程为:
确定该硬件图层开始渲染的时间,以及根据该硬件图层的类型确定该硬件图层一秒内所需要渲染的次数;
根据所述一秒内所需要渲染的次数以及所述开始渲染的时间,计算该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
优选的,所述根据所述一秒内所需要渲染的次数以及所述开始渲染的时间,计算该硬件图层的下一次渲染时间具体过程为:
根据所述一秒内所需要渲染的次数计算该硬件图层进行相邻两次渲染的时间间隔;
将所述开始渲染的时间加上所述时间间隔,得到该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
优选的,所述目标硬件图层为前一周期中渲染速度最快、有重绘区域请求以及还没有达到预设帧数的硬件图层。
优选的,所述若当前询问的时间是当前询问的硬件图层的渲染时间的具体过程为:
若当前询问的时间大于当前询问的硬件图层的渲染时间,则当前询问的时间是当前询问的硬件图层的渲染时间。
优选的,若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染的具体过程为:
若当前询问的时间是当前询问的硬件图层的渲染时间,判断该硬件图层是否达到预设帧率;
若否,对该硬件图层进行渲染;
若是,则询问下一个硬件图层。
优选的,在第一个渲染轮询的周期中,所述当前询问的时间均是当前询问的硬件图层的渲染时间。
第二方面,本发明实施例还提供了一种硬件图层渲染调度装置,包括:
轮询模块,用于周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,所述硬件图层至少包括两种类型;
渲染模块,用于若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;
遍历模块,用于若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;
判断模块,用于判断在本周期内是否所有的硬件图层都不需要进行渲染;
调度模块,用于在本周期内所有的硬件图层都不需要进行渲染时,在本周期内对目标硬件图层进行渲染,所述目标硬件图层为前一周期中渲染速度最快的硬件图层。
第三方面,本发明实施例还提供了一种硬件图层渲染调度设备,所述设备包括处理器以及存储器;所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;所述处理器用于根据所述程序代码中的指令执行如第一方面所述的一种硬件图层渲染调度方法。
第四方面,本发明实施例还提供了一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的硬件图层渲染方法。
上述,本发明实施例通过周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,硬件图层至少包括两种类型;若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;判断在本周期内是否所有的硬件图层都不需要进行渲染;若是,在本周期内对目标硬件图层进行渲染,目标硬件图层为前一周期中渲染速度最快的硬件图层。本发明实施例通过在每一个周期中,在所有硬件图层都不需要进行渲染时,对前一周期中渲染速度最快的硬件图层进行渲染,从而在出现时间缝隙的时候可以利用上个周期中渲染速度最快的目标硬件图层来渲染来填充时间缝隙,从而提高目标硬件图层的渲染次数,以免出现在某些硬件图层渲染次数过多而导致其他的硬件图层渲染次数不足的情况。本发明实施例能够提高硬件图层的渲染效果以及渲染效率,并且在多硬件图层的使用场景下,可以通过GUI类库来提高开发效率,而不一定要依赖多线程来开发,大大提高了开发周期和提高嵌入式平台资源利用率。解决了解决现有技术中GUI类库只能使用一条线程来渲染多个硬件图层,导致硬件图层的渲染效果差的技术问题。
附图说明
图1为一个使用场景下硬件图层的结构图。
图2为本发明实施例提供的一种硬件图层渲染调度方法的方法流程图。
图3为本发明实施例提供的一种硬件图层渲染调度方法的原理图。
图4为本发明实施例提供的一种硬件图层渲染调度装置的装置结构图。
图5为本发明实施例提供的一种硬件图层渲染调度设备的设备结构图。
具体实施方式
以下描述和附图充分地示出本申请的具体实施方案,以使本领域的技术人员能够实践它们。实施例仅代表可能的变化。除非明确要求,否则单独的部件和功能是可选的,并且操作的顺序可以变化。一些实施方案的部分和特征可以被包括在或替换其他实施方案的部分和特征。本申请的实施方案的范围包括权利要求书的整个范围,以及权利要求书的所有可获得的等同物。在本文中,各实施方案可以被单独地或总地用术语“发明”来表示,这仅仅是为了方便,并且如果事实上公开了超过一个的发明,不是要自动地限制该应用的范围为任何单个发明或发明构思。本文中,诸如第一和第二等之类的关系术语仅仅用于将一个实体或者操作与另一个实体或操作区分开来,而不要求或者暗示这些实体或操作之间存在任何实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素。本文中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的结构、产品等而言,由于其与实施例公开的部分相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
实施例一
图2为本发明实施例提供的一种硬件图层渲染调度方法的方法流程图。本发明实施例提供中提供的硬件图层渲染方法可以由硬件图层渲染设备执行,该硬件图层渲染设备可以通过软件和/或硬件的方式实现,该硬件图层渲染设备可以是两个或多个物理实体构成,也可以由一个物理实体构成。例如硬件图层渲染设备可以是电脑、手机、平板或智能交互平板等设备。
步骤101、周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,硬件图层至少包括两种类型。
在本实施例中,周期性地对硬件图层进行渲染轮询,遍历所有的硬件图层,并且对于每一个询问到的硬件图层,需要确认硬件图层的渲染时间,以便于后续根据渲染时间判断在此周期中是否需要对硬件图层进行渲染。在一个实施例中,硬件图层至少包括两种类型,硬件图层的类型可以根据硬件图层所显示的界面进行划分。示例性的,在一个实施例中,硬件图层包括两种类型,一种类型的硬件图层用于对操作界面进行显示,另一种类型的硬件图层用于显示视频。可理解,若只有一个硬件图层,则单线程的GUI类库即可直接控制硬件图层的刷新率,无需后续对渲染算力进行分配,因此,本实施例适用于硬件图层至少为两种类型的使用场景。硬件图层的类型可以根据实际需要进行设置,在本实施例中不对硬件图层的数量进行限定。
步骤102、若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间。
在本实施例中,在一个周期中,对于轮询到的每一个硬件图层,如果当前询问的时间达到当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并且在渲染该硬件图层后,根据该硬件图层的类型计算该硬件图层下一次的渲染时间,将该硬件图层的渲染时间更新为下一次的渲染时间。
在一个实施例中,并根据该硬件图层的类型更新渲染时间具体由步骤1021-步骤1022执行,具体如下:
步骤1021、确定该硬件图层开始渲染的时间,以及根据该硬件图层的类型确定该硬件图层一秒内所需要渲染的次数。
首先确定在本周期中,该硬件图层开始渲染的时间。之后,由于不同类型的硬件图层用于显示不同的界面,因此,不同类型的硬件图层一秒内的设定的渲染次数是不相同的,因此,需要根据该硬件图层的类型确定该硬件图层一秒内的渲染次数。在一个实施例中,可以通过确定该硬件图层一秒内的帧数从而确定该硬件图层一秒内所需要渲染的次数。示例性的,对于一个硬件图层,若该硬件图层一秒内预设的帧数为60帧,则该硬件图层一秒内需要渲染60次。可理解,硬件图层一秒内需要进行渲染的次数可以根据需要进行预先设置,在本实施例中,不对硬件图层一秒内需要进行渲染的次数进行限定。之后,确定在本周期中,该硬件图层开始渲染的时间。
步骤1022、根据一秒内所需要渲染的次数以及开始渲染的时间,计算该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
在得到硬件图层一秒内需要渲染的次数后,即可根据一秒内需要进行渲染的次数,计算该硬件图层的帧率,之后,即可根据计算出的帧率以及以及开始渲染的时间,计算该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
在一个实施例中,根据一秒内所需要渲染的次数以及开始渲染的时间,计算该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新的具体由步骤10221-步骤10222执行:
步骤10221、根据一秒内所需要渲染的次数计算该硬件图层进行相邻两次渲染的时间间隔。
首先,根据一秒内所需要渲染的次数计算该硬件图层进行相邻两次渲染的时间间隔。示例性的,若一个硬件图层一秒内所需要渲染的次数为60次,则将1000ms/60帧=16ms/帧,即每16ms渲染一次,即该硬件图层进行相邻两次渲染的时间间隔为16ms。
步骤10222、将开始渲染的时间加上时间间隔,得到该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
由于在本周期中已经对该硬件图层进行渲染,因此,将开始渲染的时间加上时间间隔,即可得到该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。示例性的,若周周期中开始渲染的时间为20ms,则将20ms加上16ms,得到该硬件图层的下一次渲染时间为36ms,从而对该硬件图层的渲染时间进行更新。
步骤103、若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕。
如果当前询问的时间不是当前询问的硬件图层的渲染时间,则继续询问下一个硬件图层,确定下一个硬件图层是否需要进行渲染,直至遍历所有的硬件图层询问完毕。示例性的,若存在10个硬件图层,在本周期中,如果只有2个硬件图层需要渲染,则只渲染这2个硬件图层,其他的硬件图层不进行渲染,从而降低本周期的运算量,提高了运行效率,使得在同一段时间内能够执行更多的周期,提高各个硬件图层的渲染次数。
步骤104、判断在本周期内是否所有的硬件图层都不需要进行渲染。
在本周期中对所有的硬件图层渲染轮询完毕后,判断在本周期内是否所有的硬件图层都不需要进行渲染。
步骤105、若是,在本周期内对目标硬件图层进行渲染,所述目标硬件图层为前一周期中渲染速度最快的硬件图层。若否,则进入下一个周期。
如果在本周期中,如果所有的硬件图层都不需要进行渲染,则渲染算力会进入休眠状态从而浪费渲染时间,出现时间缝隙,降低渲染的效率,因此,在调用本周期内对目标硬件图层进行渲染,在出现时间缝隙的时候可以利用渲染速度最快的硬件图层来渲染来填充时间缝隙,从而快速进入到下一个周期中。在本实施例中,目标硬件图层为前一周期中渲染速度最快的硬件图层,由于目标硬件图层在上一个周期内的渲染速度最快,则目标硬件图层需要的渲染算力比较少,可以提高主循环渲染次数,因此在本实施例中,在本周期内将不需要进行渲染的硬件图层对应的渲染算力在本周期内分配给目标硬件图层,从而在出现时间缝隙的时候可以利用渲染速度最快的目标硬件图层来渲染来填充时间缝隙,使渲染算力不进入休眠状态,提高目标硬件图层的渲染次数,从而提高目标硬件图层的帧率。
在上述实施例的基础上,目标硬件图层为前一周期中渲染速度最快、有重绘区域请求以及还没有达到预设帧率的硬件图层。
渲染速度最快,则说明目标硬件图层所需要的渲染算力最少,有重绘区域请求,则说明目标硬件图层还需要进行渲染,而未达到预设帧率,则说明目标硬件图层尚未达到帧率要求,若目标硬件图层已经达到预设帧率,则再对目标硬件图层进行渲染,会使得目标硬件图层突破预设帧率,造成渲染算力的浪费。因此,在本实施例中,将前一周期中渲染次数最多、有重绘区域请求以及还没有达到预设帧率的硬件图层作为硬件图层。
在一个实施例中,若当前询问的时间是当前询问的硬件图层的渲染时间的具体过程为:
若当前询问的时间大于当前询问的硬件图层的渲染时间,则当前询问的时间是当前询问的硬件图层的渲染时间。
在本实施例中,若当前询问的时间大于当前询问的硬件图层的渲染时间,则当前询问的时间是当前询问的硬件图层的渲染时间。示例性的,对于一个硬件图层,若第一个周期的时间为10ms,当前询问的硬件图层的渲染时间为16ms。在第一个周期中,已经对当前询问的硬件图层渲染了10毫秒,则该硬件图层下一次的渲染时间为0+16ms=16ms,若在第二个周期中当前询问的时间为18ms,由于当前询问的硬件图层的渲染时间为16ms,即当前询问的时间18ms大于当前询问的硬件图层的渲染时间16ms,则说明该硬件图层需要进行渲染,当前询问的时间是当前询问的硬件图层的渲染时间。
在一个实施例中,若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染的具体过程为:
若当前询问的时间是当前询问的硬件图层的渲染时间,判断该硬件图层是否达到预设帧率;若否,对该硬件图层进行渲染;若是,则询问下一个硬件图层。
在本实施例中,若当前询问的时间是当前询问的硬件图层的渲染时间,则还需要进一步判断该硬件图层是否应达到预设帧率,若达到了,若继续对该硬件图层进行渲染,会使得该硬件图层的帧率突破预设帧率,浪费渲染算力以及渲染时间,降低渲染效率。
在上述实施例的基础上,在第一个渲染轮询的周期中,所述当前询问的时间均是当前询问的硬件图层的渲染时间。
在第一个渲染轮询的周期中,当前询问的时间均是当前询问的硬件图层的渲染时间,即需要对每一个硬件图层都进行一次渲染,并且对于每一个硬件图层,都需要记录开始渲染的时间并且计算下一次渲染时间,之后,根据下一次渲染时间对每一个硬件图层的渲染时间进行更新,以便在下一个周期中根据每一个硬件图层的渲染时间判断每一硬件图层的是否需要进行渲染。
在一个实施例中,视频播放器包括有三个硬件图层,且三个硬件图层对应一种类型,且三个硬件图层各自需要的刷新率分别是:操作界面层为30帧(约为33.3ms/帧),弹幕层为60帧(约为16.6ms/帧),视频层为24帧(约为41.6ms/帧),而操作界面层渲染时间为10ms/帧,弹幕层渲染时间为5ms/帧,视频层渲染时间为20ms/帧,而且每一个周期都会有脏矩形(每一个周期都需要刷新和重绘);
若未使用本发明实施例提供的硬件图层渲染方法,而直接按照GUI类库的单线程对硬件图层进行渲染,则每个硬件图层的帧率约为28.6帧=1000ms/(5ms+10ms+20ms),则弹幕层的帧率远远到不到要求,而视频层的帧率又比要求多了4.6帧,从而造成算力的浪费。
若使用本发明实施例提供的硬件图层渲染方法,示例性的,如图3所示,第一个周期中,分别对操作界面层、弹幕层以及视频层进行渲染,并计算操作界面层、弹幕层以及视频层下一次的渲染时间,对操作界面层、弹幕层以及视频层的渲染时间进行更新。在第二个周期中,若每一层不需要进行渲染,而弹幕层为目标硬件图层,则在第二个周期中对弹幕层进行渲染,从而提高弹幕层的渲染次数。通过在每个周期中当所有硬件图层都不需要进行渲染时,对上一个周期渲染速度最快且还没有达到预设帧率的目标硬件图层进行渲染,从而提高目标硬件图层的渲染次数,得到的结果为:操作界面层的帧率为26帧,弹幕层的帧率为60帧,视频层的帧率为22帧,每个硬件图层都可以满足使用的需求,通过调度对上一个周期中渲染速度最快的目标硬件图层来渲染来填充时间缝隙,使得渲染算力不进入休眠状态,从而能够迅速进入下一轮的询问,并且能够平衡了各个硬件图层之间的帧率,不至于出现让某些硬件图层帧率过低,而某些硬件图层帧率过多的情况。同时由于每一个周期都会进行渲染,在单核心嵌入式平台中(单核心嵌入式平台在微观上每一次只能执行一条线程,线程并不能并行执行),即使开设多线程对硬件图层进行渲染,由于多线程调度存在保存和还原堆栈的等问题,其渲染的效率要比本发明实施例提供的硬件图层渲染方法更低。
上述,本发明实施例通过周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,硬件图层至少包括两种类型;若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;判断在本周期内是否所有的硬件图层都不需要进行渲染;若是,在本周期内对目标硬件图层进行渲染,目标硬件图层为前一周期中渲染速度最快的硬件图层。本发明实施例通过在每一个周期中,在所有硬件图层都不需要进行渲染时,对前一周期中渲染速度最快的硬件图层进行渲染,从而在出现时间缝隙的时候可以利用上个周期中渲染速度最快的目标硬件图层来渲染来填充时间缝隙,从而提高目标硬件图层的渲染次数,以免出现在某些硬件图层渲染次数过多而导致其他的硬件图层渲染次数不足的情况。本发明实施例能够提高硬件图层的渲染效果以及渲染效率,并且在多硬件图层的使用场景下,可以通过GUI类库来提高开发效率,而不一定要依赖多线程来开发,大大提高了开发周期和提高嵌入式平台资源利用率。解决了解决现有技术中GUI类库只能使用一条线程来渲染多个硬件图层,导致硬件图层的渲染效果差的技术问题。
实施例二
如图4所示,图4为本发明实施例还提供了一种硬件图层渲染调度装置,包括:
轮询模块201,用于周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,所述硬件图层至少包括两种类型;
渲染模块202,用于若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;
遍历模块203,用于若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;
判断模块204,用于判断在本周期内是否所有的硬件图层都不需要进行渲染;
调度模块205,用于在本周期内所有的硬件图层都不需要进行渲染时,在本周期内对目标硬件图层进行渲染,所述目标硬件图层为前一周期中渲染速度最快的硬件图层。
在上述实施例的基础上,渲染模块202用于所述根据该硬件图层的类型更新渲染时间的具体过程为:
确定该硬件图层一秒内开始渲染的时间,以及根据该硬件图层的类型确定该硬件图层所需要渲染的次数;
根据所述一秒内所需要渲染的次数以及所述开始渲染的时间,计算该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
在上述实施例的基础上,渲染模块202用于所述根据所述一秒内所需要渲染的次数以及所述开始渲染的时间,计算该硬件图层的下一次渲染时间具体过程为:
根据所述一秒内所需要渲染的次数计算该硬件图层进行相邻两次渲染的时间间隔;
将所述开始渲染的时间加上所述时间间隔,得到该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
在上述实施例的基础上,所述目标硬件图层为前一周期中渲染速度最快、有重绘区域请求以及还没有达到预设帧数的硬件图层。
在上述实施例的基础上,渲染模块202用于所述若当前询问的时间是当前询问的硬件图层的渲染时间的具体过程为:
若当前询问的时间大于当前询问的硬件图层的渲染时间,则当前询问的时间是当前询问的硬件图层的渲染时间。
在上述实施例的基础上,渲染模块202用于若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染的具体过程为:
若当前询问的时间是当前询问的硬件图层的渲染时间,判断该硬件图层是否达到预设帧率;若否,对该硬件图层进行渲染;若是,则询问下一个硬件图层。
在上述实施例的基础上,在第一个渲染轮询的周期中,所述当前询问的时间均是当前询问的硬件图层的渲染时间。
实施例三
本实施例还提供了一种硬件图层渲染调度设备,如图5所示,一种硬件图层渲染调度设备30,所述设备包括处理器300以及存储器301;
所述存储器301用于存储程序代码302,并将所述程序代码302传输给所述处理器;
所述处理器300用于根据所述程序代码302中的指令执行上述的一种硬件图层渲染调度方法实施例中的步骤。
示例性的,所述计算机程序302可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器301中,并由所述处理器300执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序302在所述终端设备30中的执行过程。
所述终端设备30可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器300、存储器301。本领域技术人员可以理解,图5仅仅是终端设备30的示例,并不构成对终端设备30的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述终端设备还可以包括输入输出设备、网络接入设备、总线等。
所称处理器300可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器301可以是所述终端设备30的内部存储单元,例如终端设备30的硬盘或内存。所述存储器301也可以是所述终端设备30的外部存储设备,例如所述终端设备30上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器301还可以既包括所述终端设备30的内部存储单元也包括外部存储设备。所述存储器301用于存储所述计算机程序以及所述终端设备所需的其他程序和数据。所述存储器301还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccess Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
实施例四
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种硬件图层渲染调度方法,该方法包括以下步骤:
周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,硬件图层至少包括两种类型;
若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;
若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;
判断在本周期内是否所有的硬件图层都不需要进行渲染;
若是,在本周期内对目标硬件图层进行渲染,目标硬件图层为前一周期中渲染速度最快的硬件图层。
注意,上述仅为本发明实施例的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明实施例不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明实施例的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明实施例构思的情况下,还可以包括更多其他等效实施例,而本发明实施例的范围由所附的权利要求范围决定。
Claims (10)
1.一种硬件图层渲染调度方法,其特征在于,包括以下步骤:
周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,所述硬件图层至少包括两种类型;
若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;
若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;
判断在本周期内是否所有的硬件图层都不需要进行渲染;
若是,在本周期内对目标硬件图层进行渲染,所述目标硬件图层为前一周期中渲染速度最快的硬件图层。
2.根据权利要求1所述的一种硬件图层渲染调度方法,其特征在于,所述根据该硬件图层的类型更新渲染时间的具体过程为:
确定该硬件图层开始渲染的时间,以及根据该硬件图层的类型确定该硬件图层一秒内所需要渲染的次数;
根据所述一秒内所需要渲染的次数以及所述开始渲染的时间,计算该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
3.根据权利要求2所述的一种硬件图层渲染调度方法,其特征在于,所述根据所述一秒内所需要渲染的次数以及所述开始渲染的时间,计算该硬件图层的下一次渲染时间具体过程为:
根据所述一秒内所需要渲染的次数计算该硬件图层进行相邻两次渲染的时间间隔;
将所述开始渲染的时间加上所述时间间隔,得到该硬件图层的下一次渲染时间,对该硬件图层的渲染时间进行更新。
4.根据权利要求1所述的一种硬件图层渲染调度方法,其特征在于,所述目标硬件图层为前一周期中渲染速度最快、有重绘区域请求以及还没有达到预设帧数的硬件图层。
5.根据权利要求1所述的一种硬件图层渲染调度方法,其特征在于,所述若当前询问的时间是当前询问的硬件图层的渲染时间的具体过程为:
若当前询问的时间大于当前询问的硬件图层的渲染时间,则当前询问的时间是当前询问的硬件图层的渲染时间。
6.根据权利要求1所述的一种硬件图层渲染调度方法,其特征在于,若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染的具体过程为:
若当前询问的时间是当前询问的硬件图层的渲染时间,判断该硬件图层是否达到预设帧率;
若否,对该硬件图层进行渲染;
若是,则询问下一个硬件图层。
7.根据权利要求1所述的一种硬件图层渲染调度方法,其特征在于,在第一个渲染轮询的周期中,所述当前询问的时间均是当前询问的硬件图层的渲染时间。
8.一种硬件图层渲染调度装置,其特征在于,包括:
轮询模块,用于周期对硬件图层进行渲染轮询,确认当前询问的硬件图层的渲染时间,所述硬件图层至少包括两种类型;
渲染模块,用于若当前询问的时间是当前询问的硬件图层的渲染时间,则对该硬件图层进行渲染,并根据该硬件图层的类型更新渲染时间;
遍历模块,用于若当前询问的时间不是当前询问的硬件图层的渲染时间,则询问下一个硬件图层,直至所有的硬件图层询问完毕;
判断模块,用于判断在本周期内是否所有的硬件图层都不需要进行渲染;
调度模块,用于在本周期内所有的硬件图层都不需要进行渲染时,在本周期内对目标硬件图层进行渲染,所述目标硬件图层为前一周期中渲染速度最快的硬件图层。
9.一种硬件图层渲染调度设备,其特征在于,所述设备包括处理器以及存储器;
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行如权利要求1-7中任一项所述的一种硬件图层渲染调度方法。
10.一种存储计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一项所述的硬件图层渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110814760.6A CN113610699A (zh) | 2021-07-19 | 2021-07-19 | 一种硬件图层渲染调度方法、装置、设备及储存介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110814760.6A CN113610699A (zh) | 2021-07-19 | 2021-07-19 | 一种硬件图层渲染调度方法、装置、设备及储存介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113610699A true CN113610699A (zh) | 2021-11-05 |
Family
ID=78337933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110814760.6A Pending CN113610699A (zh) | 2021-07-19 | 2021-07-19 | 一种硬件图层渲染调度方法、装置、设备及储存介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113610699A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116778079A (zh) * | 2023-05-26 | 2023-09-19 | 上海兴岩信息科技有限公司 | 一种三维可视化生产管理方法及系统 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008105092A (ja) * | 2006-10-27 | 2008-05-08 | Musashi Seimitsu Ind Co Ltd | 鍛造製品の成形方法 |
CN101622646A (zh) * | 2007-02-28 | 2010-01-06 | 松下电器产业株式会社 | 图形描绘装置和图形描绘方法 |
JP2014194635A (ja) * | 2013-03-28 | 2014-10-09 | Canon Inc | 画像形成装置及び画像形成方法ならびにプログラム |
WO2016008131A1 (en) * | 2014-07-17 | 2016-01-21 | 21 Vianet Group, Inc. | Techniques for separately playing audio and video data in local networks |
CN106648513A (zh) * | 2016-12-28 | 2017-05-10 | 广州周立功单片机科技有限公司 | 图片显示控制方法和装置、微控制器和电子烟 |
CN106933587A (zh) * | 2017-03-10 | 2017-07-07 | 广东欧珀移动通信有限公司 | 一种图层绘制控制方法、装置及移动终端 |
CN111031376A (zh) * | 2019-11-25 | 2020-04-17 | 上海哔哩哔哩科技有限公司 | 基于微信小程序的弹幕处理方法和系统 |
CN111131910A (zh) * | 2020-01-02 | 2020-05-08 | 广州虎牙科技有限公司 | 弹幕实现方法、装置、电子设备和可读存储介质 |
CN111669623A (zh) * | 2020-06-28 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 视频特效的处理方法、装置以及电子设备 |
CN112184856A (zh) * | 2020-09-30 | 2021-01-05 | 广州光锥元信息科技有限公司 | 支持多图层特效及动画混合的多媒体处理装置 |
CN112598568A (zh) * | 2020-12-28 | 2021-04-02 | 航天科技控股集团股份有限公司 | 全液晶仪表动态渲染方法 |
CN112789595A (zh) * | 2018-11-20 | 2021-05-11 | 深圳市欢太科技有限公司 | 界面显示方法、装置、计算机可存储介质和电子设备 |
-
2021
- 2021-07-19 CN CN202110814760.6A patent/CN113610699A/zh active Pending
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008105092A (ja) * | 2006-10-27 | 2008-05-08 | Musashi Seimitsu Ind Co Ltd | 鍛造製品の成形方法 |
CN101622646A (zh) * | 2007-02-28 | 2010-01-06 | 松下电器产业株式会社 | 图形描绘装置和图形描绘方法 |
JP2014194635A (ja) * | 2013-03-28 | 2014-10-09 | Canon Inc | 画像形成装置及び画像形成方法ならびにプログラム |
WO2016008131A1 (en) * | 2014-07-17 | 2016-01-21 | 21 Vianet Group, Inc. | Techniques for separately playing audio and video data in local networks |
CN106648513A (zh) * | 2016-12-28 | 2017-05-10 | 广州周立功单片机科技有限公司 | 图片显示控制方法和装置、微控制器和电子烟 |
CN106933587A (zh) * | 2017-03-10 | 2017-07-07 | 广东欧珀移动通信有限公司 | 一种图层绘制控制方法、装置及移动终端 |
CN112789595A (zh) * | 2018-11-20 | 2021-05-11 | 深圳市欢太科技有限公司 | 界面显示方法、装置、计算机可存储介质和电子设备 |
CN111031376A (zh) * | 2019-11-25 | 2020-04-17 | 上海哔哩哔哩科技有限公司 | 基于微信小程序的弹幕处理方法和系统 |
CN111131910A (zh) * | 2020-01-02 | 2020-05-08 | 广州虎牙科技有限公司 | 弹幕实现方法、装置、电子设备和可读存储介质 |
CN111669623A (zh) * | 2020-06-28 | 2020-09-15 | 腾讯科技(深圳)有限公司 | 视频特效的处理方法、装置以及电子设备 |
CN112184856A (zh) * | 2020-09-30 | 2021-01-05 | 广州光锥元信息科技有限公司 | 支持多图层特效及动画混合的多媒体处理装置 |
CN112598568A (zh) * | 2020-12-28 | 2021-04-02 | 航天科技控股集团股份有限公司 | 全液晶仪表动态渲染方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116778079A (zh) * | 2023-05-26 | 2023-09-19 | 上海兴岩信息科技有限公司 | 一种三维可视化生产管理方法及系统 |
CN116778079B (zh) * | 2023-05-26 | 2024-05-17 | 上海兴岩信息科技有限公司 | 一种三维可视化生产管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409547B2 (en) | Method for rendering user interface and terminal | |
US20210357759A1 (en) | Task processing method and device based on neural network | |
CN111552565A (zh) | 一种多线程投屏方法和装置 | |
CN111124668B (zh) | 内存释放方法、装置、存储介质及终端 | |
CN111045814A (zh) | 资源调度方法和终端设备 | |
CN111708642B (zh) | Vr系统中处理器性能优化方法、装置及vr设备 | |
CN112698793B (zh) | 一种数据存储方法、装置、机器可读介质及设备 | |
CN109218817B (zh) | 一种显示虚拟礼物提示消息的方法和装置 | |
CN112463383A (zh) | 一种gpu分配方法、系统、存储介质及设备 | |
CN113610699A (zh) | 一种硬件图层渲染调度方法、装置、设备及储存介质 | |
CN109840597B (zh) | 一种模型预测方法、装置、电子设备及存储介质 | |
CN111813541B (zh) | 一种任务调度方法、装置、介质和设备 | |
CN111796825B (zh) | 一种弹幕的绘制方法、装置、设备和存储介质 | |
CN112486658A (zh) | 一种任务调度方法、装置和用于任务调度的装置 | |
CN112165572A (zh) | 图像处理方法、装置、终端及存储介质 | |
CN115421931B (zh) | 业务线程控制方法、装置、电子设备及可读存储介质 | |
CN110730300A (zh) | 相机控制方法、装置、存储介质和终端 | |
CN114546171A (zh) | 数据分发方法、装置、存储介质及电子设备 | |
CN115617518A (zh) | 线程管理方法、装置、电子设备及存储介质 | |
CN115357179A (zh) | 显示屏管理方法、显示屏管理装置、电子设备及存储介质 | |
CN116059631A (zh) | 对象渲染方法、装置、电子设备及计算机可读存储介质 | |
CN113763552A (zh) | 三维地理模型的展示方法、装置、计算机设备和存储介质 | |
CN109388498A (zh) | 一种互斥的处理方法、装置、设备及介质 | |
CN113138909A (zh) | 负载统计方法、装置、存储介质及电子设备 | |
CN109783329B (zh) | 应用程序空白数据提示方法、系统及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |