图像帧合成方法、装置及存储介质与流程

文档序号:25801054发布日期:2021-07-09 12:30阅读:65来源:国知局
图像帧合成方法、装置及存储介质与流程

1.本公开涉及图像技术领域,尤其涉及一种图像帧合成方法、装置及存储介质。


背景技术:

2.现有的视频画面或者游戏画面等的合成是依据刷新频率实现的,即每次需要刷新的时候,系统会发出一个垂直同步(vertical synchronization,vsync)信号,这个vsync信号是一秒内会均匀发出的对齐信号。但是如果vsync信号到来时,当前的图像帧还没画完,就会造成丢帧,即使晚于vsync信号一点时间,也同样是丢帧,如此会造成很多不必要的丢帧现象。


技术实现要素:

3.本公开提供一种图像帧合成方法、装置及存储介质。
4.根据本公开实施例的第一方面,提供一种图像帧合成方法,包括:
5.接收到第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制;
6.监听所述第n图像帧的所述图像的绘制状态;
7.当监听到所述图像绘制完成时,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
8.可选地,所述方法还包括:
9.接收到第n个第一类对齐信号后,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像,或者,当监听到所述第n图像帧的图像绘制完成时,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像。
10.可选地,所述当监听到所述图像绘制完成时,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧,包括:
11.当监听到所述第n图像帧的所述图像绘制完成时,获取第二类对齐信号;
12.基于所述第二类对齐信号的触发,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
13.可选地,所述当监听到所述第n个图像帧的图像绘制完成时,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像,包括:
14.基于所述第二类对齐信号的触发,开始绘制所述第n+1个第一类对齐信号对应的待合成的所述第n+1图像帧的图像。
15.可选地,所述方法还包括:
16.接收到第n+1个第一类对齐信号后,若所述第n个第一类对齐信号对应的待合成的所述第n图像帧中仍存在未绘制完成的图像,则停止监听所述第n图像帧的所述图像的绘制状态。
17.可选地,所述方法还包括:
18.接收到所述第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的所述第n图像帧中的图像均完成绘制,基于所述第n个第一类对齐信号的触发,根据绘制完成的所述第n图像帧的图像合成所述第n图像帧。
19.可选地,所述方法还包括:
20.接收到第n+1个第一类对齐信号后,显示已合成的所述第n图像帧。
21.可选地,所述显示已合成的所述第n图像帧,包括:
22.基于所述第n+1个第一类对齐信号的触发,确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧已合成,从第一存储空间中读取已合成的所述第n图像帧;
23.将读取的所述第n图像帧写入到第二存储空间内,并从所述第二存储空间内读取所述第n图像帧进行显示。
24.可选地,所述方法还包括:
25.当确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧中,存在图像未完成绘制时,创建第三存储空间;
26.在所述第三存储空间内,绘制所述第n+1个第一类对齐信号对应的所述第n+1图像帧的图像。
27.根据本公开实施例的第二方面,提供一种图像帧合成装置,包括:
28.接收单元,用于接收到第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制;
29.监听单元,用于监听所述第n图像帧的所述图像的绘制状态;
30.第一合成单元,用于当监听到所述图像绘制完成时,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
31.可选地,所述装置还包括:
32.第一绘制单元,用于接收到第n个第一类对齐信号后,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像;
33.或者,
34.第二绘制单元,用于当监听到所述第n图像帧的图像绘制完成时,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像。
35.可选地,所述第一合成单元,包括:
36.获取单元,用于当监听到所述第n图像帧的所述图像绘制完成时,获取第二类对齐信号;
37.第一合成子单元,用于基于所述第二类对齐信号的触发,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
38.可选地,所述第二绘制单元,包括:
39.第二绘制子单元,用于基于所述第二类对齐信号的触发,开始绘制所述第n+1个第一类对齐信号对应的待合成的所述第n+1图像帧的图像。
40.可选地,所述装置还包括:
41.监听终止单元,用于接收到第n+1个第一类对齐信号后,若所述第n个第一类对齐信号对应的待合成的所述第n图像帧中仍存在未绘制完成的图像,则停止监听所述第n图像帧的所述图像的绘制状态。
42.可选地,所述装置还包括:
43.第二合成单元,用于接收到所述第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的所述第n图像帧中的图像均完成绘制,基于所述第n个第一类对齐信号的触发,根据绘制完成的所述第n图像帧的图像合成所述第n图像帧。
44.可选地,所述装置还包括:
45.显示单元,用于接收到第n+1个第一类对齐信号后,显示已合成的所述第n图像帧。
46.可选地,所述显示单元,包括:
47.读取单元,用于基于所述第n+1个第一类对齐信号的触发,确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧已合成,从第一存储空间中读取已合成的所述第n图像帧;
48.显示执行单元,用于将读取的所述第n图像帧写入到第二存储空间内,并从所述第二存储空间内读取所述第n图像帧进行显示。
49.可选地,所述装置还包括:
50.创建单元,用于当确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧中,存在图像未完成绘制时,创建第三存储空间;
51.第三绘制单元,用于在所述第三存储空间内,绘制所述第n+1个第一类对齐信号对应的所述第n+1图像帧的图像。
52.根据本公开实施例的第三方面,还提供一种图像帧合成装置,包括:
53.用于存储处理器可执行指令的存储器;
54.其中,所述处理器被配置为:执行所述存储器中存储的可执行指令时,实现上述第一方面所述任一项的方法。
55.根据本公开实施例的第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由图像帧合成装置的处理器执行时,使得所述图像帧合成装置能够执行上述第一方面所述任一项的方法。
56.本公开的实施例提供的技术方案可以包括以下有益效果:
57.在确定出第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制时,通过引入监听程序对第n个图像帧的图像的绘制状态进行监听,当监听到所述图像绘制完成就直接将所述图像合成。如此,通过监听使能直接对绘制完成的图像进行合成的方式,由于是在绘制完成即执行合成,可以极大地减少图像由于没有按时绘制完成而导致的图像帧丢失,实现了图像帧丢失率的减少。
58.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
59.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
60.图1为根据vsync信号来触发的应用绘制、合成和显示流程的示意图一。
61.图2为根据vsync信号来触发的应用绘制、合成和显示流程的示意图二。
62.图3是根据一示例性实施例示出的一种图像帧合成方法的流程图一。
63.图4为状态栏、底部或侧面的导航栏以及界面的合并示意图。
64.图5为根据一示例性实施例示出的一种图像帧合成方法中未按时绘制完成的示意图一。
65.图6(a)为根据一示例性实施例示出的一种图像帧合成方法中未按时绘制完成的示意图二。
66.图6(b)为根据一示例性实施例示出的一种图像帧合成方法中未按时绘制完成的示意图三。
67.图7为根据一示例性实施例示出的一种图像帧合成方法的流程图二。
68.图8为根据一示例性实施例示出的一种图像帧合成方法的流程图三。
69.图9是根据一示例性实施例示出的一种图像帧合成装置的结构示意图。
70.图10是根据一示例性实施例示出的一种图像帧合成装置的框图。
具体实施方式
71.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
72.相关技术中,包含多个图像帧的应用有:游戏类应用、视频类应用以及拍摄类应用等,所述应用具体是指应用程序,所述图像帧是指应用程序中的画面。在下述说明中,以应用来指代应用程序。实际应用中,应用画面的各种变化需要被合成之后才能显示到屏幕,而应用需要及时地在合成之前完成绘制工作才能保证当前图像帧能够被顺利合成,最终才能形成完整流畅的画面呈现给使用者。
73.一般而言,应用画面的合成的频率依赖于屏幕刷新率。目前手机的屏幕刷新率有30hz、60hz或者90hz等。对于30hz的屏幕刷新率,即1秒内刷新屏幕30次,意味着也需要合成30次,每次留给应用画面的绘制的时间是1s/30=33.33ms。应用在33.33ms内完成画面的绘制才能赶得上合成,否则就会导致丢帧。对于60hz的屏幕刷新率,即每次留给应用画面的绘制的时间是变成了1s/60=16.66ms。对于90hz的屏幕刷新率,即每次留给应用画面的绘制的时间是变成了1s/90=11.11ms。从这里可以看到,屏幕的刷新率在逐年增加,这固然带来了更加流畅的画面,但是留给应用绘制一帧的时间也越来越短,丢帧的机率越来越大。
74.正常的应用的绘制、合成和显示流程都是需要根据vsync信号来触发的,即正常情况下,第1个vsync信号来临后所启动绘制的图像帧所包含的图像,在第2个vsync信号来临后会执行合成,在第3个vsync信号来临后会进行显示。图1为根据vsync信号来触发的应用绘制、合成和显示流程的示意图一。如图1所示,1、2、3和4表示vsync信号,任意相邻的两次vsync信号之间的间隔就是屏幕的刷新率,例如,目前大部分的手机屏幕的刷新率都是60hz的,因此间隔就是16.6ms。如图1所示,传统的显示流程是严格对齐的,就是如果在当前的vsync信号来了,但是应用或者游戏当前图像帧还没画完,那么就会造成所当前图像帧无法合成,进而出现丢帧,即使游戏绘制当前图像帧只是慢了1ms而已,但是为了保证对齐不会去等当前图像帧绘制完成。
75.图2为根据vsync信号来触发的应用绘制、合成和显示流程的示意图二;如图2所
示,图中1、2、3、4和5表示vsync信号,在4表示的vsync信号来临时,由于图像帧未绘制完成,导致该图像帧在它对应的vsync信号来临来临时无法显示,在图2中位于4表示的vsy nc信号下方的矩形框框住的部分就是由于应用绘制慢而导致的丢帧,从这里可以看到,关于应用绘制、合成和显示流程依旧是严格按照对齐信号来触发,这样会造成很多不必要的丢帧现象。
76.为了有效地避免大量的丢帧,本公开实施例提供一种图像帧合成方法,图3是根据一示例性实施例示出的一种图像帧合成方法的流程图一,如图3所示,所述方法包括以下步骤:
77.步骤101,接收到第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制;
78.步骤102,监听所述第n图像帧的所述图像的绘制状态;
79.步骤103,当监听到所述图像绘制完成时,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
80.实际应用中,应用的绘制、合成和显示流程一般是由中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)和显示器一起执行。所述显示器用于对完成绘制以及合成的图像帧进行显示;上述屏幕刷新率是指显示器的刷新率。所述cpu和gpu负责渲染图像帧,即制作图像帧。
81.所述制作图像帧的步骤包括:绘制和合成;所述绘制是指绘制应用中的图像,具体而言,是指对应用的图像中的一些图形元素进行绘制;在所述应用的图像中的一些图形元素绘制完成后,对所述图形元素进行后续的合成处理。这里,应用图像中的图形元素是指:图层;不同的所述图层包含的图像内容不同,例如,有的图层是包含状态栏、有的图层包含导航栏以及应用界面等。
82.所述合成即是将所述应用或者游戏中的图像中的一些图形元素进行合并,得到最终要在显示器上显示的图像帧。
83.一般而言,电子设备的显示器显示的内容是由多个部分组成的;例如,屏幕顶部的状态栏、底部或侧面的导航栏以及应用界面。有些应用会拥有更多或更少的层,例如,默认应用的主屏幕有一个单独的壁纸层,而全屏游戏可能会隐藏状态栏。这些状态栏、底部或侧面的导航栏以及应用或者游戏的界面等部分,最终需要有系统的一个进程显示合成系统(surfaceflinger)将各个部分按照不同的层级进行组合,成为用户最终在显示屏幕看到的内容,这种合并的行为就称为合成。
84.图4为状态栏、底部或侧面的导航栏以及界面的合并示意图,如图4所示,通过显示合成系统进程实现将主界面(home)、顶部的状态栏(status bar)、壁纸(wall paper)以及关机栏(shutting)合并为用户最终在电子设备的显示器上看到的内容。所述电子设备可以是智能手机、电脑以及服务器等。
85.在本公开实施例中,所述对齐信号可以是vsync信号;所述对齐信号包括:第一类对齐信号和第二类对齐信号。在一种实施方式中,所述第一类对齐信号是由硬件控制器产生的一种硬件信号,即严格按照周期产生的脉冲信号,起到开关或触发某种操作的作用。所述第二类对齐信号是软件信号,是一种在需要时向操作系统申请的动态的对齐信号,在另一种实施方式中,第一类对齐信号和第二类对齐信号也可以是同一种信号,例如,都由硬件
控制器产生的硬件信号,或者,都是软件信号。
86.由于第二类对齐信号是一种在需要时向操作系统申请的动态的对齐信号。那么,如果需要在第n个第一类对齐信号和第n+1个第一类对齐信号之间执行第n+1图像帧的图像的绘制,就可以通过向操作系统申请一个动态的vsync信号实现。
87.所述向操作系统申请一个动态vsync信号,包括:向操作系统注册用于触发所述动态vsync信号的回调函数;调用所述回调函数来触发操作系统发出动态vsync信号,以使所述动态vsync信号触发对第n+1图像帧的图像进行绘制。需要说明的是,所述回调函数是一种在特定的事件或条件发生时由另外的一方调用的,用于对所述特定的事件或条件进行响应的函数;那么,当需要在第n个第一类对齐信号和第n+1个第一类对齐信号之间执行第n+1图像帧的图像的绘制,就可以在第n图像帧的图像绘制完成时,触发操作系统发出一个动态vsync信号。
88.如此,通过动态的vsync信号可以使得图像帧的绘制不需要等待硬件的vsync信号来临时执行,使得图像帧的绘制时刻点有更多的选择,也为可能出现的意外提供了更多的解决途径,为减少图像帧的丢失提供了更多的可能。
89.以第一种实施方式为例,关于第一类对齐信号的使用,以屏幕刷新率为16.6ms,对齐信号为vsync信号为例,硬件系统每隔16.6ms发出vsync信号触发对用户界面(user interface,ui)的渲染。具体过程可以描述为:
90.第n-1个vsync信号到来,cpu和gpu开始渲染第n图像帧;在第n个vsync信号到来时,如果第n图像帧所包含的图像均正常绘制完成,则会正常合成所述图像。如果第n图像帧所包含的图像中存在图像没有正常绘制完成,就会导致即使第n图像帧的图像在第n个vsync信号之后一点点的时间绘制完成,也无法在第n个vsync信号到来时进行合成,即一旦丧失了第n个vsync信号的合成机会,该帧就没有其它机会进行合成,在第n+1个vsync信号到来时,无法显示该帧,画面只能停留在前一帧,从而构成丢帧。
91.需要说明的是,导致第n图像帧所包含的图像中存在图像没有正常绘制完成的情况可能包括:cpu资源被占用忙于执行其他任务,或者,第n图像帧所包含的图像比较复杂,从而导致gpu无法在规定时间内渲染完成。
92.基于此,在第n个vsync信号到来时,由于第n图像帧所包含的图像还没有全部绘制完成,所以第n个vsync信号到来时就没办法按时合成,进而也无法按时显示。
93.在本公开实施例中,在执行在应用的绘制、合成和显示流程如图5所示,图5为根据一示例性实施例示出的一种图像帧合成方法中未按时绘制完成的示意图一;在图5中,接收到第n个第一类对齐信号后,第n个第一类对齐信号对应的待合成的第n图像帧中的图像没有按时绘制完成,通过监听第n图像帧的图像的绘制状态,当在图中a时刻时,第n图像帧的图像才全部绘制完成,就直接启动合成,即一旦确定述图像均绘制完成,就直接根据监听使能触发合成所述第n个第一类对齐信号对应的所述第n图像帧。
94.所述n为正整数,即本公开实施例针对的是应用或者游戏画面中的任意一个图像帧的绘制。
95.所述监听第n图像帧的所述图像的绘制状态具体是:设置一种监听策略,通过所述监听策略执行对所述第n个图像帧的生成状态的监听,并在监听到所述图像绘制完成时,通过监听策略的触发对绘制完成的所述图像进行合成,得到所述第n图像帧。所述监听策略可
以认为是一种监听使能,在满足对应的条件下触发执行。具体而言,当在第n图像帧的所述图像的绘制状态的监听中,确定出所述第n个图像帧所包含的所述图像已完成绘制时,就会自行触发对所述第n个图像帧所包含的所述图像中的至少两个图形元素的合并。
96.如此,本公开实施例在确定出第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制时,通过引入监听程序对第n个图像帧的生成绘制状态进行监听,当监听到所述图像绘制完成就直接将所述图像合成为图像帧。在接收到第n+1个第一类对齐信号后,即可直接显示已经合成的图像帧。如此,通过监听使能直接对绘制完成的图像进行合成的方式,会等待图像的绘制,在绘制完成后,会额外进行一次合成,所以可以极大地减少图像由于没有按时绘制完成错失合成机会而导致的丢帧,实现了图像帧丢失率的减少。
97.在一些实施例中,所述图像帧合成方法,还包括:
98.步骤104,接收到第n个第一类对齐信号后,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像。
99.如上所述,图像帧合成和显示是严格按照第一类对齐信号进行的,每个第一类对齐信号都会对应有待显示的图像帧(第n-1图像帧)和待合成的图像帧(第n图像帧)。对于图像的绘制,可以在前一图像帧对应的图像绘制完成后,立即绘制下一图帧对应的图像,也可以基于第一类对齐信号触发图像的绘制,例如,在第n个第一类对齐信号到来时,开始绘制第n+1个图像帧对应的图像,若基于第一类对齐信号触发图像的绘制,即使在接收到第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制;但由于接收到了第n个第一类对齐信号,也需要开始绘制第n+1图像帧对应的图像。
100.图6(a)为根据一示例性实施例示出的一种图像帧合成方法中未按时绘制完成的示意图二,如图6(a)所示,在确定出接收到第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制;但由于第n个第一类对齐信号的触发,对应的第n+1图像帧的图像还是开始执行绘制。
101.如此,在接收到第n个第一类对齐信号后,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像的方式,使得第n+1图像帧对应的图像能够有充足的时间进行绘制,进而避免压缩第n+1图像帧对应的图像的绘制时间,进一步避免了图像帧的丢失。
102.在一些实施例中,所述图像帧合成方法,还包括:
103.步骤105,当监听到所述第n图像帧的图像绘制完成时,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像。
104.这里,由于监听的是未按时完成绘制的第n图像帧的图像的绘制,那么,当所述未按时完成绘制的第n图像帧的图像完成绘制时,所对应的时刻就是处于第n个第一类对齐信号和第n+1个第一类对齐信号之间,此时是没有第一类对齐信号的。
105.在监听到所述第n图像帧的图像绘制完成时,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像,可以使得处理器在同一时间内,只绘制一个图像,避免第n图像帧的图像和第n+1图像帧的图像同时绘制,从而减轻处理器的处理负担。
106.图6(b)为根据一示例性实施例示出的一种图像帧合成方法中未按时绘制完成的示意图三,如图6(b)所示,在监听到所述第n图像帧的图像绘制完成时,就开始绘制第n+1图
像帧的图像。
107.由于每个图像帧的图像复杂度不同,通常只是个别图像帧的图像比较复杂,绘制时间会相对较长,大部分图像帧的图像绘制时间都比较短,所以,即使第n图像帧的图像绘制占用了第n+1图像帧的图像绘制时间,通常情况下,第n+1图像帧的图像也有足够的时间完成绘制。如此,在监听到所述第n图像帧的图像绘制完成时,开始绘制第n+1图像帧的图像,也可以使得第n+1图像帧的绘制、合成和显示照常进行。
108.在一些实施例中,步骤103中,所述当监听到所述图像绘制完成时,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧,包括:
109.当监听到所述第n图像帧的所述图像绘制完成时,获取第二类对齐信号;
110.基于所述第二类对齐信号的触发,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
111.这里,对于在接收到第n个第一类对齐信号后,确定的未能完成绘制的第n图像帧的图像,即使监听到它完成,也是在第n个第一类对齐信号和第n+1个第一类对齐信号之间完成,此时由于没有第一类对齐信号,则可以通过获取第二类对齐信号的方式,基于所述第二类对齐信号的触发来完成合成。
112.在一些实施例中,步骤105中的所述当监听到所述第n个图像帧的图像绘制完成时,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像,包括:
113.基于所述第二类对齐信号的触发,开始绘制第n+1图像帧的图像。
114.需要说明的是,所述第n+1图像帧将在第n+1个第一类对齐信号后到来时进行合成。
115.在一些实施例中,图7是根据一示例性实施例示出的一种图像帧合成方法的流程图二,所述方法还包括:
116.步骤106,接收到第n+1个第一类对齐信号后,若所述第n个第一类对齐信号对应的待合成的所述第n图像帧中仍存在未绘制完成的图像,则停止监听所述第n图像帧的图像的绘制状态。
117.在本公开实施例中,由于正常而言,第n图像帧是需要在接收到第n+1个第一类对齐信号后显示,如此第n图像帧才称为未丢失。那么,为了使第n图像帧不丢失,则需要尽可能地保证它在接收到第n+1个第一类对齐信号后能够显示。在此基础上,如果监听到在接收到第n+1个第一类对齐信号后,所述第n个第一类对齐信号对应的待合成的所述第n图像帧中仍存在未绘制完成的图像,即在接收到第n+1个第一类对齐信号时,第n图像帧仍未合成,那么就代表第n图像帧无法在接收到第n+1个第一类对齐信号后显示。此时,就认为第n图像帧还是会丢失。
118.对于这种在2个第一类对齐信号的周期内仍未完成绘制的图像帧而言,由于即使它在第n+1个第一类对齐信号后,第n+2个第一类对齐信号前完成了绘制,也还是出现了丢帧,如此,为了不浪费监听资源,就不再对它进行监听,减少了资源的浪费,也减少了处理的功耗。此时,即可放弃该第n图像帧的图像的绘制,也停止对该第n图像帧的图像的绘制的监听。
119.在一些实施例中,所述方法还包括:
120.接收到所述第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合
成的所述第n图像帧中的图像均完成绘制,基于所述第n个第一类对齐信号的触发,根据绘制完成的所述第n图像帧的图像合成所述第n图像帧。
121.这里,所述接收到所述第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的所述第n图像帧中的图像均完成绘制,意味着第n图像帧中的图像是正常完成绘制的。由于正常完成绘制,则就按照第一类对齐信号的处理原则,正常对它进行合成,即,在接收到所述第n个第一类对齐信号后,对第n图像帧的图像进行合成。
122.如此,对于正常完成绘制的图像帧按照原有的处理逻辑进行处理,在不较大改变处理逻辑的基础上,为较少图像帧的丢失提供了基础。
123.在一些实施例中,图8是根据一示例性实施例示出的一种图像帧合成方法的流程图三,所述方法还包括:
124.步骤107,接收到第n+1个第一类对齐信号后,显示已合成的所述第n图像帧。
125.在本公开实施例中,不论第n图像帧是在第n个第一类对齐信号合成的,还是在第n个第一类对齐信号之后合成的,都能正常在接收到第n+1个第一类对齐信号后显示,从而避免了第n图像帧的丢失。
126.需要说明的是,在一些实施例中,步骤107中的所述显示已合成的所述第n图像帧,包括:
127.基于所述第n+1个第一类对齐信号的触发,确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧已合成,从第一存储空间中读取已合成的所述第n图像帧;
128.将读取的所述第n图像帧写入到第二存储空间内,并从所述第二存储空间内读取所述第n图像帧进行显示。
129.实际应用中,所述第一存储空间和第二存储空间可以是用于执行缓冲的容器,具体地,所述第一存储空间可以是后备缓冲容器,所述第二存储空间可以是显示缓冲容器。
130.由于一个图像帧存在绘制、合成和显示,如果这些操作都是在一个容器中进行,即cpu/gpu向容器中生成图像,显示器从容器中取图像、刷新后显示。理想的情况下,帧率和显示器的刷新频率是相等的,即每绘制一帧,显示器就显示一帧。而实际情况是,帧率和显示器的刷新频率之间没有必然的大小关系,如果没有帧率和显示器的刷新频率没有实现同步,很容易就会出现问题。例如,当帧率大于显示器的刷新频率,即当显示器还没有刷新第n-1帧的时候,cpu/gpu已经在绘制第n帧了,由于只有一个容器,第n帧就会覆盖第n-1帧的数据,可能会出现显示器开始刷新第n-1帧的时候,容器中的数据上半部分是第n帧数据,而下半部分是第n-1帧的数据,显示出来的图像就会出现上半部分和下半部分明显偏差的现象,即出现画面撕裂。
131.在本公开实施例中,为了防止显示器上显示出撕裂的图像帧,本公开实施例通过2个容器来完成图像帧的绘制、合成和显示;所述2个容器为后备缓冲容器和显示缓冲容器。具体地,cpu准备数据,gpu向后备缓冲容器中写数据,对齐信号从后备缓冲容器中复制数据到显示缓冲容器,显示器从显示缓冲容器中读数据。
132.如此,通过在不同的存储空间内执行图像帧绘制、合成和显示,由于在图像帧完成合成后,才写入第二存储空间,使得显示器显示的图像帧会是一个完整的图像帧,减少了显示撕裂的图像帧的可能性。
133.基于此,关于所述第n图像帧的显示可以是:接收到第n+1个第一类对齐信号后,基
于所述第n+1个第一类对齐信号的触发,如果确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧已合成,就从第一存储空间中读取已合成的所述第n图像帧写入第二存储空间内,进而从所述第二存储空间内读取所述第n图像帧进行显示。对应的,如果在接收到第n+1个第一类对齐信号后,确定出第一存储空间中所述第n个第一类对齐信号对应的待合成的所述第n图像帧还未合成,则不会执行从第一存储空间到第二存储空间的复制操作,那么,所述第n图像帧就不会被显示。
134.在一些实施例中,所述方法还包括:
135.当确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧中,存在图像未完成绘制时,创建第三存储空间;
136.在所述第三存储空间内,绘制所述第n+1个第一类对齐信号对应的所述第n+1图像帧的图像。
137.基于上述描述,如果在接收到第n个第一类对齐信号后正常应该执行合成的第n图像帧的图像没有全部绘制完成,则所述第n图像帧的图像仍会在后备缓冲容器中执行绘制,如此,接收到第n个第一类对齐信号后,无法将后备缓冲容器中绘制并合成完毕的图像帧复制到显示缓冲容器,导致后备缓冲容器被占用;而cpu由于已经完成了图像帧的数据准备工作,此时是处于空闲状态,会造成处理的资源浪费。
138.为了减少资源浪费,本公开实施例创建第三存储空间,即第3个容器,在第3个容器内执行下一个图像帧的图像的绘制。如此,为了即使第n图像帧的图像未正常完成绘制,也不影响第n+1图像帧的图像的绘制,通过第三存储空间来保证第n+1图像帧的图像绘制的照常执行,实现了在减少处理器资源浪费的基础上,为图像帧显示的连续性提供了较大地实现可能。
139.为了有效地较少大量的丢帧,本公开实施例还提供一种图像帧合成装置,图9是根据一示例性实施例示出的一种图像帧合成装置的结构示意图,如图9所示,所述图像帧合成装置500包括:
140.接收单元501,用于接收到第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制;
141.监听单元502,用于监听所述第n图像帧的所述图像的绘制状态;
142.第一合成单元503,用于当监听到所述图像绘制完成时,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
143.如此,本公开实施例在确定出第n个第一类对齐信号对应的待合成的第n图像帧中,存在图像未完成绘制时,通过引入监听程序对第n个图像帧的生成绘制状态进行监听,当监听到所述图像绘制完成就直接将所述图像合成为图像帧。在接收到第n+1个第一类对齐信号后,即可直接显示已经合成的图像帧。如此,通过监听使能直接对绘制完成的图像进行合成的方式,会等待图像的绘制,在绘制完成后,会额外进行一次合成,所以可以极大地减少图像由于没有按时绘制完成错失合成机会而导致的丢帧,实现了图像帧丢失率的减少。
144.在一些实施例中,所述装置还包括:
145.第一绘制单元,用于接收到第n个第一类对齐信号后,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像;
146.或者,
147.第二绘制单元,用于当监听到所述第n图像帧的图像绘制完成时,开始绘制第n+1个第一类对齐信号对应的待合成的第n+1图像帧的图像。
148.在一些实施例中,所述第一合成单元,包括:
149.获取单元,用于当监听到所述第n图像帧的所述图像绘制完成时,获取第二类对齐信号;
150.第一合成子单元,用于基于所述第二类对齐信号的触发,根据绘制完成的所述图像合成所述第n个第一类对齐信号对应的所述第n图像帧。
151.在一些实施例中,所述第二绘制单元,包括:
152.第二绘制子单元,用于基于所述第二类对齐信号的触发,开始绘制所述第n+1个第一类对齐信号对应的待合成的所述第n+1图像帧的图像。
153.如上所述,第二类对齐信号是软件信号,是一种在需要时向操作系统申请的动态的对齐信号。基于此,在第n个第一类对齐信号和第n+1个第一类对齐信号之间执行第n+1图像帧的图像的绘制可以是:向操作系统申请一个动态的vsync信号实现。
154.如此,通过动态的vsync信号可以使得图像帧的绘制不需要等待硬件的vsync信号来临时执行,使得图像帧的绘制时刻点有个更多的选择,也为可能出现的意外提供了更多的解决途径,为减少图像帧的丢失提供了更多的可能。
155.在一些实施例中,所述装置还包括:
156.监听终止单元,用于接收到第n+1个第一类对齐信号后,若所述第n个第一类对齐信号对应的待合成的所述第n图像帧中仍存在未绘制完成的图像,则停止监听所述第n图像帧的所述图像的绘制状态。
157.对于这种在2个第一类对齐信号的周期内仍未完成图像绘制的图像帧而言,由于即使它在第n+1个第一类对齐信号后,第n+2个第一类对齐信号前完成了绘制,也还是出现了丢帧,如此,为了不浪费监听资源,就不再对它进行监听,减少了资源的浪费,也减少了处理的功耗。
158.在一些实施例中,所述装置还包括:
159.第二合成单元,用于接收到所述第n个第一类对齐信号后,确定所述第n个第一类对齐信号对应的待合成的所述第n图像帧中的图像均完成绘制,基于所述第n个第一类对齐信号的触发,根据绘制完成的所述第n图像帧的图像合成所述第n图像帧。
160.如此,对于正常完成绘制的图像帧按照原有的处理逻辑进行处理,在不较大改变处理逻辑的基础上,为较少图像帧的丢失提供了基础。
161.在一些实施例中,所述装置还包括:
162.显示单元,用于接收到第n+1个第一类对齐信号后,显示已合成的所述第n图像帧的显示。
163.在一些实施例中,所述显示单元,包括:
164.读取单元,用于基于所述第n+1个第一类对齐信号的触发,确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧已合成,从第一存储空间中读取已合成的所述第n图像帧;
165.显示执行单元,用于将读取的所述第n图像帧写入到第二存储空间内,并从所述第
二存储空间内读取所述第n图像帧进行显示。
166.如此,通过在不同的存储空间内执行图像帧绘制、合成和显示,由于在图像帧完成合成后,才写入第二存储空间,使得显示器显示的图像帧会是一个完整的图像帧,减少了显示撕裂的图像帧的可能性。
167.在一些实施例中,所述装置还包括:
168.创建单元,用于当确定出所述第n个第一类对齐信号对应的待合成的所述第n图像帧中,存在图像未完成绘制时,创建第三存储空间;
169.第三绘制单元,用于在所述第三存储空间内,绘制所述第n+1个第一类对齐信号对应的所述第n+1图像帧的图像。
170.如此,为了即使第n图像帧的图像未正常完成绘制,也不影响第n+1图像帧的图像的绘制,本公开实施例创建了第三存储空间来执行第n+1图像帧的图像的绘制。通过第三存储空间来保证第n+1图像帧的图像的绘制的照常执行,实现了在减少处理器资源浪费的基础上,为图像帧显示的连续性提供了较大地实现可能。
171.图10是根据一示例性实施例示出的一种图像帧合成装置800的框图。例如,装置800可以是移动电话、计算机、数字广播终端、消息收发设备、游戏控制台、平板设备、医疗设备、健身设备、个人数字助理等。
172.参照图10,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电力组件806,多媒体组件808,音频组件810,输入/输出(i/o)接口812,传感器组件814,以及通信组件816。
173.处理组件802通常控制装置800的整体操作,诸如与显示、电话呼叫、数据通信、相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802还可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
174.存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令、联系人数据、电话簿数据、消息、图片、视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram)、电可擦除可编程只读存储器(eeprom)、可擦除可编程只读存储器(eprom)、可编程只读存储器(prom)、只读存储器(rom)、磁存储器、快闪存储器、磁盘或光盘。
175.电力组件806为装置800各种组件提供电力。电力组件806可以包括:电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
176.多媒体组件808包括在所述装置800和用户之间提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时刻点和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头
和/或后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
177.音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(mic),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
178.i/o接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘、点击轮、按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
179.传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态、组件的相对定位,例如所述组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置为在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器、陀螺仪传感器、磁传感器、压力传感器或温度传感器。
180.通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如wifi、2g或3g,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术、超宽带(uwb)技术、蓝牙(bt)技术或其他技术来实现。
181.在示例性实施例中,装置800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
182.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
183.一种非临时性计算机可读存储介质,当所述存储介质中的指令由图像帧合成装置的处理器执行时,使得图像帧合成装置能够执行上述实施例中的图像帧合成方法。
184.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
185.应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1