一种基于在线喷泉码的不等差保护方法与流程

文档序号:11877795阅读:643来源:国知局
一种基于在线喷泉码的不等差保护方法与流程
本发明涉及一种不等差保护方法,特别涉及一种基于在线喷泉码的不等差保护方法,属于信道编码、喷泉码以及多媒体无线通信
技术领域

背景技术
:随着通信技术的不断发展和智能设备保有量的增加,移动用户的用户体验不断提高,出现了大量新的无线业务,包括流媒体、网页浏览以及社交网络等诸多应用。其中,移动视频流是当今移动数据流量的主要部分,约占移动数据流量的50%左右。据推测,未来十年内移动视频流的流量还将增加约五百倍。视频传输,特别是高清视频传输或立体视频传输在传输过程中对信道噪声非常敏感。因此,如何提高图像和视频的传输质量,降低误码率,已成为多媒体通信领域的关键问题。在一些多媒体通信的标准,如H.264或MPEG中,信源数据被分成了不同的层次,所以在进行相应的信道编码时,也应该对重要性不同的数据提供不同的保护等级,这就是不等差保护(UEP)的核心思想。近年来,利用新的编码调制技术,科研人员提供了多种性能理想的不等差保护方法,在多媒体通信等领域得到诸多应用。基于信道编码的不等差保护方法大体分为三类,第一类是使用码率不同的多种纠错码为重要性不同的数据提供不同程度的保护,但是这类方法需要用到多个不同的编译码器,使得系统复杂度和成本大幅度增加;第二类是通过对同一种码字进行打孔得到码率不同的码字,为重要性不同的数据提供不同的保护,如打孔卷积码、打孔LDPC码、打孔Turbo码等,但是打孔带来了很大的性能损失;第三种是采用本身就有不等差保护性能的码字实现不同等级的保护,这种方法的典型实例是喷泉码。相比前两种方法,喷泉码不需要多余的编译码器,也不存在打孔造成的性能损失,所以更适合于应用在不等差保护方法中。喷泉码的不等差保护方法得到了广泛的研究。不等差保护的喷泉码通常将原始信息分为重要信息(MIB)和非重要信息(LIB),具体实现时,也可称为重要数据包和非重要数据包。在《IEEETrans.Inf.Theory》2007年第53卷第4期,题目为:“Ratelesscodeswithunequalerrorprotectionproperty”的文章中提出了一种使用权重选择策略的不等差保护喷泉码,这种方法通过对重要性不同的原始信息采用不同的选择概率,实现了对重要性高的部分信息保护程度较高、重要性低的部分信息保护程度较低的性能。在《IEEETrans.Commun.》2009年第57卷第9期,题目为:“Expandingwindowfountaincodesforunequalerrorprotection”的文章中提出了使用拓展窗策略的不等差保护喷泉码,这种方法通过窗分配函数确定每次编码的选择范围,重要程度高的部分信息被更多的窗包含,因此被选择的次数更多,保护程度也更高。但是这两篇文章中使用的编码均为LT码。LT码的实时译码性能并不好,导致了硬件资源使用的时间不均匀性,也即,在接收到的编码包不够多时,可以恢复出的原始信息非常少,需要的运算量也非常少,硬件资源没有被充分利用;在接收数据到达一定数量时,可译出大量原始信息,需要的运算量又非常大,硬件资源可能超负荷运转。此外,LT码编码过程的随机性太强,即使接收到足够多的编码符号,依然有可能译码失败,其可靠性无法得到保证。为了解决传统喷泉码的诸多问题,在《IEEETransactionsonInformationTheory》2015年第61卷第6期,题目为:“Onlinefountaincodeswithlowoverhead”的文章中,提出了一种称为在线喷泉码的新型喷泉码。相比传统喷泉码,在线喷泉码具有编译码复杂度低、可靠性强、实时译码性能好等优势,而且可以适应更加复杂的信道。但是,文章中提出的在线喷泉码不具备不等差保护性能。上述已有的不等差保护方法虽然能实现对重要性不同的信息采取不同等级的保护,但是由于其使用LT码,存在实时译码性能不好、可靠度不高的问题。本发明的目的旨在克服以上问题,在在线喷泉码中引入不等差保护性能,对重要性不同的信息进行不同程度的保护。技术实现要素:本发明的目的是针对不等差保护LT码存在实时译码性能不好、可靠度不高的技术缺陷,提出了一种基于在线喷泉码的不等差保护方法。一种基于在线喷泉码的不等差保护方法,简称本方法,包括以下内容:本方法所依托的系统包括发送端和接收端,其中发送端又包括信源和编码器,接收端又包括译码器和信宿;本方法适用的待编码原始信息数据包的个数为k,其序号分别为1,2,3,…,k,这些待编码原始信息数据包依重要性不同被分为重要数据包和非重要数据包;本方法包含如下步骤:步骤1:初始化,具体为:设定参数β0<1,初始化参数m1′和m2′为0,接收端初始化两个空集合:集合B和集合T,并初始化存储空间MC,MS和MD为空;其中,β0是判断参数;参数m1′和m2′分别表示对重要数据包和全部原始信息数据包进行编码时,实际选择的原始信息数据包的个数;记重要数据包组成的集合为w1,记原始信息数据包组成的集合,即重要数据包与非重要数据包组成的集合,为w2;集合B是所有已经完成译码的原始信息数据包的序号的集合,集合T是待处理的原始信息数据包的序号的集合;其中,存储空间MC用于存储编码包和相应的序号列,存储空间MS用于存储译码器处理得到的序号列集合,存储空间MD用于存储完成译码的原始信息数据包和相应的序号;步骤2:编码器产生第一类编码包并发送到译码器,具体为:步骤2.1编码器从待编码原始信息数据包中选择两个原始信息数据包,并将此两个原始信息数据包异或产生一个第一类编码包;其中,这两个原始信息数据包的选择存在三种情况:情况1,这两个原始信息数据包均为重要数据包;情况2,两个原始信息数据包均为非重要数据包;情况3,一个原始信息数据包是重要数据包,另一个是非重要数据包;情况1、情况2和情况3出现的概率分别是q1,q2,q3,且满足q1+q2+q3=1;其中,所述的待编码原始信息数据包依重要性不同被分为重要数据包和非重要数据包,待编码原始信息数据包的数量为k,序号分别为1,2,3,…,k;记步骤2.1生成的第一类编码包为CB1i,其中,下标i表示第i个第一类编码包;步骤2.2发送端将步骤2.1输出的第一类编码包和对应的两个原始信息数据包的序号组成的序号列发送给接收端;其中,所述的序号列记为XB1i={ni1,ni2},ni1和ni2分别表示第一类编码包,CB1i,对应的两个原始信息数据包的序号,且ni1和ni2的范围为1到k;步骤3:接收端的译码器接收并处理步骤2发出的第一类编码包,具体为:步骤3.1接收端接收编码包CB1i和序号列XB1i,并存储在MC中;步骤3.2对步骤3.1中存储的XB1i中的两个序号进行判断,并进行相应操作:3.21若XB1i中的序号ni1和ni2不属于任何一个MS中的序号列集合,则将XB1i存储在MS中;3.22若XB1i中的一个序号属于MS中某一序号列集合,则将另一个序号也放入该集合中;3.23若XB1i中的两个序号分属MS中的两个序号列集合,则将这两个集合合并;步骤4:重复步骤2和步骤3,直到MS中元素个数最多的集合的元素个数为k*β0,此时译码器给编码器反馈信号ACK1;其中,MS为用于存储译码器处理得到的序号列集合;β0是判断参数;反馈信号ACK1的含义为译码器已获得足够的第一类编码包;记元素个数为k*β0的MS中元素个数最多的集合为Smax;步骤5:编码器接收到步骤4反馈信号ACK1后,产生第二类编码包并发送给译码器,具体为:步骤5.1编码器选择一个原始信息数据包作为第二类编码数据包;其中,步骤5.1中的编码包,记为CB2j,其中,下标j表示第j个第二类编码包;其选择范围为全部的k个原始信息数据包;步骤5.2将步骤5.1输出的编码数据包和其对应的序号发送给接收端;其中,对应的序号,记为n2j;步骤6:译码器接收、存储步骤5发出的第二类编码包,并进行相应处理,具体为:译码器将编码包CB2j作为序号n2j对应的原始信息数据包存储,然后进行如下处理:步骤6.1查找MC中的序号列,将所有含有序号n2j的序号列对应的编码包依次与CB2j进行异或运算,每次运算的结果作为此序号列中另一个序号nix对应的原始信息数据包的译码结果,存储到MD中;将所有译码结果对应的序号存入集合T中,从MC中删除译码的序号列和编码包;其中,nix对应ni1或ni2;步骤6.2将T中的任意一个序号做为新的n2j,将这个序号从T中删除,将对应的原始信息数据包作为新的CB2j;步骤6.3执行步骤6.1,再判断集合T是否为空集,进行相应操作:6.31若集合T为空集,跳至步骤6.4;6.32若集合T非空,跳至步骤6.2;步骤6.4译码器查找MS中的集合,对序号n2j进行判断,并进行如下操作:6.41若序号n2j属于MS中的某一集合,则将这个集合中的全部序号存入集合B中,并判断此集合是不是Smax,并进行相应操作:6.41A若此集合是Smax,则将Smax从MS中删除,跳至步骤7;6.41B若此集合不是Smax,此集合从MS中删除,跳至步骤5;6.42若序号n2j不属于MS中的任一集合,则将序号n2j存入集合B中;步骤7:译码器统计恢复比例并产生反馈,具体为:步骤7.1译码器统计恢复比例β1和β2,接收端依据下述公式(1)和公式(2),由β1和β2计算m1和m2:m1=argmaxm1[m11β1m1-1(1-β1)+m12β1m1-2(1-β1)2]---(1)]]>m2=argmaxm2[m21β2m2-1(1-β2)+m22β2m2-2(1-β2)2]---(2)]]>其中,β1是已译码的重要数据包占全部重要数据包的比例,β2是已译码的原始信息数据包占全部原始信息数据包的比例;m_1和m_2分别表示对重要数据包和全部原始信息数据包进行编码时,理论上最优的原始信息数据包的个数;步骤7.2对m1和m2的值进行判断并进行如下操作:7.21若m1和m2与m1′和m2′不完全相同,则用m1和m2的值分别更新m1′和m2′,并将m1′和m2′反馈给编码器;7.22若m1和m2与m1′和m2′完全相同,不进行任何操作;步骤8:编码器产生第三类编码包并发送;步骤8中所述的第三类编码包由m1′或m2′个原始信息数据包异或得到,步骤8,具体为:步骤8.1发送端选择w1或w2;其中,w1被选择的概率是θ1,w2被选择的概率是θ2;步骤8.2根据8.1中选择的w1还是w2,进行如下相应操作:8.21若选择w1,则选择m1′个原始信息数据包进行异或运算;8.22若选择w2,则选择m2′个原始信息数据包进行异或运算;步骤8.3将步骤8.2中异或运算结果和对应的序号列发送给译码器;其中,所述的异或运算结果,记为CCg,所述的异或运算结果对应的序号列,记为XCg,下标g表示第g个第三类编码包;步骤9:译码器接收并处理步骤8发送的第三类编码包;步骤9.1译码器计算集合B和序号列XCg的交集Yg,从XCg中减去Yg得到序号列XCg′,计算XCg′中序号的个数;步骤9.2对XCg′中序号的个数进行判断,并进行如下操作:9.21若序号的个数不为1或2,则重复步骤9;9.22若序号的个数为1或2,则Yg中的所有序号所对应的原始信息数据包依次与CCg进行异或运算,得到CCg′并进行进一步判断XCg′中的元素个数:9.221若XCi′中的元素个数为1,则XCi′中只有一个序号nCi,CC′i是一个第二类编码包,对其按照步骤6中的操作进行处理;9.222若为XCi′中的元素个数为2,则XCi′中存在两个序号nCj1,nCj2,CCi′是一个第一类编码包,对其按照步骤3中接收端的操作进行处理;步骤10:重复步骤7至步骤9,直到已译码的重要数据包占全部重要数据包的比例与已译码的全部原始信息数据包占全部原始信息数据包的比例相同,且均为1;至此,从步骤1到步骤10,完成了一种基于在线喷泉码的不等差保护方法。附图说明图1为本发明一种基于在线喷泉码的不等差保护方法原理图;图2为本发明一种基于在线喷泉码的不等差保护方法中第一类编码数据包的产生示意图;图3为本发明一种基于在线喷泉码的不等差保护方法实施例2中本方法与传统没有不等差错误保护在线喷泉码的仿真对比图;图4为本发明一种基于在线喷泉码的不等差保护方法实施例3的仿真结果示意图。有益效果本发明提出了一种基于在线喷泉码的不等差保护方法,与其他不等错误保护喷泉码相比,具有如下有益效果:1.本方法引入反馈,可以更好的适应更加复杂的信道;2.本方法使用的编码数据包大多为两个原始信息数据包的模二和,编译码复杂度较低;3.本方法具有较好的实施译码能力,在接收到的编码包数量小于原始信息包数量时,就可以恢复出大量原始信息。具体实施方式下面结合具体实施过程对本发明及若干实施例进行进一步详细说明。实施例1图1为本发明一种基于在线喷泉码的不等差保护方法原理图;由图中可以看出:一种基于在线喷泉码的不等差保护方法所依托的系统包括发送端和接收端,其中发送端又包括信源和编码器,接收端又包括译码器和信宿。本实施例具体阐述了本发明实施过程中,各步骤的具体情况,主要依据说明书主体中的步骤1到步骤10;其中,待编码的原始信息数据包的个数为k=1000,其序号分别为1,2,3,…,1000,依重要性不同分为重要数据包和非重要数据包,其中序号1~500为重要数据包,501~1000为非重要数据包;一种基于在线喷泉码的不等差保护方法,其流程图为:步骤A:初始化,具体到本实施例中参数β0=0.55,参数m1′和m2′为0,初始化两个空集合:集合B和集合T,并初始化MC,MS和MD为空;步骤B:产生和发送第一类编码包,译码器接收并处理第一类编码包;图2为本发明一种基于在线喷泉码的不等差保护方法第一类编码数据包产生示意图,即依据不同重要程度的原始信息数据包选择示意图。图2中的MIB为重要数据包,LIB为非重要数据包;其中的q1所在的圈为情况1,表示两个数据包都从MIB里选,情况1出现的概率为q1;q2所在的圈为情况2,表示1个数据包从MIB里选,另一个数据包从LIB中选,情况2出现的概率为q2;q3所在的圈为情况3,表示两个数据包都从LIB中选,情况3出现的概率为q3;本实施例中q1=0.6467,q2=0.3233,q3=0.03;步骤C:重复步骤B,直到元素个数最多的集合的元素个数达到kβ0=650;步骤D:接收端给发送端反馈信号ACK1,告知发送端进入步骤E;步骤E:编码器产生第二类编码包并发送,译码器接收并处理第二类编码包;步骤F:重复步骤D,直到步骤C中最大的集合被删除;步骤G:接收端统计恢复比例β1和β2,依据公式(1)和公式(2),由β1和β2计算m1和m2,并判断是否反馈;步骤H:编码器产生第三类编码包并发送,译码器接收并处理第三类编码包,其中θ1=θ2=0.5;步骤I:重复步骤G和步骤H,直到β1=β2=1;至此,从步骤A到步骤I,完成了本实施例一种基于在线喷泉码的不等差保护方法。实施例2在本实施例2中,设置参数为k=1000,β0=0.55,q1=0.6467,q2=0.3233,q3=0.03,θ1=θ2=0.5;图3为本发明一种基于在线喷泉码的不等差保护方法实施例2中本方法与文献“Onlinefountaincodeswithlowoverhead”中没有不等差保护在线喷泉码的仿真对比图;MIB和LIB是本方法,MIB是恢复出的重要数据包数随接收到的编码数据包的变化情况,LIB是恢复出的非重要数据包随接收到的编码数据包的变化情况;EEP1和EEP2是传统没有不等差保护的在线喷泉码。从图3中可见,首先,本方法中MIB比LIB先完成恢复,体现出了不等差保护,而文献中的算法两段原始信息数据包同时完成恢复,不存在不等差保护;本方法在接收到约810个编码数据包时,即可恢复出大量原始信息包,说明本方法有极好的实时译码能力,而其他基于LT码的不等差保护方法只能在接收到的编码数据包数量接近原始信息包数量时,才能恢复出大量原始信息包。此外,本实施例需要的第一类编码包数量为810个,第二类编码包3个,第三类编码包458个,第一类、第二类编码包个数非常多,可见本方法的编译码复杂度较低。实施例3在本实施例3中,设置参数为k=1000,β0=0.55,q1=0.582,q2=0.388,q3=0.03,θ1=θ2=0.5;即与实施例2相比,改变了q1、q2和q3的值,图4为本实施例3中本方法与文献“Onlinefountaincodeswithlowoverhead”中没有不等差保护在线喷泉码的仿真对比图:与图3类似,图4中的MIB和LIB是本方法,MIB是恢复出的重要数据包数随接收到的编码数据包的变化情况,LIB是恢复出的非重要数据包随接收到的编码数据包的变化情况;EEP1和EEP2是传统没有不等差保护的在线喷泉码。从图4中可以得出与图3类似的结论:即:首先,本方法中MIB比LIB先完成恢复,体现出了不等差保护,而文献中的算法两段原始信息数据包同时完成恢复,不存在不等差保护;当接收到约756个编码数据包时,即可恢复出大量原始信息包,实时译码能力得到进一步提高;本实施例需要第一类编码包752个,第二类编码包4个,第三类编码包470个,编译码复杂度依然较低。以上所述的具体描述,对发明的目的、技术方案和优点益处都进行了进一步的详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1