基于DVB-S2译码器的桶形移位器处理方法及桶形移位器
技术领域
本申请涉及计算机技术领域,具体涉及一种基于DVB-S2译码器的桶形移位器处理方法及桶形移位器。
背景技术
DVB-S2标准为全球应用最广泛的第二代数字电视广播卫星标准。DVB-S2中采用的LDPC码为是一种适合卫星通信系统的信道纠错码方案。DVB-S2译码器的算法主要分为硬判决和软判决译码,硬判决译码具有较低的复杂度但性能差,软判决译码算法复杂度高但性能好,大部分卫星通信终端都使用软判决译码。其中MP算法应用最多,其中置信传播算法BP译码复杂度在MP算法中最高,性能也最好。算法的核心思想是:Tanner图中信息沿着边双向传输,在每次迭代过程中,先由变量节点将更新后的外部似然信息传递给与之相连的校验节点(除去上次迭代沿着这条边传递给变量节点的信息),然后校验节点将它的信息传递给变量节点。校验节点的信息指的是在满足校验方程的条件下,此校验方程中的其他变量节点对该变量节点的估计。然后每个变量节点根据这些传入的信息进行更新,重复上述过程进行迭代。每次迭代结束的时候要对每个变量节点进行硬判决,用校验方程验证是否正确码字,如果是,则译码结束,否则继续迭代至最大迭代次数。每条边上的信息都是外信息,最大可能排除了相关性。但是如果Tanner图中有环存在,传递信息的相关性就是不可避免的,所以构造LDPC码时,要避免短环的存在,并且最短环长的环个数越少,译码性能越好。DVB-S2的最小环长是6,并且数目尽量少。由于DVB-S2译码器由于码长较长,逻辑实现时适合采用部分并行架构,部分并行架构中实现最复杂的主要包括IO控制器、桶形移位器和CN更新模块。
然而,相关的桶形移位器仅能够按照一种并行度进行移位处理,存在对并行度的兼容性差的问题,从而无法按照多种并行度进行移位处理;同时,相关的桶形移位器因移位处理需要实时计算还存在移位处理速度慢,效率低的问题。
发明内容
为了解决上述至少一个技术问题,本申请提供一种基于DVB-S2译码器的桶形移位器处理方法、桶形移位器、终端及介质。
根据本申请的第一方面,提供了一种基于DVB-S2译码器的桶形移位器处理方法,该方法包括:
获取需要进行移位处理的目标节点的节点信息;
基于预先选定的折叠因子,确定并行度;
确定并行度对应的移位计算模型;
依据移位计算模型对节点信息进行移位处理,以使DVB-S2译码器的桶形移位器完成对目标节点的节点信息的移位处理。
根据本申请的第二方面,提供了一种基于DVB-S2译码器的桶形移位器,该桶形移位器包括:
节点信息获取模块,用于获取需要进行移位处理的目标节点的节点信息;
并行度确定模块,用于基于预先选定的折叠因子,确定并行度;
计算模块确定模块,用于确定并行度对应的移位计算模型;
节点移位处理模块,用于依据移位计算模型对节点信息进行移位处理,以使DVB-S2译码器的桶形移位器完成对目标节点的节点信息的移位处理。
根据本申请的第三方面,提供了一种终端,该终端包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时以实现上述基于DVB-S2译码器的桶形移位器处理方法。
根据本申请的第四方面,提供了一种计算机可读存储介质,该介质存储有计算机可执行指令,该计算机可执行指令用于以执行上述基于DVB-S2译码器的桶形移位器处理方法。
本申请通过获取需要进行移位处理的目标节点的节点信息,并在基于预先选定的折叠因子,确定并行度的基础上,确定并行度对应的移位计算模型,以依据移位计算模型对节点信息进行移位处理,以完成DVB-S2译码器的桶形移位器对目标节点的移位处理,这种通过预先设定的折叠因子来确定并行度的方式,起到了关联折叠因子和并行度的效果,达到了扩大DVB-S2译码器对并行度的兼容性目的;同时因直接利用移位计算模型,缩短了移位计算的时间,从而提高了移位处理效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1为本申请实施例提供的一种基于DVB-S2译码器的桶形移位器处理方法的流程示意图;以及
图2为本申请实施例提供的一种基于DVB-S2译码器的桶形移位器的框图结构示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
首先对本申请涉及的几个名词进行介绍和解释:
在本申请实施例中,并行度是指DVB-S2译码器并行执行的指令或数据的最大数目。
在本申请实施例中,桶形移位器是一种组合逻辑电路,通常作为微处理器CPU的一部分。它具有n个数据输入和n个数据输出,以及指定如何移动数据的控制输入,指定移位方向、移位类型(循环、算术还是逻辑移位)及移动的位数等等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
根据本申请的一个实施例,提供了一种基于DVB-S2译码器的桶形移位器处理方法,如图1所示,该方法包括步骤S101至步骤S104。
步骤S101:获取需要进行移位处理的目标节点的节点信息。
具体地,桶形移位器获取需要进行移位处理的目标节点的节点信息。
具体地,目标节点可以为校验节点,也可以为变量节点。更具体地,桶形移位器可以在需要进行移位处理时,通过针对校验节点的接口和针对变量节点的接口,来获取需要进行移位处理的节点信息;也可以预先通过针对校验节点的接口和针对变量节点的接口,获取到全部需要进行移位处理的目标节点的节点信息。
步骤S102:基于预先选定的折叠因子,确定并行度。
在本申请实施例中,折叠因子用于表征对移位处理所采用的并行度。
具体地,可以通过折叠因子和并行度的对应关系来进行查询,以确定预先选定的折叠因子对应的并行度。其中,折叠因子一般通过Foldfactor表示。例如,若Foldfactor为1,那么并行度为360;若Foldfactor为2,那么并行度为180;若Foldfactor为3,那么并行度为120;若Foldfactor为4,那么并行度为90。
需要说明的是,折叠因子与并行度的对应关系包括但不限于上述设定,实际应用时,可以根据需要进行设定。
具体地,一般通过输入命令的方式来设置DVB-S2译码器的IO控制器预选选定的折叠因子,以使DVB-S2译码器的桶形移位器通过预设接口获取DVB-S2译码器的IO控制器发送的所选定的折叠因子,从而使得DVB-S2译码器的桶形移位器根据该折叠因子来执行移位处理。
步骤S103:确定并行度对应的移位计算模型。
具体地,不同的并行度进行移位操作所采用的算法不同。
步骤S104:依据移位计算模型对节点信息进行移位处理,以使DVB-S2译码器的桶形移位器完成对目标节点的节点信息的移位处理。
本申请通过获取需要进行移位处理的目标节点的节点信息,并在基于预先选定的折叠因子,确定并行度的基础上,确定并行度对应的移位计算模型,以依据移位计算模型对节点信息进行移位处理,以通过DVB-S2译码器的桶形移位器完成对目标节点的移位处理,这种通过预先设定的折叠因子来确定并行度的方式,起到了关联折叠因子和并行度的效果,达到了扩大DVB-S2译码器对并行度的兼容性目的;同时因直接利用移位计算模型,缩短了移位计算的时间,从而提高了移位处理的效率。
在一些实施例中,如图1所示,步骤S101包括:
步骤S1011(图中未示出):确定当前时间点需要进行移位处理的目标节点;
步骤S1012(图中未示出):依据目标节点对应的ROM模块,获取目标节点的节点信息。
具体地,可以通过移位信号控制参数first_half来确定目标节点。例如,若first_half的值为1,可以将变量节点作为目标节点;或者,若first_half的值为0,将变量节点作为目标节点。
在一些实施例中,步骤S1011包括以下至少一个步骤:
若当前时间点在迭代时长的前半段时间内,则将变量节点确定为目标节点;
若当前时间点在迭代时长的后半段时间内,则将校验节点确定为目标节点。
具体地,可以通过确定DVB-S2译码器的桶形移位器的移位信号控制参数first_half的参数值来确定当前时间点所处的时间段。
具体地,一般通过预设的first_half来表示迭代时长的前半段时间和后半段时间,即通过first_half的参数来控制对节点的读取。例如,若first_half的值为1,表示当前时间点为迭代时长的前半段时间;若first_half的值为0,表示当前时间点为迭代时长的后半段时间;或者若first_half的值为0,表示当前时间点为迭代时长的后半段时间;若first_half的值为1,表示当前时间点为迭代时长的前半段时间。需要说明的是,还可以根据业务需要设置其他值来确定对校验节点、变量节点的采集时间段。
应用前,通过DVB-S2译码器的桶形移位器的移位信号控制参数first_half进行配置,以设置迭代时长的前半段时间的参数和迭代时长的后半段时间的参数,从而根据这两个参数来当前需要移位处理的目标节点为校验节点,还是变量节点。
在一些实施例中,在步骤S102的步骤之前,该方法还包括:
将预设的多个折叠因子上报至DVB-S2译码器的IO控制器,以通过DVB-S2译码器的IO控制器来设置选定的折叠因子。
具体地,可以DVB-S2译码器的IO控制器以供用户执行选定操作。例如,通过命令向DVB-S2译码器的IO控制器输入所选的折叠因子。
在一些实施例中,移位计算模型包括:
多个移位值范围;以及
多个移位值范围与DVB-S2译码器的桶形移位器的各级数据选择器分别对应的移位参数。
具体地,并行度360对应的移动计算模型如下表1。
表1
具体地,并行度180对应的移动计算模型如下表2。
表2
具体地,并行度120对应的移动计算模型如下表3。
表3
具体地,并行度90对应的移动计算模型如下表4。
表4
在一些实施例中,步骤S104进一步包括:
将节点信息分别与多个移位值范围分别进行匹配,得到与节点信息匹配的目标移位值范围;
依据目标移位值范围对应的与DVB-S2译码器的桶形移位器的各级数据选择器分别对应的移位参数,确定DVB-S2译码器的桶形移位器的移位结果。
具体地,通过将节点信息在上述表1至表4中的查询,缩短了计算移位结果的时间,缩短了确定移位结果的速度。
在一些实施例中,该方法还包括:
步骤S105(图中未示出):检测到目标节点完成移位处理时,执行反向移位处理的操作。
在本申请实施例中,反向移位处理是与目标节点的移位方向相反的方向进行移位处理的技术。
具体地,若目标节点为变量节点,对目标节点的移位处理为从变量节点至校验节点的方向,那么反向移位处理为为校验节点至变量节点的方向。
本申请的又一实施例提供了一种基于DVB-S2译码器的桶形移位器,如图2所示,该桶形移位器20包括:节点信息获取模块201、并行度确定模块202、计算模块确定模块203以及节点移位处理模块204。
节点信息获取模块201,用于获取需要进行移位处理的目标节点的节点信息;
并行度确定模块202,用于基于预先选定的折叠因子,确定并行度;
计算模块确定模块203,用于确定并行度对应的移位计算模型;
节点移位处理模块204,用于依据移位计算模型对节点信息进行移位处理,以使DVB-S2译码器的桶形移位器完成对目标节点的节点信息的移位处理。
本申请通过获取需要进行移位处理的目标节点的节点信息,并在基于预先选定的折叠因子,确定并行度的基础上,确定并行度对应的移位计算模型,以依据移位计算模型对节点信息进行移位处理,以完成DVB-S2译码器的桶形移位器对目标节点的移位处理,这种通过预先设定的折叠因子来确定并行度的方式,起到了关联折叠因子和并行度的效果,达到了扩大DVB-S2译码器对并行度的兼容性目的;同时因直接利用移位计算模型,缩短了移位计算的时间,从而提高了移位处理效率。
进一步地,节点信息获取模块包括:
目标节点确定子模块,用于确定当前时间点需要进行移位处理的目标节点;
节点信息读取子模块,用于依据目标节点对应的ROM模块,获取目标节点的节点信息。
进一步地,目标节点确定子模块包括以下至少一个单元:
第一确定单元,用于若当前时间点在迭代时长的前半段时间内,则将变量节点确定为目标节点;
第二确定单元,用于若当前时间点在迭代时长的后半段时间内,则将校验节点确定为目标节点。
进一步地,基于预先选定的折叠因子,确定并行度之前,并行度确定模块还包括:
折叠因子上报子模块,用于将预设的多个折叠因子上报至DVB-S2译码器的IO控制器,以从DVB-S2译码器的IO控制器来获取预先选定的折叠因子。
进一步地,移位计算模型包括:
多个移位值范围;以及
多个移位值范围与DVB-S2译码器的桶形移位器的各级数据选择器分别对应的移位参数。
进一步地,节点移位处理模块包括:
节点信息匹配子模块,用于将节点信息分别与多个移位值范围分别进行匹配,得到与节点信息匹配的目标移位值范围;
移位结果确定子模块,用于依据目标移位值范围对应的与DVB-S2译码器的桶形移位器的各级数据选择器分别对应的移位参数,确定DVB-S2译码器的桶形移位器的移位结果。
进一步地,该DVB-S2译码器的桶形移位器还包括:
反向移位处理模块,用于检测到目标节点完成移位处理时,执行反向移位处理的操作。
本实施例的基于DVB-S2译码器的桶形移位器可执行本申请实施例提供的基于DVB-S2译码器的桶形移位器处理方法,其实现原理相类似,此处不再赘述。
本申请又一实施例提供了一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时以实现上述基于DVB-S2译码器的桶形移位器处理方法。
具体地,处理器可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
具体地,处理器通过总线与存储器连接,总线可包括一通路,以用于传送信息。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
存储器可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器用于存储执行本申请方案的计算机程序的代码,并由处理器来控制执行。处理器用于执行存储器中存储的应用程序代码,以实现图2所示实施例提供的基于DVB-S2译码器的桶形移位器的动作。
本申请又一实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,该计算机可执行指令用于执行上述图1所示的基于DVB-S2译码器的桶形移位器处理方法。
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。