Clock skew compensation for a jitter buffer
First Claim
1. A method for processing packets of data, the method comprising the steps of:
- receiving, at a jitter buffer, a sequence of packets encoded at a first sampling rate by an audio encoder, wherein each packet includes audio data having at least one sample;
determining a clock skew between the audio encoder having the first sampling rate and an audio decoder having a second sampling rate, the clock skew representative of a difference between the first sampling rate and the second sampling rate;
selecting a subset of packets from the sequence of packets based on a magnitude of the clock skew; and
altering each packet of the subset of packets before the packet is provided to the audio decoder to collectively compensate for the clock skew.
10 Assignments
0 Petitions
Accused Products
Abstract
A method and system to minimize the potential of jitter buffer underflow/overflow resulting from a difference in sampling rates of an audio encoder and an audio decoder are disclosed herein. The difference in sampling rates, or clock skew, can be determined from a difference between an actual amount of data stored in a jitter buffer and the desired, or threshold, amount. A subset of packets from a sequence of packets output to the audio decoder can be altered to compensate for the clock skew, whereby the amount of data associated with the subset of packets is decreased when the sampling rate of the encoder is greater than the sampling rate of the decoder, and the amount of data is increased when the sampling rate of the encoder is less than the sampling rate of the decoder. The present invention finds particular advantage in providing audio data via a packet-switched network.
81 Citations
40 Claims
-
1. A method for processing packets of data, the method comprising the steps of:
-
receiving, at a jitter buffer, a sequence of packets encoded at a first sampling rate by an audio encoder, wherein each packet includes audio data having at least one sample;
determining a clock skew between the audio encoder having the first sampling rate and an audio decoder having a second sampling rate, the clock skew representative of a difference between the first sampling rate and the second sampling rate;
selecting a subset of packets from the sequence of packets based on a magnitude of the clock skew; and
altering each packet of the subset of packets before the packet is provided to the audio decoder to collectively compensate for the clock skew. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method to minimize underflow and overflow of a jitter buffer, the method comprising the steps of:
-
receiving, at the jitter buffer, a sequence of packets from an audio encoder having a first sampling rate, each packet of the sequence of packets including audio data having at least one sample;
determining a difference between an actual amount of data stored in the jitter buffer and a threshold, wherein the difference represents a clock skew between the first sampling rate and a second sampling rate;
selecting a subset of packets to be altered from the sequence of packets, wherein a number of packets included in the subset is based on the difference;
determining an alter amount based on a relationship between the difference and the number of packets in the subset; and
altering, by the alter amount, each packet of the subset of packets, wherein a total amount of audio data of a packet is decreased when the actual amount of data is greater than the threshold, and wherein the total amount of audio data of a packet is increased when the actual amount of data is less than the threshold. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer readable medium, said computer readable medium comprising a set of executable instructions adapted to manipulate a processor to:
-
receive, at a jitter buffer, a sequence of packets encoded at a first sampling rate by an audio encoder, wherein each packet includes audio data having at least one sample;
determine a clock skew between the audio encoder having the first sampling rate and an audio decoder having a second sampling rate, the clock skew representative of a difference between the first sampling rate and the second sampling rate;
select a subset of packets from the sequence of packets based on a magnitude of the clock skew; and
alter each packet of the subset of packets before the packet is provided to the audio decoder to collectively compensate for the clock skew. - View Dependent Claims (23)
-
-
24. A system comprising:
-
an audio decoder to decode audio data at a first sampling rate;
a jitter buffer coupled to the audio decoder, wherein the jitter buffer is adapted to store a plurality of packets of audio data from an audio encoder, the audio data encoded at a second sampling rate;
a clock skew compensation logic coupled to the audio decoder and the jitter buffer, wherein the clock skew compensation logic is adapted to;
enlarge each packet of a subset of packets by an alter amount when the first sampling rate is greater than the second sampling rate to generate a set of altered packets; and
reduce each packet of a subset of packets by an alter amount when the first sampling rate is less than the second sampling rate to generate a set of altered packets. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
-
31. In a system for communicating audio information, a system comprising:
-
a first data terminal device having an audio encoder, wherein the first data terminal device is adapted to transmit audio data encoded at a first rate over a communications network; and
a second data terminal device coupled to the first data terminal device, the second data terminal having a jitter buffer for receiving incoming audio data over a communications network and an audio decoder for decoding audio data at a second rate, and wherein the second data terminal device is adapted to modify a size of the incoming audio data to compensate for a difference between the first rate and the second rate. - View Dependent Claims (32, 33, 34, 35)
-
-
36. A data terminal device to process audio data comprising:
-
a jitter buffer for receiving incoming audio data encoded at a first rate;
a decoder to decode the incoming audio data at a second rate; and
means for modifying a size of the incoming audio data to compensate for a difference between the first rate and the second rate. - View Dependent Claims (37, 38, 39, 40)
-
Specification