Network communications bandwidth control
First Claim
1. A method for audio and video data control for communicating streaming video data over a data network including a plurality of computers operated by users and linked to one another by at least one conference bridge, a plurality of cameras for generating said video data and a plurality of microphones for generating said audio data, the network operating under a protocol that provides reports, the method comprising steps of:
- receiving video data from each of said plurality of cameras and each of said plurality of microphones, communicating said video and audio data to others of said users and displaying said video data using displays, and playing said audio data using speakers;
dynamically measuring data packet loss between said bridge and each of said users for one or more of said audio or video data, said bridge recording information in a memory including a sequence number and a reception time for each data packet it receives from each of said plurality of users, said bridge determining a number of lost packets from each of said plurality of users over a substantially identical time period;
dynamically measuring data latency between said users for one or more of said audio or video data;
comparing said dynamically measured data packet loss to a loss limit and comparing said dynamically measured data latency to a latency limit;
determining a rate of data reception of said receiver if either of said loss limit or said latency limit is exceeded, said rate of data reception determined by;
RRU=[(EHSRi−
EHSR[i-1])−
(LPi−
LP[i-1])]/(TS[i]−
TS[i-1])where;
RRU=actual data reception rate (e.g., the number of packets per unit time received by said receiver)EHSRi=The most recent packet sequence number received from said report received from said receiverEHSR[i-1]=The previous packet sequence number received from said report received from said receiverLPi=The most recent cumulative number of packets lost from said report received from the receiverLP[i-1]=The previous cumulative number of packets lost from said report received from the receiverTSi=The timestamp of the report containing EHSRi and LPi.TSii-1=The timestamp of the report containing EHSR[i-1] and LP[i-1],and if one or both of said loss limit or said latency limit is exceeded, reducing the rate of data transmission from the sender for one or more of said audio or video data to not exceed said rate of data reception.
6 Assignments
0 Petitions
Accused Products
Abstract
A method for controlling real time data communications over a packet based network comprises steps of dynamically measuring data packet loss between a receiver and a sender on the network, dynamically measuring data latency between the sender and receiver, and comparing the dynamically measured data packet loss to a loss limit and comparing the dynamically measured data latency to a latency limit. If one or both of the loss limit or the latency limit is exceeded, then the method may include reducing the rate of data transmission from the sender.
64 Citations
34 Claims
-
1. A method for audio and video data control for communicating streaming video data over a data network including a plurality of computers operated by users and linked to one another by at least one conference bridge, a plurality of cameras for generating said video data and a plurality of microphones for generating said audio data, the network operating under a protocol that provides reports, the method comprising steps of:
-
receiving video data from each of said plurality of cameras and each of said plurality of microphones, communicating said video and audio data to others of said users and displaying said video data using displays, and playing said audio data using speakers; dynamically measuring data packet loss between said bridge and each of said users for one or more of said audio or video data, said bridge recording information in a memory including a sequence number and a reception time for each data packet it receives from each of said plurality of users, said bridge determining a number of lost packets from each of said plurality of users over a substantially identical time period; dynamically measuring data latency between said users for one or more of said audio or video data; comparing said dynamically measured data packet loss to a loss limit and comparing said dynamically measured data latency to a latency limit; determining a rate of data reception of said receiver if either of said loss limit or said latency limit is exceeded, said rate of data reception determined by;
RRU=[(EHSRi−
EHSR[i-1])−
(LPi−
LP[i-1])]/(TS[i]−
TS[i-1])where; RRU=actual data reception rate (e.g., the number of packets per unit time received by said receiver) EHSRi=The most recent packet sequence number received from said report received from said receiver EHSR[i-1]=The previous packet sequence number received from said report received from said receiver LPi=The most recent cumulative number of packets lost from said report received from the receiver LP[i-1]=The previous cumulative number of packets lost from said report received from the receiver TSi=The timestamp of the report containing EHSRi and LPi. TSii-1=The timestamp of the report containing EHSR[i-1] and LP[i-1], and if one or both of said loss limit or said latency limit is exceeded, reducing the rate of data transmission from the sender for one or more of said audio or video data to not exceed said rate of data reception. - View Dependent Claims (2, 3, 4, 12, 13, 14, 15, 16, 17)
-
- 5. The audio and video data control system of 1 wherein the step of reducing said rate of data transmission includes intentionally dropping a portion data packets being transmitted from said sender.
-
18. A videoconference computer program product comprising computer readable program instructions that are stored in a memory, the program product for use with a videoconference system, the program instructions when executed by one or more computers cause the one or more computers to perform a method for controlling real time audio and video data communications over the packet based network during a videoconference, wherein packet based audio and video data is communicated using at least a data channel and a control channel, wherein time data is maintained by a sender that includes the time of transmission of each data packet, wherein reports are communicated from a receiver to the sender that include the highest sequence number of data packet received from the sender, said method comprising the steps of:
-
dynamically measuring data packet loss between the receiver and the sender on the network; dynamically measuring data latency time DL between said sender and receiver according to the relationship;
DL=(CT−
TTEHSR)−
(RTCP RTT)/2where CT=current system time; TT=time of transmission of each data packet EHSR=highest sequence number of data packet received from said sender TTEHSR=transmission time TT of the highest sequence number packet reported received in said report; RTCP RTT=control channel round trip time between sender and receiver; comparing said dynamically measured data packet loss to a loss limit and comparing said dynamically measured data latency to a latency limit; and
,if one or both of said loss limit or said latency limit is exceeded, reducing the rate of data transmission from the sender. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A videoconference computer program product, comprising computer readable program instructions that are stored in a memory, the program product for use with a videoconference system, the program instructions when executed by one or more computers cause the one or more computers to perform a method for controlling real time data communications over a packet based network being communicated between a plurality of users linked to one another by a repeater R during a videoconference, said method comprising the steps of:
-
dynamically measuring data packet loss between a receiver and a sender on the network by determining;
LRI=SRI−
Σ
(EJI−
LJI)where; LRI=loss from the output of the repeater to user I taken over all users J such that J≠
I,SRI=The number of packets repeater R sent to user I, EJI=The number of packets user J expected from user I, LJI=loss from user J to user I (as reported by user I), and Σ
(EJI−
LJI) is taken over all J and I;dynamically measuring data latency between said sender and receiver; comparing said dynamically measured data packet loss to a loss limit and comparing said dynamically measured data latency to a latency limit; and
,if one or both of said loss limit or said latency limit is exceeded, reducing the rate of data transmission from the sender. - View Dependent Claims (30, 31, 32, 33)
-
-
34. A method for communicating streaming video data over a data network comprising the steps of:
-
linking a plurality of user computers to one another over a packet based network by at least one conference bridge; and
linking a plurality of cameras to each of the user computers for generating video data, the plurality of user computers communicating real time streaming audio and video data to one another over said bridge;dynamically measuring data packet loss between a receiver and a sender on the network, said data being communicated between a plurality of users linked to one another by a repeater R, where the dynamic measurement of data loss comprises determining;
LRI=SRI−
Σ
(EJI−
LJI)where; LRI=loss from the output of the repeater to user I taken over all users J such that J≠
I,SRI=the number of packets repeater R sent to user I, EJI=the number of packets user J expected from user I, LJI=loss from user J to user I (as reported by user I), and Σ
(EJI−
LJI) is taken over all J and I;dynamically measuring data latency between said sender and receiver;
comparing said dynamically measured data packet loss to a loss limit and comparing said dynamically measured data latency to a latency limit;if one or both of said loss limit or said latency limit is exceeded, reducing the rate of data transmission from the sender and increasing said data communication rate after determining one or both of said data latency and data loss are at acceptable levels, and wherein said data communication rate is increased by an amount INCR1 after a time interval wherein INCR1 is some defined portion of said data communications rate.
-
Specification