Patent ID: 7764717

Claim:
A system comprising: an input unit configured to receive a sequence of data units that contain packets from a plurality of source data streams, to extract the packets of the source data streams from the data units, to extract a timestamp value from each of the packets that contains a timestamp field, to assert a packet indication signal for each of the packets, and to generate a stream identifier for each of the packets that identifies the source data stream to which the packet belongs, wherein each of the data units of said sequence includes a corresponding header and at least one packet from at least one of the plurality of source data streams; a storage unit configured to store a number of data records, wherein each data record is configured to store information associated with a corresponding one of the source data streams, wherein each data record includes at least a count field and a timestamp field, wherein the count field of each data record is configured to store a value representing a number of packets of the corresponding source data stream that have been received since a packet containing a timestamp was received in the corresponding source data stream; a control unit configured to compute a data rate estimate for a first of the source data streams in response to a determination that a current packet contains a timestamp value that is a second of two consecutive timestamp values corresponding to the first source data stream, wherein the control unit is configured to compute the data rate estimate based on (a) the value of the count field corresponding to the first source data stream, (b) a first of the two consecutive timestamp values that is stored in the timestamp field corresponding to the first source data stream, and (c) the second timestamp value from the current packet; wherein the data rate estimate is usable to determine a rate of allocation of packets from the first source data stream into a multiplexed output stream which is to be transmitted onto an output channel; wherein the control unit is configured to compute the scheduling rate for the first source data stream according to the relations: PUD=Agg Rate j-1 −S Rate j-1 ( k )+DRE( k ), S Rate j ( k )= PUD≧Thresh )? R LOW :DRE( k ), wherein PUD is a provisional update value; wherein AggRate j-1 is a previous aggregate rate for the output channel; wherein SRate j-1 (k) is a previous scheduling rate for the first source data stream; wherein DRE(k) is the data rate estimate for the first source data stream; wherein Thresh is a rate threshold value; wherein R LOW is a low rate value constant; wherein SRate j (k) is the scheduling rate for the first source data stream.