WO2015181851A1 - 展開予測装置、展開予測方法、プログラム及び記録媒体 - Google Patents

展開予測装置、展開予測方法、プログラム及び記録媒体 Download PDF

Info

Publication number
WO2015181851A1
WO2015181851A1 PCT/JP2014/002821 JP2014002821W WO2015181851A1 WO 2015181851 A1 WO2015181851 A1 WO 2015181851A1 JP 2014002821 W JP2014002821 W JP 2014002821W WO 2015181851 A1 WO2015181851 A1 WO 2015181851A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
memory
prediction
expanded
deployment
Prior art date
Application number
PCT/JP2014/002821
Other languages
English (en)
French (fr)
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 株式会社スクウェア・エニックス・ホールディングス
Priority to JP2016522978A priority Critical patent/JP6333369B2/ja
Priority to PCT/JP2014/002821 priority patent/WO2015181851A1/ja
Publication of WO2015181851A1 publication Critical patent/WO2015181851A1/ja

Links

Images

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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering

Definitions

  • the present invention relates to an expansion prediction apparatus, an expansion prediction method, a program, and a recording medium, and more particularly to a memory expansion technology of an object necessary for drawing.
  • Patent Document 1 a cloud gaming system capable of causing a player to experience a game of the same quality as an apparatus having drawing performance, even if the electronic apparatus does not have sufficient drawing performance.
  • processing relating to a game and processing for drawing a screen are performed on the server side.
  • the client device such as the electronic device transmits the operation input related to the game to the server via the network, so that the game screen on which the operation input is reflected can be received as streaming video data from the server.
  • Such a system can be applied not only to game applications, but also to applications that draw and present screens according to operation inputs, such as simulators and machine design applications.
  • drawing object various data relating to an object drawn on the screen (hereinafter, drawing object) is expanded and used in a memory that can be accessed at high speed in order to speed up the process.
  • model data, texture data, a program for drawing such as a shader, and other necessary information are associated with one drawing object.
  • these data need to be read from a recording medium such as an HDD and expanded in a memory such as a DRAM.
  • memory expansion of data required for such screen drawing processing is performed according to the progress of the game being played, such as the field or stage in which the character being operated currently exists. It will be. In this case, for example, data of all drawing objects that may be required according to the progress status are read from the recording medium and expanded.
  • the cloud gaming system generation of screens is performed in parallel for each of a plurality of connected client devices, so the deployment area prepared on the server side is distributed and used for these devices. That is, the amount of memory allocated for generating a screen provided to one client device is limited.
  • the server side which increases the cost for introducing the server.
  • the data when expanding data of all drawing objects that may be required, such as a home game console, the data also includes data that is not actually used for drawing. Therefore, for example, by specifying the drawing object included in the range (drawing range) drawn on the screen according to the determined viewpoint relating to the screen drawing, it is controlled to expand only the data relating to the drawing object. The cost of introducing servers can be reduced.
  • the drawing object is specified in the drawing range after the determination of the viewpoint and expanded in the memory. There may be a delay in the time to completion of the process. Especially when communication is required between the client device and the server as in the cloud gaming system, the amount of delay can be further increased due to the communication delay.
  • the present invention predicts data used for drawing processing and performs memory expansion efficiently, expansion prediction method, program, and recording It aims to provide a medium.
  • a deployment prediction device relates to a screen drawing process at a first point in content execution, and an acquisition means for acquiring data requested for expansion.
  • the second point in time later than the first point of time based on the history information indicating the data expanded in the memory in chronological order according to the screen drawing process prior to the first point of time and the data requested to be expanded
  • prediction means for predicting data to be developed in the memory at the time of screen drawing processing of
  • a diagram showing a system configuration of a cloud gaming system according to a first embodiment of the present invention A block diagram showing a functional configuration of the drawing server 100 according to the first embodiment of the present invention
  • a diagram exemplifying a data structure of history information managed by the prediction unit 105 according to an embodiment of the present invention The flowchart which illustrated the drawing processing which is executed with drawing server 100 which relates to the execution form 1 of this invention
  • a diagram showing a system configuration of a cloud gaming system according to a second embodiment of the present invention Block diagram showing the functional configuration of the drawing server 100 according to Embodiment 2 of the present invention
  • Embodiment 1 Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings.
  • An example in which the present invention is applied to a possible drawing server will be described.
  • the present invention is applicable to any device capable of predicting data that may need to be expanded at least after the data requested to be expanded, based on the history of data expansion to the memory.
  • FIG. 1 is a diagram showing a system configuration of a cloud gaming system for providing a game screen relating to game content to a client device 400 according to an embodiment of the present invention.
  • a client device 400 used by a player who receives service provision is connected to the drawing server 100 or the CPU server 200 via the network 300.
  • the CPU server 200 performs processing of changing parameters and the like related to the game according to operation input and time-lapse changes made in the client device 400 and various processing related to the game progress.
  • the CPU server 200 generates a drawing command for drawing the screen based on the parameters related to the game for each frame providing the game screen, and transmits the drawing command to the drawing server 100.
  • the drawing server 100 executes the drawing process related to the game screen based on the received drawing command, and transmits the generated game screen to the corresponding client device 400.
  • drawing server 100 and the CPU server 200 are described as being different devices in the present embodiment for the sake of simplicity, the implementation of the present invention is not limited to this.
  • the drawing server 100 and the CPU server 200 may be integrally configured.
  • the drawing server 100 and the CPU server 200 are connected via the network 300 including the client device 400, but the connection between the drawing server 100 and the CPU server 200 is the network 300. It is needless to say that the configuration may be such that they are directly connected without intervention.
  • the control unit 101 is, for example, a CPU, and controls the operation of each block included in the drawing server 100.
  • the control unit 101 reads out an operation program of each block stored in the storage medium 102, and develops and executes the program on the memory 103 to control the operation of each block.
  • the storage medium 102 is, for example, a recording device such as a non-volatile memory or an HDD.
  • the storage medium 102 stores not only the operation program of each block included in the drawing server 100 but also various data related to the drawing object required to generate the game screen in the drawing process described later.
  • the memory 103 is, for example, a volatile memory such as a RAM.
  • the memory 103 is used not only as a development area for the operation program of each block but also as a storage area for temporarily storing intermediate data and the like output by the operation of each block. In the present embodiment, the memory 103 is also used as an expansion area of various data related to the drawing object required in the drawing process.
  • the drawing unit 104 draws a game screen to be transmitted to the client device 400 such as, for example, a GPU.
  • the drawing unit 104 performs a drawing process of the game screen based on the drawing command received from the CPU server 200.
  • the drawing unit 104 uses various data relating to the drawing object expanded in the memory 103 in the drawing process, applies translation, rotation, shading, and other processes to the data, for example, a VRAM (not shown) or the like.
  • the generated game screen may be transmitted to the client device 400 as it is, but in the present embodiment, it is transmitted as encoded moving image data in streaming format.
  • the encoding process according to the generation of moving image data will be described as being executed by the drawing unit 104 in the present embodiment for the sake of simplicity.
  • the prediction unit 105 based on the drawing command received from the CPU server 200, data that is required to be expanded in the memory 103 in the drawing process based on the drawing command received at least after the drawing command, that is, expand. Predict data that seems to be.
  • the prediction unit 105 manages history information indicating, in chronological order, data expanded in the memory 103 based on a drawing command received in the past.
  • the prediction unit 105 is concerned with the drawing command received later than the newly received drawing command based on the history information and the data which is requested to be expanded by the newly received drawing command, and the drawing server 100 executes the drawing command. Predict the data needed for processing.
  • the history information has, for example, a tree-type data structure as shown in FIG. 3 in which a plurality of layers are connected in time-sequential order, which indicates a data set expanded in the memory 103 in the drawing process related to one frame. It may be configured.
  • the data set shown in the hierarchy connected by the tree indicates the data set expanded in the memory 103 for the drawing command related to the continuous frame.
  • the branch derived from one data set in the history information is a plurality of drawing sequences in which development of different data sets is performed in a subsequent drawing instruction after a drawing instruction requiring expansion of a data set regarded as identical is made. Indicates that was done.
  • the prediction unit 105 of this embodiment sequentially updates the history information based on the drawing command that requires the development of data sent from the CPU server 200 to the drawing server 100, and the history information as shown in FIG. Generate
  • data of each layer of history information is described as a data set expanded in the memory 103 in the drawing process related to one frame, but the configuration of the history information is limited to this. Absent.
  • the history information depends on each unit of the drawing command and the data set to be expanded may be data of one hierarchy. Good.
  • the data set shown in the hierarchy connected by the tree may indicate the data set expanded in the memory 103 for consecutive drawing commands related to one frame.
  • the history information is described as being generated for each game content based on the drawing command made in the process executed for each of a plurality of players using the game content.
  • the implementation of the present invention is not limited to this, and for example, a drawing command performed in a process executed for one reference player or developer, or a drawing command performed in a process executed for each player
  • the history information may be generated based on
  • the history information does not have to be generated only on the basis of a drawing command for one game content, but is generated on the basis of a drawing command for different game contents that can use the same data. May be Alternatively, if a tree is configured to be divided for each content in the history information, the content included in one history information need not be limited to game content that can use the same data.
  • the developing unit 106 reads from the storage medium 102 data necessary for drawing a game screen in drawing processing described later, and expands the data in the memory 103.
  • the developing unit 106 reads out data that needs to be expanded in the memory 103 based on the received drawing instruction or data to be expanded based on the prediction result by the predicting unit 105 from the storage medium 102 and expands the data in the memory 103.
  • the communication unit 107 is a communication interface that the drawing server 100 has.
  • the drawing server 100 is connected to the network 300 via the communication unit 107, and transmits and receives data to and from the CPU server 200 and the client device 400. Transmission and reception of data may be performed by a predetermined communication method, and the communication unit 107 may perform data conversion to the communication method.
  • FIG. 4 A specific process of the drawing process performed in the drawing server 100 of the present embodiment having such a configuration will be described using the flowchart of FIG. 4.
  • the processing corresponding to the flowchart can be realized, for example, by the control unit 101 reading out a corresponding processing program stored in the storage medium 102, expanding it in the memory 103, and executing it.
  • this drawing process is demonstrated as what is started, for example, when the drawing command which concerns on the game screen provided to one client apparatus 400 from CPU server 200 is received.
  • step S401 the control unit 101 specifies a data set that needs to be expanded in the memory 103 when drawing a game screen based on the received drawing command.
  • the control unit 101 stores information on the identified data set in the memory 103.
  • step S501 the prediction unit 105 determines whether information indicating a data set (corresponding data set) corresponding to the specified data set is present in the history information.
  • the correspondence data set may be a data set in which a combination of data included in the data set is completely identical to the specified data set, for example, when there is a character texture that can be customized for each player, a predetermined one
  • the data set other than the data in (1) may be the same, that is, a combination of partial data included in the data set may be the same as the specified data set. If the prediction unit 105 determines that the information indicating the corresponding data set is present in the history information, the process proceeds to S502, and if it is determined that the information does not exist, the process proceeds to S504.
  • the prediction unit 105 acquires, from the history information, information indicating a data set developed in the memory 103 subsequent to the corresponding data set, and sets a data group indicated by the information as predicted read data.
  • data set as predicted read data a data group included in a data set indicated in all branch layers connected to a corresponding data set in history information is set.
  • the corresponding data set is the data set 301 shown in FIG. 3, the data contained in the three data sets of the data sets 302, 303 and 304 are included in the prediction read data.
  • the data set in the prediction read data is not limited to the data set of the layer immediately below the corresponding data set, and may include, for example, a data set up to a predetermined number of lower layers.
  • step S503 the decompressing unit 106 reads out the corresponding data from the storage medium 102 based on the information of the set predicted readout data, and starts processing to decompress the corresponding data in the memory 103. It is preferable that the processing for the expansion is performed in order from the data included in the data set of the layer immediately below the corresponding data set in the history information.
  • step S504 the prediction unit 105 performs processing of associating information indicating the corresponding data set with the layer immediately below the information indicating the data set expanded based on the latest drawing command included in the history information, and updates the history information. .
  • the information indicating the specified data set is associated with the layer immediately below the new data set, and the history information is updated. You may After the update of the history information is completed, the control unit 101 completes the process according to this flowchart.
  • step S403 the control unit 101 determines whether the specified data set includes data not expanded in the memory 103 yet. If the control unit 101 determines that the specified data set includes data that has not been expanded, the control unit 101 causes the expansion unit 106 to expand the data in the memory 103 in S404. If the control unit 101 determines that all the data included in the identified data set has already been expanded, the control unit 101 moves the process to step S405.
  • step S405 the drawing unit 104 performs drawing processing based on the received drawing command using the data expanded in the memory 103, and generates a game screen. After the generation of the game screen is completed, the control unit 101 completes the present drawing process.
  • the data developed in the memory 103 in the drawing process is accumulated as history information based on the drawing instruction of the game screen, and the subsequent drawing instruction is performed based on the history information.
  • Data that can be expanded can be predicted and expanded in the memory 103. That is, since the history information is configured based on the drawing command actually issued, it is possible to speed up the drawing process of the game screen by the predictive reading more according to the game play.
  • the data included in the data set developed subsequent to the corresponding data set is described as the prediction read data, but the implementation of the present invention is not limited to this. That is, for example, when the corresponding data set can be predicted from the history information when acquiring the information of the partial data expanded in relation to the drawing command, the prediction unit 105 also includes the corresponding data set as predicted read data. It may be set. Further, in the present embodiment, the data set necessary for drawing the game screen based on the drawing command has been described as constituting data of each layer of the history information, but the drawing command issued prior to the drawing command When the expanded data is continuously held in the memory 103, a data set excluding the held data may constitute data of each layer of the history information.
  • the prediction unit 105 may be higher than the corresponding data set and the corresponding data set because a part of the data necessary for the drawing process may not be expanded only with data included in the data set subsequent to the corresponding data set.
  • the predicted read data may be set including data included in the data set of the hierarchy of.
  • the prediction unit 105 takes statistics on each branch of the history information based on whether or not the data set in the predicted read data is actually used for drawing processing, and discards the branch set in the predicted read data based on the statistics. It may be selected. In this case, the statistics may be taken for each player, or may be taken for a target of a predetermined statistical standard, such as for each country of origin or access area of the player.
  • the expansion prediction apparatus can predict data to be used for drawing processing and perform efficient memory expansion.
  • the expansion prediction apparatus is concerned with the screen drawing process at the first point in the execution of the content and acquires the expanded data requested, and is expanded in the memory in relation to the screen drawing process before the first time point. Based on the history information indicating the data in chronological order and the data requested to be expanded, the data to be expanded in the memory at the time of screen drawing processing at the second time point after at least the first time point is predicted.
  • drawing server 100 there is one drawing server 100 connected to one CPU server 200, and data necessary for drawing a game screen is stored in the storage medium 102 of the drawing server 100. .
  • one drawing server 100 is connected to one CPU server 200, and any one of the client devices 400 is selected by the CPU server 200.
  • One drawing server 100 draws a game screen to be transmitted to the client device 400.
  • the selection of the drawing server 100 that performs drawing processing may be performed based on a predetermined standard, such as a server installed in an area closest to the client device 400 or a server with the least number of connections.
  • storing the same data in the storage media 102 of all the drawing servers 100 means, for example, the tendency of content favored in the area where the drawing server 100 is installed, or the time of data update. Considering the ease of work and maintainability, it may not be entirely preferable. Therefore, in the cloud gaming system according to the present embodiment, as shown in FIG. 6, it is assumed that the recording device 600 provided outside the drawing server 100 holds various data relating to the drawing object.
  • the drawing server 100 has a monitoring unit 110 as shown in FIG. 7 in addition to the storage medium 102 not storing various data relating to the drawing object.
  • the monitoring unit 110 monitors the communication status on the network via the communication unit 107, and indicates that the control unit 101 can obtain data when the communication status satisfies a predetermined condition for data acquisition based on a prediction.
  • the communication status on the network may be, for example, the amount of traffic in the network to which the drawing server 100 and the CPU server 200 are connected, and in this case, the monitoring unit 110 is predetermined as the amount of traffic performing data acquisition. It is assumed that the control unit 101 is notified when the value is less than or equal to the value.
  • the communication status on the network may be a traffic amount related to communication between the recording apparatus 600 and an external device (for example, the drawing server 100 or the memory 103), and in this case, the monitoring unit 110 It is assumed that the control unit 101 is notified when the value becomes equal to or less than a predetermined value for performing data acquisition.
  • the communication status on the network may be a transmission delay amount in the communication between the recording apparatus 600 and the drawing server 100, and the monitoring unit 110 may set the delay amount below a predetermined value as data acquisition. Communication may be performed to the control unit 101 when it is not.
  • the communication status on the network may be the number of client devices 400 connected to the drawing server 100, or the traffic amount related to the transmission of a game screen to the connected client devices 400, in this case,
  • the monitoring unit 110 notifies the control unit 101 when the number of connections or the traffic volume becomes equal to or less than a predetermined value for performing data acquisition.
  • the expansion processing executed in the drawing server 100 according to the present embodiment will be described in detail with reference to the flowchart of FIG.
  • the monitoring unit 110 monitors processing related to prediction and reading using history information.
  • the execution is controlled in accordance with the communication conditions being performed. This is because communication with the recording device 600 involved in data acquisition may cause communication delay, processing delay, etc., and ultimately affect the entire network or the provision quality of game content. Therefore, in the present embodiment, the drawing server 100 performs advance acquisition of data based on prediction only when the communication status on the network satisfies the predetermined condition by the monitoring unit 110.
  • step S801 the monitoring unit 110 determines whether the communication status on the network satisfies a predetermined condition for performing data acquisition based on a prediction. If the monitoring unit 110 determines that the communication status satisfies the predetermined condition, the process proceeds to S802, and if it is determined that the communication condition does not satisfy the predetermined condition, the processing of this step is repeated.
  • step S802 the monitoring unit 110 notifies the control unit 101 that data can be read.
  • step S803 the control unit 101 specifies a data set that needs to be expanded in the memory 103 when drawing a game screen based on the drawing command currently received.
  • the control unit 101 stores the information of the identified data set in the memory 103, and moves the process to S501.
  • the control unit 101 After the predicted read data is set in S502, the control unit 101 requests the recording apparatus 600 for data set in the predicted read data via the communication unit 107 in S804, and starts receiving the data.
  • step S805 the control unit 101 determines whether data set as predicted read data has been received. If the control unit 101 determines that data has been received, the process advances to step S806 to cause the communication unit 107 to expand the data in the memory 103. When the control unit 101 determines that data is not received, the processing of this step is repeated.
  • step S807 the control unit 101 determines whether all data set in predicted read data has been received. If the control unit 101 determines that all the data has been received, the process proceeds to step S504. If the control unit 101 determines that there is unreceived data, the process returns to step S805.
  • the drawing server 100 can perform data acquisition from the recording device 600 based on prediction in consideration of the communication status. That is, according to one drawing instruction based on a prediction, the prediction reading for acquiring data having a data amount larger than the expanded data amount is, for example, a factor such that the traffic amount has a margin and the service quality is deteriorated due to the communication delay. It can be done at an avoidable timing. That is, the drawing server 100 of this aspect can grasp the communication status with the external device, etc., and can obtain in advance the data predicted to be expanded at the timing when the data can be efficiently received.
  • all data acquired based on the prediction is described as being expanded in the memory 103, but the implementation of the present invention may not be limited to this.
  • the acquired data is stored, for example, in the storage medium 102 or the memory 103 in an unexpanded state, and is configured to be expanded in the memory 103 by the expansion unit 106 when it is predicted that it may shift to the corresponding expanded state. May be
  • the history information is described as being used only for prediction of data reading, but the implementation of the present invention is not limited to this.
  • the history information may be used to predict a suitable release timing of the data expanded in the memory 103 from the memory 103.
  • the data expanded in the memory 103 based on one drawing instruction may be used in the drawing process related to the drawing instruction issued later than the drawing instruction. Therefore, the prediction unit 105 determines based on the history information whether the data expanded based on the drawing command of the current frame may be expanded again before a predetermined number of frames elapse, for example, the expansion unit 106 The timing of releasing data from the memory 103 may be controlled based on the determination.
  • the release timing information instead of determining the release timing of each data each time based on the history information in this way, for example, information on the release timing determined once is included in the history information, and based on the history information when setting predicted read data.
  • the release timing information may also be predicted. Further, among the data related to the branch of the history expanded based on the prediction, the data related to the branch that did not correspond to the drawing command actually issued may be released at a predetermined timing.
  • setting of predicted read data is performed based on the received drawing command and the currently received drawing command, but the implementation of the present invention is not limited to this. That is, the drawing command serving as the reference of the predictive reading may be a drawing command issued at an arbitrary timing, and the setting of the predictive reading data may be performed based on the data for which the expansion request is made by the command. For example, since the drawing command relating to the starting point is predictable at the start of the game, the processing relating to the predictive reading can be performed when the game content is selected by the player.
  • the history information is described as managing the data set expanded in the memory 103, but the implementation of the present invention is not limited to this.
  • the history information may manage information in which the status is associated with the expanded data set. In this case, for example, it is possible to predict complex data readout based on parameters such as camera position in a 3D scene relating to game content and various parameters of the used character, etc. Efficient data reading is possible.
  • the expansion prediction apparatus is data to be expanded based on information based on the screen drawing processing and information indicating the data requested to be expanded and history information related to the screen drawing processing expanded on the memory in chronological order. It is not necessary that the drawing server 100 exist as a separate module in the drawing server 100 or that the drawing server 100 functions as a deployment prediction apparatus. That is, the apparatus connected to the drawing server 100 acquires information indicating data expanded in the memory 103 of the drawing server 100 and information indicating data requested to be expanded, and the prediction result based on the history information is drawn on the drawing server 100.
  • the present invention can be implemented as long as it is a device capable of transmitting data.
  • the apparatus connected to the drawing server 100 may be, for example, the CPU server 200.
  • the deployment prediction apparatus may transmit, to the drawing server 200, a deployment command of data predicted when transmitting the prediction result.
  • the expansion prediction apparatus When the expansion prediction apparatus is configured as an apparatus outside the drawing server 100 in this manner, information on the transmission delay amount in the communication between the drawing server 100 and the recording apparatus 600 is, for example, predetermined from the drawing server 100 to the expansion prediction apparatus. It may be sent out at intervals of The expansion prediction apparatus determines not only the information indicating the data to be expanded in the memory, which is the prediction result, but also an instruction to cause the drawing server 100 to acquire the data to be expanded in the memory from the recording device 600 based on the communication status. You can send it.
  • the deployment prediction device can also be realized by a program that causes one or more computers to function as the deployment prediction device.
  • the program can be provided / distributed by being recorded on a computer readable recording medium or through a telecommunication line.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 描画処理に使用されるデータを予測し、効率的なメモリ展開を行う。展開予測装置は、コンテンツの実行における第1の時点の画面描画処理に係り展開要求されたデータを取得し、第1の時点よりも前の画面描画処理に係りメモリに展開されたデータを時系列順に示す履歴情報と展開要求されたデータとに基づいて、少なくとも第1の時点よりも後の第2の時点の画面描画処理に際しメモリに展開するデータを予測する。

Description

展開予測装置、展開予測方法、プログラム及び記録媒体
 本発明は、展開予測装置、展開予測方法、プログラム及び記録媒体に関するものであり、特に描画に必要なオブジェクトのメモリ展開技術に関する。
 近年、十分な描画性能を有さない電子機器であっても、描画性能を有する機器と同等の品質のゲームを体験させることが可能なクラウドゲーミングシステムが提案されてきている(特許文献1)。クラウドゲーミングシステムでは、ゲームに係る処理や画面の描画処理はサーバ側で行われる。電子機器等のクライアント機器はネットワークを介してゲームに係る操作入力をサーバに送信することで、該操作入力が反映されたゲーム画面を、サーバからストリーミング方式の動画データとして受信することができる。このようなシステムは、ゲームアプリケーションに限らず、シミュレータや機械設計アプリケーション等、操作入力に応じた画面を描画して提示するアプリケーションにも応用することができる。
 ところで、提示する画面の描画処理では、画面に描画されるオブジェクト(以下、描画オブジェクト)に係る様々なデータが、処理を高速化するために、高速にアクセス可能なメモリに展開されて使用される。例えば1つの描画オブジェクトには、モデルデータ、テクスチャデータ、シェーダ等の描画用プログラム、その他の必要な情報が関連付けられている。描画オブジェクトを描画する際は、HDD等の記録媒体からこれらのデータが読み出され、DRAM等のメモリに展開されている必要がある。通常の家庭用ゲームコンソールでは、このような画面の描画処理で必要となるデータのメモリ展開は、操作しているキャラクタが現在存在するフィールドやステージ等、プレイ中のゲームの進行状況に応じて行われる。この場合、例えば進行状況に応じて必要とされうる全ての描画オブジェクトのデータが記録媒体から読み出されて展開される。
国際公開第2009/138878号
 一方で、クラウドゲーミングシステムでは接続している複数のクライアント機器の各々について画面の生成が並行して行われるため、サーバ側に用意された展開領域は、これらの機器について分配して使用される。即ち、1つのクライアント機器に提供する画面の生成に割り当てられるメモリ量は制限される。上述したように進行状況に応じて必要とされうる全てのデータ群をメモリに展開する方法を使用する場合は、サーバ側に膨大な容量のメモリが必要となってしまい、サーバ導入コストの増大につながる。家庭用ゲームコンソールのように必要とされうる全ての描画オブジェクトのデータを展開する場合は、該データには実際には描画に使用されないデータも含まれている。従って、例えば決定された画面描画に係る視点に応じて画面に描画される範囲(描画範囲)に含まれる描画オブジェクトを特定し、該描画オブジェクトに係るデータのみをメモリ展開するように制御することで、サーバの導入コストを低減することはできる。
 しかしながら、クライアント機器においてなされた操作入力に応じて画面の描画内容が随時更新される場合、視点の決定後に描画範囲の描画オブジェクトを特定してメモリに展開する方式では、ユーザが入力した時点から描画処理が完了するまでの時間に遅延が発生しうる。特にクラウドゲーミングシステムのようにクライアント機器とサーバとの間に通信が必要となる場合、通信遅延も相まって、より遅延量が増大しうる。
 本発明は、このような描画処理に係るデータのメモリ展開の問題点に鑑み、描画処理に使用されるデータを予測し、効率的なメモリ展開を行う展開予測装置、展開予測方法、プログラム及び記録媒体を提供することを目的とする。
 前述の目的を達成するために、本発明の少なくとも1つの実施形態に係る展開予測装置は、コンテンツの実行における第1の時点の画面描画処理に係り展開要求されたデータを取得する取得手段と、第1の時点よりも前の画面描画処理に係りメモリに展開されたデータを時系列順に示す履歴情報と展開要求されたデータとに基づいて、少なくとも第1の時点よりも後の第2の時点の画面描画処理に際しメモリに展開するデータを予測する予測手段と、を有する。
 このような構成により本発明の少なくとも1つの実施形態によれば、描画処理に使用されるデータを予測し、効率的なメモリ展開を行うことが可能となる。
 本発明のその他の特徴及び利点は、添付図面を参照とした以下の説明により明らかになるであろう。なお、添付図面においては、同じ若しくは同様の構成には、同じ参照番号を付す。
 添付図面は明細書に含まれ、その一部を構成し、本発明の実施の形態を示し、その記述と共に本発明の原理を説明するために用いられる。
本発明の実施形態1に係るクラウドゲーミングシステムのシステム構成を示した図 本発明の実施形態1に係る描画サーバ100の機能構成を示したブロック図 本発明の実施形態に係る予測部105において管理される履歴情報のデータ構造を例示した図 本発明の実施形態1に係る描画サーバ100で実行される描画処理を例示したフローチャート 本発明の実施形態1に係る描画処理において実行されるデータの予測及び読み出しに係る処理を例示したフローチャート 本発明の実施形態2に係るクラウドゲーミングシステムのシステム構成を示した図 本発明の実施形態2に係る描画サーバ100の機能構成を示したブロック図 本発明の実施形態2に係る描画サーバ100で実行される展開処理を例示したフローチャート
 [実施形態1]
 以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、展開予測装置の一例としての、クライアント機器に送信する画面の描画に際してメモリへの展開が必要となるデータを、データ展開の履歴に基づいて予測することが可能な描画サーバに、本発明を適用した例を説明する。しかし、本発明は、メモリへのデータ展開の履歴に基づいて、少なくとも展開要求されたデータ以降に展開が必要となりうるデータを予測することが可能な任意の機器に適用可能である。
 《システム構成》
 図1は、本発明の実施形態に係るクライアント機器400への、ゲームコンテンツに係るゲーム画面の提供を行うクラウドゲーミングシステムのシステム構成を示した図である。
 図1に示されるように、本実施形態のクラウドゲーミングシステムでは、サービス提供を受けるプレイヤが使用するクライアント機器400は、ネットワーク300を介して描画サーバ100またはCPUサーバ200に接続される。本実施形態ではクライアント機器400においてなされた操作入力や経時変化に応じてゲームに係るパラメータ等を変更する処理やゲーム進行に係る種々の処理はCPUサーバ200において行われる。CPUサーバ200は、ゲーム画面を提供するフレームごとに、該画面を描画するための描画命令をゲームに係るパラメータに基づいて生成し、描画サーバ100に対して送信する。描画サーバ100は、受信した該描画命令に基づいてゲーム画面に係る描画処理を実行し、生成されたゲーム画面を対応するクライアント機器400に対して送信する。
 なお、本実施形態では簡単のため描画サーバ100とCPUサーバ200とが、各々異なる機器であるものとして説明するが、本発明の実施はこれに限られるものではない。描画サーバ100とCPUサーバ200とは一体となって構成されるものであってもよい。また図1の例では、描画サーバ100とCPUサーバ200とは、クライアント機器400も含まれるネットワーク300を介して接続されるものとしているが、描画サーバ100とCPUサーバ200との接続はネットワーク300を介さずに直接接続される構成であってもよいことは言うまでもない。
  〈描画サーバ100の構成〉
 以下、図2を用いて本実施形態のクラウドゲーミングシステムにおける描画サーバ100の機能構成を説明する。
 制御部101は、例えばCPUであり、描画サーバ100が有する各ブロックの動作を制御する。制御部101は、記憶媒体102に記憶されている各ブロックの動作プログラムを読み出し、メモリ103に展開して実行することにより各ブロックの動作を制御する。
 記憶媒体102は、例えば不揮発性メモリやHDD等の記録装置である。記憶媒体102は、描画サーバ100が有する各ブロックの動作プログラムに限らず、後述する描画処理においてゲーム画面の生成に必要となる描画オブジェクトに係る各種データを記憶する。メモリ103は、例えばRAM等の揮発性メモリである。メモリ103は、各ブロックの動作プログラムの展開領域としてだけでなく、各ブロックの動作により出力された中間データ等を一時的に記憶する格納領域としても用いられる。本実施形態ではメモリ103は、描画処理において必要となる描画オブジェクトに係る各種データの展開領域としても用いられる。
 描画部104は、例えばGPU等のクライアント機器400に送信するゲーム画面を描画する。描画部104は、CPUサーバ200から受信した描画命令に基づいてゲーム画面の描画処理を行う。描画部104は、描画処理において、メモリ103に展開された描画オブジェクトに係る各種データを使用し、該データに対して並進、回転、シェーディングやその他の処理を適用し、例えば不図示のVRAM等にゲーム画面を生成する。生成したゲーム画面はそのままクライアント機器400に送信されてもよいが、本実施形態ではストリーミング形式の符号化動画データとして送信される。動画データの生成に係る符号化処理は、本実施形態では簡単のため描画部104が実行するものとして説明する。
 予測部105は、CPUサーバ200から受信した描画命令に基づいて、少なくとも該描画命令よりも後に受信する描画命令に基づく描画処理においてメモリ103への展開が要求されるデータ、即ち展開することが好適と思われるデータを予測する。本実施形態では予測部105は、過去に受信した描画命令に基づいてメモリ103に展開されたデータを時系列順に示した履歴情報を管理する。予測部105は、履歴情報と新たに受信した描画命令により展開要求がなされるデータとに基づいて、該新たに受信した描画命令よりも後に受信する描画命令に係り描画サーバ100で実行される描画処理に必要となるデータを予測する。
 履歴情報は、例えば各階層のデータが1つのフレームに係る描画処理においてメモリ103に展開されるデータセットを示す、時系列順に複数の階層が接続された図3のようなツリー形式のデータ構造で構成されてよい。履歴情報ではツリーで接続された階層に示されるデータセットは、連続するフレームに係る描画命令についてメモリ103に展開されたデータセットを示している。履歴情報において1つのデータセットから派生している分岐は、同一とみなされるデータセットの展開が必要な描画命令がなされた後、後続する描画命令において異なるデータセットの展開がなされた複数の描画シーケンスがなされたことを示している。本実施形態の予測部105は、CPUサーバ200から描画サーバ100に対してなされたデータの展開を必要とする描画命令に基づいて順次履歴情報を更新し、図3に示されるような履歴情報を生成する。なお、本実施形態では履歴情報の各階層のデータは、1つのフレームに係る描画処理においてメモリ103に展開されるデータセットであるものとして説明するが、履歴情報の構成はこれに限られるものではない。例えば1フレームについて所定の単位の描画命令が複数発行される構成である場合は、履歴情報は該描画命令の各単位に係り展開されるデータセットを1つの階層のデータとする構成であってもよい。この場合、ツリーで接続された階層に示されるデータセットは、1フレームに係る連続する描画命令についてメモリ103に展開されたデータセットを示すものであってよい。
 本実施形態では履歴情報は、ゲームコンテンツごとに、該ゲームコンテンツを利用する複数のプレイヤの各々について実行された処理でなされた描画命令に基づいて生成されるものとして説明する。しかしながら、本発明の実施はこれに限られる必要はなく、例えば基準となる1人のプレイヤまたは開発者について実行された処理でなされた描画命令、あるいはプレイヤごとに実行された処理でなされた描画命令に基づいて履歴情報は生成されるものであってもよい。また履歴情報は、1つのゲームコンテンツに係る描画命令に基づいてのみ生成されるものである必要はなく、同一のデータを使用し得る異なるゲームコンテンツに係る描画命令に基づいて生成されるものであってもよい。あるいは、履歴情報の内部でコンテンツごとにツリーが分かれて構成されるのであれば、1つの履歴情報に含められるコンテンツが同一のデータを使用し得るゲームコンテンツに限られる必要はない。
 展開部106は、後述の描画処理においてゲーム画面の描画に必要となるデータを記憶媒体102から読み出し、メモリ103に展開する。展開部106は、受信した描画命令に基づいてメモリ103への展開が必要となるデータ、あるいは予測部105による予測結果に基づいて展開を行うデータを記憶媒体102から読み出してメモリ103に展開する。
 通信部107は、描画サーバ100が有する通信インタフェースである。本実施形態では描画サーバ100は、通信部107を介してネットワーク300に接続し、CPUサーバ200及びクライアント機器400との間でデータの送受信を行う。データの送受信は予め定められた通信方式で行われてよく、通信部107が該通信方式へのデータ変換等を行ってもよい。
 《描画処理》
 このような構成をもつ本実施形態の描画サーバ100において行われる描画処理について、図4のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、制御部101が、例えば記憶媒体102に記憶されている対応する処理プログラムを読み出し、メモリ103に展開して実行することにより実現することができる。なお、本描画処理は、例えばCPUサーバ200から1つのクライアント機器400に提供するゲーム画面に係る描画命令を受信した際に開始されるものとして説明する。
 S401で、制御部101は、受信した描画命令に基づくゲーム画面の描画にあたり、メモリ103への展開が必要となるデータセットを特定する。制御部101は、特定したデータセットの情報をメモリ103に格納する。
 本実施形態の描画処理では、ゲーム画面の描画に係る処理(S403以降)と、描画対象である現在のフレーム以降に展開するデータの予測及び読み出しに係る処理(S402)とを並行して行うものとして説明する。
  〈データの予測及び読み出しに係る処理〉
 以下、S402で行われる、データの予測及び読み出しに係る処理について、図5のフローチャートを用いて説明する。
 S501で、予測部105は、特定されたデータセットに対応するデータセット(対応データセット)を示す情報が、履歴情報に存在するか否かを判断する。対応データセットは、データセットに含まれるデータの組み合わせが特定されたデータセットと完全同一であるデータセットであってもよいし、例えばプレイヤごとにカスタマイズが可能なキャラクタテクスチャ等が存在する場合、所定のデータを除いた他のデータが同一、即ちデータセットに含まれる一部のデータの組み合わせが特定されたデータセットと同一であるデータセットであってもよい。予測部105は、対応データセットを示す情報が履歴情報に存在すると判断した場合は処理をS502に移し、存在しないと判断した場合は処理をS504に移す。
 S502で、予測部105は、対応データセットに後続してメモリ103に展開されたデータセットを示す情報を履歴情報から取得し、該情報で示されるデータ群を予測読み出しデータとして設定する。本実施形態では予測読み出しデータに設定されるデータは、履歴情報において対応データセットに接続する全ての分岐階層に示されるデータセットに含まれるデータ群が設定される。例えば対応データセットが図3に示されるデータセット301である場合、データセット302、303及び304の3つのデータセットに含まれるデータが予測読み出しデータに含められる。予測読み出しデータに設定されるデータは、対応データセットの直下の階層のデータセットに限られるものではなく、例えば予め定められた数の下位の階層までのデータセット等が含められてよい。
 S503で、展開部106は、設定された予測読み出しデータの情報に基づいて、記憶媒体102から対応するデータを読み出し、メモリ103に展開する処理を開始する。該展開する処理は、履歴情報において対応データセットの直下の階層のデータセットに含まれるデータから順に行われることが好ましい。
 S504で、予測部105は、履歴情報に含まれる直近の描画命令に基づいて展開されたデータセットを示す情報の直下の階層に対応データセットを示す情報を関連付ける処理を行い、履歴情報を更新する。また、対応データセットと特定されたデータセットとが一部のデータが同一の関係にある場合、特定されたデータセットを示す情報を新たなデータセットとして該直下の階層に関連付けて履歴情報を更新してもよい。制御部101は、履歴情報の更新が完了した後、本フローチャートに係る処理を完了する。
  〈ゲーム画面の描画に係る処理〉
 次に、該データの予測及び読み出しに係る処理に並行して実行される描画に係る処理について以下に説明する。
 S403で、制御部101は、特定されたデータセットにまだメモリ103に展開されていないデータが含まれているか否かを判断する。制御部101は、特定されたデータセットにまだ展開されていないデータが含まれていると判断した場合、S404で展開部106に該データをメモリ103に展開させる。また制御部101は、特定されたデータセットに含まれるすべてのデータが既に展開されていると判断した場合、処理をS405に移す。
 S405で、描画部104は、メモリ103に展開されたデータを使用して、受信した描画命令に基づく描画処理を行いゲーム画面を生成する。制御部101は、ゲーム画面の生成が完了した後、本描画処理を完了する。
 このように、本実施形態の描画処理では、ゲーム画面の描画命令に基づいて、描画処理においてメモリ103に展開されるデータを履歴情報として蓄積し、かつ該履歴情報に基づいて後続する描画命令により展開要求がなされうるデータを予測してメモリ103に展開しておくことができる。即ち、実際に発行された描画命令に基づいて履歴情報が構成されるため、よりゲームプレイに準じた予測読み出しにより、ゲーム画面の描画処理を高速化することができる。
 なお、本実施形態では対応データセットに後続して展開されたデータセットに含まれるデータを予測読み出しデータとして設定するものとして説明したが、本発明の実施はこれに限られるものではない。即ち、例えば描画命令に係り展開された一部のデータの情報を取得した時点で、履歴情報から対応データセットが予測可能である場合は、予測部105は対応データセットも含めて予測読み出しデータとして設定してもよい。また本実施形態では、描画命令に基づくゲーム画面の描画に必要なデータセットが、履歴情報の各階層のデータを構成するものとして説明したが、該描画命令よりも前に発行された描画命令により展開されたデータが継続してメモリ103に保持される場合は、保持されているデータを除外したデータセットが履歴情報の各階層のデータを構成するものとしてもよい。この場合、例えば対応データセットに後続するデータセットに含まれるデータのみでは描画処理に必要な一部のデータが展開されない可能性があるため、予測部105は対応データセット及び対応データセットよりも上位の階層のデータセットに含まれるデータを含めて予測読み出しデータを設定してもよい。
 また本実施形態では、対応データセットに後続するデータセットが複数種類ある場合、即ち履歴情報にいて対応データセットの下位の階層に分岐が存在する場合は、全ての分岐に係るデータセットを予測読み出しデータに設定するものとして説明したが、本発明の実施はこれに限られるものではない。例えば、予測部105は予測読み出しデータに設定したデータが実際に描画処理に使用されたか否かに基づき履歴情報の各分岐について統計をとり、該統計に基づいて予測読み出しデータに設定する分岐を取捨選択するようにしてもよい。この場合、統計はプレイヤごとにとられる構成であってもよいし、プレイヤの出身国やアクセス地域ごと等、所定の統計基準の対象についてとられる構成であってもよい。
 以上説明したように、本実施形態の展開予測装置は、描画処理に使用されるデータを予測し、効率的なメモリ展開を行うことができる。課題の解決に際し、展開予測装置は、コンテンツの実行における第1の時点の画面描画処理に係り展開要求されたデータを取得し、第1の時点よりも前の画面描画処理に係りメモリに展開されたデータを時系列順に示す履歴情報と展開要求されたデータとに基づいて、少なくとも第1の時点よりも後の第2の時点の画面描画処理に際しメモリに展開するデータを予測する。
 [実施形態2]
 上述した実施形態1では、1つのCPUサーバ200に接続された描画サーバ100が1つであり、ゲーム画面の描画に必要なデータが描画サーバ100の記憶媒体102に記憶されているものとして説明した。本実施形態のクラウドゲーミングシステムでは、図6に示されるように、1つのCPUサーバ200に対して複数の描画サーバ100が接続しており、各クライアント機器400についてCPUサーバ200により選択されたいずれか1つの描画サーバ100が該クライアント機器400に送信するゲーム画面の描画を行う。描画処理を行う描画サーバ100の選択は、例えばクライアント機器400に最も近い地域に設置されているサーバや、接続数の最も少ないサーバ等、所定の基準に基づいて行われてよい。このようなシステム構成の場合、全ての描画サーバ100の記憶媒体102に同一のデータを記憶させておくことは、例えば描画サーバ100が設置される地域において好まれるコンテンツの傾向や、データ更新時における作業容易性やメンテナンス性を考慮すると、一概に好ましいとは言えない可能性がある。従って、本実施形態のクラウドゲーミングシステムでは、図6に示されるように描画サーバ100の外部に設けられた記録装置600が描画オブジェクトに係る各種データを保持しているものとする。
 《描画サーバ100の構成》
 本実施形態の描画サーバ100は、記憶媒体102が描画オブジェクトに係る各種データを記憶しないことに加え、図7に示されるように監視部110を有する。
 監視部110は、通信部107を介してネットワーク上の通信状況を監視し、通信状況が予測に基づくデータ取得を行う所定の条件を満たした場合に制御部101にデータ取得が可能であることを通知する。ネットワーク上の通信状況は、例えば描画サーバ100やCPUサーバ200が接続されているネットワークにおけるトラヒック量であってよく、この場合、監視部110は該トラヒック量がデータ取得を行うものとして予め定められた値以下になった際に、制御部101に通知を行うものとする。また例えば、ネットワーク上の通信状況は記録装置600と外部の機器(例えば、描画サーバ100やメモリ103)との通信に係るトラヒック量であってもよく、この場合、監視部110は該トラヒック量がデータ取得を行うものとして予め定められた値以下になった際に、制御部101に通知を行うものとする。また例えば、ネットワーク上の通信状況は記録装置600と描画サーバ100との通信における伝送遅延量であってもよく、監視部110は該遅延量がデータ取得を行うものとして予め定められた値以下になった場合に制御部101に通信を行ってよい。また例えば、ネットワーク上の通信状況は描画サーバ100に接続しているクライアント機器400の数、あるいは接続しているクライアント機器400へのゲーム画面の送信に係るトラヒック量であってもよく、この場合、監視部110は接続数あるいは該トラヒック量がデータ取得を行うものとして予め定められた値以下になった際に、制御部101に通知を行うものとする。
 《展開処理》
 以下、本実施形態の描画サーバ100において実行される展開処理について、図8のフローチャートを用いて詳細を説明する。本実施形態の描画サーバ100では、メモリ103への描画オブジェクトに係る各種データの読み出しには記録装置600との通信を要するため、履歴情報を用いた予測及び読み出しに係る処理は監視部110により監視される通信状況に応じて実行が制御される。これは、データ取得に係る記録装置600との通信が通信遅延や処理遅延等を引き起こし、最終的にネットワーク全体あるいはゲームコンテンツの提供品質に影響を及ぼし得るためである。従って、本実施形態では描画サーバ100は、監視部110によりネットワーク上の通信状況が所定の条件を満たす場合にのみ、予測に基づくデータの事前取得を行うものとする。
 なお、本展開処理において実施形態1のデータの予測及び読み出しに係る処理と同様の処理を行うステップについては、図5に示したフローチャートと同一の参照番号を付して説明を省略するものとする。
 S801で、監視部110は、ネットワーク上の通信状況が予測に基づくデータ取得を行う所定の条件を満たしたか否かを判断する。監視部110は、通信状況が所定の条件を満たしたと判断した場合は処理をS802に移し、満たしていないと判断した場合は本ステップの処理を繰り返す。
 S802で、監視部110は、データ読み出しが可能であることを制御部101に通知する。
 S803で、制御部101は、現在受信している描画命令に基づくゲーム画面の描画にあたり、メモリ103への展開が必要となるデータセットを特定する。制御部101は、特定したデータセットの情報をメモリ103に格納し、処理をS501に移す。
 またS502において予測読み出しデータが設定された後、制御部101はS804で、通信部107を介して記録装置600に予測読み出しデータに設定されたデータを要求し、該データの受信を開始する。
 S805で、制御部101は、予測読み出しデータに設定されたデータが受信されたか否かを判断する。制御部101は、データが受信されたと判断した場合は処理をS806に移し、通信部107に該データをメモリ103に展開させる。また制御部101は、データが受信されていないと判断した場合は本ステップの処理を繰り返す。
 S807で、制御部101は、予測読み出しデータに設定された全てのデータが受信されたか否かを判断する。制御部101は、全てのデータが受信されたと判断した場合は処理をS504に移し、未受信のデータが存在すると判断した場合は処理をS805に戻す。
 このようにすることで、本実施形態の描画サーバ100は、予測に基づく記録装置600からのデータ取得を、通信状況を考慮して行うことができる。即ち、予測に基づく1つの描画命令に係り展開されるデータ量よりも大きなデータ量のデータ取得を行う予測読み出しを、例えばトラヒック量に余裕があり、通信遅延によるサービス品質が低下するような要因を回避可能なタイミングで行うことができる。つまり、本態様の描画サーバ100は、外部機器との通信状況等を把握し、データの受信が効率的に行えるタイミングで展開が予測されるデータを予め取得することができる。
 なお、本実施形態の展開処理では予測に基づいて取得したデータは、全てメモリ103に展開されるものとして説明したが、本発明の実施はこれに限られるものでなくてよい。取得したデータは、例えば記憶媒体102やメモリ103に未展開の状態で記憶しておき、対応する展開状況に推移しうると予測する場合に展開部106によりメモリ103に展開されるように構成してもよい。
 また、実施形態1及び2では、履歴情報はデータ読み出しの予測にのみ用いられるものとして説明したが、本発明の実施はこれに限られるものではない。例えば履歴情報は、メモリ103に展開されたデータのメモリ103からの好適な解放タイミングを予測するために用いられてもよい。上述したように、1つの描画命令に基づいてメモリ103に展開されたデータは、該描画命令よりも後に発行される描画命令に係る描画処理において使用される可能性がある。従って、予測部105は、現在のフレームの描画命令に基づき展開したデータが所定数のフレームが経過する前に再度展開される可能性があるかを履歴情報に基づき判断し、例えば展開部106が該判断に基づいてメモリ103からのデータ解放のタイミングを制御してもよい。またこのように各データの解放タイミングを履歴情報に基づいて都度判断するのではなく、例えば一度判断した解放タイミングの情報を履歴情報に含めておき、予測読み出しデータの設定の際に履歴情報に基づいて解放タイミングの情報も併せて予測する構成としてもよい。また、予測に基づいて展開された、履歴の分岐に係るデータのうち、実際に発行された描画命令に対応しなかった分岐に係るデータは、所定のタイミングで解放されてよい。
 また実施形態1及び2では、受信した描画命令や現在受信している描画命令に基づいて予測読み出しデータの設定が行われるものとして説明したが、本発明の実施はこれに限られるものではない。即ち、予測読み出しの基準となる描画命令は任意のタイミングでなされる描画命令であってよく、該命令により展開要求がなされるデータに基づいて、予測読み出しデータの設定が行われてよい。例えば、ゲーム開始時にはスタート地点に係る描画命令は予測可能であるため、ゲームコンテンツがプレイヤにより選択された時点で予測読み出しに係る処理は実行可能である。
 また実施形態1及び2では、履歴情報はメモリ103に展開されたデータセットを管理するものとして説明したが、本発明の実施はこれに限られるものではない。例えば描画命令とともにゲームコンテンツにおける所定のステータスを受信する場合、履歴情報は該ステータスと展開されたデータセットとを関連付けた情報を管理するものであってもよい。この場合、例えばゲームコンテンツに係る3Dシーンにおけるカメラ位置等のパラメータや使用キャラクタの各種パラメータ等に基づいた複合的なデータ読み出しの予測が可能であるため、履歴情報の蓄積により、プレイヤの行動により準じた効率的なデータ読み出しが可能となる。
 [変形例]
 上述した実施形態1及び2では、描画サーバ100それ自体が展開予測装置を兼ね備える態様について説明したが、本発明の実施はこれに限られるものではない。即ち、展開予測装置は、画面描画処理に係り展開要求されたデータを示す情報と、画面描画処理に係りメモリに展開されたデータを時系列順に示す履歴情報とに基づいて、メモリ展開すべきデータを予測するものであればよく、描画サーバ100内の別モジュールとして存在する、あるいは描画サーバ100が展開予測装置として機能する構成である必要はない。つまり、描画サーバ100に接続する装置であって、描画サーバ100のメモリ103に展開されたデータを示す情報及び展開要求されたデータを示す情報を取得し、履歴情報に基づく予測結果を描画サーバ100に伝送可能な装置であれば、本発明は実施可能である。描画サーバ100に接続する装置は、例えばCPUサーバ200であってもよい。また展開予測装置は、予測結果を伝送する際に予測したデータの展開命令を描画サーバ200に伝送してもよい。
 なお、このように展開予測装置が描画サーバ100の外部の装置として構成される場合、描画サーバ100と記録装置600との通信における伝送遅延量の情報は、例えば描画サーバ100から展開予測装置に所定の間隔で送出されればよい。そして展開予測装置は、予測結果であるメモリに展開すべきデータを示す情報だけでなく、描画サーバ100に記録装置600からメモリに展開すべきデータを取得させる命令を通信状況に基づいて判断して送信すればよい。
 [その他の実施形態]
 本発明は上記実施の形態に制限されるものではなく、本発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。また本発明に係る展開予測装置は、1以上のコンピュータを展開予測装置として機能させるプログラムによっても実現可能である。該プログラムは、コンピュータが読み取り可能な記録媒体に記録されることにより、あるいは電気通信回線を通じて、提供/配布することができる。

Claims (26)

  1.  コンテンツの実行における第1の時点の画面描画処理に係り展開要求されたデータを示す情報を取得する取得手段と、
     前記第1の時点よりも前の画面描画処理に係りメモリに展開されたデータを時系列順に示す履歴情報と前記展開要求されたデータを示す情報とに基づいて、少なくとも前記第1の時点よりも後の第2の時点の画面描画処理に際し前記メモリに展開するデータを予測する予測手段と、
    を有する展開予測装置。
  2.  前記予測手段は、前記展開要求されたデータと同一であるものと判断する第3の時点の画面描画処理に係り前記メモリに展開されたデータを示す情報が前記履歴情報に含まれる場合に、少なくとも該第3の時点よりも後の第4の時点の画面描画処理に係り前記メモリに展開されたデータを、前記メモリに展開するデータとして予測する請求項1に記載の展開予測装置。
  3.  前記予測手段により予測された前記メモリに展開するデータを記録装置から取得して前記メモリに展開させる展開手段をさらに有する請求項1または2に記載の展開予測装置。
  4.  前記メモリに展開するデータを前記記録装置に要求し、前記記録装置から該データを受信する通信手段と、
     ネットワーク上の通信状況を監視する監視手段と、をさらに有し、
     前記通信手段は、前記通信状況が所定の条件を満たす場合に、前記メモリに展開するデータを前記記録装置から受信する請求項3に記載の展開予測装置。
  5.  前記監視手段は、前記通信状況として前記ネットワークにおけるトラヒック量を監視し、
     前記通信手段は、前記ネットワークにおけるトラヒック量に応じて、前記メモリに展開するデータを前記記録装置から受信する請求項4に記載の展開予測装置。
  6.  前記監視手段は、前記通信状況として前記記録装置と外部機器との通信に係るトラヒック量を監視し、
     前記通信手段は、前記記録装置と前記外部機器との通信に係るトラヒック量に応じて、前記メモリに展開するデータを前記記録装置から受信する請求項4または5に記載の展開予測装置。
  7.  前記監視手段は、前記通信状況として前記記録装置との通信における伝送遅延量を監視し、
     前記通信手段は、前記記録装置との通信における伝送遅延量に応じて、前記メモリに展開するデータを前記記録装置から受信する請求項4乃至6のいずれか1項に記載の展開予測装置。
  8.  前記展開手段により展開されたデータを使用して、前記コンテンツに係る画面を描画する描画手段と、
     前記描画手段により描画された画面を、接続しているクライアント機器に送信する送信手段と、をさらに有し、
     前記監視手段は、前記通信状況として前記接続しているクライアント機器の数あるいは前記接続しているクライアント機器への画面送信に係るトラヒック量を監視し、
     前記通信手段は、前記接続しているクライアント機器の数あるいは前記接続しているクライアント機器への画面送信に係るトラヒック量に応じて、前記メモリに展開するデータを前記記録装置から受信する請求項4乃至7のいずれか1項に記載の展開予測装置。
  9.  前記メモリに展開されているデータを前記メモリから解放するか否かを制御する解放手段をさらに有し、
     前記履歴情報はさらに、前記第1の時点よりも前の画面描画処理に係り前記メモリに展開されたデータとともに前記メモリから解放されたデータを時系列順に示し、
     前記予測手段は、前記第2の時点の画面描画処理に際し前記メモリに展開するデータとともに前記メモリから解放するデータを予測し、
     前記解放手段は、前記予測手段による予測に基づいて、前記メモリに展開されているデータを前記メモリから解放するか否かを制御する請求項1乃至8のいずれか1項に記載の展開予測装置。
  10.  前記予測手段による予測に基づいて、前記メモリに展開されているデータを前記メモリから解放するか否かを制御する解放手段をさらに有する請求項1乃至8のいずれか1項に記載の展開予測装置。
  11.  前記第1の時点は、前記コンテンツの実行における現在のフレームを示し、
     前記解放手段は、前記メモリに展開されているデータが、現在のフレームから所定数のフレームの経過前に前記メモリに展開するものとして前記予測手段により予測される場合に、該データを解放しない請求項10に記載の展開予測装置。
  12.  前記予測手段により予測された前記メモリに展開するデータ示す情報と、該データを記録装置から取得して前記メモリに展開させる命令とを、前記メモリを有する展開装置に送信する送信手段をさらに有する請求項1または2に記載の展開予測装置。
  13.  前記記録装置は、前記展開装置と通信接続可能な装置であり、
     前記展開予測装置は、ネットワーク上の通信状況を監視する監視手段をさらに有し、
     前記送信手段は、前記通信状況が所定の条件を満たす場合に、前記展開装置に前記記録装置から前記メモリに展開するデータを受信させる請求項12に記載の展開予測装置。
  14.  前記監視手段は、前記通信状況として前記ネットワークにおけるトラヒック量を監視し、
     前記送信手段は、前記ネットワークにおけるトラヒック量に応じて、前記展開装置に前記記録装置から前記メモリに展開するデータを受信させる請求項13に記載の展開予測装置。
  15.  前記監視手段は、前記通信状況として前記記録装置と外部機器との通信に係るトラヒック量を監視し、
     前記送信手段は、前記記録装置と前記外部機器との通信に係るトラヒック量に応じて、前記展開装置に前記記録装置から前記メモリに展開するデータを受信させる請求項13または14に記載の展開予測装置。
  16.  前記監視手段は、前記通信状況として前記記録装置と前記展開装置との通信における伝送遅延量を監視し、
     前記送信手段は、前記記録装置と前記展開装置との通信における伝送遅延量に応じて、前記展開装置に前記記録装置から前記メモリに展開するデータを受信する請求項13乃至15のいずれか1項に記載の展開予測装置。
  17.  前記展開装置は、前記メモリに展開されたデータを使用して、前記コンテンツに係る画面を描画して、前記展開装置に接続しているクライアント機器に送信し、
     前記監視手段は、前記通信状況として前記接続しているクライアント機器の数、あるいは前記展開装置の前記接続しているクライアント機器への画面送信に係るトラヒック量を監視し、
     前記送信手段は、前記接続しているクライアント機器の数あるいは前記展開装置の前記接続しているクライアント機器への画面送信に係るトラヒック量に応じて、前記展開装置に前記記録装置から前記メモリに展開するデータを受信させる請求項13乃至16のいずれか1項に記載の展開予測装置。
  18.  前記履歴情報はさらに、前記第1の時点よりも前の画面描画処理に係り前記メモリに展開されたデータとともに前記メモリから解放されたデータを時系列順に示し、
     前記予測手段は、前記第2の時点の画面描画処理に際し前記メモリに展開するデータとともに前記メモリから解放するデータを予測し、
     前記送信手段は、前記予測手段による予測に基づいて、前記メモリに展開されているデータを前記メモリから解放するか否かを示す命令を前記展開装置に送信する請求項12乃至17のいずれか1項に記載の展開予測装置。
  19.  前記第1の時点は、前記コンテンツの実行における現在のフレームを示し、
     前記送信手段は、前記メモリに展開されているデータが、現在のフレームから所定数のフレームの経過前に前記メモリに展開するものとして前記予測手段により予測される場合に、該データを解放しないことを示す命令を前記展開装置に送信する請求項18に記載の展開予測装置。
  20.  前記履歴情報は、各階層が1つの時点の画面描画処理に係り前記メモリに展開されたデータを示し、時系列順に複数の階層が接続されたツリー形式で構成される情報であり、
     前記予測手段は、前記履歴情報において分岐が含まれる場合に、前記展開要求されたデータに対応するデータから派生した複数の分岐に係る階層で示されるデータを、前記メモリに展開するデータとして予測する請求項1乃至19のいずれか1項に記載の展開予測装置。
  21.  前記取得手段により前記展開要求されたデータを示す情報が取得された際に、前記履歴情報を更新する更新手段をさらに有する請求項1乃至20のいずれか1項に記載の展開予測装置。
  22.  前記更新手段は、前記履歴情報のうちの前記第1の時点の直前の第5の時点の画面描画処理に係り展開要求されたデータを示す情報に、前記第1の時点の画面描画処理に係り前記展開要求されたデータを示す情報を関連付けて前記履歴情報を更新する請求項21に記載の展開予測装置。
  23.  前記予測手段により予測された前記メモリに展開するデータが、前記第2の時点の画面描画処理に使用されたか否かの統計を取る統計手段をさらに有する請求項1乃至22のいずれか1項に記載の展開予測装置。
  24.  コンテンツの実行における第1の時点の画面描画処理に係り展開要求されたデータを取得する取得工程と、
     前記第1の時点よりも前の画面描画処理に係りメモリに展開されたデータを時系列順に示す履歴情報と前記展開要求されたデータとに基づいて、少なくとも前記第1の時点よりも後の第2の時点の画面描画処理に際し前記メモリに展開するデータを予測する予測工程と、
    を有する展開予測方法。
  25.  1以上のコンピュータを、請求項1乃至23のいずれか1項に記載の各手段として機能させるプログラム。
  26.  請求項25に記載のプログラムを記録したコンピュータが読み取り可能な記録媒体。
PCT/JP2014/002821 2014-05-28 2014-05-28 展開予測装置、展開予測方法、プログラム及び記録媒体 WO2015181851A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016522978A JP6333369B2 (ja) 2014-05-28 2014-05-28 展開予測装置、展開予測方法、プログラム及び記録媒体
PCT/JP2014/002821 WO2015181851A1 (ja) 2014-05-28 2014-05-28 展開予測装置、展開予測方法、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/002821 WO2015181851A1 (ja) 2014-05-28 2014-05-28 展開予測装置、展開予測方法、プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
WO2015181851A1 true WO2015181851A1 (ja) 2015-12-03

Family

ID=54698242

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/002821 WO2015181851A1 (ja) 2014-05-28 2014-05-28 展開予測装置、展開予測方法、プログラム及び記録媒体

Country Status (2)

Country Link
JP (1) JP6333369B2 (ja)
WO (1) WO2015181851A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6388993B1 (ja) * 2017-11-30 2018-09-12 グリー株式会社 制御プログラム、制御方法及びコンピュータ
JP6714052B2 (ja) * 2018-08-15 2020-06-24 グリー株式会社 制御プログラム、制御方法及びコンピュータ

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009295162A (ja) * 2008-06-04 2009-12-17 Arm Ltd グラフィックス処理システム
JP2013513858A (ja) * 2009-12-09 2013-04-22 株式会社ソニー・コンピュータエンタテインメント サーバサイドレンダリング
JP5544632B1 (ja) * 2013-11-01 2014-07-09 俊介 山内 先行画像生成プログラムおよびコンピュータ可読記憶媒体

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3629453B2 (ja) * 2001-08-31 2005-03-16 コナミ株式会社 ゲーム進行制御プログラム、ゲーム進行制御方法及びビデオゲーム装置
JP2015042220A (ja) * 2013-08-26 2015-03-05 株式会社バンダイナムコゲームス ゲームコンテンツおよびサーバシステム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009295162A (ja) * 2008-06-04 2009-12-17 Arm Ltd グラフィックス処理システム
JP2013513858A (ja) * 2009-12-09 2013-04-22 株式会社ソニー・コンピュータエンタテインメント サーバサイドレンダリング
JP5544632B1 (ja) * 2013-11-01 2014-07-09 俊介 山内 先行画像生成プログラムおよびコンピュータ可読記憶媒体

Also Published As

Publication number Publication date
JP6333369B2 (ja) 2018-05-30
JPWO2015181851A1 (ja) 2017-04-20

Similar Documents

Publication Publication Date Title
US20210126838A1 (en) System and method for cloud-based user interface application deployment
JP2022122875A (ja) ゲームレンダリングにおけるメモリ管理
JP6310073B2 (ja) 描画システム、制御方法、及び記憶媒体
US10545749B2 (en) System for cloud computing using web components
JP5559445B1 (ja) 描画システム、制御方法、プログラム、及び記録媒体
CN107544298B (zh) 一种摄像头调用方法和装置
CN112148202B (zh) 训练样本读取方法及装置
CN111045715A (zh) 一种云游戏的热更新方法、系统和可读存储介质
JP5680188B2 (ja) キャッシュメモリ管理を最適化する方法、およびそれに対応する装置
KR20140106838A (ko) 스트리밍 기반의 게임 플랫폼을 이용한 클라우드 서비스 제공 장치 및 방법
CN114972594B (zh) 一种用于元宇宙的数据处理方法、装置、设备及介质
EP4120595B1 (en) Data processing method and apparatus for virtual scene, and electronic device and storage medium
WO2017103571A1 (en) Pipelining pre-composition data
EP3886451A1 (en) Method for playing on a player of a client device a content streamed in a network
WO2015181851A1 (ja) 展開予測装置、展開予測方法、プログラム及び記録媒体
CN113082705B (zh) 游戏场景切换方法、装置、计算机设备及存储介质
CN114143562A (zh) 延迟最小化方法、服务器及计算机可读记录介质
CA3200330A1 (en) Systems and methods for virtual gpu-cpu memory orchestration
US10469794B2 (en) Information processing apparatus, information processing method, and information processing system for content management using play lists
JP2009157437A (ja) 分散記憶システム
JP5817052B2 (ja) 情報処理装置、制御方法、プログラム、及び記録媒体
JP2008270908A (ja) 情報処理装置、その制御方法、プログラム、記憶媒体
JP5130891B2 (ja) データ送信装置及びデータ送信方法
JP6265337B2 (ja) プログラム、記録媒体及び描画装置決定方法
JP2019531019A (ja) コンテンツ提供方法およびシステム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 14892900

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016522978

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14892900

Country of ref document: EP

Kind code of ref document: A1