IP Library Granted Patent US 9,503,490
Granted Patent B2
US 9,503,490 · App. 13/745,811 · Granted Nov 22, 2016

Dash client and receiver with buffer water-level decision-making

Inventors: Qiang Gao (San Diego, CA); Michael George Luby (Berkeley, CA); Yinian Mao (San Diego, CA); Lorenz Christoph Minder (Berkeley, CA)
Assignee: QUALCOMM Incorporated
H04L65/60H04L65/1083H04L65/4084H04L65/4092H04L65/604H04L65/608H04L65/80H04N21/239H04N21/23439H04N21/442H04N21/44004H04N21/6373H04N21/8456H04L12/569H04L43/16H04L47/10H04L47/266H04L47/29H04L47/30H04N5/783H04N21/2401H04N21/2402H04N21/64769
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 9,503,490
App. No.
13/745,811
Granted
Nov 22, 2016
Kind
B2
Abstract

A client/receiver downloads data over a network path between a source and the receiver coupled by the network path and stores the media data in a presentation buffer of the receiver and from there it is consumed by a presentation element. The receiver monitors a presentation buffer fill level that represents what portion of the presentation buffer contains media data not yet consumed by a presentation element. The receiver makes requests for additional data to download. If the fill level is above a high fill threshold, the receiver does not make further requests and eventually the fill level goes down. If the fill level is below a low fill threshold, the receiver restarts the downloading and updates the fill level as media data is consumed by the presentation element. The fill level might be measured in units of memory storage capacity and/or units of presentation time.

Claims (26)

1. A method of controlling data downloading over a network path between a source and a receiver coupled by the network path, the method comprising:

downloading media data from the source, wherein downloading occurs over a number of TCP connections determined as a function of a bandwidth-delay product, the bandwidth-delay product including a product of an estimated round-trip time (ERTT) and a receive rate, the ERTT including a difference in time between transmission of a request for the media data and receipt of a response to the request, the receive rate including an average receive rate estimated over a last integer multiple of ERTT time;

storing the media data in a presentation buffer of the receiver;

monitoring a fill level of the presentation buffer, wherein the fill level represents a portion of the presentation buffer that contains media data not yet consumed by a presentation element;

if the fill level is above a high fill threshold, stopping the downloading;

if the fill level is below a low fill threshold, restarting the downloading, wherein restarting the downloading includes resetting the ERTT and the number of TCP connections to use when the media data download is restarted, wherein resetting the number of TCP connections to use comprises adjusting the number of TCP connections to use based on the bandwidth-delay product; and

updating the fill level as media data is consumed by the presentation element.

2. The method of claim 1 , wherein the fill level is measured in units of memory storage capacity.

3. The method of claim 1 , wherein the fill level is measured in units of presentation time.

4. The method of claim 1 , wherein the high fill and low fill thresholds vary over time.

5. A receiver that downloads data over a network path between a source and the receiver, comprising:

a presentation buffer configured to store downloaded media data downloaded from the source, wherein downloading of the media data occurs over a number of TCP connections determined as a function of a bandwidth-delay product, the bandwidth-delay product including a product of an estimated round-trip time (ERTT) and a receive rate, the ERTT including a difference in time between transmission of a request for the media data and receipt of a response to the request, the receive rate including an average receive rate estimated over a last integer multiple of ERTT time;

a presentation buffer monitor configured to monitor a fill level of the presentation buffer, wherein the fill level represents a portion of the presentation buffer that contains media data not yet consumed by a presentation element; and

an interface configured to send download requests, wherein if the fill level is above a high fill threshold, stopping a downloading of media data, and if the fill level is below a low fill threshold, restarting the downloading of the media data, wherein restarting the downloading includes resetting the ERTT and the number of TCP connections to use when the media data download is restarted, wherein resetting the number of TCP connections to use comprises adjusting the number of TCP connections to use based on the bandwidth-delay product, and wherein the fill level is updated as media data is consumed by the presentation element.

6. The receiver of claim 5 , wherein the fill level is measured in units of memory storage capacity.

7. The receiver of claim 5 , wherein the fill level is measured in units of presentation time.

8. The receiver of claim 5 , wherein the high fill and low fill thresholds vary over time.

9. A non-transitory computer readable medium for execution by a processor of a receiver for controlling data downloading over a network path between a source and a receiver coupled by the network path, having thereon program code comprising:

program code for downloading media data from the source, wherein downloading occurs over a number of TCP connections determined as a function of a bandwidth-delay product, the bandwidth-delay product including a product of an estimated round-trip time (ERTT) and a receive rate, the ERTT including a difference in time between transmission of a request for the media data and receipt of a response to the request, the receive rate including an average receive rate estimated over a last integer multiple of ERTT time;

program code for storing the media data in a presentation buffer of the receiver;

program code for monitoring a fill level of the presentation buffer, wherein the fill level represents a portion of the presentation buffer that contains media data not yet consumed by a presentation element;

program code for stopping the downloading if the fill level is above a high fill threshold;

program code for restarting the downloading if the fill level is below a low fill threshold, wherein restarting the downloading includes resetting the ERTT and the number of TCP connections to use when the media data download is restarted, wherein resetting the number of TCP connections to use comprises adjusting the number of TCP connections to use based on the bandwidth-delay product; and

program code for updating the fill level as media data is consumed by the presentation element.

10. The non-transitory computer readable media of claim 9 , wherein the fill level is measured in units of memory storage capacity and/or units of presentation time.

11. The non-transitory computer readable media of claim 9 , wherein the high fill and low fill thresholds vary over time.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2013
From: GAO, QIANG; LUBY, MICHAEL GEORGE; MAO, YINIAN; MINDER, LORENZ CHRISTOPH
To: QUALCOMM INCORPORATED
Reel/Frame 029779/0688 →
Continuity (2)
Provisional Application 61603569 · Feb 27, 2012
Related Publication 20130227122A1 · Aug 29, 2013