一种差错控制方法和系统的制作方法

文档序号:7928408阅读:245来源:国知局
专利名称:一种差错控制方法和系统的制作方法
技术领域
本发明涉及一种差错控制方法和系统,适用于通信、存储等领域。

背景技术
随着宽带网络及视频业务的发展,组播得到了广阔的应用,例如IPTV。组播应用中有大量的用户接收共同的数据源,标准的组播协议是不带反馈的,这就带来新的问题如果网络上出现丢包,由于每个用户丢失的数据都可能不一样,为此需要一种有效的恢复机制,无论用户丢失哪些数据包,都能将丢失的数据恢复。同样,在存储领域也存在如何将丢失的数据进行恢复的问题。


发明内容
发明目的本发明的目的是提供一种差错控制方法和实现该方法的系统,有效地将丢失的数据恢复,提高数据完整性。
技术方案一种差错控制方法,包括生成冗余包的方法和信源恢复的方法,其中生成冗余包的方法包括以下步骤 (1)构造编码系数矩阵A 假设有n个信源X1、X2、X3......Xn,m为需要生成的冗余包的数量,选一个数域P,保证每个信源Xj都在数域P内,在数域P中任取(n+m)个不同的值K1、K2、K3......Kn、L1、L2......Lm,取矩阵K和L如下 由于矩阵K是范德蒙矩阵(Vandermonde Matrix),所以矩阵K一定存在逆矩阵K-1。将矩阵L乘以矩阵K-1,得到编码系数矩阵A如下 步骤(1)每步数学运算都采用数域P内的运算。
(2)计算冗余包 取信源矩阵X如下 将编码系数矩阵A乘以信源矩阵X,得到冗余包矩阵Y如下 Y1、Y2、Y3......Ym即为m个冗余包。步骤(2)每步数学运算都采用与步骤(1)相同的数域P内的运算。
将矩阵K的所有行及矩阵L的所有行,组成矩阵F如下 则如下等式成立,等式右边由n个信源及m个冗余包构成。
等式右边取任意n行,等式左边矩阵F也取相应的n行,上述等式仍然成立。等式右边的任意n行,实质上是信源个数加冗余包个数等于n的任意n个信息,将它记为矩阵G,等式左边矩阵F取相应的n行后得到矩阵H,则得到如下等式 H*K-1*X=G 由于H也是范德蒙矩阵,所以矩阵H一定存在逆矩阵H-1,将上等式两边都左乘矩阵H-1得到如下等式 K-1*X=H-1*G 再将上等式两边都左乘矩阵K得到如下等式 X=K*H-1*G 因而理论上,从n个信源及m个冗余包中任取n个信息都可以恢复出n个信源,这是本发明的数学原理。
发信端将n个信源及m个冗余包发送往收信端,当收信端收到的信源个数r小于n时,信源恢复的方法包括以下步骤 (3)构造解码系数矩阵B 假设收到Xf、Xg......Xh共r个信源,其中f<g<……<h,收到t个冗余包,当t大于(n-r)时任取(n-r)个冗余包,当t小于或等于(n-r)时取所有的冗余包,这些冗余包记为Yu、Yv......Yw,其中u<v<……<w,取矩阵B第1行的第f列为1、其他(n-1)列为0;矩阵B第2行的第g列为1、其他(n-1)列为0......矩阵B第r行的第h列为1、其他(n-1)列为0;矩阵B第(r+1)行为步骤(1)系数矩阵A的第u行;矩阵B第(r+2)行为步骤(1)系数矩阵A的第v行......矩阵B最后1行为步骤(1)系数矩阵A的第w行,构成解码系数矩阵B如下 (4)恢复出信源X 当t大于(n-r)时任取(n-r)个冗余包,当t小于或等于(n-r)时取所有的冗余包,得到如下等式 当t大于或等于(n-r)时,前面已经证明解码系数矩阵B是一个范德蒙矩阵H与另一个范德蒙矩阵K的逆的乘积并且上述等式必定有解,可采用解(n-r)元1次方程组的解法解出(n-r)个未收到的信源Xj。当t小于(n-r)时,由于等式个数小于变元数,因而只能部分解出(n-r)个信源。步骤(4)每步数学运算都采用与步骤(1)相同的数域P内的运算。
上面描述了生成冗余包Y及将信源X恢复的差错控制方法,下面描述如何实现该差错控制方法的系统,包括以下内容 (a)上述步骤(1)、(2)、(4)中的数域P采用扩展伽罗瓦2q域(Extended Galois Field 2q)。
(b)事先按上述步骤(1)算好编码系数矩阵A,并将它存储在发信端和收信端的存储器上。
(c)发信端将信源Xj按固定的规则切成s个片段Xj1、Xj2、Xj3......Xjs,保证每个片段的值都在上述扩展伽罗瓦2q域内,信源Xj切片后得到如下信源矩阵X 发信端利用CPU或ASIC按如下等式生成冗余包,冗余包Yi由Yi1、Yi2、Yi3......Yis构成。将n个信源Xj及m个冗余包Yi发送往收信端。
(d)当收信端收到的信源数r小于n时,取r个的信源及(n-r)个冗余包,并将信源Xj及冗余包Yi按与(c)同样的规则切成s个片段。利用CPU或ASIC按上述步骤(3)和(4)的方法恢复出信源。信源Xj及冗余Yi包切片后,步骤(4)恢复信源的等式如下 有益效果本发明与现有技术相比,其显著优点是从n个信源及m个冗余包中任取n个数据包,都一定能恢复出n个信源,保证了冗余包信息量的最大化。采用扩展伽罗瓦2q域内的运算,在减少运算量的同时还能保证信道容量得到最有效的利用。本发明的方法是信息论香农定律在实践应用中的最优化方法之一,具有很高的可用性。
在组播应用如IPTV中使用本发明的方法和系统,能有效地将丢失的组播数据恢复,完美地解决组播应用中当数据被丢失一部分之后出现的故障例如IPTV的噪音及图像停顿或马赛克。



图1是冗余包生成单元的简要逻辑图。
图2是信源恢复单元的简要逻辑图。

具体实施例方式 上述技术方案中的数域P,可采用任何无限数域或有限数域,无限数域如实数域、有理数域,有限数域如基本伽罗瓦域,在这些数域中的运算如在实数域内的运算,5050是个巨大的数,需要增大存储空间,也不利于有效地利用信道容量。采用有限域中的扩展伽罗瓦pq域,对于p取2,则任何运算的结果都不会要求更多的存储空间。具体实施本发明描述的方法时,一般选用扩展伽罗瓦2q域。由于2q域内运算略难理解,虽然它在一些数学和计算机书籍中有详细描述,但这里还是举例说明28域内的运算以便于理解。域2内有两个值0、1,域2内的加法运算0+0=0,0+1=1,1+0=1,1+1=0,乘法运算0*0=0,0*1=0,1*0=0,1*1=1。28域内有256个值0、1、2、3......255。x8域内的任一值都可用包含x0、x1、x2、x3、x4、x5、x6、x7的多项式构成,例如x=2时在x8域内,249=x0+x3+x4+x5+x6+x7,30=x1+x2+x3+x4,对249和30进行加法运算过程如下
即在28域内249+30=231,从运算过程可知,28域内的加法运算,实质就是将两个数进行2进制的异或运算。当x=2时在x8域内选取一个包含x8的质多项式,例如取质多项式Z(x)=1+x+x3+x4+x8,它无法被拆成任何其他两个多项式的乘积。28域内两个数相乘的结果是将其对应的两个多项式相乘后除以质多项式而得到的余数多项式所代表的值,例如28域内249*30的计算方法是先将249对应的多项式[x0+x3+x4+x5+x6+x7]与30对应的多项[x1+x2+x3+x4]相乘,得到积多项式[x1+x2+x3+x6+x9+x11],乘法运算如下
将积多项式除以Z(x)得到商多项式[x3+x]及余数多项式[x7+x5],余数多项式[x7+x5]对应的值为160,计算过程如下
因而在28域取上述质多项Z(x)时,249*30=160,乘法运算有256*256种可能。由于28域的乘法运算量较大,在实际使用时可将28域内的所有可能的乘法运算事先计算好并存成一张256*256的乘法表,从而将乘运算过程转化为查表过程。考虑到乘法交换律,28域内的乘法共有257*128种可能,为了减少存储量也可仅存一张257*128的乘法表。28域内的值都可用1个Byte来表示,因而28域内运算在常用CPU系统中的开销较小。
技术方案的实施例中,取扩展伽罗瓦28域,n=64,m=7,K1=0、K2=1、K3=2......K64=63,对应地信源为X1、X2、X3......X64;L1=64、L2=65......L7=70,对应地冗余包为Y1、Y2、Y3......Y7。
如何求范德蒙矩阵K的逆矩阵K-1,在许多数学书籍中都有描述,这里不再叙述,28域内的加法运算采用2进制异或运算,28域内的乘法运算前面也已经描述过,利用28域内的加法和乘法,最后求得7行64列的编码系数矩阵A=L*K-1如下 矩阵A第1行的64列分别为118,48,2,204,197,55,235,181,54,91,92,15,232,137,25,200,63,164,162,165,60,13,29,226,212,202,56,73,74,187,249,41,173,183,122,245,158,178,134,193,111,231,176,159,36,163,175,104,45,174,133,14,152,189,64,217,42,229,98,53,3,22,40,191。
矩阵A第2行的64列分别为48,118,204,2,55,197,181,235,91,54,15,92,137,232,200,25,164,63,165,162,13,60,226,29,202,212,73,56,187,74,41,249,183,173,245,122,178,158,193,134,231,111,159,176,163,36,104,175,174,45,14,133,189,152,217,64,229,42,53,98,22,3,191,40。
矩阵A第3行的64列分别为2,204,118,48,235,181,197,55,92,15,54,91,25,200,232,137,162,165,63,164,29,226,60,13,56,73,212,202,249,41,74,187,122,245,173,183,134,193,158,178,176,159,111,231,175,104,36,163,133,14,45,174,64,217,152,189,98,53,42,229,40,191,3,22。
矩阵A第4行的64列分别为204,2,48,118,181,235,55,197,15,92,91,54,200,25,137,232,165,162,164,63,226,29,13,60,73,56,202,212,41,249,187,74,245,122,183,173,193,134,178,158,159,176,231,111,104,175,163,36,14,133,174,45,217,64,189,152,53,98,229,42,191,40,22,3。
矩阵A第5行的64列分别为197,55,235,181,118,48,2,204,232,137,25,200,54,91,92,15,60,13,29,226,63,164,162,165,74,187,249,41,212,202,56,73,158,178,134,193,173,183,122,245,36,163,175,104,111,231,176,159,152,189,64,217,45,174,133,14,3,22,40,191,42,229,98,53。
矩阵A第6行的64列分别为55,197,181,235,48,118,204,2,137,232,200,25,91,54,15,92,13,60,226,29,164,63,165,162,187,74,41,249,202,212,73,56,178,158,193,134,183,173,245,122,163,36,104,175,231,111,159,176,189,152,217,64,174,45,14,133,22,3,191,40,229,42,53,98。
矩阵A第7行的64列分别为235,181,197,55,2,204,118,48,25,200,232,137,92,15,54,91,29,226,60,13,162,165,63,164,249,41,74,187,56,73,212,202,134,193,158,178,122,245,173,183,175,104,36,163,176,159,111,231,64,217,152,189,133,14,45,174,40,191,3,22,98,53,42,229。
计算出编码系数矩阵A之后,可求得冗余包矩阵如下 Y=A*X 假设收信端仅接收到信源X3、X4、X5......X62、X63,信源X1、X2及X64在传输过程中被丢失,同时收信端还收到冗余包Y2、Y5、Y6、Y7,冗余包Y1、Y3、Y4在传输过程中被丢失,则可构造解码系数矩阵B如下
对于信源及冗余包切片举例如下,假设每个信源及冗余包都由5个字符构成,则可将每个信源及冗余包都切成5片,例如信源X3为字符串abcde,冗余包Y2为字符串rstuv,X3切片后得到X31=a,X32=b,X33=c,X34=d,X35=e,Y2切片后得到Y21=r,Y22=s,Y23=t,Y24=u,Y25=v。收信端需要恢复出的信源X1、X2及X64相当于如下等式的未知数,由于X3、X4、X5......X63及Y2、Y5、Y6都已知,如下等式即成为5组3元1次方程组,解开这些方程组即得到信源X1、X2及X64,解方程过程中的数学运算仍采用上述28域内的运算。
图1是冗余包生成单元的简要逻辑图,由CPU或ASIC及存储器等单元构成,在不易失存储器中存储编码系数矩阵A及28域内的乘法表,由CPU或ASIC按技术方案的步骤(2)生成冗余包。
图2是信源恢复单元的简要逻辑图,由CPU或ASIC及存储器等单元构成,在不易失存储器中存储编码系数矩阵A及28域内的乘法表,由CPU或ASIC按技术方案的步骤(3)和(4)解出所有信源。
目前有些商用的组播应用例如IPTV仅使用1个UDP端口组播,为了与原有的系统兼容,使用本发明描述的新方法时可采用2个UDP端口,例如现有某套IPTV节目使用组播地址IP_M、端口Port_M,使用新方法时,这套IPTV节目的信源X也使用组播地址IP_M、端口Port_M,其冗余包Y使用同样的组播地址IP_M,但使用另一个端口Port_N,原有IPTV终端仅接收端口Port_M上的数据,使用本发明描述方法的新终端同时接收端口Port_M及Port_N上的数据,从而能保证新老终端都能正常工作。此外,为进一步增强组播的可靠性,组播接收端还可将信源恢复失败的次数反馈到中央服务器以进行通信质量评估,中央服务器可随信源恢复失败率的增减动态指挥组播发信端增减冗余包的个数。
权利要求
1、一种差错控制方法,其特征是该方法包括生成冗余包的方法和信源恢复的方法,其中生成冗余包的方法包括以下步骤
(1)构造编码系数矩阵A
假设有n个信源X1、X2、X3......Xn,m为需要生成的冗余包的数量,选一个数域P,保证每个信源Xj都在数域P内,在数域P中任取(n+m)个不同的值K1、K2、K3......Kn、L1、L2......Lm,取矩阵K和L如下
取K的逆矩阵K-1,将矩阵L乘以矩阵K-1,得到编码系数矩阵A如下
步骤(1)每步数学运算都采用数域P内的运算;
(2)计算冗余包
取信源矩阵X如下
将编码系数矩阵A乘以信源矩阵X,得到冗余包矩阵Y如下
Y1、Y2、Y3......Ym即为m个冗余包;步骤(2)每步数学运算都采用与步骤(1)相同的数域P内的运算;
发信端将n个信源及m个冗余包发送往收信端,当收信端收到的信源个数r小于n时,信源恢复的方法包括以下步骤
(3)构造解码系数矩阵B
假设收到Xf、Xg......Xh共r个信源,其中f<g<……<h,收到t个冗余包,当t大于(n-r)时任取(n-r)个冗余包,当t小于或等于(n-r)时取所有的冗余包,这些冗余包记为Yu、Yv......Yw,其中u<v<……<w,取矩阵B第1行的第f列为1、其他(n-1)列为0;矩阵B第2行的第g列为1、其他(n-1)列为0......矩阵B第r行的第h列为1、其他(n-1)列为0;矩阵B第(r+1)行为步骤(1)编码系数矩阵A的第u行;矩阵B第(r+2)行为步骤(1)编码系数矩阵A的第v行......矩阵B最后1行为步骤(1)编码系数矩阵A的第w行,构成解码系数矩阵B如下
(4)恢复出信源X
当t大于(n-r)时任取(n-r)个冗余包,当t小于或等于(n-r)时取所有的冗余包,得到如下等式
当t大于或等于(n-r)时,利用上等式解出(n-r)个未收到的信源Xj;当t小于(n-r)时,利用上等式部分解出(n-r)个未收到的信源Xj;步骤(4)每步数学运算都采用与步骤(1)相同的数域P内的运算。
2、实现如权利要求1所述差错控制方法的系统,其特征是
(a)数域P采用扩展伽罗瓦2q域;
(b)事先算好编码系数矩阵A,并将它保存在发信端和收信端;
(c)发信端将信源Xj按固定的规则切成s个片段,保证每个片段的值都在上述扩展伽罗瓦2q域内,利用CPU或ASIC生成冗余包,然后将n个信源及m个冗余包发送往收信端;
(d)当收信端收到的信源数r小于n时,取r个的信源及(n-r)个冗余包,并按与(c)同样的规则将信源Xj及冗余包Yi切成s个片段,利用CPU或ASIC恢复出信源。
全文摘要
本发明公开了一种差错控制方法和系统,适用于通信、存储等领域,在这些领域中使本发明的方法或系统,可有效地将丢失的数据恢复,提高数据的完整性。本发明的方法包括生成编码系数和冗余包、生成解码系数和恢复信源等步骤,发信端以n个信源生成m个冗余包,将信源及冗余包都发送往收信端,收信端收到的信源个数与冗余包个数之和只要大于n,就能恢复出所有n个信源。本发明利用范德蒙矩阵及扩展伽罗瓦2q域内的运算,巧妙地实现了信息量最大化及运算量最小化。在多播及广播通信中使用本发明的差错控制方法或系统,可取得优良的效果。
文档编号H04L1/22GK101404563SQ20081023451
公开日2009年4月8日 申请日期2008年11月20日 优先权日2008年11月20日
发明者吕晓雯, 刘怡梅, 玲 杜 申请人:吕晓雯, 刘怡梅, 玲 杜
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1