IP Library Granted Patent US 11,176,197
Granted Patent B2
US 11,176,197 · App. 16/159,150 · Granted Nov 16, 2021

Methods of storing media files and returning file data for media files and media file systems

Inventor: James Westland Cain (Newbury, GB)
Assignee: GRASS VALLEY LIMITED
G06F16/7867G06F16/73G11B27/105G11B27/30H04L67/06H04N9/8045H04N21/8456H04N21/85406
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,176,197
App. No.
16/159,150
Granted
Nov 16, 2021
Kind
B2
Abstract

A media file system, apparatus, computer program product and method for storing a media file in a media file system. An exemplary method includes obtaining a predetermined number of frames and determining a set of portions for storing the media file, each portion having an identifier that is indicative of a multiple of the predetermined number of frames. Further, for each portion of the set of portions, associating with the portion the segment of the media file containing the frame indicated by the identifier of the portion, and associating each of the remaining segments of the media file with a portion of the set of portions. Moreover, storing the media file in the media file system as the set of determined portions, each portion comprising its associated segments of the media file.

Claims (43)

1. A method of storing a media file in a media file system having a format that specifies that the media file includes a plurality of segments of file data, each segment comprising file data for a plurality of contiguous frames, the method comprising:

obtaining a predetermined number of frames;

determining a set of portions for storing the media file, with each portion of the set of portions being assigned a unique identifier that is a multiple of the predetermined number of frames;

for each portion of the set of portions, associating the respective segment of the media file that contains a frame that corresponds to the unique identifier of the respective portion;

associating each remaining segment of the plurality of segments of the media file with a portion of the set of portions; and

storing the media file in the media file system as the set of portions, with each portion storing the segments of the media file that are associated with the respective portion of the set of portions.

2. The method according to claim 1 , wherein each remaining segment is associated with the portion containing the segment containing the closest frames preceding the frames of the respective remaining segment.

3. The method according to claim 1 , wherein each remaining segment is associated with the portion containing the segment containing the closest frames following the frames of the respective remaining segment.

4. The method according to claim 1 , wherein the plurality of segments of the media file are GOPs.

5. The method according to claim 1 , wherein the portions are stored as objects in an object store.

6. A method of returning file data for a media file stored in a media file system, wherein the media file has been stored in accordance with the method of claim 1 , the method comprising:

receiving a request for file data for one or more frames of the media file from the media file system;

determining a portion stored in the media file system from the numbers of the requested one or more frames, using the unique identifier of the portions;

determining if a segment or segments containing file data for the requested one or more frames are contained in the determined portion, and if so, returning file data from the segment or segments; and

in the case that file data for all requested frames has not been returned, determining if a segment or segments containing file data for the requested one or more frames are contained in a portion adjacent to the determined portion, and if so, returning file data from the segment or segments.

7. The method according to claim 6 , wherein the determined portion is the portion with a closest identifier preceding the number of the requested one or more frames.

8. The method according to claim 6 , wherein the determined portion is the portion with a closest identifier following the number of the requested one or more frames.

9. The method according to claim 6 , wherein the portion adjacent to the determined portion is the portion with identifier preceding the identifier of the determined portion.

10. The method according to claim 6 , wherein the portion adjacent to the determined portion is the portion with identifier following the identifier of the determined portion.

11. The method according to claim 6 , wherein file data for each complete segment is returned.

12. A media file system for storing a media file having a format specifying that the media file include a plurality of segments of file data, each segment comprising file data for a plurality of contiguous frames, the media file system comprising:

a frame number determiner configured to obtain a predetermined number of frames;

a media file analyzer configured to determine a set of portions for storing the media file, with each portion of the set of portions being assigned a unique identifier that is a multiple of the predetermined number of frames;

a file portion divider configured to:

for each portion of the set of portions, associate the respective segment of the media file that contains a frame that corresponds to the unique identifier of the respective portion, and

associate each remaining segment of the plurality of segments of the media file with a portion of the set of portions; and

a database configured to store the media file in the media file system as the set of portions, with each portion storing the segments of the media file that are associated with the respective portion of the set of portions.

13. The media file system according to claim 12 , wherein the media file analyzer is configured to:

receive a request for file data for one or more frames of the media file;

determine a portion stored in the media file system from the numbers of the requested one or more frames, using the unique identifier of the portions; and

determine if a segment or segments containing file data for the requested one or more frames are contained in the determined portion, and if so, returning file data from the segment or segments.

14. The media file system according to claim 13 , wherein the media file analyzer is configured to, in the case that file data for all requested frames has not been returned, determine if a segment or segments containing file data for the requested one or more frames are contained in a portion adjacent to the determined portion, and if so, returning file data from the segment or segments.

15. A computer program product configured to program a computing apparatus to provide a media file system, arranged to store a media file in a media file system having a format that specifies that the media file comprises a plurality of segments of file data, each segment comprising file data for a plurality of contiguous frames, the computer program product configured to:

obtain a predetermined number of frames;

determine a set of portions for storing the media file, with each portion of the set of portions being assigned a unique identifier that is a multiple of the predetermined number of frames;

for each portion of the set of portions, associate the respective segment of the media file that contains a frame that corresponds to the unique identifier of the respective portion;

associate each remaining segment of the plurality of segments of the media file with a portion of the set of portions; and

store the media file in the media file system as the set of portions, with each portion storing the segments of the media file that are associated with the respective portion of the set of portions.

16. The computer program product of claim 15 , further configured to:

receive a request for file data for one or more frames of the media file;

determine a portion stored in the media file system from the numbers of the requested one or more frames, using the unique identifier of the portions;

determine if a segment or segments containing file data for the requested one or more frames are contained in the determined portion, and if so, returning file data from the segment or segments;

in the case that file data for all requested frames has not been returned, determine if a segment or segments containing file data for the requested one or more frames are contained in a portion adjacent to the determined portion, and if so, returning file data from the segment or segments.

Assignments (7)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Dec 12, 2025
From: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES LLC
To: MGG INVESTMENT GROUP LP
Reel/Frame 073959/0584 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Mar 21, 2024
From: MGG INVESTMENT GROUP LP
To: GRASS VALLEY USA, LLC; GRASS VALLEY CANADA; GRASS VALLEY LIMITED
Reel/Frame 066867/0336 →
SECURITY INTEREST Recorded Mar 20, 2024
From: GRASS VALLEY CANADA; GRASS VALLEY LIMITED
To: MS PRIVATE CREDIT ADMINISTRATIVE SERVICES LLC
Reel/Frame 066850/0869 →
GRANT OF SECURITY INTEREST - PATENTS Recorded Jul 2, 2020
From: GRASS VALLEY USA, LLC; GRASS VALLEY CANADA; GRASS VALLEY LIMITED
To: MGG INVESTMENT GROUP LP, AS COLLATERAL AGENT
Reel/Frame 053122/0666 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2020
From: QUANTEL LIMITED
To: SNELL ADVANCED MEDIA LIMITED
Reel/Frame 052000/0805 →
CHANGE OF NAME Recorded Mar 3, 2020
From: SNELL ADVANCED MEDIA LIMITED
To: GRASS VALLEY LIMITED
Reel/Frame 052081/0076 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2020
From: CAIN, JAMES WESTLAND
To: GRASS VALLEY LIMITED
Reel/Frame 052000/0825 →