CN113014267B - 译码方法、设备、可读存储介质、芯片及计算机程序产品 - Google Patents

译码方法、设备、可读存储介质、芯片及计算机程序产品 Download PDF

Info

Publication number
CN113014267B
CN113014267B CN201911312200.XA CN201911312200A CN113014267B CN 113014267 B CN113014267 B CN 113014267B CN 201911312200 A CN201911312200 A CN 201911312200A CN 113014267 B CN113014267 B CN 113014267B
Authority
CN
China
Prior art keywords
decoding
soft
subcode
decision
result
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
CN201911312200.XA
Other languages
English (en)
Other versions
CN113014267A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201911312200.XA priority Critical patent/CN113014267B/zh
Priority to PCT/CN2020/115399 priority patent/WO2021120729A1/zh
Publication of CN113014267A publication Critical patent/CN113014267A/zh
Application granted granted Critical
Publication of CN113014267B publication Critical patent/CN113014267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes

Abstract

本申请公开了一种译码方法、设备、可读存储介质、芯片及计算机程序产品,属于通信技术领域。本方法通过子码的生成状态信息,对该子码在上一次软判决译码中的译码结果进行判断,若该子码在上一次软判决译码中的译码结果有效,则无需对该子码再进行一次软判决译码,可以直接将该子码在上一次软判决译码中的第一译码结果作为该子码在本次软判决译码中的第一译码结果,从而无需对该码字中的每个子码进行软判决译码,进而可以降低对码字进行软判决译码的功耗。

Description

译码方法、设备、可读存储介质、芯片及计算机程序产品
技术领域
本申请涉及通信技术领域,特别涉及一种译码方法、设备、可读存储介质、芯片及计算机程序产品。
背景技术
在目前的数字通信系统中,前向纠错编码(forward error coding,FEC)技术得到了广泛的应用。在应用时,编码端对数据块进行编码,得到纠错码,并在数据块上添加得到的纠错码,得到码字,并将码字发送至译码设备,该译码设备可以通过软判决和硬判决对接收的码字进行译码。
目前,译码设备进行译码的过程可以是:译码设备对多个码字进行软判决译码,当本次软判决译码的次数未到达最大迭代次数,且本次的译码结果中的错误比较多时,译码设备对本次的译码结果再次进行软判决译码;当任一次软判决译码的次数未到达最大迭代次数,且任一次的译码结果中的错误比较少时,跳出软判决译码,译码设备对该任一次的译码结果进行多次迭代硬判决译码,直至到达最大迭代次数,译码设备将最后一次硬判决译码的译码结果,作为多个码字的最终译码结果。
在上述译码过程中,译码设备每对多个码字进行一次软判决译码时,都会对每个码字中的每个子码均进行一次软判决译码,由于每个码字包括子码个数较多,且软判决译码造成的功耗比硬判决译码造成的功耗要高,因此,译码设备在对每个码字进行软判决译码时,就会造成大量功耗。
发明内容
本申请实施例提供了一种译码方法、设备、可读存储介质、芯片及计算机程序产品,能够降低码字进行软判决译码时的功耗。该技术方案如下:
第一方面,提供了一种译码方法,该方法包括:
在对任一码字进行本次软判决译码时,对于所述码字中的任一子码,获取所述子码在上一次软判决译码中的第一译码结果,所述码字包括多个子码;
根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码的状态信息,所述状态信息用于指示所述子码在上一次软判决译码中的译码结果是否有效;
当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效时,将所述子码在上一次软判决译码中的第一译码结果作为所述子码在本次软判决译码中的第一译码结果。
本方法通过子码的生成状态信息,对该子码在上一次软判决译码中的第一译码结果进行判断,若该子码在上一次软判决译码中的第一译码结果有效,则无需对该子码再进行一次软判决译码,可以直接将该子码在上一次软判决译码中的译码结果作为该子码在本次软判决译码中的译码结果,从而无需对该码字中的每个子码进行软判决译码,进而可以降低对码字进行软判决译码的功耗。
在一种可能的实现方式中,所述根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码的状态信息包括:
计算校验矩阵的偏置矩阵与所述子码在上一次软判决译码中的第一译码结果的积;
基于所述积的取值,确定所述状态信息。
在一种可能的实现方式中,所述基于所述积的取值,确定所述状态信息包括:
当所述积为0时,则所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,否则,所述状态信息指示所述子码在上一次软判决译码中的译码结果无效。
在一种可能的实现方式中,所述方法还包括:
当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,且所述子码的本次软判决译码不是一个迭代译码过程中的最后一次软判决译码时,根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码在本次软判决译码中的第二译码结果,所述一个迭代译码过程包括多次软判决译码。
在一种可能的实现方式中,所述根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码在本次软判决译码中的第二译码结果包括:
根据所述子码在上一次软判决译码中的第一译码结果所对应的符号值以及所述子码在上一次软判决译码中的第二译码结果的位宽值,生成所述子码在本次软判决译码中的第二译码结果。
在一种可能的实现方式中,所述获取所述子码在上一次软判决译码中的第一译码结果之后,所述方法还包括:
当所述状态信息指示所述子码在上一次软判决译码中的译码结果无效时,获取所述子码在上一次软判决译码中的第二译码结果;
基于所述子码在上一次软判决译码中的第二译码结果,对所述子码进行软判决译码,得到所述子码在本次软判决译码中的第一译码结果和所述子码在本次软判决译码中的第二译码结果。
在一种可能的实现方式中,所述子码在本次软判决译码中的第一译码结果包括所述子码的各个比特位在本次软判决译码中的硬输出结果;所述子码在本次软判决译码中的第二译码结果包括所述子码的各个比特位在本次软判决译码中的软输出结果。
在一种可能的实现方式中,所述方法还包括:
将第一缓存中所述子码在上一次软判决译码中的第一译码结果更新为所述子码在本次软判决译码中的第一译码结果,所述第一缓存用于存储至少一个码字中每个子码在软判决译码时生成的第一译码结果;
将所述第二缓存中所述子码在上一次软判决译码中的第二译码结果更新为所述子码在本次软判决译码中的第二译码结果,所述第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果。
在一种可能的实现方式中,所述方法还包括:
当所述子码的本次软判决译码为一个迭代译码过程中最后一次迭代译码时,则输出所述子码在本次软判决译码中的第一译码结果。
在一种可能的实现方式中,所述方法还包括:
当所述子码的本次软判决译码为一个迭代译码过程中最后一次迭代译码时,若所述码字为待处理码字中的最后一个码字时,将所述子码在本次软判决译码的第一译码结果作为所述子码的最终译码结果,输出所述子码在本次软判决中的第一译码结果,所述待处理码字为一个迭代译码过程进行迭代译码的码字。
第二方面,提供了一种译码设备,所述设备包括:
输入接口,用于在对任一码字进行本次软判决译码时,对于所述码字中的任一子码,获取所述子码在上一次软判决译码中的第一译码结果,所述码字包括多个子码;
处理器,用于根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码的状态信息,所述状态信息用于指示所述子码在上一次软判决译码中的译码结果是否有效;
所述处理器,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效时,将所述子码在上一次软判决译码中的第一译码结果作为所述子码在本次软判决译码中的第一译码结果。
在一种可能的实现方式中,所述处理器用于:
计算校验矩阵的偏置矩阵与所述子码在上一次软判决译码中的第一译码结果的积;
基于所述积的取值,确定所述状态信息。
在一种可能的实现方式中,所述处理器用于:
当所述积的值为0时,则所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,否则,所述状态信息指示所述子码在上一次软判决译码中的译码结果无效。
在一种可能的实现方式中,所述处理器,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,且所述子码的本次软判决译码不是一个迭代译码过程中的最后一次软判决译码时,根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码在本次软判决译码中的第二译码结果,所述一个迭代译码过程包括多次软判决译码。
在一种可能的实现方式中,所述处理器,用于根据所述子码在上一次软判决译码中的第一译码结果所对应的符号值以及所述子码在上一次软判决译码中的第二译码结果的位宽值,生成所述子码在本次软判决译码中的第二译码结果。
在一种可能的实现方式中,所述输入接口,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果无效时,获取所述子码在上一次软判决译码中的第二译码结果;
所述处理器,还用于基于所述子码在上一次软判决译码中的第二译码结果,对所述子码进行软判决译码,得到所述子码在本次软判决译码中的第一译码结果和所述子码在本次软判决译码中的第二译码结果。
在一种可能的实现方式中,所述子码在本次软判决译码中的第一译码结果包括所述子码的各个比特位在本次软判决译码中的硬输出结果;所述子码在本次软判决译码中的第二译码结果包括所述子码的各个比特位在本次软判决译码中的软输出结果。
在一种可能的实现方式中,所述设备还包括第一缓存和第二缓存,所述第一缓存用于存储至少一个码字中每个子码在软判决译码时生成的第一译码结果,所述第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果;
所述处理器还用于:
将所述第一缓存中所述子码在上一次软判决译码中的第一译码结果更新为所述子码在本次软判决译码中的第一译码结果;
将所述第二缓存中所述子码在上一次软判决译码中的第二译码结果更新为所述子码在本次软判决译码中的第二译码结果。
在一种可能的实现方式中,所述设备还包括:
输出接口,用于当所述子码的本次软判决译码为一个迭代译码过程中最后一次迭代译码时,则输出所述子码在本次软判决译码中的第一译码结果。
第三方面,提供了一种译码设备,用于执行上述译码方法。具体地,该译码设备包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的译码方法的功能模块。
第四方面,提供一种可读存储介质,该存储介质中存储有至少一条指令,该指令由处理器加载并执行以实现如上述译码方法所执行的操作。
第五方面,提供一种芯片,该芯片包括处理器,该处理器用于实现上述第一方面或上述第一方面的任一种可选方式提供的译码方法所执行的操作。
第六方面,提供一种计算机程序产品,该计算机程序产品包括一条或多条指令,所述一条或多条指令可以由译码设备的处理器执行,以实现上述第一方面或上述第一方面的任一种可选方式提供的译码方法所执行的操作。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种编译码系统的示意图;
图2是本申请实施例提供的一种码字的示意图;
图3是本申请实施例提供的一种迭代译码过程的示意图;
图4是本申请实施例提供的一种译码设备的结构示意图;
图5是本申请实施例提供的一种译码设备的结构示意图;
图6是本申请实施例提供的一种迭代译码过程的示意图;
图7是本申请实施例提供的一种第一次迭代译码的流程图;
图8是本申请实施例提供的一种译码方法的流程图;
图9是本申请实施例提供的一种对码字进行译码的流程图;
图10是本申请实施例提供的一种译码设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1是本申请实施例提供的一种编译码系统的示意图,参见图1,该编译码系统100可以包括编码设备101以及译码设备102。其中,编码设备101用于对数据流中各个数据块,进行编码,得到每个数据块所对应的码字,并将码字组成码流发送给译码设备102。该数据流可以是视频流、音频流以及文本流等任一个数据流。一个码字也即是编码设备101对一个数据块进行编码的结果,每个码字可以视为一个帧,一个码字中的数据也即是一帧数据。
一个码字为一个译码设备译码时的基本数据单元,一个码字可以包括多行多列的比特位,一个码字中的比特位可以组成多个子码,其中,一个子码可以包括多个比特位,多个比特位可以组成任一形状的子码,在一种可能方式中,一个码字中一列比特位可以组成一个条子码,例如,例如图2中码字1内的子码1,其中,图2是本申请实施例提供的一种码字的示意图。在一种可能方式中,一行比特位可以组成一个平形子码,例如图2中码字2内的子码2。在一种可能的实现方式中,一个码字中不同行不同列的多个比特位组成一个斜线形子码,例如图2中码字3内的子码3和子码4。在一种可能的实现方式中,一个码字中不同行不同列的多个比特位组成一个折线形子码,例如图2中的码字4的子码5。需要说明的是,一个码字中各个子码的形状可以相同,也可以不同,一个码字的比特位可以处于多个子码中,处于多个子码中的比特位,就可以视为交叉比特位,也即是多个子码之间可以存在至少一个交叉比特位,例如图2中的子码3和子码4存在一个交叉比特位。本申请实施例对码字中子码的形状不做具体限定。
本申请实施例以条形子码和平行子码为例进行说明。例如,一个码字包括128*128个比特位,其中,每128个比特位为一行,每128个比特位为一列,也即是该码字可以包括128行子码或128列子码。该编码设备101可以采用阶梯(staircase)乘积(turbo productcode,TPC)码的编码方案进行编码,该编码方案所得到的码字的比特位被一个横向的BCH(bose ray hocquenghem)子码和一个纵向的BCH子码保护。编码设备101以一帧数据(例如128bit*128bit)为基本单位进行编码,相邻的两个帧中的数据满足BCH(n,k)的编码关系,其中,n为一个BCH子码的码长,k为一个BCH子码的信息位。例如,编码设备101对一个数据流中第0帧和第1帧进行横向BCH(256,239)码字编码,也即是按照行,对第0帧和第1帧中每一行比特位上的数据进行编码,得到编码后的第0帧和编码后的第1帧;然后,编码设备101对编码后的第1帧以及第2帧进行纵向BCH(256,239)码字编码,也即是按照列,对编码后的第1帧以及第2帧的每一列比特位上的数据进行编码,得到2次编码后的第一帧和1次编码后的第2帧,从而2次编码后的第1帧中每个比特位被一个横向上的子码和一个纵向上的子码保护。
译码设备102,用于对接收到的码流中的码字进行译码。译码设备102每接收到一个码字时,均可以对目标个数的码字进行一个迭代译码过程,该目标个数的码字可以包括新接收的码字以及之前译码后的码字,该译码设备102每接收到一个新的码字时,对目标个数的码字进行一个迭代译码过程,当再一次接收到一个新的码字时,再对另外目标个数的码字进行一次迭代译码过程。
该目标个数为预设的一个迭代译码过程中进行译码的码字的个数,一次迭代译码过程中的各个子码可以由一个滑动窗口来选定,目标个数也即是滑动窗口的维度,也可以说,一个滑动窗口内的各个码字进行一个迭代译码过程。一个迭代译码过程可以包括M次迭代译码,其中,M为大于0的整数,M也即是一个迭代译码过程的最大迭代次数,在一个迭代译码过程中,若进行了M次迭代译码,则该迭代译码过程结束,最后一次迭代译码的译码结果,也即是该迭代译码过程最终的译码结果。例如图3所示的本申请实施例提供的一种迭代译码过程的示意图,图3中的滑动窗口的维度为6,设滑动窗口内的码字包括第P-6个码字至第P-1个码字,其中,第P-1个码字为滑动窗口中的第1个码字,第P-6个码字为滑动窗口中的最后一个码字,第P-1个码字也即是第P-1帧数据;当译码设备接收到第P个码字时,滑动窗口向前滑动一个码字,使得第P个码字为该滑动窗口内的第1个码字,第P-6个码字从该滑动窗口滑出,第P-5个码字为滑动窗口的最后一个码字;译码设备开始对第P-5个码字至第P个码字进行迭代译码过程,该迭代译码过程包括迭代译码1-5;译码设备对第P-5个码字至第P个码字进行的迭代译码过程可以是:首先,译码设备102对第P个码字和第P-1个码字进行一次横向软判决译码,得到译码后的第P个码字以及译码后的第P-1个码字,记为迭代译码1;然后,译码设备对译码后的第P-1个码字以及第P-2个码字进行一次纵向软判决译码,得到再次译码后的第P-1个码字以及译码后的第P-2个码字,记为迭代译码2,依次类推译码设备进行迭代译码3-5,当迭代译码5完成后,译码设备将第P-5个码字的译码结果输出,也即是输出译码后的第P-5个码字。其中,横向软判决译码为按照行对码字中的各个子码进行软判决译码,例如,对于一个码字,译码设备先对该码字中的第一行子码进行软判决译码,再对该码字中的第二行子码进行软判决译码,当然,译码设备也可以并行对多行子码进行软判决译码。纵向软判决译码为按照列对码字中的各个子码进行软判决译码,例如,对于一个码字,译码设备先对该码字中的第一列子码进行软判决译码,再对该码字中的第二列子码进行软判决译码,当然,译码设备可以并行对多列子码进行软判决译码。
为了进一步说明译码设备的功能,参见图4所示的本申请实施例提供的一种译码设备的结构示意图,译码设备400包括:
输入接口401,用于在对任一码字进行本次软判决译码时,对于所述码字中的任一子码,获取所述子码在上一次软判决译码中的第一译码结果,所述码字包括多个子码;
处理器402,用于根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码的状态信息,所述状态信息用于指示所述子码在上一次软判决译码中的译码结果是否有效;
所述处理器402,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效时,将所述子码在上一次软判决译码中的第一译码结果作为所述子码在本次软判决译码中的第一译码结果。
可选地,所述处理器402用于:
计算校验矩阵的偏置矩阵与所述子码在上一次软判决译码中的第一译码结果的积;
基于所述积的取值,确定所述状态信息。
可选地,所述处理器402用于:
当所述积为0时,则所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,否则,所述状态信息指示所述子码在上一次软判决译码中的译码结果无效。
可选地,所述处理器402,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,且所述子码的本次软判决译码不是一个迭代译码过程中的最后一次软判决译码时,根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码在本次软判决译码中的第二译码结果,所述一个迭代译码过程包括多次软判决译码。
可选地,所述处理器402,用于根据所述子码在上一次软判决译码中的第一译码结果所对应的符号值以及所述子码在上一次软判决译码中的第二译码结果的位宽值,生成所述子码在本次软判决译码中的第二译码结果。
可选地,所述输入接口401,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果无效时,获取所述子码在上一次软判决译码中的第二译码结果;
所述处理器402,还用于基于所述子码在上一次软判决译码中的第二译码结果,对所述子码进行软判决译码,得到所述子码在本次软判决译码中的第一译码结果和所述子码在本次软判决译码中的第二译码结果。
可选地,所述子码在本次软判决译码中的第一译码结果包括所述子码的各个比特位在本次软判决译码中的硬输出结果;所述子码在本次软判决译码中的第二译码结果包括所述子码的各个比特位在本次软判决译码中的软输出结果。
可选地,所述设备400还包括第一缓存和第二缓存,所述第一缓存用于存储至少一个码字中每个子码在软判决译码时生成的第一译码结果,所述第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果;
所述处理器402还用于:
将所述第一缓存中所述子码在上一次软判决译码中的第一译码结果更新为所述子码在本次软判决译码中的第一译码结果;
将所述第二缓存中所述子码在上一次软判决译码中的第二译码结果更新为所述子码在本次软判决译码中的第二译码结果。
需要说明的是,在本申请中所提到的第一缓存或第二缓存可以是内存对象缓存系统或存储器,存储器可以包括寄存器、易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、云存储(cloud storage)、网络附接存储(Network AttachedStorage,NAS)、网盘(network drive)等;存储器还可以包括上述种类的存储器的组合或者其他具有存储功能的任意形态的介质或产品。当然,第一缓存和第二缓存也可以属于同一存储器,也即是第一缓存和第二缓存可以分别为一个存储器中不同的存储空间。
可选地,所述设备400还包括:
输出接口,用于当所述子码的本次软判决译码为一个迭代译码过程中最后一次迭代译码时,则输出所述子码在本次软判决译码中的第一译码结果。
该译码设备通过子码的生成状态信息,对该子码在上一次软判决译码中的第一译码结果进行判断,若该子码在上一次软判决译码中的译码结果有效,则无需对该子码再进行一次软判决译码,可以直接将该子码在上一次软判决译码中的第一译码结果作为该子码在本次软判决译码中的第一译码结果,从而无需对该码字中的每个子码进行软判决译码,进而可以降低对码字进行软判决译码的功耗。
在一种可能的实现方式中,译码设备的结构还可以如图5所示,其中,图5是本申请实施例提供的一种译码设备的结构示意图,译码设备500包括可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)501和一个或一个以上的存储器502,其中,该存储器502中存储有至少一条指令,该至少一条指令由该处理器501加载并执行以实现下述各个方法实施例提供的方法。当然,该译码设备500还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该译码设备500还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成下述实施例中的方法。例如,该可读存储介质可以是只读存储器(read-only memory,ROM)、RAM、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。
为了进步说明译码设备的进行迭代译码的具体过程,参见图6所示的本申请实施例提供的一种迭代译码过程的示意图,对于一个迭代译码过程,初始时,译码设备接收滑动窗口内的第1个码字的软信息,并将第1个码字的软信息存储在第二缓存中,一个码字的软信息包括一个码字每个比特位的软信息,当一个码字的每个比特位均用目标形式的数值来表示,目标形式的数值可以为浮点数值或量化为多种取值的定点数值,且该目标形式的数值的符号值可以表示一个比特位0或1的取值,目标形式的数值的绝对值用于表示一个比特位的取值的可信度时,则一个目标形式的数值也即是一个比特位的软信息。对于该滑动窗口内除第1个码字以外的码字,之前的迭代译码过程中均已经存储了除第1个码字以外的码字的软信息,因此当将第1个码字的软信息存储在第二缓存后,该第二缓存中存储有该滑动窗口内各个码字的软信息。
该译码设备在进行第一次译码迭代时,对于进行第一次译码迭代中的码字,处理器从第二缓存中读取该码字的软信息,并基于每个码字的软信息,对每个码字进行软判决译码,得到码字的软输出结果和硬输出结果,码字的软输出结果包括该码字中各个子码的软输出结果,可以用软信息的形式表示,码字的硬输出结果包括该码字中各个子码的硬输出结果,可以用硬信息的形式表示,硬信息也即是用0或1表示码字的比特位的取值;处理器将第二缓存内该码字的软信息更新为该码字在本次软判决译码的软输出结果;处理器将该码字的硬输出结果存储在第一缓存中,此时该迭代译码过程中的第一次迭代译码结束。
对于该一个迭代译码过程中除第一次迭代译码以外的任一次迭代译码,译码设备在进行该任一次迭代译码时,对于该迭代译码中的码字的任一子码,控制器从第一缓存获取该子码在上一次软判决译码中的硬输出结果,并判断该子码在上一次软判决译码中的译码结果是否有效,若有效,控制器向译码结果生成器发送通知消息,该通知消息用于指示基于该子码在上一次软判决译码中的硬输出结果,生成该子码在本次迭代译码中的软输出结果;接收到该通知消息后,译码结果生成器根据该子码在上一次软判决译码中的硬输出结果,生成该子码在本次软判决译码中的软输出结果,并将第二缓存中该子码在上一次软判决译码中的软输出结果更新为该子码在本次软判决译码中的软输出结果,以便当对该子码进行下次迭代译码时,处理器可以从第二缓存中获取该子码在本次软判决译码中的软输出结果。当控制器判断该子码在上一次软判决译码中的译码结果是否有效时,若无效,控制器通知处理器从第二缓存中获取该子码在上一次软判决译码中的软输出结果;当处理器从第二缓存中获取该子码在上一次软判决译码中的软输出结果后,处理器对该子码在上一次软判决译码中的软输出结果进行软判决译码,得到该子码的在本次软判决中的软输出结果和该子码的在本次软判决中的硬输出结果;处理器将第一缓存中该子码在上一次软判决译码中的硬输出结果更新成该子码在本次软判决译码中的硬输出结果,以便在对该子码进行下次迭代译码时,控制器可以从第一缓存中获取该子码在本次软判决译码中的硬输出结果;处理器还可以将第二缓存中该子码在上一次软判决译码中的软输出结果更新成该子码在本次软判决译码中的软输出结果,以便在对该子码进行下次迭代译码时,处理器可以从第二缓存中获取该子码在本次软判决译码中的软输出结果。当在最后一次迭代译码时,处理器将该迭代窗口内最后一个码字在最后一次迭代译码中的硬输出结果作为该最后一个码字的最终译码结果输出。
在每一次迭代译码中,处理器可以并行对多个子码进行软判决译码,在一种可能的实现方式中,处理器可以包括多个子处理器,每个子处理器可以并行对至少一个子码进行软判决译码。
在当前迭代译码过程中,译码设备可以对新接收的一个码字以及在上一个迭代译码过程中译码后的至少一个码字,进行第一次软判决译码;然后,译码设备可以基于第一软判决译码的译码结果,对除新接收的码字以外的其他码字进行后续的迭代译码。为了进一步说明在当前迭代译码过程中译码设备进行的第一次迭代译码的具体过程,参见图7所示的本申请实施例提供的一种第一次迭代译码的流程图,该流程可以包括下述步骤701-705。
701、译码设备每接收到一个码字的软信息后,将该码字的软信息存储在该译码设备的第二缓存中。
该码字为译码设备接收到的一个码流中的任一码字,由于一个码字包括多行多列的比特位,该码字的软信息可以包括该码字中每个比特位的软信息。所述第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果,其中,第二译码结果可以用软信息的形式表示,第二缓存中存储的数据可以包括软信息形式的数据,因此,该译码设备可以将码字的软信息与该码字的每个比特位进行关联存储。在一种可能的方式中,译码设备可以将该码字的每个比特位的软信息存储在第二缓存的一个存储空间中,一个存储空间对应一个存储地址;当将该码字的每个比特位的软信息均存储完成后,译码设备生成该码字的第一存储信息,该码字的第一存储信息可以包括每个比特位的位标识、每个比特位的软信息的存储地址以及该码字的码字标识;当该译码设备生成该码字的第一存储信息后,可以将该码字的第一存储信息存储在第二缓存中的目标存储空间,该第二缓存中的目标存储空间用于存储各个码字的第一存储信息,以便后续可以根据目标存储空间中该码字的第一存储信息,从第二缓存中查找该码字中每个比特位的软信息。
其中,一个比特位的位标识用于唯一指示一个比特位,一个比特位的位标识可以是一个比特位在该码字中的编号,例如,当该比特位为该码字中第i个比特位,则该比特位的位标识为i,i为正整数。一个比特位的位标识还可以是一个比特位在该码字中的位置信息,例如,一个比特位位于该码字的第x行第y列,则该比特位的位标识为(x,y),x和y均为正整数。本申请实施例以位标识为比特位的位置信息为例进行说明。该码字的码字标识用于唯一指示该码字,该码字的码字标识可以是该码字在码流中的编号,例如,该码字为一个码流中第i个码字,则该码字的码字标识为i。该码字的码字标识还可以是该码字对应的帧号,例如,该码字中的数据为第i帧的数据,则该码字的码字标识为第i帧。本申请实施例以码字标识为帧号为例进行说明。
702、译码设备每接收到一个码字的软信息后,确定一个迭代译码过程中的待处理码字,该待处理码字包括该码字以及译码过的多个码字。
该待处理码字为一个迭代译码过程进行迭代译码的码字。译码设备可以通过移动滑动窗口确定多个待处理码字,当滑动窗口向前移动一个码字后,使得译码设备新接收的码字为该滑动窗口中的第1个码字,此时,该滑动窗口内的码字也即是确定的多个待处理码字,仍以图3中的滑动窗口为例,图3中第P个码字也即是译码设备新接收的码字,第P-6个码字至第P-1个码字也即是该至少一个码字。
由于译码设备每新接收一个码字,就可以确定多个待处理码字,并对多个待处理码字进行一个迭代译码过程,因此,多个待处理码字中除新接收的码字以外的任一码字均是译码过的码字。
703、在一个迭代译码过程中,对于进行第一次迭代译码的待处理码字中的目标码字,译码设备从第二缓存中获取每个目标码字的软信息,目标码字包括该码字以及译码过的多个码字中的至少一个码字。
译码设备可以根据每个目标码字的第一存储信息中记录的存储地址,从第二缓存中获取每个目标码字的软信息。该码字的软信息为译码设备接收码流中的码字的软信息,译码过的码字的软信息为译码过的码字在上一次软判决译码中的软输出结果。该至少一个码字的码字标识与该码字的码字标识之间的差值小于等于目标差值,其中,目标差值可以是1,例如,图3中第一迭代译码的目标码字为第P个码字和第P-1个码字,第P个码字和第P-1个码字的码字标识之差为1,当然该目标差值也可以是其他数值,本申请实施例对该目标差值的取值不做具体限定。
704、译码设备基于每个目标码字的软信息,对每个目标码字进行软判决译码,得到每个目标码字在本次软判决译码中的译码结果,一个目标码字在本次软判决译码中的译码结果包括一个目标码字在本次软判决译码中的第一译码结果和一个目标码字在本次软判决译码中的第二译码结果。
译码设备基于每个目标码字的软信息,对每个目标码字进行软判决译码的过程,也即是译码设备对每个目标码字的软信息进行软判决译码的过程。译码设备可以对每个目标码字的软信息进横向软判决译码,也即是按照行对每个目标码字中的各个子码进行软判决译码。本申请实施例对任一码字的软信息进行软判决译码的具体过程不做限定。
在本申请实施例中,对任一个码字进行软判决译码,可以得到任一码字在本次软判决译码中译码结果,其中,任一码字在本次软判决译码中译码结果包括任一码字在本次软判决译码中的第一译码结果和任一码字在本次软判决译码中的第二译码结果。其中,任一码字在本次软判决译码中的第一译码结果包括任一码字中每个子码在本次软判决译码中的第一译码结果,每个子码在本次软判决译码中的第一译码结果包括一个子码的各个比特位在本次软判决译码中的硬输出结果,任一码字在本次软判决译码中的第二译码结果包括任一码字中每个子码在本次软判决译码中的第二译码结果,每个子码在本次软判决译码中的第一译码结果包括每个子码包括一个子码的各个比特位在本次软判决译码中的软输出结果。
需要说明的是,当对每个目标码字进行软判决译码时,若任一目标码字译码失败,则重新对该任一目标码字进行软判决译码,直至该任一目标码字译码成功为止。
705、译码设备将每个目标码字在本次软判决译码中的第一译码结果存储在第一缓存,将每个目标码字在本次软判决译码中的第二译码结果存储在第二缓存,该第一缓存用于存储至少一个码字中每个子码在软判决译码时生成的第一译码结果。
对于任一目标码字,由于该目标码字在本次软判决译码中的第一译码结果包括该目标码字中每个子码在本次软判决译码中的第一译码结果,且每个子码在本次软判决译码中的第一码结果包括一个子码的各个比特位在本次软判决译码中的硬输出结果,若该目标码字为译码设备新接收的码字,则译码设备可以将该目标码字在本次软判决译码中的第一译码结果与该目标码字的每个比特位进行关联存储。在一种可能的方式中,译码设备可以将该目标码字的每个比特位在本次软判决译码中的硬输出结果存储在第一缓存的一个存储空间中,一个存储空间对应一个存储地址;当将该目标码字的每个比特位在本次软判决译码中的硬输出结果均存储完成后,译码设备生成该目标码字的第二存储信息,该码字的第二存储信息可以包括每个比特位的位标识、每个比特位在本次软判决译码中的硬输出结果的存储地址以及该目标码字的码字标识;当该译码设备生成该目标码字的第二存储信息后,可以将该目标码字的第二存储信息存储在第一缓存中的目标存储空间,该第一缓存中的目标存储空间用于存储各个码字的第二存储信息,以便后续可以根据目标存储空间中该目标码字的第二储信息,从第一缓存中查找该目标码字中每个比特位在本次软判决译码中的硬输出结果。
若该目标码字为译码设备译码过的码字,译码设备可以从第一缓存的目标存储空间中查询该目标码字的第二存储信息,从该目标码字的第二存储信息中确定第一缓存中该目标码字在上一次软判决译码中的第一译码结果;译码设备将第一缓存中该目标码字在上一次软判决译码中的第一译码结果更新为该目标码字在本次软判决译码中的第一译码结果。其中,译码设备将第一缓存中该目标码字在上一次软判决译码中的第一译码结果更新为该目标码字在本次软判决译码中的第一译码结果可以是:译码设备将第一缓存中该目标子码的各个子码在上一次软判决译码中的第一译码结果更新为目标子码的各个子码在本次软判决译码中的第一译码结果。在一种可能的实现方式中,译码设备将第一缓存中该目标码字的各个比特位在上一次软判决译码中的硬输出结果更新为该目标码字的各个比特位在本次软判决译码中的硬输出结果。
对于任一目标码字,译码设备可以从第二缓存的目标存储空间中查询该目标码字的第一存储信息,从该目标码字的第一存储信息中确定第二缓存中该目标码字在上一次软判决译码中的第二译码结果;译码设备将第二缓存中该目标码字在上一次软判决译码中的第二译码结果更新为该目标码字在本次软判决译码中的第二译码结果。其中,译码设备将第二缓存中该目标码字在上一次软判决译码中的第二译码结果更新为该目标码字在本次软判决译码中的第二译码结果的过程可以是:译码设备将第二缓存中该目标码字的各个子码在上一次软判决译码中的第二译码结果更新为该目标码字的各个子码在本次软判决译码中的第二译码结果。在一种可能的实现方式中,译码设备将第二缓存中该目标码字的各个比特位在上一次软判决译码中的硬输出结果更新为该目标码字的各个比特位在本次软判决译码中的硬输出结果。
当译码设备将每个目标码字在本次软判决译码中的译码结果存储完成后,译码设备对多个待处理码字进行的第一次迭代译码结束,译码设备可以对多个待处理码字中除新接收的码字以外的码字进行后续的迭代译码。对于一个迭代译码过程中除第一次迭代译码以外的任一次迭代译码以及进行该任一次迭代译码中的任一码字,译码设备可以以一个子码为单位完成对该任一码字的软判决译码,为了进一步说明以子码为单位对码字进行软判决译码的译码过程,参见图8所示的本申请实施例提供的一种译码方法的流程图,该方法的流程可以包括801-810。
801、译码设备在对任一码字进行本次软判决译码时,对于该码字中的任一子码,获取该子码在上一次软判决译码中的第一译码结果,该码字包括多个子码。
本次软判决译码为当前迭代译码过程中除第一次迭代译码以外的任一次迭代译码,译码设备可以对多个码字进行本次软判决译码,其中,这多个码字包括当前迭代译码过程中上一次迭代译码时的码字,还包括上一个迭代译码过程中所进行的迭代译码时的码字。仍以图3为例,若本次软判决译码为一个迭代译码过程中第2次迭代译码,则译码设备进行本次软判决译码的多个码字为第P-1个码字和第P-2个码字,其中,第P-1个码字为当前迭代译码过程中第一次迭代译码中的码字,第P-2个码字为上一迭代译码过程中进行迭代译码的码字。
由于译码设备每对一个码字进行一次软判决译码后,均会将第二缓存中该码字的第一译码结果更新为该码字最新的第一译码结果,译码设备可以将第二缓存中存储的该码字的最新的译码结果视为该码字在上一次软判决译码中的第一译码结果,因此,该上一次软判决译码可以是在当前迭代译码过程中本次迭代译码的上一次迭代译码,也可以是上一个迭代译码过程中的一次迭代译码。
在本次迭代译码中,当译码设备在对该任一码字进行本次软判决译码时,既可以对该码字进行横向软判决译码,也可以对该码字进行纵向软判决译码,若当前迭代译码过程中上一次迭代译码为横向软判决译码,则本次软判决译码为纵向软判决译码,否则,本次软判决译码为横向软判决译码,仍以图3例,当前一次迭代译码为第2迭代译码,由于第1次迭代译码为横向软判决译码,则第2迭代译码为纵向软判决译码。
该码字包括多个子码,若本次软判决译码为纵向软判决译码,则该多个子码中的任一子码为由该码字中任一列的比特位组成,若本次软判决译码为横向软判决译码,则该多个子码中的任一子码为由该码字中任一行的比特位组成。
当任一子码由该码字中任一列的比特位组成时,译码设备可以从该码字的第二存储信息中,确定纵坐标相同的多组比特位,每组比特位组成一个子码;当任一子码由该码字中任一行的比特位组成时,译码设备可以从该码字的第二存储信息中,确定横坐标相同的多组比特位,每组比特位组成一个子码。对于任一组比特位组成的任一子码,译码设备根据该组比特位中各个比特位的存储地址,从第一缓存中获取该组比特位中各个比特位在上一次软判决译码中的硬输出结果,从而该可以得到该子码的在上一次软判决译码中的第一译码结果。
802、译码设备根据该子码在上一次软判决译码中的第一译码结果,生成该子码的状态信息,该状态信息用于指示该子码在上一次软判决译码中的译码结果是否有效。
该译码设备可以通过该子码在上一次软判决译码中的第一译码结果以及校验矩阵,来确定该子码上一次软判决译码中的译码结果是否有效,在一种可能的实现方式中,译码设备计算校验矩阵与该子码在上一次软判决译码中的第一译码结果的积,当该积为0时,则该状态信息指示该子码在上一次软判决译码中的译码结果有效,否则,该状态信息指示所述子码在上一次软判决译码中的译码结果无效。
该译码设备也可以根据子码的多个伴随式的取值,来确定该子码在上一次软判决译码中的第一译码结果是否有效。在一种可能实现方式中,当该子码的多个伴随式的值为0时,则该状态信息指示该子码在上一次软判决译码中的译码结果有效,否则,该状态信息指示该子码在上一次软判决译码中的译码结果无效。例如BCH子码,若一次软判决译码的纠错能力为t,也即是可以对t个比特位进行纠错,基于BCH子码在上次一软判决译码中的第一译码结果,计算2t个伴随式,若2t个伴随式的值全为0,该状态信息指示该BCH子码在上一次软判决译码中的译码结果有效,若2t个伴随式的值出现非0值,则该状态信息指示该BCH子码在上一次软判决译码中的译码结果无效。
该状态信息可以包括有效标识或无效标识,若该状态信息指示该子码在上一次软判决译码中的译码结果有效,则该状态信息包括有效标识,否则,该状态信息包括无效标识,本申请实施例对该有效标识和无效标识的表示方式不做具体限定。
该状态信息除了与该子码的对应的校验矩阵与该子码在上一次软判决译码中的第一译码结果的积的取值相关,还可以与该子码的循环冗余校验(cyclic redundancycheck,CRC)结果相关,在一种可能的实现方式中,译码设备对该子码在上一次软判决译码中的第一译码结果进行CRC,得到该子码的CRC结果;当校验矩阵与该子码在上一次软判决译码中的第一译码结果的积为0,且该子码的CRC结果指示该子码的校验位正确时,该状态信息指示CRC该子码在上一次软判决译码中的译码结果有效,否则,该状态信息指示CRC该子码在上一次软判决译码中的译码结果无效。
803、当该状态信息指示该子码在上一次软判决译码中的译码结果有效时,译码设备将该子码在上一次软判决译码中的第一译码结果作为该子码在本次软判决译码中的第一译码结果。
由于第一缓存中存储的该子码的第一译码结果为该子码最新的第一译码结果,当该状态信息指示该子码在上一次软判决译码中的译码结果有效时,译码设备可以不对第一缓存中的该子码的第一译码结果进行修改,也即是译码设备将该子码在上一次软判决译码中的第一译码结果作为该子码在本次软判决译码中的第一译码结果。
考虑到软判决译码造成的功耗比硬判决译码造成的功耗要高,若子码在上一次软判决译码中的第一译码结果有效,则无需对该子码再进行一次软判决译码,可以直接将该子码在上一次软判决译码中的译码结果作为该子码在本次软判决译码中的译码结果,从而无需对该码字中的每个子码进行软判决译码,进而可以降低对该码字的进行软判决译码的功耗。
804、当该状态信息指示该子码在上一次软判决译码中的译码结果有效,且该子码的本次软判决译码不是一个迭代译码过程中最后一次软判决译码时,译码设备根据该子码在上一次软判决译码中的第一译码结果,生成该子码在本次软判决译码中的第二译码结果,该一个迭代译码过程包括多次软判决译码。
一个迭代译码过程中的每次迭代译码为对码字进行的一次软判决译码,对码字进行的一次软判决译码也即是对该码字的各个子码分别进行一次软判决译码。当该状态信息指示该子码在上一次软判决译码中的译码结果有效,且该子码的本次软判决译码不是一个迭代译码过程中的最后一次软判决译码时,说明译码设备还要对该码字进行下一次迭代译码,则该译码设备可以通过本步骤804生成该子码在本次软判决译码中的第二译码结果,以便在对该码字进行下一迭代译码时,可以基于上一次各个比特位的第二译码结果进行软判决译码。
该译码设备可以根据该子码在上一次软判决译码中的第一译码结果所对应的符号值以及该子码在上一次软判决译码中的第二译码结果的位宽值,生成该子码在本次软判决译码中的第二译码结果。在一种可能的实现方式中,该译码设备对该子码在上一次软判决译码中的第一译码结果所对应的符号值以及该子码在上一次软判决译码中的第二译码结果的位宽值进行乘法计算,所得的积作为该子码在本次软判决译码中的第二译码结果。其中,第二译码结果的位宽值可以是第二译码结果的位宽允许下的最大位宽值或相对较大的位宽值。
当该状态信息指示该子码在上一次软判决译码中的译码结果有效时,若本次软判决译码是一个迭代译码过程中的最后一次软判决译码,且该码字为待处理码字中最后一个码字时,说明无需再对该码字进行迭代译码,也即是无需对该码字中的子码再次进行软判决译码,则译码设备无需执行本步骤804。仍以图3为例,图3中第P-5个码字中的任一子码在迭代译码5中的第一译码结果为该任一子码的最终的译码结果,而无需对第P-5个码字执行本步骤805。若该码字不是待处理码字中最后一个码字时,说明还需在下一个迭代译码过程中进行迭代译码,则需要执行对该子码执行本步骤804。例如图3中的第P-4个码字,第P-4个码字为一下个译码迭代过程中的最后一个码子,还要对第P-4个码字进行软判决译码,则译码设备对P-4个码子中的子码执行本步骤804。
当本步骤804执行完成后,该译码设备可以将该第二缓存中该子码在上一次软判决译码中的第二译码结果更新为该子码在本次软判决译码中的第二译码结果。在一种可能的实现方式中,该译码设备可以从该码字的第一存储信息中,获取该子码的各个比特位的存储地址,并将第二缓存中每个比特位的存储地址所对应的存储空间中的第二译码结果,更新为每个比特位在本次软判决译码中的硬输出结果。
更新该子码的第二译码结果的过程与步骤705中更新目标子码的第二译码结果的过程同理,在此,本申请实施例对更新该子码第二译码结果的过程不做赘述。
当该译码设备更新完该子码的第二译码结果,若该子码不是该码字中的最后一个子码,则译码设备对该码字中该子码的下一个子码执行步骤801。若该子码为一行比特位组成的子码,则该下一子码为该码字中该子码的下一行子码,若该子码为一列比特位组成的子码,则该下一子码为该码字中该子码的下一列子码。若该子码为该码字中的最后一个子码,则译码设备对该码字的下一个码字执行图8所示的过程。
805、当该状态信息指示该子码在上一次软判决译码中的译码结果无效时,译码设备从第二缓存中读取该子码在上一次软判决译码中的第二译码结果,该第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果。
当该状态信息指示该子码在上一次软判决译码中的译码结果无效时,说明该子码中的至少一个比特位存在错误,则还需对子码进行软判决译码,因此,译码设备可以从第二缓存中读取该子码在上一次软判决译码中的第二译码结果,以便译码设备可以基于该子码在上一次软判决译码中的第二译码结果,对该子码进行软判决译码。
该译码设备可以从该码字的第一存储信息中,获取该子码的每个比特位的存储地址,并根据该子码的每个比特位的存储地址,从第二缓存中获取该子码的在上一次软判决译码中的第二译码结果。
本步骤805所示的过程也即是当该状态信息指示该子码在上一次软判决译码中的译码结果无效时,译码设备获取该子码在上一次软判决译码中的第二译码结果的过程。
806、译码设备基于该子码在上一次软判决译码中的第二译码结果,对该子码进行软判决译码,得到该子码在本次软判决译码中的第一译码结果和该子码在本次软判决译码中的第二译码结果。
步骤806所示的过程也即是对该子码在上一次软判决译码中的第二译码结果进行软判决译码,本申请实施例对该子码在上一次软判决译码中的第二译码结果进行软判决译码的过程不做具体限定。
807、当该子码的本次软判决译码不是一个迭代译码过程中最后一次迭代译码时,译码设备将第一缓存中该子码在上一次软判决译码中的第一译码结果更新为该子码在本次软判决译码中的第一译码结果。
当该本次软判决译码不是一个迭代译码过程中最后一次迭代译码时,说明还需要对该子码再次进行软判决译码,则需要将该子码在本次的软判决译码过程中的第一译码结果进行存储,当译码设备将该码字中各个子码在本次软判决译码的第一译码结果均存储在第一缓存后,也即是将该码字在本次软判决译码的第一译码结果存储在第一缓存,因此,在对该码字进行下一次迭代译码时,该译码设备无论是该码字的横向子码进行软判决译码,还是对该码字的纵向子码进行软判决译码,均可以从第一缓存中获取该码字的任一个子码在本次软判决译码中的第一译码结果,以便在下一次迭代译码中对该任一个子码在本次的软判决译码的第一译码结果进行判断。该译码设备可以从该码字的第二存储信息中,获取该子码的各个比特位的存储地址,并将第二缓存中每个比特位的存储地址所对应的存储空间中的第一译码结果,更新为每个比特位在本次软判决译码中的硬输出结果。
808、当该子码的本次软判决译码不是一个迭代译码过程中最后一次迭代译码时,译码设备将该第二缓存中该子码在上一次软判决译码中的第二译码结果更新为该子码在本次软判决译码中的第二译码结果。
当该本次软判决译码不是一个迭代译码过程中最后一次迭代译码时,说明还需要对该码字再次进行软判决译码,则需要将该子码在本次的软判决译码过程中的第二译码结果进行存储,当将该码字中每个子码在本次软判决译码中的第二译码结果均存储在第二缓存后,以便在对该码字进行下一次迭代译码时,对该码字的任一子码在本次的软判决译码的第一译码结果进行判决。译码设备更新该子码的第二译码结果的过程在上述步骤804中有介绍,在此本申请实施例该本步骤808不做赘述。
809、当该子码不是该码字中最后一个子码时,译码设备对该子码的下一个子码执行步骤801。
当该子码为该码字中最后一个子码时,若该码字不是当前译码迭代过程中的最后一个码字时,则该码字的下一个码字执行图8所示的过程。
810、当该子码的本次软判决译码为一个迭代译码过程中最后一次迭代译码时,则译码设备输出该子码在本次软判决译码中的第一译码结果。
当该本次软判决译码为一个迭代译码过程中最后一次迭代译码时,若该码字为待处理码字中的最后一个码字时,译码设备将该子码在本次软判决译码的第一译码结果作为该子码的最终译码结果,输出该子码在本次软判决中的第一译码结果。由于该待处理码字为一个迭代译码过程进行迭代译码的码字,当该本次软判决译码为一个迭代译码过程中最后一次迭代译码时,若该码字为待处理码字中的最后一个码字,说明无需对该码字再次进行软判决译码,则该子码的在本次软判决译码中的第一译码结果也即是该子码最终的译码结果,译码设备可以直接输出该子码在本次软判决译码中的第一译码结果。该译码设备输出的最后一个码字的各个子码的第一译码结果也即是最后一个码字的最终译码结果。
本申请实施例提供的方法,通过子码的生成状态信息,对该子码在上一次软判决译码中的第一译码结果进行判断,若该子码在上一次软判决译码中的译码结果有效,则无需对该子码再进行一次软判决译码,可以直接将该子码在上一次软判决译码中的第一译码结果作为该子码在本次软判决译码中的第一译码结果,从而无需对该码字中的每个子码进行软判决译码,进而可以降低对码字进行软判决译码的功耗。
为了形象说明图8所示的过程,参见图9所示的本申请实施例提供的一种对码字进行译码的流程图,该流程可以包括步骤901-911。
901、对于任一码字中的任一子码,译码设备从第一缓存中获取该子码在上一次软判决译码中的第一译码结果。
902、译码设备根据该子码在上一次软判决译码中的第一译码结果,生成该子码的状态信息。
903、译码设备判断该状态信息是否指示该子码在上一次软判决译码中的译码结果有效。
904、当状态信息指示该子码在上一次软判决译码中的译码结果有效时,则译码设备判断对该任一码字的软判决译码是否为一个迭代译码过程中最后一次迭代译码。
905、若任一码字的软判决译码为一个迭代译码过程中最后一次迭代译码,则译码设备输出该子码在上一次软判决译码中的第一译码结果。
若该子码不是该码字中最后一个子码,则对跳转至该子码的一下子码,对下一个子码执行本步骤901。
906、若任一码字的软判决译码不是一个迭代译码过程中最后一次迭代译码,则译码设备根据该子码在上一次软判决译码中的第一译码结果,生成该子码在本次软判决译码中的第二译码结果,并将该子码在本次软判决译码中的第二译码结果写入第二缓存。
其中,该子码在本次软判决译码中的第二译码结果写入第二缓存的过程也即是将该子码在本次软判决译码中的第二译码结果存储至第二缓存的过程。若该子码不是该码字中最后一个子码,则对跳转至该子码的一下子码,对下一个子码执行本步骤901。
907、当状态信息指示该子码在上一次软判决译码中的译码结果无效,译码设备从第二缓存中读取该子码在上一次软判决译码中的第二译码结果。
908、译码设备基于该子码在上一次软判决译码中的第二译码结果,对该子码进行软判决译码,得到该子码在本次软判决译码中的第一译码结果和该子码在本次软判决译码中的第二译码结果。
909、译码设备判断对该任一码字的软判决译码是否为一个迭代译码过程中最后一次迭代译码。
910、若任一码字的软判决译码为一个迭代译码过程中最后一次迭代译码,则译码设备输出该子码在本次软判决译码中的第一译码结果。
911、若任一码字的软判决译码不是一个迭代译码过程中最后一次迭代译码,则译码设备将该子码在本次软判决译码中的第一译码结果写入第一缓存,将该子码在本次软判决译码中的第二译码结果写入第二缓存。
本步骤911所示的过程也即是步骤807-808所示的过程。若该子码不是该码字中最后一个子码,则对跳转至该子码的一下子码,对下一个子码执行本步骤901。
需要说明的是,在一种可能的实现方式中,译码设备每开始对一个码字进行软判决译码之前,可以先判断本次软判决译码是否为一个迭代译码过程中最后一次迭代译码,如果是,译码设备在对一个码字进行软判决译码时,若获取到该码字中任一子码在本次软判决译码中的第一译码结果,则可以直接输出任一子码在本次软判决译码中的第一译码结果,而无需在获取任一子码在本次软判决译码中的第一译码结果后,再判断本次软判决译码是否为一个迭代译码过程中最后一次迭代译码。
图10是本申请实施例提供的一种译码设备的结构示意图,该设备1000包括:
获取模块1001,用于执行上述步骤801;
第一生成模块1002,用于执行上述步骤802;
确定模块1003,用于执行上述步骤802。
可选地,第一生成模块1002包括:
计算单元,用于计算校验矩阵的偏置矩阵与所述子码在上一次软判决译码中的第一译码结果的积;
确定单元,用于基于所述积的取值,确定所述状态信息。
可选地,所述确定单元,用于当所述积为0时,则所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,否则,所述状态信息指示所述子码在上一次软判决译码中的译码结果无效。
可选地,所述设备1000还包括:
第二生成模块,用于执行上述步骤804。
可选地,所述第二生成模块,用于将根据所述子码在上一次软判决译码中的第一译码结果所对应的符号值以及所述子码在上一次软判决译码中的第二译码结果的位宽值,生成所述子码在本次软判决译码中的第二译码结果。
可选地,所述设备1000还包括译码模块:
所述获取模块,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果无效时,获取所述子码在上一次软判决译码中的第二译码结果;
所述译码模块,用于执行上述步骤806。
可选地,所述子码在本次软判决译码中的第一译码结果包括所述子码的各个比特位在本次软判决译码中的硬输出结果;所述子码在本次软判决译码中的第二译码结果包括所述子码的各个比特位在本次软判决译码中的软输出结果。
可选地,所述设备1000还包括:
第一更新模块,用于将第一缓存中所述子码在上一次软判决译码中的第一译码结果更新为所述子码在本次软判决译码中的第一译码结果,所述第一缓存用于存储至少一个码字中每个子码在软判决译码时生成的第一译码结果;
第二更新模块,用于将第二缓存中所述子码在上一次软判决译码中的第二译码结果更新为所述子码在本次软判决译码中的第二译码结果,所述第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果。
可选地,用于所述设备1000还包括:
输出模块,用于执行步骤810。
可选地,所述输出模块,用于当所述本次软判决译码为一个迭代译码过程中最后一次迭代译码时,若所述码字为待处理码字中的最后一个码字,将所述子码在本次软判决译码的第一译码结果作为所述子码的最终译码结果,输出所述子码在本次软判决中的第一译码结果,所述待处理码字为一个迭代译码过程进行迭代译码的码字。
该译码设备通过子码的生成状态信息,对该子码在上一次软判决译码中的第一译码结果进行判断,若该子码在上一次软判决译码中的译码结果有效,则无需对该子码再进行一次软判决译码,可以直接将该子码在上一次软判决译码中的第一译码结果作为该子码在本次软判决译码中的第一译码结果,从而无需对该码字中的每个子码进行软判决译码,进而可以降低对码字进行软判决译码的功耗。
需要说明的是:上述实施例提供的译码设备在对码字进行译码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的译码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
可选地,本申请提供实施例提供一种芯片,所述芯片包括处理器,所述处理器用于实现上述译码方法所执行的操作。
可选地,本申请提供实施例提供一种计算机程序产品,所述计算机程序产品包括一条或多条指令,所述一条或多条指令可以由译码设备的处理器执行,以上述译码方法所执行的操作。
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (18)

1.一种译码方法,其特征在于,所述方法包括:
在对任一码字进行本次软判决译码时,对于所述码字中的任一子码,获取所述子码在上一次软判决译码中的第一译码结果,所述码字包括多个子码;
根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码的状态信息,所述状态信息用于指示所述子码在上一次软判决译码中的译码结果是否有效;
当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效时,将所述子码在上一次软判决译码中的第一译码结果作为所述子码在本次软判决译码中的第一译码结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码的状态信息包括:
计算校验矩阵的偏置矩阵与所述子码在上一次软判决译码中的第一译码结果的积;
基于所述积的取值,确定所述状态信息。
3.根据权利要求1-2任一所述的方法,其特征在于,所述方法还包括:
当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,且所述子码的本次软判决译码不是一个迭代译码过程中的最后一次软判决译码时,根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码在本次软判决译码中的第二译码结果,所述一个迭代译码过程包括多次软判决译码。
4.根据权利要求3所述的方法,其特征在于,所述根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码在本次软判决译码中的第二译码结果包括:
根据所述子码在上一次软判决译码中的第一译码结果所对应的符号值以及所述子码在上一次软判决译码中的第二译码结果的位宽值,生成所述子码在本次软判决译码中的第二译码结果。
5.根据权利要求1所述的方法,其特征在于,所述获取所述子码在上一次软判决译码中的第一译码结果之后,所述方法还包括:
当所述状态信息指示所述子码在上一次软判决译码中的译码结果无效时,获取所述子码在上一次软判决译码中的第二译码结果;
基于所述子码在上一次软判决译码中的第二译码结果,对所述子码进行软判决译码,得到所述子码在本次软判决译码中的第一译码结果和所述子码在本次软判决译码中的第二译码结果。
6.根据权利要求5所述的方法,其特征在于,所述子码在本次软判决译码中的第一译码结果包括所述子码的各个比特位在本次软判决译码中的硬输出结果;所述子码在本次软判决译码中的第二译码结果包括所述子码的各个比特位在本次软判决译码中的软输出结果。
7.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将第一缓存中所述子码在上一次软判决译码中的第一译码结果更新为所述子码在本次软判决译码中的第一译码结果,所述第一缓存用于存储至少一个码字中每个子码在软判决译码时生成的第一译码结果;
将第二缓存中所述子码在上一次软判决译码中的第二译码结果更新为所述子码在本次软判决译码中的第二译码结果,所述第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述子码的本次软判决译码为一个迭代译码过程中最后一次迭代译码时,则输出所述子码在本次软判决译码中的第一译码结果。
9.一种译码设备,其特征在于,所述设备包括:
输入接口,用于在对任一码字进行本次软判决译码时,对于所述码字中的任一子码,获取所述子码在上一次软判决译码中的第一译码结果,所述码字包括多个子码;
处理器,用于根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码的状态信息,所述状态信息用于指示所述子码在上一次软判决译码中的译码结果是否有效;
所述处理器,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效时,将所述子码在上一次软判决译码中的第一译码结果作为所述子码在本次软判决译码中的第一译码结果。
10.根据权利要求9所述的设备,其特征在于,所述处理器用于:
计算校验矩阵的偏置矩阵与所述子码在上一次软判决译码中的第一译码结果的积;
基于所述积的取值,确定所述状态信息。
11.根据权利要求9-10任一所述的设备,其特征在于,所述处理器,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果有效,且所述子码的本次软判决译码不是一个迭代译码过程中的最后一次软判决译码时,根据所述子码在上一次软判决译码中的第一译码结果,生成所述子码在本次软判决译码中的第二译码结果,所述一个迭代译码过程包括多次软判决译码。
12.根据权利要求11所述的设备,其特征在于,所述处理器,用于根据所述子码在上一次软判决译码中的第一译码结果所对应的符号值以及所述子码在上一次软判决译码中的第二译码结果的位宽值,生成所述子码在本次软判决译码中的第二译码结果。
13.根据权利要求9所述的设备,其特征在于,所述输入接口,还用于当所述状态信息指示所述子码在上一次软判决译码中的译码结果无效时,获取所述子码在上一次软判决译码中的第二译码结果;
所述处理器,还用于基于所述子码在上一次软判决译码中的第二译码结果,对所述子码进行软判决译码,得到所述子码在本次软判决译码中的第一译码结果和所述子码在本次软判决译码中的第二译码结果。
14.根据权利要求13所述的设备,其特征在于,所述子码在本次软判决译码中的第一译码结果包括所述子码的各个比特位在本次软判决译码中的硬输出结果;所述子码在本次软判决译码中的第二译码结果包括所述子码的各个比特位在本次软判决译码中的软输出结果。
15.根据权利要求13所述的设备,其特征在于,所述设备还包括第一缓存和第二缓存,所述第一缓存用于存储至少一个码字中每个子码在软判决译码时生成的第一译码结果,所述第二缓存用于存储至少一个码字中每个子码在软判决译码时生成的第二译码结果;
所述处理器还用于:
将所述第一缓存中所述子码在上一次软判决译码中的第一译码结果更新为所述子码在本次软判决译码中的第一译码结果;
将所述第二缓存中所述子码在上一次软判决译码中的第二译码结果更新为所述子码在本次软判决译码中的第二译码结果。
16.根据权利要求9所述的设备,其特征在于,所述设备还包括:
输出接口,用于当所述子码的本次软判决译码为一个迭代译码过程中最后一次迭代译码时,则输出所述子码在本次软判决译码中的第一译码结果。
17.一种可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至权利要求8任一项所述的译码方法所执行的操作。
18.一种芯片,其特征在于,所述芯片包括处理器,所述处理器用于实现如权利要求1-8任一项所述的译码方法所执行的操作。
CN201911312200.XA 2019-12-18 2019-12-18 译码方法、设备、可读存储介质、芯片及计算机程序产品 Active CN113014267B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201911312200.XA CN113014267B (zh) 2019-12-18 2019-12-18 译码方法、设备、可读存储介质、芯片及计算机程序产品
PCT/CN2020/115399 WO2021120729A1 (zh) 2019-12-18 2020-09-15 译码方法、设备、可读存储介质、芯片及计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911312200.XA CN113014267B (zh) 2019-12-18 2019-12-18 译码方法、设备、可读存储介质、芯片及计算机程序产品

Publications (2)

Publication Number Publication Date
CN113014267A CN113014267A (zh) 2021-06-22
CN113014267B true CN113014267B (zh) 2024-04-23

Family

ID=76382403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911312200.XA Active CN113014267B (zh) 2019-12-18 2019-12-18 译码方法、设备、可读存储介质、芯片及计算机程序产品

Country Status (2)

Country Link
CN (1) CN113014267B (zh)
WO (1) WO2021120729A1 (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475380A (zh) * 2013-09-06 2013-12-25 清华大学 用于图像处理器的并行Turbo 译码方法
CN106537787A (zh) * 2014-07-31 2017-03-22 华为技术有限公司 译码方法和译码器
CN108494412A (zh) * 2018-04-17 2018-09-04 国家新闻出版广电总局广播科学研究院 一种基于参数估计的多因子修正ldpc码译码方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6543021B1 (en) * 1998-07-16 2003-04-01 Canon Kabushiki Kaisha Method and device for coding and transmission using a sub-code of a product code
CN101309086A (zh) * 2008-06-27 2008-11-19 东南大学 里德-所罗门码级联反馈系统卷积码的系统的译码方法
EP3039788B1 (en) * 2013-08-29 2021-07-07 Harman International Industries, Incorporated Soft decision decoding method and system thereof
CN109379088B (zh) * 2018-12-13 2022-03-08 浙江天则通信技术有限公司 一种并行Turbo码迭代译码的方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103475380A (zh) * 2013-09-06 2013-12-25 清华大学 用于图像处理器的并行Turbo 译码方法
CN106537787A (zh) * 2014-07-31 2017-03-22 华为技术有限公司 译码方法和译码器
CN108494412A (zh) * 2018-04-17 2018-09-04 国家新闻出版广电总局广播科学研究院 一种基于参数估计的多因子修正ldpc码译码方法及装置

Also Published As

Publication number Publication date
CN113014267A (zh) 2021-06-22
WO2021120729A1 (zh) 2021-06-24

Similar Documents

Publication Publication Date Title
US8448050B2 (en) Memory system and control method for the same
US9391641B2 (en) Syndrome tables for decoding turbo-product codes
JP2004147318A (ja) Ldpc復号化装置及びその方法
US9160367B2 (en) Integrated-interleaved low density parity check (LDPC) codes
US8751895B2 (en) Semiconductor memory device and decoding method
JP2007166605A (ja) パリティ検査行列、パリティ検査行列の生成方法、エンコーディング方法及びエラー訂正装置
CN111858142A (zh) 一种数据处理方法、装置及电子设备和存储介质
CN112000512B (zh) 一种数据修复方法及相关装置
US10606697B2 (en) Method and apparatus for improved data recovery in data storage systems
KR20090041224A (ko) 연접 디코더 및 연접 디코딩 방법
US9548761B2 (en) Coding and decoding of error correcting codes
JP2009515420A (ja) データを復号化及び符号化するための装置及び方法
JP7429223B2 (ja) ターボ積符号の復号方法、装置、デコーダー及びコンピュータ記憶媒体
WO2019096184A1 (zh) 阶梯码的解码方法、装置及存储介质
CN110113058B (zh) 编译码方法、装置、设备及计算机可读存储介质
US10193574B1 (en) Efficient syndrome calculation in processing a GLDPC code
CN113014267B (zh) 译码方法、设备、可读存储介质、芯片及计算机程序产品
US11750219B2 (en) Decoding method, decoder, and decoding apparatus
CN115993939A (zh) 存储系统重复数据删除方法及装置
US10516418B2 (en) Hybrid type iterative decoding method and apparatus
CN111525931A (zh) Ldpc译码器、ldpc译码方法、存储介质和电子设备
WO2019011352A1 (zh) 一种阶梯码解码方法和阶梯码解码装置
RU2014110139A (ru) Полярные коды произвольной длины
CN114138543A (zh) 数据条带编码方法、系统、设备及介质
KR101496052B1 (ko) 블록 단위 연접 bch 부호 성능 개선 및 오류마루 경감을 위해 순환 자리 이동을 활용하는 복호 기법 및 회로

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