System and method for protecting certain types of multimedia data transmitted over a communication channel
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 first user for playing a low latency video game or executing an application which produces a video output;
generating first control signals on a first client device in response to user input from an input device of the first client device being actuated by the first user as the first user is playing the video game or using the application;
capturing video and audio of the first user as the first user is playing the video game or using the application;
generating second control signals from a second client in response to an input device of the second client being actuated by a second user as the second user is playing the low latency video game or using the application;
transmitting the first control signals over a first communication channel of the first client which includes at least one public network component and transmitting the video and audio of the first user from the first client to the one or more servers;
transmitting the second control signals over a second communication channel of the second client which includes at least one public network component;
routing the first control signals and second control signals to one or more servers, as the first and second users are playing the video game or using the application;
responsively executing the video game or application on the one or more servers based on both the first control signals and the second control signals to generate video output comprising at least one sequence of video images of the video game or application;
determining characteristics of the first client and/or the first communication channel;
determining characteristics of the second client and/or the second communication channel;
compressing the at least one sequence of video images of the video game or application in accordance with the determined characteristics of the first client and/or the first communication channel using low latency compression to generate a first sequence of compressed video images having a first set of characteristics;
compressing the sequence of video images of the video game or application in accordance with the determined characteristics of the second client and/or the second communication channel using low latency compression to generate a second sequence of compressed video images having a second set of characteristics;
incorporating the video and/or audio of the first user into the second sequence of video images compressed in accordance with the determined characteristics of the second client and/or the second communication channel to update the second sequence of compressed video images;
wherein compressing the at least one sequence of video images to generate the first and the second sequences of video images further comprises;
logically subdividing each of a sequence of images into a plurality of image portions;
encoding one or more of the image portions in each image of the sequence of images using a first compression format and encoding the remainder of the image portions in each image using a second compression format, the second compression format dependent on image portions previously-encoded using the first and/or the second compression formats;
generating a forward error correction (FEC) code for image portions encoded using at least the first compression format;
transmitting the first sequence of compressed video images and the FEC code with each of the image portions encoded using the first compression format to the first client,transmitting the updated second sequence of compressed video images including the video and audio of the first user and the FEC codes with each of the image portions encoded using the first compression format to the second client,wherein compressed video images that have more data than can be transmitted at a peak data rate in one image time are transmitted over one or more additional image times;
decompressing the first sequence of compressed video images on the first client and decompressing the updated second sequence of compressed video images including the video and audio of the first user on the second client and using at least some of the FEC codes to correct errors in at least some of the image portions;
rendering the video images contained in the first sequence of compressed video images on a display of the first client and rendering the video images contained in the updated second sequence of compressed video images including the video and audio of the first user on a display of the second client;
wherein the operations of generating first and second control signals, capturing video and audio of the first user, transmitting the first and second control signals over the network, transmitting the video and audio of the first user, routing the first and second control signals transmitted over the network to one or more servers, executing the video game or application, compressing the video output using low latency compression to generate the first and second sequences of compressed video images, incorporating the video and/or audio of the first user into the second sequence of video images, generating the FEC codes, transmitting the first and second sequences of compressed video images and FEC codes to the first and second clients, respectively, decompressing the first and second sequences of compressed video images on the first and second clients, respectively, and using the FEC codes to correct errors in at least some of the tiles, and rendering the video images are performed with a latency such that both the first and second users have the perception that the selected video game or application is responding instantly to the signals.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method are described for protecting certain types of multimedia data transmitted over a communication channel. For example, one embodiment of a computer-implemented method comprises: logically subdividing each of a sequence of images into a plurality of tiles, each of the tiles having a defined position within each of the sequence of images, the defined position remaining the same between successive images; encoding one or more of the tiles in each image of the sequence of images using a first compression format and encoding the reminder of the tiles in each image using the second compression format, the second compression format dependent on tiles previously-encoded by the first and/or the second compression formats; generating a forward error correction (FEC) code for tiles encoded using the first compression format; transmitting the FEC code with each of the tiles encoded using the first compression format to a client.
-
Citations
31 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 first user for playing a low latency video game or executing an application which produces a video output; generating first control signals on a first client device in response to user input from an input device of the first client device being actuated by the first user as the first user is playing the video game or using the application; capturing video and audio of the first user as the first user is playing the video game or using the application; generating second control signals from a second client in response to an input device of the second client being actuated by a second user as the second user is playing the low latency video game or using the application; transmitting the first control signals over a first communication channel of the first client which includes at least one public network component and transmitting the video and audio of the first user from the first client to the one or more servers; transmitting the second control signals over a second communication channel of the second client which includes at least one public network component; routing the first control signals and second control signals to one or more servers, as the first and second users are playing the video game or using the application; responsively executing the video game or application on the one or more servers based on both the first control signals and the second control signals to generate video output comprising at least one sequence of video images of the video game or application; determining characteristics of the first client and/or the first communication channel; determining characteristics of the second client and/or the second communication channel; compressing the at least one sequence of video images of the video game or application in accordance with the determined characteristics of the first client and/or the first communication channel using low latency compression to generate a first sequence of compressed video images having a first set of characteristics; compressing the sequence of video images of the video game or application in accordance with the determined characteristics of the second client and/or the second communication channel using low latency compression to generate a second sequence of compressed video images having a second set of characteristics; incorporating the video and/or audio of the first user into the second sequence of video images compressed in accordance with the determined characteristics of the second client and/or the second communication channel to update the second sequence of compressed video images; wherein compressing the at least one sequence of video images to generate the first and the second sequences of video images further comprises; logically subdividing each of a sequence of images into a plurality of image portions; encoding one or more of the image portions in each image of the sequence of images using a first compression format and encoding the remainder of the image portions in each image using a second compression format, the second compression format dependent on image portions previously-encoded using the first and/or the second compression formats; generating a forward error correction (FEC) code for image portions encoded using at least the first compression format; transmitting the first sequence of compressed video images and the FEC code with each of the image portions encoded using the first compression format to the first client, transmitting the updated second sequence of compressed video images including the video and audio of the first user and the FEC codes with each of the image portions encoded using the first compression format to the second client, wherein compressed video images that have more data than can be transmitted at a peak data rate in one image time are transmitted over one or more additional image times; decompressing the first sequence of compressed video images on the first client and decompressing the updated second sequence of compressed video images including the video and audio of the first user on the second client and using at least some of the FEC codes to correct errors in at least some of the image portions; rendering the video images contained in the first sequence of compressed video images on a display of the first client and rendering the video images contained in the updated second sequence of compressed video images including the video and audio of the first user on a display of the second client; wherein the operations of generating first and second control signals, capturing video and audio of the first user, transmitting the first and second control signals over the network, transmitting the video and audio of the first user, routing the first and second control signals transmitted over the network to one or more servers, executing the video game or application, compressing the video output using low latency compression to generate the first and second sequences of compressed video images, incorporating the video and/or audio of the first user into the second sequence of video images, generating the FEC codes, transmitting the first and second sequences of compressed video images and FEC codes to the first and second clients, respectively, decompressing the first and second sequences of compressed video images on the first and second clients, respectively, and using the FEC codes to correct errors in at least some of the tiles, and rendering the video images are performed with a latency such that both the first and second users have 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, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 26, 27, 28, 29, 30, 31)
-
-
21. A computer-implemented system comprising:
-
a first client device generating first control signals in response to user input from an input device of the first client device being actuated by a first user as the first user is playing a video game or using an application; a first client device capturing video and audio of the first user as the first user is playing the video game or using the application; a second client device generating second control signals in response to user input from an input device of the second client device being actuated by a second user as the second user is playing a video game or using an application; a first network interface on the first client device transmitting the first control signals to one or more video game or application servers over a network which includes at least one public network component and transmitting the video and audio of the first user from the first client to the one or more servers; a second network interface on the second client device transmitting the second control signals to one or more video game or servers over a network which includes at least one public network component; a network component to route the first and second control signals to the one or more video game or application servers executing the video game or application; the one or more video game or application servers receiving the first and second control signals related to the video game or application over the network which includes the at least one public network component, and responsively executing program code of the video game or application based on both the first and second control signals to generate video output comprising at least one sequence of video images of the video game or application; the one or more servers determining characteristics of the first client and/or a first communication channel to the first client and determining characteristics of the second client and/or a second communication channel to the second client; a low latency encoder to compress the at least one sequence of video images in accordance with the determined characteristics of the first client and/or first communication channel and generate a first sequence of compressed video images having a first set of characteristics, the latency encoder to compress the at least one sequence of video images in accordance with the determined characteristics of the second client and/or second communication channel and generate a second sequence of compressed video images having a second set of characteristics, incorporating the video and/or audio of the first user into the second sequence of video images compressed in accordance with the determined characteristics of the second client and/or the second communication channel to update the second sequence of compressed video images, wherein compressing the at least one sequence of video images to generate the first and the second sequences of video images further comprises; logically subdividing each of a sequence of images into a plurality of image portions; encoding one or more of the image portions in each image of the sequence of images using a first compression format and encoding the remainder of the image portions in each image using a second compression format, the second compression format dependent on image portions previously-encoded using the first and/or the second compression formats; FEC encoding logic to generate a forward error correction (FEC) code for image portions encoded using at least the first compression format; wherein the first and updated second sequences of compressed video images including the video and audio of the first user and the FEC codes are transmitted with each of the image portions encoded using the first compression format to the first and second client devices, respectively, wherein compressed video images that have more data than can be transmitted at a peak data rate in one image time are transmitted over one or more additional image times; wherein the first client device decompresses the first sequence of compressed video images and the second client device decompresses the updated second sequence of compressed video images including the video and audio of the first user , the first and second clients using at least some of the FEC codes to correct errors in at least some of the image portions; wherein the video images in the first and updated second sequences of video images including the video and audio of the first user are rendered on displays of the first and second client devices, respectively; wherein the operations of generating first and second control signals, capturing video and audio of the first user, transmitting the first and second control signals over the network, transmitting the video and audio of the first user, routing the first and second control signals transmitted over the network to one or more servers, executing the video game or application, compressing the video output using low latency compression to generate the first and second sequences of compressed video images, incorporating the video and/or audio of the first user into the second sequence of video images, generating the FEC codes, transmitting the first and second sequences of compressed video images and FEC codes to the first and second clients, respectively, decompressing the first and second sequences of compressed video images on the first and second clients, respectively, and using the FEC codes to correct errors in at least some of the tiles, and rendering the video images are performed with a latency such that both the first and second users have the perception that the selected video game or application is responding instantly to the signals. - View Dependent Claims (22, 23, 24, 25)
-
Specification