System and method for video compression using feedback including data related to the successful receipt of video content
First Claim
1. A computer-implemented method for hosting online applications or video games, performing video compression comprising, and transmitting video comprising:
- receiving a request from a user for playing a low latency video game or executing an application which produces a video output;
receiving signals at a server, the signals transmitted over a network which includes public network components, as the user is playing the video game or using the application and responsively executing the video game or application on the server to generate the video output comprising a sequence of images of the video game or application;
encoding the video output to generate a sequence of compressed video images, wherein encoding comprises;
encoding a first plurality of video frames or portions thereof, wherein each encoded video frame or portion thereof is dependent on a previously-encoded video frame or portion thereof, respectively;
transmitting the first 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; and
in response to detecting that a video frame or portion thereof has not been successfully received and/or decoded, encoding a current video frame or portion thereof to be dependent on a previously-encoded video frame or portion thereof known to have been successfully received and/or decoded on the client device;
transmitting the sequence of compressed video images to the client device over the network;
decompressing the sequence of compressed video images on the client device;
wherein the operations of receiving signals, executing the video game or application, encoding the video output, transmitting the sequence of compressed video images, and decompressing the sequence of compressed video images are performed with a latency such that the user has the perception that the selected video game or application is responding instantly to the signals.
6 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 first plurality of video frames or portions thereof, wherein each encoded video frame or portion thereof is dependent on a previously-encoded video frame or portion thereof, respectively; transmitting the first 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 current video frame or portion thereof to be dependent on a previously-encoded video frame or portion thereof known to have been successfully received and/or decoded on the client device; and transmitting the current video frame or portion thereof to the client device.
393 Citations
24 Claims
-
1. A computer-implemented method for hosting online applications or video games, performing video compression comprising, and transmitting video comprising:
-
receiving a request from a user for playing a low latency video game or executing an application which produces a video output; receiving signals at a server, the signals transmitted over a network which includes public network components, as the user is playing the video game or using the application and responsively executing the video game or application on the server to generate the video output comprising a sequence of images of the video game or application; encoding the video output to generate a sequence of compressed video images, wherein encoding comprises; encoding a first plurality of video frames or portions thereof, wherein each encoded video frame or portion thereof is dependent on a previously-encoded video frame or portion thereof, respectively; transmitting the first 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; and in response to detecting that a video frame or portion thereof has not been successfully received and/or decoded, encoding a current video frame or portion thereof to be dependent on a previously-encoded video frame or portion thereof known to have been successfully received and/or decoded on the client device; transmitting the sequence of compressed video images to the client device over the network; decompressing the sequence of compressed video images on the client device; wherein the operations of receiving signals, executing the video game or application, encoding the video output, transmitting the sequence of compressed video images, and decompressing the sequence of compressed video images are performed with a latency such that the user has the perception that the selected video game or application is responding instantly to the signals. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system comprising a memory for storing program code and a processor for processing the program code to perform the operations of:
-
receiving a request from a user for playing a low latency video game or executing an application which produces a video output; receiving signals at a server, the signals transmitted over a network which includes public network components, as the user is playing the video game or using the application and responsively executing the video game or application on the server to generate the video output comprising a sequence of images of the video game or application; encoding the video output to generate a sequence of compressed video images, wherein encoding comprises; encoding a first plurality of video frames or portions thereof, wherein each encoded video frame or portion thereof is dependent on a previously-encoded video frame or portion thereof, respectively; transmitting the first 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; and in response to detecting that a video frame or portion thereof has not been successfully received and/or decoded, encoding a current video frame or portion thereof to be dependent on a previously-encoded video frame or portion thereof known to have been successfully received and/or decoded on the client device; transmitting the sequence of compressed video images to the client device over the network; decompressing the sequence of compressed video images on the client device; wherein the operations of receiving signals, executing the video game or application, encoding the video output, transmitting the sequence of compressed video images, and decompressing the sequence of compressed video images are performed with a latency such that the user has the perception that the selected video game or application is responding instantly to the signals. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform the operations of:
-
receiving a request from a user for playing a low latency video game or executing an application which produces a video output; receiving signals at a server, the signals transmitted over a network which includes public network components, as the user is playing the video game or using the application and responsively executing the video game or application on the server to generate the video output comprising a sequence of images of the video game or application; encoding the video output to generate a sequence of compressed video images, wherein encoding comprises; encoding a first plurality of video frames or portions thereof, wherein each encoded video frame or portion thereof is dependent on a previously-encoded video frame or portion thereof, respectively; transmitting the first 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; and in response to detecting that a video frame or portion thereof has not been successfully received and/or decoded, encoding a current video frame or portion thereof to be dependent on a previously-encoded video frame or portion thereof known to have been successfully received and/or decoded on the client device; and transmitting the sequence of compressed video images to the client device over the network; decompressing the sequence of compressed video images on the client device; wherein the operations of receiving signals, executing the video game or application, encoding the video output, transmitting the sequence of compressed video images, and decompressing the sequence of compressed video images are performed with a latency such that the user has the perception that the selected video game or application is responding instantly to the signals. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
Specification