IP Library Granted Patent US 10,771,833
Granted Patent B2
US 10,771,833 · App. 16/302,363 · Granted Sep 8, 2020

System and method for improving streaming video via better buffer management

Inventors: Matvey Arye (New York, NY); Michael J. Freedman (Princeton, NJ)
Assignee: The Trustees of Princeton University
H04N21/2662G06F8/4451H04L43/0864H04L47/12H04L47/27H04L47/29H04L65/4084H04L65/601H04L65/608H04L67/02H04L69/16H04N21/23439H04N21/2402H04N21/44004H04N21/44209H04N21/6373H04N21/6379H04N21/8456H04N21/8586H04L43/0882H04L43/0888H04L43/0894H04L43/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,771,833
App. No.
16/302,363
Granted
Sep 8, 2020
Kind
B2
Abstract

Disclosed are solutions for improving Internet video streaming. A first number is determined based on one or more parameters, including network conditions. A second number is then determined corresponding to a number of video segments that is greater than or equal in size to a third number determined based on a bandwidth-delay product of the network to a remote machine. The second number of video segments is then requested in a pipelined fashion. Pipelined requests are stopped when a predetermined size of the video has been requested that is greater than or equal to the first number. Alternatively, a request is sent to the remote machine to send a portion of the video, where the size of the portion of the video is equal to the first number or equal to the size of video remaining if less than the first number. Combined with pipelining, the approach achieves near-optimal throughput and fast bitrate adaptation, regardless of control plane algorithm.

Claims (33)

1. A method for improving video streaming performance of a video in a system having a client machine and remote machine, the method being performed by the client machine and comprising:

determining a first number based on one or more parameters, at least one of the parameters being related to current network conditions;

determining a second number corresponding to a number of video segments of the video, as calculated by a total size of the video segments, that is greater than or equal in size to a third number determined based on at least a bandwidth-delay product of the network to the remote machine, the third number being no less than two;

requesting from the remote machine the second number of video segments in a pipelined fashion, wherein a subsequent request for a video segment of the video is made before a response to a prior request is at least partially received, provided that no less than the second number of video segments are outstanding at any one time, and wherein another subsequent request is made if fewer than the second number of video segments are outstanding; and

stopping subsequent pipelined requests if a predetermined size of the video has been requested that is greater than or equal to the first number.

2. The method of claim 1 , wherein the requests occur via HTTP.

3. The method of claim 1 , wherein the current network conditions include an estimated bandwidth to the remote machine.

4. The method of claim 1 , wherein the current network conditions include an estimate of the network latency or round-trip time to the remote machine.

5. The method of claim 1 , wherein determining the first number includes determining a first number based on two or more parameters, at least two of the parameters being related to network conditions.

6. The method of claim 5 , wherein one of the two parameters is an estimated bandwidth to the remote machine.

7. The method of claim 5 , wherein one of the two parameters is an estimate of network latency or round-trip time to the remote machine.

8. The method of claim 1 , wherein determining the first number includes determining the first number based on an underperformance parameter used to determine how close performance should be to an optimal value.

9. The method of claim 1 , wherein determining the first number includes determining the first number based on TCP estimates.

10. The method of claim 9 , wherein the TCP estimates include a number of round-trips before TCP reaches a slow-start threshold or a bandwidth-delay-product.

11. The method of claim 9 , wherein the TCP estimates include a number of bytes transferred before TCP reaches a slow-start threshold or a bandwidth-delay-product.

12. The method of claim 1 , wherein the first number is determined by:

determining an underperformance value;

estimating a slow start threshold;

calculating an initial number of network round-trips that occur between a beginning of a response and a slow start threshold;

calculating a subsequent number of network round-trips that occur between the slow start threshold until a fair-bandwidth-delay product is reached;

determining a total number of network round-trips based on the initial number of network round-trips, the subsequent number of network round-trips, and the underperformance value; and

computing the first number based on the total number of network round-trips and the bandwidth-delay product.

13. The method of claim 1 , further comprising using an adaptive bit-rate algorithm to select a bitrate of outstanding video segments.

14. An apparatus having improved video streaming performance, comprising:

a transceiver;

memory; and

at least one processor operatively connected to the memory and the transceiver, the at least one processor being operative to:

(i) determine a first number based on one or more parameters, at least one of the parameters being related to current network conditions; and

(ii) at least one of:

(a) determine a second number corresponding to a number of video segments of the video, as calculated by a total size of the video segments, that is greater than or equal in size to a third number determined based on at least a bandwidth-delay product of the network to the remote machine, the third number being no less than two, then request the second number of video segments in a pipelined fashion, and stop sending pipelined requests if a predetermined size of the video has been requested that is greater than or equal to the first number, and

(b) request that the remote machine send a portion of the video, the portion of the video having a size that is equal to the first number or equal to the size of video remaining if less than the first number.

15. The apparatus of claim 14 , wherein the processor determines the first number based on two or more parameters, at least two of the parameters being related to network conditions.

16. The apparatus of claim 14 , wherein the apparatus is a server, workstation, desktop computer, laptop, smart phone or mobile device, wearable device, smart TV, video-game console, digital video recorder, digital-media center, projector, tablet, set-top box, streaming stick, dongle, smart hub, or gateway.

Assignments (2)
CONFIRMATORY LICENSE Recorded Apr 27, 2020
From: PRINCETON UNIVERSITY
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 052501/0313 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 2, 2019
From: ARYE, MATVEY; FREEDMAN, MICHAEL
To: THE TRUSTEES OF PRINCETON UNIVERSITY
Reel/Frame 051149/0185 →
Continuity (2)
Provisional Application 62343279 · May 31, 2016
Related Publication 20190306551A1 · Oct 3, 2019