IP Library Granted Patent US 8,855,466
Granted Patent B2
US 8,855,466 · App. 13/461,567 · Granted Oct 7, 2014

Separate video file for I-frame and non-I-frame data to improve disk performance in trick play

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 8,855,466
App. No.
13/461,567
Granted
Oct 7, 2014
Kind
B2
Abstract

A device has an input circuit to receive a stream of video data, which includes intra-frames (I-frames) and inter-frames. A video frame parser separates the I-frames and inter-frames from the stream of video data. A memory device has a file system thereon, and a processor is configured to process the video data. The processor stores the I-frames in an I-frame file in a contiguous memory region of the memory device and stores the inter-frames in an inter-frame file of the memory device. The processor also stores an index file, which includes information to coordinate a pre-parsed position of each I-frame with at least one adjacent inter-frame.

Claims (82)

1. A method to play a video data stream, comprising:

parsing the video data stream to extract constituent intra-frames (I-frames) and inter-frames;

storing a sequence of I-frames in an I-frame file, each I-frame of the sequence including information to generate a corresponding presentable video frame;

storing a set of inter-frames in an inter-frame file, each inter-frame of the set including a reference to at least one I-frame and information to generate a different presentable frame;

storing a set of index values in an index file, the index values configured to identify relationships between I-frames of the I-frame file and inter-frames of the inter-frame file;

receiving a user command to play a portion of the video data stream in reverse;

retrieving I-frame index values from the index file;

applying respective I-frame index values to retrieve corresponding I-frames from the I-frame file;

retrieving inter-frame index values from the index file;

using respective inter-frame index values to retrieve corresponding inter-frames from the inter-frame file;

decoding the corresponding inter-frames; and

forming a presentable video frame from each of the decoded corresponding inter-frames and at least one associated I-frame.

2. The method of claim 1 wherein the set of inter-frames includes at least one bi-directionally predictive frame (B-frame) and at least one predictive frame (P-frame).

3. The method of claim 1 wherein the video data stream is encoded according to an ITU-T H.264 or ISO/IEC MPEG-4 video protocol.

4. The method of claim 1 wherein the respective storing acts include writing data to a solid-state disk drive.

5. The method of claim 1 wherein storing the sequence of I-frames includes writing the sequence of I-frames to a contiguous area of memory.

6. The method of claim 1 wherein receiving a user command includes receiving a user configurable reverse playback frame rate.

7. The method of claim 1 , comprising:

delaying a determined amount of time between playback of at least two presentable video frames, the determined amount of time based on a user selectable reverse playback speed; and

outputting each presentable video frame to a display device.

8. The method of claim 1 wherein the user command directs the portion of the video data stream to be played in reverse at a real-time rate.

9. The method of claim 1 , comprising:

parsing a second video data stream into constituent I-frames and inter-frames;

storing a second sequence of I-frames in a second I-frame file, each I-frame of the second sequence including information to generate a corresponding presentable video frame;

storing a second set of inter-frames in a second inter-frame file, each inter-frame of the second set including a reference to at least one I-frame of the second sequence of I-frames;

storing a second set of index values in a second index file, the index values configured to identify relationships between I-frames of the second I-frame file and inter-frames of the second inter-frame file;

receiving a second user command to play a portion of the second video data stream in reverse;

retrieving I-frame index values from the index file; and

using I-frame respective index values to retrieve corresponding I-frames from the I-frame file.

10. The method of claim 1 , wherein storing the set of index values includes:

storing a start offset of each I-frame of the sequence relative to the position in the video data stream of each respective I-frame;

storing the size in bytes of each I-frame of the sequence; and

storing the position of each I-frame of the sequence relative to neighboring constituent frames of the video data stream.

11. The method of claim 1 , comprising:

reconstituting the video data stream using information from the index file to reorder frames of the I-frame file and inter-frame file.

12. A device, comprising:

an input circuit to receive a stream of video data, the stream of video data including a plurality of intra-frames (I-frames) and a plurality of inter-frames;

a video frame parser to separate I-frames and inter-frames from the stream of video data;

a memory device having a file system thereon;

a processing unit configured to:

store the plurality of I-frames in an I-frame file in a contiguous memory region of the memory device;

store the plurality of inter-frames in an inter-frame file of the memory device;

store an index file, the index file including information to coordinate a pre-parsed position of each I-frame of the plurality of I-frames with at least one adjacent inter-frame;

receive a user command to play a portion of the video data stream in reverse;

retrieve I-frame index values from the index file;

apply respective I-frame index values to retrieve corresponding I-frames from the I-frame file;

retrieve inter-frame index values from the index file;

use respective inter-frame index values to retrieve corresponding inter-frames from the inter-frame file;

decode the corresponding inter-frames; and

form a presentable video frame from each of the decoded corresponding inter-frames and at least one associated I-frame.

13. The device of claim 12 wherein the input circuit includes a front-end of a set top box.

14. The device of claim 12 wherein the plurality of inter-frames includes at least one bi-directionally predictive frame (B-frame) and at least one predictive frame (P-frame).

15. The device of claim 12 wherein the stream of video data is encoded according to a standardized video protocol.

16. The device of claim 12 wherein the disk drive is a magnetic disk drive.

17. The device of claim 12 , comprising:

a user-control input circuit to receive a user command to play a portion of the stream of video data in reverse, wherein the processing unit, based on the user command, is configured to:

retrieve a sequential set of I-frames from the contiguous memory region of the memory device; and

decode the sequential set of I-frames for presentation to a display device.

18. A non-transitory computer-readable storage medium whose stored contents configure a computing system to perform a method, the method comprising:

processing a video data stream to separate intra-frames (I-frames) from inter-frames, the video data stream having an original order to the I-frames and the inter-frames;

storing the I-frames in an I-frame file;

storing the inter-frames in an inter-frame file;

storing, in an index file, information sufficient to restore the original order of the I-frames and the inter-frames;

receiving a user command to play a portion of the video data stream in reverse;

retrieving I-frame index values from the index file;

applying respective I-frame index values to retrieve corresponding I-frames from the I-frame file;

retrieving inter-frame index values from the index file;

using respective inter-frame index values to retrieve corresponding inter-frames from the inter-frame file;

decoding the corresponding inter-frames; and

forming a presentable video frame from each of the decoded corresponding inter-frames and at least one associated I-frame.

19. The non-transitory computer-readable storage medium according to claim 18 wherein storing the I-frames in an I-frame file includes writing the I-frames in a contiguous area of memory.

20. The non-transitory computer-readable storage medium according to claim 18 whose stored contents configure the computing system to perform the method, the method further comprising:

decoding the I-frames according to an MPEG decoding algorithm; and

outputting the decoded I-frames to a presentation device.

21. The non-transitory computer-readable storage medium according to claim 20 wherein outputting the decoded I-frames includes outputting the decoded I-frames in reverse order.

22. The non-transitory computer-readable storage medium according to claim 18 whose stored contents configure the computing system to perform the method, the method further comprising:

retrieving at least some of the information from the index file;

using the at least some of the information to retrieve I-frames from the I-frame file and inter-frames from the inter-frame file;

decoding the I-frames;

decoding the inter-frames; and

outputting the decoded I-frames and inter-frames in the original order to a presentation device.

23. The non-transitory computer-readable storage medium according to claim 22 wherein outputting the decoded I-frames includes outputting the decoded I-frames in reverse order at a user-configurable rate.

Assignments (6)
SECURITY INTEREST Recorded Nov 30, 2021
From: DISH BROADCASTING CORPORATION; DISH NETWORK L.L.C.; DISH TECHNOLOGIES L.L.C.
To: U.S. BANK, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 058295/0293 →
CONVERSION Recorded Aug 7, 2018
From: ECHOSTAR TECHNOLOGIES L.L.C.
To: DISH TECHNOLOGIES L.L.C.
Reel/Frame 046737/0610 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2017
From: ECHOSTAR UK HOLDINGS LIMITED
To: ECHOSTAR TECHNOLOGIES INTERNATIONAL CORPORATION
Reel/Frame 041672/0080 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2017
From: ECHOSTAR TECHNOLOGIES INTERNATIONAL CORPORATION
To: ECHOSTAR TECHNOLOGIES L.L.C.
Reel/Frame 041674/0954 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2014
From: ELDON TECHNOLOGY LIMITED
To: ECHOSTAR UK HOLDINGS LIMITED
Reel/Frame 034650/0050 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2012
From: THORNBERRY, KEVIN
To: ELDON TECHNOLOGY LIMITED
Reel/Frame 028799/0945 →