Opportunistic block transmission with time constraints

US10587473B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10587473-B2
Application numberUS-201715723166-A
CountryUS
Kind codeB2
Filing dateOct 2, 2017
Priority dateMar 23, 2005
Publication dateMar 10, 2020
Grant dateMar 10, 2020

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 technique for determining a data window size allows a set of predicted blocks to be transmitted along with requested blocks. A stream enabled application executing in a virtual execution environment may use the blocks when needed.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving a request, from a streaming playback device, for a block of a stream-enabled application; determining likelihood of each of additional blocks of the stream-enabled application being requested based on an identification of the block of the stream-enabled application using probability data; adding the requested block of the stream-enabled application and then at least a portion of the additional blocks of the stream-enabled application to an output buffer in order of decreasing likelihoods of the additional blocks of the stream-enabled application being requested within a data window size of the output buffer, the data window size of the output buffer being varied based on at least one of a latency and a throughput that are dynamically changing; providing the requested block of the stream-enabled application and the at least the portion of the additional blocks in the output buffer to the streaming playback device. 2. The method of claim 1 , wherein the data window size is varied based on a maximum throughput with the streaming playback device. 3. The method of claim 1 , wherein the at least the portion of the additional blocks does not fill the output buffer when a non-added portion of the additional blocks is unlikely to follow the requested block of the stream-enabled application. 4. The method of claim 1 , wherein the probability data is a logical block probability table. 5. The method of claim 1 , wherein the probability data is generated based on a probability that the at least the portion of the additional blocks of the stream-enabled application will be requested in a number of stages following a current stage in virtualizing the stream-enabled application using the requested block of the stream-enabled application. 6. The method of claim 1 , wherein the data window size is varied also based on user responsiveness requirements to control a number of the additional blocks of the stream-enabled application added to the output buffer while still meeting the user responsiveness requirements in executing the stream-enabled application. 7. The method of claim 6 , wherein the user responsiveness requirements include an interactivity threshold that is a limit on an amount of time that a user interacting with the streaming playback device can wait for the at least the portion of the additional blocks in virtualizing the stream-enabled application. 8. The method of claim 1 , wherein the data window size is varied based on a maximum throughput with the streaming playback device and the maximum throughput is determined dynamically as the stream-enabled application is virtualized by the streaming playback device. 9. The method of claim 1 , wherein the data window size is varied based on a maximum throughput with the streaming playback device and the maximum throughput is determined by running the throughput through a low pass filter to determine an average throughput, the average throughput used in determining the maximum throughput with the streaming playback device. 10. The method of claim 1 , wherein the data window size is varied based on a maximum throughput with the streaming playback device and the maximum throughput is determined dynamically based on the latency with the streaming playback device. 11. A system comprising: an interface configured to receive a request, from a streaming playback device, for a block of a stream-enabled application; a predictor configured to determine likelihood of each of additional blocks of the stream-enabled application being requested based on an identification of the block of the stream-enabled application using probability data; a predicted block aggregation engine configured to: add the requested block of the stream-enabled application and then at least a portion of the additional blocks of the stream-enabled application to an output buffer in order of decreasing likelihoods of the additional blocks of the stream-enabled application being requested within a data window size of the output buffer, the data window size of the output buffer being varied based on at least one of a latency and a throughput that are dynamically changing; the interface further configured to provide the requested block of the stream-enabled application and the at least the portion of the additional blocks in the output buffer to the streaming playback device. 12. The system of claim 11 , wherein the data window size is varied based on a maximum throughput with the streaming playback device. 13. The system of claim 11 , wherein the at least the portion of the additional blocks does not fill the output buffer when a non-added portion of the additional blocks is unlikely to follow the requested block of the stream-enabled application. 14. The system of claim 11 , wherein the probability data is a logical block probability table. 15. The system of claim 11 , wherein the probability data is generated based on a probability that the at least the portion of the additional blocks of the stream-enabled application will be requested in a number of stages following a current stage in virtualizing the stream-enabled application using the requested block of the stream-enabled application. 16. The system of claim 11 , wherein the data window size is varied also based on user responsiveness requirements to control a number of the additional blocks of the stream-enabled application added to the output buffer while still meeting the user responsiveness requirements in executing the stream-enabled application. 17. The system of claim 16 , wherein the user responsiveness requirements include an interactivity threshold that is a limit on an amount of time that a user interacting with the streaming playback device can wait for the at least the portion of the additional blocks in virtualizing the stream-enabled application. 18. The system of claim 11 , wherein the data window size is varied based on a maximum throughput with the streaming playback device and the maximum throughput is determined dynamically as the stream-enabled application is virtualized by the streaming playback device. 19. The system of claim 11 , wherein the data window size is varied based on a maximum throughput with the streaming playback device and the maximum throughput is determined by running the throughput through a low pass filter to determine an average throughput, the average throughput used in determining the maximum throughput with the streaming playback device. 20. The system of claim 11 , wherein the data window size is varied based on a maximum throughput with the streaming playback device and the maximum throughput is determined dynamically based on the latency with the streaming playback device.

Assignees

Inventors

Classifications

  • using buffers · CPC title

  • Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches · CPC title

  • using pseudo-associative means, e.g. set-associative or hashing · CPC title

  • Electricity · mapped topic

  • Electricity · mapped topic

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 US10587473B2 cover?
A technique for determining a data window size allows a set of predicted blocks to be transmitted along with requested blocks. A stream enabled application executing in a virtual execution environment may use the blocks when needed.
Who is the assignee on this patent?
Numecent Holdings Inc
What technology area does this patent fall under?
Primary CPC classification H04L41/0896. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Mar 10 2020 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).