一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于数据通信的编码方法及装置与流程

2021-10-08 18:07:00 来源:中国专利 TAG:编码 技术 数据通信 装置 用于


1.本技术涉及一种编码技术,尤其涉及一种用于数据通信、低时延的编码技术及装置。


背景技术:

2.通信系统通常在发射端发送数据,经过通信信道传输到接收端,从而实现大量的信息传 输。例如,通信信道包括光纤传输,无线,电缆等。然而发送信号经过通信信道时,会叠加 信道中的噪声或者收发器件的噪声,从而造成接收端接收信号的错误。为了能够在错误接收 的信号中恢复出发送端发送的原始信号,采用前项纠错编码(forward error correction,fec) 是一种普遍的做法。
3.fec是根据某种编码关系利用要传输的信息比特来产生一定长度的校验比特,再将校验 比特和信息比特合并发送,在接收端利用校验比特和已知的编码关系去纠正因为传输过程导 致的比特错误。现阶段,由于人工智能(artificial intelligence,ai)等新技术应用出现,对 超低时延、高可靠性的互联需求日益突出,提高编码增益和降低时延变得越来越重要。


技术实现要素:

4.本技术提供一种用于数据通信的编码方法及装置,解决了现有技术中无法同时保证高编 码增益和低时延的问题。
5.第一方面,提供一种用于数据通信的编码方法,所述方法包括:形成第一码字,所述第 一码字包括2n个比特,由k个编码比特形成,且第一码字的n个比特来自于m个在所述第 一码字之前形成的码字,所述第一码字中另外n个比特包括k-n个信息比特和2n-k个校验比 特,其中,n、m、k均为正整数,2n>k>n>m;将所述第一码字中的所述另外n个比特发 送出去。
6.在本技术实施例中,第一码字中的比特被多个不同时刻产生的码字保护,编码增益效果 更好;而且,不同时刻的码字之间共享的比特个数不尽相同,使得码字中的比特被不同个数 的码字保护,被更多数量的码字保护的比特具备更快的收敛速度,可以提升译码器的译码速 度,起到降低时延的作用。
7.结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:将所述另外 n个比特存储起来,供编码所述第一码字之后的码字时使用。
8.结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方 式中,所述第一码字来自于所述m个在所述第一码字之前形成的码字中每个码字的比特数相 同,其中,n为m的整数倍。本实施中第一码字从m个之前形成的码字中的每一个码字共享 相同数目的比特,且共享比特数不止一个,两个码字之间共享的比特个数多,则需要共享的 码字个数降低,在接收端可以快速完成数据的收集以及译码过程,从而降低时延。
9.结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方 式中,所述第一码字来自于第二码字的比特数为a,在所述m个在所述第一码字之前形成的 码字中,至少有一个码字提供给所述第一码字的比特数与a不同,其中,a为正整数,第二码 字为所述m个在所述第一码字之前形成的码字中的任意一个。
10.在本实施例中,不同时刻的码字之间共享的比特个数不尽相同,使得码字中的比特被不 同个数的码字保护,被更多数量的码字保护的比特较快收敛,然后带动被更少码字保护的比 特收敛,从而提升译码器的译码速度,降低时延。
11.结合第一方面或以上任一种可能的实现方式,在第一方面的第四种可能的实现方式中, 所述形成第一码字具体包括:对来自于m个在所述第一码字之前形成的码字的n个比特和k-n 个待传输的信息比特进行编码,得到2n-k个校验比特,形成所述第一码字。
12.结合第一方面或以上任一种可能的实现方式,在第一方面的第五种可能的实现方式中, 所述第一码字中发送出去的n个比特,与在所述第一码字之后形成的一些码字共享。进一步 地,所述第一码字中发送出去的n个比特,与在所述第一码字之后形成的m个码字共享。每 个码字中的一半比特与之前形成的码字共享,另一半比特与之后形成的码字共享,保证每个 比特均被不同的码字保护,可以得到更好的编码增益。
13.结合第一方面或以上任一种可能的实现方式,在第一方面的第六种可能的实现方式中, 所述第一码字中的每个比特被至少两个码字采用。
14.结合第一方面或以上任一种可能的实现方式,在第一方面的第七种可能的实现方式中, 在所述第一码字中来自于m个之前形成的码字的比特中,至少一些比特为之前码字中的校验 比特。
15.结合第一方面或以上任一种可能的实现方式,在第一方面的第八种可能的实现方式中,n 为360,k为700。应理解,这是本技术给出的一个具体的码字,第一码字还可以为其他比特 数量,本技术并不做限定。
16.结合第一方面或以上任一种可能的实现方式,在第一方面的第九种可能的实现方式中, 将所述m个在所述第一码字之前形成的码字分为b组,将所述第一码字中与之前码字共享的 n个比特分为b组,所述第一码字中的每一组对应所述m个在所述第一码字之前形成的码字 中的一组,其中,b为正整数,n和m均为b的整数倍。
17.结合第一方面的第九种可能的实现方式,在第一方面的第十种可能的实现方式中,n为 360,m为256;将所述256个在所述第一码字之前形成的码字分为4组,每组64个码字; 将所述第一码字中与之前码字共享的360个比特分为4组,每组90个比特,其中,每组90 个比特来自于对应的一组64个码字。
18.第二方面,提供一种用于数据通信的编码装置,所述编码装置包括编码单元和发送单元, 所述编码单元,用于形成第一码字,所述第一码字包括2n个比特,由k个编码比特形成,且 第一码字的n个比特来自于m个在所述第一码字之前形成的码字,所述第一码字中另外n个 比特包括k-n个信息比特和2n-k个校验比特,将所述另外n个比特发送给所述发送单元,其 中,n、m、k均为正整数,2n>k>n>m;所述发送单元,还用于将所述第一码字中的所述 另外n个比特发送出去。
19.在本技术实施例提供的编码装置中,第一码字中的比特被多个不同时刻产生的码字保护, 编码增益效果更好;而且,不同时刻的码字之间共享的比特个数不尽相同,使得码
字中的比 特被不同个数的码字保护,被更多数量的码字保护的比特具备更快的收敛速度,可以提升译 码器的译码速度,起到降低时延的作用。
20.结合第二方面,在第二方面的第一种可能的实现方式中,所述编码装置还包括存储单元, 用于存储所述第一码字中的所述另外n个比特,供所述编码单元在编码所述第一码字之后的 码字时使用。
21.结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方 式中,所述第一码字来自于所述m个在所述第一码字之前形成的码字中每个码字的比特数相 同,其中,n为m的整数倍。本实施中第一码字从m个之前形成的码字中的每一个码字共享 相同数目的比特,且共享比特数不止一个,两个码字之间共享的比特个数多,则需要共享的 码字个数降低,在接收端可以快速完成数据的收集以及译码过程,从而降低时延。
22.结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方 式中,所述第一码字来自于第二码字的比特数为a,在所述m个在所述第一码字之前形成的 码字中,至少有一个码字提供给所述第一码字的比特数与a不同,其中,a为正整数,第二码 字为所述m个在所述第一码字之前形成的码字中的任意一个。在本实施例中,不同时刻的码 字之间共享的比特个数不尽相同,使得码字中的比特被不同个数的码字保护,被更多数量的 码字保护的比特较快收敛,然后带动被更少码字保护的比特收敛,从而提升译码器的译码速 度,降低时延。
23.结合第二方面或以上任一种可能的实现方式,在第二方面的第四种可能的实现方式中, 所述编码装置具体用于:对来自于m个在所述第一码字之前形成的码字的n个比特和k-n个 待传输的信息比特进行编码,得到2n-k个校验比特,形成所述第一码字。
24.结合第二方面或以上任一种可能的实现方式,在第二方面的第五种可能的实现方式中, 所述第一码字中发送出去的n个比特,与在所述第一码字之后形成的一些码字共享。进一步 地,所述第一码字中发送出去的n个比特,与在所述第一码字之后形成的m个码字共享。每 个码字中的一半比特与之前形成的码字共享,另一半比特与之后形成的码字共享,保证每个 比特均被不同的码字保护,可以得到更好的编码增益。
25.结合第二方面或以上任一种可能的实现方式,在第二方面的第六种可能的实现方式中, 所述第一码字中的每个比特被至少两个码字采用。
26.结合第一方面或以上任一种可能的实现方式,在第一方面的第七种可能的实现方式中, 在所述第一码字中来自于m个之前形成的码字的比特中,至少一些比特为之前码字中的校验 比特。
27.结合第二方面或以上任一种可能的实现方式,在第二方面的第八种可能的实现方式中,n 为360,k为700。应理解,这是本技术给出的一个具体的码字,第一码字还可以为其他比特 数量,本技术并不做限定。
28.结合第二方面或以上任一种可能的实现方式,在第二方面的第九种可能的实现方式中, 将所述m个在所述第一码字之前形成的码字分为b组,将所述第一码字中与之前码字共享的 n个比特分为b组,所述第一码字中的每一组对应所述m个在所述第一码字之前形成的码字 中的一组,其中,b为正整数,n和m均为b的整数倍。
29.结合第二方面的第九种可能的实现方式,在第二方面的第十种可能的实现方式
中,n为360,m为256;将所述256个在所述第一码字之前形成的码字分为4组,每组64个码字; 将所述第一码字中与之前码字共享的360个比特分为4组,每组90个比特,其中,每组90 个比特来自于对应的一组64个码字。
30.第三方面,提供一种用于数据通信的译码方法,所述方法包括:恢复出第一码字,其中, 第一码字包括2n个比特,由k个编码比特形成,且第一码字的n个比特来自于m个在该第 一码字之前译码的码字,第一码字中另外n个比特包括k-n个信息比特和2n-k个校验比特, 其中,n、m、k均为正整数,2n>k>n>m;对第一码字进行译码,得到译码后的比特。
31.应理解,在本实施例中,恢复出第一码字之前,至少已经有m个码字进行过译码了;第 一码字中的一半比特是来自于之前译码的m个码字,另外n个比特是当前时刻接收到的比特 流。此外,在本实施例中,不同的码字之间共享的比特个数不同,存在多个码字共享不止一 个比特,共享的比特数越多,需要关联的码字数量会有所降低,无需等待时间过长,即可译 码,从而降低系统时延。
32.结合第三方面,在第三方面的第一种可能的实现方式中,所述第一码字来自于所述m个 在所述第一码字之前译码的码字中每个码字的比特数相同,其中,n为m的整数倍。本实施 中第一码字从m个之前译码的码字中的每一个码字共享相同数目的比特,且共享比特数不止 一个,两个码字之间共享的比特个数多,则需要共享的码字个数降低,可以快速完成数据的 收集以及译码过程,从而降低时延。
33.结合第三方面,在第三方面的第二种可能的实现方式中,所述第一码字来自于第二码字 的比特数为a,在所述m个在所述第一码字之前译码的码字中,至少有一个码字提供给所述 第一码字的比特数与a不同,其中,a为正整数,第二码字为所述m个在所述第一码字之前 译码的码字中的任意一个。在本实施例中,不同时刻的码字之间共享的比特个数不尽相同, 使得码字中的比特被不同个数的码字保护,被更多数量的码字保护的比特较快收敛,然后带 动被更少码字保护的比特收敛,从而提升译码器的译码速度,降低时延。
34.结合第三方面或以上任一种可能的实现方式,在第三方面的第三种可能的实现方式中,n 为360,k为700。应理解,这是本技术给出的一个具体的码字,第一码字还可以为其他比特 数量,本技术并不做限定。
35.第四方面,提供一种用于数据通信的译码装置,包括译码单元和存储单元,其中,译码 单元用于接收传输过来的码字,恢复出第一码字,并对第一码字进行译码,其中,该第一码 字包括2n个比特,且第一码字的n个比特来自于m个在该第一码字之前译码的码字,n、m 均为正整数,n>m;存储单元用于存储来自于所述传输过来的码字,并从译码单元接收译码 信息,对存储的码字进行更新,并在后续译码过程中将更新后的码字发回给译码单元。本实 施例在译码过程中,会使用之前译码得到的信息比特,信息比特被不同的码字保护,译码性 能更强。且两个码字之间共享的比特数更多,需要关联的码字数量会有所降低,无需等待时 间过长,即可译码,从而降低系统时延。
36.结合第四方面,在第四方面的第一种可能的实现方式中,所述第一码字来自于所述m个 在所述第一码字之前译码的码字中每个码字的比特数相同,其中,n为m的整数倍。本实施 中第一码字从m个之前译码的码字中的每一个码字共享相同数目的比特,且共享比特数不止 一个,两个码字之间共享的比特个数多,则需要共享的码字个数降低,可以快速完成数据的 收集以及译码过程,从而降低时延。
37.结合第四方面,在第四方面的第二种可能的实现方式中,所述第一码字来自于第二码字 的比特数为a,在所述m个在所述第一码字之前译码的码字中,至少有一个码字提供给所述 第一码字的比特数与a不同,其中,a为正整数,第二码字为所述m个在所述第一码字之前 译码的码字中的任意一个。在本实施例中,不同时刻的码字之间共享的比特个数不尽相同, 使得码字中的比特被不同个数的码字保护,被更多数量的码字保护的比特较快收敛,然后带 动被更少码字保护的比特收敛,从而提升译码器的译码速度,降低时延。
38.结合第四方面或以上任一种可能的实现方式,在第四方面的第三种可能的实现方式中,n 为360,k为700。应理解,这是本技术给出的一个具体的码字,第一码字还可以为其他比特 数量,本技术并不做限定。
39.第五方面,提供一种基于数据通信的级联编码方法,所述方法包括:接收数据比特,对 数据比特进行kp4编码,得到kp4码字;将所述kp4码字进行交织,得到交织后的码字; 将所述交织后的码字按照第一方面或第一方面任一种可能的实现方式所述的编码方法进行编 码,其中,所述交织后的码字在进行如第一方面或第一方面任一种可能的实现方式所述的编 码之前,不进行译码。本实施例中,经交织的kp4码字无需译码,直接进行下一步的级联编 码,可以降低功耗。
40.第六方面,提供一种基于数据通信的级联编码装置,所述级联编码装置包括:第一编码 单元,交织单元和第二编码单元;第一编码单元,用于接收数据比特,对数据比特进行kp4 编码,将得到的kp4码字发送给交织单元;交织单元,用于将所述kp4码字进行交织,将交 织后的码字发送给第二编码单元;第二编码单元,用于将所述交织后的码字按照第一方面或 第一方面任一种可能的实现方式所述的编码方法进行编码,其中,第二编码单元不对所述交 织后的码字进行译码。本实施例中,经交织的kp4码字无需译码,直接进行下一步的级联编 码,可以降低功耗。
41.第七方面、提供一种用于数据通信的编码方法,所述方法包括:形成第一码字,所述第 一码字包括n个镜像比特和n个待传输比特,且所述n个镜像比特从m个源码字的待传输比 特中挑选,其中,所述源码字为在所述第一码字之前形成的码字,n和m均为正整数,n>m; 将所述第一码字的所述n个待传输比特发送出去。
42.在本技术实施例中,第一码字中的比特被多个不同时刻产生的码字保护,编码增益效果 更好;而且,不同时刻的码字之间共享的比特个数不尽相同,使得码字中的比特被不同个数 的码字保护,被更多数量的码字保护的比特具备更快的收敛速度,可以提升译码器的译码速 度,起到降低时延的作用。
43.结合第七方面,在第七方面的第一种可能的实现方式中,所述n个待传输比特包括p个 校验比特和n-p个信息比特,其中,所述p个校验比特由所述n个镜像比特和所述n-p个信 息比特编码得到,p为小于n的正整数。
44.结合第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述 n个镜像比特包括镜像校验比特和镜像信息比特,其中,所述镜像校验比特为从m个所述源 码字的校验比特中挑选,所述镜像信息比特从m个所述源码字的信息比特中挑选。
45.结合第七方面的第二种可能的实现方式,在第七方面的第三种可能的实现方式中,所述 镜像校验比特和所述校验比特的个数相同。
46.结合第七方面或第七方面的上述可能的实现方式,在第七方面的第四种可能的实现方式 中,在所述m个源码字中,不同源码字提供给所述第一码字的比特数目差的最大值大于一个 比特,此时,在保持低时延的前提下可以进一步提升纠错性能。
47.结合第七方面或第七方面的上述可能的实现方式,在第七方面的第五种可能的实现方式 中,所述第一码字的码长不大于2048,纠错比特数不大于5。在本实施例中,所述第一码字 能在保证低时延的前提下依旧具有较好的性能。
48.结合第七方面或第七方面的上述可能的实现方式,在第七方面的第六种可能的实现方式 中,在所述m个源码字中,至少一个源码字提供给所述第一码字的比特数目与其他源码字提 供给所述第一码字的比特数目不相同;或每个源码字提供给所述第一码字q个比特,其中,q 为大于1的整数,n为m的整数倍。本实施例中,每个比特均被不同的码字保护,且一个码 字提供给所述第一码字的比特数可以不止一个,在保证编码增益的情况下,译码的速度更快。
49.结合第七方面或第七方面的上述可能的实现方式,在第七方面的第七种可能的实现方式 中,p_word个所述第一码字构成第一帧,所述第一帧中码字的镜像比特来自于在所述第一帧 之前生成的h个第二帧中码字的待传输比特,其中,h和p_word均为大于1的正整数。
50.结合第七方面的第七种可能的实现方式,在第七方面的第八种可能的实现方式中,所述 h个第二帧中比特的帧坐标,行坐标和列坐标通过φf(),φr()和φc()三个函数计算得到:
51.φf([frame,row_str,col_str])=frame-1-frm_map(floor((col_str δ)/ceiling(n/h)));
[0052][0053]
φc([frame,row_str,col_str])=n h*((col_str δ)%ceiling(n/h)) (h-1
-ꢀ
floor((col_str δ)/ceiling(n/h)))。
[0054]
其中,所述第一帧中码字的镜像比特的帧坐标frame、行坐标row_str和列坐标col_str 均为整数,且frame∈(-∞, ∞),row_str∈[0,p_word-1],col_str∈[0,2n-1];frm_map(i)=h-1-i, i∈[0,h-1];
[0055]
如果n/h为整数,δ=0;否则,如果col_str/floor(n/h)<ceiling(n/h)*h-n,δ =floor(col_str/floor(n/h));如果col_str/floor(n/h)>=ceiling(n/h)*h-n,δ=ceiling(n/h)*h-n。
[0056]
结合第七方面的第八种可能的实现方式,在第七方面的第九种可能的实现方式中,所述 第一帧中码字的镜像校验比特的列坐标col_str集合如下所示:
[0057]
col_str_vec(i,:)=[i_base(i)-range(i) 1:i_base(i)],0<=i<=h-1;
[0058]
其中,如果i<ceiling(n/h)*h-n,i_base(i)=(i 1)*ceiling(n/h)-i-2;如果i>=ceiling(n/h)*h-n, i_base(i)=(i 1)*ceiling(n/h)-ceiling(n/h)*h-n-1;range(i)=ceiling((p-i)/h)ror(ceiling(n/h)*h-n), ror为数组循环右移。
[0059]
结合第七方面的第八种或第九种可能的实现方式,在第七方面的第十种可能的实现方式 中,第一码字为bch(720,700)码,h=5,p_word=64,则φf(),φr()和φc()三个函数表达 式如下所示:
[0060]
φf([frame,row_str,col_str])=frame-1-frm_map(floor((col_str)/72)),
[0061][0062]
φc([frame,row_str,col_str])=360 5*((col_str)%72) (4

floor((col_str)/72)),其 中,frm_map(i)=4-i,i∈[0,4],且i为整数。
[0063]
结合第七方面的第十种可能的实现方式,在第七方面的第十一种可能的实现方式中,所 述第一帧中码字的镜像校验比特的列坐标col_str集合如下所示:
[0064]
col_str_vec(i,:)={[68,69,70,71],[140,141,142,143],[212,213,214,215],[284,285,286,287], [356,357,358,359]}。
[0065]
结合第七方面的第七种可能的实现方式,在第七方面的第十二种可能的实现方式中,所 述h个第二帧中比特的帧坐标frame’,行坐标row_str’和列坐标col_str’由如下公式得到:
[0066]
frame’=frame 1 frm_map(col_str%h);
[0067]
col_str’=(h
–1–
col_str%h)*ceiling(n/h) floor(col_str/h)

δ;
[0068][0069]
其中,所述第一帧中码字的镜像比特的帧坐标frame、行坐标row_str和列坐标col_str 均为整数,且frame∈(-∞, ∞),row_str∈[0,p_word-1],col_str∈[0,2n-1];frm_map(i)=i, i∈[0,h-1],且i为整数;
[0070]
如果n/h为整数,δ=0;否则,如果col_str/floor(n/h)<ceiling(n/h)*h-n,δ =floor(col_str/floor(n/h));如果col_str/floor(n/h)>=ceiling(n/h)*h-n,δ=ceiling(n/h)*h-n。
[0071]
结合第七方面的第十二种可能的实现方式,在第七方面的第十三种可能的实现方式中, 第一码字为bch(720,700)码,h=5,p_word=64,则:frame’=frame 1 frm_map(col_str% 5);
[0072]
col_str’=(4

col_str%5)*72 floor(col_str/5);
[0073][0074]
结合第七方面任一种可能的实现方式,在第七方面的第十四种可能的实现方式中,所述 方法还包括:将所述n个待传输比特存储起来,供编码所述第一码字之后的码字时使用。
[0075]
结合第七方面任一种可能的实现方式,在第七方面的第十五种可能的实现方式中,所述 第一码字中发送出去的n个比特,与在所述第一码字之后形成的一些码字共享。
[0076]
结合第七方面任一种可能的实现方式,在第七方面的第十六种可能的实现方式中,所述 第一码字中的每个比特被至少两个码字采用。
[0077]
结合第七方面任一种可能的实现方式,在第七方面的第十七种可能的实现方式中,所述 第一码字为bch(720,700)码。
[0078]
第八方面,提供一种编码装置,所述编码装置包括编码单元和发送单元,所述编码单元, 用于形成第一码字,所述第一码字包括n个镜像比特和n个待传输比特,且所述n个镜像比 特从m个源码字的待传输比特中挑选,其中,所述源码字为在所述第一码字之前形成的码字, n和m均为正整数,n>m;所述发送单元,用于将所述第一码字中的所述n个待传输
比特发 送出去。
[0079]
在本技术实施例中,第一码字中的比特被多个不同时刻产生的码字保护,编码增益效果 更好;而且,不同时刻的码字之间共享的比特个数不尽相同,使得码字中的比特被不同个数 的码字保护,被更多数量的码字保护的比特具备更快的收敛速度,可以提升译码器的译码速 度,起到降低时延的作用。
[0080]
结合第八方面,在第八方面的第一种可能的实现方式中,所述n个待传输比特包括p个 校验比特和n-p个信息比特,其中,所述p个校验比特由所述n个镜像比特和所述n-p个信 息比特编码得到,p为小于n的正整数。
[0081]
结合第八方面的第一种可能的实现方式,在第八方面的第二种可能的实现方式中,所述 n个镜像比特包括镜像校验比特和镜像信息比特,其中,所述镜像校验比特为从m个所述源 码字的校验比特中挑选,所述镜像信息比特从m个所述源码字的信息比特中挑选。
[0082]
结合第八方面的第二种可能的实现方式,在第八方面的第三种可能的实现方式中,所述 镜像校验比特和所述校验比特的个数相同。
[0083]
结合第八方面的任一种可能的实现方式,在第八方面的第四种可能的实现方式中,在所 述m个源码字中,不同源码字提供给所述第一码字的比特数目差的最大值大于一个比特。
[0084]
结合第八方面的任一种可能的实现方式,在第八方面的第五种可能的实现方式中,所述 第一码字的码长不大于2048,纠错比特数不大于5。
[0085]
结合第八方面的任一种可能的实现方式,在第八方面的第六种可能的实现方式中,在所 述m个源码字中,至少一个源码字提供给所述第一码字的比特数目与其他源码字提供给所述 第一码字的比特数目不相同;或
[0086]
每个源码字提供给所述第一码字q个比特,其中,q为大于1的整数,n为m的整数倍。
[0087]
结合第八方面的任一种可能的实现方式,在第八方面的第七种可能的实现方式中,p_word 个所述第一码字构成第一帧,所述第一帧中码字的镜像比特来自于在所述第一帧之前生成的 h个第二帧中码字的待传输比特,其中,h和p_word均为大于1的正整数。
[0088]
结合第八方面的第七种可能的实现方式,在第八方面的第八种可能的实现方式中,所述 h个第二帧中比特的帧坐标,行坐标和列坐标通过φf(),φr()和φc()三个函数计算得到:
[0089]
φf([frame,row_str,col_str])=frame-1-frm_map(floor((col_str δ)/ceiling(n/h)));
[0090][0091]
φc([frame,row_str,col_str])=n h*((col_str δ)%ceiling(n/h)) (h-1
-ꢀ
floor((col_str δ)/ceiling(n/h)))。
[0092]
其中,所述第一帧中码字的镜像比特的帧坐标frame、行坐标row_str和列坐标col_str 均为整数,且frame∈(-∞, ∞),row_str∈[0,p_word-1],col_str∈[0,2n-1];frm_map(i)=h-1-i, i∈[0,h-1];如果n/h为整数,δ=0;否则,如果col_str/floor(n/h)<ceiling(n/h)*h-n,δ =floor(col_str/floor(n/h));如果col_str/floor(n/h)>=ceiling(n/h)*h-n,δ=ceiling(n/h)*h-n。
[0093]
结合第八方面的第八种可能的实现方式,在第八方面的第九种可能的实现方式中,所述 第一帧中码字的镜像校验比特的列坐标col_str集合如下所示:
[0094]
col_str_vec(i,:)=[i_base(i)-range(i) 1:i_base(i)],0<=i<=h-1;
[0095]
其中,如果i<ceiling(n/h)*h-n,i_base(i)=(i 1)*ceiling(n/h)-i-2;如果i>=ceiling(n/h)*h-n, i_base(i)=(i 1)*ceiling(n/h)-ceiling(n/h)*h-n-1;range(i)=ceiling((p-i)/h)ror(ceiling(n/h)*h-n), ror为数组循环右移。
[0096]
结合第八方面的第八种或第九种可能的实现方式,在第八方面的第十种可能的实现方式 中,第一码字为bch(720,700)码,h=5,p_word=64,则φf(),φr()和φc()三个函数表达 式如下所示:
[0097]
φf([frame,row_str,col_str])=frame-1-frm_map(floor((col_str)/72)),
[0098][0099]
φc([frame,row_str,col_str])=360 5*((col_str)%72) (4

floor((col_str)/72)),其 中,frm_map(i)=4-i,i∈[0,4],且i为整数。
[0100]
结合第八方面的第十种可能的实现方式,在第八方面的第十一种可能的实现方式中,所 述第一帧中码字的镜像校验比特的列坐标col_str集合如下所示:
[0101]
col_str_vec(i,:)={[68,69,70,71],[140,141,142,143],[212,213,214,215],[284,285,286,287], [356,357,358,359]}。
[0102]
结合第八方面的第七种可能的实现方式,在第八方面的第十二种可能的实现方式中,所 述h个第二帧中比特的帧坐标frame’,行坐标row_str’和列坐标col_str’由如下公式得到:
[0103]
frame’=frame 1 frm_map(col_str%h);
[0104]
col_str’=(h
–1–
col_str%h)*ceiling(n/h) floor(col_str/h)

δ;
[0105][0106]
其中,所述第一帧中码字的镜像比特的帧坐标frame、行坐标row_str和列坐标col_str 均为整数,且frame∈(-∞, ∞),row_str∈[0,p_word-1],col_str∈[0,2n-1];frm_map(i)=i, i∈[0,h-1],且i为整数;
[0107]
如果n/h为整数,δ=0;否则,如果col_str/floor(n/h)<ceiling(n/h)*h-n,δ =floor(col_str/floor(n/h));如果col_str/floor(n/h)>=ceiling(n/h)*h-n,δ=ceiling(n/h)*h-n。
[0108]
结合第八方面的第十二种可能的实现方式,在第八方面的第十三种可能的实现方式中, 第一码字为bch(720,700)码,h=5,p_word=64,则:frame’=frame 1 frm_map(col_str% 5);
[0109]
col_str’=(4

col_str%5)*72 floor(col_str/5);
[0110]
其中,frm_map(i)=i,i∈[0,4]。
[0111]
结合第八方面任一种可能的实现方式,在第八方面的第十四种可能的实现方式中,所述 方法还包括:将所述n个待传输比特存储起来,供编码所述第一码字之后的码字时使用。
[0112]
结合第八方面任一种可能的实现方式,在第八方面的第十五种可能的实现方式
中,所述 第一码字中发送出去的n个比特,与在所述第一码字之后形成的一些码字共享。
[0113]
结合第八方面任一种可能的实现方式,在第八方面的第十六种可能的实现方式中,所述 第一码字中的每个比特被至少两个码字采用。
[0114]
结合第八方面的任一种可能的实现方式,在第八方面的第十七种可能的实现方式中,所 述第一码字为bch(720,700)码。
[0115]
第九方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储指令,当所述 指令在终端设备上运行时,使得所述终端设备执行如第一方面或第一方面任一种可能的实现 方式所述的方法;或使得所述终端设备执行如第三方面或第三方面中任一种可能的实现方式 所述的方法;或使得所述终端设备执行如第七方面或第七方面中任一种可能的实现方式所述 的方法。
[0116]
第十方面,提供一种包含指令的计算机程序产品,当在终端设备上运行时,使得终端设 备执行如第一方面或第一方面任一种可能的实现方式所述的方法;或使得所述终端设备执行 如第三方面或第三方面中任一种可能的实现方式所述的方法;或使得所述终端设备执行如第 七方面或第七方面中任一种可能的实现方式所述的方法。应理解,终端设备可以为芯片、处 理器等等,本技术并不做限定。
[0117]
第十一方面,提供一种基于数据通信的级联编码方法,所述方法包括:接收数据比特, 对数据比特进行kp4编码,得到kp4码字;将所述kp4码字进行交织,得到交织后的码字; 将所述交织后的码字按照第七方面或第七方面任一种可能的实现方式所述的编码方法进行编 码,其中,所述交织后的码字在进行如第七方面或第七方面任一种可能的实现方式所述的编 码之前,不进行译码。本实施例中,经交织的kp4码字无需译码,直接进行下一步的级联编 码,可以降低功耗。
[0118]
第十二方面,提供一种基于数据通信的级联编码装置,所述级联编码装置包括:第一编 码单元,交织单元和第二编码单元;第一编码单元,用于接收数据比特,对数据比特进行kp4 编码,将得到的kp4码字发送给交织单元;交织单元,用于将所述kp4码字进行交织,将交 织后的码字发送给第二编码单元;第二编码单元,用于将所述交织后的码字按照第七方面或 第七方面任一种可能的实现方式所述的编码方法进行编码,其中,第二编码单元不对所述交 织后的码字进行译码。本实施例中,经交织的kp4码字无需译码,直接进行下一步的级联编 码,可以降低功耗。
[0119]
在本技术上述实施例中,第一码字中的比特被多个不同时刻产生的码字保护,编码增益 效果更好;而且,不同时刻的码字之间共享的比特个数不尽相同,使得码字中的比特被不同 个数的码字保护,被更多数量的码字保护的比特具备更快的收敛速度,可以提升译码器的译 码速度,起到降低时延的作用。
附图说明
[0120]
图1为通信系统的结构框图;
[0121]
图2为本技术提供的编码方法流程图;
[0122]
图3为本技术一实施例提供的一种码字共享规则示意图;
[0123]
图4为本技术另一实施例提供的一种码字共享规则示意图;
[0124]
图5为本技术另一实施例提供的一种码字共享规则示意图;
[0125]
图6为本技术另一实施例提供的fec帧的存储方式示意图;
[0126]
图7为本技术另一实施例提供的fec帧中需补充比特的构成方式图;
[0127]
图8为本技术另一实施例提供的fec帧中需补充的一列比特的共享规则图;
[0128]
图9为本技术另一实施例提供的译码方法流程图;
[0129]
图10本技术另一实施例提供的编码装置图;
[0130]
图11本技术另一实施例提供的译码装置图;
[0131]
图12本技术另一实施例提供的编码装置图;
[0132]
图13本技术另一实施例提供的译码装置图;
[0133]
图14为本技术另一实施例提供的高速传输系统结构图;
[0134]
图15为本技术另一实施例提供的800g传输系统结构图;
[0135]
图16为本技术提供的编码方案应用于800g传输系统中的仿真结果图;
[0136]
图17(a)为本技术另一实施例提供的码字结构示意图;
[0137]
图17(b)为本技术另一实施例提供的fec帧结构示意图;
[0138]
图18为本技术另一实施例提供一种码字共享规则示意图;
[0139]
图19为本技术另一实施例提供的一种交织方案示意图;
[0140]
图20为本技术另一实施例提供的一种具体的fec帧交织方案示意图;
[0141]
图21为本技术另一实施例提供的一种具体的fec帧交织方案示意图;
[0142]
图22为本技术另一实施例提供的一种具体的fec帧交织方案示意图;
[0143]
图23为本技术另一实施例提供的fec帧的编码架构图;
[0144]
图24为利用如图23所示的编码架构生成当前帧的镜像比特的示意图;
[0145]
图25为本技术另一实施例提供的一种具体的fec帧交织方案示意图;
[0146]
图26为本技术另一实施例提供的一种具体的fec帧交织方案示意图;
[0147]
图27为本技术另一实施例提供的一种具体的fec帧交织方案示意图。
具体实施方式
[0148]
在对本技术实施例进行详细地解释说明之前,先对本技术实施例的应用场景予以说明。 图1示出通信系统的结构框图,在发送端,信源提供待发送的数据流;编码器接收该数据流, 并对其进行编码,编码获得校验比特和信息比特合并的码字信息进行发送,经过信道传输, 到达接收端;接收端接收到因为信道中的噪声或者其他损伤产生错误的码字信息后,通过译 码器进行译码,恢复出原有数据,发给信宿。其中,本技术提供的编码方法应用于图1所示 的编码器中,是通信系统中非常重要的一环。
[0149]
信源中发出的数据经过采用本编码方案的编码器,会连续形成多个由数据比特和校验比 特组成的码字,构成码字流,其中,生成的码字会与在此之前或之后生成的码字共享比特, 使得码字中的比特被多个不同时刻产生的码字保护,可以获得更好的编码增益。
[0150]
本技术提供一种用于数据通信的编码方法,如图2所示,包括:
[0151]
201、形成第一码字,该第一码字包括2n个比特,由k个编码比特形成,且第一码字的 n个比特来自于m个在该第一码字之前形成的码字,第一码字中另外n个比特包括k-n个信 息比特和2n-k个校验比特,其中,n、m、k均为正整数,2n>k>n>m;
[0152]
202、将所述第一码字中的所述另外n个比特发送出去。
[0153]
应理解,在本实施例中,形成第一码字之前,至少已经产生m个码字了;第一码字中的 一半比特是来自于之前形成的m个码字的,也就是说,这一半比特是从该m个码字的每个码 字中各拿几个比特组成的,是与之前的m个码字共享的;而剩余的k-n个比特为当前时刻的 信息比特,根据从之前形成的m个码字中共享的n个比特和当前时刻的k-n个信息比特,经 过编码,得到2n-k个校验比特,从而形成第一码字。由于第一码字中有n个比特已经在之前 形成的码字发送过了,无需再次发送,因此,将第一码字中另外n个比特发送出去,即剩余 的k-n个信息比特和新生成的2n-k个校验比特构成待传输码字,将所述待传输码字发送出去。
[0154]
大体来说,第一码字与先前形成的码字及后续形成的码字共享比特;在第一码字中,每 一个比特位于至少一个先前形成或后续形成的码字中。此外,在一些实施例中,第一码字的 k个编码比特中的至少一些比特为其它码字的数据比特,且k个编码比特中的至少一些比特 为其它码字的校验比特。在本技术实施例中,参与码字编码的比特为编码比特,当前时刻收 到的待传输比特为信息比特,在k个编码比特中,存在n个比特是与之前码字共享的,剩余 的k-n个比特为当前时刻待传输的信息比特。
[0155]
通常情况下,在生成的码字流中,初始的部分码字需要包含填充比特,例如填充全0比 特序列,直到形成足够数量的码字,可以为后续码字提供足够的共享比特。例如,如本技术 实施例所述,码字包括2n个比特,其中一半比特与在先形成的m个码字的比特进行共享, 即在先码字中的比特会作为当前码字的编码比特;此时,在初始的m个码字中,由于不存在 m个在先码字,无法从在先码字中获得足够的编码比特,因此,需要在码字中增加一些填充 比特,将编码比特的数量补充完整,以便生成校验比特,形成第一码字。应理解,在初始的 m个码字中,除了第一个码字之外,其他码字可以从之前的码字中共享一部分比特,再填充 剩余部分的比特;也可以不与在先码字共享,缺少的编码比特全部由填充比特替换,本技术 在此不做限定。
[0156]
进一步地,还需要将所述另外n个比特存储起来,在对第一码字之后的码字进行编码时 使用。
[0157]
在本技术实施例中,第一码字的n个比特是与m个在该第一码字之前形成的码字共享的, 且由于n是大于m的,m个码字中总会有码字与第一码字共享多个比特,具体的共享规则有 多种,描述如下:
[0158]
(1)n是m的整数倍,m个码字中每个码字与第一码字共享的比特数目相同。图3是根 据本方案提供的一种具体的码字共享规则示意图,在图3中,每个码字的长度为16比特,包 括14个编码比特(图中的d)和2个校验比特(图中的p)。在14个编码比特中,有8个比 特(码字长度的一半)来自于之前形成的4个码字,每个码字各取2个比特。例如图3中被 实线包围的码字,为码字x,其中2个比特来源于码字x-1,2个比特来源于码字x-2,2个 比特来源于x-3,这6个比特均为之前码字中的信息比特,还有2个比特来源于x-4,这2 个比特为之前码字中的检验比特;码字x中剩余的6个信息比特为当前时刻待传输的信息比 特,将来自于之前码字的8个比特和当前时刻的6个比特经过编码,得到2个校验比特,从 而构成长度为16比特的码字x。
[0159]
同理,码字x的下一个码字x 1,如图3中被虚线包围的部分,码字x 1包括16个比 特,其中2个比特来源于码字x,2个比特来源于码字x-1,2个比特来源于x-2,这6个比 特也
为之前码字的信息比特,剩余2个比特来源于x-3,为之前码字的校验比特;剩余的6 个比特为当前时刻待传输的信息比特,将来自于之前码字的8个比特和当前时刻的6个比特 经过编码,得到2个校验比特,构成长度为16比特的码字x 1。
[0160]
在本实施例公开的码字流中,除去初始的4个比特以及结尾的4个比特(m=4),中间的 所有码字中,每个码字均有一半比特与在先的码字共享,一半比特与后续的码字共享,使得 码字中的比特被多个不同时刻产生的码字保护,可以获得更好的编码增益;且每个码字与其 他码字共享的比特数均为2,两个码字之间共享的比特个数增多,则需要共享的码字个数降 低,在接收端可以快速完成数据的收集以及译码过程,从而降低时延。当然共享的比特个数 还可以进一步增大,本技术并不做限定。
[0161]
(2)在m个之前形成的码字中,至少存在一个码字与第一码字共享的比特数目,与其 他码字与第一码字共享的比特数目不同。例如,假设n=9,m=4,有一个码字与第一码字共 享3个比特,剩余三个码字均与第一码字共享2个比特;或者,一个码字与第一码字共享1 个比特,另一个码字与第一码字共享2个比特,剩余两个码字均与第一码字共享3个比特。
[0162]
图4为根据本方案提供的一种具体的码字共享规则示意图,在图4中,每个码字的长度 也为16比特,包括14个编码比特(图中的d)和2个校验比特(图中的p)。在14个编码 比特中,有8个比特(码字长度的一半)来自于之前形成的6个码字,从每个码字获取的比 特个数如图4所示,例如图4中被实线包围的码字x,其中2个比特来源于码字x-1,1个比 特来源于码字x-2,1个比特来源于码字x-3,2个比特来源于码字x-4,这6个比特均为之 前码字中的信息比特;剩余的2个比特均为之前码字中的检验比特,其中一个比特来源于码 字x-5,另一个比特来源于码字x-6;码字x中剩余的6个比特为当前时刻待传输的信息比 特,将来自于之前码字的8个比特和当前时刻的6个比特经过编码,得到2个校验比特,从 而构成长度为16比特的码字x。同理,码字x的后续码字x 1,如图4中虚线包围的部分 所示,与码字x类似,本技术不再赘述。
[0163]
此外,在n为m的整数倍的情况下,也可能存在至少一个码字与第一码字共享的比特数 目,与其他码字和第一码字共享的比特数不同的情况;例如,n=8,m=4,一个码字与第一码 字共享5个比特,其余码字各共享1个比特,或者,两个码字与第一码字共享3个比特,另 两个码字与第一码字共享1个比特。
[0164]
图5为根据本方案提供的另一种具体的码字共享规则示意图,在图5中,每个码字的长 度同样为16比特,包括14个编码比特(图中的d)和2个校验比特(图中的p)。在14个 编码比特中,有8个比特(码字长度的一半)来自于之前形成的4个码字,从每个码字获取 的比特个数如图5所示,例如图4中被实线包围的码字x,其中3个比特来源于码字x-1,1 个比特来源于码字x-2,3个比特来源于码字x-3,1个比特来源于码字x-4,这8个比特包 括6个之前码字中的信息比特和2个之前码字中的检验比特;码字x中剩余的6个比特为当 前时刻待传输的信息比特,将来自于之前码字的8个比特和当前时刻的6个比特经过编码, 得到2个校验比特,从而构成长度为16比特的码字x。同理,码字x的后续码字x 1,如 图4中虚线包围的部分所示,与码字x类似,本技术不再赘述。
[0165]
在本实施例公开的码字流中,除去初始的m个比特以及结尾的m个比特(图4中m=6, 图5中m=4),中间的所有码字中,每个码字均有一半比特与在先的码字共享,一半比特与后 续的码字共享,使得码字中的比特被多个不同时刻产生的码字保护,可以获得更好的
编码增 益。此外,不同时刻的码字之间共享的比特个数不尽相同,使得码字中的比特被不同个数的 码字保护,被更多数量的码字保护的比特较快收敛,然后带动被更少码字保护的比特收敛, 从而提升译码器的收敛速度,起到降低时延的作用。应理解,图4和图5只是给出了两种不 同的比特共享方式,还存在其他的共享方式,本技术对此不做限定。
[0166]
可选地,在所述m个之前形成的码字中,不同码字提供给所述第一码字的比特数目差的 最大值大于一个比特,在保持低时延的前提下可以进一步提升纠错性能。
[0167]
从上述两个不同的实施例中可以看出,除去初始和结尾的部分码字,中间的所有码字均 有一半比特来自于在先形成的码字,这一半比特的作用是与当前时刻的信息比特共同参与校 验比特的生成,且这一半比特本身是不参与当前码字的传输的。当前时刻的信息比特以及编 码生成的校验比特构成码字的另一半比特,这另一半比特是待传输的比特,且与后续形成的 码字共享。
[0168]
以第一码字为博斯-查德胡里-霍昆格姆(bose-chaudhuri-hocquenghem,bch)码,其比 特数为720为例,其中360个比特来自于之前形成的码字,340个比特为当前码字中的信息 比特,总共700个编码比特根据bch(720,700)对应的生成多项式进行编码,即可得到20 个校验比特;其中,来自于之前形成的码字的360个比特不参与数据传输,由340个当前信 息比特和20个校验比特一起组成360个比特的待传输的bch码字。应理解,bch(720,700) 是通过bch(1023,1003)缩短303个比特得到的,具体的缩短方式可以为去掉高位的303 个比特,或去掉低位的303个比特,或者其他方式,本技术对此不做限定。
[0169]
本技术另一实施例还提供了一种fec帧的编码方式,其中,该fec帧包括num个如之 前实施例所述的待传输码字,其可参照图6所示的方式存入内存中,每一列为一个待传输码 字,num为大于1的正整数。
[0170]
在某一时刻编码生成fec帧时,根据之前的实施例所述,生成每一个待传输码字(待传 输码字包括n个比特),需要额外补充n个比特,该n个比特来自于之前形成的一些码字,本 实施例将补充的比特记为info_pad,因此,生成fec帧需要额外补充n行,num列info_pad。 假设info_pad来自于之前形成的t个fec帧,info_pad的比特可以用(row_inf,col_inf) 来表示,row_inf为info_pad的行号,为0、1、2。。。n-1中任意一个值;col_inf为info_pad 的列号,为0、1、2。。。num-1中任意一个值。之前形成的t个fec帧的比特用(frame, row_str,col_str)表示,frame为fec帧的编号,为0、1、2。。。t-1中任意一个值,第0 帧为在上一个时刻生成的fec帧,第1帧为再往前一个时刻生成的fec帧,依次类推;row_str 为fec帧的行号,为0、1、2。。。n-1中任意一个值;col_str为fec帧的列号,为0、1、2

num-1 中任意一个值。此时,info_pad中每一个比特与之前形成的fec帧的比特之间的对应关系, 可以根据如下公式计算:
[0171]
frame=floor((intial_row row_skip*row_inf)/n)
ꢀꢀꢀꢀꢀ
(1)
[0172]
row_str=(intial_row row_skip*row_inf floor(row_skip*row_inf/n))%n
ꢀꢀꢀꢀ
(2)
[0173]
col_str=(col_inf row_inf)%num
ꢀꢀꢀ
(3)
[0174]
其中,intial_row表示的是在t个fec帧中,与info_pad共享的第一行比特的行号, row_skip表示的是在t个fec帧中,每隔多少行选取一行比特与info_pad共享;应注意, intial_row为不小于0的整数,row_skip为正整数,且intial_row row_skip*(n-1)不能超 过n*(t-1)的值。
[0175]
此处提到的在当前时刻之前形成的t个fec帧,可以为之前任意时刻的t个fec帧。 例如当前时刻之前t个连续时刻的fec帧,也可以为当前时刻间隔某个固定时刻后,再连 续取t个fec帧,也可以当前时刻之前任意t个不连续时刻的fec帧,本技术不做限定。
[0176]
具体地,下面以待传输码字为bch(360,340),fec帧包括64个待传输码字为例,描 述了一种具体的info_pad的构成方式,其中,生成fec帧需要额外补充360行、64列的 info_pad。假设info_pad来自于之前形成的4个fec帧,共256个码字,则info_pad的构成 方式如图7所示,此时,info_pad的行号row_inf为0、1、2。。。359中任意一个值,info_pad 的列号col_inf为0、1、2。。。63中任意一个值;fec帧的编号frame为0、1、2、3中任意 一个值,fec帧的行号row_str为0、1、2。。。359中任意一个值,fec帧的列号col_str为 0、1、2。。。63中任意一个值。
[0177]
在图7所示的构成方式中,初始行号为0,每隔4行选取一行比特与info_pad共享,即 intial_row=0,row_skip=4,则info_pad中每一个比特与之前形成的fec帧的比特之间的对 应关系的公式可以简化如下:
[0178]
frame=floor(row_inf/90)
ꢀꢀꢀꢀꢀꢀ
(4)
[0179]
row_str=(4*row_inf floor(row_inf/90)%360
ꢀꢀꢀ
(5)
[0180]
col_str=(col_inf row_inf)%64
ꢀꢀꢀ
(6)
[0181]
结合上述公式(4)和(5),以及图7可以看出,当row_inf=0时,则frame=0,row_str=0, 也就是说,info_pad的第0行是与之前形成的4个fec帧中第0帧的第0行对应的;当 row_inf=89时,则frame=0,row_str=356,即info_pad的第89行是与之前形成的4个fec 帧中第0帧的第356行对应的;当row_inf=90时,则frame=1,row_str=1,也就是说,info_pad 的第90行是与之前形成的4个fec帧中第1帧的第1行对应的。
[0182]
根据公式(4)和(5)确定出info_pad中每一行分别对应哪个帧中的哪一行后,再根据 公式(6),可确定info_pad的某一行中任一比特与对应的fec帧的对应行中的哪个比特共享。 例如,当row_inf=0时,则col_str=col_inf,即在info_pad的第0行中,第0个比特与对 应行的第0个比特共享,第1个比特与对应行的第1个比特共享,以此类推;当row_inf=1 时,则col_str=col_inf 1,即在info_pad的第1行中,第0个比特与对应行的第1个比特 共享,第1个比特与对应行的第2个比特共享,以此类推;当row_inf=64时,则col_str=col_inf, 即在info_pad的第64行中,第0个比特与对应的那一行的第0个比特共享,第1个比特与 对应的那一行的第1个比特共享,其中,info_pad第64行的共享关系与info_pad第0行的共 享关系是一致的。
[0183]
综上所述,公式(6)给出了info_pad的每一行与之前fec帧中对应行之间的交织关系, 且行交织的周期为64,每经过64行,交织关系会重复一次。例如,info_pad的第0-63行中, 每一行与之前fec帧的对应行之间的交织关系都不相同,但从第64行开始,交织关系开始 重复,例如,info_pad的第0行与第64行的交织关系相同,第1行与第65行的交织关系相 同等等。应理解,还可以采用其他的行交织关系,例如,按照伽罗华域(galois field,gf) 进行交织计算。
[0184]
在本实施例中,info_pad的每5760个比特(90行
×
64列)来源于一个之前形成的fec 帧,而行交织的周期为64,因此,在这90行比特中,有26行比特只能重复采用其他行用过 的交织关系。图8给出了info_pad第一列中包括的90个比特与对应的fec帧中的比特之
间 的共享关系,图8中的实心块表示该fec帧中与info_pad第一列共享的比特位置,该共享关 系满足公式(5)和(6)的条件,例如,info_pad(0,0)与图8中实心块(0,0)位置的 比特共享,info_pad(1,0)与图8中实心块(4,1)位置的比特共享,info_pad(2,0)与 图8中实心块(8,2)位置的比特共享,info_pad(64,0)与图8中实心块(256,0)位置 的比特共享,info_pad(89,0)与图8中实心块(356,25)位置的比特共享,其中,(a,b) 表示第a行,第b列。
[0185]
从图8中可以看出,在fec帧中,第0-25列均与info_pad的第0列共享两个比特,第 26-63列均与info_pad的第0列共享一个比特。同理可以推出,info_pad的每一列包括的90 个比特与26个之前形成的待传输码字各共享两个比特,与另外38个之前形成的待传输码字 各共享1个比特。由于info_pad的每一列包括360个比特,且每90行对应一个之前形成的 fec帧,则info_pad的每一列与104个(26
×
4=104)之前形成的待传输码字各共享两个比 特,与另外152个(38
×
4=152)之前形成的待传输码字各共享1个比特。
[0186]
综上所述,在编码生成待传输的fec帧的过程中,以生成待传输的fec帧中的第一列 比特(第一列比特记为第一待传输码字)为例,该第一待传输码字的生成与info_pad的第一 列比特以及接收到的340个当前信息比特相关,即根据bch(720,700)对应的生成多项式, info_pad的第一列包括的360个比特与接收到的340个当前信息比特一起编码,生成20个校 验比特,其中,340个当前信息比特和生成的20个校验比特构成了第一待传输码字;以此类 推,可以编码得到64个待传输码字,共同组成当前编码的fec帧。
[0187]
简而言之,fec帧的编码过程如下:
[0188]
首先,接收待传输的信息比特,在本实施例中待传输的信息比特的数量为340;
[0189]
其次,通过本实施例提供的方式,从之前形成的256个码字中获得360个比特;
[0190]
再次,将该360个比特与接收的340个比特一起编码,生成20个校验比特,将接收的 340个比特和生成的20个比特发送出去,其中,接收的340个比特和生成的20个校验比特 构成了第一待传输码字,64个第一待传输码字构成了fec帧;
[0191]
实际的编码过程中,可以是一个编码器执行编码,也可以由多个编码器并行编码,例如, 8个编码器并行编码,得到8个待传输码字,在经过并串转换形成一个比特流,发送出去。
[0192]
应理解,待传输码字为bch(360,340)只是一种可能的实施例,还可以是其他长度, 例如,bch(510,490)、bch(256,238)等,也可以采用如汉明码、里德-所罗门(reed-solomon, rs)码等不同的编码规则,本技术对此不做限定。
[0193]
采用本实施例公开的编码方法,每个fec帧包括的待传输码字中的比特会被多个不同时 刻产生的fec帧包括的待传输码字保护,可以获得更好的编码增益。而且,不同的码字之间 共享的比特个数不同,彼此之间共享比特个数更多的码字,具有更快的收敛速度,然后,可 以带动其余码字的收敛,从而提升译码器的收敛速度,起到降低时延的作用。
[0194]
本技术提供一种用于数据通信的译码方法,如图9所示,包括:
[0195]
901、恢复出第一码字;其中,第一码字包括2n个比特,由k个编码比特形成,且第一 码字的n个比特来自于m个在该第一码字之前译码的码字,第一码字中另外n个比特包括k-n 个信息比特和2n-k个校验比特,其中,n、m、k均为正整数,2n>k>n>m;
[0196]
902、对第一码字进行译码,得到译码后的比特。
[0197]
应理解,在本实施例中,恢复出第一码字之前,至少已经有m个码字进行过译码了;
第 一码字中的一半比特是来自于之前译码的m个码字,另外n个比特是当前时刻接收到的比特 流。大体来说,第一码字与先前译码的码字及后续译码的码字共享比特;在第一码字中,每 一个比特位于至少一个先前译码或后续译码的码字中。此外,在一些实施例中,第一码字的 k个编码比特中的至少一些比特为其它码字的数据比特,且k个编码比特中的至少一些比特 为其它码字的校验比特。
[0198]
通常情况下,在接收的码字流中,初始的部分码字需要包含填充比特,例如填充全0比 特序列,直到译码了足够数量的码字。例如,如本技术实施例所述,在接收到初始的m个码 字时,由于不存在m个在先译码的码字,无法从在先译码的码字中获得足够的编码比特,因 此,需要在码字中增加一些填充比特,将编码比特的数量补充完整,以便译码。应理解,在 接收的初始m个码字中,除了第一个码字之外,其他码字可以从之前译码的码字中共享一部 分比特,再填充剩余部分的比特;也可以不与在先译码的码字共享,缺少的编码比特全部由 填充比特替换,本技术在此不做限定。此外,关于填充比特采用全0比特序列还是其他形式 的比特序列,译码端应与编码端保持一致,以便于正确译码。
[0199]
在本技术实施例中,之前译码过的码字中的部分错误比特已经被纠正,在与当前时刻接 收到的比特组成码字后,相当于组成的码字中的错误比特数目减少了,可增大译码正确的概 率。进而,在经过本次译码,除了纠正当前时刻新接收的比特错误,还可以纠正之前码字中 剩余的错误,提高纠错能力。此外,不同的码字之间共享的比特个数不同,存在多个码字共 享不止一个比特,共享的比特数越多,需要关联的码字数量会有所降低,无需等待时间过长, 即可译码,从而降低系统时延。
[0200]
本技术另一实施例提供一种用于数据通信的编码装置,如图10所示,包括编码单元1001 和发送单元1002,其中,编码单元1001接收待传输的信息比特,并对其进行编码形成待传 输的码字,将形成的码字发送给发送单元1002;发送单元1002,用于将接收到的码字发送出 去。进一步地,编码装置还包括存储单元1003,用于存储待传输的码字,并将其发回给编码 单元1001。编码单元1001在编码过程中会使用之前形成的码字中的比特,去编码生成新的 待传输码字。
[0201]
在编码过程中会形成第一码字,该第一码字包括2n个比特,由k个编码比特形成,且第 一码字的n个比特来自于m个在该第一码字之前形成的码字,第一码字中另外n个比特包括 k-n个信息比特和2n-k个校验比特,其中,n、m、k均为正整数,2n>k>n>m;发送的时 候,来自于之前m个码字的比特不参与数据传输,第一码字中的另外n个比特(即待传输的 码字)将会发送出去。其中,具体的编码过程如之前实施例所述,本实施例不在赘述。
[0202]
本技术另一实施例提供一种用于数据通信的译码装置,如图11所示,包括译码单元1101 和存储单元1102,其中,译码单元1101用于接收传输过来的码字,恢复出第一码字,对第 一码字进行译码;存储单元1102用于存储来自于所述传输过来的码字,并从译码单元1101 接收译码信息,对存储的码字进行更新,并在后续译码过程中将更新后的码字发回给译码单 元1101。译码单元1101在译码过程中会使用之前译码得到的信息比特,信息比特被不同的 码字保护,译码性能更强。
[0203]
在译码过程中会形成第一码字,该第一码字包括2n个比特,且第一码字的n个比特来自 于m个在该第一码字之前译码的码字,其中,n、m均为正整数,n>m。此时,这n个比特 已经在之前的译码过程中译码过,因此错误比特数将会降低,从而提高第一码字的译码成
功 率。举例来说,码字x-1在译码之前含有y个错误,在经过译码之后,码字x-1中的错误比 特被纠正了一部分;由于在码字x-1中纠正了部分错误,因此与码字x-1共享比特的其它先 前无法纠正的码字现在可具有充分数目个正确比特,使得先前无法纠正的码字变得可纠正。 以此类推,可反复地译码码字。
[0204]
本技术另一实施例提供一种用于数据通信的编码装置,如图12所示,包括:输入接口 1201、编码器1202、存储器1203和输出接口1204;编码器1202,用于通过输入接口1201 接收信息数据,通过输出接口1204将生成的码字发送出去;存储器1203用于存储编码器1202 发出的码字,并在后续编码过程中将其发回给编码器1202;编码器1202在编码过程中会使 用之前形成的码字中的比特,去编码生成新的码字。具体的编码过程如之前实施例所述,此 处不再赘述。
[0205]
进一步地,图12中所示的存储器是一个独立于编码器的器件,实际情况中,存储功能也 可以在编码器内实现,即不需要存在单独的存储器。此外,存储器1203也可以从输入接口 1201接收信息数据,从编码器1202接收校验数据,本技术并不限定。
[0206]
此外,本技术另一实施例还提供一种用于数据通信的译码装置,如图13所示,包括输入 接口1301、译码器1302、存储器1303和输出接口1304;译码器1302用于通过输入接口1301 接收发送过来的码字,并对其译码;存储器1303用于存储来自于输入接口1301的码字,并 从译码器1302接收译码信息,对存储的码字进行更新,并在后续译码过程中将更新的码字发 回给译码器1302;存储器1303还可以通过输出接口1304发送更新后的码字。译码器1302 在译码过程中会使用之前译码得到的信息比特,提高译码能力。同理,在译码装置中,存储 功能也可以在译码器内实现,即单独的存储器可以不存在。
[0207]
本技术提实施例供了一种计算机可读存储介质或者计算机程序产品,用于存储计算机程 序,该计算机程序用于执行本技术方法实施例中涉及的编码或译码方法。
[0208]
可以理解的是,图12仅仅示出了编码装置的简化设计。在实际应用中,编码装置可以包 含任意数量的接口和编码器等,而所有可以实现本技术实施例的终端都在本技术实施例的保 护范围之内。同理,译码装置也可以含任意数量的接口和译码器等,实现并行译码,提高译 码效率。
[0209]
进一步可以理解的是,在本技术实施例中涉及的编码器或译码器可以是中央处理单元 (central processing unit,简称为“cpu”),还可以是其他通用处理器、数字信号处理器(dsp)、 专用集成电路(asic)、现成可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶 体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常 规的处理器等。
[0210]
本技术公开的编码方案可以用于高速传输系统,例如,800g传输系统,其结构如图14 所示,发送端包括第一编码单元1401,交织单元1402和第二编码单元1403;其中,第一编 码单元1401用于接收数据比特流,对收到的数据比特流进行kp4编码,将编码得到的比特 流发送给交织单元1402;交织单元1402用于对收到的比特流进行交织,将交织后的比特流 发送给第二编码单元1403;第二编码单元1403用于对交织后的比特流执行如之前实施例公 开的编码方法,将生成的码字发送出去,具体的编码方式在此不再赘述。
[0211]
需要说明的是,kp4码字为rs(544,514,15,10),即kp4码字包括544个符号,其 中,有514个符号是信息符号,一次译码最多可以纠正15个符号的错误,每个符号包括10 个比
特;交织单元可以采用行列交织的方式处理接收的比特流,即将比特以行的形式写入, 以列的形式读出,起到交织功能,这是一种较易实现的交织方法,当然也可以采用其他的交 织方法,本技术不做限定。
[0212]
进一步地,该高速传输系统的接收端包括第一译码单元1404,解交织单元1405和第二 译码单元1406;第一译码单元1404用于发送端发过来的码字,对收到的码字进行如之前实 施例公开的译码方法,将译码得到的比特流发送给解交织单元1405;解交织单元1405用于 对收到的比特流进行解交织,将解交织后的比特流发送给第二译码单元1406;第二译码单元 1406用于对解交织后的比特流进行kp4译码,得到原始的数据比特。本实施例提供的高速传 输系统,利用kp4编码和如之前实施例提供的编码方法进行级联编码,可以增强编码性能, 满足随着光传输速率提高,而日益提高的编码性能要求。
[0213]
此外,在实际的高速传输系统中,kp4编码和本技术公开的编码方法在不同的芯片中实 现,以800g传输系统为例,其基本结构如图15所示,kp4编码在第一芯片1501中实现, 本技术的编码方法在第二芯片1502中实现,本技术公开的译码方法在第三芯片1503中实现, kp4译码在第四芯片1504中实现;两个第一芯片共同输出8路100g的信号,实现800g信 号的传输功能。应理解,800g传输系统也可以只包括一个第一芯片来实现kp4编码,通过 一个第一芯片发送800g信号给第二芯片,本技术不做限定。
[0214]
具体地,第二芯片1502接收到第一芯片1501传输过来的kp4码字,不进行kp4译码, 将带有校验比特的kp4码直接按照之前实施例提供的编码方法进行编码。由于第一芯片1501 和第二芯片1502的互联存在电路噪声,将造成相关性比特错误,因此收发端需要进行交织和 解交织将相关性打散,即在发送端,将kp4码字交织之后发给第二芯片1502,同理,在接收 端,将经过第三芯片1503译码之后的码字进行解交织,再发给第四芯片1504。需要说明的 是,第一芯片和第四芯片可集成在一起,第二芯片和第三芯片可集成在一起,实现收发功能。 此外,交织功能可以在第一芯片1501或第二芯片1502中实现,解交织功能可以在第三芯片 1503或第四芯片1504中实现,本技术不做限定。
[0215]
为了进一步降低时延和功耗,可将第一芯片输出端口的数据分配和交织功能相融合,即 在kp4数据分发时,打乱数据发送顺序,实现交织功能;同理,译码端也可以做类似处理。
[0216]
进一步地,以kp4级联如本技术之前实施例公开的fec帧为例,且在译码时延(编码时 延较小,在此忽略)仅为170ns的情况下,编码性能的仿真结果如图16所示,在输入信号的 误码率(bit error ratio,ber)在2.5e-3及以下情况下,即可保证译码后信号的ber在1e-15 以下;也就是说,在较低时延的情况下,编码性能也可以得到保证。
[0217]
在本技术实施例中,通过级联两种不同的码字,提升了编码性能,而且,在发送端无需 对kp4进行译码,直接对kp4码字进行编码,实现kp4码字的透传,进一步降低系统功耗。
[0218]
在本技术实施例中,还给出另外一种码的码字结构,具体结构如图17(a)所示,其中, 每个码字的码长为2n,每个码字的编码比特长度为k,校验比特长度为p=2n-k。定义编码的 交织深度为m,每个码字中的前n个比特来源于前面的m个时刻的数据,称为镜像比特;后 n个比特中,k-n个比特是当前时刻的信息比特,其余p=2n-k个比特称为校验比特,其中,n、 m、k均为正整数,2n>k>n>m。对于镜像比特,如果其来自之前时刻的信息比特,则
称其 为镜像信息比特;如果其来自之前时刻的校验比特,则称其为镜像校验比特。整个码字可以 称为分量码。本实施例使用bch码或缩短bch码作为分量码,其纠错比特数为t。
[0219]
多个分量码可以构成一个fec帧,该fec帧的结构如图17(b)所示,每个帧包含p_word 个分量码码字,p_word为大于1的整数,应理解,本实施例中的p_word和之前实施例中的 num含义相同。这些分量码同时被编码,然后所有分量码的信息比特和校验比特被合并后进 行发送,一共n*p_word个比特。n*p_word个镜像比特不会在信道上传输。此外,该fec帧 可以为空间耦合码。
[0220]
如图18所示,本方案中描述的fec帧可以被一个n列,无穷行的矩阵来描述。在该矩 阵中,每一行表示一个分量码码字,而连续的p_word行表示如图17(b)所示的一帧;每一 列所对应的比特有相同的比特序号。假设当前时刻的帧为帧0,根据图17(b)中给出的帧结 构,其信息比特和校验比特在当前时刻产生,而当前帧的镜像比特(被斜线标记的比特)由 之前的h个帧(帧-h~帧-1)的信息比特和校验比特(被方格标记的比特)交织映射而获得。 我们称当前帧的镜像比特为交织目标,称之前h个帧的信息比特和校验比特称为交织源,应 理解,本实施例中的h和之前实施例中的t含义相同。
[0221]
我们将一个特定比特的坐标记为(frame,row_str,col_str),其中,帧标识frame∈(
-ꢀ
∞, ∞),行标识row_str∈[0,p_word-1],列标识col_str∈[0,2n-1]。我们用函数φ([frame, row_str,col_str])表示从交织目标到交织源的交织映射关系。因此,φ()函数的输入和输出 均为矩阵中的一个坐标。φ-1()为φ()的反函数,表示从交织源到交织目标的映射关系。
[0222]
具体地,图19是一种交织方案的示意图,其描述了一种交织源与交织目标的对应关系。 为了方便表示,我们将交织目标中p_word个列坐标相同的比特表达成为{[0,:,col_str]}={[0,0, col_str],[0,1,col_str],

,[0,p_word-1,col_str]}。它们对应到交织源中的p_word个比特,其 对应坐标在图19中被表示为φ({[0,:,col_str]})。
[0223]
具体的交织方案描述如下:
[0224]
φ()函数的具体表达式:φ([frame,row_str,col_str])=[φf([frame,row_str,col_str]), φr([frame,row_str,col_str]),φc([frame,row_str,col_str])]。
[0225]
为了方便表示,我们用三个子函数φf(),φr()和φc()分别表示由交织目标中比特的坐标 计算交织源中比特的帧坐标,行坐标和列坐标。它们的具体表达式如下所示:
[0226]
φf([frame,row_str,col_str])=frame-1-frm_map(floor((col_str δ)/ceiling(b_frm)));
[0227][0228]
φc([frame,row_str,col_str])=n h*((col_str δ)%ceiling(b_frm)) (h-1
-ꢀ
floor((col_str δ)/ceiling(b_frm)))。
[0229]
其中:
[0230]
ceiling()和floor()函数分别将输入向上和向下取整,表示按位异或,%表示取模;
[0231]
frm_map表示一个输入域输出域均为{0,1,

,h-1}的双射函数。在图19的交织方案中,对 应的frm_map(i)=h-1-i,i∈[0,h-1];
[0232]
b_frm=n/h表示交织目标中的每个码字平均从交织源的每个帧获取的比特个数;
[0233]
δ是一个调整项。如果b_frm为整数,δ=0;如果b_frm不为整数,δ取值如下:
[0234]
如果col_str/floor(b_frm)<n_ext,δ=floor(col_str/floor(b_frm));
[0235]
如果col_str/floor(b_frm)>=n_ext,δ=n_ext。其中,n_ext=ceiling(b_frm)*h-n。
[0236]
由于交织源和交织目标中的比特是一一对应的,交织映射函数φ()是双射的。对于确定的交 织关联帧数h、每帧码字数p_word、码长2n和frm_map函数,交织映射函数φ()存在且唯一 确定。h、p_word和2n三者相互独立,不互相约束。因此,即使p_word和2n已经确定,h 仍旧可以被调节来权衡解码性能和解码时延。
[0237]
进一步地,对于本技术中的码字,码长2n<=2048,bch分量码纠错比特数t<=5,交织源 包括的帧的个数h>1,则构造的码字能在保证低时延的前提下依旧具有较好的性能。应理解, 此处提到的当前时刻之前形成的h个fec帧,可以为之前任意时刻的h个fec帧。例如当 前时刻之前h个连续时刻的fec帧,也可以为当前时刻间隔某个固定时刻后,再连续取h个 fec帧,也可以当前时刻之前任意h个不连续时刻的fec帧,本技术对此不做限定。
[0238]
根据上述的交织方案,如果b_frm为整数,则交织源中的每帧为交织目标的每个码字提 供b_frm个比特;否则,交织源中的(ceiling(b_frm)-b_frm)*h个帧每帧为交织目标的每个码字 提供floor(b_frm)个比特,其余(b_frm-floor(b_frm))*h个帧每帧为交织目标的每个码字提供 ceiling(b_frm)个比特。另外,定义b_word=n/(h*p_word)表示交织目标中的每个码字平均从交 织源的每个码字获取的比特个数。如果b_word为整数,则交织源中的每个码字为交织目标的 每个码字提供b_word个比特;否则,交织源包括的(ceiling(b_word)-b_word)*(h*p_word)个码 字中每个码字为交织目标的每个码字提供floor(b_word)个比特,其余 (b_word-floor(b_word))*(h*p_word)个码字中,每个码字为交织目标的每个码字提供 ceiling(b_word)个比特。可以看到交织目标从每个码字中得的比特数量基本一致,从每个帧中 获得的码字也是基本一致的,说明本方案提出的交织方式将交织源充分打散,从而有效提升 解码性能。在图19所示的例子中,b_frm为整数,可以看到交织源中的每帧给交织目标提供 p_word*b_frm个比特。
[0239]
进一步地,本技术实施例还对镜像校验比特的位置进行描述,对于如图19所示的一组参 数h、p_word和码长2n确定的fec帧,其一共p*p_word个镜像校验比特的位置也是确定的。 镜像校验比特的frame=0,row_str∈[0,p_word-1]。所有p个col_str的坐标分为h组,以下 主要定义p个对应镜像校验比特的col_str。
[0240]
首先,定义如下一组共h个i_base坐标,每个i_base坐标表示来自于一个帧的镜像校验 比特在镜像比特中列坐标col_str的最大值,如果i<n_ext,i_base(i)=(i 1)*ceiling(b_frm)-i-2; 如果i>=n_ext,i_base(i)=(i 1)*ceiling(b_frm)-n_ext-1,其中,0<=i<=h-1。
[0241]
其次,定义如下数组,表示对应每个i_base的坐标数量。range(i)=ceiling((p-i)/h),range =range ror n_ext,其中,ror为数组循环右移。那么,包含所有col_str坐标的集合为 col_str_vec(i,:)=[i_base(i)-range(i) 1:i_base(i)]。
[0242]
需要说明的是,为了区分不同的交织方案类型,我们给出以下定义:如果b_word为整数, 则关联关系为规则图案,定义交织方案为完全规则交织方案;如果b_word不为整数,但b_frm 为整数,定义交织方案为部分规则交织方案;如果b_word与b_frm均不为整数,定
义交织方 案为不规则交织方案。下面给出不同类型的交织方案的具体例子。
[0243]
结合图20,本技术给出一种具体的fec帧交织方案,其中,交织源包括的帧的个数h=5, 每个帧包括的码字数p_word=64,fec帧包括的码为bch(720,700)码,其中,bch(720, 700)码可由伽罗华域gf(2^10)上的bch(1023,1003)码缩短303个比特得到的缩短bch码, 其纠错比特数t=2。
[0244]
对应的交织映射函数φ()可以表达为:
[0245]
φf([frame,row_str,col_str])=frame-1-frm_map(floor((col_str)/72)),
[0246][0247]
φc([frame,row_str,col_str])=360 5*((col_str)%72) (4

floor((col_str)/72)),其 中,frm_map(i)=4-i,i∈[0,4]。
[0248]
在本交织方案中,每个码字的360个镜像比特来自之前5帧的共5*64个码字。具体地, b_frm=360/5=72,即交织源中的每帧为交织目标的每个码字提供72个比特; b_word=360/(5*64)=1.125,即交织源中的(ceiling(1.125)-1.125)*(5*64)=280个码字每个为交织 目标的每个码字提供floor(1.125)=1个比特,其余(1.125-floor(1.125))*(5*64)=40个码字每个为 交织目标的每个码字提供ceiling(1.125)=2个比特。因此,本实施例中的交织方案为部分规则 交织方案。在本交织方案中,交织目标从每个码字中得的比特数量相差很小,说明本方案提 出的交织方式将交织源充分打散,从而有效提升解码性能。
[0249]
进一步地,本技术实施例提供的fec帧中,每个分量码(即交织目标中的码字)包括20 个镜像校验比特,其中,20个镜像校验比特被分为5组,由于 n_ext=ceiling(b_frm)*h-n=ceiling(360/5)*5-360=0,i>=n_ext,根据公式 i_base(i)=(i 1)*ceiling(b_frm)-n_ext-1,对应的col_str的取值计算如下:
[0250]
i_base([0,1,2,3,4])=[71,143,215,287,359];
[0251]
进一步地,由于range(i)=ceiling((p-i)/h),0<=i<=h-1,且range=range ror n_ext,故 range([0,1,2,3,4])=[4,4,4,4,4]。因此,交织目标的每个码字包括的20个镜像校验比特的 列坐标集合col_str_vec={[68,69,70,71],[140,141,142,143],[212,213,214,215], [284,285,286,287],[356,357,358,359]}。需要说明的是,在本技术实施例中,交织目标中每个 码字的镜像校验比特的列坐标集合相同。本技术另一实施例给出了另外一种fec帧的交织方 案,其交织方案示意图如图21所示,其中,交织源包括的帧的个数h=7,每个帧包括的码字 数p_word=64,fec帧包括的码为bch(720,700)码,该bch(720,700)码为由伽罗华域gf(2^10) 上的bch(1023,1003)码缩短303个比特得到的缩短bch码,其纠错比特数t=2。
[0252]
对应的交织映射函数φ()可以表达为:
[0253]
φf([frame,row_str,col_str])=frame
–1–
frm_map(floor((col_str δ)/52)),
[0254][0255]
φc([frame,row_str,col_str])=360 7*((col_str δ)%52) (6

floor((col_str δ)/ 52)),其中,frm_map(i)=i,i∈[0,6]。在col_str/51<4时,δ=floor(col_str/51);在col_str/51>=4 时,δ=4。
[0256]
在本交织方案中,每个码字的360个镜像比特来自之前7帧的共7*64个码字。具体
地, b_frm=360/7=51.42,此时,交织源中存在3帧,每帧为交织目标的每个码字提供52个比特, 其余4帧每帧为交织目标的每个码字提供51个比特。b_word=360/(7*64)=0.803,则交织源中 存在88个码字不为交织目标中的码字提供比特,其余360个码字中的每个码字为交织目标的 每个码字提供1个比特。因此,本实施例中的交织方案为不规则交织方案。在本交织方案中, 交织目标从其中360个码字中的每个码字得到的比特数量相同,从每个帧中获得的比特数也 相差很小,说明本方案提出的交织方式将交织源充分打散,从而有效提升解码性能。
[0257]
在本交织方案中,交织目标的每个码字包括的20个镜像校验比特被分为7组,由于n_ext= ceiling(b_frm)*h-n=ceiling(360/7)*7-360=4,且0<=i<=6,可以得出,在0<=i<4时,i_base(i)= (i 1)*ceiling(b_frm)-i 2;在4<=i<=6时,i_base(i)=(i 1)*ceiling(b_frm)-n_ext-1。因此,对应 的col_str的取值计算如下:
[0258]
i_base([0,1,2,3,4,5,6])=[50,101,152,203,255,307,359];
[0259]
进一步地,由于range(i)=ceiling((p-i)/h),0<=i<=h-1,且range=range ror n_ext,故 range([0,1,2,3,4,5,6])=[3,3,3,2,3,3,3]。因此,交织目标的每个码字中包括的20个镜像 校验比特的列坐标集合col_str_vec={[48,49,50],[99,100,101],[150,151,152],[202,203], [253,254,255],[305,306,307],[357,358,359]}。需要说明的是,在本技术实施例中,交织目标中 每个码字的镜像校验比特的列坐标集合相同。
[0260]
本技术另一实施例还给出一种fec帧的交织方案,其交织方案示意图如图22所示,其 中,交织源包括的帧的个数h=8,每个帧包括的码字数p_word=16,fec帧包括的码为extended bch(256,239)码。对应的交织映射函数φ()可以表达为:
[0261]
φf([frame,row_str,col_str])=frame-1-frm_map(floor((col_str)/16)),
[0262][0263]
φc([frame,row_str,col_str])=128 8*((col_str)%16) (7

floor((col_str)/16)),其 中,frm_map(i)=7-i,i∈[0,7]。
[0264]
在本交织方案中,每个码字的128个镜像比特来自之前8帧的共8*16个码字。 b_frm=128/8=16,即交织源中的每帧为交织目标的每个码字提供16个比特; b_word=128/(8*16)=1,即交织源中的每个码字为交织目标的每个码字提供1个比特。因此, 本实施例中的交织方案为完全规则交织方案。在本交织方案中,交织目标从交织源中的每个 码字得到的比特数量相同,从每个帧中获得的比特数量也相同,说明本方案提出的交织方式 将交织源充分打散,从而有效提升解码性能。
[0265]
在本交织方案中,交织目标的每个码字包括的17个镜像校验比特被分为8组,由于n_ext= ceiling(b_frm)*h-n=ceiling(128/8)*8-128=0,且0<=i<=7,可以得出,i_base(i)=(i 1)* ceiling(b_frm)-n_ext-1。因此,对应的col_str的取值计算如下:
[0266]
i_base([0,1,2,3,4,5,6,7])=[15,31,47,63,79,95,111,127],
[0267]
进一步地,由于range(i)=ceiling((p-i)/h),且range=range ror n_ext,故range([0,1,2, 3,4,5,6,7])=[3,2,2,2,2,2,2,2]。因此,交织目标的每个码字包括的17个镜像校验比特的 列坐标集合col_str_vec={[13,14,15],[30,31],[46,47],[62,63],[78,79],[94,95],[110,111], [126,127]}。需要说明的是,在本技术实施例中,交织目标中每个码字的镜像校验比特的列坐 标集合相同。
[0268]
进一步地,上述实施例描述的fec帧可以为空间耦合码,其编码架构如图23所示,在 此框图中,共有p_word个分量码编码器和一个卷积交织器。其中,卷积交织器存储当前时刻 之前h帧的信息和校验比特,其总共存储h*n*p_word个比特,用于产生当前时刻的n*p_word 个镜像比特。
[0269]
编码器的输入为(k-n)*p_word个信息比特,它们将被分配到p_word个分量码编码器。每 个分量码编码器的输入为(k-n)个信息比特和n个镜像比特,输出为(k-n)个信息比特和p个校 验比特。整个编码器的输出为来自p_word个分量码编码器的总共(k-n p)*p_word=n*p_word 个信息和校验比特,来自卷积交织器的镜像比特仅参与分量码编码而不会被传输。应理解,h、 n、p_word的含义与之前实施例相同,本实施例不再赘述。
[0270]
图24给出了利用如图23所示的编码架构生成当前帧的镜像比特的方法。图24的上半部 分是一个h*p_word行,n列的矩阵。在该矩阵中,连续的p_word行表示如图17(b)所示的 一帧,所以当前时刻卷积交织器中一共存储h帧(帧-h~帧-1)。当前帧(帧0)的镜像比特由 交织器中的比特交织而来。为了方便表示,我们将一个特定比特的坐标记为[frame,row_str, col_str]。其中,帧坐标frame∈(-∞, ∞),行坐标row_str∈[0,p_word-1],列坐标col_str ∈[0,n-1]。
[0271]
卷积交织器中的交织关系分为两层,即帧间交织和码间交织。假设交织后的镜像比特的 坐标为[frame’,row_str’,col_str’],则卷积交织器描述了[frame,row_str,col_str]到[frame’, row_str’,col_str’]的交织映射关系。下面介绍每一层交织的具体方案。
[0272]
帧间交织:为了方便描述,我们将交织器中p_word个具有相同帧坐标和列坐标的比特称 为一个符号,并表达成为{[frame,:,col_str]}={[frame,0,col_str],[frame,1,col_str],

, [frame,p_word-1,col_str]}。如图24所示,当前帧(帧0)的镜像比特对应的符号对应交织 器中的一个符号,对应的坐标关系如下所示:
[0273]
frame’=frame 1 frm_map(col_str%h),
[0274]
col_str’=(h
–1–
col_str%h)*ceiling(b_frm) floor(col_str/h)

δ。
[0275]
其中:
[0276]
ceiling()和floor()函数分别将输入向上和向下取整,%表示取模;
[0277]
frm_map表示一个输入域和输出域均为{0,1,

,h-1}的双射函数。在图24所示的交织方 案中,对应的frm_map(i)=i,i∈[0,h-1];
[0278]
b_frm=n/h表示当前帧的每个码字平均从交织器的每个帧获取的比特个数;
[0279]
δ是一个调整项。如果b_frm为整数,δ=0;如果b_frm不为整数,在col_str/floor(b_frm) <n_ext时,δ=floor(col_str/floor(b_frm));在col_str/floor(b_frm)>=n_ext时,δ=n_ext,其 中,n_ext=ceiling(b_frm)*h-n。
[0280]
从公式中可以看到,帧间交织不涉及行坐标的变换,因此每个符号中比特的顺序与交织 器中的比特顺序是相同的。
[0281]
对于每个进行过帧间交织的符号,进一步对其进行码间交织,使交织后同一个码字的比 特尽量来自不同的帧。具体的码间映射关系如下面的行坐标变换公式所示:
[0282][0283]
其中,表示按位异或。可以看到,根据col_str的不同,码间交织共有p_word种不同 的方案。
[0284]
交织器的输入比特和输出比特一一对应。对于确定的交织关联帧数h、每帧码字数p_word、 码长2n和frm_map函数,交织方式存在且唯一确定。h、p_word和2n三者相互独立,不互 相约束。因此,即使p_word和2n已经确定,h仍旧可以被调节来权衡解码性能和解码时延。
[0285]
根据上述的交织方案,如果b_frm为整数,则交织器中的每帧为当前帧的每个码字提供 b_frm个比特;否则,交织器中的(ceiling(b_frm)-b_frm)*h个帧每帧为当前帧的每个码字提供 floor(b_frm)个比特,其余(b_frm-floor(b_frm))*h个帧每帧为当前帧的每个码字提供 ceiling(b_frm)个比特。另外,定义b_word=n/(h*p_word)表示当前帧中的每个码字平均从交织 器的每个码字获取的比特个数。如果b_word为整数,则交织器中的每个码字为当前帧的每个 码字提供b_word个比特;否则,交织器包括的(ceiling(b_word)-b_word)*(h*p_word)个码字中 每个码字为当前帧的每个码字提供floor(b_word)个比特,其余 (b_word-floor(b_word))*(h*p_word)个码字中,每个码字为当前帧的每个码字提供 ceiling(b_word)个比特。可以看到当前帧从每个码字中获得的比特数量基本一致,从每个帧中 获得的码字也是基本一致的,说明本方案提出的交织方式也可以将交织器中的比特充分打散, 从而有效提升解码性能。
[0286]
进一步地,本技术实施例还对镜像校验比特的位置进行描述,对于如图24所示的一组参 数h、p_word和码长2n确定的fec帧,其一共p*p_word个镜像校验比特的位置也是确定的。 镜像校验比特的frame=0,row_str∈[0,p_word-1]。所有p个col_str的坐标分为h组,以下 主要定义p个对应镜像校验比特的col_str。
[0287]
首先,定义如下一组共h个i_base坐标,每个i_base坐标表示来自于一个帧的镜像校验 比特在镜像比特中的最大col_str值,如果i<n_ext,i_base(i)=(i 1)*ceiling(b_frm)-i-2;如果 i>=n_ext,i_base(i)=(i 1)*ceiling(b_frm)-n_ext-1,其中,0<=i<=h-1。
[0288]
其次,定义如下数组,表示对应每个i_base的坐标数量。range(i)=ceiling((p-i)/h),range =range ror n_ext,其中,ror为数组循环右移。那么,包含所有col_str坐标的集合为 col_str_vec(i,:)=[i_base(i)-range(i) 1:i_base(i)]。
[0289]
需要说明的是,为了区分不同的交织方案类型,我们给出以下定义:如果b_word为整数, 则关联关系为规则图案,定义交织方案为完全规则交织方案;如果b_word不为整数,但b_frm 为整数,定义交织方案为部分规则交织方案;如果b_word与b_frm均不为整数,定义交织方 案为不规则交织方案。下面基于图23所示的编码架构,对不同类型的交织方案进行具体描述。
[0290]
本实例描述h=5,p_word=64,分量码为bch(720,700)的空间耦合码。bch(720,700) 分量码为由伽罗华域gf(2^10)上的bch(1023,1003)码缩短303个比特得到的缩短bch码, 其纠错比特数t=2。
[0291]
在本实例的空间耦合码的编码架构中,共有64个分量码编码器和一个卷积交织器,其中, 卷积交织器存储当前时刻之前5帧的信息和校验比特,其总共存储115200比特,用于产生当 前时刻的23040个镜像比特。
[0292]
编码器的输入为21760个信息比特,它们将被分配到64个分量码编码器。每个分量码编 码器的输入为340个信息比特和360个镜像比特,输出为340个信息比特和20个校验比
特。 编码器的总体输出为来自64个分量码编码器的总共23040个信息和校验比特。来自卷积交织 器的镜像比特仅参与分量码编码而不会被传输。
[0293]
如图25所示,当前帧的镜像比特对应的符号对应交织器中的一个符号,对应的坐标关系 如下所示:
[0294]
frame’=frame 1 frm_map(col_str%5),
[0295]
col_str’=(4

col_str%5)*72 floor(col_str/5)。
[0296]
frm_map(i)=i,i∈[0,4],其中,b_frm=72,δ=0。
[0297]
依据上述公式,可以知道当前帧的镜像比特对应的符号来自于在先的哪一帧的哪一个符 号,即进行了帧间交织,下面根据下面的对应关系,进行码间交织,具体的码间映射关系如 下面的行坐标变换公式所示:
[0298][0299]
需要说明的是,在本交织方案中,每个码字的360个镜像比特来自之前5帧的共5*64个 码字,具体从每个帧以及每个码字获取的比特数与图20所示实施例相同;而且,每个分量码 包括的20个镜像校验比特的列坐标集合也与图20所示实施例相同,本技术实施例不再赘述。
[0300]
本实例描述h=7,p_word=64,分量码为bch(720,700)的空间耦合码。bch(720,700) 分量码为由伽罗华域gf(2^10)上的bch(1023,1003)码缩短303个比特得到的缩短bch码, 其纠错比特数t=2。
[0301]
在本实例的空间耦合码的编码架构中,共有64个分量码编码器和一个卷积交织器,其中, 卷积交织器存储当前时刻之前7帧的信息和校验比特,其总共存储161280比特,用于产生当 前时刻的23040个镜像比特。
[0302]
编码器的输入为21760个信息比特,它们将被分配到64个分量码编码器。每个分量码编 码器的输入为340个信息比特和360个镜像比特,输出为340个信息比特和20个校验比特。 编码器的总体输出为来自64个分量码编码器的总共23040个信息和校验比特。来自卷积交织 器的镜像比特仅参与分量码编码而不会被传输。
[0303]
如图26所示,当前帧的镜像比特对应的符号对应交织器中的一个符号,对应的坐标关系 如下所示:
[0304]
frame’=frame 1 frm_map(col_str%7),
[0305]
col_str’=(6

col_str%7)*52 floor(col_str/7)-δ。
[0306]
frm_map(i)=6-i,i∈[0,6],其中,在col_str/51<4时,δ=ceiling(col_str/51);在 col_str/51>=4时,δ=4;b_frm=51.42。
[0307]
依据上述公式,可以知道当前帧的镜像比特对应的符号来自于在先的哪一帧的哪一个符 号,即进行了帧间交织,下面根据下面的对应关系,进行码间交织,具体的码间映射关系如 下面的行坐标变换公式所示:
[0308][0309]
需要说明的是,在本交织方案中,每个码字的360个镜像比特来自之前7帧的共7*64个 码字,具体从每个帧以及每个码字获取的比特数与图21所示实施例相同;而且,每个分量码 包括的20个镜像校验比特的列坐标集合也与图21所示实施例相同,本技术实施例
不再赘述。
[0310]
本实例描述h=8,p_word=16,分量码为extended bch(256,239)的空间耦合码。在本实 例的空间耦合码的编码架构中,共有16个分量码编码器和一个卷积交织器,其中,卷积交织 器存储当前时刻之前8帧的信息和校验比特,其总共存储16384比特,用于产生当前时刻的 2048个镜像比特。
[0311]
编码器的输入为1776个信息比特,它们将被分配到16个分量码编码器。每个分量码编 码器的输入为111个信息比特和128个镜像比特,输出为111个信息比特和17个校验比特。 编码器的总体输出为来自16个分量码编码器的总共2048个信息和校验比特。来自卷积交织 器的镜像比特仅参与分量码编码而不会被传输。
[0312]
如图27所示,当前帧的镜像比特对应的符号对应交织器中的一个符号,对应的坐标关系 如下所示:
[0313]
frame’=frame 1 frm_map(col_str%8),
[0314]
col_str’=(7

col_str%8)*16 floor(col_str/8)。
[0315]
frm_map(i)=i,i∈[0,7],其中,b_frm=16,δ=0。
[0316]
依据上述公式,可以知道当前帧的镜像比特对应的符号来自于在先的哪一帧的哪一个符 号,即进行了帧间交织,下面根据下面的对应关系,进行码间交织,具体的码间映射关系如 下面的行坐标变换公式所示:
[0317][0318]
需要说明的是,在本交织方案中,每个码字的360个镜像比特来自之前5帧的共5*64个 码字,具体从每个帧以及每个码字获取的比特数与图22所示实施例相同;而且,每个分量码 包括的20个镜像校验比特的列坐标集合也与图22所示实施例相同,本技术实施例不再赘述。
[0319]
进一步地,对于本技术中的码字,码长2n<=2048,bch分量码纠错比特数t<=5,交织源 包括的帧的个数h>1,则构造的码字能在保证低时延的前提下依旧具有较好的性能。应理解, 此处提到的当前时刻之前形成的h个fec帧,可以为之前任意时刻的h个fec帧。例如当 前时刻之前h个连续时刻的fec帧,也可以为当前时刻间隔某个固定时刻后,再连续取h个 fec帧,也可以当前时刻之前任意h个不连续时刻的fec帧,本技术对此不做限定。
[0320]
此外,除之前提到的实施例之外,本技术还可以包括如下情况:
[0321]
码长2n=720,纠错比特数t=2,交织关联帧数h=4;
[0322]
码长2n=720,纠错比特数t=2,交织关联帧数h=5;
[0323]
码长2n=804,纠错比特数t=2,交织关联帧数h=4;
[0324]
码长2n=1206,纠错比特数t=3,交织关联帧数h=4;
[0325]
码长2n=868,纠错比特数t=2,交织关联帧数h=4;
[0326]
码长2n=1302,纠错比特数t=3,交织关联帧数h=4。
[0327]
上述构造的码字均能在保证低时延的前提下,依旧具有较好的性能。此外,上述多个实 施例中给出多种不同的交织方案,任何满足上述交织方案的编码方式,或者与上述交织方案 提供的公式相同,或者只是在上述交织方案提供的公式基础上做等价或简单的变型,均在本 申请的保护范围之内。
[0328]
应理解,说明书通篇提到的“一个实施例”或“一实施例”意味着与实施例有关的特
定 特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在 一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结 构或特性可以任意适合的方式结合在一个或多个实施例中。在本发明的各种实施例中,上述 各过程的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确 定,而不应对本发明实施例的实施过程构成任何限定。
[0329]
在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的 方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅 为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或 者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之 间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接, 也可以是电的或其它的形式连接。
[0330]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个 单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
[0331]
总之,以上所述仅为本发明技术方案的较佳实施例而已,并非用于限定本发明的保护范 围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜