Method, Decoding Method, Device, Equipment and Medium for Finding Unreliable Symbol Positions
By grouping component codes and filtering symbols with low confidence, the problems of high complexity and delay in the unreliable symbol position search in the prior art are solved, and more efficient symbol position search and decoding are achieved.
Patent Information
- Application Number
- CN202411383536.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-30
- Publication Date
- 2025-07-22
- Estimated Expiration
- 2044-09-30
AI Technical Summary
The method of determining the location of unreliable symbols in the prior art requires full sorting, resulting in high hardware implementation complexity and long signal delay.
The current component code is divided into multiple groups, and the symbols with low confidence in each group are selected. The unreliable symbol positions are filtered out through the judgment and combination process, and the symbols with high confidence are discarded to reduce the ordering complexity.
It reduces the complexity and delay of the sorting process, reduces the use of hardware computing resources, and ensures the performance of unreliable symbol position search.
Smart Images

Figure CN119483823B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technologies, and in particular, to a method for finding unreliable symbol positions, a decoding method, a device, equipment, and a medium. Background Art
[0002] During the decoding process, the unreliable positions of the current component code are required. Currently, a full sorting method is generally used to find the unreliable positions of the current component code.
[0003] Since the full sorting method needs to sort all symbols, it will consume a large number of comparison levels for sorting, resulting in a high complexity in hardware implementation and a long delay consumption of signals. Summary of the Invention
[0004] In view of this, the purpose of this application is to propose a method for finding unreliable symbol positions, a decoding method, a device, equipment, and a medium.
[0005] Based on the above purpose, the first aspect of this application provides a method for finding unreliable symbol positions, including:
[0006] Dividing the current component code into multiple groups, and selecting the first predetermined number of symbols with low confidence in each group;
[0007] Judging whether the number of symbols with low confidence selected from the current component code is greater than the second predetermined number to obtain a judgment result, or judging whether the number of groups of the current component code is greater than the predetermined number of groups to obtain a judgment result;
[0008] In response to the judgment result being yes, continuously repeat taking every third predetermined number of groups from all the selected groups as a new group, and selecting the first predetermined number of symbols 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 symbols with low confidence to obtain a sorting result;
[0010] Selecting the fourth predetermined number of symbols with low confidence in the sorting result, and using the positions of the fourth predetermined number of symbols as the result of finding the unreliable symbol positions of the current component code.
[0011] Based on the same inventive concept, the second aspect of this application provides a method for decoding symbols, including:
[0012] Obtaining the result of finding the unreliable symbol positions of the current component code according to the method for finding unreliable symbol positions described in the first aspect above;
[0013] Perform a flipping process on the unreliable symbol position search result to obtain multiple flipped test sequences;
[0014] Perform a verification process on each of the flipped test sequences, and use the flipped test sequence that passes the verification and is closest to the current component code as the decoding result.
[0015] Based on the same inventive concept, a third aspect of the present application provides an unreliable symbol position search device, including:
[0016] A grouping selection module configured to divide the current component code into multiple groups and select the first predetermined number of symbols with low confidence in each group;
[0017] A judgment module configured to judge whether the number of symbols with low confidence selected from the current component code is greater than a second predetermined number to obtain a judgment result, or judge whether the number of groups of the current component code is greater than a predetermined number of groups to obtain a judgment result;
[0018] A repeated selection module configured to, in response to the judgment result being yes, continuously repeat dividing every third predetermined number of groups among all the selected groups into a new group and select the first predetermined number of symbols with low confidence in each new group until the judgment result is no; and / or,
[0019] A merge sorting module configured to, in response to the judgment result being no, sort the finally selected symbols with low confidence to obtain a sorting result;
[0020] A search module configured to select the fourth predetermined number of symbols with low confidence from the sorting result and use the positions of the fourth predetermined number of symbols as the unreliable symbol position search result of the current component code.
[0021] Based on the same inventive concept, a fourth aspect of the present application provides a symbol decoding device, including:
[0022] An unreliable symbol position search device 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 flipping processing module configured to perform a flipping process on the unreliable symbol position search result to obtain multiple flipped test sequences;
[0024] A decoding module configured to perform a verification process on each of the flipped test sequences and use the flipped test sequence that passes the verification and is closest to the current component code as the decoding result.
[0025] Based on the same inventive concept, a fifth aspect of the present application further provides an electronic device, including a memory, a processor, and a computer program stored on the memory and executable by the processor. When the processor executes the computer program, the above-mentioned method is implemented.
[0026] Based on the same inventive concept, a sixth aspect of the present application further provides a non-transitory computer-readable storage medium. The non-transitory computer-readable storage medium stores computer instructions for causing a computer to execute the above-mentioned method.
[0027] As can be seen from the above, the unreliable symbol position search method, decoding method, device, equipment, and medium provided by the present application can group the current component codes, and then select a first predetermined number of symbols with low confidence for each group, so that the symbols with relatively high confidence in the group can be discarded; then, the symbols with low confidence selected from all groups are combined, and it is judged whether the number of combined symbols with low confidence is greater than a second predetermined number, or it is judged whether the number of groups of the current component codes is greater than a predetermined number of groups; if the judgment result is yes, it proves that the number of combined symbols with low confidence is relatively large, and it is also necessary to combine every third predetermined number of groups into a new group. In this way, the number of the obtained multiple new groups is less than the original number of groups, and a first predetermined number of symbols with low confidence can be re-screened for the new groups, and this process of combining groups and then screening is continuously repeated until the judgment result is no and the repetition stops; if the judgment result is no, the symbols with low confidence after the final selection are sorted, and the positions of the fourth predetermined number of symbols with low confidence among them are used as the unreliable symbol position search results. In this way, by discarding the symbols with high confidence in each group and not participating in the sorting, the complexity of the sorting process can be reduced, the delay can be reduced, less hardware computing resources can be used, and at the same time, the performance of the unreliable symbol position search can be ensured. Description of the Drawings
[0028] In order to more clearly illustrate the technical solutions in the present application or related technologies, the following will briefly introduce the drawings required for use in the description of the embodiments or related technologies. Obviously, the drawings in the following description are only the embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.
[0029] Figure 1 Schematic diagram of full sorting of symbols with a code length of 16 in related technologies;
[0030] Figure 2A Flow chart of the unreliable symbol position search method according to the embodiment of the present application;
[0031] Figure 2BSchematic diagram for approximate sorting in the embodiments of the present application;
[0032] Figure 3 Schematic flow diagram of the decoding method for code elements in the embodiments of the present application;
[0033] Figure 4 Schematic structural diagram of the unreliable code element position search device in the embodiments of the present application;
[0034] Figure 5 Schematic structural diagram of the code element decoding device in the embodiments of the present application;
[0035] Figure 6 Schematic structural diagram of the electronic device in the embodiments of the present application. Detailed implementation manners
[0036] To make the objectives, technical solutions and advantages of the present application clearer and more understandable, the present application will be further described in detail below with reference to specific embodiments and 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 have the ordinary meanings understood by those of ordinary skill in the art to which the present application belongs. The "first", "second" and similar terms used in the embodiments of the present application do not denote any order, quantity or importance, but are only used to distinguish different components. The terms such as "including" or "comprising" mean that the elements or objects appearing before this term cover the elements or objects listed after this term and their equivalents, without excluding other elements or objects. The terms such as "connected" or "coupled" are not limited to physical or mechanical connections, but may include electrical connections, whether direct or indirect. The terms such as "upper", "lower", "left" and "right" are only used to represent relative positional relationships, and when the absolute position of the object being described changes, the relative positional relationship may also change accordingly.
[0038] With the continuous development of communication technologies, against the backdrop of the highly developed applications such as the Internet of Everything, cloud computing, short video live streaming, etc., optical transport networks (OTNs) with large bandwidth, high speed, and high stability have attracted much attention. To adapt to higher throughput and transmission rates, spatial coupling codes such as low density parity check (LDPC) codes, Staircase codes, and Zipper codes are widely used in forward error correction (FEC) in OTN networks. For such spatial coupling code frameworks, numerous decoding algorithms based on Chase-Pyndiah symbols have been proposed in related technologies. In the process of decoding, the unreliable positions of the current component code need to be determined to generate test sequences, and the choice of search method greatly affects the complexity of decoding implementation.
[0039] Currently, the method for determining unreliable positions is mainly the full sorting search method based on a sorting network. The sorting network is used to sort the confidence measure values of each symbol in the codeword, and the symbol position with the smallest measure value is found, which is the unreliable position.
[0040] Taking a symbol of length 16 ( Figure 1 the black dots in Figure 1 as an example, to determine the 4 most unreliable positions in the codeword, the structure of the full sorting comparison network is as
[0041] shown: Figure 1 As shown in the comparison network, the 16 confidence measure values are fully sorted, and finally the 4 symbols with the lowest confidence are taken as the 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, with a high complexity in hardware implementation and a large signal delay, which greatly increases the complexity and time consumption of decoding implementation.
[0042] The following will elaborate on the embodiments of this application in conjunction with the accompanying drawings.
[0043] An unreliable symbol position search method proposed in the embodiments of this application, as Figure 2A shown, includes:
[0044] Step 201: Divide the current component code into multiple groups, and select the first predetermined number of symbols with low confidence in each group.
[0045] In specific implementation, the confidence of each symbol in the current component code is pre-calculated, and the number of symbols in the corresponding current component code should be a multiple of 2. The number of symbols in each group is also a multiple of 2, and the number of symbols in each group is equal.
[0046] After the groups are divided, multiple code elements in each group are sorted according to the confidence level, and then the first predetermined number of code elements with low confidence levels are selected from them, and the remaining code elements in the group are discarded.
[0047] Step 202, determine whether the number of code elements with low confidence levels selected from the current component code is greater than a second predetermined number to obtain a judgment result, or determine whether the number of groups divided in the current component code is greater than a predetermined number of groups to obtain a judgment result.
[0048] In specific implementation, after all the groups are selected, it is necessary to integrate the code elements with low confidence levels of all groups of the current component code, and calculate the number of all selected code elements with low confidence levels. And determine whether this number is greater than the second predetermined number, or judge whether the number of groups after grouping is greater than the predetermined number of groups, so as to obtain the corresponding judgment result.
[0049] Step 203, in response to the judgment result being yes, continuously repeat taking every third predetermined number of groups in all the selected groups as a new group, and select the first predetermined number of code elements with low confidence levels 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 levels is relatively large, and the process of selecting code elements with low confidence levels needs to be carried out again. At this time, in order to be able to select again, every third predetermined number of groups in all the selected groups are taken as 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 levels 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, continue to take every third predetermined number of groups in all the selected groups as a new group, and repeat the process of "selecting the first predetermined number of code elements with low confidence levels in each group" in step 201 for the new group. Repeat this continuously until the judgment result is no.
[0051] And / or, step 204, in response to the judgment result being no, sort the finally selected code elements with low confidence levels to obtain a sorting result.
[0052] In specific implementation, if it is determined that the judgment result is no after the above steps, it proves that the number of finally selected code elements with low confidence levels is relatively small, and the full sorting process can be carried out. They will be sorted in ascending or descending order according to the confidence level to obtain a sorting result.
[0053] Step 205: Select the 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 confidence, then select the last fourth predetermined number of code elements; if the sorting result is arranged from small to large according to confidence, then select the previous fourth predetermined number of code elements. The fourth predetermined number of code elements selected in this way has low confidence and is 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 solution, the current component code can be grouped, and then for each group, select the first predetermined number of code elements with low confidence, so that the code elements with relatively high confidence in the group can be discarded; then combine the code elements with low confidence selected from all groups, and judge whether the number of combined code elements with low confidence is greater than the second predetermined number, and judge whether the number of 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 combined code elements with low confidence is relatively large, and it is also necessary to combine every third predetermined number of groups into a new group. In this way, the number of the obtained multiple new groups 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 groups. In this way, continuously repeat the process of combining groups and then screening until the judgment result is no and stop repeating; if the judgment result is no, sort the finally selected code elements with low confidence, and use the positions of the fourth predetermined number of code elements with low confidence among them as the unreliable code element position search result. In this way, by discarding the code elements with high confidence in each group and not 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 also ensuring the performance of the unreliable code element position search.
[0056] In some embodiments, step 201 includes:
[0057] Step 2011: Obtain the confidence of each code element in the current component code.
[0058] Step 2012: Divide all the code elements of the current component code with confidence into N groups, where 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. Ensure that all the code elements of the current component code (for example, the total number is Y) can be evenly divided into N groups. Specifically, the number of N is Y / n1, where n1 and N are positive integers.
[0060] Step 2013, select the first predetermined number of symbols with low confidence in each group, where the first predetermined number * N symbols with low confidence can be selected from the current component code.
[0061] Specifically, sort the symbols in each group according to their confidence levels, so that the first predetermined number of symbols with low confidence in each group can be selected according to the sorting. The number of selected symbols with low confidence obtained in this way is the first predetermined number * N.
[0062] Through the above solution, the current component code can be accurately grouped, and the symbols in each group can be sorted, so as to quickly select the first predetermined number of symbols with low confidence among them.
[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 symbols:
[0065] Step 20131, divide the symbols in this group into multiple subgroups, and sort the symbols in each subgroup according to their confidence levels.
[0066] Step 20132, compare the confidence levels of the symbols with the highest confidence in each subgroup, and compare the confidence levels of the symbols with the lowest confidence in all subgroups to obtain the sorting of the symbols in this group.
[0067] Step 20133, select the first predetermined number of symbols with low confidence according to the sorting of the symbols in this group.
[0068] For example, n1 = 4, the first predetermined number is 2. Compare the 4 symbols in each group pairwise to obtain the sorting of the 4 symbols. However, this method requires a relatively large number of comparison units.
[0069] Step 20131, divide the 4 symbols in this group into 2 subgroups, and sort the 2 symbols in each subgroup according to their confidence levels.
[0070] Step 20132, compare the confidence levels of the symbols with the highest confidence in the 2 subgroups, and compare the confidence levels of the symbols with the lowest confidence in the 2 subgroups to obtain the sorting of the 4 symbols in this group.
[0071] Step 20133, select 2 symbols with low confidence according to the sorting of the 4 symbols in this group.
[0072] Through the above solution, the symbols of each group can be sorted better and faster, and then the symbols with low confidence can be quickly selected. In this way, the remaining symbols can be discarded without performing the subsequent sorting process, which can reduce the number of symbols to be sorted in the subsequent sorting process, further reduce the number of comparison units, and reduce the latency.
[0073] In some embodiments, the symbols with low confidence after the final selection in step 204 are sorted to obtain a sorting result, including:
[0074] Step 2041: For the symbols with low confidence after the final selection, every fifth predetermined number of groups form a parent group to obtain a plurality of parent groups, and each parent group is sorted by merge sort to obtain a plurality of ordered parent groups.
[0075] Specifically, when implemented, each group of the symbols with low confidence after the final selection is itself an ordered group. In order to perform better overall sorting, it is necessary to combine every fifth predetermined number of ordered groups and perform merge sort to obtain an ordered parent group. In this way, the symbols with low confidence after the final selection will correspondingly obtain a plurality of (2 or 4 or 8) ordered parent groups.
[0076] Step 2042: The plurality of ordered parent groups are sorted by merge sort to obtain the sorting result.
[0077] Through the above solution, by adopting the process of at least two merge sorts, the symbols with low confidence after the final selection can be sorted according to the confidence, which can ensure an accurate sorting result 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] For the unreliable symbol position searching method in the above embodiments, a specific example is described below:
[0080] S1: Take the confidence metric values of the Y symbols of the current component code (such as Figure 2B the black dots in are used as symbols, the black dots in the first column are ungrouped symbols, and every two form a subgroup in pairs, and the symbol above in the subgroup is the symbol with low confidence), and group them in groups of every 4 (i.e., n1) (such as Figure 2B every 4 rows in the 2nd, 3rd, and 4th columns in, that is, two subgroups, are used as a group of symbols).
[0081] S2: Sort the 4 symbols in each group according to the confidence metric value (such as Figure 2BIn the second column, the symbol with the lowest confidence in the two subgroups is compared to determine the smaller symbol. In the third column, the symbols with the highest confidence in the two subgroups are compared to determine the smaller symbol. In the fourth column, the confidences of the two smaller symbols in this group are compared, so that the sorting of the 4 symbols in this group can be obtained. Select the 2 (i.e., the first predetermined quantity) symbols with the lowest confidence in each group, and discard the remaining symbols in this 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 quantity), then go 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 go to step S5. Among them, since the current component code is generally a component code that is a multiple of 2 with a quantity exceeding 16 symbols, 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 basically does not occur.
[0083] S4: Combine every 2 (i.e., the third predetermined quantity) groups of the results discarded in step S2 into 1 group, and repeat step S2.
[0084] S5: Combine every 2 (i.e., the fifth predetermined quantity) of the 4 groups of results discarded in step S2 into 1 group for merge sorting to obtain 2 groups of ordered sequences.
[0085] S6: Perform merge sorting on the 2 groups of ordered sequences obtained in step S5, and take the positions corresponding to the M (for example, 4) symbols with the lowest confidence as unreliable positions.
[0086] S7: The result of step S6 is the result of finding the positions of the unreliable symbols for the current component code decoding.
[0087] Through the above embodiments, the method for finding the positions of unreliable symbols provides a method with lower complexity and lower latency, bringing direct benefits in terms of area and power consumption, and at the same time not affecting the decoding performance.
[0088] Based on the same inventive concept, a symbol decoding method proposed in an embodiment of the present application, as Figure 3 shown, includes:
[0089] Step 301, according to the method for finding the positions of unreliable symbols described in the above embodiments, obtain the result of finding the positions of the unreliable symbols of the current component code.
[0090] Step 302, perform a flipping process on the result of finding the positions of the unreliable symbols to obtain a plurality of flipped test sequences.
[0091] Step 303: Perform verification processing on each of the flipping test sequences, and use the flipping test sequence that passes the verification and is closest to the current component code as the decoding result.
[0092] Through the above solution, since the unreliable symbol position search method described in the above embodiment, in the process of obtaining the unreliable symbol position search result of the current component code, symbols with high confidence are discarded and do not participate in the sorting, reducing the sorting complexity and latency. While this embodiment has this effect, it can also accurately complete the decoding process.
[0093] In addition, the process of expanding the specific embodiments of the unreliable symbol position search method is the same as above, and will not be elaborated here.
[0094] It should be noted that the method of the embodiment of the present application can be executed by a single device, such as a computer or a server. The method of this embodiment can also be applied to a distributed scenario, and multiple devices cooperate with each other to complete it. In this distributed scenario, one of the multiple devices can only execute one or more steps of the method of the embodiment of the present application, and these multiple devices will interact with each other to complete the described method.
[0095] It should be noted that some embodiments of the present application have been described above. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recited in the claims can be performed in a different order than in the above embodiments and still achieve the desired result. Additionally, the processes depicted in the figures do not necessarily require the specific order or sequential order shown to achieve the desired result. In certain embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0096] Based on the same inventive concept, corresponding to the unreliable symbol position search method in any of the above embodiments, the present application also provides an unreliable symbol position search device.
[0097] Refer to Figure 4 , the unreliable symbol position search device includes:
[0098] A grouping selection module 41, configured to divide the current component code into multiple groups, and select the first predetermined number of symbols with low confidence in each group;
[0099] A judgment module 42, configured to judge whether the number of symbols with low confidence selected from the current component code is greater than a second predetermined number to obtain a judgment result, or judge whether the number of groups of the current component code is greater than a predetermined number of groups to obtain a judgment result;
[0100] The repeated selection module 43 is configured to, in response to the determination result being yes, continuously repeat taking every third predetermined number of groups from all the selected groups as a new group, and selecting the first predetermined number of symbols with low confidence in each new group until the determination result is no; and / or,
[0101] The merge sort module 44 is configured to, in response to the determination result being no, sort the finally selected symbols with low confidence to obtain a sorting result;
[0102] The search module 45 is configured to select the fourth predetermined number of symbols with low confidence in the sorting result, and use the positions of the fourth predetermined number of symbols as the unreliable symbol position search result of the current component code.
[0103] In some embodiments, the grouping and selection module 41 includes:
[0104] The confidence acquisition unit is configured to acquire the confidence of each symbol in the current component code;
[0105] The grouping unit is configured to divide all the symbols with confidence in the current component code into N groups, where the number of symbols in each group is n1;
[0106] The symbol selection unit is configured to select the first predetermined number of symbols with low confidence in each group, where the first predetermined number * N symbols with low confidence can be selected from the current component code.
[0107] In some embodiments, the symbol selection unit is specifically configured to:
[0108] For each group of symbols:
[0109] Divide the symbols in this group into multiple subgroups, and sort the symbols in each subgroup according to the confidence level;
[0110] Compare the symbols with the highest confidence in each subgroup, and compare the symbols with the lowest confidence in all subgroups to obtain the sorting of the symbols in this group;
[0111] Select the first predetermined number of symbols with low confidence according to the sorting of the symbols in this group.
[0112] In some embodiments, the merge sort module 44 is specifically configured to:
[0113] For every fifth predetermined number of groups of the finally selected symbols with low confidence as a parent group to obtain multiple parent groups, and perform merge sort on each parent group to obtain multiple ordered parent groups;
[0114] Perform merge sort on the multiple ordered parent groups to obtain the sorting result.
[0115] In some embodiments, the second predetermined quantity is 8, the predetermined number of groups is 4, and / or the third predetermined quantity is 2, and / or the fifth predetermined quantity is 2.
[0116] For convenience of description, when describing the above device, various modules are described separately according to their functions. Of course, when implementing the present application, the functions of each module can be implemented in one or more software and / or hardware.
[0117] The device in the above embodiment is used to implement the corresponding unreliable symbol position searching method in any of the foregoing embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be elaborated herein.
[0118] Based on the same inventive concept, corresponding to the symbol decoding method in the above embodiment, an embodiment of the present application provides a symbol decoding device, as Figure 5 shown, including:
[0119] An unreliable symbol position searching device 51, configured to obtain the searching result of the unreliable symbol position of the current component code according to the unreliable symbol position searching method described in the above embodiment;
[0120] A flipping processing module 52, configured to perform a flipping process on the searching result of the unreliable symbol position to obtain a plurality of flipped test sequences;
[0121] A decoding module 53, configured to perform a verification process on each of the flipped test sequences, and use the flipped test sequence that passes the verification and is closest to the current component code as the decoding result.
[0122] For convenience of description, when describing the above device, various modules are described separately according to their functions. Of course, when implementing the present application, the functions of each module can be implemented in one or more software and / or hardware.
[0123] The device in the above embodiment is used to implement the corresponding symbol decoding method in any of the foregoing embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be elaborated herein.
[0124] Based on the same inventive concept, corresponding to the method in any of the above embodiments, the present application further provides an electronic device, including a memory, a processor, and a computer program stored on the memory and executable on the processor, where the processor implements the method in any of the above embodiments when executing the program.
[0125] Figure 6Fig. 0 shows a more specific schematic diagram of the hardware structure of the electronic device provided in this embodiment. The device may include: a processor 1010, a memory 1020, an input / output interface 1030, a communication interface 1040, and a bus 1050. Among them, the processor 1010, the memory 1020, the input / output interface 1030, and the communication interface 1040 are communicatively connected to each other inside the device through the bus 1050.
[0126] The processor 1010 may be implemented in a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, etc., 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 a ROM (Read Only Memory), a RAM (Random Access Memory), a static storage device, a dynamic storage device, etc. The memory 1020 may store an operating system and other application programs. When implementing the technical solutions provided in the embodiments of this specification through 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 to an input / output module to implement information input and output. The input / output module may be configured as a component in the device (not shown in the figure) or externally connected to the device to provide corresponding functions. Among them, 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 to a communication module (not shown in the figure) to implement communication interaction between this device and other devices. Among them, the communication module may implement communication in a wired manner (such as USB, network cable, etc.) or in a wireless manner (such as mobile network, WIFI, Bluetooth, etc.).
[0130] The bus 1050 includes a path for transmitting information between various components of the device (such as 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, those skilled in the art can understand that the above device may also only include the components necessary to implement the solution of the embodiments of this specification, and does not necessarily include all the components shown in the figure.
[0132] The electronic device in the above embodiment is used to implement the corresponding method in any of the foregoing embodiments, and has the beneficial effects of the corresponding method embodiments, which will not be elaborated here.
[0133] Based on the same inventive concept, corresponding to the method in any of the above embodiments, the present application also provides a non-transitory computer-readable storage medium, which stores computer instructions for causing the computer to execute the method described in any of the foregoing embodiments.
[0134] The computer-readable medium in this embodiment includes permanent and non-permanent, removable and non-removable media, and information storage can be implemented by any method or technology. The information can be computer-readable instructions, data structures, program modules, 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 technologies, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassette tapes, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information accessible by a computing device.
[0135] The computer instructions stored in the storage medium in the above embodiment are used to cause the computer to execute the method described in any of the foregoing embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be elaborated here.
[0136] Based on the same concept, corresponding to the method in any of the above embodiments, the present application also provides a computer program product, including computer program instructions, which, when running on a computer, cause the computer to execute the method described in any of the foregoing embodiments, and have the beneficial effects of the corresponding method embodiments, which will not be elaborated here.
[0137] Those of ordinary skill in the art should understand that the discussion of any of the above embodiments is merely exemplary and is not intended to imply that the scope of the present application (including the claims) is limited to these examples; within the concept of the present application, the technical features in the above embodiments or different embodiments can also be combined, the steps can be implemented in any order, and there are many other variations in different aspects of the embodiments of the present application as described above, and they are not provided in detail for the sake of brevity.
[0138] In addition, for simplicity of explanation and discussion, and in order not to make the embodiments of the present application difficult to understand, the well-known power / ground connections to integrated circuit (IC) chips and other components may or may not be shown in the provided drawings. In addition, the devices may be shown in block diagram form in order 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 on which the embodiments of the present application will be implemented (i.e., these details should be completely within the understanding of those skilled in the art). In cases where specific details (such as circuits) are set forth to describe exemplary embodiments of the present application, it will be apparent to those skilled in the art that the embodiments of the present application can be implemented without these specific details or with variations of these specific details. Therefore, these descriptions should be considered illustrative rather than restrictive.
[0139] Although the present application has been described in connection with specific embodiments of the present application, many alternatives, modifications, and variations of these embodiments will be apparent to those of ordinary skill in the art based on the foregoing description. For example, other memory architectures (such as dynamic RAM (DRAM)) may be used with the embodiments discussed.
[0140] The embodiments of the present application are intended to cover all such alternatives, 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 shall be included within the protection scope of the present application.
Claims
1. An unreliable symbol position search method, characterized in that, Including: Dividing the current component code into multiple groups, and selecting the first predetermined number of code elements with low confidence in each group; Judging whether the number of code elements with low confidence selected from the current component code is greater than a second predetermined number, or judging whether the number of groups of the current component code is greater than a predetermined number of groups, to obtain a judgment result; In response to the judgment result being yes, continuously repeat dividing every third predetermined number of groups among all the selected groups into a new group, and selecting the 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; Selecting the fourth predetermined number of code elements with low confidence in the sorting result, and using the positions of the fourth predetermined number of code elements as the unreliable code element position search result of the current component code.
2. The method according to claim 1, wherein The dividing the current component code into multiple groups and selecting the first predetermined number of code elements with low confidence in each group includes: Obtaining the confidence of each code element in the current component code; Dividing all the code elements with confidence in the current component code into N groups, where the number of code elements in each group is n1; Selecting the first predetermined number of code elements with low confidence in each group, where the first predetermined number * N code elements with low confidence can be selected from the current component code.
3. The method according to claim 2, wherein The selecting the first predetermined number of code elements with the lowest confidence in each group includes: For each group of code elements: Dividing the code elements in this group into multiple subgroups, and sorting the code elements in each subgroup according to the confidence level; Comparing the code elements with the maximum confidence in each subgroup, and comparing the code elements with the minimum confidence in all subgroups to obtain the sorting of the code elements in this group; Selecting the first predetermined number of code elements with low confidence according to the sorting of the code elements in this group.
4. The method according to any one of claims 1 to 3, characterized in that, The sorting the finally selected code elements with low confidence to obtain a sorting result includes: Taking every fifth predetermined number of groups of the finally selected code elements with low confidence as a parent group to obtain multiple parent groups, and performing merge sorting on each parent group to obtain multiple ordered parent groups; Performing merge sorting on the multiple ordered parent groups to obtain the sorting result.
5. The method according to claim 4, wherein 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 decoding method for symbols, characterized in that, Including: According to the unreliable code element position search method according to any one of claims 1 to 5, obtaining the unreliable code element position search result of the current component code; Performing a flipping process on the unreliable code element position search result to obtain multiple flipped test sequences; Performing a verification process on each of the flipped test sequences, and using the flipped test sequence with successful verification and closest to the current component code as the decoding result.
7. An unreliable symbol position search device, characterized in that, Including: A grouping and selecting module, configured to divide the current component code into multiple groups, and select the first predetermined number of code elements with low confidence in each group; A judgment module, 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 judge whether the number of groups of the current component code is greater than a predetermined number of groups, and obtain a judgment result; A repeated selection module, configured to, in response to the judgment result being yes, continuously repeat taking every third predetermined number of groups in all the selected groups as 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, configured to, in response to the judgment result being no, sort the finally selected code elements with low confidence to obtain a sorting result; A search module, 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 symbol, characterized in that, including: An unreliable code element position search device, configured to obtain an unreliable code element position search result of the current component code according to the unreliable code element position search method described in any one of claims 1 to 5; A flip processing module, configured to perform a flip processing on the unreliable code element position search result to obtain a plurality of flip test sequences; A decoding module, configured to perform a verification process on each of the flip test sequences, and use the flip test sequence that passes the 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 on the memory and executable on the processor, characterized in that, When the processor executes the program, the method described in 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 cause a computer to execute the method described in 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