HTTP streaming client adaptation algorithm based on proportional-integral control
First Claim
Patent Images
1. A method, comprising:
- initiating, at a client device in a network, an adaptive Hyper-Text Transfer Protocol (HTTP) streaming session, wherein the client device has a buffer and is configured to request and receive one or more data segments over HTTP from an HTTP server;
requesting a first data segment at a first data source rate;
receiving the first data segment at the first data source rate;
storing the first data segment in the buffer;
calculating a second data source rate according to the following formula;
R=Rlast+kappa*(L−
Lo)+eta*(L−
Llast), wherein;
R is the second data source rate, Rlast is the first data source rate, L is a storage level in a buffer, Lo is a predetermined reference storage level in the buffer, Llast is a previous storage level in the buffer, kappa is a first predetermined scaling parameter, and eta is a second predetermined scaling parameter;
requesting a second data segment at the second data source rate;
receiving the second data segment at the second data source rate; and
continuing the adaptive HTTP streaming session until the HTTP session is complete.
1 Assignment
0 Petitions
Accused Products
Abstract
In one embodiment, an HTTP streaming session may be initiated at a client device in a network. The client device may have a buffer and may be configured to request and receive one or more data segments over HTTP from an HTTP server. A first data segment at a first data source rate may be requested and subsequently received. The first data segment may be stored in the buffer. A second data source rate may then be calculated based on a storage level in the buffer, and a second data segment at the second data source rate may be requested.
22 Citations
19 Claims
-
1. A method, comprising:
-
initiating, at a client device in a network, an adaptive Hyper-Text Transfer Protocol (HTTP) streaming session, wherein the client device has a buffer and is configured to request and receive one or more data segments over HTTP from an HTTP server; requesting a first data segment at a first data source rate; receiving the first data segment at the first data source rate; storing the first data segment in the buffer; calculating a second data source rate according to the following formula;
R=Rlast+kappa*(L−
Lo)+eta*(L−
Llast), wherein;R is the second data source rate, Rlast is the first data source rate, L is a storage level in a buffer, Lo is a predetermined reference storage level in the buffer, Llast is a previous storage level in the buffer, kappa is a first predetermined scaling parameter, and eta is a second predetermined scaling parameter; requesting a second data segment at the second data source rate; receiving the second data segment at the second data source rate; and continuing the adaptive HTTP streaming session until the HTTP session is complete. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An apparatus, comprising:
-
one or more network interfaces that communicate with a network; a processor coupled to the one or more network interfaces and configured to execute a process; and a memory configured to store program instructions which contain the process executable by the processor, the process comprising; initiating, as a client device in the network, an adaptive Hyper-Text Transfer Protocol (HTTP) streaming session, wherein the client device has a buffer and is configured to request and receive one or more data segments over HTTP from an HTTP server; requesting a first data segment at a first data source rate; receiving the first data segment at the first data source rate; storing the first data segment in the buffer; calculating a second data source rate according to the following formula;
R=Rlast+kappa*(L−
Lo)+eta*(L−
Llast), wherein;R is the second data source rate, Rlast is the first data source rate, L is a storage level in a buffer, Lo is a predetermined reference storage level in the buffer, Llast is a previous storage level in the buffer, kappa is a first predetermined scaling parameter, and eta is a second predetermined scaling parameter; requesting a second data segment at the second data source rate; receiving the second data segment at the second data source rate; and continuing the adaptive HTTP streaming session until the HTTP session is complete. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A tangible non-transitory computer readable medium storing program instructions that cause a computer to execute a process, the process comprising:
-
initiating an adaptive HTTP streaming session at a client device in a network, wherein the client device has a buffer and is configured to request and receive one or more data segments over HTTP from an HTTP server; requesting a first data segment at a first data source rate; receiving the first data segment at the first data source rate; storing the first data segment in the buffer; calculating a second data source rate according to the following formula;
R=Rlast+kappa*(L−
Lo)+eta*(L−
Llast), wherein;R is the second data source rate, Rlast is the first data source rate, L is a storage level in a buffer, Lo is a predetermined reference storage level in the buffer, Llast is a previous storage level in the buffer, kappa is a first predetermined scaling parameter, and eta is a second predetermined scaling parameter; requesting a second data segment at the second data source rate; receiving the second data segment at the second data source rate; and continuing the adaptive HTTP streaming session until the HTTP session is complete.
-
Specification