Temporal drift correction
First Claim
1. A method for temporal drift correction in a real-time electronic communication comprising:
- measuring a size of a receiving data buffer;
comparing the measured size of the receiving data buffer to a predetermined nominal data buffer size to produce a comparison result;
weighting the comparison result with a parameter that relates to and amplifies a perceived value of temporal drift;
determining, based on the comparison result weighted with the parameter, a number of samples to be inserted in or removed from a playback data block; and
modifying the playback data block by inserting of removing a number of samples that is based on the determined number of samples.
7 Assignments
0 Petitions
Accused Products
Abstract
Temporal drift correction may be provided in a real-time audio communication system by measuring a size of a receiving data buffer and comparing that size to a predetermined nominal data buffer size. An amount of temporal drift is characterized as a number of samples per audio playback data block based on the measured data buffer size and the nominal data buffer size. A number of samples to be inserted or removed for each audio playback data block to correct the temporal drift may be determined, and the number of samples for each audio playback data block may be modified. For example, an instantaneous size of the receiving data buffer may be measured, and if measured multiple times, may be averaged over a time period. Heuristic resampling of the audio playback data block also may be performed. When heuristic resampling is performed, multiple consecutive samples of audio data in an audio buffer may be analyzed, consecutive samples with minimal variation in a parameter of their data may be identified, and the number of samples in the identified consecutive samples may be adjusted. A sample may be removed from or added to the identified consecutive samples.
31 Citations
35 Claims
-
1. A method for temporal drift correction in a real-time electronic communication comprising:
-
measuring a size of a receiving data buffer; comparing the measured size of the receiving data buffer to a predetermined nominal data buffer size to produce a comparison result; weighting the comparison result with a parameter that relates to and amplifies a perceived value of temporal drift; determining, based on the comparison result weighted with the parameter, a number of samples to be inserted in or removed from a playback data block; and modifying the playback data block by inserting of removing a number of samples that is based on the determined number of samples. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A computer program, residing on a computer-readable medium, for correcting temporal drift in a real-time electronic communication, comprising instructions for causing a computer to:
-
measure a size of a receiving data buffer; compare the measured size of the receiving data buffer to a predetermined nominal data buffer size to produce a comparison result; weight the comparison result with a parameter that relates to and amplifies a perceived value of temporal drift; determine, based on the comparison result weighted with the parameter, a number of samples to be inserted in or removed from a playback data block; and modify the playback data block by inserting or removing a number of samples that is based on the determined number of samples. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system running programmed processes comprising a process for correcting temporal drift in a real-time electronic communication, the process causing the computer system to:
-
measure a size of a receiving data buffer; compare the measured size the receiving data buffer to predetermined nominal data buffer size to produce a comparison result; weight the comparison result with a parameter that relates to and amplifies a perceived value of temporal drift; determine, based on the comparison result weighted with the parameter, a number of samples to be inserted in or removed from a playback data block; and modify the playback data block by inserting or removing a number of samples that is based on the determined number of samples. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A method for temporal drift correction in a real-time electronic communication comprising:
-
comparing a measured size of a receiving data buffer to a predetermined nominal data buffer size to produce a comparison result; weighting the comparison result with a parameter that relates to and amplifies a perceived value of temporal drift; dividing the weighted comparison result by a number of nominal playback blocks in the data buffer; determining, based on the comparison result weighted with the parameter and divided by the number of nominal play back blocks, a number of samples to be inserted in or removed from a playback data block; and modifying the playback data block by inserting or removing a number of samples that is based on the determined number of samples, wherein; the comparing, weighting and determining are performed in accordance with the formula TD[i]=CF*(AS[i]−
Ns)/Nb, whereTD[i] is the perceived value of temporal drift for an i-th playback block, CF is the parameter and is greater than one, AS[i] is the measured size of the receiving data buffer for the i-th playback block, Ns is the predetermined nominal data buffer size, and Nb is a number of nominal playback blocks in the data buffer. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34, 35)
-
Specification