Adapting encoded bandwidth

US10116715B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10116715-B2
Application numberUS-201514701406-A
CountryUS
Kind codeB2
Filing dateApr 30, 2015
Priority dateMar 16, 2015
Publication dateOct 30, 2018
Grant dateOct 30, 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.

A method comprising: conducting a communication session between a first terminal and a second terminal, the session comprising transmitting an encoded bitstream from an encoder of the first terminal over a channel to the second terminal; measuring a bandwidth capacity experienced over the channel at multiple different times, thereby collecting a history of bandwidth measurements for the channel; based on the history of bandwidth measurements, obtaining at least a selected upper bandwidth constraint for the encoded bitstream; and during the session, dynamically adapting an encoded bandwidth with which to encode the bitstream, by dynamically selecting the encoded bandwidth based on one or more current conditions of the channel, but constrained by at least said upper bandwidth constraint.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method of determining an encoding rate, comprising: determining a plurality of bandwidth measurements of a network path between a first device and a second device based on data communication over the path; determining a maximum bandwidth of the network path based on the plurality of bandwidth measurements; setting a bandwidth cap based on a first percentage of the maximum bandwidth in response to the maximum bandwidth meeting a first criterion, and setting the bandwidth cap based on a second different percentage of the maximum bandwidth in response to the maximum bandwidth meeting a second criterion; determining a minimum bandwidth of the network path based at least in part on the plurality of bandwidth measurements; determining an encoding rate of an encoder to be between the bandwidth cap and the minimum bandwidth; encoding data based on the determined rate; and transmitting the encoded data over the network path. 2. The method of claim 1 , further comprising setting the bandwidth cap further based on a type of the network. 3. The method of claim 1 , further comprising setting the bandwidth cap further based on a screen size of the first device or the second device. 4. The method of claim 1 , further comprising setting the bandwidth cap based on one or more of spatial resolution and temporal resolution of a camera of the first device or the second device. 5. The method of claim 1 , wherein the first device and the second device each comprise a separate hardware speaker, the method further comprising selecting the percentage based on one or more characteristics of one or more of the hardware speakers. 6. The method of claim 1 , further comprising quantizing the plurality of bandwidth measurements, and determining the maximum bandwidth based on the quantized plurality of bandwidth measurements. 7. The method of claim 6 , further comprising counting a number of the plurality of bandwidth measurements that fall within each of a plurality of bandwidth ranges, and determining the maximum bandwidth based on the counts. 8. The method of claim 7 , further comprising: including bandwidth measurements within a predetermined elapsed time in the counts and excluding from the counts bandwidth measurements occurring before the predetermined elapsed time; determining first bandwidth measurements of the network path for a first session; and determining second bandwidth measurements of the network path for a second session, wherein the plurality of bandwidth measurements includes the first bandwidth measurements and the second bandwidth measurements. 9. The method of claim 1 , further comprising setting the bandwidth cap to a first percentage of the maximum bandwidth in response to the maximum bandwidth being within a first range and setting the bandwidth cap to a second lower percentage of the maximum bandwidth in response to the maximum bandwidth being within a second higher range. 10. An apparatus for determining an encoding rate, comprising: one or more hardware processors; and a hardware memory, storing instructions that when executed by the one or more hardware processors, configures the one or more hardware processors to perform operations comprising: determining a plurality of bandwidth measurements of a network path between a first device and a second device based on data communication over the path, determining a maximum bandwidth of the network path based on the plurality of bandwidth measurements, setting a bandwidth cap based on a first percentage of the maximum bandwidth in response to the maximum bandwidth meeting a first criterion, and setting the bandwidth cap based on a second different percentage of the maximum bandwidth in response to the maximum bandwidth meeting a second criterion determining a minimum bandwidth of the network path based at least in part on the plurality of bandwidth measurements, determining an encoding rate of an encoder to be between the bandwidth cap and the minimum bandwidth, encoding data based on the determined rate, and transmitting the encoded data over the network path. 11. The apparatus of claim 10 , wherein the hardware memory stores further instructions that configure the one or more hardware processors to perform further operations comprising setting the bandwidth cap further based on a screen size of the first device or the second device. 12. The apparatus of claim 10 , wherein the hardware memory stores further instructions that configure the one or more hardware processors to perform further operations comprising setting the bandwidth cap further based on one or more one or more of spatial resolution and temporal resolution of a camera characteristics of the first device or the second device. 13. The apparatus of claim 10 , wherein the first device and the second device each comprise a separate hardware speaker, and wherein the hardware memory stores further instructions that configure the one or more hardware processors to perform further operations comprising setting the bandwidth cap further based on one or more speaker characteristics of one or more of the hardware speakers. 14. The apparatus of claim 10 , wherein the hardware memory stores further instructions that configure the one or more hardware processors to perform further operations comprising quantizing the plurality of bandwidth measurements, and determining the maximum bandwidth based on the quantized plurality of bandwidth measurements. 15. The apparatus of claim 10 , wherein the hardware memory stores further instructions that configure the one or more hardware processors to perform further operations comprising counting a number of the plurality of bandwidth measurements that fall within each of a plurality of bandwidth ranges, and determining the maximum bandwidth based on the counts. 16. The apparatus of claim 15 , wherein the hardware memory stores further instructions that configure the one or more hardware processors to perform further operations comprising including bandwidth measurements within a predetermined elapsed time in the counts and excluding from the counts bandwidth measurements occurring before the predetermined elapsed time. 17. A non-transitory computer readable storage medium comprising instructions that when executed cause a hardware processor to perform a method of determining an encoding rate, the method comprising: determining a plurality of bandwidth measurements of a network path between a first device and a second device based on data communication over the path; determining a maximum bandwidth of the network path based on the plurality of bandwidth measurements; setting a bandwidth cap based on a first percentage of the maximum bandwidth in response to the maximum bandwidth meeting a first criterion, and setting the bandwidth cap based on a second different percentage of the maximum bandwidth in response to the maximum bandwidth meeting a second criterion determining a minimum bandwidth of the network path based at least in part on the plurality of bandwidth measurements; determining an encoding rate of an encoder to be between the bandwidth cap and the minimum bandwidth; encoding data based on the determined rate; and transmitting the encoded data over the network path.

Assignees

Inventors

Classifications

  • Session management · CPC title

  • H04L65/60Primary

    Network streaming of media packets · CPC title

  • Session establishment or de-establishment · CPC title

  • at the source  (reformatting of additional data in video distribution servers H04N21/2355) · CPC title

  • Responding to QoS · 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 US10116715B2 cover?
A method comprising: conducting a communication session between a first terminal and a second terminal, the session comprising transmitting an encoded bitstream from an encoder of the first terminal over a channel to the second terminal; measuring a bandwidth capacity experienced over the channel at multiple different times, thereby collecting a history of bandwidth measurements for the channel…
Who is the assignee on this patent?
Microsoft Technology Licensing 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 Oct 30 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).