IP Library Granted Patent US 8,255,559
Granted Patent B2
US 8,255,559 · App. 13/417,271 · Granted Aug 28, 2012

Data streaming through time-varying transport media

Assignee: Vantrix Corporation
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 8,255,559
App. No.
13/417,271
Granted
Aug 28, 2012
Kind
B2
Abstract

A method of data streaming from an encoder to a decoder through a time-varying connection, is disclosed. The method includes associating an encoding coefficient with said time-varying connection, the encoding coefficient determining a flow rate at an output of said encoder; defining a performance metric of the time-varying connection; defining an acceptance interval of the performance metric having a lower bound and an upper bound; acquiring a set of performance measurements of the time-varying connection over a time window at a current encoding coefficient; determining a current value of the metric of the time-varying connection according to the set of measurements; determining a preferred encoding coefficient according to the current value of the metric; and modifying the current encoding coefficient based on the current value of the metric and the acceptance interval to attain the preferred encoding coefficient. A corresponding streaming server and system for data streaming are also provided.

Claims (46)

1. A method of data streaming from an encoder to a decoder through a time-varying connection, comprising:

employing at least one processor for:

associating an encoding coefficient with said time-varying connection, said encoding coefficient determining a flow rate at an output of said encoder;

defining a performance metric of said time-varying connection as a function of occupancy, during a time window, of a decoder buffer holding data received through said time-varying connection;

defining an acceptance interval of said performance metric having a lower bound and an upper bound;

acquiring a set of performance measurements of said time-varying connection over said time window at a current encoding coefficient;

determining a current value of said metric of said time-varying connection according to said set of measurements;

determining a preferred encoding coefficient according to said current value of said metric; and

multiplying said current encoding coefficient by a factor determined as a function of said lower bound, said upper bound, and said current value of said metric.

2. The method of claim 1 further comprising modifying the current encoding coefficient based on a comparison of said current value and said acceptance interval.

3. The method of claim 2 further comprising decreasing said current encoding coefficient to produce said preferred encoding coefficient, provided said current value of said metric exceeds said upper bound.

4. The method of claim 1 further comprising increasing said current encoding coefficient to produce said preferred encoding coefficient, provided said current value of said metric is lower than said lower bound.

5. The method of claim 1 further comprising determining a first factor for increasing said current encoding coefficient and a second factor for decreasing said current encoding coefficient, wherein a product of said first factor and said second factor is less than 1.

6. The method of claim 1 further comprising instructing said encoder to encode a signal according to said preferred encoding coefficient and a nominal encoding rate.

7. The method of claim 1 wherein said function further accounts for transfer delay from said encoder to said decoder during said time window.

8. The method of claim 1 wherein said function further accounts for data loss during said time window.

9. A non-transitory computer readable storage medium, comprising computer readable instructions stored thereon for execution by a processor, to perform the steps of the method of claim 1 .

10. A streaming server for data streaming from an encoder to a decoder through a time-varying connection, the streaming server comprising a hardware processor, and a memory device storing computer readable instructions causing said processor to:

associate an encoding coefficient with said time-varying connection, said encoding coefficient determining a flow rate at an output of said encoder;

define a performance metric of said time-varying connection as a function of occupancy, during a time window, of a decoder buffer holding data received through said time-varying connection;

define an acceptance interval of said performance metric having a lower bound and an upper bound;

acquire a set of performance measurements of said time-varying connection over said time window at a current encoding coefficient;

determine a current value of said metric of said time-varying connection according to said set of measurements;

determine a preferred encoding coefficient according to said current value of said metric; and

multiply the current encoding coefficient by a factor determined as a function of the lower bound, the upper bound, and the current value of said metric.

11. The streaming server of claim 10 , wherein the computer readable instructions further cause the processor to modify the current encoding coefficient based on a comparison of said current value and said acceptance interval.

12. The streaming server of claim 10 , wherein the computer readable instructions further cause the processor to determine a first factor for increasing said current encoding coefficient and a second factor for decreasing said current encoding coefficient, wherein a product of said first factor and said second factor is less than 1.

13. The streaming server of claim 10 , wherein the computer readable instructions further cause the processor to increase said current encoding coefficient to produce said preferred encoding coefficient, provided said current value of said metric is lower than said lower bound.

14. The streaming server of claim 10 , wherein the computer readable instructions further cause the processor to decrease said current encoding coefficient to produce said preferred encoding coefficient, provided said current value of said metric exceeds said upper bound.

15. The streaming server of claim 10 wherein the computer readable instructions further cause the processor to instruct said encoder to encode a signal according to said preferred encoding coefficient and a nominal encoding rate.

16. The streaming server of claim 10 wherein said function further accounts for transfer delay from said encoder to said decoder during said time window.

17. The streaming server of claim 10 wherein said function further accounts for data loss during said time window.

18. The streaming server of claim 10 , the streaming server being configured to exchange control data between said encoder and said decoder using a real-time transport protocol (RTP) and the real-time transport control protocol (RTCP).

19. The streaming server of claim 10 wherein said time-varying connection is configured to carry a video signal and wherein said computer readable instructions further cause the processor to modify at least one of:

a frame rate of said video signal; and

content per frame.

20. A system for data streaming, comprising:

a plurality of client devices, each client device having a client processor and a respective decoder; and

a streaming server for data streaming from an encoder to a decoder through a time-varying connection, the streaming server comprising a hardware processor, and a memory device having storing computer readable instructions stored thereon, causing said processor to:

associate an encoding coefficient with said time-varying connection, said encoding coefficient determining a flow rate at an output of said encoder;

define a performance metric of said time-varying connection as a function of occupancy, during a time window, of a decoder buffer holding data received through said time-varying connection;

define an acceptance interval of said performance metric having a lower bound and an upper bound;

acquire a set of performance measurements of said time-varying connection over said time window at a current encoding coefficient;

determine a current value of said metric of said time-varying connection according to said set of measurements;

determine a preferred encoding coefficient according to said current value of said metric; and

multiply the current encoding coefficient by a factor determined as a function of the lower bound, the upper bound, and the current value of said metric.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2021
From: VANTRIX CORPORATION
To: MASIMO CORPORATION
Reel/Frame 057394/0452 →
CHANGE OF COMPANY ADDRESS Recorded Nov 26, 2019
From: VANTRIX CORPORATION
To: VANTRIX CORPORATION
Reel/Frame 051136/0148 →
RELEASE OF SECURITY INTEREST Recorded Mar 21, 2017
From: NXT CAPITAL LLC
To: VANTRIX CORPORATION
Reel/Frame 042050/0722 →
CHANGE OF ADDRESS Recorded Mar 1, 2017
From: VANTRIX CORPORATION
To: VANTRIX CORPORATION
Reel/Frame 041845/0022 →
SECURITY AGREEMENT Recorded Mar 20, 2013
From: VANTRIX CORPORATION
To: NXT CAPITAL, LLC, ITS SUCCESSORS AND ASSIGNS
Reel/Frame 030053/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2012
From: LABONTE, FRANCIS ROGER; COTE, SEBASTIEN; LEFEBVRE, YVES
To: VANTRIX CORPORATION
Reel/Frame 027839/0915 →
Continuity (3)
Continuation 12939062 · Nov 3, 2010
Division 12180704 · Jul 28, 2008
Related Publication 20120173676A1 · Jul 5, 2012