本发明实施例涉及通信领域,并且更具体地,涉及动态功耗控制的编码方法及编解码器。
背景技术:
随着高速通信链路速率的不断上升,信道的各种损伤效应逐渐加强,导致信噪比下降。为了改善低信噪比条件下的误码性能,前向纠错(forwarderrorcorrection,fec)技术已逐渐成为高速通信链路实现过程中的必选技术。在众多的fec码中,里德索罗门(rs,reedsolomon)fec码具有高增益、明确的性能、实现简单、占用资源小而逐步得到广泛的应用,rsfec码已在itu-tg.709、ieee802.3bj、ieee802.3bs等多个通信协议中标准化。
对于众多的链路来说,链路的质量良莠不齐,最差链路数占总链路数比例的比例比较小(通常小于15%)。然而传统的做法是选择最强的fec算法来覆盖这比例很小的最差链路,rsfec的码型并不能动态的调整。这种做法直接的后果就是对于大多数的链路而言,fec算法的纠错能力是超量供给的,这会带来额外的不必要的功耗。
技术实现要素:
本发明实施例提供一种动态功耗控制的编码方法及编解码器,能够减少避免不必要的编码计算导致的功率消耗,一定程度上提高编码器的系统性能。
第一方面,提出了一种多模式rsfec编码器,该多模式rsfec编码器存在rs(ni,k),i=0、1、……、l共l+1种工作模式,l为大于0的整数,ni表示对应的工作模式下rsfec码字的长度,ni=n0+i*p,n0表示该多模式rsfec编码器中最短的一种rsfec码字长度,p为正整数,k表示该rsfec码字中信息符号的数量,该多模式rsfec编码器包括:控制单元、初始编码单元和l个增量编码单元,其中,
该控制单元用于控制该多模式rsfec编码器编码时需要启动的单元模块,具体用于在rs(n0,k)工作模式下只启用该初始编码单元进行编码,或者在rs(nj,k)工作模式下只启用该初始编码单元和该l个增量编码单元中前j个增量编码单元进行编码,j为整数,1≤j≤l;
该初始编码单元用于对该多模式rsfec编码器的信息符号对应的信息多项式m(x)进行rsfec编码得到多项式xn0-km(x)相对于g0(x)的商式d0(x)和余式r0(x),g0(x)为rs(n0,k)工作模式下的生成多项式;
该l个增量编码单元中第h+1个增量编码单元用于根据商式dh(x)和余式rh(x)得到多项式xnh+1-km(x)相对于gh+1(x)的商式dh+1(x)和余式rh+1(x),gh+1(x)为rs(nh+1,k)工作模式下的生成多项式,其中,h为整数,0≤h≤l-1。
结合第一方面,在第一种可能的实现方式中,具体实现为,dh+1(x)和rh+1(x)与dh(x)和rh(x)的关系用以下公式表示:
rh+1(x)=rh+1(x)*gh(x)+xprh(x)
dh+1(x)=dh+1(x),
其中,dh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的商式,rh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的余式,生成多项式gh,h+1(x)、gh(x)和gh+1(x)满足公式gh+1(x)=gh(x)*gh,h+1(x)。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,具体实现为:l取值为3,p取值为8,n0取值为520,k取值为514;或者,l取值为1,p取值为16,n0取值为528,k取值为514。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第三种可能的实现方式中,该多模式rsfec编码器还包括:填充单元,用于当该多模式rsfec编码器在rs(nj,k)工作模式下,将长度为nj的码字用固定的序列填充到长度为nl,其中,j<l。
结合第一方面或第一方面的第一种可能的实现方式至第一方面的第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,该多模式rsfec编码器还包括码型选择单元,用于选择该多模式rsfec编码器在解码端的多模式rsfec解码器反馈的码型作为编码时所使用的码型,以便该多模式rsfec编码器根据该反馈的码型进行编码并发送给该多模式rsfec解码器。
第二方面,提出了一种一种用于多模式rsfec编码器的编码方法,该多模式rsfec编码器存在rs(ni,k),i=0、1、……、l共l+1种工作模式,l为大于0的整数,ni表示对应的工作模式下rsfec码字的长度,ni=n0+i*p,n0表示该多模式rsfec编码器中最短的一种rsfec码字长度,p为正整数,k表示该rsfec码字中信息符号的数量;该多模式rsfec编码器以rs(nj,k)工作模式编码时,1≤j≤l,该方法包括:
对该多模式rsfec编码器的信息符号对应的信息多项式m(x)进行rsfec编码得到多项式xn0-km(x)相对于g0(x)的商式d0(x)和余式r0(x),g0(x)为rs(n0,k)工作模式下的生成多项式;
对h取值从0至j-1共j次循环执行以下步骤,其中,h为整数,0≤h≤j-1:
根据商式dh(x)和余式rh(x)得到多项式xnh+1-km(x)相对于gh+1(x)的商式dh+1(x)和余式rh+1(x),gh+1(x)为rs(nh+1,k)工作模式下的生成多项式。
结合第二方面,在第一种可能的实现方式中,具体实现为,dh+1(x)和rh+1(x)与dh(x)和rh(x)的关系用以下公式表示:
rh+1(x)=rh+1(x)*gh(x)+xprh(x)
dh+1(x)=dh+1(x),
其中,dh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的商式,rh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的余式,生成多项式gh,h+1(x)、gh(x)和gh+1(x)满足公式gh+1(x)=gh(x)*gh,h+1(x)。
结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,具体实现为:l取值为3,p取值为8,n0取值为520,k取值为514;或者,l取值为1,p取值为16,n0取值为528,k取值为514。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第三种可能的实现方式中,该方法还包括:当该多模式rsfec编码器在rs(nj,k)工作模式下编码时,将长度为nj的码字用固定的序列填充到长度为nl,其中,j<l。
结合第二方面或第二方面的第一种可能的实现方式至第二方面的第三种可能的实现方式中任一种可能的实现方式,在第四种可能的实现方式中,该方法还包括:选择该多模式rsfec编码器在解码端的多模式rsfec解码器反馈的码型作为编码时所使用的码型;根据该反馈的码型进行编码并发送给该多模式rsfec解码器。
第三方面,提出了一种一种多模式rsfec解码器,该多模式rsfec解码器存在rs(ni,k),i=0、1、……、l共l+1种工作模式,l为大于0的整数,ni表示对应的工作模式下rsfec码字的长度,ni=n0+i*p,n0表示该多模式rsfec解码器中最短的一种rsfec码字长度,p为正整数,k表示该rsfec码字中信息符号的数量,该多模式rsfec解码器包括特征值计算单元、关键方程求解单元、钱搜索单元、错误值计算单元、纠错单元和帧缓冲单元,该特征值计算单元包括nl-k个特征值计算子单元和第一控制子单元,该关键方程求解单元包括3(nl-k)/2+1个关键方程求解子单元和第二控制子单元;
其中,当该多模式rsfec解码器以rs(ni,k)工作模式解码时,
该特征值计算单元用于根据接收的当前fec帧的ni个码字计算ni-k个特征值,每个特征值通过各自的特征值计算子单元完成,该第一控制子单元控制启用该nl-k个特征值计算子单元中前ni-k个特征值计算子单元计算该ni-k个特征值;
该关键方程求解单元用于接收该ni-k个特征值,并根据该ni-k个特征值计算错误位置多项式和错误值多项式;该第二控制子单元用于控制启用该3(nl-k)/2+1个关键方程求解子单元中前3(ni-k)/2+1个特征值计算子单元计算该错误位置多项式λ(x)和该错误值多项式ω(x),并将该错误位置多项式λ(x)发送给该钱搜索单元,将该错误值多项式ω(x)发送给该错误值计算单元;
该钱搜索单元用于通过穷举该错误位置多项式λ(x)的根确定该当前fec帧的错误位置,并将多项式xλ′(x)发送给该错误值计算单元,其中多项式xλ′(x)表示λ(x)中奇数项之和;
该错误值计算单元用于根据该错误位置多项式λ(x)的奇数项之和xλ′(x)以及该错误值多项式ω(x)计算该当前fec帧的错误位置对应的纠错值;
该帧缓冲单元用于缓存该当前fec帧,直至该错误值计算单元计算出该当前fec帧的错误位置对应的纠错值;
该纠错单元用于根据该当前fec帧的错误位置对应的纠错值,以及该帧缓冲单元缓存的该当前fec帧,对该当前fec帧进行纠错。
结合第三方面,在第一种可能的实现方式中,该多模式rsfec解码器还包括统计单元、码型反馈单元,其中,
该统计单元用于统计以rs(ni,k)工作模式传输时的误码率;
该码型反馈单元用于当该误码率大于预定上限阈值时选择rs(ni+1,k)码型反馈给编码端的多模式rsfec编码器,或者当该误码率小于预定下限阈值时选择rs(ni-1,k)码型反馈给编码端的多模式rsfec编码器。
结合第三方面或第三方面的第一种可能的实现方式,在第二种可能的实现方式中,该多模式rsfec解码器还包括去填充单元,用于当多模式rsfec解码器工作于rs(ni,k),i<l时,从长度为nl的码字中截取长度为ni的码字进行解码。
基于以上技术方案,本发明实施例的动态功耗控制的编码方法及编解码器,当多模式rsfec编码器采用rs(nh+1,k)工作模式时,通过根据多模式rsfec编码器在rs(nh,k)工作模式下的商式和余式进行增量编码,从而得到rs(nh+1,k)工作模式的编码,能够复用rs(nh,k)工作模式下的编码结果,减少避免不必要的编码计算导致的功率消耗,提高编码器的系统性能。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例用于多模式rsfec编码器的编码方法流程图。
图2是本发明实施例多模式rsfec编码器的结构示意图。
图3是本发明实施例的一种串行增量编码器电路示意图。
图4是本发明实施例一种四模式rsfec编码器的结构示意图。
图5是本发明实施例的解码流程示意图。
图6是本发明实施例多模式rsfec解码器特征值计算的一种电路示意图。
图7是本发明实施例多模式rsfec解码器关键方程求解的一种电路示意图。
图8是图7中所示的控制电路的电路示意图。
图9是本发明实施例多模式rsfec解码器的钱搜索单元的电路示意图。
图10是本发明实施例多模式rsfec解码器的错误值计算单元的电路示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例用于多模式rsfec编码器的编码方法流程图。本发明实施例中,多模式rsfec编码器存在rs(ni,k),i=0、1、……、l共l+1种工作模式,l为大于0的整数,ni表示对应的工作模式下rsfec码字的长度,ni=n0+i*p,n0表示多模式rsfec编码器中最短的一种rsfec码字长度,p为正整数,k表示所述rsfec码字中信息符号的数量。当多模式rsfec编码器以rs(nj,k)工作模式编码时(1≤j≤l),编码方法如图1所示,包括:
s101,对rsfec编码器的信息符号对应的信息多项式m(x)进行rsfec编码得到多项式xn0-km(x)相对于g0(x)的商式d0(x)和余式r0(x),其中,g0(x)为rs(n0,k)工作模式下的生成多项式。
应理解,rsfec编码器的信息符号对应的信息多项式m(x)用于以多项式的形式表示该rsfec编码器的信息符号。
s102,对h取值从0至j-1共j次循环执行步骤s103,其中,1≤j≤l,h为整数,0≤h≤j-1。
s103,根据商式dh(x)和余式rh(x)得到多项式xnh+1-km(x)相对于gh+1(x)的商式dh+1(x)和余式rh+1(x),其中,gh+1(x)为rs(nh+1,k)工作模式下的生成多项式。
本发明实施例中,当多模式rsfec编码器采用rs(nh+1,k)工作模式时,根据多模式rsfec编码器在rs(nh,k)工作模式下的商式和余式进行增量编码,从而得到rs(nh+1,k)工作模式的编码,能够复用rs(nh,k)工作模式下的编码结果,减少避免不必要的编码计算导致的功率消耗,提高编码器的系统性能。
可选地,dh+1(x)和rh+1(x)的关系用公式(1)表示,dh(x)和rh(x)的关系用公式(2)表示:
rh+1(x)=rh+1(x)*gh(x)+xprh(x)…………公式(1)
dh+1(x)=dh+1(x)…………………………..公式(2)
其中,dh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的商式,rh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的余式,生成多项式gh,h+1(x)、gh(x)和gh+1(x)满足公式gh+1(x)=gh(x)*gh,h+1(x)。
应理解,xpdh(x)相对于生成多项式gh,h+1(x)的商式,即xpdh(x)除以gh,h+1(x)得到的商式;xpdh(x)相对于生成多项式gh,h+1(x)的余式,即xpdh(x)除以gh,h+1(x)得到的余式。
应理解,在图1所示的上述方法中,p的取值可以是任意一个正整数。可选地,p可取值为该多模式rsfec编码器的并行度。
可选地,作为一个实施例,l取值为3,p取值为8,n0取值为520,k取值为514。此时,该多模式rsfec编码器共有rs(520,514),rs(528,514),rs(536,514),rs(544,514)共4种工作模式,或者说4种码型组。
可选地,作为另一个实施例,l取值为1,p取值为16,n0取值为528,k取值为514。此时,该多模式rsfec编码器共有rs(528,514),rs(544,514)共2种工作模式,或者说2种码型组。
可选地,该方法还可包括:当多模式rsfec编码器在rs(nj,k)工作模式下编码时,将长度为nj的码字用固定的序列填充到长度为nl,其中,j<l。通过将rs(nj,k)工作模式下的码字长度填充到nl,可使得多模式rsfec编码器当前的所有编码器共用相同的时钟周期。
下面,将结合具体的实施例,对本发明实施例的方法作进一步的描述。
以双模式rsfec编码器为例,其包括rs(n0,k)和rs(n1,k)两种工作模式。
设rs(n0,k)的生成多项式为
定义
从多项式g0(x)和多项式g0,1(x)可以很容易地推导出rs(n1,k)的生成多项式
由rs(n0,k)的编码公式(公式(3))可以得到商式d0(x)和余式r0(x):
其中,m(x)表示rsfec编码器的信息符号对应的信息多项式,该信息多项式为k阶多项式,
从公式(3)可以推导出,该商式d0(x)等于
对d0(x)利用g0,1(x)作为生成多项式进行进一步编码可以得到商式d1(x)和余式r1(x):
从公式(4)可以推导出,该商式d1(x)等于
由rs(n1,k)的编码公式(公式(5))可以得到商式d1(x)和余式r1(x):
从公式(5)可以推导出,该商式d1(x)等于
对比公式(4)和公式(5),再结合公式(3),可以得到:
d1(x)=d1(x)公式(6);
至此,上述公式(6)、公式(7)的推导流程给出了利用rs(n0,k)编码结果通过增量编码的方式实现rs(n1,k)编码的全过程。整个理论计算流程可以由下面的公式给出:
也就是说,rs(n1,k)编码可以在rs(n0,k)编码结果的基础上,加上增量部分的编码计算实现。
双模式rsfec编码器的编码方法还可推广至多模式rsfec编码器的应用场景中。假设rs(nh,k)工作模式的生成多项式为gh(x),信息多项式m(x)在rs(nh,k)工作模式下编码得到商式dh(x)和余式rh(x);rs(nh+1,k)工作模式的生成多项式为gh+1(x),信息多项式m(x)在rs(nh+1,k)工作模式下编码得到商式dh+1(x)和余式rh+1(x),商式dh+1(x)和余式rh+1(x)可用以下公式表示:
rh+1(x)=rh+1(x)*gh(x)+xprh(x)公式(8)
dh+1(x)=dh+1(x)公式(9)
其中,dh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的商式,rh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的余式,生成多项式gh,h+1(x)、gh(x)和gh+1(x)满足公式gh+1(x)=gh(x)*gh,h+1(x)。
此外,假设多模式rsfec编码器包括l+1种工作模式rs(ni,k),ni=n0+i*p,i=0,1,2,…,l,其中p为正整数,l为大于1的整数。当多模式rsfec编码器以rs(ni,k)工作模式工作且i<l时,还可将长度为ni的码字利用固定的序列填充到长度为nl。本发明实施例中,通过将rs(ni,k)工作模式的码字长度固定为nl,可以保证工作在rs(ni,k)工作模式时保持和rs(nl,k)模式下相同的码率,避免在工作模式切换过程中带来的时钟失配。
此外,多模式rsfec编码器还可根据解码侧的多模式rsfec解码器反馈的工作模式,将该多模式rsfec编码器的工作模式切换为该反馈的工作模式,并进行编码。
图2是本发明实施例多模式rsfec编码器200的结构示意图。多模式rsfec编码器200存在rs(ni,k),i=0、1、……、l共l+1种工作模式,l为大于0的整数,ni表示对应的工作模式下rsfec码字的长度,ni=n0+i*p,n0表示多模式rsfec编码器200中最短的一种rsfec码字长度,p为正整数,k表示所述rsfec码字中信息符号的数量。如图2所示,多模式rsfec编码器200可包括:控制单元201、初始编码单元202和增量编码单元1至增量编码单元l共l个增量编码单元。其中,
控制单元201用于控制该多模式rsfec编码器编码时需要启动的单元模块,具体用于在rs(n0,k)工作模式下只启用该初始编码单元进行编码,或者在rs(nj,k)工作模式下只启用该初始编码单元和该l个增量编码单元中前j个增量编码单元进行编码,j为整数,1≤j≤l。
初始编码单元202用于对信息多项式m(x)进行rsfec编码得到多项式xn0-km(x)相对于g0(x)的商式d0(x)和余式r0(x),g0(x)为rs(n0,k)工作模式下的生成多项式。
l个增量编码单元中,第h+1个增量编码单元(增量编码单元h+1)用于根据商式dh(x)和余式rh(x)得到多项式xnh+1-km(x)相对于gh+1(x)的商式dh+1(x)和余式rh+1(x),gh+1(x)为rs(nh+1,k)工作模式下的生成多项式,其中,h为整数,0≤h≤l-1。
从初始编码单元202和增量编码单元1至增量编码单元l的功能可知,商式d0(x)和余式r0(x)为信息多项式m(x)经过初始编码单元202编码后得到的商式和余式,同时还是增量编码单元1的输入参数,增量编码单元1根据商式d0(x)和余式r0(x)编码得到的商式d1(x)和余式r1(x)等于信息多项式m(x)在rs(n1,k)工作模式下编码得到的商式和余式;以此类推,可以得到信息多项式m(x)在rs(ni,k),i=0、1、……、l共l+1种工作模式下编码得到的商式和余式。
此外,应理解,本发明实施例中,该l个增量编码单元的功能类似,但并不是说这l个增量编码单元的功能完全相同,可以互换。这l个增量编码单元互不相同,其实现的逻辑电路也不相同。
本发明实施例中,在当多模式rsfec编码器采用rs(nh+1,k)工作模式时,根据其在rs(nh,k)工作模式下的商式和余式进行增量编码,从而得到rs(nh+1,k)工作模式的编码,能够复用rs(nh,k)工作模式下的编码结果,减少避免不必要的编码计算导致的功率消耗,一定程度上提高编码器的系统性能。
可选地,dh+1(x)和rh+1(x)与dh(x)和rh(x)的关系用公式(10)和公式(11)表示:
rh+1(x)=rh+1(x)*gh(x)+xprh(x)公式(10)
dh+1(x)=dh+1(x)公式(11)
其中,dh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的商式,rh+1(x)表示xpdh(x)相对于生成多项式gh,h+1(x)的余式,生成多项式gh,h+1(x)、gh(x)和gh+1(x)满足公式gh+1(x)=gh(x)*gh,h+1(x)。
图3是本发明实施例的一种串行增量编码器电路示意图。如图3所示,虚线框图部分的电路为rs(n0,k)编码器的逻辑电路,实线框部分的电路为rs(n1,k)编码器的逻辑电路。从图3可以看出,rs(n1,k)编码器可以在rs(n0,k)编码器的基础上加上一部分增量编码电路实现,其中,信息多项式m(x)经过rs(n0,k)编码器编码后的商式和余式,作为增量编码电路的输入参数;增量编码电路输出的商式和余式即为信息多项式m(x)经过rs(n1,k)编码器编码后的商式和余式。
在rs(n0,k)编码器中,g0(0)至g0(2t0-1)分别为生成多项式g0(x)的0次项至2t0-1次项,d(0)至d(2t0-1)为编码结果寄存器,t0=(n0-k)/2;g0,1(0)至g0,1(2t0,1-1)分别为生成多项式g0,1(x)的0次项至2t0,1-1次项,g0,1(x)=g1(x)/g0(x),t0,1=t1-t0=p/2。g1(x)表示rs(n1,k)编码器的生成多项式。
可选地,l取值为3,p取值为8,n0取值为520,k取值为514。即该多模式rsfec编码器200为rs(520/528/536/544,514)四模式编码器。
或者,可选地,l取值为1,p取值为16,n0取值为528,k取值为514。即该多模式rsfec编码器200为rs(528/544,514)双模式编码器。
图4是本发明实施例一种四模式rsfec编码器的结构示意图。图4以rs(520/528/536/544,514)四模式编码器为例。从图中可以看到每一级rs(ni,k)编码器都可以在上一级rs(ni-1,k)编码器电路的基础上通过增加一部分功能来实现。也就是说当电路工作在rs(ni-1,k)时,可以关闭rs(ni,k)编码器所需要的增量电路部分,从而达到节省功耗的目的。另外每一级电路的输出位置处即:di(x),ri(x),i≥1位置处,可以插入寄存器将各级电路进行分割,从而实现流水线操作。以单独实现rs(544,514)编码器相比反馈矩阵的规模为30×30,而利用图4所示的方案,最大的反馈矩阵的规模缩减为8×8,极大地减少了反馈电路的规模。
本发明实施例还公开了一种多模式rsfec解码器,该多模式rsfec解码器存在rs(ni,k),i=0、1、……、l共l+1种工作模式,l为大于0的整数,ni表示对应的工作模式下rsfec码字的长度,ni=n0+i*p,n0表示该多模式rsfec解码器中最短的一种rsfec码字长度,p为正整数,k表示该rsfec码字中信息符号的数量,该多模式rsfec解码器包括特征值计算单元、关键方程求解单元、钱搜索单元、错误值计算单元、纠错单元和帧缓冲单元,该特征值计算单元包括nl-k个特征值计算子单元和第一控制子单元,该关键方程求解单元包括3(nl-k)/2+1个关键方程求解子单元和第二控制子单元。其中,当该多模式rsfec解码器以rs(ni,k)工作模式解码时,
该特征值计算单元用于根据接收当前fec帧的ni个码字计算ni-k个特征值,每个特征值通过各自的特征值计算子单元完成,该第一控制子单元控制启用该nl-k个特征值计算子单元中前ni-k个特征值计算子单元计算该ni-k个特征值;
该关键方程求解单元用于接收该ni-k个特征值,并根据该ni-k个特征值计算错误位置多项式和错误值多项式;该第二控制子单元用于控制启用该3(nl-k)/2+1个关键方程求解子单元中前3(ni-k)/2+1个特征值计算子单元计算该错误位置多项式λ(x)和该错误值多项式ω(x),并将该错误位置多项式λ(x)发送给该钱搜索单元,将该错误值多项式ω(x)发送给该错误值计算单元;
该钱搜索单元用于通过穷举该错误位置多项式λ(x)的根确定该当前fec帧的错误位置,并将多项式xλ′(x)发送给该错误值计算单元,其中多项式xλ′(x)表示λ(x)中奇数项之和;
该错误值计算单元用于根据该错误位置多项式λ(x)的奇数项之和xλ′(x)以及该错误值多项式ω(x)计算该当前fec帧的错误位置对应的纠错值;
该帧缓冲单元用于缓存该当前fec帧,直至该错误值计算单元计算出该当前fec帧的错误位置对应的纠错值;
该纠错单元用于根据该当前fec帧的错误位置对应的纠错值,以及该帧缓冲单元缓存的该当前fec帧,对该当前fec帧进行纠错。
本发明实施例中,通过根据解码时的工作模式控制解码时所使用的单元模块,从而能够减少不必要的计算开销,进而能够降低解码器的功耗水平。
当然,应理解,本发明实施例中,多模式rsfec解码器的各个单元中用于控制基本单元使用状态的控制子单元也可以由一个统一的控制子单元(或控制电路)实现。
可选地,该多模式rsfec解码器还包括统计单元、码型反馈单元,该统计单元用于统计以rs(ni,k)工作模式传输时的误码率;该码型反馈单元用于当该误码率大于预定上限阈值时选择rs(ni+1,k)码型反馈给编码端的多模式rsfec编码器,或者当该误码率小于预定下限阈值时选择rs(ni-1,k)码型反馈给编码端的多模式rsfec编码器。
可选地,该多模式rsfec解码器还包括去填充单元,用于当多模式rsfec解码器工作于rs(ni,k),i<l时,从长度为nl的码字中截取长度为ni的码字进行解码。应理解,解码器端选择哪些码字进行解码,可以是解码器端和编码器端事先约定的,或者是编码器端通知给解码器端的。
下面,将结合具体的实施例,对本发明实施例的多模式rsfec解码器及其解码方法作进一步的描述。
图5是本发明实施例用于多模式rsfec解码器的解码流程示意图。如图5所示,当多模式rsfec解码器接收到当前rsfec帧后,对当前rsfec帧进行帧缓冲操作;同时,根据该当前rsfec帧进行特征值计算、关键方程求解、钱搜索及错误值计算,再根据计算出的错误位置及对应的纠错值,结合缓存的当前rsfec帧,得到解码后的当前rsfec帧。
图6是本发明实施例多模式rsfec解码器特征值计算的一种电路示意图。多模式rsfec解码器的特征值定义为:
其中,n表示多模式rsfec解码器的码字长度,rk,k=0~n-1对应于接收到的rsfec帧中的信息符号,其中
其中,每一个特征值计算子单元对应于一个特征值的计算,在工作在rs(n0,k)模式的时候,只开启0~t0-1单元,如图中的虚线框区域所示;当工作在rs(n1,k)模式时才开启0~t1-1单元(即在开启0~t0-1单元的基础上再开启t0~t1-1单元),如图中的实线框区域。根据工作模式的不同开启对应的模块,从而能够避免不必要的功耗开销,达到节省功耗的目的。
对于每一个特征值的计算采用迭代的方式,以p并行为例,每一时钟周期接收p个符号,寄存器si的初始值为0。第一个时钟周期完成:
计算,然后将该值存入寄存器si中;第二个时钟周期完成:
计算并且存入寄存器si中;依次类推第n/p个时钟周期后寄存器si中的值为:
当多模式rsfec解码器工作在rs(n0,k)模式时,最终得到t0个所求解的特征值;当多模式rsfec解码器工作在rs(n1,k)模式时,最终得到t1个所求解的特征值。注意到对于特征值si,0≤i≤t0-1的求解,多模式rsfec解码器工作在rs(n0,k)和rs(n1,k)两种工作模式下的区别仅在于迭代的周期,分别为n0/p和n1/p,特征值计算子单元0~t0-1可以实现完全复用。可通过一个控制子单元(即前述多模式rsfec解码器的第一控制子单元)控制特征值计算子单元的启用状态。
特征值计算单元完成特征值的计算后,将计算的特征值送入关键方程求解单元(kes)计算错误位置多项式λ(x)和错误值多项式ω(x)。这两个多项式满足公式(13)所表示的特征方程:
λ(x)·s(x)=ω(x)modx2t公式(13)
对于公式(13)所表示的特征方程的求解可以采用ribm算法等。图7是本发明实施例多模式rsfec解码器关键方程求解的一种电路示意图。图7中,pe1为关键方程求解单元的处理引擎(或者说,前述多模式rsfec解码器的关键方程求解子单元)。从图7可以看出,对于rs(n0,k)的解码,需要开启pe10~3t0,可以关闭pe13t0~3t1以节省功耗。对于rs(n1k)的解码则需要开启pe13t0~3t1。
图8是图7中所示的控制电路的电路示意图,用于实现ribm的迭代算法。
为便于理解,下面给出了ribm算法的伪代码描述。
通过关键方程求解单元的计算,可获得错误位置多项式λ(x)和错误值多项式ω(x)。错误位置多项式λ(x)将会发送给钱搜索单元以求解错误位置,同时钱搜索单元还会计算的中间结果xλ′(x)。错误值多项式ω(x)和xλ′(x)会发送给错误值计算单元(forney),以计算所悟位置的值。
图9是本发明实施例多模式rsfec解码器的钱搜索单元的电路示意图。其中,r0所示区域的电路为rs(n0,k)的钱搜索单元的电路示意图;r1所示区域的电路为rs(n1,k)的钱搜索单元的电路示意图。其中rs(n0,k)和rs(n1,k)钱搜索(cs)电路的区别在于,前者错误位置多项式的阶数为t0=(n0-k)/2,而后者错误位置多项式的阶数为t1=(n1-k)/2。其中钱搜索单元实现的功能为搜索多项式错误位置多项式λ(x)的有效根,关键方程求解单元输出的错误位置多项式λ(x)为钱搜索单元的输入参数。使得λ(x)的值为0时的x的值即为λ(x)的有效根。
λ(x)=λtxt+λt-1xt-1+…+λ1x1+λ0
对于rs(n0,k),t=t0,对于rs(n1,k),t=t1。对于rs(n,k),钱搜索求解有效根的起始和终止位置为2m-n,2m-1,其中m为每一个符号的比特数量。
对于xλ′(x)的求解:
xλ′(x)=x(λtxt+λt-1xt-1+…+λ1x1+λ0)′
=tλtxt+(t-1)λt-1xt-1+…+λ1x1
=λ1x1+λ3x3+…+λ2j-1x2j-1,t-1≤2j-1≤t
上式中利用了有限域加法的性质2a=a+a=0。即xλ′(x)为λ(x)中奇数项之和。
对于p并行的钱搜索单元,其具体的工作流程如下:对于rs(n,k)码字起始的搜索位置为2m-n,即验证
钱搜索单元在搜索错误位置多项式的有效根的同时,会将搜索的结果发送给下游的错误值计算单元(forney单元),钱搜索给出的数值包括:当前时钟周期对应的p个位置是否为有效根,以及这p个位置对应的错误值。如果不是有效根,该错误值为0;如果是有效根,该位置对应的错误值为xλ′(x)。
图10是本发明实施例多模式rsfec解码器的错误值计算单元的电路示意图。其中,r0所示区域的电路为rs(n0,k)的错误值计算单元的电路示意图;r1所示区域的电路为rs(n1,k)的错误值计算单元的电路示意图。错误值计算单元的输入参数,包括钱搜索单元输出的xλ′(x)值,以及关键方程求解单元输出的错误值多项式ω(x)。
当错误值计算单元得到钱搜索单元给出的xλ′(x)以及关键方程求解单元(kes)给出的错误值多项式ω(x),即可按照公式(14)计算错误位置的值:
应注意,对于rs(n0,k)和rs(n1,k)而言,其错误值计算公式中的区别在于ω(x)的阶数,因此对于rs(n0,k)的解码需要开启图10中d_0~d_(t0-1);rs(n0,k)的解码还需要进一步开启图10中d_(t0-1)~d_(t1-1)。另外注意到对于不同的码长n,错误值计算单元开始计算的起点s是不同的,s=2^m-n,因此对于错误值计算单元开始计算的第一个时钟周期,与ω(x)相连接的乘法器系数是不同的,因此这部分常系数乘法器是不能实现共享的,由于这一部分为常系数乘法器电路,和整个解码电路由于不能共享导致的逻辑资源的增加相比,可以忽略不计。
当错误值计算单元完成错误值的计算后,纠错单元可根据错误值计算单元计算的当前fec帧的错误位置对应的纠错值,以及该帧缓冲单元缓存的该当前fec帧,对该当前fec帧进行纠错。
此外,多模式rsfec解码器还可根据码型进行解码并统计fec输入的误码率berin;将统计获得的berin同预先设定的误码率上限阈值和下限阈值进行比较,如果berin超过上限阈值,则多模式rsfec解码器决策选择性能更高的rsfec码型,比如:rs(ni+1,k);如果berin低于下限阈值,则多模式rsfec解码器决策选择性能低一点的rsfec码型,比如:rs(ni-1,k);如果berin位于上限阈值和下限阈值之间,则多模式rsfec解码器决策保持rsfec码型不变。多模式rsfec解码器可利用反向链路将解码器的码型决策信息传递给编码端的多模式rsfec编码器。
相应的,编码端的多模式rsfec编码器可根据解码端的多模式rsfec解码器反馈的码型,调整编码的码型,然后编码发送。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。