LDPC decoding method and device, equipment and storage medium
By dividing the parity-check matrix into multiple layers by row and merging them into layer groups, and using the reverse-order decoding method, the problems of large latency and poor parallel pipeline design in the existing LDPC layered decoding are solved, achieving more efficient decoding performance and parallel pipeline design.
Patent Information
- Application Number
- CN202510979255.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-07-15
- Publication Date
- 2025-10-28
AI Technical Summary
Existing LDPC layered decoding has significant latency in the uplink data channel of the 5G NR physical layer and is not conducive to the implementation of parallel pipelined decoding.
The check matrix is divided into multiple layers by row, and the multiple layers are merged to obtain multiple layer groups. Decoding is performed in reverse order based on each layer group to avoid processing delay caused by layer jumping.
By combining and reversing decoding, the processing delay is reduced, the decoding performance is optimized, and the implementation of parallel pipelining is promoted.
Smart Images

Figure CN120856162A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of wireless communication technology, and in particular to an LDPC decoding method, apparatus, device, and storage medium. Background Technology
[0002] In the decoding module of the 5G NR physical layer uplink shared channel (PUSCH) receiver, bit-level decoding needs to be achieved by using LDPC (Low Density Parity Check Code) layered decoding.
[0003] The LDPC parity-check matrix H is determined by selecting the basic graph matrix BG type and the expansion factor Zc according to the corresponding rules, thus determining the fundamental matrix H. b And by the fundamental matrix H b It is formed by expanding with the expansion factor Zc.
[0004] Currently, LDPC layered decoding is performed sequentially by layer, resulting in significant latency. Summary of the Invention
[0005] To address one of the aforementioned technical deficiencies, this application provides an LDPC decoding method, apparatus, device, and storage medium.
[0006] The first aspect of this application provides an LDPC decoding method, the method comprising:
[0007] Divide the verification matrix into multiple layers by row;
[0008] Multiple layers are merged to obtain multiple layer groups; each layer group is numbered sequentially.
[0009] Decoding is performed in reverse order based on each layer group.
[0010] Optionally, in any layer, the row weight of each row is equal, and the column weight of each column is at most 1;
[0011] Row weight is the number of non-zero elements in a row, and column weight is the number of non-zero elements in a column.
[0012] Optionally, multiple layers can be merged to obtain multiple layer groups, including:
[0013] The layers are grouped according to their layer numbers to obtain multiple layer groups;
[0014] Divide the indices of the non-zero elements in each row of the layer group into P groups; where P is the number of columns processed at one time.
[0015] Optionally, if there are 46 floors in total, the floors are grouped according to their floor numbers to obtain multiple floor groups, including:
[0016] Each of the layers numbered 4, 3, 2, and 1 is treated as a layer group, resulting in four layer groups.
[0017] The layers numbered 10, 9, 8, 7, 6, and 5 are merged to obtain a layer group;
[0018] The layers numbered 18, 17, 16, 15, 14, 13, 12, and 11 are merged to obtain a layer group;
[0019] The layers numbered 28, 27, 26, 25, 24, 23, 22, 21, 20, and 19 are merged to obtain a layer group;
[0020] The layers numbered 36, 35, 34, 33, 32, 31, 30, and 29 are merged to obtain a layer group;
[0021] The layers numbered 42, 41, 40, 39, 38, and 37 are merged to obtain a layer group;
[0022] The layers numbered 46, 45, 44, and 43 are merged to form a layer group.
[0023] Optionally, decoding is performed in reverse order based on each layer group, including:
[0024] Initialize the values of the variable nodes and check nodes in each layer group;
[0025] Select each layer group in reverse order of their numbers, and then perform sequential decoding on each layer within the selected layer group.
[0026] Optionally, each layer group is selected in reverse order of its number, and sequential decoding is performed on each layer in the selected layer group, including:
[0027] Initialize the current layer group number i and the counter k; where the initial value of i is the maximum number of the layer group, and the initial value of k is 1;
[0028] Determine the current layer number j i The maximum layer number of the i-th layer group;
[0029] Choose the j-th i The k-th row of the layer is subjected to LDPC layered decoding; where S is the number of parallel rows.
[0030] If j i If the smallest layer number is not in the i-th layer group, then j i =j i -1, repeat the selection of the j-th node. i The steps for performing LDPC layered decoding on the kth S-row of the layer and subsequent steps;
[0031] If j iIf the minimum layer number of the i-th layer group is given, then when the k-th row of S is not the last row of a layer, k = k + 1, and the process of determining the current layer number j is repeated. i The steps for determining the maximum layer number of the i-th layer group and subsequent steps are as follows: When the k-th row S is the last S row in the layer, if i is not the minimum layer number, then i = i-1, and the steps are repeated to determine the current layer number j. i The steps for determining the maximum layer number of the i-th layer group and subsequent steps are as follows: if i is the minimum layer number of the layer group, then the decoding is complete.
[0032] Optionally, the indices of the non-zero elements in each row are divided into P groups;
[0033] Choose the j-th i The k-th S-row of the layer is subjected to LDPC layered decoding, including:
[0034] LDPC layered decoding is performed on each group simultaneously according to the row number order.
[0035] A second aspect of this application provides an LDPC decoding apparatus, the apparatus comprising:
[0036] The processing module is used to divide the verification matrix into multiple layers by row;
[0037] The merging module is used to merge multiple layers to obtain multiple layer groups; each layer group is numbered sequentially.
[0038] The decoding module is used to decode in reverse order based on each layer group.
[0039] A third aspect of this application provides an electronic device, comprising:
[0040] Memory;
[0041] Processor; and
[0042] Computer programs;
[0043] The computer program is stored in the memory and configured to be executed by the processor to implement the method described in the first aspect above.
[0044] In a fourth aspect, this application provides a computer-readable storage medium having a computer program stored thereon; the computer program is executed by a processor to implement the method described in the first aspect above.
[0045] This application provides an LDPC decoding method, apparatus, device, and storage medium. The method includes: dividing the parity check matrix into multiple layers by rows; merging the multiple layers to obtain multiple layer groups; wherein each layer group is sequentially numbered; and decoding is performed in reverse order based on each layer group. This method, by dividing the rows into layers and then grouping the layers, and then decoding in reverse order based on each layer group, avoids processing latency caused by layer jumps and facilitates the implementation of parallel pipelines. Attached Figure Description
[0046] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0047] Figure 1 A flowchart illustrating an LDPC decoding method provided in an embodiment of this application;
[0048] Figure 2 A schematic diagram of an LDPC decoding device provided in an embodiment of this application;
[0049] Figure 3 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0050] To make the technical solutions and advantages of the embodiments of this application clearer, the exemplary embodiments of this application will be described in further detail below with reference to the accompanying drawings. Obviously, the described embodiments are only a part of the embodiments of this application, and not an exhaustive list of all embodiments. It should be noted that, unless otherwise specified, the embodiments and features in the embodiments of this application can be combined with each other.
[0051] In the process of developing this application, the inventors discovered that currently, LDPC layered decoding employs reverse scheduling, which can improve the bit error rate performance of the decoding algorithm. However, the scheduling order is based on the fundamental matrix H. b The row weight values are rearranged in ascending order, based on the LDPC fundamental matrix H in the 5G NR communication system. b Rearranging the structure according to the row weight values in ascending order will cause the layer index to jump, which is not conducive to the implementation of parallel pipeline.
[0052] To address the aforementioned problems, this application provides an LDPC decoding method, apparatus, device, and storage medium. The method includes: dividing the parity check matrix into multiple layers by rows; merging the multiple layers to obtain multiple layer groups; wherein each layer group is sequentially numbered; and decoding is performed in reverse order based on each layer group. This method, by dividing the rows into layers and then grouping the layers, and then decoding in reverse order based on each layer group, avoids processing latency caused by layer jumps and facilitates the implementation of parallel pipelines.
[0053] See Figure 1 This embodiment provides an LDPC decoding method, the implementation process of which is as follows:
[0054] 101. Divide the parity check matrix into multiple layers by row.
[0055] Each Zc line represents one layer, and Zc is the expansion factor.
[0056] In any layer, all rows have the same row weight, and all columns have a maximum column weight of 1.
[0057] Row weight is the number of non-zero elements in a row, and column weight is the number of non-zero elements in a column.
[0058] For example, 5G NR LDPC base matrix H b If the dimension of the verification matrix H is Hrow×Hcol and the expansion factor is Zc, then the dimension of the verification matrix H is M×N=(Hrow×Zc)×(Hcol×Zc), where M is the number of verification nodes and N is the number of variable nodes.
[0059] In step 101, the parity check matrix H is layered along the row dimension, with each Zc row constituting one layer, for a total of Hrow layers, with layer numbers l = 1, 2, 3, ..., Hrow. Due to the design characteristics of 5G NR LDPC, after the above layering, each layer of the parity check matrix H has the following characteristics: the row weight of each row in each layer is equal (row weight refers to the number of non-zero elements in a row), and the column weight of each column in each layer is at most 1 (column weight refers to the number of non-zero elements in a column).
[0060] 102. Merge multiple layers to obtain multiple layer groups.
[0061] The layers are numbered sequentially.
[0062] The implementation process of step 102 is as follows:
[0063] 102-1, group the layers according to the layer number to obtain multiple layer groups.
[0064] In step 102-1, some layers will be merged based on the row weight of each layer. Taking the basic graph matrix BG type 1 of the verification matrix H as an example, the number of layers Hrow before merging is 46, and the number of layer groups Hrow1 after merging is 10. That is, if there are a total of 46 layers, then in step 102-1:
[0065] Each of the layers numbered 4, 3, 2, and 1 is treated as a layer group, resulting in four layer groups.
[0066] The layers numbered 10, 9, 8, 7, 6, and 5 are merged to obtain a layer group.
[0067] The layers numbered 18, 17, 16, 15, 14, 13, 12, and 11 are merged to obtain a layer group.
[0068] The layers numbered 28, 27, 26, 25, 24, 23, 22, 21, 20, and 19 are merged to obtain a layer group.
[0069] The layers numbered 36, 35, 34, 33, 32, 31, 30, and 29 are merged to obtain a layer group.
[0070] The layers numbered 42, 41, 40, 39, 38, and 37 are merged to form a layer group.
[0071] The layers numbered 46, 45, 44, and 43 are merged to form a layer group.
[0072] 102-2, divide the indices of the non-zero elements in each row of the layer group into P groups.
[0073] Where P is the number of columns processed in one operation.
[0074] For example, one clock cycle can process P non-zero element nodes in S rows in parallel, where S≤Zc. In step 102-2, the column indices of all non-zero elements in each row are divided into P groups, and the column indices of each row are divided into P groups as evenly as possible. This ensures that the processing time of each group is relatively balanced. The column index after grouping is denoted as idx_Hcol.
[0075] After executing step 102, the original 46 layers will be reduced to 10 groups, which reduces the maintenance of parameters and makes the processing time of each group relatively balanced, which is beneficial to the design and implementation of parallel pipelines.
[0076] 103. Based on each layer group, decode in reverse order.
[0077] The implementation process of step 103 is as follows:
[0078] 103-1, Initialize the values of variable nodes and check nodes in each layer group.
[0079] 103-2, Select each layer group in reverse order of number, and perform sequential decoding on each layer in the selected layer group.
[0080] The implementation details of step 103-2 are as follows:
[0081] 201. Initialize the current layer group number i and the counter k.
[0082] Where i is initially set to the maximum number of the layer group, and k is initially set to 1.
[0083] 202, determine the current layer number j i It is the maximum layer number of the i-th layer group.
[0084] 203, select the j-th i Perform LDPC layered decoding on the k-th S-row of the layer.
[0085] Where S is the number of parallel rows.
[0086] Since the indices of the non-zero elements in each row are evenly divided into P groups, the j-th element is selected. i The process of performing LDPC layered decoding on the k-th row S of the layer is as follows: LDPC layered decoding is performed on each group simultaneously according to the row number order.
[0087] During decoding, the variable node LLR (Log-Likelihood Ratio), check node LLR, and variable node posterior probability information are updated for each layer. The posterior probability value of the variable node at this time is used to make a decoding decision, and one iteration of decoding is completed.
[0088] 204, if j i If the smallest layer number is not in the i-th layer group, then j i =j i -1, repeat the selection of the j-th node. i The steps for performing LDPC layered decoding on the k-th S-row of the layer (i.e., step 203) and subsequent steps.
[0089] If j i If the minimum layer number of the i-th layer group is given, then when the k-th row of S is not the last row of a layer, k = k + 1, and the process of determining the current layer number j is repeated. i The step for determining the maximum layer number of the i-th layer group (i.e., step 202) and subsequent steps. When the k-th row S is the last S row in the layer, if i is not the minimum number of the layer group, then i = i-1, and the step is repeated to determine the current layer number j. i The step (i.e., step 202) is the largest layer number of the i-th layer group, and subsequent steps are performed. If i is the smallest layer number of the layer group, then the decoding is completed.
[0090] Taking the basic graph matrix BG type 1 of the verification matrix H as an example, the number of layers Hrow = 46 (i.e., layer number k = 1, 2, 3, ..., 46), the number of groups Hrow1 = 10 (i.e., the group number = 1, 2, 3, ..., 10), and the relationship between the groups and the layers is shown in Table 1.
[0091] Table 1
[0092] Layer group numbering corresponding layer 1 l=1 2 l=2 3 l=3 4 l=4 5 l=5,6,7,8,9,10 6 l=11,12,13,14,15,16,17,18 7 k=19,20,21,22,23,24,25,26,27,28 8 l=29,30,31,32,33,34,35,36 9 l=37,38,39,40,41,42 10 l=43,44,45,46
[0093] In step 201, i = 10 and k = 1 are initialized.
[0094] In step 202, determine j i The maximum layer number of the 10th layer group is 46, i.e., j i =46.
[0095] In step 203, the first S row of the 46th layer (i.e., the first S row) is selected for LDPC layered decoding.
[0096] In step 204, if 46 is not the smallest layer number (43) of the 10th layer group, then j i =j i -1 = 46 - 1 = 45. Repeat step 203 (i.e., select the first S row of the 45th layer (i.e., the first S row) for LDPC layered decoding), 45 is the smallest layer number (43) of the non-10th layer group, then j i =j i -1 = 45 - 1 = 44. Repeat step 203 (i.e., select the first S row of the 44th layer (i.e., the first S row) for LDPC layered decoding), 44 is the smallest layer number (43) of the non-10th layer group, then j i =j i -1 = 44 - 1 = 43. Repeat step 203 (i.e., select the first S row of the 43rd layer (i.e., the first S row) for LDPC layered decoding).
[0097] At this point, 43 is the smallest layer number (43) in the 10th layer group. The processing of the first S rows of all layers in the 10th layer group has now been completed. Therefore, the first S row (i.e., the first S row) is not the last S row in the layer. Thus, k = k + 1 = 1 + 1 = 2. Repeat step 202 (i.e., determine j). i =46), step 203 (i.e., select the second S row of the 46th layer (i.e., the next S row) for LDPC layered decoding), ... That is, process the next S rows of all layers in the 10th layer group.
[0098] …
[0099] When the k-th S-line is the last S-line in the layer, it indicates that the processing of all layers in the 10th layer group has been completed. Then the minimum number of the 10th non-layer group (i.e., the minimum number is 1) is i = i-1 = 10-1 = 9. Repeat step 202 (i.e., determine j). i The maximum layer number of the 9th layer group is 42, which is j i =42) and subsequent steps, ...
[0100] If i is the smallest number of the layer group, it means that the processing of all layers in all layer groups has been completed, and therefore the decoding is complete.
[0101] As can be seen from the above processing procedure, when performing LDPC layered decoding, it will be processed in reverse order of layer groups (i.e., in the order of layer group 10, layer group 9, layer group 8, layer group 7, layer group 6, layer group 5, layer group 4, layer group 3, layer group 2, and layer group 1).
[0102] During processing of each layer group, LDPC decoding is performed on each layer in a pipelined manner. That is, it starts with the layer with the smallest layer number in the group, processing the S rows of each layer in each round. For example, when processing the 10th layer group, the first round processes the first S rows of layer 43, the first S rows of layer 44, the first S rows of layer 45, and the first S rows of layer 46 in that order. The second round processes the next S rows of layer 43, the next S rows of layer 44, the next S rows of layer 45, and the next S rows of layer 46 in that order, and so on, until the last S rows of each layer are processed. In other words, it will perform... Round processing.
[0103] The method used in this embodiment, which decodes each layer group in reverse order, can avoid inter-layer jumps.
[0104] In LDPC layered decoding, the row weights of each layer differ significantly. In existing schemes, when the basic graph matrix BG of the parity-check matrix H is of type 1, the basic matrix H... b The largest row weight is 22 and the smallest row weight is 3. In the parallel design process, assuming that one clock cycle can process 4 valid nodes of 1 row in parallel (i.e., P=4), the row with the largest row weight needs ceil(19 / 4)=5 clock cycles to be processed. However, the row with the smallest row weight only needs ceil(3 / 4)=1 cycle. This will lead to a waste of resources and is not conducive to the design of inter-layer pipeline.
[0105] The LDPC decoding method provided in this embodiment merges multiple layers to obtain multiple layer groups, which can merge multiple rows with smaller row weights into one layer for processing, making the processing time of each layer relatively balanced, which is beneficial for parallel pipeline design and implementation.
[0106] The LDPC decoding method provided in this embodiment can avoid the processing delay caused by layer jumps and is conducive to the implementation of parallel pipelines.
[0107] The LDPC decoding method provided in this embodiment mainly involves the scheduling order and multi-level merging of layered decoding. First, the layers are grouped according to their layer numbers to obtain multiple layer groups, which can be determined based on the fundamental matrix H. b The method involves row redistribution, merging multiple layers with smaller row weights into a single layer group. The number of layers before merging is Hrow, and the number of layer groups after merging is Hrow1, where Hrow1 ≤ Hrow. Secondly, during LDPC layered decoding, decoding is performed in reverse order based on each layer group to avoid inter-layer jumps. The LDPC decoding method provided in this embodiment not only ensures optimized decoding performance but also facilitates parallel pipeline design and implementation.
[0108] The LDPC decoding method provided in this embodiment is a layered LDPC decoding method for 5G NR. On the one hand, decoding in reverse order based on each layer group during LDPC layered decoding can ensure the bit error rate performance of the decoding algorithm while facilitating the design of parallel pipelines. On the other hand, merging multiple layers during LDPC layered decoding to obtain multiple layer groups can make the processing time of each layer relatively balanced, which is beneficial to the design and implementation of parallel pipelines. Therefore, the LDPC decoding method provided in this embodiment can both guarantee decoding performance and facilitate the implementation of parallel pipelines.
[0109] The LDPC decoding method provided in this embodiment, based on hierarchical decoding optimization scheduling, decodes each layer group in reverse order. While ensuring the bit error rate performance of the decoding algorithm, it eliminates inter-layer jumps. Furthermore, during LDPC hierarchical decoding, multiple layers are merged to obtain multiple layer groups, making the processing time of each layer relatively balanced, which is beneficial for parallel pipeline design and implementation.
[0110] This embodiment provides an LDPC decoding method that divides the parity check matrix into multiple layers by rows; merges the multiple layers to obtain multiple layer groups; wherein each layer group is sequentially numbered; and decodes in reverse order based on each layer group. The method provided in this embodiment, by dividing the rows into layers and then grouping the layers, and then decoding in reverse order based on each layer group, can avoid the processing latency caused by layer jumps and facilitates the implementation of parallel pipelines.
[0111] Based on the same inventive concept of the LDPC decoding method, this embodiment provides an LDPC decoding apparatus, such as... Figure 2 As shown, the device includes:
[0112] Processing module 201 is used to divide the parity check matrix into multiple layers by row. Each Zc row is a layer, and Zc is the expansion factor.
[0113] The merging module 202 is used to merge multiple layers to obtain multiple layer groups. Each layer group is sequentially numbered.
[0114] Decoding module 203 is used to perform decoding in reverse order based on each layer group.
[0115] In any given layer, all rows have the same row weight, and all columns have a maximum column weight of 1.
[0116] Row weight is the number of non-zero elements in a row, and column weight is the number of non-zero elements in a column.
[0117] The merging module 202 is used to group the layers according to the layer number to obtain multiple layer groups.
[0118] Divide the indices of the non-zero elements in each row of the layer group into P groups. Here, P is the number of columns processed at one time.
[0119] If there are 46 layers in total, the layers are grouped according to their layer numbers to obtain multiple layer groups, including:
[0120] Each of the layers numbered 4, 3, 2, and 1 is treated as a layer group, resulting in four layer groups.
[0121] The layers numbered 10, 9, 8, 7, 6, and 5 are merged to obtain a layer group.
[0122] The layers numbered 18, 17, 16, 15, 14, 13, 12, and 11 are merged to obtain a layer group.
[0123] The layers numbered 28, 27, 26, 25, 24, 23, 22, 21, 20, and 19 are merged to obtain a layer group.
[0124] The layers numbered 36, 35, 34, 33, 32, 31, 30, and 29 are merged to obtain a layer group.
[0125] The layers numbered 42, 41, 40, 39, 38, and 37 are merged to form a layer group.
[0126] The layers numbered 46, 45, 44, and 43 are merged to form a layer group.
[0127] Among them, the decoding module 203 is used to initialize the values of the variable nodes and check nodes of each layer in each layer group.
[0128] Select each layer group in reverse order of their numbers, and then perform sequential decoding on each layer within the selected layer group.
[0129] The process involves selecting each layer group in reverse order of its number, and then performing sequential decoding on each layer within the selected layer group, including:
[0130] Initialize the current layer group number i and the counter k. The initial value of i is the maximum layer group number, and the initial value of k is 1.
[0131] Determine the current layer number j i It is the maximum layer number of the i-th layer group.
[0132] Choose the j-th i The k-th row of the layer is subjected to LDPC layered decoding. Here, S is the number of parallel rows.
[0133] If j i If the smallest layer number is not in the i-th layer group, then j i =j i -1, repeat the selection of the j-th node. i The steps for performing LDPC layered decoding on the k-th S-row of the layer and subsequent steps.
[0134] If j i If the minimum layer number of the i-th layer group is given, then when the k-th row of S is not the last row of a layer, k = k + 1, and the process of determining the current layer number j is repeated. i This involves determining the maximum layer number for the i-th layer group and subsequent steps. When the k-th row S is the last S row in the layer, if i is not the minimum layer number, then i = i-1, and the steps to determine the current layer number j are repeated. i The steps for determining the maximum layer number of the i-th layer group and subsequent steps are as follows: if i is the minimum layer number of the layer group, then the decoding is complete.
[0135] In this system, the indices of the non-zero elements in each row are divided into P groups.
[0136] Choose the j-th i The k-th S-row of the layer is subjected to LDPC layered decoding, including:
[0137] LDPC layered decoding is performed on each group simultaneously according to the row number order.
[0138] The device provided in this embodiment divides rows into layers, then groups the layers, and decodes them in reverse order based on each layer group. This avoids the processing delay caused by layer jumps and facilitates the implementation of parallel pipelines.
[0139] Based on the same inventive concept of the LDPC decoding method, this embodiment provides an electronic device, which is as follows: Figure 3 As shown, it includes: a memory 301, a processor 302, and a computer program.
[0140] The computer program is stored in memory 301 and configured to be executed by processor 302 to implement the LDPC decoding method described above.
[0141] Specifically,
[0142] The verification matrix is divided into multiple layers by row.
[0143] Multiple layers are merged to obtain multiple layer groups. Each layer group is numbered sequentially.
[0144] Decoding is performed in reverse order based on each layer group.
[0145] In any given layer, all rows have the same row weight, and all columns have a maximum column weight of 1.
[0146] Row weight is the number of non-zero elements in a row, and column weight is the number of non-zero elements in a column.
[0147] This involves merging multiple layers to obtain multiple layer groups, including:
[0148] The layers are grouped according to their layer numbers to obtain multiple layer groups.
[0149] Divide the indices of the non-zero elements in each row of the layer group into P groups. Here, P is the number of columns processed at one time.
[0150] If there are 46 layers in total, the layers are grouped according to their layer numbers to obtain multiple layer groups, including:
[0151] Each of the layers numbered 4, 3, 2, and 1 is treated as a layer group, resulting in four layer groups.
[0152] The layers numbered 10, 9, 8, 7, 6, and 5 are merged to obtain a layer group.
[0153] The layers numbered 18, 17, 16, 15, 14, 13, 12, and 11 are merged to obtain a layer group.
[0154] The layers numbered 28, 27, 26, 25, 24, 23, 22, 21, 20, and 19 are merged to obtain a layer group.
[0155] The layers numbered 36, 35, 34, 33, 32, 31, 30, and 29 are merged to obtain a layer group.
[0156] The layers numbered 42, 41, 40, 39, 38, and 37 are merged to form a layer group.
[0157] The layers numbered 46, 45, 44, and 43 are merged to form a layer group.
[0158] Among them, decoding is performed in reverse order based on each layer group, including:
[0159] Initialize the values of the variable nodes and check nodes in each layer group.
[0160] Select each layer group in reverse order of their numbers, and then perform sequential decoding on each layer within the selected layer group.
[0161] The process involves selecting each layer group in reverse order of its number, and then performing sequential decoding on each layer within the selected layer group, including:
[0162] Initialize the current layer group number i and the counter k. The initial value of i is the maximum layer group number, and the initial value of k is 1.
[0163] Determine the current layer number j i It is the maximum layer number of the i-th layer group.
[0164] Choose the j-th i The k-th row of the layer is subjected to LDPC layered decoding. Here, S is the number of parallel rows.
[0165] If j i If the smallest layer number is not in the i-th layer group, then j i =j j -1, repeat the selection of the j-th node. i The steps for performing LDPC layered decoding on the k-th S-row of the layer and subsequent steps.
[0166] If j i If the minimum layer number of the i-th layer group is given, then when the k-th row of S is not the last row of a layer, k = k + 1, and the process of determining the current layer number j is repeated. i This involves determining the maximum layer number for the i-th layer group and subsequent steps. When the k-th row S is the last S row in the layer, if i is not the minimum layer number, then i = i-1, and the steps to determine the current layer number j are repeated. i The steps for determining the maximum layer number of the i-th layer group and subsequent steps are as follows: if i is the minimum layer number of the layer group, then the decoding is complete.
[0167] In this system, the indices of the non-zero elements in each row are divided into P groups.
[0168] Choose the j-th i The k-th S-row of the layer is subjected to LDPC layered decoding, including:
[0169] LDPC layered decoding is performed on each group simultaneously according to the row number order.
[0170] The electronic device provided in this embodiment has a computer program executed by a processor to divide the rows into layers, then group the layers, and decode them in reverse order based on each layer group. This can avoid the processing delay caused by layer jumps and facilitate the implementation of parallel pipelines.
[0171] Based on the same inventive concept as the LDPC decoding method, this embodiment provides a computer-readable storage medium on which a computer program is stored. The computer program is executed by a processor to implement the aforementioned LDPC decoding method.
[0172] Specifically,
[0173] The verification matrix is divided into multiple layers by row.
[0174] Multiple layers are merged to obtain multiple layer groups. Each layer group is numbered sequentially.
[0175] Decoding is performed in reverse order based on each layer group.
[0176] In any given layer, all rows have the same row weight, and all columns have a maximum column weight of 1.
[0177] Row weight is the number of non-zero elements in a row, and column weight is the number of non-zero elements in a column.
[0178] This involves merging multiple layers to obtain multiple layer groups, including:
[0179] The layers are grouped according to their layer numbers to obtain multiple layer groups.
[0180] Divide the indices of the non-zero elements in each row of the layer group into P groups. Here, P is the number of columns processed at one time.
[0181] If there are 46 layers in total, the layers are grouped according to their layer numbers to obtain multiple layer groups, including:
[0182] Each of the layers numbered 4, 3, 2, and 1 is treated as a layer group, resulting in four layer groups.
[0183] The layers numbered 10, 9, 8, 7, 6, and 5 are merged to obtain a layer group.
[0184] The layers numbered 18, 17, 16, 15, 14, 13, 12, and 11 are merged to obtain a layer group.
[0185] The layers numbered 28, 27, 26, 25, 24, 23, 22, 21, 20, and 19 are merged to obtain a layer group.
[0186] The layers numbered 36, 35, 34, 33, 32, 31, 30, and 29 are merged to obtain a layer group.
[0187] The layers numbered 42, 41, 40, 39, 38, and 37 are merged to form a layer group.
[0188] The layers numbered 46, 45, 44, and 43 are merged to form a layer group.
[0189] Among them, decoding is performed in reverse order based on each layer group, including:
[0190] Initialize the values of the variable nodes and check nodes in each layer group.
[0191] Select each layer group in reverse order of their numbers, and then perform sequential decoding on each layer within the selected layer group.
[0192] The process involves selecting each layer group in reverse order of its number, and then performing sequential decoding on each layer within the selected layer group, including:
[0193] Initialize the current layer group number i and the counter k. The initial value of i is the maximum layer group number, and the initial value of k is 1.
[0194] Determine the current layer number j i It is the maximum layer number of the i-th layer group.
[0195] Choose the j-th i The k-th row of the layer is subjected to LDPC layered decoding. Here, S is the number of parallel rows.
[0196] If j i If the smallest layer number is not in the i-th layer group, then j i =j i -1, repeat the selection of the j-th node. i The steps for performing LDPC layered decoding on the k-th S-row of the layer and subsequent steps.
[0197] If j i If the minimum layer number of the i-th layer group is given, then when the k-th row of S is not the last row of a layer, k = k + 1, and the process of determining the current layer number j is repeated. i This involves determining the maximum layer number for the i-th layer group and subsequent steps. When the k-th row S is the last S row in the layer, if i is not the minimum layer number, then i = i-1, and the steps to determine the current layer number j are repeated. i The steps for determining the maximum layer number of the i-th layer group and subsequent steps are as follows: if i is the minimum layer number of the layer group, then the decoding is complete.
[0198] In this system, the indices of the non-zero elements in each row are divided into P groups.
[0199] Choose the j-th i The k-th S-row of the layer is subjected to LDPC layered decoding, including:
[0200] LDPC layered decoding is performed on each group simultaneously according to the row number order.
[0201] The computer-readable storage medium provided in this embodiment allows a computer program thereon to be executed by a processor to layer rows, group the layers, and decode them in reverse order based on each layer group. This avoids processing delays caused by layer jumps and facilitates the implementation of parallel pipelines.
[0202] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code. The solutions in the embodiments of this application can be implemented in various computer languages, such as the object-oriented programming language Java and the interpreted scripting language JavaScript.
[0203] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0204] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0205] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0206] Although preferred embodiments of this application have been described, those skilled in the art, upon learning the basic inventive concept, can make other changes and modifications to these embodiments. Therefore, the appended claims are intended to be interpreted as including the preferred embodiments as well as all changes and modifications falling within the scope of this application.
[0207] Obviously, those skilled in the art can make various modifications and variations to this application without departing from the spirit and scope of this application. Therefore, if such modifications and variations fall within the scope of the claims of this application and their equivalents, this application also intends to include such modifications and variations.
Claims
1. An LDPC decoding method, characterized in that, The method includes: Divide the verification matrix into multiple layers by row; Multiple layers are merged to obtain multiple layer groups; each layer group is numbered sequentially. Decoding is performed in reverse order based on each layer group.
2. The method according to claim 1, characterized in that, In any of the layers, the row weight of each row is equal, and the column weight of each column is at most 1. Row weight is the number of non-zero elements in a row, and column weight is the number of non-zero elements in a column.
3. The method according to claim 1, characterized in that, The process of merging multiple layers to obtain multiple layer groups includes: The layers are grouped according to their layer numbers to obtain multiple layer groups; Divide the indices of the non-zero elements in each row of the layer group into P groups; where P is the number of columns processed at one time.
4. The method according to claim 3, characterized in that, If there are 46 layers in total, then the layers are grouped according to their layer numbers to obtain multiple layer groups, including: Each of the layers numbered 4, 3, 2, and 1 is treated as a layer group, resulting in four layer groups. The layers numbered 10, 9, 8, 7, 6, and 5 are merged to obtain a layer group; The layers numbered 18, 17, 16, 15, 14, 13, 12, and 11 are merged to obtain a layer group; The layers numbered 28, 27, 26, 25, 24, 23, 22, 21, 20, and 19 are merged to obtain a layer group; The layers numbered 36, 35, 34, 33, 32, 31, 30, and 29 are merged to obtain a layer group; The layers numbered 42, 41, 40, 39, 38, and 37 are merged to obtain a layer group; The layers numbered 46, 45, 44, and 43 are merged to form a layer group.
5. The method according to claim 1, characterized in that, The decoding based on each layer group, performed in reverse order, includes: Initialize the values of the variable nodes and check nodes in each layer group; Select each layer group in reverse order of their numbers, and then perform sequential decoding on each layer within the selected layer group.
6. The method according to claim 5, characterized in that, The step of selecting each layer group in reverse order of its number and performing sequential decoding on each layer within the selected layer group includes: Initialize the current layer group number i and the counter k; where the initial value of i is the maximum number of the layer group, and the initial value of k is 1; Determine the current layer number j i The maximum layer number of the i-th layer group; Choose the j-th i The k-th row of the layer is subjected to LDPC layered decoding; where S is the number of parallel rows. If j i If the smallest layer number is not in the i-th layer group, then j i =j i -1, repeat the selection of the j-th node. i The steps for performing LDPC layered decoding on the kth S-row of the layer and subsequent steps; If j i If the minimum layer number of the i-th layer group is given, then when the k-th S-row is not the last S-row in the layer, k = k + 1, and the process of determining the current layer number j is repeated. i The steps for determining the maximum layer number of the i-th layer group and subsequent steps are as follows: When the k-th row S is the last S row in the layer, if i is not the minimum layer number, then i = i-1, and the steps are repeated to determine the current layer number j. i The steps for determining the maximum layer number of the i-th layer group and subsequent steps are as follows: if i is the minimum layer number of the layer group, then the decoding is complete.
7. The method according to claim 6, characterized in that, The indices of the non-zero elements in each row are divided into P groups; The selection of the j-th i The k-th S-row of the layer is subjected to LDPC layered decoding, including: LDPC layered decoding is performed on each group simultaneously according to the row number order.
8. An LDPC decoding device, characterized in that, The device includes: The processing module is used to divide the verification matrix into multiple layers by row; The merging module is used to merge multiple layers to obtain multiple layer groups; each layer group is numbered sequentially. The decoding module is used to decode in reverse order based on each layer group.
9. An electronic device, characterized in that, include: Memory; processor; as well as Computer programs; The computer program is stored in the memory and configured to be executed by the processor to implement the method as described in any one of claims 1-7.
10. A computer-readable storage medium, characterized in that, It stores a computer program thereon; the computer program is executed by a processor to implement the method as described in any one of claims 1-7.