System and method for compressing video frames or portions thereof based on feedback information from a client device
First Claim
1. A computer-implemented method for performing video compression comprising:
- receiving a control signal by a server, the control signal received from a client device over a network established between the client device and the server, the control signal corresponding to a user input from an input device of the client device being actuated by a user as the user is playing a video game, the network including a communication channel;
executing the video game on the server in response to the received control signal to generate video output including a sequence of video images of the video game;
encoding each of the sequence of video images in a shared video encoding resource to generate a sequence of encoded video frames;
transmitting the sequence of encoded video frames by the server over the communication channel to the client device for decoding to produce a corresponding sequence of decoded video frames, the sequence of decoded video frames are configured for displaying on a display device of the client device;
detecting a change in a communication channel characteristic of the communication channel, wherein the detected change is based on feedback information received by the server, the feedback information being received from the client device; and
dynamically adjusting a compression ratio for the sequence of encoded video frames based on the detected change in the communication channel characteristic.
2 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented system and method are described for performing video compression. 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 not been successfully received and/or decoded; in response to detecting that a video frame or portion thereof has not been successfully received and/or decoded, encoding a video frame or portion thereof according to a second encoding format; and transmitting the video frames or portions thereof to the client device.
8 Citations
27 Claims
-
1. A computer-implemented method for performing video compression comprising:
-
receiving a control signal by a server, the control signal received from a client device over a network established between the client device and the server, the control signal corresponding to a user input from an input device of the client device being actuated by a user as the user is playing a video game, the network including a communication channel; executing the video game on the server in response to the received control signal to generate video output including a sequence of video images of the video game; encoding each of the sequence of video images in a shared video encoding resource to generate a sequence of encoded video frames; transmitting the sequence of encoded video frames by the server over the communication channel to the client device for decoding to produce a corresponding sequence of decoded video frames, the sequence of decoded video frames are configured for displaying on a display device of the client device; detecting a change in a communication channel characteristic of the communication channel, wherein the detected change is based on feedback information received by the server, the feedback information being received from the client device; and dynamically adjusting a compression ratio for the sequence of encoded video frames based on the detected change in the communication channel characteristic. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A computer-implemented method for performing video compression comprising:
-
receiving a control signal by a server, the control signal received from a client device over a network established between the client device and the server, the control signal corresponding to a user input from an input device of the client device being actuated by a user as the user is playing a video game, the network including a communication channel; executing the video game on the server in response to the received control signal to generate video output including a sequence of video images of the video game; encoding each of the sequence of video images in a shared video encoding resource to generate a sequence of encoded video frames; transmitting the sequence of encoded video frames by the server over the communication channel to the client device for decoding to produce a corresponding sequence of decoded video frames, the sequence of decoded video frames are configured for displaying on a display device of the client device; detecting a change in a communication channel characteristic of the communication channel, wherein the detected change is based on feedback information received by the server, the feedback information being received from the client device; dynamically adjusting an image resolution of the sequence of encoded video frames based on the detected change in the communication channel characteristic; and transmitting an instruction to the client device to scale a display of each one of the sequence of decoded video frames to maintain an image size corresponding to the display device of the client device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A computer-implemented method for performing video compression comprising:
-
receiving a control signal by a server, the control signal received from a client device over a network established between the client device and the server, the control signal corresponding to a user input from an input device of the client device being actuated by a user as the user is playing a video game, the network including a communication channel between the server and the client device; executing the video game on the server, in response to the received control signal, to generate video output including a sequence of video images of the video game; encoding each of the sequence of video images in a shared video encoding resource to generate a sequence of encoded video frames; transmitting the sequence of encoded video frames by the server over the communication channel to the client device for decoding to produce a corresponding sequence of decoded video frames, the sequence of decoded video frames are configured for displaying on a display device of the client device; receiving feedback information by the server, the feedback information received from the client device; and determining a maximum data rate capacity of the communication channel by sending an increasingly greater data rate stream of the sequence of encoded video frames to the client device until at least one of a packet loss or an increased latency indicates the maximum data rate capacity of the communication channel has been exceeded. - View Dependent Claims (24, 25, 26, 27)
-
Specification