圖形服務(wù)器和經(jīng)遠程圖形處理服務(wù)使渲染內(nèi)容流動的方法
【專利摘要】圖形服務(wù)器和用于經(jīng)由遠程圖形渲染服務(wù)使經(jīng)渲染的內(nèi)容流動的方法。所述圖形服務(wù)器的一個實施例包括:(1)幀捕獲器,所述幀捕獲器配置為以幀速率捕獲經(jīng)渲染的內(nèi)容的幀,(2)編碼器,所述編碼器配置為以所述幀速率編碼所捕獲的幀,和(3)處理器,如果所述經(jīng)渲染的內(nèi)容是至少部分地改變的,則所述處理器配置為使得經(jīng)編碼的幀被傳送,且如果所述經(jīng)渲染的內(nèi)容是未改變的,則所述處理器配置為使得跳幀信息被傳送,所述跳幀信息配置為使得所述幀捕獲器放棄捕獲,并使得所述編碼器放棄編碼。
【專利說明】圖形服務(wù)器和經(jīng)遠程圖形處理服務(wù)使渲染內(nèi)容流動的方法
【技術(shù)領(lǐng)域】
[0001] 本申請概括地說針對的是計算機圖形處理,更具體地,針對的是功率、存儲器和時 間有效率的遠程渲染、幀捕獲和編碼。
【背景技術(shù)】
[0002] 個人計算的功用最初專注于企業(yè)水平,在科研人員、工程師、分析家和打字員的臺 式機上配置了強大的工具。該功用已經(jīng)從僅僅的數(shù)據(jù)搗弄和文字處理演變到高度可編程 的、交互的、能夠產(chǎn)生用于詳細的令人難以置信的計算機輔助設(shè)計、制圖和視覺化的一定水 平的和實時圖形渲染的工件(workpiece )。在移動計算的發(fā)展的推動下,個人計算新近已經(jīng) 演變?yōu)樽鳛槊襟w和游戲出口的關(guān)鍵角色。個人計算不再順從于世界的臺式機、或甚至筆記 本電腦。強勁的網(wǎng)絡(luò)和計算功率的微型化已經(jīng)使得諸如移動電話和平板電腦等移動設(shè)備從 個人計算市場開拓出較大的面積。
[0003] 移動計算已經(jīng)轉(zhuǎn)變了常規(guī)的信息可訪問性和媒體傳播的觀念。網(wǎng)絡(luò)啟用的 (enabled)設(shè)備是通過各種網(wǎng)絡(luò)連接了各種設(shè)備的新的標(biāo)準(zhǔn)。這已經(jīng)使得常規(guī)的或"主流" 內(nèi)容,以及非常規(guī)的、業(yè)余的或自制的(home-made)內(nèi)容的激增(proliferation)。對今后 來說,除了常規(guī)的出口外,不僅該內(nèi)容實際上在任意移動設(shè)備上是可訪問的,而且移動設(shè)備 可以充當(dāng)媒體中心的角色,獲得對過多的內(nèi)容的訪問權(quán)限或轉(zhuǎn)發(fā)它,或"將它推出"到一種 或多種顯示設(shè)備,所述顯示設(shè)備包括電視機、計算機顯示器、投影儀或能夠接受、解碼和顯 示流內(nèi)容的任意設(shè)備。盡管有作為客戶端的典型地思想,但移動設(shè)備,更廣泛地說,實際上 任意計算設(shè)備可以充當(dāng)"媒體服務(wù)器"的角色。
[0004] 在典型地服務(wù)器-客戶端遠程圖形處理布置中,在服務(wù)器上存儲、檢索和渲染圖 形內(nèi)容。然后通常以或者由管理設(shè)備指定的或者僅僅是配置的一部分的幀速率,捕獲和編 碼經(jīng)渲染的內(nèi)容的幀。然后將所捕獲的和經(jīng)編碼的幀包化(packetized)并通過網(wǎng)絡(luò)傳送 到客戶端作為視頻流(經(jīng)常包括音頻)。所述客戶端僅僅是對所述視頻流進行解碼并顯示所 述內(nèi)容。對于各種平臺,這樣的"瘦客戶端"應(yīng)用可以是便攜的。
[0005] 隨著移動計算繼續(xù)隨著對內(nèi)容可訪問性和傳播的不斷地關(guān)注而演變,移動設(shè)備的 角色將繼續(xù)擴展。典型的客戶端服務(wù)器分界將逐漸消失,而越來越多的人根據(jù)感興趣的內(nèi) 容,將依靠移動設(shè)備作為他們的客戶端和服務(wù)器。
【發(fā)明內(nèi)容】
[0006] -方面提供了圖形服務(wù)器。在一個實施例中,所述服務(wù)器包括:(1)幀捕獲器,所 述幀捕獲器配置為以幀速率捕獲經(jīng)渲染的內(nèi)容的幀,(2)編碼器,所述編碼器配置為以所述 幀速率編碼所捕獲的幀,和(3)處理器,如果所述經(jīng)渲染的內(nèi)容是至少部分地改變的,則所 述處理器配置為使得經(jīng)編碼的幀被傳送,如果所述經(jīng)渲染的內(nèi)容是未改變的,則所述處理 器配置為使得跳幀信息被傳送,所述跳幀信息配置為使得所述幀捕獲器放棄捕獲,并使得 所述編碼器放棄編碼。
[0007] 另一方面提供了經(jīng)由遠程圖形處理服務(wù)使經(jīng)渲染的內(nèi)容流動(streaming)的方 法,所述方法包括:(1)如果所述經(jīng)渲染的內(nèi)容是未改變的,則繞過所述遠程圖形處理服務(wù) 的幀捕獲和編碼階段,和(2)傳送預(yù)先計算的跳幀信息,所述預(yù)先計算的跳幀信息指示客戶 端重新使用先前所捕獲的、經(jīng)編碼的和傳送的幀。
[0008] 又一方面提供了用于使經(jīng)渲染的視頻流內(nèi)容流動的圖形服務(wù)器。在一個實施例 中,所述服務(wù)器包括:(1)存儲器,所述存儲器配置為存儲指示客戶端重新使用先前所傳送 的視頻流的幀的預(yù)先計算的跳幀信息,(2)圖形渲染器,所述圖形渲染器配置為生成所述經(jīng) 渲染的內(nèi)容,如果所述經(jīng)渲染的內(nèi)容至少部分是新的,并配置為通過控制位指示,和(3)中 央處理單元(CPU),所述中央處理單元配置為使用所述控制位來引導(dǎo)幀捕獲器和編碼放棄 對所述經(jīng)渲染的內(nèi)容的操作,并使得所述預(yù)先計算的跳幀信息向所述客戶端傳送。
【專利附圖】
【附圖說明】
[0009] 現(xiàn)在通過結(jié)合附圖引用以下描述,其中:
[0010] 圖1是服務(wù)器-客戶端遠程圖形處理系統(tǒng)的一個實施例的框圖;
[0011] 圖2是圖形服務(wù)器的一個實施例的框圖;和
[0012] 圖3是用于經(jīng)由遠程圖形處理服務(wù)使經(jīng)渲染的內(nèi)容流動的方法的一個實施例的 流程圖。
【具體實施方式】
[0013] 隨著媒體服務(wù)器的角色開拓到越來越多樣的計算機設(shè)備,出現(xiàn)了先前在常規(guī)的服 務(wù)器-客戶端體制中所排除的局限性。常規(guī)的服務(wù)器位于中心位置、插進墻中充電且典型 地依靠外部提供的網(wǎng)絡(luò)接入、冷卻和可能的存儲。雖然這樣的布置受電源、存儲器或延遲的 限制,但這些限制在充當(dāng)服務(wù)器角色的移動設(shè)備中是更普遍的。
[0014] 包括智能手機、平板、膝上型PC等等移動設(shè)備,通常在某種程度上依靠電池供電。 許多移動設(shè)備還受限于內(nèi)置的存儲器,或至多通過某種形式的諸如SD閃存卡或MicroSD卡 等可移動介質(zhì)來擴展。記住了這些局限性,移動設(shè)備制造商和軟件開發(fā)者謹慎地不引入不 必要的過程或存儲器超高速緩存??紤]到服務(wù)器角色中的移動設(shè)備,即使適度效率的功率 消耗(power consumption)、存儲器帶寬和延遲也變得至關(guān)重要。
[0015] 本文意識到當(dāng)渲染是閑置的且所述經(jīng)渲染的內(nèi)容未改變時,可以繞過遠程圖形處 理的捕獲和編碼階段。在圖形服務(wù)器上,處理典型地分為中央處理單元(CPU)和圖形處理 單元(GPU)。所述GPU實施渲染任務(wù)和幀捕獲,并在一些情況下進行編碼。所述CPU執(zhí)行應(yīng) 用、生成場景數(shù)據(jù)和渲染命令、或可以從存儲器召回內(nèi)容并將它引導(dǎo)到所述GPU,用于渲染。 此外,所述CPU處理所捕獲的和經(jīng)編碼的幀以準(zhǔn)備它們,用于傳送到所述客戶端。在一些實 施例中,所述CPU或者通過啟用和禁用、時鐘頻率縮放、或者通過一些其它機制來管理所述 渲染、捕獲和編碼階段的操作。當(dāng)經(jīng)渲染的內(nèi)容是未改變時,通過檢測,所述捕獲和編碼階 段可以被禁用或至少它們的操作被放慢到與所述內(nèi)容更新速率更可比較的速率。本文進一 步意識到這可以通過維持控制位來完成,當(dāng)所述控制位被設(shè)定時,所述控制位指示新的內(nèi) 容已經(jīng)被渲染。所述控制位可以通過所述渲染階段來維持并通過所述捕獲和編碼階段來讀 取,或所述控制位可以通過所述CPU來維持,所述CPU將基于所述控制位來管理所述捕獲和 編碼階段的操作。
[0016] 本文意識到通過繞過捕獲和編碼,昂貴的存儲器讀/寫周期與編碼所需的處理周 期一起被放棄。這些節(jié)省降低了功率消耗、存儲器帶寬消耗和延遲。
[0017] 盡管服務(wù)器已經(jīng)繞過了不必要的過程,所述客戶端仍然需要以指定的幀速率顯示 幀。本文意識到跳幀信息可以代替所捕獲的和經(jīng)編碼的幀被傳送。所述跳幀典型地構(gòu)建到 用于所述流的無論什么編碼方案中。例如,h. 264標(biāo)準(zhǔn)提供了協(xié)議以指導(dǎo)客戶端重新使用 先前所接收和解碼的幀。也就是說,所述經(jīng)渲染的內(nèi)容沒有改變,則保持顯示當(dāng)前的幀。本 文進一步意識到該跳幀信息可以獨立于所述渲染、捕獲和編碼階段而被預(yù)先計算。例如,每 當(dāng)所述控制位進行指示且所述捕獲和編碼階段被繞過時,所述CPU可以預(yù)先計算h. 264跳 幀信息并簡單地傳送它。
[0018] 本文還意識到當(dāng)所述經(jīng)渲染的內(nèi)容未改變時所獲得的效率,在當(dāng)經(jīng)渲染的內(nèi)容是 新的但是眾所周知的時也可以獲得。在那些情況下,只要有效的編碼(coding)模式可以代 替所捕獲的和經(jīng)編碼的幀被預(yù)先計算,就可以繞過捕獲和編碼。本文進一步意識到當(dāng)移動 設(shè)備是所述服務(wù)器時,所述效率是最有價值的,但這些效率正如適用于常規(guī)的、集中的服務(wù) 器布置一樣。這樣布置的規(guī)??梢赃_到它將證明每個客戶端水平上的功率和存儲器效率的 適度的獲得的這樣的水準(zhǔn)。
[0019] 在描述本文所引入的圖形服務(wù)器和使經(jīng)渲染的內(nèi)容流動的方法的各種實施例之 前,將描述在其內(nèi)所述圖形服務(wù)器和方法可以被體現(xiàn)和實施的服務(wù)器-客戶端遠程圖形處 理系統(tǒng)。
[0020] 圖1是服務(wù)器-客戶端遠程圖形處理系統(tǒng)100的一個實施例的框圖。系統(tǒng)100包 括網(wǎng)絡(luò)110、通過網(wǎng)絡(luò)110,服務(wù)器120和客戶端140進行通信。服務(wù)器120表示內(nèi)容、處理 和渲染資源的中央倉庫。客戶端140是該內(nèi)容和那些資源的用戶。在某些實施例中,服務(wù) 器120是免費可擴展的,并具有通過利用(leveraging)并行和分攤的處理和渲染資源而同 時地提供該內(nèi)容和那些服務(wù)到多個客戶端的能力。除了在服務(wù)器120的功率、存儲器帶寬 和延遲上的任意局限性外,服務(wù)器120的可擴展性受限于網(wǎng)絡(luò)110的容量,因為超過客戶端 數(shù)目的某一閾值,不足的網(wǎng)絡(luò)帶寬需要對所有客戶端的服務(wù)平均地降級。
[0021] 服務(wù)器120包括網(wǎng)絡(luò)接口卡(NIC) 122、中央處理單元(CPU) 124和GPU130。一旦 在服務(wù)器120進行選擇,或在某些實施例中,一旦有來自客戶端140的請求,圖形內(nèi)容經(jīng)由 在CPU124上執(zhí)行的應(yīng)用從存儲器召回。按照用于圖形應(yīng)用的慣例,以游戲為例,CPU124預(yù) 留它自己用于實施高級的操作,諸如在給定的場景中確定對象的位置、動作和碰撞。自這些 高級的操作,CPU124生成渲染命令,當(dāng)所述渲染命令與所述場景數(shù)據(jù)結(jié)合時,所述渲染命令 可以由GPU130實施。例如,渲染命令和數(shù)據(jù)可以定義場景幾何、照明、著色、紋理、動作和用 于場景的攝像機參數(shù)。
[0022] GPU130包括圖形渲染器132、幀捕獲器134和編碼器136。圖形渲染器132根據(jù) 由CPU124所生成的渲染命令而執(zhí)行渲染程序132,產(chǎn)生所述場景的視頻幀流。那些未加工 的視頻幀由幀捕獲器134捕獲,并由編碼器136進行編碼??赡芾弥T如由國際電信聯(lián)盟 電信標(biāo)準(zhǔn)分會所達成的H. 264標(biāo)準(zhǔn)或來自國際標(biāo)準(zhǔn)化組織/國際電工委員會(IS0/IEC)的 MPEG-4高級視頻編碼(AVC)標(biāo)準(zhǔn),編碼器134格式化用于傳輸?shù)奈醇庸さ囊曨l流?;蛘撸?述視頻流可以被編碼成Windows Media Video? (WMV)格式、VP8格式、或任何其它視頻編 碼格式。
[0023] CPU124為傳輸所述經(jīng)編碼的視頻流作準(zhǔn)備,所述經(jīng)編碼的視頻流被傳遞到 NIC122。NIC122包括對經(jīng)由諸如Ethernet、Wi-Fi或互聯(lián)網(wǎng)協(xié)議(IP)等網(wǎng)絡(luò)協(xié)議通過網(wǎng) 絡(luò)110進行通信所必需的電路。NIC122為服務(wù)器120的網(wǎng)絡(luò)接口的軟件層提供物理層和基 底。
[0024] 客戶端140接收所傳送的視頻流用于顯示。客戶端140可以是各種個人計算設(shè)備, 包括:臺式或筆記本個人計算機、平板、智能手機或電視??蛻舳?40包含NIC142、解碼器 144、視頻渲染器146、顯示器148和CPU150。NIC142與NIC122類似,包括通過網(wǎng)絡(luò)110進 行通信所必需的電路,并為客戶端140的網(wǎng)絡(luò)接口的軟件層提供物理層和基底。所傳送的 視頻流由客戶端140通過NIC142接收。CPU150打開(unpack)所接收的視頻流并準(zhǔn)備它用 于解碼。
[0025] 視頻流然后由解碼器144解碼,解碼器144應(yīng)該與編碼器136匹配,因為每個都應(yīng) 該采用相同的格式化或壓縮方案。例如,如果編碼器136采用ITU-T H. 264標(biāo)準(zhǔn),那么解碼 器144也應(yīng)該采用該標(biāo)準(zhǔn)。解碼可以由客戶端CPU或客戶端GPU來實施,這取決于所述物 理客戶端設(shè)備。一旦被解碼,保留在視頻流中的所有的幀都是未加工的經(jīng)渲染的幀。與任 何其它流媒體一樣,所述渲染幀由基本視頻渲染器146處理。所述渲染視頻然后可以顯示 在顯示器148上。
[0026] 已經(jīng)描述了在其內(nèi)所述圖形服務(wù)器和用于使經(jīng)渲染的內(nèi)容流動的方法可以被體 現(xiàn)和實施的服務(wù)器-客戶端遠程圖形處理系統(tǒng),接下來將描述圖形服務(wù)器和方法的各種實 施例。
[0027] 圖2是諸如圖1的服務(wù)器120的圖形服務(wù)器200的一個實施例的框圖。圖形服務(wù) 器200包括NIC122、CPU124和GPU130,圖1的全部。此外,圖形服務(wù)器200包括存儲器210、 數(shù)據(jù)總線220和控制總線230。GPU130包括圖形渲染器132、幀捕獲器134和編碼器136, 也是圖1的。
[0028] 如在圖1的服務(wù)器120中,圖形服務(wù)器200的基本操作包括渲染內(nèi)容、捕獲幀和編 碼幀,用于隨后傳送到客戶端。CPU124、圖形渲染器132、幀捕獲器134和編碼器136都經(jīng)由 數(shù)據(jù)總線220對存儲器210進行讀寫。數(shù)據(jù)總線220是用于移動內(nèi)容穿過所述渲染、捕獲 和編碼過程的主要途徑。數(shù)據(jù)總線220可以用于直接將數(shù)據(jù)從處理單元移入處理單元,但 通常,對于大量的數(shù)據(jù),數(shù)據(jù)通過數(shù)據(jù)總線220從處理單元移入存儲器210。一旦在存儲器 中,附屬到數(shù)據(jù)總線220的任意處理單元都可以對所述數(shù)據(jù)進行訪問。CPU124經(jīng)由控制總 線230管理圖形渲染器132、幀捕獲器134和編碼器136的操作。
[0029] CPU124執(zhí)行應(yīng)用,通過所述應(yīng)用CPU124生成渲染命令且或者生成或者從存儲器 召回用于渲染的場景數(shù)據(jù)。典型地,場景數(shù)據(jù)存儲在存儲器210中,且稍后在渲染時使用。 圖形渲染器132經(jīng)由數(shù)據(jù)總線220,獲得對存儲器210中的場景數(shù)據(jù)的訪問權(quán),并在所述情 景數(shù)據(jù)上實施渲染命令以產(chǎn)生經(jīng)渲染的內(nèi)容。經(jīng)渲染的內(nèi)容經(jīng)由數(shù)據(jù)總線220移入存儲器 210。圖形渲染器132通常只有在"屏幕上"的內(nèi)容已經(jīng)改變時才進行渲染。當(dāng)內(nèi)容未變時, 有多種可用于節(jié)省渲染資源的方法。當(dāng)經(jīng)渲染的內(nèi)容至少部分改變時,設(shè)定控制信號或控 制位。
[0030] 幀捕獲器134和編碼器136配置為以CPU124指定的幀速率進行操作。所述幀速 率經(jīng)常是用戶設(shè)定、服務(wù)質(zhì)量(QoS)過程、服務(wù)器200和所述客戶端之間的協(xié)商或一些其它 配置的結(jié)果。所述幀速率不僅是捕獲和編碼經(jīng)渲染的內(nèi)容的幀的速率,而且也是傳送、和可 能的解碼和顯示的速率。這樣的布置對延遲和次優(yōu)的網(wǎng)絡(luò)條件是敏感的。幀捕獲器134通 過定期地將經(jīng)渲染的內(nèi)容復(fù)制到存儲器210的暫存緩沖區(qū)來"捕獲"經(jīng)渲染的內(nèi)容。在某 些實施例中,當(dāng)新的經(jīng)渲染的內(nèi)容提交到所述捕獲階段時,設(shè)定所述控制位。一旦捕獲到, 則清除所述控制位。如果當(dāng)幀捕獲器134轉(zhuǎn)向復(fù)制經(jīng)渲染的內(nèi)容時,所述控制位被清除, 那么幀捕獲器知道所述經(jīng)渲染的內(nèi)容自上次捕獲以后是沒有改變的。在圖2的實施例中, CPU124維持所述控制位。當(dāng)圖形渲染器132產(chǎn)生新的渲染內(nèi)容時,設(shè)定所述控制位。然后 CPU124使用所述控制位來經(jīng)由控制總線230啟用或禁用幀捕獲器134和編碼器136?;?者,CPU124可以基于所述控制位使用時鐘頻率縮放來管理幀捕獲器134和編碼器136操作 的速率。時鐘頻率縮放允許定時設(shè)備根據(jù)它的工作負荷和工作能力加速或放慢。在這種情 況下,CPU124可以降低幀捕獲器134的操作速率,從而直到所渲染的內(nèi)容至少部分改變時 才捕獲幀。這種幀捕獲階段的繞過通過去掉了不必要的讀寫周期而減少了功率的消耗和存 儲器帶寬。
[0031] 編碼器136經(jīng)由數(shù)據(jù)總線220獲得對存儲器210中的暫存緩沖區(qū)的訪問權(quán)限,并 編碼所存儲的幀。例如,許多視頻流實現(xiàn)使用h. 264編碼。然后將所述經(jīng)編碼的幀經(jīng)由數(shù)據(jù) 總線220寫到存儲器210中的幀緩沖區(qū)。與幀捕獲器134類似,編碼器136的操作通過控 制總線230由CPU124管理。CPU124基于所述控制位降低編碼器136操作的速率。如果所 述控制位被設(shè)定,那么所述經(jīng)渲染的內(nèi)容是至少部分改變的,且新的數(shù)據(jù)已寫到存儲器210 中的暫存緩沖區(qū)。如果所述控制位是清除的(clear),那么所述經(jīng)渲染的內(nèi)容是未改變的, 且新的數(shù)據(jù)沒有寫到存儲器210中的暫存緩沖區(qū)。繞過所述編碼階段,這樣通過去掉不必 要的處理而降低了功率消耗。
[0032] CPU124經(jīng)由數(shù)據(jù)總線220檢索經(jīng)編碼的幀,并準(zhǔn)備或"封裝(packs)"它們,用于經(jīng) 由NIC122傳輸。這個準(zhǔn)備典型地包括從所述幀緩沖區(qū)對所述數(shù)據(jù)進行包化(packetizing) 并可能附加地針對所述傳送協(xié)議進行編碼。當(dāng)繞過捕獲和編碼階段時,如經(jīng)由控制總線230 由所述控制位所指示的,沒有新的幀準(zhǔn)備好封裝和傳送。相反,跳幀信息傳送到所述客戶 端。所述跳幀信息向所述客戶端指示不需要更新,且所述客戶端應(yīng)該繼續(xù)顯示或使用所述 先前的幀。不管是否改變、渲染、捕獲和編碼內(nèi)容,所述客戶端都維持它的幀速率。所述跳 幀信息通常構(gòu)建到所述編碼方案中,例如h. 264跳幀信息。所述跳幀信息是固定的信息,且 可以在渲染時間之前由CPU124預(yù)先計算并存儲在存儲器210中。一旦計算出,每當(dāng)屏幕上 的內(nèi)容是閑置的或未改變的時,CPU124可以經(jīng)由NIC122再傳送所述跳幀信息。
[0033] 圖3是用于經(jīng)由遠程圖形處理服務(wù)使經(jīng)渲染的內(nèi)容流動的方法的一個實施例的 流程圖。所述方法開始于開始步驟310。在檢測步驟320,做出關(guān)于所述經(jīng)渲染的幀是否未 改變的結(jié)論。根據(jù)該結(jié)論驅(qū)動控制信號。在某些實施例中,所述控制信號是控制位,所述控 制位可以嵌入到控制信息中或形成它自己的信息。所述控制信號還可以是分布到一個或多 個處理設(shè)備的獨立的信號。在決策步驟330,基于所述檢測步驟320的控制信號做出決策。 如果所述控制信號指示所述經(jīng)渲染的內(nèi)容已經(jīng)至少部分地改變,那么所述方法進入到捕獲 和編碼步驟340以及傳送幀步驟350。如果所述控制信號指示所述經(jīng)渲染的內(nèi)容是未改變 的,那么所述方法進入到繞過步驟360和傳送跳幀步驟370。
[0034] 在替代性實施例中,所述經(jīng)渲染的內(nèi)容可以是部分改變的,但所述經(jīng)渲染的內(nèi)容 是眾所周知的且可以預(yù)先計算有效的編碼模式以表示它。在那種情況下,在那些替代性實 施例中,所述方法將進行到繞過步驟360。傳送所述預(yù)先計算的幀而不是進行到傳送跳幀步 驟370。這降低了在捕獲和編碼時通常經(jīng)歷的功率消耗、存儲器帶寬和延遲。
[0035] 繼續(xù)圖3的實施例,當(dāng)所述經(jīng)渲染的內(nèi)容是至少部分改變的時,在捕獲和編碼步 驟340捕獲和編碼所述經(jīng)渲染的內(nèi)容的幀。幀捕獲典型地以指定的幀速率發(fā)生。編碼也照 著做,以所述指定的幀速率編碼所捕獲的幀。在傳送幀步驟350,將所捕獲的和經(jīng)編碼的幀 向期待所述指定幀速率的幀的客戶端傳送。然后所述方法在結(jié)束步驟380結(jié)束。
[0036] 當(dāng)所述經(jīng)渲染的內(nèi)容未改變時,渲染是閑置的,且新的經(jīng)渲染的內(nèi)容沒有被提交 到所述捕獲和編碼階段。在繞過步驟360繞過所述捕獲和編碼階段。然后在傳送跳幀步驟 370,將預(yù)先計算的跳幀信息傳向所述客戶端。當(dāng)所述客戶端接收所述跳幀信息時,所述客 戶端將它解譯為指令以繼續(xù)顯示、或重新使用所述先前所捕獲的和經(jīng)編碼的幀。所述跳幀 信息可以存儲在存儲器中,在啟動或場景載入(scene-load)時間,或在渲染、捕獲和編碼之 前的任意其它時間進行計算。然后所述方法在步驟380結(jié)束。
[0037] 與本申請相關(guān)的本領(lǐng)域技術(shù)人員應(yīng)該理解可以對所描述的實施例做出其它和進 一步的增加、刪除、替代和修改。
【權(quán)利要求】
1. 一種圖形服務(wù)器,包括: 幀捕獲器,所述幀捕獲器配置為以幀速率捕獲經(jīng)渲染的內(nèi)容的幀; 編碼器,所述編碼器配置為以所述幀速率編碼所捕獲的幀;和 處理器,如果所述經(jīng)渲染的內(nèi)容是至少部分地改變的,則所述處理器配置為使得經(jīng)編 碼的幀被傳送,且如果所述經(jīng)渲染的內(nèi)容是未改變的,則所述處理器配置為使得跳幀信息 被傳送,所述跳幀信息配置為使得所述幀捕獲器放棄捕獲,并使得所述編碼器放棄編碼。
2. 如權(quán)利要求1所述的圖形渲染服務(wù)器,其中,所述圖形渲染服務(wù)器是移動計算設(shè)備。
3. 如權(quán)利要求1所述的圖形渲染服務(wù)器,其中,所述幀捕獲器和所述編碼器包含在圖 形處理單元內(nèi),所述圖形處理單元可通信地耦連到所述處理器。
4. 如權(quán)利要求1所述的圖形渲染服務(wù)器,其中,所述處理器包含所述幀捕獲器和所述 編碼器。
5. 如權(quán)利要求1所述的圖形渲染服務(wù)器,所述圖形渲染服務(wù)器進一步包括圖形渲染 器,所述圖形渲染器可操作為生成所述經(jīng)渲染的內(nèi)容,且當(dāng)所述經(jīng)渲染的內(nèi)容已經(jīng)至少部 分改變時,所述圖形渲染器配置為進行識別。
6. 如權(quán)利要求5所述的圖形渲染服務(wù)器,其中,當(dāng)新的內(nèi)容被渲染并提交到所述幀捕 獲器時,所述圖形渲染器配置為設(shè)定控制位,且所述處理器配置為使用所述控制位來控制 所述幀捕獲器和所述編碼器。
7. 如權(quán)利要求1所述的圖形渲染服務(wù)器,其中所述跳幀信息是預(yù)先計算的H. 264跳信 息。
8. -種用于使視頻流的經(jīng)渲染的內(nèi)容流動的圖形服務(wù)器,包括: 存儲器,所述存儲器配置為存儲預(yù)先計算的跳幀信息,所述預(yù)先計算的跳幀信息指示 客戶端重新使用所述視頻流的先前所傳送的幀; 圖形渲染器,所述圖形渲染器配置為生成所述經(jīng)渲染的內(nèi)容,且如果所述經(jīng)渲染的內(nèi) 容至少部分是新的,則所述圖形渲染器配置為通過控制位進行指示;和 中央處理單元(CPU),所述中央處理單元配置為使用所述控制位來引導(dǎo)幀捕獲器和編 碼器放棄對所述經(jīng)渲染的內(nèi)容的操作,并使得所述預(yù)先計算的跳幀信息向所述客戶端傳 送。
9. 如權(quán)利要求8所述的圖形服務(wù)器,其中所述圖形渲染器在圖形處理單元(GPU)內(nèi)實 現(xiàn)。
10. 如權(quán)利要求9所述的圖形服務(wù)器,其中,所述GPU包含所述幀捕獲器和所述編碼器。
【文檔編號】H04L29/06GK104243440SQ201310746848
【公開日】2014年12月24日 申請日期:2013年12月30日 優(yōu)先權(quán)日:2013年6月21日
【發(fā)明者】托馬斯·梅耶爾, 沙拉德·古普塔, 張茺, 巴努·穆爾蒂, 卡蒂克·維賈雅 申請人:輝達公司