图层合成方法、设备及计算机可读存储介质技术

技术编号:32117385 阅读:21 留言:0更新日期:2022-01-29 19:02
本申请公开了一种图层合成方法、设备及计算机可读存储介质,属于显示技术领域。所述方法包括:在待合成图层相对于上一帧图像中的图层来说仅部分图层发生变化而其他图层未发生变化的情况下,图层管理模块可以获取待合成图层中相对于上一帧图像中的图层发生变化的部分图层,仅将发生变化的部分图层发送给HWC,由HWC对发生变化的部分图层以及HWC上一次合成的合成结果进行合成。如此,图层管理模块无需将所有待合成图层都发送给HWC进行合成,减少了图层合成数,提高了合成效率和灵活性。而且,这种图层合成方式需要合成的图层数较少,可以在一定程度上保证发送给HWC需要合成的图层数不会超出HWC支持合成的图层数,因此可以节省合成时间,提高HWC的利用率。提高HWC的利用率。提高HWC的利用率。

【技术实现步骤摘要】
图层合成方法、设备及计算机可读存储介质


[0001]本申请涉及显示
,尤其涉及一种图层合成方法、设备及计算机可读存储介质。

技术介绍

[0002]随着电子技术的发展,如手机或平板电脑等具有图像显示功能的电子设备越来越多。电子设备的显示界面通常是由多个图层(surface)合成的,也即是,多个图层通过叠加的方式组成电子设备的显示界面。请参考图1,手机的显示界面可以由顶部的状态栏11、底部的导航栏12以及中间的应用界面13这3个图层合成,应用界面13为当前正在前台运行的应用的应用界面。
[0003]目前,图层合成方式包括图形处理器(Graphics Processing Unit,GPU)合成和硬件合成器(hwcomposer,HWC)合成两种。GPU是一种通用的图像处理设备,GPU除了用于图层的合成,还用于完成其他图形处理任务,而HWC是一种专用图像处理设备,HWC合成和GPU合成相比,具有性能高,合成速度快等优点。HWC合成时,由于待合成的每个图层需要占用HWC的一个传输通道,因此HWC支持合成的图层数受到HWC具有的传输通道的限制。当待合成图层的数量大于HWC支持合成的图层数时,需要GPU先将待合成图层中的部分图层合成为一个合成图层,再将该合成图层与剩余图层一起发送给HWC,由HWC进行合成和送显,这样屏幕上就可以显示出由待合成图层合成的一帧图像。
[0004]上述图层合成过程中,如果待合成图层的数量大于HWC支持合成的图层数,HWC需要等待GPU合成完成之后,才能将GPU的合成结果与剩余图层进行合成,合成周期较长,合成效率和灵活性较低,可能导致一帧图像显示周期内无法完成图层合成和送显工作,造成卡帧丢失。

技术实现思路

[0005]本申请提供了一种图层合成方法、设备及计算机可读存储介质,可以解决相关技术中存在的合成周期较长,合成效率和灵活性较低的问题。
[0006]为达到上述目的,本申请采用如下技术方案:
[0007]第一方面,提供了一种图层合成方法,该方法应用于电子设备中,电子设备包括图层管理模块和HWC,包括:
[0008]图层管理模块获取待合成图层中的新建图层或图层信息发生变化的图层作为第一图层,将获取的第一图层发送给HWC,由HWC对获取的第一图层和第一合成图层进行合成,得到第二合成图层,第一合成图层为HWC在第二合成图层之前合成的图层。
[0009]也即是,在待合成图层相对于上一帧图像中的图层来说仅部分图层发生变化而其他图层未发生变化的情况下,图层管理模块可以获取待合成图层中相对于上一帧图像中的图层发生变化的图层,以及获取HWC上一次合成的合成结果,仅将发生变化的图层和HWC上一次合成的合成结果发送给HWC进行合成,无需将待合成图层都发送给HWC进行合成。
[0010]如此,可以减少图层合成数,提高合成效率和灵活性。而且,由于这种图层合成方式需要合成的图层数较少,因此可以在一定程度上保证发送给HWC的待合成图层数不会超出HWC支持合成的图层数,使得图层合成时可以直接通过HWC进行合成,而不需要先通过GPU进行合成,再通过HWC进行合成,从而可以节省合成时间,提高HWC的利用率,避免HWC需要等待GPU合成完成之后才能将GPU的合成结果与剩余图层进行合成,可能导致一帧图像显示周期内无法完成图层合成和送显工作,造成卡帧丢失的问题。
[0011]其中,图层管理模块用于实现图层的创建、控制、管理等功能。图层管理模块可以为Surfaceflinger。Surfaceflinger是一种系统服务。在电子设备的显示系统中,可以通过Surfaceflinger实现图层的合成。比如,在应用启动后,Surfaceflinger可以为该应用创建一个图层。在终端运行的过程中,Surfaceflinger可以获取终端运行的各种应用待显示的图层,通过GPU和/或HWC对获取的图层进行合成。
[0012]其中,待合成图层为待显示图层,即待显示在显示屏幕的下一帧显示画面中的图层。待合成图层可以包括新建图层和图层信息发生变化的图层,还可以包括图层信息未发生变化的图层。
[0013]图层管理模块可以在Vsync信号到来时,获取待显示在显示画面的下一帧显示画面中的图层作为待合成图层,然后从待合成图层中获取新建图层以及图层信息发生变化的图层,得到一个或多个第一图层。也即是,可以由Vsync信号触发Surfaceflinger的图层合成流程。
[0014]其中,图层信息包括图层属性或显示数据。图层属性包括位置区域,位置区域用于指示图层的位置和大小。位置区域可以用图层的各个端点在显示屏幕上的像素坐标来表示。比如,图层区域可以用图层的左、上、右、下这4个端点的像素坐标来表示。另外,图层属性还可以包括层级等属性。
[0015]其中,图层信息发生变化是指某个待合成图层在待显示画面中的图层信息相对于该待合成图层在上一帧的已合成图层中的图层信息发生变化,即某个待合成图层在当前Vsync周期内的图层信息相对于在上一个Vsync周期内的图层信息发生变化,这种待合成图层称为图层信息发生变化的图层。
[0016]图层管理模块可以预先记录待合成图层中已创建图层在上一帧的已合成图层中的图层信息,在获取到待合成图层之后,可以将待合成图层的图层信息与已记录的图层信息进行比较,来确定待合成图层的图层信息是否发生变化。
[0017]在一种可能的实现方式中,图层管理模块可以在将获取的第一图层发送给HWC之前,先确定获取的第一图层是否满足预设合成条件;若确定获取的第一图层满足预设合成条件,则再获取的第一图层发送给HWC。
[0018]其中,预设合成条件可以包括:获取的第一图层中任一第一图层的层级大于或等于剩余图层的最大层级,剩余图层是指待合成图层中除获取的第一图层之外的图层。
[0019]图层的层级用于描述图层在显示屏幕平面的垂直方向上的前后顺序,图层的层级越大,则图层在显示屏幕平面的垂直方向上越靠前,在图层之间越靠上。获取的第一图层中任一第一图层的层级大于或等于剩余图层的最大层级是指获取的第一图层在剩余图层的上方。
[0020]当获取的第一图层在剩余图层的上方时,待合成图层的合成结果中获取的第一图
层将在其他图层的上方,而如果将获取的第一图层与上一帧的已合成图层进行合成,获取的第一图层也将在已合成图层的上方,如此可以保证获取的第一图层与已合成图层的合成结果与待合成图层的合成结果一致。这种情况下,确定可以采用将获取的第一图层与已合成图层进行合成的方式进行图层合成,也即是,确定获取的第一图层满足预设合成条件。
[0021]另外,预设合成条件还可以包括:若获取的第一图层包括图层信息发生变化的第一图层,则图层信息发生变化的第一图层的位置区域能够完全覆盖变化前的第一图层的位置区域。变化前的第一图层的位置区域是指第一图层在上一帧的已合成图层中的位置区域。
[0022]作为一个示例,在获取待合成图层中的第一图层之后,还可以确定获取的第一图层是否包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种图层合成方法,其特征在于,应用于电子设备中,所述电子设备包括图层管理模块和硬件合成器HWC,包括:所述图层管理模块获取待合成图层中的第一图层,所述第一图层为新建图层或图层信息发生变化的图层,所述图层信息包括图层属性或显示数据;所述图层管理模块将获取的第一图层发送给所述HWC;所述HWC对所述获取的第一图层和第一合成图层进行合成,得到第二合成图层,所述第一合成图层为所述HWC在所述第二合成图层之前合成的图层。2.根据权利要求1所述的方法,其特征在于,所述图层管理模块将获取的第一图层发送给所述HWC之前,包括:所述图层管理模块确定所述获取的第一图层是否满足预设合成条件;所述图层管理模块若确定所述获取的第一图层满足所述预设合成条件,则执行将获取的第一图层发送给所述HWC的步骤。3.根据权利要求2所述的方法,其特征在于,所述预设合成条件包括:所述获取的第一图层中任一第一图层的层级大于或等于剩余图层的最大层级,所述剩余图层是指所述待合成图层中除所述获取的第一图层之外的图层。4.根据权利要求3所述的方法,其特征在于,所述预设合成条件还包括:若所述获取的第一图层包括图层信息发生变化的第一图层,则所述图层信息发生变化的第一图层的位置区域能够完全覆盖变化前的第一图层的位置区域。5.根据权利要求1

4任一所述的方法,其特征在于,所述图层管理模块将获取的第一图层发送给所述HWC之前,还包括:所述图层管理模块获取所述HWC已合成的所述第一合成图层;所述图层管理模块将获取的第一图层发送给所述HWC,包括:所述图层管理模块将所述获取的第一图层和所述第一合成图层发送给所述HWC。6.根据权利要求5所述的方法,其特征在于,所述所述图层管理模块获取所述HWC已合成的所述第一合成图层,包括:所述图层管理模块调用所述HWC的回调函数,所述回调函数用于获取所述HWC已合成的合成图层;所述图层管理模块通过所述回调函数,获取所述HWC已合成的所述第一合成图层。7.根据权利要求6所述的方法,其特征在于,所述图层管理模块获取所述HWC已合成的所述第一合成图层之前,还包括:所述图层管理模块调用回调函数注册接口,通过所述回调函数注册接口为所述HWC注册所述回调函数。8.根据权利要求1

4任一所述的方法,其特征在于,所述图层管理模块将获取的第一图层发送给所述HWC,包括:所述图层管理模块向所述HWC发送图层合成请求,所述图层合成请求携带所述获取的第一图层,所述图层合成请求用于请求所述HWC获取已合成的所述第一合成图层,对所述获取的第一图层和所述第一合成图层进行合成;所述HWC对所述获取的第一图层和第一合成图层进行合成之前,还包括:所述HWC接收所述图层合成请求;
所述HWC根据所述图层合成请求,获取已合成的所述第一合成图层。9.根据权利要求1

8任一所述的方法,其特征在于,所述图层管理模块将获取的第一图层和所述第一合成图层发送给所述HWC之前,还包括:所述图层管理模块向所述HWC发送第一合成策略获取请求,所述第一合成策略获取请求携带所述获取的第一图层的相关信息;所述HWC接收所述第一合成策略获取请求,根据所述获取的第一图层的相关信息以及所述第一合成图层的相关信息,确...

【专利技术属性】
技术研发人员:林泰良
申请(专利权)人:荣耀终端有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1