平鋪視區(qū)合成的制作方法
【專利摘要】本發(fā)明是平鋪視區(qū)合成。緩沖應(yīng)用圖像的系統(tǒng)減小了用于存取存儲器的帶寬需求。該應(yīng)用圖像可以在邏輯上分為圖像片。視區(qū)可以標(biāo)識應(yīng)用圖像的可視部分,其中,可視部分小于應(yīng)用圖像??梢栽谇爸镁彌_區(qū)和后置緩沖區(qū)中緩沖視區(qū)所交疊的圖像片??梢栽诤笾镁彌_區(qū)而不在前置緩沖區(qū)中緩沖視區(qū)未交疊的圖像片。合成管理器在了解視區(qū)和前置緩沖區(qū)中的至少兩個(gè)非連續(xù)的圖像片緩沖區(qū)的情況下可以直接從非連續(xù)的圖像片緩沖區(qū)中提取出應(yīng)用圖像的可視部分。
【專利說明】平鋪視區(qū)合成
【技術(shù)領(lǐng)域】
[0001]本公開內(nèi)容涉及圖形,具體地說,涉及圖形緩沖區(qū)。
【背景技術(shù)】
[0002]圖形用戶界面(⑶I)、畫中畫(PiP)和其它類型的圖形圖像可以由多個(gè)獨(dú)立呈現(xiàn)的圖像合成。例如,⑶I可以包含背景圖像和在背景圖像之上的一個(gè)或多個(gè)呈現(xiàn)的圖形層。圖形層可以包括應(yīng)用、任務(wù)欄或者其它類型的圖形元素??梢杂蓡为?dú)的軟件應(yīng)用將圖形層中的每一個(gè)獨(dú)立于其它圖形層呈現(xiàn)在應(yīng)用緩沖區(qū)中??梢栽陲@示緩沖區(qū)中將圖形層一起合成為單個(gè)合成圖像,該單個(gè)合成圖像可以呈現(xiàn)在顯示設(shè)備上、通過網(wǎng)絡(luò)傳輸或者以其它方式進(jìn)行處理。應(yīng)用緩沖區(qū)可以表示大于合成為單個(gè)合成圖像的相應(yīng)圖形層的圖像。
【專利附圖】
【附圖說明】
[0003]可以參照下面的附圖和描述來更好地理解本公開內(nèi)容。附圖中的組件不必按比例繪制。此外,在附圖中,相似的參考數(shù)字貫穿不同的視圖指示相應(yīng)的部分。
[0004]圖1是平鋪視區(qū)合成系統(tǒng);
[0005]圖2是平鋪視區(qū)合成系統(tǒng)的硬件示意圖;以及
[0006]圖3是平鋪視區(qū)合成系統(tǒng)的邏輯的流程圖。
【具體實(shí)施方式】
[0007]用于緩沖應(yīng)用圖像的系統(tǒng)可以包括合成管理器以及包含前置緩沖區(qū)和后置緩沖區(qū)的存儲器。應(yīng)用圖像可以在邏輯上劃分為或者分為圖像片(tile)。圖像片中的每一個(gè)可以標(biāo)識應(yīng)用圖像的相應(yīng)區(qū)域。合成管理器可以確定視區(qū)交疊(overlap)圖像片中的哪一些。視區(qū)可以標(biāo)識應(yīng)用圖像的可視部分??梢暡糠挚赡苄∮趹?yīng)用圖像。例如,可視區(qū)域可以是地圖在導(dǎo)航系統(tǒng)中的顯示設(shè)備上顯示的部分。
[0008]在一些系統(tǒng)中,合成管理器(或者呈現(xiàn)應(yīng)用圖像的應(yīng)用)可以對視區(qū)交疊的圖像片進(jìn)行雙重緩沖(或者更一般地,多重緩沖)。合成管理器(或者應(yīng)用)可能不能對視區(qū)未交疊的圖像片進(jìn)行雙重緩沖(或者多重緩沖)。減小多重緩沖的存儲器的量可以減小用于存取存儲器的帶寬需求。
[0009]雙重緩沖可以防止當(dāng)一個(gè)過程向緩沖區(qū)進(jìn)行寫入而另一個(gè)過程從相同的緩沖區(qū)進(jìn)行讀取時(shí)引起的可視撕裂假象(tearing artifacts)。為了減小或者避免引起這些可視缺陷的可能性,應(yīng)用可以在諸如合成管理器等的另一個(gè)過程從前置緩沖區(qū)中讀取應(yīng)用圖像的同時(shí),在后置緩沖區(qū)中呈現(xiàn)應(yīng)用圖像。更一般地,系統(tǒng)向其進(jìn)行寫入以構(gòu)造應(yīng)用圖像的幀的緩沖區(qū)可以是后置緩沖區(qū)。系統(tǒng)從其讀取完整的幀的緩沖區(qū)可以是前置緩沖區(qū)。在使用多重緩沖區(qū)的示例中,系統(tǒng)可以包括并使用多個(gè)后置緩沖區(qū)。
[0010]響應(yīng)于垂直同步脈沖或某個(gè)其它事件,可以切換前置緩沖區(qū)和后置緩沖區(qū),使得后置緩沖區(qū)變?yōu)榍爸镁彌_區(qū),并且前置緩沖區(qū)變?yōu)楹笾镁彌_區(qū)。該緩沖區(qū)切換也可以稱作緩沖區(qū)替換。在緩沖區(qū)替換之后,后置緩沖區(qū)可以包括幀η的內(nèi)容,而前置緩沖區(qū)可以包括幀η+1的內(nèi)容。如果前置緩沖區(qū)(幀η+1)的整個(gè)內(nèi)容復(fù)制到后置緩沖區(qū)(幀η),則后置緩沖區(qū)可以具有最近的內(nèi)容(幀η+1),并且應(yīng)用可以開始在后置緩沖區(qū)中呈現(xiàn)新的幀η+2??梢灾貜?fù)呈現(xiàn)、替換和顯示的過程。
[0011]然而,在用于緩沖應(yīng)用圖像的系統(tǒng)中,當(dāng)緩沖區(qū)替換發(fā)生時(shí),可以避免從前置緩沖區(qū)向后置緩沖區(qū)復(fù)制應(yīng)用圖像的整個(gè)內(nèi)容。相反,合成管理器和/或應(yīng)用可以跳過對視區(qū)未交疊的圖像片的雙重緩沖(或者多重緩沖)。具體地說,合成管理器和/或應(yīng)用可以在前置緩沖區(qū)和后置緩沖區(qū)二者中緩沖視區(qū)交疊的圖像片,并且在后置緩沖區(qū)而不在前置緩沖區(qū)中緩沖視區(qū)未交疊的圖像片。
[0012]可以在相應(yīng)的圖像片緩沖區(qū)中緩沖區(qū)圖像片中的每一個(gè)。可以將圖像片緩沖區(qū)非連續(xù)地放置在存儲器中。如果在緩沖區(qū)所處的存儲器的存儲器地址空間中緩沖區(qū)彼此不相鄰,則兩個(gè)緩沖區(qū)可以是非連續(xù)的。
[0013]在一些系統(tǒng)中,合成管理器可以基于了解視區(qū)和圖像片緩沖區(qū)的合成管理器來直接從非連續(xù)的圖像片緩沖區(qū)復(fù)制應(yīng)用圖像的經(jīng)緩沖的可視部分。應(yīng)用不需要創(chuàng)建在連續(xù)存儲器中包含應(yīng)用圖像的經(jīng)緩沖的可視部分以使得合成管理器可以從連續(xù)存儲器復(fù)制可視部分的中間緩沖區(qū)。避免創(chuàng)建中間緩沖區(qū)減小了用于存取存儲器的帶寬需求。合成管理器可以根據(jù)該應(yīng)用圖像的可視部分和一個(gè)或多個(gè)額外的應(yīng)用圖像來生成合成圖像。
[0014]圖1示出了平鋪視區(qū)合成系統(tǒng)100。系統(tǒng)100可以包括應(yīng)用102、應(yīng)用緩沖區(qū)104、顯示緩沖區(qū)106和合成管理器108。平鋪視區(qū)合成系統(tǒng)100是用于緩沖應(yīng)用圖像110的系統(tǒng)。
[0015]應(yīng)用102可以呈現(xiàn)應(yīng)用圖像110。應(yīng)用圖像110可以包括由基于窗口的操作系統(tǒng)(例如,針對移動電子設(shè)備、臺式計(jì)算機(jī)或服務(wù)器的操作系統(tǒng))生成的窗口?;诖翱诘牟僮飨到y(tǒng)的示例可以包括MICROSOFT WINDOWS? (其是華盛頓雷德蒙德的微軟公司的注冊商標(biāo));LINUX:? (其是芬蘭的林納斯.托瓦茲的注冊商標(biāo));以及ANDROID?(其是加利福尼亞山景城的谷歌有限公司的商標(biāo))??商鎿Q地或此外,應(yīng)用圖像110可以包括圖形用戶界面(GUI)、畫中畫(PiP)、任務(wù)欄、背景圖片、可以是視頻的一部分的幀序列中的幀或者任何其它類型的數(shù)字圖像。應(yīng)用102的示例可以包括字處理程序、郵件程序、網(wǎng)絡(luò)瀏覽器、移動應(yīng)用或者可以呈現(xiàn)應(yīng)用圖像110的其它類型的軟件程序或硬件組件。
[0016]應(yīng)用緩沖區(qū)104可以是存儲器的表示應(yīng)用圖像110和/或其各個(gè)部分的一個(gè)或多個(gè)區(qū)域。存儲器可以包括存儲器的連續(xù)和/或非連續(xù)區(qū)域。
[0017]顯示緩沖區(qū)106可以包括表示從由一個(gè)或多個(gè)應(yīng)用(例如,圖1中所示的應(yīng)用102)生成的各個(gè)圖像組合的合成圖像112的存儲器的區(qū)域。合成圖像112可以呈現(xiàn)在顯示設(shè)備上、通過網(wǎng)絡(luò)來發(fā)送或者在本地或遠(yuǎn)程進(jìn)行處理。
[0018]合成管理器108可以將各個(gè)圖像合成為合成圖像112或者指導(dǎo)將各個(gè)圖像合成為合成圖像112。各個(gè)圖像可以包括應(yīng)用圖像的全部或一部分。合成管理器108的示例包括硬件合成器、窗口管理器或者將各個(gè)圖像合成為合成圖像112的任何其它組件。
[0019]在操作平鋪視區(qū)合成系統(tǒng)100期間,合成管理器108可以根據(jù)由視區(qū)114標(biāo)識的應(yīng)用圖像110的可視部分來呈現(xiàn)合成圖像112。由視區(qū)114標(biāo)識的可視部分可能小于整個(gè)應(yīng)用圖像110。合成管理器108可以根據(jù)應(yīng)用圖像110的可視部分和根據(jù)一個(gè)或多個(gè)額外的圖像來呈現(xiàn)合成圖像112。
[0020]隨著應(yīng)用圖像110的可視部分隨時(shí)間而改變,應(yīng)用102可以在應(yīng)用圖像110周圍移動視區(qū)114。在一個(gè)示例中,應(yīng)用圖像110可以是地圖圖像,并且視區(qū)114標(biāo)識地圖圖像要在導(dǎo)航系統(tǒng)中顯示的部分。當(dāng)導(dǎo)航系統(tǒng)的位置改變時(shí),地圖圖像在導(dǎo)航系統(tǒng)中顯示的部分也可能改變。在第二示例中,應(yīng)用圖像110可以是視頻游戲中的一關(guān)的圖像,并且視區(qū)114可以標(biāo)識這一關(guān)的圖像要在屏幕上顯示的部分。當(dāng)游戲角色在這一關(guān)周圍移動時(shí),這一關(guān)的圖像在屏幕上顯示的部分改變。在第三示例中,網(wǎng)頁瀏覽器可以呈現(xiàn)與顯示器上所示的內(nèi)容相比更多的內(nèi)容。當(dāng)應(yīng)用102使用視區(qū)114來更新應(yīng)用圖像110的可視部分時(shí),合成圖像112可以更快速地更新或者產(chǎn)生視覺上更平滑的過渡外觀。
[0021]應(yīng)用102可以在邏輯上將應(yīng)用圖像110劃分為或分割為圖像片116。圖像片116中的每一個(gè)可以標(biāo)識應(yīng)用圖像110的相應(yīng)區(qū)域。在整個(gè)應(yīng)用圖像110中,圖像片116在大小和形狀上可以是一致的。可替換地,在整個(gè)應(yīng)用圖像Iio中,圖像片116的大小和形狀可以改變。在不同的示例中,圖像片116的大小和形狀可以是不同的。
[0022]可以在相應(yīng)的圖像片緩沖區(qū)118中表示圖像片116。例如,可以在被單獨(dú)地指定為Al至A4的圖像片緩沖區(qū)118中表示在圖1中被單獨(dú)地指定為Tl至T4的圖像片116。圖像片緩沖區(qū)118可以包含在應(yīng)用緩沖區(qū)104中。
[0023]合成管理器108可以確定視區(qū)114交疊圖像片116中的哪一些。與視區(qū)114交疊或疊蓋(intersect)的圖像片116中的每一個(gè)可以至少包括應(yīng)用圖像110的可視部分的部分120。相反,視區(qū)114未交疊的圖像片116可能不包含應(yīng)用圖像110的任何可視部分120。
[0024]合成管理器108可以對視區(qū)114交疊的圖像片116而不是剩余圖像片116進(jìn)行雙重緩沖。前置緩沖區(qū)122可以包括表示視區(qū)114交疊的圖像片116(T3和T4)的圖像片緩沖區(qū)118 (A3和A4)。因此,前置緩沖區(qū)122中的圖像片緩沖區(qū)118 (A3和A4)包括應(yīng)用圖像110的經(jīng)緩沖的可視部分124。相反,后置緩沖區(qū)126可以包括表示視區(qū)114未交疊的圖像片116(T1和T2)的圖像片緩沖區(qū)118 (Al和A2)。此外,后置緩沖區(qū)126可以包括與處于前置緩沖區(qū)122中的圖像片緩沖區(qū)118(A3和A4)相對應(yīng)并且表示由視區(qū)114交疊的圖像片116的圖像片緩沖區(qū)118(B3和B4)。
[0025]當(dāng)生成合成圖像112時(shí),合成管理器108可以從處于前置緩沖區(qū)122中的圖像片緩沖區(qū)118(A3和A4)中提取應(yīng)用圖像110的經(jīng)緩沖的可視部分124。經(jīng)緩沖的可視部分124可以具有應(yīng)用圖像110的幀η。應(yīng)用102可以通過修改處于后置緩沖區(qū)126中的圖像片緩沖區(qū)118(Α1、Α2、Β3和Β4)來呈現(xiàn)后置緩沖區(qū)126中的應(yīng)用圖像110的幀η+1。
[0026]當(dāng)緩沖區(qū)替換發(fā)生時(shí),合成管理器108可以將處于后置緩沖區(qū)126中的圖像片緩沖區(qū)118的子集的內(nèi)容復(fù)制到前置緩沖區(qū)122。圖像片緩沖區(qū)118的子集可以是與處于前置緩沖區(qū)122中的圖像片緩沖區(qū)118 (A3和Α4)相對應(yīng)的圖像片緩沖區(qū)118 (Β3和Β4)。合成管理器108可以跳過將表示視區(qū)114未交疊的圖像片116 (Tl和Τ2)的圖像片緩沖區(qū)118 (Al和Α2)復(fù)制到前置緩沖區(qū)122。
[0027]作為當(dāng)緩沖區(qū)替換發(fā)生時(shí)將圖像片緩沖區(qū)118的子集的內(nèi)容從后置緩沖區(qū)126復(fù)制到前置緩沖區(qū)122的替換或者添加,合成管理器108可以改變圖像片緩沖區(qū)118與前置緩沖區(qū)122和后置緩沖區(qū)126之間的關(guān)聯(lián)。合成管理器108可以在數(shù)據(jù)結(jié)構(gòu)中跟蹤圖像片緩沖區(qū)118中的哪一些與前置緩沖區(qū)122相關(guān)聯(lián)、以及圖像片緩沖區(qū)118中的哪一些與后置緩沖區(qū)126相關(guān)聯(lián)。圖像片緩沖區(qū)118與前置緩沖區(qū)122和后置緩沖區(qū)126之間的關(guān)聯(lián)指示圖像片緩沖區(qū)118中的哪一些包含在前置緩沖區(qū)122和后置緩沖區(qū)126中的每一個(gè)中。當(dāng)緩沖區(qū)替換發(fā)生時(shí),合成管理器108可以將圖像片緩沖區(qū)118的子集(B3和B4)與后置緩沖區(qū)126解除關(guān)聯(lián),并且將圖像片緩沖區(qū)118的子集(B3和B4)與前置緩沖區(qū)122相關(guān)聯(lián)。因此,合成管理器108可以將最初與前置緩沖區(qū)122相關(guān)聯(lián)的圖像片緩沖區(qū)118(A3和A4)改變?yōu)榕c后置緩沖區(qū)126相關(guān)聯(lián)。換言之,合成管理器108可以響應(yīng)于緩沖區(qū)替換,將圖像片緩沖區(qū)118的與前置緩沖區(qū)122相關(guān)聯(lián)的第一集合和圖像片緩沖區(qū)118的與后置緩沖區(qū)126相關(guān)聯(lián)的第二集合進(jìn)行交換,其中,被交換的圖像片緩沖區(qū)118表示視區(qū)114交疊的圖像片116而不表示視區(qū)114未交疊的圖像片116。
[0028]當(dāng)合成管理器108將與前置緩沖區(qū)122相關(guān)聯(lián)的圖像片緩沖區(qū)118和與后置緩沖區(qū)126相關(guān)聯(lián)的相應(yīng)的圖像片緩沖區(qū)118進(jìn)行交換時(shí),被交換到后置緩沖區(qū)126中的圖像片緩沖區(qū)118可以表示更舊的巾貞,例如,幀η。被交換到前置緩沖區(qū)126中的圖像片緩沖區(qū)118可以表示幀η+1。在緩沖區(qū)交換以后,應(yīng)用102可以在后置緩沖區(qū)126中呈現(xiàn)第三幀,例如,幀η+2。
[0029]當(dāng)視區(qū)114移動并且與圖像片116中新的圖像片交疊時(shí),合成管理器108可以對新交疊的圖像片116進(jìn)行雙重緩沖。相反,當(dāng)視區(qū)114移動并且不再與圖像片116之一交疊時(shí),合成管理器108可以停止對先前交疊的圖像片116進(jìn)行雙重緩沖。
[0030]因此,當(dāng)視區(qū)114移動時(shí),合成管理器108可以調(diào)整圖像片緩沖區(qū)118中的哪一些處于前置緩沖區(qū)122中,使得前置緩沖區(qū)122中的圖像片緩沖區(qū)118與視區(qū)114所交疊的圖像片116相對應(yīng)。類似地,當(dāng)視區(qū)114移動時(shí),合成管理器108可以調(diào)整圖像片緩沖區(qū)118中的哪一些處于后置緩沖區(qū)126中。
[0031]當(dāng)視區(qū)114移動并且與新交疊的圖像片116交疊時(shí),后置緩沖區(qū)126中的與新交疊的圖像片116相對應(yīng)的圖像片緩沖區(qū)118可以包含在前置緩沖區(qū)122中。不需要完全再次呈現(xiàn)添加到前置緩沖區(qū)的圖像片緩沖區(qū)118,這是因?yàn)閼?yīng)用102可能已經(jīng)在后置緩沖區(qū)126中呈現(xiàn)了圖像片緩沖區(qū)118。
[0032]在一些系統(tǒng)中,可以隨著視區(qū)114的移動來動態(tài)地分配和釋放圖像片緩沖區(qū)118。例如,如果視區(qū)114移動并且與圖1中所示的圖像片116中的四個(gè)圖像片(Tl至Τ4)而不是圖像片116中的兩個(gè)圖像片(Τ3和Τ4)交疊,則合成管理器108可以動態(tài)地分配兩個(gè)圖像片緩沖區(qū)118(Β1和Β2,其在圖1中未示出)。然后,前置緩沖區(qū)122可以包括圖像片緩沖區(qū)118中的四個(gè)圖像片緩沖區(qū)(Al至Α4),并且后置緩沖區(qū)126可以包括四個(gè)相應(yīng)的圖像片緩沖區(qū)118 (BI至Β4)。
[0033]作為動態(tài)分配圖像片緩沖區(qū)118的替代,可以提前分配圖像片緩沖區(qū)118。例如,在應(yīng)用102請求的初始化以后,合成管理器108可以分配足夠多的圖像片緩沖區(qū)118,以在后置緩沖區(qū)126和前置緩沖區(qū)122中充分表示應(yīng)用圖像110。合成管理器108可以動態(tài)地將預(yù)先分配的圖像片緩沖區(qū)118與前置緩沖區(qū)122和后置緩沖區(qū)126相關(guān)聯(lián)。
[0034]應(yīng)用102和合成管理器108可以具有與所描述的特征不同的特征。在一個(gè)系統(tǒng)中,合成管理器108 (而不是應(yīng)用102)可以將應(yīng)用圖像110劃分或分割為圖像片116。應(yīng)用102可以調(diào)用API (應(yīng)用編程接口)來向合成管理器108指示應(yīng)用圖像110的大小。作為響應(yīng),合成管理器108可以將應(yīng)用圖像110劃分為圖像片116,并且分配相應(yīng)的圖像片緩沖區(qū)118。在另一個(gè)系統(tǒng)中,應(yīng)用102 (而不是合成管理器108)可以對由視區(qū)114交疊的圖像片116而不是剩余圖像片116進(jìn)行雙重緩沖。在另一個(gè)系統(tǒng)中,除了應(yīng)用102和合成管理器108以外的一個(gè)或多個(gè)組件可以執(zhí)行應(yīng)用102和合成管理器108的所述功能。
[0035]合成管理器108可以根據(jù)由視區(qū)114標(biāo)識的應(yīng)用圖像110的可視部分來呈現(xiàn)合成圖像112。了解圖像片緩沖區(qū)118和視區(qū)114的合成管理器108可以將經(jīng)緩沖的可視部分124直接從前置緩沖區(qū)122中的圖像片緩沖區(qū)118復(fù)制到顯示緩沖區(qū)106,即使經(jīng)緩沖的可視部分124遍布多個(gè)非連續(xù)的圖像片緩沖區(qū)118也是如此。將經(jīng)緩沖的可視部分124從前置緩沖區(qū)中的圖像片緩沖區(qū)118復(fù)制到中間緩沖區(qū)、然后從中間緩沖區(qū)復(fù)制到顯示緩沖區(qū)106可以是不必要的。例如,應(yīng)用102可以向合成管理器108提供與視區(qū)114有關(guān)的且與前置緩沖區(qū)122中的圖像片緩沖區(qū)118有關(guān)的信息。合成管理器108可以使用由應(yīng)用102提供的信息來將經(jīng)緩沖區(qū)的可視部分124從前置緩沖區(qū)122中的圖像片緩沖區(qū)118復(fù)制到顯示緩沖區(qū)106。可替換地,合成管理器108可以呈現(xiàn)來自中間緩沖區(qū)的合成圖像112。應(yīng)用102可以通過從前置緩沖區(qū)122中的經(jīng)緩沖的可視部分124復(fù)制來填充中間緩沖區(qū)。
[0036]在前置緩沖區(qū)122中表示的應(yīng)用圖像110的幀可以是幀η或者任何其它幀。在后置緩沖區(qū)126中表示的應(yīng)用圖像110的幀可以是幀η+1或任何其它幀。
[0037]如上所述,合成管理器108、應(yīng)用102和/或某一其它組件可以對視區(qū)114交疊的圖像片116或者位于或延伸(extend)和遮蓋視區(qū)114的一部分的圖像片116進(jìn)行雙重緩沖。合成管理器108和/或應(yīng)用102可以向由視區(qū)114交疊的圖像片116而不向視區(qū)114未交疊的圖像片116應(yīng)用多重緩沖。多重緩沖區(qū)可以包括雙重緩沖、三重緩沖或者其它緩沖過程和/或硬件,包括在一個(gè)或多個(gè)前置緩沖區(qū)中存儲應(yīng)用圖像110中的一個(gè)或多個(gè)幀以提取應(yīng)用圖像110,并且在一個(gè)或多個(gè)后置緩沖區(qū)中存儲應(yīng)用圖像110中的一個(gè)或多個(gè)幀以呈現(xiàn)應(yīng)用圖像110。
[0038]圖2是平鋪視區(qū)合成系統(tǒng)100的硬件示意圖。平鋪視區(qū)合成系統(tǒng)100可以包括處理器204、存儲器接口 206和存儲器208。平鋪視區(qū)合成系統(tǒng)100可以簡稱為系統(tǒng)100。
[0039]處理器204可以是執(zhí)行體現(xiàn)在存儲器208或其它存儲器中的計(jì)算機(jī)可執(zhí)行指令或計(jì)算機(jī)代碼以實(shí)現(xiàn)平鋪視區(qū)合成系統(tǒng)100的一個(gè)或多個(gè)特征的硬件。處理器204可以包括通用處理器、中央處理單元、圖形處理單元、專用集成電路(ASIC)、數(shù)字信號處理器、現(xiàn)場可編程門陣列(FPGA)、數(shù)字電路、模擬電路、微控制器、任何其它類型的處理器或者其任意組
口 ο
[0040]存儲器接口 206可以管理去往和來自存儲器208 (例如,在處理器204與存儲器208之間)的數(shù)據(jù)的傳輸。存儲器接口 206可以包括任何存儲器控制器,例如,存儲器芯片控制器(MCC)、用于驅(qū)動雙倍數(shù)據(jù)速率2 (DDR2) SDRAM (雙倍數(shù)據(jù)速率同步動態(tài)隨機(jī)存取存儲器)的DDR2存儲器控制器、外圍組件互連(PCI)總線控制器或者任何其它類型的存儲器控制器。存儲器接口 206可以通過總線214(例如,在400兆赫茲或者處操作的64比特DDR2總線或者任何其它類型的總線)來與存儲器208進(jìn)行通信。
[0041]存儲器208可以包括用于存儲和取回?cái)?shù)據(jù)或其任意組合的設(shè)備。存儲器208可以包括非易失性存儲器和/或易失性存儲器,例如,隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦除可編程只讀存儲器(EPROM)或閃存??商鎿Q地或此外,存儲器208可以包括光學(xué)存儲設(shè)備、磁性存儲設(shè)備(硬盤驅(qū)動器)或者任何其它形式的數(shù)據(jù)存儲設(shè)備。[0042]存儲器208可以存儲計(jì)算機(jī)代碼,例如,合成管理器108、應(yīng)用102和/或任何其它應(yīng)用。計(jì)算機(jī)代碼可以包括利用處理器204可執(zhí)行的指令??梢杂萌魏斡?jì)算機(jī)語言來寫計(jì)算機(jī)代碼,計(jì)算機(jī)語言例如是C、C++、匯編語言、著色器代碼、信道程序代碼和/或計(jì)算機(jī)語言的任意組合。
[0043]存儲器208可以包括諸如應(yīng)用緩沖區(qū)104和顯示緩沖區(qū)106等的緩沖區(qū)。應(yīng)用緩沖區(qū)104可以包括圖像片緩沖區(qū)118。
[0044]不論所描述的特定實(shí)現(xiàn)如何,所有公開內(nèi)容在本質(zhì)上都是示例性的而非限制性的。系統(tǒng)100可以包括與圖1和圖2中所示的組件相比更多、更少或者不同的組件。例如,系統(tǒng)100還可以包括顯示控制器210和顯示設(shè)備212。顯示控制器210可以通過存儲器接口 206從顯示緩沖區(qū)106讀取合成圖像112,并且使合成圖像112顯示在顯示設(shè)備212中。
[0045]處理器204可以經(jīng)由存儲器接口 206來與存儲器208進(jìn)行通信。處理器204可以與諸如顯示控制器210和/或網(wǎng)絡(luò)控制器(未示出)等的其它組件進(jìn)行通信。
[0046]此外,系統(tǒng)100的組件中的每一個(gè)組件可以包括與圖1和圖2中所示的元件相比更多、更少或不同的元件。例如,存儲器208可以包括更多、更少或不同的模塊、圖形緩沖區(qū)和應(yīng)用。此外,應(yīng)用102和/或合成管理器108可以包括各種模塊。標(biāo)記、數(shù)據(jù)、數(shù)據(jù)庫、表格、實(shí)體和其它數(shù)據(jù)結(jié)構(gòu)可以被單獨(dú)地存儲和管理,可以并入單個(gè)存儲器或數(shù)據(jù)庫中,可以是分布式的,或者可以以很多不同的方式在邏輯上和物理上進(jìn)行組織。這些組件可以獨(dú)立地操作或者可以是相同的程序或硬件的一部分。這些組件可以駐留在諸如單獨(dú)的可移除電路板等的單獨(dú)的硬件上,或者共享諸如相同的存儲器和處理器等的公共硬件,以執(zhí)行來自存儲器的指令。程序可以是單個(gè)程序的各個(gè)部分,是單獨(dú)的程序,或者分布在多個(gè)存儲器和處理器上。
[0047]在一些示例中,系統(tǒng)100的組件中的一個(gè)或多個(gè)組件可以包含在片上系統(tǒng)(S0C)216中。例如,SOC 216可以包括處理器204、存儲器接口 206和顯示控制器210。在另一示例中,SOC 216可以包括額外的組件,例如,存儲器。
[0048]系統(tǒng)100可以實(shí)現(xiàn)在很多過程和/或系統(tǒng)中。例如,雖然一些特征被示出為作為實(shí)現(xiàn)為計(jì)算機(jī)可執(zhí)行指令的邏輯或者作為存儲器中的數(shù)據(jù)結(jié)構(gòu)存儲在計(jì)算機(jī)可讀存儲器中,但是系統(tǒng)100的各個(gè)部分及其邏輯和數(shù)據(jù)結(jié)構(gòu)可以存儲在任何其它機(jī)器可讀存儲介質(zhì)上、分布在任何其它機(jī)器可讀存儲介質(zhì)上或者從任何其它機(jī)器可讀存儲介質(zhì)進(jìn)行讀取。存儲介質(zhì)的示例可以包括存儲器、高速緩沖區(qū)、緩沖區(qū)、RAM、可移除介質(zhì)、硬盤驅(qū)動器、硬盤、軟盤、CD-ROM或者任何其它類型的機(jī)器可讀存儲介質(zhì)或計(jì)算機(jī)可讀存儲介質(zhì)。介質(zhì)可以包括任何非瞬時(shí)計(jì)算機(jī)可讀存儲介質(zhì),例如,易失性存儲器或非易失性存儲器、RAM、ROM、CD-ROM、任何其它適合的存儲設(shè)備或者其任意組合??商鎿Q地或此外,描述為實(shí)現(xiàn)為計(jì)算機(jī)可執(zhí)行指令的邏輯或者描述為存儲器中的數(shù)據(jù)結(jié)構(gòu)的特征和/或模塊可以實(shí)現(xiàn)在硬件中,或者實(shí)現(xiàn)在硬件和軟件的組合中(例如,實(shí)現(xiàn)在現(xiàn)場可編程門陣列(FPGA)中)。
[0049]可以響應(yīng)于存儲在計(jì)算機(jī)可讀介質(zhì)之中或之上的一個(gè)或多個(gè)邏輯或指令集來執(zhí)行附圖中所示的或者所描述的功能、動作或任務(wù)。這些功能、動作或任務(wù)獨(dú)立于特定類型的指令集、存儲介質(zhì)、處理器或處理策略,并且可以由單獨(dú)操作或聯(lián)合操作的軟件、硬件、集成電路、固件、微代碼等來實(shí)現(xiàn)。同樣地,處理策略可以包括多處理、多任務(wù)、并行處理、分布式處理和/或任何其它類型的處理。在一個(gè)實(shí)施例中,這些指令存儲在可移除介質(zhì)設(shè)備上以由本地系統(tǒng)或遠(yuǎn)程系統(tǒng)來讀取。在其它實(shí)施例中,邏輯或指令存儲在遠(yuǎn)程位置處,以通過計(jì)算機(jī)網(wǎng)絡(luò)或者在電話線上進(jìn)行傳遞。在另一些實(shí)施例中,邏輯或指令可以存儲在給定的計(jì)算機(jī)、中央處理單元(“CPU”)、圖形處理單元(“GPU”)或系統(tǒng)中。
[0050]系統(tǒng)100的處理能力可以分布在多個(gè)實(shí)體之間,例如,分布在多個(gè)處理器和存儲器之間,其中多個(gè)實(shí)體可選擇地包括多個(gè)分布式處理系統(tǒng)。參數(shù)和其它數(shù)據(jù)結(jié)構(gòu)可以被單獨(dú)地存儲和管理,可以并入單個(gè)存儲器或數(shù)據(jù)庫中,可以以很多不同的方式在邏輯上和物理上進(jìn)行組織,并且可以使用諸如鏈接列表、散列表格或者隱式存儲機(jī)制等的不同類型的數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)。諸如程序或電路等的邏輯可以被組合或者在多個(gè)程序之間劃分、分布在多個(gè)存儲器和處理器之上。
[0051]圖3是平鋪視區(qū)合成系統(tǒng)100的邏輯的流程圖??梢蕴峁?yīng)用圖像110,該應(yīng)用圖像110在邏輯上被劃分為圖像片116。例如,圖像片緩沖區(qū)118可以處于存儲器208中并且表不圖像片116。
[0052]邏輯可以確定(310)視區(qū)114交疊圖像片116中的哪一些。視區(qū)114可以標(biāo)識應(yīng)用圖像110的可視部分,并且可視部分可以小于應(yīng)用圖像110。[0053]視區(qū)114交疊的圖像片116可以在前置緩沖區(qū)122和后置緩沖區(qū)126中緩沖(320),其中,從前置緩沖區(qū)122中提取應(yīng)用圖像110的可視部分,并且在后置緩沖區(qū)126中修改應(yīng)用圖像110。例如,前置緩沖區(qū)122可以緩沖幀n,后置緩沖區(qū)126可以緩沖幀η+1。
[0054]視區(qū)114未交疊的圖像片116可以在后置緩沖區(qū)126 (在后置緩沖區(qū)126中,修改應(yīng)用圖像119)中而不在前置緩沖區(qū)122 (從前置緩沖區(qū)122中提取應(yīng)用圖像110的可視部分)中緩沖(330)。例如,邏輯可以通過合成管理器108從前置緩沖區(qū)122中提取應(yīng)用圖像110的經(jīng)緩沖的可視部分124而結(jié)束。
[0055]邏輯可以包括額外的、不同的或更少的操作。在一個(gè)這樣的示例中,邏輯可以包括通過分配圖像片緩沖區(qū)118來將應(yīng)用圖像110劃分為圖像片116??梢砸耘c圖3中所示的順序不同的順序來執(zhí)行操作。
[0056]為了使以下短語的使用清楚并且由此使公眾注意,代替上文中任何其它隱含的定義或除非 申請人:在下文中明確聲明是相反的, 申請人:最廣義地定義了短語“<Α>、〈Β>、……和〈N〉中的至少一個(gè)”或者“<Α>、〈B〉、……〈N〉中的至少一個(gè)或者其組合”或者“<Α>、〈B〉、……和/或〈N〉”,從而意指從包括Α、B、……和N的組中選擇的一個(gè)或多個(gè)要素,也
即是說,要素Α、Β、......或N中的一個(gè)或多個(gè)的任意組合包括單獨(dú)的任何一個(gè)要素,或者包
括任意一個(gè)要素以及可能還聯(lián)合包括未列出的額外要素的其它要素中的一個(gè)或多個(gè)要素。
[0057]雖然已經(jīng)描述了各個(gè)實(shí)施例,但是對于本領(lǐng)域普通技術(shù)人員而言顯而易見的是,在本公開內(nèi)容的范圍內(nèi),更多的實(shí)施例和實(shí)現(xiàn)是可能的。因此,除了根據(jù)所附權(quán)利要求及其等同形式以外,不應(yīng)當(dāng)限制本公開內(nèi)容。
【權(quán)利要求】
1.一種緩沖應(yīng)用圖像(110)的計(jì)算機(jī)實(shí)現(xiàn)方法,包括: 提供分為多個(gè)圖像片(116)的所述應(yīng)用圖像(110); 確定視區(qū)(114)交疊所述圖像片(116)中的哪一些,其中,所述視區(qū)(114)標(biāo)識所述應(yīng)用圖像(110)的可視部分,并且所述可視部分小于所述應(yīng)用圖像; 在前置緩沖區(qū)(122)和后置緩沖區(qū)(126)中緩沖所述視區(qū)交疊的圖像片(116),其中,從所述前置緩沖區(qū)(122)中提取所述應(yīng)用圖像的所述可視部分,在所述后置緩沖區(qū)(126)中修改所述應(yīng)用圖像(110),并且所述前置緩沖區(qū)(122)和所述后置緩沖區(qū)(126)處于計(jì)算機(jī)可讀存儲器中;以及 在在其中修改所述應(yīng)用圖像(110)的所述后置緩沖區(qū)(126)中而不在從其中提取所述應(yīng)用圖像(110)的所述可視部分的所述前置緩沖區(qū)(122)中緩沖所述視區(qū)(114)未交疊的圖像片(116)。
2. 根據(jù)權(quán)利要求1所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括:使用了解所述視區(qū)和所述前置緩沖區(qū)中的至少兩個(gè)非連續(xù)圖像片緩沖區(qū)(118)的合成管理器(108),直接從所述至少兩個(gè)非連續(xù)圖像片緩沖區(qū)中讀取所述應(yīng)用圖像的經(jīng)緩沖的可視部分(124)。
3.根據(jù)權(quán)利要求1或2所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括:當(dāng)所述視區(qū)(114)移動時(shí),調(diào)整多個(gè)圖像片緩沖區(qū)(118)中的哪一些處于所述前置緩沖區(qū)中,使得處于所述前置緩沖區(qū)中的所述圖像片緩沖區(qū)與所述視區(qū)交疊的所述圖像片相對應(yīng),而不與所述視區(qū)未交疊的所述圖像片相對應(yīng)。
4.根據(jù)權(quán)利要求1或2所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括:響應(yīng)于緩沖區(qū)替換,將所述后置緩沖區(qū)中的第一圖像片緩沖區(qū)集復(fù)制到所述前置緩沖區(qū)中的第二圖像片緩沖區(qū)集,其中,復(fù)制的所述圖像片緩沖區(qū)表示所述視區(qū)交疊的所述圖像片,而非所述視區(qū)未交疊的所述圖像片。
5.根據(jù)權(quán)利要求1或2所述的計(jì)算機(jī)實(shí)現(xiàn)方法,還包括:響應(yīng)于緩沖區(qū)替換,將與所述前置緩沖區(qū)相關(guān)聯(lián)的第一圖像片緩沖區(qū)集和與所述后置緩沖區(qū)相關(guān)聯(lián)的第二圖像片緩沖區(qū)集進(jìn)行交換,其中,交換的所述圖像片緩沖區(qū)表示所述視區(qū)交疊的所述圖像片,而非所述視區(qū)未交疊的所述圖像片。
6.一種用于緩沖第一應(yīng)用圖像(110)的系統(tǒng)(100),所述系統(tǒng)包括: 處理器(204);以及 存儲器(208),包括: 前置緩沖區(qū)(122); 后置緩沖區(qū)(126);以及 合成管理器(108),被配置為確定多個(gè)圖像片(116)中的哪一些與視區(qū)(114)疊蓋,其中,所述圖像片中的每一個(gè)標(biāo)識所述第一應(yīng)用圖像(110)的相應(yīng)區(qū)域,所述視區(qū)標(biāo)識所述第一應(yīng)用圖像的可視部分,并且所述可視部分小于所述第一應(yīng)用圖像, 其中,所述合成管理器(108)被進(jìn)一步配置為在所述前置緩沖區(qū)和所述后置緩沖區(qū)中緩沖與所述視區(qū)疊蓋的所述圖像片,其中,所述合成管理器從所述前置緩沖區(qū)中提取所述第一應(yīng)用圖像的所述可視部分,并且在所述后置緩沖區(qū)中呈現(xiàn)所述第一應(yīng)用圖像, 其中,所述合成管理器被進(jìn)一步配置為在在其中呈現(xiàn)所述第一應(yīng)用圖像(110)的所述后置緩沖區(qū)(126)中、而不在從其中提取所述第一應(yīng)用圖像的所述可視部分的所述前置緩沖區(qū)(122)中緩沖未與所述視區(qū)(114)疊蓋的圖像片(116),并且 其中,所述合成管理器(108)被進(jìn)一步配置為根據(jù)所述第一應(yīng)用圖像(110)的所述可視部分和第二應(yīng)用圖像來生成合成圖像(112)。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其中,所述合成管理器被進(jìn)一步配置為確定所述前置緩沖區(qū)中的至少兩個(gè)非連續(xù)圖像片緩沖區(qū)(118)與所述視區(qū)疊蓋,并且所述合成管理器被進(jìn)一步配置為直接從所述至少兩個(gè)非連續(xù)圖像片緩沖區(qū)中提取所述第一應(yīng)用圖像的所述可視部分。
8.根據(jù)權(quán)利要求6或7所述的系統(tǒng),其中,所述合成管理器(108)被進(jìn)一步配置為響應(yīng)于應(yīng)用的請求,將所述應(yīng)用圖像劃分為所述圖像片(116)。
9.根據(jù)權(quán)利要求6或7所述的系統(tǒng),其中,響應(yīng)于緩沖區(qū)替換而從所述后置緩沖區(qū)(126)向所述前置緩沖區(qū)(122)復(fù)制的所有多個(gè)圖像片緩沖區(qū)(118)僅表示與所述視區(qū)疊蓋的所述圖像片。
10.根據(jù)權(quán)利要求6或7所述的系統(tǒng),其中,響應(yīng)于緩沖區(qū)替換而在所述前置緩沖區(qū)與所述后置緩沖區(qū)之間交換的所有多個(gè)圖像片緩沖區(qū)(118)僅表示與所述視區(qū)疊蓋的所述圖像片。
11.一種緩沖應(yīng)用圖像(110)的計(jì)算機(jī)實(shí)現(xiàn)設(shè)備,包括: 用于將所述應(yīng)用圖像(110)分為多個(gè)圖像片(116)的裝置; 用于確定視區(qū)(114)交疊所述圖像片(116)中的哪一些的裝置,其中,所述視區(qū)標(biāo)識所述應(yīng)用圖像的可視部分,并且所述可視部分小于所述應(yīng)用圖像; 用于在前置緩沖區(qū)(122)和后`置緩沖區(qū)(126)中緩沖所述視區(qū)(114)交疊的圖像片(116)的裝置,其中,從所述前置緩沖區(qū)中提取所述應(yīng)用圖像的所述可視部分,在所述后置緩沖區(qū)中修改所述應(yīng)用圖像;以及 用于在在其中修改所述應(yīng)用圖像的所述后置緩沖區(qū)(126)而不在從其中提取出所述應(yīng)用圖像的所述可視部分的所述前置緩沖區(qū)(122)中緩沖區(qū)所述視區(qū)(114)未交疊的所述圖像片(116)的裝置。
12.根據(jù)權(quán)利要求11所述的計(jì)算機(jī)實(shí)現(xiàn)設(shè)備,其中,使用所述前置緩沖區(qū)和所述后置緩沖區(qū)對所述視區(qū)(114)交疊的圖像片(116)進(jìn)行雙重緩沖,并且不對所述視區(qū)未交疊的所述圖像片進(jìn)行雙重緩沖。
13.根據(jù)權(quán)利要求11或12所述的計(jì)算機(jī)實(shí)現(xiàn)設(shè)備,其中,使用所述前置緩沖區(qū)和包括所述后置緩沖區(qū)的多個(gè)后置緩沖區(qū)來對所述視區(qū)(118)交疊的圖像片(116)進(jìn)行多重緩沖,并且不對所述視區(qū)未交疊的圖像片進(jìn)行多重緩沖。
14.根據(jù)權(quán)利要求11或12所述的計(jì)算機(jī)實(shí)現(xiàn)設(shè)備,還包括:用于響應(yīng)于所述視區(qū)的移動而將處于所述后置緩沖區(qū)(126)中的圖像片緩沖區(qū)(118)與所述前置緩沖區(qū)(122)相關(guān)聯(lián)的裝置,其中,所述圖像片緩沖區(qū)表示在所述視區(qū)移動之后而不是在所述視區(qū)移動之前所述視區(qū)交疊的圖像片。
15.根據(jù)權(quán)利要求11或12所述的計(jì)算機(jī)實(shí)現(xiàn)設(shè)備,還包括:用于響應(yīng)于所述視區(qū)的所述移動而在所述前置緩沖區(qū)(122)與所述后置緩沖區(qū)(126)之間復(fù)制所述圖像片緩沖區(qū)(118)的內(nèi)容的裝置。
【文檔編號】G06T1/00GK103489150SQ201310208305
【公開日】2014年1月1日 申請日期:2013年5月30日 優(yōu)先權(quán)日:2012年6月8日
【發(fā)明者】艾丁尼·貝朗格 申請人:Qnx軟件系統(tǒng)有限公司