CN108347250B - 适用于少量冗余里德-所罗门码的快速编码方法及设备 - Google Patents

适用于少量冗余里德-所罗门码的快速编码方法及设备 Download PDF

Info

Publication number
CN108347250B
CN108347250B CN201710413990.5A CN201710413990A CN108347250B CN 108347250 B CN108347250 B CN 108347250B CN 201710413990 A CN201710413990 A CN 201710413990A CN 108347250 B CN108347250 B CN 108347250B
Authority
CN
China
Prior art keywords
redundant
code
point input
parity check
check matrix
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
CN201710413990.5A
Other languages
English (en)
Other versions
CN108347250A (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.)
Hefei High Dimensional Data Technology Co ltd
Original Assignee
Hefei High Dimensional Data 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 Hefei High Dimensional Data Technology Co ltd filed Critical Hefei High Dimensional Data Technology Co ltd
Priority to US15/621,116 priority Critical patent/US10171109B2/en
Publication of CN108347250A publication Critical patent/CN108347250A/zh
Application granted granted Critical
Publication of CN108347250B publication Critical patent/CN108347250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon 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/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/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

本发明公开了一种适用于少量冗余里德‑所罗门码的快速编码方法,包括设置奇偶校验矩阵步骤:预设奇偶校验矩阵H2和H3;其中,里德‑所罗门码中冗余码元个数s取值为2或3,构建缩短里所码步骤:构建有限域GF(2m)上的符合所述预设奇偶校验矩阵的(k,s)里所码;将R点输入
Figure DDA0001313182280000011
中的k个点
Figure DDA0001313182280000012
作为信息码元、剩下的点设为零;编码步骤:对R点输入进行递回处理,得到s个冗余码元,实现对少量冗余里所码的编码。本发明实施例还公开一种电子设备及一种计算机可读存储介质。

Description

适用于少量冗余里德-所罗门码的快速编码方法及设备
技术领域
本发明涉及编码技术领域,特别涉及一种适用于少量冗余里德-所罗门码的快速编码方法及设备。
背景技术
里德-所罗门码(以下简称为里所码)是一种最大距离可分码,目前已经广泛应用在存储与通信系统中。目前对里所码进行编码的方法一般包括多项式除法、基于矩阵-向量乘法和基于快速傅里叶变换的算法。
其中,基于多项式除法的里所码编码,其生成多项式定义为:g(X)=(X-a)(X-a2)…(X-as),其中,g(X)为生成多项式,a为有限域GF(2m)本原元,而s为冗余码元个数。令o=[o1o2...ok]为k个信息码元,那么信息码多项式的定义为o(X)=o1+o2X+…+okXk-1,则冗余码多项式r(x)可以经过该算式得出:r(X)=o(X)Xs(mod g(X))。其中r(x)为剩余多项式。但是,基于多项式除法的编码需要进行约sk次有限域加法和sk次有限域乘法的计算,因此,其计算的复杂度为O(sk×Mq),其中Mq为有限域乘/加法的复杂度。
基于矩阵-向量乘法进行里所码编码时,需要给定生成矩阵G=[P I],其中I为k×k单位矩阵,而P为一给定k×s矩阵,s表示冗余码元个数,k表示信息码元个数。其码字定义为:c=oG=o[P I]=[oP o]。式中,c为码字,o为信息码元,oP为向量-矩阵乘法,其结果向量有s位校验位。其中oP计算的复杂度与前述多项式除法的计算复杂度相同,均较大。
基于快速傅里叶变换进行里所码编码时,这类算法的常数项比较大,因此不适合短的里所码。
对于短的里所码,研究人员提出了优化矩阵-向量乘法的方法,比如采用柯西(Cauchy)矩阵取代范德蒙(Vandermonde)矩阵,且编译过程中的有限域乘法可以转换成异或(XOR)运算的形式,但是这些技术并没有改变矩阵-向量乘法结构,因此,其优化程度有限,计算的复杂度仍然巨大。
为了降低计算量,研究人员提出其他的码,这类其他的码不是里所码,但是与里所码同属于最大距离可分码。比如,当冗余码元个数s=2时,有EvenOdd,X-Code,RDP(Row-Diagonal Parity),P-Code等。当s=3时,有Star Code,RTP(RAID triple parity)等。但是这类方法也只能对应具有少量冗余码元的一类码,如s=2,3,而且在s=3时,这类码需要至少3个有限域加法运算。
可见,现有技术中,虽然存在降低少量冗余里所码(即短的里所码)的编码方式,但其计算复杂度的降低量有限,计算速度非常慢。
发明内容
本发明的目的在于提供一种适用于少量冗余里德-所罗门码的快速编码方法及设备,以降低少量冗余里所码的计算量。
本发明的目的还在于提供一种计算机可读存储介质。
为实现以上目的,本发明实施例提供的一种适用于少量冗余里德-所罗门码的快速编码方法,该方法包括:
设置奇偶校验矩阵步骤:
预设奇偶校验矩阵H2和H3;其中,里德-所罗门码中冗余码元个数s取值为2或3,当s为3时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000021
当s为2时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000022
构建缩短里所码步骤:
构建有限域GF(2m)上的符合所述预设奇偶校验矩阵的(k,s)里所码;将R点输入
Figure BDA0001313182260000031
中的k个点
Figure BDA0001313182260000032
作为信息码元、剩下的点设为零;将R点中剩下的点设为零即o0=0且ok+1=…=oR-1=0;
上述m表示码中的每个码元二进制位数,R=2r
Figure BDA0001313182260000033
k为信息码元个数,s为冗余码元个数。对於i=0,1,…,R-1,oi为信息码元;
编码步骤:
根据R点输入以及有限域的基底向量,计算得到s个冗余码元,实现对少量冗余里所码的编码。
本发明实施例还提供了一种电子设备,适用于对少量冗余里德-所罗门码的快速编码,该电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现前述方法步骤。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述的方法步骤。
与现有技术相比,本发明存在以下技术效果:本发明通过对构建于有限域上符合特定的奇偶校验矩阵的一类(k,s=2,3)缩短里所码进行快速编码。主要思想是将这类缩短里所码的输入转化成R点输入,其中R为2的倍数,规定k各信息码元并将R点中剩余的点设定为0,然后对R点输入进行递回处理,将R点输入依次转化为R/2点输入、R/4点输入直至2点输入,最后根据其2点输入计算这类缩短里所码的冗余码元。与上述现行的编码方式相比,利用本发明的快速编码方法对这类缩短里所码进行编码时,计算量逼近2个有限域加法,大大减少了计算量,将这类里所码及快速编码方法应用在各种通信系统或者存储系统中时,可以有效的提高效能以及降低能源消耗。
附图说明
图1是本发明一实施例提供的一种适用于少量冗余里德-所罗门码的快速编码方法得到流程示意图;
图2是本发明一实施例中步骤S3的细分步骤的流程示意图;
图3是本发明一实施例中对里所码R点输入进行递回处理的示意图;
图4是本发明一实施例中对里所码R=2点输入进行递回处理的示意图;
图5是本发明一实施例中对里所码R=8点输入进行递回处理的示意图;
图6是本发明一实施例提供的一种适用于少量冗余里德-所罗门码的快速编码系统的结构示意图;
图7是本发明一实施例提供的一种适用于少量冗余里德-所罗门码的快速编码方法得到流程示意图;
图8是本发明一实施例提供的一种电子设备结构示意图。
具体实施方式
下面结合图1至图6所示,对本发明做进一步详细叙述。
如图1所示,本实施例公开了一种适用于少量冗余里德-所罗门码的快速编码方法,该方法包括如下步骤S1至S3:
S1、将建构于有限域GF(2m)上的符合预设奇偶校验矩阵的(k,s)里所码藉由缩短码技术转化为R点
Figure BDA0001313182260000041
输入,其中,m表示码中的每个码元二进制位数,例如m=8表示码中每个码元有8位二进制,R=2r
Figure BDA0001313182260000042
k为信息码元个数,s为冗余码元个数,本实施例中,s取值为2或3:对於i=0,1,…,R-1,oi为信息码元。令{wi|i=0,1,...,2m-1}为GF(2m)的2m元素。
其中,当s为3时,预设奇偶校验矩阵H3具体为:
Figure BDA0001313182260000051
当s为2时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000052
其中,{wi|i=1,2...,k}为GF(2m)中k个互相不同的非零元素。
需要说明的是,上述H2和H3是根据本实施例需要所设置的,并不是已有的奇偶校验矩阵。本实施例公开的快速编码方法适用构建于有限域GF(2m)=F2[X]/p(X)上的(k≥1,s=2,3)的缩短里所码,式中F2[X]为二元多项式的集合,p(X)为本原多项式。其信息码元的个数为k,冗余码元的个数为s,码长为k+s,且k≤2m-1。
具体地,本实施例中所说的符合预设的奇偶校验矩阵的里所码是指将原来的里所码某些位置上的码字用0代替,以缩短里所码的长度,前述“某些位置”可为码字上的任意位置,但一般而言会填充在信息码元之后,且“0”的数量为R-k。而且令缩短后的里所码的奇偶校验矩阵与预设的奇偶校验矩阵形式相符,就可以利用本实施例公开的快速编码方法对其缩短后的里所码进行快速编码。
S2、缩短里所码:将R点输入
Figure BDA0001313182260000053
中的k个点
Figure BDA0001313182260000054
作为信息码元、剩下的点设为零;这里,采用常规现有的缩短里所码的技术即可。
其中,将R点中剩下的点设为零即o0=0且ok+1=…=oR-1=0。
S3、对R点输入进行递回处理,得到s个冗余码元。
进一步地,如图2所示,步骤S3具体包括如下细分步骤S31至S32:
S31、当R为2时,根据R点输入与GF(2m)的基底向量v0,计算出s个冗余码元。
S32、当R大于2时,将R点输入转化为R/2点输入,再根据R点输入与GF(2m)的基底向量v0,并进行递回处理,直到R=2时,得到s个冗余码元;
具体地,将R点输入中的点
Figure BDA0001313182260000061
与点
Figure BDA0001313182260000062
按顺序两两做异或运算,将R点输入转化为R/2点输入;按照同样的处理过程,再对R/2点输入做递回处理,将R/2点输入转化为R/22点输入,如此,直至将R点输入转化为2点输入。
进一步地,在步骤S1中:
Figure BDA0001313182260000063
为有限域GF(2m)的一个基底。也就是说,当i取不同值时,不同的
Figure BDA0001313182260000064
在GF(2m)上是相互独立的。有限域GF(2m)中的2m元素记为GF(2m)={wi|i=0,1,…,2m-1},并且每个元素定义为wi=i0v0+i1v1+…+im-1vm-1。其中,(im-1…i0)2为i的二进制表达,也就是说,对于0≤i≤2m-1,i的二进制表达为:i=i0+i12+…+im-12m-1,且i0,i1,...,im-1∈{0,1}。
当s为2时,里所码的码字为c=[p0 p1 o1...ok],当s为3时,里所码的码字为c=[p0p1 p2 o1...ok]。
其中,{oi∈GF(2m)i=1,…,k}为信息码元,{p0,p1,p2}为冗余码元。
具体地,由于令HcT=0,其中H为预设奇偶校验矩阵,c为码字,cT为码字的转置,再根据预设奇偶校验矩阵的具体形式(即前述H3),可得到三个冗余码元的计算公式为:
Figure BDA0001313182260000065
Figure BDA0001313182260000071
Figure BDA0001313182260000072
步骤S3给出一种递归算法去计算p0,p1,p2。具体地,如图3计算冗余码元的具体过程如下:
将上述三个冗余码元的计算公式转换为:
Figure BDA0001313182260000073
Figure BDA0001313182260000074
Figure BDA0001313182260000075
其中R=2r
Figure BDA0001313182260000076
且o0=0,ok+1=ok+2=…=oR-1=0。令
Figure BDA0001313182260000077
其中
Figure BDA0001313182260000078
Figure BDA0001313182260000079
其中
Figure BDA00013131822600000710
为编号(R/2)+j的信息码元,
Figure BDA00013131822600000711
是信息码元后半段(即从编号R/2开始)所有码元的和。
对于p0,根据公式
Figure BDA00013131822600000712
Figure BDA00013131822600000713
得到p0为:
Figure BDA00013131822600000714
对于p1,根据上述公式wi=i0v0+i1v1+…+im-1vm-1可得:
Figure BDA00013131822600000715
则p1为:
Figure BDA00013131822600000716
对于p2
Figure BDA0001313182260000081
基于以上的公式,其大小为R的输入序列
Figure BDA0001313182260000082
转化成大小为R/2的序列
Figure BDA0001313182260000083
如此递归下去,直到输入大小为2。此时,p0=o0+o1,p1=w1o1,p2=w2o1
此外,当s=2时,里所码只有2个冗余码元,因此,只要直接计算p0、p1即可。
RS的编码就是计算信息码符多项式除以校验码生成多项式之后的余数。在本申请实施例中,通过对构建于有限域上符合特定的奇偶校验矩阵的一类缩短里所码(该类缩短里索码为k,s=2,3)进行快速编码,将这类缩短里所码的输入转化成R点输入,其中R为2的倍数,规定k个信息码元并将R点中剩余的点设定为0,然后对R点输入进行递回处理,将R点输入依次转化为R/2点输入、R/4点输入直至2点输入,最后根据其2点输入计算这类缩短里所码的冗余码元。具体而言,本发明实施例的少量冗余里德-所罗门码的快速编码,包括以下步骤:
步骤701,设置奇偶校验矩阵步骤:
预设奇偶校验矩阵H2和H3;其中,里德-所罗门码中冗余码元个数s取值为2或3,当s为3时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000091
当s为2时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000092
步骤702,构建缩短里所码步骤:
构建有限域GF(2m)上的符合所述预设奇偶校验矩阵的(k,s)里所码;将R点输入
Figure BDA0001313182260000093
中的k个点
Figure BDA0001313182260000094
作为信息码元、剩下的点设为零;将R点中剩下的点设为零即o0=0且ok+1=…=oR-1=0;
上述m表示码中的每个码元二进制位数,R=2r
Figure BDA0001313182260000095
k为信息码元个数,s为冗余码元个数。对于i=0,1,…,R-1,oi为信息码元;
步骤703,编码步骤:
根据R点输入以及有限域的基底向量,计算得到s个冗余码元,实现对少量冗余里所码的编码。
对上述编码步骤而言,可以具体包括以下步骤:
令RSV(o0,…,oR-1)表示里所码的编码,其中
Figure BDA0001313182260000096
为有限域GF(2m)的一个基底,且其输出为s个冗余码元;
当R为2时,根据R点输入即2点输入,以及GF(2m)的基底向量v0,计算出s个冗余码元。
具体为,令
Figure BDA0001313182260000097
为有限域GF(2m)的一个基底,且有限域GF(2m)中的2m元素记为GF(2m)={wi|i=0,1,…,2m-1},其中,每个元素定义为wi=i0v0+i1v1+…+im-1vm-1,(im-1…i0)2为i的二进制表达,对于0≤i≤2m-1,i的二进制表达为:i=i0+i12+…+im-12m-1,且i0,i1,...,im-1∈{0,1};
根据2点输入以及基底向量v0,计算RSV(o0,o1),输出s个冗余码元。
当R大于2时,将R点输入转化为R/2点输入,再根据R点输入与GF(2m)的基底向量v0,并进行递回处理,直到R=2时,得到s个冗余码元;
其中,将R点输入转化为R/2点输入,具体为:将R点输入中的点
Figure BDA0001313182260000101
与点
Figure BDA0001313182260000102
按顺序两两做异或运算,实现将R点输入转化为R/2点输入。
其中,所述进行递回处理即递回计算RSV(o'0,...,o'R/2-1);在进行递回计算过程中,首先计算RSV(o'0,...,o'R/2-1),其中,R/2点输入
Figure BDA0001313182260000103
是基于
Figure BDA0001313182260000104
求出,然后将RSV(o'0,...,o'R/2-1)的输出数值与数值
Figure BDA0001313182260000105
和基底向量vr-1,再次进行计算,直到输入的R=2时,计算出s个冗余码元。具体的递回计算的过程可参见图3。
当s为2时,里所码的码字为c=[p0 p1 o1...ok],{p0,p1}为冗余码元。
当s为3时,里所码的码字为c=[p0 p1 p2 o1...ok];{p0,p1,p2}为冗余码元。
令HcT=0,其中H为预设奇偶校验矩阵,c为码字,cT为码字的转置,则冗余码元的计算公式为:
Figure BDA0001313182260000106
Figure BDA0001313182260000107
Figure BDA0001313182260000108
其中R=2r
Figure BDA0001313182260000109
且o0=0,ok+1=ok+2=…=oR-1=0,令
Figure BDA0001313182260000111
其中
Figure BDA0001313182260000112
Figure BDA0001313182260000113
其中
Figure BDA0001313182260000114
为编号(R/2)+j的信息码元,
Figure BDA0001313182260000115
是信息码元从编号R/2开始的所有码元的和。
再将上述三个冗余码元的计算公式转换为公式(1)-(3),进而得到公式(4)-(6),实现对少量冗余里所码的编码。
与现有的编码方式相比,利用本发明的快速编码方法对这类缩短里所码进行编码时,计算量逼近2个有限域加法,大大减少了计算量,在应用于各种通信系统或者存储系统中时,可以有效的提高效能以及降低能源消耗。
下面结合附图说明其具体的实现实例。
具体地,当R=2时,其递回结构如图4所示:其中将o0、o1做有限域加法运算得到p0,将o1与v0做有限域乘法运算得到p1,将o1
Figure BDA0001313182260000116
做有限域乘法运算得到p2。也就是说,在当R=2时,在冗余码s=3的情况下只需进行一次有限域加法,极大地减少了计算量。
具体地,当R=8时,其递回结构如图5所示:将8点输入递回处理为2点输入,将某点(如图5所示)与
Figure BDA0001313182260000117
做有限域加法运算得到p0;分别将
Figure BDA0001313182260000118
与v0做有限域乘法、将
Figure BDA0001313182260000119
与v1做有限域乘法、将
Figure BDA00013131822600001110
与v2做有限域乘法,然后将此三个有限域乘法运算的结果做有限域加法运算,得到p1;分别将
Figure BDA00013131822600001111
Figure BDA00013131822600001112
做有限域乘法、将
Figure BDA00013131822600001113
Figure BDA00013131822600001114
做有限域乘法、将
Figure BDA00013131822600001115
Figure BDA00013131822600001116
做有限域乘法,然后将此三个有限域乘法运算的结果做有限域加法运算,得到p2。也就是说,在当R=8时,在冗余码s=3的情况下只需进行14次有限域加法与6次有限域乘法,极大地减少了计算量。
还需要说明的是,本实施例中令o0取值为零。
应需说明的是,本实施例中仅是以R=2以及R=8进行举例说明,本实施例不限定R的具体取值,本领域技术人员可以根据R取值的实际情况,利用本实施例公开的快速编码思想对其进行编码处理。
如图6所示,本实施例公开了一种适用于少量冗余里德-所罗门码的快速编码系统,包括:
输入点转化模块10用于将建构于有限域GF(2m)上的符合预设奇偶校验矩阵的(k,s)里所码藉由缩短码技术转化为R点
Figure BDA0001313182260000121
输入,其中,R=2r
Figure BDA0001313182260000122
s为2或3,其中,当s为3时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000123
当s为2时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000124
设定模块20与输入点转化模块10连接以将R点输入中的k个点
Figure BDA0001313182260000125
作为信息码元、剩下的点设为零;
递回模块30与设定模块20连接以对R点输入进行递回处理,得到s个冗余码元。
进一步地,递回模块30具体用于:
当R为2时,根据R点输入与GF(2m)的基底向量v0,计算出s个冗余码元;当R大于2时,将R点输入转化为R/2点输入,再根据R点输入与GF(2m)的基底向量v0,并进行递回处理,直到R=2时,得到s个冗余码元。
应需说明的是,本实施例公开的一种适用于少量冗余里德-所罗门码的快速编码系统与上述实施例公开的适用于少量冗余里德-所罗门码的快速编码方法具有相同或相应的技术要点,此处不再赘述。
本发明实施例还提供了一种电子设备,适用于对少量冗余里德-所罗门码的快速编码,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线704完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
设置奇偶校验矩阵步骤:
预设奇偶校验矩阵H2和H3;其中,里德-所罗门码中冗余码元个数s取值为2或3,当s为3时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000131
当s为2时,预设奇偶校验矩阵具体为:
Figure BDA0001313182260000132
构建缩短里所码步骤:
构建有限域GF(2m)上的符合所述预设奇偶校验矩阵的(k,s)里所码;将R点输入
Figure BDA0001313182260000133
中的k个点
Figure BDA0001313182260000134
作为信息码元、剩下的点设为零;将R点中剩下的点设为零即o0=0且ok+1=…=oR-1=0;
上述m表示码中的每个码元二进制位数,R=2r
Figure BDA0001313182260000135
k为信息码元个数,s为冗余码元个数,i=0,1,…,R-1,oi为信息码元;
编码步骤:
根据R点输入以及有限域的基底向量,计算得到s个冗余码元,实现对少量冗余里所码的编码。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
与现有的编码方式相比,利用本发明实施例提供的上述设备对这类缩短里所码(该类缩短里索码为k,s=2,3)进行编码时,计算量逼近2个有限域加法,大大减少了计算量,在应用于各种通信系统或者存储系统中时,可以有效的提高效能以及降低能源消耗。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现前述图7所示的方法步骤。
具体地,对于冗余数为二或三的这类少量冗余的里所码主要应用于存储系统中,例如,磁盘阵列RAID-6是一种基于二冗余的里所码的存储技术,另外,在某些分布式存储系统中,也采用里所码来编码数据以保证数据的可靠性和持久性。同时,里所码也是某些纠删码的底层技术。但是一般的里所码的编码过程需要较大的计算量,使得存储系统需要较大的能源消耗,较高的硬件要求以及较低的数据吞吐量。
而本发明公开的适用于少量冗余里德-所罗门码的快速编码方法及系统可用于各种通信或存储系统中,提高通信或者存储系统的效能以及降低能源消耗。比如,将其应用在采用二或三冗余纠删码的存储系统中,可以增进编码进度。
对采用本实施例公开的快速编码过程的复杂度进行分析如下:
令A(R)为R点算法需要的有限域加法量,M(R)为R点算法需要的有限域乘法量,根据本实施例的快速编码过程可得到如下递回式:
Figure BDA0001313182260000151
Figure BDA0001313182260000152
对上述两递回式求解可得:
A(R)=2R+log2(R)-4;
M(R)=2log2(R)。
因此,每一个输入信息码元大约需要A(R)/R≈2个有限域加法与M(R)/R≈0个有限域乘法,其中有限域加法主要采用异或(XOR)实现。因此,本实施例中的快速编码方法对于每个输入位平均需要2XORs,与现行的MDS码最少需要3XORs相比,每个输入位节省了至少一个XOR,提高了具有少量冗余的里所码的编码速度。
需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (5)

1.一种适用于少量冗余里德-所罗门码的快速编码方法,其特征在于,所述方法包括:
设置奇偶校验矩阵步骤:
预设奇偶校验矩阵H2和H3;其中,里德-所罗门码中冗余码元个数s取值为2或3,当s为3时,预设奇偶校验矩阵具体为:
Figure FDA0003039690350000011
当s为2时,预设奇偶校验矩阵具体为:
Figure FDA0003039690350000012
wk为有限域GF(2m)中第k个非零元素;
构建缩短里所码步骤:
构建有限域GF(2m)上的符合所述预设奇偶校验矩阵的(k,s)里所码;将R点输入
Figure FDA0003039690350000013
中的k个点
Figure FDA0003039690350000014
作为信息码元、剩下的点设为零;将R点中剩下的点设为零即o0=0且ok+1=…=oR-1=0;
上述m表示码中的每个码元二进制位数,R=2r
Figure FDA0003039690350000015
k为信息码元个数,s为冗余码元个数,i=0,1,…,R-1,oi为信息码元;
编码步骤:
根据R点输入以及有限域的基底向量,计算得到s个冗余码元,实现对少量冗余里所码的编码,包括:
令RSV(o0,…,oR-1)表示里所码的编码,其中
Figure FDA0003039690350000016
为有限域GF(2m)的一个基底,且其输出为s个冗余码元;且有限域GF(2m)中的2m元素记为GF(2m)={wi|i=0,1,…,2m-1},其中,每个元素定义为wi=i0v0+i1v1+…+im-1vm-1,(im-1…i0)2为i的二进制表达,对于0≤i≤2m-1,i的二进制表达为:i=i0+i12+…+im-12m-1,且i0,i1,…,im-1∈{0,1};
当R为2时,根据R点输入,以及GF(2m)的基底向量v0,计算出s个冗余码元,具体地,计算RSV(o0,o1)并输出s个冗余码元;
当R大于2时,将R点输入转化为R/2点输入,并进行递回处理,直到R=2时,得到s个冗余码元;
当s为2时,里所码的码字为c=[p0 p1 o1 … ok],{p0,p1}为冗余码元;
当s为3时,里所码的码字为c=[p0 p1 p2 o1 … ok];{p0,p1,p2}为冗余码元;
令HcT=0,其中H为预设奇偶校验矩阵,c为码字,cT为码字的转置,则冗余码元的计算公式为:
Figure FDA0003039690350000021
Figure FDA0003039690350000022
Figure FDA0003039690350000023
其中R=2r
Figure FDA0003039690350000024
且o0=0,ok+1=ok+2=…=oR-1=0,令
Figure FDA0003039690350000025
其中
Figure FDA0003039690350000026
Figure FDA0003039690350000027
其中
Figure FDA0003039690350000028
为编号(R/2)+j的信息码元,
Figure FDA0003039690350000029
是信息码元从编号R/2开始的所有码元的和。
2.如权利要求1所述的方法,其特征在于,将R点输入转化为R/2点输入的步骤包括:
将R点输入中的点
Figure FDA00030396903500000210
与点
Figure FDA00030396903500000211
按顺序两两做异或运算,实现将R点输入转化为R/2点输入。
3.如权利要求1所述的方法,其特征在于,当R大于2时,将R点输入转化为R/2点输入,并进行递回处理,直到R=2时,得到s个冗余码元的步骤包括:
首先计算RSV(o'0,…,o'R/2-1),其中,R/2点输入
Figure FDA0003039690350000031
是基于
Figure FDA0003039690350000032
求出,然后将RSV(o'0,...,o'R/2-1)的输出数值与数值
Figure FDA0003039690350000033
和基底向量vr-1,再次进行计算,直到输入的R=2时,计算出s个冗余码元。
4.一种电子设备,其特征在于,适用于对少量冗余里德-所罗门码的快速编码,该电子设备包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-3任一所述的方法步骤。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-3任一所述的方法步骤。
CN201710413990.5A 2017-01-23 2017-06-05 适用于少量冗余里德-所罗门码的快速编码方法及设备 Active CN108347250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/621,116 US10171109B2 (en) 2017-01-23 2017-06-13 Fast encoding method and device for Reed-Solomon codes with a small number of redundancies

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710058710 2017-01-23
CN2017100587103 2017-01-23

Publications (2)

Publication Number Publication Date
CN108347250A CN108347250A (zh) 2018-07-31
CN108347250B true CN108347250B (zh) 2021-08-03

Family

ID=62962359

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710413990.5A Active CN108347250B (zh) 2017-01-23 2017-06-05 适用于少量冗余里德-所罗门码的快速编码方法及设备

Country Status (1)

Country Link
CN (1) CN108347250B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753267A (zh) * 2019-01-14 2019-05-14 深圳市网心科技有限公司 一种冗余编码的方法、装置、设备及计算机可读存储介质
CN109728843A (zh) * 2019-03-10 2019-05-07 西安电子科技大学 基于物理层网络编码中继模型的数据无线安全传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009146517A1 (en) * 2008-06-02 2009-12-10 União Brasileira De Educação E Assistência - Mantenedora Da Pucrs Method of encoding and/or decoding multidimensional and a system comprising such method
CN104639179A (zh) * 2013-11-13 2015-05-20 上海华虹集成电路有限责任公司 通过二进制本原bch码的缩短码检测特殊错误模式的方法
CN105518996A (zh) * 2014-12-16 2016-04-20 深圳赛思鹏科技发展有限公司 一种基于二进制域里德所罗门码的数据编解码方法
US10193578B2 (en) * 2014-07-10 2019-01-29 The Royal Institution For The Advancement Of Learning / Mcgill University Flexible polar encoders and decoders

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7590923B1 (en) * 2004-10-27 2009-09-15 Marvell International Ltd. Architecture and control of Reed-Solomon error identification and evaluation
CN1658515A (zh) * 2005-03-21 2005-08-24 中国人民解放军空军工程大学 一种里德-所罗门译码器关键方程求解电路
CN101621299B (zh) * 2008-07-04 2013-01-30 华为技术有限公司 一种突发纠错的方法、设备和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009146517A1 (en) * 2008-06-02 2009-12-10 União Brasileira De Educação E Assistência - Mantenedora Da Pucrs Method of encoding and/or decoding multidimensional and a system comprising such method
CN104639179A (zh) * 2013-11-13 2015-05-20 上海华虹集成电路有限责任公司 通过二进制本原bch码的缩短码检测特殊错误模式的方法
US10193578B2 (en) * 2014-07-10 2019-01-29 The Royal Institution For The Advancement Of Learning / Mcgill University Flexible polar encoders and decoders
CN105518996A (zh) * 2014-12-16 2016-04-20 深圳赛思鹏科技发展有限公司 一种基于二进制域里德所罗门码的数据编解码方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
《CCRS: An Optimized Algorithm Based on CRS in Distributed Storage System》;C. Yin, H. Lv, Z. Cui, T. Li, S. Yuan and H. Zhou,;《 2015 Ninth International Conference on Frontier of Computer Science and Technology, Dalian, 2015》;20151102;全文 *
《Low-latency area-efficient decoding architecture for shortened reed-solomon codes》;Hoyoung Yoo, Youngjoo Lee and In-Cheol Park;《2012 International SoC Design Conference (ISOCC)》;20120111;全文 *

Also Published As

Publication number Publication date
CN108347250A (zh) 2018-07-31

Similar Documents

Publication Publication Date Title
Sarkis et al. Flexible and low-complexity encoding and decoding of systematic polar codes
Yuan et al. Low-latency successive-cancellation list decoders for polar codes with multibit decision
US8594217B2 (en) Parallel implementation of maximum a posteriori probability decoder
JP2005512183A (ja) ガロア体乗算システム
Das et al. Distributed matrix-vector multiplication: A convolutional coding approach
WO2013006388A2 (en) Efficient and scalable cyclic redundancy check circuit using galois-field arithmetic
CN113296999B (zh) 一种raid6编码方法及编码电路
CN113297000A (zh) 一种raid编码电路及编码方法
CN101227194A (zh) 用于并行bch编码的电路、编码器及方法
CN111858142A (zh) 一种数据处理方法、装置及电子设备和存储介质
US6308295B1 (en) Parallel spectral reed-solomon encoder and decoder
US8261176B2 (en) Polynomial division
CN108347250B (zh) 适用于少量冗余里德-所罗门码的快速编码方法及设备
CN113972980A (zh) 基于数论变换的格密码多项式乘法运算的优化方法及装置
Tang et al. Fast en/decoding of Reed-Solomon codes for failure recovery
CN112364985A (zh) 一种基于分布式编码的卷积优化方法
US10171109B2 (en) Fast encoding method and device for Reed-Solomon codes with a small number of redundancies
CN116048868A (zh) 代码生成方法、装置、设备和存储介质
JP2005006188A (ja) Crc演算方法およびcrc演算装置
CN108847851B (zh) 一种二元bch码伴随式矩阵的实现方法
Zheng et al. An efficient eligible error locator polynomial searching algorithm and hardware architecture for one-pass Chase decoding of BCH codes
CN117254823B (zh) 一种并行rs编码方法、装置、系统及计算机存储介质
Lee et al. Implementation of parallel BCH encoder employing tree-type systolic array architecture
Zhang et al. Low-power high-efficiency architecture for low-complexity chase soft-decision Reed–Solomon decoding
Indu et al. Cyclic redundancy check generation using multiple lookup table algorithms

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