IP Library Granted Patent US 7,600,032
Granted Patent B2
US 7,600,032 · App. 11/760,204 · Granted Oct 6, 2009

Temporal drift correction

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,600,032
App. No.
11/760,204
Granted
Oct 6, 2009
Kind
B2
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.

Claims (53)

1. A method for temporal drift correction in a real-time electronic communication comprising:

receiving an electronic communication including multiple samples;

computing, using at least one processor, an amount of temporal drift associated with the received electronic communication, the computing including performing a calculation using an average data buffer size related to the received electronic communication and a nominal data buffer size and multiplying a result, that is based on the calculation, by a convergent factor;

determining a number of samples to be inserted in or removed from the received electronic communication based on the computed amount of temporal drift associated with the received electronic communication;

analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples; and

modifying the received electronic communication by inserting or removing the determined number of samples at the selected one or more portions of the received electronic communication.

2. The method of claim 1 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication in which insertion or removal of the determined number of samples would result in minimal audible artifacts.

3. The method of claim 2 wherein selecting the one or more portions of the received electronic communication in which insertion or removal of the determined number of samples would result in minimal audible artifacts includes selecting the one or more portions of the received electronic communication in which insertion or removal of the determined number of samples would be inaudible.

4. The method of claim 1 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication based on waveform properties of the received electronic communication.

5. The method of claim 1 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication that have minimal variance.

6. The method of claim 1 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication based on a heuristic resampling technique.

7. The method of claim 1 wherein the received electronic communication includes multiple data blocks, and analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more data blocks of the received electronic communication at which to insert or remove samples.

8. The method of claim 7 wherein selecting one or more data blocks of the received electronic communication at which to insert or remove samples includes selecting multiple data blocks at which to insert or remove samples.

9. The method of claim 8 wherein selecting multiple data blocks at which to insert or remove samples includes selecting less than all data blocks at which to insert or remove samples.

10. The method of claim 7 wherein:

computing an amount of temporal drift associated with the received electronic communication includes computing an amount of temporal drift for each data block included in the electronic communication;

determining a number of samples to be inserted in or removed from the received electronic communication based on the computed amount of temporal drift associated with the received electronic communication includes determining a number of samples to be inserted in or removed from each data block included in the electronic communication based on the computed amount of temporal drift associated with each data block included in the electronic communication; and

modifying the received electronic communication by inserting or removing the determined number of samples at the selected one or more portions of the received electronic communication includes modifying each of the selected data blocks by inserting or removing the determined number of samples for the selected data blocks.

11. The method of claim 1 wherein multiplying a result, that is based on the calculation, by a convergent factor comprises multiplying a result, that is based on the calculation, by a convergent factor that is greater than one.

12. The method of claim 1 wherein computing, using at least one processor, an amount of temporal drift associated with the received electronic communication, the computing including performing a calculation using an average data buffer size related to the received electronic communication and a nominal data buffer size and multiplying a result, that is based on the calculation, by a convergent factor comprises computing an amount of temporal drift for a playback block of the received electronic communication, the computing including:

calculating a difference between an average data buffer size in samples for the playback block of the received electronic communication and a nominal number of samples in the data buffer;

dividing the calculated difference by a number of nominal playback blocks in the data buffer to determine a particular result; and

multiplying the particular result by the convergent factor.

13. The method of claim 1 wherein:

analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples comprises selecting a group of at least three samples included in the received electronic communication that have a minimal variance; and

modifying the received electronic communication by inserting or removing the determined number of samples at the selected one or more portions of the received electronic communication comprises:

maintaining end points of the selected group of at least three samples included in the received electronic communication; and

repeating or deleting at least one middle sample that is included in the selected group of at least three samples included in the received electronic communication and that is positioned between the end points in the selected group of at least three samples included in the received electronic communication.

14. At least one computer readable medium storing one or more computer programs, the one or more computer programs comprising instructions for:

receiving an electronic communication including multiple samples;

computing an amount of temporal drift associated with the received electronic communication, the computing including performing a calculation using an average data buffer size related to the received electronic communication and a nominal data buffer size and multiplying a result, that is based on the calculation, by a convergent factor;

determining a number of samples to be inserted in or removed from the received electronic communication based on the computed amount of temporal drift associated with the received electronic communication;

analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples; and

modifying the received electronic communication by inserting or removing the determined number of samples at the selected one or more portions of the received electronic communication.

15. The at least one medium of claim 14 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication in which insertion or removal of the determined number of samples would result in minimal audible artifacts.

16. The at least one medium of claim 15 wherein selecting the one or more portions of the received electronic communication in which insertion or removal of the determined number of samples would result in minimal audible artifacts includes selecting the one or more portions of the received electronic communication in which insertion or removal of the determined number of samples would be inaudible.

17. The at least one medium of claim 14 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication based on waveform properties of the received electronic communication.

18. The at least one medium of claim 14 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication that have minimal variance.

19. The at least one medium of claim 14 wherein analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more portions of the received electronic communication based on a heuristic resampling technique.

20. The at least one medium of claim 14 wherein the received electronic communication includes multiple data blocks, and analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples includes selecting one or more data blocks of the received electronic communication at which to insert or remove samples.

21. The at least one medium of claim 20 wherein selecting one or more data blocks of the received electronic communication at which to insert or remove samples includes selecting multiple data blocks at which to insert or remove samples.

22. The at least one medium of claim 20 wherein:

computing an amount of temporal drift associated with the received electronic communication includes computing an amount of temporal drift for each data block included in the electronic communication;

determining a number of samples to be inserted in or removed from the received electronic communication based on the computed amount of temporal drift associated with the received electronic communication includes determining a number of samples to be inserted in or removed from each data block included in the electronic communication based on the computed amount of temporal drift associated with each data block included in the electronic communication; and

modifying the received electronic communication by inserting or removing the determined number of samples at the selected one or more portions of the received electronic communication includes modifying each of the selected data blocks by inserting or removing the determined number of samples for the selected data blocks.

23. A system comprising:

at least one computer; and

at least one computer-readable medium coupled to the at least one computer having instructions stored thereon which, when executed by the at least one computer, causes the at least one computer to perform operations comprising:

receiving an electronic communication including multiple samples;

computing an amount of temporal drift associated with the received electronic communication, the computing including performing a calculation using an average data buffer size related to the received electronic communication and a nominal data buffer size and multiplying a result, that is based on the calculation, by a convergent factor;

determining a number of samples to be inserted in or removed from the received electronic communication based on the computed amount of temporal drift associated with the received electronic communication;

analyzing the multiple samples included in the received electronic communication to select one or more portions of the received electronic communication at which to insert or remove samples; and

modifying the received electronic communication by inserting or removing the determined number of samples at the selected one or more portions of the received electronic communication.

Assignments (6)
CHANGE OF NAME Recorded Dec 20, 2021
From: FACEBOOK, INC.
To: META PLATFORMS, INC.
Reel/Frame 058961/0436 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 3, 2012
From: AOL INC.
To: FACEBOOK, INC.
Reel/Frame 028487/0534 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENT RIGHTS Recorded Nov 16, 2010
From: BANK OF AMERICA, N A
To: AOL INC; AOL ADVERTISING INC; GOING INC; LIGHTNINGCAST LLC; MAPQUEST, INC; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC; TACODA LLC; TRUVEO, INC; YEDDA, INC
Reel/Frame 025323/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 31, 2009
From: AOL LLC
To: AOL INC.
Reel/Frame 023723/0645 →
SECURITY AGREEMENT Recorded Dec 14, 2009
From: AOL INC.; AOL ADVERTISING INC.; BEBO, INC.; ICQ LLC; GOING, INC.; LIGHTNINGCAST LLC; MAPQUEST, INC.; NETSCAPE COMMUNICATIONS CORPORATION; QUIGO TECHNOLOGIES LLC; SPHERE SOURCE, INC.; TACODA LLC; TRUVEO, INC.; YEDDA, INC.
To: BANK OF AMERICAN, N.A. AS COLLATERAL AGENT
Reel/Frame 023649/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 14, 2007
From: MANTEGNA, JOHN; WU, SHUWU
To: AOL LLC, A DELAWARE LIMITED LIABILITY COMPANY (FORMERLY KNOWN AS AMERICA ONLINE, INC.)
Reel/Frame 019692/0803 →