IP Library Granted Patent US 12,079,511
Granted Patent B2
US 12,079,511 · App. 17/182,033 · Granted Sep 3, 2024

Devices and methods for optimized fetching of multilingual content in media streaming

Inventors: Rakesh Balakrishnan (Bangalore, IN); Govind Mangal (Bangalore, IN); Eldhose Peter (Bangalore, IN)
Assignee: Sandisk Technologies, Inc.
G06F3/0659G06F3/0604G06F3/0679G06F12/1009G10L19/167H04L65/70G06F2212/657
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 12,079,511
App. No.
17/182,033
Granted
Sep 3, 2024
Kind
B2
Abstract

Systems and methods are disclosed for providing multilingual media files. In certain embodiments, a data storage device includes a controller configured to: receive a command to write data for a media file to a non-volatile memory, wherein the media file includes one or more frames each including a video frame and a plurality of audio frames associated with a plurality of languages; decode using a decoder a first frame of the media file to determine a logical block address (LBA) for a video frame of the first frame and an LBA for each of a plurality of audio frames of the first frame; write the first frame to the non-volatile memory; and update a logical-to-physical (L2P) table to add information associated with the LBA for the video frame of the first frame and the LBA for each of the plurality of audio frames of the first frame.

Claims (58)

1. An external solid state data storage device comprising:

a non-volatile memory including NAND memory; and

one or more processors, individually or in combination, configured to:

receive a command from a host over a network to write data for a media file to the NAND memory, wherein the media file includes one or more frames, and each frame of the one or more frames includes a video frame and a plurality of audio frames associated with a plurality of languages;

decode the data for the media file to extract a first frame of the media file and determine a starting logical block address (LBA) for a video frame of the first frame and a starting LBA for each audio frame of a plurality of audio frames of the first frame;

write the first frame to the NAND memory; and

update a logical-to-physical (L2P) table in the external solid state data storage device, wherein the L2P table is configured to map LBAs and corresponding physical addresses in the NAND memory, to add the starting LBA and one or more corresponding physical addresses in the NAND memory for the video frame of the first frame and to add the starting LBA and one or more corresponding physical addresses in the NAND memory for each audio frame of the plurality of audio frames of the first frame, wherein the L2P table is further configured to enable the one or more processors, individually or in combination, upon request from the host for playback of the media file in a selected language, to access only the video frame of the first frame and an audio frame of the first frame in the selected language, out of the plurality of audio frames of the first frame, for loading into a buffer for transmission to the host, wherein the L2P table is further configured to enable the one or more processors, individually or in combination, to obtain data at frame level to extract individual components within a particular frame of the media file based on starting LBAs and corresponding physical addresses in the NAND memory for the individual components such that only an individual component within the frame can be obtained from the NAND memory and loaded into the buffer for transmission without obtaining data for the entire frame from the NAND memory, wherein the individual components of the frame include a video frame and an audio frame in the selected language, and wherein the one or more processors, individually or in combination, are configured to logically store the media file as a single file.

2. The external solid state data storage device of claim 1 , wherein a frame of the media file is included in a container.

3. The external solid state data storage device of claim 2 , wherein the container includes MPEG-4 Part 14 (MP4).

4. The external solid state data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to decode a structure of individual components within a frame of the media file.

5. The external solid state data storage device of claim 4 , wherein:

the one or more processors include a flash translation layer (FTL) configured to translate LBAs to physical addresses; and

the FTL is configured to receive information relating to a decoded structure of individual components within the first frame of the media file and update the L2P table with the starting LBA for the video frame of the first frame and the starting LBA for each of the plurality of audio frames of the first frame.

6. The external solid state data storage device of claim 1 , wherein the L2P table is configured to include the starting LBA and a length of the video frame of the first frame, and the starting LBA and a length of each of the plurality of audio frames of the first frame.

7. The external solid state data storage device of claim 1 , wherein the L2P table is configured to include an LBA range for the video frame of the first frame and an LBA range for each of the plurality of audio frames of the first frame.

8. The external solid state data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:

receive a command from a second host over the network to write data for a second media file to the NAND memory, wherein the second media file includes one or more frames, and each frame of the one or more frames includes a video frame and a plurality of audio frames associated with a plurality of languages;

determine a playback language associated with a user associated with the second media file;

decode the data for the second media file to extract a second frame of the second media file and determine a starting LBA for a video frame of the second frame and a starting LBA for an audio frame of the second frame in the playback language out of a plurality of audio frames of the second frame;

write the video frame of the second frame and only the audio frame of the second frame in the playback language to the NAND memory without writing other audio frames of the second frame not in the playback language; and

update the L2P table to add the starting LBA for the video frame of the second frame and the audio frame of the second frame in the playback language without adding starting LBAs for the other audio frames of the second frame not in the playback language.

9. An external solid state data storage device comprising:

a non-volatile memory including NAND memory; and

one or more processors, individually or in combination, configured to:

receive a command from a host over a network to read data for a media file from the NAND memory for playback, wherein the media file includes one or more frames, and each frame of the one or more frames includes a video frame and a plurality of audio frames associated with a plurality of languages;

determine a selected language of the plurality of languages for playback of the media file;

access a logical-to-physical (L2P) table in the external solid state data storage device that is configured to map logical block addresses (LBAs) and corresponding physical addresses in the NAND memory, wherein the L2P table is configured to include, for each frame of the media file, a starting LBA and one or more corresponding physical addresses in the NAND memory for a video frame of the frame and a starting LBA and one or more corresponding physical addresses in the NAND memory for each audio frame of a plurality of audio frames of the frame, and the one or more processors, individually or in combination, are configured to decode and provide the starting LBAs for the video frame and each audio frame, wherein the L2P table is further configured to enable the one or more processors, individually or in combination, to access, for a first frame of the media file, only the video frame of the first frame and an audio frame of the first frame in the selected language, out of the plurality of audio frames of the first frame, for loading into a buffer for transmission to the host, wherein the L2P table is further configured to enable the one or more processors, individually or in combination, to obtain data at frame level to extract individual components within a particular frame of the media file based on starting LBAs and corresponding physical addresses in the NAND memory for the individual components such that only an individual component within the frame can be obtained from the NAND memory and loaded into the buffer for transmission without obtaining data for the entire frame from the NAND memory, wherein the individual components of the frame include a video frame and an audio frame in the selected language, and wherein the one or more processors, individually or in combination, are configured to logically store the media file as a single file;

determine a starting LBA and one or more corresponding physical addresses in the NAND memory for the video frame of the first frame of the media file and determine a starting LBA and one or more corresponding physical addresses in the NAND memory for the audio frame of the first frame in the selected language based on the L2P table;

load the video frame of the first frame and the audio frame of the first frame in the selected language into the buffer; and

transmit the video frame of the first frame and the audio frame of the first frame in the selected language to the host.

10. The external solid state data storage device of claim 9 , wherein a frame of the media file is included in a container.

11. The external solid state data storage device of claim 10 , wherein the container includes MPEG-4 Part 14 (MP4).

12. The external solid state data storage device of claim 9 , wherein the one or more processors, individually or in combination, are further configured to decode a structure of individual components within a frame of the media file.

13. The external solid state data storage device of claim 9 , wherein the L2P table is configured to include LBA information decoded from a frame of the media file using the one or more processors.

14. The external solid state data storage device of claim 9 , wherein the L2P table is configured to include the starting LBA and a length of the video frame of the first frame, and the starting LBA and a length of each of the plurality of audio frames of the first frame.

15. The external solid state data storage device of claim 9 , wherein the L2P table is configured to include an LBA range for the video frame of the first frame and an LBA range for each of the plurality of audio frames of the first frame.

16. The external solid state data storage device of claim 9 , wherein the one or more processors, individually or in combination, are further configured to:

receive a command from a second host over the network to read data for a second media file from the NAND memory for playback, wherein the second media file includes one or more frames, and each frame of the one or more frames is associated with a video frame and a plurality of audio frames associated with a plurality of languages;

determine a playback language associated with a user associated with the second media file, wherein, for each frame of the second media file, the video frame and only an audio frame in the playback language are configured to be stored in the NAND memory;

access the L2P table to determine, for a second frame of the second media file, a starting LBA and one or more corresponding physical addresses for a video frame of the second frame and an audio frame of the second frame in the playback language, wherein the L2P table is configured to include, for each frame of the second media file, a starting LBA and one or more corresponding physical addresses in the NAND memory for a video frame of the frame and a starting LBA and one or more corresponding physical addresses in the NAND memory for an audio frame of the frame in the playback language without including starting LBAs for other audio frames of the frame not in the playback language, and wherein the one or more processors, individually or in combination, are configured to decode and provide the starting LBAs for the video frame of the frame and the audio frame of the frame in the playback language;

load the video frame of the second frame and the audio frame of the second frame in the playback language into the buffer; and

transmit the video frame of the second frame and the audio frame of the second frame in the playback language to the second host.

17. An external solid state data storage system comprising:

a non-volatile memory including NAND memory; and

a controller means configured to:

decode media files using a decoder in the external solid state data storage system;

receive a command from a host over a network to write data for a media file to the NAND memory, wherein the media file includes one or more frames, and each frame of the one or more frames includes a video frame and a plurality of audio frames associated with a plurality of languages;

decode, using the decoder in the external solid state data storage system, the data for the media file to extract a first frame of the media file and determine a starting logical block address (LBA) for a video frame of the first frame and a starting LBA for each audio frame of a plurality of audio frames of the first frame;

write the first frame to the NAND memory; and

update a logical-to-physical (L2P) table in the external solid state data storage system, wherein the L2P table is configured to map LBAs and corresponding physical addresses in the NAND memory, to add the starting LBA and one or more corresponding physical addresses in the NAND memory for the video frame of the first frame and to add the starting LBA and one or more corresponding physical addresses in the NAND memory for each audio frame of the plurality of audio frames of the first frame, wherein the controller means is further configured to, upon request from the host for playback of the media file in a selected language, access only the video frame of the first frame and an audio frame of the first frame in the selected language, out of the plurality of audio frames of the first frame, based on the L2P table for loading into a buffer for transmission to the host, wherein the controller means is further configured to obtain data at frame level based on the L2P table to extract individual components within a particular frame of the media file based on starting LBAs and corresponding physical addresses in the NAND memory for the individual components such that only an individual component within the frame can be obtained from the NAND memory and loaded into the buffer for transmission without obtaining data for the entire frame from the NAND memory, wherein the individual components of the frame include a video frame and an audio frame in the selected language, and wherein the controller means is further configured to logically store the media file as a single file.

18. The external solid state data storage system of claim 17 , wherein the decoder is configured to decode a structure of individual components within a frame of the media file.

19. The external solid state data storage system of claim 17 , wherein the L2P table is configured to include the starting LBA and a length of the video frame of the first frame, and the starting LBA and a length of each of the plurality of audio frames of the first frame.

20. The external solid state data storage system of claim 17 , wherein the controller means is further configured to:

receive a command from a second host over the network to write data for a second media file to the NAND memory, wherein the second media file includes one or more frames, and each frame of the one or more frames includes a video frame and a plurality of audio frames associated with a plurality of languages;

determine a playback language associated with a user associated with the second media file;

decode the data for the second media file to extract a second frame of the second media file and determine a starting LBA for a video frame of the second frame and a starting LBA for an audio frame of the second frame in the playback language out of a plurality of audio frames of the second frame;

write the video frame of the second frame and only the audio frame of the second frame in the playback language to the NAND memory without writing other audio frames of the second frame not in the playback language; and

update the L2P table to add the starting LBA for the video frame of the second frame and the audio frame of the second frame in the playback language without adding starting LBAs for the other audio frames of the second frame not in the playback language.

Assignments (10)
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 →
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 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 22, 2021
From: BALAKRISHNAN, RAKESH; MANGAL, GOVIND; PETER, ELDHOSE
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055360/0988 →