本發(fā)明涉及信道編碼領(lǐng)域,特別涉及一種DTMB系統(tǒng)中二級(jí)部分并行輸入累加左移的QC-LDPC編碼器。
背景技術(shù):
低密度奇偶校驗(yàn)(Low-Density Parity-Check,LDPC)碼是高效的信道編碼技術(shù)之一,而準(zhǔn)循環(huán)LDPC(Quasi-Cyclic LDPC,QC-LDPC)碼是一種特殊的LDPC碼。QC-LDPC碼的生成矩陣G和校驗(yàn)矩陣H都是由循環(huán)矩陣構(gòu)成的陣列,具有分段循環(huán)的特點(diǎn),故被稱為QC-LDPC碼。循環(huán)矩陣的首行是末行循環(huán)右移1位的結(jié)果,其余各行都是其上一行循環(huán)右移1位的結(jié)果,因此,循環(huán)矩陣完全由其首行來表征。通常,循環(huán)矩陣的首行被稱為它的生成多項(xiàng)式。
DTMB標(biāo)準(zhǔn)采用了系統(tǒng)形式的QC-LDPC碼,其生成矩陣G的左半部分是一個(gè)單位矩陣,右半部分是由e×c個(gè)b×b階循環(huán)矩陣Gi,j(1≤i≤e,e<j≤t,t=e+c)構(gòu)成的陣列,如下所示:
其中,I是b×b階單位矩陣,0是b×b階全零矩陣。G的連續(xù)b行和b列分別被稱為塊行和塊列。由式(1)可知,G有e塊行和t塊列。DTMB標(biāo)準(zhǔn)采用了一種碼率η=4/5的QC-LDPC碼,對(duì)于該碼,t=59,e=48,c=11,b=127。
DTMB標(biāo)準(zhǔn)中4/5碼率QC-LDPC編碼器的現(xiàn)有解決方案是基于c個(gè)I型移位寄存器加累加器(Type-I Shift-Register-Adder-Accumulator,SRAA-I)電路的串行編碼器。由c個(gè)SRAA-I電路構(gòu)成的串行編碼器,在e×b個(gè)時(shí)鐘周期內(nèi)完成編碼。該方案需要2×c×b個(gè)寄存器、c×b個(gè)二輸入與門和c×b個(gè)二輸入異或門,還需要e×c×b比特ROM存儲(chǔ)循環(huán)矩陣的生成多項(xiàng)式。該方案有兩個(gè)缺點(diǎn):一是需要大量存儲(chǔ)器,導(dǎo)致電路成本高;二是串行輸入信息比特,編碼速度慢。
技術(shù)實(shí)現(xiàn)要素:
DTMB系統(tǒng)中4/5碼率QC-LDPC編碼器的現(xiàn)有實(shí)現(xiàn)方案存在成本高、編碼速度慢的缺點(diǎn),針對(duì)這些技術(shù)問題,本發(fā)明提供了一種基于二級(jí)流水線的QC-LDPC編碼器。
如圖1所示,DTMB系統(tǒng)中基于二級(jí)流水線的QC-LDPC編碼器主要由2部分組成:稀疏矩陣與向量的乘法器和向量與高密度矩陣的乘法器。編碼過程分2步完成:第1步,使用稀疏矩陣與向量的乘法器計(jì)算向量s;第2步,使用向量與高密度矩陣的乘法器計(jì)算校驗(yàn)向量p。
關(guān)于本發(fā)明的優(yōu)勢(shì)與方法可通過下面的發(fā)明詳述及附圖得到進(jìn)一步的了解。
附圖說明
圖1是基于二級(jí)流水線的QC-LDPC編碼過程;
圖2是稀疏矩陣與向量的乘法器;
圖3是并行輸入的乘加移位寄存器MASR電路的功能框圖;
圖4是由c個(gè)并行輸入的MASR電路構(gòu)成的一種基于部分并行輸入累加左移的向量與高密度矩陣乘法器;
圖5總結(jié)了編碼器各編碼步驟以及整個(gè)編碼過程所需的硬件資源和處理時(shí)間。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明的較佳實(shí)施例作詳細(xì)闡述,以使本發(fā)明的優(yōu)點(diǎn)和特征能更易于被本領(lǐng)域技術(shù)人員理解,從而對(duì)本發(fā)明的保護(hù)范圍作出更為清楚明確的界定。
循環(huán)矩陣的行重和列重相同,記作w。如果w=0,那么該循環(huán)矩陣是全零矩陣。如果w=1,那么該循環(huán)矩陣是可置換的,稱為置換矩陣,它可通過對(duì)單位矩陣I循環(huán)右移若干位得到。QC-LDPC碼的校驗(yàn)矩陣H是由c×t個(gè)b×b階循環(huán)矩陣Hj,k(1≤j≤c,1≤k≤t,t=e+c)構(gòu)成的如下陣列:
通常情況下,校驗(yàn)矩陣H中的任一循環(huán)矩陣要么是全零矩陣(w=0)要么是置換矩陣(w=1)。令循環(huán)矩陣Hj,k的首行hj,k=(hj,k,1,hj,k,2,…,hj,k,b)是其生成多項(xiàng)式,其中hj,k,m=0或1(1≤m≤b)。因?yàn)镠是稀疏的,所以hj,k只有1個(gè)‘1’,甚至沒有‘1’。
H的前e塊列對(duì)應(yīng)的是信息向量a,后c塊列對(duì)應(yīng)的是校驗(yàn)向量p,碼字v=(a,p)。以b比特為一段,信息向量a被等分為e段,即a=(a1,a2,…,ae);校驗(yàn)向量p被等分為c段,即p=(p1,p2,…,pc)。將H的前e塊列和后c塊列構(gòu)成的矩陣分別記作C和D,則
H=[C D] (3)
C是由c×e個(gè)b×b階循環(huán)矩陣構(gòu)成,D是由c×c個(gè)b×b階循環(huán)矩陣構(gòu)成。將式(3)和碼字v=(a,p)代入HvT=0,整理可得
pT=ΦTCaT (4)
其中,ΦT=D–1,上標(biāo)T和–1分別表示轉(zhuǎn)置和矩陣的逆,D必須滿秩。眾所周知,循環(huán)矩陣的逆、乘積、和仍然是循環(huán)矩陣。因此,Φ也是由循環(huán)矩陣構(gòu)成的陣列。然而,雖然矩陣D是稀疏的,但Φ通常不再稀疏而是高密度的。
令sT=CaT和pT=ΦTsT,則p=sΦ。使用C計(jì)算s涉及稀疏矩陣與向量的乘法,使用Φ計(jì)算p涉及向量與高密度矩陣的乘法。根據(jù)以上討論,可給出一種基于二級(jí)流水線的QC-LDPC編碼過程,如圖1所示。
令s=(s1,s2,…,sc),則sjT是矩陣C的第j塊行與aT的乘積,即
其中,1≤i≤e,1≤j≤c。sj的第n比特sj,n(1≤n≤b)為
其中,上標(biāo)rs(n–1)和ls(n–1)分別表示循環(huán)右移n–1位和循環(huán)左移n–1位。既然任一循環(huán)矩陣生成多項(xiàng)式hj,i只有少量的‘1’甚至是全零,那么式(6)中的內(nèi)積可通過對(duì)循環(huán)左移寄存器的抽頭求和來實(shí)現(xiàn),如圖2所示的稀疏矩陣與向量的乘法器。稀疏矩陣與向量的乘法器由t個(gè)b比特寄存器R1,1,R1,2,…,R1,t和c個(gè)多輸入異或門X1,1,X1,2,…,X1,c組成。寄存器R1,1,R1,2,…,R1,e用于加載和循環(huán)左移信息段a1,a2,…,ae,寄存器R1,e+1,R1,e+2,…,R1,t用于存儲(chǔ)s的向量段s1,s2,…,sc。圖2中的稀疏連接取決于矩陣C中的所有循環(huán)矩陣生成多項(xiàng)式。如果hj,i,m=1(1≤m≤b),那么信息段ai的第m比特連接到異或門X1,j。因此,寄存器R1,i的所有抽頭取決于矩陣C第i塊列中所有循環(huán)矩陣生成多項(xiàng)式的非零元素所在位置,而多輸入異或門X1,j的輸入取決于矩陣C第j塊行中所有循環(huán)矩陣生成多項(xiàng)式的非零元素所在位置。如果C中的所有循環(huán)矩陣生成多項(xiàng)式共有α個(gè)‘1’,那么稀疏矩陣與向量的乘法器需要使用(α–c)個(gè)二輸入異或門同時(shí)計(jì)算s1,n,s2,n,…,sc,n。s可在b個(gè)時(shí)鐘周期內(nèi)計(jì)算完畢。使用稀疏矩陣與向量的乘法器計(jì)算向量s的步驟如下:
第1步,輸入信息段a1,a2,…,ae,將它們分別存入寄存器R1,1,R1,2,…,R1,e中;
第2步,寄存器R1,1,R1,2,…,R1,e同時(shí)循環(huán)左移1次,異或門X1,1,X1,2,…,X1,c分別將異或結(jié)果左移入寄存器R1,e+1,R1,e+2,…,R1,t中;
第3步,重復(fù)第2步b-1次,完成后,寄存器R1,e+1,R1,e+2,…,R1,t存儲(chǔ)的內(nèi)容分別是向量段s1,s2,…,sc,它們構(gòu)成了向量s。
pT=ΦTsT等價(jià)于p=sΦ。Φ是由c×c個(gè)b×b階循環(huán)矩陣Φj,u(1≤j≤c,1≤u≤c)構(gòu)成的陣列。令循環(huán)矩陣Φj,u的首行g(shù)j,u是其生成多項(xiàng)式。由p=sΦ可知,第u段校驗(yàn)向量滿足
pu=s1Φ1,u+s2Φ2,u+…+sjΦj,u+…+scΦc,u (7)
令生成多項(xiàng)式gj,u=(gj,u,1,gj,u,2,…,gj,u,b),則Φj,u可視為單位矩陣循環(huán)右移版本的加權(quán)和,即
Φj,u=gj,u,1Ir(0)+gj,u,2Ir(1)+…+gj,u,bIr(b-1) (8)其中,上標(biāo)r()表示循環(huán)右移。那么,式(7)等號(hào)右邊的第j項(xiàng)可展開為
既然將sj循環(huán)右移n位等價(jià)于將它循環(huán)左移b-n位,即那么式(9)可改寫為
式(10)是一個(gè)乘-加-左移-存儲(chǔ)的過程,其實(shí)現(xiàn)用并行輸入的乘加移位寄存器(Multiplier-Adder-Shift-Register,MASR)電路。圖3是并行輸入的MASR電路的功能框圖,向量s以b比特為一段并行送入該電路。當(dāng)用并行輸入的MASR電路對(duì)校驗(yàn)段pu(1≤u≤c)進(jìn)行編碼時(shí),生成多項(xiàng)式查找表預(yù)先存儲(chǔ)矩陣Φ的第u塊列的所有生成多項(xiàng)式,移位寄存器被清零初始化。當(dāng)?shù)?個(gè)時(shí)鐘周期到來時(shí),向量段s1移入電路,生成多項(xiàng)式查找表輸出Φ的第1塊行、第u塊列的生成多項(xiàng)式Φ1,u的第0個(gè)比特g1,u,1,并與向量段s1進(jìn)行標(biāo)量乘,乘積g1,u,1s1與移位寄存器的內(nèi)容0模2加,和g1,u,1s1循環(huán)左移1位的結(jié)果(0+g1,u,1s1)l(1)存回移位寄存器。當(dāng)?shù)?個(gè)時(shí)鐘周期到來時(shí),生成多項(xiàng)式查找表輸出Φ1,u的第2個(gè)比特g1,u,2,并與向量段s1進(jìn)行標(biāo)量乘,乘積g1,u,2s1與移位寄存器的內(nèi)容(0+g1,u,1s1)l(1)模2加,和(0+g1,u,1s1)l(1)+g1,u,2s1循環(huán)左移1位的結(jié)果((0+g1,u,1s1)l(1)+g1,u,2s1)l(1)存回移位寄存器。上述乘-加-左移-存儲(chǔ)過程繼續(xù)進(jìn)行下去。當(dāng)?shù)赽個(gè)時(shí)鐘周期結(jié)束時(shí),移位寄存器存儲(chǔ)的是部分和s1Φ1,u,這是向量段s1對(duì)pu的貢獻(xiàn)。當(dāng)?shù)赽+1個(gè)時(shí)鐘周期到來時(shí),向量段s2移入電路,重復(fù)上述乘-加-左移-存儲(chǔ)過程。當(dāng)生成多項(xiàng)式查找表已輸出Φ2,u的最后一個(gè)比特g2,u,b時(shí),累加器存儲(chǔ)的是部分和s1Φ1,u+s2Φ2,u。重復(fù)上述過程,直到整個(gè)向量s全部并行移入電路。此時(shí),累加器存儲(chǔ)的是校驗(yàn)段pu。
圖4給出了由c個(gè)并行輸入的MASR構(gòu)成的一種基于部分并行輸入累加左移的向量與高密度矩陣乘法器,由生成多項(xiàng)式查找表、b位二進(jìn)制乘法器、b位二進(jìn)制加法器和移位寄存器四種功能模塊組成。生成多項(xiàng)式查找表L1,L2,…,Lc分別預(yù)存矩陣Φ第1,2,…,c塊列中的所有循環(huán)矩陣生成多項(xiàng)式。生成多項(xiàng)式查找表L1,L2,…,Lc輸出的生成多項(xiàng)式比特分別與向量段sj(1≤j≤c)進(jìn)行標(biāo)量乘,這c個(gè)標(biāo)量乘法分別通過b位二進(jìn)制乘法器M1,M2,…,Mc完成。b位二進(jìn)制乘法器M1,M2,…,Mc的乘積分別與移位寄存器R1,R2,…,Rc的內(nèi)容相加,這c個(gè)模2加法分別通過b位二進(jìn)制加法器A1,A2,…,Ac完成。b位二進(jìn)制加法器A1,A2,…,Ac的和被循環(huán)左移1位后的結(jié)果分別存入移位寄存器R1,R2,…,Rc。
生成多項(xiàng)式查找表L1,L2,…,Lc存儲(chǔ)矩陣Φ中的循環(huán)矩陣生成多項(xiàng)式。生成多項(xiàng)式查找表L1~Lc分別存儲(chǔ)Φ的第1~c塊列中的所有生成多項(xiàng)式,對(duì)于任一塊列,依次存儲(chǔ)第1,2,…,c塊行對(duì)應(yīng)的生成多項(xiàng)式。生成多項(xiàng)式查找表L1~Lc串行輸出生成多項(xiàng)式的比特。
使用向量與高密度矩陣的乘法器計(jì)算校驗(yàn)向量p的步驟如下:
第1步,清零移位寄存器R1,R2,…,Rc;
第2步,輸入向量段sj(1≤j≤c);
第3步,生成多項(xiàng)式查找表L1,L2,…,Lc分別輸出矩陣Φ第j塊行中第1,2,…,c塊列的生成多項(xiàng)式比特,這些生成多項(xiàng)式比特分別通過b位二進(jìn)制乘法器M1,M2,…,Mc與向量段sj進(jìn)行標(biāo)量乘,b位二進(jìn)制乘法器M1,M2,…,Mc的乘積分別通過b位二進(jìn)制加法器A1,A2,…,Ac與移位寄存器R1,R2,…,Rc的內(nèi)容相加,b位二進(jìn)制加法器A1,A2,…,Ac的和被循環(huán)左移1位后的結(jié)果分別存入移位寄存器R1,R2,…,Rc;
第4步,重復(fù)第3步b-1次;
第5步,以1為步長(zhǎng)遞增改變j的取值,重復(fù)第2~4步c-1次,直到整個(gè)向量s輸入完畢,此時(shí),移位寄存器R1,R2,…,Rc存儲(chǔ)的分別是校驗(yàn)段p1,p2,…,pc,它們構(gòu)成了校驗(yàn)向量p=(p1,p2,…,pc)。
本發(fā)明提供了一種基于二級(jí)流水線的QC-LDPC編碼方法,適用于DTMB系統(tǒng)中的4/5碼率QC-LDPC碼,其編碼步驟描述如下:
第1步,使用稀疏矩陣與向量的乘法器計(jì)算向量s;
第2步,使用向量與高密度矩陣的乘法器計(jì)算校驗(yàn)向量p。
圖5總結(jié)了編碼器各編碼步驟以及整個(gè)編碼過程所需的硬件資源消耗和處理時(shí)間。
從圖5不難看出,流水線充滿時(shí),整個(gè)編碼過程共需max(t–c+b,cb)=cb個(gè)時(shí)鐘周期,小于基于c個(gè)SRAA-I電路的串行編碼方法所需的e×b個(gè)時(shí)鐘周期。對(duì)于DTMB標(biāo)準(zhǔn)中4/5碼率QC-LDPC編碼器,本發(fā)明的編碼速度是后者的4倍。
DTMB標(biāo)準(zhǔn)中4/5碼率QC-LDPC編碼器的現(xiàn)有解決方案需要e×c×b比特ROM,而本發(fā)明需要c2b比特ROM。本發(fā)明需要較少的ROM,是現(xiàn)有解決方案的1/4。
綜上可見,對(duì)于DTMB標(biāo)準(zhǔn)中4/5碼率QC-LDPC編碼器,與傳統(tǒng)的串行SRAA法相比,本發(fā)明具有編碼速度快、存儲(chǔ)器消耗少等優(yōu)點(diǎn)。
以上所述,僅為本發(fā)明的具體實(shí)施方式之一,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本領(lǐng)域的技術(shù)人員在本發(fā)明所揭露的技術(shù)范圍內(nèi),可不經(jīng)過創(chuàng)造性勞動(dòng)想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求書所限定的保護(hù)范圍為準(zhǔn)。