CN102237966B - 基于度2和高度编码包的喷泉码解码方法 - Google Patents

基于度2和高度编码包的喷泉码解码方法 Download PDF

Info

Publication number
CN102237966B
CN102237966B CN201110192854.0A CN201110192854A CN102237966B CN 102237966 B CN102237966 B CN 102237966B CN 201110192854 A CN201110192854 A CN 201110192854A CN 102237966 B CN102237966 B CN 102237966B
Authority
CN
China
Prior art keywords
degree
decoding
packets
encoded packets
encoded
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110192854.0A
Other languages
English (en)
Other versions
CN102237966A (zh
Inventor
汪洋
张钦宇
王海莲
张继良
丁丽琴
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Graduate School Harbin Institute of Technology
Original Assignee
Shenzhen Graduate School Harbin Institute of Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Graduate School Harbin Institute of Technology filed Critical Shenzhen Graduate School Harbin Institute of Technology
Priority to CN201110192854.0A priority Critical patent/CN102237966B/zh
Publication of CN102237966A publication Critical patent/CN102237966A/zh
Application granted granted Critical
Publication of CN102237966B publication Critical patent/CN102237966B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于度2和高度编码包的喷泉码解码方法,采用传统解码与求解多度编码包相结合的方法,针对具有传输时延大、丢包率大、链路易断等特点的应用背景提出改进的喷泉编译码技术。相比传统喷泉码只有在出现度为1的编码符号后才能解码的方法,利用度2分类求解高度编码包的解码方案,提前了解码的时间,并且可以在传统译码出现死锁状态停止译码的情况下利用冗余信息进行再解码,而不需要接收更多的编码符号,提高了译码的效率。

Description

基于度2和高度编码包的喷泉码解码方法
技术领域
本发明涉及一种喷泉码解码方法,尤其涉及一种在具有传输时延大、丢包率大、链路易断等特点的应用背景下的喷泉码解码方法。
背景技术
标准的文件传输协议中,将一个文件简单的分成k个等大小的数据包,然后重复发送每一个数据包,知道接收端成功接收每一个数据包,通常需要有一个反馈信道来通知发送端那些信息还收到,需要重发。在Luby提出的喷泉码中,每个发送的编码数据包随机地包含了全局信息,发送端只需发送数据包,而不需要知道那些数据包丢失,而收端只需收集齐一定数量的编码数据包,设为N,只需N略大于源文件的分类k,收端就能以一定的概率还原源文件。
最早提出的喷泉码只使用于删除信道,如网络通信中,经过众人的研究,有学者提出了喷泉码在非删除信道中的使用方式,使喷泉码的有用更广泛,如今喷泉码已被应用于数据广播、多元下载、分布式存储、协同通信等多个方面。Digital Fountain公司设计的系统Raptor码已经被3GPP MBMS标准采用。
随着喷泉码的发展,将喷泉码引入了具有传输时延大、丢包率大、链路易断等特点的应用背景,并提出将LDPC码与喷泉码级联的方案。在这些应用背景中使用喷泉码既不需要握手过程,也不需要反馈信道,简化了通信协议,只要保证收端接收到一定数量的编码数据包,就能高概率还原原始文件。然而现有喷泉码解码技术面临的问题是:由于链路易断,通常接收不到足够的编码包,从接收端的角度考虑,如果链路断开,又无法接收到足够冗余的数据包,这样就就无法完成译码,导致通信失败。
发明内容
本发明解决的技术问题是:提供一种喷泉码解码方法,克服现有喷泉码解码技术在具有传输时延大、丢包率大、链路易断等特点的应用环境中接收不到足够的编码包的技术问题。本发明的技术方案是:提供一种基于度2和度3编码包的喷泉码解码方法,包括如下步骤:本发明的技术方案是:提供一种基于度2和高度编码包的喷泉码解码方法,包括如下步骤:
步骤A:解码准备:初始化解码数据包的个数X1=0,接收喷泉码编码包,当接收的编码包大于需要解码的编码包数量时准备解码;
步骤B:解码度为1的编码包,即:查找度为1的编码包,根据异或运算还原度为1的编码包;
步骤C:解码度为2的编码包,即:对于度为2的编码包,根据编码包的位数,假设编码包中的任意一个原始数据包的每一位假设为1或0,解出度为2的编码包中的原始数据包,对求解的原始数据包归为一类;
步骤D:解码度为大于2的编码包,即:对于含有偶数个原始数据包在步骤C的分类中的度大于2的编码包,根据步骤C的结果解出编码包中每个分类中偶数个原始数据包的异或结果,然后根据这个解出的结果进行降度操作解码;
步骤E:循环解码,即:记录步骤B、步骤C、步骤D中解码数据包的数量X2,当X1不等于X2时,则令x1=x2,将解码后的数据包代入编码包,进行降度,对降度后的编码包重复步骤B、步骤C、步骤D的过程,反复更新x1,x2的值,直到x1=x2,译码结束。
本发明的进一步技术方案是:还包括匹配校正:对步骤C中求解的原始数据包与解码度为2的编码包中假设的值进行匹配校正,获得该分类中的所有正确的原始数据包。
本发明的进一步技术方案是:在步骤E中,将解码后的数据包代入编码包进行降度的过程为:将获解的原始数据包与其参与的编码包进行异或运算后,求解相关的原始数据包。
本发明的技术效果是:本发明一种基于度2和高度编码包的喷泉码解码方法,采用传统解码与求解多度编码包相结合的方法,针对具有传输时延大、丢包率大、链路易断等特点的应用环境,提出改进的喷泉编译码技术,相比传统喷泉码只有在出现度为1的编码符号后才能解码的方法,利用度2分类求解高度编码包的解码方案,提前了解码的时间,并且可以在传统译码出现死锁状态停止译码的情况下利用冗余信息进行再解码,而不需要接收更多的编码符号,提高了译码的效率。
附图说明
图1为本发明的译码过程图。
图2为本发明的流程图。
具体实施方式
下面结合具体实施例,对本发明技术方案进一步说明。
本发明的具体实施方式是:对于喷泉码,假设要发送的文件大小为lkbit,将该文件分为k个数据包s=s1,s2,…,sK,其中每个si,i=1,2,…,K是数据传输的最小单位,这里为lbit。喷泉码并不直接发送s,而是选取其中的d(d≤K)个作为邻居做异或运算后发送,相当于每次发送一个关于s的线性方程,发送N次后相当于发送了一个线性方程组:
t 1 t 2 . . . t N = G 11 G 21 . . . G N 1 G 12 G 22 . . . G N 2 . . . . . . . . . . . . G 1 K G 2 K . . . G NK T s 1 s 2 . . . s K
由矩阵的相关知识可知,要想正确获知每个s=s1,s2,…,sK,只需矩阵G的秩为K,设N为接收的信息。
当N<K时,矩阵G的秩r(G)≤N<K,不能还原原信息S。
当N=K时,若矩阵G可逆,则可还原原信息,但K阶矩阵可逆的概率为(1-2-K)×(1-2-(K-1))×…×(1-1/8)×(1-1/4)×(1-1/2),当K>10时,上式约等于0.289,还原原信息的概率较小。
当N>K时,设E=N-K,则不能还原出原信息的上限概率δ(E)为
δ(E)≤2-E
即原信息被还原的概率随着多余的E的增加而递加。
喷泉码的优点在于无论在传输过程中丢失多少的信息,只要接收端收到N>K条信息就能以一定的概率恢复原信息而不用考虑收到的是那条信息,或丢失了那些信息。
随机线性喷泉码中,随机地选取d(d≤K)个Si做异或运算进行传输。随着K和N的增加,它的性能能任意接近香农极限,缺点是编译码的运算量大,分别为O(K2)和O(K3).
喷泉码通过限制度(选取的邻居的个数d)的分布实现稀疏矩阵的编码,其中定义了理想孤波分布为:
p ( i ) = 1 / K , i = 1 1 / ( i 2 - 1 ) , i = 2 , . . . , K
Robust孤波分布为:
R = c &CenterDot; ln ( k / &delta; ) &CenterDot; k
&tau; ( i ) = R iK i = 1 . . . K / R - 1 R ln R / &delta; K i = K / R 0 i = K / R + 1 . . . K
&mu; ( i ) = p ( i ) + &tau; ( i ) &Sigma; i = 1 K [ p ( i ) + &tau; ( i ) ]
其中:i为选取的度的值,δ为可接受的无法还原原信息的概率,c为适当选取的常数。p(i)为理想孤波分布结果,μ(i)为Robust孤波分布结果。
如图2所示,本发明的具体实施方式是:提供一种喷泉码解码方法,包括如下步骤:
步骤A:解码准备,即:初始化解码数据包的个数X1=0,接收喷泉码编码包,当接收的编码包大于需要解码的编码包数量时准备解码。
步骤B:解码度为1的编码包,即:查找度为1的编码包,根据异或运算还原度为1的编码包。对于度为1的编码包,采用传统的方法。传统的喷泉码译码,从度1开始译码。过程如下图1所示:第一步,即:找出一个度为1的编码包tn,这个编码包有如下的特性,即它只与一个原始数据包sk相关,也就是说相应的编码方程只含有一个未知数,编码方程为sk=tn,或者说,tn就是sk的简单复制。令sk=tn,即可以得到sk,然后再将已知的sk加到所有包含sk的编码包t′n中,也就是说对于有sk参与的编码方程中,所有的编码结果加上sk,使得t′n=t′n+sk,例如:将s2加到所有s2参与的编码包中,也就是将s2加到t4中,使得t4’=t4+s2;最后,如图1所示,除去所有的编码包与sk的连接关系,也就是说使编码方程中sk的系数都变为0。其中,上述文件中的“+”表示的都是异或运算。第二步,重复第一步的操作,直到所有的sk都被还原。
步骤C:解码度为2的编码包,即:对于度为2的编码包,根据编码包的位数,假设编码包中的任意一个原始数据包的每一位假设为1或0,解出度为2的编码包中的原始数据包;对求解的原始数据包归为一类;
对于度为2的编码包,以数据S=S1,S2,…,SK为例,其解码过程如下:
第一步:任选度为2的码字,这里不妨设其中一个码元为s1,另一个码元为s2,即s1+s2=t1=0。不妨假设s1=1,那么令s1与t1做异或运算得s2。即,s2=t1+s1=0+1=1这个假设是任意的,这可能与实际不符,但在后续的过程中,这个值的真伪并不影响之后的判断。上例是针对一维码元而言,对于多维码元,比如s1为二维码元,则可以假设为s1为11、10、01、00四种,然后令s1与t1做异或运算得s2,其它更多维数的,则依次类推。以下通过举例进行说明:选择与s1构成度2的所有码字,比如
s1+s2=t1
s1+s3=t2
s3+s4=t3
按照上述求解度为2的编码包的方法,可以得出在s1=1的假设下s2,s3,s4,…的值,s1=1,s2=1,s3=1,…将这些元素记为一类L1
第二步,依次选出与L1中元素构成度2的码元,判断新的度2方程中的值,并将他们纳入L1,作为L1的新的元素。比如s4与L1中的元素s3构成度2的编码方程s3+s4=t3=0,判断出s4=1,并将s4归入L1中,这样L1中的元素求解为s1=1,s2=1,s3=1,s4=1。由此,对于L1中的每个元素,本来是只与其中的几个元素有关构成度2的关系,现在使他们两两之间都可获得度2关系,通过上述运算还能够得到s1+s4=0,并且只要能获知L1中任一元素的值,就可解得L1中所有元素的值。
第三步:当完成第一步和第二步后,也就是穷举了与s1直接和间接相关的所有信息包后,我们再从剩下的元中重复选取新的元,按照上述步骤,形成新的类L2,L3,…直到考虑完所有的度2码字。
步骤D:解码度为大于2的编码包,即:对于含有偶数个原始数据包在步骤C的分类中的度大于2的编码包,根据步骤C的结果解出编码包中每个分类中偶数个原始数据包的异或结果,然后根据这个解出的结果进行降度操作解码。
具体过程如下举例说明:比如s1+s2+s3+s4+s5=0,而s1,s2属于同一类s3,s4属于同一类,2由度2的编码包的处理中,可以得到s1+s2,s3+s4的和,于是进而可得s5=0+s1+s2+s3+s4,可以获解s5的值。
本发明的优选实施方式是:还包括匹配校正:对步骤D中求解的原始数据包与解码度为2的编码包中假设的值进行匹配校正,获得该分类中的所有正确的原始数据包。
对于度为2的编码包的求解,由sk的正确值进行后续判断,如果sk属于某个类,不妨设sk∈Lk。由于前述得到了一个sk的假设值,如果这个假设的sk与正确的sk值是一致的,则Lk中所有元素的值都正确了;如果不一致,则将假设的Lk中的所有元素的值反转,即为它们的正确值。
以下举例说明:上例中,相应的sk即为s4,由之前的分类看到s4∈L1,并且已经有假设得到一个s4的假设值,假设s4=1,对比我们由第二步中得到的s4的真实值,s4=0,我们可以退出之前的假设s1=1是错误的,反转L1中每个元的值,也就是将s1=1,s2=1,s3=1,s4=1反转得到每个元素的正确值即s1=0,s2=0,s3=0,s4=0。
由于在高度编码包的译码过程中,不同的高度编码包所解出的第三个信息包可能属于同一分组,那么经过第一个高度编码包的处理就已经还原了该分组中的所有原始信息包,所以第二个高度编码包的对分组的匹配校正的过程就是重复的,可以省略。因此补充一个步骤:在每一个高度编码包的解码校正后,删除获解信息包所处的分组,以避免重复。
步骤E:循环解码,即:记录步骤B、步骤C、步骤D中解码数据包的数量X2,当X1不等于X2时,表示有新的信息包获解,则令x1=x2,将解码后的数据包代入编码包,进行降度,对降度后的编码包重复步骤B、步骤C、步骤D的过程,反复更新x1,x2的值,直到x1=x2,表示无法解出新的信息包,译码结束。
本发明的具体实施过程为:记录步骤B、步骤D中解码数据包的数量X2,当X1不等于X2时,则令X1=X2,将解码后的数据包代入编码包,进行降度,对降度后的编码包重复步骤B、步骤C、步骤D的过程。即,将已知的sk加到所有包含sk的编码包t'n中,使t'n=t'n+sk。这样处理后可以得到了许多度为1的码字,并且降低了编码包的度,然后再按照传统的解码方法则可进行译码,重复上述操作,直到求解出所有能解码的编码包。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。

Claims (3)

1.一种基于度2和高度编码包的喷泉码解码方法,包括如下步骤:
步骤A:解码准备:初始化解码数据包的个数X1=0,接收喷泉码编码包,当接收的编码包大于需要解码的编码包数量时准备解码;
步骤B:解码度为1的编码包,即:查找度为1的编码包,根据异或运算还原度为1的编码包; 
步骤C:解码度为2的编码包,即:对于度为2的编码包,根据编码包的位数,假设编码包中的任意一个原始数据包的每一位假设为1或0,解出度为2的编码包中的原始数据包,对求解的原始数据包归为一类; 
步骤D:解码度为大于2的编码包,即:对于含有偶数个原始数据包在步骤C的分类中的度大于2的编码包,根据步骤C的结果解出编码包中每个分类中偶数个原始数据包的异或结果,然后根据这个解出的结果进行降度操作解码;
步骤E:循环解码,即:记录步骤B、步骤C、步骤D中解码数据包的数量X2,当X1不等于X2时,则令X1=X2,将解码后的原始数据包代入编码包,进行降度,对降度后的编码包重复步骤B、步骤C、步骤D的过程,反复更新X1,X2的值,直到X1=X2,译码结束。
2.根据权利要求1所述基于度2和高度编码包的喷泉码解码方法,其特征在于,还包括匹配校正:对步骤D中求解的原始数据包与解码度为2的编码包中假设的值进行匹配校正,获得该分类中的所有正确的原始数据包。
3.根据权利要求1所述基于度2和高度编码包的喷泉码解码方法,其特征在于,在步骤E中,将解码后的原始数据包代入编码包进行降度的过程为:将获解的原始数据包与其参与的编码包进行异或运算后,求解相关的原始数据包。
CN201110192854.0A 2011-07-11 2011-07-11 基于度2和高度编码包的喷泉码解码方法 Active CN102237966B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110192854.0A CN102237966B (zh) 2011-07-11 2011-07-11 基于度2和高度编码包的喷泉码解码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110192854.0A CN102237966B (zh) 2011-07-11 2011-07-11 基于度2和高度编码包的喷泉码解码方法

Publications (2)

Publication Number Publication Date
CN102237966A CN102237966A (zh) 2011-11-09
CN102237966B true CN102237966B (zh) 2014-07-09

Family

ID=44888231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110192854.0A Active CN102237966B (zh) 2011-07-11 2011-07-11 基于度2和高度编码包的喷泉码解码方法

Country Status (1)

Country Link
CN (1) CN102237966B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102638332A (zh) * 2012-03-22 2012-08-15 西安电子科技大学 一种改进的lt译码方法
US9369920B2 (en) 2013-06-12 2016-06-14 Qualcomm Incorporated Degree reduction and degree-constrained combining for relaying a fountain code
CN107347000B (zh) * 2017-07-27 2020-05-26 哈尔滨工业大学 一种基于arm的数字喷泉码的编译码实现方法
CN107947804A (zh) * 2017-12-14 2018-04-20 厦门理工学院 一种lt码的译码方法及其装置
CN109933033B (zh) * 2019-04-23 2022-04-19 深圳镭霆激光科技有限公司 Pcb全程追溯的压合工艺段追溯方法
CN110535562B (zh) * 2019-08-22 2020-08-04 青海师范大学 一种过滤式降维译码方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252413A (zh) * 2008-03-21 2008-08-27 哈尔滨工业大学深圳研究生院 去除喷泉码生成矩阵中长度为4的小环的方法及其应用
CN101814923B (zh) * 2009-02-20 2013-09-11 华为技术有限公司 一种喷泉码解码方法及装置
CN101826940A (zh) * 2010-04-19 2010-09-08 中兴通讯股份有限公司 一种对喷泉码中预译码集优化的方法和系统

Also Published As

Publication number Publication date
CN102237966A (zh) 2011-11-09

Similar Documents

Publication Publication Date Title
CN102237966B (zh) 基于度2和高度编码包的喷泉码解码方法
US9454552B2 (en) Entropy coding and decoding using polar codes
US6606037B2 (en) Qualitative modeling and compression of request sequences in ARQ protocols
US10476528B2 (en) Data packet processing method and device
KR100942211B1 (ko) 부호화 장치, 복호 장치, 부호화 프로그램을 기록한 기록매체, 복호 프로그램을 기록한 기록 매체, 데이터 전송시스템
KR100390731B1 (ko) 데이터 압축을 위한 개선된 실행 길이 인코딩 알고리즘을제공하기 위한 방법
Halloush et al. Network coding with multi-generation mixing: A generalized framework for practical network coding
CN102164026A (zh) 基于深空通信环境下的喷泉码编译方法
CN103957340A (zh) 基于彩色动态图像的数据传输系统
CN109525368A (zh) 基于线性网络编码的混合传输方法、电子设备和存储介质
WO2019001436A1 (zh) 一种Polar码的编码方法及装置
CN100508442C (zh) 一种编译码方法及编译码装置
KR20210102484A (ko) 데이터 처리 방법 및 디바이스
Rakhmanov et al. Compression of GNSS data with the aim of speeding up communication to autonomous vehicles
KR100943602B1 (ko) 통신 시스템에서 신호 수신 장치 및 방법
CN101540778A (zh) 一种数据传输的方法、装置和系统
CN103944676A (zh) 一种基于深空通信环境的lt码编译码方法
CN102255690A (zh) 基于度2和度3编码包的喷泉码解码方法
CN102130690A (zh) 一种喷泉码编码方法及装置
CN101645753B (zh) 一种无速率码的编译码方法
CN115811381B (zh) 网络通信方法、网络通信装置、电子设备及存储介质
CN102638332A (zh) 一种改进的lt译码方法
CN111490798A (zh) 译码的方法和译码装置
US8429138B2 (en) Method and apparatus for data exchange in a distributed system
US9059832B2 (en) Rank deficient decoding of linear network coding

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant