System and method for multi-stream video compression using multiple encoding formats
First Claim
1. A computer-implemented method for implementing online video games or applications over a network including at least one public network component comprising:
- generating control signals from a client in response to an input device of the client being actuated by a user as the user is playing a low latency video game or application;
receiving the control signals related to the low latency video game or application transmitted from the client operated by the user over the network which includes at least one public network component;
routing the control signals to a server and responsively executing program code of the low latency video game or application to generate a plurality of video frames resulting from execution of the video game or application;
encoding the plurality of video frames or portions thereof according to a first encoding format to generate a plurality of encoded video frames or portions, the first encoding format being optimized for low latency transmission to a client device over a current network communication channel including the at least one public network component;
transmitting the plurality of encoded video frames or portions to the client device over the network communication channel,the client device decoding the video frames and rendering the video on a display,wherein the operations of generating control signals, receiving the control signals, routing the control signals to the server, responsively executing the program code of the low latency video game or application to generate the plurality of video frames, encoding the plurality of video frames according to the first encoding format optimized for low latency transmission to generate the plurality of encoded video frames, transmitting the plurality of encoded video frames, decoding the video frames on the client and rendering the video 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 user input;
concurrently encoding the first plurality of video frames according to a second encoding format, the second encoding format having a relatively higher-quality compressed video and/or a lower compression ratio than the first encoding format;
storing the first plurality of video frames encoded in the second encoding format on a storage device;
making the first plurality of video frames encoded in the second encoding format available to the client device and other client devices for playback of the video stream; and
responsively transmitting the first plurality of video frames encoded in the second encoding format to the client and/or other clients upon receiving a request from a user.
6 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, the first encoding format being optimized for transmission to a client device over a current communication channel; transmitting the plurality of encoded video frames or portions to the client device over the communication channel; concurrently encoding the first plurality of video frames according to a second encoding format, the second encoding format having a relatively higher-quality compressed video and/or a lower compression ratio than the first encoding format; storing the first plurality of video frames encoded in the second encoding format on a storage device; and making the first plurality of video frames encoded in the second encoding format available to the client device and other client devices for playback of the video stream.
465 Citations
24 Claims
-
1. A computer-implemented method for implementing online video games or applications over a network including at least one public network component comprising:
-
generating control signals from a client in response to an input device of the client being actuated by a user as the user is playing a low latency video game or application; receiving the control signals related to the low latency video game or application transmitted from the client operated by the user over the network which includes at least one public network component; routing the control signals to a server and responsively executing program code of the low latency video game or application to generate a plurality of video frames resulting from execution of the video game or application; encoding the plurality of video frames or portions thereof according to a first encoding format to generate a plurality of encoded video frames or portions, the first encoding format being optimized for low latency transmission to a client device over a current network communication channel including the at least one public network component; transmitting the plurality of encoded video frames or portions to the client device over the network communication channel, the client device decoding the video frames and rendering the video on a display, wherein the operations of generating control signals, receiving the control signals, routing the control signals to the server, responsively executing the program code of the low latency video game or application to generate the plurality of video frames, encoding the plurality of video frames according to the first encoding format optimized for low latency transmission to generate the plurality of encoded video frames, transmitting the plurality of encoded video frames, decoding the video frames on the client and rendering the video 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 user input; concurrently encoding the first plurality of video frames according to a second encoding format, the second encoding format having a relatively higher-quality compressed video and/or a lower compression ratio than the first encoding format; storing the first plurality of video frames encoded in the second encoding format on a storage device; making the first plurality of video frames encoded in the second encoding format available to the client device and other client devices for playback of the video stream; and responsively transmitting the first plurality of video frames encoded in the second encoding format to the client and/or other clients upon receiving a request from a user. - View Dependent Claims (2, 3, 4, 5, 6, 19, 20)
-
-
7. A computer system having 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 in response to an input device of the client being actuated by a user as the user is playing a low latency video game or application; receiving the control signals related to the low latency video game or application transmitted from the client operated by the user over the network which includes at least one public network component; routing the control signals to a server and responsively executing program code of the low latency video game or application to generate a plurality of video frames resulting from execution of the video game or application; encoding the plurality of video frames or portions thereof according to a first encoding format to generate a plurality of encoded video frames or portions, the first encoding format being optimized for low latency transmission to a client device over a current network communication channel including the at least one public network component; transmitting the plurality of encoded video frames or portions to the client device over the network communication channel, the client device decoding the video frames and rendering the video on a display, wherein the operations of generating control signals, receiving the control signals, routing the control signals to the server, responsively executing the program code of the low latency video game or application to generate the plurality of video frames, encoding the plurality of video frames according to the first encoding format optimized for low latency transmission to generate the plurality of encoded video frames, transmitting the plurality of encoded video frames, decoding the video frames on the client and rendering the video 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 user input; concurrently encoding the first plurality of video frames according to a second encoding format, the second encoding format having a relatively higher-quality compressed video and/or a lower compression ratio than the first encoding format; storing the first plurality of video frames encoded in the second encoding format on a storage device; making the first plurality of video frames encoded in the second encoding format available to the client device and other client devices for playback of the video stream; and responsively transmitting the first plurality of video frames encoded in the second encoding format to the client and/or other clients upon receiving a request from a user. - View Dependent Claims (8, 9, 10, 11, 12, 21, 22)
-
-
13. 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:
-
generating control signals from a client in response to an input device of the client being actuated by a user as the user is playing a low latency video game or application; receiving the control signals related to the low latency video game or application transmitted from the client operated by the user over the network which includes at least one public network component; routing the control signals to a server and responsively executing program code of the low latency video game or application to generate a plurality of video frames resulting from execution of the video game or application; encoding the plurality of video frames or portions thereof according to a first encoding format to generate a plurality of encoded video frames or portions, the first encoding format being optimized for low latency transmission to a client device over a current network communication channel including the at least one public network component; transmitting the plurality of encoded video frames or portions to the client device over the network communication channel, the client device decoding the video frames and rendering the video on a display, wherein the operations of generating control signals, receiving the control signals, routing the control signals to the server, responsively executing the program code of the low latency video game or application to generate the plurality of video frames, encoding the plurality of video frames according to the first encoding format optimized for low latency transmission to generate the plurality of encoded video frames, transmitting the plurality of encoded video frames, decoding the video frames on the client and rendering the video 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 user input; concurrently encoding the first plurality of video frames according to a second encoding format, the second encoding format having a relatively higher-quality compressed video and/or a lower compression ratio than the first encoding format; storing the first plurality of video frames encoded in the second encoding format on a storage device; making the first plurality of video frames encoded in the second encoding format available to the client device and other client devices for playback of the video stream; and responsively transmitting the first plurality of video frames encoded in the second encoding format to the client and/or other clients upon receiving a request from a user. - View Dependent Claims (14, 15, 16, 17, 18, 23, 24)
-
Specification