Timestamp smoothing to remove jitter
AssigneeDolby Laboratories Licensing Corporation
InventorsShanush Prema Thasarathan, Ning Wang, Senaka Chandranath Samarasekera
Life of this patent
Estimating the term…
Abstract
Embodiments are disclosed for timestamp smoothing to remove jitter. In some embodiments, a method of smoothing timestamps associated with audio packets comprises: receiving, using at least one processor, a series of input timestamps for audio packets and their respective packet lengths; estimating, using the at least one processor, an initial timestamp based on the series of input timestamps, the packet lengths and a sample time; calculating, using the at least one processor, a predicted timestamp based on the estimated initial timestamp; and smoothing, using the at least one processor, the predicted timestamp.
Claims14
A method of smoothing timestamps associated with audio packets, the method comprising:
- receiving, using at least one processor, a series of input timestamps for audio packets and their respective packet lengths;
- estimating, using the at least one processor, an initial timestamp based on the series of input timestamps, the packet lengths and a sample time, wherein estimating the initial timestamp comprises:
- calculating, iteratively, an estimated initial timestamp based on the series of input timestamps, their respective packet lengths, the sample time and an initial time in which a current instability in the series of input timestamps is detected;
- storing each estimated initial timestamp in a rolling history array of length Ns;
- sorting the rolling history array;
- determining a new estimate of the initial timestamp based on the sorted rolling history array;
- calculating a mean and variance of the new estimated initial timestamp;
- determining whether a future predicted timestamp will be stable based on the variance;
- stopping the iterative calculating if the future predicted timestamp is determined to be stable;
- and
- setting the estimated initial timestamp to a last value of the mean prior to stopping the iterative calculating;
- calculating, using the at least one processor, a predicted timestamp based on the estimated initial timestamp;
- and
- smoothing, using the at least one processor, the predicted timestamp.
A system comprising:
- one or more processors;
- and
- a non-transitory computer-readable medium storing instructions that, when executed by the one or more processors, cause the one or more processors to:
- receive a series of input timestamps for audio packets and their respective packet lengths;
- estimate an initial timestamp based on the series of input timestamps, the packet lengths and a sample time, wherein estimating the initial timestamp comprises:
- calculating, iteratively, an estimated initial timestamp based on the series of input timestamps, their respective packet lengths, the sample time and an initial time in which a current instability in the series of input timestamps is detected;
- storing each estimated initial timestamp in a rolling history array of length Ns;
- sorting the rolling history array;
- determining a new estimate of the initial timestamp based on the sorted rolling history array;
- calculating a mean and variance of the new estimated initial timestamp;
- determining whether a future predicted timestamp will be stable based on the variance;
- stopping the iterative calculating if the future predicted timestamp is determined to be stable;
- and
- setting the estimated initial timestamp to a last value of the mean prior to stopping the iterative calculating;
- calculate a predicted timestamp based on the estimated initial timestamp;
- and
- smooth the predicted timestamp.
Dependencies are inferred from the claim text.