IP Library Granted Patent US 9,380,096
Granted Patent B2
US 9,380,096 · App. 13/456,474 · Granted Jun 28, 2016

Enhanced block-request streaming system for handling low-latency streaming

Inventors: Michael G. Luby (Berkeley, CA); Mark Watson (San Francisco, CA); Lorenzo Vicisano (Berkeley, CA); Payam Pakzad (Mountain View, CA); Bin Wang (Fremont, CA); Ying Chen (San Diego, CA); Thomas Stockhammer (Bergen, DE); Jaber Mohammad Borran (San Diego, CA)
Assignee: QUALCOMM Incorporated
H04L65/604H04L65/607H04N21/235H04N21/23106H04N21/23406H04N21/234327H04N21/25808H04N21/2662H04N21/435H04N21/44004H04N21/44209H04N21/440227H04N21/64322H04N21/84H04N21/8456H04L65/4084H04L65/602H04L65/80
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,380,096
App. No.
13/456,474
Granted
Jun 28, 2016
Kind
B2
Abstract

A block-request streaming system provides for low-latency streaming of a media presentation. A plurality of media segments are generated according to an encoding protocol. Each media segment includes a random access point. A plurality of media fragments are encoded according to the same protocol. The media segments are aggregated from a plurality of media fragments.

Claims (31)

1. A method, using a media server, for structuring data of content to be served, comprising:

obtaining the content to be served;

generating a plurality of media segments representing the content and encoded according to an encoding protocol that includes one or more frames of a media presentation encoded into each media segment, wherein a random access point is available in each media segment;

generating a plurality of media fragments encoded according to the encoding protocol, wherein a media segment includes the plurality of media fragments, and wherein at least some of the plurality of media fragments include random access points and at least some do not include random access points, a random access point including a position in a segment at which a decoder can decode fragments that are subsequent to the random access point independently of fragments that are prior to the random access point; and

generating a segment index for the media segment, the segment index including a presentation time range for each media fragment within the media segment, a corresponding byte range in the media segment occupied by each media fragment, and a random access point presence indicator that indicates whether a random access point is present within each media fragment.

2. The method of claim 1 , wherein the media segment is generated by concatenating the plurality of media fragments.

3. The method of claim 2 , further comprising generating the media segment in a cache and, wherein after the media segment is generated in the cache, the plurality of media fragments used to generate the media segment are purged from the cache.

4. The method of claim 1 , further comprising generating a single media presentation description (MPD) file that stores information about a first representation of the c comprising the plurality of media segments and a second representation of the media presentation comprising the plurality of media fragments.

5. The method of claim 4 , wherein the MPD file comprises an attribute to indicate a frequency of occurrence of random access points within the second representation.

6. The method of claim 5 , wherein the frequency is a period of time.

7. The method of claim 5 , wherein the frequency is a number of media fragments.

8. The method of claim 1 , further comprising determining positions for the random access points among the plurality of media fragments, wherein the random access points are positioned at variable non-fixed points among the plurality of media fragments.

9. A media server, comprising:

a processor configured to:

obtain content to be served;

generate a plurality of media segments representing the content and encoded according to an encoding protocol that includes one or more frames of a media presentation encoded into each media segment, wherein a random access point is available in each media segment;

generate a plurality of media fragments encoded according to the encoding protocol, wherein a media segment includes the plurality of media fragments, and wherein at least some of the plurality of media fragments include random access points and at least some do not include random access points, a random access point including a position in a segment in which a decoder can decode fragments that are subsequent to the random access point independently of fragments that are prior to the random access point; and

generate a segment index for the media segment, the segment index including a presentation time range for each media fragment within the media segment, a corresponding byte range in the media segment occupied by each media fragment, and a random access point presence indicator that indicates whether a random access point is present within each media fragment.

10. The media server of claim 9 , wherein the media segment is generated by concatenating the plurality of media fragments.

11. The media server of claim 10 , wherein the processor is further configured to generate the media segment in a cache and, wherein after the media segment is generated in the cache, the plurality of media fragments used to generate the media segment are purged from the cache.

12. The media server of claim 9 , wherein the processor is further configured to generate a single media presentation description (MPD) file that stores information about a first representation of the media presentation comprising the plurality of media segments and a second representation of the media presentation comprising the plurality of media fragments.

13. The media server of claim 12 , wherein the MPD file comprises an attribute to indicate a frequency of occurrence of random access points within the second representation.

14. The media server of claim 13 , wherein the frequency is a period of time.

15. The media server of claim 14 , wherein the frequency is a number of media fragments.

16. The media server of claim 9 , wherein the processor is further configured to determine positions for the random access points among the plurality of media fragments, wherein the random access points are positioned at variable non-fixed points among the plurality of media fragments.

17. One or more non-transitory computer-readable media storing computer-executable instructions that, when executed, cause one or more computing devices to:

obtain content to be served;

generate a plurality of media segments representing the content and encoded according to an encoding protocol that includes one or more frames of a media presentation encoded into each media segment, wherein a random access point is available in each media segment;

generate a plurality of media fragments encoded according to the encoding protocol, wherein a media segment includes the plurality of media fragments, and wherein at least some of the plurality of media fragments include random access points and at least some do not include random access points, a random access point including a position in a segment in which a decoder can decode fragments that are subsequent to the random access point independently of fragments that are prior to the random access point; and

generate a segment index for the media segment, the segment index including a presentation time range for each media fragment within the media segment, a corresponding byte range in the media segment occupied by each media fragment, and a random access point presence indicator that indicates whether a random access point is present within each media fragment.

18. The computer-readable media of claim 17 , wherein the instructions, when executed, cause the one or more computing devices to determine positions for the random access points among the plurality of media fragments, wherein the random access points are positioned at variable non-fixed points among the plurality of media fragments.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2015
From: VICISANO, LORENZO
To: QUALCOMM INCORPORATED
Reel/Frame 034933/0123 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2015
From: VICISANO, LORENZO
To: QUALCOMM INCORPORATED
Reel/Frame 034907/0695 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2014
From: LUBY, MICHAEL G; WATSON, MARK; PAKZAD, PAYAM; WANG, BIN; CHEN, YING; STOCKHAMMER, THOMAS; BORRAN, JABER MOHAMMAD
To: QUALCOMM INCORPORATED
Reel/Frame 034218/0019 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2014
From: LUBY, MICHAEL G.; WATSON, MARK; PAKZAD, PAYAM; WANG, BIN; CHEN, YING; STOCKHAMMER, THOMAS; BORAN, JABER MOHAMMAD
To: QUALCOMM INCORPORATED
Reel/Frame 033142/0912 →
Continuity (9)
Continuation In Part 12887476 · Sep 21, 2010
Provisional Application 61244767 · Sep 22, 2009
Provisional Application 61257719 · Nov 3, 2009
Provisional Application 61258088 · Nov 4, 2009
Provisional Application 61285779 · Dec 11, 2009
Provisional Application 61296725 · Jan 20, 2010
Provisional Application 61372399 · Aug 10, 2010
Provisional Application 61549150 · Oct 19, 2011
Related Publication 20130007223A1 · Jan 3, 2013