Temporary decoder apparatus and method
First Claim
1. A computer-implemented method for streaming video from a server to a client comprising:
- receiving at the server a request for playing a low latency video game or application from the client over a network which includes public network components;
in response to the request, establishing a video game or application session with the client, determining the hardware/software configuration of the client and executing the requested video game or application on the server;
generating and/or selecting a temporary decoder based on the hardware/software configuration of the client;
transmitting the temporary decoder to the client, the client installing the temporary decoder;
receiving control signals transmitted from the client indicating user input to the client 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 uncompressed video images output from the video game or application;
receiving feedback information over the network, the feedback information usable to determine current channel characteristics of a communication channel between the first server and the client over the network;
encoding the uncompressed video images using encoding parameters selected based on the detected channel characteristics and the capabilities of the temporary decoder on the client to generate low latency compressed video images, the encoding parameters selected to achieve a latency such that the user has the perception that the selected video game or application is responding instantly to the control signals, wherein the encoding comprises;
subdividing each uncompressed video image into a first set of one or more frame portions and a second set of one or more frame portions, wherein the total number of frame portions depends upon the encoding parameters, and the particular frame portions in the first set and particular frame portions in the second set depend upon the encoding parameters and the number of video images that have been compressed since a particular frame portion was in the first set of frame portions;
encoding frame portions in the first set using a first type of encoding, wherein the first type of encoding is not dependent on prior images or frame portions;
encoding frame portions in the second set using a second type of encoding, wherein the second type of encoding is dependent on prior images or frame portions;
wherein subdividing each video image into frame portions and encoding the first set of frame portions using the first encoding format and the second set of frame portions using the second encoding format produces a more consistent bitrate for the video images and lower latency for the end user than if entire video images were compressed using the first type of encoding and the second type of encoding;
transmitting the low latency compressed video images from the server to the client over the network, the low latency video stream being decoded by the temporary decoder and rendered on the client;
wherein the operations of receiving control signals transmitted from the client, executing the video game or application to generate the uncompressed video images, encoding the uncompressed video images to generate low latency compressed video images and streaming the low latency compressed video images to the client over the network which includes public network components, and decoding the low latency compressed video images is performed with a combined latency such that the user has the perception that the selected video game or application is responding instantly to the control signals received from the client, the combined latency being achieved, at least in part, based on the encoding parameters;
detecting that the client has ended the session with the server; and
in response to detecting that the client has ended the session, temporarily disabling and/or removing the temporary decoder from the client.
6 Assignments
0 Petitions
Accused Products
Abstract
A computer-implemented system and method for streaming video from a server to a client are described. For example, a method according to one embodiment comprises: receiving at the server a request for video content from the client; in response to the request, determining the hardware/software configuration of the client; generating and/or selecting a temporary decoder based on the hardware/software configuration of the client; transmitting the temporary decoder to the client, the client installing the temporary decoder; encoding and streaming the requested video content from the server to the client, the video content being encoded based on the capabilities of the temporary decoder, the video content being decoded by the temporary decoder and rendered on the client; detecting that the client has ended the session with the server; and in response to detecting that the client has ended the session, temporarily disabling and/or removing the temporary decoder from the client.
354 Citations
18 Claims
-
1. A computer-implemented method for streaming video from a server to a client comprising:
-
receiving at the server a request for playing a low latency video game or application from the client over a network which includes public network components; in response to the request, establishing a video game or application session with the client, determining the hardware/software configuration of the client and executing the requested video game or application on the server; generating and/or selecting a temporary decoder based on the hardware/software configuration of the client; transmitting the temporary decoder to the client, the client installing the temporary decoder; receiving control signals transmitted from the client indicating user input to the client 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 uncompressed video images output from the video game or application; receiving feedback information over the network, the feedback information usable to determine current channel characteristics of a communication channel between the first server and the client over the network; encoding the uncompressed video images using encoding parameters selected based on the detected channel characteristics and the capabilities of the temporary decoder on the client to generate low latency compressed video images, the encoding parameters selected to achieve a latency such that the user has the perception that the selected video game or application is responding instantly to the control signals, wherein the encoding comprises; subdividing each uncompressed video image into a first set of one or more frame portions and a second set of one or more frame portions, wherein the total number of frame portions depends upon the encoding parameters, and the particular frame portions in the first set and particular frame portions in the second set depend upon the encoding parameters and the number of video images that have been compressed since a particular frame portion was in the first set of frame portions; encoding frame portions in the first set using a first type of encoding, wherein the first type of encoding is not dependent on prior images or frame portions; encoding frame portions in the second set using a second type of encoding, wherein the second type of encoding is dependent on prior images or frame portions; wherein subdividing each video image into frame portions and encoding the first set of frame portions using the first encoding format and the second set of frame portions using the second encoding format produces a more consistent bitrate for the video images and lower latency for the end user than if entire video images were compressed using the first type of encoding and the second type of encoding; transmitting the low latency compressed video images from the server to the client over the network, the low latency video stream being decoded by the temporary decoder and rendered on the client; wherein the operations of receiving control signals transmitted from the client, executing the video game or application to generate the uncompressed video images, encoding the uncompressed video images to generate low latency compressed video images and streaming the low latency compressed video images to the client over the network which includes public network components, and decoding the low latency compressed video images is performed with a combined latency such that the user has the perception that the selected video game or application is responding instantly to the control signals received from the client, the combined latency being achieved, at least in part, based on the encoding parameters; detecting that the client has ended the session with the server; and in response to detecting that the client has ended the session, temporarily disabling and/or removing the temporary decoder from the client. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for hosting low-latency streaming interactive video games or applications, comprising:
-
a plurality of servers, one or more of the servers to establish a video game or application session with a client and execute the low-latency streaming interactive video games or applications, one or more of the servers further generating and/or selecting a temporary decoder for decoding video of the low-latency streaming interactive video games based on the hardware/software configuration of a client and transmitting the temporary decoder to the client, the client installing the temporary decoder; an inbound routing network to receive packet streams over a network including public network components from users playing the video games or applications on the client and routing the packet streams to one or more of the servers, the packet streams including user control input for the video games, one or more of the servers being operable to compute video game or application video and audio output data responsive to the user control input comprising sequences of video images output from the video game or application; the one or more of the servers to receive feedback information over the network, the feedback information usable to determine current channel characteristics of a communication channel between the one or more servers and the client over the network; a compression unit coupled to receive the video game or application video and audio output data from the one or more of the servers and generate low-latency streaming compressed audio/video (A/V) data therefrom in a format decodable by the temporary decoder, the compression unit generating the low-latency streaming compressed audio/video (A/V) data by compressing the sequences of video images using encoding parameters selected based on the detected channel characteristics and the capabilities of the temporary decoder on the client to achieve a latency such that the user has the perception that the selected video game or application is responding instantly to the control signals, wherein the video encoding comprises; subdividing each uncompressed video image into a first set of one or more frame portions and a second set of one or more frame portions, wherein the total number of frame portions depends upon the encoding parameters, and the particular frame portions in the first set and particular frame portions in the second set depend upon the encoding parameters and the number of video images that have been compressed since a particular frame portion was in the first set of frame portions; encoding frame portions in the first set using a first type of encoding, wherein the first type of encoding is not dependent on prior images or frame portions; encoding frame portions in the second set using a second type of encoding, wherein the second type of encoding is dependent on prior images or frame portions; wherein subdividing each video image into frame portions and encoding the first set of frame portions using the first encoding format and the second set of frame portions using the second encoding format produces a more consistent bitrate for the video images and lower latency for the end user than if entire video images were compressed using the first type of encoding and the second type of encoding; and an output routing network to route the low-latency streaming compressed A/V data over the network including public network components to the client over a corresponding communication channel; wherein the temporary decoder on the client responsively decodes the streaming compressed A/V data in real time to render video and audio at the client representing the video game or application video and audio output data; wherein the operations of receiving packet streams over the public network from the client, executing the interactive video games or applications, generating and routing the low latency streaming compressed A/V data over the public network to the client, and decoding the low latency streaming compressed A/V data is performed with a combined latency such that the user has the perception that the selected video game or application is responding instantly to the control signals received from the client, the combined latency being achieved, at least in part, based on the encoding parameters; detecting that the client has ended the session with the server; and in response to detecting that the client has ended the session, temporarily disabling and/or removing the temporary decoder from the client. - View Dependent Claims (15, 16, 17, 18)
-
Specification