IP Library › Granted Patent US 9,973,345
Granted Patent B2
US 9,973,345 · App. 14/848,066 · Granted May 15, 2018

Calculating and signaling segment availability times for segments of media data

Inventors: Ralph Akram Gholmieh (San Diego, CA); Nagaraju Naik (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04L12/1881H04L65/4076H04L65/607H04L67/02H04L67/42H04N21/2402H04N21/44209H04N21/44245H04N21/637H04N21/8456
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,973,345
App. No.
14/848,066
Granted
May 15, 2018
Kind
B2
Abstract

An example device for advertising a segment availability time when transporting media data includes a middleware unit configured to determine a playback duration, X, for segments of media data, determine a current time at a first scheduled burst, a burst , of a multicast channel (MCH) scheduling period (MSP) for a first segment having segment number a, determine an MSP duration, D MSP , calculate a segment availability time for a second segment having segment number b according to a formula that uses X, a burst , a, b, and D MSP as inputs, and advertise the segment availability time for the second segment.

Claims (66)

1. A method of advertising a segment availability time when transporting media data, the method comprising, by a middleware unit of a client device:

determining a playback duration, X, for segments of media data;

determining a current time at a first scheduled burst, a burst , of a multicast channel (MCH) scheduling period (MSP) for a first segment having segment number a;

determining an MSP duration, D MSP , wherein D MSP represents an amount of time data of the corresponding MSP is transmitted;

calculating a segment availability time for a second segment having segment number b according to a formula that uses X, a burst , a, b, and D MSP as inputs, wherein the formula comprises one of:

a burst (b−a)*X+ceiling(X/D MSP )*D MSP ;

a burst (b−a)*X+D MSP +floor(X/D MSP )*D MSP ; or

a burst (b−a)*X+D MSP +ceiling((X/D MSP )*(1+A)/(1+α))*D MSP , wherein A comprises a percent value of a running average size of segments that an encoder is not permitted to exceed for the second segment, and wherein α comprises a value that is equal to available bandwidth divided by average rate minus 1; and

advertising the segment availability time for the second segment.

2. The method of claim 1 , further comprising:

determining the percent value A; and

determining the value of α.

3. The method of claim 2 , wherein determining the percent value A comprises retrieving the percent value A from configuration data of the client device.

4. The method of claim 2 , wherein determining the percent value A comprises receiving the percent value A via a network from which the first segment and the second segment are received.

5. The method of claim 2 , wherein determining the percent value A comprises setting the percent value A equal to 0 when the percent value A is not received via a network from which the first segment and the second segment are received.

6. The method of claim 1 , further comprising:

determining multiple timelines based on multiple received segments; and

determining one of the multiple timelines having earliest times for segment availability as a tightest timeline,

wherein advertising the segment availability time comprises advertising the segment availability time based on the tightest timeline.

7. The method of claim 6 , further comprising receiving multiple segments simultaneously when the D MSP value is larger than the playback duration and where the tightest timeline is advertised in a manifest file.

8. The method of claim 6 , further comprising adjusting a manifest file using the tightest timeline following a subsequent service activation.

9. The method of claim 6 , further comprising using a staleness timer to determine whether to invalidate a validity of the tightest timeline.

10. The method of claim 1 , wherein advertising comprises advertising the segment availability time in a manifest file to a dynamic adaptive streaming over HTTP (DASH) client unit of the client device.

11. The method of claim 1 , further comprising, prior to advertising the segment availability time, adjusting the segment availability time by a margin to account for at least one of device processing, scheduling duration of the first scheduled burst, or jitter in the scheduling of the first scheduled burst.

12. The method of claim 11 , wherein the margin comprises a value that is less than or equal to D MSP /2.

13. The method of claim 11 , further comprising receiving a value for the margin via a network from which the first segment and the second segment are received.

14. The method of claim 1 , wherein determining the MSP duration, D MSP , comprises receiving data defining the MSP duration, D MSP , from a modem of the client device.

15. The method of claim 1 , wherein determining the current time at the first scheduled burst comprises determining the current time from data of a file delivery table (FDT) indicative of a time of reception of the first segment.

16. The method of claim 1 , wherein the first segment comprises a largest segment among the first N segments received from N representations, where N is a positive integer value.

17. The method of claim 16 , wherein the N representations comprise two or more representations including any combination of one or more audio representations, one or more video representations, or one or more timed text representations.

18. The method of claims 16 , wherein the N representations comprise N representations from which data is received via broadcast.

19. The method of claim 1 , further comprising receiving the first segment and the second segment via a broadcast protocol or a multicast protocol.

20. The method of claim 1 , further comprising receiving the first segment and the second segment via File Delivery over Unidirectional Transport (FLUTE) protocol.

21. A client device for advertising a segment availability time when transporting media data, the client device comprising:

a middleware unit configured to:

determine a playback duration, X, for segments of media data;

determine a current time at a first scheduled burst, a burst , of a multicast channel (MCH) scheduling period (MSP) for a first segment having segment number a;

determine an MSP duration, D MSP , wherein D MSP represents an amount of time data of the corresponding MSP is transmitted;

calculate a segment availability time for a second segment having segment number b according to a formula that uses X, a burst , a, b, and D MSP as inputs, wherein the formula comprises one of:

a burst (b−a)*X+ceiling(X/D MSP )*D MSP ;

a burst (b−a)*X+D MSP +floor(X/D MSP )*D MSP ; or

a burst (b−a)*X+D MSP ceiling((X/D DMS )*(1+A)/(1+α))*D MSP , wherein A comprises a percent value of a running average size of segments that an encoder is not permitted to exceed for the second segment, and wherein α comprises a value that is equal to available bandwidth divided by average rate minus 1; and

advertise the segment availability time for the second segment.

22. The client device of claim 21 ,

wherein the middleware unit is further configured to:

determine the percent value A; and

determine the value of α.

23. The client device of claim 21 , further comprising a Dynamic Adaptive Streaming over HTTP (DASH) client, wherein the middleware unit is configured to advertise the segment availability time to the DASH client.

24. A client device for advertising a segment availability time when transporting media data, the client device comprising:

means for determining a playback duration, X, for segments of media data;

means for determining a current time at a first scheduled burst, a burst , of a multicast channel (MCH) scheduling period (MSP) for a first segment having segment number a;

means for determining an MSP duration, D MSP , wherein D MSP represents an amount of time data of the corresponding MSP is transmitted;

means for calculating a segment availability time for a second segment having segment number b according to a formula that uses X, a burst , a, b, and D MSP as inputs, wherein the formula comprises one of:

a burst (b−a)*X+ceiling(X/D MSP )*D MSP ;

a burst (b−a)*X+D MSP +floor(X/D MSP )*D MSP ; or

a burst (b−a)*X+D MSP ceiling((X/D DMS )*(1+A)/(1+α))*D MSP , wherein A comprises a percent value of a running average size of segments that an encoder is not permitted to exceed for the second segment, and wherein α comprises a value that is equal to available bandwidth divided by average rate minus 1; and

means for advertising the segment availability time for the second segment.

25. A computer-readable storage medium having stored thereon instructions that, when executed, cause a processor of a client device to:

determine a playback duration, X, for segments of media data;

determine a current time at a first scheduled burst, a burst , of a multicast channel (MCH) scheduling period (MSP) for a first segment having segment number a;

determine an MSP duration, D MSP , wherein D MSP represents an amount of time data of the corresponding MSP is transmitted;

calculate a segment availability time for a second segment having segment number b according to a formula that uses X, a burst , a, b, and D MSP as inputs, wherein the formula comprises one of:

a burst (b−a)*X+ceiling(X/D MSP )*D MSP ;

a burst (b−a)*X+D MSP +floor(X/D MSP )*D MSP ; or

a burst (b−a)*X+D MSP ceiling((X/D DMS )*(1+A)/(1+α))*D MSP , wherein A comprises a percent value of a running average size of segments that an encoder is not permitted to exceed for the second segment, and wherein α comprises a value that is equal to available bandwidth divided by average rate minus 1; and

advertise the segment availability time for the second segment.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 17, 2015
From: GHOLMIEH, RALPH AKRAM; NAIK, NAGARAJU
To: QUALCOMM INCORPORATED
Reel/Frame 036593/0301 →
Continuity (2)
Provisional Application 62048708 · Sep 10, 2014
Related Publication 20160072637A1 · Mar 10, 2016