Congestion control bitrate algorithm
First Claim
1. A method comprising, with a sender computing system:
- sending, via an unreliable protocol, a stream of data packets to one or more recipient devices over a network, the stream of data packets including source packets and forward error correction (FEC) packets;
during said sending, determining a predetermined amount of data packets that will be sent during respective periods of time corresponding to regular streaming periods for periodic feedback reports;
during said sending, receiving one or more feedback reports from the one or more recipient devices, each said periodic feedback report characterizing packet loss during one of said respective periods of time;
normalizing the packet loss in at least one of the feedback reports to the predetermined amount of data packets when a number of data packets sent by the sender computing system during the respective period of time is less than the predetermined amount; and
during said sending, adjusting a rate at which said data packets are sent in the stream in response to at least one of said feedback reports.
3 Assignments
0 Petitions
Accused Products
Abstract
The method may include sending, via an unreliable protocol, a stream of data packets to at least one recipient device over a network. The stream of data packets may include source packets and forward error correction (FEC) packets. The method may include, during said sending, receiving one or more feedback reports from the at least one recipient device, each said periodic feedback report characterizing packet loss during a corresponding period of time. The method may also include, during said sending, adjusting a rate at which said data packets are sent in the stream in response to at least one of said feedback reports. Adjusting the rate may include increasing a FEC rate at which the FEC packets are sent while maintaining a source rate at which the source packets are sent in response to a one of the feedback reports which characterizes the packet loss as within an acceptable level.
10 Citations
30 Claims
-
1. A method comprising, with a sender computing system:
-
sending, via an unreliable protocol, a stream of data packets to one or more recipient devices over a network, the stream of data packets including source packets and forward error correction (FEC) packets; during said sending, determining a predetermined amount of data packets that will be sent during respective periods of time corresponding to regular streaming periods for periodic feedback reports; during said sending, receiving one or more feedback reports from the one or more recipient devices, each said periodic feedback report characterizing packet loss during one of said respective periods of time; normalizing the packet loss in at least one of the feedback reports to the predetermined amount of data packets when a number of data packets sent by the sender computing system during the respective period of time is less than the predetermined amount; and during said sending, adjusting a rate at which said data packets are sent in the stream in response to at least one of said feedback reports. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A sender computing system comprising:
-
at least one processor unit; at least one memory unit coupled to the at least one processor unit; wherein the at least one processor unit and the at least one memory unit are configured to perform a method, the method comprising; sending, via an unreliable protocol, a stream of data packets to one or more recipient devices over a network, the stream of data packets including source packets and forward error correction (FEC) packets; during said sending, determining a predetermined amount of data packets that will be sent during respective periods of time corresponding to regular streaming periods for periodic feedback reports; during said sending, receiving one or more feedback reports from the one or more recipient devices, each said periodic feedback report characterizing packet loss during one of said respective periods of time; normalizing the packet loss in at least one of the feedback reports to the predetermined amount of data packets when a number of data packets sent by the sender computing system during the respective period of time is less than the predetermined amount; and during said sending, adjusting a rate at which said data packets are sent in the stream in response to at least one of said feedback reports, wherein said adjusting the rate comprises increasing a FEC rate at which the FEC packets are sent while maintaining a source rate at which the source packets are sent in response to a particular one of the feedback reports which characterizes the packet loss as within an acceptable level. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A non-transitory computer readable medium having computer readable instructions embodied therein, the computer readable instructions being configured to implement a method when executed, the method comprising:
-
sending, via an unreliable protocol, a stream of data packets to one or more recipient devices over a network, the stream of data packets including source packets and forward error correction (FEC) packets; during said sending, determining a predetermined amount of data packets that will be sent during respective periods of time corresponding to regular streaming periods for periodic feedback reports; during said sending, receiving one or more feedback reports from the one or more recipient devices, each said periodic feedback report characterizing packet loss during one of said respective periods of time; during said sending, normalizing the packet loss in at least one of the feedback reports to the predetermined amount of the data packets when a number of data packets sent during the respective period of time is less than the predetermined amount; and during said sending, adjusting a rate at which said data packets are sent in the stream in response to at least one of said feedback reports. - View Dependent Claims (30)
-
Specification