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, a 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, by the client device, a first data segment at a first data source rate;
receiving, by the client device, the first data segment at the first data source rate;
storing, by the client device, the first data segment in the buffer;
identifying, by the client device, a second data source rate for a next data segment in the HTTP streaming session by summing
1) the first data source rate,
2) a difference between a current storage level in the buffer and a predetermined reference storage level in the buffer, and
3) a difference between the current storage level in the buffer and a previous storage level in the buffer;
in response to identifying the second data source rate, requesting, by the client device, the next data segment at the second data source rate identified by the device;
receiving, by the client device, the next data segment at the second data source rate; and
continuing, by the client device, to adapt data source rates of subsequent data segments in the HTTP streaming session until the HTTP session is complete.
0 Assignments
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.
-
Citations
20 Claims
-
1. A method, comprising:
-
initiating, at a client device in a network, a 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, by the client device, a first data segment at a first data source rate; receiving, by the client device, the first data segment at the first data source rate; storing, by the client device, the first data segment in the buffer; identifying, by the client device, a second data source rate for a next data segment in the HTTP streaming session by summing
1) the first data source rate,
2) a difference between a current storage level in the buffer and a predetermined reference storage level in the buffer, and
3) a difference between the current storage level in the buffer and a previous storage level in the buffer;in response to identifying the second data source rate, requesting, by the client device, the next data segment at the second data source rate identified by the device; receiving, by the client device, the next data segment at the second data source rate; and continuing, by the client device, to adapt data source rates of subsequent data segments in the 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, a 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; identifying a second data source rate for a next data segment in the HTTP streaming session by summing
1) the first data source rate,
2) a difference between a current storage level in the buffer and a predetermined reference storage level in the buffer, and
3) a difference between the current storage level in the buffer and a previous storage level in the buffer;in response to identifying the second data source rate, requesting the next data segment at the second data source rate identified by the device; receiving the next data segment at the second data source rate; and continuing to adapt data source rates of subsequent data segments in the 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 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; identifying a second data source rate for a next data segment in the HTTP streaming session by summing
1) the first data source rate,
2) a difference between a current storage level in the buffer and a predetermined reference storage level in the buffer, and
3) a difference between the current storage level in the buffer and a previous storage level in the buffer;in response to identifying the second data source rate, requesting the next data segment at the second data source rate identified by the device; receiving the next data segment at the second data source rate; and continuing to adapt data source rates of subsequent data segments in the HTTP streaming session until the HTTP session is complete. - View Dependent Claims (20)
-
Specification