TWI650164B - 資訊處理設備,用於控制其之方法及程式 - Google Patents

資訊處理設備,用於控制其之方法及程式 Download PDF

Info

Publication number
TWI650164B
TWI650164B TW103113834A TW103113834A TWI650164B TW I650164 B TWI650164 B TW I650164B TW 103113834 A TW103113834 A TW 103113834A TW 103113834 A TW103113834 A TW 103113834A TW I650164 B TWI650164 B TW I650164B
Authority
TW
Taiwan
Prior art keywords
value
values
input
output
information processing
Prior art date
Application number
TW103113834A
Other languages
English (en)
Other versions
TW201501760A (zh
Inventor
西里爾 佩蘭
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 TW201501760A publication Critical patent/TW201501760A/zh
Application granted granted Critical
Publication of TWI650164B publication Critical patent/TWI650164B/zh

Links

Classifications

    • 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/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • 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
    • 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
    • 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/40Processing input control signals of video game devices, e.g. signals generated by the player or derived from the environment
    • 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/80Special adaptations for executing a specific game genre or game mode
    • A63F13/847Cooperative playing, e.g. requiring coordinated actions from several players to achieve a common goal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N17/00Diagnosis, testing or measuring for television systems or their details
    • 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/45Controlling the progress of the video game
    • A63F13/49Saving the game status; Pausing or ending the game
    • A63F13/497Partially or entirely replaying previous game actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Library & Information Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Processing Or Creating Images (AREA)
  • Debugging And Monitoring (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一種資訊處理設備提供一系統,其接收輸入並根據該些輸入以呈顯一或更多影像,其具有一輸入集合,該輸入集合含有從用以儲存輸入集合與第一數值之儲存裝置中所擷取到的一或更多輸入。該些第一數值各者對應於多個第一輸出的一者,並且該些第一輸出各者是藉由先前經提供至該系統之所儲存輸入集合的各者所獲得。該設備藉由將該輸入集合提供至該系統以獲得一第二輸出,且一第二數值對應於該第二輸出。該設備檢查該第二數值是否匹配於該些第一數值的一者並且輸出該檢查的結果,然後將對應於該些第一數值之一者的該等所儲存輸入集合之一者提供至該系統,其對應於該第二數值。

Description

資訊處理設備,用於控制其之方法及程式
本發明是關於一種用以對一接收輸入並根據該等輸入以呈顯影像之系統進行測試的資訊處理設備,用於控制其之方法與程式。
視訊遊戲產業既已自單立式街機遊戲,至家庭式電腦遊戲,到出現專用主控台的遊戲而大幅演進。後來廣泛大眾存取網際網路導致出現另一項重大發展,亦即「雲端遊戲」。在雲端遊戲系統中,玩家可運用一般具有網際網路功能的應用設備,像是智慧型手機或平板,以透過網際網路連接至視訊遊戲伺服器。視訊遊戲伺服器可對此玩家啟動一會期,並且可為多位玩家進行該項作業。該視訊遊戲伺服器可呈顯視訊資料,並且依照玩家的動作(即如移動、選擇)以及該遊戲的其他屬性對該玩家產生音訊。經編碼的視訊和音訊會經由網際網路遞送至該玩家的裝置上,然後予以重製為影像與可聽聞的聲音。按此方式,來自世界各地的玩家可遊玩一視訊遊戲而無須使用特殊的視訊遊戲主控台、計算密集的軟體或是專屬的圖形處理硬體。
傳統上,視訊遊戲是藉由令人類測試者遊玩該遊戲的方式來進行測試。在遊戲的過程中,測試者可施加多項輸入來移動其頭像/人物以 及執行其他的動作(即如射擊、扔擲、踢踹等等)。有時必須對該遊戲接續地進行多次測試,藉以顯露出程式碼中的細微問題或錯誤。不過,當嘗試重玩該遊戲時,該測試者幾乎是不可能在該遊戲裡完全相同的點處提供完全相同的輸入。因此,這會造成測試不一致性、冗長繁瑣且成本提高,而特別是對於其中可能需要協調眾多玩家之動作的多玩家遊戲來說尤甚。雖可依時間之函數的方式記錄測試輸入並且後續地重新施用,然這些方法通常可能不夠精準,並且最終地該等輸入可能會與當初始地記錄該等測試輸入時所獲得的遊戲內現生事件變成相位離出。在對一系統進行測試時,其中該系統自一或更多客戶端裝置接收輸入並且根據所收到輸入來呈顯影像,像是三維CAD系統或影像(效果)編輯器系統,也可能會出現這些類似問題。
根據本發明之一特點,茲提供一種資訊處理設備,其包含:提供裝置,其係用以接收輸入並根據該等輸入以呈顯一或更多影像的系統提供以一輸入集合,此集合含有從用以儲存輸入集合與第一數值之儲存裝置中所擷取到的一或更多輸入,其中該等第一數值各者是對應於多個第一輸出的一者,並且其中該等第一輸出各者是藉由先前經提供至該系統之所儲存輸入集合的各者所獲得;獲得裝置,其係用以藉由該提供裝置將該輸入集合提供至該系統以自該系統獲得一第二輸出,並且獲得一對應於該第二輸出的第二數值;檢查裝置,其係用以檢查該第二數值是否匹配於該等第一數值的一者;以及輸出裝置,其係用以顯明地或隱含地輸出該檢查的結果;其中該提供裝置將對應於該等第一數值之一者,其匹配於該第二數值,的所儲存輸入集合之一者提供至該系統。
自後載之示範性實施例說明,並且參照於隨附圖式,將本發明的進一步特性將變成顯明的。
10‧‧‧參與者資料庫
100‧‧‧伺服器系統
120、120A‧‧‧客戶端裝置
130‧‧‧網際網路
140、140A‧‧‧客戶端裝置輸入
150、150A‧‧‧媒體輸入
200C‧‧‧計算伺服器
200R‧‧‧呈顯伺服器
200H‧‧‧混合伺服器
204‧‧‧呈顯命令集合
205‧‧‧視訊資料串流
206、206A‧‧‧圖形輸出
210C1、210C2‧‧‧網路介面元件(NIC)
210R1、210R2‧‧‧網路介面元件(NIC)
210H‧‧‧網路介面元件(NIC)
220C、222C‧‧‧中央處理單元(CPU)
220R、222R‧‧‧中央處理單元(CPU)
220H、222H‧‧‧中央處理單元(CPU)
230C‧‧‧隨機存取記憶體(RAM)
230R‧‧‧隨機存取記憶體(RAM)
230H‧‧‧隨機存取記憶體(RAM)
240R、250R‧‧‧圖形處理單元(GPU)
240H、250H‧‧‧圖形處理單元(GPU)
242R、252R‧‧‧GPU核心
242H、252H‧‧‧GPU核心
246R、256R‧‧‧視訊隨機存取記憶體(VRAM)
246H、256H‧‧‧視訊隨機存取記憶體(VRAM)
260‧‧‧網路
270‧‧‧視訊遊戲功能模組
280‧‧‧呈顯功能功能模組
285‧‧‧視訊編碼器
500‧‧‧測試單元
510‧‧‧測試者
520‧‧‧呈顯命令集合
530‧‧‧第一數值
550‧‧‧資料庫
580‧‧‧輸入集合
720‧‧‧呈顯命令集合
730‧‧‧第二數值
780‧‧‧輸入集合
810‧‧‧步驟
820‧‧‧步驟
830‧‧‧步驟
840‧‧‧步驟
850‧‧‧步驟
901‧‧‧客戶端CPU
902‧‧‧客戶端儲存媒體
903‧‧‧客戶端RAM
904‧‧‧客戶端通訊單元
905‧‧‧客戶端解碼器
906‧‧‧客戶端顯示器
907‧‧‧客戶端輸入單元
1010‧‧‧舊呈顯命令集合
1020‧‧‧舊第一數值
1020*‧‧‧新第一數值
1030*‧‧‧新輸入集合
1040‧‧‧視訊資料
圖1A為根據本發明之非限制性實施例之一含有伺服器系統之雲端式視訊遊戲系統架構的方塊圖。
圖1B為根據本發明之非限制性實施例之圖1A雲端式視訊遊戲系統架構的方塊圖,圖中顯示在遊戲過程中透過資料網路與一組客戶端裝置所進行的互動。
圖2A為根據本發明之非限制性實施例之一顯示圖1架構之各項實體元件的方塊圖。
圖2B為圖2A的變化。
圖2C為一顯示圖1架構內的伺服器系統之各項模組的方塊圖,其可為由圖2A或2B的實體元件所實作並且可在遊戲過程中運行。
圖3A至3C為根據本發明之非限制性實施例,顯示由一呈顯命令產生器執行的一組視訊遊戲處理程序之執行作業的流程圖。
圖4A至4B為根據本發明之非限制性實施例,顯示一客戶端裝置分別地處理所收視訊和音訊之操作的流程圖。
圖5為根據本發明之非限制性實施例,顯示一測試單元並且描述其在一學習階段過程中的操作。
圖6為根據本發明之非限制性實施例之一顯示在該學習階段過程中該測試單元之動作的流程圖。
圖7為根據本發明之非限制性實施例之顯示該測試單元並 且描述其在一測試階段過程中的操作的方塊圖。
圖8為根據本發明之非限制性實施例之一顯示在該測試階段過程中該測試單元之動作的流程圖。
圖9顯示一根據本發明之非限制性實施例的客戶端裝置。
圖10為根據本發明之非限制性實施例之一顯示該測試單元之一替代性實施例並且描述其在該學習階段過程中之操作的方塊圖。
後文中將參照於隨附圖式詳細地說明一種用於測試一雲端式視訊遊戲系統的方法。然而,本發明的範疇實非受限於此一遊戲測試,並且可包含測試其他系統,其中該系統是在一網路上由一伺服器所執行,同時自一或更多客戶端裝置接收輸入且根據該等所收輸入以呈顯影像,像是三維CAD系統、影像(效果)編輯器系統等等。
I.雲端式遊戲架構
圖1A略圖顯示,根據本發明之非限制性實施例,一雲端式視訊遊戲系統架構。該架構可含有多個客戶端裝置120、120A,此等可經由像是網際網路130的資料網路以連接至一資訊處理設備,即如一伺服器系統100。圖中雖僅顯示兩台客戶端裝置120、120A,然應瞭解該雲端式視訊遊戲系統架構內之客戶端裝置的數量並無特定限制。
該等客戶端裝置120、120A的組態並無特別限制。在一些實施例裡,可將該等客戶端裝置120、120A的一或更多者具體實作於一個人電腦(PC)、一家用遊戲機(主控台)、一可攜式遊戲機、一智慧型電視、一機上盒(STB)等等之內。而在其他的實施例中,該等客戶端裝置120、120A的 一或更多者可為一通訊或計算裝置,像是行動電話、個人數位助理(PDA)或平板電腦。
圖9顯示一根據本發明之非限制性實施例的客戶端裝置120、120A之一般組態。一客戶端CPU 901可控制該客戶端裝置120、120A中所含之區塊/模組的操作。該客戶端CPU 901可藉由讀取經儲存在一客戶端儲存媒體902內對於該等區塊的作業程式,將該等程式載入一客戶端RAM 903裡並予執行,來控制該等區塊的操作。該客戶端儲存媒體902可為硬碟機(HDD)、非揮發性ROM或類似物。同時,這些作業程式可為專屬應用程式、瀏覽應用程式或類似物。除程式載入區域之外,亦可利用該客戶端RAM 903作為一用於在任何該等區塊之操作中臨時地儲存如中介性資料輸出之物項的儲存區域。
一客戶端通訊單元904可為該等客戶端裝置102、102A中所含的通訊介面。在一實施例中,該客戶端通訊單元904可透過網際網路130自該伺服器系統100接收所提供服務的經編碼螢幕資料。同時,在相反的通訊方向上,該客戶端通訊單元904可經由網際網路130將關於該客戶端裝置102、102A的使用者所進行之操作輸入的資訊傳送至該伺服器系統100。該客戶端解碼器905可解碼由該客戶端通訊單元904所收到的經編碼螢幕資料,並且產生螢幕資料。所產生的螢幕資料可藉由輸出至一客戶端顯示器906並予顯示以呈現給該客戶端裝置的使用者。注意到該客戶端裝置並非必然地設置有該客戶端顯示器906,而且該客戶端顯示器906可為一經連接至該客戶端裝置的外部顯示器設備。
該客戶端輸入單元907可為一該客戶端裝置內所含的使用 者介面。該客戶端輸入單元907可包含許多輸入裝置(像是觸控螢幕、鍵盤、遊戲控制器、搖桿等等),並且可偵測出使用者的操作輸入。對於所偵得的操作輸入,可透過該客戶端通訊單元904以將所整合資料傳送至該伺服器系統100,並且可在對該操作輸入加以分析之後傳送作為表示執行一特定操作輸入的資訊。同時,該客戶端輸入單元907可含有其他的感測器(即如KinectTM),這可包含一相機等等,而能夠偵測出一特定物體的移動,或是使用者的身體移動,來作為操作輸入。此外,該等客戶端裝置102、102A各者可含有揚聲器以供音訊輸出。
該等客戶端裝置120、120A各者可按任何適當方式,包含透過個別的區域存取網路(未予圖示)在內,以連接至網際網路130。該伺服器系統100雖亦可透過一區域存取網路(未予圖示)連接至網際網路130,然該伺服器系統100確可直接地連接至網際網路130而無須區域存取網路的中介。該雲端式遊戲伺服器系統100與該等客戶端裝置120、120A之一或更多者間的連接可包含一或更多通道。這些通道可為由實體及/或邏輯鏈路所組成,同時能夠在包含射頻、光纖、自由空間光學、同軸線路與絞線在內的各種實體媒體上行進。該等通道可遵行一像是UDP或TCP/IP的協定。並且,該等通道的一或更多者可為由虛擬私有網路(VPN)支援。在一些實施例裡,該等連接的一或更多者可為會期式。
該伺服器系統100可供該等客戶端裝置120、120A的使用者能夠個別地(亦即單一玩家視訊遊戲)或者是群組方式(亦即多玩家視訊遊戲)玩視訊遊戲。該伺服器系統100亦可讓該等客戶端裝置120、120A的使用者能夠旁觀其他玩家正在玩的遊戲。非限制性的視訊遊戲範例可包含具有 休閒、教育及/或運動性質的遊戲。視訊遊戲可提供參與者獲取錢幣的機會,然非必要。
該伺服器系統100亦可讓該等客戶端裝置120、120A的使用者能夠測試視訊遊戲及/或監管該伺服器系統100。
該伺服器系統100可含有一或更多計算資源,這可能包含一或更多遊戲伺服器,並且可含有或能夠存取一或更多資料庫,這可能包含參與者資料庫10。該參與者資料庫10可儲存有關各式參與者及客戶端裝置120、120A的資訊,像是識別資料、財務資料、位置資料、人口統計資料、連接資料等等。該(等)遊戲伺服器可藉共同硬體所具體實作,或者為不同然透過一通訊鏈路,包含可能透過網際網路130,所連接的伺服器。同樣地,該(等)資料庫可具體實作於該伺服器系統100內,或者該等可經由一通訊鏈路,可能是透過網際網路130,以與其相連接。
該伺服器系統100可實作一監管應用程式,藉以在該遊戲環境的外部,像是在玩遊戲之前,處置與該等客戶端裝置120、120A的互動。例如,該監管應用程式可經組態設定以將該等客戶端裝置120、120A中其一者的使用者註冊在一使用者類別之內(像是「玩家」、「旁觀者」、「監管者」或「測試者」)、追蹤該使用者經由網際網路的連接,並且回應於該使用者的(多項)命令來發起、加入、離開或終結一遊戲的實例,以及其他眾多非限制性功能。為此目的,該監管應用程式可能需要對該參與者資料庫10進行存取。
該監管應用程式可與不同使用者類別,例如非限制地包含像是「玩家」、「旁觀者」、「監管者」及「測試者」,內的使用者進行不同的互 動。因此,例如該監管應用程式可與一玩家(亦即在「玩家」使用者類別之內的使用者)進行互動,藉此讓該玩家能夠在該參與者資料庫10內設立一帳戶並且選定一視訊遊戲以供遊玩。在選定之後,該監管應用程式可叫用一伺服器側視訊遊戲應用程式。該伺服器側視訊遊戲應用程式可為由電腦可讀取指令所定義,此等指令為此玩家執行一組模組,從而讓該玩家能夠控制一視訊遊戲之虛擬世界裡的人物、頭像、賽車、座艙等等。在多玩家視訊遊戲的情況下,該虛擬世界可由兩位或更多的玩家所共享,並且其一玩家玩的遊戲可能會影響到另一位的遊戲結果。在另一範例裡,該監管應用程式可與一旁觀者(亦即「旁觀者」使用者類別之內的使用者)互動,藉以讓該旁觀者能夠在該參與者資料庫10內設立一帳號,並且自一進行中視訊遊戲的列表中選定該使用者意欲旁觀的視訊遊戲。在選定後,該監管應用程式可為該旁觀者叫用一組模組,讓該旁觀者能夠觀察其他使用者的遊玩情況,然不對該遊戲裡的作用中人物進行控制。(除另表述者外,當使用到該詞彙「參與者」時是為等同地適用於「玩家」使用者類別以及「旁觀者」使用者類別兩者。)在進一步範例裡,該監管應用程式可與一監管者(亦即「監管者」使用者類別之內的使用者)互動,讓該監管者能夠改變該遊戲伺服器應用程式的各種特性、執行更新以及管理玩家/旁觀者帳號。
又在另一範例裡,該遊戲伺服器應用程式可介接於一測試者(亦即「測試者」使用者類別之內的使用者),藉以讓該測試者能夠選定一待予測試的視訊遊戲。在選定後,該遊戲伺服器應用程式可為該測試者叫用一組模組,藉以讓該測試者能夠對該視訊遊戲進行測試。
圖1B說明,對於「玩家」或「旁觀者」使用者類別之內的 使用者,在遊戲過程中於該等客戶端裝置120、120A與該伺服器系統100之間所進行的互動。
在一些非限制性實施例裡,該伺服器側視訊遊戲應用程式可與一客戶端側視訊遊戲應用程式併同運作,該者可為由在一客戶端裝置,像是客戶端裝置120、120A,上執行的一組電腦可讀取指令所定義。利用客戶端側視訊遊戲應用程式可對該參與者提供自訂式介面以遊玩或旁觀該遊戲並且存取遊戲特性。在其他的非限制性實施例裡,該客戶端裝置並不具備可由該客戶端裝置直接地執行的客戶端側視訊遊戲應用程式。相反地,可利用一網頁瀏覽器以作為自該客戶端裝置觀點的介面。該網頁瀏覽器本身可在其自有軟體環境裡實例化一客戶端側視訊遊戲應用程式,藉以將與該伺服器側視訊遊戲應用程式的互動最佳化。
在一給定客戶端裝置上(獨立地或是在一瀏覽器內)運行的客戶端側視訊遊戲應用程式可將所接收的使用者輸入以及所偵得的使用者動作轉譯至「客戶端裝置輸入」裡,並可透過網際網路130將其發送至雲端式遊戲伺服器系統100。
在圖1B所示的實施例中,該客戶端裝置120可產生一客戶端裝置輸入140,而該客戶端裝置120A可產生一客戶端裝置輸入140A。該伺服器系統100可處理自各種客戶端裝置120、120A所收到的客戶端裝置輸入140、140A,並且可對於各種客戶端裝置120、120A產生個別的「媒體輸出」150、150A。該媒體輸出150、150A可包含經編碼之視訊資料(當顯示在螢幕上時表現影像)和音訊資料(當透過揚聲器播放時表現聲音)的串流。該媒體輸出150、150A可透過網際網路130以封包的形式發送。目的地為 該等客戶端裝置120、120A之一特定者的封包可為按此方式所定址,藉以透過網際網路130路由傳送至該裝置。該等客戶端裝置120、120A各者含有用於緩衝和處理自該雲端式遊戲伺服器系統100所收到的封包內之媒體輸出的電路,以及用於影像顯示的顯示器和用於音訊輸出的傳導器(如揚聲器)。亦可提供像是電子機械系統的額外輸出裝置以感應產生動作。
應瞭解可將視訊資料串流劃分成多個「訊框」。然此處所使用的詞彙「訊框」並不要求在視訊資料之訊框與由該視訊資料所表現之影像間存在有一對一的對應性。換言之,視訊資料的一訊框雖可含有依其整體性表現個別所顯示影像的資料,然對於視訊資料的一訊框確亦可含有表現一影像中僅其一部份的資料,並且對於該影像來說需有兩個或更多的訊框以供適當地重建和顯示。藉由相同概念,一視訊資料訊框可含有表現一個以上完整影像的資料,使得能夠利用M個視訊資料訊框來表現N個影像,其中M<N。
II.雲端式遊戲伺服器系統100(分散式架構)
圖2A顯示一種對於該雲端式遊戲伺服器系統100之元件的可能非限制性實體配置。在本實施例裡,該雲端式遊戲伺服器系統100內的個別伺服器可經組態設定以執行特定功能。例如,一計算伺服器200C主要是負責基於使用者輸入以追蹤一視訊遊戲內的狀態變化,而一呈顯伺服器200R則可主要是負責圖形(視訊資料)的呈顯處理。
對於在此所述的範例實施例,該客戶端裝置120和該客戶端裝置120A兩者係經假設為以玩家或旁觀者的方式參與該視訊遊戲。然應瞭解,在一些情況下可有單一玩家而無旁觀者,在其他情況下可有多位玩家 及單一旁觀者,而又在其他情況下可有單一玩家及多位旁觀者,並且又仍在其他情況下則可有多位玩家及多位旁觀者。
為簡便而言,後文說明是參照於單一台計算伺服器200C而經連接至一單一台呈顯伺服器200R。然應瞭解可有一台以上的呈顯伺服器200R而經連接至相同的計算伺服器200C,或者是一台以上的計算伺服器200C而經連接至相同的呈顯伺服器200R。在設有多台呈顯伺服器200R的情況下,該等可散佈在任何適當的地理區域上。
即如圖2A中的非限制性元件實體配置所示,該計算伺服器200C可含有一或更多中央處理單元(CPU)220C、222C以及隨機存取記憶體(RAM)230C。該等CPU220C、222C可透過例如通訊匯流排架構以存取該RAM 230C。圖中雖僅顯示兩個CPU220C、222C,然應瞭解在該計算伺服器200C的一些範例實作裡可提供更多的CPU或僅有單一CPU。該計算伺服器200C亦可含有一接收器以接收一客戶端裝置輸入,此輸入是透過網際網路130自參與該視訊遊戲的許多客戶端裝置各者所收到。在本示範性實施例中,該客戶端裝置120與該客戶端裝置120A兩者皆經假設為參與該視訊遊戲,並因而所收到的客戶端裝置輸入包含客戶端裝置輸入140與客戶端裝置輸入140A。在一非限制性實施例裡,該接收器可為由一網路介面元件(NIC)210C2所實作。
該計算伺服器200C可進一步含有一傳送器以供輸出呈顯命令集合204。可將自該計算伺服器200C所輸出的這些呈顯命令集合204發送至該呈顯伺服器200R。在一非限制性實施例裡,該傳送器可為至少部份地由一網路介面元件(NIC)210C1所實作。在一實施例中,該計算伺服器200C 可為直接地連接至該呈顯伺服器200R。在另一實施例裡,該計算伺服器200C可透過一網路260以連接至該呈顯伺服器200R,而此網路可為網際網路130或其他網路。可透過該網路260以在該計算伺服器200C與該呈顯伺服器200R之間建立一虛擬私有網路(VPN)。
在該呈顯伺服器200R處,可在一接收器(此者可為由一網路介面元件(NIC)210R1所實作)處接收由該計算伺服器200C所發送的呈顯命令集合204,並且可予導引至一或更多CPU 220R、222R。該等CPU 220R、222R可為連接至圖形處理單元(GPU)240R、250R。藉由非限制性範例,該GPU 240R可含有一組GPU核心242R和視訊隨機存取記憶體(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併同運作,藉以將該等呈顯命令集合204逐一地針對該等參與客戶端裝置各者轉換成圖形輸出串流。在本實施例裡,可有兩個分別地針對該等客戶端裝置120、120A的圖形輸出串流206、206A。後文中將對此進一步詳細說明。該呈顯伺服器200R可含有進一步的傳送器(這可為由一網路介面元件(NIC)210R2所實作),而該等圖形輸出串流206、206A可經由此者分別地發送至該等客戶端裝置120、120A。
III.雲端式遊戲伺服器系統100(混合式架構)
圖2B顯示第二種對於該雲端式遊戲伺服器系統100之元件的可能非限制性實體配置。在本實施例裡,一混合伺服器200H負責依據使用者輸入來追蹤視訊遊戲中的狀態變化以及呈顯圖形(視訊資料)兩者。
即如圖2B中的非限制性元件實體配置所示,該混合伺服器200H可含有一或更多中央處理單元(CPU)220H、222H以及隨機存取記憶體(RAM)230H。該等CPU220H、222H可透過例如通訊匯流排架構以存取該RAM 230H。圖中雖僅顯示兩個CPU220H、222H,然應瞭解在該混合伺服器200H的一些範例實作裡可提供更多的CPU或僅有單一CPU。該混合伺服器200H亦可含有一接收器以接收網路介面元件(NIC)210H,其中一客戶端裝置輸入是透過網際網路130自參與該視訊遊戲的許多客戶端裝置各者所收到。在本示範性實施例中,該客戶端裝置120與該客戶端裝置120A兩者皆經假設為參與該視訊遊戲,並因而所收到的客戶端裝置輸入包含客戶端裝置輸入140與客戶端裝置輸入140A。在一非限制性實施例裡,該接收器可為由一網路介面元件(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併同運作,藉以將該等呈顯命令集合204逐一地針對該等參與客戶端裝置各者轉換成圖形輸出串流。在本實施例裡,可有兩個分別地針對該等參與客戶端裝置120、120A的圖形輸出串流206、206A。可透過該NIC 210H以將該等圖形輸出串流206、206A發送至該等客戶端裝置120、120A。
IV.雲端式遊戲伺服器系統100(功能概要)
在遊戲進行的過程中,該伺服器系統100運行一伺服器側視訊遊戲應用程式,此應用程式可由一組模組所組成。現參照圖2C,這些模組可包含一呈顯命令產生器(視訊遊戲功能性模組/單元)270、一呈顯引擎(呈顯功能性模組/單元)280和一視訊編碼器285。這些模組可為由前文所述該計算伺服器200C與該呈顯伺服器200R(圖2A),以及/或是該混合伺服器200H(圖2B),的多項實體元件所實作。例如,根據圖2A的非限制性實施例,該呈顯命令產生器270可為由該計算伺服器200C所實作,而該呈顯引擎230和該視訊編碼器285則可藉由該呈顯伺服器200R所實作。而根據圖2B的非限制性實施例,該混合伺服器200H可實作該呈顯命令產生器270、該呈顯單元280以及該視訊編碼器285。
為簡化起見,本範例實施例是討論單一個呈顯命令產生器270。然應瞭解,在該雲端式遊戲伺服器系統100的真實製作中,可依平行方式執行多個類似於該呈顯命令產生器270的呈顯命令產生器。因此,該雲端式遊戲伺服器系統100可同時地支援相同視訊遊戲的多個獨立實例或 是多個不同的視訊遊戲。並且亦應注意到該等視訊遊戲可為任何類型的單玩家視訊遊戲或是多玩家遊戲。
該呈顯命令產生器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可運用一或更多CPU(圖2A內的240R、250R,圖2B內的240H、250H),而且可或無須使用CPU資源。
該視訊編碼器285可為由該呈顯伺服器200R(圖2A)或是該混合伺服器200H(圖2B)的一些實體元件所實作。熟諳本項技藝之人士將能知曉確有眾多方式以實作該視訊編碼器285。在圖2A的實施例裡,該視訊編碼器285可為由CPU 220R、222R及/或由CPU 240R、250R所實作。而在圖2B的實施例裡,該視訊編碼器285可為由CPU 220H、222H及/或由GPU 240H、250H所實作。又在另一實施例中,該視訊編碼器285則可由一個別 晶片(未予圖示)所實作。
操作上,該呈顯命令產生器270可依據所收到的客戶端裝置輸入以產生呈顯命令集合。這些所收到的客戶端裝置輸入可含載足供識別出其目的地之呈顯命令產生器的資料(即如位址),以及識別出其所源自於之使用者及/或客戶端裝置的資料。由於該等客戶端裝置120、120A的使用者為該視訊遊戲的參與者(亦即玩家或旁觀者),因此該等所收客戶端裝置輸入可含有從該等客戶端裝置120、120A所收到的客戶端裝置輸入140、140A。
呈顯命令是指可用以指示一特定圖形處理單元(GPU)產生一視訊資料訊框或是一序列之視訊資料訊框的命令。現參照圖2C,該等呈顯命令集合204可令由該呈顯單元280產生視訊資料的訊框。由這些訊框所表示的影像可為依照對該等客戶端裝置輸入140、140A之回應的函數而變化,而這些回應是經程式設計至該呈顯命令產生器270內。例如,該呈顯命令產生器270可按此方式所程式設計,故而回應於一些特定激訊向使用者提供漸進的體驗(藉令未來互動有所改變,即更具挑戰性或更有刺激性),且回應於一些其他特定激訊以對使用者提供漸退或終結的體驗。對於該呈顯命令產生器270的指令雖可固定為二進位可執行檔案的形式,然該等客戶端裝置輸入140、140A實為未知,須直到與一使用該相對應客戶端裝置120、120A的玩家進行互動之刻方得知曉。因此會依照所提供的特定客戶端裝置輸入而定出現廣泛各種可能的結果。此項在玩家/旁觀者與該呈顯命令產生器270之間透過該等客戶端裝置120、120A所進行的互動就稱為「玩遊戲」或「玩視訊遊戲」。
該呈顯引擎280可處理該等呈顯命令集合204以產生多個視 訊資料串流205。一般說來,每位參與者(或等同而言,每台客戶端裝置)可有一個視訊資料串流。當執行呈顯處理時,可將對於在三維空間(即如實體物件)或二維空間(即如文字)中所表現之一或更多物件的資料載入至一特定GPU 240R、250R、240H、250H的快取記憶體(未予圖示)內。此資料可由該GPU 240R、250R、240H、250H轉換成表示二維影像的資料,並可將其儲存在適當的VRAM 246R、256R、246H、256H裡。從而,該VRAM 246R、256R、246H、256H可供暫時地儲存對於一遊戲螢幕畫面的圖片構素(像素)數值。
該視訊編碼器285可將該等視訊資料串流205各者之內的視訊資料壓縮並予編碼成為一相對應的經壓縮/經編碼視訊資料串流。所獲得的經壓縮/經編碼視訊資料串流稱為圖形輸出串流,並可為依照逐台客戶端裝置的方式所產生。在本範例實施例中,該視訊編碼器285可對於該客戶端裝置120產生一圖形輸出串流206,並且對於該客戶端裝置120A產生一圖形輸出串流206A。亦可提供額外模組以將該視訊資料格式化成為封包,故而能夠透過網際網路130加以傳送。該等視訊資料串流205內的視訊資料以及一給定圖形輸出串流內的經壓縮/經編碼視訊資料可被分割成多個訊框。
V.產生呈顯命令
現將參照於圖2C、3A和3B以進一步詳細說明由該呈顯命令產生器270所進行的呈顯命令產生作業。詳細而言,該呈顯命令產生器270的執行作業可牽涉到多項程序,包含主遊戲程序300A及圖形控制程序300B,後文中將對此等詳加說明。
主遊戲程序
該主遊戲程序300A是參照圖3A所述。該主遊戲程序300A可依照連續迴圈的方式重複地執行。該主遊戲程序300A的一部份中可提供一動作310A,在此動作的過程中接收到一或更多個客戶端裝置輸入。若該視訊遊戲為單一玩家視訊遊戲而絕無旁觀者,則會收到來自單一客戶端裝置(即如客戶端裝置120)的客戶端裝置輸入(即如客戶端裝置輸入140)以作為該動作310A的一部份。然若該視訊遊戲為多玩家視訊遊戲或者為單一玩家視訊遊戲但有可能進行旁觀,則可能會收到來自一或更多客戶端裝置(即如客戶端裝置120和120A)的客戶端裝置輸入(即如客戶端裝置輸入140和140A)以作為該動作310A的一部份。
藉由非限制性範例,來自一給定客戶端裝置的輸入可傳達該給定客戶端裝置的使用者欲令一人物在其控制下以移動、跳躍、踢踹、迴轉、拉入、抓取等等。或另者,或此外,來自該給定客戶端裝置的輸入可傳達由該給定客戶端裝置之使用者所做出的選單選擇,藉以改變一或更多音訊、視訊或遊戲設定俾載入/儲存一遊戲,或者是創設或加入一網路會期。或另者,或此外,來自該給定客戶端裝置的輸入可傳達該給定客戶端裝置的使用者想要選擇一特定相機視野(即如第一人稱或第三人稱)或是重新定位其在該虛擬世界裡的觀點。
在動作320A處,可至少部份地依據在動作310A處所收到的客戶端裝置輸入與其他參數以更新遊戲狀態。遊戲狀態的更新可能牽涉到下列動作:首先,遊戲狀態的更新可能會涉及到對與自其收到客戶端裝置輸入的客戶端裝置相關聯之參與者(玩家或旁觀者)的一些性質進行更新。這些性質可儲存在該參與者資料庫10內。能夠在該參與者資料庫10 中加以維護並且在動作320A處予以更新之參與者性質的範例可包含相機視野選擇(即如第一人稱或第三人稱)、遊玩模式、所選音訊或視訊設定、技能水準、顧客等級(即如訪客、貴客等等)。
其次,遊戲狀態的更新可牽涉到依據該等客戶端裝置輸入的解譯結果來更新該虛擬世界中之一些物件的屬性。在一些情況下,其屬性可予更新的物件可由二或三維模型所表示,並且可包含參玩人物、非參玩人物以及其他物件。在參玩人物的情況下,可予更新的屬性可包含物件的位置、強度、武器/冑甲、剩餘壽命、特長、能力、速度/方向(速率)、動畫、視覺效果、能量、火力等等。而在非參玩人物(像是背景、植披、建物、車輛、記分板等等)的情況下,可予更新的屬性可包含該物件的位置、速度、動畫、損傷/健康度、視覺效果、文字內容等等。
然應瞭解除客戶端裝置輸入外的參數亦可對前述(參與者的)性質與(虛擬世界物件的)屬性產生影響。例如,各種計時器(像是行經時間、自一特定事件後的時間、虛擬當日時間)、玩家總數、參與者的地理位置等等皆可對遊戲狀態的各種特點造成影響。
一旦既已更新遊戲狀態以進一步執行動作320A,該主遊戲程序300A即可返回至動作310A,在此會對自從前次通過該主遊戲程序之後所收到的新客戶端裝置輸入加以收集並處理。
圖形控制程序
現將參照圖3B以說明一第二程序,此者可稱為圖形控制程序。該圖形控制程序300B雖經顯示為分離於該主遊戲程序300A,然此程序確可按如該主遊戲程序300A之延伸的方式執行。該圖形控制程序300B可 為連續地執行以產生呈顯命令集合204。在單一玩家視訊遊戲而確無旁觀者的情況下,可只有單一玩家,並因而僅獲產生單一個呈顯命令集合204。在多玩家視訊遊戲的情況下,需針對多位玩家產生多個個別呈顯命令集合,且因此可按平行方式執行多個子程序,各者係針對於各一玩家。而在單一玩家遊戲然有可能有進行旁觀的情況下,再度地可有單一個呈顯命令集合204,但可由該呈顯單元280針對旁觀者複製所獲得的視訊資料串流。當然,這些僅為實作範例且不應視為具有限制性質。
現考量該圖形控制程序300B對於一要求該等視訊資料串流205其一者之給定參與者的操作。在動作310B處,該呈顯命令產生器270可決定對於該給定參與者而應予呈顯的物件。此動作可包含識別下列的物件類型:首先,此動作可包含識別出在該虛擬世界裡位於針對該給定參與者之「遊戲螢幕呈顯範圍」(又稱為「場景」)內的這些物件。該遊戲螢幕呈顯範圍可為在該虛擬世界中自該給定參與者相機之觀點為「可見」的一局部。這可依照在該虛擬世界中該相機相對於這些物件的位置與指向而定。在動作310B之實作的一非限制性範例裡,可對該虛擬世界施用以一截錐柱體,並且對位於該截柱體之內的物件予以保留或標註。此截錐柱體具有一可位於該給定參與者相機之位置處的尖點,並且可具有亦由該相機之方向性所定義的方向性。
其次,這項動作可包含識別並未出現在該虛擬世界裡然對於該給定參與者確仍需加以呈顯的額外物件。例如,這些額外物件可包含文字訊息、圖形警示和留言板指示器,然不限於此。
在動作320B處,該呈顯命令產生器270可產生一組命令,藉以將在動作310B處所識別出的這些物件呈顯至該等圖形(視訊資料)之內。呈顯處理可稱為,根據察看觀點與當前的照明條件,將一物件或一組物件之3-D或2-D座標變化成表示一可顯示影像之資料的轉換作業。這可採用眾多各式演算法和技術所達成,例如在Max K.Ageston之「Computer Graphics and Geometric Modelling:Implementation & Algorithms」,Springer-Verlag London Limited,2005年,乙文中所描述者,在此依參考方式併入本案。該等呈顯命令可具有符合於3D應用程式設計介面(API)的格式,即如來自美國華盛頓州Redmond市之Microsoft Corporation的「Direct3D」以及由美國奧勒岡州Beaverton市之Khronos Group所管理的「OpenGL」,然不限於此。
在動作330B處,可將動作320B處所產生的呈顯命令輸出至該呈顯單元280。這可牽涉到將所產生的呈顯命令封包化而成為一呈顯命令集合204,並予發送至該呈顯單元280。
VI.產生圖形輸出
該呈顯單元280可解譯該等呈顯命令集合204並且產生多個視訊資料串流205,而各一串流係針對於各一台參與客戶端裝置。此呈顯處理可在CPU 220R、222R(圖2A)或者220H、222H(圖2B)的控制之下由GPU 240R、250R、240H、250H完成。對於一參與客戶端裝置產生視訊資料訊框的速率可稱為訊框速率。
在一其中有N位參與者的實施例中,可有N個呈顯命令集合204(各參與者有一者)以及N個視訊資料串流205(各參與者有一者)。在 此情況下,並不會於該等參與者之間共享呈顯功能性。不過,亦可自M個呈顯命令集合204以產生該等N個視訊資料串流205(其中M<N),使得該呈顯單元280只需處理數量較少的呈顯命令集合。在此情況下,該呈顯單元280可執行共享或複製處理,藉以自數量較少的呈顯命令集合204中產生出數量較多的視訊資料串流205。而當有多位參與者(即如旁觀者)希望觀看相同的相機觀點時,此共享或複製處理就可更為普遍。因此,該呈顯單元280可執行像是為一或更多旁觀者複製所產生之視訊資料串流的功能。
接著,可由該視訊編碼器285對該等視訊資料串流205之各者內的視訊資料加以編碼,故而獲得一序列關聯於各台客戶端裝置的經編碼視訊資料,這稱為圖形輸出串流。在圖2A-2C的範例實施例中,目的地為客戶端裝置120的經編碼視訊資料序列稱為「圖形輸出串流206」,而目的地為客戶端裝置120A的經編碼視訊資料序列則稱為「圖形輸出串流206A」。
該視訊編碼器285可為一裝置(或一組電腦可讀取指令),此者可提供或執行或是定義對於數位視訊的視訊壓縮或解壓縮演算法。視訊壓縮作業可將數位影像資料的原始串流(依像素位置、色彩數值等等所表示)轉換成數位影像資料的輸出串流,此者可傳達大致相同的資訊然確運用較少位元。任何適當的壓縮演算法皆可採用。除資料壓縮以外,用以對一特定視訊資料訊框進行編碼的編碼程序亦可或無需牽涉到密碼加密。
按前述方式所產生的圖形輸出串流206、206A可透過網際網路130發送至個別的客戶端裝置。藉由非限制性範例,可將該等圖形輸出串流予以節段化與格式化成為多個封包,各者具有標頭和酬載。含有對於 一給定參與者的視訊資料之封包的標頭可含有與該給定參與者相關聯之客戶端裝置的網路位址,而酬載中可含有該視訊資料的整體或是其一部份。在一非限制性實施例裡,可將用以對一視訊資料進行編碼之壓縮演算法的識別資料及/或版本編碼在載送該視訊資料之一或更多封包的內容中。熟諳本項技藝之人士將可構思用以傳送該經編碼視訊資料的其他方法。
本說明雖為聚焦於呈顯表示個別2-D影像的視訊資料,然本發明並不排除逐一訊框方式呈顯表示多個2-D影像以產生3-D效果之視訊資料的可能性。
VII.在客戶端裝置處重製遊戲螢幕畫面
現參照圖4A,圖中藉由非限制性範例顯示一客戶端側視訊遊戲應用程式的操作,此作業是由與一給定參與者相關聯而可為客戶端裝置120或客戶端裝置120A的客戶端裝置所執行。操作上,該客戶端側視訊遊戲應用程式可由該客戶端裝置直接地執行,或是在一網頁瀏覽器中運行,然不限於此。
在動作410A處,根據實施例而定,可自該呈顯伺服器200R(圖2A)或是自該混合伺服器200H(圖2B)透過網際網路130收到一圖形輸出串流(即如206、206A)。所收到的圖形輸出串流可含有可予分割成多個訊框之視訊資料的經編碼/經壓縮訊框。所收到的圖形輸出串流可由該客戶端通訊單元904接收。
在動作420A處,該視訊資料的經編碼/經壓縮訊框可根據互補於該編碼/壓縮程序中所使用之編碼/壓縮演算法的解碼/解壓縮演算法予以解碼/解壓縮。在一非限制性實施例裡,用以編碼/壓縮該視訊資料之編碼 /壓縮演算法的識別資料或版本可為事先已知。在其他實施例裡,用以編碼該視訊資料之編碼/壓縮演算法的識別資料或版本可伴隨於該視訊資料本身。解碼/解壓縮作業可由該客戶端解碼器905執行。
在動作430A處,可對該視訊資料的(經解碼/經解壓縮)訊框進行處理。這可包含將視訊資料的經解碼/經解壓縮訊框放置在緩衝器內、執行錯誤校正、重排及/或合併在多個接續訊框內的資料、阿爾法值混合、遺失資料之多個局部的內插等等。其結果可表示依逐個訊框為基礎而待予呈現給使用者之最終影像的視訊資料。在一非限制性實施例裡,視訊訊框的處理可交由該客戶端CPU 901執行。
在動作440A處,可透過該客戶端裝置的輸出機制來輸出該最終影像。例如可在該客戶端裝置的顯示器,像是該客戶端顯示器906,上顯示一合成視訊訊框。
VIII.產生音訊
現將參照圖3C以說明一第三程序,此者可稱為音訊產生程序。該音訊產生程序可針對要求不同音訊串流的各位參與者連續地執行。在一實施例中,可執行該音訊產生程序而與該圖形控制程序300B無關。在另一實施例裡,該音訊產生程序與該圖形控制程序的執行可互為協調。
在動作310C處,該呈顯命令產生器270可決定應予產生的聲音。詳細而言,此項動作可包含識別出這些與該虛擬世界內之物件相關聯然由於其等音量(響度)及/或在該虛擬世界裡鄰近該參與者之故而主導該音響全景的聲音。
在動作320C處,該呈顯命令產生器270可產生一音訊節段。 該音訊節段的時段長度雖可跨展一視訊訊框的時段,然在一些實施例裡,比起視訊訊框可較不頻繁地產生音訊節段;而在其他的實施例裡,音訊節段比起視訊訊框來說則可較為頻繁地產生。
在動作330C處,該音訊節段可即如由一音訊編碼器所編碼,故而獲致一經編碼音訊節段。該音訊編碼器可為一裝置(或一組指令),此者可提供或執行或是定義一音訊壓縮或解壓縮演算法。音訊壓縮可將原始的數位音訊串流(即如按如隨時間在振幅和相位上變化的音波所表示)轉換成數位音訊資料的輸出串流,後者可大致傳達相同資訊然確佔用較少的位元。任何適當的壓縮演算法皆可採用。除音訊壓縮以外,用以對一特定音訊節段進行編碼的編碼程序亦可或無需施用密碼加密。
應瞭解,在一些實施例裡,可藉由位於該計算伺服器200C(圖2A)或是該混合伺服器200H(圖2B)之內的特殊硬體(即如音效卡)以產生該等音訊節段。在適用於圖2A之分散式配置的替代性實施例中,可由該呈顯命令產生器270將音訊節段參數化成為語音參數(即如LPC參數),並且由該呈顯伺服器200R將此等語音參數重新配佈至目的地客戶端裝置(即如客戶端裝置120或客戶端裝置120A)。
按上述方式所產生的經編碼音訊可透過網際網路130發送。藉由非限制性範例,可將該經編碼音訊輸入予以斷分並格式化成為多個封包,各者具有標頭和酬載。該標頭可載荷與為其而執行音訊產生程序的參與者相關聯之客戶端裝置的位址,而該酬載可含有該經編碼音訊。在一非限制性實施例裡,可將用以對一給定音訊節段進行編碼之壓縮演算法的識別資料及/或版本編碼在載送該給定節段之一或更多封包的內容中。熟 諳本項技藝之人士將可構思用以傳送該經編碼音訊資料的其他方法。
現參照圖4B,藉由非限制性範例,圖中顯示與一給定參與者相關聯之客戶端裝置的操作,此者可為客戶端裝置120或客戶端裝置120A。
在動作410B處,可(依照實施例而定)自該計算伺服器200C、該呈顯伺服器200R或該混合伺服器200H收到一經編碼音訊節段。在動作420B處,可依據互補於該編碼程序中所採用之壓縮演算法的解壓縮演算法以解碼該經編碼音訊。在一非限制性實施例裡,可將用以對該音訊節段進行編碼之壓縮演算法的識別資料或版本標定在載送該音訊節段之一或更多封包的內容中。
在動作430B處,可對該(經解碼)音訊節段進行處理。這可包含將經解碼音訊節段放置在一緩衝器內、執行錯誤校正、合併多個接續波形等等。其結果可表示依逐個訊框為基礎而待予呈現給使用者的最終聲音。
在動作440B處,可透過該客戶端裝置的輸出機制來輸出該最終產生的聲音。例如,該聲音可透過該客戶端裝置的音效卡或揚聲器所播放。
IX.非限制性實施例的特定說明
現將提供本發明之一些非限制性實施例的進一步詳細說明。
本發明的實施例可提供一種用以測試一系統的自動化測試系統,此系統可接收來自一或更多客戶端裝置的輸入(客戶端裝置輸入), 並且根據該等所收輸入呈顯一或更多影像(圖形輸出串流)。例如,該待予測試的系統可為一用於視訊遊戲、三維CAD、影像編輯器等等的系統。
在下列實施例裡將說明一種情況,即其中該待予測試的系統為一雲端式遊戲伺服器系統,並且含有該呈顯命令產生器270和該呈顯單元(呈顯器)280,即如圖2C中所示者。在此情況下,該自動化測試系統提供一測試輸入集合,此集合含有一或更多對該系統的輸入,並且作為該系統之輸出獲得一呈顯命令集合,該者含有來自該呈顯命令產生器270的一或更多呈顯命令,及/或一影像集合,該者含有一或更多來自該呈顯單元280且依照該呈顯命令集合所呈顯的影像。在此應注意到該系統可含有其他功能性單元,並且可輸出除呈顯命令集合或影像集合以外的信號。
在本自動化測試系統中,於一給定時段的過程中所收到的客戶端裝置輸入可予記錄並關聯於在該時段過程中所產生的呈顯命令集合,並且/或是關聯於在該時段過程中所呈顯的影像集合。為此,可採用一種兩階段方式。藉由非限制性範例可將這些稱為「學習階段」和「測試階段」。
現參照圖5以說明該學習階段。一測試者510被詢求以利用一客戶端裝置120播放該視訊遊戲。由於該測試者510與該呈顯命令產生器270互動,因此該呈顯命令產生器270可基於一輸入集合而產生一其中含有一或更多呈顯命令的呈顯命令集合,此輸入集合含有經由該互動所獲得的一或更多客戶端裝置輸入,並且輸出對於各個對應至一視訊訊框之時段的呈顯命令集合。自該呈顯命令產生器270所輸出的呈顯命令集合會被傳送至該呈顯單元280和一測試單元500。同時該呈顯命令產生器270也會將 透過該互動所獲得的輸入集合傳送至該測試單元500。在此,該測試單元500的一些局部可為利用軟體及/或硬體元件所實作。該測試單元500可為該呈顯命令產生器270及/或該呈顯單元280的一部份,或者是與其等分離。
該測試單元500接收該呈顯命令集合同時產生一對應於該呈顯命令集合的第一數值530,並且將該第一數值530儲存在一資料庫550內。該測試單元500亦關聯於該所產生第一數值而儲存該輸入集合。一含有該呈顯命令產生器270在一給定時段過程中所收到之一或更多客戶端裝置輸入的輸入集合可為關聯於一在該時段過程裡所產生的呈顯命令集合。該時段的長度可為視訊資料之訊框的間隔。在此,該第一數值可為該呈顯命令集合本身,而且可為一基於該呈顯命令集合所算得的數值(即如後文所述的雜湊數值(數碼))。
為解釋該測試單元500在該學習階段過程中之操作的進一步細節,現將額外地參照圖6的流程圖(且繼續參照圖5)。此流程圖描述在該學習階段之一給定時段過程中所進行的動作,而此階段具有對應於一視訊資料之訊框的時段長度(即該「目前學習階段間隔」)。從而,該流程圖的動作可在學習階段過程中逐個訊框一次地重複執行。
步驟610:對一含有一或更多由該呈顯命令產生器270所輸出之呈顯命令的呈顯命令集合520進行捕捉/記錄。該呈顯命令集合520可為一組指令,而若由該呈顯單元280處理這些指令則可獲以產生視訊資料的訊框,這可供重製為在像是螢幕之顯示器裝置上觀看的影像。
應注意到,在步驟610中,除呈顯命令集合以外,該測試單元500亦得捕捉/記錄一含有一或更多自該呈顯單元280所輸出之影像的 影像集合。
步驟620:該測試單元500可基於在步驟610處所捕捉到的呈顯命令集合520獲得一對於目前學習時間間隔的第一數值530。應注意到在後文中雖討論僅基於該呈顯命令集合以獲得該第一數值的情況,然為獲得該第一數值,確可依照該所捕捉/所記錄影像集合,或者是在除該呈顯命令集合外亦另捕捉/記錄影像集合的情況下則可為基於該影像集合與在步驟610中所捕捉/所記錄的呈顯命令兩者。
在一實施例中,可利用一雜湊函數/演算法以將該呈顯命令集合520壓縮、擾攪、編碼或截位成較少數量的位元,這稱為雜湊數碼。因此,該雜湊數碼按其整體而言相比於該呈顯命令集合520可佔用較少的記憶體空間。根據該雜湊函數的設計方式而定,所獲的雜湊數碼對於各個呈顯命令集合520可大致為唯一。不過,有一些呈顯命令集合確可能會對映到相同的雜湊數碼,在此情況下可增設一與目前學習時間間隔之訊框號碼相關聯的計數器或時間資訊,藉以消除似為等同之雜湊數碼間的混淆度。除此之外,可基於與例如目前學習時間間隔,或者是在步驟610中捕捉到該呈顯命令集合或如後文所述在步驟640裡獲得該輸入集合的時間,相關聯的呈顯命令集合和時間資訊來算出一雜湊數碼。
因此,在一些實施例裡該第一數值530雖可僅含有該雜湊數碼,然在其他的實施例中,該第一數值530可為由該雜湊數碼以及像是前述計數器的額外資訊所組成。此外,如前所述,該第一數值可為呈顯命令集合本身。
當然,若在步驟610中捕捉到一影像集合,則該第一數值 可為一基於該影像集合或是該影像集合和該呈顯命令集合兩者所計算出的雜湊數碼。該雜湊數值可為鑑於與例如該目前學習時間間隔之訊框編號,或者在步驟610裡捕捉到該影像集合或如後文所述在步驟640裡獲得該輸入集合的時間,相關的時間資訊所構成。該第一數值可為該影像集合本身或是表示該影像集合的數值(即如像素數值等等)。同時,若除該呈顯命令集合之外亦又捕捉一影像集合,則可僅基於該影像集合而獲得一異於該第一數值的另一數值。在此情況下,可依照彼此互相關聯的方式儲存該第一數值、該另一數值和該輸入集合。
步驟630:將該第一數值530儲存在該資料庫550內。為此,可在該資料庫550裡產生一對於該目前學習時間間隔的記錄,並且可將該第一數值530儲存在該項記錄的一個欄位內。
步驟640:此外,在目前學習時間間隔的過程中,也會捕捉一所收輸入集合580並將其記錄在該資料庫550內。該所收輸入集合580會關聯於該第一數值530所儲存。例如,對於該目前學習時間間隔的記錄可包含該第一數值530和所記錄的輸入集合580,從而登註該第一數值530與該所收輸入集合580(以及,若有必要,表示該目前學習時間間隔的時間資訊或者任何其他的時間資訊)之間的關聯性。應注意到步驟640的執行時間可能不必然是在執行步驟610-630之後。例如,可在與執行步驟610相同或之前的時間處執行步驟640。
記得該輸入集合580的接收概略是出現在由該呈顯命令產生器270所執行之主遊戲程序的步驟310A處,即如前文中參照圖3A所述者。然後再將此輸入集合轉傳至該測試單元500,因而可予記錄並處理。或 另者,可將該測試單元500整合在該呈顯命令產生器270之內。可供記錄之輸入集合580的範例包含一信號,該信號可表示既已按下/啟動一輸入裝置的特定按鍵(具有一特定量值的壓力及/或按一特定方向等等)、表示擺作出一姿勢、表示既已碰觸/選定一鍵位或範圍等等。
應瞭解若在該目前學習時間間隔的過程中並未收到客戶端裝置輸入,則將不會有任何項目關聯於該第一數值530而儲存在該相對應記錄裡。在此情況下,對於該目前學習時間間隔可僅儲存第一數值。
只要該測試者510還在玩遊戲,就會繼續進行此學習階段。而在此時間過程中,該資料庫550逐漸地增加產佈。詳細而言,該學習階段中具有對應於一視訊資料訊框之時段的各個後續時段都將會獲以產生含有一第一數值與,在部份情況下,一輸入集合的一個新記錄。因此,將可注意到該資料庫550,在一方面,是將對應於個別呈顯命令集合(或對應於個別影像集合)的第一數值鏈結於,在另一方面而言,在當捕捉到這些呈顯命令集合(或這些影像集合)之刻附近所收到的輸入集合。從而,該輸入集合並非影響到該相關聯的呈顯命令集合及/或該相關聯的影像集合,而是在該相關聯的呈顯命令集合及/或該相關聯的影像集合之後所輸出的呈顯命令集合及/或影像集合。
現參照圖7以說明該測試階段。在測試階段裡,可藉由執行相同的視訊遊戲以測試該呈顯命令產生器270及/或該呈顯單元280,並且按與獲得該第一數值相同的方式獲得一第二數值,即如前文中對於該學習階段所描述者。不過,在測試階段過程裡並無實際的客戶端裝置輸入(即先前標註如圖5中的輸入集合580)。相反地,該測試單元500可提供一模擬輸 入集合700,此集合含有對該呈顯命令產生器270的一或更多輸入,而該呈顯命令產生器270產生一呈顯命令集合720,此集合含有一或更多根據該模擬輸入集合700的呈顯命令,該呈顯單元280則輸出一含有一或更多影像的影像集合(未予圖示),同時該測試單元可基於該呈顯命令集合720及/或該影像集合以獲得該第二數值。在該測試階段裡,該測試單元500亦決定該所獲第二數值是否匹配於在該學習階段中所記錄的該等第一數值,並且顯明地或隱含地輸出該決定的結果。
例如,在其中該第二數值確匹配於該等所記錄第一數值之一者的情況下,該測試單元500可提供一輸入集合,此集合係關聯於該等所記錄第一數值中匹配於該第二數值的該一者所記錄。在學習階段中,該輸入集合是在當捕捉到一對應至該等所存第一數值其一者匹配於該第二數值之呈顯命令集合(或影像集合)的時間附近處被輸入到該呈顯命令產生器270。因此,藉由將該輸入集合提供至該呈顯命令產生器270,該呈顯命令產生器270可產生次一呈顯命令集合,然後該測試單元500可根據次一呈顯命令獲得對應於該次一呈顯命令集合及/或次一影像集合的另一第二數值。所以可藉由繼續進行測試來隱含地表示該決定作業的結果。當成功地完成測試後,亦即當對於全部訊框之所獲第二數值的各者匹配於該等第一數值之一者時,該測試單元500可表示成功地完成該測試(並因此顯明地輸出該決定的結果),或者是返回至接受重新測試的狀態然無任何表示(且從而隱含地輸出該決定的結果)。此測試可在預設時間內重複地進行。在此情況下,若既已完成所有的重複測試,則該測試單元500可隱含地或顯明地輸出該測試的結果。另一方面,當該第二數值並不匹配於任何所存第一數值時該 測試單元500可停止測試,而且當該第二數值並不匹配於任何所存第一數值時維持該遊戲的狀態。在此情況下,當無匹配時維持該遊戲的狀態可隱含地表示該第二數值並不匹配於任何所存第一數值以作為該決定的結果。而若該第二數值並不匹配於任何所存第一數值,則可輸出錯誤訊息以顯明地輸出該決定的結果。此外,該測試單元500可監視該呈顯命令產生器270及/或該呈顯單元280的狀態,像是CPU使用率、負載量、記憶體使用率等等,同時在該第二數值並不匹配於任何所存第一數值的情況下輸出該呈顯命令產生器270及/或該呈顯單元280的狀態。
為解釋該測試單元500在該測試階段過程中之操作的進一步細節,現將額外地參照圖8的流程圖(且繼續參照圖7)。此流程圖描述在該測試階段之一給定時段(亦即「目前測試時間間隔」)的過程中所採行的動作,此階段的時段是對應於一視訊資料之訊框的時段。注意到一項事實,即由於是重新運行相同的視訊遊戲,因此各個「測試時間間隔」(也就是該測試階段的時間切片)具有一相對應的「學習時間間隔」(亦即該學習階段的時間切片),而對於該相對應者的一第一數值既經取得並且對於該相對應者的記錄是存在於該資料庫550之內。
步驟810:捕捉/記錄由該呈顯命令產生器270所輸出的呈顯命令集合720及/或由該呈顯單元所輸出的影像集合。該呈顯命令集合720可為一組指令,而若由該呈顯單元280處理這些指令則可獲以產生視訊資料的訊框,這可供重製為在像是螢幕之顯示器裝置上觀看的影像。
步驟820:該測試單元500可基於在步驟810處所捕捉到的呈顯命令集合720及/或影像集合獲得一對於目前測試時間間隔的第二數值 730。若在該學習階段過程中運用一雜湊函數/演算法,則在該測試階段過程中亦使用相同的雜湊演算法。相同道理適用於計數器,或者是有關例如該目前測試時間間隔的訊框編號或任何可供消除等同雜湊數碼間之混淆度的其他時間表示之時間資訊。類似於該第一數值,該第二數值可為一呈顯命令集合730及/或一影像集合本身。
步驟830:該測試單元500將對於該目前測試時間間隔的第二數值(亦即在步驟820處所獲得者)比較於經儲存在該資料庫550內的多個第一數值(這是在該學習階段過程中所產佈),藉此檢查該第二數值是否匹配於(即如相等於或類似於)該等所存第一數值的其中一者而且尋得一匹配的所存第一數值。在其中該視訊遊戲為決定性(可重複)的情況下,可預期對於該目前測試時間間隔的第二數值確將匹配於經存放在該資料庫550內之該等第一數值的一者。
步驟840:在其中該第二數值匹配於該等所存第一數值之一者的情況下,該測試單元500可自該資料庫550擷取出既已關聯於該等第一數值裡對應於該第二數值之該一者所儲存的輸入集合780。將能瞭解按此方式所擷取的輸入集合780是代表在對應於該目前測試時間間隔的學習時間間隔過程中既經相關聯地儲存的輸入集合。
但在其中該第二數值並不匹配於該等所存第一數值之任一者的情況下,該測試單元500可顯明地或隱含地輸出表示該第二數值不匹配於任何所存第一數值的結果。例如,該測試單元500可停止該程序而同時維持遊戲或測試的狀態。在此情況下,令該測試單元500執行測試的人士可藉由監視該遊戲或測試的狀態而瞭解到遊戲並未被成功地重製的狀 況。該測試單元500可輸出一訊息以說明該第二數值並不匹配於任何所存第一數值,亦即該遊戲裡的狀況重製失敗。
在該第二數值不匹配於該等所存第一數值之任一者的情況下,該測試單元500可輸出一表示該呈顯命令產生器270及/或該呈顯單元280不正常地操作的結果。在一些實施例裡,該測試單元500可含有一狀態監視器以監視該呈顯命令產生器270及/或該呈顯單元280的狀態,並且在該第二數值不匹配於該等所存第一數值之任一者的情況下輸出該呈顯命令產生器270及/或該呈顯單元280的狀態。根據此項特點,該測試單元500可輸出該呈顯命令產生器270及/或該呈顯單元280的狀態,其中在該第二數值不匹配於該等所存第一數值之任一者的情況下遊戲裡的狀況重製失敗。藉由輸出該狀態,遊戲除錯作業可為簡易。
步驟850:該測試單元500將所擷取的輸入集合780供應至該呈顯命令產生器270,而宛如這是從一實際客戶端裝置所收到般。這稱為「模擬」輸入集合,因為這並非自實際客戶端裝置的輸入集合所提供。
此時,可預期該呈顯命令產生器270及/或該呈顯單元280將會按照與該等在該學習階段過程中相同的方式回應。換言之,可預期該主遊戲程序300A對於該模擬輸入集合(這是自該資料庫550所擷取的輸入集合780)的回應將會是等同於該程序對於該輸入集合580,此集合既已由測試者510所操作之客戶端裝置120所供應,的回應。所以,該主遊戲程序300A的行為並不是依照該輸入集合究為實際的輸入集合抑或模擬的輸入集合而定。除此之外,可自該主遊戲程序300A引得相同回應而無須人類干涉的這項事實可改善該測試程序的一致性,同時亦可降低成本。
所以可對視訊遊戲提供一測試單元(或稱「機器人」)。在第一階段中,該機器人可關聯於來自一真實測試者所使用之裝置的輸入以儲存對應於一系統之輸出的多個第一數值。可藉由截捕對於一影像訊框的呈顯命令集合,及/或根據一呈顯命令集合所呈顯的影像集合,以獲得一第一數值。該第一數值可包含具有一或更多呈顯命令的完整呈顯命令集合,及/或含有一或更多對於該訊框之影像的影像集合,或是自該呈顯命令集合及/或該影像集合且可能併同於其他資訊所導算出的雜湊數碼。在第二階段中,重新運行該視訊遊戲,並且按照與用以獲得該第一數值之程序相同的方式獲得一第二數值。不過,會將在該第二階段過程中所獲得的第二數值比較於先前所儲存的第一數值,藉以嘗試尋得一匹配項。在確有匹配的情況下,可自記憶體中擷取出相對應的輸入集合並將其注入至該遊戲內以模擬玩家輸入。此第二階段可完全地自動化並且無須牽涉到人類使用者,因此可提供更高效率和可預期的視訊遊戲測試,特別是在多玩家環境下而言尤甚。
在一些不同狀況下可實作前述實施例的變化項目。
例如,將能注意到在步驟830處並非總是要求在步驟820處所獲得之第二數值與該等先前所存第一數值其一者之間的精確匹配結果。事實上是可將部份匹配視為匹配。例如,若該第二數值有至少80%或90%的內容確匹配於該等第一數值之一者,則這可足以表示匹配。當一數值(該第一數值或該第二數值)含有與其相關聯的整個呈顯命令集合時(亦即無雜湊函數),或者即使是在施用雜湊函數的情況下,當該雜湊函數係經設計為使得兩個呈顯命令集合520、720之間在進行雜湊處理前可能存在的相似 性就算是經雜湊處理後仍被保留時,這種仰賴於部份匹配就會特別地有利。在非限制性實施例裡,此實施例中的適當雜湊函數範例可為一截位函數。
亦將能注意到由於雜湊數碼比起自其所導算之呈顯命令集合可具有較少的位元(理由是雜湊函數可為多對一函數),所以對於不同的呈顯命令集合可能會產生相同的雜湊數碼。例如,考量到相同影像持續兩個或更多訊框之時段的情況。相對應的呈顯命令集合可為相同,故而導致在學習階段過程中於這兩個或更多時間間隔上會有相同的第一數值。當測試階段執行後,一給定第二數值可因此對應於該資料庫550裡多個相同的第一數值,這可能會造成模糊混淆。為解決此項模糊問題,所產生的雜湊數碼可為關聯於一計數器,此者可表示既經算出之相同雜湊數碼的次數,或是可供表示該目前時間間隔之訊框編碼的其他計數器或時間資訊。可將該雜湊數碼計數器增附於該雜湊數碼的其餘部份,藉以產生該等第一或第二數值。若非採用計數器,則在當構成該簽章時可將像是隨機數字的另一數值增附於該雜湊數碼。在此情況下,可於學習和測試階段兩者中藉由相同的種子數值運用相同的隨機數字產生器來產生該隨機數字。
亦將能注意到步驟830包含該測試單元500在學習階段過程中可將在步驟820所產生的第二數值比較於經儲存在該資料庫550之內的該等第一數值各者,其目的是為識別出所匹配的先前儲存第一數值。這可能會導致必須執行數量龐大的搜尋作業。為減少搜尋數量,可將此等搜尋工作聚焦在後續於先前經識別為匹配之該等第一數值其一者所儲存的那些第一數值。換言之,較舊的第一數值不會進行搜尋,因為過去將不會被重 製。在此情況下,該測試單元500可儲存關於一時間的時間資訊,此時間為,關聯於該輸入集合及該呈顯命令集合,將一輸入集合或一呈顯命令集合及/或一影像集合,或者是有關一對應於該影像集合的訊框號碼,儲存在該測試單元500內之時刻。在測試階段中,該測試單元500取得例如一由此可獲得該第二數值的訊框號碼,並且將該第二數值比較於該等第一數值的一或更多者,而該等各者具有大於該所取得訊框號碼的相對應訊框號碼。
同時也注意到可有一種情況,亦即在跨展一遊戲之時段的數千或數百萬的訊框中間,僅有極少部份可能會是關聯於實際的輸入集合580。這意味著在該資料庫550中相當微少數量的項目是對應於實際地記錄一輸入集合580的時間間隔。在此情況下,可提供一進一步檢查步驟,這會包含在測試階段過程中監視該時間間隔的漸進,並且持續地等待,直到目前時間間隔趨近至既已記錄一輸入集合580之次一時間間隔裡某一數量的時間切片內為止。為此目的,可運用一近似時間戳記,藉以提供該測試單元500有關現位在該整體程序中之何處的粗略概念(即如在記錄一輸入集合580的時間間隔前例如按秒鐘之數量級的容忍度)。而當目前測試時間間隔是位於此「容忍度」之內時,該測試單元500即可「甦醒」並且執行如前所述的步驟810至850。
在前述實施例中雖說明該等第一及第二數值各者是對應於一呈顯命令集合及/或一影像集合,然這可為組態設定以使得該等第一及第二數值僅對應於一呈顯命令集合,同時是併同於該等第一及第二數值以運用僅對應於一影像集合的其他數值。例如,該測試單元500儲存僅對應於一呈顯命令集合的該等第一數值,以及僅對應於在該學習階段裡根據該 資料庫550內的呈顯命令集合所呈顯之影像集合的第三數值,並且獲得僅對應於一呈顯命令集合的該等第二數值,以及一僅對應於一根據該呈顯命令集合所呈顯之影像集合的第四數值。
在此情況下,若第四數值並不匹配於該等第三數值的任一者,但該第二數值匹配於該等第一數值的一者,則該測試單元500可輸出一表示該呈顯命令產生器270正常地操作然該呈顯單元280為不正常地操作的結果。這是因為可決定由於該呈顯命令產生器270在該測試階段裡的輸出匹配於在該學習階段裡的輸出,因此該呈顯命令產生器270可在該測試階段裡的重製出與在該學習階段裡相同的呈顯命令集合,但是由於該呈顯單元280在該測試階段裡的的輸出並不匹配於在該學習階段裡的輸出,所以該呈顯單元280無法在該測試階段裡的重製出與在該學習階段裡相同的影像集合。同樣地,若該第二數值不匹配於該等第一數值的任一者,則該測試單元500可輸出一表示該呈顯命令產生器270不正常地操作的結果。從而,根據此一特點,即能簡易地區分出該系統的操作異常部份。
此外,前述實施例中雖描述輸入集合是關聯於一呈顯命令集合及/或一影像集合而儲存,這是在包含該測試單元500或該呈顯命令產生器270收到該輸入集合之時間的預設時段過程中所輸出,然該輸入集合可為關聯於其他資訊所儲存。例如,該輸入集合可為關聯於一影像所儲存,此影像是在一預設時段內顯示於該客戶端裝置處,而此時段含有在該客戶端裝置處輸入該輸入集合裡所含的客戶端裝置輸入之刻。換言之,在一客戶端裝置處,於在該客戶端裝置處輸入一輸入集合內所含的客戶端裝置輸入之時間附近顯示出的影像可為關聯於該輸入集合。
現參照圖10說明該測試單元500的操作。在圖10中,該測試單元500於學習階段過程裡對該等呈顯命令集合的各者產生第一數值,然當產生時並未加以記錄。相反地,首先是將從對於視訊資料之一給定訊框的呈顯命令集合(舊的呈顯命令集合1010)所導算出的第一數值(新的第一數值1020*),並連同對於該訊框的視訊資料1040,發送到該客戶端。
同時,可指示該客戶端裝置120以將先前收到的第一數值(舊的第一數值1020)送返至該接收器(即如連同客戶端裝置輸入1030*,若確有)。按此方式所收到的舊有第一數值1020,並連同來自該客戶端裝置120之任何伴隨的新客戶端裝置輸入1030*,會被記錄在該資料庫550內。該舊有第一數值以及含有該新客戶端裝置輸入1030*的輸入集合(若確有)會被提供至該測試單元500,此單元可將該等儲存在一資料庫項目裡。
如此,總結而言,在該學習階段過程裡將會對該資料庫550內的記錄配佈以從該客戶端裝置所收到的第一數值(即如舊有第一數值1020,這是自一稍早呈顯命令集合1010所導算出且先前發送至該客戶端裝置120),並連同一含有任何客戶端裝置輸入1030*的輸入集合,此者可能在自該客戶端裝置102的返回旅途上已伴隨該舊有第一數值1020。如此可在該資料庫550裡產生該等第一數值與含有該客戶端裝置輸入之輸入集合間的直接關聯性。
在測試階段過程中,會將該所模擬輸入集合提供至該呈顯命令產生器270。第二數值是由呈顯命令集合所導算出,而一旦辨識出一特定第二數值,即可自該資料庫550擷取出相關聯的輸入集合(若有)並且施用作為一模擬輸入集合,如此仿擬在學習階段過程裡自該客戶端裝置120返 回的路途中原先伴隨該第一數值的輸入集合。
熟諳本項技藝之人士將能暸解前述實施例應被視為說明性而非限制性。此外,應瞭解未對一些可能需要以利本發明實施例操作的額外構件詳加說明,其原因是假設該等確為熟諳本項技藝之人士所能構思的範圍內。並且,本發明的一些實施例可不需、缺少及/或無含任何並未在此特定揭示的構件。
熟諳本項技藝之人士亦將能知曉確可對該等所述實施例進行額外的調適與修改作業。因此,本發明的範疇不應受限於前述的特定實施例,而是依照後文的申請專利範圍所定義。
其他實施例
本發明雖既已參照於多項示範性實施例所描述,然應瞭解本揭示並非侷限於該等示範性實施例。後載申請專利範圍的範疇確應依照最寬廣方式所詮釋,藉以涵蓋所有該等修改項目和等同的結構與功能。同時,根據本發明的資訊處理設備以及用於控制資訊處理設備的方法可為藉由在一電腦上執行該等方法的程式所實現。該程式可為藉由儲存在一電腦可讀取儲存媒體上或是透過電子通訊線路所提供/散佈。

Claims (24)

  1. 一種資訊處理設備,其包含:提供裝置,其係用以對一接收輸入並根據該些輸入以呈顯一或更多影像的系統提供一輸入集合,該輸入集合包含從用以儲存輸入集合與第一數值之儲存裝置中所擷取到的一或更多輸入,其中該些第一數值各者是對應於多個第一輸出的一者,且其中該些第一輸出各者是藉由先前經提供至該系統之所儲存輸入集合的各者所獲得;獲得裝置,其係用以藉由該提供裝置將該輸入集合提供至該系統以自該系統獲得一第二輸出,並且獲得一對應於該第二輸出的第二數值;檢查裝置,其係用以檢查該第二數值是否匹配於該些第一數值的一者;以及輸出裝置,其係用以顯明地或隱含地輸出該檢查的結果;其中該提供裝置將所儲存輸入集合之一者提供至該系統,其係對應於該些第一數值之一者且匹配於該第二數值,以及其中該系統含有一呈顯命令產生器,其輸出一或更多呈顯命令集合,而該些集合各者含有用以呈顯一或更多影像的一或更多呈顯命令。
  2. 如申請專利範圍第1項所述之資訊處理設備,其中該些第一輸出各者及該第二輸出為一呈顯命令集合。
  3. 如申請專利範圍第2項所述之資訊處理設備,其中該些第一數值各者及該第二數值為一表示相對應的該呈顯命令集合的數值。
  4. 如申請專利範圍第2項所述之資訊處理設備,其中該些第一數值各者及該第二數值為一基於相對應的該呈顯命令集合所算得的雜湊數值。
  5. 如申請專利範圍第2項所述之資訊處理設備,其中,在該第二數值不匹配於該些第一數值之任一者的情況下,該輸出裝置輸出一表示該呈顯命令產生器不正常地運作的結果。
  6. 如申請專利範圍第1項所述之資訊處理設備,其中該系統進一步含有一呈顯器,其輸出一或更多影像集合,所述一或更多影像集合各者含有根據由該呈顯命令產生器所輸出的呈顯命令集合之一者所呈顯的一或更多影像。
  7. 如申請專利範圍第6項所述之資訊處理設備,其中該些第一輸出各者及該第二輸出為一影像集合。
  8. 如申請專利範圍第7項所述之資訊處理設備,其中該些第一數值各者及該第二數值為一表示相對應的該影像集合的數值。
  9. 如申請專利範圍第7項所述之資訊處理設備,其中該些第一數值各者及該第二數值為一基於相對應的該影像集合所算得的雜湊數值。
  10. 如申請專利範圍第7項所述之資訊處理設備,其中,在該第二數值不匹配於該些第一數值之任一者的情況下,該輸出裝置輸出一表示該呈顯命令產生器或該呈顯器不正常地運作的結果。
  11. 如申請專利範圍第1項所述之資訊處理設備,其中該些所儲存輸入集合之各者為關聯於該些第一數值的一者,其中在一包含將該些所儲存輸入集合之該相關聯者提供至該系統之時間的預設時段過程裡會輸出對應於該些第一數值之該一者的第一輸出。
  12. 如申請專利範圍第11項所述之資訊處理設備,其中該預設時段是對應於視訊資料之訊框的時間間隔。
  13. 如申請專利範圍第11項所述之資訊處理設備,其中該第一數值為一雜湊數值,其是基於該第一輸出以及有關於將與該第一數值相關聯之該些所儲存輸入集合的一者提供至該系統之時間的時間資訊所算得。
  14. 如申請專利範圍第11項所述之資訊處理設備,其中該儲存裝置儲存與一時間有關的時間資訊,此時間為儲存該些所儲存輸入集合之一者和該些第一數值之相對應者的時間,而關聯於該些所儲存輸入集合之一者和該些第一數值之相對應者。
  15. 如申請專利範圍第14項所述之資訊處理設備,其中該檢查裝置檢查該第二數值是否匹配於該些第一數值中的一者,而其相對應的時間資訊是有關於一與對應於由該提供裝置所提供之輸入集合的時間資訊相關聯之時間後的時間。
  16. 如申請專利範圍第11項所述之資訊處理設備,其中,在該預設時段過程裡輸出對應於該些第一數值之一或更多者的第一輸出而並未將輸入集合提供至該系統的情況下,該儲存裝置儲存該些第一數值中與該些所儲存輸入集合之任一者無關聯的一或更多者。
  17. 如申請專利範圍第16項所述之資訊處理設備,其中該檢查裝置檢查該第二數值是否匹配於該些第一數值的一者,而該些儲存輸入集合的其一相對應者是儲存在該儲存裝置內。
  18. 如申請專利範圍第1項所述之資訊處理設備,其中,在該第二數值等同於該些第一數值之一者的情況下,該檢查裝置決定該第二數值匹配於該些第一數值的一者。
  19. 如申請專利範圍第1項所述之資訊處理設備,其中,在該第二數值與該些第一數值之一者的差值是等於或小於一預設門檻值的情況下,該檢查裝置決定該第二數值匹配於該些第一數值的一者。
  20. 如申請專利範圍第2項所述之資訊處理設備,其中該系統進一步含有一呈顯器,其輸出一或更多影像集合,而該些集合各者含有根據由該呈顯命令產生器所輸出的呈顯命令集合之一者所呈顯的一或更多影像,其中該儲存裝置進一步儲存第三數值,該些數值各者是對應於該些影像集合中關聯於該些輸入集合及該些第一數值的一者,其中該獲得裝置進一步藉由將該第二輸出提供至該呈顯器的呈顯命令產生器以獲得一影像集合,並且獲得一對應於該所獲影像集合的第四數值,以及其中該檢查裝置檢查該第二數值是否匹配於該些第一數值的一者,以及該第四數值是否匹配於關聯於該些第一數值的一者所儲存之該些第三數值的一者。
  21. 如申請專利範圍第20項所述之資訊處理設備,其中,在該第二數值匹配於該些第一數值的一者然該第四數值並不匹配於關聯於該些第一數值的一者所儲存之該些第三數值之一者的情況下,該輸出裝置輸出一表示該呈顯器不正常地運作的結果。
  22. 如申請專利範圍第1項所述之資訊處理設備,進一步包含用以監視該系統之狀態的監視裝置;其中該輸出裝置併同於該檢查的結果輸出該系統的狀態。
  23. 一種控制一資訊處理設備的方法,其包含:對一接收輸入並根據該些輸入以呈顯一或更多影像的系統提供一輸入集合,此輸入集合包含從用以儲存輸入集合與第一數值之儲存裝置中所擷取到的一或更多輸入,其中該些第一數值各者是對應於多個第一輸出的一者,並且其中該些第一輸出各者是藉由先前經提供至該系統之所儲存輸入集合的各者所獲得;藉由在該提供處理中將該輸入集合提供至該系統以自該系統獲得一第二輸出,並且獲得一對應於該第二輸出的第二數值;檢查該第二數值是否匹配於該些第一數值的一者;以及顯明地或隱含地輸出該檢查的結果;其中在該提供處理中將對應於該些第一數值之一者,其對應於該第二數值,的該些所儲存輸入集合之一者提供至該系統,以及其中該系統含有一呈顯命令產生器,其輸出一或更多呈顯命令集合,而該些集合各者含有用以呈顯一或更多影像的一或更多呈顯命令。
  24. 一種由一資訊處理設備中所提供之電腦執行的電腦程式產品,該電腦程式產品可令該電腦執行下列項目:對一接收輸入並根據該些輸入以呈顯一或更多影像的系統提供一輸入集合,此輸入集合包含從用以儲存輸入集合與第一數值之儲存裝置中所擷取到的一或更多輸入,其中該些第一數值各者是對應於多個第一輸出的一者,並且其中該些第一輸出各者是藉由先前經提供至該系統之所儲存輸入集合的各者所獲得;藉由在該提供處理中將該輸入集合提供至該系統以自該系統獲得一第二輸出,並且獲得一對應於該第二輸出的第二數值;檢查該第二數值是否匹配於該些第一數值的一者;以及顯明地或隱含地輸出該檢查的結果;其中在該提供處理中將對應於該些第一數值之一者,其對應於該第二數值,的該些所儲存輸入集合之一者提供至該系統,以及其中該系統含有一呈顯命令產生器,其輸出一或更多呈顯命令集合,而該些集合各者含有用以呈顯一或更多影像的一或更多呈顯命令。
TW103113834A 2013-05-21 2014-04-16 資訊處理設備,用於控制其之方法及程式 TWI650164B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201361825663P 2013-05-21 2013-05-21
US61/825,663 2013-05-21

Publications (2)

Publication Number Publication Date
TW201501760A TW201501760A (zh) 2015-01-16
TWI650164B true TWI650164B (zh) 2019-02-11

Family

ID=51933393

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103113834A TWI650164B (zh) 2013-05-21 2014-04-16 資訊處理設備,用於控制其之方法及程式

Country Status (6)

Country Link
US (1) US20160059127A1 (zh)
EP (1) EP3000043B1 (zh)
JP (1) JP6379107B2 (zh)
CA (1) CA2910371A1 (zh)
TW (1) TWI650164B (zh)
WO (1) WO2014188829A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105512273A (zh) * 2015-12-03 2016-04-20 中山大学 一种基于可变长深度哈希学习的图像检索方法
US10226708B2 (en) 2016-06-30 2019-03-12 Electronic Arts Inc. Interactive gameplay playback system
US11000771B1 (en) * 2017-03-30 2021-05-11 Electronic Arts Inc. Gameplay telemetry and video acquisition system
GB2578784A (en) * 2018-11-09 2020-05-27 Sony Interactive Entertainment Inc Data processing system and method
US10783057B2 (en) * 2018-11-21 2020-09-22 Sony Interactive Entertainment LLC Testing as a service for cloud gaming
JP7168532B2 (ja) 2019-08-30 2022-11-09 任天堂株式会社 情報処理システム、情報処理方法、開発装置、および開発装置用のプログラム
CN111951366B (zh) * 2020-07-29 2021-06-15 北京蔚领时代科技有限公司 一种云原生3d场景游戏方法和系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI344795B (en) * 2006-06-08 2011-07-01 Via Tech Inc Decoding of context adaptive variable length codes in computational core of programmable graphics processing unit

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002236598A (ja) * 2001-02-08 2002-08-23 Hitachi Information Systems Ltd 画面操作内容の表示方法及び該方法を実現するためのプログラム
JP2003216310A (ja) 2001-09-28 2003-07-31 Ricoh Co Ltd キー操作監視方法、描画情報取得方法、キー操作再生方法、これらの方法をコンピュータに実行させるプログラムおよび画像形成装置
US8949922B2 (en) * 2002-12-10 2015-02-03 Ol2, Inc. System for collaborative conferencing using streaming interactive video
JP4541811B2 (ja) * 2004-09-13 2010-09-08 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
US9015671B2 (en) * 2006-12-27 2015-04-21 The Mathworks, Inc. Integrating program construction
JP4827950B2 (ja) * 2008-07-31 2011-11-30 富士通株式会社 サーバ装置
JP5263246B2 (ja) * 2010-09-14 2013-08-14 コニカミノルタビジネステクノロジーズ株式会社 画像形成装置
US9104814B1 (en) * 2013-05-03 2015-08-11 Kabam, Inc. System and method for integrated testing of a virtual space

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI344795B (en) * 2006-06-08 2011-07-01 Via Tech Inc Decoding of context adaptive variable length codes in computational core of programmable graphics processing unit

Also Published As

Publication number Publication date
WO2014188829A1 (en) 2014-11-27
JP6379107B2 (ja) 2018-08-22
EP3000043A1 (en) 2016-03-30
EP3000043A4 (en) 2017-01-18
EP3000043B1 (en) 2020-12-09
TW201501760A (zh) 2015-01-16
US20160059127A1 (en) 2016-03-03
JP2016524730A (ja) 2016-08-18
CA2910371A1 (en) 2014-11-27

Similar Documents

Publication Publication Date Title
TWI650164B (zh) 資訊處理設備,用於控制其之方法及程式
JP6310073B2 (ja) 描画システム、制御方法、及び記憶媒体
JP5987060B2 (ja) ゲームシステム、ゲーム装置、制御方法、プログラム及び記録媒体
JP6069528B2 (ja) 画像処理装置、画像処理システム、画像処理方法、及び記憶媒体
JP6576245B2 (ja) 情報処理装置、制御方法及びプログラム
JP6232423B2 (ja) 情報処理装置、描画装置、方法及びプログラム
JP6196668B2 (ja) クラウド型ゲームシステムにおける描画リソースの動的割り当て
CN110536725A (zh) 基于应用程序内行为的个性化用户界面
CN109152955A (zh) 云游戏中的用户保存数据管理
JP2016536654A (ja) 描画装置、その描画方法、プログラム及び記録媒体
CN113873280B (zh) 连麦直播对战互动方法、系统、装置及计算机设备
JP6200062B2 (ja) 情報処理装置、制御方法、プログラム及び記録媒体