CN103250463B - 用于通信系统的子集编码 - Google Patents

用于通信系统的子集编码 Download PDF

Info

Publication number
CN103250463B
CN103250463B CN201180055775.3A CN201180055775A CN103250463B CN 103250463 B CN103250463 B CN 103250463B CN 201180055775 A CN201180055775 A CN 201180055775A CN 103250463 B CN103250463 B CN 103250463B
Authority
CN
China
Prior art keywords
bag
batch
node
data file
autonomous
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
CN201180055775.3A
Other languages
English (en)
Other versions
CN103250463A (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.)
Chinese University of Hong Kong CUHK
Original Assignee
Chinese University of Hong Kong CUHK
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 Chinese University of Hong Kong CUHK filed Critical Chinese University of Hong Kong CUHK
Publication of CN103250463A publication Critical patent/CN103250463A/zh
Application granted granted Critical
Publication of CN103250463B publication Critical patent/CN103250463B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3761Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using code combining, i.e. using combining of codeword portions which may have been transmitted separately, e.g. Digital Fountain codes, Raptor codes or Luby Transform [LT] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2927Decoding strategies
    • H03M13/293Decoding strategies with erasure setting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1191Codes on graphs other than LDPC codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0097Relays

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于数据编码和关联的解码的方法是基于批的概念,批允许从源节点将大型数据文件通过可采用网络编码的通信网络传输至多个目的节点,其中在网络设置中采用了稀疏矩阵码。批是使用稀疏矩阵编码器通过输入包的子集生成的一组包。稀疏矩阵编码器可重复地访问以生成多个批。批通常是彼此独立的。在通信网络的传输过程中,可对属于同一批的包应用网络编码从而改进组播吞吐量。解码器使用接收到的批恢复输入包的全部或至少固定的一部分。可在应用稀疏矩阵码前使用预编码对输入包进行预编码。然后可通过对预编码进一步解码来重新构造数据文件。

Description

用于通信系统的子集编码
发明背景
本发明涉及大量相关数字数据的可靠通信,更具体地涉及大型数据文件的可靠的点到多点通信,其中文件为数字数据集合。
在通信网络上将大型数字数据文件从源节点传输至多个确认正确接收的目的节点的过程中存在固有的问题。在本文中出于示例的目的描述了单个源节点实施方式,但是允许使用多个源节点来发送单个源文件。文件可以是操作系统更新、高清晰视频或由环境传感器收集的数据。存在考虑以下性能度量的情况下用于这些任务的有效传输方案的需求:
1.编码/解码复杂度:希望复杂度与包的总数量成线性关系;
2.网络传输延迟:为了允许方案支持时间敏感服务,较小的传输延迟是必要的;
3.传输吞吐量:对于组播通信模式,方案支持目标组播容量;
4.中间网络节点的成本:应该最小化中间节点(参与传输但不需要文件的节点)的计算和存储要求;
5.传输协议开销:协议开销应该最小。
通信网络可以是有线网络、无线网络或者基于有线和无线网络的组合构建的覆盖网络。先决条件是,网络传输是被分组化,即,全部传输的数据被分组成适当大小的块,称为包。网络节点可通过无线或有线链路将包传输至其相邻的节点。然而,已知的是,网络链路不是完美的;因为包可能在传输过程中被损坏或擦除,或者中间节点在传输过程中可能故障。损坏的包可被删除并被处理成擦除(erasure)。(在该模式下,仅考虑网络链路上的擦除。)
网络编码是已知的网络传输技术,其通常改进网络吞吐量并且对丢包有容错性。具体地,线性网络编码是实现组播网络容量的已知有效的方式。路由是线性网络编码的特殊情况。替代仅进行路由,线性网络编码允许中间网络节点发送通过它们所接收的包的线性组合生成的新包。中间网络节点中的这种操作被称为网络节点的重新编码。然而,当网络的线性组合系数所确定的转换矩阵的大小增加时,编码、重新编码和解码的复杂度也快速地增加。
使用网络编码的许多文件分布方案是本领域已知的。已知方案的一个共同特性是使用组块(chunk)(也被称为类(class)或代(generation))的概念,其中待传输的数据文件被划分成相同大小的包,并且所有包被分组到相同大小的若干组块中,这些组块可以是不相交的或者重叠的。在传输过程中,对同一组块中的包应用网络编码。在组块的大小较小的情况下,这些方案具有较低的编码/解码复杂度。但是它们均具有各种缺陷并不能满足以上定义的性能度量的要求。
基于组块的方案的一个问题在于如何调度这些组块的传输。简单的解决方案是一个一个地传输组块,其中源节点保持传输一个组块的多个编码的包。目的节点收集包直至其可正确地解码当前的组块。然后,目的节点将控制消息发送至源节点以指示成功的解码。然而,在该方案中,控制消息开销可能较大,并且在对等应用中,消息必须被发送至全部相关的网络节点。而且,该方案不可扩展成多个目的节点,因为组块的传输直到全部目的节点解码了当前组块后才会停止。
为了解决顺序调度的问题,可以循环的次序或随机地调度组块。然而,这两种方法都带来了新的问题。首先,当存在仅一小部分的组块未被解码时,两种方法都不是有效的。其次,需要中间节点缓存全部组块。考虑预编码来解决第一个问题,但是对于实际的组块大小而言,该方法不能很好的工作。
重叠的组块可改进用于实际组块大小的随机调度的吞吐量。直觉地,重叠的组块的优势是使用解码的组块来帮助其他组块的解码。已知的重叠组块的设计是启发式的,并且性能仅可通过仿真来估算。
前景良好但是迄今为止没有完全开发的一类码是喷泉码。喷泉码是以低编码/解码复杂度通过删除信道传输消息的一类码。删除信道是仅具有一个链路的简单网络。其包括LT码和Raptor码,LT码是由M.Luby为删除信道引入的具有低编码/解码复杂度的一类码,Raptor码通过组合LT码的变型与一些预编码来实现甚至更低的编码/解码复杂度。
LT码的编码包含以下过程:首先,采样预设计的度分布并且获得整数值d。然后随机地选择d个不同的输入包并使用位或相加以得到输出包。通过删除信道传输输出包,并且传输的输出包的数量可以是无限的。
LT解码器可使用任意n个输出包来恢复原始的K个输入包,其中n为大于K的某个数。解码过程可通过LT码的解码图(被称为Tanner图)来描述。解码图是在一侧具有K个节点而在另一侧具有n个节点的二分图,称为变量节点和校验节点,分别对应于输入包和输出包。如果输入包对输出包的值有贡献,则输入包与输出包之间存在边。在解码算法的每个步骤中,解码器识别度为1的输出包。度为1的输出包的值正是输入包中其唯一相邻包的值。一旦输入包被恢复,就将其值从全部相邻的输出包中减去,并将该输入包和将其全部相关的边从图中去除。
LT码的度分布需要小心地设计以使得LT码具有低编码/解码复杂度并且以上的解码算法以高概率实现。由M.Luby提出的LT码需要由LT解码器恢复全部输入包。Raptor码放松了此条件,即仅需要恢复恒定的一部分输入包。其余输入包使用预编码恢复。
然而,喷泉码并未被设计用于一般的通信网络;在这些网络中简单地应用喷泉码可能不是最优的。对于一般的网络,一个链路一个链路地应用喷泉码和网络编码可实现最大的吞吐量。但是该方案具有两个缺陷:首先,需要在每个中间节点处进行LT码的解码和重新编码,因此复杂度不低。其次,在每个中间节点处发生与文件大小成比例的解码延迟,因此端对端解码延迟随网络的大小增长。对于具有树结构的网络,可通过以堆叠的方式应用喷泉码来减少延迟:中间节点缓存其接收的包并使用喷泉码重新编码包,目的节点解码多层喷泉码。该方法仅将全部解码移至目的节点。
在采用线性网络编码的网络中难以应用喷泉码是因为网络编码改变了包的度,从而导致有效的置信传播解码的失败。已针对特定的通信场景开发了启发式算法,使得在目的节点接收到的被编码的包组近似于LT码。但是通常,难以确保接收到的包的度遵循使用分布编码的特定分布。因此,期望一种在中间节点处不需要过多计算和存储并且可用于在采用线性网络编码的网络中有效地分布文件的文件传输方案。
以下专利在本领域中备受关注:第7,068,729号、第6,373,406号、第6,307,487号美国专利。
以下参考文献提供本发明的背景信息:
S.-Y.R.Li,R.W.Yeung和N.Cai的“Linearnetworkcoding(线性网络编码)”,IEEETrans.Inform.Theory,第49卷,第2期,第371-381页,2003年2月;
P.Maymounkov,N.J.A.Harvey和D.S.Lun的“Methodsforefficientnetworkcoding(有效网络编码的方法)”,Proc.AllertonConf.Comm.,Control,andComputing,2006年9月;
T.Ho,B.Leong,M.Medard,R.Koetter,Y.Chang和M.Effros的“Thebenefitsofcodingoverroutinginarandomizedsetting(在随机化设置中基于路由编码的益处)”,Proc.IEEEISIT’03,2003年6月;
D.S.Lun,M.Medard,R.Koetter和M.Effros的“Oncodingforreliablecommunicationoverpacketnetworks(分组网络上用于可靠通信的编码)”,PhysicalCommunication,第1卷,第1期,第3-20页,2008;D.Silva,W.Zeng和F.R.Kschischang的“Sparsenetworkcodingwithoverlappingclasses(具有重叠类的稀疏网络)”,CoRR,vol.abs/0905.2796,2009;
A.Heidarzadeh和A.H.Banihashemi的“Overlappedchunkednetworkcoding(重叠分块网络编码)”,CoRR,vol.abs/0908.3234,2009;
R.Ahjswede,N.Cai,S.-Y.R.Li和R.W.Yeung的“Networkinformationflow(网络信息流)”,IEEETrans.Inform.Theory,第46卷,第4期,第1204-1216页,2000年7月;
R.Koetter和M.Medard的“Analgebraicapproachtonetworkcoding(网络编码的代数方法)”IEEE/ACMTrans.Networking,第11卷,第5期,第782-795页,2003年10月;
P.A.Chou,Y.Wu和K.Jain的“Practicalnetworkcoding(实际网络编码)”,Proc.AllertonConf.Comm,Control,andComputing,2003年10月;
M.Luby的“LTCodes(LT码)”,Proc.43rdAnn.IEEESymp.onFoundationsofComputerScience,2002年11月,第271-282页;
A.Shokrollahi的“RaptorCodes(Raptor码)”,IEEETrans.Inform.Theory,第52卷,第6期,第2551-2567页,2006;
R.Gummadi和R.S.Sreenivas的“Relayingafountaincodeacrossmultiplenodes(在多个节点上中继喷泉码)”,Proc.IEEEInformationTheoryWorkhop,2008,ITW’08,2008,第149-153页;
M.-L.Champel,K.Huguenin,A.-M.Kermarrec和N.L.Scouarnec的“LTnetworkcodes(LT网络码)”,Techreport,INRIA,2009。
发明内容
根据本发明,基于批概念提供了用于数据编码和关联解码的方法和系统,其中批允许从源节点将大型数据文件通过可采用网络编码的通信网络传输至多个目的节点。在特定的实施方式中,批包含M个编码的包,其中M>1。(当M=1时,本发明的码退化为LT/Raptor码)。源节点通过以下步骤使用稀疏矩阵码生成批:
1.通过采样度分布获得度d;
2.选取d个不同的输入包;
3.使用当前的d个包和生成矩阵生成编码的包的批。
编码器可生成一个或多个批,一个或多个批通常是彼此独立的。在特定的实施方式中,源节点仅一个接一个地调度批的传输。在发送批的M个包后,源节点生成和发送另一批。
批的主要特征在于,在网络中传输批的过程中,允许包的各种损坏和在中间节点处的各种操作,只要通过线性函数给出了网络的整体端对端转换。这种包校正的实施例是包丢失或擦除。这种中间节点操作的实施例为路由,更具体地为线性网络编码。
在特定的实施方式中,中间节点将属于共同批的接收的(编码的)包重新编码成用于同一批的新包,然后在其外向链路上传输这些新包。这是在网络中采用线性网络编码的场景。
在另一特定的实施方式中,提供了子集编码方法,其中,将待传输的文件在大小为q的有限域上分成相等长度的包。根据本发明的目的节点接收包,其中,接收到每个的包属于一个批。目的节点使用解码器,该解码器使用稀疏矩阵码的置信传播解码算法对接收到的批解码。解码器需要至少恢复全部输入包的预定部分。
在另一特定的实施方式中,首先在源节点处通过预编码对输入包进行编码以引入一些冗余。然后在源节点处使用稀疏矩阵码对预编码的输入包进行编码并发送。
目的节点使用解码器,该解码器使用稀疏矩阵码的置信传播解码算法对接收到的批解码。解码器需要恢复全部输入包的预定部分。通过预编码恢复原始的输入包。
该编码和解码技术的优势包括:
1.低编码/解码复杂度;
2.最小的网络传输延迟;
3.得益于网络编码的高传输吞吐量;
4.中间网络节点在计算和存储方面的低成本;以及
5.简单的传输协议。
该编码方案提供了各种情况的解决方案。该方案适用于在无线网络中实现。这些无线网络的示例包括无线传感器网络和蜂窝电话的自组织网络。该方法可用于分布式存储系统,其中每个批可视为原始文件的存储块。批可存储在多个网络位置的存储装置中。为了恢复文件,恢复某一数量的批。该编码方法还可在对等文件分布系统中实现。能够将该方法应用于视频/音频分流和广播系统,尽管本文公开的特定码没有为这些系统特别优化。
相比之下,之前用于类似问题的编码方案需要中间网络节点具有与整个文件相等的缓存大小,或者依赖于大的控制消息以协调传输。比较而言,该方案仅需要中间节点处的较小缓存尺寸以及最小化的控制消息。
结合附图通过以下的详细描述将更好地理解本发明。
附图说明
图1是根据本发明的采用编码和解码的系统的框图;
图2是示出根据本发明的编码过程的二分Tanner图;
图3是示出根据本发明的解码过程的二分Tanner图;
图4是示出编码方案图,在编码方案中输入包被附加有系统预编码的冗余包;
图5是恢复一组输入包的92%所需的批的数量的直方图;
图6是示出根据所接收的批的数量解码的输入包的数量的视图;
图7是根据本发明在源节点处进行的操作的流程图;
图8是根据本发明在中间节点的一个实施方式中进行操作的流程图;
图9是根据本发明在源节点的特定实施方式中进行操作的流程图;
图10是根据本发明在目的节点处进行操作的流程图;
图11是根据本发明的一个实施方式的稀疏矩阵码编码器的框图;
图12是根据本发明的一个实施方式的稀疏矩阵码解码器的操作的流程图;
图13是根据本发明的一个实施方式在源节点处进行的操作的流程图;
图14是根据本发明的另一实施方式在源节点处进行的操作的流程图;
图15是根据本发明的一个实施方式在中间节点处进行的操作的流程图;
图16是根据本发明的一个实施方式在目的节点处进行的操作的流程图;
图17是根据本发明的另一实施方式在目的节点处进行的操作的流程图。
具体实施方式
图1是示出采用根据本发明的方法的通信系统10的元素的框图。源节点12包括联接至数据源16的编码器14,数据源16向编码器14提供作为输入的多个大型数据文件,例如大型数据文件18。编码器14可包括预编码器20。此外还存在稀疏矩阵编码器22。编码器14的输出联接至发送器26,发送器26接着联接至链路28,批(batch)21、23、25在链路28上传输。链路28联接至通常在网或云36内的一个或多个中间节点30、32、34。对编码器14的输入是与大型数据文件18对应的一系列源包15、17、19。编码器14向发送器26的输出是一组编码的输出包,在本文中为自主的批21、23、25。发送器26将这些批以适于网络的形式发送。这些批通过中间节点例如30传送至目的节点53,中间节点不对文件或任何批进行解码但它们可应用网络编码以产生批40、42、44。从目的节点53的输入,接收器52和解码器54可恢复作为恢复后的包46、48、50的源大型数据文件18,恢复后的包46、48、50向存储单元56或其他使用装置提供输入。在下文中阐述根据本发明的用于编码和解码的技术。
稀疏矩阵码
根据本发明,为在文件分布问题中传输一个文件提出了方法和编码方案。该方案的核心成分为稀疏矩阵码。因此,关键组件为稀疏矩阵编码器22。
生成批
文件由K个不相交的包构成,每个包具有位于大小为q的有限域F中的T个符号。包长度T受到网络协议限制并且可为几千字节。这些包被表示成:
B=[b1,b2,...,bK]
其中,bi被称为输入包,为包含来自F的T个符号的列向量。
批为一组M个编码的包,M个编码的包通过使用这些输入包的同一子集的M种可能的不同线性组合而生成。批使用通过将批的M个包并置而形成的矩阵来表示。对于i=l,2,...,批Xi被生成为
Xi=BiGi
其中,Gi被称为第i个批的生成矩阵。下面描述关于Gi的设计的细节。Bi中的包被表示为第i个批的贡献者。
每个批在无需考虑其他批如何生成的情况下生成。根据本发明,Bi的形成依赖于度分布Ψ=(Ψ0,Ψ1,...,ΨK),如LT/Raptor码。然而,Ψ的设计不同于LT/Raptor码的度分布,并且在本文的别处讨论。为了生成第i个批,分布Ψ首先被采样以获得度di。然后,一致随机地选择di个输入包,并且通过将这些包并置形成Bi
生成矩阵的设计
设计生成矩阵的一种方法是简单地使用被预先设计且由源节点和目的节点共享的Gi。另一方法是由源节点随机生成Gi。没有必要将Gi传送至目的节点,因为目的节点仅需要Gi和第i批的转换矩阵的乘积来解码。目的节点需要度di、贡献者的指标和生成矩阵Gi用于解码。在现有技术中存在可实现该目的的多种方法,例如,为LT码和Raptor码引入的方法。一个优选的方法是在源节点与目的节点之间共享伪随机生成器。源节点全部使用由某一种子初始化的伪随机生成器来生成度、贡献者的指标和生成矩阵。目的节点可使用由同一种子初始化的伪随机生成器来恢复该信息。
可通过二分Tanner图描述稀疏矩阵码的编码。与稀疏矩阵码关联的Tanner图是二分图。其具有K个与输入包对应的变量节点,和n个与批对应的校验节点。如果bi是批j的贡献者,校验节点j连接至变量节点i。在图2中,该图的最上面两层示出了编码过程。
n个批的编码复杂度为O(TnMΨavg),其中Ψavg=∑dd。如果Ψavg被选择为常数,则编码复杂度与n为线性关系。能够用不依赖与K的常数Ψavg设计Ψ。
批的发送
根据应用,存在许多选择来调度批的发送。例如,可顺次地发送批。为了发送批,源节点发送批中的M个包。在发送批之后,源节点可生成和发送另一批。因为对整个数据集进行确认,所以无需对每个批进行单独的确认。
对网络仅有的要求在于,通过线性函数给出网络针对每个批的整体端到端转换。中间节点可应用线性网络编码。中间节点使用线性组合将接收到的批的包编码成新的包,并在外向链路上传输这些新的包。这些新的包被视为处于同一批中。不同批中的包在网络中不混合。由于端到端网络转换保持线性,所以允许网络拓扑动态和丢包。
因此,通过第i批的接收到的包形成的矩阵为:
Yi=XiHi=BiGiHi
其中,Hi为由网络确定的第i批的转换矩阵。在Hi中,行数等于M,而列数可依赖于i。图2的底层中的节点对应于接收到的包。使用随机线性网络编码的典型方法,转换矩阵Hi可从编码的包的包头恢复。
解码
目的节点试图通过在知晓GiHi的情况下使用线性方程系统Yi=BiGiHi对输入包进行解码。如果GiHi具有秩di,第i批是可解码的。假设第i批是可解码的。然后,可通过求解线性方程系统Yi=BiGiHi来恢复Bi中的包,该线性方程必须具有唯一解。在对第i个批解码之后,Bi中的di个包被恢复。然后,将这些被解码的输入包的值代入与未被解码的批关联的线性方程系统中。考虑到bk处于Bi中并且被恢复。如果bk也包含在第j个批中,其中j不等于i,则减少第j个批的度,移除GjHi中与bk对应的行并且移除Yi中bk的贡献。
解码过程可在图3中使用二分图更好地描述,除了与每个校验节点i关联的是线性方程系统Yi=BiGiHi之外,图3与编码图相同。在解码图中,等同于首先移除第i个校验节点、其相邻的变量节点和相应的边,然后,对于每个移除的变量节点,更新其相邻校验节点的关联的线性方程系统。在新图上重复该解码代入过程,直至没有更多的校验节点可解码。当不存在更多的可解码的批时,目的节点等待/请求新的批并继续对新批的可解码性的校验。
这种解码具有复杂度O(nΣdd3Ψd+TnΣdd2Ψd)其中n为解码图中校验节点的数量。
使用稀疏矩阵码的传输方案
根据本发明,首先使用传统纠删码(预编码)任选地对输入包进行编码,然后对预编码的输入包应用适当的稀疏矩阵码。在解码部分描述的置信传播解码必定恢复大部分的(预编码的)输入包。(可通过预编码恢复原始输入包。)如Raptor码一样使用预编码,因此引用别处这种预编码的讨论。然而,图4示出了这种编码方案,其中,在系统预编码的情况下输入包被加上冗余包。适当的稀疏矩阵码被用于从预编码的输入包生成输出包。
度分布
度分布Ψ必须确保:i)以高概率成功地进行解码;ii)编码和解码复杂度低,以及iii)编码率大。以下是在生成矩阵被随机选择并且在H的同一分布下独立地生成用于批的转换矩阵时如何找到期望的度分布的实施例。事实上,也同样进行许多度分布,因为度分布的小变化可能会导致性能的小变化。
将Gd表示成随机矩阵,其具有d行、M列和在具有q个元素的有限域上独立均匀地分布的分量。具有度d的批的生成矩阵仅为Gd的实施例。假设hd,r为具有秩r的GdH的概率。可通过被假设为已知的转换矩阵的秩分布来确定hd,r
假设
R ~ ( x ) = Σ r = 1 M 1 - q - 1 1 - q - r - 1 h r + 1 , r Σ d = r + 1 D d Ψ d I d - r , r ( x ) + Σ r = 1 M r Ψ r h r , r ,
其中
I a , b ( x ) = Σ j = a a + b - l a + b - l j x j ( l - x ) a + b - l - j
被称为规则化不完全β函数。以下的优化问题产生期望的度分布:
maxθ
s.t. R ~ ( x ) + &theta; ln ( 1 - x ) &GreaterEqual; g ( x ) , 0<x<(1-δ)
Ψd≥0,d=1,…,D
&Sigma; d &Psi; d = 1 ,
其中,δ>0为控制输入包的可由上面的解码算法解码的部分的参数,g(x)为编码参数的某一函数。例如,当K小时,对于某一常数c,取g(x)=c/K,或者当K大时,取g(x)=0。在优化问题中,θ为稀疏矩阵码的设计编码率,D为最大的度。将D设置为大于或等于M/δ的最小整数。该优化可使用通过考虑x的离散值进行线性编程来适当地解决。对于多个目的节点,可通过使全部目的节点的最小设计编码率最大化而类似地应用以上设计原理。
考虑网络具有顺次链接在一起的三个节点s、a和t的实施例,与图1中通过中间节点从源节点到目的节点的单一路径非常类似。该网络具有三个节点:源节点s、中继节点a和汇聚节点t。数据从s经由a被发送至t。假设链路每个单位时间传输一个包,并且两个链路上的丢包率均为0.1。图5和图6示出了在这种网络中稀疏矩阵码的实际性能。对于q=8和M=16,该网络的最大可实现率为0.8091。
在图7至图10中示出了根据本发明的具体方法。参见图7,示出了源节点处采用的方法。首先或初始的步骤是接收源包的大型数据文件(步骤A),然后对源包应用稀疏矩阵编码以生成自主批(步骤B),然后通过一个或多个中间节点以网络可兼容形式将自主批发送到目的节点(步骤C)。在接收节点处,接收到自主批的表示,并将自主批的表示解码成各表示,即,再生源包(步骤D)。目的节点无需为每个恢复的批发送确认。子集编码的一个优点是可消除这种反馈。仅在整个文件或文件的预定部分被恢复时才可能需要确认。
图8描绘了中间节点的具体实施方式处的处理。中间节点将自主批的包重新编码成在本文中所称的“新包”(步骤F)。只要接收到不属于当前自主批的包,就清除本地缓存器,将新包中继或发送至目的节点(步骤G)。
图9反映了在源节点处进行的具体处理的细节。在源节点处,通过利用预编码对源包进行预编码引入冗余(步骤H)。然后为稀疏矩阵编码步骤(步骤I)。然后通过对度分布采样获得度(步骤J)。然后选择不同的预编码的包(步骤K)。然后从不同的包和生成矩阵生成编码的包的批(步骤L)。然后发送该批(步骤M)。
图10是目的节点处进行的操作的流程图。该节点接收已由源节点生成的或由中间节点重新编码的自主批(步骤N)。然后,使用置信传播解码算法仅对自主批中的预编码的包的一部分进行解码(步骤O)。然后,恢复其余的预编码包(步骤P),重新构造大型数据文件(步骤Q)。
图11是体现为如图1所示的根据本发明的装置的稀疏矩阵码编码器的框图。在包选择器接收例如来自预编码器的输入包。度生成器提供对包选择器和生成矩阵生成器的控制/选择,包选择器和生成矩阵生成器向矩阵乘法器提供输入,矩阵乘法器的输出为去往发送器(图1)的批。
图12是本发明的一个实施方式的稀疏矩阵码编码器54(图1)的流程图。首先测试从接收器52(图1)接收的批以了解其是否为可解码的,如果是,则将它们引导到线性方程解算器系统,以从批中提取数据。然后更新未被解码的批列表,对任何未解码的批重新测试可判断性,并重复进行该过程。
图13是根据本发明的一个实施方式的源节点12(图1)处进行的操作的流程图。将数据文件整理成包,然后根据本发明通过稀疏矩阵码生成自主批,在批中发送包。
图14是根据本发明的另一实施方式在源节点处进行的操作的流程图。在该实施方式中,如前所述在生成自主批前实现引入冗余的步骤。
图15是根据本发明的一个实施方式在中间节点处进行的操作的流程图。在接收到时将接收到的包整理到它们适当的批中,将包重新编码成包含同一批数据的“新的”包。然后发送新的包。
图16是根据本发明的一个实施方式在目的节点处进行的操作的流程图。在目的节点53(图1)接收到接收的包时根据之前识别的它们的批进行整理,然后使用稀疏矩阵解码器54(图1)进行解码,直至数据耗尽。一旦耗尽,随后进行大型数据文件的重新构造。
图17是根据本发明的另一实施方式在目的节点处进行的操作的流程图,除了在重新构造大型数据文件前对编码器进行预编码之外,该操作类似于图16的流程图的过程。
组播
稀疏矩阵码适用于组播,在组播中不只一个目的节点需要由源节点发送的文件。对于组播,度分布必须保证全部目的节点的成功解码。可如下通过将最小编码率最大化来获得最佳度分布:
max min i &le; k &theta; i
s.t. R ~ ( x : H i ) + &theta; i in ( 1 - x ) &GreaterEqual; 0 , i≤k,0<x≤1-η
Ψd≥0,d=1,…,D
&Sigma; d &Psi; d = 1 ,
其中,Hi为从源节点到第i个目的节点的转换矩阵。
多个源节点
考虑具有两个源节点和一个目的节点的网络。每个源节点具有待发送至目的节点的单个文件的副本。这两个源节点分配地使用稀疏矩阵码对文件进行编码,目的节点使用稀疏矩阵码解码对联合地从两个源节点接收的批进行解码。
在接收到的全部批中,假设λ部分由第一源节点发送,而1-λ=λ部分由第二源节点发送。假设Ψ(1)和Ψ(2)分别为用于第一节点和第二节点的稀疏矩阵码编码的度分布。可如下通过将编码率最大化来获得最佳度分布:
maxθ
s.t. &lambda; R &OverBar; ( x ; &Psi; ( 1 ) , H ( 1 ) ) + &lambda; &OverBar; R &OverBar; ( x ; &Psi; ( 2 ) , H ( 2 ) ) + &theta;in ( 1 - x ) &GreaterEqual; 0 , 0<x≤1-η
Ψd(i)≥0,d=l,…,D,i=1,2
&Sigma; d &Psi; d ( i ) = 1 i=1,2,
其中,H(i)为从第i个源节点到目的节点的转换矩阵。
以上优化问题的退化情况也可用于多种情景。为了对联合优化去耦,可通过将第i个源节点视为仅有的源节点来优化Ψ(i),i=1、2。当希望两个源节点使用同一度分布时,可在以上的优化中设置Ψ=Ψ(1)=Ψ(2)。
以上讨论还适用于多于两个源节点的情况。用于多个源节点的稀疏矩阵码可用于对等(P2P)文件分布和P2P分流。
已关于特定实施方式描述了本发明。其他实施方式将对本领域技术人员是显然的。因此,不试图限制本发明,除非所附的权利要求所指示的那样。

Claims (7)

1.一种用于发送大型数据文件的方法,包括:
在源节点的编码器装置处接收数据文件,每个数据文件包括大量源包;
在所述源节点处根据稀疏矩阵码对所述源包进行编码,以生成自主批中的输出包;以及
从所述源节点经由至少一个中间节点将所述自主批以网络可兼容形式发送至目的节点,以在所述目的节点处进行解码从而恢复每个所述数据文件,
其中,批包含至少两个编码的包,且由输入包的相同子集来对相同批中的包进行编码。
2.根据权利要求1所述的方法,还包括:
在所述中间节点处对接收到的且被编码的包进行重新编码,所述接收到的且被编码的包为所述自主批中的单独一个自主批的一部分,以形成所述单独一个自主批的新包;
在所述中间节点处接收到不属于所述单独一个自主批的被编码的包,于是
发送中间节点编码包,然后清除包含已被发送的包的缓存器。
3.根据权利要求1所述的方法,还包括:
在所述发送步骤前,将待发送的文件分割成相等长度的包。
4.一种用于将大型数据文件发送至多个目的节点的方法,包括:
在源节点处使用预编码对源包进行编码以引入冗余,从而获得预编码的输入包;
在所述源节点处通过以下步骤使用稀疏矩阵码对预编码的源包进行编码;
1)通过采样度分布获得度d;
2)选取d个不同的预编码的输入包;
3)使用当前的d个包和生成矩阵生成编码的包的批;然后
4)将包的当前批发送至目的节点;以及
在所述源节点处重复步骤1)至4)直至所述源节点从全部或部分目的节点接收到特定的反馈或者直至满足某一条件,
其中,批包含M个编码的包,其中M>1,且由输入包的相同子集来对相同批中的包进行编码。
5.一种用于处理电信网络中的包的方法,包括:
在目的节点处接收自主批的表示,所述自主批已被应用到大量源包的稀疏矩阵码编码,所述大量源包包括数据文件并且被预编码为形成自主包的输出包;
在所述目的节点处使用稀疏矩阵码的置信传播解码算法对接收到的自主批的表示进行解码,所述算法被操作为恢复所有预编码的源包的一部分;
在所述目的节点处恢复其余的预编码的源包;以及
从被恢复的包重新构造所述数据文件,
其中,批包含至少两个编码的包,且由输入包的相同子集来对相同批中的包进行编码。
6.一种用于发送和接收大型数据文件的系统,所述系统包括:
源节点,具有稀疏矩阵编码器,用于从多个大型数据文件生成自主批中的输出包;以及
目的节点,具有解码器,用于从接收的自主批的表示自主地重新构造每个大型数据文件,
所述源节点和所述目的节点通过网络中的至少一个中间节点通信,其中,所述中间节点不对所述自主批进行重新编码,
其中,批包含至少两个编码的包,且由输入包的相同子集来对相同批中的包进行编码。
7.一种用于发送和接收大型数据文件的系统,所述系统包括:
源节点,具有稀疏矩阵编码器,用于从多个大型数据文件生成自主批中的输出包;以及
目的节点,具有解码器,用于从接收的自主批的表示自主地重新构造每个大型数据文件,
所述源节点和所述目的节点通过网络中的至少一个中间节点通信,其中,所述中间节点被配置为对所述自主批进行重新编码,
其中,批包含至少两个编码的包,且由输入包的相同子集来对相同批中的包进行编码。
CN201180055775.3A 2010-11-23 2011-11-17 用于通信系统的子集编码 Active CN103250463B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US41665410P 2010-11-23 2010-11-23
US61/416,654 2010-11-23
US13/112,589 2011-05-20
US13/112,589 US8693501B2 (en) 2010-11-23 2011-05-20 Subset coding for communication systems
PCT/CN2011/082365 WO2012068969A1 (en) 2010-11-23 2011-11-17 Subset coding for communication systems

Publications (2)

Publication Number Publication Date
CN103250463A CN103250463A (zh) 2013-08-14
CN103250463B true CN103250463B (zh) 2016-05-25

Family

ID=46064333

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180055775.3A Active CN103250463B (zh) 2010-11-23 2011-11-17 用于通信系统的子集编码

Country Status (4)

Country Link
US (1) US8693501B2 (zh)
EP (1) EP2644004B1 (zh)
CN (1) CN103250463B (zh)
WO (1) WO2012068969A1 (zh)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101651683B1 (ko) * 2010-05-07 2016-08-29 삼성전자주식회사 통신 시스템에서의 채널 부호화 장치 및 방법
US8873674B2 (en) 2011-09-22 2014-10-28 Dali Systems Co. Ltd. System and method for increasing bandwidth for digital predistortion in multi-channel wideband communication systems
US9160687B2 (en) * 2012-02-15 2015-10-13 Massachusetts Institute Of Technology Method and apparatus for performing finite memory network coding in an arbitrary network
US8995464B2 (en) * 2012-05-18 2015-03-31 Chinese University Of Hong Kong Superposition coding for network communication
WO2014014761A1 (en) 2012-07-16 2014-01-23 Code On Network Coding, Llc Deterministic distributed network coding
TWI485992B (zh) * 2012-08-31 2015-05-21 Ind Tech Res Inst 猛禽碼之編碼加速裝置與方法
US8913689B2 (en) 2012-09-24 2014-12-16 Dali Systems Co. Ltd. Wide bandwidth digital predistortion system with reduced sampling rate
KR101420306B1 (ko) * 2012-10-09 2014-07-23 주식회사 시큐아이 패킷을 처리하는 방법 및 이를 위한 장치
WO2014144088A1 (en) * 2013-03-15 2014-09-18 Michelle Effros Method and apparatus for improving communication performance through network coding
US9369920B2 (en) * 2013-06-12 2016-06-14 Qualcomm Incorporated Degree reduction and degree-constrained combining for relaying a fountain code
CN103533055A (zh) * 2013-10-16 2014-01-22 南京大学镇江高新技术研究院 一种基于网络编码的低冗余云存储系统及其实现方法
CN103856560B (zh) * 2014-02-19 2017-03-15 东莞中山大学研究院 一种基于编码耦合的p2p流媒体调度系统及方法
CN103905152B (zh) * 2014-03-21 2017-06-23 华南理工大学 删除信道中采用跨层联合编码的有效吞吐量随机优化方法
CN103888225B (zh) * 2014-04-17 2017-05-31 淮海工学院 一种二进制删除信道下的喷泉码方法
KR102233371B1 (ko) * 2014-06-24 2021-03-29 삼성전자주식회사 멀티캐스트 네트워크에서의 릴레이 방법 및 장치
GB2527602A (en) * 2014-06-27 2015-12-30 Norwegian University Of Science And Technology Galois field coding techniques
US10116418B2 (en) 2014-08-08 2018-10-30 University Of Florida Research Foundation, Incorporated Joint fountain coding and network coding for loss-tolerant information spreading
CN104243098A (zh) * 2014-09-23 2014-12-24 中国人民解放军理工大学 一种基于并行批次网络编码的传输方法
US10530700B2 (en) 2015-07-07 2020-01-07 Strong Force Iot Portfolio 2016, Llc Message reordering timers
US9992126B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US9825733B1 (en) 2014-11-07 2017-11-21 Speedy Packets, Inc. Packet coding based network communication
US10999012B2 (en) 2014-11-07 2021-05-04 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US10320526B1 (en) 2014-11-07 2019-06-11 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US9992088B1 (en) 2014-11-07 2018-06-05 Speedy Packets, Inc. Packet coding based network communication
US9936052B2 (en) * 2015-11-04 2018-04-03 Motorola Mobility Llc Wireless ad hoc network assembly using network coding
US9967909B2 (en) 2015-11-04 2018-05-08 Motorola Mobility Llc Wireless ad hoc network assembly using network coding
US9942934B2 (en) 2015-11-04 2018-04-10 Motorola Mobility Llc Wireless ad hoc network assembly using network coding
US10237782B2 (en) 2015-12-30 2019-03-19 The Chinese University Of Hong Kong Hardware acceleration for batched sparse codes
WO2017161158A1 (en) * 2016-03-17 2017-09-21 University Of Florida Research Foundation, Incorporated Method for exploiting diversity with network coding
US10866584B2 (en) 2016-05-09 2020-12-15 Strong Force Iot Portfolio 2016, Llc Methods and systems for data processing in an industrial internet of things data collection environment with large data sets
CA3036163A1 (en) * 2018-03-13 2019-09-13 Queen's Unviversity At Kingston Fault-tolerant distributed digital storage
CN109347604B (zh) * 2018-10-26 2021-01-19 香港中文大学(深圳) 一种基于分批稀疏码的多跳网络通信方法和系统
CN109921880B (zh) * 2019-01-25 2020-10-23 北京航空航天大学 基于询问的目标定位方法、装置与电子设备
WO2020210779A2 (en) * 2019-04-12 2020-10-15 Futurewei Technologies, Inc. Coded data chunks for network qualitative services
US11108705B2 (en) * 2019-04-30 2021-08-31 Code On Network Coding, Llc Linear network coding with pre-determined coefficient generation through parameter initialization and reuse
CN111726635B (zh) * 2020-06-23 2021-08-17 电子科技大学 一种基于滑窗bats码的低时延图像渐进传输方法
CN114390565B (zh) * 2022-02-23 2023-07-18 重庆邮电大学 基于稀疏网络编码的密度优化的解码方法
CN116366074B (zh) * 2023-03-17 2024-02-09 武汉大学 基于二元扩域及提高满度比的lt码混合编解码方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667885A (zh) * 2009-09-29 2010-03-10 天津大学 Dtn或icn网络上利用网络编码技术减少冗余消息的方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US8189705B2 (en) 2004-11-12 2012-05-29 Intel Corporation Method and apparatus to perform equalization and decoding for a communication system
DE602005021807D1 (de) * 2005-12-22 2010-07-22 Microsoft Corp Optimierungen für Netzwerkkodierung und Netzwerkdekodierung
EP1986363A1 (en) 2007-04-25 2008-10-29 Alcatel Lucent Method, device and network element for decoding an information word from a coded word

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667885A (zh) * 2009-09-29 2010-03-10 天津大学 Dtn或icn网络上利用网络编码技术减少冗余消息的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Raptor Codes;Amin Shokrollahi等;《IEEE TRANSACTIONS ON INFORMATION THEORY》;20060630;第52卷(第6期);第2551页-第2567页,图1 *
基于网络编码的传感器网络多径路由协议研究;古力;《中国优秀硕士学位论文全文数据库》;20081115(第11期);第15-17页,第2.2.4节 *

Also Published As

Publication number Publication date
WO2012068969A1 (en) 2012-05-31
EP2644004A4 (en) 2015-03-25
EP2644004B1 (en) 2018-09-19
WO2012068969A9 (en) 2013-01-10
EP2644004A1 (en) 2013-10-02
CN103250463A (zh) 2013-08-14
US8693501B2 (en) 2014-04-08
US20120128009A1 (en) 2012-05-24

Similar Documents

Publication Publication Date Title
CN103250463B (zh) 用于通信系统的子集编码
CN101453297B (zh) 低密度生成矩阵码的编码方法和装置、及译码方法和装置
Silva et al. Sparse network coding with overlapping classes
US9236976B2 (en) Multi stage code generator and decoder for communication systems
CN101459430B (zh) 低密度生成矩阵码的编码方法及装置
KR20070008520A (ko) 파일 다운로드 및 스트리밍 시스템
Altman et al. Dynamic control of coding in delay tolerant networks
US9774381B2 (en) Transmitter, relay, receiver, and cooperative communication system using network compress-and-forward scheme
CN105471545A (zh) 一种数据包处理方法及装置
CN105553873B (zh) 用于处理电信系统中的数据以动态适于要发送的数据量的方法和系统
RU2461970C2 (ru) Способ и устройство для приема данных
CN101414833A (zh) 低密度生成矩阵码的编码方法及装置
CN101540778B (zh) 一种数据传输的方法、装置和系统
Yang et al. From LDPC to chunked network codes
Garrido et al. Role of intermediate nodes in sparse network coding: characterization and practical recoding
Li et al. Distributed-fountain network code (DFNC) for content delivery in vehicular networks
CN103812615A (zh) 分布式通信系统中卢比变换码的编码方法及中继通信方法
CN107615810A (zh) 用于在线网络代码的包头压缩系统和方法
Nie et al. A novel systematic raptor network coding scheme for Mars-to-Earth relay communications
CN107257244A (zh) 一种基于广播环境下的喷泉码编码方法
CN103532666B (zh) 提高分布式传输中数据传输效率和lt码性能的方法
Lei et al. NCStorage: A Prototype of Network Coding-based Distributed Storage System
Rivera et al. Performance dynamic coding RLNC LoRa on smart cities
Chanayai et al. Fountain codes and their applications: Comparison and implementation for wireless applications
Sprintson Network coding and its applications in communication networks

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