Adaptive play-out buffers and adaptive clock operation in packet networks
First Claim
1. A non-transitory computer-readable storage medium comprising computer executable instructions for carrying out the steps of:
- setting a timer;
writing a data packet into a jitter buffer at a write address specified by a write address generator;
incrementing the write address generator;
reading a data packet from the jitter buffer at a current read address specified by a read address generator;
conditionally incrementing the read address generator based on;
(i) a current value of the timer, (ii) threshold address difference values T1 and T2, where T2>
T1, and (iii) a difference Δ
n between the write address specified by the write address generator and the current read address specified by the read address generator;
conditionally performing a controlled slip based on the current value of the timer, the threshold address difference values and the difference Δ
n; and
resetting the jitter buffer and the timer if the difference Δ
n is 0.
6 Assignments
0 Petitions
Accused Products
Abstract
Methods and apparatus for a play-out buffer that may adjust offsets between clocks of two ends of a network link with an adaptive play-out buffer and adaptive clock control. The play-out buffer is a circular jitter buffer that permits the absorption of a frequency offset using controlled slips between two nodes of a network. The play-out buffer also accommodates some wander introduced by the time-delay variation across the network. The adaptive clock control reduces the frequency offset between the clocks of the two nodes. In this manner, even though some offsets between two nodes would render communication inefficient, embodiments of the present invention allow the effects of these offsets to be mitigated, thus providing for a better quality coupling.
40 Citations
12 Claims
-
1. A non-transitory computer-readable storage medium comprising computer executable instructions for carrying out the steps of:
-
setting a timer; writing a data packet into a jitter buffer at a write address specified by a write address generator; incrementing the write address generator; reading a data packet from the jitter buffer at a current read address specified by a read address generator; conditionally incrementing the read address generator based on;
(i) a current value of the timer, (ii) threshold address difference values T1 and T2, where T2>
T1, and (iii) a difference Δ
n between the write address specified by the write address generator and the current read address specified by the read address generator;conditionally performing a controlled slip based on the current value of the timer, the threshold address difference values and the difference Δ
n; andresetting the jitter buffer and the timer if the difference Δ
n is 0. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A non-transitory computer-readable storage medium comprising computer executable instructions for carrying out the steps of:
-
writing a data packet into a jitter buffer at a write address specified by a write address generator; incrementing the write address generator; reading a data packet form the jitter buffer from a current read address specified by a read address generator; setting a timer; setting a flag for the data packet; and generating a new read address based on a difference Δ
n between the write address specified by the write address generator and the current read address specified by the read address generator by carrying out one of the following actions;if |Δ
n|>
T3, incrementing the read address generator;if T3≧
|Δ
n|>
T2, checking the flag and the timer and, if the flag is true and the timer has expired, performing a controlled slip, or else, incrementing the read address generator;if T2≧
|Δ
n|>
T1, checking the timer and, if the timer has expired, performing a controlled slip, or else, incrementing the read address generator;if T1≧
|Δ
n|>
0, checking the timer and, if the timer has expired, performing a controlled slip and signaling a need for packet loss concealment, or else, incrementing the read address generator; andif Δ
n is 0, resetting the jitter buffer by re-centering and resetting the timer,wherein T1, T2, and T3 are threshold address difference values. - View Dependent Claims (10, 11, 12)
-
Specification