System and Method for Compressing Video Based on Latency Measurements and Other Feedback
First Claim
1. A method comprising:
- generating a user interface in a hosting service control system;
transmitting data for the user interface to a client device, the hosting service control system having communication with a database of user information and enabling communication between the client device and one or more game servers;
receiving a video game selection from the user interface displayed on a display device of the client device;
assigning a first game server to the client device and routing the video game selection to the first game server, the first game server provided with communication with the client device over a network;
receiving a first control signal at the first game server, the first control signal corresponding to a plurality of user inputs to the client device as the user is playing the selected video game;
executing the selected video game on the first game server corresponding to the first control signal received from the client device, the execution of the selected video game is configured to generate a plurality of video frames;
encoding the plurality of video frames in a first portion of a shared hardware compression to produce a corresponding plurality of encoded video frames, wherein some of the plurality of encoded video frames depend on a preceding one of the plurality of encoded video frames;
transmitting a first encoded video frame and a second encoded video frame of the plurality of encoded video frames to the client device, the client device including a decoder for decoding the plurality of encoded video frames;
receiving a first feedback signal from the decoder, the first feedback signal being received by the first game server, the first feedback signal identifying that the first encoded video frame was received by the decoder and that identifying the second encoded video frame was not received the decoder;
adjusting a dependency of a third encoded video frame of the plurality of encoded video frames to produce an adjusted third encoded video frame, wherein the adjusted third encoded video frame is changed to depend from the first encoded video frame; and
transmitting the adjusted third encoded video frame to the client device for decoding by the decoder to produce decoded video frames to be rendered on the display of the client device as the user plays the video game, wherein the first game server is configured to stream additional encoded video frames so that the video game is played in a streaming mode and execution of the selected video game by the first game server that is remote from the client device.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and method of playing a video game in a streaming mode includes executing a selected video game on an assigned game server, receiving execution control signals corresponding to user inputs to a client device to generate multiple video frames. Encoding the video frames in a shared hardware compression. Some of the encoded video frames depend on a preceding frame. A first and a second encoded video frame are transmitted to the client device. A first feedback signal from a decoder in the client device identifies that the second encoded video frame was not received the decoder. A third encoded video frame dependency is adjusted to produce an adjusted third encoded video frame that depends from the first encoded video frame and the adjusted third encoded video frame is transmitted to the client device.
20 Citations
16 Claims
-
1. A method comprising:
-
generating a user interface in a hosting service control system; transmitting data for the user interface to a client device, the hosting service control system having communication with a database of user information and enabling communication between the client device and one or more game servers; receiving a video game selection from the user interface displayed on a display device of the client device; assigning a first game server to the client device and routing the video game selection to the first game server, the first game server provided with communication with the client device over a network; receiving a first control signal at the first game server, the first control signal corresponding to a plurality of user inputs to the client device as the user is playing the selected video game; executing the selected video game on the first game server corresponding to the first control signal received from the client device, the execution of the selected video game is configured to generate a plurality of video frames; encoding the plurality of video frames in a first portion of a shared hardware compression to produce a corresponding plurality of encoded video frames, wherein some of the plurality of encoded video frames depend on a preceding one of the plurality of encoded video frames; transmitting a first encoded video frame and a second encoded video frame of the plurality of encoded video frames to the client device, the client device including a decoder for decoding the plurality of encoded video frames; receiving a first feedback signal from the decoder, the first feedback signal being received by the first game server, the first feedback signal identifying that the first encoded video frame was received by the decoder and that identifying the second encoded video frame was not received the decoder; adjusting a dependency of a third encoded video frame of the plurality of encoded video frames to produce an adjusted third encoded video frame, wherein the adjusted third encoded video frame is changed to depend from the first encoded video frame; and transmitting the adjusted third encoded video frame to the client device for decoding by the decoder to produce decoded video frames to be rendered on the display of the client device as the user plays the video game, wherein the first game server is configured to stream additional encoded video frames so that the video game is played in a streaming mode and execution of the selected video game by the first game server that is remote from the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method comprising:
-
receiving a video game selection from a client device, the video game selection received by a hosting service control system having communication with a database of user information and enabling communication between the client device and one or more game servers; assigning a first game server to the client device and routing the video game selection to the first game server, the first game server provided with communication with the client device over a network; receiving a first control signal at the first game server, the first control signal corresponding to a plurality of user inputs to the client device as the user is playing the selected video game; executing the selected video game on the first game server corresponding to the first control signal received from the client device, the execution of the selected video game is configured to generate a plurality of video frames; encoding the plurality of video frames in a first portion of a shared hardware compression to produce a corresponding plurality of encoded video frames, wherein some of the plurality of encoded video frames depend on a preceding one of the plurality of encoded video frames; transmitting a first encoded video frame and a second encoded video frame of the plurality of encoded video frames to the client device, the client device including a decoder for decoding the plurality of encoded video frames; receiving a first feedback signal from the decoder, the first feedback signal being received by the first game server, the first feedback signal identifying that the first encoded video frame was received by the decoder and that identifying the second encoded video frame was not received the decoder; adjusting a dependency of a third encoded video frame of the plurality of encoded video frames to produce an adjusted third encoded video frame, wherein the adjusted third encoded video frame is changed to depend from the first encoded video frame; and transmitting the adjusted third encoded video frame to the client device for decoding by the decoder to produce decoded video frames to be rendered on a display of the client device as the user plays the video game, wherein the first game server is configured to stream additional encoded video frames so that the video game is played in a streaming mode and execution of the selected video game by the first game server that is remote from the client device.
-
-
16. A system for hosting a streaming on-line video game comprising:
-
a hosting service control system configured to receive a video game selection from a client device and to enable communication between the client device and one or more game servers; a database of user information in communication with the hosting service control system; a first game server in communication with the client device over a network, wherein the hosting service control system assigns the client device to the first game server and routes the video game selection to the first game server, the first game server configured to receive a first control signal, the first control signal corresponding to a plurality of user inputs to the client device as the user is playing the selected video game and to execute the selected video game corresponding to the first control signal, the execution of the selected video game is configured to generate a plurality of video frames; and a shared hardware compression including a first portion of the shared hardware compression assigned to the first game server for encoding the plurality of video frames and to produce and transmit a corresponding plurality of encoded video frames, wherein some of the plurality of encoded video frames depend on a preceding one of the plurality of encoded video frames, wherein a first encoded video frame and a second encoded video frame of the plurality of encoded video frames are transmitted to the client device, the client device including a decoder corresponding to the shared hardware compression for decoding the plurality of transmitted, encoded video frames and to produce a first feedback signal from the decoder, the first feedback signal being received by the first game server, the first feedback signal identifying that the first encoded video frame was received by the decoder and that identifying the second encoded video frame was not received the decoder; wherein the shared hardware compression being configured to adjust a dependency of a third encoded video frame of the plurality of encoded video frames to produce an adjusted third encoded video frame, wherein the adjusted third encoded video frame is changed to depend from the first encoded video frame and transmit the adjusted third encoded video frame to the client device for decoding by the decoder to produce decoded video frames to be rendered on a display of the client device as the user plays the video game, wherein the first game server is configured to stream additional encoded video frames so that the video game is played in a streaming mode and execution of the selected video game by the first game server that is remote from the client device.
-
Specification