WO2023202149A1 - 有限状态熵编码的状态选择方法、系统、存储介质及设备 - Google Patents

有限状态熵编码的状态选择方法、系统、存储介质及设备 Download PDF

Info

Publication number
WO2023202149A1
WO2023202149A1 PCT/CN2022/142929 CN2022142929W WO2023202149A1 WO 2023202149 A1 WO2023202149 A1 WO 2023202149A1 CN 2022142929 W CN2022142929 W CN 2022142929W WO 2023202149 A1 WO2023202149 A1 WO 2023202149A1
Authority
WO
WIPO (PCT)
Prior art keywords
state
symbol
code table
bit width
finite state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/CN2022/142929
Other languages
English (en)
French (fr)
Inventor
张永兴
陈静静
吴睿振
孙华锦
王凛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Wave Intelligent Technology Co Ltd
Original Assignee
Suzhou Wave Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Wave Intelligent Technology Co Ltd filed Critical Suzhou Wave Intelligent Technology Co Ltd
Publication of WO2023202149A1 publication Critical patent/WO2023202149A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/42Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code using table look-up for the coding or decoding process, e.g. using read-only memory
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Definitions

  • the present application relates to the field of data encoding and decoding technology, and in particular to a state selection method, system, non-volatile computer-readable storage medium and computer equipment for finite state entropy coding.
  • Lossless data compression reduces the amount of data to reduce storage space and improve transmission, storage and processing efficiency without losing useful information.
  • Lossless data compression is generally achieved through two methods: one is an algorithm that implements compression through a dictionary, including the LZ series algorithm, which can achieve the search function of repeated data; the other is a compression algorithm based on a statistical model.
  • Such as Huffman code Huffman coding, a common variable length code
  • arithmetic coding etc.
  • the core idea of this type of algorithm is to allocate code length according to the frequency of symbol occurrence. The greater the symbol frequency, the shorter the code length.
  • Huffman coding is simple and efficient and can generate the best codeword for a single data symbol. However, it does not always generate the most efficient codeword for a given set of symbols. Arithmetic coding can solve this pain point of Huffman coding, but the arithmetic coding algorithm is complex to implement, and the coding efficiency is very low (roughly 1/10 of Huffman coding), which cannot be used in the field of data compression. Because of this, in recent years, many scholars have been looking for a new algorithm with "compression rate close to arithmetic coding and coding efficiency close to Huffman coding".
  • FSE Finite State Entropy, Finite State Entropy
  • Finite State Entropy is an entropy coding scheme that combines the advantages of Huffman coding and arithmetic coding.
  • a new data compression algorithm Zstandard (zstd) is also launched based on FSE. It is a hybrid compression algorithm composed of LZ77 encoding, Huffman encoding and FSE, and has better compression performance.
  • FSE coding essentially uses state encoding symbols, that is, converts the encoding of symbols into the encoding of states.
  • FSE encodes a symbol sequence it needs to select the state of the next symbol based on the state of the previous symbol.
  • the basis for selection is: the state of the previous symbol must be within the coverage range (State_range) of the state of the next symbol. .
  • a symbol has a high probability of appearing, and there will be multiple states corresponding to the symbol.
  • FSE encodes the symbol it needs to select one from all its corresponding states.
  • This application provides a state selection method for finite state entropy coding, which includes the following steps:
  • the corresponding search bit width is obtained based on its normalized probability, and the index value corresponding to each state of each symbol is obtained based on the search bit width, and each symbol is generated based on each state and the corresponding index value.
  • the selected index value of the current symbol is obtained based on the state of the previous symbol and the search bit width of the current symbol, and the selected index value is searched in the truth table of the current symbol
  • the corresponding state is used as the state of the current symbol for finite state entropy coding.
  • obtaining the index value corresponding to each state of each symbol based on the search bit width includes:
  • the code table length of the finite state entropy code table is obtained based on the normalized probabilities of multiple symbols, and the code table bit width of the finite state entropy code table is obtained based on the code table length;
  • the index value corresponding to each state is obtained based on the baseline state value of the baseline position of the state area, the search bit width, and the code table bit width.
  • the step for each state of each symbol, before the step of obtaining the index value corresponding to each state based on the baseline state value of the baseline position of the state area, the search bit width, and the code table bit width, the step also includes:
  • the step for each state of each symbol, before the step of obtaining the index value corresponding to each state based on the baseline state value of the baseline position of the state area, the search bit width, and the code table bit width, the step also includes:
  • the length value of the state region of each symbol is determined.
  • the step of determining the length of the state region of each symbol based on the normalized probabilities corresponding to multiple symbols includes:
  • the length value of the state region of the corresponding symbol is set to a unique value
  • the length value of the state region of the corresponding symbol is set to two values.
  • obtaining the index value corresponding to each state based on the baseline state value of the baseline position of the state area, the search bit width, and the code table bit width includes:
  • obtaining the selected index value of the current symbol based on the state of the previous symbol and the search bit width of the current symbol includes:
  • obtaining the corresponding search bit width based on its normalized probability includes:
  • a finite state entropy code table is generated based on multiple symbols and corresponding normalized probabilities, and the finite state entropy code table contains several states of each symbol including:
  • the code table length of the finite state entropy code table is obtained based on the normalized probability of multiple symbols
  • a finite state entropy code table is generated based on several states of each symbol.
  • the step of obtaining the code table length of the finite state entropy code table based on the normalized probabilities of multiple symbols includes:
  • obtaining the normalized probabilities of multiple symbols based on the symbol sequence includes:
  • the normalized probability of each symbol is obtained based on its frequency of occurrence.
  • the step further includes:
  • the same normalized probability is identified with a different identification.
  • a symbol sequence is obtained, and the normalized probabilities of multiple symbols are obtained based on the symbol sequence, and a finite state entropy code table is generated based on the multiple symbols and corresponding normalized probabilities, and the finite state entropy code
  • the table contains several status steps for each symbol and also includes:
  • the normalized probabilities of the plurality of symbols are respectively obtained based on the symbol sequence.
  • the preset symbols include: original text segment length literal_length, repeat length match_length, and offset distance offset.
  • a symbol sequence is obtained, and the normalized probabilities of multiple symbols are obtained based on the symbol sequence, and a finite state entropy code table is generated based on the multiple symbols and corresponding normalized probabilities, and the finite state entropy code
  • the table contains several status steps for each symbol, including:
  • the states are assigned to multiple symbols in sequence.
  • the state allocation step is performed on multiple symbols in sequence, including:
  • the states are allocated to multiple symbols in reverse order of states.
  • Another aspect or aspects of the present application also provide a state selection system with finite state entropy coding, including:
  • a finite state entropy code table generation module configured to obtain a symbol sequence, obtain the normalized probabilities of multiple symbols based on the symbol sequence, and generate a finite state entropy code table based on the multiple symbols and corresponding normalized probabilities, And the finite state entropy code table contains several states of each symbol;
  • the truth table generation module is configured to obtain the corresponding search bit width based on its normalized probability for each symbol, and obtain the index value corresponding to each state of each symbol based on the search bit width, and based on each state and the corresponding index value to generate a truth table for each symbol;
  • a state selection module configured to, in response to performing finite state entropy coding based on the finite state entropy code table, obtain the selected index value of the current symbol based on the state of the previous symbol and the search bit width of the current symbol, and obtain the selected index value of the current symbol based on the true value of the current symbol The state corresponding to the selected index value is searched in the table to use it as the state of the current symbol for finite state entropy coding.
  • the truth table generation module includes:
  • the length and bit width acquisition submodule is used to obtain the code table length of the finite state entropy code table based on the normalized probability of multiple symbols, and obtain the code table bit width of the finite state entropy code table based on the code table length;
  • the index value acquisition submodule is used for each state of each symbol to obtain the index value corresponding to each state based on the baseline state value of the baseline position of the state area, the search bit width, and the code table bit width.
  • a non-volatile computer-readable storage medium stores computer-readable instructions.
  • the computer-readable instructions are processed by at least one processor. When executed, at least one processor is caused to execute the steps of any of the above methods.
  • a computer device including
  • At least one memory stores computer-readable instructions. When the computer-readable instructions are executed by at least one processor, the at least one processor executes any of the above methods.
  • Figure 1 is a schematic diagram of a state selection method for finite state entropy coding provided according to an embodiment of the present application
  • Figure 2 is a schematic diagram of a state selection system for finite state entropy coding provided according to an embodiment of the present application
  • Figure 3 is a schematic diagram of a non-volatile computer-readable storage medium that implements a state selection method for finite state entropy coding according to an embodiment of the present application;
  • FIG. 4 is a schematic diagram of the hardware structure of a computer device that performs a state selection method of finite state entropy coding according to an embodiment of the present application.
  • Figure 1 shows a schematic diagram of an embodiment of the state selection method for finite state entropy coding provided by this application. As shown in Figure 1, the embodiment of this application includes the following steps:
  • Step S10 Obtain the symbol sequence, obtain the normalized probabilities of multiple symbols based on the symbol sequence, and generate a finite state entropy code table based on the multiple symbols and the corresponding normalized probabilities, and the finite state entropy code table contains each several states of a symbol;
  • Step S20 For each symbol, obtain the corresponding search bit width based on its normalized probability, obtain the index value corresponding to each state of each symbol based on the search bit width, and generate based on each state and the corresponding index value.
  • truth table for each symbol For each symbol, obtain the corresponding search bit width based on its normalized probability, obtain the index value corresponding to each state of each symbol based on the search bit width, and generate based on each state and the corresponding index value.
  • Step S30 In response to performing finite state entropy coding based on the finite state entropy code table, obtain the selected index value of the current symbol based on the state of the previous symbol and the search bit width of the current symbol, and search for the selected index value in the truth table of the current symbol. Select the state corresponding to the index value to use it as the state of the current symbol for finite state entropy coding.
  • the embodiment of the present application constructs a finite state entropy code table, and for each symbol in the finite state entropy code table, obtains the corresponding search bit width based on its normalized probability, and obtains each symbol of each symbol based on the search bit width.
  • the index value corresponding to the state, and a truth table of each symbol is generated based on each state and the corresponding index value to assist in finite state entropy encoding to select a state from several states for each symbol to encode; when selecting a state , the selected index value of the current symbol is obtained based on the state of the previous symbol and the search bit width of the current symbol, and the state corresponding to the selected index value is found in the truth table of the current symbol to use it as the current symbol's
  • the state is used for finite state entropy encoding, thereby forming a state search method that is adapted to the clock cycle of the hardware circuit, and compared with the existing sequential search method, the efficiency of state search and selection is greatly improved.
  • the solution of this application is suitable for hardware implementation and can improve the state search process when finite state entropy encodes data, thereby accelerating the overall rate of finite state entropy encoding.
  • obtaining the index value corresponding to each state of each symbol based on the search bit width includes: obtaining the code table length of the finite state entropy code table based on the normalized probability of multiple symbols, and obtaining the code table length based on the code table length.
  • the code table bit width of the finite state entropy code table; for each state of each symbol, the index value corresponding to each state is obtained based on the baseline state value of the baseline position of the state area, the search bit width, and the code table bit width.
  • obtaining the index value corresponding to each state based on the baseline state value of the baseline position of the state area, the search bit width, and the code table bit width includes: calculating the code table bit width The difference with the search bit width of each symbol is the first number of movement bits; perform a right shift operation on the baseline state value of each state of each symbol based on the first number of movement bits to obtain the index value corresponding to each state. .
  • obtaining the selected index value of the current symbol based on the status of the previous symbol and the search bit width of the current symbol includes: calculating the difference between the code table bit width and the search bit width of the current symbol, and obtaining the second shift bit number; perform a right shift operation on the value of the previous symbol's state based on the second shift digit to obtain the selected index value of the current symbol.
  • obtaining the corresponding search bit width based on its normalized probability includes: constructing a logarithmic function based on the normalized probability of each symbol and the base 2, solving the logarithmic function, and obtaining each The search bit width corresponding to symbols.
  • generating a finite state entropy code table based on multiple symbols and corresponding normalized probabilities, and the finite state entropy code table includes several states of each symbol includes: obtaining a finite state entropy code table based on the normalized probabilities of multiple symbols.
  • obtaining the normalized probabilities of multiple symbols based on the symbol sequence includes: obtaining the occurrence frequency of the multiple symbols based on the symbol sequence; obtaining the normalized probability of each symbol based on the occurrence frequency of each symbol. Probability.
  • the symbols of the Zstandard (fast real-time compression algorithm) protocol refer to the output symbols of the source data that have been searched and checked by the LZ77 algorithm.
  • literals use Huffman (Huffman) coding
  • FSE Finite State Entropy, finite state entropy
  • three FSE code tables finite state entropy code tables
  • the code table length of the FSE code table is an integer power of 2, and each state corresponds to a symbol.
  • the number of states corresponding to each symbol in the FSE code table is related to the normalized probability of the symbol, so the frequency of the symbol needs to be normalized (Normalize) to generate a probability table.
  • the normalization calculation formula is roughly as follows:
  • the normalized probability of a symbol is related to the proportion of its frequency of occurrence to the total number.
  • the normalization algorithm needs to meet the following two principles: (1) The sum of normalized probabilities must be equal to Table_size (code table length); (2) As long as a certain symbol appears, the normalized probability is at least 1.
  • norm(s 2 ) Due to the requirements of normalization principle (2), the value of norm(s 2 ) needs to be set to 1.
  • the normalized probability of the s2 situation is marked with "-1", and the situation of s1 is marked with "1".
  • FSE code table is a tool for FSE encoding and decoding. It is the cornerstone of FSE encoding.
  • the FSE code table has three characteristics: the length of the FSE code table is an integer power of 2; each state in the FSE code table corresponds to a symbol; the number of states corresponding to each symbol is equal to the normalized probability.
  • each state in the FSE code table also corresponds to a state area (State-range).
  • the description method of State-range is (Baseline, number-bits).
  • the State of each state -range is used to describe the state value range of the next symbol [Baseline, Baseline+(1 ⁇ number-bits)].
  • represents the right shift operation. The right shift operation is to move a binary bit operand to the right according to the specified number of moving digits. The shifted bits are discarded. The empty bits shifted out on the left are either filled with 0 or the sign bit. This Depends on different machines.
  • the length value of State-range must be an integer power of 2 (integer is number-bits).
  • the length of the State-range of all states of the same symbol may be 1-2.
  • the length of State_range has two values:
  • the number of state numbers with Number-bits value 3 is 2, that is, [43, 44].
  • the baseline of State(43) is 0, the baseline of State(44) is 8(0+8), the baseline of State(0) is 16(8+8), and the baseline of State(1) is 32(16+16), the baseline of State(22) is 48(32+16).
  • FSE is a unified encoding of the entire symbol sequence (Sequences). It can be considered that the entire symbol sequence is finally encoded to generate a codeword.
  • FSE coding implements entropy coding of symbols in the form of coding states, and builds a link relationship between adjacent symbols in the symbol sequence through the state of the FSE code table.
  • the state of s3 selects state[43] corresponding to the State-range (0-7) of State[1].
  • the encoding bit width of s2 is the number-bits of state[43]: 3, and the encoding value It is 1 (1-0, 0 is the baseline of State[43]).
  • the state of the first symbol determines the state of the second symbol, and the encoded codeword of the first symbol is determined by the range of the second state;
  • the state of the second symbol determines the state of the third symbol, and the encoded codeword of the second symbol is determined by the range of the third state;
  • the state of the penultimate symbol determines the state of the last symbol, and the encoding codeword of the penultimate symbol is determined by the range of the last one;
  • the state of the previous symbol determines the state of the next symbol, but the state encoding content (code length, codeword) of the previous symbol is determined by the latter symbol.
  • the state of each symbol in the entire symbol sequence depends on the state of the previous symbol.
  • the entire encoding process is interlocked and flows serially step by step. From a process perspective, it is difficult to implement FSE encoding of symbol sequences in parallel.
  • FSE When FSE encodes a symbol sequence, it needs to select the state of the next symbol based on the state of the previous symbol.
  • the basis for selection is: the previous state must be within the coverage of the next state (State_range). .
  • the maximum number of searches for a specific symbol s is determined by its normalized frequency (norm[s]), but for the complete set of symbols, the maximum number of searches for each symbol will also be different.
  • the other status allocation orders are: 0, 13, 10, 7, 4, 1, 14, 11, 8, 5, 2, 12, 9, 6, 3;
  • the second step is the construction of the truth table used to find the state:
  • the search bit width of the symbol is calculated based on the normalization result.
  • the calculation formula is as follows:
  • search_bits ceil(log 2 norm[s] )
  • the search bit width of each symbol is as follows in Table 5:
  • Symbol a The search bit width is 0; a has only one state 0.
  • Symbol b The search bit width is 0; b only has one state 15.
  • Symbol c The search bit width is 1; b corresponds to the two states 10 and 13; the length of the truth table is 2; the index value corresponding to the state state[10] is calculated:
  • the value corresponding to the index value "0" in the truth table is 10;
  • Symbol d The search bit width is 1; b corresponds to two states 4 and 7; the length of the truth table is 2;
  • search bit width is 2; b corresponds to 3 states 2, 5, 12; truth table length is 4;
  • search bit width is 2; b corresponds to 3 states 3, 6, 9; truth table length is 4;
  • FSE encodes data uses states to encode symbols, that is, each symbol is marked with a state. Since the number of states corresponding to a symbol is not unique, when encoding a symbol, you need to choose one of all the states corresponding to the symbol. Which state to choose needs to be determined by using the previous state (the state selected by the previous symbol). .
  • State prev the previous symbol selection state is State prev and the next symbol symbol next state is State next .
  • State prev must be within the state area corresponding to State next :
  • the conventional method requires traversing all states corresponding to the next symbol next and selecting a state that satisfies the above formula.
  • the constructed truth table is used to quickly find the status.
  • the usage method is as follows:
  • a only corresponds to one state 0, that is, the encoding state of the first symbol is 0;
  • FIG. 2 shows a schematic diagram of an embodiment of the limited state entropy coding state selection system provided by this application.
  • a state selection system for finite state entropy coding includes: a finite state entropy code table generation module 10, configured to obtain a symbol sequence, and obtain the normalized probabilities of multiple symbols based on the symbol sequence, And generate a finite state entropy code table based on multiple symbols and corresponding normalized probabilities, and the finite state entropy code table contains several states of each symbol; the truth table generation module 20 is configured to, for each symbol, based on its The normalized probability is used to obtain the corresponding search bit width, and the index value corresponding to each state of each symbol is obtained based on the search bit width, and the truth table of each symbol is generated based on each state and the corresponding index value; and the state The selection module 30 is configured to, in response to performing fi
  • Figure 3 shows a non-volatile state selection method for implementing finite state entropy coding provided by the embodiment of the present application.
  • One or more aspects of the embodiment of the present application also provide a computer device, including a memory 402 and a processor 401 as shown in Figure 4.
  • Computer readable instructions are stored in the memory 402, and the computer readable instructions are When executed, the processor 401 implements the method of any of the above embodiments.
  • FIG. 4 it is a schematic diagram of the hardware structure of one or more embodiments of a computer device that performs the state selection method of finite state entropy coding provided by this application.
  • the computer equipment includes a processor 401 and a memory 402, and may also include: an input device 403 and an output device 404.
  • the processor 401, the memory 402, the input device 403 and the output device 404 can be connected through a bus or other means. In Figure 4, connection through a bus is taken as an example.
  • the input device 403 may receive inputted numeric or character information and generate key signal inputs related to user settings and function control of the finite state entropy encoded state selection system.
  • the output device 404 may include a display device such as a display screen.
  • the memory 402 can be used to store non-volatile software programs, non-volatile computer executable programs and modules, such as the state selection of finite state entropy coding in the embodiment of the present application.
  • the memory 402 may include a storage program area and a storage data area, wherein the storage program area may store an operating system and an application program required for at least one function; the storage data area may store data created using the state selection method of finite state entropy coding. wait.
  • memory 402 may include high-speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other non-volatile solid-state storage device.
  • memory 402 optionally includes memory located remotely relative to processor 401, and these remote memories may be connected to local modules through a network. Examples of the above-mentioned networks include but are not limited to the Internet, intranets, local area networks, mobile communication networks and combinations thereof.
  • the processor 401 executes various functional applications and data processing of the server by running non-volatile software programs, instructions and modules stored in the memory 402, that is, implementing the state selection method of finite state entropy coding in the above method embodiment.
  • non-volatile computer-readable storage medium may be a volatile memory or a non-volatile memory, or may include both a volatile memory and a non-volatile memory.
  • non-volatile memory may include read-only memory (Read-OnlyMemory, ROM), programmable ROM (Programmable Read Only Memory, PROM), electrically programmable ROM (Electrically Erasable Programmable Read Only Memory, EPROM), electrically erasable programmable ROM (EEPROM) or flash memory.
  • Volatile memory may include Random Access Memory (RAM), which may act as external cache memory.
  • RAM can be obtained in various forms, such as synchronous RAM (DRAM), dynamic RAM (Dynamic Random Access Memory, DRAM), synchronous DRAM (Synchronous Dynamic Random-access Memory, SDRAM), double data rate SDRAM (Double Data Rate SDRAM, DDR SDRAM), enhanced SDRAM (Enhanced Synchronous DRAM, ESDRAM), synchronous link DRAM (Sync Link DRAM, SLDRAM), and direct Rambus RAM (Direct Rambus RAM, DRRAM).
  • DRAM synchronous RAM
  • DRAM dynamic RAM
  • SDRAM Synchronous Dynamic Random-access Memory
  • SDRAM double data rate SDRAM
  • Double Data Rate SDRAM Double Data Rate SDRAM
  • ESDRAM Enhanced Synchronous DRAM
  • SLDRAM synchronous link DRAM
  • Direct Rambus RAM Direct Rambus RAM

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本申请提供了一种有限状态熵编码的状态选择方法、系统、存储介质及设备,方法包括:获取符号序列,并得到其中多个符号的归一化概率,并基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态;针对每个符号,基于其归一化概率得到对应的搜索位宽,并基于搜索位宽得到每个符号的每个状态对应的索引值,并基于每个状态及对应的索引值生成每个符号的真值表;若基于有限状态熵码表进行有限状态熵编码,基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值,并在当前符号的真值表中查找被选索引值所对应的状态,以将其作为当前符号的用于有限状态熵编码的状态。本申请大大提高了状态选择效率。

Description

有限状态熵编码的状态选择方法、系统、存储介质及设备
相关申请的交叉引用
本申请要求于2022年4月20日提交中国专利局,申请号为202210413401.4,申请名称为“有限状态熵编码的状态选择方法、系统、存储介质及设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及数据编解码技术领域,尤其涉及一种有限状态熵编码的状态选择方法、系统、非易失性计算机可读存储介质及计算机设备。
背景技术
随着大数据等前沿科学技术的快速发展,催生了数据爆发式的增长,海量数据对现有的存储设备带来巨大的压力。面对持续增长的海量数据,数据压缩成为减轻服务器存储负担、降低存储成本的有效方法。
数据压缩在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高传输、存储和处理效率。无损数据压缩一般通过两种方法来实现:一种是通过字典的方式实现压缩的算法,包括LZ系列算法,这类算法能实现重复数据的搜索功能;另一种是基于统计模型的压缩算法,如Huffman码(哈夫曼编码,一种常见的变长编码)、算术编码等,这类算法的核心思想是依照符号出现频率分配码长,符号频率越大,码长就越短。
哈夫曼编码简单高效,也能为单个数据符号生成最佳的码字,然而对于给定的符号集来说,其并非总是生成最有效的码字。算术编码可以解决Huffman编码的这个痛点,但是算术编码算法实现复杂,且编码效率很低(大致是Huffman编码的1/10),在数据压缩领域无法运用。正因如此,近些年,好多学者都在寻找一个“压缩率接近算术编码,且编码效率接近Huffman编码”的新型算法。
FSE(Finite State Entropy,有限状态熵)编码算法是一种结合Huffman编码及算术编码的优点的熵编码方案。基于FSE还推出一种新型数据压缩算法Zstandard(zstd),它是一种由LZ77编码、Huffman编码和FSE组成的混合压缩算法,具有更好的压缩性能。
FSE编码本质上是利用状态编码符号,即将符号的编码转换为状态的编码。FSE在进行符号序列编码时,需要根据前一个符号的状态(state)选择下一个符号的状态,选择的依据为:前一个符号的状态必须在后一个符号的状态的覆盖范围(State_range)之内。一个符号出现的概率较大,该符号对应的状态会有多个,FSE编码该符号时需要从它对应的所有状态中选择一个。
在Zstandard参考代码中,给出了一种遍历搜索的状态选择方案。假设前一个符号选择的 state_0,下一个符号为s,s对应的所有状态为State[]。该算法方案需要依次分析符号所对应的每个状态的覆盖范围,直到找到一个state_0所在范围的状态。状态的搜索次数,与前一个符号的状态有关,如用硬件实现,会有如下弊端:对于特定的符号s,符号序列中会有多个s符号,位置不同,搜索次数会有不同。特定符号s的最大搜索次数由其归一化频率(norm[s])决定,但是对于符号全集,每个符号的最大搜索次数也会不同。
搜索次数直接对应硬件电路的时钟周期,硬件电路往往要求统一的时钟周期,所以上述“搜到即止”的方案无法用于硬件实现。因此,需要一种对硬件友好的状态搜索方法。
发明内容
本申请提供了一种有限状态熵编码的状态选择方法,包括以下步骤:
获取符号序列,并基于符号序列分别得到其中多个符号的归一化概率,并基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态;
针对每个符号,基于其归一化概率得到对应的搜索位宽,并基于搜索位宽得到每个符号的每个状态对应的索引值,并基于每个状态及对应的索引值生成每个符号的真值表;
响应于基于有限状态熵码表进行有限状态熵编码,基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值,并在当前符号的真值表中查找被选索引值所对应的状态,以将其作为当前符号的用于有限状态熵编码的状态。以及
在一些实施例中,基于搜索位宽得到每个符号的每个状态对应的索引值包括:
基于多个符号的归一化概率得到有限状态熵码表的码表长度,并基于码表长度得到有限状态熵码表的码表位宽;以及
针对每个符号的每个状态,基于其状态区域的基线位置的基线状态值、搜索位宽以及码表位宽得到每个状态对应的索引值。
在一些实施例中,针对每个符号的每个状态,基于其状态区域的基线位置的基线状态值、搜索位宽以及码表位宽得到每个状态对应的索引值步骤之前,还包括:
获取每个符号的每个状态的状态取值范围;以及
根据状态取值范围设置对应的状态区域。
在一些实施例中,针对每个符号的每个状态,基于其状态区域的基线位置的基线状态值、搜索位宽以及码表位宽得到每个状态对应的索引值步骤之前,还包括:
依次根据多个符号对应的归一化概率,确定每个符号的状态区域的长度取值。
在一些实施例中,依次根据多个符号对应的归一化概率,确定每个符号的状态区域的长度取值步骤,包括:
依次确定每个符号对应的归一化概率是否为预设值;
响应于归一化概率为预设值,将对应的符号的状态区域的长度取值设置为唯一取值;或
响应于归一化概率不为预设值,将对应的符号的状态区域的长度取值设置为两个取值。
在一些实施例中,针对每个符号的每个状态,基于其状态区域的基线位置的基线状态值、搜索位宽以及码表位宽得到每个状态对应的索引值包括:
计算码表位宽与每个符号的搜索位宽的差值,得到第一移动位数;以及
基于第一移动位数对每个符号的每个状态的基线状态值进行右移运算,得到每个状态对应的索引值。
在一些实施例中,基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值包括:
计算码表位宽与当前符号的搜索位宽的差值,得到第二移动位数;以及
基于第二移动位数对上一个符号的状态的值进行右移运算,得到当前符号的被选索引值。
在一些实施例中,针对每个符号,基于其归一化概率得到对应的搜索位宽包括:
基于每个符号的归一化概率以及底数2构造对数函数,对对数函数求解,得到每个符号对应的搜索位宽。
在一些实施例中,基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态包括:
基于多个符号的归一化概率得到有限状态熵码表的码表长度;
基于码表长度得到有限状态熵码表中的所有状态;
将每个符号的归一化概率的值作为相应的状态数目;
基于所有状态和每个符号的状态数目得到每个符号的若干状态;以及
基于每个符号的若干状态生成有限状态熵码表。
在一些实施例中,基于多个符号的归一化概率得到有限状态熵码表的码表长度步骤,包括:
获取多个符号的归一化概率的总和;以及
根据总和获取有限状态熵码表的码表长度。
在一些实施例中,基于符号序列分别得到其中多个符号的归一化概率包括:
基于符号序列分别得到其中多个符号的出现频率;以及
基于每个符号的出现频率得到每个符号的归一化概率。
在一些实施例中,基于每个符号的出现频率得到每个符号的归一化概率步骤之后,还包括:
确定多个符号中是否存在相同的归一化概率;以及
响应于存在相同的归一化概率,采用不同的标识对相同的归一化概率进行标识。
在一些实施例中,获取符号序列,并基于符号序列分别得到其中多个符号的归一化概率,并基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态步骤之前,还包括:
确定符号序列是否为预设符号;以及
响应于符号序列为预设符号,则基于符号序列分别得到其中多个符号的归一化概率。
在一些实施例中,预设符号包括:原文节段长度literal_length,重复长度match_length,和偏 移距离offset。
在一些实施例中,获取符号序列,并基于符号序列分别得到其中多个符号的归一化概率,并基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态步骤,包括:
根据有限状态熵码表的码表长度和归一化概率,依次对多个符号进行状态分配。
在一些实施例中,根据有限状态熵码表的码表长度和归一化概率,依次对多个符号进行状态分配步骤,包括:
根据有限状态熵码表的码表长度和归一化概率,采用状态倒序对多个符号进行状态分配。
本申请的另一个或多个方面,还提供了一种有限状态熵编码的状态选择系统,包括:
有限状态熵码表生成模块,配置用于获取符号序列,并基于符号序列分别得到其中多个符号的归一化概率,并基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态;
真值表生成模块,配置用于针对每个符号,基于其归一化概率得到对应的搜索位宽,并基于搜索位宽得到每个符号的每个状态对应的索引值,并基于每个状态及对应的索引值生成每个符号的真值表;以及
状态选择模块,配置用于响应于基于有限状态熵码表进行有限状态熵编码,基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值,并在当前符号的真值表中查找被选索引值所对应的状态,以将其作为当前符号的用于有限状态熵编码的状态。
在一些实施例中,真值表生成模块包括:
长度和位宽获取子模块,用于基于多个符号的归一化概率得到有限状态熵码表的码表长度,并基于码表长度得到有限状态熵码表的码表位宽;以及
索引值获取子模块,用于针对每个符号的每个状态,基于其状态区域的基线位置的基线状态值、搜索位宽以及码表位宽得到每个状态对应的索引值。
本申请的又一个或多个方面,还提供了一种非易失性计算机可读存储介质,非易失性计算机可读存储介质存储有计算机可读指令,计算机可读指令被至少一个处理器执行时,使得至少一个处理器执行如上任意方法的步骤。
本申请的再一个或多个方面,还提供了一种计算机设备,包括
至少一个处理器;以及
至少一个存储器,至少一个存储器存储有计算机可读指令,计算机可读指令被至少一个处理器执行时,使得至少一个处理器执行时执行如上任意的方法。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本申请实施例提供的有限状态熵编码的状态选择方法的示意图;
图2为根据本申请实施例提供的有限状态熵编码的状态选择系统的示意图;
图3为根据本申请实施例提供的实现有限状态熵编码的状态选择方法的非易失性计算机可读存储介质的示意图;
图4为根据本申请实施例提供的执行有限状态熵编码的状态选择方法的计算机设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请实施例进一步详细说明。
需要说明的是,本申请实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称的非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本申请实施例的限定。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备固有的其他步骤或单元。
基于上述目的,本申请实施例的第一个或多个方面,提出了一种有限状态熵编码的状态选择方法的实施例。图1示出的是本申请提供的有限状态熵编码的状态选择方法的实施例的示意图。如图1所示,本申请实施例包括如下步骤:
步骤S10、获取符号序列,并基于符号序列分别得到其中多个符号的归一化概率,并基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态;
步骤S20、针对每个符号,基于其归一化概率得到对应的搜索位宽,并基于搜索位宽得到每个符号的每个状态对应的索引值,并基于每个状态及对应的索引值生成每个符号的真值表;
步骤S30、响应于基于有限状态熵码表进行有限状态熵编码,基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值,并在当前符号的真值表中查找被选索引值所对应的状态,以将其作为当前符号的用于有限状态熵编码的状态。
本申请实施例通过构建有限状态熵码表,并针对有限状态熵码表中的每个符号,基于其归一化概率得到对应的搜索位宽,并基于搜索位宽得到每个符号的每个状态对应的索引值,并基于每个状态及对应的索引值生成每个符号的真值表,以辅助有限状态熵编码时对每个符号从若干状态中选择一个状态来编码;在选择状态时,通过基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值,并在当前符号的真值表中查找被选索引值所对应的状态,以将其作为当前符号的用于有限状态熵编码的状态,从而形成与硬件电路的时钟周期相适配的状态搜索方式,并且相比于现有的依次搜索的方式,大大提高了状态搜索、选择的效率。
本申请方案适用于硬件实现,可以提高有限状态熵编码数据时的状态搜索流程,进而整个加 速有限状态熵编码的速率。
在一些实施例中,基于搜索位宽得到每个符号的每个状态对应的索引值包括:基于多个符号的归一化概率得到有限状态熵码表的码表长度,并基于码表长度得到有限状态熵码表的码表位宽;针对每个符号的每个状态,基于其状态区域的基线位置的基线状态值、搜索位宽以及码表位宽得到每个状态对应的索引值。
在一些实施例中,针对每个符号的每个状态,基于其状态区域的基线位置的基线状态值、搜索位宽以及码表位宽得到每个状态对应的索引值包括:计算码表位宽与每个符号的搜索位宽的差值,得到第一移动位数;基于第一移动位数对每个符号的每个状态的基线状态值进行右移运算,得到每个状态对应的索引值。
在一些实施例中,基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值包括:计算码表位宽与当前符号的搜索位宽的差值,得到第二移动位数;基于第二移动位数对上一个符号的状态的值进行右移运算,得到当前符号的被选索引值。
在一些实施例中,针对每个符号,基于其归一化概率得到对应的搜索位宽包括:基于每个符号的归一化概率以及底数2构造对数函数,对对数函数求解,得到每个符号对应的搜索位宽。
在一些实施例中,基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态包括:基于多个符号的归一化概率得到有限状态熵码表的码表长度;基于码表长度得到有限状态熵码表中的所有状态;将每个符号的归一化概率的值作为相应的状态数目;基于所有状态和每个符号的状态数目得到每个符号的若干状态;基于每个符号的若干状态生成有限状态熵码表。
在一些实施例中,基于符号序列分别得到其中多个符号的归一化概率包括:基于符号序列分别得到其中多个符号的出现频率;基于每个符号的出现频率得到每个符号的归一化概率。
以下为本申请的有限状态熵编码的状态选择的具体实施例:
Zstandard(快速实时压缩算法)协议的符号(Symbols)是指源数据经过LZ77算法搜索查重的输出符号,总计有4类符号:literals(原文字母),literal_length(原文节段长度),match_length(重复长度),offset(偏移距离,重复数据之间的距离)。其中literals采用Huffman(哈夫曼)编码,其余三类符号采用FSE(Finite State Entropy,有限状态熵)编码。所以Zstandard压缩算法中需要用到3个FSE码表(有限状态熵码表),分别适用于literal-length、match-length、offset这三类符号。对这3类符号独立统计,得到三个概率分布表。
FSE码表的码表长度为2的整数次幂,每个状态对应一个符号。FSE码表中每个符号对应状态数与该符号的归一化概率相关,因此需要对符号的频率进行归一化(Normalize)生成概率表。归一化计算公式大致如下:
Figure PCTCN2022142929-appb-000001
某符号的归一化概率与其出现频次占总数的比例相关。
归一化算法需要满足以下两个原则:(1)归一化概率总和必须等于Table_size(码表长度);(2)某个符号只要出现,归一化后的概率至少为1。
假设源符号的总数为1024,FSE码表的码表长度为32,某符号s1的出现次数为32,符号s2的出现次数为2;两个符号的归一化概率可以由公式(1)计算得到:
Figure PCTCN2022142929-appb-000002
Figure PCTCN2022142929-appb-000003
由于归一化原则(2)的要求,需要将norm(s 2)的值设置为1。Zstandard协议中为了区别是s1、s2代表的两种归一化概率等于1的情形,将s2情形的归一化概率的用“-1”标识,s1的情形用“1”标识。
以下为构建FSE码表的方法:
FSE码表是FSE编码及解码用的工具,它是FSE编码的基石。FSE码表具有三个特点:FSE码表的长度为2的整数次幂;FSE码表中每个状态会对应一个符号;每个符号对应的状态数目等于归一化概率。
首先为归一化概率为“-1”的符号分配状态,从状态(Table_size-1)倒序分配。伪代码如下:
Figure PCTCN2022142929-appb-000004
然后为其他符号分配状态,伪代码如下:
Figure PCTCN2022142929-appb-000005
FSE码表中每个状态除对应一个符号外,还对应一个状态区域(State-range),State-range的描述方式为(Baseline,number-bits),在FSE编解码流程,每个状态的State-range用来描述下一个 符号的状态取值范围[Baseline,Baseline+(1<<number-bits)]。其中,<<表示右移运算,右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。
对于一个符号,FSE码表中对应若干个状态,这些状态对应的State-range没有重叠,而且所有状态的State-range的长度相加,等于FSE码表的总状态数目(Table-size)。
State-range的长度值必须为2的整数次幂(整数为number-bits)。同一符号的所有状态的State-range的长度可能取值1-2个。
响应于符号的概率正好为2的整数次幂(norm=2^n),那么State-range的长度取值惟一:
number_bits=table_log–n
table_log=log 2 table_size
其他情形,State_range的长度有两个取值:
number_bits 1=table_log–floor(log 2 norm)
number_bits 2=table_log–ceil(log 2 norm)
对于同一个符号,首先需要对所有的状态进行排序。较小状态对应State-range的长度取值为num_bits 1,较大状态取值为:num_bits 2
假设N=2 ceil(log(norm)),那么num_bits 1对应的状态数为:N-norm;num_bits 2对应的状态数目为:2*norm-N。
State-range的基线(Baseline),从较大状态的开始分配。
假设FSE码表的长度为64,某符号s的归一化概率为5,如果从状态0开始分配,那么如下状态的对应符号都为s:
[0,43,22,1,44],排序后的结果为[0,1,22,43,44]。
Table_log=log 2 64=6;
number_bits 1=Table_log–floor(log(5))=6-2=4;
number_bits 2=Table_log–ceil(log(5))=3;
N=2^3=8,所以Number-bits取值为4的状态数目为N-5=3,即[0,1,22]。Number-bits取值为3的状态数数目为2,即[43,44]。
State(43)的基线(Baseline)为0,State(44)的基线为8(0+8),State(0)的基线(Baseline)为16(8+8),State(1)的基线为32(16+16),State(22)的基线为48(32+16)。
以上计算经整理得到下表1:
表1
state_order 0 1 2 3 4
State 0 1 22 43 44
Number_bit 4 4 4 3 3
Base_line 16 32 48 0 8
State_range 16-31 3-247 48-63 0-7 8-15
以上详述的是FSE码表构建流程,接下来为FSE编码数据的子流程:
从宏观角度看,FSE是对整个符号序列(Sequences)统一编码,可以认为整个符号序列最终编码生成一个码字。
从微观角度看,FSE编码通过编码状态(State)的形式实现符号的熵编码,并且通过FSE码表的状态对符号序列相邻的符号构建一个链接关系。
假设前一个符号s1选择状态为State[39],并且后一个符号s2,且s2可以采用表1编码,FSE编码时,s2需要选择State[39]所在State-range的对应状态,本例中显然选择State[1];s2状态确定后,就可以编码s1的状态,State[39]编码的位宽为State[1]的number_bits:4,编码值为7(39-32,32为State[1]的baseline)。
假设s3与s2恰好相同,那么s3的状态选择State[1]所在State-range(0-7)对应的state[43],s2编码位宽为state[43]的number-bits:3,编码值为1(1-0,0为State[43]的baseline)。
以上举例描述FSE编码的算法流程,简要归纳为:
第1个符号的状态决定第2个符号的状态,第1个符号的编码码字由第2个状态的range决定;
第2个符号的状态决定第3个符号的状态,第2个符号的编码码字由第3个状态的range决定;
……
倒数第2个符号的状态决定最后一个符号的状态,倒数第2个符号的编码码字由最后一个的range决定;
前一个符号的状态决定后一个符号的状态,前一个符号的状态编码内容(码长,码字)却由后一个符号决定。FSE编码流程中,整个符号序列每个符号的状态依赖于前一个符号状态,整个编码流程,环环相扣,一步一步串行流下去。从流程上讲,难以并行实现符号序列的FSE编码。
FSE在进行符号序列编码时,需要根据前一个符号的状态(state)选择下一个符号的状态(state),选择的依据为:前一个的状态必须在后一个状态的覆盖范围(State_range)之内。
由前述可知,一个符号出现的概率较大,该符号对应的状态会有多个(等于归一化频率)。FSE编码该符号时需要从它对应的所有状态中选择一个,状态的选择标准前面已经说明。以下需要寻求状态选择方式。
在Zstandard参考代码中,给出了一种遍历搜索的状态选择方案,伪代码形式如下:
Figure PCTCN2022142929-appb-000006
假设前一个符号选择的state_0,下一个符号为s,s对应的所有状态为State[]。由以上伪代码可知,该算法方案需要依次分析符号s所对应的每个状态的覆盖范围,直到找到一个state_0所在范围的状态。状态的搜索次数与前一个符号的状态有关,如用硬件实现,会有如下弊端:对于特定的符号s,符号序列中会有多个s符号,位置不同,搜索次数会有不同。
特定符号s的最大搜索次数由其归一化频率(norm[s])决定,但是对于符号全集,每个符号的最大搜索次数也会不同。
搜索次数直接对应硬件电路的时钟周期,硬件电路往往要求统一的时钟周期。因此上述“搜到即止”的方案无法用于硬件实现,所以需要找到一种对硬件友好的状态选择方案,具体如下:
为每个符号生成一个可用于查找的真值表,每个表包含两组元素:搜索位宽search_bits,假设符号s的归一化概率为norm[s],那么search_bits=ceil(log(norm[s]));以及真值表Search_table[],表的长度等于2的search_bits次方,查找表的每个单元格对应一个状态(state)。
真值表使用方法:假设前一个符号的状态为state0,当前符号为s,状态搜索流程如下:截取state0高位,截取位宽为search_bits,得到一个数字num=state0>>(table_lengths-search_bits),利用真值表查找状态,state1=Search_table[num]。
以下详述FSE状态查找的真值表的构建流程,本实施例中,FSE状态查找的真值表与FSE码表的构建流程同步进行:
第一步,FSE码表构件:
假设符号序列为:
Figure PCTCN2022142929-appb-000007
对上述符号序列进行频率统计,得到下表2:
表2
a b c d e f g
9 5 16 17 32 24 24
归一化结果如下表3:
表3
a b c d e f g
1 -1 2 2 4 3 3
本例中,FSE码表的码表位宽为:table_log=4;
码表长度为:table_size=1<<table_log=16;
步长step=(5/8)*table_size+3=13;
首先,状态15的对应符号为b;
其他的状态分配顺序为:0,13,10,7,4,1,14,11,8,5,2,12,9,6,3;
即:
状态0对应的符号为a;
状态13,10对应的符号为c;
状态7,4对应的符号为d;
状态1,14,11,8对应的符号为e;
状态5,2,12对应的符号为f;
状态9,6,3对应的符号为g;
假设FSE码表的长度为16,则构建码表,如下表4:
表4
state symbol baselin bit range
0 a 0 4 0-15
1 e 0 2 0-3
2 f 8 3 8-15
3 g 8 3 8-15
4 d 0 3 0-7
5 f 0 2 0-3
6 g 0 2 0-3
7 d 8 3 8-15
8 e 4 2 4-7
9 g 4 2 4-7
10 c 0 3 0-7
11 e 8 2 8-11
12 f 4 2 4-7
13 c 8 3 8-15
14 e 12 2 12-15
15 b 0 4 0-15
第二步,用于查找状态的真值表的构建:
根据归一化结果计算符号的搜索位宽,计算公式如下:
search_bits=ceil(log 2 norm[s])
or
search_bits=log 2 norm[s]
其中,ceil表示向上取整,例如,ceil(3.5)=4。
各个符号的搜索位宽如下表5:
表5
符号 a b c d e f g
归一化频率(norm) 1 -1 2 2 4 3 3
搜索位宽(search_bits) 0 0 1 1 2 2 2
给各个符号构建真值表:
符号a:搜索位宽为0;a只存在一个状态0。符号b:搜索位宽为0;b只存在一个状态15。符号c:搜索位宽为1;b对应两个状态10,13;真值表长度为2;状态state[10]对应的索引值计算:
num 10=state[10].baseline>>(码表位宽-搜索位宽)=0>>(4-1)=0
即真值表中索引值“0”对应的值为10;
状态state[13]对应的索引值计算:
num 13=state[13].baseline>>(码表位宽-搜索位宽)=8>>(4-1)=1
即真值表中索引值“1”对应的值为13;
符号c的真值表如下表6:
表6
索引 0 1
映射状态 10 13
符号d:搜索位宽为1;b对应两个状态4,7;真值表长度为2;
状态state[4]对应索引计算:num 4=state[4].basline>>(4-1)=0>>3=0;
状态state[7]对应索引计算:num 7=state[7].basline>>(4-1)=8>>3=1;
符号d的真值表如下表7:
表7
索引 0 1
映射状态 4 7
符号e:搜索位宽为2;b对应4个状态1,8,11,14;真值表长度为4;状态state[1]对应索引计 算:num 1=state[1].basline>>(4-2)=0>>2=0;
状态state[8]对应索引计算:num a=state[8].basline>>(4-2)=4>>2=1;
状态state[11]对应索引计算:num 11=state[11]_basline>>(4-2)=8>>2=2;
状态state[14]对应索引计算:num 14=state[14].basline>>(4-2)=12>>2=3;
符号e的真值表如下表8:
表8
索引 0 1 2 3
映射状态 1 8 11 14
符号f:搜索位宽为2;b对应3个状态2,5,12;真值表长度为4;
状态state[2]对应索引计算:num_1=state[2].basline>>(4-2)=8>>2=2;
此时,索引3对应的状态也为2,num_2=num_1+1=3;
状态state[5]对应索引计算:num 5=state[2].basline>>(4-2)=0>>2=0;
状态state[12]对应索引计算:num 12=state[2].basline>>(4-2)=4>>2=1;
符号f的真值表如下表9:
表9
索引 0 1 2 3
映射状态 5 12 2 2
符号g:搜索位宽为2;b对应3个状态3,6,9;真值表长度为4;
状态state[3]对应索引计算:num_1=state[3].basline>>(4-2)=8>>2=2;
此时,索引3对应的状态也为3,num_2=num_1+1=3;
状态state[6]对应索引计算:num 6=state[6].basline>>(4-2)=0>>2=0;
状态state[9]对应索引计算:num 9=state[9].basline>>(4-2)=4>>2=1;
符号g的真值表如下表10:
表10
索引 0 1 2 3
映射状态 6 9 3 3
第三步,状态选择(查找)示例:
FSE编码数据时,采用状态(state)来编码符号,即每个符号用一个状态标示。由于一个符号对应的状态数目并不唯一,因此编码某个符号时需要选在符号的所对应的所有状态中选择一个,要选择哪个状态需要利用上一个状态(前一个符号选择的状态)来确定。
假设上一个符号选择状态为State prev,后一个符号symbol next状态State next,那么State prev必须在 State next对应的状态区域之内:
State next.Baseline State prev<(State next.Baseline+State next.length)
常规的方法需要遍历后一个symbol next对应的所有状态,选择一个状态满足上式。
本实施例中,利用构建的真值表来快速查找状态,使用方法如下:
1.获取上一个符号的状态State prev
2.根据下一个符号symbol next,选择其对应的真值表,得到其搜索位宽search_bits;
3.计算搜索值Search_num=State prev>>(table_log-search_bits);
4.查表得到下一个符号的状态State next=Table[search_num]。
以afgegedgegfeceb为例,介绍每个符号的状态选择流程:
1.本例中a只对应一个状态0,即第一个符号的编码状态为0;
2.确定f的状态,搜索值search_num=0>>(码表位宽-f的搜索位宽)=0>>(4-2)=0;查表得到f的状态为5;
3.确定g的状态,搜索值search_num=5>>(码表位宽-g的搜索位宽)=5>>(4-2)=1;查表得到g的状态为9;
4.确定e的状态,搜索值search_num=9>>(4-2)=2;查表得到e的状态为11;
5.确定g的状态,搜索值search_num=11>>(4-2)=2;查表得到g的状态为3;
6.确定e的状态,搜索值search_num=3>>(4-2)=0;查表得到e的状态为1;
7.确定d的状态,搜索值search_num=1>>(4-2)=0;查表得到d的状态为4;
……
最终会得到整个序列中的状态表,如下表11:
表11
符号 a f g e g e d g e g f e c e b
状态 0 5 9 11 3 1 4 6 8 3 5 8 13 14 15
由此,则选出了FSE码表中每个符号的用于编码的状态。
本申请实施例的一个或多个方面,还提供了一种有限状态熵编码的状态选择系统。图2示出的是本申请提供的有限状态熵编码的状态选择系统的实施例的示意图。如图2所示,一种有限状态熵编码的状态选择系统包括:有限状态熵码表生成模块10,配置用于获取符号序列,并基于符号序列分别得到其中多个符号的归一化概率,并基于多个符号及相应的归一化概率生成有限状态熵码表,且有限状态熵码表包含每个符号的若干状态;真值表生成模块20,配置用于针对每个符号,基于其归一化概率得到对应的搜索位宽,并基于搜索位宽得到每个符号的每个状态对应的索引值,并基于每个状态及对应的索引值生成每个符号的真值表;以及状态选择模块30,配置用于响应于基于有限状态熵码表进行有限状态熵编码,基于上一个符号的状态以及当前符号的搜索位宽得到当前符号的被选索引值,并在当前符号的真值表中查找被选索引值所对应的状态,以将其 作为当前符号的用于有限状态熵编码的状态。
本申请实施例的一个或多个方面,还提供了一种非易失性计算机可读存储介质,图3示出了根据本申请实施例提供的实现有限状态熵编码的状态选择方法的非易失性计算机可读存储介质的示意图。如图3所示,非易失性计算机可读存储介质3存储有计算机可读指令31。该计算机可读指令31被处理器执行时实现上述任意一项实施例的方法。
应当理解,在相互不冲突的情况下,以上针对根据本申请的有限状态熵编码的状态选择方法阐述的所有实施方式、特征和优势同样地适用于根据本申请的有限状态熵编码的状态选择系统和非易失性计算机可读存储介质。
本申请实施例的一个或多个方面,还提供了一种计算机设备,包括如图4所示的存储器402和处理器401,该存储器402中存储有计算机可读指令,该计算机可读指令被该处理器401执行时实现上述任意一项实施例的方法。
如图4所示,为本申请提供的执行有限状态熵编码的状态选择方法的计算机设备的一个或多个实施例的硬件结构示意图。以如图4所示的计算机设备为例,在该计算机设备中包括一个处理器401以及一个存储器402,并还可以包括:输入装置403和输出装置404。处理器401、存储器402、输入装置403和输出装置404可以通过总线或者其他方式连接,图4中以通过总线连接为例。输入装置403可接收输入的数字或字符信息,以及产生与有限状态熵编码的状态选择系统的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示设备。
存储器402作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的有限状态熵编码的状态选择方法对应的程序指令/模块。存储器402可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储有限状态熵编码的状态选择方法的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器402可选包括相对于处理器401远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器401通过运行存储在存储器402中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的有限状态熵编码的状态选择方法。
最后需要说明的是,本文的非易失性计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。作为例子而非限制性的,非易失性存储器可以包括只读存储器(Read-OnlyMemory,ROM)、可编程ROM(Programmable Read Only Memory,PROM)、电可编程ROM(Electrically Erasable Programmable Read Only Memory,EPROM)、电可擦写可编程ROM(EEPROM)或快闪存储器。易失性存储器可以包括随机存取存储器(Random Access Memory,RAM),该RAM可以充当外部高速缓存存储器。作为例子而非限制性的,RAM可以以多种形式获得,比如同步RAM (DRAM)、动态RAM(Dynamic Random Access Memory,DRAM)、同步DRAM(Synchronous Dynamic Random-access Memory,SDRAM)、双数据速率SDRAM(Double Data Rate SDRAM,DDR SDRAM)、增强SDRAM(Enhanced Synchronous DRAM,ESDRAM)、同步链路DRAM(Sync Link DRAM,SLDRAM)、以及直接Rambus RAM(Direct Rambus RAM,DRRAM)。所公开的方面的存储设备意在包括但不限于这些和其它合适类型的存储器。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本申请实施例公开的范围。
以上是本申请公开的示例性实施例,但是应当注意,在不背离权利要求限定的本申请实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本申请实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。上述本申请实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请实施例公开的范围(包括权利要求)被限于这些例子;在本申请实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。

Claims (20)

  1. 一种有限状态熵编码的状态选择方法,其特征在于,包括以下步骤:
    获取符号序列,并基于所述符号序列分别得到其中多个符号的归一化概率,并基于所述多个符号及相应的归一化概率生成有限状态熵码表,且所述有限状态熵码表包含每个符号的若干状态;
    针对所述每个符号,基于其归一化概率得到对应的搜索位宽,并基于所述搜索位宽得到所述每个符号的每个状态对应的索引值,并基于所述每个状态及对应的索引值生成所述每个符号的真值表;以及
    响应于基于所述有限状态熵码表进行有限状态熵编码,基于上一个符号的状态以及当前符号的搜索位宽得到所述当前符号的被选索引值,并在所述当前符号的真值表中查找所述被选索引值所对应的状态,以将其作为所述当前符号的用于有限状态熵编码的状态。
  2. 根据权利要求1所述的方法,其特征在于,基于所述搜索位宽得到所述每个符号的每个状态对应的索引值包括:
    基于所述多个符号的归一化概率得到所述有限状态熵码表的码表长度,并基于所述码表长度得到所述有限状态熵码表的码表位宽;以及
    针对所述每个符号的每个状态,基于其状态区域的基线位置的基线状态值、所述搜索位宽以及所述码表位宽得到所述每个状态对应的索引值。
  3. 根据权利要求2所述的方法,其特征在于,所述针对所述每个符号的每个状态,基于其状态区域的基线位置的基线状态值、所述搜索位宽以及所述码表位宽得到所述每个状态对应的索引值步骤之前,还包括:
    获取所述每个符号的每个状态的状态取值范围;以及
    根据所述状态取值范围设置对应的状态区域。
  4. 根据权利要求2所述的方法,其特征在于,所述针对所述每个符号的每个状态,基于其状态区域的基线位置的基线状态值、所述搜索位宽以及所述码表位宽得到所述每个状态对应的索引值步骤之前,还包括:
    依次根据所述多个符号对应的归一化概率,确定所述每个符号的状态区域的长度取值。
  5. 根据权利要求4所述的方法,其特征在于,所述依次根据所述多个符号对应的归一化概率,确定所述每个符号的状态区域的长度取值步骤,包括:
    依次确定所述每个符号对应的归一化概率是否为预设值;
    响应于所述归一化概率为预设值,将对应的符号的状态区域的长度取值设置为唯一取值;或
    响应于所述归一化概率不为预设值,将对应的符号的状态区域的长度取值设置为两个取值。
  6. 根据权利要求2所述的方法,其特征在于,针对所述每个符号的每个状态,基于其状态区域的基线位置的基线状态值、所述搜索位宽以及所述码表位宽得到所述每个状态对应的索引值包 括:
    计算所述码表位宽与所述每个符号的所述搜索位宽的差值,得到第一移动位数;以及
    基于所述第一移动位数对所述每个符号的每个状态的基线状态值进行右移运算,得到所述每个状态对应的索引值。
  7. 根据权利要求2所述的方法,其特征在于,基于上一个符号的状态以及当前符号的搜索位宽得到所述当前符号的被选索引值包括:
    计算所述码表位宽与所述当前符号的搜索位宽的差值,得到第二移动位数;以及
    基于所述第二移动位数对所述上一个符号的状态的值进行右移运算,得到所述当前符号的被选索引值。
  8. 根据权利要求1或2任意一项所述的方法,其特征在于,针对所述每个符号,基于其归一化概率得到对应的搜索位宽包括:
    基于所述每个符号的归一化概率以及底数2构造对数函数,对所述对数函数求解,得到所述每个符号对应的搜索位宽。
  9. 根据权利要求1或2任意一项所述的方法,其特征在于,基于所述多个符号及相应的归一化概率生成有限状态熵码表,且所述有限状态熵码表包含每个符号的若干状态包括:
    基于所述多个符号的归一化概率得到所述有限状态熵码表的码表长度;
    基于所述码表长度得到所述有限状态熵码表中的所有状态;
    将所述每个符号的归一化概率的值作为相应的状态数目;
    基于所述所有状态和所述每个符号的状态数目得到所述每个符号的若干状态;以及
    基于所述每个符号的若干状态生成所述有限状态熵码表。
  10. 根据权利要求9所述的方法,其特征在于,所述基于所述多个符号的归一化概率得到所述有限状态熵码表的码表长度步骤,包括:
    获取所述多个符号的归一化概率的总和;以及
    根据所述总和获取所述有限状态熵码表的码表长度。
  11. 根据权利要求1或2任意一项所述的方法,其特征在于,基于所述符号序列分别得到其中多个符号的归一化概率包括:
    基于所述符号序列分别得到其中多个符号的出现频率;以及
    基于每个符号的出现频率得到所述每个符号的归一化概率。
  12. 根据权利要求11所述的方法,其特征在于,所述基于每个符号的出现频率得到所述每个符号的归一化概率步骤之后,还包括:
    确定所述多个符号中是否存在相同的归一化概率;以及
    响应于存在相同的归一化概率,采用不同的标识对相同的归一化概率进行标识。
  13. 根据权利要求1或2任意一项所述的方法,其特征在于,所述获取符号序列,并基于所述符号序列分别得到其中多个符号的归一化概率,并基于所述多个符号及相应的归一化概率生成有 限状态熵码表,且所述有限状态熵码表包含每个符号的若干状态步骤之前,还包括:
    确定所述符号序列是否为预设符号;以及
    响应于所述符号序列为预设符号,则基于所述符号序列分别得到其中多个符号的归一化概率。
  14. 根据权利要求13所述的方法,其特征在于,所述预设符号包括:原文节段长度literal_length,重复长度match_length,和偏移距离offset。
  15. 根据权利要求1或2任意一项所述的方法,其特征在于,所述获取符号序列,并基于所述符号序列分别得到其中多个符号的归一化概率,并基于所述多个符号及相应的归一化概率生成有限状态熵码表,且所述有限状态熵码表包含每个符号的若干状态步骤,包括:
    根据所述有限状态熵码表的码表长度和所述归一化概率,依次对所述多个符号进行状态分配。
  16. 根据权利要求15所述的方法,其特征在于,所述根据所述有限状态熵码表的码表长度和所述归一化概率,依次对所述多个符号进行状态分配步骤,包括:
    根据所述有限状态熵码表的码表长度和所述归一化概率,采用状态倒序对所述多个符号进行状态分配。
  17. 一种有限状态熵编码的状态选择系统,其特征在于,包括:
    有限状态熵码表生成模块,配置用于获取符号序列,并基于所述符号序列分别得到其中多个符号的归一化概率,并基于所述多个符号及相应的归一化概率生成有限状态熵码表,且所述有限状态熵码表包含每个符号的若干状态;
    真值表生成模块,配置用于针对所述每个符号,基于其归一化概率得到对应的搜索位宽,并基于所述搜索位宽得到所述每个符号的每个状态对应的索引值,并基于所述每个状态及对应的索引值生成所述每个符号的真值表;以及
    状态选择模块,配置用于响应于基于所述有限状态熵码表进行有限状态熵编码,基于上一个符号的状态以及当前符号的搜索位宽得到所述当前符号的被选索引值,并在所述当前符号的真值表中查找所述被选索引值所对应的状态,以将其作为所述当前符号的用于有限状态熵编码的状态。
  18. 根据权利要求17所述的系统,其特征在于,所述真值表生成模块包括:
    长度和位宽获取子模块,用于基于所述多个符号的归一化概率得到所述有限状态熵码表的码表长度,并基于所述码表长度得到所述有限状态熵码表的码表位宽;以及
    索引值获取子模块,用于针对所述每个符号的每个状态,基于其状态区域的基线位置的基线状态值、所述搜索位宽以及所述码表位宽得到所述每个状态对应的索引值。
  19. 一种非易失性计算机可读存储介质,其特征在于,所述非易失性计算机可读存储介质存储有计算机可读指令,所述计算机可读指令被至少一个处理器执行时,使得所述至少一个处理器执行如权利要求1-16任意一项所述方法的步骤。
  20. 一种计算机设备,包括存储器和处理器,其特征在于,包括:
    至少一个处理器;以及
    至少一个存储器,所述至少一个存储器存储有计算机可读指令,所述计算机可读指令被所述至少一个处理器执行时,使得所述至少一个处理器执行时执行如权利要求1-16任意一项所述的方法。
PCT/CN2022/142929 2022-04-20 2022-12-28 有限状态熵编码的状态选择方法、系统、存储介质及设备 Ceased WO2023202149A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210413401.4 2022-04-20
CN202210413401.4A CN114513210B (zh) 2022-04-20 2022-04-20 有限状态熵编码的状态选择方法、系统、存储介质及设备

Publications (1)

Publication Number Publication Date
WO2023202149A1 true WO2023202149A1 (zh) 2023-10-26

Family

ID=81555037

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/142929 Ceased WO2023202149A1 (zh) 2022-04-20 2022-12-28 有限状态熵编码的状态选择方法、系统、存储介质及设备

Country Status (2)

Country Link
CN (1) CN114513210B (zh)
WO (1) WO2023202149A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114513210B (zh) * 2022-04-20 2022-08-02 苏州浪潮智能科技有限公司 有限状态熵编码的状态选择方法、系统、存储介质及设备
CN115441878A (zh) * 2022-08-05 2022-12-06 海飞科(南京)信息技术有限公司 针对文本压缩的fse码表快速建立方法
CN115425986B (zh) * 2022-08-23 2026-03-27 山东云海国创云计算装备产业创新中心有限公司 一种基于熵编码的编解码方法、系统、存储介质及设备
CN115765755A (zh) * 2022-09-27 2023-03-07 山东云海国创云计算装备产业创新中心有限公司 一种基于有限域乘法的ans编解码方法、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020037059A1 (en) * 2000-08-18 2002-03-28 Texas Instruments Incorporated Joint equalization and decoding using a search-based decoding algorithm
CN113261285A (zh) * 2019-09-24 2021-08-13 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器以及存储介质
CN114039607A (zh) * 2021-11-09 2022-02-11 山东云海国创云计算装备产业创新中心有限公司 一种多字符的有限熵编码方法、装置、设备及可读介质
CN114301468A (zh) * 2021-12-23 2022-04-08 山东云海国创云计算装备产业创新中心有限公司 一种fse编码方法、装置、设备及存储介质
CN114513210A (zh) * 2022-04-20 2022-05-17 苏州浪潮智能科技有限公司 有限状态熵编码的状态选择方法、系统、存储介质及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113572479B (zh) * 2021-09-22 2021-12-21 苏州浪潮智能科技有限公司 一种有限状态熵编码表的生成方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020037059A1 (en) * 2000-08-18 2002-03-28 Texas Instruments Incorporated Joint equalization and decoding using a search-based decoding algorithm
CN113261285A (zh) * 2019-09-24 2021-08-13 Oppo广东移动通信有限公司 编码方法、解码方法、编码器、解码器以及存储介质
CN114039607A (zh) * 2021-11-09 2022-02-11 山东云海国创云计算装备产业创新中心有限公司 一种多字符的有限熵编码方法、装置、设备及可读介质
CN114301468A (zh) * 2021-12-23 2022-04-08 山东云海国创云计算装备产业创新中心有限公司 一种fse编码方法、装置、设备及存储介质
CN114513210A (zh) * 2022-04-20 2022-05-17 苏州浪潮智能科技有限公司 有限状态熵编码的状态选择方法、系统、存储介质及设备

Also Published As

Publication number Publication date
CN114513210B (zh) 2022-08-02
CN114513210A (zh) 2022-05-17

Similar Documents

Publication Publication Date Title
WO2023202149A1 (zh) 有限状态熵编码的状态选择方法、系统、存储介质及设备
CN104283568B (zh) 一种基于部分霍夫曼树的数据压缩编码方法
CN114301468B (zh) 一种fse编码方法、装置、设备及存储介质
WO2023045204A1 (zh) 一种有限状态熵编码表的生成方法、系统、介质及设备
IL294187B1 (en) Methods and systems for data compression
CN112182021B (zh) 一种用户数据查询方法、装置和系统
CN109767282A (zh) 智能化商品筛选方法及装置、电子设备
CN108391129A (zh) 数据编码方法及装置
CN104636377B (zh) 数据压缩方法及设备
CN108988988B (zh) 一种基于准循环矩阵两级查找表的rcm编码器和编码方法
CN108829930B (zh) 三维数字化工艺设计mbd模型的轻量化方法
CN105099654A (zh) 基于耦合自触发元胞自动机加解密方法
CN115314121B (zh) 量子通信方法、装置及电子设备
CN104765790B (zh) 一种数据查询的方法和装置
US20130222159A1 (en) Entropy method of binary-ternary lossless data coding
CN113919289B (zh) 比特币钱包地址字符串的编码方法及地址编号表生成方法
CN104679775A (zh) 一种基于Huffman表的数据处理方法
WO2023169007A1 (zh) 点云预测处理方法、装置、计算机、存储介质
CN119496516B (zh) 纠错加密融合的动态编码构造及低复杂度编码方法和装置
CN113811019A (zh) 一种终端身份标识与IPv6地址映射方法及装置
Li et al. Efficient Algorithms for Optimal 4‐Bit Reversible Logic System Synthesis
Zhang et al. Distributed Fog Computing Based on Improved LT codes for Deep Learning in Web of Things
CN104915370B (zh) 基于禁忌搜索的分片复制码最优冗余率编码矩阵构造方法
CN120528436A (zh) 一种Huffman编码方法、编码装置、芯片及存储介质
CN112911314B (zh) 一种熵编码器的编码方法及熵编码器

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22938367

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22938367

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 12.03.2025)

122 Ep: pct application non-entry in european phase

Ref document number: 22938367

Country of ref document: EP

Kind code of ref document: A1