用于云處理和疊加遠程處理應用的流式視頻幀上的內容的系統和方法
【專利說明】用于云處理和疊加遠程處理應用的流式視頻幀上的內容的 系統和方法
【背景技術】
[0001] 存在用于執行和渲染視頻游戲的若干模型。在最簡單的模型中,在游戲玩家的本 地計算設備上執行和渲染游戲。在另一種模型中,在中央服務器處維持游戲狀態,并且通過 計算網絡將游戲狀態傳達至發生視頻渲染的客戶端。這種模型通常由多玩家游戲使用,在 多玩家游戲中,游戲狀態取決于通過計算網絡接收的來自多個游戲玩家的輸入。在第三模 型中,在中央服務器處維持游戲狀態,所述中央服務器還對視頻進行渲染以便作為視頻流 通過計算網絡遞送至客戶端。
【發明內容】
[0002] 本文所公開的實施方案涉及用于應用的云處理以及云處理的視頻幀到遠程客戶 端的流式傳輸的系統和方法。云處理可以包括應用,所述應用處理并且輸出第一應用(例 如,視頻游戲)的視頻幀以便檢查圖像內容,并且基于所述檢查,可以將疊加內容整合到正 被轉移至遠程客戶端的視頻幀中。在一個實施方案中,疊加內容可以與由第一應用輸出的 現有圖像內容合并。所述合并可以以各種方式進行處理,并且非限制性地,合并可以包括替 換特定幀或幀集中的像素、追蹤所檢測的圖像對象以及針對所檢測的圖像對象在它們從一 個幀移動到另一個幀或隨時間推移移動時替換像素。
[0003] 在一些實例中,優化疊加過程以使得由客戶端設備的用戶接收到的視頻幀將不會 檢測到正在執行疊加處理(例如,在客戶端的顯示器上),并且輸出看起來像是原始應用 (例如,第一應用)產生的幀。在各種實施方案中,第一應用可以是視頻游戲應用。在允許 在線網絡游戲的系統中,可以為具有賬戶的用戶提供用于選擇的大型視頻游戲庫,所述視 頻游戲可以被認為是第一應用。在這種上下文中,可以為許多用戶提供賬戶并且許多用戶 可以同時選擇游戲并且進行游戲、單獨地或在多玩家模式中與社交網絡的朋友進行游戲。 在第一應用的遠程執行過程中,一個或多個遠程執行應用檢查并且處理作為第一應用的輸 出的視頻幀。這些遠程執行應用執行疊加過程并且可以與游戲進行同步以便提供最初不是 原始應用的一部分的新體檢。
[0004] 如以下將討論的,遠程地處理應用的服務器可以被稱為云處理系統。云處理系統 可以利用許多服務器,這些服務器可以使用虛擬化硬件和軟件,并且云處理系統可以分布 在多于一個數據中心中。適當放置的數據中心允許通過它們的地理分布來減少流式傳輸的 延遲。在一些實施方案中,可以使用負載均衡來減少延遲并且改進遠程游戲進行的性能。
[0005] 在一個實施方案中,公開了一種用于增強遠程服務應用的系統。所述系統包括第 一應用,所述第一應用在一個或多個計算系統上執行以便生成用于渲染與第一應用執行相 關聯的圖形圖像的一系列原始幀像素數據集。所述系統還包括第二應用,所述第二應用在 一個或多個計算系統上執行以便檢測存在于所述系列原始幀像素數據集中的一個或多個 關鍵圖形圖像。在檢測到一個或多個關鍵圖形圖像時,第二應用引導替代像素數據對所述 系列原始幀像素數據集中的像素數據的一部分的替換,從而生成用于代替所述系列原始幀 像素數據集進行編碼的一系列修改的幀像素數據集。
[0006] 在一個實施方案中,公開了一種用于增強遠程服務應用的方法。所述方法包括搜 索由應用生成的視頻幀以檢測關鍵圖形圖像。所述方法包括檢測視頻幀中的關鍵圖形圖 像。所述方法包括獲得表示用戶的通用成就狀態的疊加圖像。所述方法包括使用戶的所確 定通用成就狀態與存儲在數據存儲設備上的許多預定義疊加圖像中的一個或多個相關聯。 所述方法包括從數據存儲設備捕獲針對與用戶的所確定通用成就狀態相關聯的許多預定 義疊加圖像中的至少一個的疊加物(overlay)構造數據。所述方法還包括將所捕獲的疊加 物構造數據供應至疊加邏輯以便將預定義疊加圖像中的至少一個插入視頻幀中。
[0007] 在一個實施方案中,公開了一種存儲有用于增強遠程服務應用的程序指令的數據 存儲設備。所述數據存儲設備包括用于搜索由應用生成的視頻幀以檢測關鍵圖形圖像的程 序指令。所述數據存儲設備包括用于檢測視頻幀中的關鍵圖形圖像的程序指令。所述數據 存儲設備包括用于獲得表示用戶的通用成就狀態的疊加圖像的程序指令。所述數據存儲設 備包括用于使用戶的所確定通用成就狀態與存儲在數據存儲設備上的許多預定義疊加圖 像中的一個或多個相關聯的程序指令。所述數據存儲設備包括用于從所述數據存儲設備捕 獲針對與用戶的所確定通用成就狀態相關聯的許多預定義疊加圖像中的至少一個的疊加 物構造數據的程序指令。所述數據存儲設備還包括用于將所捕獲的疊加物構造數據供應至 疊加邏輯以便將預定義疊加圖像中的至少一個插入視頻幀中的程序指令。
[0008] 根據以示例方式示出本發明的結合附圖進行的以下詳細描述,本發明的其它方面 將變得更加明白。
【附圖說明】
[0009] 圖1是根據本發明的各種實施方案的游戲系統的框圖。
[0010] 圖2是被配置成服務于多個視頻游戲的視頻源的實施方案的框圖。
[0011] 圖3示出根據本發明的各種實施方案的游戲視頻(視頻幀)上的疊加物。
[0012] 圖4示出根據本發明的各種實施方案的被配置用于將用戶輸入映射到游戲命令 的輸入映射表的一部分。
[0013] 圖5示出根據本發明的各種實施方案的使用疊加物的方法。
[0014] 圖6示出根據本發明的示例性實施方案的視頻源的用于包括視頻增強邏輯的擴 展。
[0015] 圖7示出對應于將要由增強邏輯進行處理的視頻幀數據的視頻幀圖像的實例。
[0016] 圖8示出與圖7的示例性視頻幀圖像相關聯的示例性目標像素模式。
[0017] 圖9示出將要以疊加物構造數據的形式從疊加物生成邏輯傳達至疊加邏輯的疊 加圖像。
[0018] 圖10示出在響應于關鍵檢測邏輯檢測到對應于如圖8中所示的關鍵圖形圖像的 目標像素模式的存在而插入疊加圖像之后的圖7的視頻幀。
[0019] 圖11示出根據本發明的一個實施方案的用于增強遠程服務應用的系統。
[0020] 圖12示出根據本發明的一個實施方案的用于增強遠程服務應用的方法。
[0021] 圖13示出根據本發明的一個實施方案的用于生成和執行遠程服務計算機應用的 云計算系統的圖解。
【具體實施方式】
[0022] 在以下描述中,闡明了眾多具體細節以便提供對本發明的徹底理解。然而,對于本 領域的技術人員而言將明顯的是,可以在不具有這些具體細節中的一些或全部的情況下實 踐本發明。在其它情況下,未詳細描述眾所周知的過程操作以免不必要地模糊本發明。
[0023] 由在第一計算系統(即,服務器系統/云系統)上執行的計算機應用生成的、用于 通過網絡傳輸的、將由第二計算系統顯示的顯示幀圖像的像素數據集在從計算機應用到網 絡的路由中被攔截。識別是由所攔截的像素數據集的目標部分組成的,所述目標部分對應 于顯示幀圖像中待修改的視覺內容。生成針對顯示幀圖像的已修正像素數據集,其中所攔 截像素數據的目標部分被修改以改變顯示幀圖像中的對應視覺內容。提供代替所攔截像素 數據集的已修正像素數據集,用于通過網絡傳輸來由第二計算系統進行顯示。計算機應用 未察覺到像素數據集的攔截和修正。
[0024] 根據本發明的一個實施方案,本文公開了一種用于增強遠程服務應用的系統。所 述系統包括幀增強模塊,所述幀增強模塊被定義成攔截由在第一計算系統上執行的計算機 應用生成的顯示幀圖像的像素數據集,用于通過網絡傳輸來由第二計算系統(即,由用戶 的計算系統)進行顯示。幀增強模塊被定義成識別所攔截像素數據集的對應于顯示幀圖像 中待修改的視覺內容(即,對應于關鍵圖形圖像)的目標部分。幀增強模塊被定義成生成 針對顯示幀圖像的已修正像素數據集,其中所攔截像素數據的目標部分被修改以改變顯示 幀圖像中的對應視覺內容。幀增強模塊被定義成提供代替所攔截像素數據集的已修正像素 數據集,用于通過網絡傳輸來由第二計算系統進行顯示。幀增強模塊被定義成與計算機應 用是分開的并且獨立于計算機應用進行操作。
[0025] 在各種實施方案中,以上提及的第一計算系統(計算機應用在其上執行)是提供 計算機應用在其上執行的虛擬機的云計算平臺,并且網絡是互聯網。此外,在各種實施方案 中,計算機應用是計算機游戲應用。
[0026] 在一個示例性實施方案中,所攔截像素數據集的目標部分對應于顯示幀圖像內的 表示計算機應用的用戶的視覺內容。可以生成已修正像素數據集,以便修改將通過渲染所 攔截像素數據集的目標部分進行描繪的對象的外觀。此外,可以生成已修正像素數據集,以 便利用對不同對象的描繪來代替將通過渲染所攔截像素數據集的目標部分進行描繪的對 象。此外,可以生成已修正像素數據集,以便描繪疊加在圖像上的對象,所述對象將通過渲 染所攔截像素數據集的目標部分進行描繪。
[0027] 在各種實施方案中,根據第一幀速率通過網絡來傳輸顯示幀圖像的像素數據集, 并且將幀增強模塊定義成根據大于第一幀速率的第二幀速率來生成針對顯示幀圖像的已 修正像素數據集。例如,在一個實施方案中,第二幀速率是第一幀速率的兩倍。
[0028] 用于增強遠程服務應用的系統還可以包括應用擴展模塊,所述應用擴展模塊被定 義成提供用于處理與如由第二計算系統顯示的所攔截像素數據的已修改目標部分相關的 用戶輸入信號的計算機可執行指令。計算機應用在未察覺到由應用擴展模塊提供的計算機 可執行指令的情況下執行。在一些情況下,幀增強模塊可以被定義成基于從應用擴展模塊 接收到的指示而生成已修正像素數據集,所述已修正像素數據集是處理與已由第二計算系 統顯示的所攔截像素數據的先前已修改目標部分相關的用戶輸入信號的結果。
[0029] -種用于增強遠程服務應用的方法包括:在第一計算系統(即,服務器系統/云系 統)上執行計算機應用以生成顯示幀圖像的像素數據集,用于通過網絡傳輸來由第二計算 系統(即,用戶的計算系統)進行顯示。所述方法包括用于攔截由計算機應用生成的顯示 幀圖像的像素數據集的操作。應當理解,計算機應用在未察覺到像素數據集攔截的情況下 執行。所述方法還包括用于識別所攔截像素數據集的對應于顯示幀圖像中待修改的視覺內 容的目標部分的操作。所述方法還包括用于生成針對顯示幀圖像的已修正像素數據集的操 作,其中所攔截像素數據的目標部分被修改以改變顯示幀圖像中的對應視覺內容。所述方 法還包括用于代替所攔截像素數據集、通過網絡傳輸已修正像素數據集以便由第二計算系 統顯示的操作。
[0030] 在上述方法的各種實施方案中,第一計算系統是提供計算機應用在其上執行的虛 擬機的云計算平臺,并且網絡是互聯網。此外,計算機應用可以是計算機游戲應用。在一些 情況下,所攔截像素數據集的目標部分對應于顯示幀圖像內的表示計算機應用的用戶的視 覺內容。
[0031] 在一些實施方案中,計算機應用根據第一幀速率生成顯示幀圖像的像素數據集, 并且根據大于第一幀速率的第二幀速率來生成針對顯示幀圖像的已修正像素數據集。隨 后,代替所攔截像素數據集,根據第一幀速率通過網絡來傳輸已修正像素數據集。在一些實 施方案中,第二幀速率是第一幀速率的兩倍。
[0032] 所述方法還可以包括:處理與如由第二計算系統顯示的所攔截像素數據的已修改 目標部分相關的用戶輸入信號。應當理解,計算機應用在未察覺到對與所攔截像素數據的 已修改目標部分相關的用戶輸入信號的處理的情況下執行。在一些實施方案中,已修正像 素數據集是基于處理與已由第二計算系統顯示的所攔截像素數據的先前已修改目標部分 相關的用戶輸入信號的結果生成的。
[0033] 圖1是根據本發明的各種實施方案的游戲系統100的框圖。游戲系統100被配 置成例如通過網絡115來向一個或多個客戶端