IP Library Granted Patent US 11,750,893
Granted Patent B2
US 11,750,893 · App. 17/844,491 · Granted Sep 5, 2023

Pre-fetch of data using seek intervals

Inventors: Eldhose Peter (Bengaluru, IN); Rakesh Balakrishnan (Bengaluru, IN); Ruchir Sinha (Lucknow, IN); Govind Kumar Mangal (Dholpur, IN)
Assignee: Western Digital Technologies, Inc.
H04N21/6587H04N21/23406H04N21/8547
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,750,893
App. No.
17/844,491
Granted
Sep 5, 2023
Kind
B2
Abstract

A data storage device comprises a non-volatile memory, a buffer, and a controller. The controller is configured to decode a media file to extract timestamp information related to a set of frames of the media file and receive, from a host, a seek command associated with playback of the media file. The seek command includes a seek interval. The controller is further configured to remove at least a portion of the set of frames based at least in part on the seek interval and the extracted timestamp information and transmit a subset of the set of frames, not including the removed at least a portion of the set of frames, to the host.

Claims (44)

1. A data storage device comprising:

a non-volatile memory;

a buffer;

a translation data structure; and

a controller configured to:

decode a media file to extract timestamp information related to a set of frames of the media file;

store the timestamp information in the translation data structure;

receive, from a client computing device, a seek command associated with playback of the media file, the seek command including a seek interval;

receive, from the client computing device, a current playback position of the media file;

retrieve data blocks of the media file based at least in part on the seek interval, the current playback position, and the stored timestamp information;

identify frames from the set of frames of the media file in the retrieved data blocks, the identified frames determined to be responsive to the seek command based at least in part on the seek interval and the current playback position; and

transmit the identified frames, while removing at least a portion of the set of frames of the media file, to the client computing device.

2. The data storage device of claim 1 , wherein the controller is further configured to receive, from the client computing device, a bit rate for playback of the media file.

3. The data storage device of claim 2 , wherein the controller is further configured to identify the frames based at least in part on the bit rate for playback of the media file.

4. The data storage device of claim 1 , wherein the controller is further configured to receive, from the client computing device, an average frame length of the media file.

5. The data storage device of claim 4 , wherein the controller is further configured to identify the frames based at least in part on the average frame length of the media file.

6. The data storage device of claim 1 , wherein the controller is further configured to receive, from the client computing device, a frame length list of the media file.

7. The data storage device of claim 6 , wherein the controller is further configured to identify the frames based at least in part on the frame length list of the media file.

8. The data storage device of claim 1 , wherein the seek command includes an indication of a length of a seek operation.

9. The data storage device of claim 8 , wherein the controller is further configured to identify the frames based at least in part on the indication of the length of the seek operation.

10. A method for processing media file requests received by a data storage device, the method comprising:

decoding a media file to extract timestamp information related to a set of frames of the media file;

storing the timestamp information in a translation data structure of the data storage device;

receiving, from a client computing device, a seek command associated with playback of the media file, the seek command including a seek interval;

receiving, from the client computing device, a current playback position of the media file;

retrieving data blocks of the media file based at least in part on the seek interval, the current playback position, and the stored timestamp information;

identifying frames from the set of frames of the media file in the retrieved data blocks, the identified frames determined to be responsive to the seek command based at least in part on the seek interval and the current playback position; and

transmitting the identified frames, while removing at least a portion of the set of frames, to the client computing device.

11. The method of claim 10 , further comprising receiving, from the client computing device, a bit rate for playback of the media file, and wherein identifying the frames is further based at least in part on the bit rate for playback of the media file.

12. The method of claim 10 , further comprising receiving, from the client computing device, an average frame length of the media file, and wherein identifying the frames is further based at least in part on the average frame length of the media file.

13. The method of claim 10 , further comprising receiving, from the client computing device, a frame length list of the media file, and wherein identifying the frames is further based at least in part on the frame length list of the media file.

14. The method of claim 10 , wherein the seek command includes an indication of a length of a seek operation, and wherein identifying the frames is further based at least in part on the indication of the length of the seek operation.

15. A data storage device comprising:

means for decoding a media file to extract timestamp information related to a set of frames of the media file;

means for storing the timestamp information in a translation data structure of the data storage device;

means for receiving, from a client computing device, a seek command associated with playback of the media file, the seek command including a seek interval;

means for receiving, from the client computing device, a current playback position of the media file;

means for retrieving data blocks of the media file based at least in part on the seek interval, the current playback position, and the stored timestamp information;

means for identifying frames from the set of frames of the media file in the retrieved data blocks, the identified frames determined to be responsive to the seek command based at least in part on the seek interval and the current playback position; and

means for transmitting the identified frames, while removing at least a portion of the set of frames, to the client computing device.

16. The data storage device of claim 15 , further comprising means for receiving, from the client computing device, a bit rate for playback of the media file, and wherein removing the at least a portion of the set of frames is based at least in part on the bit rate for playback of the media file.

17. The data storage device of claim 15 , further comprising means for receiving, from the client computing device, an average frame length of the media file, and wherein removing the at least a portion of the set of frames is based at least in part on the average frame length of the media file.

18. The data storage device of claim 15 , further comprising means for receiving, from the client computing device, a frame length list of the media file, and wherein removing at least a portion of the set of frames is based at least in part on the frame length list of the media file.

19. The data storage device of claim 15 , wherein the seek command includes an indication of a length of a seek operation, and wherein removing the at least a portion of the set of frames is based at least in part on the indication of the length of the seek operation.

Assignments (8)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2023
From: PETER, ELDHOSE; BALAKRISHNAN, RAKESH; SINHA, RUCHIR; MANGAL, GOVIND KUMAR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 065884/0401 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →