Detailed description of the invention
Below in conjunction with the drawings and specific embodiments, the invention will be further described, but not as a limitation of the invention.
QC-LDPC code is the special LDPC code of a class, its generator matrix GqCand check matrix HqCbe all the array be made up of circular matrix, there is stages cycle feature, therefore be called as quasi-cyclic LDPC code.From the angle of row, each provisional capital of circular matrix is the result of lastrow (first trip is footline) ring shift right one; From the angle of row, each row of circular matrix are all the results that previous column (first is terminal column) circulation moves down.The set that the row vector of circular matrix is formed is identical with the set that column vector is formed, and therefore, circular matrix can be characterized by its first trip or first completely.The row of circular matrix is heavy identical with column weight, is denoted as w.If w=0, so this circular matrix is full null matrix.If w=1, so this circular matrix is replaceable, is called permutation matrix, and it is by obtaining the some positions of unit matrix I ring shift right.The check matrix H of QC-LDPC codeqCby c × t b × b rank circular matrix Hi, jthe following array that (1≤i≤c, 1≤j≤t) is formed:
Check matrix HqCcontinuous b capable and b row be called as the capable and block row of block respectively.
CMMB standard have employed the LDPC code of 1/2 code check η different from 3/4 two kind, is exchanged by ranks, and check matrix H can be transformed to the accurate circulation form H of near lower triangularqC.Check matrix HqCcorresponding code word v=(s, p), HqCfront a block row corresponding be information vector s, that rear c block row are corresponding is the vectorial p of verification.Be one section with b bit, information vector s is divided into a section, i.e. s=(s1, s2..., sa); Verify vectorial p and be divided into c section, be i.e. p=(p1, p2..., pc).CMMB standard have employed the QC-LDPC code of 2 kinds of different code checks, and Fig. 1 gives parameter a under different code check η and c.For these 2 kinds of QC-LDPC codes, check matrix HqCin all circular matrixes are full null matrix (w=0) or are permutation matrix (w=1), and t=36 and b=256.
For CMMB standard, check matrix HqCthere is near lower triangular shape, as shown in Figure 2.In fig. 2, the unit of all submatrixs is all b bit instead of 1 bit.T is lower triangular matrix, and u reflects HqCwith the degree of closeness of lower triangular matrix, HqCevery block capable in have ρ permutation matrix, Fig. 1 gives parameter u under 2 kinds of code checks and ρ.H when Fig. 3 and 4 sets forth η=1/2 and 3/4qCin each piece of row permutation matrix place block row number and ring shift right figure place.
Check matrix H shown in Fig. 2qCcorresponding code word v=(s, p)=(s, px, py) in, matrix A and C corresponding informance vector s, matrix B and the vectorial p of the corresponding part verification of Dx=(p1, p2..., pu), matrix T and E be corresponding remaining verification vector p theny=(pu+1, pu+2..., pc).Above-mentioned matrix and vector meet following relation:
pxT=Φ(ET-1AsT+CsT)(2)
pyT=T-1(AsT+BpxT)(3)
Wherein, Φ=(ET-1b+D)-1, subscripttwith-1represent transposition and inverse respectively.As everyone knows, circular matrix inverse, product and remain circular matrix.Therefore, Φ is also the array be made up of circular matrix.But although matrix E, T, B and D are sparse matrixes, Φ is no longer sparse but highdensity.
According to formula (2) and (3), the general coding flow process of QC-LDPC code can be obtained, comprise the following steps:
(1) input information vector s, clearing part verifies vectorial px.
(2) calculating section verifies vectorial pyt=T-1(Ast+ Bpxt) and vectorial qt=CSt+ Epyt.
(3) calculating section verifies vectorial pxt=Φ qt.
(4) calculating section verifies vectorial pyt=T-1(Ast+ Bpxt).
(5) parallel output code word v=(s, px, py).
According to above-mentioned coding flow process, Fig. 5 gives the encoder being applicable to 2 kinds of code check QC-LDPC codes in CMMB standard, it is based on the cumulative mechanism of ring shift right, to move to left accumulator (parallel C LSA) five functional modules compositions primarily of controller, vector memory, ring shift right table, ring shift right accumulator and cardiopulmonary bypass in beating heart.Vector memory stores vectorial q and code word v=(v1, v2..., vt), its bit wide is b bit, and the code section v of v can be used in the space of vector memory1, v2..., vtidentify.Ring shift right table stores the ring shift right figure place of circular matrix and the block row number at place.Ring shift right accumulator utilizes ring shift right table compute vector q and part to verify vectorial py.Parallel C LSA is used for calculating section and verifies vectorial px.
When making ring shift right table, need check matrix HqCfurther process obtains Hzero.Specific as follows: the unit matrix on lower triangular matrix T diagonal to be reset, matrix D is reset.On this basis, H is added upzerothe quantity Number [i] (Number [i]≤11) of i-th (1≤i≤c) permutation matrix during block is capable, and ring shift right figure place Offset [i] [j] (1≤j≤Number [i] of each permutation matrix, 0≤Offset [i] [j] <b) and block row Column [i] [j] (1≤j≤Number [i], 1≤Column [i] [the j]≤t) at place.H when Fig. 6 and 7 sets forth η=1/2 and 3/4zerothe block row number at the quantity of permutation matrix, place and ring shift right figure place in each piece of row, Fig. 8 gives H under different code checkzeroin all pieces of row the total α of permutation matrix and front c-u block capable in the total β of permutation matrix.Each unit of ring shift right table stores ring shift right figure place Offset [i] [j] of permutation matrix and block row Column [i] [j] at place, they represent with 8 bits and 6 bits respectively, and therefore the bit wide of each unit of ring shift right table is 14 bits.
Fig. 9 is the structural representation of ring shift right accumulator, and it uses ring shift right table compute vector q and part to verify vectorial p primarily of ring shift right device and accumulator compositiony.When calculating by the capable data of ring shift right table the i-th (1≤i≤c) block, accumulator initialization is 0.When jth (1≤j≤Number [i]) the individual clock cycle arrives, ring shift right device is to the code section v of inputcolumn [i] [j]ring shift right Offset [i] [j] position, acquired results and accumulator add up.It is secondary that aforesaid operations repeats Number [i], and the content of accumulator is stored into viin corresponding vector memory space.Vector memory space va+u+1~ vtthe data of middle storage constitute part and verify vectorial py, and va+1~ va+uthe data of middle storage constitute vectorial q.
Figure 10 is the structural representation of parallel C LSA, and it is primarily of register R1~ R10, b position two input with door Mi, j(1≤i, j≤5) and b position two input XOR gate Ai, j(1≤i, j≤5) form, and verify vectorial p for calculating sectionx.Time initial, register R1~ Ruthat store is vectorial q.When each clock arrives, register R1~ R5respective serial moves to left 1 time, and b position two inputs and door Mi, jcarry out scalar and vectorial multiplying, Mi, 1~ Mi, 5product and register Ri+5serial loop moves to left the results added of 1 time, and deposits back register Ri+5.Repeat said process, complete computing through b clock cycle.Now, register R6~ R10what store is that part verifies vectorial px.Next, pxtransfer to vector memory space va+1~ va+u.
The invention provides a kind of high efficiency encoding method of variable bit rate QC-LDPC code, in conjunction with the encoder (as shown in Figure 5) of multi code Rate of Chinese character QC-LDPC code in CMMB standard, its coding step is described below:
1st step, clearing part verifies vectorial pxcorresponding vector memory space va+1~ va+u, input information vector s, by message segment s1~ sabe stored in vector memory space v respectively1~ va;
2nd step, ring shift right accumulator uses whole ring shift right table calculating section to verify vectorial p line by lineywith vectorial q, and they are stored in respectively vector memory space va+u+1~ vtand va+1~ va+u;
3rd step, uses parallel C LSA calculating section to verify vectorial px, and result is stored in vector memory space va+1~ va+u;
4th step, ring shift right accumulator uses the capable calculating section of front c-u of ring shift right table to verify vectorial p line by liney, and result is stored in vector memory space va+u+1~ vt, note, the p that the 2nd step obtainsyresults of intermediate calculations, and the p that this step obtainsyit is final calculation result;
5th step, output codons v=(s, px, py).
Above-mentioned cataloged procedure is simple, is easy to realize.2nd step and the 4th step uniformity by force, significantly reduce programing work amount.Backward recursion computing is simplified, and without the need to reading-computing-write back this complex operations, shortens the scramble time.
Figure 11 summarizes the hardware resource consumption of each part of encoder and whole circuit.Wherein, ring shift right device adopts 7 stage pipeline structure.
Figure 12 summarizes each coding step and the processing time needed for whole cataloged procedure.
Figure 13 compares traditional serial SRAA method and coding rate of the present invention and resource consumption.No matter can know from figure and see, be coding rate, or logical resource, especially memory, and performance of the present invention is all better than serial SRAA method.Memory required for the present invention is only 8% of serial SRAA method, employs less register, and consumption is 33% of serial SRAA method.For η=1/2 and 3/4, coding rate of the present invention is 9.9 and 14.3 times of serial SRAA method respectively.
As fully visible, compared with traditional serial SRAA method, the present invention have be easy to realize, coding rate is fast, resource consumption is few, power consumption is little, low cost and other advantages.
Above-described embodiment, just the present invention's more preferably detailed description of the invention, the usual change that those skilled in the art carries out within the scope of technical solution of the present invention and replacement all should be included in protection scope of the present invention.