WO2014199412A1 - 出力データ提供サーバおよび出力データ提供方法 - Google Patents

出力データ提供サーバおよび出力データ提供方法 Download PDF

Info

Publication number
WO2014199412A1
WO2014199412A1 PCT/JP2013/003699 JP2013003699W WO2014199412A1 WO 2014199412 A1 WO2014199412 A1 WO 2014199412A1 JP 2013003699 W JP2013003699 W JP 2013003699W WO 2014199412 A1 WO2014199412 A1 WO 2014199412A1
Authority
WO
WIPO (PCT)
Prior art keywords
output data
client terminal
information processing
input information
unit
Prior art date
Application number
PCT/JP2013/003699
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 CN201380077217.6A priority Critical patent/CN105264502B/zh
Priority to US14/890,154 priority patent/US10075525B2/en
Priority to KR1020157034662A priority patent/KR102096300B1/ko
Priority to PCT/JP2013/003699 priority patent/WO2014199412A1/ja
Priority to JP2015522256A priority patent/JP6268174B2/ja
Priority to KR1020207006360A priority patent/KR102112998B1/ko
Priority to EP19150241.8A priority patent/EP3498350B1/en
Priority to EP13886662.9A priority patent/EP3009938B1/en
Publication of WO2014199412A1 publication Critical patent/WO2014199412A1/ja
Priority to US16/100,756 priority patent/US10511666B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/33Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections
    • A63F13/335Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers using wide area network [WAN] connections using Internet
    • 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 MPEG-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/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • A63F13/358Adapting the game course according to the network or server load, e.g. for reducing latency due to different connection speeds between clients
    • 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/46Computing the game score
    • 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
    • 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/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/67Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor adaptively or by learning from player actions, e.g. skill level adjustment or by storing successful combat sequences for re-use
    • 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/85Providing additional services to players
    • A63F13/86Watching games played by other players
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols

Definitions

  • the present invention relates to a technology for providing an information processing service using a network.
  • Patent Document 1 Technology that enables high-level information processing and enormous data management to be realized regardless of the environment where the user is located by using various services provided by the server via the network, such as cloud computing The trend is getting stronger.
  • the present invention has been made in view of such problems, and its purpose is to provide a technology capable of achieving both responsiveness and quality of output data in an environment in which a server provides an information processing service via a network. There is to do.
  • An aspect of the present invention relates to an output data providing server.
  • the output data providing server is connected to a client terminal via a network, receives information related to a user operation at the client terminal, performs information processing, and outputs the resulting output data to a client terminal that requests it
  • An output data providing server to transmit, an input information receiving unit that acquires information related to user operations as input information, an input information storage unit that stores a history of input information, and input information acquired by the input information receiving unit
  • the primary output data to be transmitted according to the user operation is generated by performing the information processing immediately based on the information, and the second output information processing is performed based on the history of the input information read from the input information storage unit.
  • the primary output data processing unit has generated, or the output secondary output data read out from the data storage unit, characterized in that it comprises a data transmission unit that transmits to the client terminal, the on demand.
  • the output data providing server is connected to a client terminal via a network, receives information related to a user operation at the client terminal, performs information processing, and outputs the resulting output data to a client terminal that requests it
  • An output data providing server to transmit, an input information receiving unit that acquires information related to a user operation as input information, an information processing unit that generates output data by performing information processing based on the input information, and output data
  • a data transmission unit that transmits to the client terminal, and the information processing unit adaptively adjusts at least one of the content of the information processing and the quality of the output data in accordance with the communication status with the client terminal.
  • Still another aspect of the present invention relates to an output data providing method.
  • a server connects to a client terminal via a network, receives information related to a user operation at the client terminal, performs information processing, and requests output data obtained as a result thereof.
  • a method for providing output data to be transmitted to a client terminal wherein a step of acquiring information related to a user operation as input information, a step of storing a history of input information in a memory, and immediate information processing based on the input information
  • Still another aspect of the present invention also relates to an output data providing method.
  • a server connects to a client terminal via a network, receives information related to a user operation at the client terminal, performs information processing, and requests output data obtained as a result thereof.
  • a method for providing output data to be transmitted to a client terminal comprising: obtaining information related to a user operation as input information; generating output data by performing information processing based on the input information; and outputting the output data to the client terminal
  • the step of generating output data adaptively adjusts at least one of the contents of information processing and the quality of the output data in accordance with the communication status with the client terminal.
  • FIG. 1 shows the configuration of the information processing system in the present embodiment.
  • the client terminals 10 a, 10 b, and 10 c are each configured to be connectable to the server 30 via the network 3, and exchange data with the server 30.
  • the server 30 performs information processing in response to requests from the client terminals 10a, 10b, and 10c, and transmits output data generated as a result to the client terminals 10a, 10b, and 10c.
  • the client terminals 10a, 10b, 10c and the server 30 are connected to the network 3 by wire or wireless.
  • a general technique can be applied to a method for connecting the client terminals 10a, 10b, and 10c to the server 30, a request for information processing, and a procedure related to transmission / reception of output data.
  • Each of the client terminals 10a, 10b, and 10c is a device operated by each user.
  • the operation performed by the user is transmitted as input information to the server 30 to request information processing according to the information, and the server 30 performs information processing.
  • the generated output data is output as an image or sound.
  • the client terminals 10a, 10b, and 10c may be any of general devices and terminals such as a tablet, a mobile phone, a mobile terminal, and a personal computer.
  • the number of client terminals 10a, 10b, 10c and servers 30 connected to the network 3 is not particularly limited.
  • the client terminals 10a, 10b, and 10c are collectively referred to as the client terminal 10.
  • Information processing that the client terminal 10 requests from the server 30 is not particularly limited, but in the following description, a mode for realizing a game will be mainly described. That is, the server 30 starts a game designated by the user on the client terminal 10 and progresses the game according to the user's operation on the client terminal 10. Then, output data such as game images and sounds generated in response thereto is sequentially transmitted to the client terminal 10. The client terminal 10 sequentially converts the output data transmitted from the server 30 into a form that can be output by decoding or the like, and outputs it as an image or sound.
  • this configuration provides a service in which the server 30 transmits moving image data whose contents change according to a user operation as content data.
  • the information processing executed by the server 30 may be any general information processing such as document creation, image drawing, and communication tools such as an electronic bulletin board, in addition to the game.
  • the output data is moving image data composed of image frame sequences sequentially generated with respect to the time axis, but may further include audio data.
  • the server 30 further transmits the same image data to a plurality of client terminals 10 so that a plurality of users can share the image data.
  • the server 30 sequentially receives information related to each user's operation from the plurality of client terminals 10 and reflects it in the progress of the game. Then, by transmitting the generated image data of the game to all the client terminals 10, a battle game can be realized.
  • the server 30 sequentially receives input information representing the operation contents of the user in the client terminal 10 regardless of the number, generates image data in real time, and transmits it to the client terminal 10. Basically, an image corresponding to the operation is displayed on the client terminal 10. Furthermore, the server 30 transmits the generated image data not only to users participating in the game but also to the client terminal 10 of a user who simply wants to watch the game or a user who wants to watch the game later. By doing in this way, a game play of myself or others can be shared by a plurality of users regardless of time or place.
  • the stress associated with the operation of the user who is the player is reduced by giving the highest priority to the responsiveness of the image display during the execution of the game.
  • the image quality is suppressed to some extent, and robustness is given to fluctuations in communication conditions.
  • priority is given to image quality by utilizing the fact that there is no operation and no responsiveness is required at the stage of releasing the video after the game ends.
  • the server 30 executes the game again in the same manner as the actual game play to generate image data again. This ensures high quality for the image data at the time of publication.
  • the image data generated in real time according to the user's operation is referred to as “primary data”
  • the image data regenerated after the game ends is referred to as “secondary data”.
  • FIG. 2 shows the configuration of the client terminal 10 and the server 30 in more detail.
  • the client terminal 10 includes an input unit 12 that receives a user operation, an input information transmission unit 14 that transmits the received operation content to the server 30 as input information, a data reception unit 16 that receives image data transmitted from the server 30, and image data
  • the decoding part 18 which decodes and the display part 20 which displays an image are included.
  • the server 30a includes an input information receiving unit 32 that receives user input information from the client terminal 10, an information processing unit 36 that performs information processing such as a game requested by the client terminal 10, and an image generated as a result of the information processing.
  • An encoding unit 38 that encodes the image data
  • a data transmission unit 40 that transmits the encoded image data to the client terminal 10.
  • the server 30a further stores an input information storage unit 42 that stores input information from the client terminal 10 in association with an input time, and a save data storage unit that stores information related to the save when the user saves and interrupts the game 44, a secondary data creation instruction unit 34 that instructs the information processing unit 36 and the encoding unit 38 to create secondary data, and an output data storage unit 46 that stores primary data and secondary data image data.
  • each element described as a functional block for performing various processes can be constituted by a CPU (Central Processing Unit), a memory, and other LSIs in terms of hardware. Specifically, it is realized by a program stored in a recording medium or a storage device and loaded into a memory. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.
  • CPU Central Processing Unit
  • memory main memory
  • other LSIs in terms of hardware. Specifically, it is realized by a program stored in a recording medium or a storage device and loaded into a memory. Therefore, it is understood by those skilled in the art that these functional blocks can be realized in various forms by hardware only, software only, or a combination thereof, and is not limited to any one.
  • the input unit 12 of the client terminal 10 is an input unit for a user to specify a game requested from the server 30, to perform an operation on the game, or to input a command.
  • the game pad, buttons, touch panel, This is realized by at least one of general input devices such as a keyboard, a mouse, and a joystick.
  • the input information transmission unit 14 establishes communication with the server 30 by a general method, generates an input information signal representing the user's operation content on the input unit 12, and transmits the signal to the server 30.
  • the input information receiving unit 32 of the server 30 receives the input information transmitted from the client terminal 10.
  • the information processing unit 36 performs information processing such as a game in accordance with the input information received by the input information receiving unit 32. As described above, the input information is sequentially transmitted from one or a plurality of client terminals 10, and the information processing unit 36 advances information processing in real time accordingly. By immediately transmitting input information from the input information transmitting unit 14 of the client terminal 10 to the input information receiving unit 32 and the information processing unit 36 of the server 30, information processing is performed as if the information is being processed inside the client terminal 10. To implement.
  • the input information receiving unit 32 stores the same information as the input information supplied to the information processing unit 36 in the input information storage unit 42 as an input information file associated with each input time.
  • An input information file is created for each game play, and is associated with identification information for each game play.
  • the game play identification information is information that is uniquely given for each game play in order to create secondary data or specify a transmission target to the client terminal 10, and is shared in the server 30a.
  • the input time is for tracing the timing of each operation from the start of the game when creating secondary data, so the elapsed time from the start of the game, the time representing the standard time, the time interval from the previous operation Any of these may be used.
  • the information processing unit 36 sequentially creates image data of the game as primary data and supplies it to the encoding unit 38 during the game execution period from the start to the end of the game.
  • This image data may be general moving image data having a predetermined frame rate, or may be data at irregular time intervals such that still images and moving images are mixed.
  • the end of the game may be at the time of so-called game over, which is ended by setting the game, or may be the time when the user performs an operation of saving and interrupting data so far during the game.
  • the information processing unit 36 stores the save data, specifically the game arrival point (save point), the score at that time, and the like in the save data storage unit 44 in association with the game play identification information. To do.
  • the information processing unit 36 reads the save data associated with the identification information of the corresponding game play from the save data storage unit 44, and from there, Start processing. For this reason, based on the designation information of the game to be resumed in the client terminal 10, a mechanism for specifying the game play identification information in the server 30 is provided.
  • the game play identification information itself is made up of information unique to the game play and understandable by humans, such as the identification information of the player and client terminal, the name of the game, and the last save time. It is conceivable to be able to select. However, it will be understood by those skilled in the art that other various forms are possible. Since the save point is the end point of the previous game play and the start point of the game play resumed from that point, it is associated with the latter game play identification information in preparation for secondary data creation.
  • the information processing unit 36 further reproduces the previously played game play, re-creates game image data as secondary data, and supplies the image data to the encoding unit 38.
  • the secondary data creation instructing unit 34 determines, based on a predetermined criterion, whether or not the processing capability in the information processing unit 36 and the encoding unit 38, that is, whether there are sufficient margins for resources such as CPU time and memory capacity, etc. If it is determined, the information processing unit 36 and the encoding unit 38 are instructed to start creating secondary data.
  • the secondary data creation process is basically executed after the game play of the secondary data creation target is completed. However, if there is room for resources, the secondary data may be generated in parallel for the game play being executed in some cases. May be created. Depending on the processing capabilities of the information processing unit 36 and the encoding unit 38, other games may be played in parallel.
  • the secondary data creation instructing unit 34 retains the identification information of the game play in which the secondary data has not been created in the internal memory.
  • the game play of the secondary data creation target is selected according to a predetermined rule such as FIFO (First In First Out), and the identification information is notified to the information processing unit 36.
  • the information processing unit 36 reads the corresponding input information file from the input information storage unit 42 based on the notified game play identification information.
  • the corresponding save data is read from the save data storage unit 44.
  • the game process starts from the save point when the save data is read, and from the beginning otherwise. After the start, the game is reproduced by performing processing according to the input information at a timing corresponding to the time when the input information is recorded.
  • processing may be performed over time by extending the time axis to a predetermined magnification.
  • secondary data may be created with higher image quality than the primary data. For example, at least one of the spatial resolution and temporal resolution of the image may be higher than the primary data.
  • the quality of the secondary data does not necessarily have to be higher than that of the primary data.
  • the quality is adjusted according to the communication status. By not performing such adjustment, the stability and reliability of quality can be substantially improved.
  • the secondary data may be generated at a plurality of resolutions according to the assumed display size of the client terminal 10.
  • the encoding unit 38 encodes primary data or secondary data supplied from the information processing unit 36.
  • the encoding unit 38 also prioritizes responsiveness for primary data and prioritizes data quality for secondary data. For example, when creating secondary data, the bit rate is made larger than when creating primary data. Furthermore, the compression rate can be increased together with the quality by taking a long processing time.
  • the supply timing of the output data may be adjusted by extending the time axis of the information processing in accordance with the time required for encoding.
  • the encoding unit 38 sequentially supplies the encoded primary data to the data transmission unit 40 and stores it in the output data storage unit 46 in association with the identification information of the game play. Further, when the secondary data is encoded, it is stored in the output data storage unit 46 in association with the game play identification information. If the primary data is no longer necessary due to the creation of secondary data for the same game play, the primary data may be deleted from the output data storage unit 46.
  • the primary data generated by the information processing unit 36 may be directly stored in the output data storage unit 46.
  • the primary data before the encoding may be encoded again by the encoding unit 38 by increasing the bit rate or taking a processing time, and stored as secondary data in the output data storage unit 46. This processing may also be performed during a period when the resources of the encoding unit 38 are sufficient. Even in this case, data with higher quality and higher compression rate than the primary data transmitted with priority on responsiveness during the game execution period can be created. Further, as described above, the information processing unit 36 may reproduce the game and regenerate the image data, so that the data with improved quality may be stored as the tertiary data.
  • the data transmission unit 40 sequentially transfers the primary data supplied from the encoding unit 38 to the client terminal 10 during the game execution period. A general technique can be applied to specific transfer processing.
  • the data transmission unit 40 further transmits image data of the requested game play read from the output data storage unit 46 in response to a request from the client terminal 10 after the game is over. At this time, if the secondary data of the game play is already stored in the output data storage unit 46, it is transmitted, and if not stored, the primary data is transmitted.
  • the data receiving unit 16 of the client terminal 10 receives the image data transmitted from the server 30a.
  • the decoding unit 18 decodes and decompresses the received image data, and develops the image data in a frame memory (not shown) as an image. Since it is considered that the decoding parameters such as the bit rate differ depending on whether the transmitted image data is primary data or secondary data, the decoding conditions are appropriately switched according to the decoding parameter setting information included in the data.
  • the display unit 20 displays the image developed in the frame memory. Therefore, the output unit 26 includes a general display such as a liquid crystal display, an organic EL display, or a plasma display that displays an image, and a controller that controls these devices. Furthermore, you may include audio
  • FIG. 3 is a flowchart showing a processing procedure in which the client terminal 10 and the server 30a progress the game during the game execution period.
  • the procedure of processing by one client terminal 10 and the server 30a is shown.
  • a plurality of client terminals 10 may be connected to the server 30a at the same time. Proceed with the process.
  • each process such as data generation, transmission, and output is shown as one step.
  • there may be a time width, and in this case, the process proceeds appropriately in parallel. The same applies to the flowcharts of FIGS.
  • the input information transmitting unit 14 creates a signal for the processing start request.
  • This signal includes necessary information such as identification information of the client terminal 10 and the user and a game name.
  • information for identifying a game play to be resumed such as a save time, is included.
  • the input information receiving unit 32 of the server 30a When the input information receiving unit 32 of the server 30a receives the processing start request signal, the input information receiving unit 32 instructs the information processing unit 36 to start the processing of the corresponding game, and initializes the input information file stored in the input information storage unit 42. (S31). Specifically, a new file for recording input information is prepared in association with the game play identification information. When recording the input information in association with the elapsed time from the start of the game, the input information receiving unit 32 starts a timer (not shown).
  • the information processing unit 36 starts processing by, for example, starting a designated game program. Then, the encoding unit 38 encodes the generated initial image data, and the data transmission unit 40 transmits the data to the client terminal 10 (S32).
  • the decoding unit 18 decodes the data and the display unit 20 outputs the initial image, thereby displaying the initial image on the client terminal 10 (S34).
  • the transmission processing in S32 may be stream transfer, and the client terminal 10 sequentially decodes and displays the received data.
  • the input information transmission unit 14 transmits the input information to the server 30a each time (S36). ).
  • the input information receiving unit 32 notifies the information processing unit 36 of the information, whereby the information processing unit 36 performs a game process corresponding to the notified input information (S38). .
  • the input information receiving unit 32 further records the input information together with the time in the input information file prepared in the input information storage unit 42 (S40). For example, the elapsed time from the start of the game measured by its own timer and the input information are recorded in association with each other.
  • the encoding unit 38 of the server 30a encodes image data generated as a result of the game processing in the information processing unit 36 (S42).
  • the data transmission unit 40 transmits the encoded image data generated in this way to the client terminal 10 as primary data (S44).
  • the decoding unit 18 decodes the image data (S48), and the display unit 20 displays the game screen corresponding to the user operation on the client terminal 10. (S50).
  • FIG. 4 shows an example of the data structure of the input information file stored in the input information storage unit 42.
  • the input information file 70 includes a time field 72 and an input value field 74, and records input information representing the contents of operations performed at the client terminal 10 after the game is started in association with the time.
  • the input time recorded in the time field 72 is the elapsed time from the start of the game, but the format is not limited as long as the time series of operations is clear.
  • the input value field 74 records the user's operation contents with an identification number.
  • an identification number is assigned to each operation means such as a button or GUI in the input unit 12 of the client terminal 10, and the pressed operation means is recorded in the input value field 74.
  • the recording format of the input information in the input value field 74 is not limited to that shown in the figure.
  • the input information receiving unit 32 records the input information by adding a line of the input information file 70 every time the input information is transmitted from the client terminal 10 during the game execution period.
  • FIG. 5 is a flowchart showing a processing procedure in which the server 30a generates secondary data.
  • the secondary data creation instructing unit 34 of the server 30a monitors resources in the information processing unit 36 and the encoding unit 38, and determines whether there is sufficient space for creating secondary data (S52). In practice, this processing may be confirmed periodically by the secondary data creation instructing unit 34, or a notification may be received from the information processing unit 36 or the encoding unit 38 when a vacancy occurs above the reference value. Good.
  • the secondary data creation instructing unit 34 selects game play identification information for which secondary data has not been created from the internal memory or the like, and notifies the information processing unit 36 and the encoding unit 38. To instruct the creation of secondary data. If the save data representing the start point of the game play is stored in the save data storage unit 44, the information processing unit 36 reads it (Y in S54, S56). Further, the input information file associated with the identification information of the game play is read from the input information storage unit 42 regardless of the presence or absence of save data (S58).
  • the game process When the save data is read (Y in S54), the game process is reproduced from the save point, and when there is no save data (N in S54), the game process is reproduced from the beginning (S60). At this time, according to the input information recorded in the input information file, the game is advanced as if the same operation was performed at the same timing. As a result, each time image data is created, the encoding unit 38 encodes the data (S62).
  • the secondary data created and encoded in S60 and S62 may have a resolution and bit rate different from the primary data created during the game execution period.
  • an image may be generated in a plurality of sizes according to the display resolution assumed in the client terminal of the data transmission destination, such as SD (Stanndard Definition), HD (High Definition), and Full HD.
  • encoding may be performed by a plurality of methods.
  • the encoding unit 38 stores the encoded secondary data 46 in the output data storage unit 46 (S64). At this time, primary data representing the same game play is deleted from the output data storage unit 46 as necessary.
  • FIG. 6 is a flowchart showing a processing procedure of the client terminal 10 and the server 30a when playing the game play.
  • a user such as a viewer performs an operation for requesting reproduction, for example, by designating a game play to be reproduced on the input unit 12 of the client terminal 10 (S70)
  • the input information transmitting unit 14 receives the reproduction request.
  • the signal for this is created and transmitted to the server 30a.
  • data of a web page representing a selection screen for a game play being released may be transmitted from the server 30a.
  • the selection screen displays a game name, a player name, a play date, and the like together with thumbnails of the game screens, so that the user can easily select.
  • the playback request signal may further include the display resolution of the device itself and the required encoding method.
  • the input information receiving unit 32 of the server 30a that has received the reproduction request specifies identification information of the selected game play and notifies the data transmitting unit 40 of the identification information.
  • the data transmission unit 40 confirms whether the secondary data of the game play is stored in the output data storage unit 46 (S72). If secondary data is stored (Y in S72), the secondary data is read and transmitted to the requesting client terminal 10 (S74). At this time, if data is stored with a plurality of resolutions and encoding methods, data corresponding to the request from the client terminal 10 is selected and transmitted.
  • the primary data is read and transmitted to the client terminal 10 that is the request source (S76).
  • the decoding unit 18 decodes the data (S78), and the display unit 20 displays the selected game play on the client terminal 10 in the form of a video or the like. (S80). 3, 5 and 6, priority can be given to responsiveness during the game execution period, and priority can be given to image quality during game play playback.
  • the quality can be set independently according to the situation while the images are the same game play. This advantage may be utilized more actively, and the quality of the image data may be adaptively adjusted according to the communication status when the game is executed. As a result, an image can be displayed with high quality if the communication status is good while ensuring responsiveness. Even in this case, if the secondary data is created as described above, the communication status in the execution period is not affected in subsequent playback.
  • FIG. 7 shows in detail the configuration of the server 30 further provided with a function of adjusting information processing and encoding processing according to the communication status during the game execution period.
  • the server 30b shown in the figure not only adjusts the quality of the image data according to the communication status, but also adjusts the content of the game itself. By doing in this way, generation
  • the server 30b includes an input information reception unit 32, a secondary data creation instruction unit 34, an information processing unit 36, an encoding unit 38, a data transmission unit 40, an input information storage unit 42, a save data storage unit 44, and an output data storage unit 46. Including. These functional blocks basically function in the same manner as the functional blocks included in the server 30a in FIG. However, the information processing unit 36 includes an adjustment unit 52 that adjusts processing in the information processing unit 36 and the encoding unit 38 according to the communication status. The server 30b further includes a communication status monitoring unit 50 that monitors the communication status with the client terminal 10, and an adjustment history storage unit 54 that records the details of adjustments made in association with time.
  • the communication status monitoring unit 50 monitors the communication status with the client terminal 10 during the game execution period.
  • There are various parameters indicating the communication status For example, at least one of parameters such as a communication bandwidth availability status, a packet loss rate, a delay time, and a delay time variation is monitored.
  • the packet loss rate represents the proportion of packets that have not arrived at the server 30b among packets sent from the client terminal 10 for input information transmission or the like. For example, packets are numbered in the order of transmission in the client terminal 10, and the packet loss rate is calculated by counting the number of lost packets by detecting the missing number in the server 30b.
  • the delay time is a difference between an input time of a user operation at the client terminal 10 or a transmission time of a packet for transmitting the input information and a time at which the server 30b receives the input information.
  • the delay time can be obtained by transmitting the time stamp of the input time of the user operation or the time of sending the packet to the server 30 together with the input information, and comparing the input information with the time at which the server 30 received each input information.
  • the variation in the delay time is obtained by holding the history of the delay time in the server 30 and calculating the standard deviation of the change at a predetermined time interval.
  • the communication status monitoring unit 50 obtains the value of the parameter set as the monitoring target among the above parameters at a predetermined time interval, and notifies the adjustment unit 52 of the information processing unit 36 of the result.
  • the adjustment unit 52 determines the necessity of adjustment based on the notified value, and adjusts the content of processing in the information processing unit 36 according to a predetermined rule. Alternatively, an adjusted value of the encoding parameter used for processing in the encoding unit 38 is determined and notified to the encoding unit 38.
  • the information processing unit 36 advances the game process under the adjustment by the adjustment unit 52.
  • the encoding unit 38 performs encoding by changing the encoding parameter in accordance with the notification from the adjustment unit 52.
  • the adjustment of the processing content means adjusting the content of the game itself, for example, relaxing the game rules. For example, in a game in which a score is given when the game pad is pressed at an appropriate timing, the time for the determination reference to be an appropriate timing is extended. Thereby, it is determined that the server 30 has missed the timing due to a communication delay from the client terminal 10 to the server 30b even though the button is pressed at the proper proper timing, and the user is prevented from suffering a disadvantage.
  • this embodiment has a configuration in which the input in the client terminal 10 is received and interpreted by the server 30b via the network, the game situation depends on the communication situation, particularly in a game in which the timing of the user operation affects the result. It can change.
  • the detection of the user operation timing delayed by the server 30b as described above it may take time until the image is displayed, and as a result, the next operation may be delayed. Therefore, as described above, it is particularly effective to adjust the reference time for determining appropriate timing according to the communication status.
  • the adjustment of the processing content performed by the adjustment unit 52 is not limited to this. For example, it may be an adjustment that simply reduces the difficulty level, such as reducing the number of enemies in a battle game or making it easier to reach the destination when the character moves. Good. Further specific examples will be described later.
  • the encoding parameter is typically a bit rate or an encoding method, but is an adjustable parameter in the encoding process and may be any parameter that is effective in reducing the processing time.
  • the specific adjustment target may differ depending on the contents of the processing executed by the information processing unit 36, that is, the contents and situations of the game, such as the creator of the game. May be determined in advance.
  • the degree of adjustment, and the like may be adaptively changed according to the communication status.
  • the adjustment unit 52 stores the determined adjustment content in the adjustment history storage unit 54 in association with the adjustment time for each game play identification information.
  • the adjustment time recorded here may be an elapsed time from the start of the game, or a time such as standard time, like the input information file stored in the input information storage unit 42.
  • the adjustment unit 52 reads the corresponding adjustment history from the adjustment history storage unit 54 based on the identification information of the game play, and the same adjustment as the game execution period I do. As a result, the state of the game is reproduced, including adjustments, and secondary data is created.
  • Adjustments that do not need to be reproduced are excluded from adjustments when creating secondary data. For example, when the transmission speed is prioritized at the expense of image quality by lowering the encoding bit rate, it is not necessary to lower the bit rate for secondary data based on high image quality. Adjustments that do not need to be reproduced at the time of creating secondary data as described above need not be recorded in the adjustment history storage unit 54.
  • FIG. 8 is a flowchart showing a processing procedure in which the server 30b performs information processing while adjusting according to the communication status.
  • the game can be advanced while realizing the adjustment function.
  • the adjustment unit 52 compares it with a preset reference and determines whether adjustment is necessary (S82). A reference may be set for each adjustment content, and the adjustment content to be made may be selected accordingly.
  • the communication status monitoring unit 50 may determine whether adjustment is necessary. Further, even if the communication situation deteriorates, the packet loss and the variation in communication time caused by it can be concealed by the existing technology, and adjustment is not necessary if it is determined that the influence on the game is small. For example, for packet loss, lost packets can be restored by making streaming redundant. Also, with respect to variations in communication time, the variation time can be absorbed by providing a buffer in the client terminal 10. These mechanisms may be provided separately and used as a pre-adjustment stage.
  • the game is continued without adjustment (S90). If adjustment is necessary (Y in S82) and the adjustment content to be performed is related to the encoding process such as bit rate reduction (Y in S84), the encoding unit 38 together with specific adjustment content such as the value after adjustment of the encoding parameter. An adjustment request is made (S86). If the adjustment target is not related to the encoding process (N in S84), the content of the process in the information processing unit 36 is adjusted (S88). This process may actually be a process of switching the set value for the rule to be relaxed or branching the process to another program prepared for adjustment.
  • the information processing part 36 continues a game in the state adjusted in that way (S90).
  • the flowchart of FIG. 8 is an example in which either the adjustment of the encoding parameter or the adjustment of the processing content is performed, but both may be performed depending on the setting.
  • a plurality of criteria may be provided for the parameter indicating the communication status, and the adjustment target may be increased as the deterioration progresses.
  • the resolution of the game image generated by the information processing unit 36 may be reduced.
  • FIG. 9 is a diagram for qualitatively explaining the adjustment of the processing content performed by the adjustment unit 52.
  • the time of a criterion (hereinafter referred to as “determination time”) that is considered to be an appropriate timing for the pressing of a button or the like in the client terminal 10 is sequentially set, and the pressing is detected within the determination time.
  • the game is supposed to give a score.
  • a golf game in which the ball flight distance is determined by the swing-up amount of the golf club and the timing of the hitting ball, a game in which the playing technique of the percussion instrument is competed by pressing the game pad according to the music, and the virtual by pressing the game pad A fighting game that hits enemies in the world can be considered.
  • This figure shows the game flow (upper and middle stages) and communication status (lower stage) in the same time range.
  • the horizontal axis indicates the elapsed time, and represents the previous time as it proceeds from left to right.
  • the upper stage is a game flow 60 in a standard state without adjustment, and it is assumed that the determination times 62a and 62b are set in a time range represented by a white rectangle.
  • the parameter P indicating the communication status changes as shown in the graph 66 at the bottom.
  • the value Pc is a criterion that requires adjustment if the value Pc is exceeded.
  • the parameter P exceeds the criterion Pc by A and B, respectively.
  • the adjustment unit 52 first extends the determination time by the adjustment amount A ′ corresponding to the excess A at time TA.
  • the determination time 62a that has arrived at the timing immediately thereafter is adjusted to a determination time 64a that starts at the same time as the original determination time 62a and is extended by the adjustment amount A ′, as shown in the middle game flow 63.
  • the adjustment amount B 'corresponding determination time excess B is extended by the adjustment amount B ′.
  • the determination time 62b that arrives at the timing immediately thereafter is adjusted to the determination time 64b that starts at the same time and is extended by the adjustment amount B ′.
  • the starting point of each determination time may be delayed by an adjustment amount corresponding to the excess A and B.
  • the adjustment amounts A ′ and B ′ may be equal to the excess times A and B from the determination criterion Pc, respectively, and a constant may be added or multiplied. Or you may. Alternatively, if the determination criterion Pc is exceeded, the adjustment may be made uniformly with the same adjustment amount. Although the figure only adjusts the length of the determination time, various adjustment contents are conceivable depending on the contents of the game under the idea that the deterioration of the communication situation does not work against the user.
  • FIG. 10 is a flowchart showing a processing procedure of the server 30b when reproducing the adjustment contents when generating the secondary data.
  • this flowchart into the process of S60 in the flowchart of FIG. 5, it is possible to generate secondary data considering the adjustment process.
  • the adjustment unit 52 of the information processing unit 36 confirms whether adjustments that need to be reproduced have been made during execution of the game play to be created. (S94).
  • the adjustment history storage unit 54 whereby whether or not the adjustment has been made can be determined based on the presence or absence of the adjustment history.
  • the adjustment that needs to be reproduced in the secondary data is typically the adjustment of the processing content itself, such as relaxing the game rules, but depending on the setting, the adjustment of the encoding parameter may be reproduced. It is done. If the adjustment that needs to be reproduced is not made (N in S94), the adjustment by the adjustment unit 52 is not performed, and the information processing unit 36 performs the game process (S96). If the adjustment has been made (Y in S94), the adjustment unit 52 reads the adjustment history from the adjustment history storage unit 54, and performs the same adjustment at the same timing as the actual adjustment during the game processing by the information processing unit 36 (S98). . For example, if the adjustment shown in FIG. 9 has been made, after the game is started in the secondary data creation process, an adjustment is made to extend the determination time by the adjustment amounts A ′ and B ′ at the time corresponding to the times T A and T B. Do.
  • the adjustment history stored in the adjustment history storage unit 54 may be obtained by associating specific adjustment amounts such as the adjustment amounts A ′ and B ′ with the adjustment times T A and T B in the example of FIG.
  • the time change of the parameter P which shows a condition may be sufficient.
  • the adjustment unit 52 again derives the adjustment amount and reproduces the adjustment process during the game reproduction process.
  • the adjustment unit 52 may display character information representing the adjustment contents in the image in addition to reproducing the adjustment when generating the secondary data.
  • FIG. 11 shows an example of an image of secondary data displaying adjustment contents.
  • the image 90 represents one scene of the golf game and is displayed on the display unit 20 of the client terminal 10 during reproduction using the secondary data.
  • an adjustment is made to extend the determination time determined to be appropriate as the timing at which the golf club swung by the user's operation hits the ball by 20 milliseconds.
  • the secondary data is generated, an image is generated so that a window 92 indicating the adjustment content is displayed for a predetermined time when the hitting timing is determined based on the adjusted determination time.
  • the character information “network timing adjustment 20 milliseconds” is displayed superimposed on the game screen.
  • the adjustment content may be displayed on the primary data. In other words, information such as that the rule is being relaxed and how much relaxation has been made may be disclosed to the user who is playing the game or who is watching it in real time. Further, the adjustment content may be represented not only by character information but also by a figure, or by its color or movement.
  • the user who is a player operates the client terminal 10 as usual, and adjusts the determination time on the server 30b side according to the communication status.
  • a display that prompts the user to advance the operation timing in anticipation of the time until the input information reaches the server 30b is performed.
  • FIG. 12 shows an example of a game image to which a display prompting the user to advance the operation timing is added during the game.
  • the image 75 represents one scene of the golf game similar to FIG. 11 and is displayed on the display unit 20 of the client terminal 10 during the game execution.
  • a gauge 76 indicating the current club swing width is displayed as an indication of the pressing timing.
  • the position indicated by “100” at the left end of the gauge 76 indicates the swing width at the time of a full swing, and the position indicated by an arrow near the right end of the gauge indicates the swing width at the time of a just meet.
  • the edge of the indicator moves to the left during the backswing period and to the right during the downswing period.
  • the adjustment unit 52 adds a mark 78 a indicating a suitable timing for performing the swing direction switching operation and a mark 78 b indicating a suitable timing for performing the hitting operation to the gauge 76.
  • the server 30 detects the operation at the timing of the full swing.
  • the server 30 detects the operation at the timing of the just meet.
  • FIG. 13 is a diagram for explaining a mode in which the encoding parameter is adjusted by the process of S86 in the flowchart of FIG.
  • the bit rate of the entire image when a situation requiring adjustment occurs, it is conceivable to uniformly reduce the bit rate of the entire image.
  • a mode in which the bit rate is changed depending on the region is shown.
  • Image 80 represents one scene of a car racing game, and the user operates a car 82 that runs on a course in the virtual world.
  • the entire image is encoded at the same bit rate, whereas at the time of adjustment, the bit rate of the area 84 in the predetermined range in front of the car 82 that is considered to be high in attention, that is, near the center of the screen Is left as it is, and the bit rate of other areas is lowered.
  • the adjustment unit 52 performs encoding by notifying the encoding unit 38 of information related to the position and size of the region 84 and the bit rate after adjustment of other regions.
  • the image quality should be maintained for an area that is likely to affect the user's operation while reducing the data size of the image to be transmitted to the client terminal 10 in accordance with the deterioration of the communication status. it can.
  • the size of the region 84 may be changed, or the bit rate of other regions may be further adjusted. In some cases, the bit rate of the region 84 may be reduced within a predetermined range. Further, the area 84 that maintains the bit rate may be moved in accordance with the composition change.
  • FIG. 13 shows an example of a racing game.
  • an area in which the bit rate is desired to be maintained as much as possible is determined in advance according to the contents of the game so that the adjustment unit 52 can refer to it at the time of adjustment. Keep it.
  • a region where the bit rate should be maintained a region with a high degree of attention, a region containing important information, a region that hinders user operation due to a decrease in image quality, and the like can be considered.
  • a predetermined range area including the character in the case of a game in which a user moves a character or viewpoint, such as a role playing game, a predetermined range area including the character, a predetermined range area near the aim in FPS (Fist Person Shooting) or TPS (Third Person Shooting) And so on.
  • FPS Field Person Shooting
  • TPS Third Person Shooting
  • there are areas for displaying character information such as the current stage, score, and text chat, areas for pop-up windows displayed during the game, and areas that newly enter the field of view when the virtual viewpoint is moved by user operation. Conceivable.
  • the contents of the user operation are recorded on the server side.
  • the game is re-executed at an appropriate timing based on the contents of the recorded user operation, and the game image is generated and stored again. This is used when the user shares or re-confirms the image. .
  • This makes it possible to independently control image quality and the like under the optimal conditions according to the situation, while the same game is being played at the first execution and at the time of re-execution.
  • the compression rate is prioritized over the encoding processing time, so that the size of the image data itself can be reduced, which contributes to the saving of the communication band during reproduction and the storage area in the server.
  • the game rules, the processing content such as the resolution of the image to be generated, and the encoding parameters such as the bit rate are adjusted according to the communication status.
  • the server 30b shown in FIG. 7 has both the adjustment function according to the communication status and the secondary data creation function, but may be a server having only the former. Even such a server can display as high-quality images as possible while preventing a decrease in responsiveness due to a deterioration in communication status during game execution.
  • 1 information processing system 10 client terminals, 12 input unit, 14 input information transmission unit, 16 data reception unit, 18 decoding unit, 20 display unit, 30 server, 32 input information reception unit, 34 secondary data creation instruction unit, 36 Information processing section, 38 encoding section, 40 data transmission section, 42 input information storage section, 44 save data storage section, 46 output data storage section, 50 communication status monitoring section, 52 adjustment section, 54 adjustment history storage section.
  • the present invention can be used for information processing services such as information processing systems, proxy servers, and cloud computing.

Abstract

 サーバ30bの入力情報受信部32はクライアント端末10からユーザ操作に係る入力情報を受信し、入力情報記憶部42に時刻とともに記録する。情報処理部36は入力情報に基づき即時、情報処理を行い、生成された1次出力データをエンコード部38がエンコードしてデータ送信部40がクライアント端末10に送信する。通信状況監視部50が監視する通信状況に応じて、調整部52は処理内容、エンコードパラメータを随時調整し調整履歴を調整履歴記憶部54に時刻とともに記録する。リソースに余裕のある期間に、2次データ作成指示部34からの指示により、記録しておいた入力情報、調整履歴を用いて再度、情報処理、エンコードを高品質で行い、作成された2次データを出力データ記憶部46に格納する。

Description

出力データ提供サーバおよび出力データ提供方法
 本発明は、ネットワークを利用して情報処理のサービスを提供する技術に関する。
 近年の情報処理技術の発展、ネットワークの充実化などにより、パーソナルコンピュータ、携帯端末などユーザが操作する装置の性能や使用環境によらず、様々な情報処理をサーバとの連携により実現させることが可能となっている。例えばユーザが操作する端末と、それに応じた情報処理を実施する情報処理装置とを分離することにより、簡素な構成の携帯端末などでも高度な情報を出力できるような技術が提案されている(例えば特許文献1参照)。クラウドコンピューティングのように、サーバが提供する様々なサービスをネットワークを介して利用することにより、高度な情報処理や膨大なデータ管理を、ユーザが置かれた環境によらず実現できるようにする技術的傾向は益々強くなっている。
特開2010-20159号公報
 上記のような技術にあっては、一つ情報処理装置内での処理と比較し、端末側で表示する画像など出力データの品質と、操作から出力までの応答性とを両立させることがさらに困難になる。すなわち端末/サーバ間の通信帯域という可変のパラメータが加わることにより、通信状況の変化によらず応答性を維持するためには、必然的に画質を十分低下させ、常時データサイズを抑えなければならなくなる。ゲームなど応答性が特に重要となる情報処理では、適正なタイミングで操作したにも関わらず操作ミスと判定されるなどの問題を回避するために応答性の維持が特に重要となり、出力データの品質を犠牲にしなければならないというジレンマが生じる。
 本発明はこのような課題に鑑みてなされたものであり、その目的は、サーバがネットワークを介して情報処理のサービスを提供する環境において、応答性と出力データの品質とを両立できる技術を提供することにある。
 本発明のある態様は出力データ提供サーバに関する。この出力データ提供サーバは、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供サーバであって、ユーザ操作に係る情報を入力情報として取得する入力情報受信部と、入力情報の履歴を記憶する入力情報記憶部と、入力情報受信部が取得した入力情報に基づき即時、情報処理を行うことにより、ユーザ操作に応じて送信すべき1次出力データを生成するとともに、入力情報記憶部から読み出した入力情報の履歴に基づき2度目の情報処理を行うことにより出力データを2次出力データとして生成し直す情報処理部と、2次出力データを記憶する出力データ記憶部と、情報処理部が生成した1次出力データ、または出力データ記憶部から読み出した2次出力データを、要求に応じてクライアント端末に送信するデータ送信部と、を備えることを特徴とする。
 本発明の別の態様も出力データ提供サーバに関する。この出力データ提供サーバは、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供サーバであって、ユーザ操作に係る情報を入力情報として取得する入力情報受信部と、入力情報に基づき情報処理を行うことにより出力データを生成する情報処理部と、出力データをクライアント端末に送信するデータ送信部と、を備え、情報処理部は、クライアント端末との通信状況に応じて情報処理の内容および出力データの品質の少なくともいずれかを適応的に調整することを特徴とする。
 本発明のさらに別の態様は出力データ提供方法に関する。この出力データ提供方法は、サーバが、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供方法であって、ユーザ操作に係る情報を入力情報として取得するステップと、入力情報の履歴をメモリに記憶するステップと、入力情報に基づき即時、情報処理を行うことにより、ユーザ操作に応じて送信すべき1次出力データを生成し、クライアント端末に送信するステップと、メモリから読み出した入力情報の履歴に基づき2度目の情報処理を行うことにより出力データを2次出力データとして生成し直し記憶装置に格納するステップと、要求に応じて記憶装置から読み出した2次出力データをクライアント端末に送信するステップと、を含むことを特徴とする。
 本発明のさらに別の態様も出力データ提供方法に関する。この出力データ提供方法は、サーバが、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供方法であって、ユーザ操作に係る情報を入力情報として取得するステップと、入力情報に基づき情報処理を行うことにより出力データを生成するステップと、出力データをクライアント端末に送信するステップと、を含み、出力データを生成するステップは、クライアント端末との通信状況に応じて情報処理の内容および出力データの品質の少なくともいずれかを適応的に調整することを特徴とする。
 なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
 本発明によると、ネットワークを介した情報処理のサービス提供を、状況に応じた最適な状態で行うことができる。
本実施の形態における情報処理システムの構成を示す図である。 本実施の形態におけるクライアント端末とサーバの構成をより詳細に示す図である。 本実施の形態においてゲーム実行期間にクライアント端末とサーバがゲームを進捗させる処理手順を示すフローチャートである。 本実施の形態において入力情報記憶部に格納される入力情報ファイルのデータ構造例を示す図である。 本実施の形態においてサーバが2次データを生成する処理手順を示すフローチャートである。 本実施の形態においてゲームプレイを再生する際のクライアント端末とサーバの処理手順を示すフローチャートである。 本実施の形態における、ゲーム実行期間に通信状況に応じて情報処理やエンコード処理を調整する機能をさらに設けたサーバの構成を詳細に示す図である。 本実施の形態においてサーバが、通信状況に応じた調整を行いながら情報処理を実施する処理手順を示すフローチャートである。 本実施の形態において調整部が行う処理内容の調整を定性的に説明するための図である。 本実施の形態において2次データの生成時に調整内容を再現するときのサーバの処理手順を示すフローチャートである。 本実施の形態において調整内容を表示した2次データの画像の例を示す図である。 本実施の形態においてゲームを実行中、操作タイミングを早めるようにユーザに促す表示を追加したゲーム画像の例を示す図である。 本実施の形態においてエンコードパラメータを調整する態様を説明するための図である。
 図1は本実施の形態における情報処理システムの構成を示す。情報処理システム1においてクライアント端末10a、10b、10cは、それぞれネットワーク3を介してサーバ30に接続可能に構成され、サーバ30とデータの送受信を行う。サーバ30はクライアント端末10a、10b、10cからの要求に応じて情報処理を実施し、その結果生成した出力データをクライアント端末10a、10b、10cに送信する。クライアント端末10a、10b、10cおよびサーバ30は、ネットワーク3へ有線または無線で接続する。クライアント端末10a、10b、10cとサーバ30との接続手法や情報処理の依頼、出力データの送受信に係る手続きには一般的な技術を適用することができる。
 クライアント端末10a、10b、10cはそれぞれのユーザが操作する装置であり、ユーザが行った操作を入力情報としてサーバ30へ送信し、それに応じた情報処理を要求するとともに、サーバ30が情報処理を行った結果、生成した出力データを画像や音声として出力する。クライアント端末10a、10b、10cはタブレット、携帯電話、携帯端末、パーソナルコンピュータなど、一般的な装置や端末のいずれでもよい。なおネットワーク3に接続するクライアント端末10a、10b、10c、サーバ30の数は特に限定されない。以後、クライアント端末10a、10b、10cを総称してクライアント端末10と呼ぶ。
 クライアント端末10がサーバ30に要求する情報処理は特に限定されないが、以後の説明では主に、ゲームを実現する態様について述べる。つまりサーバ30は、クライアント端末10においてユーザが指定したゲームを起動し、クライアント端末10におけるユーザの操作に従い当該ゲームを進捗させる。そしてそれに応じて生成したゲームの画像や音声などの出力データをクライアント端末10に逐次送信する。クライアント端末10では、サーバ30から送信された出力データを順次、デコードするなどして出力可能な形態に変換し、画像や音声として出力する。
 これにより、ユーザの操作に応じたゲーム画面、音声がクライアント端末10から出力される。この構成は、サーバ30が、ユーザの操作に応じて内容を変化させる動画像のデータをコンテンツデータとして送信するサービスを提供しているともいえる。ただしサーバ30で実施する情報処理はゲームのほか、文書作成、画像描画、電子掲示板などのコミュニケーションツールなど、一般的な情報処理のいずれでもよい。また以後の説明では出力データを、時間軸に対し順次生成された画像フレーム列からなる動画のデータとするが、さらに音声データを含んでいてもよい。
 サーバ30はさらに、複数のクライアント端末10に同じ画像データを送信することにより、複数のユーザが当該画像データを共有できるようにする。例えば実施する情報処理を、複数のユーザが参加可能なネットワークゲームとした場合、サーバ30は複数のクライアント端末10からそれぞれのユーザの操作に係る情報を逐次受信し、ゲームの進捗に反映させる。そして生成したゲームの画像データを全てのクライアント端末10に送信することにより対戦型のゲームを実現できる。
 このように本実施の形態では、その数によらずクライアント端末10におけるユーザの操作内容を表す入力情報をサーバ30が逐次受信し、リアルタイムで画像データを生成してクライアント端末10に送信することにより、操作に応じた画像をクライアント端末10に表示させることを基本とする。さらにサーバ30は、ゲームに参加しているユーザのみならず、単にゲームを観戦したいユーザや後からゲームの様子を鑑賞したいユーザのクライアント端末10へも、生成した画像データを送信する。このようにすることで、自分や他人のゲームプレイを時間や場所を問わず複数のユーザで共有することができる。
 このような態様において、ユーザによる操作の頻度が高かったり、操作タイミングが得点に関わるようなゲームであるほど、ネットワーク3における通信状況に依存した応答性の変化がユーザに与えるストレスは大きくなる。また通信状況が悪化することにより画像が停止したりコマ落ちが生じたり、といった不都合が生じることがあり得る。この問題は、画像や圧縮後のデータを高品質化するほど顕在化する。
 そこで本実施の形態では、ゲームの実行中は画像表示の応答性を最優先することによりプレイヤであるユーザの操作に係るストレスを軽減する。つまり画質をある程度抑えて通信状況の変動に対し頑健性を与える。一方、ゲーム終了後にその動画を公開する段階では操作がなく応答性が求められないことを利用し、画質を優先させる。これを実現するため、サーバ30はゲーム終了後、当該ゲームを再度、実際のゲームプレイと同様に実行して画像データを生成し直す。これにより公開時の画像データに高い品質を保証する。以後の説明では、ユーザの操作に応じてリアルタイムで生成する画像データを「1次データ」、ゲーム終了後に生成し直す画像データを「2次データ」と呼ぶ。
 図2はクライアント端末10とサーバ30の構成をより詳細に示している。なお後に述べるサーバ30の変形例と区別するため、同図ではサーバ30aとしている。クライアント端末10は、ユーザ操作を受け付ける入力部12、受け付けた操作内容を入力情報としてサーバ30へ送信する入力情報送信部14、サーバ30から送信された画像データを受信するデータ受信部16、画像データをデコードするデコード部18、画像を表示する表示部20を含む。
 サーバ30aは、クライアント端末10からユーザによる入力情報を受信する入力情報受信部32、クライアント端末10から要求されたゲームなどの情報処理を実施する情報処理部36、情報処理の結果として生成された画像のデータをエンコードするエンコード部38、エンコード後の画像データをクライアント端末10に送信するデータ送信部40を含む。
 サーバ30aはさらに、クライアント端末10からの入力情報を入力時刻と対応づけて記憶する入力情報記憶部42、ユーザがゲームをセーブして中断した場合に当該セーブに係る情報を記憶するセーブデータ記憶部44、情報処理部36およびエンコード部38に2次データの作成を指示する2次データ作成指示部34、および、1次データ、2次データの画像データを記憶する出力データ記憶部46を含む。
 図2および後述する図7において、さまざまな処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、CPU(Central Processing Unit)、メモリ、その他のLSIで構成することができ、ソフトウェア的には、記録媒体や記憶装置に格納されメモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
 クライアント端末10の入力部12は、ユーザが、サーバ30に要求するゲームを指定したり、当該ゲームに対する操作を行ったりコマンドを入力したりするための入力手段であり、ゲームパッド、ボタン、タッチパネル、キーボード、マウス、ジョイスティックなど一般的な入力装置の少なくともいずれかによって実現する。入力情報送信部14は、サーバ30と一般的な手法により通信を確立し、入力部12に対するユーザの操作内容を表す入力情報の信号を生成してサーバ30に送信する。
 サーバ30の入力情報受信部32は、クライアント端末10から送信された入力情報を受信する。情報処理部36は、入力情報受信部32が受信した入力情報に従いゲームなどの情報処理を実施する。上述したように入力情報は1つまたは複数のクライアント端末10から逐次送信され、情報処理部36はそれに応じて情報処理をリアルタイムで進捗させる。クライアント端末10の入力情報送信部14からサーバ30の入力情報受信部32、情報処理部36、と入力情報を即時伝送することにより、あたかもクライアント端末10内部で情報処理を行っているかの如く情報処理を実施する。
 具体的なプロトコルや入力信号のフォーマット、その解釈手法などには一般的なエミュレーションの技術を適用できるためここでは説明を省略する。入力情報受信部32は情報処理部36に供給した入力情報と同様の情報を、それぞれの入力時刻と対応づけた入力情報ファイルとして入力情報記憶部42に格納しておく。入力情報ファイルはゲームプレイごとに作成し、各ゲームプレイの識別情報と対応づけておく。ここでゲームプレイの識別情報とは、2次データを作成したりクライアント端末10への送信対象を特定するためにゲームプレイごとに一意に与える情報であり、サーバ30a内で共有される。入力時刻とは、2次データを作成する際、ゲーム開始からの各操作のタイミングをトレースするためのものであるため、ゲーム開始からの経過時間、標準時を表す時刻、直前の操作からの時間間隔などのいずれでもよい。
 情報処理部36は、ゲーム開始から終了までのゲーム実行期間において、1次データとしてゲームの画像データを逐次作成しエンコード部38に供給する。この画像データは、所定のフレームレートを有する一般的な動画像データでもよいし、静止画と動画が混在するような、不規則な時間間隔のデータでもよい。またゲームの終了は、ゲームの設定によって終了したいわゆるゲームオーバーの時点でもよいし、ユーザがゲームの途中でそれまでのデータをセーブして中断する操作を行った時点でもよい。
 後者の場合、情報処理部36は、セーブデータ、具体的にはゲームの到達点(セーブポイント)やその時点でのスコアなどを、ゲームプレイの識別情報と対応づけてセーブデータ記憶部44に格納する。ユーザが、以前のセーブポイントからゲームを再開する要求を行ったら、情報処理部36は、セーブデータ記憶部44から該当するゲームプレイの識別情報に対応づけられたセーブデータを読み出し、そこからゲームの処理を開始する。このためクライアント端末10における再開対象のゲームの指定情報に基づき、サーバ30でゲームプレイの識別情報を特定するしくみを設けておく。
 最も単純にはゲームプレイの識別情報自体を、プレイヤであるユーザやクライアント端末の識別情報、ゲームの名前、最終セーブ時刻など、ゲームプレイに固有かつ人が理解可能な情報で構成し、ユーザが直接選択できるようにすることが考えられる。ただしその他、様々な形式をとり得ることは当業者には理解されるところである。なおセーブポイントはそれまでのゲームプレイの終点であるとともに、そこから再開したゲームプレイの始点でもあるため、2次データ作成に備え、後者のゲームプレイの識別情報とも対応づけておく。
 情報処理部36はさらに、以前実施したゲームプレイを再現し、2次データとしてゲームの画像データを再度作成してエンコード部38に供給する。このため2次データ作成指示部34は、情報処理部36およびエンコード部38における処理能力、すなわちCPU時間やメモリ容量などのリソースに十分な余裕があるか否かを所定の基準により判断し、あると判断した場合に情報処理部36およびエンコード部38に2次データの作成開始を指示する。
 2次データの作成処理は、基本的には2次データ作成対象のゲームプレイが終了した後に実施するが、リソースに余裕があれば、場合によっては実施中のゲームプレイについて並行して2次データを作成してもよい。また情報処理部36やエンコード部38の処理能力によっては、その他のゲームが並行して行われていてもよい。
 2次データ作成指示部34は2次データを未作成のゲームプレイの識別情報を内部メモリに保持しておく。そしてリソースに余裕があると判断したとき、FIFO(First In First Out)など所定の規則で2次データ作成対象のゲームプレイを選択して情報処理部36へその識別情報を通知する。情報処理部36は通知されたゲームプレイの識別情報に基づき、入力情報記憶部42から対応する入力情報ファイルを読み出す。また該当するゲームプレイがセーブポイントからの再開である場合は、セーブデータ記憶部44から対応するセーブデータを読み出す。
 そしてセーブデータを読み出した場合は当該セーブポイントから、それ外の場合は最初から、ゲームの処理を開始する。開始後は、入力情報が記録された時刻に対応するタイミングで当該入力情報に応じた処理を行うことでゲームを再現する。ただし2次データ作成時は、当該データを即時、クライアント端末10に送信する必要がないため、時間軸を所定の倍率に引き延ばすなどして時間をかけて処理を行ってもよい。また同じ理由で、1次データより高い画質で2次データを作成してもよい。例えば画像の空間解像度、時間解像度の少なくとも一方を1次データより高くしてもよい。
 ただし設定によっては、必ずしも2次データの品質を1次データより高くしなくてもよい。例えば後述するように、1次データの作成時はゲームの応答性を優先し、通信状況によってその品質を調整するような場合、基本設定で品質を同じにしても、2次データ作成時はそのような調整を行わないことにより、実質的に品質の安定性、信頼性を向上させることができる。また、クライアント端末10のディスプレイの想定サイズに応じて、2次データを複数の解像度で生成してもよい。
 エンコード部38は、情報処理部36から供給された1次データまたは2次データをエンコードする。エンコード部38においても、1次データでは応答性を優先させ、2次データではデータの品質を優先させる。例えば2次データ作成時には、1次データ作成時よりビットレートを大きくする。さらに、処理時間を長くかけることで品質とともに圧縮率を上げることもできる。情報処理部36からの出力データを順次エンコードしていく場合、エンコードにかける時間に対応させて情報処理の時間軸を引き延ばすことで、出力データの供給タイミングを調整してもよい。
 エンコード部38は、エンコードした1次データを順次、データ送信部40に供給するとともに、ゲームプレイの識別情報に対応づけて出力データ記憶部46に格納する。さらに2次データをエンコードした際は、それをゲームプレイの識別情報に対応づけて出力データ記憶部46に格納する。同じゲームプレイの2次データが作成されたことにより1次データが必要なくなった場合は、出力データ記憶部46から当該1次データを削除してもよい。
 なお情報処理部36が生成した1次データを、直接、出力データ記憶部46に格納してもよい。この場合、当該エンコード前の1次データを、エンコード部38がビットレートを上げたり処理時間をかけたりしてエンコードし直し、2次データとして出力データ記憶部46に格納してもよい。この処理も、エンコード部38のリソースに余裕のある期間に行えばよい。このようにしても、ゲーム実行期間において応答性を優先させて送信された1次データより高品質、高圧縮率のデータを作成できる。さらに上述したように情報処理部36がゲームを再現し、画像データを生成し直すことにより、より品質を向上させたものを3次データとして保存してもよい。
 データ送信部40はゲーム実行期間中、エンコード部38から供給された1次データを順次、クライアント端末10に転送する。具体的な転送処理には一般的な技術を適用できる。データ送信部40はさらに、ゲーム終了後などにクライアント端末10からの要求に応じて、出力データ記憶部46から読み出した、要求されたゲームプレイの画像データを随時送信する。このとき、当該ゲームプレイの2次データが出力データ記憶部46に格納済みであればそれを送信し、未格納であれば1次データを送信する。
 クライアント端末10のデータ受信部16は、サーバ30aから送信された画像データを受信する。デコード部18は、受信した画像データを復号、伸張し、画像として図示しないフレームメモリに展開する。送信された画像データが1次データか2次データかによってビットレート等、デコード時のパラメータが異なっていることが考えられるため、データに含まれるデコードパラメータの設定情報に従い、適宜デコード条件を切り替える。
 表示部20は、フレームメモリに展開された画像を表示する。したがって出力部26は画像を表示する液晶ディスプレイ、有機ELディスプレイ、プラズマディスプレイなどの一般的なディスプレイおよびそれらの装置を制御するコントローラを含む。さらに音声信号を音響として出力するスピーカ、イヤフォン、ヘッドフォンなどの音声出力機器を含めてもよい。
 次にこの構成によって実現されるシステムの動作を説明する。図3はゲーム実行期間においてクライアント端末10とサーバ30aがゲームを進捗させる処理手順を示すフローチャートである。同図では1つのクライアント端末10とサーバ30aによる処理の手順を示しているが、上述の通り複数のクライアント端末10が同時にサーバ30aと接続してよく、この場合、複数のクライアント端末10が同様に処理を進める。またデータの生成、送信、出力などの各処理を1つのステップとして示しているが、処理内容によっては時間幅を有する場合があり、この場合は適宜並行して処理が進捗するものとする。後に説明する図5、6、8のフローチャートも同様である。
 まずクライアント端末10の入力部12に対しユーザがゲーム名を指定するなどして処理の開始を要求する操作を行うと(S30)、入力情報送信部14は当該処理開始要求のための信号を作成しサーバ30aに送信する。この信号には、クライアント端末10やユーザの識別情報、ゲーム名など必要な情報を含める。セーブポイントからの再開を要求する場合は、セーブ時刻など再開対象のゲームプレイを識別する情報を含める。
 サーバ30aの入力情報受信部32は、当該処理開始要求信号を受信すると、情報処理部36に、それに対応するゲームの処理開始を指示するとともに、入力情報記憶部42に格納する入力情報ファイルを初期化する(S31)。具体的には、そのゲームプレイの識別情報に対応づけて、入力情報を記録するための新規ファイルを準備する。入力情報をゲーム開始からの経過時間に対応づけて記録する場合、入力情報受信部32は図示しないタイマを起動させる。
 情報処理部36は、指定されたゲームのプログラムを起動するなどして処理を開始する。そして作成された初期画像のデータをエンコード部38がエンコードし、データ送信部40がクライアント端末10へ送信する(S32)。クライアント端末10のデータ受信部16が初期画像のデータを受信すると、デコード部18がそれをデコードし、表示部20が出力することにより、初期画像がクライアント端末10に表示される(S34)。なお初期画像のデータが動画など時間的な幅を有するデータである場合、S32における送信処理はストリーム転送でよく、クライアント端末10は受信したデータを順次デコードし表示する。
 そのようにして表示された初期画像を見ながら、ユーザが入力部12に対しコマンド入力などの指示入力を行ったら、入力情報送信部14はその都度、当該入力情報をサーバ30aに送信する(S36)。サーバ30aが当該情報を受信すると、入力情報受信部32が情報処理部36にその情報を通知することにより、情報処理部36は通知された入力情報に対応するゲームの処理を実施する(S38)。入力情報受信部32はさらに、入力情報記憶部42に準備した入力情報ファイルに、時刻とともにその入力情報を記録する(S40)。例えば自らのタイマで計測したゲーム開始からの経過時間と入力情報を対応づけて記録する。
 サーバ30aのエンコード部38は、情報処理部36におけるゲーム処理の結果として生成された画像のデータをエンコードする(S42)。データ送信部40は、このようにして生成されたエンコード後の画像データを1次データとしてクライアント端末10に送信する(S44)。クライアント端末10のデータ受信部16が画像データを受信すると、デコード部18がそれをデコードし(S48)、表示部20が表示することにより、ユーザ操作に応じたゲーム画面がクライアント端末10に表示される(S50)。S36からS50の処理を繰り返すことにより、ユーザ操作に応じて画面が適宜更新されゲームが進捗する態様を実現できる。
 図4は入力情報記憶部42に格納される入力情報ファイルのデータ構造例を示している。入力情報ファイル70は、時間フィールド72および入力値フィールド74を含み、クライアント端末10においてゲーム開始後になされた操作の内容を表す入力情報を、時刻に対応づけて記録する。時間フィールド72に記録する入力時刻は、同図の場合、ゲーム開始からの経過時間となっているが、操作の時系列が明らかであればその形式は限定されない。
 また入力値フィールド74は同図の場合、ユーザの操作内容を識別番号で記録している。例えば、クライアント端末10の入力部12におけるボタンやGUIなどの各操作手段に識別番号を付与しておき、押下された操作手段を入力値フィールド74に記録する。ただし押下が継続した時間や操作方向などさらに詳細な操作を記録すべき場合もあるため、入力値フィールド74における入力情報の記録形式は図示するものに限らない。入力情報受信部32は、ゲーム実行期間において、クライアント端末10から入力情報が送信される都度、入力情報ファイル70の行を追加していくことにより入力情報を記録していく。
 図5はサーバ30aが2次データを生成する処理手順を示すフローチャートである。サーバ30aの2次データ作成指示部34は、情報処理部36およびエンコード部38におけるリソースを監視し、2次データを作成するのに十分な空きがあるかどうかを判定する(S52)。この処理は実際には、2次データ作成指示部34が定期的に確認してもよいし、空きが基準値以上発生した時点で情報処理部36やエンコード部38から通知を受けるようにしてもよい。
 空きがない状態であればそのまま待機する(S52のN)。空きが発生したら(S52のY)、2次データ作成指示部34は、2次データが未作成のゲームプレイの識別情報を内部メモリなどから選択し、情報処理部36およびエンコード部38に通知することにより2次データの作成を指示する。情報処理部36は、当該ゲームプレイの始点を表すセーブデータがセーブデータ記憶部44に格納されている場合はそれを読み出す(S54のY、S56)。さらにセーブデータの有無にかかわらず、当該ゲームプレイの識別情報に対応づけられた入力情報ファイルを入力情報記憶部42から読み出す(S58)。
 そしてセーブデータを読み出した場合(S54のY)は当該セーブポイントから、セーブデータがなかった場合(S54のN)は最初から、ゲーム処理を再現する(S60)。この際、入力情報ファイルに記録された入力情報に従い、同じタイミングで同じ操作がなされたものとしてゲームを進捗させる。その結果として画像のデータが作成される都度、エンコード部38は当該データをエンコードしていく(S62)。
 S60およびS62で作成、エンコードする2次データは、ゲーム実行期間に作成された1次データとは異なる解像度やビットレートでよい。例えばS60において、SD(Stanndard Definition)、HD(High Definition)、フルHDなど、データ送信先のクライアント端末で想定されるディスプレイの解像度に合わせた複数のサイズで画像を生成してもよい。またS62において複数の方式でエンコードしてもよい。エンコード部38はエンコードした2次データを出力データ記憶部46格納する(S64)。このとき必要に応じて、同じゲームプレイを表す1次データを出力データ記憶部46から削除する。
 図6はゲームプレイを再生する際のクライアント端末10とサーバ30aの処理手順を示すフローチャートである。まず鑑賞者などのユーザがクライアント端末10の入力部12に対し、再生対象のゲームプレイを指定するなどして再生を要求する操作を行うと(S70)、入力情報送信部14は当該再生要求のための信号を作成しサーバ30aに送信する。ユーザがゲームプレイを指定するために、公開中のゲームプレイの選択画面を表すウェブページのデータなどをサーバ30aから送信しておいてもよい。選択画面には、各ゲーム画面のサムネイルなどとともに、ゲーム名、プレイヤ名、プレイ日時などを表示することにより、ユーザが選択しやすくなる。
 再生要求信号には、自装置のディスプレイの解像度や要求するエンコード方式などをさらに含めてもよい。再生要求を受信したサーバ30aの入力情報受信部32は、選択されたゲームプレイの識別情報を特定し、データ送信部40に通知する。データ送信部40は、当該ゲームプレイの2次データが出力データ記憶部46に格納されているか否かを確認する(S72)。2次データが格納されている場合は(S72のY)、当該2次データを読み出し、要求元のクライアント端末10に送信する(S74)。この際、複数の解像度やエンコード方式でデータが格納されている場合は、クライアント端末10からの要求に対応したデータを選択して送信する。
 2次データが格納されていない場合は(S72のN)、1次データを読み出し要求元のクライアント端末10に送信する(S76)。クライアント端末10のデータ受信部16がデータを受信すると、デコード部18がそれをデコードし(S78)、表示部20が表示することにより、選択したゲームプレイが動画などの形態でクライアント端末10に表示される(S80)。図3、5、および6に示した処理手順によって、ゲーム実行期間は応答性を優先させ、ゲームプレイ再生時には画質を優先させることができる。
 このように本実施の形態では、同じゲームプレイの画像でありながら、状況に応じて品質を独立に設定できる。この利点をさらに積極的に活用し、ゲーム実行時は通信状況に応じて画像データの品質を適応的に調整するようにしてもよい。これにより応答性を担保した状態で、通信状況が良好であれば高い品質で画像を表示することができる。この場合でも上述のとおり2次データを作成すれば、それ以後の再生においては実行期間の通信状況は影響しない。
 図7はゲーム実行期間において通信状況に応じて情報処理やエンコード処理を調整する機能をさらに設けたサーバ30の構成を詳細に示している。同図のサーバ30bは、通信状況に応じて画像データの品質を調整するのみならず、ゲームの内容自体を調整する。このようにすることで、通信状況の悪化によりユーザ操作がサーバ30側で遅れて検知されユーザに不利に働くといった状況の発生を抑制することができる。なお同図において、図2に示したサーバ30aと同じ機能を有するブロックには同じ符号を付して、適宜説明を省略する。またクライアント端末10の構成は図2に示したものと同様でよいため、ここでは図示を省略している。
 サーバ30bは、入力情報受信部32、2次データ作成指示部34、情報処理部36、エンコード部38、データ送信部40、入力情報記憶部42、セーブデータ記憶部44、出力データ記憶部46を含む。これらの機能ブロックは基本的に、図2のサーバ30aに含まれる各機能ブロックと同様に機能する。ただし情報処理部36は、通信状況に応じて情報処理部36やエンコード部38における処理を調整する調整部52を含む。サーバ30bはさらに、クライアント端末10との通信状況を監視する通信状況監視部50、実施された調整内容を時間に対応づけて記録する調整履歴記憶部54を含む。
 通信状況監視部50は、ゲーム実行期間においてクライアント端末10との通信状況を監視する。通信状況を示すパラメータは様々、考えられるが、例えば、通信帯域の空き状況、パケットロス率、遅延時間、遅延時間のばらつき、といったパラメータの少なくともいずれかを監視する。パケットロス率は、入力情報送信などのためにクライアント端末10から送出されたパケットのうち、サーバ30bへ到達しなかったパケットの割合を表す。例えばクライアント端末10において送出順にパケットに番号をつけておき、サーバ30bにおいて当該番号の抜けを検知して失われたパケット数をカウントすることによりパケットロス率を算出する。
 遅延時間は、クライアント端末10におけるユーザ操作の入力時刻、あるいは当該入力情報を送信するためのパケットの送出時刻と、当該入力情報をサーバ30bが受信した時刻との差である。例えば、ユーザ操作の入力時刻やパケットの送出時刻のタイムスタンプを入力情報とともにサーバ30に送信し、サーバ30において各入力情報を受信した時刻と比較することによって遅延時間が得られる。遅延時間のばらつきは、当該遅延時間の履歴をサーバ30で保持しておき、その変化の標準偏差を所定の時間間隔で算出するなどして求められる。
 通信状況監視部50は、上記パラメータのうち監視対象として設定されたパラメータの値を所定の時間間隔で求め、その結果を情報処理部36の調整部52に通知する。調整部52は、通知された値に基づき調整の必要性を判断し、情報処理部36における処理の内容をあらかじめ定めた規則に則り調整する。あるいはエンコード部38における処理に用いるエンコードパラメータの調整後の値を決定してエンコード部38に通知する。情報処理部36は調整部52による調整のもとゲーム処理を進捗させる。エンコード部38は、調整部52からの通知に従いエンコードパラメータを変化させてエンコードを実施する。
 ここで処理内容の調整とは、例えばゲームのルールを緩和させるなど、ゲームの内容自体を調整することである。例えばゲームパッドの押下が適正なタイミングでなされたときに得点が与えられるゲームにおいて、適正なタイミングとする判定基準の時間を延長する。これにより本来の適正なタイミングで押下したにも関わらずクライアント端末10からサーバ30bまでの通信遅延によりサーバ30ではタイミングを逸したと判定されユーザが不利益を被るのを防止する。
 本実施の形態はクライアント端末10における入力をネットワークを介してサーバ30bで受け付けて解釈するという構成を有するため、ユーザ操作のタイミングが結果に影響するようなゲームでは特に、通信状況によってゲームの状況が変化しかねない。上記のようにユーザ操作のタイミングがサーバ30bで遅れて検知される以外に、画像表示までに時間がかかり結果として次の操作が遅れてしまうことも考えられる。そこで上述とおり、適正なタイミングと判定する基準時間を通信状況に応じて調整することは特に有効である。ただし調整部52が行う処理内容の調整はこれに限らず、例えば戦闘ゲームで敵の数を減らしたり、キャラクタ移動時に目的地へ到達しやすくしたり、といったように、単に難易度を下げる調整でもよい。さらなる具体例については後述する。
 またエンコードパラメータとは、代表的にはビットレートや符号化方式などであるが、エンコード処理において調整可能なパラメータであり、処理時間の短縮に効果があるものであればよい。処理内容の調整、エンコードパラメータの調整のいずれの場合でも、具体的な調整対象は情報処理部36が実施する処理の内容、つまりゲームの内容や状況ごとに異なっていてよく、ゲームの作成者などがあらかじめ決定してよい。また調整の是非に加え、どの調整を行うか、その調整の度合いなどを通信状況に応じて適応的に変化させてよい。
 調整部52は決定した調整内容を、ゲームプレイの識別情報ごとに、調整時刻と対応づけて調整履歴記憶部54に格納する。ここで記録する調整時刻は、入力情報記憶部42に格納される入力情報ファイルと同様、ゲーム開始からの経過時間でもよいし、標準時などの時刻でもよい。調整部52は、情報処理部36がゲームを再現して2次データを作成する際、調整履歴記憶部54から対応する調整履歴をゲームプレイの識別情報に基づいて読み出し、ゲーム実行期間と同じ調整を行う。これにより、調整がなされたことも含めてゲームの様子を再現し、2次データを作成する。
 実施した調整のうち再現する必要のないものについては2次データ作成時の調整対象から除外する。例えばエンコードのビットレートを下げることにより、画質を犠牲にして送信速度を優先させた場合、高画質を基本とする2次データにおいてはあえてビットレートを下げなくてもよい。このように2次データ作成時に再現する必要のない調整については、調整履歴記憶部54に記録しなくてよい。
 次に図7の構成を有するサーバ30bの動作を説明する。図8はサーバ30bが、通信状況に応じた調整を行いながら情報処理を実施する処理手順を示すフローチャートである。このフローチャートを図3のフローチャートにおけるS38の処理に組み入れることにより、調整機能を実現しつつゲームを進捗させることができる。まず通信状況監視部50から通信状況を示すパラメータが逐次入力されると、調整部52はそれをあらかじめ設定された基準と比較し、調整が必要か否かを判定する(S82)。調整内容ごとに基準を設定しておき、それに応じてなすべき調整内容を選択するようにしてもよい。
 なお調整要否の判定は、通信状況監視部50が行ってもよい。また通信状況が悪化しても、それによって生じるパケットロスや通信時間のばらつきを既存の技術により隠蔽でき、ゲームに与える影響が小さいと判定できる範囲にあっては、調整を行わなくてもよい。例えばパケットロスに対しては、ストリーミングを冗長化することにより失われたパケットを復元できる。また通信時間のばらつきに対しては、クライアント端末10にバッファを設けることによりばらつき時間を吸収できる。これらの機構を別途設け、調整の前段階として活用してもよい。
 S82の判定の結果、調整の必要がなければ(S82のN)、調整せずにゲームを継続処理する(S90)。調整が必要であり(S82のY)、なすべき調整内容がビットレートの低減などエンコード処理に係る場合は(S84のY)、エンコードパラメータの調整後の値など具体的な調整内容とともにエンコード部38へ調整要求を行う(S86)。調整対象がエンコード処理に係るものでない場合は(S84のN)、情報処理部36における処理の内容自体を調整する(S88)。この処理は実際には、緩和対象のルールに対する設定値を切り替えたり、調整用に準備した別のプログラムへ処理を分岐したりする処理でよい。
 そしてそのように調整された状態で、情報処理部36はゲームを継続処理する(S90)。なお図8のフローチャートはエンコードパラメータの調整および処理内容の調整のいずれか一方を実施する例であるが、設定によっては両方を実施してもよい。上述のように通信状況を示すパラメータに対し複数の基準を設け、悪化が進むに従い調整対象を増やしていくようにしてもよい。なおS88において、情報処理部36が生成するゲーム画像の解像度を小さくしてもよい。
 図9は調整部52が行う処理内容の調整を定性的に説明するための図である。同図は、クライアント端末10におけるボタン等の押下に対し、適正なタイミングと考えられる判定基準の時間(以下、「判定時間」と呼ぶ)が逐次設定され、当該判定時間内に押下が検知されれば得点が与えられるようなゲームを想定している。このようなゲームとして、ゴルフクラブの振り上げ量と打球のタイミングによってボールの飛距離が決まるゴルフゲーム、楽曲に合わせてゲームパッドを押下することにより打楽器の演奏技術を競うゲーム、ゲームパッドの押下により仮想世界の敵に打撃を与える格闘ゲームなどが考えられる。
 同図は、同じ時間範囲の、ゲームの流れ(上段、中段)および通信状況(下段)を表している。横軸は経過時間を示しており、左から右に進むほど前の時刻を表す。まず上段は、調整をしない標準状態のゲームの流れ60であり、白抜きの矩形で表す時間範囲に判定時間62a、62bが設定されるとする。一方、ゲーム実行時、通信状況を表すパラメータPが最下段のグラフ66に示すように変化したとする。ここで値Pcは、それを超えると調整を必要とする判定基準である。時刻T、Tにおいて、パラメータPは判定基準PcをそれぞれA、Bだけ超過している。
 このとき調整部52は、まず時刻Tにおいて、超過分Aに対応する調整量A’だけ判定時間を延長する。結果としてその直後のタイミングで到来した判定時間62aは、中段のゲームの流れ63に示すように、元の判定時間62aと同時刻に始まり、調整量A’だけ延長された判定時間64aに調整される。同様に時刻Tにおいて、判定時間を超過分Bに対応する調整量B’だけ延長する。結果として、その直後のタイミングで到来した判定時間62bは、それと同時刻に始まり、調整量B’だけ延長された判定時間64bに調整される。なお各判定時間の始点についても、超過分A、Bに対応する調整量だけ遅延させてもよい。
 これにより、標準状態ではミスと判定される太線矢印のタイミングで押下が検知されても、得点が与えられるようになる。結果として、クライアント端末10では適正なタイミングで押下したにも関わらず、通信状況の悪化によりサーバ30での検知が遅れたためミスと判定されてしまった、といった不具合の発生を抑えることができる。判定基準PcからのパラメータPの超過分A、Bに対し、調整量A’、B’を決定するための規則は、パラメータPとして選択する変数やゲームの内容等に応じてあらかじめ設定しておく。
 例えば通信状況を示すパラメータPを遅延時間とした場合、調整量A’、B’はそれぞれ、判定基準Pcからの超過時間A、Bと等しくしてもよいし、さらに定数を加算したり乗算したりしてもよい。あるいは判定基準Pcを超過したら一律に同じ調整量で調整するようにしてもよい。同図は判定時間の長さを調整するのみであったが、通信状況の悪化がユーザの不利に働かないようにする、という思想の元では、ゲームの内容によって調整内容も様々考えられる。
 例えばレースゲームにおいて、コーナーでのハンドル操作のタイミングが遅れても、調整後の判定時間内であればコースアウトとしないように車の動きを調整するなど、判定時間の調整とそれに付随する処理の変更を同時に行ってもよい。なお同図は、通信状況が悪化するほど大きくなるパラメータPを用いた例であったが、逆の特性を有するパラメータPを用いる場合は当然、判定基準Pcを下回ったときに調整する。
 図10は2次データの生成時に調整内容を再現するときのサーバ30bの処理手順を示すフローチャートである。このフローチャートを図5のフローチャートにおけるS60の処理に組み入れることにより、調整処理を考慮した2次データを生成することができる。まず図5で説明したように2次データの作成指示がなされると、情報処理部36の調整部52は、作成対象のゲームプレイの実行中、再現が必要な調整がなされたか否かを確認する(S94)。ゲーム実行時、再現が必要な調整の履歴のみを調整履歴記憶部54に格納しておくことにより、調整がなされたか否かは調整履歴の有無によって判定できる。
 上述のように2次データにおいて再現が必要な調整とは、典型的にはゲームのルールを緩和するなど処理の内容自体の調整であるが、設定によってはエンコードパラメータの調整を再現することも考えられる。再現が必要な調整がなされていなければ(S94のN)、調整部52による調整は行わず、情報処理部36がゲームの処理を実施する(S96)。調整がなされていたら(S94のY)、調整部52は、調整履歴記憶部54から調整履歴を読み出し、情報処理部36によるゲーム処理中、実際の調整と同じタイミングで同じ調整を行う(S98)。例えば図9に示した調整がなされていた場合、2次データ作成処理におけるゲーム開始後、時刻T、Tに対応する時刻で、判定時間を調整量A’、B’だけ延長する調整を行う。
 調整を行う以外、情報処理部36およびエンコード部38の動作は、図5で説明したのと同様でよい。これにより、ルール緩和などの調整も含め1次データを正確にトレースしつつ、高品質な2次データを作成できる。なお調整履歴記憶部54に格納する調整履歴は、図9の例では調整量A’、B’といった具体的な調整量を調整時刻T、Tなどと対応づけたものでもよいし、通信状況を示すパラメータPの時間変化でもよい。後者の場合、ゲームの再現処理時に調整部52が再び調整量を導出して調整処理を再現する。
 このように通信状況に応じてゲームのルールを緩和させた場合、その再生画面を見たユーザは、本来ミスと判定されるべきタイミングの操作が適正と判定されることなどに違和感を覚えることが考えられる。そこで調整部52は2次データ生成時に、調整を再現するのに加えて、調整内容を表す文字情報などを画像内に表示してもよい。図11は調整内容を表示した2次データの画像の例を示している。
 画像90はゴルフゲームの一場面を表し、2次データを用いた再生時にクライアント端末10の表示部20に表示される。この例ではゲーム実行時、ユーザの操作によりスイングしたゴルフクラブがボールに当たるタイミングとして適正と判定される判定時間を20ミリ秒延長する調整がなされている。この場合、2次データ生成時には、調整後の判定時間で打球タイミングの判定をしたときに、調整内容を示すウィンドウ92が所定時間、表示されるように画像を生成する。同図の例では「ネットワークタイミング調整20ミリ秒」なる文字情報が、ゲーム画面上に重ねて表示されている。
 これにより、プレイヤ以外のユーザもゲーム実行時の状況を知ることができ、打球タイミングとその判定結果との対応に疑問を感じずにすむ。なお調整内容の表示は、1次データに対しても行ってよい。つまりゲームプレイ中のユーザや、それをリアルタイムで鑑賞しているユーザに対しても、ルールが緩和中である旨、どの程度の緩和がなされているか、といった情報を開示してもよい。また調整内容は、文字情報のみならず、図形で表したり、その色や動きで表したりしてもよい。
 ここで述べたルールを緩和させる態様は、プレイヤであるユーザにはクライアント端末10において通常通り操作を行わせ、通信状況に応じてサーバ30b側で判定時間を調整するものであった。一方、判定時間は変化させず、通信状況に応じてユーザの操作自体を調整するように促すことも考えられる。具体的には、入力情報がサーバ30bに到達するまでの時間を見越して操作タイミングを早めるようにユーザに促す表示を行う。
 図12はゲームを実行中、操作タイミングを早めるようにユーザに促す表示を追加したゲーム画像の例を示している。画像75は図11と同様のゴルフゲームの一場面を表し、ゲーム実行中にクライアント端末10の表示部20に表示される。
 このゴルフゲームでは、ゴルフクラブのバックスイング、ダウンスイングの一連の動きに対し、スイングの方向切り替えおよび打球のタイミングを、ゲームパッドの押下操作によって決定する。そして押下タイミングの目安として、現時点のクラブの振り幅を表すゲージ76を表示している。ゲージ76の左端の「100」と示された位置がフルスイング時の振り幅、ゲージ右端近傍の矢印で示された位置がジャストミート時の振り幅を表し、ゴルフクラブの動きに合わせてゲージ中の指標の端辺が、バックスイング期間は左方向へ、ダウンスイング期間は右方向へ移動する。
 フルスイングによって飛距離を長くしたい場合、標準状態では、フルスイングの振り幅でゲームパッドを押下し、ジャストミートの振り幅で再び押下するのが望ましい。一方、通信状況が悪化した場合はサーバ30bでの検知までの時間を考慮して、押下のタイミングをそれぞれ早める必要がある。そこで調整部52は、スイングの方向切り替え操作を行う好適なタイミングを示すマーク78a、打球操作を行う好適なタイミングを示すマーク78bをゲージ76に付加する。
 つまりマーク78aのタイミングでユーザがスイングの方向を切り替えるように操作すると、サーバ30ではフルスイングのタイミングで当該操作が検知される。またマーク78bのタイミングで打球操作を行うと、サーバ30ではジャストミートのタイミングで当該操作が検知される。これにより判定時間を変化させずに、通信状況の悪化をユーザによる操作タイミングの調整によって吸収することができる。このようにしてもゲームの難易度自体はあまり変化しないため、結果として、通信状況の悪化によるユーザの不利益の発生を抑えることができる。なおこの態様では判定時間の調整を行っていないため、2次データの画像はマーク78a、78bを表示しない通常のものとしてよい。
 図13は図8のフローチャートにおけるS86の処理によって、エンコードパラメータを調整する態様を説明するための図である。最も単純な例として、調整が必要な状況が生じた際は、画像全体のビットレートを一律に低下させることが考えられる。一方、1つのゲーム画像であっても、領域によって情報の質や注目度が異なる場合、当該領域ごとに画質を制御することも考えられる。図13の例ではこのように、領域によってビットレートを変化させる態様を示している。
 画像80はカーレースゲームの一場面を表し、仮想世界のコース上を走る車82をユーザが操作する。調整の必要がない場合は画像全体を同じビットレートでエンコードするのに対し、調整時は、注目度が高いと考えられる車82の前方、すなわち画面の中央付近の所定範囲の領域84のビットレートはそのままとし、その他の領域のビットレートを低下させる。調整部52は領域84の位置や大きさに係る情報、その他の領域の調整後のビットレートをエンコード部38に通知することによりエンコードを実施させる。
 これによりゲーム実行時に、通信状況の悪化に応じてクライアント端末10に送信すべき画像のデータサイズを小さくしながらも、ユーザの操作に影響を与える可能性が高い領域については画質を維持することができる。通信状況の悪化の度合いに応じて、領域84のサイズを変化させたり、その他の領域のビットレートをさらに調整したりしてもよい。また場合によっては領域84についても、所定の範囲内でビットレートを低下させてもよい。また構図の変化に応じて、ビットレートを保つ領域84を移動させてもよい。
 図13はレースゲームの例であったがその他のゲームであっても同様に、ビットレートを可能な限り維持したい領域をゲームの内容に応じてあらかじめ決定し、調整部52が調整時に参照できるようにしておく。ビットレートを維持すべき領域として、注目度が高い領域、重要な情報が含まれている領域、画質の低下によってユーザの操作に支障を来す領域などが考えられる。
 具体的には、ロールプレイングゲームなどユーザがキャラクタや視点を動かすゲームの場合は当該キャラクタを含む所定範囲の領域、FPS(Fist Person Shooting)またはTPS(Third Person Shooting)における照準近傍の所定範囲の領域などが考えられる。そのほか、現在のステージやスコア、テキストチャットなどの文字情報を表示する領域、ゲーム中に表示するポップアップウィンドウの領域、ユーザ操作により仮想の視点が移動した際、新たに視野に入った領域、などが考えられる。
 以上述べた本実施の形態によれば、クライアント端末におけるユーザ操作に応じてサーバ側でゲーム画像を生成しそのデータをクライアント端末に送信するシステムにおいて、ユーザ操作の内容をサーバ側で記録しておく。そして記録したユーザ操作の内容に基づき適当なタイミングでゲームを再度実行してゲーム画像を生成し直し保存しておくことにより、複数のユーザで当該画像を共有したり再確認したりする際に用いる。これにより、初回実行時と再実行時とで、同じゲームの様子でありながら、画像の品質などを独立に制御することができ、状況に応じた最適な条件でサービスを提供できる。
 具体的には、初回実行時は応答性を優先して解像度やエンコード時のビットレートを低く抑え、再実行時には時間的な制約がないことから、初回実行時より高い解像度やビットレートとする。これにより、初回実行時にプレイヤが望む応答性と、ゲーム再生時に鑑賞者が望む画像の質とを両立させることができる。また再実行時には、エンコードの処理時間より圧縮率を優先させることにより、画像データのサイズ自体を小さくすることができ、再生時の通信帯域やサーバにおける記憶領域の節約にも寄与する。
 また初回実行時は、通信状況に応じてゲームのルールや生成する画像の解像度などの処理内容、ビットレートなどのエンコードパラメータを調整する。これにより、通信状況の悪化によって応答性が悪くなり得点が伸びないといったプレイヤの不利益を軽減することができる。また通信状況の悪化に備え、解像度やビットレートを最初から小さくする必要がなくなるため、通信状況が良好な状態にあっては、ゲーム実行時であっても高画質の表示が可能となる。初回実行時に解像度やビットレートを調整しても、再実行によって画像を作成し直すことにより、再生時の画質には影響しない。結果として、通信状況によらず、プレイヤのニーズ、鑑賞者のニーズの双方に対応できるシステムを実現できる。
 以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
 例えば図7で示したサーバ30bは、通信状況に応じた調整機能と、2次データの作成機能の双方を備えていたが、前者のみを備えたサーバとしてもよい。このようなサーバであっても、ゲーム実行時に、通信状況の悪化による応答性の低下を防止しながら、可能な限り高画質の画像が表示できる。
1 情報処理システム、 10 クライアント端末、 12 入力部、 14 入力情報送信部、 16 データ受信部、 18 デコード部、 20 表示部、 30 サーバ、 32 入力情報受信部、 34 2次データ作成指示部、 36 情報処理部、 38 エンコード部、 40 データ送信部、 42 入力情報記憶部、 44 セーブデータ記憶部、 46 出力データ記憶部、 50 通信状況監視部、 52 調整部、 54 調整履歴記憶部。
 以上のように本発明は情報処理システム、プロキシサーバ、クラウドコンピューティングなどの情報処理サービスに利用可能である。

Claims (18)

  1.  クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供サーバであって、
     前記ユーザ操作に係る情報を入力情報として取得する入力情報受信部と、
     前記入力情報の履歴を記憶する入力情報記憶部と、
     前記入力情報受信部が取得した入力情報に基づき即時、情報処理を行うことにより、前記ユーザ操作に応じて送信すべき1次出力データを生成するとともに、前記入力情報記憶部から読み出した入力情報の履歴に基づき2度目の情報処理を行うことにより出力データを2次出力データとして生成し直す情報処理部と、
     前記2次出力データを記憶する出力データ記憶部と、
     前記情報処理部が生成した前記1次出力データ、または前記出力データ記憶部から読み出した前記2次出力データを、要求に応じてクライアント端末に送信するデータ送信部と、
     を備えることを特徴とする出力データ提供サーバ。
  2.  前記情報処理部は、出力データに含まれる画像の解像度およびビットレートの少なくとも一方を、前記1次出力データと前記2次出力データとで独立に設定して生成することを特徴とする請求項1に記載の出力データ提供サーバ。
  3.  前記情報処理部は、前記1次出力データを生成中、前記クライアント端末との通信状況に応じて、当該1次出力データに含まれる画像の解像度およびビットレートの少なくとも一方を適応的に調整する一方、当該調整の有無に関わらず、所定の解像度およびビットレートで前記2次出力データを生成することを特徴とする請求項1または2に記載の出力データ提供サーバ。
  4.  前記情報処理部は、前記1次出力データを生成中、前記クライアント端末との通信状況に応じて情報処理の内容を変化させるとともに当該変化の履歴を記録し、前記2度目の情報処理において、当該変化の履歴に基づき、同様に情報処理の内容を変化させることを特徴とする請求項1から3のいずれかに記載の出力データ提供サーバ。
  5.  前記情報処理部は、前記1次出力データを生成中、情報処理の内容を変化させたら、前記2次出力データに含まれる画像に、変化の内容を表示することを特徴とする請求項4に記載の出力データ提供サーバ。
  6.  前記情報処理部は、前記ユーザ操作に応じてゲームを進捗させる情報処理を行い、当該ユーザのクライアント端末に即時表示するためのゲームの画像データを前記1次出力データとして生成し、当該ゲーム終了後、前記2次出力データを生成して前記出力データ記憶部に格納することを特徴とする請求項1から5のいずれかに記載の出力データ提供サーバ。
  7.  前記出力データ記憶部はさらに前記1次出力データを格納し、
     前記データ送信部は、前記2次出力データが生成されるまでは、前記クライアント端末の要求に応じて前記1次出力データを前記出力データ記憶部から読み出して送信することを特徴とする請求項1から6のいずれかに記載の出力データ提供サーバ。
  8.  クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供サーバであって、
     前記ユーザ操作に係る情報を入力情報として取得する入力情報受信部と、
     前記入力情報に基づき情報処理を行うことにより出力データを生成する情報処理部と、
     前記出力データをクライアント端末に送信するデータ送信部と、を備え、
     前記情報処理部は、前記クライアント端末との通信状況に応じて情報処理の内容および出力データの品質の少なくともいずれかを適応的に調整することを特徴とする出力データ提供サーバ。
  9.  前記情報処理部は、前記ユーザ操作に応じてゲームを進捗させる情報処理を行い、前記通信状況が所定の基準より悪化したとき、当該ゲームのルールを緩和するように情報処理の内容を調整することを特徴とする請求項8に記載の出力データ提供サーバ。
  10.  前記情報処理部は、ユーザの操作タイミングが所定の判定時間内に検知されたか否かの判定処理を含むゲームを進捗させる情報処理を行い、前記通信状況が所定の基準より悪化したとき、悪化前より早いタイミングでの操作を促す表示を、出力データに含まれるゲームの画像に加えることを特徴とする請求項8に記載の出力データ提供サーバ。
  11.  前記情報処理部は生成した前記出力データを、適応的に調整した品質でエンコードして前記データ送信部に供給するとともに、当該出力データを前記調整の有無に関わらず所定の品質でエンコードし、後のクライアント端末への送信に備えて記憶装置に格納することを特徴とする請求項8に記載の出力データ提供サーバ。
  12.  前記情報処理部は、前記通信状況が所定の基準より悪化したとき、出力データに含まれる画像の解像度またはビットレートを、部分的に低下させることを特徴とする請求項8から11のいずれかに記載の出力データ提供サーバ。
  13.  サーバが、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供方法であって、
     前記ユーザ操作に係る情報を入力情報として取得するステップと、
     前記入力情報の履歴をメモリに記憶するステップと、
     前記入力情報に基づき即時、情報処理を行うことにより、前記ユーザ操作に応じて送信すべき1次出力データを生成し、クライアント端末に送信するステップと、
     前記メモリから読み出した入力情報の履歴に基づき2度目の情報処理を行うことにより出力データを2次出力データとして生成し直し記憶装置に格納するステップと、
     要求に応じて前記記憶装置から読み出した前記2次出力データをクライアント端末に送信するステップと、
     を含むことを特徴とする出力データ提供方法。
  14.  サーバが、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する出力データ提供方法であって、
     前記ユーザ操作に係る情報を入力情報として取得するステップと、
     前記入力情報に基づき情報処理を行うことにより出力データを生成するステップと、
     前記出力データをクライアント端末に送信するステップと、を含み、
     前記出力データを生成するステップは、前記クライアント端末との通信状況に応じて情報処理の内容および出力データの品質の少なくともいずれかを適応的に調整することを特徴とする出力データ提供方法。
  15.  コンピュータに、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する機能を実現させるコンピュータプログラムであって、
     前記ユーザ操作に係る情報を入力情報として取得する機能と、
     前記入力情報の履歴をメモリに記憶する機能と、
     前記入力情報に基づき即時、情報処理を行うことにより、前記ユーザ操作に応じて送信すべき1次出力データを生成し、クライアント端末に送信する機能と、
     前記メモリから読み出した入力情報の履歴に基づき2度目の情報処理を行うことにより出力データを2次出力データとして生成し直し記憶装置に格納する機能と、
     要求に応じて前記記憶装置からみ出した前記2次出力データをクライアント端末に送信する機能と、
     を前記コンピュータに実現させることを特徴とするコンピュータプログラム。
  16.  コンピュータに、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する機能を実現させるコンピュータプログラムであって、
     前記ユーザ操作に係る情報を入力情報として取得する機能と、
     前記入力情報に基づき情報処理を行うことにより出力データを生成する機能と、
     前記出力データをクライアント端末に送信する機能と、
     を前記コンピュータに実現させ、
     前記出力データを生成する機能は、前記クライアント端末との通信状況に応じて情報処理の内容および出力データの品質の少なくともいずれかを適応的に調整することを特徴とするコンピュータプログラム。
  17.  コンピュータに、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する機能を実現させるコンピュータプログラムを記録した記録媒体であって、
     前記ユーザ操作に係る情報を入力情報として取得する機能と、
     前記入力情報の履歴をメモリに記憶する機能と、
     前記入力情報に基づき即時、情報処理を行うことにより、前記ユーザ操作に応じて送信すべき1次出力データを生成し、クライアント端末に送信する機能と、
     前記メモリから読み出した入力情報の履歴に基づき2度目の情報処理を行うことにより出力データを2次出力データとして生成し直し記憶装置に格納する機能と、
     要求に応じて前記記憶装置からみ出した前記2次出力データをクライアント端末に送信する機能と、
     を前記コンピュータに実現させるコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
  18.  コンピュータに、クライアント端末とネットワークを介して接続し、当該クライアント端末におけるユーザ操作に係る情報を受信して情報処理を行い、その結果得られる出力データを、それを要求するクライアント端末に送信する機能を実現させるコンピュータプログラムを記録した記録媒体であって、
     前記ユーザ操作に係る情報を入力情報として取得する機能と、
     前記入力情報に基づき情報処理を行うことにより出力データを生成する機能と、
     前記出力データをクライアント端末に送信する機能と、
     を前記コンピュータに実現させ、
     前記出力データを生成する機能は、前記クライアント端末との通信状況に応じて情報処理の内容および出力データの品質の少なくともいずれかを適応的に調整するコンピュータプログラムを記録したことを特徴とするコンピュータにて読み取り可能な記録媒体。
PCT/JP2013/003699 2013-06-12 2013-06-12 出力データ提供サーバおよび出力データ提供方法 WO2014199412A1 (ja)

Priority Applications (9)

Application Number Priority Date Filing Date Title
CN201380077217.6A CN105264502B (zh) 2013-06-12 2013-06-12 输出数据提供服务器和输出数据提供方法
US14/890,154 US10075525B2 (en) 2013-06-12 2013-06-12 Output data providing server and output data providing method
KR1020157034662A KR102096300B1 (ko) 2013-06-12 2013-06-12 출력 데이터 제공 서버 및 출력 데이터 제공 방법
PCT/JP2013/003699 WO2014199412A1 (ja) 2013-06-12 2013-06-12 出力データ提供サーバおよび出力データ提供方法
JP2015522256A JP6268174B2 (ja) 2013-06-12 2013-06-12 出力データ提供サーバおよび出力データ提供方法
KR1020207006360A KR102112998B1 (ko) 2013-06-12 2013-06-12 출력 데이터 제공 서버 및 출력 데이터 제공 방법
EP19150241.8A EP3498350B1 (en) 2013-06-12 2013-06-12 Output data providing server and output data providing method
EP13886662.9A EP3009938B1 (en) 2013-06-12 2013-06-12 Output data providing server and output data providing method
US16/100,756 US10511666B2 (en) 2013-06-12 2018-08-10 Output data providing server and output data providing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/003699 WO2014199412A1 (ja) 2013-06-12 2013-06-12 出力データ提供サーバおよび出力データ提供方法

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US14/890,154 A-371-Of-International US10075525B2 (en) 2013-06-12 2013-06-12 Output data providing server and output data providing method
US16/100,756 Continuation US10511666B2 (en) 2013-06-12 2018-08-10 Output data providing server and output data providing method

Publications (1)

Publication Number Publication Date
WO2014199412A1 true WO2014199412A1 (ja) 2014-12-18

Family

ID=52021748

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/003699 WO2014199412A1 (ja) 2013-06-12 2013-06-12 出力データ提供サーバおよび出力データ提供方法

Country Status (6)

Country Link
US (2) US10075525B2 (ja)
EP (2) EP3009938B1 (ja)
JP (1) JP6268174B2 (ja)
KR (2) KR102112998B1 (ja)
CN (1) CN105264502B (ja)
WO (1) WO2014199412A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426209A (zh) * 2017-07-24 2017-12-01 终极(北京)科技有限公司 一种vr一体机的共享系统及方法

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5602963B1 (ja) * 2014-01-30 2014-10-08 グリー株式会社 ゲーム管理プログラム、ゲーム管理方法及びゲーム管理システム
JP2015150172A (ja) 2014-02-13 2015-08-24 任天堂株式会社 情報共有システム、情報処理装置、プログラム及び情報共有方法
JP6348726B2 (ja) * 2014-02-13 2018-06-27 任天堂株式会社 情報共有システム、情報処理装置、プログラム及び情報共有方法
CN104135395B (zh) * 2014-03-10 2015-12-30 腾讯科技(深圳)有限公司 Idc网络中数据传输质量监控方法和系统
JP6439414B2 (ja) * 2014-12-01 2018-12-19 富士通株式会社 通信装置
US9860535B2 (en) * 2015-05-20 2018-01-02 Integrated Device Technology, Inc. Method for time-dependent visual quality encoding for broadcast services
US10282108B2 (en) 2016-08-31 2019-05-07 Micron Technology, Inc. Hybrid memory device using different types of capacitors
US10986232B2 (en) * 2017-06-16 2021-04-20 Genesys Telecommunications Laboratories, Inc. Systems and methods for sizing modular routing applications
JP7040541B2 (ja) * 2018-02-07 2022-03-23 日本電気株式会社 情報処理装置、制御方法、及びプログラム
US20220184492A1 (en) * 2019-03-18 2022-06-16 Google Llc Timing compensation and correlation of input with frames in a video game
US11115458B2 (en) * 2019-12-24 2021-09-07 Atlassian Pty Ltd. Monitoring in composite request systems

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002028373A (ja) * 2000-07-12 2002-01-29 Sega Corp 通信ゲームシステム、通信ゲーム方法、及び記録媒体
JP2007274443A (ja) * 2006-03-31 2007-10-18 Canon Inc 画像伝送方法、送信装置、受信装置及び画像伝送システム
JP2009157771A (ja) * 2007-12-27 2009-07-16 Ntt Communications Kk 画面表示用情報提供装置、画面表示用情報提供方法、及びプログラム
JP2010020159A (ja) 2008-07-11 2010-01-28 Sony Computer Entertainment Inc 画面出力コンバータ、ディスプレイ装置、ディスプレイシステム、および画面表示方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6475090B2 (en) * 2001-03-29 2002-11-05 Koninklijke Philips Electronics N.V. Compensating for network latency in a multi-player game
US8366552B2 (en) * 2002-12-10 2013-02-05 Ol2, Inc. System and method for multi-stream video compression
WO2005061067A1 (en) * 2003-12-15 2005-07-07 Nokia Corporation Method and device for difficulty level adaptation of a network based game
US7803054B1 (en) * 2004-03-31 2010-09-28 Microsoft Corporation Multi-vehicle cross-network coordination
US7458894B2 (en) * 2004-09-15 2008-12-02 Microsoft Corporation Online gaming spectator system
US7500916B2 (en) * 2005-11-07 2009-03-10 Microsoft Corporation Game strategy analysis tool generating a two dimensional image overlaid with telemetry data
JP5436794B2 (ja) 2008-04-04 2014-03-05 株式会社バンダイナムコゲームス ゲーム動画配信システム
US20090318232A1 (en) * 2008-06-24 2009-12-24 Motorola, Inc. Method and system for controlling load in a communication network
KR20100020159A (ko) 2008-08-12 2010-02-22 최윤실 온수 가열조
EP2400395B1 (en) * 2009-02-19 2014-05-14 Nec Corporation Information processing device, information processing system, information processing method, and program recording medium
JP5550248B2 (ja) * 2009-03-19 2014-07-16 株式会社ソニー・コンピュータエンタテインメント プログラム、情報記憶媒体、画像処理装置、画像処理方法及びデータ構造
JP2011147562A (ja) * 2010-01-20 2011-08-04 Konami Digital Entertainment Co Ltd 情報処理装置、情報処理方法、プログラム、ならびに、ゲームシステム
JP5520190B2 (ja) 2010-10-20 2014-06-11 株式会社ソニー・コンピュータエンタテインメント 画像処理システム、画像処理方法、動画像送信装置、動画像受信装置、プログラム及び情報記憶媒体
JP5918618B2 (ja) * 2011-06-03 2016-05-18 任天堂株式会社 情報処理プログラム、情報処理装置、情報処理システム、および情報処理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002028373A (ja) * 2000-07-12 2002-01-29 Sega Corp 通信ゲームシステム、通信ゲーム方法、及び記録媒体
JP2007274443A (ja) * 2006-03-31 2007-10-18 Canon Inc 画像伝送方法、送信装置、受信装置及び画像伝送システム
JP2009157771A (ja) * 2007-12-27 2009-07-16 Ntt Communications Kk 画面表示用情報提供装置、画面表示用情報提供方法、及びプログラム
JP2010020159A (ja) 2008-07-11 2010-01-28 Sony Computer Entertainment Inc 画面出力コンバータ、ディスプレイ装置、ディスプレイシステム、および画面表示方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3009938A4

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107426209A (zh) * 2017-07-24 2017-12-01 终极(北京)科技有限公司 一种vr一体机的共享系统及方法

Also Published As

Publication number Publication date
EP3009938A4 (en) 2017-06-07
KR102112998B1 (ko) 2020-05-20
EP3498350A1 (en) 2019-06-19
US20180352035A1 (en) 2018-12-06
US10511666B2 (en) 2019-12-17
EP3498350B1 (en) 2021-03-03
US20160112515A1 (en) 2016-04-21
CN105264502A (zh) 2016-01-20
EP3009938B1 (en) 2019-03-06
EP3009938A1 (en) 2016-04-20
US10075525B2 (en) 2018-09-11
CN105264502B (zh) 2019-06-14
KR102096300B1 (ko) 2020-04-02
JPWO2014199412A1 (ja) 2017-02-23
KR20160018523A (ko) 2016-02-17
JP6268174B2 (ja) 2018-01-24
KR20200027059A (ko) 2020-03-11

Similar Documents

Publication Publication Date Title
JP6268174B2 (ja) 出力データ提供サーバおよび出力データ提供方法
JP7441786B2 (ja) ゲームシステムにおける表示ラグの検出および補償
EP2891145B1 (en) Method and apparatus for decreasing presentation latency
JP5957760B2 (ja) 映像音声処理装置
KR102352679B1 (ko) 다중 경로 전송 제어 프로토콜을 지원하는 디바이스 및 디바이스에서 영상 데이터를 스트리밍으로 수신하는 방법
JP2012521269A5 (ja)
US20080148327A1 (en) Method and Apparatus for Providing Adaptive Trick Play Control of Streaming Digital Video
TW201026064A (en) Method for audio and video control response and bandwidth adaptation based on network streaming application and server using the same
CN108881894B (zh) Vr多媒体的体验质量确定方法及装置
US10389785B2 (en) Method for adaptively streaming an audio/visual material
TWI390980B (zh) A content reproduction apparatus, a content reproduction method, a content reproduction program, and a content reproduction system
JP6987567B2 (ja) 配信装置、受信装置及びプログラム
WO2021111988A1 (ja) 動画再生装置、動画再生システム、および動画再生方法
KR20230138052A (ko) 선택적 모션-보상된 프레임 보간
US20190044992A1 (en) Transmission apparatus that is capable of maintaining transmission quality in switching transmission path, reception apparatus, transmission and reception system, method of controlling transmission apparatus and reception apparatus, and storage medium
JP4528022B2 (ja) 映像配信方法およびシステム
WO2023032308A1 (ja) 情報処理装置、情報処理方法、情報処理システム
KR101762754B1 (ko) 범용 플러그 앤 플레이 네트워크에서 미디어 배속 재생 방법 및 장치
WO2018173312A1 (ja) 仮想現実視聴システム、再生同期方法および仮想現実視聴用プログラム
JP2016174273A (ja) 画像処理装置、画像処理システム、及び、プログラム
JP2021022930A (ja) 動画像表示システム
JP2017182713A (ja) サーバ装置、情報処理方法およびプログラム
JP2010219592A (ja) コンテンツ配信サーバ及びコンテンツ配信システム

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201380077217.6

Country of ref document: CN

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

Ref document number: 13886662

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2015522256

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14890154

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2013886662

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20157034662

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE