專利名稱::用于通信系統(tǒng)的基于多域的碼生成器的解碼器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信系統(tǒng)內(nèi)的編碼和解碼,尤其涉及對數(shù)據(jù)進(jìn)行編碼和解碼以考慮傳達(dá)的數(shù)據(jù)內(nèi)的差錯和間隙的通信系統(tǒng)。通信是在廣泛意義上使用的,包括但并不限于任何形式的數(shù)字?jǐn)?shù)據(jù)通過空間和/或時間的傳輸。
背景技術(shù):
:通信信道上發(fā)送方和接收者方之間的文件傳輸是許多文獻(xiàn)的主題。較優(yōu)地,接收方期望能以一定的確信度接收到發(fā)送方在信道上傳送的數(shù)據(jù)的精確副本。當(dāng)信道沒有完美的保真度時(這是大多數(shù)物理可實現(xiàn)系統(tǒng)的情況),要考慮的問題是如何處理傳輸中的數(shù)據(jù)丟失或誤傳的數(shù)據(jù)。丟失的數(shù)據(jù)(刪除)比受損的數(shù)據(jù)(差錯)要更容易處理,因為接收方不能總是分辨何時接收到了錯誤的受損數(shù)據(jù)。研發(fā)了許多糾錯碼以糾正刪除和/或差錯。一般,使用的特定碼是基于關(guān)于正通過其傳送數(shù)據(jù)的信道的不保真度和正在傳送的數(shù)據(jù)的性質(zhì)的信息來選擇的。例如,在已知信道有較長時間的不保真度時,最適合該情況的是突發(fā)差錯碼。在預(yù)期只有較短不頻繁的差錯時,最好是簡單的奇偶校驗碼。當(dāng)發(fā)射機(jī)和接收機(jī)具有用于通信所需的全部計算功率和電功率且發(fā)射機(jī)與接收機(jī)之間的信道足夠干凈以允許相對無誤差的通信時,數(shù)據(jù)傳輸是簡單的。當(dāng)信道處于不利環(huán)境中或者發(fā)射機(jī)和/或接收機(jī)具有有限能力時,數(shù)據(jù)傳輸?shù)膯栴}變得較為困難。一種方案是使用前向糾錯(FEC)技術(shù),其中數(shù)據(jù)在發(fā)射機(jī)處被編碼以使得接收機(jī)可從傳輸?shù)膭h除和差錯中進(jìn)行恢復(fù)。在可行情況下,從接收機(jī)到發(fā)射機(jī)的反向信道允許接收機(jī)針對差錯向發(fā)射機(jī)進(jìn)行傳達(dá),發(fā)射機(jī)隨后可相應(yīng)地調(diào)節(jié)其傳輸過程。然而,常常反向信道是不可用或不可行的,或者僅在有限容量下可用。例如,在發(fā)射機(jī)正向大量接收機(jī)傳送的情況下,發(fā)射機(jī)可能沒有能力處理來自所有接收機(jī)的反向信道。作為另一示例,通信信道可以是存儲介質(zhì),由此數(shù)據(jù)的傳輸在時間上往前的,從而除非有人發(fā)明出回到從前的時間穿梭機(jī),否則該信道的反向信道是不可行的。西此,常需要在沒有反向信道或在有限容量的反向信道的情況下設(shè)計通信協(xié)議,由此,發(fā)射機(jī)不得不在沒有關(guān)于變化較大的信道狀況的全景了解的情況下處理這些信道狀況。當(dāng)接收機(jī)需要為可能是便攜式或移動的低功率小型設(shè)備并且需要以高帶7寬接收數(shù)據(jù)時,發(fā)射機(jī)與接收機(jī)之間的數(shù)據(jù)傳輸問題變得更為困難。例如,無線網(wǎng)絡(luò)可能被建立成從固定發(fā)射機(jī)向大量或不確定數(shù)目的便攜式或移動接收機(jī)遞送文件或流送——作為廣播或多播,其中接收機(jī)受限于其計算能力、存儲器大小、可用電力、天線尺寸、設(shè)備尺寸和其它設(shè)計約束。另一示例是在存儲應(yīng)用中,其中接收機(jī)從在原始數(shù)據(jù)的再現(xiàn)上呈現(xiàn)不保真度的存儲介質(zhì)檢索數(shù)據(jù)。這種接收機(jī)常與其存儲介質(zhì)被嵌入在設(shè)備中,例如在計算能力和電力上高度受約束的盤驅(qū)動器。在這種系統(tǒng)中,所要解決的是考慮包括具有極小或沒有反向信道、有限的存儲器、有限的計算周期、功率、移動性和定時。較優(yōu)地,設(shè)計應(yīng)最小化向潛在的大量接收機(jī)遞送數(shù)據(jù)所需的傳輸時間量,其中個別接收機(jī)可能在不可預(yù)測的時間被轉(zhuǎn)為開或關(guān),移進(jìn)和移出范圍,遭遇由于鏈路差錯、移動性、擁塞而造成的丟失,從而迫使較低優(yōu)先級文件或流送分組被臨時丟棄等。在可能丟失分組的信道上的數(shù)據(jù)傳輸所用的分組協(xié)議的情況下,文件、流送或?qū)⒃诜纸M網(wǎng)絡(luò)上傳送的其它數(shù)據(jù)塊被劃分成相等大小的輸入碼元,使用FEC碼從輸入碼元生成與輸入碼元相等大小的編碼碼元,且編碼碼元被放在分組中發(fā)送。不管碼元是否實際被分成比特流,碼元的"大小"可以用比特測量,其中當(dāng)碼元從2"碼元的字母表中選出時該碼元大小為M比特。在這種基于分組的通信系統(tǒng)中,面向分組的刪除FEC編碼方案可能是合適的。如果目標(biāo)接收方能在網(wǎng)絡(luò)內(nèi)即使有刪除的情況下也能以及時方式恢復(fù)流送的每個部分的精確副本,則稱該流送傳輸是可靠的。文件傳輸和流送傳輸兩者也可以是一定程度上可靠的,在這個意義上,文件或流送的某些部分是不可恢復(fù)的,或者對于流送,如果該流送的某些部分不能以及時方式恢復(fù)。由于不定時的擁塞導(dǎo)致路由器中的緩沖機(jī)制接近其容量進(jìn)而迫使丟棄傳入的分組,所以經(jīng)常發(fā)生分組丟失。傳輸期間針對刪除進(jìn)行保護(hù)已經(jīng)是許多研究的主題。在會損壞比特的有噪信道上的數(shù)據(jù)傳輸所用的協(xié)議的情況下,將在數(shù)據(jù)傳輸信道上傳送的數(shù)據(jù)塊劃分成相等大小的輸入碼元,從輸入碼元生成相同大小的編碼碼元并且在該信道上發(fā)送編碼碼元。對于這種有噪信道而言,碼元的大小通常是l比特或幾比特,不論碼元是否被實際分成比特流。在這種通信系統(tǒng)中,面向比特流的糾錯FEC編碼方案可能是合適的。如果允許目標(biāo)接收方能夠在有差錯(不論在該信道中檢測或是未檢測到的碼元損壞)的情況下恢復(fù)原始塊的精確副本,則該數(shù)據(jù)傳輸被稱為是可靠的。該傳輸也可以是一定程度上可靠的,在這種意義上,塊的某些部分在恢復(fù)以后仍然損壞。碼元經(jīng)常由于不定時的噪聲、周期性噪聲、干擾、弱信號、信道堵塞、以及各種其它因素而被損壞。傳輸期間針對數(shù)據(jù)損壞進(jìn)行保護(hù)已經(jīng)成為許多研究的主題。連鎖反應(yīng)碼是允許從文件或流送的固定輸入碼元生成任意數(shù)目的輸出碼元的FEC碼。有時,它們被稱為噴泉或無率FEC碼,因為該碼沒有先驗固定的傳輸率。連鎖反應(yīng)碼具有許多用途,包括相比于信息復(fù)制方式以信息加性方式生成任意數(shù)目的輸出碼元,其中后者是接收機(jī)在能夠恢復(fù)輸入碼元之前接收到的輸出碼元復(fù)制己接收到的信息并由此不提供可用于恢復(fù)輸入碼元的信息。用于生成、使用和操作連鎖反應(yīng)碼的新穎技術(shù)在例如LubyI、LubyII、ShokrollahiI和ShokrollahiII中示出。連鎖反應(yīng)碼生成的輸出碼元的一個屬性是接收機(jī)能夠一旦接收到足夠的輸出碼元就能恢復(fù)原始文件或原始流送的塊。具體而言,為了以較高概率恢復(fù)原始的K個輸入碼元,接收機(jī)需要約K+A個輸出碼元。比率A/K被稱為"相對接收開銷"。相對接收開銷取決于輸入碼元的數(shù)目K和解碼器的可靠性。還已知可使用多級連鎖反應(yīng)("MSCR")碼,諸如在ShokrollahiI和/或II中所描述且由數(shù)字方敦公司所研發(fā)的商標(biāo)名為"Raptor"碼的碼。多級連鎖反應(yīng)碼被用于例如從源文件或源流送接收輸入碼元、從輸入碼元生成中間碼元并使用連鎖反應(yīng)碼將中間碼元編碼的編碼器中。特別地,從要被傳送的輸入碼元的有序集生成多個冗余碼元。從包括輸入碼元和冗余碼元的組合碼元集生成多個輸出碼元,其中可能輸出碼元的數(shù)目遠(yuǎn)大于該組合碼元集中碼元的數(shù)目,其中至少一個輸出碼元是從該組合碼元集中一個以上的碼元和從該組合碼元集中不足所有的碼元生成的,并使得輸入碼元的有序集可從任意數(shù)目W個輸出碼元被再生至所需的精確度。還已知可使用以上所述的技術(shù)來編碼和解碼系統(tǒng)碼,其中輸入碼元被包括在該碼的可能輸出碼元當(dāng)中。這可以如在ShokrollahiII中所述的通過在上述步驟之前對輸入碼元應(yīng)用變換實現(xiàn),所述增強過程導(dǎo)致該碼生成的第一輸出碼元等于輸入碼元。如差錯或刪除編碼領(lǐng)域的技術(shù)人員所明了的,ShokrollahiII的技術(shù)可直接應(yīng)用到本文所述或建議的碼。對于某些應(yīng)用,碼的其它變形可能更為適合或優(yōu)選。上述MSCR碼和連鎖反應(yīng)碼在它們的編碼和解碼復(fù)雜度方面是極為有效的。它們這種效率的原因之一是所執(zhí)行的操作是域GF(2)上的線性操作,GF(2)即一個比特上的簡單域,其中將兩個域元素相加的操作是簡單的邏輯XOR(異或)操作,而將兩個域元素相乘的操作是簡單的邏輯AND(與)操作。一般而言,這些操作在多個比特上并發(fā)地執(zhí)行,例如一次32比特或一次4字節(jié),并且這些操作在所有現(xiàn)代CPU處理器上是自然地受支持的。另一方面,當(dāng)用作刪除FEC碼時,由于GF(2)上的操作,使得對于超出前K個碼元之外的每個額外碼元,接收機(jī)能夠解碼所有輸入碼元的機(jī)會下降至多約一半,其中K是原始輸入碼元的數(shù)目。例如,如果K+A個編碼碼本被接收,則恢復(fù)過程無法恢復(fù)這K個原始輸入碼元的機(jī)會至少為2—A。如果解碼失敗的機(jī)會作為A的函數(shù)下降得更快那么這將是更有利的行為。存在其它在較大的域上操作的刪除和糾錯FEC碼,例如在GF(4)上、或在GF(8)上、或在GF(256)上、或者更一般地在GF(2L)上(L〉l)操作的Reed-Solomon碼,以及還有在較大域上操作的LDPC碼。這些FEC碼的優(yōu)點在于,例如在刪除FEC碼的情況下,解碼失敗的機(jī)會作為A的函數(shù)比GF(2)上的FEC碼下降得更快。另一方面,這些FEC碼在編碼和解碼復(fù)雜度上通常效率低得多,并且主要原因之一是較大域上的操作更為復(fù)雜和/或在現(xiàn)代CPU上不是自然地被支持,且復(fù)雜度通常隨域大小而增長。因此,域在GF(2)上操作的FEC碼相比,在較大有限域上操作的FEC碼常常較慢或不切實際。因此,所需要的是在其編碼和解碼復(fù)雜度方面極具效率同時,又具有解碼失敗的機(jī)會作為超出理想FEC碼恢復(fù)原始輸入碼元所需的最小數(shù)目之外的收到碼元的數(shù)目的函數(shù)非??焖俚亟档瓦@樣的屬性的糾刪和糾錯FEC碼。發(fā)明簡要根據(jù)本發(fā)明的一個實施例,提供了一種用于編碼數(shù)據(jù)以便在通信信道上從源傳輸至目的地的方法。該方法對輸入碼元的有序集操作并且可從輸入碼元生成零個或多個冗余碼元,每個冗余碼元等于具有取自一個或多個有限域的系數(shù)的多個輸入碼元的線性組合,其中所用的有限域在不同輸入碼元之間和在不同的冗余碼元之間可不同。該方法包括從包括輸入碼元和冗余碼元(如果有任何冗余碼元)的碼元組合集生成多個輸出碼元,其中每個輸出碼元可從所組合的輸入和冗余碼元中的一個或多個生成,其中每個輸出碼元是作為具有選自一個或多個有限域的系數(shù)的多個輸入碼元和冗余碼元的線性組合而生成的,其中所用的有限域在不同輸入和冗余碼元之間、在不同的輸出碼元之間以及在輸出碼元與冗余碼元之間可以不同,并使得可從任意預(yù)定數(shù)目的輸出碼元再生輸入碼元的有序集至所需的精確度。該方法還可被用來生成輸出碼元,其中可從輸入碼元的固定集合生成的可能的輸出碼元的數(shù)目可以比輸入碼元的數(shù)目大得多。根據(jù)本發(fā)明的另一實施例,該方法包括在目的地接收通過通信信道發(fā)送來自源的輸出碼元中的至少部分,其中信道上的傳輸可導(dǎo)致部分發(fā)送碼元的丟失或損壞并且一些收到的碼元已知被正確接收且關(guān)于碼元的損壞程度的信息也可被提供。該方法包括在目的地再生輸入碼元的有序集至所需的精確度——這取決于接收到多少碼元以及收到碼元的損壞的知識。該實施例還可包括在目的地接收輸出碼元的至少部分,其中可接收到的可能輸出碼元的數(shù)目可以比輸入碼元的數(shù)目大得多。根據(jù)本發(fā)明的另一實施例,提供了一種用于編碼數(shù)據(jù)以便在通信信道上從源發(fā)送到目的地的方法。該方法對輸入碼元的有序集操作并包括從輸入碼元生成多個冗余碼元。該方法還包括從包括輸入碼元和冗余碼元的碼元組合集生成多個輸出碼元,其中在生成輸出碼元時所應(yīng)用的操作是在較小的有限域(例如,GF(2))上,并且使得可從任意預(yù)定數(shù)目的輸出碼元再生輸入碼元的有序集至所需的精確度。這多個冗余碼元是從輸入碼元的有序集生成的,其中生成冗余碼元的操作是在并非為GF(2)的有限域上或者是在一個以上的有限域的混合上(例如,一些操作在GF(2)上,一些操作在GF(256)上)。根據(jù)本發(fā)明的又一實施例,使用類似技術(shù)提供了一種用于接收通過通信信道傳送來自源的數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括耦合至通信信道的用于接收通過通信信道傳送的輸出碼元的接收模塊,其中每個輸出碼元是從包括輸入碼元和冗余碼元的碼元組合集中的至少一個碼元生成的,其中在生成輸出碼元時所應(yīng)用的操作是在較小的有限域(例如,GF(2))上,并且使得可從任意預(yù)定數(shù)目的輸出碼元再生輸入碼元的有序集至所需的精確度,其中輸入碼元是來自輸入碼元的有序集,其中冗余碼元是從輸入碼元生成的,且其中這多個冗余碼元是從輸入碼元的有序集生成的,其中生成冗余碼元的操作是在并非為GF(2)的有限域上(例如,GF(256))或者是在一個以上的有限域的混合上(例如,一些操作在GF(2)上,一些操作在GF(256)上)。根據(jù)本發(fā)明的其它實施例,提供了一種內(nèi)含在載波中的計算機(jī)數(shù)據(jù)信號。通過本發(fā)明實現(xiàn)了許多益處。例如,在一特定實施例中,用于編碼數(shù)據(jù)以便在信道上傳輸?shù)挠嬎汩_銷被降低。在另一特定實施例中,解碼這些數(shù)據(jù)的計算成本被降低。在其它特定實施例中,解碼器的差錯概率被降低,同時保持了較低的編解碼計算開銷。取決于實施例,可實現(xiàn)這些益處中的一個或多個。這些和其它益處將在本說明書中更具體地提供。所公開的本發(fā)明的性質(zhì)和優(yōu)點的進(jìn)一步理解可參照說明書和附圖的剩余部分來了解。附圖簡述圖1是根據(jù)本發(fā)明的一個實施例的通信系統(tǒng)的框圖。圖2是根據(jù)本發(fā)明的一個實施例的編碼器的框圖。圖3是根據(jù)本發(fā)明的一個實施例生成冗余碼元的方法的簡易框圖。圖4是根據(jù)本發(fā)明的一個實施例的靜態(tài)編碼器的基本操作的簡易框圖。圖5是根據(jù)本發(fā)明的一個實施例的動態(tài)編碼器的簡易框圖。圖6是根據(jù)本發(fā)明的一個實施例的動態(tài)編碼器的基本操作的簡易框圖。圖7是根據(jù)本發(fā)明的一個實施例的靜態(tài)編碼器的簡易框圖。圖8是根據(jù)本發(fā)明的一個實施例的靜態(tài)編碼器的基本操作的簡易框圖。圖9是根據(jù)本發(fā)明的一個特定實施例用于計算編碼參數(shù)的方法的簡易框圖。圖10是根據(jù)本發(fā)明的另一實施例的靜態(tài)編碼器的簡易流程圖。圖11是根據(jù)本發(fā)明的一個實施例的解碼器的簡易框圖。圖12是根據(jù)本發(fā)明的一個實施例的解碼器的操作的簡易流程圖。圖13是根據(jù)本發(fā)明的另一實施例的解碼器的操作的簡易流程圖。圖14是根據(jù)本發(fā)明的又一實施例的解碼器的操作的簡易流程圖。圖15是根據(jù)本發(fā)明的一個實施例的動態(tài)解碼器的簡易框圖。圖16是根據(jù)本發(fā)明的一個實施例的靜態(tài)解碼器的簡易框圖。圖17示出了來自子碼元映射的源碼元。圖18示出了各種文件大小的文件下載參數(shù)的可能設(shè)置。圖19示出了各種源塊大小的流送參數(shù)的可能設(shè)置。圖20示出了表示源碼元與中間碼元之間的關(guān)系的矩陣的形式。圖21示出了冪度生成器的冪度分配。圖22示出了可被用于解碼的矩陣A的形式。圖23示出了可被用于解碼的矩陣A的塊分解。圖24a示出了可被用于解碼的矩陣A的塊分解。圖24b示出了在解碼過程的第一階段的若干步驟之后矩陣X的塊分解。圖25示出了在某些消去步驟之后矩陣X的塊分解。圖26示出了在進(jìn)一步消去步驟之后X的子矩陣的塊分解。圖27示出了在消去和刪除步驟之后矩陣A的塊分解。圖28示出了在進(jìn)一步消去和刪除步驟之后矩陣A的塊分解。圖29示出了在進(jìn)一步消去步驟之后矩陣A的塊分解。圖30示出了在又某些其它消去步驟之后矩陣A的塊分解。圖31示出了根據(jù)本發(fā)明的一個優(yōu)選實施例構(gòu)造的(120,100)碼的碼失敗概率的表。圖32示出了根據(jù)本發(fā)明的一個優(yōu)選實施例構(gòu)造的(110,100)碼的碼失敗概率的表。具體描述之后跟有三個附錄附錄A包含系統(tǒng)索引J(iO的示例值;附錄B.l包含表&的示例值;以及附錄B.2包含表K的示例值。特定實施例的具體描述本文所描述的發(fā)明利用數(shù)學(xué)運算來基于一個或多個有限域中的運算進(jìn)行編碼和解碼。有限域是為其定義了四種算術(shù)運算有限代數(shù)結(jié)構(gòu),并且形成關(guān)于這些操作的域。它們的理論和它們的構(gòu)造是本領(lǐng)域的技術(shù)人員所熟知的。在以下描述中,我們將需要在有限域的元素與表示將被編碼或解碼的數(shù)據(jù)或從其導(dǎo)出的碼元之間定義乘法過程。在以下描述中考慮三種不同類型的碼元輸入碼元包括發(fā)送方已知的將被傳達(dá)給接收方的信息,冗余碼元包括從輸入碼元導(dǎo)出的碼元,而輸出碼元包括發(fā)送方傳送給接收方的碼元。定義這種乘法過程的許多可能性當(dāng)中,我們集中在特定兩種簡單變換,以及交織變換。簡單變換在該情形中,乘法過程是在來自有限域GF(2,的元素a與長度為M比特的碼元s之間定義的。如在此所使用的,"碼元"是指通常小于源塊的一段數(shù)據(jù)。碼元的大小通常可用比特來衡量,其中碼元具有M比特的大小且該碼元選自2^個碼元的字母表。在分組網(wǎng)絡(luò)上可靠傳輸信息的應(yīng)用中,例如碼元的大小可以等于分組大小,或者可以比分組大小要小,以使得每個分組包含一個或多個碼元。在簡單變換的情形中,碼元S被解釋為GF(2,的元素,而乘法WS被定義為域GF(2,中的標(biāo)準(zhǔn)乘法。對碼元執(zhí)行的操作被稱為碼元的"簡單變換"。作為說明性示例,考慮域GF(4)。GF(4)的元素例如根據(jù)其二進(jìn)制展開可用2比特來表示。域GF(4)具有四個域元素00、01、10、11,其中加法是比特串的標(biāo)準(zhǔn)異或,而乘法經(jīng)由下表來定義<table>tableseeoriginaldocumentpage14</column></row><table>根據(jù)以上乘法表,10*01的結(jié)果將是10,因為01是該域中的乘法中性元素(有時被稱為單位元素)。交織變換為了示出交織變換,我們將利用環(huán)的數(shù)學(xué)概念。如本領(lǐng)域的技術(shù)人員所公知的,環(huán)是其上定義了滿足分配律的加法和乘法這兩種運算的集合。此外,僅考慮加法的該集合構(gòu)成了阿貝爾群(abeliangroup),即加法的結(jié)果與被加數(shù)的順序無關(guān),對于加法有一中性元素O,以及對于每個元素都存在另一元素以使得這些元素的和為0。其它要求是乘法具有中性元素1,以使得任何元素與1的乘積不會改變該元素的值。對于普通環(huán)而言,我們不要求任何非零元素都具有乘法逆元素,也不要求乘法是可交換的。然而當(dāng)滿足了這兩個條件時,則我們將該環(huán)稱為"域"。此概念是代數(shù)學(xué)中的一個標(biāo)準(zhǔn)概念。映射是可以硬件、軟件、數(shù)據(jù)存儲等來實現(xiàn)的一種邏輯構(gòu)造,它將相同大小的碼元對映射到該大小的另一碼元。我們用"e"來標(biāo)示該映射,并用ser來標(biāo)示對碼元對(s,T)的這種映射的映像。這種映射的一個示例是逐位的異或(XOR)。這里使用的另一構(gòu)造是一特殊類型的集合對碼元的"動作"。假定^是具備了可交換加法運算("+")的集合,該加法運算具有中性元素并且對于每一元素都包含其加法逆元素。這樣一個集合通常也被稱為阿貝爾群。該群對碼元集合的"動作"是將由群元素r和碼元S組成的對映射為另一碼元的映射。當(dāng)該映射在群中遵守加法時,即對于群J中的每對元素"和6,都有+=,我們用"S來標(biāo)示這種映像。如果^是環(huán)且該動作還在^中遵守乘法,在乘法運算符在^中為""的情形中即("*6)*5="*(6*5),則該動作就是有限域的元素域碼元之間所要求的乘法過程。這樣我們說域?qū)Υa元集"操作"。以這種方式對碼元執(zhí)行的操作被稱為"交織變換"。這種乘法過程還有眾多示例。以下僅提及了少量示例。該示例列表僅用于說明的目的,而不應(yīng)被考慮為窮盡性列表,也不應(yīng)被理解為限制本發(fā)明的范圍。由域元素O和1組成的域GF(2),其中加法為異或(XOR)且乘法為邏輯運算AND(與),通過定義1*5=5且0*5=0來對碼元集合進(jìn)行運算,其中S標(biāo)示任意碼元而0標(biāo)示全部由0組成的碼元。域GF(4)可按以下方式對偶數(shù)大小的碼元操作對于碼元S,我們分別用S[O]和S[l]來標(biāo)示其前一半和后一半,從而使得S-OS,S[1])是S[O]和S[l]的級聯(lián)。隨后,我們定義00*5=011*6'=(聊511],.9).可以很快核實這確實是有效運算??煽闯觯撚虻某朔ū砻枋隽伺c以上在2比特碼元情形中所定義的運算相一致的運算?;蛘?,域GF(4)可按以下方式對偶數(shù)大小的碼元操作對于碼元S,我們15用S標(biāo)示S內(nèi)偶數(shù)位置上比特的級聯(lián),類似地我們用S[l]標(biāo)示S內(nèi)奇數(shù)位置上比特的級聯(lián)(其中各位置是以o開始順序編號的)。對于兩個相等長度的比特串^和5,令G4Ifi)被定義為兩倍長度的比特串C,其中C的位置2*/中的比特是A的位置/中的比特,而C的位置2"+1中的比特是B的位置Z+1中的比特。然后,我們定義00*5=00111"=(聊5[1]剛).可以很快核實這確實是有效運算??煽闯觯陨纤x的所有運算在域2比特碼元情形中相同。上述交織變換可被視為交織變換的特例,其中域的元素的二進(jìn)制長度與該碼元按比特計的長度相一致,且域元素對碼元的操作與該有限域中的乘法相同。更一般地,如果《是冪度(degree)為J的GF(2)的擴(kuò)展域,則可在其大小可被"除盡的碼元上定義該域的一種運算。這種運算在作為1995年伯克利的國際計算機(jī)科學(xué)協(xié)會的技術(shù)報告編號TR-95-048出版的Bloemer、Kalfane、Karpinksi、Karp、Luby、以及Zuckerman的"AnXOR-BasedErasureResilientCodingScheme(基于XOR的刪除彈性編碼方案)"中進(jìn)行了描述。這種方案使用了對作為具有二進(jìn)制項的"x"矩陣的域尺的所謂"正規(guī)表示(regularrepresentation)"。對于這些廣義化,第一交織變換將長度為J*/比特的串的S分割為J個相等大小的部分,其中第一部分s[o]是s的第一/個比特,S[l]是S的下一/個比特,s[J-l]是s的最后/個比特。該變換對s的J個部分操作并生成被級聯(lián)在一起以形成操作結(jié)果的"個部分。或者,第二交織變換將S分割成J個相等大小的部分,其中第一部分s[o]是S中以位置0開始的每個第J個比特的級聯(lián),第二部分5T1]是S中以位置1開始的每個第J個比特的級聯(lián),第"部分S[A1〗是s中以位置丄-1開始的每個第"個比特的級聯(lián)。該第二變換對s的"個部分操作(與第一變換完全相同)并生成被交織在一起以形成操作結(jié)果的"個部分。注意,第一交織變換可通過將原始串S的連續(xù)比特一起XOR來計算,并且這對于軟件實現(xiàn)是一優(yōu)點,因為通常CPU自然地支持這種運算。另一方面,運算結(jié)果中特定位置中比特的值取決于原始串S的長度,并且如果希望在支持可變長度碼元的硬件中實現(xiàn)該運算,這在某種程度上將是一缺點,因為硬件的操作將取決于碼元長度而有所不同。注意,第二交織變換涉及原始串當(dāng)中非連續(xù)比特的一起XOR,并且這對于軟件實現(xiàn)而言在某種程度上是一缺點,因為CPU并不是將這種XOR作為自然操作來支持。不過,對碼元的有限域元素直接工作的軟件操作可用軟件非常高效地實現(xiàn),因此第二交織變換的軟件實現(xiàn)是可能的。此外,對于第二交織變換,運算結(jié)果中特定位置中比特的值不依賴于原始串S的長度,如果想要以支持可變長度碼元的硬件實現(xiàn)該操作那么這是一優(yōu)點,因為硬件的操作可獨立于碼元長度。因此,第二交織變換相對于第一交織變換確實具有一定總體優(yōu)勢。線性變換"線性變換"的概念可參照簡單或交織變換來定義。對于給定的整數(shù)m和",由該運算導(dǎo)出的線性變換使用具有指定域中的項的矩陣空間將"個碼元的向量映射為m個碼元的向量。域F上的矩陣是項的2維集,其中每項都屬于F。如果矩陣具有w行和"列,則其通常被稱為mx"矩陣。對(m,")被稱為該矩陣的"格式"。具有相同格式的多個矩陣可使用底層域或環(huán)中的加法和減法而被加或減。如所公知的,格式(m,")的矩陣可被乘以格式為(",A)的矩陣。在運算中,如果5標(biāo)示格式為(m,w)的矩陣,且5[/,A:]標(biāo)示S中在位置(/,A)上的項,并且如果S標(biāo)示包含碼元^,&,...,&的列向量,而Z標(biāo)示包含碼元《,12,...,^的列向量,則該變換可被表達(dá)成X=5S因此,以下關(guān)系成立對于從1到m的所有y',《=at/'l]WS[/,2〗"2…5[/,"]*5"其中,"*"標(biāo)示簡單變換或交織變換。以上公式描述了在編碼器或解碼器中稱為"簡單變換過程"的從S和S計算Z的過程,它可由以下步驟執(zhí)行1.將乂設(shè)為1以及《設(shè)為o。2.對于A:的值從1到",作&=&十可y,W*&。3.將j'遞增l。如果y大于w,則停止,否則轉(zhuǎn)到步驟2。這種線性變換在各種應(yīng)用中是常見的。例如,在使用線性碼來對一段數(shù)據(jù)或源塊進(jìn)行編碼時,S可以是要編碼的源塊的源碼元,義可以是S的經(jīng)編碼的版本,而5可以是該碼的生成矩陣。例如在所用碼是系統(tǒng)性的其它應(yīng)用中,X可以是S的編碼的冗余碼元,而5可以是描述冗余碼元對源碼元的相關(guān)性的矩陣。如本領(lǐng)域的技術(shù)人員所已知的,通過提供通用處理器內(nèi)所執(zhí)行的指令、通過專門設(shè)計成執(zhí)行這些運算的硬件、或這兩者的組合來執(zhí)行上述運算的方法是已知的。在所有情形下,當(dāng)使用了較大的有限域時,在所需的指令數(shù)目、所需的硬件量等方面的運算成本、硬件成本、運算所消耗的電功率和/或執(zhí)行運算所需的時間一般也較大。特別地,在域GF(2)的情形中,所需操作等價于在通用處理器內(nèi)廣泛提供的逐位的AND和XOR運算,并且在需要時可在硬件中簡單、快速且廉價地實現(xiàn)。相反,使用大于GF(2)的有限域的運算很少在通用處理器中直接提供并且要求專用硬件或大量處理器指令和存儲器操作來實現(xiàn)。多域糾刪和糾錯碼本文參照廣義矩陣描述對多域糾刪和糾錯碼的諸多特定實施例進(jìn)行了描述。本方法僅被采用作為描述性工具而不表示描述本文所述的各實施例的唯一方法,也不應(yīng)將其理解為限制本發(fā)明的范圍。在廣義描述中,這樣來構(gòu)造矩陣,其元素是取自一個或多個有限域。不同元素可取自不同的有限域,它們具有一種屬性,即存在一單個域,可將所有的域嵌入在其中并且選擇特定的這種嵌入。如以下進(jìn)一步示出的,輸出碼元的部分或所有可與輸入或冗余碼元的部分相同,或者可與輸入和冗余碼元不同,這取決于所選擇的特定實施例。在碼的輸入碼元與矩陣的某些列之間作出一一對應(yīng)關(guān)系。在碼的冗余碼元與矩陣的剩余列之間作出又一個一一對應(yīng)關(guān)系。此外,矩陣當(dāng)中等于冗余碼元數(shù)目的這些數(shù)目的行被指定為靜態(tài)行。矩陣當(dāng)中剩余的行被指定為動態(tài)行。在矩陣的動態(tài)行與碼的輸出碼元之間作出一一對應(yīng)關(guān)系。在該描述中,靜態(tài)行表示在輸入和冗余碼元之間成立所需的約束,且這些靜態(tài)行完全定義輸入碼元和冗余碼元之間的關(guān)系,以使得輸入碼元和靜態(tài)行的知識足以構(gòu)建冗余碼元。動態(tài)行表示在信道上實際發(fā)送的輸出碼元。在許多碼中,輸入和/或冗余碼元自身被發(fā)送,且在本描述中這通過針對要傳送的每個輸入和冗余碼元添加一動態(tài)行來表示,所述動態(tài)行在對應(yīng)該所要求的輸入或冗余碼元的列中具有非零項而在其余列中具有零項。在某些實施例中,該非零項是單位元素。在其它實施例中,該非零項無需是單位元素。上述矩陣形式可被用來確定用于將要在通信信道上從源向目的地傳輸?shù)臄?shù)據(jù)進(jìn)行編碼的方法,該方法包括從輸入碼元的有序集生成多個冗余碼元,其中每個冗余碼元是基于具有有限域上的系數(shù)的一個或多個輸入碼元和其它冗余碼元的一組線性約束生成的,所述線性約束對應(yīng)于矩陣描述的靜態(tài)行,從輸入和冗余碼元的組合集生成多個輸出碼元,其中每個輸出碼元是被生成為該輸入和冗余碼元的組合集當(dāng)中具有從有限域選出的系數(shù)的一個或多個的線性組合,所述線性約束對應(yīng)于矩陣描述的動態(tài)行,以及發(fā)送這多個生成的輸出碼元中的至少部分。相反,包括以上步驟的方法可用以上所述的這種矩陣形式來描述,其中靜態(tài)行對應(yīng)于對一個或多個輸入碼元和冗余碼元的線性約束,而動態(tài)行對應(yīng)于被用來形成輸出碼元的輸入和冗余碼元的線性組合。實際上,上述方法的實施例可以不涉及所述矩陣的顯式或隱式表示或構(gòu)造。如所公知的,在矩陣的所有元素都取自域GF(2)的情形中,可以用這種方式來描述一大類的公知糾錯和糾刪碼。例如,對于低密度奇偶校驗(LDPC)碼的情形,包括例如在V.Roca和C.Neumann在2004年6月作為INRIA研究報告RR-5225出版的題為"Design,EvaluationandComparisonofFourLargeBlockFECCodecs,LDPC,LDGM,LDGMStaircaseandLDGMTriangle,plusaReed-SolomonSmallBlockFECCodec(LDPC、LDGM、LDGM階梯和LDGM三角等四種大型塊FEC編解碼器加上Reed-Solomon小型塊FEC編解碼器的設(shè)計、評估和比較)"的文獻(xiàn)(可在www.inrialpes.fr得到)(在此被稱為"Roca")中所述的情形,廣義矩陣可通過將奇偶校驗矩陣的每一行指定為靜態(tài)行并如上所述地針對每個輸入和冗余碼元添加另一動態(tài)行來從奇偶校驗矩陣構(gòu)造。另一示例可使用如在LubyI和LubyII中所述的單級連鎖反應(yīng)碼,其中矩陣中靜態(tài)行的數(shù)目為零且動態(tài)行包括標(biāo)準(zhǔn)連鎖反應(yīng)矩陣。另一示例是MSCR碼的使用,在這種情形中,這里的廣義描述等價于這些碼的標(biāo)準(zhǔn)矩陣表示。較大域上的其它碼也可以這種方式表示。例如,諸如從其中輸入碼元是源碼元的Vandermonde矩陣導(dǎo)出的Reed-Solomon碼,廣義矩陣等于Vandermonde矩陣且所有行都是動態(tài)的,在這種情形下,每項是來自在其乘法群中至少具有所存在的總共的行和列數(shù)個元素的域的有限域元素,例如當(dāng)總共的行和列數(shù)小于256時的有限域GF(256)。另一示例是從Vandermonde矩陣導(dǎo)出的諸如GF(256)的有限域上的系統(tǒng)性Reed-Solomon碼,在這種情形下,輸入碼元是源碼元,冗余碼元是奇偶碼元,而矩陣是Vandermonde矩陣的系統(tǒng)性形式內(nèi)對應(yīng)這些奇偶碼元的行,且所有這些行被考慮為靜態(tài)并且如上所述地針對每個源碼元和奇偶碼元添加額外動態(tài)行,因為這些正好是在信道上發(fā)送的碼元。如糾錯和糾刪碼領(lǐng)域的技術(shù)人員所公知的,糾錯和糾刪的共同所需要屬性包括低編碼復(fù)雜度、低解碼復(fù)雜度、低解碼差錯概率和低差錯基底。碼的復(fù)雜度是對該碼進(jìn)行編解碼所需的計算資源的衡量。低復(fù)雜度在其中編碼或解碼將由諸如移動終端、消費電子設(shè)備、存儲設(shè)備或可同時處理許多編碼或解碼操作的設(shè)備等資源受限設(shè)備執(zhí)行的情況下具有由其具有價值。計算復(fù)雜度部分地是用以對該碼進(jìn)行編解碼的矩陣的密度以及從其取用矩陣元素的有限域的大小的函數(shù)。密集矩陣通常會導(dǎo)致較高復(fù)雜度,且這已經(jīng)導(dǎo)致許多基于稀疏矩陣的碼設(shè)計,例如低密度奇偶校驗碼和連鎖反應(yīng)碼。較大的有限域也會導(dǎo)致較高復(fù)雜度,這己經(jīng)導(dǎo)致基于小型域——最常見的是GF(2)——的碼設(shè)計。該上下文中指的差錯概率是不可能完全成功解碼的概率。給定糾錯或糾刪碼的差錯概率是信道上所接收到的信息以及用于解碼的特定算法的函數(shù)。在糾刪碼的情形中,只要接收少于輸入碼元數(shù)目的碼元,則差錯概率即為l。理想刪除碼具有這樣的屬性,即只要接收到大于或等于輸入碼元數(shù)目的碼元則差錯概率為零。其它碼在這種情形下具有非零的失敗概率。己知理想刪除碼可使用密集矩陣來構(gòu)造,特別是Reed-Solomon碼。然而,在Reed-Solomon碼的情形中,所需的域的大小是作為輸入碼元和冗余碼元的數(shù)目的和的碼大小的函數(shù),并且這一事實與矩陣的密度一起導(dǎo)致通常較高的計算復(fù)雜度,特別是在碼大小增長時。此外,在低密度碼的情形中,已知可使用較大的有限域來降低糾錯碼(例如在M.CDavey和D丄CMacKay的論文"LowDensityParityCheckCodesoverGF(q)(GF(q)上的低密度奇偶校驗碼)"中所示例,該論文出現(xiàn)在正EECommunicationsLetters,第二巻,第六期,165-167頁,1998)和刪除碼的差錯概率。另外,已知在低密度碼中引入少量高密度矩陣行或列可改善差錯概率,在差錯概率與復(fù)雜度之間提供折衷(MSCR碼和連鎖反應(yīng)碼)。然而,所有這些碼的缺點在于在低復(fù)雜度與低差錯概率之間總是有顯著的權(quán)衡。對于許多FEC碼——即LDPC碼和連鎖反應(yīng)碼和MSRC碼,隨著接收到比輸入碼元數(shù)目更多的輸出碼元,成功解碼的差錯概率以一定速率呈指數(shù)下降。這種碼的差錯基底是額外輸出碼元的接收使得差錯概率以比在接收到的輸出碼元的數(shù)目剛開始超過輸入碼元的數(shù)目時慢得多的速率使差錯概率下降時的差錯概率。己知少量高密度行或列的使用和/或?qū)仃囀褂幂^大的有限域可以較高的計算復(fù)雜度為代價得到較低的差錯基底。許多具有低復(fù)雜度的己知糾錯和糾刪碼的缺點是差錯基底較高而不太理想。這里,針對解決了上述部分缺點的糾錯和糾刪碼的構(gòu)造描述新的方法。用于對這些碼進(jìn)行高效編解碼的方法是關(guān)于本文作為示例描述的特定實施例來呈現(xiàn)的。如本文所述從一個以上可能的域的集合當(dāng)中選擇用于矩陣元素的域允許這樣一種碼的設(shè)計,即具有較大的域上碼的低差錯概率和差錯基底的情況下保留小型域上碼的低計算復(fù)雜度,由此表現(xiàn)了相對于現(xiàn)有技術(shù)的顯著優(yōu)勢。將在以下具體描述的一個優(yōu)選實施例中,對于大多數(shù)行而言,各項選自GF(2),而對于剩余行,各項選自GF(256)。在另一實施例中,對于每一行,一項選自GF(256)而剩余元素選自GF(2)。與本領(lǐng)域中從同一域中選擇所有元素的碼相比,有許多使用來自一個以上的域的元素的其它可能實施例,這將導(dǎo)致計算復(fù)雜度與差錯概率和差錯基底之間權(quán)衡的改善。如本文所使用的,術(shù)語"文件"是指存儲在一個或多個源上并將作為單元遞送至一個或多個目的地的任何數(shù)據(jù)。西此,文檔、圖像和來自文件服務(wù)器或計算機(jī)存儲設(shè)備的文件都是可遞送的"文件"的示例。文件可以具有己知大小(諸如存儲在硬盤上的一兆字節(jié)的圖像)或可以具有未知大小(諸如從流送源的輸出所取出的文件)??傊?,文件是輸入碼元的序列,其中每個輸入碼元具有該文件中的位置和值。如本文所使用的,術(shù)語"流送"是指在一個或多個源上存儲或生成并按其生成的次序在每個時間點以特定的速率被遞送至一個或多個目的地的任何數(shù)據(jù)。流送可以是固定速率或可變速率。因此,MPEG視頻流送、AMR音頻流送、以及用以控制遠(yuǎn)程設(shè)備的數(shù)據(jù)流送都是可遞送的"流送"的示例。流送在每一時間點的速率可能是已知的(諸如每秒4兆比特)或未知的(諸如每個時間點的速率事先未知的可變速率流送)??傊?,流送是輸入碼元的序列,其中每個輸入碼元在該流送中具有位置和值。傳輸是通過信道將數(shù)據(jù)從一個或多個發(fā)送方傳送至一個或多個接收方以遞送文件或流送的過程。發(fā)送方有時也被稱為編碼器。如果一個發(fā)送方通過完美信道被連接至任意數(shù)目的接收方,則收到數(shù)據(jù)可以是輸入文件或流送的精確副本,因為所有數(shù)據(jù)將被正確接收。這里,我們假定信道是不完美的,這是大多數(shù)現(xiàn)實世界信道的情形。在許多信道缺陷中,兩種感興趣的缺陷是數(shù)據(jù)刪除和數(shù)據(jù)不完整性(可視為數(shù)據(jù)刪除的特例)。數(shù)據(jù)刪除發(fā)生在信道丟失或丟棄數(shù)據(jù)時。數(shù)據(jù)不完整性在以下情形中發(fā)生接收方直到部分?jǐn)?shù)據(jù)已經(jīng)傳過才開始接收數(shù)據(jù),接收方在傳輸結(jié)束之前停止接收數(shù)據(jù),接收方選擇僅接收傳送數(shù)據(jù)的一部分,和/或接收方間歇地停止并再次開始接收數(shù)據(jù)。作為數(shù)據(jù)不完整性的示例,移動衛(wèi)星發(fā)送方可能正在傳送表示輸入文件或流送的數(shù)據(jù)并且在接收方在范圍內(nèi)之前開始傳輸。一旦接收方在范圍內(nèi),就可以接收數(shù)據(jù)直至衛(wèi)星移出范圍,此時接收方可將其衛(wèi)星盤式天線重新定向(在此期間不接收數(shù)據(jù))以開始接收關(guān)于已移進(jìn)范圍的另一衛(wèi)星所傳送的同一輸入文件或流送的數(shù)據(jù)。如從閱讀該描述所應(yīng)明了的,數(shù)據(jù)不完整性是數(shù)據(jù)刪除的特例,因為接收方可將數(shù)據(jù)不完整性作為就像該接收方一直都在范圍內(nèi)但信道丟失了直到接收方開始接收數(shù)據(jù)時所有的數(shù)據(jù)這種情形來處理(且該接收方具有同樣問題)。同時,如通信系統(tǒng)設(shè)計中所公知的,可檢測的差錯可通過簡單地丟棄具有可檢測差錯的所有數(shù)據(jù)塊或碼元而被考慮成等價于刪除。在某些通信系統(tǒng)中,接收方接收多個發(fā)送方生成、或由一個發(fā)送方使用多個連接生成的數(shù)據(jù)。例如,為了加速下載,接收方可能同時連接至傳送關(guān)于相同文件的數(shù)據(jù)的一個以上的發(fā)送方。作為另一示例,在多播傳輸中,可傳送多22個多播數(shù)據(jù)流送以允許各接收方連接至這些流送中的一個或多個以使得總傳輸速率與將它們連接至發(fā)送方的信道的帶寬相匹配。在所有這些情形中,所要考慮的是確保所有傳送的數(shù)據(jù)對于接收方獨立使用,即多個源數(shù)據(jù)在各流送之間不是冗余的,即使在傳輸速率對于不同流送差異極大時以及在有隨意的丟失模式時也是如此。一般而言,通信信道是將發(fā)送方與接收方相連以進(jìn)行數(shù)據(jù)傳輸之用。通信信道可能是實時信道,其中該信道在得到數(shù)據(jù)是將該數(shù)據(jù)從發(fā)送方移到接收方,或者通信信道可能是在從發(fā)送方到接收方的傳送中存儲部分或所有數(shù)據(jù)的存儲信道。后者的示例是盤存儲或其它存儲設(shè)備。在該示例中,產(chǎn)生數(shù)據(jù)的程序或設(shè)備可被視為向存儲設(shè)備傳送數(shù)據(jù)的發(fā)送方。接收方是從該存儲設(shè)備讀取數(shù)據(jù)的程序或設(shè)備。發(fā)送方用以將數(shù)據(jù)放至存儲設(shè)備上的機(jī)制、存儲設(shè)備本身以及接收方用以從存儲設(shè)備獲得數(shù)據(jù)的機(jī)制一起形成信道。如果這些機(jī)制或存儲設(shè)備有丟失數(shù)據(jù)的可能,則這將被示為通信信道中的數(shù)據(jù)刪除。當(dāng)發(fā)送方和接收方相隔其中碼元可能被刪除的通信信道時,較優(yōu)地是不傳送輸入文件或流送的精確副本,而是傳送從該輸入文件或流送生成的有助于恢復(fù)刪除的數(shù)據(jù)(可能包括輸入文件或流送本文的全部或部分)。編碼器是處理該任務(wù)的電路、設(shè)備、模塊或代碼段。一種査看編碼器的操作的方法是編碼器從輸入碼元生成輸出碼元,其中輸入碼元值的序列代表輸入文件或流送的塊。每個輸入碼元將由此在該輸入文件或流送塊中具有位置以及值。解碼器是從接收方接收到的輸出碼元重構(gòu)輸入碼元的電路、設(shè)備、模塊或代碼段。在多級編碼中,編碼器和解碼器被進(jìn)一步分為各自執(zhí)行不同任務(wù)的子模塊。在多級編碼系統(tǒng)的實施例中,編碼器和解碼器可被分為各自執(zhí)行不同任務(wù)的子模塊。例如,在某些實施例中,編碼器包括本文所稱的靜態(tài)編碼器和動態(tài)編碼器。如本文所使用的,"靜態(tài)編碼器"是從輸入碼元集生成多個冗余碼元的編碼器,其中冗余碼元的數(shù)目是編碼之前確定的。靜態(tài)編碼碼的示例包括Reed-Solomon碼、Tornado碼、Hamming碼、低密度奇偶校驗(LDPC)碼等。術(shù)語"靜態(tài)解碼器"在本文被用于表示可將由靜態(tài)編碼器編碼的數(shù)據(jù)解碼的解碼器。如本文所使用的,"動態(tài)編碼器"是從輸入碼元集以及可能的冗余碼元集生成輸出碼元的編碼器。在本文所述的一個優(yōu)選實施例中,可能的輸出碼元的數(shù)目大于輸入碼元數(shù)目的量級,且要生成的輸出碼元的數(shù)目無需固定。這種動態(tài)編碼器的一個示例是連鎖反應(yīng)編碼器,諸如LubyI和LubyII中所述的編碼器。術(shù)語"動態(tài)解碼器"在本文用來表示可將由動態(tài)編碼器編碼的數(shù)據(jù)解碼的解碼器。多域編碼的實施例無需限于特定類型的輸入碼元。通常,輸入碼元的值是從針對某一正數(shù)值M的2M個碼元的字母表中選出的。在這種情形下,輸入碼元可用來自輸入文件或流送的數(shù)據(jù)的M個比特的序列來表示。M的值常基于例如應(yīng)用的使用、通信信道、和/或輸出碼元的大小來確定。另夕卜,輸出碼元的大小?;趹?yīng)用、信道、和/或輸入碼元的大小來確定。在某些情形下,如果輸出碼元值和輸入碼元值具有相同的大小(即可由相同數(shù)目的比特來表示或選自同一字母表)則編碼過程可以被簡化。如果是這種情形,則當(dāng)輸出碼元值大小有限時輸入碼元值大小也是有限的。例如,可能希望將輸出碼元放在有限大小的分組中。如果關(guān)于與輸入碼元相關(guān)聯(lián)的鍵有關(guān)的某些數(shù)據(jù)要被傳送以在接收機(jī)處恢復(fù)該鍵,則輸出碼元較優(yōu)地小到足以在一個分組中容納輸出碼元值以及關(guān)于該鍵的數(shù)據(jù)。作為示例,如果輸入文件是若干兆字節(jié)的文件,則輸入文件可被分裂成數(shù)千、數(shù)萬、或數(shù)十萬個輸入碼元,其中每個輸入碼元編碼數(shù)千、數(shù)百、或僅數(shù)個字節(jié)。作為另一示例,對于基于分組的因特網(wǎng)信道,具有1024字節(jié)大小的有效載荷的分組可能是合適的(l字節(jié)為8比特)。在該示例中,假定每個分組包含一個輸出碼元和8字節(jié)的附屬信息,8128比特((1024-8)*8)的輸出碼元大小將是合適的。因此,輸入碼元大小可被選為M氣1024-8y8或8128個比特。作為另一示例,某些視頻分發(fā)系統(tǒng)使用MPEG分組標(biāo)準(zhǔn),其中每個分組的有效載荷包括188個字節(jié)。在該示例中,假定每個分組包含一個輸出碼元和4字節(jié)的附屬信息,1472比特((188-4)*8)的輸出碼元大小將是合適的。因此,輸入碼元大小可被選為M=(188-4)*8或1472個比特。在使用多級編碼的通甩通信系統(tǒng)中,諸如輸入碼元大小(即,輸入碼元所編碼的比特的數(shù)目M)等應(yīng)用專屬參數(shù)可以是根據(jù)應(yīng)用所設(shè)的變量。作為另一示例,對于使用可變大小源分組發(fā)送的流送,碼元大小可被選成相當(dāng)小,以使得每個源分組可用總大小至多略大于該源分組的整數(shù)個輸入碼元來覆蓋。每個輸出碼元具有一值。在以下我們所考慮的一優(yōu)選實施例中,每個輸出碼元還具有與其相關(guān)聯(lián)的標(biāo)識符——被稱為"鍵"。較優(yōu)地,每個輸出碼元的鍵可被接收方容易地確定以允許接收方將一個輸出碼元從其它輸出碼元當(dāng)中區(qū)別開。較優(yōu)地,輸出碼元的鍵與所有其他輸出碼元的鍵不同。在現(xiàn)有技術(shù)中討論了各種形式的鍵控。例如,Lubyl描述了可在本文所述的實施例中采用的各種形式的鍵控。在有數(shù)據(jù)刪除的預(yù)料或接收方?jīng)]有正好在傳輸開始和結(jié)束時開始和結(jié)束接收的情形下,多域多級編碼尤其有用。后者情形在本文被稱為"數(shù)據(jù)不完整性"。關(guān)于刪除事件,多級編碼享有LubyI中所述的連鎖反應(yīng)碼的許多益處。特別地,多級碼可以是噴泉碼、或無率碼,在這種情形下,針對固定值的輸入碼元集可生成比輸入碼元多許多倍的不同輸出碼元,并且可使用任意合適數(shù)目的不同輸出碼元來將輸入碼元恢復(fù)至所需的精確度。當(dāng)使用了多域多級編碼時,這些情形不會有害地影響通信過程,因為用多域多級編碼生成的輸出碼元是信息加性的。例如,如果由于噪聲突發(fā)而引起一百個分組丟失從而導(dǎo)致數(shù)據(jù)刪除,則可在該突發(fā)之后拾取額外的一百個分組來代替所被刪除的分組的丟失。如果由于接收機(jī)在發(fā)射機(jī)開始發(fā)射時沒有調(diào)諧至該發(fā)射機(jī)而使得數(shù)千個分組丟失,則接收機(jī)可僅從任何其它傳輸期或甚至從另一發(fā)射機(jī)拾取這數(shù)千個分組。采用多域多級編碼,接收機(jī)不局限于拾取任何特定的分組集合,所以它能從一個發(fā)射機(jī)接收某些分組,切換到另一發(fā)射機(jī),丟失某些分組,錯過給定傳輸?shù)拈_始或結(jié)束,且仍然恢復(fù)輸入文件或流送塊。在無需接收機(jī)-發(fā)射機(jī)協(xié)調(diào)的情況下加入和離開傳輸?shù)哪芰τ兄诤喕ㄐ胚^程。在某些實施例中,使用多域多級編碼傳送文件或流送可包括從輸入文件或流送塊生成、形成或提取輸入碼元,計算冗余碼元,將輸入和冗余碼元編碼為一個或多個輸出碼元,其中每個輸出碼元是基于鍵獨立于所有其它輸出碼元而生成的,以及在信道上向一個或多個接收方傳送輸出碼元。另外,在某些實施例中,使用多域多級編碼接收(并重構(gòu))輸入文件或流送塊的副本可包括從一個或多個數(shù)據(jù)流送接收輸出碼元的某些集或子集,并從接收到的輸出碼元的值和鍵來解碼輸入碼元。本文所述的合適FEC刪除碼可被用來克服上述困難并且將在包括多媒體廣播和多播系統(tǒng)及服務(wù)的眾多領(lǐng)域中找到用途。以下稱為"多域多級連鎖反應(yīng)碼"的FEC刪除碼具有滿足這些系統(tǒng)和服務(wù)的許多當(dāng)前和將來要求的屬性。多域多級連鎖反應(yīng)碼的某些基本屬性是對于任何分組丟失情況和對于任何相關(guān)大小的源文件或任何相關(guān)速率的流送的遞送(a)每個個體接收機(jī)設(shè)備("RD")的接收開銷被最小化;(b)將源文件遞送至任意數(shù)目的RD所需的總傳輸時間可被最小化;(c)在選擇合適的傳輸調(diào)度的情況下對于相對于輸入碼元的數(shù)目所發(fā)送的輸出碼元的數(shù)目能夠使得遞送至任意數(shù)目的RD的流送的質(zhì)量被最大化。RD可能是手持設(shè)備,被嵌入到車輛中、便攜式的(即,可移動但在使用時通常不移動)或者被固定到一位置上。解碼所需的工作存儲器的量較低且仍然能夠提供以上屬性,且編解碼所需的計算量最小。在該文檔中,我們?yōu)槎嘤蚨嗉夁B鎖反應(yīng)碼的某些變形提供了簡易實現(xiàn)的描述。多域多級連鎖反應(yīng)碼是噴泉碼,即可在過程中根據(jù)需要生成編碼分組,其中每個包含對于恢復(fù)源文件或流送塊同樣有用的唯一編碼碼元。相比于其它類型的FEC碼,使用噴泉碼有許多優(yōu)點。一個優(yōu)點是不論分組丟失情況和RD可用性如何,噴泉碼將每個RD用以重構(gòu)源文件或流送塊所需要接收的編碼分組的數(shù)目最小化。這即使在較差的分組丟失情況下和當(dāng)例如移動RD在較長的文件下載會話期間僅間歇地開啟或可用時也是如此。另一優(yōu)點是正好生成所需要的數(shù)目個編碼分組的能力,從而在傳輸正在迸行時關(guān)于在過程中生成多少編碼分組作出決策。這在例如有來自RD的指示它們是否接收到足以恢復(fù)源文件或流送塊的反饋的情況下是有用的。當(dāng)分組丟失情況比預(yù)期的較輕時,傳輸可以及早終止。當(dāng)分組丟失情況比預(yù)期更嚴(yán)重或RD比預(yù)期更頻繁地不可用時,傳輸可被無縫地延長。另一優(yōu)點是逆多路復(fù)用的能力。逆多路復(fù)用是在RD能夠組合所接收到的在獨立發(fā)送方處生成的編碼分組以重構(gòu)源文件或流送塊時。逆多路復(fù)用的一個實際用途將在以下參照從不同發(fā)送方接收編碼分組來進(jìn)行描述。在將來的分組丟失、RD可用性以及應(yīng)用狀況難以預(yù)測的情況下,選擇盡可能靈活的FEC方案以在不可預(yù)測的狀況下良好工作是非常重要的。多級連鎖反應(yīng)碼提供了其它類型的FEC碼所無法媲美的靈活性程度。多域多級碼的又一優(yōu)點是該碼的差錯概率和差錯基底比具有等價計算復(fù)雜度的先前己知的碼低得多。同樣,多域多級連鎖反應(yīng)碼的計算復(fù)雜度比具有等價差錯概率和/或差錯基底的先前已知的碼低得多。多域多級連鎖反應(yīng)碼的另一優(yōu)點是諸如碼元大小和域大小等參數(shù)可以靈活選擇,以在計算復(fù)雜度與差錯概率和/或差錯基底之間實現(xiàn)任何所需的平衡。系統(tǒng)概述圖1是使用多級編碼的通信系統(tǒng)100的框圖。在通信系統(tǒng)100內(nèi),向輸入碼元生成器110提供輸入文件101或輸入流105。輸入碼元生成器110從輸入文件或流生成一個或多個輸入碼元的序列(IS(0),IS(1),IS(2),…),每個輸入碼元有值和位置(在圖1內(nèi)用括號內(nèi)的整數(shù)表示)。如上所述,對于輸入碼元的可能值,即其字母表一般是2M個碼元,使得每個輸入碼元編碼為輸入文件的M個比特。值M—般通過使用通信系統(tǒng)100確定,但通用系統(tǒng)可以包括輸入碼元生成器IIO的碼元大小輸入,使得M可以隨每次使用而改變。輸入碼元生成器110的輸出可以被提供給編碼器115。靜態(tài)鍵生成器130生成靜態(tài)鍵S。,S…的流送。生成的靜態(tài)鍵數(shù)一般是有限的,且取決于編碼器115的特定實施例。靜態(tài)鍵的生成在以下將接著更詳細(xì)地描述。動態(tài)鍵生成器120為每個要由編碼器115生成的輸出碼元生成一動態(tài)鍵。每個動態(tài)鍵被生成使得同一輸入文件或流送塊的動態(tài)鍵的很大部分是唯一的。例如,LubyI描述可以使用的鍵生成器的實施例。動態(tài)鍵生成器120和靜態(tài)鍵生成器130的輸出被提供給編碼器115。從動態(tài)鍵生成器120提供的每個鍵I,編碼器115從輸入碼元生成器提供的輸入碼元生成輸出碼元,其值為B(I)。編碼器115的操作在以下將詳述。每個輸出碼元的值是基于其鍵、一個或多個輸入碼元的某些函數(shù)以及可能從輸入碼元計算出的一個或多個冗余碼元被生成。產(chǎn)生特定輸出碼元的輸入碼元和冗余碼元的集合在此被稱為輸出碼元的"關(guān)聯(lián)碼元"或就是其"關(guān)聯(lián)"。函數(shù)("值函數(shù)")的選擇以及相關(guān)是根據(jù)以下更詳細(xì)描述的過程完成的。一般,但不總是,M對于輸入和輸出碼元是相同的,即它們都編碼為相同數(shù)目的比特。在某些實施例中,輸入碼元數(shù)K被編碼器115用于選擇關(guān)聯(lián)。如果K事先未知,諸如輸入是流文件,則K可以只是一個估計。值K還可以被編碼器115用于為輸入碼元和任何由編碼器115生成的中間碼元分配存儲。編碼器115提供輸出碼元給發(fā)射模塊140。發(fā)射模塊140還被提供了來自動態(tài)鍵生成器120的每個該種輸出碼元的鍵。發(fā)射模塊140發(fā)送輸出碼元,且取決于使用的鍵方法,發(fā)送模塊140可能在信道145上將某些關(guān)于發(fā)送的輸出碼元的鍵的某些數(shù)據(jù)發(fā)送到接收模塊150。信道145被假設(shè)為刪除信道,但這不是通信系統(tǒng)100的合適操作的需要。模塊140、145和150還可以是任何合適的硬件組件、軟件組件、物理介質(zhì)或其任何組合,只要發(fā)射模塊140用于將輸出碼元和任何關(guān)于鍵需要的數(shù)據(jù)發(fā)送到信道145,且接收模塊150用于從信道145接收碼元,以及潛在的某些關(guān)于其鍵的數(shù)據(jù)。K的值如果被用于確定關(guān)聯(lián),則可以在信道145上被發(fā)送,或可以事先按照編碼器115和解碼器155的同意而被設(shè)定。如上解釋的,信道145可以是實時信道,諸如通過因特網(wǎng)的路徑或從電視發(fā)射機(jī)到電視接收機(jī)或從一點到另一點的電話連接的廣播鏈路,或信道145可以是存儲信道,諸如CD-ROM、盤驅(qū)動、萬維網(wǎng)站等。信道145甚至可以是實時信道和存儲信道的組合,諸如當(dāng)個人將輸入文件在電話線上從個人計算機(jī)發(fā)送到因特網(wǎng)服務(wù)提供商(ISP)時形成的信道,輸入文件被存儲在萬維網(wǎng)服務(wù)器上,接著通過因特網(wǎng)被發(fā)送到接收者。由于信道145被假設(shè)是刪除信道,通信系統(tǒng)100不假設(shè)從接收模塊150出來的輸出碼元和進(jìn)入發(fā)射模塊140的輸出碼元間的一對一對應(yīng)。實際上,當(dāng)信道145包括分組網(wǎng)絡(luò)時,通信系統(tǒng)100可能甚至不能假設(shè)在通過信道145時保留了任何兩個或多個分組的相對順序。因此,使用一個或多個上述的鍵方案的輸出碼元的鍵被確定,且不需要按輸出碼元離開接收模塊150的順序確定。接收模塊150將輸出碼元提供給解碼器155,且任何數(shù)據(jù)接收模塊150接收這些輸出碼元的鍵,這些鍵被提供給動態(tài)鍵再生器160。動態(tài)鍵再生器160再生接收到的輸出碼元的動態(tài)鍵并將這些動態(tài)鍵提供給解碼器155。靜態(tài)鍵生成器163再生靜態(tài)鍵S。,S,...并將其提供給解碼器155。靜態(tài)鍵生成器訪問在編碼和解碼過程中都使用的隨機(jī)數(shù)生成器135。如果隨機(jī)數(shù)就在該種設(shè)備上生成,則這可以是以對該相同物理設(shè)備訪問的形式,或是以該相同算法訪問的形式來用于生成隨機(jī)數(shù)以獲得相同的行為。解碼器155使用動態(tài)鍵生成器160和靜態(tài)鍵生成器163提供的鍵連同對應(yīng)的輸出碼元以恢復(fù)輸入碼元(同樣IS(0),IS(1),IS(2),...)。解碼器155將恢復(fù)的輸入碼元提供給輸入文件重編器165,該重編器生成輸入文件101或輸入流105的副本170。連鎖反應(yīng)編碼器生成的輸出碼元的一個屬性是接收機(jī)能夠一旦已經(jīng)接收到足夠的輸出碼元就能夠恢復(fù)原始文件或原始流送的塊。特別地,為了以較高概率恢復(fù)原始K個輸入碼元,接收機(jī)需要近似K+A個輸出碼元。比率A/K被稱為"相對接收開銷"。相對接收開銷取決于輸入碼元的數(shù)目、以及解碼器的可靠性。LubyI、LubyII以及ShokrollahiI提供了可在特定實施例中使用的系統(tǒng)和方法的教學(xué)。然而應(yīng)該理解的是,這些系統(tǒng)和方法并不是本發(fā)明所必需的,也可使用許多其它變形、修改、或替換方案。編碼器圖2是圖1內(nèi)示出的編碼器115的一個特定實施例框圖。編碼器115包括靜態(tài)編碼器210、動態(tài)編碼器220以及冗余計算器230。靜態(tài)編碼器210接收以下輸入a)由輸入碼元生成器110提供并存儲在輸入碼元緩沖器205內(nèi)的原始輸入碼元(IS(0),IS(1),…,IS(K-1));b)原始輸入碼元數(shù)K;c)由靜態(tài)鍵生成器130提供的靜態(tài)鍵&^1,...;以及d)冗余碼元數(shù)R。在接收到這輸入后,靜態(tài)編碼器205計算R個冗余碼元RE(0),RE(1),...,RE(R-l),如下描述。一般但不總是冗余碼元與輸入碼元有相同大小。在一特定實施例中,靜態(tài)編碼器210生成的冗余碼元被存儲在輸入碼元緩沖器205內(nèi)。輸入碼元緩沖器205可以只是邏輯的,即文件或流送塊可以物理地被存儲在一個地方,而碼元緩沖器205內(nèi)的輸入碼元的位置可能只是原始文件或流送塊內(nèi)的這些碼元位置的重命名。動態(tài)編碼器接收輸入碼元和冗余碼元,且如以下詳述地生成輸出碼元。在一實施例中,其中冗余碼元被存儲到輸入碼元緩沖器205內(nèi),動態(tài)編碼器220從輸入碼元緩沖器205接收輸入碼元和冗余碼元。冗余計算器230從輸入碼元的數(shù)目K計算冗余碼元的數(shù)目R。該計算在以下詳述。靜態(tài)編碼器概覽靜態(tài)編碼器210的一般操作參考圖3和4示出。圖3是說明靜態(tài)編碼方法的一實施例的簡化流程圖。在步驟305,變量j跟蹤已生成多少冗余碼元,該值被設(shè)定為零。然后,在步驟310,第一冗余碼元RE(O)作為輸入碼元IS(O),...,IS(K-l)的至少某些的函數(shù)Fo被計算。然后在步驟315,變量j遞增。接著,在步驟320,測試是否所有的冗余碼元均被生成了(即j是否大于R-l)。如果是,則流程結(jié)束。否則,流程進(jìn)行到步驟325。在步驟325,RE(j)作為輸入碼元IS(O),...,IS(K-l)和先前生成的冗余碼元RE(0),…,RE(j-l)的函數(shù)巧被計算,其中巧不需要是取決于每個輸入碼元或每個冗余碼元的函數(shù)。步驟315、320和325經(jīng)重復(fù)直到已計算了R個冗余碼元。再次回到圖1和2,在某些實施例中,靜態(tài)編碼器210從靜態(tài)鍵生成器130接收一個或多個靜態(tài)鍵S。,&,...。在這些實施例中,靜態(tài)編碼器210使用靜態(tài)鍵以確定某些或所有的函數(shù)F。,F"...^,。例如,靜態(tài)S??梢杂糜诖_定函數(shù)F。,靜態(tài)鍵S可以被用于確定函數(shù)《等?;蛞粋€或多個靜態(tài)鍵S。,^,...可以被用于確定函數(shù)F。,一個或多個靜態(tài)鍵;S,…可以用于確定函數(shù)巧等。在其他實施例中,不需要靜態(tài)鍵,因此不需要靜態(tài)鍵生成器130?;氐綀D2和3,在某些實施例中,靜態(tài)編碼器210生成的冗余碼元可以被存儲在輸入碼元緩沖器205中。圖4是靜態(tài)編碼器210的一實施例的操作的簡化說明。尤其是,靜態(tài)編碼器210用從輸入碼元緩沖器205接收到的輸入碼元IS(O),...,IS(K-l),RE(O),...,RE(j-l)的函數(shù)巧生成冗余碼元RE(j),并將其存儲回輸入碼元緩沖器205。函數(shù)F。,巧,...^—,的準(zhǔn)確形式取決于特定應(yīng)用。一般但不總是,函數(shù)巧,巧,...^_1包括某些或所有它們對應(yīng)的參變量的異或。如上描述,這些函數(shù)可以實際上采用或可不采用圖1的靜態(tài)鍵生成器130生成的靜態(tài)鍵。例如,在以下描述的一個特定實施例,開始一些函數(shù)實現(xiàn)Hamming碼且不使用任何靜態(tài)鍵S。,^,...,而剩余函數(shù)實現(xiàn)低密度奇偶校驗編碼并顯式使用靜態(tài)鍵。多級編碼器概覽再次參照圖2,動態(tài)編碼器220接收輸入碼元IS(O),...,IS(K-l)以及冗余碼元RE(O),...,RE(R-l)以及要生成的每個輸出碼元的鍵I。該集合包括原始輸入碼元及冗余碼元,此后會被稱為"動態(tài)輸入碼元"集合。圖5是動態(tài)編碼器的一個實施例的簡易框圖,包括權(quán)重選擇器510、關(guān)聯(lián)器515、值函數(shù)選擇器520以及計算器525。如圖5所示,K+R個動態(tài)輸入碼元被存儲在動態(tài)碼元緩沖器505中。實際上,動態(tài)編碼器500執(zhí)行圖6中所示的動作,即作為所選輸入碼元的某一值函數(shù)生成輸出碼元值B(I)。圖7是靜態(tài)編碼器的一個特定實施例的簡易框圖。靜態(tài)編碼器600包括參數(shù)計算器605、低密度奇偶校驗(LDPC)編碼器610、以及高密度奇偶校驗(HDPC)編碼器620。LDPC編碼器610被耦合用以從輸入碼元緩沖器625接收輸入碼元18(0),...18(1),輸入碼元的數(shù)目K、以及參數(shù)E。作為響應(yīng),LDPC編碼器610根據(jù)LDPC碼生成E個冗余碼元LD(O),...,LD(E-l)。接著,HDPC編碼器620被耦合以接收K+E個碼元IS(0),…IS(K-1),LD(0),…,LD(E-1)中的多個以及參數(shù)D來根據(jù)HDPC碼生成D個冗余碼元HA(O),HA(l),...,HA(D-l)。圖8示出了采用圖7中所示的靜態(tài)編碼器的一個實施例的操作。圖9是示出了諸如圖7的參數(shù)計算器605的參數(shù)計算器的一個實施例的簡易流程圖,當(dāng)HDPC碼為Hamming碼時該參數(shù)計算器計算如上所述的參數(shù)D和E。首先,在步驟705,參數(shù)D被初始化為1。然后,在步驟710,確定2D-D-1是否小于K。如果為否,則流程行進(jìn)到步驟730。如果為是,則流程行進(jìn)到步驟720,其中參數(shù)D遞增。然后,流程回到步驟710。一旦D已經(jīng)確定,則在步驟730將參數(shù)E計算為R-D-1。圖IO是根據(jù)本發(fā)明的一個實施例的編碼器的簡易流程圖,現(xiàn)在將對其進(jìn)行描述。首先在歩驟805,變量i被初始化為0。變量i跟蹤已經(jīng)生成的冗余碼元的數(shù)目。在步驟810,數(shù)目t被計算為大于或等于K/2的最小奇數(shù)整數(shù)。在步驟815,基于K、t、以及靜態(tài)鍵Si生成值Pi,P2,…,Pt。值Pi,P2,…,Pt指示將被用來生成冗余碼元的輸入碼元的位置。在一個特定實施例中,諸如圖5的關(guān)聯(lián)器515的關(guān)聯(lián)器被用來生成P,,P2,…,Pt。特別地,值t可被提供作為W(I)輸入,值K可被提供作為K+R輸入,而靜態(tài)鍵Si可被提供作為鍵I輸入。應(yīng)該注意,許多不同的t值將產(chǎn)生類似的編碼效果,因此該特定選擇僅是示例。在步驟820,RE(i)的值被計算為值IS(Pi),IS(P2),…,IS(Pt)的XOR。在步驟825,變量i被遞增1以準(zhǔn)備下一冗余碼元的計算,而在步驟830,確定是否已生成所有的冗余碼元。如果為否,則流程返回步驟815。圖U是示出了根據(jù)本發(fā)明的解碼器的一個實施例的簡易框圖。解碼器900可被用于例如實現(xiàn)圖1的解碼器155。解碼器900包括動態(tài)解碼器905和靜態(tài)解碼器910。動態(tài)解碼器905恢復(fù)的輸入碼元和冗余碼元被存儲在重構(gòu)緩沖器915中。一旦完成動態(tài)解碼,靜態(tài)解碼器910嘗試恢復(fù)動態(tài)解碼器卯5所未恢復(fù)的任何輸入碼元(若有)。特別地,靜態(tài)解碼器910從重構(gòu)緩沖器915接收輸入碼元和冗余碼元。圖12是示出了根據(jù)本發(fā)明的用于解碼的方法的一個實施例的簡易流程圖。在步驟1005,解碼器接收到Q個輸出碼元。Q的值可取決于輸入碼元的數(shù)目和所使用的該具體的動態(tài)編碼器。Q的值還取決于解碼器能夠恢復(fù)輸入碼元所需達(dá)到的精確度。例如,如果希望解碼器能夠以較高概率恢復(fù)所有輸入碼元,則Q應(yīng)被選成大于輸入碼元的數(shù)目。特別地,在特定實現(xiàn)中,當(dāng)輸入碼元的數(shù)目較大時,Q可以比原始輸入碼元的數(shù)目大不超過3%。在其它應(yīng)用中,當(dāng)輸入碼元的數(shù)目較小時,Q可以比輸入碼元的數(shù)目大至少10%。特別地,Q可被選為輸入碼元的數(shù)目K加上數(shù)目A,其中A被選成確保解碼器能夠以較高概率再生所有輸入碼元。數(shù)目A的確定在以下具體描述。如果解碼器不能解碼所有輸入碼元(或者有時或者總是)是可接受的,則Q可以小于K+A、等于K、或甚至小于K。顯然,總體編碼系統(tǒng)的一個目標(biāo)將是盡可能地減小數(shù)目Q,同時保持解碼過程關(guān)于所需精確度的成功有較佳的概率保證。在步驟1010,動態(tài)解碼器卯5從Q個接收到的輸出碼元再生輸入碼元和冗余碼元。應(yīng)該理解的是,步驟1005和IOIO可基本同時執(zhí)行。例如,32動態(tài)解碼器905可在解碼器接收Q個輸出碼元之前再生輸入碼元和冗余碼元。在動態(tài)解碼器卯5已經(jīng)處理Q個輸出碼元之后,則確定輸入碼元是否已被恢復(fù)到所需的精確度。所需精確度可以是例如所有輸入碼元、或者某一數(shù)目或百分比地少于所有輸入碼元。如果是,則流程結(jié)束。如果否,則流程行進(jìn)到步驟1020。在步驟1020,靜態(tài)解碼器910嘗試恢復(fù)動態(tài)解碼器未能恢復(fù)的任何輸入碼元。在靜態(tài)編碼器910已經(jīng)處理動態(tài)編碼器905所恢復(fù)的輸入碼元和冗余碼元之后,則流程結(jié)束。圖13是根據(jù)本發(fā)明的用于解碼的方法的另一實施例的簡易流程圖。該實施例類似于關(guān)于圖11所述的實施例,并且包括相同步驟1005、1010、1015、和1025。但在步驟1025之后,流程行進(jìn)到步驟1030,其中確定輸入碼元是否已經(jīng)被恢復(fù)到所需的精確度。如果是,則流程結(jié)束。如果否,則流程行進(jìn)到步驟1035。在步驟1035,接收到一個或多個額外輸入碼元。然后,流程行進(jìn)返回步驟1010,從而使得動態(tài)解碼器905和/或靜態(tài)解碼器910可嘗試恢復(fù)剩余未恢復(fù)的輸入碼元。圖14是示出根據(jù)本發(fā)明的用于解碼的又一實施例的簡易流程圖。在步驟1055中,解碼器接收到輸出碼元,并且在步驟1060,動態(tài)解碼器905從接收到的輸出碼元再生輸入碼元和冗余碼元。然后,在步驟1065,確定動態(tài)解碼是否應(yīng)結(jié)束。該確定可基于經(jīng)處理的輸出碼元的數(shù)目、所恢復(fù)的輸入碼元的數(shù)目、額外輸入碼元正被恢復(fù)的當(dāng)前速率、處理輸出碼元所費的時間等中的一個或多個。在步驟1065,如果確定將不停止動態(tài)解碼,則流程行進(jìn)返回到步驟1055。但如果在步驟1065確定要結(jié)束動態(tài)解碼,則流程行進(jìn)到步驟1070。在步驟1070,確定輸入碼元是否已被恢復(fù)到所需的精確度。如果是,則流程結(jié)束。如果否,則流程行進(jìn)到步驟1075。在步驟1075,靜態(tài)解碼器910嘗試恢復(fù)動態(tài)解碼器905未能恢復(fù)的任何輸入碼元。在靜態(tài)編碼器910已經(jīng)處理動態(tài)編碼器905所恢復(fù)的輸入碼元和冗余碼元之后,流程結(jié)束。圖15示出了根據(jù)本發(fā)明的動態(tài)解碼器的一個實施例。動態(tài)解碼器1100包括如圖5中所示的動態(tài)編碼器500的相似組件。解碼器1100類似于LubyI和LubyII中所述連鎖反應(yīng)解碼器的實施例。動態(tài)解碼器1100包括權(quán)重選擇器510、關(guān)聯(lián)器515、值函數(shù)選擇器520、輸出碼元緩沖器1105、減縮器1115、重構(gòu)器1120以及重構(gòu)緩沖器1125。圖16是示出了靜態(tài)解碼器的一個實施例的簡易框圖。該實施例可在數(shù)據(jù)用諸如參照圖7所述的靜態(tài)編碼器編碼時使用。靜態(tài)解碼器1200包括LDPC解碼器1205和Hamming解碼器1210。LDPC解碼器1205從重構(gòu)緩沖器1215接收輸入碼元和冗余碼元,并重試恢復(fù)重構(gòu)緩沖器1215當(dāng)中在動態(tài)解碼器的解碼步驟之后未能恢復(fù)的那些碼元。在某些實施例中,重構(gòu)緩沖器1215是重構(gòu)緩沖器1125(圖15)。LDPC解碼器和HDPC解碼器的許多變形是本領(lǐng)域的技術(shù)人員己知的,并且可在根據(jù)本發(fā)明的各種實施例中采用。在一個特定實施例中,HDPC解碼器是使用高斯消去算法實現(xiàn)的。高斯消去算法的許多變形是本領(lǐng)域的技術(shù)人員所公知的,并且可在根據(jù)本發(fā)明的各種實施例中采用。HDPC編碼的變形現(xiàn)在描述另一類型的HDPC編碼。在該HDPC編碼的實施例中,用于從給定數(shù)據(jù)集創(chuàng)建冗余碼元的數(shù)學(xué)運算是基于有限域中的運算。在該HDPC編碼的實施例中,有限域的元素被用來獲得冗余碼元HD[O],...,HD[D-l]。這些碼元是通過如上所述地在碼元IS[O],...,IS[K-l],LD[O],...,LD[E-l]與有限域的元素之間定義乘法過程獲得的。HDPC編碼當(dāng)使用HDPC編碼時,該碼可通過有限域GF(2,上的生成矩陣來描述。在碼是系統(tǒng)性的時,在優(yōu)選實施例中即這種情形,生成矩陣可以僅使用K+E個輸入碼元IS,…,IS[K-1],LD,…,LD[E-1]與冗余碼元HD,…,HD[D-1]之間的關(guān)系來描述。這一被稱為G的矩陣其形式為Dx(K+E)。如果I標(biāo)示包括碼元HD[O],...,HD[D-l]的列向量且S標(biāo)示包括碼元IS[O],...,IS[K-l],LD[O],...,LD[E-l]的列向量,則得到X-G0S。以下描述矩陣G的更具體的實施例以及用于高效計算碼元的各種方法。變形上述多級連鎖反應(yīng)碼不是系統(tǒng)性碼,即源塊的所有原始源碼元不一定要在發(fā)送的編碼碼元當(dāng)中。然而,系統(tǒng)性FEC碼對于文件下載系統(tǒng)或服務(wù)是有用的,且對于流送系統(tǒng)或服務(wù)非常重要。如以下實現(xiàn)中所示的,一種經(jīng)過修改的碼可被制成系統(tǒng)性的且仍然保持噴泉碼和其它所述屬性。為何容易使用多級碼構(gòu)造各種補充服務(wù)的一個原因在于它可以組合從多個發(fā)送方接收到的編碼碼元以重構(gòu)源文件或流送而無需各發(fā)送方之間的協(xié)調(diào)。唯一要求是發(fā)送方使用不同的鍵集來生成它們在編碼分組中向該碼發(fā)送的編碼碼元。實現(xiàn)這一點的方法包括指定不同范圍的鍵空間以供每個發(fā)送方使用,或在每個發(fā)送方處隨機(jī)地生成鍵。作為這種能力使用的示例,考慮向文件下載服務(wù)提供一種補充服務(wù),以允許沒有接收到足夠的編碼分組的多級連鎖反應(yīng)碼,可從文件下載會話請求例如經(jīng)由HTTP會話從制作發(fā)送方發(fā)送附加的編碼分組,以重構(gòu)源文件。制作發(fā)送方從源文件生成編碼碼元并例如使用HTTP發(fā)送它們,且所有這些編碼碼元可與從文件下載會話接收的編碼碼元相組合以恢復(fù)源文件。使用該方法允許不同的發(fā)送方提供遞增的源文件遞送服務(wù)而無需各發(fā)送方之間的協(xié)調(diào),并確保每個個體接收機(jī)僅需要接收恢復(fù)每個源文件所要的最少數(shù)目的編碼分組。在源碼元的數(shù)目較小時——例如在數(shù)百到幾千個源碼元的量級時,如上所述的多級連鎖反應(yīng)碼的解碼可要求相對較大的開銷。在這種情形下,一種不同的解碼器是較優(yōu)的,諸如ShokrollahiIII中所公開的解碼器。如以下實現(xiàn)所示,可以為本文所公開的這類碼——使用ShokrollahiIII中公開的碼特征和概念并在維持解碼效率的同時為非常小數(shù)目的源碼元提供了低解碼誤差概率一一設(shè)計了一種經(jīng)修改的解碼算法。多域多級碼的各級的實現(xiàn)FEC方案定義使用這些技術(shù)的分組可用諸如包括源塊編號(SBN)(該分組內(nèi)的編碼碼元相關(guān)的源塊的16比特整數(shù)標(biāo)識符)和編碼碼元ID(ES1)(該分組內(nèi)的編碼碼元的16比特整數(shù)標(biāo)識符)的四個八位位組的FEC有效載荷ID等報頭信息來表示。源塊編號和編碼碼元標(biāo)識符的一種合適解釋在以下B節(jié)中定義。FEC對象傳輸信息可包括FEC編碼ID、傳送長度(F)以及以下定義的參數(shù)r、Z、W和j。參數(shù)r和z是i6比特?zé)o符號整數(shù),W和J是8比特?zé)o符號整數(shù)。根據(jù)需要,可使用其它整數(shù)。前向糾錯的FEC編碼方案在以下章節(jié)定義。其定義了兩種不同的FEC有效載荷ID格式,一種用于FEC源分組以及另一種用于FEC修復(fù)分組,但非系統(tǒng)性碼的變形也是可能的。源FEC有效載荷ID可包括源塊編號(SBN)(該分組內(nèi)的編碼碼元相關(guān)的源塊的16比特整數(shù)標(biāo)識符)和編碼碼元ID(ESI)(該分組內(nèi)的編碼碼元的16比特整數(shù)標(biāo)識符),而修復(fù)FEC有效載荷ID可包括源塊編號(SBN)(該分組內(nèi)的修復(fù)碼元相關(guān)的源塊的16比特整數(shù)標(biāo)識符)、編碼碼元ID(ESI)(該分組內(nèi)的修復(fù)碼元的16比特整數(shù)標(biāo)識符)、以及源塊長度(SBL)(16比特,表示源塊中源碼元數(shù)目)。源塊編號、編碼碼元標(biāo)識符以及源塊長度的解釋在以下定義。FEC對象傳輸信息可包括FEC編碼ID、以碼元計的最大源塊長度、和以字節(jié)計的碼元大小。碼元大小和最大源塊長度可包括四個八位位組——碼元大小(r)(16比特,表示以字節(jié)計的編碼碼元的大小的)和最大源塊長度(16比特,表示以碼元計的源塊最大長度的)。以下章節(jié)規(guī)定了系統(tǒng)性多域MSCR前向糾錯碼。多域MSCR碼是噴泉碼,即編碼器可在過程中從塊的源碼元生成如所需要的數(shù)目的編碼碼元。解碼器能夠從僅略多于源碼元數(shù)目的編碼碼元集恢復(fù)出源塊。本文檔中描述的碼是系統(tǒng)性碼,即原始源碼元未經(jīng)修改的與一定數(shù)目的修復(fù)碼元被從發(fā)送方發(fā)送到接收方。B.l定義、碼元和縮寫B(tài)丄l定義出于描述的目的,應(yīng)用以下術(shù)語和定義。源塊被一起考慮以作MSCR編碼之用的《個源碼元的塊。源碼元在編碼過程中使用的最小數(shù)據(jù)單元。源塊內(nèi)的所有源碼元具有相同大小。編碼碼元包括在數(shù)據(jù)分組中的碼元。編碼碼元包括源碼元和修復(fù)碼元。從源塊生成的修復(fù)碼元具有與源塊的源碼元相同的大小。系統(tǒng)性碼其中源碼元被包括作為針對源塊所發(fā)送的編碼碼元的一部分的碼。修復(fù)碼元針對源塊所發(fā)送的編碼碼元當(dāng)中不是源碼元的那些碼元。修復(fù)碼元是基于源碼元生成的。中間碼元使用逆編碼過程從源碼元生成的碼元。隨后直接從中間碼元生成修復(fù)碼元。編碼碼元不包括中間碼元,即中間碼元不包括在數(shù)據(jù)分組中。碼元數(shù)據(jù)單元。以字節(jié)計的碼元的大小被稱為碼元大小。編碼碼元組一起發(fā)送的一組編碼碼元,即同一分組內(nèi)其與源碼元的關(guān)系可從單個編碼碼元ID導(dǎo)出的一組編碼碼元。編碼碼元ID:定義編碼碼元組的各碼元與源碼元之間的關(guān)系的信息。編碼分組包含編碼碼元的數(shù)據(jù)分組子塊源塊有時被分裂為數(shù)個子塊,其中每一個子塊小到足以在工作存儲器中被解碼。對于包括尺個源碼元的源塊,每個子塊包括K個子碼元,源塊的每個碼元由來自每個子塊的一個子碼元構(gòu)成。子碼元碼元的一部分。源塊中有多少個子塊,每個源碼元就由多少個子碼元構(gòu)成。源分組包含源碼元的數(shù)據(jù)分組。修復(fù)分組包含修復(fù)碼元的數(shù)據(jù)分組。B.I.2.碼元表示正整數(shù)ceil(x)標(biāo)示大于或等于x的最小正整數(shù)choose(X力標(biāo)示可從/個對象當(dāng)中選出j'個對象而不重復(fù)的方法的數(shù)目floor(x)標(biāo)示小于或等于x的最大正整數(shù),.%./標(biāo)示/mod乂標(biāo)示,對于等長的比特串z和r,x和r的逐位異或標(biāo)示碼元對準(zhǔn)參數(shù)。碼元和子碼元大小限于」的倍數(shù)標(biāo)示矩陣A的轉(zhuǎn)置A-1標(biāo)示矩陣A的逆矩陣尺標(biāo)示單個源塊中的碼元數(shù)目<table>tableseeoriginaldocumentpage38</column></row><table><formula>formulaseeoriginaldocumentpage39</formula>標(biāo)示5x/Z零矩陣B.1.3縮寫出于本文獻(xiàn)的目的,應(yīng)用以下縮寫ESI:編碼碼元IDLDPC:低密度奇偶校驗LT:Luby變換SBN:源塊編號SBL:源塊長度(以碼元為單位)B.2.概覽MSCR前向糾錯碼可應(yīng)用于文件遞送和流送應(yīng)用兩者。專屬于這些應(yīng)用的每一個的MSCR碼特征在本文的B.3和B.4節(jié)中討論。系統(tǒng)性MSCR碼的組件是B.5節(jié)中描述的基本編碼器。首先,描述如何從原始源碼元導(dǎo)出中間碼元集的值以使得中間碼元的知識足以重構(gòu)源碼元。其次,編碼器產(chǎn)生各自為數(shù)個中間碼元的異或的修復(fù)碼元。編碼碼元是源碼元和修復(fù)碼元的組合。修復(fù)碼元是以使得中間碼元以及由此源碼元能夠從任何充分大的編碼碼元集恢復(fù)的方式產(chǎn)生的。本文定義了系統(tǒng)性MSCR碼編碼器。眾多可能的解碼算法是可能的。B.6節(jié)提供了高效解碼算法。中間碼元和修復(fù)碼元的構(gòu)造部分地基于B.5中所述的偽隨機(jī)數(shù)生成器。該生成器是基于發(fā)送方和接收方都可得到的512個隨機(jī)數(shù)的固定集合。附錄B.l和B.2中提供的是這些數(shù)的示例集合。最后,從源碼元構(gòu)造中間碼元是由"系統(tǒng)性索引"掌控的。在附錄A中針對從4個源碼元到KMAX=8192個源碼元的源塊大小示出了系統(tǒng)性索引的值的示例集合。B.3.文件下載B.3丄源塊構(gòu)造B.3丄l.概要為了對源文件應(yīng)用MSCR編碼器,文件可被分裂為&1個塊,被稱為嚴(yán)凝。MSCR編碼器獨立于每個源塊被應(yīng)用。每個源塊由唯一的整數(shù)源塊編號(SBN)來標(biāo)識,其中第一源塊具有SBN為零,第二源塊具有SBN為一,以此類推。每個源塊被分為各自大小為r個字節(jié)的尺個源^^力。每個源碼元由唯一的整數(shù)編碼碼元標(biāo)識符(ESO標(biāo)識,其中源塊的第一源碼元具有ESI零,第二源碼元具有ESI—,以此類推。具有尺個源碼元的每個源塊被分為小到足以在工作存儲器中被解碼的A/^l個子塊。每個子塊被分為大小為r的K個子碼元。注意《的值不一定對于文件的每個源塊都相同,且r的值對于源塊的每個子塊并不一定相同。然而,碼元大小r對于文件的所有源塊是相同的,且碼元的數(shù)目《對于源塊的每個子塊是相同的。以下B.3丄2節(jié)描述了將文件精確分割成源塊和子塊。圖17示出了放在兩維數(shù)組中的示例源塊,其中每項是r'字節(jié)的子碼元,每行是子塊且每列是源碼元。在該示例中,r'的值對于每個子塊相同。每個子碼元項中所示的數(shù)字指示它們在源塊內(nèi)的原始次序。例如,編號為《的子碼元包含源塊的字節(jié)r《到r乂《+i)-i。然后,源碼元/是來自子塊中每一個的第/個子碼元的級聯(lián),這些子碼元對應(yīng)于源塊當(dāng)中編號為/,K+/,2*K+f,...,(N-l》K+/。B.3丄2源塊和子塊分割源塊和子塊的構(gòu)造是基于5個輸入?yún)?shù)F、厶r、Z和以及函數(shù)Partition(分割)[]確定的。這五個輸入?yún)?shù)定義如下F按比特計的文件大小」按比特計的碼元對準(zhǔn)參數(shù)r按比特計的碼元大小——優(yōu)選地為」的倍數(shù)z源塊的數(shù)目w每個源塊中子塊的數(shù)目這些參數(shù)可被設(shè)成使得ceil(ceilCF7I)/Z)S《M^。這些參數(shù)的一些適當(dāng)推導(dǎo)的示例在B.3.4節(jié)中給出。函數(shù)Partition[]取用一對整數(shù)(/,力作為輸入并導(dǎo)出四個整數(shù)(//.,/5,4J》作為輸出。具體而言,Partition[/,J]的值是四個整數(shù)(/,.,厶、力.,A)的序列,其中/,=ceil(/〃),/,產(chǎn)floor(〃J),/,=/-厶'/,以及/fJ-々。Partition[]導(dǎo)出用于將大小為/的塊分割成J個近似相等大小的塊。具體而言,長度為&的.々個塊和40長度為A的A個塊。源文件可被如下分割成源塊和子塊令,(/^,&,Zi,Zs)=Partition^,Z](r丄,Wi,Ay=Partition[7Z4,W〗貝IJ,文件可被分割成^=&+&個連續(xù)源塊,前Zi個源塊各自具有長度&T個字節(jié),剩余&個源塊各自具有/Cr:r個字節(jié)。如果J^7^F,則出于編碼目的,最后的碼元可在末尾處用&T-f個零字節(jié)填充。接著,每個源塊可被劃分為W-^+W個連續(xù)子塊,前A^個子塊各自包括大小為71"的尺個連續(xù)子碼元,而剩余的A^個子塊各自包括大小為R"的《個連續(xù)子碼元。碼元對準(zhǔn)參數(shù)^確保各子碼元總是為^個字節(jié)的倍數(shù)。最后,源塊的第m個碼元包括來自W個子塊中每一個的第m個子碼元的級聯(lián)。B.3.2.編碼分組構(gòu)造B.3.2丄概要每個編碼分組包含源塊編號(SBN)、編碼碼元ID(ESI)和編碼碼元。每個源塊相互間獨立地進(jìn)行編碼。各源塊從零連續(xù)編號。從0到《-l的編碼碼元ID值標(biāo)識各源碼元。從K向前的編碼碼元ID標(biāo)識修復(fù)碼元。B.3.3.2.編碼分組構(gòu)造每個編碼分組較優(yōu)地或者包含源碼元(源分組)或包含修復(fù)碼元(修復(fù)分組)。分組可包含來自同一源塊的任意數(shù)目的碼元。在分組中的最后一個碼元包括出于FEC編碼目的而添加的填充字節(jié)的情況下,這些字節(jié)無需被包括在該分組中。否則,可包括僅所有碼元。每個源分組中所攜帶的編碼碼元ID,X,是該分組中所攜帶的第一個源碼元的編碼碼元ID。分組中的后續(xù)源碼元順序地具有編碼碼元ID,X+1到X+G-1,其中G是該分組中碼元的數(shù)目。類似地,被置于修復(fù)分組中的編碼碼元ID,Z,是該修復(fù)分組中第一個修復(fù)碼元的編碼碼元ID,且該分組中后續(xù)修復(fù)碼元順序地具有編碼碼元IDsJ+l到X+G-1,其中G是該分組中碼元的數(shù)目。注意接收方無需知道修復(fù)碼元的總數(shù)。被置于具有ESIZ的修復(fù)分組中的修復(fù)碼元的G個修復(fù)碼元三元組(40],。,討0]),…,(4G-l],。[G-l],i[G-l])是使用B.5.3.4中定義的三元組生成器如下計算出的對于每個z'-O,…,G-l剛,"10,W])=Trip[XW]將被置于具有ESIZ的修復(fù)分組中的G個修復(fù)碼元是使用中間碼元C和LT編碼器LTencp:,C,WW,"[!],£['1)]如B.5.3節(jié)中所述地基于修復(fù)碼元三元組計算出的。B.3.3.傳輸該節(jié)描述MSCR編碼器/解碼器與利用MSCR前向糾錯進(jìn)行文件遞送的任何傳輸協(xié)議之間的信息交換。用于文件遞送的MSCR編碼器和解碼器要求來自傳輸協(xié)議的以下信息以字節(jié)計的文件大小F、碼元對準(zhǔn)參數(shù)丄為^的倍數(shù)且以字節(jié)計的碼元大小、源塊數(shù)目Z、每個源塊中子塊的數(shù)目7V。用于文件遞送的MSCR編碼器另外要求被編碼的尸個字節(jié)的文件。MSCR編碼器向傳輸協(xié)議提供編碼分組信息,包括針對每個分組的SBN、ESI以及編碼碼元。傳輸協(xié)議可將該信息透明地傳達(dá)給MSCR解碼器。B.3.4.參數(shù)具體示例的細(xì)節(jié)B.3.4.1參數(shù)導(dǎo)出算法該節(jié)提供用于四個傳輸參數(shù)——提供良好結(jié)果的」、r、Z和7V—的導(dǎo)出的示例。這些是基于以下輸入?yún)?shù)F以字節(jié)計的文件大小『以字節(jié)計的子塊大小的目標(biāo)指標(biāo)尸以字節(jié)計的最大的分組有效載荷大小——被假定為^的倍數(shù)爿以字節(jié)計的碼元對準(zhǔn)茵子《k4x每源塊的最大源碼元數(shù)目《MW每源塊碼元數(shù)目的最小目標(biāo)指標(biāo)Gm^每分組的碼元數(shù)目的最大目標(biāo)指標(biāo)基于以上輸入,傳輸參數(shù)r、z和TV被計算如下-令,G=min(ceil(尸《A備/F),尸A4,G^1A〕-每分組的近似碼元數(shù)目r=floor(尸/04-G);MKt=ceil(/77)-文件中的碼元總數(shù)Z=ceil(A:,/&w)7V=min{ceil(ceil(/:,/Z)',),以上導(dǎo)出的G和W的值應(yīng)被考慮為下限。這對于將這些值增加至例如最近的2的冪是有利的。特別地,以上算法不保證碼元大小r除盡最大分組大小尸,所以可能不能夠使用正好為尸大小的分組。而如果G被選擇為除盡P/A的值,則碼元大小r將是尸的約數(shù),且可使用大小為尸的分組。輸入?yún)?shù)的合適值可以為『=256KB、^4=4、《細(xì)f4、以及G雄fl。B.3.4.2示例以上算法導(dǎo)致如圖18中所示的傳輸參數(shù),假定上述『、」、尺M(jìn)v、的值與P:512—起使用。B.4.流送B.4.1.源塊構(gòu)造源塊是由例如本文中所定義的傳輸協(xié)議來構(gòu)造的,以利用系統(tǒng)性MSCR前向糾錯碼。將用于源塊構(gòu)造和修復(fù)碼元構(gòu)造的碼元大小r是由傳輸協(xié)議提供的。參數(shù)r可被設(shè)成使得任何源塊中的源碼元數(shù)目最大為zc皿。工作良好的參數(shù)的示例在B.4.4中呈現(xiàn)。B.4.2.編碼分組構(gòu)造如B.4.3中所述,每個修復(fù)分組包含SBN、ESI、SBL以及修復(fù)碼元。修復(fù)分組內(nèi)所含的修復(fù)碼元的數(shù)目是從分組長度計算出的。置于各修復(fù)分組中的ESI值和用以生成修復(fù)碼元的修復(fù)碼元三元組是如B.3.2.2節(jié)中計算出的。B.4.3,傳輸該節(jié)描述MSCR編碼器/解碼器與利用MSCR前向糾錯進(jìn)行流送的任何傳輸協(xié)議之間的信息交換。用于流送的MSCR編碼器可使用來自傳輸協(xié)議的關(guān)于每個源塊的以下信息以字節(jié)計的碼元大小r、源塊中碼元的數(shù)目《、源塊編號(SBN)以及要編碼的源碼元《T個字節(jié)。MSCR編碼器向傳輸協(xié)議提供編碼分組信息,包括針對每個分組的SBN、ESI、SBL以及修復(fù)碼元。傳輸協(xié)議可將該信息透明地傳達(dá)給MSCR解碼器。B.4.4.參數(shù)選擇可使用多種參數(shù)選擇方法。以下具體示出了其中一些。B.4.4.1參數(shù)導(dǎo)出算法該節(jié)解釋了基于以下輸入?yún)?shù)的傳輸參數(shù)r的導(dǎo)出<table>tableseeoriginaldocumentpage44</column></row><table>對這些輸入的要求是ceil(sap)s^^r?;谝陨陷斎耄瑐鬏攨?shù)T被計算如下令G=min(max{ceilCP《M/A/5),floor(iV尸則J),/VJ,G爐x卜每SPI的碼元數(shù)目7,=floor(,G))/J以上導(dǎo)出的r值應(yīng)被考慮為所使用的真實r值的向?qū)?。這對于確保r除盡尸是有利的,或者當(dāng)完整大小的修復(fù)碼元被用于恢復(fù)丟失的源分組末尾處的部分源碼元時,將r的值設(shè)置得更小是有利最小化損耗的(只要源塊中的最大源碼元數(shù)目不超過《皿)。此外,r的選擇可取決于源分組大小分配,例如如果所有分組為相同大小則這對于選擇r以使得修復(fù)分組,的實際有效載荷大小(其中尸'是r的倍數(shù))等于(或大盡可能少的字節(jié))每個源分組在源塊中所占的字節(jié)數(shù)目是有利的。輸入?yún)?shù)的合適值可以為^=16、Xm/f4、以及Gm,4。B.4.4.2示例以上算法導(dǎo)致如圖19所示的傳輸參數(shù),假定上述^、《Afflv、和G皿的值以及假定尸=1424。B.5.系統(tǒng)性多域MSCR編碼器B.5丄編碼概覽系統(tǒng)性MSCR編碼器被用來從包括K個^^i的源塊生成參復(fù)馮i。碼元是編解碼過程的基本數(shù)據(jù)單元。對于每個源塊(子塊),所有碼元(子碼元)大小相同。針對編解碼對碼元(子碼元)執(zhí)行的基本操作是異或操作。令C7,…,C7[尺-1]標(biāo)示〖個源碼元。令C[O],...,C[L-1]標(biāo)示丄個中間碼元。編碼的第一步是從這《個源碼元生成Z>《個中間碼元。在該步驟中,《個源三元組(40],"[O],…,(攀-l],6[《-l])是使用如B.5.4.4節(jié)中所述的Trip[]生成器來生成的。這尺個源三元組與這《個源碼元相關(guān)聯(lián)并隨后被用來使用逆編碼過程從源碼元確定丄個中間碼元C[O],C[丄-l]。該過程可通過MSCR解碼過程來實現(xiàn)。特定的"預(yù)編碼關(guān)系"較優(yōu)地在這丄個中間碼元內(nèi)成立。B.5.2節(jié)描述了這些關(guān)系以及中間碼元是如何從源碼元生成的。一旦已經(jīng)生成中間碼元,則修復(fù)碼元被生成并且一個或多個修復(fù)碼元作為一組被置于單個數(shù)據(jù)分組中。每個修復(fù)碼元組與編碼碼元ID(ESI)和G個編碼碼元相關(guān)聯(lián)。ESI被用來再次使用B.5.4.4節(jié)中所述的Tripn生成器來為每個修復(fù)碼元生成三個整數(shù)的三元組(",fl,W。這是使用B.5.4節(jié)中所述的生成器如B.3和B.4節(jié)中所述而實現(xiàn)的。然后,每個^,",6)三元組被用來使用B.5.4.3中所述的LTEnc[尺,QO],…,C[L-l],W,。,州生成器從中間碼元生成相應(yīng)的修復(fù)碼元。B.5.2.第一編碼步驟中間碼元生成B.5.2.1概要第一編碼步驟是從源碼元CTO],…,C'[尺-1性成丄個中間碼元C[O],…,C[L-1]的預(yù)編碼步驟。中伺碼元是由兩組約束唯一地定義的1.中間碼元通過一組^^^與^^^i邀與源碼元相關(guān)。源碼元三元組的生成是在B.5.2.2節(jié)中使用B.5.4.4節(jié)中所述的Trip[]生成器來定義的。2.—組預(yù)編碼關(guān)系在中間碼元自身內(nèi)成立。這些是在B.5.2.3節(jié)中定義的。丄個中間碼元的生成是隨后在5.2.4節(jié)中定義的。B.5.2.2源碼元三元組這〖個源碼元中的每一個與三元組(40,4''],外'])相關(guān)聯(lián),其中o^^:。源碼元三元組是使用B.5.4.4節(jié)中定義的三元組生成器如下確定的對于每個/,0^'<〖B.5.2.3預(yù)編碼關(guān)系這丄個中間碼元之間的預(yù)編碼關(guān)系是通過根據(jù)前《個中間碼元來表示后丄-K個中間碼元定義的。后丄-《個中間碼元C[^],…,C[丄-l]包括s個1D尸C碼元以及i/個/ZD尸C礙i。S和/Z的值是如下所述地從K確定的。則丄=《+5+//。令z使得^議-1)>=2'^的最小正整數(shù)。5使得"c,o.oi./q+^的最小質(zhì)數(shù)//使得《;1100化(//,(^1^//")2夂十s的最小整數(shù)//'=ceil(7//2)c[c],…,cpr-1]標(biāo)示前〖個中間碼元C[iq,…,c[腐-i麻示s個ldpc碼元,初始化為零C[iT+51,….C[L-1]標(biāo)示//個hdpc碼元,初始化為零該s個ldpc碼元被定義為以下過程結(jié)束時Cm,…,c[/^s-1的值For^0,…,ddo。=1+(floor,區(qū)+》]=C[《+&]AC[/6=(6+a)%51CI尺+6]=6]AC[/6=("a)%S對于i/個HDPC碼元的構(gòu)造,系統(tǒng)使用域GF(256)。該域可用關(guān)于域GF(2)上的不可約多項式/=^8+/+^+^+1來表示。令a標(biāo)示元素x對/取模。如本領(lǐng)域的普通技術(shù)人員所公知的,元素是基本的,即a的255個一次方與255個GF(256)的255個非零元素一致。在一個實施例中,系統(tǒng)選擇尺+S個整數(shù)。,…,4^+S-l],且用(3,…,p[/^hy-ll標(biāo)示元素a,,…,o^"-1。此外,選擇另外i/個整數(shù),],…力[H-I]并用nO],…,r[仏l麻示元素a,…,aA|W-|。本發(fā)明的其它優(yōu)選實施例將指定這些整數(shù)的特定選擇。然而,應(yīng)該注意這些整數(shù)有許多等價選擇。令對于所有正整數(shù)/,g['']=/A(floM('72))。注意g[/]是Gmy序列,其中每個元素與前一個元素在單個比特位置上有所不同。此外,令g[/)]標(biāo)示其元素在二進(jìn)制表示中正好有A個非零比特的序列g(shù)[/]的第乂個元素,產(chǎn)0,1,2,...。如本領(lǐng)域的技術(shù)人員所公知的,序列g(shù)[/,A]具有這樣的屬性,即g[/,W和g[/'+l,W的二進(jìn)制表示在精確地兩個位置中有所不同。我們用p[/人l]和/[/太2]來標(biāo)示這些位置。HDPC碼元的值被定義為在以下過程之后C[K+孔…,C[L1]的值。將碼元t/初始化為0。該碼元的大小與源碼元、LDPC碼元、以及HDPC碼元的公共大小相同。接著,對于從0到《+S-2的變量/z,執(zhí)行以下變量C/被更新為"=f/,,]。同時,設(shè)定qx+s+M/,//,,1]]=c[^+s+p[/,//',i]]At/,以及在另一歩驟中,將t/變形為""[X+W]ACP^-l]。接著對于從o到的變m力,更新c[/^s+/2]=c[^+s+/z]Ar[w*u。這完成了HDPC編碼過程的描述。在優(yōu)選實施例中,系統(tǒng)選擇以下整數(shù)",...,"[^+5-1]和6,...,6[樂1]:剩=41]=…="[《+s-i〗=i以及,=i,6[i]=2,...響=i+i等。有禾U地,在該優(yōu)選實施例中,HDPC碼元的構(gòu)造可僅使用基本元素a的動作以及伴隨碼元之間的逐位異或操作來執(zhí)行。以......t:給出的不可約多項式的選擇允許a的動作的高效實現(xiàn),由此降低HDPC構(gòu)造算法的計算復(fù)雜度。如本領(lǐng)域的技術(shù)人員所顯而易見的,.....h述構(gòu)造算法可容易地適用亍執(zhí)行多級碼解碼器內(nèi)的所需解碼操作,由此在解碼器處也實現(xiàn)上述計算復(fù)雜度的降低。B.5.2.4中間碼元B.5.2.4.1定義給定^個源碼元CT0〗,C"],…,C詞,丄個中間碼元QO],C[l〗"."C[丄-l]是滿足下列條件的唯一定義的碼元值1.K個源碼元C10],C[1],…,C[1]滿足個約束CWeLTEnc疋(C[O],…,C[i-l]),問/],。[/〗,外,)],對于0S/<K的所有/。2.丄個中間碼元CI0],C[1],…,C[丄-1]滿足B.5.2.3中定義的預(yù)編碼關(guān)系。B.5.2.4.2中間碼元的計算該小節(jié)描述了用于計算滿足B.5.2.4.1中的約束的丄個中間碼元C,卬],…,,-1]的可能的方法。從K個輸入碼元生成JV個輸出碼元的碼生成器矩陣G是GF(2)上的7Vx/:矩陣,其中每行對應(yīng)輸出碼元中的一個而每列對應(yīng)于輸入碼元中的一個,且其中第/個輸出碼元等于第/行中其列包含非零項的那些輸入碼元的和。然后,A個中間碼元可計算如下令c標(biāo)示丄個中間碼元的列向量c[o],C[l〗,…'C[丄-l〗。D標(biāo)示包含其后跟隨〖個源碼元^G],Cll],…,C[d]的針//個零碼元的列向量然后,以上約束定義GF(2)上的LxL矩陣A,使得AC=D矩陣A可如下構(gòu)造令Gu)pc為LDPC碼元的Sx《生成器矩陣。所以,G隱'(C[O〗,…,C[1])T=(C[入,'…,C[尺+5-])tghdpc為半數(shù)碼元的Hx(《+5)生成器矩陣,所以,G匿(C)t-(C'[O〗,CT1],…,C[/M)T即,在且僅在c[/]被包括在被異或以產(chǎn)生LTEnc[尺,(C[O],…,C[L-1〗),(40,外'])]的碼元中的情況下,GLT,V=1。則A的前S行等于Gldpc115|Z^。A的接下來if行等于GhdpciIw。A的剩余尺行等于Glt。矩陣A在圖20中繪出。中間碼元隨后可被計算為"C=A1D源三元組被生成使得對于任意尺,矩陣A具有滿秩并因此不可逆。該計算可通過向〖個源碼元CTW,C"],…,CT^"]應(yīng)用MSCR解碼過程來實現(xiàn)以產(chǎn)生L個中間碼元QO,卬],…,C["]。為了從源碼元高效地生成中間碼元,可使用諸如B.6節(jié)中所述的高效解碼器實現(xiàn)。源碼元三元組被設(shè)計成有助于使用該算法對源碼元進(jìn)行高效解碼。B.5.3.第二編碼步驟連鎖反應(yīng)編碼在第二編碼步驟中,通過使用根據(jù)B.3.2.2和B.4.2節(jié)生成的三元組(c/,",Z^Trip[KJQ向丄個中間碼元C,卬],…,C[丄-l應(yīng)用B.5.4節(jié)中定義的生成器矩陣LTEmp:,(C[O],C[l],…,C[£-l),(rf,a,別來生成具有ESIZ的修復(fù)碼元。B.5.4.生成器B.5.4.1隨機(jī)生成器隨機(jī)數(shù)生成器Rand[U,m]被定義如下,其中義是非負(fù)整數(shù),Z是非負(fù)整數(shù),而m是正整數(shù),且生成的值是O與m-l之間的整數(shù)。令&和^是256項的數(shù)組,其中每項是4字節(jié)無符號整數(shù)。合適的隨機(jī)數(shù)數(shù)組在附錄B.1和B.2中作為示例提供,這些示例不應(yīng)被理解為限制本發(fā)明的范圍。給定這些假設(shè),Rand[;U,w]=(r()[(Z+7)%256]AV[(floor(X/256)千7)%256])%附。如本文所使用的,除非另有指示,否則"隨機(jī)"應(yīng)被假定為包括"偽隨機(jī)"和"基本隨機(jī)"。B.5.4.2冪度生成器冪度生成器Deg[v]被定義如下,其中v是至少為0且小于22G=1048576的整數(shù)。在圖21中,找到使得/[/-1]^<朋的索引7Deg[中4/']b.5.4.3連鎖反應(yīng)編碼碼元生成器編碼碼元生成器LTEnc[尺,(c[o],c[1],…,c[丄-l]),(A別取以下輸入尺是源塊(子塊)的源碼元(或子碼元)的數(shù)目。令丄如b.5.2節(jié)中所述地從《導(dǎo)出,且令丄'為大于或等于l的最小質(zhì)數(shù)整數(shù)。(C[o],C[1],…,C[丄-l])是如b.5.2節(jié)中所述地生成的£個中間碼元(子碼元)的數(shù)組。(J,"》)是使用b.5.3.4節(jié)中定義的三元組生成器確定的源三元組,由此"是標(biāo)示編碼碼元冪度的整數(shù),fl是l與丄'-l(內(nèi)包含)之間的整數(shù),而6是0與丄'-l(內(nèi)包含)之間的整數(shù)。編碼碼元生成器根據(jù)以下算法生成單個編碼碼元作為輸出V/hile(62丄)dofc=(6+a)%i'L丁En,,(C[O],C[l],...,。,w]=C[6].Forj'=l"..,min(cM,£-1)do&=("")%丄'While(62i)doA,+a)%£'LT&ic[A:,(C[O],C[1〗,…,C[i-l]),。,切(C[O],C[l],...,C["〗),"a,明A,]b.5.4.4三元組生成器三元組生成器Trip[尺,X]取以下輸入《源碼元的數(shù)目z編碼碼元id令丄如b.5.2節(jié)中所述地從尺確定i'為大于或等于丄的最小質(zhì)數(shù)Q=65521,小于216的最大質(zhì)數(shù)J(。為與尺相關(guān)聯(lián)的系統(tǒng)性索引。系統(tǒng)性索引是被選成使得以下過程連同用于構(gòu)造本文所述的矩陣A的剩余過程得到不可逆的矩陣B的數(shù)。合適的系統(tǒng)性索引在附錄A中僅作為示例被提供,這些示例不應(yīng)被理解為限制本發(fā)明的范圍。三元組生成器的輸出是如下確定的三元組(《a力)/.爿=(5359+l/(/0.997)0/0Q2.5=10267(J(/O+l)%g《v=Rand[y,0,220j5.<5=E)eg[v]6.a=1+Rand[y,1,L,-]7.6=Rand[y,2,丄']B.6FEC解碼器實現(xiàn)B.6.1概要該節(jié)描述了用于本說明書中所述的MSCR碼的高效解碼算法。注意,每個接收到的編碼碼元可被考慮為中間碼元之間的方程的值。從這些聯(lián)立方程以及中間碼元之間已知的預(yù)編碼關(guān)系,用于求解聯(lián)立方程的任何算法都可成功地解碼中間碼元以及由此解碼出源碼元。然而,所選的算法對解碼的計算效率有很大影響。B.6.2解碼源塊B.6.2.1概要假定解碼器知道其要解碼的源塊的結(jié)構(gòu),包括碼元大小r、以及源塊中碼元的數(shù)目《。從8.5節(jié)中所述的算法,^011解碼器可計算預(yù)編碼碼元的總數(shù)丄=〖+5+//并確定它們是如何從要解碼的源塊生成的。在該描述中,假定要解碼的源塊的收到編碼碼元已被傳遞給解碼器。此外,對于每個這種編碼碼元假定其異或等于編碼碼元的中間碼元的數(shù)目和集合已被傳遞給解碼器。在源碼元的情形中,如B.5.2.2節(jié)中所述的源碼元三元組指示共計給出每個源碼元的中間碼元的數(shù)目和集合。令A(yù)^《為源塊的收到編碼碼元的數(shù)目并令M4千fffiV。以下Mx丄矩陣A可從針對要解碼的源塊被傳遞給解碼器的信息導(dǎo)出。令C為丄個中間碼元的列向量,并令D為具有接收機(jī)已知的值的M個碼元的列向量,其中這M個碼元當(dāng)中的最后S+Z/個是對應(yīng)于LDPC和HDPC碼元的零值碼元(這些是LDPC和HDPC碼元的校驗碼元而不是LDPC和HDPC碼元本身),Af個碼元當(dāng)中剩余的iV個是源塊的接收到的編碼碼元。然后,a是滿足ac-d的矩陣,其中這里'標(biāo)示G(256)上的矩陣乘法。矩陣a具有如圖23所示的塊結(jié)構(gòu)。該塊結(jié)構(gòu)包括AM亍和丄列的矩陣F,S行和丄-S-Z/列的矩陣E,SxS單位矩陣i,S行和7/列全零的矩陣0,H行和丄-Z/列的矩陣b,以及Hx/Z的單位矩陣j。子矩陣b具有在域GF(256)上定義的項,而矩陣E和F具有0/1項,即在域GF(2)中的項。矩陣F定義動態(tài)編碼過程,矩陣E定義如上所述的LDPC編碼過程,以及矩陣b定義HDPC編碼過程。特別地,如果對應(yīng)索引乂的中間碼元在編碼中被異或成為對應(yīng)索引/的編碼碼元,則F[W-1。對于所有的其它/和y,F(xiàn)[/J]-0。類似地,如果對應(yīng)索引乂的中間碼元被異或成對應(yīng)索引/的LDPC碼元,則E[。']-1。最后,如果對應(yīng)索引y'的中間碼元的動作(3的結(jié)果被異或成對應(yīng)索引/的HDPC碼元,則b[zV"f3。解碼源塊等價于從已知的a和d解碼c。顯然在且僅在GF(256)上a的秩為丄的情況下c是可解碼的。一旦c已被解碼,丟失的源碼元可通過使用源碼元三元組確定中間碼元的數(shù)目和集合一一其被異或以獲得每個丟失的源碼元——來獲得。解碼c中的第一步驟是形成解碼調(diào)度。在該步驟中a被使用高斯消元(使用行操作以及行與列的重排序)并在丟棄M-Z行之后被轉(zhuǎn)換成丄xZ單位矩陣。解碼調(diào)度包括高斯消元過程中行操作的序列以及行與列重排序,并且僅取決于a而不取決于d。從d解碼c可與解碼調(diào)度的形成同時進(jìn)行,或者解碼過程可基于解碼調(diào)度在之后進(jìn)行。c的解碼調(diào)度與解碼之間的——對應(yīng)關(guān)系如下。首先令c[O]=0,c1]=1...1〗=i-1且rf〖0]=0,41]=1…1]=M-1。每次a的行/在解碼調(diào)度中被異或為行/',然后在解碼過程中碼元DMO]被異或為碼元D[^n]。我們將該操作稱為GF(2)-行操作。每次a的行/的a倍(GF(256)中的某一a)在解碼調(diào)度中被異或成廣,然后在解碼過程中碼元atD[4^被異或成碼元D[4n]。我們將該操作稱為GF(256)-行操作。注意GF(2)-行操作是其中元素a為1的GF(256)-行操作的特例。每次行/在解碼調(diào)度中與行/'交換,然后在解碼過程中c/[o的值與4n的值交換。每次列y'在解碼調(diào)度中與列/交換,然后在解碼過程中c[/]的值與c[/']的值交換。從該對應(yīng)關(guān)系可以看出,源塊的解碼中碼元異或的總數(shù)與高斯消元中行操作(不是交換)的數(shù)目有關(guān)。由于A在高斯消元及丟棄最后AZ-丄行之后是Lx丄單位矩陣,顯然在成功解碼結(jié)束時,丄個碼元D[,]],D[《i]],…,"[4丄-i]]是i:個碼元CMO]],C[cl]],…,C[啦-l]]的值。執(zhí)行高斯消元以形成解碼調(diào)度的次序?qū)υ摻獯a是否成功沒有關(guān)系。然而,解碼的速度很大地依賴于執(zhí)行高斯消元的次序。(此外,維持A的稀疏表示是至關(guān)重要的,盡管這里并未描述)。執(zhí)行GF(2)-行操作比執(zhí)行GF(256)-行操作更有效率也是顯然的。因此,在執(zhí)行高斯消元時,以矩陣A當(dāng)中具有取自域GF(2)的元素的行為中心進(jìn)行操作是較佳的。將矩陣當(dāng)中對應(yīng)于HDPC碼元的行的消元留到高斯消元過程的末尾也是有利的。該節(jié)的剩余部分描述了可相對高效地執(zhí)行高斯消元的次序。B.6.2.2第一階段參照圖23,用X表示包括如圖24a所示的F、E、I和O的矩陣。髙斯消元的第一階段,矩陣X在概念上被分割成多個子矩陣。這些子矩陣大小通過被初始化為0的非負(fù)整數(shù)/和w來參數(shù)化。X的子矩陣為(1)由前/行與前f列的交集限定的子矩陣。這在該階段中每一步驟的結(jié)束時是單位矩陣。(2)由前/行與除前/列和最后w列的所有列的交集限定的子矩陣。該子矩陣的所有項為零。(3)由前Z列與除前/行之外的所有行的交集限定的子矩陣,該子矩陣的所有項為零。(4)由所有行與最后"列的交集限定的子矩陣U。(5)由除前/列和最后W列之外的所有列與除前/行之外的所有行的交集形成的子矩陣V。圖22示出了X的子矩陣。在第一階段的開始,V=X。在每一步驟,選擇x的一行。由v的結(jié)構(gòu)限定的以下圖形被用來確定選擇x.的哪一行。與v相交的列是該圖形中的節(jié)點,而在V中正好具有兩個1的行是該圖形中連接這兩個l的位置上的兩列(節(jié)點)的邊。該圖形中的分量是使得在該圖形中的每對節(jié)點/邊之間存在路徑的節(jié)點(列)和邊(行)的最大集合。分量的大小是該分量中節(jié)點(列)的數(shù)目。該圖形按Y標(biāo)示如下在第一階段至多有丄個步驟。當(dāng)v或者消失或者變?yōu)榱憔仃嚂r,該階段結(jié)束。在每一步驟中,如下選擇X的行如果V的所有項為零,則選擇該行并且第一階段結(jié)束。否則,令r為使得X中的至少一行在V中正好有r個1的最小正整數(shù)。如果嚴(yán)l,則選擇在V中正好具有一個1的行。如果嚴(yán)2,則選擇作為由F定義的圖形中最大大小分量的一部分、在V中正好具有兩個l的任意行。如果P2,則選擇在V中正好具有r個1且在這些行中具有最小的原始權(quán)重的行。在該步驟中選擇出該行之后,X當(dāng)中與V相交的第一行與該被選行相交換以使得所選行是與v相交的第一行。X當(dāng)中與V相交的那些列被重排序以使得所選行中r個l當(dāng)中的一個出現(xiàn)在V的第一列并且使得剩余的r-l個l出現(xiàn)在v的最后列中。然后,所選行被異或到x當(dāng)中該所選行以下在v的第一列具有l(wèi)的所有其它行中。換言之,我們在該步驟中執(zhí)行了GF(2)-行操作。最后,/被遞增1且w被增加r-l,結(jié)束步驟。令v標(biāo)示該階段結(jié)束時矩陣V的列數(shù)。在對矩陣B的各列轉(zhuǎn)置以使得V的各列對應(yīng)于X的最后v列之后,矩陣X將具有圖24b中給定的形式。B.6.2.3第二階段我們修改矩陣U以使其另外包括矩陣X的最后v行,并且相應(yīng)地用w+v代替"。子矩陣U被進(jìn)一步分割成前/行Ui:以及剩余的iV+&/行UT,如圖25所示。在第二階段對Ui執(zhí)行高斯消元。在該步驟之后,矩陣Ur將具有圖26中給定的形式,即在行和列的轉(zhuǎn)置之后,前s行與前s列的交集是單位矩陣——被稱為I,最后m行是零,而前s行與最后w-s列的交集形成矩陣W。注意,1+^等于矩陣117的行數(shù)^+^/。如果s的值為",則可跳過下一階段。如果m的值大于/z-v,則返回解碼差錯,因為在此情形中矩陣A的秩小于丄。矩陣X的最后w行被丟棄,以使得在該階段之后A具有圖27中給出的形式。在該圖中,Bh.,.,B3是各自具有//行和gf(256)中的項的矩陣。接著,對矩陣B,和B2執(zhí)行g(shù)(256)-行操作以將它們消零。這可以兩種方式之一來實現(xiàn)。第一種方法中,A的前/行被用來借助GF(256)-行操作對矩陣B,消零。然后A的下s行被用來對矩陣B2消零。在第二種方法中,行/到/+&/(內(nèi)包含)被用來借助gf(2)-行操作對U±的前s列消零并隨后X的前/+j行被用來借助gf(256)-行操作對Bi和B2消零。如對本領(lǐng)域的普通技術(shù)人員顯而易見的,上述用于構(gòu)造hdpc碼元的方法算法導(dǎo)致用于矩陣Bi的消零(在第一種方法中)或B,和82兩者的消零(在第二種方法中)的類似算法。該算法對于gf(256)元素對碼元的動作的計算的要求僅為每矩陣列一次加H的每行一次。因此,上述第二種方法在對矩陣B,和B2消零方面導(dǎo)致總體較少的操作。在該步驟之后,矩陣A具有圖28中所給的形式。矩陣T具有/z行和"-^列。對矩陣T執(zhí)行高斯消元以將其變?yōu)槠浜蟾?7-"+s行的單位矩陣。如果這不可能,即如果T的秩小于"a,則標(biāo)志解碼差錯。在該級結(jié)束時,在丟棄最后/z-w+s行后矩陣A具有圖29中給出的形式。在該圖中,i標(biāo)示sxs單位矩陣,而J標(biāo)示w"xw"單位矩陣。b.6.2.4第三階段在第二階段之后,A當(dāng)中需要被消零以完成將A轉(zhuǎn)換成丄xL單位矩陣的部分在跟隨有將Bi和B2消零的第一方法的情形下是W和U±的所有w列,或者在跟隨有將和B2消零的第二方法的情形下是W和U±的最后列。在前一情形中,由于矩陣W通常較小,所以可使用元素gf(2)-行操作來消零。在該步驟之后,矩陣A具有圖30中給出的形式。在這兩種情形下,矩陣當(dāng)中需要消零的剩余部分現(xiàn)在是矩形。在前一情形下,其大小為/行和"列,在后一情形中,其大小為行和歹"在下面,我們將r用于該矩陣中的行數(shù)以及將w'用于列數(shù)并用O標(biāo)示該矩陣。剩余子矩陣C的行數(shù)/'一般遠(yuǎn)大于列數(shù)w'。有多種方法可用來將O高效地消零。在一種方法中,以下預(yù)計算矩陣u'被基于A的最后W行和列(我們將其標(biāo)示為1)計算出,并且隨后it被用于將O消零。1的w行被分割成各自為z行的ceil(w/z)組(針對每一整數(shù)z)。然后,對于每一組的z行,計算出z行的所有非零組合,得到2M行(這可以用每組的各行的2Z-z-l次異或來實現(xiàn),因為1中出現(xiàn)的Hamming權(quán)重一的組合無需重新計算)。因此,得到的預(yù)計算矩陣U'具有ceil(w/z),2Z-l行和"列。注意IT不是矩陣A的正式的一部分,但隨后將被用來將Uj肖零。在一優(yōu)選實施例中,z=8。對于t)的/'行中的每一行,對于該行的Cl子矩陣的每一組的z列,如果0中的z列項的集合不是全零,則該預(yù)計算矩陣lT當(dāng)中匹配這z列中的模式的那一行被異或到該行,由此以將U'的1行異或到該行為代價將該行中的這z列消零。在該階段后,A是丄x丄單位矩陣且已經(jīng)成功形成完整的解碼調(diào)度。然后,可執(zhí)行包括將已知編碼碼元異或的相應(yīng)解碼以基于該解碼調(diào)度來恢復(fù)中間碼元。與所有源碼元相關(guān)聯(lián)的三元組是根據(jù)B.5.2.2計算出的。接收到的源碼元的三元組被用于解碼中。丟失的源碼元的三元組被用來確定哪些中間碼元需要被異或以恢復(fù)丟失的源碼元。多域、單級連鎖反應(yīng)編碼器/解碼器多域單級(MFSS)碼具有本文所公開或暗示的有用屬性。MFSS碼、編碼器以及解碼器的新穎設(shè)計在本文進(jìn)行描述。在一個實施例中,數(shù)據(jù)被編碼以從源被傳輸?shù)侥康牡?,其中每個輸出碼元是作為輸入碼元中的一個或多個用取自有限域的系數(shù)的線性組合生成的,對于每個輸出碼元一根據(jù)隨機(jī)過程選擇大于0的整數(shù)d^被稱為輸出碼元的冪度,一根據(jù)隨機(jī)過程選擇大小為"的輸入碼元的集合,該輸入碼元集合被稱為輸出碼元的近鄰集合,一選擇有限域集合以使得對于至少一個輸出碼元該集合包含至少兩個有限域,一針對輸出碼元的近鄰集合中的每個輸入碼元,從所選擇的可能有限域集合中選擇有限域,一針對輸出碼元的近鄰集合中的每個輸入碼元根據(jù)隨機(jī)過程從以上所選的有限域中選擇非零元素。用于選擇輸出碼元的冪度的隨機(jī)過程可以是LubyI和LubyII中所述的過程,其中冪度是根據(jù)冪度分配來選擇的。用于選擇與每個輸出碼元相關(guān)聯(lián)的輸入碼元的隨機(jī)過程可以是LubyI和LubyII中所述的過程,其中輸入碼元是隨機(jī)且唯一地選擇的。如本文所使用的,"隨機(jī)"可包括"偽隨機(jī)"、"有偏隨機(jī)"等。該可能有限域的集合可以是集合(GF(2),GF(256)}。用于選擇有限域的過程可以基于參數(shù)A,以使得對于冪度小于《的輸出碼元,為該輸出碼元的近鄰集合中的所有輸入碼元選擇域GF(2),而對于冪度為《或更大的輸出碼元,為該輸出碼元的近鄰集合中的至少一個、一些或所有成員選擇域GF(256)并根據(jù)需要為該近鄰集合中的剩余元素選擇域GF(2)。用于從所選域中選擇有限域元素的過程可以是簡單隨機(jī)過程,其中元素是從該域的非零元素當(dāng)中隨機(jī)唯一地選出的。接收由如上所述的MFSS編碼器編碼的數(shù)據(jù)的解碼器可通過以下操作解碼輸出碼元以再生輸入碼元根據(jù)上述方法形成表示該碼的矩陣,該矩陣不包括靜態(tài)行而包括對應(yīng)該碼的每個輸出碼元的一個動態(tài)行,并隨后應(yīng)用高斯消元以找到該矩陣的逆,以確保在高斯消元過程的每一級最小冪度的中樞行被選擇。如本領(lǐng)域的普通技術(shù)人員所清楚的,LubyI和LubyII中所述的碼的許多公知屬性可同等地應(yīng)用于上述碼并且特別是對合適的冪度分配的選擇可確保高斯消元過程能夠以較高概率標(biāo)識剩余冪度一的行并且由此該解碼過程如LubyI和LubyII中所述的連鎖反應(yīng)過程那樣操作。該MFSS碼相對于本領(lǐng)域已知的碼具有許多其它優(yōu)點。首先,包括來自GF(256)的元素顯著降低了任意接收到的輸出碼元相對于先前接收到的輸出碼元不是加性信息的概率。因此,該碼的解碼差錯概率比先前的碼低得多。例如,在一些情形下,LubyI和LubyII中所述的碼的失敗概率得以改進(jìn)。該碼相對于基于較大域的其它碼的優(yōu)點是較低冪度的輸出碼元一般首先將由高斯消元過程進(jìn)行處理,因此包括的來自GF(256)的元素可以無需考慮推遲到之后解碼過程。由于GF(256)上的操作相比于GF(2)上的操作是相對昂貴的,這與其中許多或所有元素都是使用來自GF(256)或其它較大有限域的元素構(gòu)造的碼相比極大地降低了計算復(fù)雜度。相對于基于較大域的其它碼的另一優(yōu)點是對于使用較大域生成的輸出碼元,近鄰集合中僅一個元素具有取自較大域的系數(shù),由此對于每個這樣的輸出碼元僅需要碼元與有限域元素之間的一個操作。這導(dǎo)致總體較低的計算復(fù)雜度。已知使用內(nèi)碼和外碼來使用兩個(或多個)編碼過程編碼輸入碼元導(dǎo)致提供常在更為復(fù)雜的碼中找到的益處的簡單碼方案。通過內(nèi)碼和外碼的使用,源碼元首先被使用其中一種碼進(jìn)行編碼,并且第一編碼器的輸出被提供給根據(jù)另一種碼進(jìn)行編碼的編碼器,而該結(jié)果被輸出作為輸出碼元。使用MFSS當(dāng)然與內(nèi)/外碼的使用不同。舉例來說,輸出碼元是從輸入碼的近鄰集合導(dǎo)出的。在本文所述的許多實施例中,每個輸出碼元都是輸入碼元的線性組合。在多級碼情形下,每個輸出碼元可以是輸入碼元和/或冗余碼元和/或中間碼元的線性組合。密集多域碼和用于這種碼的編碼器/解碼器在上述講授的變形中,碼的矩陣表示是密集矩陣。如所公知的,糾錯碼可從有限域上的密集隨機(jī)矩陣構(gòu)造出。例如,可構(gòu)造出廣義矩陣,其中沒有靜態(tài)行且每個動態(tài)行包括來自GF(2q)的元素,其中每個元素是隨機(jī)選取的。然后可以構(gòu)造出固定率的碼,其中每個輸出碼元對應(yīng)動態(tài)行之一并且是作為對于其在矩陣的該行的相應(yīng)列中具有非零元素的那些輸入碼元的線性組合一一使用這些元素作為線性組合過程中的系數(shù)——生成的。本領(lǐng)域的技術(shù)人員公知的是隨機(jī)選取的具有《行和《+^列并具有從GF(2q)獨立且隨機(jī)選取的系數(shù)的矩陣具有小于《的秩的概率至多為2^。因此,具有《個輸入和個輸出碼元的碼的解碼差錯概率——其中輸出碼元是使用從GF(2q)隨機(jī)選擇的系數(shù)從輸入碼元獨立且隨機(jī)地生成的——至多為2^,如果接收到的編碼碼元的數(shù)目為i^v4。在《=1的情形下,上述碼具有合理的計算復(fù)雜度的優(yōu)點,因為所有操作都在域GF(2)內(nèi),由此對應(yīng)常規(guī)XOR操作。然而,在該情形下,一旦接收到v4個額外碼元那么失敗概率的下限2"比所需的高得多。在《=8的情形下,上述碼具有較低失敗概率的優(yōu)點(對于接收到^個額外碼元則以2—"為限度)。然而,在該情形下,所有操作都在域GF(256)內(nèi),由此在計算上相對較昂貴。另一實施例允許用接近于以較小的《值可實現(xiàn)的計算復(fù)雜度來實現(xiàn)接近于使用較大《值實現(xiàn)的解碼差錯概率。在該實施例中,輸出碼元是作為具有取自或者GF(20或者GF(2"的系數(shù)的輸入碼元的線性組合生成的,其中;^《。在一個特定實施例中,正好(《-2p)/及個輸出碼元是使用來自GF(20的系數(shù)生成的,剩余的2/V(《及)個輸出碼元是使用來自GF(2"的系數(shù)生成的。在目的地接收到的數(shù)據(jù)可通過確定該碼的收到輸出碼元與輸入碼元之間的關(guān)系并求解該線性關(guān)系集以確定輸入碼元來解碼。該碼的解碼差錯概率至多為其中所有系數(shù)是選自域GF(20的碼的解碼差錯概率,并且取決于使用來自較大的域GF(2"的系數(shù)生成的碼元的數(shù)目可顯著地更低。然而,由于大多數(shù)輸出碼元是使用來自GF(20的系數(shù)生成的,編碼的計算復(fù)雜度僅比其中所有碼元都是使用來自GF(20的系數(shù)生成的碼的計算復(fù)雜度稍大。此外,解碼方法可以如此設(shè)計以使得用來自GF(2。的系數(shù)生成的碼元被首先處理,由此大多數(shù)解碼操作是完全以GF(2。中的操作來執(zhí)行的。因此,解碼方法的計算復(fù)雜度類似接近于僅使用GF(20構(gòu)造的碼的計算復(fù)雜度。在一特定優(yōu)選實施例中,/7=1且『8。某些多域碼的一些屬性在上述大多數(shù)示例中,輸入和輸出碼元針對相同數(shù)目的比特進(jìn)行編碼并且每個輸出碼元被置于一個分組中(作為或者全部接收或者全部丟失的傳輸單元的分組)。在一些實施例中,通信系統(tǒng)被修改以使得每個分組包含若干輸出碼元。輸出碼元值的大小被設(shè)成基于多個因素由在文件或流送塊到輸入碼元的原始拆分中的輸入碼元值大小確定的大小。解碼過程基本保持不變,除非在接收到每個分組時輸出碼元大量到達(dá)。輸入碼元和輸出碼元大小的設(shè)置通常由文件或流送塊的大小以及將在其上傳送輸出碼元的通信系統(tǒng)指定。例如,如果通信系統(tǒng)將數(shù)據(jù)比特編組在具有定義大小的分組中或者以其它方式編組,則碼元大小的設(shè)計以該分組或編組大小開始。從此,設(shè)計者將確定在一個分組或組中將攜帶多少輸出碼元并確定該輸出碼元大小。為了簡單起見,設(shè)計者可能將輸入碼元大小設(shè)置成等于輸出碼元大小,但如果輸入數(shù)據(jù)使得不同的輸入碼元大小更為方便,則可使用不同的輸入碼元大小。上述編碼過程基于原始文件或流送的塊來產(chǎn)生包含輸出碼元的分組流送。該流送中的每個輸出碼元是獨立于所有其它輸入碼元生成的,因此對于可創(chuàng)建的輸出碼元的數(shù)目沒有上下限。鍵與每個輸出碼元相關(guān)聯(lián)。該鍵、輸入文件或流送塊的一些內(nèi)容決定輸入碼元的值。連續(xù)生成的輸出碼元無需具有連續(xù)的鍵,并且在一些應(yīng)用中,隨機(jī)生成鍵序列或偽隨機(jī)地生成該序列將是較優(yōu)的。多級解碼具有這樣的屬性,即K個等大小的輸入碼元的塊平均可以非常高的概率從K+A個輸出碼元恢復(fù),其中A相對于K較小。例如,在以上首先描述的優(yōu)選實施例中,當(dāng)K^100時,圖31示出了根據(jù)從生成的前120個輸出碼元當(dāng)中隨機(jī)選出的K+A個輸出碼元解碼的失效的概率,而圖32的表示出了根據(jù)從生成的前110個輸出碼元當(dāng)中隨機(jī)選出的K+A個輸出碼元解碼的失效的概率。由于特定輸出碼元是以隨機(jī)或偽隨機(jī)次序生成的,并且傳輸中特定輸出碼元的丟失通常與碼元的值無關(guān),所以需要接收以恢復(fù)輸入文件或塊的輸出碼元的實際數(shù)目的方差較小。在K+A個輸出碼元的特定集合不足以將塊解碼的許多情形中,如果接收機(jī)能夠從一個或多個源接收更多輸出碼元則該塊仍是可恢復(fù)的。由于輸出碼元的數(shù)目僅受I的分辨率限制,將可生成大于K+A個輸出碼元。例如,例如,如果I是32比特數(shù),則可生成四十億個不同輸出碼元,而文件或流送塊可包括K=50,000個輸入碼元。在一些應(yīng)用中,這四十億個輸出碼元中僅一些可被生成并傳送,且輸入文件或流送塊可使用可能輸出碼元中的非常小的少部分來恢復(fù),并且輸入文件或塊可用稍大于K個輸出碼元的碼元來恢復(fù)的概率非常優(yōu)良(假定輸入碼元大小與輸出碼元大小相同)。在一些應(yīng)用中,沒有能將所有輸入碼元解碼或者以相對較低的概率將所有輸入碼元解碼是可接受的。在這種應(yīng)用中,接收機(jī)可在接收到K+A個輸出碼元之后停止嘗試將所有輸入碼元解碼?;蛘呓邮諜C(jī)可在接收到少于K+A個輸出碼元之后停止接收輸出碼元。在一些應(yīng)用中,接收機(jī)甚至可僅接收K個或更少的輸出碼元。因此,應(yīng)該理解在本發(fā)明的一些實施例中,所需的精確度可以不是所有輸入碼元的完全恢復(fù)。此外,在一些可接受不完整恢復(fù)的情形中,數(shù)據(jù)可被編碼成使得不是所有輸入碼元都可被恢復(fù)或者使得輸入碼元的完全恢復(fù)將要求接收比輸入碼元多得多的輸出碼元。這種編碼一般將要求較少的計算開銷,由此是降低編碼計算開銷的可接受方式。應(yīng)該理解上述附圖中各種功能塊可以用硬件和/或軟件的組合來實現(xiàn),且在特定實現(xiàn)中一些塊的部分或所有功能可以被組合。類似地,應(yīng)該理解本文所述的各種方法可通過硬件和/或軟件的組合來實現(xiàn)。以上描述是說明性而非限制性的。本發(fā)明的許多變形對于本領(lǐng)域的技術(shù)人員而言在閱讀本公開的基礎(chǔ)上是顯而易見的。因此,本發(fā)明的范圍不應(yīng)參照以上描述確定,而應(yīng)參照所附權(quán)利要求以及其等效方案的全部范圍來確定。附錄A.用于系統(tǒng)性索引J(iO的值對于K的每個值,系統(tǒng)性索引J(。被設(shè)計成具有這樣的屬性,即源碼元三元組("[O],a[O],0]),…,(4I-l,a[/」],叫-l])的集合使得丄個中間碼元被唯一地定義,即8.5.2.4.2中的矩陣厶具有滿秩并因此不可逆。以下是4與8192之間(內(nèi)包含)的《值的合適系統(tǒng)性索引列表且是作為示例給出的。這些值的次序是按照閱讀的次序,即從第一行的第一個數(shù)到第一行的最后一個數(shù),其后是<table>tableseeoriginaldocumentpage62</column></row><table>56力^Jt^w^5t;JgM^;:42叫1^5:r3M3318904731612728445430657729101703:007436556w—2869522s299923J51-39262511!74000031lc>35293440N533<y^,65662GuS55IT.GSudSi^J"9,9,qr7,4,4,n1,o,2,人4"or4,.w9,9,3,o,7,3,&7"l,,3,TT5,OCT4,1,7,oo,5,7,2"5,QToC3,7,4,5,7,3,^sss2572574^959232111-3u002J『111730010\463<N6904495339+656627;9Q376o1OS^3G9900,3,?T4,7,2,7,6,2,5,4,9,6,8,2,7,o,5,5,16,9,r,T0_^-2,ST7,Loo,4,A5,7,7,3,CJ,一Q,T9,3,7,4,4,7,7,3,5^W621^^P4453I5420127783193647916648466243430306747261303007433556941369597057429OJOO322—326980N^9d^009-.^'884400316II'&44rJ5439斗66662"u3w7。So6。AI6,Qcor8,1,3,7-4,7,2,6,1,VT5,4,9,6,8,2,7,o,o,乂3,^CT6,1,2,ITT3,OCT&5,3,+7,od-5,7,3,27,g>,4,2,4,9,7,lw,9M63695QS935542921*532913329444336134434936664c>65wwSS-cS1!5S35999od"4,2,5,7,2,7,Qc5,5,Qc9,6,ft^-7,o,o,oc3,6,6,2,2,2,3"00,6,5,2,l7,5,5,r^-00,1,7^or7,2,4,9,7,7,7,WSJ4-§64t40470011246661436173169684266440214077279613507016355539006^J49542。555291663327739264196126o\2944-4356104555<y366vc"4064JCJwuw71。GS"9798339771,、6,5,8,9,4^-00,5,7,CT5,9,orVCTfirs^-<N,4,3,oo,3,1,Qc7,7,od*3,oro,c^*<y,6,4,4,oc7,7,7,Wd5sssi-i9r5!n3-9;jt^c500^i8794136607419660&46604442Q-407773940161701535755。S49n55519916534CS253529IQ\\69rs2+2366937064966gg>。w"S1wu32,9,9,I,3,7,9,4,2,IT9,6,5,5,4,6,7,5,GT2,CT1,&6,2,2,2,3,od-3,5,LRrl7,8,6,or2,7,$T6,4,4,oc7,7,7,83629154355719912420853364195411-4929449332132&OH一9370V049060w。S7:w3t巾135^99,3,378,42,》J,oc3,5,5,or6,3,Qc7,2,7,5,IT6,firr,f6>2,3,6,ftr1,4,oo>ST8,7,5,5,or6,4,7,9,l7,7,ro55769991U2CN000933QV66295494970S431336293441一537'0497062!-SP。51。o3oo193379,4,2,1,7,6,5,5,orxer9,3,rNT7,o,7,<T6,7,cr<T5,iK1,-XTSTST7,仏27vrs-or仏4,7,oC4^l7,22001-007540195742991220353393623541-17294313322934495370446063f化",?s,p,A,5,I,3,ip,。,5,3>o,I,Qc3-7,o,Qc4,2,3,2,6,5"o,9,3"6,5,3,2,5,o,7,6,6,7,2,2,1,6,6,7,1>2,00,oo,06-7,6,2-5,9,9,3,7,7"7,7,7,23610015495957900993270536026135T.-1..I72943103529344953394766996731133110340824123C/7460001J000228175^&6959100774385107421644677,o,OCT3,7,i,8,7,6,6,9,7,oC5,00,1,L9,5,3,6,3,3,s2,4,2,RTo,A7,11,oc6*wno,7,LTJ,00"oo,ocIT3,o>42,5,7,oo"6,44<NV.T33999300371306163508412077469312801117563-&43185\04335057^;ov616A42743391514252354352671223474560N1541."00279001903009944639124-11J^S22U7,CT8,3,7,1,oo,7,7,o\,cC7,OC2,8,1,I,or9,3,6,oo,3,8,CT2,4,2,7,7,4,l7,0^-.,cr7,oo,o,3,ornod-9,1,1,o,7,2,5Q,ioow^-5,4233w699-383713311635000442O174693128O91-T17166645385O4Q035957O:96216446743391514522351352271923474599141817700124300195469919一417,^q2203o,o,8,3,7,l.,8,7,7>6,9,7,3,o,oo,1,1,9,4,00,6,2,T.T00,o,c^-l2,2,7T2,4,7,4,n,9,fir入8,7,7,1,oCGTo,乂1,TJ^24CN,2,00,0054253367930037133616600074v690174670166393^5756668343cy9118->c-9<D500*,l-<Nl,-.0942733915145523333002CJ192344956664^J0o27785os42637564199-4wn-iw22223o,o^-RTf*.T1Lortr17,6,orno,oo,L1,9,5,5,6,3,ao,o*4,C,TCTo,oo,4,7,4,T^"cCVCJ-3,7,T^"7^-oro,oo,3,1,1VT2,<N:8oo5VGT6,3279130N151455233330012,061823444_i>59^"408277859742937564899.4217^29!3"o,3,oo,V£T7,i,1,7,7,o,9,o,"o,00,9,1,1,9,5,3,13,TITo,3,6,7,8,o,7,3,6,7,7,7,6,&Qc7"3,1,o,rt^3"or1,<^1,5,oo,2,ST8,5,6,6,3373783637733215300014413377-6700000000.671J77vo6500WJ21iool43966600961i244428311854512523324265222141359196.I6677,I520002T-roo>4340099-441-742236o,3,8,6,7,711,7>6,oo,OS,5,CTo*00,or1,oror5,3,2,00,3,VGT3,<^7,8,3,2,16,7,3,3,6,^CTQc7,7,L1,o,PTT1,5156,2,oo556337670036337300N193000144133,176700081367151*6648321001134660569622444700311154242233222652924413536961437755900021*3740040034341742233o,4,2,6,3,7,J,9*6,CToC9,7,9*.6,9,1,OC9,1,37r,TTT6,3,9,7,2,3,o>o,4,7,1,6,Qc7,l"6,1,o,ocf*1>OCK1,3o,62300T-460Gp9530191500212245325222722244035196601347554902630'4592236-243or2,6,3,7,od^Qco^-6,oro,OC6,or1,1,3,5,3,4,3,3,0<^2,Gy,7,2,、o,7,4,7,1,IT6,oro,7,1,o,or3,914,457AOC656c。"K7836831JOO961336I005126774900010867.&17464450010>61436!65^692^6444500019190024522532566782237035190601847514902630,-4-,08CO^J2-24W2"23no,712,6,3,7,L8,6,16,oro*OC*Xoo,L9,5,9,3,2,3,3,ftr2,-9,7,7,fsro,2,7,7,4,,1,l6,5,8,7,7,1,1,9,3,9,1>14dw5一3w5dGnu40191512552253352427222470302962408779849036394500001124,1-70323657546512300V031731'6403!032009-642777-623-04770\1-797558.|-_5-67,63一421033766"980°0775664口^g5。9vi-544J^l45047^J2991125922399462270216953200O222U5,o,4,2,CN,5,rTTC<.T2,9,2,o,o,7,cro,o,4,o,1,6,3,Qc4,4,1,o,o,6,GT5,5,o,7,o,9,orf<f3,6,0^-cr7,TJ,1J,4,6,5RT712,6,Nd-3188-nlJ80275664n950N914170440007429916992239942227821695338222。2OCo,7,2,2,5,3,3,2,00,6,o,Gr7,00,o,CTOT5,ocVCT4,3,oo,4,1,2,o,、o,2,lo,7,o,CTac、3,、oo,CTQ,5,LL4,TT、^5Aoo"1i9wso311-0250054653238931496603674232964273762954770179755001I-C-6763422073776Jqloooo0275884794993911-7884047^2916592239946227021-61533oo228oc7,4,2,2,5,oc,o,2,RT6,o,o,7,7,9,o,9,5,6,6,5,3,8,4,6,2,o,4,o,5,*KCT6,5,oCor3,3,氏oo,ot仏7,L,(,4,6"6,56o^-7!0\&63I100191O01758846609393J4008434712991169<y223999222702!6153382200222111111111211J21111,o,7,2,o,5,81oo,2,oo,6,o,o,oo,o^*o,o,3,7*.5,6,<y,6,oo,4,2,2,4,6,o,5,5,9,7,o,Qc3,3,3,CITo,4,13,12,2,3,551,2I11333II0251900409^5854449956,8584543421965922339432210003663542220O26,2,o,2,5,oo,7,2,oo,6,olo,00,T.To,5,3,4>5,6,4,6,oo,4,2,2,4,6,o,5,5>CT2,1Qs,oc3,3,3,^o,o,4,3,1-l2,ex-仏512I。It333102520049515384339861599720320067276769244775570.-7755114671-0024153376731830975854442925135845434219129922339432210002163-562U2200。6,9,5,4,2,5*.5,TJ,3,00,6,o,o,2t8>o,o,oc4,5,6,9,6,so,4,2,2,3,C.To,o,5,6,4,7,9,3,、2,OCTo,oo,5,1,7,1,2,or5,6,00,2,1*5o163105,31J510&220054444993(1005845444229000692<N21991621984610V_5616020022211—11111121-111113ullQc9,o,7>c_,5,5,3,2,oo,6,o,o,8,7,o,o,3,4,5,verQc6,4,2*2,o,4,o,o,5,7,4,7,<T3,1clrOCTo,4,4,1,7,oc2,2,6,50.5211,1*9_631"J^183012500544499951005545480220Nl-81922<N39_y3121*284160v54602002Qc-rr7,4,<N,5,w^-3,4,2,6,4,o,00,o,CTo,4,1,1,oC6>00,4,7,1,o,2"6,o,5,5,4,7,NCTor3,3,oo,CT14,1,1,1,2,2,vcr3,"1w,6Gu02119100215524149995485840008542990010VQ\22394r>i!<N9004160V5336C-2222121112111211121-11121,f!11,!OTo*4,2,5,5,3,4,2>6,o,o,4,7,o,io,4,8,1,9,6,OCT4,2,1-,o,2,6,o,2,5*1,7,o,9>9,3,3"5,oo,o,7,4,1,I,4,2"4,5*510£1ST",1"g>q_,w,G,npg-111100215544269495485004508542946992239OV0O127007669533602225soo588227962Il-35292VJ33216275斗13-i27796342083390039006629一693322353300415555Q013455585673900146003294.!60oo0ON6234764540055935o466290O3dA9559<yo5,7.o43,oo,fw3,o,C.T3,5,2,?-,3,l1,1>3,4,8,7,4,7,1,j,4,3,o,00,QT7,L4,4,215,2,4>2,2,1,1"oc1"2,o,CTo,4,4,2,384155553134575557390014683294160089623476345400400995o4663100339455G944Go,3,L00,9,ftro,00,3,u,5,l,6,QT<CT、4,RT9,4,6,7,1,1,3,1,oo,9,7,7,2,4,2,2,cw4,r4-00,ST3,T.T9,IT2,o,OCTCT4,2,23949551561H435355536917210.13290c-15683613477535948999-o45639O035945559>14,o,c_,3,4oo,cco,o,5,6,1,5,1,6,1,4,o,3,4,ST1,1,6,7,TJ,&6,1.^CT7,1^-4,4,2,T.T4,6,00,3,1,-O.T!,o5o44,256050088279725137*05I-373258425417005279163200011-5664006689:693372353384955558-J7435530054069I7410,,3296456003O12476333a\459Q\9o466350O56,945ST5,or96,o,o,3,3,8,to,5,3,3,WT1,6,oo,1,o,4.,00,1,L4,7,J,6,3,1o,7,7,6,4,4,4*2,m,2,00,oo,Trod-一l,1,5,2,oc>c^-5,2,253沒455599ooo3388o4,56,3,5,1J,o>8,1,o,3,4,oo,1,c^-,.CT7,I,1,Tr3,Qc7.J7^4,7T4,4,2,3,4,2,00,oo,C.J,ST1,1,5,1512,219495555537833558斗40391339329695600366117153494890-91OO46629O055,345,5,5,9,9,o,4,7,3,3,3,00,o,3,^5,6,5,3,6,3,6,o,3,4,8,1,o,1,7,1"IT7,3,o,7,入4,4,4,2,5,1,6,6,8,co,5"o,1,TJ,2,o,o,T2,26150088221965523521I*3T-8518234.17.6002761:6390711-36g9000060cso;2993322551009955555313337500544QCN27499329694600376217113544555991一GO466*995-5345559<yc-7rsf3,o^-1,3,5,CTC3,9,3,&3,2,5,r^-4,00,oo,o,4,,7,1,G^-7,3,CT7,7,4,4,4,4,o,7,4,of乂00,3,》1,-.1^1,1^-2,oor2,8,833o-95_5<y9o4,1,CT3—od-o,3,o,5,6,5,3,1,2>5>l.,4,6,2,o,1,7,1,CT4,6,8,oo,6"6,4,4,4,2,o,*i,^oo,2,-1,1n,2Qoo4223941*555531-343500564092J-4550023094600.10.'^f-335334579-57QV95-46639OQ,Tl-5,9,9,5,5,Qcor1,06-7,o,4,1,00,o,3,o,5,2,5,3,I,3,2,o,1,4,6,oo,5,4,7,1,o,4,3>o,od-\ftr6,4,2,4,CNT!■&06LT,1,1,oro,o,o,4,223004155558634550C564O921459002391681962353545495599546639<formula>formulaseeoriginaldocumentpage67</formula>1858,364,646,427,1868,694,1466,30,1629,2044,1641,1779,1128,420,420,1448,1457,1457,2441,2201,2201,2075,2263,933'1926,1128,1651,22,22,920,2502,521,521,1418,2806,2878'979,979,2465,1707,132,1973,89,89,1177,1744,2076:2076.2306:15142521:■272.1174.2155.5831617978119711971197364,646,427,960,694,1466,30,784,m,1641,30,1128,1569'420,1448,1457,1457,295,159,886,2075,2263,933,1926,1128,ii28,2174,3618643616I144444382029911J.I-&91555882924147110037.155一61500ly!.1181111It-111222211,1-21-II222I-1122222H211J1I-24,6,?*C4,6,4,1,i1,CToo"9,o,I.,7,7,9,6,1.,5,3,3,RT8,8,L-lrrlro,7,1,L6,..GroCC1T7,CTTOT.7Tr^'66640T.'5i531877736A669635943262655480763122556292220357903988777c:rol-.120:.5-500l2c:o-;;;o'J!g3ftJ1864383A"154144782029001i66291-5550062927,-.'44I1loo351..-55:9lj<04<ylolst111I111211222—1-1121221.121J1J2221221-:2221-312S>6,ST8,5,6,4,9,Qc00,CT7,oo,o,1,si-7,Qc6,6>5,4,f3,8,00,1>l,,3,3,1,6,LL2,6,3,QT5,7,2,2,C4-9,7,16,ft64,o,100:5cf853oo""。42626322930221454887433225565762233579033D08777foll28.03^5SJ"999636184436637140447880490--11.1662042552629271141-IOO351-55一500451y1-I110011-111121121li11222221J2IT-22212211!.1111-24,6,8,l,1,6,4,3,Q^"0^-o,7,OCTo,1,00,7,or6,1,4,4,3,1Roo,,,1,2,7,o,6,L2,4,3,oc5,7,<ST2,Tl-1,7,l1,6,6,o,o,100,一5,5,300。"7。V0427763829302214540001j43322552296223757903387771fo71200,03600^-0'99.63613343637140.+478254991.J6647255212927114611100037.155一58459-111--00III111211-21Jllll212121-112222211111124,6,0J-1,乇4,4,3>o>ST1>9,oo,o,7,OJ.7,on,9,9,l,,4,3,8>oo,1,1,CT<8,oc^CTL2,oo,ti.T9,5,oo,CT2,T,T9,7,7,666,o>715523oo75;"7。,&42799382947224459553423225520s1i62237579733l-87777701-220328^;'99963613663\&367143440\1114191.|-66925528292911-9lloc-031-15-511591110^11111111211lill1-221-1222222.1221J1-1J242760V35294722245958342222556vol.,02230579043287777701122d328799361396386367114444918141111.J66262552829278171J0003.1-.J551J159I1111111,--,121111,111222212112222221-22l-l-oo,4,Co,7,1,o,4,o,or7,I,9,oo>o,ftoo,7,oo,1,6,1,oo,3,3,o,oo,l,,L2,6,Mi-1,1,CVT,CToo,9,2,7,oro,3,9,Q.TT,,6.&vo6,o1,.5,5,2,36ft5&227403244722RJ4594838634255243622307750337007tt-701TJ2;092R-4<y900314356696714044940011294.1-665255288957—19:561581-1-111111111,21122122ill2222111-12222122i21115I226203294326945948486&227524262237075033700§7707021207500^59Q'85148466361554494831231.1165o\2552000s95711o\&1060341l5:5.1.-t--5411111I"1111lllll22121.121-2222111112221221-1221173.16o00321-no1ev-il,^3,322202118609977039777176.4c11255350077732220221057f(003786771I001127-95847!y996955548499771971100635152.61I50OQ-1111-0O2121J—11111221222-I111-2<image>imageseeoriginaldocumentpage69</image>1720,1720,2044,409'21,21,1335,1335,465,2041,2656,1355,1260,1260,2294,2294,2294,516,420,420,420,420,1610,1610,腦,1404,1338,1338,550,920'3641,3641,3641,3641,3641,3641,231'1457'!457,1457,409,2968,2968'3676,1129,1129,1129,1650,1650,1650,2224,2224,2707,2707,2707,2707,2707,2707,3178,51,2521,2854,3545,3545,2514,2514,415,586,2664,2679'1423,1017,788,788,871,954,4241,4453,3726,838,4968,1477,1429,1429'893,"01,4173,4173,3830,423,423,423,3780,〗599,2632,3360,3085,2464,3085'3085,364,364,364,364,4131,4131,189,U89,2柳,25外,1727,1727,1727,1727,!727,1727,2582,2582,5182,5182,398,398,5110,5110,1720,2044,21,409,21,3268,1335,3547,2656,2656,2185,歸,1571,1778,2294,2294,2214,1811,420,420,420,420,1610,1610,1404,1404,1338,訓(xùn)'2161,920,3641,3641,柳,3641,3641,3641,1457,1457,1457,1457,2968,2968'3676,2386,1129,1129,1650,1650,4246,4246,425,2220,2707,2707,2707,2707,2707,3178,3178,4507,2854,3019,3545,3545,2514,2514,586'4343,2664,2664,1017,1423'788,1888,871,1477,4453,4241,4241,3726,4968,2444,1429,1429,2263,4101,4173,4173,423,423,423,3220,3780,2311,1158,3360'3085,2464,3085,734,364,364,364,364,4131,2卯3,303,"眠3029,1060,1727,1727,1727,1727,1727,2831,2582,1333,5i82,5182,398,柳,5310,4554,2044'4092044,柳3268,1727,3547,393,2656,2656,1260,12601778,17782294,22941811,1811420'420420,10861610,1404腦,畫1338,1260'216〗,920'3357,3357'3641,36413641,231i457,3525409,4092968,2968,3676,3676,1129,1291650,42464246,4246,826,663,2707,2707'2707'27072519,25194507,2437,3019,36113545,3611,2514,4151,2664'26642664,10172665,1888788,78S4453,4241838,42411477,14772444,24441429,893楊l,224173,4620423,4233220,32202311,26323085,30853085'24643285,920364,364364,364303,303■303,22631060,1060,727,17271727,17272728,2831l附,4655182,73398,3985110,51103232,2044,21'3268'1260,2656,1260,1260'2294,1811,420'1086,1404,4368,1260,3357,3641,3641,231,1457'409,2968,3676,1129,4246,4246,2423,2707,2707,3178,231,918,3611,415i,2664,1423,788,788,4粉,4241,3726,2444,893,2263,4394,423,2081,2632,鄉(xiāng)5,3085,920,364,4978,303,2599,1727:1727,1727,3421:465,398.4554.膽,2599,1727,727,1727,2582,5182.3619;510,42ft'456691200-i"65444322672446007211,J5828875649662236002678.0'222260s5.1o956222840435&ft>625496122677—-506154774494824426300\30\1-57774435£21--23321121114333312314422323341-144223323341211)13454,4,7,9,6,o,,,4,I,o,6,4,1,Co,1,1^-1,7,9,8,6,9,6,6,3,7,7,8,1,1,1,4,3,<x8,3,<is-7,A3,1,9,3,o,2,OCT4,o,4,4Ti.3,o77,<J5259o2211211211J113.13312314422323342111441243321221113559斗2365&9922ft-d3644435762252000531.l56187546297320'3800663503462224414326662400-116277720516078429400.^-84560033;^12121221111333142IIII2222324214441431-23345U0,5110,5110,2卯7,2卯7,2卯7,2卯7.2卯7,2卯7,2術(shù),2卯7,784,784'784,3138,1710,3138,1710,3138,3138,4114,1614,4114,4114,4114,2562,780,780,780,780,3355,3355,3355,3355,4478.4274,4274,2665,4274,4274,4274,325,325,325,325,1222,2665,2665,2665,2665,1053,2359,2294,2359,3599,2831,3672,2831,3672,m5,4240,4240,4240,4240,4240,4240,4009,4240,2160,2160,3270,2631,2631,2631,2631,2434,2434,2434,2434,2434,2434,2434,2434,2434,2434'2434,2434,2434,2434,2434,3926,3926,3926,3926,3926,1275,266,1275,266.1275,879,1331,681,681,1331,5208,3399,3399,3399,5208,32'7,496,496,496,496,496,496,496,691,4587,4527,4527,3767,3946,3946'960,4282,55,55,55,920,822,822,5031,5031,4850,5031,5031,5164,5332,3277,3277,3277,3277,3277,3277,2116,2116,2116,4467,1596,596,1596,1596,1896'4129,4129,4129,4129,4129,1780,1367,1367,1367,2〗62,2162,'2162,2162,238,238,238,238'238,238,238,3533,■3533,3732,3533,3533,3533,3533,3533,3533,3533,3533,3533,3533,3470,3533,355,355'355,355,355'355,355,355,355,355,4001,4001,4001,4001,柳l,4001,4001,4001,4001,4001,4713,656,4713,4713'4713,322,4218,4218,4218,4218,5182,4518,4518,4518,2069,2069,2069,2069,2069,2069,4650,552,552,552,552,2331'2331,2331,2331,2331,5842,5842,5842,5842,5842,2162,262,262,2162,5031,2162,3832,2386,5945,6126,1283,l加,1283,認(rèn),1283,52,3349'3349,6917,6917,33賴,6135,2837,2837,6135,"80,4780,4780,4780,4780'780,1060,麵,1060,1060,1060,l柳,308,1423,1423,1423,i423,1423,1423,1423,1423,1423,1423,1423,1423,1654,5061,5061,5061,5061,971,971,716,971,971,308,308,308,308,308,2907,2907,2鄰7,2907,2的75110,2907'2907,2柳,29073138,784,3138,3138,31381710,mo,1367,1367,41145082,1778,1778,1778,25622843,2843,4642,3355,33553355,3355,2665,2665,42744274,4274,4274,4274'4274325,325,1222,1222,12223351,2665'2665,2665,23593599'2359,2359,2359,28312160,2160,2160,4009,42404009'4240,4240,4240,40092386,681,681,2386,3270.2631,2631,2434,2434,24342434,2434,2434,2434,2434:2434,1514,2434,2434,2434.2434,4465,3926,3926,3926.1275,266.266,1275,1275.5397,1879,1879,1879,1879,275,1275,5208,5208,5208:327,327,327,327,327,496,496,496,496,496,4642,691,3767,2607,2607:960'2194,2194,2194,2194,920,550,920,920,957,5031,5031,5031,5031,5031,3277,3277,3277,3277,3277,3277,3277,3277,3277,3277'4418,4467,8%,1596,596,1896,4129,4129,4129,4129,4129,4129,1780,1780,1780,1367,2162,2162,2162,2162,238,238,238,238,238,238,238,3830,3830,3533,3533,3533,3533,3533,3533,3533,3533,3533,3533,3533,4588,355,3591,3591,355,355,355'355,355,355,3268,1877,1877,1877,4001,■1,4001,4001,4001,4001,4001,4001,656,656,4713,322,322,322,322,322,5182,5182,2845,5182,5182,4518,4518,4518,4518,4518,4650,759,4650,759,759,552,552,2331,2331,2331,2331,233!,6187,6187,5172,5S42,5842,5842,5842,2162,2162,2162,2162,2162,2162,3832,5945,5945,5945,1283,1283,1283'1283,1592,4352,3349,6917,3349,2751,3349,6135,6135,2794,6135,4風(fēng)4780,4780,4780,4780,4780,1060,2764,畫O,1060'畫,1423,1423,1423,1423'1423,1423,1423,簡,1423,1423,4558,4330,1654,1654,]654,1425,5061,1425,1425,971,2814,26]6,2814,2814,308,308,308.5380,785,5380,<formula>formulaseeoriginaldocumentpage72</formula>5110,5U0,5110,5110,1335,5110'5110,5110,5110,5110,383'5110,3610,3610,3610,360,3610,3610,3610,3610.7965,7965,7965,7965,7965,3610,7965,3610,2814'2814,2814,8731,2814,2814,2814,2814,1335,1026,1026,1026,6683,2129,6683,6683,2129,2129,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827'827,827'5723,5017,5723,5723,5723,5723,5723,5017,4055,4055,3756,3756,3756,3756,3756,3756,3756,3756,3756,3756'616,6933,7871,7871,7871'7871,7871,7871,5846,5846,5846,5846,2019,2019,2019,2019'2019,2019,5261,5261,5261,5261,5261'5261,1737,1737,2041,1737,6532'6532,6532,5676,442,442'442,1859,1859,442,3101,3101,3101,3101,4143,4143,4143'4143,4143,443,4143,4143,4143,4143'4143,4143,5726,3102,3102,302,3102,3102,4880,4880,4880,4880,4880,4880,2595,2595,7052,7052,7052,4885,7052,7052,7052'7052,5177,7052,7052,7052,691,691,691,691,2000,2000,2000,2000,2000,2000,5999,2000,2000,2000,2000,2000,2000,2000,3692,3692,3692,3692,3692,3692'611,6川,3692,6111,3692,3692,5741,5741,5741,5741,5741,5741,5741,5741,5741,5741,8670,10473,8670,8670,8670,10473,8670,4035'柳5,8670,5261,8670,4035,柳5,5261,柳5,4035,8670,4035,5261,5261,4035,6497,10666,734,734,734,734,734,734,9318,9318,S980,8980,9155,955,9155,9318,5991,9318,314,938,2378,2378,3102'2378'3102,2378,2854,5416,2889,2889,2889,2889,2889,2889,2889,2889,2889,2889,2889,2889,2,,2889,2889,28S9,2931,2931,2889,2889,2889,2889,4240,4240,4240'4240,4240,2162,9862,2162,7246,7246,7246,7246,7434,7246,7246,7246,7246,■7246,7246'7246,7246'7246,7246,7246,7246,7246,4333,4333,4333,4333,4333,4333,4333,4333'4333,4333,5244,5244'5244,5244,5244'5244'51,51,51,51'51'51,51,51,51,51,51,51,51,51,6447,6810,6810,6447,2921'2921'2046,2046,3424,2046,2046,2046,6599,1911,6599'6599,1911,1911,6599,1911,6599,1911,327,327,327,327,327,327,327,327,2678,柳4,4094,4094,柳4,鄰94,5633,5633,5633,柳5,7152,7152,7152'7152,7152'7152,8279,5283'5283,32,5283,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,5283,32,32,32,5283,32,32,32,32,32,3634,3634,3634,3634,1158,3634,3634,3634,3634,3634,3634,3634,3634,3634,3101,3101,3101,1392,1392,1392,3101,3101,310,1392,4929,柳9'4929,4929,4929,柳9,4929'4929'4929,4929,艦9'4線鵬,鵬,1803,9232,9232,9232,9232,1803,9232'9232,7228,7228'2129,3435,2129,2129,2129,2641,9158,335!,2641,9158,9158,3351,7167,9158,2129'229,10358,]0358,4330,4330'3814,4330,柳2,6012,6012,6012,則2,3814,3814,6012,6012,4330'4330,7264,4330,6012',,1446,1446,l楊,1446,1446'1446,1446,1446,1446,1446,1446'11793,1446,1446,1446,1446,1446,1446,1446,1446,1446'1446,1446,8729,8729,427,8729,8729'8729,8729,427,8729,8729,8729,8加,8729',》,8729,8729;7741,774,7741,77",4400,4400,4400,4400,4柳,4400,4400,4400'4400,4400,4400,4400,4400,4400,4400,4400,11052,5353,5355,l觀,簡2'11052,11052,5355,畫2,1,,11052,畫2,腦2,11052,蘭2,11052,11052,U052,30卯'2757,3090,30卯,53〗0,5310,7829,7829,4155,4155'5740,5740,4155,5740,4155,5740'4155,4155,4155,4155,4155,4155,4155,4155,5740'5740,30:17,3017,3017,30J7,5920,2420,4001,5920,4001,4001,1641'1641,6807,6807,6脂.6807,6807,6807,6807,6807,6807,6807'9860,9860,6596,65%,6569,6569,10063,1655,85,85,550,550,10623,10623,2308,2308,3360,3360,6024,6024,713,713,10037,0037,10950,鵬0,4518,4518,3818,3818'7505,3818,6810,6810,1118,1790,9317,9317,5069,5069,8058,8058,6574,6574,3101,3101'3101,3101,4518,1606,3830,3269,6912,6912,8502,8502,398,398,398,398,5275'5275,l脂,U967,12618,12618,12618,12618,7414,7414,1426,1426,327,327,4765,7688,4682,3115'5929,5929,532,5321,4410,44J0,88,818,3830,3830,3830,3830,%32,,2,78",7S7I,7871,7871,5261,5261,5267,5267,11674,11674,8410,11674,7020,7020,7020,7020,7167,7167,7471,7471,3269,3269,5925,5925,13343,13343,8111,811!,2484,7742,4460,4460,9860,9860,6596,6596,8982,8982,陽3,10063,550,550,4328,1089,10623,腕3,6219,2308,7152,7152,6024,6024,713,713,10950'10線IO線蘭O,4518,4518,3818,3818,3818,3818,6810,6810,8982,8982,173,173,5069,5069,8058,8058,6574,6574,3101,310,7502,7502,1606,1606,3269,1606,9284,9284,■398,398'398,398,398,398,8169,8169,8962,8%2,12618,12618'7414,7414,7414'7414,7020'8968,3649,3649,4765,4765,3115,3115,5929,5929,5321,5321,3300,3300,4069,4069,3830,3830,9632,船2,787,7871'7871,7871,5261,10356,5261,5261,5267,5267,11674,11674,8410,734,7020,7020,1055,1055,7167'7167,7471,7471,3269,3269,4則'柳l'13343,13343,8111,8川,1953,1953'4460,4460,訴60,9860,5190,51卯,柳2'柳2,11787,1787,550,550,10623,10623,8757,8757,2308,4664,6024,6024,6024,6024,713,713,'0950,10950,10950,10950,2263,2263,3818,7505,7505,3818,1790,118,柳2,柳2,173,173,8058'8058,8058,8058,6574'6574,3101,3101,7502,7502,1606,1606'l線藤,1606'9284,398,398,398,398,398,398,8169,8169,8962,8962,'2618,12618,7414,7414,7414,7414,8731,柳8,3649,4765,4765,4765,3115,3115,5929,5鄉(xiāng),5321,8753,3300,3300,4069,4069,3830,3830,9632'9632,7871,7871,7871,7871,5261,526〗,6979,10356,4823,5267,10958'109沐734,734,7020,7020,1055'怖5,7]67,7167,8443,8443'3269,3269,4901'4則,13343,13343,8952,柳8,1953,1953,4460,4460,9860,9860,2599'3921,柳2,柳2,11787,11787'550,550,10623,10623,5876,6540,3360,3360,6024'6024,5319,5319,應(yīng)7'713,IO卯O,0950,鵬O,IO線9473'9473,3818,3818,3818,38'8,118,17卯,1165,柳2,173,173,8058,8058,8058,8058'6574,6574,310,3101,6313,6313,9284'9284,9284,畫,6545'9284,398,398,398,398,9158,5275,8169,8169,l脂,11967,126i8,12618,7414,7414,1426,1426,6251,6251,4765,4765,4765,4765'5929,5929,9332,5929,4410,4410,4069'4069,4069,10900,3830,3830,9632,7871,7871,9632'7871,7871,5261,5261,,0,10356,10958'l簡,l腦,11674,鵬,8楊,7020'7020,1055,1055,7167'7167,7471,8443,8286,S286'4則,4901,13343,13343,2484,7742,1953,1953,4460,4460,9860,9860,2599,2599,柳2,8982,11787,11787,550,550,10623,10623,4682,4682,3360,3360,6024'6024,5319,5319,10037,10037,10950,10950,10950,10950,9473,7371,3818'3818,3818,3818,1118,1790,9317,9317,173,173,8058,8058,6230'6574,6574'6574,301,3101,4518,4518,9284,9837,6912,9284,8502,8502,398,398,398,398'5275'5275'8962'11967,8962,8962,12618,12618,7414,7414,1426,1426,327,327,4765,7688,3267,7688,5929,5929'5321,5321,4410,4410,4069,818,656,656,3830,3830,9632,7871,7871,7871,7871,7871'3261,5261,5846,]0089,1〗674,11674,11674,I簡,7020,7020,7020,7020,7167,7167,8443,8443,歸,糾3,5925,5925,柳l,柳],13343,]3343,2484,7742,1953,1953,<formula>formulaseeoriginaldocumentpage75</formula>附錄B.l表^的值這些值表示在B.5.4.1中的上述應(yīng)用中所述的表Fo的值的示例集合。每項是以十進(jìn)制表示的32比特整數(shù)。這些值應(yīng)從第一列由上至下、然后第二列由上至下的讀取,以此類推。25J29H3625816719441521339547206柳3570285917861139522316333122204803041843489224749107832843084"3370958628681232419420130494366952441038197927004070167936307306866106770911575146607355752673312363149541125039405156231768280298644518744763351函83115811150234575027023732001371n4057卿321867642570922780221158212743422026452359283870120H642291272414043327201247663370954177170942951377460321842010m532425760904006626915370291837924028050614215970289854310108543812220353335132$1004366930404887651542597398712431161716416607451843948209303166翻32583238239283725141793502584288911321909085522179685129227914434452380520U23746331984510985033246274441140813252723936,0415912580081361682810197細(xì)69022804356053685256204306701柳712924337914086716658856160733156252216143338873531423795871228817808616452097185425890150400549825698424833917210003318886343628616410192032657933303326827026W66452780382310317661298349397841658180062593736473234001483183478755428056862469321093582471651269,20843957633U5380731024369861982290045429135391925835630951785810338086711542983082771650792940383796320030101688842501582075300767081811915838832075009450401264200139789444213448104768304656133532141812122217188075246043949683749698246653043533038821423756943137401689836377829677725459830828808132523077882590649743608139912510196916843613555757172054995J99"74987508193940370820193487922072314S430814431292651273766169217600322680755212420803184389539881223579568013868299200116934506S35892-菌41097543689605U2142247665832502400091617557768237626〗0537158071725930936583963柳68132721619582626898255272273613418789738652560755113〗77154147255470307639193918825262929492842扁624012337893535520W59隨8277608424091751209208146004992232770195693986158854356930869314210307906780839521470435941396438952126872435536583歸]106499073737631017022695031039381854665簡6583994090978432324096319420501552613828404324151058116733967801227011634246183992761078866386252605288817833蠻852柳I34720429J14566681113018753951712547446782246947266917971688376009i4176141739362968565237212131024344258743294951678297312930135830751I2995604341254080j947,5985752137802U32045柳"51384069776198530819815029842052332962!02412358044310345705433,7662240053687431523670218272495暢73728477036218596347270847529730625,523465293034153819673115293053221358卿7嘗7612觸22297,61息536S02734638932,%n1767112554266]241603982851129721478367657528542B66308933222411303腦2加5附錄B.2表K,的值這些值表示在B.5.4.1中的上述應(yīng)用中所述的表^的值的示例集合。每項是以十進(jìn)制表示的32比特整數(shù)。這些值應(yīng)從第一列由上至下、然后第二列由上至下的讀取,以此類推。<formula>formulaseeoriginaldocumentpage77</formula>權(quán)利要求1.一種用于編碼數(shù)據(jù)以便在預(yù)期至少部分地如刪除信道一樣執(zhí)行的通信信道上從源傳輸至目的地的方法,所述方法包括獲得表示所述要被編碼的數(shù)據(jù)的輸入碼元的有序集;選擇多個域數(shù)組值,其中每個域數(shù)組是從有限域數(shù)組導(dǎo)出的并且至少兩個不同的有限域數(shù)組被表示;生成表示系數(shù)矩陣——其表示所述多個域數(shù)組中的至少兩個——的數(shù)據(jù)結(jié)構(gòu),其中這些域數(shù)組中的至少兩個是從彼此不同的有限域數(shù)組導(dǎo)出的;生成作為輸入碼元的線性組合的輸出碼元,其中特定組合是依據(jù)于表示所述系數(shù)矩陣的所述數(shù)據(jù)結(jié)構(gòu);以及使用所生成的輸出碼元并對所述數(shù)據(jù)編碼。2.如權(quán)利要求1所述的方法,其特征在于,所述表示系數(shù)矩陣的數(shù)據(jù)結(jié)構(gòu)是單元值的二維數(shù)組,每個單元值表示在一個輸出碼元的生成中一個輸入碼元的系數(shù)以使得當(dāng)系數(shù)為非零或以某一基數(shù)為模取余不為零時,該相應(yīng)輸出碼元的值依賴于該相應(yīng)輸入碼元的值。3.如權(quán)利要求1所述的方法,其特征在于,所述表示系數(shù)矩陣的數(shù)據(jù)結(jié)構(gòu)是指定系數(shù)值的規(guī)則集,且其中規(guī)則指示系數(shù)不為零或以某一基數(shù)為模取余不為零,則相應(yīng)輸出碼元的值依賴于該相應(yīng)輸入碼元的值。4.如權(quán)利要求1所述的方法,其特征在于,針對所述輸入碼元的固定值的任意集合能夠從所述輸入碼元集合生成的唯一性輸出碼元的數(shù)目獨立于所述域數(shù)組大小。5.如權(quán)利要求1所述的方法,其特征在于,表示系數(shù)矩陣——其表示所述多個域數(shù)組中的至少兩個一一的數(shù)據(jù)結(jié)構(gòu)的所述生成是使用從第一有限域數(shù)組導(dǎo)出的第一域數(shù)組和從第二有限域數(shù)組導(dǎo)出的第二域數(shù)組的生成,其中這些域數(shù)組中的至少兩個是從彼此不同的有限域數(shù)組導(dǎo)出的,其中所述第一有限域數(shù)組和所述第二有限域數(shù)組是不同的,且此外所述第一有限域和所述第二有限域各自是從包含GF(2)、GF(4)、GF(16)、GF(256)的域集合中選出的。6.如權(quán)利要求5所述的方法,其特征在于,所述第一有限域數(shù)組是GF(2)而所述第二有限域數(shù)組為GF(256)。7.如權(quán)利要求5所述的方法,其特征在于,所述第一有限域數(shù)組是GF(2)而所述第二有限域數(shù)組為GF(4)。8.如權(quán)利要求5所述的方法,其特征在于,所述第一有限域數(shù)組是GF(4)而所述第二有限域數(shù)組為GF(16)。9.如權(quán)利要求5所述的方法,其特征在于,所述第一有限域數(shù)組是GF(16)而所述第二有限域數(shù)組為GF(256)。10.如權(quán)利要求5所述的方法,其特征在于,所述第一有限域數(shù)組小于所述第二有限域數(shù)組。11.如權(quán)利要求5所述的方法,其特征在于,所述第一有限域數(shù)組大于所述第二有限域數(shù)組。12.—種用于將在目的地處通過預(yù)期至少部分地如刪除信道一樣執(zhí)行的通信信道從源接收到的傳輸?shù)臄?shù)據(jù)解碼的方法,所述方法包括接收多個輸出碼元一_從被編碼為所述多個輸出碼元的輸入碼元的有序集生成——的至少部分,其中每個輸出碼元是作為具有選自有限域的系數(shù)的所述輸入碼元中一個或多個的線性組合而生成的,其中至少一個系數(shù)是第一有限域的成員且至少另一系數(shù)是第二有限域的成員而不是所述第一有限域的成員;以及從任意預(yù)定數(shù)目的輸出碼元的接收再生所述輸入碼元的有序集至所需的精確度。13.如權(quán)利要求12所述的方法,其特征在于,針對所述輸入碼元的固定值的任意集合可能已從所述輸入碼元集合生成的唯一性輸出碼元的數(shù)目獨立于所述域數(shù)組大小。14.如權(quán)利要求12所述的方法,其特征在于,所述有限域是使得第一有限域數(shù)組和第二有限域數(shù)組是不同的且所述第一有限域和所述第二有限域各自是從包含GF(2)、GF(4)、GF(16)、GF(256)的域集合中選出的。15.如權(quán)利要求14所述的方法,其特征在于,所述第一有限域數(shù)組是GF(2)而所述第二有限域數(shù)組為GF(256)。16.如權(quán)利要求14所述的方法,其特征在于,所述第一有限域數(shù)組是GF(2)而所述第二有限域數(shù)組為GF(4)。17.如權(quán)利要求14所述的方法,其特征在于,所述第一有限域數(shù)組是GF(4)而所述第二有限域數(shù)組為GF(16)。18.如權(quán)利要求14所述的方法,其特征在于,所述第一有限域數(shù)組是GF(16)而所述第二有限域數(shù)組為GF(256)。19.如權(quán)利要求14所述的方法,其特征在于,所述第一有限域數(shù)組小于所述第二有限域數(shù)組。20.如權(quán)利要求14所述的方法,其特征在于,所述第一有限域數(shù)組大于所述第二有限域數(shù)組。21.—種用于編碼數(shù)據(jù)以便在預(yù)期至少部分地如刪除信道一樣執(zhí)行的通信信道上從源傳輸至目的地的方法,所述方法包括獲得表示所述要被編碼的數(shù)據(jù)的輸入碼元的有序集;選擇多個域數(shù)組的值,其中每個域數(shù)組是從有限域數(shù)組導(dǎo)出的并且至少兩個不同的有限域數(shù)組被表示;生成表示系數(shù)矩陣一一其表示所述多個域數(shù)組中的至少兩個一一的數(shù)據(jù)結(jié)構(gòu),其中這些域數(shù)組中的至少兩個是從彼此不同的有限域數(shù)組導(dǎo)出的;從所述輸入碼元的有序集生成多個冗余碼元,其中每個冗余碼元是基于具有有限域上的系數(shù)的所述輸入碼元中的一個或多個與其它冗余碼元的一組線性約束而生成的;生成作為輸入碼元的線性組合的輸出碼元,其中特定組合是根據(jù)表示所述系數(shù)矩陣的所述數(shù)據(jù)結(jié)構(gòu);從輸入碼元和冗余碼元的組合集生成多個輸出碼元,其中每個輸出碼元是作為具有選自有限域的系數(shù)的所述輸入碼元和冗余碼元的組合集中的一個或多個的線性組合而生成的;使用所生成的輸出碼元并對所述數(shù)據(jù)編碼。22.如權(quán)利要求21所述的方法,其特征在于,針對所述輸入碼元的筒定值的任意集合可從所述輸入碼元集合生成的冗余碼元的數(shù)目獨立于所述域數(shù)組大小。23.如權(quán)利要求21所述的方法,其特征在于,所述有限域是使得第一有限域數(shù)組和第二有限域數(shù)組是不同的,且所述第一有限域和所述第二有限域各自是從包含GF(2)、GF(4)、GF(16)、GF(256)的域集合中選出的。24.—種用于將在目的地處通過預(yù)期至少部分地如刪除信道一樣執(zhí)行的通信信道從源接收到的傳輸?shù)臄?shù)據(jù)解碼的方法,所述方法包括接收從輸入和冗余碼元的組合集生成的多個輸出碼元中的至少部分,其中每個輸出碼元是作為具有選自有限域的系數(shù)的輸入碼元和冗余碼元的組合集中的一個或多個的線性組合而生成的,其中所述多個冗余碼元是從所述輸入碼元的有序集生成的,其中每個冗余碼元是基于具有有限域上的系數(shù)的所述輸入碼元中的一個或多個與其它冗余碼元的一組線性約束而生成的,其中至少一個系數(shù)是第一有限域的成員且至少另一系數(shù)是第二有限域的成員而不是所述第一有限域的成員;以及從任意預(yù)定數(shù)目的輸出碼元的接收再生所述輸入碼元的有序集至所需的精確度。25.如權(quán)利要求24所述的方法,其特征在于,針對所述輸入碼元的固定值的任意集合可能已從所述輸入碼元集合生成的唯一性輸出碼元的數(shù)目獨立于所述域數(shù)組大小。26.如權(quán)利要求24所述的方法,其特征在于,所述第一有限域是GF(2)。27.如權(quán)利要求24所述的方法,其特征在于,所述第二有限域是GF(256)。28.如權(quán)利要求24所述的方法,其特征在于,所述第二有限域是GF(4)。29.如權(quán)利要求24所述的方法,其特征在于,所述第一有限域是GF(4)。30.如權(quán)利要求24所述的方法,其特征在于,所述第一有限域是GF(16)。31.如權(quán)利要求24所述的方法,其特征在于,所述第二有限域是GF(16)。全文摘要提供了一種用于編碼數(shù)據(jù)以便在通信信道上從源向目的地傳輸?shù)姆椒?。該方法對輸入碼元的有序集操作并且包括基于線性約束從輸入碼元生成多個冗余碼元。該方法還包括基于線性組合從包括輸入碼元和冗余碼元的碼元組合集生成多個輸出碼元,其中該線性約束或組合中的至少一個是在第一有限域上而該線性約束或組合中的至少另一個是在一不同的第二有限域上,并使得可從任意預(yù)定數(shù)目的輸出碼元再生輸入碼元的有序集至所需的精確度。文檔編號H04B14/04GK101427495SQ200780013972公開日2009年5月6日申請日期2007年2月16日優(yōu)先權(quán)日2006年2月21日發(fā)明者L·明德,M·A·肖克洛拉希,M·G·盧比,M·沃森申請人:數(shù)字方敦股份有限公司