IP Library Granted Patent US 9,432,433
Granted Patent B2
US 9,432,433 · App. 12/887,476 · Granted Aug 30, 2016

Enhanced block-request streaming system using signaling or block creation

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)
Assignee: QUALCOMM Incorporated
H04L65/604H04L65/607H04N21/235H04N21/23106H04N21/23406H04N21/234327H04N21/25808H04N21/2662H04N21/435H04N21/44004H04N21/44209H04N21/440227H04N21/84H04N21/8456H04L65/4084H04L65/602H04L65/80H04N21/2401
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,432,433
App. No.
12/887,476
Granted
Aug 30, 2016
Kind
B2
Abstract

A block-request streaming system provides for improvements in the user experience and bandwidth efficiency of such systems, typically using an ingestion system that generates data in a form to be served by a conventional file server (HTTP, FTP, or the like), wherein the ingestion system intakes content and prepares it as files or data elements to be served by the file server. The system might include controlling the sequence, timing and construction of block requests, time based indexing, variable block sizing, optimal block partitioning, control of random access point placement, including across multiple presentation versions, dynamically updating presentation data, and/or efficiently presenting live content and time shifting.

Claims (20)

1. A computer-implemented method, comprising:

obtaining data representing media of a presentation;

storing the data representing media of the presentation as a plurality of segments, wherein one or more of the plurality of segments includes a plurality of blocks, and wherein each block includes a plurality of frames;

storing correspondence data associated with at least one segment, wherein the stored correspondence data includes a correspondence between at least one time indicator and at least one position of at least one block within the at least one segment;

transmitting a segment and a segment index to a client, wherein the segment index includes correspondence data associated with the segment, and wherein the segment index allows the client to specify a position of one or more blocks within the segment to include in one or more requests;

receiving a request for a block from the client, wherein the request includes a specified position of the block within the segment; and

transmitting the block to the client in response to the request from the client for the block.

2. The method of claim 1 , wherein the stored correspondence data is stored as part of a file that also contains corresponding media data.

3. The method of claim 1 , wherein the stored correspondence data is a map formatted as XML metadata, wherein the time indicator is a time range relative to a beginning of the presentation or relative to a beginning of a media block.

4. The method of claim 1 , wherein the plurality of blocks and the stored correspondence data are generated by a media ingestion system and stored on a general purpose server that responds at least to file requests.

5. The method of claim 4 , wherein the file requests are HTTP requests.

6. The method of claim 1 , wherein the plurality of blocks are of variable duration and the stored correspondence data allows client devices to determine time range and data location correspondences that can vary depending on the variable durations of media blocks.

7. The method of claim 1 , wherein a group of pictures (GoP) is partitioned into more than one media block.

8. A method, in a client device that is capable of presenting a media presentation over a presentation time period, of determining requests to make of a media server, the method comprising:

obtaining, at the client device, a list of segments of the media presentation, wherein the client device is configured to transmit a request for a segment, wherein the segment includes a plurality of blocks, and wherein each block includes a plurality of frames;

determining, at the client device, a desired time period of the media presentation, wherein the desired time period is less than all of the presentation time period;

obtaining, at the client device, stored correspondence data that includes a correspondence between at least one time indicator and at least one data range of a block within a segment of the media presentation;

determining, at the client device, and from the stored correspondence data, a position of at least one block within the segment to include in a request for the at least one block from the media server;

transmitting the request for the at least one block; and

presenting the media presentation.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2015
From: VICISANO, LORENZO
To: QUALCOMM INCORPORATED
Reel/Frame 034933/0069 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2015
From: VICISANO, LORENZO
To: QUALCOMM INCORPORATED
Reel/Frame 034908/0074 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 17, 2011
From: LUBY, MICHAEL G.; WATSON, MARK; PAKZAD, PAYAM; WANG, BIN; CHEN, YING; STOCKHAMMER, THOMAS
To: QUALCOMM INCORPORATED
Reel/Frame 026291/0113 →
Continuity (7)
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
Related Publication 20110238789A1 · Sep 29, 2011