CN102640422A - 为编码和解码过程采用使码元永久钝化的fec码的方法和装置 - Google Patents
为编码和解码过程采用使码元永久钝化的fec码的方法和装置 Download PDFInfo
- Publication number
- CN102640422A CN102640422A CN2010800379465A CN201080037946A CN102640422A CN 102640422 A CN102640422 A CN 102640422A CN 2010800379465 A CN2010800379465 A CN 2010800379465A CN 201080037946 A CN201080037946 A CN 201080037946A CN 102640422 A CN102640422 A CN 102640422A
- Authority
- CN
- China
- Prior art keywords
- code
- symbol
- symbols
- code element
- source
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3761—Decoding 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/458—Soft decoding, i.e. using symbol reliability information by updating bit probabilities or hard decisions in an iterative fashion for convergence to a final decoding result
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0065—Serial concatenated codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0064—Concatenated codes
- H04L1/0066—Parallel concatenated codes
Abstract
提供了对多个经编码码元的编码,其中根据从第一中间码元集合生成的第一码元与从第二中间码元集合生成的第二码元的组合生成经编码码元,每个集合具有至少一个不同的编码参数,其中这些中间码元是基于源码元集合生成的。还提供了解码数据的方法,其中从收到经编码码元集合解码一组中间码元,这些中间码元被组织成第一和第二码元集合以进行解码,其中第二集合中的中间码元被永久钝化以调度解码过程从经编码码元恢复中间码元,其中从解码出的中间码元集合恢复至少一些源码元。
Description
交叉引用
本申请是于2009年10月23日提交、发明人名为M.Amin Shokrollahi等人且题为“Method and Apparatus Employing FEC Codes with PermanentInactivation of Symbols for Encoding and Decoding Processes(为编码和解码过程采用使码元永久钝化的FEC码的方法和装置)”的美国专利申请号12/604,773的部分延续,且进一步要求发明人皆为M.Amin Shokrollahi等人且皆题为“Method and Apparatus Employing FEC Codes with Permanent Inactivation ofSymbols for Encoding and Decoding Processes(为编码和解码过程采用使码元永久钝化的FEC码的方法和装置)”的以下临时申请的优先权:于2010年6月11日提交的美国临时专利申请号61/353,910、于2009年11月2日提交的美国临时专利申请号61/257,146、以及于2009年8月19日提交的美国临时专利申请号61/235,285。以上引用的每篇临时和非临时申请藉此通用地通过援引纳入于此。
以下参考的全部内容通用地通过援引纳入于此:
1)授予Michael G.Luby的题为“Information Additive Code Generator andDecoder for Communication Systems(用于通信系统的信息加性码生成器和解码器)”的美国专利号6,307,487(下文称为“Luby I”);
2)授予Michael G.Luby的题为“Information Additive Group CodeGenerator and Decoder for Communication Systems(用于通信系统的信息加性群码生成器和解码器)”的美国专利号6,320,520(下文称为“Luby II”);
3)授予M.Amin Shokrollahi的题为“Multi-Stage Code Generator andDecoder for Communication Systems(用于通信系统的多级码生成器和解码器)”的美国专利号7,068,729(下文称为“Shokrollahi I”);
4)授予M.Amin Shokrollahi的题为“Systems and Processes for Decoding aChain Reaction Code Through Inactivation(用于通过钝化来解码链式反应码的系统和过程)”的美国专利号6,856,263(下文称为“Shokrollahi II”);
5)授予M.Amin Shokrollahi的题为“Systematic Encoding and Decoding ofChain Reaction Codes(链式反应码的系统编码和解码)”的美国专利号6,909,383(下文称为“Shokrollahi III”);
6)授予Michael G.Luby和M.Amin Shokrollahi且题为“In-PlaceTransformations with Applications to Encoding and Decoding Various Classes ofCodes(应用于编码和解码各类码的原地变换)”的美国专利公开号2006/0280254(下文称为“Luby III”);
7)发明人名为M.Amin Shokrollahi且题为“Multiple Field Based CodeGenerator and Decoder for Communications Systems(用于通信系统的基于多域的码生成器和解码器)”的美国专利公开号2007/0195894(下文称为“ShokrollahiIV”)。
发明领域
本发明涉及在通信系统中编码和解码数据,尤其涉及以高效率方式编码和解码数据以计及所传达数据中的差错和间隙的通信系统。
发明背景
用于通过通信信道在发送方与接收方之间传输文件的技术是许多文献的主题。较佳地,接收方希望以某种确定性程度接收由发送方在信道上传送的数据的确切副本。在信道不具有理想保真度的情况下(这囊括了几乎所有在物理上可实现的系统),所关心的是如何处理传输中丢失和混淆的数据。丢失的数据(擦除)通常比讹误的数据(差错)更容易处理,因为接收方不能总是辨别出何时讹误的数据是接收出错的数据。已开发出许多纠错码来纠正擦除和/或差错。典型地,所使用的特定码是基于关于数据正藉以传送的信道的失真以及正被传送的数据的特性的某些信息来选取的。例如,在知晓信道具有长失真期的场合,阵发差错码对于此应用可能是最合适的。在预期仅有短且不频繁的差错的场合,简单的奇偶校验码可能是最佳的。
如本文中所使用的,“源数据”是指在一个或更多个发送方处可用以及使用接收机通过从有或无差错和/或擦除等的所传送序列进行恢复来获得的数据。如本文中所使用的,“经编码数据”是指被传达且能被用来恢复或获得源数据的数据。在简单情形中,经编码数据是源数据的副本,但若接收到的经编码数据(例如,由于差错和/或擦除)不同于所传送的经编码数据,则在该简单情形中,在缺少关于源数据的附加数据的情况下,源数据可能无法完全恢复。传输可通过空间或时间。在更复杂的情形中,经编码数据是基于源数据在变换中生成的,并从一个或更多个发送方传送给接收方。若发现源数据将成为经编码数据的一部分,则编码被称为“系统的”。在系统编码的简单示例中,关于源数据的冗余信息被追加到源数据末尾以形成经编码数据。
如本文中所使用的,“输入数据”是指FEC(前向纠错)编码器装置或FEC编码器模块、组件、步骤等(“FEC编码器”)的输入端出现的数据,而“输出数据”是指FEC编码器的输出端出现的数据。相应地,将期望输出数据出现在FEC解码器的输入端,且将期望该FEC解码器基于它处理的该输出数据而输出该输入数据或其对应数据。在一些情形中,输入数据是或者包括源数据,且在一些情形中,输出数据是或者包括经编码数据。在其他情形中,发送方设备或发送方程序代码可包括一个以上FEC编码器,即源数据在一系列多个FEC编码器中被变换成经编码数据。类似地,在接收方,可存在一个以上应用于从收到经编码数据生成源数据的FEC解码器。
数据可被视为被划分成码元。编码器是从源码元或输入码元的序列生成经编码码元或输出码元的计算机系统、设备、电子电路或诸如此类,且解码器是从接收到或恢复出的经编码码元或输出码元恢复源码元或输入码元的序列的配对物。编码器和解码器在时间和/或空间上被信道分开,且任何接收到的经编码码元可能与相应的所传送经编码码元不完全相同,并且它们可能不按与它们被传送的顺序完全相同的顺序被接收。码元的“大小”可以用比特来度量,无论该码元实际上是否被断成比特流,其中当码元是选自有2M个码元的字母表时,码元具有M比特的大小。在本文中的许多示例中,码元是以字节来度量的,且码可能位于有256种可能性的域上(有256种可能的8比特模式),但是应理解,可以使用不同的数据度量单位,且以各种方式来度量数据是公知的。
Luby I描述了使用诸如链式反应码之类的代码以计算高效、存储器高效和带宽高效的方式解决纠错。由链式反应编码器产生的经编码码元的一种属性在于接收方只要已接收到足够的经编码码元就能够恢复出原始文件。具体而言,为了以高概率恢复原始的K个源码元,接收方需要大约K+A个经编码码元。
给定情形的“绝对接收开销”由值A表示,而“相对接收开销”可演算为比率A/K。绝对接收开销是除了信息论最小数据量以外还需要接收多少额外数据的度量,且它可取决于解码器的可靠性并且可作为源码元数目K的函数而变化。类似地,相对接收开销A/K是除了信息论最小数据量以外还需要接收多少额外数据相对于正被恢复的源数据的大小的度量,且也可取决于解码器的可靠性并且可作为源码元数目K的函数而变化。
链式反应码对于基于分组的网络上的通信极其有用。然而,它们有时可能是计算相当密集的。若在使用链式反应或其他无码率(rateless)码进行编码的动态编码器之前使用静态编码器来编码源码元,则解码器或许能够更频繁或更容易地进行解码。例如,此类解码器在Shokrollahi I中示出。在其中示出的示例中,源码元是静态编码器的输入码元,静态编码器产生的输出码元作为动态编码器的输入码元,动态编码器产生的输出码元是经编码码元,其中动态编码器是能以相对于输入码元数目并非为固定比率的数量生成数个输出码元的无码率编码器。静态编码器可包括一个以上固定码率编码器。例如,静态编码器可包括汉明(Hamming)编码器、低密度奇偶校验(“LDPC”)编码器、高密度奇偶校验(“HDPC”)编码器和/或诸如此类。
链式反应码具有以下属性:当在解码器处从收到码元恢复出一些码元时,这些码元或许能被用来恢复附加码元,附加码元又可被用来恢复更多码元。较佳地,解码器处码元求解的链式反应可持续进行,以使得在收到码元池被用尽之前恢复出所有合意码元。较佳地,执行链式反应编码和解码过程的计算复杂度较低。
解码器处的恢复过程可涉及确定接收到哪些码元,创建可将原始输入码元映射到接收到的那些经编码码元的矩阵,随后将该矩阵求逆并执行该逆矩阵与收到经编码码元矢量的矩阵乘法。在典型的系统中,此举的蛮力实现会耗费过多计算努力和存储器需求。当然,对于特定的收到经编码码元集合,可能无法恢复出所有原始输入码元,即使在有可能恢复出所有原始输入码元的场合,要计算出结果可能也是计算昂贵的。
ShokrollahiII描述了被称为“钝化(inactivation)”的办法,其中解码在两个步骤中发生。在第一步骤中,解码器观察它具有哪些可用的收到经编码码元、矩阵可能看似如何,并至少大致确定在给定这些收到经编码码元的情况下将允许链式反应过程完成的解码步骤序列。在第二步骤中,解码器根据所确定的解码步骤序列来运行链式反应解码。这可以按存储器高效的方式(即,比存储器效率较低的过程要求较少存储器存储进行操作的方式)进行。
在钝化办法中,第一解码步骤涉及操纵矩阵或其等效物以确定能解出的某个数目的输入码元并且当该确定中断时,将输入码元之一指定为“钝化码元”并通过假定该钝化码元其实被解出了来继续该确定过程,随后在结束时,使用高斯消元法或其他某种方法对远小于原始解码矩阵的矩阵求逆来求解这些钝化码元。使用该确定,可对收到经编码码元执行链式反应序列以得到恢复出的输入码元,恢复出的输入码元可以是所有原始输入码元或合适的原始输入码元集合。
对于对解码器强加了严格约束的一些应用,诸如在解码器为具有有限存储器和计算能力的低功率设备的场合,或者诸如当对可允许的绝对或相对接收开销有严格约束时,可关于以上描述的钝化办法指出改善的方法。
另外,用于在受最小子码元大小约束的情况下将文件或大数据块划分成尽可能少的源块、且随后在受最大子块大小约束的情况下将源块拆分成尽可能少的子块的方法可能是有用的。
发明简要概述
根据依照本发明各方面的编码器的一个实施例,发送方的编码器在通信信道上从一个或更多个发送方向一个或更多个接收方传送有序源码元集合,其中该编码器生成包括从源码元生成的多个经编码码元的待发送数据。在第一步骤,使用可逆的方法从源码元生成中间码元,即,还存在用于从中间码元生成源码元的逆方法。在另一步骤,将中间码元划分成第一中间码元集合和第二中间码元集合,其中第一中间码元集合中有至少一个中间码元且第二中间码元集合中有至少一个中间码元,并且从来自这两个集合中每个集合的至少一个中间码元生成至少一个经编码码元。在一些变型中,存在两个以上集合。
在一些实施例中,生成第一和第二临时码元集合的值,其中第一临时码元集合的值取决于第一中间码元集合的值且第二临时码元集合的值取决于第二中间码元集合的值。经编码码元的值是从第一和第二临时码元集合生成的。
在一些变型中,可生成的经编码码元的数目独立于源码元数目。
还提供了解码器实施例。根据依照本发明各方面的解码器的一个实施例中,接收机的解码器接收从中间码元生成的经编码码元,其中中间码元是使用可逆的方法从源码元生成的,即,还存在用于从中间码元生成源码元的逆方法,并且其中至少一个中间码元被指定为永久钝化码元且存在不在永久钝化码元当中的至少另一个中间码元。解码器从收到经编码码元解码中间码元集合,且解码器计及至少一个永久钝化码元,并使用该逆方法从经解码中间码元集合生成源码元。
在解码时,调度解码步骤,且搁置对永久钝化码元的调度。永久钝化码元可使用新颖的或常规的方法来求解,并随后被用来求解其他中间码元。求解永久钝化码元(以及若使用了的其他运行中钝化)的一种办法可能是通过应用高斯消元法来求解钝化码元。剩余中间码元中的一些基于恢复出的永久钝化码元和收到经编码码元的值来恢复。
在解码方法的一些变型中,永久钝化码元包括来自编码实施例的第二中间码元集合。在解码方法的一些变型中,永久钝化码元包括中间码元的子集,其中相应的编码方法不是多级链式反应码。此类编码方法可包括用于该中间码元的子集的Tornado码、Reed-Solomon码、链式反应码(Luby I中描述的示例)或诸如此类中的一个或更多个。
中间码元被用于编码和解码,其中针对合意的性能特性集(诸如可解码性)指示用于从源码元生成中间码元的方法以及相应的逆方法。在一些实施例中,中间码元包括源码元。在一些实施例中,中间码元包括源码元连同从源码元生成的冗余码元,其中冗余码元可以是链式反应码元、LDPC码元、HDPC码元、或其他类型的冗余码元。替换地,中间码元可基于码元之间的规定关系,例如中间码元与源码元之间的关系、以及中间码元之间的附加LDPC和HDPC关系,其中解码方法被用于基于该规定关系从源码元生成中间码元。
这些方法和系统可由电子电路或由执行编程指令且具有用于实现编码和/或解码的恰适指令程序代码的处理设备实现。
通过本发明可达成众多益处。例如,在具体实施例中,编码数据以在信道上传输的计算花销得以减少。在另一个具体实施例中,解码此类数据的计算花销得以减少。在另一个具体实施例中,绝对和相对接收开销减少相当多。取决于实施例,可达成这些益处中的一个或更多个。贯穿本说明更详细且在以下更具体地提供这些及其他益处。
对本文中公开的本发明的本质和优点的进一步理解可参照本说明的其余部分和附图来实现。
附图简述
图1是使用包括永久钝化的多级编码连同其他特征和要素的通信系统的框图。
图2是在本文中的其他各图中使用的变量、阵列及诸如此类的表。
图3是图1中所示的编码器的具体实施例的框图。
图4是更详细地示出图3的动态编码器的框图。
图5是解说永久钝化(PI)编码过程的流程图。
图6是解说动态编码过程的流程图。
图7是演算用于码元演算的权重的操作的流程图。
图8解说了可存储在存储器中、可用于基于查找值来确定码元的度的表。
图9示出了编码或解码过程中使用的矩阵。
图10示出关于具体最小多项式表示图9中所示的矩阵的各部分的方程。
图11是解说用于建立在编码或解码中使用的阵列的过程的流程图。
图12解说了将由解码器使用表示解码器已知的R个静态码元或方程的子矩阵SE求解以从表示收到经编码码元的阵列D()恢复表示恢复出的源码元的阵列C()的方程组的矩阵表示。
图13解说了使用OTF钝化从图12的矩阵的行/列置换得到的矩阵。
图14是描述用于生成图12中的矩阵的过程的框图。
图15解说了将由解码器使用子矩阵SE和与永久钝化码元相对应的子矩阵求解以从表示收到经编码码元的阵列D()恢复表示恢复出的源码元的阵列C()的方程组的矩阵表示。
图16是解说用于生成如可在图12的矩阵或图15的矩阵中使用的LT子矩阵的过程的流程图。
图17是解说用于生成如可在图15的矩阵中使用的PI子矩阵的过程的流程图。
图18是矩阵生成器的框图。
图19是解说用于生成SE子矩阵的过程的流程图。
图20是解说用于生成PI子矩阵的过程的流程图。
图21是解说用于在解码器中求解恢复出的码元的过程的流程图。
图22解说将由解码器求解以从表示收到经编码码元的阵列D()恢复表示恢复出的源码元的阵列C()的方程组在置换之后的矩阵表示。
图23解说将由解码器求解且与图26中所示的矩阵相对应的方程组的矩阵表示。
图24解说可用作解码过程的一部分的矩阵表示。
图25解说可用作解码过程的另一部分的矩阵表示。
图26解说在部分求解之后将由解码器求解的方程组的矩阵表示。
图27是解说用于在解码器中求解恢复出的码元的另一过程的流程图。
图28解说将由解码器求解的方程组的矩阵表示。
图29解说将由解码器求解的方程组的矩阵表示。
图30解说示例编码系统,其可实现为硬件模块、软件模块、或存储在程序存储中并由处理器执行的可能作为并非如该图中所示地分开的综合代码单元的程序代码的部分。
图31解说示例解码系统,其可实现为硬件模块、软件模块、或存储在程序存储中并由处理器执行的可能作为并非如该图中所示地分开的综合代码单元的程序代码的部分。
所附的附录A是用于编码器/解码器系统、纠错方案、以及针对数据对象的可靠递送的应用的具体实施例的代码规范,有时带有所使用的本发明的细节,其还包括系统编码器/解码器如何可用于对象递送传输的规范。应理解,附录A中描述的具体实施例并不限制本发明的示例且本发明的一些方面可使用附录A的教示而其他方面可能不使用附录A的教示。还应理解,附录A中的限定性语句关于具体实施例的要求可能是限定性的,且此类限定性语句可能涉及或可能不涉及所要求保护的发明,且因此权利要求语言不受此类限定性语句限定。
具体实施例的详细描述
用于实现本文中引述的编码器和解码器的各部分的细节由Luby I、LubyII、Shokrollahi I、Shokrollahi II、Shokrollahi III、Luby III、和Shokrollahi IV提供且出于简明起见不在此全部重复。它们的全部公开内容通用地通过援引纳入于此,且应理解,除非另行指出,否则其中的实现不是本发明所必要的,且还可以使用许多其他变型、修改或替换。
如本文中所描述的多级编码在多级内对源数据进行编码。一般但不总是,第一级向源数据添加预定量的冗余。第二级然后使用链式反应码或诸如此类以从原始源数据以及由第一级编码计算出的冗余码元产生经编码码元。在一个具体实施例中,使用链式反应解码过程来首先解码收到数据。若该过程没有成功地完整恢复出原始数据,则可应用第二解码步骤。
本文中教示的一些实施例可应用于许多其他类型的代码,例如应用于如因特网工程任务组(IETF)请求注解(RFC)5170中描述的代码(下文称为“IETFLDPC码”)、以及应用于美国专利号6,073,250、6,081,909和6,163,870中描述的代码(下文称为“Tornado码”),从而改善这些类型的代码的可靠性和/或CPU和/或存储器性能。
本文中教示的一些实施例的一个优点在于与单独的链式反应编码相比需要较少的算术运算来产生经编码码元。包括第一级编码和第二级编码的一些具体实施例的另一优点在于第一级编码和第二级编码可以在分开的时间和/或由分开的设备完成,因此划分了计算负荷,并使总计算负荷还有存储器大小及存取模式要求最小化。在多级编码的实施例中,在第一级编码期间从输入文件生成冗余码元。在这些实施例中,在第二级编码中,从输入文件和冗余码元的组合生成经编码码元。在这些实施例的一些中,可按需生成经编码码元。在其中第二级包括链式反应编码的实施例中,每个经编码码元可以在不考虑其他经编码码元是如何生成的情况下生成。这些经编码码元一旦被生成然后就可被放入分组并被传送到其目的地,其中每个分组包含一个或更多个经编码码元。还可以改为或者同时使用非分组化传输技术。
如本文中使用的,术语“文件”是指存储在一个或更多个源处且将作为一个单元被递送到一个或更多个目的地的任何数据。因此,来自文件服务器或计算机存储设备的文档、图像和文件皆是能被递送的“文件”的示例。文件可以有已知的大小(诸如存储在硬盘上的一兆字节图像)或可以有未知的大小(诸如从流送源的输出获取的文件)。无论是哪种,文件是源码元的序列,其中每个源码元在文件内有位置且具有值。“文件”还可用于指流送源的短部分,即数据流可被划分成一秒区间,且每个此类一秒区间内的源数据块可被视为“文件”。作为另一示例,来自视频流送源的数据块可基于例如由能播放该视频流的视频系统定义的该数据的优先级被进一步划分成多个部分,且每个块的每一部分可被视为“文件”。因此,术语“文件”被一般性地使用且不旨在是广义限定性的。
如本文中所使用的,源码元表示待传送或传达的数据,且经编码码元表示基于源码元生成的、在通信网络上传达或被存储以实现对源码元的可靠接收和/或再生的数据。中间码元表示在编码或解码过程的中间步骤期间使用或生成的码元,其中典型地存在用于从源码元生成中间码元的方法以及相应的用于从中间码元生成源码元的逆方法。输入码元表示在编码或解码过程期间向一个或更多个步骤输入的数据,且输出码元表示在编码或解码过程期间从一个或更多个步骤输出的数据。
在许多实施例中,这些不同类型或标记的码元可以是相同的或者至少部分地包括其他类型的码元,且在一些示例中,这些术语被可互换地使用。在一示例中,假设待传送的文件是有1,000个字符的文本文件,每个字符被视为源码元。若这些1,000个源码元按原样被提供给编码器,编码器又输出被传送的经编码码元,则源码元也是输入码元。然而,在其中这1,000个源码元在第一步骤中被转换成1,000个(或者更多或更少个)中间码元且中间码元被提供给编码器以在第二步骤中生成经编码码元的实施例中,则在第一步骤中,源码元是输入码元且中间码元是输出码元,以及在第二步骤中,中间码元是输入码元且经编码码元是输出码元,然而,源码元是该两步骤编码器的总输入码元且经编码码元是该两步骤编码器的总输出码元。在此示例中,若编码器是系统编码器,则经编码码元可包括源码元连同从中间码元生成的修复码元,而中间码元不同于源码元和经编码码元两者。在此示例中,若编码器替代地是非系统编码器,则中间码元可包括源码元连同在第一步骤中使用例如LDPC和/或HDPC编码器从源码元生成的冗余码元,而经编码码元不同于源码元和中间码元两者。
在其他示例中,有更多码元且每个码元表示一个以上的字符。在发射机中存在源-中间码元转换的任一种情形中,接收机可具有相应的中间-源码元转换作为逆转换。
传输是通过信道从一个或更多个发送方向一个或更多个接收方传送数据以递送文件的过程。发送方有时也被称为编码器。若一个发送方通过理想信道连接到任何数量的接收方,则由于所有数据都将被正确接收,因此收到数据可能是源文件的确切副本。在此,假设信道不是理想的,这正是大多数实际信道的情形。在许多信道不理想中,两种感兴趣的不理想是数据擦除和数据不完整(其可被视为数据擦除的特殊情况)。数据擦除发生在信道丢失或丢弃数据时。数据不完整发生在接收方在直到一些数据已掠过了接收方才开始接收数据、接收方在传输结束前停止接收数据、接收方选择只接收所传送数据的一部分、和/或接收方间歇地停止并再次开始接收数据时。作为数据不完整的示例,移动卫星发送方可能正在发射表示源文件的数据并在接收方处于射程内之前开始传输。一旦接收方处于射程内,数据可以被接收直到该卫星移出射程,此时接收方可以重定向其卫星天线(它在该时间期间不接收数据)以开始接收由移进射程内的另一卫星发射的关于相同输入文件的数据。如从阅读本描述应明白的,数据不完整是数据擦除的特殊情况,因为接收方可以将数据不完整视为如同接收方整段时间都处在射程内但信道丢失了直至接收方开始接收数据前的所有数据(且接收方有相同的问题)。而且,如在通信系统设计中公知的,可检测差错可通过简单地丢弃所有具有可检测差错的数据块或码元而被认为等效于擦除。
在一些通信系统中,接收方接收由多个发送方生成的数据、或由一个发送方使用多个连接生成的数据。例如,为了加快下载,接收方可同时连接到一个以上传送关于相同文件的数据的发送方。作为另一示例,在多播传输中,多个多播数据流可以被传送以允许接收方能连接到这些流中的一个或更多个流,从而将集总传输速率与将这些接收方连接到发送方的信道的带宽匹配。在所有此类情形中,关注的是要确保所有所传送数据对于接收方是能独立使用的,即多个源数据在这些流之间不是冗余的,即使当传输速率对于不同流相差很大时以及当有任意丢失模式时亦然。
一般而言,通信信道是连接发送方和接收方以进行数据传输的信道。通信信道可以是实时信道,其中信道在获得数据时就将数据从发送方移到接收方,或者通信信道可能是存储信道,该信道在将数据从发送方运输到接收方时存储一些或全部的数据。后者的示例是盘存储或其他存储设备。在该示例中,生成数据的程序或设备可以被认为是将数据传送给存储设备的发送方。接收方是从存储设备读取数据的程序或设备。发送方用来将数据送到存储设备上的机制、存储设备本身以及接收方用来从存储设备获取数据的机制共同构成了信道。如果存在这些机制或存储设备会丢失数据的机会,则它可被视为通信信道中的数据擦除。
当发送方和接收方由其中码元会被擦除的通信信道隔开,则优选不传送输入文件的确切副本,而是改为传送从输入文件生成的帮助擦除恢复的数据。编码器是处理该任务的电路、设备模块或代码段。查看编码器操作的一种方式在于编码器从源码元生成经编码码元,其中源码元值序列表示输入文件。每个源码元因此将在输入文件内有位置且具有值。解码器是从由接收方接收到的经编码码元重构源码元的电路、设备、模块或代码段。在多级编码中,编码器和解码器有时进一步被分成各自执行不同任务的子模块。
在多级编码系统的实施例中,编码器和解码器可被进一步分成各自执行不同任务的子模块。例如,在一些实施例中,编码器包括本文所谓的静态编码器和动态编码器。如本文中使用的,“静态编码器”是从源码元集合生成数个冗余码元的编码器,其中冗余码元的数目是在编码前确定的。当在多级编码系统中使用静态编码时,源码元与使用静态编码器从源码元生成的冗余码元的组合往往被称为中间码元。潜在可能的静态编码代码的示例包括Reed-Solomon码、Tornado码、汉明码、诸如IETF LDPC码之类的LDPC码等。本文中使用术语“静态解码器”来指能解码由静态编码器编码的数据的解码器。
如本文中使用的,“动态编码器”是从输入码元集合生成经编码码元的编码器,其中可能的经编码码元的数目独立于输入码元的数目,且其中将生成的经编码码元的数目无需是固定的。通常在多级编码中,输入码元是使用静态编码生成的中间码元,而经编码码元是使用动态编码器从中间码元生成的。动态编码器的一个示例是链式反应编码器,诸如Luby I和Luby II中教示的编码器。本文中使用术语“动态解码器”来指能解码由动态编码器编码的数据的解码器。
在一些实施例中,为多级编码且系统性的编码使用应用于源码元的解码过程基于中间码元之间由静态编码器定义的关系以及中间码元与源码元之间由动态编码器定义的关系来获得中间码元值,并随后使用动态编码器从中间码元生成附加经编码码元或即修复码元。类似地,相应的解码器具有接收经编码码元并基于中间码元之间由静态编码器定义的关系以及中间码元与收到经编码码元之间由动态编码器定义的关系从收到经编码码元解码中间码元值的解码过程,并随后使用动态编码器从中间码元生成任何缺失的源码元。
多级编码的实施例无需被限于任何特定类型的码元。典型地,码元值是从对应某个正整数M的有2M个码元的字母表中选择的。在此类情形中,源码元可以用来自输入文件的M比特数据序列表示。M的值往往基于例如使用的应用、通信信道和/或经编码码元的大小来确定。另外,经编码码元的大小往往基于应用、信道和/或源码元的大小来确定。在一些情形中,如果经编码码元值和源码元值有相同大小(即可由相同数目的比特表示、或是从相同的字母表选择的),则编码过程可以被简化。如果是这种情形,则在经编码码元值大小受限时,源码元值大小也受限。例如,可能期望将经编码码元放入大小有限的分组中。如果关于与经编码码元相关联的关键字的一些数据要被传送以在接收机处恢复该关键字,则经编码码元将优选足够小以在一个分组中容纳经编码码元值和关于关键字的数据。
作为示例,如果输入文件是多兆字节的文件,则输入文件可能被断成数千、数万或数十万个源码元,其中每个源码元编码几千、几百或仅几个字节。作为另一示例,对于基于分组的因特网信道,有效载荷大小为1024字节的分组可能是恰适的(一字节为8比特)。在该示例中,假定每个分组包含一个经编码码元和8字节的辅助信息,则经编码码元大小为8128比特((1024-8)*8)将是恰适的。因此,源码元大小可以被选取为M=(1024-8)*8,或即8128比特。作为另一示例,一些卫星系统使用MPEG分组标准,其中每个分组的有效载荷包括188个字节。在该示例中,假定每个分组包含一个经编码码元和4字节的辅助信息,则经编码码元大小为1472比特((188-4)*8)将是恰适的。因此,源码元大小可以被选取为M=(188-4)*8,或即1472比特。在使用多级编码的通用通信系统中,诸如源码元大小(即M,即由一个源码元编码的比特数)之类的专用参数可以是由应用设定的变量。
每个经编码码元具有值。在以下考虑的一个优选实施例中,每个经编码码元还与被称为其“关键字”的标识符相关联。优选地,每个经编码码元的关键字能被接收方简单地确定以允许接收方能将一个经编码码元与其他经编码码元区别开。优选地,一个经编码码元的关键字不同于所有其他经编码码元的关键字。先前技术中讨论了各种形式的关键字法。例如,Luby I描述了在本发明的实施例中可以采用的各种形式的关键字法。在其他优选实施例中,诸如在附录A中描述的一个实施例中,经编码码元的关键字被称为“经编码码元标识符”、或“编码码元标识符”,或更简单地称为“ESI”。
多级编码在预期有数据擦除的场合或接收方没有正好在传输开始和结束时开始和结束接收的场合尤其有用。后一种情况在此被称为“数据不完整”。关于擦除事件,多级编码享有在Luby I中教示的链式反应编码的许多益处。具体而言,经多级编码的码元是信息加性的,所以可以使用任何合适数量的分组来恢复输入文件以达到合意准确度。在使用多级编码时,这些状况不会负面地影响通信过程,因为用多级编码生成的经编码码元是信息加性的。例如,若由于噪声突发引起数据擦除而导致一百个分组丢失,则可以在该突发后获取额外的一百个分组来取代被擦除分组的丢失。如果因为在发射机开始传送时接收机没有调谐到该发射机而导致成千个分组丢失,则接收机可以仅从任何其他传输期或甚至从另一发射机获取这成千个分组。使用多级编码,接收机不限于获取任何特定分组集合,所以它可以从一个发射机接收一些分组、切换到另一发射机、丢失一些分组、错过给定传输的起始或结束,且仍能恢复输入文件。在没有接收机-发射机协调的情况下加入和离开传输的能力有助于简化通信过程。
在一些实施例中,使用多级编码来传送文件可以包括从输入文件生成、形成或提取源码元,计算冗余码元,将源码元和冗余码元编码成一个或更多个经编码码元——其中每个经编码码元是基于其关键字独立于所有其他经编码码元生成的,以及将经编码码元在信道上传送给一个或更多个接收方。另外,在一些实施例中,使用多级编码来接收(以及重构)输入文件的副本可以包括从一个或更多个数据流接收经编码码元的某个集合或子集,并从收到经编码码元的值和关键字来解码源码元。
系统码和非系统码
系统码是其中源码元在能被传送的经编码码元当中的代码。在这种情形中,经编码码元包括源码元和从源码元生成的也称为修复码元的冗余码元。出于各种原因,对于许多应用而言,系统码优于非系统码。例如,在文件递送应用中,有用的是能够在正使用数据生成修复数据的同时按顺序次序开始传送该数据,其中生成修复数据的过程可能要花费一定量的时间。作为另一示例,许多应用优选以未修改形式按顺序次序向一个信道发送原始源数据,并向另一信道发送修复数据。此举的一个典型原因是为了既支持未纳入FEC解码的旧式接收机,与此同时还向纳入了FEC解码的增强型接收机提供更好的体验,其中旧式接收机仅加入源数据信道,而增强型接收机加入源数据信道和修复数据信道两者。
在这些以及相关类型的应用中,有时可能是以下情形:由接收机接收到的源码元中的丢失模式和丢失分数与收到修复码元中经历的丢失模式和丢失分数有很大不同。例如,当源码元在修复码元之前被发送时,由于信道的突发性丢失状况,源码元中的丢失分数和模式可能与修复码元中相应的丢失分数和模式有很大不同,且源码元中的丢失模式与丢失是均匀随机的情况下可能的典型丢失模式相去甚远。作为另一示例,当在一个信道上发送源数据而在另一信道上发送修复数据时,这两个信道上可能存在相当不同的丢失状况。因此,具有在不同类型的丢失状况下工作良好的系统FEC码是合意的。
尽管本文中的示例引述系统码(其中输出或经编码码元包括源或输入码元)或非系统码,但除非另行指出,否则本文中的教示应被认为可应用于这两种代码。Shokrollahi III教示了用于将非系统链式反应码转换成系统码以使得如此构造的系统码维持非系统码的稳健性属性的方法。
具体而言,使用Shokrollahi III中教示的方法,所构造的系统码具有以下属性:丢失的源码元和丢失的修复码元之间就解码器的可恢复性而言差别很小,即,对于给定的总丢失量,解码恢复概率基本相同,几乎独立于源码元中的丢失比例相比于修复码元中的丢失比例。此外,经编码码元中的丢失模式并不显著影响解码恢复概率。比较而言,对于其他系统码的构造,诸如针对Tornado码或针对IETF LDPC码描述的那些构造,在许多情形中,丢失的源码元和丢失的修复码元之间就解码器的可恢复性而言差别很大,即,对于给定的总丢失量,解码恢复概率宽泛地变化,取决于源码元中的丢失比例相比于修复码元中的丢失比例。此外,经编码码元中的丢失模式可能对解码恢复概率有强影响。若经编码码元的丢失在所有经编码码元中是均匀随机的,则Tornado码和IETF LDPC码有合理良好的恢复属性,但恢复属性随着丢失模型偏离均匀随机丢失而退化。因此,在这种意义上,Shokrollahi III中教示的实施例具有胜于系统码的其他构造的优点。
对于具有取决于丢失的源码元和丢失的修复码元的比例以及取决于丢失模式就解码器的可恢复性而言有强影响的属性的FEC码,在适用的情况下克服这种属性的一种办法是按均匀随机次序发送经编码码元,即按均匀随机次序发送源码元和修复码元的组合,因此源码元随机地散布在修复码元之间。按随机次序发送经编码码元具有以下优点:无论信道丢失模型如何、无论丢失是突发性的还是均匀随机的还是其他某种丢失类型,对经编码码元的丢失仍是随机的。然而,如上所述,这种办法对于一些应用不是合意的,例如对于其中期望在修复码元之前按顺序发送源码元、或其中源码元是在与修复码元不同的信道上发送的应用。
在此类情形中,希望其中经编码码元中的丢失模式对解码器的恢复属性影响不大的系统码的构造,且本文中提供了一些示例。
如本文中所使用的,“随机”和“伪随机”往往是等效的和/或可互换的且可取决于上下文。例如,随机丢失可以指信道丢失了哪些码元,其可以真正是随机事件,而对码元邻元的随机选择可能实际上是根据非随机过程的可重复伪随机选择,但与真正随机选择的情形具有相同或相似的属性或行为。除非显式地或通过上下文另行指出,否则将某事表征为随机的不意味着排除伪随机。
在针对此类系统FEC编码器的一种办法中,由包括多个编码器子块或子过程的编码器获得源码元,这多个编码器子块或子过程之一作用为生成中间码元的解码器,这些中间码元是另一子块或子过程的输入码元。中间码元随后被施加到另一子块或子过程,该另一子块或子过程将这些中间码元编码成经编码码元,从而经编码码元包括从一个一致性过程生成的源码元(连同附加的冗余码元),藉此提供胜于作为使用一个过程(例如,复制)来获取经编码码元集合的源码元并使用另一过程来获取该经编码码元集合的冗余码元的系统编码器的编码器的稳健性益处和其他益处。
输出编码可以是链式反应编码器、静态编码器或其他变型。附录A描述了系统码实施例。在阅读本公开之后,本领域普通技术人员应能够容易扩展Shokrollahi III的教示以应用于诸如Tornado码和IETF LDPC码之类的系统码,从而产生这些代码的也是系统码但具有更好恢复属性的新版本。具体而言,通过应用以下描述的一般性方法获得的这些代码的新版本被增强以具有以下属性:源码元中的丢失比例相比于修复码元中的丢失比例不会显著影响解码恢复概率,此外丢失模式不会显著影响解码恢复概率。因此,这些代码能被有效地用在要求使用具有不会受源码元和修复码元中的不同分数丢失量或不同丢失模式强烈影响的恢复属性的系统FEC码的上述应用中。
该新编码方法能被一般性地应用于系统FEC码、非系统FEC码、固定码率FEC码和链式反应FEC码的编码以产生用于新的增强型系统FEC码的总体编码方法。还存在可应用的相应的新解码方法。
编码器中的解码器的示例
现在将提供编码器中的解码器的示例。
令编码方法E为(发射机中或别处的)编码器针对从K个源码元生成N个经编码码元的固定码率(非系统或系统)FEC码E使用的编码方法,其中N至少为K。类似地,令解码方法E为接收机中或别处的解码器使用的针对FEC码E的相应解码方法。
假设FEC码E具有以下属性:N个经编码码元中的K个经编码码元的随机集合足以使用解码方法E以合理概率恢复原始的K个源码元,其中合理概率可能例如为概率1/2。合理概率可以是由使用或应用设定的某个要求且可以为不同于1/2的值。应理解,特定码的构造无需因特定恢复概率而异,但应用和系统可针对其特定稳健性程度来设计。在一些实例中,可通过考虑K个以上码元并随后使用解码过程确定这些所考虑码元中允许成功解码的K个码元的集合来提高恢复概率。
假设对于FEC码E,ESI(经编码码元标识符)与每个经编码码元相关联且该ESI标识该经编码码元。在不失一般性的情况下,ESI在本文中用0、1、2、…、N-1标记。
在用于使用针对FEC码E的方法生成的系统FEC码F的系统编码方法F的一个实施例中,K和N是输入参数。FEC码F的源码元将具有ESI 0、…、K-1,且FEC码F的修复码元将具有ESI K、…、N-1。针对FEC码F的系统编码方法F使用如下由硬件和/或软件执行的针对FEC码E的编码方法E和解码方法E从K个源码元C(0)、…、C(K-1)生成N个经编码码元:
(1)随机地置换与FEC码E相关联的N个ESI以得到FEC码E经置换ESI集合X(0)、…、X(N-1),其中该经置换ESI集合被组织成使得能关于ESI的置换次序X(0)、…、X(K-1)从FEC码E的头K个经编码码元解码出FEC码E的K个源码元,
(2)对于每个i=0,…,N-1,将FEC码F的ESI i与FEC码E的ESI X(i)相关联,
(3)对于每个i=0,…,K-1,将具有ESI X(i)的FEC码E经编码码元的值设为源码元C(i)的值,
(4)向具有相应的FEC码E ESI X(0)、…、X(K-1)的源码元C(0)、…、C(K-1)应用解码方法E以生成经解码码元E(0)、…、E(K-1),以及
(5)向经解码码元E(0)、…、E(K-1)应用编码方法E以生成具有相关联FEC码ESI 0、…、N-1的FEC码E经编码码元D(0)、…、D(N-1),
(6)编码方法F的具有ESI 0、1、…、N-1的经编码码元为D(X(0))、D(X(1))、…、D(X(N-1))。
注意,编码方法F的输出为N个经编码码元,其中头K个经编码码元为具有相关联ESI 0、1、…、K-1的源码元C(0)、…、C(K-1)。因此,编码方法F产生对源数据的系统编码。
与刚才描述的编码方法F相对应的解码方法F的一个实施例如下,其中K和N是该方法贯穿始终使用的输入参数。该解码方法F从具有相关联FEC码F ESI Y(0)、…、Y(K-1)的K个收到经编码码元D(0)、…、D(K-1)恢复K个源码元C(0)、…、C(K-1)。收到码元无需正好是所发送码元。由硬件和/或软件执行的该方法如下:
(1)随机地置换与FEC码E相关联的N个ESI以得到FEC码E经置换ESI集合X(0)、…、X(N-1),其中该经置换ESI集合被组织成使得能关于ESI的置换次序X(0)、…、X(K-1)从FEC码E的头K个经编码码元解码出FEC码E的K个源码元,
(2)向具有相关联FEC码E ESI X(Y(0))、…、X(Y(K-1))的经编码码元D(0)、…、D(K-1)应用解码方法E以生成经解码码元E(0)、…、E(K-1),
(3)使用编码方法E从E(0)、…、E(K-1)生成具有FEC码E ESI X(0)、…、X(K-1)的经编码码元C(0)、…、C(K-1),
(4)具有ESI 0、…、K-1的FEC码F的经解码源码元为C(0)、…、C(K-1)。
如刚才所描述地操作的方法和装置具有一些合意属性。例如,考虑FEC码E,其为系统码且具有能以高概率解码K个收到经编码码元的随机集合的属性,但还具有当接收到K个经编码码元且收到经编码码元中的源码元比例不接近K/N时则其不能以高概率来解码的属性。在这种情形中,该实施例描述了使用FEC码E的编码和解码方法的新FEC码F,并且该新FEC码F具有以下合意属性:其将从K个收到经编码码元的集合独立于作为源码元的收到经编码码元的比例以高概率进行解码。
上面的实施例有许多变形。例如,在编码方法F的步骤(1)中,ESI的随机置换可以是伪随机的或者基于产生对ESI的良好选择但既不是随机也不是伪随机的其他某种方法。在FEC码E为系统码的情形中,优选该置换中在步骤(1)中从系统ESI中选择的头K个ESI的分数与FEC码E的码率成比例,即与K/N成比例。优选由新编码方法F在步骤(1)中作出的对ESI的随机选取可由简洁的数据量来表示,例如由用于公知或协定的伪随机生成器的种子连同用于基于该种子和伪随机生成器如何工作来选取ESI的协定方法来表示,从而该新解码方法F可在步骤(1)中基于相同的种子以及用于生成ESI的伪随机生成器和方法作出完全相同的ESI置换选取。一般而言,优选新编码方法F在步骤(1)中生成ESI序列使用的过程和新解码方法F在步骤(1)中生成ESI序列使用的过程两者生成相同的ESI序列,以确保新解码方法F是新编码方法F的逆。
还存在其他变形,其中例如不使用显式ESI,经编码码元的唯一性标识符改为藉由其关于其他经编码码元的位置或藉由其他手段。
在以上描述中,FEC码E的原始ESI被FEC码F重新映射,从而源码元的有序集合以连贯次序被指派ESI 0、…、K-1,且修复码元被指派ESI K、…、N-1。其他变形是可能的,例如ESI的重新映射可在发送方处刚好在编码方法F已生成经编码码元之后但在传送经编码码元之前发生,并且ESI的逆重新映射可在接收方处当经编码码元被接收时但在经编码码元被解码方法F处理以恢复原始源码元之前发生。
作为另一变形,在新编码方法F的步骤(1)中,置换可通过首先选择K+A个FEC码E ESI,其中A是为了确保有高概率的可解码性而选取的值,并随后在解码过程的模拟期间确定K+A个ESI中哪K个ESI在解码期间实际被使用,并且所选择的置换可将K+A个ESI的初始集合中在解码期间实际被使用的K个ESI选择为该置换的头K个ESI。类似变形应用于新解码方法F。
作为编码方法F的另一变形,用于生成随机置换的种子是针对K的值预先计算出的,以确保与步骤(1)中产生的ESI置换相关联的FEC码E的头K个经编码码元是可解码的,且随后该种子总是被用于编码方法F和相应的解码方法F的步骤(1)中的K以生成步骤(1)中的置换。用于选取此类种子的方法包括随机地选取种子直至找到确保步骤(1)中的可解码性的一个种子并随后选择该种子。替换地,可由编码方法F动态地生成具有这些属性的种子,且随后该种子可被传达给解码方法F。
作为编码方法F的另一变形,在步骤(1)中可选择部分置换,即在新编码方法F的步骤(1)中无需生成所有ESI,且若步骤(5)和(6)中不需要全部经编码码元则无需生成所有经编码码元,例如由于这些经编码码元对应于作为经编码码元的部分的源码元或者由于需要生成少于N个经编码码元。在其他变形中,无需重新计算新解码方法F的步骤(3)和(4)中的所有经编码码元,因为一些收到经编码码元可对应于正被恢复的一些源码元。类似地,在新解码方法F的步骤(2)中,无需解码所有K个码元E(0)、…、E(K-1),例如若步骤(2)中解码出的一些码元在用于生成经编码码元的后续步骤中是不需要的。
以上描述的方法和实施例具有许多应用。例如,编码方法F和解码方法F及其变形可应用于Tornado码和IETF LDPC码以提供改善的接收开销和解码失败概率性能。一般而言,这些新方法适用于任何固定码率FEC码。这些新方法的变形还可应用于无固定码率的FEC码,即可应用于其中可生成的经编码码元的数目独立于源码元的数目的诸如链式反应码之类的FEC码。
Shokrollahi III包含用于创建用于链式反应码的系统编码和解码方法的类似教示。在一些实施例中,用于这些代码的编码和解码方法E是Luby I、LubyII、Shokrollahi I、Shokrollahi II、Luby III、Shokrollahi IV中教示的那些编码和解码方法。为了描述系统编码器,描述编码方法E和解码方法E并使用以上描述且从这些参考知晓的一般原理往往就足以将这些方法变换成系统编码方法F和系统解码方法F。因此,在阅读本公开和所引述的参考之际,本领域普通技术人员应当明白如何利用描述编码方法E和解码方法E的教示并将它们应用于系统编码方法F和系统解码方法F或诸如此类。
钝化
如Shokrollahi II中教示的,钝化解码是每当从一组已知线性方程值求解一组未知变量时就可结合置信传播来应用的一般方法,并且在实现基于线性方程组的高效编码和解码方法时尤其有益。为了区别Shokrollahi II中描述的钝化解码与下文中描述的永久钝化解码,使用“运行中”钝化(在各处缩写为“OTF钝化”)来指代Shokrollahi II的方法和教示,而使用“永久钝化”来指代本文中其中提前选择钝化的方法和教示。
置信传播解码的一个原则在于,在解码过程期间每当有可能时,解码器就应当使用依赖于一个剩余未知变量的(可能简化的)方程来求解该变量,且该方程因此与该变量相关联,以及随后通过消元剩余的未使用方程对该解出变量的依赖性来简化这些剩余的未使用方程。例如在Tornado码、诸如Luby I、LubyII、Shokrollahi I、Shokrollahi II、Luby III、Shokrollahi IV中描述的链式反应码、以及IETF LDPC码的一些实施例中已使用了此类简单的基于置信传播的解码过程。
OTF钝化解码在多个阶段中进行。在OTF钝化解码方法的第一阶段中,每当置信传播解码过程由于不存在依赖于仅一个剩余未知变量的剩余方程而不能继续时,解码器将“OTF钝化”一个或更多个未知变量并关于置信传播过程将它们视为“解出”并从剩余方程“消元”(即使它们其实未被消元),由此可能允许置信传播解码过程继续进行。在第一阶段期间被OTF钝化的变量随后例如在第二阶段中例如使用高斯消元法或计算更高效的方法来求解,并且随后在第三阶段中,这些被OTF钝化的变量的值被用来完整地求解与第一解码阶段期间的方程相关联的变量。
如Shokrollahi II中更详细地教示的OTF钝化解码除链式反应码之外还可应用于许多其他类型的代码。例如,其可被应用于一般类的LDPC和LDGM码,尤其是应用于IETF LDPC码和Tornado码,从而导致改善这些类型的代码的可靠性(降低解码失败的概率)和/或CPU和/或存储器性能(提高编码和/或解码的速度和/或减小所要求的存储器大小和/或存取模式要求)。
链式反应码实施例结合OTF钝化解码的一些变形在Shokrollahi IV中描述。其他变形在本申请中描述。
系统概览
图1是使用多级编码的通信系统100的框图。其类似于Shokrollahi I中所示的,但在该情形中,编码器115计及哪些中间码元被“永久钝化”的指定并在动态编码过程期间对这些中间码元与没有被永久钝化的中间码元不同地操作。同样,解码器155在解码时也计及被永久钝化的中间码元。
如图1中解说的,K个源码元(C(0)、…、C(K-1))被输入编码器115,且若对变得对解码器155可用的码元的解码成功,则解码器115可输出这K个源码元的副本。在一些实施例中,流被解析成有K个码元的块,且在一些实施例中,有大于K的某个数目的源码元的文件被分成大小为K的码元块且如此被传送。在其中优选块大小K′>K的一些实施例中,可向K个源码元添加K′-K个填充码元。这些填充码元可具有值0,或编码器115和解码器155两者已知的任何其他固定值(或者能在解码器155处以其他方式确定的值)。应理解,编码器115可包括多个编码器、模块或诸如此类,且解码器155也可以是这种情形。
如所解说的,编码器115还接收来自动态关键字生成器120的动态关键字序列和来自静态关键字生成器130的静态关键字序列,动态关键字生成器120和静态关键字生成器130各自可由随机数生成器135驱动。动态关键字生成器120的输出可简单地为基数序列,但无需是这种情形。关键字生成器的操作可如Shokrollahi I中所示的。
应理解,附图中所示的各种功能块可实现为指定输入被提供作为输入信号的硬件,或者它们可由执行存储在指令存储器中并按恰适次序执行以执行相应功能的指令的处理器实现。在一些情形中,使用专门硬件来执行这些功能和/或执行程序代码。程序代码和处理器不总是被示出,但普通技术人员在阅读本公开之际将知道如何实现此类细节。
编码器115还接收来自钝化指定器125的输入以及沿本文中别处描述的线向系统100输入的其他参数。钝化指定器125的输出可包括表示出于解码目的被指定为“永久钝化”的中间码元的数目的值P(“PI列表”指示哪P个中间码元在该列表上)。如别处解释的,用于编码过程的中间码元在一些实施例中恰好是K个源码元,而在其他实施例中,存在除了只复制K个源码元之外还从这K个源码元生成中间码元的某种类型的处理、转换、编码、解码等。
输入参数可包括由关键字生成器和/或编码器的编码过程使用的随机种子(以下更详细地描述)、要生成的经编码码元的数目、要生成的LDPC码元的数目、要生成的HDPC码元的数目、要生成的中间码元的数目、要生成的冗余码元的数目等,和/或这些值中的一些是从编码器115可用的其他值计算出的。例如,要生成的LDPC码元的数目可完全从固定公式和K的值演算出来。
编码器115从其输入生成经编码码元序列(B(I0)、B(I1)、B(I2)、…)并将它们提供给传送模块140,传送模块140还接收来自动态关键字生成器120的动态关键字值(I0、I1、I2、…),但若存在传达该信息的其他方法则可能不必如此。传送模块140可能以此处无需更详细描述的常规方式来传达给予信道145的内容。接收模块150接收经编码码元和动态关键字值(在需要的场合)。信道145可以是穿过空间的信道(用于从一地传送以在另一地接收)或穿过时间的信道(用于记录到介质以例如在以后的时间回放)。信道145可能导致丢失一些经编码码元。因此,解码器115从接收模块150接收到的经编码码元B(Ia)、B(Ib)、…可能不等同于传送模块发送的经编码码元。这由不同的下标索引来指示。
解码器155优选能够使用动态关键字重新生成器160、随机数生成器163和静态关键字生成器165重新生成用于收到码元的关键字(这些关键字可能不同),并接收各种解码参数作为输入。这些输入中的一些输入可能是硬编码的(即,在设备的构造期间输入的)以及一些输入可能是可改变的输入。
图2是在其他各图中以及贯穿本公开最经常使用的变量、阵列及诸如此类连同标注概要的表。除非另行指出,否则K表示用于编码器的源码元的数目,R表示静态编码器生成的冗余码元的数目,以及L是“中间码元”的数目,即源码元与冗余码元的组合且因此L=K+R。
如以下解释的,在静态编码器的一些实施例中,生成两种类型的冗余码元。在此处的许多示例中使用的具体实施例中,第一集合包括LDPC码元且第二集合包括HDPC码元。在不失一般性的情况下,本文中的许多示例将LDPC码元的数目称为S以及将HDPC码元的数目称为H。可能有两种以上冗余码元,因此不要求R=S+H。LDPC码元和HDPC码元具有不同的度分布,且本领域普通技术人员在阅读本公开之际将看出如何使用非LDPC或HDPC码元的冗余码元,但其中冗余码元包括两个(或更多个)码元集合,其中每个集合的度分布与其他集合的度分布不同。如公知的,冗余码元集合的度分布是指度的分布,其中冗余码元的度是指该冗余码元所依赖的源码元的数目。
P表示中间码元中的永久钝化码元的数目。永久钝化码元是被指定进行特定处置——即在置信传播网络中为了继续进行置信传播而被“搁置”或“钝化”(并随后在解出钝化码元之后回来求解)——的那些码元,其中永久钝化码元与其他钝化码元的区别在于永久钝化码元是在编码器处被指定进行此类处置。
N表示解码器155对其进行解码尝试的收到码元的数目,且A是“开销”码元的数目,即超出K的收到经编码码元数目。因此,A=N-K。
K、R、S、H、P、N和A是整数,典型地全部大于或等于1,但在具体实施例中,其中一些可以为1或0(例如,R=0是其中没有冗余码元的情形,且P=0退回到Shokrollahi II的情形,其中仅存在OTF钝化)。
源码元矢量记为(C(0),…,C(K-1)),且冗余码元矢量记为(C(K),…,C(L-1))。因此,在系统情形中,(C(0),…,C(L-1))表示中间码元矢量。这些中间码元中的数目P个中间码元被指定为“永久钝化”。“PI列表”指示中间码元中的哪些是被永久钝化的中间码元。在许多实施例中,PI列表简单地指向末P个中间码元,即C(L-P)、…、C(L-1),但这不是必要条件。假设该情形仅是为了简化本描述的其余部分。
不在PI列表上的中间码元在本文中被称为“LT中间码元”。在该示例中,LT中间码元将为C(0)、…、C(L-P-1)。D(0)、…、D(N-1)表示收到经编码码元。
应注意,在值阵列被描述为“N(0)、…、N(x)”或诸如此类的场合,不应假定这要求至少3个值,因为其并非意在排除只有一个或两个值的情形。
使用永久钝化的编码方法
图3是图1中所示的编码器115的一个具体实施例的框图。如其中所解说的,源码元被存储在输入缓冲器205中且被提供给静态编码器210和动态编码器220,静态编码器210和动态编码器220还接收关键字输入和其他输入。静态编码器210可包括用于存储内部值和程序指令的内部存储215(存储器、缓冲器、虚拟存储器、寄存器存储等)。同样,动态编码器220可包括用于存储内部值和程序指令的内部存储225(存储器、缓冲器、虚拟存储器、寄存器存储等)。
在一些实施例中,冗余演算器230确定要创建的冗余码元的数目R。在一些实施例中,静态编码器210生成两个相异的冗余码元集合,且在具体实施例中,第一集合是头S个冗余码元,即码元C(K)、…、C(K+S-1)且它们是LDPC码元,而第二集合是接下来H个冗余码元,即C(L-H)、…、C(L-1)且它们是HDPC码元。若PI列表是末P个冗余码元,则所有H个冗余码元可在PI列表上(若P≥H)或者所有P个冗余码元可为HDPC码元(若P<H)。
导致生成这两个码元集合的操作可能相当不同。例如,在以下描述的一些实施例中,用于生成LDPC冗余码元的操作是二进制操作,而用于生成HDPC码元的操作是非二进制的。
动态编码器220的操作在图4中更详细地解释。根据一个实施例,动态编码器220包括两个编码器,PI编码器240和LT编码器250。在一些实施例中,LT编码器250是链式反应编码器,且PI编码器240是特定类型的链式反应编码器。在其他实施例中,这两个编码器可能非常相似,或者PI编码器240不是链式反应编码器。无论如何定义这些编码器,它们都生成码元,其中LT编码器250从被指定为非永久钝化的LT中间码元C(0)、…、C(L-P-1)生成其码元,而PI编码器240从永久钝化的中间码元C(L-P)、…、C(L-1)生成其码元。这两种所生成的码元进入组合器260,组合器260生成最终经编码码元270。
在本发明的一些实施例中,一些永久钝化码元可参与LT编码过程,且不是永久钝化码元的一些码元可参与PI编码过程。换言之,PI列表和包括LT中间码元的码元集合不必是非相交的。
在优选实施例中,提供给组合器260的码元可具有相同长度,且由组合器260执行的功能是对这些码元的异或(XOR)运算以生成经编码码元270。然而,这对于本发明的运转不是必要的。能够预想可导致类似结果的其他类型的组合器。
在其他实施例中,中间码元被细分成两个以上集合,例如,一个LT码元集合和若干个(一个以上)PI码元集合,每个PI码元集合具有其相关联的编码器240。当然,每个相关联的编码器可被实现为在充当不同集合的不同编码器时根据编码过程对不同指令进行操作的共同计算元件或硬件元件。
如可由PI编码器240执行的PI编码过程241的示例操作在图5中例示。使用与要生成的经编码码元相对应的关键字I_a,在步骤261,编码器确定正权重WP和包含WP个在L-P与L-1之间(含L-P和L-1)的整数的列表ALP。在步骤263,若列表ALP=(t(0),…,t(WP-1)),则码元X的值被设为X=C(t(0))⊕C(t(1))⊕…⊕C(t(WP-1)),其中⊕表示异或运算。
在一些实施例中,权重WP固定为某个数字,诸如3或4或其他某个固定数字。在其他实施例中,权重WP可属于可能的此类数字的小集合,诸如被选取成等于2或3。例如,如附录A的实施例中所示,权重WP取决于通过如可由LT编码器250执行的LT编码过程251生成的码元的权重。若LT编码器250生成的权重为2,则WP取决于关键字I_a被选取为2或3,其中WP为2或3的次数比例大约相等;若LT编码器250生成的权重大于3,则WP被选取为2。
图6是根据本发明的实施例之一且使用Luby I和Shokrollahi I的教示的LT编码过程251的示例。在步骤267,使用关键字I_a来分别生成权重WL和列表AL。在步骤269,若列表ALP=(j(0),…,j(WL-1)),则码元X的值被设为X=C(j(0))⊕C(j(1))⊕…⊕C(j(WL-1))。
图7解说了演算权重WL的操作。如其中所示,在步骤272,创建与要生成的经编码码元相关联的数字v,并且可基于该经编码码元的关键字I_a来计算数字v。它可以是经编码码元的索引、代表性标记等,或者是不同的数字,只要编码器和解码器能一致即可。在该示例中,v在0与220之间,但在其他示例中,其他范围是可能的(诸如0到232)。生成v可以使用随机生成表以显式方式进行,但如何生成这些随机数的确切操作可以变化。
假定编码器能访问表M,表M的示例在图8中提供。称为“度分布查找”表的表M包含两列和多行。左列标记有权重WL的可能值,且右列标记有0与220之间(含0和220)的整数。对于v的任何值,该度分布查找表的M[d]列中正好有一个单元,其中M[d-1]<v≤M[d]为真。对于这一个单元,d列中存在相应的值,且编码器将它用作经编码码元的权重WL。例如,在经编码码元具有v=900,000的场合,该经编码码元的权重将为WL=7。
静态编码器210能访问元素SE(k,J),其中k=0,…,R-1且j=0,…,L-1。这些元素可属于任何有限域,该域的元素α与码元X之间存在运算*以使得α*X为码元,且α*(X⊕Y)=α*X⊕α*Y,其中⊕表示异或运算。此类域和运算已在Shokrollahi IV中详述。静态编码器210的操作可描述为:对于给定的源码元序列C(0)、…、C(K-1),计算满足式1中所示关系的冗余码元序列C(K)、…、C(L-1),其中Z(0)、…、Z(R-1)是编码器和解码器已知的值(例如,0)。
在式1中,条目SE(k,j)可全为二进制的,或者其中一些条目可属于域GF(2)而其他一些条目属于其他域。例如,附录A的实施例的相应矩阵在图9中给出。它包括两个子矩阵,一个有S行且一个有H行。上面的子矩阵包括两部分:包括末P列的子矩阵,其中每一行具有两个连贯的1(这些位置按模P来计数)。该矩阵的头W=L-P列包括循环矩阵继以SxS单位矩阵。循环矩阵包括B列且每一列(可能最后一列除外)具有S行。这些循环矩阵的数目为ceil(B/S)。这些循环矩阵中的列各自正好有3个1。第k个循环矩阵的第一列在位置0、(k+1)mod S和(2k+1)mod S处具有1。其他列是第一列的循环移位。图9中的下H行包括具有GF(256)中的条目的矩阵Q继以HxH单位矩阵。
若α表示具有最小多项式x8+x4+x3+x2+1的GF(256)的元素,则矩阵Q等同于图10中给出的矩阵。此处,Δ1、…、ΔK+S-1是权重为2的列,其2个非零条目的位置是根据附录A的第5.3.3.3节中略述的规程伪随机地确定的。明智地选取值S、P和H(诸如附录A中提供的各个值),图10中的矩阵导致相应代码优越的恢复属性。以上描述的规程在图11中例示。在步骤276,矩阵SE被初始化为0。在步骤278,等于LDPC码元数目的输入变量S被提供给该过程,且对于对(i,j),其中i=j mod S、或i=(1+floor(j/S))+j mod S、或i=2*(1+floor(j/S))+j mod S,SE(i,j)的值被设为1。该步骤负责图9中的循环矩阵。
在步骤280,与图9中的单位矩阵IS相对应的位置被设为1。在步骤282,与图9中的矩阵的PI部分相对应的位置被设为1。这些位置是(i,l)和(i,t)形式的,其中l=i mod P且t=(i+1)mod P。在步骤284,与图9中的矩阵Q相对应的位置被设置。相应地,提供矩阵Q作为该步骤的附加输入。在步骤286,与图9的矩阵中的单位矩阵IH相对应的位置被设为1。
对矩阵SE的其他选取是可能的且取决于特定应用和整体代码要求的需求。无论如何选取式1中的矩阵,静态编码器210的任务可用各种方式来完成。例如,高斯消元法可被用作恢复未知值C(K)、…、C(L-1)的过程,如本领域普通技术人员在阅读本公开时将明白的。
解码和永久钝化
解码问题可陈述如下:解码器155具有带有相应关键字Ia、Ib、…的N个经编码码元B(Ia)、B(Ib)、…。这些经编码码元的整个集合或其子集可能已被解码器接收到,而其他经编码码元可能已通过其他手段被给予解码器。解码器的目标是恢复源码元C(0、…、C(K-1)。为了简化表示,将收到经编码码元记为D(0)、…、D(N-1)。
许多解码操作可使用矩阵语言以及对这些矩阵的操作——具体而言是求解带有此类矩阵的方程组——来简洁地描述。在以下描述中,方程可对应于收到经编码码元,且变量可对应于将基于收到经编码码元来求解的源码元或者源码元与从源码元生成的冗余码元(常常称为中间码元)的组合集合。在作为附录A提供的规范中,经编码码元可被称为“编码码元”(且存在其他变型),但是在阅读整个说明书和附录之后应当明白这些参考如何相关。还应理解,矩阵以及对方程的运算和求解可实现为与这些数学运算相对应的计算机指令,且在没有计算机、处理器、硬件或某种电子元件的情况下进行此类运算确实是不切实际的。
在发起解码过程的第一阶段之前,在解码器处使用永久钝化来确定要钝化的一组变量,其被称为永久钝化码元或变量。以下描述的永久钝化解码方法可应用于现有代码,或者代码可被专门设计成结合永久钝化解码甚至更好地工作。永久钝化解码方法可被应用于求解任何线性方程组,且具体而言可被应用于链式反应码、IETF LDPC码和Tornado码。
永久钝化解码是每当从一组已知线性方程值求解一组未知变量时就可结合置信传播解码和/或OTF钝化解码来应用的一般方法,并且在实现基于线性方程组的高效编码和解码方法时尤其有益。在第一阶段,基于已知编码方法的结构或基于收到方程,申明一组未知变量将被永久钝化,且永久钝化变量被从线性方程移除且在解码过程的第二阶段中被视为“解出”(除了当第二阶段线性方程被简化时,对永久钝化变量执行相同的简化)。
在第二阶段,使用先前描述的置信传播解码对未被永久钝化的未知变量应用置信传播解码,或者对未被永久钝化的未知变量应用类似于针对OTF钝化解码方法的第一阶段描述的OTF钝化解码,藉此产生一组简化的经编码码元或方程。从第二阶段得到的简化的经编码码元或方程具有以下属性:其对未被钝化的变量或码元的依赖性已被消除,因此这些简化的经编码码元或方程仅依赖于钝化变量或码元。注意,在一些实现中,也可以保持原始经编码码元或方程,从而原始经编码码元和简化的经编码码元两者皆是可用的。
在第三阶段,使用简化的经编码码元或方程来求解永久钝化变量连同在第二阶段中使用OTF钝化解码生成的任何附加OTF钝化变量,例如使用高斯消元法来求解,或者使用永久钝化变量与线性方程之间的关系的特殊结构(若存在)比使用高斯消元法更高效地求解。
在第四阶段,解出的钝化变量(OTF钝化变量或永久钝化变量)的值结合原始经编码码元或方程(或重新推导出的原始经编码码元或方程)被用于求解未被钝化的变量。
永久钝化解码方法的一个优点在于,除了永久钝化之外,OTF钝化的次数w一般可以较小或为0,且很大程度上可独立于接收到哪些经编码码元。这可使得解码复杂性独立于接收到哪些经编码码元而一致地较小,允许更可靠的解码,以及允许可以更高效地调度的更加可预测且更少的存储器存取。由于第二阶段中仅存在少量OTF钝化,且由于一般仅在解码过程期间确定会使得码元操作模式在某种程度上不可预测的第二阶段中的OTF钝化,因此存储器存取模式在解码期间更加可预测,总体上允许更加可预测的高效解码过程。
上述内容有许多变形。例如,各阶段可按非顺序的交织次序执行。作为另一示例,钝化码元可进而在第三阶段中使用多个附加阶段中的OTF钝化解码或永久钝化解码来求解。作为另一示例,永久钝化解码可应用于可用于纠错码、或擦除校正码的线性方程组和变量,或用于可使用线性方程组来求解的其他应用。作为另一示例,这些方法可应用于系统码和非系统码两者。作为另一示例,这些方法还可在编码过程期间应用,例如在使用Shokrollahi III中教示的方法从非系统码生成系统码时。
在一些情形中,有可能设计编码过程使得永久钝化解码方法将尤为有效。例如,已知置信传播解码每当能被应用时就是计算高效的,但还知道它在单独使用时不能提供高可靠性解码。当在OTF钝化解码内使用置信传播解码时,可非常高效地处理置信传播步骤,但散布在置信传播步骤内的OTF钝化步骤会使解码减慢,且此类OTF钝化步骤越多,解码过程就越慢。
在OTF钝化解码的典型实施例中,在尝试使用N+R个线性方程值求解K+R个未知变量时,在N=K时即尝试使用0开销求解这些变量时,OTF钝化步骤的数目通常最大。另一方面,随着N增大到大于K,典型地是这种情形:OTF钝化解码的复杂性由于较少的OTF钝化步骤而降低,直至N足够大从而在一些情形中不存在OTF钝化步骤且钝化解码像或几乎像置信传播解码那样计算高效。在OTF钝化解码的其他实施例中,即使在N比K大相当多时,OTF钝化的数目可能仍较大。
在永久钝化解码的一个优选实施例中,永久钝化变量的数目P以及线性方程的结构被设计成使得在使用OTF钝化解码从K+R个线性方程值求解未被永久钝化的L-P个变量时,OTF钝化解码期间的OTF钝化步骤的数目很小且在一些情形中为0,因此OTF钝化解码步骤几乎像置信传播那样计算高效。
在优选实施例中,线性方程的结构被设计成使得OTF钝化解码阶段几乎像置信传播解码那样高效。在此类优选实施例中,永久钝化变量与线性方程的关系使得求解钝化变量(包括永久钝化变量连同来自OTF钝化解码阶段的任何OTF钝化变量)的阶段能被高效地执行。此外,在优选实施例中,永久钝化码元的结构使得完成从解出的钝化码元来求解未被钝化的变量的阶段是计算高效的。
带有永久钝化的链式反应码解码
图12解说将由解码器使用N个收到经编码码元或方程以及R个已知静态码元或方程来求解的一组变量的矩阵表示。解码器的任务是求解该图中给出的线性方程组。典型地,码元/方程由解码器可访问的存储器或存储中存储着的值来表示,且以下描述的矩阵运算由解码器可执行的指令来实现。
图12中所示的矩阵包括L=K+R列和N+R行。LT子矩阵表示N个经编码码元与L个中间码元中通过LT编码过程251确定的L-P个LT码元之间的关系。PI子矩阵表示N个经编码码元与L个中间码元中通过PI编码过程241确定的P个PI码元之间的关系。式1的矩阵SE表示由静态编码器210确定的中间码元之间的关系。解码器能基于收到经编码码元的关键字并从码构造确定这些关系。
图12的线性方程组通过使用Shokrollahi II中教示的OTF钝化方法对上述矩阵作行/列置换以变换成图13中所示的形式来求解。它包括下三角矩阵LO310、包括与OTF钝化相对应的矩阵320(称为OTFI)的数个列、与永久钝化中间码元集合或其子集相对应的矩阵330PI、以及与得到矩阵LO的三角化过程中没有使用的经编码或静态码元相对应的矩阵340EL。
图14是描述可执行得到图12中的矩阵的过程的元件的框图。它包括LT矩阵生成器347、PI矩阵生成器349、以及静态矩阵生成器350。一旦接收到关键字Ia、Ib…,LT矩阵生成器就创建图12中的矩阵LT,而PI矩阵生成器349创建图12的矩阵PI。这两个矩阵的级联被转发给静态矩阵生成器350,静态矩阵生成器350可将静态关键字S_0、S_1、…作为附加提示。静态矩阵生成器的任务是创建矩阵SE,且其输出是图12中给出的完整矩阵。
LT矩阵生成器347和PI矩阵生成器349的操作分别与图15中LT编码器250和PI编码器240的操作紧密关联。静态矩阵生成器350的操作是重新创建用于静态编码的式1的矩阵SE。
LT矩阵生成器347、PI矩阵生成器349和静态矩阵生成器现在将参照它们可能执行的操作来进一步详细地描述。
图16是解说LT矩阵生成器347采用的方法的一个实施例500的流程图。在步骤505,LT矩阵生成器347将N x(L-P)格式的矩阵LT初始化为全0。接下来,在步骤510,使用关键字Ia、Ib、…来分别生成权重WL(0)、…、WL(N-1)和列表AL(0)、…、AL(N-1)。列表AL(i)中的每个列表包括WL(i)个在范围0、…、L-P-1中的整数(j(0),…,j(WL(i)-1))。在步骤515,使用这些整数将条目LT(i,j(0))、…、LT(i,j(WL(i)-1))设为1。如以上解释的,矩阵LT在收到码元(D(0),…,D(N-1))的意义上贡献于未知数(C(0),…,C(L-1))的方程组。
如本领域技术人员可领会的,如此处描述的LT矩阵生成器的操作类似于图6的LT编码过程251的操作。
图17是解说PI矩阵生成器349采用的方法的一个实施例600的流程图。在步骤610,PI矩阵生成器349将N x P格式的矩阵PI初始化为全0。接下来,在步骤615,使用关键字Ia、Ib、…来分别生成权重WP(0)、…、WP(N-1)和列表ALP(0)、…、ALP(N-1)。列表ALP(i)中的每个列表包括WP(i)个在范围0、…、P-1中的整数(j(0),…,j(WP(i)-1))。在步骤620,使用这些整数将条目PI(i,j(0))、…、PI(i,j(WP(i)-1))设为1。PI矩阵生成器的操作类似于图5中的PI编码过程241的操作。
如以上解释的,矩阵LT和PI在收到码元(D(0),…,D(N-1))的意义上贡献于未知数(C(0),…,C(L-1))的方程组。理由如下:一旦LT编码器选取权重WL(i)并关联列表AL(i)=(j(0),…,j(WL(i)-1)),且PI编码器选取权重WP(i)并关联列表ALP(i)=(t(0),…,t(WP(i)-1)),则如下所示地获得相应的经编码码元D(i)。针对i在0和N-1之间的所有值累积的这些方程得到式2中表示的合意方程组。
D(i)=C(j(0))⊕…⊕C(j(WL(i)-1))⊕C(t(0))⊕…⊕C(t(WP(i)-1)) (式2)
权重WL可以使用与图7中给出的规程相似的规程来演算。本领域普通技术人员在查阅本公开之际将看出如何将此举扩展到其中有两个以上编码器、每个编码器有不同的度分布来操作的情形。
在图18中提供矩阵生成器的略微不同的流程图。它包括LT矩阵生成器710、静态矩阵生成器715、以及PI矩阵生成器720。一旦接收到关键字Ia、Ib…,LT矩阵生成器710就创建图15中解说的矩阵LT,而静态矩阵生成器715创建图15中解说的矩阵SE并将附加的静态关键字S_0、S_1、…作为其另一输入。这两个矩阵的级联被转发给PI矩阵生成器720,PI矩阵生成器720创建矩阵PI。LT矩阵生成器710的操作可与图16中详述的LT矩阵生成器347的操作完全相同。静态矩阵生成器715的操作可与图14中的静态矩阵生成器350的操作不同。具体地,图19详述了此类操作的示例性实施例。
在步骤725,矩阵SE被初始化为0。在步骤730,等于LDPC码元数目的输入变量S被提供给该过程,且对于对(i,j)在i=j mod S、i=(1+floor(j/S))+j modS、或i=2*(1+floor(j/S))+j mod S时,SE(i,j)的值被设为1。在步骤735,与图9中的单位矩阵IS相对应的位置被设为1。在步骤740,与矩阵T相对应的位置被提供作为该步骤的附加输入。该矩阵可具有多个有限域中的条目,且对于不同的应用可以不同。它可以基于代码要求的需求来选取。
图20是解说PI矩阵生成器720采用的方法的一个实施例的简化流程图。在步骤745,PI矩阵生成器349将(N+R)x P格式的矩阵PI初始化为全0。接下来,在步骤750,使用关键字I_a、I_b、…来分别生成权重WP(0)、…、WP(N-1)和列表ALP(0)、…、ALP(N-1)。列表ALP(i)中的每个列表包括WP(i)个在范围0、…、P-1中的整数(j(0),…,j(WP(i)-1))。在步骤755,使用这些整数将条目PI(i,j(0))、…、PI(i,J(WP(i)-1))设为1。图20中的PI矩阵生成器的操作类似于图17的PI矩阵生成器的操作,不同之处在于该矩阵生成器创建具有多R行的矩阵且与图15的矩阵紧密相关。
图12或图15中的方程组典型地是稀疏的,即所涉及矩阵中非零条目的数目典型地远小于可能的条目的一半。在这种情形中,可能无需直接存储这些矩阵,而是可存储帮助重新创建这些矩阵的每个个体条目的指示。例如,对于矩阵LT或PI的每一行,过程可能想要存储如图5-6中计算出的权重和邻元列表。其他方法也是可能的,且其中许多方法已在本文中或在通过援引纳入于此的公开中作了解释。
一旦矩阵生成器已创建图12或图15给出的形式的方程组,解码器的任务将是求解该方程组的未知值C(0)、…、C(L-1)。可应用数种不同方法来达成此目标,包括但不限于高斯消元法、或Luby I、Luby II、Shokrollahi I、II、III、IV、或V中描述的任何方法。
现在参照图21-26略述用于求解图12或图15中的方程组的可能方法。根据本发明的一些实施例的解码器的操作的流程图在图21中给出。在步骤1305,使用早先描述的一些方法创建解码矩阵。在步骤1310,使用行和列置换来重新安排该矩阵。如以上提及的,此类矩阵可从图12或图15的矩阵通过应用行和列置换来获得。链式反应解码结合Shokrollahi II的运行中钝化解码可被用于达成此目的。因此存在对集合{0,1,…,L-1}操作的置换pi以及对集合{0,1,…,N+R-1}操作的置换tau以使得满足图22中的方程。
在本文中,w表示图13中的矩阵LO的行和列的数目,即既未被永久钝化也未被OTF钝化的中间码元的数目。在步骤1315,使用图13的矩阵LO将矩阵LO在对角线以下的所有条目消零。通过这样做,图23中的方程右侧的码元集合需要遵守相同的操作,从而通过对一些D(tau(i))的异或来获得该方程组新的右侧。
如图24中解说的,在此操作之后,矩阵810变成单位矩阵,840中的矩阵EL将不被触及,且矩阵OTFI和PI将变为820中的OTFI-2和830中的PI-2,因为解码过程需要根据为了将矩阵LO简化为单位矩阵所必需的操作将这些矩阵的行异或在一起。
解码过程的下一步可为步骤1320,其中剩余矩阵在LO之下的其余部分被消元以获得图25中所指示形式的矩阵。将原始码元D(0)、…、D(N_R-1)在此步骤之后的经置换和简化值记为E(0)、…、E(N+R-1),将矩阵EL_2的行数记为u,以及将EL_2的列数记为g,图25中的矩阵的结构根据式3关于C(pi(L-g))、…、C(pi(L-1))的值得到较小的有u个线性方程的方程组。
诸如图21中描述的解码过程可在步骤1330中通过各种手段求解该方程组,例如通过使用高斯消元过程、或链式反应编码与高斯消元法的组合、或通过钝化解码的其他应用、或通过其他手段来求解。若矩阵EL具有属于多个域的元素,则高斯消元法可被修改从而将GF(2)中的计算与较大域诸如GF(256)中的计算分开,如举例而言在Shokrollahi IV中教示的。
若式3的方程组不是使用解码器采用的这些过程可解的,则解码器可在步骤1335中应用对策。此类对策可包括标记差错并停止该过程,或者可包括请求更多经编码码元,或者可停止该过程并向使用该解码器的应用返回它迄今为止已能够恢复的中间码元或源码元的列表。若该方程组是可解的,则解码器可恢复钝化中间码元C(pi(L-g))、…、C(pi(L-1))的值。在一些变形中,在步骤1330中还可恢复除钝化中间码元之外的其他一些中间码元。
一旦恢复出这些码元的值,解码器就行进到涉及回代的步骤1340。恢复出C(pi(L-g))、…、C(pi(L-1))的值得到图26中给出的类型的方程组。该方程组比一般方程组更容易求解。例如,解码器可使用图23中指示的过程来这样做。获得图23右侧的第一矢量的过程可被称为回代,因为它是将已知码元的值代入该方程组的过程。如本领域普通技术人员在阅读本公开后可以看出的,图23和26中给出的方程组在算术上是等效的。
在图23中,解码器通过实现其中使用矩阵乘法规则将矩阵右侧的条目乘以已解出矢量C(pi(L-g))、…、C(pi(L-1))的条目并将所获得的条目与E(0)、…、E(L-g-1)异或的过程来获得未知值C(pi(0))、…、C(pi(L-g-1))。将所获得的条目与E(0)、…、E(L-g-1)异或且因此恢复C(pi(0))、…、C(pi(L-g-1))的值的过程包括图21中的解码器的步骤1345。
尽管在一些应用中是有用的,但该方法在一些优选实施例中可能导致较大的计算开销,因为图23右侧的矩阵典型地不是稀疏的,因此为了获得元素C(pi(j))之一,不得不执行与g成比例的数次异或。在一些实施例中,该数目可能很大,例如由于永久钝化的数目P开始被选取成较大,且g可至少为P这么大。这可能对永久钝化码元的数目即P的值造成严格限制,且若使用较小的P值,则这可能导致OTF钝化中间码元的数目增大。
图27描述了可能比图21中描述的过程在计算上更高效的经修改解码过程。该过程的步骤1405到1435可与图14中的过程的相应步骤相同。可任选地,该过程可在附加存储器位置保存图12或图15中的原始矩阵的副本、或此矩阵的相关部分、以及原始码元D(0)、…、D(N+R-1)供将来使用。这对于该过程的运转不是必要的,但若应用具有足够的存储器资源来保存这些副本则可能导致进一步的速度优点。替换地,该过程可仅保存原始码元D(0)、…、D(N+R-1)的副本而不保存矩阵,并在需要矩阵时重新创建矩阵。步骤1440使用矩阵的所存储副本或者撤销步骤1415中的过程以再获得图22中的原始方程组、或者图28中给出的仅该方程组的上部。此时,图29中给出的矩阵1510是稀疏的,且C(pi(w))、…、C(pi(L-1))的值是已知的,其中w=L-g。
如公知的,图29中的方程的右侧可经由涉及码元的少量异或——即等于矩阵OTFI中非零条目的数目加上矩阵PI中非零条目的数目——的计算高效过程来计算。该过程的此步骤在图27中由1445表示。在该步骤完成之后,图29中方程的右侧已计算出,且将求解其中未知数为C(pi(0))、…、C(pi(w-1))的值的方程组。该方程组可在步骤1450中使用链式反应解码来求解,因为右侧的下三角LO是稀疏的,即为了求解该方程组而对码元进行异或的次数等于矩阵LO中非零条目的数目且该数目典型地远小于w*w,w*w为可能的非零条目的最大数目。
永久钝化数目的选取
永久钝化数目的选取会影响整体性能,因此会是重要的。另一方面,该数目需要被选取为尽可能大:若该数目是大的,则OTF钝化的数目可能减少到非常小的数目,有时甚至为0。这是因为图15中LT和SE矩阵的组合(或者其在图23中的相应变形)实际上是具有大开销的链式反应码的解码矩阵。这一事实使得OTF钝化的数目很小。在某些实施例中,OTF钝化可能更难管理,因此减少其数目可能在速度和/或存储器的意义上得到优点。
另一方面,增加永久钝化的数目可能对运行时间有不利影响:例如,图21的解码过程中的步骤1330以及图27的过程中的相应步骤1430要求求解具有至少P行和P列的方程组。这样做的一种方式将是标识图25中的矩阵EL-2的可逆子矩阵,对该矩阵求逆,并使用该逆矩阵来获得中间码元C(pi(L-g-1))、…、C(pi(L-1))的值。由于在许多实施例中矩阵EL-2可能不是稀疏的,因此获得这些中间码元的值可能引起对码元g x g次异或的量级。由于g至少为P,因此对码元的异或次数可能至少为P x P,因此若对码元的异或的总次数要在K内保持线性,则好的选择是将数目P设为与K的平方根成比例。附录A的具体实施例将P选取为2.5*sqrt(K)的量级,并保持与该观察一致。这是P的良好选取,因为在P的该选择下,典型地OTF钝化的数目相当小,从约P变化到非常接近或等于0。
另一个感兴趣的量是经编码码元或静态码元存在的钝化中间码元邻元的平均数I。图27中的解码过程的步骤1445可能需要每个未恢复中间码元平均有多达I次码元异或来完成该步骤。若I是大的,则该异或次数对于执行解码的过程或编码过程的存储器和计算资源来说可能过多。另一方面,若I太小,则图25的矩阵EL-2可能不具有满秩,且可解码性可能受到危害。
更详细的分析揭示了永久钝化的重要方面是使得图15的矩阵PI的行为是各列彼此线性独立,即该矩阵尽可能是满秩的。本领域技术人员公知的是,若PI是随机二进制矩阵,则可达成可能的最大限度的满秩。另一方面,PI可在每列中平均具有与K的平方根成反比的1的分数,且仍满足与纯随机矩阵相同的秩属性。出于该原因,附录A中的具体实施例将I选取为2与3之间的数字,因此P选取为与K的平方根成比例,这意味着PI的每列中1的数目平均与K的平方根成反比。
存在这些方法的许多变形,如本领域技术人员在阅读本公开之际将认识到的。例如,异或可用其他运算来代替,例如,较大有限域上的线性算子,或者这些算子可以是不同算子的混合,例如大有限域上的一些线性算子用于一些操作,而较小的大有限域上的其他线性算子用于其他操作。
参照附录A的具体示例
如以上详述的,在没有永久钝化(即,关于哪些经编码码元将不是将作为确定链式反应解码的序列的一部分的矩阵操纵的部分的预定决定)的情况下,OTF钝化的数目可能是相当随机的且在存储器消耗的意义上导致潜在问题。在源码元的数目非常大且开销很小的场合,差错概率可能难以接受地接近1。
由于小开销的高差错概率,在源码元数目很大时要找出良好的系统信息可能变得愈加困难。本文中,系统信息是指需要提供给编码器和解码器才能在Shokrollahi III的意义上构造系统码的信息。此外,每当获得系统信息时,可预期代码行为远远偏离其平均行为,因为“平均”来说该码应在0开销时失败。
用于通过永久钝化来构造链式反应码的一些参数可包括用于图4的LT编码器250的度分布Ω、用于PI编码器240的参数、关于永久钝化码元数目的确定、关于冗余静态码元的数目及其结构的确定,以及可生成并在图1的编码器115和解码器155之间共享随机数的特定方式。
使用RQ码的编码器和解码器
使用本文中描述的方法的在下文被称为“RQ码”的代码的优选实施例在附录A的第5节中更详细地指出。附录A的其余部分描述了应用RQ码在广播或多播网络上进行可靠的对象递送的一种方法。
RQ码使用先前以及下文描述的方法来实现系统码,意味着所有源码元都在会被生成的经编码码元中,因此经编码码元可被视为原始源码元与由编码器生成的修复码元的组合。
尽管一些先前代码具有良好的属性,但存在将提高其实际应用的一些改善。两项重要的潜在改善是更陡峭的开销-失败曲线以及每源块更大数目的所支持源码元。开销是收到的经编码码元数目与源块中的源码元数目之差,例如开销2意味着接收K+2个经编码码元来解码具有K个源码元的源块。给定开销处的失败概率是当收到经编码码元数目对应于该开销时解码器未能完全恢复源块的概率。开销-失败曲线是失败概率作为从开销0开始递增的开销的函数如何下降的标绘。若解码器的失败概率作为开销的函数下降得快或陡峭,则开销-失败曲线较好。
随机二进制码具有其中失败概率对于每个额外的开销码元基本上按因子2下降的开销-失败概率曲线,具有不可行的计算复杂性,但本讨论的主题限于开销-失败概率曲线而非计算复杂性。在一些应用中,这是充分的开销-失败曲线,但对于其他一些应用,优选更陡峭的开销-失败曲线。例如,在流送应用中,源块中的源码元数目的范围可能很宽,例如K=40、K=200、K=1,000、K=10,000。为了提供良好的流送体验,可能要求失败概率较低,例如失败概率为10-5或10-6。由于带宽对于流送应用而言往往是珍贵的,因此作为源码元的分数发送的修复码元百分比应当最小化。例如,假设在使用具有K=200的源块时应保护发送流的网络避免高达10%的分组丢失,且要求失败概率至多为10-6。随机二进制码要求至少20的开销来达成10-6的失败概率,即接收机需要220个经编码码元才能以该失败概率进行解码。每个源块需要发送总共245个经编码码元以满足该要求,因为ceil(220/(1-0.1))=245。因此,修复码元对该流的带宽要求增加了额外的22.5%。
对于值K=K′(针对所有所支持的K′值)以及对于K=1和K=K′+1(针对除了K的最末所支持值以外的所有值),本文中以及附录A的第5节中描述的RQ码对于开销0、1和2分别达成小于10-2、10-4和10-6的失败概率。已对各种丢失概率进行了测试,例如丢失概率10%、20%、50%、70%、90%和95%。
对于使用RQ码的以上示例,开销2足以达成失败概率10-6,因此对于每个源块只需要发送总共225个经编码码元就能满足该需求,因为ceil(202/(1-0.1))=225。在这种情形中,修复码元对该流的带宽要求增加了额外的12.5%,即比随机二进制码要求的带宽开销少10%。因此,改善了开销-失败曲线的RQ码具有一些非常正面的实际结果。
存在其中期望支持每源块的大量源码元的应用。例如,在移动文件广播应用中,从网络效率的观点来看有利的是将文件作为单个源块来编码,或更一般地,将文件分成可行的尽量少的源块。例如假设要广播有5千万字节的文件且用于携带经编码码元的每个分组内的可用大小为一千字节。为了将该文件作为单个源块来编码要求支持K=50,000的值。(注意,存在如先前描述的允许使用少得多的存储器来解码的分子块技术)。
代码支持的源码元数目可能受限有若干原因。一个典型的原因是诸如对于Reed-Solomon码,计算复杂性随着K增加而变得不合理,但诸如链式反应码之类的代码不是这种情形。另一个原因可能是0开销处的失败概率随着K增加而增大到几乎1,使得更加难以找出产生良好系统码构造的系统索引。0开销处的失败概率可指示推导良好码构造的难度,因为这实质上是在随机地选取系统索引时结果得到的系统码构造具有头K个经编码码元能解码K个源码元的属性的概率。
由于RQ码设计的开销-失败曲线对于K的所有值都如此陡峭,因此可能容易找出良好的系统索引且因此支持大得多的K值。如附录A第5节中描述的RQ码支持高达56,403的K值,且还支持每源块最高达16,777,216的经编码码元总数。对RQ码的所支持值的这些限制是由于基于感知到的应用要求的实际考虑来设定的,而不是由于RQ码设计的局限性。除附录A中示出的那些以外的其他实施例可具有不同的值。
RQ码如下限制所支持的不同源块大小的数目。给定要编码或解码的具有K个源码元的源块,基于附录A第5.6节中示出的表来选择K′值。该表的第一列列出了K′的可能值。所选择的K′值是可能性中使得K≤K′的最小值。K个源码元C′(0)、…、C′(K-1)用值被设为0的K′-K个码元C′(K)、…、C′(K′-1)来填充,以产生包括K′个源码元C′(0)、…、C′(K′-1)的源块,并且随后对该被填充的源块执行编码和解码。
以上办法具有减少需要支持的系统索引数目的益处,即只有几百个而非几万个。对于K而言在开销-失败概率的意义上没有缺点,因为其与所选K′的开销-失败曲线相同:给定K的值,解码器就能计算出的值K′,并将C′(K)、…、C′(K′-1)的值设为0,且因此其只需要解码源块的K′个源码元中其余的K个。唯一的潜在缺点是用略多的源码元来编码和解码可能需要略多的存储器或计算资源。然而,K′的连贯值之间的间距对于K′的较大值约为1%,因此该潜在缺点是可忽略的。
由于源块从K填充到K′,因此RQ码内的经编码码元C′(0)、C′(1)…的标识符被称为内部码元标识符,缩写为ISI,其中C′(0)、…、C′(K′-1)是源码元而C′(K′)、C′(K′+1)…是修复码元。
采用该编码器和解码器的外部应用使用范围从0到K-1的经编码码元标识符(也称为编码码元标识符,缩写为ESI)来标识原始源码元C′(0)、…、C′(K-1),且使用继续K、K+1…的经编码码元标识符来标识修复码元C′(K′)、C′(K′+1)…。因此,在RQ码内用ISI X标识的修复码元C′(X)在外部用ESI X-(K′-K)来标识。这在附录A第5.3.1节中更详细地描述。
RQ码的编码和解码由两种类型的关系来定义:中间码元之间的约束关系以及中间码元与经编码码元之间的LT-PI关系。该约束关系对应于由例如图12或图15中示出的SE矩阵定义的中间码元之间的关系。LT-PI关系对应于由例如图12或图15中示出的LT矩阵和PI矩阵定义的中间码元与经编码码元之间的关系。
编码通过基于以下各项确定中间码元值而进行:(1)源码元值;(2)源码元与中间码元之间的LT-PI关系;以及(3)中间码元之间的约束关系。修复码元的值可基于中间码元与修复码元之间的LT-PI关系从中间码元生成。
类似地,解码通过基于以下各项确定中间码元值而进行:(1)收到经编码码元值;(2)收到经编码码元与中间码元之间的LT-PI关系;以及(3)中间码元之间的约束关系。缺失源码元的值可基于中间码元与缺失源码元之间的LT-PI关系从中间码元生成。因此,编码和解码基本上是对称规程。
示例硬件组件
图30-31解说了可用来实现以上描述的方法的硬件的框图。每个元件可以是硬件、由通用或专用处理器或组合执行的程序代码或指令。
图30解说示例编码系统1000,其可实现为硬件模块、软件模块、或存储在程序存储1002中并由处理器1004执行的可能作为并非如图中所示地分开的综合代码单元的程序代码的部分。编码系统1000接收传达源码元和参数信息的信号输入,并输出传达该信息的信号。
输入接口1006将传入的源码元存储到源码元缓冲器1008中。源-中间码元生成器1010从源码元生成中间码元。这在一些实施例中可以是直通器而在其他实施例(诸如“系统”实施例)中可以是解码器模块。
冗余码元生成器1012从源码元生成冗余码元。这可实现为链式反应编码器、LDPC编码器、HDPC编码器或类似的编码器。钝化器1014接收源码元、中间码元和/或冗余码元,视情形而定,并将其中一些——永久钝化码元——存储在PI缓冲器1018中并将其他码元提供给输出编码器1016。该过程可能仅是逻辑上的而非物理上的。
诸如异或算子之类的算子1020对来自输出编码器1016的一个或更多个经编码码元(在某些实施例中为1个)以及来自PI缓冲器1018的一个或更多个PI码元(在某些实施例中为1个)进行运算,且该运算的结果被提供给传送接口1030,传送接口1030从系统1000输出信号。
图31解说示例解码系统1100,其可实现为硬件模块、软件模块、或存储在程序存储1102中并由处理器1104执行的可能作为并非如图中所示地分开的综合代码单元的程序代码的部分。一些过程可能仅是在逻辑上而非物理上实现的。
解码系统1100取得输入信号以及可能的其他信息并且若能够则输出源数据。信号输入被提供给接收接口1106,接收接口1106将收到码元存储在缓冲器1108中。收到码元的ESI被提供给矩阵生成器1110,矩阵生成器1110如本文中所描述地依赖于接收到的特定码元生成矩阵,并将结果存储在矩阵存储器1112中。
调度器1114可从矩阵存储器1112读取矩阵细节并生成调度,该调度存储在调度存储器1016中。调度1114还可在完成时生成完成信号并将PI矩阵传达给PI求解器1118。PI求解器1118将解出的PI码元值提供给求解器1120,求解器1120还使用该调度从收到码元、调度和PI码元解码中间码元。
中间码元被提供给中间-源码元生成器1122,中间-源码元生成器1122可以是编码器或直通器。中间-源码元生成器1122的输出被提供给输出接口1124,输出接口1124输出源数据或可供输出的任何源数据。
其他考虑
在某些情形中,可能需要增强的可解码性。在本文中别处提供的示例中,当经编码码元具有LT邻元和PI邻元两者时,LDPC码元仅具有不在HDPC码元中的LT邻元或PI邻元。在一些实例中,若LDPC码元也具有包括HDPC码元的PI邻元,则可解码性得到改善。有了包括HDPC码元的所有PI码元之间的邻元,LDPC码元的解码价值可能更类似于经编码码元的解码价值。如本文中别处解释的,码元依赖于LT码元(其能容易地编码和解码)且还依赖于包括HDPC码元(其可提供高可靠性解码)的PI码元,因此可存在两种优点。
在一示例中,每个LDPC码元具有两个PI邻元,即LDPC码元的值取决于两个PI码元的值。
在减少重复经编码码元的出现的一些情形中,可解码性也可得到改善,其中两个经编码码元若具有完全相同的总邻元集合则是重复,其中经编码码元的总邻元集合包括LT邻元集合和PI邻元集合。具有相同的总邻元集合的重复经编码码元携带完全相同的关于生成这些经编码码元的中间源块的信息,因此收到一个以上重复经编码码元与收到重复经编码码元之一相比在解码时并不存在更好的机会,即接收一个以上重复码元增加了接收开销且重复中的经编码码元中的仅一个对于解码是有用的。
优选属性是每个收到经编码码元不是任何其他收到经编码码元的重复,因为这意味着每个收到经编码码元对于解码可能都是有用的。因此,可能优选减少此类重复的数目或减少发生重复的概率。
一种办法是限制每个经编码码元可具有的LT邻元的数目。例如,若存在W个可能的邻元,则邻元的最大数目可被限制为W-2。这在一些情形中减少了总邻元集合将被重复的机会,因为包括所有W个可能邻元的邻元集合将不被允许。在约束是Deg[v]=min(d,W-2)的场合,存在度为W-2的W*(W-1)/2个不同的邻元集合。因此,不大可能为经编码码元生成重复的总邻元集合。可改为使用其他约束,诸如对于除Wg=2以外的一些Wg为min(d,W-Wg),或者其他某种约束。
可单独使用或与以上的重复减少技术一起使用的另一种技术是为每个经编码码元选取一个以上PI邻元,使得经编码码元不大可能有重复PI邻元,且不大可能为经编码码元生成重复的总邻元集合。PI邻元可按如何生成LT邻元的类似方式生成,例如通过首先根据以下代码片断如附录A第5.3.5.4节中所示地生成(d1,a1,b1):
if(d<4)then{d1=2+Rand[y,3,2]}else{d1=2};
a1=1+Rand[y,4,P1-1];
b1=Rand[y,5,P1];
注意在该示例中,存在意义重大的针对PI邻元数目d1定义的随机度分布,且该分布依赖于所选取的LT邻元数目d,且当LT邻元数目较小时PI邻元数目很可能较大。这提供了以下属性:经编码码元的总体度使得减少将生成以及因此接收的重复经编码码元的机会。
经编码码元值可如附录A第5.3.5.3节中所示地并通过以下代码片断使用由(d1,a1,b1)定义的邻元来生成:
为了支持这些可解码性特征或者分开地提供可解码性,可以使用K′值的不同系统索引J(K′),诸如附录A第5.6节的表2中示出的系统索引。
可在传输和/或接收系统中执行以生成系统索引J(K′)的过程的示例如下解说。对于可能K′列表中的每个K′,典型地可由恰适地编程的电路或处理器执行的一个过程是检查索引数目的合适性。例如,该电路/处理器可检查,对于J=1…1000[或其他某个极限],关于可能的系统索引J是否满足以下准则:
(a)在0开销处从K′个源码元解码是可能的?
若是,则记录运行中钝化的数目
(b)头K′/0.06个可能的经编码码元(具有ESI 0、…、K′/0.06)之间存在重复的总邻元集合?[可改为使用其他阈值。]
(c)当使用头K′个收到经编码码元在10,000个循环[或其他某种测试]内解码时,若每个经编码码元与其他经编码码元独立地在每个循环内有0.93[或其他某个阈值]的概率丢失,解码失败概率低于0.007[或其他某个阈值]?
该电路/处理器随后在满足以上准则(a)、(b)和(c)的可能系统索引J中进行选择,从而选取在步骤(a)中记录运行中钝化的平均数目的系统索引。
注意,上面的选择准则有许多变形。例如,在一些情形中,可能优选选取满足上面的(a)、(b)和(c)且在指定的循环数目内在步骤(c)中产生最少数目的解码失败的系统索引。作为另一示例,在选取系统索引时可考虑运行中钝化的数目与解码失败概率的组合。作为另一示例,每个K′值可能有多个系统索引可用,则在特定应用内随机地选取它们之一。
附录A第5.6节中的表2中列出的K′值的系统索引是附录A中描述的代码的系统索引的一个潜在可能的列表。
分子块过程的变形
出于各种目的已知将块分成较小单位以在物理上或逻辑上进行进一步处理的分子块。例如,它在IETF RFC 5053中使用。从美国专利号7,072,971也知道它。分子块方法的一个主要用途是允许FEC码将较大的数据块作为单个实体来保护,同时在接收机处使用FEC解码器通过使用比该数据块的大小小得多的存储器量来恢复该数据块。
用于选取IETF RFC 5053中描述的子块数目的一种方法对于许多合理的参数设置提供良好的源块划分和子块划分,但在一些环境中可能产生可能不严格满足子块大小的上限WS的解(但即使在这些情形中,也产生其中子块大小比子块大小的给定约束WS大适度因子的解)。作为另一示例,在draft-luby-rmt-bb-fec-raptorg-object-00(其中源块中的最大源码元数目远大于IETF RFC 5053中源块中的最大源码元数目)第4.2节中,提供以下处方来演算T、Z和N,其中T是码元大小,Z是将文件(或数据块)分成的源块的数目,而N是子块的数目。另外,P′是码元的分组有效载荷大小,F是以字节计的文件大小,K′_max是所支持的最大源码元数目(例如,56,404),Al是指定码元或子码元的大小应为Al字节的倍数以允许更高效解码的对准因子,例如对于现代CPU而言Al=4是优选的,且WS是以字节计的子块大小的合意上限。
注意,参数T、Z和N的推导可在发送方或替换性服务器上基于F、Al和P′的值来进行。接收机仅需要知晓F、Al、T、Z和N的值就能在关于文件或数据块的收到分组中确定该文件或数据块的子块和源块结构。接收机可从收到分组的大小确定P′。注意,所发送和接收的分组典型地还包含标识分组内容的其他信息,例如典型地大小为4字节且携带源块编号(SBN)的FEC有效载荷ID、以及分组中携带的第一个码元的经编码码元标识符(ESI)。
在draft-luby-rmt-bb-fec-raptorg-object-00第4.2节中描述的用于演算T、Z、N的先前方法将它们设为以下值:
●T=P′
●Kt=ceil(F/T)
●Z=ceil(Kt/K′_max)
●N=min{ceil(ceil(Kt/Z)*T/WS),T/Al}
在这些演算中,ceil()是输出大于或等于其输入的最小整数的函数,而floor()是输出小于或等于其输入的最大整数的函数。另外,min()是输出其输入中的最小值的函数。
这样推导源块和子块划分的一些参数设置的一个问题在于若T/Al小于ceil(ceil(Kt/Z)*T/WS),则可能不遵守子块大小的上限W。
潜在的附属问题在于这允许子码元小达Al,Al典型地设为4字节,且可能太小而实际上不是高效的。典型地,子码元大小越小,解码或编码子块的处理开销越多。此外,尤其是在接收机处,子码元大小越小意味着需要解复用和解码的子块越多,且这会消耗诸如CPU循环和存储器存取之类的接收机资源。另一方面,可允许子码元大小越小意味着可将源块分成越多遵守子块大小的指定上限WS的子块。因此,子码元越小允许支持的源块越大,且因此跨该源块提供的FEC保护产生更好的保护和更好的网络效率。实际上,在许多情形中,优选确保子码元至少为指定的最小大小,这提供在接收机处更好地平衡处理需求与存储器需求的机会,以及对网络资源的高效利用。
作为所推导参数的示例,使用draft-luby-rmt-bb-fec-raptorg-object-00第4.2节中描述的先前方法来演算T、Z、N:
输入:
F=56,404KB
P′=1KB=1,024字节
WS=128KB
Al=4
K′_max=56,404
演算:
T=1KB
Kt=56,404
Z=1
N=256(由于min函数的第二输入)
在该示例中,将有一个源块,包括256个子块,其中每个子块约为220KB(大于WS),其中至少一些子块具有的子码元大小为4字节(极其小)。
第三个问题在于AL-FEC解决方案可能不支持所有可能的源码元数目,即它可能仅支持所选的K′值列表,其中K′是源块中所支持的源码元数目,且若源块中合意的实际源码元数目K不在这些K′值中,则K被填充到最接近的K′值,这意味着所使用的源块的大小可在一定程度上大于从以上演算出的K值。
现在描述新的分子块方法,其是对以上描述的先前方法的改进。出于描述目的,用于分子块的模块可将待划分的数据F以及包括WS、Al、SS和P′的值作为其输入,其中这些变量的涵意在以下更详细地描述。
WS表示在接收机的工作存储器中可解码的最大大小的子块的规定约束,可能以字节为单位。Al表示存储器对准参数。由于接收机存储器若码元和子码元在存储器中沿存储器对准边界对准则可能更高效地工作,因此追踪Al并以Al字节的倍数来存储值可能是有用的。例如,典型地Al=4,因为许多存储器设备天生在四字节边界上寻址存储器中的数据。Al的其他值也是可能的,例如Al=2或Al=8。典型地,Al可被设为所有许多可能的接收机的最小公倍数存储器对准。例如,若一些接收机支持2字节存储器对准但其他接收机支持4字节存储器对准,则将推荐Al=4。
基于优选的子码元大小下限确定参数SS,以使得子码元大小下限为SS*Al字节。可能优选的是使子码元大小为A1的倍数,因为解码操作典型地是对子码元执行的。
以下是用于将数据F划分成Z个源块并然后将这Z个源块划分成N个子块的方法的详细解释。在该描述中,P′是指存储在存储器中的(或暗含的)表示用于要发送的码元的分组内的可用字节的变量,且假定P′是Al的倍数。T是表示要放在所发送分组内的码元的大小的变量。其他变量可从本文中推出。
用于确定T、Z和N的新的分子块方法
●T=P′
●Kt=ceil(F/T);
●N_max=floor(T/(SS*Al));
●对于所有n=1,…,N_max
○KL(n)是作为源块中的可能源码元数目所支持的最大K′值,其满足
■K′≤WS/(Al*(ceil(T/(Al*n))));
●Z=ceil(Kt/KL(N_max));
●N=使得ceil(Kt/Z)≤KL(n)的最小n;
一旦确定了这些参数,则Z个源块中每个源块的大小以及每个源块的N个子块的子码元大小就可如IETF RFC 5053中描述地确定,即Kt=ceil(F/T),(KL,KS,ZL,ZS)=Partition[Kt,Z],以及(TL,TS,NL,NS)=Partition[T/Al,N]。
Kt是文件中源码元的数目。在分子块模块中,Kt个源码元被划分成Z个源块:各自有KL个源码元的ZL个源块以及各自有KS个源码元的ZS个源块。随后,KL被向上舍入到KL′,其中KL′是至少为KL的最小所支持源码元数目(且出于编码和解码目的将附加的KL′-KL个零填充码元添加到源块,但这些附加码元典型地不被发送或接收),且类似地,KS被向上舍入到KS′,其中其中KS′是至少为KS的最小所支持源码元数目(且出于编码和解码目的将额外的KS′-KS个零填充码元添加到源块,但这些附加码元典型地不被发送或接收)。
(由分子块模块、其他软件模块、或硬件执行的)这些演算确保了各源块的源码元数目尽可能相等,受其数目总计为文件中的源码元数目Kt的约束。这些演算还确保子块的子码元大小尽可能相等,受它们是A1的倍数且其大小总计为码元大小的约束。
随后,演算子码元参数TL、TS、NL和NS,其中存在NL个使用较大子码元大小TL*Al的子块且存在NS个使用较小子码元大小TS*Al的子块。函数Partition[I,J]是以软件或硬件实现的且被定义为其输出是四个整数的序列(IL,IS,JL,JS)的函数,其中IL=ceil(I/J)、IS=floor(I/J)、JL=I-IS*J以及JS=J-JL。
这些新方法的一些属性相当值得注意。分子块模块能确定关于所使用的最小子码元大小推导出的下限。根据上式,知道TS=floor(T/(Al*N)),其中TS*Al是所使用的最小子码元大小,因为TS≤TL。注意,在N=N_max时,使用最小子码元。对正X和Y使用X/(floor(Y))≥X/Y,TS至少为floor(T/(Al*floor(T/(SS*Al)))),其进而至少为floor(SS)=SS。由于这些事实,由本文中描述的划分方法产生的最小子码元大小将至少为TS*Al=SS*Al,如所需的。
分子块模块能确定关于最大子块大小推导出的上限。所使用的最大子块大小为TL*Al*KL′,其中KL′是上表中的最小K′值,其至少为KL=ceil(Kt/Z)。注意,通过N的定义,KL′≤KL(N)且TL=ceil(T/(Al*N))。由于KL(N)≤WS/(Al*(ceil(T/(Al*N)))),因此得到WS≥KL(N)*Al*ceil(T/(Al*N))≥KL′*Al*TL。
变量N_max可表示可将大小为T的源码元划分成的子码元的最大数目。将N_max设为floor(T/(SS*Al))确保了最小子码元大小至少为SS*Al。KL(n)是当源块的码元各自被划分成n个子码元以确保源块的每个子块的大小至多为WS时能支持的源块中的最大源码元数目。
源块的数目Z可被选取为尽可能小,受每个源块中的源码元数目至多为KL(N_max)的约束,这确保了每个源码元可被划分成大小至少为SS*Al的子码元且结果得到的子块的大小至多为WS。分子块模块从Z的值确定源块数目和这Z个源块中每个源块中的码元数目。
注意,若使用比通过该划分方法产生的更小的任何Z值,则将存在源块之一的大于WS的子块,或者将存在源块之一的具有小于SS*Al的子码元大小的子块。另外,该划分方法产生的最小源块在受这两种约束的情况下尽可能大,即没有其他方法将文件或数据块划分成遵守这两种约束的源块,以使得最小源块大于通过该划分方法产生的最小源块。因此,在这种意义上,通过此划分方法产生的Z值是最优的。
受对于每个子块而言子块的子码元数目乘以子块所划分的源块中的源码元数目至多为WS的约束,将源块划分成的子块的数目N可被选取为尽可能小。
注意,若使用比通过此划分方法从Z值产生的更小的任何N值,则将存在其大小将超过WS的至少一个子块。另外,受最大子块大小不应超过WS的约束,该划分方法从给定的Z值产生的最小子码元大小尽可能大,即没有其他方法产生由Z值确定的源块的子块,其遵守最大子块约束以使得最小子码元大小大于通过该划分方法产生的最小子码元大小。因此,在这种意义上,通过此方法产生的N值是最优的。
在以下示例中,假定支持所有可能的K′值作为源块中的源码元数目。
示例1
输入:
SS=5
Al=4字节
(最小子码元大小=20字节)
WS=128KB=131,072字节
P′=1,240字节
F=6MB=6,291,456字节
演算:
T=1,240字节
Kt=5,074
N_max=62
KL(N_max)=6,553
Z=1
KL=ceil(Kt/Z)=5,074
N=52(KL(N)=5,461)
TL=6,较大子码元=24字节
TS=5,较小子码元=20字节
TL*AL*KL=121,776
示例2
输入:
SS=8
Al=4字节
(最小子码元大小=32字节)
WS=128KB=131,072字节
P′=1KB=1,024字节
F=56,404KB=57,757,696字节
演算:
T=1,024字节
Kt=56,404
N_max=32
KL(N_max)=4,096
Z=14
KL=ceil(Kt/Z)=4,029
N=32(KL(N)=4,096)
TL=8,较大子码元=32字节
TS=8,较小子码元=32字节
TL*AL*KL=128,928
上述方法有许多变形。例如,对于一些FEC码,在源块中具有至少最小数目的源码元以使得FEC码的源块接收开销最小化是合意的。由于对于实在小的文件大小或数据块大小F,源码元的大小可能变得太小,因此可能还存在将分组划分成的最大源码元数目。例如,在IETF RFC 5053中,源块中的合意最小源码元数目为Kmin=1024,且分组划分成的最大源码元数目为Gmax=10。
以下是上述新的分子块方法的计及刚才描述的附加参数Kmin和Gmax的另一变形,其中G是每个分组中携带的源块的码元数目,该变形可由分子块模块或更一般地由编码器、解码器、发射机和/或接收机上的某个模块或软件或硬件执行。
在该变形中,每个分组携带分组中第一个码元的ESI,且随后该分组中的每个后续码元隐式地具有比该分组中的前一码元大1的ESI。
用于确定G、T、Z和N的新的分子块方法
●G=min(ceil(P′*Kmin/F),floor(P′/(SS*Al)),Gmax);
●T=floor(P′/(Al*G))*Al;
●Kt=ceil(F/T);
●N_max=floor(T/(SS*Al));
●对于所有n=1,…,N_max
○KL(n)是作为源块中的可能源码元数目所支持的最大K′值,其满足
■K′≤WS/(Al*(ceil(T/(Al*n))));
●Z=ceil(Kt/KL(N_max));
●N=使得ceil(Kt/Z)≤KL(n)的最小n;
注意,通过演算G的方式,保证了码元大小至少为SS*Al,即码元大小至少为最小子码元大小。还注意,应当是这种情形:SS*Al至少为P′,以确保码元大小可至少为SS*Al(且若不是,则G将评估为0)。
示例3
输入:
SS=5
Al=4字节
(最小子码元大小=20字节)
WS=256KB=262,144字节
P′=1,240字节
F=500KB=512,000字节
Kmin=1,024
Gmax=10
演算:
G=3
T=412
Kt=1,243
N_max=20
KL(N_max)=10,992
Z=1
KL=ceil(Kt/Z)=1,243
N=2(KL(N)=1,260)
TL=52,较大子码元=208字节
TS=51,较小子码元=204字节
TL*AL*KL=258,544
如现在已描述的,这些新方法引入了对用于任何子块的最小子码元大小的约束。本公开提供了遵守该附加约束同时严格遵守最大子块大小约束的用于分子块的新方法。这些方法产生满足在受最小子码元大小约束的情况下将文件或数据块划分成尽可能少的源块、且随后在受最大子块大小约束的情况下将源块拆分成尽可能少的子块的目标的分源块和分子块解决方案。
变型
在一些应用中,不能解码所有源码元或能够但是以相对低的概率来解码所有源码元可能是可接受的。在此类应用中,接收机可在接收到K+A个经编码码元之后停止尝试解码所有源码元。或者,接收机可在接收到少于K+A个经编码码元之后停止接收经编码码元。在一些应用中,接收机甚至可以仅接收K个或更少的经编码码元。因此,将理解,在本发明的一些实施例中,合意的准确度无需是完全恢复所有源码元。
此外,在其中不完全恢复是可接受的一些应用中,数据可能被编码成使得不能恢复所有源码元,或者使得完全恢复这些源码元将要求接收比源码元数目多得多的经编码码元。此类编码一般将要求较少的计算花销,且因此可能是降低编码的计算花销的可接受途径。
将理解,上述附图中的各种功能块可由硬件和/或软件的组合来实现,且在具体实现中,一些块的一些或所有功能性可被组合。类似地,还将理解,本文中教示的各种方法可由硬件和/或软件的组合来实现。
以上描述仅是解说性的而非限制性的。在审阅本公开之际,本发明的许多变型对本领域技术人员将变得明显。因此,本发明的范围不应以上面的描述为准来确定,而是应改为以所附权利要求连同其等效技术方案的完整范围为准来确定。
附录A
用于对象递送的RaptorQ前向纠错方案
draft-ietf-rmt-bb-fec-raptorq-04
摘要
本文档描述对应于FEC编码ID 6(待确认(tbc))的用于RaptorQ前向纠错码及其可靠数据对象递送应用的全规范的FEC方案。
RaptorQ码是提供比RFC5053中的Raptor码更优越的灵活性、支持更大的源块大小和更好的编码效率的新代码系列。RaptorQ也是喷泉码,即编码器可在运行中从源数据块的源码元生成如所需的那么多编码码元。解码器对于大多数情况能够从等于源码元数目的编码码元的任何集合恢复源块,且在极少数情况下能够用稍微多于源码元数目的编码码元的任何集合恢复源块。
此处描述的RaptorQ码是系统码,意味着所有源码元都在能生成的编码码元当中。
该备忘录的状态
该因特网草案是完全遵照BCP 78和BCP 79的规定提交的。
因特网草案是因特网工程任务组(IETF)的工作文档。注意,其他组也可分发工作文档作为因特网草案。当前因特网草案的列表在http://datatracker.ietf.org/drafts/current/。
因特网草案是在至多6个月内有效且可在任何时间被其他文档更新、取代或废弃的草案文档。将因特网草案作为参考资料或将它们引述为非“进行中”是不合适的。
本因特网草案将在2011年2月12日过期。
版权申明
版权(c)2010IETF Trust和人员被标识为文档作者。保留所有权利。
本文档符合BCP 78以及IETF Trust关于IETF文档对本文档发布日期的影响的法律条款(http://trustee.ietf.org/license-info)。请仔细审阅这些文档,因为它们描述了读者关于本文档的权利和限制。从本文档提取的代码分量必须包括如Trust法律条款第4.e节中描述的简化DSD许可文本,且不保证如简化BSD许可中描述中那样提供。
目录
1.介绍…………………………………………………………………………5
2.必要注释……………………………………………………………………5
3.格式和代码…………………………………………………………………5
3.1.FEC有效载荷ID………………………………………………………… 5
3.2.FEC对象传输信息……………………………………………………… 6
3.2.1.强制性的………………………………………………………………6
3.2.2.共同的…………………………………………………………………6
3.2.3.因方案而异的…………………………………………………………6
4.规程…………………………………………………………………………7
4.1.介绍………………………………………………………………………7
4.2.内容递送协议要求………………………………………………………7
4.3.示例参数推导算法………………………………………………………8
4.4.对象递送…………………………………………………………………9
4.4.1.源块构造………………………………………………………………9
4.4.2.编码分组构造…………………………………………………………10
5.RaptorQ FEC码规范……………………………………………………… 11
5.1.定义、符号和缩写………………………………………………………11
5.1.1.定义……………………………………………………………………11
5.1.2.符号……………………………………………………………………12
5.1.3.缩写……………………………………………………………………13
5.2.概览………………………………………………………………………14
5.3.系统RaptorQ编码器…………………………………………………… 14
5.3.1.介绍……………………………………………………………………14
5.3.2.编码概览………………………………………………………………15
5.3.3.第一编码步骤:中间码元生成………………………………………17
5.3.4.第二编码步骤:编码…………………………………………………21
5.3.5.生成器…………………………………………………………………21
5.4.示例FEC解码器………………………………………………………… 24
5.4.1.综述……………………………………………………………………24
5.4.2.解码扩展源块…………………………………………………………24
5.5.随机数……………………………………………………………………28
5.5.1.表V0……………………………………………………………………28
5.5.2.表V1……………………………………………………………………29
5.5.3.表V2……………………………………………………………………30
5.5.4.表V3……………………………………………………………………31
5.6.系统索引和其他参数……………………………………………………31
5.7.八位字节、码元和矩阵的运算…………………………………………47
5.7.1.综述……………………………………………………………………47
5.7.2.对八位字节的算术运算………………………………………………47
5.7.3.表OCT_EXP…………………………………………………………… 48
5.7.4.表OCT_LOG…………………………………………………………… 49
5.7.5.对码元的运算…………………………………………………………49
5.7.6.对矩阵的运算…………………………………………………………50
5.8.兼容解码器的要求………………………………………………………50
6.安全性考虑…………………………………………………………………50
7.IANA考虑……………………………………………………………………51
8.感谢…………………………………………………………………………51
9.参考文献……………………………………………………………………51
9.1.标准性参考文献…………………………………………………………51
9.2.信息性参考文献…………………………………………………………52
作者地址………………………………………………………………………52
1.介绍
本文档规定了用于对象递送应用的RaptorQ前向纠错码的FEC方案。FEC方案的概念在RFC5052[RFC5052]中定义且本文档遵循其中规定的格式并使用该文档的术语。本文中描述的RaptorQ码是RFC5053[RFC5053]中描述的Raptor码的下一代。RaptorQ码提供比RFC5053[RFC5053]的Raptor码更优越的可靠性、更好的编码效率,且支持更大的源块大小。这些改进与RFC5053[RFC5053]相比简化了在对象递送内容递送协议中使用RaptorQ码。
RaptorQ FEC方案是与FEC编码ID 6(tbc)相对应的全规范FEC方案。
编者注:最终FEC编码ID仍待定,但‘6(tbc)’将在本因特网草案中用
作临时值,期望在IANA注册过程中顺序地使用FEC编码ID。
RaptorQ是喷泉码,即编码器可在运行中从块的源码元生成如所需的那么多编码码元。解码器能够从在数量上仅比源码元数目略多的编码码元的任何集合恢复源块。
本文档中描述的代码是系统码,即原始源码元可不修改地连同数个修复码元从发送方发送给接收方。关于在可靠多播中使用前向纠错码的更多背景参见[RFC3453]。
2.必要注释
本文档中的关键词“必须”、“必须不”、“要求”、“应当”、“不应”、“应该”、“应该不”、“推荐”、“可以”以及“可任选的”将如[RFC2119]中所描述地解释。
3.格式和代码
3.1.FEC有效载荷ID
FEC有效载荷ID必须为有4个八位字节的字段,定义如下:
图1:FEC有效载荷ID格式
○源块编号(SBN),(8比特,无符号整数):分组内的编码码元涉及的源块的非负整数标识符。
○编码码元ID(ESI),(24比特,无符号整数):分组内的编码码元的非负整数标识符。
对源块编号和编码码元标识符的解释在第4节中定义。
3.2.FEC对象传输信息
3.2.1.强制性的
FEC编码ID的值必须为6,如是由IANA指派的(参见第7节)。
3.2.2.共同的
该FEC方案使用的共同FEC对象传输信息元素为:
○传输长度(F),(40比特,无符号整数):至多为946270874880的非负整数。这是以八位字节为单位的对象传输长度。
○码元大小(T),(16比特,无符号整数):小于2^^16的正整数。这是以八位字节为单位的码元大小。
经编码的共同FEC对象传输信息格式如图2中所示。
图2:用于RaptorQ FEC方案的经编码共同FEC OTI
注1:关于传输长度的极限946270874880是由于将码元大小限制为2^^16-1、将源块中的码元数限制为56403以及将源块数目限制为2^^8。
3.2.3.因方案而异的
以下参数携带在用于该FEC方案的因方案而异的FEC对象传输信息元素中:
○源块数目(Z)(12比特,无符号整数)
○子块数目(N)(12比特,无符号整数)
○码元对准参数(A1)(8比特,无符号整数)
这些参数解为正整数。经编码的因方案而异的对象传输信息为由如图3中所示的参数Z、N和Al构成的有4个八位字节的字段。
图3:经编码的因方案而异的FEC对象传输信息
经编码FEC对象传输信息为由经编码共同FEC对象传输信息和经编码的因方案而异的FEC对象传输信息的级联构成的有12个八位字节的字段。
这三个参数定义了如第4.4.1.2节中描述的源块划分。
4.规程
4.1.介绍
对于本节中使用的任何未定义符号或函数,具体而言函数“ceil”和“floor”,参见第5.1节。
4.2.内容递送协议要求
本节描述RaptorQ FEC方案与利用RaptorQ FEC方案进行对象递送的任何内容递送协议(CDP)之间的信息交换。
用于对象递送的RaptorQ编码器方案和RaptorQ解码器方案需要来自CDP的以下信息:
○以八位字节计的对象传输长度F
○码元对准参数A1
○以八位字节计的码元大小T,其必须为A1的倍数
○源块数目Z
○每个源块中的子块数目N
用于对象递送的RaptorQ编码器方案还需要:
—要编码的对象为F个八位字节
RaptorQ编码器方案向CDP提供关于要发送的每个分组的以下信息:
○源块编号(SBN)
○编码码元ID(ESI)
○编码码元
CDP必须将此信息传达给接收机。
4.3.示例参数推导算法
本节提供关于推导三个传输参数T、Z和N的推荐。该推荐基于以下输入参数:
○F,对象传输长度,以八位字节计
○WS,工作存储器中可解码的块的最大大小,以八位字节计
○P′,以八位字节计的最大有效载荷大小,其假定为A1的倍数
○A1,码元对准参数,以八位字节计
○SS,其中对子码元大小的合意下限是SS*Al的参数
○K′_max,每源块的最大源码元数目。
注:第5.1.2节将K′_max定义为56403。
基于以上输入,传输参数T、Z和N演算如下:
令:
○T=P′
○Kt=ceil(F/T)
○N_max=floor(T/(SS*Al))
○对于所有n=1,…,N_max
*KL(n)是第5.6节的表2中使K′<=WS/(Al*(ceil(T/(Al*n))))的最大K′值
○Z=ceil(Kt/KL(N_max))
○N是使得ceil(Kt/Z)<=KL(n)的最小n=1,…,N_max
推荐每个分组正好包括一个码元。然而,接收机应当支持包含多个码元的分组。
值Kt是表示对象的源数据所必需的码元总数。
上面的以及第4.4.1.2节中定义的算法确保子码元大小是码元对准参数A1的倍数。这是有用的,因为用于编码和解码的求和运算一般每次执行若干个八位字节,例如在32位处理器上每次至少4个八位字节。因此,若子码元大小是该数目个八位字节的倍数,则编码和解码能更快速地执行。
输入参数A1的推荐设置是4。
参数WS可用来生成在解码器处用有限的工作存储器就能高效地解码的经编码数据。注意,对于给定的WS值,实际的最大解码器存储器需求取决于实现,但使用仅比WS略大的工作存储器就有可能实现解码。
4.4.对象递送
4.4.1.源块构造
4.4.1.1.综述
为了向源对象应用RaptorQ编码器,对象可被断为Z>=1个被称为源块的块。RaptorQ编码器被独立地应用于每个源块。每个源块由唯一性源块编号(SBN)来标识,其中第一源块具有的SBN为0,第二源块具有的SBN为1,依此类推。每个源块被划分成数目K个各自大小为T个八位字节的源码元。每个源码元由唯一性编码码元标识符(ESI)来标识,其中源块的第一源码元具有的ESI为0,第二源码元具有的ESI为1,依此类推。
具有K个源码元的每个源块被划分成N>=1个子块,这些子块足够小以在工作存储器中解码。每个子块被划分成K个大小为T′的子码元。
注意K的值对于对象的每个源块不一定相同,且T′的值对于源块的每个子块不一定相同。然而,码元大小T对于对象的所有源块都是相同的,且码元数目K对于源块的每个子块都是相同的。将对象确切地划分成源块和子块在下节4.4.1.2中描述。
4.4.1.2.源块和子块划分
源块和子块的构造是基于5个输入参数F、Al、T、Z和N以及函数Partition[]来确定的。这5个输入参数定义如下:
○F,对象传输长度,以八位字节计
○A1,码元对准参数,以八位字节计
○T,码元大小,以八位字节计,其必须为A1的倍数
○Z,源块数目
○N,每个源块中的子块数目
这些参数必须设置成使得ceil(ceil(F/T)/Z)<=K′_max。对这些参数的推导的推荐在第4.3节中提供。
函数Partition[]将一对正整数(I,J)作为输入并推导出4个非负整数(IL,IS,JL,JS)作为输出。具体地,Partition[I,J]的值是序列(IL,IS,JL,JS),其中IL=ceil(I/J)、IS=floor(I/J)、JL=I-IS*J以及JS=J-JL。Partition[]推导用于将大小为I的块划分成J个大致相同大小的块的参数。具体地,JL个长度为IL的块和JS个长度为IS的块。
源对象必须如下被划分成源块和子块:
令:
○Kt=ceil(F/T),
○(KL,KS,ZL,ZS)=Partition[Kt,Z],
○(TL,TS,NL,NS)=Partition[T/Al,N].
那么,对象必须被划分成Z=ZL+ZS个毗连的源块,头ZL个源块各自具有KL*T个八位字节,即KL个各自为T个八位字节的源码元,且其余ZS个源块各自具有KS*T个八位字节,即KS个各自T个八位字节的源码元。
若Kt*T>F,则对于编码过程,最后一个源块的最后一个码元必须在末尾用Kt*T-F个0八位字节来填充。
接下来,具有K个源码元的每个源块必须被划分成N=NL+NS个毗连的子块,头NL个子块各自由K个大小为TL*Al个八位字节的毗连子码元构成,且其余NS个子块各自由K个大小为TS*Al个八位字节的毗连子码元构成。码元对准参数A1确保这些子码元总是A1个八位字节的倍数。
最后,源块的第m个码元由来自N个子块中每个子块的第m个子码元的级联构成。注意,这意味着当N>1时,码元不是对象的毗连部分。
4.4.2.编码分组构造
每个编码分组包含以下信息:
○源块编号(SBN)
○编码码元ID(ESI)
○编码码元
每个源块与其他源块独立地被编码。源块从0连贯地编号。
从0到K-1的编码码元ID按顺序次序标识源块的源码元,其中K是源块中的源码元数目。编码码元ID K向前标识使用RaptorQ编码器从源码元生成的修复码元。
每个编码分组要么全部由源码元构成(源分组)要么全部由修复码元构成(修复分组)。分组可包含来自相同源块的任何数目个码元。在源分组中的最后一个源码元包括出于FEC编码目的而添加的填充八位字节的情形中,这些八位字节无需被包括在该分组中。否则,仅全体码元必须被包括。
每个源分组中携带的编码码元ID X是该分组中携带的第一个源码元的编码码元ID。该分组中的后续源码元按顺序次序具有编码码元ID X+1至X+G-1,其中G是该分组中的码元数目。
类似地,放入修复分组中的编码码元ID X是修复分组中第一个修复码元的编码码元ID,且该分组中的后续修复码元按顺序次序具有编码码元ID X+1至X+G-1,其中G是该分组中的码元数目。
注意,接收机不必知道修复分组的总数。
5.RaptorQ FEC码规范
5.1.定义、符号和缩写
出于本节中的RaptorQ FEC码规范的目的,应用以下定义、符号和缩写
5.1.1.定义
○源块:出于RaptorQ编码和解码目的一起考虑的K个源码元的块
○扩展源块:从源块以及零个或更多个填充码元构造的K′个源码元的块,其中K′>=K。
○码元:数据单位。码元以八位字节计的大小称为码元大小。码元大小总是正整数。
○源码元:编码过程期间使用的最小数据单位。源块内的所有源码元具有相同大小。
○填充码元:向源块添加以形成扩展源块的具有全零比特的码元。
○编码码元:可作为对源块进行编码的一部分被发送的码元。源块的编码码元由源块的源码元以及从源块生成的修复码元构成。从源块生成的修复码元具有与该源块的源码元相同的大小。
○修复码元:源块的不是源码元的编码码元。修复码元是基于源块的源码元生成的。
○中间码元:使用逆编码过程从源码元生成的码元。随后从中间码元直接生成修复码元。编码码元不包括中间码元,即中间码元不作为对源块进行编码的一部分被发送。中间码元被划分成LT码元和PI码元。
○LT码元:可以是编码码元的LT邻元的中间码元的子集。
○PI码元:可以是编码码元的PI邻元的中间码元的子集。
○系统码:其中所有源码元被包括作为源块的编码码元的一部分的代码。如本文中所描述的RaptorQ码是系统码。
○编码码元ID(ESI):出于发送和接收目的唯一性地标识与源块相关联的每个编码码元的信息。
○内部码元ID(ISI):出于编码和解码目的唯一性地标识与扩展源块相关联的每个码元的信息。
○对八位字节和码元以及矩阵的算术运算:使用这些运算来从源码元产生编码码元以及反之。参见第5.7节。
5.1.2.符号
i、j、u、v、h、d、a、b、d1、a1、b1、v、m、x、y取决于上下文表示一种类型或另一种类型的值或变量。
X取决于上下文标示要么为ISI值要么为ESI值的非负整数值。
ceil(x)标示大于或等于x的最小整数,其中x是实值。
floor(x)标示小于或等于x的最大整数,其中x是实值。
min(x,y)标示值x和y中的最小值,且一般而言表示所有自变量值中的最小值。
max(x,y)标示值x和y中的最大值,且一般而言表示所有自变量值中的最大值。
i%j标示i模j。
i+j标示i与j之和。若i和j是八位字节/码元,这指定对八位字节/码元的算术,如第5.7节中定义的。若i和j是整数,则这表示普通的整数加法。
i*j标示i与j之积。若i和j是八位字节,这指定对八位字节的算术,如第5.7节中定义的。若i是八位字节而j是码元,这表示码元与八位字节的乘法,同样如第5.7节中定义的。最后,若i和j是整数,则i*j表示普通的整数乘积。
a^^b标示运算a的b次幂。若a是八位字节而b是非负整数,应理解这意味着a*a*…*a(b项),其中‘*’是如第5.7节中定义的八位字节乘积。
u^v标示对于等长度比特串u和v,u与v的逐比特异或。
Transpose[A]标示矩阵A的转置矩阵。在本规范中,所有矩阵都具有为八位字节的条目。
A^^-1标示矩阵A的逆矩阵。在本规范中,所有都具有八位字节作为条目,因此应理解,对矩阵条目的运算将如第5.7节中所陈述地进行,且A^^-1是A关于八位字节算术的矩阵逆。
K标示单个源块中的码元数目。
K′标示扩展源块中的源码元加上填充码元的数目。对于本规范的大部分,填充码元被视为附加源码元。
K′_max标示单个源块中可存在的最大源码元数目。设为56403。
L标示关于单个扩展源块的中间码元数目。
S标示关于单个扩展源块的LDPC码元的数目。这些是LT码元。对于第5.6节表2中所示的每个K′值,S的相应值为质数。
H标示关于单个扩展源块的HDPC码元的数目。这些是PI码元。
B标示除LDPC码元以外为LT码元的中间码元的数目。
W标示为LT码元的中间码元的数目。对于第5.6节中所示的表2中的每个K′值,W的相应值为质数。
P标示为PI码元的中间码元的数目。这些包含所有HDPC码元。
P1标示大于或等于P的最小质数。
U标示为PI码元的非HDPC中间码元的数目。
C标示中间码元阵列C[0]、C[1]、C[2]、…、C[L-1]。
C′标示扩展源块的码元阵列,其中C′[0]、C′[1]、C′[2]、…、C′[K-1]是源块的源码元,而C′[K]、C′[K+1]、…、C′[K′-1]是填充码元。
V0、V1、V2、V3标示4个32位无符号整数的阵列,V0[0]、V0[1]、…、V0[255];V1[0]、V1[1]、…、V1[255];V2[0]、V2[1]、…、V2[255];以及V3[0]、V3[1]、…、V3[255],如第5.5节中所示的。
Rand[y,i,m]标示伪随机数生成器
Deg[v]标示度生成器
Enc[K′,C,(d,a,b,d1,a1,b1)]标示编码码元生成器
Tuple[K′,X]标示元组生成器函数
T标示以八位字节计的码元大小。
J(K′)标示与K′相关联的系统索引。
G标示任何生成器矩阵。
I_S标示SxS单位矩阵。
5.1.3.缩写
ESI编码码元ID
HDPC高密度奇偶校验
ISI内部码元ID
LDPC低密度奇偶校验
LTLuby变换
PI永久钝化
SBN源块编号
SBL源块长度(以码元计)
5.2.概览
本节定义系统RaptorQ FEC码。
码元是编码和解码过程的基本数据单位。对于每个源块,所有码元有相同大小,称为码元大小T。针对编码和解码两者对码元执行的原子运算是第5.7节中定义的算术运算。
基本编码器在第5.3节中描述。编码器首先从源块的源码元推导中间码元块。该中间块具有以下属性:可使用相同的过程从中间块生成源码元和修复码元两者。编码器使用高效过程从中间块产生修复码元,其中每个此类修复码元是来自该块的少量中间码元的异或。也可使用相同的过程从中间块再生源码元。编码码元是源码元与修复码元的组合。
解码器的示例在第5.4节中描述。用于从中间块产生源码元和修复码元的过程被设计成使得能从任何充分大的编码码元集合独立于该集合中源码元与修复码元的混合来恢复中间块。一旦恢复出中间块,就可使用编码过程恢复源块的缺少源码元。
对RaptorQ兼容解码器的要求在第5.8节中提供。数个解码算法有可能达成这些要求。达成这些要求的高效解码算法在第5.4节中提供。
中间码元和修复码元的构造部分地基于第5.3节中描述的伪随机数生成器。该生成器基于有1024个随机数的固定集合,其必须为发送方和接收方两者可用。这些数字在第5.5节中提供。RaptorQ的编码和解码运算使用关于八位字节的运算。第5.7节描述了如何执行这些运算。
最后,从源码元构造中间码元由“系统索引”来管理,对于6到K′_max=56403个源码元之间的具体扩展源块大小,“系统索引”的值在第5.6节中提供。因此,RaptorQ码支持有1到56403之间个源码元的源块。
5.3.系统RaptorQ编码器
5.3.1.介绍
对于有K个源码元的给定源块,出于编码和解码目的,源块被扩增K′-K个附加的填充码元,其中K′是至少为第5.6节的系统索引表2中的K的最小值。用于将源块拉长到K′的倍数的原因是为了实现更快的编码和解码,以及使需要存储在编码器和解码器中的表信息量最少。
出于传送和接收数据的目的,K的值被用来确定源块中的码元数目,因此K需要在发送方和接收方处已知。在这种情形中,发送方和接收方可从K计算K′且这K′-K个填充码元可在不需要额外通信的情况下被自动添加到源块。发送方和接收方使用编码码元ID(ESI)来标识源块的编码码元,其中源块的编码码元由源码元和与源块相关联的修复码元构成。对于有K个源码元的源块,源码元的ESI为0、1、2、…、K-1而修复码元的ESI为K、K+1、K+2、…。使用ESI在传输中标识编码码元确保了ESI值在源码元和修复码元之间连贯地延续。
出于编码和解码数据的目的,从K推导出的K′的值被用作对其执行编码和解码操作的扩展源块的源码元的数目,其中K′个源码元由原始的K个源码元和附加的K′-K填充码元构成。内部码元ID(ISI)被编码器和解码器用来标识与扩展源块相关联的码元,即用于生成编码码元以及用于解码。对于有K个原始源码元的源块,原始源码元的ISI为0、1、2、…、K-1,K′-K个填充码元的ISI为K、K+1、K+2、…、K′-1,以及修复码元的ISI为K′、K′+1、K′+2、…。使用ISI来进行编码和解码允许扩展源块的填充码元以与扩展源块的其他源码元相同的方式被对待,且修复码元的给定前缀是按照与扩展源块中独立于K的给定数目K′个源码元一致的方式生成的。
ESI和ISI之间的关系是简单的:原始K个源码元的ESI和ISI是相同的,K′-K个填充码元具有ISI但不具有相应的ESI(由于它们是既不被发送也不被接收的码元),以及修复码元ISI简单地为修复码元ESI加上K′-K。用于标识所发送和接收的编码码元的ESI与用于编码和解码的相应ISI之间的转换、以及以用于编码和解码的填充码元恰适地填充扩展源块是RaptorQ编码器/解码器中的填充函数的责任。
5.3.2.编码概览
使用系统RaptorQ编码器从由放入扩展源块C′的K个源码元构成的源块生成任何数目个修复码元。图4示出编码概览。
编码的第一步骤是通过添加零个或更多个填充码元来构造扩展源块,以使得码元总数K′是第5.6节中列出的值之一。每个填充码元由T个八位字节构成,其中每个八位字节的值为0。K′必须被选为来自第5.6节的表的大于或等于K的最小K′值。
图4:编码概览
令C′[0]、…、C′[K-1]标示K个源码元。
令C′[K]、…、C′[K′-1]标示K′-K个填充码元,其全部被设为0比特。那么,C′[0]、…、C′[K-1]是对其执行编码和解码的扩展源块。
在本描述的其余部分中,这些填充码元将被视为附加源码元且如此引述。然而,这些填充码元不是编码码元的一部分,即它们不作为编码的一部分被发送。在接收机处,K′的值可基于K计算出来,随后接收机可在有K′个源码元的源块末尾插入K′-K个填充码元并从收到编码码元恢复源块的其余K个源码元。
编码的第二步骤是从K′个源码元生成数目L>K′个中间码元。在该步骤中,使用如第5.3.5.4节中描述的Tuple[]生成器生成K′个源元组(d[0],a[0],b[0],d1[0],a1[0],b1[0]),…,(d[K′-1],a[K′-1],b[K′-1],d1[K′-1],a1[K′-1],b1[K′-1])。这K′个源元组和与这K′个源码元相关联的ISI被用于使用逆编码过程从源码元确定L个中间码元C[0]、…、C[L-1]。该过程可由RaptorQ解码过程实现。
在这L个中间码元内,某些“预编码关系”必须成立。第5.3.3.3节描述了这些关系。第5.3.3.4节描述了如何从源码元生成中间码元。
一旦生成了中间码元,可能产生修复码元。对于ISI为X>K′的修复码元,可使用第5.3.5.4节中描述的Tuple[]生成器生成非负整数元组(d,a,b,d1,a1,b1)。随后,该(d,a,b,d1,a1,b1)元组和ISI X被用于使用第5.3.5.3节中描述的Enc[]生成器从中间码元生成相应的修复码元。该修复码元的相应ESI则为X-(K′-K)。注意,也可使用相同的过程生成扩展源块的源码元,即对于任何X<K′,使用该过程生成的码元具有与C′[X]相同的值。
5.3.3.第一编码步骤:中间码元生成
5.3.3.1.综述
该编码步骤是从源码元C′[0]、…、C′[K′-1]生成L个中间码元C[0]、…、C[L-1]的预编码步骤,其中L>K′在第5.3.3.3节中定义。中间码元由两组约束唯一性地定义:
1.中间码元通过源码元元组集合和源码元的ISI与源码元相关。源码元元组的生成在第5.3.3.2节中使用第5.3.5.4节中描述的Tuple[]生成器来定义。
2.在源码元自身内,数个预编码关系成立。这些在第5.3.3.3节中定义。
L个中间码元的生成随后在第5.3.3.4节中定义。
5.3.3.2.源码元元组
K′个源码元中的每个源码元与源码元元组(d[X],a[X],b[X],d1[X],a1[X],b1[X])相关联,其中0<=X<K′。源码元元组使用第5.3.5.4节中定义的元组生成器被确定为:
对于每个X,0<=X<K′
(d[X],a[X],b[X],d1[X],a1[X],b1[X])=Tuple[K,X]
5.3.3.3.预编码关系
L个中间码元之间的预编码关系通过要求这些中间码元的S+H个线性组合的集合估值为0来定义。有S个LDPC码元和H个HDPC码元,因此L=K′+S+H。L个中间码元的另一种划分是划分成两个集合,一个集合有W个LT码元而另一个集合有P个PI码元,因此也是L=W+P的情形。在编码过程中,P个PI码元与W个LT码元不同地对待。P个PI码元由H个HDPC码元连同其他K′个中间码元中的U=P-H个的集合构成。W个LT码元由S个LDPC码元连同其他K′个中间码元中的W-S个构成。这些参数的值是如下描述地从K′确定的,其中H(K′)、S(K′)和W(K′)是从第5.6节表2推导出来的。
令:
○S=S(K′)
○H=H(K′)
○W=W(K′)
○L=K′+S+H
○P=L-W
○P1标示大于或等于P的最小质数
○U=P-H
○B=W-S
○C[0]、…、C[B-1]标示为LT码元但非LDPC码元的中间码元。
○C[B]、…、C[B+S-1]标示也为LT码元的S个LDPC码元。
○C[W]、…、C[W+U-1]标示为PI码元但非HDPC码元的中间码元。
○C[L-H]、…、C[L-1]标示也为PI码元的H个HDPC码元。
称为LDPC关系的第一组预编码关系在以下描述且要求在该过程结束时码元集合D[0]、…、D[S-1]全为0:
○初始化码元D[0]=C[B]、…、D[S-1]=C[B+S-1]。
○For i=0,…,B-1 do
*a=1+floor(i/S)
*b=i%S
*D[b]=D[b]+C[i]
*b=(b+a)%S
*D[b]=D[b]+C[i]
*b=(b+a)%S
*D[b]=D[b]+C[i]
○For i=0,…,S-1 do
*a=i%P
*b=(i+1)%P
*D[i]=D[i]+C[W+a]+C[W+b]
回想码元添加将如第5.7节中指定地执行。
注意,以上算法中定义的LDPC关系是线性的,因此存在S x B矩阵G_LDPC 1和S x P矩阵G_LDPC 2,以使得
G_LDPC,1*Transpose[(C[0],…,C[B-1])]+G_LDPC,2*Transpose(C[W],…,C[W+P-1])+Transpose[(C[B],…,C[B+S-1])]=0
(矩阵G_LDPC 1是在上面的算法的第一循环中定义的,以及G_LDPC 2可从第二循环推出。)
中间码元C[0]、…、C[L-1]之间的第二组关系是HDPC关系且它们定义如下:
令:
○α标示由整数2表示的元组,如第5.7节中定义的。
○MT标示八位字节的H x(K′+S)矩阵,其中对于户0,…,K′+S-2,若i=Rand[j+1,6,H]或i=(Rand[j+1,6,H]+Rand[j+1,7,H-1]+1)%H,则MT[i,j]的条目是由整数1表示的八位字节,且对于i的所有其他值,MT[i,j]为0元素,以及对于j=K′+S-1,MT[i,j]=a^^i,其中i=0,…,H-1。
○GAMMA标识八位字节的(K′+S)x(K′+S)矩阵,其中
GAMMA[i,j]=
a^^(i-j),对于i>=j,
0,否则。
那么,头K′+S个中间码元C[0]、…、C[K′+S-1]与H个HDPC码元C[K′+S]、…、C[K′+S+H-1]之间的关系由下式给出:
Transpose[C[K′+S],…,C[K′+S+H-1]]+MT*GAMMA*Transpose[C[0],…,C[K′+S-1]]=0,
其中′*′表示利用八位字节乘法来定义八位字节矩阵与码元矩阵(具体而言,码元的列向量)之间的乘法的标准矩阵乘法,以及′+′标识八位字节向量上的加法。
5.3.3.4.中间码元
5.3.3.4.1.定义
给定K′个源码元C′[0]、C′[1]、…、C′[K′-1],L个中间码元C[0]、C[1]、…、C[L-1]是满足以下条件的唯一性地定义的码元值:
1.K′个源码元C′[0]、C′[1]、…、C′[K′-1]满足K′约束
C′[X]=Enc[K′,(C[0],…,C[L-1]),(d[X],a[X],b[X],d1[X],a1[X],b1[X])],对于所有X,0<=X<K′,
其中(d[X],a[X],b[X],d1[X],a1[X],b1[X]))=Tuple[K′,X],Tuple[]在第5.3.5.4节中定义,以及Enc[]在第5.3.5.3节中描述。
2.L个中间码元C[0]、C[1]、…、C[L-1]满足第5.3.3.3节中定义的预编码关系。
5.3.3.4.2.演算中间码元的示例方法
本节描述用于演算满足第5.3.3.4.1节中的约束的L个中间码元C[0]、C[1]、…、C[L-1]的可能方法。
L个中间码元可如下计算:
令:
○C标示L个中间码元C[0]、C[1]、…、C[L-1]的列向量。
○D标示由S+H个零码元继以K′个源码元C′[0]、C′[1]、…、C′[K′-1]构成的列向量。
那么以上约束定义八位字节的L x L矩阵A以使得:
A*C=D
矩阵A可如下构造:
令:
○G_LDPC 1和G_LDPC 2是如第5.3.3.3节中定义的S x B矩阵和S x P矩阵。
○G_HDPC是H x(K′+S)矩阵,以使得
G_HDPC*Transpose(C[0],…,C[K′+S-1])=Transpose(C[K′+S],…,C[L-1]),即G_HDPC=MT*GAMMA
○I_S是S x S单位矩阵
○I_H是H x H单位矩阵
○G_ENC是K′x L矩阵,以使得
G_ENC*Transpose[(C[0],…,C[L-1])]=Transpose[(C′[0],C′[1],…,C′[K′-1])],
即,当且仅当C[j]被包括在被求和以产生Enc[K′,(C[0],…,C[L-1]),(d[i],a[i],b[i],d1[i],a1[i],b1[i])]的码元中时,G_ENC[i,j]=1,否则G_ENC[i,j]=0。
那么:
○A的头S行等于G_LDPC 1|I_S|G_LDPC 2。
○A的接下来H行等于G_HDPC|I_H。
○A的其余K′行等于G_ENC。
矩阵A在下图(图5)中描绘:
图5:矩阵A
中间码元随后可计算为:
C=(A^^-1)*D
生成源元组以使得对于任何K′,矩阵A具有满秩且因此是可逆的。该演算可通过向K′个源码元C′[0]、C′[1]、…、C′[K′-1]应用RaptorQ解码过程以产生L个中间码元C[0]、C[1]、…、C[L-1]来实现。
为了高效地从源码元生成中间码元,推荐使用诸如第5.4节中描述的高效解码器实现。
5.3.4.第二编码步骤:编码
在第二编码步骤中,通过使用元组(d,a,b,d1,a1,b1)=Tuple[K′,X]向L个中间码元C[0],C[1],…,C[L-1]应用第5.3.5.3节中定义的生成器Enc[K′,(C[0],C[1],…,C[L-1]),(d,a,b,d1,a1,b1)]来生成ISI为X(X>=K′)的修复码元。
5.3.5.生成器
5.3.5.1.随机数生成器
随机数生成器Rand[y,i,m]定义如下,其中y是非负整数,i是小于256的非负整数,以及m是正整数,且产生的值是0到m-1之间的整数。令V0、V1、V2和V3为第5.5节中提供的阵列。
令:
○x0=(y+i)mod 2^^8
○x1=(floor(y/2^^8)+i)mod 2^^8
○x2=(floor(y/2^^16)+i)mod 2^^8
○x3=(floor(y/2^^24)+i)mod 2^^8
那么
Rand[y,i,m]=(V0[x0]^V1[x1]^V2[x2]^V3[x3])%m
5.3.5.2.度生成器
度生成器Deg[v]定义如下,其中v是小于2^^20=1048576的非负整数。给定v,找出表1中使得f[d-1]<=v<f[d]的索引d,且设置Deg[v]=min(d,W-2)。回想W是如第5.3.3.3节中描述地从K′推导出的。
表1:定义用于编码码元的度分布
5.3.5.3.编码码元生成器
编码码元生成器Enc[K′,(C[0],C[1],…,C[L-1]),(d,a,b,d1,a1,b1)]取以下输入:
○K′是扩展源块的源码元数目。令L、W、B、S、P和P1是如第5.3.3.3节中描述地从K′推导出的。
○(C[0],C[1],…,C[L-1])是如第5.3.3.4节中描述地生成的L个中间码元(子码元)的阵列。
○(d,a,b,d1,a1,b1)是使用第5.3.5.4节中定义的元组生成器从ISI X确定的,从而
*d是标示编码码元LT度的正整数
*a是1到W-1之间(含1和W-1)的正整数
*b是0到W-1之间(含1和W-1)的非负整数
*d1是标示编码码元PI度的具有值2或3的正整数
*a1是1到P1-1之间(含1和P1-1)的正整数
*b1是0到P1-1之间(含1和P1-1)的非负整数
编码码元生成器根据以下算法产生单个编码码元作为输出(称为结果(result)):
○result=C[b]
○For j=1,…,d-1 do
*b=(b+a)%W
*result=result+C[b]
○While(b1>=P)do b1=(b1+a1)%P1
○result=result+C[W+b1]
○For j=1,…,d1-1 do
*b1=(b1+a1)%P1
*While(b1>=P)do b1=(b1+a1)%P1
*result=result+C[W+b1]
○Return result
5.3.5.4.元组生成器
元组生成器Tuple[K′,X]取以下输入:
○K′-扩展源块中的源码元数目
○X-ISI
令:
○L是如第5.3.3.3节中描述地从K′确定的
○J=J(K′)是与K′相关联的系统索引,如第5.6节表2中定义的元组生成器的输出是元组(d,a,b,d1,a1,b1),定义如下:
○A=53591+J*997
○if(A%2==0){A=A+1}
○B=10267*(J+1)
○y=(B+X*A)%2^^32
○v=Rand[y,0,2^^20]
○d=Deg[v]
○a=1+Rand[y,1,W-1]
○b=Rand[y,2,W]
○If(d<4){d1=2+Rand[X,3,2]}else{d1=2}
○a1=1+Rand[X,4,P1-1]
○b1=Rand[X,5,P1]
5.4.示例FEC解码器
5.4.1.综述
本节描述用于本规范中介绍的RaptorQ码的高效解码算法。注意,每个收到编码码元是中间码元的已知线性组合。因此,每个收到编码码元提供中间码元之间的线性方程,其连同中间码元之间的已知线性预编码关系给出了线性方程组。因此,用于求解线性方程组的任何算法能成功解码出中间码元并因此解码出源码元。然而,所选取的算法对解码的计算效率有很大影响。
5.4.2.解码扩展源块
5.4.2.1.综述
假定解码器知道它要解码的源块的结构,包括码元大小T、源块中的码元数目K以及扩展源块中的源码元数目K′。
根据第5.3节中描述的算法,RaptorQ解码器可演算总共数目L=K′+S+H个中间码元并确定它们是如何从要解码的扩展源块生成的。在本描述中,假定要解码的扩展源块的收到编码码元被传递给解码器。此外,对于每个此类编码码元,假定其总和等于编码码元的中间码元的数目和集合被传递给解码器。在包括填充码元的源码元的情形中,第5.3.3.2节中描述的源码元元组指示其总和给定每个源码元的中间码元的数目和集合。
令N>=K′为要用于解码的收到编码码元(包括扩展源块的填充码元)的数目,且令M=S+H+N。那么通过第5.3.3.4.2节中的符号,得到A*C=D。
解码扩展源块等效于从已知的A和D解码C。显然,当且仅当A的秩为L时,才能解码C。一旦解码出C,就可通过使用源码元元组确定必须求和以获得每个缺失源码元的中间码元的数目和集合来获得缺失源码元。
解码C的第一步骤是形成解码调度。在该步骤中,使用高斯消元法(使用行操作以及行和列重新排序)且在丢弃M-L行之后将A转换成L x L单位矩阵。解码调度包括高斯消元过程期间的行操作以及行和列重新排序的顺序,且仅取决于A而不取决于D。从D解码C可与形成解码调度并发地发生,或者解码可在后来基于解码调度发生。
解码调度与解码C之间的对应关系如下。初始令c[0]=0、c[1]=1、…、c[L-1]=L-1以及d[0]=0、d[1]=1、…、d[M-1]=M-1。
○每次在解码调度中向行i′添加A的行i的倍数β时,则在解码过程中,向码元D[d[i′]]添加码元β*D[d[i]]。
○每次A的行i乘以八位字节β时,则在解码过程中,码元D[d[i]]也乘以β。
○每次在解码调度中将行i与行i′交换时,则在解码过程中,将d[i]的值与d[i′]的值交换。
○每次在解码调度中将列j与列j′交换时,则在解码过程中,将c[j]的值与c[j′]的值交换。
从该对应关系清楚的是,在解码扩展源块时对码元的总运算次数是高斯消元中的行操作(非交换)次数。由于A在高斯消元后且在丢弃末M-L行之后为L x L单位矩阵,显然,在成功解码结束时,L个码元D[d[0]]、D[d[1]]、…、D[d[L-1]]是L个码元C[c[0]]、C[c[1]]、…、C[c[L-1]]的值。
执行高斯消元以形成解码调度的次序与解码是否成功无关。然而,解码速度严重取决于执行高斯消元的次序。(此外,维持A的稀疏表示是重要的,尽管此处未描述)。本节的其余部分描述可执行高斯消元的相对高效的次序。
5.4.2.2.第一阶段
在高斯消元的第一阶段,矩阵A在概念上被划分成子矩阵,且附加地创建矩阵X。该矩阵具有与A同样多的行和列,且其贯穿第一阶段将为下三角矩阵。在该阶段开头,矩阵A被复制到矩阵X中。
子矩阵大小被参数化为非负整数i和u,它们分别被初始化为0和PI码元时间P。A的子矩阵为:
1.由头i行与头i列的交集定义的子矩阵I。这在该阶段每一步骤结束时为单位矩阵。
2.由头i行与除第i列和末u列以外的所有列的交集定义的子矩阵。该子矩阵的所有条目皆为0。
3.由头i列与除第i行以外的所有行的交集定义的子矩阵。该子矩阵的所有条目皆为0。
4.由所有行与末u列的交集定义的子矩阵。
5.由除头i列和末u列以外的所有列与除头i行以外的所有行的交集定义的子矩阵V。
图6解说了A的子矩阵。在第一阶段开头,V=A。在每一步骤中,选取A的一行。
图6:第一阶段中A的子矩阵
由V的结构定义的下图被用来确定选取A的哪一行。与V相交的列是该图中的节点,以及在V中具有恰好2个非零条目且不是HDPC行的那些行是该图中在这两个1的位置处连接这两列(节点)的边缘。该图中的分量是节点(列)和边缘(行)的最大集合,以使得该图中每一对节点/边缘之间存在路径。分量的大小是该分量中的节点(列)数目。
第一阶段中至多有L个步骤。当i+u=L时,即当V和V上方的全零子矩阵已消失且A由I、I下方的全零子矩阵和U构成时,该阶段成功结束。若在V消失前的某个步骤,在该步骤里V中没有非零行供选择,则该阶段以解码失败而不成功地结束。在每一步骤中,如下选取A的一行:
○若V的所有条目皆为0,则不选取行且解码失败。
○令r为最小整数,使得A的至少一行在V中具有正好r个1。
*若r !=2,则选取在V中具有正好r个1的在所有此类行当中具有最小原始度的行,除了在所有非HDPC行已被处理之前不应选取HDPC行。
*若r=2,则选取在V中具有正好2个1的是上面描述的图中由V定义的最大大小分量的一部分的任一行。
在该步骤中选取了行之后,将A中与V相交的第一行与所选行交换,从而所选行是与V相交的第一行。A中与V相交的那些列被重新排序,从而所选行中的r个1之一出现在V的第一列,且其余r-1个1出现在V的最后各列。也对矩阵X执行相同的行和列操作。随后,所选行的恰适倍数被加到A中所选行下方在V的第一列中具有非零条目的所有其他行。具体地,若所选行下方的行在V的第一列中具有条目β,且所选行在V的第一列中具有条目α,则β/α乘以所选行被加到该行以使V的第一列剩下零值。最后,i递增1且u递增r-1,完成该步骤。
注意,若以上标识出的行操作在受影响行自身在解码过程期间被选取之前实际没有执行,则效率可得以改善。这避免了在解码过程中最终没有使用的行的行操作的处理,且具体而言在实际需要之前避免了β!=1的那些行。此外,HDPC行需要的行操作可通过使用第5.3.3.3节中描述的算法在一个过程中对所有此类行执行。
5.4.2.3.第二阶段
此时,X中在头i行和i列外的所有条目都被丢弃,因此X具有下三角形式。X的末i行和i列被丢弃,因此X现在具有i行i列。子矩阵U被进一步划分成头i行即U_上、以及其余M-i行即U_下。在第二阶段中对U_下执行高斯消元以确定其秩小于u(解码失败)或将它转换成其中头u行是单位矩阵的矩阵(第二阶段成功)。将该u x u单位矩阵称为I_u。A中与U_下-I_u相交的M-L行被丢弃。该阶段之后,A具有L行和L列。
5.4.2.4.第三阶段
在第二阶段之后,A中需要消零以完成将A转换成L x L单位矩阵的那部分是U_上。子矩阵U_上的行数i一般远大于U_上的列数u。此外,这时矩阵U_上一般是密集的,即该矩阵的非零条目数量很大。为了将该矩阵简化为稀疏形式,需要逆反获得矩阵U_下所执行的操作序列。为此,将矩阵X乘以由A的头i行构成的A的子矩阵。在该操作之后,由头i行与i列的交集构成的A的子矩阵等于X,其中矩阵U_上被变换成稀疏形式。
5.4.2.5.第四阶段
对于U_上的头i行中的每一行,进行以下操作:若该行在位置j具有非零条目且若该非零条目的值为b,则向该行加b乘以I_u的行j。在该步骤之后,由头i行与i列的交集构成的A的子矩阵等于X,子矩阵U_上由0构成,由末u行与头i列的交集构成的子矩阵由0构成,以及由末u行与u列构成的子矩阵为矩阵I_u。
5.4.2.6.第五阶段
对于j从1到i,执行以下操作:
1.若A[j,j]不是1,则将A的行j除以A[j,j]。
2.对于l从1到j-1,若A[j,l]是非零,则将A[j,l]乘以A的行l加到A的行j。
在该阶段之后,A为L x L单位矩阵,且完整的解码调度已成功形成。随后,可执行包括求和已知编码码元的相应解码以基于解码调度来恢复中间码元。根据第5.3.3.2节计算与所有源码元相关联的元组。关于收到源码元的元组被用于解码。关于缺失源码元的元组被用于确定需要将哪些中间码元求和以恢复缺失的源码元。
5.5.随机数
第5.3.5.1节中使用的4个阵列V0、V1、V2和V3在以下提供。这4个阵列中的每个阵列中有256个条目。进入每个阵列的索引始于0,且这些条目是32位的无符号整数。
5.5.1.表V0
251291136,3952231631,3370958628,4070167936,123631495,3351110283,
3218676425,2011642291,774603218,2402805061,1004366930,
1843948209,428891132,3746331984,1591258008,3067016507,
1433388735,504005498,2032657933,3419319784,2805686246,
3102436986,3808671154,2501582075,3978944421,246043949,
4016898363,649743608,1974987508,2651273766,2357956801,689605112,
715807172,2722736134,191939188,3535520147,3277019569,1470435941,
3763101702,3232409631,122701163,3920852693,782246947,372121310,
2995604341,2045698575,2332962102,4005368743,218596347,
3415381967,4207612806,861117671,3676575285,2581671944,
3312220480,681232419,307306866,4112503940,1158111502,709227802,
2724140433,4201101115,4215970289,4048876515,3031661061,
1909085522,510985033,1361682810,129243379,3142379587,2569842483,
3033268270,1658118006,932109358,1982290045,2983082771,
3007670818,3448104768,683749698,778296777,1399125101,1939403708,
1692176003,3868299200,1422476658,593093658,1878973865,
2526292949,1591602827,3986158854,3964389521,2695031039,
1942050155,424618399,1347204291,2669179716,2434425874,
2540801947,1384069776,4123580443,1523670218,2708475297,
1046771089,2229796016,1255426612,4213663089,1521339547,
3041843489,420130494,10677091,515623176,3457502702,2115821274,
2720124766,3242576090,854310108,425973987,325832382,1796851292,
2462744411,1976681690,1408671665,1228817808,3917210003,
263976645,2593736473,2471651269,4291353919,650792940,1191583883,
3046561335,2466530435,2545983082,969168436,2019348792,
2268075521,1169345068,3250240009,3963499681,2560755113,
911182396,760842409,3569308693,2687243553,381854665,2613828404,
2761078866,1456668111,883760091,3294951678,1604598575,
1985308198,1014570543,2724959607,3062518035,3115293053,
138853680,4160398285,3322241130,2068983570,2247491078,
3669524410,1575146607,828029864,3732001371,3422026452,
3370954177,4006626915,543812220,1243116171,3928372514,
2791443445,4081325272,2280435605,885616073,616452097,3188863436,
2780382310,2340014831,1208439576,258356309,3837963200,
2075009450,3214181212,3303882142,880813252,1355575717,207231484,
2420803184,358923368,1617557768,3272161958,1771154147,
2842106362,1751209208,1421030790,658316681,194065839,3241510581,
38625260,301875395,4176141739,297312930,2137802113,1502984205,
3669376622,3728477036,234652930,2213589897,2734638932,
1129721478,3187422815,2859178611,3284308411,3819792700,
3557526733,451874476,1740576081,3592838701,1709429513,
3702918379,3533351328,1641660745,179350258,2380520112,
3936163904,3685256204,3156252216,1854258901,2861641019,
3176611298,834787554,331353807,517858103,3010168884,4012642001,
2217188075,3756943137,3077882590,2054995199,3081443129,
3895398812,1141097543,2376261053,2626898255,2554703076,
401233789,1460049922,678083952,1064990737,940909784,1673396780,
528881783,1712547446,3629685652,1358307511
5.5.2.表V1
807385413,2043073223,3336749796,1302105833,2278607931,541015020,
1684564270,372709334,3508252125,1768346005,1270451292,
2603029534,2049387273,3891424859,2152948345,4114760273,
915180310,3754787998,700503826,2131559305,1308908630,224437350,
4065424007,3638665944,1679385496,3431345226,1779595665,
3068494238,1424062773,1033448464,4050396853,3302235057,
420600373,2868446243,311689386,259047959,4057180909,1575367248,
4151214153,110249784,3006865921,4293710613,3501256572,998007483,
499288295,1205710710,2997199489,640417429,3044194711,486690751,
2686640734,2394526209,2521660077,49993987,3843885867,4201106668,
415906198,19296841,2402488407,2137119134,1744097284,579965637,
2037662632,852173610,2681403713,1047144830,2982173936,910285038,
4187576520,2589870048,989448887,3292758024,506322719,176010738,
1865471968,2619324712,564829442,1996870325,339697593,4071072948,
3618966336,2111320126,1093955153,957978696,892010560,1854601078,
1873407527,2498544695,2694156259,1927339682,1650555729,
183933047,3061444337,2067387204,228962564,3904109414,1595995433,
1780701372,2463145963,307281463,3237929991,3852995239,
2398693510,3754138664,522074127,146352474,4104915256,3029415884,
3545667983,332038910,976628269,3123492423,3041418372,2258059298,
2139377204,3243642973,3226247917,3674004636,2698992189,
3453843574,1963216666,3509855005,2358481858,747331248,
1957348676,1097574450,2435697214,3870972145,1888833893,
2914085525,4161315584,1273113343,3269644828,3681293816,
412536684,1156034077,3823026442,1066971017,3598330293,
1979273937,2079029895,1195045909,1071986421,2712821515,
3377754595,2184151095,750918864,2585729879,4249895712,
1832579367,1192240192,946734366,31230688,3174399083,3549375728,
1642430184,1904857554,861877404,3277825584,4267074718,
3122860549,666423581,644189126,226475395,307789415,1196105631,
3191691839,782852669,1608507813,1847685900,4069766876,
3931548641,2526471011,766865139,2115084288,4259411376,
3323683436,568512177,3736601419,1800276898,4012458395,1823982,
27980198,2023839966,869505096,431161506,1024804023,1853869307,
3393537983,1500703614,3019471560,1351086955,3096933631,
3034634988,2544598006,1230942551,3362230798,159984793,491590373,
3993872886,3681855622,903593547,3535062472,1799803217,772984149,
895863112,1899036275,4187322100,101856048,234650315,3183125617,
3190039692,525584357,1286834489,455810374,1869181575,922673938,
3877430102,3422391938,1414347295,1971054608,3061798054,
830555096,2822905141,167033190,1079139428,4210126723,3593797804,
429192890,372093950,1779187770,3312189287,204349348,452421568,
2800540462,3733109044,1235082423,1765319556,3174729780,
3762994475,3171962488,442160826,198349622,45942637,1324086311,
2901868599,678860040,3812229107,19936821,1119590141,3640121682,
3545931032,2102949142,2828208598,3603378023,4135048896
5.5.3.表V2
1629829892,282540176,2794583710,496504798,2990494426,3070701851,
2575963183,4094823972,2775723650,4079480416,176028725,
2246241423,3732217647,2196843075,1306949278,4170992780,
4039345809,3209664269,3387499533,293063229,3660290503,
2648440860,2531406539,3537879412,773374739,4184691853,
1804207821,3347126643,3479377103,3970515774,1891731298,
2368003842,3537588307,2969158410,4230745262,831906319,
2935838131,264029468,120852739,3200326460,355445271,2296305141,
1566296040,1760127056,20073893,3427103620,2866979760,2359075957,
2025314291,1725696734,3346087406,2690756527,99815156,4248519977,
2253762642,3274144518,598024568,3299672435,556579346,4121041856,
2896948975,3620123492,918453629,3249461198,2231414958,
3803272287,3657597946,2588911389,242262274,1725007475,
2026427718,46776484,2873281403,2919275846,3177933051,1918859160,
2517854537,1857818511,3234262050,479353687,200201308,2801945841,
1621715769,483977159,423502325,3689396064,1850168397,3359959416,
3459831930,841488699,3570506095,930267420,1564520841,2505122797,
593824107,1116572080,819179184,3139123629,1414339336,1076360795,
512403845,177759256,1701060666,2239736419,515179302,2935012727,
3821357612,1376520851,2700745271,966853647,1041862223,715860553,
171592961,1607044257,1227236688,3647136358,1417559141,
4087067551,2241705880,4194136288,1439041934,20464430,119668151,
2021257232,2551262694,1381539058,4082839035,498179069,311508499,
3580908637,2889149671,142719814,1232184754,3356662582,
2973775623,1469897084,1728205304,1415793613,50111003,3133413359,
4074115275,2710540611,2700083070,2457757663,2612845330,
3775943755,2469309260,2560142753,3020996369,1691667711,
4219602776,1687672168,1017921622,2307642321,368711460,
3282925988,213208029,4150757489,3443211944,2846101972,
4106826684,4272438675,2199416468,3710621281,497564971,285138276,
765042313,916220877,3402623607,2768784621,1722849097,3386397442,
487920061,3569027007,3424544196,217781973,2356938519,3252429414,
145109750,2692588106,2454747135,1299493354,4120241887,
2088917094,932304329,1442609203,952586974,3509186750,753369054,
854421006,1954046388,2708927882,4047539230,3048925996,
1667505809,805166441,1182069088,4265546268,4215029527,
3374748959,373532666,2454243090,2371530493,3651087521,
2619878153,1651809518,1553646893,1227452842,703887512,
3696674163,2552507603,2635912901,895130484,3287782244,
3098973502,990078774,3780326506,2290845203,41729428,1949580860,
2283959805,1036946170,1694887523,4880696,466000198,2765355283,
3318686998,1266458025,3919578154,3545413527,2627009988,
3744680394,1696890173,3250684705,4142417708,915739411,
3308488877,1289361460,2942552331,1169105979,3342228712,
698560958,1356041230,2401944293,107705232,3701895363,903928723,
3646581385,844950914,1944371367,3863894844,2946773319,
1972431613,1706989237,29917467,3497665928
5.5.4.表V3
1191369816,744902811,2539772235,3213192037,3286061266,
1200571165,2463281260,754888894,714651270,1968220972,3628497775,
1277626456,1493398934,364289757,2055487592,3913468088,
2930259465,902504567,3967050355,2056499403,692132390,186386657,
832834706,859795816,1283120926,2253183716,3003475205,1755803552,
2239315142,4271056352,2184848469,769228092,1249230754,
1193269205,2660094102,642979613,1687087994,2726106182,446402913,
4122186606,3771347282,37667136,192775425,3578702187,1952659096,
3989584400,3069013882,2900516158,4045316336,3057163251,
1702104819,4116613420,3575472384,2674023117,1409126723,
3215095429,1430726429,2544497368,1029565676,1855801827,
4262184627,1854326881,2906728593,3277836557,2787697002,
2787333385,3105430738,2477073192,748038573,1088396515,
1611204853,201964005,3745818380,3654683549,3816120877,
3915783622,2563198722,1181149055,33158084,3723047845,3790270906,
3832415204,2959617497,372900708,1286738499,1932439099,
3677748309,2454711182,2757856469,2134027055,2780052465,
3190347618,3758510138,3626329451,1120743107,1623585693,
1389834102,2719230375,3038609003,462617590,260254189,3706349764,
2556762744,2874272296,2502399286,4216263978,2683431180,
2168560535,3561507175,668095726,680412330,3726693946,4180630637,
3335170953,942140968,2711851085,2059233412,4265696278,
3204373534,232855056,881788313,2258252172,2043595984,3758795150,
3615341325,2138837681,1351208537,2923692473,3402482785,
2105383425,2346772751,499245323,3417846006,2366116814,
2543090583,1828551634,3148696244,3853884867,1364737681,
2200687771,2689775688,232720625,4071657318,2671968983,
3531415031,1212852141,867923311,3740109711,1923146533,
3237071777,3100729255,3247856816,906742566,4047640575,
4007211572,3495700105,1171285262,2835682655,1634301229,
3115169925,2289874706,2252450179,944880097,371933491,1649074501,
2208617414,2524305981,2496569844,2667037160,1257550794,
3399219045,3194894295,1643249887,342911473,891025733,3146861835,
3789181526,938847812,1854580183,2112653794,2960702988,
1238603378,2205280635,1666784014,2520274614,3355493726,
2310872278,3153920489,2745882591,1200203158,3033612415,
2311650167,1048129133,4206710184,4209176741,2640950279,
2096382177,4116899089,3631017851,4104488173,1857650503,
3801102932,445806934,3055654640,897898279,3234007399,1325494930,
2982247189,1619020475,2720040856,885096170,3485255499,
2983202469,3891011124,546522756,1524439205,2644317889,
2170076800,2969618716,961183518,1081831074,1037015347,
3289016286,2331748669,620887395,303042654,3990027945,1562756376,
3413341792,2059647769,2823844432,674595301,2457639984,
4076754716,2447737904,1583323324,625627134,3076006391,345777990,
1684954145,879227329,3436182180,1522273219,3802543817,
1456017040,1897819847,2970081129,1382576028,3820044861,
1044428167,612252599,3340478395,2150613904,3397625662,
3573635640,3432275192
5.6.系统索引和其他参数
下表2指定了所支持的K′值。该表还指定了关于每个所支持的K′值的系统索引J(K′)、HDPC码元数目H(K′)、LDPC码元数目S(K′)、以及LT码元数目W(K′)。对于K′的每个值,S(K′)和W(K′)的相应值为质数。
系统索引J(K′)被设计成具有以下属性:源码元元组集合(d[0],a[0],b[0],d1[0],a1[0],b1[0]),…,(d[K′-1],a[K′-1],b[K′-1],d1[K′-1],a1[K′-1],b1[K′-1])使得L个中间码元被唯一性地定义,即图6中的矩阵A具有满秩且因此是可逆的。
表2:系统索引和其他参数
5.7.八位字节、码元和矩阵的操作
5.7.1.综述
本节的其余部分描述了用于从源码元生成编码码元以及从编码码元生成源码元的算术运算。在数学上,八位字节可被视为有限域的元素,即具有256个元素的有限域GF(256),因此定义了加法和乘法运算以及这两种运算上的单位元素和逆。矩阵运算和码元运算基于对八位字节的算术运算来定义。这允许在不必理解有限域的根本数学的情况下完全实现这些算术运算。
5.7.2.对八位字节的算术运算
八位字节以普通方式被映射到范围0到255中的非负整数:来自码元的单个八位字节数据B[7]、B[6]、B[5]、B[4]、B[3]、B[2]、B[1]、B[0],其中B[7]是最高阶位而B[0]是最低阶位,被映射到整数i=B[7]*128+B[6]*64+B[5]*32+B[4]*16+B[3]*8+B[2]*4+B[1]*2+B[0]。
零个八位字节u和v的加法被定义为异或运算,即,
u+v=u^v。
减法以相同的方式定义,因此得到
u-v=u^v。
0元素(加性单位)是由整数0表示的八位字节。u的加性逆简单地为u,即
u+u=0。
零个八位字节的乘法在两个表OCT_EXP和OCT_LOG的辅助下定义,这两个表分别在第5.7.3和5.7.4节中给出。表OCT_LOG将八位字节(非零元素)映射到非负整数,以及OCT_EXP将非负整数映射到八位字节。对于两个八位字节u和v,定义
u*v=
0,若u或v为0,
OCT_EXP[OCT_LOG[u]+OCT_LOG[v]],否则。
注意,上面右侧的′+′是普通的整数加法,因为其自变量是普通的整数。
两个八位字节u和v的除法u/v且其中v !=0定义如下:
u/v=
0,若u==0,
OCT_EXP[OCT_LOG[u]-OCT_LOG[v]+255],否则。
1元素(乘性单位)是由整数1表示的八位字节。对于不是零元素的八位字节u,即u的乘性逆为
OCT_EXP[255-OCT_LOG[u]]。
由α标示的八位字节是具有整数表示2的八位字节。若i是非负整数0<=i<256,得到
α^^i=OCT_EXP[i].
5.7.3.表OCT_EXP
表OCT_EXP包含510个八位字节。索引从0开始且范围直至509,且条目是具有以下正整数表示的八位字节:
1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142,1,2,4,8,16,32,64,128,29,58,116,232,205,135,19,38,76,152,45,90,180,117,234,201,143,3,6,12,24,48,96,192,157,39,78,156,37,74,148,53,106,212,181,119,238,193,159,35,70,140,5,10,20,40,80,160,93,186,105,210,185,111,222,161,95,190,97,194,153,47,94,188,101,202,137,15,30,60,120,240,253,231,211,187,107,214,177,127,254,225,223,163,91,182,113,226,217,175,67,134,17,34,68,136,13,26,52,104,208,189,103,206,129,31,62,124,248,237,199,147,59,118,236,197,151,51,102,204,133,23,46,92,184,109,218,169,79,158,33,66,132,21,42,84,168,77,154,41,82,164,85,170,73,146,57,114,228,213,183,115,230,209,191,99,198,145,63,126,252,229,215,179,123,246,241,255,227,219,171,75,150,49,98,196,149,55,110,220,165,87,174,65,130,25,50,100,200,141,7,14,28,56,112,224,221,167,83,166,81,162,89,178,121,242,249,239,195,155,43,86,172,69,138,9,18,36,72,144,61,122,244,245,247,243,251,235,203,139,11,22,44,88,176,125,250,233,207,131,27,54,108,216,173,71,142
5.7.4.表OCT_LOG
表OCT_LOG包含255个非负整数。该表由解释为整数的八位字节来索引。由整数0表示的与零元素相对应的八位字节不被作为索引,因此索引从1开始且范围直至255,且条目如下:
0,1,25,2,50,26,198,3,223,51,238,27,104,199,75,4,100,224,14,52,141,239,129,28,193,105,248,200,8,76,113,5,138,101,47,225,36,15,33,53,147,142,218,240,18,130,69,29,181,194,125,106,39,249,185,201,154,9,120,77,228,114,166,6,191,139,98,102,221,48,253,226,152,37,179,16,145,34,136,54,208,148,206,143,150,219,189,241,210,19,92,131,56,70,64,30,66,182,163,195,72,126,110,107,58,40,84,250,133,186,61,202,94,155,159,10,21,121,43,78,212,229,172,115,243,167,87,7,112,192,247,140,128,99,13,103,74,222,237,49,197,254,24,227,165,153,119,38,184,180,124,17,68,146,217,35,32,137,46,55,63,209,91,149,188,207,205,144,135,151,178,220,252,190,97,242,86,211,171,20,42,93,158,132,60,57,83,71,109,65,162,31,45,67,216,183,123,164,118,196,23,73,236,127,12,111,246,108,161,59,82,41,157,85,170,251,96,134,177,187,204,62,90,203,89,95,176,156,169,160,81,11,245,22,235,122,117,44,215,79,174,213,233,230,231,173,232,116,214,244,234,168,80,88,175
5.7.5.对码元的运算
对码元的运算具有与本规范中对长度为T的八位字节向量的运算相同的语义。因此,若U和V是分别由八位字节u[0]、…、u[T-1]和v[0]、…、v[T-1]形成的两个码元,则码元和U+V被定义为八位字节的逐分量求和,即等于由八位字节d[0]、…、d[T-1]形成的码元,使得
d[i]=u[i]+v[i],0<=i<T。
此外,若β是八位字节,则乘积β*U被定义为通过将U的每个八位字节乘以β获得的码元D,即,
d[i]=beta*u[i],0<=i<T。
5.7.6.对矩阵的运算
本规范中的所有矩阵具有为八位字节的条目,且因此矩阵运算和定义是以底层八位字节算术的方式定义的,例如对矩阵的运算、矩阵秩和矩阵逆。
5.8.对兼容解码器的要求
若RaptorQ兼容解码器接收在数学上充分的根据第5.3节中的编码器规范生成的编码码元集合以重构源块,则此类解码器应当恢复整个源块。
对于具有K′个源码元的源块,对于第5.6节表2中的所有K′值,RaptorQ兼容解码器应具有以下恢复属性。
1.若解码器接收根据第5.3节中的编码器规范生成的具有独立且均匀随机地从可能的ESI范围选取的相应ESI的K′个编码码元,则平均来说,解码器在100次中至多有1次将不能恢复整个源块。
2.若解码器接收根据第5.3节中的编码器规范生成的具有独立且均匀随机地从可能的ESI范围选取的相应ESI的K′+1个编码码元,则平均来说,解码器在10,000次中至多有1次将不能恢复整个源块。
3.若解码器接收根据第5.3节中的编码器规范生成的具有独立且均匀随机地从可能的ESI范围选取的相应ESI的K′+2个编码码元,则平均来说,解码器在1,000,000次中至多有1次将不能恢复整个源块。
注意,第5.4节中指定的示例FEC解码器履行两个要求,即
1.只要接收到在数学上充分的根据第5.3节中的编码器规范生成的编码码元集合,它就能重构源块;
2.它履行上面的强制恢复属性。
6.安全性考虑
数据递送可受到攻击者的拒绝服务攻击,攻击者发送被接收方作为合法的来接收的讹误分组。这对于多播递送尤其是个问题,因为讹误分组可能被注入靠近多播树的根的会话中,在这种情形中,讹误分组将抵达许多接收方。这在使用本文档中描述的代码时尤其是个问题,因为使用甚至一个包含编码数据的讹误分组就会导致解码完全讹误和无用的对象。因此,推荐在将对象递送给应用之前向经解码对象应用源认证和完好性检查。例如,可在传输前追加对象的SHA-1散列[SHA1],且在解码对象之后但在将它递送给应用之前计算和检查SHA-1散列。例如,应当通过包括可由接收方验证的在散列值上计算出的数字签名来提供源认证。还推荐使用诸如TESLA[RFC4082]之类的分组认证协议来在抵达之际检测和丢弃讹误分组。该方法也可用来提供源认证。此外,推荐在沿着从发送方到接收方的路径上的所有网络路由器和交换机中实现反向路径转发检查,以限制不良代理向多播树数据路径中注入讹误分组的可能性。
另一安全问题是一些FEC信息可能被带外接收方在会话描述中获得,且若会话描述是伪造的或讹误的,则接收方将不会使用正确的协议来从收到分组解码内容。为了避免这些问题,推荐采取措施防止接收方接受不正确的会话描述,例如通过使用源认证来确保接收方仅接受来自授权发送方的合法会话描述。
7.IANA考虑
FEC编码ID和FEC实例ID的值要进行IANA注册。对于IANA考虑在应用于本文档时的一般性指南,参见[RFC5052]。本文档依照ietf:rmt:fec:编码命名空间到“RaptorQ码”来指派全规范FEC编码ID 6(tbc)。
8.感谢
感谢Ranganathan(Ranga)Krishnan。Ranga Krishnan非常支持发现和解决实现细节以及发现系统索引。此外,皆来自慕尼黑工业大学(TUM)的Habeeb MohiuddinMohammed和Antonios Pitarokoilis、以及Alan Shinsato已作出有助于阐明和用本规范解决问题的RaptorQ编码器/解码器的独立实现。
9.参考文献
9.1.标准性参考文献
[RFC2119]Bradner,S.,″Key words for use in RFCs to Indicate RequirementLevels(用于RFC以指示要求等级的关键词)″,BCP 14,RFC 2119,1997年3月。
[RFC4082]Perrig,A.、Song,D.、Canetti,R.、Tygar,J.和B.Briscoe,″TimedEfficient Stream Loss-Tolerant Authentication(TESLA):Multicast Source AuthenticationTransform Introduction(时间高效流耐丢失认证(TESLA):多播源认证变换介绍)″,RFC 4082,2005年6月。
[SHA1]″Secure Hash Standard(安全散列标准)″,Federal Information ProcessingStandards Publication(联邦信息处理标准公布)(FIPS PUB)180-1,2005年4月。
[RFC5052]Watson,M.、Luby,M.和L.Vicisano,″Forward Error Correction(FEC)Building Block(前向纠错(FEC)构建块)″,RFC 5052,2007年8月。
9.2.信息性参考文献
[RFC3453]Luby,M.、Vicisano,L.、Gemmell,J.、Rizzo,L.、Handley,M.和J.Crowcroff,″The Use of Forward Error Correction(FEC)in Reliable Multicast(前向纠错(FEC)在可靠多播中的使用)″,RFC 3453,2002年12月。
[RFC5053]Luby,M.、Shokrollahi,A.、Watson,M.和T.Stockhammer,″RaptorForward Error Correction Scheme for Object Delivery(用于对象递送的Raptor前向纠错方案)″,RFC 5053,2007年10月。
作者地址
Michael Luby
Qualcomm Incorporated 3165 Kifer Road
Santa Clara,CA 95051
U.S.A.
Email:lubyqualcomm.com
Amin Shokrollahi
EPFL
Laboratoire d′algorithmique
EPFL
Station 14
Batiment BC
Lausanne 1015
Switzerland
Email:amin.shokrollahiepfl.ch
Mark Watson
Qualcomm Incorporated
3165 Kifer Road
Santa Clara,CA 95051
U.S.A.
Email:watsonqualcomm.com
Thomas Stockhammer
Nomor Research
Brecherspitzstrasse 8
Munich 81541
Germany
Email:stockhammernomor.de
Lorenz Minder
Qualcomm Incorporated
3165 Kifer Road
Santa Clara,CA 95051
U.S.A.
Email:lminderqualcomm.com
Claims (38)
1.一种经由一个或更多个能够输出电子信号的发射机电子地传送数据的方法,其中待传送的数据由有序源码元集合表示且所述数据是作为表示所述电子信号的至少一部分的经编码码元序列来传送的,所述方法包括:
以电子可读形式获得所述有序源码元集合;
从所述有序源码元集合生成一组中间码元,其中所述源码元是能从该组中间码元再生的;
指定中间码元集合以使得每个中间码元被指定为所述中间码元集合之一的成员且至少存在第一中间码元集合和第二中间码元集合,并且其中每个中间码元集合具有相关联的相异的编码参数且具有至少一个中间码元作为成员;以及
生成多个经编码码元,其中经编码码元是从所述中间码元中的一个或更多个中间码元生成的,其中至少一个经编码码元是直接或间接从选自多个所述中间码元集合的多个中间码元生成的。
2.如权利要求1所述的方法,其特征在于,所述第一中间码元集合被指定为用于置信传播解码的码元且所述第二中间码元集合被指定为针对置信传播解码被钝化的码元。
3.如权利要求1所述的方法,其特征在于,每个经编码码元是根据从所述第一中间码元集合中的一个或更多个中间码元生成的第一码元与从所述第二中间码元集合中的一个或更多个中间码元生成的第二码元的组合生成的。
4.如权利要求3所述的方法,其特征在于,所述相异的编码参数至少包括相异的度分布,以使得每个经编码码元是根据从具有第一度分布的所述第一中间码元集合中的一个或更多个中间码元生成的第一码元与从具有不同于所述第一度分布的第二度分布的所述第二中间码元集合中的一个或更多个中间码元生成的第二码元的组合生成的。
5.如权利要求3所述的方法,其特征在于,所述第一码元是使用向所述第一中间码元集合应用的链式反应编码过程生成的。
6.如权利要求3所述的方法,其特征在于,所述第二码元是从所述第二中间码元集合随机选取的固定数目个码元的异或。
7.如权利要求3所述的方法,其特征在于,所述第二码元是从所述第二中间码元集合随机选取的第一数目个码元的异或,并且其中所述第一数目取决于等于为了生成所述第一码元而从所述第一集合选取的码元数目的第二数目。
8.如权利要求3所述的方法,其特征在于,所述组合是所述第一码元与所述第二码元的异或。
9.如权利要求1所述的方法,其特征在于,所述中间码元包括所述有序源码元集合以及从所述有序源码元集合生成的冗余源码元集合。
10.如权利要求9所述的方法,其特征在于,所述冗余码元中的至少一些是使用GF[2]操作生成的,且其他冗余码元是使用GF[256]操作生成的。
11.如权利要求1所述的方法,其特征在于,所述中间码元是在编码期间使用解码过程从所述源码元生成的,其中所述解码过程基于所述中间码元与所述源码元之间的线性关系组。
12.如权利要求11所述的方法,其特征在于,所述线性关系中的至少一些是GF[2]上的关系,且其他线性关系是GF[256]上的关系。
13.如权利要求1所述的方法,其特征在于,能从给定的有序源码元集合生成的相异经编码码元的数目独立于该有序集合中的源码元数目。
14.如权利要求1所述的方法,其特征在于,为了生成经编码码元而执行的码元操作的平均次数受独立于该有序集合中的码元数目的常数限制。
15.如权利要求1所述的方法,其特征在于,所述第一码元集合在大于所述第二码元集合的数量级以上。
16.一种从源接收数据的方法,其中所述数据是通过分组通信信道在目的地接收的,并且其中所述数据能由从表示从所述源发送给所述目的地的所述数据的有序源码元集合推导出的经编码码元集合表示,所述方法包括:
获得收到经编码码元集合;
从所述收到经编码码元集合解码一组中间码元;
将所述中间码元中的每一个与中间码元集合相关联,其中所述中间码元被关联到至少两个集合中,且其中一个集合被指定为永久钝化码元集合以调度用于从所述收到经编码码元恢复所述中间码元的解码过程;以及
根据所述解码过程从所述中间码元集合恢复所述有序源码元集合的至少一些源码元。
17.如权利要求16所述的方法,其特征在于,所述解码过程至少包括:第一解码阶段,其中取决于第二永久钝化码元集合以及为第一码元集合的子集的第三动态钝化码元集合生成简化经编码码元集合;以及第二解码阶段,其中所述简化经编码码元集合被用来解码所述第二永久钝化码元集合和所述第三动态钝化码元集合;以及第三解码阶段,其中解码出的第二永久钝化码元集合和第三动态钝化码元集合以及所述收到经编码码元集合被用来解码所述第一码元集合中的至少一些剩余中间码元。
18.如权利要求17所述的方法,其特征在于,所述第一解码阶段使用置信传播解码结合钝化解码,和/或所述第二解码阶段使用高斯消元法。
19.如权利要求17所述的方法,其特征在于,所述第三解码阶段使用回代、或者后向扫描继以前向扫描。
20.如权利要求17所述的方法,其特征在于,考虑所述第三动态钝化码元集合中的码元数目少于源码元数目的10%和/或少于所述第二永久钝化码元集合中的码元数目的10%,所述解码过程对所述第三动态钝化码元集合进行操作。
21.如权利要求16所述的方法,其特征在于,所述收到经编码码元作为LDPC码生成的码元或Reed-Solomon码生成的码元被操作。
22.如权利要求16所述的方法,其特征在于,所述收到经编码码元集合的每个收到经编码码元就如是从所述第一码元集合中的一个或更多个码元生成的第一码元与从所述第二码元集合中的一个或更多个码元生成的第二码元的组合那样被操作。
23.如权利要求22所述的方法,其特征在于,每个收到经编码码元就如所述组合是所述第一码元与所述第二码元的异或那样被操作。
24.如权利要求22所述的方法,其特征在于,每个收到经编码码元就如所述第二码元是从所述第二集合随机选取的固定数目个码元的异或那样被操作。
25.如权利要求22所述的方法,其特征在于,每个收到经编码码元就如所述第二码元是从所述第二集合随机选取的第一数目个码元的异或那样被操作,其中码元的所述第一数目取决于为了生成所述第一码元而从所述第一集合选取的码元的第二数目。
26.如权利要求22所述的方法,其特征在于,所述解码过程就像所述第一码元是基于链式反应码从所述第一码元集合选取的那样进行操作。
27.如权利要求16所述的方法,其特征在于,所述解码过程就像所述第二永久钝化码元集合的大小与源码元数目的平方根成比例那样进行操作。
28.如权利要求16所述的方法,其特征在于,所述解码过程就像所述中间码元包括所述有序源码元集合以及从所述有序源码元集合生成的冗余码元集合那样进行操作。
29.如权利要求28所述的方法,其特征在于,所述解码过程就像所述冗余码元中的至少一些是使用GF[2]操作生成的且其他冗余码元是使用GF[256]操作生成的那样进行操作。
30.如权利要求16所述的方法,其特征在于,所述解码过程就像所述中间码元包括所述有序源码元集合那样进行操作。
31.如权利要求16所述的方法,其特征在于,所述解码过程就像所述中间码元是使用解码过程基于所述中间码元与所述源码元之间的线性关系组从所述源码元生成的码元那样进行操作。
32.如权利要求31所述的方法,其特征在于,所述解码过程就像所述线性关系中的至少一些是GF[2]上的关系且其他线性关系是GF[256]上的关系那样进行操作。
33.如权利要求16所述的方法,其特征在于,所述解码过程就像能接收到的不同的可能经编码码元的数目独立于所述有序集合中的源码元数目那样进行操作。
34.如权利要求16所述的方法,其特征在于,为了从所述收到经编码码元集合解码所述源码元集合要执行的码元操作的平均次数受常数乘以源码元数目限制,其中所述常数独立于所述源码元数目。
35.如权利要求16所述的方法,其特征在于,所述解码过程就像所述第一码元集合中的码元数目在大于所述第二永久钝化码元集合中的码元数目的数量级以上那样进行操作。
36.如权利要求16所述的方法,其特征在于,所述解码过程进行操作以使得从N=K+A个经编码码元的集合恢复所有K个源码元的集合对于某个K、N和A至少具有1-(0.01)^(A+1)的下限的成功概率,其中A=0、1或2,其中所述下限独立于源码元数目。
37.一种用于使用耦合到数据网的服务器来供应文件的方法,其中供应包括将所述文件的数据组织成一个或更多个块,基于块的数据生成所述块的一个或更多个经编码码元,且其中至少一个块在物理上或逻辑上被组织成多个子块,且至少一个经编码码元在物理上或逻辑上被组织成多个子码元,所述方法包括:
将输入文件划分成整数数目个块,其中每个块包括至少一个子块,且其中每个子块包括至少一个源码元;
基于存储器约束确定表示子块的最大大小的值WS;
确定值SS,其中SS*AL表示以优选存储器单位大小AL计的子码元大小的下限;
确定所述整数数目个块中的哪些块将被组织成多个子块,且对于每个此类块,将该块组织成具有由用于待发送的经编码码元的分组内的可用空间、每个所发送分组内将使用的码元大小决定的大小的多个子块,从而确保各源块的源码元数目落在阈值内且该数目等于文件中的源码元数目Kt,以及确保每个子块的子码元大小至多为SS*AL并确保每个子块的大小至多为WS;
从块生成经编码码元,其中子码元是从子块生成的以使得每个经编码码元取决于来自一个块的数据;以及
输出生成的经编码码元。
38.一种用于在使用耦合到数据网的客户端的接收机处恢复数据块的方法,其中块包括一个或更多个子块的编组,所述方法包括:
接收从所述块生成的多个经编码码元,其中每个经编码码元包括使用共同的操作集从至少一个子块生成的多个子码元;
基于存储器约束确定表示子块的最大大小的值WS;
确定值SS,其中SS*AL表示以优选存储器单位大小AL计的子码元大小的下限;
确定整数数目个块中的哪些块被组织成多个子块,且对于每个此类块,将该块组织成具有由发送方设定的表示分组内的可用空间的第一参数、表示每个分组内使用的码元大小的第二参数决定的大小的多个子块,所述参数使得各源块的源码元数目落在阈值内且该数目等于文件中的源码元数目Kt;
从收到经编码码元解码块,其中子块是从子码元解码的且所述子块形成块,其中每个子块的子码元大小至多为SS*AL且每个子块的大小至多为WS;以及
输出经解码块。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US23528509P | 2009-08-19 | 2009-08-19 | |
US61/235,285 | 2009-08-19 | ||
US12/604,773 | 2009-10-23 | ||
US12/604,773 US7956772B2 (en) | 2002-06-11 | 2009-10-23 | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US25714609P | 2009-11-02 | 2009-11-02 | |
US61/257,146 | 2009-11-02 | ||
US35391010P | 2010-06-11 | 2010-06-11 | |
US61/353,910 | 2010-06-11 | ||
US12/859,161 US9419749B2 (en) | 2009-08-19 | 2010-08-18 | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US12/859,161 | 2010-08-18 | ||
PCT/US2010/046027 WO2011022555A2 (en) | 2009-08-19 | 2010-08-19 | Methods and apparatus employing fec codes with permanent inactivation of symbols for encoding and decoding processes |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102640422A true CN102640422A (zh) | 2012-08-15 |
CN102640422B CN102640422B (zh) | 2015-02-11 |
Family
ID=43607590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080037946.5A Active CN102640422B (zh) | 2009-08-19 | 2010-08-19 | 为编码和解码过程采用使码元永久钝化的fec码的方法和装置 |
Country Status (15)
Country | Link |
---|---|
US (3) | US9419749B2 (zh) |
EP (1) | EP2467942B1 (zh) |
JP (2) | JP5602858B2 (zh) |
KR (2) | KR101421286B1 (zh) |
CN (1) | CN102640422B (zh) |
BR (1) | BR112012003688B1 (zh) |
CA (2) | CA2771622C (zh) |
ES (1) | ES2673513T3 (zh) |
HK (1) | HK1172164A1 (zh) |
HU (1) | HUE037486T2 (zh) |
MY (1) | MY174793A (zh) |
RU (2) | RU2519524C2 (zh) |
TW (2) | TWI566089B (zh) |
WO (1) | WO2011022555A2 (zh) |
ZA (1) | ZA201201843B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332570A (zh) * | 2017-06-06 | 2017-11-07 | 北京理工大学 | 分段级联Hash序列的极化码编码方法 |
WO2021208581A1 (zh) * | 2020-04-17 | 2021-10-21 | 华为技术有限公司 | 一种编码方法及通信装置 |
WO2022041187A1 (en) * | 2020-08-31 | 2022-03-03 | Qualcomm Incorporated | Degree selection schemes for rapid tornado (raptor) codes in multicast and broadcast services and in unicast services |
Families Citing this family (64)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7068729B2 (en) | 2001-12-21 | 2006-06-27 | Digital Fountain, Inc. | Multi-stage code generator and decoder for communication systems |
US6307487B1 (en) | 1998-09-23 | 2001-10-23 | Digital Fountain, Inc. | Information additive code generator and decoder for communication systems |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
CN100539439C (zh) | 2002-10-05 | 2009-09-09 | 数字方敦股份有限公司 | 连锁反应码的系统编码和解码系统和方法 |
US20050058313A1 (en) * | 2003-09-11 | 2005-03-17 | Victorian Thomas A. | External ear canal voice detection |
KR101170629B1 (ko) | 2003-10-06 | 2012-08-02 | 디지털 파운튼, 인크. | 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러 정정 다중-스테이지 코드 생성기 및 디코더 |
KR101205758B1 (ko) | 2004-05-07 | 2012-12-03 | 디지털 파운튼, 인크. | 파일 다운로드 및 스트리밍 시스템 |
CN101686107B (zh) | 2006-02-13 | 2014-08-13 | 数字方敦股份有限公司 | 使用可变fec开销和保护周期的流送和缓冲 |
US9270414B2 (en) | 2006-02-21 | 2016-02-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
US7971129B2 (en) | 2006-05-10 | 2011-06-28 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems |
US9419749B2 (en) * | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
KR101129260B1 (ko) | 2007-09-12 | 2012-03-27 | 디지털 파운튼, 인크. | 신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신 |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US9015564B2 (en) | 2009-08-19 | 2015-04-21 | Qualcomm Incorporated | Content delivery system with allocation of source data and repair data among HTTP servers |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9294226B2 (en) * | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
KR101983032B1 (ko) * | 2012-05-07 | 2019-05-30 | 삼성전자주식회사 | 방송 및 통신 시스템에서 패킷 송수신 장치 및 방법 |
US9160399B2 (en) | 2012-05-24 | 2015-10-13 | Massachusetts Institute Of Technology | System and apparatus for decoding tree-based messages |
US10666701B2 (en) * | 2012-11-16 | 2020-05-26 | Citrix Systems, Inc. | Adaptation of content delivery network to incremental delivery of large, frequently updated data sets |
WO2014139085A1 (en) * | 2013-03-12 | 2014-09-18 | Hewlett-Packard Development Company, L.P. | Identifying transport-level encoded payloads |
JP6117994B2 (ja) * | 2013-05-29 | 2017-04-19 | 株式会社東芝 | 符号化および復号の方法および装置 |
US9369920B2 (en) * | 2013-06-12 | 2016-06-14 | Qualcomm Incorporated | Degree reduction and degree-constrained combining for relaying a fountain code |
US9270412B2 (en) * | 2013-06-26 | 2016-02-23 | Massachusetts Institute Of Technology | Permute codes, iterative ensembles, graphical hash codes, and puncturing optimization |
US9196299B2 (en) * | 2013-08-23 | 2015-11-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Systems and methods for enhanced data encoding and decoding |
EP2858286A1 (en) * | 2013-10-04 | 2015-04-08 | Alcatel Lucent | Rateless decoding |
TWI523465B (zh) * | 2013-12-24 | 2016-02-21 | 財團法人工業技術研究院 | 檔案傳輸系統和方法 |
FR3018148B1 (fr) * | 2014-02-28 | 2017-08-25 | Allegro Dvt | Generateur de flux video |
US9496897B1 (en) * | 2014-03-31 | 2016-11-15 | EMC IP Holding Company LLC | Methods and apparatus for generating authenticated error correcting codes |
CN106664436B (zh) | 2014-06-10 | 2020-01-10 | Lg电子株式会社 | 广播信号发送设备、广播信号接收设备、广播信号发送方法、以及广播信号接收方法 |
US10367605B2 (en) * | 2015-07-02 | 2019-07-30 | Intel Corporation | High speed interconnect symbol stream forward error-correction |
US10003357B2 (en) | 2015-08-28 | 2018-06-19 | Qualcomm Incorporated | Systems and methods for verification of code resiliency for data storage |
EP3142280A1 (en) * | 2015-09-09 | 2017-03-15 | Alcatel Lucent | Method, system and computer readable medium for the transmission of symbols between at least two telecommunication apparatus |
KR102458074B1 (ko) * | 2016-03-31 | 2022-10-24 | 삼성전자 주식회사 | 이동 통신 시스템에서 이종 서비스 제공 방법 및 장치 |
US10320428B2 (en) * | 2016-08-15 | 2019-06-11 | Qualcomm Incorporated | Outputting of codeword bits for transmission prior to loading all input bits |
TWI602409B (zh) * | 2016-08-15 | 2017-10-11 | 國立交通大學 | 資料傳輸方法與系統 |
JP6885025B2 (ja) * | 2016-11-18 | 2021-06-09 | ソニーグループ株式会社 | 送信装置、及び、送信方法 |
KR101886937B1 (ko) * | 2016-12-30 | 2018-08-08 | 성균관대학교산학협력단 | 릴레이 노드에서의 네트워크 코딩을 통한 패킷 전송 방법, 네트워크 코딩을 통한 패킷 전송을 하는 릴레이 장치, 목적지 노드의 패킷 수신 방법 및 네트워크 코딩된 패킷을 수신하는 장치 |
CA3036163A1 (en) * | 2018-03-13 | 2019-09-13 | Queen's Unviversity At Kingston | Fault-tolerant distributed digital storage |
KR102034390B1 (ko) * | 2018-08-23 | 2019-10-18 | 최운영 | 디스플레이 송출정보에 기반한 데이터 사용 로그 추적 시스템 |
KR20200036338A (ko) * | 2018-09-28 | 2020-04-07 | 삼성전자주식회사 | 무선 통신 시스템에서 극 부호를 이용한 부호화 및 복호화를 위한 장치 및 방법 |
CN110297703B (zh) * | 2019-06-11 | 2021-11-05 | 国网江苏省电力有限公司 | 一种在实时仿真系统中模拟硬件任务调度的方法及装置 |
US11281531B2 (en) * | 2019-06-25 | 2022-03-22 | Western Digital Technologies, Inc. | Serial storage node processing of data functions |
US10990324B2 (en) | 2019-06-25 | 2021-04-27 | Western Digital Technologies, Inc. | Storage node processing of predefined data functions |
US11055018B2 (en) | 2019-06-25 | 2021-07-06 | Western Digital Technologies, Inc. | Parallel storage node processing of data functions |
US11314593B2 (en) * | 2019-06-25 | 2022-04-26 | Western Digital Technologies, Inc. | Storage node processing of data functions using overlapping symbols |
US11751171B2 (en) * | 2020-07-09 | 2023-09-05 | Qualcomm Incorporated | Feedback-based broadcasting of network coded packets with sidelink |
US11115050B1 (en) * | 2020-08-24 | 2021-09-07 | Innogrit Technologies Co., Ltd. | Hardware friendly data decompression |
US11115049B1 (en) * | 2020-08-24 | 2021-09-07 | Innogrit Technologies Co., Ltd. | Hardware friendly data decompression |
US20220086445A1 (en) * | 2020-12-03 | 2022-03-17 | Intel Corporation | Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding |
US20220368342A1 (en) * | 2021-05-06 | 2022-11-17 | Samsung Display Co., Ltd. | Low overhead transition encoding codes |
US11632408B1 (en) * | 2022-02-15 | 2023-04-18 | Bank Of America Corporation | Intelligent, dynamic, secure, real-time, symmetrical data streaming apparatus leveraging quantum computing |
US11799700B1 (en) * | 2022-08-31 | 2023-10-24 | Qualcomm Incorporated | Decoding multi-level coded (MLC) systems |
US11928027B1 (en) * | 2022-09-26 | 2024-03-12 | Cadence Design Systems, Inc. | System and method for error checking and correction with metadata storage in a memory controller |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1806392A (zh) * | 2004-01-20 | 2006-07-19 | 三星电子株式会社 | 高速无线数据通讯系统中产生和解码具有可变速率的前向纠错代码的设备和方法 |
US20070195894A1 (en) * | 2006-02-21 | 2007-08-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
Family Cites Families (559)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3909721A (en) | 1972-01-31 | 1975-09-30 | Signatron | Signal processing system |
US4365338A (en) | 1980-06-27 | 1982-12-21 | Harris Corporation | Technique for high rate digital transmission over a dynamic dispersive channel |
US4965825A (en) | 1981-11-03 | 1990-10-23 | The Personalized Mass Media Corporation | Signal processing apparatus and methods |
US4589112A (en) | 1984-01-26 | 1986-05-13 | International Business Machines Corporation | System for multiple error detection with single and double bit error correction |
US4901319A (en) | 1988-03-18 | 1990-02-13 | General Electric Company | Transmission system with adaptive interleaving |
GB8815978D0 (en) | 1988-07-05 | 1988-08-10 | British Telecomm | Method & apparatus for encoding decoding & transmitting data in compressed form |
US5043909A (en) | 1988-12-30 | 1991-08-27 | Hughes Aircraft Company | Method and device for excess modulation detection for signal analysis |
US5136592A (en) | 1989-06-28 | 1992-08-04 | Digital Equipment Corporation | Error detection and correction system for long burst errors |
US5701582A (en) | 1989-08-23 | 1997-12-23 | Delta Beta Pty. Ltd. | Method and apparatus for efficient transmissions of programs |
US5421031A (en) | 1989-08-23 | 1995-05-30 | Delta Beta Pty. Ltd. | Program transmission optimisation |
US7594250B2 (en) | 1992-04-02 | 2009-09-22 | Debey Henry C | Method and system of program transmission optimization using a redundant transmission sequence |
US5329369A (en) | 1990-06-01 | 1994-07-12 | Thomson Consumer Electronics, Inc. | Asymmetric picture compression |
JPH0452253A (ja) | 1990-06-20 | 1992-02-20 | Kobe Steel Ltd | 急冷薄帯又は急冷細線 |
US5455823A (en) | 1990-11-06 | 1995-10-03 | Radio Satellite Corporation | Integrated communications terminal |
US5164963A (en) | 1990-11-07 | 1992-11-17 | At&T Bell Laboratories | Coding for digital transmission |
US5465318A (en) | 1991-03-28 | 1995-11-07 | Kurzweil Applied Intelligence, Inc. | Method for generating a speech recognition model for a non-vocabulary utterance |
US5379297A (en) | 1992-04-09 | 1995-01-03 | Network Equipment Technologies, Inc. | Concurrent multi-channel segmentation and reassembly processors for asynchronous transfer mode |
EP0543070A1 (en) | 1991-11-21 | 1993-05-26 | International Business Machines Corporation | Coding system and method using quaternary codes |
US5371532A (en) | 1992-05-15 | 1994-12-06 | Bell Communications Research, Inc. | Communications architecture and method for distributing information services |
US5425050A (en) | 1992-10-23 | 1995-06-13 | Massachusetts Institute Of Technology | Television transmission system using spread spectrum and orthogonal frequency-division multiplex |
US5372532A (en) | 1993-01-26 | 1994-12-13 | Robertson, Jr.; George W. | Swivel head cap connector |
EP0613249A1 (en) | 1993-02-12 | 1994-08-31 | Altera Corporation | Custom look-up table with reduced number of architecture bits |
DE4316297C1 (de) | 1993-05-14 | 1994-04-07 | Fraunhofer Ges Forschung | Frequenzanalyseverfahren |
AU665716B2 (en) | 1993-07-05 | 1996-01-11 | Mitsubishi Denki Kabushiki Kaisha | A transmitter for encoding error correction codes and a receiver for decoding error correction codes on a transmission frame |
US5590405A (en) | 1993-10-29 | 1996-12-31 | Lucent Technologies Inc. | Communication technique employing variable information transmission |
JP2576776B2 (ja) | 1993-11-10 | 1997-01-29 | 日本電気株式会社 | パケット伝送方法・パケット伝送装置 |
US5517508A (en) | 1994-01-26 | 1996-05-14 | Sony Corporation | Method and apparatus for detection and error correction of packetized digital data |
CA2140850C (en) | 1994-02-24 | 1999-09-21 | Howard Paul Katseff | Networked system for display of multimedia presentations |
US5566208A (en) | 1994-03-17 | 1996-10-15 | Philips Electronics North America Corp. | Encoder buffer having an effective size which varies automatically with the channel bit-rate |
US5432787A (en) | 1994-03-24 | 1995-07-11 | Loral Aerospace Corporation | Packet data transmission system with adaptive data recovery method |
US5757415A (en) | 1994-05-26 | 1998-05-26 | Sony Corporation | On-demand data transmission by dividing input data into blocks and each block into sub-blocks such that the sub-blocks are re-arranged for storage to data storage means |
US5802394A (en) | 1994-06-06 | 1998-09-01 | Starlight Networks, Inc. | Method for accessing one or more streams in a video storage system using multiple queues and maintaining continuity thereof |
US5739864A (en) | 1994-08-24 | 1998-04-14 | Macrovision Corporation | Apparatus for inserting blanked formatted fingerprint data (source ID, time/date) in to a video signal |
US5568614A (en) | 1994-07-29 | 1996-10-22 | International Business Machines Corporation | Data streaming between peer subsystems of a computer system |
US5668948A (en) | 1994-09-08 | 1997-09-16 | International Business Machines Corporation | Media streamer with control node enabling same isochronous streams to appear simultaneously at output ports or different streams to appear simultaneously at output ports |
US5926205A (en) | 1994-10-19 | 1999-07-20 | Imedia Corporation | Method and apparatus for encoding and formatting data representing a video program to provide multiple overlapping presentations of the video program |
US5659614A (en) | 1994-11-28 | 1997-08-19 | Bailey, Iii; John E. | Method and system for creating and storing a backup copy of file data stored on a computer |
US5617541A (en) | 1994-12-21 | 1997-04-01 | International Computer Science Institute | System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets |
JP3614907B2 (ja) | 1994-12-28 | 2005-01-26 | 株式会社東芝 | データ再送制御方法及びデータ再送制御システム |
JP3651699B2 (ja) | 1995-04-09 | 2005-05-25 | ソニー株式会社 | 復号化装置及び符号化復号化装置 |
WO1996034463A1 (en) | 1995-04-27 | 1996-10-31 | Trustees Of The Stevens Institute Of Technology | High integrity transport for time critical multimedia networking applications |
US5835165A (en) | 1995-06-07 | 1998-11-10 | Lsi Logic Corporation | Reduction of false locking code words in concatenated decoders |
US5805825A (en) | 1995-07-26 | 1998-09-08 | Intel Corporation | Method for semi-reliable, unidirectional broadcast information services |
JP3167638B2 (ja) | 1995-08-04 | 2001-05-21 | 三洋電機株式会社 | ディジタル変調方法と復調方法及びディジタル変調回路と復調回路 |
US6079041A (en) | 1995-08-04 | 2000-06-20 | Sanyo Electric Co., Ltd. | Digital modulation circuit and digital demodulation circuit |
US5754563A (en) | 1995-09-11 | 1998-05-19 | Ecc Technologies, Inc. | Byte-parallel system for implementing reed-solomon error-correcting codes |
KR0170298B1 (ko) | 1995-10-10 | 1999-04-15 | 김광호 | 디지탈 비디오 테이프의 기록 방법 |
US5751336A (en) | 1995-10-12 | 1998-05-12 | International Business Machines Corporation | Permutation based pyramid block transmission scheme for broadcasting in video-on-demand storage systems |
JP3305183B2 (ja) | 1996-01-12 | 2002-07-22 | 株式会社東芝 | ディジタル放送受信端末装置 |
US6012159A (en) | 1996-01-17 | 2000-01-04 | Kencast, Inc. | Method and system for error-free data transfer |
US5852565A (en) | 1996-01-30 | 1998-12-22 | Demografx | Temporal and resolution layering in advanced television |
US5936659A (en) | 1996-01-31 | 1999-08-10 | Telcordia Technologies, Inc. | Method for video delivery using pyramid broadcasting |
US5903775A (en) | 1996-06-06 | 1999-05-11 | International Business Machines Corporation | Method for the sequential transmission of compressed video information at varying data rates |
US5745504A (en) | 1996-06-25 | 1998-04-28 | Telefonaktiebolaget Lm Ericsson | Bit error resilient variable length code |
US5940863A (en) | 1996-07-26 | 1999-08-17 | Zenith Electronics Corporation | Apparatus for de-rotating and de-interleaving data including plural memory devices and plural modulo memory address generators |
US5936949A (en) | 1996-09-05 | 1999-08-10 | Netro Corporation | Wireless ATM metropolitan area network |
KR100261706B1 (ko) | 1996-12-17 | 2000-07-15 | 가나이 쓰도무 | 디지탈방송신호의 수신장치와 수신 및 기록재생장치 |
US6044485A (en) | 1997-01-03 | 2000-03-28 | Ericsson Inc. | Transmitter method and transmission system using adaptive coding based on channel characteristics |
US6141053A (en) | 1997-01-03 | 2000-10-31 | Saukkonen; Jukka I. | Method of optimizing bandwidth for transmitting compressed video data streams |
US6011590A (en) | 1997-01-03 | 2000-01-04 | Ncr Corporation | Method of transmitting compressed information to minimize buffer space |
US5946357A (en) | 1997-01-17 | 1999-08-31 | Telefonaktiebolaget L M Ericsson | Apparatus, and associated method, for transmitting and receiving a multi-stage, encoded and interleaved digital communication signal |
EP0854650A3 (en) | 1997-01-17 | 2001-05-02 | NOKIA TECHNOLOGY GmbH | Method for addressing a service in digital video broadcasting |
US5983383A (en) | 1997-01-17 | 1999-11-09 | Qualcom Incorporated | Method and apparatus for transmitting and receiving concatenated code data |
US6014706A (en) | 1997-01-30 | 2000-01-11 | Microsoft Corporation | Methods and apparatus for implementing control functions in a streamed video display system |
EP1024672A1 (en) | 1997-03-07 | 2000-08-02 | Sanyo Electric Co., Ltd. | Digital broadcast receiver and display |
US6115420A (en) | 1997-03-14 | 2000-09-05 | Microsoft Corporation | Digital video signal encoder and encoding method |
DE19716011A1 (de) | 1997-04-17 | 1998-10-22 | Abb Research Ltd | Verfahren und Vorrichtung zur Informationsübertragung über Stromversorgungsleitungen |
US6226259B1 (en) | 1997-04-29 | 2001-05-01 | Canon Kabushiki Kaisha | Device and method for transmitting information device and method for processing information |
US5970098A (en) | 1997-05-02 | 1999-10-19 | Globespan Technologies, Inc. | Multilevel encoder |
US5844636A (en) | 1997-05-13 | 1998-12-01 | Hughes Electronics Corporation | Method and apparatus for receiving and recording digital packet data |
WO1998053454A1 (fr) | 1997-05-19 | 1998-11-26 | Sanyo Electric Co., Ltd. | Modulation et demodulation numeriques |
JPH1141211A (ja) | 1997-05-19 | 1999-02-12 | Sanyo Electric Co Ltd | ディジタル変調回路と変調方法、ディジタル復調回路と復調方法 |
JP4110593B2 (ja) | 1997-05-19 | 2008-07-02 | ソニー株式会社 | 信号記録方法及び信号記録装置 |
US6128649A (en) | 1997-06-02 | 2000-10-03 | Nortel Networks Limited | Dynamic selection of media streams for display |
US6081907A (en) | 1997-06-09 | 2000-06-27 | Microsoft Corporation | Data delivery system and method for delivering data and redundant information over a unidirectional network |
US5917852A (en) | 1997-06-11 | 1999-06-29 | L-3 Communications Corporation | Data scrambling system and method and communications system incorporating same |
KR100240869B1 (ko) | 1997-06-25 | 2000-01-15 | 윤종용 | 이중 다이버서티 시스템을 위한 데이터 전송 방법 |
US6175944B1 (en) | 1997-07-15 | 2001-01-16 | Lucent Technologies Inc. | Methods and apparatus for packetizing data for transmission through an erasure broadcast channel |
US5933056A (en) | 1997-07-15 | 1999-08-03 | Exar Corporation | Single pole current mode common-mode feedback circuit |
US6047069A (en) | 1997-07-17 | 2000-04-04 | Hewlett-Packard Company | Method and apparatus for preserving error correction capabilities during data encryption/decryption |
US6904110B2 (en) | 1997-07-31 | 2005-06-07 | Francois Trans | Channel equalization system and method |
US6178536B1 (en) | 1997-08-14 | 2001-01-23 | International Business Machines Corporation | Coding scheme for file backup and systems based thereon |
FR2767940A1 (fr) | 1997-08-29 | 1999-02-26 | Canon Kk | Procedes et dispositifs de codage et de decodage et appareils les mettant en oeuvre |
EP0903955A1 (en) | 1997-09-04 | 1999-03-24 | STMicroelectronics S.r.l. | Modular architecture PET decoder for ATM networks |
US6088330A (en) | 1997-09-09 | 2000-07-11 | Bruck; Joshua | Reliable array of distributed computing nodes |
US6134596A (en) | 1997-09-18 | 2000-10-17 | Microsoft Corporation | Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates |
US6272658B1 (en) | 1997-10-27 | 2001-08-07 | Kencast, Inc. | Method and system for reliable broadcasting of data files and streams |
US6081918A (en) | 1997-11-06 | 2000-06-27 | Spielman; Daniel A. | Loss resilient code with cascading series of redundant layers |
US6195777B1 (en) | 1997-11-06 | 2001-02-27 | Compaq Computer Corporation | Loss resilient code with double heavy tailed series of redundant layers |
US6073250A (en) | 1997-11-06 | 2000-06-06 | Luby; Michael G. | Loss resilient decoding technique |
US6081909A (en) | 1997-11-06 | 2000-06-27 | Digital Equipment Corporation | Irregularly graphed encoding technique |
US6163870A (en) | 1997-11-06 | 2000-12-19 | Compaq Computer Corporation | Message encoding with irregular graphing |
JP3472115B2 (ja) | 1997-11-25 | 2003-12-02 | Kddi株式会社 | マルチチャンネルを用いるビデオデータ伝送方法及びその装置 |
US5870412A (en) | 1997-12-12 | 1999-02-09 | 3Com Corporation | Forward error correction system for packet based real time media |
US6243846B1 (en) | 1997-12-12 | 2001-06-05 | 3Com Corporation | Forward error correction system for packet based data and real time media, using cross-wise parity calculation |
US6849803B1 (en) | 1998-01-15 | 2005-02-01 | Arlington Industries, Inc. | Electrical connector |
US6097320A (en) | 1998-01-20 | 2000-08-01 | Silicon Systems, Inc. | Encoder/decoder system with suppressed error propagation |
US6226301B1 (en) | 1998-02-19 | 2001-05-01 | Nokia Mobile Phones Ltd | Method and apparatus for segmentation and assembly of data frames for retransmission in a telecommunications system |
US6141788A (en) | 1998-03-13 | 2000-10-31 | Lucent Technologies Inc. | Method and apparatus for forward error correction in packet networks |
US6278716B1 (en) | 1998-03-23 | 2001-08-21 | University Of Massachusetts | Multicast with proactive forward error correction |
WO1999052282A1 (en) | 1998-04-02 | 1999-10-14 | Sarnoff Corporation | Bursty data transmission of compressed video data |
US6185265B1 (en) | 1998-04-07 | 2001-02-06 | Worldspace Management Corp. | System for time division multiplexing broadcast channels with R-1/2 or R-3/4 convolutional coding for satellite transmission via on-board baseband processing payload or transparent payload |
US6067646A (en) | 1998-04-17 | 2000-05-23 | Ameritech Corporation | Method and system for adaptive interleaving |
US6018359A (en) | 1998-04-24 | 2000-01-25 | Massachusetts Institute Of Technology | System and method for multicast video-on-demand delivery system |
US6445717B1 (en) | 1998-05-01 | 2002-09-03 | Niwot Networks, Inc. | System for recovering lost information in a data stream |
US6421387B1 (en) | 1998-05-15 | 2002-07-16 | North Carolina State University | Methods and systems for forward error correction based loss recovery for interactive video transmission |
US6937618B1 (en) | 1998-05-20 | 2005-08-30 | Sony Corporation | Separating device and method and signal receiving device and method |
US6333926B1 (en) | 1998-08-11 | 2001-12-25 | Nortel Networks Limited | Multiple user CDMA basestation modem |
BR9913277A (pt) | 1998-09-04 | 2001-09-25 | At & T Corp | Codificação de bloco-espaço e codificação de canal combinado em um arranjo de multi-antenas |
US6415326B1 (en) | 1998-09-15 | 2002-07-02 | Microsoft Corporation | Timeline correlation between multiple timeline-altered media streams |
US6320520B1 (en) | 1998-09-23 | 2001-11-20 | Digital Fountain | Information additive group code generator and decoder for communications systems |
US7243285B2 (en) | 1998-09-23 | 2007-07-10 | Digital Fountain, Inc. | Systems and methods for broadcasting information additive codes |
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 |
US6704370B1 (en) | 1998-10-09 | 2004-03-09 | Nortel Networks Limited | Interleaving methodology and apparatus for CDMA |
IT1303735B1 (it) | 1998-11-11 | 2001-02-23 | Falorni Italia Farmaceutici S | Acidi ialuronici reticolati e loro usi medici. |
US6408128B1 (en) | 1998-11-12 | 2002-06-18 | Max Abecassis | Replaying with supplementary information a segment of a video |
US6483736B2 (en) | 1998-11-16 | 2002-11-19 | Matrix Semiconductor, Inc. | Vertically stacked field programmable nonvolatile memory and method of fabrication |
JP2000151426A (ja) | 1998-11-17 | 2000-05-30 | Toshiba Corp | インターリーブ・デインターリーブ回路 |
US6166544A (en) | 1998-11-25 | 2000-12-26 | General Electric Company | MR imaging system with interactive image contrast control |
US6876623B1 (en) | 1998-12-02 | 2005-04-05 | Agere Systems Inc. | Tuning scheme for code division multiplex broadcasting system |
US6314289B1 (en) | 1998-12-03 | 2001-11-06 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Apparatus and method for transmitting information and apparatus and method for receiving information |
US6637031B1 (en) | 1998-12-04 | 2003-10-21 | Microsoft Corporation | Multimedia presentation latency minimization |
US6496980B1 (en) | 1998-12-07 | 2002-12-17 | Intel Corporation | Method of providing replay on demand for streaming digital multimedia |
US6223324B1 (en) | 1999-01-05 | 2001-04-24 | Agere Systems Guardian Corp. | Multiple program unequal error protection for digital audio broadcasting and other applications |
JP3926499B2 (ja) | 1999-01-22 | 2007-06-06 | 株式会社日立国際電気 | 畳み込み符号軟判定復号方式の受信装置 |
US6618451B1 (en) * | 1999-02-13 | 2003-09-09 | Altocom Inc | Efficient reduced state maximum likelihood sequence estimator |
US6041001A (en) | 1999-02-25 | 2000-03-21 | Lexar Media, Inc. | Method of increasing data reliability of a flash memory device without compromising compatibility |
KR20010043284A (ko) | 1999-03-03 | 2001-05-25 | 이데이 노부유끼 | 송신 장치, 수신 장치, 송수신 시스템, 송신 방법 및 수신방법 |
US6785323B1 (en) | 1999-11-22 | 2004-08-31 | Ipr Licensing, Inc. | Variable rate coding for forward link |
US6466698B1 (en) | 1999-03-25 | 2002-10-15 | The United States Of America As Represented By The Secretary Of The Navy | Efficient embedded image and video compression system using lifted wavelets |
US6535920B1 (en) | 1999-04-06 | 2003-03-18 | Microsoft Corporation | Analyzing, indexing and seeking of streaming information |
JP3256517B2 (ja) | 1999-04-06 | 2002-02-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 符号化回路、回路、パリティ生成方法及び記憶媒体 |
US6609223B1 (en) | 1999-04-06 | 2003-08-19 | Kencast, Inc. | Method for packet-level fec encoding, in which on a source packet-by-source packet basis, the error correction contributions of a source packet to a plurality of wildcard packets are computed, and the source packet is transmitted thereafter |
US6804202B1 (en) | 1999-04-08 | 2004-10-12 | Lg Information And Communications, Ltd. | Radio protocol for mobile communication system and method |
US7885340B2 (en) | 1999-04-27 | 2011-02-08 | Realnetworks, Inc. | System and method for generating multiple synchronized encoded representations of media data |
FI113124B (fi) | 1999-04-29 | 2004-02-27 | Nokia Corp | Tiedonsiirto |
EP1051027B1 (en) | 1999-05-06 | 2006-05-24 | Sony Corporation | Methods and apparatus for data processing, methods and apparatus for data reproducing and recording media |
KR100416996B1 (ko) | 1999-05-10 | 2004-02-05 | 삼성전자주식회사 | 이동 통신시스템에서 라디오링크프로토콜에 따른 가변 길이의 데이터 송수신 장치 및 방법 |
AU5140200A (en) | 1999-05-26 | 2000-12-18 | Enounce, Incorporated | Method and apparatus for controlling time-scale modification during multi-media broadcasts |
US6154452A (en) | 1999-05-26 | 2000-11-28 | Xm Satellite Radio Inc. | Method and apparatus for continuous cross-channel interleaving |
US6229824B1 (en) | 1999-05-26 | 2001-05-08 | Xm Satellite Radio Inc. | Method and apparatus for concatenated convolutional endcoding and interleaving |
JP2000353969A (ja) | 1999-06-11 | 2000-12-19 | Sony Corp | デジタル音声放送の受信機 |
US6577599B1 (en) | 1999-06-30 | 2003-06-10 | Sun Microsystems, Inc. | Small-scale reliable multicasting |
IL141800A0 (en) | 1999-07-06 | 2002-03-10 | Samsung Electronics Co Ltd | Rate matching device and method for a data communication system |
US6643332B1 (en) | 1999-07-09 | 2003-11-04 | Lsi Logic Corporation | Method and apparatus for multi-level coding of digital signals |
US6279072B1 (en) | 1999-07-22 | 2001-08-21 | Micron Technology, Inc. | Reconfigurable memory with selectable error correction storage |
JP3451221B2 (ja) | 1999-07-22 | 2003-09-29 | 日本無線株式会社 | 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体 |
US6453440B1 (en) | 1999-08-04 | 2002-09-17 | Sun Microsystems, Inc. | System and method for detecting double-bit errors and for correcting errors due to component failures |
JP2001060934A (ja) | 1999-08-20 | 2001-03-06 | Matsushita Electric Ind Co Ltd | Ofdm通信装置 |
US6430233B1 (en) | 1999-08-30 | 2002-08-06 | Hughes Electronics Corporation | Single-LNB satellite data receiver |
US6332163B1 (en) | 1999-09-01 | 2001-12-18 | Accenture, Llp | Method for providing communication services over a computer network system |
JP4284774B2 (ja) | 1999-09-07 | 2009-06-24 | ソニー株式会社 | 送信装置、受信装置、通信システム、送信方法及び通信方法 |
JP2001094625A (ja) | 1999-09-27 | 2001-04-06 | Canon Inc | データ通信装置、データ通信方法及び記憶媒体 |
US7529806B1 (en) | 1999-11-04 | 2009-05-05 | Koninklijke Philips Electronics N.V. | Partitioning of MP3 content file for emulating streaming |
CN1201541C (zh) | 1999-09-27 | 2005-05-11 | 皇家菲利浦电子有限公司 | 仿真流的文件分区 |
US20050160272A1 (en) | 1999-10-28 | 2005-07-21 | Timecertain, Llc | System and method for providing trusted time in content of digital data files |
US6523147B1 (en) | 1999-11-11 | 2003-02-18 | Ibiquity Digital Corporation | Method and apparatus for forward error correction coding for an AM in-band on-channel digital audio broadcasting system |
US6748441B1 (en) | 1999-12-02 | 2004-06-08 | Microsoft Corporation | Data carousel receiving and caching |
US6678855B1 (en) | 1999-12-02 | 2004-01-13 | Microsoft Corporation | Selecting K in a data transmission carousel using (N,K) forward error correction |
US6798791B1 (en) | 1999-12-16 | 2004-09-28 | Agere Systems Inc | Cluster frame synchronization scheme for a satellite digital audio radio system |
US6487692B1 (en) | 1999-12-21 | 2002-11-26 | Lsi Logic Corporation | Reed-Solomon decoder |
US20020009137A1 (en) | 2000-02-01 | 2002-01-24 | Nelson John E. | Three-dimensional video broadcasting system |
US6965636B1 (en) | 2000-02-01 | 2005-11-15 | 2Wire, Inc. | System and method for block error correction in packet-based digital communications |
IL140504A0 (en) | 2000-02-03 | 2002-02-10 | Bandwiz Inc | Broadcast system |
US7304990B2 (en) | 2000-02-03 | 2007-12-04 | Bandwiz Inc. | Method of encoding and transmitting data over a communication medium through division and segmentation |
WO2001057667A1 (en) | 2000-02-03 | 2001-08-09 | Bandwiz, Inc. | Data streaming |
JP2001251287A (ja) | 2000-02-24 | 2001-09-14 | Geneticware Corp Ltd | ハードウエア保護内部秘匿鍵及び可変パスコードを利用する機密データ伝送方法 |
DE10009443A1 (de) | 2000-02-29 | 2001-08-30 | Philips Corp Intellectual Pty | Empfänger und Verfahren zum Detektieren und Dekodieren eines DQPSK-modulierten und kanalkodierten Empfangssignals |
US6765866B1 (en) | 2000-02-29 | 2004-07-20 | Mosaid Technologies, Inc. | Link aggregation |
US6384750B1 (en) | 2000-03-23 | 2002-05-07 | Mosaid Technologies, Inc. | Multi-stage lookup for translating between signals of different bit lengths |
JP2001274776A (ja) | 2000-03-24 | 2001-10-05 | Toshiba Corp | 情報データ伝送システムとその送信装置及び受信装置 |
US6510177B1 (en) | 2000-03-24 | 2003-01-21 | Microsoft Corporation | System and method for layered video coding enhancement |
AU2001244007A1 (en) | 2000-03-31 | 2001-10-15 | Ted Szymanski | Transmitter, receiver, and coding scheme to increase data rate and decrease bit error rate of an optical data link |
US6473010B1 (en) | 2000-04-04 | 2002-10-29 | Marvell International, Ltd. | Method and apparatus for determining error correction code failure rate for iterative decoding algorithms |
US8572646B2 (en) | 2000-04-07 | 2013-10-29 | Visible World Inc. | System and method for simultaneous broadcast for personalized messages |
US7073191B2 (en) | 2000-04-08 | 2006-07-04 | Sun Microsystems, Inc | Streaming a single media track to multiple clients |
US6631172B1 (en) | 2000-05-01 | 2003-10-07 | Lucent Technologies Inc. | Efficient list decoding of Reed-Solomon codes for message recovery in the presence of high noise levels |
US6742154B1 (en) | 2000-05-25 | 2004-05-25 | Ciena Corporation | Forward error correction codes for digital optical network optimization |
US6694476B1 (en) | 2000-06-02 | 2004-02-17 | Vitesse Semiconductor Corporation | Reed-solomon encoder and decoder |
US6738942B1 (en) | 2000-06-02 | 2004-05-18 | Vitesse Semiconductor Corporation | Product code based forward error correction system |
GB2366159B (en) | 2000-08-10 | 2003-10-08 | Mitel Corp | Combination reed-solomon and turbo coding |
US6834342B2 (en) | 2000-08-16 | 2004-12-21 | Eecad, Inc. | Method and system for secure communication over unstable public connections |
KR100447162B1 (ko) | 2000-08-19 | 2004-09-04 | 엘지전자 주식회사 | 래디오 링크 콘트롤(rlc)에서 프로토콜 데이터 유닛(pdu) 정보의 길이 지시자(li) 처리방법 |
JP2002073625A (ja) | 2000-08-24 | 2002-03-12 | Nippon Hoso Kyokai <Nhk> | 放送番組に同期した情報提供の方法、サーバ及び媒体 |
US7340664B2 (en) | 2000-09-20 | 2008-03-04 | Lsi Logic Corporation | Single engine turbo decoder with single frame size buffer for interleaving/deinterleaving |
US7031257B1 (en) | 2000-09-22 | 2006-04-18 | Lucent Technologies Inc. | Radio link protocol (RLP)/point-to-point protocol (PPP) design that passes corrupted data and error location information among layers in a wireless data transmission protocol |
US7151754B1 (en) | 2000-09-22 | 2006-12-19 | Lucent Technologies Inc. | Complete user datagram protocol (CUDP) for wireless multimedia packet networks using improved packet level forward error correction (FEC) coding |
US6486803B1 (en) | 2000-09-22 | 2002-11-26 | Digital Fountain, Inc. | On demand encoding with a window |
US7490344B2 (en) | 2000-09-29 | 2009-02-10 | Visible World, Inc. | System and method for seamless switching |
US6411223B1 (en) * | 2000-10-18 | 2002-06-25 | Digital Fountain, Inc. | Generating high weight encoding symbols using a basis |
US7613183B1 (en) | 2000-10-31 | 2009-11-03 | Foundry Networks, Inc. | System and method for router data aggregation and delivery |
US6694478B1 (en) | 2000-11-07 | 2004-02-17 | Agere Systems Inc. | Low delay channel codes for correcting bursts of lost packets |
US6732325B1 (en) | 2000-11-08 | 2004-05-04 | Digeo, Inc. | Error-correction with limited working storage |
US20020133247A1 (en) | 2000-11-11 | 2002-09-19 | Smith Robert D. | System and method for seamlessly switching between media streams |
US7072971B2 (en) | 2000-11-13 | 2006-07-04 | Digital Foundation, Inc. | Scheduling of multiple files for serving on a server |
US7240358B2 (en) | 2000-12-08 | 2007-07-03 | Digital Fountain, Inc. | Methods and apparatus for scheduling, serving, receiving media-on demand for clients, servers arranged according to constraints on resources |
US7447791B2 (en) | 2000-12-15 | 2008-11-04 | British Telecommunications Public Limited Company | Transmission and reception of audio and/or video material |
WO2002049343A1 (en) | 2000-12-15 | 2002-06-20 | British Telecommunications Public Limited Company | Transmission and reception of audio and/or video material |
US6850736B2 (en) | 2000-12-21 | 2005-02-01 | Tropian, Inc. | Method and apparatus for reception quality indication in wireless communication |
US7143433B1 (en) | 2000-12-27 | 2006-11-28 | Infovalve Computing Inc. | Video distribution system using dynamic segmenting of video data files |
US20020085013A1 (en) | 2000-12-29 | 2002-07-04 | Lippincott Louis A. | Scan synchronized dual frame buffer graphics subsystem |
NO315887B1 (no) | 2001-01-04 | 2003-11-03 | Fast Search & Transfer As | Fremgangsmater ved overforing og soking av videoinformasjon |
US20080059532A1 (en) | 2001-01-18 | 2008-03-06 | Kazmi Syed N | Method and system for managing digital content, including streaming media |
DE10103387A1 (de) * | 2001-01-26 | 2002-08-01 | Thorsten Nordhoff | Windkraftanlage mit einer Einrichtung zur Hindernisbefeuerung bzw. Nachtkennzeichnung |
FI118830B (fi) | 2001-02-08 | 2008-03-31 | Nokia Corp | Tietovirran toisto |
US6868083B2 (en) | 2001-02-16 | 2005-03-15 | Hewlett-Packard Development Company, L.P. | Method and system for packet communication employing path diversity |
US20020129159A1 (en) | 2001-03-09 | 2002-09-12 | Michael Luby | Multi-output packet server with independent streams |
US6618541B2 (en) * | 2001-03-14 | 2003-09-09 | Zygo Corporation | Fiber array fabrication |
KR100464360B1 (ko) | 2001-03-30 | 2005-01-03 | 삼성전자주식회사 | 고속 패킷 데이터 전송 이동통신시스템에서 패킷 데이터채널에 대한 효율적인 에너지 분배 장치 및 방법 |
US20020143953A1 (en) | 2001-04-03 | 2002-10-03 | International Business Machines Corporation | Automatic affinity within networks performing workload balancing |
US6785836B2 (en) | 2001-04-11 | 2004-08-31 | Broadcom Corporation | In-place data transformation for fault-tolerant disk storage systems |
US6820221B2 (en) | 2001-04-13 | 2004-11-16 | Hewlett-Packard Development Company, L.P. | System and method for detecting process and network failures in a distributed system |
US7010052B2 (en) | 2001-04-16 | 2006-03-07 | The Ohio University | Apparatus and method of CTCM encoding and decoding for a digital communication system |
US7035468B2 (en) | 2001-04-20 | 2006-04-25 | Front Porch Digital Inc. | Methods and apparatus for archiving, indexing and accessing audio and video data |
TWI246841B (en) | 2001-04-22 | 2006-01-01 | Koninkl Philips Electronics Nv | Digital transmission system and method for transmitting digital signals |
US20020191116A1 (en) | 2001-04-24 | 2002-12-19 | Damien Kessler | System and data format for providing seamless stream switching in a digital video recorder |
US6497479B1 (en) | 2001-04-27 | 2002-12-24 | Hewlett-Packard Company | Higher organic inks with good reliability and drytime |
US7962482B2 (en) | 2001-05-16 | 2011-06-14 | Pandora Media, Inc. | Methods and systems for utilizing contextual feedback to generate and modify playlists |
US6633856B2 (en) | 2001-06-15 | 2003-10-14 | Flarion Technologies, Inc. | Methods and apparatus for decoding LDPC codes |
US7076478B2 (en) | 2001-06-26 | 2006-07-11 | Microsoft Corporation | Wrapper playlists on streaming media services |
US6745364B2 (en) | 2001-06-28 | 2004-06-01 | Microsoft Corporation | Negotiated/dynamic error correction for streamed media |
JP2003018568A (ja) | 2001-06-29 | 2003-01-17 | Matsushita Electric Ind Co Ltd | 再生システム、サーバ装置及び再生装置 |
US6895547B2 (en) | 2001-07-11 | 2005-05-17 | International Business Machines Corporation | Method and apparatus for low density parity check encoding of data |
US6928603B1 (en) | 2001-07-19 | 2005-08-09 | Adaptix, Inc. | System and method for interference mitigation using adaptive forward error correction in a wireless RF data transmission system |
US6961890B2 (en) | 2001-08-16 | 2005-11-01 | Hewlett-Packard Development Company, L.P. | Dynamic variable-length error correction code |
US7110412B2 (en) | 2001-09-18 | 2006-09-19 | Sbc Technology Resources, Inc. | Method and system to transport high-quality video signals |
FI115418B (fi) | 2001-09-20 | 2005-04-29 | Oplayo Oy | Adaptiivinen mediavirta |
US6990624B2 (en) | 2001-10-12 | 2006-01-24 | Agere Systems Inc. | High speed syndrome-based FEC encoder and decoder and system using same |
US7480703B2 (en) | 2001-11-09 | 2009-01-20 | Sony Corporation | System, method, and computer program product for remotely determining the configuration of a multi-media content user based on response of the user |
US7363354B2 (en) | 2001-11-29 | 2008-04-22 | Nokia Corporation | System and method for identifying and accessing network services |
US7003712B2 (en) | 2001-11-29 | 2006-02-21 | Emin Martinian | Apparatus and method for adaptive, multimode decoding |
JP2003174489A (ja) | 2001-12-05 | 2003-06-20 | Ntt Docomo Inc | ストリーミング配信装置、ストリーミング配信方法 |
FI114527B (fi) | 2002-01-23 | 2004-10-29 | Nokia Corp | Kuvakehysten ryhmittely videokoodauksessa |
RU2297729C2 (ru) | 2002-01-23 | 2007-04-20 | Нокиа Корпорейшн | Группирование кадров изображения на видеокодировании |
EP1472847A1 (en) | 2002-01-30 | 2004-11-03 | Koninklijke Philips Electronics N.V. | Streaming multimedia data over a network having a variable bandwidth |
US7249291B2 (en) | 2002-02-15 | 2007-07-24 | Digital Fountain, Inc. | System and method for reliably communicating the content of a live data stream |
JP4126928B2 (ja) | 2002-02-28 | 2008-07-30 | 日本電気株式会社 | プロキシサーバ及びプロキシ制御プログラム |
JP4116470B2 (ja) | 2002-03-06 | 2008-07-09 | ヒューレット・パッカード・カンパニー | メディア・ストリーミング配信システム |
FR2837332A1 (fr) | 2002-03-15 | 2003-09-19 | Thomson Licensing Sa | Dispositif et procede d'insertion de codes de correction d'erreurs et de reconstitution de flux de donnees, et produits correspondants |
WO2003090391A1 (en) | 2002-04-15 | 2003-10-30 | Nokia Corporation | Rlp logical layer of a communication station |
US6677864B2 (en) | 2002-04-18 | 2004-01-13 | Telefonaktiebolaget L.M. Ericsson | Method for multicast over wireless networks |
JP3629008B2 (ja) | 2002-04-19 | 2005-03-16 | 松下電器産業株式会社 | データ受信装置及びデータ配信システム |
JP3689063B2 (ja) | 2002-04-19 | 2005-08-31 | 松下電器産業株式会社 | データ受信装置及びデータ配信システム |
US7529400B2 (en) | 2002-04-25 | 2009-05-05 | Sharp Kabushiki Kaisha | Image encoder, image decoder, record medium, and image recorder |
US20030204602A1 (en) | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
US7177658B2 (en) | 2002-05-06 | 2007-02-13 | Qualcomm, Incorporated | Multi-media broadcast and multicast service (MBMS) in a wireless communications system |
US7200388B2 (en) | 2002-05-31 | 2007-04-03 | Nokia Corporation | Fragmented delivery of multimedia |
US9240810B2 (en) | 2002-06-11 | 2016-01-19 | Digital Fountain, Inc. | Systems and processes for decoding chain reaction codes through inactivation |
ES2459065T3 (es) * | 2002-06-11 | 2014-05-07 | Digital Fountain, Inc. | Descodificación de códigos de reacción en cadena por inactivación |
WO2003105484A1 (en) | 2002-06-11 | 2003-12-18 | Telefonaktiebolaget L M Ericsson (Publ) | Generation of mixed media streams |
US6956875B2 (en) | 2002-06-19 | 2005-10-18 | Atlinks Usa, Inc. | Technique for communicating variable bit rate data over a constant bit rate link |
JP4154569B2 (ja) | 2002-07-10 | 2008-09-24 | 日本電気株式会社 | 画像圧縮伸長装置 |
JP4120461B2 (ja) | 2002-07-12 | 2008-07-16 | 住友電気工業株式会社 | 伝送データ生成方法及び伝送データ生成装置 |
EP1547382A4 (en) | 2002-07-16 | 2013-10-30 | Nokia Corp | METHOD FOR DIRECT ACCESS AND UNIQUE IMAGE REFRESHING IN VIDEO CODING |
CN1685639A (zh) | 2002-07-31 | 2005-10-19 | 夏普株式会社 | 数据通信装置、其间歇通信方法、记载该方法的计算机程序及记录该计算机程序的记录介质 |
JP2004070712A (ja) | 2002-08-07 | 2004-03-04 | Nippon Telegr & Teleph Corp <Ntt> | データ配信方法,データ配信システム,分割配信データ受信方法,分割配信データ受信装置および分割配信データ受信プログラム |
JP2005536097A (ja) | 2002-08-13 | 2005-11-24 | ノキア コーポレイション | 記号インターリービング |
US6985459B2 (en) | 2002-08-21 | 2006-01-10 | Qualcomm Incorporated | Early transmission and playout of packets in wireless communication systems |
JP3836858B2 (ja) | 2002-09-27 | 2006-10-25 | 富士通株式会社 | データ配信方法、システム、伝送方法及びプログラム |
JP3534742B1 (ja) | 2002-10-03 | 2004-06-07 | 株式会社エヌ・ティ・ティ・ドコモ | 動画像復号方法、動画像復号装置、及び動画像復号プログラム |
CN100539439C (zh) | 2002-10-05 | 2009-09-09 | 数字方敦股份有限公司 | 连锁反应码的系统编码和解码系统和方法 |
JP2004135013A (ja) | 2002-10-10 | 2004-04-30 | Matsushita Electric Ind Co Ltd | 伝送装置及び伝送方法 |
FI116816B (fi) | 2002-10-14 | 2006-02-28 | Nokia Corp | Median suoratoisto |
US8320301B2 (en) | 2002-10-25 | 2012-11-27 | Qualcomm Incorporated | MIMO WLAN system |
US7289451B2 (en) | 2002-10-25 | 2007-10-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Delay trading between communication links |
JP4460455B2 (ja) | 2002-10-30 | 2010-05-12 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 適応的順方向誤り制御スキーム |
JP2004165922A (ja) | 2002-11-12 | 2004-06-10 | Sony Corp | 情報処理装置および方法、並びにプログラム |
DE60323860D1 (de) | 2002-11-18 | 2008-11-13 | British Telecomm | Videoübertragung |
GB0226872D0 (en) | 2002-11-18 | 2002-12-24 | British Telecomm | Video transmission |
KR100502609B1 (ko) | 2002-11-21 | 2005-07-20 | 한국전자통신연구원 | Ldpc 코드를 이용한 부호화기 및 부호화 방법 |
US7086718B2 (en) | 2002-11-23 | 2006-08-08 | Silverbrook Research Pty Ltd | Thermal ink jet printhead with high nozzle areal density |
JP2004192140A (ja) | 2002-12-09 | 2004-07-08 | Sony Corp | データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム |
JP2004193992A (ja) | 2002-12-11 | 2004-07-08 | Sony Corp | 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム |
US8135073B2 (en) | 2002-12-19 | 2012-03-13 | Trident Microsystems (Far East) Ltd | Enhancing video images depending on prior image enhancements |
US7164882B2 (en) | 2002-12-24 | 2007-01-16 | Poltorak Alexander I | Apparatus and method for facilitating a purchase using information provided on a media playing device |
US7293222B2 (en) * | 2003-01-29 | 2007-11-06 | Digital Fountain, Inc. | Systems and processes for fast encoding of hamming codes |
US7525994B2 (en) | 2003-01-30 | 2009-04-28 | Avaya Inc. | Packet data flow identification for multiplexing |
US7756002B2 (en) | 2003-01-30 | 2010-07-13 | Texas Instruments Incorporated | Time-frequency interleaved orthogonal frequency division multiplexing ultra wide band physical layer |
US7231404B2 (en) | 2003-01-31 | 2007-06-12 | Nokia Corporation | Datacast file transmission with meta-data retention |
US7062272B2 (en) | 2003-02-18 | 2006-06-13 | Qualcomm Incorporated | Method and apparatus to track count of broadcast content recipients in a wireless telephone network |
EP1455504B1 (en) | 2003-03-07 | 2014-11-12 | Samsung Electronics Co., Ltd. | Apparatus and method for processing audio signal and computer readable recording medium storing computer program for the method |
JP4173755B2 (ja) | 2003-03-24 | 2008-10-29 | 富士通株式会社 | データ伝送サーバ |
US7610487B2 (en) | 2003-03-27 | 2009-10-27 | Microsoft Corporation | Human input security codes |
US7266147B2 (en) | 2003-03-31 | 2007-09-04 | Sharp Laboratories Of America, Inc. | Hypothetical reference decoder |
US7408486B2 (en) | 2003-04-21 | 2008-08-05 | Qbit Corporation | System and method for using a microlet-based modem |
JP2004343701A (ja) | 2003-04-21 | 2004-12-02 | Matsushita Electric Ind Co Ltd | データ受信再生装置、データ受信再生方法及びデータ受信再生処理プログラム |
US20050041736A1 (en) | 2003-05-07 | 2005-02-24 | Bernie Butler-Smith | Stereoscopic television signal processing method, transmission system and viewer enhancements |
KR100492567B1 (ko) | 2003-05-13 | 2005-06-03 | 엘지전자 주식회사 | 이동통신 시스템의 http 기반 비디오 스트리밍 장치및 방법 |
US7113773B2 (en) | 2003-05-16 | 2006-09-26 | Qualcomm Incorporated | Reliable reception of broadcast/multicast content |
JP2004348824A (ja) | 2003-05-21 | 2004-12-09 | Toshiba Corp | Eccエンコード方法、eccエンコード装置 |
US8161116B2 (en) | 2003-05-23 | 2012-04-17 | Kirusa, Inc. | Method and system for communicating a data file over a network |
JP2004362099A (ja) | 2003-06-03 | 2004-12-24 | Sony Corp | サーバ装置、情報処理装置、および情報処理方法、並びにコンピュータ・プログラム |
EP1631918A4 (en) | 2003-06-07 | 2006-09-20 | Samsung Electronics Co Ltd | DEVICE AND METHOD FOR ORGANIZING AND INTERPRETING MULTIMEDIA DATA ON A RECORDING MEDIUM |
KR101003413B1 (ko) | 2003-06-12 | 2010-12-23 | 엘지전자 주식회사 | 이동통신 단말기의 전송데이터 압축/해제 방법 |
US7603689B2 (en) | 2003-06-13 | 2009-10-13 | Microsoft Corporation | Fast start-up for digital video streams |
RU2265960C2 (ru) | 2003-06-16 | 2005-12-10 | Федеральное государственное унитарное предприятие "Калужский научно-исследовательский институт телемеханических устройств" | Способ передачи информации с использованием адаптивного перемежения |
US7391717B2 (en) | 2003-06-30 | 2008-06-24 | Microsoft Corporation | Streaming of variable bit rate multimedia content |
US20050004997A1 (en) | 2003-07-01 | 2005-01-06 | Nokia Corporation | Progressive downloading of timed multimedia content |
US8149939B2 (en) | 2003-07-07 | 2012-04-03 | Samsung Electronics Co., Ltd. | System of robust DTV signal transmissions that legacy DTV receivers will disregard |
US7254754B2 (en) | 2003-07-14 | 2007-08-07 | International Business Machines Corporation | Raid 3+3 |
KR100532450B1 (ko) | 2003-07-16 | 2005-11-30 | 삼성전자주식회사 | 에러에 대해 강인한 특성을 가지는 데이터 기록 방법,이에 적합한 데이터 재생 방법, 그리고 이에 적합한 장치들 |
US20050028067A1 (en) | 2003-07-31 | 2005-02-03 | Weirauch Charles R. | Data with multiple sets of error correction codes |
US8694869B2 (en) | 2003-08-21 | 2014-04-08 | QUALCIMM Incorporated | Methods for forward error correction coding above a radio link control layer and related apparatus |
CN1871804B (zh) | 2003-08-21 | 2010-09-01 | 高通股份有限公司 | 广播/多播内容的外部编码方法及其相关装置 |
IL157886A0 (en) | 2003-09-11 | 2009-02-11 | Bamboo Mediacasting Ltd | Secure multicast transmission |
IL157885A0 (en) | 2003-09-11 | 2004-03-28 | Bamboo Mediacasting Ltd | Iterative forward error correction |
JP4183586B2 (ja) | 2003-09-12 | 2008-11-19 | 三洋電機株式会社 | 映像表示装置 |
JP4988346B2 (ja) | 2003-09-15 | 2012-08-01 | ザ・ディレクティービー・グループ・インコーポレイテッド | ビデオネットワークにおける適応トランスコーディング及び速度変換のための方法及びシステム |
KR100608715B1 (ko) | 2003-09-27 | 2006-08-04 | 엘지전자 주식회사 | QoS보장형 멀티미디어 스트리밍 서비스 시스템 및 방법 |
DE60307852D1 (de) | 2003-09-30 | 2006-10-05 | Ericsson Telefon Ab L M | In-place Entschachtelung von Daten |
US7559004B1 (en) | 2003-10-01 | 2009-07-07 | Sandisk Corporation | Dynamic redundant area configuration in a non-volatile memory system |
KR101170629B1 (ko) | 2003-10-06 | 2012-08-02 | 디지털 파운튼, 인크. | 단일 송신기 또는 다중 송신기를 갖는 통신 시스템의 에러 정정 다중-스테이지 코드 생성기 및 디코더 |
US7516232B2 (en) | 2003-10-10 | 2009-04-07 | Microsoft Corporation | Media organization for distributed sending of media data |
US7614071B2 (en) | 2003-10-10 | 2009-11-03 | Microsoft Corporation | Architecture for distributed sending of media data |
DE602004028849D1 (de) | 2003-10-14 | 2010-10-07 | Panasonic Corp | Datenumsetzer |
US7650036B2 (en) | 2003-10-16 | 2010-01-19 | Sharp Laboratories Of America, Inc. | System and method for three-dimensional video coding |
US7168030B2 (en) | 2003-10-17 | 2007-01-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Turbo code decoder with parity information update |
EP1528808A3 (en) | 2003-10-27 | 2008-03-26 | Matsushita Electric Industrial Co., Ltd. | Apparatus for receiving a broadcast signal |
JP2005136546A (ja) | 2003-10-29 | 2005-05-26 | Sony Corp | 送信装置および方法、記録媒体、並びにプログラム |
EP1528702B1 (en) | 2003-11-03 | 2008-01-23 | Broadcom Corporation | FEC (forward error correction) decoding with dynamic parameters |
US20050102371A1 (en) | 2003-11-07 | 2005-05-12 | Emre Aksu | Streaming from a server to a client |
CN100505552C (zh) | 2003-12-01 | 2009-06-24 | 数字方敦股份有限公司 | 使用基于子码元的代码来保护数据不被删除 |
US7428669B2 (en) | 2003-12-07 | 2008-09-23 | Adaptive Spectrum And Signal Alignment, Inc. | Adaptive FEC codeword management |
US7574706B2 (en) | 2003-12-15 | 2009-08-11 | Microsoft Corporation | System and method for managing and communicating software updates |
US7590118B2 (en) | 2003-12-23 | 2009-09-15 | Agere Systems Inc. | Frame aggregation format |
JP4536383B2 (ja) | 2004-01-16 | 2010-09-01 | 株式会社エヌ・ティ・ティ・ドコモ | データ受信装置およびデータ受信方法 |
KR100834750B1 (ko) | 2004-01-29 | 2008-06-05 | 삼성전자주식회사 | 엔코더 단에서 스케일러빌리티를 제공하는 스케일러블비디오 코딩 장치 및 방법 |
JP4321284B2 (ja) | 2004-02-03 | 2009-08-26 | 株式会社デンソー | ストリーミングデータ送信装置、および情報配信システム |
US7599294B2 (en) | 2004-02-13 | 2009-10-06 | Nokia Corporation | Identification and re-transmission of missing parts |
KR100586883B1 (ko) | 2004-03-04 | 2006-06-08 | 삼성전자주식회사 | 비디오 스트리밍 서비스를 위한 비디오 코딩방법, 프리디코딩방법, 비디오 디코딩방법, 및 이를 위한 장치와, 이미지 필터링방법 |
KR100596705B1 (ko) | 2004-03-04 | 2006-07-04 | 삼성전자주식회사 | 비디오 스트리밍 서비스를 위한 비디오 코딩 방법과 비디오 인코딩 시스템, 및 비디오 디코딩 방법과 비디오 디코딩 시스템 |
US7609653B2 (en) | 2004-03-08 | 2009-10-27 | Microsoft Corporation | Resolving partial media topologies |
US20050207392A1 (en) | 2004-03-19 | 2005-09-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Higher layer packet framing using RLP |
US7240236B2 (en) | 2004-03-23 | 2007-07-03 | Archivas, Inc. | Fixed content distributed data storage using permutation ring encoding |
JP4433287B2 (ja) | 2004-03-25 | 2010-03-17 | ソニー株式会社 | 受信装置および方法、並びにプログラム |
US8842175B2 (en) | 2004-03-26 | 2014-09-23 | Broadcom Corporation | Anticipatory video signal reception and processing |
US20050216472A1 (en) | 2004-03-29 | 2005-09-29 | David Leon | Efficient multicast/broadcast distribution of formatted data |
KR20070007810A (ko) | 2004-03-30 | 2007-01-16 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 디스크 기반 멀티미디어 콘텐츠에 대한 개선된 트릭 모드수행을 지원하는 시스템 및 방법 |
TW200534875A (en) | 2004-04-23 | 2005-11-01 | Lonza Ag | Personal care compositions and concentrates for making the same |
FR2869744A1 (fr) | 2004-04-29 | 2005-11-04 | Thomson Licensing Sa | Methode de transmission de paquets de donnees numeriques et appareil implementant la methode |
KR101205758B1 (ko) | 2004-05-07 | 2012-12-03 | 디지털 파운튼, 인크. | 파일 다운로드 및 스트리밍 시스템 |
US7633970B2 (en) | 2004-05-07 | 2009-12-15 | Agere Systems Inc. | MAC header compression for use with frame aggregation |
US20050254575A1 (en) | 2004-05-12 | 2005-11-17 | Nokia Corporation | Multiple interoperability points for scalable media coding and transmission |
US20060037057A1 (en) | 2004-05-24 | 2006-02-16 | Sharp Laboratories Of America, Inc. | Method and system of enabling trick play modes using HTTP GET |
US8331445B2 (en) | 2004-06-01 | 2012-12-11 | Qualcomm Incorporated | Method, apparatus, and system for enhancing robustness of predictive video codecs using a side-channel based on distributed source coding techniques |
US20070110074A1 (en) | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US7139660B2 (en) | 2004-07-14 | 2006-11-21 | General Motors Corporation | System and method for changing motor vehicle personalization settings |
US8112531B2 (en) | 2004-07-14 | 2012-02-07 | Nokia Corporation | Grouping of session objects |
US8544043B2 (en) | 2004-07-21 | 2013-09-24 | Qualcomm Incorporated | Methods and apparatus for providing content information to content servers |
US7409626B1 (en) | 2004-07-28 | 2008-08-05 | Ikanos Communications Inc | Method and apparatus for determining codeword interleaver parameters |
US7376150B2 (en) | 2004-07-30 | 2008-05-20 | Nokia Corporation | Point-to-point repair response mechanism for point-to-multipoint transmission systems |
US7590922B2 (en) | 2004-07-30 | 2009-09-15 | Nokia Corporation | Point-to-point repair request mechanism for point-to-multipoint transmission systems |
US7930184B2 (en) | 2004-08-04 | 2011-04-19 | Dts, Inc. | Multi-channel audio coding/decoding of random access points and transients |
WO2006020826A2 (en) | 2004-08-11 | 2006-02-23 | Digital Fountain, Inc. | Method and apparatus for fast encoding of data symbols according to half-weight codes |
JP4405875B2 (ja) | 2004-08-25 | 2010-01-27 | 富士通株式会社 | エラー訂正用データの生成方法及び生成装置並びに生成プログラム及び同プログラムを格納したコンピュータ読み取り可能な記録媒体 |
JP2006074335A (ja) | 2004-09-01 | 2006-03-16 | Nippon Telegr & Teleph Corp <Ntt> | 伝送方法、伝送システム及び伝送装置 |
JP4576936B2 (ja) | 2004-09-02 | 2010-11-10 | ソニー株式会社 | 情報処理装置、情報記録媒体、コンテンツ管理システム、およびデータ処理方法、並びにコンピュータ・プログラム |
US7660245B1 (en) | 2004-09-16 | 2010-02-09 | Qualcomm Incorporated | FEC architecture for streaming services including symbol-based operations and packet tagging |
JP2006115104A (ja) | 2004-10-13 | 2006-04-27 | Daiichikosho Co Ltd | 高能率符号化された時系列情報をパケット化してリアルタイム・ストリーミング送信し受信再生する方法および装置 |
US7529984B2 (en) | 2004-11-16 | 2009-05-05 | Infineon Technologies Ag | Seamless change of depth of a general convolutional interleaver during transmission without loss of data |
US7751324B2 (en) | 2004-11-19 | 2010-07-06 | Nokia Corporation | Packet stream arrangement in multimedia transmission |
JP5053097B2 (ja) | 2004-11-22 | 2012-10-17 | トムソン リサーチ ファンディング コーポレイション | Dslシステムにおけるチャンネル切り替えの方法及び装置 |
CN101061659B (zh) | 2004-12-02 | 2015-04-29 | 汤姆逊许可公司 | 自适应前向纠错的方法和设备 |
KR20060065482A (ko) | 2004-12-10 | 2006-06-14 | 마이크로소프트 코포레이션 | 스트리밍 미디어 데이터의 코딩 비트 레이트의 제어 시스템및 프로세스 |
JP2006174045A (ja) | 2004-12-15 | 2006-06-29 | Ntt Communications Kk | 画像配信装置、プログラム及び方法 |
JP2006174032A (ja) | 2004-12-15 | 2006-06-29 | Sanyo Electric Co Ltd | 画像データ伝送システム、画像データ受信装置及び画像データ送信装置 |
US7398454B2 (en) | 2004-12-21 | 2008-07-08 | Tyco Telecommunications (Us) Inc. | System and method for forward error correction decoding using soft information |
JP4391409B2 (ja) | 2004-12-24 | 2009-12-24 | 株式会社第一興商 | 高能率符号化された時系列情報をリアルタイム・ストリーミング送信し受信再生する方法と受信装置 |
WO2006084503A1 (en) | 2005-02-08 | 2006-08-17 | Telefonaktiebolaget Lm Ericsson (Publ) | On-demand multi-channel streaming session over packet-switched networks |
US7925097B2 (en) | 2005-02-18 | 2011-04-12 | Sanyo Electric Co., Ltd. | Image display method, image coding apparatus, and image decoding apparatus |
US7822139B2 (en) | 2005-03-02 | 2010-10-26 | Rohde & Schwarz Gmbh & Co. Kg | Apparatus, systems, methods and computer products for providing a virtual enhanced training sequence |
WO2006096104A1 (en) | 2005-03-07 | 2006-09-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Multimedia channel switching |
US8028322B2 (en) | 2005-03-14 | 2011-09-27 | Time Warner Cable Inc. | Method and apparatus for network content download and recording |
US7219289B2 (en) | 2005-03-15 | 2007-05-15 | Tandberg Data Corporation | Multiply redundant raid system and XOR-efficient method and apparatus for implementing the same |
US7418649B2 (en) | 2005-03-15 | 2008-08-26 | Microsoft Corporation | Efficient implementation of reed-solomon erasure resilient codes in high-rate applications |
US7450064B2 (en) | 2005-03-22 | 2008-11-11 | Qualcomm, Incorporated | Methods and systems for deriving seed position of a subscriber station in support of unassisted GPS-type position determination in a wireless communication system |
JP4487028B2 (ja) | 2005-03-31 | 2010-06-23 | ブラザー工業株式会社 | 配信速度制御装置、配信システム、配信速度制御方法、及び配信速度制御用プログラム |
US7715842B2 (en) | 2005-04-09 | 2010-05-11 | Lg Electronics Inc. | Supporting handover of mobile terminal |
RU2377736C2 (ru) | 2005-04-13 | 2009-12-27 | Нокиа Корпорейшн | Кодирование, хранение и передача информации о масштабируемости |
JP4515319B2 (ja) | 2005-04-27 | 2010-07-28 | 株式会社日立製作所 | コンピュータシステム |
US8683066B2 (en) | 2007-08-06 | 2014-03-25 | DISH Digital L.L.C. | Apparatus, system, and method for multi-bitrate content streaming |
US7961700B2 (en) | 2005-04-28 | 2011-06-14 | Qualcomm Incorporated | Multi-carrier operation in data transmission systems |
JP2006319743A (ja) | 2005-05-13 | 2006-11-24 | Toshiba Corp | 受信装置 |
US8228994B2 (en) | 2005-05-20 | 2012-07-24 | Microsoft Corporation | Multi-view video coding based on temporal and view decomposition |
CN101180831A (zh) | 2005-05-24 | 2008-05-14 | 诺基亚公司 | 用于数字广播中分级传输/接收的方法和装置 |
US7644335B2 (en) | 2005-06-10 | 2010-01-05 | Qualcomm Incorporated | In-place transformations with applications to encoding and decoding various classes of codes |
US7676735B2 (en) | 2005-06-10 | 2010-03-09 | Digital Fountain Inc. | Forward error-correcting (FEC) coding and streaming |
JP2007013436A (ja) | 2005-06-29 | 2007-01-18 | Toshiba Corp | 符号化ストリーム再生装置 |
JP2007013675A (ja) | 2005-06-30 | 2007-01-18 | Sanyo Electric Co Ltd | ストリーミング配信システム及びサーバ |
US20070006274A1 (en) | 2005-06-30 | 2007-01-04 | Toni Paila | Transmission and reception of session packets |
US7725593B2 (en) | 2005-07-15 | 2010-05-25 | Sony Corporation | Scalable video coding (SVC) file format |
US20070022215A1 (en) | 2005-07-19 | 2007-01-25 | Singer David W | Method and apparatus for media data transmission |
ATE514246T1 (de) | 2005-08-19 | 2011-07-15 | Hewlett Packard Development Co | Andeutung von verlorenen segmenten über schichtgrenzen |
CN101053249B (zh) | 2005-09-09 | 2011-02-16 | 松下电器产业株式会社 | 图像处理方法、图像存储方法、图像处理装置及文件格式 |
US7924913B2 (en) | 2005-09-15 | 2011-04-12 | Microsoft Corporation | Non-realtime data transcoding of multimedia content |
US20070067480A1 (en) | 2005-09-19 | 2007-03-22 | Sharp Laboratories Of America, Inc. | Adaptive media playout by server media processing for robust streaming |
US8879635B2 (en) | 2005-09-27 | 2014-11-04 | Qualcomm Incorporated | Methods and device for data alignment with time domain boundary |
US20070078876A1 (en) | 2005-09-30 | 2007-04-05 | Yahoo! Inc. | Generating a stream of media data containing portions of media files using location tags |
CA2562212C (en) | 2005-10-05 | 2012-07-10 | Lg Electronics Inc. | Method of processing traffic information and digital broadcast system |
US7164370B1 (en) | 2005-10-06 | 2007-01-16 | Analog Devices, Inc. | System and method for decoding data compressed in accordance with dictionary-based compression schemes |
CN100442858C (zh) | 2005-10-11 | 2008-12-10 | 华为技术有限公司 | 分组网络中多媒体实时传输的唇同步方法及其装置 |
DE602006051050C5 (de) | 2005-10-11 | 2022-10-27 | Nokia Technologies Oy | System and method for efficient scalable stream adaptation |
US7720096B2 (en) | 2005-10-13 | 2010-05-18 | Microsoft Corporation | RTP payload format for VC-1 |
US9131247B2 (en) | 2005-10-19 | 2015-09-08 | Thomson Licensing | Multi-view video coding using scalable video coding |
JP4727401B2 (ja) | 2005-12-02 | 2011-07-20 | 日本電信電話株式会社 | 無線マルチキャスト伝送システム、無線送信装置及び無線マルチキャスト伝送方法 |
FR2894421B1 (fr) | 2005-12-07 | 2008-01-18 | Canon Kk | Procede et dispositif de decodage d'un flux video code suivant un codage hierarchique |
KR100759823B1 (ko) | 2005-12-08 | 2007-09-18 | 한국전자통신연구원 | 제로 복귀 신호 발생 장치 및 그 방법 |
JP4456064B2 (ja) | 2005-12-21 | 2010-04-28 | 日本電信電話株式会社 | パケット送信装置、受信装置、システム、およびプログラム |
US20070157267A1 (en) | 2005-12-30 | 2007-07-05 | Intel Corporation | Techniques to improve time seek operations |
PL1969856T3 (pl) | 2006-01-05 | 2013-01-31 | Ericsson Telefon Ab L M | Zarządzanie plikiem zasobnika medialnego |
US8214516B2 (en) | 2006-01-06 | 2012-07-03 | Google Inc. | Dynamic media serving infrastructure |
MY148628A (en) | 2006-01-11 | 2013-05-15 | Nokia Corp | Backward-compatible aggregation of pictures in scalable video coding |
KR100934677B1 (ko) | 2006-01-12 | 2009-12-31 | 엘지전자 주식회사 | 다시점 비디오의 처리 |
WO2007086654A1 (en) | 2006-01-25 | 2007-08-02 | Lg Electronics Inc. | Digital broadcasting system and method of processing data |
RU2290768C1 (ru) | 2006-01-30 | 2006-12-27 | Общество с ограниченной ответственностью "Трафиклэнд" | Система медиавещания в инфраструктуре оператора мобильной связи |
US7262719B2 (en) * | 2006-01-30 | 2007-08-28 | International Business Machines Corporation | Fast data stream decoding using apriori information |
GB0602314D0 (en) | 2006-02-06 | 2006-03-15 | Ericsson Telefon Ab L M | Transporting packets |
US20110087792A2 (en) | 2006-02-07 | 2011-04-14 | Dot Hill Systems Corporation | Data replication method and apparatus |
US8239727B2 (en) | 2006-02-08 | 2012-08-07 | Thomson Licensing | Decoding of raptor codes |
CN101686107B (zh) | 2006-02-13 | 2014-08-13 | 数字方敦股份有限公司 | 使用可变fec开销和保护周期的流送和缓冲 |
US20070200949A1 (en) | 2006-02-21 | 2007-08-30 | Qualcomm Incorporated | Rapid tuning in multimedia applications |
JP2007228205A (ja) | 2006-02-23 | 2007-09-06 | Funai Electric Co Ltd | ネットワークサーバ |
US8320450B2 (en) | 2006-03-29 | 2012-11-27 | Vidyo, Inc. | System and method for transcoding between scalable and non-scalable video codecs |
US20080010153A1 (en) | 2006-04-24 | 2008-01-10 | Pugh-O'connor Archie | Computer network provided digital content under an advertising and revenue sharing basis, such as music provided via the internet with time-shifted advertisements presented by a client resident application |
WO2007127741A2 (en) | 2006-04-24 | 2007-11-08 | Sun Microsystems, Inc. | Media server system |
US7640353B2 (en) | 2006-04-27 | 2009-12-29 | Microsoft Corporation | Guided random seek support for media streaming |
US7971129B2 (en) | 2006-05-10 | 2011-06-28 | Digital Fountain, Inc. | Code generator and decoder for communications systems operating using hybrid codes to allow for multiple efficient users of the communications systems |
US7525993B2 (en) | 2006-05-24 | 2009-04-28 | Newport Media, Inc. | Robust transmission system and method for mobile television applications |
US9419749B2 (en) | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
US9380096B2 (en) | 2006-06-09 | 2016-06-28 | Qualcomm Incorporated | Enhanced block-request streaming system for handling low-latency streaming |
US9432433B2 (en) | 2006-06-09 | 2016-08-30 | Qualcomm Incorporated | Enhanced block-request streaming system using signaling or block creation |
US9386064B2 (en) | 2006-06-09 | 2016-07-05 | Qualcomm Incorporated | Enhanced block-request streaming using URL templates and construction rules |
US9178535B2 (en) | 2006-06-09 | 2015-11-03 | Digital Fountain, Inc. | Dynamic stream interleaving and sub-stream based delivery |
US9209934B2 (en) | 2006-06-09 | 2015-12-08 | Qualcomm Incorporated | Enhanced block-request streaming using cooperative parallel HTTP and forward error correction |
US20100211690A1 (en) | 2009-02-13 | 2010-08-19 | Digital Fountain, Inc. | Block partitioning for a data stream |
TWM302355U (en) | 2006-06-09 | 2006-12-11 | Jia-Bau Jeng | Fixation and cushion structure of knee joint |
WO2008003094A2 (en) | 2006-06-29 | 2008-01-03 | Digital Fountain, Inc. | Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes |
JP2008011404A (ja) | 2006-06-30 | 2008-01-17 | Toshiba Corp | コンテンツ処理装置及びコンテンツ処理方法 |
JP4392004B2 (ja) | 2006-07-03 | 2009-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | パケット回復のための符号化および復号化技術 |
CN102148857A (zh) | 2006-07-20 | 2011-08-10 | 桑迪士克股份有限公司 | 内容分布系统 |
US7711797B1 (en) | 2006-07-31 | 2010-05-04 | Juniper Networks, Inc. | Optimizing batch size for prefetching data over wide area networks |
US8209736B2 (en) | 2006-08-23 | 2012-06-26 | Mediatek Inc. | Systems and methods for managing television (TV) signals |
KR101021831B1 (ko) | 2006-08-24 | 2011-03-17 | 노키아 코포레이션 | 미디어 파일에서 트랙 관계를 표시하는 시스템 및 방법 |
US20080066136A1 (en) | 2006-08-24 | 2008-03-13 | International Business Machines Corporation | System and method for detecting topic shift boundaries in multimedia streams using joint audio, visual and text cues |
JP2008109637A (ja) | 2006-09-25 | 2008-05-08 | Toshiba Corp | 動画像符号化装置及びその方法 |
US8428013B2 (en) | 2006-10-30 | 2013-04-23 | Lg Electronics Inc. | Method of performing random access in a wireless communcation system |
JP2008118221A (ja) | 2006-10-31 | 2008-05-22 | Toshiba Corp | 復号装置及び復号方法 |
WO2008054100A1 (en) | 2006-11-01 | 2008-05-08 | Electronics And Telecommunications Research Institute | Method and apparatus for decoding metadata used for playing stereoscopic contents |
WO2008061164A2 (en) | 2006-11-14 | 2008-05-22 | Qualcomm Incorporated | Systems and methods for channel switching |
US8027328B2 (en) | 2006-12-26 | 2011-09-27 | Alcatel Lucent | Header compression in a wireless communication network |
JP5559544B2 (ja) | 2007-01-05 | 2014-07-23 | ソニック アイピー, インコーポレイテッド | プログレッシブ再生を含む映像分配システム |
US20080168516A1 (en) | 2007-01-08 | 2008-07-10 | Christopher Lance Flick | Facilitating Random Access In Streaming Content |
CN101669323A (zh) | 2007-01-09 | 2010-03-10 | 诺基亚公司 | 用于在mbms文件修复中支持文件版本控制的方法 |
US20080172430A1 (en) | 2007-01-11 | 2008-07-17 | Andrew Thomas Thorstensen | Fragmentation Compression Management |
CA2656144A1 (en) | 2007-01-11 | 2008-07-17 | Panasonic Corporation | Method for trick playing on streamed and encrypted multimedia |
CN101543018B (zh) | 2007-01-12 | 2012-12-26 | 庆熙大学校产学协力团 | 网络提取层单元的分组格式、使用该格式的视频编解码算法和装置以及使用该格式进行IPv6标签交换的QoS控制算法和装置 |
KR20080066408A (ko) | 2007-01-12 | 2008-07-16 | 삼성전자주식회사 | 3차원 영상 처리 장치 및 방법 |
US7949195B2 (en) | 2007-01-16 | 2011-05-24 | Cisco Technology, Inc. | Per block breakpoint determining for hybrid variable length coding |
AU2008207799B2 (en) | 2007-01-24 | 2010-12-02 | Qualcomm Incorporated | LDPC encoding and decoding of packets of variable sizes |
US7721003B2 (en) | 2007-02-02 | 2010-05-18 | International Business Machines Corporation | System and method to synchronize OSGi bundle inventories between an OSGi bundle server and a client |
US7805456B2 (en) | 2007-02-05 | 2010-09-28 | Microsoft Corporation | Query pattern to enable type flow of element types |
US20080192818A1 (en) | 2007-02-09 | 2008-08-14 | Dipietro Donald Vincent | Systems and methods for securing media |
US20080232357A1 (en) | 2007-03-19 | 2008-09-25 | Legend Silicon Corp. | Ls digital fountain code |
JP4838191B2 (ja) | 2007-05-08 | 2011-12-14 | シャープ株式会社 | ファイル再生装置、ファイル再生方法、ファイル再生を実行させるプログラム及びそのプログラムを記録した記録媒体 |
JP2008283571A (ja) | 2007-05-11 | 2008-11-20 | Ntt Docomo Inc | コンテンツ配信装置、コンテンツ配信システム、およびコンテンツ配信方法 |
US8275002B2 (en) | 2007-05-14 | 2012-09-25 | Samsung Electronics Co., Ltd. | Broadcasting service transmitting apparatus and method and broadcasting service receiving apparatus and method for effectively accessing broadcasting service |
JP2010527558A (ja) | 2007-05-16 | 2010-08-12 | トムソン ライセンシング | 信号を符号化および復号する方法および装置 |
FR2917262A1 (fr) | 2007-06-05 | 2008-12-12 | Thomson Licensing Sas | Dispositif et procede de codage d'un contenu video sous la forme d'un flux scalable. |
US8487982B2 (en) | 2007-06-07 | 2013-07-16 | Reald Inc. | Stereoplexing for film and video applications |
US8274551B2 (en) | 2007-06-11 | 2012-09-25 | Samsung Electronics Co., Ltd. | Method and apparatus for generating header information of stereoscopic image data |
EP2158747B1 (en) | 2007-06-20 | 2016-11-23 | Telefonaktiebolaget LM Ericsson (publ) | Method and arrangement for improved media session management |
RU2010102823A (ru) | 2007-06-26 | 2011-08-10 | Нокиа Корпорейшн (Fi) | Система и способ индикации точек переключения временных уровней |
US7917702B2 (en) | 2007-07-10 | 2011-03-29 | Qualcomm Incorporated | Data prefetch throttle |
JP2009027598A (ja) | 2007-07-23 | 2009-02-05 | Hitachi Ltd | 映像配信サーバおよび映像配信方法 |
US7839311B2 (en) | 2007-08-31 | 2010-11-23 | Qualcomm Incorporated | Architecture for multi-stage decoding of a CABAC bitstream |
US8327403B1 (en) | 2007-09-07 | 2012-12-04 | United Video Properties, Inc. | Systems and methods for providing remote program ordering on a user device via a web server |
KR101129260B1 (ko) | 2007-09-12 | 2012-03-27 | 디지털 파운튼, 인크. | 신뢰성 있는 통신들을 가능하게 하는 소스 식별 정보 생성 및 통신 |
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 |
US8346959B2 (en) | 2007-09-28 | 2013-01-01 | Sharp Laboratories Of America, Inc. | Client-controlled adaptive streaming |
EP2046044B1 (en) | 2007-10-01 | 2017-01-18 | Cabot Communications Ltd | A method and apparatus for streaming digital media content and a communication system |
WO2009048277A2 (en) | 2007-10-09 | 2009-04-16 | Samsung Electronics Co., Ltd. | Apparatus and method for generating and parsing mac pdu in a mobile communication system |
US8706907B2 (en) | 2007-10-19 | 2014-04-22 | Voxer Ip Llc | Telecommunication and multimedia management method and apparatus |
US8635360B2 (en) | 2007-10-19 | 2014-01-21 | Google Inc. | Media playback point seeking using data range requests |
US20090125636A1 (en) | 2007-11-13 | 2009-05-14 | Qiong Li | Payload allocation methods for scalable multimedia servers |
WO2009065526A1 (en) | 2007-11-23 | 2009-05-28 | Media Patents S.L. | A process for the on-line distribution of audiovisual contents with advertisements, advertisement management system, digital rights management system and audiovisual content player provided with said systems |
US8543720B2 (en) | 2007-12-05 | 2013-09-24 | Google Inc. | Dynamic bit rate scaling |
TWI355168B (en) | 2007-12-07 | 2011-12-21 | Univ Nat Chiao Tung | Application classification method in network traff |
JP5385598B2 (ja) | 2007-12-17 | 2014-01-08 | キヤノン株式会社 | 画像処理装置及び画像管理サーバ装置及びそれらの制御方法及びプログラム |
US9313245B2 (en) | 2007-12-24 | 2016-04-12 | Qualcomm Incorporated | Adaptive streaming for on demand wireless services |
KR101506217B1 (ko) | 2008-01-31 | 2015-03-26 | 삼성전자주식회사 | 스테레오스코픽 영상의 부분 데이터 구간 재생을 위한스테레오스코픽 영상 데이터스트림 생성 방법과 장치, 및스테레오스코픽 영상의 부분 데이터 구간 재생 방법과 장치 |
EP2086237B1 (en) | 2008-02-04 | 2012-06-27 | Alcatel Lucent | Method and device for reordering and multiplexing multimedia packets from multimedia streams pertaining to interrelated sessions |
US8151174B2 (en) | 2008-02-13 | 2012-04-03 | Sunrise IP, LLC | Block modulus coding (BMC) systems and methods for block coding with non-binary modulus |
US20090219985A1 (en) | 2008-02-28 | 2009-09-03 | Vasanth Swaminathan | Systems and Methods for Processing Multiple Projections of Video Data in a Single Video File |
US7984097B2 (en) | 2008-03-18 | 2011-07-19 | Media Patents, S.L. | Methods for transmitting multimedia files and advertisements |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US20090257508A1 (en) | 2008-04-10 | 2009-10-15 | Gaurav Aggarwal | Method and system for enabling video trick modes |
CN103795511B (zh) | 2008-04-14 | 2018-05-01 | 亚马逊技术股份有限公司 | 一种在基站接收上行链路传输的方法及基站 |
US20100049865A1 (en) | 2008-04-16 | 2010-02-25 | Nokia Corporation | Decoding Order Recovery in Session Multiplexing |
US8855199B2 (en) | 2008-04-21 | 2014-10-07 | Nokia Corporation | Method and device for video coding and decoding |
TW201014366A (en) | 2008-05-07 | 2010-04-01 | Digital Fountain Inc | Fast channel zapping and high quality streaming protection over a broadcast channel |
WO2009140208A2 (en) | 2008-05-12 | 2009-11-19 | Swarmcast, Inc. | Live media delivery over a packet-based computer network |
JP5022301B2 (ja) | 2008-05-19 | 2012-09-12 | 株式会社エヌ・ティ・ティ・ドコモ | プロキシサーバおよび通信中継プログラム、並びに通信中継方法 |
CN101287107B (zh) | 2008-05-29 | 2010-10-13 | 腾讯科技(深圳)有限公司 | 媒体文件的点播方法、系统和设备 |
US7925774B2 (en) | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US20100011274A1 (en) | 2008-06-12 | 2010-01-14 | Qualcomm Incorporated | Hypothetical fec decoder and signalling for decoding control |
US8775566B2 (en) | 2008-06-21 | 2014-07-08 | Microsoft Corporation | File format for media distribution and presentation |
US8387150B2 (en) | 2008-06-27 | 2013-02-26 | Microsoft Corporation | Segmented media content rights management |
US8468426B2 (en) | 2008-07-02 | 2013-06-18 | Apple Inc. | Multimedia-aware quality-of-service and error correction provisioning |
US8539092B2 (en) | 2008-07-09 | 2013-09-17 | Apple Inc. | Video streaming using multiple channels |
US20100153578A1 (en) | 2008-07-16 | 2010-06-17 | Nokia Corporation | Method and Apparatus for Peer to Peer Streaming |
US8638796B2 (en) | 2008-08-22 | 2014-01-28 | Cisco Technology, Inc. | Re-ordering segments of a large number of segmented service flows |
KR101019634B1 (ko) | 2008-09-04 | 2011-03-07 | 에스케이 텔레콤주식회사 | 미디어 전송 시스템 및 방법 |
US8325796B2 (en) | 2008-09-11 | 2012-12-04 | Google Inc. | System and method for video coding using adaptive segmentation |
US8370520B2 (en) | 2008-11-24 | 2013-02-05 | Juniper Networks, Inc. | Adaptive network content delivery system |
US8099476B2 (en) | 2008-12-31 | 2012-01-17 | Apple Inc. | Updatable real-time or near real-time streaming |
US8743906B2 (en) | 2009-01-23 | 2014-06-03 | Akamai Technologies, Inc. | Scalable seamless digital video stream splicing |
KR101676059B1 (ko) | 2009-01-26 | 2016-11-14 | 톰슨 라이센싱 | 비디오 코딩을 위한 프레임 패킹 |
JP5406942B2 (ja) | 2009-01-29 | 2014-02-05 | ドルビー ラボラトリーズ ライセンシング コーポレイション | 立体画像である複数の画像をサブサンプリング及びインタリーブする方法及び装置 |
US9281847B2 (en) | 2009-02-27 | 2016-03-08 | Qualcomm Incorporated | Mobile reception of digital video broadcasting—terrestrial services |
US8909806B2 (en) | 2009-03-16 | 2014-12-09 | Microsoft Corporation | Delivering cacheable streaming media presentations |
US8621044B2 (en) | 2009-03-16 | 2013-12-31 | Microsoft Corporation | Smooth, stateless client media streaming |
WO2010120804A1 (en) | 2009-04-13 | 2010-10-21 | Reald Inc. | Encoding, decoding, and distributing enhanced resolution stereoscopic video |
US9807468B2 (en) | 2009-06-16 | 2017-10-31 | Microsoft Technology Licensing, Llc | Byte range caching |
WO2011009205A1 (en) | 2009-07-22 | 2011-01-27 | Jigsee Inc. | Method of streaming media to heterogeneous client devices |
US8355433B2 (en) | 2009-08-18 | 2013-01-15 | Netflix, Inc. | Encoding video streams for adaptive video streaming |
US9288010B2 (en) | 2009-08-19 | 2016-03-15 | Qualcomm Incorporated | Universal file delivery methods for providing unequal error protection and bundled file delivery services |
US20120151302A1 (en) | 2010-12-10 | 2012-06-14 | Qualcomm Incorporated | Broadcast multimedia storage and access using page maps when asymmetric memory is used |
RU2552378C2 (ru) | 2009-09-02 | 2015-06-10 | Эппл Инк | Способ беспроводной связи с использованием пакетных данных мас |
US20110096828A1 (en) | 2009-09-22 | 2011-04-28 | Qualcomm Incorporated | Enhanced block-request streaming using scalable encoding |
US9917874B2 (en) | 2009-09-22 | 2018-03-13 | Qualcomm Incorporated | Enhanced block-request streaming using block partitioning or request controls for improved client-side handling |
US9438861B2 (en) | 2009-10-06 | 2016-09-06 | Microsoft Technology Licensing, Llc | Integrating continuous and sparse streaming data |
JP2011087103A (ja) | 2009-10-15 | 2011-04-28 | Sony Corp | コンテンツ再生システム、コンテンツ再生装置、プログラム、コンテンツ再生方法、およびコンテンツサーバを提供 |
WO2011057012A1 (en) | 2009-11-04 | 2011-05-12 | Huawei Technologies Co., Ltd | System and method for media content streaming |
KR101786050B1 (ko) | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 전송 방법 및 장치 |
KR101786051B1 (ko) | 2009-11-13 | 2017-10-16 | 삼성전자 주식회사 | 데이터 제공 방법 및 장치와 데이터 수신 방법 및 장치 |
CN101729857A (zh) | 2009-11-24 | 2010-06-09 | 中兴通讯股份有限公司 | 一种接入视频服务的方法及视频播放系统 |
US8510375B2 (en) | 2009-12-11 | 2013-08-13 | Nokia Corporation | Apparatus and methods for time mapping media segments in streaming media files |
WO2011102791A1 (en) | 2010-02-19 | 2011-08-25 | Telefonaktiebolaget L M Ericsson (Publ) | Method and arrangement for representation switching in http streaming |
JP5824465B2 (ja) | 2010-02-19 | 2015-11-25 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | Httpストリーミングにおける適応のための方法と装置 |
JP5071495B2 (ja) * | 2010-03-04 | 2012-11-14 | ウシオ電機株式会社 | 光源装置 |
AU2011224959B2 (en) | 2010-03-11 | 2014-08-28 | Electronics And Telecommunications Research Institute | Method and apparatus for transceiving data in a MIMO system |
US20110280311A1 (en) | 2010-05-13 | 2011-11-17 | Qualcomm Incorporated | One-stream coding for asymmetric stereo video |
US9497290B2 (en) | 2010-06-14 | 2016-11-15 | Blackberry Limited | Media presentation description delta file for HTTP streaming |
US8918533B2 (en) | 2010-07-13 | 2014-12-23 | Qualcomm Incorporated | Video switching for streaming video data |
US9185439B2 (en) | 2010-07-15 | 2015-11-10 | Qualcomm Incorporated | Signaling data for multiplexing video components |
US9131033B2 (en) | 2010-07-20 | 2015-09-08 | Qualcomm Incoporated | Providing sequence data sets for streaming video data |
KR20120010089A (ko) | 2010-07-20 | 2012-02-02 | 삼성전자주식회사 | Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치 |
US9596447B2 (en) | 2010-07-21 | 2017-03-14 | Qualcomm Incorporated | Providing frame packing type information for video coding |
US8711933B2 (en) | 2010-08-09 | 2014-04-29 | Sony Computer Entertainment Inc. | Random access point (RAP) formation using intra refreshing technique in video coding |
US8806050B2 (en) | 2010-08-10 | 2014-08-12 | Qualcomm Incorporated | Manifest file updates for network streaming of coded multimedia data |
KR101737325B1 (ko) | 2010-08-19 | 2017-05-22 | 삼성전자주식회사 | 멀티미디어 시스템에서 멀티미디어 서비스의 경험 품질 감소를 줄이는 방법 및 장치 |
US8615023B2 (en) | 2010-10-27 | 2013-12-24 | Electronics And Telecommunications Research Institute | Apparatus and method for transmitting/receiving data in communication system |
US8958375B2 (en) | 2011-02-11 | 2015-02-17 | Qualcomm Incorporated | Framing for an improved radio link protocol including FEC |
US9270299B2 (en) | 2011-02-11 | 2016-02-23 | Qualcomm Incorporated | Encoding and decoding using elastic codes with flexible source block mapping |
US20120208580A1 (en) | 2011-02-11 | 2012-08-16 | Qualcomm Incorporated | Forward error correction scheduling for an improved radio link protocol |
US9253233B2 (en) | 2011-08-31 | 2016-02-02 | Qualcomm Incorporated | Switch signaling methods providing improved switching between representations for adaptive HTTP streaming |
US9843844B2 (en) | 2011-10-05 | 2017-12-12 | Qualcomm Incorporated | Network streaming of media data |
US9294226B2 (en) | 2012-03-26 | 2016-03-22 | Qualcomm Incorporated | Universal object delivery and template-based file delivery |
-
2010
- 2010-08-18 US US12/859,161 patent/US9419749B2/en active Active
- 2010-08-19 JP JP2012525696A patent/JP5602858B2/ja active Active
- 2010-08-19 ES ES10749950.1T patent/ES2673513T3/es active Active
- 2010-08-19 EP EP10749950.1A patent/EP2467942B1/en active Active
- 2010-08-19 RU RU2012110248/08A patent/RU2519524C2/ru active
- 2010-08-19 WO PCT/US2010/046027 patent/WO2011022555A2/en active Application Filing
- 2010-08-19 MY MYPI2012000729A patent/MY174793A/en unknown
- 2010-08-19 CA CA2771622A patent/CA2771622C/en active Active
- 2010-08-19 KR KR1020137025448A patent/KR101421286B1/ko active IP Right Grant
- 2010-08-19 CN CN201080037946.5A patent/CN102640422B/zh active Active
- 2010-08-19 RU RU2013139729/08A patent/RU2554556C2/ru active
- 2010-08-19 TW TW103113056A patent/TWI566089B/zh active
- 2010-08-19 CA CA2982574A patent/CA2982574C/en active Active
- 2010-08-19 BR BR112012003688-2A patent/BR112012003688B1/pt active IP Right Grant
- 2010-08-19 KR KR1020127007116A patent/KR101451338B1/ko active IP Right Grant
- 2010-08-19 HU HUE10749950A patent/HUE037486T2/hu unknown
- 2010-08-19 TW TW099127778A patent/TWI437422B/zh active
-
2012
- 2012-03-13 ZA ZA2012/01843A patent/ZA201201843B/en unknown
- 2012-12-17 HK HK12113015.0A patent/HK1172164A1/zh unknown
-
2014
- 2014-08-20 JP JP2014167645A patent/JP5819495B2/ja active Active
-
2015
- 2015-12-02 US US14/956,778 patent/US9876607B2/en active Active
-
2016
- 2016-07-27 US US15/221,476 patent/US9660763B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1806392A (zh) * | 2004-01-20 | 2006-07-19 | 三星电子株式会社 | 高速无线数据通讯系统中产生和解码具有可变速率的前向纠错代码的设备和方法 |
US20070195894A1 (en) * | 2006-02-21 | 2007-08-23 | Digital Fountain, Inc. | Multiple-field based code generator and decoder for communications systems |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107332570A (zh) * | 2017-06-06 | 2017-11-07 | 北京理工大学 | 分段级联Hash序列的极化码编码方法 |
WO2021208581A1 (zh) * | 2020-04-17 | 2021-10-21 | 华为技术有限公司 | 一种编码方法及通信装置 |
WO2022041187A1 (en) * | 2020-08-31 | 2022-03-03 | Qualcomm Incorporated | Degree selection schemes for rapid tornado (raptor) codes in multicast and broadcast services and in unicast services |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102640422B (zh) | 为编码和解码过程采用使码元永久钝化的fec码的方法和装置 | |
Luby et al. | Raptor forward error correction scheme for object delivery | |
CN101432969B (zh) | 前向纠错(fec)编码和流送 | |
CN103124182B (zh) | 文件下载和流系统 | |
CN101427495A (zh) | 用于通信系统的基于多域的码生成器的解码器 | |
Finiasz et al. | Private stream search at the same communication cost as a regular search: Role of LDPC codes | |
Papailiopoulos et al. | Distributed storage codes through Hadamard designs | |
Luby et al. | RFC 6330: RaptorQ forward error correction scheme for object delivery | |
Han et al. | Efficient exact regenerating codes for byzantine fault tolerance in distributed networked storage | |
CN101645753B (zh) | 一种无速率码的编译码方法 | |
Hashemi et al. | A modified McEliece public-Key cryptosystem based on irregular codes of QC-LDPC and QC-MDPC | |
Luby et al. | RFC 5053: Raptor forward error correction scheme for object delivery | |
Kurosawa et al. | Almost k-wise independent sample spaces and their cryptologic applications | |
RU2774103C1 (ru) | Способ формирования ключа шифрования / дешифрования | |
JP2007274309A (ja) | 送信装置 | |
Liu et al. | Matrix embedding in multicast steganography: analysis in privacy, security and immediacy | |
Tang | On the Construction of Balanced Boolean Functions with Strict Avalanche Criterion and Optimal Algebraic Immunity | |
Zhang et al. | An efficient algorithm for encoding and decoding of raptor codes over the binary erasure channel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1172164 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: GR Ref document number: 1172164 Country of ref document: HK |