通过被恢复符号的钝化作用而对链式反应代码的解码的制作方法

文档序号:7505361阅读:150来源:国知局
专利名称:通过被恢复符号的钝化作用而对链式反应代码的解码的制作方法
对相关申请的交叉参考本申请声明了2002年6月11日提交的、标题为《通过钝化作用而对链式反应代码的解码》的第60/388,129号美国临时申请的优点,该美国临时申请的内容被包括于此,用作各种目的的整体参考。
背景技术
本发明涉及用于为数据解码的系统和方法,更具体地说,涉及用于对信息附加代码和多阶段信息附加代码(在这里,被共同称作“链式反应代码”)进行解码的系统和方法。
以前在该受让人的专利(例如,标题为《用于通信系统的信息附加代码生成程序和解码器》(在下文中,被称作“Luby I”)的第6,307,487号美国专利、以及标题为《用于通信系统的多阶段代码生成程序和解码器》(在下文中,被称作“Raptor”)的第10/032,156号美国专利申请)中,已描述链式反应代码。如其中所述,链式反应解码是允许从给定尺寸的被接收数据集中重构数据的一种独特形式的转送纠错,而不考虑所接收的这些特殊的数据包。如Luby I或Raptor中所述,与经由基于数据的传送带或确认的协议而加以传送的传统FEC代码相比,使用链式反应代码的通信系统能够更有效率地传达信息。


图1展示了使用链式反应代码来为数据编码的示范过程,其中,从几个输入符号中生成输出符号170。这些输入符号被表示为110(a)-110(f)。如Raptor中所述,在一些实施例中,该编码过程的第一个步骤是静态编码。这个步骤可以产生被表示为120(a)-120(f)和160(a)-160(c)的源符号。在一些实施例中,静态编码可能是系统化的,以便源符号120(a)-120(f)的值等于110(a)-110(f)的值。在一些实施例中,可能没有静态编码,在此情况下,这些输入符号与这些源符号相符。
一旦已创建这些源符号,就从这些源符号中生成这些输出符号。在下文中,如果使用输入符号的值来获得输出符号的值,则该输出符号和该输入符号被描述为“相关联”。定义这个联系的数学运算可能是任何特定的运算,并且,在一个实施例中,该输出符号的值是这些源符号中的一些源符号的值的XOR。关于每个输出符号,密钥生成器140产生密钥,从中,该输出符号的加权可从加权表格150中加以确定。一旦确定加权W,就选择W随机或伪随机源符号,并且,该输出符号的值被计算为这些源符号的各个值的XOR。例如,在图1中,输出符号170的加权等于3,它的值被确定为源符号120(a)、120(d)和160(b)的XOR。对应地,输出符号170与源符号120(a)、120(d)和160(b)相关联。在下文中,术语“程度”用作“加权”的同义词。
图2A展示了在链式反应代码的解码过程中所使用的解码图表。该解码图表包括两个符号集——源符号220(a)-(i)和输出符号230(a)-(i)。如上所述,如果源符号和输出符号“相关联”,则该输出符号与该源符号连接。
图2B展示了一种解码矩阵,该解码矩阵对应于可用于该解码过程中的、图2A的该解码图表。解码矩阵200具有和输出符号那样多的行,具有和源符号那样多的列,并且被填充有项目“0”和“1”。如果第j个源符号与第k个输出符号关联,则在该解码矩阵的位置(k,j)处输入“1”。
在典型的链式反应解码过程中,通过识别与单一输出符号关联的输出符号O1,来开始解码。术语“程度一的输出符号”指的是只与一个输出符号关联的该前述输出符号。同样,与两个源符号关联的输出符号将被称作“‘程度二’的输出符号”。源符号以类似的方式被提及对应于每个源符号与之关联的输出符号的数量。
一旦识别程度一的输出符号O1,就恢复O1的那个关联的源符号,并从该解码图表中除去它。通过识别另一个程度一的输出符号O2,该过程继续进行。例如,在图2中所描绘的情况中,O1可以是被表示为230(a)的输出符号。一旦从该“解码图表”中除去其关联的源符号220(b),就有三个程度一的输出符号——即230(c)、230(d)和230(k)。
该过程继续进行,直到恢复所有这些源符号为止,或者直到没有程度一的输出符号为止。例如,在图2的情况中,选择以下序列的输出符号,以恢复这些对应的源符号
在此情况中,解码获得成功。
当没有发现程度一的输出符号时,上述链式反应解码过程会遇到困难。在一些实例中,该解码过程可能会过早地停止,并且,该解码器可能会标记错误。作为选择,如果可能的话,该解码器可能会使用其他更精细的算法(比如高斯消去法)来完成解码。但是,尤其当不再发现程度一的输出符号时,如果未恢复的输入符号的数量很大,则高斯消去法的运行时间对于需要快速解码的应用而言可能会惊人的多。这将会产生其计算的额外开销实质上大于链式反应解码器的解码算法,所以在某些应用中可能是不合需要的。
由于这个原因,通常用这样一种方法来设计链式反应编码系统,以保证该解码器不会过早地停止。这个要求可能对该链式反应代码的设计提出严格的条件,可能更甚于使用更加复杂的解码器。例如,它可能会迫使输出符号的平均程度更高,从而可能会导致该编码器和该解码器的性能降低。一般而言,这个解码程序迫使用这种方法来设计该加权表格,以保证上述解码算法的成功达到很高的概率,因此也许会对可能的加权表格的这个集合提出限制。
所以,需要一种新的解码算法,该解码算法提供与该链式反应解码器相类似的计算优点,并且,即使在该解码的某个阶段没有发现程度一的输出符号,它也能够继续解码。
概述本发明提供了用于为链式反应代码解码的系统和过程,即使在该代码中没有发现程度一的输出符号,也是如此。通过选择与程度二或更高的输出符号(即本身与两个或更多的输入符号关联的输出符号)相关联的源符号,可在一个实施例中实现这一点。然后,减活程度二或更高的该输出符号,以尝试产生程度一的输出符号。在识别程度一的输出符号之前,并且/或者无论何时该解码过程无法定位程度一的输出符号,可以接连地重复该钝化过程。这里呈现这些过程和系统的各种实施例。
附图简述图1展示了使用链式反应代码来为数据编码的示范过程。
图2A展示了用于对链式反应编码的输出符号进行解码的示范过程。
图2B展示了与图2A中的该解码图表相对应的解码矩阵。
图3展示了根据本发明的一个实施例的、被用来为链式反应代码解码的这些过程的纵览。
图4A展示了图3所示的该启动过程的第一个实施例。
图4B展示了图3所示的启动过程310的第二个实施例。
图5展示了图3所示的该源符号选择与减活过程的第一个实施例。
图6展示了图3所示的该源符号恢复过程的一个实施例。
图7A展示了图3所示的该源符号选择过程的第二个实施例。
图7B展示了根据本发明的一个实施例的、关于程度2链式结构的解码图表。
图8A展示了根据本发明的修改过的解码矩阵。
图8B展示了根据本发明的一个实施例的、将高斯消去法应用于该解码矩阵的过程。
图9A和9B展示了根据本发明的一个实施例的、使用解码图表和矩阵的钝化解码的例子。
图10A展示了根据本发明的一个实施例的、可用于为多阶段链式反应代码解码的过程中的修改过的解码图表。
图10B展示了与修改过的解码图表10A相对应的修改过的解码矩阵。
图11A展示了根据本发明的示范计算机系统,该示范计算机系统可用于执行与所描述的这些方法的过程相对应的指令代码。
图11B展示了根据本发明的、该示范计算机系统的简化系统框图,该示范计算机系统被用来执行与所描述的这些方法相对应的指令代码。
图12A-12B表现了一些标绘图,这些标绘图描述关于输入符号数量N的各个值的该钝化解码器的几千个计算机模拟。
为清楚和方便起见,在较前面的附图中被加以识别的特点和部件在随后的附图中保留其参考数字。
一些示范实施例的详细说明以下术语贯穿该申请而加以运用,并意在具有该指示的含义术语“活动”指的是源符号的可能的状态。源符号的活动状态不是永久的,并且,如这些术语的以下定义,源符号的活动状态可能会变成“不活动”状态、“可恢复状态”或“被恢复”状态。
术语“减活”或“不活动”指的是源符号的另一种状态。被减活的源符号的状态不一定是永久的,并且,在本发明之下的过程中,可能使不活动的源符号再活化。
术语“可恢复”指的是源符号的另一种状态,它指出如果恢复一些其他的源符号的值,则可以恢复该源符号的值。在本发明的特殊实施例中,通过一个或多个源符号的钝化作用,源符号可能会变成“可恢复的”。
术语“被恢复的源符号”指的是其值已被确定的源符号。源符号的那个值要么可以直接加以确定(例如,从单独与之关联的输出符号的值中加以确定),要么可以间接加以确定(例如,从被减活的源符号的值中加以确定)。
图3展示了根据本发明的一个实施例的、被用来为链式反应代码解码的这些过程的纵览。示范解码例行程序300中所包括的这些过程包括启动过程310、源符号选择与减活过程320、以及源符号值恢复过程330。
图4A展示了图3所展示的启动过程310的第一个实施例。最初,在311处,确定是否存在任何程度一的输出符号。如果存在,则在312处恢复与那个输出符号关联的该源符号。然后,该过程返回到311,在那里,随后确定是否有任何其他的程度一的输出符号保留在该代码中。如果在311处没有保留程度一的输出符号,则该过程进行到以下进一步加以描述的源符号选择与减活过程320。
图4B展示了图3所展示的启动过程310的第二个实施例。在这个实施例中,在315处识别程度一的输出符号。随后,在316处,恢复与这个被识别的输出符号关联的该源符号。接下来,在317处,确定是否保留任何其他的程度一的输出符号。如果是,则该过程返回到316,在那里,恢复该关联的源符号。如果不是,该过程进行到以下所描述的该源符号选择与减活过程。
在本发明的一个实施例中,在320中所提及的被减活和可恢复的源符号的恢复之前,暂时发生310中所描述的源符号的恢复。但是,本发明并不局限于此,并且,实质上在发生310中所识别的这些源符号的恢复的同时,可能会在本发明的选择性实施例中的过程330中发生这些被减活和可恢复的源符号的恢复。
图5展示了图3所展示的源符号选择与减活过程320的第一个实施例。最初,在321处,选择与程度或更高的输出符号(即与两个或更多的源符号关联的输出符号)相关联的活动源符号。以下进一步详细地描述从许多类似的源符号之中选择特殊的源符号的方式。接下来,在322处,减活所选择的那个特殊的源符号。随后,在323处,确定是否存在用于解码的任何程度一的输出符号。在一些实施例中,前述减活作用将产生一个或多个程度一的输出符号。在其他实施例中,前述减活作用将不会产生程度一的输出符号。在以后的情况中,如下所述,该过程重复321-323的过程。
如果322的减活过程导致一个或多个程度一的输出符号的产生,则该过程在324处继续进行,在那里,与程度一的输出符号关联的该源符号被宣布为“可恢复”。然后,该过程返回到323,在那里,确定是否保留任何额外的程度一的输出符号。重复323和324的过程,直到前述减活过程所产生的所有程度一的输出符号都被宣布为“可恢复”。
如果322处的那个所选择的源符号的减活没有产生程度一的输出符号,或者,一旦与程度一的输出符号关联的所有这些源符号在324处都被宣布为“可恢复”,该过程就从323继续进行到325,在那里,确定是否保留与程度二或更高的输出符号关联的任何源符号。如果是,则该过程返回到321,在那里,选择、减活与程度二或更高的输出符号关联的另一个活动源符号,并检验程度一的输出符号存在与否。例如,可能会发生这些过程的一次或多次迭代,在那里,与程度二或更高的输出符号关联的第一个源符号的减活作用不会产生程度一的输出符号,但保留与程度二(或更高)的输出符号关联的额外的源符号。在此情况下,与程度二(或更高)的输出符号关联的另一个源符号的随后的减活作用可能会产生一个或多个程度一的输出符号。该过程重复进行,直到所有源符号都已被恢复(经由启动过程310)、被减活(经由322)、或被宣布为“可恢复”(经由325),那时,该过程进行到源符号值恢复过程330。
图6展示了图3所展示的源符号恢复过程330的一个实施例。最初,在332处,恢复在322中被减活的一个或多个源符号的值。在特殊实施例中,例如,其中,高斯消去法被用于该解码过程中,被减活的源符号的所有值在这个过程中得到恢复。随后,在334处,使用这些被减活的源符号的这些被恢复的值,来确定在过程325中被宣布为“可恢复”的一个或多个源符号的值。在一项实施(例如,其中使用高斯消去法的前述实施)中,在此过程中确定所有可恢复的源符号的值。在332和334的选择性实施例中,确定一个或多个、但少于所有这些可恢复的源符号的值。当出于必要性、便利、成本等原因而不要求该链式反应代码的完全解码或者该完全解码不可能时,这可能是有利的。在以下的特殊实施例中,进一步展示了332和336的过程。
图7A展示了源符号选择过程321的第二个实施例,由此,为减活作用而选择至少与程度的输出符号关联的活动源符号。最初,在702处,识别与程度二或更高的输出符号关联的活动源符号。接下来,在704处,如果减活过这个被识别的源符号,则确定潜在地可恢复的源符号(即无需进一步的源符号钝化作用就可能变成“可恢复”的源符号)的数量。接下来,在706处,在潜在地可恢复的源符号的数量与预定义的数量之间进行比较,由此,如果潜在地可恢复的源符号的数量超过该预定义的数量,则在322中,为减活作用而选择这个被识别的源符号。如果潜在地可恢复的源符号的数量不符合或超过该预定义的数量,那么,该过程返回到702,在那里,识别与程度二或更高的输出符号关联的另一个源符号。
精通该技术领域的人将会理解可以使用其他选择标准来选择源符号,以获得最大数量的程度一的输出符号。例如,在一个过程中,为减活作用而选择与最大数量的输出符号关联的该源符号。在另一个实施例中,从与两个或更多的输出符号关联的一组那些源符号中任意选择源符号。在另外一个实施例中,识别与预定数量的源符号(例如,最少的源符号)关联的输出符号。随后,只为减活作用而选择这些源符号之一。
在该源符号选择过程的另一个实施例中,可能会恢复一串源符号。在这个过程中,将要识别程度二的输出符号,以便其关联的源符号之一本身与程度二的第二个输出符号相关联,并且以便其关联的源符号之一本身与程度二的第三个输出符号相关联,等等。这种输出符号链将在下文中被称作“程度二链”。
图7B展示了根据本发明的一个实施例的程度二链的解码图表。参与一个可能的程度2链的输出符号是720(a)、720(c)、720(d)、720(e)和720(h)。通过减活(例如)源符号710(a),可将输出符号720(c)的程度降低到一,这使源符号710(f)成为可恢复的,而这又将输出符号720(e)的程度降低到一。这样,使源符号710(b)成为可恢复的,而这将720(a)和720(d)的程度降低到一,并且,这些使710(g)和710(e)成为可恢复的。可见,如果这种链中的输出符号的数量是k,并且如果减活这种链中的任何这些输出符号的任何这些关联的源符号,那么,为钝化解码的k个连续步骤而保证程度一的输出符号存在。这个过程可能进一步包括识别可产生最大长度的程度2链的程度二的输出符号,并减活与这个被识别的输出符号关联的源符号。
任何这些源符号选择过程可能进一步包括通过其而使该被减活的源符号再活化的“反向跟踪过程”,并且,根据这里所呈现的各种方法,为减活作用而选择另一个源符号。本发明不局限于通过其来为减活作用而选择源符号的这些示范过程,并且,在本发明中,可以使用选择与两个或更多的输出符号关联的源符号的任何方法。
如以上参照图2B所解释的,解码矩阵可用于链式反应代码的解码过程中。特别关于使用钝化作用的该解码过程,可以修改图2B中的解码矩阵200,以适应包括不活动的源符号。明确地说,如果该解码过程期间的不活动的源符号的索引序列是序列i1、i2、...、in,并且源符号的数量是K,那么,钝化解码产生置换矩阵P和Q,其中的Q交换列i1和K-n+1、i2和K-n+2、...、以及in和K,以便P·M·Q具有图8B中给出的形状。图8A所示的修改过的解码矩阵包括较低三角形矩阵L、以及子矩阵A、B和C。子矩阵A的各个列对应于这些不活动的源符号。该解码器的任务是解答有K个未知数x1、...、xk的K’个线性方程的系统,如下所示P·M·Q·(Q-1·x)=P·b其中,x是列向量(x1,...,xk),b是包括该K’个接收的输出符号的各个值的向量。在实践中,矩阵P和Q可能不被存储为完全矩阵,而是被存储为通过跟踪该“钝化解码”的过程而加以计算的置换。这个形式所要求的存储空间通常比完全矩阵的存储空间小得多。精通该技术领域的人会理解该恢复过程不取决于所展示的解码矩阵的各个列的特殊置换,并且,在本发明之下的选择性实施例中,可以使用其他列置换。
在可能用于计算以上给出的方程式系统的解答x的许多方法中,我们将在下面展示一种可能性。这只是起描述的作用,而并不意在限制本发明的范围。
关于该算法的核心的说明,有利的是,用y表示向量Q-1·x,并且将该解码任务重新定义为计算向量y的任务。一旦计算y,x就可以被有效率地计算为用Q来描述的y的置换。另外,用N表示矩阵P·M·Q,用c表示向量P·b,也就是说,c是用P来描述的b的置换,这对于计算而言又是有效率的。然后,该任务是计算满足N·y=c的向量y,其中的N具有图8A中给出的形状。
为了解答这个系统,高斯消去法可能被应用于矩阵N。由较低三角形矩阵L的各行来消去子矩阵B的各行。相同的变换被应用于向量c。这个动作将矩阵B变换成包括一些零的矩阵,并且,矩阵C被变换成不同的矩阵D,通过将这些相同的消去步骤应用于矩阵A和C,可获得这个不同的矩阵D。图8B示出这种变换。假设已减活n个源符号,并且,有K个源符号和K’个输出符号;那么,子矩阵L具有(K-n)个行和(K-n)个列,矩阵A具有(K-n)个行和n个列,并且,矩阵D具有(K’-K+n)个行和n个列。该变换的矩阵内的子矩阵L和A等同于矩阵N内的对应的子矩阵。向量b也被变换成具有两个成分的另一个向量f,这两个成分是包括f的前K-n个成分的、在870中给出的向量d,以及包括f的剩余成分的、875中的向量e。对应地,820中的未知向量y被再划分为两个子向量。向量u包括y的前K-n个项目,向量z包括剩余的n个项目。
这种消去将该原始方程式系统变换成两个单独的系统由D·z=e给出的系统和系统L·u+A·z=d。未知向量z的各个值对应于与这些被钝化的源符号相对应的这些源符号的各个值。一旦从方程式集D·z=e中发现这些值,就可以用各种方法来发现由u给出的剩余的值。在本发明的一些实施例中,通过将矩阵A乘以z、对得到的该向量和d实行“异或”逻辑运算来获得向量g、并解答方程式系统L·u=g,可以发现这些值。在一些实施例中,可以使用链式反应解码器来解答后一种系统。在其他实施例中,与不活动的源符号相对应的每个源符号的那个值跟对应于和所述源符号关联的那些邻近输出符号的输出符号的各个值实行“异或”逻辑运算,并且,从该对应的解码图表(未示出)中除去该不活动的源符号。这会产生新的受限制的解码图表——所有这些不活动的源符号都被除去。然后,标准链式反应解码可以被应用于该受限制的“解码图表”,以恢复其他的源符号。
可以用各种方法来解答方程式系统D·z=e。在一些实施例中,可以使用高斯消去法算法来解答这个系统。在其他实施例中,可以按递归的方式来应用该钝化解码,以获得这些不活动的源符号的未知值。也可以应用用于解答线性方程系统的其他方法。
在该钝化解码器的一些实施例中,在所有这些输出符号都已被输入该解码图表之前,可以开始该解码过程。在这些实施例中,只要该解码图表不再有程度—的输出符号并且至少具有一个活动源符号,就可以使用上述策略来确定是否钝化源符号;或者,如果存在这种输出符号,是否将另一个输出符号输入该“解码图表”。如果在已收集所有这些输出符号之前开始该解码过程,那么,实质上在该接收过程的同时,可以创建该解码矩阵,并发生关于该解码矩阵的该消去过程——随着每个新的输出符号的接收,执行该消去过程的一个或多个步骤。作为选择,可以每次收集一个以上的输出符号,并且,解码可以继续进行,直到所有这些所述输出符号都被处理为止;如果这时并非所有的源符号都被恢复,则可以请求和处理另一个输出符号集,直到所有这些源符号都已被恢复为止。
图9A和9B展示了根据本发明的一个实施例的、使用前述解码图表和矩阵的钝化解码的例子。图9A中的该原始解码图表包含被表示为910(a)-910(f)的六个源符号、以及被表示为920(a)-920(g)的七个输出符号。可见,传统的链式反应解码甚至无法在这个图表上开始,因为没有程度一的输出符号。通过减活源符号910(f),链式反应解码可以开始,并且在每个阶段发现程度一的输出符号。
图9B展示了作为该钝化过程的结果的、在该解码矩阵内发生的置换。减活符号910(f)会导致减活该矩阵的最后一列。然后,剩余的列可以被变换成较低三角形式。通过表明需要用这个新的较低三角形矩阵的位置(k,k)来置换第k个箭头所指向的位置,该序列的圆圈和箭头指出必须置换这些行和列的顺序。例如,必须实行这些置换,以便位置(2,4)变成位置(1,1),位置(1,1)变成位置(2,2),位置(3,5)变成位置(3,3),等等。
图10A展示了可用于对多阶段链式反应代码进行解码的过程中的修改过的解码图表1000(例如,Raptor中所描述的解码图表)。图表1000包括多个源符号1020(a)-(f)和多阶段输出符号1050,它们共同包括以前描述的输出符号1052(a)-(g)、以及检验符号1055(a)-(d)。如前所述,输出符号1052每个与一个或多个源符号关联。检验符号1055中的每个检验符号也与一个或多个源符号关联,并描述两个或更多的源符号之间的数学关系。例如,符号830(a)意味着与源符号810(a)、810(b)、810(e)和810(f)相对应的这些源符号的各个值的该XOR是零。源符号之间的相互关系可以由静态编码过程(例如,低密度奇偶校验码等)来给予。
作为特殊的例子,如果低密度奇偶校验码被用于该静态编码过程,那么,等于这个代码中的检验符号数量的许多多阶段输出符号可以被加入该解码图表,其值被设置为0,并且,该解码图表可以由这些源符号与这些检验符号之间的该低密度奇偶校验码的图表来增大,并且,该解码图表可以由这个新的图表来取代。低密度奇偶校验码的选择对于本应用而言并非至关重要。一般而言,关于任何类型的静态编码,该对应的奇偶校验矩阵定义通过其可增大该解码图表的偶图。
图10B展示了与修改过的解码图表10A相对应的修改过的解码矩阵1070。修改过的解码矩阵1070被填充有零和一,并具有和源符号那样多的列、以及和输出符号与检验符号的总数那样多的行。对应地,修改过的解码矩阵1070包括两个行集——一个对应于这些输出符号,一个对应于这些检验符号。如果有K’个输出符号、C个检验符号和K个源符号,则可以将该修改过的解码矩阵分解为包括K’个行和K个列的子矩阵Mo、以及包括C个行和K个列的矩阵Mc。如果x1、...、xK表示这些源符号的未知值,并且b1、...、bK,表示所接收的这些输出符号的已知值,那么,该解码器的任务可能是解答由Mo·x=b和Mc·x=0给出的该方程式系统。该组合的方程式系统将会如图10B中给出的那样。
在本发明的一些实施例中,钝化解码可以按与如上所述的相同的方式进行——图9A中的该解码图表由图10A中的该修改过的解码图表来取代,并且,图8B中的该解码矩阵由图10B中的该修改过的解码矩阵来取代。在其他实施例中,修改过的解码图表1000的这些不同的符号在该解码的不同阶段期间可能会被提供不同的优先级。例如,通过只处理输出符号,并且,只有当没有留下程度一的输出符号时,才采用程度一的检验符号,该解码可以开始。在一些应用中,这可能会导致较低的存储和计算资源,因为检验符号在按需要的基础上被加入该修改过的解码图表。
可以用许多不同的方法(即软件、硬件或两者的组合)并在各种系统中实践这里所描述的这些方法中的每一种方法。在一个实施例中,这些所描述的方法可以作为要么被存储在计算机可读磁盘上、存储器(易失或非易失)中、要么驻留在处理器(计算机、嵌入式处理器等)内的指令代码来加以实施。此外,用于使用这里所描述的这些钝化技术来为链式反应代码解码的系统可能包括计算机或具有可用于存储和/或执行对应于这里所描述的这些过程的指令代码的存储器的其他这样的可编程机器。
图11A展示了可用于执行与这些所描述的方法的过程相对应的指令代码的示范计算机系统。计算机系统1110包括监视器1114、屏幕1112、机壳1118和键盘1134。鼠标(未示出)、光笔或其他I/O接口(例如,虚拟真实接口)也可以被包括在内,用于提供I/O命令。机壳1118收容关于可移动介质(例如,CD或DVD)的驱动器1116、以及硬驱动器(未示出)。计算机系统1110可能包括可用于在其上记录或从中读取数据、指令代码和执行本发明的各种方法所需要的其他信息的驱动器和/或驱动器接口。机壳718也收容诸如处理器、存储器等常见的计算机部件(未示出)。
图11B展示了被用来执行对应于这些所描述的方法的指令代码的示范计算机系统1110的简化系统框图。如图11A所示,计算机系统1110包括监视器1114,监视器1114随意地与I/O控制器1124相互作用。计算机系统1110进一步包括诸如系统存储器1126、中央处理器1128、扬声器1130、可移动磁盘1136、键盘1134、固定磁盘1137和网络接口1138等子系统。适用于这些所描述的方法的其他计算机系统可能包括额外的或较少的子系统。例如,另一个计算机系统可以包括额外的处理器。诸如1140的箭头表示计算机系统1110的该系统总线结构。但是,这些箭头1140说明用于连接这些子系统的任何互连图。例如,可以利用局域总线来将中央处理器1128连接到系统存储器1126。图11B所示的计算机系统1110只是适用于本发明的计算机系统的例子。掌握该技术领域的普通技能的人将会容易明白适用于本发明的子系统的其他配置。
相应地,在本发明的一些实施例中,当需要重建该全部的原始内容时,使用该钝化解码机制来减少链式反应编码的接收的额外开销。
在本发明的其他实施例中,该钝化解码器被用来降低输出符号的平均程度,从而减少被用于创建输出符号的计算资源。
使用钝化解码器的链式反应编码系统的另一个属性是加权表格可以被设计成;其中,这些输出符号可能都不属于程度一。这意味着这种编码系统的这些输出符号不包含输入符号的那个值。在一些实施例中,这个属性可以被用来降低这些输出符号的平均程度,从而减少该编码器上的计算负荷。而且,在一些应用中,这个属性可以被用来依照对该原始数据的未经授权的访问而为该传输提供较低等级的安全性。
钝化解码例子如Raptor中所揭示的链式反应编码系统的实施例通过被表示为N的数据符号数量、生成R个静态编码符号的静态编码、以及由加权表格描述的动态编码器来加以描述。在一些实施例中,也可以规定接收的额外开销对该解码器的成功提供良好的概率保证。在其他实施例中,可以收集输出符号,直到可能存在完全解码并且不需要规定接收的额外开销为止。
以下的表格描述关于示范钝化解码器的各种参数——第一列提供关于值N的范围,第二列提供关于静态编码符号的生成的信息,第三列提供关于动态编码符号的生成的该加权表格,最后,第四列提供所计算的静态编码符号的数量。

例如,该表格中的第九行意味着如果N在5000与8100之间,那么,静态编码符号的数量R是大于或等于0.05*N+100的最小整数。在所有这些情况中,如Raptor中所描述的,该静态编码器的第一个阶段可以首先使用汉明码来为这些原始符号编码。第二个阶段可以使用低密度奇偶校验码。在第九行给出的那个例子中,这个代码的该奇偶校验矩阵包括两个子矩阵。第一个子矩阵具有2*R/3个行和N+R个列,其中的a表示小于或等于a的最大整数。第二个子矩阵具有R-2*R/3个行和N+R个列。在“在第一个矩阵中,每个列正好具有1个非零项目,并且,在第二个矩阵中,每个列正好具有7个非零项目”的条件下,任意挑选这些子矩阵中的每个子矩阵。
对应于S0、S1和S2的加权表格如下所示关于S0的加权表格

关于S1的加权表格

关于S2的加权表格


S1和S2的平均加权分别是4.254和4.154。
如果该接收的额外开销固定在5%或50(无论哪一个更大),那么,可以在数学上证明该钝化解码的失败概率小于10-13。这里给出的这个具体的例子只是出于说明的目的。这些实际数字的变更会产生处于本发明的范围以内的设计。
图12A-12B表现了一些标绘图,它们描述关于输入符号数量N的各个值的该钝化解码器的几千个计算机模拟。该水平轴表示N,该垂直轴表示该“修改过的解码图表”中的不活动的源符号的数量。每个点表示一轮模拟。图10(a)表现了关于1与140,000之间的N的范围的各种结果。图10(b)是关于1与16,000之间的N的范围的、图10(a)的放大。
可见,在部分的这些运行中,不活动的源符号的数量是零,从而意味着该标准链式反应解码器将会已完成该解码。但是,如果N在1与10,000之间,那么,在大多数情况下,不活动的源符号的数量大于一。在这些情况下,该标准链式反应解码器将会已出故障。如果源符号的数量N大于20,000,则被钝化的源符号的数量常常是零。在这些情况下,该解码器特别快速,同时对成功的解码提供格外好的概率保证。
上文的呈现是出于说明和描述的目的。并不意在做到彻底详尽,也不意在将本发明局限于所揭示的精确形式,显然,按照以上教导,可以执行许多修改和变更。选择了这些所描述的实施例,以便最好地解释本发明的原理及其实际应用,从而允许精通该技术领域的其他人在各种实施例中最好地利用本发明并执行适合所计划的特殊运用的各种修改。本发明的范围意在由这里所附的权利要求书来定义。
这里并入的参考资料以下参考资料被包括于此,用作各种目的的整体参考标题为《用于通信系统的信息附加代码生成程序和解码器》的第6,307,487号美国专利标题为《用于通信系统的多阶段代码生成程序和解码器》的第10/032,156号美国专利申请。
权利要求
1.一种用于处理该链式反应代码的方法,在具有多个输出符号和多个源符号的链式反应代码中,其中,每个输出符号与一个或多个源符号关联,与一个或多个源符号关联的这些输出符号被称作“程度一或更高的输出符号”,其中,至少一个输出符号与至少两个源符号关联,与两个或更多的源符号关联的这些输出符号被称作“程度二或更高的输出符号”,并且,其中,至少一个源符号被标记为“活动”,该方法包括(i) 选择与程度二或更高的输出符号关联的这些活动源符号之一;以及,(ii)减活与程度二或更高的该输出符号关联的这个所选择的源符号。
2.如权利要求1的方法,其特征在于,通过(ii)减活这个所选择的源符号,可产生被减活的源符号以及一个或多个可恢复的源符号,其中,每个可恢复的源符号与程度一的输出符号关联。
3.如权利要求2的方法,其特征在于进一步包括如果与程度二或更高的输出符号关联的任何源符号保留在该链式反应代码中,则重复(i)-(ii)。
4.如权利要求2的方法,其特征在于进一步包括一次或多次重复(i)-(ii),以产生一个或多个被减活的源符号以及一个或多个可恢复的源符号。
5.如权利要求1的方法,其特征在于,选择这些活动源符号之一包括选择与最大数量的输出符号关联的该活动源符号。
6.如权利要求1的方法,其特征在于,选择这些活动源符号之一包括从每个与程度二或更高的输出符号关联的一组活动源符号中任意选择活动源符号。
7.如权利要求1的方法,其特征在于,(i)选择这些活动源符号之一包括(a)识别活动源符号;(b)如果减活这个被识别的活动源符号,则确定潜在地可恢复的活动源符号的数量;以及,(c)如果潜在地可恢复的源符号的该数量不超过预定义的数量,则为另一个活动源符号重复(a)和(b)。
8.如权利要求3的方法,其特征在于进一步包括如果潜在地可恢复的源符号的该数量不超过预定义的数量,则使这个被减活的源符号再活化;以及,选择另一个活动源符号。
9.如权利要求1的方法,其特征在于,(i)选择与程度二或更高的输出符号关联的这些活动源符号之一包括识别与输出符号关联的源符号,该输出符号本身与预定义数量的活动源符号关联,其中,减活这个所选择的源符号包括只减活与这个被识别的输出符号关联的这些活动源符号之一,并且,其中,这个剩余的活动源符号包括非减活的源符号。
10.如权利要求9的方法,其特征在于,这个非减活的源符号与最少数量的输出符号关联。
11. 如权利要求1的方法,其特征在于,(i)选择这些活动源符号之一包括选择与第一个输出符号关联的活动源符号,其中,这第一个输出符号与两个活动源符号的第一集合关联。
12.如权利要求11的方法,其特征在于,两个源符号的该第一集合中的至少一个源符号与第二个输出符号关联,这第二个输出符号与两个活动源符号的第二集合关联。
13.如权利要求12的方法,其特征在于,两个源符号的该第二集合中的至少一个源符号与第三个输出符号关联,这第三个输出符号与两个活动源符号的第三集合关联。
14.如权利要求1的方法,其特征在于进一步包括(iii)识别只与一个活动源符号关联的至少一个输出符号;(iv)恢复与这个被识别的输出符号关联的该活动源符号;以及,(v)确定不保留只与一个活动源符号关联的输出符号。
15.如权利要求14的方法,其特征在于进一步包括为只与一个源符号关联的这些被识别的输出符号中的每个输出符号而重复(iv)-(v)。
16.如权利要求2的方法,其特征在于进一步包括(iii)恢复这一个或多个被减活的源符号的各个值;以及,(iv)根据这一个或多个被减活的源符号的这些被恢复的值,来确定一个或多个可恢复的源符号的各个值。
17.如权利要求16的方法,其特征在于进一步包括一次或多次重复(i)-(iv)。
18.如权利要求16的方法,其特征在于,(iii)恢复该被减活的源符号中的一个或多个源符号的各个值包括恢复所有这些被减活的源符号的各个值。
19.如权利要求16的方法,其特征在于,(iv)确定一个或多个源符号的各个值包括确定所有这些源符号的各个值。
20.如权利要求17的方法,其特征在于,一次或多次重复(i)-(iv)包括重复(i)-(iv),直到不保留活动源符号为止。
21.如权利要求17的方法,其特征在于进一步包括将预定数量的源符号标记为“活动”。
22.如权利要求21的方法,其特征在于,将预定数量的源符号标记为“活动”包括将所有的源符号标记为“活动”。
23.如权利要求21的方法,其特征在于,将预定数量的源符号标记为“活动”包括将至少一个源符号标记为“活动”。
24.在具有多个输出符号和多个源符号的链式反应代码中,其中,每个输出符号与一个或多个源符号关联,与一个或多个源符号关联的这些输出符号被称作“程度一或更高的输出符号”,其中,至少一个输出符号与至少两个源符号关联,与两个或更多的源符号关联的这些输出符号被称作“程度二或更高的输出符号”,并且,其中,至少一个源符号被标记为“活动”,一种用于处理该链式反应代码的方法,其特征在于包括(i)确定该链式反应代码内没有输出符号只与一个源符号关联;(ii)选择与程度二或更高的输出符号关联的这些活动源符号之一;以及,(iii)减活与程度二或更高的该输出符号关联的这个所选择的源符号。
25.如权利要求24的方法,其特征在于,通过(iii)减活这个所选择的源符号,可产生这个被减活的源符号以及一个或多个可恢复的源符号,其中,每个可恢复的源符号与程度一的输出符号关联。
26.如权利要求25的方法,其特征在于进一步包括重复(i)-(iii)。
27.一种用于处理该链式反应代码的方法,在具有多个多阶段输出符号和多个源符号的链式反应代码中,这些多阶段输出符号中的每个多阶段输出符号包括输出符号或检验符号,其中,这些多阶段输出符号中的每个多阶段输出符号与一个或多个源符号关联,与一个或多个源符号关联的这些多阶段输出符号被称作“程度一或更高的多阶段输出符号”,其中,至少一个多阶段输出符号与至少两个源符号关联,与两个或更多的源符号关联的这些多阶段输出符号被称作“程度二或更高的多阶段输出符号”,并且,其中,至少一个源符号被标记为“活动”,该方法包括(i)选择与程度二或更高的多阶段输出符号关联的这些活动源符号之一;以及,(ii)减活与程度二或更高的多阶段输出符号关联的这个所选择的源符号。
28.如权利要求27的方法,其特征在于,通过(ii)减活这个所选择的源符号,可产生被减活的源符号以及一个或多个可恢复的源符号,其中,每个可恢复的源符号与程度一的输出符号或程度一的检验符号关联。
29.如权利要求28的方法,其特征在于进一步包括如果与程度二或更高的多阶段输出符号关联的任何源符号保留在该链式反应代码中,则重复(i)-(ii)。
30.如权利要求28的方法,其特征在于进一步包括一次或多次重复(i)-(ii),以产生一个或多个被减活的源符号以及一个或多个可恢复的源符号。
31.如权利要求27的方法,其特征在于,这些多阶段输出符号中的至少一个多阶段输出符号包括输出符号,并且,这些多阶段输出符号中的至少一个多阶段输出符号包括检验符号。
32.如权利要求27的方法,其特征在于,(i)选择这些活动源符号之一包括选择与程度二或更高的多阶段输出符号关联的活动源符号之一,该多阶段输出符号包括两个或更多的检验符号。
33.如权利要求27的方法,其特征在于,(i)选择这些活动源符号之一包括选择与该最大数量的多阶段输出符号关联的活动源符号之一。
34.如权利要求27的方法,其特征在于,(i)选择这些活动源符号之一包括从一组活动源符号中任意选择活动源符号,这组活动源符号中的每个活动源符号与程度二或更高的多阶段输出符号关联。
35.如权利要求27的方法,其特征在于,(i)选择这些活动源符号之一包括(a)识别活动源符号;(b)如果减活这个被识别的活动源符号,则确定潜在地可恢复的活动源符号的数量;以及,(c)如果可恢复的源符号的该数量不超过预定义的数量,则为另一个活动源符号而重复(a)和(b)。
36.如权利要求30的方法,其特征在于进一步包括如果潜在地可恢复的源符号的该数量不超过预定义的数量,则使这个被减活的源符号再活化;以及,选择另一个活动源符号。
37.如权利要求27的方法,其特征在于;其中,(i)选择这些活动源符号之一包括识别与多阶段输出符号关联的源符号,该多阶段输出符号本身与预定义数量的活动源符号关联,其中,减活这个所选择的源符号包括只减活与这个被识别的多阶段输出符号关联的这些活动源符号之一;并且,其中,这个剩余的活动源符号包括非减活的源符号。
38.如权利要求37的方法,其特征在于,这个所选择的源符号与最少数量的多阶段输出符号关联。
39.如权利要求27的方法,其特征在于,(i)选择这些活动源符号之一包括选择与第一个多阶段输出符号关联的活动源符号;其中,这第一个多阶段输出符号与两个活动源符号的第一集合关联。
40.如权利要求39的方法,其特征在于,两个源符号的该第一集合中的至少一个源符号与第二个多阶段输出符号关联,这第二个多阶段输出符号与两个活动源符号的第二集合关联。
41.如权利要求40的方法,其特征在于,两个源符号的该第二集合中的至少一个源符号与第三个多阶段输出符号关联,这第三个多阶段输出符号与两个活动源符号的第三集合关联。
42.如权利要求27的方法,其特征在于进一步包括(iii)识别只与一个活动源符号关联的至少一个多阶段输出符号;(iv)恢复与这个被识别的多阶段输出符号关联的该活动源符号;以及,(v)确定不保留只与一个活动源符号关联的多阶段输出符号。
43.如权利要求28的方法,其特征在于进一步包括(iii)恢复一个或多个被减活的源符号的各个值;以及,(iv)根据这一个或多个被减活的源符号的这些被恢复的值,来确定一个或多个可恢复的源符号的各个值。
44.如权利要求43的方法,其特征在于进一步包括一次或多次重复(i)-(v)。
45.如权利要求43的方法,其特征在于,(iii)恢复这一个或多个被减活的源符号的各个值包括恢复所有这些被减活的源符号的各个值。
46.如权利要求43的方法,其特征在于,(iv)确定一个或多个源符号的各个值包括确定所有这些源符号的各个值。
47.如权利要求44的方法,其特征在于,这些多阶段输出符号中的至少一个多阶段输出符号包括关于(i)-(v)的输出符号、以及关于(i)-(v)的随后重复的检验符号。
48.如权利要求44的方法,其特征在于,这些多阶段输出符号中的至少一个多阶段输出符号包括关于(i)-(v)的检验符号、以及关于(i)-(v)的随后重复的输出符号。
49.如权利要求44的方法,其特征在于,这些多阶段输出符号中的至少一个多阶段输出符号包括关于(i)-(v)的输出符号,直到不保留活动源符号为止;并且,其后,这至少一个多阶段输出符号包括检验符号。
50.如权利要求44的方法,其特征在于,这些多阶段输出符号中的至少一个多阶段输出符号包括关于(i)-(v)的检验符号,直到不保留活动源符号为止;并且,其后,这至少一个多阶段输出符号包括输出符号。
51.一种系统,它被配置成处理具有多个输出符号和多个源符号的链式反应代码,其中,每个输出符号与一个或多个源符号关联,与一个或多个源符号关联的这些输出符号被称作“程度一或更高的输出符号”,其中,至少一个输出符号与至少两个源符号关联,与两个或更多的源符号关联的这些输出符号被称作“程度二或更高的输出符号”,并且,其中,至少一个源符号被标记为“活动”,所述系统包括(i)用于选择与程度二或更高的输出符号关联的这些活动源符号之一的装置;以及,(ii)用于减活与程度二或更高的输出符号关联的这个所选择的源符号的装置。
52.如权利要求51的系统,其特征在于,(ii)用于减活这个所选择的源符号的该装置可产生被减活的源符号以及一个或多个可恢复的源符号,其中,每个可恢复的源符号与程度一的输出符号关联。
53.如权利要求51的系统,其特征在于进一步包括(iii)用于识别只与一个活动源符号关联的至少一个输出符号的装置;(iv)用于恢复与这个被识别的输出符号关联的该活动源符号的装置;以及,(v)用于确定“不保留只与一个活动源符号关联的输出符号”的装置。
53.如权利要求52的系统,其特征在于进一步包括(iii)用于恢复一个或多个被减活的源符号的各个值的装置;以及,(iv)用于根据这些被减活的源符号的这些被恢复的值来确定一个或多个可恢复的源符号的各个值的装置。
54.如权利要求53的系统,其特征在于,(i)-(iv)包含计算机处理器。
55.一种计算机可读存储介质上的计算机程序产品,用于处理具有多个输出符号和多个源符号的链式反应代码,其中,每个输出符号与一个或多个源符号关联,与一个或多个源符号关联的这些输出符号被称作“程度一或更高的输出符号”,其中,至少一个输出符号与至少两个源符号关联,与两个或更多的源符号关联的这些输出符号被称作“程度二或更高的输出符号”,并且,其中,至少一个源符号被标记为“活动”,该计算机程序产品包括(i)指令代码,用于选择与程度二或更高的输出符号关联的这些活动源符号之一;以及,(ii)指令代码,用于减活与程度二或更高的这个所选择的输出符号关联的这个所选择的源符号。
56.如权利要求55的系统,其特征在于,(ii)用于减活这个所选择的源符号的该指令代码产生被减活的源符号以及一个或多个可恢复的源符号,其中,每个可恢复的源符号与程度一的输出符号关联。
57.如权利要求56的计算机程序产品,其特征在于进一步包括(iii)指令代码,用于识别只与一个活动源符号关联的至少一个输出符号;(iv)指令代码,用于恢复与这个被识别的输出符号关联的该活动源符号;以及,(v)指令代码,用于确定是否不保留只与一个活动源符号关联的输出符号。
58.如权利要求57的计算机程序产品,其特征在于进一步包括(iii)指令代码,用于恢复一个或多个被减活的源符号的各个值;以及,(iv)指令代码,用于根据这些被减活的源符号的这些被恢复的值来确定这一个或多个可恢复的源符号的各个值。
全文摘要
一种用于处理链式反应代码的方法包括首先选择与程度二或更高的输出符号(即本身与两个或更多的输入符号关联的输出符号)相关联的源符号;例如,通过解答线性方程系统,来恢复这个符号的值;随后,减活这个所选择的源符号,以尝试产生程度一的输出符号。在识别程度一的输出符号之前,并且/或者无论何时该解码过程无法定位程度一的输出符号,可以接连地重复该钝化过程。
文档编号H03M13/37GK1679243SQ03813796
公开日2005年10月5日 申请日期2003年6月10日 优先权日2002年6月11日
发明者M·A·肖克罗拉西, S·拉森, R·卡普 申请人:数字方敦股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1