TWI649656B - 顯像系統、控制方法及儲存媒體 - Google Patents

顯像系統、控制方法及儲存媒體 Download PDF

Info

Publication number
TWI649656B
TWI649656B TW103125492A TW103125492A TWI649656B TW I649656 B TWI649656 B TW I649656B TW 103125492 A TW103125492 A TW 103125492A TW 103125492 A TW103125492 A TW 103125492A TW I649656 B TWI649656 B TW I649656B
Authority
TW
Taiwan
Prior art keywords
server
development
data
developing
imaging
Prior art date
Application number
TW103125492A
Other languages
English (en)
Other versions
TW201525712A (zh
Inventor
珍 弗朗索瓦F 福廷
Original Assignee
日商史克威爾 艾尼克斯控股公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日商史克威爾 艾尼克斯控股公司 filed Critical 日商史克威爾 艾尼克斯控股公司
Publication of TW201525712A publication Critical patent/TW201525712A/zh
Application granted granted Critical
Publication of TWI649656B publication Critical patent/TWI649656B/zh

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/355Performing operations on behalf of clients with restricted processing capabilities, e.g. servers transform changing game scene into an encoded video stream for transmitting to a mobile phone or a thin client
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/16Indexing scheme for image data processing or generation, in general involving adaptation to the client's capabilities
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Processing Or Creating Images (AREA)
  • Image Generation (AREA)

Abstract

於一顯像系統中,其包括:一中央伺服器,其讓多個顯像伺服器中的其中一者執行一畫面的顯像處理;以及一儲藏裝置,其儲存用於該顯像處理的資源資料並且該些顯像伺服器能夠存取該儲藏裝置。該中央伺服器以發送自一客端裝置的請求為基礎傳送資源資料給該儲藏裝置,以及產生顯像命令並且傳送該些命令給該多個顯像伺服器中的其中一者,該些顯像命令包含辨識被儲存在該儲藏裝置之中的資源資料的辨識資訊。該儲藏裝置結合該辨識資訊來儲存該資源資料。以及,該顯像伺服器從該儲藏裝置處接收由被併入在該些已收到的顯像命令中的辨識資訊所辨識的資源資料並且將該資料載入至一記憶體之中,以及利用該被載入的資源資料來顯像一畫面。

Description

顯像系統、控制方法及儲存媒體
本發明大體上關於顯像系統、該顯像系統的控制方法及儲存媒體。
近年來已經有人提出雲端遊戲系統(cloud gaming system)。根據雲端遊戲系統,即使電子裝置(客端)沒有足夠的顯像能力,使用者仍能藉由使用該裝置來體驗任何遊戲。於一雲端遊戲系統中,遊戲的處理係在伺服器中實施,而客端裝置(例如,電子裝置)則能夠藉由透過網路傳送該遊戲的運算輸入給該伺服器從該伺服器處接收在其中反映該運算輸入的遊戲畫面作為串流格式的視訊資料。就雲端遊戲系統來說,對應於複數個客端裝置的遊戲畫面之產生係平行實施,且因此需要同步計算能力,且因此,為實施負載分配,可能會考量一種在兩個伺服器之間分開扮演不同角色的配置,一伺服器(CPU伺服器)實施該遊戲的基本計算,而一伺服器(圖形處理單元伺服器)則藉由以一圖形處理單元(GPU)來顯像處理而產生遊戲畫面,兩個伺服器實體上為分開。多個GPU伺服器可以被配置成用以連接至該CPU伺服器,且於此些情況中,該CPU伺服器可以指定該些GPU伺服器遊戲畫面產生中的其中一個遊戲畫面在連接狀態中被提供至客端裝置,並且可以傳送顯像命令給該GPU伺服器。
請注意,於存在多個GPU伺服器的情況中,當考量到倘若 必須改變資料的話更新該資料所需要的工作量、提供每一個GPU伺服器能夠儲存所有資源資料之儲存體所帶來的成本、以及類似的因素,儲存用於顯像處理的顯像物件資料(資源資料)在所有該些GPU伺服器中並不實際。 據此,該CPU伺服器必須傳送顯像命令以及用於顯像處理的資源資料。就在方面來說,其雷同於網路遊戲(Web game),不同的係,接收該資源資料的客端會實施顯像處理。另外,於可以執行過去發行之用於家用視訊遊戲機、PC、行動裝置、…等的遊戲的雲端遊戲系統的施行情況中,該遊戲的來源碼以及所有的資源資料並沒有被接收及編譯至在該伺服器中運算的應用之中;確切地,在其所運用的格式中,該遊戲的碟片影像資料或二進位資料係在該家用視訊遊戲機的模擬環境之中被執行。於此些情況中,藉由在模擬環境中執行遊戲,必要的資源資料便能夠從碟片影像資料或二進位資料處獲得成為在該遊戲裝置中的載入運算的模擬結果。
換言之,於過去發行之用於PC、家用視訊遊戲機、…等的 遊戲被挑選用於雲端遊戲系統的情況中,因為該資源資料僅能夠在處理的中間被獲取以便在CPU伺服器中執行該遊戲,所以,當讓一外部GPU伺服器來顯像時,必須傳送該資源資料。
然而,特別於該系統被配置成使得複數個GPU伺服器被連 接至一CPU伺服器的情況中,因為資源資料會被平行傳送至該複數個GPU伺服器中的每一者,所以,通信頻寬的使用量此時可能會超過實際的限制量。於此些情況中,在傳送該資源資料至GPU伺服器中會發生延遲,且因此,在客端裝置中提供遊戲畫面會發生延遲,並且可能減少使用者對該遊 戲的興趣,或者,該遊戲本身會執行失敗。另一方面,於雲端遊戲系統的實施例中,可以想像的係,系統將被配置成能夠提供預設類型的遊戲。換言之,使用該客端裝置的使用者能夠藉由將他或她的裝置連接至該伺服器並且從事前已準備的遊戲中選擇他或她希望玩的遊戲而在該CPU伺服器中起始該遊戲的執行。依此方式,於該系統中,因為相同遊戲的遊戲畫面可能會被提供至複數個客端裝置,所以,相同的資源資料可能會被用於被提供至不同客端裝置的遊戲畫面的顯像處理。
根據本發明的其中一項觀點提供一種顯像系統,其包括:一中央伺服器,其會讓被連接至該中央伺服器的複數個顯像伺服器中的其中一者執行一畫面的顯像處理,該畫面對應於發送自一客端裝置的畫面提供請求;以及一儲藏裝置,其會儲存用於該顯像處理的必要資源資料並且該複數個顯像伺服器能夠存取該儲藏裝置。其中,該中央伺服器包括:請求接收構件,用於從客端裝置處接收畫面提供請求;資源傳送構件,用於以被該請求接收構件所收到的畫面提供請求為基礎來傳送對應於該畫面提供請求之用於顯像處理的必要資源資料給該儲藏裝置;以及命令傳送構件,用於產生顯像命令以及用於傳送該些命令給該複數個顯像伺服器中的其中一者,該些顯像命令包含辨識被儲存在該儲藏裝置之中的必要資源資料的辨識資訊。其中,該儲藏裝置包括:儲存構件,用於結合該辨識資訊來儲存該資源傳送構件所傳送的必要資源資料。且其中,該顯像伺服器包括:命令接收構件,用以從該中央伺服器處接收顯像命令;載入構件,用以從該儲藏裝置處接收由被併入在該些已收到的顯像命令中的辨識資訊所辨識 的必要資源資料並且用於將該資料載入至一記憶體之中;顯像構件,用於以該些已收到的顯像命令為基礎利用被載入於該記憶體之中的必要資源資料來執行顯像處理並且顯像一對應於該畫面提供請求的畫面;以及畫面傳送構件,用於傳送該已顯像的畫面給一傳送該畫面提供請求的客端裝置。
根據本發明的另一項觀點提供一種顯像系統的控制方法,該 顯像系統包括:一中央伺服器,其會讓被連接至該中央伺服器的複數個顯像伺服器中的其中一者執行一畫面的顯像處理,該畫面對應於發送自一客端裝置的畫面提供請求;以及一儲藏裝置,其會儲存用於該顯像處理的必要資源資料並且該複數個顯像伺服器能夠存取該儲藏裝置。該方法包括下面步驟:該中央伺服器從客端裝置處接收畫面提供請求;該中央伺服器以所收到的畫面提供請求為基礎來傳送對應於該畫面提供請求之用於顯像處理的必要資源資料給該儲藏裝置;該儲藏裝置結合用以辨識該中央伺服器所傳送的必要資源資料的辨識資訊來儲存該必要資源資料,該中央伺服器產生顯像命令以及傳送該些命令給該複數個顯像伺服器中的其中一者,該些顯像命令包含該辨識資訊,該顯像伺服器從該中央伺服器處接收顯像命令;該顯像伺服器從該儲藏裝置處接收由被併入在該些已收到的顯像命令中的辨識資訊所辨識的必要資源資料並且將該資料載入至一記憶體之中;該顯像伺服器以該些已收到的顯像命令為基礎利用被載入於該記憶體之中的必要資源資料來執行顯像處理並且顯像一對應於該畫面提供請求的畫面;以及該顯像伺服器傳送該已顯像的畫面給一傳送該畫面提供請求的客端裝置。
熟習本技術的人士配合隨附圖式閱覽本發明之特定實施例 的下面說明便會明白本發明的前述與其它觀點及特點。
10‧‧‧使用者資料庫
100‧‧‧伺服器系統
1201‧‧‧客端裝置
120N‧‧‧客端裝置
130‧‧‧網際網路
1401‧‧‧客端裝置輸入
1402‧‧‧客端裝置輸入
140N‧‧‧客端裝置輸入
1501‧‧‧媒體輸出
150N‧‧‧媒體輸出
200C‧‧‧計算伺服器
200R‧‧‧顯像伺服器
200H‧‧‧混合伺服器
204‧‧‧顯像命令集
2041‧‧‧顯像命令集
2042‧‧‧顯像命令集
204M‧‧‧顯像命令集
2051‧‧‧視訊資料串流
2052‧‧‧視訊資料串流
205N‧‧‧視訊資料串流
2061‧‧‧圖形輸出串流
2062‧‧‧圖形輸出串流
206N‧‧‧圖形輸出串流
210C1‧‧‧網路介面構件(NIC)
210C2‧‧‧網路介面構件(NIC)
210R1‧‧‧網路介面構件(NIC)
210R2‧‧‧網路介面構件(NIC)
210H‧‧‧網路介面構件(NIC)
220C‧‧‧中央處理單元(CPU)
220R‧‧‧中央處理單元(CPU)
220H‧‧‧中央處理單元(CPU)
222C‧‧‧中央處理單元(CPU)
222R‧‧‧中央處理單元(CPU)
222H‧‧‧中央處理單元(CPU)
230C‧‧‧隨機存取記憶體(RAM)
230R‧‧‧隨機存取記憶體(RAM)
230H‧‧‧隨機存取記憶體(RAM)
240R‧‧‧圖形處理單元(GPU)
240H‧‧‧圖形處理單元(GPU)
242R‧‧‧圖形處理單元(GPU)核心
242H‧‧‧圖形處理單元(GPU)核心
246R‧‧‧視訊隨機存取記憶體(VRAM)
246H‧‧‧視訊隨機存取記憶體(VRAM)
250R‧‧‧圖形處理單元(GPU)
250H‧‧‧圖形處理單元(GPU)
252R‧‧‧圖形處理單元(GPU)核心
252H‧‧‧圖形處理單元(GPU)核心
256R‧‧‧視訊隨機存取記憶體(VRAM)
256H‧‧‧視訊隨機存取記憶體(VRAM)
260‧‧‧網路
270‧‧‧顯像命令產生器
280‧‧‧顯像單元
285‧‧‧視訊編碼器
300A‧‧‧主遊戲處理
300B‧‧‧圖形控制處理
500‧‧‧資源儲藏器
520‧‧‧CPU伺服器
521‧‧‧請求接收器
522‧‧‧命令產生器
523‧‧‧資料傳送器
540a‧‧‧GPU伺服器
540b‧‧‧GPU伺服器
540n‧‧‧GPU伺服器
541‧‧‧命令接收器
542‧‧‧資料獲取器
543‧‧‧顯像器/傳送器
550‧‧‧用於提供影像的請求
560‧‧‧資源資料
565a‧‧‧資源資料
565b‧‧‧資源資料
565n‧‧‧資源資料
570a‧‧‧顯像命令
570b‧‧‧顯像命令
570n‧‧‧顯像命令
575a‧‧‧資源ID
575b‧‧‧資源ID
575n‧‧‧資源ID
740a‧‧‧第一GPU伺服器
740b‧‧‧第二GPU伺服器
741‧‧‧非資源資料傳送器
742‧‧‧非資源資料獲取器
770a‧‧‧顯像命令
770b‧‧‧顯像命令
780‧‧‧非資源資料
785‧‧‧非資源資料
801‧‧‧客端CPU
802‧‧‧客端儲存媒體
803‧‧‧客端RAM
804‧‧‧客端通信單元
805‧‧‧客端解碼器
806‧‧‧客端顯示器
807‧‧‧客端輸入單元
在隨附圖式中:圖1A所示的係根據本發明一非限制性實施例之包含一伺服器系統的以雲端為基礎的視訊遊戲系統架構的方塊圖。
圖1B所示的係根據本發明一非限制性實施例之圖1A的以雲端為基礎的視訊遊戲系統的方塊圖,圖中顯示在玩遊戲期間於資料網路上和客端裝置集的互動。
圖2A所示的係根據本發明一非限制性實施例之圖1A與1B的架構的各種實體構件的方塊圖。
圖2B所示的係圖2A的變化例。
圖2C所示的係在圖1A與1B的架構中的伺服器系統的各種模組的方塊圖,其能夠藉由圖2A或2B的實體構件來施行並且可以運作在玩遊戲期間。
圖3A至3C所示的係根據本發明非限制性實施例之由一顯像命令產生器來實現的一組視訊遊戲處理之執行的流程圖。
圖4A與4B所示的分別係根據本發明非限制性實施例之用以處理已收到之視訊與音頻的客端裝置的操作流程圖。
圖5所示的係根據本發明其中一項觀點的示範性顯像系統的圖。
圖6所示的係在根據本發明其中一項觀點的顯像系統中所執行的示範性處理的序列圖。
圖7所示的係根據本發明另一項觀點的示範性顯像系統的圖。
圖8所示的係根據本發明一非限制性實施例的客端裝置。
應該清楚瞭解的係,說明與圖式僅係為達解釋本發明之特定實施例的目的並且幫助理解。它們沒有定義本發明之限制的意圖。
I.以雲端為基礎的系統架構
圖1A概略顯示根據本發明一非限制性實施例的以雲端為基礎的系統架構。該架構可以包含在一資料網路(例如,網際網路130)上被連接至一資訊處理設備(例如,伺服器系統100)的多個客端裝置120n(其中,,且其中,N代表參加該視訊遊戲的使用者的數量)。應該明白的係,N(其為該以雲端為基礎的系統架構中的客端裝置的數量)並沒有特殊限制。
該伺服器系統100提供一複數個客端裝置使用者能夠同步 參加的虛擬空間。於某些情況中,此虛擬空間可以代表一視訊遊戲;而於其它情況中,其可以提供一作為用於支援通信或是改善使用者通信體驗之工具的視覺效果。每一位使用者皆能夠在該空間裡面操作與移動一被定位在該虛擬空間中的對應的化身人物(avatar)。當使用者在該虛擬空間中操作一化身人物時,被設在該空間之中的一觀視點(viewpoint)的畫面便會被提供至該使用者的客端裝置。該觀視點可以選擇自多個預設的固定觀視點,或者,可以由使用者選擇性地改變,或者,可以根據使用者對該化身人物所進行的移動(旋轉)操作而被改變。
該些客端裝置120n()的配置沒有特殊的限制。於某些 實施例中,該些客端裝置120n()中的一或更多者可以被具現在個人電腦(Personal Computer,PC)、家用遊戲機器(遊戲機)、可攜式遊戲機器、智慧型電視、機上盒(Set-Top Box,STB)、…等之中。於其它實施例中,該些客 端裝置120n()中的一或更多者可以為一通信或計算裝置,例如,行動電話、個人數位助理(Personal Digital Assistant,PDA)、或是平板。
圖8所示的係根據本發明一非限制性實施例的一範例客端 裝置120n()的通用配置。一客端CPU 801可以控制該客端裝置120n之中所包括的方塊/模組的操作。該客端CPU 801可以藉由下面方式來控制該些方塊的操作:讀出被儲存在客端儲存媒體802之中用於該些方塊的操作程式;將該些操作程式載入至一客端RAM 803之中;以及執行該些操作程式。該客端儲存媒體802可以為HDD、非揮發性ROM、或是類似物。另外,操作程式可以為專屬應用程式、瀏覽應用程式、或是類似物。除了係程式載入區之外,該客端RAM 803亦可作為一儲存區,用以暫時儲存此些事物作為該些方塊中任何方塊之操作中的中間資料輸出。
一客端通信單元804可以為該客端裝置120n中所包括的一通 信介面。於一實施例中,該客端通信單元804可以透過網際網路130接收從該資訊處理設備(伺服器系統100)處所提供之服務的經編碼畫面資料。另外,在反向的通信方向中,該客端通信單元804可以透過網際網路130傳送關於該客端裝置120n之使用者所達成之操作輸入的資訊給該資訊處理設備(伺服器系統100)。一客端解碼器805可以解碼該客端通信單元804所收到的經編碼畫面資料並且產生畫面資料。該經產生的畫面資料會藉由被輸出至一客端顯示器806而呈現給該客端裝置120n的使用者並且被顯示。請注意,該客端裝置未必會有該客端顯示器806,並且該客端顯示器806可以為一被連接至該客端裝置的外部顯示設備。
一客端輸入單元807可以為該客端裝置120n中所包括的一使 用者介面。該客端輸入單元807可以包括多個輸入裝置(例如,觸碰螢幕、鍵盤、遊戲控制器、搖桿、…等),並且會偵測使用者的操作輸入。針對該被偵測的操作輸入,經整合的資料可以透過客端通信單元804被傳送至伺服器系統100,並且可以被傳送作為表示一特殊的操作輸入已在分析該操作內容之後被實施的資訊。另外,該客端輸入單元807亦可以包含其它感測器(舉例來說,KinectTM),該些感測器可以包含一相機或是類似物,其可以偵測一特殊物件的運動作為操作輸入,或是偵測該使用者所進行的身體運動。此外,該客端裝置120n亦可以包含一揚聲器,用以輸出音頻。
現在參考圖1A,該些客端裝置120n()中的每一者可以 任何合宜的方式連接至網際網路130,其包含在一個別的區域存取網路(圖中並未顯示)上。雖然該伺服器系統100可以直接連接至網際網路130而沒有一區域存取網路中介物;不過,該伺服器系統100亦可以在一區域存取網路(圖中並未顯示)上連接至網際網路130。介於該雲端遊戲伺服器系統100與該些客端裝置120n()中的一或更多者之間的連接可以包括一或更多條通道。此些通道能夠由實體鏈路及/或邏輯鏈路所組成,並且可以在各式各樣實體媒體(其包含射頻、光纖、自由空間光學、同軸及絞線對)上傳導。 該些通道可以遵守一協定,例如,UDP或是TCP/IP。該些通道中的一或更多者亦可以支援虛擬私有網路(Virtual Private Network,VPN)。於某些實施例中,該些連接中的一或更多者可以對話為基礎(session-based)。
該伺服器系統100可以讓該些客端裝置120n()的使用 者以單獨(也就是,單一玩家視訊遊戲)或是群體(也就是,多位玩家視訊遊戲)的方式來玩視訊遊戲。該伺服器系統100亦可以讓該些客端裝置 120n()的使用者觀看其它玩家正在玩的遊戲(加入成為遊戲的觀眾)。視訊遊戲的非限制性範例可以包含休閒遊戲、教育遊戲、及/或運動遊戲。視訊遊戲可以,但是未必需要,提供使用者贏取貨幣的可能性。
伺服器系統100亦可以讓該些客端裝置120n()的使用者測試視訊遊戲及/或管理該伺服器系統100。
伺服器系統100可以包含一或更多個計算資源,其可能包含一或更多個遊戲伺服器,並且可以包括或是存取一或更多個資料庫,該一或更多個資料庫可能包含一使用者(參加者)資料庫10。該使用者資料庫10可以儲存和各種使用者及客端裝置120n()有關的帳戶資訊,例如,辨識資料、財務資料、位置資料、人數統計資料、連線資料、以及類似的資料。該(些)遊戲伺服器可以被具現在共同的硬體中,或者,它們可以為透過一通信鏈路(其包含可能在網際網路130上)被連接的不同的伺服器。同樣地,該(些)資料庫可以被具現在伺服器系統100裡面,或者,它們可以透過一通信鏈路(可能在網際網路130上)被連接至該伺服器系統100。
該伺服器系統100可以施行一管理應用程式,用以處理和位在該遊戲環境外面的客端裝置120n()的互動,例如,在玩遊戲之前。舉例來說,在數種非限制性的功能中,該管理應用程式可被配置成用於:將該些客端裝置120n()中其中一者的使用者登錄在某一使用者類別(例如,「玩家(player)」、「觀眾(spectator)」、「管理者(administrator)」、或是「測試人員(tester)」);追蹤該使用者在網際網路上的連線能力;以及回應該使用者的命令,以便開始、加入、離開、或是終止一遊戲的場合。為達此目的,該管理應用程式可能需要存取使用者資料庫10。
該管理應用程式可以不同的方式和不同使用者類別中的使 用者互動,在數種非限制性的可能範例中,該些使用者類別可以包含「玩家」、「觀眾」、「管理者」、以及「測試人員」。因此,舉例來說,該管理應用程式可以和一玩家互動(也就是,「玩家」使用者類別中的使用者),以便讓該玩家在使用者資料庫10中建立帳戶並且選擇要玩的視訊遊戲。該管理應用程式可以依照此選擇而喚起一伺服器側視訊遊戲應用程式。該伺服器側視訊遊戲應用程式可以由執行用於該玩家的一組模組的電腦可讀取指令來定義,從而允許該玩家在一視訊遊戲的虛擬世界裡面控制角色、化身人物、賽車、駕駛艙、…等。於多位玩家視訊遊戲的情況中,該虛擬世界可由二或更多位玩家共用,而且其中一位玩家玩遊戲可以影響另一位玩家玩遊戲。於另一範例中,該管理應用程式可以和一觀眾互動(也就是,「觀眾」使用者類別中的使用者),以便讓該觀眾在使用者資料庫10中建立帳戶並且從一進行中的視訊遊戲清單中選擇該使用者可能希望觀看的視訊遊戲。該管理應用程式可以依照此選擇而為該觀眾喚起一組模組,從而允許該觀眾觀察其它使用者玩遊戲而沒有控制該遊戲中的活動角色(除非另外表示,否則,當運用「使用者」一詞時,其意謂著同等套用於「玩家」使用者類別以及「觀眾」使用者類別)。
於一進一步範例中,該管理應用程式可以和一管理者互動 (也就是,「管理者」使用者類別中的使用者),以便讓該管理者改變該遊戲伺服器應用程式的各項特點、實施更新、以及管理玩家/觀眾的帳戶。
於又一範例中,該遊戲伺服器應用程式可以和一測試人員互 動(也就是,「測試人員」使用者類別中的使用者),以便讓該測試人員選擇 要測試的視訊遊戲。該遊戲伺服器應用程式可以依照此選擇而為該測試人員喚起一組模組,從而允許該測試人員測試該視訊遊戲。
圖1B所示的係針對「玩家」或「觀眾」使用者類別中的使 用者在玩遊戲期間可能發生在客端裝置120n()與伺服器系統100之間的互動。
於某些非限制性實施例中,該伺服器側視訊遊戲應用程式可 以和一客端側視訊遊戲應用程式協同合作,該客端側視訊遊戲應用程式能夠由在一客端裝置(例如,客端裝置120n())中執行的一組電腦可讀取指令來定義。使用客端側視訊遊戲應用程式可以為該使用者提供客製化介面,用以玩或觀看該遊戲並且存取遊戲特點。於其它非限制性實施例中,該客端裝置並沒有可由該客端裝置直接執行的客端側視訊遊戲應用程式的特點。相反地,可以使用一網路瀏覽器作為來自該客端裝置之透視圖的介面。該網路瀏覽器本身可以在自己的軟體環境裡面顯現一客端側視訊遊戲應用程式,以便最佳化和該伺服器側視訊遊戲應用程式的互動。
在給定客端裝置上運轉(獨立地運轉或是在一瀏覽器裡面) 的客端側視訊遊戲應用程式可以將所收到的使用者輸入與所偵測到的使用者移動轉譯成「客端裝置輸入」,其可以在網際網路130上被發送至雲端遊戲伺服器系統100。
在圖1B的圖解實施例中,客端裝置120n()可以分別產 生客端裝置輸入140n()。該伺服器系統100可以處理接收自該些各種客端裝置120n()的客端裝置輸入140n()並且可以為該些各種客端裝置120n()產生個別的「媒體輸出」150n()。該媒體輸出 150n()可以包含一經編碼的視訊資料串流(其代表被顯示在一畫面上的影像)與音頻資料(其代表透過揚聲器播放的聲音)。該媒體輸出150n()可以在網際網路130上以封包的形式被發送。預定前往用於該些客端裝置120n()中的一特殊客端裝置的封包可以某種方式被定址,以便在網際網路130上被繞送至該裝置。每一個該些客端裝置120n()可以包含用於緩衝與處理接收自該雲端遊戲伺服器系統100之該些封包中的媒體輸出的電路系統,並且包含一用於顯示影像的顯示器以及一用於輸出音頻的換能器(舉例來說,揚聲器)。額外的輸出裝置亦可以被提供,例如,用以誘發運動的電氣-機械系統(electro-mechanical system)。
應該明白的係,一視訊資料串流能夠被分成多個「訊框 (frame)」。本文中所使用的「訊框」一詞並不需要在視訊資料訊框與由該視訊資料所代表的影像之間有一對一對應關係存在。也就是說,一視訊資料訊框可能含有代表一被個別顯示的完整影像的資料;一視訊資料訊框亦可能含有僅代表一影像之一部分的資料,而且對該影像來說,實際上需要二或更多個訊框方能被正確地重建與顯示。同樣地,一視訊資料訊框亦可能含有代表一個以上完整影像的資料,俾使得可以利用M個視訊資料訊框來代表N個影像,其中M<N。
II.雲端遊戲伺服器系統100(分散式架構)
圖2A所示的係雲端遊戲伺服器系統100的構件的其中一種可能的非限制性實體排列。於此實施例中,該雲端遊戲伺服器系統100裡面的個別伺服器可以被配置成用以實行特殊的功能。舉例來說,一計算伺服器200C可能主要負責以使用者輸入為基礎來追蹤一視訊遊戲中的狀態變化;而顯像 伺服器200R可能主要負責顯像圖形(視訊資料)。
客端裝置120n()的使用者可以為玩家或觀眾。應該瞭 解的係,於某些情況中可能有單一玩家而沒有觀眾;於其它情況中可能有多位玩家以及單一觀眾;於再其它情況中可能有單一玩家以及多位觀眾;以及於又其它情況中可能有多位玩家以及多位觀眾。
為簡化起見,下面說明談論的雖然係被連接至單一顯像伺服 器200R的單一計算伺服器200C;然而,應該明白的係,亦可以有一個以上的顯像伺服器200R被連接至同一個計算伺服器200C,或者,可以有一個以上的計算伺服器200C被連接至同一個顯像伺服器200R。於有多個顯像伺服器200R的情況中,此些顯像伺服器200R可以分散在任何合宜的地理區域中。
如圖2A的構件的非限制性實體排列所示,該計算伺服器 200C可以包括一或更多個中央處理單元(Central Processing Unit,CPU)220C、222C以及一隨機存取記憶體(Random Access Memory,RAM)230C。舉例來說,該些CPU 220C、222C會在一通信匯流排架構上存取RAM 230C。圖中雖然僅顯示兩個CPU 220C、222C;不過,應該明白的係,於計算伺服器200C的某些範例施行方式中可以提供更大數量的CPU,或者,僅提供單一CPU。 該計算伺服器200C亦可以包括一接收器,用以在網際網路130上從參加該視訊遊戲的每一個客端裝置處接收客端裝置輸入。於目前所述的範例實施例中假設客端裝置120n()參加該視訊遊戲,且所以,該被接收的客端裝置輸入可以包含客端裝置輸入140n()。於一非限制性的實施例中,該接收器可以由一網路介面構件(Network Interface Component,NIC)210C2來 施行。
計算伺服器200C可以進一步包括傳送器,用以輸出顯像命 令集204m,其中,。於一非限制性的實施例中,M代表使用者(或客端裝置)的數量,但是每一個實施例中的情況未必如此,尤其是在多位使用者共用單一顯像命令集的情況。因此,M僅代表被產生的顯像命令集的數量。從該計算伺服器200C處輸出的顯像命令集204m()可以被發送至顯像伺服器200R。於一非限制性的實施例中,該傳送器可以由一網路介面構件(NIC)210C1來具現。於其中一實施例中,該計算伺服器200C可以直接被連接至該顯像伺服器200R。於另一實施例中,該計算伺服器200C可以在一網路260(其可以為網際網路130或是另一網路)上被連接至該顯像伺服器200R。一虛擬私有網路(VPN)可以於網路260上被建立在該計算伺服器200C與該顯像伺服器200R之間。
在顯像伺服器200R處,由該計算伺服器200C所發送的顯像命令集204m()可以在一接收器(其可以由一網路介面構件(NIC)210R1來施行)處被接收並且可以被導向一或更多個CPU 220R、222R。該些CPU 220R、222R可以被連接至圖形處理單元(Graphics Processing Unit,GPU)240R、250R。在非限制性的範例中,GPU 240R可以包含一組GPU核心242R以及一視訊隨機存取記憶體(Video Random Access Memory,VRAM)246R。同樣地,GPU 250R可以包含一組GPU核心252R以及一視訊隨機存取記憶體(VRAM)256R。該些CPU 220R、222R中的每一者可以被連接至該些GPU 240R、250R中的每一者,或是,被連接至該些GPU 240R、250R的子集。舉例來說,該些CPU 220R、222R與該些GPU 240R、250R之 間的通信能夠利用一通信匯流排架構來建立。圖中雖然僅顯示兩個CPU與兩個GPU;不過,於該顯像伺服器200R的一特定施行方式範例中亦可以有兩個以上的CPU與GPU,或者僅有單一個CPU或GPU。
該些CPU 220R、222R可以與該些GPU 240R、250R協同合 作,用以將該顯像命令集204m()轉換成圖形輸出串流206n,其中,,且其中,N代表參加該視訊遊戲的使用者(或客端裝置)的數量。明確地說,該些客端裝置120n()可以分別有N個圖形輸出串流206n()。這稍後會作進一步詳細說明。該顯像伺服器200R可以包括另一傳送器(其可以由一網路介面構件(NIC)210R2來施行),該些圖形輸出串流206n()可以經由該傳送器分別被發送至該些客端裝置120n()。
III.雲端遊戲伺服器系統100(混合式架構)
圖2B所示的係雲端遊戲伺服器系統100的構件的第二種可能的非限制性實體排列。於此實施例中,一混合伺服器200H可以負責以使用者輸入為基礎來追蹤一視訊遊戲中的狀態變化並且負責顯像圖形(視訊資料)。
如圖2B的構件的非限制性實體排列所示,該混合伺服器 200H可以包括一或更多個中央處理單元(CPU)220H、222H以及一隨機存取記憶體(RAM)230H。舉例來說,該些CPU 220H、222H會在一通信匯流排架構上存取RAM 230H。圖中雖然僅顯示兩個CPU 220H、222H;不過,應該明白的係,於混合伺服器200H的某些範例施行方式中可以提供更大數量的CPU,或者,僅提供單一CPU。該混合伺服器200H亦可以包括一接收器,用以接收在網際網路130上接收自參加該視訊遊戲的每一個客端裝置處的客端裝置輸入。於目前所述的範例實施例中假設客端裝置120n()參加 該視訊遊戲,且所以,該被接收的客端裝置輸入可以包含客端裝置輸入140n()。於一非限制性的實施例中,該接收器可以由一網路介面構件(NIC)210H來施行。
此外,該些CPU 220H、222H可以被連接至圖形處理單元 (GPU)240H、250H。在非限制性的範例中,GPU 240H可以包含一組GPU核心242H以及一視訊隨機存取記憶體(VRAM)246H。同樣地,GPU 250H可以包含一組GPU核心252H以及一視訊隨機存取記憶體(VRAM)256H。該些CPU 220H、222H中的每一者可以被連接至該些GPU 240H、250H中的每一者,或是,被連接至該些GPU 240H、250H的子集。舉例來說,該些CPU 220H、222H與該些GPU 240H、250H之間的通信可以利用一通信匯流排架構來建立。圖中雖然僅顯示兩個CPU與兩個GPU;不過,於該混合伺服器200H的一特定施行方式範例中亦可以有兩個以上的CPU與GPU,或者僅有單一個CPU或GPU。
該些CPU 220H、222H可以與該些GPU 240H、250H協同合作,用以將該顯像命令集204m()轉換成圖形輸出串流206n()。明確地說,該些客端裝置120n()可以分別有N個圖形輸出串流206n()。該些圖形輸出串流206n()可以透過一傳送器分別被發送至該些客端裝置120n(),於一非限制性的實施例中,該傳送器可以至少部分由NIC 210H來施行。
IV.雲端遊戲伺服器系統100(功能概述)
在玩遊戲期間,該伺服器系統100會運轉一伺服器側視訊遊戲應用程式,其能夠由一組模組所構成。參考圖2C,此些模組可以包含一顯像命令 產生器270、一顯像單元280、以及一視訊編碼器285。此些模組可以由上面所述的計算伺服器200C與顯像伺服器200R的實體構件(在圖2A中)及/或混合伺服器200H的實體構件(在圖2B中)來施行。舉例來說,根據圖2A的非限制性實施例,該顯像命令產生器270可以由計算伺服器200C來施行,而該顯像單元280與該視訊編碼器285可以由顯像伺服器200R來施行。 根據圖2B的非限制性實施例,該混合伺服器200H可以施行該顯像命令產生器270、該顯像單元280、以及該視訊編碼器285。
為達簡單圖解的目的,本範例實施例雖然討論單一顯像命令 產生器270;然而,應該注意的係,於雲端遊戲伺服器系統100的實際施行方式中,可以平行執行雷同於該顯像命令產生器270的多個顯像命令產生器。因此,該雲端遊戲伺服器系統100可以支援相同視訊遊戲的多個獨立例示(instantiation),或是,可以同步支援多個不同的視訊遊戲。另外,應該注意的係,該些視訊遊戲能夠為任何類型的單一玩家視訊遊戲或是多位玩家遊戲。
該顯像命令產生器270可以由計算伺服器200C的特定實體構件(在圖2A中)或是混合伺服器200H的特定實體構件(在圖2B中)來施行。明確地說,該顯像命令產生器270可以被編碼為可由CPU(例如,計算伺服器200C中的CPU 220C、222C,或是混合伺服器200H中的CPU 220H、222H)來執行的電腦可讀取指令。該些指令能夠連同被該顯像命令產生器270所使用的常數、變數、及/或其它資料有形地儲存在RAM 230C(在計算伺服器200C之中)或RAM 230H(在混合伺服器200H之中)或另一記憶體區之中。於某些實施例中,該顯像命令產生器270可以被執行在同樣由一CPU(例如, 計算伺服器200C中的CPU 220C、222C或是混合伺服器200H中的CPU 220H、222H)執行的作業系統所支援的虛擬機器的環境裡面。
顯像單元280可以由顯像伺服器200R的特定實體構件(在圖 2A中)或是混合伺服器200H的特定實體構件(在圖2B中)來施行。於一實施例中,該顯像單元280可以佔用一或更多個GPU(圖2A中的240R、250R;圖2B中的240H、250H)並且可以或沒有運用CPU資源。
視訊編碼器285可以由顯像伺服器200R的特定實體構件(在 圖2A中)或是混合伺服器200H的特定實體構件(在圖2B中)來施行。熟習本技術的人士便會明白有各種方式可施行該視訊編碼器285。在圖2A的實施例中,該視訊編碼器285可以由CPU 220R、222R及/或由GPU 240R、250R來施行。在圖2B的實施例中,該視訊編碼器285可以由CPU 220H、222H及/或由GPU 240H、250H來施行。於又一實施例中,該視訊編碼器285可以由一分離的編碼器晶片(圖中並未顯示)來施行。
在操作中,該顯像命令產生器270可以已收到的客端裝置輸 入140n()為基礎來產生顯像命令集204m()。該已收到的客端裝置輸入可能攜載用以辨識其預定前往的顯像命令產生器270的資料(舉例來說,位址),及/或可能攜載用以辨識其發源處的使用者及/或客端裝置的資料。
顯像命令係指可被用來指示一專屬圖形處理單元(GPU)產生 一視訊資料訊框或是一連串視訊資料訊框的命令。參考圖2C,該顯像命令集204m()會導致該顯像單元280產生視訊資料訊框。由此些訊框所表示的影像可以被程式化至顯像命令產生器270之中的針對客端裝置輸入140n()的響應為函數而改變。舉例來說,該顯像命令產生器270可以 被程式化為響應於特定的明確刺激而提供使用者前進的體驗(隨著未來互動的不同,挑戰會越大或者會越興奮),而針對特定其它明確刺激的響應則會提供使用者退回或是結束的體驗。該顯像命令產生器270的指令雖然可以固定為二進位可執行檔案的形式;不過,直到和使用對應客端裝置120n()的玩家互動的時刻之前,該客端裝置輸入140n()仍為未知。因此,會有各式各樣可能的結果,端視被提供的明確客端裝置輸入而定。玩家/觀眾和顯像命令產生器270之間透過客端裝置120n()的互動稱為「玩遊戲(game play)」或是「玩視訊遊戲(playing a video game)」。
顯像單元280可以處理該顯像命令集204m(),用以創 造多個視訊資料串流205n(,其中,N表示參加該視訊遊戲的使用者/客端裝置的數量)。因此,通常可以針對每一位使用者(或者,等同地,針對每一個客端裝置)創造一視訊資料串流。當實施顯像時,表現在三維空間(舉例來說,實體物體)或是二維空間(舉例來說,文字)中的一或更多個物體的資料可以被載入至一特殊GPU 240R、250R、240H、250H的快取記憶體(圖中並未顯示)之中。此資料可以被該GPU 240R、250R、240H、250H轉換成一二維影像資料代表符,其可以被儲存在適當的VRAM 246R、256R、246H、256H之中。就此而言,VRAM 246R、256R、246H、256H可以為一遊戲畫面的圖像元素(像素)數值提供暫時性儲存。
視訊編碼器285可以將視訊資料串流205n()的每一者 中的視訊資料壓縮並且編碼成對應的經壓縮/經編碼視訊資料串流。所生成的經壓縮/經編碼視訊資料串流,亦稱為圖形輸出串流,可以遵照客端裝置來產生。於此範例實施例中,該視訊編碼器285可以為客端裝置120n() 分別產生圖形輸出串流206n()。額外的模組可被提供用以將該視訊資料格式化成多個封包,俾使得該些封包能夠在網際網路130上被傳送。視訊資料串流205n()中的視訊資料以及一給定圖形輸出串流裡面的經壓縮/經編碼視訊資料可以被分割成多個訊框。
V.顯像命令的產生
現在將參考圖2C、3A、以及3B更詳細地說明藉由顯像命令產生器270來產生顯像命令。明確地說,該顯像命令產生器270的執行可能涉及數項處理,其包含一主遊戲處理300A以及一圖形控制處理300B,下面會更詳細說明。
主遊戲處理
現在參考圖3A來說明主遊戲處理300A。該主遊戲處理300A可以重複執行而成為一連續的迴圈。在主遊戲處理300A的一部分中可以提供一作動310A,客端裝置輸入可以於該作動期間被收到。倘若該視訊遊戲為單一玩家的視訊遊戲而沒有觀看的可能性的話,那麼,來自單一客端裝置(舉例來說,客端裝置1201)的客端裝置輸入(舉例來說,客端裝置輸入1401)便會被接收成為作動310A的一部分。倘若該視訊遊戲為多位玩家視訊遊戲或者為有觀看可能性的單一玩家視訊遊戲的話,那麼,來自一或更多個客端裝置的客端裝置輸入便可以被接收成為作動310A的一部分。
於非限制性的範例中,來自一給定客端裝置的輸入可能傳達該給定客端裝置的使用者希望由他或她來控制某個角色的移動、跳躍、踢腿、轉身、擺動、拖拉、抓取、…等。或者,甚至除此之外,來自該給定客端裝置的輸入可能傳達由該給定客端裝置的使用者所作的選單選擇,以 便改變一或更多個音頻、視訊、或玩遊戲的設定;載入/保存遊戲;或是創造或加入網路對話。或者,甚至除此之外,來自該給定客端裝置的輸入可能傳達該給定客端裝置的使用者希望選擇一特殊的相機視野(舉例來說,第一人或第三人)或者在該虛擬世界裡面重新定位他或她的觀視點。
在作動320A處,遊戲狀態可至少部分以在作動310A處收到的客端裝置輸入及其它參數為基礎而被更新。更新遊戲狀態可以涉及下面的作動:首先,更新遊戲狀態可以涉及更新和可從該處收到該客端裝置輸入的客端裝置相關聯的使用者(玩家或觀眾)的特定特性。此些特性可被儲存在使用者資料庫10之中。可被保留在使用者資料庫10之中並且在作動320A處被更新的使用者特性的範例會包含相機視野選擇(舉例來說,第一人、第三人)、遊玩模式、所選擇的音頻或視訊設定、技巧層級、消費者等級(舉例來說,來賓、高級、…等)。
其次,更新遊戲狀態可以涉及以該客端裝置輸入的詮釋為基礎在該虛擬世界中更新特定物體的屬性。於某些情況中,屬性要被更新的物體可由二維或三維模型來表示並且可以包含遊玩角色、非遊玩角色、以及其它物體。於遊玩角色的情況中,能夠被更新的屬性可以包含該物體的位置、力量、武器/裝備、剩餘壽命、特殊能力、速率/方向(速度)、動畫、視覺效果、能量、彈藥、…等。於其它物體的情況中(例如,背景、草木、建築物、車輛、計分板、…等),能夠被更新的屬性可以包含該物體的位置、速度、動畫、損毀/健康、視覺效果、文字內容、…等。
應該明白的係,客端裝置輸入以外的參數可以影響上面的 (使用者的)特性以及(虛擬世界物體的)屬性。舉例來說,各種計時器(例如,已經過的時間、從一特殊事件之後的時間、虛擬的當天時間、玩家的總數、使用者地理位置、…等)會對遊戲狀態的各種態樣產生影響。
一旦遊戲狀態已被更新,為進一步執行作動320A,該主遊 戲處理300A可以回到作動310A,隨即,從上一次通過該主遊戲處理所收到的新客端裝置輸入便會被收集與處理。
圖形控制處理
現在將參考圖3B來說明第二處理,本文中稱為圖形控制處理。圖中雖然顯示為和主遊戲處理300A分開;不過,該圖形控制處理300B亦可執行為該主遊戲處理300A的延伸部分。該圖形控制處理300B可以連續地執行從而導致產生顯像命令集204m()。於單一玩家視訊遊戲而沒有觀看可能性的情況中,僅有一位使用者(也就是,N=1),且所以,僅有一最終顯像命令集2041(也就是,M=1)要被產生。於其它情況中,N(使用者的數量)大於1。舉例來說,於多位玩家視訊遊戲的情況中,需要為該些多位玩家產生多個不同的顯像命令集204m(M>1),且所以,多個子處理可以平行執行,每一位玩家一個子處理。另一方面,於單一玩家遊戲且有觀看可能性的情況中(再次地,多位使用者,且所以,N>1),可能僅有一顯像命令集2041(M=1),該最終的視訊資料串流會由該顯像單元280來為該些觀眾複製。當然,此些僅為施行方式的範例並且沒有限制意義。
探討需要該些視訊資料串流205n()中其中一者的一給定使用者的圖形控制處理300B的運算。在作動310B處,該顯像命令產生器270可以決定要為該給定使用者顯像的物體。此作動可以包含辨識下面 類型的物體。首先,此作動可以包含從該虛擬世界中辨識位在該給定使用者的「遊戲畫面顯像範圍」(亦稱為「場景」)之中的物體。該遊戲畫面顯像範圍可以包含可從該給定使用者的相機的透視圖「看見」的該虛擬世界的一部分。這可能相依於該相機相對於該虛擬世界中該些物體的位置與方位。於作動310B的施行方式的非限制性範例中,一截頭體(frustum)可被套用至該虛擬世界,而且該截頭體裡面的物體會被保留或標記。該截頭體有一頂點,其可以座落在該給定使用者的相機的位置處並且可具有同樣由該相機之方向所定義的方向。
其次,此作動會包含辨識沒有出現在該虛擬世界之中但卻可 能需要針對該給定使用者來顯像的額外物體。舉例來說,此些額外物體的一些非限制性可能例可以包含文字訊息、圖形警示、以及儀表板指示符。
在作動320B處,該顯像命令產生器270可以產生一命令集 204m(),用以將在作動310B處所辨識的物體顯像至圖形(視訊資料)之中。顯像可能係指根據觀視透視圖及主要照明條件將一物體或一群物體的3-D或2-D座標轉換成一可顯示影像的資料代表符。這可以利用任何數量的不同演算法與技術來達成,舉例來說,如由Max K.Agoston編撰,Springer-Verlag London Limited在2005年出版的「電腦圖形與幾何模擬:施行方式&演算法(Computer Graphics and Geometric Modelling:Implementation & Algorithms)」之中所述,本文中以引用的方式將其併入。該些顯像命令可以有符合一3D應用程式化介面(Application Programming Interface,API)的格式,例如,但是並不受限於,位在美國華盛頓州雷德蒙的Microsoft Corporation的「Direct3D」以及位在美國奧勒崗州畢佛頓的Khronos Group所經營的 「OpenGL」。
在作動330B處,在作動320B處被產生的顯像命令可以被 輸出至顯像單元280。這可能涉及將該些已產生的顯像命令封包化成一被發送至該顯像單元280的顯像命令集204m()。
VI.圖形輸出的產生
顯像單元280可以詮釋該顯像命令集204m()並且產生多個視訊資料串流205n(),為該些N個參加的客端裝置120n()中的每一個客端裝置各產生一個。顯像可以在CPU 220R、222R(在圖2A中)或是220H、222H(在圖2B中)的控制下由GPU 240R、250R、240H、250H來達成。
於有N位使用者的實施例中,該些N個視訊資料串流205n()可以從個別的顯像命令集204m(,其中,M=N)處被創造。於此情況中,顯像功能沒有在該些使用者之間被共用。然而,該些N個視訊資料串流205n()亦可以從M個顯像命令集204m(,其中,M小於N)處被創造,俾使得,較少的顯像命令集需要被該顯像單元280處理。於此情況中,該顯像單元280可以實施共用或複製,以便從較小數量顯像命令集204m(,其中,M<N)處產生較大數量的視訊資料串流205n()。當多位使用者(舉例來說,觀眾)希望觀看相同的相機透視圖時此共用或複製可能相當普遍。因此,該顯像單元280可以實施諸如為一或更多位觀眾複製一已創造的視訊資料串流的功能。
接著,該些視訊資料串流205n()中每一者之中的視訊資料可以由視訊編碼器285來編碼,從而造成和每一個客端裝置相關聯的一經編碼視訊資料序列,本文中稱為圖形輸出串流。於圖2A至2C的範例 實施例中,預定前往該些客端裝置120n()中每一者的該經編碼視訊資料序列被稱為圖形輸出串流206n()。
視訊編碼器285可以為一致能或實行或定義數位視訊之視 訊壓縮或解壓縮演算法的裝置(或是一電腦可讀取指令集)。視訊壓縮可以將一原始的數位影像資料串流(以像素位置、顏色數值、…等來表達)轉換成一數位影像資料輸出串流,其利用較少的位元傳達實質上相同的資訊。任何合宜的壓縮演算法皆可被使用。除了資料壓縮之外,被用來編碼一特殊的視訊資料訊框的編碼處理可以或沒有涉及密碼加密。
依照上面方式所創造的圖形輸出串流206n()可以在網 際網路130上被發送至該些個別的客端裝置。在非限制性的範例中,該些圖形輸出串流可以被分段並且格式化成多個封包,每一個封包有一標頭與一酬載。一含有一給定使用者之視訊資料的封包的標頭可以包含和該給定使用者相關聯的客端裝置的網路位址,而該酬載可以包含該視訊資料的全部或是一部分。於一非限制性的實施例中,被用來編碼特定視訊資料的壓縮演算法的身分及/或版本可以被編碼在傳達該視訊資料的一或更多個封包的內容之中。熟習本技術的人士便可以發現傳送該經編碼視訊資料的其它方法。
本說明雖然聚焦在顯像代表各自2-D影像的視訊資料;不 過,本發明並不排除顯像代表每一個訊框多個2-D影像的視訊資料的可能性,以便創造3-D效果。
VII.客端裝置處的遊戲畫面再生
現在參考圖4A,圖中以非限制性的範例顯示可由和一給定使用者相關 聯的客端裝置(其可以為客端裝置120n()中的任一者)來執行的客端側視訊遊戲應用程式。在操作中,於數個非限制性的可能例中,該客端側視訊遊戲應用程式可以由該客端裝置直接執行,或者,其可以在一網路瀏覽器裡面運轉。
在作動410A處,一圖形輸出串流(來自圖形輸出串流 206n()之中)可以在網際網路130上相依於實施例而被接收自顯像伺服器200R(圖2A)或是被接收自混合伺服器200H(圖2B)。該經接收的圖形輸出串流可以包括可被分成多個訊框的經壓縮/經編碼視訊資料。
在作動420A處,該些經壓縮/經編碼視訊資料訊框可以根據 互補於在編碼/壓縮處理中所使用之編碼/壓縮演算法的解壓縮演算法被解碼/解壓縮。於一非限制性的實施例中,被用來編碼/壓縮該視訊資料的編碼/壓縮演算法的身分或版本可能為事前已知悉。於其它實施例中,被用來編碼該視訊資料的編碼/壓縮演算法的身分或版本可能伴隨該視訊資料本身。
在作動430A處,該些(經解碼/解壓縮)視訊資料訊框可以被 處理。這會包含將該些經解碼/解壓縮視訊資料訊框放在一緩衝器之中、實施錯誤修正、重新排序及/或組合多個連續訊框中的資料、阿爾法摻合、插補遺失資料的多個部分、…等。該結果可以為代表要以遵照訊框的基礎被呈現給使用者的最後影像的視訊資料。
在作動440A處,該最後影像可以透過該客端裝置的輸出機 制被輸出。舉例來說,一合成視訊訊框可以被顯示在該客端裝置的顯示器上。
VIII.音頻產生
現在將參考圖3C來說明第三處理,本文中稱為音頻產生處理。該音頻產生處理可以針對需要不同音頻串流的每一位使用者連續地執行。於其中一實施例中,該音頻產生處理可以獨立於圖形控制處理300B來執行。於另一實施例中,該音頻產生處理與該圖形控制處理的執行可以協同進行。
在作動310C處,該顯像命令產生器270可以決定要被產生 的聲音。明確地說,此作動可以包含辨識和該虛擬世界中掌控聲音景觀(acoustic landscape)的物體(因為它們的音量(響度)及/或在該虛擬世界裡面靠近該使用者)相關聯的聲音。
在作動320C處,該顯像命令產生器270可以產生一音頻片 段。該音頻片段的時間持續長度可以橫跨一視訊訊框的時間持續長度;不過,於某些實施例中,音頻片段被產生的頻率低於視訊訊框;而於其它實施例中,音頻片段被產生的頻率可能高於視訊訊框。
在作動330C處,該音頻片段可以被編碼,舉例來說,藉由 一音頻編碼器,從而導至一經編碼音頻片段。該音頻編碼器能夠為一致能或實行或定義音頻壓縮或解壓縮演算法的裝置(或是指令集)。音頻壓縮可以將一原始的數位音頻料串流(以隨著時間改變振幅與相位的聲波來表達)轉換成一數位音頻資料輸出串流,其利用較少的位元傳達實質上相同的資訊。任何合宜的壓縮演算法皆可被使用。除了音頻壓縮之外,被用來編碼一特殊的音頻片段的編碼處理可以或沒有套用密碼加密。
應該明白的係,於某些實施例中,該些音頻片段可以由計算 伺服器200C(圖2A)或是混合伺服器200H(圖2B)中的專屬硬體(舉例來說,聲音卡)來產生。於可套用至圖2A之分散式排列的替代實施例中,該音頻 片段可以被顯像命令產生器270參數化成多個語音參數(舉例來說,LPC參數),而且該些語音參數能夠被顯像伺服器200R重新分配至目標客端裝置。
依照上面方式所創造的經編碼音頻會在網際網路130上被 發送。於非限制性的範例中,該經編碼音頻輸入可以被分解並且格式化成多個封包,每一個封包有一標頭與一酬載。該標頭可以攜載和正在被執行的音頻產生處理所針對的使用者相關聯的客端裝置的位址,而該酬載可以包含該經編碼音頻。於一非限制性的實施例中,被用來編碼一給定音頻片段的壓縮演算法的身分及/或版本可以被編碼在傳達該給定片段的一或更多個封包的內容之中。熟習本技術的人士便可以發現傳送該經編碼音頻的其它方法。
現在參考圖4B,圖中以非限制性的範例顯示和一給定使用 者相關聯的客端裝置(其可以為客端裝置120n()中的任一者)的操作。
在作動410B處,一經編碼音頻片段可以(根據實施例)被接 收自計算伺服器200C、顯像伺服器200R、或是混合伺服器200H。在作動420B處,該經編碼音頻可以根據互補於在編碼處理中所使用之壓縮演算法的解壓縮演算法被解碼。於一非限制性的實施例中,被用來編碼該音頻片段的壓縮演算法的身分或版本可以被規定在用以傳達該音頻片段的一或更多個封包的內容之中。
在作動430B處,該些(經解碼)音頻片段可以被處理。這可 以包含將該些經解碼音頻片段放在一緩衝器之中、實施錯誤修正、組合多個連續波形、…等。該結果可以為要以遵照訊框的基礎被呈現給使用者的最後聲音。
在作動440B處,該最後產生的聲音可以透過該客端裝置的 輸出機制被輸出。舉例來說,該聲音可以經由該客端裝置的聲音卡或揚聲器被播放。
IX.非限制性實施例的明確說明
現在提供本發明的特定非限制性實施例的更詳細說明。
圖5所示的係該些非限制性實施例的一影像顯像系統的示 範性配置。於非限制性實施例中,如圖5中所示,提供一用於儲存被用來顯像GPU伺服器540(舉例來說,顯像伺服器200R)中之處理的資源資料的資源儲藏器500,作為不同於CPU伺服器520(舉例來說,計算伺服器200C或是一系統的中央伺服器)及GPU伺服器540的分開實體。請注意,於該系統中可以僅有一GPU伺服器;不過,該系統亦能夠包括多個GPU伺服器。 該資源儲藏器500可以被提供在一伺服器之中,該伺服器包括CPU(舉例來說,CPU 220H與222H)與GPU(舉例來說,GPU 240R與250R)。下文將說明存在多個GPU伺服器540並且該CPU伺服器520與該些GPU伺服器540為分開實體的情況。
於該些非限制性實施例中,當CPU伺服器520中的請求接 收器521接收一用於提供影像的請求550時,CPU伺服器520中的一資料傳送器523會傳送資源資料560僅給資源儲藏器500。也就是,該CPU伺服器520不會傳送資源資料560給GPU伺服器540。一命令產生器522會產生一顯像命令570(其包含用以辨識資源儲藏器500中的資源資料560的辨識資訊)並且傳送該顯像命令570給GPU伺服器540。在GPU伺服器540中,當一命令接收器541接收該顯像命令570時,一資料獲取器542會從資源儲藏器 500處取得資源資料565,舉例來說,藉由傳送被併入在顯像命令570之中的該資源資料565的辨識資訊(資源ID)給資源儲藏器500。GPU伺服器540中的一顯像器/傳送器543接著會執行顯像處理並且顯像一對應於該客端裝置120所發送之用以提供影像之請求的影像並且將該經顯像的影像傳送給該客端裝置120。下面將說明此些伺服器的細節。
CPU伺服器520可以從客端裝置120處接收一用以提供影像 的請求、根據該請求擷取資源資料、以及接著傳送該被擷取的資源資料給資源儲藏器500。該用以提供影像的請求可以和用以提供一遊戲內容之畫面的請求有關。該客端裝置120可以週期性或是在接收使用者的操作時傳送該請求,舉例來說,以便控制一遊戲中的角色。擷取資源資料可以包含在該CPU伺服器520中用於執行一遊戲的處理中間獲取該資源資料。於相同資源資料已被傳送至資源儲藏器500並且沒有被移除的情況中,該CPU伺服器520可以不傳送該資源資料。於此情況中,關於目前儲存在資源儲藏器500中的資源資料的資訊可以被CPU伺服器520及資源儲藏器500共用。 於某些情況中,該資訊亦可以被CPU伺服器520、GPU伺服器540、以及資源儲藏器500共用。於某些實施例中,該資訊可以表格的形式被產生,用以表示傳送自該CPU伺服器520的哪一個資源資料被儲存在資源儲藏器500之中。舉例來說,該資源儲藏器500會產生該表格並且將其傳送至CPU伺服器520並且於某些情況中將其傳送至GPU伺服器540。於其它情況中,該CPU伺服器520可以管理已從該CPU伺服器520處被傳送至資源儲藏器500並且接著從該資源儲藏器500處被移除的資源資料。於此情況中,該CPU伺服器520會管理一資源資料清單並且在該CPU伺服器520傳送一特 定資源資料至該資源儲藏器500的情況中新增特定的資源資料至該清單之中。另一方面,該資源儲藏器500會向該CPU伺服器520回報已從該資源儲藏器500處被移除的資源資料。該CPU伺服器520接著會從該受管理的清單中刪除該被回報的資源資料。該CPU伺服器520可以傳送該受管理的清單給該GPU伺服器540及/或該資源儲藏器500。該CPU伺服器520接著會傳送顯像命令570(其包含關於該資源資料的資訊)給該些GPU伺服器540中的至少其中一者。該CPU伺服器520能夠藉由分派資源資料560的辨識符資訊(ID)來辨識被傳送至資源儲藏器500的資源資料560,並且因而能夠利用簡單的辨識符資訊來配置要被傳送至GPU伺服器540的顯像命令570。 請注意,該辨識符資訊可在被傳送之前由CPU伺服器520來分派,或者,可以由資源儲藏器500的一處理器分派並且回報給該CPU伺服器520。此外,該辨識符資訊可以不同於直接規定資料位置(舉例來說,資源儲藏器500的一記憶體中的資料位置)的資訊。也就是,因為該位置可能改變,所以,該辨識符資訊僅表示其中一個內容(資源資料),而不管其位置。或者,舉例來說,於該資源資料的資料位置被永久性或半永久性定義的情況中(舉例來說,在該資源資料從資源儲藏器500處被移除之前該資料位置都不會改變),該辨識符資訊可以表示該資源儲藏器500的該記憶體中儲存著該資源資料的位置。
該資源儲藏器500被配置成可由複數個GPU伺服器540來 存取,以及於一GPU伺服器540從該CPU伺服器520處接收一包含辨識符資訊的顯像命令570並且對應於該辨識符資訊的資源資料沒有被儲存在(或是沒有被載入)該GPU伺服器540的一區域快取記憶體中的情況中,該GPU 伺服器540會以被併入在該顯像命令中的辨識符資訊575為基礎從該資源儲藏器500中獲取必要的資源資料並且實施顯像處理。也就是,該些GPU伺服器540中的每一者會接收一包含辨識符資訊的顯像命令570(或是一顯像命令集);檢查對應於該辨識符資訊的資源資料是否被載入至該GPU伺服器540的一記憶體中;於該GPU伺服器540並未保有對應於該辨識符資訊的資源資料的情況中,藉由發送辨識符資訊575給資源儲藏器500來獲取對應於該辨識符資訊的資源資料565並且載入至一記憶體之中;以及利用該經獲取與載入的資源資料565來顯像該影像。該GPU伺服器540接著會輸出該經顯像的影像(用於該客端裝置120的畫面影像),且該影像會被編碼並被傳送至該客端裝置120。該經顯像影像的編碼與傳送可以在該GPU伺服器540或是在另一實體之中被實施。
藉由依此方式來配置該系統,因為資源資料係傳送自CPU 伺服器520的關係所用到的通信頻寬會減少,因為並不需要從該CPU伺服器520至該資源儲藏器500進行相同資源資料的多次傳送而且傳送相同資源資料至相同或是至分開的GPU伺服器540也會減少。此外,亦能夠實現減少用於顯像命令的資料量並且在多個GPU伺服器540之間重複使用資源資料。又,因為該些GPU伺服器540獲取資源資料所用到的通信頻寬亦會減少,因為該些GPU伺服器540僅在該資源資料沒有保存在該些GPU伺服器540本身之中的情況中才會獲取該資源資料。
於某些實施例中,該CPU伺服器520會以該遊戲的進展與 條件為基礎選擇該些GPU伺服器540中的其中一者以便提供該些遊戲畫面給該客端裝置120。或者,另一伺服器(其管理多個GPU伺服器540)可以從 該CPU伺服器520處接收多個請求,並且實施GPU伺服器540的選擇。舉例來說,該CPU伺服器520(或是已從該CPU伺服器520處接收該些請求的該另一伺服器)會實施GPU伺服器540的分派,俾使得一共同的GPU伺服器產生用於有雷同遊戲進展或情況的多個客端裝置120的遊戲畫面,例如,當遊戲的進展係在相同級別或者使用者的操作角色存在於該遊戲中相同的場地。這係因為共同的資源資料用於產生被提供至有雷同遊戲進展或情況的多個客端裝置120的遊戲畫面的可能性很大。換言之,可重新使用的資源資料已被儲存在要被實施此種分派的GPU伺服器540中可以較高速度存取的區域快取記憶體之中的可能性很大。或者,該CPU伺服器520(或是已從該CPU伺服器520處接收該些請求的該另一伺服器)會實施GPU伺服器540的分派俾使得,於共同的資源資料被用在複數個客端裝置120的複數個畫面影像之顯像處理的情況中,一共同的GPU伺服器540會以該共同的資源資料為基礎來顯像該複數個畫面影像。
圖6所示的係在上面所述的顯像系統中所執行的示範性處 理的序列圖。於該處理中,客端裝置120傳送一用於提供影像的請求給CPU伺服器520(步驟S601)。CPU伺服器520接著會以該請求為基礎傳送用以進行對應於該已接收請求之顯像處理所必要的資源資料(步驟S602),並且資源儲藏器500會結合用以辨識該資源資料的辨識資訊來儲存該已傳送的資源資料(步驟S603)。該辨識資訊可以由CPU伺服器520來產生,或是可以由該資源儲藏器500產生並且回報給該CPU伺服器520。該CPU伺服器520接著會產生一包含該辨識資訊的顯像命令(或是一顯像命令集)(步驟S604)並且傳送該顯像命令給GPU伺服器540(步驟S605)。該GPU伺服器540會 接收該顯像命令(步驟S605),並且接著從資源儲藏器500處獲取由被併入在該些已接收顯像命令中的辨識資訊所辨識的資源資料。舉例來說,該GPU伺服器傳送一用於包含該辨識資訊的資源資料的請求(步驟S606)並且獲取對應於於該辨識資訊的資源資料(步驟S607)。該GPU伺服器540接著會載入該資源資料於該GPU伺服器540的一記憶體之中(步驟S608)。該GPU伺服器540接著會以該已接收的顯像命令為基礎利用該已獲取並且被載入於該記憶體之中的資源資料來執行顯像處理並且顯像一對應於來自該客端裝置之用於提供影像的請求的影像(步驟S609)。最後,該GPU伺服器會傳送該已顯像的影像給該客端裝置(步驟S610)。
據此,該GPU伺服器504存取該資源儲藏器500的存取頻 率會降低,並且用於產生遊戲畫面所需要的處理時間會縮短。另外,假設倘若該必要的資源資料不存在於該快取記憶體之中的話,因為該GPU伺服器504會從資源儲藏器500處獲取該資源資料,所以,即使於該客端裝置120根據遊戲的進展被分派至一分開的GPU伺服器504的情況中,提供遊戲畫面給該客端裝置120仍能夠沒有阻礙地被實施。
於其它實施例中,如圖7中所示,在一第一GPU伺服器740a 中的一非資源資料傳送器741會傳送資料780至資源儲藏器500,該資料780係在該第一GPU伺服器740a中被取得並且用於顯像處理或畫面傳送兩者之中的至少其中一者。請注意,該被傳送的資料(下文中稱為「非資源資料」)780不同於資源資料565,資源資料565係從CPU伺服器520處被傳送至資源儲藏器500。也就是,非資源資料780雖然可以為不同於資源資料565的資料,但是必須用以顯像一影像及/或將其傳送給已傳送一用於提供影像之請求給 CPU伺服器520的客端裝置120。據此,非資源資料780可能包含由第一GPU伺服器740a產生的資料。除此之外,或者,該非資源資料亦可以為動態變化資料,而資源資料則可以為靜態資料。動態變化資料可以為並非每一個訊框皆從scratch處算出的「模擬」,而係利用前面訊框的結果,舉例來說,在物理領域、顆粒領域、或是動畫領域。還有許多被稱為「暫態性(temporal)」的演算法,其意謂著它們需要多個資料訊框方能取得結果。該些演算法使用的資料亦可被視為動態變化資料。於該GPU伺服器740a利用一或更多個先前已顯像的影像來顯像一影像的情況中,該非資源資料可以包含該些先前已顯像的影像。藉由此種配置,第二GPU伺服器740b(其不同於第一GPU伺服器740a)中的一非資源資料獲取器742便能夠藉由存取資源儲藏器500而獲取非資源資料785,並且取代該第一GPU伺服器740a來顯像一影像並且將其傳送至一已傳送用於提供影像之請求給CPU伺服器520的客端裝置120。
切換該GPU伺服器以便為一客端裝置120顯像一影像可以 於該第一GPU伺服器740a(其目前正在為該客端裝置120顯像該影像)處在過負載狀態(overloaded state)的情況中被實施。舉例來說,經判斷於下面至少其中一者的數值大於預設數值的情況中該第一GPU伺服器740a便可能處在過負載狀態中:一中央處理單元(CPU)的使用率、一圖形處理單元(GPU)的使用率、該CPU中的一記憶體的使用率、該GPU中的一記憶體的使用率、一硬碟機的使用率、一網路的頻帶使用率、功率使用率、或是該第一GPU伺服器740a中的熱產生位準。判斷該第一GPU伺服器740a是否處在過負載狀態中可以由CPU伺服器520、第一GPU伺服器740a、第二GPU伺服器 740b、或是另一實體來實施。
於CPU伺服器520實施該判斷的情況中,於該CPU伺服器 520判定該第一GPU伺服器740a處在過負載狀態中的情況中,該CPU伺服器520可以將該些顯像命令的目的地從該第一GPU伺服器740a處切換至該第二GPU伺服器740b並且開始傳送顯像命令770b給該第二GPU伺服器740b。於此情況中,該CPU伺服器520可以於該顯像命令770b之中包含用以表示該些GPU伺服器的切換要被實施的額外資訊。或者,該CPU伺服器520可以傳送另一信號給該第二GPU伺服器740b,用以回報該第一GPU伺服器740a處在過負載狀態中。
第二GPU伺服器740b可以藉由從CPU伺服器520處接收顯 像命令770b或是上面所述的信號而確認該第一GPU伺服器740a處在過負載狀態中。於此情況中,該第二GPU伺服器740b可以在接收傳送自該CPU伺服器520或是傳輸自該第一GPU伺服器740a的顯像命令770b時從資源儲藏器500處獲取資源資料565b與非資源資料785,以該經獲取的資源資料與非資源資料為基礎來顯像一影像並且將其傳送至一已傳送用於提供影像之請求給CPU伺服器520的客端裝置120。或者,該第二GPU伺服器740b可以週期性(也就是,以熱閒置的方式)獲取該非資源資料785並且在接收該顯像命令770b時獲取資源資料565b。該第二GPU伺服器740b可以週期性獲取資源資料565b與非資源資料785,並且根據顯像命令770b開始顯像以及傳送一影像。該第二GPU伺服器740b可以在以該顯像命令770b為基礎從資源儲藏器500處獲取資源資料565b並且將該資源資料565b載入至一記憶體中之後獲取該非資源資料785。
於該第一GPU伺服器740a實施判斷的情況中,於該第一 GPU伺服器740a判斷該第一GPU伺服器740a本身處在過負載狀態之中的情況中,該第一GPU伺服器740a可以通知第二GPU伺服器740b該第一GPU伺服器740a處在過負載狀態之中。該第二GPU伺服器740b可以藉由從該第一GPU伺服器740a處接收該通知而確認該第一GPU伺服器740a處在過負載狀態之中。於此情況中,該第二GPU伺服器740b可以在接收傳送自該CPU伺服器520或是傳輸自該第一GPU伺服器740a的顯像命令770b時從資源儲藏器500處獲取資源資料565b與非資源資料785,以該經獲取的資源資料與非資源資料為基礎來顯像一影像並且將其傳送至一已傳送用於提供影像之請求給CPU伺服器520的客端裝置120。或者,該第二GPU伺服器740b可以週期性獲取該非資源資料785並且在接收該顯像命令770b時獲取資源資料565b。該第二GPU伺服器740b可以週期性獲取資源資料565b與非資源資料785,並且根據顯像命令770b開始顯像以及傳送一影像。該第二GPU伺服器740b可以在以該顯像命令770b為基礎從資源儲藏器500處獲取資源資料565b並且將該資源資料565b載入至一記憶體中之後獲取該非資源資料785。
於該第二GPU伺服器740b實施判斷的情況中,該第二GPU 伺服器740b會藉由該判斷來確認該第一GPU伺服器740a處在過負載狀態之中。據此,該第二GPU伺服器740b可以從資源儲藏器500處獲取資源資料565b與非資源資料785。接著,該第二GPU伺服器740b會根據傳送自該CPU伺服器520或是傳輸自該第一GPU伺服器740a的顯像命令770b以該經獲取的資源資料與非資源資料為基礎來顯像一影像並且將其傳送至一已 傳送用於提供影像之請求給CPU伺服器520的客端裝置120。該第二GPU伺服器740b可以回報該CPU伺服器520該第一GPU伺服器740a處在過負載狀態之中,並且讓該CPU伺服器520開始傳送顯像命令770b給第二GPU伺服器740b。請注意,該第二GPU伺服器740b可以週期性獲取該非資源資料785,在接收該顯像命令770b時獲取資源資料565b,並且根據顯像命令770b開始顯像以及傳送一影像。該第二GPU伺服器740b可以週期性獲取資源資料565b與非資源資料785,並且根據顯像命令770b開始顯像以及傳送一影像。該第二GPU伺服器740b會藉由週期性獲取該非資源資料而同步於該第一GPU伺服器740a,且所以能夠達成將顯像伺服器從第一GPU伺服器740a通透切換至第二GPU伺服器740b。舉例來說,於可接受畫面上有特定跳動(popping)或閃爍(stuttering)程度的情況中,該第二GPU伺服器740b可以在以該顯像命令為基礎從資源儲藏器500處獲取資源資料565b並且將該資源資料565b載入至一記憶體中之後獲取該非資源資料785。
於另一實體實施判斷的情況中,該實體會通知CPU伺服器 520、第一GPU伺服器740a、及/或第二GPU伺服器740b該第一GPU伺服器740a處在過負載狀態之中,並且上面所述處理中的其中一者會根據該通知被送往哪一個伺服器而被實施。
用於為一客端裝置120顯像影像的GPU伺服器的切換可於 該第一顯像伺服器的至少一部分失效的情況中被實施。該失效之偵側可藉由接收一週期性傳送自該第一GPU伺服器740a的信號來實施。舉例來說,該第一GPU伺服器740a週期性傳送一用以表示該第一GPU伺服器740a之操作狀態的通知信號,而CPU伺服器520或第二GPU伺服器740b則確認 該第一GPU伺服器740a的操作狀態(舉例來說,在該第一GPU伺服器740a中是否發生失效)。於該通知信號未在一預設時間週期中被接收的情況中或是於該通知信號表示該第一GPU伺服器740a沒有正常操作的情況中,該CPU伺服器520或該第二GPU伺服器740b便可以確認在該第一GPU伺服器740a中發生失效。該預設時間週期可被設為長於該通知信號傳送的時間週期。或者,該CPU伺服器520、該第二GPU伺服器740b、或是另一實體可藉由監視該第一GPU伺服器740a是否正常操作來實施該偵測。於另一實體實施該偵測的情況中,該實體會通知該CPU伺服器520、該第一GPU伺服器740a、及/或該第二GPU伺服器740b偵測結果。
在偵側該失效之後可以實施雷同於上面關於該第一GPU伺 服器740a是否處在過負載狀態之中的情況所述的處理。舉例來說,於該CPU伺服器520實施偵測的情況中,於該CPU伺服器520偵測到失效發生在該第一GPU伺服器740a中的情況中,該CPU伺服器520可以將該些顯像命令的目的地從該第一GPU伺服器740a切換至該第二GPU伺服器740b並且開始傳送該顯像命令770b至該第二GPU伺服器740b。於此情況中,該CPU伺服器520可以於該顯像命令770b之中包含用以表示該些GPU伺服器的切換要被實施的額外資訊。或者,該CPU伺服器520可以傳送另一信號給該第二GPU伺服器740b,用以回報在該第一GPU伺服器740a中發生失效。
根據上面所述的配置,於該些GPU伺服器中其中一者處在 過負載狀態中的情況中或是於該些GPU伺服器中其中一者中發生失效的情況中,該CPU伺服器520很容易將已從該GPU伺服器處接收遊戲畫面的使用者轉移至該些GPU伺服器中的另一GPU伺服器。也就是,因為該些使用 者要轉移至的GPU伺服器能夠從資源儲藏器500處獲取該資源資料與該非資源資料,所以,除了顯像命令的目的地之外,該CPU伺服器520無需改變顯像命令。
請注意,每一個上面所述實施例的所有或部分元件可以由一或更多個軟體程式來施行。也就是,當在該CPU伺服器、該些GPU伺服器、或是該資源儲藏器之中所包括的一或更多部電腦之中執行該一或更多個軟體程式時可以實施上面所述特點中的全部或一部分。當然,每一個上面所述實施例的所有或部分元件亦可以由一或更多個硬體構件來施行。
本發明雖然參考示範性實施例來說明;不過,應該瞭解的係,本發明並不受限於該些已揭示範性實施例。下面申請專利範圍的範疇符合最廣義的詮釋俾便涵蓋所有此些修正以及等效結構與功能。另外,根據本發明的顯像系統與控制方法可由在一電腦上執行該些方法的程式來實現。該程式可藉由被儲存在一電腦可讀取儲存媒體中或是經由一電子通信線路來提供/散佈。

Claims (16)

  1. 一種顯像系統,其包括一中央伺服器,其讓被連接至該中央伺服器的複數個顯像伺服器中的其中一者執行一畫面的顯像處理,該畫面對應於發送自一客端裝置的畫面提供請求;以及一儲藏裝置,其儲存用於該顯像處理的必要資源資料並且該複數個顯像伺服器能夠存取該儲藏裝置,其中,該中央伺服器包括:請求接收構件,用於從客端裝置處接收畫面提供請求;資源傳送構件,用於以被該請求接收構件所收到的畫面提供請求為基礎來傳送對應於該畫面提供請求之用於顯像處理的必要資源資料給該儲藏裝置;以及命令傳送構件,用於產生顯像命令以及用於傳送該些命令給該複數個顯像伺服器中的其中一者,該些顯像命令包含辨識被儲存在該儲藏裝置之中的必要資源資料的辨識資訊,其中,該儲藏裝置包括:儲存構件,用於結合該辨識資訊來儲存該資源傳送構件所傳送的必要資源資料,其中,該顯像伺服器包括:命令接收構件,用以從該中央伺服器處接收顯像命令;載入構件,用以從該儲藏裝置處接收由被併入在該些已收到的顯像命令中的辨識資訊所辨識的必要資源資料並且用於將該資料載入至一記憶體之中;顯像構件,用於以該些已收到的顯像命令為基礎利用被載入於該記憶體之中的必要資源資料來執行顯像處理並且顯像一對應於該畫面提供 請求的畫面;以及畫面傳送構件,用於傳送該已顯像的畫面給一傳送該畫面提供請求的客端裝置,其中,該複數個顯像伺服器中的第一顯像伺服器包括資料傳送構件,用於傳送在該第一顯像伺服器中取得並且用於該顯像處理或畫面傳送中至少其中一者的資料給該儲藏裝置,該被傳送的資料不同於該必要資源資料,以及其中,該複數個顯像伺服器中的第二顯像伺服器包括資料獲取構件,用於獲取由該第一顯像伺服器傳送至該儲藏裝置之不同於該必要資源資料的資料。
  2. 根據申請專利範圍第1項的顯像系統,其中,於由包含該些顯像命令的辨識資訊所辨識的全部必要資源資料尚未被載入於記憶體之中的情況中,該載入構件從該儲藏裝置處接收該必要資源資料的剩餘部分。
  3. 根據申請專利範圍第1項的顯像系統,其中,該畫面提供請求係一用於提供一遊戲內容之畫面的請求,以及其中,該命令傳送構件傳送對應於接收自多個客端裝置之畫面提供請求有雷同遊戲進展或情況的顯像命令給該複數個顯像伺服器中的相同顯像伺服器。
  4. 根據申請專利範圍第1項的顯像系統,其中,該命令傳送構件傳送共同必要資源資料被使用在顯像處理中的顯像命令給該複數個顯像伺服器中的相同顯像伺服器。
  5. 根據申請專利範圍第1項的顯像系統,其中,該不同於該必要資源資 料的資料包含由該第一顯像伺服器所產生的資料。
  6. 根據申請專利範圍第1項的顯像系統,其中,該必要資源資料為靜態資料,而該不同於該必要資源資料的資料包含動態變化資料。
  7. 根據申請專利範圍第1項的顯像系統,其中,該第二顯像伺服器會於該第一顯像伺服器處在過負載狀態的情況中獲取該不同於該必要資源資料的資料。
  8. 根據申請專利範圍第7項的顯像系統,其中,該第二顯像伺服器進一步包括判斷構件,用於:監視一中央處理單元的使用率、一圖形處理單元的使用率、一中央處理單元中的一記憶體的使用率、一圖形處理單元中的一記憶體的使用率、一硬碟機的使用率、一網路的頻帶使用率、功率使用率、或是該第一顯像伺服器中的熱產生位準中至少其中一者的數值;以及於該數值大於一預設數值的情況中判定該第一顯像伺服器處在過負載狀態之中。
  9. 根據申請專利範圍第7項的顯像系統,其中,該第一顯像伺服器進一步包括:判斷構件,用以於一中央處理單元的使用率、一圖形處理單元的使用率、一中央處理單元中的一記憶體的使用率、一圖形處理單元中的一記憶體的使用率、一硬碟機的使用率、一網路的頻帶使用率、功率使用率、或是該第一顯像伺服器中的熱產生位準中至少其中一者的數值大於一預設數值的情況中判定該第一顯像伺服器處在過負載狀態之中;以及通知構件,用以於其判定該第一顯像伺服器處在過負載狀態之中的情況中通知該第二顯像伺服器第一顯像伺服器處在過負載狀態之中。
  10. 根據申請專利範圍第1項的顯像系統,其中,該第二顯像伺服器於 該第一顯像伺服器的至少一部分失效的情況中獲取該不同於該必要資源資料的資料。
  11. 根據申請專利範圍第10項的顯像系統,其中,該第二顯像伺服器進一步包括監視構件,用於監視該第一顯像伺服器是否正常操作。
  12. 根據申請專利範圍第10項的顯像系統,其中,該第一顯像伺服器進一步包括通知構件,用以週期性傳送一用以表示該第一顯像伺服器之操作狀態的通知信號給該第二顯像伺服器;以及其中,該第二顯像伺服器包括判斷構件,用以於該通知信號未在一預設時間週期中被接收的情況中或是於該通知信號表示該第一顯像伺服器沒有正常操作的情況中判定該第一顯像伺服器的至少一部分失效。
  13. 根據申請專利範圍第1項的顯像系統,其中,該第二顯像伺服器週期性獲取該不同於該必要資源資料的資料。
  14. 根據申請專利範圍第1項的顯像系統,其中,該第二顯像伺服器在該第二顯像伺服器從該中央伺服器或是該第一顯像伺服器處獲取該辨識資訊之後獲取該不同於該必要資源資料的資料;從該儲藏裝置處接收由該辨識資訊所辨識的該必要資源資料;以及將該必要資源資料載入至一記憶體之中。
  15. 一種顯像系統的控制方法,該顯像系統包括:一中央伺服器,其讓被連接至該中央伺服器的複數個顯像伺服器中的其中一者執行一畫面的顯像處理,該畫面對應於發送自一客端裝置的畫面提供請求;以及一儲藏裝置,其儲存用於該顯像處理的必要資源資料並且該複數個顯像伺服器能夠存取該儲藏裝置,該方法包括下面步驟: 該中央伺服器從客端裝置處接收畫面提供請求;該中央伺服器以所收到的畫面提供請求為基礎來傳送對應於該畫面提供請求之用於顯像處理的必要資源資料給該儲藏裝置;該儲藏裝置結合用以辨識該中央伺服器所傳送的必要資源資料的辨識資訊來儲存該必要資源資料,該中央伺服器產生顯像命令以及傳送該些命令給該複數個顯像伺服器中的其中一者,該些顯像命令包含該辨識資訊,該顯像伺服器從該中央伺服器處接收顯像命令;該顯像伺服器從該儲藏裝置處接收由被併入在該些已收到的顯像命令中的辨識資訊所辨識的必要資源資料並且將該資料載入至一記憶體之中;該顯像伺服器以該些已收到的顯像命令為基礎利用被載入於該記憶體之中的必要資源資料來執行顯像處理並且顯像一對應於該畫面提供請求的畫面;該顯像伺服器傳送該已顯像的畫面給一傳送該畫面提供請求的客端裝置;該複數個顯像伺服器中的第一顯像伺服器傳送在該第一顯像伺服器中取得並且用於該顯像處理或畫面傳送中至少其中一者的資料給該儲藏裝置,該被傳送的資料不同於該必要資源資料;以及該複數個顯像伺服器中的第二顯像伺服器獲取由該第一顯像伺服器傳送至該儲藏裝置之不同於該必要資源資料的資料。
  16. 一種電腦可讀取儲存媒體,用以儲存一程式而讓一或更多部電腦發揮如申請專利範圍第1至14項的任一項中所定義的顯像系統的至少一單元 的功能。
TW103125492A 2013-12-26 2014-07-25 顯像系統、控制方法及儲存媒體 TWI649656B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361920835P 2013-12-26 2013-12-26
US61/920,835 2013-12-26

Publications (2)

Publication Number Publication Date
TW201525712A TW201525712A (zh) 2015-07-01
TWI649656B true TWI649656B (zh) 2019-02-01

Family

ID=53478055

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103125492A TWI649656B (zh) 2013-12-26 2014-07-25 顯像系統、控制方法及儲存媒體

Country Status (4)

Country Link
US (1) US20160293134A1 (zh)
JP (1) JP6310073B2 (zh)
TW (1) TWI649656B (zh)
WO (1) WO2015098165A1 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10409967B2 (en) * 2015-06-16 2019-09-10 HAH, Inc. Method and system for control of computing devices
US10456672B2 (en) 2016-05-19 2019-10-29 Google Llc Methods and systems for facilitating participation in a game session
US10038644B2 (en) * 2016-05-27 2018-07-31 Bank Of America Corporation Communication system for resource usage monitoring
US10154101B2 (en) 2016-05-27 2018-12-11 Bank Of America Corporation System for resource usage monitoring
US10104199B2 (en) 2016-05-27 2018-10-16 Bank Of America Corporation Three-way communication link for information retrieval and notification
US10046236B2 (en) * 2016-06-13 2018-08-14 Sony Interactive Entertainment America, LLC Browser-based cloud gaming
US20180040095A1 (en) * 2016-08-02 2018-02-08 Qualcomm Incorporated Dynamic compressed graphics state references
KR102594608B1 (ko) * 2016-12-06 2023-10-26 주식회사 알티캐스트 하이브리드 유저 인터페이스 제공 시스템 및 그 방법
EP4336800A3 (en) 2017-10-10 2024-05-29 Google LLC Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content
US11140207B2 (en) 2017-12-21 2021-10-05 Google Llc Network impairment simulation framework for verification of real time interactive media streaming systems
KR102360052B1 (ko) 2018-03-22 2022-02-08 구글 엘엘씨 온라인 인터랙티브 게임 세션들에 대한 콘텐츠를 렌더링 및 인코딩하기 위한 방법들 및 시스템들
CN115253276A (zh) 2018-04-02 2022-11-01 谷歌有限责任公司 交互式云游戏的方法、设备和系统
US11077364B2 (en) 2018-04-02 2021-08-03 Google Llc Resolution-based scaling of real-time interactive graphics
EP3740292A2 (en) 2018-04-02 2020-11-25 Google LLC Input device for an electronic system
JP7073494B2 (ja) 2018-04-10 2022-05-23 グーグル エルエルシー ゲームレンダリングにおけるメモリ管理
CN109445760B (zh) * 2018-10-08 2022-08-23 武汉联影医疗科技有限公司 图像渲染方法和系统
US11662051B2 (en) 2018-11-16 2023-05-30 Google Llc Shadow tracking of real-time interactive simulations for complex system analysis
CN109727183B (zh) * 2018-12-11 2023-06-23 中国航空工业集团公司西安航空计算技术研究所 一种图形渲染缓冲区压缩表的调度方法及装置
GB2583511B (en) * 2019-05-02 2024-01-10 Sony Interactive Entertainment Inc Method of and system for controlling the rendering of a video game instance
CN110599396B (zh) * 2019-09-19 2024-02-02 网易(杭州)网络有限公司 信息处理方法及装置
WO2021065053A1 (ja) 2019-10-02 2021-04-08 株式会社ソニー・インタラクティブエンタテインメント データ処理システム、データ処理方法およびコンピュータプログラム
WO2021065052A1 (ja) * 2019-10-02 2021-04-08 株式会社ソニー・インタラクティブエンタテインメント データ処理システム、データ処理方法およびコンピュータプログラム
CN111124579B (zh) * 2019-12-24 2023-12-19 北京金山安全软件有限公司 一种特效渲染方法、装置、电子设备及存储介质
CN111310088B (zh) * 2020-02-12 2023-07-04 北京字节跳动网络技术有限公司 一种页面渲染方法及装置
CN111399976A (zh) * 2020-03-02 2020-07-10 上海交通大学 基于api重定向技术的gpu虚拟化实现系统及方法
US20230118548A1 (en) * 2020-03-09 2023-04-20 A.L.I. Technologies Inc. Image processing system, program, and image processing method
CN111951366B (zh) * 2020-07-29 2021-06-15 北京蔚领时代科技有限公司 一种云原生3d场景游戏方法和系统
KR102394158B1 (ko) * 2020-12-17 2022-05-09 주식회사 컬러버스 메타버스 공간 스트리밍 시스템 및 방법
US20240108980A1 (en) * 2021-01-28 2024-04-04 Interdigital Ce Patent Holdings, Sas Method, apparatuses and systems directed to adapting user input in cloud gaming
CN115797527A (zh) * 2021-09-10 2023-03-14 华为云计算技术有限公司 一种场景渲染方法、装置、设备及系统
CN113947518B (zh) * 2021-11-02 2024-04-30 北京蔚领时代科技有限公司 数据处理系统
CN114581580A (zh) * 2022-02-28 2022-06-03 维塔科技(北京)有限公司 渲染图像的方法、装置、存储介质及电子设备
CN115292020B (zh) * 2022-09-26 2022-12-20 腾讯科技(深圳)有限公司 一种数据处理方法、装置、设备以及介质
CN115604270B (zh) * 2022-11-29 2023-03-14 北京数原数字化城市研究中心 一种渲染服务器的选取方法及装置
CN116433818B (zh) * 2023-03-22 2024-04-16 宝钢工程技术集团有限公司 一种云端cpu及gpu平行渲染方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509390B1 (en) * 2005-06-01 2009-03-24 Cisco Technology, Inc. Methods and apparatus for controlling the transmission of data
US20120299938A1 (en) * 2011-05-25 2012-11-29 Kabushiki Kaisha Square Enix (Also Trading As Square Enix Co., Ltd.) Rendering control apparatus, control method thereof, recording medium, rendering server, and rendering system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201455A1 (en) * 2007-02-15 2008-08-21 Husain Syed M Amir Moving Execution of a Virtual Machine Across Different Virtualization Platforms
US9104962B2 (en) * 2007-03-06 2015-08-11 Trion Worlds, Inc. Distributed network architecture for introducing dynamic content into a synthetic environment
US8429269B2 (en) * 2009-12-09 2013-04-23 Sony Computer Entertainment Inc. Server-side rendering
US8736622B2 (en) * 2011-12-07 2014-05-27 Ubitus Inc System and method of leveraging GPU resources to enhance performance of an interact-able content browsing service

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509390B1 (en) * 2005-06-01 2009-03-24 Cisco Technology, Inc. Methods and apparatus for controlling the transmission of data
US20120299938A1 (en) * 2011-05-25 2012-11-29 Kabushiki Kaisha Square Enix (Also Trading As Square Enix Co., Ltd.) Rendering control apparatus, control method thereof, recording medium, rendering server, and rendering system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TW圖式第1圖A; *

Also Published As

Publication number Publication date
TW201525712A (zh) 2015-07-01
JP2017510862A (ja) 2017-04-13
WO2015098165A1 (en) 2015-07-02
US20160293134A1 (en) 2016-10-06
JP6310073B2 (ja) 2018-04-11

Similar Documents

Publication Publication Date Title
TWI649656B (zh) 顯像系統、控制方法及儲存媒體
JP5987060B2 (ja) ゲームシステム、ゲーム装置、制御方法、プログラム及び記録媒体
US9370718B2 (en) System and method for delivering media over network
JP6196668B2 (ja) クラウド型ゲームシステムにおける描画リソースの動的割り当て
US9584575B2 (en) Qualified video delivery
TWI608856B (zh) 資訊處理裝置、成像裝置、方法及程式
JP6069528B2 (ja) 画像処理装置、画像処理システム、画像処理方法、及び記憶媒体
JP5952406B2 (ja) 遠隔描画能力を有するビデオゲーム装置
JP6576245B2 (ja) 情報処理装置、制御方法及びプログラム
CN103918012A (zh) 渲染系统、渲染服务器、其控制方法、程序及记录媒体
GB2517102A (en) Qualified video delivery
JP6379107B2 (ja) 情報処理装置並びにその制御方法、及びプログラム
JP6306089B2 (ja) ネットワークを通してメディアを伝送するシステム及び方法
CA2918725C (en) Information processing apparatus, control method, program, and recording medium
JP2016509486A (ja) ネットワークを介して送信するためのビデオゲーム画面画像の生成及び符号化を行う方法及びシステム
CN114221987A (zh) 云游戏处理方法和系统
CA2798066A1 (en) Method and system of creating and encoding video game screen images for transmission over a network