US2017104800A1PendingUtilityA1
Performance optimization for streaming video
Est. expiryJun 8, 2032(~5.9 yrs left)· nominal 20-yr term from priority
Inventors:Keith Emery Belovay
H04N 5/85H04N 7/0127H04L 65/80H04N 9/8042H04L 65/4092H04L 65/602H04N 5/783H04L 65/762H04L 65/613
45
PatentIndex Score
0
Cited by
0
References
0
Claims
Abstract
Disclosed are various embodiments for a streaming video application. The application downloads, decodes, and renders video frame data at different frame rates. Based on the differences between these frame rates, the downloading frame rate is adjusted to minimize performance degradation.
Claims
exact text as granted — not AI-modified1 . A non-transitory computer-readable medium having stored thereon a set of instructions, which if performed by a processor causes the processor to at least:
receive video frame data from a network at a first frame rate; decode the video frame data at a second frame rate, wherein the decoded video frame data is rendered on a display on a computing device; and causing the first frame rate to be adjusted based at least in part on at least one of: a difference between the first frame rate and the second frame rate, a utilization rate of a storage buffer to store the received video frame data, an amount of data stored in the storage buffer, or a determination of whether altering the first frame rate will result in a performance increase.
2 . The non-transitory computer-readable medium of claim 1 , wherein if performed the set of instructions further causes the processor to at least determine whether the amount of data stored in the storage buffer exceeds a maximum threshold.
3 . The non-transitory computer-readable medium of claim 1 , wherein the first frame rate is adjusted by a percentage of the difference between the first frame rate and a rendering frame rate.
4 . The non-transitory computer-readable medium of claim 1 , wherein if performed the set of instructions further causes the processor to at least perform the determination of whether altering the first frame rate will result in the performance increase by determining from performance history data that an increase in performance occurred in response to adjusting the first frame rate by a particular amount.
5 . The non-transitory computer-readable medium of claim 4 , wherein the performance history data is generated by:
determining that the first frame rate has been adjusted to a subsequent download frame rate; storing a first difference between the subsequent download frame rate and the second frame rate relative to a prior download frame rate; and storing a second difference between the subsequent download frame rate and the second frame rate relative to the subsequent download frame rate.
6 . The non-transitory computer-readable medium of claim 1 , wherein the video frame data is rendered on the display on the computing device at a third frame rate, and wherein determining to adjust the first frame rate by the amount is further based at least in part on a difference between the first frame rate and the third frame rate.
7 . A system, comprising:
one or more processors; and memory to store a set of instructions that, if performed, cause the one or more processors to at least:
receive video stream data from a network at a first frame rate;
decode the video stream data from a storage buffer into a stream of video frames at a second frame rate, the video stream data being rendered on a display; and
determine whether to modify the first frame rate based at least in part on an amount of data stored in a storage buffer and a difference between the first frame rate and the second frame rate.
8 . The system of claim 7 , wherein the set of instructions if performed further causes the one or more processors to at least calculate a proposed downloading frame rate based at least in part on the difference between the first frame rate and the second frame rate.
9 . The system of claim 8 , wherein the set of instructions if performed further causes the one or more processors to at least:
estimate that the proposed downloading frame rate will increase performance based at least in part on performance history data; and set the first frame rate to the proposed downloading frame rate.
10 . The system of claim 7 , wherein determining whether to modify the first frame rate is further based at least in part on the difference between the first frame rate and the second frame rate exceeding a maximum threshold.
11 . The system of claim 7 , wherein determining whether to modify the first frame rate comprises increasing the first frame rate in response to the difference between the first frame rate and the second frame rate being below a first minimum threshold and the amount of data stored in the storage buffer being below a second minimum threshold.
12 . The system of claim 7 , wherein the set of instructions if performed further causes the one or more processors to at least render the video stream data at a third frame rate, and wherein determining whether to modify the first frame rate is further based at least in part on a difference between the first frame rate and the third frame rate.
13 . The system of claim 12 , wherein the set of instructions if performed further causes the one or more processors to at least:
store, when the first frame rate is modified, a first attribute expressing the difference between the first frame rate and the second frame rate; and store, when the first frame rate is modified, a second attribute expressing the difference between the first frame rate and the third frame rate.
14 . The system of claim 13 , wherein storing the first attribute or the second attribute comprises storing a weighted average of a respective first attribute or a respective second attribute and a previously stored version of the respective first attribute or the respective second attribute.
15 . The system of claim 7 , wherein the set of instructions if performed further causes the one or more processors to at least increase or decrease the first frame rate by a particular increment.
16 . The system of claim 7 , wherein the set of instructions if performed further causes the one or more processors to at least calculate a proposed downloading frame rate based at least in part on performance history data.
17 . A method, comprising:
receiving, by one or more processors, video stream data from a network at a first frame rate; decoding, by the one or more processors, the video stream data at a second frame rate from a storage buffer, wherein the video stream data is rendered on a display; calculating, by the one or more processors, a difference between the first frame rate and the second frame rate; and determining, by the one or more processors, whether to adjust the first frame rate based at least in part on one or more of: the difference, an amount of data stored in the storage buffer, or a determination of whether altering the first frame rate will result in a performance increase.
18 . The method of claim 17 , further comprising increasing the first frame rate in response to the difference between the first frame rate and the second frame rate being below a first minimum threshold and the amount of data stored in the storage buffer being below a second minimum threshold.
19 . The method of claim 17 , further comprising decreasing the first frame rate in response to the amount of data stored in the storage buffer exceeding a maximum threshold.
20 . The method of claim 17 , further comprising determining that a proposed downloading frame rate will increase performance based at least in part on a previous usage of the proposed downloading rate.Join the waitlist — get patent alerts
Track US2017104800A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.