两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

文件下載和流系統(tǒng)的制作方法

文檔序號(hào):7633273閱讀:513來源:國(guó)知局
專利名稱:文件下載和流系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及在通信系統(tǒng)中編碼和解碼數(shù)據(jù),尤其涉及編碼和解碼數(shù)據(jù)以說明傳送的數(shù)據(jù)中的差錯(cuò)和間隔的通信系統(tǒng)。在各實(shí)施例中,數(shù)據(jù)通過廣播和/或多點(diǎn)傳送無線網(wǎng)絡(luò)被傳送給接收器。
背景技術(shù)
發(fā)送器和接收器之間文件和流在通信信道上的傳送已經(jīng)成為許多著作的主題。較佳地,接收器想要有一定確定性地接收發(fā)送器在信道上傳送的數(shù)據(jù)的準(zhǔn)確副本。在信道不具有完美保真度時(shí)(包括大多數(shù)可全部物理實(shí)現(xiàn)的系統(tǒng)),所關(guān)心的一方面是如何處理傳輸中丟失或出錯(cuò)的數(shù)據(jù)。丟失的數(shù)據(jù)(刪除)常常比遭破壞的數(shù)據(jù)(差錯(cuò))更易于處理,因?yàn)榻邮掌鞒3o法分清何時(shí)遭破壞的數(shù)據(jù)是錯(cuò)誤接收的數(shù)據(jù)。已經(jīng)開發(fā)了許多糾錯(cuò)碼,用來校正刪除和/或差錯(cuò)。通常,所使用的特定代碼是基于有關(guān)傳送數(shù)據(jù)的信道的失真和所傳送的數(shù)據(jù)的性質(zhì)的一些信息來選擇的。例如,當(dāng)已知信道具有較長(zhǎng)時(shí)段的失真時(shí),則突發(fā)差錯(cuò)碼(burst error code)可能最為適合該應(yīng)用。在預(yù)期到僅僅較短、較少發(fā)生的差錯(cuò)的情況下,簡(jiǎn)單的奇偶檢驗(yàn)碼可能是最好的。
在傳送器和接收器具有通信所需的全部計(jì)算能力和電能,且傳送器和接收器之間的信道足夠干凈以供相對(duì)無差錯(cuò)的通信使用時(shí),數(shù)據(jù)傳送是直接的。數(shù)據(jù)傳送的問題在信道處于不利環(huán)境或者傳送器和/或接收器具有有限能力時(shí)變得更加困難。
一種方案是使用前向糾錯(cuò)(FEC)技術(shù),其中數(shù)據(jù)在傳送器上編碼從而接收器能從傳送刪除和差錯(cuò)中恢復(fù)。在可行時(shí),從接收器到傳送器的反向信道供接收器用于與傳送器進(jìn)行有關(guān)差錯(cuò)的通信,后者可相應(yīng)地調(diào)整其傳送過程。然而,反向信道常常并不可用或可行。例如,當(dāng)傳送器向大量接收器傳送時(shí),傳送器可能不能處理來自全部這些接收器的反向信道。結(jié)果,通信協(xié)議常常需要被設(shè)計(jì)成沒有反向信道,從而傳送器可能不得不在沒有那些信道條件的全視圖的情況下廣泛地改變信道條件。
傳送器和接收器之間的數(shù)據(jù)傳送問題在接收器需要是低功率、可便攜或移動(dòng)的小設(shè)備并需要以高帶寬接收數(shù)據(jù)時(shí),變得更加困難。例如,無線網(wǎng)絡(luò)可設(shè)置成從一固定傳送器向大量或不確定數(shù)量的便攜式或移動(dòng)接收器按照廣播或者多點(diǎn)傳送來傳送文件或流,這些接收器受限于其計(jì)算能力、存儲(chǔ)器大小、可用電功率、天線大小、設(shè)備大小和其它設(shè)計(jì)約束。
在這種系統(tǒng)中,要作的考慮包括幾乎沒有或沒有反向信道、有限的存儲(chǔ)器、有限的計(jì)算周期、移動(dòng)性和定時(shí)。較好地,設(shè)計(jì)應(yīng)當(dāng)最小化將數(shù)據(jù)傳送給可能極多接收器所需的傳送時(shí)間量,其中各個(gè)接收器可在不可預(yù)期的時(shí)間上打開和關(guān)閉、移入和移出范圍、因鏈接錯(cuò)誤而導(dǎo)致?lián)p失、單元(cell)改變、單元中的擁塞,從而使低優(yōu)先級(jí)的文件或流分組暫時(shí)中斷等。
在用于數(shù)據(jù)傳送的分組協(xié)議的情形中,要在分組網(wǎng)絡(luò)上傳送的文件、流、或其它數(shù)據(jù)塊被分成相等大小的輸入碼元,且輸入碼元被置入連續(xù)的分組中。輸入碼元的“大小”可用比特來度量,而不管輸入碼元是否實(shí)際上被分成比特流,其中當(dāng)在從2M個(gè)碼元的字母表中選擇輸入碼元時(shí),輸入碼元具有M比特的大小。在這種基于分組的通信系統(tǒng)中,面向分組的編碼方案可能是適當(dāng)?shù)摹H绻试S預(yù)期的接收者即使在面對(duì)網(wǎng)絡(luò)中的刪除時(shí)也能恢復(fù)原始文件的準(zhǔn)確副本,則文件傳輸被稱為是可靠的。如果允許預(yù)期的接收者即使在面對(duì)網(wǎng)絡(luò)中的刪除時(shí)也能及時(shí)地恢復(fù)流的每一部分的準(zhǔn)確副本,則流傳輸被稱為是可靠的。在文件或流的一部分不可恢復(fù),或者對(duì)于流而言如果流的某些部分不能及時(shí)恢復(fù)的意義上,文件傳輸或流傳輸也可以是有幾分可靠的。因?yàn)榱阈堑膿砣孤酚善髦械木彺鏅C(jī)制達(dá)到其容量限度從而迫使它丟棄輸入的分組,所以常常發(fā)生分組丟失。對(duì)傳輸期間免遭刪除的保護(hù)已是許多研究的主題。
眾所周知的是,使用連鎖反應(yīng)碼來供從文件或流的輸入碼元中產(chǎn)生任意數(shù)量的輸出碼元。這具有許多用途,包括用與信息復(fù)制方法相反的信息附加方法產(chǎn)生輸出碼元,其中信息復(fù)制方法是接收器接收復(fù)制接收器已知數(shù)據(jù)的附加數(shù)據(jù)。用于產(chǎn)生、使用和操作連鎖反應(yīng)碼的各種新技術(shù)在例如以下專利(或?qū)@暾?qǐng))中示出頒發(fā)給Luby的題為“Information Additive Code Generator and Decoder forCommunication Systems”(用于通信系統(tǒng)的信息附加碼發(fā)生器和解碼器)的美國(guó)專利6,307,487(“Luby I”),頒發(fā)給Luby等人的題為“Information Additive Group CodeGenerator and Decoder for Communication Systems”(用于通信系統(tǒng)的信息附加組碼發(fā)生器和解碼器)的美國(guó)專利6,320,520(下文中稱為“Luby II”),以及Shokrollahi等人的于2003年3月27日公布的題為“Multi-stage Code Generator and Decoder forCommunication Systems”(用于通信系統(tǒng)的多級(jí)碼發(fā)生器和解碼器)的申請(qǐng)?zhí)枮?003/0058958的美國(guó)已公布的專利申請(qǐng)(下文中稱為“Shokrollahi”)。在所許可的范圍內(nèi),其全部揭示內(nèi)容通過引用結(jié)合于此。
連鎖反應(yīng)編碼器所產(chǎn)生的輸出碼元的一個(gè)屬性是一接收到足夠的輸出碼元,接收器就能恢復(fù)原始文件或原始流的塊。具體地,為了較大可能地恢復(fù)原始的K個(gè)輸入碼元,接收器需要約K+A個(gè)輸出碼元。比例A/K稱為“相對(duì)接收開銷”。相對(duì)接收開銷取決于輸入碼元的數(shù)量K,并取決于解碼器的可靠性。例如,在一個(gè)特定實(shí)施例中,且當(dāng)K等于60,000時(shí),5%的相對(duì)接收開銷確保解碼器以至少1-10-8的概率成功解碼所輸入的文件或流塊,且當(dāng)K等于10,000時(shí),15%的相對(duì)接收開銷確保解碼器相同的成功概率。在一實(shí)施例中,連鎖反應(yīng)碼的相對(duì)接收開銷按照(13*sqrt(K)+200)/K來計(jì)算,其中sqrt(K)是輸入碼元數(shù)量K的平方根。在該實(shí)施例中,對(duì)較小值K,連鎖反應(yīng)碼的相對(duì)接收開銷傾向于較大。
Luby I,Luby II和Shokrollahi提供了可在根據(jù)本發(fā)明的某些實(shí)施例中采用的系統(tǒng)和方法的教示。然而,可以理解,這些系統(tǒng)和方法并非是本發(fā)明所必需的,并可使用許多其它變體、更改或替換。
還眾所周知的是使用多級(jí)連鎖反應(yīng)(“MSCR”)碼,諸如在Shokrollahi中描述的和由Digital Fountain Inc.開發(fā)的商品名為“Raptor”的碼。多級(jí)連鎖反應(yīng)碼用于例如從源文件或源流中接收輸入碼元、從中產(chǎn)生中間碼元、并使用連鎖反應(yīng)碼編碼中間碼元的編碼器。更特別地,從輸入碼元的有序集中產(chǎn)生要傳送的多個(gè)冗余碼元。多個(gè)輸出碼元從包括輸入碼元和冗余碼元的碼元的組合集中產(chǎn)生,其中可能的輸出碼元的數(shù)量比碼元的組合集中碼元的數(shù)量多得多,其中至少一個(gè)輸出碼元是從碼元的組合集中的一個(gè)以上的碼元、以及少于碼元的組合集的全部碼元的碼元中產(chǎn)生的,從而輸入碼元的有序集可從任何預(yù)定數(shù)量N的輸出碼元中以所需準(zhǔn)確度而重新產(chǎn)生。
對(duì)于一些應(yīng)用程序,碼的其它變體可能更適合或更佳。

發(fā)明內(nèi)容
根據(jù)本發(fā)明一實(shí)施例,提供了編碼用于在通信信道上從源傳送到目標(biāo)的數(shù)據(jù)的方法。該方法對(duì)輸入碼元的有序集操作,并包括從這些輸入碼元中產(chǎn)生多個(gè)冗余碼元。該方法還包括從包含輸入碼元和冗余碼元的碼元的組合集中產(chǎn)生多個(gè)輸出碼元,其中可能的輸出碼元的數(shù)量比碼元的組合集中碼元的數(shù)量多得多,其中至少一個(gè)輸出碼元是從碼元的組合集中的一個(gè)以上碼元、以及少于碼元的組合集的全部碼元的碼元中產(chǎn)生的,從而輸入碼元的有序集可從任何預(yù)定數(shù)量的輸出碼元中以所需準(zhǔn)確度而重新產(chǎn)生。多個(gè)冗余碼元從輸入碼元的有序集中產(chǎn)生以以下確定性過程傳輸,即使用第一輸入碼元計(jì)算的第一個(gè)靜態(tài)碼元集與使用不同于第一輸入碼元的第二輸入碼元計(jì)算的第二個(gè)靜態(tài)碼元集具有較少的共同成員。
根據(jù)本發(fā)明的又一實(shí)施例,提供了使用相似技術(shù)接收在通信信道上從源傳送的數(shù)據(jù)的系統(tǒng)。該系統(tǒng)包括與的通信信道相耦合用于接收在通信信道上傳送的輸出碼元的接收模塊,其中每個(gè)輸出碼元是從輸入碼元和冗余碼元的組合集中的至少一個(gè)碼元產(chǎn)生的,其中至少一個(gè)輸出碼元是從組合集中的一個(gè)以上碼元、以及少于組合集的全部碼元的碼元中產(chǎn)生的,其中可能的輸出碼元的數(shù)量比組合集中碼元的數(shù)量多得多,其中輸入碼元來自輸入碼元的有序集,其中冗余碼元從輸入碼元中產(chǎn)生,且其中所述多個(gè)冗余碼元是從輸入碼元的有序集中產(chǎn)生以以下確定性過程傳輸,即使用第一輸入碼元計(jì)算的第一個(gè)靜態(tài)碼元集與使用不同于第一輸入碼元的第二輸入碼元計(jì)算的第二個(gè)靜態(tài)碼元集具有較少的共同成員。
根據(jù)本發(fā)明的再一實(shí)施例,提供了用載波實(shí)現(xiàn)的計(jì)算機(jī)數(shù)據(jù)信號(hào)。
眾多優(yōu)點(diǎn)通過本發(fā)明來實(shí)現(xiàn)。例如,在一特定實(shí)施例中,編碼用于在信道上傳輸?shù)臄?shù)據(jù)的計(jì)算開銷下降。在另一特定實(shí)施例中,解碼這種數(shù)據(jù)的計(jì)算開銷下降。取決于該實(shí)施例,可實(shí)現(xiàn)這些優(yōu)點(diǎn)中的一個(gè)或多個(gè)。這些和其它優(yōu)點(diǎn)可通過本說明書在下面更詳細(xì)地提供。
對(duì)在此揭示的本發(fā)明性質(zhì)和優(yōu)點(diǎn)的進(jìn)一步理解可通過參照本說明書的剩余部分和附圖來實(shí)現(xiàn)。


圖1是根據(jù)本發(fā)明一實(shí)施例的通信系統(tǒng)的框圖。
圖2是根據(jù)本發(fā)明一實(shí)施例的編碼器的框圖。
圖3是根據(jù)本發(fā)明一實(shí)施例的產(chǎn)生冗余碼元的方法的簡(jiǎn)化框圖。
圖4是根據(jù)本發(fā)明一實(shí)施例的靜態(tài)編碼器的基本操作的簡(jiǎn)化框圖。
圖5是根據(jù)本發(fā)明一實(shí)施例的動(dòng)態(tài)編碼器的簡(jiǎn)化框圖。
圖6是根據(jù)本發(fā)明一實(shí)施例的動(dòng)態(tài)編碼器的基本操作的簡(jiǎn)化框圖。
圖7是根據(jù)本發(fā)明一實(shí)施例的靜態(tài)編碼器的簡(jiǎn)化框圖。
圖8是根據(jù)本發(fā)明一實(shí)施例的靜態(tài)編碼器的基本操作的簡(jiǎn)化框圖。
圖9是根據(jù)靜態(tài)編碼器的一特定實(shí)施例的用于計(jì)算編碼參數(shù)的方法的簡(jiǎn)化圖。
圖10是根據(jù)本發(fā)明另一實(shí)施例的解碼器的簡(jiǎn)化流程圖。
圖11是根據(jù)本發(fā)明一實(shí)施例的解碼器的簡(jiǎn)化框圖。
圖12是根據(jù)本發(fā)明一實(shí)施例的解碼器的操作的簡(jiǎn)化流程圖。
圖13是根據(jù)本發(fā)明另一實(shí)施例的解碼器的操作的簡(jiǎn)化流程圖。
圖14是根據(jù)本發(fā)明又一實(shí)施例的解碼器的操作的簡(jiǎn)化流程圖。
圖15是根據(jù)本發(fā)明一實(shí)施例的動(dòng)態(tài)解碼器的簡(jiǎn)化框圖。
圖16是根據(jù)本發(fā)明一實(shí)施例的靜態(tài)解碼器的簡(jiǎn)化框圖。、圖17示出來自子碼元映射的源碼元。
圖18示出用于各種文件大小的文件下載參數(shù)的可能設(shè)置。
圖19示出用于各種源塊大小的流參數(shù)的可能設(shè)置。
圖20示出表示源和中間碼元之間關(guān)系的矩陣的形式。
圖21示出次數(shù)發(fā)生器的次數(shù)分布。
圖22示出可用于解碼的矩陣A的形式。
詳細(xì)描述后有三個(gè)附錄附錄A包含用于系統(tǒng)索引J(K)的示例值;附錄B.1包含用于表V0的示例值;以及附錄B.2包含用于表V1的示例值。
具體實(shí)施例方式
在以下所述的各個(gè)特定實(shí)施例中,描述表示為“多級(jí)編碼”的編碼方案,其各實(shí)施例在Shokrollahi中提供。
在此所述的多級(jí)編碼,以多級(jí)來編碼數(shù)據(jù)。通常(但并非總是如此),第一級(jí)向數(shù)據(jù)添加預(yù)定量的冗余。然后第二級(jí)使用連鎖反應(yīng)碼等以從原始數(shù)據(jù)產(chǎn)生輸出碼元以及通過第一級(jí)編碼計(jì)算出的冗余碼元。在本發(fā)明的一特定實(shí)施例中,所接收的數(shù)據(jù)首先使用連鎖反應(yīng)解碼過程來解碼。如果該過程不能成功地完全恢復(fù)原始數(shù)據(jù),則可應(yīng)用第二個(gè)解碼步驟。
在多級(jí)編碼的各個(gè)實(shí)施例中,在第一級(jí)編碼期間從輸入文件或流塊中產(chǎn)生冗余碼元。在這些實(shí)施例中,在第二級(jí)編碼中,輸出碼元從輸入文件或流塊與冗余碼元的組合中產(chǎn)生。在一部分這些實(shí)施例中,輸出碼元可按需產(chǎn)生。在第二級(jí)包括連鎖反應(yīng)編碼的實(shí)施例中,每個(gè)輸出碼元可與其它輸出碼元如何產(chǎn)生無關(guān)地生成。一旦生成后,這些輸出碼元就可置入分組中并傳送到其目標(biāo),其中每個(gè)分組包含一個(gè)或多個(gè)輸出碼元。作為替代,也可使用非分組化的傳輸技術(shù)。
當(dāng)在此使用時(shí),術(shù)語“文件”指在一個(gè)或多個(gè)源上存儲(chǔ)并作為一個(gè)單元向一個(gè)或多個(gè)目標(biāo)傳送的任何數(shù)據(jù)。從而,來自文件服務(wù)器或計(jì)算機(jī)存儲(chǔ)設(shè)備的文檔、圖像和文件都是能夠被傳送的“文件”的示例。文件可以是已知大小(諸如存儲(chǔ)在硬盤上的一兆字節(jié)的圖像)、或未知大小(諸如從流源的輸出中取得的文件)。不管是哪種情形,文件都是一系列的輸入碼元,其中每個(gè)輸入碼元具有文件中的位置和值。
當(dāng)在此使用時(shí),術(shù)語“流”涉及在一個(gè)或多個(gè)源上存儲(chǔ)或產(chǎn)生、并按所產(chǎn)生的順序在每個(gè)時(shí)間點(diǎn)上以指定速率向一個(gè)或多個(gè)目標(biāo)傳送的任何數(shù)據(jù)。流可以是固定速率或可變速率。因而,MPEG視頻流、AMR音頻流、以及用于控制遠(yuǎn)程設(shè)備的數(shù)據(jù)流都是可被傳送的“流”的示例。流在每個(gè)時(shí)間點(diǎn)上的速率可以是已知的(諸如每秒4兆比特)或未知的(諸如每個(gè)時(shí)間點(diǎn)上的速率事先未知的可變速率流)。不管是哪種情形,流是一系列輸入碼元,其中每個(gè)輸入碼元都具有流中的位置和值。
傳輸是為了傳送文件或流而通過信道從一個(gè)或多個(gè)發(fā)送器向一個(gè)或多個(gè)接收器傳送數(shù)據(jù)的過程。發(fā)送器有時(shí)也稱為編碼器。如果一個(gè)發(fā)送器通過完美的信道與任何數(shù)量的接收器相連,則由于將準(zhǔn)確接收所有數(shù)據(jù),則所接收的數(shù)據(jù)可以是輸入文件或流的準(zhǔn)確副本。在此,我們假設(shè)信道作為大多數(shù)實(shí)際信道的情形不是完美的。對(duì)于許多信道缺陷,兩種感興趣的缺陷是數(shù)據(jù)刪除和數(shù)據(jù)不完整(可視為是數(shù)據(jù)刪除的特定情形)。數(shù)據(jù)刪除在信道丟失或丟棄數(shù)據(jù)時(shí)發(fā)生。直到一部分?jǐn)?shù)據(jù)已在下列情形中傳送時(shí)接收器尚未開始接收數(shù)據(jù)時(shí),數(shù)據(jù)不完整才發(fā)生在傳輸結(jié)束之前接收器停止接收數(shù)據(jù),接收器選擇僅接收所傳送數(shù)據(jù)的一部分、和/或接收器間歇地停止和開始接收數(shù)據(jù)。作為數(shù)據(jù)不完整的一個(gè)示例,移動(dòng)衛(wèi)星發(fā)送器可傳送表示輸入文件或流的數(shù)據(jù),并在接收器處于范圍內(nèi)之前開始該傳輸。一旦該接收器在范圍內(nèi),則可接收數(shù)據(jù)直到該衛(wèi)星移出范圍,此時(shí)接收器可改變其衛(wèi)星接收器的方向(在此期間它不接收數(shù)據(jù))以開始接收由已移入范圍內(nèi)的另一衛(wèi)星正在傳送的相同輸入文件或流。從閱讀該說明書可顯而易見,數(shù)據(jù)不完整是數(shù)據(jù)刪除的特定情形,因?yàn)榻邮掌骺蓪?shù)據(jù)不完整(接收器具有相同的問題)視為好像接收器全部時(shí)間都在范圍內(nèi),但信道丟失所有數(shù)據(jù)直到接收器開始接收數(shù)據(jù)。此外,如在通信系統(tǒng)設(shè)計(jì)中眾所周知的,通過簡(jiǎn)單地丟棄具有可檢測(cè)的差錯(cuò)的所有數(shù)據(jù)塊或碼元,可檢測(cè)差的錯(cuò)可被視為等同于刪除。
在某些通信系統(tǒng)中,接收器接收由多個(gè)發(fā)送器(或由使用多個(gè)連接的一個(gè)發(fā)送器)產(chǎn)生的數(shù)據(jù)。例如,為加快下載,接收器可同時(shí)與一個(gè)以上傳送關(guān)于同一文件的數(shù)據(jù)的發(fā)送器相連。作為另一示例,在多點(diǎn)傳送傳輸中,可傳送多個(gè)多點(diǎn)傳送數(shù)據(jù)流以允許接收者與這些流中的一個(gè)或多個(gè)相連,從而使得合計(jì)傳輸速率匹配使它們與發(fā)送器相連的信道的帶寬。在所有這些情形中,所關(guān)心的是確保即使當(dāng)傳輸速率對(duì)不同流都有很大不同時(shí),并且當(dāng)有任意模式的損失時(shí),所有傳送的數(shù)據(jù)對(duì)接收者都是獨(dú)立使用的,即,多源數(shù)據(jù)在各個(gè)流之間不是冗余的。
一般而言,通信信道連接發(fā)送器和接收器用于數(shù)據(jù)傳送。該通信信道可以是實(shí)時(shí)信道,其中當(dāng)信道得到數(shù)據(jù)時(shí)該信道將數(shù)據(jù)從發(fā)送器移到接收器,或者通信信道可以是存儲(chǔ)在其從發(fā)送器到接收器的傳送中的部分或全部數(shù)據(jù)的存儲(chǔ)信道。后者的一個(gè)示例是盤存儲(chǔ)或其他存儲(chǔ)設(shè)備。在該示例中,產(chǎn)生數(shù)據(jù)的程序或設(shè)備可被視為發(fā)送器,向存儲(chǔ)設(shè)備傳送數(shù)據(jù)。接收器是從存儲(chǔ)設(shè)備中讀取數(shù)據(jù)的程序或設(shè)備。發(fā)送器用來將數(shù)據(jù)置入存儲(chǔ)設(shè)備上的機(jī)制、存儲(chǔ)設(shè)備本身、以及接收器用來從存儲(chǔ)設(shè)備得到數(shù)據(jù)的機(jī)制共同形成了所述信道。如果那些機(jī)制或存儲(chǔ)設(shè)備有丟失數(shù)據(jù)的機(jī)會(huì),則將被視為通信信道中的數(shù)據(jù)刪除。
當(dāng)發(fā)送器和接收器由其中可能刪除碼元的通信信道分隔時(shí),則最好不傳送輸入文件或流的準(zhǔn)確副本,而是傳送從有助于恢復(fù)刪除的輸入文件或流(可包括輸入文件或流本身的全部或部分)所產(chǎn)生的數(shù)據(jù)。編碼器是處理該任務(wù)的電路、設(shè)備、模塊或代碼段。一種查看編碼器的操作的方法是編碼器從輸入碼元中產(chǎn)生輸出碼元,其中輸入碼元值的序列表示輸入文件或流塊。每個(gè)輸入碼元因而會(huì)具有輸入文件或流塊中的位置和值。解碼器是從接收器接收的輸出碼元中重構(gòu)輸入碼元的電路、設(shè)備、模塊或代碼段。在多級(jí)編碼中,編碼器和解碼器進(jìn)一步細(xì)分成執(zhí)行不同任務(wù)的多個(gè)子模塊。
在多級(jí)編碼系統(tǒng)的各個(gè)實(shí)施例中,編碼器和解碼器可進(jìn)一步細(xì)分成子模塊,每個(gè)子模塊執(zhí)行不同任務(wù)。例如,在一些實(shí)施例中,編碼器包括在此稱為靜態(tài)編碼器和動(dòng)態(tài)編碼器。當(dāng)在此使用時(shí),“靜態(tài)編碼器”是從輸入碼元集中產(chǎn)生若干冗余碼元的編碼器,其中冗余碼元的數(shù)目在編碼之前確定。靜態(tài)編碼碼的示例包括里德索羅門(Reed-Solomon)碼、龍卷風(fēng)(Tornado)碼、漢明(Hamming)碼、低密度奇偶校驗(yàn)(LDPC)碼等。術(shù)語“靜態(tài)解碼器”在此用來指可解碼由靜態(tài)編碼器編碼的數(shù)據(jù)的解碼器。
當(dāng)在此使用時(shí),“動(dòng)態(tài)解碼器”是從輸入碼元集產(chǎn)生輸出碼元的編碼器,其中可能的輸出碼元的數(shù)量的數(shù)量級(jí)大于輸入碼元的數(shù)量,且其中要產(chǎn)生的輸出碼元的數(shù)量不需要固定。動(dòng)態(tài)編碼器的一個(gè)示例是連鎖反應(yīng)編碼器,諸如Luby I和LubyII中所述的編碼器。術(shù)語“動(dòng)態(tài)解碼器”在此用來指可解碼由動(dòng)態(tài)編碼器編碼的數(shù)據(jù)的解碼器。
多級(jí)編碼的各個(gè)實(shí)施例無需受限于任何特定類型的輸入碼元。通常,輸入碼元的值是從2M個(gè)碼元的字母表中選擇的,M為某一正整數(shù)。在這些情形中,輸入碼元可由來自輸入文件或流的M比特?cái)?shù)據(jù)序列表示。M的值常?;诶鐟?yīng)用的用途、通信信道、和/或輸出碼元的大小來確定。此外,輸出碼元的大小常常基于應(yīng)用、信道和/或輸入碼元的大小確定。在一些情形中,如果輸出碼元值和輸入碼元值的大小相同(即可由相同數(shù)量的比特表示,或從同一字母表中選擇),則編碼過程能得到簡(jiǎn)化。如果是這種情形,則所輸入碼元值大小在輸出碼元值大小受限時(shí)受到限制。例如,可能需要將輸出碼元置入有限大小的分組中。如果有關(guān)關(guān)聯(lián)于輸出碼元的密鑰的某些數(shù)據(jù)被傳送以便于在接收器上恢復(fù)該密鑰,則輸出碼元最好足夠小以在一個(gè)分組中容納輸出碼元值和有關(guān)密鑰的數(shù)據(jù)。
作為示例,如果輸入文件是一多兆字節(jié)文件,則該輸入文件可分成數(shù)千、數(shù)萬、或數(shù)十萬個(gè)輸入碼元,其中每個(gè)輸入碼元編碼數(shù)千、數(shù)百、或僅數(shù)個(gè)字節(jié)。作為另一示例,對(duì)于基于分組的因特網(wǎng)信道,具有1024字節(jié)大小的有效載荷的分組可能是適當(dāng)?shù)?一個(gè)字節(jié)是8比特)。在該示例中,假設(shè)每個(gè)分組包含一個(gè)輸出碼元和8個(gè)字節(jié)的輔助信息,8128比特的輸出碼元大小((1024-8)*8)會(huì)是適當(dāng)?shù)?。因而,輸入碼元大小可被選為M=(1024-8)*8或8128比特。作為又一示例,一些衛(wèi)星系統(tǒng)使用MPEG分組標(biāo)準(zhǔn),其中每個(gè)分組的有效載荷包括188個(gè)字節(jié)。在該示例中,假設(shè)每個(gè)分組包含一個(gè)輸出碼元和4個(gè)字節(jié)的輔助信息,1472比特的輸出碼元大小((188-4)*8)會(huì)是適當(dāng)?shù)摹R蚨?,輸入碼元大小可被選為M=(188-4)*8或1472比特。在使用多級(jí)編碼的通用通信系統(tǒng)中,諸如輸入碼元大小(即由輸入碼元編碼的比特?cái)?shù)量M)的應(yīng)用特定(application-specific)的參數(shù)可以是由應(yīng)用設(shè)置的變量。
作為另一示例,對(duì)于使用可變大小的源分組的流,碼元大小可被選成相當(dāng)小,從而每個(gè)源分組可用整數(shù)數(shù)量的輸入碼元覆蓋,這些輸入碼元具有比源分組稍大一些的合計(jì)大小。
每個(gè)輸出碼元都具有值。在以下考慮的一個(gè)較佳實(shí)施例中,每個(gè)輸出碼元還與稱為其“密鑰”的標(biāo)識(shí)符相關(guān)聯(lián)。較佳地,每個(gè)輸出碼元的密鑰可由接收器來簡(jiǎn)便地確定,以使接收器能從其他輸出碼元中辨認(rèn)一個(gè)輸出碼元。較佳地,輸出碼元的密鑰不同于所有其他輸出碼元的密鑰。本領(lǐng)域中所討論的有各種形式的密鑰方法。例如,Luby I描述可在本發(fā)明各個(gè)實(shí)施例中采用的各種形式的密鑰方法。
在預(yù)期有數(shù)據(jù)刪除時(shí)或當(dāng)接收器沒有正好在傳送開始和結(jié)束時(shí)開始和結(jié)束接收時(shí),多級(jí)編碼特別有用。后一條件在此被稱為“數(shù)據(jù)不完整”。對(duì)于刪除事件,多級(jí)編碼享有Luby I中所述的連鎖反應(yīng)編碼的許多優(yōu)點(diǎn)。特別地,多級(jí)輸出碼元是信息附加的,因此任何適當(dāng)數(shù)量的分組可用來將輸入文件或流恢復(fù)到所需準(zhǔn)確度。這些條件在使用多級(jí)編碼時(shí)不會(huì)不利地影響通信過程,因?yàn)橛枚嗉?jí)編碼生成的輸出碼元是信息附加的。例如,如果100個(gè)分組因?yàn)樵胍敉话l(fā)而丟失從而導(dǎo)致數(shù)據(jù)刪除,則可在該突發(fā)后拾取額外的100個(gè)分組以替換被刪除分組的丟失。如果數(shù)千分組因?yàn)榻邮掌魑丛陂_始傳送時(shí)調(diào)入傳送器而丟失,則接收器可從任何其它傳輸時(shí)段、甚至從另一傳送器中拾取該數(shù)千分組。使用多級(jí)編碼,接收器未受限于拾取任何特定的分組集,所以它可從一個(gè)傳送器中接收一些分組、切換到另一個(gè)傳送器、丟失一些分組、丟失給定傳輸?shù)拈_始或結(jié)束、并仍然恢復(fù)輸入文件或流塊。無需接收器-傳送器合作而加入和離開傳輸?shù)哪芰τ兄诤?jiǎn)化該通信過程。
在一些實(shí)施例中,使用多級(jí)編碼傳送文件或流可包括從輸入文件或流塊中產(chǎn)生、形成或提取輸入碼元,計(jì)算冗余碼元,將輸入和冗余碼元編碼成一個(gè)或多個(gè)輸出碼元,其中每個(gè)輸出碼元是基于其密鑰而獨(dú)立于所有其它輸出碼元而產(chǎn)生的,以及在信道上將輸出碼元傳送給一個(gè)或多個(gè)接收器。此外,在一些實(shí)施例中,使用多級(jí)編碼接收(和重構(gòu))輸入文件或流塊的副本可包括從一個(gè)或多個(gè)數(shù)據(jù)流中接收輸出碼元的某個(gè)集或子集,并從接收到的輸出碼元的值和密鑰中解碼輸入碼元。
在此所述的適當(dāng)?shù)腇EC刪除碼可用來克服上述困難,并會(huì)在包括多媒體廣播和多點(diǎn)傳送系統(tǒng)及服務(wù)的眾多領(lǐng)域中找到用途。下文稱為“多級(jí)連鎖反應(yīng)碼”的FEC刪除碼具有符合這些系統(tǒng)和服務(wù)的許多當(dāng)前和將來的要求的屬性。
多級(jí)連鎖反應(yīng)碼的一些基本屬性是,對(duì)于任何分組丟失情形以及傳送任何相關(guān)大小的源文件或任何相關(guān)速率的流(a)每個(gè)接收器設(shè)備(“RD”)的接收開銷最小化;(b)將源文件傳送給任何數(shù)量的RD所需的總傳輸時(shí)間可最小化;(c)通過適當(dāng)?shù)剡x擇傳輸時(shí)間表,傳送給任何數(shù)量RD的流的質(zhì)量可為相對(duì)于輸入碼元的數(shù)量而發(fā)送的輸出碼元的數(shù)量最大化。RD可以是手持式設(shè)備、可裝在車輛中、可以是便攜式(即可移動(dòng)但使用時(shí)通常不移動(dòng))或固定在某一位置。
解碼所需的工作存儲(chǔ)器的數(shù)量較少并仍然能提供以上屬性,并且編碼和解碼所需的計(jì)算量是最少的。在該文檔中,我們提供簡(jiǎn)便的方法來實(shí)現(xiàn)多級(jí)連鎖反應(yīng)碼的一些變體的描述。
多級(jí)連鎖反應(yīng)碼是源泉碼(fountain code),即所需的編碼分組可在工作中產(chǎn)生,每一個(gè)都包含等效用于恢復(fù)源文件或流塊的唯一編碼碼元。使用源泉碼而非其它類型的FEC碼有許多優(yōu)點(diǎn)。一個(gè)優(yōu)點(diǎn)是不管分組丟失情形和RD可用性如何,源泉碼最小化每個(gè)RD需要接收以重構(gòu)源文件或流塊的編碼分組的數(shù)量。即使在苛刻的分組丟失情形中,且當(dāng)例如移動(dòng)RD在長(zhǎng)文件下載會(huì)話上僅間歇地打開或可用時(shí),這也是真的。
另一個(gè)優(yōu)點(diǎn)是按需準(zhǔn)確地產(chǎn)生編碼分組,判斷在傳輸進(jìn)行時(shí)要在工作中產(chǎn)生多少編碼分組。如果例如有來自RD反饋指示是否它們接收了足夠的編碼分組來回復(fù)源文件或流塊,則這可能是有用的。當(dāng)分組丟失情形沒有預(yù)期的嚴(yán)重時(shí),則該傳輸可及早予以結(jié)束。當(dāng)分組丟失情形比預(yù)期的更嚴(yán)重時(shí),或者RD比預(yù)期更頻繁地不可用時(shí),則該傳輸可無縫地延長(zhǎng)。
另一個(gè)優(yōu)點(diǎn)是逆復(fù)用的能力。逆復(fù)用是當(dāng)RD能組合接收到的在獨(dú)立發(fā)送器上產(chǎn)生的編碼分組時(shí),重構(gòu)源文件或流塊。逆復(fù)用的一種實(shí)際用途如下參照從不同接收器接收編碼分組來描述。
在將來的分組丟失、RD可用性和應(yīng)用情形難以預(yù)測(cè)的情況下,重要的是選擇盡可能靈活的FEC方案以在不可預(yù)測(cè)情形下良好地工作。多級(jí)連鎖反應(yīng)碼提供了其它類型的FEC碼難以匹敵的靈活度。
本發(fā)明的各個(gè)方面將參照附圖進(jìn)行描述。
系統(tǒng)綜述圖1是使用多級(jí)編碼的通信系統(tǒng)100的框圖。在通信系統(tǒng)100中,輸入文件101或輸入流105被提供給輸入碼元發(fā)生器110。輸入碼元發(fā)生器110從輸入文件或流中產(chǎn)生一個(gè)或多個(gè)輸入碼元(IS(0),IS(1),IS(2)...)的一個(gè)序列,其中每個(gè)輸入碼元具有值和位置(在圖1中示為加括號(hào)的整數(shù))。如上所述,輸入碼元的可能值,即其字母表,通常是2M個(gè)碼元的字母表,從而每個(gè)輸入碼元對(duì)輸入文件或流的M個(gè)比特編碼。M的值通常通過使用通信系統(tǒng)100確定,但通用系統(tǒng)可包括對(duì)輸入碼元發(fā)生器110的碼元大小輸入,從而M可在使用時(shí)變化。輸入碼元發(fā)生器110的輸出被提供給編碼器115。
靜態(tài)密鑰發(fā)生器130產(chǎn)生靜態(tài)密鑰S0、S1……的流。所產(chǎn)生靜態(tài)密鑰的數(shù)量通常受到限值并取決于編碼器115的特定實(shí)施例。靜態(tài)密鑰的產(chǎn)生隨后將作更詳細(xì)的描述。動(dòng)態(tài)密鑰發(fā)生器120對(duì)要由編碼器115產(chǎn)生的每個(gè)輸出碼元產(chǎn)生動(dòng)態(tài)密鑰。每個(gè)動(dòng)態(tài)密鑰被生成為同一輸入文件或流塊的大部分動(dòng)態(tài)密鑰都是唯一的。例如,Luby I描述了可使用的密鑰發(fā)生器的各個(gè)實(shí)施例。動(dòng)態(tài)密鑰發(fā)生器120和靜態(tài)密鑰發(fā)生器130的輸出被提供給編碼器115。
根據(jù)動(dòng)態(tài)密鑰發(fā)生器120提供的每個(gè)密鑰I,編碼器115從輸入碼元發(fā)生器提供的輸入碼元中產(chǎn)生值為B(I)的輸出碼元。編碼器115的操作將在后面詳細(xì)描述。根據(jù)每個(gè)輸出碼元的密鑰、一個(gè)或多個(gè)輸入碼元的某一函數(shù)、以及可能根據(jù)已從輸入碼元計(jì)算出的一個(gè)或多個(gè)冗余碼元,產(chǎn)生每個(gè)輸出碼元的值。產(chǎn)生特定輸出碼元的輸入碼元和冗余碼元的集合在此被稱為輸出碼元的“關(guān)聯(lián)碼元”或僅稱為其“關(guān)聯(lián)”。函數(shù)(“值函數(shù)”)和關(guān)聯(lián)的選擇是根據(jù)以下更詳細(xì)描述的過程來完成的。通常,但并非總是這樣,M對(duì)輸入碼元和輸出碼元是相同的,即它們都對(duì)相同數(shù)量的比特編碼。
在一些實(shí)施例中,輸入碼元的數(shù)量K由編碼器115用來選擇關(guān)聯(lián)。如果K為事先未知,諸如輸入為流式文件的情況,則K僅是估計(jì)值。值K還可由編碼器115用來分配對(duì)輸入碼元和由編碼器115產(chǎn)生的任何中間碼元的存儲(chǔ)。
編碼器115將輸出碼元提供給傳送模塊140。傳送模塊140還被供以來自動(dòng)態(tài)密鑰發(fā)生器120的每個(gè)輸出碼元的密鑰。傳送模塊140傳送輸出碼元,并取決于所使用的密鑰方法,傳送模塊140還可在信道145上向接收模塊150傳送有關(guān)所傳送的輸出碼元的密鑰的一些數(shù)據(jù)。信道145假設(shè)為刪除信道,但并非是通信系統(tǒng)100的正常操作所必需的。模塊140、145和150可以是任何適當(dāng)硬件組件、軟件組件、物理介質(zhì)、或其任何組合,只要傳送模塊140適于向信道145傳送輸出碼元和有關(guān)其密鑰的任何所需數(shù)據(jù),而接收模塊150適于從信道145接收碼元和可能的有關(guān)其密鑰的一些數(shù)據(jù)。K的值,如果用來確定關(guān)聯(lián),則可在信道145上發(fā)送,或者它按照編碼器115和解碼器155達(dá)成的協(xié)議預(yù)先設(shè)置。
如上所述,信道145可以是實(shí)時(shí)信道,諸如通過因特網(wǎng)的路徑、或者從電視傳送器到電視接收器的廣播鏈接、或者從一個(gè)點(diǎn)到另一個(gè)點(diǎn)的電話連接,或者信道145可以是存儲(chǔ)信道,諸如CD-ROM、盤驅(qū)動(dòng)器、網(wǎng)站等。信道145甚至可以是實(shí)時(shí)信道和存儲(chǔ)信道的組合,諸如當(dāng)一個(gè)人通過電話線將輸入文件從個(gè)人計(jì)算機(jī)傳送到因特網(wǎng)服務(wù)供應(yīng)商(ISP)、輸入文件存儲(chǔ)在Web服務(wù)器上并隨后通過因特網(wǎng)傳送給了接收器時(shí)形成的信道。
因?yàn)樾诺?45被假設(shè)為刪除信道,所以通信系統(tǒng)100不假定從接收模塊150出來的輸出碼元與進(jìn)入傳送模塊140的輸出碼元之間的一對(duì)一對(duì)應(yīng)性。實(shí)際上,當(dāng)信道145包括分組網(wǎng)絡(luò)時(shí),通信系統(tǒng)100甚至可能不能假設(shè)任意的兩個(gè)或多個(gè)分組的相對(duì)順序在通過信道145傳送時(shí)得以保留。因此,輸出碼元的密鑰是使用上述一個(gè)或多個(gè)密鑰方案來確定的,并且無需按照輸出碼元從接收模塊150出來的順序來確定。
接收模塊150向解碼器155提供輸出碼元,并且接收模塊150接收的有關(guān)這些輸出碼元的密鑰的任何數(shù)據(jù)被提供給動(dòng)態(tài)密鑰發(fā)生器160。動(dòng)態(tài)密鑰發(fā)生器160重新產(chǎn)生接收到的輸出碼元的動(dòng)態(tài)密鑰,并將這些動(dòng)態(tài)密鑰提供給解碼器155。靜態(tài)密鑰發(fā)生器163重新產(chǎn)生靜態(tài)密鑰S0、S1……并將它們提供給解碼器155。靜態(tài)密鑰發(fā)生器可訪問在編碼和解碼過程期間使用的隨機(jī)數(shù)發(fā)生器135。這可以是如果隨機(jī)數(shù)在物理設(shè)備上產(chǎn)生則訪問該相同設(shè)備的形式,或者訪問產(chǎn)生隨機(jī)數(shù)的相同算法以實(shí)現(xiàn)同樣動(dòng)作的形式。解碼器155使用動(dòng)態(tài)密鑰再生器160和靜態(tài)密鑰發(fā)生器163提供的密鑰、以及相應(yīng)的輸出碼元,以恢復(fù)輸入碼元(再一次為IS(0),IS(1),IS(2),…)。解碼器155向產(chǎn)生輸入文件101或輸入流105的副本170的輸入文件重組器165提供恢復(fù)的輸入碼元。
編碼器圖2是圖1中示出的編碼器115的一個(gè)特定實(shí)施例的框圖。編碼器115包括靜態(tài)編碼器210、動(dòng)態(tài)編碼器220、和冗余計(jì)算器230。靜態(tài)編碼器210接收以下輸入a)由輸入信號(hào)發(fā)生器110提供的并存儲(chǔ)在輸入碼元緩沖器205中的原始輸入碼元IS(0),IS(1),……IS(K-1);b)原始輸入碼元的數(shù)量K;c)由靜態(tài)密鑰發(fā)生器130提供的靜態(tài)密鑰S0,S1,……;以及d)R個(gè)冗余碼元。在接收這些輸入之后,靜態(tài)編碼器205如以下所述地計(jì)算R個(gè)冗余碼元RE(0),RE(1),……,RE(R-1)。通常,但并非總是如此,冗余碼元具有與輸入碼元相同的大小。在一特定實(shí)施例中,靜態(tài)編碼器210產(chǎn)生的冗余碼元存儲(chǔ)在輸入碼元緩沖器205中。輸入碼元緩沖器205可以只是邏輯的,即,文件或流塊可物理地存儲(chǔ)在一個(gè)地方,且輸入碼元在碼元緩沖器205內(nèi)的位置只是這些碼元在原始文件或流塊內(nèi)位置的重命名。
動(dòng)態(tài)編碼器接收輸入碼元和冗余碼元并產(chǎn)生輸出碼元,如下更詳細(xì)地描述。在冗余碼元存儲(chǔ)于輸入碼元緩沖器205的一個(gè)實(shí)施例中,動(dòng)態(tài)編碼器220從輸入碼元緩沖器205中接收輸入碼元和冗余碼元。
冗余計(jì)算器230從K個(gè)輸入碼元中計(jì)算R個(gè)冗余碼元。該計(jì)算在后面進(jìn)行更詳細(xì)的描述。
靜態(tài)編碼器的綜述靜態(tài)編碼器210的一般操作參照?qǐng)D3和4示出。圖3是示出靜態(tài)編碼方法的一個(gè)實(shí)施例的簡(jiǎn)化流程圖。在步驟305,跟蹤已產(chǎn)生多少冗余碼元的變量j被設(shè)置為0。然后,在步驟310,碼元按照至少一些輸入碼元IS(0),……IS(K-1)的函數(shù)F0計(jì)算第一冗余碼元RE(0)。然后,在步驟315,變量j增1。然后,在步驟320,測(cè)試是否已產(chǎn)生了全部的冗余碼元(即j>R-1?)如果是,則流程結(jié)束。否則,流程繼續(xù)到步驟325。在步驟325,按照輸入碼元IS(0),……,IS(K-1)和先前產(chǎn)生的冗余碼元RE(0),……,RE(j-1)的函數(shù)Fj來計(jì)算RE(j),其中Fj無需是依賴于每一個(gè)輸入碼元或每一個(gè)冗余碼元的函數(shù)。重復(fù)步驟315,320和325直到已計(jì)算了R個(gè)冗余碼元。
再參看圖1和2,在一些實(shí)施例中,靜態(tài)編碼器210從靜態(tài)密鑰發(fā)生器130中接收一個(gè)或多個(gè)靜態(tài)密鑰S0,S1,……。在這些實(shí)施例中,靜態(tài)編碼器210使用靜態(tài)密鑰來確定部分或全部函數(shù)F0,F(xiàn)1,……,F(xiàn)j-1。例如,靜態(tài)密鑰S0可用來確定函數(shù)F0,靜態(tài)密鑰S1可用來確定函數(shù)F1等?;蛘?,一個(gè)或多個(gè)靜態(tài)密鑰S0,S1,……可用來確定函數(shù)F0,一個(gè)或多個(gè)靜態(tài)密鑰S0,S1,……可用來確定函數(shù)F1等。在其它實(shí)施例中,不需要靜態(tài)密鑰,因而也不需要靜態(tài)密鑰發(fā)生器130。
現(xiàn)在參看圖2和3,在一些實(shí)施例中,靜態(tài)編碼器210產(chǎn)生的冗余碼元可存儲(chǔ)在輸入碼元緩沖器205中。圖4是靜態(tài)編碼器210的一個(gè)實(shí)施例的操作的簡(jiǎn)化視圖。特別地,靜態(tài)編碼器210產(chǎn)生碼元按照從輸入碼元緩沖器205接收的輸入碼元IS(0),……,IS(K-1),RE(0),……,RE(j-1)的函數(shù)來產(chǎn)生冗余碼元RE(j),,并將其存儲(chǔ)回輸入碼元緩沖器205。函數(shù)F0,F(xiàn)1,……,F(xiàn)R-1的準(zhǔn)確形式取決于特定應(yīng)用。通常,但并非總是如此,函數(shù)F0,F(xiàn)1,……,F(xiàn)R-1包括部分或全部相應(yīng)自變量的異或。如上所述,這些函數(shù)實(shí)際上可采用或不采用圖1的靜態(tài)密鑰發(fā)生器130所產(chǎn)生的靜態(tài)密鑰。例如,在以下所述的一個(gè)特定實(shí)施例中,前幾個(gè)函數(shù)實(shí)現(xiàn)漢明碼而不使用靜態(tài)密鑰S0,S1……,而剩下的函數(shù)實(shí)現(xiàn)低密度奇偶校驗(yàn)碼并使用靜態(tài)密鑰。
多級(jí)編碼器的綜述再參看圖2,動(dòng)態(tài)編碼器220接收輸入碼元IS(0),……,IS(K-1)和冗余碼元RE(0),……,RE(R-1),以及它要對(duì)每個(gè)輸出碼元產(chǎn)生的密鑰I。包括原始輸入碼元和冗余碼元的集合將在下文中稱為“動(dòng)態(tài)輸入碼元”的集合。圖5是動(dòng)態(tài)編碼器的一個(gè)實(shí)施例的簡(jiǎn)化框圖,包括權(quán)重選擇器510、關(guān)聯(lián)器515、值函數(shù)選擇器520和計(jì)算器525。如圖5所示,K+R個(gè)動(dòng)態(tài)輸入碼元被存儲(chǔ)在動(dòng)態(tài)碼元緩沖器505中。實(shí)際上,動(dòng)態(tài)編碼器500執(zhí)行圖6所示的動(dòng)作,即,按照選定輸入碼元的一些值函數(shù)產(chǎn)生輸出碼元值B(I)。
圖7是根據(jù)本發(fā)明的靜態(tài)編碼器的一特定實(shí)施例的簡(jiǎn)化框圖。靜態(tài)編碼器600包括參數(shù)計(jì)算器605、漢明編碼器610、以及低密度奇偶校驗(yàn)(LPDC)編碼器620。漢明編碼器610被耦合成接收來自輸入碼元緩沖器625的輸入碼元IS(0),……,IS(K-1)、輸入碼元個(gè)數(shù)K、和參數(shù)D。作為響應(yīng),漢明編碼器610根據(jù)漢明碼產(chǎn)生D+1個(gè)冗余碼元HA(0),HA(1),……,HA(D)。
圖8示出采用圖7中示出的靜態(tài)編碼器的本發(fā)明的一個(gè)實(shí)施例的操作。
圖9是示出參數(shù)計(jì)算器的一個(gè)實(shí)施例的簡(jiǎn)化流程圖,諸如圖7的如上所述計(jì)算參數(shù)D和E的參數(shù)計(jì)算器605。首先,在步驟705,參數(shù)D被初始化為1。然后,在步驟710,確定2D-D-1是否小于K。如果不是,則流程繼續(xù)到步驟730。如果是,則流程繼續(xù)到步驟720,其中參數(shù)D增1。然后,流程回到步驟710。一旦已確定D,則在步驟730,參數(shù)按照R-D-1計(jì)算參數(shù)E。
圖10是根據(jù)本發(fā)明一實(shí)施例的這種編碼器的簡(jiǎn)化流程圖,如下所述。首先,在步驟805,變量i被初始化為0。變量i跟蹤已產(chǎn)生冗余碼元的數(shù)量。在步驟810,按照大于或等于K/2的最小奇數(shù)來計(jì)算數(shù)字t。在步驟815,值P1,P2,……,Pt基于K、t和靜態(tài)密鑰Si產(chǎn)生。值P1,P2,……,Pt指示將用來產(chǎn)生冗余碼元的輸入碼元的位置。在一特定實(shí)施例中,諸如圖5的關(guān)聯(lián)器515的關(guān)聯(lián)器被用來產(chǎn)生P1,P2,……,Pt。特別地,值t可被提供為W(I)輸入,值K可被提供為K+R輸入,而靜態(tài)密鑰Si可被提供為密鑰I輸入。應(yīng)注意,許多不同的值t會(huì)產(chǎn)生相似的編碼效果,因而該特定選擇僅是一示例。在步驟820中,按照值IS(P1),IS(P2),……,IS(Pt)的XOR來計(jì)算RE(i)。在步驟825,變量i增1以準(zhǔn)備計(jì)算下一冗余碼元,且在步驟830確定是否已計(jì)算了全部冗余碼元。如果不是,則流程返回步驟815。
圖11是示出根據(jù)本發(fā)明的解碼器的一個(gè)實(shí)施例的簡(jiǎn)化框圖。解碼器900可用來例如實(shí)現(xiàn)圖1的解碼器155。
解碼器900包括動(dòng)態(tài)解碼器905和靜態(tài)解碼器910。動(dòng)態(tài)解碼器905所恢復(fù)的輸入碼元和冗余碼元被存儲(chǔ)在重組緩沖器915中。在完成動(dòng)態(tài)解碼之后,靜態(tài)解碼器910嘗試恢復(fù)動(dòng)態(tài)解碼器905尚未恢復(fù)的任何輸入碼元(如果有的話)。特別地,靜態(tài)解碼器910從重組緩沖器915中接收輸入碼元和冗余碼元。
圖12是示出根據(jù)本發(fā)明的用于解碼的方法的一個(gè)實(shí)施例的簡(jiǎn)化流程圖。在步驟1005,Q個(gè)輸出碼元由解碼器接收。Q的值取決于輸入碼元的數(shù)量和所使用的特定動(dòng)態(tài)編碼器。Q的值還取決于解碼器能恢復(fù)輸入碼元的所期望的準(zhǔn)確度。例如,如果希望解碼器可較大可能地恢復(fù)全部輸入碼元,則Q應(yīng)選為比輸入碼元的數(shù)量大。特別地,在一些應(yīng)用中,當(dāng)輸入碼元的數(shù)量較大時(shí),Q可比原始輸入碼元的數(shù)量大3%不到。在其它應(yīng)用中,當(dāng)輸入碼元的數(shù)量較小時(shí),Q可比輸入碼元的數(shù)量大至少10%。具體地,Q可選為輸入碼元的數(shù)量K加上數(shù)A,其中A被選為確保解碼器可較大可能地再生全部輸入碼元。數(shù)A的確定在下面更詳細(xì)地描述。如果對(duì)解碼器而言(有時(shí)或總是)不能解碼全部輸入碼元是可接受的,則Q可小于K+A、等于K、或者甚至小于K。顯然,整體編碼系統(tǒng)的一個(gè)目的常常是盡可能地減小數(shù)Q,同時(shí)保持對(duì)參照所需準(zhǔn)確度的解碼過程的成功的較大概率保證。
在步驟1010,動(dòng)態(tài)解碼器905從所接收的Q個(gè)輸出碼元中重新產(chǎn)生輸入碼元和冗余碼元??梢岳斫?,步驟1005和1010實(shí)際上可并發(fā)執(zhí)行。例如,動(dòng)態(tài)解碼器905可在解碼器接收Q個(gè)輸出碼元之前再生輸入碼元和冗余碼元。
在動(dòng)態(tài)解碼器905已處理Q個(gè)輸出碼元之后,確定輸入碼元是否已恢復(fù)到期望準(zhǔn)確度。期望準(zhǔn)確度可以是例如全部輸入碼元、或少于全部輸入碼元的部分?jǐn)?shù)量或百分比等。如果是,則該流程結(jié)束。如果不是,則流程繼續(xù)到步驟1020。在步驟1020,靜態(tài)解碼器910嘗試恢復(fù)動(dòng)態(tài)解碼器905不能恢復(fù)的任何輸入碼元。在靜態(tài)編碼器910已處理了動(dòng)態(tài)編碼器905所恢復(fù)的輸入碼元和冗余碼元之后,流程結(jié)束。
圖13是示出根據(jù)本發(fā)明的用于解碼的方法的另一實(shí)施例的簡(jiǎn)化流程圖。該實(shí)施例與參照?qǐng)D11所述的相似,并包括共同步驟1005、1010、1015和1025。但是,在步驟1025之后,流程繼續(xù)到步驟1030,其中確定輸入碼元是否已恢復(fù)到期望準(zhǔn)確度。如果是,則流程結(jié)束。如果不是,則流程繼續(xù)到步驟1035。在步驟1035,接收一個(gè)或多個(gè)額外的輸出碼元。然后,流程返回步驟1010,從而動(dòng)態(tài)解碼器905和/或靜態(tài)解碼器910可嘗試恢復(fù)剩余的未恢復(fù)的輸入碼元。
圖14是根據(jù)本發(fā)明的用于解碼的方法的又一實(shí)施例的簡(jiǎn)化流程圖。在步驟1055,輸出碼元由解碼器接收,而在步驟1060,動(dòng)態(tài)解碼器905從所接收的輸出碼元中再生輸入碼元和冗余碼元。然后,在步驟1065,確定動(dòng)態(tài)解碼是否應(yīng)結(jié)束。該確定可基于所處理的輸出碼元的數(shù)量、所恢復(fù)的輸入碼元的數(shù)量、其它輸入碼元當(dāng)前的恢復(fù)速率、處理輸出碼元所花的時(shí)間等的一個(gè)或多個(gè)。
在步驟1065,如果確定不要終止動(dòng)態(tài)解碼,則流程繼續(xù)回到步驟1055。但是,如果在步驟1065確定結(jié)束動(dòng)態(tài)解碼,則流程繼續(xù)到步驟1070。在步驟1070,確定輸入碼元是否已恢復(fù)到期望準(zhǔn)確度。如果是,則流程結(jié)束。如果不是,則流程繼續(xù)到步驟1075。在步驟1075,靜態(tài)解碼器910嘗試恢復(fù)動(dòng)態(tài)解碼器905未能恢復(fù)的任何輸入碼元。在靜態(tài)解碼器910已處理了動(dòng)態(tài)解碼器905所恢復(fù)的輸入碼元和冗余碼元之后,流程結(jié)束。
圖15示出根據(jù)本發(fā)明的動(dòng)態(tài)解碼器的一個(gè)實(shí)施例。動(dòng)態(tài)解碼器1100包括與圖5所示的動(dòng)態(tài)編碼器相似的組件。解碼器1100與Luby I和Luby II中所述的連鎖反應(yīng)解碼器的實(shí)施例相似。動(dòng)態(tài)解碼器1100包括權(quán)重選擇器510、關(guān)聯(lián)器515、值函數(shù)選擇器520、輸出碼元緩沖器1105、縮減器1115、重組器1120和重組緩沖器1125。
圖16是示出靜態(tài)解碼器的一個(gè)實(shí)施例的簡(jiǎn)化框圖。該實(shí)施例可在數(shù)據(jù)用諸如參照?qǐng)D7所述的靜態(tài)編碼器編碼時(shí)使用。靜態(tài)解碼器1200包括LDPC解碼器1205和漢明解碼器1210。LDPC解碼器1205從重組緩沖器1215中接收輸入碼元和冗余碼元,并嘗試重組在動(dòng)態(tài)解碼器的解碼步驟之后重組緩沖器1215未恢復(fù)的那些碼元。在一些實(shí)施例中,重組緩沖器1215是重組緩沖器1125(圖15)。
LDPC解碼器和漢明解碼器的許多變體都是本領(lǐng)域技術(shù)人員所眾所周知的,并可在根據(jù)本發(fā)明的各個(gè)實(shí)施例中采用。在一特定實(shí)施例中,漢明解碼器使用高斯消元算法來實(shí)現(xiàn)。高斯消元算法的許多變體是本領(lǐng)域技術(shù)人員眾所周知的,并可在根據(jù)本發(fā)明的各個(gè)實(shí)施例中采用。
變體如上所述的多級(jí)連鎖反應(yīng)碼不是系統(tǒng)碼,即,源塊的全部原始源碼元沒有必要在所發(fā)送的編碼碼元中。然而,系統(tǒng)FEC碼對(duì)文件下載系統(tǒng)或服務(wù)有用,并且對(duì)流系統(tǒng)或服務(wù)是非常重要的。如在以下實(shí)現(xiàn)中所示,更改后的碼可變成是系統(tǒng)的,并仍然保持源泉碼和其它所述屬性。
使用多級(jí)碼便于構(gòu)建多種補(bǔ)充服務(wù)的一個(gè)原因是它可組合接收到的來自多個(gè)發(fā)送器的編碼碼元以重構(gòu)源文件或流,而無需在各發(fā)送器之間進(jìn)行協(xié)調(diào)。唯一的要求是發(fā)送器使用不同的密鑰集來產(chǎn)生它們用編碼分組發(fā)送給碼的編碼碼元。實(shí)現(xiàn)方法包括指定每個(gè)發(fā)送器要使用的不同的密鑰空間范圍,或在每個(gè)發(fā)送器上隨機(jī)產(chǎn)生密鑰。
作為使用該能力的一個(gè)示例,考慮向文件下載服務(wù)提供一補(bǔ)充服務(wù),以允許未從文件下載會(huì)話中接收足夠的重構(gòu)源文件的編碼分組的多級(jí)連鎖反應(yīng)碼請(qǐng)求例如通過HTTP會(huì)話從組成發(fā)送器中發(fā)送其它編碼分組。組成發(fā)送器從源文件中產(chǎn)生編碼碼元并例如使用HTTP發(fā)送它們,并且所有這些編碼碼元都能與從文件下載會(huì)話中接收的編碼碼元相組合,以恢復(fù)該源文件。使用該方法使不同的發(fā)送器能提供增量式源文件傳送服務(wù)而無需在發(fā)送器之間進(jìn)行協(xié)調(diào),并確保每個(gè)接收器僅需要接收最少量的編碼分組,以恢復(fù)每個(gè)源文件。
多級(jí)碼的各級(jí)的實(shí)現(xiàn)FEC方案定義使用這些技術(shù)的分組可呈現(xiàn)為具有標(biāo)頭信息,諸如包括源塊號(hào)碼(SBN)(分組內(nèi)編碼碼元與之相關(guān)的源塊的16比特整數(shù)標(biāo)識(shí)符)、以及編碼碼元ID(ESI)(分組內(nèi)編碼碼元的16比特整數(shù)標(biāo)識(shí)符)的4個(gè)八位字節(jié)的FEC有效負(fù)載ID。源塊號(hào)碼和編碼碼元標(biāo)識(shí)符的一個(gè)適當(dāng)解釋在以下小節(jié)B中定義。FEC對(duì)象傳輸信息可包括FEC編碼ID、傳送長(zhǎng)度(F)和以下定義的參數(shù)T、Z、N和A。參數(shù)T和Z是16比特的無符號(hào)整數(shù),N和A是8比特的無符號(hào)整數(shù)。
用于MBMS前向糾錯(cuò)的FEC編碼方案在以下各小節(jié)中定義。它定義兩種不同的FEC有效載荷ID格式,一種用于FEC源分組而另一種用于FEC修復(fù)分組,但非系統(tǒng)碼的變體也是可能的。
源FEC有效載荷ID可包括源塊號(hào)碼(SBN)(分組內(nèi)編碼碼元與之相關(guān)的源塊的16比特整數(shù)標(biāo)識(shí)符)、以及編碼碼元ID(ESI)(分組內(nèi)編碼碼元的16比特整數(shù)標(biāo)識(shí)符),而修復(fù)FEC有效載荷ID可包括源塊號(hào)碼(SBN)(分組內(nèi)修復(fù)碼元與之相關(guān)的源塊的16比特整數(shù)標(biāo)識(shí)符)、編碼碼元ID(ESI)(分組內(nèi)修復(fù)碼元的16比特整數(shù)標(biāo)識(shí)符)、以及源塊長(zhǎng)度(SBL)(16比特,表示源碼元在源塊中的數(shù)量)。源塊號(hào)碼、編碼碼元標(biāo)識(shí)符和源塊長(zhǎng)度如下作定義。
FEC對(duì)象傳輸信息可包括FEC編碼ID、以碼元為單位的最大源塊長(zhǎng)度、以及以字節(jié)為單位的碼元大小。碼元大小和最大源塊長(zhǎng)度可包括4個(gè)八位字節(jié)的碼元大小(T)(表示以字節(jié)為單位的編碼碼元的大小的16比特)、以及最大源塊長(zhǎng)度(表示以碼元為單位的源塊的最大長(zhǎng)度的16比特)。
以下小節(jié)指定系統(tǒng)MSCR前向糾錯(cuò)碼及其在MBMS中的應(yīng)用和其它用途。MSCR是源泉碼,即,按所需那么多的編碼碼元可由編碼器在工作中從塊的源碼元中產(chǎn)生。解碼器能從數(shù)量上僅比源碼元數(shù)量略多一點(diǎn)的任何編碼碼元集中恢復(fù)源塊。在該文檔中描述的碼是系統(tǒng)碼,即原始源碼元以及眾多修復(fù)碼元未經(jīng)更改地從發(fā)送器發(fā)送到接收器。
B.1.定義、碼元和縮寫B(tài).11定義為了本說明書的目的,應(yīng)用以下術(shù)語和定義。
源塊為MSCR編碼目的考慮的K個(gè)源碼元的塊。
源碼元在編碼過程期間使用的最小單位的數(shù)據(jù)。源塊內(nèi)的所有源碼元都具有相同的大小。
編碼碼元包括在數(shù)據(jù)分組中的碼元。編碼碼元包括源碼元和修復(fù)碼元。從源塊產(chǎn)生的修復(fù)碼元與該源塊的源碼元大小相同。
系統(tǒng)碼其中源碼元被包括作為對(duì)源塊發(fā)送的編碼碼元的一部分的碼。
修復(fù)碼元為不是源碼元的對(duì)源塊發(fā)送的編碼碼元。修復(fù)碼元基于源碼元產(chǎn)生。
中間碼元使用逆編碼過程從源碼元中產(chǎn)生的碼元。然后修復(fù)碼元直接從中間碼元中產(chǎn)生。編碼碼元不包括中間碼元,即,中間碼元不包括在數(shù)據(jù)分組中。
碼元數(shù)據(jù)單位。以字節(jié)為單位的碼元大小被稱為碼元大小。
編碼碼元組一起發(fā)送(即在同一分組內(nèi))的編碼碼元組,其與源碼元的關(guān)系可從單個(gè)編碼碼元ID中導(dǎo)出。
編碼碼元ID定義編碼碼元組的各個(gè)碼元和源碼元之間關(guān)系的信息。
編碼分組包含編碼碼元的數(shù)據(jù)分組。
子塊源塊有時(shí)被分成子塊,每個(gè)子塊都足夠小以在工作存儲(chǔ)器中被解碼。對(duì)于包括K個(gè)源碼元的源塊,每個(gè)子塊包括K個(gè)子碼元,源塊的每個(gè)碼元由來自每個(gè)子塊的一個(gè)子碼元構(gòu)成。
子碼元碼元的一部分。每個(gè)源碼元由像源塊中的子塊一樣多的子碼元構(gòu)成。
源分組包含源碼元的數(shù)據(jù)分組。
修復(fù)分組包含修復(fù)碼元的數(shù)據(jù)分組。
B.1.2符號(hào)


B.1.3縮寫以下縮寫用于本文檔

B.2.綜述MSCR前向糾錯(cuò)碼可應(yīng)用于MBMS文件傳送和MBMS流應(yīng)用。對(duì)每個(gè)這些應(yīng)用特定的MSCR碼方面在本文檔的小節(jié)B.3和B.4中討論。
系統(tǒng)MSCR碼的構(gòu)成是小節(jié)B.5中所述的基本編碼器。首先,描述如何從原始源碼元中導(dǎo)出中間碼元集的值,使得知道了中間碼元就足以重構(gòu)源碼元。其次,編碼器產(chǎn)生修復(fù)碼元,它們是眾多中間碼元的異或。編碼碼元是源和修復(fù)碼元的組合。修復(fù)碼元被生成為中間碼元和因此源碼元可從任何足夠大的編碼碼元集中恢復(fù)。
本文檔定義系統(tǒng)MSCR碼編碼器。眾多可能的解碼算法是可能的。一種有效的解碼算法在小節(jié)B.6中提供。
中間和修復(fù)碼元的構(gòu)建部分地基于小節(jié)B.5中所述的偽隨機(jī)數(shù)發(fā)生器。該發(fā)生器基于可用于發(fā)送器和接收器的512個(gè)隨機(jī)數(shù)的一個(gè)固定集。一個(gè)示例數(shù)集如附錄B.1中所提供。
最終,中間碼元根據(jù)源碼元的構(gòu)建受“系統(tǒng)索引”管理。系統(tǒng)索引的值的示例集如附錄A中所示,用于從4個(gè)源碼元到KMAX=8192個(gè)源碼元的源塊大小。
B.3.文件下載B.3.1源塊構(gòu)建B.3.1.1概述為了將MSCR編碼器應(yīng)用于源文件,文件可分成Z≥1塊,稱為源塊。MSCR編碼器獨(dú)立地應(yīng)用于每個(gè)源塊。每個(gè)源塊由唯一的整數(shù)源塊號(hào)碼(SBN)標(biāo)識(shí),其中第一源塊具有SBN 0,第二源塊具有SBN 1等等。每個(gè)源塊被分成K個(gè)大小為T個(gè)字節(jié)的源碼元。每個(gè)源碼元由唯一的整數(shù)編碼碼元標(biāo)識(shí)符(ESI)標(biāo)識(shí),其中源塊的第一源碼元具有ESI 0,第二源碼元具有ESI 1等。
每個(gè)具有K個(gè)源碼元的源塊被分成N≥1個(gè)子塊,子塊足夠小以在工作存儲(chǔ)器中被解碼。每個(gè)子塊被分成大小為T’的K個(gè)子碼元。
注意,K值對(duì)文件的每個(gè)源塊沒有必要是相同的,而T’值對(duì)源塊的每個(gè)子塊也沒有必要是相同的。然而,碼元大小T對(duì)文件的所有源塊都是相同的,且碼元數(shù)K對(duì)源塊的每個(gè)子塊都相同。文件到源塊和子塊的確切劃分如下在B.3.1.2中所述。
圖17示出置入兩維數(shù)組的一示例源塊,其中每個(gè)條目是T’字節(jié)的子碼元,每行是子塊而每列是源碼元。在該示例中,T’值對(duì)每個(gè)子塊都相同。每個(gè)子碼元條目中所示的數(shù)字指示其在源塊內(nèi)的原始順序。例如,標(biāo)號(hào)為K的子碼元包含該源塊的T’·K~T’·(K+1)-1字節(jié)。然后,源碼元i是來自每個(gè)子塊的第i個(gè)子碼元的串聯(lián)拼接,它對(duì)應(yīng)于標(biāo)號(hào)為i,K+i,2·K+i,……,(N-1)·K+i的源塊的子碼元。
B.3.1.2源塊和子塊劃分源塊和子塊的構(gòu)建基于5個(gè)輸入?yún)?shù)F、A、T、Z和N以及函數(shù)Partition[]來確定。5個(gè)輸入?yún)?shù)定義如下F以字節(jié)為單位的文件的大小A以字節(jié)為單位的碼元對(duì)齊參數(shù)T以字節(jié)為單位的必須是A的倍數(shù)的碼元大小Z源塊的數(shù)量N每個(gè)源塊中子塊的數(shù)量這些參數(shù)可設(shè)置成使ceil(ceil(F/T)/Z)≤KMAX。推導(dǎo)這些參數(shù)的推薦在小節(jié)B.3.4中提供。
函數(shù)Partition[]取一對(duì)整數(shù)(I,J)為輸入,并導(dǎo)出4個(gè)整數(shù)(IL,IS,JL,JS)作為輸出。具體地,Partition[I,J]是4個(gè)整數(shù)(IL,IS,JL,JS)的一個(gè)序列,其中IL=ceil(I/J),IS=floor(I/J),JL=I-IS·J和JS=J-JL。Partition[]導(dǎo)出用于將塊的大小I分成J個(gè)大小近似相等的塊的參數(shù)。具體地,JL個(gè)長(zhǎng)度為IL的塊以及JS個(gè)長(zhǎng)度為IS的塊。
源文件可如下分成多個(gè)源塊和子塊設(shè)Kt=ceil(F/T)(KL,KS,ZL,ZS)=Partition[Kt,Z](TL,TS,NL,NS)=Partition[T/A,N]然后,文件可被分成Z=ZL+ZS個(gè)連續(xù)源塊,前ZL個(gè)源塊每個(gè)都具有長(zhǎng)度KL·T字節(jié),而剩下的ZS個(gè)源塊每個(gè)都具有KS·T字節(jié)。
如果Kt·T>F,則出于編碼目的,最后一個(gè)碼元可在末端用Kt·T-F個(gè)零字節(jié)填充。
然后,每個(gè)源塊可分成N=NL+NS個(gè)連續(xù)子塊,前NL個(gè)子塊每個(gè)都包括大小為TL·A的K個(gè)連續(xù)子碼元,而剩下的NS個(gè)子塊每個(gè)都包括大小為TS·A的K個(gè)連續(xù)子碼元。碼元對(duì)齊參數(shù)A確保子碼元總是A的倍數(shù)字節(jié)。
最后,源塊的第m個(gè)碼元包括來自N個(gè)子塊的每一個(gè)的第m個(gè)子碼元的串聯(lián)拼接。
B.3.2編碼分組構(gòu)建B.3.2.1概論每個(gè)編碼分組包含以下信息
源塊號(hào)碼 (SBN)編碼碼元 ID(ESI)編碼碼元 (s)每個(gè)源塊獨(dú)立于其它源塊編碼。源塊從0開始連續(xù)編號(hào)。
從0到K-1的編碼碼元ID值標(biāo)識(shí)各源碼元。K以上的編碼碼元ID標(biāo)識(shí)修復(fù)碼元。
B.3.2.2編碼分組構(gòu)建每個(gè)編碼分組最好完全由源碼元構(gòu)成(源分組),或者完全由修復(fù)碼元構(gòu)成(修復(fù)分組)。分組可包含來自相同源塊的任何數(shù)量的碼元。在分組中最后一個(gè)碼元包括為FEC編碼目的添加的填充字節(jié)的情形中,這些字節(jié)不需要包括在分組中。否則,只可包括完整的碼元。
在每個(gè)源分組中攜帶的編碼碼元ID X是在該分組中攜帶的第一源碼元的編碼碼元ID。該分組中的后續(xù)的源碼元具有按順序排列的編碼碼元ID X+1~X+G-1,其中G是分組中碼元的數(shù)量。
類似地,置入修復(fù)分組中的編碼碼元ID X是修復(fù)分組中第一修復(fù)碼元的編碼碼元ID,且該分組中的后續(xù)的修復(fù)碼元具有按順序排列的編碼碼元ID X+1~X+G-1,其中G是分組中碼元的數(shù)量。
注意,接收器不需要知道修復(fù)分組的總數(shù)量。置入具有ESI X的修復(fù)分組的修復(fù)碼元的G個(gè)修復(fù)碼元三元組(d
,a
,b
),……,(d[G-1],a[G-1],b[G-1])使用B.5.3.4中定義的三元發(fā)生器計(jì)算如下對(duì)于每個(gè)i=0,……,G-1(d[i],a[i],b[i])=Trip[K,X+i]要置入具有ESI X的修復(fù)分組的G個(gè)修復(fù)碼元使用中間碼元C和LT編碼器LTenc[K,C,(d[i],a[i],b[i])]如小節(jié)B.5.3所述基于修復(fù)碼元三元組來計(jì)算。
B.3.3傳輸本節(jié)描述使用對(duì)文件傳送的MSCR前向糾錯(cuò)在MSCR編碼器/解碼器和任何傳輸協(xié)議之間的信息交換。
用于文件傳送的MSCR編碼器和解碼器需要來自傳輸協(xié)議的以下信息以字節(jié)為單位的文件大小F、碼元對(duì)齊參數(shù)A、以字節(jié)為單位的是A倍數(shù)的碼元大小T、源塊數(shù)量Z、每個(gè)源塊中的子塊數(shù)量N。用于文件傳送的MSCR編碼器還需要要被編碼的文件,F(xiàn)字節(jié)。
MSCR編碼器向傳輸協(xié)議提供編碼分組信息,包括每個(gè)分組的SBN、ESI和編碼碼元。傳輸協(xié)議可將該信息透明地傳送給MSCR解碼器。
B.3.4推薦參數(shù)(提供信息的)B.3.4.1參數(shù)導(dǎo)出算法本節(jié)提供對(duì)導(dǎo)出4個(gè)傳送參數(shù)A、T、Z和N的推薦。該推薦基于以下輸入?yún)?shù)F以字節(jié)為單位的文件大小W以字節(jié)為單位的對(duì)子塊大小的目標(biāo)P以字節(jié)為單位的最大分組有效載荷大小,假設(shè)為A的倍數(shù)A以字節(jié)為單位的碼元對(duì)齊因數(shù)KMAX每個(gè)源塊源碼元的最多數(shù)量KMIN對(duì)每個(gè)源塊碼元數(shù)量的最小目標(biāo)GMAX每個(gè)分組碼元的最多目標(biāo)數(shù)量基于以上輸入,傳送參數(shù)T、Z和N計(jì)算如下設(shè)G=min{ceil(P·KMIN/F),P/A,GMAX}-每個(gè)分組碼元的大約數(shù)量T=floor(P/(A·G))·AK=ceil(F/T)-文件中碼元的總量Z=ceil(Kt/KMAX)N=min{ceil(ceil(Kt/Z)·T/W),T/A}以上導(dǎo)出的G和N值都應(yīng)視為下限。將這些值增大為例如最接近的2的冪是有利的。特別地,以上算法不能確保碼元大小T能被最大分組大小P除盡,因此不可能使用大小精確為P的分組。如果相反,G被選為能被P/A除盡的值,則碼元大小T將是P的除數(shù)并可使用大小為P的分組。
輸入?yún)?shù)W、A、KMIN和GMAX的推薦設(shè)置如下W=256KB A=4KMIN=1024 GMAX=10R.3.4.2示例以上算法導(dǎo)出如圖18所示的傳送參數(shù),假設(shè)W、A、KMIN和GMAX的推薦值且P=512。
B.4.流B.4.1源塊構(gòu)建源塊由例如本文檔中定義的傳送協(xié)議使用系統(tǒng)MSCR前向糾錯(cuò)碼構(gòu)建。用于源塊構(gòu)建和修復(fù)碼元構(gòu)建的碼元大小T由傳送協(xié)議提供。參數(shù)T可設(shè)置成任何源塊中源碼元的數(shù)量最多為KMAX。
推薦參數(shù)如小節(jié)B.4.4所示。
B.4.2編碼分組構(gòu)建如B.4.3中所述,每個(gè)修復(fù)分組都包含SBN、ESI、SBL和修復(fù)碼元。包含在修復(fù)分組內(nèi)的修復(fù)碼元的數(shù)量根據(jù)分組長(zhǎng)度計(jì)算。置入修復(fù)分組的ESI值和用來產(chǎn)生修復(fù)碼元的修復(fù)碼元三元組如小節(jié)B.3.2.2所述進(jìn)行計(jì)算。
B.4.3傳送本節(jié)描述MSCR編碼器/解碼器和任何對(duì)流使用MSCR前向糾錯(cuò)的傳輸協(xié)議之間的信息交換。用于流的MSCR編碼器可對(duì)每個(gè)源塊使用以下來自傳輸協(xié)議的信息以字節(jié)為單位的碼元大小T、源塊中的碼元數(shù)量K、源塊號(hào)碼(SBN)和要編碼的源碼元K·T字節(jié)。MSCR編碼器向傳輸協(xié)議提供編碼分組信息,包括每個(gè)修復(fù)分組的SBN、ESI、SBL和修復(fù)碼元。該傳輸協(xié)議可將該信息透明地傳送給MSCR解碼器。
B.4.4.推薦參數(shù)B.4.4.1參數(shù)導(dǎo)出算法本節(jié)提供對(duì)傳送參數(shù)T的推導(dǎo)的推薦。該推薦基于以下輸入?yún)?shù)

對(duì)這些參數(shù)的要求是ceil(B/P)≤KMAX?;谝陨陷斎?,傳送參數(shù)T計(jì)算如下設(shè)G=min{ceil(P·KMIN/B),P/A,GMAX}-每個(gè)分組碼元的大約數(shù)量T=floor(P/(A·G))·A以上導(dǎo)出的T值應(yīng)被視為所使用實(shí)際T值的基準(zhǔn)。確保T能被P除盡是有利的,或者將T值設(shè)置得更小以在全尺寸大小的修復(fù)碼元用來在丟失的源分組的末端恢復(fù)部分源碼元時(shí)使浪費(fèi)最少(只要源塊中源碼元的最多數(shù)量不超過KMAX)是有利的。此外,對(duì)T的選擇可取決于源分組大小的分布,即如果全部源分組大小都相同,則將T選成修復(fù)分組P’的實(shí)際有效載荷大小(其中P’是T的倍數(shù))等于每個(gè)源分組占據(jù)源塊的字節(jié)數(shù)(或者比之大盡可能少的字節(jié))是有利的。
輸入?yún)?shù)A、KMIN和GMAX的推薦設(shè)置如下
A=4KMIN=1024 GMAX=10B.4.4.2示例以上算法導(dǎo)出如圖19所示的傳送參數(shù),假設(shè)A、KMIN和GMAX的推薦值且P=512。
B.5.系統(tǒng)MSCR編碼器B.5.1.編碼綜述系統(tǒng)MSCR編碼器用來從包括K個(gè)源碼元的源塊中產(chǎn)生修復(fù)碼元。
碼元是編碼和解碼過程的基本數(shù)據(jù)單位。對(duì)于每個(gè)源塊(子塊),所有碼元(子碼元)大小都相同。對(duì)碼元(子碼元)執(zhí)行的編碼和解碼的原子運(yùn)算是異或運(yùn)算。
設(shè)C’
,……,C’[K-1]表示K個(gè)源碼元。
設(shè)C
,……,C[L-1]表示L個(gè)中間碼元。
編碼的第一個(gè)步驟是從K個(gè)源碼元中產(chǎn)生L>K個(gè)中間碼元。在該步驟中,K個(gè)源三元組(d
,a
,b
),……,(d[K-1],a[K-1],b[K-1])使用小節(jié)B.5.4.4中所述的Trip[]發(fā)生器產(chǎn)生。K個(gè)源三元組與K個(gè)源碼元相關(guān)聯(lián),然后使用逆編碼過程用來從源碼元中確定L個(gè)中間碼元C
,……,C[L-1]。該過程可由MSCR解碼過程實(shí)現(xiàn)。
一定的“預(yù)編碼關(guān)系”必需在L個(gè)中間碼元內(nèi)保持。小節(jié)B.5.2描述這些關(guān)系以及中間碼元如何從源碼元中產(chǎn)生。
一旦中間碼元已經(jīng)產(chǎn)生,修復(fù)碼元就產(chǎn)生且一個(gè)或多個(gè)修復(fù)碼元作按照組被置入單個(gè)數(shù)據(jù)分組。每個(gè)修復(fù)碼元組與編碼碼元ID(ESI)和G個(gè)編碼碼元相關(guān)聯(lián)。ESI用來產(chǎn)生用于每個(gè)修復(fù)碼元的三個(gè)整數(shù)的三元組(d,a,b),再次使用小節(jié)B.5.4.4中所述的Trip[]發(fā)生器。這使用如小節(jié)B.5.4所述的發(fā)生器如小節(jié)B.3和B.4所述地完成。然后,使用小節(jié)B.5.4.3中所述的LTEnc[K,C
,……,C[L-1],(d,a,b)]發(fā)生器,每個(gè)(d,a,b)三元組被用來從中間碼元中產(chǎn)生相應(yīng)的修復(fù)碼元。
B.5.2.第一編碼步驟中間碼元產(chǎn)生B.5.2.1概述第一編碼步驟是從源碼元C’
,……,C’[K-1]中產(chǎn)生L個(gè)中間碼元C
,……,C[L-1]的預(yù)編碼步驟。中間碼元由兩套約束條件唯一限定1.中間碼元通過源碼元三元組集與源碼元相關(guān)。源碼元三元組的產(chǎn)生使用小節(jié)B.5.4.4中所述的Trip[]發(fā)生器在小節(jié)B.5.2.2中定義。
2.預(yù)編碼關(guān)系集在各中間碼元本身內(nèi)保持。這些在小節(jié)B.5.2.3中定義。然后L個(gè)中間碼元的產(chǎn)生在小節(jié)5.2.4中定義。
B.5.2.2源碼元三元組K個(gè)源碼元的每一個(gè)都與三元組(d[i],a[i],b[i])(0≤i≤K)相關(guān)聯(lián)。源碼元三元組使用小節(jié)B.5.4.4中定義的三元組發(fā)生器確定為對(duì)于每個(gè)i,0≤i<K(d[i],a[i],b[i])=Trip[K,i]B.5.2.3預(yù)編碼關(guān)系L個(gè)中間碼元之間的預(yù)編碼關(guān)系通過根據(jù)前K個(gè)中間碼元表達(dá)后面L-K個(gè)中間碼元來定義。
后面L-K個(gè)中間碼元C[K],……,C[L-1]包括S個(gè)LDPC碼元和H個(gè)半碼元(Half碼元)。S和H的值都如下所述根據(jù)K來確定。然后L=K+S+H。
設(shè)X 使X·(X-1)=2·K的最小正整數(shù)S 使S≥ceil(0.01·K)+X的最小質(zhì)數(shù)H 使choose(H,ceil(H/2))≥K+S的最小整數(shù)H’ =ceil(H/2))L=K+S+HC
, ……,C[K-1]表示前K個(gè)中間碼元C[K], ……,C[K+S-1]表示S個(gè)LDPC碼元,初始化為零C[K+S],……,C[L-1]表示H個(gè)半碼元,初始化為零S個(gè)LDPC碼元被定義為以下過程結(jié)束時(shí)的C[K],……,C[K+S-1]值For i=0,……,K-1 doa=1+(floor(i/S)%(S-1))b=i%SC[K+b]=C[K+b]^C[i]b=(b+a)%SC[K+b]=C[K+b]^C[i]b=(b+a)%SC[K+b]=C[K+b]^C[i]H個(gè)半碼元被定義如下設(shè)對(duì)于所有的正整數(shù)i,g[i]=i^(floor(i/2))
注意g[i]是Gray序列,其中每個(gè)元素與前一個(gè)元素有單個(gè)比特位置的不同g[j,k]表示g[i]子序列的第j個(gè)元素,j=0,1,2,……,其元素在其二進(jìn)制表示中有正好k個(gè)非零比特。
然后,半碼元被定義為以下過程后的C[K+S],……,C[L-1]值for h=0,……,H-1 dofor j=0,……,K+S-1 doif g[j,H’]的比特h等于1,then C[h+K+S]=C[h+K+S]^C[j]。
B.5.2.4中間碼元B.5.2.4.1 定義給定K個(gè)源碼元C’
,C’[1],……,C’[K-1],L個(gè)中間碼元C
,C[1],……C[L-1]是滿足以下條件的唯一定義的碼元值1.K個(gè)源碼元C’
,C’[1],……,C’[K-1]滿足K個(gè)約束條件C’[i]≡LTEnc[K,(C
,……,C[L-1]),(d[i],a[i],b[i])],對(duì)于全部i,0≤i<K2.L個(gè)中間碼元C
,……,C[L-1]滿足B.5.2.3中定義的預(yù)編碼關(guān)系。
B.5.2.4.2 計(jì)算中間碼元本小節(jié)描述計(jì)算滿足B.5.2.4.1中約束條件的L個(gè)中間碼元C
,……,C[L-1]的一種可能方法。
用于從K個(gè)輸入碼元中產(chǎn)生N個(gè)輸出碼元的碼的發(fā)生器矩陣G是GF(2)上的NxK矩陣,其中每行對(duì)應(yīng)于輸出碼元之一而每列對(duì)應(yīng)于輸入碼元之一,且第i個(gè)輸出碼元等于其列包含行i中非零條目的那些列的輸入碼元之和。
然后,L個(gè)中間碼元可如下計(jì)算設(shè)C表示L個(gè)中間碼元C
,……,C[L-1]的列向量D表示包括S+H個(gè)零碼元后跟K個(gè)源碼元C’
,C’[1]……,C’[K-1]的列向量則以上約束條件將GF(2)上的LxL矩陣A定義為A·C=D矩陣A可構(gòu)建如下設(shè)GLDPC是LDPC碼元的SxK發(fā)生器矩陣。所以GLDPC·(C
,……,C[K-1])T=(C[K],……,C[K+S-1])TGHalf是半碼元的Hx(K+S)發(fā)生器矩陣。所以
GHalf·(C
,……,C[K-1])T=(C[K],……,C[K+S+H-1])TIS是SxS單位矩陣。
IH是HxH單位矩陣。
0SxH是SxH零矩陣。
GLT是由LT編碼器產(chǎn)生的編碼碼元的KxL發(fā)生器矩陣。
所以,GLT·(C
,……,C[L-1])T=(C’
,C’[1],……,C’[K-1])T即,當(dāng)且僅當(dāng)C[i]包括在相異或產(chǎn)生LTEnc[K,(C
,……,C[L-1]),(d[i],a[i],b[i])],GLti,j=1。
則A的前S行等于GLDPC|IS|ZSxHA接下來的H行等于GHalf|IHA剩下的K行等于GLT。
矩陣A如圖20所示。然后中間碼元可計(jì)算為C=A-1·D源三元組被生成為對(duì)于任何K,矩陣A都滿秩,因此可逆。該計(jì)算可通過將MSCR解碼過程應(yīng)用于K個(gè)源碼元C’
,C’[1],……,C’[K-1]來實(shí)現(xiàn),以產(chǎn)生L個(gè)中間碼元C
,……,C[L-1]。
為了有效地從源碼元產(chǎn)生中間碼元,建議使用諸如小節(jié)B.6所述的有效解碼器實(shí)現(xiàn)。源碼元三元組被設(shè)計(jì)成使用該算法來便于源碼元的有效解碼。
B.5.3.第二個(gè)編碼步驟LT編碼在第二個(gè)編碼步驟中,使用根據(jù)小節(jié)B.3.2.2和B.4.2產(chǎn)生的三元組(d,a,b)=Trip[K,X],具有ESI X的修復(fù)碼元通過將在小節(jié)B.5.4中定義的發(fā)生器LTEnc[K,(C
,……,C[L-1]),(d,a,b)]應(yīng)用于L個(gè)中間碼元C
,……,C[L-1]來產(chǎn)生。
B.5.4發(fā)生器B.5.4.1隨機(jī)發(fā)生器隨機(jī)數(shù)發(fā)生器Rand[X,i,m]定義如下,其中X是非負(fù)整數(shù),i是非負(fù)整數(shù),且m是正整數(shù),所產(chǎn)生的值是0到m-1之間的整數(shù)。設(shè)V0和V1都是256個(gè)條目的數(shù)組,其中每個(gè)條目都是4-字節(jié)的無符號(hào)整數(shù)。這些數(shù)組在小節(jié)B.7中提供。
然后,Rand[X,i,m]=(V0[X+i]%256)^V1[(floor(X/256)+i)%256]%mB.5.4.2次數(shù)發(fā)生器次數(shù)發(fā)生器Deg[v]定義如下,其中v是至少為0并小于220=1048576的整數(shù)。
在圖21中,尋找索引j使f[j-1]≤v<f[j]Deg[v]=d[j]B.5.4.3 LT編碼碼元發(fā)生器編碼碼元發(fā)生器LTEnc[K,(C
,……,C[L-1]),(d,a,b)]取以下輸入K是源塊(子塊)的源碼元(或子碼元)的數(shù)量。設(shè)L根據(jù)小節(jié)B.5.2所述的K導(dǎo)出,并設(shè)L’為大于或等于L的最小質(zhì)數(shù)。
(C
,……,C[L-1])是如小節(jié)B.5.2所述地產(chǎn)生的L個(gè)中間碼元(子碼元)的數(shù)組。(d,a,b)是使用小節(jié)B.5.3.4中定義的三元組發(fā)生器確定的源三元組,而d是表示編碼碼元次數(shù)的整數(shù),a是1到L’-1(包括1和L’-1)之間的整數(shù),b是0到L’-1(包括1和L’-1)之間的整數(shù)。
編碼碼元發(fā)生器根據(jù)以下算法,產(chǎn)生單個(gè)編碼碼元作為輸出while(b≥L)do b=(b+a)%L’LTEnc[K,(C
,……,C[L-1]),(d,a,b)]=C[b]Forj=1,……,min(d-1,L-1) dob=(b+a)%L’while(b≥L)do b=(b+a)%L’LTEnc[K,(C
,……,C[L-1]),(d,a,b)]=LTEnc[K,(C
,……,C[L-1]),(d,a,b)]^C[b]B.5.4.4三元組發(fā)生器三元組發(fā)生器Trip[K,X]取以下輸入K 源碼元的數(shù)量X 編碼碼元ID設(shè)L 根據(jù)如小節(jié)B.5.2中所述的K確定L’是大于或等于L的最小質(zhì)數(shù)Q=65521,小于216的最大質(zhì)數(shù)J(K)是與K相關(guān)聯(lián)的系統(tǒng)索引,如附錄A中所定義。
三元組發(fā)生器的輸出是如下確定的三元組(d,a,b)1.A=(53591+J(K)·997)%Q2.B=10267·(J(K)+1)%Q
3.Y=(B+X·A)%Q4.V=Rand[Y,0,220]5.d=Deg[v]6.a=1+Rand[Y,1,L’-1]7.b=Rand[Y,2,L’]B.6 FEC解碼器實(shí)現(xiàn)B.6.1概論本節(jié)描述用于本說明書所述的MSCR碼的有效解碼算法。注意每個(gè)所接收的編碼碼元可視為中間碼元在其中的方程的值。根據(jù)這些聯(lián)立方程,以及中間碼元之間的已知預(yù)編碼關(guān)系,任何用于解聯(lián)立方程的算法可成功地解碼中間碼元和源碼元。然而,所選擇的算法對(duì)解碼的計(jì)算效率有主要影響。
B.6.2解碼源塊B.6.2.1概論假設(shè)解碼器知道它要解碼的源塊的結(jié)構(gòu),包括碼元大小T、以及源塊中的碼元數(shù)量K。
根據(jù)小節(jié)B.5中所述的算法,MSCR解碼器可計(jì)算預(yù)編碼碼元的總量達(dá)L=K+S+H,并確定它們?nèi)绾螐囊唤獯a的源塊中產(chǎn)生。在本說明書中,假設(shè)接收到的要被解碼的源塊的編碼碼元被傳遞給了解碼器。此外,對(duì)于每個(gè)這種編碼碼元,假設(shè)其異或等于編碼碼元的中間碼元的數(shù)量和集被傳遞給了解碼器。在源碼元的情形中,小節(jié)B.5.2.2中所述的源碼元三元組表示其和給出每個(gè)源碼元的中間碼元的數(shù)量和集。
設(shè)N≥K為所接收的源塊的編碼碼元的數(shù)量,并設(shè)M=S+H+N。隨后MxL比特矩陣A可從傳遞給解碼器的要解碼的源塊的信息中導(dǎo)出。設(shè)C是L個(gè)中間碼元的列向量,并設(shè)D是M個(gè)其值為接收器已知的碼元的列向量,其中M個(gè)碼元的前S+H個(gè)是與LDPC和半碼元相對(duì)應(yīng)的零值碼元(這些是LDPC和半碼元的校驗(yàn)碼元,而不是LDPC和半碼元本身),并且M個(gè)碼元的剩余N個(gè)是接收到的源塊的編碼碼元。然后,A是滿足A·C=D的比特矩陣,其中·表示GF[2]上的矩陣乘法。特別地,如果與索引j相對(duì)應(yīng)的中間碼元異或成對(duì)應(yīng)于編碼中索引i的LDPC、半或編碼碼元,或者如果索引i對(duì)應(yīng)于LDPC或半碼元而索引j對(duì)應(yīng)于同一LDPC或半碼元,則A[i,j]=1。對(duì)于其它的i和j,則A[i,j]=0。
解碼源塊等效于根據(jù)已知的A和D來解碼C。顯然當(dāng)且僅當(dāng)GF[2]上A的秩為L(zhǎng)時(shí)C可被解碼。一旦C已被解碼,則遺漏的源碼元就可通過使用源碼元三元組來獲取,以確定要異或以獲得每個(gè)遺漏的源碼元的中間碼元的數(shù)量和集。
解碼C的第一個(gè)步驟是形成解碼時(shí)間表。在該步驟中,使用高斯消元算法(使用行運(yùn)算以及行和列的重新排序)并去掉M-L行之后,A被轉(zhuǎn)換成LxL單元矩陣。解碼時(shí)間表包括在高斯消元過程期間的行運(yùn)算的序列、以及行和列的重新排序,并僅依賴于A而非D。根據(jù)D對(duì)C的解碼可與形成解碼時(shí)間表并發(fā)地進(jìn)行,或者解碼可基于解碼時(shí)間表在之后進(jìn)行。
解碼時(shí)間表和C的解碼之間對(duì)應(yīng)如下。開始時(shí)設(shè)c
=0,c[1]=1,……,c[L-1]=L-1,并設(shè)d
=0,d[1]=1,……,d[M-1]=M-1。
-每當(dāng)A的行i被異或成解碼時(shí)間表中的行i’時(shí),在解碼過程中碼元D[d[i]]被異或成碼元D[d[i’]]。
-每當(dāng)行i與解碼時(shí)間表中的行i’交換時(shí),在解碼過程中d[i]的值與d[i’]的值交換。
-每當(dāng)列j與解碼時(shí)間表中的列j’交換時(shí),在解碼過程中c[j]的值與c[j’]的值交換。
根據(jù)該對(duì)應(yīng)關(guān)系,顯然解碼源塊時(shí)碼元異或的總數(shù)量是高斯消元中行運(yùn)算的數(shù)量(未作交換)。因?yàn)锳是高斯消元之后并去掉最后M-L行之后的LxL單位矩陣,所以顯然在成功解碼結(jié)束時(shí),L個(gè)碼元D(d
),D(d[1]),……,D(d[L-1])是L個(gè)碼元C(c
),C(c[1]),……,C(c[L-1])的值。
執(zhí)行高斯消元以形成解碼時(shí)間表的順序?qū)獯a是否成功沒有關(guān)系。然而,解碼速度較強(qiáng)地取決于執(zhí)行高斯消元的順序(此外,保持A的稀疏表示是重要的,盡管并未在此描述)。本節(jié)的剩下部分描述相對(duì)高效的執(zhí)行高斯消元的順序。
B.6.2.2第一階段高斯消元的第一階段矩陣A在概念上被分成多個(gè)子矩陣。子矩陣的大小非負(fù)整數(shù)i和u為參數(shù),初始化為0。A的子矩陣為(1)由前i行和前i列的交點(diǎn)限定的子矩陣I。這是該階段中每個(gè)步驟結(jié)束時(shí)的單位矩陣。
(2)由前i行與除前i列和最后u列之外的所有列的交點(diǎn)限定的子矩陣。該子矩陣的所有條目都為零。
(3)由前i列與除前i行之外的所有行的交點(diǎn)限定的子矩陣。該子矩陣的所有條目都為零。
(4)由所有行和最后u列的交點(diǎn)限定的子矩陣U。
(5)由除前i列和最后u列之外的全部列與除前i行之外的所有行的交點(diǎn)形成的子矩陣V。
圖22示出A的子矩陣。在第一階段開始時(shí),V=A。在每個(gè)步驟中,選擇A的一行。由V的結(jié)構(gòu)限定的跟蹤圖用于確定選擇A的哪一行。與V相交的各個(gè)列為圖中的節(jié)點(diǎn),并且V中具有正好2個(gè)1的行是在該兩個(gè)1的位置上連接兩列(節(jié)點(diǎn))的圖的邊。該圖中的一個(gè)組成是節(jié)點(diǎn)(列)和邊(行)的最大集,從而圖中每對(duì)節(jié)點(diǎn)/邊之間都有路徑。組成的大小是該組成中節(jié)點(diǎn)(列)的數(shù)量。
在第一階段中最多有L個(gè)步驟。當(dāng)i+u=L時(shí),即當(dāng)V和V上所有零矩陣消失且A包括I、I下的所有零子矩陣和U時(shí),該階段成功結(jié)束。如果在V消失前的某一步驟上V中有非零行待選,則該階段不成功地結(jié)束,解碼失敗。在每個(gè)步驟中,如下選擇行A如果V的所有條目都為零,則不選擇行,且解碼失敗。
設(shè)r為使A的至少一行在V中恰好有r個(gè)1的最小整數(shù)。
如果r≠2,則選擇V中正好有r個(gè)1的行,該行是所有這些行中具有最小原始次數(shù)的行。
如果r=2,則選擇V中正好有2個(gè)1的任一行,它是由X限定的圖中最大尺寸組成的一部分。
在本步驟中選擇該行后,與V相交的A的第一行與選定行交換,使該選定行是與V相交的第一行。A中與V相交的各列重新排序,使得選定行中r個(gè)1之一出現(xiàn)在V的第一列,并使剩下的r-1個(gè)1出現(xiàn)在V后面的列中。然后,選定行被異或成V的第一列中有1的選定行之下A的所有其它行。最后,i增1而u增r-1,從而完成該步驟。
B.6.2.3第二個(gè)步驟子矩陣U進(jìn)一步被分成前i行Uupper,以及剩下的M-i行Ulower。在第二階段對(duì)Ulower執(zhí)行高斯消元,以確定其秩小于u(解碼失敗)、或?qū)⑵滢D(zhuǎn)換成前u行為單位矩陣的矩陣(第二階段成功)。稱該uxu單位矩陣為Iu。與Ulower-Iu相交的A的M-L行被去除。該階段之后A具有L行和L列。
B.6.2.4第三階段在第二階段之后,需要清零去除以將A轉(zhuǎn)換成LxL單位矩陣的A的那部分是Uupper。子矩陣Uupper的行數(shù)i通常比Uupper的列數(shù)u大得多。為了有效地對(duì)Uupper清零去除,隨后在第三階段基于Iu計(jì)算預(yù)算矩陣U’,并在第四階段將U’用于清零去除Uupper。Iu的u個(gè)行被分成ceil(u/8)個(gè)每個(gè)為8行的組。然后,對(duì)于每個(gè)8行的組,計(jì)算該8個(gè)行的所有非零組合,結(jié)果為28-1=255行(這可通過每組各行的28-8-1=247次異或來完成,因?yàn)镮u中出現(xiàn)的漢明權(quán)1的組合不需要重新計(jì)算)。因而,最后的預(yù)算矩陣U’具有ceil(u/8)·255行和u列。注意,U’形式上并非是矩陣A的一部分,但將用于第四階段以清零去除Uupper。
B.6.2第四階段對(duì)于A的前I行,對(duì)該行的Uupper子矩陣中每個(gè)8列組,如果Uupper中8列條目的集并非全為零,則與8列中模式相匹配的預(yù)算矩陣U’的行被異或到該行中,從而以將U’的一行異或到該行的代價(jià)清零去除該行中的那8列。
在該階段之后A為L(zhǎng)xL的單位矩陣,并已成功形成完整的解碼時(shí)間表。然后,包括異或已知編碼碼元的相應(yīng)解碼可被執(zhí)行,以基于解碼時(shí)間表恢復(fù)中間碼元。
與全部源碼元相關(guān)聯(lián)的三元組根據(jù)B.5.2.2計(jì)算。接收到的源碼元的三元組在解碼中使用。遺漏源碼元的三元組用來確定那些中間碼元需要異或,以恢復(fù)所遺漏的源碼元。
一些多級(jí)碼的部分屬件在上述大多數(shù)示例中,輸入和輸出碼元對(duì)相同數(shù)量的比特編碼,且每個(gè)輸出碼元都被置入一分組中(分組是全部接收或全部丟失的傳送單位)。在一些實(shí)施例中,通信系統(tǒng)被更改使每個(gè)分組都包含若干輸出碼元。輸出碼元值的大小基于眾多因素,被設(shè)置成由在開始將文件或流塊分成輸入碼元時(shí)輸入碼元值的大小確定的大小。解碼過程保持基本不變,除非接收每個(gè)分組時(shí)輸出碼元成串到達(dá)。
輸入碼元和輸出碼元大小的設(shè)置通常由文件或流塊的大小、以及輸出碼元要在其上傳送的通信系統(tǒng)命令。例如,如果通信系統(tǒng)將數(shù)據(jù)比特分成限定大小的分組、或用其它方法來分組比特,則碼元大小的設(shè)計(jì)從分組或組的大小開始。然后,設(shè)計(jì)者將確定在一個(gè)分組或組中攜帶多少輸出碼元,并確定輸出碼元大小。為了簡(jiǎn)便,設(shè)計(jì)者可能將輸入碼元大小設(shè)置成等于輸出碼元大小,但如果輸入數(shù)據(jù)使用不同的輸入碼元大小會(huì)更方便,則可使用之。
上述編碼過程基于原始文件或流塊產(chǎn)生包含輸出碼元的分組流。流中每個(gè)輸出碼元獨(dú)立于所有其它輸出碼元產(chǎn)生,且對(duì)可創(chuàng)建的輸出碼元數(shù)量沒有上限和下限。密鑰與每個(gè)輸出碼元相關(guān)聯(lián)。該密鑰,以及輸入文件或流塊的部分內(nèi)容確定輸出碼元的值。連續(xù)產(chǎn)生的輸出碼元不需要具有連續(xù)密鑰,且在某些應(yīng)用中,最好隨機(jī)產(chǎn)生密鑰序列,或偽隨機(jī)地產(chǎn)生該序列。
多級(jí)解碼具有一屬性,即,如果原始文件或流塊可分成K個(gè)大小相等的輸入碼元,且每個(gè)輸出碼元值都具有與輸入碼元值相同的長(zhǎng)度,則該文件或塊平均地可從K+A個(gè)輸出碼元中恢復(fù),其中A比K小的概率極高。例如,對(duì)于以上介紹的權(quán)重分布,如果K大于19,681,則A值超過α*K的概率最高為10-12;對(duì)于任何K值,概率最高為10-10。因?yàn)樘囟ㄝ敵龃a元以隨機(jī)順序或偽隨機(jī)順序產(chǎn)生,且在傳輸中特定輸出碼元的丟失假設(shè)為隨機(jī),則恢復(fù)輸入文件或塊所需的輸出碼元的施加數(shù)量存在一些較小變化。在一些情形中,當(dāng)K+A個(gè)分組的特定集合不足以解碼逐個(gè)輸入文件或塊時(shí),如果接收器能從輸入分組的一個(gè)或多個(gè)源中收集更多分組時(shí),該輸入文件或塊仍然是可恢復(fù)的。
因?yàn)檩敵龃a元的數(shù)量?jī)H受I的解的限制,所以可產(chǎn)生多于K+A個(gè)的輸出碼元。例如,如果I是32比特?cái)?shù),則可產(chǎn)生40億個(gè)不同的輸出碼元,而文件或流塊可包括K=50,000個(gè)輸入碼元。在一些應(yīng)用中,只可產(chǎn)生并傳送40億個(gè)輸出碼元的一小部分,并且用極少量的可能輸出碼元可恢復(fù)輸入文件或流塊是幾乎肯定的,用略多于K個(gè)輸出碼元就可恢復(fù)輸入文件或塊也是相當(dāng)可能的(假設(shè)輸入碼元大小與輸出碼元大小相同)。
在一些應(yīng)用中,能解碼全部輸入碼元或不能解碼全部輸入碼元都是可以接受的,只是概率相對(duì)較低。在這種應(yīng)用中,接收器可在接收K+A個(gè)輸出碼元之后停止解碼全部輸入碼元?;蛘?,接收器在接收少于K+A個(gè)輸出碼元之后停止接收輸出碼元。在一些應(yīng)用中,接收器甚至只接收K個(gè)或更少輸出碼元。因而,可以理解,在本發(fā)明的一些實(shí)施例中,所需準(zhǔn)確度不需要完全恢復(fù)所有輸入碼元。
此外,在一些可接受不完全恢復(fù)的應(yīng)用中,數(shù)據(jù)可編碼成不能恢復(fù)所有輸入碼元,或者完全恢復(fù)輸入碼元將需要接收比輸入碼元數(shù)量多得多的輸出碼元。這種編碼通常需要較少的計(jì)算成本,因而是降低編碼計(jì)算成本的可接受方法。
可以理解,上述各圖中的各個(gè)功能塊可通過硬件和/或軟件的組合實(shí)現(xiàn),并且在特定實(shí)現(xiàn)中,一些塊的部分或全部功能可加以組合。類似地,也可以理解,在此所述的各種方法可通過硬件和/或軟件的組合實(shí)現(xiàn)。
以上描述是說明性而非限制性的。對(duì)本領(lǐng)域技術(shù)人員而言,在閱讀本說明書之后本發(fā)明的許多變體變得顯而易見。因此,本發(fā)明的范圍不應(yīng)參照以上描述確定,相反應(yīng)參照所附權(quán)利要求以及等效方案的全部范圍來確定。
附錄A.系統(tǒng)索引J(K)的值對(duì)于每個(gè)值K,系統(tǒng)索引J(K)被設(shè)計(jì)成具有以下屬性源碼元三元組(d
,a
,b
),……,(d[L-1],a[L-1],b[L-1])的集使L個(gè)中間碼元唯一限定,即小節(jié)B.5.2.4.2中的矩陣A具有滿秩并因此可逆。下面是介于4和8192(包括4和8192)的K值的系統(tǒng)索引的列表。各值的順序是讀取順序,即從第一行的第一個(gè)數(shù)到第一行的最后一個(gè)數(shù),然后是第二行的第一個(gè)數(shù),依此類推。
18,14,61,46,14,22,20,40,48,1,29,40,43,46,18,8,20,2,61,26,13,29,36,19,58,5,58,0,54,56,24,14,5,67,39,31,25,29,24,19,14,56,49,49,63,30,4,39,2,1,20,19,61,4,54,70,25,52,9,26,55,69,27,68,75,19,64,57,45,3,37,31,100,41,25,41,53,23,9,31,26,30,30,46,90,50,13,90,77,61,31,54,54,3,21,66,21,11,23,11,29,21,7,1,27,4,34,17,85,69,17,75,93,57,0,53,71,88,119,88,90,22,0,58,41,22,96,26,79,118,19,3,81,72,50,0,32,79,28,25,12,25,29,3,37,30,30,41,84,32,31,61,32,61,7,56,54,39,33,66,29,3,14,75,75,78,84,75,84,25,54,25,25,107,78,27,73,0,49,96,53,50,21,10,73,58,65,27,3,27,18,54,45,69,29,3,65,31,71,76,56,54,76,54,13,5,18,142,17,3,37,114,41,25,56,0,23,3,41,22,22,31,18,48,31,58,37,75,88,3,56,1,95,19,73,52,52,4,75,26,1,25,10,1,70,31,31,12,10,54,46,11,74,84,74,8,58,23,74,8,36,11,16,94,76,14,57,65,8,22,10,36,36,96,62,103,6,75,103,58,10,15,41,75,125,58,15,10,34,29,34,4,16,29,18,18,28,71,28,43,77,18,41,41,41,62,29,96,15,106,43,15,3,43,61,3,18,103,77,29,103,19,58,84,58,1,146,32,3,70,52,54,29,70,69,124,62,1,26,38,26,3,16,26,5,51,120,41,16,1,43,34,34,29,37,56,29,96,86,54,25,84,50,34,34,93,84,96,29,29,50,50,6,1,105,78,15,37,19,50,71,36,6,54,8,28,54,75,75,16,75,131,5,25,16,69,17,69,6,96,53,96,41,119,6,6,88,50,88,52,37,0,124,73,73,7,14,36,69,79,6,114,40,79,17,77,24,44,37,69,27,37,29,33,37,50,31,69,29,101,7,61,45,17,73,37,34,18,94,22,22,63,3,25,25,17,3,90,34,34,41,34,41,54,41,54,41,41,41,163,143,96,18,32,39,86,104,11,17,17,11,86,104,78,70,52,78,17,73,91,62,7,128,50,124,18,101,46,10,75,104,73,58,132,34,13,4,95,88,33,76,74,54,62,113,114,103,32,103,69,54,53,3,11,72,31,53,102,37,53,11,81,41,10,164,10,41,31,36,113,82,3,125,62,16,4,41,41,4,128,49,138,128,74,103,0,6,101,41,142,171,39,105,121,81,62,41,81,37,3,81,69,62,3,69,70,21,29,4,91,87,37,79,36,21,71,37,41,75,128,128,15,25,3,108,73,91,62,114,62,62,36,36,15,58,114,61,114,58,105,114,41,61,176,145,46,37,30,220,77,138,15,1,128,53,50,50,58,8,91,114,105,63,91,37,37,13,169,51,102,6,102,23,105,23,58,6,29,29,19,82,29,13,36,27,29,61,12,18,127,127,12,44,102,18,4,15,206,53,127,53,17,69,69,69,29,29,109,25,102,25,53,62,99,62,62,29,62,62,45,91,125,29,29,29,4,117,72,4,30,71,71,95,79,179,71,30,53,32,32,49,25,91,25,26,26,103,123,26,41,162,78,52,103,25,6,142,94,45,45,94,127,94,94,94,47,209,138,39,39,19,154,73,67,91,27,91,84,4,84,91,12,14,165,142,54,69,192,157,185,8,95,25,62,103,103,95,71,97,62,128,0,29,51,16,94,16,16,51,0,29,85,10,105,16,29,29,13,29,4,4,132,23,95,25,54,41,29,50,70,58,142,72,70,15,72,54,29,22,145,29,127,29,85,58,101,34,165,91,46,46,25,185,25,77,128,46,128,46,188,114,46,25,45,45,114,145,114,15,102,142,8,73,31,139,157,13,79,13,114,150,8,90,91,123,69,82,132,8,18,10,102,103,114,103,8,103,13,115,55,62,3,8,154,114,99,19,8,31,73,19,99,10,6,121,32,13,32,119,32,29,145,30,13,13,114,145,32,1,123,39,29,31,69,31,140,72,72,25,25,123,25,123,8,4,85,8,25,39,25,39,85,138,25,138,25,33,102,70,25,25,31,25,25,192,69,69,114,145,120,120,8,33,98,15,212,155,8,101,8,8,98,68,155,102,132,120,30,25,123,123,101,25,123,32,24,94,145,32,24,94,118,145,101,53,53,25,128,173,142,81,81,
69,33,33,125,4,1,17,27,4,17,102,27,13,25,128,71,13,39,53,13,53,47,39,23,128,53,39,47,39,135,158,136,36,36,27,157,47,76,213,47,156,25,25,53,25,53,25,86,27,159,25,62,79,39,79,25,145,49,25,143,13,114,150,130,94,102,359,4,39,61,77,228,22,25,47,119,205,122,119,205,119,22,119,258,143,22,81,179,22,22,143,25,65,53,168,36,79,175,37,79,70,79,103,70,25,175,4,96,96,49,128,138,96,22,62,47,95,105,95,62,95,62,142,103,69,103,30,103,34,173,127,70,127,132,18,85,22,71,18,206,206,18,128,145,70,193,188,8,125,114,70,128,114,145,102,25,12,108,102,94,10,102,1,102,124,22,22,118,132,22,116,75,41,63,41,189,208,55,85,69,8,71,53,71,69,102,165,41,99,69,33,33,29,156,102,13,251,102,25,13,109,102,164,102,164,102,25,29,228,29,259,179,222,95,94,30,30,30,142,55,142,72,55,102,128,17,69,164,165,3,164,36,165,27,27,45,21,21,237,113,83,231,106,13,154,13,154,128,154,148,258,25,154,128,3,27,10,145,145,21,146,25,1,185,121,0,1,95,55,95,95,30,0,27,95,0,95,8,222,27,121,30,95,121,0,98,94,131,55,95,95,30,98,30,0,91,145,66,179,66,58,175,29,0,31,173,146,160,39,53,28,123,199,123,175,146,156,54,54,149,25,70,178,128,25,70,70,94,224,54,4,54,54,25,228,160,206,165,143,206,108,220,234,160,13,169,103,103,103,91,213,222,91,103,91,103,31,30,123,13,62,103,50,106,42,13,145,114,220,65,8,8,175,11,104,94,118,132,27,118,193,27,128,127,127,183,33,30,29,103,128,61,234,165,41,29,193,33,207,41,165,165,55,81,157,157,8,81,11,27,8,8,98,96,142,145,41,179,112,62,180,206,206,165,39,241,45,151,26,197,102,192,125,128,67,128,69,128,197,33,125,102,13,103,25,30,12,30,12,30,25,77,12,25,180,27,10,69,235,228,343,118,69,41,8,69,175,25,69,25,125,41,25,41,8,155,146,155,146,155,206,168,128,157,27,273,211,211,168,11,173,154,77,173,77,102,102,102,8,85,95,102,157,28,122,234,122,157,235,222,241,10,91,179,25,13,25,41,25,206,41,6,41,158,206,206,33,296,296,33,228,69,8,114,148,33,29,66,27,27,30,233,54,173,108,106,108,108,53,103,33,33,33,176,27,27,205,164,105,237,41,27,72,165,29,29,259,132,132,132,364,71,71,27,94,160,127,51,234,55,27,95,94,165,55,55,41,0,41,128,4,123,173,6,164,157,121,121,154,86,164,164,25,93,164,25,164,210,284,62,93,30,25,25,30,30,260,130,25,125,57,53,166,166,166,185,166,158,94,113,215,159,62,99,21,172,99,184,62,259,4,21,21,77,62,173,41,146,6,41,128,121,41,11,121,103,159,164,175,206,91,103,164,72,25,129,72,206,129,33,103,102,102,29,13,11,251,234,135,31,8,123,65,91,121,129,65,243,10,91,8,65,70,228,220,243,91,10,10,30,178,91,178,33,21,25,235,165,11,161,158,27,27,30,128,75,36,30,36,36,173,25,33,178,112,162,112,112,112,162,33,33,178,123,123,39,106,91,106,106,158,106,106,284,39,230,21,228,11,21,228,159,241,62,10,62,10,68,234,39,39,138,62,22,27,183,22,215,10,175,175,353,228,42,193,175,175,27,98,27,193,150,27,173,17,233,233,25,102,123,152,242,108,4,94,176,13,41,219,17,151,22,103,103,53,128,233,284,25,265,128,39,39,138,42,39,21,86,95,127,29,91,46,103,103,215,25,123,123,230,25,193,180,30,60,30,242,136,180,193,30,206,180,60,165,206,193,165,123,164,103,68,25,70,91,25,82,53,82,186,53,82,53,25,30,282,91,13,234,160,160,126,149,36,36,160,149,178,160,39,294,149,149,160,39,95,221,186,106,178,316,267,53,53,164,159,164,165,94,228,53,52,178,183,53,294,128,55,140,294,25,95,366,15,304,13,183,77,230,6,136,235,121,311,273,36,158,235,230,98,201,165,165,165,91,175,248,39,185,128,39,39,128,313,91,36,219,130,25,130,234,234,130,234,121,205,304,94,77,64,259,60,60,60,77,242,60,145,95,270,18,91,199,159,91,235,58,249,26,123,114,29,15,191,15,30,55,55,347,4,29,15,4,341,93,7,30,23,7,121,266,178,261,70,169,25,25,158,169,25,169,270,270,13,128,327,103,55,128,103,136,159,103,327,41,32,111,111,114,113,215,173,25,173,180,114,173,173,98,93,25,160,157,159,160,159,159,160,320,35,193,221,33,36,136,248,91,215,125,215,156,68,125,125,1,287,123,94,30,184,13,30,94,123,206,12,206,289,128,122,184,128,289,178,29,26,206,178,65,206,128,192,102,197,36,94,94,155,10,36,121,280,121,368,192,121,121,179,121,36,54,192,121,192,197,118,123,224,118,10,192,10,91,269,91,49,206,184,185,62,8,49,28930,5,55,30,42,39,220,298,42,347,42,234,42,70,42,55,321,129,172,173,172,13,98,
129,325,235,284,362,129,233,345,175,261,175,60,261,58,289,99,99,99,206,99,36,175,29,25,432,125,264,168,173,69,158,273,179,164,69,158,69,8,95,192,30,164,101,44,53,273,335,273,53,45,128,45,234,123,105,103,103,224,36,90,211,282,264,91,228,91,166,264,228,398,50,101,91,264,73,36,25,73,50,50,242,36,36,58,165,204,353,165,125,320,128,298,298,180,128,60,102,30,30,53,179,234,325,234,175,21,250,215,103,21,21,250,91,211,91,313,301,323,215,228,160,29,29,81,53,180,146,248,66,159,39,98,323,98,36,95,218,234,39,82,82,230,62,13,62,230,13,30,98,0,8,98,8,98,91,267,121,197,30,78,27,78,102,27,298,160,103,264,264,264,175,17,273,273,165,31,160,17,99,17,99,234,31,17,99,36,26,128,29,214,353,264,102,36,102,264,264,273,273,4,16,138,138,264,128,313,25,420,60,10,280,264,60,60,103,178,125,178,29,327,29,36,30,36,4,52,183,183,173,52,31,173,31,158,31,158,31,9,31,31,353,31,353,173,415,9,17,222,31,103,31,165,27,31,31,165,27,27,206,31,31,4,4,30,4,4,264,185,159,310,273,310,173,40,4,173,4,173,4,250,250,62,188,119,250,233,62,121,105,105,54,103,111,291,236,236,103,297,36,26,316,69,183,158,206,129,160,129,184,55,179,279,11,179,347,160,184,129,179,351,179,353,179,129,129,351,11, 111,93,93,235,103,173,53,93,50,111,86,123,94,36,183,60,55,55,178,219,253,321,178,235,235,183,183,204,321,219,160,193,335,121,70,69,295,159,297,231,121,231,136,353,136,121,279,215,366,215,353,159,353,353,103,31,31,298,298,30,30,165,273,25,219,35,165,259,54,36,54,54,165,71,250,327,13,289,165,196,165,165,94,233,165,94,60,165,96,220,166,271,158,397,122,53,53,137,280,272,62,30,30,30,105,102,67,140,8,67,21,270,298,69,173,298,91,179,327,86,179,88,179,179,55,123,220,233,94,94,175,13,53,13,154,191,74,83,83,325,207,83,74,83,325,74,316,388,55,55,364,55,183,434,273,273,273,164,213,11,213,327,321,21,352,185,103,13,13,55,30,323,123,178,435,178,30,175,175,30,481,527,175,125,232,306,232,206,306,364,206,270,206,232,10,30,130,160,130,347,240,30,136,130,347,136,279,298,206,30,103,273,241,70,206,306,434,206,94,94,156,161,321,321,64,161,13,183,183,83,161,13,169,13,159,36,173,159,36,36,230,235,235,159,159,335,312,42,342,264,39,39,39,34,298,36,36,252,164,29,493,29,387,387,435,493,132,273,105,132,74,73,206,234,273,206,95,15,280,280,280,280,397,273,273,242,397,280,397,397,397,273,397,280,230,137,353,67,81,137,137,353,259,312,114,164,164,25,77,21,77,165,30,30,231,234,121,234,312,121,364,136,123,123,136,123,136,150,264,285,30,166,93,30,39,224,136,39,355,355,397,67,67,25,67,25,298,11,67,264,374,99,150,321,67,70,67,295,150,29,321,150,70,29,142,355,311,173,13,253,103,114,114,70,192,22,128,128,183,184,70,77,215,102,292,30,123,279,292,142,33,215,102,468,123,468,473,30,292,215,30,213,443,473,215,234,279,279,279,279,265,443,206,66,313,34,30,206,30,51,15,206,41,434,41,398,67,30,301,67,36,3,285,437,136,136,22,136,145,365,323,323,145,136,22,453,99,323,353,9,258,323,231,128,231,382,150,420,39,94,29,29,353,22,22,347,353,39,29,22,183,8,284,355,388,284,60,64,99,60,64,150,95,150,364,150,95,150,6,236,383,544,81,206,388,206,58,159,99,231,228,363,363,121,99,121,121,99,422,544,273,173,121,427,102,121,235,284,179,25,197,25,179,511,70,368,70,25,388,123,368,159,213,410,159,236,127,159,21,373,184,424,327,250,176,176,175,284,316,176,284,327,111,250,284,175,175,264,111,176,219,111,427,427,176,284,427,353,428,55,184,493,158,136,99,287,264,334,264,213,213,292,481,93,264,292,295,295,6,367,279,173,308,285,158,308,335,299,137,137,572,41,137,137,41,94,335,220,36,224,420,36,265,265,91,91,71,123,264,91,91,123,107,30,22,292,35,241,356,298,14,298,441,35,121,71,63,130,63,488,363,71,63,307,194,71,71,220,121,125,71,220,71,71,71,71,235,265,353,128,155,128,420,400,130,173,183,183,184,130,173,183,13,183,130,130,183,183,353,353,183,242,183,183,306,324,324,321,306,321,6,6,128,306,242,242,306,183,183,6,183,321,486,183,164,30,78,138,158,138,34,206,362,55,70,67,21,375,136,298,81,298,298,298,230,121,30, 230,311,240,311,311,158,204,136,136,184,136,264,311,311,312,312,72,311,175,264,91,175,264,121,461,312,312,238,475,350,512,350,312,313,350,312,366,294,30,253,253,253,388,158,388,22,388,
22,388,103,321,321,253,7,437,103,114,242,114,114,242,114,114,242,242,242,306,242,114,7,353,335,27,241,299,312,364,506,409,94,462,230,462,243,230,175,175,462,461,230,428,426,175,175,165,175,175,372,183,572,102,85,102,538,206,376,85,85,284,85,85,284,398,83,160,265,308,398,310,583,289,279,273,285,490,490,211,292,292,158,398,30,220,169,368,368,368,169,159,368,93,368,368,93,169,368,368,443,368,298,443,368,298,538,345,345,311,178,54,311,215,178,175,222,264,475,264,264,475,478,289,63,236,63,299,231,296,397,299,158,36,164,164,21,492,21,164,21,164,403,26,26,588,179,234,169,465,295,67,41,353,295,538,161,185,306,323,68,420,323,82,241,241,36,53,493,301,292,241,250,63,63,103,442,353,185,353,321,353,185,353,353,185,409,353,589,34,271,271,34,86,34,34,353,353,39,414,4,95,95,4,225,95,4,121,30,552,136,159,159,514,159,159,54,514,206,136,206,159,74,235,235,312,54,312,42,156,422,629,54,465,265,165,250,35,165,175,659,175,175,8,8,8,8,206,206,206,50,435,206,432,230,230,234,230,94,299,299,285,184,41,93,299,299,285,41,285,158,285,206,299,41,36,396,364,364,120,396,514,91,382,538,807,717,22,93,412,54,215,54,298,308,148,298,148,298,308,102,656,6,148,745,128,298,64,407,273,41,172,64,234,250,398,181,445,95,236,441,477,504,102,196,137,364,60,453,137,364,367,334,364,299,196,397,630,589,589,196,646,337,235,128,128,343,289,235,324,427,324,58,215,215,461,425,461,387,440,285,440,440,285,387,632,325,325,440,461,425,425,387,627,191,285,440,308,55,219,280,308,265,538,183,121,30,236,206,30,455,236,30,30,705,83,228,280,468,132,8,132,132,128,409,173,353,132,409,35,128,450,137,398,67,432,423,235,235,388,306,93,93,452,300,190,13,452,388,30,452,13,30,13,30,306,362,234,721,635,809,784,67,498,498,67,353,635,67,183,159,445,285,183,53,183,445,265,432,57,420,432,420,477,327,55,60,105,183,218,104,104,475,239,582,151,239,104,732,41,26,784,86,300,215,36,64,86,86,675,294,64,86,528,550,493,565,298,230,312,295,538,298,295,230,54,374,516,441,54,54,323,401,401,382,159,837,159,54,401,592,159,401,417,610,264,150,323,452,185,323,323,185,403,185,423,165,425,219,407,270,231,99,93,231,631,756,71,364,434,213,86,102,434,102,86,23,71,335,164,323,409,381,4,124,41,424,206,41,124,41,41,703,635,124,493,41,41,487,492,124,175,124,261,600,488,221,488,261,206,677,261,308,723,908,704,691,723,488,488,441,136,476,312,136,550,572,728,550,22,312,312,22,55,413,183,280,593,l91,36,36,427,36,695,592,19,544,13,468,13,544,72,437,321,266,461,266,441,230,409,93,521,521,345,235,22,142,150,102,569,235,264,91,521,264,7,102,7,498,521,235,537,235,6,241,420,420,631,41,527,103,67,337,62,264,527,131,67,174,263,264,36,36,263,581,253,465,160,286,91,160,55,4,4,631,631,608,365,465,294 427,427,335,669,669,129,93,93,93,93,74,66,758,504,347,130,505,504,143,505,550,222,13,352,529,291,538,50,68,269,130,295,130,511,295,295,130,486,132,61,206,185,368,669,22,175,492,207,373,452,432,327,89,550,496,611,527,89,527,496,550,516,516,91,136,538,264,264,124,264,264,264,264,264,535,264,150,285,398,285,582,398,475,81,694,694,64,81,694,234,607,723,513,234,64,581,64,124,64,607,234,723,717,367,64,513,607,488,183,488,450,183,550,286,183,363,286,414,67,449,449,366,215,235,95,295,295,41,335,21,445,225,21,295,372,749,461,534,481,397,427,427,427,714,481,714,427,717,165,245,486,415,245,415,486,274,415,441,456,300,548,300,422,422,757,11,74,430,430,136,409,430,749,191,819,592,136,364,465,231,231,918,160,589,160,160,465,465,231,157,538,538,259,538,326,22,22,22,179,22,22,550,179,287,287,417,327,498,498,287,488,327,538,488,583,488,287,335,287,335,287,41,287,335,287,327,441,335,287,488,538,327,498,8,8,374,8,64,427,8,374,417,760,409,373,160,423,206,160,106,499,160,271,235,160,590,353,695,478,619,590,353,13,63,189,420,605,427,643,121,280,415,121,415,595,417,121,398,55,330,463,463,123,353,330,582,309,582,582,405,330,550,405,582,353,309,308,60,353,7,60,71,353,189,183,183,183,582,755,189,437,287,189,183,668,481,384,384,481,481,481 477,582,582,499,650,481,121,461,231,36,235,36,413,235,209,36,689,114,353,353,235,592,36,353,413,209,70,308,70,699,308,70,213,292,86,689,465,55,508,128,
452,29,41,681,573,352,21,21,648,648,69,509,409,21,264,21,509,514,514,409,21,264,443,443,427,160,433,663,433,231,646,185,482,646,433,13,398,172,234,42,491,172,234,234,832,775,172,196,335,822,461,298,461,364,1120,537,169,169,364,694,219,612,231,740,42,235,321,279,960,279,353,492,159,572,321,159,287,353,287,287,206,206,321,287,159,321,492,159,55,572,600,270,492,784,173,91,91,443,443,582,261,497,572,91,555,352,206,261,555,285,91,555,497,83,91,619,353,488,112,4,592,295,295,488,235,231,769,568,581,671,451,451,483,299,1011,432,422,207,106,701,508,555,508,555,125,870,555,589,508,125,749,482,125,125,130,544,643,643,544,488,22,643,130,335,544,22,130,544,544,488,426,426,4,180,4,695,35,54,433,500,592,433,262,94,401,401,106,216,216,106,521,102,462,518,271,475,365,193,648,206,424,206,193,206,206,424,299,590,590,364,621,67,538,488,567,51,51,513,194,81,488,486,289,567,563,749,563,338,338,502,563,822,338,563,338,502,201,230,201,533,445,175,201,175,13,85,960,103,85,175,30,445,445,175,573,196,877,287,356,678,235,489,312,572,264,717,138,295,6,295,523,55,165,165,295,138,663,6,295,6,353,138,6,138,169,129,784,12,129,194,605,784,445,234,627,563,689,627,647,570,627,570,647,206,234,215,234,816,627,816,234,627,215,234,627,264,427,427,30,424,161,161,916,740,180,616,481,514,383,265,481,164,650,121,582,689,420,669,589,420,788,549,165,734,280,224,146,681,788,184,398,784,4,398,417,417,398,636,784,417,81,398,417,81,185,827,420,241,420,41,185,185,718,241,101,185,185,241,241,241,241,241,185,324,420,420,1011,420,827,241,184,563,241,183,285,529,285,808,822,891,822,488,285,486,619,55,869,39,567,39,289,203,158,289,710,818,158,818,355,29,409,203,308,648,792,308,308,91,308,6,592,792,106,106,308,41,178,91,751,91,259,734,166,36,327,166,230,205,205,172,128,230,432,623,838,623,432,278,432,42,916,432,694,623,352,452,93,314,93,93,641,88,970,914,230,61,159,270,159,493,159,755,159,409,30,30,836,128,241,99,102,984,538,102,102,273,639,838,102,102,136,637,508,627,285,465,327,327,21,749, 327,749,21,845,21,21,409,749,1367,806,616,714,253,616,714,714,112,375,21,112,375,375,51,51,51,51,393,206,870,713,193,802,21,1061,42,382,42,543,876,42,876,6,382,696,543,635,490,353,353,417,64,1257,271,64,377,127,127,537,417,905,353,538,465,605,876,427,324,514,852,427,53,427,557,173,173,7,1274,563,31,31,31,745,392,289,230,230,230,91,218,327,420,420,128,901,552,420,230,608,552,476,347,476,231,159,137,716,648,716,627,740,718,679,679,6,718,740,6,189,679,125,159,757,1191,409,175,250,409,67,324,681,605,550,398,550,931,478,174,21,316,91,316,654,409,425,425,699,61,699,321,698,321,698,61,425,699,321,409,699,299,335,321,335,61,698,699,654,698,299,425,231,14,121,515,121,14,165,81,409,189,81,373,465,463,1055,507,81,81,189,1246,321,409,886,104,842,689,300,740,380,656,656,832,656,380,300,300,206,187,175,142,465,206,271,468,215,560,83,215,83,215,215,83,175,215,83,83,111,206,756,559,756,1367,206,559,1015,559,559,946,1015,548,559,756,1 043,756,698,159,414,308,458,997,663,663,347,39,755,838,323,755,323,159,159,717,159,21,41,128,516,159,717,71,870,755,159,740,717,374,516,740,51,148,335,148,335,791,120,364,335,335,51,120,251,538,251,971,1395,538,78,178,538,538,918,129,918,129,538,538,656,129,538,538,129,538,1051,538,128,838,931,998,823,1095,334,870,334,367,550,1061,498,745,832,498,745,716,498,498,128,997,832,716,832,130,642,616,497,432,432,432,432,642,159,432,46,230,788,160,230,478,46,693,103,920,230,589,643,160,616,432,165,165,583,592,838,784,583,710,6,583,583,6,35,230,838,592,710,6,589,230,838,30,592,583,6,583,6,6,583,30,30,6,375,375,99,36,1158,425,662,417,681,364,375,1025,538,822,669,893,538,538,450,409,632,527,632,563,632,527,550,71,698,550,39,550,514,537,514,537,111,41,173,592,173,648,173,173,173,1011,514,173,173,514,166,648,355,161,166,648,497,327,327,550,650,21,425,605,555,103,425,605,842,836,1011,636,138,756,836,756,756,353,1011,636,636,1158,741,741,842,756,741,1011,677,1011,770,366,306,488,920,920,665,775,502,500,775,775,648,364,833,207,13,93,500,364,500,665,500,93,295,183,1293,313,272,313,279,303,93,516,93,1013,381,6,93,
93,303,259,643,168,673,230,1261,230,230,673,1060,1079,1079,550,741,741,590,527,741,741,442,741,442,848,741,590,925,219,527,925,335,442,590,239,590,590,590,239,527,239,1033,230,734,241,741,230,549,548,1015,1015,32,36,433,465,724,465,73,73,73,465,808,73,592,1430,250,154,154,250,538,353,353,353,353,353,175,194,206,538,632,1163,960,175,175,538,452,632,1163,175,538,960,194,175,194,632,960,632,94,632,461,960,1163,1163,461,632,960,755,707,105,382,625,382,382,784,707,871,559,387,387,871,784,559,784,88,36,570,314,1028,975,335,335,398,573,573,573,21,215,562,738,612,424,21,103,788,870,912,23,186,757,73,818,23,73,563,952,262,563,137,262,1022,952,137,1273,442,952,604,137,308,384,913,235,325,695,398,95,668,776,713,309,691,22,10,364,682,682,578,481,1252,1072,1252,825,578,825,1072,1149,592,273,387,273,427,155,1204,50,452,50,1142,50,367,452,1142,611,367,50,50,367,50,1675,99,367,50,1501,1099,830,681,689,917,1089,453,425,235,918,538,550,335,161,387,859,324,21,838,859,1123,21,723,21,335,335,206,21,364,1426,21,838,838,335,364,21,21,859,920,838,838,397,81,639,397,397,588,933,933,784,222,830,36,36,222,1251,266,36,146,266,366,581,605,366,22,966,681,681,433,730,1013,550,21,21,938,488,516,21,21,656,420,323,323,323,327,323,918,581,581,830,361,830,364,259,364,496,496,364,691,705,691,475,427,1145,600,179,427,527,749,869,689,335,347,220,298,689,1426,183,554,55,832,550,550,165,770,957,67,1386,219,683,683,355,683,355,355,738,355,842,931,266,325,349,256,1113,256,423,960,554,554,325,554,508,22,142,22,508,916,767,55,1529,767,55,1286,93,972,550,931,1286,1286,972,93,1286,1392,890,93,1286,93,1286,972,374,931,890,808,779,975,975,175,173,4,681,383,1367,173,383,1367,383,173,175,69,238,146,238,36,148,888,238,173,238,148,238,888,185,925,925,797,925,815,925,469,784,289,784,925,797,925,925,1093,925,925,925,1163,797,797,815,925,1093,784,636,663,925,187,922,316,1380,709,916,916,187,355,948,916,187,916,916,948,948,916,355,316,316,334,300,1461,36,583,1179,699,235,858,583,699,858 699,1189,1256,1189,699,797,699,699,699,699,427,488,427,488,175,815,656,656,150,322,465,322,870,465,1099,582,665,767,749,635,749,600,1448,36,502,235,502,355,502,355,355,355,172,355,355,95,866,425,393,1165,42,42,42,393,939,909,909,836,552,424,1333,852,897,1426,1333,1446,1426,997,1011,852,1198,55,32,239,588,681,681,239,1401,32,588,239,462,286,1260,984,1160,960,960,486,828,462,960,1199,581,850,663,581,751,581,581,1571,252,252,1283,264,430,264,430,430,842,252,745,21,307,681,1592,488,857,857,1161,857,857,857,138,374,374,1196,374,1903,1782,1626,414,112,1477,1040,356,775,414,414,112,356,775,435,338,1066,689,689,1501,689,1249,205,689,765,220,308,917,308,308,220,327,387,838,917,917,917,220,662,308,220,387,387,220,220,308,308,308,387,1009,1745,822,279,554,1129,543,383,870,1425,241,870,241,383,716,592,21,21,592,425,550,550,550,427,230,57,483,784,860,57,308,57,486,870,447,486,433,433,870,433,997,486,443,433,433,997,486,1292,47,708,81,895,394,81,935,81,81,81,374,986,916,1103,1095,465,495,916,667,1745,518,220,1338,220,734,1294,741,166,828,741,741,1165,1371,1371,471,1371,647,1142,1878,1878,1371,1371,822,66,327,158,427,427,465,465,676,676,30,30,676,676,893,1592,93,455,308,582,695,582,629,582,85,1179,85,85,1592,1179,280,1027,681,398,1027,398,295,784,740,509,425,968,509,46,833,842,401,184,401,464,6,1501,1501,550,538,883,538,883,883,883,1129,550,550,333,689,948,21,21,241,2557,2094,273,308,58,863,893,1086,409,136,1086,592,592,830,830,883,830,277,68,689,902,277,453,507,129,689,630,664,550,128,1626,1626,128,902,312,589,755,755,589,755,407,1782,589,784,1516,1118,407,407,1447,589,235,755,1191,235,235,407,128,589,1118,21,383,1331,691,481,383,1129,1129,1261,1104,1378,1129,784,1129,1261,1129,947,1129,784,784,1129,1129,35,1104,35,866,1129,1129,64,481,730,1260,481,970,481,481,481,481,863,481,681,699,863,486,681,481,481,55,55,235,1364,944,632,822,401,822,952,822,822,99,550,2240,550,70,891,860,860,550,550,916,1176,1530,425,1530,916,628,1583,916,628,916,916,628,628,425,916,1062,1265,916,916,916,280,461,916,916,1583,628,1062,916,916,
677,1297,924,1260,83,1260,482,433,234,462,323,1656,997,323,323,931,838,931,1933,1391,367,323,931,1391,1391,103,1116,1116,1116,769,1195,1218,312,791,312,741,791,997,312,334,334,312,287,287,633,1397,1426,605,1431,327,592,705,1194,592,1097,1118,1503,1267,1267,1267,618,1229,734,1089,785,1089,1129,1148,1148,1089,915,1148,1129,1148,1011,1011,1229,871,1560,1560,1560,563,1537,1009,1560,632,985,592,1308,592,882,145,145,397,837,383,592,592,832,36,2714,2107,1588,1347,36,36,1443,1453,334,2230,1588,1169,650,1169,2107,425,425,891,891,425,2532,679,274,274,274,325,274,1297,194,1297,627,314,917,314,314,1501,414,1490,1036,592,1036,1025,901,1218,1025,901,280,592,592,901,1461,159,159,159,2076,1066,1176,1176,516,327,516,1179,1176,899,1176,1176,323,1187,1229,663,1229,504,1229,916,1229,916,1661,41,36,278,1027,648,648,648,1626,648,646,1 179,1580,1061,1514,1008,1741,2076,1514,1008,952,1089,427,952,427,1083,425,427,1089,1083,425,427,425,230,920,1678,920,1678,189,189,953,189,133,189,1075,189,189,133,1264,725,189,1629,189,808,23 0,230,2179,770,230,770,230,21,21,784,1118,230,230,230,770,1118,986,808,916,30,327,918,679,414,916,1165,1355,916,755,733,433,1490,433,433,433,605,433,433,433,1446,679,206,433,21,2452,206,206,433,1894,206,822,206,2073,206,206,21,822,21,206,206,21,383,1513,375,1347,432,1589,172,954,242,1256,1256,1248,1256,1256,1248,1248,1256,842,13,592,13,842,1291,592,21,175,13,592,13,13,1426,13,1541,445,808,808,863,647,219,1592,1029,1225,917,1963,1129,555,1313,550,660,550,220,660,552,663,220,533,220,383,550,1278,1495,636,842,1036,425,842,425,1537,1278,842,554,1508,636,554,301,842,792,1392,1021,284,1172,997,1021,103,1316,308,1210,848,848,1089,1089,848,848,67,1029,827,1029,2078,827,1312,1029,827,590,872,1312,427,67,67,67,67,872,827,872,2126,1436,26,2126,67,1072,2126,1610,872,1620,883,883,1397,1189,555,555,563,1189,555,640,555,640,1089,1089,610,610,1585,610,1355,610,1015,616,925,1015,482,230,707,231,888,1355,589,1379,151,931,1486,1486,393,235,960,590,235,960,422,142,285,285,327,327,442,2009,822,445,822,567,888,2611,1537,323,55,1537,323,888,2611,323,1537,323,58,445,593,2045,593,58,47,770,842,47,47,842,842,648,2557,173,689,2291,1446,2085,2557,2557,2291,1780,1535,2291,2391,808,691,1295,1165,983,9248,2000,948,983,983,2225,2000,983,983,705,948,2000,1795,1592,478,592,1795,1795,663,478,1790,478,592,1592,173,901,312,4,1606,173,838,754,754,128,550,1166,551,1480,550,550,1875,1957,1166,902,1875,550,550,551,2632,551,1875,1875,551,2891,2159,2632,3231,551,815,150,1654,1059,1059,734,770,555,1592,555,2059,770,770,1803,627,627,627,2059,931,1272,427,1606,1272,1606,1187,1204,397,822,21,1645,263,263,822,263,1645,280,263,605,1645,2014,21,21,1029,263,1916,2291,397,397,496,270,270,1319,264,1638,264,986,1278,1397,1278,1191,409,1191,740,1191,754,754,387,63,948,666,666,1198,548,63,1248,285,1248,169,1248,1248,285,918,224,285,1426,1671,514,514,717,514,51,1521,1745,51,605,1191,51,128,1191,51,51,1521,267,513,952,966,1671,897,51,71,592,986,986,1121,592,280,2000,2000,1165,1165,1165,1818,222,1818,1165,1252,506,327,443,432,1291,1291,2755,1413,520,1318,227,1047,828,520,347,1364,136,136,452,457,457,132,457,488,1087,1013,2225,32,1571,2009,483,67,483,740,740,1013,2854,866,32,2861,866,887,32,2444,740,32,32,866,2225,866,32,1571,2627,32,850,1675,569,1158,32,1158,1797,2641,1565,1158,569,1797,1158,1797,55,1703,42,55,2562,675,1703,42,55,749,488,488,347,1206,1286,1286,488,488,1206,1286,1206,1286,550,550,1790,860,550,2452,550,550,2765,1089,1633,797,2244,1313,194,2129,194,194,194,818,32,194,450,1313,2387,194,1227,2387,308,2232,526,476,278,830,830,194,830,194,278,194,714,476,830,714,830,278,830,2532,1218,1759,1446,960,1747,187,1446,1759,960,105,1446,1446,1271,1446,960,960,1218,1446,1446,105,1446,960,488,1446,427,534,842,1969,2460,1 969,842,842,1969,427,941,2160,427,230,938,2075,1675,1675,895,1675,34,129,1811,239,749,1957,2271,749,1908,129,239,239,129,129,2271,2426,1355,1756,194,1583,194,194,1583,194,1355,194,1628,2221,1269,2425,1756,1355,1355,1583,1033,427,582,30,582,582,935,1444,1962,915,733,915,938,1962,767,
353,1630,1962,1962,563,733,563,733,353,822,1630,740,2076,2076,2076,589,589,2636,866,589,947,1528,125,273,1058,1058,1161,1635,1355,1161,1161,1355,1355,650,1260,1206,784,784,784,784,784,412,461,412,2240,412,679,891,461,679,679,189,189,1933,1651,2515,189,1386,538,1386,1386,1187,1386,2423,2601,2285,175,175,2331,194,3079,384,538,2365,2294,538,2166,1841,3326,1256,3923,976,85,550,550,1295,863,863,550,1249,550,1759,146,1069,920,2633,885,885,1514,1489,166,1514,2041,885,2456,885,2041,1081,1948,362,550,94,324,2308,94,2386,94,550,874,1329,1759,2280,1487,493,493,2099,2599,1431,1086,1514,1086,2099,1858,368,1330,2599,1858,2846,2846,2907,2846,713,713,1854,1123,713,713,3010,1123,3010,538,713,1123,447,822,555,2011,493,508,2292,555,1736,2135,2704,555,2814,555,2000,555,555,822,914,327,679,327,648,537,2263,931,1496,537,1296,1745,1592,1658,1795,650,1592,1745,1745,1658,1592,1745,1592,1745,1658,1338,2124,1592,1745,1745,1745,837,1726,2897,1118,1118,230,1118,1118,1118,1388,1748,514,128,1165,931,514,2974,2041,2387,2041,979,185,36,1269,550,173,812,36,1165,2676,2562,1473,2885,1982,1578,1578,383,383,2360,383,1578,2360,1584,1982,1578,1578,1578,2019,1036,355,724,2023,205,303,355,1036,1966,355,1036,401,401,401,830,401,849,578,401,849,849,578,1776,1123,552,2632,808,1446,1120,373,1529,1483,1057,893,1284,1430,1529,1529,2632,1352,2063,1606,1352,1606,2291,3079,2291,1529,506,838,1606,1606,1352,1529,1529,1483,1529,1606,1529,259,902,259,902,612,612,284,398,2991,1534,1118,1118,1118,1118,1118,734,284,2224,398,734,284,734,398,3031,398,734,1707,2643,1344,1477,475,1818,194,1894,691,1528,1184,1207,1501,6,2069,871,2069,3548,1443,2069,2685,3265,1350,3265,2069,2069,128,1313,128,663,414,1313,414,2000,128,2000,663,1313,699,1797,550,327,550,1526,699,327,1797,1526,550,550,327,550,1426,1426,1426,2285,1123,890,728,1707,728,728,327,253,1187,1281,1364,1571,2170,755,3232,925,1496,2170,2170,1125,443,902,902,925,755,2078,2457,902,2059,2170,1643,1129,902,902,1643,1129,606,36,103,338,338,1089,338,338,338,1089,338,36,340,1206,1176,2041,833,1854,1916,1916,1501,2132,1736,3065,367,1934,833,833,833,2041,3017,2147,818,1397,828,2147,398,828,818,1158,818,689,327,36,1745,2132,582,1475,189,582,2132,1191,582,2132,1176,1176,516,2610,2230,2230,64,1501,537,1501,173,2230,2988,1501,2694,2694,537,537,173,173,1501,537,64,173,173,64,2230,537,2230,537,2230,2230,2069,3142,1645,689,1165,1165,1963,514,488,1963,1145,235,1145,1078,1145,231,2405,552,21,57,57,57,1297,1455,1988,2310,1885,2854,2014,734,1705,734,2854,734,677,1988,1660,734,677,734,677,677,734,2854,1355,677,1397,2947,2386,1698,128,1698,3028,2386,2437,2947,2386,2643,2386,2804,1188,335,746,1187,1187,861,2519,1917,2842,1917,675,1308,234,1917,314,314,2339,2339,2592,2576,902,916,2339,916,2339,916,2339,916,1089,1089,2644,1221,1221,2446,308,308,2225,2225,3192,2225,555,1592,1592,555,893,555,550,770,3622,2291,2291,3419,465,250,2842,2291,2291,2291,935,160,1271,308,325,935,1799,1799,1891,2227,1799,1598,112,1415,1840,2014,1822,2014,677,1822,1415,1415,1822,2014,2386,2159,1822,1415,1822,179,1976,1033,179,1840,2014,1415,1970,1970,1501,563,563,563,462,563,1970,1158,563,563,1541,1238,383,235,1158,383,1278,383,1898,2938,21,2938,1313,2201,2059,423,2059,1313,872,1313,2044,89,173,3327,1660,2044,1623,173,1114,1114,1592,1868,1651,1811,383,3469,1811,1651,869,383,383,1651,1651,3223,2166,3469,767,383,1811,767,2323,3355,1457,3341,2640,2976,2323,3341,2323,2640,103,103,1161,1080,2429,370,2018,2854,2429,2166,2429,2094,2207,871,1963,1963,2023,2023,2336,663,2893,1580,691,663,705,2046,2599,409,2295,1118,2494,1118,1950,549,2494,2453,2046 2494,2453,2046,2453,2046,409,1118,4952,2291,2225,1894,1423,2498,567,4129,1475,1501,795,463,2084,828,828,232,828,232,232,1818,1818,666,463,232,220,220,2162,2162,833,4336,913,35,913,21,2927,886,3037,383,886,876,1747,383,916,916,916,2927,916,1747,837,1894,717,423,481,1894,1059,2262,3206,4700,1059,3304,2262,871,1831,871,3304,1059,1158,1934,1158,756,1511,41,978,1934,2603,720,41,756,41,325,2611,1158,173,1123,1934,1934,1511,2045,2045,2045,1423,3206,3691,2512,3206,
2512,2000,1811,2504,2504,2611,2437,2437,2437,1455,893,150,2665,1966,605,398,2331,1177,516,1962,4241,94,1252,760,1292,1962,1373,2000,1990,3684,42,1868,3779,1811,1811,2041,3010,5436,1780,2041,1868,1811,1780,1811,1868,1811,2041,1868,1811,5627,4274,1811,1868,4602,1811,1811,1474,2665,235,1474,2665
附錄B.1用于表V0的值這些值表示用于上述應(yīng)用中小節(jié)B.5.4.1所述的表V0的示例值集。每個(gè)條目是10進(jìn)制表示的32-比特整數(shù)。值的順序是從第一列的頂部到第一列的底部,然后是第二列的頂部,依此類推。
2512911363676575285 1255426612 13885368022135898973952231631 2581671944 4213663089 4160398285 27346389323370958628 3312220480 1521339547 3322241130 11297214784070167936 681232419 3041843489 2068983570 3187422815123631495307306866 4201304942247491078 28591786113351110283 4112503940 10677091 3669524410 32843084113218676425 1158111502 5156231761575146607 38197927002011642291 709227802 3457502702 82802986435575267337746032182724140433 2115821274 3732001371 4518744762402805061 4201101115 2720124766 3422026452 17405760811004366930 4215970289 3242576090 3370954177 35928387011843948209 4048876515 8543101084006626915 17094295134288911323031661061 42597398754381222037029183793746331984 1909085522 3258323821243116171 35333513281591258008 510985033 1796851292 3928372514 16416607453067016507 1361682810 2462744411 2791443445 1793502581433388735 129243379 1976681690 4081325272 23805201125040054983142379587 1408671665 2280435605 39361639042032657933 2569842483 1228817808 88561607336852562043419319784 3033268270 3917210003 61645209731562522162805686246 1658118006 2639766453188863436 18542589013102436986 932109358 2593736473 2780382310 28616410193808671154 1982290045 2471651269 2340014831 31766112982501582075 2983082771 4291353919 1208439576 8347875543978944421 3007670818 6507929402583563093313538072460439493448104768 1191583883 3837963200 5178581034016898363 683749698 3046561335 2075009450 3010168884649743608778296777 2466530435 3214181212 40126420011974987508 1399125101 2545983082 3303882142 22171880752651273766 1939403708 96916843688081325237569431372357956801 1692176003 2019348792 1355575717 30778825906896051123868299200 2268075521 20723148420549951997158071721422476658 1169345068 2420803184 30814431292722736134 593093658 3250240009 35892336838953988121919391881878973865 3963499681 1617557768 11410975433535520147 2526292949 2560755113 3272161958 23762610533277019569 1591602827 9111823961771154147 26268982551470435941 3986158854 7608424092842106362 25547030763763101702 3964389521 3569308693 1751209208 4012337893232409631 2695031039 2687243553 1421030790 14600499221227011631942050155 3818546656583166816780839523920852693 424618399 2613828404 19406583910649907377822469471347204291 2761078866 3241510581 9409097843721213102669179716 1456668111 38625260 16733967802995604341 2434425874 8837600913018753955288817832045698575 540801947 3294951678 4176141739 17125474462332962102 1384069776 1604598575 29731293036296856524005368743 4123580443 1985308198 2137802113 13583075112185963471523670218 1014570543 15029842053415381967 2708475297 2724959607 36693766224207612806 1046771089 3062518035 37284770368611176712229796016 3115293053 234652930
附錄B.2用于表V1的值這些值表示用于上述應(yīng)用中小節(jié)B.5.4.1所述的表V1的示例值集。每個(gè)條目是10進(jìn)制表示的32-比特整數(shù)。值的順序是從第一列的頂部到第一列的底部,然后是第二列的頂部,依此類推。
8073854133843885867 3545667983 644189126 9226739382043073223 4201106668 332038910 226475395 38774301023336749796 415906198976628269 307789415 34223919381302105833 19296841 3123492423 119610563114143472952278607931 2402488407 3041418372 319169183919710546085410150202137119134 2258059298 782852669 30617980541684564270 1744097284 2139377204 16085078138305550963727093345799656373243642973 184768590028229051413508252125 2037662632 3226247917 40697668761670331901768346005 8521736103674004636 393154864110791394281270451292 2681403713 2698992189 252647101142101267232603029534 1047144830 3453843574 766865139 35937978042049387273 2982173936 1963216666 21150842884291928903891424859 9102850383509855005 42594113763720939502152948345 418775776520 2358481858 332368343617791877704114760273 2589870048 747331248 568512177 33121892879151803109894488871957348676 37366014192043493483754787998 3292758024 1097574450 18002768984524215687005038265063227192435697214 401245839528005404622131559305 1760107383870972145 1823982 37331090441308908630 1865471968 1888833893 27980198 12350824232244373502619324712 2914085525 202383996617653195564065424007 5648294424161315584 869505096 31747297803638665944 1996870325 1273113343 431161506 37629944751679385496 3396975933269644828 102480402331719624883431345226 4071072948 3681293816 18538693074421608261779595665 3618966336 412536684 33935379831983496223068494238 2111320126 1156034077 1500703614459426371424062773 1093955153 3823026442 3019471560132408631 11033448464 9579786961066971017 135108695529018685994050396853 8920105603598330293 30969336316788600403302235052 1854601078 1979273937 303463498838122291074206003731873407527 2079029895 2544598006199368212868446243 2498544695 1195045909 123094255111195901413116893862694156259 1071986421 336223079836401216822590479591927339682 2712821515 159984793 35459310324057180909 1650555729 3377754595 491590373 21029491421575367248 1839330472184151095 399387288628282085984151214153 3061444337 750918864 368185562236033780231102497842067387204 2585729879 903593547 41350488963006865921 2289625644249895712 35350624724293710613 3904109414 1832579367 17998032173501256572 1595995433 1192240192 7729841499980074831780701372 946734366 8958631124992882952463145963 3123068818990362751205710710 3072814633174399083 41873221002997199489 3237929991 3549375728 1018560486404174293852995239 1642430184 2346503153044194711 2398693510 1904857554 31831256174866907513754138664 861877404 31900396922686640734 5220741273277825584 5255843572394526209 1463524744267074718 12868344892521660077 4104915256 3122860549 45581037449993987 3029415884 666423581 186918157權(quán)利要求
1.一種編碼用于在通信信道上從源傳送到目標(biāo)的數(shù)據(jù)的方法,所述方法包括從輸入碼元的有序集中產(chǎn)生多個(gè)冗余碼元以如下的確定性過程傳送,即使用第一輸入碼元計(jì)算的第一靜態(tài)碼元集與使用不同于第一輸入碼元的第二輸入碼元計(jì)算的第二靜態(tài)碼元集具有較少的共同成員;以及從包含輸入碼元和冗余碼元的碼元的組合集中產(chǎn)生多個(gè)輸出碼元,其中可能的輸出碼元的數(shù)量比碼元的組合集中的碼元的數(shù)量多得多,其中至少一個(gè)輸出碼元是從碼元的組合集中的一個(gè)以上碼元、并從碼元的組合集中的少于全部碼元的碼元中產(chǎn)生的,從而輸入碼元的有序集可從任何預(yù)定數(shù)量N的輸出碼元中以期望準(zhǔn)確度再生。
2.如權(quán)利要求1所述的方法,還包括在通信信道上傳送多個(gè)輸出碼元。
3.如權(quán)利要求1所述的方法,還包括在存儲(chǔ)介質(zhì)上存儲(chǔ)多個(gè)輸出碼元。
4.如權(quán)利要求1所述的方法,其特征在于,多個(gè)冗余碼元是根據(jù)LPDC碼產(chǎn)生的。
5.如權(quán)利要求1所述的方法,其特征在于,期望準(zhǔn)確度是完全恢復(fù)輸入碼元。
6.如權(quán)利要求1所述的方法,其特征在于,期望準(zhǔn)確度是高概率地完全恢復(fù)輸入碼元。
7.如權(quán)利要求1所述的方法,其特征在于,期望準(zhǔn)確度是恢復(fù)G個(gè)輸入碼元,其中G比輸入碼元的有序集中的輸入碼元的數(shù)量少。
8.如權(quán)利要求1所述的方法,其特征在于,至多G個(gè)輸入碼元可從任意數(shù)量的輸出碼元中再生,其中G比輸入碼元的有序集中的輸入碼元的數(shù)量少。
9.如權(quán)利要求1所述的方法,其特征在于,產(chǎn)生多個(gè)冗余碼元包括,對(duì)于每個(gè)冗余碼元根據(jù)分布確定t個(gè)不同的輸入碼元;以及按照t個(gè)不同輸入碼元的異或來計(jì)算每個(gè)冗余碼元。
10.如權(quán)利要求1所述的方法,還包括在通信信道上傳送多個(gè)輸出碼元,其中產(chǎn)生多個(gè)輸出碼元的步驟基本上與傳送多個(gè)輸出碼元的步驟并發(fā)地進(jìn)行。
11.如權(quán)利要求1所述的方法,其特征在于,所述多個(gè)冗余碼元包括靜態(tài)碼元、漢明碼元和填充碼元,其中碼元數(shù)量之和被選為質(zhì)數(shù)。
全文摘要
提供了一種編碼用于在通信信道(145)上從源傳送到目標(biāo)的數(shù)據(jù)的方法。該方法在輸入碼元(205)的有序集上運(yùn)算,并包括從輸入碼元(205)產(chǎn)生多個(gè)冗余碼元。該方法還包括從包含輸入碼元和冗余碼元的碼元的組合集中產(chǎn)生多個(gè)輸出碼元,其中可能的輸出碼元的數(shù)量比碼元的組合集中碼元的數(shù)量多得多,其中至少一個(gè)輸出碼元是從碼元的組合集中的一個(gè)以上碼元、并從碼元的組合集中的少于全部碼元的碼元中產(chǎn)生的,從而輸入碼元(205)的有序集可從任何預(yù)定數(shù)量的輸出碼元中以期望準(zhǔn)確度再生。
文檔編號(hào)H04L1/00GK101019326SQ200580001026
公開日2007年8月15日 申請(qǐng)日期2005年5月9日 優(yōu)先權(quán)日2004年5月7日
發(fā)明者M·G·路比, M·A·肖克羅拉希, M·華生 申請(qǐng)人:數(shù)字方敦股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
邹城市| 四子王旗| 玉林市| 深州市| 丹阳市| 临清市| 汉川市| 泾源县| 惠东县| 临沭县| 社会| 犍为县| 兴隆县| 阿瓦提县| 武强县| 若羌县| 武威市| 香河县| 长寿区| 萍乡市| 永修县| 温泉县| 金乡县| 正安县| 康保县| 三江| 连云港市| 伊通| 寻乌县| 鹤山市| 密山市| 张北县| 榆社县| 玉环县| 罗定市| 罗田县| 积石山| 惠安县| 临武县| 宁明县| 永春县|