專利名稱:用于建立變長糾錯碼的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種建立變長糾錯碼的方法,所述的方法包括步驟(1)初始化所需的參數(shù)碼字的最小和最大長度,分別是L1和Lmax,每個碼字之間的自由距離dfree(對于一種VLEC碼C,所述的距離dfree是所有任意擴展碼的集合中的最小漢明距離),所需的碼字?jǐn)?shù)量S;(2)生成一種長度為L1、最小距離為bmin的定長碼C,其中bmin=min{bk;k=1,2,......,R},bk=與碼C的碼字長度Lk相關(guān)的距離,并定義為C的所有長度為Lk的碼字之間的最小漢明距離,并且R=C中不同碼字長度的數(shù)量,所述的生成步驟創(chuàng)建了一個距離為d、長度為n比特的字的集合W;(3)在集合W中列出并存儲所有可能來自C的碼字的、距離為dmin的L1元組(對于一種VLEC碼C,所述的距離dmin是C的所有可能的不同長度碼字對之間的所有發(fā)散距離的最小值),并且,如果所述的集合W非空,通過在所有字的末尾附加一個額外的比特,所述的存儲步驟用一個新的集合替換了集合W,新的集合具有原集合兩倍數(shù)量的字,并且每個字的長度為L1+1;(4)刪除集合W中所有不滿足與C的所有碼字距離為cmin的字,所述的距離cmin是碼C的最小收斂距離;(5)在沒有發(fā)現(xiàn)碼字或達(dá)到了最大比特長度的情況下,減小距離約束以發(fā)現(xiàn)更多的字;(6)控制集合W的所有字之間的距離為bmin,發(fā)現(xiàn)的字從而被添加進碼C;(7)如果沒有達(dá)到所需的碼字?jǐn)?shù)量,重復(fù)步驟(1)到(6),直到該方法發(fā)現(xiàn)沒有進一步繼續(xù)的可能性,或者發(fā)現(xiàn)了所需的碼字?jǐn)?shù)量;(8)如果C的碼字?jǐn)?shù)量大于S,根據(jù)VLEC碼的結(jié)構(gòu)計算平均長度AL,AL是通過對每個碼字長度以源的概率加權(quán)得到的,如果AL比ALmin小,所述的AL變成ALmin,其中ALmin=AL的最小值,并且相應(yīng)的碼結(jié)構(gòu)被保存在存儲器中。
本發(fā)明還涉及一種相應(yīng)的裝置。
背景技術(shù):
圖1顯示的經(jīng)典通信鏈包括,用于對來自源S的信號進行編碼的一個源編碼器1(SCOD),接著是一個信道編碼器2(CCOD),編碼信號經(jīng)過傳輸后,從而通過信道3被獲得,一個信道譯碼器4(CDEC),以及一個源譯碼器5(SDEC)。譯碼信號被試圖發(fā)送給一個接收者。變長碼(VLC)由于其壓縮能力經(jīng)典地被用于源編碼,并且相關(guān)的信道編碼技術(shù)克服了真正傳輸信道的影響(如衰落、噪聲等)。然而,由于源編碼意在消除冗余性而信道編碼重新引入冗余性,已經(jīng)研究了如何有效地協(xié)調(diào)這些技術(shù)來改進整個系統(tǒng),同時使復(fù)雜度保持在一個可以接受的水平。
在這種方法中提出的解決方案中,變長糾錯(LVEC)碼表現(xiàn)了變長的優(yōu)勢,同時提供了糾錯能力,但是建立這些編碼對于短的字母表都非常耗時間(對于更長的字母表信源變得甚至不可用),并且構(gòu)造復(fù)雜度也是一個缺點,如后面將被看到的一樣。
首先,必須回憶有關(guān)經(jīng)典VLC的一些定義和屬性。一種碼C是一個S個碼字{c1,c2,c3,...,ci,...,cs}的集合,對于每個碼字都定義了一個長度li=|ci|,其中不失一般性,l1≤l2≤l3≤....≤li≤....≤ls。碼C中不同碼字長度的數(shù)量稱為R,顯然R≤S,并且這些長度被記為L1,L2,L3,...,Li,...LR,其中L1<L2<L3<...<Li<...<LR。一種變長碼,或VLC,是由(s1@L1,s2@L2,s3@L3,...,sR@LR,)表示的結(jié)構(gòu),它相當(dāng)于s1個長度為L1的碼字,s2個長度為L2的碼字,s3個長度為L3的碼字,......,以及sR個長度為LR的碼字。當(dāng)使用VLC時,對于一個給定的源,壓縮效率與從所述的源傳輸符號所需的比特數(shù)量有關(guān)。用于估計該效率的測量值通常是編碼的平均長度AL,即傳輸一個字所需的平均比特數(shù),并且當(dāng)每個符號ai被映射到碼字ci時,所述的平均長度由下面的關(guān)系式給出AL=Σi=1i=sli·P(ai)---(1)]]>它等價于關(guān)系式(2)
AL=Σi=1RLi·(Σj=r(i)+1j=r(i+1)P(ai))---(2)]]>這里,對于一個數(shù)據(jù)源A,S個源符號由{a1,a2,a3,...,as}表示,并且P(ai)分別是每個這些符號出現(xiàn)的概率,其中∑P(ai)=1(從i=1到i=S)。如果ALmin表示平均長度AL的最小值,很容易看到當(dāng)達(dá)到ALmin時,這些符號以P(a1)≥P(a2)≥P(a3)≥...≥P(ai)≥...≥P(as)的方式被索引。為了以這樣一種接收者能夠?qū)幋a信息進行譯碼的方式對數(shù)據(jù)進行編碼,VLC必須滿足下面的屬性非奇異(所有的碼字都是不同的,即沒有多于一個的源符號被分配給一個碼字)并且唯一可被譯碼(即有可能將任意碼字串明確無誤地映射回正確的源符號)。
當(dāng)回顧VLC碼的一些通用屬性時,對于那些有用的不同距離的介紹和陳述將有助于回憶起用在VLEC編碼理論中的糾錯屬性的概念(a)漢明權(quán)重和漢明距離如果w是一個長度為n的字,其中w=(w1,w2,...,wn),w的漢明權(quán)重,或簡單的為權(quán)重,是w中非零符號的數(shù)量W(w)W(w)=Σi=1i=nwi||wi||---(3)]]>并且,如果w1和w2是兩個同等長度n的字,其中wi=(wi1,wi2,wi3,...,win)并且i=1或2,那么w1和w2之間的漢明距離(或簡單的為距離)是w1和w2不同的位置的數(shù)量(例如,對于二進制情形,很容易看到H(w1,w2)=W(w1+w2)(4)這里加法是模-2運算)。然而,根據(jù)定義,漢明距離被局限于定長碼,并且在考慮VLEC碼之前將給出其它定義。
(b)令fi=w1iw2i...wni是一種VLEC碼C的n個字的連接,那么集合FN={fi|fi|=N}被稱為C的N階擴展編碼。
(c)最小塊距和整體最小塊距與一種VLEC碼C的碼字長度Lk相關(guān)的最小塊距bk被定義為C中所有長度為Lk的不同碼字之間的最小漢明距離bk=min{H(ci,cj)ci,cj∈C,i≠j,|ci|=|cj|=Lk}for k=1,...,R (5)并且所述的VLEC碼C的整體最小塊距bmin是對于每個可能的長度為Lk的最小塊距值bmin=min{bkk=1,...,R}(6)(d)發(fā)散距離和最小發(fā)散距離一種VLEC碼C的兩個不同長度的碼字ci=xi1xi2....xili]]>和cj=xj1xj2....xjli,]]>其中ci,cj∈C,li=|cj|and lj=|cj|,并且li>lj,之間的發(fā)散距離定義為D(ci,cj)=H(xi1xi2....xili,xj1xj2.......xjlj)---(7)]]>即它也是長度為lj-的碼字和更長碼字的長度為lj-的前綴之間的漢明距離,并且所述VLEC碼C的最小發(fā)散距離dmin是C的不等長的所有可能的碼字對之間發(fā)散距離的最小值dmin=min{D(ci,cj)ci,cj∈C,|ci|≠|(zhì)cj|}(8)(e)收斂距離和最小收斂距離一種VLEC碼C的兩個不同長度的碼字ci=xi1xi2....xili]]>和cj=xj1xj2....xjll,]]>其中|ci|=li>|cj|=lj,之間的收斂距離定義為C(ci,cj)=H(xili-lj+1xili-lj+2····xil1,xj1xj2····xjlj)---(9)]]>即它也是長度為lj-的碼字和更長碼字的長度為lj的后綴之間的漢明距離,并且所述VLEC碼C的最小收斂距離是C的不等長的所有可能的碼字對之間收斂距離的最小值cmin=min{C(ci,cj)ci,cj∈C,|ci|≠|(zhì)cj|} (10)(f)自由距離一種編碼的自由距離dfree是所有任意長路徑集合中的最小漢明距離,該路徑從某個公共狀態(tài)Si開始發(fā)散并且在另一個公共狀態(tài)Sj中再次收斂,其中j>idfree=min{H(fi,fj)fi,fj∈FN,N=1,2,....,∞}(11)根據(jù)用于VLC的結(jié)構(gòu)模型,因此有可能通過下面的符號來描述VLEC碼的結(jié)構(gòu)S1@L1,b1;S2@L2,b2;...;SR@LR,bR;dmin,cmin(12)這里有si個長度為Li、最小塊距為bi的碼字,對于所有的i=1,2,...,R,(回想起R是不同碼字長度的數(shù)量),并且最小發(fā)散距離和最小收斂距離分別為dmin和cmin。一種VLEC碼的最終要的參數(shù)是其自由距離dfree,該參數(shù)極大地影響了該編碼在糾錯能力方面的性能,并且可以顯示一種VLEC碼的自由距離被界定為
dfree≥min(bmin,dmin+cmin)(13)回顧了這些定義,現(xiàn)在就可以更加容易的說明VLEC碼構(gòu)造的現(xiàn)狀。第一種VLEC碼,稱為α-提示碼,是1974年引入的,以及這種家族的一種擴展,稱為αt1,t2,...,tR-提示碼,二者具有相同的基本屬性如果β(ci)表示接近ci超過接近任何碼字cj的字的集合,j≠i,α(ci)中任何序列都不是另外一個α(ci)中序列的前綴。這些編碼的構(gòu)造非常簡單,并且通過調(diào)整每個長度碼字的數(shù)量,重建算法是可調(diào)整的,這使得對于一個給定的源和給定的dfree,有可能找到最佳的提示碼。然而,最佳的碼在壓縮性能方面表現(xiàn)很差。
在文檔“變長糾錯碼”中提出了一種允許從一個定長線形塊碼的生成矩陣構(gòu)造VLEC碼的較新的構(gòu)造,該文是由曼徹斯特大學(xué)的V.Buttigieg于1995年在他的博士論文中提出的。被稱為編碼-逆碼構(gòu)造,這種算法依賴于行組合和列置換來在最右邊的列上形成一種逆碼。一旦獲得了編碼-逆碼生成矩陣,就可以通過矩陣乘法簡單地得到VLEC碼。
然而這種技術(shù)具有幾個缺點。首先,沒有顯式的尋找所需的行組合和列置換來獲得逆碼的方法。此外,構(gòu)造沒有考慮源統(tǒng)計,因此,往往顯示它是次優(yōu)的(通過在VLEC碼上進行后處理能夠找到一種具有更小平均長度的編碼)。在同一個文檔中,作者提出了一種改進的方法,稱為啟發(fā)式方法,該方法基于一種計算機搜索來建立一種VLEC碼,VLEC碼給出對于某個指定源的已知的更好的壓縮率以及一個給定的錯誤保護,即一種具有指定的整體最小塊距、最小發(fā)散距離和最小收斂距離(以及因此dfree的最小值)和具有與源統(tǒng)計相匹配的碼字長度的碼C,從而獲得對于選定的自由距離和指定源的最小平均碼字長度(在實踐中,采用bmin=dmin+cmin=dfree,并且dmin[dfree/2])。
下面結(jié)合圖2到圖4的流程圖來說明這種啟發(fā)式方法的主要步驟,該方法使用下面的參數(shù)碼字的最小長度L1,碼字的最大長度Lmax,每個碼字之間的自由距離dfree,所需的碼字?jǐn)?shù)量S。
為了開始計算機搜索(“開始”),所有所需的參數(shù)都必須首先被指定L1(最小碼字長度,它必須至少等于或大于所需的最小發(fā)散距離),Lmax(最大碼字長度),碼字之間的不同距離(dfree,bmin,dmin,cmin),以及S(給定的源所需的碼字?jǐn)?shù)量),并且當(dāng)選擇這些參數(shù)時設(shè)置了一些關(guān)系Ll≥dminbmin=dfreedmin+cmin=dfree接著執(zhí)行了該算法的第一個階段,參考11它包括生成具有最大碼字?jǐn)?shù)量的長度為L1的定長碼(初始放置在C中)以及最小距離bmin。事實上,該階段是一個初始化,例如由一種諸如圖5所示的貪婪算法(GA)來執(zhí)行,或由一種圖7所示的多數(shù)選舉算法(MVA)來執(zhí)行,或由一種新提出的記為GAS(分步貪婪算法)的變種來執(zhí)行,GAS包括上述兩種算法的一個變種。GAS包括GA中使用的搜索方法,這里不是刪除一半碼字,僅僅刪除該組的最后一個碼字。這兩種算法對于創(chuàng)建一個距離為d、長度為n比特的字的集合w很有用(實際上,可能注意到MVA比GA能發(fā)現(xiàn)更多的字,但它對于壓縮能力很小的改進都需要太多的時間,如圖6和8中的表格所示,這些表格分別對于GA和MVA,比較了使用不同的dfree值所獲得的對于圖9的表中定義的26個符號英語源的最佳碼結(jié)構(gòu))。
該算法的第二階段,對應(yīng)于圖2中參考21到24的元素(21+22=操作“A0”;23+24=操作“A2”),包括列出并在稱為W的集合中存儲所有可能的、與C中碼字距離為dmin的L1元組。如果dmin≥bmin,那么W為空。如果由滿足到當(dāng)前碼的最小發(fā)散距離的所有的字構(gòu)成的集合W非空(對測試22|W|=0?返回“否”),那么通過向W中所有的字的最右端位置分別附加一個“0”和一個“1”的方式來增加字的長度(步驟24),從而使得W中字的數(shù)量加倍,除非超過了最大比特數(shù)(對測試23返回“是”)。在所述步驟24的輸出,這個修改后的集合W擁有的字的數(shù)量是原有集合W的兩倍,并且每個字的長度是L1+1。
該算法的第三個階段,對應(yīng)于元素31到35(=圖2中的操作“A3”),包括刪除(步驟31)集合W中所有不滿足與C中所有碼字距離為cmin(最小收斂距離)的字(即在新的W中僅僅保持并存儲那些滿足所述的最小收斂距離的字,其它的字被丟棄)。此時,新的集合W是這樣一個字的集合,與C中的碼字相比,W中的字滿足與C中碼字所需的最小發(fā)散距離和最小收斂距離(dmin和cmin距離)。如果新的集合W非空(對測試32|w|=0?返回“否”),在W中選擇(步驟33)最大數(shù)量的字來滿足最小塊距,以確保集合W中所有等長的字具有至少等于bmin的最小距離。在步驟33的結(jié)束處,該步驟是用GA或MVA實現(xiàn)的(注意在這里,用于GA或MVA的初始集合是當(dāng)前的W而不是n元組集合),這樣獲得的字被添加(步驟34)到C中已有的碼字。
如果在步驟21結(jié)束時(對測試22|W|=0?返回“是”)沒有找到字(即W為空)或者如果達(dá)到或超過了最大比特數(shù)(對測試23返回“是”),則進入本算法的第四階段(圖3所示的步驟41到46,同時在圖3中表示為操作“A1”),它通過插入更多的選擇自由來避免過程發(fā)生擁塞,更確切地說是通過向W中的字附加額外的比特(同時多個比特)來使得新的組比舊的組包多包含幾個比特。如果在最后的組中有足夠的碼字(連續(xù)的測試41和42,用于驗證最后組中碼字的數(shù)量,并且如果有以前的組),其中一些碼字從所述的組中被刪除(如上所述),這種刪除允許減小距離限制并且發(fā)現(xiàn)比以前更多的碼字。事實上,所描述的經(jīng)典的啟發(fā)式方法是以短長度的最大碼字開始,用高概率的符號映射這些碼字,并且試圖獲得一種好的壓縮率,但是有時候,小長度集合的尺寸與所需的碼字?jǐn)?shù)量S不兼容。在這種情況下,放寬幾個碼字提供了更大的自由度并且允許達(dá)到一種能夠滿足編碼對于距離和符號數(shù)量的初始需求的情形。重復(fù)這個刪除過程直到它對各種長度的碼字保持最大。如果在步驟31結(jié)束時W為空(對測試32|W|=0?返回“是”),重復(fù)步驟23、24、31、32。如果沒有達(dá)到所需的碼字?jǐn)?shù)量(對第三階段結(jié)束處提供的測試35返回“否”),必須重復(fù)步驟21到24以及31到35,直到所述的步驟要么發(fā)現(xiàn)沒有進一步發(fā)現(xiàn)字的可能,要么達(dá)到所需的碼字?jǐn)?shù)量。
如果已經(jīng)到達(dá)所需的碼字?jǐn)?shù)量(即C的碼字?jǐn)?shù)量等于或大于S(對測試35返回“是”),為了計算平均長度AL,這樣獲得的VLEC碼的結(jié)構(gòu)被用在第五部分,包括步驟51到56(圖4所示,同時在圖4中表示為操作“A4”)。這是通過借助源概率對每個碼字長度加權(quán)并且與當(dāng)前的最佳值進行比較完成的。如果該VLEC碼的所述的平均長度比AL的最小值(=ALmin)小,那么這個AL就變成ALmin,并且這個新的AL值和相應(yīng)的碼結(jié)構(gòu)被保存在存儲器中(步驟51)。這些步驟51及后面的步驟(第五部分;操作“A4”)允許在該算法中回到以前的組,同時該算法的其它階段總是在當(dāng)前的組上被執(zhí)行。用于這種反饋操作的步長為1,即這種反饋操作可以被認(rèn)為是窮舉的。
為了繼續(xù)最佳VLEC碼的搜索,必須避免保持相同的結(jié)構(gòu),相同的結(jié)構(gòu)將導(dǎo)致算法出現(xiàn)循環(huán)。當(dāng)前代碼最后添加的組被刪除(步驟52,53),刪除較短長度的碼字允許發(fā)現(xiàn)更長的碼字(測試54組中碼字的數(shù)量大于1?),并且先前的組的一些碼字(GVA的一半;MVA中最佳碼字)也被刪除(步驟55),為了在步驟21(見圖2)的開始處重新循環(huán)(步驟56)算法并且發(fā)現(xiàn)不同的VLEC結(jié)構(gòu)(刪除碼字的數(shù)量取決于用于選擇字的方法如果使用GA方法并且想要獲得線性碼,有必要刪除一半碼字,而MVA方式僅刪除一個最佳的碼字,即允許在下面的組中發(fā)現(xiàn)更多碼字的那個碼字)。
然而,這種啟發(fā)式方法通常不太可能考慮碼結(jié)構(gòu)或在處理過程中不太注意(為了不錯過任何事情),以致在所述方法的實現(xiàn)中出現(xiàn)了極大的復(fù)雜性,此外該方法非常耗時,因而變得無法使用。因此,在2002年10月23日提出的歐洲專利申請02292624.0(PHFR020110)中提出了一種改進的構(gòu)造方法,借助這種方法,有可能通過避免這些缺陷來減小復(fù)雜性,更精確地講,所述的建立變長糾錯碼的方法包括步驟(1)初始化所需的參數(shù)碼字的最小和最大長度,分別是L1和Lmax,每個碼字之間的自由距離dfree(對于一種VLEC碼C,所述的距離dfree是所有任意擴展碼的集合中的最小漢明距離),所需的碼字?jǐn)?shù)量S;(2)生成(步驟11)一種長度為L1、最小距離為bmin的定長碼C,其中bmin=min{bk;k=1,2,......,R},bk=與碼C的碼字長度Lk相關(guān)的距離,并定義為C的所有長度為Lk的碼字之間的最小漢明距離,并且R=C中不同碼字長度的數(shù)量,所述的生成步驟11創(chuàng)建了一個距離為d、長度為n比特的字的集合W;(3)在集合W中列出并存儲(步驟21)所有可能來自C的碼字的、距離為dmin的L1元組(對于一種VLEC碼C,所述的距離dmin是C的所有可能的不同長度碼字對之間的所有發(fā)散距離的最小值),并且,如果所述的集合W非空,通過在所有字的末尾附加一個額外的比特,所述的存儲步驟因此用一個新的集合替換了集合W,新的集合具有原集合兩倍數(shù)量的字,并且每個字的長度為L1+1;(4)刪除(步驟31)集合W中所有不滿足與C的所有碼字距離為cmin的字,所述的距離cmin是碼C的最小收斂距離;(5)在沒有發(fā)現(xiàn)碼字或達(dá)到了最大比特長度的情況下,減小(步驟41)距離約束以發(fā)現(xiàn)更多的字;(6)控制集合W的所有字之間的距離為bmin發(fā)現(xiàn)的字從而被添加進碼C(步驟34);(7)如果(步驟35)沒有達(dá)到所需的碼字?jǐn)?shù)量,重復(fù)步驟(1)到(6)(即步驟21到35),直到該方法發(fā)現(xiàn)沒有進一步繼續(xù)的可能性,或者發(fā)現(xiàn)了所需的碼字?jǐn)?shù)量;(8)如果C的碼字?jǐn)?shù)量大于S,根據(jù)VLEC碼的結(jié)構(gòu)計算(操作A4)平均長度AL,AL是通過對每個碼字長度以源的概率加權(quán)得到的,如果AL比ALmin小,所述的AL變成ALmin,其中ALmin=AL的最小值,并且相應(yīng)的碼結(jié)構(gòu)被保存在存儲器中;此外,所述的建立方法是這樣的以致最多只有一個比特被添加到集合W中每個字的末尾。
模擬顯示,使用經(jīng)典啟發(fā)式方法,所獲得的最佳編碼幾乎是無孔的(即在其結(jié)構(gòu)長度中沒有長度跳躍)。在前面引述的歐洲專利申請中,因此考慮到大多數(shù)好的編碼都沒有長度跳躍,并且因此,能夠相應(yīng)地減少所檢察的VLEC碼集合(這減少了該方法的模擬時間和實現(xiàn)復(fù)雜度,無須過多修改AL)。遵循這個假設(shè),根據(jù)所述的歐洲專利申請,通過在集合W中的每個字的末尾附加多于一個的比特,對該方法進行了修改。圖10和11顯示了相應(yīng)的實現(xiàn)(改進的啟發(fā)式構(gòu)造方法,也稱為“無孔最優(yōu)化”方法),它們顯示了對應(yīng)于所述方法的流程圖的兩個部分(與圖2到4中相同的元素采用相同的參考標(biāo)記)。關(guān)于圖2到4的流程圖,關(guān)于經(jīng)典啟發(fā)式技術(shù)的對于改進方法的實現(xiàn)沒有用處的部分被取消了(a)如果在步驟31結(jié)束時W為空(對測試32|W|=0?返回“是”),下一個階段現(xiàn)在(見圖10)不是步驟(23,24,31,32)的重復(fù),而是,根據(jù)所述的“無孔”方法,建立(在所述的重復(fù)的位置)到執(zhí)行操作55(在重復(fù)步驟21到24以及31到35之前,刪除一些碼字,或刪除最佳碼字)的電路的輸入的一個直接連接91,如前面一面,所述的操作55被操作21和后面的操作緊隨其后。
(b)該方法的第四階段現(xiàn)在被減少成一個步驟,操作41,該操作是測試“最后一組中碼字的數(shù)量=1?”。如果返回“否”,那么從執(zhí)行步驟55看來,與步驟55(連接91)的輸入建立一個直接鏈接,并且接著是操作21和下面的操作。如果返回“是”,與操作52到54的集合的輸入建立一個連接92。
當(dāng)使用GAS方法選擇碼字時,圖12的表中提供了這樣獲得的26個符號的英語源的結(jié)果??梢钥闯觯?dāng)和圖13種提供的結(jié)果比較時,雖然結(jié)果對于dfree=3不完全是最優(yōu)的(碼結(jié)構(gòu)在長度L=11處有一個孔),但是當(dāng)考慮到對于其它dfree值沒有嚴(yán)格的下降并且在2,5和4之間有一個時間增益時,AL的上升確實是可以接受的。當(dāng)比較本解決方案和圖7中的解決方案時,可以應(yīng)用相同的評論,這里MVA的復(fù)雜度效果很明顯。類似地,與選擇碼字的GA方法一起應(yīng)用無孔最優(yōu)化將導(dǎo)致時間增益,而對于dfree=3僅僅以輕微的AL上升為代價。最后,圖5在另一方面顯示了本解決方案對于可接受的時間增益提供了更好的AL,無孔最優(yōu)化補償了由GAS引入的幾乎所有的復(fù)雜度。
然而,使用所述的歐洲專利申請中的方法,會發(fā)生這樣的情況在生成的VLEC碼中有太多的小長度碼字。在2003年3月11日提出的另一個歐洲專利申請03290604.2(PHFR030026)中,提出了另一種改進的建立方法,根據(jù)該方法,不僅向最后獲得的碼字組執(zhí)行組刪除,而是更一般地向等于給定長度值的組執(zhí)行組刪除,為了使直接、快速地回到較小的長度成為可能,即在有過多小長度碼字的情況下跳過許多算法步驟。更確切地說,用Ls(s表示跳過)表示算法在碼字刪除階段將跳回的長度,已經(jīng)建議當(dāng)查找要刪除的碼字時,通過仔細(xì)跳轉(zhuǎn)到更低長度來跳過部分的原始啟發(fā)式算法(然而,當(dāng)考慮碼字組長度L小于預(yù)設(shè)值Ls時,很明顯應(yīng)用先前的方法會更好,因而在長度為L的組內(nèi)完成刪除)。L1和Ls之間的長度因此被稱為“自由長度”,即具有自由度的長度,因為它們在搜索過程中是遞減的(當(dāng)自由長度的數(shù)量增加時,模擬時間也隨指數(shù)增加)。這種方法,被稱為“Ls最優(yōu)化加法”,由圖10(先前方法未改變的部分,所謂的無孔最優(yōu)化方法)和圖14(無孔最優(yōu)化方法的修改部分)的聯(lián)合形成的流程圖所示。
所述的圖14是從圖11根據(jù)下面的指示得到的。刪除了當(dāng)前編碼的最后添加的組,但是僅當(dāng)(步驟61)這個先前的組的碼字長度小于或等于(對測試61返回“否”)Ls時(測試61后面的步驟與先前的一樣步驟53,54以及55或測試54輸出處的52)。如果所述的碼字長度大于Ls(對測試61返回“是”),提供了額外的步驟62用于進行到長度為Ls的碼字的組并且刪除所有超過Ls個比特的組。在步驟62的輸出,提供了與先前一樣的步驟54,55。實際上,模擬結(jié)果顯示對于Ls<L(max)能夠獲得好的壓縮率,其中L(max)最大授權(quán)的碼字長度(可以注意到增加Ls的值將導(dǎo)致AL的值改進,直到達(dá)到一個常數(shù)最低值——最佳值,這種行為因而提示一種可能的Ls的動態(tài)選擇,以Ls=L1開始遞增其直到達(dá)到所述的最低值)。然而,不幸地是,所述的Ls最優(yōu)化方法似乎不足以在任何情況下減少計算時間。
發(fā)明概要因此本發(fā)明的一個目標(biāo)是提出一種改進的構(gòu)造方法,借助該方法能夠避免這個缺點并且能夠獲得更好的、具有可以接受的計算時間的編碼。
為此,本發(fā)明涉及一種諸如在說明書的介紹部分定義的方法,此外該方法的特征在于,考慮了對于最佳VLEC碼,碼字?jǐn)?shù)量的所有分布都具有一條相似的有關(guān)鐘形類型的曲線,它定義了一種最佳長度值Lm,在該值之前,碼字?jǐn)?shù)量隨著其長度而增加,而在所述的值Lm之后,碼字?jǐn)?shù)量減少,所述的定義允許應(yīng)用所謂的具有避免曲線邊緣的“Ls最優(yōu)化”方法并且允許在局部工作。
根據(jù)一種可能的改進實現(xiàn),本發(fā)明涉及一種類似的方法(即也諸如說明書的介紹部分定義的一樣),但是該方法現(xiàn)在為優(yōu)選的,其特征在于不僅在最后獲得的組中實現(xiàn)了刪除,而且在給定長度值的組中實現(xiàn)了刪除,為了非常迅速地回到較小的長度,并且,考慮對于最佳VLEC碼,碼字?jǐn)?shù)量的所有分布具有一條相似的有關(guān)鐘形類型的曲線,它定義了一種最佳長度值Lm,在該值之前,碼字?jǐn)?shù)量隨著其長度而增加,而在所述的值Lm之后,碼字?jǐn)?shù)量減少,所述的定義允許應(yīng)用所謂的具有避免曲線邊緣的“Ls最優(yōu)化”方法并且允許在局部工作。
本發(fā)明的另一個目標(biāo)是提出一種用于執(zhí)行所述的構(gòu)造方法的裝置。
為此,本發(fā)明涉及一種根據(jù)所提出的兩種解決方案的任何一個來執(zhí)行變長糾錯碼建立方法的裝置。
附圖簡要說明將利用舉例的方式結(jié)合附圖來描述本發(fā)明,其中圖1描述了一種常規(guī)通信信道;圖2到4是一個信號流程圖的三個部分,該流程圖顯示了一種用于建立VLEC碼的常規(guī)方法(稱為啟發(fā)式方法)的主要步驟;圖5顯示了一種用于初始化圖2到4的方法的算法(稱為貪婪算法,或GA),圖6是張表,它給出了使用所述的圖5的算法利用啟發(fā)式構(gòu)造方法構(gòu)造的一個源的不同VLEC碼;圖7顯示了另外一種用于初始化圖2到4的方法的算法(稱為多數(shù)選舉算法,或MVA),圖8是另一張表,它給出了使用所述圖7的算法利用啟發(fā)式構(gòu)造方法構(gòu)造的一個源的不同VLEC碼;圖9是張表,它給出了26個符號英語源的源符號及其概率之間的對應(yīng)關(guān)系;圖10和11是一個流程圖的兩部分,該流程圖顯示了圖2到4所示的常規(guī)方法的一種改進的實現(xiàn);圖12是另一張表,它給出了圖6和8的表中所考慮的相同26個符號英語源并使用GAS的不同VLEC碼;圖13是另一張表,它給出了圖12中同一源的不同VLEC碼,并使用前面提到的GAS以及根據(jù)圖10和11顯示的改進的建立方法。
圖14顯示了根據(jù)圖2到4所示的常規(guī)方法的另一種改進,對圖11的流程圖的修改部分;圖15顯示了當(dāng)執(zhí)行根據(jù)本發(fā)明的方法時,關(guān)于由圖10和圖14聯(lián)合形成的流程圖,對圖10流程圖的下面部分所作的修改(關(guān)于原始的圖10,僅僅顯示了下面的修改部分);圖16是張表,顯示了當(dāng)執(zhí)行圖14的以前的方法(“Ls最優(yōu)化”方法)時,對于26個符號英語源所獲得的結(jié)果;圖17是張表,顯示了當(dāng)執(zhí)行根據(jù)本發(fā)明的方法時,對于26個符號英語源所獲得的結(jié)果。
本發(fā)明詳細(xì)說明考慮根據(jù)經(jīng)典啟發(fā)式方法或修改方法(“無孔最優(yōu)化”方法,“Ls最優(yōu)化”方法)所作的一些模擬的結(jié)果,結(jié)果顯示對于在所述的模擬中發(fā)現(xiàn)的最佳VLEC碼,碼字?jǐn)?shù)量的所有分布都具有相似的方面長度為L的碼字?jǐn)?shù)量Nc(L)對碼字長度L的曲線通常表現(xiàn)為鐘形。它意味著,在一個給定長度Lm(m代表中間)之前,碼字?jǐn)?shù)量隨著長度增加,而在所述的長度之后,碼字?jǐn)?shù)量減少。
關(guān)于由圖10和14聯(lián)合形成的單個流程圖,借助對圖10流程圖的下面部分所作的修改而因此利用了前面的評論圖15顯示了根據(jù)本發(fā)明的方法,必須與圖10剩余的上面部分一起考慮(就像下面的段落所描述的圖10所述的下面部分如何有助于實現(xiàn)根據(jù)本發(fā)明的方法)以及與所述的圖14一起考慮,以便形成新的與所述方法的實現(xiàn)相對應(yīng)的單個流程圖。這種方法,稱為“Lm最優(yōu)化”,是“Ls最優(yōu)化”方法的一種適應(yīng),并且這種適應(yīng)是通過引入下面描述的技術(shù)措施完成的。
根據(jù)所述的措施,向圖10所示的解決方案中添加了一種測試電路71(“集合W的尺寸?”),一種測試電路72(“W的字長度?”),以及一種計算電路73(“令W的尺寸=最后組的尺寸”),在電路33和34之間該方法事實上是在電路33之后實現(xiàn)的,其中集合W與各種不同的距離相對應(yīng),并且在電路34之前,該電路執(zhí)行將W的字添加到碼C中。在這兩個電路33和34之間,根據(jù)本發(fā)明執(zhí)行了額外的測試。
首先,假定W中的字長度Lw小于Lm??紤]到有關(guān)的曲線,集合W的尺寸必須不小于最后一組的尺寸。如果所述的尺寸小于最后一組的尺寸(對測試71返回“是”),必須重復(fù)步驟21到24以及31到35,就如在上面在描述以前的實現(xiàn)時所解釋的那樣。如果所述的W的尺寸大于最后一組的尺寸或字長度Lw大于Lm(對測試71返回“否”),就執(zhí)行測試72。
如果字長度Lw大于Lm并且小于L(max)-2,W尺寸必須小于最后一組的尺寸。如果不是(對測試72返回“是”),W中字的數(shù)量太高,必須被設(shè)置不多于最后一組尺寸,這是在電路73中完成的。接著W中的字被添加到C中(電路34),就像用先前的“啟發(fā)式”,“無孔最優(yōu)化”或“Ls最優(yōu)化”方法那樣。如果是(W尺寸小于最后一組的尺寸對測試72返回“否”),在將W中的字添加到碼C(電路73)之前什么也不做。為了給該方法一些自由度,這將允許在很小的振蕩下發(fā)現(xiàn)有關(guān)的代碼,有關(guān)的約束條件不是在全局測試而是在局部測試,即僅僅對于兩個長度驗證偏差W的長度Lw和最后一組的長度L(last_group)。
通過比較“Ls最優(yōu)化”方法(圖16的表)獲得的結(jié)果和本發(fā)明的“Lm最優(yōu)化”方法獲得的結(jié)果,顯示圖17中的表中,結(jié)果顯示“Lm最優(yōu)化”給出了具有小的時間增益的相同最佳編碼。這可以通過如下事實解釋,具有幾個碼字的源已被借助“Ls最優(yōu)化”方法很快地處理,“Lm最優(yōu)化”特別在大量碼字的情況下顯示出其優(yōu)點。
權(quán)利要求
1.一種建立變長糾錯碼的方法,所述的方法包括步驟(1)初始化所需的參數(shù)碼字的最小和最大長度,分別是L1和Lmax,每個碼字之間的自由距離dfree(對于一種VLEC碼C所述的距離dfree是所有任意擴展碼的集合中的最小漢明距離),所需的碼字?jǐn)?shù)量S;(2)生成一種長度為L1、最小距離為bmin的定長碼C,其中bmin=min{bk;k=1,2,......,R},bk=與碼C的碼字長度Lk相關(guān)的距離,并定義為C的所有長度為Lk的碼字之間的最小漢明距離,并且R=C中不同碼字長度的數(shù)量,所述的生成步驟創(chuàng)建了一個距離為d、長度為n比特的字的集合W;(3)在集合W中存儲所有可能來自C的碼字的、距離為dmin的L1元組(對于一種VLEC碼C,所述的距離dmin是C的所有可能的不同長度碼字對之間的所有發(fā)散距離的最小值),并且,如果所述的集合W非空,通過在所有字的末尾附加一個額外的比特,所述的存儲步驟用一個新的集合替換了集合W,新的集合具有原集合兩倍數(shù)量的字,并且每個字的長度為L1+1;(4)刪除集合W中所有不滿足與C的所有碼字距離為cmin的字,所述的距離cmin是碼C的最小收斂距離;(5)在沒有發(fā)現(xiàn)碼字或達(dá)到了最大比特長度的情況下,減小距離約束以發(fā)現(xiàn)更多的字;(6)控制集合W的所有字之間的距離為bmin,發(fā)現(xiàn)的字從而被添加進碼C;(7)如果沒有達(dá)到所需的碼字?jǐn)?shù)量,重復(fù)步驟(1)到(6),直到該方法發(fā)現(xiàn)沒有進一步繼續(xù)的可能性,或者發(fā)現(xiàn)了所需的碼字?jǐn)?shù)量;(8)如果C的碼字?jǐn)?shù)量大于S,根據(jù)VLEC碼的結(jié)構(gòu)計算平均長度AL,AL是通過對每個碼字長度以源的概率加權(quán)得到的,如果AL比ALmin小,所述的AL變成ALmin,其中ALmin=AL的最小值,并且相應(yīng)的碼結(jié)構(gòu)被保存在存儲器中;此外所述建立方法的特征在于,考慮到對于最佳VLEC碼,碼字?jǐn)?shù)量的所有分布都具有一條相似的有關(guān)鐘形類型的曲線,它定義了一種最佳長度值Lm,在該值之前,碼字?jǐn)?shù)量隨著其長度而增加,而在所述的值Lm之后,碼字?jǐn)?shù)量減少,所述的定義允許應(yīng)用所謂的具有避免曲線邊緣的“Ls最優(yōu)化”方法并且允許在局部工作。
2.一種建立變長糾錯碼的方法,所述的方法包括步驟(1)初始化所需的參數(shù)碼字的最小和最大長度,分別是L1和Lmax,每個碼字之間的自由距離dfree(對于一種VLEC碼C,所述的距離dfree是所有任意擴展碼的集合中的最小漢明距離),所需的碼字?jǐn)?shù)量S;(2)生成一種長度為L1、最小距離為bmin的定長碼C,其中bmin=min{bk;k=1,2,......,R},bk=與碼C的碼字長度Lk相關(guān)的距離,并定義為C的所有長度為Lk的碼字之間的最小漢明距離,并且R=C中不同碼字長度的數(shù)量,所述的生成步驟創(chuàng)建了一個距離為d、長度為n比特的字的集合W;(3)在集合W中存儲所有可能來自C的碼字的、距離為dmin的L1元組(對于一種VLEC碼C,所述的距離dmin是C的所有可能的不同長度碼字對之間的所有發(fā)散距離的最小值),并且,如果所述的集合W非空,通過在所有字的末尾附加一個額外的比特,所述的存儲步驟用一個新的集合替換了集合W,新的集合具有原集合兩倍數(shù)量的字,并且每個字的長度為L1+1;(4)刪除集合W中所有不滿足與C的所有碼字距離為cmin的字,所述的距離cmin是碼C的最小收斂距離;(5)在沒有發(fā)現(xiàn)碼字或達(dá)到了最大比特長度的情況下,減小距離約束以發(fā)現(xiàn)更多的字;(6)控制集合W的所有字之間的距離為bmin,發(fā)現(xiàn)的字從而被添加進碼C;(7)如果沒有達(dá)到所需的碼字?jǐn)?shù)量,重復(fù)步驟(1)到(6),直到該方法發(fā)現(xiàn)沒有進一步繼續(xù)的可能性,或者發(fā)現(xiàn)了所需的碼字?jǐn)?shù)量;(8)如果C的碼字?jǐn)?shù)量大于S,根據(jù)VLEC碼的結(jié)構(gòu)計算平均長度AL,AL是通過對每個碼字長度以源的概率加權(quán)得到的,如果AL比ALmin小,所述的AL變成ALmin,其中ALmin=AL的最小值,并且相應(yīng)的碼結(jié)構(gòu)被保存在存儲器中;此外所述建立方法的特征在于,不僅在最后獲得的組中實現(xiàn)了刪除,而且在給定長度值的組中實現(xiàn)了刪除,為了非常迅速地回到較小的長度,并且,考慮對于最佳VLEC碼,碼字?jǐn)?shù)量的所有分布具有一條相似的有關(guān)鐘形類型的曲線,它定義了一種最佳長度值Lm,在該值之前,碼字?jǐn)?shù)量隨著其長度而增加,而在所述的值Lm之后,碼字?jǐn)?shù)量減少,所述的定義允許應(yīng)用所謂的具有避免曲線邊緣的“Ls最優(yōu)化”方法并且允許在局部工作。
3.根據(jù)權(quán)利要求1和2中任意一個的VLEC碼建立方法,其中Lm的最優(yōu)值為Lm=Ls+1。
4.一種根據(jù)權(quán)利要求1到3的任意一個的用于執(zhí)行變長糾錯碼建立方法的裝置。
全文摘要
本發(fā)明涉及一種變長糾錯(LVEC)碼構(gòu)造方法,其中主要步驟是定義所有所需的參數(shù),生成具有固定長度L1的編碼,在這樣獲得的集合W中存儲所有可能的與碼字距離為最小發(fā)散距離d
文檔編號H03M7/40GK1762102SQ200480007354
公開日2006年4月19日 申請日期2004年3月16日 優(yōu)先權(quán)日2003年3月20日
發(fā)明者C·拉米 申請人:皇家飛利浦電子股份有限公司