发明内容
本发明实施例要解决的技术问题为提供一种编解码方法、编码器和解码器,能够在编解码过程节省逻辑资源并提高数据处理速度。
为解决上述技术问题,本发明实施例的目的是通过以下技术方案实现的:
本发明实施例提供一种编码方法,其包括:
接收表示待编码码源的信息组;
将所述待编码的信息组转换为信息多项式;
根据所述信息多项式,获取校验多项式,其获取过程中包括计算乘积项;
根据所述校验多项式和信息多项式,得到编码后的码字;
所述获取校验多项式过程中的计算乘积项包括:
将乘积项转换为乘积多项式;
使用替换多项式代替所述乘积多项式中次幂高于乘积项比特位数的项,得到替换后多项式;
将所述替换后多项式的系数序列作为乘积项的计算结果。
本发明实施例提供一种解码方法,其包括:
接收待解码的码字;
根据接收到的待解码的码字求解伴随式,其求解过程中包括计算乘积项;
根据所述伴随式,确定差错定位多项式和差错值多项式,其中包括计算乘积项;
根据所述差错定位多项式和差错值多项式,得到误差多项式,其中包括乘积项的计算;
根据所述误差多项式和接收的待解码的码字,恢复出正确的码字。
所述求解伴随式、确定差错定位多项式和差错值多项式、得到误差多项式过程中的计算乘积项包括:
将乘积项转换为乘积多项式;
使用替换多项式代替乘积多项式中次幂高于乘积项比特位数的项,得到替换后多项式;
将所述替换后的多项式的系数序列作为乘法的计算结果。
本发明实施例提供一种编码器,其包括:
接收单元,用于接收待编码的信息组;
信息多项式单元,用于将所述接收单元所接收的待编码的信息组转换为信息多项式;
乘积项处理单元,用于提供乘积项的计算结果,其包括:转换单元,用于将乘积项转换为乘积多项式;多项式乘法单元,用于将所述转换单元所得的多项式进行相乘,得到乘积多项式;替换单元,用于使用替换多项式代替所述多项式乘法单元相乘所得的多项式中次幂高于乘积项比特位数的项,得到替换后多项式;乘积项结果生成单元,用于将经替换单元得到的替换后多项式的系数序列作为乘积项的计算结果;
校验多项式单元,用于利用所述乘积项单元提供的计算结果,根据所述信息多项式单元所生成的信息多项式,获取校验多项式;
码字生成单元,用于根据所述校验多项式单元所生成的校验多项式和信息多项式单元所生成的信息多项式,得到编码后的码字。
本发明实施例提供一种解码器,包括用于接收待解码的码字的接收单元,根据接收单元所接收到的待解码的码字求解伴随式的伴随式单元,根据所述伴随式确定差错定位多项式和差错值多项式的差错定位多项式和差错值多项式单元,根据所述差错定位多项式确定差错位置的差错位置单元,根据所述差错值多项式以及差错位置单元确定的差错位置确定差错值的差错值单元,以及根据所述差错值和待解码的码字恢复出正确的码字的差错纠错单元,所述解码器还包括:
乘积项单元,用于提供乘积项的计算结果给伴随式单元、差错定位多项式和差错值多项式单元、差错位置单元以及差错值单元进行利用,所述乘积项单元包括:转换单元,用于将乘积项中的元素均转换为多项式;多项式乘法单元,用于将所述转换单元所得的多项式进行相乘,得到乘积多项式;替换单元,用于使用替换多项式代替所述多项式乘法单元相乘所得的乘积多项式中次幂高于乘积项比特位数的项,得到替换后多项式;乘积项结果生成单元,用于将经替换单元得到的替换后多项式的系数序列作为乘积项的计算结果。
本发明实施例提供一种乘积项装置,用于提供乘积项计算结果,其包括:
转换单元,用于将乘积项转换为多项式;
多项式乘法单元,用于将所述转换单元所得的多项式进行相乘;
替换单元,用于使用替换多项式代替所述多项式乘法单元相乘所得的多项式中次幂高于乘积项比特位数的项;乘积项结果生成单元,用于将经替换单元替换后的多项式的系数序列作为乘积项的计算结果。
通过本发明实施例提供的编解码方法、编码器和解码器,将编码、解码过程中的乘积项转换为多项式,并将多项式的系数序列作为乘积项的计算结果,能够减少对伽逻华域表的存储开销,因此节省了逻辑资源,并提高了数据处理速度。
具体实施方式
本发明实施例提供一种编解码方法、编码器和解码器。为使本发明的技术方案更加清楚明白,以下参照附图并列举实施例,对本发明进一步详细说明。
请参照图1,为本发明编码方法一个实施例的流程图。具体过程包括:
步骤101:编码器接收待编码的信息组;
本实施例中,编码器为RS编码器,假设RS编码器所接收的待编码的信息组为cn-1,cn-2,...,c2t+1,c2t。
步骤102:RS编码器将所述待编码的信息组转换为信息多项式;
RS编码器将所述待编码的信息组转换为信息多项式具体方式为:将所述待编码的信息组乘以一个多项式。
信息多项式为:d(x)=cn-1xn-1+cn-2xn-2+…+c2t+1x2t+1+c2tx2t。
步骤103:根据所述信息多项式,得到校验多项式;
其具体包括:
获得生成多项式,其中包括计算乘积项;
使用生成多项式对信息多项式取余,得到校验多项式。
其中,生成多项式为
元素α是本原多项式P(x)的根,本原多项式P(x)映射伽罗华域GF(28)的256个元素。p(x)=x8+x4+x3+x2+1。故,元素α为GF(28)的本原元素。因此,在获得生成多项式的过程中,需要在伽罗华域GF(28)中计算本原元素之间的乘积项:αi×αj。
本实施例中αi×αj的计算过程包括:
步骤A:将乘积项中的元素转换为多项式,并将所述转换所得的多项式进行相乘,得到乘积多项式;
具体方式为:将伽罗华域GF(28)中的每个本原元素αi按照最高有效位(MSB,Most Significant Bit)到最低有效位(Least Significant Bit)的顺序进行表示;
具体表示形式为ai7ai6ai5ai4ai3ai2ai1ai0,采用多项式的形式表示则为αi=ai7x7+ai6x6+ai5x5+ai4x4+ai3x3+ai2x2+ai1x1+ai0。
因此,αi×αj可以表示为:
αi×αj
=(ai7x7+ai6x6+ai5x5+ai4x4+ai3x3+ai2x2+ai1x+ai0)
×(aj7x7+aj6x6+aj5x5+aj4x4+aj3x3+aj2x2+aj1x+aj0)
=(ai7aj7)x14+(ai7aj6+ai6aj7)x13+(ai7aj5+ai6aj6+ai5aj7)x12
+(ai7aj4+ai6aj5+ai5aj6+ai4aj7)x11+(ai7aj3+ai6aj4+ai5aj5+ai4aj6+ai3aj7)x10
+(ai7aj2+ai6aj3+ai5aj4+ai4aj5+ai3aj6+ai2aj7)x9
+(ai7aj1+ai6aj2+ai5aj3+ai4aj4+ai3aj5+ai2aj6+ai1aj7)x8 (1)
+(ai7aj0+ai6aj1+ai5aj2+ai4aj3+ai3aj4+ai2aj5+ai1aj6+ai0aj7)x7
+(ai6aj0+ai5aj1+ai4aj2+ai3aj3+ai2aj4+ai1aj5+ai0aj6)x6
+(ai5aj0+ai4aj1+ai3aj2+ai2aj3+ai1aj4+ai0aj5)x5
+(ai4aj0+ai3aj1+ai2aj2+ai1aj3+ai0aj4)x4+(ai3aj0+ai2aj1+ai1aj2+ai0aj3)x3
+(ai2aj0+ai1aj1+ai0aj2)x2+(ai1aj0+ai0aj1)x+(ai0aj0)
步骤B:使用替换多项式代替乘积多项式中次幂高于乘积项比特位数的项;
次幂高于乘积项比特位数的项为x8~x14,因此要用替换多项式代替比特位数的项为x8~x14的项。具体的替换多项式对照表请参照下表2:
表2替换多项式对照表
元素 | 替换多项式值 |
x8 | x4+x3+x2+1 |
x9 | x5+x4+x3+x |
x10 | x6+x5+x4+x2 |
x11 | x7+x6+x5+x3 |
x12 | x7+x6+x3+x2+1 |
x13 | x7+x2+x+1 |
x14 | x4+x+1 |
按照上述表2中元素与替换多项式值的对应关系,将替换多项式代入到公式(1)中,得到:
αi×αj
=(ai7aj7)(x4+x+1)+(ai7aj6+ai6aj7)(x7+x2+x+1)
+(ai7aj5+ai6aj6+ai5aj7)(x7+x6+x3+x2+1)
+(ai7aj4+ai6aj5+ai5aj6+ai4aj7)(x7+x6+x5+x3)
+(ai7aj3+ai6aj4+ai5aj5+ai4aj6+ai3aj7)(x6+x5+x4+x2)
+(ai7aj2+ai6aj3+ai5aj4+ai4aj5+ai3aj6+ai2aj7)(x5+x4+x3+x) (2)
+(ai7aj1+ai6aj2+ai5aj3+ai4aj4+ai3aj5+ai2aj6+ai1aj7)(x4+x3+x2+1)
+(ai7aj0+ai6aj1+ai5aj2+ai4aj3+ai3aj4+ai2aj5+ai1aj6+ai0aj7)x7
+(ai6aj0+ai5aj1+ai4aj2+ai3aj3+ai2aj4+ai1aj5+ai0aj6)x6
+(ai5aj0+ai4aj1+ai3aj2+ai2aj3+ai1aj4+ai0aj5)x5
+(ai4aj0+ai3aj1+ai2aj2+ai1aj3+ai0aj4)x4+(ai3aj0+ai2aj1+ai1aj2+ai0aj3)x3
+(ai2aj0+ai1aj1+ai0aj2)x2+(ai1aj0+ai0aj1)x+(ai0aj0)
对公式(2)进行简化,得到:
步骤C:将替换后的多项式的系数作为乘积项的计算结果。
将替换后得到的公式(3)中x7~x0的系数序列,即为乘积项αi×αj的计算结果。由于加法是二进制的,因此,每个系数均是1比特,其计算结果为系数的顺序排列。
利用乘积项αi×αj的计算结果得到生成多项式后,使用生成多项式对信息多项式取余,得到校验多项式。
步骤104:将所述待编码的信息组加上所述校验多项式,得到编码后的码字,即v(x)=d(x)+r(x)。
请参照图2,为本发明解码方法一个实施例的流程图。具体过程包括:
步骤201:译码器接收待解码的码字;
所述译码器所接收到的待解码的码字为编码器通过信道发送过来的码字。本实施例中,编码器发送的码子为:v(x)=v0+v1x+…+vn-1xn-1,由于发送过程中信道干扰而产生误码,译码器所接收的待解码码字为:r(x)=r0+r1x+…+rn-1xn-1。
步骤202:根据所述待解码的码字求解伴随式;
定义2t个部分伴随式Si(0≤i≤2t-1)计算公式为:Si=r(λi)
根据译码器所接收的待解码码字r(x)=r0+r1x+…+rn-1xn-1,可以将Si(0≤i≤2t-1)转换成如下迭代计算公式式:
Si=(((r0λi+r1)λi+r2)λi...)λi+rn-1 (4)
其中,元素λ为GF(28)的本原元素,元素λ也可以用α表示。因此,在求解伴随多项式的过程中,需要在伽罗华域GF(28)中计算αi×αj。
所述αi×αj的计算过程大致包括以下步骤:
步骤A:将乘积项转换为多项式;
步骤B:使用替换多项式代替多项式中次幂高于乘积项比特位数的项;
步骤C:将替换后的多项式的系数作为乘积项的计算结果。
每个步骤的具体计算方式与前述实施例中基本相同,这里不再进一步描述。
步骤203:根据所述伴随式,确定差错定位多项式Λ(x)和差错值多项式Ω(x);
差错定位多项式为:
所述差错定位多项式可以使用BM(Berkelamp-Massey)算法和欧几里德Euclidean(欧几里德)算法进行求解。下面以Euclidean算法为例进行说明:
由于差错定位多项式Λ(x)、差错值多项式Ω(x)与伴随多项式S(x)的关系如下:
x2tf(x)+S(x)Λ(x)=Ω(x) (6)
因此,在伴随式S(x)已知且要求Ω(x)的阶数小于t的情况下,可以通过重复多次的多项式除法求得Λ(x),同时也得到Ω(x)。
其基本过程如下:
步骤A:用S(x)除x2t,得到余数r1(x)和商q1(x),若r1(x)的阶数小于t,则得解;否则继续下一步;
步骤B:用r1(x)除S(x),得到余数r2(x)和商q2(x),同样判断r2(x)的阶数小于t,则得解;否则继续下一步;
步骤C:用r2(x)除r1(x),做类似处理,直到余数的阶数小于t,得到最终的Λ(x)和Ω(x)。
在求解差错定位多项式Λ(x)和差错值多项式Ω(x)的过程中,需要多次使用除法,因此需要计算αi/αj,可以首先查表获取αj的逆元素αn,然后将除法αi/αj运算转换成逆元素之间的乘积项αi×αn运算,再采用与αi×αj相同的处理方式计算乘积项αi×αn的结果。
步骤204:根据所述差错定位多项式和差错值多项式,确定差错位置和差错值;
差错位置Xi可以通过使用Chien搜索算法求解Λ(x)=0的根得到。
差错值Yi可以通过Forney公式求得,计算公式如下:
其中Λ′(x)=λ1+2λ2x+3λ3x2+…为Λ(x)的导数。
上述公式求解差错值的计算公式(8)中,需要在伽罗华域GF(28)中计算本原元素之间的乘积项αi×αj。
所述αi×αj的计算过程大致包括以下步骤:
步骤A:将乘积项转换为多项式;
步骤B:使用替换多项式代替多项式中次幂高于乘积项比特位数的项;
步骤C:将替换后的多项式的系数作为乘积项的计算结果。
每个步骤的具体计算方式与前述实施例中基本相同,这里不再进一步描述。
步骤205:根据所述差错位置和差错值,得到误差多项式;
误差多项式e(x)为v(x)和r(x)之差,且e(x)=e0+e1x+…+ew-1xw-1,其中ei=ri-vi。假设接收码字存在v个错误,错误位置为i1,i2,...,iv,那么
误差多项式的计算公式为:
步骤206:根据所述误差多项式和待解码的码字,恢复出正确的码字。
正确的码字计算公式为:
v(x)=r(x)-e(x) (9)
因此,根据步骤201中译码器所接收的待解码的码字r(x)以及步骤205中得到的误差多项式e(x),可以恢复出正确的码字v(x)。
请参照图3,为本发明编码器一个实施例的结构图。所述编码器包括接收单元31、信息多项式单元32、乘积项单元33、校验多项式单元34、码字生成单元35。
所述接收单元31,用于接收待编码的信息组;所述信息多项式单元32,用于将所述接收单元31所接收的待编码的信息组转换为信息多项式;所述乘积项单元33,用于提供乘积项的计算结果给校验多项式单元34;所述校验多项式单元34,用于利用所述乘积项单元33提供的计算结果,根据所述信息多项式32所生成的信息多项式,获取校验多项式;所述码字生成单元35,用于根据所述校验多项式单元34所生成的校验多项式和信息多项式单元32所生成的信息多项式,得到编码后的码字。
其中,所述乘积项单元33包括转换单元331、多项式乘法单元332、替换单元333、乘积项结果生成单元334。
所述转换单元331,用于将乘积项中的元素均转换为多项式;所述多项式乘法单元332,用于将所述转换单元331所得的多项式进行相乘,得到乘积多项式;所述替换单元333,用于使用替换多项式代替所述多项式乘法单元332所得的多项式中次幂高于乘积项比特位数的项;所述乘积项结果生成单元334,用于将经替换单元333替换后的多项式的系数作为乘积项的计算结果。
所述校验多项式单元34包括生成多项式单元341、取余单元342。
所述生成多项式单元341,用于利用所述乘积项单元33提供的计算结果,获得生成多项式;所述取余单元342,用于利用所述乘积项单元33提供的计算结果,使用生成多项式对信息多项式取余,得到校验多项式。
请参照图4,为本发明解码器一个实施例的结构图。所述解码器包括接收单元41、乘积项单元42、伴随式单元43、差错定位多项式和差错值多项式单元44、差错位置单元45、差错值单元46以及差错纠错单元47。
所述接收单元41,用于接收待解码的码字;所述乘积项单元42,用于提供乘积项的计算结果给伴随式单元43、差错定位多项式和差错值多项式单元44、差错位置单元45、差错值单元46;所述伴随式单元43,用于利用所述乘积项单元42提供的计算结果,根据接收单元41所接收到的待解码的码字求解伴随式;所述差错定位多项式和差错值多项式单元44,用于利用所述乘积项单元42提供的计算结果,根据所述伴随式单元43所得的伴随式,确定差错定位多项式和差错值多项式;所述差错位置单元45,用于利用所述乘积项单元42提供的计算结果,根据所述差错定位多项式和差错值多项式单元44所得的差错定位多项式,确定差错位置;所述差错值单元46,用于利用所述乘积项单元42提供的计算结果,根据所述差错定位多项式和差错值多项式单元44所得的差错值多项式以及差错位置单元45确定的差错位置,确定差错位置对应的差错值;所述差错纠错单元47,根据所述差错值单元46所得的差错值和接收单元41接收的待解码的码字,恢复出正确的码字。
其中,所述乘积项单元42包括转换单元421、多项式乘法单元422、替换单元423、乘积项结果生成单元424。
所述转换单元421,用于将乘积项中的元素均转换为多项式;所述多项式乘法单元422,用于将所述转换单元421所得的多项式进行相乘,得到乘积多项式;所述替换单元423,用于使用替换多项式代替所述多项式乘法单元422所得的乘积多项式中次幂高于乘积项比特位数的项;所述乘积项结果生成单元424,用于将经替换单元423替换后的多项式的系数作为乘积项的计算结果。
本实施例中,由一个乘积项单元向其他各个单元如伴随式单元、差错定位多项式和差错值多项式单元、差错位置单元、差错值单元提供乘积项计算结果,也可以各个单元各自集成一个乘积项单元来提供乘积项计算结果。
另外,本发明实施例中的乘积项计算方法以及乘积项装置不仅适用于RS编解码过程中,也适用于其他需要进行有限域乘法或者类似有限域乘法处理的应用场景中,例如在卫星通讯、数字电视传输过程中对音频、视频等信号流所进行的差错控制等。
通过本发明实施例提供的编解码方法、编码器和解码器、乘积项装置,通过本发明实施例提供的编解码方法、编码器和解码器,将编码、解码过程中的乘积项转换为多项式,并将多项式的系数作为乘积项的计算结果,能够减少对伽逻华域表的存储开销,因此节省了逻辑资源,并提高了数据处理速度。
以上对本发明实施例所提供的一种编解码方法、编码器和解码器、乘积项装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明所揭示的技术方案;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。