具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
根据本申请的一个实施例,提供了一种准循环LDPC码译码方法,如图1所示,该方法包括步骤S101至步骤S104。
步骤S101:基于待处理的准循环LDPC码比特流,确定译码模式。
具体地,译码器基于待处理的准循环LDPC码比特流,确定译码模式。
具体地,译码器一般根据准循环LDPC码比特流中信号的帧数来确定译码模式,因此,译码器同时支持双路译码和单路译码(也可以称之为孤帧控制)。
步骤S102:若译码模式为双路译码模式,则确定准循环LDPC码比特流包括的两路输入信号分别对应的似然比数据矩阵。
在本申请实施例中,双路译码模式用于表征译码器在同时接收到两帧输入信号的条件下执行的译码方式。具体地,译码器通过逐个获取到的符号,来确定各帧输入信号分别对应的符号序列,即,确定出各帧输入信号分别对应的比特流。
具体地,译码器按照预设的输入参数来接收符号,并对接收到的符号进行计数。
在本申请实施例中,似然比数据矩阵是指输入信号对应的符号序列一种表示形式。具体地,似然比数据矩阵可以按行或按列对输入信号对应的符号序列进行读取得到。
步骤S103:对两路输入信号分别对应的似然比数据矩阵执行迭代译码处理,得到两路输入信号分别对应的中间数据矩阵。
具体地,迭代译码处理包括变量节点更新的过程和校验节点更新的过程。
具体地,变量节点和校验节点根据本地预存矩阵来对输入信号对应的似然比数据矩阵进行迭代处理。更具体地,译码器一般按照预设的输入参数来确定本地预存矩阵。其中,本地预存矩阵一般呗设置为全零矩阵。
具体地,译码器根据预设的迭代次数来控制变量节点和校验节点对同一路输入信号进行迭代处理,直至达到预设的迭代次数阈值时,停止对该同一路输入信号的迭代译码处理。
步骤S104:依据两路输入信号各自对应的似然比数据矩阵和中间数据矩阵进行编码,得到准循环LDPC码。
具体地,可以通过对似然比数据矩阵和中间数据矩阵的乘积来进行计算。
本申请实施例通过确定待处理的准循环LDPC码比特流的译码模式,以在译码模式为双路译码模式的条件下,确定准循环LDPC码比特流包括的两路输入信号分别对应的似然比数据矩阵,对两路输入信号分别对应的似然比数据矩阵执行迭代译码处理,得到两路输入信号分别对应的中间数据矩阵,从而依据两路输入信号各自对应的似然比数据矩阵和中间数据矩阵进行编码,以得到准循环LDPC码,这种同时对两路输入信号进行迭代译码处理的方式,缩短了迭代译码消耗的时间,降低了译码器的计算开销,起到了通过并行处理两路输入信号来提高译码器编码效率的效果。
在一些实施例中,步骤S102中确定准循环LDPC码比特流包括的两路输入信号分别对应的似然比数据矩阵的步骤,进一步包括:
步骤S1021:对两路输入信号分别对应的比特流进行校验位调整处理;
步骤S1022:依据校验位调整处理后的两路输入信号分别对应的比特流,进行串并转换处理,得到两路输入信号分别对应的似然比数据矩阵。
具体地,可以根据输入信号符合的通信标准来进行校验位调整处理。例如,若输入信号为符合5G标准规则,可以对校验位进行调整;若输入信号为符合DVB标准,那么该输入信号的系统位的位置不变,仅对校验位进行Q长度的矩形交织。
具体地,可以通过预设的移位寄存器来执行串并转换处理。
在一些实施例中,步骤S102进一步还包括:
将先后完成串并转换处理的两路输入信号分别对应的似然比数据矩阵,在预设的两个存储模块中执行乒乓存储处理。
具体地,可以移位寄存器来进行串并转换,并实时将一路输入信号转换的结果存储至一个存储模块,另一路输入信号转换的结果存储至另一个模块,解决了现有技术中因译码器仅设置有一个似然比数据矩的存储模块,导致译码器无法对同时对两路输入信号进行处理的问题。
本申请实施例通过在译码器中增设两个存储模块,起到了同时对两路输入信号各自的似然比数据矩阵进行缓存的效果,为后续同时对两路输入信号各自的似然比数据矩阵进行迭代处理提供了查询基础,起到了充分利用译码器中执行迭代译码的各个译码单元的空隙时间,来同时对两路输入信号进行译码的效果,使得各个译码单元利用率达到100%,达到了提高译码器译码的效率的目的。
在一些实施例中,步骤S103进一步包括以下至少一个步骤:
若一路输入信号正在被预设的变量节点进行处理,则控制预设的校验节点对另一路输入信号对应的似然比数据矩阵进行校验更新;
若一路输入信号正在被预设的校验节点进行处理,则控制预设的变量节点对另一路输入信号对应的似然比数据矩阵进行变量更新。
由于变量节点和校验节点是间隔进行迭代处理的,即,在变量节点和校验节点中,一个节点执行迭代译码处理的同时,另一个节点处于空闲状态,这样就存在无法充分利用变量节点和校验节点的问题。为了解决这种问题,本申请通过交替控制变量节点或校验节点正在处理的输入信号,起到了变量节点和校验节点二者中的一个节点在对一路输入信号执行迭代处理的过程中,由另一个节点对另一路输入信号执行迭代处理,达到充分利用变量节点和校验节点,来实现双路信号的并行处理目的。
例如,假设第一路输入信号的似然比数据矩阵存储在RAM_L0中,第二路输入信号的似然比数据矩阵存储在RAM_L1中,若变量节点正在对第一路输入信号的似然比数据矩阵进行迭代译码处理,那么控制校验节点对第二路输入信号的似然比数据矩阵进行迭代译码处理。
在一些实施例中,步骤S103进一步还包括:
若校验节点对任一路输入信号执行迭代处理的次数达到预设迭代次数阈值,则停止对该任一路输入信号进行迭代处理,得到该任一路输入信号对应的中间数据矩阵。
具体地,预设迭代次数阈值可以预先设置的译码器中,也可以通过输入控制参数来进行确定。
在一些实施例中,步骤S101进一步包括:
获取准循环LDPC码比特流;
对准循环LDPC码比特流包括的符号进行计数;
依据计数结果,确定准循环LDPC码比特流包括的输入信号的帧数;
若帧数为2,则确定译码模式为双路译码模式。
具体地,译码器在接收到准循环LDPC码比特流的同时,进行计数,并根据技术结果来帧数。例如,一帧输入信号包括的符号数一般为定值,假设接收到与该定值对应的符号数,那么确定接收到一帧输入信号;若接收到两倍该定值的符号数,则确定接收到两帧输入信号。
在一些实施例中,步骤S101进一步还包括:
若帧数为1,且在预定时长内未接收到新的准循环LDPC码比特流,则确定译码模式为单路译码模式,以依据单路译码模式对准循环LDPC码比特流进行译码处理。
具体地,对依据单路译码模式对应的译码算法可以采用参照步骤S102至步骤S104中对一路输入信号的处理,即,先将该路输入信号进行串并转换,得到似然比数据矩阵,再通过预设的变量节点和校验节点对该似然比数据矩阵进行迭代译码处理,得到中间数据矩阵之后,对该中间数据矩阵和该似然比数据矩阵进行编码,得到准循环LDPC码。
为了进一步说明本申请实施例提供的准循环LDPC码译码方法,下面结合图2所示的译码器结构示意图进行说明。
参照图2,译码器执行上述准循环LDPC码译码方法包括以下几个部分:校验位调整(SIT)、调整缓存(RAM_T)、串并转换(S2P)、输入缓存(RAM_L)、变量节点更新(VPR)、交织器(It)、节点缓存(RAM_P)、校验节点更新(SPR)、输出缓存(RAM_O)等九部分组成。图中V为输入数据路数,W为并行译码路数。
其中,(1)校验位调整(SIT)。对DVB标准中LDPC码的系统位的位置不变,校验位进行Q长度的矩形交织,5GNR中LDPC码不需要。
(2)调整缓存(RAM_T)。单输入单输出RAM单元,由RAM_T0和RAM_T1组成乒乓缓存,由校验位调整(SIT)进行输入和输出控制。调整缓存(RAM_T)存入1帧译码数据,占用内存大小为NA比特,存储N/W×W×A比特似然比数据(矩阵),其中N为编码后信息长度,A为输入信息量化。
(3)串并转换(S2P)。S2P功能一是进行乒乓缓存,二是对V路串行译码输入进行W路并行存储控制,三是孤帧控制,四是对W路并行译码输出进行V路串行控制。乒乓缓存是指对输入的A比特量化的译码数据,每隔两帧分别存入输入缓存RAM_L0和RAM_L1中。孤帧控制是指当缓存收齐一帧数据后,如果译码器空闲,则译码器仅对一帧数据译码。
(4)输入缓存(RAM_L)。单输入单输出RAM单元,由RAM_L0和RAM_L1组成乒乓缓存,由串并转换(S2P)进行输入控制,由变量节点更新(VPR)进行输出控制。每个输入缓存(RAM_L0或RAM_L1)存入2帧译码数据,占用内存大小为2NA比特,存储2N/W×W×A比特似然比数据(矩阵),其中N为编码后信息长度,A为输入信息量化。
(5)变量节点更新(VPR)。由W个独立变量节点更新(VPR)模块组成,变量节点每次更新从相应输入缓存(RAM_L)中读取一个A比特量化似然比数据,从节点缓存(RAM_P0或RAM_P1交替使用)中按It_a控制字的地址和Iy_c控制字的个数读取多个A比特量化中间数据,按变量节点更新(VPR)规则更新后,再按It_a控制字的地址和Iy_c控制字的个数将更新后的A比特量化中间数据存储至节点缓存(RAM_P0或RAM_P1交替使用)中。
(6)交织器(It)。由正交织器(It0)和逆交织器(It1)组成,实现节点缓存(RAM_P)数据的W宽度(列内)循环移位。正交织器(It0)实现节点缓存(RAM_P0或RAM_P0)中间数据按It_c控制字规则的W宽度(列内)循环移位,并输出至变量节点更新(VPR);逆交织器(It1)实现变量节点更新(VPR)后的中间数据按It_c控制字逆规则的W宽度(列内)循环移位,并输出至节点缓存(RAM_P0或RAM_P0)。
(7)节点缓存(RAM_P)。双输入双输出RAM单元,由RAM_P0和RAM_P1组成,分别存储第一帧和第二帧LDPC译码中间数据,变量节点更新(VPR)和校验节点更新(SPR)交替对两个RAM进行更新操作。每个节点缓存(RAM_P0或RAM_P1)存入1帧译码中间数据,占用内存大小为WLA比特,存储L×W×A比特中间数据(矩阵),其中W并行译码路数,L为一个译码Q块重,A为输入信息量化,则节点缓存(RAM_P)共计占用内存为2WLA比特。
(8)校验节点更新(SPR)。由W个独立校验节点更新(SPR)模块组成,校验节点每次更新从节点缓存(RAM_P0或RAM_P1交替使用)中按Ix_c控制字的个数读取多个A比特量化中间数据,按校验节点更新(SPR)规则更新后,再按Ix_c控制字存储至节点缓存(RAM_P0或RAM_P1交替使用)中。
(9)输出缓存(RAM_O)。单输入单输出RAM单元,由变量节点更新(VPR)进行输入控制,由串并转换(S2P)进行输出控制。输出缓存(RAM_O)存入1帧译码后的信息数据,占用内存大小为NR比特,存储NR比特似然比数据(矩阵),其中N为编码后信息长度,R为码率。
(10)Ix_c、Iy_c和It_a、It_c控制字。Ix_c为校验节点更新(SPR)控制字,是校验矩阵每个按行块中的每行行重的集合,Iy_c为变量节点更新(VPR)控制字,是校验矩阵按列块中的每块首列列重的集合。It_a为变量节点更新(VPR)控制字,是中间数据的读取地址。It_c为交织器控制字,是对W宽度的中间数据的列内循环移位控制字。
应用时,图2所示的译码器的译码流程主要有五个部分组成:初始化、译码输入、变量节点更新、校验节点更新和译码输出。
(1)初始化:节点缓存(RAM_P0和RAM_P1)置零,校验节点更新(SPR)载入Ix_c控制字、变量节点更新(VPR)载入Iy_c控制字和It_a控制字、交织器(It)载入It_c控制字。
(2)译码流程:初始化完成后,同时进行译码输入(S2P+RAM_L)、校验检点更新(RAM_P+SPR)、变量节点更新(RAM_L+VPR+It+It1+RAM_P)等流程,这几个流程可以组成图3至图6几个不同的操作组合。
针对译码输入流程:
译码输入时串并转换(S2P)和一个输入缓存(RAM_L)组成操作组合。串并转换(S2P)在检测到输入使能有效时计数器开始计数。5G标准或DVB标准LDPC码前面系统码时,计数器除以W取余作为输入缓存(RAM_L)的行选信号,计数器除以W取整作为每个输入缓存(RAM_L)地址信号;DVB标准LDPC码后面校验码时,计数器除以Q取余加系统码存储地址偏移后作为每个输入缓存(RAM_L)地址信号,计数器除以Q取整作为W个输入缓存(RAM_L)行选信号。整个码字输入结束后,开始译码。变量节点更新(VPR)和校验节点更新(SPR)按顺序都执行一次操作称为一次译码迭代。
针对变量节点更新流程:
变量节点每次更新操作由变量节点更新(VPR)、一个输入缓存(RAM_L)、一个节点缓存(RAM_P)、正交织器(It0)和逆交织器(It1)组成操作组合,同时需要It_a控制字、It_c控制字、Iy_c控制字参与。是系统最复杂的操作。更新流程为:首先变量节点更新(VPR)根据Iy_c控制字按顺序读取一组It_a控制字,作为读取地址送至节点缓存(RAM_P),读取相应地址上的一组W宽度节点缓存(RAM_P)数据,这组W宽度数据按照It_c控制字经正交织器(It0)进行W宽度循环移位后,按组送入每个变量节点更新(VPR)。变量节点更新(VPR)同时按顺序读取输入缓存(RAM_L)W宽度的一个似然比数据,与这组W宽度节点缓存(RAM_P)数据一起进行节点更新运算;更新后的数据送入W宽度逆交织器(It1),根据It_c控制字进行W宽度逆循环移位后,再按照It_a地址存回节点缓存(RAM_P)中。
针对校验节点更新流程:
校验节点每次更新操作由校验节点更新(SPR)、一个节点缓存(RAM_P)组成操作组合,同时需要Ix_c控制字参与。更新流程为:首先校验节点更新(SPR)按顺序读取Ix_c控制字,按照控制字读取一组W宽度节点缓存(RAM_P)数据,送入每个校验节点更新(SPR)模块进行更新运算。更新后的数据按照Ix_c控制字存回节点缓存(RAM_P)中。
(3)译码输出。当校验节点更新(SPR)的译码迭代次数达到最大译码迭代次数时,执行译码输出。更新流程为:按照变量节点更新(VPR)流程读出节点缓存(RAM_P)和输入缓存(RAM_L),送入每个译码输出模块进行运算,并按W路输出译码硬判决数据。同时按照变量节点更新(VPR)流程把零存入节点缓存(RAM_P)中,实现清零
本申请的又一实施例提供了一种译码器,如图7所示,该译码器70包括:译码模式确定模块701、双路矩阵确定模块702、中间矩阵确定模块703以及译码编译处理模块704。
其中,译码模式确定模块701,用于基于待处理的准循环LDPC码比特流,确定译码模式;
双路矩阵确定模块702,用于若译码模式为双路译码模式,则确定准循环LDPC码比特流包括的两路输入信号分别对应的似然比数据矩阵;
中间矩阵确定模块703,用于对两路输入信号分别对应的似然比数据矩阵执行迭代译码处理,得到两路输入信号分别对应的中间数据矩阵;
译码编译处理模块704,用于依据两路输入信号各自对应的似然比数据矩阵和中间数据矩阵进行编码,得到准循环LDPC码。
本申请实施例,本申请实施例通过确定待处理的准循环LDPC码比特流的译码模式,以在译码模式为双路译码模式的条件下,确定准循环LDPC码比特流包括的两路输入信号分别对应的似然比数据矩阵,对两路输入信号分别对应的似然比数据矩阵执行迭代译码处理,得到两路输入信号分别对应的中间数据矩阵,从而依据两路输入信号各自对应的似然比数据矩阵和中间数据矩阵进行编码,以得到准循环LDPC码,这种同时对两路输入信号进行迭代译码处理的方式,缩短了迭代译码消耗的时间,降低了译码器的计算开销,起到了通过并行处理两路输入信号来提高译码器编码效率的效果。
进一步地,双路矩阵确定模块包括:
校验位调整子模块,用于对两路输入信号分别对应的比特流进行校验位调整处理;
串并转换处理子模块,用于依据校验位调整处理后的两路输入信号分别对应的比特流,进行串并转换处理,得到两路输入信号分别对应的似然比数据矩阵。
进一步地,串并转换处理子模块包括:
矩阵存储单元,用于将先后完成串并转换处理的两路输入信号分别对应的似然比数据矩阵,在预设的两个存储模块中执行乒乓存储处理。
进一步地,中间矩阵确定模块包括以下至少一个子模块:
第一控制子模块,用于若一路输入信号正在被预设的变量节点进行处理,则控制预设的校验节点另一路输入信号对应的似然比数据矩阵进行校验更新;
第二控制子模块,用于若一路输入信号正在被预设的校验节点进行处理,则控制预设的变量节点对另一路输入信号对应的似然比数据矩阵进行变量更新。
进一步地,中间矩阵确定模块还包括:
迭代停止子模块,用于若校验节点对任一路输入信号执行迭代处理的次数达到预设迭代次数阈值,则停止对该任一路输入信号进行迭代处理,得到该任一路输入信号对应的中间数据矩阵。
进一步地,译码模式确定模块包括:
比特流获取子模块,用于获取准循环LDPC码比特流;
比特计数子模块,用于对准循环LDPC码比特流包括的符号进行计数;
帧数确定子模块,用于依据计数结果,确定准循环LDPC码比特流包括的输入信号的帧数;
第一模式确定子模块,用于若帧数为2,则确定译码模式为双路译码模式。
进一步地,译码模式确定模块还包括:
第二模式确定子模块,用于若帧数为1,且在预定时长内未接收到新的准循环LDPC码比特流,则停止执行获取准循环LDPC码比特流的步骤,并确定译码模式为单路译码模式,以依据单路译码模式对准循环LDPC码比特流进行译码处理。
本实施例的译码器可执行本申请实施例提供的准循环LDPC码译码方法,其实现原理相类似,此处不再赘述。
本申请又一实施例提供了一种终端,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,该处理器执行计算机程序时以实现上述准循环LDPC码译码方法。
具体地,处理器可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
具体地,处理器通过总线与存储器连接,总线可包括一通路,以用于传送信息。总线可以是PCI总线或EISA总线等。总线可以分为地址总线、数据总线、控制总线等。
存储器可以是ROM或可存储静态信息和指令的其他类型的静态存储设备,RAM或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM、CD-ROM或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
可选的,存储器用于存储执行本申请方案的计算机程序的代码,并由处理器来控制执行。处理器用于执行存储器中存储的应用程序代码,以实现上述实施例提供的译码器的动作。
本申请又一实施例提供了一种计算机可读存储介质,存储有计算机可执行指令,该计算机可执行指令用于执行上述准循环LDPC码译码方法。
以上所描述的装置实施例仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本申请的较佳实施进行了具体说明,但本申请并不局限于上述实施方式,熟悉本领域的技术人员在不违背本申请精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。