專利名稱:增壓碼的制作方法
技術(shù)領(lǐng)域:
本申·請(qǐng)總體上涉及對(duì)經(jīng)由擦除信道傳輸?shù)姆?hào)的編碼,且更具體地,涉及對(duì)經(jīng)由數(shù)據(jù)包擦除信道傳輸?shù)臄?shù)據(jù)包的編碼。
背景技術(shù):
數(shù)據(jù)包擦除信道是一種接收或丟失所發(fā)送的數(shù)據(jù)包且了解任何丟失的數(shù)據(jù)包的位置的通信信道模型。通??蓪⒒ヂ?lián)網(wǎng)模型化為數(shù)據(jù)包擦除信道。這是因?yàn)橛捎趽p壞或堵塞,可能會(huì)丟失經(jīng)由互聯(lián)網(wǎng)傳輸?shù)臄?shù)據(jù)包,且可從每個(gè)所接收的數(shù)據(jù)包的報(bào)頭或有效載荷內(nèi)包括的序列號(hào)中推測(cè)出任何丟失的數(shù)據(jù)包的位置。根據(jù)由數(shù)據(jù)包流攜帶的數(shù)據(jù)的類型,丟失的數(shù)據(jù)包可能降低數(shù)據(jù)質(zhì)量或者甚至給予在接收器處不可用的數(shù)據(jù)。因此,恢復(fù)機(jī)制通常被用于提供將接收經(jīng)由擦除信道發(fā)送的數(shù)據(jù)包的某種可靠性水平。例如,重新傳輸機(jī)制被用于恢復(fù)多個(gè)基于數(shù)據(jù)包的網(wǎng)絡(luò)中丟失的數(shù)據(jù)包,但例如在發(fā)送器和接收器之間有很大的距離時(shí),或者在信道嚴(yán)重受損時(shí),重新傳輸可能造成很長(zhǎng)延遲。由于這一和其他原因,使用擦除碼的前向糾錯(cuò)(FEC)通常代替或結(jié)合常規(guī)重新傳輸機(jī)制來(lái)實(shí)施。擦除碼將k個(gè)數(shù)據(jù)包串編碼為較長(zhǎng)的η個(gè)數(shù)據(jù)包串,使得在接收器處可從η個(gè)數(shù)據(jù)包的子集中恢復(fù)原始的k個(gè)數(shù)據(jù)包串,而無(wú)需任何重新傳輸。擦除碼的性能可基于其接收效率和與其編碼和解碼算法相關(guān)的計(jì)算復(fù)雜性來(lái)表征。擦除碼的接收效率由分?jǐn)?shù)k’ /k給出,其中,k’為η個(gè)數(shù)據(jù)包的需要接收以恢復(fù)原始的k個(gè)數(shù)據(jù)包串的最小數(shù)量。特定擦除碼具有最佳接收效率(即,最高可獲得的接收效率)且可使用所發(fā)送的η個(gè)數(shù)據(jù)包中的任何(且僅)k個(gè)數(shù)據(jù)包來(lái)恢復(fù)原始的k個(gè)數(shù)據(jù)包串。里德-所羅門(Reed-Solomon)碼是具有最佳接收效率的MDS碼,但用于實(shí)施里德-所羅門碼的典型編碼和解碼算法具有很高相關(guān)計(jì)算的復(fù)雜性。具體地,其計(jì)算復(fù)雜性隨著數(shù)據(jù)包數(shù)量η而增長(zhǎng),且其階(order)為0(nlog(n))。這使得對(duì)于許多基于數(shù)據(jù)包的網(wǎng)絡(luò)(包括互聯(lián)網(wǎng))而言無(wú)法實(shí)行純粹的里德-所羅門解決方案,這些網(wǎng)絡(luò)支持被分段成多個(gè)可能很大的數(shù)據(jù)包的大文件/流的傳輸。
發(fā)明內(nèi)容
本發(fā)明提供了一種用于對(duì)形成消息的輸入符號(hào)擦除編碼的方法,包括:基于所述消息來(lái)實(shí)施分別提供第一組碼字、第二組碼字和第三組碼字的至少三個(gè)塊編碼操作;基于所述第一組碼字來(lái)實(shí)施分別提供第四組碼字和第五組碼字的至少兩個(gè)濾波器編碼操作;為所述兩個(gè)濾波器編碼操作中的至少一個(gè)修改考慮到所述第一組碼字的位的順序;以及并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字以形成用于經(jīng)由擦除信道傳輸?shù)木幋a符號(hào)。上述方法還包括:在所述第二組碼字和所述第三組碼字與所述第四組碼字和所述第五組碼字并行連接之前,實(shí)施分別重復(fù)所述第二組碼字和所述第三組碼字一定次數(shù)的重復(fù)編碼操作。上述方法中,使用異或運(yùn)算來(lái)并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字。上述方法還包括:在并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字之前,以無(wú)規(guī)律方式一起多路復(fù)用所述第四組碼字和所述第五組碼字。上述方法中,所述塊編碼操作中的提供所述第一組碼字的一個(gè)塊編碼操作實(shí)施二進(jìn)制塊碼?!ど鲜龇椒ㄖ?,所述塊編碼操作中的提供所述第二組碼字的一個(gè)塊編碼操作在有限域上實(shí)施非二進(jìn)制塊碼。上述方法中,所述非二進(jìn)制塊碼為里德-所羅門塊碼。上述方法中,所述塊編碼操作中的提供所述第三組碼字的一個(gè)塊編碼操作實(shí)施二進(jìn)制塊碼。上述方法中,所述兩個(gè)濾波器編碼操作中的至少一個(gè)使用咬尾濾波器。本發(fā)明提供了一種用于對(duì)形成消息的輸入符號(hào)擦除編碼的編碼器,包括:三個(gè)塊編碼模塊,被配置為基于所述消息分別提供第一組碼字、第二組碼字和第三組碼字;兩個(gè)濾波器編碼模塊,被配置為基于所述第一組碼字分別提供第四組碼字和第五組碼字;交織器,被配置成為所述兩個(gè)濾波器編碼模塊中的至少一個(gè)修改考慮到所述第一組碼字的位的順序;以及連接模塊,被配置為并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字以形成用于經(jīng)由擦除信道傳輸?shù)木幋a符號(hào)。上述編碼器還包括:重復(fù)編碼模塊,被配置為在由所述連接模塊將所述第二組碼字和所述第三組碼字與所述第四組碼字和所述第五組碼字并行連接之前,重復(fù)所述第二組碼字和所述第三組碼字一定次數(shù)。上述編碼器還包括:多路復(fù)用器,被配置為在由所述連接模塊并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字之前,以無(wú)規(guī)律方式一起多路復(fù)用所述第四組碼字和所述第五組碼字。上述編碼器中,所述三個(gè)塊編碼模塊中的被配置為提供所述第二組碼字的一個(gè)塊編碼模塊在有限域上實(shí)施非二進(jìn)制塊碼。上述編碼器中,所述非二進(jìn)制塊碼為里德-所羅門塊碼。上述編碼器中,所述兩個(gè)濾波器編碼模塊中的至少一個(gè)包括咬尾濾波器。上述編碼器中,所述兩個(gè)濾波器編碼模塊中的至少一個(gè)包括有限脈沖響應(yīng)(FIR)濾波器。上述編碼器中,所述連接模塊實(shí)施異或運(yùn)算。
上述編碼器中,所述編碼器在臺(tái)式計(jì)算機(jī)、膝上型電腦、平板電腦、移動(dòng)電話、機(jī)頂盒或路由器內(nèi)實(shí)施。本發(fā)明還提供了一種用于對(duì)形成消息的輸入符號(hào)擦除編碼的編碼器,包括:塊編碼模塊,被配置為基于所述消息提供第一組碼字;兩個(gè)濾波器編碼模塊,其被交織器分離且被配置為基于所述消息分別提供第二組碼字和第三組碼字;以及連接模塊,被配置為并行連接所述第一組碼字、所述第二組碼字和所述第三組碼字以形成用于經(jīng)由擦除信道傳輸?shù)木幋a符號(hào)。本發(fā)明提供了一種解碼器,包括:處理器;以及存儲(chǔ)器,其中,所述處理器被配置為解碼通過以下方式編碼的符號(hào):基于由所述符號(hào)形成的消息來(lái)實(shí)施塊編碼操作以提供第一組碼字;基于所述消息來(lái)實(shí)施由交織器分離的至少兩個(gè)濾波器編碼操作以提供第二組碼字和第三組碼字;以及連接所述第一組碼字、所述第二組碼字和所述第三組碼字。
結(jié)合到本文中且形·成本說(shuō)明書的一部分的附圖示出了本公開的實(shí)施方式,并與描述一起進(jìn)一步用于解釋實(shí)施方式的原理,且能使相關(guān)領(lǐng)域技術(shù)人員制造和使用這些實(shí)施方式。圖1示出了根據(jù)本公開實(shí)施方式的實(shí)施增壓碼(supercharged code)的編碼器的框圖;圖2示出了可由根據(jù)本公開實(shí)施方式的實(shí)施增壓碼的編碼器使用的實(shí)例性并行(parallel,并聯(lián))濾波器編碼模塊;圖3示出了可由根據(jù)本公開實(shí)施方式的并行濾波器碼使用的實(shí)例性有限脈沖響應(yīng)(FIR)濾波器;圖4示出了根據(jù)本公開實(shí)施方式的除額外的系統(tǒng)預(yù)處理模塊之外具有與圖1中的編碼器相同的實(shí)施的編碼器;圖5示出了可被用于實(shí)施本公開的方面的實(shí)例性計(jì)算機(jī)系統(tǒng)的框圖。將參照附圖來(lái)描述本公開的實(shí)施方式。元件首次出現(xiàn)的附圖通常由相應(yīng)附圖標(biāo)記中最左側(cè)數(shù)字來(lái)表示。
具體實(shí)施例方式在以下描述中,闡述了多個(gè)具體細(xì)節(jié)以提供對(duì)本公開實(shí)施方式的徹底理解。然而,對(duì)于本領(lǐng)域技術(shù)人員而言,顯然無(wú)需這些具體細(xì)節(jié)即可實(shí)踐包括結(jié)構(gòu)、系統(tǒng)和方法的實(shí)施方式。本文中的描述和表示是本領(lǐng)域有經(jīng)驗(yàn)的或技術(shù)人員用于將其工作內(nèi)容最有效地傳達(dá)給本領(lǐng)域其他技術(shù)人員的常用手段。在其他情況下,未詳細(xì)描述眾所周知的方法、程序、部件和電路以避免給本發(fā)明的方面造成不必要的模糊。本說(shuō)明書中對(duì)“一種實(shí)施方式”、“實(shí)施方式”、“實(shí)例性實(shí)施方式”等的引用表示所述實(shí)施方式可包括具體特征、結(jié)構(gòu)或特性,但每種實(shí)施方式可能不一定包括該具體特征、結(jié)構(gòu)或特性。此外,這些短語(yǔ)不一定是指相同的實(shí)施方式。此外,當(dāng)結(jié)合實(shí)施方式來(lái)描述具體特征、結(jié)構(gòu)或特性時(shí),遵從對(duì)結(jié)合不論是否明確描述的其他實(shí)施方式的該特征、結(jié)構(gòu)或特性的影響屬于本領(lǐng)域技術(shù)人員認(rèn)識(shí)范圍內(nèi)。
1.概述本公開針對(duì)用于將k個(gè)輸入符號(hào)編碼成用于經(jīng)由擦除信道傳輸?shù)妮^長(zhǎng)的η個(gè)輸出符號(hào)串使得無(wú)需任何重新傳輸即可從η個(gè)輸出符號(hào)的子集中恢復(fù)原始的k個(gè)輸入符號(hào)的系統(tǒng)和方法。符號(hào)是由一個(gè)或多個(gè)位組成的通用數(shù)據(jù)單元,其可以是例如數(shù)據(jù)包。本公開的系統(tǒng)和方法利用包括塊碼(block code)和并行濾波器碼的擦除碼網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)對(duì)于較小和較大值η具有低編碼和解碼計(jì)算復(fù)雜性的非常接近于理想MDS碼的性能。該擦除碼網(wǎng)絡(luò)被稱為增壓碼。2.增壓碼2.1.編碼器圖1示出了根據(jù)本公開實(shí)施方式的實(shí)施增壓碼的編碼器100的框圖。編碼器100可以硬件、軟件或其任何組合來(lái)實(shí)施以將k個(gè)輸入符號(hào)的矩陣X編碼成用于經(jīng)由擦除信道傳輸?shù)妮^長(zhǎng)長(zhǎng)度的η個(gè)輸出符號(hào)的矩陣·Y,從而無(wú)需任何重新傳輸即可從η個(gè)輸出符號(hào)的子集中恢復(fù)原始的k個(gè)輸入符號(hào)。矩陣X中的位的每一行形成k個(gè)輸入符號(hào)中的不同的一個(gè),且矩陣Y中的每一行形成η個(gè)輸出符號(hào)中的不同的一個(gè)。例如,矩陣X中的位的第一行116形成矩陣X內(nèi)的k個(gè)輸入符號(hào)中的第一個(gè),以及矩陣Y中的位的第一行118形成矩陣Y內(nèi)的η個(gè)輸出符號(hào)中的第一個(gè)。此外,矩陣X中的位的每一列形成所謂的消息,以及矩陣Y中的位的每一相應(yīng)列形成所謂的消息碼字。例如,矩陣X中的位的第一列120形成一條消息,以及矩陣Y中的位的第一列122形成消息碼字。其后,矩陣X和Y中的位的相應(yīng)列形成額外的消息和碼字對(duì)。應(yīng)注意,編碼器100中的每個(gè)編碼模塊(以下將描述)接收輸入符號(hào)/消息的矩陣,并生成與矩陣X和Y相同的上述通用形式的輸出符號(hào)/碼字的矩陣。在某些情況下,編碼器100中的編碼模塊串聯(lián)放置,使得由一個(gè)編碼模塊生成的輸出符號(hào)/碼字的矩陣表示由編碼器100中的另一編碼模塊接收到的輸入符號(hào)/消息的矩陣。遍及整個(gè)以下本公開中,術(shù)語(yǔ)輸入符號(hào)、輸出符號(hào)、消息和碼字以相同方式被用于描述這些矩陣。如圖1所不,編碼器100由包括塊編碼t旲塊102、104和106、重復(fù)編碼|旲塊108和110、以及并行濾波器編碼模塊112的編碼模塊的網(wǎng)絡(luò)構(gòu)成。通常,由塊編碼模塊102、104和106生成的輸出碼字具有信息性且提供較高接收效率,但卻解碼復(fù)雜,而由并行濾波器編碼模塊112生成的輸出碼字相對(duì)容易解碼,但卻沒有信息性。因此,編碼器100使用重復(fù)編碼模塊108和110來(lái)分別重復(fù)由塊編碼模塊102和106生成的較短長(zhǎng)度的輸出碼字,且隨后該編碼器使用異或(XOR)運(yùn)算114 (或諸如多路復(fù)用器的某個(gè)其他連接模塊,或者在非二進(jìn)制有限域上的XOR運(yùn)算)將它們與由并行濾波器編碼模塊112生成的較長(zhǎng)長(zhǎng)度的輸出碼字并行連接來(lái)產(chǎn)生η個(gè)增壓編碼的輸出符號(hào)的序列。該編碼模塊網(wǎng)絡(luò)可實(shí)現(xiàn)對(duì)于較小和較大編碼塊大小(即,對(duì)于k的較小和較大值)具有低編碼和解碼計(jì)算復(fù)雜性的非常接近于理想MDS碼的性能。應(yīng)注意,在編碼器100的其他實(shí)施方式中,可省略兩個(gè)塊編碼模塊102和106中的一個(gè)和/或塊編碼模塊104和/或到并行濾波器編碼模塊112中的矩陣X的直接輸入。在編碼器100的一種實(shí)施方式中,塊編碼模塊102實(shí)施二進(jìn)制線性塊碼,其接受矩陣X中的k個(gè)輸入符號(hào)作為輸入,并通過線性映射生成n_bl個(gè)輸出符號(hào):C_B1=G_B1*X(I)
其中,C_Bl*n_bl個(gè)輸出符號(hào)的矩陣,以及G_Bl*n_blXk生成器矩陣。矩陣X中的位的每一列形成消息,以及矩陣C_B1中位的每一相應(yīng)列形成消息碼字。碼字可采用與n_bl個(gè)二進(jìn)制位的所有可能的組合相對(duì)應(yīng)的2n-bl個(gè)可能值。然而,由塊編碼模塊102實(shí)施的二進(jìn)制線性塊碼使用來(lái)自2n-bl個(gè)可能性中的2k個(gè)碼字來(lái)形成碼,其中,使用生成器矩陣G_B1將每個(gè)k位消息唯一地映射到這些2k個(gè)碼字中的一個(gè)。通常,從2n-bl個(gè)可能性中選出的提供足夠容易解碼具有用于給定應(yīng)用程序的足夠的糾錯(cuò)能力的輸出的2k個(gè)碼字的任何唯一子集可被用于實(shí)施塊編碼模塊102。在編碼器100的另一實(shí)施方式中,塊編碼模塊104同樣使用二進(jìn)制線性塊碼,其接受矩陣X中的k個(gè)輸入符號(hào)作為輸入,并通過線性映射生成n_b2個(gè)輸出符號(hào):C_B2=G_B2*X(2)其中,C_B2為n_b2個(gè)輸出符號(hào)的矩陣,以及G_B2為n_b2Xk生成器矩陣。矩陣X中的位的每一列形成消息,以及矩陣C_B2中位的每一相應(yīng)列形成消息碼字。碼字可采用與n_b2個(gè)二進(jìn)制位的所有可能組合相對(duì)應(yīng)的2n-b2個(gè)可能值。然而,由塊編碼模塊104實(shí)施的二進(jìn)制線性塊碼使用來(lái)自2n-b2個(gè)可·能性的2k個(gè)碼字來(lái)形成碼,其中,使用生成器矩陣G_B2將每個(gè)k位消息唯一地映射到這些2k個(gè)碼字中的一個(gè)。通常,從2n-b2個(gè)可能性中選出的提供足夠容易解碼具有用于給定應(yīng)用程序的足夠的糾錯(cuò)能力的輸出的2k個(gè)碼字的任何唯一子集可被用于實(shí)施塊編碼模塊104。在編碼器100的又一實(shí)施方式中,塊編碼模塊106實(shí)施非系統(tǒng)里德-所羅門碼,其接受矩陣X中的k個(gè)輸入符號(hào)作為輸入,并通過線性映射生成n_b3個(gè)輸出符號(hào):C_B3=G_B3*X(3)其中,C_B3為n_b3個(gè)輸出符號(hào)的矩陣,以及G_B3為n_b3Xk范德蒙(Vandermonde)生成器矩陣??捎蓧K編碼模塊106在有限域GF(256)上實(shí)施非系統(tǒng)里德-所羅門碼。應(yīng)注意,在其他實(shí)施方式中,塊編碼模塊106可實(shí)施其他非二進(jìn)制塊碼,包括未在有限域上構(gòu)成的非二進(jìn)制塊碼。例如,在其他實(shí)施方式中,塊編碼模塊106可實(shí)施系統(tǒng)(與非系統(tǒng)相反)的里德-所羅門碼或另一類型的循環(huán)塊碼。在編碼器100的又一實(shí)施方式中,并行濾波器編碼模塊112接受矩陣C_B2中的n_b2個(gè)符號(hào)作為輸入,并使用由至少兩個(gè)構(gòu)成濾波器的并行連接形成的線性塊碼或由交織器分離的卷積碼來(lái)生成較長(zhǎng)長(zhǎng)度n_p的輸出符號(hào)的矩陣C_P。至少兩個(gè)構(gòu)成濾波器或卷積碼可相同或不同。圖2中示出了根據(jù)本公開實(shí)施方式的實(shí)例性并行濾波器編碼模塊200的框圖。如圖所示,并行濾波器編碼模塊200包括交織器202和204、有限脈沖響應(yīng)(FIR)濾波器206和208、以及多路復(fù)用器210。交織器202和204各自接收和處理矩陣C_B2中的消息。交織器202以無(wú)規(guī)律但規(guī)定的方式重新排列矩陣C_B2內(nèi)的每條消息中位的順序,以及交織器204以與由交織器202實(shí)施的無(wú)規(guī)律方式不同的無(wú)規(guī)律但規(guī)定的方式重新排列矩陣C_B2內(nèi)的每條消息中位的順序。由于FIR濾波器206和208按照各自不同的順序接收矩陣C_B2中的消息的位,所以甚至在兩個(gè)濾波器同樣實(shí)施時(shí),由FIR濾波器206生成的矩陣C_F1中的碼字也將幾乎總是與由FIR濾波器208生成的矩陣C_F2中的碼字不同。應(yīng)注意,在并行濾波器編碼模塊200的其他實(shí)施方式中,無(wú)需首先交織即可以將矩陣C_B2的消息饋送到FIR濾波器206和208中的一個(gè)中。還應(yīng)注意,可由并行濾波器編碼模塊200實(shí)施多于兩個(gè)的交織器和FIR濾波器。具體地,可將一個(gè)或多個(gè)額外的交織器和FIR濾波器對(duì)添加到并行濾波器編碼模塊200中。此外,還應(yīng)注意,F(xiàn)IR濾波器206和208可被實(shí)施為咬尾FIR濾波器,其中,利用其各自最終的狀態(tài)將FIR濾波器206和208的狀態(tài)初始化以使其咬尾。通常,良好的線性碼是使用通常高權(quán)重碼字(其中,也被稱為其漢明權(quán)重的碼字權(quán)重簡(jiǎn)單地是其包括的碼字?jǐn)?shù)量)的碼,因?yàn)檫@些碼字可更容易被解碼器區(qū)分。在所有線性碼具有某些低權(quán)重碼字時(shí),應(yīng)將這些低權(quán)重碼字的發(fā)生最小化。交織器202和204有助于減少由并行濾波器編碼模塊200生成的低權(quán)重碼字的數(shù)量,其中,由并行濾波器編碼模塊200生成的碼字的權(quán)重通常是由FIR濾波器206和208生成的相應(yīng)碼字的權(quán)重總和。更具體地,由于交織器202和204已用不同的無(wú)規(guī)律方式將輸入到FIR濾波器206和208的相應(yīng)消息的位重新排序,所以FIR濾波器206和208同時(shí)產(chǎn)生相應(yīng)的低權(quán)重碼字的概率被降低。因此,交織器202和204有助于減少由并行濾波器編碼模塊200生成的低權(quán)重碼字的數(shù)量。再如圖2所示,使用多路復(fù)·用器210并行連接矩陣C_F1和C_F2中的碼字,以在矩陣C_P中生成碼字。在一種實(shí)施方式中,多路復(fù)用器210以無(wú)規(guī)律但規(guī)定的方式并行連接矩陣C_F1和C_F2中的碼字。圖3示出了根據(jù)本公開實(shí)施方式的可被用于實(shí)施圖2中的FIR濾波器206和208中的一個(gè)或兩者的實(shí)例性FIR濾波器300。如圖3所示,來(lái)自矩陣C_B2的消息的位從左側(cè)進(jìn)入FIR濾波器300,并被儲(chǔ)存在包括寄存器302、304和306的線性移位寄存器內(nèi)(T表示寄存器)。每當(dāng)新消息位到達(dá)時(shí),寄存器302、304和306內(nèi)的消息位向右移動(dòng)。通過異或運(yùn)算移位寄存器內(nèi)儲(chǔ)存的消息位的特定子集與可能的移位寄存器的輸入處的當(dāng)前消息位,F(xiàn)IR濾波器300計(jì)算與輸入消息相對(duì)應(yīng)的碼字的每個(gè)位。在圖3所示的FIR濾波器300的實(shí)施方式中,通過使用XOR運(yùn)算308來(lái)異或運(yùn)算移位寄存器內(nèi)儲(chǔ)存的每個(gè)消息位,從而具體計(jì)算碼字位。將FIR濾波器300的約束長(zhǎng)度限定為碼字位可依賴的消息位的最大數(shù)量。在圖3所示的FIR濾波器300的實(shí)施方式中,約束長(zhǎng)度為4,因?yàn)槊總€(gè)碼字位可取決于高達(dá)四個(gè)消息位(移位寄存器內(nèi)的三個(gè)消息位和移位寄存器的輸入處的當(dāng)前消息位)。應(yīng)注意,在FIR濾波器300的其他實(shí)施方式中,可使用不同約束長(zhǎng)度,且可通過異或運(yùn)算移位寄存器內(nèi)儲(chǔ)存的消息位的不同子集來(lái)計(jì)算碼字位。返回到圖1,在編碼器100的又一實(shí)施方式中,重復(fù)編碼模塊108實(shí)施二進(jìn)制線性塊碼,其接受矩陣C_B1中的n_bl個(gè)符號(hào)作為輸入,并通過線性映射生成較長(zhǎng)長(zhǎng)度η的輸出符號(hào)的矩陣C_R1:C_R1=G_R1*C_B1(4)其中,G_R1為nXn_bl生成器矩陣。在至少一種實(shí)施方式中,由生成器矩陣G_R1描述的重復(fù)碼被設(shè)計(jì)為簡(jiǎn)單地將C_B1中的碼字重復(fù)一些次數(shù)(某個(gè)或某些整數(shù)加上次數(shù)的分?jǐn)?shù)),使得將C_B1中的長(zhǎng)度n_bl的碼字轉(zhuǎn)換成C_R1中的較長(zhǎng)長(zhǎng)度η的碼字。具體地,生成器矩陣G_R1可被實(shí)施為nXn_bl單位矩陣的堆疊,且floor (n/n_bl)份垂直堆疊的單位矩陣和其下的分?jǐn)?shù)單位矩陣包括η取模n_bI (n mod n_bl)行。在編碼器100的又一實(shí)施方式中,重復(fù)編碼模塊110實(shí)施二進(jìn)制線性塊碼,其接受矩陣C_B3中的n_b3個(gè)符號(hào)作為輸入,并通過線性映射生成較長(zhǎng)長(zhǎng)度η的輸出符號(hào)的矩陣C_R2:C_R2=G_R2*C_B3(5)其中,G_R2為nXn_b3生成器矩陣。在至少一種實(shí)施方式中,由生成器矩陣G_R2描述的重復(fù)碼被設(shè)計(jì)為簡(jiǎn)單地將C_B3中的碼字重復(fù)一些次數(shù)(某個(gè)或某些整數(shù)加上次數(shù)的分?jǐn)?shù)),使得將C_B3中的長(zhǎng)度n_b3的碼字轉(zhuǎn)換成C_R2中的長(zhǎng)度η的碼字。具體地,生成器矩陣G_R2可被實(shí)施為nXn_b3單位矩陣的堆疊,且floor (n/n_b3)份垂直堆疊的單位矩陣和其下的分?jǐn)?shù)單位矩陣包括η取模n_b3 (n mod n_b3)行。如上所述,編碼器100可被用于在網(wǎng)絡(luò)架構(gòu)的不同層上提供數(shù)據(jù)包級(jí)保護(hù)。例如,編碼器100可被用于在網(wǎng)絡(luò)、應(yīng)用程序或互聯(lián)網(wǎng)協(xié)議組的傳輸層(通常稱為TCP/IP)上提供數(shù)據(jù)包級(jí)保護(hù)。在一種實(shí)施方式中,在服務(wù)器或客戶端計(jì)算機(jī)(例如,臺(tái)式計(jì)算機(jī)、膝上型電腦、平板電腦、智能電話、路由器、機(jī)頂盒或其他便攜式通信裝置)處,編碼器100被用于編碼根據(jù)某個(gè)協(xié)議(諸·如用于經(jīng)由基于數(shù)據(jù)包的網(wǎng)絡(luò)(諸如互聯(lián)網(wǎng))向另一計(jì)算機(jī)傳輸?shù)膯蜗騻鬏數(shù)奈募魉?FLUTE)協(xié)議)格式化的數(shù)據(jù)的k個(gè)數(shù)據(jù)包、數(shù)據(jù)段或數(shù)據(jù)報(bào)。2.2.矩陣表不由于在至少一種實(shí)施方式中,編碼器100內(nèi)所有構(gòu)成塊編碼模塊均為線性模塊,所以可通過線性映射來(lái)表達(dá)輸出矩陣Y:Y=G_S*X(6)其中,發(fā)生器矩陣G_S描述了由編碼器100實(shí)施的通用增壓碼。發(fā)生器矩陣G_S具體由下式給出:G_S=G_P*[I_k;G_B2]+G_Rl*G_Bl+G_R2*G_B3(7)其中,G_P為并行濾波器編碼模塊112的nX (k+n_b2)發(fā)生器矩陣,I_k為kXk單位矩陣,G_B2為塊編碼模塊104的n_b2Xk發(fā)生器矩陣,G_R1為重復(fù)編碼模塊108的nXn_bl發(fā)生器矩陣,G_B1為塊編碼模塊102的n_blXk發(fā)生器矩陣,G_R2為重復(fù)編碼模塊110的nXn_b3發(fā)生器矩陣,以及G_B3為塊編碼模塊106的n_b3Xk發(fā)生器矩陣。上述等式
(7)中使用的記號(hào)[A;B]表示矩陣A垂直堆疊在矩陣B上,以及上述等式(7)中使用的運(yùn)算符“ + ”表示按位XOR運(yùn)算。2.3.系統(tǒng)碼增壓碼并非固有的系統(tǒng)碼。通常在使用其作為到編碼器的輸入之前,通過預(yù)處理輸入數(shù)據(jù)D來(lái)將非系統(tǒng)碼轉(zhuǎn)換成有效的系統(tǒng)碼,Y=G_S*X。通過解碼要編碼的所需輸入數(shù)據(jù)D并運(yùn)行解碼器以確定編碼器輸入向量X來(lái)計(jì)算編碼器輸入X。使矩陣G_S_ENC為與Y中的每個(gè)碼字的前k個(gè)元素相對(duì)應(yīng)的kXk發(fā)生器矩陣,可使用下式計(jì)算編碼器輸入X:X=G_S_ENC一(_1)*D(8)其中,運(yùn)算G_S_ENC~~(_1)對(duì)G_S_ENC求(-1)次方?,F(xiàn)在,X可被用于使用等式
(6)來(lái)編碼以生成Y,以及Y中的每個(gè)碼字的前k個(gè)元素將等于D。圖4示出了根據(jù)本公開實(shí)施方式的除額外的系統(tǒng)預(yù)處理模塊402之外具有與圖1中的編碼器100相同的實(shí)施的編碼器。系統(tǒng)預(yù)處理模塊402可被用于執(zhí)行由等式8定義的功能,且可以硬件、軟件或其任何組合來(lái)實(shí)施。2.4.用于編碼的文件分段在編碼器100可被用于例如編碼源文件以經(jīng)由擦除信道傳輸之前,需要將源文件分段成編碼器輸入符號(hào),且需要將這些編碼器輸入符號(hào)分組為可由如圖1所示的到編碼器100的輸入矩陣X表示的源塊。具體地,給定f字節(jié)的源文件和t字節(jié)的編碼器輸入符號(hào)大小,可將該文件劃分成k_total=ceil(f/t)個(gè)編碼器輸入符號(hào)。源塊是kl或ks個(gè)這些編碼器輸入符號(hào)的集合。若源塊的總數(shù)未均勻地劃分為表示源文件所需的編碼器輸入符號(hào)的數(shù)量,則kl與ks可不同??蓪⒕哂衚l個(gè)編碼器輸入符號(hào)的源塊數(shù)量和具有ks個(gè)編碼器輸入符號(hào)的源塊數(shù)量傳送給解碼器。在一種實(shí)施方式中,源塊被按順序排列成使得從大小為kl個(gè)編碼器輸入符號(hào)的源塊中編碼前zl個(gè)源塊,以及從大小為ks個(gè)編碼器輸入符號(hào)的源塊中編碼其余的zs個(gè)源塊。在一種實(shí)施方式中,對(duì)于圖1中的編碼器100作為輸入而接受的矩陣X中的輸入符號(hào)的數(shù)量k,在所選值kl小于或等于有限數(shù)量的可能值中的至少一個(gè)的約束條件下選擇kl。假設(shè)所選kl滿足該約束條件,則在至少一種實(shí)施方式中,編碼器100可被實(shí)施為接受具有仍滿足(非嚴(yán)格的)不等式kl < k的輸入符號(hào)的最小數(shù)量k的輸入矩陣X。2.5.擦除信道在編碼之后,在·信道上傳輸矩陣Y的η個(gè)輸出符號(hào)。這些輸出符號(hào)中的某些被信道擦除。假設(shè)nXr矩陣E表示信道的擦除模式,其中,它從所發(fā)送的輸出符號(hào)Y中選出r個(gè)所接收的輸出符號(hào)Y_R。若第i個(gè)所接收的符號(hào)為第j個(gè)傳輸符號(hào),則E(i,j)=l。這產(chǎn)生了Y_R=E*Y(9)在解碼器處,接收器上的有效發(fā)生器矩陣隨后為G_S_R=E*G_S。2.6.解碼解碼是給定Y_R和G_S_R來(lái)確定X的過程??梢詭追N不同的方法來(lái)實(shí)施解碼,但每種方法均等價(jià)于解決最小平方問題X= (G_S_R~ ~T*G_S_R) ~ ~-l*G_S_R~ ~T*Y_R,其中,T表示轉(zhuǎn)置。現(xiàn)代稀疏矩陣分解技術(shù)可被用于利用由圖1中的并行濾波器編碼模塊112的結(jié)構(gòu)施加的稀疏結(jié)構(gòu)將(6)重寫為適當(dāng)形式:Z=G_A*ff(10)將增廣發(fā)生器矩陣G_A定義為:G_A=[[[G_B1;G_B3;GB_2] | I_L];[G_P | G_R1 | G_R2]] (11)且其中,增廣輸出向量Z= [zeros (L,I) ; Y],增廣輸入向量W=[X;G_B2*X;G_B1*X;G_B3*X],且其中,L=n_bl+n_b2+b_b3。在重復(fù)之前,矩陣W的底部L個(gè)元素包括塊碼的輸出。將這些L個(gè)值附加到矩陣X中以形成增廣輸入矩陣W。G_A的前L行實(shí)施塊碼且XOR運(yùn)算塊碼輸出與其本身以在矩陣Z的頂部生成L個(gè)零。G_A的其后η行實(shí)施FIR結(jié)構(gòu)并XOR運(yùn)算輸出與該塊碼的輸出。上述等式(11)中使用的記號(hào)[Α;Β]表示矩陣A垂直堆疊在矩陣B上,以及記號(hào)A I B表示矩陣A和B水平連接。一旦已確定編碼器狀態(tài)矩陣X或等效地確定增廣編碼器狀態(tài)矩陣W,則該任務(wù)維持確定數(shù)據(jù)矩陣D。對(duì)于丟失的D的任何符號(hào),可通過使用(6)或(10)的合適行來(lái)恢復(fù)這些符號(hào)。3.實(shí)例性計(jì)算機(jī)系統(tǒng)實(shí)施如本文所述,對(duì)于相關(guān)領(lǐng)域技術(shù)人員而言,顯然本發(fā)明的各種元件和特征可以使用模擬和/或數(shù)字電路的硬件、通過由一個(gè)或多個(gè)通用或?qū)S锰幚砥鲌?zhí)行指令的軟件,或者作為硬件和軟件的組合來(lái)實(shí)施。為完整起見,提供了對(duì)通用計(jì)算機(jī)系統(tǒng)的以下描述。本發(fā)明的實(shí)施方式可以硬件來(lái)實(shí)施,或者作為軟件和硬件的組合來(lái)實(shí)施。因此,本發(fā)明的實(shí)施方式可在計(jì)算機(jī)系統(tǒng)或其他處理系統(tǒng)的環(huán)境下實(shí)施。這種計(jì)算機(jī)系統(tǒng)500的一個(gè)實(shí)例在圖5中示出。例如,圖1和圖4中所示的所有模塊可在一個(gè)或多個(gè)不同計(jì)算機(jī)系統(tǒng)500上執(zhí)行。計(jì)算機(jī)系統(tǒng)500包括一個(gè)或多個(gè)處理器,諸如處理器504。處理器504可以是專用或通用數(shù)字信號(hào)處理器。處理器504可連接至通信基礎(chǔ)設(shè)施502 (例如,總線或網(wǎng)絡(luò))。各種軟件實(shí)施以該示例性計(jì)算機(jī)系統(tǒng)的形式來(lái)描述。對(duì)于相關(guān)領(lǐng)域技術(shù)人員而言,在閱讀該描述之后,如何利用其他計(jì)算機(jī)系統(tǒng)和/或計(jì)算機(jī)架構(gòu)來(lái)實(shí)施本發(fā)明將變得顯而易見。計(jì)算機(jī)系統(tǒng)500還包括主存儲(chǔ)器506,優(yōu)選隨機(jī)存取存儲(chǔ)器(RAM),且還包括輔助存儲(chǔ)器508。輔助存儲(chǔ)器508例如可包括硬盤驅(qū)動(dòng)器510和/或可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器512,該可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器512表示軟盤驅(qū)動(dòng)器、磁帶驅(qū)動(dòng)器、光盤驅(qū)動(dòng)器等??梢苿?dòng)存儲(chǔ)驅(qū)動(dòng)器512以已知方式從可移動(dòng)存儲(chǔ)單元516讀取和/或向其寫入??梢苿?dòng)存儲(chǔ)單元516表示由可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器512讀取和寫入的軟盤、磁帶、光盤等。相關(guān)領(lǐng)域技術(shù)人員將理解,可移動(dòng)存儲(chǔ)單元516包括其中存儲(chǔ)有計(jì)算機(jī)軟件和/或數(shù)據(jù)的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)。在可替代實(shí)施方·式中,輔助存儲(chǔ)器508可包括用于允許計(jì)算機(jī)程序或其他指令被載入計(jì)算機(jī)系統(tǒng)500的其他類似裝置。該裝置可包括例如可移動(dòng)存儲(chǔ)單元518和接口 514。該裝置的實(shí)例可包括程序盒和盒接口(諸如視頻游戲裝置中可見的程序盒和盒接口)、可移動(dòng)存儲(chǔ)芯片(例如EPROM或PR0M)和相關(guān)插槽、U盤和USB端口、以及其他可移動(dòng)存儲(chǔ)單元518和允許軟件和數(shù)據(jù)從可移動(dòng)存儲(chǔ)單元518傳送至計(jì)算機(jī)系統(tǒng)500的接口 514。計(jì)算機(jī)系統(tǒng)500還可包括通信接口 520。通信接口 520允許軟件和數(shù)據(jù)在計(jì)算機(jī)系統(tǒng)500與外部裝置之間傳送。通信接口 520的實(shí)例可包括調(diào)制解調(diào)器、網(wǎng)絡(luò)接口(諸如以太網(wǎng)卡)、通信端口、PCMCIA插槽和卡等。經(jīng)由通信接口 520傳送的軟件和數(shù)據(jù)的形式可以是電子信號(hào)、電磁信號(hào)、光信號(hào)、或其他能被通信接口 520接收的信號(hào)。這些信號(hào)經(jīng)由通信通路522提供給通信接口 520。通信通路522承載信號(hào)且可使用導(dǎo)線或電纜、光纖、電話線、手機(jī)鏈路、RF鏈路和其他通信信道來(lái)實(shí)施。如本文所用,術(shù)語(yǔ)“計(jì)算機(jī)程序介質(zhì)”和“計(jì)算機(jī)可讀介質(zhì)”通常用來(lái)指示有形存儲(chǔ)介質(zhì),諸如可移動(dòng)存儲(chǔ)單元516和518或安裝在硬盤驅(qū)動(dòng)器510中的硬盤。這些計(jì)算機(jī)程序產(chǎn)品是用于提供軟件給計(jì)算機(jī)系統(tǒng)500的裝置。計(jì)算機(jī)程序(也稱為計(jì)算機(jī)控制邏輯)存儲(chǔ)在主存儲(chǔ)器506和/或輔助存儲(chǔ)器508中。計(jì)算機(jī)程序也可經(jīng)由通信接口 520接收。這種計(jì)算機(jī)程序在被執(zhí)行時(shí)能使計(jì)算機(jī)系統(tǒng)500實(shí)施如本文所討論的本發(fā)明。具體地,該計(jì)算機(jī)程序在被執(zhí)行時(shí)能使處理器504實(shí)施本發(fā)明的處理,諸如本文所述的任何方法。相應(yīng)地,該計(jì)算機(jī)程序表示計(jì)算機(jī)系統(tǒng)500的控制器。其中,使用軟件來(lái)實(shí)施本發(fā)明,該軟件可存儲(chǔ)在計(jì)算機(jī)程序產(chǎn)品中,并使用可移動(dòng)存儲(chǔ)驅(qū)動(dòng)器512、接口 514或通信接口 520載入計(jì)算機(jī)系統(tǒng)500。在另一實(shí)施方式中,主要以使用例如硬件部件(諸如專用集成電路(ASIC)和門陣列)的硬件來(lái)實(shí)施本發(fā)明的特征。實(shí)施硬件狀態(tài)機(jī)以執(zhí)行本文所述功能對(duì)于相關(guān)領(lǐng)域技術(shù)人員而目也將是顯而易見的。4.結(jié)論
以上已借助于示出具體功能及其關(guān)系的實(shí)施的功能塊描述了本公開。為便于描述,本文任意定義了這些功能塊的邊界。只要能適當(dāng)執(zhí)行具體功能及其關(guān)系,也可定義替代性邊界?!?br>
權(quán)利要求
1.一種用于對(duì)形成消息的輸入符號(hào)擦除編碼的方法,包括: 基于所述消息來(lái)實(shí)施分別提供第一組碼字、第二組碼字和第三組碼字的至少三個(gè)塊編碼操作; 基于所述第一組碼字來(lái)實(shí)施分別提供第四組碼字和第五組碼字的至少兩個(gè)濾波器編碼操作; 為所述兩個(gè)濾波器編碼操作中的至少一個(gè)修改考慮到所述第一組碼字的位的順序;以及 并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字以形成用于經(jīng)由擦除信道傳輸?shù)木幋a符號(hào)。
2.根據(jù)權(quán)利要求1所 述的方法,還包括: 在所述第二組碼字和所述第三組碼字與所述第四組碼字和所述第五組碼字并行連接之前,實(shí)施分別重復(fù)所述第二組碼字和所述第三組碼字一定次數(shù)的重復(fù)編碼操作。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述塊編碼操作中的提供所述第一組碼字的一個(gè)塊編碼操作實(shí)施二進(jìn)制塊碼。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述塊編碼操作中的提供所述第三組碼字的一個(gè)塊編碼操作實(shí)施二進(jìn)制塊碼。
5.一種用于對(duì)形成消息的輸入符號(hào)擦除編碼的編碼器,包括: 三個(gè)塊編碼模塊,被配置為基于所述消息分別提供第一組碼字、第二組碼字和第三組碼字; 兩個(gè)濾波器編碼模塊,被配置為基于所述第一組碼字分別提供第四組碼字和第五組碼字; 交織器,被配置成為所述兩個(gè)濾波器編碼模塊中的至少一個(gè)修改考慮到所述第一組碼字的位的順序;以及 連接模塊,被配置為并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字以形成用于經(jīng)由擦除信道傳輸?shù)木幋a符號(hào)。
6.根據(jù)權(quán)利要求5所述的編碼器,還包括: 重復(fù)編碼模塊,被配置為在由所述連接模塊將所述第二組碼字和所述第三組碼字與所述第四組碼字和所述第五組碼字并行連接之前,重復(fù)所述第二組碼字和所述第三組碼字一定次數(shù)。
7.根據(jù)權(quán)利要求5所述的編碼器,還包括: 多路復(fù)用器,被配置為在由所述連接模塊并行連接所述第二組碼字、所述第三組碼字、所述第四組碼字和所述第五組碼字之前,以無(wú)規(guī)律方式一起多路復(fù)用所述第四組碼字和所述第五組碼字。
8.根據(jù)權(quán)利要求5所述的編碼器,其中,所述三個(gè)塊編碼模塊中的被配置為提供所述第二組碼字的一個(gè)塊編碼模塊在有限域上實(shí)施非二進(jìn)制塊碼。
9.一種用于對(duì)形成消息的輸入符號(hào)擦除編碼的編碼器,包括: 塊編碼模塊,被配置為基于所述消息提供第一組碼字; 兩個(gè)濾波器編碼模塊,其被交織器分離且被配置為基于所述消息分別提供第二組碼字和第三組碼字;以及連接模塊,被配置為并行連接所述第一組碼字、所述第二組碼字和所述第三組碼字以形成用于經(jīng)由擦除信道傳輸?shù)木幋a符號(hào)。
10.一種解碼器,包括: 處理器;以及 存儲(chǔ)器, 其中,所述處理器被配置為解碼通過以下方式編碼的符號(hào): 基于由所述符號(hào)形成的消息來(lái)實(shí)施塊編碼操作以提供第一組碼字; 基于所述消息來(lái)實(shí)施由交織器分離的至少兩個(gè)濾波器編碼操作以提供第二組碼字和第三組碼字;以及 連接所述第一組碼字、所述 第二組碼字和所述第三組碼字。
全文摘要
本文涉及增壓碼,提供了一種用于將k個(gè)輸入符號(hào)編碼成用于經(jīng)由擦除信道傳輸?shù)妮^長(zhǎng)的n個(gè)輸出符號(hào)串使得無(wú)需任何重新傳輸即可從n個(gè)輸出符號(hào)的子集中恢復(fù)原始的k個(gè)輸入符號(hào)的系統(tǒng)和方法。符號(hào)是由一個(gè)或多個(gè)位組成的通用數(shù)據(jù)單元,其可以是例如數(shù)據(jù)包。該系統(tǒng)和方法利用包括塊碼和并行濾波器碼的擦除碼網(wǎng)絡(luò)來(lái)實(shí)現(xiàn)對(duì)于較小和較大編碼塊大小具有低編碼和解碼計(jì)算復(fù)雜性的非常接近于理想MDS碼的性能。該擦除碼網(wǎng)絡(luò)被稱為增壓碼。增壓碼可被用于在例如網(wǎng)絡(luò)、應(yīng)用程序或互聯(lián)網(wǎng)協(xié)議組的傳輸層上提供數(shù)據(jù)包級(jí)保護(hù)。
文檔編號(hào)H04L1/00GK103227693SQ20131003699
公開日2013年7月31日 申請(qǐng)日期2013年1月30日 優(yōu)先權(quán)日2012年1月30日
發(fā)明者埃里克·斯托弗, 沈八中, 喬爾杰·圖吉口維克, 蘇梅·查克拉博爾蒂, 黃靖, 希瓦·普拉卡什·謝特, 卡姆利什·拉斯, 戴維·加勒特, 安德魯·布蘭克斯比 申請(qǐng)人:美國(guó)博通公司