Method and apparatus for an adaptive de-jitter buffer in a wireless communication system
First Claim
Patent Images
1. An apparatus, comprising:
- a memory storage unit configured to store packets of data; and
a first controller adapted to determine a target delay length for the memory storage unit based on a filtered value of a percentage of underflows due to delay of said packets of data, so as to track said target delay length with the percentage of underflows wherein the first controller is further configured to calculate the target delay length as;
1 Assignment
0 Petitions
Accused Products
Abstract
Adaptive De-Jitter Buffer for Voice over IP (VoIP) for packet switch communications. The de-jitter buffer methods and apparatus presented avoid playback of underflows while balancing end-to-end delay. In one example, the de-jitter buffer is recalculated at the beginning of each talkspurt. In another example, talkspurt packets are compressed upon receipt of all remaining packets.
-
Citations
27 Claims
-
1. An apparatus, comprising:
-
a memory storage unit configured to store packets of data; and a first controller adapted to determine a target delay length for the memory storage unit based on a filtered value of a percentage of underflows due to delay of said packets of data, so as to track said target delay length with the percentage of underflows wherein the first controller is further configured to calculate the target delay length as; - View Dependent Claims (5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
2. The apparatus as in 1, wherein the first controller is configured to calculate the PERdelay as:
-
PERdelay=PER_CONSTANT×
PERdelay+(1—
PER_CONSTANT)×
Current_PERdelaywherein PER_CONSTANT is the time constant for the filter used to estimate PERdelay. - View Dependent Claims (3, 4)
-
-
14. A method for processing packetized data, comprising:
-
storing packets of data in a memory storage unit; determining a target delay length for the memory storage unit based on a filtered value of a percentage of underflows due to delay of said packets of data, so as to track said target delay length with the percentage of underflows; evaluating a status of the memory storage unit with respect to the target delay length, wherein the status of the memory storage unit is a measure of data stored in the memory storage unit; and initiating time warping of at least one packet from the memory storage unit if the status of the memory storage violates the target delay length, wherein determining the target delay comprises the following calculation; - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
-
21. A storage medium containing a set of instructions for execution by a processor, the set of instructions comprising:
-
an input routine for storing packets of data in a memory storage unit; a target delay length calculation routine for determining a target delay length for the memory storage unit based on a filtered value of a percentage of underflows due to delay of said packets of data, so as to track said target delay length with the percentage of underflows; a first routine for evaluating a status of the memory storage unit with respect to the target delay length, wherein the status of the memory storage unit is a measure of data stored in the memory storage unit; and a second routine initiating time warping of at least one packet from the memory storage unit if the status of the memory storage violates the target delay length, wherein determining the target delay comprises the following calculation; If (PERdelay<
TARGET_VALUE) thenDEJITTER_DELAY=DEJITTER_DELAY−
CONSTANT;If (PERdelay>
TARGET_VALUE) thenDEJITTER_DELAY=DEJITTER_DELAY+CONSTANT; Set DEJITTER_DELAY=MAX (MIN_JITTER, DEJITTER_DELAY);
andDEJITTER_DELAY=MIN (MAX_JITTER, DEJITTER_DELAY), wherein PERdelay is a rate of underflows due to delayed packets, the TARGET_VALUE is a targeted rate of delayed packets, the DEJITTER_DELAY is the target delay length of the adaptive de-jitter buffer, the CONSTANT is a pre-defined value, and the MAX_JITTER and MIN_JITTER are pre-defined values which are the maximum and minimum target delay lengths respectively.
-
-
22. An apparatus, comprising:
-
a memory storage unit configured to store packets of data; means for determining a target delay length for the memory storage unit based on a filtered value of a percentage of underflows due to delay of said packets of data, so as to track said target delay length with the percentage of underflows; means for evaluating a status of the memory storage unit with respect to the target delay length, wherein the status of the memory storage unit is a measure of data stored in the memory storage unit; and means for initiating time warping of at least one packet from the memory storage unit if the status of the memory storage violates the target delay length, wherein determining the target delay comprises the following calculation; If (PERdelay<
TARGET_VALUE) thenDEJITTER_DELAY=DEJITTER_DELAY−
CONSTANT;If (PERdelay>
TARGET_VALUE) thenDEJITTER_DELAY=DEJITTER_DELAY+CONSTANT; Set DEJITTER_DELAY=MAX (MIN_JITTER, DEJITTER_DELAY);
andDEJITTER_DELAY=MIN (MAX_JITTER, DEJITTER_DELAY), wherein PERdelay is a rate of underflows due to delayed packets, the TARGET_VALUE is a targeted rate of delayed packets, the DEJITTER_DELAY is the target delay length of the adaptive de-jitter buffer, the CONSTANT is a pre-defined value, and the MAX_JITTER and MIN_JITTER are pre-defined values which are the maximum and minimum target delay lengths respectively. - View Dependent Claims (23, 24, 25, 26, 27)
-
-
25. The apparatus of claim 23, wherein the means for add-overlapping further comprises:
means for identifying a portion of maximum correlation between the first segment and the second segment.
-
26. The apparatus as in claim 22, wherein the means for initiating further comprises:
-
means for time warping a plurality of sequential packets; means for inhibiting time warping for at least one sequential packet, wherein the at least one sequential packet is subsequent to the plurality of sequential packets; and means for enabling time warping subsequent to the at least one sequential packet.
-
-
27. The apparatus as in claim 22, wherein the means for initiating further comprises:
-
means for calculating a time warping rate, wherein the time warping rate is a number of time warped packets over a time window; and means for initiating time warping of packets as a function of the time warping rate.
-
Specification