Other advantages and features of the present disclosure will become apparent on examining the detailed description of embodiments and modes of implementation, which are in no way limiting, and the appended drawings, in which:
Embodiments and modes of implementation will now be described in greater detail in the case of a DVB-S2 application for which the length of the encoded blocks is 64,800 bits, although the embodiments disclosed are valid for all sizes of blocks.
In
The transmission chain TXCH comprises, in a known manner, source coding means or a source coder SCM that receive application data APP so as, in particular, to compress them in order to reduce the data bit rate. The transmission chain also comprises channel coding means or a channel coder, whose function is, in particular, to add redundancy so as to be able to subsequently correct the potential reception errors due to the noise in the transmission channel. These channel coding means comprise, for example, LDPC coding means or a LDPC coder.
The transmission chain also comprises modulation means or a modulator MDM so as to adapt the signal to the transmission channel (satellite channel or radio channel, for example). The reception chain RXCH comprises similar means for performing the inverse functions. More precisely, there are demodulation means or a demodulator DMDM, followed by channel decoding means of a channel decoder CHDCM that comprise, for example, an LDPC decoder, followed by source decoding means or a source decoder SDCM delivering to the user the user data DUT corresponding to the application data APP.
Referring more particularly now to
Each received block BLCi is decoded in the decoding means MDCD comprising, in this example, F processors operating in parallel. The value F is equal to 360 in one application of the DVB-S2 standard, for example. The battery of F processors performs the updating of the check nodes and of the bit nodes. A metrics memory MMT contains the internal metrics (equal in number to the number of “1s” in the parity matrix). A mixing device, which is known by those skilled in the art (which is a shifting device in the case of an LDPC coding applied to the DVB-S2 standard), makes it possible to place the corresponding data opposite the corresponding processors. Finally, on completion of the decoding, the processors deliver, into the memory MMHD, the N hard decisions corresponding to the N decoded logic values of the block BLCi.
In a prior-art approach illustrated in
Additionally, the buffer memory BFCH, which is either the buffer memory BFA or the buffer memory BFB, stores, on initializing the decoding, the cues C1-CS (LLR1-LLR8) of the specific block to be decoded. The metrics matrix MMT has a similar structure to parity matrix H, and therefore comprises, in this example illustrated in
More precisely, in a conventional layered BP-type algorithm, each iteration begins with the calculation of the check nodes, that is to say, the updating of the metrics cues for all the rows of a first layer of the matrix and for all the columns of this first layer. More precisely, if E′ij denotes an updated metric cue, this updated metric cue is given by the following formula:
E′
ij
=g(Ck−Eik) with k belonging to Wi and k≠j (I)
in which Wi denotes the whole set of positions of the “1s” in row i of the relevant layer and g denotes a conventional function used in updating the check nodes, this function may comprise a hyperbolic tangent function.
Next, the channel cues Cj are updated for all the columns of the specific layer, using the following formula:
C′
j
=C
j
−E
ij
+E′
ij
Once these operations have been performed, the next layer is then updated, and in this way, all the columns are processed in succession before going to the next iteration, where all the operations just described are repeated. After a determined number of iterations, the decoding is stopped and the hard decisions, that is to say, the logic values of the decoded bits of the block, are simply the signs of the channel cues Cj.
In practice, the LDPC codes that can be realized in terms of hardware are, for example, based on pseudo-random matrices. This implies that a parity matrix H comprises several regular sub-matrices. This offers parallelism in the calculation of the metrics cues. For example, the matrices used in the DVB-S2 standard have a parallelism of 360. The parity matrix H comprises matrices D that are interleaved, D being a diagonal matrix cyclically shifted by any value.
To perform the decoding calculations, the data is read in groups of 360 so as to harness the matrix parallelism and reach the desired decoding speed. The application of a layered decoding algorithm to such matrices involves the parity matrix H being subdivided into a certain number of layers, the convergence of the decoding being faster as the number of layers increases.
One chooses to subdivide H into q layers of 360 rows each, this making it possible to have the largest possible number of layers while preserving the parallelism of 360. Also, each row of a layer is separated from the next row of the layer by q rows. Stated otherwise, the first layer comprises rows 1, q+1, 2q+1, and so forth, while the second layer comprises rows 2, q+2, 2 q+2, and so forth.
It is noted in
In an implementation of a conventional layered decoding algorithm, the step of updating the check nodes comprises updating the metric cues E′1j, E′2j, and E′3j. Next, the updating of the channel cues C′) is then performed according to the following formula:
C′
j
=C
j
−E
1j
−E
2j
−E
3j
+E′
1j
+E′
2j
+E′
3j.
According to the mode of implementation of the method according to an embodiment, as illustrated in
More precisely, the processing of a layer 9 comprises a column processing 90, within which a calculation of Cj-Eij is firstly performed for every value of i (step 900). Next, a calculation of the new metrics cues E′ij is performed for every value of i (step 901) by applying the abovementioned formula (I).
Next, the channel cue Cj is, in a step 902, updated using a single updated metric cue, namely in the present case, the metric cue E′pj where p is equal to k modulo Nmj where k denotes the index number of the current iteration, and Nmj denotes the number of metrics cues in column j. Stated otherwise, the updated channel cue C′j is equal to Cj−Epj+E′pj. Next, in step 903, the metrics matrix MMT is updated with the updated metric cue E′pj. The method moves to the next column, and when the whole layer has been processed, the method moves to the next layer.
Returning now to the example of
C′
jk
=C
jk
−E
1jk
+E′
jk.
At the next iteration k+1, the new channel cue C′j(k+1) is given by the following formula:
C′
j(k+1)
=C
j(k+1)
−E
2j(k+1)
+E′
2j(k+1)
During the next iteration, it will be the third metric cue that will be used and then the first again, and so on and so forth. The hardware architecture of the decoding means or a decoder MDCD may be simplified, as illustrated in
The processing means or a processor MT may have a particularly simple architecture and comprise subtraction means or a subtractor SUB connected to the output of the metrics memory MMT and to the output of the channel memory BFCH. Additionally, calculation means or a calculator MC performs, in particular, the updating of the check nodes (metric cues) and provides the processors and also the shifting means or a shift register, which are connected to the output of the subtraction means SUB and deliver the metrics cues that have been updated with a latency T.
The processing means or a processor may comprise summation means or a summer ADD connected to the output of the calculation means and to the output of the subtraction means SUB by way of a delay means or a buffer MRD producing a delay equal to T. The output of the adder ADD is connected to the input of the channel memory. Additionally, the output of the calculation means MC is connected to the input of the metric memory MMT.
These above described embodiments are not limited to the modes of implementation just described, but encompasses all variants thereof. More precisely, these embodiments are completely compatible with an input memory structure MMCH, such as that described in the French patent application filed in the name of the applicant on the same day as the present patent application and entitled “Procédé et dispositif de décodage de blocs encodés avec un code LDPC” [Method and device for decoding blocks encoded with an LDPC code], in which the input memory is capable of storing more than two blocks and comprises for example p+q elementary memories each capable of storing N/p cues (LLRs) and a transfer memory, the transfer memory playing the role here of the buffer memory BFCH.
Number | Date | Country | Kind |
---|---|---|---|
0607490 | Aug 2006 | FR | national |