# US 9,438,861 B2 · Integrating continuous and sparse streaming data

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,438,861 B2
- Document ID: US9438861B2
- Status: Granted
- Kind: B2
- Application number: 12/612,685
- Filed: 2009-11-05
- Published: 2011-04-07
- Granted: 2016-09-06
- Earliest claimed: 2009-10-06
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: John A. Bocharov; Geqiang (Sam) Zhang; Krishna Prakash Duggaraju; Lin Liu; Anirban Roy; Jack E. Freelander; Vishal Sood
- Inventors: John A. Bocharov; Geqiang (Sam) Zhang; Krishna Prakash Duggaraju; Lin Liu; Anirban Roy; Jack E. Freelander; Vishal Sood
- Web page: https://patentgrep.com/patent/US9438861B2

## CPC

- H04N 21/858: Linking data to content, e.g. by linking an URL to a video object, by creating a hotspot
- H04N 7/17318: {Direct or substantially direct transmission and handling of requests}
- H04N 21/2183: Cache memory {(caches in web servers or browsers G06F16/9574; intermediate storage and caching in data networks H04L67/568)}
- H04N 21/2187: Live feed
- H04N 21/23418: {involving operations for analysing video streams, e.g. detecting features or characteristics (television picture signal circuitry for scene change detection H04N5/147; filtering for image enhancement G06T5/00; methods or arrangements for recognising scenes G06V20/00; arrangements characterised by components specially adapted for monitoring, identification or recognition of video in broadcast systems H04H60/59)}
- H04N 21/44016: {involving splicing one content stream with another content stream, e.g. for substituting a video clip}
- H04N 21/4722: for requesting additional data associated with the content
- H04N 21/8456: {by decomposing the content in the time domain, e.g. in time segments}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A sparse streaming system provides a first-class means for sparse metadata to be added to streaming media presentations and to be delivered using an integrated data channel that is cacheable using readily available HTTP-based Internet caching infrastructure for increased scalability. The sparse streaming system stores a reference to a sparse track within a continuous track. If a continuous fragment arrives at the client that refers to a sparse fragment that the client has not yet retrieved, then the client requests the sparse fragment. In addition, each sparse fragment may include a backwards reference to the sparse fragment created immediately prior. The references in the continuous fragments make the client aware of new sparse track fragments, and the backwards references in the sparse track fragments ensure that the client has not missed any intervening sparse track fragments.

## Claims

### Claim 1

A computer-implemented method for preparing sparse data for retrieval by a client, the method comprising:
receiving a current sparse track fragment;
identifying a previous sparse track fragment received prior to the current sparse track fragment from the current sparse track;
storing a reference to the identified previous sparse track fragment in association with the received current sparse track fragment;
identifying a current continuous streaming track fragment associated with the current sparse track fragment;
storing a reference to the received current sparse track fragment in association with the identified current continuous track fragment; and
providing the identified current continuous track fragment including the stored reference to the received current sparse track fragment to at least one client,
wherein the preceding steps are performed by at least one processor.

### Claim 2 (depends on 1)

The method of claim 1 wherein receiving the current sparse track fragment includes aggregating sparse track fragments from multiple sources.

### Claim 3 (depends on 1)

The method of claim 1 wherein providing the identified current continuous track fragment includes providing an HTTP-cacheable delivery of textual metadata associated with a video presentation.

### Claim 4 (depends on 1)

The method of claim 1 wherein providing the identified current continuous track fragment includes providing an on-demand version of a previous live media presentation.

### Claim 5 (depends on 1)

The method of claim 1 wherein receiving the current sparse track fragment includes receiving multiple localized versions of a same sparse data track.

### Claim 6 (depends on 1)

The method of claim 1 wherein storing the reference to the received current sparse track fragment in association with the identified current continuous track fragment comprises storing the reference in a way that allows multiple sparse tracks to be associated with a single continuous track fragment.

### Claim 7 (depends on 1)

The method of claim 1 further comprising providing the received current sparse track fragment in response to a client request.

### Claim 8 (depends on 1)

The method of claim 1 further comprising providing a manifest to the client that allows the client to retrieve a subset of the sparse track fragments available to the client.

### Claim 9 (depends on 1)

The method of claim 1 further comprising providing a manifest to the client that informs the client of previously missed sparse track fragments.

### Claim 10 (depends on 1)

The method of claim 1 wherein the current sparse track fragment includes information that can trigger a client to perform one or more actions.

### Claim 11 (depends on 1)

The method of claim 1 wherein the current sparse track fragment includes spatial information to inform a client of advertisement insertion points in a continuous video track.

### Claim 12

A computer-readable storage device comprising instructions for controlling a computer system to prepare sparse data for retrieval by a client, wherein the instructions, when executed, cause a processor to perform actions comprising:
receiving a current sparse track fragment;
identifying a previous sparse track fragment received prior to the current sparse track fragment from the current sparse track fragment wherein the previous sparse track fragment is part of a same continuous streaming track as the current sparse track fragment;
storing a reference to the identified previous sparse track fragment in association with the received current sparse track fragment;
identifying a current continuous track fragment associated with the current sparse track fragment;
storing a reference to the received current sparse track fragment in association with the identified current continuous track fragment; and
providing the identified current continuous track fragment including the stored reference to the received current sparse track fragment to at least one client,
wherein the preceding steps are performed by at least one processor.

### Claim 13 (depends on 12)

The device of claim 12 wherein receiving the current sparse track fragment includes aggregating sparse track fragments from multiple sources.

### Claim 14 (depends on 12)

The device of claim 12 wherein providing the identified current continuous track fragment includes providing an HTTP-cacheable delivery of textual metadata associated with a video presentation.

### Claim 15 (depends on 12)

The device of claim 12 wherein providing the identified current continuous track fragment includes providing an on-demand version of a previous live media presentation.

### Claim 16 (depends on 12)

The device of claim 12 wherein receiving the current sparse track fragment includes receiving multiple localized versions of a same sparse data track wherein the multiple localized versions permit the same sparse data track to be played in multiple different languages.

### Claim 17 (depends on 12)

The device of claim 12 wherein storing the reference to the received current sparse track fragment in association with the identified current continuous track fragment comprises storing the reference in a way that allows multiple sparse tracks to be associated with a single continuous track fragment.

### Claim 18 (depends on 12)

The device of claim 12 further comprising providing the received current sparse track fragment in response to a client request.

### Claim 19 (depends on 12)

The device of claim 12 further comprising providing a manifest to the client that allows the client to retrieve a subset of the sparse track fragments available to the client.

### Claim 20 (depends on 12)

The device of claim 12 further comprising providing a manifest to the client that informs the client of previously missed sparse track fragments.
