IP Library Granted Patent US 10,902,883
Granted Patent B2
US 10,902,883 · App. 16/199,223 · Granted Jan 26, 2021

Systems and methods for playing back multimedia files incorporating reduced index structures

Inventors: Kourosh Soroushian (San Diego, CA); Roland Osborne (San Francisco, CA); Jason Braness (San Diego, CA); Shaiwal Priyadarshi (San Diego, CA)
Assignee: DIVX, LLC
G11B27/10G06F16/2228G06F16/40G06F16/41G06F16/71G06F16/745
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,902,883
App. No.
16/199,223
Granted
Jan 26, 2021
Kind
B2
Abstract

Playback and distribution systems and methods for multimedia files are provided. The multimedia files are encoded with indexes associated with the content data of the multimedia files. Through the use of the indexes, playback of the content is enhanced without significantly increasing the file size of the multimedia file.

Claims (72)

1. A playback device comprising:

memory containing a client application;

a processor configured by the client application to:

receive a user instruction;

request portions of media files from media servers in response to the user instruction, where at least one of the media files comprises:

encapsulated video data;

a reduced index identifying the location of access frames within the encapsulated video data, where each entry in the reduced index within the encapsulated video data is signaled by a flag and includes an offset to an access frame in the encapsulated video data; and

a complete index comprising blocks of index information interleaved between encapsulated video data, where each block of interleaved index information:

lists the relative location of each encapsulated video frame in the encapsulated video following the block of interleaved index information and prior to the next block of interleaved index information; and

includes information indicating the presentation time of each encapsulated video frame;

store a block of interleaved index information into memory from a received portion of a media file;

locate an entry of the reduced index in the received portion of the media file using a flag and storing the entry from the reduced index in memory;

access an encapsulated video frame that is an access frame using the entry from the reduced index stored in memory;

access an encapsulated video frame from the received portion of a media file using the block of interleaved index information stored into memory; and

playback the encapsulated video frame that is an access frame.

2. The playback device of claim 1 , wherein the relative location of each encapsulated video frame is indicated by providing the size of each encapsulated video frame.

3. The playback device of claim 1 , wherein the information indicating the presentation time of an encapsulated video frame is a timestamp.

4. The playback device of claim 1 , wherein an encapsulated video frame that is an access frame is a key frame.

5. The playback device of claim 1 , wherein the interleaved index information further comprises information indicating whether an encapsulated video frame is a key-frame.

6. The playback device of claim 1 , wherein the client application requests portions of media files by downloading specific byte ranges from the media files.

7. The playback device of claim 1 , wherein the reduced index is interleaved between the encapsulated video data.

8. The playback device of claim 1 , wherein the reduced index includes entries for a subset of the encapsulated video frames.

9. The playback device of claim 1 , wherein each entry in the reduced index further comprises a time stamp of an access frame.

10. A playback device comprising:

memory containing a client application;

a processor configured by the client application to:

receive a user instruction;

request a byte range of a media file from a media server in response to the user instruction, where the media files comprises:

encapsulated video data;

a reduced index interleaved between the encapsulated video data and identifying the location of access frames within the encapsulated video data, where each entry in the reduced index within the encapsulated video data is signaled by a flag comprising a plurality of bits and includes an offset to an access frame in the encapsulated video data; and

a complete index comprising blocks of index information interleaved between encapsulated video data, where each block of interleaved index information:

lists the relative location of each encapsulated video frame in the encapsulated video following the block of interleaved index information and prior to the next block of interleaved index information, where the relative location of each encapsulated video frame is indicated by providing the size of each encapsulated video frame; and

includes information indicating the presentation time of each encapsulated video frame;

store a block of interleaved index information into memory from a received portion of a media file;

locate an entry of the reduced index in the received portion of the media file using a flag comprising a plurality of bits and storing the entry from the reduced index in memory;

access an encapsulated video frame that is an access frame using the entry from the reduced index stored in memory;

access an encapsulated video frame from the received portion of a media file using the block of interleaved index information stored into memory; and

playback the encapsulated video frame that is an access frame.

11. A method comprising:

receiving a user instruction;

requesting portions of media files from media servers in response to the user instruction, where at least one of the media files comprises:

encapsulated video data;

a reduced index identifying the location of access frames within the encapsulated video data, where each entry in the reduced index within the encapsulated video data is signaled by a flag and includes an offset to an access frame in the encapsulated video data; and

a complete index comprising blocks of index information interleaved between encapsulated video data, where each block of interleaved index information:

lists the relative location of each encapsulated video frame in the encapsulated video following the block of interleaved index information and prior to the next block of interleaved index information; and

includes information indicating the presentation time of each encapsulated video frame;

storing a block of interleaved index information into memory from a received portion of a media file;

locating an entry of the reduced index in the received portion of the media file using a flag and storing the entry from the reduced index in memory;

accessing an encapsulated video frame that is an access frame using the entry from the reduced index stored in memory;

accessing an encapsulated video frame from the received portion of a media file using the block of interleaved index information stored into memory; and

playing back the encapsulated video frame that is an access frame.

12. The method of claim 11 , wherein the relative location of each encapsulated video frame is indicated by providing the size of each encapsulated video frame.

13. The method of claim 11 , wherein the information indicating the presentation time of an encapsulated video frame is a timestamp.

14. The method of claim 11 , wherein an encapsulated video frame that is an access frame is a key frame.

15. The method of claim 11 , wherein the interleaved index information further comprises information indicating whether an encapsulated video frame is a key-frame.

16. The method of claim 11 , wherein requesting portions of media files is performed by downloading specific byte ranges from the media files.

17. The method of claim 11 , wherein the reduced index is interleaved between the encapsulated video data.

18. The method of claim 11 , wherein the reduced index includes entries for a subset of the encapsulated video frames.

19. The method of claim 11 , wherein each entry in the reduced index further comprises a time stamp of an access frame.

20. A method comprising:

receiving a user instruction;

requesting a byte range of a media file from a media server in response to the user instruction, where the media files comprises:

encapsulated video data;

a reduced index interleaved between the encapsulated video data and identifying the location of access frames within the encapsulated video data, where each entry in the reduced index within the encapsulated video data is signaled by a flag comprising a plurality of bits and includes an offset to an access frame in the encapsulated video data; and

a complete index comprising blocks of index information interleaved between encapsulated video data, where each block of interleaved index information:

lists the relative location of each encapsulated video frame in the encapsulated video following the block of interleaved index information and prior to the next block of interleaved index information, where the relative location of each encapsulated video frame is indicated by providing the size of each encapsulated video frame; and

includes information indicating the presentation time of each encapsulated video frame;

storing a block of interleaved index information into memory from a received portion of a media file;

locating an entry of the reduced index in the received portion of the media file using a flag comprising a plurality of bits and storing the entry from the reduced index in memory;

accessing an encapsulated video frame that is an access frame using the entry from the reduced index stored in memory;

accessing an encapsulated video frame from the received portion of a media file using the block of interleaved index information stored into memory; and

playing back the encapsulated video frame that is an access frame.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: SOROUSHIAN, KOUROSH; OSBORNE, ROLAND; BRANESS, JASON; PRIYADARSHI, SHAIWAL
To: DIVX, INC.
Reel/Frame 048535/0817 →
CHANGE OF NAME Recorded Mar 7, 2019
From: DIVX, INC.
To: DIVX, LLC
Reel/Frame 048535/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 048535/0864 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2019
From: SONIC IP, INC.
To: DIVX CF HOLDINGS LLC
Reel/Frame 048535/0903 →
CHANGE OF NAME Recorded Mar 7, 2019
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 048535/0922 →
Continuity (5)
Continuation 15229030 · Aug 4, 2016
Continuation 13560884 · Jul 27, 2012
Continuation 12272631 · Nov 17, 2008
Provisional Application 60988513 · Nov 16, 2007
Related Publication 20190096440A1 · Mar 28, 2019