本技術(shù)涉及計(jì)算機(jī),尤其涉及一種圖層合成方法、電子設(shè)備及芯片系統(tǒng)。
背景技術(shù):
1、隨著電子技術(shù)的發(fā)展,如手機(jī)、平板電腦等具有圖像顯示功能的電子設(shè)備越來越多。電子設(shè)備所顯示的顯示界面,通常由多個(gè)圖層合成得到,比如,可以由狀態(tài)欄圖層和應(yīng)用界面圖層合成得到。其中,狀態(tài)欄圖層上可以包括多個(gè)狀態(tài)圖標(biāo),比如,用于指示網(wǎng)絡(luò)狀態(tài)的狀態(tài)圖標(biāo)、用于指示設(shè)備連接狀態(tài)的狀態(tài)圖標(biāo)、用于指示電池狀態(tài)的狀態(tài)圖標(biāo)、用于指示時(shí)間的狀態(tài)圖標(biāo),等等。
2、實(shí)際應(yīng)用中發(fā)現(xiàn),應(yīng)用在運(yùn)行的過程中,由于應(yīng)用軟件自身不穩(wěn)定或者應(yīng)用軟件與電子設(shè)備的系統(tǒng)不匹配等原因,容易出現(xiàn)應(yīng)用界面在被顯示的過程中閃黑的問題,導(dǎo)致用戶體驗(yàn)不佳。
技術(shù)實(shí)現(xiàn)思路
1、有鑒于此,本技術(shù)實(shí)施例提供了圖層合成方法、電子設(shè)備及芯片系統(tǒng),可以有效解決應(yīng)用界面在被顯示的過程中閃黑的問題。
2、第一方面,本技術(shù)實(shí)施例提供了一種圖層合成方法,應(yīng)用于電子設(shè)備。
3、首先,電子設(shè)備可以響應(yīng)于用戶的第一操作,將圖層合成模式從第一合成模式切換為第二合成模式,以及將目標(biāo)應(yīng)用的第一圖層圖像存入目標(biāo)緩存。其中,所述第一圖層圖像為所述第一操作開始執(zhí)行的前一時(shí)刻所述目標(biāo)應(yīng)用所對(duì)應(yīng)圖層的圖層圖像。上述第一合成模式至少由硬件合成器hwc執(zhí)行圖層合成,上述第二合成模式由圖形處理器gpu執(zhí)行圖層合成。上述第一操作通常用于觸發(fā)電子設(shè)備顯示目標(biāo)應(yīng)用的第一動(dòng)畫效果。
4、之后,電子設(shè)備可以在所述第二合成模式的情況下,顯示所述目標(biāo)應(yīng)用的第一動(dòng)畫效果。在電子設(shè)備顯示第一動(dòng)畫效果的過程中,所述第一動(dòng)畫效果中可以包括第一圖像幀,所述第一圖像幀對(duì)應(yīng)的動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像為黑圖,且所述第一圖像幀為所述gpu基于所述目標(biāo)緩存中的所述第一圖層圖像及所述圖層屬性,對(duì)所需合成的各圖層執(zhí)行圖層合成得到。其中,所述動(dòng)效圖層數(shù)據(jù)為第一時(shí)刻至第二時(shí)刻之間的任一時(shí)刻所述目標(biāo)應(yīng)用的圖層數(shù)據(jù),所述動(dòng)效圖層數(shù)據(jù)包括圖層屬性和待分析圖層圖像。其中,上述第一時(shí)刻為所述電子設(shè)備檢測(cè)到上述第一操作開始作用于電子屏幕的時(shí)刻。上述第二時(shí)刻為所述電子設(shè)備結(jié)束顯示所述第一動(dòng)畫效果的時(shí)刻。
5、上述電子屏幕為電子設(shè)備的屏幕。目標(biāo)應(yīng)用為前臺(tái)運(yùn)行的應(yīng)用。
6、其中,上述第一操作是指可能會(huì)引起應(yīng)用界面閃黑的操作。上述第一動(dòng)畫效果為與上述第一操作對(duì)應(yīng)的動(dòng)畫效果。應(yīng)用界面閃黑通常是指應(yīng)用界面圖層在某一幀正常顯示,其后的一幀或多幀為黑圖,之后又正常顯示。比如,應(yīng)用界面的圖層在第n幀正常顯示,第n+1幀為黒圖,第n+2幀又正常顯示。
7、其中,目標(biāo)應(yīng)用對(duì)應(yīng)的圖層,可以有一個(gè),也可以有多個(gè),本技術(shù)實(shí)施例對(duì)目標(biāo)應(yīng)用所對(duì)應(yīng)的圖層的數(shù)量不做限定。
8、其中,圖層屬性用于描述圖層在顯示界面上的分布特征,圖層屬性可以包括但不限于圖層在顯示界面中的位置、大小、層級(jí)以及透明度等。
9、其中,第一合成模式也可以稱為常規(guī)合成模式。第二合成模式也可以稱為gpu合成模式。gpu合成模式下由gpu執(zhí)行圖層合成。在常規(guī)合成模式下,至少由hwc執(zhí)行圖層合成。需要指出的是,常規(guī)合成模式通常是現(xiàn)有技術(shù)中使用的圖層合成方式,常規(guī)合成模式下,可以參照現(xiàn)有的合成方式進(jìn)行圖層合成,這里不做贅述。
10、實(shí)踐中,應(yīng)用界面的圖層數(shù)據(jù)通常是實(shí)時(shí)更新的,比如,每秒更新60次。也就是說,目標(biāo)應(yīng)用在前臺(tái)運(yùn)行的過程中,目標(biāo)應(yīng)用可以實(shí)時(shí)的將各圖層的圖層數(shù)據(jù)分別寫入對(duì)應(yīng)的緩存隊(duì)列。針對(duì)每個(gè)圖層,對(duì)應(yīng)一個(gè)緩存隊(duì)列。電子設(shè)備(具體可以為電子設(shè)備中的surfaceflinger)可以從緩存隊(duì)列中獲取各圖層的圖層數(shù)據(jù),其中包括目標(biāo)應(yīng)用對(duì)應(yīng)的圖層的圖層數(shù)據(jù),也包括其它圖層的圖層數(shù)據(jù)。作為一個(gè)示例,其它圖層可以為狀態(tài)欄對(duì)應(yīng)的圖層。為了便于描述,狀態(tài)欄對(duì)應(yīng)的圖層也可以稱之為狀態(tài)欄圖層。在第二合成模式下,電子設(shè)備可以通過surfaceflinger將所獲取的各圖層的圖層數(shù)據(jù)傳遞至電子設(shè)備中的gpu,由gpu執(zhí)行圖層合成。此時(shí),gpu合成得到的圖像(或者稱顯示界面),可以用于在電子設(shè)備的電子屏幕上進(jìn)行顯示。
11、在本技術(shù)實(shí)施例中,由于電子設(shè)備通常是在響應(yīng)第一操作的過程中,出現(xiàn)應(yīng)用界面閃黑,電子設(shè)備在檢測(cè)到第一操作的情況下,將目標(biāo)應(yīng)用的第一圖層圖像,也即是第一操作之前產(chǎn)生的圖層圖像,緩存于目標(biāo)緩存中。這樣,在由gpu執(zhí)行圖層合成的第二合成模式下,在實(shí)時(shí)獲取的目標(biāo)應(yīng)用的待分析圖層圖像為黒圖時(shí),電子設(shè)備中的gpu可以采用已經(jīng)緩存的第一圖層圖像進(jìn)行圖層合成,也即是,可以避免使用黒圖進(jìn)行圖層合成,有助于實(shí)現(xiàn)有效避免應(yīng)用界面在被顯示的過程中閃黑。另外,電子設(shè)備在檢測(cè)到第一操作的情況下,將圖層合成模式切換為第二合成模式,從而實(shí)現(xiàn)僅由gpu對(duì)各圖層執(zhí)行合成,由于gpu具有非常強(qiáng)的并行計(jì)算能力,且對(duì)圖形圖像等數(shù)據(jù)進(jìn)行處理的效率較高,由gpu執(zhí)行圖層合成,可以保障圖層合成效率。其中,上述實(shí)時(shí)獲取的目標(biāo)應(yīng)用的待分析圖層圖像,為實(shí)時(shí)獲取的目標(biāo)應(yīng)用對(duì)應(yīng)的動(dòng)效圖層數(shù)據(jù)中的圖層圖像。
12、可選的,上述目標(biāo)緩存通常為gpu緩存。將第一圖層圖像緩存于gpu中,可以實(shí)現(xiàn)在由gpu執(zhí)行圖層合成時(shí),gpu可以快速地得到第一圖層圖像并執(zhí)行圖層合成,有助于進(jìn)一步提高gpu執(zhí)行圖層合成的效率。
13、可選的,在一些應(yīng)用場(chǎng)景中,在gpu合成模式下,電子設(shè)備也可以通過surfaceflinger將目標(biāo)應(yīng)用對(duì)應(yīng)的各圖層的圖層數(shù)據(jù)傳遞至gpu,以及將其它圖層數(shù)據(jù)傳遞至hwc,由gpu對(duì)目標(biāo)應(yīng)用的各圖層執(zhí)行合成,然后由hwc對(duì)gpu合成后的圖像與其它圖層繼續(xù)合成,從而合成得到用于在電子屏幕上顯示的顯示界面。
14、在本技術(shù)的一些可選的實(shí)施例中,電子設(shè)備中的surfaceflinger在響應(yīng)第一操作時(shí),可以向gpu發(fā)送操作指示信息。其中,操作指示信息用于指示電子設(shè)備檢測(cè)到處于第一操作階段的側(cè)滑手勢(shì)操作。
15、可選的,操作指示信息可以為對(duì)應(yīng)取值為第一取值的第一標(biāo)簽。
16、其中,第一標(biāo)簽用于指示電子設(shè)備是否檢測(cè)到處于第一操作階段的側(cè)滑手勢(shì)操作。第一標(biāo)簽的取值可以包括第一取值和第二取值。其中,上述第一取值指示電子設(shè)備檢測(cè)到側(cè)滑手勢(shì)操作處于第一操作階段。上述第二取值可以指示電子設(shè)備檢測(cè)到側(cè)滑手勢(shì)操作并非處于第一操作階段。
17、在第一方面的第一種可能的實(shí)現(xiàn)方式中,上述第一操作可以為側(cè)滑手勢(shì)操作,在第一操作為側(cè)滑手勢(shì)操作時(shí),上述第一動(dòng)畫效果為退出動(dòng)畫效果。
18、其中,所述側(cè)滑手勢(shì)操作用于退出所述目標(biāo)應(yīng)用。
19、實(shí)踐中,響應(yīng)于所述側(cè)滑手勢(shì)操作,電子設(shè)備可以顯示退出動(dòng)畫效果。
20、其中,退出動(dòng)畫效果(也可以稱為應(yīng)用退出動(dòng)效)為退出目標(biāo)應(yīng)用時(shí)的動(dòng)畫效果。
21、上述退出動(dòng)畫效果可以包括所述第一圖像幀。第一圖像幀基于第一圖層圖像執(zhí)行圖層合成得到,且第一圖像幀對(duì)應(yīng)的動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像為黑圖。
22、可選的,上述退出動(dòng)畫效果還可以包括第二圖像幀,其中,第二圖像幀基于動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像合成得到。也即是,動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像并非為黑圖。
23、可以理解的,如果從電子設(shè)備檢測(cè)到第一操作開始執(zhí)行,至電子設(shè)備結(jié)束顯示第一操作對(duì)應(yīng)的動(dòng)畫效果的過程中,電子設(shè)備所獲取的各個(gè)時(shí)刻的動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像都并非為黑圖,那么,電子設(shè)備所顯示的退出動(dòng)畫效果中也可以不包括上述第一圖像幀。
24、其中,側(cè)滑手勢(shì)操作(或者稱為側(cè)滑退出操作)通常是從電子設(shè)備的左右兩側(cè)中的一側(cè)向另一側(cè)方向滑動(dòng)以退出目標(biāo)應(yīng)用的操作。比如,可以是從手機(jī)的右側(cè)向左側(cè)方向滑動(dòng)的操作。
25、可以理解的,上述第一操作還可以為其它可能引起應(yīng)用界面閃黑的操作,本實(shí)施例對(duì)第一操作不做具體限定。
26、在第一方面的第二種可能的實(shí)現(xiàn)方式中,電子設(shè)備所述響應(yīng)于用戶的第一操作,將圖層合成模式從第一合成模式切換為第二合成模式,以及將目標(biāo)應(yīng)用的第一圖層圖像存入目標(biāo)緩存,可以為:電子設(shè)備響應(yīng)于處于第一操作階段的所述側(cè)滑手勢(shì)操作,將圖層合成模式從第一合成模式切換為第二合成模式,以及將目標(biāo)應(yīng)用的第一圖層圖像存入目標(biāo)緩存。
27、其中,所述第一操作階段為從第一時(shí)刻至第三時(shí)刻的階段。
28、上述第一時(shí)刻為所述電子設(shè)備檢測(cè)到第一操作開始作用于電子屏幕的時(shí)刻。
29、上述第三時(shí)刻為電子設(shè)備檢測(cè)到第一操作停止作用于電子屏幕的時(shí)刻。
30、在本技術(shù)實(shí)施例中,由于第一操作從開始執(zhí)行到結(jié)束執(zhí)行,通常需要一個(gè)過程,也即是,執(zhí)行一個(gè)完整的第一操作需要一段時(shí)長(zhǎng),比如,0.1秒。又由于應(yīng)用界面的圖層數(shù)據(jù)通常是實(shí)時(shí)且快速更新的,比如,每秒更新60次。在更新應(yīng)用界面的圖層數(shù)據(jù)的過程中,如果應(yīng)用程序?qū)Φ谝徊僮鲗?duì)應(yīng)的功能的兼容性不好,可能在第一操作尚未執(zhí)行完成,也即是在第一操作的操作手勢(shì)離開電子屏幕之前,就出現(xiàn)應(yīng)用界面閃黑。因此,電子設(shè)備在檢測(cè)到處于第一操作階段的側(cè)滑手勢(shì)操作的情況下,就將圖層合成模式切換為由gpu執(zhí)行圖層合成的第二合成模式,以及對(duì)目標(biāo)應(yīng)用的第一圖層圖像進(jìn)行緩存,既可以避免在操作手勢(shì)離開電子屏幕之前出現(xiàn)應(yīng)用界面閃黑的情況,也可以避免在操作手勢(shì)離開電子屏幕之后出現(xiàn)應(yīng)用界面閃黑的情況,有助于進(jìn)一步提升用戶體驗(yàn)。
31、在第一方面的第三種可能的實(shí)現(xiàn)方式中,電子設(shè)備可以響應(yīng)于側(cè)滑手勢(shì)操作,顯示退出動(dòng)畫效果,且具體的響應(yīng)過程可以為:電子設(shè)備響應(yīng)于處于第二操作階段的側(cè)滑手勢(shì)操作,顯示退出動(dòng)畫效果。
32、其中,上述第二操作階段為從第三時(shí)刻至第二時(shí)刻的階段。
33、上述第三時(shí)刻為電子設(shè)備檢測(cè)到第一操作停止作用于電子屏幕的時(shí)刻。
34、上述第二時(shí)刻為所述電子設(shè)備結(jié)束顯示所述第一動(dòng)畫效果的時(shí)刻。
35、實(shí)踐中,在電子設(shè)備顯示所述退出動(dòng)畫效果的過程中,在所獲取的動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像為黒圖的情況下,電子設(shè)備可以將目標(biāo)緩存中的第一圖層圖像切換為所獲取的待分析圖層圖像。
36、在本技術(shù)實(shí)施例中,由于目標(biāo)應(yīng)用執(zhí)行退出動(dòng)畫效果的過程中,先是應(yīng)用界面縮放,然后是應(yīng)用界面和應(yīng)用圖標(biāo)共同縮放,最后是應(yīng)用圖標(biāo)縮放,也即是,目標(biāo)應(yīng)用執(zhí)行退出動(dòng)畫效果的過程中,目標(biāo)應(yīng)用對(duì)應(yīng)的各圖層的圖層圖像可能會(huì)實(shí)時(shí)變化。電子設(shè)備在目標(biāo)應(yīng)用執(zhí)行退出動(dòng)畫效果的過程中,在待分析圖層圖像并非黒圖的情況下,及時(shí)采用最新的圖層圖像對(duì)目標(biāo)緩存中所緩存的第一圖層圖像(或者稱緩存圖層圖像)進(jìn)行更新,也即是,電子設(shè)備可以對(duì)最新的圖層圖像進(jìn)行緩存,有助于保障采用緩存圖層圖像進(jìn)行圖層合成時(shí)的準(zhǔn)確率,也即是,可以保障采用緩存圖層圖像進(jìn)行圖層合成得到的顯示界面,與上一時(shí)刻的顯示界面之間的變化更為連貫,有助于進(jìn)一步提升用戶體驗(yàn)。
37、在第一方面的第四種可能的實(shí)現(xiàn)方式中,在電子設(shè)備指示電子設(shè)備中的gpu基于所述目標(biāo)緩存中的所述第一圖層圖像及所述圖層屬性對(duì)所需合成的各圖層執(zhí)行圖層合成之前,電子設(shè)備還可以基于所述待分析圖層圖像中的各像素點(diǎn)的像素?cái)?shù)據(jù),對(duì)所述待分析圖層圖像進(jìn)行黒圖判斷。
38、在本技術(shù)實(shí)施例中,每次執(zhí)行圖層合成之前,對(duì)實(shí)時(shí)得到的待分析圖層圖像進(jìn)行黑圖判斷,可以避免使用黑圖執(zhí)行圖層合成,有助于實(shí)現(xiàn)有效避免應(yīng)用界面在被顯示的過程中閃黑。
39、在第一方面的第五種可能的實(shí)現(xiàn)方式中,目標(biāo)緩存為gpu緩存。電子設(shè)備中,通常是由gpu執(zhí)行對(duì)待分析圖層圖像進(jìn)行黒圖判斷。
40、具體地,gpu對(duì)待分析圖層圖像進(jìn)行黒圖判斷的過程為:
41、首先,gpu將待分析圖層圖像縮小至預(yù)設(shè)尺寸,得到目標(biāo)分析圖層圖像。實(shí)踐中,上述預(yù)設(shè)尺寸通常很小。
42、然后,gpu確定目標(biāo)分析圖層圖像的歸一化像素值,其中,歸一化像素值為目標(biāo)分析圖層圖像的平均像素值與最大像素值的比值。
43、之后,gpu在歸一化像素值小于預(yù)先設(shè)定的歸一化像素閾值的情況下,確定待分析圖層圖像為黑圖。
44、最后,在歸一化像素值大于或者等于歸一化像素閾值的情況下,確定待分析圖層圖像并非為黒圖。
45、在本技術(shù)實(shí)施例中,由于待分析圖層圖像的數(shù)據(jù)量通常很大,也即是,對(duì)待分析圖層圖像進(jìn)行黒圖判斷所需的計(jì)算量很大,又由于gpu具有靈活高效的圖形圖像數(shù)據(jù)處理能力,由gpu對(duì)待分析圖層圖像進(jìn)行黒圖判斷,可以保障黒圖判斷的效率和準(zhǔn)確率,從而保障圖層合成的效率和準(zhǔn)確率。另外,gpu先將待分析圖層圖像縮小至比較小的尺寸,然后,對(duì)小尺寸的目標(biāo)分析圖層圖像中的各像素點(diǎn)的像素?cái)?shù)據(jù)進(jìn)行分析,并判斷目標(biāo)分析圖層圖像是否為黒圖,從而判斷待分析圖層圖像是否為黒圖,可以極大地縮減數(shù)據(jù)處理量,從而進(jìn)一步提高黒圖判斷的效率。
46、在第一方面的第六種可能的實(shí)現(xiàn)方式中,電子設(shè)備還可以在結(jié)束顯示第一動(dòng)畫效果之后,及時(shí)將圖層合成模式從第二合成模式切換為第一合成模式。
47、在本技術(shù)實(shí)施例中,結(jié)束顯示第一動(dòng)畫效果,說明電子設(shè)備已經(jīng)完成對(duì)第一操作的響應(yīng)。此時(shí),電子設(shè)備可以將圖層合成模式從第二合成模式(也稱為gpu合成模式)切換回第一合成模式(也稱為常規(guī)合成模式)。在常規(guī)合成模式下,由gpu和hwc協(xié)作執(zhí)行圖層合成,可以降低gpu的數(shù)據(jù)處理量。由于gpu可以執(zhí)行圖層合成,還可以用于完成其他圖形處理任務(wù),因此,由gpu和hwc協(xié)作執(zhí)行圖層合成,可以減少gpu的數(shù)據(jù)處理量,從而提高電子設(shè)備的整體數(shù)據(jù)處理效率。
48、在第一方面的第七種可能的實(shí)現(xiàn)方式中,電子設(shè)備還可以在結(jié)束顯示第一動(dòng)畫效果之后,及時(shí)釋放目標(biāo)緩存。
49、在本技術(shù)實(shí)施例中,及時(shí)釋放目標(biāo)緩存,可以提高存儲(chǔ)資源的利用率。另外,在目標(biāo)緩存為gpu緩存時(shí),有助于提高gpu中的存儲(chǔ)資源的利用率。
50、在第一方面的第八種可能的實(shí)現(xiàn)方式中,所述第一動(dòng)畫效果還包括第二圖像幀,所述第二圖像幀對(duì)應(yīng)的動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像并非為黑圖,所述第二圖像幀為所述gpu基于所述待分析圖層圖像及所述圖層屬性對(duì)所需合成的各圖層執(zhí)行圖層合成得到。
51、在本技術(shù)實(shí)施例中,在由gpu執(zhí)行圖層合成的第二合成模式下,在實(shí)時(shí)獲取的目標(biāo)應(yīng)用的待分析圖層圖像并非為黒圖時(shí),電子設(shè)備中的gpu可以采用實(shí)時(shí)獲取的待分析圖層圖像進(jìn)行圖層合成,如此,可以保障圖層合成的準(zhǔn)確性。
52、可以理解的,如果從電子設(shè)備檢測(cè)到第一操作開始執(zhí)行至電子設(shè)備結(jié)束顯示第一操作對(duì)應(yīng)的動(dòng)畫效果的過程中,電子設(shè)備所獲取的各個(gè)時(shí)刻的動(dòng)效圖層數(shù)據(jù)中的待分析圖層圖像都并非為黑圖,那么,電子設(shè)備所顯示的第一動(dòng)畫效果中也可以不包括第一圖像幀。
53、第二方面,本技術(shù)實(shí)施例提供一種電子設(shè)備,電子設(shè)備包括存儲(chǔ)器、處理器,存儲(chǔ)器上存儲(chǔ)有可在處理器上運(yùn)行的計(jì)算機(jī)程序,處理器執(zhí)行計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如上述第一方面任一項(xiàng)的方法。
54、第三方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如上述第一方面任一項(xiàng)的方法。
55、第四方面,本技術(shù)實(shí)施例提供一種芯片系統(tǒng),該芯片系統(tǒng)包括處理器,處理器與存儲(chǔ)器耦合,處理器執(zhí)行存儲(chǔ)器中存儲(chǔ)的計(jì)算機(jī)程序,以實(shí)現(xiàn)如上述第一方面任一項(xiàng)的方法。該芯片系統(tǒng)可以為單個(gè)芯片,或者多個(gè)芯片組成的芯片模組。
56、第五方面,本技術(shù)實(shí)施例提供一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)計(jì)算機(jī)程序產(chǎn)品在電子設(shè)備上運(yùn)行時(shí),使得電子設(shè)備執(zhí)行上述第一方面任一項(xiàng)的方法。
57、可以理解的是,上述第二方面至第五方面的有益效果可以參見上述第一方面中的相關(guān)描述,在此不再贅述。