專利名稱:一種交織編碼方法及裝置的制作方法
技術領域:
本發明涉及數據編譯碼領域,尤其涉及一種低密度生成矩陣碼的交織編 碼方法及裝置。
背景技術:
擦除信道是一種重要的信道模型,在數據傳輸過程中,如果接收端接 收到的數據包校驗錯誤,則將錯誤的數據段丟棄,相當于擦除。文件在因特 網上傳輸時,是基于數據包通信的,通常每個數據包要么無差錯的被接收端接收,要么根本就沒有被接收端接收到。傳輸控制協議(Transmission Control Protocol,簡稱TCP)中,針對網絡丟包的做法是檢錯重發機制,即利用輸 入端到輸出端的反饋信道控制需要重新傳送的數據包。當接收端檢測到丟包 時,產生一個重新發送控制信號,直到正確接收到完整數據包;而當接收端 接收到數據包時,同樣要產生一個接收確認信號。發送端也會跟蹤每一個數 據包直到接收到反饋回來的確認信號,否則就會重新發送。基于流模式和文件下載模式的數據廣播業務是點到多點的業務,不允許 反饋,因此傳統的檢錯重發機制無法使用,需要使用前向糾錯(ForwardError Correction,簡稱FEC )來保證數據的可靠傳輸。經典的應用層FEC包括RS (Reed-Solomon,里德.所羅門)碼和數字噴泉碼(Fountain codes)等。RS 碼的編譯碼復雜度較高, 一般只適用于碼長比較小的情況。LT(Luby Transform,陸柏變換)碼和Raptor (瑞普特)碼是兩種可實際應用的數字噴 泉碼。LT碼具有線性的編碼和譯碼時間,相對于RS碼有著本質的提高; 而Raptor碼由于采用了預編碼技術,因此具有更高的譯碼效率。在3GPP( 3rd Generation Partnership Project,第三代合作伙伴計劃)的組播廣播多媒體業 務(Multimedia Broadcast / Multicast Service,簡稱MBMS )以及數字視頻廣 播(Digital Video Broadcasting,簡稱DVB )中都采用了 Digital Fountain (凄t字噴泉)公司的Raptor碼作為其FEC編碼方案。線性分組碼是一組固定長度的碼組,可以表示為(n,k),通常用于前向糾 錯。在編碼時,k個信息位被編成n位碼組長度。由于(n,k)分組碼的2'個碼 字組成了 一個k維子空間,所以該2*個碼字一定可以由k個線性無關的基底 生成,若把該k個基底寫成矩陣的形式,則有<formula>formula see original document page 8</formula>其中,(n, k)分組碼中的任何碼字都可以由這組基底的線性組合生成,即<formula>formula see original document page 8</formula>此處稱G為碼的生成矩陣。顯然,對于生成矩陣的各行來說,只要滿 足線性無關即可(沒有考慮最小距離),而一個k維空間的基底可以任意選 擇/t個線性無關的矢量,所以作為碼的生成矩陣G也不是唯一的,但不論采 用哪一種形式,它們都生成相同的子空間,即同一個(n,k)分組碼。若編碼后碼字的前k位與信息位相同,則稱該碼為系統碼。編碼的過程 就是由k個信息位生成n位碼長的過程,通過增加n - k個校驗位來達到檢 錯和糾錯的目的。LT碼也是利用生成矩陣的稀疏性進行編碼,但是同低密度生成矩陣碼 (Low Density Generator Matrix Codes ,簡稱LDGC )相比,LT碼不支持系 統碼的編碼方式,因此LT碼難以滿足某些實際的FEC編碼需求;Raptor 碼支持系統碼,但是Raptor碼需要單獨的預編碼過程,即需要一個預編碼 矩陣,因此編碼的復雜度較高,而LDGC碼是直接利用生成矩陣編碼,不 需要另外的預編碼矩陣,且LDGC編碼時可以利用回代法求解上三角(或 下三角)方程,因此編碼復雜度遠低于Raptor碼。總而言之,同LT碼相比 LDGC的優勢是支持系統碼;同Raptor碼相比LDGC的優勢是編碼復雜度 更低。因此,需要提出一種針對LDGC特點的編碼方法和裝置。8發明內容本發明所要解決的技術問題是,克服現有^支術的不足,提供一種低密度 生成矩陣碼的交織編碼方法及裝置,以降低編碼復雜度,獲得較好的編碼性臺匕 月匕(為了解決上述問題,本發明提供一種交織編碼方法,該方法包括如下步驟Sl:對長度為K的待編碼信息比特序列s添加d個已知填充比特,生成 長度為L的信息比特序列m;S2:根據關系式IxQdge(l:L, l:L)-m生成中間變量I,并根據關系式C4 x Qdgc生成編碼比特序列C;S3: /人C中刪除d個所述已知填充比特;在上述交織編碼過程中,還在步驟Sl和S2之間對m中除所述已知填 充比特外的信息比特部分進行交織;和/或,在步驟S2之后對C中的校驗比 特部分進行交織;其中,Gidgc為L行、N+L-K列的矩陣,K<L<N。此外,所述Gwgc為低密度生成矩陣,Qdgc(l:L,l:L)是上三角或下三角矩陣。此外,若Gwgc (1:L,1:L)是左上三角或左下三角矩陣,則步驟S1中,將 所述d個已知填充比特添加到所述待編碼信息比特序列s之前;若Gwgc (1:L,1:L)是右上三角或右下三角矩陣,則步驟S1中,將所述d 個已知填充比特添加到所述待編碼信息比特序列s之后。此外,將進行所述交織前m的各元素記為B。,B!,…,Bw,將進行所述交 織后m的各元素記為Co,d,…,Cw;釆用如下方法對m進^f亍所述交織Ci = B (i mod kb)xz + floor(i/kb), 或Cj = B (i mod z)xkb + floor(i/z);i=0,l,...,L-l; z = L/kb,其中,kb為交織深度,z和kb為正整數。 此外,將進行所述交織前C的各元素記為Eo,Eh…,Em+w,將進行所述交織后C的各元素記為F。,F,,…,Fn化.,;采用如下方法對C的校驗比特部分 進行所述交織501:令i《,j=L;502:如果i〈N+d,則才丸行下一步,否則結束;503:如果N + cKX《zxcdl((N+d)/z),則跳轉至步驟505,否則執行下 一步;504:令Fj =EX, i = i+ 1;505:令j-j + l;跳轉至步驟502;上述X = kb x z + ((j — kb x z)mod mb) x z +floor((j — kb x z)/mb);或X = kb x z + ((j - kb x z)mod z) x mb+floor((j - kb x z)/z);其中,mb = ceil((N+d)/z) - kb;z = L/kb,其中,kb為交織深度,z和kb為正整數。本發明還提供一種交織編碼裝置,該裝置包含比特填充單元,預編碼 單元,分組碼編碼單元,比特刪除單元;第一交織單元和/或第二交織單元; 其中所述比特填充單元用于對長度為K的待編碼信息比特序列s添加d個已 知填充比特,輸出長度為L的信息比特序列m;所述第一交織單元用于對所述比特填充單元輸出的m進行交織,并將 交織處理后的m輸出至所述預編碼單元;所述預編碼單元用于接收所述比特填充單元或所述第一交織單元輸出 的m,并根據關系式IxGwgc(l:L, l:L)=m,生成并輸出中間變量I;所述分組碼編碼單元用于根據關系式C=I x Gldgc,對所述預編碼單元輸 出的I進行編碼,生成并輸出編碼比特序列C;所述第二交織單元用于接收所述分組碼編碼單元輸出的C;對C中的校 驗比特部分進行交織,將交織處理后的C輸出至所述比特刪除單元;輸出的C,并從C中刪除d個所述已知填充比特后將其輸出;其中,Gwgc為L行、N+L-K列的矩陣,K<L<N。此外,所述預編碼單元和所述分組碼編碼單元使用的Gwgc為低密度生 成矩陣,所述Gldgc (1 :L, 1丄)是上三角或下三角矩陣;若G他c(l:L,l丄)是左上三角或左下三角矩陣,則所述比特填充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之前;若Gwge(l:L,l:L)是右上三角或右下三角矩陣,則所述比特填充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之后。此外,將進行所述交織前m的各元素記為B。,Bi,…,B^,將進行所述交 織后m的各元素記為C。,d,…,所述第一交織單元采用如下方法對m進行所述交織Cg = B (g mod kb)xz + floor(g/kb), 或Cg = B (g咖d咖kb + floor(g/z); g=0, 1,…,L — 1;將進行所述交織前C的各元素記為E。,E!,…,EN+(M,將進行所述交織后 C的各元素記為Fo,F,,..., Fn+^;所述第二交織單元采用如下方法對C的校 驗比特部分進行所述交織501:令i《,j=L;502:如果i〈N+d,則執行下一步,否則結束;503:如果N + cKX《zxceil((N+d)/z),則跳轉至步驟505,否則執行下 一步;504:令巧=EX, i = i+ i;505:令j-j + l;跳轉至步驟502;上述X = kb x z + ((j - kb x z)mod mb) x z十floor((j - kb x z)/mb);或X = kb x z + ((j - kb x z)mod z) x mb+floor((j _ kb x z)/z);其中,mb = ceil((N+d)/z) — kb;z = L/kb,其中,kb為交織深度,z和kb為正整數。本發明還提供一種交織編碼裝置,該裝置包含比特填充單元,預編碼 單元,分組碼編碼單元,比特刪除單元;第一交織單元和/或第二交織單元; 其中所述比特填充單元用于對長度為K的待編碼信息比特序列s添加d個已 知填充比特,輸出長度為L的信息比特序列m;所述第一交織單元用于對所述比特填充單元輸出的m進4亍交織,并將 交織處理后的m輸出至所述預編碼單元;所述預編碼單元用于接收所述比特填充單元或所述第一交織單元輸出 的m,并根據關系式IxGuigc(l:L, l:L)=m,生成并輸出中間變量I;所述分組碼編碼單元用于根據關系式C=I x Gldgc,對所述預編碼單元輸 出的I進行編碼,生成并輸出編碼比特序列C;所述比特刪除單元用于接收所述分組碼編碼單元輸出的C,并從C中刪 除d個所述已知填充比特后將其輸出;所述第二交織單元用于接收所述比特刪除單元輸出的C,并對C中的校 驗比特部分進行交織,將交織處理后的C輸出;其中,Gwgc為L行、N+L-K列的矩陣,K<L<N。此外,所述預編碼單元和所述分組碼編碼單元使用的Gldge為低密度生 成矩陣,所述Gldge (1 :L, 1 :L)是上三角或下三角矩陣;若Gwgc(l:L,l:L)是左上三角或左下三角矩陣,則所述比特:t真充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之前;若Gwgc(l:L,l:L)是右上三角或右下三角矩陣,則所述比特填充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之后。此外,將進行所述交織前m的各元素記為Bo,Bi,…,Bw,將進行所述交 織后m的各元素記為Co,d,"., C"所述第一交織單元采用如下方法對m進行所述交織Cg = B (g mod kb)xz + floor(g/kb), 或Cg = B (g mod z)xkb + floor(g/z); g=0,1,... ,L — 1;將進行所述交織前C的各元素記為Eo,E,,…,EN+(M,將進4亍所述交織后 C的各元素記為F。,Fb…,Fn+w;所述第二交織單元采用如下方法對C的校 驗比特部分進行所述交織501:令i-L, j=L;502:如果i〈N+d,則執行下一步,否則結束;503:如果N + d《X《zxceil((N+d)/z),則跳轉至步驟505,否則扭j亍下 一步;504:令巧=EX, i = i+l;505:令j" + l;跳轉至步驟502;上述X = kb x z + ((j - kb x z)mod mb) x z十floor((j - kb x z)/mb);或X = kb x z + ((j - kb x z)mod z) x mb+floor((j - kb x z)/z);其中,mb = ceil((N+d)/z) - kb;z = L/kb,其中,kb為交織深度,z和kb為正整數。采用本發明的交織編碼方法及裝置,可以在降低編碼復雜度的同時,獲 得較好的性能。
圖1是本發明實施例LDGC的交織編碼方法流程圖;圖2為本發明實施例的LDGC交織編碼裝置示意圖;圖3是LDGC生成矩陣的示意圖;圖4是LDGC生成矩陣的非零元素分布示意圖;圖5是本發明實施例LDGC交織編碼裝置預編碼單元示意圖;圖6是本發明實施例LDGC交織編碼裝置分組碼編碼單元示意圖。
具體實施方式
LDGC是一種線性分組碼,其生成矩陣中的非零元素通常是稀疏的。同 時,LDGC碼還是一種系統碼,其生成矩陣中的前k列組成的方陣通常是一 個上三角或下三角矩陣,該矩陣求逆可以通過迭代的方法完成。LDGC的編 碼是先利用系統碼中信息位與中間變量的對應關系求出中間變量,然后再用 中間變量乘以生成矩陣得到編碼后的碼字。LDGC碼的譯碼過程是先利用生 成矩陣求得中間變量,然后根據信息位和中間變量的變換關系求出信息位。下面將參考附圖,詳細說明本發明的具體實施方式
。方法實施例圖1是本發明實施例LDGC的交織編碼方法流程圖。本實施例描述的 是對長度為K的信息比特序列進行編碼,然后輸出長度為N的編碼后的碼 字比特序列給后續處理單元進行處理的過程。其中,校驗位長度為M=N - K, 碼率為r=K/N。如圖1所示,本發明實施例的LDGC交織編碼方法包括以下 步驟S102,構造L行、N+L-K列的生成矩陣Gwge。其中,該生成矩陣的前 L列的所有行構成的方陣Gldgc (1:L,1:L)是上三角(或下三角矩陣),K、 L 和N是給定的正整數,并且K〈LOJ。S104,對1 xK信息比特序列s添加d=L-K個已知填充比特,構成1 xL信息比特序列m。S106,對所述填充后的信息比特序列m進行交織,得到交織后的信息 比特序列 mint (也可以稱作經過交織處理的m);注意到,通常一個信息比特序列對應的編碼序列的各比特是在多個數據 包中傳輸,因此對m進行交織的目的是將連續擦除差錯打散,避免突發差 錯。S108,由于LDGC是系統碼,所以有IxQdgc(l:L, l:L)=mint;利用Gldgc (1:L,1:L)是一個上三角矩陣(或下三角矩陣)的特點,使用交織后信息比特 序列mint,得到1 xL中間變量I,并根據C-IxG^,對中間變量I進行編碼, 得到1 x (N+d)的碼字Cword (即編碼序列)。S110,對所述編碼序列Cw。rd的校驗比特部分進行交織,得到交織后的14編碼序列Cpem (也可以稱作經過交織處理的Cw。rd),目的是將連續擦除差錯打散,避免突發差錯。SI 12,從上述步驟生成的1 x (N+d)編碼序列Cpem中刪除步-驟S104中 添加的已知填充比特,最終得到N比特的編碼碼字Cldgc,發送出去。其中,步驟S110和S112的順序可以互換,即可以先執行步驟S112, 刪除L - K個已知填充比特,然后對去掉填充比特的編碼序列的才交-瞼比特部 分進行交織,可以實現同樣的效果。此外,在生成矩陣的每一列中,元素l的個數(即,列重量)必須滿足 一定的度分布原則。生成矩陣的前L列的所有行組成的方陣可以是一個左上 三角矩陣、左下三角矩陣、右上三角矩陣、或右下三角矩陣(如圖3所示)。此外,若Gwgc(l:L,l:L)是左上三角或左下三角矩陣,則對于初始長度為 K的信息比特序列,將d=L - K個已知填充比特添加到K個信息比特序列的 前面;若Gldgc (1:L,1:L)是右上三角或右下三角矩陣,則對于初始長度為K 的信息比特序列,將d=L - K個已知填充比特添加到K個信息比特序列的后 面;這樣添加可以提高編碼、譯碼的性能;需要指出的是,添加填充比特的 位置不局限于上述情況。裝置實施例圖2為本發明實施例的LDGC交織編碼裝置示意圖。該裝置用于對輸 入的K比特的二進制信息比特流進行編碼,然后輸出N比特的二進制碼字 比特序列給后續的處理單元。如圖2所示,該LDGC的編碼裝置包括矩陣生成單元,比特填充單元,第一交織單元,預編碼單元,分組碼編碼單元,第二交織單元,比特刪 除單元。其中矩陣生成單元,用于生成一個L行、N+L-K列的生成矩陣Gwgc。其中, 該生成矩陣的前L列的所有行構成的方陣Gldgc (1:L,1:L)是上三角或下三角 矩陣;矩陣生成單元將Gldgc (1:L,1:L)輸出至預編碼單元,并將Gldgc(1:L,1:N+L-K)輸出至分組碼編碼單元。其中,K、 L和N是給定的正整數, 并且K<L<N。比特填充單元,用于對1 x K的輸入信息比特序列s添加d=L - K個已 知填充比特,生成1 x L的信息比特序列m,并且將其輸出到第一交織單元。第一交織單元,用于對所述填充已知比特后的信息比特序列m進行交 織,輸出交織后的信息比特序列mint,目的是將連續擦除差錯打散,避免突 發差錯。第一交織單元為可選單元,即比特填充單元可以將m直4妄,命出至預編 碼單元(如圖2虛線所示的連接關系)。預編碼單元,用于根據關系式IxGldgc(l:L, l:L)=mint,對1 x L的信息 比特流m進行解方程計算,生成lxL的中間變量I,并將其輸出到分組碼 編碼單元。如圖5所示,預編碼單元可以為一個解上三角和/或下三角方程 器,該單元有兩個輸入, 一個是G琳(l: L,1:L),另一個是長度為L的信息 比特序列m,輸出中間變量I。分組碼編碼單元,用于對中間變量I進行編碼,生成1 x (N+d)的二進制 碼字序列C,并且將其輸出至比特刪除單元;如圖6所示,分組碼編碼單元 可以為一個矩陣乘法器,有兩個輸入, 一個是Gwge ,另一個是長度為L的 中間變量I,輸出編碼后的碼字比特序列C。第二交織單元,用于對所述分組碼編碼單元輸出的編碼后的碼字比特序 列C的校驗比特部分進行交織,輸出交織后的編碼序列,目的是將連續擦 除差錯打散,避免突發差錯。比特刪除單元,對于交織后的編碼序列,刪除比特填充單元中填充的d 個填充比特,最終得到N比特的編碼碼字。其中,第二交織單元和比特刪除單元的位置可以互換,即碼字比特序列 C可以先送到比特刪除單元,刪除已知填充比特,然后送到第二交織單元, 對去掉填充比特的碼字序列的才L驗比特部分進行交織(見圖中虛線所示的連 接關系),結果是等同的。此外,矩陣生成單元根據以下原則確定生成矩陣在生成矩陣的每一列中,元素l的個數(即,列重量)必須滿足一定的度分布原則。生成矩陣的 前L列和所有行組成的方陣是一個左上三角矩陣、左下三角矩陣、右上三角矩陣、或右下三角矩陣(如圖3所示)。此外,若Gwgc(l:L,l:L)是左上三角或左下三角矩陣,則對于初始長度為 K的信息比特序列,將d=L - K個已知填充比特添加到K個信息比特序列的 前面;若Gldgc (1:L,1:L)是右上三角或右下三角矩陣,則對于初始長度為K 的信息比特序列,將d=L - K個已知填充比特添加到K個信息比特序列的后 面;這樣添加可以提高編碼、譯碼的性能;需要指出的是,添加填充比特的 位置不局限于上述情況。此外,由于LDGC是系統碼,有IxQdgc(l丄,LL)=mint;所以預編碼單 元利用Gwgc(l丄,l:L)是一個上三角矩陣(或下三角矩陣)的特點解方程求出 1 xL中間變量I。此外,分組碼編碼單元根據C-IxG咖,對中間變量I進行編碼,得到1 x (N+d)的二進制碼字序列。方法應用實例1:下面將舉一應用實例對本發明的交織編碼方法進行詳細描述。該應用實 例中對K個輸入的信息比特序列m進行編碼,最終產生M個校驗比特序列, 并且信息比特和校驗比特構成了 N-K+M的碼字序列Cldgc。編碼步驟中的 加法是指模2加。為了描述方便,采用如下定義Ao,A!,..., Atl為K比特信息序列s;Bo,Bi,…,BL-i為填充L比特已知比特后信息序列m;Co,d,…,Cw為進行比特交織后的L信息比特序列mint;Do,Di,…,Dw為L比特中間變量序列I;Eo,E!,…,En+^指N+d比特去掉填充比特前的碼字CWOTd;Fo,F,,…,FN+(M指N+d比特交織后的碼字Cpem;Go,Gi,…,G^指N比特去掉填充比特后的碼字Cldgc; g,是指G晦c的第j行第i列元素。 交織編碼包括下面幾個步驟(1 )在輸入信息比特序列s后面添加d = L - K個已知序列 (1,1,1,1,1,1,…,1),構成lxL序歹'Jm,即Bi = Ai, i=0,l, .K- 1;Bj=l,i=K,K+l,…,L-1。(2 )對所述填充后信息比特序列m進行交織,得到交織后的1 x L信 息比特序列 mint; mint的各元素Cj = B (imodkb"z + floor(i/kb), i=0,l,.."L- 1。在這個例子中,交織運算采用行列交織器,并且假設L二kbxz,其中kb 是交織深度,z和kb為正整數。需要指出,本發明不局限于上述交織方法。(3)已知生成矩陣G一的L行、前L列組成的方陣Gidgc(l:L,l:L)和長 度為L的序列s,根據關系式IxGldge(l:L,l:L) = s,解方程得到中間變量I; 其中,Gwgc(l:L,l:L)是右上三角方陣。I的各元素為A=C0;產o(4 )根據Cw。rd=I* Gldgc (l:L,l:N+d),計算得到長度為1 x ( N+d )的Cword。 Qv。d的各元素為五,C,, / = 0,-.-,丄—1;i一iA =Z! / = Zv,tV + J —1。(5)對編碼序列C麗d的校驗比特部分進行交織,得到交織后的編碼序列Cpe加,Cpe加的各元素采用如下方法獲得F「Ei, z、0,…,丄-l; 令mb = ceil((N+d)/z) - kb 。為了完成校驗比特部分的分組交織,執行如下搡作 501a: 4M=L, j=L;502a:如果i<N+d,則執行下一步,否則結束;503a:如果N + cKkbxz + ((j - kbx z)mod mb) x z +floor((j - kb x z)/mb) < z x Ceil((N+d)/z),則跳轉至步驟505a,否則執行下一步;504a: 令F; = Ekbxz+((j—kbxz) mod mb)xz + fl00r((j—kbxz)/mb), i = i + 1;505a:令j-j + l;跳轉至步驟502a。至此,完成了對編碼序列C,n!的校驗比特部分進行交織。本應用實例中,交織運算采用行列交織器,并且設L-kbxz,其中kb是交織深度,Z和kb為正整數。需要指出的是,本發明不局限于所述的交 織方法。(6 )刪掉步驟1的d個填充比特,產生1 x N碼字為Cldgc, Qdge的各元素為G尸Fi,i=0,...,K-1; Gi=Fi+d, i=k,…,N - 1。方法應用實例2:下面將舉一應用實例與前面的實例1類同,不同之處在于交織方法,所 描述的交織編碼方法同樣包括6個步驟,只有步驟2和4的交織方法不同。其中,步驟(2)對所述填充后信息比特序列m進行行列交織,得到交 織后的1 x l信息比特序列mint; mint的各元素Ci = b (i咖dz)xkb + floor(i/z), i=0,l,...,L _ 1。其中,步驟(5)對編碼序列C麗d的校驗比特部分進行行列交織,得到交織后的編碼序列Cpenn, Cperm的各元素采用如下方法獲得Fi = Ei, / = 0,".,丄—1;令mb = ceil((N+d)/z) - kb。為了完成校驗比特部分的分組交織,執行如下操作 501b:令i:L, j=L;502b:如果KN+d,則執行下一步,否則結束;503b:如果N + d《kb x z + ((j - kb x z)mod z) x mb+floor((j - kb x z)/z) 《zxceil((N+d)/z),則跳轉至步驟505b,否則執行下一步;504b: 令巧=Ekbxz+w—kbxz)modz)xmb + floor((j—kbxz)/z) , i = i + 1;505b:令j十l;跳轉至步驟502b。至此,完成了對編碼序列C,d的校驗比特部分進行交織。裝置應用實例下面將舉一應用實例對本發明的交織編碼裝置進行詳細描述。 本應用實例中, 一個1 x K=l x 24的二進制信息比特數據流s ( s用16 進制數可表示為Ao,Ai,…A23)要通過根據本發明實施例的交織編碼裝置編 碼生成72比特的LDGC編碼碼字,所以有K^24, N=72。矩陣生成單元產生一個L=48行、N+L - K=96列的生成矩陣Gldgc;其中, Gwgc采用與LT碼近似的度分布準則,Gwgc的前L列的所有4亍組成的方陣 GMgc(l:L,l:L^Gwgc(l:48,l:48)是一個右上三角矩陣,如圖4所示(其中,黑 點表示元素l,空白位置表示元素0)。矩陣生成單元將Gwgc(l:L,l:L)-G他c (1:48,1:48)輸出到預編碼單元,并且將Gldgc (1 :L,l :N+L - K)=Gldgc (1:48,1:96) 輸出到分組碼編碼單元。Bi = A;, i=0,l,....K- 1;B「1, i=K,K+l,…,L-1。比特i真充單元在1 x K=l x 24的輸入^(言息比特流Ao,Ah…A23后面添加 d=L - K=24個已知填充比特p ( p是全1序列),生成1 x L=l x 48的填充 后信息比特流m (Bo,B!,…B47),并且將m輸出到預編碼單元。第一交織單元,用于對所述填充已知比特后的信息比特序列m進行交得到交織后的1 xL信息比特序列mint (Q),d,…,C47) ; mint的各元素Ci = B (i mod kb)*z + floor(i/kb), —0,1,... ,L - 1 。預編碼單元根據LDGC碼是系統碼的特點(由于LDGC碼是系統碼, 所以有IxGwgc(l:48,l:48)^mint),利用Gldgc (1:L,1:L戶G一(1:48,1:48)是一個 右上三角矩陣,對輸入的1 x L=l x 48的信息比特流mint進行解方程計算, 求出1 xL=l x48的中間變量I (Do,Dh…,D 47),并且將I輸出到分組碼編 碼單元。I的各元素為A=C0;分組碼編碼單元根據Cw。rd=I* Gldge (l:L,l:N+d),計算得到長度為lx (N+d)的Cword,將Cw。rd輸出到比特刪除單元。Cw。rd的各元素為£,=C,, i = 0,-..,i—1;z-i第二交織單元,對編碼序列C,d的校驗比特部分進行交織,得到交織 后的編碼序列Cperm, Cp咖的各元素采用如下方法獲得Fi = Ei, / = 0,-",丄-1;令mb = ceil((N+d)/z) - kb。為了完成校驗比特部分的分組交織,執行如下操作 501a:令i:L, j=L;502a:如果i<N+d,則執4亍下一步,否則結束;503a:如果N + d《kbxz + ((j-kbx z)mod mb) x z+floor((j - kb x z)/mb) <zxceil((N+d)/z),則跳轉至步驟505a,否則執行下一步;504a: 令巧一Ekbxz+((j—kbxz) mod mb)xz + floor((j—kbxz)/mb), i = i + 1; 505a:令j-j + l;跳轉至步驟502a。比特刪除單元,將添加的d=24個填充比特從1 x (N+d)=l x 96的二進制 碼字Cperm中刪除,將最終得到N=72比特的編碼碼字ddgc并且發送出去。Cidgc的各元素為G尸Fi, i=0,...,K-l;Gi=Fi+d, i=k,…,N- 1。綜上所述,本發明可以支持任意信息分組長度和任意碼率編碼,在性能 上與Raptor碼類似,都能接近理論最優性能。其中,第 一交織單元和第二交織單元還可以使用下面的公式。對于第一交織單元,對所述填充后信息比特序列m進行交織,得到交 織后的1 x L信息比特序列mint; mint的各元素C; = B (i m。d z)*kb + fl。。r(i/z), i=0,l,...,L-1。對于第二交織單元,對編碼序列C,d的校驗比特部分進行交織,得到 交織后的編碼序列Cperm, Cp,的各元素采用如下方法獲得Fi-Ei, / = (), ,£-1;令mb = ceil((N+d)/z) - kb。為了完成校驗比特部分的分組交織,執行如下#:作 501b: 4M=L, j=L;502b:如果i〈N+d,則才丸行下一步,否則結束;503b:如果N + cKkbxz + ((j-kbx z)mod z) x mb+floor((j - kb x z)/z) 《zxceil((N+d)/z),則跳轉至步驟505b,否則執行下一步;504b: 令Fj = Ekbxz+((j—kbxz) mod z)xmb + fl00r((j—kbxz)/z) , i = i + 1;505b:令j-j + l;跳轉至步驟502b。
權利要求
1. 一種交織編碼方法,其特征在于,該方法包括如下步驟S1對長度為K的待編碼信息比特序列s添加d個已知填充比特,生成長度為L的信息比特序列m;S2根據關系式I×Gldgc(1:L,1:L)=m生成中間變量I,并根據關系式C=I×Gldgc生成編碼比特序列C;S3從C中刪除d個所述已知填充比特;在上述交織編碼過程中,還在步驟S1和S2之間對m中除所述已知填充比特外的信息比特部分進行交織;和/或,在步驟S2之后對C中的校驗比特部分進行交織;其中,Gldgc為L行、N+L-K列的矩陣,K<L<N。
2、 如權利要求l所述的方法,其特征在于,所述Gldge為低密度生成矩陣,Gldgc (1:L,1:L)是上三角或下三角矩陣。
3、 如權利要求2所述的方法,其特征在于,若Gwgc (1:L,1:L)是左上三角或左下三角矩陣,則步-驟S1中,將所述d 個已知填充比特添加到所述待編碼信息比特序列s之前;若G他c (1:L,1:L)是右上三角或右下三角矩陣,則步驟S1中,將所述d 個已知填充比特添加到所述待編碼信息比特序列s之后。
4、 如權利要求l所述的方法,其特征在于,將進行所述交織前m的各元素記為Bo,Bi,..., Bw,將進行所述交織后m 的各元素記為C。,d,…,Cu;采用如下方法對m進行所述交織Ci = B (j mod kb)xz + floor(i/kb), 或C! = B (i mod z)xkb + floor(i/z);i=0,l,...,L-1; z = L/kb,其中,kb為交織深度,z和kb為正整數。
5、 如權利要求l所述的方法,其特征在于,將進行所述交織前C的各元素記為Eo,E!,..., En化.!,將進行所述交織后C的各元素記為Fo,Fb…,Fn+^;采用如下方法對C的校驗比特部分進行所 述交織501:令i:L, j=L;502:如果i〈N+d,則4丸行下一步,否則結束;503:如果N + d《X《zxcdl((N+d)/z),則跳轉至步驟505,否則執行下 一步;504:令巧=EX, i = i+ 1;505:令j-j + l;跳轉至步驟502;上述X = kb x z + ((j - kb x z)mod mb) x z十floor((j - kb x z)/mb);或X = kb x z + ((j - kb x z)mod z) x mb+floor((j - kb x z)/z);其中,mb = ceil((N+d)/z) - kb;z = L/kb,其中,kb為交織深度,z和kb為正整數。
6、 一種交織編碼裝置,其特征在于,該裝置包含比特填充單元,預 編碼單元,分組碼編碼單元,比特刪除單元;該裝置還包含第一交織單元 和/或第二交織單元;其中所述比特填充單元用于對長度為K的待編碼信息比特序列s添加d個已 知填充比特,輸出長度為L的信息比特序列m;所述第一交織單元用于對所述比特填充單元輸出的m進行交織,并將 交織處理后的m輸出至所述預編碼單元;所述預編碼單元用于接收所述比特填充單元或所述第一交織單元輸出 的m,并根據關系式IxGwgc(l:L,l:L)-m,生成并輸出中間變量I;所述分組碼編碼單元用于根據關系式C=I x Gldge,對所述預編碼單元輸 出的I進行編碼,生成并輸出編碼比特序列C;所述第二交織單元用于接收所述分組碼編碼單元輸出的C;對C中的校 驗比特部分進行交織,將交織處理后的C輸出至所述比特刪除單元;所述比特刪除單元用于接收所述分組碼編碼單元或所述第二交織單元 輸出的C,并從C中刪除d個所述已知填充比特后將其輸出;其中,Gwgc為L行、N+L-K列的矩陣,K<L<N。
7、 如權利要求6所述的裝置,其特征在于,所述預編碼單元和所述分組碼編碼單元使用的Gldgc為^f氐密度生成矩陣, 所述Gldgc (1 :L, 1 :L)是上三角或下三角矩陣;若Guigc(l:L,l:L)是左上三角或左下三角矩陣,則所述比特填充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之前;若Gwgc(l:L,l:L)是右上三角或右下三角矩陣,則所述比特填充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之后。
8、 如權利要求6所述的裝置,其特征在于,將進^f于所述交織前m的各元素記為Bo,B,,..., 纟奪進4亍所述交織后m 的各元素記為C。,d,…,Q^;所述第一交織單元采用如下方法對m進行所述交織Cg = B (g mod kb)xz + floor(g/kb), 或Cg = B (g mo(j z)xkb + floor(g/z); g=0,1,.. "L — 1;將進行所述交織前C的各元素記為Eo,Eh..., En+cm,將進行所述交織后 C的各元素記為Fo,Fh,.., FN+cM;所述第二交織單元采用如下方法對C的校 驗比特部分進行所述交織501:令i:L, j=L;502:如果i〈N+d,則才丸行下一步,否則結束;503:如果N + (KX《zxcdl((N+d)/z),則跳轉至步驟505,否則執行下 一步;504:令Fj =EX, i = i+ 1;505:令j" + l;跳轉至步驟502;上述X = kb x z + ((j - kb x z)mod mb) x z +floor((j - kb x z)/mb);或X = kb x z + ((j - kb x z)mod z) x mb+floor((j - kb x z)/z);其中,mb = ceil((N+d)/z) - kb;z = L/kb,其中,kb為交織深度,z和kb為正整數。
9、 一種交織編碼裝置,其特征在于,該裝置包含比特填充單元,預 編碼單元,分組碼編碼單元,比特刪除單元;該裝置還包含第一交織單元 和/或第二交織單元;其中所述比特填充單元用于對長度為K的待編碼信息比特序列s添加d個已 知填充比特,輸出長度為L的信息比特序列m;所述第一交織單元用于對所述比特填充單元輸出的m進行交織,并將 交織處理后的m輸出至所述預編碼單元;所述預編碼單元用于接收所述比特填充單元或所述第一交織單元輸出 的m,并根據關系式IxGwgc(l:L, l:L)=m,生成并輸出中間變量I;所述分組碼編碼單元用于根據關系式C=I x Gldgc,對所述預編碼單元輸 出的I進行編碼,生成并輸出編碼比特序列C;所述比特刪除單元用于接收所述分組碼編碼單元輸出的C,并從C中刪 除d個所述已知填充比特后將其輸出;所述第二交織單元用于接收所述比特刪除單元輸出的C,并對C中的校 驗比特部分進行交織,將交織處理后的C輸出;其中,Gwgc為L行、N+L-K列的矩陣,K<L<N。
10、 如權利要求9所述的裝置,其特征在于,所述預編碼單元和所述分組碼編碼單元使用的Gldge為低密度生成矩陣, 所述Gldgc (1 :L, 1 :L)是上三角或下三角矩陣;若Gwgc(l:L,l:L)是左上三角或左下三角矩陣,則所述比特填充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之前;若G,dgc(l:L,l:L)是右上三角或右下三角矩陣,則所述比特填充單元將所 述d個已知填充比特添加到所述待編碼信息比特序列s之后。
11、 如權利要求9所述的裝置,其特征在于,將進4亍所述交織前m的各元素記為B。,B,,…,Bw,將進4亍所述交織后m 的各元素記為C。,d,…,Q^;所述第一交織單元采用如下方法對m進行所述交織Cg = B (g mod kb)xz + floor(g/kb), 或Cg = B (g mod z)xkb + floor(g/z); g=0,1, .. ,L — 1;將進行所述交織前C的各元素記為E。,Eh…,EN+cM,將進行所述交織后 C的各元素記為F。,Fh…,FN+(M;所述第二交織單元采用如下方法對C的校 ^r比特部分進行所述交織501:令i:L, j=L;502:如果i〈N+d,則執行下一步,否則結束;503:如果N + d《X《zxceil((N+d)/z),則跳轉至步驟505,否則執行下 一步;504:令巧=EX, i = i+ 1;505:令j叫+ l;跳轉至步驟502;上述X = kb x z + ((j - kb x z)mod mb) x z十floor((j - kb x z)/mb);或X = kb x z + ((j - kb x z)mod z) x mb+floor((j - kb x z)/z);其中,mb = ceil((N+d)/z) - kb;z = L/kb,其中,kb為交織深度,z和kb為正整數。
全文摘要
一種交織編碼方法及裝置,該方法包括如下步驟S1對長度為K的待編碼信息比特序列s添加d個已知填充比特,生成長度為L的信息比特序列m;S2根據關系式I×G<sub>ldgc</sub>(1:L,1:L)=m生成中間變量I,并根據關系式C=I×G<sub>ldgc</sub>生成編碼比特序列C;S3從C中刪除d個所述已知填充比特;在上述交織編碼過程中,還在步驟S1和S2之間對m中除所述已知填充比特外的信息比特部分進行交織;和/或,在步驟S2之后對C中的校驗比特部分進行交織;其中,G<sub>ldgc</sub>為L行、N+L-K列的矩陣,K<L<N。采用本發明的交織編碼方法及裝置,可以在降低編碼復雜度的同時,獲得較好的性能。
文檔編號H04L1/00GK101286745SQ20081009468
公開日2008年10月15日 申請日期2008年5月7日 優先權日2008年5月7日
發明者俊 徐, 胡留軍, 袁志鋒, 進 許 申請人:中興通訊股份有限公司