CN101346996B - 对经网络分布的内容进行编码的方法 - Google Patents

对经网络分布的内容进行编码的方法 Download PDF

Info

Publication number
CN101346996B
CN101346996B CN2006800489952A CN200680048995A CN101346996B CN 101346996 B CN101346996 B CN 101346996B CN 2006800489952 A CN2006800489952 A CN 2006800489952A CN 200680048995 A CN200680048995 A CN 200680048995A CN 101346996 B CN101346996 B CN 101346996B
Authority
CN
China
Prior art keywords
encoding block
piece
node
new
progression
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.)
Expired - Fee Related
Application number
CN2006800489952A
Other languages
English (en)
Other versions
CN101346996A (zh
Inventor
C·康特西迪斯
J·米勒
M·科斯塔
P·R·罗德里格斯
S·瑞森
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101346996A publication Critical patent/CN101346996A/zh
Application granted granted Critical
Publication of CN101346996B publication Critical patent/CN101346996B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/184Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being bits, e.g. of the compressed video stream
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • 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

Abstract

本发明提供了对经网络分布的内容进行编码的方法和对已经网络分布的编码内容进行解码的方法。第一示例中,内容被分成多个段且每段包括了多个数据块,此方法包括从这多个段中选择一个段并从块存储中选择所选段的至少两个块。从所选块的线性组合创建新的编码块。

Description

对经网络分布的内容进行编码的方法
发明背景
内容分布系统的开发使得诸如软件更新、关键补丁和多媒体内容之类的数据可以分布到网络中的节点。通常,这些系统包括了许多放置在网络中的服务器,并且有多个节点直接连接到服务器之一以下载所请求的文件。然而,这些系统受到与服务器的连接带宽的限制,并且需要大量的投资来提高系统的传输能力。因此,所开发的内容分布系统依赖于一个完全分布式的体系结构,此时网络中的节点参与该内容分布过程。这些系统可以被称作对等网络或者对等体辅助的内容分布系统。在这一系统中,服务器可以将要分布的文件分为许多块,然后把这些块提供给网络中的节点。一旦一个节点收到一个或者多个块,该节点就可以为其它节点充当已接收块的源,同时此节点还继续接收块,直到已接收到文件的所有块。除非节点知道哪些块被网络中的其它节点需要和保存,否则系统可能遇到诸如稀有块和网络瓶颈的问题。
最近,已开发的协作式内容分布系统避免了稀有块问题和要求节点知晓系统中其它所有节点的问题。这种系统使用网络编码技术,指的是系统中的每一个节点产生和传输经编码的信息块,这些新编码块由是该特定节点当前持有的所有块的线性组合。这种系统与早期的系统形成对比,早期系统对块的编码仅仅在服务器处发生。
网络编码的使用可参照图1描述,图中示出了在服务器102和两个客户机(或节点)之间、客户机A 104和客户机B 106之间块的流动。最初所有块B1至Bn仅由服务器所保有,而没有被任何节点保有。当客户机A与服务器联系以获得一块时,服务器产生一个编码块E1,它是文件中所有块的一个线性组合,使得
E1=α1B12B2+..+αnBn
其中,αi是随机系数。为了不增加块的大小,这些操作通常在一个有限域 内进行,典型的是域GF(216)。然后,服务器将新的编码块E1和系数向量(αi)两者传送给客户机A。客户机A还可能从服务器接收第二编码块E2,E2是使用第二组随机系数βi创建的。当客户机A需要向客户机B传送一块时,客户机A使用随机系数ωi从E1和E2的线性组合创建第三编码块E3
当使用上述的网络编码时,客户机在接收到n个互相线性独立的块之后,能够使用类似于求解一组线性方程的过程来恢复原始文件。如果这些系数是由每个客户机随机选择的,那么一个客户机将不大可能收到对这个客户机没用的块。然而,为了进一步检验这一点,客户机可以在传送块本身之前先传送系数向量给接收客户机(如图1示例中的客户机B)。接收客户机于是可以检验是否最终的合成块会对它提供任何新的有用信息,只有当该块对接收客户机有用时,才请求下载该块。
如上所述,为了使节点产生新的编码块,它必须要读取所有已经接收到存储器中的块。这个过程需要处理器密集处理并会引入延迟。此外在解码时,节点面临着解码这些编码块的极复杂问题,而这同样是处理器密集且耗时的。在节点处读/写数据进出存储器尤其耗费时间。
发明概述
提供本概述是为了用简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识要求保护的主题的关键特征或必要特征,也不旨在用于确定要求保护的主题的范围。
对经网络分布内容进行编码的方法连同与对这些经网络分布的编码内容进行解码的方法一起描述。
第一示例提供了一种对经网络分布的内容进行编码方法。分布的内容被分为多个段,且每个段又包含多个数据块。此方法包含以下过程:从多个段中选择一个段、从一个块存储中选择所选段的至少两个块、以及从所选的至少两个块的线性组合创建新的经编码块。
这就有利地导致大大节省编码时间和处理要求,因为为了对内容编码,只需要将来自同一段的那些块读入存储器。
选择一个段的步骤可包括一个选择所有多个段的不频繁但周期性的步 骤。这样做的优点是通过创建少量的块用来代替来自任何段的块,缓解了稀有块的问题。
选择一个段可以包括随机地从多个段中选择一个段。
选择一个段可包括根据一指定的顺序从多个段中选择一个段。
选择至少两个块的步骤可包括从块存储的所选段中选择所有可用块。
在一个示例中,每个段都可包含有多个未经编码的块;并且选择至少两个块可包括:从已编码块存储的所选段中选择至少两个编码块;并且创建新编码块包括:从所选的至少两个编码块的线性组合创建新的编码块。
例如,选择至少两个编码块可包括:为一个新编码块选择一个目标级数(degree),其中新编码块的级数是从中创建该新编码块的未编码块的数量;尝试从编码块存储的所选段选择至少两个编码块来创建一个新的编码块,使得新块的级数不超过目标级数;如果尝试失败,则使目标级数递增1,并重复该尝试步骤;如果尝试成功,则创建其级数不超过目标级数的新编码块。
该方法还可包括存储新的编码块。
新的编码块例如可以利用预先计算的查找表来创建。其优点在于减少了处理时间和负荷,因为其没有进行计算而是在预先计算的表格内执行查找。
第二示例提供了对经网络分布的内容进行编码的方法,其中内容被分为多个未经编码的数据块。此方法包括为新编码块选择目标级数,新编码块的级数定义为从中创建新编码块的未编码块的数量。此方法还包括尝试从编码块存储中选择多个编码块以创建其级数不超过目标级数的新编码块。如果此尝试失败,目标级数递增1并重复该尝试该步骤。然而,如果尝试成功,则从所选的多个编码块的线性组合创建新的编码块。
这种编码方法的好处是在仍保有网络编码优点的同时维持了矩阵的稀疏性。这就降低了复杂性从而减少了解码内容所需的处理时间和处理负荷。
在一个示例中,所选的多个编码块包含了能够从中创建级数不超过目标级数的新编码块的最大数量的所选编码块。
该方法还可包括存储新的编码块。
新的编码块例如也可使用预先计算的查找表来创建。
第三示例提供了一种对经网络分布的内容进行编的码方法,其中内容被分成多个数据块。该方法包括从网络上块存储中选择多个块,从所选块的线性组合来创建新的编码块并存储该新的编码块。
这样有利地减少了节点用来形成新编码块必需执行的读操作次数,从而缩短了编码块所花的时间。
新编码块例如可存储在高速缓存中。
在一个示例中,新编码块可被存储一段预定的时间。
块存储可包括位于节点主存储器中的第一部分和位于节点高速缓存中的第二部分。
新的编码块可使用预先计算的查找表来创建。
再一个示例提供了对经网络分布的内容进行编码的方法,其中被创建并发送到网络上另一个节点的新编码块保持在高速缓存中。因此,被高速缓存的编码块可用于再次创建经网络分布的内容的另外的新编码块。
另一个示例提供了一种对从网络上以多个编码块的形式收到的内容进行解码的方法。该方法包括使用消息传递技术来解码和简化从接收到的编码块的系数向量所形成的矩阵。然后对所得矩阵使用矩阵求逆来完成解码过程。
这样通过在执行处理器密集的矩阵求逆前先尽可能化简矩阵就有利地减少了解码过程中的解码时间和处理负荷。
另一个示例提供了一种对从网络上以多个编码块的形式收到的内容进行解码的方法,其中原始内容被分成一些段。此方法包括将收到的与特定段相关的所有的块读入存储器,然后并行地对这些读入的块进行解码。
这种方法的好处是大大节省了解码的时间并降低了处理负荷,因为为了解码内容,只有来自单个段中的那些块才需要读入存储器。另一个好处是它减少了解码过程中所需的处理器操作的次数,因此减少了解码时间和处理器负荷两者。
再一个示例提供了一种对从网络上收到的内容进行解码的方法,收到的内容包括多个经编码的块。这种方法涉及将每一个收到的编码块的一小 部分读入存储器,然后在将每个编码块的下一部分读入存储器之前,并行地对读入的部分进行解码。
这样就通过预先载入所需的下一部分而有利地实现了高效率并且允许需计算机的操作系统帮助准备解码过程。这缩短了解码过程中的延迟,从而缩短了总的解码时间。
该些方法可利用包括计算机程序代码装置的计算机程序来实现,当所述程序在计算机上运行时适合执行上述任何方法的所有步骤。该计算机程序可在计算机可读介质上具体化。
本文描述的各方法可由存储介质上具备机器可读形式的软件或固件执行。软件或固件能够适于在并行处理器或串行处理器上执行,使得本方法的各步骤可以按任何合适的次序或同时开展。
这里承认软件能够是有价值的、可以单独交易的商品。它旨在包含运行于或者控制“哑(dumb)”或者标准的硬件以实现期望的功能的软件。它还旨在包含“描述”或者定义硬件配置的软件,例如HDL(硬件描述语言)软件,用于设计硅芯片,或者用于配置通用可编程芯片以实现期望的功能。
许多伴随特征将随着参考下面的详细描述并结合附图进行理解而得到更好的认识。
附图简述
从结合附图的下列详细描述将更好地理解本描述,在附图中:
图1表示使用网络编码的内容分布系统中块的流动;
图2是文件被分为多个块的示意图;
图3示出了第一编码优化示例的流程图;
图4是示出了实现第一优化示例的示意图;
图5示出了在服务器处编码过程的示例流程图;
图6示出了保留稀疏性的编码过程的示例流程图;
图7是两个节点的示意图;
图8示出了另一编码优化示例的流程图;
图9示出了示例查询表;
图10示出了解码优先化示例的流程图;以及
图11示出了另一个解码优化示例的流程图。
相同的标号用于指示附图中相同的部分。
详细描述
下面结合附图提供的详细说明旨在作为本发明的例子的描述,但是并不旨在表示可以构造或者使用本例子的仅有的形式。该描述阐述本示例的功能以及用于构造和操作本示例的步骤序列。然而,相同或等价的功能与序列可由不同的示例来完成。
在对等体辅助的内容分布系统中,为了减少节点在编码和编解码过程中所涉及的读/写操作的次数,可使用多个编码和解码处理的优化。这些优化降低了节点上的处理负荷,并且减少了编码或解码块所花的时间。
在第一编码优化示例中,文件被分成多个段,每个段包括多个块,如图2示意性地示出。图2示出了文件200被分成3个段201-203,每段包括5个块。这仅是为了举例,通常块的数量可能远大于段的数量(例如,一个段内有20-30个块,或者一个段为100-200兆字节而一个块为1-10兆字节)。如图3和4所示,编码块由节点400产生为来自特定段的其保有的所有块的线性组合。首先选择一个段(步骤301),编码新的块(步骤302),然后应请求将新的编码块传递到另一节点(步骤303)。接着,选择另一个段(步骤301),编码另一个新块(步骤302)并将其传递到另一节点(步骤303),且这一过程继续。段选择操作(在步骤301中)可以根据已定义的顺序(例如,A段,然后B段,再A段等)进行,也可以随机地或者按照任何其它准则(例如在相邻段中选择最稀有的段)执行。在执行图3中编码和传送的操作的同时,节点也可从网络上其它节点接收(经编码的或未经编码的)块(步骤401-403)。
根据已定义的顺序或使用随机选择选择要编码的段,加之块的数量远远多于段的数量的事实,会导致网络中所有段都可用而没有特别稀有的段。然而,为了进一步有助于避免稀有段问题,可以通过从文件的所有段中的 所有块进行线性组合来产生一些编码块。这种从所有段产生一块的情况是一个不频繁但周期性的事件(比如,在过程的每第100次迭代时产生)。这些编码块因而可用来替代文件中任何段一块。这可通过在选择下一块的指令序列中包含这样一条指令(在步骤304中)来实现,或者在随机段选择步骤中对所有段的选择指定一个小的概率来实现。
通过使用这种编码优化技术,为了进行编码一个块,一节点仅仅需要把来自单段的所有块读入存储器,而不用读入其从整个文件接收到的所有块。这样就大大节省了时间和处理能力,例如在一个段包括30个块而文件却由3000个块组成的情况下。
尽管以上描述参考了其中描述了一个编码块是作为来自一特定段的在节点处本地保存的所有块的线性组合而产生的图3和4,但是在另一示例中编码块可通过来自一特定段内在节点处本地保存的两个或多个块的线性组合而产生。用来形成编码块的块数可以是固定的或者是根据指定准则而变化的,或者作为替代在另一个示例中,可以随机选择所选块的数量。
在第二编码优化示例中,保有整个文件的服务器产生各稀疏编码块。稀疏块被定义为具有较少数量非零元素项的块。服务器所产生的编码块是来自文件的i个随机块的线性组合,其中选择i个块的概率由p(i)给出,其p(i)可以是1/i,指数分布或者两项式分布等。图5示出了在服务器处编码过程的流程图。首先,选择i(步骤501),然后从文件的所有块中随机地选取i个块(步骤502),并用于产生新的编码块(步骤503)。新的编码块被发送到网络上的某个节点(步骤504),然后选择一个新的i值(步骤501)并重复所述过程。使用这种分布方式,服务器偏向于选择少量的块来用于编码新的编码块,但是服务器偶尔也将用较大量的块来编码一个块。这些大i的新编码块,充当与上面参照第一示例描述的从所有段编码块相同的作用,并且降低了与某个特定块有关的信息在网络中是稀有的机会。
在这样的示例中,网络中的节点可以不再重编码内容,从而保持网络的稀疏性,但失去了网络编码的某些好处,或者也可使用一些规则对内容进行重编码来确保块保持稀疏编码。参考图6和图7描述了可以保留稀疏性的示例过程。图6示出了示例流程图600而图7示出了两个节点701和 702的示意图,其中每个节点当前各自保有来自同一个原始文件(由6个块组成)的多个编码块703-707,708-711。原始块用字母A-F标记,编码块703-711内的字母指示这些编码块是从哪些块产生的,例如块703是原始块A和块B的线性组合。
节点首先选择一个目标级数i(步骤601),其中块的级数定义为从中形成编码块的原始块的数量(例如块703的级数i=2)。节点然后尝试选择它当前保有的块的一个子集,使得新编码块将具有级数f,其中f≤i(步骤602)。如果这条件不可能满足,节点选取一子集使得新编码块将具有接近最高可能的级数(步骤603)。选择了块的子集(步骤602或603)以后,节点从所选的子集编码一新块(步骤604)。然后重复上述步骤。较佳地节点选择尽可能多的块形成子集部分,同时不超过目标级数。例如,如果目标级数设定为2,节点1701(图7中)可选择3个块,即块703、706和707,来形成子集。从这三个块产生的新编码块将具有级数2,因为它是原始块A和块B的线性组合。然而,节点2702不能选择块的一个子集来满足目标阶级数2。作为替代,将必须选择一个带有级数3的子集(根据步骤603);该子集包括两个块,即块708和711,每个块是原始块A、B和C的一个线性集合。
在上面关于节点2702的示例中,各自包括原始块A、B和C的线性组合的两个块被组合以形成A、B和C的一个新线性组合。较佳地,组合这两个块并将这些块发送给一个新节点,因为如果接收节点已经具有了其中的一个块(如,块708),则该新块将提供此结点的新信息,而再次发送相同的块对接收节点而言是没有用的。
在以上描述的示例中和已知系统中,一旦新的编码块由一节点创建并被发送到另一节点,就不再存储与那个新编码块有关的信息。然而,在第三编码优化的示例中,已经由一节点产生的一些编码块被高速缓存并再次使用。这是很有利的,因为减少了节点为了产生要发送到系统内另一节点的编码块所必需之执行的读操作的次数。术语“高速缓存”是用来描述与处理单元相关联的、其操作速度比节点的主存储器更快的高速存储缓冲器。图8中的示例流程图描述了这个优化过程。一个示例节点已接收到两个块 A和B,初始读入这两个A块和B块(步骤801和802)并创建块A和B的线性组合的新编码块AB(步骤803)。该新的编码块AB被发送到网络中另一个节点(步骤804)并在此节点处高速缓存(步骤805)。当该节点接着需要创建新的编码块发送到网络中另一节点时,这个节点在其高速缓存中已有块AB,并可以决定是再次发送该块还是将它与一个或多个已经收到的块进行组合。在这个示例中,节点读取块B(步骤806)并使用块B和先前高速缓存的块AB创建新的编码块ABB(步骤807),然后将新的编码块ABB发送到网络中的另一节点(步骤808)。如前述,节点可以在高速缓存中保留块ABB(步骤809)或者也可不在高速缓存中存储有关该块的信息。如果节点在高速缓存中存储了块ABB(如图8所示),则在随后的步骤中节点可以使用高速缓存的块AB和ABB来创建新的编码块,而不需要执行任何附加的的读操作。可在高速缓存中保有的编码块的数量受高速缓存容量的限制,高速缓存容量比节点主存储器容量要小的多,其中节点主存储器存储了关于所有接收到块的信息。
在上述编码步骤中和已知的方法中,与创建块的线性组合相关联的用来形成新编码块的算术运算需要耗费大量的时间。然而,由于算术运算在也被称为伽罗华域(典型地是216,但是潜在地可以小很多,例如256)有限域内进行,因而第4编码优化的示例涉及预先计算所有可能的算术运算结果,这将算术运算简化为单个查表操作。在一个非常简单的示例中,要计算以下的运算:
5×100
这也可用以下四个步骤计算:
100+100=200
+100=300
+100=400
+100=500
或者如图9所示,也可以由一次查表操作来完成。
在另一个示例中,有限域(或伽罗华域)中两个数的乘法运算可以用三个查表步骤来完成。可以使用如下的等价运算来实现乘法:
A=B·C
log A=log B+log C
exp(log A)=exp(log B+log C)
A=exp(log B+log C)
这个乘法然后可化简为下面两个表中的三步查表的操作(其中有限域216 仅作为示例):
logTable(对数表)=65536(=216)个元素的向量,包含域中每个数的对数值(从0到65536每一个数的对数)。
expTable(指数表)=131072(=2×216)个元素的向量,包含有限域内的每一个数加上下216个数值的指数(0到131072的每一个数的指数)。
于是这个乘法运算可以如下执行:
function Mult(B,C)
Temp=logTable[B]+logTable[C]
return expTable[Temp]
以上描述涉及的编码优化可用来降低编码新数据块以供传输至网络中其它节点所需的处理负荷和时间。上述优化的每一项可以独立于其他项使用,也可以替换地组合使用两种或多种优化技术来进一步增进编码过程的优化。
上述编码优化的一些或全部还可改进解码过程,例如,一个稀疏编码块(见上述第二示例)会比密集填充的编码块更容易解码,并且级数较小的编码块会比级数较大的编码块更容易解码。此外,还可使用与所用的编码优化正交地操作的解码优化,这也有助于减少解码过程中所要求的读/写操作的次数。
存在有许多已知的解码技术,包括矩阵求逆和消息传递。这些技术可以应用于从每个收到编码块的系数向量所形成的矩阵(在此被称为系数矩阵)。例如,一个节点已经收到了与包含3个原始块的文件相关的3个编码块,则可随编码块接收以下的系数向量:
第一个收到的系数向量:[6,90,52]
第二个收到的系数向量:[18,2,128]
第三个收到的系数向量:[231,93,287]
这三个向量可以写成3×3的矩阵(系数矩阵):
(6    90  52)
(18   21  28)
(231  93  287)
矩阵求逆可能很复杂,但是在所有情况下(只要矩阵是满秩的)求逆是可能的。消息传递算法,又被称为置信传播算法及和-积算法能够简化矩阵,但是由于渐进式迭代求解可能失败,所以并不总是可行。
在第一解码优化示例中,如图10所示结合上述两种解码技术。首先,从节点所接收到的所有编码块中标识那些级数i较小的编码块,即那些来自原始文件的较少数目(i)的未编码块的线性组合产生的编码块(步骤1001)。然后,使用一种保留了矩阵稀疏特性的诸如消息传递的技术对这些被选中的块进行尽可能地解码(步骤1002)。尽可能地化简矩阵后,在部分或者整个矩阵上使用矩阵求逆来完成解码过程(步骤1003)。
一个解码过程的例子描述如下。设有下列矩阵:
3 1 0 0 0 7 0 0 1 2 2 4 5 6 1 8
其中矩阵中的各元素项是编码系数。第一步,标识第二行含有单个非零元素,从矩阵的其它行消去此行得到如下矩阵:
3 0 0 0 0 1 0 0 1 0 2 4 5 0 1 8
此次化简产生了一个新的只含单个非零元素的行(即第一行)。从矩阵中剩下的部分消去此行得到:
1 0 0 0 0 1 0 0 0 0 2 4 0 0 1 8
目前矩阵的最下面部分不能进一步化简,因此执行矩阵求逆得到如下最终的矩阵:
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
在算法的每一步中都会有下面两个事件发生:系数矩阵的化简,以及,编码内容的更新。结果,在算法结束时,原始信息已被恢复。
图10中的解码过程可以在节点已收到要求数量的块时开始,并且节点已停止进一步接收块。这样做可能是有利的,因为它允许矩阵的化简(在步骤1002中)在具有尽量多的信息基础上大规摸地进行。这使得矩阵求逆过程(步骤1003)更简单。
作为替换,如图11的示例性流程图所示,解码过程在节点在继续接收附加块的同时开始。当节点收到每一个新块后(步骤1101)时,它决定此接收块(可能是编码块)能否用来解码其它块(步骤1102)。如果新收到的块被确定不允许任何解码,节点将等待接收下一个块(步骤1101)。但如果新接收的块确实能够用来进一步解码,则开始解码(步骤1103)。当解码阶段不能再进行下去时,则节点确定解码是否完成(步骤1104),如果没有完成,节点等待下一个能够帮助解码的块的到来(步骤1101)。一旦所有块被解码,该过程停止(步骤1105)。解码过程(在步骤1103中)可参照图10使用上面描述的技术或任何其它合适的解码技术。与接收块并行地解码是有益的,因为此时解码的代价(在时间上和处理负荷上)在时间上被分散并且还因为解码开始地较早,其结束也应较早。
有许多算法可以用来确定接收到的块是否能用来解码其它块(步骤1102)。在第一示例中,节点确定接收到的新块是否仅从原始文件中的单个块(例如,块A)编码而得。如果是,则搜索系数矩阵以确定级数为2的且其中两个块之一是块A的编码块,例如块A&B。根据接收的块A和A&B,块B可以被确定。接下来,搜索系数矩阵以找出级数为2的两个编码块且其中两个编码块之一是块B,并且还找出级数为3的编码块,且其中三个块中的两个块是块A和B。这是一个迭代过程,该迭代过程在接收 到所有编码块时会导致最终解码过程的显著简化。另一示例中,节点可确定新接收到的编码块是否定义了一个可用矩阵求逆来求解的子矩阵。例如,如果新接收到的块的系数向量只在第1,2,3和10列有非零元素项,则可只在系数矩阵中的第1,2,3和10列搜索包含非零元素项的其它行。如果能标识另外3个这样的行,则可对该子矩阵执行矩阵求逆以解码第1,2,3和10个原始块。
在第二解码优化示例中,多个块可以被读入存储器且被并行解码。例如,原文件被划分为多个段(见上述第一编码优化示例),与一个段有关的所有块可被载入存储器并在随后被并行解码。段可以被顺序选择,使得解码过程将优先权给予来自较早段的块。这在数据涉及视频流时特别有利,因为较早需要的段在较晚需要的段之前被解码。在原始文件没被划分为段的系统中也可以应用这一并行解码技术。再次,所有接收到的块的子集被读入存储器并被并行解码,而该子集可由在系数矩阵的特定列中有一个非零值的所有块来定义,例如由块A和其它块线性组合而产生的所有块来定义。通过以这种对整个解码过程划分,算术运算的次数可从O(n2)降为O(n*k),其中n为原始文件中块的数量,k是段/子集中块的数量。
在第三解码优化示例中,使用一个滑动窗口跨所有已接收的块用于解码。这种优化提供了一种对磁盘和OS高速缓存高效的利用并允许操作系统辅助准备以供解码。在这个示例中,每个编码块的一小部分或窗口(例如,10KB)被载入存储器并分配一块缓冲区用来解码每个块的相应部分。一旦块的相应部分被解码,该部分就可被写入磁盘。因为这些编码块相继的各部分被顺序处理,操作系统就可以与前一个块的解码并行地预先加载每个块的下一部分数据,因此使得解码每部分间的延迟最小化。
上面的描述涉及的解码优化可以用来降低对从网络中其它节点接收的数据块进行解码所需的处理负荷和时间。每一个上述优化可独立于其它的优化实现,或者也可以组合使用两种或多种优化技术而进一步增进对编码过程的优化。解码优化可以附加先前描述的任何编码优化技术一并实现,也可与编码优化技术分开实现。
上面的描述涉及文件分布系统。上述的这些优化技术也可以应用于文 件共享应用。
本领域的技术人员将认识到用于存储程序指令的存储设备可分布在网络上。例如,远程计算机可存储描述为软件的该过程的示例。本地或终端计算机可访问远程计算机并下载该软件的一部分或全部以运行该程序。可替换地,本地计算机可按需下载软件的片断,或者可以在本地终端上执行一些软件指令而在远程计算机(或计算机网络)上执行一些软件指令。本领域的技术人员将认识到,通过使用本领域技术人员已知的常规技术,软件指令的全部或部分可由专用电路如DSP、可编程逻辑阵列等来执行。
如对于本领域的技术人员而言,显然此处给出的任何范围或者设备值可以被扩展或者改变而不失去所寻求的效果。
文本中描述的各方法步骤可以在需要时按任何合适的次序或同时执行。
可以理解,上面对于较佳实施例的描述仅仅是作为例子给出的,而本领域的技术人员可以做出多种改变。

Claims (4)

1.一种对经网络分布的内容进行编码的方法,所述内容被分成多个数据的未经编码的数据块,所述方法包括:
为新的编码块选择目标级数,其中编码块的级数是从中创建所述编码块的未编码块的数量;
尝试从编码块的存储中选择多个编码块以创建具有级数不超过所述目标级数的新的编码块,在所述编码块的存储中的每个编码块包括一个或多个未编码块的线性组合;
如果所述尝试失败,将所述目标级数递增1并重复所述尝试步骤;以及
如果所述尝试成功,从所选的多个编码块的线性组合创建所述新的编码块。
2.如权利要求1所述的方法,其特征在于,所选的多个编码块包括可从中创建具有级数不超过目标级数的新编码块的编码块最大数。
3.如权利要求1或2所述的方法,其特征在于,还包括:
存储所述新的编码块。
4.如权利要求1所述的方法,其特征在于,新编码块的创建使用预先计算的查找表。
CN2006800489952A 2005-12-22 2006-12-04 对经网络分布的内容进行编码的方法 Expired - Fee Related CN101346996B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP05270098A EP1801979B1 (en) 2005-12-22 2005-12-22 Encoding and decoding optimisations for network coding
EP05270098.6 2005-12-22
PCT/US2006/046207 WO2007075263A1 (en) 2005-12-22 2006-12-04 Encoding and decoding optimisations

Publications (2)

Publication Number Publication Date
CN101346996A CN101346996A (zh) 2009-01-14
CN101346996B true CN101346996B (zh) 2011-08-03

Family

ID=36051406

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800489952A Expired - Fee Related CN101346996B (zh) 2005-12-22 2006-12-04 对经网络分布的内容进行编码的方法

Country Status (7)

Country Link
US (1) US9729624B2 (zh)
EP (1) EP1801979B1 (zh)
KR (1) KR101323038B1 (zh)
CN (1) CN101346996B (zh)
AT (1) ATE470993T1 (zh)
DE (1) DE602005021807D1 (zh)
WO (1) WO2007075263A1 (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7706365B2 (en) * 2003-11-25 2010-04-27 California Institute Of Technology Randomized distributed network coding
US8224868B2 (en) * 2008-07-31 2012-07-17 Verizon Patent And Licensing Inc. Network coding with last modified dates for P2P web caching
US9258361B2 (en) * 2009-04-08 2016-02-09 New Jersey Institute Of Technology Transferring data among nodes on a network
ES2742286T3 (es) 2010-03-25 2020-02-13 Massachusetts Inst Technology Codificación de red segura para transmisión por secuencias de vídeo, inalámbrica de multirresolución
US10530574B2 (en) 2010-03-25 2020-01-07 Massachusetts Institute Of Technology Secure network coding for multi-description wireless transmission
US8693501B2 (en) * 2010-11-23 2014-04-08 The Chinese University Of Hong Kong Subset coding for communication systems
WO2013006697A2 (en) 2011-07-05 2013-01-10 Massachusetts Institute Of Technology Energy-efficient time-stampless adaptive nonuniform sampling
US9143274B2 (en) 2011-10-31 2015-09-22 Massachusetts Institute Of Technology Traffic backfilling via network coding in a multi-packet reception network
ES2884092T3 (es) 2011-11-05 2021-12-10 Massachusetts Inst Technology Método y aparato para una transmisión eficaz de información a múltiples nodos
US8780693B2 (en) 2011-11-08 2014-07-15 Massachusetts Institute Of Technology Coding approach for a robust and flexible communication protocol
US9237107B2 (en) 2011-11-15 2016-01-12 New Jersey Institute Of Technology Fair quantized congestion notification (FQCN) to mitigate transport control protocol (TCP) throughput collapse in data center networks
US9537759B2 (en) 2012-01-31 2017-01-03 Massachusetts Institute Of Technology Multi-path data transfer using network coding
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
WO2014014761A1 (en) 2012-07-16 2014-01-23 Code On Network Coding, Llc Deterministic distributed network coding
US9369255B2 (en) 2012-10-18 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for reducing feedback and enhancing message dissemination efficiency in a multicast network
US9607003B2 (en) 2013-03-14 2017-03-28 Massachusetts Institute Of Technology Network coded storage with multi-resolution codes
US9369541B2 (en) 2013-03-14 2016-06-14 Massachusetts Institute Of Technology Method and apparatus for implementing distributed content caching in a content delivery network
JP2016513825A (ja) 2013-03-14 2016-05-16 マサチューセッツ インスティテュート オブ テクノロジー 安全通信方法および装置
US9185529B2 (en) 2013-03-15 2015-11-10 Massachusetts Institute Of Technology Wireless reliability architecture and methods using network coding
US9019643B2 (en) 2013-03-15 2015-04-28 Massachusetts Institute Of Technology Method and apparatus to reduce access time in a data storage device using coded seeking
CN104079661A (zh) * 2014-07-14 2014-10-01 昆明联诚科技股份有限公司 一种基于网络编码的p2p流媒体数据调度方法
CN110710141B (zh) 2017-03-29 2022-05-31 麻省理工学院 针对基于滑动窗口网络编码的分组生成的系统与技术
CN112385159A (zh) 2018-05-16 2021-02-19 网络编码代码有限责任公司 多路径编码装置及相关技术
CN109347604B (zh) * 2018-10-26 2021-01-19 香港中文大学(深圳) 一种基于分批稀疏码的多跳网络通信方法和系统
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

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721878A (en) * 1995-06-07 1998-02-24 International Business Machines Corporation Multimedia control system and method for controlling multimedia program presentation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5144304A (en) * 1989-07-17 1992-09-01 Digital Equipment Corporation Data and forward error control coding techniques for digital signals
US5440344A (en) * 1992-04-28 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Video encoder using adjacent pixel difference for quantizer control
JP3336754B2 (ja) * 1994-08-19 2002-10-21 ソニー株式会社 デジタルビデオ信号の記録方法及び記録装置
US5923786A (en) * 1995-07-17 1999-07-13 Sony Corporation Method and device for encoding and decoding moving images
JP4142180B2 (ja) * 1998-10-29 2008-08-27 富士通株式会社 動きベクトル符号化装置および復号装置
US6466999B1 (en) * 1999-03-31 2002-10-15 Microsoft Corporation Preprocessing a reference data stream for patch generation and compression
JP3800022B2 (ja) * 2000-04-07 2006-07-19 ティアック株式会社 光ディスク記録装置
EP1231788A1 (en) * 2001-02-12 2002-08-14 Koninklijke Philips Electronics N.V. Arrangement for distributing content, profiling center, receiving device and method
FR2830143B1 (fr) * 2001-09-21 2004-02-27 St Microelectronics Sa Procede et dispositif de compression d'un signal d'image
CN1312927C (zh) * 2002-07-15 2007-04-25 株式会社日立制作所 动态图像编码方法及解码方法
US6825782B2 (en) * 2002-09-20 2004-11-30 Ntt Docomo, Inc. Method and apparatus for arithmetic coding and termination
US20060188014A1 (en) * 2005-02-23 2006-08-24 Civanlar M R Video coding and adaptation by semantics-driven resolution control for transport and storage
US20060224760A1 (en) * 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721878A (en) * 1995-06-07 1998-02-24 International Business Machines Corporation Multimedia control system and method for controlling multimedia program presentation

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Chuan Wu等.Optimal Peer Selection for Minimum-Delay Peer-to-Peer Streaming with Rateless Codes.PROCEEDINGS OF THE ACM WORKSHOP ON ADVANCES IN PEER-TO-PEER MULTIMEDIA STREAMING.2005,69-78. *
Ralf Koetter.An Algebraic Approach to Network Coding.IEEEVOL.11 NO.5.2003,VOL.11(NO.5),782-795. *
RalfKoetter.AnAlgebraicApproachtoNetworkCoding.IEEEVOL.11NO.5.2003 VOL.11(NO.5)

Also Published As

Publication number Publication date
ATE470993T1 (de) 2010-06-15
KR101323038B1 (ko) 2013-10-29
WO2007075263A1 (en) 2007-07-05
DE602005021807D1 (de) 2010-07-22
KR20080086462A (ko) 2008-09-25
US20090248898A1 (en) 2009-10-01
EP1801979B1 (en) 2010-06-09
EP1801979A1 (en) 2007-06-27
US9729624B2 (en) 2017-08-08
CN101346996A (zh) 2009-01-14

Similar Documents

Publication Publication Date Title
CN101346996B (zh) 对经网络分布的内容进行编码的方法
Shariatpanahi et al. Multi-message private information retrieval with private side information
US8117173B2 (en) Efficient chunking algorithm
CN101741838B (zh) 用于减少冗余数据块或其传输的方法和系统
US5990810A (en) Method for partitioning a block of data into subblocks and for storing and communcating such subblocks
US8631269B2 (en) Methods and system for replacing a failed node in a distributed storage network
US8929402B1 (en) Systems and methods for compressing packet data by predicting subsequent data
US20170038978A1 (en) Delta Compression Engine for Similarity Based Data Deduplication
US7984018B2 (en) Efficient point-to-multipoint data reconciliation
US8089379B2 (en) Variable length decoding apparatus and method
EP1641219A2 (en) Efficient algorithm for finding candidate objects for remote differential compression
MX2012014730A (es) Optimizacion de almacenamiento y transmision de datos.
JP2007202146A (ja) 分散データ複製の方法と装置
CN105144722A (zh) 具有多分辨率代码的网络编码存储
JPH06224777A (ja) 符号化方法、符号化装置、復号方法、復号器、データ圧縮装置、ビットストリーム生成方法及び遷移マシン生成方法
WO2016130091A1 (en) Methods of encoding and storing multiple versions of data, method of decoding encoded multiple versions of data and distributed storage system
US6741191B2 (en) Huffman decoding method and apparatus
AU2002234168A1 (en) Method and apparatus for encoding information using multiple passes and decoding in a single pass
GB2608030A (en) Power-aware transmission of quantum control signals
Lei et al. NCStorage: A Prototype of Network Coding-based Distributed Storage System
US11914443B2 (en) Power-aware transmission of quantum control signals
CN110362537B (zh) 基于锯齿解码的全参数私有信息检索方法
US7375657B2 (en) Method and system for performing streaming of encoded data
EP2434413B1 (en) Method and distributed computing system for synchronizing data-sets stored on different communication devices
Sree et al. Coded data rebalancing for decentralized distributed databases

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
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150506

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150506

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110803

Termination date: 20191204

CF01 Termination of patent right due to non-payment of annual fee