首页 / 专利分类库 / 基本电子电路 / 一般编码、译码或代码转换 / 一种基于FPGA的码长自适应交织/解交织器及方法

一种基于FPGA的码长自适应交织/解交织器及方法

申请号 CN202210280968.9 申请日 2022-03-22 公开(公告)号 CN114745076B 公开(公告)日 2024-04-30
申请人 中国电子科技集团公司第五十四研究所; 发明人 任季中; 韩星; 牛慧莹; 杨伟;
摘要 本 发明 公开了一种基于FPGA的码长自适应交织/解交织器及方法,可应用于多码长Turbo译码或其它可变长度译码。本发明在FPGA或ASIC中实现 硬件 电路 ,实时根据不同码长度要求,通过遍历多个交织或解交织映射图样子表,生成多个标识流和映射图样流,再通过解析多标识流取得有效映射图样完成交织或解交织。标识流的数目由所支持的最大码长和最小码长的倍数关系决定。本发明解决了多码长译码中交织器/解交织器的处理延时不小于最大码长时间导致吞吐率受限的问题,使得不同码长交织器/解交织器的处理延时等于各自的码长时间,在硬件资源受限的前提下,可有效提高可变码长译码器的吞吐率和性能。
权利要求

1.一种基于FPGA的码长自适应交织方法,其特征在于,采用基于FPGA的码长自适应交织器实现,该码长自适应交织器包括以下五个模
映射图样子表模块,包含n个映射图样子表,用于存储k项交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
多标识流生成器,用于生成多标识流和映射图样流;
标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
标识流解析器,用于解析多标识流以取得有效映射图样数据;
交织映射器,根据从标识流解析器收到的有效映射图样数据,对输入码流进行交织并输出;
五个模块并行工作,多标识数据和映射图样数据在各模块之间以流的形式传输,形成流线结构;
该方法包括以下步骤:
(1)将交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
使用Turbo译码器所支持的最大码长计算出交织映射图样总表;
根据最大码长与最小码长的倍数关系确定交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第
1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
将生成的n个交织映射图样子表存储在FPGA的内部存储器中;
(2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应ceil(log2(n)+1)比特数据,ceil( )表示向上取整,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0   (n‑1);n个子~
表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
(3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
(4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成ceil(log2(n)+1)*n比特位宽的标识数据;
按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给交织映射器,如果码长没有结束,则把ceil(log2(n)+1)*n比特位宽的标识数据左移ceil(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
(5)使用有效映射图样数据完成交织映射。
2.一种基于FPGA的码长自适应解交织方法,其特征在于,采用基于FPGA的码长自适应解交织器实现,该码长自适应解交织器包括以下五个模块:
映射图样子表模块,包含n个映射图样子表,用于存储k项解交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
多标识流生成器,用于生成多标识流和映射图样流;
标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
标识流解析器,用于解析多标识流以取得有效映射图样数据;
解交织映射器模块,根据从标识流解析器收到的有效映射图样数据,对输入码流进行解交织并输出;
五个模块并行工作,多标识数据和映射图样数据在各模块之间以流的形式传输,形成流水线结构;
该方法包括以下步骤:
(1)将解交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
使用Turbo译码器所支持的最大码长计算出解交织映射图样总表;
根据最大码长与最小码长的倍数关系确定解交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第
1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
将生成的n个解交织映射图样子表存储在FPGA的内部存储器中;
(2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应ceil(log2(n)+1)比特数据,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0   (n‑1);n个子表标识位编码后成为n~
组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
(3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
(4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成ceil(log2(n)+1)*n比特位宽的标识数据;
按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给解交织映射器,如果码长没有结束,则把ceil(log2(n)+1)*n比特位宽的标识数据左移ceil(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边ceil(log2(n))比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给解交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
(5)使用有效映射图样数据完成解交织映射。

说明书全文

一种基于FPGA的码长自适应交织/解交织器及方法

技术领域

[0001] 本发明涉及信息感知与识别技术领域,尤其是多码长Turbo译码或其它可变长度译码中使用交织映射图样表方法实现的多码长交织器和解交织器。

背景技术

[0002] Turbo编码是一种可以实现接近香农极限的编码方式,它将卷积码和交织器结合,从而实现随机编码,以其优异的性能广泛应用于卫星通信、移动通信、网络、广播等通信系统。
[0003] Turbo码的误码性能和译码延时和码长度直接相关。码长度越大,译码性能越好,但译码延时也越大。实际应用时,可以根据信道环境改变Turbo码长度以获得最佳性能,也可以通过多个信道解调器复用同一个Turbo码译码器来降低硬件资源的使用,从而降低系统成本。这些情况都需要其交织器/解交织器能够适应多码长或可变码长。
[0004] Turbo码通过多次迭代实现译码。每次迭代都需要经过两个或多个分量译码器、交织器和解交织器的处理。在流线结构下,译码器的数据吞吐率由各个分量译码器延时、交织器延时和解交织器延时中的延时最大值决定。延时最大值越大,译码器的吞吐率越低。
[0005] 交织器/解交织器通过预先生成的交织映射图样表实现时,映射图样表的存储深度等于码长度。每次交织/解交织都需要对映射图样表进行遍历,遍历时间和表深度成正比。映射图样表的遍历时间决定了交织/解交织的处理延时,码长越长,交织/解交织的处理延时越长。
[0006] 对于多码长或可变码长,为实现实时处理,需要存储器存储所有码长的映射图样表,当码长数量很大时,映射图样表会占用大量的存储器资源,使得系统成本无法满足实际需要。如果多个码长共用映射图样表,则可以降低存储器资源的使用。但是,因为共用的映射图样表的深度需要按照最大码长设计,所以不同码长的交织/解交织都需要对最大映射图样表进行遍历,处理延时都等于最大码长的处理延时,导致非最大码长时的交织/解交织的处理延时大大增加,从而降低了Turbo译码的吞吐能

发明内容

[0007] 本发明的目的是在多码长译码时,共用交织/解交织映射图样表,在降低存储器资源的情况下,对于不同码长,实时地、自适应地实现交织/解交织的处理延时等于使用独立映射图样表的遍历时间,从而极大的降低多码长Turbo译码的延时,最大限度的增加Turbo译码的吞吐率。
[0008] 为了实现上述目的,本发明采用的技术方案为:
[0009] 一种基于FPGA的码长自适应交织器,包括以下模
[0010] 映射图样子表模块,包含n个映射图样子表,用于存储k项交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
[0011] 多标识流生成器,用于生成多标识流和映射图样流;
[0012] 标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
[0013] 标识流解析器,用于解析多标识流以取得有效映射图样数据;
[0014] 交织映射器,根据从标识流解析器收到的有效映射图样数据,对输入码流进行交织并输出。
[0015] 进一步的,所述k项交织映射图样数据依据交织器支持的最大码长计算得出,按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推。
[0016] 进一步的,所述多标识流生成器并行遍历读取映射图样子表的内容,将每个子表内容数据与实时码长进行比较,比较结果经过标识、编码,组成n个标识流,同时各子表内容数据经过排列组成映射图样流。
[0017] 进一步的,所述标识流解析器从标识流和映射图样流FIFO模块中同时读出多标识流和映射图样流数据,依据多标识流对应比特选择映射图样流数据取得有效映射图样数据,然后对多标识流数据移位,循环上述操作,直至判断码长结束。
[0018] 一种基于FPGA的码长自适应解交织器,包括以下模块:
[0019] 映射图样子表模块,包含n个映射图样子表,用于存储k项解交织映射图样数据,子表数量n等于所支持最大码长除以最小码长的商向上取整;
[0020] 多标识流生成器,用于生成多标识流和映射图样流;
[0021] 标识流和映射图样流FIFO模块,用于缓存多标识流和映射图样流数据,匹配多标识流生成器和标识流解析器的处理时序;
[0022] 标识流解析器,用于解析多标识流以取得有效映射图样数据;
[0023] 解交织映射器模块,根据从标识流解析器收到的有效映射图样数据,对输入码流进行解交织并输出。
[0024] 进一步的,所述k项解交织映射图样数据依据解交织器支持的最大码长计算得出,按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推。
[0025] 进一步的,所述多标识流生成器并行遍历读取映射图样子表的内容,每个子表内容数据与实时码长进行比较,比较结果经过标识、编码,组成n个标识流,同时各子表内容数据经过排列组成映射图样流。
[0026] 进一步的,所述标识流解析器从标识流和映射图样流FIFO模块中同时读出多标识流和映射图样流数据,依据多标识流对应比特选择映射图样流数据取得有效映射图样数据,然后对多标识流数据移位,循环上述操作,直至判断码长结束。
[0027] 一种基于FPGA的码长自适应交织方法,包括以下步骤:
[0028] (1)将交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
[0029] 使用Turbo译码器所支持的最大码长计算出交织映射图样总表;
[0030] 根据最大码长与最小码长的倍数关系确定交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
[0031] 按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
[0032] 将生成的n个交织映射图样子表存储在FPGA的内部存储器中;
[0033] (2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
[0034] 多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应log2(n)+1比特数据(log2(n)值为向上取整,下同),最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0   (n‑1);~
n个子表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
[0035] (3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
[0036] (4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
[0037] 标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成(log2(n)+1)*n比特位宽的标识数据;
[0038] 按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给交织映射器,如果码长没有结束,则把(log2(n)+1)*n比特位宽的标识数据左移(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
[0039] (5)使用有效映射图样数据完成交织映射。
[0040] 一种基于FPGA的码长自适应解交织方法,包括以下步骤:
[0041] (1)将解交织的映射图样总表按照交错形式分割成多个子表存储;具体方式为:
[0042] 使用Turbo译码器所支持的最大码长计算出解交织映射图样总表;
[0043] 根据最大码长与最小码长的倍数关系确定解交织映射图样表子表数目n,即最大码长除以最小码长的商向上取整;
[0044] 按照交错形式依次分配给n个子表,即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;
[0045] 将生成的n个解交织映射图样子表存储在FPGA的内部存储器中;
[0046] (2)根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;具体方式为:
[0047] 多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果小于码长,则子表的标识位为1,否则清0;如果n个子表的标识位不全为0,则对标识位进行编码;编码后每个标识位对应log2(n)+1比特数据,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0   (n‑1);n个子表标识位编码后成为n组~新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流;
[0048] (3)将多标识流和映射图样流输入FIFO缓存器;具体方式为:把n个标识流写入标识流FIFO缓存器,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流,并写入映射图样流FIFO缓存器;
[0049] (4)解析FIFO缓存器输出的多标识流识别映射图样流中有效的映射图样数据;具体方式为:
[0050] 标识流解析器从标识流FIFO缓存器和映射图样流FIFO缓存器中同时读出多标识流和映射图样流数据;n组标识流数据组成(log2(n)+1)*n比特位宽的标识数据;
[0051] 按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给解交织映射器,如果码长没有结束,则把(log2(n)+1)*n比特位宽的标识数据左移(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给解交织映射器,继续重复此流程;如果最高位为0则表示无效,此时读出新的标识流和映射图样流数据,再继续重复上述流程;
[0052] (5)使用有效映射图样数据完成解交织映射。
[0053] 本发明的有益效果在于:
[0054] 1、本发明通过多标识流和映射图样流形成高效流水线结构,其中多标识流生成器对映射图样子表的遍历时间小于等于最小码长时间,标识流解析器和交织/解交织映射器的处理时间等于实时码长时间,所以,对于多码长交织/解交织,吞吐率等于实时码长数据处理的吞吐率。
[0055] 2、本发明有效解决了背景技术中的资源和性能问题,使得Turbo译码器在硬件资源受限的条件下有效提升了吞吐率和性能。附图说明
[0056] 图1是本发明实施例的原理框图
[0057] 图2是交织/解交织映射图样表分成多个子表的示意图。
[0058] 图3是多标识流生成器的原理框图。
[0059] 图4是标识流解析器处理流程示意图。
[0060] 具体实施方法
[0061] 下面结合附图对本发明的技术方案及技术效果做进一步的详细说明。
[0062] 为了简化叙述,下面将交织器和解交织器一同描述。
[0063] 一种基于FPGA的码长自适应交织/解交织器,该装置由映射图样子表、多标识流生成器、标识流和映射图样流FIFO、标识流解析器及交织/解交织映射器等部分组成。各部分并行工作,多标识数据和映射图样数据在各部分之间以流的形式传输,形成高效地流水线结构。
[0064] 该装置的实现方式如下:
[0065] 将交织/解交织的映射图样总表按照交错形式分割成多个子表存储;
[0066] 根据实时码长度信息,并行遍历多个映射图样子表,经编码后生成多标识流和映射图样流;
[0067] 将多标识流和映射图样流输入FIFO;
[0068] 解析FIFO输出的多标识流识别映射图样流中有效的映射图样数据;
[0069] 使用有效映射图样数据完成交织和解交织。
[0070] 具体步骤如下:
[0071] 首先,使用Turbo译码器所支持的最大码长计算出交织/解交织映射图样总表。
[0072] 根据最大码长与最小码长的倍数关系确定交织/解交织映射图样表子表数目,即最大码长除以最小码长,对商向上取整,所得整数n就是交织/解交织映射图样子表数。
[0073] 把交织/解交织映射图样总表按照交错形式分配给n个交织/解交织映射图样子表;即,第1项分配给子表1第1项,第2项分配给子表2第1项,第n项分配给子表n第1项,第n+1项分配给子表1第2项,依此类推;生成n个交织/解交织映射图样子表。n个交织/解交织映射图样子表存储在FPGA或ASIC的内部存储器中。
[0074] 多标识流生成器并行对n个子表进行遍历,将每个子表的内容数据与实时码长进行比较,如果该子表小于码长,该子表的标识位为1,否则清0。如果n个子表的标识位不全为0,则对标识位进行编码。
[0075] 编码后每个标识位对应log2(n)+1比特数据,最高位为有效标志,其余比特表示子表的位置值,n个子表对应的位置值是0   (n‑1)。~
[0076] n个子表标识位编码后成为n组新的标识数据,按照有效标识靠左、子表位置值从小到大排列的原则,输出成为n个标识流。
[0077] 把n个标识流写入标识流FIFO,同时把n个子表的内容数据按照子表位置值从小到大、从右到左排列组成映射图样流写入映射图样流FIFO。
[0078] 标识流解析器从多标识流和映射图样流FIFO同时读出多标识流和映射图样流数据。
[0079] n组标识流数据组成(log2(n)+1)*n比特位宽的标识数据。首先按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应的子表内容数据送给交织/解交织映射器。如果码长没有结束,把(log2(n)+1)*n比特位宽的标识数据左移(log2(n)+1)比特,即左移一组标识数据,继续判断最高位,如果为1表示有效,按照最高位右边log2(n)比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织/解交织映射器,继续重复此流程;如果最高位为0表示无效,则从标识流和映射图样流FIFO同时读出新的标识流和映射图样流数据,再继续重复上述流程。
[0080] 交织/解交织映射器根据收到的映射图样表项数据进行交织或解交织映射。
[0081] 下面为一个更具体的例子:
[0082] 一种基于FPGA的码长自适应交织器/解交织器,其总体原理如图1所示,由五部分组成,分别是映射图样子表、多标识流生成器、标识流和映射图样流FIFO、标识流解析器和交织/解交织映射器。多标识流生成器从多个映射图样子表中同时读取映射图样数据并依据实时码长信息产生多标识流和映射图样流。多标识流生成器、标识流和映射图样流FIFO、标识流解析器和交织/解交织映射器组成高效流水线结构,多标识流和映射图样流从多标识流生成器产生,经标识流和映射图样流FIFO后由标识流解析器解析出对当前码长有效的映射图样数据送给交织/解交织映射器完成输入码流的交织/解交织。
[0083] 实施例中,最大码长是最小码长的3.9倍,向上取整为4。预先计算出最大码长的交织/解交织映射图样总表,如图2所示,分成4个子表。方法是总表表项1分配给子表1的表项1,总表表项2分配给子表2的表项1,总表表项3分配给子表3的表项1,总表表项4分配给子表
4的表项1。依次类推,把总表表项数据交错分配给4个子表,生成4个交织/解交织映射图样子表。4个子表在FPGA中使用内部块存储器存储,所需存储资源和存储1个总表相等。
[0084] 多标识流生成器原理框图如图3所示。同时读取BRAM存储的4个子表,每个时钟周期读取4个映射图样数据,在最大码长的四分之一的时钟数内完成对4个子表的遍历。4个数据分别与实时码长进行比较,小于码长则标识位为1,否则为0,生成的4个标识位比特。如果4个标识位不全为0,对每个标识位编码,每个标识位编码为3比特数据。最高位为有效标志,等于前面生成的标识位比特。当最高位为1时,其余两位是子表位置值0 3,最高位为0时,其~
余两位为0。例如子表2当内容数据小于实时码长时,对应的有效标识编码后为b’101。4个子表项标识位编码后成为4组新的标识数据,按照有效标识数据组靠左、子表位置值从小到大排列的原则,形成4个标识流。例如,子表1 4对应的标识位编码后是b’000、b’101、b’000和~
b’111,排列后为b’101、b’111、b’000和b’000。
[0085] 此编码和标识数据组排列过程通过编码表查表实现,编码表使用FPGA内的分布式RAM,不需占用块存储器资源。4个子表项标识位组合成4比特查表地址,子表1在最低位。编码表如下:
[0086]
[0087]  如前例,地址为b’1010,或地址10,查表后的标识码为0xbc0,即b’101 111 000 000。
[0088] 当其它实施例中最大码长和最小码长相比倍数很大时,可以把码长区间进行分段处理,以避免编码表深度过深和标识流数据位宽过大。
[0089] 多标识流生成器把查表后的标识码数据作为4标识流写入标识流FIFO。同时把4个子表内容数据按照子表位置值从小到大、从右到左排列组成映射图样流写入映射图样流FIFO。
[0090] 标识流解析器从标识流和映射图样流FIFO同时读出4个标识流和映射图样流数据。4个标识流数据组成12比特位宽的标识数据,处理流程如图4所示。首先按照最高位右侧2比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织/解交织映射器。如果码长结束,则此次解析结束,如果码长没有结束,把12比特位宽的标识数据左移3比特,判断最高位,如果为1表示有效,按照最高位右侧2比特数据所表示的子表位置值信息取映射图样流数据中对应子表内容数据送给交织/解交织映射器,继续此流程;如果最高位为0表示无效,则返回从标识流和映射图样流FIFO,读出新的4个标识流和映射图样流数据,再继续上述流程。
[0091] 交织/解交织映射器根据收到的对实时码长有效的映射图样数据对输入码流进行交织或解交织。
[0092] 本发明在FPGA或ASIC中实现硬件电路,实时根据不同码长度要求,通过遍历多个交织或解交织映射图样存储子表,生成多个标识流和映射图样流,再通过解析多标识流取得有效映射图样完成交织或解交织,可应用于多码长Turbo译码或其它可变长度译码。标识流的数目由所支持的最大码长和最小码长的倍数关系决定。本发明解决了多码长译码中交织器/解交织器的处理延时不小于最大码长时间导致吞吐率受限的问题,使得不同码长交织器/解交织器的处理延时等于各自的码长时间,在硬件资源受限的前提下,可有效提高可变码长译码器的吞吐率和性能,适用于多码长Turbo译码或其它可变长度译码。
QQ群二维码
意见反馈