用于对已编码符号进行重编码的网络重编码方法和设备的制作方法

文档序号:7741416阅读:120来源:国知局
专利名称:用于对已编码符号进行重编码的网络重编码方法和设备的制作方法
技术领域
本发明涉及符号数据处理,以及更具体地,涉及对接收到的已编码符号进行解码, 并对要发送到与网络相连的通信设备的符号数据进行编码。这里,“符号”指的是数据 块或数据分组。
背景技术
如本领域技术人员所知,数据在通信设备之间进行传输期间可能发生丢失或损 坏。在这种情况下,接收机可以要求发送方再次发送丢失或损坏的数据,或者可以在一开始 就发送两份数据。另一种解决方案是通过码,并且更具体地通过容错码,来对要发送的数据 进行编码。在这种情况下,不必等到已接收到内容的每一个数据便能够对其解码,这是因为 只需要这些内容的(足够的)一部分来重建发送方所发送的所有数据。在编码方法之中,被称为“网络编码”的方法提供了若干优势。这种编码方法 是由 Rudolf Ahlswede 等人在"Network informationflow", IEEE Transactions On Information Theory 2000中提出的。例如,这种编码方法可用在无线和/或互联网网络 中。网络编码允许网络的内部(或中间)路由器在接收到数据a和b时发送c = f (a,b) 类型的数据组合,而不是仅转发接收到的数据a或b。因此,网络编码使得可以在网络上达 到最大流量,而路由则不够强大以至于无法在一些网络中达到最大流量。然而,这要求路由 器能够在发送接收到的数据之前,对接收到的数据进行计算,以对其进行编码,以及最终的 接收机能够对其接收到的已编码数据进行解码。由于已经证明了计算可以达到最大流量的函数f()的集合是NP-Hard的,已经提 出了 一些概率统计方案。例如,Τ.Η0 等人已经在"A random linear network codingapproach to multicast”,IEEE Transaction on Information Theory 2006 中提出了一种使用无比率 随机线性网络编码(RLNC)的方案。该方案具有若干优势实现起来较为简单,并可以是完 全分布式的。根据该方案,网络中的每一个路由器将其接收到(输入)的数据的随机线性 组合转发到其网络中的其它路由器。接收机还接收系数矩阵和当该矩阵是可逆时允许接收 机通过Gauss或Gauss-Jordan消元法对接收到的数据进行解码的数据。在网络编码允许独立地产生符号时,可以产生无限的符号流。然而,不仅在编码 期间,在解码期间随机线性网络编码也涉及复杂的计算。此外,当RLNC操作于Gallois域 GF(2k)时,其不适于在缺少有限域上的算法的通用处理器上进行编码和解码。N. Thomos 禾口 P. Frossard 已在"Collaborative video streaming withRaptor network coding”,ICME 2008中提出使用Raptor编码的另一种方案。该方案引入了重编 码方法,该重编码方法是通过XOR布尔操作的方式将一对已编码符号合并。然而,该方案在 解码期间还要求高斯消元法,因而raptor网络编码失去了其在性能和属性方面的优势。Puducheri S.等人己在“Coding Schemes for an erasure relaychannelTroc. IEEE International Symposium on Information Theory, ISIT 2007,24 June 2007,pages 666-670中提出了另一种方案。

发明内容
因此,本发明的目的是提出一种使用被称为Luby Transform码(或LT码)的无 比率码的网络重编码方法和设备,LT码的结构允许使用低复杂度的编码器和解码器。应该想至丨J, LT码是Michael Luby 在 IEEE Symposium onFoundations of Computer Science 2002中所提出的奇偶校验码。LT码可以由在输入节点与输出节点之间建立对应 关系的Tanner图来表示。Tanner图的每一个输出节点是要解码的已编码符号(或LT码符 号(或为LT码字)),该已编码符号是从网络接收到的,并且(通过边界)与一个或更多个 被称为输入节点的未编码(或已解码)的要发现的符号相链接,并且Tanner图的每一个输 出节点表示这些输入节点之间的XOR布尔操作的结果。因此,当通信设备(例如,路由器或 用户终端)的解码器接收到具有表示对应链路的数据的已编码符号(即,LT码符号)时, 这些已编码符号构成了 Tanner图的输出节点,Tanner图的输出节 点必须例如通过“置信传 播(BP)解码方法”来解码,以产生构成Tanner图的输入节点的未编码(或已解码)的符 号。输出节点与输入节点之间的链路(或边界)数限定了该输出节点的度。因此,可以构 建Tanner图的输出节点的度的分布。LT码要通过置信传播解码方法有效地进行解码的能 力取决于其具体的度的分布。由于LT码的度的分布是所谓的“鲁棒孤子”分布,因而这种 效率更加重要。本发明提供了一种网络重编码方法,旨在对要发送到网络的至少一个通信设备的 已编码符号(或数据)进行重编码,并且包括以下步骤通过将所选择的输入节点和/或具 有已知值、并被称为部分解码节点的输出节点进行合并来对LT码符号所定义的输出节点 进行重编码,以生成定义准备要发送的已产生输出节点的新LT码符号,该LT码符号表示已 编码符号,并且分别表示对其值要被发现的已解码符号进行定义的输入节点之间的XOR布 尔操作的结果,该输出节点与该输入节点在Tanner图中相链接。根据本发明的方法可以包括单独考虑或合并考虑的附加特征,特别是-可以通过部分解码节点之间的XOR布尔操作来合并该部分解码节点;-可以通过在已产生输出节点的度的当前分布的度之中,确定与第一被选参考分 布同样的度具有最大差的度来开始,并且这使得能够生成具有该度的已产生输出节点,然 而可以通过合并至少一个部分解码节点(即,在内部重编码步骤期间临时产生的节点)来 生成具有该度的已产生输出节点;一可以通过所选试探法确定一个度,以便能够生成具有该度的已产生输出节点;一在已经生成已产生输出节点后,可以将输入节点的当前分布与第二被选参考 分布进行比较,以确定至少一个输入节点是否已被过多地用于生成已产生输出节点,并且 在肯定的情况下,如果该输入节点允许在已产生输出节点与链接到所述已产生输出节点的 输入节点合并时使已产生输出节点的度保持不变,那么可以用过少使用的输入节点来代替 所述过多地用于所述已产生输出节点的输入节点的至少一个,以归一化输入节点的当前分 布;—可以将已产生输出节点与包括所述过多使用的输入节点、并具有等于2的度 的输出节点进行合并;
一在己生成准备发送的已产生输出节点后,可以对已产生输出节点的度的当前分 布和输入节点的当前分布进行更新;一该探索法可以在于检查要产生的输出节点的度是否低于或等于包括已解码 输入节点和具有至少一个相邻节点(即,其在Tarmer图中链接到的输出节点)的输入节点 在内的覆盖的输入节点的数目;该试探法还可以在于检查条件
是否被验证,其中,d是所确定的
要产生的输出节点的度,以及n(k)是度k小于已知的d的部分解码节点的数目。
本发明还提供了一种网络重编码设备,旨在对要发送到网络的至少一个通信设备 的已编码符号(或数据)进行重编码,并包括重编码装置,布置用于通过将所选择的输入节 点和/或具有己知值并被称为部分解码节点的输出节点相合并来对由LT码符号所定义的 输出节点进行重编码,以生成定义准备要发送的已产生输出节点的新LT码符号,所述LT码 符号表示已编码符号,并且分别表示对其值已被发现的已解码符号进行定义的输入节点之 间的XOR布尔操作的结果,所述输出节点与所述输入节点在Tanner图中相链接。根据本发明的网络重编码设备可以包括单独考虑或合并考虑的附加特征,特别 是-其重编码装置可以布置用于通过执行部分解码节点之间的XOR布尔操作来合并 部分解码节点;-其重编码装置可以布置用于在已产生输出节点的度的当前分布的度之中,确定 与第一被选参考分布同样的度具有最大差的度,并且这使得能够生成具有该度的已产生输 出节点,然后用于合并至少一个部分解码节点,以生成具有该度的已产生输出节点;-其重编码装置可以布置用于应用所选的试探法来确定一个度,以便能够生成具 有该度的已产生输出节点;—其重编码装置可以布置用于在已生成已产生输出节点后,将输入节点的当前 分布与第二被选参考分布进行比较,以确定至少一个输入节点是否已被过多地用于生成已 产生输出节点,并且在肯定的情况下,如果该输入节点允许已产生输出节点与链接到所述 已产生输出节点的输入节点时合并时使所述已产生输出节点的度保持不变,那么用过少使 用的输入节点来替换过多地用于已产生输出节点中的输入节点的至少一个,以归一化输入 节点的当前分布;—其重编码装置可以布置用于将已产生输出节点与包括过多使用的输入节点、 并具有等于2的度的输出节点进行合并;—其重编码装置可以布置用于将已产生输出节点与包括两个过多使用、并具有 等于1的度的输入节点在内的输出节点进行合并;一其重编码装置可以布置用于在已生成准备发送的已产生输出节点后,对已产生 输出节点的度的当前分布和输入节点的当前分布进行更新;一其重编码装置可以布置用于应用试探法,该试探法在于检查要产生的节点的 度是否低于或等于包括已解码输入节点和具有至少一个相邻节点的输入节点在内的覆盖 的输入节点的数目;-—其重编码装置可以布置用于应用试探法,该试探法还在于检查条件dd≤∑d.n幻是否被验证,其中,d是所确定的要产生的输出节点的度,以及n(k)是度k的i
部分解码节点的数目,k小于已知的d。本发明还提供了一种解码器,旨在装备可连接到网络的通信设备,并且包括解码 装置,布置用于-将所选解码方法应用到接收到的由LT码符号定义的输出节点,以得到其对应的 链接到的输入节点,该LT码符号表示已编码符号,并且分别表示对其值已被发现的已解码 符号进行定义的输入节点之间的XOR布尔操作的结果,该输出节点与该输入节点在Tanner 图中相链接,以及-存储定义了输入节点和输出节点的数据,该数据与对这些输入节点和输出节点 与同一 Tarmer图中的其它输出节点和输入节点所具有的链路的数目进行表示的度相对应 (换言之,维持允许对所选度的节点进行随机访问的索引)。该解码器还可以包括以上所呈现的类型、并且耦合到其解码装置的网络重编码设 备。该解码器还可以进一步包括检测装置,布置用于在存在要解码的输出节点的情况 下,确定其解码装置先前是否已经接收到要解码的输出节点,并且在肯定的情况下,产生消 息,以通过信号通知要解码的输出节点先前已经被接收到(并且先前很有可能是在解码步 骤期间获得的),并且不必再次将其插入Tarmer图。


在对此后详细的说明书和附图进行研究后,本发明的其它特征和优势将变得显而 易见,在附图中图1示意性且功能性地示出了通过网络彼此连接、并且每一个都包括编码器的三 个用户通信设备,以及根据本发明的解码器的实施方式的示例,图2示意性地示出了根据本发明的解码器的Tarmer图,图3是示出度的鲁棒孤子分布(黑色)的示例和实际(或当前)计算的产生的输 出节点的度的分布(灰色)的示例的图,图4是示出输入节点的均勻分布(水平线)的示例和所产生的输入节点的当前 (呈现的)分布(黑色)的示例的图,以及图5示意性地示出了允许以度2的输出节点对所产生的度4的输出节点进行改善 的方法子步骤。
具体实施例方式附图不仅可以用于使得本发明变得完整,如果需要的话,也可以对本发明的定义 做出贡献。本发明的目的是提供一种网络重编码方法和对应的网络重编码设备(D),旨在对 LT码符号进行重编码,以便允许在通过网络彼此连接的通信设备中使用低复杂度的编码器 和解码器。在随后的描述中,将考虑到网络是其中通信设备(CEi)能够至少以广播或ad-hoc模式彼此发送内容的移动(或蜂窝,或无线)通信网络(CN)。然而,本发明不限于这种网 络。实际上,值得注意的是,如果网络允许通信设备以对等(P2P)模式彼此通信,则该网络 也可以是有线(或固定)类型的,例如DSL网络或者光纤网络,不然就是电缆网络。此外,只要能够彼此建立通信,通信设备(CEi)可以是意类型的。因此, 假定通信 设备(CEi)包括了通信调制解调器(或任何等效的通信装置),则通信设备(CEi)可以是路 由器、固定的个人计算机、膝上电脑、内容接收机(例如,位于用户房屋中的家庭网关或机 顶盒(STB))、移动或蜂窝电话、固定电话、或个人数字助(PDA)。在随后的描述中,将考虑用户设备(CEi)属于用户,并且是移动电话。在图1中仅 示出了三个移动电话CEl到CE3(i = 1 to 3),然而在移动网络中,通常有多得多的通信设 备能够彼此交换至少部分编码内容。在所示出的示例中,每一个移动电话CEi包括经典型编码器ED和根据本发明的解 码器DC。然而重要的是,应该注意到,一些通信设备CEi,特别是初始提供内容的那些通信 设备CEi,可以仅包括经典型的编码器ED,并有可能包括经典型的解码器,而其他一些通信 设备CEi,特别是接收和转发内容的那些通信设备CEi,可以仅包括根据本发明的解码器DC 或适于根据本发明的经典型的解码器、以及根据本发明的网络重编码设备D。这里,“经典型的编码器”指的是能够对未编码的(内容)数据(或符号(内容) 数据)进行编码以产生LED码符号的编码器。此外,这里的“经典型的解码器”指的是能够 通过已知的并且经典的解码方法对经典型的编码器ED或根据本发明的网络重编码设备D 所产生的LT码符号进行解码的解码器。此外,“根据本发明的解码器”指的是新型解码器, 艮口,能够通过已知并且经典的解码方法对LT码符号进行解码,并适于简化其本地耦合的或 包括的、根据本发明的网络重编码设备D的操作。在随后的描述中,作为非限制的示例将考 虑到解码方法是所谓的“置信传播(BP)解码方法”。然而,本发明不限于这种解码方法。
如图所示,根据本发明的网络重编码设备D包括重编码模块冊,配置用于访问相 关联的解码器DC,并特别地访问其内部状态(并因而访问其Tanner图和相关联的数据), 以对其移动电话CEi先前从一个或更多其它移动电话CEi’接收到的符号进行重编码。如前所述,这些LT码符号表示已编码符号。将LT码符号发送到数据块内,该数据 块具有表示LT码符号与具有已知值的未编码符号数据的对应链接的关联数据。LT码符号是一个或更多符号数据的值的合并结果,更具体地,符号数据之间的 XOR布尔操作的结果。换言之,输出节点的链路指定已经通过XOR布尔操作进行合并的未编 码符号来生成LT码符号。因此,当通信设备CEi的解码器DC接收具有表示其各自链路的数据的编码符号 (即,LT码符号)时,必须使用该相关联的数据来对这些编码符号进行解码,以恢复对应的 未编码符号。为此,解码器DC的解码模块DDM将接收到的LT码符号(或编码符号)馈入 Tanner图,该接收到的LT码符号定义输出节点ON。同时,要恢复的未编码符号定义Tanner 图中链接到相关联的输出节点的输入节点IN。图2中示出了 Tarmer图的有限示例。在该示例中,将10个输出节点0N(a_j)链 接到一个或更多8个一组(A-H)的输入节点IN。更具体地-输出节点a链接到输入节点A、B和C,从而作为其通过两次XOR布尔操作的合并 结果(a = A B C),
-输出节点b链接到输入节点B,从而与B相等,-输出节点c链接到输入节点D和E,从而作为其通过一次XOR布尔操作的合并的 结果(C = D E),-输出节点d链接到输入节点A和F,从而作为其通过一次XOR布尔操作的合并的 结果(d = A F),-输出节点e链接到输入节点E和H,从而作为其通过一次XOR布尔操作的合并的 结果(e = E H),-输出节点f链接到输入节点F和G,从而作为其通过一次XOR布尔操作的合并的 结果(f = F G),-输出节点g链接到输入节点B和G,从而作为其通过一次XOR布尔操作的合并的 结果(g = B G),-输出节点h链接到输入节点D、E和F,从而作为其通过两次XOR布尔操作的合并 的结果(h = D E F),-输出节点i链接到输入节点G和H,从而作为其通过一次XOR布尔操作的合并的 结果(i = G H),以及,-输出节点j链接到输入节点C,从而与C相等。重要的是,应该注意到,输出节点ON与输入节点IN之间的链路(或边界)数定义 了该输出节点ON的度。因此,在上述示例中-a的度等于3,_b的度等于1,-C的度等于2,-d的度等于2,_e的度等于2,-f的度等于2,-g的度等于2,-h的度等于3,-i的度等于2,以及_j的度等于1。通过随后描述中的定义-“输入节点”是表示Tarmer图中原始数据的节点,-“解码输入节点”是其值已知的输入节点。“解码输入节点”永远不会有任何链路 (或边缘),并且永远不会被呈现在Tarmer图的输出节点ON中。未解码输入节点不具有已 知的值,并且不能在重编码的同时使用,-“覆盖的输入节点”是被解码的输入节点,或具有至少一个相邻节点(即,在 Tarmer图中与之链接的输出节点)的输入节点,_ “输出节点”是表示已编码符号的节点。其可以是已经接收到的或者可以从解码 步骤中产生,-“部分解码节点”(或,“已知节点”)是已解码输入节点或具有已知值的输出节
占,
-“已产生输出节点”是网络重编码设备D产生的节点,并准备发送至一个或更多 通信设备CEi,以及-“部分产生节点”是网络重编码设备D在内部重编码步骤期间临时产生的节点。解码器DC将Tanner图存储到诸如存储器之类的存储装置中。重编码模块RM布置用于通过合并所选择的部分解码节点(或已知节点)来对输 出节点进行 重编码,以生成定义准备要发送的已产生输出节点的新LT码符号,该部分解码 节点(或已知节点)即输入节点和/或具有已知值的输出节点。优选地,这些合并是部分解码节点之间的X0R布尔操作。然而也可以是例如有限 域(GF(pq))内的线性组合。然而,这需要存储针对所有边界(或链路)上的线性组合的系数。优选地,根据本发明的网络重编码设备D(特别是其重编码模块RM)至少部分地 由软件模块组成。然而,它也可以由电子电路或硬件模块组成,或者是硬件和软件模块的 组合(在这种情况下,重编码设备D还包括允许在硬件与软件模块之间交互的软件接口)。 在专门由软件模块组成的情况下,可以将其存储在通信设备CEi的存储器中(例如,在通信 设备CEi的解码器DC中),或在任何可被通信设备CEi所读取的计算机软件产品中,例如 CD-ROM。为了对输出节点ON进行重编码,重编码模块RM执行此后所述的网络重编码方法。例如,该方法包括第一步骤在到目前为止已经产生的输出节点ON的度的当前 (或实际)分布的度dj之中,确定与第一被选参考分布相同的度具有最大差的一个度,以便 能够生成具有该度的已产生输出节点。 该第一被选参考分布可以是所谓的鲁棒孤子分布。注意到,该分布是在离散集合上的。在图3的图中示出了已产生输出节点的度的鲁棒孤子分布(黑色)的示例和已产 生输出节点的度的实际(或当前)分布(灰色)的示例。例如,重编码模块RM可以首先针对每一度计算当前分布与第一被选参考分布之 间的差。然后,可以将结果排序。在图3示出的示例中,可以观察到,两个分布的相同度之 间的最大差出现在等于4的度上,然后在等于2的度上,然后在等于16的度上,然后在等于 5的度上,等等。可以通过重编码模块RM根据与输出节点相关的信息来计算已产生输出节点的度 的当前分布,该信息是重编码模块冊先前产生的,并存储在诸如存储器之类的存储装置 中。对当前分布与第一被选参考分布之间的度差的计算旨在优选地针对下一个要产 生的输出节点,确定必须使用的当前分布的度,以使得该当前分布更接近于第一被选参考 分布。事实上,本领域技术人员知道LT码的性能取决于其分布,因此,当LT码符号的当前 分布维持与最佳分布(如,鲁棒孤子分布)接近时,这些性能是最佳的。因此,一旦重编码模块RM已经计算出当前分布与第一被选参考分布之间的度 差,重编码模块RM可以对结果进行排序,以得到用于增强当前分布的度建议(degree suggestion)的列表。然后,针对每一个度dj的建议,重编码模块RM可以检查是否能够产生度dj的节点。为此,可以使用试探法。例如,该试探法可以是检查将要产生的输出节点的度d是否低于或等于覆盖的输 入节点(即,已解码输入节点和具有至少一个相邻节点的输入节点)的数目。解码器DC保 持该数目的值最新。为了给出更好的结果,可以在例如稍后所描述的另一种条件下来完成这种试探法。由于无法使用具有度d勺输出节点来产生度d小于Jd<r)的输出节点,重编码模
块RM可以检查条件
是否被验证,其中,d是所确定的要产生的输出节点的度,
以及n(k)是度为k的部分解码节点的数目,k小于已知的d。换言之,必须检查是否有足够 的度为小于d的k(k < d)的部分解码节点来产生度为d的输出节点。以上试探法没有考虑到以下事实当通过X0R布尔操作将两个度为3的节点合并 时,不确定是否将给出度为6的节点。事实上,如果将第一节点s = a b c与第二节点 t = d e b合并,则得到度4(因为b b = 0,所以s t = a d c e)的节点 (s t)。因此,重编码模块RM可以使用计算期望数目的冲突的更复杂的试探法。重要的是,应该注意到,在LT码符号的解码处理期间,一旦已经对已编码符号(或 输入节点)进行解码,则将其与Tanner图的输出节点的每一条链路(或边界)从该Tanner 图移除。因此,如果对输入节点解码,将不再涉及其它节点,并且将不产生任何冲突。假设 是已解码输入节点的数目,ncovered是覆盖的输入节点的数目,以及nt。tal是 部分解码节点的总数。利用这些定义,在将度为k > 1的节点增加到所产生的度为Ds的节 点时,冲突的数目遵循参数(k,Ds-n0, ncovered-n0)的超几何定律,如下给出该参数的平均数 Cs+1 Cs+1 = k* (Ds-n0) / (ncovered-n0)。因此,一旦已经增加第S+1个节点,节点的度Ds+1为Ds+1 = Ds+k_2*Cs+1,其中,D0 = (还可以设置队=0并且在最后一步增加IV然而这需要使用随后对cs+1的定义cs+1 = k* (Ds/ (ncovered-n0))为了检查是否可以产生度为d的节点,可以执行随后的两个子步骤。第一子步骤是检查要产生的节点的度d是否低于或等于覆盖的输入节点的数目。第二子步骤是增加所有度k小于或等于所希望(或期望)的度d(k< d)的 节点,以计算度D(即,一旦已经执行每一项合并所产生的度)。如果D彡d,可以推导 出可以产生度为d的节点。可以使用检查是否可以产生度为L的节点的算法来递归地 计算D。不在“一击”中聚集所有的节点,而是仅在可以增大当前度时才聚集节点。事 实上,如果在一击中聚集节点,该聚集的结果可以是度小于其任何一个的节点(例如, (a b c d) (a b c) = d)。因此,在每一次迭代中,仅保持先前值的最大值, 并且每次一个节点地增加该值。这可以通过如下的例证来实现D = 0For k = d to 2For i = 1 to n(k)[其中,n(k)是度为k的已知节点的数目]
D = max (D, D+k一2氺k氺(D) / (ncovered一n0))EndForEndForReturn D+n0 彡 L.通过用另一个第二子步骤来代替前述试探法的第二子步骤,可以改进前述的试探 法,以便在避免超过所选的目标的同时考虑到可能的冲突。假定只在其度低于或等于L与D之间的差时才增加节点,该其它第二子步骤在于 从高的度到低的度渐进地增加节点。换言之,由于不想产生具有太高的度的已编码符号,该 节点不能超过要产生的重编码符号中的剩余空间。因此,如果例如想要产生度为6的节点, 则不能增加两个度为5的节点,而是必须增加一个度为5的节点和一个度为1的节点。这 可以通过如下的例程来实现D = 0For k = d to 2For i = 1 to n(k)[其中,n(k)是度为k的已知节点的数目]D = max(D, D+k-2*Econflicts(k, D))[其中,当将所有节点引入具有 nc。vered 个覆盖的输入节点和 个已解码输入节点的Tanner图中时,Econflicts(k, D)等于k*D/ (ncovered-n0),并与在将度为k的节点增加到度为D的部分产生节点时可以期望的冲突数相 对应。由于针对k= 1没有冲突,度为D的节点不能具有任何与已解码输入节点的链路(或 边界)。因此,在E。。nfli。ts(0,D) = 0的情况下,将总是在最后一步增加nQ。]If L 彡 D+n0 Then Return TRUEIf k > L-D Then Break (for i = 1 to n(k)loop)EndForEndForReturn FALSE.仍然可以改进前述的试探法,以考虑到可能的冲突,并在考虑到冲突的同时避免 超过所选的目标。实际上,可能考虑到,可以增加度k大于L-D(k>L-D)的节点,并且在发 生足够的冲突时,可以具有度为L的节点。这可以通过如下的例程来实现D = 0For k = d to 2For i = 1 to n(k)[其中,n(k)是度为k的已知节点的数目]D = max (D,D+k_2*Ec。nflicts (k,D))If L ^ D+n0 Then Return TRUEIf k-2*Econflicts(k,D) > L-D Then Break (for i = 1 to n(k)loop)EndForEndForReturn FALSE.同样重要的是,应该注意到,试探法的选择将对计算成本和LT码的性能造成影
响。试探法越简单,则计算成本将越低,同时性能将越低。
如果所使用的试探法显示出可以产生度为d的输出节点,则重编码模块RM通过合 并至少一个部分解码节点以生成具有度d的已产生输出节点来完成第一方法步骤。否则, 尝试随后的度建议,直到发现可以满足的度建议。最后一种情况将会发生,这是因为至少可 以复制先前接收到的节点中的一个。因此,尝试产生其度具有已产生符号的最高缺陷的已 编码符号是很有意义的。为了产生度为d的节点,重编码模块RM可如下进行。可以从度为d的部分解码节点开始,并增加部分解码节点,直到具有度为d的节点 为止。每一次增加部分解码节点,得到等于先前值与所增加的部分解码节点的值进行X0R 的新结果。然后,将有助于所增加的部分解码节点的输入节点增加到有助于所产生节点的 节点列表。在该节点产生期间,重编码模块RM以度为d的节点开始,并随后具有一直下降到1 的度的节点。事实上,优选首先使用最大的符号,然后使用小的符号来完成已产生节点,以 成功地准确到达所期望的度d。因此,决不允许合并降低正在产生的节点的度。此外,如果 部分解码节点的度低于或等于所期望的度d和正在产生的节点的当前度之差,优选仅尝试 增加该部分解码节点。一旦正在产生的节点具有所期望的度d,重编码模块RM便停止第一 方法步骤。上述的节点产生可以通过如下的例程来实现,其中,L是在第一方法步骤的第一部 分中确定的期望度,以及G是部分产生节点L = Result of the first part of the first setp
G=0For k = d to 1While some node N of degree k as not been triedand k 彡 L-degreeOf (G) doN = Choose a random node of degree LIf degreeOf (G+N) > degreeOf (G)thenG = G+N(X0R their Value, add input nodes and removeinput nodes present twice)EnflfEndffhileEndForReturn G.重要的是,应该注意到,当重编码模块RM使用考虑到可能的冲突发生的试探法 时,可以允许正在产生的节点的度暂时下降。这等于放宽了上述节点产生机制的限制之一。 然而,如果部分解码节点的度低于或等于所期望的度与正在产生的节点的当前度之差,则 仍然增加该部分解码节点。该节点产生的变型可以通过如下的例程来实现L = Result of the first part of the first setp
G=0
For k = d to 1While some node n of degree k as not been triedand k 彡 L-degreeOf (G) doN = Choose a random node of degree LG = G+L(X0R their Value, add input nodes and removeinput nodes present twice)EndffhileEndForReturn G. 可以放宽限制来增强前述节点产生机制,该限制是仅在部分解码节点的度低于 或等于所期望的度与正在产生的节点的当前度之间的差时才增加该部分解码节点。在 该变型中,仍然考虑到了冲突。例如,当正在产生度为L的节点N时,只有在L-D ^ d-2. EConflicts(d,D)时,重编码模块RM才可以尝试将度为d的部分解码节点增加到所产生的 度为D的节点。如果使用最后描述的试探法,则该节点产生的变型会更有用。这可以通过 如下的例程来实现L = Result of the first part of the first setp
G=0For k = d to 1While some node n of degree k as not been triedand k_2. EConflicts (k, degreeOf (G) _iadded) ( L_degreeOf (G)and degreeOf (G) < L doN = Choose a random node of degree LG = G+N(X0R their Value, add input nodes andremove input nodes present twice)EndffhileEndForReturn G.在有很多度较低(例如,1、2或3)的节点的情况下,可以决定仅使用低度的节点
来构建高度的节点,而不是通过增加具有可能的最高的度的节点来开始。为此,可以例如将 从1到1 (为了仅使用度为1的节点)、或从2到1 (为了仅使用度为1和2的节点)、或否 则从3到1(为了仅使用度为1、2和3的节点)的“For loop”用到最近的例程中。例如,还可以根据节点的得分(即,其与第二被选参考分布之差)来选择要增加的 度为1的节点,而不是选择度为1的随机节点。这仅要求根据节点的得分来对度为1的节 点进行排序,得分可从第二被选参考分布推导出。在已经使用第一方法步骤生成已产生输出节点后,可以通过第二方法步骤来改善 该已产生输出节点。该第二方法步骤可以是对Tanner图中的输入节点的当前分布进行归一化,以便维持与诸如均勻分布之类的最优分布(或第二被选参考分布)接近。为此,重编码模块RM可以将输入节点的当前分布与第二被选参考分布相比较,以 确定至少一个输入节点,该至少一个输入节点已经被过多用于生成已产生输出节点,并允 许在已产生输出节点与链接到已产生输出节点的输入节点合并时使已产生输出节点的度 保持不变。输入节点的当前分布可以由重编码模块RM根据与输出节点相关的信息计算得 到,该信息由重编码模块冊先前产生并存储在诸如存储器之类的存储装置中。在图4的图中示出了输入节点的均勻分布(水平线)的示例和已产生输入节点的 度的当前(呈现的)分布(黑色)的示例。均勻的输入节点分布是在其中所有输入节点以 相同的次数使用的分布。在图4示出的示例中,可以观察到,应该避免再次发送输入节点A或F,而是应该发 送输入节点C或E。当重编码模块RM已经确定至少一个使用过多的输入节点时,可以通过过少使用 的输入节点来代替这些在已产生输出节点中过多使用的输入节点(这是已经确定的)中的 至少一个,以对输入节点的当前分布进行归一化。使用包括过多使用的输入节点、并选择等于2的度的输出节点是有有益的。事实 上,回想起来,LT码符号(当其非常长时)具有多于50%的度等于2的(已编码)输出节 点。因此,由于x x = 0,如果有部分产生节点s = a b c d和度为2的输出节点 t = a e,可以生成已产生输出节点r = s t = e b c d(移除输入节点a(在这 里视为使用过多),用输入节点e(在这里视为使用过少)来代替)。图5中示出了允许使用度为2的输出节点Y ( Y = A E)来改善度为4的已产 生输出节点5(5 = A B C D)的方法子步骤的示例。由于A A = 0,改善的已产 生输出节点0的度仍然为4,然而过多使用的输入节点A已经由过少使用的输入节点E所 代替(S = E B C D)。为了进行已产生输出节点的改善,重编码模块RM可以如下进行。针对包括在要改 善的已产生输出节点中的每一个输入节点N,重编码模块RM搜索度为2的、包含该输入节 点N的所有输出节点。然后,重编码模块RM可在这些输出节点中搜索能够最好地增强要改 善的已产生输出节点的得分的节点。如果增强是正向的,则执行合并(X0R)。然后,可以转 到另一个包括在要改善的已产生输出节点中的输入节点N,并重复该处理。如果发生冲突, 即,如果要改善的已产生输出节点的度减小,则不执行合并(X0R)。重要的是,应该注意到,在上述冲突的情况下,假设发现两个度为1的输入节点在 一起提供比发生冲突的度为2的输出节点更好的得分,则可能允许要执行的合并,而不是 简单地禁止合并的发生。这使得可以引入更多的多样性,并在合并中更频繁地使用度为1 的节点。在已经生成准备要发送的(已改善的)已产生输出节点后,重编码模块RM可以更 新表示已产生输出节点的度的当前分布和Tanner图的输入节点的当前分布的信息,以在 随后的重编码期间使用更新后的分布,该信息存储在存储装置中。输入节点的分布的更新 可以通过为包括在已产生输出节点中的每一个输入节点增加一次出现(occurrence)来完 成。
在已产生输出节点的真实的度与想要的度不同,并且在第二方法步骤期间允许已 产生输出节点的度下降的情况下,可以保存想要(或期望)产生的度(即,在第一方法步骤 的第一部分期间确定的度),而不是保存真实产生的度。当试探法足够精确时,该动作不是 必要的。为了减轻网络重编码设备D的任务,适配解码器DC的经典解码模块DDM自适应是 有益的。更具体地,当解码模块DDM已经对接收到的LT码符号进行解码后,解码模块DDM 更新自身的Tanner图,网络重编码设备D使用该Tanner图来根据输出和输入节点各自的 度对该输出和输入节点进行搜索。因此,优选地,将解码器DC的解码模块DM修改用于存储 与解码模块DM的Tanner图中输入节点和输出节点各自的度相对应的、对输入节点和输出 节点进行定义的数据。例如,为了易于访问网络重编码设备D,可以以索引的形式存储这些 数据。因此,解码模块DM保存索引表,该索引表允许重编码模块RM随机选择具有特定度的 节点,并且还知道每一度有多少节点呈现在解码器DC的Tanner图中。 优选地,根据本发明的修改后的解码模块DDM至少部分由软件模块组成。然而,它 也可以由电子电路)或硬件模块组成,或者是硬件和软件模块的组合(在这种情况下,它还 包括允许在硬件和软件模块之间交互的软件接口)。在专门由软件模块组成的情况下,可将 它存储在解码器DC的存储器中,或在任何可被通信设备CEi读取的计算机软件产品,例如 CD-ROM。此外,还可修改解码器DC,以便能够检测节点的冗余度,并且因此简化网络重编码 设备D的任务。实际上,根据本发明的网络重编码方法增大了节点冗余度,这是因为根据本 发明的网络重编码方法倾向于生成更多LT码符号冗余块,这增大了解码复杂度(计算和空 间两方面的复杂度),并降低了(使用解码器的数据的)网络重编码设备D的性能。因此,本发明提出向解码器DC增加检测模块DTM,检测模块DTM布置用于在存在 要解码的输出节点的情况下,确定解码模块DDM是否先前接收到过该输出节点,并且在肯 定的情况下,产生消息来通过信号通知先前已经对该输出节点进行了解码并且不必再次将 其插入解码器的Tanner图。重要的是,应该注意到,当接收到输出节点时可以使用检测模块DTM(以确定 该输出节点先前是否已经被接收到解码),或者在解码期间(例如,在将输出节点x = a b c d部分解码以生成另一个输出节点y = a c d时)使用检测模块DTM。在 后一种情形下,检测器模块DTM可以检查y是否已知。例如,检测模块DTM可以快速计算针对接收到的输出节点的密钥,并查看所存储 的、具有快速读和插入访问的数据结构,例如二叉查找树(例如,RB树(“红黑树”-一种自 平衡的二叉树))或散列表。如果可以发现已经插入了另一个密钥,则检测模块DTM可以得 出结论已经接收到同一个输出节点,并且不需要对其再次解码。因此,检测模块DTM产生 消息,以使得简单地丢弃接收到的输出节点,而不是将其插入解码器DC的Tanner图中。由于大多数输出接点具有较低的度(等于2或3),并且两个度为2的输出节点相 同的概率比两个度为4的输出节点相同的概率高很多,因此可以抑制对度为1、2或3的输 出节点的冗余检测。在这种情况下,检测模块DTM可以实现一种散列方法,该散列方法旨在 针对任何度为1、2或3的输出节点x计算密钥h (x),以使得M力=H^) ^x = x'。该杂散方 法可以如下所示。
首先,检测模块DTM可以以递增的顺序(例如,考虑到其标识符)对混合已编码 符号(或输出节点)的原始符号进行排序。然后,检测模块DTM可以计算密钥h(x)= Sl+S2 (L+1)+s3 (L+1)2,其中,x = a b c,Sl = ia+l, s3 = ib+l, s2 = i。+l,L 是符号 (或LT码符号)长度,以及ix是对符号(或输入节点)x进行标识的整数,取0到L-1之间 的值。如果符号的度为2,简单地设置s3 = 0,以及如果符号的度为1,则简单地设置s3 = 0 以及s2 = 0。该散列方法仅要求少量(恒定的)加法和乘法,以计算密钥h(x)。此外,由于可以 显示出其长度等于31og2(L+l),这种计算出的密钥不要求很多存储空间。此外,该冗余检测 方法伴随着低成本,例如,针对长度L = 65536的输出码,将涉及到通常可由通用处理器提 供的64比特的比较。优选地,根据本发明的检测模块DTM至少部分由软件模块组成。然而其也可以由 电子电路或硬件模块组成,或者是硬件和软件模块的组合(在这种情况下,它还包括允许 在硬件和软件模块之间交互的软件接口)。在专门由软件模块组成的情况下,可以将其存储 在通信设备CEi的存储器中(例如,在通信设备CEi的解码器DC中),或者在任何可被通信 设备CEi读取的计算机软件产品,例如CD-ROM。本发明提供了若干优点,具体为-允许产生低复杂度的网络码,-可以在广泛的应用范围内使用,这是它允许产生在计算方面比随机线性网络码 (RLNC)更为高效的网络码,网络码可以使用置信传播解码代替高斯消元法,并且从而避免 了使用 Gallois 域(GF(2k))算法。本发明不限于上述仅作为示例的网络重编码方法、网络重编码设备和解码器的实 施例,而是包含本领域普通技术人员可以考虑到的在权利要求保护范围内的所有备选实施 例。
权利要求
一种网络重编码方法,用于对要发送到与网络相连的至少一个通信设备(CE)的已编码符号进行重编码,其特征在于包括以下步骤通过将所选择的输入节点和/或具有已知值并被称为部分解码节点的输出节点相合并来对由LT码符号所定义的输出节点进行重编码,以生成定义准备要发送的已产生输出节点的新LT码符号,所述LT码符号表示已编码符号,并且分别表示对其值已被发现的已解码符号进行定义的输入节点之间的XOR布尔操作的结果,所述输出节点与所述输入节点在Tanner图中相链接;其特征在于,在所述合并步骤期间,通过在所述部分解码节点之间进行XOR布尔操作来合并所述部分解码节点;以及,在所述合并步骤期间,通过在已产生输出节点的度的当前分布的度之中,确定与第一被选参考分布相同的度具有最大差的度来开始,并且这使得能够生成具有所述第一被选参考分布相同的度的已产生输出节点,然后通过合并至少一个部分解码节点来生成具有所述第一被选参考分布相同的度的已产生输出节点。
2.根据权利要求1所述的方法,其特征在于,在所述合并步骤中,通过所选试探法确定 一个度,以便能够生成具有所述度的已产生输出节点。
3.根据权利要求1和2中任一项所述的方法,其特征在于,在已生成所述已产生输出节 点后,将所述输入节点的当前分布与第二被选参考分布进行比较,以确定 至少一个输入节 点是否已被过多地用于生成已产生输出节点,以及在肯定的情况下,如果所述输入节点允 许在已产生输出节点与链接到所述已产生输出节点的输入节点合并时使已产生输出节点 的度保持不变,那么用过少使用的输入节点来代替所述过多地用于生成所述已产生输出节 点的输入节点的至少一个,以归一化所述输入节点的所述当前分布。
4.根据权利要求3所述的方法,其特征在于,将所述已产生输出节点与包括所述过多 使用的输入节点、并具有等于2的度的输出节点进行合并。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述合并步骤中,在已生 成所述准备发送的已产生输出节点后,对所述已产生输出节点的度的当前分布和所述输入 节点的当前分布进行更新。
6.根据权利要求2所述的方法,其特征在于,在所述合并步骤中,所述试探法在于检 查要产生的节点的度是否低于或等于包括已解码输入节点和具有至少一个相邻节点的输 入节点在内的覆盖的输入节点的数目。
7.根据权利要求6所述的方法,其特征在于,所述试探法还在于检查条件^<f,k-n(k) 是否被验证,其中,d是所确定的要产生的输出节点的度,以及n(k)是度为k的部分解码节 点的数目,k小于已知的d。
8.—种网络重编码设备(D),用于对要发送到与网络相连的至少一个通信设备(CE)的 已编码符号进行重编码,其特征在于包括重编码装置(RM),配置用于通过将所选择的输入 节点和/或具有已知值并被称为部分解码节点的输出节点相合并来对由LT码符号所定义 的输出节点进行重编码,以生成定义准备要发送的已产生输出节点的新LT码符号,所述LT 码表示已编码符号,并且分别表示对其值已被发现的已解码符号进行定义的输入节点之间 的X0R布尔操作的结果,所述输出节点与所述输入节点在Tanner图中相链接;其特征在于,所述重编码装置(RM)布置用于通过在所述部分解码节点之间进行X0R布尔操作来合并所述部分解码节点;以及,所述重编码装置(RM)布置用于通过在已产生输出节点的度的当前分布的度之 中,确定与第一被选参考分布相同的度具有最大差的度,并且这使得能够生成具有所述第 一被选参考分布相同的度的已产生输出节点,然后通过合并至少一个部分解码节点来生成 具有所述第一被选参考分布相同的度的已产生输出节点。
9.根据权利要求8所述的网络重编码设备,其特征在于,所述重编码装置(RM)布置用 于应用所选的试探法来确定一个度,以便能够生成具有所述度的已产生输出节点。
10.根据权利要求8和9中任一项所述的网络重编码设备,其特征在于,所述重编码 装置(RM)布置用于在已生成所述已产生输出节点后,将所述输入节点的当前分布与第二 被选参考分布进行比较,以确定至少一个输入节点是否已被过多地用于生成已产生输出节 点,以及在肯定的情况下,如果所述输入节点允许已产生输出节点与链接到所述已产生输 出节点的输入节点时合并时使所述已产生输出节点的度保持不变,那么用过少使用的输入 节点来代替所述过多地用于生成所述已产生输出节点的输入节点的至少一个,以归一化所 述输入节点的所述当前分布。
11.根据权利要求10所述的网络重编码设备,其特征在于,所述重编码装置(RM)布置 用于将所述已产生输出节点与包括所述过多使用的输入节点、并具有等于2的度的输出 节点进行合并。
12.根据权利要求8至11中任一项所述的网络重编码设备,其特征在于,所述重编码设 备(冊)布置用于在已生成所述准备发送的已产生输出节点后,对所述已产生输出节点的 度的当前分布和所述输入节点的当前分布进行更新。
13.根据权利要求8至12中任一项所述的网络重编码设备,其特征在于,所述重编码装 置(RM)布置用于应用试探法,所述试探法在于检查要产生的节点的度是否低于或等于包 括已解码输入节点和具有至少一个相邻节点的输入节点在内的覆盖的输入节点的数目。
14.根据权利要求13所述的网络重编码设备,其特征在于,所述重编码装置(RM)布置用于应用试探法,所述试探法在于检查条件d^ilW^是否被验证,其中,d是所确定的要产生的输出节点的度,以及n(k)是度为k的部分解码节点的数目,k小于已知的d。
全文摘要
本发明公开了一种网络重编码设备(D,)旨在对要发送到与网络相连的至少一个通信设备(CE1)的已编码符号进行重编码。这种网络重编码设备(D)包括重编码装置(RM),被布置用于通过将所选择的输入节点和/或具有已知值的输出节点相结合来对由LT码符号所定义的输出节点进行重编码,以生成定义准备要发送的已产生输出节点的新LT码符号,该LT码符号表示已编码符号,并且分别表示对其值已被发现的已解码符号进行定义的输入节点之间的XOR布尔操作的结果,所述输出节点与所述输入节点在Tanner图中相链接。
文档编号H04L1/00GK101860413SQ20101010502
公开日2010年10月13日 申请日期2010年1月27日 优先权日2009年1月27日
发明者尼克拉·勒斯库阿内克, 玛丽-吕克·坎贝尔 申请人:汤姆森许可贸易公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1