CN112532252B - 编码方法、译码方法、电子设备及存储介质 - Google Patents

编码方法、译码方法、电子设备及存储介质 Download PDF

Info

Publication number
CN112532252B
CN112532252B CN202011325637.XA CN202011325637A CN112532252B CN 112532252 B CN112532252 B CN 112532252B CN 202011325637 A CN202011325637 A CN 202011325637A CN 112532252 B CN112532252 B CN 112532252B
Authority
CN
China
Prior art keywords
decoding
coding
matrix
node
nodes
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.)
Active
Application number
CN202011325637.XA
Other languages
English (en)
Other versions
CN112532252A (zh
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.)
Shenzhen Research Institute of Big Data SRIBD
Original Assignee
Shenzhen Research Institute of Big Data SRIBD
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 Shenzhen Research Institute of Big Data SRIBD filed Critical Shenzhen Research Institute of Big Data SRIBD
Priority to CN202011325637.XA priority Critical patent/CN112532252B/zh
Publication of CN112532252A publication Critical patent/CN112532252A/zh
Priority to US18/251,659 priority patent/US20240048157A1/en
Priority to PCT/CN2021/094975 priority patent/WO2022110691A1/zh
Application granted granted Critical
Publication of CN112532252B publication Critical patent/CN112532252B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/033Theoretical methods to calculate these checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1174Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes

Abstract

本申请公开了一种编码方法、译码方法、电子设备及存储介质,涉及编译码技术领域。本申请的编码方法,包括:获取存储系统的存储数据,并且获取存储数据对应的节点,得到节点的数量。将获取到的存储数据划分成多个信息向量,根据节点的数量和多个信息向量的数量生成信息矩阵。根据每一信息向量和信息矩阵计算得出编码块,得到多个编码块。本申请的译码方法,包括:获取多个编码块以及多个连接节点,获取每一连接节点对应的每一编码块,并生成每一译码块,对译码块进行双调译码后生成信息向量。本申请的编码和译码方案可以降低计算复杂度,并减小编码和译码的空间开销。

Description

编码方法、译码方法、电子设备及存储介质
技术领域
本申请涉及编译码技术领域,特别涉及一种编码方法、译码方法、电子设备及存储介质。
背景技术
目前有很多编码和译码的方案,比如里所码(Reed-solomon codes,RS码)编译码方案或基于异或(exclusive OR,XOR)操作的最大距离可分码(maximum distanceseparable code,MDS)编译码方案。RS码编译码方案是当前很多系统的编码方案,但是其编解码操作为有限域运算,编解码复杂度较高。基于XOR操作的MDS编译码方案中,每个节点存储的信息存在冗余,并且随着网络中节点数量增加,存储冗余随之增加,编解码复杂度较高。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种编码方法、译码方法、电子设备及存储介质,减少每个节点的存储冗余,降低编码和译码的计算复杂度,减小编码和译码的空间开销。
根据本申请的第一方面实施例的编码方法,包括:
获取存储系统的存储数据;
获取对应所述存储数据的节点,得到节点数量;
将所述存储数据划分成多个信息向量;
根据所述节点数量和所述信息向量的数量生成信息矩阵;
根据每一所述信息向量和所述信息矩阵计算出编码块,得到多个所述编码块。
根据本申请实施例的编码方法,至少具有如下有益效果:
获取存储系统的存储数据,并且获取存储数据对应的节点,得到节点的数量。将获取到的存储数据划分成多个信息向量,根据节点的数量和多个信息向量的数量生成信息矩阵。根据每一信息向量和信息矩阵计算得出编码块,得到多个编码块,完成编码。该编码方案降低计算复杂度,并减小存储开销。
根据本申请的一些实施例,所述信息矩阵包括:多阶的第一矩阵,对应的,所述根据所述节点数量和所述信息向量的数量生成信息矩阵,包括:
根据所述节点数量和所述信息向量的数量生成所述多阶的第一矩阵。
根据本申请的一些实施例,所述信息矩阵包括:多阶的第一矩阵,对应的,所述根据每一所述信息向量和所述信息矩阵计算出编码块,得到多个所述编码块,包括:
将每一所述信息向量和所述第一矩阵相乘,计算出所述编码块,得到多个所述编码块。
根据本申请的一些实施例,所述信息矩阵包括:多阶的第二矩阵,对应的,所述根据所述节点的数量和所述信息向量的数量生成信息矩阵,包括:
根据多个所述信息向量的数量生成多阶的单位矩阵;
根据所述节点数量和所述信息向量的数量生成多阶的第三矩阵;
将所述单位矩阵与所述第三矩阵复合生成所述多阶的第二矩阵。
根据本申请的一些实施例,所述信息矩阵包括:多阶的第二矩阵,对应的,所述根据每一所述信息向量和所述信息矩阵计算出编码块,得到多个所述编码块,包括:
将每一所述信息向量和所述第二矩阵相乘,计算出所述编码块,得到多个所述编码块。
根据本申请的第二方面实施例的译码方法,包括:
获取多个编码块以及多个连接节点,所述编码块为根据本申请第一方面实施例中任一项所述的编码方法计算出的编码块;
获取每一所述连接节点对应的编码块,得到多个所述编码块;
根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块;
对每一所述译码块进行双调译码,生成所述信息向量。
根据本申请实施例的译码方法,至少具有如下有益效果:
获取根据本申请第一方面实施例计算出的多个编码块以及多个连接节点,获取每一连接节点对应的每一编码块,并生成每一译码块,对译码块进行双调译码后生成信息向量,完成译码。该译码方案降低计算复杂度,并减小译码空间开销。
根据本申请的一些实施例,所述连接节点包括节点序号,所述根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
根据所述节点序号对多个所述连接节点进行排序,得到多个排序节点;
根据多个所述排序节点的序号以及所述排序节点对应的所述编码块生成译码块。
根据本申请的一些实施例,所述根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
将每一所述连接节点对应的每一所述编码块发送给用户端;
获取由所述用户端根据每一所述连接节点对应的每一所述编码块生成多个译码块。
根据本申请的一些实施例,所述连接节点包括节点序号,每一所述连接节点包括:消息节点和校验节点,每一所述译码块包括:每一所述消息节点对应的每一所述编码块和每一所述校验节点对应的每一校验块,对应的,根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
根据所述节点序号对多个所述连接节点进行排序,得到多个排序节点;
获取每一所述消息节点对应的每一所述编码块;
根据多个所述排序节点中多个所述校验节点的序号,将每一所述校验节点对应的每一所述编码块生成校验块;
将每一所述译码块发送给用户端,获取由所述用户端根据每一所述译码块执行本地译码操作后生成新的每一所述译码块。
根据本申请的一些实施例,每一所述连接节点包括:消息节点和校验节点,每一所述译码块包括:每一所述消息节点对应的每一所述编码块和每一所述校验节点对应的每一校验块,对应的,根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
将每一所述连接节点对应的每一所述编码块发送给用户端,由所述用户端根据每一所述校验节点,将每一所述校验节点对应的每一所述编码块生成译码块;
获取由所述用户端根据每一所述编码块执行本地译码操作后生成新的每一所述译码块。
根据本申请的一些实施例,每一所述译码块包括:每一所述消息节点对应的每一所述编码块和每一所述校验节点对应的每一所述校验块;
对应的,所述由用户端根据每一所述译码块执行本地译码操作后生成新的每一所述译码块,包括:
根据每一所述消息节点对应的每一所述编码块,将每一所述校验块与每一所述消息节点对应的每一所述编码块中的每个编码位进行异或操作,生成新的每一所述译码块。
根据本申请的第三方面实施例的电子设备,包括:
存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如本申请第一方面实施例任一项所述的编码方法,或如本申请第二方面实施例任一项所述的译码方法。
根据本申请实施例的电子设备,至少具有如下有益效果:通过执行如第一方面实施例所述的编码方法,获取存储系统的存储数据,并且获取存储数据对应的节点,得到节点的数量。将获取到的存储数据划分成多个信息向量,根据节点的数量和多个信息向量的数量生成信息矩阵。根据每一信息向量和信息矩阵计算得出编码块,得到多个编码块,完成编码。该编码方案降低计算复杂度,并减小存储开销。通过执行如第二方面实施例所述的译码方法,获取根据本申请第一方面实施例计算出的多个编码块以及多个连接节点,获取每一连接节点对应的每一编码块,并生成每一译码块,对译码块进行双调译码后生成信息向量,完成译码。该译码方案降低计算复杂度,并减小译码空间开销。
根据本申请的第四方面实施例的计算机可读存储介质,包括:
所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本申请第一方面实施例任一项所述的编码方法,或如本申请第二方面实施例任一项所述的译码方法。
根据本申请实施例的计算机可读存储指令,至少具有如下有益效果:通过执行如第一方面实施例所述的编码方法,获取存储系统的存储数据,并且获取存储数据对应的节点,得到节点的数量。将获取到的存储数据划分成多个信息向量,根据节点的数量和多个信息向量的数量生成信息矩阵。根据每一信息向量和信息矩阵计算得出编码块,得到多个编码块,该编码方案降低计算复杂度,并减小存储开销。通过执行如第二方面实施例所述的译码方法,获取根据本申请第一方面实施例计算出的多个编码块以及多个连接节点,获取每一连接节点对应的每一编码块,并生成每一译码块,对译码块进行双调译码后生成信息向量,该译码方案降低计算复杂度,并减小译码空间开销。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
下面结合附图和实施例对本申请做进一步的说明,其中:
图1为本申请一些实施例提供的编码方法的流程图;
图2为本申请另一些实施例提供的编码方法的流程图;
图3为本申请另一些实施例提供的译码方法的流程图;
图4为本申请另一些实施例提供的译码方法的流程图;
图5为本申请另一些实施例提供的译码方法的流程图;
图6为本申请另一些实施例提供的译码方法的流程图;
图7为本申请另一些实施例提供的译码方法的流程图。
具体实施方式
下面详细描述本申请的实施例,实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能理解为对本申请的限制。
本申请的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
目前有很多编码和译码的方案,比如RS码编译码方案或基于XOR操作的MDS编译码方案。RS码编译码方案是当前很多系统的编码方案,但是其编解码操作为有限域运算,编解码复杂度较高。基于XOR操作的MDS编译码方案中,每个节点存储的信息存在冗余,并且随着网络中节点数量增加,存储冗余随之增加,编解码复杂度较高。
基于此,本申请实施例提供了一种编码方法、译码方法、电子设备及存储介质,能够获取存储系统的存储数据,并且获取存储数据对应的节点,得到节点的数量。将获取到的存储数据划分成多个信息向量,根据节点的数量和多个信息向量的数量生成信息矩阵。根据每一信息向量和信息矩阵计算得出编码块,得到多个编码块,完成编码。该编码方案降低计算复杂度,并减小存储开销。获取多个编码块以及多个连接节点,获取每一连接节点对应的每一编码块,并生成每一译码块,对译码块进行双调译码后生成信息向量,完成译码。该编译码方案降低计算复杂度,并减小空间开销。
第一方面,本申请实施例提供了一种编码方法。
参照图1,图1为本申请一些实施例提供的编码方法的流程图,具体包括步骤:
S100,获取存储系统的存储数据;
S200,获取对应存储数据的节点,得到节点数量;
S300,将存储数据划分成多个信息向量;
S400,根据节点数量和信息向量的数量生成信息矩阵;
S500,根据每一信息向量和信息矩阵计算出编码块,得到多个编码块。
在步骤S100中,需要获取存储系统的存储数据,这里的存储数据是指一条长度为kL比特的消息,根据获取到的存储数据可以进行编码操作。
在步骤S200中,在获取到存储数据后,就可以得出存储数据的各个节点,获取对应存储数据的节点并且根据获取到的节点得出节点的数量。
在步骤S300中,在获取到一条长度为kL比特的消息之后,将这个消息分为k块,也就是分成k个信息向量,记作x1,...,xk,每块的长度为L比特。
在步骤S400中,根据节点数量和信息向量的数量生成信息矩阵,其中信息矩阵的形式为:其中ti,j为非负整数,并且可以根据实际情况设置ti,j的具体数值。
在一些实施例中,信息矩阵包括多阶的第一矩阵,对应的,步骤S400包括:根据节点数量和信息向量的数量生成多阶的第一矩阵。在对非系统码进行编码时,令获取到的节点数量为n,信息向量的数量为k,生成一个k×n的第一矩阵其中ti,j为非负整数,并且可以根据实际情况设置ti,j的具体数值。第一矩阵Ψ具有如下形式:
第一矩阵Ψ满足双调递增性质,即对于特定的d≤k,如下三个条件成立:
(1)对于任意1≤i1<i2≤k和1≤j1<j2≤k,
(2)对于任意1≤i≤d和1≤j1<j2≤k,
(3)对于任意d<i≤k和1≤j1<j2≤k,
在一些实施例中,如图2所示,步骤S400具体包括步骤:
S410,根据多个信息向量的数量生成多阶的单位矩阵;
S420,根据节点数量和信息向量的数量生成多阶的第三矩阵;
S430,将单位矩阵与第三矩阵复合生成多阶的第二矩阵。
在步骤S410中,在对系统码进行编码时,令信息向量的数量为k,根据数量k生成一个k阶的单位矩阵I,其中I为k×k的单位矩阵。
在步骤S420中,在对系统码进行编码时,令获取到的节点数量为n,信息向量的数量为k,生成一个k×n的第三矩阵其中ti,j为非负整数,可以根据实际情况设置ti,j的具体数值,第三矩阵Φ同样满足双调递增的性质。
在步骤S430中,将单位矩阵与第三矩阵复合生成多阶的第二矩阵,生成的第二矩阵用于编码,第二矩阵可以表示为
在步骤S500中,根据每一信息向量和信息矩阵计算出编码块,得到多个编码块。根据之前获取到的信息向量以及构建后的信息矩阵计算出编码块,完成编码。
在一些实施例中,信息矩阵包括多阶的第一矩阵,对应的,步骤S500包括:将每一信息向量和第一矩阵相乘,计算出编码块,得到多个编码块。在对非系统码进行编码时,需要将信息向量的个数设为k,这k个信息向量通过第一矩阵生成的k个编码块y1,...,yk的形式如下:
即每个编码之后的编码块可以由公式(1)得到:
其中代表将xj右移ti,j个单位,前面补ti,j个0,最后将编码后的编码块yi存储在节点i中。
在一些实施例中,信息矩阵包括多阶的第二矩阵,对应的,步骤S500包括:将每一信息向量和第二矩阵相乘,计算出编码块,得到多个编码块。在对非系统码进行解码时,将信息向量的个数设为k,这k个信息向量通过第一矩阵生成的k个编码块y1,...,yk的形式如下:
这k个信息向量通过生成矩阵编码成为n个编码块y1,...,yn如下:
即每个编码之后的编码块可以由公式(2)得到:
编码后的编码块yi存储在节点i中。在系统编码方案中,k个编码块y1,...,yk与信息向量x1,…,xk完全相同,对应的节点为消息节点。其余n-k个编码块即为校验块,对应的节点为校验节点。因此,在(n,k)系统的编码过程中,只需要计算n-k个校验块,其编码计算复杂度是非系统码方案的在实际分布式存储系统中,为了减少存储冗余,n-k较小,如选用参数(n=9,k=6),则系统码的编码计算开销是非系统码的/>计算开销大大降低。该编码方案的最大额外存储开销为(n-k-1)(k-1),低于传统方案。
本申请第一方面实施例的编码方法包括:获取存储系统的存储数据,并且获取存储数据对应的节点,得到节点的数量。将获取到的存储数据划分成多个信息向量,根据节点的数量和多个信息向量的数量生成信息矩阵。根据每一信息向量和信息矩阵计算得出编码块,得到多个编码块。该编码方案降低计算复杂度,并减小存储开销。
第二方面,本申请实施例提供了一种译码方法。
参照图3,图3为本申请一些实施例提供的译码方法的流程图,具体包括步骤:
S600,获取多个编码块以及多个连接节点;
S700,获取每一连接节点对应的编码块,得到多个编码块;
S800,根据每一连接节点和每一编码块生成译码块,得到多个译码块;
S900,对每一译码块进行双调译码,生成信息向量。
在步骤S600中,获取根据本申请第一方面实施例编码得到的编码块以及多个连接节点。在一个分布式系统中,网络中有n个节点,数据分割为k个信息向量,编码得到n个编码块,并分别保存在n个节点上。若数据可以通过任意k个节点恢复,则该编码为(n,k)MDS码。本申请实施例的解码方法就是从n个节点任意选取k个节点对各节点对应的编码块进行译码操作。首先就需要获取编码后的多个编码块以及多个连接节点,将多个连接节点对应的编码块进行译码操作。
在步骤S700中,获取每一连接节点对应的编码块,这样使连接节点与编码块一一对应,方便后续的译码操作。
在步骤S800中,每一连接节点都对应有编码块,将这些编码块生成便于译码的译码块,由这些译码块生成信息向量。
在一些实施例中,如图4所示,步骤S800具体包括步骤:
S810,根据节点序号对多个连接节点进行排序,得到多个排序节点;
S811,根据多个排序节点的序号以及排序节点对应的编码块生成译码块。
在步骤S810中,连接节点包括节点序号,假设用户连接了k个连接节点,对这k个连接节点进行排序后得到:i1>i2>…>ik,也就是k个排序节点。
在步骤S811中,节点iu(1≤u≤k)先将编码块做截断,即只取/>的一部分传输给用户。具体地,将/>传输给用户,其中在存储系统中根据节点iu就能知道/>的值,将/>存储在/>即:/> 就是排序节点iu以及排序节点iu对应编码块生成译码块,其中a:b表示a到b的集合,即a,a+1,...,b,若a>b则表示空集。对于数据块y,y[a:b]表示y里a到b位组成的块。将编码块通过排序的方式对编码块进行部分截断得到译码块,能降低传输冗余,提高数据传输的效率,用户同样可以根据译码块来进行译码操作,提高译码效率。
在一些实施例中,如图5所示,步骤S800具体包括步骤:
S820,将每一连接节点对应的每一编码块发送给用户端;
S821,获取用户端根据每一连接节点对应的每一编码块生成多个译码块。
在步骤S820中,用户根据连接到的节点可以不对编码块做截断,直接将每一连接节点对应的每一编码块发送给用户端。
在步骤S821中,用户端接收到多个连接节点以及与多个连接节点对应的多个编码块,由于用户已知节点位置,所以不用对其进行排序,译码的时候只取的部分进行译码即可,其中/>就是节点iu以及节点iu对应编码块生成译码块。
在一些实施例中,如图6所示,步骤S800具体包括步骤:
S830,根据节点序号对多个连接节点进行排序,得到多个排序节点;
S831,获取每一消息节点对应的每一编码块;
S832,根据多个排序节点中多个校验节点的序号,将每一校验节点对应的每一编码块生成校验块;
S833,将每一译码块发送给用户端,获取由用户端根据每一译码块执行本地译码操作后生成新的每一译码块。
在一些实施例中,连接节点包括节点序号,每一连接节点包括:消息节点和校验节点,每一译码块包括:每一消息节点对应的每一编码块和每一校验节点对应的每一校验块。
在步骤S830中,假设用户连接了k个连接节点,对这k个连接节点进行排序后得到:i1>i2>…>ik,也就是k个排序节点。这k个排序节点包括km个消息节点和k-km个校验节点/>并且满足/>记集合/>则集合Γ中共有k-km=kp个元素,记为/>
在步骤S831中,获取每一消息节点对应的每一编码块,即获取节点iu(1≤u≤km)对应的编码块
在步骤S832中,节点jv(1≤v≤kp)对应的编码块生成校验块节点jv先将节点jv对应的编码块做截断,即只取编码块的一部分传输给用户。其中/>的表达式如下: 就是节点jv以及节点jv对应的编码块生成的译码块。将编码块通过排序的方式对编码块进行部分截断得到译码块,能降低传输冗余,提高数据传输的效率,用户同样可以根据译码块来进行译码操作,提高译码效率。
在步骤S833中,将每一译码块发送给用户端,获取由用户端根据每一译码块执行本地译码操作后生成新的每一译码块。这里的译码块包括节点iu对应的编码块以及节点jv对应的编码块生成校验块/>将译码块发送给用户。用户得到/>和/>之后,由于/>只需对/>进行本地译码算法,生成多个新的译码块。
在一些实施例中,步骤S833包括步骤:根据每一消息节点对应的每一编码块,将每一校验块与每一消息节点对应的每一编码块中的每个编码位进行异或操作,生成新的每一译码块。上述步骤就是本地译码操作,具体包括以下两个步骤:
对于u从1到km,v从1到kp,l从1到L;
如果满足:则执行/>的操作,其中/>和/>在存储系统中是已知的,其中/>表示异或,/>表示用/>的结果来代替x。
进行上述两个步骤后生成的为新的译码块,用于进行译码操作,该译码方法为本地译码,消除了额外的译码空间开销。
在一些实施例中,如图7所示,步骤S800具体包括步骤:
S840,将每一连接节点对应的每一编码块发送给用户端,由用户端根据每一校验节点,将每一校验节点对应的每一编码块生成译码块;
S841,获取由用户端根据每一译码块执行本地译码操作后生成新的每一译码块。
在步骤S840中,用户根据连接到的节点可以不对编码块做截断,直接将每一连接节点对应的每一编码块发送给用户端,由用户端根据每一校验节点,将每一校验节点对应的每一编码块生成译码块。
在步骤S841中,用户端接收到多个连接节点以及与多个连接节点对应的多个编码块,由于用户已知节点位置,所以不用对其进行排序。只取校验节点对应的的部分进行译码即可,其中/>就是节点jv以及节点jv对应的编码块生成的译码块。
在一些实施例中,步骤S841包括:根据每一消息节点对应的每一编码块,将每一校验块与每一消息节点对应的每一编码块中的每个编码位进行异或操作,生成新的每一译码块。该译码方法为本地译码,消除了额外的译码空间开销。
在步骤S900中,对每一译码块进行双调译码,生成信息向量。在一些实施例中,双调译码算法为:
定义
初始化l+=0和l-=0,对/>执行双调消元算法:
初始化l+和l-为0,执行以下三个过程:
过程一:
步骤1:对于b从1到k-d-1对过程一的步骤2至步骤4执行次。
步骤2:将l+加1,对于u从1到b,执行过程一的步骤3至步骤4。
步骤3:计算对于v从1到k且v≠u,执行过程一的步骤4。
步骤4:计算并将计算结果替换/>
过程二:
步骤1:对于b从1到d-1对过程二的步骤2至步骤4执行次。
步骤2:将l-加1,对于u从1到b,执行过程二的步骤3至步骤4。
步骤3:计算对于v从1到k且v≠u,过程二的步骤4。
步骤4:计算并将计算结果替换
过程三:
步骤1:将l+加1,对于u从1到k-d,执行过程三的步骤2和步骤3。
步骤2:计算对于v从1到k且v≠u,执行过程三的步骤3。
步骤3:计算并将计算结果替换
步骤4:将l-加1,对于u从1到d,执行过程三的步骤5和步骤6。
步骤5:计算对于v从1到k且v≠u,执行过程三的步骤6。
步骤6:计算并将计算结果替换
步骤7:将过程三的步骤1至步骤6执行L次。
通过执行以上三个过程的步骤,得到译码后的k个信息向量,完成译码。
在一些实施例中,对(1≤v≤kp)执行双调消元算法进行译码,得到该译码方法的复杂度为kmkpL+kp(kp-1)L=kp(k-1)L,即译码一个单位长度的数据需要/>次XOR操作,该方法的复杂度低于传统译码的复杂度。同时,该译码方法可以为本地译码,消除了额外的译码空间开销。
本申请第二方面实施例的译码方法包括:获取每一连接节点对应的每一编码块,并生成每一译码块,对译码块进行双调译码后生成信息向量,完成译码。该译码方案降低计算复杂度,并减小译码空间开销。
第三方面,本申请实施例还提供了一种电子设备。
在一些实施例中,电子设备包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:处理器执行计算机程序时实现如本申请第一方面实施例中任意一项的编码方法,或如本申请第二方面实施例中任意一项的译码方法。处理器和存储器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序,如本申请实施例描述的编码方法和译码方法。处理器通过运行存储在存储器中的非暂态软件程序以及指令,从而实现上述的编码方法和译码方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储执行上述编码方法和译码方法。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,比如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
实现上述的编码方法和译码方法所需的非暂态软件程序以及指令存储在存储器中,当被一个或者多个处理器执行时,执行上述第一方面实施例中提到的编码方法和上述第二方面实施例中提到的译码方法。
第四方面,本申请实施例还提供了计算机可读存储介质。
在一些实施例中,计算机可读存储介质存储有计算机可执行指令,计算机可执行指令用于使计算机执行如本申请第一方面实施例中任意一项的编码方法,或如本申请第二方面实施例中任意一项的译码方法。
在一些实施例中,该存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,比如,被上述电子设备中的一个处理器执行,可使得上述一个或多个处理器执行上述编码方法和译码方法。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
上面结合附图对本申请实施例作了详细说明,但是本申请不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本申请宗旨的前提下作出各种变化。此外,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

Claims (10)

1.编码方法,其特征在于,包括:
获取存储系统的存储数据;
获取对应所述存储数据的节点,得到节点数量n;
将所述存储数据划分成k个信息向量;
根据所述节点数量和所述信息向量的数量生成信息矩阵;
根据每一所述信息向量和所述信息矩阵计算出编码块,得到多个所述编码块;
其中,所述信息矩阵包括:多阶的第二矩阵,对应的,所述根据所述节点的数量和所述信息向量的数量生成信息矩阵,包括:
根据多个所述信息向量的数量生成多阶的单位矩阵;
令所述单位矩阵为I,其中I为k×k的单位矩阵;
根据所述节点数量和所述信息向量的数量生成多阶的第三矩阵;
令所述多阶的第三矩阵为Φ,第三矩阵为一个k×n的矩阵,其中ti,j为非负整数,第三矩阵Φ满足双调递增性质;
将所述单位矩阵与所述第三矩阵复合生成所述多阶的第二矩阵;
第二矩阵表示为
其中,所述信息矩阵包括:多阶的第二矩阵,对应的,所述根据每一所述信息向量和所述信息矩阵计算出编码块,得到多个所述编码块,包括:
将每一所述信息向量和所述第二矩阵相乘,计算出所述编码块,得到多个所述编码块。
2.根据权利要求1所述的编码方法,其特征在于,所述信息矩阵包括:多阶的第一矩阵,对应的,所述根据所述节点数量和所述信息向量的数量生成信息矩阵,包括:
根据所述节点数量和所述信息向量的数量生成所述多阶的第一矩阵。
3.根据权利要求1所述的编码方法,其特征在于,所述信息矩阵包括:多阶的第一矩阵,对应的,所述根据每一所述信息向量和所述信息矩阵计算出编码块,得到多个所述编码块,包括:
将每一所述信息向量和所述第一矩阵相乘,计算出所述编码块,得到多个所述编码块。
4.译码方法,其特征在于,包括:
获取多个编码块以及多个连接节点,所述编码块为根据权利要求1至3任一项所述的编码方法计算出的编码块;
获取每一所述连接节点对应的编码块,得到多个所述编码块;
根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块;
对每一所述译码块进行双调译码,生成所述信息向量;
其中,所述连接节点包括节点序号,每一所述连接节点包括:消息节点和校验节点,每一所述译码块包括:每一所述消息节点对应的每一所述编码块和每一所述校验节点对应的每一校验块,对应的,根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
根据所述节点序号对多个所述连接节点进行排序,得到多个排序节点;
获取每一所述消息节点对应的每一所述编码块;
根据多个所述排序节点中多个所述校验节点的序号,将每一所述校验节点对应的每一所述编码块生成所述校验块;
将每一所述译码块发送给用户端,获取由所述用户端根据每一所述译码块执行本地译码操作后生成新的每一所述译码块。
5.根据权利要求4所述的译码方法,其特征在于,所述连接节点包括节点序号,所述根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
根据所述节点序号对多个所述连接节点进行排序,得到多个排序节点;
根据多个所述排序节点的序号以及所述排序节点对应的所述编码块生成译码块。
6.根据权利要求4所述的译码方法,其特征在于,所述根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
将每一所述连接节点对应的每一所述编码块发送给用户端;
获取由所述用户端根据每一所述连接节点对应的每一所述编码块生成多个译码块。
7.根据权利要求4所述的译码方法,其特征在于,每一所述连接节点包括:消息节点和校验节点,每一所述译码块包括:每一所述消息节点对应的每一所述编码块和每一所述校验节点对应的每一校验块,对应的,根据每一所述连接节点和每一所述编码块生成译码块,得到多个所述译码块,包括:
将每一所述连接节点对应的每一所述编码块发送给用户端,由所述用户端根据每一所述校验节点,将每一所述校验节点对应的每一所述编码块生成译码块;
获取由所述用户端根据每一所述译码块执行本地译码操作后生成新的每一所述译码块。
8.根据权利要求4或7所述的译码方法,其特征在于,每一所述译码块包括:每一所述消息节点对应的每一所述编码块和每一所述校验节点对应的每一所述校验块;
对应的,所述由用户端根据每一所述译码块执行本地译码操作后生成新的每一所述译码块,包括:
根据每一所述消息节点对应的每一所述编码块,将每一所述校验块与每一所述消息节点对应的每一所述编码块中的每个编码位进行异或操作,生成新的每一所述译码块。
9.电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1至3中任意一项所述的编码方法,或如权利要求4至8中任意一项所述的译码方法。
10.计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1至3中任意一项所述的编码方法,或如权利要求4至8中任意一项所述的译码方法。
CN202011325637.XA 2020-11-24 2020-11-24 编码方法、译码方法、电子设备及存储介质 Active CN112532252B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202011325637.XA CN112532252B (zh) 2020-11-24 2020-11-24 编码方法、译码方法、电子设备及存储介质
US18/251,659 US20240048157A1 (en) 2020-11-24 2021-05-20 Encoding method, decoding method, electronic device and storage medium
PCT/CN2021/094975 WO2022110691A1 (zh) 2020-11-24 2021-05-20 编码方法、译码方法、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011325637.XA CN112532252B (zh) 2020-11-24 2020-11-24 编码方法、译码方法、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN112532252A CN112532252A (zh) 2021-03-19
CN112532252B true CN112532252B (zh) 2024-04-02

Family

ID=74992842

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011325637.XA Active CN112532252B (zh) 2020-11-24 2020-11-24 编码方法、译码方法、电子设备及存储介质

Country Status (3)

Country Link
US (1) US20240048157A1 (zh)
CN (1) CN112532252B (zh)
WO (1) WO2022110691A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112532252B (zh) * 2020-11-24 2024-04-02 深圳市大数据研究院 编码方法、译码方法、电子设备及存储介质
CN113541863B (zh) * 2021-06-02 2024-01-09 香港中文大学(深圳) 数据编码方法、数据译码方法、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540778A (zh) * 2008-03-19 2009-09-23 华为技术有限公司 一种数据传输的方法、装置和系统
KR101618269B1 (ko) * 2015-05-29 2016-05-04 연세대학교 산학협력단 분산 저장 시스템에서의 데이터 손실 복구 부호화 방법 및 그 장치
CN108279995A (zh) * 2018-01-30 2018-07-13 北京交通大学 一种基于安全再生码的分布式存储系统的存储方法
WO2018219195A1 (zh) * 2017-05-27 2018-12-06 华为技术有限公司 一种译码方法及译码器
CN110311689A (zh) * 2018-03-22 2019-10-08 中兴通讯股份有限公司 一种Polar码的译码方法、装置及计算机可读存储介质
EP3567732A1 (en) * 2017-01-09 2019-11-13 ZTE Corporation Data processing method and device
CN111404558A (zh) * 2019-01-03 2020-07-10 电信科学技术研究院有限公司 一种Polar码译码的方法、译码器及计算机存储介质
CN111447044A (zh) * 2020-03-10 2020-07-24 深圳市大数据研究院 分布式存储方法和传输译码方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8942082B2 (en) * 2002-05-14 2015-01-27 Genghiscomm Holdings, LLC Cooperative subspace multiplexing in content delivery networks
US10073738B2 (en) * 2015-08-14 2018-09-11 Samsung Electronics Co., Ltd. XF erasure code for distributed storage systems
US10404280B2 (en) * 2015-11-19 2019-09-03 Westhold Corporation Error correction using cyclic code-based LDPC codes
CN107070590B (zh) * 2016-12-30 2020-12-29 南京海道普数据技术有限公司 基于MapReduce的WSN感知数据分布式解码方法
CN109802687B (zh) * 2018-12-25 2023-05-02 西安空间无线电技术研究所 一种基于fpga的qc-ldpc码的高速码率兼容ldpc编码器
CN110535558A (zh) * 2019-07-24 2019-12-03 中兴通讯股份有限公司 一种数据传输方法、装置和存储介质
CN110457161A (zh) * 2019-07-26 2019-11-15 成都信息工程大学 一种高效高可靠的大数据存储系统、方法、计算机程序
CN110730003B (zh) * 2019-09-19 2023-04-11 中国科学院国家空间科学中心 一种ldpc编码方法及ldpc编码器
CN112532252B (zh) * 2020-11-24 2024-04-02 深圳市大数据研究院 编码方法、译码方法、电子设备及存储介质

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101540778A (zh) * 2008-03-19 2009-09-23 华为技术有限公司 一种数据传输的方法、装置和系统
KR101618269B1 (ko) * 2015-05-29 2016-05-04 연세대학교 산학협력단 분산 저장 시스템에서의 데이터 손실 복구 부호화 방법 및 그 장치
EP3567732A1 (en) * 2017-01-09 2019-11-13 ZTE Corporation Data processing method and device
WO2018219195A1 (zh) * 2017-05-27 2018-12-06 华为技术有限公司 一种译码方法及译码器
CN108279995A (zh) * 2018-01-30 2018-07-13 北京交通大学 一种基于安全再生码的分布式存储系统的存储方法
CN110311689A (zh) * 2018-03-22 2019-10-08 中兴通讯股份有限公司 一种Polar码的译码方法、装置及计算机可读存储介质
CN111404558A (zh) * 2019-01-03 2020-07-10 电信科学技术研究院有限公司 一种Polar码译码的方法、译码器及计算机存储介质
CN111447044A (zh) * 2020-03-10 2020-07-24 深圳市大数据研究院 分布式存储方法和传输译码方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A ZigZag-Decodable Code with the MDS Property for Distributed Storage Systems;Chi Wan Sung等;《2013 IEEE International Symposium on Information Theory》;第342页右栏 *
Decoding and Repair Schemes for Shift-XOR Regenerating Codes;Ximing Fu等;《IEEE TRANSACTIONS ON INFORMATION THEORY》;第66卷(第12期);第7375-7377页章节B *
Two-tone Shift-XOR Storage Codes;Ximing Fu等;《2021 IEEE International Symposium on Information Theory (ISIT)》;2996-3001 *
极化码的编译码算法研究;韩冰;《中国优秀硕士学位论文全文数据库信息科技辑》(第04(2018)期);I136-388 *

Also Published As

Publication number Publication date
WO2022110691A1 (zh) 2022-06-02
CN112532252A (zh) 2021-03-19
US20240048157A1 (en) 2024-02-08

Similar Documents

Publication Publication Date Title
US6411223B1 (en) Generating high weight encoding symbols using a basis
KR101143282B1 (ko) 연쇄 반응 코드의 체계적 인코딩 및 디코딩
US20210160003A1 (en) Networking Coding System in a Network Layer
US6694478B1 (en) Low delay channel codes for correcting bursts of lost packets
WO2017193716A1 (zh) 一种极化码的编码和速率匹配方法、装置及设备
CN112532252B (zh) 编码方法、译码方法、电子设备及存储介质
KR101605062B1 (ko) 통신 장비에 송신될 인코딩된 심벌을 재-인코딩하기 위한 네트워크 재-인코딩 방법 및 디바이스
US20100218066A1 (en) Encoding device and decoding device
JP6797281B2 (ja) 符号化方法およびデバイスならびに装置
KR20040088034A (ko) 통신 시스템의 다단계 코드 발생기 및 디코더
US9112916B2 (en) Systems and methods for construction of and network coding using near-maximum distance separable (MDS) linear network codes
US8640009B2 (en) Methods and apparatus for providing linear erasure codes
EP3469714A1 (en) Polar code encoding with puncturing, shortening and extending
CN107370488A (zh) 纠错编码方法及装置
CN110233698B (zh) 极化码的编码及译码方法、发送设备、接收设备、介质
CN114598331A (zh) Polar码的编码方法、编译码方法及装置
CN108540259B (zh) 一种极化码编译码方法及装置
JP2001504285A (ja) ブロックコードを復号化する方法及び装置
CN111385057B (zh) 一种数据的重传解码方法、装置、系统及通信设备
CN111447044B (zh) 分布式存储方法和传输译码方法
KR20070034532A (ko) 확장형 컨벌루션 인코더 디바이스, 무선 시스템, 컨벌루션코드 확장 방법
JP2002502174A (ja) パンクチャー化した畳込み符号のビット誤り率を低下させるプリコード化技術
JP3329053B2 (ja) 誤り訂正方式
WO2019030908A1 (en) ADAPTATION OF FLOW IN POLAR CODES
US7975212B2 (en) Sequential decoding method and apparatus thereof

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant