Video compression system and method for compensating for bandwidth limitations of a communication channel
First Claim
1. A computer-implemented method for hosting online video games, performing video compression and streaming video over a network comprising:
- receiving control signals by a server, the control signals received from a client device over a network to the server, the control signals configured to be in response 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;
executing program code of the video game on the server in response to the received control signals;
generating a plurality of video frames resulting from execution of the video game;
encoding by one or more shared compression resources the plurality of video frames using low latency compression to generate a set of low latency compressed video frames;
detecting by the server, a maximum data rate of a communication channel established between the server and the client device, wherein determining the maximum data rate is enabled by sending an increasingly higher data rate test stream to the client device until at least one of a packet loss rate or an increased latency indicates the maximum data rate has been exceeded and then responsively reducing a data rate of the test stream until at least one of the packet loss rate or the latency have reached acceptable values;
updating a compression process state that sets an amount of compression for the communication channel for the detected maximum data rate;
transmitting the set of low latency compressed video frames from the server to the client device using the compression process state;
while transmitting, continuing to monitor when the maximum data rate for the communication channel has decreased based on measurements of at least one of an increase in the packet loss rate or said latency, and responsively reducing a data rate of the set of low latency compressed video frames until at least one of the packet loss rate or said latency have reached an acceptable level; and
while transmitting, continuing to monitor when the maximum data rate of the communication channel has increased based on continued measurements of at least one of a decrease in packet loss rate or said latency, and responsively increasing the data rate of the set of low latency compressed video frames until at least one of the packet loss rate or said latency reaches an unacceptable level;
wherein the compression process state is updated to adjust the amount of compression for responsively reducing or increasing the data rate;
wherein determining the maximum data rate includes receiving feedback from the client device for determining said packet loss rate or said latency.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method are described below for encoding interactive low-latency video using interframe coding. For example, one embodiment of a computer-implemented method for performing video compression comprises: detecting a maximum data rate of a communication channel between a server and a client; transmitting a video stream comprising a series of sequential frames from the server to the client; detecting that the maximum data rate will be exceeded if a particular frame of the sequence of frames is transmitted from the server to the client over the communication channel; and in lieu of transmitting the frame which could cause the maximum data rate to be exceeded, causing the client to re-render the previous frame of the sequence of frames, thereby effectively reducing the frame rate of the video stream rendered on the client.
-
Citations
20 Claims
-
1. A computer-implemented method for hosting online video games, performing video compression and streaming video over a network comprising:
-
receiving control signals by a server, the control signals received from a client device over a network to the server, the control signals configured to be in response 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; executing program code of the video game on the server in response to the received control signals; generating a plurality of video frames resulting from execution of the video game; encoding by one or more shared compression resources the plurality of video frames using low latency compression to generate a set of low latency compressed video frames; detecting by the server, a maximum data rate of a communication channel established between the server and the client device, wherein determining the maximum data rate is enabled by sending an increasingly higher data rate test stream to the client device until at least one of a packet loss rate or an increased latency indicates the maximum data rate has been exceeded and then responsively reducing a data rate of the test stream until at least one of the packet loss rate or the latency have reached acceptable values; updating a compression process state that sets an amount of compression for the communication channel for the detected maximum data rate; transmitting the set of low latency compressed video frames from the server to the client device using the compression process state; while transmitting, continuing to monitor when the maximum data rate for the communication channel has decreased based on measurements of at least one of an increase in the packet loss rate or said latency, and responsively reducing a data rate of the set of low latency compressed video frames until at least one of the packet loss rate or said latency have reached an acceptable level; and while transmitting, continuing to monitor when the maximum data rate of the communication channel has increased based on continued measurements of at least one of a decrease in packet loss rate or said latency, and responsively increasing the data rate of the set of low latency compressed video frames until at least one of the packet loss rate or said latency reaches an unacceptable level; wherein the compression process state is updated to adjust the amount of compression for responsively reducing or increasing the data rate; wherein determining the maximum data rate includes receiving feedback from the client device for determining said packet loss rate or said latency. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A computer-implemented method for hosting online video games, performing video compression and streaming video over a network comprising:
-
receiving a control signal by a server, the control signal received from a client device over a communication channel to the server, the control signal being for executing an online video game by the server, wherein executing the online video game includes generating, encoding and transmitting a set of compressed video frames from the server to the client device; determining a maximum data rate of the communication channel by sending an increasingly higher data rate data stream of the transmitted set of compressed video frames to the client device until at least one of a packet loss rate or an increase in latency indicates the maximum data rate of the communication channel has been exceeded; detecting that the maximum data rate of the communication channel has been exceeded based on at least one of a detected increase in the packet loss rate or the increase in latency; reducing a data rate of the set of compressed video frames to a reduced data rate, wherein the reduced data rate results in at least one of the packet loss rate or the latency to indicate an acceptable level; and updating a compression process state that sets an amount of compression for the communication channel for the reduced data rate, wherein the compression process state is used to encode the set of compressed video frames; while transmitting the set of compressed video frames, continuing to monitor when the maximum data rate for the communication channel has decreased based on measurements of at least one of an increase in the packet loss rate or said latency, and responsively reducing a data rate of the set of low latency compressed video frames until at least one of the packet loss rate or said latency have reached an acceptable level; and while transmitting the set of compressed video frames, continuing to monitor when the maximum data rate of the communication channel has increased based on continued measurements of at least one of a decrease in packet loss rate or said latency, and responsively increasing the data rate of the set of low latency compressed video frames until at least one of the packet loss rate or said latency reaches an unacceptable level; wherein the compression process state is updated to adjust the amount of compression for responsively reducing or increasing the data rate; wherein determining the maximum data rate includes receiving feedback from the client device for determining said packet loss rate or said latency. - View Dependent Claims (17, 18, 19, 20)
-
Specification