System and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate
First Claim
1. A computer-implemented process for performing an exponentially weighted moving average on streaming data being transmitted to a client from a server over a computer network to establish a moving average bit rate of data units, comprising performing the following process actions:
- computing by the client or the server, on a data unit-by-unit basis, the product of the moving average bit rate computed for a data unit arriving immediately prior to a unit under consideration and a first fractional weighting factor β
(k), added to the product of the instantaneous bit rate of the data unit under consideration and a second fractional weighting factor, wherein said first fractional weighting factor β
(k) for a data unit under consideration k is computed as
where α
is the reciprocal of a prescribed time constant, t(k) is the actual arrival time of the data unit under consideration, t(k−
1) is the actual arrival time of the data unit received immediately prior to the data unit under consideration, and t(0) is the arrival time of the first data unit of the streaming data, and wherein the instantaneous bit rate ra(k) of the data unit under consideration is computed as
where b(k) is the size of the data unit under consideration, and the second fractional weighting factor is one minus the first fractional weighting factor; and
establishing the results of the computation as the moving average bit rate of the data units.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and process for performing an exponentially weighted moving average on streaming data to establish a moving average bit rate of data units is presented. In general, the system or process computes, on a unit-by-unit basis, the product of the moving average bit rate computed for a data unit immediately prior to a unit under consideration and a first fractional weighting factor, added to the product of the instantaneous bit rate of the data unit under consideration and a second fractional weighting factor, wherein at least one fractional weighting factor is not a constant but instead based on the time between data units.
79 Citations
13 Claims
-
1. A computer-implemented process for performing an exponentially weighted moving average on streaming data being transmitted to a client from a server over a computer network to establish a moving average bit rate of data units, comprising performing the following process actions:
-
computing by the client or the server, on a data unit-by-unit basis, the product of the moving average bit rate computed for a data unit arriving immediately prior to a unit under consideration and a first fractional weighting factor β
(k), added to the product of the instantaneous bit rate of the data unit under consideration and a second fractional weighting factor, wherein said first fractional weighting factor β
(k) for a data unit under consideration k is computed as
where α
is the reciprocal of a prescribed time constant, t(k) is the actual arrival time of the data unit under consideration, t(k−
1) is the actual arrival time of the data unit received immediately prior to the data unit under consideration, and t(0) is the arrival time of the first data unit of the streaming data, and wherein the instantaneous bit rate ra(k) of the data unit under consideration is computed as
where b(k) is the size of the data unit under consideration, and the second fractional weighting factor is one minus the first fractional weighting factor; andestablishing the results of the computation as the moving average bit rate of the data units. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system for performing an exponentially weighted moving average on streaming data being transmitted to a client from a server over a computer network to establish a moving average bit rate of data units, comprising:
-
a general purpose computing device; a computer program comprising program modules executable by the computing device, wherein the computing device is directed by the program modules of the computer program to, compute, on a data unit-by-unit basis, the product of the moving average bit rate computed for a data unit immediately prior to a data unit under consideration and a first fractional weighting factor, added to the product of the instantaneous bit rate of the data unit under consideration and a second fractional weighting factor, wherein said first fractional weighting factor β
(k) for a data unit under consideration k is computed as
where α
is the reciprocal of a prescribed time constant, t(k) is the time stamp of the data unit under consideration, t(k−
1) is the time stamp of the data unit immediately prior to the frame under consideration, and t(0) is the time stamp of the first data unit of the streaming data, and wherein the instantaneous bit rate ra(k) of the data unit under consideration is computed as
where b(k) is the size of the data unit under consideration, and second fractional weighting factor is one minus the first fractional weighting factor.- View Dependent Claims (7, 8)
-
-
9. A computer-implemented process for performing an exponentially weighted moving average on streaming data being transmitted over a computer network to establish a moving average bit rate of data units, comprising:
-
a computing step for computing by a client or a server, on a data unit-by-unit basis, the product of the moving average bit rate computed for a data unit immediately prior to a unit under consideration and a first fractional weighting factor, added to the product of the instantaneous bit rate of the data unit under consideration and a second fractional weighting factor, wherein said first fractional weighting factor is 1 and said second fractional weighting factor is
and is used whenever t(k)=t(k−
1), where α
is the reciprocal of a prescribed time constant, t(k) is the time stamp of the data unit under consideration, t(k−
1) is the time stamp of the data unit immediately prior to the frame under consideration, and t(0) is the time stamp of the first data unit of the streaming data; andan establishing step for establishing the results of the computation as the moving average bit rate of the data units.
-
-
10. A computer-implemented process for performing an exponentially weighted moving average on streaming data being transmitted to a client from a server over a computer network to establish a moving average bit rate of data units, comprising performing the following process actions:
-
computing by the client or the server, on a data unit-by-unit basis, the product of the moving average bit rate computed for a data unit arriving immediately prior to a unit under consideration and a first fractional weighting factor, added to the product of the instantaneous bit rate of the data unit under consideration and a second fractional weighting factor, wherein at least one of the fractional weighting factors is not a constant but instead based on the time between the data units, and wherein said first fractional weighting factor is 1 and said second fractional weighting factor is
and is used whenever t(k)=t(k−
1), where α
is the reciprocal of a prescribed time constant, t(k) is the actual arrival time of the data unit under consideration, t(k−
1) is the actual arrival time of the data unit received immediately prior to the data unit under consideration, and t(0) is the arrival time of the first data unit of the streaming data; andestablishing the results of the computation as the moving average bit rate of the data units. - View Dependent Claims (11, 12, 13)
-
Specification