System and method for adaptive removal of delay jitter effect and low end-to-end delay
First Claim
1. A method comprising:
- calculating, by a delay buffer, a holding time for a plurality of packets input into a network at a selected interval and transmitted during a current time window, the holding time being based on a difference between a current maximum delay of the plurality of packets in the current time window and a delay of a first packet of the plurality of packets in the current time window;
buffering, at the delay buffer, each of the plurality of packets for a duration of the holding time;
arranging, by the delay buffer, the buffered packets in a sequence indicative of an order in which the buffered packets were input into the network; and
playing back, at a reception mechanism, at a selected playback time, a selected one of the buffered packets, the selected playback time being based on at least;
the holding time;
an interval of time over which a first plurality of the buffered packets were input into the network;
a value indicative of an order in which the selected one of the buffered packets was input into the network;
a time at which the selected one of the buffered packets is received; and
a holding time modifier that is multiplied by the holding time, the holding time modifier having a value greater than zero, wherein the selected playback time is equal to a sum of the time at which the selected one of the buffered packets is received, the holding time modifier multiplied by the holding time, and the value indicative of the order in which the selected one of the buffered packets was input into the network multiplied by the interval of time over which the first plurality of the buffered packets were input into the network.
3 Assignments
0 Petitions
Accused Products
Abstract
Systems, modules, methods and computer readable mediums for adaptive removal of delay jitter and low end-to-end delay are provided. The method may include the following operations at a delay buffer: calculating a holding time for a plurality of packets input into a network; buffering each of the plurality of packets for the duration of the holding time; and arranging the buffered packets in a sequence indicative of an order in which the buffered packets were input into the network. The holding time may be based on a difference between a current maximum delay of the plurality of packets in a current time window and a delay of a first packet of the plurality of packets in the current time window. The method may also include playing back the buffered packets at a selected playback time. Playing back the buffered packets may be performed at a reception mechanism.
17 Citations
14 Claims
-
1. A method comprising:
-
calculating, by a delay buffer, a holding time for a plurality of packets input into a network at a selected interval and transmitted during a current time window, the holding time being based on a difference between a current maximum delay of the plurality of packets in the current time window and a delay of a first packet of the plurality of packets in the current time window; buffering, at the delay buffer, each of the plurality of packets for a duration of the holding time; arranging, by the delay buffer, the buffered packets in a sequence indicative of an order in which the buffered packets were input into the network; and playing back, at a reception mechanism, at a selected playback time, a selected one of the buffered packets, the selected playback time being based on at least; the holding time; an interval of time over which a first plurality of the buffered packets were input into the network; a value indicative of an order in which the selected one of the buffered packets was input into the network; a time at which the selected one of the buffered packets is received; and a holding time modifier that is multiplied by the holding time, the holding time modifier having a value greater than zero, wherein the selected playback time is equal to a sum of the time at which the selected one of the buffered packets is received, the holding time modifier multiplied by the holding time, and the value indicative of the order in which the selected one of the buffered packets was input into the network multiplied by the interval of time over which the first plurality of the buffered packets were input into the network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer-based system comprising:
-
a memory having a plurality of maximum delay values stored therein, wherein the plurality of maximum delay values comprises a first maximum delay value associated with a first time window and a second maximum delay value associated with a second time window, the first time window being indicative of a time period that is more recent than a time period associated with the second time window relative to a time period associated with a current maximum delay value; a weighted averager communicatively coupled to the memory, and receiving one or more of the plurality of maximum delay values from the memory and calculating a current maximum delay of a plurality of packets input into a network, the current maximum delay being based on a weighted moving average of the plurality of maximum delay values; and a buffer controller communicatively coupled to the weighted averager, and; receiving the current maximum delay of the plurality of packets; calculating the current maximum delay value by; generating a first product by multiplying the first maximum delay value by a weighted moving average constant; generating a second product by multiplying the second maximum delay value by a modified weighted moving average constant; and determining a sum of the first product and the second product, the modified weighted moving average constant being such that the first product is greater than or equal to the second product calculating a holding time for the plurality of packets based on a difference between the current maximum delay of the plurality of packets and a delay of a first packet of the plurality of packets; buffering each of the plurality of packets for a duration of the holding time; arranging the buffered packets in a sequence indicative of an order in which the buffered packets were input into the network; and playing back the arranged packets at a selected playback time. - View Dependent Claims (11, 12)
-
-
13. A computer-based system comprising:
-
an input mechanism configured to input a plurality of packets into a network at a selected interval during a current time window; a network configured to route the plurality of packets; and a reception mechanism configured to receive the routed plurality of packets and having a module configured for; calculating a holding time for the routed plurality of packets, the holding time being based on a difference between a current maximum delay of the plurality of packets in the current time window and a delay of a first packet of the plurality of packets in the current time window; buffering each of the routed plurality of packets for the duration of the holding time; arranging the buffered packets in a sequence indicative of an order in which the buffered packets were input into the network; and playing back the arranged packets at a selected playback time, the selected playback time being based on at least; the holding time; an interval of time over which a first plurality of the buffered packets were input into the network; a value indicative of an order in which the selected one of the buffered packets was input into the network; a time at which the selected one of the buffered packets is received; and a holding time modifier that is multiplied by the holding time, the holding time modifier having a value greater than zero, wherein the selected playback time is equal to a sum of the time at which the selected one of the buffered packets is received, the holding time modifier multiplied by the holding time, and the value indicative of the order in which the selected one of the buffered packets was input into the network multiplied by the interval of time over which the first plurality of the buffered packets were input into the network. - View Dependent Claims (14)
-
Specification