System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及电子,尤其涉及一种图像帧的生成方法、电子设备、芯片系统和存储介质。
技术介绍
1、随着计算机技术的发展,电子设备支持在前台同时运行一个或多个应用程序,即前台应用。由于每个前台应用均需要在屏幕上呈现其用户界面,但电子设备屏幕的显示区域有限,因此,电子设备实际所显示的图像帧是各个前台应用的用户界面合并后的效果。
2、目前,电子设备可以采用统一渲染(unified render)的方式,将各个前台应用的用户界面合并在一个图像帧进行显示。但是,在一个统一渲染周期内,统一渲染进程unirender需要执行的操作较多,例如需要更新渲染节点、遍历渲染节点以生成图像帧、将图像帧送显等。由于unirender的渲染过程相对复杂,生成图像帧的速率较慢,因此导致电子设备在显示过程中掉帧或者卡顿,用户体验不佳。
技术实现思路
1、本申请提供一种图像帧的生成方法、电子设备、芯片系统和存储介质,用于解决现有技术中统一渲染进程生成图像帧的速率较慢,导致电子设备在显示过程中掉帧或者卡顿的问题。
2、为达到上述目的,本申请采用如下技术方案:
3、第一方面,本申请提供一种图像帧的生成方法,应用于电子设备,电子设备的统一渲染进程包括主线程和渲染线程,方法包括:主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果;主线程向渲染线程同步第一预处理结果;渲染线程根据第一预处理结果生成第一图像帧;在渲染线程根据第一预处理结果生成第一图像帧的过程中,主线程接收第二垂直同步信
4、其中,第一垂直同步信号和第二垂直同步信号是按照固定频率发送的内容相同的信号。第一图像帧和第二图像帧是在屏幕上依次显示的两个不同的图像帧。
5、在本实施例中,电子设备在进行统一渲染的过程中,主线程处理第二图像帧的过程,和渲染线程处理第一图像帧的过程是并行运行的。因此,本实施例提供的方法能够提高图像帧的生成速率,减少电子设备显示过程中掉帧或者卡顿的情况,提高用户体验。
6、在一些实施例中,第一预处理结果为第一图像帧的第一绘制指令列表;其中,第一绘制指令列表为增量绘制指令列表或者全量绘制指令列表,其中,增量绘制指令列表包括第一图像帧的统一渲染树中新增的渲染节点的绘制指令,和/或,信息变更的渲染节点的绘制指令;全量绘制指令列表包括第一图像帧的统一渲染树中所有的渲染节点的绘制指令,其中,统一渲染树为进行统一渲染的所有应用程序的渲染树合并得到的渲染树。
7、需要说明的是,主线程生成全量绘制指令列表时,无需进行脏区计算,即无需确定统一渲染树中新增的渲染节点的绘制指令,和/或,信息变更的渲染节点的绘制指令,生成过程相对简单。而增量绘制指令列表中所包含的绘制操作较少,能够减少后续渲染线程的工作量,提高渲染线程的工作效率。
8、在一些实施例中,第一图像帧包括来自第一应用程序的第一部分和来自第二应用程序的第二部分,主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果,包括:主线程接收第一垂直同步信号之后,采用第一子线程确定第一部分对应的第一绘制指令子列表;主线程接收第一垂直同步信号之后,采用第二子线程确定第二部分对应的第二绘制指令子列表;其中,第一子线程与第二子线程并行运行;主线程根据第一绘制指令子列表和第二绘制指令子列表,生成第一图像帧的第一绘制指令列表。
9、在本实施例中,主线程采用多个子线程并行处理第一图像帧不同的部分,能够提高生成第一图像帧的第一绘制指令列表的效率,进而提高图像帧的生成效率。
10、在一些实施例中,渲染线程根据第一预处理结果生成第一图像帧,包括:渲染线程采用第一渲染子线程根据第一绘制指令列表的第一部分得到第一绘制结果;渲染线程采用第二渲染子线程根据第一绘制指令列表的第二部分得到第二绘制结果;其中,第一渲染子线程和第二渲染子线程并行运行;渲染线程根据第一绘制结果和第二绘制结果,生成第一图像帧。
11、例如,渲染线程可以根据离屏帧缓存对象(frame buffer object,fbo)的数量,将第一绘制指令列表拆分为n个子列表,例如上述第一部分和第二部分。随后,确定n个渲染子线程,例如上述第一渲染子线程和第二渲染子线程,来分别处理该n个子列表,最终得到第一图像帧。
12、需要说明的是,第一绘制指令列表的第一部分和第二部分还可以分别对应主线程中的第一绘制指令子列表和第二绘制指令子列表,本实施例对此不进行限制。
13、在本实施例中,渲染线程采用多个渲染子线程并行处理第一绘制指令列表的不同部分,能够快速执行完绘制指令列表中的绘制操作,生成第一图像帧。
14、在一些实施例中,渲染线程根据第一绘制结果和第二绘制结果,生成第一图像帧,包括:当第一绘制指令列表为增量绘制指令列表时,渲染线程根据第一绘制结果和第二绘制结果,以及上一个图像帧的绘制结果,生成第一图像帧。例如,渲染线程使用第一绘制结果和第二绘制结果替换掉上一个图像帧的绘制结果中对应的部分,即可得到第一图像帧。
15、在本实施例中,采用增量绘制的方式生成第一图像帧,能够减少主线程和渲染线程处理的数据量,提高生成图像帧的速率。
16、在一些实施例中,第一绘制指令列表为增量绘制指令列表,主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果,包括:主线程接收第一垂直同步信号之后,接收至少一个应用程序的渲染树的节点变更信息;主线程根据节点变更信息,生成第一图像帧的增量绘制指令列表。
17、例如,主线程根据应用程序的节点变更信息更新统一渲染树,并遍历统一渲染树以进行脏区计算,并将脏区绘制指令复制到增量绘制指令列表中。
18、在本实施例中,在根据节点更新信息生成增量绘制指令列表的过程中,主线程的运算量较小,其生成的增量绘制指令列表中的绘制指令较少,能够提高图像帧的生成效率。
19、在一些实施例中,第一绘制指令列表为全量绘制指令列表,主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果,包括:主线程接收第一垂直同步信号之后,接收至少一个应用程序的渲染树;主线程根据至少一个应用程序的渲染树,生成第一图像帧的全量绘制指令列表。
20、例如,主线程接收到各个应用程序的渲染树之后,将各个应用程序的渲染树进行合并,得到统一渲染树。随后,将该统一渲染树中的每个渲染节点整体作为一个绘制指令录制到一个缓存区,形成全量绘制指令列表。
21、在一些实施例中,第一预处理结果为第一图像帧的统一渲染树,其中,统一渲染树为进行统一渲染的所有应用程序的渲染树合并得到的渲染树。
22、在一些实施例中,渲染线程根据第一预处理结果生成第一图像帧,包括:渲染线程接收第一预处理结果之后,根据第一预处理结果生成第一图像帧。
23、在本实施例中,主线程可以通过第一预处理结果(例如第一绘制指令列表)快速拉本文档来自技高网...
【技术保护点】
1.一种图像帧的生成方法,其特征在于,应用于电子设备,所述电子设备的统一渲染进程包括主线程和渲染线程,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一预处理结果为所述第一图像帧的第一绘制指令列表;其中,所述第一绘制指令列表为增量绘制指令列表或者全量绘制指令列表,
3.根据权利要求2所述的方法,其特征在于,所述第一图像帧包括来自第一应用程序的第一部分和来自第二应用程序的第二部分,所述主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述渲染线程根据所述第一预处理结果生成所述第一图像帧,包括:
5.根据权利要求4所述的方法,其特征在于,所述渲染线程根据所述第一绘制结果和所述第二绘制结果,生成所述第一图像帧,包括:
6.根据权利要求2~5任一项所述的方法,其特征在于,所述第一绘制指令列表为增量绘制指令列表,所述主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果,包括:
7.根据权利要求2~5任一项所述的方法,其特征在于
8.根据权利要求1所述的方法,其特征在于,所述第一预处理结果为所述第一图像帧的统一渲染树,其中,所述统一渲染树为进行统一渲染的所有应用程序的渲染树合并得到的渲染树。
9.根据权利要求1~8任一项所述的方法,其特征在于,所述渲染线程根据所述第一预处理结果生成所述第一图像帧,包括:
10.根据权利要求1~8任一项所述的方法,其特征在于,所述渲染线程根据所述第一预处理结果生成所述第一图像帧,包括:
11.根据权利要求1~10任一项所述的方法,其特征在于,所述主线程向所述渲染线程同步所述第一预处理结果,包括:
12.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;
13.一种芯片系统,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1~11中任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1~11任一项所述的方法。
...【技术特征摘要】
1.一种图像帧的生成方法,其特征在于,应用于电子设备,所述电子设备的统一渲染进程包括主线程和渲染线程,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述第一预处理结果为所述第一图像帧的第一绘制指令列表;其中,所述第一绘制指令列表为增量绘制指令列表或者全量绘制指令列表,
3.根据权利要求2所述的方法,其特征在于,所述第一图像帧包括来自第一应用程序的第一部分和来自第二应用程序的第二部分,所述主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述渲染线程根据所述第一预处理结果生成所述第一图像帧,包括:
5.根据权利要求4所述的方法,其特征在于,所述渲染线程根据所述第一绘制结果和所述第二绘制结果,生成所述第一图像帧,包括:
6.根据权利要求2~5任一项所述的方法,其特征在于,所述第一绘制指令列表为增量绘制指令列表,所述主线程接收第一垂直同步信号之后,生成第一图像帧的第一预处理结果,包括:
7.根据权利要求2~5任一项所述的方法,其特征在于,所述第一绘制指令列表为全量绘制指令列表,所述主线程接收第...
【专利技术属性】
技术研发人员:陈路路,刘超,张朋,李蔚,李俊杰,陈沁心,周江浩,储承承,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。