欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于通信系統(tǒng)的多級(jí)碼發(fā)生器和解碼器的制作方法

文檔序號(hào):7756969閱讀:284來(lái)源:國(guó)知局
專利名稱:用于通信系統(tǒng)的多級(jí)碼發(fā)生器和解碼器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信系統(tǒng)內(nèi)的編碼和解碼,尤其是對(duì)數(shù)據(jù)進(jìn)行編碼和解碼以考慮通信的數(shù)據(jù)內(nèi)的差錯(cuò)和間隔。
在通信信道上發(fā)送者和接收者間的文件傳輸是許多文獻(xiàn)的主題。最好,接收者期望能接收到有一定確信度的發(fā)送者在信道上發(fā)送的數(shù)據(jù)的準(zhǔn)確副本。當(dāng)信道沒(méi)有完美的確信度時(shí)(這是大多數(shù)物理可實(shí)現(xiàn)系統(tǒng)的情況),要考慮的問(wèn)題是如何處理傳輸中的丟失或誤傳。丟失的數(shù)據(jù)(擦除)比受損的數(shù)據(jù)(差錯(cuò))要更容易處理,因?yàn)榻邮照卟荒苤篮螘r(shí)接收到了錯(cuò)誤的受損數(shù)據(jù)。研發(fā)了許多差錯(cuò)糾正編碼以糾正擦除和/或差錯(cuò)。一般,使用的特定碼是基于數(shù)據(jù)發(fā)送通信的信道的不保真度和發(fā)送的數(shù)據(jù)的性質(zhì)而經(jīng)選擇的。例如,在信道有較長(zhǎng)時(shí)間的不保真度時(shí),最適合該情況的是糾突發(fā)差錯(cuò)碼。在只有較短不頻繁的差錯(cuò)時(shí),最好是簡(jiǎn)單的一致校驗(yàn)碼。
在選擇編碼時(shí)的另一考慮是用于傳輸?shù)膮f(xié)議。在稱為“因特網(wǎng)”的全球互連網(wǎng)絡(luò)中,使用分組協(xié)議用于數(shù)據(jù)傳輸。該協(xié)議被稱為互聯(lián)網(wǎng)協(xié)議或簡(jiǎn)稱“IP”。當(dāng)文件或其他數(shù)據(jù)塊在IP網(wǎng)絡(luò)上傳輸時(shí),它被分成等大小的輸入碼元,且輸入碼元被放入連續(xù)的分組。不管輸入碼元是否實(shí)際被分成比特流,輸入碼元的“大小”可以用比特測(cè)量,其中當(dāng)輸入碼元從2M的字母表中選出,輸入碼元大小為M比特。在該種基于分組的通信系統(tǒng)中,面向分組的編碼方案比較合適。如果接收者能在網(wǎng)絡(luò)內(nèi)有擦除的情況下恢復(fù)原始文件的準(zhǔn)確副本,則稱該傳輸是可靠的。在因特網(wǎng)上,分組丟失經(jīng)常發(fā)生,因?yàn)榕及l(fā)的擁塞引起路由器內(nèi)的緩沖機(jī)制達(dá)到其極限,迫使它丟失進(jìn)入的分組。傳輸期間的擦除保護(hù)是許多研究的主題。
傳輸控制協(xié)議(“TCP”)是有確認(rèn)機(jī)制的一種普遍使用的點(diǎn)到點(diǎn)分組控制方案。TCP對(duì)于一到一的通信性能頗佳,其中發(fā)送者和接收者在何時(shí)進(jìn)行傳輸并接收傳輸以及使用的發(fā)射機(jī)和接收機(jī)上取得一致。然而,TCP一般不適合一到多或多到多的通信,其中發(fā)送者和接收者獨(dú)立地確定何時(shí)以及哪里他們會(huì)發(fā)送和接收數(shù)據(jù)。
使用TCP,發(fā)送者發(fā)送排序的分組,接收者確認(rèn)每個(gè)分組的接收。如果丟失了分組,則沒(méi)有確認(rèn)會(huì)被發(fā)送回發(fā)送者,且發(fā)送者會(huì)重發(fā)分組。分組丟失有多個(gè)原因。諸如TCP/IP協(xié)議中,確認(rèn)規(guī)則使得分組不是完全失敗地丟失,因?yàn)閬G失的分組的可以或根據(jù)沒(méi)有確認(rèn)或根據(jù)來(lái)自接收者的顯式請(qǐng)求而被重發(fā)。無(wú)論哪種方法,確認(rèn)協(xié)議要求來(lái)自接收者到發(fā)送者的返回信道,該信道在丟失的分組數(shù)很大時(shí)使用率非常高。
雖然基于確認(rèn)的協(xié)議一般適用于許多應(yīng)用,且實(shí)際上在當(dāng)前的因特網(wǎng)上被廣泛使用,但是它們效率不高,且有時(shí)對(duì)于諸如在給Michael G.Luby的美國(guó)專利號(hào)6307487內(nèi)可以完全不可行,該專利題為“Information Additive CodeGenerator and Decoder for Communication Systems”(以下被稱為“Luby I”)。另外,基于確認(rèn)的協(xié)議不適合廣播,其中一個(gè)發(fā)送者同時(shí)發(fā)送一個(gè)文件到多個(gè)用戶。例如,假設(shè)發(fā)送者在衛(wèi)星信道上廣播一個(gè)文件到多個(gè)接收者。每個(gè)接收者經(jīng)歷不同的分組丟失模式。依賴確認(rèn)數(shù)據(jù)(或是肯定或是否定)以進(jìn)行可靠的文件發(fā)送的確認(rèn)協(xié)議需要來(lái)自每個(gè)接收者到發(fā)送者的返回信道,要提供這些信道代價(jià)極大。另外,這需要復(fù)雜并強(qiáng)大的發(fā)送者以能合適地處理來(lái)自接收者的所有確認(rèn)數(shù)據(jù)。另一缺點(diǎn)是如果不同的接收者丟失不同的分組集合,重新廣播只有一些接收者丟失的分組會(huì)引起其他接收者無(wú)用的重復(fù)分組接收。
有時(shí)在實(shí)際中使用的基于確認(rèn)協(xié)議的另一方法是基于旋轉(zhuǎn)的協(xié)議。旋轉(zhuǎn)協(xié)議將輸入文件分成等長(zhǎng)度的輸入碼元,將每個(gè)輸入碼元放入分組,并連續(xù)循環(huán)通過(guò)并發(fā)送所有分組。該旋轉(zhuǎn)協(xié)議的主要缺點(diǎn)是如果接收者即使丟失了一個(gè)分組,則接收者必須等待整個(gè)循環(huán)才能接收到丟失的那個(gè)分組。另一種角度看,即基于旋轉(zhuǎn)的協(xié)議會(huì)引起大量的無(wú)用復(fù)制數(shù)據(jù)接收。例如,如果接收者接收到來(lái)自旋換開(kāi)始的分組,停止接收一段時(shí)間,然后開(kāi)始在旋轉(zhuǎn)的開(kāi)始再次接收,則會(huì)接收到大量無(wú)用的重復(fù)分組。
一種提出的解決以上問(wèn)題的方案是避免使用基于確認(rèn)的協(xié)議,而是使用前向差錯(cuò)糾正(FEC)碼,諸如Reed-Solomon碼或Tornado碼,或是信息可加碼的鏈?zhǔn)椒磻?yīng)碼以增加可靠性。使用這些編碼,輸出碼元從內(nèi)容中被生成,且被發(fā)送,而不是只發(fā)送組成內(nèi)容的輸入碼元。擦除糾正編碼諸如Reed-Solomon或Tornado編碼為固定長(zhǎng)度的內(nèi)容生成固定數(shù)目的輸出碼元。例如,對(duì)于K個(gè)輸入碼元,可能生成N個(gè)輸出碼元。這些N個(gè)輸出碼元可以包括K個(gè)原始輸入碼元以及N-K個(gè)冗余碼元。例如存儲(chǔ)允許,則服務(wù)器可以為每個(gè)內(nèi)容只計(jì)算輸出碼元集合一次,并使用旋轉(zhuǎn)協(xié)議發(fā)送輸出碼元。
一些FEC編碼的一個(gè)問(wèn)題在于需要過(guò)度的計(jì)算功率或存儲(chǔ)器進(jìn)行操作。另一問(wèn)題是輸出碼元的數(shù)目必須在編碼過(guò)程前預(yù)先被確定。如果過(guò)度估計(jì)分組丟失率則會(huì)導(dǎo)致低效,且如果過(guò)低估計(jì)分組丟失率,則會(huì)導(dǎo)致失敗。
對(duì)于傳統(tǒng)的FEC編碼,可以生成的可能的輸出碼元數(shù)與內(nèi)容被劃分的輸入碼元數(shù)是相同量級(jí)的。一般,大多數(shù)或所有的這些輸出碼元在發(fā)送步驟前的預(yù)處理步驟內(nèi)生成。這些輸出碼元的特性為所有的輸入碼元可以從長(zhǎng)度等于原始內(nèi)容或比原始內(nèi)容稍微長(zhǎng)一點(diǎn)的輸出碼元任何子集合內(nèi)重新生成。
Luby I內(nèi)描述的實(shí)施例(在此被稱為“鏈?zhǔn)椒磻?yīng)碼”)提供了一種不同于前向差錯(cuò)糾正的形式,解決以上問(wèn)題。對(duì)于鏈?zhǔn)椒磻?yīng)碼,可以被生成的可能輸出碼元池一般數(shù)量要大于輸入碼元的數(shù)目,且來(lái)自可能池的隨機(jī)輸出碼元可以很快地被生成。對(duì)于鏈?zhǔn)椒磻?yīng)碼,輸出碼元可以按在發(fā)送步驟進(jìn)發(fā)基礎(chǔ)上需要的在運(yùn)行中被生成(on the fly)。鏈?zhǔn)椒磻?yīng)碼的特性是內(nèi)容的所有輸入碼元可以從長(zhǎng)度略微長(zhǎng)于原始內(nèi)容的隨機(jī)生成輸出碼元集合的子集合中重新生成。
在鏈?zhǔn)椒磻?yīng)碼的一實(shí)施例中,每個(gè)輸出碼元作為一些輸入碼元的異或(XOR,用表示)而獲得。如果K表示總輸入碼元數(shù),則每個(gè)輸出碼元平均上是c*ln(K)個(gè)輸入碼元的XOR,其中l(wèi)n(K)是K個(gè)自然對(duì)數(shù),且c是合適的常量。例如,當(dāng)K等于60000時(shí),每個(gè)輸出碼元平均上是28.68個(gè)輸入碼元的XOR,且當(dāng)K=10000時(shí),每個(gè)輸出碼元平均上是22.86個(gè)輸入碼元的XOR。大量的XOR導(dǎo)致輸出碼元更長(zhǎng)的計(jì)算時(shí)間,因?yàn)槊總€(gè)該種操作涉及從存儲(chǔ)器獲取數(shù)據(jù)、實(shí)現(xiàn)XOR操作并更新存儲(chǔ)器位置。
鏈?zhǔn)椒磻?yīng)碼器生成的輸出碼元的一特性是接收機(jī)能一旦接收到足夠的輸出碼元時(shí)能恢復(fù)原始文件。尤其是,為了以較高概率恢復(fù)原始K輸入碼元,接收機(jī)需要大致K+A個(gè)輸出碼元。比率A/K被稱為“相對(duì)接收開(kāi)銷”。相對(duì)接收開(kāi)銷取決于輸入碼元的數(shù)目K,且取決于解碼器的可靠性。例如,在一特定實(shí)施例中,且K等于60000,5%的相對(duì)接收開(kāi)銷保證解碼器以至少1-10-8的概率成功地對(duì)輸入文件解碼,且當(dāng)K等于10000時(shí),15%的相對(duì)接收開(kāi)銷保證解碼器相同的成功概率。在一實(shí)施例中,鏈?zhǔn)椒磻?yīng)碼的相對(duì)接收開(kāi)銷可以由(13*sqrt(k)+200)/K而計(jì)算,其中sqrt(K)是輸入碼元K個(gè)數(shù)目的平方根。在該實(shí)施例中,鏈?zhǔn)椒磻?yīng)碼的相對(duì)接收開(kāi)銷對(duì)于小值的K更大。
在一些實(shí)施例中,輸出碼元使用XOR函數(shù)進(jìn)行編碼,連鎖解碼器的主計(jì)算操作實(shí)現(xiàn)存儲(chǔ)器位置的XOR。該XOR的數(shù)目的大小比例與鏈?zhǔn)椒磻?yīng)碼器相同。
鏈?zhǔn)椒磻?yīng)碼在基于分組網(wǎng)絡(luò)的通信非常有用。然而,其計(jì)算量也相對(duì)較強(qiáng)。例如,在鏈?zhǔn)椒磻?yīng)碼的一些特定實(shí)施例中,當(dāng)輸入碼元K的數(shù)目為60000時(shí),則計(jì)算每個(gè)輸出碼元需要平均獲取28.68個(gè)隨機(jī)選擇的輸入碼元并對(duì)其進(jìn)行XOR。由于服務(wù)器可以同時(shí)服務(wù)的文件數(shù)與每個(gè)輸出碼元需要的操作數(shù)成反比,則減少每個(gè)輸出碼元需要的操作數(shù)會(huì)有用。例如減少后者例如為3倍,則增加了可以從一個(gè)服務(wù)器被同時(shí)服務(wù)的文件數(shù)為3的因子。
鏈?zhǔn)椒磻?yīng)碼的另一特性需要接收開(kāi)銷,該開(kāi)銷對(duì)于給定的目標(biāo)成功概率相對(duì)較大。例如,如上指出,在鏈?zhǔn)椒磻?yīng)碼的一些特定實(shí)施例中,如果K=10000,則15%的相對(duì)接收開(kāi)銷保證了至少1-10-8的解碼成功概率。接收開(kāi)銷對(duì)于更小的K要增加。例如,在一些鏈?zhǔn)椒磻?yīng)碼的特定實(shí)施例中,如果K為1000,則61%的相對(duì)接收開(kāi)銷保證了相同概率的成功解碼。而且,降低目標(biāo)差錯(cuò)概率到10-12左右的一數(shù)目,如在諸如衛(wèi)星網(wǎng)絡(luò)上的高速內(nèi)容傳輸?shù)囊恍?yīng)用中要求的,該數(shù)目需要更大的接收開(kāi)銷。
本發(fā)明的簡(jiǎn)要描述 根據(jù)本發(fā)明的一實(shí)施例,提供了一種用于在通信信道上從源到目的地的數(shù)據(jù)傳輸編碼的方法。該方法對(duì)輸入碼元的排序集合進(jìn)行操作,并包括從輸入碼元生成多個(gè)冗余碼元。該方法還包括從包括輸入碼元和冗余碼元的碼元組合集合生成多個(gè)輸出碼元,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于碼元的組合集合內(nèi)的碼元數(shù),其中從碼元的組合集合內(nèi)多于一個(gè)碼元且從碼元的組合集合內(nèi)少于所有碼元中生成至少一個(gè)輸出碼元,使得輸入碼元的排序集合可以從輸出碼元的任何預(yù)定數(shù)經(jīng)重新生成達(dá)到期望的準(zhǔn)確度。
根據(jù)本發(fā)明另一實(shí)施例,提供了一系統(tǒng),用于在通信信道上從源到目的地的數(shù)據(jù)編碼。該系統(tǒng)包括被耦合以接收多個(gè)輸入碼元的靜態(tài)編碼器,多個(gè)輸入碼元從要發(fā)送的數(shù)據(jù)中生成。靜態(tài)編碼器包括冗余碼元發(fā)生器,所述發(fā)生器基于輸入碼元生成多個(gè)冗余碼元。系統(tǒng)附加地包括被耦合以接收多個(gè)輸入碼元和多個(gè)冗余碼元的動(dòng)態(tài)編碼器,動(dòng)態(tài)編碼器包括輸出碼元發(fā)生器,所述發(fā)生器從包括多個(gè)輸入碼元和多個(gè)冗余碼元的碼元組合集合中生成多個(gè)輸出碼元,其中可能輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于組合集合內(nèi)的碼元數(shù),其中從多于組合集合的碼元且小于組合集合的所有碼元中生成至少一個(gè)輸出碼元,使得輸入碼元的排序集合可以從輸出碼元的任何預(yù)定數(shù)中重新生成達(dá)到期望的準(zhǔn)確度。
根據(jù)本發(fā)明的另一實(shí)施例,提供了在通信信道上對(duì)從源發(fā)送的數(shù)據(jù)進(jìn)行接收的方法,該方法包括接收輸出碼元,其中每個(gè)輸出碼元從輸入碼元和冗余碼元的組合集合內(nèi)的至少一個(gè)碼元生成,其中至少一個(gè)輸出碼元從多于組合集合內(nèi)的一個(gè)碼元且小于組合集合內(nèi)所有碼元中生成,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于組合集合內(nèi)的碼元數(shù),其中輸入碼元來(lái)自輸入碼元的排序集合,其中冗余碼元從輸入碼元中生成。該方法還包括在接收到任何預(yù)定數(shù)目N輸出碼元時(shí),從N個(gè)輸出碼元重新生成組合集合內(nèi)至少一個(gè)碼元的子集,所述子集包括多個(gè)重新生成的輸入碼元以及多個(gè)重新生成的冗余碼元。該方法進(jìn)一步包括如果從N個(gè)輸出碼元重新生成碼元的至少一個(gè)子集的步驟沒(méi)有按照期望的準(zhǔn)確度重新生成輸入碼元,則從多個(gè)重新生成的冗余碼元和/或多個(gè)重新生成的輸入碼元的一些重新生成至少一些未經(jīng)重新生成的輸入碼元。
根據(jù)本發(fā)明的另一實(shí)施例,提供一系統(tǒng)用于接收在通信信道上從源發(fā)送的數(shù)據(jù)。該系統(tǒng)包括一接收模塊,所述模塊耦合到通信信道用于接收在通信信道上發(fā)送的輸出碼元,其中每個(gè)輸出碼元從輸入碼元和冗余碼元的組合集合內(nèi)的至少一個(gè)碼元生成,其中至少一個(gè)輸出碼元從組合集合內(nèi)多于一個(gè)碼元以及組合集合內(nèi)少于所有碼元中生成,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于組合集合內(nèi)的碼元數(shù),其中輸入碼元來(lái)自輸入碼元的排序集合,其中冗余碼元從輸入碼元生成。系統(tǒng)還附加地包括動(dòng)態(tài)解碼器,在接收到輸出碼元的預(yù)定數(shù)量N后,對(duì)來(lái)自N個(gè)輸出碼元的組合集合內(nèi)的碼元子集進(jìn)行解碼,所述組合集合內(nèi)的碼元子集包括多個(gè)解碼后的輸入碼元和多個(gè)解碼后的冗余碼元。系統(tǒng)還包括靜態(tài)解碼器,從多個(gè)解碼后的冗余碼元對(duì)未經(jīng)解碼的輸入碼元(如果有的話)的至少一些進(jìn)行解碼。
根據(jù)本發(fā)明的另一實(shí)施例,提供體現(xiàn)在載波上的計(jì)算機(jī)數(shù)據(jù)信號(hào)。計(jì)算機(jī)數(shù)據(jù)信號(hào)包括多個(gè)輸出碼元,其中多個(gè)輸出碼元表示從包括輸入碼元和冗余碼元的排序集合的碼元組合集合生成的碼元,其中冗余碼元從輸入碼元中被生成,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于碼元組合集合內(nèi)的碼元數(shù),其中至少一個(gè)輸出碼元從碼元的組合集合內(nèi)多于一個(gè)碼元以及碼元組合集合內(nèi)少于所有碼元中生成,且使得數(shù)據(jù)信號(hào)接收機(jī)能從輸出碼元的任何預(yù)定數(shù)量按期望的準(zhǔn)確度重新生成輸入碼元的排序集合。
本發(fā)明可以獲得多種好處。例如,在特定實(shí)施例中,減少了在信道上傳輸?shù)臄?shù)據(jù)編碼的計(jì)算化費(fèi)。在另一特定實(shí)施例中,減少了對(duì)該種數(shù)據(jù)解碼的計(jì)算代價(jià)。取決于實(shí)施例,可以獲得一個(gè)或多個(gè)該種好處。這些和其它好處在本發(fā)明說(shuō)明中更詳細(xì)地描述,尤其在以下。
在此揭示的本發(fā)明的性質(zhì)和優(yōu)勢(shì)的進(jìn)一步理解可以通過(guò)參考規(guī)范和所附附圖實(shí)現(xiàn)。 附圖的簡(jiǎn)要描述

圖1是根據(jù)本發(fā)明的一實(shí)施例的通信系統(tǒng)框圖; 圖2是根據(jù)本發(fā)明的一實(shí)施例的編碼器框圖; 圖3是根據(jù)本發(fā)明的一實(shí)施例生成冗余碼元方法的簡(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í)施例的靜態(tài)編碼器的簡(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是根據(jù)本發(fā)明的另一實(shí)施例的靜態(tài)解碼器的簡(jiǎn)化框圖; 圖18是根據(jù)本發(fā)明的實(shí)施例的解碼器操作的簡(jiǎn)化流圖; 圖19是根據(jù)本發(fā)明的實(shí)施例的解碼器另一操作的簡(jiǎn)化流圖; 圖20是根據(jù)本發(fā)明的一實(shí)施例的關(guān)聯(lián)器的簡(jiǎn)化流圖; 圖21是根據(jù)本發(fā)明的一特定實(shí)施例的加權(quán)選擇器的簡(jiǎn)化框圖; 圖22是根據(jù)本發(fā)明的實(shí)施例被加權(quán)選擇器使用的過(guò)程簡(jiǎn)化流圖。 特定實(shí)施例的詳細(xì)說(shuō)明 本揭示參考美國(guó)專利號(hào)6307487(Luby I)和美國(guó)專利號(hào)6320520,兩個(gè)專利發(fā)布給Michael G.Luby,題為“Information Additive Group Code Generatorand Decoder for Communication Systems”(此后被稱為“Luby iII”),整個(gè)揭示在此引入作為各種目的的參考。Luby I和II提供可以用于根據(jù)本發(fā)明的一些實(shí)施例中使用的系統(tǒng)的方法的原理。然而可以理解,本發(fā)明不需要這些系統(tǒng)和方法,還可以使用其它的變體、修改或其它。
在此描述的特定實(shí)施例中,描述了被稱為“多級(jí)編碼”的編碼方案,先對(duì)在該描述中使用的各項(xiàng)的意義和范圍作解釋。
多級(jí)編碼如在此描述的對(duì)數(shù)據(jù)在多級(jí)內(nèi)進(jìn)行編碼。一般但不總是,第一級(jí)向數(shù)據(jù)加入預(yù)定量的冗余。第二級(jí)然后使用鏈?zhǔn)椒磻?yīng)碼或類似的,以從原始數(shù)據(jù)生成輸出碼元,以及由第一級(jí)編碼計(jì)算的冗余碼元。在本發(fā)明的一個(gè)特定實(shí)施例中,接收到的數(shù)據(jù)首先使用連鎖解碼過(guò)程進(jìn)行解碼。如果該過(guò)程不能成功地完整恢復(fù)原始數(shù)據(jù),則應(yīng)用第二解碼步驟。
在此描述的一些實(shí)施例的好處在于與以下將描述的鏈?zhǔn)椒磻?yīng)碼相比,只需要較少的算術(shù)操作。一些包括第一級(jí)編碼和第二級(jí)編碼的特定實(shí)施例的其它優(yōu)勢(shì)在于編碼的第一級(jí)和編碼的第二級(jí)可以在分開(kāi)的時(shí)間和/或分開(kāi)的設(shè)備完成,因此劃分了計(jì)算負(fù)載。例如如果希望在傳輸時(shí)進(jìn)發(fā)地實(shí)現(xiàn)編碼的一部分,這會(huì)是有利的。特別是,第一級(jí)編碼可以在傳輸前實(shí)現(xiàn),而第二級(jí)編碼可以與傳輸進(jìn)發(fā)地實(shí)現(xiàn)。然而可以理解,在一些實(shí)施例中,第一和第二級(jí)編碼可以與/或一個(gè)設(shè)備大致與傳輸進(jìn)發(fā)地進(jìn)行。許多其它的變體、修改和變化對(duì)于領(lǐng)域內(nèi)的技術(shù)人員在閱讀本申請(qǐng)后會(huì)明顯。
在多級(jí)編碼的實(shí)施例中,冗余碼元在第一級(jí)編碼時(shí)從輸入文件生成。在這些實(shí)施例中,在第二級(jí)編碼中,輸出碼元從輸入文件和冗余碼元的組合中生成。在一些這些實(shí)施例中,輸出碼元可以如需要被生成。在第二級(jí)包括鏈?zhǔn)椒磻?yīng)碼的實(shí)施例中,每個(gè)輸出碼元可以不用管其它輸出碼元是如何生成的而經(jīng)生成。一旦生成了,這些輸出碼元然后可以放入分組并發(fā)送到其目的地,每個(gè)分組包含一個(gè)或多個(gè)輸出碼元。還可以使用非分組化傳輸技術(shù)作為替代。
如在此使用的,“文件”一詞指任何存儲(chǔ)在一個(gè)或多個(gè)源處且作為一個(gè)單元發(fā)送到一個(gè)或多個(gè)目的地的數(shù)據(jù)。因此,來(lái)自文件服務(wù)器或計(jì)算機(jī)存儲(chǔ)設(shè)備的文檔、圖像和文件是可以被發(fā)送的“文件”的示例。文件可以是已知的大小(諸如存儲(chǔ)在硬盤上的一兆字節(jié)圖像)或可以是未知的大小(諸如從流源輸出獲得的文件)。無(wú)論是哪種,文件是輸入碼元的序列,其中每個(gè)輸入碼元在文件內(nèi)有一位置和值。
傳輸是通過(guò)信道從一個(gè)或多個(gè)發(fā)送者到一個(gè)或多個(gè)接收者的數(shù)據(jù)發(fā)送過(guò)程以傳送一文件。發(fā)送者有時(shí)還被稱為編碼器。如果一個(gè)發(fā)送者通過(guò)完美信道連接到任何數(shù)量的接收者,如果所有的數(shù)據(jù)都被正確接收,則接收到的數(shù)據(jù)可以是輸入文件的準(zhǔn)確副本。在此,我們假設(shè)信道不是完美的,這一般是實(shí)際信道的情況。在許多信道不完美中,兩種在此感興趣的是數(shù)據(jù)擦除和數(shù)據(jù)不完整(這可以被視為數(shù)據(jù)擦除的特殊情況)。數(shù)據(jù)擦除發(fā)生在信道丟失或丟棄數(shù)據(jù)時(shí)。數(shù)據(jù)不完整發(fā)生在當(dāng)接收者在一些數(shù)據(jù)已經(jīng)經(jīng)過(guò)而接收者還未開(kāi)始接收數(shù)據(jù)、當(dāng)接收者在傳輸結(jié)束前停止接收數(shù)據(jù)、當(dāng)接收者只選擇接收一部分發(fā)送的數(shù)據(jù)和/或當(dāng)接收者間歇斷地停止并再次開(kāi)始接收數(shù)據(jù)。作為數(shù)據(jù)不完整的示例,移動(dòng)衛(wèi)星發(fā)送者可能發(fā)送表示輸入文件的數(shù)據(jù)并在接收者在范圍內(nèi)前開(kāi)始傳輸。一旦接收者在范圍內(nèi),數(shù)據(jù)可以被接收直到衛(wèi)星移出范圍,在該點(diǎn)接收者可以重新調(diào)整其碟形衛(wèi)星天線(在該時(shí)間內(nèi)它不接收數(shù)據(jù))以開(kāi)始接收另一移入范圍內(nèi)的衛(wèi)星發(fā)送的相同輸入文件的數(shù)據(jù)。如從讀該描述中清楚看出的,數(shù)據(jù)不完整性是數(shù)據(jù)擦除的特殊情況,因?yàn)榻邮照呖梢詫?shù)據(jù)不完整性(且接收者有相同的問(wèn)題)視為如同接收者整段時(shí)間都在,但信道丟失了在接收者開(kāi)始接收數(shù)據(jù)前的所有數(shù)據(jù)。而且,如在通信系統(tǒng)設(shè)計(jì)內(nèi)已知的,可檢測(cè)差錯(cuò)可以被認(rèn)為等價(jià)于簡(jiǎn)單地丟棄所有有檢測(cè)到差錯(cuò)的數(shù)據(jù)塊或碼元的擦除。
在一些通信系統(tǒng)中,接收者接收多個(gè)發(fā)送者生成的數(shù)據(jù),或是使用多個(gè)連接的一個(gè)發(fā)送者的數(shù)據(jù)。例如為了加快下載,接收者可以同時(shí)連接到多于一個(gè)發(fā)送相同文件的發(fā)送者。作為另一示例,在多播傳輸中,多個(gè)多波數(shù)據(jù)流可以被發(fā)送以使的接收者能將一個(gè)或多個(gè)這些流連接以匹配與連接到發(fā)送者的信道帶寬匹配的集體傳輸速率。在所有該種情況下,要保證所有發(fā)送的數(shù)據(jù)對(duì)于接收者是獨(dú)立使用的,即多個(gè)源數(shù)據(jù)在流間不是冗余的,即使當(dāng)傳輸速率對(duì)于不同流非常不同時(shí)或當(dāng)有任意丟失模式時(shí)。
一般,通信信道是連接數(shù)據(jù)傳輸?shù)陌l(fā)送者和接收者的信道。通信信道可以是實(shí)時(shí)信道,其中信道在信道獲得數(shù)據(jù)時(shí)將數(shù)據(jù)從發(fā)送者移到接收者,或通信信道可能是存儲(chǔ)信道,該信道在將數(shù)據(jù)從發(fā)送者轉(zhuǎn)移到接收者過(guò)程中存儲(chǔ)一些或所有的數(shù)據(jù)。后者的示例是盤存儲(chǔ)或其它存儲(chǔ)設(shè)備。在該示例中,生成數(shù)據(jù)的程序或設(shè)備可以被認(rèn)為是發(fā)送者,將數(shù)據(jù)發(fā)送到存儲(chǔ)設(shè)備。接收者是從存儲(chǔ)設(shè)備讀取數(shù)據(jù)的程序或設(shè)備。發(fā)送者使用的將數(shù)據(jù)送到存儲(chǔ)設(shè)備的機(jī)制、存儲(chǔ)設(shè)備本身以及接收者使用的從存儲(chǔ)設(shè)備獲得數(shù)據(jù)的機(jī)制共同形成了信道。如果這些機(jī)制或存儲(chǔ)設(shè)備會(huì)丟失數(shù)據(jù),則它可以被視為通信信道內(nèi)的數(shù)據(jù)擦除。
當(dāng)發(fā)送者和接收者為通信信道隔開(kāi),且該通信信道內(nèi)碼元被擦除,則最好不要發(fā)送輸入文件的準(zhǔn)確副本,而是發(fā)送從輸入文件生成的數(shù)據(jù),該數(shù)據(jù)能幫助恢復(fù)擦除。編碼器是處理該任務(wù)的電路、設(shè)備模塊或編碼片段。一種觀看編碼器操作的方式是編碼器從輸入碼元生成輸出碼元,其中輸入碼元值序列表示輸入文件。每個(gè)輸入碼元因此在輸入文件內(nèi)有一位置和一值。解碼器是電路、設(shè)備、模塊或編碼片段,它們從接收者接收到的輸出碼元重建輸入碼元。在多級(jí)編碼中,編碼器和解碼器進(jìn)一步被分成子模塊,每個(gè)實(shí)現(xiàn)不同的任務(wù)。
在多級(jí)編碼系統(tǒng)的實(shí)施例中,編碼器和解碼器可以被進(jìn)一步分成子模塊,每個(gè)實(shí)現(xiàn)不同的任務(wù)。例如,在一些實(shí)施例中,編碼器包括在此被稱為靜態(tài)編碼器和動(dòng)態(tài)編碼器。如在此使用的,“靜態(tài)”編碼器是從輸入碼元集合生成多個(gè)冗余碼元的編碼器,其中冗余碼元數(shù)在編碼前被確定。靜態(tài)編碼碼示例包括Reed-Solomon編碼、Tornado編碼、漢明碼、低密度一致校驗(yàn)(LDPC)編碼等?!办o態(tài)解碼器”一詞在此被稱為解碼器,該解碼器可以對(duì)由靜態(tài)編碼器編碼的數(shù)據(jù)解碼。
如在此使用的,“動(dòng)態(tài)編碼器”是從輸入碼元集合生成輸出碼元的編碼器,其中可能的輸出碼元的數(shù)量級(jí)大于輸入碼元數(shù),且其中要生成的輸出碼元數(shù)不需要是固定的。動(dòng)態(tài)編碼器的一例是鏈?zhǔn)椒磻?yīng)碼器,諸如Luby I和Luby II內(nèi)描述的編碼器?!皠?dòng)態(tài)解碼器”一詞在此用于指可以對(duì)由動(dòng)態(tài)編碼器編碼的數(shù)據(jù)解碼的解碼器。
多級(jí)編碼的實(shí)施例不受到任何特定類型的輸入碼元的限制。一般,輸入碼元的值從對(duì)一些正整數(shù)M的2M個(gè)碼元的字母表中被選擇。在該情況下,輸入碼元可以用來(lái)自輸入文件的M比特?cái)?shù)據(jù)的序列表示。M的值一般基于例如使用的應(yīng)用程序、通信信道和/或輸出碼元的大小而確定。另外,輸出碼元的大小還經(jīng)?;趹?yīng)用、信道和/或輸入碼元的大小而經(jīng)確定。在一些情況下,如果輸出碼元值和輸入碼元值大小相同(即用相同數(shù)量的比特表示,或從相同的字母表選出),則編碼過(guò)程可以被簡(jiǎn)化。如果是該情況,則輸入碼元值大小在輸出碼元值受限時(shí)受到限制。例如,可能期望將輸出碼元放入有限大小的分組內(nèi)。如果與輸出碼元相關(guān)的密鑰的一些數(shù)據(jù)為了在接收機(jī)處恢復(fù)密鑰而被發(fā)送,則輸出碼元最好較小,以在一個(gè)分組內(nèi)包括輸出碼元值和關(guān)于密鑰的數(shù)據(jù)。
作為一例,如果輸入文件是多兆字節(jié)的文件,則輸入文件可能被分成幾千、幾萬(wàn)或幾百萬(wàn)的輸入碼元,每個(gè)輸入碼元對(duì)幾千、幾百或幾個(gè)字節(jié)編碼。作為另一示例,對(duì)于基于分組的因特網(wǎng)信道,1024字節(jié)大小的有效負(fù)荷分組可能比較合適(一字節(jié)為8比特)。在該示例中,假設(shè)每個(gè)分組包含一個(gè)輸出碼元和8字節(jié)輔助信息,輸出碼元大小為8128比特((1024-8)*8)比較合適。因此,輸入碼元大小可以被選為M=(1024-8)*8,即8128比特。作為另一示例,一些衛(wèi)星系統(tǒng)使用MPEG分組標(biāo)準(zhǔn),其中每個(gè)分組的有效負(fù)荷包括188個(gè)字節(jié)。在該示例中,假設(shè)每個(gè)分組包含一個(gè)輸出碼元和4字節(jié)輔助信息,則輸出碼元大小為1472比特((188-4)*8)比較合適。因此,輸入碼元大小可以被選為M=(188-4)*8,即1472比特。在使用多級(jí)編碼的通用通信系統(tǒng)內(nèi),諸如輸入碼元大小(即M為輸入碼元編碼的比特?cái)?shù))的應(yīng)用專用參數(shù)可以是應(yīng)用設(shè)定的變量。
每個(gè)輸出碼元有一個(gè)值。在一個(gè)以下考慮的最優(yōu)實(shí)施例中,每個(gè)輸出碼元還與一標(biāo)識(shí)符相關(guān),該標(biāo)識(shí)符被稱為“密鑰”。最好,每個(gè)輸出碼元的密鑰可以簡(jiǎn)單地由接受者確定以允許接收者能互相區(qū)別輸出碼元。最好,一輸出碼元的密鑰不同于其他輸出碼元的密鑰。在本領(lǐng)域內(nèi)有許多各種形式的密鑰。例如,Luby I描述了各種形式的可以在本發(fā)明的實(shí)施例中使用的密鑰。
多級(jí)編碼在期望有數(shù)據(jù)擦除或接收者不在傳輸正好開(kāi)始和結(jié)束的時(shí)候開(kāi)始時(shí)特別有用。后者的情況在此被稱為“數(shù)據(jù)不完整性”。關(guān)于擦除事件,多級(jí)編碼共享許多在Luby I內(nèi)描述的鏈?zhǔn)椒磻?yīng)碼的好處。特別是,多級(jí)輸出碼元是信息可加的,所以任何合適數(shù)量的分組可以被用于以一定準(zhǔn)確性恢復(fù)輸入文件。這些條件不會(huì)負(fù)面影響使用多級(jí)編碼的通信過(guò)程,因?yàn)橛枚嗉?jí)編碼生成的輸出碼元是信息附加的。例如,如果因?yàn)橐饠?shù)據(jù)擦除的噪聲突發(fā)而丟失了一百個(gè)分組,則可以在突發(fā)后發(fā)送額外的一百個(gè)分組以替代擦除的分組的丟失。如果因?yàn)橛捎诮邮諜C(jī)沒(méi)有調(diào)諧到發(fā)射機(jī)開(kāi)始發(fā)送時(shí)的發(fā)射機(jī)而丟失了成千個(gè)分組,則接收機(jī)可以從任何其他傳輸時(shí)間段甚至從另一發(fā)射機(jī)開(kāi)始重新接收這些成千個(gè)分組。使用多級(jí)編碼,接收機(jī)不限于接收任何特定分組集合,所以它可以從一個(gè)發(fā)射機(jī)接收一些分組,切換到另一發(fā)射機(jī),丟失一些分組,失去給定傳輸?shù)拈_(kāi)始或結(jié)束,且仍恢復(fù)輸入文件。加入并離開(kāi)傳輸而不需要接收機(jī)-發(fā)射機(jī)協(xié)調(diào)的能力可以幫助簡(jiǎn)化通信過(guò)程。
在一些實(shí)施例中,使用多級(jí)編碼發(fā)送文件可以包括從輸入文件生成、形成或抽取輸入碼元,計(jì)算冗余碼元、將輸入和冗余碼元編碼成為一個(gè)或多個(gè)輸出碼元,其中每個(gè)輸出碼元基于其獨(dú)立于所有其他輸出碼元的密鑰而經(jīng)生成,并將輸出碼元在信道上發(fā)送到一個(gè)或多個(gè)接收者。另外,在一些實(shí)施例中,使用多級(jí)編碼接收(重建)輸入文件的副本可以包括從一個(gè)或多個(gè)數(shù)據(jù)流接收輸出碼元的一些集合或子集,并從值和接收到的輸出碼元的密鑰對(duì)輸入碼元解碼。
本發(fā)明的各方面現(xiàn)在將參考附圖進(jìn)行描述。
系統(tǒng)概述 圖1是使用多級(jí)編碼的通信系統(tǒng)100的框圖。在通信系統(tǒng)100內(nèi),向輸入碼元發(fā)生器110提供輸入文件101或輸入流105。輸入碼元發(fā)生器110從輸入文件或流生成一個(gè)或多個(gè)輸入碼元的序列(IS(0),IS(1),IS(2),...),每個(gè)輸入碼元有值和位置(在圖1內(nèi)用括號(hào)內(nèi)的整數(shù)表示)。如上所述,對(duì)于輸入碼元的可能值,即其字母表一般是2M個(gè)碼元,使得每個(gè)輸入碼元編碼為輸入文件的M個(gè)比特。值M一般通過(guò)使用通信系統(tǒng)100確定,但通用系統(tǒng)可以包括輸入碼元發(fā)生器110的碼元大小輸入,使得M可以隨每次使用而改變。輸入碼元發(fā)生器110的輸出可以被提供給編碼器115。
靜態(tài)編碼器130生成靜態(tài)密鑰流S0,S1...。生成的靜態(tài)密鑰數(shù)一般是有限的,且取決于編碼器115的特定實(shí)施例。靜態(tài)密鑰的生成在以下將接著更詳細(xì)地描述。動(dòng)態(tài)密鑰發(fā)生器120為每個(gè)要由編碼器115生成的輸出碼元生成一動(dòng)態(tài)密鑰。每個(gè)動(dòng)態(tài)密鑰被生成,使得同一輸入文件的動(dòng)態(tài)密鑰的很大部分是唯一的。例如,Luby I描述可以使用的密鑰發(fā)生器的實(shí)施例。動(dòng)態(tài)密鑰發(fā)生器120和靜態(tài)密鑰發(fā)生器130的輸出被提供給編碼器115。
從動(dòng)態(tài)密鑰發(fā)生器120提供的每個(gè)密鑰I,編碼器115從輸入碼元發(fā)生器提供的輸入碼元生成輸出碼元,其值為B(I)。編碼器115的操作在以下將詳述。每個(gè)輸出碼元的值基于其密鑰、一個(gè)或多個(gè)輸入碼元的一些函數(shù)以及可能從輸入碼元經(jīng)計(jì)算的一個(gè)或多個(gè)冗余碼元被生成。引起特定輸出碼元的輸入碼元和冗余碼元的集合在此被稱為輸出碼元的“關(guān)聯(lián)碼元”或只是其“關(guān)聯(lián)”。函數(shù)(“值函數(shù)”)的選擇以及相關(guān)是根據(jù)以下更詳細(xì)描述的過(guò)程完成的。一般,但不總是,M對(duì)于輸入和輸出碼元是相同的,即它們都編碼為相同數(shù)目的比特。
在一些實(shí)施例中,輸入碼元數(shù)K為編碼器115用于選擇關(guān)聯(lián)。如果K事先未知,諸如輸入是流文件,則K可以只是一個(gè)估計(jì)。值K還可以為編碼器115用于為輸入碼元和任何由編碼器115生成的中間碼元分配存儲(chǔ)。
編碼器115提供輸出碼元給發(fā)射模塊140。發(fā)射模塊140還被提供了來(lái)自動(dòng)態(tài)密鑰發(fā)生器120的每個(gè)該種輸出碼元的密鑰。發(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可以是實(shí)時(shí)信道,諸如通過(guò)因特網(wǎng)的路徑或從電視發(fā)射機(jī)到電視接收機(jī)或從一點(diǎn)到另一點(diǎn)的電話連接的廣播鏈路,或信道145可以是存儲(chǔ)信道,諸如CD-ROM、盤驅(qū)動(dòng)、萬(wàn)維網(wǎng)站等。信道145甚至可以是實(shí)時(shí)信道和存儲(chǔ)信道的組合,諸如當(dāng)個(gè)人將輸入文件在電話線上從個(gè)人計(jì)算機(jī)發(fā)送到因特網(wǎng)服務(wù)提供商(ISP)時(shí)形成的信道,輸入文件被存儲(chǔ)在萬(wàn)維網(wǎng)服務(wù)器上,接著通過(guò)因特網(wǎng)被發(fā)送到接收者。
由于信道145被假設(shè)是擦除信道,通信系統(tǒng)100不假設(shè)從接收模塊150出來(lái)的輸出碼元和進(jìn)入發(fā)射模塊140的輸出碼元間的一對(duì)一對(duì)應(yīng)。實(shí)際上,當(dāng)信道145包括分組網(wǎng)絡(luò)時(shí),通信系統(tǒng)100可能甚至不能假設(shè)在通過(guò)信道145時(shí)保留了任何兩個(gè)或多個(gè)分組的相對(duì)順序。因此,輸出碼元的密鑰使用一個(gè)或多個(gè)上述的密鑰方案被確定,且不一定按輸出碼元離開(kāi)接收模塊150的順序確定。
接收模塊150將輸出碼元提供給解碼器155,且任何數(shù)據(jù)接收模塊150接收這些輸出碼元的密鑰,這些密鑰被提供給動(dòng)態(tài)密鑰重新發(fā)生器160。動(dòng)態(tài)密鑰重新發(fā)生器160重新生成接收到的輸出碼元的動(dòng)態(tài)密鑰并將這些動(dòng)態(tài)密鑰提供給解碼器155。靜態(tài)密鑰發(fā)生器163重新生成靜態(tài)密鑰S0,S1,...并將其提供給解碼器155。靜態(tài)密鑰發(fā)生器訪問(wèn)在編碼和解碼過(guò)程中都使用的隨機(jī)數(shù)發(fā)生器135。如果隨機(jī)數(shù)在該種設(shè)備上生成,則這可以是以對(duì)相同物理設(shè)備的訪問(wèn)形式,或是對(duì)用于生成隨機(jī)數(shù)的相同算法的訪問(wèn)形式以獲得相同的行為。解碼器155使用動(dòng)態(tài)密鑰發(fā)生器160和靜態(tài)密鑰發(fā)生器163提供的密鑰連同對(duì)應(yīng)的輸出碼元以恢復(fù)輸入碼元(同樣IS(0),IS(1),IS(2),...)。解碼器155將恢復(fù)的輸入碼元提供給輸入文件組裝器165,該組裝器生成輸入文件101的副本170或輸入流105。
編碼器 圖2是圖1內(nèi)示出的編碼器115的一個(gè)特定實(shí)施例框圖。編碼器115包括靜態(tài)編碼器210、動(dòng)態(tài)編碼器220以及冗余計(jì)算器230。靜態(tài)編碼器210接收以下輸入a)輸入碼元發(fā)生器110提供的原始輸入碼元(IS(0),IS(1),...,IS(K-1))并存儲(chǔ)在輸入碼元緩沖器205內(nèi);b)原始輸入碼元數(shù)K;c)由靜態(tài)密鑰發(fā)生器130提供的靜態(tài)密鑰S0,S1,...;以及d)冗余碼元數(shù)R。在接收到這輸入后,靜態(tài)編碼器205計(jì)算R個(gè)冗余碼元RE(0),RE(1),...,RE(R-1),如下描述。一般但不總是冗余碼元與輸入碼元有相同大小。在一特定實(shí)施例中,靜態(tài)編碼器210生成的冗余碼元被存儲(chǔ)在輸入碼元緩沖器205內(nèi)。輸入碼元緩沖器205可以只是邏輯的,即文件可以物理地被存儲(chǔ)在一個(gè)地方,且碼元緩沖器205內(nèi)的輸入碼元的位置只能是原始文件內(nèi)的這些碼元位置的重命名。
動(dòng)態(tài)編碼器接收輸入碼元和冗余碼元,且如以下詳述地生成輸出碼元。在一實(shí)施例中,其中冗余碼元被存儲(chǔ)到輸入碼元緩沖器205內(nèi),動(dòng)態(tài)編碼器220從輸入碼元緩沖器205接收輸入碼元和冗余碼元。
冗余計(jì)算器230從K個(gè)輸入碼元計(jì)算R個(gè)冗余碼元。該計(jì)算在以下詳述。
在生成輸出碼元的速度是關(guān)鍵因素的情況下,輸入文件可以使用靜態(tài)編碼器205被編碼并在輸出碼元傳輸開(kāi)始前存儲(chǔ)在中間設(shè)備上。該設(shè)備可以是例如附加的位于不同于與動(dòng)態(tài)編碼器220的物理位置的存儲(chǔ)設(shè)備,它可以被包括在與動(dòng)態(tài)編碼器220等相同的物理設(shè)備內(nèi)等。在使用動(dòng)態(tài)編碼器220編碼前文件使用靜態(tài)編碼器205被編碼的情況下,實(shí)現(xiàn)動(dòng)態(tài)編碼器220的計(jì)算設(shè)備不需要將資源用于靜態(tài)編碼。因此,它可以將資源更多地用于動(dòng)態(tài)編碼以例如增加輸入文件的生成輸出碼元速度、生成其它文件的輸出碼元、實(shí)現(xiàn)其他任務(wù)等。靜態(tài)編碼是否能或應(yīng)該在動(dòng)態(tài)編碼前實(shí)現(xiàn)取決于特定的實(shí)現(xiàn)。
靜態(tài)編碼器概覽 靜態(tài)編碼器210的一般操作參考圖3和4描述。圖3是說(shuō)明靜態(tài)編碼方法的一實(shí)施例的簡(jiǎn)化流程圖。在步驟305,變量j跟蹤已生成多少冗余碼元,該值被設(shè)定為零。然后,在步驟310,第一冗余碼元RE(0)作為輸入碼元IS(0),...,IS(K-1)的至少一些的F0的子數(shù)被計(jì)算。然后在步驟315,變量j遞增。接著,在步驟320,測(cè)試是否所有的冗余碼元均被生成了(即j是否大于R-1?)。如果是,則流程結(jié)束。否則,流程進(jìn)行到步驟325。在步驟325,RE(j)作為輸入碼元IS(0),...,IS(K-1)和先前生成的冗余碼元RE(0),...,RE(j-1)的函數(shù)Fj經(jīng)計(jì)算,其中Fj不需要是取決于每個(gè)輸入碼元或每個(gè)冗余碼元的函數(shù)。步驟315、320和325經(jīng)重復(fù)直到已計(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,...Fj-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。
回到圖2和3,在一些實(shí)施例中,靜態(tài)編碼器210生成的冗余碼元可以被存儲(chǔ)在輸入碼元緩沖器205。圖4是靜態(tài)編碼器210的一實(shí)施例的操作的簡(jiǎn)化說(shuō)明。尤其是,靜態(tài)編碼器210用從輸入碼元緩沖器205接收到的輸入碼元IS(0),...,IS(K-1),RE(0),...,RE(j-1)的函數(shù)Fj生成冗余碼元RE(j),并將其存儲(chǔ)回輸入碼元緩沖器205。函數(shù)F0,F(xiàn)1,...FR-1的準(zhǔn)確形式取決于特定應(yīng)用。一般但不總是,函數(shù)F0,F(xiàn)1,...FR-1包括一些或所有它們對(duì)應(yīng)的參變量的異或。如上描述,這些函數(shù)可以或?qū)嶋H上可能不能使用圖1的靜態(tài)密鑰發(fā)生器130生成靜態(tài)密鑰。例如,在以下描述的一個(gè)特定實(shí)施例,第一幾個(gè)函數(shù)實(shí)現(xiàn)漢明碼且不使用靜態(tài)密鑰S0,S1,...,其中剩余的函數(shù)實(shí)現(xiàn)低密度一致校驗(yàn)編碼并顯式使用靜態(tài)密鑰。
動(dòng)態(tài)編碼器概覽 回到圖2,動(dòng)態(tài)編碼器220接收輸入碼元IS(0),...,IS(K-1)以及冗余碼元RE(0),...,RE(R-1)以及要生成的每個(gè)輸出碼元的密鑰I。該集合包括原始輸入碼元及冗余碼元,此后會(huì)被稱為“動(dòng)態(tài)輸入碼元”集合。圖5是動(dòng)態(tài)編碼器的一實(shí)施例的簡(jiǎn)化框圖。該編碼器類似于Luby I內(nèi)描述的一實(shí)施例。Luby I描述該種編碼器的操作的進(jìn)一步細(xì)節(jié)。
動(dòng)態(tài)編碼器500包括加權(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內(nèi)。在一實(shí)施例中,動(dòng)態(tài)碼元緩沖器505是圖2的輸入碼元緩沖器205。在另一實(shí)施例中,動(dòng)態(tài)碼元緩沖器505與輸入碼元緩沖器205分開(kāi)。動(dòng)態(tài)密鑰I(由圖1示出的動(dòng)態(tài)密鑰發(fā)生器120提供)是加權(quán)選擇器510、關(guān)聯(lián)器515和值函數(shù)選擇器520的輸入。動(dòng)態(tài)輸入碼元數(shù)K+R被提供給這些三個(gè)組件510、515和520。計(jì)算器525經(jīng)耦合以接收來(lái)自加權(quán)選擇器510、關(guān)聯(lián)器515和值函數(shù)選擇器520的輸出并接收來(lái)自動(dòng)態(tài)碼元緩沖器505的碼元。計(jì)算器525生成輸出碼元值。應(yīng)理解可以使用圖5內(nèi)示出的元件的等價(jià)安排,且這里只是根據(jù)本發(fā)明的編碼器的一個(gè)示例。例如,Luby I和Luby II描述其他可以用于根據(jù)本發(fā)明其他實(shí)施例的編碼器。
在操作中,從輸入碼元緩沖器205接收K+R個(gè)動(dòng)態(tài)輸入碼元,并存儲(chǔ)在動(dòng)態(tài)輸入碼元緩沖器505內(nèi)。如上解釋的,每個(gè)動(dòng)態(tài)輸入碼元有一位置(例如,輸入碼元的位置可以是其在輸入文件內(nèi)的原始位置)和值。動(dòng)態(tài)輸入碼元不需要按其相應(yīng)的順序存儲(chǔ)在動(dòng)態(tài)輸入碼元緩沖器505內(nèi),只要能確定存儲(chǔ)的動(dòng)態(tài)輸入碼元的位置。
使用密鑰I和動(dòng)態(tài)輸入碼元數(shù)目K+R,加權(quán)選擇器510確定是要與帶有密鑰I的輸出碼元的“關(guān)聯(lián)”的動(dòng)態(tài)輸入碼元數(shù)目W(I)。使用密鑰I、加權(quán)W(I)以及動(dòng)態(tài)輸入碼元數(shù)K+R,關(guān)聯(lián)器515確定與輸出碼元相關(guān)的動(dòng)態(tài)輸入碼元位置列表AL(I)。應(yīng)理解如果關(guān)聯(lián)器515能事先在不知道W(I)情況下生成AL(I),則W(I)不需要分開(kāi)或顯式地計(jì)算。一旦生成了AL(I),則W(I)可以被簡(jiǎn)單地確定,因?yàn)樗茿L(I)內(nèi)的關(guān)聯(lián)的數(shù)目。
并聯(lián)器515是一映射,它接收輸入密鑰I、數(shù)N以及數(shù)t并生成0到N-1間的整數(shù)的列表X(0),...,X(t-1)。最好,這些整數(shù)不同且在其范圍上均勻分布。例如,在圖5的動(dòng)態(tài)編碼器500情況下,N等于K+R,t等于W(I),且AL(I)是列表X(0),...,X(t-1)。
關(guān)聯(lián)器515給出的映射可以采用各種形式。它可以訪問(wèn)真隨機(jī)或偽隨機(jī)比特源以使其輸出隨機(jī)。然而,對(duì)于相同密鑰I、相同N和相同t,它應(yīng)被選擇生成編碼器和解碼器相同的輸出。為了滿足該要求,可以使用以密鑰I為種子的編碼器和解碼器生成偽隨機(jī)序列。取代偽隨機(jī)序列,可以使用真隨機(jī)序列以計(jì)算輸出,但為了使之有用,用于生成輸出的隨機(jī)序列需要被傳遞到解碼器。
再回到圖5,一旦已知I、W(I)和A(I),輸出碼元的值B(I)由計(jì)算器525基于值函數(shù)F(I)經(jīng)計(jì)算。合適值函數(shù)的一特點(diǎn)是它允許由AL(I)指明的關(guān)聯(lián)的值從輸出碼元值B(I)和由AL(I)指明的其他W(I)-1個(gè)關(guān)聯(lián)的值而被確定。在該步驟內(nèi)使用的一個(gè)最優(yōu)值函數(shù)是XOR值函數(shù),因?yàn)樗鼭M足該特性,它容易計(jì)算并容易求反。然而,還可以使用其他合適的值函數(shù)。例如Luby II描述了其他可以使用的合適值函數(shù)。
如果被使用,值函數(shù)選擇器520從密鑰I和K+R確定值函數(shù)F(I)。在一變體中,值函數(shù)F(I)對(duì)于所有I是相同的值函數(shù)F。在該變體,值函數(shù)選擇器器520不需要,且計(jì)算器525可以用值函數(shù)F經(jīng)配置。例如,值函數(shù)可以對(duì)于所有I為XOR,即輸出碼元值是所有其關(guān)聯(lián)的值的XOR(異OR)。
對(duì)于每個(gè)密鑰I,加權(quán)選擇器510從I和K+R確定加權(quán)W(I)。在一變體中,加權(quán)選擇器510通過(guò)使用密鑰選擇W(I),以首先生成隨機(jī)查找數(shù),然后使用該數(shù)字在存儲(chǔ)其中或由加權(quán)選擇器510可訪問(wèn)的分布表格內(nèi)查找W(I)的值。如何形成和訪問(wèn)該種分布表格在以下進(jìn)行詳細(xì)描述。一旦加權(quán)選擇器510確定了W(I),該值被提供給關(guān)聯(lián)器515和計(jì)算器525。
使用列表AL(I)、加權(quán)W(I)和值函數(shù)選擇器520提供的值函數(shù)F(I)或預(yù)選的值函數(shù)F,計(jì)算器525訪問(wèn)動(dòng)態(tài)輸入碼元緩沖器505內(nèi)由AL(I)引用的W(I)個(gè)動(dòng)態(tài)輸入碼元以為當(dāng)前輸出碼元計(jì)算值B(I)。計(jì)算AL(I)的過(guò)程示例如下,但可以使用其他的合適過(guò)程。最好,過(guò)程給予每個(gè)輸入碼元大致相等的機(jī)會(huì)被選擇為給定輸出碼元的關(guān)聯(lián),且選擇方式使得如果解碼器沒(méi)有可用的AL(I),則解碼器可以復(fù)制。
動(dòng)態(tài)解碼器500然后輸出B(I)。實(shí)際上,動(dòng)態(tài)解碼器500實(shí)現(xiàn)圖6內(nèi)說(shuō)明的行為,即生成輸出碼元值B(I)作為選擇的輸入碼元的一些值函數(shù)。在示出的示例中,值函數(shù)為XOR,輸出碼元的加權(quán)W(I)為3,關(guān)聯(lián)聯(lián)的動(dòng)態(tài)輸入碼元(關(guān)聯(lián))在位置0、2和K+R-2且有相應(yīng)的值IS(0)、IS(2)以及RE(R-2)。因此對(duì)于I的值,輸出碼元被計(jì)算為 B(I)=IS(0)IS(2)RE(R-2) 在使用XOR值函數(shù)情況下,可以理解冗余碼元有與原始碼元IS(0),...,IS(K-1)相同的比特?cái)?shù),且這些依次也與輸出碼元有相同的比特?cái)?shù)。
生成的輸出碼元然后被發(fā)送并如上述被接收。在此,假設(shè)可能丟失一些輸出碼元或可能排序出錯(cuò),或它們可能由一個(gè)或多個(gè)編碼器生成。然而假設(shè)被接收到的輸出碼元還接收到其密鑰和其值B(I)準(zhǔn)確度保證的指示。如圖1示出,這些接收到的輸出碼元,連同從其動(dòng)態(tài)密鑰發(fā)生器160、值K+R以及靜態(tài)密鑰發(fā)生器163生成的靜態(tài)密鑰S0,S1,...的指示重建的對(duì)應(yīng)密鑰是解碼器155的輸入。
靜態(tài)編碼器 靜態(tài)編碼器的主要功能是向原始數(shù)據(jù)加入冗余信息,使得在有擦除情況下有可能恢復(fù)原始數(shù)據(jù)。該種冗余信息可以幫助解碼器恢復(fù)動(dòng)態(tài)解碼器不能恢復(fù)的輸入碼元。在一般的應(yīng)用中,靜態(tài)編碼器在有擦除情況下保證能恢復(fù)到期望準(zhǔn)確度需要的冗余碼元數(shù)目的意義上是有效的,以及/或在編碼過(guò)程和/或解碼過(guò)程的計(jì)算代價(jià)上是有效的。例如,對(duì)于給定目標(biāo)擦除率p,該擦除率在應(yīng)用中由動(dòng)態(tài)解碼器的性能決定,目標(biāo)是使得冗余碼元數(shù)R盡可能地小,而同時(shí)保證如果最多丟失數(shù)據(jù)的p部分時(shí)能快速恢復(fù)原始數(shù)據(jù)。滿足該要求的一類碼為L(zhǎng)DPC碼,這對(duì)于領(lǐng)域內(nèi)的技術(shù)人員是已知的。雖然這些碼可以在許多情況下恢復(fù)原始數(shù)據(jù),但在不經(jīng)常的情況下,這些碼能恢復(fù)除了兩三個(gè)原始輸入碼元外的所有碼元。因此在一些實(shí)施例中,在LDPC編碼前,輸入數(shù)據(jù)首先使用在有兩三個(gè)擦除情況下可以恢復(fù)原始數(shù)據(jù)的編碼。第一編碼生成第一組冗余碼元。在第一編碼后,多個(gè)原始碼元和第一組冗余碼元使用LDPC編碼器經(jīng)編碼。擴(kuò)展的漢明碼對(duì)于本領(lǐng)域內(nèi)的技術(shù)人員是眾知的,且在以下簡(jiǎn)要描述,適合于第一層的編碼的目的,因?yàn)樗茉谟袃扇齻€(gè)擦除的情況下恢復(fù)原始數(shù)據(jù),且通過(guò)加入很小量的冗余碼元而完成。可以理解還可以使用其他類型的編碼。例如,在一些應(yīng)用中,可以接受恢復(fù)了除兩三個(gè)輸入碼元外的所有碼元。因此,在該種應(yīng)用中,LDPC碼單獨(dú)就足夠了。另外,其他類型的編碼對(duì)于特定應(yīng)用可能也是合適的,諸如Reed-Solomon、Tornado等。因此,可以理解根據(jù)本發(fā)明的其他實(shí)施例可以單獨(dú)使用許多類型的編碼或組合地使用。
圖7是根據(jù)本發(fā)明的靜態(tài)編碼器的一特定實(shí)施例簡(jiǎn)化框圖。靜態(tài)編碼器600包括參數(shù)計(jì)算器605、漢明編碼器610以及低密度一致校驗(yàn)(LDPC)編碼器620。參數(shù)計(jì)算器605接收K個(gè)輸入碼元和要生成的R個(gè)冗余碼元,并生成參數(shù)D和E。D指示由漢明編碼器610生成的冗余碼元數(shù),E指示由LDPC編碼器620生成的冗余碼元數(shù)。參數(shù)D提供給漢明編碼器610,參數(shù)E被提供給LDPC編碼器620。
漢明編碼器610經(jīng)耦合以從輸入碼元緩沖器625接收輸入碼元IS(0),...,IS(K-1)、輸入碼元數(shù)K以及參數(shù)D。作為響應(yīng),漢明編碼器610根據(jù)漢明碼生成D+1個(gè)冗余碼元HA(0),HA(q),...,HA(D)。在一實(shí)施例中,輸入碼元緩沖器625是圖2的輸入碼元緩沖器205。漢明編碼過(guò)程向原始K個(gè)輸入碼元加入D+1個(gè)冗余碼元,其中D是使得2D-D-1≥K的最小數(shù)。如本領(lǐng)域內(nèi)的技術(shù)人員眾知的,冗余碼元的選擇是使得對(duì)于所有的輸入碼元的可能設(shè)置,使得它們不是全為零,至少在多個(gè)輸入碼元以及對(duì)應(yīng)的冗余碼元中的至少四個(gè)不為零。該特性保證了至少能糾正三個(gè)擦除。漢明編碼器610可以以任何領(lǐng)域內(nèi)的技術(shù)人員已知的差錯(cuò)糾正和擦除糾正編碼的多種方式實(shí)現(xiàn)。
LDPC編碼器620經(jīng)耦合以接收輸入碼元IS(0),...,IS(K-1)、輸入碼元數(shù)K+D+1和經(jīng)漢明編碼的冗余碼元、參數(shù)E以及靜態(tài)密鑰S0,S1,...。作為響應(yīng),LDPC編碼器620根據(jù)LDPC編碼生成E個(gè)冗余碼元。LDPC編碼器計(jì)算的冗余碼元的數(shù)目E等于R-D-1,其中R是冗余碼元數(shù)目。如本領(lǐng)域內(nèi)的技術(shù)人員已知的,有多種使用LDPC碼對(duì)信息編碼的方式。LDPC編碼用圖形結(jié)構(gòu)的方式描述,該圖形結(jié)構(gòu)包括消息節(jié)點(diǎn)集合、校驗(yàn)節(jié)點(diǎn)集合以及連接消息節(jié)點(diǎn)到校驗(yàn)節(jié)點(diǎn)的邊。有效LDPC碼字集合是使得對(duì)于每個(gè)校驗(yàn)節(jié)點(diǎn),相鄰消息節(jié)點(diǎn)的XOR為零的消息節(jié)點(diǎn)的這些設(shè)置的集合。在一些應(yīng)用中,最好消息節(jié)點(diǎn)有相同的度,即連接到相同數(shù)目的校驗(yàn)節(jié)點(diǎn),這樣簡(jiǎn)化了編碼器的實(shí)現(xiàn),且使得解碼器的差錯(cuò)概率計(jì)算變得更簡(jiǎn)單。在本發(fā)明的一特定實(shí)施例中,每個(gè)消息節(jié)點(diǎn)連接到的校驗(yàn)節(jié)點(diǎn)的數(shù)目為四。已經(jīng)知道該數(shù)目提供在編碼器的運(yùn)行時(shí)間/計(jì)算負(fù)載以及解碼器的失敗概率間可接受的折衷。而且,已知較佳地是隨機(jī)地在校驗(yàn)節(jié)點(diǎn)集合間隨機(jī)選擇與給定消息節(jié)點(diǎn)相鄰的校驗(yàn)節(jié)點(diǎn)。LDPC編碼器620可以以領(lǐng)域內(nèi)技術(shù)人員已知的差錯(cuò)糾正和擦除糾正編碼的任何一種方式實(shí)現(xiàn)。
圖8說(shuō)明使用圖7示出的靜態(tài)編碼器的本發(fā)明一實(shí)施例操作。尤其是,漢明編碼器610從輸入碼元緩沖器205(圖2)接收輸入碼元,并生成D+1個(gè)經(jīng)漢明編碼的冗余碼元,這些碼元被存儲(chǔ)在輸入碼元緩沖器205內(nèi)。然后,LDPC編碼器620從輸入碼元緩沖器205接受輸入碼元和D+1個(gè)經(jīng)漢明編碼的冗余碼元,并生成E個(gè)LDPC經(jīng)編碼的冗余碼元,這些碼元被存儲(chǔ)在輸入碼元緩沖器205內(nèi)。
如上所述,在一些實(shí)施例中,LDPC編碼器620接收?qǐng)D1的靜態(tài)密鑰發(fā)生器130生成的靜態(tài)密鑰S0,S1,...。在一實(shí)施例中,靜態(tài)密鑰發(fā)生器130是隨機(jī)數(shù)發(fā)生器,它在接收到種子(seed)后生成隨機(jī)查詢數(shù)序列(靜態(tài)密鑰S0,S1,...)。種子可以取各形式。例如,可以是真隨機(jī)數(shù)發(fā)生器的值。作為另一例,種子可以是從CPU時(shí)鐘以確定方式獲得的字符串。無(wú)論種子是什么,它應(yīng)被傳遞到解碼器,使得相同的靜態(tài)密鑰序列可以由解碼器生成。在許多應(yīng)用中,比較有利的是種子不太大。在許多應(yīng)用中,種子是32比特整數(shù),或64比特整數(shù)。
在圖6內(nèi)說(shuō)明的靜態(tài)編碼器600的一特定實(shí)施例中,參數(shù)D作為使得2D-D-1大于或等于輸入碼元數(shù)K的最大整數(shù)而被計(jì)算。另外,參數(shù)E被計(jì)算為R-D-1。圖9是說(shuō)明參數(shù)計(jì)算器的一實(shí)施例的簡(jiǎn)化流程圖,諸如圖7的參數(shù)計(jì)算器605,該計(jì)算器如上所述計(jì)算參數(shù)D和E。首先,在步驟705,參數(shù)D被初始化為一。然后在步驟710,確定2D-D-1是否小于K。如果不是,則流程進(jìn)行到步驟730。如果是,則流程進(jìn)行到步驟720,其中遞增參數(shù)D。然后,流回到步驟710。一旦D經(jīng)確定,則在步驟730,參數(shù)E被計(jì)數(shù)為R-D-1。
再回到圖1,在一些特定應(yīng)用中,在信道145上要發(fā)送的文件或流相當(dāng)小。例如,輸入文件可以是較短的音頻消息或包括幾萬(wàn)字節(jié)的Web網(wǎng)頁(yè)內(nèi)容。則上述的靜態(tài)編碼器的特定實(shí)施例可能在該種情況下性能次于最優(yōu)。例如,一些上述的實(shí)施例會(huì)導(dǎo)致存儲(chǔ)器和處理器速度的低效使用,因此減緩了數(shù)據(jù)的重建。而且,上述的一些實(shí)施例可能需要更大的接收開(kāi)銷以在由系統(tǒng)的用戶設(shè)定的可靠性參數(shù)內(nèi)重建數(shù)據(jù)。另外,一些上述的實(shí)施例可能導(dǎo)致重建的數(shù)據(jù)的可靠性小于所期望的。
已知解碼器的失敗概率當(dāng)輸入碼元數(shù)目減少時(shí)增加。而且還已知這很大程度上是因?yàn)槿绻純?nèi)容相對(duì)較小,則編碼過(guò)程沒(méi)有建立關(guān)于原始內(nèi)容的足夠信息。因此,可以使用編碼器的另一實(shí)施例,它生成可以傳遞更多關(guān)于原始碼元的信息的冗余碼元。圖10是根據(jù)本發(fā)明的一實(shí)施例的該種編碼器的簡(jiǎn)化流程,以下將描述。
首先在步驟805,變量i被初始化為零。變量i跟蹤已經(jīng)生成的冗余碼元數(shù)。在步驟810,數(shù)字t作為大于或等于K/2的最小奇數(shù)而經(jīng)計(jì)算。在步驟815,值P1,P2,...,Pt基于K、t和靜態(tài)密鑰Si而經(jīng)生成。值P1,P2,...,Pt指明用于生成冗余碼元的輸入碼元位置。在一特定實(shí)施例中,,諸如圖5的關(guān)聯(lián)器515的關(guān)聯(lián)器被用于生成P1,P2,...,Pt。特別是,值t可以作為W(I)輸入被提供,值K可以作為K+R個(gè)輸入被提供,且靜態(tài)密鑰Si可以作為密鑰I輸入被提供。值得注意的是許多不同的t的值會(huì)生成類似的編碼效果,且因此特定的選擇只是示例。
在步驟820,RE(i)的值被計(jì)算為值IS(P)1,IS(P2),...,IS(Pt)的XOR。在步驟825,變量i遞增一以準(zhǔn)備計(jì)算下一冗余碼元,且在步驟830,確定是否計(jì)算了所有冗余碼元。如果沒(méi)有,流程返回步驟815。
解碼器概述 圖11是說(shuō)明根據(jù)本發(fā)明的解碼器的一實(shí)施例的簡(jiǎn)化框圖。解碼器900可以例如用于實(shí)現(xiàn)圖1的解碼器155。
解碼器900包括動(dòng)態(tài)解碼器905和靜態(tài)解碼器910。動(dòng)態(tài)解碼器905從圖1內(nèi)的接收模塊150接收輸出碼元B(Ia),B(Ib),...且從動(dòng)態(tài)密鑰重新發(fā)生器160接收動(dòng)態(tài)密鑰Ia,Ib,Ic,...。在接收到這些數(shù)據(jù)時(shí),動(dòng)態(tài)解碼器905試圖重建輸入碼元IS(0),...,IS(K-1)以及冗余碼元RE(0),...,RE(R-1)。本發(fā)明的一些實(shí)施例的優(yōu)勢(shì)在于動(dòng)態(tài)解碼器905不需要完成所有輸入碼元的解碼。而是靜態(tài)解碼器910可以用于對(duì)動(dòng)態(tài)解碼器905未恢復(fù)的輸入碼元進(jìn)行解碼。
動(dòng)態(tài)解碼器905恢復(fù)的輸入碼元和冗余碼元被存儲(chǔ)在重建緩沖器915內(nèi)。在完成動(dòng)態(tài)解碼后,靜態(tài)解碼器910試圖恢復(fù)任何動(dòng)態(tài)解碼器905未恢復(fù)的輸入碼元,如果有的話。尤其是,靜態(tài)解碼器910從重建緩沖器915接收輸入碼元和冗余碼元。另外,靜態(tài)解碼器910從靜態(tài)密鑰發(fā)生器130(圖1)(如果使用的話)接收靜態(tài)密鑰S0,S1,...。回到圖1,在一特定實(shí)施例中,靜態(tài)密鑰可以通過(guò)將公共種子通過(guò)通信信道145傳遞到隨機(jī)數(shù)發(fā)生器135而經(jīng)重新生成,該發(fā)生器135驅(qū)動(dòng)靜態(tài)密鑰發(fā)生器130?;謴?fù)的輸入碼元被提供給輸入文件組裝器165。
圖12是根據(jù)本發(fā)明說(shuō)明用于解碼的方法的一實(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ù)很大,Q可以比原始輸入碼元數(shù)大不到3%。在其他應(yīng)用中,當(dāng)輸入碼元數(shù)較小,則Q可以比輸入碼元數(shù)至少大10%。尤其是Q可以被選為輸入碼元的數(shù)K加上數(shù)A,其中A被選擇保證解碼器可以以較高的概率重新生成所有的輸入碼元。確定數(shù)字A在以下描述。如果對(duì)于解碼器不能對(duì)所有的輸入碼元解碼(要么有時(shí)要么一直)是可接受的,則Q可以小于K+A,等于K或甚至小于K。很清楚地是,整個(gè)編碼系統(tǒng)的一個(gè)目的經(jīng)常是盡可能地減少Q(mào),而同時(shí)以期望的準(zhǔn)確度維持較佳概率保證解碼器過(guò)程的成功。
在步驟1010,動(dòng)態(tài)解碼器905從Q個(gè)接收到的輸出碼元重新生成輸入碼元和冗余碼元??梢岳斫?,步驟1005和1010可以大致進(jìn)發(fā)地實(shí)現(xiàn)。例如,動(dòng)態(tài)編碼器905可以在解碼器接收Q個(gè)輸出碼元前開(kāi)始重新生成輸入碼元和冗余碼元。
在動(dòng)態(tài)解碼器905處理了Q個(gè)輸出碼元后,可以確定輸入碼元是否被恢復(fù)到一定的準(zhǔn)確度。期望的準(zhǔn)確度可以是例如所有的輸入碼元或小于所有輸入碼元的一定數(shù)目、百分比等。如果是,則流程結(jié)束。如果不是,則流程進(jìn)行到步驟1020。在步驟1020,靜態(tài)解碼器910試圖恢復(fù)任何動(dòng)態(tài)解碼器905不能恢復(fù)的輸入碼元。在靜態(tài)編碼器910處理了動(dòng)態(tài)編碼器恢復(fù)的輸入碼元以及冗余碼元后,流程結(jié)束。
圖13是根據(jù)本發(fā)明用于解碼的方法的另一實(shí)施例的簡(jiǎn)化流圖。該實(shí)施例類似于關(guān)于圖11的描述,且包括相同的步驟1005、1010、1015和1025。但是,在步驟1025后,流程進(jìn)行到步驟1030,其中確定輸入碼元是否被恢復(fù)到期望的準(zhǔn)確度。如果是,則流程結(jié)束。如果不是,則流程進(jìn)行到步驟1035。在步驟1035,接收一個(gè)或多個(gè)附加輸出碼元。然后,流程回到步驟1010,使得動(dòng)態(tài)解碼器905和/或靜態(tài)解碼器910可以試圖恢復(fù)剩余的未經(jīng)恢復(fù)的輸入碼元。
圖14是根據(jù)本發(fā)明用于解碼方法的另一實(shí)施例的簡(jiǎn)化流圖。在步驟1055,由解碼器接收輸出碼元,且在步驟1060,動(dòng)態(tài)解碼器905從接收到的輸出碼元重新生成輸入碼元和冗余碼元。然后在步驟1065,確定是否應(yīng)中止動(dòng)態(tài)解碼。該確定是基于處理的輸出碼元數(shù)、恢復(fù)的輸入碼元數(shù)、附加輸入碼元正在被恢復(fù)的當(dāng)前速率、處理輸出碼元花費(fèi)的時(shí)間等中的一個(gè)或多個(gè)。
需要理解的是步驟1055、1060和1065可以大致進(jìn)發(fā)地實(shí)現(xiàn)。例如,動(dòng)態(tài)解碼器905可以在解碼器繼續(xù)接收輸出碼元時(shí)開(kāi)始重新生成輸入碼元和冗余碼元。另外,評(píng)估是否停止動(dòng)態(tài)解碼過(guò)程可以在正在接收輸出碼元和/或輸出碼元正在被動(dòng)態(tài)解碼器905處理時(shí)周期性地實(shí)現(xiàn)。
在步驟1065,如果確定不停止動(dòng)態(tài)解碼,則流程回到步驟1055。但是,如果在步驟1065,確定結(jié)束動(dòng)態(tài)解碼,則流程進(jìn)行到步驟1070。在步驟1070,確定輸入碼元是否被恢復(fù)到期望的準(zhǔn)確度。如果是,則流程結(jié)束。如果不是,則流程繼續(xù)進(jìn)行到步驟1075。在步驟1075,靜態(tài)解碼器910試圖恢復(fù)任何動(dòng)態(tài)解碼器905不能恢復(fù)的輸入碼元。在靜態(tài)解碼器910處理了由動(dòng)態(tài)編碼器905恢復(fù)的輸入碼元和冗余碼元后,流程結(jié)束。
動(dòng)態(tài)解碼器 圖15根據(jù)本發(fā)明示出動(dòng)態(tài)解碼器一實(shí)施例。動(dòng)態(tài)解碼器1100包括如圖5內(nèi)示出的動(dòng)態(tài)解碼器500類似的元件。解碼器1100類似于Luby I和Luby II內(nèi)描述的連鎖解碼器的實(shí)施例。動(dòng)態(tài)解碼器1100包括加權(quán)選擇器510、關(guān)聯(lián)器515,值函數(shù)選擇器520、輸出碼元緩沖器1105、縮減器1115、重建器1120以及重建緩沖器1125。如同編碼器,值函數(shù)選擇器520以及在輸出碼元緩沖器1105內(nèi)分配給存儲(chǔ)值函數(shù)的描述的空間是可選的,且如果值函數(shù)對(duì)于所有的輸出碼元相同,則可以不使用。示出重建緩沖器1125的幾項(xiàng),一些輸入碼元經(jīng)重建,其他仍未知,用問(wèn)號(hào)表示。例如,在圖15內(nèi),在位置0、2、5、6和K-1的輸入碼元以及在位置0和2的冗余碼元已經(jīng)被恢復(fù)了,且在位置1、3和4以及位置1處的冗余碼元仍要被恢復(fù)。
在操作中,對(duì)于有密鑰I和值B(I)的每個(gè)接收到的輸出碼元,解碼器1100進(jìn)行以下操作。密鑰I被提供給值函數(shù)選擇器520、加權(quán)選擇器510和關(guān)聯(lián)器515。使用K+R以及動(dòng)態(tài)密鑰I,加權(quán)選擇器510確定加權(quán)W(I)。使用K+R、動(dòng)態(tài)密鑰I以及W(I),關(guān)聯(lián)器515生成與輸出碼元相關(guān)聯(lián)的輸入和冗余碼元的W(I)個(gè)位置的列表AL(I)??蛇x地,使用K+R和I,值函數(shù)選擇器520選擇值函數(shù)F(I)。然后I、B(I)、W(I)和AL(I)以及可選的F(I)被存儲(chǔ)在輸出碼元緩沖器1105的行內(nèi)。值函數(shù)選擇器520、加權(quán)選擇器510以及關(guān)聯(lián)器515如同對(duì)動(dòng)態(tài)編碼器220(圖2)的描述對(duì)解碼器1105實(shí)現(xiàn)相同的操作。特別是,由圖15內(nèi)的值函數(shù)選擇器520、加權(quán)選擇器510和關(guān)聯(lián)器515生成的值函數(shù)F(I)、加權(quán)W(I)和列表AL(I)對(duì)于相同的動(dòng)態(tài)密鑰I如同對(duì)于圖5內(nèi)示出的對(duì)應(yīng)部分相同。如果K和R隨不同的輸入文件而不同,則它們可以以常規(guī)的方式從編碼器傳遞到解碼器,諸如將其包括在消息頭部。
重建器1120掃描輸出碼元緩沖器1105以尋找存儲(chǔ)在那里的帶有加權(quán)一即W(I)=1以及AL(I)只列出一個(gè)關(guān)聯(lián)的輸出碼元。這些碼元在此被稱為“可解碼集合”的成員。對(duì)于帶有上述特性的值函數(shù),加權(quán)一的輸出碼元在可解碼集合內(nèi),因?yàn)閯?dòng)態(tài)輸入碼元值可以從該輸出碼元被確定。當(dāng)然,如果使用值函數(shù),則會(huì)使得動(dòng)態(tài)輸入碼元在除了帶有加權(quán)一的條件下經(jīng)解碼,該條件會(huì)被用于確定是否輸出碼元在可解碼集合內(nèi)。為了清楚起見(jiàn),在此描述的示例假設(shè)可解碼集合是那些帶有加權(quán)一的輸出碼元,且這些示例擴(kuò)展到其他值函數(shù)可解碼條件從該描述中應(yīng)很清楚。
當(dāng)重建器1120找到在可解碼集合內(nèi)的一個(gè)輸出碼元時(shí),輸出碼元值B(I)以及可選的值函數(shù)F(I)用于重建在AL(I)內(nèi)列出的動(dòng)態(tài)輸入碼元,且重建后的動(dòng)態(tài)輸入碼元放入重建緩沖器1125對(duì)該輸入或冗余碼元合適的位置。如果指示的輸入或冗余碼元已經(jīng)被重建,則重建器1120可丟棄新重建的動(dòng)態(tài)輸入碼元,覆蓋現(xiàn)存的重建后輸入或冗余碼元,或者如果兩者不同,比較兩者并生成差錯(cuò)。在值函數(shù)是所有關(guān)聯(lián)的XOR情況下,輸入或冗余碼元值簡(jiǎn)單地是輸出碼元值。重建器1120因此只從可解碼集合內(nèi)的輸出碼元重建輸入和冗余碼元。一旦來(lái)自可解碼集合的輸出碼元被用于重建輸入或冗余碼元,則它可以被刪除以節(jié)省在輸出碼元緩沖器1105內(nèi)的空間。刪除“使用過(guò)”的輸出碼元還保證了重建器1120不會(huì)連續(xù)地重新訪問(wèn)該輸出碼元。
開(kāi)始時(shí),重建器1120等待直到至少接收了一個(gè)輸出碼元,該輸出碼元是可解碼集合的成員。一旦使用了這一個(gè)輸出碼元,可解碼集合會(huì)再次變空,除了一些其他輸出碼元可能只是這一個(gè)重建后的輸入或冗余碼元和一個(gè)其他的輸入或冗余碼元的函數(shù)。因此,從可解碼集合的成員重建一個(gè)輸入或冗余碼元會(huì)引起其他輸出碼元被加入可解碼集合。輸出碼元減少以將其加入可解碼集合的過(guò)程由縮減器1115實(shí)現(xiàn)。
縮減器1115掃描輸出碼元緩沖器1105和重建緩沖器1125以找到一些輸出碼元,這些碼元的列表AL(I)列出已經(jīng)被恢復(fù)的輸入或冗余碼元的位置。當(dāng)縮減器1115找到該種帶有密鑰I的“可縮減”的輸出碼元,縮減器1115獲得在位置h處的恢復(fù)后的動(dòng)態(tài)輸入碼元的值IS(h)并修改B(I)、W(I)以及AL(I),如下 B(I)被設(shè)定為B(I)IS(h) W(I)被設(shè)定為W(I)-1 AL(I)被設(shè)定為除了h以外的AL(I) 在上述等式中,假設(shè)值函數(shù)是所有關(guān)聯(lián)的值的XOR。值得注意的是XOR是其本身的反-如果情況不是這樣,且原來(lái)使用另一值函數(shù)以計(jì)算輸出碼元,則該值函數(shù)的反在此被縮減器1115使用。如應(yīng)很明顯的。如果已知多余一個(gè)關(guān)聯(lián)的值,則以上等式的等價(jià)可以經(jīng)計(jì)算以使得B(I)只取決于任何未知的關(guān)聯(lián)值(并相應(yīng)地調(diào)整W(I)和L(I))。
縮減器1115的行為減少了輸出碼元緩沖器1105內(nèi)的輸出碼元的加權(quán)。當(dāng)輸出碼元的加權(quán)被減少到一(或?qū)ζ渌岛瘮?shù)發(fā)生其他可解碼條件),則該輸出碼元成為可解碼集合的成員,可以由重建器1120對(duì)其進(jìn)行操作。實(shí)際上,一旦接收到充分?jǐn)?shù)量的輸出碼元,縮減器1115和重建器1120建立連鎖解碼,重建器1120對(duì)可解碼集合解碼以恢復(fù)更多的動(dòng)態(tài)輸入碼元,縮減器1115使用這些剛恢復(fù)的輸入或冗余碼元以減少更多的輸出碼元,使得它們被加入可解碼集合等,直到可解碼集合為空。
圖15內(nèi)示出的解碼器部分以直接方式部分地重建輸入和冗余碼元,而不考慮存儲(chǔ)器存儲(chǔ)、計(jì)算周期或傳輸時(shí)間。當(dāng)解碼器存儲(chǔ)、解碼時(shí)間或傳輸時(shí)間(這限制了接收到的輸出碼元數(shù))受限時(shí),解碼器可以經(jīng)優(yōu)化以更好地使用這些受限的資源。該種優(yōu)化的示例在例如Luby I和Luby II內(nèi)經(jīng)描述。這些優(yōu)化可以被用于多級(jí)編碼的動(dòng)態(tài)解碼。另外,可以理解可以使用其他的變體和等價(jià)的解碼器。
靜態(tài)解碼器 圖16是說(shuō)明靜態(tài)解碼器的一實(shí)施例的簡(jiǎn)化框圖。該實(shí)施例可以在數(shù)據(jù)用諸如圖7內(nèi)描述的靜態(tài)編碼器編碼時(shí)被使用。靜態(tài)解碼器1200包括LDPC解碼器1205以及漢明解碼器1210。LDPC解碼器1205從重建緩沖器1215接收輸入碼元以及冗余碼元,并試圖重建這些在動(dòng)態(tài)解碼器的解碼步驟之后未經(jīng)恢復(fù)的重建緩沖器1215的碼元。在一些實(shí)施例中,重建緩沖器1215是重建緩沖器1125(圖15)。LDPC解碼器1205接收由靜態(tài)密鑰發(fā)生器130生成的靜態(tài)密鑰S0,S1,...。另外,LDPC解碼器1205接收K個(gè)輸入碼元,D個(gè)冗余漢明碼元以及E個(gè)冗余LDPC碼元。LDPC解碼器1205以本領(lǐng)域內(nèi)技術(shù)人員已知的方式盡可能多地恢復(fù)輸入和冗余碼元,并將這些值寫入重建緩沖器1215內(nèi)對(duì)應(yīng)的位置。
漢明解碼器1210還經(jīng)耦合以從重建緩沖器1215接收輸入碼元和冗余碼元。另外,漢明解碼器1210接收輸入碼元數(shù)K、數(shù)字D,其中D+1是冗余漢明碼元數(shù)。漢明解碼器1210試圖恢復(fù)這些未被動(dòng)態(tài)解碼器和LDPC解碼器2005恢復(fù)的輸入碼元。雖然LDPC解碼器2005的目的是恢復(fù)盡可能多的輸入和冗余碼元,漢明解碼器2010只試圖恢復(fù)輸入碼元IS(0),IS(1),...,IS(K-1)。
LDPC解碼器和漢明解碼器的許多變體對(duì)于本領(lǐng)域內(nèi)的技術(shù)人員是熟知的,且可以用于本發(fā)明的各個(gè)實(shí)施例中。在一特定實(shí)施例中,漢明解碼器使用高斯消去(elimination)算法實(shí)現(xiàn)。高斯消去算法的許多變體在本領(lǐng)域內(nèi)已知,且可以根據(jù)本發(fā)明用于各個(gè)實(shí)施例。
在一定應(yīng)用中,更優(yōu)地是使用圖1內(nèi)示出的不同于上述一個(gè)類型的解碼器155。例如,如果輸入碼元數(shù)K不很大,例如小于1000,則輸出碼元的接收概率過(guò)程內(nèi)涉及的方差可以強(qiáng)迫解碼器155收集多個(gè)輸出碼元,這些輸出碼元遠(yuǎn)顯著大于K為了能使動(dòng)態(tài)和靜態(tài)解碼器糾正規(guī)定數(shù)目的擦除。在這些情況中,可以使用不同類型的解碼器。該種使用高斯消去的解碼器的實(shí)施例在以下參考圖17、18和19進(jìn)行描述。
首先,回到圖1,解碼器155從接收模塊150接收輸出碼元B(Ia),B(Ib),...,從動(dòng)態(tài)密鑰重新發(fā)生器160接收密鑰Ia,Ib,...,且從靜態(tài)密鑰發(fā)生器130接收密鑰S0,S1,...。另外,它接收輸入碼元的值K以及冗余碼元的值R。在接收到該輸入后,它試圖重建輸入碼元IS(0),...,IS(K-1),這些碼元被傳遞到輸入文件組裝器165以作進(jìn)一步處理。
現(xiàn)在參考圖17,解碼器1300包括動(dòng)態(tài)矩陣發(fā)生器1305和靜態(tài)矩陣發(fā)生器1310。動(dòng)態(tài)矩陣發(fā)生器1305接收輸出碼元B(Ia),B(Ib),...、動(dòng)態(tài)密鑰Ia,Ib,...以及參數(shù)K和R。另外,動(dòng)態(tài)矩陣發(fā)生器1305接收其他參數(shù)A,這些參數(shù)描述應(yīng)收集多少輸出碼元(即收集的輸出碼元數(shù)為K+A)。參數(shù)A的確定一般取決于用于動(dòng)態(tài)和靜態(tài)編碼的方法,且在以下會(huì)經(jīng)詳述。在以下的描述中,收集的K+A個(gè)輸出碼元被稱為B(0),B(1),...,B(K+A-1)。在接收到這些參數(shù)后,具有形式為C*轉(zhuǎn)置的線形方程組(IS(0),...,IS(K-1),RE(0),...,RE(R-1))=轉(zhuǎn)置(B(0),...,B(K+A-1)),該系統(tǒng)由動(dòng)態(tài)矩陣發(fā)生器1305設(shè)定,其中C是形式為(K+A)×(K+R)的矩陣。由動(dòng)態(tài)矩陣發(fā)生器1305的生成矩陣C在以下將詳述。
然后靜態(tài)矩陣發(fā)生器1310從動(dòng)態(tài)矩陣發(fā)生器1305接收矩陣C,并使用密鑰S0,S1,...以向矩陣C加入R行以獲得方程組 M*轉(zhuǎn)置(IS(0),...,IS(K-1),RE(0),...,RE(R-1))= 轉(zhuǎn)置(B(0),...,B(K+A-1),0,...0) 其中右邊向量的最后R項(xiàng)為零,且其中M為(K+A+R)×(K+R)格式。最終,使用線性方程組求解1315以求解該方程組M并獲得輸入碼元IS(0),...,IS(K-1)的一些或所有。在一特定實(shí)施例中,線性方程組求解器1315使用高斯消去算法以求解線性方程組。
動(dòng)態(tài)矩陣發(fā)生器1305和靜態(tài)矩陣發(fā)生器1310現(xiàn)在參考圖5的動(dòng)態(tài)編碼器500和圖2內(nèi)的靜態(tài)編碼器205進(jìn)一步詳細(xì)描述。圖18是說(shuō)明動(dòng)態(tài)矩陣發(fā)生器1305使用的方法的實(shí)施例。在步驟1405,動(dòng)態(tài)矩陣發(fā)生器1205初始化形式為(K+A)×(K+R)的矩陣C全為零。下一步,在步驟1410,密鑰Ia,Ib,...連同加權(quán)選擇器510和關(guān)聯(lián)器515一起用于生成加權(quán)W(0),...,W(K+A-1)以及相應(yīng)的列表AL(0),...,AL(K+A-1)。每個(gè)列表AL(k)包括在范圍0,...,K+R-1內(nèi)的W(k)個(gè)整數(shù)。在步驟1415內(nèi),這些整數(shù)用于用AL(k)=(a(0),...,a(W(k)-1)計(jì)算C(k,l),且項(xiàng)C(k,a(0)),...,C(k,a(W(k)-1))被設(shè)定為1。如上所述,矩陣C生成未知(IS(0),...,IS(K-1),RE(0),...,RE(R-1))關(guān)于(B(0),...,B(K+A-1))的方程組。原因如下一旦動(dòng)態(tài)編碼器選擇加權(quán)W(k)以及關(guān)聯(lián)列表AL(k)=(a(0),...,a(W(k)-1),則對(duì)應(yīng)的輸出碼元B(k)可以獲得為B(k)=L(a(0))L(a(1))...L(a(W(k)-1)), 其中L(j)表示在位置j處的重建緩沖器1925的未知值。這些方程為0到K+A-1間的所有k值累加,形成期望的方程組。
圖19是說(shuō)明靜態(tài)矩陣發(fā)生器1310使用的方法的一實(shí)施例簡(jiǎn)化流圖。該實(shí)施例參考圖10說(shuō)明。在圖10的步驟820內(nèi),值得注意的是冗余碼元RE(i)作為RE(i)=IS(P1)...IS(Pt)經(jīng)計(jì)算,且P1,P2,...,Pt如在步驟815內(nèi)在接收到密鑰Si后經(jīng)計(jì)算。這意味著IS(P1)...IS(Pt)RE(i)=0。用重建緩沖器的位置說(shuō)明,這意味著L(P1)...L(Pt)L(i+k)=0。將M的(i,P1),...,(i,Pt),(i,i-A)項(xiàng)設(shè)定為1,其中i從K+A到K+A+R-1,獲得矩陣M,該矩陣描述未知的(IS(0),...,IS(K-1),RE(0),...,RE(R-1))關(guān)于(B(0),...,B(K+A-1))的線性方程組,如上所述。
在步驟1505,格式為(K+A+R)×(K+R)的矩陣M通過(guò)使得M的前K+A行等于動(dòng)態(tài)矩陣發(fā)生器1305計(jì)算的矩陣C而經(jīng)初始化。M的剩余行經(jīng)初始化為零。下一步在步驟1510,變量i經(jīng)初始化為K+A。該變量跟蹤M的最后R行。在步驟1512,計(jì)算與冗余碼元i-K-A的相關(guān)聯(lián)的數(shù)t。該步驟類似于圖8的步驟810。特別是如果在圖8給出的靜態(tài)編碼過(guò)程中偏好另一t選擇,則還可以為步驟1512內(nèi)計(jì)算的變量t采取該選擇。在步驟1515,關(guān)聯(lián)器414從靜態(tài)密鑰Si、輸入碼元數(shù)K以及整數(shù)t計(jì)算在0到K-1之間的索引P1,P2,...,Pt。然而,矩陣M的對(duì)應(yīng)位置在步驟1530內(nèi)被設(shè)定為1。步驟1540內(nèi)的遞增和步驟1550內(nèi)的測(cè)試保證了M的所有最后R行被訪問(wèn)且經(jīng)計(jì)算。
在一些實(shí)施例中,圖17、18和19內(nèi)示出的實(shí)施例可以比在此描述的其他實(shí)施例更優(yōu),因?yàn)楸绕鹌渌麑?shí)施例,它允許相對(duì)收集更少的輸出碼元以進(jìn)行正確解碼。解碼器的選擇很大程度上取決于應(yīng)用,且取決于例如收集的輸出碼元數(shù)是否是關(guān)鍵資源。
關(guān)聯(lián)器實(shí)現(xiàn) 回到圖5,關(guān)聯(lián)器515的一實(shí)施例在Luby I內(nèi)描述。數(shù)N應(yīng)是質(zhì)數(shù)。在操作中,當(dāng)該實(shí)施例用于計(jì)算AL(I)時(shí),輸入大小K+R可以經(jīng)調(diào)整使得它是質(zhì)數(shù)。在本發(fā)明中,冗余碼元數(shù)目被選得充分大使得K+R為質(zhì)數(shù)。在一些應(yīng)用中,輸入N是質(zhì)數(shù)的條件非常有限制性。
另一用于實(shí)現(xiàn)關(guān)聯(lián)器520的方法的實(shí)施例在圖20內(nèi)示出,其中N不需要為質(zhì)數(shù)。首先在步驟1805,變量k被初始化為零。然后,在步驟1810處,生成隨機(jī)整數(shù)Y。在一特定實(shí)施例中,輸出碼元的密鑰被用作隨機(jī)數(shù)發(fā)生器的種子。然后,在步驟1815,對(duì)整數(shù)Y與進(jìn)行模數(shù)N運(yùn)算以生成0到N-1間的數(shù)。在步驟1820,候選數(shù)Y與其它先前生成的Y個(gè)(X(0),X(1),...)相比經(jīng)測(cè)試。如果Y已經(jīng)先前被生成,則流程回到步驟1810。否則,在步驟1825,它被包括在列表X(0),X(1),...內(nèi)。則在步驟1830,確定是否生成了W(I)個(gè)數(shù)。如果沒(méi)有,則流程回到步驟1810。圖8內(nèi)說(shuō)明的流程結(jié)果是W(I)個(gè)數(shù)X(0),X(1),...,X(W(I)-1)的列表,其中列表內(nèi)的每個(gè)數(shù)X是0到N-1間的唯一整數(shù)。然后,在步驟835內(nèi),列表AL(I)被設(shè)定為數(shù)X(0),X(1),...,X(W(I)-1)。
加權(quán)選擇器實(shí)現(xiàn) 編碼器/解碼器的性能的效率取決于圖2內(nèi)示出的動(dòng)態(tài)編碼器220生成的輸出碼元的加權(quán)分布,且一些分布優(yōu)于其他分布。尤其是參數(shù)A的選擇主要受到加權(quán)分布選擇的影響,該參數(shù)A描述與輸入碼元數(shù)K相比收集到數(shù)據(jù)碼元數(shù)超出情況。加權(quán)選擇的操作方面在以下描述,接著是一些重要的加權(quán)分布的描述。圖21的框圖和圖22的流圖用于說(shuō)明這些概念。
圖5內(nèi)示出的加權(quán)選擇器510的任務(wù)如下在接收到密鑰I和長(zhǎng)度K+R后,加權(quán)選擇器輸出在范圍0到K+R-1內(nèi)的整數(shù)W(I),該整數(shù)被稱為加權(quán)。不同于關(guān)聯(lián)器515,加權(quán)選擇器510的輸出希望不是均勻,而是偏斜的,更集中于一些加權(quán),而關(guān)聯(lián)器則理想地用均勻隨機(jī)分布均勻地生成整數(shù)。
如圖21示出,加權(quán)選擇器510包括兩個(gè)處理過(guò)程WT_INIT 1905和WT_CALC1910,以及兩個(gè)表格WT_RBITS 1915和WT_DISTRIB 1920。處理過(guò)程WT_INIT 1905只在當(dāng)?shù)谝幻荑€被傳遞以初始化表格WT_DISTRIB 1920時(shí)被調(diào)用。WT_DISTRIB1920的設(shè)計(jì)是系統(tǒng)的重要方面,且之后將更詳細(xì)描述。過(guò)程WT_CALC 1910在每次被調(diào)用時(shí)被啟用以基于密鑰I生成加權(quán)W(I)。如在圖22的流程圖內(nèi)示出的,WT_CALC 1910使用存儲(chǔ)在表格WT_RBITS 1915內(nèi)的密鑰和隨機(jī)比特以生成隨機(jī)數(shù)T(2005)。然后,T的值被用于在表格WT_DISTRIB 1920內(nèi)選擇行號(hào)N。
如圖21示出,WT_RBITS 1920內(nèi)的RANGE列內(nèi)的項(xiàng)是遞增的正整數(shù)序列,結(jié)束于值MAX_VAL,且WT列是遞增的正整數(shù)序列,結(jié)束于值MAX_WT。T的可能值集合是在零到MAX_VAL-1間的整數(shù)。期望的特性是T等概率地可能是可能值范圍內(nèi)的任何值。N的值是通過(guò)搜索RANGE列直到找到一N而確定的,該N滿足RANGE(N-1)≤T<RANGE(N)(2010)。一旦找到N,值W(I)被設(shè)定為WT(N)即表格WT_DISTRIB的WT列的第N項(xiàng),且這是返回的加權(quán)(2015,2020)。在圖21內(nèi),對(duì)于示出的示例表格,如果T等于38500,則N被確定為4,且因此W(I)被設(shè)定為WT(4)=8。在最優(yōu)實(shí)施例中,WT_DIST 1920的行經(jīng)組織使得RANGE(N)-RANGE(N-1)隨N遞增時(shí)值遞減。這最小化了通過(guò)WT_DIST 1920的平均搜索時(shí)間,即當(dāng)使用從第一行開(kāi)始的順序搜索時(shí)對(duì)應(yīng)值T的加權(quán)的時(shí)間。在其他實(shí)施例中,其他行的組織方式可能是更優(yōu)的,且可以使用其他的搜索方法,諸如二分搜索。
選擇加權(quán)分布 應(yīng)為給定的編碼過(guò)程選擇加權(quán)分布,使得輸入文件可以完整地被重建,使用a)盡可能少的輸出碼元,b)盡可能少的操作,以及c)盡可能高的可靠性。一般,這些最優(yōu)準(zhǔn)則可以通過(guò)準(zhǔn)確地為輸出碼元選擇正確的加權(quán)分布(即在所有I上的W(I)的分布)以及在輸出碼元上的關(guān)聯(lián)的分布(即在所有I上的AL(I)的成員)而達(dá)到。要強(qiáng)調(diào)的是雖然可以不管加權(quán)重分布和關(guān)聯(lián)選擇上的分布而應(yīng)用解碼過(guò)程,但最優(yōu)實(shí)施例會(huì)使用為接近最佳性能而選擇的加權(quán)分布和關(guān)聯(lián)選擇上的分布。實(shí)際上,許多分布性能很好,因?yàn)檫x擇的分布內(nèi)的較小變化只會(huì)導(dǎo)致性能內(nèi)較小的變化。
現(xiàn)在描述一種用于在最優(yōu)實(shí)施例中確定分布的方法。使用的實(shí)際加權(quán)分布取決于輸入碼元的數(shù)目K。分布給出如下,連同范圍(Kmin,Kmax)、因子β以及相對(duì)開(kāi)銷α。這有以下意義給定K,其中Kmin≤K≤Kmax,則冗余碼元數(shù)目R是用大于或等于β*K的最小整數(shù)計(jì)算的,收集的輸出碼元數(shù)應(yīng)至少為(1+α)*K,即上述的參數(shù)A是大于或等于α*K的最小整數(shù)。在使用第一個(gè)關(guān)聯(lián)器520的版本情況下,R應(yīng)附加地滿足K+R是質(zhì)數(shù)的條件,即R是大于等于β*K的最小質(zhì)數(shù)。如果應(yīng)用不需要K+R為質(zhì)數(shù),則R可以被選擇為大于或等于β*K的最小整數(shù)。
分布本身以以下形式的表格給出加權(quán)1 P1加權(quán)2 P2加權(quán)3 P3… … 其中P1是加權(quán)1的對(duì)應(yīng)概率,P2是加權(quán)2的對(duì)應(yīng)概率等,且其中P1、P2,...的和為一。這意味著圖21的表格WT_DISTRIB 1920有以下形式 加權(quán)1 MAX_VAL*P1加權(quán)2 MAX_VAL*(P1+P2)加權(quán)3 MAX_VAL*(P1+P2+P3)… … 將描述用于計(jì)算在此的表格的一般規(guī)則。設(shè)計(jì)的一個(gè)目標(biāo)是使得目前的具有減少加權(quán)碼元的一個(gè)非零數(shù)的輸出碼元盡可能地在進(jìn)入動(dòng)態(tài)解碼過(guò)程。最好,該數(shù)目能在到動(dòng)態(tài)解碼結(jié)束前的整個(gè)過(guò)程中一直大于零。然而,數(shù)學(xué)分析示出這只在如果輸出碼元的平均加權(quán)至少與輸入碼元數(shù)K的對(duì)數(shù)成正比時(shí)才可能,且這是Luby I內(nèi)描述的幾種加權(quán)分布的設(shè)計(jì)。本發(fā)明的一些實(shí)施例將該平均加權(quán)大大減少到固定的獨(dú)立于K的恒量。結(jié)果,減少加權(quán)碼元的輸出碼元數(shù)不能期望在整個(gè)動(dòng)態(tài)解碼過(guò)程期間大于零。
設(shè)計(jì)加權(quán)分布的初始步驟是獲得期望的動(dòng)態(tài)輸入碼元的數(shù)目表達(dá)式,其值在動(dòng)態(tài)輸入碼元的部分x尚未被恢復(fù)時(shí),可以從在動(dòng)態(tài)解碼過(guò)程中當(dāng)前可解碼集合內(nèi)的輸出碼元獲得。該表達(dá)式是加權(quán)1,2,...,k的輸出碼元的部分P1,P2,..,Pk以及收集的輸出碼元數(shù)和輸入和冗余碼元數(shù)之比的函數(shù)。以下,該比用γ表示??梢?jiàn)γ=(1+α)/(1+β)。該量的數(shù)學(xué)分析示出該種動(dòng)態(tài)輸入碼元的期望數(shù)目可以表示為<math> <mrow> <mi>K</mi> <mo>*</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>&beta;</mi> <mo>)</mo> </mrow> <mo>*</mo> <mrow> <mo>(</mo> <mi>x</mi> <mo>-</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>&gamma;</mi> <mo>)</mo> </mrow> <mo>*</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </msup> <mo>)</mo> </mrow> <mo>,</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow> </math> 其中x表示在動(dòng)態(tài)解碼過(guò)程中尚未被恢復(fù)的動(dòng)態(tài)輸入碼元部分,且

為多項(xiàng)式P1+2*P2*x+3*P3*x2+...+k*Pk*xk-1. (2) 由于該數(shù)目只是一個(gè)量的期望,這個(gè)量是統(tǒng)計(jì)性質(zhì)的,所以會(huì)有變化。該變化的分析顯示它與還未恢復(fù)的輸入碼元的期望數(shù)目即與x*K*(1+β)的方根成正比。為了合理地保證是與減少加權(quán)碼元的輸出碼元的相鄰的輸入碼元數(shù)總為正,則P1,...,Pk和γ的選擇應(yīng)使得<math> <mrow> <mi>K</mi> <mo>*</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>&beta;</mi> <mo>)</mo> </mrow> <mo>*</mo> <mrow> <mo>(</mo> <mi>x</mi> <mo>-</mo> <msup> <mi>e</mi> <mrow> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>&gamma;</mi> <mo>)</mo> </mrow> <mo>*</mo> <mi>&omega;</mi> <mrow> <mo>(</mo> <mn>1</mn> <mo>-</mo> <mi>x</mi> <mo>)</mo> </mrow> </mrow> </msup> <mo>)</mo> </mrow> <mo>></mo> <mi>c</mi> <mo>*</mo> <mi>sqrt</mi> <mrow> <mo>(</mo> <mi>x</mi> <mo>*</mo> <mi>K</mi> <mo>*</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>&beta;</mi> <mo>)</mo> </mrow> <mo>)</mo> </mrow> <mo>,</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mrow> </math> 其中該不等性對(duì)于在給定正實(shí)數(shù)ε和1間的所有x值均成立,且c是大于一的正實(shí)數(shù)。c越大,越能保證解碼過(guò)程的成功。ε越小,則在動(dòng)態(tài)解碼過(guò)程最后會(huì)有更少的未經(jīng)恢復(fù)輸入碼元。

越小,輸出碼元的平均加權(quán)越小。給定這些限制,可以為給定的ε和給定的c計(jì)算多項(xiàng)式

,其中所有的系數(shù)非負(fù),這滿足了ε和1之間的所有x值的上述不等性,且對(duì)此

盡可能地小。該最優(yōu)化可以由各種方法完成,例如在適當(dāng)?shù)夭僮魃鲜霾坏刃院笫褂脝渭冃嗡惴ā?br> 現(xiàn)在實(shí)際表格根據(jù)以上描述被給出。以上描述內(nèi)的恒量c的選擇是為了保證總解碼器擦除概率小于10-10。對(duì)于K>49251,差錯(cuò)概率小于10-12。這些表格僅作為可以被使用的加權(quán)分布示例而被提供??梢岳斫膺€可以使用其他加權(quán)分布。
表格1 K范圍9900-14800,β=0.008l,α=0.1187 10.01823520.47756230.15356540.10200650.03465170.04835280.06084180.058325190.008401700.008451710.029613 表格2 K范圍14801-19680,β=0.00121,α=0.08410.01931420.48358230.16075440.08163150.06754180.094528180.041968190.019462660.007987670.023233 表格3 K范圍19681-29510,β=0.0151,α=0.0769 10.01353120.48825030.16481040.07095350.08424380.05009390.042547190.055060620.00501988630.025491 表格4 K范圍29511-49250,β=0.0161,α=0.067410.01387620.48908730.16227640.08163850.06988080.08133990.014424180.017712190.040774660.014680670.014314 表格5 K范圍49251-64780,β=0.015,α=0.0558 10.00911720.49284330.16598340.07270750.08230380.05634790.036917190.055616650.022195660.005972 表格6 K范圍64781-79080,β=0.0114,α=0.0510.00796920.49357030.16622040.07264650.08255880.05605890.037229190.055590650.025023660.003135 表格7 K范圍79081-98623,β=0.01134,α=0.04710.00754420.4936130.16645840.07124350.08491380.04963390.043365190.045231200.010157660.010479670.017365表格8 K范圍98624-118349,β=0.01377,α=0.0424 10.00649520.49504430.16801040.06790050.08920980.04173190.050162190.038837200.015537660.016298670.010777 表格9 K范圍118350-∞,β=0.01579,α=0.039310.00480720.49647230.16691240.07337450.08220680.05747190.035951180.001167190.054305650.018235660.009100 例如,如果K=33000,則冗余碼元的數(shù)目可以是大于K*0.0161=531.3的最小整數(shù)R,使得K+R為質(zhì)數(shù)。即R=533。收集的輸出碼元數(shù)應(yīng)至少為(1+0.0674)*K即35225。
表格1的平均加權(quán)大致為6.75,且表格2到9的平均加權(quán)大致為6。這些平均加權(quán)與先前描述的Luby I的一實(shí)施例相比大大減少,先前的情況在K等于60000時(shí)平均加權(quán)為28.68。
較少輸入碼元的編碼 對(duì)于任何大小的輸入文件最好是相對(duì)較低的開(kāi)銷。如以上表格中可見(jiàn),隨著輸入碼元數(shù)K變得較小,相對(duì)開(kāi)銷α增加。例如,如果輸入文件有10000字節(jié),且K被選為10000使得每個(gè)碼元包括一個(gè)字節(jié),則開(kāi)銷大致為11%,這對(duì)于一些應(yīng)用是不期望的。一種減少開(kāi)銷的方法是增加輸入碼元數(shù)K,其代價(jià)是減少輸入碼元大小。例如,在期望大致7%的開(kāi)銷時(shí),K被選為40000。在該情況下,輸入碼元的大小會(huì)是2比特。然而使用非常小大小的輸入碼元實(shí)際上會(huì)導(dǎo)致計(jì)算不足。
該問(wèn)題的解決方法是使用基于高斯消去法的解碼器,諸如圖17內(nèi)描述的實(shí)施例。即使與其他實(shí)施例內(nèi)描述的任何靜態(tài)編碼器組合的連鎖解碼器相比,該解碼器計(jì)算效率沒(méi)有那么有效,與解碼器的非常小的失敗概率和開(kāi)銷的組合使得該解決方法在一些應(yīng)用內(nèi)是期望的。
尤其是,當(dāng)輸入碼元數(shù)K在800到9899之間時(shí),以下的加權(quán)分布可以用于動(dòng)態(tài)編碼器220 表格10 K范圍800-1600,β=0.08,α=0.0520.3930.09540.09550.095100.095190.095300.0951300.04 根據(jù)諸如圖10內(nèi)描述的靜態(tài)編碼器的操作生成0.08*K冗余碼元。解碼使用諸如圖17內(nèi)描述的解碼器完成。
作為一示例,假設(shè)輸入文件大小為16000字節(jié)。輸入碼元的選擇使得它們每個(gè)包括16個(gè)字節(jié),使得輸入碼元的數(shù)目K為1000。圖10內(nèi)的靜態(tài)編碼器用于建立80個(gè)冗余碼元。下一步,動(dòng)態(tài)編碼器220與上述的加權(quán)分布一起用于生成輸出碼元。接收機(jī)收集(1+α)*K=1050個(gè)輸出碼元并將其提供給圖17的解碼器。動(dòng)態(tài)矩陣發(fā)生器1305建立格式為1050×1080的矩陣C。靜態(tài)矩陣發(fā)生器1330建立格式1130×1080的矩陣M,并將其送到線性方程組求解器1340的系統(tǒng),該系統(tǒng)試圖對(duì)原始1000個(gè)輸入碼元(即輸入文件)解碼。
一些多級(jí)編碼的一些特性 如上所述的大多數(shù)的示例,輸入和輸出碼元對(duì)相同數(shù)量的比特進(jìn)行編碼,且每個(gè)輸出碼元被放入一個(gè)分組(分組是或者整個(gè)被接收到或者整個(gè)被丟失的傳輸單元)。在一些實(shí)施例中,通信系統(tǒng)經(jīng)修改使得每個(gè)分組包含幾個(gè)輸出碼元。輸出碼元值大小被設(shè)定到基于多個(gè)因子將文件初始分成輸入碼元時(shí)的輸入碼元值大小所確定的大小。解碼過(guò)程保持基本不變,除了輸出碼元在接收到每個(gè)分組時(shí)成串到達(dá)。
輸入碼元和輸出碼元大小的設(shè)置一般由文件的大小和輸出碼元要在其上發(fā)送的通信系統(tǒng)決定。例如,如果通信系統(tǒng)將數(shù)據(jù)比特分組成所定義的大小的分組或以其他方式分組比特,則碼元大小的設(shè)計(jì)開(kāi)始于該分組進(jìn)行分或組的大小。此后,設(shè)計(jì)者可以確定在一個(gè)分組或一組內(nèi)可以攜帶多少輸出碼元,并確定輸出碼元大小。為了簡(jiǎn)潔,設(shè)計(jì)者可能會(huì)使得輸入碼元大小設(shè)置為等于輸出碼元大小,且如果輸入數(shù)據(jù)使得不同的輸入碼元大小更方便,則也可以使用不同大小。
上述的編碼過(guò)程基于原始文件生成包含輸出碼元的分組流。流內(nèi)的每個(gè)輸出碼元獨(dú)立于所有其他的輸出碼元經(jīng)生成,且在可以建立的輸出碼元數(shù)上沒(méi)有上下界。一密鑰與每個(gè)輸出碼元關(guān)聯(lián)。該密鑰以及輸入文件的一些內(nèi)容確定輸出碼元值。接連生成的輸出碼元不需要連續(xù)的密鑰,且在一些應(yīng)用中,最好能隨即生成密鑰序列或偽隨機(jī)地生成該序列。
多級(jí)解碼的特性是如果原始文件可以被分成K個(gè)等大小的輸入碼元,且每個(gè)輸出碼元值長(zhǎng)度與輸入碼元值的長(zhǎng)度相同,則文件可以從平均K+A個(gè)輸出碼元中以很高的概率恢復(fù),其中A與K相比較小。例如,對(duì)于上述的加權(quán)分布,如果K大于19681,則A值超過(guò)α*K的概率最多為10-12,對(duì)于K的任何值,最多為10-10。由于特定的輸出碼元以隨機(jī)或偽隨機(jī)順序生成,且傳輸中的特定輸出碼元的丟失被假設(shè)為隨機(jī),則在恢復(fù)輸入文件需要的輸出碼元的實(shí)際數(shù)量上存在某些小方差。在一些情況下,其中特定的K+A分組的集合不足以對(duì)整個(gè)輸入文件解碼,如果接收機(jī)可以從一個(gè)或多個(gè)輸出分組源收集到更多的分組,則輸入文件仍可以被恢復(fù)。
由于輸出碼元數(shù)只受到I的分辨率的限制,則可以生成大大多于K+A個(gè)輸出碼元。例如,如果I為32比特?cái)?shù),則可以生成四十億不同的輸出碼元,然而文件僅可以包括K=50000個(gè)輸入碼元。在一些應(yīng)用中,這些四十億個(gè)輸出碼元只有一小部分被生成且被發(fā)送,且?guī)缀蹩隙ㄝ斎胛募梢杂煤苄〔糠值目赡茌敵龃a元以及極佳的概率被恢復(fù),輸入文件可以用稍微多于K個(gè)輸出碼元被恢復(fù)(假設(shè)輸入碼元大小與輸出碼元大小相同)。
在一些應(yīng)用中,可能可以接受不能對(duì)所有的輸入碼元解碼,或以相對(duì)較低的概率對(duì)所有輸入碼元解碼。在該種應(yīng)用中,接收機(jī)可以在接收到K+A個(gè)輸出碼元后停止試圖對(duì)所有的輸入碼元解碼。或接收機(jī)可以在接收到少于K+A個(gè)輸出碼元后停止接收輸出碼元。在一些應(yīng)用中,接收機(jī)可能只能接收到K個(gè)或更少的輸出碼元。因此,可以理解在本發(fā)明的一些實(shí)施例中,期望的準(zhǔn)確度可能不是所有輸入碼元的完整恢復(fù)。
而且,在一些不完整恢復(fù)可接受的應(yīng)用中,數(shù)據(jù)可以經(jīng)編碼使得所有的輸入碼元都不能被恢復(fù),或使得完整的輸入碼元需要接收到比輸入碼元數(shù)更多的輸出碼元。該種編碼一般要求的計(jì)算代價(jià)較少,且因此是減少編碼計(jì)算代價(jià)的可接受方法。
可以理解的是,上述圖內(nèi)的各種功能框可以用硬件和/或軟件的組合實(shí)現(xiàn),且在特定實(shí)現(xiàn)中,可以組合一些框的一些或所有功能。類似地,可以理解,這是描述的各個(gè)方法可以用硬件和/或軟件的組合而實(shí)現(xiàn)。
以上描述是說(shuō)明性的,而不是限制型的。本發(fā)明的許多變體對(duì)于領(lǐng)域內(nèi)的技術(shù)人員在閱讀了本揭示后會(huì)變得明顯。本發(fā)明的范圍因此不是由描述確定,而是由以下所附的權(quán)利要求書以及其等價(jià)的完整范圍確定。
權(quán)利要求
1.一種用于在通信信道上從源到目的地的數(shù)據(jù)傳輸?shù)木幋a的方法,其特征在于包括
從要發(fā)送的輸入碼元的排序集合生成多個(gè)冗余碼元;以及
從包括輸入碼元和冗余碼元的碼元組合集合生成多個(gè)輸出碼元,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于碼元的組合集合內(nèi)的碼元數(shù),其中從碼元的組合集合內(nèi)多于一個(gè)碼元且從碼元的組合集合內(nèi)少于所有碼元中生成至少一個(gè)輸出碼元,使得輸入碼元的排序集合可以從輸出碼元的任何預(yù)定數(shù)N經(jīng)重新生成達(dá)到期望的準(zhǔn)確度。
2.如權(quán)利要求1所述的方法,其特征在于還包括在通信信道上發(fā)送多個(gè)輸出碼元。
3.如權(quán)利要求1所述的方法,其特征在于進(jìn)一步包括在存儲(chǔ)媒質(zhì)上存儲(chǔ)多個(gè)輸出碼元。
4.如權(quán)利要求1所述的方法,其特征在于N大于輸入碼元的排序集合內(nèi)的輸入碼元數(shù)。
5.如權(quán)利要求1所述的方法,其特征在于N小于或等于輸入碼元的排序集合內(nèi)的輸入碼元數(shù)。
6.如權(quán)利要求1所述的方法,其特征在于還包括基于輸入碼元的排序集合內(nèi)的輸入碼元的數(shù)目K確定要生成的冗余碼元的數(shù)目R。
7.如權(quán)利要求6所述的方法,其特征在于K是輸入碼元數(shù)的估計(jì)。
8.如權(quán)利要求1所述的方法,其特征在于多個(gè)冗余碼元根據(jù)LDPC碼生成。
9.如權(quán)利要求1所述的方法,其特征在于多個(gè)冗余碼元包括多個(gè)第一冗余碼元和多個(gè)第二冗余碼元,且其中生成多個(gè)冗余碼元的步驟包括
從輸入碼元生成多個(gè)第一冗余碼元;以及
從第一冗余碼元和輸入碼元生成多個(gè)第二冗余碼元。
10.如權(quán)利要求9所述的方法,其特征在于多個(gè)第一冗余碼元根據(jù)漢明碼生成,且其中多個(gè)第二冗余碼元根據(jù)LDPC碼生成。
11.如權(quán)利要求10所述的方法,其特征在于還包括
基于輸入碼元的排序集合內(nèi)的輸入碼元數(shù)K確定第一冗余碼元的數(shù)目D+1;以及
基于要生成的冗余碼元的數(shù)目R和D+1確定第二冗余碼元數(shù)E。
12.如權(quán)利要求11所述的方法,其特征在于還包括基于K確定R。
13.如權(quán)利要求11所述的方法,其特征在于K是輸入碼元數(shù)的估計(jì)。
14.如權(quán)利要求11所述的方法,其特征在于D是使得2D-D-1>=K的最小整數(shù)。其中E=R-D-1。
15.如權(quán)利要求1所述的方法,其特征在于期望的準(zhǔn)確度是輸入碼元的完整恢復(fù)。
16.如權(quán)利要求1所述的方法,其特征在于期望的準(zhǔn)確度是輸入碼元以較高概率的完整恢復(fù)。
17.如權(quán)利要求1所述的方法,其特征在于期望的準(zhǔn)確度是G個(gè)輸入碼元的恢復(fù),其中G小于輸入碼元的排序集合內(nèi)的輸入碼元數(shù)。
18.如權(quán)利要求1所述的方法,其特征在于最多可以從任何數(shù)量的輸出碼元中重新生成最多G個(gè)輸入碼元,其中G小于輸入碼元的排序集合內(nèi)的輸入碼元數(shù)。
19.如權(quán)利要求1所述的方法,其特征在于生成多個(gè)冗余碼元,對(duì)于每個(gè)冗余碼元包括
根據(jù)一分布確定t個(gè)不同的輸入碼元;以及
按照t個(gè)不同輸入碼元的XOR計(jì)算每個(gè)冗余碼元。
20.如權(quán)利要求19所述的方法,其特征在于t對(duì)于所有冗余碼元相同。
21.如權(quán)利要求20所述的方法,其特征在于t是大于K/2的最小奇整數(shù),其中K是輸入碼元的排序集合內(nèi)的輸入碼元數(shù)。
22.如權(quán)利要求19所述的方法,其特征在于所述分布是均勻分布。
23.如權(quán)利要求1所述的方法,其特征在于還包括在通信信道上發(fā)送多個(gè)輸出碼元,其中生成多個(gè)輸出碼元的步驟是與發(fā)送多個(gè)輸出碼元的步驟大致上進(jìn)發(fā)進(jìn)行的。
24.如權(quán)利要求23所述的方法,其特征在于生成多個(gè)冗余碼元的步驟是與發(fā)送多個(gè)輸出碼元步驟大致進(jìn)發(fā)進(jìn)行的。
25.如權(quán)利要求23所述的方法,其特征在于生成多個(gè)冗余碼元的步驟是在發(fā)送多個(gè)輸出碼元步驟之前進(jìn)行的。
26.如權(quán)利要求1所述的方法,其特征在于生成多個(gè)輸出碼元的步驟是使用第一設(shè)備實(shí)現(xiàn)的,且其中生成多個(gè)冗余碼元的步驟是使用與第一設(shè)備分離的第二設(shè)備實(shí)現(xiàn)。
27.一系統(tǒng),用于在通信信道上對(duì)從源到目的地傳輸?shù)臄?shù)據(jù)編碼,其特征在于包括
被耦合以接收多個(gè)輸入碼元的靜態(tài)編碼器,多個(gè)輸入碼元從要發(fā)送的數(shù)據(jù)中生成,靜態(tài)編碼器包括冗余碼元發(fā)生器,所述發(fā)生器基于輸入碼元生成多個(gè)冗余碼元;以及
被耦合以接收多個(gè)輸入碼元和多個(gè)冗余碼元的動(dòng)態(tài)編碼器,動(dòng)態(tài)編碼器包括輸出碼元發(fā)生器,所述發(fā)生器從包括多個(gè)輸入碼元和多個(gè)冗余碼元的碼元組合集合中生成多個(gè)輸出碼元,其中可能輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于組合集合內(nèi)的碼元數(shù),其中從多于組合集合的碼元且小于組合集合的所有碼元中生成至少一個(gè)輸出碼元,使得輸入碼元的排序集合可以從輸出碼元的任何預(yù)定數(shù)N中重新生成達(dá)到期望的準(zhǔn)確度。
28.如權(quán)利要求27所述的系統(tǒng),其特征在于N大于輸入碼元排序集合內(nèi)的輸入碼元數(shù)。
29.如權(quán)利要求27所述的方法,其特征在于N小于或等于輸入碼元的排序集合內(nèi)的輸入碼元數(shù)。
30.如權(quán)利要求27所述的系統(tǒng),其特征在于還包括發(fā)射模塊,所述模塊耦合到動(dòng)態(tài)編碼器和通信信道,并在通信信道上接收輸出碼元并發(fā)送輸出碼元。
31.如權(quán)利要求27所述的系統(tǒng),其特征在于還包括密鑰發(fā)生器,所述密鑰發(fā)生器耦合到動(dòng)態(tài)編碼器,所述動(dòng)態(tài)編碼器為每個(gè)要生成的輸出碼元生成一密鑰,其中動(dòng)態(tài)編碼器經(jīng)耦合以接收每個(gè)密鑰,且其中動(dòng)態(tài)編碼器基于對(duì)應(yīng)的密鑰生成每個(gè)輸出碼元。
32.如權(quán)利要求27所述的系統(tǒng),其特征在于還包括密鑰發(fā)生器,所述密鑰發(fā)生器耦合到靜態(tài)編碼器,所述靜態(tài)編碼器為至少一些要生成的冗余碼元的每個(gè)生成密鑰,其中靜態(tài)編碼器經(jīng)耦合以接收每個(gè)密鑰,且其中靜態(tài)編碼器基于對(duì)應(yīng)的密鑰生成至少一些冗余碼元的每個(gè)。
33.如權(quán)利要求27所述的系統(tǒng),其特征在于靜態(tài)編碼其包括LDPC編碼器。
34.如權(quán)利要求27所述的系統(tǒng),其特征在于靜態(tài)編碼器還進(jìn)一步包括帶有第一冗余碼元發(fā)生器的第一靜態(tài)編碼器,且第二靜態(tài)編碼器具有第二冗余碼元發(fā)生器;
其中多個(gè)冗余碼元包括第一組冗余碼元以及
第二組冗余碼元;
其中第一冗余碼元發(fā)生器基于輸入碼元生成第一組冗余碼元;以及
其中第二冗余碼元發(fā)生器基于輸入碼元和第一組冗余碼元生成第二組冗余碼元。
35.如權(quán)利要求34所述的系統(tǒng),其特征在于第一靜態(tài)編碼器包括漢明編碼器,其中第二靜態(tài)編碼器包括LDPC編碼器。
36.在通信信道上從源接收發(fā)送的數(shù)據(jù)的方法,其特征在于該方法包括
接收輸出碼元,其中每個(gè)輸出碼元從輸入碼元和冗余碼元的組合集合內(nèi)的至少一個(gè)碼元生成,其中至少一個(gè)輸出碼元從多于組合集合內(nèi)的一個(gè)碼元且少于組合集合內(nèi)所有碼元中生成,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于組合集合內(nèi)的碼元數(shù),其中輸入碼元來(lái)自輸入碼元的排序集合,其中冗余碼元從輸入碼元生成;
在接收到至少輸出碼元的一個(gè)子集后,從輸出碼元重新生成組合集合內(nèi)的至少一個(gè)碼元的子集,所述組合集合內(nèi)的碼元子集包括多個(gè)重新生成的輸入碼元以及多個(gè)重新生成的冗余碼元;
如果從N個(gè)輸出碼元重新生成碼元的至少一個(gè)子集的步驟沒(méi)有按照期望的準(zhǔn)確度重新生成輸入碼元,則從多個(gè)重新生成的冗余碼元和多個(gè)重新生成的輸入碼元重新生成至少一些未經(jīng)重新生成的輸入碼元。
37.如權(quán)利要求36所述的方法,其特征在于冗余碼元包括第一組冗余碼元和第二組冗余碼元,其中至少重新生成一些未經(jīng)重新生成的輸入碼元的步驟包括
從第一組冗余碼元的重新生成的冗余碼元以及多個(gè)經(jīng)重新生成的輸入碼元,重新生成未經(jīng)重新生成的輸入碼元的至少一個(gè)以及第二組冗余碼元的未經(jīng)重新生成冗余碼元;以及
如果從第一組冗余碼元的重新生成冗余碼元和多個(gè)重新生成輸入碼元的重新生成步驟沒(méi)有按期望的準(zhǔn)確度重新生成輸入碼元,則從第二組冗余碼元的冗余碼元和多個(gè)解碼后輸入碼元重新生成至少一個(gè)未經(jīng)重新生成的輸入碼元。
38.如權(quán)利要求37所述的方法,其特征在于一些未經(jīng)重新生成的輸入碼元和第二組冗余碼元的未經(jīng)重新生成的冗余碼元使用LDPC解碼器重新生成,以及
其中一些輸入碼元使用漢明解碼器從第二組冗余碼元的冗余碼元經(jīng)重新生成。
39.如權(quán)利要求36所述的方法,其特征在于重新生成至少一些未被重新生成的輸入碼元的步驟包括重新生成所有未被重新生成的輸入碼元。
40.如權(quán)利要求36所述的方法,其特征在于重新生成組合集合內(nèi)的碼元子集合的步驟以及重新生成至少一些未經(jīng)重新生成的輸入碼元的步驟包括
形成第一矩陣,所述矩陣為每個(gè)接收到的輸出碼元指示與輸出碼元相關(guān)聯(lián)的組合集合內(nèi)的碼元;
使用信息增廣所述第一矩陣,所述信息為每個(gè)冗余碼元指示與冗余碼元相關(guān)的輸入碼元;以及
重新生成至少一些輸入碼元,作為由增廣的第一矩陣指明的方程組的解。
41.如權(quán)利要求36所述的方法,其特征在于N大于或等于輸入碼元數(shù)。
42.如權(quán)利要求36所述的方法,其特征在于N小于輸入碼元數(shù)。
43.如權(quán)利要求36所述的方法,其特征在于重新生成至少一些未經(jīng)生成的輸入碼元包括重新生成所有的輸入碼元。
44.如權(quán)利要求36所述的方法,其特征在于重新生成至少一些未經(jīng)生成的輸入碼元包括重新生成少于所有的輸入碼元。
45.一系統(tǒng)用于接收在通信信道上從源發(fā)送的數(shù)據(jù),其特征在于包括
接收模塊,所述模塊耦合到通信信道用于接收在通信信道上發(fā)送的輸出碼元,其中每個(gè)輸出碼元從輸入碼元和冗余碼元的組合集合內(nèi)的至少一個(gè)碼元生成,其中至少一個(gè)輸出碼元從組合集合內(nèi)多于一個(gè)碼元以及組合集合內(nèi)少于所有碼元中生成,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于組合集合內(nèi)的碼元數(shù),其中輸入碼元來(lái)自輸入碼元的排序集合,其中冗余碼元從輸入碼元生成;
動(dòng)態(tài)解碼器,在接收到輸出碼元的至少一子集合后,對(duì)來(lái)自輸出碼元的的組合集合內(nèi)的碼元子集進(jìn)行解碼,所述組合集合內(nèi)的碼元子集包括多個(gè)解碼后的輸入碼元和多個(gè)解碼后的冗余碼元;以及
靜態(tài)解碼器,從多個(gè)解碼后的冗余碼元對(duì)未經(jīng)解碼的輸入碼元(如果有的話)的至少一些進(jìn)行解碼。
46.如權(quán)利要求45所述的系統(tǒng),其特征在于所述靜態(tài)解碼器包括LDPC解碼器。
47.如權(quán)利要求45所述的系統(tǒng),其特征在于冗余碼元包括第一組冗余碼元和第二組冗余碼元,其中靜態(tài)編碼器包括
第一靜態(tài)解碼器,所述解碼器從第一組冗余碼元的解碼后冗余碼元和多個(gè)解碼后輸入碼元,對(duì)未經(jīng)解碼的輸入碼元和第二組冗余碼元的未經(jīng)解碼的冗余碼元的至少一個(gè)進(jìn)行解碼;
第二靜態(tài)解碼器,從第二組冗余碼元的冗余碼元和多個(gè)解碼后的輸入碼元對(duì)至少一個(gè)未經(jīng)解碼的輸入碼元解碼。
48.如權(quán)利要求47所述的系統(tǒng),其特征在于第一靜態(tài)編碼器包括LDPC解碼器,且其中第二靜態(tài)解碼器包括漢明解碼器。
49.如權(quán)利要求45所述的系統(tǒng),其特征在于動(dòng)態(tài)解碼器包括一處理器,用于執(zhí)行以下步驟
形成第一矩陣,所述矩陣為每個(gè)接收到的輸出碼元指示與輸出碼元相關(guān)聯(lián)的組合集合內(nèi)的碼元;
使用信息增大所述第一矩陣,所述信息為每個(gè)冗余碼元指示與冗余碼元相關(guān)聯(lián)的輸入碼元;以及
重新生成至少一些輸入碼元,作為由增廣的第一矩陣指明的方程組的解。
50.體現(xiàn)在載波中的計(jì)算機(jī)數(shù)據(jù)信號(hào),其特征在于包括
多個(gè)輸出碼元,其中多個(gè)輸出碼元表示從包括輸入碼元和冗余碼元的排序集合的碼元組合集合生成的碼元,其中冗余碼元從輸入碼元被生成,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于碼元組合集合內(nèi)的碼元數(shù),其中至少一個(gè)輸出碼元從碼元的組合集合內(nèi)多于一個(gè)碼元以及從碼元組合集合內(nèi)少于所有碼元生成;
使得數(shù)據(jù)信號(hào)接收機(jī)能從輸出碼元的任何預(yù)定數(shù)量N按期望的準(zhǔn)確度重新生成輸入碼元的排序集合。
51.如權(quán)利要求36所述的方法,其特征在于重新生成碼元的至少一子集的步驟在接收到預(yù)定數(shù)量N的任何輸出碼元后執(zhí)行。
52.如權(quán)利要求36所述的方法,其特征在于重新生成碼元的至少一子集的步驟是在接收到數(shù)量N的任何輸出碼元后執(zhí)行,其中的N使得輸入碼元可以被重新生成達(dá)到所希望的準(zhǔn)確度。
53.如權(quán)利要求36所述的方法,其特征在于重新生成碼元的至少一子集的步驟在大致與接收到輸出碼元進(jìn)發(fā)地執(zhí)行。
全文摘要
提供了一種用于在通信信道(145)上從源(101)到目的地(170)的數(shù)據(jù)傳輸編碼的方法。從要發(fā)送的輸入碼元的排序集合生成多個(gè)冗余碼元。從包括輸入碼元和冗余碼元的碼元組合集合生成多個(gè)輸出碼元,其中可能的輸出碼元數(shù)遠(yuǎn)遠(yuǎn)大于碼元的組合集合內(nèi)的碼元數(shù),其中從碼元的組合集合內(nèi)多于一個(gè)碼元且從碼元的組合集合內(nèi)少于所有碼元生成至少一個(gè)輸出碼元,使得輸入碼元的排序集合可以從輸出碼元的任何預(yù)定數(shù)N經(jīng)重新生成達(dá)到期望的準(zhǔn)確度。
文檔編號(hào)H04L25/49GK1620760SQ0282811
公開(kāi)日2005年5月25日 申請(qǐng)日期2002年12月23日 優(yōu)先權(quán)日2001年12月21日
發(fā)明者A·M·肖克羅拉希, S·拉森, M·路比 申請(qǐng)人:數(shù)字方敦股份有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
德令哈市| 大同县| 郁南县| 正宁县| 通城县| 吉首市| 阳信县| 化隆| 莒南县| 黎川县| 琼中| 丰原市| 泗洪县| 抚远县| 图木舒克市| 天全县| 颍上县| 长海县| 铜川市| 双鸭山市| 大安市| 雷山县| 安达市| 衢州市| 十堰市| 古丈县| 保德县| 青冈县| 沙坪坝区| 洛南县| 临朐县| 红桥区| 自贡市| 台州市| 县级市| 乳源| 南和县| 大兴区| 黄骅市| 峨边| 滨州市|