EP4702672A1 - Conception de matrices de base pour les codes ldpc quasi-cycliques - Google Patents
Conception de matrices de base pour les codes ldpc quasi-cycliquesInfo
- Publication number
- EP4702672A1 EP4702672A1 EP24720250.0A EP24720250A EP4702672A1 EP 4702672 A1 EP4702672 A1 EP 4702672A1 EP 24720250 A EP24720250 A EP 24720250A EP 4702672 A1 EP4702672 A1 EP 4702672A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- matrix
- size
- extension
- rows
- zero
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/033—Theoretical methods to calculate these checking codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1185—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
- H03M13/1188—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
Definitions
- the field of the invention is that of digital communications. More specifically, the invention relates to error-correcting codes, in particular, but not exclusively, error-correcting codes of the LDPC (Low Density Parity Check) type.
- 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). 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.).
- Prior art Figure 1 illustrates a transmitter of a digital transmission chain.
- Such a transmitter uses conventional signal processing modules.
- the source data 11 for example binary data 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 data (for example voice), flow control type data whether video or audio or other, or from a sensor, an actuator, etc.
- a channel coding block 12 to introduce redundancy.
- the coded data are then interleaved in an interleaving block 13 to mix the coded data.
- a mapping block 14 makes it possible to convert the coded data into constellation points (BPSK, QPSK, 16QAM, etc.).
- the associated symbols are framed 15 and modulated in a single-carrier or multi-carrier modulation block 16, for example of the OFDM (“Orthogonal Frequency-Division Multiplexing”) type.
- OFDM Orthogonal Frequency-Division Multiplexing
- error-correcting codes in the channel 12 coding block.
- LDPC codes, turbo codes, polar codes, or Reed-Salomon codes offer good performance in terms of error correction.
- Turbo codes have been chosen in particular for the 4G mobile telephony standard, and LDPC for the 5G mobile telephony standard. Below, we will recall the main characteristics of LDPC codes, as defined in the 5G standard in particular.
- LDPC codes are defined by three parameters ⁇ , ⁇ and ⁇ : - ⁇ corresponds to the size of the source data, for example in number of useful bits if we consider binary data, - ⁇ corresponds to the size of the redundancy data, for example in number of redundancy bits if we consider binary data, and - ⁇ corresponds to the size of the data coming from the LDPC encoder, for example in number of useful and redundancy bits.
- An LDPC code can in particular be defined by a parity matrix ⁇ , which gives the parity relations between the source data and the redundancy data.
- parity matrix ⁇ An example of a parity matrix ⁇ is given in Figure 2.
- the values equal to "1" in the parity matrix ⁇ correspond to the connections (parity equation) between the useful data and the redundancy data.
- the 3GPP standardization consortium defined two basic structures or matrices BG1 and BG2 ("Base Graph" in English) allowing to construct 104 parity matrices ⁇ (52 matrices constructed from the basic matrix BG1 and 52 matrices constructed from the basic matrix BG2).
- the parity matrices ⁇ are obtained from the basis matrices BG1 or BG2, from an expansion factor ⁇ and from a circular rotation of a diagonal matrix. Such a construction is known as "Protograph". According to this technique, a parity matrix ⁇ of size ⁇ . ⁇ ⁇ ⁇ .
- ⁇ is obtained by replacing each non-zero element of the base matrix BG1 or BG2 by a diagonal matrix of size ⁇ ⁇ ⁇ to which a circular rotation V has been applied (which is not necessarily the same for all non-zero elements of the base matrix).
- the base matrix BG1 is mainly used for high coding rates and large sizes of the source data.
- These two base matrices are notably designed to cover the different uses of 5G which may require high throughput and/or high reliability (robustness).
- the basic matrix BG1 or BG2 used to construct the parity matrix ⁇ of a 5G LDPC code can be represented as six sub-matrices ⁇ , ⁇ , 0, ⁇ , ⁇ and ⁇ , as described in the paper “High Area-Efficient Parallel Encoder with compatible architecture for 5G LDPC codes”, Y.
- the method according to the invention implements a step of encoding said ⁇ . ⁇ source data using a parity matrix ⁇ of size ( ⁇ . ⁇ ⁇ ⁇ . ⁇ ) obtained from a base matrix ⁇ ⁇ ' of size ⁇ ⁇ ⁇ , by replacing each element of said base matrix ⁇ ⁇ ' by an expansion matrix of size ⁇ ⁇ ⁇ , said base matrix ⁇ ⁇ ' being expressed in the form: with : ⁇ a kernel matrix of size ⁇ ⁇ ⁇ ⁇ a matrix having at least one double diagonal of size ⁇ ⁇ ⁇ ⁇ an extension matrix of size ( ⁇ ⁇ ) ⁇ ⁇ ⁇ ⁇ an extension matrix of size ( ⁇ ⁇ ⁇ ) ⁇ 0 a zero matrix of size ( ⁇ ⁇ ⁇ ⁇ ) ⁇ ⁇ ⁇ an identity matrix of size ( ⁇ ⁇ ⁇ ) ⁇ ( ⁇ ⁇ ⁇ ⁇ ) .
- said extension matrix ⁇ comprises at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix.
- the extension matrix ⁇ comprises at least two blocks of ⁇ 1 rows each comprising a diagonal matrix of size ⁇ 1 ⁇ ⁇ 1, and preferably a single diagonal matrix of size ⁇ 1 ⁇ ⁇ 1.
- the greater the number of connections i.e. non-zero elements in the base matrix, and consequently in the parity matrix ⁇
- the greater the complexity of the decoder will be. According to one embodiment, it is therefore sought to achieve a compromise between the number of connections and the decoding performance.
- the use of diagonal matrices thus makes it possible to distribute the non-zero elements of the extension matrix ⁇ over the different rows and/or columns of the extension matrix ⁇ .
- the proposed solution seeks in particular to improve the performance of the error-correcting codes, in particular of the LDPC decoder, by reducing the number of iterations of the decoder and therefore the energy consumption.
- the coded data (code word formed of the ⁇ . ⁇ source data and ⁇ .
- ⁇ redundancy data can be stored in a memory and/or transmitted from a transmitter to a receiver, via a transmission channel.
- the number of rows of the matrices ⁇ and ⁇ depends on the value of ⁇ , the basic efficiency (1/5 for BG2) and the number of punctured columns.
- ⁇ ⁇ + ⁇
- the efficiency ⁇ ⁇ / ⁇ .
- said extension matrix ⁇ comprises at least two blocks of lines, each comprising the same number of lines, each block of lines comprising a diagonal matrix.
- ⁇ 2 4 regardless of the value of ⁇ .
- the use of diagonal matrices makes it possible to distribute the non-zero elements of the extension matrix ⁇ over the different rows and/or columns of the extension matrix ⁇ .
- the number of non-zero elements per column and/or per row relative to the total number of elements per column and/or per row in said kernel matrix ⁇ , excluding the first two columns, is between 50 and 100%.
- the number of non-zero elements per column and/or per row relative to the total number of elements per column and/or per row in said kernel matrix ⁇ , excluding the first two columns, is between 75 and 100%.
- the kernel matrix ⁇ thus has many connections per row and/or per column, relative to the rest of the matrix ⁇ ⁇ ', which makes it possible to find the source data during decoding.
- the kernel matrix ⁇ has for example of the order of 3 ⁇ /4 non-zero elements per row.
- the first two columns of the kernel matrix ⁇ and/or of said extension matrix ⁇ comprise an alternation of non-zero elements and zero elements per row and per column.
- the matrices ⁇ , ⁇ and ⁇ have a nested structure according to the value of ⁇ .
- It is formed by the kernel matrix ⁇ ( ⁇ 9 ) to which a column is added.
- a coding device also called an encoder, is in particular suitable for implementing the coding method described above.
- 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.
- the invention also relates to a computer-readable information medium, and comprising instructions of a computer program as mentioned above. 4.
- - figure 1 illustrates a transmitter of a conventional digital transmission chain
- - figure 2 presents an example of a parity matrix ⁇ for an LDPC code
- - figure 3 illustrates selection criteria for the basic matrix BG1 or BG2
- - figure 4 illustrates the decomposition of the basic matrix BG1 or BG2 into sub-matrices
- - Figure 5 presents the main steps implemented by a coding method according to an embodiment of the invention
- - Figures 6A and 6B illustrate the structure of the matrix BG1
- - Figures 7A and 7B illustrate the concept of cycle
- - Figures 8 to 13D show different structures of the matrices ⁇ , ⁇ and/or ⁇ making it possible to optimize the basic matrix ⁇ ⁇ ' according to an embodiment of the invention
- - Figure 14 shows the simplified structure of an encoder
- Such a basic matrix ⁇ ⁇ ' can be decomposed into six sub-matrices ⁇ , ⁇ , 0, ⁇ , ⁇ , ⁇ , and expressed in the form: with: ⁇ a kernel matrix of size ⁇ ⁇ ⁇ ⁇ a matrix having at least one double diagonal of size ⁇ ⁇ ⁇ ⁇ an extension matrix of size ( ⁇ ⁇ ) ⁇ ⁇ ⁇ ⁇ an extension matrix of size ( ⁇ ⁇ ⁇ ) ⁇ 0 a zero matrix of size ( ⁇ ⁇ ⁇ ⁇ ⁇ ) ⁇ ⁇ ⁇ an identity matrix of size ( ⁇ ⁇ ⁇ ) ⁇ ( ⁇ ⁇ ⁇ ⁇ ⁇ )
- the extension matrix ⁇ has a particular structure and comprises at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix, and preferably only one full diagonal matrix.
- a parity matrix ⁇ is obtained from the base matrix ⁇ ⁇ '.
- each element of the base matrix ⁇ ⁇ ' is replaced by an expansion matrix of size ⁇ ⁇ ⁇ , with ⁇ an integer expansion factor, ⁇ ⁇ 1. More precisely, each zero element of the base matrix ⁇ ⁇ ' is replaced by a zero matrix of size ⁇ ⁇ ⁇ , and each non-zero element of the base matrix ⁇ ⁇ ' is replaced by a circular permutation matrix, obtained by applying a circular rotation ⁇ ⁇ to an identity matrix of size ⁇ ⁇ ⁇ .
- at least one block of ⁇ . ⁇ source data is encoded using the parity matrix ⁇ of size ( ⁇ .
- ⁇ ⁇ ⁇ . ⁇ ⁇ + ⁇ .
- a code word may in particular be stored in a memory of the encoder or transmitted by a transmitter to a receiver.
- the number of non-zero elements per column in said core matrix ⁇ and said extension matrix ⁇ , excluding the first two columns, is between ⁇ ⁇ 3 and ⁇ + 3, with ⁇ an integer.
- the number of non-zero elements per row in said extension matrix ⁇ and said extension matrix ⁇ , excluding the first two columns, is between ⁇ ⁇ 2 and ⁇ + 2, with ⁇ an integer.
- ⁇ is between 7 and 10
- the number of non-zero elements per column in the matrix formed by the kernel matrix ⁇ and the extension matrix ⁇ is between 4 and 13, for example between 7 and 8.
- the number of non-zero elements per column in the extension matrix ⁇ is between 2 and 8, for example equal to 4 or 5.
- the number of non-zero elements per column in said kernel matrix ⁇ is between 2 and 4, for example equal to 3.
- ⁇ is between 2 and 4, and the number of non-zero elements per row in the matrix formed by the extension matrix ⁇ (excluding the first two columns) and the extension matrix ⁇ is between 0 and 6, for example equal to 2. According to another example, the number of non-zero elements per row in the extension matrix ⁇ (excluding the first two columns) is equal to 1. According to yet another example, the number of non-zero elements per row in the extension matrix ⁇ is equal to 1.
- the basis matrix ⁇ ⁇ ' has a size identical to the basis matrix BG2, and can be used in any system using the 5G standard.
- 5.2 Basic matrix BG1 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 138212 V15.2.0, formed of the matrices ⁇ , ⁇ , ⁇ and ⁇ . The submatrices ⁇ and ⁇ are omitted for simplification.
- 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 Figure 6A.
- the first column of matrices ⁇ and ⁇ has 30 connections
- the second column has 28 connections
- the third column has 7 connections, etc.
- the first column of matrices ⁇ and ⁇ has 12 connections
- the second column has 5 connections, etc.
- the first four rows of matrices ⁇ and ⁇ each have 19 connections.
- the first row of matrices ⁇ and ⁇ has 2 connections
- the second row has 7 connections, etc. If we ignore the null matrices ⁇ and identity ⁇ , 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.
- the kernel matrix ⁇ has, in proportion, many connections, i.e. many non-zero elements, because it is the kernel of the BG1 matrix. This allows the decoder, on reception, to find this data.
- the first two columns of the BG1 matrix which correspond to the untransmitted data, also have many "1s".
- the upper part of the BG1 matrix also has more connections than its lower part, which guarantees good performance for high throughputs. Indeed, the lower part of the BG1 matrix can be punctured to obtain the desired throughput. It is therefore preferable to choose the connections in the upper part of the BG1 matrix.
- the parity matrix ⁇ is constructed by replacing each non-zero element of the BG1 matrix with an identity matrix of size ⁇ ⁇ ⁇ , and applying a circular rotation ⁇ according to the factors illustrated in Figure 6B.
- 5.3 Basic matrix BG2 Similarly, ETSI TS 138212 V15.2.0 describes the structure of the basic matrix BG2, which can be decomposed into sub-matrices ⁇ , ⁇ , ⁇ , ⁇ , ⁇ and ⁇ . The sub-matrices ⁇ and ⁇ are omitted hereinafter for the sake of simplification.
- Basic matrix ⁇ ⁇ ' The position of the connections in the basic matrix BG2, as well as the rotation factors to be used, are specified in the 5G 3GPP standard.
- ⁇ ⁇ ' seeking to reduce the complexity of the decoding.
- New structures of the connections are thus proposed, according to different embodiments of the invention. According to the embodiment considered, such structures are efficient and/or easy to reproduce depending on the dimensions of the parity matrix ⁇ .
- the structure of the basic matrix ⁇ ⁇ ' is defined so as to have a low disparity in the number of connections per line and/or per column.
- 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 line, and especially in column, is substantially constant or equally distributed.
- the structure of the basic matrix ⁇ ⁇ ' is 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, particularly LDPC codes, especially for small ⁇ values, for example of the order of 256 bits or less.
- the first two columns of the kernel matrix ⁇ and/or the extension matrix ⁇ include alternating nonzero elements and zero elements per row and per column. In other words, the connections are distributed in a staggered manner, as illustrated in Figure 9.
- the extension matrix ⁇ is generally the largest in terms of its dimension.
- the connections in the extension matrix ⁇ are distributed on diagonals to ensure a good distribution of the connections. In particular, the connections are distributed to have one connection per row and one connection per column for a block of rows.
- the extension matrix ⁇ therefore comprises at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix.
- One or more rows of zero elements may be interspersed between two row blocks. For example, four rows of zero elements are present between two blocks of rows comprising a diagonal matrix.
- One or more rows of zero elements may be intercalated between two blocks of rows.
- two rows of zero elements are present between two blocks of rows comprising a diagonal matrix.
- the extension matrix ⁇ may comprise at least two blocks of rows, each comprising the same number of rows, each block of rows comprising a diagonal matrix. The connections in the ⁇ extension matrix can thus be equally distributed on diagonals to ensure a good distribution of the connections.
- the blocks of rows are consecutive, i.e. no row of zero or non-zero elements is intercalated between two blocks of rows.
- the row blocks are consecutive, i.e. no row of zero or non-zero elements is interspersed between two row blocks. In particular, all the row blocks have an identical size.
- the number of connections per row is equal to 1 (if we consider a row of zero elements in the extension matrix ⁇ ) or 2.
- the matrices ⁇ , ⁇ and ⁇ have a nested structure according to the value of ⁇ .
- Such a structure is in particular compatible with the 5G standard.
- the number of non-zero elements per row, excluding the first two columns, is between ⁇ ⁇ 2 and ⁇ + 2, with ⁇ an integer. If we consider the context of 5G, ⁇ is for example between 2 and 4. 5.4.4 Global optimization of the basic matrix BG'
- the extension matrices ⁇ (excluding the first two columns) and continuation matrices ⁇ are optimized to reduce short cycles.
- short cycles may remain. Short cycles can for example result from the structure proposed for the kernel matrix ⁇ or for the first two columns of the spreading matrix ⁇ .
- five rotation factors denoted V0 to V4 are chosen.
- a different number of rotation factors can be chosen, which leads to a different structure for the matrices ⁇ , ⁇ , ⁇ and ⁇ .
- the matrices ⁇ , ⁇ and ⁇ have a nested structure depending on the value of ⁇ .
- the number of non-zero elements per column in the matrix formed by the kernel matrix ⁇ and the extension matrix ⁇ is between 6 and 12, depending on the value of ⁇ , and the number of non-zero elements per row in the matrix formed by the extension matrix ⁇ and the extension matrix ⁇ is between 1 and 2.
- the number of connections per row and/or per column is therefore fairly homogeneous.
- a parity matrix ⁇ From the base matrix BG' thus obtained, it is possible to obtain a parity matrix ⁇ , by replacing each empty or null element of the base matrix ⁇ ⁇ ' by a null matrix of size ⁇ ⁇ ⁇ , and each non-null element of the base matrix ⁇ ⁇ ' by a circular permutation matrix obtained by applying a circular rotation ⁇ ⁇ to an identity matrix of size ⁇ ⁇ ⁇ , ⁇ ⁇ ⁇ 0,1, ... ⁇ .
- the parity matrix ⁇ thus obtained can be used by an encoder to encode at least one block of ⁇ . ⁇ source data.
- an encoder comprises at least one memory 141, at least one processing unit 142, equipped for example with a programmable computing machine or a dedicated computing machine, for example a processor P, and controlled by the computer program 143, implementing steps of the coding method according to at least one embodiment of the invention.
- the code instructions of the computer program 143 are for example loaded into a RAM memory before being executed by the processor of the processing unit 142.
- the processor of the processing unit 142 implements steps of the coding method described above, according to the instructions of the computer program 143, to code the ⁇ . ⁇ source data using a parity matrix ⁇ of size ( ⁇ . ⁇ ⁇ ⁇ . ⁇ ) , and deliver at least one code word of size ⁇ . ⁇ formed from the ⁇ . ⁇ source data and ⁇ . ⁇ redundancy data.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Error Detection And Correction (AREA)
Abstract
L'invention concerne un procédé de codage d'au moins un bloc de K. Z données source, délivrant au moins un mot de code de taille N. Z, avec Z un facteur d'expansion entier, Z ≥ 1, ledit procédé mettant en œuvre une étape de codage (53) desdites K. Z données source en utilisant une matrice de parité H de taille (M. Z x N. Z). Selon l'invention, ladite matrice de parité H est obtenue (52) à partir d'une matrice de base modifiée BG' de taille M x N, en remplaçant chaque élément de ladite matrice de base modifiée BG' par une matrice d'expansion de taille Z x Z, ladite matrice de base modifiée BG' s'exprimant sous la forme (I). Ladite matrice d'extension C comprend au moins deux blocs de lignes, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale.
Description
DESCRIPTION Titre : Procédé de codage de données source, dispositif de codage et programme d’ordinateur correspondants. 1. Domaine de l’invention Le domaine de l’invention est celui des communications numériques. Plus précisément, l’invention concerne les codes correcteurs d’erreurs, notamment, mais non exclusivement, les codes correcteurs d’erreurs de type LDPC (en anglais « Low Density Parity Check »). L’invention trouve notamment des applications dans le domaine du stockage ou de la transmission de données, par exemple via des communications sans fil (par exemple par ondes radio ou ondes optiques non guidées) ou filaire (par exemple par fibre optique ou câble électrique). En particulier, l’invention trouve des applications dans tous les domaines où l’on cherche à offrir une bonne fiabilité de transmission, par exemple pour les transmissions radio (Wifi®, 5G, 6G …). 2. Art antérieur La figure 1 illustre un émetteur d’une chaine de transmission numérique. Un tel émetteur utilise des modules classiques de traitement du signal. Ainsi, les données source 11, par exemple des données binaires provenant d’une source génératrice de données de type vidéo (par exemple une source d’images animées, d’images de réalité virtuelle ou augmentée, une source de séquence d’images), de type audio (par exemple la voix), de type de contrôle des flux qu’ils soient de type vidéo ou audio ou autre, ou provenant d’un capteur, d’un actionneur, etc, sont codées dans un bloc de codage canal 12 pour introduire de la redondance. Les données codées sont ensuite entrelacées dans un bloc d’entrelacement 13 pour mélanger les données codées. Un bloc de mapping 14 permet de convertir les données codées en point de constellation (BPSK, QPSK, 16QAM, etc). Les symboles associés sont mis en trame 15 et modulés dans un bloc de modulation 16 monoporteuse ou multiporteuse, par exemple de type OFDM (« Orthogonal Frequency- Division Multiplexing »). Afin d’améliorer la robustesse des communications via un canal de communication, il est connu d’utiliser des codes correcteurs d’erreurs dans le bloc de codage canal 12. Par exemple, les codes LDPC, les turbo-codes, les codes polaires, ou encore les codes Reed-Salomon offrent de bonnes performances en termes de correction d’erreurs. Les turbo-codes ont notamment été retenus pour la norme de téléphonie mobile 4G, et les LDPC pour la norme de téléphonie mobile 5G. On s’attache ci-après à rappeler les principales caractéristiques des codes LDPC, telles que définies dans la norme 5G notamment.
Classiquement, les codes LDPC sont définis par trois paramètres ^^^^, ^^^^ et ^^^^ : - ^^^^ correspond à la taille des données source, par exemple en nombre de bits utiles si l’on considère des données binaires, - ^^^^ correspond à la taille des données de redondance, par exemple en nombre de bits de redondance si l’on considère des données binaires, et - ^^^^ correspond à la taille des données issues du codeur LDPC, par exemple en nombre de bits utiles et de redondance. Le rendement de codage est classiquement donné par ^^^^ = ^^^^/ ^^^^, avec la relation ^^^^ = ^^^^ + ^^^^. Un code LDPC peut notamment être défini par une matrice de parité ^^^^, qui donne les relations de parité entre les données source et les données de redondance. Un exemple de matrice de parité ^^^^ est donné en figure 2. Les valeurs égales à « 1 » dans la matrice de parité ^^^^ correspondent aux connexions (équation de parité) entre les données utiles et les données de redondance. Plus le nombre de connexions (i.e. de « 1 » dans la matrice de parité ^^^^) est important, plus la complexité du décodeur sera importante. A titre illustratif, suivant l’exemple de la matrice de parité ^^^^ de la figure 2, l’équation de parité de la première ligne donne la première donnée de redondance ^^^^(0) : ^^^^(0) = ^^^^(0) ^ ^^^^(1) ^ ^^^^(2) ^ ^^^^(3) ^ ^^^^(4) ^ ^^^^(6) ^ ^^^^(7) ^ ^^^^(9) ^ ^^^^(10) ^ ^^^^(11) ^ ^^^^(12) ^ ^^^^(13) avec : ^^^^( ^^^^) = 0 ou 1, et ^ l’opération « ou exclusif ». Dans le document ETSI TS 138 212 V15.2.0, le consortium de normalisation 3GPP a défini deux structures ou matrices de base BG1 et BG2 (« Base Graph » en anglais) permettant de construire 104 matrices de parité ^^^^ (52 matrices construites à partir de la matrice de base BG1 et 52 matrices construites à partir de la matrice de base BG2). Par exemple, pour la 5G, la taille des matrices de base BG1 et BG2 est : - BG1 : ^^^^ = 22, ^^^^ = 46, ^^^^ = 68 - BG2 : soit ^^^^ = 6, ^^^^ = 26, ^^^^ = 32, soit ^^^^ = 8, ^^^^ = 34, ^^^^ = 42, soit ^^^^ = 9, ^^^^ = 38, ^^^^ = 47, soit ^^^^ = 10, ^^^^ = 42, ^^^^ = 52. Les matrices de parité ^^^^ sont obtenues à partir des matrices de base BG1 ou BG2, à partir d’un facteur d’expansion ^^^^ et d’une rotation circulaire d’une matrice diagonale. Une telle construction est connue sous le nom « Protograph ». Selon cette technique, une matrice de parité ^^^^ de taille ^^^^. ^^^^ × ^^^^. ^^^^ est obtenue en remplaçant chaque élément non nul de la matrice de base BG1 ou BG2 par une matrice diagonale de taille ^^^^ × ^^^^ à laquelle
on a appliqué une rotation circulaire V (qui n’est pas nécessairement la même pour tous les éléments non nuls de la matrice de base). Un avantage de cette famille de codeur LDPC est d’obtenir facilement l’ensemble des matrices de parité ^^^^ tout en limitant l’utilisation de la mémoire. Par exemple, pour un facteur d’expansion ^^^^ = 8 et une rotation circulaire ^^^^ = 2, un élément non nul de la matrice de base BG1 ou BG2 est remplacé par la matrice suivante : é0 0 1 0 0 0 0 0 0 0 0 0 0 0 ù ê 1 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û Selon le document ETSI TS 138212 V15.2.0, pour chaque matrice de base BG1 ou BG2, il est ainsi possible de construire 52 matrices, classées en huit sous-familles selon la valeur du facteur d’expansion ^^^^ (compris entre 2 et 384), selon l’index « ils » : Index ils Facteur d’expansion Z 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 Ainsi, il est possible de coder des blocs de données source de taille ^^^^. ^^^^, allant de 12 bits (à partir de la matrice de base BG2 avec ^^^^ = 6 et le facteur d’expansion minimal ^^^^ = 2) à 8448 bits (à partir de la matrice de base BG1 avec ^^^^ = 22 et le facteur d’expansion maximal ^^^^ = 384). Le choix entre l’utilisation de la matrice de base BG1 ou BG2 s’effectue en fonction de la taille des données source à coder ^^^^. ^^^^ et du rendement de codage ^^^^ souhaité. Ainsi, comme illustré en figure 3, la matrice de base BG1 est principalement utilisée pour les rendements de codage élevés et les tailles importantes des données source. Ces deux matrices de base sont notamment conçues pour couvrir les différents usages de la 5G qui peuvent nécessiter un haut débit et/ou une grande fiabilité (robustesse). Par ailleurs, selon la norme 5G, les deux premières colonnes de la matrice de base BG1 ou BG2 sont supprimées avant transmission, ce qui induit que les rendements de base sont respectivement ^^^^ ^^^^ ^^^^1 =
^^^^/( ^^^^ − 2) = 22/66 = 1/3 et ^^^^ ^^^^ ^^^^2 = 10/50 = 1/5. On note par ailleurs que les matrices de base BG1 ou BG2 utilisées pour construire la matrice de parité ^^^^ d’un code LDPC selon la norme 5G peuvent être représentées sous la forme de six sous-matrices ^^^^, ^^^^, 0, ^^^^, ^^^^ et ^^^^, comme décrit dans le document « High Area-Efficient Parallel Encoder with compatible architecture for 5G LDPC codes », Y. Zhu et al., et illustré en figure 4 :
avec : ^^^^ une matrice noyau ou Kernel de taille 4 × ^^^^ ^^^^ une matrice présentant au moins une double diagonale de taille 4 × 4 ^^^^ une matrice d’extension de taille ( ^^^^− 4) × ^^^^ ^^^^ une matrice de prolongement de taille ( ^^^^ − 4) × 4 0 une matrice nulle de taille ( ^^^^ − ^^^^ − 4) × 4 ^^^^ une matrice identité de taille ( ^^^^ − 4 ) × ( ^^^^ − ^^^^ − 4 ) . Bien que les codes LDPC soient reconnus pour leur capacité à garantir des transmissions à haut débit, notamment grâce à la possibilité de paralléliser les opérations au niveau du décodeur, un inconvénient de ces codes est la complexité liée au décodage. En effet, plus le nombre d’itérations de décodage est important, plus le nombre d’opérations à effectuer en réception est important et consommateur en termes de ressources. Le bloc de décodage peut ainsi utiliser jusqu’à 90% des ressources du récepteur. Il peut être considéré comme la partie la plus énergivore de la couche physique, en particulier pour la 5G. Il existe donc un besoin pour une nouvelle technique de codage cherchant à réduire la consommation en énergie du décodeur. 3. Exposé de l’invention L’invention propose une solution nouvelle sous la forme d’un procédé de codage d’au moins un bloc de ^^^^. ^^^^ données source, délivrant au moins un mot de code de taille ^^^^. ^^^^ formé des ^^^^. ^^^^ données source et de ^^^^. ^^^^ données de redondance, ^^^^ = ^^^^ + ^^^^, avec ^^^^ un facteur d’expansion entier, ^^^^ ≥ 1. Le procédé selon l’invention met en œuvre une étape de codage desdites ^^^^. ^^^^ données source en utilisant une matrice de parité ^^^^ de taille ( ^^^^. ^^^^ × ^^^^. ^^^^) obtenue à partir d’une matrice de base ^^^^ ^^^^’ de taille ^^^^ × ^^^^, en remplaçant chaque élément de ladite matrice de base ^^^^ ^^^^’ par une matrice d’expansion de taille ^^^^ × ^^^^, ladite matrice de base ^^^^ ^^^^’ s’exprimant sous la forme :
avec :
^^^^ une matrice noyau de taille ^^^^ × ^^^^ ^^^^ une matrice présentant au moins une double diagonale de taille ^^^^ × ^^^^ ^^^^ une matrice d’extension de taille ( ^^^^− ^^^^) × ^^^^ ^^^^ une matrice de prolongement de taille ( ^^^^ − ^^^^) × ^^^^ 0 une matrice nulle de taille ( ^^^^ − ^^^^ − ^^^^) × ^^^^ ^^^^ une matrice identité de taille ( ^^^^ − ^^^^ ) × ( ^^^^ − ^^^^ − ^^^^ ) . Selon l’invention, ladite matrice d’extension ^^^^ comprend au moins deux blocs de lignes, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale. En d’autres termes, la matrice d’extension ^^^^ comprend au moins deux blocs de ^^^^1 lignes comprenant chacun une matrice diagonale de taille ^^^^1 × ^^^^1, et de préférence une unique matrice diagonale de taille ^^^^1 × ^^^^1. Par exemple, ^^^^1 = 4 si ^^^^ = 6, ^^^^1 = 6 si ^^^^ = 8, ^^^^1 = 7 si ^^^^ = 9, ^^^^1 = 8 si ^^^^ = 10 En choisissant la taille des diagonales, il est possible de faire varier le nombre de connexions par ligne, et notamment de n’avoir qu’une seule connexion par ligne pour la matrice d’extension ^^^^, hors les deux premières colonnes. On rappelle à cet effet que plus le nombre de connexions (i.e. d’éléments non nuls dans la matrice de base, et par suite dans la matrice de parité ^^^^) est important, plus la complexité du décodeur sera importante. On cherche donc selon un mode de réalisation à réaliser un compromis entre le nombre de connexions et les performances de décodage. L’utilisation de matrices diagonales permet ainsi de répartir les éléments non nuls de la matrice d’extension ^^^^ sur les différentes lignes et/ou colonnes de la matrice d’extension ^^^^. La solution proposée cherche notamment à améliorer les performances des codes correcteurs d’erreurs, notamment du décodeur LDPC, en diminuant le nombre d’itérations du décodeur et donc la consommation d’énergie. En particulier, les données codées (mot de code formé des ^^^^. ^^^^ données source et ^^^^. ^^^^ données de redondance) peuvent être stockées dans une mémoire et/ou transmises d’un émetteur vers un récepteur, via un canal de transmission. En particulier, le nombre de lignes des matrices ^^^^ et ^^^^ dépend de la valeur de ^^^^, du rendement de base (1/5 pour BG2) et du nombre de colonnes poinçonnées. Dans le cas général, ^^^^ = ^^^^ + ^^^^ et le rendement ^^^^ = ^^^^/ ^^^^. Pour la 5G, le rendement ^^^^ = ^^^^/( ^^^^ − 2) avec les deux premières colonnes poinçonnées. Si ^^^^ = 6, ^^^^ = 4 × ^^^^ + 2 et ^^^^ = 5 × ^^^^ + 2.
Il est ainsi possible de calculer la taille des matrices ^^^^ et ^^^^ : si la matrice noyau ^^^^ a une taille de ^^^^ × ^^^^, alors la taille de la matrice d’extension ^^^^ est ( ^^^^ − ^^^^) × ^^^^ et la taille de la matrice de prolongement est ( ^^^^ − ^^^^) × ^^^^. Pour la 5G, ^^^^ = 4. Selon un mode de réalisation particulier, ladite matrice de prolongement ^^^^ comprend au moins deux blocs de lignes, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale. En d’autres termes, la matrice de prolongement ^^^^ comprend au moins deux blocs de ^^^^2 lignes comprenant chacun une matrice diagonale de taille ^^^^2 × ^^^^2, avec ^^^^1 = ^^^^2 ou ^^^^1 ≠ ^^^^2, et de préférence une unique matrice diagonale de taille ^^^^2 × ^^^^2. Par exemple, ^^^^2 = 4 quelle que soit la valeur de ^^^^. L’utilisation de matrices diagonales permet de répartir les éléments non nuls de la matrice de prolongement ^^^^ sur les différentes lignes et/ou colonnes de la matrice de prolongement ^^^^. Selon un mode de réalisation particulier, le nombre d’éléments non nuls par colonne et/ou par ligne par rapport au nombre total d’éléments par colonne et/ou par ligne dans ladite matrice noyau ^^^^, hors les deux premières colonnes, est compris entre 50 et 100%. En particulier, le nombre d’éléments non nuls par colonne et/ou par ligne par rapport au nombre total d’éléments par colonne et/ou par ligne dans ladite matrice noyau ^^^^, hors les deux premières colonnes, est compris entre 75 et 100%. La matrice noyau ^^^^ présente ainsi beaucoup de connexions par ligne et/ou par colonne, par rapport au reste de la matrice ^^^^ ^^^^’, ce qui permet de retrouver les données source au décodage. Pour la norme 5G, la matrice noyau ^^^^ présente par exemple de l’ordre de 3 ^^^^/4 éléments non nuls par ligne. Selon un mode de réalisation particulier, les deux premières colonnes de la matrice noyau ^^^^ et/ou de ladite matrice d’extension ^^^^ comprennent une alternance d’éléments non nuls et d’éléments nuls par ligne et par colonne. On cherche ainsi une répartition équitable des connexions dans les deux premières colonnes de la matrice noyau ^^^^ et/ou de ladite matrice d’extension ^^^^ avec une structure en quinconce. Comme indiqué en préambule, ces deux premières colonnes peuvent ne pas être transmises, notamment en 5G. Selon un mode de réalisation particulier ^^^^ = 4, et - ^^^^ = 6 et ^^^^ = 26, ou - ^^^^ = 8 et ^^^^ = 34, ou - ^^^^ = 9 et ^^^^ = 38 ou - ^^^^ = 10 et ^^^^ = 42.
La matrice de base ^^^^ ^^^^’ présente ainsi un format similaire à la matrice BG2 avec une décomposition en six sous-matrices ( ^^^^, ^^^^, ^^^^, ^^^^, 0 et ^^^^) et une taille identique à la matrice de base BG2. Elle peut donc être utilisée dans tout système compatible avec la norme 5G. Selon un mode de réalisation particulier, selon la valeur de ^^^^, ladite matrice noyau ^^^^ est égale à : pour K=10 pour K=9 pour K=8 pour K=6 V1 V0 V3 V2 V1 V4 V3 V2 V4 V0 V3 V2 V4 V2 V3 V0 V2 V0 V3 V4 V2 V3 V1 V1 V3 V4 V4 ladite matrice ^^^^ présentant au moins une double diagonale est égale à : V0 V0 V0 V0 V1 V0 V0 V0 V0 ladite matrice d’extension ^^^^ est égale à : pour K=10 pour K=9 pour K=8 pour K=6 V4 V0 V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V1 V2 V2 V0 V1 V1 V2 V4 V3 V1 V4 V2 V0 V0 V1 V1 V2 V4 V3 V2 V2 V3 V0 V4 V1 V0
V4 V1 V0 V2 V2 V3 V0 V4 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 V1 V4 V2 V0 V4 V4 V2 V0 V4 V1 V0 V2 V1 V3 V0 V4 ladite matrice de prolongement ^^^^ est égale à : pour pour pour pour V4 K=10 K=9 K=8 K=6 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1
V2 V0 V1 V2 V3 V1 V2 V3 V4 V1 V2 V3 V4 V2 V3 Les éléments vides des matrices ci-dessus correspondent à des valeurs nulles. Les matrices ^^^^, ^^^^ et ^^^^ présentent une structure imbriquée selon la valeur de ^^^^. Ainsi, pour ^^^^ = 6, la matrice noyau ^^^^( ^^^^ = 6) présente une taille ^^^^ × ^^^^, soit 4 × 6 selon l’exemple présenté. Pour ^^^^ = 8, la matrice noyau ^^^^ ( ^^^^ = 8) présente une taille ^^^^ × ^^^^, soit 4 × 8 selon l’exemple présenté. Elle est formée de la matrice noyau ^^^^( ^^^^ = 6) à laquelle deux colonnes sont ajoutées. Pour ^^^^ = 9, la matrice noyau ^^^^ ( ^^^^ = 9) présente une taille ^^^^ × ^^^^, soit 4 × 9 selon l’exemple présenté. Elle est formée de la matrice noyau ^^^^( ^^^^ = 8) à laquelle une colonne est ajoutée. Pour ^^^^ = 10, la matrice noyau ^^^^ ( ^^^^ = 10) présente une taille ^^^^ × ^^^^, soit 4 × 10 selon l’exemple présenté. Elle est formée de la matrice noyau ^^^^( ^^^^ = 9) à laquelle une colonne est ajoutée. De la même façon, pour ^^^^ = 6, la matrice d’extension ^^^^( ^^^^ = 6) présente une taille ( ^^^^ − ^^^^) × ^^^^, soit 22 × 6 selon l’exemple présenté. Pour ^^^^ = 8, la matrice d’extension ^^^^ ( ^^^^ = 8 ) présente une taille ( ^^^^ − ^^^^) × ^^^^, soit 30 × 8 selon l’exemple présenté. Elle est formée de la matrice d’extension ^^^^( ^^^^ = 6) à laquelle deux colonnes et huit lignes sont ajoutées. Pour ^^^^ = 9, la matrice d’extension ^^^^( ^^^^ = 9) présente une taille ( ^^^^− ^^^^) × ^^^^, soit 34 × 9 selon l’exemple présenté. Elle est formée de la matrice d’extension ^^^^( ^^^^ = 8) à laquelle une colonne et quatre lignes sont ajoutées. Pour ^^^^ = 10, la matrice d’extension ^^^^ ( ^^^^ = 10 ) présente une taille ( ^^^^ − ^^^^ ) × ^^^^, soit 38 × 10 selon l’exemple présenté. Elle est formée de la matrice d’extension ^^^^( ^^^^ = 9) à laquelle une colonne et quatre lignes sont ajoutées. Enfin, pour ^^^^ = 6, la matrice de prolongement ^^^^( ^^^^ = 6) présente une taille ( ^^^^ − ^^^^) × ^^^^, soit 22 × 4 selon l’exemple présenté. Pour ^^^^ = 8, la matrice de prolongement ^^^^( ^^^^ = 8) présente une taille ( ^^^^ − ^^^^) × ^^^^, soit 30 × 4 selon l’exemple présenté. Elle est formée de la matrice de prolongement ^^^^ ( ^^^^ = 6 ) à laquelle huit lignes sont ajoutées. Pour ^^^^ = 9, la matrice de prolongement ^^^^ ( ^^^^ = 9 )
présente une taille ( ^^^^ − ^^^^) × ^^^^, soit 34 × 4 selon l’exemple présenté. Elle est formée de la matrice de prolongement ^^^^( ^^^^ = 8) à laquelle quatre lignes sont ajoutées. Pour ^^^^ = 10, la matrice de prolongement ^^^^ ( ^^^^ = 10 ) présente une taille ( ^^^^ − ^^^^ ) × ^^^^, soit 38 × 4 selon l’exemple présenté. Elle est formée de la matrice de prolongement ^^^^( ^^^^ = 9) laquelle quatre lignes sont ajoutées. Selon ce mode de réalisation : - chaque élément vide ou nul de ladite matrice de base ^^^^ ^^^^’ est remplacé par une matrice nulle de taille ^^^^ × ^^^^, - chaque élément non nul de ladite matrice de base ^^^^ ^^^^’ est remplacé par une matrice de permutation circulaire obtenue en appliquant une rotation circulaire ^^^^ ^^^^ à une matrice identité de taille ^^^^ × ^^^^, telle que : Rotation circulaire ^^^^ ^^^^ si ^^^^ appartient à ^^^^0 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] {2,4,8,16,32,128,256} : ^^^^1 = 1 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^2 = 2 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 6 ^^^^, ^^^^ ∈ [0: 1] et ^^^^ ∈ [0: 63] {3,6,12,24,48,96,192,384} : ^^^^1 = 1 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^2 = 2 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 6 ^^^^, ^^^^ ∈ [0: 63] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^, ^^^^ ∈ [0: 63] {5,10,20,40,80,160,320} : ^^^^1 = 1 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^2 = 2 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 5 ^^^^, ^^^^ ∈ [0: 63] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] {7,14,28,56,112,224} : ^^^^1 = 1 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^2 = 2 + 7 ^^^^, ^^^^ ∈ [0: 31] ^^^^3 = 3 + 7 ^^^^, ^^^^ ∈ [0: 31] ^^^^4 = 4 + 7 ^^^^, ^^^^ ∈ [0: 31] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] {9,18,36,72,144,288} : ^^^^1 = 1 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [ 0: 1 ] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^2 = 2 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 9 ^^^^, ^^^^ ∈ [0: 31] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 31] {11,22,44,88,176,352} : ^^^^1 = 1 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^2 = 2 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] {13,26,52,104,208} : ^^^^1 = 1 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^2 = 2 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15]
si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] {15,30,60,120,240} : ^^^^1 = 1 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^2 = 2 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] avec ^^^^ et ^^^^ des variables aléatoires. Dans un autre mode de réalisation, l’invention concerne un dispositif de codage d’au moins un bloc de ^^^^. ^^^^ données source, délivrant au moins un mot de code de taille ^^^^. ^^^^ formé desdites ^^^^. ^^^^ données source et de ^^^^. ^^^^ données de redondance, ^^^^ = ^^^^ + ^^^^, avec ^^^^ un facteur d’expansion entier, ^^^^ ≥ 1, comprenant au moins une unité de traitement configurée pour coder lesdites ^^^^. ^^^^ données source en utilisant une matrice de parité ^^^^ de taille ( ^^^^. ^^^^ × ^^^^. ^^^^), ladite matrice de parité ^^^^ étant obtenue à partir d’une matrice de base ^^^^ ^^^^’ de taille ^^^^ × ^^^^ telle que décrite précédemment. Un tel dispositif de codage, également appelé codeur, est notamment adaptée à mettre en œuvre le procédé de codage décrit précédemment. Il pourra bien sûr comporter les différentes caractéristiques relatives au procédé selon l’invention, qui peuvent être combinées ou prises isolément. Ainsi, les caractéristiques et avantages du codeur sont les mêmes que ceux du procédé décrit précédemment. Par conséquent, ils ne sont pas détaillés plus amplement. L’invention concerne encore un ou plusieurs programmes d’ordinateur comportant des instructions pour la mise en œuvre d’un procédé tel que décrit ci-dessus lorsque ce ou ces programmes sont exécutés par au moins un processeur. L’invention concerne aussi un support d’informations lisible par un ordinateur, et comportant des instructions d’un programme d’ordinateur tel que mentionné ci-dessus. 4. Liste des figures D’autres caractéristiques et avantages de l’invention apparaîtront plus clairement à la lecture de la description suivante d’un mode de réalisation particulier, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1 illustre un émetteur d’une chaine de transmission numérique classique ; - la figure 2 présente un exemple de matrice de parité ^^^^ pour un code LDPC ; - la figure 3 illustre des critères de sélection de la matrice de base BG1 ou BG2 ; - la figure 4 illustre la décomposition de la matrice de base BG1 ou BG2 en sous-matrices ; - la figure 5 présente les principales étapes mises en œuvre par un procédé de codage selon un mode de réalisation de l’invention ; - les figures 6A et 6B illustrent la structure de la matrice BG1 ; - les figures 7A et 7B illustrent la notion de cycle ;
- les figures 8 à 13D présentent différentes structures des matrices ^^^^, ^^^^ et/ou ^^^^ permettant d’optimiser la matrice de base ^^^^ ^^^^’ selon un mode de réalisation de l’invention ; - la figure 14 présente la structure simplifiée d’un codeur mettant en œuvre un procédé de codage selon un mode de réalisation de l’invention. 5. Description d’un mode de réalisation de l’invention 5.1 Principe général Le principe général de l’invention repose sur une répartition astucieuse des connexions (i.e. des éléments non nuls) dans une matrice de base ^^^^ ^^^^’, cherchant à répartir les connexions de façon sensiblement homogène et/ou à limiter le nombre de cycles courts. Par suite, une matrice de parité ^^^^ obtenue à partir de la matrice de base ^^^^ ^^^^’ présente une structure particulière. Une telle structure permet d’améliorer les performances des codes correcteurs d’erreurs, notamment en diminuant la complexité du décodage. La figure 5 illustre les principales étapes d’un procédé de codage selon un mode de réalisation de l’invention. Au cours d’une première étape 51, on obtient la matrice de base ^^^^ ^^^^’ de taille ^^^^ × ^^^^. Une telle matrice de base ^^^^ ^^^^’ peut être décomposée en six sous-matrices ^^^^, ^^^^, 0, ^^^^, ^^^^, ^^^^, et s’exprimer sous la forme :
avec : ^^^^ une matrice noyau de taille ^^^^ × ^^^^ ^^^^ une matrice présentant au moins une double diagonale de taille ^^^^ × ^^^^ ^^^^ une matrice d’extension de taille ( ^^^^− ^^^^) × ^^^^ ^^^^ une matrice de prolongement de taille ( ^^^^ − ^^^^) × ^^^^ 0 une matrice nulle de taille ( ^^^^ − ^^^^ − ^^^^) × ^^^^ ^^^^ une matrice identité de taille ( ^^^^ − ^^^^) × ( ^^^^ − ^^^^ − ^^^^) En particulier, la matrice d’extension ^^^^ présente une structure particulière et comprend au moins deux blocs de lignes, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale, et de préférence une seule matrice diagonale complète. Au cours d’une deuxième étape 52, on obtient une matrice de parité ^^^^ à partir de la matrice de base ^^^^ ^^^^’. Pour ce faire, on remplace chaque élément de la matrice de base ^^^^ ^^^^’ par une matrice d’expansion de taille ^^^^ × ^^^^, avec ^^^^ un facteur d’expansion entier, ^^^^ ≥ 1. Plus précisément, chaque élément nul de la matrice de base ^^^^ ^^^^’ est remplacé par une matrice nulle de taille ^^^^ × ^^^^, et chaque élément non nul de la matrice de base ^^^^ ^^^^’ est remplacé par une matrice de permutation circulaire, obtenue en
appliquant une rotation circulaire ^^^^ ^^^^ à une matrice identité de taille ^^^^ × ^^^^. Au cours d’une troisième étape 53, au moins un bloc de ^^^^. ^^^^ données source est codé en utilisant la matrice de parité ^^^^ de taille ( ^^^^. ^^^^ × ^^^^. ^^^^), de façon à obtenir au moins un mot de code de taille ^^^^. ^^^^ formé des ^^^^. ^^^^ données source et de ^^^^. ^^^^ données de redondance, ^^^^ = ^^^^ + ^^^^. Un tel mot de code peut notamment être stocké dans une mémoire du codeur ou transmis par un émetteur à destination d’un récepteur. Dans un mode de réalisation particulier, le nombre d’éléments non nuls par colonne dans ladite matrice noyau ^^^^ et ladite matrice d’extension ^^^^, hors les deux premières colonnes, est compris entre ^^^^ − 3 et ^^^^ + 3, avec ^^^^ un entier. Le nombre d’éléments non nuls par ligne dans ladite matrice d’extension ^^^^ et ladite matrice de prolongement ^^^^, hors les deux premières colonnes, est compris entre ^^^^ − 2 et ^^^^ + 2, avec ^^^^ un entier. On cherche de cette façon à répartir de façon homogène le nombre de connexions par colonne et/ou par ligne dans la matrice de base ^^^^ ^^^^’. Par exemple, en 5G, ^^^^ est compris entre 7 et 10, et le nombre d’éléments non nuls par colonne dans la matrice formée de la matrice noyau ^^^^ et la matrice d’extension ^^^^ est compris entre 4 et 13, par exemple entre 7 et 8. Selon un autre exemple, le nombre d’éléments non nuls par colonne dans la matrice d’extension ^^^^ est compris entre 2 et 8, par exemple égal à 4 ou 5. Selon encore un autre exemple, le nombre d’éléments non nuls par colonne dans ladite matrice noyau ^^^^ est compris entre 2 et 4, par exemple égal à 3. Par exemple, en 5G, ^^^^ est compris entre 2 et 4, et le nombre d’éléments non nuls par ligne dans la matrice formée de la matrice d’extension ^^^^ (hors les deux premières colonnes) et de la matrice de prolongement ^^^^ est compris entre 0 et 6, par exemple égal à 2. Selon un autre exemple, le nombre d’éléments non nuls par ligne dans la matrice d’extension ^^^^ (hors les deux premières colonnes) est égal à 1. Selon encore un autre exemple, le nombre d’éléments non nuls par ligne dans la matrice de prolongement ^^^^ est égal à 1. En particulier, si ^^^^ = 4, ^^^^ = { 6, 8, 9 ^^^^ ^^^^ 10 } et ^^^^ = { 26, 34, 38 ^^^^ ^^^^ 42 } , la matrice de base ^^^^ ^^^^’ présente une taille identique à la matrice de base BG2, et peut être utilisée dans tout système utilisant la norme 5G. 5.2 Matrice de base BG1 Afin de mieux comprendre l’invention, on rappelle en figure 6A la structure de la matrice de base BG1 telle que définie dans le document ETSI TS 138212 V15.2.0, formée des matrices ^^^^, ^^^^, ^^^^ et ^^^^. Les
sous-matrices ^^^^ et ^^^^ sont omises par souci de simplification. Les éléments « 1 » de la matrice de base BG1 représentent les connexions des différentes équations de parité. Le nombre de connexions par colonne et par ligne a été ajouté sur la figure 6A. Ainsi, la première colonne des matrices ^^^^ et ^^^^ comprend 30 connexions, la deuxième colonne comprend 28 connexions, la troisième colonne comprend 7 connexions, etc. La première colonne des matrices ^^^^ et ^^^^ comprend 12 connexions, la deuxième colonne comprend 5 connexions, etc. Les quatre premières lignes des matrices ^^^^ et ^^^^ comprennent chacune 19 connexions. La première ligne des matrices ^^^^ et ^^^^ comprend 2 connexions, la deuxième ligne comprend 7 connexions, etc. Si l’on ne tient pas compte des matrices nulle ^^^^ et identité ^^^^, le nombre minimum de connexions par ligne est 2 et le nombre maximum de connexions par ligne est 19. Le nombre minimum de connexions par colonne est 4 et le nombre maximum de connexions par colonne est 30. Il existe donc une forte disparité dans le nombre de connexions par ligne et/ou par colonne dans la matrice BG1. La matrice noyau ^^^^ a, en proportion, beaucoup de connexions, i.e. beaucoup d’éléments non nuls, car c’est le noyau (kernel) de la matrice BG1. Cela permet au décodeur, en réception, de retrouver ces données. On note par ailleurs que les deux premières colonnes de la matrice BG1, qui correspondent aux données non transmises, possèdent également beaucoup de « 1 ». La partie supérieure de la matrice BG1 possède également plus de connexions que sa partie inférieure, ce qui permet de garantir de bonnes performances pour les rendements élevés. En effet, la partie inférieure de la matrice BG1 peut être poinçonnée pour obtenir le rendement souhaité. Il est donc préférable de choisir les connexions dans la partie supérieure de la matrice BG1. A titre d’exemple, la figure 6B illustre les facteurs de rotation circulaire ^^^^ pour la matrice BG1 de la figure 6A, pour un facteur d’expansion ^^^^ = 256. La matrice de parité ^^^^ est construite en remplaçant chaque élément non nul de la matrice BG1 par une matrice identité de taille ^^^^ × ^^^^, et en appliquant une rotation circulaire ^^^^ selon les facteurs illustrés en figure 6B. Ainsi, l’élément « 1 » de la première ligne/première colonne de la matrice BG1 de la figure 6A est remplacé par une matrice identité de taille 256 × 256 à laquelle on applique une rotation circulaire ^^^^ = 250. L’élément « 1 » de la première ligne/deuxième colonne de la matrice BG1 de la figure 6A est remplacé par une matrice identité de taille 256 × 256 à laquelle on applique une rotation circulaire ^^^^ = 69, et ainsi de suite. 5.3 Matrice de base BG2 De la même façon, le document ETSI TS 138212 V15.2.0 décrit la structure de la matrice de base BG2,
qui peut être décomposée en sous-matrices ^^^^, ^^^^, ^^^^, ^^^^, ^^^^ et ^^^^. Les sous-matrices ^^^^ et ^^^^ sont omises par la suite par souci de simplification. 5.4 Matrice de base ^^^^ ^^^^’ La position des connexions dans la matrice de base BG2, ainsi que les facteurs de rotation à utiliser, sont précisés dans la norme 5G 3GPP. Toutefois, comme indiqué préalablement, il reste souhaitable d’améliorer les performances des codes correcteurs d’erreurs, notamment en diminuant la complexité du décodage, par exemple en diminuant le nombre de connexions. On propose donc ci-après une matrice de base ^^^^ ^^^^’ cherchant à réduire la complexité du décodage. De nouvelles structures des connexions sont ainsi proposées, selon différents modes de réalisation de l’invention. Selon le mode de réalisation considéré, de telles structures sont performantes et/ou facile à reproduire en fonction des dimensions de la matrice de parité ^^^^. Selon un mode de réalisation particulier, la structure de la matrice de base ^^^^ ^^^^’ est définie de sorte à avoir une faible disparité dans le nombre de connexions par ligne et/ou par colonne. En effet, si on considère un codeur LDPC par exemple, on rappelle que le décodage LDPC s’appuie sur les bases des probabilités d’avoir transmis une valeur égale à « 1 » ou « 0 ». Il est donc souhaitable de distribuer le nombre de connexions de façon homogène, afin que le nombre de connexions en ligne, et surtout en colonne, soit sensiblement constant ou équiréparti. Selon un autre mode de réalisation particulier, la structure de la matrice de base ^^^^ ^^^^’ est définie de sorte à limiter le nombre de cycles courts, et si possible à éviter les cycles courts (« Girth » en anglais). En effet, de tels cycles courts limitent les performances des codes correcteurs d’erreurs, notamment des codes LDPC, surtout pour les valeurs ^^^^ petites tailles, par exemple de l’ordre de 256 bits ou moins. Pour mieux comprendre ce principe, les figures 7A et 7B illustrent les phénomènes de boucles avec un facteur d’expansion ^^^^ = 4. Selon la figure 7A, on applique un facteur d’expansion ^^^^ = 4 avec un même facteur de rotation ^^^^ = 0 aux éléments « 1 » localisés en position
( ^^^^ + 7, ^^^^), ( ^^^^, ^^^^ + 7) et ( ^^^^ + 7, ^^^^ + 7). On obtient une boucle, illustrée par les flèches. Selon la figure 7B, on applique un facteur d’expansion ^^^^ = 4 avec un même facteur de rotation ^^^^ = 0 aux éléments « 1 » localisés en position ( ^^^^ + 7, ^^^^) et ( ^^^^ + 7, ^^^^ + 7), et un facteur de rotation ^^^^ = 1 à l’élément localisé en position ( ^^^^, ^^^^ + 7). Dans ce cas, il n’y a pas de boucle. Le changement de facteur de rotation d’un des éléments de la matrice permet donc d’éliminer les boucles. On présente ci-après différentes solutions permettant d’obtenir une faible disparité dans le nombre de connexions par ligne et/ou par colonne de la matrice de base ^^^^ ^^^^’ et/ou de limiter (voire éviter) les cycles courts. 5.4.1 Optimisation de la matrice noyau ^^^^
Selon un premier exemple, il est possible de répartir les connexions de façon équitable dans la matrice noyau ^^^^, tout en cherchant à disposer d’un nombre important de connexions comme défini dans la norme 5G. Par exemple, dans la matrice noyau ^^^^ le nombre d’éléments non nuls par colonne, hors les deux premières colonnes, est compris entre 1 et ^^^^. Les figures 8A à 8D illustrent un exemple de matrice noyau ^^^^, dans lequel le nombre d’éléments non nuls par colonne est constant et égal à 3, respectivement pour ^^^^ = 6, ^^^^ = 8, ^^^^ = 9 et ^^^^ = 10. 5.4.2 Optimisation des deux premières colonnes de la matrice noyau ^^^^ et/ou de la matrice d’extension ^^^^ Selon un deuxième exemple, les deux premières colonnes (qui ne sont généralement pas transmises) peuvent être choisies pour garantir une bonne répartition des connexions. Par exemple, les deux premières colonnes de la matrice noyau ^^^^ et/ou de la matrice d’extension ^^^^ comprennent une alternance d’éléments non nuls et d’éléments nuls par ligne et par colonne. Autrement dit, les connexions sont réparties en quinconce, comme illustré en figure 9. 5.4.3 Optimisation de la matrice d’extension ^^^^ et de la matrice de prolongement ^^^^ Selon un troisième exemple, il est possible de répartir les connexions de façon équitable dans la matrice d’extension ^^^^ (hors les deux premières colonnes) et/ou dans la matrice de prolongement ^^^^. La matrice d’extension ^^^^ est généralement la plus importante par sa dimension. Pour la matrice de base BG2 par exemple, la matrice d’extension ^^^^, hors ses deux première colonnes, présente une taille : 22 × 4 pour ^^^^ = 6 30 × 6 pour ^^^^ = 8 34 × 7 pour ^^^^ = 9 et 38 × 8 pour ^^^^ = 10. Selon ce troisième exemple, les connexions dans la matrice d’extension ^^^^ sont réparties sur des diagonales pour garantir une bonne répartition des connexions. En particulier, les connexions sont réparties pour avoir une connexion par ligne et une connexion par colonne pour un bloc de lignes. Selon l’invention, la matrice d’extension ^^^^ comprend donc au moins deux blocs de lignes, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale. La figure 10A illustre un exemple de matrice d’extension ^^^^ pour ^^^^ = 6, hors les deux premières colonnes. La matrice d’extension ^^^^ selon cet exemple comprend au moins deux blocs de lignes (101A, 102A, 103A), comprenant chacun un même nombre de lignes ( ^^^^1 = 4), chaque bloc de lignes comprenant une matrice diagonale (de taille ^^^^1 × ^^^^1). Une ou plusieurs lignes d’éléments nuls peuvent être intercalées entre deux blocs de lignes. Par exemple, quatre lignes d’éléments nuls sont
présentes entre deux blocs de lignes comprenant une matrice diagonale. La figure 10B illustre un autre exemple de matrice d’extension ^^^^ pour ^^^^ = 8, hors les deux premières colonnes. La matrice d’extension ^^^^ selon cet exemple comprend au moins deux blocs de lignes (101B, 102B, 103B, 104B), comprenant chacun un même nombre de lignes ( ^^^^1′ = 6), chaque bloc de lignes comprenant une matrice diagonale (de taille ^^^^1′ × ^^^^1′). Une ou plusieurs lignes d’éléments nuls peuvent être intercalées entre deux blocs de lignes. Par exemple, deux lignes d’éléments nuls sont présentes entre deux blocs de lignes comprenant une matrice diagonale. De la même façon, la matrice de prolongement ^^^^ peut comprendre au moins deux blocs de lignes, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale. Les connexions dans la matrice de prolongement ^^^^ peuvent ainsi être également réparties sur des diagonales pour garantir une bonne répartition des connexions. En particulier, les connexions sont réparties pour avoir une connexion par ligne et une connexion par colonne pour un bloc de lignes. La figure 11A illustre un exemple de matrice de prolongement ^^^^ pour ^^^^ = 6. La matrice de prolongement ^^^^ selon cet exemple comprend au moins deux blocs de lignes (111A, 112A, 113A, 114A, 115A), comprenant chacun un même nombre de lignes ( ^^^^2 = 4), chaque bloc de lignes comprenant une matrice diagonale (de taille ^^^^2 × ^^^^2). Les blocs de lignes sont consécutifs, i.e. aucune ligne d’éléments nuls ou non nuls n’est intercalée entre deux blocs de lignes. La figure 11B illustre un autre exemple de matrice de prolongement ^^^^ pour ^^^^ = 8. La matrice de prolongement ^^^^ selon cet exemple comprend au moins deux blocs de lignes (111B, 112B, 113B, 114B, 115B, 116B, 117B), comprenant chacun un même nombre de lignes ( ^^^^2 = 4), chaque bloc de lignes comprenant une matrice diagonale (de taille ^^^^2 × ^^^^2). Les blocs de lignes sont consécutifs, i.e. aucune ligne d’éléments nuls ou non nuls n’est intercalée entre deux blocs de lignes. En particulier, tous les blocs de lignes présentent une taille identique. Selon ce mode de réalisation particulier, comme les connexions sont réparties pour avoir une connexion par ligne et une connexion par colonne pour un bloc de lignes dans les matrices d’extension ^^^^ (hors deux premières colonnes) et de prolongement ^^^^, le nombre de connexions par ligne est égal à 1 (si l’on considère une ligne d’éléments nuls dans la matrice d’extension ^^^^) ou 2. Le nombre de connexions par colonne dépend de la taille de la variable ^^^^. Dans l’exemple illustré en figures 10A et 11A, pour ^^^^ = 6, il est égal à 3 pour la matrice d’extension ^^^^ et égal à 5 ou 6 pour la matrice de prolongement ^^^^. Dans l’exemple illustré en figures 10B et 11B, pour ^^^^ = 8, il est égal à 4 pour la matrice d’extension ^^^^ et égal à 7 ou 8 pour la matrice de prolongement ^^^^.
A titre d’exemple, on propose en figure 12 un exemple de structure pour les matrices noyau ^^^^, double diagonale ^^^^, d’extension ^^^^ et de prolongement ^^^^, pour différentes valeurs de ^^^^, reprenant les matrices des figures 10A et 11A pour ^^^^ = 6, et les matrices des figures 10B et 11B pour ^^^^ = 8. La structure est étendue à d’autres valeurs de ^^^^, notamment ^^^^ = 9 et ^^^^ = 10. Comme illustré en figure 12, les matrices ^^^^, ^^^^ et ^^^^ présentent une structure imbriquée selon la valeur de ^^^^. Une telle structure est notamment compatible avec la norme 5G. Dans la matrice formée de la matrice d’extension ^^^^ et de la matrice de prolongement ^^^^, le nombre d’éléments non nuls par ligne, hors les deux premières colonnes, est compris entre ^^^^ − 2 et ^^^^ + 2, avec ^^^^ un entier. Si l’on se place dans le contexte de la 5G, ^^^^ est par exemple compris entre 2 et 4. 5.4.4 Optimisation globale de la matrice de base BG’ Dans les exemples ci-dessus, les matrices d’extension ^^^^ (hormis les deux premières colonnes) et de prolongement ^^^^ sont optimisées pour diminuer les cycles courts. Toutefois, si nous prenons en compte la matrice formée des matrices noyau ^^^^, double diagonale ^^^^, d’étalement ^^^^ et de prolongement ^^^^ proposées dans les exemples ci-dessus, il peut rester des cycles courts. De tes cycles courts peuvent par exemple résulter de la structure proposée pour la matrice noyau ^^^^ ou pour les deux premières colonnes de la matrice d’étalement ^^^^. Comme illustré en figure 7B, la prise en compte des facteurs de rotation permet notamment de diminuer, voire éviter, les cycles courts. Il est ainsi possible d’augmenter la diversité de la matrice de base ^^^^ ^^^^’ et donc de diminuer le nombre de cycles courts en tenant compte des facteurs de rotation. Si l’on se place dans le contexte de la norme 5G, le facteur d’expansion ^^^^ est au minimum égal à 2. Cela signifie qu’il y a au minimum deux facteurs de rotation possible : un élément non nul de la matrice de base ^^^^ ^^^^’ peut être remplacé 0
1� pour une rotation circulaire ^^^^ = 0 ou 1
0� pour une rotation circulaire ^^^^ = 1. Les figures 13A à 13D illustrent des exemples de structure pour les matrices ^^^^, ^^^^, ^^^^ et ^^^^, pour différentes valeurs de ^^^^, respectivement ^^^^ = 6, ^^^^ = 8, ^^^^ = 9 et ^^^^ = 10, tenant compte d’au moins deux facteurs de rotation distincts Comme illustré dans ces figures, il est possible d’augmenter le nombre de facteurs de rotation pour augmenter la diversité de la matrice de base ^^^^ ^^^^’. On choisit par exemple cinq facteurs de rotation notés V0 à V4. Bien entendu un nombre différent de facteurs de rotation peut être choisi, ce qui conduit à une structure différente pour les matrices ^^^^, ^^^^, ^^^^ et ^^^^.
Comme déjà indiqué, les matrices ^^^^, ^^^^ et ^^^^ présentent une structure imbriquée selon la valeur de ^^^^.Il est notamment possible de définir les équations qui définissent les facteurs de rotation V0 à V4 en fonction de l’indice « ils » selon la norme 5G 3GPP. Index « ils » Rotation Circulaire V ^^^^0 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^1 = 1 + 4 ^^^^, ^^^^ ∈ [0: 63] 0 ^^^^2 = 2 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^0 = 0 + 5 ^^^^ + 6 ^^^^, ^^^^ ∈ [0: 1] et ^^^^ ∈ [0: 63] ^^^^1 = 1 + 6 ^^^^, ^^^^ ∈ [0: 63] 1 ^^^^2 = 2 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^0 = 0 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^1 = 1 + 5 ^^^^, ^^^^ ∈ [0: 63] 2 ^^^^2 = 2 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^0 = 0 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] 3 ^^^^2 = 2 + 7 ^^^^, ^^^^ ∈ [0: 31] ^^^^3 = 3 + 7 ^^^^, ^^^^ ∈ [0: 31] ^^^^4 = 4 + 7 ^^^^, ^^^^ ∈ [0: 31] ^^^^0 = 0 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [ 0: 1 ] ^^^^ ^^^^ ^^^^ ∈ [0: 31] 4 ^^^^2 = 2 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 9 ^^^^, ^^^^ ∈ [0: 31] ^^^^0 = 0 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] 5 ^^^^2 = 2 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^0 = 0 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^1 = 1 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] 6 ^^^^2 = 2 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^0 = 0 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^1 = 1 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] 7 ^^^^2 = 2 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] avec ^^^^ et ^^^^ des variables aléatoires dont l’intervalle est donné dans le tableau ci-dessus. Les structures illustrées en figure 13A à 13D permettent notamment de diminuer les cycles courts pour les matrices de petites tailles, par exemple pour ^^^^ < 256.
On constate notamment que dans la matrice formée de la matrice noyau ^^^^ et de la matrice d’extension ^^^^, le nombre d’éléments non nuls par colonne, hors les deux premières colonnes, est compris entre ^^^^ − 3 et ^^^^ + 3, avec ^^^^ un entier. Dans la matrice formée de la matrice d’extension ^^^^ et de la matrice de prolongement ^^^^, le nombre d’éléments non nuls par ligne, hors les deux premières colonnes, est compris entre ^^^^ − 2 et ^^^^ + 2, avec ^^^^ un entier. Si l’on se place dans le contexte de la 5G, ^^^^ est par exemple compris entre 7 et 10, par exemple égal à 9, et ^^^^ compris entre 2 et 4, par exemple égal à 3. Dans les exemples illustrés en figures 13A à 13D, le nombre d’éléments non nuls par colonne dans la matrice formée de la matrice noyau ^^^^ et de la matrice d’extension ^^^^ est compris entre 6 et 12, selon la valeur de ^^^^, et le nombre d’éléments non nuls par ligne dans la matrice formée de la matrice d’extension ^^^^ et de la matrice de prolongement ^^^^ est compris entre 1 et 2. Le nombre de connexions par ligne et/ou par colonne est donc assez homogène. 5.4.5 Obtention d’une matrice de parité A partir de la matrice de base BG’ ainsi obtenue, il est possible d’obtenir une matrice de parité ^^^^, en remplaçant chaque élément vide ou nul de la matrice de base ^^^^ ^^^^’ par une matrice nulle de taille ^^^^ × ^^^^, et chaque élément non nul de la matrice de base ^^^^ ^^^^’ par une matrice de permutation circulaire obtenue en appliquant une rotation circulaire ^^^^ ^^^^ à une matrice identité de taille ^^^^ × ^^^^, ^^^^ ∈ {0,1, … }. La matrice de parité ^^^^ ainsi obtenue peut être utilisée par un codeur pour coder au moins un bloc de ^^^^. ^^^^ données source. 5.4.6 Variantes On a décrit ci-dessus un exemple selon lequel la matrice de base BG’ présente une taille identique à la matrice de base BG2, avec ^^^^ = 4, ^^^^ = { 6, 8, 9 ^^^^ ^^^^ 10 } et ^^^^ = { 26, 34, 38 ^^^^ ^^^^ 42 } . Ceci permet notamment de pouvoir utiliser la matrice de base BG’ dans tout système de communications selon la norme 5G. Il s’agit toutefois d’un simple exemple, et d’autres valeurs pour ^^^^, ^^^^ et ^^^^ peuvent être envisagées, notamment pour d’autres normes de transmission (Wifi®, 6G, etc). De même, on a proposé une matrice de base BG’ avec cinq facteurs de rotation V0 à V4. Toutefois, un nombre différent de facteurs de rotation peut être choisi. On a par ailleurs donné des exemples avec une matrice ^^^^ de la D’autres formes
de la matrice ^^^^ avec au moins une double diagonale peuvent être utilisées. Dans ce cas, la position des connexions et/ou les valeurs des facteurs de rotation peuvent être mis à jour pour tenir compte de la structure de la matrice ^^^^.
On a également pris pour exemple un code LDPC. L’invention peut également être étendue à d’autres codes correcteurs d’erreurs utilisant une matrice de parité. 5.5 Dispositif de codage On présente finalement, en relation avec la figure 14, la structure simplifiée d’un codeur selon au moins un mode de réalisation décrit ci-dessus. Comme illustré en figure 14, un codeur comprend au moins une mémoire 141, au moins une unité de traitement 142, équipée par exemple d’une machine de calcul programmable ou d’une machine de calcul dédiée, par exemple un processeur P, et pilotée par le programme d’ordinateur 143, mettant en œuvre des étapes du procédé de codage selon au moins un mode de réalisation de l’invention. A l’initialisation, les instructions de code du programme d’ordinateur 143 sont par exemple chargées dans une mémoire RAM avant d’être exécutées par le processeur de l’unité de traitement 142. Le processeur de l’unité de traitement 142 met en œuvre des étapes du procédé de codage décrit précédemment, selon les instructions du programme d’ordinateur 143, pour coder les ^^^^. ^^^^ données source en utilisant une matrice de parité ^^^^ de taille ( ^^^^. ^^^^ × ^^^^. ^^^^), et délivrer au moins un mot de code de taille ^^^^. ^^^^ formé des ^^^^. ^^^^ données source et de ^^^^. ^^^^ données de redondance.
Claims
REVENDICATIONS 1. Procédé de codage d’au moins un bloc de ^^^^. ^^^^ données source, délivrant au moins un mot de code de taille ^^^^. ^^^^ formé desdites ^^^^. ^^^^ données source et de ^^^^. ^^^^ données de redondance, ^^^^ = ^^^^ + ^^^^, avec ^^^^ un facteur d’expansion entier, ^^^^ ≥ 1, ledit procédé mettant en œuvre une étape de codage (53) desdites ^^^^. ^^^^ données source en utilisant une matrice de parité ^^^^ de taille ( ^^^^. ^^^^ × ^^^^. ^^^^ ) , caractérisé en ce que ladite matrice de parité ^^^^ est obtenue (52) à partir d’une matrice de base ^^^^ ^^^^’ de taille ^^^^ × ^^^^, en remplaçant chaque élément de ladite matrice de base ^^^^ ^^^^’ par une matrice d’expansion de taille ^^^^ × ^^^^, ladite matrice de base ^^^^ ^^^^’ s’exprimant sous la forme :
avec : ^^^^ une matrice noyau de taille ^^^^ × ^^^^ ^^^^ une matrice présentant au moins une double diagonale de taille ^^^^ × ^^^^ ^^^^ une matrice d’extension de taille ( ^^^^− ^^^^) × ^^^^ ^^^^ une matrice de prolongement de taille ( ^^^^ − ^^^^) × ^^^^ 0 une matrice nulle de taille ( ^^^^ − ^^^^ − ^^^^) × ^^^^ ^^^^ une matrice identité de taille ( ^^^^ − ^^^^ ) × ( ^^^^ − ^^^^ − ^^^^ ) et en ce que ladite matrice d’extension ^^^^ comprend au moins deux blocs de lignes consécutifs, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale. 2. Procédé la revendication 1, caractérisé en ce qu’au moins un desdits blocs de lignes comprend un nombre de lignes supérieur ou égal à 3. 3. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ladite matrice de prolongement ^^^^ comprend au moins deux blocs de lignes, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le nombre d’éléments non nuls par colonne et/ou par ligne par rapport au nombre total d’éléments par colonne et/ou par ligne dans ladite matrice noyau ^^^^, hors les deux premières colonnes, est compris entre 50 et 100%. 5. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que le nombre d’éléments non nuls par colonne et/ou par ligne par rapport au nombre total d’éléments par
colonne et/ou par ligne dans ladite matrice noyau ^^^^, hors les deux premières colonnes, est compris entre 75 et 100%. 6. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que lesdites deux premières colonnes de la matrice noyau ^^^^ et/ou de ladite matrice d’extension ^^^^ comprennent une alternance d’éléments non nuls et d’éléments nuls par ligne et par colonne. 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ^^^^ = 4 et : ^^^^ = 6 et ^^^^ = 26, ou ^^^^ = 8 et ^^^^ = 34, ou ^^^^ = 9 et ^^^^ = 38 ou ^^^^ = 10 et ^^^^ = 42. 8. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que, selon la valeur de ^^^^, ladite matrice noyau ^^^^ est égale à : pour K=10 pour K=9 pour K=8 pour K=6 V1 V0 V3 V2 V1 V4 V3 V2 V4 V0 V3 V2 V4 V2 V3 V0 V2 V0 V3 V4 V2 V3 V1 V1 V3 V4 V4 ladite matrice ^^^^ présentant au moins une double diagonale est égale à : V0 V0 V0 V0 V1 V0 V0 V0 V0 ladite matrice d’extension ^^^^ est égale à : pour K=6 V4 V0 V2 V1 V3 V2 V1 V3 V2 V0 V1 V2 V0 V1 V1 V2 V4 V3
V1 V4 V2 V0 V1 V4 V2 V2 V3 V0 V4 V1 V0 V4 V0 pour K=8 : V4 V0 V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V2 V0 V1 V1 V2 V4 V3 V1 V4 V2 V0 V0 V1 V1 V4 V2 V2 V3 V0 V4 V1 V0 V4 V1 V0 V2 V2 V0 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 pour K=9 : V4 V0
V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V1 V2 V0 V1 V1 V2 V4 V3 V1 V4 V2 V0 V0 V1 V1 V2 V4 V2 V2 V3 V0 V4 V1 V0 V4 V1 V0 V2 V2 V3 V0 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 V1 V4 V2 V4 V4 V2 V0 et pour K=10 : V4 V0 V2 V1 V3 V2 V1 V3 V2 V4 V0 V0 V1 V1 V2 V2 V0 V1 V1 V2
V4 V3 V1 V4 V2 V0 V0 V1 V1 V2 V4 V3 V2 V2 V3 V0 V4 V1 V0 V4 V1 V0 V2 V2 V3 V0 V4 V1 V3 V3 V4 V1 V0 V2 V1 V0 V2 V1 V3 V1 V4 V2 V0 V4 V4 V2 V0 V4 V1 V0 V2 V1 V3 V0 V4 ladite matrice de prolongement ^^^^ est égale à : pour K=6 : V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1
V2 V3 V4 V0 V1 V2 V3 V4 V0 pour K=8 : V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V0 V1 V2 V3 V1 V2 pour K=9 : V4 V0 V1
V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V0 V1 V2 V3 V1 V2 V3 V4 V1 V2 et pour K=10 : V4 V0 V1 V2 V3 V4 V0 V1 V2 V3 V4 V0
V1 V2 V3 V4 V0 V1 V2 V3 V4 V0 V1 V2 V0 V1 V2 V3 V1 V2 V3 V4 V1 V2 V3 V4 V2 V3 et en ce que : - chaque élément vide ou nul de ladite matrice de base ^^^^ ^^^^’ est remplacé par une matrice nulle de taille ^^^^ × ^^^^, - chaque élément non nul de ladite matrice de base ^^^^ ^^^^’ est remplacé par une matrice de permutation circulaire obtenue en appliquant une rotation circulaire ^^^^ ^^^^ à une matrice identité de taille ^^^^ × ^^^^, telle que : Rotation Circulaire ^^^^ ^^^^ si ^^^^ appartient à ^^^^0 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^1 = 1 + 4 ^^^^, ^^^^ ∈ [0: 63] {2,4,8,16,32,128,256} : ^^^^2 = 2 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 4 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 0 + 4 ^^^^, ^^^^ ∈ [0: 63] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 6 ^^^^, ^^^^ ∈ [0: 1] et ^^^^ ∈ [0: 63] ^^^^1 = 1 + 6 ^^^^, ^^^^ ∈ [0: 63] {3,6,12,24,48,96,192,384} : ^^^^2 = 2 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 6 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 6 ^^^^, ^^^^ ∈ [0: 63]
si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^1 = 1 + 5 ^^^^, ^^^^ ∈ [0: 63] {5,10,20,40,80,160,320} : ^^^^2 = 2 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^3 = 3 + 5 ^^^^, ^^^^ ∈ [0: 63] ^^^^4 = 4 + 5 ^^^^, ^^^^ ∈ [0: 63] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 7 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] {7,14,28,56,112,224} : ^^^^2 = 2 + 7 ^^^^, ^^^^ ∈ [0: 31] ^^^^3 = 3 + 7 ^^^^, ^^^^ ∈ [0: 31] ^^^^4 = 4 + 7 ^^^^, ^^^^ ∈ [0: 31] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] {9,18,36,72,144,288} : ^^^^2 = 2 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 9 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 9 ^^^^, ^^^^ ∈ [0: 31] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^1 = 1 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] {11,22,44,88,176,352} : ^^^^2 = 2 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^3 = 3 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] ^^^^4 = 4 + 5 ^^^^ + 11 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 31] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^1 = 1 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] {13,26,52,104,208} : ^^^^2 = 2 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 13 ^^^^, ^^^^ ∈ [0: 1] ^^^^ ^^^^ ^^^^ ∈ [0: 15] si ^^^^ appartient à ^^^^0 = 0 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^1 = 1 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] {15,30,60,120,240} : ^^^^2 = 2 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^3 = 3 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] ^^^^4 = 4 + 5 ^^^^ + 15 ^^^^, ^^^^ ∈ [0: 2] ^^^^ ^^^^ ^^^^ ∈ [0: 15] avec ^^^^ et ^^^^ des variables aléatoires. 9. Dispositif de codage d’au moins un bloc de ^^^^. ^^^^ données source, délivrant au moins un mot de code de taille ^^^^. ^^^^ formé desdites ^^^^. ^^^^ données source et de ^^^^. ^^^^ données de redondance, ^^^^ = ^^^^ + ^^^^, avec ^^^^ un facteur d’expansion entier, ^^^^ ≥ 1, comprenant au moins une unité de traitement configurée pour coder (53) lesdites ^^^^. ^^^^ données source en utilisant une matrice de parité ^^^^ de taille ( ^^^^. ^^^^ × ^^^^. ^^^^), caractérisé en ce que ladite matrice de parité ^^^^ est obtenue (52) à partir d’une matrice de base ^^^^ ^^^^’ de taille ^^^^ × ^^^^, en remplaçant chaque élément de ladite matrice de base ^^^^ ^^^^’ par une matrice d’expansion de taille ^^^^ × ^^^^, ladite matrice de base ^^^^ ^^^^’ s’exprimant sous la forme :
avec : ^^^^ une matrice noyau de taille ^^^^ × ^^^^ ^^^^ une matrice présentant au moins une double diagonale de taille ^^^^ × ^^^^
^^^^ une matrice d’extension de taille ( ^^^^− ^^^^) × ^^^^ ^^^^ une matrice de prolongement de taille ( ^^^^ − ^^^^) × ^^^^ 0 une matrice nulle de taille ( ^^^^ − ^^^^ − ^^^^) × ^^^^ ^^^^ une matrice identité de taille ( ^^^^ − ^^^^ ) × ( ^^^^ − ^^^^ − ^^^^ ) et en ce que ladite matrice d’extension ^^^^ comprend au moins deux blocs de lignes consécutifs, comprenant chacun un même nombre de lignes, chaque bloc de lignes comprenant une matrice diagonale. 10. Programme d’ordinateur comportant des instructions pour la mise en œuvre d’un procédé selon l'une quelconque des revendications 1 à 8 lorsque ce programme est exécuté par un processeur.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR2304320A FR3148336A1 (fr) | 2023-04-28 | 2023-04-28 | Procédé de codage de données source, dispositif de codage et programme d’ordinateur correspondants. |
| PCT/EP2024/061167 WO2024223612A1 (fr) | 2023-04-28 | 2024-04-24 | Conception de matrices de base pour les codes ldpc quasi-cycliques |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP4702672A1 true EP4702672A1 (fr) | 2026-03-04 |
Family
ID=87571243
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP24720250.0A Pending EP4702672A1 (fr) | 2023-04-28 | 2024-04-24 | Conception de matrices de base pour les codes ldpc quasi-cycliques |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP4702672A1 (fr) |
| CN (1) | CN121014168A (fr) |
| FR (1) | FR3148336A1 (fr) |
| WO (1) | WO2024223612A1 (fr) |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109120275B (zh) * | 2017-06-26 | 2021-02-05 | 电信科学技术研究院 | 一种编码方法及装置、计算机存储介质 |
| GB2595240B (en) * | 2020-05-18 | 2022-11-30 | Accelercomm Ltd | Low density parity check decoder, electronic device, and method therefor |
| CN115276670A (zh) * | 2022-07-26 | 2022-11-01 | 清华大学 | 一种准循环-低密度奇偶校验码构造方法及装置 |
-
2023
- 2023-04-28 FR FR2304320A patent/FR3148336A1/fr active Pending
-
2024
- 2024-04-24 WO PCT/EP2024/061167 patent/WO2024223612A1/fr not_active Ceased
- 2024-04-24 CN CN202480028685.2A patent/CN121014168A/zh active Pending
- 2024-04-24 EP EP24720250.0A patent/EP4702672A1/fr active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| CN121014168A (zh) | 2025-11-25 |
| FR3148336A1 (fr) | 2024-11-01 |
| WO2024223612A1 (fr) | 2024-10-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10452621B2 (en) | Network coded storage with multi-resolution codes | |
| FR2845227A1 (fr) | Procede de reception d'un signal module selon une technique de codage multi-niveaux, procede de decodage, dispositif de reception, systeme de codage-decodage et applications correspondant | |
| CN101390075A (zh) | 可靠、高效的对等存储 | |
| US9337928B2 (en) | Time-domain based composite modulation for spectrally efficient optical networks | |
| EP3526919B1 (fr) | Ici and isi-based selective mapping for faster than nyquist oqam ofdm | |
| US20240406418A1 (en) | Scalable Per-Title Encoding | |
| EP4702672A1 (fr) | Conception de matrices de base pour les codes ldpc quasi-cycliques | |
| EP2904754A1 (fr) | Procede de transmission d'un signal multiporteuse, dispositif de transmission et programme d'ordinateur correspondants | |
| EP1779669A1 (fr) | Procede de mise en forme de trames d'une sequence video | |
| WO2025196182A1 (fr) | Procédé de codage de données source, procédé de décodage de mots de code, dispositifs et programme d'ordinateur correspondants. | |
| FR3148337A1 (fr) | Procédé de codage de données source, dispositif de codage et programme d’ordinateur correspondants. | |
| EP1525663B1 (fr) | Compression de donnees numeriques robuste au bruit de transmission | |
| EP2633686A1 (fr) | Codage video echelonnable a partir d'un epitome hierarchique | |
| CN114157895A (zh) | 视频处理方法、装置、电子设备及存储介质 | |
| EP2673883A1 (fr) | Système et procédé de limitation de l'effet de falaise pour distribution de contenu sur un réseau hétérogène | |
| FR2796780A1 (fr) | Procede et dispositif de codage a au moins deux codages en parallele et permutation amelioree, et procede et dispositif de decodage correspondants | |
| EP3675505B1 (fr) | Procede et systeme de distribution d'un contenu audiovisuel | |
| EP3751744B1 (fr) | Codage ldpc a protection differenciee | |
| WO2015049194A1 (fr) | Méthode de décodage map par réseau de points augmenté | |
| EP3251318B1 (fr) | Procédé et dispositif de modulation de symboles complexes, procédé et dispositif de démodulation et programmes d'ordinateur correspondants | |
| EP4659361A1 (fr) | Procédé de génération d'un signal, procédé de construction d'une séquence de base, dispositif et programme d'ordinateur correspondants | |
| FR3095094A1 (fr) | Procedes de multi-diffusion et d'obtention de contenus numeriques dans un reseau, dispositif et systeme associes | |
| FR3145660A1 (fr) | Procédé de génération d’un signal, procédé de construction d’une séquence de base, dispositif et programme d’ordinateur correspondants. | |
| FR2915641A1 (fr) | Procede et dispositif d'entrelacement de donnees | |
| FR2888062A1 (fr) | Codeur et turbo decodeur de code produit |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: UNKNOWN |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE |
|
| PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
| 17P | Request for examination filed |
Effective date: 20251016 |
|
| AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC ME MK MT NL NO PL PT RO RS SE SI SK SM TR |