Video compression system and method for reducing the effects of packet loss over a communication channel
First Claim
1. A computer-implemented method for streaming interactive audio/video (A/V) data comprising:
- executing one or more applications on a computer communicatively coupled to a network;
receiving packet data from client devices of a plurality of users and routing the packet data to the corresponding one or more of the applications being executed, the packet data including user control input generated at the client devices coupled to the network, one or more of the applications being operable to compute the A/V data responsive to the user control input;
receiving the A/V data from the one or more applications;
compressing portions of the A/V data in parallel using one or more processing units for generating compressed A/V data;
routing the compressed A/V data to client devices of the plurality of users over corresponding communication channels,wherein the routing includes,determining channel bandwidth of a communication channel used to communicate with a client device of a user of the plurality of users, the channel bandwidth determined by monitoring an amount of data loss and/or latency for a test stream transmitted to the client device; and
streaming the compressed A/V data to the client device over the network, wherein a data rate of the streaming of the compressed A/V data to the client device is set based on the channel bandwidth determined for the communication channel used for communicating with the client device.
1 Assignment
0 Petitions
Accused Products
Abstract
Methods for hosting low-latency streaming interactive audio/video (A/V) include executing one or more video games or applications on a server communicatively coupled to a data network. Packet streams are received from a plurality of users and routed to the one or more video games. The packet streams include user control input that are used to compute A/V data in response. The A/V data are received from the video games or applications. Portions of the A/V data are compressed in parallel using processing units resulting in low-latency streaming compressed A/V data. The low-latency streaming compressed A/V data are routed to each of the users over a corresponding data network communication channel. The executing of video games, receiving of packet streams and A/V data, compressing portions of the A/V data and routing the compressed A/V data are performed with a latency such that at least one user has the perception that the controlled video game is responding instantly.
-
Citations
20 Claims
-
1. A computer-implemented method for streaming interactive audio/video (A/V) data comprising:
-
executing one or more applications on a computer communicatively coupled to a network; receiving packet data from client devices of a plurality of users and routing the packet data to the corresponding one or more of the applications being executed, the packet data including user control input generated at the client devices coupled to the network, one or more of the applications being operable to compute the A/V data responsive to the user control input; receiving the A/V data from the one or more applications; compressing portions of the A/V data in parallel using one or more processing units for generating compressed A/V data; routing the compressed A/V data to client devices of the plurality of users over corresponding communication channels, wherein the routing includes, determining channel bandwidth of a communication channel used to communicate with a client device of a user of the plurality of users, the channel bandwidth determined by monitoring an amount of data loss and/or latency for a test stream transmitted to the client device; and streaming the compressed A/V data to the client device over the network, wherein a data rate of the streaming of the compressed A/V data to the client device is set based on the channel bandwidth determined for the communication channel used for communicating with the client device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-implemented method for streaming interactive audio/video (A/V) data comprising:
-
executing one or more applications on a computer communicatively coupled to a network; receiving packet data from client devices of a plurality of users and routing the packet data to the corresponding one or more of the applications being executed, the packet data including user control input generated at the client devices coupled to the network, one or more of the applications being operable to compute the A/V data responsive to the user control input; receiving the A/V data from the one or more applications; compressing portions of the A/V data in parallel using one or more processing units resulting in compressed A/V data; routing the compressed A/V data to client devices of the plurality of users over corresponding communication channels, wherein the routing includes, dynamically adjusting a data rate of the compressed A/V data streaming through a communication channel to a client device associated with a user of the plurality of users, the adjusting of the data rate is based on channel bandwidth determined for the communication channel and is performed by modifying a resolution of images of the A/V data, wherein when the resolution of the images is modified, the client device associated with the user is configured to scale up the images to maintain a same image size on a display screen of the client device. - View Dependent Claims (11, 12, 13, 14)
-
-
15. A computer-implemented method for streaming interactive audio/video (A/V) data comprising:
-
executing one or more video games on a computer communicatively coupled to a network; receiving packet data from client devices of a plurality of users and routing the packet data to the corresponding one or more of the video games being executed, the packet data including user control input generated at the client devices coupled to the network, one or more of the video games being operable to compute the A/V data responsive to the user control input; receiving the A/V data from the one or more video games; compressing portions of the A/V data in parallel using one or more processing units of the computer to generate compressed A/V data; routing the compressed A/V data to client devices of the plurality of users over corresponding communication channels, wherein the routing includes, dynamically adjusting a data rate of the compressed A/V data transmitted over a communication channel to a client device associated with a user of the plurality of users, the adjusting of the data rate is based on channel bandwidth determined for the communication channel and is performed by modifying a frame rate of the A/V data, in response to detecting maximum data rate representing channel bandwidth of the communication channel. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification