System and method for compressing video based on detected data rate of a communication channel
First Claim
1. A computer-implemented method comprising:
- receiving a request from a client of a user to execute a video game or application;
generating control signals from the client in response to an input device of the client being actuated by the user as the user is playing the video game or using the application;
receiving the control signals and responsively executing the video game or application on a server at a hosting service center, the execution of the video game or application producing a low-latency interactive compressed video stream comprising a plurality of video images;
detecting a maximum data rate of a communication channel between the server and the client;
detecting channel characteristics of the communication channel between the server and the client, the detected channel characteristics including a supported bitrate of the communication channel;
encoding each video image of a sequence of the video images using a first compression format or a second compression format based on the detected maximum data rate, wherein a first video image in the sequence of the video images is encoded using the first compression format and one or more subsequent video images are encoded using the second compression format, wherein encoding of the sequence of the video images is performed using low latency compression to generate the interactive compressed video stream based on the detected channel characteristics;
transmitting compressed video images that have more data than can be transmitted at the supported bitrate of the communication channel in one image time over one or more additional image times, and ignoring one or more subsequent uncompressed video images while still transmitting one of the compressed video images that have more data; and
decoding the compressed video images and rendering the decoded video images on a display of a client;
wherein operations of generating control signals, receiving the control signals at the server and responsively executing the video game or application, encoding the sequence of video images, transmitting the compressed video images, and decoding and rending the decoded video images on the display are performed with a latency such that the user has the perception that the video game or application is responding instantly to the control signals.
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; dynamically selecting a tile size for encoding a sequence of images based on the detected maximum data rate; logically subdividing each of the sequence of images into a plurality of tiles sized according to the selected tile size, each of the tiles having a defined position within each of the sequence of images; encoding each tile within each image of the sequence of images using a first compression format or a second compression format, wherein a tile at a particular position of a first image in the sequence of images is encoded using the first compression format and the same tile within one or more subsequent images is encoded using the second compression format.
367 Citations
32 Claims
-
1. A computer-implemented method comprising:
-
receiving a request from a client of a user to execute a video game or application; generating control signals from the client in response to an input device of the client being actuated by the user as the user is playing the video game or using the application; receiving the control signals and responsively executing the video game or application on a server at a hosting service center, the execution of the video game or application producing a low-latency interactive compressed video stream comprising a plurality of video images; detecting a maximum data rate of a communication channel between the server and the client; detecting channel characteristics of the communication channel between the server and the client, the detected channel characteristics including a supported bitrate of the communication channel; encoding each video image of a sequence of the video images using a first compression format or a second compression format based on the detected maximum data rate, wherein a first video image in the sequence of the video images is encoded using the first compression format and one or more subsequent video images are encoded using the second compression format, wherein encoding of the sequence of the video images is performed using low latency compression to generate the interactive compressed video stream based on the detected channel characteristics; transmitting compressed video images that have more data than can be transmitted at the supported bitrate of the communication channel in one image time over one or more additional image times, and ignoring one or more subsequent uncompressed video images while still transmitting one of the compressed video images that have more data; and decoding the compressed video images and rendering the decoded video images on a display of a client; wherein operations of generating control signals, receiving the control signals at the server and responsively executing the video game or application, encoding the sequence of video images, transmitting the compressed video images, and decoding and rending the decoded video images on the display are performed with a latency such that the user has the perception that the video game or application is responding instantly to the control signals. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A non-transitory machine readable storage medium containing instructions that when processed by a computer cause a method to be performed, said method comprising:
-
generating control signals from the client in response to an input device of the client being actuated by the user as the user is playing the video game or using the application; receiving the control signals and responsively executing the video game or application on a server at a hosting service center, the execution of the video game or application producing an interactive compressed video stream comprising a plurality of video images; detecting a maximum data rate of a communication channel between the server and the client; detecting channel characteristics of the communication channel between the server and the client, the detected channel characteristics including a supported bitrate of the communication channel; encoding each video image of a sequence of the video images using a first compression format or a second compression format based on the detected maximum data rate, wherein a first video image in the sequence of the video images is encoded using the first compression format and one or more subsequent video images are encoded using the second compression format, wherein encoding of the sequence of video images is performed using low latency compression to generate the interactive compressed video stream based on the detected channel characteristics; transmitting compressed video images that have more data than can be transmitted at the supported bitrate of the communication channel in one time over one or more additional image times, and ignoring one or more subsequent uncompressed video images while still transmitting one of the compressed video images that have more data; and decoding the compressed video images and rendering the decoded video images on a display of a client; wherein the operations of generating control signals, receiving the control signals at the server and responsively executing the video game or application, encoding the sequence of video images, transmitting the compressed video images, and decoding and rending the decoded video images on a display are performed with a latency such that the user has the perception that the video game or application is responding instantly to the control signals. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30)
-
-
31. A computing system, comprising:
-
one or more processors; a non-transitory machine readable storage medium containing instructions that when processed by the one or more processors cause a method to be performed, said method comprising; generating control signals from the client in response to an input device of the client being actuated by the user as the user is playing the video game or using the application; receiving the control signals and responsively executing the video game or application on a server at a hosting service center, the execution of the video game or application producing an interactive compressed video stream comprising a plurality of video images; detecting a maximum data rate of a communication channel between the server and the client; detecting channel characteristics of the communication channel between the server and the client, the detected channel characteristics including a supported bitrate of the communication channel; encoding each video image of a sequence of the video images using a first compression format or a second compression format based on the detected maximum data rate, wherein a first video image in the sequence of the video images is encoded using the first compression format and one or more subsequent video images are encoded using the second compression format, wherein encoding of the sequence of video images is performed using low latency compression to generate the interactive compressed video stream based on the detected channel characteristics; transmitting compressed video images that have more data than can be transmitted at the supported bitrate of the communication channel in one image time over one or more additional image times, and ignoring one or more subsequent uncompressed video images while still transmitting one of the compressed video images that have more data; and decoding the compressed video images and rendering the decoded video images on a display of a client; wherein the operations of generating control signals, receiving the control signals at the server and responsively executing the video game or application, encoding the sequence of video images, transmitting the compressed video images, and decoding and rending the decoded video images on a display are performed with a latency such that the user has perception that the video game or application is responding instantly to the control signals. - View Dependent Claims (32)
-
Specification