Managing adaptive streaming of data via a communication connection

US9420023B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9420023-B2
Application numberUS-201414523841-A
CountryUS
Kind codeB2
Filing dateOct 24, 2014
Priority dateMar 1, 2012
Publication dateAug 16, 2016
Grant dateAug 16, 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.

An example method includes requesting a data stream using a buffer with an initial maximum window size for buffering received data associated with the requested data stream, receiving into the buffer one or more data segments associated with the data stream, removing from the buffer one or more data segments for use by a receiving device, and determining a current window size of the buffer, wherein the current window size is equal to the maximum window size less any data segments which have been received that have not been removed from the buffer. The method further includes comparing the current window size to a predetermined threshold, and in response to determining that the current window size is less than the predetermined threshold, increasing the maximum window size, and initiating a buffer size increase timer having a current timer value and a timer expiration value.

First claim

Opening claim text (preview).

We claim: 1. A method comprising: requesting a data stream using a buffer with an initial maximum window size for buffering received data associated with the requested data stream; receiving, into the buffer, one or more data segments associated with the data stream; removing, from the buffer, one or more data segments for use by a receiving device; determining, by a processing device, a current window size of the buffer, wherein the current window size is equal to the maximum window size less any data segments which have been received that have not been removed from the buffer; comparing the current window size to a predetermined threshold; in response to determining that the current window size is less than the predetermined threshold, increasing, by the processing device, the maximum window size and initiating a buffer size increase timer having a current timer value and a timer expiration value; and while the updated maximum window size is larger than the initial maximum window size and the current timer value of the buffer size increase timer is less than the timer expiration value, determining, at regular intervals, a present current window size and adjusting the updated maximum current window size to maintain the current window size of at least the predetermined threshold. 2. The method of claim 1 , wherein adjusting the updated maximum current window size comprises: increasing further the maximum window size when the present current window size is less than the predetermined threshold; and decreasing the maximum window size when the present current window size is greater than the predetermined threshold. 3. The method of claim 2 , wherein, when decreasing the maximum window size, an amount that the maximum window size is decreased is limited to the amount by which the updated maximum window size is greater than the initial maximum window size. 4. The method of claim 1 , wherein the regular intervals at which the present current window size is determined and the updated maximum current window size is adjusted corresponds to a maximum transmit unit boundary of the requested data stream. 5. The method of claim 1 , wherein the data stream includes one or more data segments, each data segment being encoded into one of a plurality of different versions having different fidelity levels, and wherein initial data segments received as part of the data stream have a first fidelity level. 6. The method of claim 5 , wherein each fidelity level includes one or more of video data at one or more different resolutions or frame rates and audio data at one or more different bit rates. 7. The method of claim 5 , wherein a bit rate level of subsequently received data segments is adjusted to a second fidelity level less than the first fidelity level when the buffer size increase timer reaches the timer expiration value. 8. The method of claim 1 , wherein the buffer size increase timer is terminated when the updated maximum window size is adjusted to be no longer larger than the initial maximum window size prior to current timer value of the buffer size increase timer reaching the timer expiration value. 9. A non-transitory computer readable storage medium including instructions that, when executed by a processing device, cause the processing device to perform operations comprising: requesting a data stream using a buffer with an initial maximum window size for buffering received data associated with the requested data stream; receiving, into the buffer, one or more data segments associated with the data stream; removing, from the buffer, one or more data segments for use by a receiving device; determining, by the processing device, a current window size of the buffer, wherein the current window size is equal to the maximum window size less any data segments which have been received that have not been removed from the buffer; comparing the current window size to a predetermined threshold; in response to determining that the current window size is less than the predetermined threshold, increasing, by the processing device, the maximum window size and initiating a buffer size increase timer having a current timer value and a timer expiration value; and while the updated maximum window size is larger than the initial maximum window size and the current timer value of the buffer size increase timer is less than the timer expiration value, determining, at regular intervals, a present current window size and adjusting the updated maximum current window size to maintain the current window size of at least the predetermined threshold. 10. The computer readable storage medium of claim 9 , wherein adjusting the updated maximum current window size comprises: increasing further the maximum window size when the present current window size is less than the predetermined threshold; and decreasing the maximum window size when the present current window size is greater than the predetermined threshold. 11. The computer readable storage medium of claim 10 , wherein, when decreasing the maximum window size, an amount that the maximum window size is decreased is limited to the amount by which the updated maximum window size is greater than the initial maximum window size. 12. The computer readable storage medium of claim 9 , wherein the regular intervals at which the present current window size is determined and the updated maximum current window size is adjusted corresponds to a maximum transmit unit boundary of the requested data stream. 13. The computer readable storage medium of claim 9 , wherein the data stream includes one or more data segments, each data segment being encoded into one of a plurality of different versions having different fidelity levels, and wherein initial data segments received as part of the data stream have a first fidelity level. 14. The computer readable storage medium of claim 13 , wherein a bit rate level of subsequently received data segments is adjusted to a second fidelity level less than the first fidelity level when the buffer size increase timer reaches the timer expiration value. 15. The computer readable storage medium of claim 10 , wherein the buffer size increase timer is terminated when the updated maximum window size is adjusted to be no longer larger than the initial maximum window size prior to current timer value of the buffer size increase timer reaching the timer expiration value. 16. A system comprising: a memory including a buffer; and a processing device, coupled to the memory to: request a data stream using the buffer having an initial maximum window size for buffering received data associated with the requested data stream; receive, into the buffer, one or more data segments associated with the data stream; remove, from the buffer, one or more data segments for use by a receiving device; determine a current window size of the buffer, wherein the current window size is equal to the maximum window size less any data segments which have been received that have not been removed from the buffer; compare the current window size to a predetermined threshold; in response to determining that the current window size is less than the predetermined threshold, increase the maximum window size and initiate a buffer size increase timer having a current timer value and a timer expiration value; and while the updated maximum window size is larger than the initial maximum window size and the current timer value of the buffer size increase timer is less than the timer expiration value, determine at regular intervals a present current window size and adjust the updated maxi

Assignees

Inventors

Classifications

  • Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used (error monitoring in general G06F11/30; arrangements for monitoring conditions of receiving stations in broadcast systems H04H60/32; diagnosis, testing or measuring for television receivers H04N17/04) · CPC title

  • H04L65/60Primary

    Network streaming of media packets · CPC title

  • by decomposing the content in the time domain, e.g. in time segments · CPC title

  • directed to encoder {, e.g. for requesting a lower encoding rate} · CPC title

  • using dynamic buffer space allocation · 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 US9420023B2 cover?
An example method includes requesting a data stream using a buffer with an initial maximum window size for buffering received data associated with the requested data stream, receiving into the buffer one or more data segments associated with the data stream, removing from the buffer one or more data segments for use by a receiving device, and determining a current window size of the buffer, whe…
Who is the assignee on this patent?
Motorola Mobility Llc, Google Technology Holdings LLC
What technology area does this patent fall under?
Primary CPC classification H04L65/60. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 16 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).