System and Method for Selecting a Video Encoding Format Based on Feedback Data
First Claim
1. A computer-implemented method for low-latency video game or application hosting and video compression comprising:
- generating control signals from a client device in response to an input device of the client device being actuated by the user as the user is playing the low latency video game or using the application;
transmitting the control signals from the client device to a first hosting service center over one or more networks;
executing a video game or application on one or more servers at the first hosting service center in response to the control signals received from the client device as the user plays the video game or uses the application;
generating video of the executed video game or application by the one or more servers, the video comprising a plurality of video frames;
encoding the plurality of video frames or portions thereof of the video stream to generate a low-latency encoded video stream;
transmitting the low-latency encoded video stream to the client device over the one or more networks;
decoding and displaying the video on the client device;
wherein the operations of generating and transmitting the control signals, executing the video game or application, generating video, encoding the plurality of video frames, and transmitting the low-latency encoded video stream over the one or more networks to the client, and decoding and displaying the video on the client device are performed with a latency such that the user of the client device has the perception that the video game or application is responding instantly;
receiving feedback information from the client device, the feedback information usable to determine whether data contained in the video frames or portions has been successfully received and/or decoded; and
modifying the encoding of the plurality of video frames or portions thereof in response to detecting that one or more video frames or portions thereof have not been successfully received and/or decoded.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented system and method for performing video compression are described. For example, a method according to one embodiment comprises: encoding a plurality of video frames or portions thereof according to a first encoding format; transmitting the plurality of encoded video frames or portions to a client device; receiving feedback information from the client device, the feedback information usable to determine whether data contained in the video frames or portions has been successfully received and/or decoded; in response to detecting that one or more video frames or portions thereof have not been successfully received and/or decoded, determining a number of video frames or portions thereof which have not been successfully received and/or decoded and: (1) if the number of video frames or portions thereof which have not been successfully received and/or decoded is above a specified threshold, then encoding a new video frame or portion thereof according to a second encoding format, the second encoding format comprising a format which is not dependent on previously-transmitted video frames or portions thereof; or (2) if the number of video frames or portions thereof which have not been successfully received and/or decoded is below a specified threshold, then encoding a new video frame or portion thereof according to the first encoding format, the new video frame encoded to be dependent on a last known successfully received video frame or portion thereof; and transmitting the new video frame or portion thereof to the client device.
-
Citations
21 Claims
-
1. A computer-implemented method for low-latency video game or application hosting and video compression comprising:
-
generating control signals from a client device in response to an input device of the client device being actuated by the user as the user is playing the low latency video game or using the application; transmitting the control signals from the client device to a first hosting service center over one or more networks; executing a video game or application on one or more servers at the first hosting service center in response to the control signals received from the client device as the user plays the video game or uses the application; generating video of the executed video game or application by the one or more servers, the video comprising a plurality of video frames; encoding the plurality of video frames or portions thereof of the video stream to generate a low-latency encoded video stream; transmitting the low-latency encoded video stream to the client device over the one or more networks; decoding and displaying the video on the client device; wherein the operations of generating and transmitting the control signals, executing the video game or application, generating video, encoding the plurality of video frames, and transmitting the low-latency encoded video stream over the one or more networks to the client, and decoding and displaying the video on the client device are performed with a latency such that the user of the client device has the perception that the video game or application is responding instantly; receiving feedback information from the client device, the feedback information usable to determine whether data contained in the video frames or portions has been successfully received and/or decoded; and modifying the encoding of the plurality of video frames or portions thereof in response to detecting that one or more video frames or portions thereof have not been successfully received and/or decoded. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system for low-latency video game or application hosting and video compression comprising a memory for storing program code and a processor for processing the program code to perform the operations of:
-
generating control signals from a client device in response to an input device of the client device being actuated by the user as the user is playing the low latency video game or using the application; transmitting the control signals from the client device to a first hosting service center over one or more networks; executing a video game or application on one or more servers at the first hosting service center in response to the control signals received from the client device as the user plays the video game or uses the application; generating video of the executed video game or application by the one or more servers, the video comprising a plurality of video frames; encoding the plurality of video frames or portions thereof of the video stream to generate a low-latency encoded video stream; transmitting the low-latency encoded video stream to the client device over the one or more networks; decoding and displaying the video on the client device; wherein the operations of generating and transmitting the control signals, executing the video game or application, generating video, encoding the plurality of video frames, and transmitting the low-latency encoded video stream over the one or more networks to the client, and decoding and displaying the video on the client device are performed with a latency such that the user of the client device has the perception that the video game or application is responding instantly; receiving feedback information from the client device, the feedback information usable to determine whether data contained in the video frames or portions has been successfully received and/or decoded; and modifying the encoding of the plurality of video frames or portions thereof in response to detecting that one or more video frames or portions thereof have not been successfully received and/or decoded. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A non-transitory machine-readable medium for low-latency video game or application hosting and video compression having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of:
-
generating control signals from a client device in response to an input device of the client device being actuated by the user as the user is playing the low latency video game or using the application; transmitting the control signals from the client device to a first hosting service center over one or more networks; executing a video game or application on one or more servers at the first hosting service center in response to the control signals received from the client device as the user plays the video game or uses the application; generating video of the executed video game or application by the one or more servers, the video comprising a plurality of video frames; encoding the plurality of video frames or portions thereof of the video stream to generate a low-latency encoded video stream; transmitting the low-latency encoded video stream to the client device over the one or more networks; decoding and displaying the video on the client device; wherein the operations of generating and transmitting the control signals, executing the video game or application, generating video, encoding the plurality of video frames, and transmitting the low-latency encoded video stream over the one or more networks to the client, and decoding and displaying the video on the client device are performed with a latency such that the user of the client device has the perception that the video game or application is responding instantly; receiving feedback information from the client device, the feedback information usable to determine whether data contained in the video frames or portions has been successfully received and/or decoded; and modifying the encoding of the plurality of video frames or portions thereof in response to detecting that one or more video frames or portions thereof have not been successfully received and/or decoded. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification