Method and system for dynamic latency management and drift correction
First Claim
Patent Images
1. A method for dynamic latency management in a real-time electronic communication comprising:
- measuring, at least twice, an instantaneous communication delay arising from a receiving data buffer;
determining a communication delay by averaging the instantaneous communication delay measurements;
selecting a time window defined based on a time necessary to capture a complete cycle of fluctuations in the receiving buffer;
determining a working range for a communication delay by measuring and analyzing delays experienced during the selected time window, the working range including an upper and lower bound;
comparing the determined communication delay with the working range for a communication delay;
if, based on the comparison, the determined communication delay is determined to be outside the upper or lower bound of the working range, determining a latency adjustment necessary to adjust the size of the determined communication delay to within the working range; and
modifying a number of samples of a playback data block passing through the receiving data buffer based on the latency adjustment determined to be necessary to adjust the size of the determined communication delay;
wherein modifying the number of samples further comprises performing heuristic resampling of a playback block.
7 Assignments
0 Petitions
Accused Products
Abstract
Latency in a real-time electronic communication is dynamically managed. A communication delay arising from a receiving data buffer is measured and a latency adjustment necessary to adjust the size of the communication delay to within a predetermined range and an optimal range for a size of the communication delay are determined. Using these parameters, the number of samples for an audio playback data block passing through the receiving data buffer is modified.
-
Citations
29 Claims
-
1. A method for dynamic latency management in a real-time electronic communication comprising:
-
measuring, at least twice, an instantaneous communication delay arising from a receiving data buffer; determining a communication delay by averaging the instantaneous communication delay measurements; selecting a time window defined based on a time necessary to capture a complete cycle of fluctuations in the receiving buffer; determining a working range for a communication delay by measuring and analyzing delays experienced during the selected time window, the working range including an upper and lower bound; comparing the determined communication delay with the working range for a communication delay; if, based on the comparison, the determined communication delay is determined to be outside the upper or lower bound of the working range, determining a latency adjustment necessary to adjust the size of the determined communication delay to within the working range; and modifying a number of samples of a playback data block passing through the receiving data buffer based on the latency adjustment determined to be necessary to adjust the size of the determined communication delay; wherein modifying the number of samples further comprises performing heuristic resampling of a playback block. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A computer program, residing on a computer-readable medium, for dynamically managing latency in a real-time electronic communication, comprising instructions for causing a computer to:
-
measure, at least twice, an instantaneous communication delay arising from a receiving data buffer; determine a communication delay by averaging the instantaneous communication delay measurements; select a time window defined based on a time necessary to capture a complete cycle of fluctuations in the receiving buffer; determine a working range for a communication delay by measuring and analyzing delays experienced during the selected time window, the working range including an upper and lower bound; compare the determined communication delay with the working range for a communication delay; if, based on the comparison, the determined communication delay is determined to be outside the upper or lower bound of the working range, determine a latency adjustment necessary to adjust the size of the determined communication delay to within the working range; and modify the number of samples of a playback data block passing through the receiving data buffer based on the latency adjustment determined to be necessary to adjust the size of the determined communication delay; wherein instructions for causing a computer to modify the number of samples further comprise instructions for causing a computer to perform heuristic resampling of a playback block. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A computer system running programmed processes comprising a process for dynamically managing latency in a real-time electronic communication, which process causes the computer system to:
-
measure, at least twice, an instantaneous communication delay arising from a receiving data buffer; determine a communication delay by averaging the instantaneous communication delay measurements; select a time window defined based on a time necessary to capture a complete cycle of fluctuations in the receiving buffer; determine a working range for a communication delay by measuring and analyzing delays experienced during the selected time window, the working range including an upper and lower bound; compare the determined communication delay with the working range for a communication delay; if, based on the comparison, the determined communication delay is determined to be outside the upper or lower bound of the working range, determine a latency adjustment necessary to adjust the size of the determined communication delay to within the working range; and modify the number of samples of a playback data block passing through the receiving data buffer based on the latency adjustment determined to be necessary to adjust the size of the determined communication delay; wherein the process that causes a computer system to modify the number of samples comprises a process that causes a computer system to perform heuristic resampling of a playback block. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A method for dynamic latency management in a real-time electronic communication comprising:
-
measuring, at least twice, an instantaneous communication delay arising from a receiving data buffer; determining a communication delay by averaging the instantaneous communication delay measurements; selecting a time window defined based on a tune necessary to capture a complete cycle of fluctuations in the receiving buffer; determining a working range for a communication delay by measuring and analyzing delays experienced during the selected time window, the working range including an upper and lower bound; comparing the determined communication delay with the working range; making determinations related to latency adjustment based on the comparison; and modifying data passing through the receiving buffer based on the determinations related to latency adjustment. - View Dependent Claims (29)
-
Specification