發(fā)明人:s·w·惠、v·阿魯桑和y·王
相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求于2015年2月20提交的美國(guó)非臨時(shí)專利申請(qǐng)no.14/628,097的權(quán)益,其通過(guò)援引全部納入于此。
公開領(lǐng)域
本公開一般涉及計(jì)算系統(tǒng),尤其涉及在圖形處理系統(tǒng)中渲染內(nèi)容。
背景
計(jì)算設(shè)備可以裝備有一個(gè)或多個(gè)高性能圖形處理單元(gpu),這些gpu提供關(guān)于計(jì)算和圖形渲染的高性能。計(jì)算設(shè)備可使用gpu來(lái)加速對(duì)圖形數(shù)據(jù)的渲染以供顯示。此類計(jì)算設(shè)備的示例可包括計(jì)算機(jī)工作站、移動(dòng)電話(例如,智能電話)、嵌入式系統(tǒng)、個(gè)人計(jì)算機(jī)、平板計(jì)算機(jī)、以及視頻游戲控制臺(tái)。
渲染一般指的是將三維(3d)圖形場(chǎng)景(其可包括一個(gè)或多個(gè)3d圖形對(duì)象)轉(zhuǎn)換成二維(2d)經(jīng)柵格化的圖像數(shù)據(jù)的過(guò)程。具體而言,gpu可包括3d渲染流水線以便為渲染3d圖形場(chǎng)景提供至少部分的硬件加速。該場(chǎng)景中的3d圖形對(duì)象可由圖形應(yīng)用細(xì)分為一個(gè)或多個(gè)3d圖形原語(yǔ)(例如,點(diǎn)、線條、三角形、塊等),并且gpu可將該場(chǎng)景的3d圖形原語(yǔ)轉(zhuǎn)換成2d經(jīng)柵格化的圖像數(shù)據(jù)。
簡(jiǎn)要概述
公開了用于使用lq塊在顯示器設(shè)備上顯示數(shù)據(jù)以減少存儲(chǔ)器帶寬的系統(tǒng)和方法。用戶可在顯示質(zhì)量或網(wǎng)頁(yè)的信息內(nèi)容的最小降級(jí)的情況下快速滾動(dòng)網(wǎng)頁(yè)。
根據(jù)一些實(shí)施例,一種用于在顯示器設(shè)備上顯示數(shù)據(jù)的方法包括:基于高質(zhì)量(hq)塊與對(duì)應(yīng)的低質(zhì)量(lq)塊之間的差異來(lái)計(jì)算紋理。所述方法還包括:將所述紋理存儲(chǔ)到所述lq塊的阿爾法通道中。所述方法進(jìn)一步包括:當(dāng)所述阿爾法通道的屬性滿足閾值時(shí),將所述lq塊合成到屏幕上。
根據(jù)一些實(shí)施例,一種用于在顯示器設(shè)備上顯示數(shù)據(jù)的系統(tǒng)包括顯示器設(shè)備和存儲(chǔ)器。所述系統(tǒng)還包括耦合到所述存儲(chǔ)器和所述顯示器設(shè)備的一個(gè)或多個(gè)處理器。所述一個(gè)或多個(gè)處理器讀取所述存儲(chǔ)器并且被配置成:基于hq塊與對(duì)應(yīng)的lq塊之間的差異來(lái)計(jì)算紋理。所述處理器還被配置成:將所述紋理存儲(chǔ)到所述lq塊的阿爾法通道中。所述處理器被進(jìn)一步配置成:當(dāng)所述阿爾法通道的屬性滿足閾值時(shí),將所述lq塊合成到所述顯示器設(shè)備上。
根據(jù)一些實(shí)施例,一種計(jì)算機(jī)可讀介質(zhì)在其上存儲(chǔ)有用于執(zhí)行操作的計(jì)算機(jī)可執(zhí)行指令,所述操作包括:基于hq塊與對(duì)應(yīng)的lq塊之間的差異來(lái)計(jì)算紋理;將所述紋理存儲(chǔ)到所述lq塊的阿爾法通道中;以及當(dāng)所述阿爾法通道的屬性滿足閾值時(shí),將所述lq塊合成到所述顯示器設(shè)備上。
根據(jù)一些實(shí)施例,一種用于在顯示器設(shè)備上顯示數(shù)據(jù)的裝備包括:用于基于hq塊與對(duì)應(yīng)的lq塊之間的差異來(lái)計(jì)算紋理的裝置。該系統(tǒng)還包括:用于將所述紋理存儲(chǔ)到所述lq塊的阿爾法通道中的裝置。該系統(tǒng)進(jìn)一步包括:當(dāng)所述阿爾法通道的屬性滿足閾值時(shí),將所述lq塊合成到所述顯示器設(shè)備上。
附圖簡(jiǎn)述
形成本說(shuō)明書一部分的各附圖解說(shuō)了本發(fā)明的各實(shí)施例,并且與本描述一起進(jìn)一步用以解釋各實(shí)施例的原理。在各附圖中,類似的附圖標(biāo)記可指示相同元件或功能上類似的元件。元件在其中首次出現(xiàn)的附圖通常由對(duì)應(yīng)附圖標(biāo)記中的最左邊的數(shù)字指示。
圖1是解說(shuō)了根據(jù)一些實(shí)施例的可用于實(shí)現(xiàn)渲染技術(shù)的計(jì)算設(shè)備的框圖。
圖2是更詳細(xì)地解說(shuō)了根據(jù)一些實(shí)施例的圖1中的計(jì)算設(shè)備的cpu、gpu、以及系統(tǒng)存儲(chǔ)器的框圖。
圖3是根據(jù)一些實(shí)施例的由瀏覽器渲染的網(wǎng)頁(yè)的解說(shuō)。
圖4是根據(jù)一些實(shí)施例的用于使gpu將hq塊或lq塊合成到顯示器設(shè)備上的過(guò)程的流程圖。
本公開的各實(shí)施例及其優(yōu)點(diǎn)通過(guò)參考以下詳細(xì)描述而被最好地理解。
詳細(xì)描述
i.概覽
ii.示例系統(tǒng)架構(gòu)
iii.將內(nèi)容渲染到顯示器設(shè)備上
a.hq塊不可用并且lq塊可用
b.hq塊和lq塊可用
1.計(jì)算具有與lq塊相同分辨率的紋理“dlow”
2.將紋理“dlow”存儲(chǔ)到lq的阿爾法通道中
3.基于閾值的lq塊與hq塊之間的差異
iv.示例方法
i.概覽
將理解,以下公開提供了用于實(shí)現(xiàn)本公開的不同特征的許多不同的實(shí)施例或者示例。一些實(shí)施例可以在沒有這些具體細(xì)節(jié)中的一些或全部的情況下被實(shí)踐。以下描述了各組件、模塊和布置的具體示例以簡(jiǎn)化本公開。當(dāng)然,這些僅僅是示例而并不旨在限制。
網(wǎng)頁(yè)充滿了豐富的多媒體內(nèi)容,該多媒體內(nèi)容可包括圖形、視頻、圖像、文本等等。在網(wǎng)頁(yè)渲染期間,web瀏覽器可將網(wǎng)頁(yè)劃分成多個(gè)塊。每個(gè)塊內(nèi)部的網(wǎng)頁(yè)內(nèi)容可被柵格化成位圖,該位圖隨后被加載到紋理中以供gpu訪問(wèn)。每個(gè)位圖可對(duì)應(yīng)于覆蓋屏幕的一部分的塊。為了顯示網(wǎng)頁(yè),gpu將各塊合成到屏幕上。當(dāng)用戶滾動(dòng)網(wǎng)頁(yè)幀時(shí),新塊可出現(xiàn)在瀏覽器窗口中并且舊塊可從瀏覽器窗口消失。
gpu可生成具有不同分辨率的塊。低質(zhì)量(lq)塊是對(duì)應(yīng)的高質(zhì)量(hq)塊的較低分辨率版本。hq塊是可具有與屏幕相同的分辨率的塊,而lq塊是lq塊所覆蓋的信息內(nèi)容的縮減版本。lq塊與完全渲染的塊(被稱為hq塊)相比渲染得相對(duì)更迅速,并且可被用于迅速地傳達(dá)lq塊所覆蓋的網(wǎng)頁(yè)內(nèi)容的縮略草圖。
在快速滾動(dòng)期間,并非幀的所有hq塊可在新幀出現(xiàn)在瀏覽器窗口中之前被渲染。為了允許在web瀏覽器中平滑滾動(dòng)網(wǎng)頁(yè),大約60幀每秒(fps)的幀率可能是期望的。可惜的是,該幀率通常需要高的存儲(chǔ)器帶寬。如果用戶快速滾動(dòng)網(wǎng)頁(yè)幀并且被暴露在屏幕上網(wǎng)頁(yè)的hq塊還未被渲染,則用戶可能看到空白區(qū)域,這可能令人分心并且使總體用戶體驗(yàn)降級(jí)。由于渲染hq塊的高成本,因此可生成對(duì)應(yīng)的lq塊并將其合成到屏幕上以使得在滾動(dòng)期間可以顯示網(wǎng)頁(yè)的較低分辨率版本,由此減少了在滾動(dòng)期間空白的出現(xiàn)。lq塊可被渲染成hq塊以完全顯示信息內(nèi)容。
對(duì)于高分辨率設(shè)備,可能需要大量的存儲(chǔ)器帶寬來(lái)顯示整個(gè)網(wǎng)頁(yè)。將hq塊合成到屏幕上與合成對(duì)應(yīng)的lq塊相比可消耗大量的存儲(chǔ)器帶寬和功率以及使性能降級(jí)??赡芷谕麥p少存儲(chǔ)器帶寬以便改善性能并減少功耗。減少存儲(chǔ)器帶寬的常規(guī)技術(shù)包括執(zhí)行硬件紋理壓縮。gpu可以執(zhí)行硬件紋理壓縮,但是該技術(shù)可能是不期望的,因?yàn)樗枰布С植⑶铱赡苁前嘿F的。替換地,還可以使用用于紋理壓縮的軟件技術(shù)。然而,由于所需要的中央處理單元(cpu)處理的量,軟件紋理壓縮可能是不期望的。
本公開的各技術(shù)可提供克服這些缺點(diǎn)、同時(shí)使得web瀏覽器在快速滾動(dòng)網(wǎng)頁(yè)期間能夠在顯示質(zhì)量或信息內(nèi)容的最小降級(jí)的情況下快速地渲染網(wǎng)頁(yè)的幀的解決方案。公開了用于使gpu將hq塊或其對(duì)應(yīng)的lq塊合成到顯示器設(shè)備上的系統(tǒng)和方法。如果lq塊和hq塊足夠相似以至于不會(huì)使用戶體驗(yàn)降級(jí),則gpu可合成lq塊而不是對(duì)應(yīng)的hq塊(不用hq塊來(lái)替代lq塊)。lq塊比它們對(duì)應(yīng)的hq塊更小并且消耗更少的存儲(chǔ)器空間。通過(guò)合成lq塊而不是hq塊,減少了由gpu在合成期間訪問(wèn)的存儲(chǔ)器的量。由此,使用lq塊可減少在塊合成期間所需要的存儲(chǔ)器帶寬。
在一些實(shí)施例中,gpu生成hq塊和對(duì)應(yīng)的lq塊,并基于hq塊與lq塊之間的差異來(lái)計(jì)算紋理。lq塊中的每個(gè)像素可具有三個(gè)顏色通道和一阿爾法通道。阿爾法通道通常具有描述給定像素的對(duì)象片段的不透明程度的屬性。gpu可將紋理存儲(chǔ)到lq塊的阿爾法通道中,而不是存儲(chǔ)不透明程度。通過(guò)這樣做,可節(jié)省存儲(chǔ)器空間。紋理可包括lq塊中每個(gè)像素的單個(gè)標(biāo)量值。對(duì)應(yīng)于lq塊中的像素的單個(gè)標(biāo)量值是該像素與對(duì)應(yīng)hq塊中的多個(gè)像素之間的差異,并且可被存儲(chǔ)為阿爾法通道的屬性的值。
當(dāng)阿爾法通道的屬性滿足閾值時(shí),gpu可將lq塊合成到顯示器設(shè)備上。在一示例中,低于閾值的屬性滿足該閾值。這種屬性可指示lq塊和hq塊彼此足夠相似,以使得將lq塊而不是hq塊合成到顯示器設(shè)備上將不會(huì)使用戶體驗(yàn)降級(jí)。替換地,當(dāng)屬性不滿足閾值時(shí),gpu可將hq塊合成到顯示器設(shè)備上。不低于閾值的屬性可指示lq塊和hq塊彼此不足夠相似以合成lq塊而不是hq塊。因此,hq塊應(yīng)當(dāng)被合成到顯示器設(shè)備上而不是對(duì)應(yīng)的lq塊。
ii.示例系統(tǒng)架構(gòu)
圖1是解說(shuō)了根據(jù)一些實(shí)施例的可被用于實(shí)現(xiàn)渲染技術(shù)的計(jì)算設(shè)備102的框圖。計(jì)算設(shè)備102可包括個(gè)人計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、計(jì)算機(jī)工作站、視頻游戲平臺(tái)或控制臺(tái)、無(wú)線通信設(shè)備(例如,移動(dòng)電話、蜂窩電話、衛(wèi)星電話、和/或移動(dòng)電話手持機(jī))、手持式設(shè)備(諸如便攜式視頻游戲設(shè)備或個(gè)人數(shù)字助理(pda))、個(gè)人音樂(lè)播放器、視頻播放器、電視、電視機(jī)頂盒、大型計(jì)算機(jī)或者任何其他類型的處理和/或顯示圖形數(shù)據(jù)的設(shè)備。
如圖1的示例中解說(shuō)的,計(jì)算設(shè)備102包括用戶接口104、cpu106、存儲(chǔ)器控制器108、系統(tǒng)存儲(chǔ)器110、圖形處理單元(gpu)112、gpu高速緩存114、顯示器接口116、顯示器設(shè)備118、以及總線120。用戶接口104、cpu106、存儲(chǔ)器控制器108、gpu112以及顯示器接口116可以使用總線120來(lái)彼此通信。應(yīng)當(dāng)注意,圖1中示出的不同組件之間的總線和通信接口的具體配置僅是示例,并且計(jì)算設(shè)備的其他配置和/或具有相同或不同組件的其他圖形處理系統(tǒng)可被用于實(shí)現(xiàn)本公開的各技術(shù)。
cpu106可包括控制計(jì)算設(shè)備102的操作的通用或?qū)S锰幚砥鳌S脩艨上蛴?jì)算設(shè)備102提供輸入以使cpu106執(zhí)行一個(gè)或多個(gè)軟件應(yīng)用。在cpu106上執(zhí)行的軟件應(yīng)用可包括例如操作系統(tǒng)、軟件應(yīng)用122(例如,文字處理器應(yīng)用、電子郵件應(yīng)用、電子表格應(yīng)用、媒體播放器應(yīng)用、視頻游戲應(yīng)用、圖形用戶界面(gui)應(yīng)用、或?yàn)g覽器)、或另一程序。用戶可經(jīng)由一個(gè)或多個(gè)輸入設(shè)備(未示出)(諸如鍵盤、鼠標(biāo)、話筒、觸摸墊或者經(jīng)由用戶接口104耦合到計(jì)算設(shè)備102的另一輸入設(shè)備)向計(jì)算設(shè)備102提供輸入。
軟件應(yīng)用122可包括指示gpu112將圖形數(shù)據(jù)渲染到顯示器設(shè)備118的一個(gè)或多個(gè)圖形渲染指令。在一些示例中,軟件指令可遵循圖形應(yīng)用編程接口(api),諸如開放圖形庫(kù)(opengl.rtm.)api、開放圖形庫(kù)嵌入式系統(tǒng)(opengles)api、direct3dapi、x3dapi、rendermanapi、webglapi、或其他任何公共或?qū)S袠?biāo)準(zhǔn)圖形api。為了處理圖形渲染指令,cpu106可向gpu112發(fā)出一個(gè)或多個(gè)圖形渲染命令以使gpu112渲染圖形數(shù)據(jù)中的全部或一些。要被渲染的圖形數(shù)據(jù)可包括圖形原語(yǔ)(例如,點(diǎn)、線條、三角形、四邊形、三角形條等)的列表。
存儲(chǔ)器控制器108促成進(jìn)入和離開系統(tǒng)存儲(chǔ)器110的數(shù)據(jù)的傳輸。例如,存儲(chǔ)器控制器108可接收存儲(chǔ)器讀取和寫入命令,并且對(duì)關(guān)于存儲(chǔ)器系統(tǒng)110的此類命令進(jìn)行服務(wù),以便為計(jì)算設(shè)備102中的各組件提供存儲(chǔ)器服務(wù)。存儲(chǔ)器控制器108通信地耦合到系統(tǒng)存儲(chǔ)器110。盡管存儲(chǔ)器控制器108在圖1的示例計(jì)算設(shè)備102中被解說(shuō)為與cpu106和系統(tǒng)存儲(chǔ)器110兩者分開的處理模塊,但在其他示例中,存儲(chǔ)器控制器108的一些或全部功能性可被實(shí)現(xiàn)在cpu106和系統(tǒng)存儲(chǔ)器110中的一者或兩者上。
系統(tǒng)存儲(chǔ)器110可存儲(chǔ):可由cpu106訪問(wèn)以供執(zhí)行的程序模塊和/或指令、和/或由在cpu106上執(zhí)行的程序使用的數(shù)據(jù)。例如,系統(tǒng)存儲(chǔ)器110可存儲(chǔ)用戶應(yīng)用和與這些應(yīng)用相關(guān)聯(lián)的圖形數(shù)據(jù)。系統(tǒng)存儲(chǔ)器110可另外存儲(chǔ)由計(jì)算設(shè)備102的其他組件使用和/或生成的信息。例如,系統(tǒng)存儲(chǔ)器110可充當(dāng)gpu112的設(shè)備存儲(chǔ)器,并且可存儲(chǔ)要由gpu112操作的數(shù)據(jù)以及從由gpu112執(zhí)行的操作得到的數(shù)據(jù)。例如,系統(tǒng)存儲(chǔ)器110可存儲(chǔ)紋理緩沖器、深度緩沖器、絲網(wǎng)緩沖器、頂點(diǎn)緩沖器、幀緩沖器等的任何組合。另外,系統(tǒng)存儲(chǔ)器110可存儲(chǔ)用于由gpu112處理的命令流。系統(tǒng)存儲(chǔ)器110可包括一個(gè)或多個(gè)易失性或非易失性存儲(chǔ)器或存儲(chǔ)設(shè)備,諸如舉例而言,隨機(jī)存取存儲(chǔ)器(ram)、靜態(tài)ram(sram)、動(dòng)態(tài)ram(dram)、只讀存儲(chǔ)器(rom)、可擦除可編程rom(eprom)、電可擦除可編程rom(eeprom)、閃存存儲(chǔ)器、磁數(shù)據(jù)介質(zhì)或光存儲(chǔ)介質(zhì)。
gpu112可被配置成:執(zhí)行圖形操作以將一個(gè)或多個(gè)圖形原語(yǔ)渲染到顯示器設(shè)備118,以及將圖像紋理映射為像素以供顯示。當(dāng)在cpu106上執(zhí)行的軟件應(yīng)用122要求圖形處理時(shí),cpu106可向gpu112提供圖形命令和圖形數(shù)據(jù)以供渲染到顯示器設(shè)備118。圖形命令可包括繪制調(diào)用命令、gpu狀態(tài)編程命令、存儲(chǔ)器傳輸命令、通用計(jì)算命令、內(nèi)核執(zhí)行命令等。在一些示例中,cpu106可通過(guò)將命令和圖形數(shù)據(jù)寫入可由gpu112訪問(wèn)的系統(tǒng)存儲(chǔ)器110來(lái)向gpu112提供命令和圖形數(shù)據(jù)。在一示例中,圖形數(shù)據(jù)可包括紋理,該紋理被存儲(chǔ)在系統(tǒng)存儲(chǔ)器110中并由gpu112用于確定顯示器設(shè)備118上像素的顏色。在一些示例中,gpu112可被進(jìn)一步配置成執(zhí)行針對(duì)在cpu106上執(zhí)行的應(yīng)用的通用計(jì)算。
在一些實(shí)例中,gpu112可構(gòu)建有高度并行結(jié)構(gòu),該高度并行結(jié)構(gòu)提供比cpu106更高效的對(duì)向量運(yùn)算的處理。例如,gpu112可包括多個(gè)處理單元,這些處理單元被配置成以并行方式來(lái)對(duì)多個(gè)頂點(diǎn)、控制點(diǎn)、像素和/或其他數(shù)據(jù)進(jìn)行操作。在一些實(shí)例中,gpu112的高度并行本質(zhì)可允許gpu112比使用cpu106來(lái)渲染圖像更迅速地將圖形圖像(例如,gui和二維(2d)和/或三維(3d)圖形場(chǎng)景)渲染到顯示器設(shè)備118上。另外,gpu112的高度并行本質(zhì)可允許gpu112比cpu106更迅速地處理通用計(jì)算應(yīng)用的某些類型的向量和矩陣運(yùn)算。
在一些實(shí)例中,gpu112可被集成到計(jì)算設(shè)備102的主板中。在其他實(shí)例中,gpu112可以存在于被安裝在計(jì)算設(shè)備102的主板的端口中的圖形卡上或者可以通過(guò)其他方式納入到被配置成與計(jì)算設(shè)備102互操作的外圍設(shè)備內(nèi)。在進(jìn)一步實(shí)例中,gpu112可位于與形成片上系統(tǒng)(soc)的cpu106相同的微芯片上。gpu112可包括一個(gè)或多個(gè)處理器,諸如一個(gè)或多個(gè)微處理器、專用集成電路(asic)、現(xiàn)場(chǎng)可編程門陣列(fpga)、數(shù)字信號(hào)處理器(dsp)、或者其他等效的集成或分立邏輯電路系統(tǒng)。
gpu112可以直接耦合到gpu高速緩存114。由此,gpu112可在不必使用總線120的情況下從gpu高速緩存114讀數(shù)據(jù)和向gpu高速緩存114寫數(shù)據(jù)。換言之,gpu112可使用本地存儲(chǔ)而不是片下存儲(chǔ)器來(lái)在本地處理數(shù)據(jù)。這通過(guò)降低對(duì)gpu112經(jīng)由總線120來(lái)讀寫數(shù)據(jù)(其可經(jīng)歷繁重的總線通信量)的需求來(lái)允許gpu112以更高效的方式進(jìn)行操作。gpu高速緩存114可包括一個(gè)或多個(gè)易失性或非易失性存儲(chǔ)器或存儲(chǔ)設(shè)備,諸如舉例而言,隨機(jī)存取存儲(chǔ)器(ram)、靜態(tài)ram(sram)、動(dòng)態(tài)ram(dram)等。然而,在一些實(shí)例中,gpu112可不包括分開的高速緩存,而是替代地經(jīng)由總線120來(lái)使用系統(tǒng)存儲(chǔ)器110。
cpu106和/或gpu112可將經(jīng)渲染的圖像數(shù)據(jù)存儲(chǔ)在系統(tǒng)存儲(chǔ)器110內(nèi)所分配的幀緩沖器中。在cpu106上執(zhí)行的軟件應(yīng)用可將圖像數(shù)據(jù)(例如,紋理元素顏色、寬度、高度、和顏色深度)存儲(chǔ)在系統(tǒng)存儲(chǔ)器110中。顯示器接口116可以從幀緩沖器檢索數(shù)據(jù)并且配置顯示器設(shè)備118以顯示由經(jīng)渲染的圖像數(shù)據(jù)表示的圖像。在一些示例中,顯示器接口116可包括數(shù)模轉(zhuǎn)換器(dac),其被配置成將從幀緩沖器檢索的數(shù)字值轉(zhuǎn)換成可由顯示器設(shè)備118使用的模擬信號(hào)。在其他示例中,顯示器接口116可將數(shù)字值直接傳遞給顯示器設(shè)備118以供處理。
顯示器設(shè)備118可包括監(jiān)視器、電視、投影設(shè)備、液晶顯示器(lcd)、等離子顯示面板、發(fā)光二極管(led)陣列、陰極射線管(crt)顯示器、表面?zhèn)鲗?dǎo)式電子發(fā)射顯示器(sed)、激光電視顯示器、納米晶體顯示器或另一類型的顯示單元。顯示器設(shè)備118可被集成在計(jì)算設(shè)備102內(nèi)。例如,顯示器設(shè)備118可以是移動(dòng)電話手持機(jī)或平板計(jì)算機(jī)的屏幕。替換地,顯示器設(shè)備118可以是經(jīng)由有線或無(wú)線通信鏈路耦合到計(jì)算設(shè)備102的獨(dú)立設(shè)備。例如,顯示器設(shè)備118可以是經(jīng)由線纜或無(wú)線鏈路來(lái)連接到個(gè)人計(jì)算機(jī)的計(jì)算機(jī)監(jiān)視器或平板顯示器。
可以使用總線結(jié)構(gòu)和總線協(xié)議(包括第一、第二、以及第三代總線結(jié)構(gòu)和協(xié)議、共享總線結(jié)構(gòu)和協(xié)議、點(diǎn)對(duì)點(diǎn)總線結(jié)構(gòu)和協(xié)議、單向總線結(jié)構(gòu)和協(xié)議、以及雙向總線結(jié)構(gòu)和協(xié)議)的任何組合來(lái)實(shí)現(xiàn)總線120??捎糜趯?shí)現(xiàn)總線120的不同總線結(jié)構(gòu)和協(xié)議的示例包括,例如,超傳輸(hypertransport)總線、無(wú)限頻帶(infiniband)總線、高級(jí)圖形端口總線、外圍組件互連(pci)總線、高速pci總線、高級(jí)微控制器總線架構(gòu)(amba)、高級(jí)高性能總線(ahb)、amba高級(jí)外圍總線(apb)、以及amba高級(jí)可擴(kuò)展接口(axi)總線。還可以使用其他類型的總線結(jié)構(gòu)和協(xié)議。
圖2是更詳細(xì)地解說(shuō)了根據(jù)一些實(shí)施例的圖1中的計(jì)算設(shè)備102的cpu106、gpu112、以及系統(tǒng)存儲(chǔ)器110的框圖。如圖2中所示,cpu106通信地耦合到gpu112和系統(tǒng)存儲(chǔ)器110,并且gpu112通信地耦合到cpu106和系統(tǒng)存儲(chǔ)器110。在一些示例中,gpu112可與cpu106一起被集成到主板上。
cpu106被配置成執(zhí)行軟件應(yīng)用,諸如瀏覽器224、圖形api226、gpu驅(qū)動(dòng)程序228、以及操作系統(tǒng)230。瀏覽器224可包括使圖形圖像被顯示的一個(gè)或多個(gè)指令和/或使由gpu112執(zhí)行非圖形任務(wù)(例如,通用計(jì)算任務(wù))的一個(gè)或多個(gè)指令。瀏覽器224可包括或?qū)崿F(xiàn)多個(gè)硬件組件和/或軟件組件,這些組件操作以執(zhí)行根據(jù)所描述的各實(shí)施例的方法體系。
用戶可將瀏覽器224指向網(wǎng)頁(yè)的統(tǒng)一資源定位符(url)。瀏覽器224可加載由該url引用的超文本標(biāo)記語(yǔ)言(html)文件并在屏幕(例如,圖1中的顯示器設(shè)備118)上渲染網(wǎng)頁(yè)。盡管瀏覽器224可被描述為向gpu112發(fā)出指令,但是應(yīng)當(dāng)理解,計(jì)算設(shè)備102中可執(zhí)行的并且處理和/或顯示圖形數(shù)據(jù)的任何軟件應(yīng)用可被用于發(fā)出這些指令。另外,盡管網(wǎng)頁(yè)被描述為可渲染內(nèi)容,但這并非旨在限定并且可渲染/經(jīng)渲染的內(nèi)容可以是頁(yè)面(其與諸如因特網(wǎng)之類的網(wǎng)絡(luò)相關(guān)聯(lián)或者不相關(guān)聯(lián))上的任何文本、圖像、或圖形。
圖3是根據(jù)一些實(shí)施例的由瀏覽器224渲染的網(wǎng)頁(yè)300的解說(shuō)。將一起討論圖2和3以更好地解釋本公開的渲染技術(shù)。瀏覽器224可在瀏覽器窗口中顯示網(wǎng)頁(yè)300的幀。
在網(wǎng)頁(yè)渲染期間,瀏覽器224將網(wǎng)頁(yè)300劃分成多個(gè)塊302。網(wǎng)頁(yè)300被劃分成三列四行的塊302,總共12塊。塊302可與傳達(dá)信息的圖形、文本304、圖像306和308、圖標(biāo)、視頻的鏈接等等相交疊。瀏覽器224將每個(gè)塊內(nèi)部的網(wǎng)頁(yè)內(nèi)容柵格化成位圖。每個(gè)位圖與覆蓋顯示器設(shè)備118的一部分的塊相對(duì)應(yīng)。
瀏覽器224可柵格化多個(gè)塊302中的一個(gè)或多個(gè)塊的一個(gè)或多個(gè)版本。在一示例中,瀏覽器224柵格化每個(gè)塊的lq版本和hq版本。瀏覽器224可將塊302的lq版本柵格化成lq位圖260,并將塊302的對(duì)應(yīng)hq版本柵格化成hq位圖262。瀏覽器224可將塊的lq版本柵格化成比塊的hq版本更小的塊。cpu106可花費(fèi)更少的時(shí)間來(lái)柵格化塊302的lq版本中的內(nèi)容,因?yàn)閴K302的lq版本比對(duì)應(yīng)的hq塊更小并且包含更少的信息。如此,在一些實(shí)施例中,瀏覽器224在hq位圖262之前生成lq位圖260。可在正在生成lq位圖260時(shí)或者已生成位圖260之后在后臺(tái)生成hq位圖262。
gpu112可能不可訪問(wèn)位圖。為了向gpu112提供對(duì)位圖的訪問(wèn),瀏覽器224可將位圖上傳到紋理存儲(chǔ)器264中。在一示例中,瀏覽器224將lq位圖260上傳到lq塊270中,并將hq位圖262上傳到hq塊272中。lq塊270對(duì)應(yīng)于hq塊272并且是hq塊272的較低分辨率版本。在一示例中,hq塊272可映射到顯示器設(shè)備118的512x512紋理元素區(qū)域,并且對(duì)應(yīng)的lq塊270可映射到顯示器設(shè)備118的32x32紋理元素區(qū)域。紋理元素區(qū)域包括一個(gè)或多個(gè)紋理元素,并且紋理元素是紋理存儲(chǔ)器264中的像素。
由于柵格化和合成hq塊的高成本,它們對(duì)應(yīng)的lq塊可被用于在滾動(dòng)期間渲染網(wǎng)頁(yè)300的較低分辨率版本,由此減少在滾動(dòng)期間空白的出現(xiàn)以及減少存儲(chǔ)器帶寬。盡管在圖2中解說(shuō)了一個(gè)lq位圖和hq位圖,但應(yīng)當(dāng)理解,一個(gè)或多個(gè)lq位圖和/或一個(gè)或多個(gè)hq位圖可被存儲(chǔ)在系統(tǒng)存儲(chǔ)器110中。類似地,盡管在圖2中解說(shuō)了一個(gè)lq塊和hq塊,但應(yīng)當(dāng)理解,一個(gè)或多個(gè)lq塊和/或一個(gè)或多個(gè)hq塊可被存儲(chǔ)在系統(tǒng)存儲(chǔ)器110中。另外,hq塊可被描述為具有一個(gè)對(duì)應(yīng)的較低分辨率版本。這并非旨在限定,并且應(yīng)當(dāng)理解,hq塊可具有一個(gè)以上對(duì)應(yīng)的較低分辨率版本。
瀏覽器224可向圖形api226發(fā)出指令,api226可將接收自瀏覽器224的指令轉(zhuǎn)換成可由gpu驅(qū)動(dòng)程序228使用的格式。gpu驅(qū)動(dòng)程序228經(jīng)由圖形api226從瀏覽器224接收指令,并控制gpu112的操作以對(duì)這些指令進(jìn)行服務(wù)。例如,gpu驅(qū)動(dòng)程序228可編制一個(gè)或多個(gè)命令240,將命令240置于系統(tǒng)存儲(chǔ)器110中(例如,紋理存儲(chǔ)器264中),并指示gpu112執(zhí)行命令240。在一些示例中,gpu驅(qū)動(dòng)程序228可將命令240置于系統(tǒng)存儲(chǔ)器110中,并經(jīng)由操作系統(tǒng)230(例如,經(jīng)由一個(gè)或多個(gè)系統(tǒng)調(diào)用)與gpu112通信。
系統(tǒng)存儲(chǔ)器110可存儲(chǔ)一個(gè)或多個(gè)命令240。命令240可被存儲(chǔ)在一個(gè)或多個(gè)命令緩沖器(例如,環(huán)形緩沖器)中并且包括一個(gè)或多個(gè)狀態(tài)命令和/或一個(gè)或多個(gè)繪制調(diào)用命令。狀態(tài)命令可指示gpu112改變gpu112中的一個(gè)或多個(gè)狀態(tài)變量,諸如繪制顏色。繪制調(diào)用命令可指示gpu112渲染由存儲(chǔ)在系統(tǒng)存儲(chǔ)器110中的一組一個(gè)或多個(gè)頂點(diǎn)所定義的(例如,在頂點(diǎn)緩沖器中所定義的)幾何形狀、或者將紋理(例如,lq塊270或hq塊272)的內(nèi)容繪制到顯示器設(shè)備118上。
gpu112包括命令引擎232以及一個(gè)或多個(gè)處理單元234。命令引擎232檢索并執(zhí)行存儲(chǔ)在系統(tǒng)存儲(chǔ)器110中的命令240。響應(yīng)于接收到狀態(tài)命令,命令引擎232可被配置成基于該狀態(tài)命令來(lái)將gpu112中的一個(gè)或多個(gè)狀態(tài)寄存器設(shè)置成特定的值。響應(yīng)于接收到繪制調(diào)用命令,命令引擎232可被配置成:使處理單元234基于存儲(chǔ)在系統(tǒng)存儲(chǔ)器110中的原語(yǔ)類型數(shù)據(jù)來(lái)渲染由頂點(diǎn)表示的幾何形狀。命令引擎232還可接收著色器程序綁定命令,并基于著色器程序綁定命令將特定的著色器程序加載到可編程處理單元234中的一者或多者中。
處理單元234可包括一個(gè)或多個(gè)處理單元,其中每一者可以是可編程處理單元或固定功能處理單元。可編程處理單元可包括例如可編程著色器單元,其被配置成執(zhí)行從cpu106下載到gpu112上的一個(gè)或多個(gè)著色器程序。在一些示例中,著色器程序可以是以高級(jí)著色語(yǔ)言編寫的程序的經(jīng)編譯版本,諸如opengl著色語(yǔ)言(glsl)、高級(jí)著色語(yǔ)言(hlsl)、用于圖形的c(cg)著色語(yǔ)言等等。
在一些示例中,可編程著色器單元可包括被配置成并行操作的多個(gè)處理單元,例如simd流水線。可編程著色器單元可具有存儲(chǔ)著色器程序指令的程序存儲(chǔ)器和執(zhí)行狀態(tài)寄存器(例如,指示程序存儲(chǔ)器中正在被執(zhí)行的當(dāng)前指令或要被獲取的下一指令的程序計(jì)數(shù)器寄存器)。處理單元234中的可編程著色器單元可包括例如頂點(diǎn)著色器單元、像素著色器單元、幾何形狀著色器單元、外殼著色器單元、域著色器單元、計(jì)算著色器單元、和/或統(tǒng)一著色器單元。一個(gè)或多個(gè)處理單元234可形成3d圖形渲染流水線,其可包括被配置成執(zhí)行著色器程序的一個(gè)或多個(gè)著色器單元。瀏覽器224可向gpu112發(fā)送不同的著色器程序。
iii.將內(nèi)容渲染到顯示器設(shè)備上
在一示例中,命令240包括用于渲染網(wǎng)頁(yè)300的命令。處理單元234包括片段著色器或像素著色器237,其可在渲染過(guò)程的合成階段期間將lq塊270和hq塊272中的至多一者合成到顯示器118上。像素著色器237還可計(jì)算并設(shè)置由顯示在顯示器設(shè)備118上的紋理對(duì)象(例如,紋理圖像)覆蓋的像素的顏色。術(shù)語(yǔ)“片段”和“像素”在本公開中可互換地使用。
顯示器設(shè)備118的每個(gè)像素可具有相關(guān)聯(lián)的信息。在一些示例中,每個(gè)像素具有三個(gè)顏色通道和一個(gè)阿爾法通道。顏色通道是該像素的特定分量(其通常是紅色、綠色和藍(lán)色(rgb)分量)的函數(shù)。因此,像素可具有紅色通道、綠色通道、藍(lán)色通道、以及阿爾法通道。處于不同強(qiáng)度的這三種顏色的組合可表示每個(gè)像素的可見光譜的全范圍。另外,阿爾法通道可具有指示每個(gè)像素的不透明程度的屬性。當(dāng)在合成程序中檢查該屬性時(shí),屬性值一(白色)表示100%不透明并且完全覆蓋像素的感興趣區(qū)域。相比之下,屬性值零(黑色)表示100%透明。
a.hq塊不可用并且lq塊可用
在一些實(shí)施例中,在渲染過(guò)程的合成階段期間,gpu112可將lq塊270或hq塊272合成到顯示器設(shè)備118上。lq塊比它們對(duì)應(yīng)的hq塊更小并消耗更少的存儲(chǔ)器空間。lq塊270可包括具有比hq塊272更低分辨率的內(nèi)容(例如,圖形、文本、圖像、圖標(biāo)、視頻的鏈接等等)。因此,gpu112將lq塊270合成到顯示器設(shè)備118上而不是hq塊272可能更迅速,因?yàn)閘q塊270包含比hq塊272更少的信息。
當(dāng)用戶滾動(dòng)網(wǎng)頁(yè)幀時(shí),新塊可出現(xiàn)在瀏覽器窗口中,并且舊塊可從瀏覽器窗口消失。在快速滾動(dòng)期間,并非幀的所有hq塊可以是可用的。例如,在hq塊272可用之前l(fā)q塊270可以可用,因?yàn)榕chq塊272相比生成lq塊270可能更迅速。此處,lq塊270可被合成到顯示器設(shè)備118上以避免用戶在不可用的hq塊原本將被顯示的地方看到空白區(qū)域??瞻讌^(qū)域可能令人分心并且使總體用戶體驗(yàn)降級(jí)。
b.hq塊和lq塊可用
替換地,如果lq塊270和hq塊272兩者可用,則若lq塊和hq塊彼此足夠相似以使得用戶看到lq塊不引人注意或者不會(huì)令人分心,可能期望將lq塊270合成到顯示器設(shè)備118上而不是hq塊272(不用hq塊272來(lái)替代lq塊270)。gpu112可確定是將hq塊272還是lq塊270合成到顯示器設(shè)備118上。圖4是根據(jù)一些實(shí)施例的用于使gpu112將hq塊272或lq塊270合成到顯示器設(shè)備118上的過(guò)程的流程圖400。方法400并非意在限定并且可以用于其他應(yīng)用中。
1.計(jì)算具有與lq塊相同分辨率的紋理“dlow”
在動(dòng)作402中,基于hq塊272與對(duì)應(yīng)的lq塊270之間的差異來(lái)計(jì)算紋理。在一示例中,瀏覽器224經(jīng)由圖形api226向gpu112發(fā)送指令以計(jì)算紋理dlow。gpu112比較具有不同分辨率的兩幅圖像(例如,對(duì)應(yīng)于hq塊272和lq塊270)之間的差異。在一示例中,像素著色器237通過(guò)基于hq塊272與lq塊270之間的差異計(jì)算紋理dlow,來(lái)確定這些塊之間的相似程度。
lq塊270中的像素可被稱為lq像素,并且hq塊272中的像素可被稱為hq像素。hq和lq塊具有不同數(shù)目的像素。lq塊270中的每個(gè)lq像素可被映射到hq塊272中的多個(gè)hq像素。在一示例中,lq塊270是32x32像素區(qū)域,其映射到hq塊272中的512x512像素區(qū)域。對(duì)于lq塊270中的每個(gè)lq像素,紋理dlow可包括指示lq像素與hq塊272中其所映射的多個(gè)hq像素之間差異的差值。紋理dlow具有與lq塊270相同的分辨率。紋理dlow中的每個(gè)像素可與表示lq像素與其所映射的多個(gè)hq像素之間的差異的單個(gè)標(biāo)量值相關(guān)聯(lián)。gpu112可高效地計(jì)算紋理dlow,因?yàn)間pu112可以并行處理像素。在一示例中,像素著色器237的每個(gè)實(shí)例可處理瀏覽器窗口的一個(gè)像素。
gpu112可按各種方式來(lái)計(jì)算紋理dlow。在一些示例中,gpu112在一個(gè)輪次中計(jì)算紋理dlow。在一示例中,對(duì)于lq塊270中的每個(gè)lq像素,gpu112標(biāo)識(shí)hq塊272中的對(duì)應(yīng)像素區(qū)域(例如,16x16hq像素)。gpu112可計(jì)算像素區(qū)域的屬性。像素區(qū)域的屬性可以是該像素區(qū)域的均值。在一示例中,像素區(qū)域中的各像素值的強(qiáng)度被平均。每個(gè)像素可包括rgb顏色。例如,每個(gè)像素可包括三個(gè)標(biāo)量值,其中第一標(biāo)量值對(duì)應(yīng)于紅色(“r”)值,第二標(biāo)量值對(duì)應(yīng)于綠色(“g”)值,并且第三標(biāo)量值對(duì)應(yīng)于藍(lán)色“b”值。像素強(qiáng)度可以是三個(gè)顏色值的函數(shù)。在一示例中,強(qiáng)度是紅色、綠色和藍(lán)色值的線性組合。gpu112隨后可計(jì)算像素區(qū)域的屬性與lq像素之間的差異。像素區(qū)域的屬性與lq像素之間的差異可以是紋理dlow中的值。在一示例中,lq像素對(duì)應(yīng)于存儲(chǔ)像素區(qū)域的屬性與lq像素之間的差異的紋理dlow中的像素??舍槍?duì)lq塊270中的每個(gè)lq像素計(jì)算該差異,并且紋理dlow可包括這些經(jīng)計(jì)算的差異中的每一者。
在另一示例中,對(duì)于lq塊270中的每個(gè)lq像素,gpu112標(biāo)識(shí)hq塊272中的對(duì)應(yīng)像素區(qū)域,并計(jì)算lq像素與該像素區(qū)域中的每個(gè)像素的差異。gpu112隨后可計(jì)算一個(gè)或多個(gè)經(jīng)計(jì)算的差異的均值。該均值可以是紋理dlow中的值。在一示例中,lq像素對(duì)應(yīng)于存儲(chǔ)均值的紋理dlow中的像素。可針對(duì)lq塊270中的每個(gè)lq像素計(jì)算該均值,并且紋理dlow可包括這些經(jīng)計(jì)算的均值中的每一者。
在一些示例中,gpu112在一個(gè)以上輪次中計(jì)算紋理dlow。在一示例中,對(duì)于lq塊270中的每個(gè)lq像素,gpu112標(biāo)識(shí)hq塊272中的對(duì)應(yīng)像素區(qū)域,并基于lq像素與該像素區(qū)域之間的差異來(lái)計(jì)算紋理dhigh。紋理dhigh的分辨率可與hq塊272的分辨率相同。紋理dhigh中的每個(gè)像素可與表示hq塊272與lq塊270之間的像素強(qiáng)度的差異的單個(gè)標(biāo)量值相關(guān)聯(lián)。在分開的輪次中,gpu112可將紋理dhigh下采樣到lq塊270的分辨率。紋理dlow可以是被下采樣到lq塊270的分辨率的紋理dhigh。在一示例中,lq像素對(duì)應(yīng)于存儲(chǔ)lq像素與像素區(qū)域之間的經(jīng)下采樣差異的紋理dlow中的像素。紋理dhigh可被存儲(chǔ)在一個(gè)或多個(gè)臨時(shí)緩沖器中并且可在計(jì)算紋理dlow之后被丟棄。可針對(duì)lq塊270中的每個(gè)lq像素來(lái)計(jì)算該經(jīng)下采樣差異,并且紋理dlow可包括這些經(jīng)下采樣差異中的每一者。
2.將紋理“dlow”存儲(chǔ)到lq塊的阿爾法通道中
在動(dòng)作404中,紋理被存儲(chǔ)到lq塊的阿爾法通道中。在一示例中,瀏覽器224向gpu112發(fā)送指令以將紋理dlow存儲(chǔ)到lq塊270的阿爾法通道中。因此,gpu112可將紋理dlow存儲(chǔ)到lq塊270的阿爾法通道中。紋理dlow的內(nèi)容(其存儲(chǔ)每像素單個(gè)標(biāo)量值)可被寫入lq塊270的阿爾法通道中。具體而言,lq塊270中的每個(gè)lq像素可具有阿爾法通道,該阿爾法通道具有描述lq像素的對(duì)象片段的不透明程度的屬性。阿爾法通道的屬性通常具有值一,從而指示塊是不透明的。由于塊通常是不透明的,因此阿爾法通道的屬性可以用于存儲(chǔ)與塊的不透明度不同的信息。例如,該屬性可指示lq塊270與hq塊272之間的相似性(或差異),以確定在不將hq塊272合成到顯示器設(shè)備118上的情況下合成lq塊270是否足夠。阿爾法通道可用于存儲(chǔ)紋理dlow以節(jié)省存儲(chǔ)器空間。
在一些實(shí)施例中,紋理dlow中的每個(gè)值被存儲(chǔ)在lq塊270中的lq像素的阿爾法通道的屬性中。該屬性基于lq像素與hq塊272中其所映射的像素區(qū)域之間的差異。存儲(chǔ)在lq塊270的阿爾法通道中的每個(gè)差值可以是hq塊272中的多個(gè)差異的均值。差值提供了對(duì)要將hq塊272還是lq塊270合成到顯示器設(shè)備118上的指示。在一示例中,差值可與閾值進(jìn)行比較,以確定lq塊270與hq塊272有多相似。閾值可取決于多種因素,諸如屏幕和網(wǎng)頁(yè)的分辨率。例如,閾值可指示像素值的特定百分比差異(例如,像素強(qiáng)度的20%差異)。
3.基于閾值的lq塊與hq塊之間的差異
在動(dòng)作406中,當(dāng)阿爾法通道的屬性滿足閾值時(shí),lq塊被合成到顯示器設(shè)備上。因此,可使用來(lái)自lq塊270中的紋理元素的顏色值。在一示例中,瀏覽器224經(jīng)由圖形api226向gpu112發(fā)送指令以從阿爾法通道的屬性讀取并將該屬性與閾值進(jìn)行比較。當(dāng)阿爾法通道的屬性滿足閾值時(shí),gpu112可將lq塊270合成到顯示器設(shè)備118上。如果阿爾法通道的屬性小于(或等于)閾值(其可指示lq塊270與hq塊272有多相似),則該屬性可滿足閾值。低于閾值的屬性可指示lq塊270與hq塊272足夠相似以至于不會(huì)使用戶體驗(yàn)降級(jí)。因此,lq塊270可被合成到顯示器設(shè)備118上而不是hq塊272。
網(wǎng)頁(yè)可包含低頻率數(shù)據(jù)(例如,空白、恒定顏色、或緩慢變化的梯度或圖像),以使得如果lq塊270被合成到顯示器設(shè)備118上而不是hq塊272,則最終結(jié)果足夠良好以供用戶觀看而不會(huì)使用戶體驗(yàn)降級(jí)。如果hq塊包含低頻率數(shù)據(jù),則lq塊270可與hq塊272相似。
gpu112可將lq塊270高速緩存在gpu高速緩存114中以供稍后檢索。如果gpu112訪問(wèn)lq塊270,則gpu112可從gpu高速緩存114檢索lq塊270而不是訪問(wèn)紋理存儲(chǔ)器264。瀏覽器窗口的像素中的許多像素可(逆向地)映射到相同的lq塊。因此,像素著色器237的實(shí)例可獲取相同的lq塊,該lq塊更有可能在gpu112的紋理高速緩存中。對(duì)于包含在hq位圖262與lq位圖260之間具有相似顏色值的像素的塊(諸如在網(wǎng)頁(yè)包含空白區(qū)域、緩慢變化的梯度等等的情況下),這可得到降低的存儲(chǔ)器帶寬。
另外,gpu112可能完全不必訪問(wèn)hq塊272。相反,gpu112可讀取lq塊270的阿爾法通道,以確定lq塊270與hq塊272之間的差異是否如此小以使得gpu112可以合成lq塊272。如果阿爾法通道的屬性滿足閾值,則gpu112免于訪問(wèn)hq塊272,由此減少了存儲(chǔ)器帶寬。
相比之下,在動(dòng)作408中,當(dāng)阿爾法通道的屬性不滿足閾值時(shí),hq塊被合成到顯示器設(shè)備上。因此,可使用來(lái)自hq塊272中的紋理元素的顏色值。當(dāng)阿爾法通道的屬性不滿足閾值時(shí),gpu112可將hq塊272合成到顯示器設(shè)備118上。在一示例中,如果屬性不小于閾值(例如,大于或等于閾值),則該屬性不滿足閾值。不低于閾值的屬性可指示lq塊270與hq塊272不夠相似以至于無(wú)法代替hq塊被顯示。因此,hq塊272可被合成到顯示器設(shè)備118上而不是lq塊270。網(wǎng)頁(yè)可包含高頻率數(shù)據(jù),以使得如果lq塊270被合成到顯示器設(shè)備118上而不是hq塊272,則最終結(jié)果對(duì)于供用戶觀看而言令人分心。
gpu112可按多種方式將hq塊272合成到顯示器設(shè)備118上。在一示例中,gpu112訪問(wèn)高分辨率塊并將紋理元素從hq塊272復(fù)制到幀緩沖器中以供在顯示器設(shè)備118上顯示。在另一示例中,lq塊270可能已經(jīng)被合成到顯示器設(shè)備118上。在該示例中,gpu112可加回hq塊272與lq塊270之間的差異以獲得hq塊272。
在一些實(shí)施例中,可針對(duì)任何數(shù)目的lq塊來(lái)執(zhí)行動(dòng)作402-408。也要理解,可在以上討論的動(dòng)作402-408之前、期間或之后執(zhí)行附加動(dòng)作。也要理解,本文中所描述的方法400的一個(gè)或多個(gè)動(dòng)作可以按期望被省略、組合或以不同的次序執(zhí)行。
使用本公開中所公開的各技術(shù),紋理獲取的次數(shù)未減少,而是實(shí)際上可能增加。例如,如果阿爾法通道的屬性不滿足閾值,則gpu112訪問(wèn)lq塊270和hq塊272兩者。盡管如此,如果gpu112經(jīng)常使用來(lái)自lq塊的紋理元素,則本公開的各實(shí)施例可通過(guò)減少存儲(chǔ)器帶寬來(lái)顯著地改善性能。
在一些實(shí)施例中,處理單元(例如,gpu112和/或cpu106)在運(yùn)行中改變閾值以減少存儲(chǔ)器帶寬。處理單元可減小閾值以使得可更頻繁地使用lq塊。在一示例中,在快速滾動(dòng)期間,用戶不太可能注意lq塊與hq塊之間的差異。因此,如果處理單元檢測(cè)到快速滾動(dòng),則該處理單元可減小閾值。在另一示例中,計(jì)算設(shè)備102可能處于低電池模式(例如,小于15%電池剩余),則可能期望減少功耗。因此,如果處理單元檢測(cè)到計(jì)算設(shè)備處于低電池模式,則該處理單元可減小閾值。
如以上所討論并在此進(jìn)一步強(qiáng)調(diào)的,圖1-4僅僅是示例,其不應(yīng)當(dāng)不恰當(dāng)?shù)叵拗茩?quán)利要求的范圍。在本公開的各個(gè)實(shí)施例中,用于實(shí)踐本公開的指令序列(例如,圖4中的動(dòng)作402-408)的執(zhí)行可以由計(jì)算設(shè)備102執(zhí)行。在本公開的各種其他實(shí)施例中,由通信鏈路耦合到網(wǎng)絡(luò)(例如,諸如局域網(wǎng)(lan)、無(wú)線局域網(wǎng)(wlan)、公共交換電話網(wǎng)(ptsn)、和/或各種其他有線或無(wú)線網(wǎng)絡(luò),包括電信、移動(dòng)、和蜂窩電話網(wǎng)絡(luò))的多個(gè)計(jì)算設(shè)備可以執(zhí)行指令序列以彼此協(xié)同地實(shí)踐本公開。
在一示例中,用于合成lq塊或hq塊的指令可被存儲(chǔ)在系統(tǒng)存儲(chǔ)器110的計(jì)算機(jī)可讀介質(zhì)中。處理器可以執(zhí)行指令以基于hq塊與對(duì)應(yīng)的lq塊之間的差異來(lái)計(jì)算紋理dlow并將該紋理dlow存儲(chǔ)到lq塊的阿爾法通道中。處理器還可以執(zhí)行指令以便在阿爾法通道的屬性滿足閾值時(shí)將lq塊合成到顯示器設(shè)備118上。處理器還可以執(zhí)行指令以便在阿爾法通道的屬性不滿足閾值時(shí)將hq塊合成到顯示器設(shè)備118上。
在適用的情況下,可使用硬件、軟件、固件、或者其組合來(lái)實(shí)現(xiàn)由本公開提供的各種實(shí)施例。同樣在適用的情況下,本文闡述的各種硬件組件、軟件組件、和/或固件組件可被組合成包括軟件、固件、硬件、和/或全部的復(fù)合組件而不脫離本公開的精神。在適用的情況下,本文闡述的各種硬件組件、軟件組件、和/或固件組件可被分成包括軟件、固件、硬件、或全部的子組件而不脫離本公開的精神。另外,在適用的情況下,構(gòu)想了軟件組件可被實(shí)現(xiàn)為硬件組件,反之亦然。在適用的情況下,本文描述的各個(gè)步驟或動(dòng)作的次序可以改變、組合成復(fù)合步驟或動(dòng)作、和/或分成子步驟或子動(dòng)作以提供本文描述的特征。
盡管已經(jīng)描述了本公開的各實(shí)施例,但這些實(shí)施例進(jìn)行解說(shuō)而不限制本公開。還應(yīng)當(dāng)理解,本公開的各實(shí)施例不應(yīng)當(dāng)限制于這些實(shí)施例,而是本領(lǐng)域普通技術(shù)人員可根據(jù)本公開的原理作出眾多修改和變型,并且這些修改和變型被包括在如所附權(quán)利要求中主張的本公開的精神和范圍內(nèi)。