CN111277276B - 一种排序方法及装置 - Google Patents
一种排序方法及装置 Download PDFInfo
- Publication number
- CN111277276B CN111277276B CN201811483150.7A CN201811483150A CN111277276B CN 111277276 B CN111277276 B CN 111277276B CN 201811483150 A CN201811483150 A CN 201811483150A CN 111277276 B CN111277276 B CN 111277276B
- Authority
- CN
- China
- Prior art keywords
- data
- bit
- processing
- tight
- order information
- 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
- 238000012163 sequencing technique Methods 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 103
- 238000005520 cutting process Methods 0.000 claims abstract description 43
- 238000000034 method Methods 0.000 claims abstract description 33
- 238000013138 pruning Methods 0.000 claims abstract description 17
- 238000012217 deletion Methods 0.000 claims abstract description 16
- 230000037430 deletion Effects 0.000 claims abstract description 16
- 238000000605 extraction Methods 0.000 claims description 37
- 230000001502 supplementing effect Effects 0.000 claims description 11
- 230000000295 complement effect Effects 0.000 claims description 8
- 238000010586 diagram Methods 0.000 description 10
- 238000003860 storage Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 241000169170 Boreogadus saida Species 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 101150044251 OGT gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000013075 data extraction Methods 0.000 description 2
- 238000005429 filling process Methods 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000000153 supplemental effect Effects 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/6591—Truncation, saturation and clamping
-
- 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/13—Linear codes
-
- 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/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明实施例公开了一种排序方法及装置,其中,所述方法包括:获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W;根据所述截位位宽W对输入的数据进行截位处理,并将通过截位处理截掉的低位信息存储到存储器中;根据所述路径删减指示抽取数据,并记录所抽取数据的位序;将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数;基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据。
Description
技术领域
本发明涉及通讯领域,尤其涉及一种排序方法及装置。
背景技术
Polar码(极性码)在译码时通常采用串行抵消列表(SCL,SuccessiveCancellation List)算法,该算法在译码时最多同时维护L条路径,对每一条路径进行度量,以提升译码性能。其中幸存路径数L必须是2的整数次幂,且增大L能够提升译码器的性能,但同时也意味着增大译码的复杂度。
Polar码在译码之前首先要根据译码树来确定译码的顺序。在译码过程中,译码器根据当前节点在译码树当中的位置来对应更新对数似然比(LLR,likelihood Rate)和路径度量值(PM,Path Merit),如果是信息比特则将当前信息比特对应的译码路径分裂成2条路径,如果当前扩展的路径总数大于L时,则启动排序算法,选出PM值最小的L条路径。当除了根节点之外的2N0-2(N0为母码码长)个节点都完成迭代之后,结束译码过程,按照一定的规则将译码结果输出。
在每次译码过程中如果扩展的路径数大于幸存路径数L,就要通过排序选择出PM值最小的L条幸存路径。排序性能的好坏,直接影响译码性能。现有的SCL译码器中的排序运算时延长,硬件资源占用大,导致排序性能低,功耗大,而且灵活性差。
发明内容
为解决上述技术问题,本发明实施例期望提供了一种排序方法及装置,能克服现有技术中polar译码过程中存在的译码时延大,硬件资源消耗大,灵活性差等问题。
第一方面,本发明实施例提供了一种排序方法,所述方法包括:
获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W;
根据所述截位位宽W对输入的数据进行截位处理,并将通过截位处理截掉的低位信息存储到存储器中;
根据所述路径删减指示抽取数据,并记录所抽取数据的位序;
将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数;
基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据。
本发明实施例中,可选地,所述基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据,包括:
当经紧排处理得到的数据个数大于L时,用预设阵列对经紧排处理后得到的数据进行双调排序,从中抽取L个数据;
当经紧排处理得到的数据个数小于或等于L时,通过补位处理将紧排的数据个数补齐到L个数据。
本发明实施例中,可选地,所述从中抽取L个数据,包括:
选出最小的L个数据并确定所述L个数据中每个数据对应的位序。
本发明实施例中,可选地,通过补位处理将紧排的数据个数补齐到L个数据,包括:
根据紧排处理得到的数据所对应的位序信息,从存储器中将截掉的低位信息提取出来,并将紧排处理得到的数据拼接成原始数据;
确定补充数据的个数及其具体值,其中,每个补充数据为当前数据位宽所能表示的最大值。
本发明实施例中,可选地,当经紧排处理得到的数据个数大于L时,确定L个待输出的数据之后,还包括:
根据选出的L个数据的位序信息从存储器中取出对应的截掉的低位信息;
根据对应的截掉的低位信息,将所述L个数据进行补全处理。
本发明实施例中,可选地,所述根据所述路径删减指示抽取数据,包括:
根据每个幸存路径的路径删减指示抽取数据,并将各个幸存路径抽取处理后得到的数据紧排在一起,其中,抽取规则为保留所有信息位对应的数据。
第二方面,本发明实施例提供了一种排序装置,所述装置包括:
获取模块,用于获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W;
截位模块,用于根据所述截位位宽W对输入的数据进行截位处理,并将通过截位处理截掉的低位信息存储到存储器中;
抽取模块,用于根据所述路径删减指示抽取数据,并记录所抽取数据的位序;将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数;
输出控制模块,用于基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据。
本发明实施例中,可选地,所述装置还包括:
排序模块,用于利用预设阵列对所述抽取模块经紧排处理后得到的数据进行双调排序,从中抽取L个数据;
补位模块,用于当所述抽取模块经紧排处理得到的数据个数小于或等于L时,通过补位处理将紧排的数据个数补齐到L个数据。
本发明实施例中,可选地,所述排序模块,还用于:
选出最小的L个数据并确定所述L个数据中每个数据对应的位序。
本发明实施例中,可选地,所述补位模块,还用于:
根据紧排处理得到的数据所对应的位序信息,从存储器中将截掉的低位信息提取出来,并将紧排处理得到的数据拼接成原始数据;
确定补充数据的个数及其具体值,其中,每个补充数据为当前数据位宽所能表示的最大值。
本发明实施例中,可选地,所述补位模块,还用于:
当经紧排处理得到的数据个数大于L时,确定L个待输出的数据之后,根据选出的L个数据的位序信息从存储器中取出对应的截掉的低位信息;根据对应的截掉的低位信息,将所述L个数据进行补全处理。
本发明实施例中,可选地,所述抽取模块,还用于:
根据每个幸存路径的路径删减指示抽取数据,并将各个幸存路径抽取处理后得到的数据紧排在一起,其中,抽取规则为保留所有信息位对应的数据。
第三方面,本发明实施例还提供了一种计算机存储介质,所述计算机存储介质中存储有计算机可执行指令,所述计算机可执行指令用于执行本发明实施例所述的排序方法。
本发明实施例的技术方案中,获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W;根据所述截位位宽W对输入的数据进行截位处理,并将通过截位处理截掉的低位信息存储到存储器中;根据所述路径删减指示抽取数据,并记录所抽取数据的位序;将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数;基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据;通过本发明实施例提出的技术方案,能克服现有技术中polar译码过程中存在的译码时延大,硬件资源消耗大,灵活性差等问题。
附图说明
图1为本发明实施例的一种排序方法的流程示意图;
图2为本发明实施例的传统双调排序原理示意图;
图3为本发明实施例的bmN基本单元示意图;
图4为本发明实施例的64输入输出全排序bm阵列示意图;
图5为本发明实施例的一种排序装置的组成结构示意图;
图6为本发明实施例的一种排序系统的系统架构示意图;
图7为本发明实施例的支持N0=512,L=32的排序bm阵列示意图。
具体实施方式
为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。
实施例一
图1为本发明实施例的一种排序方法的流程示意图,应用于Polar码的译码过程中;如图1所示,所述方法包括:
步骤101:获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W。
本实施例中,所述配置信息可根据Polar码的译码需求预先设定。
步骤102:根据所述截位位宽W对输入的数据进行截位处理,并将通过截位处理截掉的低位信息存储到存储器中。
也就是说,根据配置信息中的截位位宽W截掉输入数据的低比特,并将低比特数据存储到存储器中。
其中,根据截位位宽W对输入的数据进行截位,其截位方式为:
假设输入的数据为a[N:0],则截位后输出的数据为a[N:W],并将截掉的数据a[W-1:0]存储到存储器中。
如此,通过截位处理得到的高位信息将作为步骤103的输入数据。
步骤103:根据所述路径删减指示抽取数据,并记录所抽取数据的位序。
在一些可选实施方式中,所述根据所述路径删减指示抽取数据,包括:
根据每个幸存路径的路径删减指示抽取数据,并将各个幸存路径抽取处理后得到的数据紧排在一起,其中,抽取规则为保留所有信息位对应的数据。
例如:当前有两条幸存路径,抽取规则为保留所有信息位对应的数据。第一条幸存路径抽取前的数据格式为{info0,null,info1,null,info2,null,info3,null},这里数据路径删减指示info0~info3是信息位对应的数据,null指非信息位对应的数据,抽取后数据排列为{info0,info1,info2,info3}。第二条幸存路径抽取前的数据格式为{info6,null,info7,null,info8,null,info9,null},抽取后数据排列为{info6,info7,info8,info9}。那么,将两条路径抽取的信息进行紧排处理,则得到{info0,info1,info2,info3,info6,info7,info8,info9}。
具体地,首先对步骤103接收到的所有输入数据按递增顺序进行编号,所述编号用来记录每个数据的位序。根据配置信息路径删减指示抽取数据,并将所抽取数据的位序记录下来,一起发送给后面的处理模块如双调排序bmN阵列或者输出控制模块。以4b-SCL为例,每个幸存路径每次进行4bit译码,最大扩展出16条路径,需要给出这4bit里哪个bit需要进行扩展。路径删减指示格式为{info_flg0,info_flg1,info_flg2,info_flg3},假设info_flg0和info_flg2为1,表示这两比特对应的路径需要进行扩展,即这两比特分别可以取值0和1;info_flg1和info_flg2为0表示这两比特对应的路径不扩展,即这两比特只能取值0,则保留的数据路径编号为4’b0000,4’b0010,4’b1000,4’b1010,即抽取第0,2,8,10条路径对应的数据。
步骤104:将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数。
如此,便于步骤105通过经紧排处理得到的数据的个数来选择用于确定L个待输出的数据的具体方式。
需要说明的是,在抽取的过程中会同时将每个数据的位序进行记录。比如:{info0,null,info1,null,info2,null,info3,null},info0对应的位序为0,第一个null对应的位序为1,info1对应的位序为2,第二个null对应的位序为3,info2对应的位序为4,第三个null对应的位序为5,info3对应的位序为6,第四个null对应的位序为7。抽取后数据排列为{info0,info1,info2,info3},对应的位序记录为{0,2,4,6}。
步骤105:基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据。
在一些可选实施方式中,所述基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据,包括:
当经紧排处理得到的数据个数大于L时,用预设阵列对经紧排处理后得到的数据进行双调排序,从中抽取L个数据;
当经紧排处理得到的数据个数小于或等于L时,通过补位处理将紧排的数据个数补齐到L个数据。
这里,所述预设阵列为bmN阵列(排序基本单元)。
可选地,所述从中抽取L个数据,包括:
选出最小的L个数据并确定所述L个数据中每个数据对应的位序。
这里,所述的位序与步骤103抽取数据过程中进行编号时所给出的位序,是一致的。
本实施例中,支持任意N0选L,N0取值包括但不限于32、64、128、256、512。L取值包括但不限于8、16、32。
如此,根据幸存路径数L,母码长度N0以及有效数据的个数从bmN阵列中抽取L个数据。这里,有效数据的个数可以理解为经紧排处理得到的数据个数。
图2示出了传统双调排序基本原理图,bmN为输入N个数,排序输出这个N个数据的有序序列。例如,bm4为输入4个数排序输出这个4个数据的有序序列。本发明实施例中对bm4进行了改进优化。如图2所示,bm16从左到右共有4级比较。其中前2级比较可以合为1级bm4_b但这里需要对数据间隔索取,如图2中黑点所示位置的数据为送入1个bm4_b的4个数据,只有这样间隔抽取后的4个数据才可以合为1个bm4_b。后面的2级比较可以用一个传统的bm4实现,我们记为bm4_a,采用两两比较同时判决的方式完成全排序。经过上述优化,原bm16的4级bm2比较逻辑可以缩减为2级bm4比较逻辑。
图2中黑点标示的4个数据之间是有规律的,因为它的前一级输入是双调序列,那么一定有dat1>=dat0&dat2>=dat3,这样就可以将原来bm4_a中6个比较器减少至4个;另外bm4_b的最大值只能是da1或dat2,最小值只能是dat0或dat3,次小或次大值只能是dat0或dat3,根据这个规律bm4_b用很少的逻辑就可以实现4个数据全排序。
基于上述原理,图3列出了经过优化后的排序基本单元bmN。
bm4:由bm4_a组成;
bm8:由bm4_b和bm2级联组成;
bm16:由bm4_b和bm4_a级联组成;
bm32:由bm4_b,bm2和bm4_a级联组成;
bm64:由bm4_b,bm4_a和bm4_a级联组成。
图4列出了64个数据全排序所需排序阵列。当N0=32,L=8或16时,从bm32单元里的第一级bm4_b阵列输出数据中抽取出最小的8或16个数据,即可满足polar译码需求。当N0=64,L=16或32时,从bm64单元里的第一级bm4_b阵列输出数据中抽取出最小的16或32个数据,即可满足polar译码需求。按照相同的原理bm64后面再级联2级bm64,一级bm2和一级bm4就可以用一套阵列实现N0=32,64,128,256,512选L的排序操作。
可选地,通过补位处理将紧排的数据个数补齐到L个数据,包括:
根据紧排处理得到的数据所对应的位序信息,从存储器中将截掉的低位信息提取出来,并将紧排处理得到的数据拼接成原始数据;
确定补充数据的个数及其具体值,其中,每个补充数据为当前数据位宽所能表示的最大值。
比如,若确定补充数据的个数为X,那么,这X个补充数据的数值是一致的。
如此,假设经紧排处理得到的数据个数为L-X,那么,先将紧排处理得到的这L-X数据补全,然后再确定X个补充数据及这X个补充数据的具体值。
本发明实施例中,可选地,当经紧排处理得到的数据个数大于L时,确定L个待输出的数据之后,还包括:
根据选出的L个数据的位序信息从存储器中取出对应的截掉的低位信息;
根据对应的截掉的低位信息,将所述L个数据进行补全处理。
如此,先从bmN阵列中抽取L个数据,然后再对所述L个数据进行补全处理。
具体地,用数据紧排和排序的过程中记录的位序信息,从步骤102的存储器中将截掉的低位信息提取出来,并拼接成原始数据输出,拼接方式为{a[N:W],a[W-1:0]},即输出数据为a[N:0]。
通过本发明实施例提出的技术方案,与现有技术相比,能够用较少的硬件资源完成polar译码所需排序功能,而且易于进行高速电路设计。通过多抽头bmN阵列,可以用一套电路支持各种码长的polar译码排序需求。
实施例二
图5为本发明实施例的一种排序装置的组成结构示意图,如图5所示,所述排序装置包括:获取模块10、截位模块20、抽取模块30、输出控制模块40;其中,
所述获取模块10,用于获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W;
所述截位模块20,用于根据所述截位位宽W对输入的数据进行截位处理,并将通过截位处理截掉的低位信息存储到存储器中;
所述抽取模块30,用于根据所述路径删减指示抽取数据,并记录所抽取数据的位序;将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数;
所述输出控制模块40,用于基于所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据。
作为一种实施方式,可选地,所述装置还包括:
排序模块50,用于利用预设阵列对所述抽取模块经紧排处理后得到的数据进行双调排序,从中抽取L个数据;
补位模块60,用于当所述抽取模块经紧排处理得到的数据个数小于或等于L时,通过补位处理将紧排的数据个数补齐到L个数据。
在一些可选实施方式中,所述排序模块50,还用于:
选出最小的L个数据并确定所述L个数据中每个数据对应的位序。
在一些可选实施方式中,所述补位模块60,还用于:
根据紧排处理得到的数据所对应的位序信息,从存储器中将截掉的低位信息提取出来,并将紧排处理得到的数据拼接成原始数据;
确定补充数据的个数及其具体值,其中,每个补充数据为当前数据位宽所能表示的最大值。
在一些可选实施方式中,所述补位模块60,还用于:
当经紧排处理得到的数据个数大于L时,确定L个待输出的数据之后,根据选出的L个数据的位序信息从存储器中取出对应的截掉的低位信息;根据对应的截掉的低位信息,将所述L个数据进行补全处理。
在一些可选实施方式中,所述抽取模块30,还用于:
根据每个幸存路径的路径删减指示抽取数据,并将各个幸存路径抽取处理后得到的数据紧排在一起,其中,抽取规则为保留所有信息位对应的数据。
在实际应用中,所述获取模块10、截位模块20、抽取模块30、输出控制模块40、排序模块50和补位模块60,均可由位于所述排序装置中的中央处理器(CPU,CentralProcessing Unit)、微处理器(MPU,Microprocessor Unit)、数字信号处理器(DSP,DigitalSignal Processor)、或现场可编程门阵列(FPGA,Field-Programmable Gate Array)等实现。
本实施例所述排序装置,能够用较少的硬件资源完成polar译码所需排序功能,而且易于进行高速电路设计。通过多抽头bmN阵列,可以用一套电路支持各种码长的polar译码排序需求。
实施例三
图6示出了一种排序系统的系统架构示意图,如图6所示,该架构主要包括:截位、抽取、双调排序bmN阵列、输出控制和补位等几大部分;其中,
(1)、截位:
根据配置信息截掉输入数据的低比特,并将低比特数据存储到存储器中。截位后的数据输出给抽取模块。例如:假设输入的数据为a[N:0],则截位后输出的数据为a[N:W],并将截位后的数据a[W-1:0]存储到存储器中。
上述截位处理可由截位模块来实现。
(2)、抽取:
首先对所有输入数据按递增顺序进行编号,通过所述编号记录每个数据的位序;然后,根据配置信息路径删减指示抽取数据,并将所抽取数据的位序记录下来,一起发送给后面的双调排序bmN阵列或者输出控制模块。以4b-SCL为例,每个幸存路径每次进行4bit译码,最大扩展出16条路径,需要给出这4bit里哪个bit需要进行扩展。路径删减指示格式为{info_flg0,info_flg1,info_flg2,info_flg3},假设info_flg0和info_flg2为1,表示这两比特对应的路径需要进行扩展,即这两比特分别可以取值0和1;info_flg1和info_flg2为0表示这两比特对应的路径不扩展,即这两比特只能取值0,则保留的数据路径编号为4’b0000,4’b0010,4’b1000,4’b1010,即抽取第0,2,8,10条路径对应的数据。
上述抽取处理可由抽取模块来实现。
(3)、双调排序bmN阵列:
对输入的数据进行排序,选出最小的L个数据以及每个数据对应的位序。支持任意N0选L,N0取值包括但不限于32、64、128、256、512。L取值包括但不限于8、16、32。
如图2所示为传统双调排序基本原理图,bmN为输入N个数,排序输出这个N个数据的有序序列。例如,bm4为输入4个数排序输出这个4个数据的有序序列。本发明实施例中对bm4进行了改进优化。如图2所示,bm16从左到右共有4级比较。其中前2级比较可以合为1级bm4_b但这里需要对数据间隔索取,如图2中黑点所示位置的数据为送入1个bm4_b的4个数据,只有这样间隔抽取后的4个数据才可以合为1个bm4_b。后面的2级比较可以用一个传统的bm4实现,我们记为bm4_a,采用两两比较同时判决的方式完成全排序。经过上述优化,原bm16的4级bm2比较逻辑可以缩减为2级bm4比较逻辑。
图2中黑点标示的4个数据之间是有规律的,因为它的前一级输入是双调序列,那么一定有dat1>=dat0&dat2>=dat3,这样就可以将原来bm4_a中6个比较器减少至4个;另外bm4_b的最大值只能是da1或dat2,最小值只能是dat0或dat3,次小或次大值只能是dat0或dat3,根据这个规律bm4_b用很少的逻辑就可以实现4个数据全排序。
基于上述原理,图3列出了经过优化后的排序基本单元bmN。
bm4:由bm4_a组成;
bm8:由bm4_b和bm2级联组成;
bm16:由bm4_b和bm4_a级联组成;
bm32:由bm4_b,bm2和bm4_a级联组成;
bm64:由bm4_b,bm4_a和bm4_a级联组成;
图4列出了64个数据全排序所需排序阵列。当N0=32,L=8或16时,从bm32单元里的第一级bm4_b阵列输出数据中抽取出最小的8或16个数据,即可满足polar译码需求。当N0=64,L=16或32时,从bm64单元里的第一级bm4_b阵列输出数据中抽取出最小的16或32个数据,即可满足polar译码需求。按照相同的原理bm64后面再级联2级bm64,一级bm2和一级bm4就可以用一套阵列实现N0=32,64,128,256,512选L的排序操作。
上述双调排序bmN阵列处理可由排序模块来实现。
(4)、输出控制:
根据配置信息中的L和N0,以及抽取模块输入的控制信息,从双调排序bmN阵列输出的数据或者抽取模块输出的数据选取L个数据输出。
抽取模块输入的控制信息,包括:所抽取的数据以及这些数据所对应的位序,抽取模块经紧排处理得到的数据的个数。
上述输出控制处理可由输出控制模块来实现。
(5)、补位:
用选出的L个数据的位序信息从截位模块的存储器中取出截掉的低位信息,并将数据补全后输出。
上述补位处理可由补位模块来实现。
需要说明的是,上文所述系统架构仅仅是示意性的。本发明并不对排序系统的架构进行限定。
实施例四
下面,以4b-SCL译码算法,N0=512,L=32为例进一步详细说明。
4b-SCL译码算法每次迭代对4比特数据进行译码。每次迭代每个幸存路径最大扩展出16条路径,所有幸存路径最大扩展出512条幸存路径。
首先配置幸存路径数L,母码长度N0,路径删减指示,以及截位位宽W,然后输入数据进行排序选择操作。
截位模块输入数据个数为512个,位序编号为0~511。将每个数据截掉低W个比特后输出数据给抽取模块。同时将截掉的数据存储到存储器中。
抽取模块将接收到的数据按照每16个数据一组进行分组,抽取。每组16个数据的有独立的路径删减指示格式为{info_flg0,info_flg1,info_flg2,info_flg3},info_flgN为1表示信息位,需要进行路径扩展,该bit位置可以取值为0/1。info_flgN为0表示不需要进行路径扩展,该比特位置只能取值为0。按照该规则得到的数据值再拼接上组号即为该组要保留的数据位序编号。比如:第一组{0,0,1,0}表示的十进制为2,组号为0,则位序为2的数据保留下来。第二组{0,0,1,0}表示的十进制为2,组号为1,则位序为18的数据保留下来。所有组数据抽取完成后拼接数据为A={组0抽取数据,组1抽取数据,...组31抽取数据},位序拼接为B={组0数据位序,组1数据位序,...组31数据位序}。如果A中的数据个数小于等于32个则将A和B直接输出到输出控制模块,如果A中的数据个数大于32,则将A和B输出到双调排序bmN阵列模块,进行双调排序。
如图7所示为支持N0=512,L=32的排序bm阵列,其中bm4阵列由128个bm4排序单元并行组成,排序完成后将所有数据送给bm8阵列;bm8阵列由64个bm8排序单元并行组成,排序完成后将所有数据送给bm16阵列;bm16阵列由32个bm16排序单元并行组成,排序完成后将所有数据送给bm32阵列;bm32阵列由16个bm32排序单元并行组成,排序完成后将所有数据送给bm64_a阵列;bm64_a阵列由8个bm64排序单元并行组成,排序完成后选择每个bm64输出结果中较小的32个数据,共256个数据送给bm64_b阵列;bm64_b阵列由4个bm64排序单元并行组成,排序完成后选择每个bm64输出结果中较小的32个数据,共128个数据送给bm64_c阵列;bm64_c阵列由2个bm64排序单元并行组成,排序完成后选择每个bm64输出结果中较小的32个数据,共64个数据送给bm2阵列;bm2阵列由32个bm2排序单元组成,从输入的64个数据中选择出较小的32个数据输出。
在排序选择过程中要同时将每个数据对应的位序保留下来,与数据一起送给下级模块。
如图7所示,该排序阵列不单支持输入512个数,选出较小的32个数,即N0=512,L=32的polar译码需求。通过不同的抽头还可以支持N0=32,L=16/8的polar译码需求;N0=64,L=32/16/8的polar译码需求;N0=128,L=32/16/8的polar译码需求;N0=256,L=32/16的polar译码需求。在本排序阵列后面再级联不同的bmN,可以支持任意的N0/L的polar译码需求。
输出控制模块根据抽取模块送来的A中有效数据个数指示,N0和L信息选择相应的抽头的数据输出。在本实施例中,如果A中有效数据个数指示大于32,则选择N0=512,L=32抽头数据输出,否则直接输出抽取模块送过来的数据给补位模块。
补位模块根据接收到的每个数据的位序信息,从截位模块中取出该数据被截掉的低bit信息,将数据补齐后输出。
实施例五
将图5中的双调排序bmN阵列模块单独提取出来只进行排序选择操作,即从M个数据中选择出最小或最大的L个数据。
排序阵列结构如图7所示。当待排序的数据个数M为非2的整数次幂时,需要在待排序数据后面补充N0-M个输入数据位宽所能表示的最大值。例如输入数据位宽为N时,补充的最大值为2^N-1。这里N0的计算方法为:
取N0=2^k>M,其中K为满足此公式的最小整数。
假设从500个数据(每个数据的位宽N为8)中选择输出最小的32个数据,取N0=2^k>500,其中K为满足此公式的最小整数,则K=9,N0=512,在500个数据后面补充12个最大值255,得到512个数据,从图7所述电路左侧输入,在最右侧便可得到最小的32个数据。
如果要从上述500个数据中选择出最大的32个数据,首先要在500个数据后面补充12个最小值0,补齐512个数据后,从图7所述电路左侧输入,bm4/bm8/bm16/bm32/bm64/bm2排序电路结构与上述选择最小值的排序电路结构完一样,区别仅在于bm64和最后一级bm2排序完成后的输出结果选择上。每个bm64排序完成后选择输出结果中较大的32个数据,最后一级bm2阵列从输入的64个数据中选择出较大的32个数据输出,这样便可以实现500个数据中选择出最大的32个数据。
本实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行之后,能够实现前述任意一项或多项排序方法。
所述计算机存储介质可为各种类型的存储介质,在本实施例中可优选为非瞬间存储介质。
本领域技术人员应当理解,本实施例的存储介质中各程序的功能,可参照实施例所述的排序方法的相关描述而理解。
采用本发明实施例所述方法,与现有技术相比,能够用较少的硬件资源完成polar译码所需排序功能,而且易于进行高速电路设计。通过多抽头bmN阵列,可以用一套电路支持各种码长的polar译码排序需求。
本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。
Claims (10)
1.一种排序方法,其特征在于,所述方法包括:
获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W;
根据所述截位位宽W对输入的数据进行截位处理,截掉输入的数据中的W个低位信息,并将通过截位处理截掉的低位信息存储到存储器中;
根据所述路径删减指示抽取数据,并记录所抽取数据的位序;
将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数;
基于通过截位处理截掉的低位信息存储到存储器中的低位信息、所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据;
其中,根据所述路径删减指示抽取数据,包括:根据每个幸存路径的路径删减指示抽取数据,并将各个幸存路径抽取处理后得到的数据紧排在一起,其中,抽取规则为保留所有信息位对应的数据。
2.根据权利要求1所述的方法,其特征在于,所述基于通过截位处理截掉的低位信息存储到存储器中的低位信息、所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据,包括:
当经紧排处理得到的数据个数大于L时,用预设阵列对经紧排处理后得到的数据进行双调排序,从中抽取L个数据;
当经紧排处理得到的数据个数小于或等于L时,利用通过截位处理截掉的低位信息存储到存储器中的低位信息通过补位处理将紧排的数据个数补齐到L个数据。
3.根据权利要求2所述的方法,其特征在于,所述从中抽取L个数据,包括:
选出最小的L个数据并确定所述L个数据中每个数据对应的位序。
4.根据权利要求2所述的方法,其特征在于,利用通过截位处理截掉的低位信息存储到存储器中的低位信息通过补位处理将紧排的数据个数补齐到L个数据,包括:
根据紧排处理得到的数据所对应的位序信息,从存储器中将截掉的低位信息提取出来,并将紧排处理得到的数据拼接成原始数据;
确定补充数据的个数及其具体值,其中,每个补充数据为当前数据位宽所能表示的最大值。
5.根据权利要求2所述的方法,其特征在于,当经紧排处理得到的数据个数大于L时,确定L个待输出的数据之后,还包括:
根据选出的L个数据的位序信息从存储器中取出对应的截掉的低位信息;
根据对应的截掉的低位信息,将所述L个数据进行补全处理。
6.一种排序装置,其特征在于,所述装置包括:
获取模块,用于获取配置信息;其中,所述配置信息包括幸存路径数L、母码长度N0、路径删减指示以及截位位宽W;
截位模块,用于根据所述截位位宽W对输入的数据进行截位处理,截掉输入的数据中的W个低位信息,并将通过截位处理截掉的低位信息存储到存储器中;
抽取模块,用于根据所述路径删减指示抽取数据,并记录所抽取数据的位序;将所抽取的数据进行紧排处理,并确定经紧排处理得到的数据的个数;
输出控制模块,用于基于通过截位处理截掉的低位信息存储到存储器中的低位信息、所述幸存路径数L、所述母码长度N0、所抽取的数据、所抽取数据的位序以及经紧排处理得到的数据的个数,确定L个待输出的数据,其中,
根据所述路径删减指示抽取数据,包括:根据每个幸存路径的路径删减指示抽取数据,并将各个幸存路径抽取处理后得到的数据紧排在一起,其中,抽取规则为保留所有信息位对应的数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
排序模块,用于利用预设阵列对所述抽取模块经紧排处理后得到的数据进行双调排序,从中抽取L个数据;
补位模块,用于当所述抽取模块经紧排处理得到的数据个数小于或等于L时,利用通过截位处理截掉的低位信息存储到存储器中的低位信息通过补位处理将紧排的数据个数补齐到L个数据。
8.根据权利要求7所述的装置,其特征在于,所述排序模块,还用于:
选出最小的L个数据并确定所述L个数据中每个数据对应的位序。
9.根据权利要求7所述的装置,其特征在于,所述补位模块,还用于:
根据紧排处理得到的数据所对应的位序信息,从存储器中将截掉的低位信息提取出来,并将紧排处理得到的数据拼接成原始数据;
确定补充数据的个数及其具体值,其中,每个补充数据为当前数据位宽所能表示的最大值。
10.根据权利要求7所述的装置,其特征在于,所述补位模块,还用于:
当经紧排处理得到的数据个数大于L时,确定L个待输出的数据之后,根据选出的L个数据的位序信息从存储器中取出对应的截掉的低位信息;根据对应的截掉的低位信息,将所述L个数据进行补全处理。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811483150.7A CN111277276B (zh) | 2018-12-05 | 2018-12-05 | 一种排序方法及装置 |
EP19894383.9A EP3893400A4 (en) | 2018-12-05 | 2019-12-05 | METHOD AND DEVICE FOR SORTING AND ELECTRONIC DEVICE AND MEDIUM |
PCT/CN2019/123423 WO2020114469A1 (zh) | 2018-12-05 | 2019-12-05 | 排序方法、装置、电子设备及介质 |
KR1020217020024A KR20210097743A (ko) | 2018-12-05 | 2019-12-05 | 정렬 방법, 장치, 전자 기기 및 매체 |
JP2021531976A JP7495933B2 (ja) | 2018-12-05 | 2019-12-05 | ソート方法、装置、電子デバイス及びコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811483150.7A CN111277276B (zh) | 2018-12-05 | 2018-12-05 | 一种排序方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111277276A CN111277276A (zh) | 2020-06-12 |
CN111277276B true CN111277276B (zh) | 2023-06-27 |
Family
ID=70973569
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811483150.7A Active CN111277276B (zh) | 2018-12-05 | 2018-12-05 | 一种排序方法及装置 |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3893400A4 (zh) |
JP (1) | JP7495933B2 (zh) |
KR (1) | KR20210097743A (zh) |
CN (1) | CN111277276B (zh) |
WO (1) | WO2020114469A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112015366B (zh) * | 2020-07-06 | 2021-09-10 | 中科驭数(北京)科技有限公司 | 数据排序方法、数据排序装置及数据库系统 |
CN113162633B (zh) * | 2021-02-24 | 2023-09-05 | Oppo广东移动通信有限公司 | 极化码的译码方法及装置、译码器、设备、存储介质 |
CN113672530B (zh) * | 2021-10-21 | 2022-02-18 | 苏州浪潮智能科技有限公司 | 一种服务器及其排序设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780329A (zh) * | 2012-10-17 | 2014-05-07 | 华为技术有限公司 | 一种编译码的方法、装置及系统 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20000052143A (ko) * | 1999-01-30 | 2000-08-16 | 윤종용 | 적응 비터비 복호기 및 그 동작방법 |
CN1168254C (zh) * | 2002-01-19 | 2004-09-22 | 华为技术有限公司 | 一种截短维特比译码方法及其译码器 |
JP2004096363A (ja) * | 2002-08-30 | 2004-03-25 | Matsushita Electric Ind Co Ltd | ターボ符号のパンクチャリング方法及び符号化装置 |
JP2008199308A (ja) | 2007-02-13 | 2008-08-28 | Sony Corp | 復号装置および復号方法 |
CN101997553B (zh) * | 2009-08-13 | 2013-03-20 | 中兴通讯股份有限公司 | 一种卷积码译码方法及装置 |
CN101667840B (zh) * | 2009-09-08 | 2012-12-12 | 华为技术有限公司 | 一种咬尾译码方法及装置 |
US20140132429A1 (en) * | 2012-11-10 | 2014-05-15 | John Conant Scoville | Method for data compression and inference |
US9973301B2 (en) | 2015-11-24 | 2018-05-15 | Coherent Logix, Incorporated | Memory management and path sort techniques in a polar code successive cancellation list decoder |
WO2017178056A1 (en) | 2016-04-14 | 2017-10-19 | Huawei Technologies Co., Ltd. | A metric sorter, a successive list cancellation decoder and metric sorting method |
CN106803759A (zh) * | 2016-12-27 | 2017-06-06 | 南京邮电大学 | 基于高斯构造的Polar码有效自适应译码方法 |
CN108574561B (zh) * | 2017-03-14 | 2020-11-17 | 华为技术有限公司 | 极化码编码的方法和装置 |
CN107094064B (zh) * | 2017-03-29 | 2020-02-07 | 西安电子科技大学 | 针对八进制连续相位频移键控的维特比解调系统及方法 |
-
2018
- 2018-12-05 CN CN201811483150.7A patent/CN111277276B/zh active Active
-
2019
- 2019-12-05 KR KR1020217020024A patent/KR20210097743A/ko not_active Application Discontinuation
- 2019-12-05 WO PCT/CN2019/123423 patent/WO2020114469A1/zh unknown
- 2019-12-05 EP EP19894383.9A patent/EP3893400A4/en active Pending
- 2019-12-05 JP JP2021531976A patent/JP7495933B2/ja active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103780329A (zh) * | 2012-10-17 | 2014-05-07 | 华为技术有限公司 | 一种编译码的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3893400A1 (en) | 2021-10-13 |
JP2022510442A (ja) | 2022-01-26 |
WO2020114469A1 (zh) | 2020-06-11 |
JP7495933B2 (ja) | 2024-06-05 |
CN111277276A (zh) | 2020-06-12 |
EP3893400A4 (en) | 2022-01-05 |
KR20210097743A (ko) | 2021-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111277276B (zh) | 一种排序方法及装置 | |
EP1175014A2 (en) | Pipelined architecture to decode parallel and serial concatenated codes | |
EP0945989A1 (en) | Viterbi decoding | |
JP2002252563A (ja) | ハフマン符号の復号方法、復号装置、ハフマン符号復号用テーブルおよびその作成方法 | |
US8250448B1 (en) | Method of and apparatus for implementing a decoder | |
CN100512020C (zh) | 一种译码方法及译码装置 | |
US20100166052A1 (en) | Encoder, decoder, encoding method and decoding method, and recording medium | |
CN111384972B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
JP5521722B2 (ja) | 符号化装置、復号化装置、符号化・復号化システム、及び、プログラム | |
JPH10117149A (ja) | ビタービ復号化器用トレースバック装置及びトレースバック方法 | |
JP3259725B2 (ja) | ビタビ復号装置 | |
CN110324111B (zh) | 一种译码方法及设备 | |
WO2018064924A1 (zh) | 基于软输出维特比译码算法sova的译码方法和装置 | |
CN115865098A (zh) | 基于Huffman编码的数据压缩方法 | |
US20170163380A1 (en) | High speed add-compare-select for viterbi decoder | |
US7149952B2 (en) | Memory management algorithm for trellis decoders | |
CN111224674A (zh) | 多进制ldpc码的解码方法、装置及解码器 | |
CN102480334A (zh) | 一种速率匹配的方法及装置 | |
CN111384976A (zh) | 稀疏校验矩阵的存储方法和读取方法 | |
KR101760462B1 (ko) | 터보 복호기 및 ldpc 복호기를 위한 다중 복호 방법 및 그 장치 | |
CN112804026B (zh) | 一种ofdm系统中频率、时频交织方法及系统 | |
KR101731426B1 (ko) | 픽셀을 지시하는 방법 및 장치, 픽셀 지시를 처리하는 방법 및 장치 | |
WO2020052770A1 (en) | Decoders and methods for decoding polar codes and product codes | |
CN111384973B (zh) | 多进制ldpc解码算法的优化方法、装置及解码器 | |
CN114047876B (zh) | 基于列式存储的数据排序方法、设备及存储介质 |
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 |