IP Library Granted Patent US 10,101,801
Granted Patent B2
US 10,101,801 · App. 14/079,379 · Granted Oct 16, 2018

Method and apparatus for prefetching content in a data stream

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 10,101,801
App. No.
14/079,379
Granted
Oct 16, 2018
Kind
B2
Abstract

A data-processing system facilitates processing a data stream to assist other devices to pre-fetch elements of the data stream, out-of-sequence, for uninterrupted playback. During operation, the system can receive a data file, and segments the data file into a sequence of content objects. The system then determines a target content object that is to be processed out-of-sequence, and a corresponding source content object. The system then inserts a reference to the target content object, into the source content object, and stores the sequence of content objects. A client device can disseminate interest to obtain the data stream's content objects. Upon receiving a content object, the client device can determine whether the content object includes a reference to other content objects. If so, the client device can disseminate interests for these referenced content objects.

Claims (90)

1. A computer-implemented method comprising:

segmenting, by a computer, digital content into a sequence of content objects;

determining a target content object of the sequence of content objects, wherein the target content object is to be processed out-of-sequence;

determining a source content object of the sequence of content objects, wherein the target content object is to be processed after the source content object;

inserting a reference into the source content object, wherein the reference indicates that the target content object is to be processed following the source content object, wherein the reference is distinct from a name for the source content object; and

storing the sequence of content objects, wherein the sequence includes the reference inserted into the source content object.

2. The method of claim 1 , wherein the digital content includes a plurality of data items, and wherein a content object's starting boundary or ending boundary corresponds to one or more of:

a starting boundary of a data item;

an ending boundary of a data item; and

an offset between a data item's starting boundary and ending boundary.

3. The method of claim 1 , wherein the reference comprises one or more of:

an identifier for the target content object; and

a data offset within the target content object.

4. The method of claim 3 , wherein the identifier includes a hierarchically structured variable-length identifier.

5. The method of claim 1 , wherein the digital content includes one or more of:

an audio stream;

a video stream;

executable instructions;

a document;

a graphical interchange format file;

encrypted code; and

a text stream.

6. The method of claim 1 , further comprising:

encoding the contents of a source media stream to a target media-stream format; and

generating the digital content to include the source media stream in the target media-stream format.

7. The method of claim 1 , wherein determining the target object involves:

determining a file-data offset of the data file, which is to be processed out-of-sequence; and

determining, from the sequence of content objects, the content object that corresponds to the file-data offset.

8. The method of claim 1 , further comprising:

receiving an interest for a content object; and

in response to determining that the content object is stored in a local repository, sending the content object through an interface associated with the interest.

9. The method of claim 1 , further comprising publishing the sequence of content objects, wherein publishing a respective content object involves:

disseminating an advertisement for the content object over a content-centric network.

10. A computer-implemented method comprising:

disseminating, by a client computing device, an interest for digital content, wherein a name for the interest is a hierarchically structured variable length identifier comprised of contiguous name components ordered from a most general level to a most specific level;

receiving a content object, which corresponds to the digital content and satisfies the interest;

determining that the received content object includes a reference to a data item from a target content object, wherein the reference is distinct from a name for the received content object; and

disseminating an interest for the target content object to obtain the data item.

11. The method of claim 10 , wherein the method further comprises:

generating an interest for a successive content object; and

disseminating an interest, which corresponds to the successive content object, to obtain the successive content object.

12. The method of claim 10 , wherein the data item's starting boundary corresponds to one or more of:

a starting boundary of the target content object; and

an offset from the target content object's starting boundary.

13. The method of claim 10 , wherein the reference indicates:

an identifier for the target content object; and

a data offset, from the target content object's starting boundary, for the data item.

14. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

segmenting, by a computer, digital content into a sequence of content objects;

determining a target content object of the sequence of content objects, wherein the target content object is to be processed out-of-sequence;

determining a source content object of the sequence of content objects, wherein the target content object is to be processed after the source content object;

inserting a reference into the source content object, wherein the reference indicates that the target content object is to be processed following the source content object, wherein the reference is distinct from a name for the source content object; and

storing the sequence of content objects, wherein the sequence includes the reference inserted into the source content object.

15. The storage medium of claim 14 , wherein the digital content includes a plurality of data items, and wherein a content object's starting boundary or ending boundary corresponds to one or more of:

a starting boundary of a data item;

an ending boundary of a data item; and

an offset between a data item's starting boundary and ending boundary.

16. The storage medium of claim 14 , wherein the reference comprises one or more of:

an identifier for the target content object; and

a data offset within the target content object.

17. The storage medium of claim 16 , wherein the identifier includes a hierarchically structured variable-length identifier.

18. The storage medium of claim 14 , wherein the digital content includes one or more of:

an audio stream;

a video stream;

executable instructions;

a document;

a graphical interchange format file;

encrypted code; and

a text stream.

19. The storage medium of claim 18 , further comprising:

encoding the contents of a source media stream to a target media-stream format; and

generating the digital content to include the source media stream in the target media-stream format.

20. The storage medium of claim 14 , wherein determining the target object involves:

determining a file-data offset of the data file, which is to be processed out-of-sequence; and

determining, from the sequence of content objects, the content object that corresponds to the file-data offset.

21. The storage medium of claim 14 , further comprising:

receiving an interest for a content object; and

in response to determining that the content object is stored in a local repository, sending the content object through an interface associated with the interest.

22. The storage medium of claim 14 , further comprising publishing the sequence of content objects, wherein publishing a respective content object involves disseminating an advertisement for the content object over a content-centric network.

23. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method, the method comprising:

disseminating an interest for digital content, wherein a name for the interest is a hierarchically structured variable length identifier comprised of contiguous name components ordered from a most general level to a most specific level;

receiving a content object, which corresponds to the digital content and satisfies the interest;

determining that the received content object includes a reference to a data item from a target content object, wherein the reference is distinct from a name for the received content object; and

disseminating an interest for the target content object to obtain the data item.

24. The storage medium of claim 23 , wherein the method further comprises:

generating an interest for a successive content object; and

disseminating an interest, which corresponds to the successive content object, to obtain the successive content object.

25. The storage medium of claim 23 , wherein the data item's starting boundary corresponds to one or more of:

a starting boundary of the target content object; and

an offset from the target content object's starting boundary.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: PALO ALTO RESEARCH CENTER INCORPORATED
To: CISCO SYSTEMS, INC.
Reel/Frame 041714/0373 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 14, 2017
From: CISCO SYSTEMS, INC.
To: CISCO TECHNOLOGY, INC.
Reel/Frame 041715/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2013
From: SILBERSTEIN, REBECCA LYNN BRAYNARD; PLASS, MICHAEL F.; MEIKE, ROGER C.
To: PALO ALTO RESEARCH CENTER INCORPORATED
Reel/Frame 031605/0441 →