CN106911337B - 数据处理方法、装置和解码器 - Google Patents
数据处理方法、装置和解码器 Download PDFInfo
- Publication number
- CN106911337B CN106911337B CN201710058857.2A CN201710058857A CN106911337B CN 106911337 B CN106911337 B CN 106911337B CN 201710058857 A CN201710058857 A CN 201710058857A CN 106911337 B CN106911337 B CN 106911337B
- Authority
- CN
- China
- Prior art keywords
- information
- check matrix
- vnus
- processing results
- pieces
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error 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/11—Error 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/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
Abstract
本公开涉及一种数据处理方法、装置和解码器,该方法包括:获取待解码数据;根据解码器的带宽,将该待解码数据分成n个数据块;根据第一校验矩阵同时对该n个数据块进行解码;其中,该第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含n个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵。能够通过将待解码数据分成多个适当的数据块同时进行解码处理,减少完成一次迭代的时间,增加解码器带宽。
Description
技术领域
本公开涉及解码技术领域,具体地,涉及一种数据处理方法、装置和解码器。
背景技术
准循环低密度奇偶校验码(Quasi-cyclic Low-density Parity-check,简称:QC-LDPC码)已经被业界广泛验证具有与随机构造的LDPC码一样优异的误码性能。针对一些QC-LDPC码应用领域解码处理速度较慢的特点,QC-LDPC码常用的编码方案之一是一种经典的分层架构,基于该架构的解码器复杂度低,但是带宽小,时延相对来说比较长,导致吞吐量比较低。
发明内容
本公开提供一种数据处理方法、装置和解码器,用于解决QC-LDPC码解码器带宽小导致的吞吐量比较低的问题。
根据本公开实施例的第一方面,提供一种数据处理方法,所述方法包括:
获取待解码数据;
将所述待解码数据分成n个数据块,其中n是根据解码器的带宽确定的,n为大于或者等于2的自然数;
根据第一校验矩阵同时对所述n个数据块进行解码,其中,所述第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,所述第一校验矩阵中包含n个循环置换矩阵,且所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵。
可选的,所述解码器包括n个变量节点单元VNU和第一校验节点单元CNU,所述根据第一校验矩阵同时对所述n个数据块进行解码,包括:
根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果;
将所述n个第一处理结果分别输入到所述n个VNU;
获取与所述n个VNU对应的n个C2V信息并分别输入所述n个VNU,所述C2V信息为CNU传递给VNU的软信息;
利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,所述n个第二处理结果包括所述n个VNU输出的n个V2C信息和对应的n个判决结果,所述V2C信息为VNU传递给CNU的软信息;
将所述n个第二处理结果输入到所述第一CNU中,利用所述第一CNU根据所述n个判决结果是否满足预设的校验条件;当满足所述校验条件时确定所述n个数据块的解码完成;当不满足所述校验条件时获取所述n个V2C信息的最小值;
根据所述n个V2C信息获取用于下一解码周期的与所述n个VNU对应的n个C2V信息,并再次执行所述根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果至所述根据所述n个V2C信息的获取用于下一解码周期的与所述n个VNU对应的n个C2V信息的步骤。
可选的,每个C2V信息中包括第一C2V信息和第二C2V信息,所述利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,包括:
在每个VNU中,将输入的第一处理结果减去所述第一C2V信息后与所述第二C2V信息相加,得到所述V2C信息;
获取所述V2C信息的判决结果,得到包括所述V2C信息和所述判决结果的所述第二处理结果。
可选的,所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵,包括:
所述原始校验矩阵的第i行中的非零子矩阵分布在所述n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的所述非零子矩阵的数量与其他循环置换矩阵的第i行中的所述非零子矩阵的数量之差小于预设阈值。
根据本公开实施例的第二方面,提供一种解码器,其特征在于,所述解码器包括:n个第一缓存,n+1个第二缓存,n个变量节点单元VNU和一个第一校验节点单元CNU;其中,n是根据解码器的带宽确定的,n为大于或者等于2的自然数,
所述n个第一缓存,用于缓存根据第一校验矩阵以及待解码数据分成的n个数据块,获取的所述n个数据块对应的n个第一处理结果,并将所述n个第一处理结果输入所述n个VNU;所述第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,所述第一校验矩阵中包含n个循环置换矩阵,且所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵;
所述n+1个第二缓存,用于缓存与所述n个VNU对应的n个C2V信息,并将所述n个C2V信息输入所述n个VNU;
所述n个VNU,用于利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,所述n个第二处理结果包括所述n个VNU输出的n个V2C信息和对应的n个判决结果,所述V2C信息为VNU传递给CNU的软信息;
所述第一CNU,用于将将所述n个第二处理结果输入到所述第一CNU中,利用所述第一CNU根据所述n个判决结果是否满足预设的校验条件;当满足所述校验条件时确定所述n个数据块的解码完成;当不满足所述校验条件时获取所述n个V2C信息的最小值;
所述n+1个第二缓存,还用于缓存根据所述n个V2C信息获取的用于下一解码周期的与所述n个VNU对应的n个C2V信息;
所述n个第一缓存,所述n+1个第二缓存,所述n个VNU以及所述第一CNU,还用于再次执行所述根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果至所述缓存根据所述n个V2C信息获取的用于下一解码周期的与所述n个VNU对应的n个C2V信息的步骤。
可选的,每个C2V信息中包括第一C2V信息和第二C2V信息,所述n个VNU具体用于:
在每个VNU中,将输入的第一处理结果减去所述第一C2V信息后与所述第二C2V信息相加,得到所述V2C信息;
获取所述V2C信息的判决结果,得到包括所述V2C信息和所述判决结果的所述第二处理结果。
可选的,所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵,包括:
所述原始校验矩阵的第i行中的非零子矩阵分布在所述n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的所述非零子矩阵的数量与其他循环置换矩阵的第i行中的所述非零子矩阵的数量之差小于预设阈值。
根据本公开实施例的第三方面,提供一种数据处理装置,所述装置包括:至少一个处理器,存储器;
所述存储器用于存储至少一个程序模块;
所述至少一个处理器通过运行存储在所述存储器的所述至少一个程序模块用于:
获取待解码数据;
将所述待解码数据分成n个数据块,其中n是根据解码器的带宽确定的,n为大于或者等于2的自然数;
根据所述第一校验矩阵同时对所述n个数据块进行解码,其中,所述第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,所述第一校验矩阵中包含n个循环置换矩阵,且所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵。
可选的,所述解码器包括n个变量节点单元VNU和第一校验节点单元CNU,所述至少一个处理器根据所述第一校验矩阵同时对所述n个数据块进行解码具体包括:
根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果;
将所述n个第一处理结果分别输入到所述n个VNU;
获取与所述n个VNU对应的n个C2V信息并分别输入所述n个VNU,所述C2V信息为CNU传递给VNU的软信息;
利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,所述n个第二处理结果包括所述n个VNU输出的n个V2C信息和对应的n个判决结果,所述V2C信息为VNU传递给CNU的软信息;
将所述n个第二处理结果输入到所述第一CNU中,利用所述第一CNU根据所述n个判决结果是否满足预设的校验条件;当满足所述校验条件时确定所述n个数据块的解码完成;当不满足所述校验条件时获取所述n个V2C信息的最小值;
根据所述n个V2C信息获取用于下一解码周期的与所述n个VNU对应的n个C2V信息,并再次执行所述根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果至所述根据所述n个V2C信息的获取用于下一解码周期的与所述n个VNU对应的n个C2V信息的步骤。
可选的,每个C2V信息中包括第一C2V信息和第二C2V信息,所述至少一个处理器利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果具体用于:
在每个VNU中,将输入的第一处理结果减去所述第一C2V信息后与所述第二C2V信息相加,得到所述V2C信息;
获取所述V2C信息的判决结果,得到包括所述V2C信息和所述判决结果的所述第二处理结果。
可选的,所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵,包括:
所述原始校验矩阵的第i行中的非零子矩阵分布在所述n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的所述非零子矩阵的数量与其他循环置换矩阵的第i行中的所述非零子矩阵的数量之差小于预设阈值。
通过上述技术方案,本公开的实施例可以包括以下有益效果:
在获取待解码数据后,根据解码器的带宽,将该待解码数据分成n个数据块,并根据第一校验矩阵同时对该n个数据块进行解码;其中,该第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含n个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵。能够通过将待解码数据分成多个数据块同时进行解码处理,减少完成一次迭代的时间,增加解码器的带宽,进而增加解码效率,提高吞吐量。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:
图1是根据一示例性实施例示出的一种数据处理方法的流程图;
图2是图1所示实施例示出的一种数据解码方法的流程图;
图3是根据一示例性实施例示出的一种VNU的数据处理方法的流程图;
图4是根据一示例性实施例示出的一种解码器的示意图;
图5是根据一示例性实施例示出的一种数据处理装置的框图。
具体实施方式
图1是根据一示例性实施例示出的一种数据处理方法的流程图,参见图1,该数据处理方法可以包括以下步骤。
在步骤101中,获取待解码数据。
在步骤102中,将该待解码数据分成n个数据块,其中n是根据解码器的带宽确定的,n为大于或者等于2的自然数。
示例地,该待解码数据可以为一个码字,根据QC-LDPC的分层迭代解码算法中的校验矩阵H可知,一个码字的长度可以为t×B,则将其分成的该n个数据块(bank)中,每个数据块的长度就为t×B/n。其中,校验矩阵H是一个包括s×t个尺寸为B×B的循环矩阵的矩阵。
在步骤103中,根据第一校验矩阵同时对该n个数据块进行解码,其中,该第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含n个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵。
示例的,校验矩阵中的一行中的非零子矩阵的数量可以记为m,该m可以称为该校验矩阵的行重,上述的分布标准就是要将变换后的校验矩阵中的n个部分(可以称为n个CPM(Circulate Permutation Matrix,简称:循环置换矩阵),每个CPM可以视为校验矩阵H的一个子矩阵中的行重均等于(或者接近)m/n,因此该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵,就可以包括:该原始校验矩阵的第i行中的非零子矩阵分布在该n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的该非零子矩阵的数量与其他循环置换矩阵的第i行中的该非零子矩阵的数量之差小于预设阈值。
示例地,该原始校验矩阵可以为校验矩阵H,该矩阵H可以表示为:
其中,时,表示的是一个B×B的全零矩阵,而是0~(B-1)中间的任意一个正整数时,表示的是一个B×B的循环矩阵向右循环相应的次数得到的矩阵,此时校验矩阵H的尺寸为sB×tB。如果该校验矩阵H满秩,则该校验矩阵H对应的码长是n=t×B,码率为(t-s)/t。
其中,上述的该循环置换矩阵(以下简称为CPM)为解码器的解码单位,解码器的带宽可以看作是该解码器同时能够处理几个CPM。其中,在每一层的解码计算中,解码器硬件只计算该CPM中的非零子矩阵,这是由于,校验矩阵H中的全零矩阵在运算后还是全零,没有意义。
因此,为了可以将待解码数据分成n份同时进行处理,就需要通过矩阵的行置换与列置换,使该校验矩阵H中的非零子矩阵按照步骤103中所述的分布标准分布在该n个CPM中,当每个CPM的行重均等于(或者接近)m/n时,确定校验矩阵H优化完成,可以进行后续计算。其中,每个CPM的行重接近m/n可以理解为,每个CPM的行重与其他任意CPM的行重之间的差小于某个较小的预设值。
综上所述,本公开所提供的数据处理方法,在获取待解码数据后,根据解码器的带宽,将该待解码数据分成n个数据块,并根据第一校验矩阵同时对该n个数据块进行解码;其中,该第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含n个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵。能够通过将待解码数据分成多个数据块同时进行解码处理,减少完成一次迭代的时间,增加解码器的带宽,进而增加解码效率,提高吞吐量。
图2是图1所示实施例示出的一种数据解码方法的流程图,如图2所示,根据n的值对原始校验矩阵进行行列变换的方法可以包括以下步骤。
在步骤1031中,根据该第一校验矩阵以及该n个数据块,获取该n个数据块对应的n个第一处理结果。
示例地,当前所用的解码器可以包括n个第一缓存,n+1个第二缓存,n个VNU(Variable Node Unit,中文:变量节点单元)和一个第一CNU(Check Node Unit,中文:校验节点单元)。在将校验矩阵H变换为包含n个CPM的第一校验矩阵后,可以通过该第一校验矩阵对每一个数据块的同时进行处理,得到这n个数据块所对应的n个第一处理结果。该n个第一处理结果可以被存储在解码器的n个第一缓存中,其中该第一处理结果可以为对数似然比(Log Likelihood Ratio,简称LLR)。
在步骤1032中,将该n个第一处理结果分别输入到n个VNU中。
在步骤1033中,获取与该n个VNU对应的n个C2V信息并分别输入该n个VNU,该C2V信息为CNU传递给VNU的软信息。
其中,该n个C2V信息是从解码器的第二缓存中获取的,该第二缓存用于存储解码器的CNU在上一解码周期中计算出的V2C信息的最小值(因此在解码器中可以称第二缓存为min buffer),根据该V2C信息的最小值就可以计算出用于当前解码周期的计算的该n个C2V信息。其中,本方法中可以定义步骤1031-步骤1036为一个解码周期。
在步骤1034中,利用该n个VNU根据该n个第一处理结果和该n个C2V信息获取n个第二处理结果,该n个第二处理结果包括该n个VNU输出的n个V2C信息和对应的n个判决结果,该V2C信息为VNU传递给CNU的软信息。
在步骤1035中,将该n个第二处理结果输入到该第一CNU中,利用该第一CNU根据该n个判决结果是否满足预设的校验条件;当满足该校验条件时确定该n个数据块的解码完成;当不满足该校验条件时获取该n个V2C信息的最小值。
示例的,可以将n个判决结果送到第一CNU中的校验树中,通过得到的校验值可以反映着n个判决结果是否满足校验条件,例如校验值是否为零。该校验方法仅为示例性的,包括但不限于此。
在步骤1036中,根据该n个V2C信息获取用于下一解码周期的与该n个VNU对应的n个C2V信息,并再次执行步骤1031至步骤1036。
图3是根据一示例性实施例示出的一种VNU的数据处理方法的流程图,如图3所示,步骤1034所述利用该n个VNU根据该n个第一处理结果和该n个C2V信息获取n个第二处理结果的方法包括以下步骤。
在步骤10341中,在每个VNU中,将输入的第一处理结果减去该第一C2V信息后与该第二C2V信息相加,得到该V2C信息。
示例地,该第一C2V信息可以为C2V_old信息,该第二C2V信息可以为C2V_new信息。该C2V_old信息与该C2V_new信息被储存在解码器的第二缓存,即min buffer中,该C2V_old信息与该C2V_new信息是根据存储在min buffer中的V2C信息的最小值计算出来的,该V2C信息的最小值是第一CNU在上一解码周期中根据该VNU出入的第二处理结果中的V2C信息计算出来的。其中,值得一提的是,该C2V_old信息与该C2V_new信息可以是CNU根据存储在minbuffer中的V2C信息的最小值计算出来的,也可以是该min buffer计算出来的。
在传统的解码器中,通常包含两个min buffer,分别用来储存该C2V_old信息与该C2V_new信息。因此在本实施例中,由于需要n个第一缓存和VNU来同时处理n个数据块,因此为有足够的空间来存储n个VNU计算所需的C2V_old信息与该C2V_new信息,需要相应的增加min buffer的数量,其规律可以为:在现有的两个min buffer的基础上,每增加一个需要并行处理的数据块,该min buffer的数量就增加一个minbuffer,用于存储新增加的VNU所需要的一个C2V_new。以此类推,当该待解码数据被分为n个数据块时,就需要n+1个minbuffer,相应的CNU就需要增加到n个输入来分别接收n个VNU发送的信息。
在步骤10342中,获取该V2C信息的判决结果,得到包括该V2C信息和该判决结果的该第二处理结果。
该n个VNU根据该n个第一处理结果和该n个C2V信息同时进行上述的步骤10341~10342就可以得到对应的n个第二处理结果。由此可见,当n的值越大,一个码字被分成的数据块就越多,在并行对这些数据块进行解码时,所用的时间就越短,解码器的带块就越高,而增加一些面积(求V2C信息最小值的逻辑每增加一个数据块所增加一个CNU的输入)的情况下(远没有加倍)使得带宽变为原来的n倍。
图4是根据一示例性实施例示出的一种解码器的示意图,参见图4,该解码器400包括:n个第一缓存,由于第一缓存用于存储的第一处理结果为LLR,因此可以将n个第一缓存分别标记为LLR0~LLRn,n+1个第二缓存(标记为min buffer 0~n+1),n个VNU0~VNUn和一个CNU;其中,由于上述结构可以并行处理n个数据块,因此该解码器的带宽为n,n为大于或者等于2的自然数,下面以n=2为例进行说明。
n=2时,该解码器400可以包括:2个第一缓存LLR0和LLR1,用于缓存根据第一校验矩阵以及待解码数据分成的2个数据块(bank),获取的这2个数据块对应的2个第一处理结果,即根据两个数据块得到的2个LLR,并将这2个LLR分别输入VNU0和VNU1。其中,该第一校验矩阵是根据n=2对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含2个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照前文所述的分布标准分布在这2个循环置换矩阵中,其具体的变换方法可以参照步骤103中所述的方法,不再赘述。
该解码器400中包含3个min buffer,用于缓存与这2个VNU对应的2个C2V信息(即用于VNU0计算的C2V_old信息与C2V_new信息和用于VNU1计算的C2V_old信息与C2V_new信息),并将这2个C2V信息分别输入VNU0和VNU1。
该VNU0和VNU1,用于根据上述2个LLR和上述2个C2V信息获取2个第二处理结果,这2个第二处理结果包括该VNU0和VNU1分别输出的VNU0的V2C信息和判决结果,以及VNU1的V2C信息和判决结果。
其中,根据上述2个LLR和上述2个C2V信息获取2个第二处理结果的方法可以参照图3所示的方法,不再赘述。
该CNU有两个输入,分别来自VNU0和VNU1,该CUN用于判断VNU0和VNU1的判决结果是否满足预设的校验条件;当满足该校验条件时确定这2个数据块的解码完成;当不满足该校验条件时获取VNU0和VNU1分别输入的V2C信息的最小值,得到VNU0的V2C信息的最小值,以及VNU1的V2C信息的最小值;
此时该3个min buffer,还用于缓存VNU0的V2C信息的最小值,以及VNU1的V2C信息的最小值,以及根据这些最小值获取的用于下一解码周期的与该VNU0和VNU1对应的2个C2V信息。
此时,该LLR0和LLR1,该3个min buffer,该VNU0和VNU1以及该CNU,还用于再次执行上述步骤,直至确定这2个数据块的解码完成。
综上所述,本公开所提供的数据处理方法,在获取待解码数据后,根据解码器的带宽,将该待解码数据分成n个数据块,并根据第一校验矩阵同时对该n个数据块进行解码;其中,该第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含n个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵。能够通过将待解码数据分成多个数据块同时进行解码处理,减少完成一次迭代的时间,增加解码器的带宽,进而增加解码效率,提高吞吐量。
图5是根据一示例性实施例示出的一种数据处理装置的框图,该数据处理处理装置500可以用于执行图1至图3任一所述的方法。参见图5,该数据处理装置500可以包括:至少一个处理器510,存储器520;
该存储器520用于存储至少一个程序模块;
该至少一个处理器510通过运行存储在该存储器的该至少一个程序模块用于:
获取待解码数据;
将该待解码数据分成n个数据块,其中n是根据解码器的带宽确定的,n为大于或者等于2的自然数;
根据该第一校验矩阵同时对该n个数据块进行解码,其中,该第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含n个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵。
可选的,该解码器包括n个变量节点单元VNU和第一校验节点单元CNU,该至少一个处理器510根据该第一校验矩阵同时对该n个数据块进行解码具体包括:
根据该第一校验矩阵以及该n个数据块,获取该n个数据块对应的n个第一处理结果;
将该n个第一处理结果分别输入到该n个VNU;
获取与该n个VNU对应的n个C2V信息并分别输入该n个VNU,该C2V信息为CNU传递给VNU的软信息;
利用该n个VNU根据该n个第一处理结果和该n个C2V信息获取n个第二处理结果,该n个第二处理结果包括该n个VNU输出的n个V2C信息和对应的n个判决结果,该V2C信息为VNU传递给CNU的软信息;
将该n个第二处理结果输入到该第一CNU中,利用该第一CNU根据该n个判决结果是否满足预设的校验条件;当满足该校验条件时确定该n个数据块的解码完成;当不满足该校验条件时获取该n个V2C信息的最小值;
根据该n个V2C信息获取用于下一解码周期的与该n个VNU对应的n个C2V信息,并再次执行该根据该第一校验矩阵以及该n个数据块,获取该n个数据块对应的n个第一处理结果至该根据该n个V2C信息的获取用于下一解码周期的与该n个VNU对应的n个C2V信息的步骤。
可选的,每个C2V信息中包括第一C2V信息和第二C2V信息,该至少一个处理器510利用该n个VNU根据该n个第一处理结果和该n个C2V信息获取n个第二处理结果具体用于:
在每个VNU中,将输入的第一处理结果减去该第一C2V信息后与该第二C2V信息相加,得到该V2C信息;
获取该V2C信息的判决结果,得到包括该V2C信息和该判决结果的该第二处理结果。
可选的,该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵,包括:
该原始校验矩阵的第i行中的非零子矩阵分布在该n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的该非零子矩阵的数量与其他循环置换矩阵的第i行中的该非零子矩阵的数量之差小于预设阈值。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
综上所述,本公开所提供的数据处理装置,在获取待解码数据后,根据解码器的带宽,将该待解码数据分成n个数据块,并根据第一校验矩阵同时对该n个数据块进行解码;其中,该第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,该第一校验矩阵中包含n个循环置换矩阵,且该原始校验矩阵中的非零子矩阵按照预设的分布标准分布在该n个循环置换矩阵。能够通过将待解码数据分成多个数据块同时进行解码处理,减少完成一次迭代的时间,增加解码器的带宽,进而增加解码效率,提高吞吐量。
以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,可以对本公开的技术方案进行多种简单变型,这些简单变型均属于本公开的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本公开对各种可能的组合方式不再另行说明。
此外,本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。
Claims (9)
1.一种数据处理方法,其特征在于,所述方法包括:
获取待解码数据;
将所述待解码数据分成n个数据块,其中n是根据解码器的带宽确定的,n为大于或者等于2的自然数;
根据第一校验矩阵同时对所述n个数据块进行解码,其中,所述第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,所述第一校验矩阵中包含n个循环置换矩阵,且所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵;
所述解码器包括n个变量节点单元VNU和第一校验节点单元CNU,所述根据第一校验矩阵同时对所述n个数据块进行解码,包括:
根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果;
将所述n个第一处理结果分别输入到所述n个VNU;
获取与所述n个VNU对应的n个C2V信息并分别输入所述n个VNU,所述C2V信息为CNU传递给VNU的软信息;
利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,所述n个第二处理结果包括所述n个VNU输出的n个V2C信息和对应的n个判决结果,所述V2C信息为VNU传递给CNU的软信息;
将所述n个第二处理结果输入到所述第一CNU中,利用所述第一CNU根据所述n个判决结果是否满足预设的校验条件;当满足所述校验条件时确定所述n个数据块的解码完成;当不满足所述校验条件时获取所述n个V2C信息的最小值;
根据所述n个V2C信息获取用于下一解码周期的与所述n个VNU对应的n个C2V信息,并再次执行所述根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果至所述根据所述n个V2C信息的获取用于下一解码周期的与所述n个VNU对应的n个C2V信息的步骤。
2.根据权利要求1所述的方法,其特征在于,每个C2V信息中包括第一C2V信息和第二C2V信息,所述利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,包括:
在每个VNU中,将输入的第一处理结果减去所述第一C2V信息后与所述第二C2V信息相加,得到所述V2C信息;
获取所述V2C信息的判决结果,得到包括所述V2C信息和所述判决结果的所述第二处理结果。
3.根据权利要求1-2任一项所述的方法,其特征在于,所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵,包括:
所述原始校验矩阵的第i行中的非零子矩阵分布在所述n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的所述非零子矩阵的数量与其他循环置换矩阵的第i行中的所述非零子矩阵的数量之差小于预设阈值。
4.一种解码器,其特征在于,所述解码器包括:n个第一缓存,n+1个第二缓存,n个变量节点单元VNU和一个第一校验节点单元CNU;其中,n是根据解码器的带宽确定的,n为大于或者等于2的自然数;
所述n个第一缓存,用于缓存根据第一校验矩阵以及待解码数据分成的n个数据块,获取的所述n个数据块对应的n个第一处理结果,并将所述n个第一处理结果输入所述n个VNU;所述第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,所述第一校验矩阵中包含n个循环置换矩阵,且所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵;
所述n+1个第二缓存,用于缓存与所述n个VNU对应的n个C2V信息,并将所述n个C2V信息输入所述n个VNU;
所述n个VNU,用于利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,所述n个第二处理结果包括所述n个VNU输出的n个V2C信息和对应的n个判决结果,所述V2C信息为VNU传递给CNU的软信息;
所述第一CNU,用于将将所述n个第二处理结果输入到所述第一CNU中,利用所述第一CNU根据所述n个判决结果是否满足预设的校验条件;当满足所述校验条件时确定所述n个数据块的解码完成;当不满足所述校验条件时获取所述n个V2C信息的最小值;
所述n+1个第二缓存,还用于缓存根据所述n个V2C信息获取的用于下一解码周期的与所述n个VNU对应的n个C2V信息;
所述n个第一缓存,所述n+1个第二缓存,所述n个VNU以及所述第一CNU,还用于再次执行所述根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果至所述缓存根据所述n个V2C信息获取的用于下一解码周期的与所述n个VNU对应的n个C2V信息的步骤。
5.根据权利要求4所述的解码器,其特征在于,每个C2V信息中包括第一C2V信息和第二C2V信息,所述n个VNU具体用于:
在每个VNU中,将输入的第一处理结果减去所述第一C2V信息后与所述第二C2V信息相加,得到所述V2C信息;
获取所述V2C信息的判决结果,得到包括所述V2C信息和所述判决结果的所述第二处理结果。
6.根据权利要求4或5任一项所述的解码器,其特征在于,所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵,包括:
所述原始校验矩阵的第i行中的非零子矩阵分布在所述n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的所述非零子矩阵的数量与其他循环置换矩阵的第i行中的所述非零子矩阵的数量之差小于预设阈值。
7.一种数据处理装置,其特征在于,所述装置包括:至少一个处理器,存储器;
所述存储器用于存储至少一个程序模块;
所述至少一个处理器通过运行存储在所述存储器的所述至少一个程序模块用于:
获取待解码数据;
将所述待解码数据分成n个数据块,其中n是根据解码器的带宽确定的,n为大于或者等于2的自然数;
根据所述第一校验矩阵同时对所述n个数据块进行解码,其中,所述第一校验矩阵是根据n的值对原始校验矩阵进行行列变换后得到的矩阵,所述第一校验矩阵中包含n个循环置换矩阵,且所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵;
所述解码器包括n个变量节点单元VNU和第一校验节点单元CNU,所述至少一个处理器根据所述第一校验矩阵同时对所述n个数据块进行解码具体包括:
根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果;
将所述n个第一处理结果分别输入到所述n个VNU;
获取与所述n个VNU对应的n个C2V信息并分别输入所述n个VNU,所述C2V信息为CNU传递给VNU的软信息;
利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果,所述n个第二处理结果包括所述n个VNU输出的n个V2C信息和对应的n个判决结果,所述V2C信息为VNU传递给CNU的软信息;
将所述n个第二处理结果输入到所述第一CNU中,利用所述第一CNU根据所述n个判决结果是否满足预设的校验条件;当满足所述校验条件时确定所述n个数据块的解码完成;当不满足所述校验条件时获取所述n个V2C信息的最小值;
根据所述n个V2C信息获取用于下一解码周期的与所述n个VNU对应的n个C2V信息,并再次执行所述根据所述第一校验矩阵以及所述n个数据块,获取所述n个数据块对应的n个第一处理结果至所述根据所述n个V2C信息的获取用于下一解码周期的与所述n个VNU对应的n个C2V信息的步骤。
8.根据权利要求7所述的装置,其特征在于,每个C2V信息中包括第一C2V信息和第二C2V信息,所述至少一个处理器利用所述n个VNU根据所述n个第一处理结果和所述n个C2V信息获取n个第二处理结果具体用于:
在每个VNU中,将输入的第一处理结果减去所述第一C2V信息后与所述第二C2V信息相加,得到所述V2C信息;
获取所述V2C信息的判决结果,得到包括所述V2C信息和所述判决结果的所述第二处理结果。
9.根据权利要求7或8任一项所述的装置,其特征在于,所述原始校验矩阵中的非零子矩阵按照预设的分布标准分布在所述n个循环置换矩阵,包括:
所述原始校验矩阵的第i行中的非零子矩阵分布在所述n个循环置换矩阵的第i行中,且任一循环置换矩阵的第i行中的所述非零子矩阵的数量与其他循环置换矩阵的第i行中的所述非零子矩阵的数量之差小于预设阈值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058857.2A CN106911337B (zh) | 2017-01-23 | 2017-01-23 | 数据处理方法、装置和解码器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710058857.2A CN106911337B (zh) | 2017-01-23 | 2017-01-23 | 数据处理方法、装置和解码器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106911337A CN106911337A (zh) | 2017-06-30 |
CN106911337B true CN106911337B (zh) | 2020-06-09 |
Family
ID=59207837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710058857.2A Active CN106911337B (zh) | 2017-01-23 | 2017-01-23 | 数据处理方法、装置和解码器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106911337B (zh) |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8127209B1 (en) * | 2007-07-30 | 2012-02-28 | Marvell International Ltd. | QC-LDPC decoder with list-syndrome decoding |
US20090049357A1 (en) * | 2007-08-16 | 2009-02-19 | Yeong-Luh Ueng | Decoding Method for Quasi-Cyclic Low-Density Parity-Check Codes and Decoder for The Same |
CN101800559B (zh) * | 2010-03-11 | 2013-02-27 | 复旦大学 | 一种基于tdmp的高速可配置qc-ldpc码解码器 |
CN101771421B (zh) * | 2010-03-11 | 2012-10-17 | 复旦大学 | 基于tdmp的超高速低功耗qc-ldpc码解码器 |
CN102064837B (zh) * | 2010-12-24 | 2013-01-23 | 西安电子科技大学 | 基于fifo分段存储的qc-ldpc码部分并行译码方法 |
CN102281125B (zh) * | 2011-07-29 | 2013-07-17 | 上海交通大学 | 分层分块非规则低密度校验码译码器及译码方法 |
EP2790327B1 (en) * | 2011-12-30 | 2016-08-24 | Huawei Technologies Co., Ltd. | Adaptive coding using time-varying periodic ldpc convolutional codes based on quasi-cyclic ldpc block codes |
CN102594369B (zh) * | 2012-02-27 | 2014-06-04 | 西安电子科技大学 | 基于fpga的准循环低密度校验码译码器及译码方法 |
-
2017
- 2017-01-23 CN CN201710058857.2A patent/CN106911337B/zh active Active
Non-Patent Citations (2)
Title |
---|
"Density Evolution for Two Improved BP-Based Decoding Algorithms of LDPC Codes";Chen Jinghu等;《IEEE Communications Letters》;20020331;第6卷(第5期);第208页到第210页 * |
"Reduced-complexity Decoding of LDPC Codes";Chen Jinghu等;《IEEE Trans. on Communications》;20051231;第53卷(第8期);第1288页到第1299页 * |
Also Published As
Publication number | Publication date |
---|---|
CN106911337A (zh) | 2017-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7373581B2 (en) | Device, program, and method for decoding LDPC codes | |
JP4389373B2 (ja) | 2元巡回符号を反復型復号するための復号器 | |
Keskin et al. | GPU accelerated gigabit level BCH and LDPC concatenated coding system | |
US8572463B2 (en) | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size | |
US20110010602A1 (en) | Method and apparatus for performing decoding using ldpc code | |
US8869003B2 (en) | Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix | |
CN108183713B (zh) | 基于改进型最小和算法的ldpc译码器及其译码方法 | |
US20090113256A1 (en) | Method, computer program product, apparatus and device providing scalable structured high throughput LDPC decoding | |
KR20170097580A (ko) | 폴라 코딩 장치 | |
Lin et al. | High throughput LDPC decoder on GPU | |
Yuan et al. | LLR-based successive-cancellation list decoder for polar codes with multibit decision | |
CN107852176A (zh) | Ldpc码编码器和译码器 | |
KR20110124659A (ko) | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 계층적 복호 장치 및 방법 | |
JP5631846B2 (ja) | 半導体メモリ装置および復号方法 | |
KR101657912B1 (ko) | 비이진 저밀도 패리티 검사 코드의 복호화 방법 | |
Yuan et al. | 4.7-Gb/s LDPC Decoder on GPU | |
US10554226B2 (en) | Method for controlling a check node of a NB-LDPC decoder and corresponding check node | |
Cheng et al. | Encoder and list decoder of Reed-Solomon kernel based polar codes | |
KR20160002946A (ko) | 10gbase-t 시스템에서 ldpc 인코더의 방법 및 장치 | |
US9037938B2 (en) | Hardware architecture and implementation of low power layered multi-level LDPC decoder | |
KR101307733B1 (ko) | 블록 레이어 기반의 비 이진 qc-ldpc 부호의 복호 장치 및 그 방법 | |
CN106911337B (zh) | 数据处理方法、装置和解码器 | |
CN113595564A (zh) | 基于信息截断的低复杂度多进制ldpc码译码器装置 | |
Kakde et al. | FPGA implementation of decoder architectures for high throughput irregular LDPC codes | |
Garcia-Herrero et al. | Architecture of generalized bit-flipping decoding for high-rate non-binary LDPC codes |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20190809 Address after: 518067 Dongjiaotou Workshop D24/F-02, Houhai Avenue, Shekou Street, Nanshan District, Shenzhen City, Guangdong Province Applicant after: Shenzhen Yi Lian Information System Co., Ltd. Address before: 100176 Beijing City, Daxing District branch of Beijing economic and Technological Development Zone, fourteen Street No. 99 building 33 building D No. 2226 Applicant before: Beijing legend core technology Co., Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |