Managing adaptive streaming of data via a communication connection

US10057316B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10057316-B2
Application numberUS-201615237524-A
CountryUS
Kind codeB2
Filing dateAug 15, 2016
Priority dateMar 1, 2012
Publication dateAug 21, 2018
Grant dateAug 21, 2018

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, wherein the one or more data segments associated with the data stream have a first fidelity level; during receipt of the one or more data segments, detecting a decrease in processor performance relative to the processing of the data stream by monitoring an amount of available space in the buffer; determining whether the decrease in the processor performance is transient based on whether the decrease in the processor performance persists beyond a particular length of time; responsive to the decrease in the processor performance being more than transient, adjusting, by a processor, the first fidelity level of the data stream to a second fidelity level that is less than the first fidelity level, wherein each of the first fidelity level and the second fidelity level of the data stream represents a respective signal quality associated with the data stream; and responsive to the decrease in the processor performance being not more than transient, adjusting, by the processor, the initial maximum window size of the buffer to maintain an amount of space greater than a predetermined threshold, the adjusted initial maximum window size to accommodate an increased amount of the received data. 2. The method of claim 1 , further comprising: removing, from the buffer, one or more data segments for use by a receiving device. 3. The method of claim 2 , wherein adjusting the initial maximum window size of the buffer comprises: determining a current window size of the buffer, wherein the current window size is equal to the initial maximum window size less any data segments which have been received that have not been removed from the buffer; and comparing the current window size to the predetermined threshold. 4. The method of claim 3 , wherein adjusting the initial maximum window size of the buffer further comprises: 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; 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. 5. The method of claim 2 , 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. 6. The method of claim 5 , 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. 7. The method of claim 3 , 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. 8. 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 the first fidelity level. 9. The method of claim 8 , 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. 10. The method of claim 8 , wherein a bit rate level of subsequently received data segments is adjusted to the second fidelity level when the buffer size increase timer reaches the timer expiration value. 11. The method of claim 4 , 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. 12. 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, wherein the one or more data segments associated with the data stream have a first fidelity level; during receipt of the one or more data segments, detecting a decrease in processor performance relative to the processing of the data stream by monitoring an amount of available space in the buffer; determining whether the decrease in the processor performance is transient based on whether the decrease in the processor performance persists beyond a particular length of time; responsive to the decrease in the processor performance being more than transient, adjusting the first fidelity level of the data stream to a second fidelity level that is less than the first fidelity level, wherein each of the first fidelity level and the second fidelity level of the data stream represents a respective signal quality associated with the data stream; and responsive to the decrease in the processor performance being not more than transient, adjusting the initial maximum window size of the buffer to maintain an amount of space greater than a predetermined threshold, the adjusted initial maximum window size to accommodate an increased amount of the received data. 13. The non-transitory computer readable storage medium of claim 12 , wherein the operations further comprise: removing, from the buffer, one or more data segments for use by a receiving device. 14. The non-transitory computer readable storage medium of claim 13 , wherein adjusting the initial maximum window size of the buffer comprises: determining a current window size of the buffer, wherein the current window size is equal to the initial maximum window size less any data segments which have been received that have not been removed from the buffer; and comparing the current window size to the predetermined threshold. 15. The non-transitory computer readable storage medium of claim 14 , wherein adjusting the initial maximum window size of the buffer further comprises: 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; 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. 16. The non-transitory computer readable storage medium of claim 13 , wherein adjusting the updat

Assignees

Inventors

Classifications

  • H04L65/80Primary

    Responding to QoS · CPC title

  • for generating different versions · CPC title

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

  • by decomposing the content in the time domain, e.g. in time segments · 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 US10057316B2 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?
Google Technology Holdings LLC
What technology area does this patent fall under?
Primary CPC classification H04L65/80. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Aug 21 2018 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).