CN102804661B - 通信系统中的对象的块聚合 - Google Patents

通信系统中的对象的块聚合 Download PDF

Info

Publication number
CN102804661B
CN102804661B CN201180012012.0A CN201180012012A CN102804661B CN 102804661 B CN102804661 B CN 102804661B CN 201180012012 A CN201180012012 A CN 201180012012A CN 102804661 B CN102804661 B CN 102804661B
Authority
CN
China
Prior art keywords
source
independent object
symbol
block
aggregate objects
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
CN201180012012.0A
Other languages
English (en)
Other versions
CN102804661A (zh
Inventor
M·G·卢比
M·沃森
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN102804661A publication Critical patent/CN102804661A/zh
Application granted granted Critical
Publication of CN102804661B publication Critical patent/CN102804661B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0056Systems characterized by the type of code used
    • H04L1/0057Block 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/27Coding, 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 using interleaving techniques
    • 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/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon 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/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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • 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/63Joint error correction and other techniques
    • H03M13/635Error control coding in combination with rate matching
    • H03M13/6356Error control coding in combination with rate matching by repetition or insertion of dummy data, i.e. rate reduction
    • 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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/0056Systems characterized by the type of code used
    • H04L1/0071Use of interleaving

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)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

一种将m个单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的方法,所述m个单独对象从对象1到对象m排序,其中m>1,所述方法包括:将所述m个单独对象聚合到聚合对象中,包括:针对每个单独对象j,计算用于包含该单独对象j的数据的源符号的数量S(j);并且将所述聚合对象划分成Z个源块,包括:针对每个源块k和每个单独对象j,计算源块k中的单独对象j的源符号的数量NSS(j,k),其中,针对每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。

Description

通信系统中的对象的块聚合
相关申请的交叉引用
出于所有的目的,下列参考文件被包含于此并且通过引用的方式合并入本文:授予Luby等人的标题为“File Download and Streaming System”的美国专利No.7,418,651(下文称为“Luby I”)。
背景技术
通过通信信道在发送方和接收方之间进行文件和流的传输已经是很多文献的主题。优选地,接收方期望在某一级别的确定性下接收由发送方通过信道发送的数据的准确副本。在信道不具有最佳保真度(这涵盖了几乎所有在物理上可实现的系统)的情况下,关心的一个问题是如何处理传输中丢失或者混淆的数据。与遭破坏的数据(差错)相比,丢失的数据(擦除)通常更容易处理,因为接收方在遭破坏的数据被错误地接收到时并不总是能够进行辨认。已经开发了很多纠错码来纠正擦除和/或差错。通常,所使用的特定码是根据与正在通过其传输数据的信道的失真以及正在传输的数据的属性有关的某种信息来选择的。例如,在已知该信道具有长期失真的情况下,突发差错码可能最适用于该应用场合。在预见到只有短的、不频发的错误的情况下,简单的奇偶校验码可能是最佳的。
当发射机和接收机具有通信所需要的所有计算能力和电功率,并且发射机和接收机之间的信道足够干净以允许相对无差错的通信时,数据传输是简单的。当信道处于不利环境中或者发射机和/或接收机具有有限的能力时,数据传输问题变得比较困难。
一个解决方案是使用前向纠错的(FEC)技术,其中数据是在发射机处被编码的,以使得接收机能够从传输擦除和差错中恢复。在可行的情况下,从接收机到发射机的反向信道允许接收机与发射机就差错进行交流,然后,发射机能够相应地调整其发送过程。然而,反向信道常常是不可用的或者是不可行的。例如,当发射机向大量接收机发送时,发射机可能无法处理来自所有这些接收机的反向信道。因此,通信协议常常需要被设计成没有反向信道,这样一来,发射机可能不得不在没有全面观察大范围变化的信道状况的情况下处理这些信道状况。
当接收机需要是可能便携或者移动的低功耗小设备并且需要以高带宽接收数据时,发射机和接收机之间数据传输的问题变得更加困难。例如,可以建立无线网络,以便以广播或多播方式从固定的发射机向大量或不确定数量的便携或移动接收机传送文件或流,其中,该接收机在它们的计算能力、存储器尺寸、可用的电功率、天线尺寸、设备尺寸、以及其它设计约束方面是受到限制的。
在这样的系统中,要处理的考虑因素包括:几乎没有或者完全没有反向信道、有限的存储器、有限的计算周期、移动性以及定时。优选地,设计方案应当最小化向可能数量众多的接收机传送数据所需要的传输时间量,其中,各个接收机可能在不可预知的时刻接通和断开,可能移动到所及范围内或外,可能由于链路错误、小区变化、小区拥塞(其迫使临时丢弃较低优先级的文件或流分组)等而遭受损失。
在用于数据传输的分组协议的情况下,要通过分组网络发送的文件、流或其它数据块被划分成相等尺寸的输入符号,并且输入符号被放入连续分组中。输入符号的“尺寸”可以以比特来度量,不管该输入符号是否被实际分割成比特流,其中,当输入符号是选自于2M个符号的字母表时,该输入符号具有M比特的尺寸。在这类基于分组的通信系统中,面向分组的编码方案可能是合适的。如果文件传输允许预期接收方恢复原始文件的准确副本,即使面临网络中的擦除时亦是如此,则该文件传输被认为是可靠的。如果流传输允许预期接收方及时地恢复流的每个部分的准确副本,即使面临网络中的擦除时亦是如此,则该流传输被认为是可靠的。文件或者流的某些部分不可恢复(或者对于流,该流的某些部分不能被及时恢复),在这个意义上讲,文件传输和流传输两者可能在某种程度上还是可靠的。分组丢失常常发生,因为不定时发生的拥塞导致路由器中的缓冲机构满负荷,从而迫使其丢弃输入分组。在传输期间进行对抗擦除的保护,已经成为许多研究的课题。
已知使用链式反应码能够用于从文件或者流的输入符号产生任意数量的输出符号。这有很多用处,包括按照与信息复制方式相反的信息添加方式来产生输出符号,其中,信息复制方式是接收机接收附加数据(该附加数据复制该接收机已知的数据)。用于产生、使用以及操作链式反应码的新技术在例如授予Luby的标题为“Information Additive Code Generator andDecoder for Communication Systems”的美国专利No.6,307,487(“LubyII”)、授予Luby等人的标题为“Information Additive Group Code Generatorand Decoder for Communication Systems”的美国专利No.6,320,520(下文称之为“Luby III”)、以及授予Shokrollahi等人的标题为“Multi-Stage CodeGenerator and Decoder for Communication Systems”的美国专利No.7,068,729(下文称之为“Shokrollahi”)中示出。在允许的范围内,出于所有的目的,以引用的方式将它们的全部公开内容合并入本文。
链式反应编码器所产生的输出符号的一个属性是:接收机一接收到足够的输出符号,就能够恢复原始文件或者原始流的块。具体地,为了以高概率恢复原始的K个输入符号,接收机需要大约K+A个输出符号。比值A/K被称为“相对接收开销(relative reception overhead)”。相对接收开销取决于输入符号的数量K和解码器的可靠性。例如,在一个具体实施例中,在K等于60,000的情况下,5%的相对接收开销确保了解码器以至少1-10-8的概率将输入文件或者流的块成功解码;而在K等于10,000的情况下,15%的相对接收开销确保了解码器的同样的成功概率。在一个实施例中,链式反应码的相对接收开销可以如下计算:(13*sqrt(K)+200)/K,其中sqrt(K)是输入符号的数量K的平方根。在该实施例中,对于K的小取值,链式反应码的相对接收开销趋向于较大。
Luby II、Luby III和Shokrollahi提供了可以在本公开内容中描述的某些实施例中使用的系统和方法的教导。然而,应当理解,Luby II、Luby III和Shokrollahi系统和方法并不是本公开内容中所描述的装置、系统和方法所必需的,并且很多其它变型、修改或替换也是可以使用的。
还已知使用多级链式反应(“MSCR”)码,比如在Shokrollahi中所描述的并且由Digital Fountain公司以商标名称“Raptor”码开发的那些MSCR码。例如,多级链式反应码用于编码器,该编码器接收来自源文件或源流的输入符号,根据该输入符号生成中间符号,并且使用链式反应码对这些中间符号进行编码。更具体地,根据要发送的经排序的一组输入符号生成多个冗余符号。根据包含有输入符号和冗余符号的组合符号集合生成多个输出符号,其中,可能的输出符号的数量比组合符号集合中的符号数量大得多,其中,至少一个输出符号是根据组合符号集合中的一个以上符号并且根据组合符号集合中的不到全部符号生成的,从而能够根据任意预定数量N的输出符号来重新生成经排序的一组输入符号,以达到期望的准确程度。
对于某些应用而言,码的其它变型可能是更适合或者更优选的。
当以广播、多播或者其它设置来传送多个对象(例如,文件)时,与对各个小对象应用FEC编码以进行传送相比,将多个小对象捆绑成一个较大对象并随后对该大对象应用FEC编码以进行传送往往是更高效的。然而,对于接收机处可用于进行FEC解码的存储器的量通常存在约束条件,并且该约束条件通常对能够在其上高效执行FEC解码的源块的尺寸设置上限。
发明内容
一种将m个单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的示例性方法,所述m个单独对象从对象1到对象m排序,其中m>1,根据本公开内容,该方法包括:将所述m个单独对象聚合到聚合对象中,包括:针对每个单独对象j(j=1到m),计算用于包含该单独对象j的数据的源符号的数量S(j);以及将所述聚合对象划分成Z个源块,包括:针对每个源块k(k=0到Z-1)和每个单独对象j(j=1到m),计算源块k中的单独对象j的源符号的数量NSS(j,k),其中,每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。
该方法的实施例可以包括下列特征中的一个或多个。每个单独对象j的数据的字节是在该单独对象j的S(j)个源符号内连续布置的,从源符号0开始,到源符号S(j)-1。该方法进一步包括:向所述m个单独对象的一个或多个源符号填充零值。将聚合对象划分成Z个源块的步骤进一步包括:针对从1到m的每个整数j,计算开头j个单独对象中的源符号的聚合数量SS(j),其中,SS(0)=0,并且SS(j)是从1到j的所有整数i的S(i)之和。该方法进一步包括:对所述聚合对象的所述Z个源块进行编码,以产生修复符号。该方法进一步包括:将所述源符号映射到源分组,并且将所述修复符号映射到修复分组。该方法进一步包括:向所述接收机发送所述源分组和所述修复分组中的一个或多个。
一种用于对为了在通信系统中从发射机向接收机传送数据而被映射到源符号的单独对象进行恢复的示例性方法,所述单独对象与其它单独对象聚合到聚合对象中,所述聚合对象划分成一个或多个源块,所述单独对象的所述源符号是在所述聚合对象的连续的源块内连续布置的,该方法包括:接收一个或多个数据分组,每个数据分组包括所述单独对象的至少一个源符号、或者至少一个修复符号,所述至少一个修复符号包含针对所述聚合对象的源块中的一个源块的修复数据,该源块包括所述单独对象的至少一个源符号;以及使用所接收的一个或多个数据分组来恢复所述单独对象。
该方法的实施例可以包括如下特征:其中,恢复所述单独对象的步骤进一步包括:使用所接收的一个或多个数据分组和之前得到的所述单独对象的一个或多个源符号来恢复所述单独对象。
一种配置为将m个单独对象映射到源符号以便在通信系统中向接收机传送数据的装置,所述m个单独对象从对象1到对象m排序,其中m>1,该装置包括处理器,该处理器配置为:将所述m个单独对象聚合到聚合对象中并且将所述聚合对象划分成Z个源块,包括:针对每个单独对象j(j=1到m),计算用于包含该单独对象j的数据的源符号的数量S(j),以及针对每个源块k(k=0到Z-1)和每个单独对象j(j=1到m),计算源块k中的单独对象j的源符号的数量NSS(j,k),其中,每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。
该装置的实施例可以包括下列特征中的一个或多个。每个单独对象j的数据的字节是在该单独对象j的S(j)个源符号内连续布置的,从源符号0开始,到源符号S(j)-1。所述处理器进一步配置为:向所述m个单独对象的一个或多个源符号填充零值。所述处理器进一步配置为:计算开头j个单独对象中的源符号的聚合数量SS(j),其中,SS(0)=0,并且SS(j)是从1到j的所有整数i的S(i)之和。所述装置进一步包括编码器,所述编码器通信地耦合到所述处理器并且配置为:对所述聚合对象的Z个源块进行编码以产生修复符号。所述处理器进一步配置为:将所述源符号映射到源分组,并且将所述修复符号映射到修复分组。所述装置进一步包括发射机,所述发射机配置为:向所述接收机发送所述源分组和所述修复分组中的一个或多个。
一种配置为对为了在通信系统中从发射机传送数据而被映射到源符号的单独对象进行恢复的装置,所述单独对象与其它单独对象聚合到聚合对象中,所述聚合对象划分成一个或多个源块,所述单独对象的所述源符号是在所述聚合对象的连续源块内连续布置的,该装置包括:接收机,其配置为接收一个或多个数据分组,每个数据分组包括所述单独对象的至少一个源符号、或者至少一个修复符号,所述至少一个修复符号包含针对所述聚合对象的源块中的一个源块的修复数据,该源块包括所述单独对象的至少一个源符号;以及处理器,其通信地耦合到所述接收机并且配置为使用所接收的一个或多个数据分组来恢复所述单独对象。
该装置的实施例可以包括如下特征:其中,所述处理器进一步配置为:使用所接收的一个或多个数据分组和之前得到的所述单独对象的一个或多个源符号来恢复所述单独对象。
一种用于将m个单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的计算机程序产品,所述m个单独对象从对象1到对象m排序,其中m>1,该计算机程序产品包括存储有处理器可读指令的处理器可读介质,所述处理器可读介质配置为使处理器执行以下操作:将所述m个单独对象聚合到聚合对象中,包括:针对每个单独对象j(j=1到m),计算用于包含该单独对象j的数据的源符号的数量S(j);以及将所述聚合对象划分成Z个源块,包括:针对每个源块k(k=0到Z-1)和每个单独对象j(j=1到m),计算源块k中的单独对象j的源符号的数量NSS(j,k),其中,每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。
该产品的实施例可以包括下列特征中的一个或多个。所述处理器可读介质进一步配置为使处理器执行以下操作:在每个单独对象j的S(j)个源符号内连续布置该单独对象j的数据的字节,从源符号0开始,到源符号S(j)-1。所述处理器可读介质进一步配置为使处理器执行以下操作:向所述m个单独对象的一个或多个源符号填充零值。所述处理器可读介质进一步配置为使处理器执行以下操作:针对从1到m的每个整数j,计算开头j个单独对象中的源符号的聚合数量SS(j),其中,SS(0)=0,并且SS(j)是从1到j的所有整数i的S(i)之和。所述处理器可读介质进一步配置为使处理器执行以下操作:对所述聚合对象的所述Z个源块进行编码,以便产生修复符号。所述处理器可读介质进一步配置为使处理器执行以下操作:将源符号映射到源分组,并且将修复符号映射到修复分组。所述处理器可读介质进一步配置为使处理器执行以下操作:向所述接收机发送所述源分组和所述修复分组中的一个或多个。
一种用于对为了在通信系统中从发射机向接收机传送数据而被映射到源符号的单独对象进行恢复的计算机程序产品,所述单独对象与其它单独对象聚合到聚合对象中,所述聚合对象划分成一个或多个源块,所述单独对象的所述源符号是在所述聚合对象的连续源块内连续布置的,所述计算机程序产品包括:保存有处理器可读指令的处理器可读介质,所述处理器可读介质配置为使处理器执行以下操作:接收一个或多个数据分组,每个数据分组包括所述单独对象的至少一个源符号、或者至少一个修复符号,所述至少一个修复符号包含针对所述聚合对象的源块中的一个源块的修复数据,该源块包括所述单独对象的至少一个源符号;以及使用所接收的一个或多个数据分组来恢复所述单独对象。
该实施例可以包括如下特征:其中,所述处理器可读介质进一步配置为使处理器执行以下操作:使用所接收的一个或多个数据分组和之前得到的所述单独对象的一个或多个源符号来恢复所述单独对象。
一种配置为将m个单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的系统,所述m个单独对象从对象1到对象m排序,其中m>1,该系统包括:用于将所述m个单独对象聚合到聚合对象中的模块,包括:针对每个单独对象j(j=1到m),计算用于包含该单独对象j的数据的源符号的数量S(j);以及用于将所述聚合对象划分成Z个源块的模块,包括:针对每个源块k(k=0到Z-1)和每个单独对象j(j=1到m),计算源块k中的单独对象j的源符号的数量NSS(j,k),其中,每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。
该系统的实施例可以包括下列特征中的一个或多个。每个单独对象j的数据的字节是在该单独对象j的S(j)个源符号内连续布置的,从源符号0开始到源符号S(j)-1。所述系统进一步包括:用于向所述m个单独对象的一个或多个源符号填充零值的模块。用于将所述聚合对象划分成Z个源块的模块进一步包括:用于针对从1到m的每个整数j,计算开头j个单独对象中的源符号的聚合数量SS(j)的模块,其中,SS(0)=0,并且SS(j)是从1到j的所有整数i的S(i)之和。所述系统进一步包括:用于对所述聚合对象的所述Z个源块进行编码以产生修复符号的模块。所述系统进一步包括:用于将所述源符号映射到源分组并且将所述修复符号映射到修复分组的模块。所述系统进一步包括:用于向所述接收机发送所述源分组和所述修复分组中的一个或多个的模块。
一种配置为对为了在通信系统中从发射机向接收机传送数据而被映射到源符号的单独对象进行恢复的系统,所述单独对象与其它单独对象聚合到聚合对象中,所述聚合对象划分成一个或多个源块,所述单独对象的所述源符号连续布置在所述聚合对象的连续的源块内,该系统包括:用于接收一个或多个数据分组的模块,每个数据分组包括所述单独对象的至少一个源符号、或者至少一个修复符号,所述至少一个修复符号包含针对所述聚合对象的源块中的一个源块的修复数据,该源块包括所述单独对象的至少一个源符号;以及用于使用所接收的一个或多个数据分组来恢复所述单独对象的模块。
该系统的实施例可以包括如下特征:其中,用于恢复所述单独对象的模块进一步包括:用于使用所接收的一个或多个数据分组和之前得到的所述单独对象的一个或多个源符号来恢复所述单独对象的模块。
在此描述的项目和/或技术可以提供下列功能中的一个或多个。很多小的单独对象聚合成较大的聚合对象,该较大的聚合对象划分成多个源块,从而即使在通过对源块进行不同的传输FEC编码而具有不同的丢失或差错模式的情况下,仍然获得聚合的网络效率。当存在丢失来自聚合对象的不同的单独对象和/或不同数量的聚合对象的接收机混合类群时,采用块聚合的文件传送高效地运行。当编码和解码所需要的工作存储器小于聚合对象的尺寸时,文件传送照样高效地运行。在接收机中依次处理源块,从而减少或最小化每个接收机需要接收以用于重构聚合对象的数据的量。虽然已经描述了项目/技术-相应的效果,但是通过那些所提及的手段之外的其它手段来实现所提及的效果也是有可能的,并且所提及的项目/技术可能不一定产生所提及的效果。
附图说明
图1是单独对象的块聚合的功能示意图。
图2是用于将单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的过程的流程框图。
图3是用于对为了在通信系统中从发射机向接收机传送数据而被映射到源符号的单独对象进行恢复的过程的流程框图。
在这些图中,具有类似的相关特征和/或特点的部件可以具有相同的附图标记。
具体实施方式
在此描述的技术提供了用于进行单独对象的块聚合以便在通信系统中从发射机向接收机传送数据的机制。将单独对象映射到源符号以便传送数据。将单独对象聚合到聚合对象中,包括:为每个单独对象计算用于包含该单独对象的数据的源符号的数量。然后,将聚合对象划分成一个或多个源块,包括:计算每个源块中的每个单独对象的源符号的数量。对单独对象的映射使得针对每个单独对象的源符号被连续布置在连续的源块内。连续布置的结果是:在单独对象内,只要第一源符号在第二源符号之前,就将第二源符号映射到一个源块,该源块在源块排序中不早于第一源符号所映射到的源块。如果两个源符号都映射到同一源块,则在该源块中,第一源符号在第二源符号之前,并且没有任何其它单独对象的源符号将位于该源块内的第一源符号和第二源符号之间。每个单独对象的数据的字节连续地布置在该单独对象的源符号内,从第一个源符号开始,到最后一个源符号。对聚合对象的源块进行编码,以产生修复符号。将源符号映射到源分组,而将修复符号映射到修复分组。将源分组和修复分组中的一个或多个向接收机发送。单独对象在不同源块上的分布确保了:当每个源块中发生大致相同数量的丢失或差错时,能够高效地重构这些单独对象。其它实施例也在本公开内容和权利要求书的范围内。
虽然本公开内容中描述的一些示例和实施例应用于异步分层编码(ALC)协议,但是所描述的技术不限于针对ALC的应用。所描述的技术能够应用于,例如,使用广播、多播或者单播传输以进行内容传送的其它基于分组的网络系统。可以从所描述的技术受益的系统的一些示例包括:第三代合作伙伴计划(3GPP)多媒体广播和多播服务(MBMS)、手持式数字视频广播(DVB-H)、针对手持设备的数字视频广播-卫星服务(DVB-SH)、高级电视系统委员会(ATSC)移动设备、数字视频广播互联网协议电视(DVB IPTV)以及MediaFLO(例如,用于文件传送服务)。在另一个示例中,所描述的技术可以应用于单播文件传送协议,比如超文本传输协议(HTTP),其中,源块的源符号和修复符号将组成文件以进行传送。
单独对象的块聚合的期望特性
当例如在广播或多播环境中或者使用单播传送基础设施(比如,内容传送网络)向众多接收机传送多个单独对象时,存在若干可能出现的用例。对这些用例中的一些用例的考虑,能够有助于定义用于传送的单独对象的块聚合技术的期望特性。若干期望特性的清单如下,然而也可以另外或者可替换地定义其它特性。
特性1规定:以符号为单位而不是以字节为单位,将数据分组编入索引。这将遵循与针对单个对象的文件传送而定义的索引方案相同的索引方案。例如,在ALC协议中,每个数据分组可以具有相关联的编码符号ID(ESI),ESI指示针对数据分组内所包含的数据的起始符号。
特性2规定:采用块聚合的文件传送应当允许使用系统的FEC码,并且允许使用所接收到的源分组以及修复分组来重构聚合对象。
特性3规定:当存在丢失聚合对象中的不同单独对象和/或不同数量的聚合对象的混合类群的接收机时,采用块聚合的文件传送应当高效地运行。举一个例子,特定的接收机可能已经具有聚合对象的单独对象中的一些(全部或者一部分)。为了恢复该聚合对象,相对于当接收机还不具有单独对象的那些部分时该接收机所需要的修复分组的数量,该特定接收机所需要的修复分组的数量应当被减少该接收机已具有的单独对象的那些部分的聚合尺寸。
特性4规定:当编码和解码所需要的工作存储器小于聚合对象的尺寸时,采用块聚合的文件传送应当高效运行。也就是说,块聚合方案应当支持将聚合对象划分成一个以上的源块。此外,类似于特性1,将聚合对象划分成多个源块应当是自动的并且优化的。特别地,与单个对象的情况一样,对来自源块中每一个源块的大致相同量的数据的接收应当允许对聚合对象进行高效重构,不论在接收机处丢失哪个单独对象(该单独对象是该聚合对象的一部分)。因此,块聚合应当允许通过在接收机中按顺序处理源块从而减小或者最小化每个接收机为重构聚合对象所需接收的数据量,来对聚合对象内的单独对象进行高效重构。
特性5规定:不采用FEC的接收机的应当能够接收已发送的源分组并且直接使用它们,以便恢复尽可能多的聚合对象并且丢弃任何修复分组。
特性6规定:应当结合针对聚合对象的修复分组高效地使用已发送的针对单独对象的源分组,以便高效地重构聚合对象。
特性7规定:只丢失了单独对象(这些单独对象是聚合对象的一部分)中的一些或一些部分的接收机能够以尽可能少的数据接收来恢复丢失的单独对象。此外,具有单独对象(这些单独对象是聚合对象的一部分)中的一些的过时版本的接收机能够以尽可能少的数据接收来得到该单独对象的较新版本。
对期望特性的约束
上面列出的块聚合的期望特性对块聚合技术设置了一些有趣的约束。例如,特性6规定:应当将针对聚合对象内的单独对象所发送的源分组与聚合对象的修复分组一起高效地使用;并且特性1规定:针对单独对象的这些数据分组使用符号索引。这样,特性1和6一起规定:聚合对象内的每个单独对象在源符号边界处开始;此外,聚合对象内的每个源符号包含针对仅一个单独对象的数据。作为另一个示例,特性7还导致如下约束:聚合对象内的每个单独对象在符号边界处开始。
特性4和7一起规定:在聚合对象的源块上尽可能均匀地划分针对单独对象的源符号;针对单独对象的第一部分的源符号应当是第一源块的一部分,并且针对单独对象的最后部分的源符号应当是最后一个源块的一部分。
特性1和4一起规定:与FEC解码器所需要的聚合对象编码有关的信息(例如,ALC协议的FEC对象传输信息(OTI))尽可能少,并且划分方案在聚合对象内并且(在多个源块的情况下)在源块中自动对齐单独对象和它们的符号。这样,划分方案没有提供聚合对象内的单独对象的字节位置,而是自动确定聚合对象内的单独对象的位置,其中,这些单独对象是在符号边界上对齐的。
特性7规定:与FEC解码器所需要的聚合对象编码有关的信息应当优选地指示每个单独对象的哪个版本包含在聚合对象中。然后,接收机能够使用该版本信息来确定这些接收机已经具有聚合对象中的哪些单独对象。因而特性3规定:与当接收机还不具有单独对象的那些部分时所需要修复分组的数量相比,接收机应当需要接收较少的修复分组(例如,减少已知的单独对象的那些部分的尺寸)以恢复聚合对象。
单独对象的块聚合
下面描述用于单独对象的块聚合的技术。一般来说,所描述的技术将多个单独对象聚合到较大的聚合对象中,该较大的聚合对象可以在FEC编码之前被划分成一个或多个源块。单独对象是在聚合对象内以及(如果适用的话)在多个源块内自动对齐的,从而实现上面的期望特性。通过对聚合对象的每个源块进行FEC编码来生成修复符号。源符号和修复符号是分别在源分组和修复分组的有效载荷内,例如通过广播或多播,向一个或多个接收机发送的。
对于块聚合而言,与FEC解码器所需要的聚合对象的编码有关的信息(例如,FEC OTI)包括:聚合对象内的单独对象的数量m、单独对象的字节尺寸B(1)、B(2)、…、B(m),符号字节尺寸T以及聚合对象的源块的数量Z。还提供了单独对象的排序的指示,其中,将第一个单独对象称为对象1,将第二个单独对象称为对象2,等等。在一个示例中,可以对单独对象进行排序,使得所有可能被同一应用使用的相关的单独对象被组合并且连续排序。此外,其它信息可以包括在关于聚合对象编码的信息中。例如,每个单独对象的统一资源标识符(URI)和/或传输对象ID(TOI)可以包括在FEC OTI中,从而使接收机能够知道该单独对象是什么,并且知道该接收机是否已经具有该单独对象的准确副本。针对聚合对象发送的修复分组也可以具有相关联的标识符(例如,TOI),其不同于聚合对象内的单独对象的标识符中的任何一个。
每个源分组包含对象标识符(例如,TOI)和数据标识符(例如,ALC协议的源FEC有效载荷ID),其中,对象标识符标识与有效载荷中的数据相关联的单独对象,数据标识符标识有效载荷中携带的源数据。数据标识符可以指示源分组中所包含的第一个源符号的起始索引(例如,ESI)。如果源分组中有一个以上的符号,则需要为多个符号连续地编索引。
在ALC协议的一个例子中,如果源分组是使用不同的FEC编码ID(例如,FEC编码ID=0,对应于未经FEC编码的方案)发送的,则源FEC有效载荷ID需要与FEC编码ID(例如,两个字节的源块号码(SBN),其后面跟随有两个字节的ESI)相关联。在这种情形中,每个单独对象的FEC OTI需要被接收机接收,并且单独对象的符号尺寸需要与为聚合对象规定的符号尺寸(即,值为T)相同。然而,源块结构在单独对象和聚合对象之间可以有所不同。
聚合对象的每个修复分组包含对象标识符(例如,TOI)和数据标识符(例如,ALC协议的修复FEC有效载荷ID),其中,对象标识符标识聚合对象,数据标识符标识有效载荷中携带的修复数据。数据标识符可以是,例如,SBN(其标识聚合对象内的特定源块)和ESI(其标识从所标识的源块产生的、有效载荷中携带的修复符号)。
将单独对象映射到源符号的过程
参照图2并且进一步参照图1,将单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的过程200包括所示出的步骤。图1是单独对象的块聚合的功能示意图。为图1的示例所选择的参数(即,m、B(j)、T和Z)是任意的而不是限制性的。过程200仅仅是示例性的而不是限制性的。可以例如通过添加、删除或者重新布置步骤,来改变过程200。
在步骤202,处理器(例如,在通信链路的源发射机侧的处理器)接收m个单独对象,其中m>1。这m个单独对象从对象1到对象m进行排序,其中每个单独对象j具有B(j)的字节尺寸。在图1的示例中,m=5个单独对象110是具有B(1)=128kb、B(2)=96kb、B(3)=256kb、B(4)=148kb以及B(5)=172kb的字节尺寸的数据的小文件。这些单独对象110仅仅是示例;单独对象可以有更大或更小的尺寸。
在步骤204,处理器将m个单独对象聚合到聚合对象中。该聚合步骤包括:对于每个单独对象j(j=1到m),计算用于包含有单独对象j的数据的源符号的数量S(j)。源符号的数量S(j)取决于符号字节尺寸T。对于从1到m的每个整数j,S(j)=ceil(B(j)/T)。继续图1的示例,其中T=10kb,单独对象110已经计算出源符号的数量S(1)=13、S(2)=10、S(3)=26、S(4)=15以及S(5)=18。
每个单独对象j的数据的字节是在单独对象j的S(j)个源符号内连续布置的,从源符号0开始,到源符号S(j)-1。可以用零值来填充m个单独对象中的一个或多个源符号。单独对象j的源符号0对应于单独对象j的第一T个字节;单独对象j的源符号1对应于单独对象j的第二T个字节;等等。单独对象j的源符号S(j)-1对应于单独对象j的最后A(j)=B(j)-floor(B(j)/T)*T个字节,其后跟随有具有零值的T-A(j)个填充字节。在图1中,当单独对象110聚合到聚合对象120中时,每个单独对象j包括附加到单独对象j的源数据末尾的零填充125。如果单独对象j具有字节尺寸B(j),其中该字节尺寸B(j)是符号字节尺寸T的整数倍,则单独对象j不需要零填充。
在步骤206,处理器将聚合对象划分成Z个源块,其中Z≥1。所述划分步骤包括:对于每个源块k(k=0到Z-1)以及每个单独对象j(j=1到m),计算源块k中的单独对象j的源符号的数量NSS(j,k)。对于单独对象j和源块k,NSS(j,k)=ceil((SS(j)-k)/Z)-ceil((SS(j-1)-k)/Z),其中SS(j)在下文中定义。单独对象j的S(j)个源符号是在连续的源块内连续布置的,在NSS(j,k)>0的最低索引的源块处开始,前进到NSS(j,k)>0的最高索引的源块。如果单独对象j的源符号的数量S(j)小于源块的数量Z,则并不是所有的Z个源块都将包含该单独对象j的源符号。
划分步骤206可以包括:对于从1到m的每个整数j,计算开头j个单独对象中的源符号的聚合数量SS(j)。该计算包括设置SS(0)=0。对于整数j,SS(j)是从1到j的所有整数i的S(i)之和。在一个步骤中,可以将SS(j)的计算与NSS(j,k)的计算相结合。在图1的示例中,源符号的聚合数量SS(j)计算如下:SS(1)=13、SS(2)=23、SS(3)=49、SS(4)=64以及SS(5)=82。
图1的聚合对象120被划分成Z=2个源块130。因为对于每个单独对象j110而言,S(j)大于Z,所以两个源块130中的每一个包含每个单独对象110的至少一个源符号。在这种情况下,只有最后一个源块(即,源块Z-1)包括零填充125。
在步骤208,编码器(例如,通信链路的源发射机侧的FEC编码器)对聚合对象的Z个源块进行编码,以便产生修复符号。也就是说,对于经编码的每个源块,产生一个或多个修复符号。每个修复符号包含:针对聚合对象的各个编码源块的源符号的修复数据。
在步骤210,处理器将源符号映射到源分组,并且将修复符号映射到修复分组。如上所述,每个分组包含对象标识符和数据标识符。源分组可以包含一个或多个源符号,而修复分组可以包含一个或多个修复符号。
在步骤212,发射机向接收机发送源分组和修复分组中的一个或多个。例如,可以通过广播或多播服务向大量接收机发送分组。
对映射到源符号的单独对象进行恢复的过程
参照图3,用于对为了在通信系统中从发射机向接收机传送数据而被映射到源符号的单独对象进行恢复的过程300包括所示出的步骤。过程300仅仅是示例性的而不是限制性的。可以例如通过添加、删除或者重新布置步骤,来改变过程300。
该单独对象与其它单独对象聚合到聚合对象中,其中,该聚合对象被划分成一个或多个源块。单独对象的源符号是在聚合对象的连续的源块内连续布置的。
在步骤302,接收机(例如,通信链路的接收侧的接收机)接收一个或多个数据分组。每个数据分组包括:单独对象的至少一个源符号,或者至少一个修复符号。如果数据分组包括修复符号,则该修复符号包含聚合对象的源块中的一个源块的修复数据,其中,该相应的源块包括单独对象的至少一个源符号。
在步骤304,处理器(例如,通信链路的接收侧的处理器)使用所接收的一个或多个数据分组来恢复单独对象。如果接收侧(例如,接收客户端设备)已经具有单独对象的可用的一个或多个源符号,则处理器可以使用所述单独对象的所述一个或多个源符号再加上所接收的一个或多个数据分组,来恢复所述单独对象。接收侧可能在之前已经得到所述单独对象的所述一个或多个源符号(例如,根据之前的广播,或者根据之前通过单播进行的检索)。
单独对象的块聚合的属性
当仅存在一个源块(即,Z=1)时,聚合对象中的开头S(1)个源符号对应于单独对象1,接下来的S(2)个源符号对应于单独对象2,等等。聚合对象的最后S(m)个源符号对应于单独对象m。
当存在一个以上的源块(即,Z>1)时,所描述的块聚合技术实现下列属性。
属性A是:每个单独对象j的源符号在源块上尽可能均匀分布。也就是说,对于每个单独对象j,在每个源块中的单独对象j的源符号数量是ceil(S(j)/Z)或者floor(S(j)/Z)。
属性B是:聚合对象的源符号在源块上尽可能均匀分布。也就是说,每个源块中的聚合对象的源符号数量是ceil(SS(m)/Z)或者floor(SS(m)/Z)。
属性C是:源块内的单独对象的源符号的顺序与单独对象的原始顺序相同。然而,如上所述,如果S(j)<Z,则并不是聚合对象中的所有源块都将包含单独对象j的符号。
属性D是:源块中每个单独对象j的源符号的顺序与它们在单独对象j内编入索引的顺序相同。
这些都是期望的属性。属性A确保了递增更新可以是高效的。例如,接收机可能已经具有聚合对象的单独对象中的一些,但是可能丢失聚合对象中的其它单独对象。因为丢失的单独对象的源分组是几乎均匀地分布在源块上的,所以接收机需要接收根据每个源块产生的大致相同数量的修复分组,以恢复整个聚合对象。特别地,如果接收机丢失了X个单独对象,则在多个源块上,接收机从各源块中丢失的源符号数量之间的差异最多为X个。一般来说,预期的差异更接近于sqrt(X)。因此,对于通过可能有突发性丢包的信道进行发送的发送方而言,好的策略是仅产生并发送聚合对象的修复分组,其中,发送方循环地发送修复分组。也就是说,对于每个循环,发送Z个源块中的每个源块的一个修复分组,其中,源块的修复分组包括根据该源块产生的一个或多个修复符号。
属性B确保了对聚合对象的源块的编码和解码仅需要考虑源块的两种尺寸,这至少具有几个好处:(1)根据编码器处的源块产生修复符号,仅需要考虑针对两种不同的源块尺寸来产生两种不同模式的修复分组;(2)对于编码或解码每个源块而言,在编码器和解码器处所需要的存储器的量是几乎相同的;以及(3)如果接收机不具有聚合对象的任何单独对象,则在多个源块上,接收机从每个源块中丢失的源符号的数量之间的差异最多是一个。
属性C和D确保了:如果接收机按顺序对源块进行解码,则将从头到尾恢复单独对象。这样的一个优点是,在第一个源块被解码之后,同时正在对第二个源块进行解码时,能够将单独对象的起始部分输入其它应用中。属性C和D还确保了:单独对象的已恢复部分的顺序与单独对象的原始顺序是相同的。这能够使聚合对象内的单独对象按照如下方式排序:相关的单独对象(例如,所有这些单独对象可能由同一应用所使用)是连续的。
所实现的块聚合的期望特性
所公开的用于块聚合的技术实现了上述单独对象的块聚合的期望特性。
特性1规定:数据分组是以符号为单位而不是以字节为单位而被编入索引的。块聚合技术实现了特性1。举一个使用ALC协议的例子,源分组和修复分组两者的FEC有效载荷ID会包含ESI,该ESI标识分组携带哪些符号。
特性2规定:采用块聚合的文件传送应当允许使用系统的FEC码,并且允许使用所接收到的源分组以及修复分组来重构聚合对象。块聚合技术实现了特性2,从而允许针对聚合对象内的单独对象发送源分组,并且确保修复分组可用于高效地重构聚合对象的任何丢失的源符号。
特性3规定:当存在完全或部分丢失来自聚合对象的不同单独对象和/或丢失不同数量的聚合对象的混合类群的接收机时,采用块聚合的文件传送应当高效地运行。所公开的在聚合对象的源块上对单独对象进行的划分实现了特性3。
特性4规定:块聚合方案应当支持将聚合对象划分成一个以上的源块。此外,将聚合对象划分成多个源块应当是自动的并且优化的。块聚合应当允许通过在接收机中按顺序处理源块从而减小或者最小化每个接收机为重构聚合对象所需要接收的数据量,来对聚合对象内的单独对象进行高效重构。块聚合技术中用于指定一个以上源块以及在聚合对象的源块上对单独对象进行划分的能力实现了特性4。
特性5规定:不采用FEC的接收机应当能够接收已发送的源分组并且直接使用它们,以便恢复尽可能多的聚合对象并且丢弃任何修复分组。允许针对聚合对象的单独对象发送源分组,实现了特性5。
特性6规定:应当结合聚合对象的修复分组高效地使用已发送的单独对象的源分组,以便高效地重构聚合对象。在聚合对象的源块上对单独对象进行的划分实现了特性6。
特性7规定:只丢失单独对象(这些单独对象是聚合对象的一部分)中的一些或一些部分的接收机能够以尽可能少的数据接收来恢复丢失的单独对象。此外,具有单独对象(这些单独对象是聚合对象的一部分)中的一些的过时版本的接收机能够以尽可能少的数据接收来得到单独对象的较新版本。在聚合对象的源块上对单独对象进行的划分实现了特性7的第一部分。分组中所包含的标识符可以包括分组有效载荷中所包含的数据的版本信息。例如,该版本信息可以包括分组数据的时间和日期信息。
单独对象的块聚合的用例
下面提供了单独对象的块聚合的两个用例。在这些用例的上下文中讨论了块聚合的属性。还提供了块聚合技术的优点。
第一用例是针对web高速缓存广播。web页面通常包括很多小对象(例如,文件)。例如,一些受欢迎的新闻网站在web页面上可以包括超过100个小对象。每个单独对象是用统一资源定位符(URL)标识的。这些单独对象中的很多单独对象不会时常变化,并且在正常操作中,web浏览器高速缓存这些单独对象并且在下次访问该web页面时重新使用被高速缓存的版本。HTTP包括机制,用于发信号通知对象在多长时间内有效,并且用于利用内容服务器进行检查以判断被高速缓存的对象是否已经变化(如果该对象没有变化,则无需再次下载该对象)。
例如,通过在广播信道上传送受欢迎的web页面的单独对象,并且将所传送的单独对象放置在web浏览器高速缓存中,可以改善移动web浏览器的性能。当用户访问受欢迎的web页面时,该web页面的单独对象中的很多单独对象已经在高速缓存中,因此访问时不需要下载这些单独对象。
在该应用中,人们期望将小的单独对象聚合到较大的聚合对象(例如,较大的文件)中,因为这样提高了广播信道上的应用层FEC(AL-FEC)编码的使用效率。人们还期望与聚合对象自身分开地指示聚合对象中所包含的单独对象的列表。
接收单独对象的列表的客户端设备可以检查其高速缓存,以查看该客户端设备是否已经具有这些单独对象中的任何单独对象。例如,在之前的广播中可能已经接收到单独对象,或者可能已经通过单播检索到单独对象。通过使用客户端设备已经具有的那些单独对象,该客户端设备可以重构聚合对象的部分副本。可以将该部分副本作为一组源符号输入到针对聚合对象的AL-FEC解码过程中。
为了避免AL-FEC解码过程接收重复的符号,人们期望广播信道仅传输修复符号,尽管广播信道传输源符号以及修复符号仍然是有益的。
一种将小的单独对象聚合到大聚合对象的方案是:串连单独对象或者使用标准存档文件格式,比如‘tar’或者‘zip’,然后将该存档文件分割成源块,其中,每个源块包括该存档文件的连续(contiguous)部分。当客户端设备事先没有广播对象中的任何广播对象时,该方案在AL-FEC性能方面获得聚合的益处。如上所述,该方案将允许客户端设备使用该客户端设备已具有的对象在某种程度上改善性能。
更好的方案是使用本公开内容中所描述的块聚合技术。在聚合对象需要被分成一个以上源块的特定情况下,与‘tar’或‘zip’方案相比,所描述的技术允许客户端设备使用该客户端设备已具有的单独对象来更多地改善性能。
性能差异的原因是,在采用‘tar’或‘zip’方案的情况下,客户端设备处已经存在的数据可能不均匀地分布在源块上。例如,客户端设备可能具有第一源块的90%,但仅具有第二源块的10%。好的理由是:在典型的传输中,源块的分组是经交织的。因此,为了接收到第二源块的数据的90%,客户端设备需要接收所有源块的数据的90%。在上面的例子中,客户端设备将接收第一源块的90%,其中客户端设备已经具有该第一源块的数据的90%。因此,该传输的大部分是被浪费的。
本公开内容的所描述的块聚合技术确保了客户端设备处已经存在的数据是尽可能均匀地分布在源块上的(即,属性A)。因此,客户端设备处已知的每个源块的片断对于每个源块而言是大致相同的,并且所浪费的接收的量被减小或者最小化。
另一种实现某种程度上均匀分布的方案是:首先通过简单串连来构建聚合对象,然后在将聚合对象划分成源块之前,随机地重新排列该聚合对象的符号。本公开内容的所描述的块聚合技术通过两种方式改进了该随机方案。
首先,在所描述的块聚合技术中,单独对象的源符号的分布是确定性均匀的。在随机方案中,源符号的分布可能不是那么均匀。其次,在发射机和接收机处都实施这种对很大的聚合对象的随机重新排序是效率低下的。这在接收机处尤为如此,因为打乱数据以重组单独对象可能是代价较高的,特别是当考虑诸如闪存或硬盘等较慢的存储设备时。相比之下,所描述的块聚合技术确保了:当来自单独对象的数据包括在源块中时,该数据被布置在该源块中的单个连续组块(contiguous chunk)中;此外,该数据组块也是该单独对象的连续部分。这提高了执行效率。
第二用例是针对具有大突发中断的信道上的系统的小单独对象传输。该示例考虑了多个小单独对象的基于AL-FEC的传输的情形,其中:(a)该传输需要是系统的,即,针对单独对象的源数据被发送;(b)对象是按顺序发送的,而不是进行交织;(c)该传输经受突发中断,该突发中断的持续时间与单独对象的传输时间相当或者比单独对象的传输时间更长;以及(d)FEC保护是对单独对象的聚合而非每个对象提供的。
(a)的原因是为了确保与不支持AL-FEC的接收机向后兼容。(b)的原因是,当单独对象是单独有用时,对于这些单独对象优选的是在接收期间逐渐变得可用。
该用例的一个例子是广播新闻服务,其中,单独对象是各自可用于向用户呈现的各个新闻报道。间或地发送针对一组新闻报道的聚合的一些修复数据,以允许客户端设备对该客户端设备已经丢失的各个新闻报道进行补充。
在一般情况下,客户端设备可以接收小单独对象的源数据的子集,该子集可以作为源数据输入到AL-FEC解码过程。由于(c)的缘故,客户端设备很可能具有单独对象的子集,而不是单独对象的片段的随机集合。然后,客户端设备接收针对聚合对象的修复数据,并且与第一用例中相同的考虑适用于源数据和修复数据的组合,以及所接收的源数据在源块上的均匀分布的优点。
与说明有关的考虑事项
可用使用设计成执行文中所述功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件或者它们的任意组合,来实现或执行结合文中公开内容所描述的各种说明性的逻辑框、模块和电路。通用处理器可以是微处理器,或者,该处理器也可以是任何常规的处理器、控制器、微控制器或者状态机。处理器也可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合或者任何其它这类结构。
结合文中公开内容所描述的方法或者算法的框可以在硬件中、由处理器执行的软件模块中或二者的组合中直接实现。软件模块可以位于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或者本领域已知的任何其它形式的存储介质中。一种示例性的存储介质耦合到处理器,从而使该处理器能够从该存储介质读取信息并且向其写入信息。或者,存储介质可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。ASIC可以位于用户终端中。或者,处理器和存储介质可以作为分立组件位于用户终端中。
在一个或多个示例性设计中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在处理器执行的软件中实现,所描述的功能可以作为一条或多条指令或代码保存在计算机可读介质上或者通过计算机可读介质传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括有助于将计算机程序从一处转移到另一处的任何介质。存储介质可以是能够由通用或专用计算机访问的任何可用介质。计算机可读介质可以包括:例如但不限于,RAM、ROM、EEPROM、CD-ROM或其它光盘存储器、磁盘存储器或其它磁性存储设备、或者可用于携带或存储具有指令或数据结构形式的期望程序代码单元并且能够由通用或专用计算机或者通用或专用处理器访问的任何其它介质。而且,任何连接都适当地称为计算机可读介质。例如,如果软件是使用同轴电缆、光缆、双绞线、数字用户线(DSL)或者无线技术(例如,红外线、无线电以及微波)从网站、服务器或其它远程源传输的,则同轴电缆、光缆、双绞线、DSL或无线技术(例如,红外线、无线电以及微波)包括在介质的定义中。这里使用的磁盘和光碟包括:压缩光碟(CD)、激光光碟、光碟、数字通用光碟(DVD)、软盘以及蓝光光碟,其中,磁盘通常用磁再现数据,而光碟是由激光器用光再现数据。以上的组合也包括在计算机可读介质的范围内。
提供了以上描述,以便使任何本领域技术人员都能够制造和/或使用所描述的装置、系统以及方法。对于本领域技术人员来说,对本公开内容的各种修改是显而易见的,并且,在此定义的总体原理也可以在不脱离本发明的精神或范围的前提下应用于其它变型。因此,本公开内容并不限于在此描述的例子和设计,而是与在此公开的原理和新颖特征的最广范围相一致。

Claims (27)

1.一种用于将m个单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的方法,所述m个单独对象从对象1到对象m排序,其中m>1,所述方法包括:
将所述m个单独对象聚合到聚合对象中,包括:针对每个单独对象j,j=1到m,计算用于包含该单独对象j的数据的源符号的数量S(j);以及
将所述聚合对象划分成Z个源块,包括:针对每个源块k,k=0到Z-1,以及每个单独对象j,j=1到m,计算源块k中的单独对象j的源符号的数量NSS(j,k),
其中,每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。
2.如权利要求1所述的方法,其中,每个单独对象j的数据的字节是在该单独对象j的S(j)个源符号内连续布置的,从源符号0开始到源符号S(j)-1。
3.如权利要求1所述的方法,进一步包括:向所述m个单独对象的一个或多个源符号填充零值。
4.如权利要求1所述的方法,其中,将所述聚合对象划分成Z个源块的步骤进一步包括:针对从1到m的每个整数j,计算开头j个单独对象中的源符号的聚合数量SS(j),其中,SS(0)=0,并且SS(j)是从1到j的所有整数i的S(i)之和。
5.如权利要求1所述的方法,进一步包括:对所述聚合对象的所述Z个源块进行编码,以产生修复符号。
6.如权利要求5所述的方法,进一步包括:将所述源符号映射到源分组,并且将所述修复符号映射到修复分组。
7.如权利要求6所述的方法,进一步包括:向所述接收机发送所述源分组和所述修复分组中的一个或多个。
8.一种用于对为了在通信系统中从发射机向接收机传送数据而被映射到源符号的单独对象进行恢复的方法,所述单独对象与其它单独对象聚合到聚合对象中,所述聚合对象划分成一个或多个源块,所述单独对象的所述源符号是在所述聚合对象的连续源块内连续布置的,所述方法包括:
接收一个或多个数据分组,每个数据分组包括:所述单独对象的至少一个源符号,或者至少一个修复符号,所述至少一个修复符号包含针对所述聚合对象的源块中的一个源块的修复数据,该源块包括所述单独对象的至少一个源符号;以及
使用所接收的一个或多个数据分组来恢复所述单独对象。
9.如权利要求8所述的方法,其中,恢复所述单独对象的步骤进一步包括:使用所接收的一个或多个数据分组和之前得到的所述单独对象的一个或多个源符号来恢复所述单独对象。
10.一种配置为将m个单独对象映射到源符号以便在通信系统中向接收机传送数据的装置,所述m个单独对象从对象1到对象m排序,其中m>1,所述装置包括:
处理器,其配置为:将所述m个单独对象聚合到聚合对象中,并且将所述聚合对象划分成Z个源块,包括:针对每个单独对象j,j=1到m,计算用于包含该单独对象j的数据的源符号的数量S(j),并且针对每个源块k,k=0到Z-1,以及每个单独对象j,j=1到m,计算源块k中的单独对象j的源符号的数量NSS(j,k),
其中,每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。
11.如权利要求10所述的装置,其中,每个单独对象j的数据的字节是在该单独对象j的S(j)个源符号内连续布置的,从源符号0开始到源符号S(j)-1。
12.如权利要求10所述的装置,其中,所述处理器进一步配置为:向所述m个单独对象的一个或多个源符号填充零值。
13.如权利要求10所述的装置,其中,所述处理器进一步配置为:计算开头j个单独对象中的源符号的聚合数量SS(j),其中,SS(0)=0,并且SS(j)是从1到j的所有整数i的S(i)之和。
14.如权利要求10所述的装置,进一步包括编码器,所述编码器通信地耦合到所述处理器,并且配置为对所述聚合对象的所述Z个源块进行编码,以产生修复符号。
15.如权利要求14所述的装置,其中,所述处理器进一步配置为:将所述源符号映射到源分组,并且将所述修复符号映射到修复分组。
16.如权利要求15所述的装置,进一步包括发射机,所述发射机配置为向所述接收机发送所述源分组和所述修复分组中的一个或多个。
17.一种配置为对为了在通信系统中从发射机传送数据而被映射到源符号的单独对象进行恢复的装置,所述单独对象与其它单独对象聚合到聚合对象中,所述聚合对象划分成一个或多个源块,所述单独对象的所述源符号是在所述聚合对象的连续源块内连续布置的,所述装置包括:
接收机,其配置为:接收一个或多个数据分组,每个数据分组包括:所述单独对象的至少一个源符号,或者至少一个修复符号,所述至少一个修复符号包含针对所述聚合对象的源块中的一个源块的修复数据,该源块包括所述单独对象的至少一个源符号;以及
处理器,其通信地耦合到所述接收机,并且配置为使用所接收的一个或多个数据分组来恢复所述单独对象。
18.如权利要求17所述的装置,其中,所述处理器进一步配置为:使用所接收的一个或多个数据分组和之前得到的所述单独对象的一个或多个源符号来恢复所述单独对象。
19.一种用于将m个单独对象映射到源符号以便在通信系统中从发射机向接收机传送数据的系统,所述m个单独对象从对象1到对象m排序,其中m>1,所述系统包括:
用于将所述m个单独对象聚合到聚合对象中的模块,包括:针对每个单独对象j,j=1到m,计算用于包含该单独对象j的数据的源符号的数量S(j);以及
用于将所述聚合对象划分成Z个源块的模块,包括:针对每个源块k,k=0到Z-1,以及每个单独对象j,j=1到m,计算源块k中的单独对象j的源符号的数量NSS(j,k),
其中,每个单独对象j的S(j)个源符号是在连续的源块内连续布置的,从NSS(j,k)>0的第一个源块开始,到NSS(j,k)>0的最后一个源块。
20.如权利要求19所述的系统,其中,每个单独对象j的数据的字节是在该单独对象j的S(j)个源符号内连续布置的,从源符号0开始,到源符号S(j)-1。
21.如权利要求19所述的系统,进一步包括:用于向所述m个单独对象的一个或多个源符号填充零值的模块。
22.如权利要求19所述的系统,其中,用于将所述聚合对象划分成Z个源块的模块进一步包括:用于针对从1到m的每个整数j,计算开头j个单独对象中的源符号的聚合数量SS(j)的模块,其中,SS(0)=0,并且SS(j)是从1到j的所有整数i的S(i)之和。
23.如权利要求19所述的系统,进一步包括:用于对所述聚合对象的所述Z个源块进行编码,以产生修复符号的模块。
24.如权利要求23所述的系统,进一步包括:用于将所述源符号映射到源分组,并且将所述修复符号映射到修复分组的模块。
25.如权利要求24所述的系统,进一步包括:用于向所述接收机发送所述源分组和所述修复分组中的一个或多个的模块。
26.一种配置为对为了在通信系统中从发射机向接收机传送数据而被映射到源符号的单独对象进行恢复的系统,所述单独对象与其它单独对象聚合到聚合对象中,所述聚合对象划分成一个或多个源块,所述单独对象的所述源符号是在所述聚合对象的连续源块内连续布置的,所述系统包括:
用于接收一个或多个数据分组的模块,每个数据分组包括:所述单独对象的至少一个源符号,或者至少一个修复符号,所述至少一个修复符号包含针对所述聚合对象的源块中的一个源块的修复数据,该源块包括所述单独对象的至少一个源符号;以及
用于使用所接收的一个或多个数据分组来恢复所述单独对象的模块。
27.如权利要求26所述的系统,其中,用于恢复所述单独对象的模块进一步包括:用于使用所接收的一个或多个数据分组和之前得到的所述单独对象的一个或多个源符号来恢复所述单独对象的模块。
CN201180012012.0A 2010-03-03 2011-03-03 通信系统中的对象的块聚合 Expired - Fee Related CN102804661B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/717,054 2010-03-03
US12/717,054 US9136981B2 (en) 2010-03-03 2010-03-03 Block aggregation of objects in a communication system
PCT/US2011/027078 WO2011109653A1 (en) 2010-03-03 2011-03-03 Block aggregation of objects in a communication system

Publications (2)

Publication Number Publication Date
CN102804661A CN102804661A (zh) 2012-11-28
CN102804661B true CN102804661B (zh) 2015-04-22

Family

ID=43984118

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180012012.0A Expired - Fee Related CN102804661B (zh) 2010-03-03 2011-03-03 通信系统中的对象的块聚合

Country Status (5)

Country Link
US (1) US9136981B2 (zh)
EP (1) EP2543155B1 (zh)
JP (2) JP5694390B2 (zh)
CN (1) CN102804661B (zh)
WO (1) WO2011109653A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020220756A1 (zh) * 2019-04-30 2020-11-05 创新先进技术有限公司 一种配网方法和装置

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130046540A (ko) * 2011-10-28 2013-05-08 삼성에스디에스 주식회사 데이터 전송 장치 및 방법
US9165456B2 (en) * 2012-07-24 2015-10-20 Mueller International, Llc Systems and methods for distributing data within a mesh network
US10015486B2 (en) * 2012-10-26 2018-07-03 Intel Corporation Enhanced video decoding with application layer forward error correction
CN105009591B (zh) * 2013-01-18 2018-09-14 弗劳恩霍夫应用研究促进协会 使用有来自至少两个数据流的码元及数据流之间的同步化起始码元标识符的源块的前向纠错
KR102127685B1 (ko) * 2013-04-17 2020-06-29 삼성전자주식회사 순방향 오류 정정 패킷 송수신 장치 및 방법
US9559805B2 (en) * 2014-11-03 2017-01-31 Cisco Technology, Inc. Self-describing error correction of consolidated media content
US10003434B2 (en) 2016-04-08 2018-06-19 Cisco Technology, Inc. Efficient error correction that aggregates different media into encoded container packets
US10785098B1 (en) 2019-04-30 2020-09-22 Alibaba Group Holding Limited Network configuration using multicast address modulation

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5548598A (en) 1994-03-28 1996-08-20 Motorola In a data communications systems a method of forward error correction
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US6320520B1 (en) 1998-09-23 2001-11-20 Digital Fountain Information additive group code generator and decoder for communications systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US6748441B1 (en) * 1999-12-02 2004-06-08 Microsoft Corporation Data carousel receiving and caching
US7072971B2 (en) * 2000-11-13 2006-07-04 Digital Foundation, Inc. Scheduling of multiple files for serving on a server
JP4025709B2 (ja) 2003-10-30 2007-12-26 日本電信電話株式会社 誤り訂正符号化装置、誤り訂正復号化装置、誤り訂正符号化プログラム、誤り訂正復号化プログラム、誤り訂正符号化プログラムまたは誤り訂正復号化プログラムを記録したコンピュータ読み取り可能な記録媒体
JP4971144B2 (ja) * 2004-05-07 2012-07-11 デジタル ファウンテン, インコーポレイテッド ファイルダウンロードおよびストリーミングのシステム
US7590922B2 (en) 2004-07-30 2009-09-15 Nokia Corporation Point-to-point repair request mechanism for point-to-multipoint transmission systems
GB0420540D0 (en) 2004-09-15 2004-10-20 Nokia Corp Burst transmission in a digital broadcasting network
US7676735B2 (en) * 2005-06-10 2010-03-09 Digital Fountain Inc. Forward error-correcting (FEC) coding and streaming
KR20070013013A (ko) 2005-07-25 2007-01-30 삼성전자주식회사 표시 장치
US8225164B2 (en) * 2006-01-05 2012-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Media container file management
WO2007095551A2 (en) * 2006-02-13 2007-08-23 Digital Fountain, Inc. Fec streaming with aggregation of concurrent streams for fec computation
AU2008298602A1 (en) * 2007-09-12 2009-03-19 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US8233532B2 (en) * 2007-09-21 2012-07-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Information signal, apparatus and method for encoding an information content, and apparatus and method for error correcting an information signal
TW200943975A (en) * 2008-01-09 2009-10-16 Nokia Corp Systems and methods for media container file generation
EP2109293A1 (en) 2008-04-11 2009-10-14 Thomson Licensing System and method for improving the file transmission reliability
EP2286585A4 (en) 2008-05-07 2015-06-17 Digital Fountain Inc FAST CHANNEL CHANGE AND HIGH QUALITY CONTINUOUS FLOW BROADCAST PROTECTION ON A BROADCAST CHANNEL

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020220756A1 (zh) * 2019-04-30 2020-11-05 创新先进技术有限公司 一种配网方法和装置

Also Published As

Publication number Publication date
JP5694390B2 (ja) 2015-04-01
WO2011109653A1 (en) 2011-09-09
US9136981B2 (en) 2015-09-15
EP2543155B1 (en) 2013-07-31
JP2015084540A (ja) 2015-04-30
EP2543155A1 (en) 2013-01-09
JP2013521720A (ja) 2013-06-10
US20110216841A1 (en) 2011-09-08
CN102804661A (zh) 2012-11-28
JP5823598B2 (ja) 2015-11-25

Similar Documents

Publication Publication Date Title
CN102804661B (zh) 通信系统中的对象的块聚合
US9118353B2 (en) System and method for communicating with low density parity check codes
CN101802797B (zh) 生成和传达源标识信息以实现可靠的通信
US9350488B2 (en) Content delivery system with allocation of source data and repair data among HTTP servers
US20060075321A1 (en) Forming of error correction data
US9288010B2 (en) Universal file delivery methods for providing unequal error protection and bundled file delivery services
US8839078B2 (en) Application layer FEC framework for WiGig
TWI501579B (zh) 使用透過單播系統接收之增量冗餘以在廣播系統中接收資料的接收器與接收方法
US7594154B2 (en) Encoding and decoding modules with forward error correction
EP3193472A1 (en) Data packet processing method and device
CN104737518A (zh) 用于数据表示和传输的系统和方法
RU2461970C2 (ru) Способ и устройство для приема данных
KR20140089405A (ko) Http 서버들 사이의 소스 데이터 및 리페어 데이터의 할당에 의한 컨텐츠 전달 시스템
CN101814923B (zh) 一种喷泉码解码方法及装置
CN102088331B (zh) 一种数据传输方法及网络节点
CN109245863B (zh) 用于传输和接收前向纠错分组的装置和方法
WO2009089695A1 (fr) Procédé et équipement de transmission de données
KR20100044685A (ko) 랩터 코드를 위한 싱글 스테이지 디코더와 이를 이용한 심볼 복원 방법 및 무선 통신 장치
KR101451985B1 (ko) 서브 블록별 순차적 업데이트 방식을 이용한 저지연 파운틴코딩 방법
CN108667557A (zh) 一种基于媒体内容的自适应fec编码矩阵设计方法
Gasiba et al. Reliable and efficient download delivery with Raptor codes
JP5086980B2 (ja) 一方向伝送路に用いる送信端末、受信端末及び伝送システム
CN101162966A (zh) 一种将纠错码技术用于数据传输的方法及系统
CN101938439B (zh) 移动多媒体广播系统中复用数据的传送方法与装置
CN104065458A (zh) 一种通信网络中改进的ewf码编码方法

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150422

Termination date: 20190303