HTTP streaming client adaptation algorithm based on proportional-integral control

US9485289B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9485289-B2
Application numberUS-201314012225-A
CountryUS
Kind codeB2
Filing dateAug 28, 2013
Priority dateAug 28, 2013
Publication dateNov 1, 2016
Grant dateNov 1, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

What is claimed is: 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=R last +kappa*( L−L o )+eta*( L−L last ), wherein: R is the second data source rate, R last is the first data source rate, L is a storage level in a buffer, L o is a predetermined reference storage level in the buffer, L last 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. 2. The method as in claim 1 , further comprising: calculating the second data source rate and requesting the second data segment at the second data source rate substantially immediately after the first data segment is requested. 3. The method as in claim 1 , wherein the calculating of the second data source rate is further based on a predetermined reference storage level in the buffer. 4. The method as in claim 1 , wherein the calculating of the second data source rate is further based on the first data source rate. 5. The method as in claim 1 , further comprising: adjusting one or more of: the first predetermined scaling parameter and the second predetermined scaling parameter. 6. The method as in claim 1 , wherein the first data segment and the second data segment are a first video segment and a second video segment, respectively. 7. The method as in claim 1 , further comprising: determining a buffer playout duration based on the storage level in the buffer. 8. The method as in claim 1 , wherein: the client device is engaged in the HTTP streaming session while a plurality of other client devices in the network are engaged in respective HTTP streaming sessions, and the client device and the plurality of other client devices receive data segments over a shared communications link. 9. The method as in claim 1 , further comprising: determining whether the buffer is full, wherein the second data segment is requested only when the buffer is not full. 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=R last +kappa*( L−L o )+eta*( L−L last ), wherein: R is the second data source rate, R last is the first data source rate, L is a storage level in a buffer, L o is a predetermined reference storage level in the buffer, L last 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. 11. The apparatus as in claim 10 , wherein the process further comprises: calculating the second data source rate and requesting the second data segment at the second data source rate substantially immediately after the first data segment is requested. 12. The apparatus as in claim 10 , wherein the calculating of the second data source rate is further based on a predetermined reference storage level in the buffer. 13. The apparatus as in claim 10 , wherein the calculating of the second data source rate is further based on the first data source rate. 14. The apparatus as in claim 10 , wherein the process further comprises: adjusting one or more of: the first predetermined scaling parameter and the second predetermined scaling parameter. 15. The apparatus as in claim 10 , wherein the first data segment and the second data segment are a first video segment and a second video segment, respectively. 16. The apparatus as in claim 10 , wherein the process further comprises: determining a buffer playout duration based on the storage level in the buffer. 17. The apparatus as in claim 10 , wherein: the client device is engaged in the HTTP streaming session while a plurality of other client devices in the network are engaged in respective HTTP streaming sessions, and the client device and the plurality of other client devices receive data segments over a shared communications link. 18. The apparatus as in claim 10 , wherein the process further comprises: determining whether the buffer is full, wherein the second data segment is requested only when the buffer is not full. 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=R last +kappa*( L−L o )+eta*( L−L last ), wherein: R is the second data source rate, R last is the first data source rate, L is a storage level in a buffer, L o is a predetermined reference storage level in the buffer, L last 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.

Assignees

Inventors

Classifications

  • Electricity · mapped topic

  • with rate being modified by the source upon detecting a change of network conditions · CPC title

  • H04L47/38Primary

    by adapting coding or compression rate · CPC title

  • H04L65/60Primary

    Network streaming of media packets · CPC title

  • in combination with information about buffer occupancy at either end or at transit nodes · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9485289B2 cover?
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 sourc…
Who is the assignee on this patent?
Cisco Tech Inc
What technology area does this patent fall under?
Primary CPC classification H04L47/38. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Nov 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).