VLSI efficient Huffman encoding apparatus and method

    公开(公告)号:US10230393B2

    公开(公告)日:2019-03-12

    申请号:US15690962

    申请日:2017-08-30

    IPC分类号: H03M7/40 H03M7/30

    摘要: A compression algorithm based on Huffman coding is disclosed that is adapted to be readily implemented using VLSI design. A data file may be processed to replace duplicate data with a copy commands including an offset and length, such as according to the LV algorithm. A Huffman code may then be generated for parts of the file. The Huffman code may be generated according to a novel method that generates Huffman code lengths for literals in a data file without first sorting the literal statistics. The Huffman code lengths may be constrained to be no longer than a maximum length and the Huffman code may be modified to provide an acceptable overflow probability and be in canonical order. Literals, offsets, and lengths may be separately encoded. The different values for these data sets may be assigned to a limited number of bins for purpose of generating usage statistics used for generating Huffman codes.

    Data randomization for flash memory

    公开(公告)号:US09959077B2

    公开(公告)日:2018-05-01

    申请号:US14546997

    申请日:2014-11-18

    IPC分类号: G06F3/06 G06F21/00

    摘要: Data words written to an SSD device, or other device or output data stream, may be randomized using a seed based on physical addressing information, such as a page address, column address, and a cycle count for the page address. This enables the storage and de-randomization of variable length data blocks stored at random locations within a page without requiring storage of additional data, which would make recovery impossible if lost in prior approaches. The page address, column address, and block address are physical attributes of the storage location for the data word and do not need to be saved and therefore will not be lost making recovery of the seed always possible. The cycle count can be saved and, if lost, limited trials with range of cycle counts can be exercised to de-randomize the data word and decoding may be used to determine whether descrambling was successful.

    Adaptive rate compression hash processor

    公开(公告)号:US09934234B2

    公开(公告)日:2018-04-03

    申请号:US14824703

    申请日:2015-08-12

    IPC分类号: G06F7/00 G06F17/30

    摘要: An input file is processed according to hash algorithm that references sets of literals to preceding sets of literals to facilitate copy-offset command generation. Preceding instances are identified by generating a hash of the literal set and looking up a corresponding entry in a hash table. The hash table may be accessed by placing look-up requests in a FIFO buffer. When the FIFO buffer is full, generation of the hash chain is suspended until it is no longer full. When repeated literals are found, generation of the hash chain is likewise suspended. The hash chain is used to generate a command file, such as according to the LZ algorithm. Runs of consecutive literals are replaced by a run-length command. The command file may then be encoded using Huffman encoding.

    VLSI EFFICIENT HUFFMAN ENCODING APPARATUS AND METHOD

    公开(公告)号:US20170366198A1

    公开(公告)日:2017-12-21

    申请号:US15690962

    申请日:2017-08-30

    IPC分类号: H03M7/40 H03M7/30

    摘要: A compression algorithm based on Huffman coding is disclosed that is adapted to be readily implemented using VLSI design. A data file may be processed to replace duplicate data with a copy commands including an offset and length, such as according to the LV algorithm. A Huffman code may then be generated for parts of the file. The Huffman code may be generated according to a novel method that generates Huffman code lengths for literals in a data file without first sorting the literal statistics. The Huffman code lengths may be constrained to be no longer than a maximum length and the Huffman code may be modified to provide an acceptable overflow probability and be in canonical order. Literals, offsets, and lengths may be separately encoded. The different values for these data sets may be assigned to a limited number of bins for purpose of generating usage statistics used for generating Huffman codes.

    Deflate compression algorithm
    5.
    发明授权
    Deflate compression algorithm 有权
    放气压缩算法

    公开(公告)号:US09577665B2

    公开(公告)日:2017-02-21

    申请号:US15042197

    申请日:2016-02-12

    发明人: Yingquan Wu

    IPC分类号: H03M7/34 H03M7/30 H03M7/40

    摘要: A compression algorithm replaces duplicative strings with a copy pair indicating a location and length of a preceding identical string that is within a window from the duplicative string. Rather than a replacing a longest matching string within a window from a given point with a copy pair, the longest matching string may be used provide it is at least two bytes larger than the next longest matching string or is at a distance that is less than some multiple of a distance to the next longest matching string. In another aspect, the length of the window in which a matching string may be found is dependent on a length of the matching string. In yet another aspect, rather than labeling each literal and copy pair to indicate what it is, strings of non-duplicative literals are represented by a label and a length of the string.

    摘要翻译: 压缩算法用复制对替代重复的字符串,指示来自重复字符串的窗口内的前一相同字符串的位置和长度。 可以使用最长的匹配字符串来提供窗口内最长匹配的字符串,而不是使用最长匹配的字符串来提供比下一个最长匹配字符串大至少两个字节,或者距离小于 距离下一个最长匹配字符串的距离的一些倍数。 在另一方面,可以找到匹配字符串的窗口的长度取决于匹配字符串的长度。 在另一方面,不是标记每个文字和复制对以指示它是什么,不重复文字的字符串由标签和字符串的长度表示。

    Fast mapping method for layered min-sum decoding of LDPC codes,
    6.
    发明授权
    Fast mapping method for layered min-sum decoding of LDPC codes, 有权
    用于LDPC码的分层最小和解码的快速映射方法,

    公开(公告)号:US09515680B2

    公开(公告)日:2016-12-06

    申请号:US14511551

    申请日:2014-10-10

    IPC分类号: H03M13/00 H03M13/11

    摘要: A method is disclosed for performing LDPC decoding, specifically layered min-sum decoding using a Tanner graph including check nodes (CN) and variable nodes (VN). Messages passed between nodes are quantized in a non-uniform manner. Values below a threshold are uniformly quantized whereas values above the threshold are non-uniformly quantized. A corresponding inverse-quantization is also defined.

    摘要翻译: 公开了一种用于执行LDPC解码的方法,特别是使用包括校验节点(CN)和可变节点(VN)的Tanner图的分层最小和解码。 在节点之间传递的消息以不均匀的方式进行量化。 低于阈值的值被均匀地量化,而高于阈值的值被不均匀地量化。 还定义了相应的反量化。

    VLSI EFFICIENT HUFFMAN ENCODING APPARATUS AND METHOD

    公开(公告)号:US20160233881A1

    公开(公告)日:2016-08-11

    申请号:US15130054

    申请日:2016-04-15

    IPC分类号: H03M7/40 H03M7/30

    摘要: A compression algorithm based on Huffman coding is disclosed that is adapted to be readily implemented using VLSI design. A data file may be processed to replace duplicate data with a copy commands including an offset and length, such as according to the LV algorithm. A Huffman code may then be generated for parts of the file. The Huffman code may be generated according to a novel method that generates Huffman code lengths for literals in a data file without first sorting the literal statistics. The Huffman code lengths may be constrained to be no longer than a maximum length and the Huffman code may be modified to provide an acceptable overflow probability and be in canonical order. Literals, offsets, and lengths may be separately encoded. The different values for these data sets may be assigned to a limited number of bins for purpose of generating usage statistics used for generating Huffman codes.

    Deflate compression algorithm
    8.
    发明授权
    Deflate compression algorithm 有权
    放气压缩算法

    公开(公告)号:US09264068B2

    公开(公告)日:2016-02-16

    申请号:US14274364

    申请日:2014-05-09

    发明人: Yingquan Wu

    IPC分类号: H03M7/40 H03M7/30

    摘要: A compression algorithm replaces duplicative strings with a copy pair indicating a location and length of a preceding identical string that is within a window from the duplicative string. Rather than a replacing a longest matching string within a window from a given point with a copy pair, the longest matching string may be used provide it is at least two bytes larger than the next longest matching string or is at a distance that is less than some multiple of a distance to the next longest matching string. In another aspect, the length of the window in which a matching string may be found is dependent on a length of the matching string. In yet another aspect, rather than labeling each literal and copy pair to indicate what it is, strings of non-duplicative literals are represented by a label and a length of the string.

    摘要翻译: 压缩算法用复制对替代重复的字符串,指示来自重复字符串的窗口内的前一相同字符串的位置和长度。 可以使用最长的匹配字符串来提供窗口内最长匹配的字符串,而不是使用最长匹配的字符串来提供比下一个最长匹配字符串大至少两个字节,或者距离小于 距离下一个最长匹配字符串的距离的一些倍数。 在另一方面,可以找到匹配字符串的窗口的长度取决于匹配字符串的长度。 在另一方面,不是标记每个文字和复制对以指示它是什么,不重复文字的字符串由标签和字符串的长度表示。

    Scalable, parameterizable, and script-generatable buffer manager architecture

    公开(公告)号:US10915467B2

    公开(公告)日:2021-02-09

    申请号:US16411822

    申请日:2019-05-14

    IPC分类号: G06F17/50 G06F13/16 G06F13/42

    摘要: A buffer manager is generated by executing a script with respect to a buffer architecture template and a configuration file specifying parameters for the buffer such as, for example, number of memory banks, width of memory banks, depth of memory banks, and client bridge FIFO depth. The script converts the buffer architecture template into a hardware description language (HDL) description of a buffer manager having the parameters. Client bridges accumulate requests for memory banks in FIFO that is provided to a buffer manager upon the client bridge being granted arbitration. Accesses of memory banks may be performed one at a time in consecutive clock cycles in a pipelined manner. Client bridges and the buffer manager may operate in different clock domains. The clock frequency of the buffer manager may be increased or decreased according to requests from client devices.

    Data randomization for flash memory

    公开(公告)号:US10175915B2

    公开(公告)日:2019-01-08

    申请号:US15965700

    申请日:2018-04-27

    IPC分类号: G06F3/00 G06F3/06 G06F21/00

    摘要: Data words written to an SSD device, or other device or output data stream, may be randomized using a seed based on physical addressing information, such as a page address, column address, and a cycle count for the page address. This enables the storage and de-randomization of variable length data blocks stored at random locations within a page without requiring storage of additional data, which would make recovery impossible if lost in prior approaches. The page address, column address, and block address are physical attributes of the storage location for the data word and do not need to be saved and therefore will not be lost making recovery of the seed always possible. The cycle count can be saved and, if lost, limited trials with range of cycle counts can be exercised to de-randomize the data word and decoding may be used to determine whether descrambling was successful.