Dynamic latency management for IP telephony
First Claim
1. A method for dynamically reducing latency over a communications network, the method comprising:
- determining completion of processing of a next data block;
determining a number of samples remaining in a queue of a consuming device of the next data block;
determining a weighted variability in the number of samples remaining in the queue of the consuming device; and
determining if the remaining number of samples in the queue of the consuming device can be reduced based upon the weighted variability.
6 Assignments
0 Petitions
Accused Products
Abstract
A method for dynamically reducing latency over a communications network independent of the Real Time Protocol. The method including determining the completion of processing of a next data block and the determination of the number of samples remaining in a queue of a consuming device of the next data block. Without knowing the latency of the system a determination is made on the variability based on the number of samples remaining in the queue of the consuming device. A determination is then made as to whether the remaining number of samples in the queue of the consuming device can be reduced based upon the variability and if so reducing the queue of the consuming device.
-
Citations
42 Claims
-
1. A method for dynamically reducing latency over a communications network, the method comprising:
-
determining completion of processing of a next data block; determining a number of samples remaining in a queue of a consuming device of the next data block; determining a weighted variability in the number of samples remaining in the queue of the consuming device; and determining if the remaining number of samples in the queue of the consuming device can be reduced based upon the weighted variability. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A method for dynamically reducing latency over a communications network, the method comprising:
-
identifying when a data block is ready to be added to a queue of a consuming device; polling the consuming device and calculating number of samples consumed by the consuming device since previous polling of the consuming device; calculating a weighted variability in the number of samples consumed by the consuming device; and determining if the remaining number of samples in the queue of the consuming device can be reduced based upon the weighted variability.
-
-
26. A system for dynamically reducing latency over a communications network, the system comprising:
-
means for determining completions; means for determining a number of samples remaining in a queue of a consuming device of the next data block; means for determining a weighted variability in the number of samples remaining in the queue of the consuming device; and means for determining if the remaining the number of samples in the queue of the consuming device can be reduced based upon the weighted variability and if so reduce the queue. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer readable medium having stored thereon a software product for dynamically reducing latency over a communications network, executed by a processor to perform instruction to:
-
determine completion of processing of a next data block; determine number of samples remaining in a queue of a consuming device of the next data block; determine a weighted variability in number of samples remaining in the queue of the consuming device; and determine if the remaining number of sample in the queue of the consuming device can be reduced based upon the weighted variability and if so reduce the queue. - View Dependent Claims (35, 36, 37, 38, 39, 40, 41)
-
-
42. An audio and video consuming apparatus capable of dynamically reducing latency of data blocks received from a communications network, the apparatus comprising:
-
a processor, wherein the processor includes a memory; peripherals in communication with and controlled by the processor, capable of at least one of sending, receiving and consuming data blocks; and a software product, wherein the software product is capable of instructing the processor to execute instructions to; determine completion of processing of a next data block; determine a number of samples remaining in a queue of said consuming apparatus of the next block; determine a weighted variability in the number of samples remaining in the queue of said consuming apparatus; and determine if the remaining number of samples in the queue of said consuming apparatus can be reduced based upon the weighted variability.
-
Specification