Data storage device and method for video processing and video frame searching using a key-value
A data storage device and method are provided for video processing and video frame searching using a key-value. In one embodiment, a data storage device is provided comprising a memory and one or more processors. The one or more processors, individually or in combination, are configured to: extract metadata of at least one video frame of a plurality of video frames stored as a single value in a location in the memory that is addressed by a key instead of by a logical block address; perform a post-processing operation on one or more video frames of the plurality of video frames according to the extracted metadata; and store the plurality of video frames and a result of the post-processing operation in a location in the memory that is addressed by a logical block address instead of by a key. Other embodiments are provided.
1 . A data storage device comprising:
a memory; and
one or more processors, individually or in combination, configured to:
receive a plurality of key-value (KV) store commands from a host, wherein each KV store command comprises a key-value in which at least one video frames is represented as a single value addressed by a key instead of by a logical block address;
extract metadata for each video frame in the plurality of key-values based on object analysis in each video frame and based on a parameter in a header in each video frame;
group the key-values into a plurality of sub-groups according to the extracted metadata;
store each sub-group of the key-values in a different set of logical storage blocks in the memory;
perform post-processing on at least one video frame according to the extracted metadata;
store a post-processed version of the at least one video frame in a data-storage-device-specific space in the memory;
store the extracted metadata in a mapping data structure;
receive, from a host, a search command comprising a data value;
generate metadata for the data value received from the host;
perform a compare operation between the generated metadata for the data value received from the host with the extracted metadata stored in the mapping data structure to identify one or more video frames stored in the memory that have matching metadata;
retrieve the post-processed version of the one or more video frames from the memory; and
respond to the search command by sending, to the host, the post-processed version of the one or more video frames retrieved from the memory.
2 . The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:
store, in a location in the memory that is addressed by a logical block address, a result of an operation from at least one other key-value pair.
3 . The data storage device of claim 1 , wherein the one or more processors, individually or in combination, are further configured to:
perform data management leveraging key-value group information.
4 . The data storage device of claim 1 , wherein the parameter comprises compression type.
5 . The data storage device of claim 1 , wherein the memory comprises a three-dimensional memory.
6 . The data storage device of claim 1 , wherein the parameter comprises resolution.
7 . The data storage device of claim 1 , wherein the parameter comprises identification of an interlaced/progressive frame.
8 . The data storage device of claim 1 , wherein the parameter comprises aspect ratio.
9 . The data storage device of claim 1 , wherein the parameter comprises global position satellite (GPS) information.
10 . The data storage device of claim 1 , wherein the parameter comprises inherent frame metadata.
11 . The data storage device of claim 1 , wherein the extracted metadata is based on a host hint.
12 . The data storage device of claim 1 , wherein the memory comprises single-level cell blocks.
13 . A method comprising:
performing in a data storage device comprising a memory:
receiving a plurality of key-value (KV) store commands from a host, wherein each KV store command comprises a key-value in which at least one video frame is represented as a single value addressed by a key instead of by a logical block address;
extracting metadata for each video frame in the plurality of key-values based on object analysis in each video frame and based on a parameter in a header in each video frame;
grouping the key-values into a plurality of sub-groups according to the extracted metadata;
storing each sub-group of the key-values in a different set of logical storage blocks in the memory;
performing post-processing on at least one video frame according to the extracted metadata;
storing a post-processed version of the at least one video frame in a data-storage- device-specific space in the memory;
storing the extracted metadata in a mapping data structure;
receiving, from a host, a search command comprising a data value;
generating metadata for the data value received from the host;
performing a compare operation between the generated metadata for the data value received from the host with the extracted metadata stored in the mapping data structure to identify one or more video frames stored in the memory that have matching metadata;
retrieving the post-processed version of the one or more video frames from the memory; and
responding to the search command by sending, to the host, the post-processed version of the one or more video frames retrieved from the memory.
14 . The method of claim 13 , wherein the parameter comprises inherent frame metadata.
15 . The method of claim 13 , wherein the extracted metadata is based on a host hint.
16 . The method of claim 13 , wherein the metadata for each video frame is extracted during idle time.
17 . The method of claim 13 , wherein the memory comprises single-level cell blocks.
18 . A data storage device comprising:
a memory;
means for receiving a plurality of key-value (KV) store commands from a host, wherein each KV store command comprises a key-value in which at least one video frames is represented as a single value addressed by a key instead of by a logical block address;
means for extracting metadata for each video frame in the plurality of key-values based on object analysis in each video frame and based on a parameter in a header in each video frame;
means for grouping the key-values into a plurality of sub-groups according to the extracted metadata;
means for storing each sub-group of the key-values in a different set of logical storage blocks in the memory;
means for performing post-processing on at least one video frame according to the extracted metadata;
means for storing a post-processed version of the at least one video frame in a data-storage-device-specific space in the memory;
means for storing the extracted metadata in a mapping data structure;
means for receiving, from a host, a search command comprising a data value;
means for generating metadata for the data value received from the host;
means for performing a compare operation between the generated metadata for the data value received from the host with the extracted metadata stored in the mapping data structure to identify one or more video frames stored in the memory that have matching metadata;
means for retrieving the post-processed version of the one or more video frames from the memory; and
means for responding to the search command by sending, to the host, the post-processed version of the one or more video frames retrieved from the memory.