IP Library Granted Patent US 7,283,548
Granted Patent B2
US 7,283,548 · App. 10/064,091 · Granted Oct 16, 2007

Dynamic latency management for IP telephony

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,283,548
App. No.
10/064,091
Granted
Oct 16, 2007
Kind
B2
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.

Claims (65)

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.

2. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by increasing rate of consumption of the consuming device.

3. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by resampling the samples to fewer samples.

4. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by deleting samples in the queue.

5. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by discarding samples of a data block.

6. The method for dynamically reducing latency according to claim 1 , wherein samples in the queue are deleted if a total number of samples in the queue exceeds a predetermined threshold.

7. The method for dynamically reducing latency according to claim 5 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability.

8. The method for dynamically reducing latency according to claim 5 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and an immediately preceding data block was added to the queue.

9. The method for dynamically reducing latency according to claim 5 , wherein samples of data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and if at least one data block over a range of preceding data blocks was not added to the queue.

10. The method for dynamically reducing latency according to claim 5 , wherein samples of data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block, the variability and a bias.

11. The method for dynamically reducing latency according to claim 5 , wherein samples of data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and an immediately preceding data block was added to the queue.

12. The method for dynamically reducing latency according to claim 11 , wherein samples in the queue are deleted if a total number of samples in the queue exceeds a predetermined threshold.

13. The method for dynamically reducing latency according to claim 5 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and if at least one data block over a range of preceding data blocks was not added to the queue.

14. The method for dynamically reducing latency according to claim 5 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and if at least one data block over a range of preceding data blocks was not added to the queue.

15. The method for dynamically reducing latency according to claim 5 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and if at least one data block over a range of preceding data blocks was not added to the queue.

16. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by increasing rate of consumption of the consuming device.

17. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by resampling the samples to fewer samples.

18. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by deleting samples in the queue.

19. The method for dynamically reducing latency according to claim 1 , wherein the queue is reduced by discarding samples of a data block.

20. The method for dynamically reducing latency according to claim 19 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability.

21. The method for dynamically reducing latency according to claim 19 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and an immediately preceding data block was added to the queue.

22. The method for dynamically reducing latency according to claim 21 , wherein samples in the queue are deleted if a total number of samples in the queue exceeds a predetermined threshold.

23. The system for dynamically reducing latency according to claim 19 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability.

24. The software product for dynamically reducing latency according to claim 1 , wherein samples in the queue are deleted if a total number of samples in the queue exceeds a predetermined threshold.

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.

27. The system for dynamically reducing latency according to claim 26 , wherein the queue is reduced by increasing rate of consumption of the consuming device.

28. The system for dynamically reducing latency according to claim 26 , wherein the queue is reduced by resampling the samples to fewer samples.

29. The system for dynamically reducing latency according to claim 28 , wherein samples in the queue are deleted if a total number of samples in the queue exceeds a predetermined threshold.

30. The system for dynamically reducing latency according to claim 26 , wherein the queue is reduced by deleting samples in the queue.

31. The system for dynamically reducing latency according to claim 26 , wherein the queue is reduced by discarding samples of a data block.

32. The system for dynamically reducing latency according to claim 31 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and an immediately preceding data block was added to the queue.

33. The system for dynamically reducing latency according to claim 31 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block, the variability and a bias.

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.

35. The software product for dynamically reducing latency according to claim 34 , wherein the queue is reduced by increasing rate of consumption of the consuming device.

36. The software product for dynamically reducing latency according to claim 34 , wherein the queue is reduced by resampling the samples to fewer samples.

37. The software product for dynamically reducing latency according to claim 34 , wherein the queue is reduced by deleting samples in the queue.

38. The software product for dynamically reducing latency according to claim 34 , wherein the queue is reduced by discarding samples of a data block.

39. The software product for dynamically reducing latency according to claim 38 , wherein samples of a data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability.

40. The software product for dynamically reducing latency according to claim 38 , wherein samples of data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and an immediately preceding data block was added to the queue.

41. The software product for dynamically reducing latency according to claim 38 , wherein samples of data block are discarded if the number of samples remaining in the queue is greater than a sum of a number of samples in a data block and the variability and if at least one data block over a range of preceding data blocks was not added to the queue.

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.

Assignments (2)
SECURITY AGREEMENT Recorded Jul 9, 2021
From: MAXLINEAR, INC.; MAXLINEAR COMMUNICATIONS, LLC; EXAR CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 056816/0089 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2020
From: INTEL CORPORATION
To: MAXLINEAR, INC.
Reel/Frame 053626/0636 →