IP Library › Granted Patent US 11,159,746
Granted Patent B2
US 11,159,746 · App. 17/308,948 · Granted Oct 26, 2021

Multimedia distribution system for multimedia files with packed frames

Inventors: Jason Braness (San Diego, CA); Jerome Rota (San Diego, CA); Eric William Grab (San Diego, CA); Jerald Donaldson (San Diego, CA); Heather Hitchcock (Encinitas, CA); Damien Chavarria (Bedarieux, FR); Michael John Floyd (San Diego, CA); Brian T. Fudge (Los Angeles, CA); Adam H. Li (San Diego, CA)
Assignee: DIVX, LLC
H04N5/278G11B20/00086G11B20/00731H04N5/265H04N5/85H04N5/92H04N9/8047H04N19/44H04N21/845G11B20/00739
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 11,159,746
App. No.
17/308,948
Granted
Oct 26, 2021
Kind
B2
Abstract

A multimedia file and methods of generating, distributing and using the multimedia file are described. Multimedia files in accordance with embodiments of the present invention can contain multiple video tracks, multiple audio tracks, multiple subtitle tracks, data that can be used to generate a menu interface to access the contents of the file and ‘meta data’ concerning the contents of the file. Multimedia files in accordance with several embodiments of the present invention also include references to video tracks, audio tracks, subtitle tracks and ‘meta data’ external to the file. One embodiment of a multimedia file in accordance with the present invention includes a series of encoded video frames and encoded menu information.

Claims (108)

1. A system for decoding multimedia files, the system comprising:

a set of one or more processors; and

a non-volatile memory containing a video player application capable of causing the set of one or more processors to:

receive at least a portion of a multimedia file comprising a video track, where:

the video track comprises a plurality of encoded frames of video;

three encoded frames of video in the plurality of encoded frames of video are encoded as a first encoded frame of video, a second encoded frame of video that is dependent on at least the first encoded frame of video, and a third encoded frame of video that is dependent on at least the first encoded frame of video;

the video track comprises a first data chunk and a second data chunk; and

the first data chunk comprises:

the first encoded frame of video; and

the second encoded frame of video; and

the second data chunk comprises the third encoded frame of video;

locate the first data chunk within the multimedia file;

determine that the first data chunk contains multiple encoded frames of video;

decode the first encoded frame of video at the start of a time interval to produce a first decoded frame of video that is not displayed during the time interval;

buffer the first decoded frame of video in memory;

decode the second encoded frame of video during the time interval using the first decoded frame of video to produce a second decoded frame of video;

display the second decoded frame of video during the time interval;

locate the second data chunk within the multimedia file;

decode the third encoded frame of video at the end of the time interval using the first decoded frame of video to produce a third decoded frame of video, wherein the third encoded frame of video is a non-coded frame of video and the third decoded frame of video is the same as the first decoded frame of video; and

display the third decoded frame of video after the display of the second decoded frame of video.

2. The system of claim 1 , wherein the plurality of encoded frames of video in the video track are arranged in a decode sequence that differs in order from a sequence in which the decoded frames of video from the plurality of encoded frames of video are displayed.

3. The system of claim 1 , wherein the first encoded frame of video comprises information indicating that the first decoded frame of video should be buffered instead of displayed.

4. The system of claim 1 , wherein the second encoded frame of video references a first reference frame of video displayed prior to the decoding of the second encoded frame of video and a second reference frame of video that is not displayed prior to the decoding of the second encoded frame of video.

5. The system of claim 4 , wherein both the first reference frame of video and the second reference frame of video are decoded prior to the decoding of the second encoded frame of video.

6. The system of claim 5 , wherein:

the decoding application is capable of causing the set of processors to buffer the first decoded frame of video in memory; and

the second reference frame of video is the first decoded frame of video.

7. The system of claim 1 , wherein the first encoded frame of video is a P frame and the second encoded frame of video is a B frame.

8. The system of claim 1 , wherein the third encoded frame of video is a non-coded P frame.

9. The system of claim 1 , wherein the non-coded frame of video has identical timing information as the first decoded frame of video.

10. The system of claim 1 , wherein:

the at least a portion of the multimedia file comprises digital rights management (DRM) information concerning the first data chunk, where the DRM information comprises:

an offset value that indicates a start of a block of encrypted bytes within a referenced frame of video; and

a number value that indicates a number of encrypted bytes in the block of encrypted bytes; and

the video player application is further capable of causing the set of one or more processors to decrypt the encrypted bytes in the block of bytes indicated by the offset value and the number value prior to decoding the referenced frame of video;

wherein the referenced frame of video is selected from a group consisting of the first encoded frame of video and the second encoded frame of video.

11. A system for decoding multimedia files, the system comprising:

a set of one or more processors; and

a non-volatile memory containing a video player application capable of causing the set of one or more processors to:

receive at least a portion of a multimedia file comprising a video track, where:

the video track comprises a plurality of encoded frames of video;

three encoded frames of video in the plurality of encoded frames of video are encoded as a first encoded frame of video, a second encoded frame of video that is dependent on at least the first encoded frame of video, and a third encoded frame of video that is dependent on at least the first encoded frame of video;

the video track comprises a first data chunk and a second data chunk; and

the first data chunk comprises:

the first encoded frame of video; and

the second encoded frame of video; and

the second data chunk comprises the third encoded frame of video;

locate the first data chunk within the multimedia file;

determine that the first data chunk contains multiple encoded frames of video;

decode the first encoded frame of video at the start of a time interval to produce a first decoded frame of video that is not displayed during the time interval;

buffer the first decoded frame of video in memory;

decode the second encoded frame of video during the time interval using the first decoded frame of video to produce a second decoded frame of video;

display the second decoded frame of video during the time interval;

locate the second data chunk within the multimedia file;

decode the third encoded frame of video at the end of the time interval using the first decoded frame of video to produce a third decoded frame of video, wherein the third decoded frame of video is the same as the first decoded frame of video; and

display the third decoded frame of video after the display of the second decoded frame of video.

12. The system of claim 11 , wherein the third encoded frame of video is a non-coded frame.

13. The system of claim 12 , wherein the non-coded frame of video has identical timing information as the first decoded frame of video.

14. The system of claim 11 , wherein the plurality of encoded frames of video in the video track are arranged in a decode sequence that differs in order from a sequence in which the decoded frames of video from the plurality of encoded frames of video are displayed.

15. The system of claim 11 , wherein the first encoded frame of video comprises information indicating that the first decoded frame of video should be buffered instead of displayed.

16. The system of claim 11 , wherein the second encoded frame of video references a first reference frame of video displayed prior to the decoding of the second encoded frame of video and a second reference frame of video that is not displayed prior to the decoding of the second encoded frame of video.

17. The system of claim 16 , wherein both the first reference frame of video and the second reference frame of video are decoded prior to the decoding of the second encoded frame of video.

18. The system of claim 17 , wherein:

the decoding application is capable of causing the set of processors to buffer the first decoded frame of video in memory; and

the second reference frame of video is the first decoded frame of video.

19. The system of claim 11 , wherein the first encoded frame of video is a P frame and the second encoded frame of video is a B frame.

20. The system of claim 11 , wherein:

the at least a portion of the multimedia file comprises digital rights management (DRM) information concerning the first data chunk, where the DRM information comprises:

an offset value that indicates a start of a block of encrypted bytes within a referenced frame of video; and

a number value that indicates a number of encrypted bytes in the block of encrypted bytes; and

the video player application is further capable of causing the set of one or more processors to decrypt the encrypted bytes in the block of bytes indicated by the offset value and the number value prior to decoding the referenced frame of video;

wherein the referenced frame of video is selected from a group consisting of the first encoded frame of video and the second encoded frame of video.

21. A system for decoding multimedia files, the system comprising:

a set of one or more processors; and

a non-volatile memory containing a video player application capable of causing the set of one or more processors to:

receive at least a portion of a multimedia file comprising a video track, where:

the video track comprises a plurality of encoded frames of video;

three encoded frames of video in the plurality of encoded frames of video are encoded as a first encoded frame of video that is not displayed, a second encoded frame of video that is displayed and dependent on at least the first encoded frame of video, and a third encoded frame of video that is displayed and dependent on at least the first encoded frame of video;

the video track comprises a first data chunk and a second data chunk; and

the first data chunk comprises:

the first encoded frame of video; and

the second encoded frame of video; and

the second data chunk comprises the third encoded frame of video;

locate the first data chunk within the multimedia file;

determine that the first data chunk contains multiple encoded frames of video;

decode the first encoded frame of video to produce a first decoded frame of video that is not displayed;

buffer the first decoded frame of video in memory;

decode the second encoded frame of video using the first decoded frame of video to produce a second decoded frame of video;

display the second decoded frame of video;

locate the second data chunk within the multimedia file;

decode the third encoded frame of video using the first decoded frame of video to produce a third decoded frame of video, wherein the third encoded frame of video is a non-coded frame and the third decoded frame of video is the same as the first decoded frame of video; and

display the third decoded frame of video after the display of the second decoded frame of video.

22. The system of claim 21 , wherein the plurality of encoded frames of video in the video track are arranged in a decode sequence that differs in order from a sequence in which the decoded frames of video from the plurality of encoded frames of video are displayed.

23. The system of claim 21 , wherein the first encoded frame of video comprises information indicating that the first decoded frame of video should be buffered instead of displayed.

24. The system of claim 21 , wherein the second encoded frame of video references a first reference frame of video displayed prior to the decoding of the second encoded frame of video and a second reference frame of video that is not displayed prior to the decoding of the second encoded frame of video.

25. The system of claim 24 , wherein both the first reference frame of video and the second reference frame of video are decoded prior to the decoding of the second encoded frame of video.

26. The system of claim 25 , wherein:

the decoding application is capable of causing the set of processors to buffer the first decoded frame of video in memory; and

the second reference frame of video is the first decoded frame of video.

27. The system of claim 21 , wherein the first encoded frame of video is a P frame and the second encoded frame of video is a B frame.

28. The system of claim 21 , wherein the third encoded frame of video is a non-coded P frame.

29. The system of claim 21 , wherein the non-coded frame of video has identical timing information as the first decoded frame of video.

30. The system of claim 21 , wherein:

the at least a portion of the multimedia file comprises digital rights management (DRM) information concerning the first data chunk, where the DRM information comprises:

an offset value that indicates a start of a block of encrypted bytes within a referenced frame of video; and

a number value that indicates a number of encrypted bytes in the block of encrypted bytes; and

the video player application is further capable of causing the set of one or more processors to decrypt the encrypted bytes in the block of bytes indicated by the offset value and the number value prior to decoding the referenced frame of video;

wherein the referenced frame of video is selected from a group consisting of the first encoded frame of video and the second encoded frame of video.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2021
From: VAN ZOEST, ALEXANDER; BRANESS, JASON; DURHAM, CHRISTOPHER; SAYRE, TIMOTHY; COTE, BENJAMIN; THOMPSON, DARRIUS NGUYEN; ROTA, JEROME; BOURKE, ADRIAN; MAYO, ALASTAIR; GRAB, ERIC WILLIAM; DONALDSON, JERRY; HITCHCOCK, HEATHER; CHAVARRIA, DAMIEN; FLOYD, MICHAEL JOHN; BUTT, AHSAN; FUDGE, BRIAN; ROBINSON, AARON
To: DIVX, INC.
Reel/Frame 056191/0869 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2021
From: LI, ADAM H.
To: DIVX, INC.
Reel/Frame 056191/0885 →
MERGER AND CHANGE OF NAME Recorded May 10, 2021
From: DIVX, INC.; SIRACUSA MERGER LLC
To: DIVX, LLC
Reel/Frame 056191/0892 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2021
From: DIVX, LLC
To: SONIC IP, INC.
Reel/Frame 056191/0904 →
CHANGE OF NAME Recorded May 10, 2021
From: DIVX CF HOLDINGS LLC
To: DIVX, LLC
Reel/Frame 056191/0915 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 10, 2021
From: SONIC IP, INC.
To: DIVX CF HOLDINGS LLC
Reel/Frame 056191/0928 →
Priority Claims (1)
WO PCT/US2004/041667 · Dec 8, 2004 · international
Continuity (7)
Continuation 16882328 · May 22, 2020
Continuation 16373513 · Apr 2, 2019
Continuation 15144776 · May 2, 2016
Continuation 14281791 · May 19, 2014
Continuation 11016184 · Dec 17, 2004
Continuation In Part 10731809 · Dec 8, 2003
Related Publication 20210258514A1 · Aug 19, 2021