Clock synchronization and dynamic jitter management for voice over IP and real-time data
First Claim
1. A packet-based real-time data receiver comprising:
- a packet transmission fixed delay estimator, said fixed delay estimator keeping a fixed delay estimate over the duration of a conference connection using said receiver, and adjusting said fixed delay estimate downwards during said conference in response to the arrival of a conference packet prior to a minimum arrival time predicted for that packet by said fixed delay estimate; and
a packet transmission variable delay estimator, said variable delay estimator calculating a variable packet delay for each conference packet by subtracting a predicted minimum arrival time for each packet, based on said fixed delay estimate, from the actual arrival time of each packet.
1 Assignment
0 Petitions
Accused Products
Abstract
A real-time receiver and method for receiving and playing out real-time packetized data are disclosed. The receiver includes a packet transmission fixed delay estimator and a packet transmission variable delay estimator. The fixed delay estimator determines, using packets received up to the current point in a conference, the non-variable portion of observed delays. This non-variable portion is subtracted from each packet'"'"'s observed delay to obtain a variable delay estimate for that packet.
Since variable delays actually drive the buffering time needed at the receiver to achieve smooth playout, the packet variable delay estimates can be used directly to adjust playout delay. Adaptive playout delay is preferably set aggressively low, based on observed packet variable delay estimates, to reduce data latency. Playout delay can be adjusted rapidly upwards when higher packet delays are observed, allowing rapid adaptation to network statistical variations and reducing the frequency of late packets.
-
Citations
18 Claims
-
1. A packet-based real-time data receiver comprising:
-
a packet transmission fixed delay estimator, said fixed delay estimator keeping a fixed delay estimate over the duration of a conference connection using said receiver, and adjusting said fixed delay estimate downwards during said conference in response to the arrival of a conference packet prior to a minimum arrival time predicted for that packet by said fixed delay estimate; and
a packet transmission variable delay estimator, said variable delay estimator calculating a variable packet delay for each conference packet by subtracting a predicted minimum arrival time for each packet, based on said fixed delay estimate, from the actual arrival time of each packet. - View Dependent Claims (2, 3)
-
-
4. A packet-based real-time data receiver comprising:
-
a playout buffer for queuing packets from a received data stream for playout, said packets in said received data stream each containing a packet timestamp generated by a remote system send clock operating at a send clock rate;
a local timestamp generator operating at approximately said send clock rate;
a packet transmission fixed delay estimator, said fixed delay estimator comparing the packet timestamp from each received packet to a receive timestamp taken from said local timestamp generator at approximately the arrival time of said received packet, and adjusting a fixed delay estimate downwards in response to the arrival of packets prior to an arrival time predicted by said fixed delay estimate;
a packet transmission variable delay estimator, said variable delay estimator calculating a variable delay for each packet by subtracting said fixed delay estimate from the difference between the receive timestamp and the packet timestamp; and
a playout delay estimator that non-linearly adapts a playout delay estimate for received packets based on the relative magnitude of the playout delay estimate as compared to a variable delay calculated by said packet transmission variable delay estimator. - View Dependent Claims (5, 6)
-
-
7. A method of receiving and playing packetized real-time data, said method comprising the steps of:
-
establishing a real-time conference over a packet-switched network;
for a first real-time data packet received during said conference, initializing a packet transmission fixed delay estimate and a playout delay estimate for the conference; and
for each additional real-time data packet received during said conference, calculating a packet delay estimate, adjusting said fixed delay estimate downwards if said fixed delay estimate is greater than said packet delay estimate, and subtracting said fixed delay estimate from said packet delay estimate, thereby obtaining a packet variable delay estimate. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. A method of receiving and playing packetized real-time data, said method comprising the steps of:
-
establishing a real-time conference over a packet-switched network;
for a first real-time data packet received during said conference, initializing a packet transmission fixed delay estimate and a playout delay estimate for the conference;
introducing an artificial positive rate bias in said fixed delay estimate;
for each additional real-time data packet received during said conference, calculating a packet delay estimate, adjusting said fixed delay estimate downwards if said fixed delay estimate is greater than said packet delay estimate, and subtracting said fixed delay estimate from said packet delay estimate, thereby obtaining a packet variable delay estimate;
adapting said playout delay estimate throughout the duration of said conference to approximately maintain a preset ratio between said playout delay estimate and said packet variable delay estimates calculated for said additional data packets; and
periodically adjusting playout time for data packets received during said conference to include a buffer time, measured with reference to the fixed delay estimate, corresponding to said playout delay estimate.
-
Specification