Adaptive jitter buffering
First Claim
Patent Images
1. A receiving node in a packet communication system, comprising:
- a jitter buffer that has a variable size, that stores packets arriving at the receiving node, and that releases stored packets to an application executing in the receiving node, wherein each packet has a respective sequence number, stored packets are released periodically, and each entry in the jitter buffer has one of at least three states; and
a processor that varies the size of the jitter buffer based on an estimated variation of packet transmission delay derived from the times of arrival of stored packets.
1 Assignment
0 Petitions
Accused Products
Abstract
In a packet communication system, the delay time needed in a jitter buffer is determined, enabling a smooth data feed to an application without excessive delays, by methods and apparatus that vary the size of the jitter buffer based on an estimated variation of packet transmission delay derived from the times of arrival of stored packets. A variance buffer stores variances of the times of arrival of stored packets, and the estimated variation of packet transmission delay is derived from the stored variances. The size of the jitter buffer can be changed preferentially during periods of discontinuous packet transmission.
-
Citations
15 Claims
-
1. A receiving node in a packet communication system, comprising:
-
a jitter buffer that has a variable size, that stores packets arriving at the receiving node, and that releases stored packets to an application executing in the receiving node, wherein each packet has a respective sequence number, stored packets are released periodically, and each entry in the jitter buffer has one of at least three states; and
a processor that varies the size of the jitter buffer based on an estimated variation of packet transmission delay derived from the times of arrival of stored packets. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of storing in a buffer packets arriving at a receiving node in a packet communication system and releasing arrived packets to an application executing in the receiving node, comprising the steps of:
-
determining a time Tr to release a first arrived packet to the application, wherein the time Tr is the first packets arrival time Ta plus an initial delay;
while waiting for the first arrived packet to be released from the buffer, comparing a current time to the time Tr and releasing the first arrived packet when the time Tr has passed; and
after the first arrived packet is released, releasing stored packets periodically at first intervals;
wherein a size of the buffer varies based on an estimated variation of packet transmission delay derived from times of arrival of stored packets. - View Dependent Claims (8, 9)
-
-
10. A method of adapting a size of a buffer that stores packets arriving at a receiving node in a packet communication system, comprising the steps of:
-
counting a number of arrived packets having sequence numbers lower than that of an oldest arrived packet stored in the buffer;
comparing the number to an accepted loss parameter;
if the number is greater than the accepted loss parameter, increasing a change indicator counter and if the number is equal to or less than the accepted loss parameter, decreasing the change indicator counter;
increasing the size of the buffer when the change indicator counter reaches an indicator roof parameter if the buffer is not already at its largest permitted size; and
decreasing the size of the buffer when the change indicator counter reaches an indicator floor parameter if the buffer is not already at its smallest permitted size;
wherein the size of the buffer varies based on an estimated variation of packet transmission delay derived from times of arrival of stored packets. - View Dependent Claims (11, 12, 13, 14, 15)
determining an expected arrival time of a packet in relation to an arrival time of a first packet of a packet sequence;
determining an arrival time variance for the packet;
determining a measured delay that is a time the packet will be delayed in the buffer;
determining a desired delay based on the arrival time variance and the accepted loss parameter; and
determining the size of the buffer based on the desired delay and the measured delay.
-
-
13. The method of claim 12, wherein arrival time variances are stored in a variance buffer, stored arrival time variances are sorted and normalized, measured delays are accumulated for packets having arrival time variances stored in the variance buffer, the desired delay is determined based on the sorted, normalized arrival time variances and the accepted loss parameter, and the size of the buffer is determined based on the desired delay and an average measured delay derived from the accumulated measured delays.
-
14. The method of claim 10, wherein the size of the buffer is decreased while the receiving node is in a discontinuous transmission mode, thereby avoiding discarding arrived packets that hold speech information.
-
15. The method of claim 14, further comprising the step of storing in a DTX buffer selected packets arriving at the receiving node;
- wherein an arriving packet is selected based on at least one of whether the arriving packet is first to arrive after a speech period and holds total noise information and whether the arriving packet contains noise-update information, arrives after a speech period, and has a respective sequence number that is subsequent to the sequence number of an earlier arriving packet holding speech information; and
the size of the buffer is decreased while packets are being selected, thereby avoiding discarding packets holding speech information.
- wherein an arriving packet is selected based on at least one of whether the arriving packet is first to arrive after a speech period and holds total noise information and whether the arriving packet contains noise-update information, arrives after a speech period, and has a respective sequence number that is subsequent to the sequence number of an earlier arriving packet holding speech information; and
Specification