数据处理方法及译码器与流程

文档序号:12690715阅读:268来源:国知局
数据处理方法及译码器与流程

本发明涉及数据处理领域,具体地,涉及一种数据处理方法及译码器。



背景技术:

目前,QC-LDPC(Quasi-Cyclic Low Density Parity Check Code,准循环低密度奇偶校验码)译码的主流是分层译码,其中,上一层的迭代输出消息会马上用作下一层的输入。

具体地,分层算法的核心在于将所有校验节点按照QC-LDPC码的代数结构分组,然后采取组内并行,组间串行的方式来更新校验节点和变量节点的消息,从而实现了组间运算的硬件资源复用。但是,分层算法在所有层的更新全部完成以后,需要判别译码结果是否正确,即进行校验运算。如果校验成功则判断译码成功,否则判断失败,重新开始新一轮的迭代更新。

现有技术中,消息更新和结果校验的操作是顺序递进的,即在每一轮译码中,消息更新执行完毕后,进行结果校验,本轮结果校验有误,再开始下一轮译码。

由上述过程可知,现有分层译码的译码效率较低。



技术实现要素:

本发明的主要目的是提供一种数据处理方法及译码器,用以解决现有译码技术译码效率低下的技术问题。

为了实现上述目的,本发明第一方面提供一种数据处理方法,所述方法应用于译码器,所述译码器根据校验矩阵中的每一行对接收到的编码信号进行迭代译码,所述方法包括:

根据所述校验矩阵中的第一行进行节点更新运算,其中,所述第一行是所述校验矩阵中除最后一行以外的任一行;

在所述节点更新运算完成后,对更新后的节点进行校验运算;

在进行所述校验运算时,并行根据所述校验矩阵的第二行进行下一次节点更新运算,所述第二行是所述第一行的下一行。

可选地,所述在所述节点更新运算完成后,对更新后的节点进行校验运算,包括:

在所述节点更新运算与所述校验运算之间建立流水线结构;

基于所述流水线结构在所述节点更新运算完成后,对更新后的节点进行校验运算。

可选地,所述在所述节点更新运算完成后,对更新后的节点进行校验运算,包括:

在所述节点更新运算对n个节点进行更新后,对部分或者全部的所述n个节点进行所述校验运算。

可选地,所述对更新后的节点进行校验运算,包括:

将所述节点更新运算得到的译码结果和码的校验矩阵相乘,得到相乘结果;

判断所述相乘结果是否为全零矩阵,若所述相乘结果为全零矩阵,则确定校验成功,若所述相乘结果非全零矩阵,则确定校验失败。

可选地,所述方法还包括:在完成所有的校验运算后,若任一次校验发生失败,则根据本次译码结果进行下一次译码,直到所有校验均成功。

本发明第二方面提供一种译码器,包括:控制装置和运算装置;

所述运算装置用于,根据所述校验矩阵中的第一行进行节点更新运算,其中,所述第一行是所述校验矩阵中除最后一行以外的任一行;并在所述节点更新运算完成后,对更新后的节点进行校验运算;

所述控制装置用于,控制所述运算装置在进行所述校验运算时,并行根据所述校验矩阵的第二行进行下一次节点更新运算,所述第二行是所述第一行的下一行。

可选地,所述控制装置用于,在所述节点更新运算与所述校验运算之间建立流水线结构;

所述运算装置用于,基于所述流水线结构在所述节点更新运算完成后,对更新后的节点进行校验运算。

可选地,所述运算装置用于,在所述节点更新运算对n个节点进行更新后,对部分或者全部的所述n个节点进行所述校验运算。

可选地,所述运算装置用于,将所述节点更新运算得到的译码结果和码的校验矩阵相乘,得到相乘结果;判断所述相乘结果是否为全零矩阵,若所述相乘结果为全零矩阵,则确定校验成功,若所述相乘结果非全零矩阵,则确定校验失败。

可选地,所述运算装置还用于:在完成所有的校验运算后,若任一次校验发生失败,则根据本次译码结果进行下一次译码,直到所有校验均成功。

采用上述技术方案至少可以达到如下技术效果:对于相邻两层,上一层的校验运算与下一层的节点更新运算并行执行,相比现有技术在每一层的节点更新运算完成后才执行校验运算,本发明中校验运算与节点更新运算同时进行,从而缩短了译码时间,并且,节点更新运算占用的资源在完成节点更新运算后可以用于校验运算,从而提高了资源利用率。

本发明的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:

图1为现有技术中译码流程的示意图;

图2为本发明实施例提供的一种数据处理方法的流程示意图;

图3为本发明实施例提供的基于图2所示方法的译码流程的示意图;

图4为本发明实施例提供的一种译码器的结构示意图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

为了便于本领域技术人员更容易理解本发明实施例提供的技术方案,下面对现有相关技术进行简单说明。

图1是现有技术中分层译码的示意图,如图所示,包括第1至第M轮多轮译码,每一轮译码中,从第1层到最后一层依次进行节点更新运算,每一层的节点更新运算执行完成后,开始对译码结果进行校验运算。由于校验译码结果的运算量也很大,现有技术对于将校验运算分成串行的N次来完成。N越大对资源的消耗越少,速度越慢。其中,N的取值与译码层数无关,具体可以衡量资源消耗量和运行速度设定。若N次校验运算中存在校验失败,则表明本轮译码中存在节点未正确更新,因此,可以基于目前的译码结果进行下一轮译码,直到第M轮,所有节点正确更新,每一次的校验运算均校验成功。

由图1可知,现有技术中,每一轮节点更新运算与校验运算顺序执行,时间消耗过高,并且,每一层更新占用的资源在节点更新完成后处于空闲状态,资源利用率低下。

本发明实施例提供一种数据处理方法,所述方法应用于译码器,所述译码器根据校验矩阵中的每一行对接收到的编码信号进行迭代译码,如图2所示,该方法包括:

S201、根据所述校验矩阵中的第一行进行节点更新运算,其中,所述第一行是所述校验矩阵中除最后一行以外的任一行;

S202、在所述节点更新运算完成后,对更新后的节点进行校验运算;

S203、在进行所述校验运算时,并行根据所述校验矩阵的第二行进行下一次节点更新运算,所述第二行是所述第一行的下一行。

也就是说,对于相邻两层,上一层的校验运算与下一层的节点更新运算并行执行,相比现有技术在每一层的节点更新运算完成后才执行校验运算,本发明中校验运算与节点更新运算同时进行,从而缩短了译码时间,并且,节点更新运算占用的资源在完成节点更新运算后可以用于校验运算,从而提高了资源利用率。

为了使本领域技术人员更加理解本发明实施例提供的技术方案,下面对上述方法步骤进行详细说明。

示例地,下表1是QC-LDPC码校验矩阵相邻的三行,其中,留空的位置对应全0子矩阵,非负整数对应单位子阵的循环移位。译码器分层译码即是指利用校验矩阵中的每一行依次对变量节点进行更新的操作。

表1

在表1示出的校验矩阵中,上述方法步骤中所述的第一行即为不包括第3行的任一行。下面基于表1示出的校验矩阵举例说明步骤S201中所述的节点更新运算。

校验矩阵每一行中的非负整数为该行的校验节点,与每一个校验节点同一列的偏移地址表示该校验节点对应的变量节点。这样,针对校验矩阵的第一列(即第一层),变量节点0对应校验节点102、变量节点2对应校验节点0、变量节点7对应校验节点54、变量节点10对应校验节点0,变量节点12对应校验节点65。则第一层的节点更新运算包括:依次从变量节点0、2、7、10、12读取变量节点信息,读取到变量节点信息后,根据变量节点信息得到更新后的校验节点信息,即V2C。进一步地,在得到更新后的校验节点信息后,依次对变量节点进行更新,即C2V。

进一步地,上述步骤S202对更新后的节点进行校验运算包括:将所述节点更新运算得到的译码结果和码的校验矩阵相乘,得到相乘结果;判断所述相乘结果是否为全零矩阵,若所述相乘结果为全零矩阵,则确定校验成功,若所述相乘结果非全零矩阵,则确定校验失败。

值得说明的是,对于某一节点的校验可能需要使用到其他节点进行运算,在其他节点未更新或者未正确更新的情况下,对于该节点进行的校验也会发生失败,在任一次校验发生失败时,可以进行下一轮的译码,直到所有节点正确更新。

具体地,在上述步骤S202中,在本发明实施例可以通过在所述节点更新运算与所述校验运算之间建立流水线结构,从而使得译码器基于所述流水线结构在所述节点更新运算完成后,对更新后的节点进行校验运算。

下面基于图3举例说明上述步骤S203。其中,在图3所示的译码流程中,针对每一轮译码,第一层节点更新运算后,并行执行译码结果校验运算第1步以及第2层节点更新运算,再并行执行译码结果校验运算第2步以及第3层节点更新运算,直到并行执行译码结果校验运算最后一步以及最后一层节点更新运算,从而减少了每一轮译码的时间。

值得说明的是,由于对于某一节点的校验可能需要使用到其他节点进行运算,在其他节点未更新或者未正确更新的情况下,对于该节点进行的校验也会发生失败,而本发明实施例提供在其他节点未更新时,即开始进行校验运算,因此,译码成功至少进行两轮,也就是说,第一轮节点更新全部正确,第二轮对更新后的节点进行校验全部正确。

对照图1和图3所示的方法流程,图1所示的译码过程在经过M轮译码后对所有节点正确更新,因此,第M轮的N步校验运算均检验成功。相应地,图3所示的译码过程在经过第M轮译码后,所有节点也应全部更新成功,但是由于节点更新运算与校验运算并行执行,因此,导致后面的节点还未更新,前面的校验运算已经应用到后面的节点进行校验运算,致使校验失败。例如,第M轮的总共L层节点更新中,最后的一次会改写译码结果的更新处于第K层,其中,K<=L。第K层更新实际改写的节点集合为{v1,v2,...,vj},共j个节点。那么前K-1层对应的结果校验中,必然有某些校验方程的输入是错误的,导致校验失败。故采用本发明实施例提供的方法,第M轮的结果校验步骤会输出失败,流程进入第M+1轮的迭代。

由于译码算法能够保证对正确的译码结果继续做迭代,不会把正确结果变成错误结果。因此第M轮节点更新全部成功后,在第M+1轮中,所有校验结果均会成功,从而输出正确的译码结果。

下面比较图1所示的译码流程和图3所示的译码流程的译码耗时。

若一层的节点更新和结果校验的耗时均为T,QC-LDPC码的层数为L,需要M轮迭代成功。则现有技术中译码总耗时为:2*T*L*M,本发明实施例提供的数据处理方法总耗时为:TL(M+1)。显然,随着迭代轮数的增加,本发明实施例能够节约的时间也会更加显著。

值得说明的是,上述只是举例说明,在具体实施时,校验步数可以不等于层数,也就是说,校验步数的划分不受层数的影响。在本发明实施例的一种可能的实现方式中,上述步骤S202包括:在所述节点更新运算对n个节点进行更新后,对部分或者全部的所述n个节点进行所述校验运算。也就是说,每一层节点更新运算后,校验运算可以对所有已经更新的节点进行校验,也可以是对部分更新后的节点进行运算,剩余部分的已经更新节点可以在下一步校验运算中进行校验。具体可以根据实际需求进行设定。

采用上述方法,译码器在接收到编码信号后,根据校验矩阵分层对编码信号迭代译码,在对每一层进行节点更新后,并行执行对已更新的节点的校验运算以及下一层的节点更新运算,因此,相比现有技术,本发明实施例每一轮译码大约节省一半的时间,提高了译码效率。

本发明实施例还提供一种译码器40,用于实施上述方法实施例提供的数据处理方法,如图4所示,该译码器40包括:运算装置401和控制装置402;

所述运算装置401用于,根据所述校验矩阵中的第一行进行节点更新运算,其中,所述第一行是所述校验矩阵中除最后一行以外的任一行;并在所述节点更新运算完成后,对更新后的节点进行校验运算;

所述控制装置402用于,控制所述运算装置401在进行所述校验运算时,并行根据所述校验矩阵的第二行进行下一次节点更新运算,所述第二行是所述第一行的下一行。

可选地,所述控制装置402用于,在所述节点更新运算与所述校验运算之间建立流水线结构;所述运算装置401用于,基于所述流水线结构在所述节点更新运算完成后,对更新后的节点进行校验运算。

可选地,所述运算装置401用于,在所述节点更新运算对n个节点进行更新后,对部分或者全部的所述n个节点进行所述校验运算。

可选地,所述运算装置401用于,将所述节点更新运算得到的译码结果和码的校验矩阵相乘,得到相乘结果;判断所述相乘结果是否为全零矩阵,若所述相乘结果为全零矩阵,则确定校验成功,若所述相乘结果非全零矩阵,则确定校验失败。

可选地,所述运算装置401还用于:在完成所有的校验运算后,若任一次校验发生失败,则根据本次译码结果进行下一次译码,直到所有校验均成功。

所属本领域的技术人员应该清楚地了解到,为描述的方便和简洁,上述描述的各装置的具体工作过程,可以参考前述方法实施例中对应的过程,此处不再赘述。

另外,图4只是译码器的示意图,在具体实施时,该译码器还可以包括其他部件,例如存储器,用于存储迭代过程中不断更新的变量节点的信息,以及校验节点传送给变量节点的信息。本发明对此不作限定。

采用上述译码器,该译码器在接收到编码信号后,根据校验矩阵分层对编码信号迭代译码,对于相邻两层,上一层的校验运算与下一层的节点更新运算并行执行,相比现有技术在每一层的节点更新运算完成后才执行校验运算,本发明中校验运算与节点更新运算同时进行,从而缩短了译码时间,并且,节点更新运算占用的资源在完成节点更新运算后可以用于校验运算,从而提高了资源利用率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

具体来讲,本申请实施例中的信息处理方法对应的计算机程序指令可以被存储在光盘,硬盘,U盘等存储介质上,当存储介质中的与操作引导方法对应的计算机程序指令被一电子设备读取或被执行时,包括如下步骤:

根据校验矩阵中的第一行进行节点更新运算,其中,所述第一行是所述校验矩阵中除最后一行以外的任一行;

在所述节点更新运算完成后,对更新后的节点进行校验运算;

在进行所述校验运算时,并行根据所述校验矩阵的第二行进行下一次节点更新运算,所述第二行是所述第一行的下一行。

可选地,所述在所述节点更新运算完成后,对更新后的节点进行校验运算,包括:

在所述节点更新运算与所述校验运算之间建立流水线结构;

基于所述流水线结构在所述节点更新运算完成后,对更新后的节点进行校验运算。

可选地,所述在所述节点更新运算完成后,对更新后的节点进行校验运算,包括:

在所述节点更新运算对n个节点进行更新后,对部分或者全部的所述n个节点进行所述校验运算。

可选地,所述对更新后的节点进行校验运算,包括:

将所述节点更新运算得到的译码结果和码的校验矩阵相乘,得到相乘结果;

判断所述相乘结果是否为全零矩阵,若所述相乘结果为全零矩阵,则确定校验成功,若所述相乘结果非全零矩阵,则确定校验失败。

可选地,所述方法还包括:在完成所有的校验运算后,若任一次校验发生失败,则根据本次译码结果进行下一次译码,直到所有校验均成功。

尽管已描述了本发明的优选实施例,但本领域内的普通技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本发明的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1