Unreliable code element position searching method, decoding method, device, equipment and medium
By grouping and filtering the current component codes, unreliable symbol locations are determined, and the problems of high hardware complexity and delay time caused by the full sorting method in the prior art are solved, and more efficient symbol location search is achieved.
Patent Information
- Application Number
- CN202411383536.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2025-02-18
- Estimated Expiration
- 2044-09-30
AI Technical Summary
The prior art uses a fully sorted method to find the unreliable position of the current component code during the decoding process, resulting in high hardware implementation complexity and long signal delay.
A method for finding unreliable symbol locations is proposed. By dividing the current component code into multiple groups, selecting symbols with low confidence in each group, and repeatedly grouping and filtering according to the judgment results until the unreliable symbol location is determined.
Reduces the complexity of the sorting process, reduces delays, uses less hardware computing resources, and ensures the performance of unreliable symbol position search.
Smart Images

Figure CN119483823A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communication technology, and in particular to an unreliable codeword position search method, decoding method, device, equipment and medium. Background Art
[0002] The unreliable position of the current component code is needed in the decoding process. Currently, a full sorting method is generally used to find the unreliable position of the current component code.
[0003] Since the full sorting method requires all code elements to be sorted, this will consume a large number of comparison levels for sorting, resulting in higher complexity in hardware implementation and longer signal delay consumption. Summary of the invention
[0004] In view of this, the purpose of the present application is to propose an unreliable codeword position search method, decoding method, device, equipment and medium.
[0005] Based on the above purpose, the first aspect of the present application provides a method for finding an unreliable codeword position, comprising:
[0006] Dividing the current component code into a plurality of groups, and selecting a first predetermined number of code elements with low confidence in each group;
[0007] Determine whether the number of code elements with low confidence selected from the current component code is greater than a second predetermined number, and obtain a determination result, or determine whether the number of groups of the current component code is greater than a predetermined number, and obtain a determination result;
[0008] In response to the judgment result being yes, repeatedly grouping every third predetermined number of all selected groups into a new group, and selecting a first predetermined number of code elements with low confidence in each new group until the judgment result is no; and / or,
[0009] In response to the judgment result being no, sorting the finally selected code elements with low confidence to obtain a sorting result;
[0010] A fourth predetermined number of code elements with low confidence levels in the sorting result are selected, and positions of the fourth predetermined number of code elements are used as unreliable code element position search results for the current component code.
[0011] Based on the same inventive concept, the second aspect of the present application provides a method for decoding a code element, comprising:
[0012] According to the unreliable symbol position search method described in the first aspect above, an unreliable symbol position search result of the current component code is obtained;
[0013] Flipping the unreliable symbol position search result to obtain multiple flip test sequences;
[0014] A verification process is performed on each of the flip test sequences, and a flip test sequence that succeeds in verification and is closest to the current component code is used as a decoding result.
[0015] Based on the same inventive concept, the third aspect of the present application provides an unreliable symbol position search device, comprising:
[0016] A grouping selection module is configured to divide the current component code into a plurality of groups, and select a first predetermined number of code elements with low confidence in each group;
[0017] A judgment module is configured to judge whether the number of code elements with low confidence selected from the current component code is greater than a second predetermined number, and obtain a judgment result, or to judge whether the number of groups of the current component code is greater than a predetermined number, and obtain a judgment result;
[0018] a repeated selection module configured to, in response to the judgment result being yes, repeatedly group every third predetermined number of all the selected groups into a new group, and select a first predetermined number of code elements with low confidence in each new group, until the judgment result is no; and / or,
[0019] A merge sorting module is configured to sort the finally selected low-confidence code elements in response to the judgment result being negative, to obtain a sorting result;
[0020] The search module is configured to select a fourth predetermined number of code elements with low confidence in the sorting result, and use the positions of the fourth predetermined number of code elements as the unreliable code element position search result of the current component code.
[0021] Based on the same inventive concept, the fourth aspect of the present application provides a decoding device for a code element, comprising:
[0022] An unreliable symbol position search device is configured to obtain an unreliable symbol position search result of the current component code according to the unreliable symbol position search method described in the first aspect;
[0023] A flip processing module is configured to perform flip processing on the unreliable symbol position search result to obtain multiple flip test sequences;
[0024] The decoding module is configured to perform verification processing on each of the flip test sequences, and take the flip test sequence that succeeds in verification and is closest to the current component code as the decoding result.
[0025] Based on the same inventive concept, the fifth aspect of the present application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable by the processor, wherein the processor implements the method as described above when executing the computer program.
[0026] Based on the same inventive concept, the sixth aspect of the present application also provides a non-transitory computer-readable storage medium, which stores computer instructions, and the computer instructions are used to enable a computer to execute the method as described above.
[0027] As can be seen from the above, the unreliable codeword position search method, decoding method, device, equipment and medium provided by the present application can group the current component code, and then select a first predetermined number of codewords with low confidence for each group, so that the codewords with relatively high confidence in the group can be discarded; then the codewords with low confidence selected from all groups are combined to determine whether the number of codewords with low confidence after combination is greater than the second predetermined number, or whether the number of grouping groups of the current component code is greater than the predetermined number of groups; if the judgment result is yes, it proves that the number of codewords with low confidence after combination is large, and it is necessary to combine every third predetermined number of groups into a new group, so that the number of multiple new groups obtained is less than the original number of groups, and the first predetermined number of codewords with low confidence can be re-screened for the new group, and the process of combining and re-screening is repeated until the judgment result is no and the repetition is stopped; if the judgment result is no, the codewords with low confidence finally selected are sorted, and the positions of the fourth predetermined number of codewords with low confidence are used as the unreliable codeword position search result. In this way, by discarding the codewords with high confidence in each group and excluding them from participating in the sorting, the complexity of the sorting process can be reduced, the delay can be reduced, and less hardware computing resources can be used, while the performance of unreliable codeword position search can be guaranteed. BRIEF DESCRIPTION OF THE DRAWINGS
[0028] In order to more clearly illustrate the technical solutions in the present application or related technologies, the drawings required for use in the embodiments or related technical descriptions are briefly introduced below. Obviously, the drawings described below are only embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0029] Figure 1 A schematic diagram of fully sorting code elements with a code length of 16 in the related art;
[0030] Figure 2A A schematic diagram of a flow chart of an unreliable symbol position search method according to an embodiment of the present application;
[0031] Figure 2BA schematic diagram of sorting for approximate sorting in an embodiment of the present application;
[0032] Figure 3 A schematic diagram of a flowchart of a method for decoding a code element according to an embodiment of the present application;
[0033] Figure 4 This is a schematic diagram of the structure of an unreliable symbol position search device according to an embodiment of the present application;
[0034] Figure 5 A schematic diagram of the structure of a decoding device for code elements of an embodiment of the present application;
[0035] Figure 6 A schematic diagram of the structure of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION
[0036] In order to make the objectives, technical solutions and advantages of the present application more clearly understood, the present application is further described in detail below in combination with specific embodiments and with reference to the accompanying drawings.
[0037] It should be noted that, unless otherwise defined, the technical terms or scientific terms used in the embodiments of the present application should be the usual meanings understood by people with ordinary skills in the field to which the present application belongs. The "first", "second" and similar words used in the embodiments of the present application do not represent any order, quantity or importance, but are only used to distinguish different components. "Including" or "comprising" and similar words mean that the elements or objects appearing in front of the word cover the elements or objects listed after the word and their equivalents, without excluding other elements or objects. "Connect" or "connected" and similar words are not limited to physical or mechanical connections, but can include electrical connections, whether direct or indirect. "Up", "down", "left", "right" and the like are only used to indicate relative positional relationships. When the absolute position of the described object changes, the relative positional relationship may also change accordingly.
[0038] With the continuous development of communication technology, in the context of the rapid development of applications such as the Internet of Everything, cloud computing, and short video live broadcast, optical transport networks (OTN) with large bandwidth, high speed, and high stability have attracted much attention. In order to adapt to higher throughput and transmission rates, spatial coupling codes such as low-density parity check codes (LDPC), staircase codes, and Zipper codes are widely used in forward error correction (FEC) in OTN networks. For this type of spatial coupling code framework, related technologies have proposed many decoding algorithms based on Chase-Pyndiah code elements. This type of algorithm needs to determine the unreliable position of the current component code during the decoding process to generate a test sequence. The choice of the search method greatly affects the complexity of the decoding implementation.
[0039] At present, the method for determining unreliable positions is mainly based on the full sorting search method of the sorting network. The sorting network is used to sort the confidence metric value of each code element in the codeword to find the code element position with the smallest metric value, that is, the unreliable position.
[0040] With a code length of 16 ( Figure 1 Taking the black dots in the code as an example, the four most unreliable positions in the codeword are determined. The structure of the full sorting comparison network is as follows Figure 1 As shown:
[0041] like Figure 1 The comparison network shown in the figure fully sorts the metric values of 16 confidence levels, and finally takes the 4 code elements with the smallest confidence levels as unreliable positions. A total of 52 comparison units are consumed, and the longest signal delay consumes 10 levels of comparison. The comparison network used in this way consumes more comparison units and has too many comparison levels, which is more complex in hardware implementation and has a larger signal delay, which greatly increases the complexity and time consumption of decoding implementation.
[0042] The embodiments of the present application are described in detail below with reference to the accompanying drawings.
[0043] The embodiment of the present application proposes a method for finding an unreliable symbol position, such as Figure 2A As shown, including:
[0044] Step 201: divide the current component code into multiple groups, and select a first predetermined number of code elements with low confidence in each group.
[0045] In specific implementation, the confidence of each code element in the current component code is pre-calculated, and the number of code elements in the corresponding current component code should be a multiple of 2. The number of code elements in each group is also a multiple of 2, and the number of code elements in each group is equal.
[0046] After the groups are divided, the multiple code elements in each group are sorted according to the confidence level, and then a first predetermined number of code elements with low confidence levels are selected, and the remaining code elements in the group are discarded.
[0047] Step 202, determine whether the number of code elements with low confidence selected from the current component code is greater than a second predetermined number, and obtain a determination result, or determine whether the number of groups of the current component code is greater than a predetermined number, and obtain a determination result.
[0048] In specific implementation, after all groups are selected, it is necessary to integrate the low-confidence codewords of all groups of the current component code, and calculate the number of all selected low-confidence codewords. And judge whether the number is greater than the second predetermined number, or judge whether the number of grouped groups is greater than the predetermined number of groups after grouping, and then obtain the corresponding judgment result.
[0049] Step 203, in response to the judgment result being yes, repeatedly grouping every third predetermined number of all selected groups into a new group, and selecting a first predetermined number of code elements with low confidence in each new group, until the judgment result is no.
[0050] In specific implementation, if the judgment result is yes, it proves that the number of selected code elements with low confidence is large, and the process of selecting code elements with low confidence needs to be performed again. At this time, in order to be able to select again, it is necessary to group every third predetermined number of all selected groups into a new group, so that the number of code elements in the new group is equal to the number of code elements in each group divided in step 201. In this way, the process of "selecting the first predetermined number of code elements with low confidence in each group" in step 201 can be repeated for the new group; then the process of step 202 is executed for judgment. If the judgment result is still yes, then continue to group every third predetermined number of all selected groups into a new group, and then repeat the process of "selecting the first predetermined number of code elements with low confidence in each group" in step 201 for the new group. This is repeated until the judgment result is no.
[0051] And / or, step 204, in response to the judgment result being no, sorting the finally selected code elements with low confidence to obtain a sorting result.
[0052] In specific implementation, if the judgment result is determined to be no after the above steps, it proves that the number of code elements with low confidence levels finally selected is small, and a full sorting process can be performed. They will be sorted from small to large or from large to small according to their confidence levels to obtain the sorting result.
[0053] Step 205: Select a fourth predetermined number of code elements with low confidence in the sorting result, and use the positions of the fourth predetermined number of code elements as the unreliable code element position search result of the current component code.
[0054] In specific implementation, for the above sorting result, if the sorting result is arranged from large to small according to the confidence, the last fourth predetermined number of code elements are selected; if the sorting result is arranged from small to large according to the confidence, the first fourth predetermined number of code elements are selected. The fourth predetermined number of code elements selected in this way have low confidence and are relatively unreliable, so the positions of the fourth predetermined number of code elements can be used as the unreliable code element position search result.
[0055] Through the above scheme, the current component code can be grouped, and then the first predetermined number of code elements with low confidence are selected for each group, so that the code elements with relatively high confidence in the group can be discarded; then the code elements with low confidence selected from all groups are combined, and it is judged whether the number of code elements with low confidence after combination is greater than the second predetermined number, and whether the number of grouping groups of the current component code is greater than the predetermined number of groups; if the judgment result is yes, it proves that the number of code elements with low confidence after combination is large, and it is necessary to combine every third predetermined number of groups into a new group, so that the number of multiple new groups obtained is less than the original number of groups, and the first predetermined number of code elements with low confidence can be re-screened for the new group, and the process of combining and re-screening is repeated continuously until the judgment result is no and the repetition is stopped; if the judgment result is no, the code elements with low confidence finally selected are sorted, and the positions of the fourth predetermined number of code elements with low confidence are used as the unreliable code element position search results. In this way, by discarding the codewords with high confidence in each group and excluding them from participating in the sorting, the complexity of the sorting process can be reduced, the delay can be reduced, and less hardware computing resources can be used, while the performance of unreliable codeword position search can be guaranteed.
[0056] In some embodiments, step 201 includes:
[0057] Step 2011, obtaining the confidence of each code element in the current component code.
[0058] Step 2012: Divide all code elements with confidence of the current component code into N groups, wherein the number of code elements in each group is n1.
[0059] Specifically, the specific value of n1 can be set according to actual needs, for example, n1=4, or n1=8, or n1=16, etc. It is ensured that all code elements of the current component code (for example, the total number is Y) can be evenly divided into N groups, and the specific number N is Y / n1, where n1 and N are positive integers.
[0060] Step 2013: Select a first predetermined number of code elements with low confidence in each group, wherein a first predetermined number*N code elements with low confidence can be selected from the current component code.
[0061] Specifically, the code elements of each group are sorted according to the confidence, so that a first predetermined number of code elements with low confidence in the group can be selected according to the sorting. The number of code elements with low confidence selected in this way is the first predetermined number*N.
[0062] Through the above solution, the current component codes can be accurately grouped, and the code elements in each group can be sorted so as to quickly select a first predetermined number of code elements with low confidence.
[0063] In some embodiments, the step of selecting the first predetermined number of symbols with the lowest confidence in each group in step 2013 includes:
[0064] For each group of code elements:
[0065] Step 20131, divide the code elements in the group into multiple subgroups, and sort the code elements in each subgroup according to the confidence level.
[0066] Step 20132, compare the confidences of the code elements with the largest confidences in each subgroup, and compare the confidences of the code elements with the smallest confidences in all subgroups, to obtain the ranking of the code elements in the group.
[0067] Step 20133, selecting a first predetermined number of code elements with low confidence according to the order of the code elements in the group.
[0068] For example, n1=4, the first predetermined number is 2, and the 4 code elements in each group are compared in pairs to obtain the order of the 4 code elements. However, this method consumes more comparison units.
[0069] Step 20131, divide the 4 code elements in the group into 2 sub-groups, and sort the 2 code elements in each sub-group according to the confidence level.
[0070] Step 20132, compare the confidences of the code elements with the largest confidences in each of the two subgroups, and compare the confidences of the code elements with the smallest confidences in each of the two subgroups, to obtain the ranking of the four code elements in the group.
[0071] Step 20133, select two code elements with low confidence according to the order of the four code elements in the group.
[0072] Through the above scheme, the code elements in each group can be sorted better and faster, and then the code elements with low confidence can be quickly selected, so that the remaining code elements can be discarded and not undergo subsequent sorting process, which can reduce the number of sorting in the subsequent sorting process, and further reduce the number of comparison units and reduce latency.
[0073] In some embodiments, the finally selected low-confidence code elements in step 204 are sorted to obtain a sorting result, including:
[0074] Step 2041, for the code elements with low confidence finally selected, each fifth predetermined number of groups is a parent group to obtain multiple parent groups, and each parent group is merged and sorted to obtain multiple ordered parent groups.
[0075] In specific implementation, each group of low-confidence code elements finally selected is an ordered group. In order to better sort the overall order, the fifth predetermined number of ordered groups need to be merged and sorted to obtain an ordered parent group. In this way, the low-confidence code elements finally selected will correspond to multiple (2, 4, or 8) ordered parent groups.
[0076] Step 2042: merge and sort the multiple ordered parent groups to obtain the sorting result.
[0077] Through the above scheme, at least two merge sorting processes are used to sort the finally selected low-confidence code elements according to their confidence, thereby ensuring accurate sorting results while reducing the consumption of comparison units.
[0078] In some embodiments, the second predetermined number is 8, the predetermined number of groups is 4, and / or the third predetermined number is 2, and / or the fifth predetermined number is 2.
[0079] The unreliable symbol position search method of the above embodiment is described below with a specific example:
[0080] S1: The current component code (such as Figure 2B The black dots in the middle are the code elements, the black dots in the first column are the ungrouped code elements, and the confidence metric values of the Y code elements are calculated by grouping them in pairs, with each 4 (i.e., n1) as a group (e.g. Figure 2B Every 4 rows in the 2nd, 3rd and 4th columns, i.e., two subgroups, are considered as a group of code elements).
[0081] S2: Sort the 4 code elements in each group according to the confidence metric value (such as Figure 2BThe second column compares the code elements with the lowest confidence in the two subgroups to determine the smaller code element, the third column compares the code elements with the highest confidence in the two subgroups to determine the smaller code element, and the fourth column compares the confidence of the two smaller code elements in the group, so that the ranking of the four code elements in the group can be obtained), selects the two code elements with the lowest confidence in each group (i.e., the first predetermined number), and discards the remaining code elements in the group.
[0082] S3: If the current number of groups is greater than 4 (i.e., the predetermined number of groups), or the number of all selected symbols with the lowest confidence is greater than 8 (i.e., the second predetermined number), then proceed to step S4; otherwise, if the current number of groups is less than or equal to 4, or the number of all selected symbols with the lowest confidence is less than or equal to 8, then proceed to step S5. Since the current component codes are generally component codes with a number greater than 16 symbols and a multiple of 2, the situation where the number of groups is less than 4 or the number of all selected symbols with the lowest confidence is less than 8 will basically not occur.
[0083] S4: combining every two (ie, the third predetermined number) groups of the results discarded in step S2 into one group, and repeating step S2.
[0084] S5: Combining every two (ie, the fifth predetermined number) of the four groups of results discarded in step S2 into one group, and performing merge sorting to obtain two groups of ordered sequences.
[0085] S6: merge and sort the two groups of ordered sequences obtained in step S5, and take the positions corresponding to the M (for example, 4) code elements with the lowest confidence as unreliable positions.
[0086] S7: The result of step S6 is used as the result of searching for the position of the unreliable code element for decoding the current component code.
[0087] Through the above embodiments, the method capable of finding the position of unreliable codewords provides an implementation method with lower complexity and lower latency, which brings direct benefits in terms of area and power consumption without affecting the decoding performance.
[0088] Based on the same inventive concept, a decoding method of a code element is proposed in an embodiment of the present application, such as Figure 3 As shown, including:
[0089] Step 301: Obtain an unreliable symbol position search result of the current component code according to the unreliable symbol position search method described in the above embodiment.
[0090] Step 302: Flip the unreliable symbol position search result to obtain multiple flip test sequences.
[0091] Step 303: Verify each of the flip test sequences, and take the flip test sequence that succeeds in verification and is closest to the current component code as the decoding result.
[0092] Through the above scheme, due to the unreliable codeword position search method described in the above embodiment, the process of obtaining the unreliable codeword position search result of the current component code will discard the codewords with high confidence and not participate in the sorting, thereby reducing the sorting complexity and reducing the delay. While achieving this effect, the present embodiment can also accurately complete the decoding process.
[0093] In addition, the specific implementation process of the unreliable codeword position search method is the same as the above, and will not be repeated here.
[0094] It should be noted that the method of the embodiment of the present application can be performed by a single device, such as a computer or server. The method of this embodiment can also be applied to a distributed scenario and completed by multiple devices cooperating with each other. In the case of such a distributed scenario, one of the multiple devices can only perform one or more steps in the method of the embodiment of the present application, and the multiple devices will interact with each other to complete the described method.
[0095] It should be noted that the above describes some embodiments of the present application. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the above embodiments and still achieve the desired results. In addition, the processes depicted in the accompanying drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0096] Based on the same inventive concept, corresponding to the unreliable codeword position searching method of any of the above embodiments, the present application also provides an unreliable codeword position searching device.
[0097] refer to Figure 4 , the unreliable symbol position finding device comprises:
[0098] The group selection module 41 is configured to divide the current component code into multiple groups and select a first predetermined number of code elements with low confidence in each group;
[0099] The judgment module 42 is configured to judge whether the number of the code elements with low confidence selected from the current component code is greater than a second predetermined number, and obtain a judgment result, or judge whether the number of groups of the current component code is greater than a predetermined number, and obtain a judgment result;
[0100] The repeated selection module 43 is configured to, in response to the judgment result being yes, repeatedly group every third predetermined number of all the selected groups into a new group, and select a first predetermined number of code elements with low confidence in each new group until the judgment result is no; and / or,
[0101] The merge sorting module 44 is configured to sort the finally selected low confidence code elements in response to the judgment result being negative, to obtain a sorting result;
[0102] The search module 45 is configured to select a fourth predetermined number of code elements with low confidence in the sorting result, and use the positions of the fourth predetermined number of code elements as the unreliable code element position search result of the current component code.
[0103] In some embodiments, the group selection module 41 includes:
[0104] A confidence acquisition unit, configured to acquire the confidence of each code element in the current component code;
[0105] A grouping unit is configured to divide all code elements with confidence of the current component code into N groups, wherein the number of code elements in each group is n1;
[0106] The codeword selection unit is configured to select a first predetermined number of codewords with low confidence in each group, wherein the first predetermined number*N codewords with low confidence can be selected from the current component code.
[0107] In some embodiments, the code element selection unit is specifically configured as follows:
[0108] For each group of code elements:
[0109] Divide the code elements in the group into multiple subgroups, and sort the code elements in each subgroup according to the confidence level;
[0110] Compare the confidences of the code elements with the largest confidence in each subgroup, and compare the confidences of the code elements with the smallest confidence in all subgroups, to obtain the ranking of the code elements in the group;
[0111] A first predetermined number of symbols with low confidence are selected according to the order of the symbols in the group.
[0112] In some embodiments, the merge sort module 44 is specifically configured to:
[0113] For the code elements with low confidence finally selected, each fifth predetermined number of groups is a parent group to obtain multiple parent groups, and each parent group is merged and sorted to obtain multiple ordered parent groups;
[0114] The multiple ordered parent groups are merged and sorted to obtain the sorting result.
[0115] In some embodiments, the second predetermined number is 8, the predetermined number of groups is 4, and / or the third predetermined number is 2, and / or the fifth predetermined number is 2.
[0116] For the convenience of description, the above device is described in terms of functions divided into various modules. Of course, when implementing the present application, the functions of each module can be implemented in the same or multiple software and / or hardware.
[0117] The device of the above embodiment is used to implement the corresponding unreliable codeword position search method in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be repeated here.
[0118] Based on the same inventive concept, corresponding to the codeword decoding method of the above embodiment, the embodiment of the present application proposes a codeword decoding device, such as Figure 5 As shown, including:
[0119] The unreliable symbol position search device 51 is configured to obtain the unreliable symbol position search result of the current component code according to the unreliable symbol position search method described in the above embodiment;
[0120] A flip processing module 52 is configured to perform flip processing on the unreliable symbol position search result to obtain multiple flip test sequences;
[0121] The decoding module 53 is configured to perform verification processing on each of the flip test sequences, and take the flip test sequence that succeeds in verification and is closest to the current component code as the decoding result.
[0122] For the convenience of description, the above device is described in terms of functions divided into various modules. Of course, when implementing the present application, the functions of each module can be implemented in the same or multiple software and / or hardware.
[0123] The device of the above embodiment is used to implement the decoding method of the corresponding code element in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be repeated here.
[0124] Based on the same inventive concept, corresponding to any of the above-mentioned embodiments and methods, the present application also provides an electronic device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the method described in any of the above embodiments when executing the program.
[0125] Figure 6A more specific schematic diagram of the hardware structure of an electronic device provided in this embodiment is shown, and the device may include: a processor 1010, a memory 1020, an input / output interface 1030, a communication interface 1040, and a bus 1050. The processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040 are connected to each other through the bus 1050 in the device.
[0126] The processor 1010 can be implemented by a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of this specification.
[0127] The memory 1020 may be implemented in the form of ROM (Read Only Memory), RAM (Random Access Memory), static storage device, dynamic storage device, etc. The memory 1020 may store an operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented by software or firmware, the relevant program codes are stored in the memory 1020 and are called and executed by the processor 1010.
[0128] The input / output interface 1030 is used to connect the input / output module to realize information input and output. The input / output module can be configured in the device as a component (not shown in the figure), or it can be externally connected to the device to provide corresponding functions. The input device may include a keyboard, a mouse, a touch screen, a microphone, various sensors, etc., and the output device may include a display, a speaker, a vibrator, an indicator light, etc.
[0129] The communication interface 1040 is used to connect a communication module (not shown) to realize communication interaction between the device and other devices. The communication module can realize communication through a wired mode (such as USB, network cable, etc.) or a wireless mode (such as mobile network, WIFI, Bluetooth, etc.).
[0130] The bus 1050 includes a path that transmits information between the various components of the device (eg, the processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040).
[0131] It should be noted that, although the above device only shows the processor 1010, the memory 1020, the input / output interface 1030, the communication interface 1040 and the bus 1050, in the specific implementation process, the device may also include other components necessary for normal operation. In addition, it can be understood by those skilled in the art that the above device may also only include the components necessary for implementing the embodiments of the present specification, and does not necessarily include all the components shown in the figure.
[0132] The electronic device of the above embodiment is used to implement the corresponding method in any of the above embodiments, and has the beneficial effects of the corresponding method embodiment, which will not be described in detail here.
[0133] Based on the same inventive concept, corresponding to any of the above-mentioned embodiments, the present application also provides a non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium stores computer instructions, and the computer instructions are used to enable the computer to execute the method described in any of the above embodiments.
[0134] The computer-readable medium of this embodiment includes permanent and non-permanent, removable and non-removable media, and information storage can be implemented by any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, read-only compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, tape disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device.
[0135] The computer instructions stored in the storage medium of the above embodiments are used to enable the computer to execute the method described in any of the above embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be repeated here.
[0136] Based on the same concept, corresponding to any of the above-mentioned embodiment methods, the present application also provides a computer program product, including computer program instructions. When the computer program instructions are run on a computer, the computer executes the method described in any of the above embodiments, which has the beneficial effects of the corresponding method embodiments and will not be repeated here.
[0137] Those skilled in the art should understand that the discussion of any of the above embodiments is merely illustrative and is not intended to imply that the scope of the present application (including the claims) is limited to these examples. In line with the concept of the present application, the technical features in the above embodiments or different embodiments may be combined, the steps may be implemented in any order, and there are many other variations of the different aspects of the embodiments of the present application as described above, which are not provided in detail for the sake of simplicity.
[0138] In addition, to simplify the description and discussion, and in order not to make the embodiments of the present application difficult to understand, the known power supply / ground connection with the integrated circuit (IC) chip and other components may or may not be shown in the provided drawings. In addition, the device can be shown in the form of a block diagram to avoid making the embodiments of the present application difficult to understand, and this also takes into account the fact that the details of the implementation of these block diagram devices are highly dependent on the platform to be implemented in the embodiments of the present application (that is, these details should be fully within the scope of understanding of those skilled in the art). In the case of elaborating specific details (e.g., circuits) to describe exemplary embodiments of the present application, it is obvious to those skilled in the art that the embodiments of the present application can be implemented without these specific details or when these specific details are changed. Therefore, these descriptions should be considered to be illustrative rather than restrictive.
[0139] Although the present application has been described in conjunction with specific embodiments of the present application, many replacements, modifications and variations of these embodiments will be apparent to those skilled in the art from the foregoing description. For example, other memory architectures (e.g., dynamic RAM (DRAM)) may use the embodiments discussed.
[0140] The embodiments of the present application are intended to cover all such substitutions, modifications and variations that fall within the broad scope of the appended claims. Therefore, any omissions, modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of the embodiments of the present application should be included in the scope of protection of the present application.
Claims
1. A method for finding an unreliable codeword position, characterized in that: include: Dividing the current component code into a plurality of groups, and selecting a first predetermined number of code elements with low confidence in each group; Determine whether the number of code elements with low confidence selected from the current component code is greater than a second predetermined number, or determine whether the number of groups of the current component code is greater than a predetermined number, and obtain a determination result; In response to the judgment result being yes, repeatedly grouping every third predetermined number of all the selected groups into a new group, and selecting a first predetermined number of code elements with low confidence in each new group until the judgment result is no; and / or, In response to the judgment result being no, sorting the finally selected code elements with low confidence to obtain a sorting result; A fourth predetermined number of code elements with low confidence levels in the sorting result are selected, and positions of the fourth predetermined number of code elements are used as unreliable code element position search results for the current component code.
2. The method according to claim 1, characterized in that The step of dividing the current component code into a plurality of groups and selecting a first predetermined number of code elements with low confidence in each group comprises: Obtain the confidence of each code element in the current component code; Divide all the code elements with confidence of the current component code into N groups, where the number of code elements in each group is n1; A first predetermined number of code elements with low confidence levels are selected from each group, wherein a first predetermined number*N code elements with low confidence levels can be selected from the current component code.
3. The method according to claim 2, characterized in that The step of selecting a first predetermined number of symbols with the lowest confidence in each group includes: For each group of code elements: Divide the code elements in the group into multiple subgroups, and sort the code elements in each subgroup according to the confidence level; Compare the confidences of the code elements with the largest confidence in each subgroup, and compare the confidences of the code elements with the smallest confidence in all subgroups, to obtain the ranking of the code elements in the group; A first predetermined number of symbols with low confidence are selected according to the order of the symbols in the group.
4. The method according to any one of claims 1 to 3, characterized in that: The finally selected low confidence code elements are sorted to obtain a sorting result, including: For the code elements with low confidence finally selected, each fifth predetermined number of groups is a parent group to obtain multiple parent groups, and each parent group is merged and sorted to obtain multiple ordered parent groups; The multiple ordered parent groups are merged and sorted to obtain the sorting result.
5. The method according to claim 4, characterized in that The second predetermined number is 8, the predetermined number of groups is 4, and / or the third predetermined number is 2, and / or the fifth predetermined number is 2.
6. A method for decoding a code element, characterized in that: include: Obtaining an unreliable symbol position search result of the current component code according to the unreliable symbol position search method according to any one of claims 1 to 5; Flipping the unreliable symbol position search result to obtain multiple flip test sequences; A verification process is performed on each of the flip test sequences, and a flip test sequence that succeeds in verification and is closest to the current component code is taken as a decoding result.
7. An unreliable code element position search device, characterized in that: include: A grouping selection module is configured to divide the current component code into a plurality of groups, and select a first predetermined number of code elements with low confidence in each group; A judgment module is configured to judge whether the number of code elements with low confidence selected from the current component code is greater than a second predetermined number, or to judge whether the number of groups of the current component code is greater than a predetermined number, and obtain a judgment result; a repeated selection module, configured to, in response to the judgment result being yes, repeatedly group every third predetermined number of all the selected groups into a new group, and select a first predetermined number of code elements with low confidence in each new group, until the judgment result is no; and / or, A merge sorting module is configured to sort the finally selected low-confidence code elements in response to the judgment result being negative, to obtain a sorting result; The search module is configured to select a fourth predetermined number of code elements with low confidence in the sorting result, and use the positions of the fourth predetermined number of code elements as the unreliable code element position search result of the current component code.
8. A decoding device for a code element, characterized in that: include: An unreliable symbol position search device, configured to obtain an unreliable symbol position search result of a current component code according to the unreliable symbol position search method according to any one of claims 1 to 5; A flip processing module is configured to perform flip processing on the unreliable symbol position search result to obtain multiple flip test sequences; The decoding module is configured to perform verification processing on each of the flip test sequences, and take the flip test sequence that succeeds in verification and is closest to the current component code as the decoding result.
9. An electronic device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the program, the method according to any one of claims 1 to 6 is implemented.
10. A non-transitory computer-readable storage medium storing computer instructions, characterized in that: The computer instructions are used to enable a computer to execute the method according to any one of claims 1 to 6.
Citation Information
Patent Citations
Minimum value comparing method in LDPC decoding and realization device thereof
CN101577555A
High-performance low-complexity decoding method of block product codes TPC (Turbo Product Code)
CN102751996A
TPC iterative decoding method and device, telemetry ground station and storage medium
CN113765624A
Decoding method and device, equipment and storage medium
CN117579083A
Low-complexity soft-decision decoding of error-correction codes
US20100169746A1
