Video Compression System and Method for Compensating for Bandwidth Limitations of a Communication Channel
Abstract
A system and method are described below for encoding interactive video used in video games streamed from a server to a client. For example, one embodiment of a computer-implemented method for performing video compression, and detecting a maximum data rate of a communication channel between a server and a client. The method includes transmitting a video stream comprising a series of compressed frames from the server to the client. The method includes detecting that the maximum data rate will be exceeded if a particular frame or frames of the sequence of frames are transmitted from the server to the client over the communication channel. The method includes reducing the frame rate of the video stream by adjusting compression of the video frames being sent from the server to the client to avoid exceeding the maximum data rate.
Claims
exact text as granted — not AI-modified1 . A computer-implemented method for streaming online video games over a network, comprising:
receiving control signals by a server, the control signals received from a client device over the network, the control signals are responsive to a user input from the client device for play of a video game; generating a plurality of video frames resulting from execution of the video game; encoding the plurality of video frames to generate compressed video frames; detecting by the server, a maximum data rate of a communication channel established between the server and the client device, wherein determining the maximum data rate is enabled by sending an increasingly higher data rate test stream to the client device until a packet loss rate exceeds an acceptable level as detected by the server and then responsively reducing a data rate of the test stream until the packet loss rate is at least below the acceptable level; updating a compression level by the encoder to maintain the data rate below the detected maximum data rate; transmitting compressed video frames from the server to the client device using the compression level determined using the test stream; and periodically continuing to monitor if the packet loss rate increases above the acceptable level while transmitting compressed video frames for the video game; wherein the compression level is increased to maintain the packet loss rate below the acceptable level.
2 . The method of claim 1 , wherein a new maximum data rate is set for the increased compression level.
3 . The method of claim 1 , wherein the packet loss rate is determined by the server based on feedback received from the client device.
4 . The method as in claim 1 , wherein the compressed video frames are compressed in either a first encoding format or a second encoding format, the first encoding format comprising video frames which are dependent on previous video frames and the second encoding format comprising video frames which are not dependent on previous video frames.
5 . The method as in claim 4 , wherein levels of the first encoding format is adjusted to reduce the data rate of the compressed video frames to ensure the levels are acceptable.
6 . The method as in claim 1 , further comprising:
encoding audio as a compressed audio stream to be sent with the compressed video frames.
7 . The method as in claim 1 , wherein changes to the compression level change a quality of the compressed video frames.
8 . The method as in claim 1 , wherein the data rate is additionally adjusted by modifying an image resolution of the compressed video frames.
9 . The method as in claim 8 , wherein when the image resolution is modified, the client device is configured to scale up or scale down the image of the compressed video frames to maintain a same image size on a display screen coupled to the client device.
10 . The method as in claim 1 , further comprising,
generating forward error correction (FEC) data to protect at least a portion of the compressed video frames.
11 . The method as in claim 10 , wherein said FEC is used to remove visual artifact in video images received by the client due to packet loss.
12 . The method as in claim 11 , wherein FEC is selectively used when a disruption in the compressed video frames would exceed a specified amount of time.
13 . The method as in claim 1 , further comprising:
protecting all audio packets generated for the video game using forward error correction (FEC).
14 . Computer readable media having program instructions for streaming online video games over a network, comprising:
program instructions for receiving control signals by a server, the control signals received from a client device over the network, the control signals are responsive to a user input from the client device for play of a video game; program instructions for generating a plurality of video frames resulting from execution of the video game; program instructions for encoding the plurality of video frames to generate compressed video frames; program instructions for detecting by the server, a maximum data rate of a communication channel established between the server and the client device, wherein determining the maximum data rate is enabled by sending an increasingly higher data rate test stream to the client device until a packet loss rate exceeds an acceptable level as detected by the server and then responsively reducing a data rate of the test stream until the packet loss rate is at least below the acceptable level; program instructions for updating a compression level by the encoder to maintain the data rate below the detected maximum data rate; program instructions for transmitting compressed video frames from the server to the client device using the compression level determined using the test stream; and program instructions for periodically continuing to monitor if the packet loss rate increases above the acceptable level while transmitting compressed video frames for the video game; wherein the compression level is increased to maintain the packet loss rate below the acceptable level.
15 . The computer readable media of claim 14 , wherein the packet loss rate is determined by the server based on feedback received from the client device.
16 . The computer readable media of claim 14 , wherein the compressed video frames are compressed in either a first encoding format or a second encoding format, the first encoding format comprising video frames which are dependent on previous video frames and the second encoding format comprising video frames which are not dependent on previous video frames.
17 . The computer readable media of claim 16 , wherein levels of the first encoding format is adjusted to reduce the data rate of the compressed video frames to ensure the levels are acceptable.
18 . The computer readable media of claim 14 , further comprising:
program instructions for encoding audio as a compressed audio stream to be sent with the compressed video frames.
19 . The computer readable media of claim 14 , wherein the data rate is additionally adjusted by modifying an image resolution of the compressed video frames.
20 . The computer readable media of claim 19 , wherein when the image resolution is modified, the client device is configured to scale up or scale down the image of the compressed video frames to maintain a same image size on a display screen coupled to the client device.Join the waitlist — get patent alerts
Track US2020230505A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.