Qualified video delivery
AssigneeSony Interactive Entertainment America LLC
InventorsDavid Perry, Andrew Buchanan Gault, Rui Filipe Andrade Pereira
Life of this patent
Estimating the term…
Abstract
A video server is configured to provide streaming video to players of computer games over a computing network. The video server can provided video of different games to different players simultaneously. This is accomplished by rendering several video streams in parallel using a single GPU and shared memory. The output of the GPU is provided to graphics processing pipelines that are each associated with a specific client/player and are dynamically allocated as needed. A client qualifier may be used to assure that only clients capable of presenting the streaming video to a player at a minimum level of quality receive the video stream.
Claims12
A game serving system having a plurality of servers for executing one or more games to be streamed to remote clients that connect to the game serving system for playing games, the game serving system comprising:
- a first game application configured to execute a first game instance responsive to game commands received from a first client, the first game application interfaced with a first virtual video driver;
- a second game application stored on a computer readable medium and configured to execute a second game instance responsive to game commands received from a second client, the second application interfaced with a second virtual video driver;
- a non-virtual video driver being interfaced with the first and second virtual video drivers, such that the non-virtual video driver receives an output of the first and second virtual video drivers;
- a graphics processing unit (GPU) configured to generate a first video stream by rendering the first game instance and a second video stream by rendering the second game instance;
- a shared memory configured to receive the first video stream and the second video stream;
- a first encoding pipeline configured to encode the first video stream, obtained from said shared memory;
- a second encoding pipeline configured to encode the second video stream, obtained from said shared memory;
- and
- an output configured to provide the first video stream to the first client and the second video stream to the second client.
A game serving system comprising:
- a first game application stored on a computer readable medium and configured to execute a first game instance responsive to game commands received from a first client;
- a second game application stored on a computer readable medium and configured to execute a second game instance responsive to game commands received from a second client;
- a video driver configured to receive different game environments from the first game application and from the second game application;
- a graphics processing unit (GPU) configured to generate a first video frame by rendering the game environment from the first game application and to generate a second video frame by rendering the game environment from the second game application;
- a memory shared used by the video driver and the GPU to generate the first video frame and the second video frame that are stored to the memory as belonging to respective ones of the game environments of the first and second game applications;
- an output configured to provide a first video stream that includes the first video frame to the first client and a second video stream that includes the second video frame to the second client.
A game serving system comprising:
- a first game application stored on a computer readable medium and configured to execute a first game instance responsive to game commands received from a first client;
- a second game application stored on a computer readable medium and configured to execute a second game instance responsive to game commands received from a second client;
- a graphics processing unit (GPU) configured to generate a first video stream for the first game instance and a second video stream for the second game instance;
- a shared memory configured to receive the first and second video streams, each of the first and second video streams being stored in the shared memory;
- logic configured to provision a first encoder pipeline and a second encoder pipeline, the first encoder pipeline including a dynamically allocated encoder selected based on qualifications of the first client, the second encoder pipeline including a dynamically allocated encoder selected based on qualifications of the second client;
- one or more processors configured to execute a first encoder pipeline and a second encoder pipeline, the first game application, and the second game application, wherein each of the first and second encoder pipelines respectively process the first and second video streams as transferred from the shared memory;
- and
- an output configured to provide a first video stream generated by the first encoder pipeline to the first client and a second video stream generated by the second encoder pipeline to the second client.
Dependencies are inferred from the claim text.