Method for encoding source data, method for decoding code words, corresponding devices and computer program.

By restructuring the parity matrix H with a modified basic matrix BG' and distributing connections in LDPC codes, the decoding complexity and energy consumption are reduced, enhancing the performance and efficiency of LDPC decoders.

FR3160529A1Pending Publication Date: 2025-09-26ORANGE SA
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
FR2024002916
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-22
Publication Date
2025-09-26

AI Technical Summary

Technical Problem

Existing LDPC codes, particularly those used in 5G standards, face challenges in decoding complexity and energy consumption due to high connection densities and the presence of short cycles, which limit decoding performance and increase energy usage.

Method used

The proposed solution involves modifying the parity matrix H by using a basic matrix BG' where each element is replaced by an expansion matrix of size Zc x Zc, with a specific structure for the extension matrices C and D to distribute connections homogeneously and avoid short cycles, reducing the number of connections and enhancing decoder convergence.

Benefits of technology

This approach accelerates decoder convergence and reduces energy consumption by minimizing short cycles and connection density, thereby improving decoding performance and efficiency.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

Method for encoding source data, method for decoding code words, corresponding devices and computer program. The invention relates to a method for encoding at least one block of source data, delivering at least one code word of size , said method implementing a step of encoding said source data using a parity matrix . According to the invention, said parity matrix is ​​obtained from a basic matrix expressed in the form: The extension matrix comprises at least two blocks of rows and at least one block of columns, with an integer between 1 and , each block of rows comprising at least one matrix obtained by applying a circular rotation coefficient to a diagonal matrix of size , with an integer between 0 and , said at least one block of columns comprising at least two matrices obtained by applying a distinct circular rotation coefficient to said diagonal matrix of size .Figure for abstract: Figure 5A.
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Method for encoding source data, method for decoding code words, corresponding devices and computer program.

[0001] 1. Field of the invention

[0002] The field of the invention is that of digital communications.

[0003] More specifically, the invention relates to error correcting codes, and in particular, but not exclusively, error correcting codes of the LDPC (Low Density Parity Check) type.

[0004] The invention finds applications in particular in the field of data storage or transmission, for example via wireless communications (for example by radio waves or unguided optical waves) or wired communications (for example by optical fiber or electric cable).

[0005] In particular, the invention finds applications in all fields where it is sought to offer good transmission reliability, for example for radio transmissions (Wifi®, 5G, 6G, etc.).

[0006] 2. Prior art

[0007] [Fig.l] illustrates a transmitter of a digital transmission chain. Such a transmitter uses conventional signal processing modules.

[0008] Thus, the source data 11, for example binary data coming from a source generating video type data (for example a source of animated images, virtual or augmented reality images, an image sequence source), audio type (for example voice), flow control type whether video or audio or other, or coming from a sensor, an actuator, etc., are coded in a channel coding block 12 (applying an error correction code) to introduce redundancy. The coded data are then interleaved in an interleaving block 13 (called "external") to mix the coded data. A mapping block 14 (also called "signal binary coding") makes it possible to convert the coded data into constellation points (BPSK, QPSK, 16QAM, etc.).The associated symbols are placed in frame 15 and modulated in a single-carrier or multi-carrier modulation block 16, for example of the OFDM (“Orthogonal Frequency-Division Multiplexing”) type.

[0009] In order to improve the robustness of communications via a communication channel, it is known to use error-correcting codes in the channel coding block 12. For example, LDPC codes, turbo codes, polar codes, or even Reed-Salomon codes offer good performance in terms of error correction.

[0010] Turbo codes have been chosen in particular for the 4G mobile telephony standard, and LDPCs for the 5G mobile telephony standard.

[0011] We will now recall the main characteristics of LDPC codes, as defined in the 5G standard in particular.

[0012] Conventionally, LDPC codes are defined by three parameters K, M and N; - K corresponds to the size of the source data supplied as input to the LDPC encoder, for example in number of useful bits (or information bits) if we consider binary data, - M corresponds to the size of the redundancy data added by the LDPC encoder, for example in number of redundancy bits if we consider binary data, and - N corresponds to the size of the data from the LDPC encoder, for example in number of coded bits, these coded bits including the useful bits and the redundancy bits.

[0013] The coding efficiency is classically given by R = K / N, with the relation NK + M.

[0014] An LDPC code can in particular be defined by a parity matrix H, which gives the parity relationships between the source data and the redundancy data.

[0015] An example of a binary parity matrix H is given in [Fig.2]. The parity matrix H comprises M rows (defining M parity equations) and N columns.

[0016] The values ​​equal to “1” in the parity matrix H correspond to the connections (defining the parity equations) between the useful data and the redundancy data. The greater the number of connections (i.e. of “1” in the parity matrix H), the greater the complexity of the decoder will be.

[0017] As an illustration, following the example of the parity matrix H in Figure 2, the parity equation defined in the first line gives the first redundancy data r(0):

[0018] r(0) =hW W1) ® b(2) ®b(3) ©6(4) ®M6) ©M7) ©è(9) ©è( 10) ©&( 11 ) ©&( 12) ©*( 13)

[0019] with:

[0020] / X0 = 0 or 1, and

[0021] ® the “exclusive or” operation.

[0022] In the document ETSI TS 138 212 V15.2.0, the 3GPP standardization consortium defined two basic structures or matrices BG1 and BG2 ("Base Graph" in English) allowing the construction of 104 parity matrices H of LDPC codes (52 matrices constructed from the basic matrix BG1 and 52 matrices constructed from the basic matrix BG2).

[0023] For example, for 5G, the dimensions of the basic matrices BG1 and BG2 are: BG1: K = Tl, M = 46, N = 68

[0024]

[0025]

[0026]

[0027]

[0028]

[0029] BG2: either Kb = 6, M = 26, 32, or Kb = 8, M = 34, N = 42, or Kb = 9, M = 38, N = 47, or Kh = 10, M = 42, N = 52. We classically use the notation instead of K, for the matrix BG2, with Kb = {6,8,9,10}- The parity matrices H are obtained from the basis matrices BG1 or BG2, from an expansion factor Zc and a circular rotation Vi of a diagonal matrix. Such a construction is known as "Protograph" in English and allows to have a compact description of the set of matrices. According to this technique, a parity matrix H of size MZC X NZC is obtained by replacing each non-zero element of the basic matrix BG1 or BG2 by a diagonal matrix of size Z, X Zc to which a circular rotation Vi has been applied (which is not necessarily the same for all non-zero elements of the basic matrix). An advantage of this family of LDPC encoders is to easily obtain the set of H parity matrices while limiting memory usage. For example, for an expansion factor Zc = 8 and a circular rotation Vi — 2, a non-zero element of the basis matrix BG1 or BG2 is replaced by the following matrix: '0 0 1 0 0 0 0 0' 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 .0 1 0 0 0 0 0 0, According to the ETSI TS 138 212 V15.2.0 document, for each basic matrix BG1 or BG2, it is thus possible to construct 52 matrices, classified into eight sub-families according to the value of the expansion factor Zc (between 2 and 384), according to the index "ils": Index ils Expansion factor Zc 0 2,4,8,16,32,128,256 1 3,6,12,24,48,96,192,384 2 5,10,20,40,80,160,320 3 7,14,28,56,112,224 4 9,18,36,72,144,288 5 11,22,44,88,176,352 6 13,26,52,104,208 7 15,30,60,120,240

[0030] Thus, it is possible to encode source data blocks of size KZC, ranging from 12 bits (from the basic matrix BG2 with K — Kb = 6 and the minimum expansion factor Zc — 2) to 8448 bits (from the basic matrix BG1 with K = 22 and the maximum expansion factor Zc — 384).

[0031] The choice between using the basic matrix BG1 or BG2 is made according to the size of the source data to be coded KZC and the desired coding rate R. Thus, as illustrated in Figure 3, the basic matrix BG1 is mainly used for high coding rates and large sizes of the source data to be coded, for example for eMBB (“enhanced Mobile BroadBand”) type applications. The basic matrix BG2 is rather used to code small source data blocks (for example KZC < 292 bits, or KZC < 3824 bits and R < 2 / 3, or R < 0.25), in particular for URRLC (“Ultra Reliable Low Latency Communications”) type applications. These two basic matrices are notably designed to cover the different uses of 5G which may require high throughput and / or high reliability (robustness).

[0032] Furthermore, according to the 5G standard, the first two columns of the basic matrix BG1 or BG2 are deleted before transmission, which means that the basic yields are respectively RBGi = K / (N - 2) = 22 / 66 — 1 / 3 and Rbgq. = 10 / 50 = 1 / 5

[0033] It is also noted that the basic matrices BG1 or BG2 used to construct the parity matrix H of an LDPC code according to the 5G standard can be represented in the form of six sub-matrices A, B, O, C, D and Z, as described in the document “High Area-Efficient Parallel Encoder with compatible architecture for 5G LDPC codes”, Y. Zhu et al., and illustrated in [Fig.4]:

[0034] [AB 01 LC D il

[0035] with:

[0036] Has a kernel matrix of size 4 x K

[0037] B a matrix having at least one double diagonal of size 4x4

[0038] C an extension matrix of size (M - 4) x K

[0039] From an extension matrix, also called an extended matrix, of size (M-4)x4

[0040] 0 a zero matrix of size (N - K - 4 ) x 4

[0041] I an identity matrix of size ( AZ - 4 ) X (N - K - 4)-

[0042] Although LDPC codes are recognized for their ability to guarantee high-speed transmissions, notably thanks to the possibility of parallelizing operations at At the decoder level, a disadvantage of these codes is the complexity related to decoding. Indeed, the greater the number of decoding iterations, the greater the number of operations to be performed at reception and the greater the resource consumption. The decoding block can thus use up to 90% of the receiver's resources. It can be considered the most energy-intensive part of the physical layer, particularly for 5G.

[0043] There is therefore a need for a new coding technique seeking to reduce the energy consumption of the decoder.

[0044] 3. Statement of the invention

[0045] The invention proposes a new solution in the form of a method for coding at least one block of KZC source data, delivering at least one code word of size NZC formed from said KZC source data and MZC redundancy data, N = K + M, with Zc an integer expansion factor, Zc > 1,

[0046] said method implementing a step of coding said KZe source data using a parity matrix H of size (MZC x NZC) •

[0047] According to the invention, the parity matrix H is obtained from a basic matrix BG' of size M x N, by replacing each element of said basic matrix BG' by an expansion matrix of size Zc X Zc,

[0048] said basic matrix BG' being expressed in the form:

[0049] BG'~ AB 0 CD I.

[0050] with:

[0051] Has a kernel matrix of size J x K

[0052] B a matrix having at least one diagonal of size J x J

[0053] C an extension matrix of size (M -J)x K

[0054] From an extension matrix of size (M - J) XJ

[0055] 0 a zero matrix of size (N - K -J) XJ

[0056] Z an identity matrix of size ( M - J ) X ( N - K - J )

[0057] In addition, the extension matrix C comprises at least two blocks of Z rows and at least one block of Z columns, with Z an integer between 1 and K - 1,

[0058] each block of Z lines comprising at least one matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size L x L, with a an integer between 0 and L - 1,

[0059] said at least one block of Z columns comprising at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size LxL.

[0060] In other words, the extension matrix C comprises, in the same block of L columns, at least two matrices obtained by applying a distinct circular rotation to a diagonal matrix of size L x W.

[0061] Advantageously, the matrix formed from the extension matrix C and the extension matrix D comprises, in the same block of L lines, at least two matrices obtained by applying a circular rotation to a diagonal matrix of size Lx L.

[0062] We thus seek to avoid the repetition of the same pattern on the different blocks of rows and / or blocks of columns of the extension matrix C, so as to obtain independence between the rows of the extension matrix C and avoid, or at least limit, short cycles. We also seek to distribute the undamaged elements of the extension matrix C on its different rows and / or columns, in a substantially homogeneous manner.

[0063] In particular, it is possible to vary the number of connections per line by choosing the size £ of the blocks of lines or columns. It is recalled for this purpose that the greater the number of connections (i.e. of unaffected elements in the basic matrix BG', and consequently in the parity matrix H), the greater the complexity of the decoder. According to one embodiment, it is therefore sought to achieve a compromise between the number of connections and the decoding performance.

[0064] The proposed solution thus seeks to improve the structure of an LDPC coder, with the aim of accelerating the convergence of the decoder and therefore reducing the energy consumption in reception associated with the use in transmission of this coding module.

[0065] In a particular embodiment, the proposed basic matrices correspond to the requirements defined by the 3GPP in the document TS 138 212 V15.2.0 cited previously in terms of size of blocks to be coded KZC and coding rate R.

[0066] In particular, the coded data (code word formed from the KZC source data and MZC redundancy data) can be stored in a memory and / or transmitted from a transmitter to a receiver, via a transmission channel.

[0067] According to a particular embodiment, at least one of said blocks of lines comprises a succession of at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size LxL.

[0068] Again, we seek to avoid the repetition of the same pattern within the same block of lines of the extension matrix C.

[0069] In particular, the use of distinct circular rotations in the same block of lines makes it possible to avoid, or at least to limit, short cycles of size 4 or 6. It is indeed desirable to limit the number of short cycles, because they limit the decoding performance. In particular, such short cycles introduce error floors which do not make it possible to achieve, during decoding, very low block error rates (BLER) as a function of the signal-to-noise ratio, for example of the order of 105 or 106.

[0070] According to a particular embodiment, at least one of said blocks of lines comprises a succession of at least two matrices obtained by applying the same circular rotation coefficient “ to said diagonal matrix of size Lx L.

[0071] In this way, we seek to avoid the repetition of the same pattern within the same block of columns of the extension matrix C.

[0072] According to a particular embodiment, L>5.

[0073] In particular, the use of blocks of L > 5 lines makes it possible to avoid, or at least limit, short cycles of size 4.

[0074] According to a particular embodiment, said at least two blocks of L lines are consecutive, i.e. no line of damaged or non-damaged elements is interposed between two blocks of lines.

[0075] In this way, the undamaged elements of the extension matrix C can be distributed homogeneously over the different blocks of lines.

[0076] According to a first embodiment, the extension matrix C also comprises at least one block of £ lines, LL, with L' an integer between 1 and K -1, comprising a succession of matrices obtained by applying the same circular rotation coefficient a to a diagonal matrix of size £ x L •

[0077] For example, choosing a number of lines L = 6 for a first block of lines, and E = 7 for at least two blocks of lines of the extension matrix C makes it possible to avoid short cycles of size 4 or 6.

[0078] In particular, for at least one of said blocks of lines, said extension matrix C comprises a portion of one of said matrices obtained by applying a circular rotation coefficient a to a diagonal matrix of size L x L, and said extension matrix D comprises the extension of said portion.

[0079] En d'autres termes, la matrix formed de ladite matrix d'extension C et de ladite matrix de prolongement D comprend au moins un motif complet représentant la matrix / ^, ainsi qu'eventuallement un motif partiel.

[0080] Par exemple, ladite matrix d'extension C est égale à : V2 VI V3 V4 VI VI V2 V3 V2 V2 V3 V3 VI V3 V3 VO V2 V2 V2 V2 V3 vo VI V4 VI VO V2 V4 V2 vo V2 VI VI VO V3 V2 V2 V3 V3 V4 V3 V3 V2 VO VO V2 V3 VI V4 V4 VI VO VI VO V2 V3 V3 V2 V2 V4 V3 V3 V4 VI V2 V3 VI V2 V3 in V4 VI VI V3 V4 V3 V3 VI V3 V3 V3 VI V3 V4 VI VI VI V2 VI VI VI V2 VI V4 V3 VI V4 V2 VI VI V4 in V4 VI VI VI V2 in V3 VI V3 V3 V2 V2 V2 VI VI V2 in V3 VI V2 VI vo V2 V4

[0081] ladite matrix de prolongement D est égale à : V2 VI VI V3 V4 V3 VI VI VI V3 VI V3 VI V3 V4 V2 V2 VI V4 VI V4 VI V2

[0082] Furthermore: - each empty or null element of said basic matrix BG' is replaced by a null matrix of size Zc x Zc, - each non-zero element of said basic matrix BG' is replaced by an expansion matrix obtained by applying a circular rotation Vi to an identity matrix of size Zc X Zc, such that: Circular rotation Vi if Zc belongs to {2,4,8,16,32,128,256}: V0 = 0 + 4y, ye [0:63] VI = l + 4y, ye [0:63] V2=2 + 4y, ye [0:63] V3 = 3 + 4y, ye [0:63] V4 = 0 + 4y, ye [0:63] if Zc belongs to {3,6, 12,24,48,96,192,384} V0 = 0+5x+ 6y, xe [0:1] and ye [0: 63] Vl=l+6y, ye [0:63] V2 = 2 + 6y, ye [0:63] V3 = 3 + 6y, ye [0:63] V4 = 4 + 6y; ye [0:63] if Z£. belongs to {5,10,20,40,80,160,320} VO = O + 5y, yg [0:63] Vl=l+5y, yg [0:63] V2 = 2 + 5y, yg [0:63] V3 = 3 + 5y, yg [0:63] V4 = 4 + 5y, yg [0:63] if Z belongs to {7,14,28,56,112,224}: VO = 0 + Sx + 7y, .rc [0:1] and yg [0:31] VI = 1 + 5x + 7y, xg [0:1] and y G [0:31] V2 = 2 + 7y, yg [0:31] V3 = 3 + 7y, yg [0:31] V4 = 4 + 7y, yg [0:31] if Zc belongs to {9,18,36,72,144,288} : VO = 0 + Sx + 9y, xg [0: 1] and yg [0: 31] Vl = l + 5x + 9y, xe [0:1 ] and yg [0:31] V2= 2 + Sx + 9y, .yg [0 : 1] and yg [0: 31] V3 = 3 + Sx + 9y, x G [0: 1] and yg [0: 31] V4 = 4 + 9y, yG[0:31] if Zc belongs to {11,22,44,88,176,352} : VO = 0 + 5.x + 1 ly, xg [0: 2] and yg [0: 31] Vl = l + 5x + lly, xg[0: l]etyG[0:31] V2 = 2 + 5x + 1 ly, xg [0: 1] and yg [0: 31] V3 = 3 + Sx + 1 ly, xg [0: 1] and yg [0: 31] V4 = 4 + 5x + lly, xg[0: 1] and yg[0:31] if Tc belongs to {13,26,52,104,208}: VO = 0 + Sx + 13y, xg [0: 2] and yg [0:15] VI = l + 5x+13y, xg[0: 2] e / yg[0: 15] V2=2+5x+13y, xg[0:2] and yg[0:15] V3 = 3 + 5x + 13y, xg[0:1] and yg[0:15] V4 = 4 + Sx + 13y, x G[0:1] and yg[0:15] if Zc belongs to {15,30,60,120,240}: VO = 0+5x + 15y. xg[0:2] and yg[0:15] VI = 1 + 5x + 15y, xg[0:2] and yg[0:15] V2 - 2 + 5x + 15y. xg[0:2] and yg[0:15] V3 = 3 + Sx + 15y, x G [0: 2] and y G [0: 15] V4 = 4 + 5x + 1 Sy, xg [0: 2] and yg [0: 15].

[0083] with A and y random variables.

[0084] For example, J = 4, K = 22 and M = 44.

[0085] It can be seen that the basic matrix BG' proposed according to this first embodiment thus has a format similar to the matrix BG1 defined by the 3GPP with a decomposition into six sub-matrices (A, B, C, D, 0 and / ). However, its size is slightly different from that of the basic matrix BG1. Indeed, for the matrix BG1 defined by the 3GPP, the number M of redundancy data is equal to 46, whereas it is equal to 44 in the proposed solution. This is explained by the fact that the first two columns of the matrix BG1 defined by the 3GPP are punctured to improve performance in the "waterfall" zone, i.e. in the zone where the block error rate of the decoder as a function of the signal-to-noise ratio drops rapidly. Due to this puncturing of the first two columns, source data may not be transmitted.Two lines are therefore added to the basic matrix BG1 to add parity equations and allow the reconstruction of this source data. This solution makes it possible to improve the robustness of the codec, particularly for high yields.

[0086] In particular, the first two columns of the BG1 matrix, which can be punctured, have many undamaged elements, in order to be able to reconstruct the source data. However, this amounts to increasing the number of connections and therefore the risk of short cycles.

[0087] According to the invention, the first two columns of the basic matrix BG' are not punctured. It is therefore not necessary to add parity equations or to provide a large number of unpunched elements in the first two columns of the basic matrix BG'.

[0088] In this way, it is possible according to the invention to reduce the number of connections and therefore to accelerate the convergence of the decoder and to reduce its energy consumption.

[0089] According to a second embodiment, the extension matrix D comprises at least two blocks of J lines, each block of lines comprising a matrix J3 obtained by applying a circular rotation coefficient a to a diagonal matrix of size J x J.

[0090] The use of diagonal matrices thus makes it possible to distribute the unaffected elements of the extension matrix D over the different rows and / or columns of the extension matrix D.

[0091] For example, 7 = 4 regardless of the value of K.

[0092] For example, said extension matrix C and extension matrix D are equal to:

[0093] for K=6: c D V2 V2 VI V3 V2 V3 VO V2 V3 V2 V2 VI V2 VI VI V2 V2 V3 V3 V2 VI V2 VI vo V2 V2 V2 V3 VI VI V2 VO vo V3 V2 VI vo VI V2 V3 vo VI

[0094] for K=8: CD V2 V2 VI V3 V3 V2 V3 V2 VO V2 V3 V2 V2 VI V2 VI VI V2 V2 V3 V3 VI V2 VI V3 V2 VI V3 in V2 VI V2 V2 V3 VI VI V2 VO in V3 V2 VI in V3 VI V2 V2 V3 in VI V2 in V3 V3 VO V3 V2 V2 in V2 VI VI in VO VO V3 in V3 V2 V2 V2 V2

[0095] for K=9: CD V2 V2 VI V3 V3 V2 V3 V2 VO V2 VI V3 V2 V2 VI VI V2 VI VI V2 V2 V3 V3 VI V2 VI V3 V2 VI V3 VO V2 VI V2 V2 VI V3 VI VI V2 vo vo V3 V2 VI vo V3 VI V2 V2 V3 vo vo VI V2 vo V3 V2 V3 VO V3 V2 V2 vo V2 VI VI vo VO VO V3 vo V3 V2 V3 V2 V2 V2 VO V2 VO V3 VO VI VO VO

[0096] For K=10: CD V2 V2 VI V3 V3 V2 V3 V2 VO V2 VI V3 V2 V2 V2 VI VI V2 VI V2 VI V2 V2 V3 V3 VI V2 VI V3 V2 VI V3 vo V2 VI V2 V2 VI V3 VI V3 VI V2 VO vo V3 V2 VI vo V3 VI V2 V2 V3 vo vo VI V2 VI VO V3 V2 V3 VO vo V3 V2 V2 vo V2 VI VI vo VO VO V3 vo V3 V2 V3 V2 V2 V2 V2 VO V2 VO V3 VO VI V2 VO V2 VI VO V2 VO VI V2 V3 VI V2

[0097] In addition: - each empty or null element of said basic matrix BG' is replaced by a null matrix of size Zc X Ze, - each non-zero element of said basic matrix BG' is replaced by a circular permutation matrix obtained by applying a circular rotation Vi to an identity matrix of size Ze X Zc, as defined previously.

[0098] For example J = 4 and:

[0099] K = 6 and M = 24, or

[0100] K = 8 and M = 32, or

[0101] K = 9 and M = 36 or

[0102] ^=10 61^7 = 40.

[0103] It can be seen that the basic matrix BG' proposed according to this second embodiment has a format similar to the matrix BG2 defined by the 3GPP with a decomposition into six sub-matrices (A, B, C, D, 0 and I). However, its size is slightly different from that of the basic matrix BG2. Indeed, for the matrix BG2 defined by the 3GPP, the number M of redundancy data is equal to 26, 34, 38 or 42 depending on the value of K, whereas it is respectively equal to 24, 32, 36 or 40 in the proposed solution. This is explained by the fact that the first two columns of the matrix BG2 defined by the 3GPP are punctured to improve performance in the "waterfall" zone. Due to this puncturing of the first two columns, source data may not be transmitted. Two rows are therefore added to the basic matrix BG2 to add parity equations and allow the reconstruction of this source data.This solution improves the robustness of the code, particularly for high yields.

[0104] In particular, the first two columns of the BG1 matrix, which can be punctured, have many undamaged elements, in order to be able to reconstruct the source data. However, this amounts to increasing the number of connections and therefore the risk of short cycles.

[0105] According to the invention, the first two columns of the basic matrix BG' are not punctured. It is therefore not necessary to add parity equations or to provide a large number of unpunched elements in the first two columns of the basic matrix BG'.

[0106] In this way, it is possible according to the invention to reduce the number of connections and therefore to accelerate the convergence of the decoder and to reduce its energy consumption.

[0107] Similarly, the removal of the double diagonal of the matrix B in a mode of proposed implementation, compared to the basic BG2 matrix defined by 3GPP, makes it possible to simplify the encoder.

[0108] In another embodiment, the invention relates to a corresponding coding device.

[0109] Such a coding device, also called an encoder, is particularly suitable for implementing the coding method described above. It may of course include the various characteristics relating to the method according to the invention, which may be combined or taken in isolation. Thus, the characteristics and advantages of the encoder are the same as those of the method described above. Consequently, they are not detailed further.

[0110] The invention further relates to a corresponding decoding method and device.

[0111] Such a decoding method is in particular suitable for decoding at least one code word constructed using the coding method described above. It may of course include the various characteristics relating to the coding method according to the invention, which may be combined or taken in isolation. Thus, the characteristics and advantages of the decoding method and the decoder are the same as those of the coding method and the coder described previously. Consequently, they are not detailed further.

[0112] In particular, the decoding method can implement a decoding of a parity equation obtained from the last line of the parity matrix H, then of a parity equation obtained from the previous line of said parity matrix H, going up line by line to the first line of the parity matrix H.

[0113] Such decoding in “reverse” mode offers good performance, in particular for decoding small source data, for example for KZC < 256.

[0114] The invention also relates to one or more computer programs comprising instructions for implementing a method as described above when this or these programs are executed by at least one processor.

[0115] The invention also relates to a computer-readable information medium, comprising instructions of a computer program as mentioned above.

[0116] 4. List of figures

[0117] Other characteristics and advantages of the invention will appear more clearly on reading the following description of a particular embodiment, given as a simple illustrative and non-limiting example, and the appended drawings, among which: - [Fig.l] illustrates a transmitter of a conventional digital transmission chain; - Figure 2 shows an example of a parity matrix H for an LDPC code; - [Fig.3] illustrates selection criteria for the basic matrix BG1 or BG2; - [Fig.4] illustrates the decomposition of the basic matrix BG1 or BG2 into sub-matrices; - Figures 5A and 5B show the main steps implemented by a coding method, respectively decoding method, according to an embodiment of the invention; - [Fig.6A] and [Fig.6B] illustrate the structure of the BG1 matrix; - [Fig.7A] and [Fig.7B] illustrate the notion of cycle; - figures 8 to 16 show different structures of the basic matrices according to different embodiments of the invention; - figures 17 to 19 illustrate performance curves of an LDPC decoder implementing a decoding of a code word obtained according to an embodiment of the invention; - figures 20A and 20B present the simplified structure of an encoder, respectively of a decoder, according to an embodiment of the invention.

[0118] 5. Description of an embodiment of the invention

[0119] 5.1 General principle

[0120] The general principle of the invention is based on a clever distribution of the connections (i.e. of the undamaged elements) in a basic matrix BG \ seeking to distribute the connections in a substantially homogeneous manner and / or to limit the number of short cycles. Consequently, a parity matrix H obtained from the modified basic matrix BG ' has a particular structure. Such a structure makes it possible to improve the performance of error-correcting codes, in particular by reducing the complexity of decoding.

[0121] [Fig.5A] illustrates the main steps of a coding method according to one embodiment of the invention.

[0122] During a first step 51, a basic matrix BG' of size MxN is obtained.

[0123] Such a basic matrix BG' can be decomposed into six sub-matrices A, B, 0, C, D, I, and expressed in the form:

[0124] [AB 0 BG=ïc D / ]

[0125] with:

[0126] Has a kernel matrix of size J x K

[0127] B a matrix having at least one diagonal of size J xJ

[0128] C an extension matrix of size (Af -J)x K

[0129] From an extension matrix of size (M - J) x J

[0130] 0 a zero matrix of size (N - K -J) XJ

[0131] I an identity matrix of size (M -J) x (N - K - J )

[0132] In particular, the extension matrix C has a particular structure and comprises at least two blocks of L rows and at least one block of L columns, with L an integer between 1 and K - 1,

[0133] each block of L lines comprising at least one matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size Lx L, with a an integer between 0 and L - 1,

[0134] said at least one block of L columns comprising at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size L x L.

[0135] During a second step 52, a parity matrix H is obtained from the base matrix BG '. To do this, each element of the base matrix BG ' is replaced by an expansion matrix of size Z, X Zc, with Zc an integer expansion factor, Zc > 1. More precisely, each zero or empty element of the base matrix BG ' is replaced by a zero matrix of size Zc X Zc, and each non-zero or non-empty element of the base matrix BG' is replaced by a circular permutation matrix, obtained by applying a circular rotation Vi to an identity matrix of size Ze X Ze

[0136] During a third step 53, at least one block of KZC source data is coded using the parity matrix H of size (MZC X NZC), so as to obtain at least one code word of size NZC formed of the KZ.C source data and MZC redundancy data, N — K + M.

[0137] Such a code word may in particular be stored in a memory of the encoder or transmitted by a transmitter to a receiver.

[0138] [Fig.5B] illustrates the main steps of a decoding method according to one embodiment of the invention.

[0139] During a first step 54, a basic matrix BG' of size M x N is obtained. This step is similar to the first step 51 implemented by the coding method.

[0140] During a second step 55, a parity matrix H is obtained from the basic matrix BG'. This step is similar to the second step 52 implemented by the coding method.

[0141] During a third step 56, at least one code word of size NZC formed from KZC source data and MZC redundancy data, N = K + M is decoded using the parity matrix H of size (MZC X NZ^, so as to reconstruct at least one block of KZt source data.

[0142] 5.2 Basic matrix BG1

[0143] In order to better understand the invention, we recall in Figure 6A the structure of the basic matrix BG1 as defined in the document ETSI TS 138 212 V15.2.0, formed of matrices A, 5, C and D. The sub-matrices / and O are omitted for the sake of simplification.

[0144] The “1” elements of the basic matrix BG1 represent the connections of the different parity equations. The number of connections per column and per row has been added in [Fig.6A].

[0145] Thus, the first column of matrices A and C comprises 30 connections, the second column comprises 28 connections, the third column comprises 7 connections, etc.

[0146] The first column of matrices B and D includes 12 connections, the second column includes 5 connections, etc.

[0147] The first four rows of matrices A and B each include 19 connections.

[0148] The first row of matrices C and D includes 2 connections, the second row includes 7 connections, etc.

[0149] If we do not take into account the zero matrices O and identity I, the minimum number of connections per row is 2 and the maximum number of connections per row is 19. The minimum number of connections per column is 4 and the maximum number of connections per column is 30. There is therefore a strong disparity in the number of connections per row and / or per column in the matrix BG1.

[0150] The kernel matrix A has, in proportion, many connections, i.e. many unharmed elements, because it is the kernel of the BG1 matrix. This allows the decoder, on reception, to find the source data. We also note that the first two columns of the BG1 matrix, which correspond to the untransmitted data, also have many connections (“1”).

[0151] As an example, Figure 6B illustrates the circular rotation factors V for the matrix BG1 of Figure 6A, for an expansion factor Zc = 256.

[0152] The parity matrix H is constructed by replacing each non-zero element of the matrix BG1 with an identity matrix of size Zc X Zc, and applying a circular rotation V according to the factors illustrated in Figure 6B. Thus, the element "1" of the first row / first column of the matrix BG1 of Figure 6A is replaced by an identity matrix of size 256 x 256 to which a circular rotation V — 250 is applied. The element "1" of the first row / second column of the matrix BG1 of Figure 6A is replaced by an identity matrix of size 256 x 256 to which a circular rotation V = 69 is applied. and so on.

[0153] 5.3 BG2 base matrix

[0154] Similarly, the ETSI TS 138 212 V15.2.0 document describes the structure of the BG2 basis matrix, which can be decomposed into submatrices A, B, C, D, I and O. Submatrices I and O are omitted hereafter for simplification.

[0155] In particular, 3GPP has proposed to decompose the basic matrix BG2 into four sub-matrices whose dimension depends on the parameter K. This parameter depends on the size of the source data to be coded (K=6, 8, 9 or 10). The sub-matrices C and D of the basic matrix BG2 can be represented in a nested form.

[0156] 5.4 Proposed basic matrices

[0157] The position of the connections in the basic matrices BG1 or BG2, as well as the rotation factors to be used, are specified in the 5G 3GPP standard. However, as previously indicated, it remains desirable to improve the performance of the error-correcting codes, in particular by reducing the complexity of the decoding.

[0158] We therefore propose below new basic matrices adapted in particular to the requirements of 5G (in terms of block size to be coded KZC and coding efficiency A) and future developments, offering good performance while reducing the decoding complexity, for example by reducing the number of decoding iterations. The proposed solution thus makes it possible to reduce the energy consumption of the LDPC codec.

[0159] Of course, the invention, although presenting a privileged application in the context of 3GPP standards, is not limited to this use and can be envisaged in other contexts, for example for other networks or more generally for other communication systems using LDPC codes.

[0160] According to a particular embodiment, the structure of the proposed basic matrices is defined so as to have a low disparity in the number of connections per row and / or per column. Indeed, if we consider an LDPC coder for example, we recall that LDPC decoding is based on the bases of the probabilities of having transmitted a value equal to “1” or “0”. It is therefore desirable to distribute the number of connections homogeneously, so that the number of connections in rows, and especially in columns, is substantially constant or equally distributed, so as to obtain better performances for a reduced number of iterations.

[0161] The structure of the proposed basic matrices is also defined so as to limit the number of short cycles, and if possible to avoid short cycles ("Girth" in English). Indeed, such short cycles limit the performance of error-correcting codes, in particular LDPC codes, especially for small source data, for example of the order of KZC — 256 bits or less.

[0162] To better understand this principle, Figures 7A and 7B illustrate the loop phenomena with an expansion factor Zc = 4. According to Figure 7A, an expansion factor Zc — 4 is applied with the same rotation factor V1 = V2 = V3 = V4 = 0 to the elements “1” located in position ( / , j), ( / + 7, / ), (4 / + 7) and ( / + 7, j + 1}. We obtain a loop, illustrated by the arrows. According to Figure 7B, we apply an expansion factor Zc — 4 with the same rotation factor VI = V2 = V4 = 0 to the elements “1” located in position ( / , j), ( / + 7, j ) and ( i + 7, j + 7), and a rotation factor V3 — 1 to the element located in position ( / , j + 7). In this case, there is no loop. Changing the rotation factor of one of the elements of the matrix therefore makes it possible to eliminate the loops.

[0163] The inventor was thus able to define a particular rule for “Protograph” matrices concerning short cycles of length 4: if ( V0 - V3 + V4 - V2 ) modula Zc = 0, then this configuration causes a short cycle of length 4 (or the alternation of signs corresponds to the passage from an elementary block (greyed out in figures 7A and 7B) to another elementary block on the same line (sign “+”) or on the same column (sign “-”) in the loop).

[0164] This equation makes it possible, according to one embodiment of the invention, to choose the value of the circular rotation coefficients making it possible to guarantee that the basic matrix BG' does not have a cycle of length 4, the limit or the degree of freedom being given by the value of Zc.

[0165] Furthermore, various solutions are presented below for obtaining a low disparity in the number of connections per row and / or per column of the modified basic matrix and / or for limiting (or even avoiding) short cycles.

[0166] In order to limit the number of short cycles, it is initially proposed to no longer puncture the first two columns of the new core A and extension C matrices on transmission, whereas the first two columns of the core A and extension C matrices are conventionally punctured in the basic matrices BG1 and BG2 according to 3GPP. Indeed, such a puncturing technique requires a large number of connections in the first two columns and can therefore lead to a large number of short cycles. In addition, it reduces the convergence speed of the decoder. We therefore seek to overcome it.

[0167] We also seek to improve the distribution of connections in the extension matrix C. Indeed, the extension matrix C is generally the largest in terms of its size. For the basic matrix BG1 according to 3GPP, for example, the extension matrix C, excluding its first two columns intended to be punctured, has a size of 40 x 22. For the basic matrix BG2 according to 3GPP, the extension matrix C, excluding its first two columns, has a size:

[0168] 22x4 for Kh = 6

[0169] 30 x 6 for Kb = 8

[0170] 34 x 7 for Kh = 9 and

[0171] 38 x 8 for Kb = 10.

[0172] To ensure a good distribution of the connections according to one embodiment of the invention, the connections can be distributed on diagonals in the extension matrix C. Thus, all the parity equations are distinct from each other.

[0173] For example, if we consider a block of 10 rows and 20 columns, as illustrated in Figure 8, it is possible to have two occurrences of a 10x10 diagonal matrix on the block of 10 rows, i.e. two connections in row and one in column.

[0174] According to another example, if we consider two blocks of 5 rows and 20 columns as illustrated in figure 9, it is possible to have four occurrences of a 5x5 diagonal matrix on each block of 5 rows, i.e. four connections in row and one in column per block.

[0175] It is thus possible to vary the number of connections per line according to the size of the diagonals or blocks of lines.

[0176] It should be noted, however, that the configuration illustrated in [Fig.9] can introduce short cycles of size 4. To overcome this problem, it is possible to perform a circular rotation by “elementary block”, as illustrated in [Fig. 10], by applying the technique described in relation to figures 7A and 7B.

[0177] By introducing a new variable that defines an identity matrix of size L x L has a circular rotation coefficient, the two blocks of 5 rows and 20 columns illustrated in [Fig. 10] can be represented more compactly in the following form: P / 5 t5 r5 ■'O 70 70 r5 t5 p t5 70 l3

[0178] With this new representation, it is possible to determine the different circular rotation coefficients a which ensure the minimum number of cycles of length 4, 6 ... for the set of extension matrices C and extension D.

[0179] 5.4.1 Optimization of the extension matrices C and D according to a first example

[0180] We present a first example of structure for the extension matrices C and extension D, which can be used in particular in 5G with J = 4.

[0181] According to this example, illustrated in figure 11, the extension matrix C has a size (M -J) XK — 40 X 22 and the extension matrix D has a size (MJ) x.7 = 40x4.

[0182] Such a structure makes it possible to limit the number of short cycles of size 4 and to obtain a homogeneous number of connections for the proposed basic matrix, noted BG1', substantially equivalent to the basic matrix BG1 proposed by the 3GPP.

[0183] As illustrated in Figure 11, the proposed extension matrix C thus comprises at least at least two blocks of L rows, for example four blocks of L — 7 rows, referenced 111, 112, 113 and 114, and at least one block of L columns, for example three blocks of L = 7 columns, referenced 121, 122 and 123.

[0184] Each block of L lines comprises at least one matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size LXL, with a an integer between 0 and L - 1 (i.e. at least one complete pattern). For example, the first block 111 comprises three occurrences of a matrix / ?, corresponding to the identity matrix of size 7. The first block of lines 111 thus comprises a succession of at least two matrices obtained by applying the same circular rotation coefficient a to said diagonal matrix of size L x L.

[0185] The second block 112 comprises an occurrence of a matrix / ?, an occurrence of a matrix / J and an occurrence of a matrix fy The third block 113 comprises an occurrence of a matrix J?, an occurrence of a matrix and an occurrence of a matrix The fourth block 114 comprises an occurrence of a matrix / J, an occurrence of a matrix and an occurrence of a matrix / ?. The row blocks 112, 113 and 114 thus each comprise a succession of at least two matrices obtained by applying a distinct circular rotation coefficient a to the diagonal matrix of size LxL.

[0186] According to the example illustrated, the blocks of L lines are consecutive, i.e. no line of damaged or non-damaged elements is interposed between two blocks of lines.

[0187] Furthermore, at least one block of L columns comprises at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size Lx L. For example, the first block 121 comprises an occurrence of a matrix, an occurrence of a matrix 7^, an occurrence of a matrix and an occurrence of a matrix. The second block 122 comprises an occurrence of a matrix Û, an occurrence of a matrix p„, an occurrence of a matrix P and an occurrence of a matrix / $. The third block 123 comprises an occurrence of a matrix p^, an occurrence of a matrix py, an occurrence of a matrix p and an occurrence of a matrix / 1 O

[0188] The intersection of a block of rows and a block of columns corresponds to an elementary block formed by a matrix

[0189] It is further noted that said extension matrix C also comprises at least one block of p lines, LL, with L' an integer between 1 and K - 1 comprising a succession of matrices obtained by applying the same circular rotation coefficient a to a diagonal matrix of size £ x L • For example, such a block of The '=6 rows is referenced 110 in Figure 11. Such a block of rows comprises a succession of matrices / $.

[0190] The structure of the extension matrix C can in particular be extended onto the extension matrix D. Thus, for at least one block of lines, the extension matrix C comprises a portion of a matrix and the extension matrix D comprises the extension of the portion of the matrix / £. For example, returning to Figure 11, if we consider the first block of 7 lines 111, with the first 22 columns belonging to the extension matrix C and the last 4 columns belonging to the extension matrix D. the extension matrix C comprises three “complete” patterns each corresponding to the matrix / 7. The fourth pattern is partial and is extended into the extension matrix D.

[0191] The extension matrix D thus allows "to extend the diagonals" and consequently to increase the overall performance of the LDPCs.

[0192] The matrices can thus be used to decompose the extension matrices C and extension D. As already indicated, the exponent L gives the dimension of the identity matrix (L rows, L columns), and the index a gives the coefficient of circular rotation applied to the identity matrix to obtain this matrix / £.

[0193] In particular, if the last matrices of a row or a column exceed the dimensions of the extension matrices C and extension D, then they can be truncated.

[0194] Circular rotations make it possible in particular to minimize the number of short cycles of size 4 and 6 for matrices of the same dimension, for example matrices of dimension (6,6) and (7,7) according to the example in [Fig.11].

[0195] Using the compact notation proposed above, the extension and continuation matrices of [Fig. 11] can be expressed in the following form: A6 L) J6 70 / > r6 70 >6 II 11 II II II 1] II II fo II il il II 4 II II / 3 II II II

[0196] Returning to Figure 11, the number of connections per row and per column is shown on the right and at the bottom of the figure. By using diagonal matrices to which a circular rotation is applied, we see that the number of connections per row and / or per column in the proposed C extension and D extension matrices is substantially homogeneous (for example between 3 and 5 for the number of connections per row and between 5 and 6 for the number of connections per column). Such homogeneity makes it possible to optimize the performance of LDPC codecs for a limited number of decoder iterations (less than 10 iterations for example).

[0197] In the above examples, the extension C and extension D matrices are optimized to decrease short cycles.

[0198] However, if we take into account the basic matrix BG1' formed from the kernel matrices A, B, spreading C and extension D, short cycles may remain.

[0199] The core matrix A may be identical to or different from that proposed for the basic matrix BG1 according to 3GPP. Advantageously, the core matrix A comprises approximately 75% of connections (i.e. of unharmed elements) per row.

[0200] For example, the kernel matrix A is equal to: vo vo VI V 3 V 4 V 3 V2 V 1 V 1 V 1 VI V4 VO V4 V 2 V2 V 3 V2 V2 V2 V2 V 3 V 0 V 0 V 3 V 4 V3 vo VI V2 V 1 VO V3 V 4 VO VI V4 VO V 4 V 0 V2 V 2 VO VO V3 V 4 V3 VI VO V4 VI V 2 V 1 V3 V 4 V 0 V 4 V2 V2 V2 VO VO V 0

[0201] Similarly, matrix B, which includes the start of the redundancy part associated with core matrix A, may be identical to or different from that proposed for the basic matrix BG1 according to 3GPP.

[0202] For example, the matrix B having at least one diagonal is equal to: VI V 0 vo V 0 V 0 V 0 vo VI vo

[0203] As illustrated in [Fig.7B], taking into account the rotation factors allows in particular to reduce, or even avoid, short cycles. It is therefore possible to increase the diversity of the proposed basic matrix and therefore to reduce the number of short cycles by taking into account rotation factors.

[0204] In other words, for each connection identified by a value “1” in the matrices A, B, C and B, another circular rotation operation Vi is implemented, making it possible to minimize the number of short cycles of size 4 and size 6 for the entire proposed basic matrix BG1'.

[0205] It is possible to increase the number of rotation factors to increase the diversity of the basic matrix BG1'. For example, five rotation factors denoted V0 to V4 are chosen. Of course, a different number of rotation factors can be chosen, which leads to a different structure for matrices A, B, C and D.

[0206] It is notably possible to define the equations which define the rotation factors V0 to V4 as a function of the index “ils” according to the 5G 3GPP standard. Index “they” Circular Rotation Vi 0 V0=0 + 4y, y G [0:63] Vl=l + 4y, yg [0:63] V2 = 2 + 4y, yg [0:63] V3 = 3 + 4y, ye [0:63] V4 = 0 + 4y; yg [0:63] 1 VO = 0 + 5x + 6y, xg [0:1] and ys [0:63] Vl= I + 6y, yg [0:63] V2 = 2 + 6y, ye [0:63] V3 = 3 + 6y, ys [0:63] E4 = 4 + 6y, ye [0:63] 2 V0 = 0+5y, yg [0:63] Vl=l + 5y, ye [0:63] V2 = 2+5y, yg [0:63] V3=3 + 5y, yg [0:63] V4 = 4 + 5y, yg [0:63] 3 VO = 0 + 5x + 7y, xg [0: 1] et yg [0: 31] VI = 1 + 5x + 7y, xg [0: 1] et yg [0: 31] V2 = 2 + 7y, ye [0:31] V3 = 3 + 7y, ye [0:31] V4 = 4+7y, yg [0:31] 4 V0 = 0 + 5x + 9y, .xe [0:1] et ye [0: 31] V1 = 14- 5x + 9y, xg [ 0:1 ] et yg [0:31] V2 = 2 + 5.x + 9y, xe [0:1] and ye [0:31] V3 = 3 + 5x+9y, xg[0: l]ezye[0:31] V4 = 4 + 9y, yG[0:31] 5 VO = 0 + 5x + 1 ly, x G [0:2] and yg [0:31] VI = 1 + 5x + 1 ly xg [0:1] and yg[0:31] V2 = 2 + 5x + 1 ly, xg [0:1] and ye [0:31] V3 = 3 + 5x + 1 ly, xg [0:1] and yg [0:31] V4 = 4 + 5x + 1 ly, xe [0:1] and yg [0:31] 6 VO = 0+ 5x + 13y xg[0:2] and yg[0:15] VI = 1+5x + 13y, xg[0:2] and yg[0:15] V2 = 2 + 5x + 13y, xg[0:2] and yg[0:15] V3 = 3 + 5x + 13y, xg[0:1] and yg[0:15] 15] V4 = 4 + 5x + 13y, xg [0: 1] and yg [0: 15] 7 V0 = 0+5x+15y, xg[0:2]éOg[0:15] VI = 1 + 5x + 15y, xg [0: 2] and yg [0: 15] V2 = 2+ 5x+ 15y xg [0:2] and yg[0: 15] V3 = 3 + 5x + 15y, xe [0: 2] and yg [0:15] V4 = 4 + 5x + 15y, x G [0: 2] and yg [0: 15].

[0207] with x and 3 random variables whose interval is given in the table above.

[0208] Figure 12 gives an example of a basic matrix BG1' proposed according to the invention, for an expansion factor Zc = 256, in which the matrices C and D are constructed from identity matrices of length 6 or 7 to which circular rotations (j^ or f) have been applied. It is recalled that the matrices 0 and I are not illustrated for the sake of simplification.

[0209] From the base matrix BG1' thus obtained, it is possible to obtain a parity matrix H, by replacing each empty or zero element of the base matrix BGV by a zero matrix of size Zc X Zc and each non-zero element of the base matrix BGV by an expansion matrix obtained by applying a circular rotation Vi to an identity matrix of size Zc XZ,.

[0210] The parity matrix H thus obtained can be used by an encoder to encode at least one block of KZC source data.

[0211] The structure illustrated in figure 12 makes it possible in particular to reduce short cycles for small source data, for example for KZC < 256.

[0212] Figure 13 gives another example of a basic matrix BG1' proposed according to the invention, for an expansion factor Zc = 256, an index Us = 0, and y = 50, with a new structure for the matrix B.

[0213] 5.4.2 Optimization of the extension matrices C and D according to a second example

[0214] A second example structure for the extension matrices C and extension D is presented below, which can also be used in 5G with J = 4.

[0215] According to this example, illustrated in figure 14, the extension matrices C and D have a size which depends on K = Kb = {6, 8, 9, 10} • In particular, the matrices AC and D have a nested structure according to the value of K.

[0216] If K = 6, the extension matrix C has a size (M -J) XK = 20 X 6 and the extension matrix D has a size (M - J) XJ — 20 X 4.

[0217] If K = 8, the extension matrix C has a size (M- J) XK — 28 X 8 and the extension matrix D has a size (M - J) XJ = 28 x 4.

[0218] If K = 9, the extension matrix C has a size (M -J) x A' = 32 X 9 and the extension matrix D has a size (M -J) x J = 32 x 4.

[0219] If K = 10, the extension matrix C has a size ( M - J) x K = 34 x 10 and the extension matrix D has a size ( M - J ) x J = 34 X 4.

[0220] Such a structure makes it possible to limit the number of short cycles of size 4 and to obtain a homogeneous number of connections for the proposed basic matrix, noted BG2', substantially equivalent to the basic matrix BG2 proposed by the 3GPP.

[0221] The case where K = 10 is described below. A similar description could be made for other values ​​of K.

[0222] As illustrated in Figure 14, the proposed extension matrix C comprises at least two blocks of L rows, for example five blocks of L = 5 rows, referenced 141, 142, 143, 144 and 145, and at least one block of V columns, for example two blocks of L = 5 columns.

[0223] Each block of L lines comprises at least one matrix [L obtained by applying a circular rotation coefficient a to a diagonal matrix of size LxL, with a an integer between 0 and L - 1 (i.e. at least one complete pattern). For example, the first block 141 comprises two occurrences of a matrix 1^, corresponding to the identity matrix of size 7. The first block of lines 141 thus comprises a succession of at least two matrices obtained by applying the same circular rotation coefficient a to the diagonal matrix of size LxL.

[0224] The second block 142 comprises an occurrence of a 7^ matrix and an occurrence of a 7^ matrix. The third block 143 comprises an occurrence of a 7" matrix and an occurrence of a 7^ matrix. The fourth block 144 comprises an occurrence of a matrix and an occurrence of a 7^ matrix. The fifth block 145 comprises an occurrence of a matrix and an occurrence of a matrix. The row blocks 141 to 145 thus each comprise a succession of at least two matrices obtained by applying a distinct circular rotation coefficient a to the diagonal matrix of size L x L.

[0225] According to the example illustrated, the blocks of L lines are consecutive, i.e. no line of damaged or non-damaged elements is interposed between two blocks of lines.

[0226] Furthermore, at least one block of L columns comprises at least two 7^ matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size L x L. For example, the first block of L = 5 columns comprises an occurrence of a 7$ matrix, an occurrence of a 7^ matrix, an occurrence of a matrix and an occurrence of a 7| matrix and an occurrence of a 7^ matrix. The second block of L = 5 columns comprises an occurrence of a 7^ matrix, an occurrence of a / ^ matrix, an occurrence of a 7^ matrix, an occurrence of a 7^ matrix and an occurrence of a 7^ matrix.

[0227] The intersection of a block of rows and a block of columns corresponds to an “elementary block” formed by a matrix

[0228] It is further noted that said extension matrix C also comprises at least one block of £ rows, LL, with L' an integer between 1 and K -1 comprising a succession of matrices 7^ obtained by applying the same circular rotation coefficient a to a diagonal matrix of size L x L ■ For example, such a block of L' = 7 rows is referenced 146 in Figure 14. Such a block of rows comprises a succession of matrices

[0229] According to the embodiment illustrated in Figure 14, the extension matrix D comprises at least two blocks of / rows, each block of rows comprising a matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size J x J.

[0230] For example, the extension matrix D comprises nine blocks of 4 rows each comprising the matrix

[0231] The structure of matrix B can in particular be extended onto the extension matrix D. For example, returning to figure 14, the block formed from the last two lines of matrix B and the first two lines of extension matrix D forms a “complete” pattern corresponding to an identity matrix.

[0232] The extension matrix D thus allows "to extend the diagonals" and consequently to increase the overall performance of the LDPCs.

[0233] The matrices can thus be used to decompose the extension matrices C and extension D. In particular, if the last matrices of a row or a column exceed the dimensions of the extension matrices C and extension D, then they can be truncated.

[0234] Circular rotations make it possible in particular to minimize the number of short cycles of size 4 and 6 for matrices of the same dimension, for example matrices of dimension (5,5) and (7,7) according to the example of [Fig.14].

[0235] Using the compact notation proposed above, the extension matrix C of [Fig. 14] can be expressed in the following form: 'ô II II II II II û II II II '1 II II 1}

[0236] And the extension matrix D of [Fig. 14] in the following form: ?2 4 r4 22 HAS

[0237] Another example of an extension matrix D is given below:

[0238] Other circular rotations can be applied to the extension matrix D.

[0239] Returning to Figure 14, the number of connections per row and per column is indicated on the right and at the bottom of the figure. By using diagonal matrices to which a circular rotation is applied, it can be seen that the number of connections per row and / or per column in the proposed C extension and D extension matrices is substantially homogeneous (for example, between 2 and 3 for the number of connections per row, and between 9 and 10 for the number of connections per column for the C extension matrix, and between 10 and 12 for the number of connections per column for the D extension matrix). As already indicated, such homogeneity makes it possible to optimize the performance of LDPC codecs for a limited number of decoder iterations (less than 10 iterations for example).

[0240] In the above examples, the extension C and extension D matrices are also optimized to decrease short cycles.

[0241] However, as previously indicated, if we take into account the basic matrix BG2' formed from the kernel matrices A, B, spreading C and extension D, there may remain short cycles.

[0242] The kernel matrix A may be identical to or different from that proposed for the BG2 base matrix according to 3GPP. For example, depending on the value of K, said kernel matrix A is equal to: for K= 10 for K=9 for K=8 for K=6 VI VO V3 V2 VI V4 V3 V2 V4 VO V3 V2 V4 V2 V3 vo V2 VO V3 V4 V2 V3 VI VI V3 V4 V4

[0243] The matrix B, which includes the start of the redundancy part associated with the core matrix A, may also be identical to or different from that proposed for the basic matrix BG2 according to 3GPP.

[0244] For example, said matrix B is equal to: VO vo vo vo VI vo vo vo vo

[0245] As illustrated in [Fig.7B], taking rotation factors into account makes it possible in particular to reduce, or even avoid, short cycles. It is therefore possible to increase the diversity of the proposed basic matrix and therefore to reduce the number of short cycles by taking rotation factors into account.

[0246] In other words, for each connection identified by a value “1” in matrices A, B, C and D, another circular rotation operation Vi is implemented, making it possible to minimize the number of short cycles of size 4 and size 6 for the entire proposed basic matrix BG2'.

[0247] It is possible to increase the number of rotation factors to increase the diversity of the basic matrix BG2. For example, five rotation factors denoted V0 to V4 are chosen, as defined above for the proposed basic matrix BG1'. Of course, a different number of rotation factors can be chosen, which leads to a different structure for the matrices A, A, C and D.

[0248] It is notably possible to define the equations which define the rotation factors V0 to V4 as a function of the index “ils” according to the 5G 3GPP standard defined previously.

[0249] Figure 15 gives an example of a basic matrix BG2' proposed according to the invention, for an expansion factor Z6. = 256, in which the extension matrix C is constructed from five identity matrices of length 5 and two identity matrices of length 7 to which circular rotations ( / ^ or / ?) have been applied and the extension matrix D is constructed from identity matrices of length 4. It is recalled that matrices 0 and I are not illustrated for the sake of simplification. According to the example illustrated in Figure 15, matrices A, C and D have a nested structure according to the value of K.

[0250] From the base matrix BG2' thus obtained, it is possible to obtain a parity matrix H, by replacing each empty or zero element of the base matrix BGT by a zero matrix of size Zc X Zc and each non-zero element of the base matrix BG2' by an expansion matrix obtained by applying a circular rotation Vi to an identity matrix of size Zc X Zc.

[0251] The parity matrix H thus obtained can be used by an encoder to encode at least one block of AZC source data.

[0252] The structure illustrated in figure 15 makes it possible in particular to reduce short cycles for small source data, for example for KZ( < 256.

[0253] Figure 16 gives another example of a basic matrix BG2' proposed according to the invention, for an expansion factor Zc = 256, an index ils = 0, and y — 50, with a new structure for the matrix B.

[0254] 5.5 Decoding

[0255] The use of basic matrices according to the different embodiments described above makes it possible in particular to improve the decoding performance of LDPC codes.

[0256] In the embodiment described here, the implementation of a decoding in “reverse” mode is further considered, according to which the parity matrix is ​​decoded from bottom to top (i.e., the parity equations obtained from the last lines of the parity matrix are first sought to be solved before those obtained from the first lines of the parity matrix). Such decoding in “reverse” mode offers good performance, in particular for decoding small source data, for example for KZC < 256.

[0257] More generally, starting the decoding with the lines of the parity matrix having the fewest connections (bottom of the parity matrix, corresponding to the last lines of the extension C and extension D matrices) to finish with the lines of the parity matrix having the most connections (top of the parity matrix, corresponding to the kernel matrix A and to the matrix B) in “reverse” mode allows the decoder to converge more quickly. Such a decoder therefore requires fewer decoding iterations to achieve similar performance to that obtained for a conventional decoder using the BG1 and BG2 basic matrices according to 3GPP.

[0258] In particular, MinSum type decoders, as described in the document “A fully parallel LDPC decoder architecture using probabilistic minsum algorithm for high-throughput applications”, C.-C. Cheng et al., IEEE Trans. Circuits Syst. I, Reg. Papers, vol. 61, no. 9, pp. 2738-2746, Sep. 2014, conventionally used to decode LDPC codes, exhibit better performance if the decoding begins at the end of the parity matrix.

[0259] It is therefore particularly advantageous to implement a “reverse” type decoding to decode LDPC codes constructed from the basic matrices according to the invention or from the basic matrices according to 3GPP.

[0260] However, the use of a "standard" decoding from the top to the bottom of the parity matrix, or in another order, is also possible.

[0261] 5.6 Performance curves

[0262] We now present, in relation to [Fig. 17], the decoding performances obtained in terms of block error rate (BLER) as a function of the signal-to-noise ratio (SNR in dB), for LDPC decoders, after encoding source data using a parity matrix obtained either from the basic matrix BG1 as defined by the 3GPP for the 5G standard, or from a basic matrix BG1' according to an embodiment of the invention.

[0263] These performances are obtained for code lengths of 330 bits (K — 22, Zc — 15) and an efficiency of 1 / 3. The decoder algorithm is for example MinSum, with an alpha parameter equal to 0.7, in “reverse” mode for decoding the data obtained using a parity matrix constructed from a basic matrix BG1' according to an embodiment of the invention, and in “classical” mode for decoding the data obtained using a parity matrix constructed from a basic matrix BG1 according to the 3GPP.

[0264] Curve 171 illustrates the decoding performance using the basic matrix BG1' according to an embodiment of the invention after 20 iterations of the decoder. Curve 172 illustrates the decoding performance using the basic matrix BG1 after 20 iterations of the decoder.

[0265] Curve 173 illustrates the decoding performance using the basic matrix BG1' according to an embodiment of the invention after 10 iterations of the decoder. Curve 174 illustrates the decoding performance using the basic matrix BG1 after 10 iterations of the decoder.

[0266] Curve 175 illustrates the decoding performance using the basic matrix BG1' according to an embodiment of the invention after 5 iterations of the decoder. Curve 176 illustrates the decoding performance using the basic matrix BG1 after 5 iterations of the decoder.

[0267] It is noted that the structure proposed according to at least one embodiment of the invention makes it possible to improve the performance of the LDPC decoder according to the 5G standard. The difference is all the greater with a lower number of iterations of the decoder.

[0268] Finally, in relation to figures 18 and 19, the decoding performances obtained in terms of block error rate (BLER) as a function of the signal-to-noise ratio (SNR in dB) are presented, for LDPC decoders, after encoding source data using a parity matrix obtained either from the BG2 base matrix as defined by the 3GPP for the 5G standard, or from a BG2' base matrix according to an embodiment of the invention.

[0269] The performances illustrated in figure 18 are obtained for code lengths of 720 bits (K = 10, Z. = 72) and an efficiency of 1 / 5. The decoder algorithm is for example the MinSum, with an alpha parameter equal to 0.7, in “reverse” mode for the decoding of the data obtained using a parity matrix constructed from a BG2' base matrix according to an embodiment of the invention, and in “classical” mode for the decoding of the data obtained using a parity matrix constructed from a BG2 base matrix according to the 3GPP.

[0270] Curve 181 illustrates the decoding performance using the basic matrix BG2' according to an embodiment of the invention after 20 iterations of the decoder. Curve 182 illustrates the decoding performance using the basic matrix BG2 after 20 iterations of the decoder.

[0271] Curve 183 illustrates the decoding performance using the basic matrix BG2' according to an embodiment of the invention after 10 iterations of the decoder. Curve 184 illustrates the decoding performance using the basic matrix BG2 after 10 iterations of the decoder.

[0272] Curve 185 illustrates the decoding performance using the basic matrix BG2' according to an embodiment of the invention after 5 iterations of the decoder. Curve 186 illustrates the decoding performance using the basic matrix BG2 after 5 iterations of the decoder.

[0273] The performances illustrated in [Fig. 19] are obtained for small code sizes, a rate of 1 / 5 and five decoding iterations. The decoder algorithm is the MinSum in “classical” mode with an alpha parameter equal to 0.7.

[0274] The decoding performances of a 12-bit length code (K — 6, Zc = 2) are illustrated by curve 191 for a codec using the basic matrix BG2' according to an embodiment of the invention and by curve 192 for a codec using the BG2 base matrix.

[0275] The decoding performances of an 18-bit length code (K = 6, Z, = 3) are illustrated by curve 193 for a codec using the basic matrix BG2' according to an embodiment of the invention and by curve 194 for a codec using the basic matrix BG2.

[0276] The decoding performances of a 30-bit length code (K = 6, Zr = 5) are illustrated by curve 195 for a codec using the basic matrix BG2' according to an embodiment of the invention and by curve 196 for a codec using the basic matrix BG2.

[0277] The decoding performances of a 42-bit length code (K = 6, Zc = 7) are illustrated by curve 197 for a codec using the basic matrix BG2' according to an embodiment of the invention and by curve 198 for a codec using the basic matrix BG2.

[0278] 5.7 Variants

[0279] Examples with particular values ​​for J, K and M have been described above.

[0280] However, these are simple examples, and other values ​​for J, K and M can be considered, in particular for other transmission standards (Wifi®, 6G, etc.).

[0281] Similarly, basis matrices with five rotation factors V0 to V4 have been proposed. However, a different number of rotation factors can be chosen.

[0282] Other forms of the B matrix can also be used. In this case, the position of the connections and / or the values ​​of the rotation factors can be updated to take into account the structure of the B matrix.

[0283] An LDPC code was also taken as an example. The invention can also be extended to other error-correcting codes using a parity matrix.

[0284] 5.8 Coding and decoding devices

[0285] Finally, in relation to FIGS. 20A and 20B, the simplified structures of an encoder and a decoder according to at least one embodiment described above are presented.

[0286] As illustrated in [Fig.20A], an encoder comprises at least one memory 201, at least one processing unit 202, equipped for example with a programmable computing machine or a dedicated computing machine, for example a processor P, and controlled by the computer program 203, implementing steps of the coding method according to at least one embodiment of the invention.

[0287] At initialization, the code instructions of the computer program 203 are for example loaded into a RAM memory before being executed by the processor of the processing unit 202.

[0288] The processor of the processing unit 202 implements steps of the coding method described previously, according to the instructions of the computer program 203, to encode the KZC source data using a parity matrix H of size ( MZC X NZC ), and output at least one code word of size NZC formed from the KZC source data and MZC redundancy data.

[0289] As illustrated in [Fig.20B], a decoder comprises at least one memory 204, at least one processing unit 205, equipped for example with a programmable computing machine or a dedicated computing machine, for example a processor P, and controlled by the computer program 206, implementing steps of the decoding method according to at least one embodiment of the invention.

[0290] At initialization, the code instructions of the computer program 206 are for example loaded into a RAM memory before being executed by the processor of the processing unit 205.

[0291] The processor of the processing unit 205 implements steps of the decoding method described previously, according to the instructions of the computer program 206, to decode at least one code word of size NZC formed of KZC source data and MZC redundancy data, using a parity matrix H of size (MZC x NZC), and reconstruct the KZC source data.

Claims

Claims

1. Method for coding at least one block of KZC source data, delivering at least one code word of size NZC formed from said K.ZC source data and MZC redundancy data, N — K + M. with Zc an integer expansion factor, Ze > 1, said method implementing a step of coding (53) said KZC source data using a parity matrix H of size (MZexNZc), characterized in that said parity matrix H is obtained (52) from a basic matrix BG ' of size M xen replacing each element of said basic matrix BG ' by an expansion matrix of size Zc X Zc,said basic matrix BG ' being expressed in the form: [AB 01 SG =lc D / J with: A a kernel matrix of size J xK B a matrix having at least one diagonal of size J x JC an extension matrix of size (M - J) x KD an extension matrix of size (M - J) x J 0 a zero matrix of size (N- K - J) XJ / an identity matrix of size (M - J) X (N - K - J) and in that said extension matrix C comprises at least two blocks of L rows and at least one block of £ columns, with L an integer between 1 and K - 1, each block of L rows comprising at least one matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size LXL, with a an integer between 0 and L - 1, said at least one block of L columns comprising at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size LxW.,

2. Method according to claim 1, characterized in that at least one of said blocks of lines comprises a succession of at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size LxL.

3. Method according to any one of claims 1 and 2, characterized in that at least one of said blocks of lines comprises a succession of at least

4.

5.

6.

7.

8. minus two matrices obtained by applying the same circular rotation coefficient a to said diagonal matrix of size L x L. Method according to any one of claims 1 to 3, characterized in that L > 5. Method according to any one of claims 1 to 4, characterized in that said at least two blocks of L lines are consecutive. Method according to any one of claims 1 to 5, and in that said extension matrix C also comprises at least one block of L lines, L & L, with L' an integer between 1 and K -1, comprising a succession of matrices obtained by applying the same circular rotation coefficient a to a diagonal matrix of size L x L- Method according to any one of claims 1 to 6, characterized in that for at least one of said blocks of lines, said extension matrix C comprises a portion of one of said matrices obtained by applying a circular rotation coefficient a to a diagonal matrix of size L x L, and in that said extension matrix D comprises the extension of said portion. Method according to any one of the preceding claims, characterized in that ladite matrice d'extension C est égale à : V 2 V 1 V 3 V 4 V 1 V 1 V 2 V 3 V 2 V 2 V 0 V 3 V 3 V 1 V 3 V 3 V 0 V 2 V 2 V 2 V 2 V 3 V 0 V 1 V 4 V 1 V 0 V 2 V 4 V 2 V 0 V 2 V 1 V 1 V 0 V 3 V 2 V 2 V 3 V 3 V 4 V 3 V 3 V 2 V 0 V 0 V 2 V 3 V 1 V 4 V 4 V 1 V 0 V 1 V 0 V 2 V 3 V 3 V 2 V 2 V 4 V 3 V 3 V 3 V 4 V 1 V 2 V 3 V 1 V 2 V 3 V 0 V 4 V 1 V 1 V 3 V 4 V 3 V 3 V 1 V 3 V 3 V 3 V 1 V 3 V 4 V 1 V 1 V 1 V 2 V 1 V 1 V 1 V 2 V 1 V 4 V 3 V 1 V 4 V 2 V 1 V 1 V 4 V 0 V 4 V 1 V 1 V 1 V 2 V 0 V 3 V 1 V 3 V 3 V 2 V 2 V 2 V 1 V 1 V 2 V 2 V 0 V 3 V 1 V 2 V 1 V 0 V 2 V 4 ladite matrice de prolongement D est égale à : V2 VI VI V3 V4 V3 VI VI VI V3 VI V3 VI V3 V4 V2 each empty or zero element of said base matrix BG' is replaced by a zero matrix of size Zc X Zc, each non-zero element of said base matrix BG is replaced by a circular permutation matrix obtained by applying a circular rotation Vi to an identity matrix of size Zc XZ, such that: Circular rotation Vi if Z( belongs to {2,4,8,16,32,128,256} V0 = 0 + 4y, ve [0:63] VI = l+4y, ye [0:63] V2 = 2+4y, ye [0:63] V3 = 3 + 4y, ye [0:63] V4 = 0+4y, ye [0:63] if Zc belongs to {3,6,12,24,48,96,192,384} VO = 0 + 5x + 6y, xe [0:1] and ye [0:63] VI = l + 6y, ye [0:63] V2 = 2+6y, ye [0:63] V3 = 3 + 6y, ye [0:63] V4 = 4 + 6y, ye [0:63] if Zc belongs to {5,10,20,40,80,160,320} V0 = 0+5y, ye[0:63] Vl=l + 5y, yg [0:63] V2 = 2 + 5y, yg [0: 63] V3=3 [3,6] ye, 3 = yg [4,] if Z belongs to {7,14,28,56,112,224} V0 = 0 + 5x + 7y, x G [0: 1] and y G [0 : 31] VI = 1 + 5x + 7y, xg [0: 1] and yg [0: 31y [G3,] V2 + 2+ y yg [0:31] V4 = 4 + 7y, yg [0:31] if Zc belongs to {9,18,36,72,144,288} V0 = 0 + 5x + 9y, xe[0:l]etyG[0:31] VI - l + 3 [5x +c+2 y =, xe 5x + 9y, xg [0 : 1] and y G [0: 31] V3 = 3 + 5x + 9y, x G [0: 1] and yg [0: 31] V4 = 4 + 9y, ye [0:31] if Zc belongs to VO = 0+5x [0: 1] and y [0: 2], {11,22,44,88,176,352} Vl = l + 5x+ lly, xe[0: 1] and yg[0:31] V2 = 2 + 5x+lly, xe[0: l]^ye[0:31] V3 = 3 + 5x +1 ly 1, and xe [40:1] ly, xe [0:1] and yg [0:31] if Z,. belongs to {13,26,52,104,208}: V0 - 0 + 5x + 13y, xg [0:2] and yg [0:15] VI = 1 + 5x + 13y, xg [0:2] and yg [0:15] V2 = 2+5x+ 13y, xg [0:2] and yg [0:15] V3 = 3+5x + 13y, xg [0:1] and yg [0:15] V4 = 4+5% + 13¾ xg [0:1] and ye [0:15] if Zc belongs to {15,30,60,120,240}: V0 = 0+5x+15y, xe [0:2] and yg [0:15] Vl = l + 5x+ 15); xG[0:2]ef yg[0:15] V2 = 2 + 5x + 15y, xg [0:2] and yg [0:15] V3 = 3 + 5x + 15y. xg [0:2] and yg [0:15] V4-4 + 5x+l5y, xg [0:2] and yg [0:15]

9.

10.

11. with x and random variables. Method according to any one of the preceding claims, characterized in that J = 4, K — 22 and M = 44. Method according to any one of claims 1 to 5, characterized in that said extension matrix D comprises at least two blocks of / lines, each block of lines comprising a matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size J x J. Method according to any one of claims 1 to 5 or 10, characterized in that, depending on the value of K, said extension matrix C and prolongation matrix D are equal to: for K=6: CD V2 V2 VI V3 V2 V3 VO V2 V3 V2 V2 VI V2 VI VI V2 V2 V3 V3 V2 VI V2 VI vo V2 V2 V2 V3 VI VI V2 VO vo V3 V2 VI vo VI V2 V3 vo VI for K=8: CD V2 V2 VI V3 V3 V2 V3 V2 VO V2 V3 V2 V2 VI V2 VI VI V2 V2 V3 V3 VI V2 VI V3 V2 VI V3 vo V2 VI V2 V2 V3 VI VI V2 VO vo V3 V2 VI vo V3 VI V2 V2 V3 vo VI V2 vo V3 V3 VO V3 V2 V2 vo V2 VI VI vo VO VO V3 vo V3 V2 V2 V2 V2 for K=9: c D V2 V2 VI V3 V3 V2 V3 V2 VO V2 VI V3 V2 V2 VI VI V2 VI VI V2 V2 V3 V3 VI V2 VI V3 V2 VI V3 VO V2 VI V2 V2 VI V3 VI VI V2 vo vo V3 V2 VI vo V3 VI V2 V2 V3 vo vo VI V2 vo V3 V2 V3 VO V3 V2 V2 vo V2 VI VI vo VO VO V3 vo V3 V2 V3 V2 V2 V2 VO V2 VO V3 VO VI V2 VO For K=10: CD V2 V2 VI V3 V3 V2 V3 V2 VO V2 VI V3 V2 V2 V2 VI VI V2 VI V2 VI V2 V2 V3 V3 VI V2 VI V3 V2 VI V3 in V2 VI V2 V2 VI V3 VI V3 VI V2 VO in V3 V2 VI in V3 VI V2 V2 V3 in vo in VI V2 VI VO V3 V2 V3 VO VO V3 V2 V2 in V2 VI VI in VO VO V3 in V3 V2 V3 V2 V2 V2 V2 VO V2 VO V3 VO VI V2 VO V2 VO V3 VO VI V2 VO V2 VI VO V2 VO V2 VI V2 VO V3 VI V2 and in that: - each empty element of the base matrix BG is replaced by a null matrix of size Zc X Zc, - each non-zero element of said basic matrix BG ' is replaced by a circular permutation matrix obtained by applying a circular rotation Vi \ an identity matrix of size Zc X Zc, such that: Circular Rotation Vi if Zc belongs to {2,4,8,16,32,128,256} V0 = 0 + 4j, je [0:63] VI = l + 4j, ye [0:63] V2 = 2 + 4j, je[0:63] V3 = 3 + 4j, ye [0:63] V4 = 0 + 4y, je[0:63] if Zc belongs to {3,6 12,24,48,96,192,384} V0 — 0 + 5x + 6y, xe [0: 1] and ye [0: 63] Vl=l+6j, je[0:63] V2 = 2 + 6y, je[0:63] V3 = 3 + 6j, je[0:63] V4 = 4 + 6j, je[0:63] if Zc belongs to {5,10,20,40,80,160,320} V0 = 0+5j, je[0:63] Vl=l + 5y, je[0:63] V2 = 2 + 5y, je[0:63] V3=3 + 5y, je[0:63] V4 = 4 + 5y, je[0:63] if Zc belongs to {7,14,28,56,112,224} vo = 0 + 5x + 7y, xe [0: 1] and ye [0: 31] VI = 1 + 5x + 7j, xe [0: 1] and ye [0: 31] V2 = 2+7j, je[0:31] V3 = 3 + 7j, je[0:31] V4 = 4+7d, I[0:31] if Zc belongs to {9,18,36,72,144,288} VO = 0 + 5x + 9y, xs [0 : 1] and ye [0: 31] VI = 1 + 5x + 9y, xg [0 : ï]and ye [0: 31] V2 = 2 + 5x + 9y, xe [0: 1] and ye [0: 31] V3 = 3 + 5x + 9y, xe [0: 1] and ye [0: 31] V4 = 4 + 9y, yg [0: 31] if Zc belongs to {11,22,44,88,176,352} VO = 0 + 5x + 1 ly, xe [0: 2] and ye [0: 31] VI = 1 + 5% + 1 ly, xe [0 : 1] and ye [0:31] V2 = 2 + 5x + lly, xe[0: 1] er yE[0:31] V3 = 3 + 5x + 1 ly, xg [0:1] and ye [0:31] V4 = 4+ 5x + 1 ly, xe [0:1] and ye [0:31] if Zc belongs to VO = 0+5x+ 13y, xe [0:2] and yg [0:15] {13,26,52,104,208}: VI - 1 + 5x +13y, xe [0:2] and ye [0:15] V2 = 2 + 5x +13y xe [0:2] and ye [0:15] V3 = 3+5x +13y, xe [0:1] and ye [0:15] V4 = 4 + 5x + 13y, xe [0:1] and ye [0:15] if Zc belongs to {15,30,60,120,240}: V0 - 0 + 5x + 15y, xe [0:2] and ye [0:15] V1 = 1 + 5x + 15y, xe [0:2] and ye [0: 15] V2 = 2+5x+ 15y, xe [0:2] and ye [0:15] V3 - 3+5x +15¾ xe [0:2] and ye [0:15] V4 - 4 + 5a- + 15y, xe [0:2] and ye [0:15] with x and 3' random variables.

12. Method according to any one of claims 1 to 5 or 10 to 11, characterized in that J — 4 and: Æ = 6 and M = 24, or / C = 8 and M = 32, or Æ = 9 and M = 36 or K = 10 and M = 40.

13. Device for coding at least one block of KZC source data, delivering at least one code word of size NZC formed from said KZC source data and MZC redundancy data, N = K + M, with Zc an integer expansion factor, Zc > 1, comprising at least one processing unit configured to code said KZC source data using a parity matrix H of size (MZcxNZc), said parity matrix H being obtained from a base matrix BG' of size M x N, by replacing each element of said base matrix BG' with an expansion matrix of size Zc XZ, said base matrix BG' being expressed in the form: with : Has a kernel matrix of size J x K B a matrix having at least one diagonal of size J x J C an extension matrix of size (M - J) x K From an extension matrix of size (M -J)x J 0 a zero matrix of size (N -K -J) x J I an identity matrix of size (M -J) X (N - K - J) said extension matrix C comprising at least two blocks of L rows and at least one block of L columns, with L an integer between 1 and K-ï, each block of L rows comprising at least one matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size L x L, with a an integer between 0 and L - 1, said at least one block of L columns comprising at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size LxL,

14. Method for decoding at least one code word of size NZC formed from KZ, source data and MZC redundancy data, N = K + M, with Zc an integer expansion factor, Z, 2: 1, said method implementing a step of decoding (56) said at least one code word of size NZC using a detailed parity matrix H (MZcxNZc), characterized in that said parity matrix H is obtained (55) from a base matrix BG' of size M x N, by replacing each element of said base matrix BG' by an expansion matrix of size Zc X Zc, said base matrix BG' being expressed in the form: with : Has a kernel matrix of size J x K B a matrix having at least one diagonal of size J x J C an extension matrix of size (M - J) x K From an extension matrix of size (M - J) x J 0 a zero matrix of size (N - K - J) x J / an identity matrix of size ( M - J} x { ​​N - K - J ) and in that said extension matrix C comprises at least two blocks of L rows and at least one block of L columns, with L an integer between 1 and K - 1, each block of L rows comprising at least one matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size L x L, with a an integer between 0 and L - 1, said at least one block of L columns comprising at least two matrices [L obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size L x L.

15. Method according to claim 14, characterized in that said decoding step implements a decoding of a parity equation obtained from the last line of said parity matrix H, then of a parity equation obtained from the previous line of said parity matrix H, going up line by line to the first line of the parity matrix H.

16. Device for decoding at least one code word of size NZC formed from KZC source data and MZC redundancy data, N = K + M , with Zc an integer expansion factor, Zc > 1, comprising at least one processing unit configured to decode said at least one code word of size NZC using a parity matrix H of size ( MZC x NZC ), said parity matrix H being obtained from a base matrix BG ' of size M x N, by replacing each element of said base matrix BG ' with an expansion matrix of size Zc x Zc,said basic matrix BG ' being expressed in the form: [AB 01 BG =lc DZJ with: A a kernel matrix of size J *KB a matrix having at least one diagonal of size JXJC an extension matrix of size (M -J) x KD an extension matrix of size (M - J) XJ 0 a zero matrix of size (N - K - J) x J / an identity matrix of size (M - J) x (N - K - J ) said extension matrix C comprising at least two blocks of L rows and at least one block of L columns, with f an integer between let^-1, each block of L rows comprising at least one matrix obtained by applying a circular rotation coefficient a to a diagonal matrix of size LXL, with a an integer between 0 and L - 1, said at least one block of I columns comprising at least two matrices obtained by applying a distinct circular rotation coefficient a to said diagonal matrix of size Lx L.,

17. Computer program comprising instructions for implementing implementation of a method according to any one of claims 1 to 12, 14 or 15 when this program is executed by a processor.