Data encoding on single-level and variable multi-level cell storage

US2016253238A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2016253238-A1
Application numberUS-201514633874-A
CountryUS
Kind codeA1
Filing dateFeb 27, 2015
Priority dateFeb 27, 2015
Publication dateSep 1, 2016
Grant date

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A method of encoding data on single level or variable multi-level cell storage includes receiving a block of encoded data from an approximation-aware application and at least an importance attribute associated with the block of encoded data; and assigning the block of encoded data to a memory address or a particular region of a memory having at least three precision levels, based at least according to the importance attribute. The importance attribute indicates a relative sensitivity of bits of the block to errors in an output quality from decoding the encoded data. An approximation-aware application can be an image encoding application having a modified entropy encoding step that enables identification and splitting of bits into groupings according to sensitivity to errors.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method of encoding data on single level or variable multi-level cell storage, comprising: receiving a block of encoded data from an application and at least an importance attribute associated with the block of encoded data, the importance attribute indicating a relative sensitivity of bits of the block to errors in an output quality from decoding the encoded data; and assigning the block of encoded data to a memory address or a particular region of a memory based at least according to the importance attribute, wherein the memory has at least two precision levels. 2 . The method of claim 1 , wherein assigning the block of encoded data to the memory address or a particular region of the memory based at least according to the importance attribute comprises: in response to the importance attribute indicating a relative low sensitivity to errors, assigning the block to a low precision level region of the memory; in response to the importance attribute indicating a relative moderate sensitivity to errors, assigning the block to a moderate precision level region of the memory; and in response to the importance attribute indicating a relative high sensitivity to errors, assigning the block to a high precision level region of the memory. 3 . The method of claim 1 , wherein the at least two precision levels comprise a low precision level, a moderate precision level, and a high precision level, wherein the low precision level stores more bits per cell than the moderate precision level and the high precision level, and the high precision level has more error correction overhead than the moderate precision level. 4 . The method of claim 1 , further comprising: receiving an indication of application type of the application; and assigning threshold levels to perform a biasing of value ranges in a cell for at least one of the at least two precision levels according to the application type. 5 . The method of claim 1 , further comprising: assigning binary values to ranges in a cell for at least one of the at least two precision levels based on frequency of occurrence of bit patterns for the application, wherein assigning the block of encoded data is further based according to the bit pattern for the encoded data from the application. 6 . The method of claim 1 , wherein the memory comprises a single level cell memory having at least two types of available error correction overhead. 7 . The method of claim 1 , wherein the memory comprises a multi-level cell memory having at least two regions of varying density. 8 . The method of claim 1 , wherein the memory comprises a multi-level cell memory having at least two types of available error correction overhead. 9 . The method of claim 1 , wherein the application comprises an approximation-aware image encoding algorithm. 10 . One or more computer readable storage media having instructions for an approximation-aware image encoding algorithm stored thereon, that when executed by a processor, direct the processor to: identify at least two levels of output quality importance for output data bits of the approximation-aware encoding algorithm; and partition the output data bits according to their identified output quality importance level. 11 . The media of claim 10 , wherein the instructions that direct the processor to identify at least two levels of output quality importance, direct the processor to: convert pixels of an image from space domain to frequency domain; and assign coefficients that encode low frequency components to an importance attribute indicating high sensitivity to errors and assign coefficients that encode high frequency components to an importance attribute indicating lower sensitivity to errors. 12 . The media of claim 11 , wherein the instructions that direct the processor to assign coefficients that encode low frequency components to an importance attribute indicating high sensitivity to errors and assign coefficients that encode high frequency components to an importance attribute indicating lower sensitivity to errors, comprise instructions that direct the processor to: gather frequency coefficients of similar frequency into a vector so that the frequency coefficients falling within a relatively low frequency coefficient range are clustered in beginning of the vector and the frequency coefficients falling within a relatively high frequency coefficient range are clustered towards the end of the vector with the frequency coefficients falling within a relatively intermediate frequency coefficient range being clustered in between; divide the vector into macroblocks; and perform entropy encoding of the macroblocks to generate encoded macroblocks comprising control bits, run-length bits, and appended refinement bits. 13 . The media of claim 12 , wherein the control bits and the run-length bits of a header and the first macroblock are assigned to the importance attribute indicating the higher sensitivity to errors; the control bits and the run-length bits of the macroblocks other than the first macroblock are assigned to the importance attribute indicating an intermediate sensitivity to errors; and wherein the appended refinement bits are assigned to the importance attribute indicating the lower sensitivity to errors. 14 . The media of claim 11 , further comprising instructions stored thereon that, when executed by the processor, direct the processor to: indicate frequency of particular bit patterns for the approximation-aware algorithm. 15 . A system comprising: a processing system; one or more computer readable storage media, the one or more computer readable storage media comprising at least one approximate storage; an operating or file system stored on at least one of the one or more computer readable storage media that when executed by the processing system, directs the processing system to: assign a block of encoded data to a memory address or a particular region of the at least one approximate storage based at least according to an importance attribute indicating an error rate tolerance of the block of encoded data. 16 . The system of claim 15 , wherein the operating or file system further directs the processing system to: specify a memory configuration for the approximate storage. 17 . The system of claim 16 , wherein instructions to specify a memory configuration for the approximate storage, direct the processing system to: provide threshold levels to perform a biasing of value ranges for a cell in the particular region according to an application type of an application from which the block of encoded data is received. 18 . The system of claim 16 , wherein instructions to specify a memory configuration for the approximate storage, direct the processing system to: provide an indication of a level of error correction for a cell in the particular region based on the importance attribute. 19 . The system of claim 15 , wherein instructions to assign the block of encoded data to the memory address or the particular region of the at least one approximate storage direct the processing system to write a flag indicating a level of precision associated with the block of encoded data. 20 . The system of claim 15 , wherein the operating or file system further directs the processing system to: provide an application programming interface for an approximation-aware application to indicate the importance attribute of data to be stored.

Assignees

Inventors

Classifications

  • G11C7/1006Primary

    Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor · CPC title

  • using error correcting codes [ECC] or parity check · CPC title

  • H04N19/60Primary

    using transform coding · CPC title

  • involving data partitioning, i.e. separation of data into packets or partitions according to importance · CPC title

  • characterised by memory arrangements (H04N19/433 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US2016253238A1 cover?
A method of encoding data on single level or variable multi-level cell storage includes receiving a block of encoded data from an approximation-aware application and at least an importance attribute associated with the block of encoded data; and assigning the block of encoded data to a memory address or a particular region of a memory having at least three precision levels, based at least accor…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G11C7/1006. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Sep 01 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).