An encoding method, a decoding method and related devices
By introducing cyclic redundancy check coding into concatenated coding, the accuracy of data is verified, which solves the problem of insufficient reliability and efficiency of data transmission in wireless communication, and achieves higher error correction performance and decoding efficiency, making it suitable for 5G and 6G mobile communication networks.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- ZTE CORP
- Filing Date
- 2025-01-21
- Publication Date
- 2026-07-21
AI Technical Summary
During data transmission between wireless communication devices, interference from the channel environment leads to distortion of service data. Existing channel coding methods are insufficient in terms of reliability and efficiency, especially in 5G and 6G mobile communications where they are difficult to meet the requirements of ultra-high reliability and ultra-low latency.
Cyclic redundancy check (CRC) encoding is performed before each encoding method in the concatenated encoding process. The accuracy of the bit sequence is verified by CRC encoding, the decoding process is managed, and error correction performance and decoding efficiency are improved.
It improves the reliability and error correction performance during data transmission, reduces computational complexity, and enhances decoding efficiency, making it suitable for 5G and 6G mobile communication networks as well as other communication networks.
Smart Images

Figure CN122437630A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of communication technology, and in particular to an encoding method, a decoding method, and related equipment. Background Technology
[0002] With the development of communication technology, the service interactions between communication devices (such as base stations and user equipment) in wireless communication networks are becoming more and more frequent, and users' demands for service data transmission between communication devices are also increasing. For example, users have higher requirements for the reliability of data transmission between communication devices.
[0003] However, the channel environment between communication devices can interfere with the transmitted service data, causing distortion of the received service data. Therefore, how to encode service data through channel coding to improve the reliability of data transmission has become an urgent technical problem to be solved. Summary of the Invention
[0004] This disclosure provides an encoding method, a decoding method, and related equipment, which can encode service data through channel coding to improve the reliability of data transmission.
[0005] On the one hand, an encoding method is provided, which is applied to a first node, including: encoding the bit sequence to be encoded based on a first cyclic redundancy check (CRC) to obtain a first encoded bit sequence; segmenting the first encoded bit sequence to obtain at least one first code block; performing concatenated encoding on the first code block and performing at most one CRC encoding before each encoding in the concatenated encoding to obtain a second encoded bit sequence.
[0006] On another front, a decoding method is provided, which is applied to a second node and includes: decoding a first code block in the second encoded bit sequence based on multiple check bit sequences in the second encoded bit sequence, wherein the multiple check bit sequences include: check bit sequences for each encoding of concatenated encoding and check bit sequences for at most one CRC encoding performed before each encoding of concatenated encoding; concatenating all first code blocks in the second encoded bit sequence to obtain a decoded first encoded bit sequence after all first code blocks in the second encoded bit sequence have been decoded; and decoding the bit sequence to be encoded in the decoded first encoded bit sequence based on the check bit sequences of the first CRC encoding in the decoded first encoded bit sequence.
[0007] On the other hand, an encoding device is provided for use in a first node, the device comprising: a processing module.
[0008] The processing module is used to encode the bit sequence to be encoded based on the first cyclic redundancy check (CRC) to obtain the first encoded bit sequence; the processing module is also used to segment the first encoded bit sequence to obtain at least one first code block; the processing module is also used to perform concatenated encoding on the first code block and perform at most one CRC encoding before each encoding in the concatenated encoding to obtain the second encoded bit sequence.
[0009] On the other hand, a decoding device is provided for use in a second node, the device comprising: a processing module.
[0010] The processing module is used to decode the first code block in the second encoded bit sequence based on multiple check bit sequences in the second encoded bit sequence. The multiple check bit sequences include: the check bit sequence of each encoding of the concatenated encoding and the check bit sequence of at most one CRC encoding performed before each encoding of the concatenated encoding. The processing module is also used to concatenate all the first code blocks in the second encoded bit sequence to obtain the decoded first encoded bit sequence after all the first code blocks in the second encoded bit sequence have been decoded. The processing module is also used to decode the bit sequence to be encoded in the decoded first encoded bit sequence based on the check bit sequence of the first CRC encoding in the decoded first encoded bit sequence.
[0011] In another aspect, a communication device is provided, comprising: a memory and a processor. The memory and the processor are coupled. The memory is used to store a computer program. When the processor executes the computer program, it implements the encoding method and decoding method of any of the above embodiments.
[0012] In another aspect, a computer-readable storage medium is provided, on which computer program instructions are stored, which, when executed by a processor, implement the encoding and decoding methods of any of the above embodiments.
[0013] In another aspect, a computer program product is provided, which includes computer program instructions that, when executed, implement the encoding and decoding methods of any of the above embodiments.
[0014] This disclosure discloses performing Cyclic Redundancy Check (CRC) encoding before each encoding method in a concatenated encoding process. This allows the subsequent decoding end to verify the accuracy of the received bit sequence in advance based on CRC during decoding, thereby managing the decoding process (i.e., if the CRC passes, the bit sequence is accurate, and the decoding process can be skipped). Thus, by applying CRC encoding to a concatenated encoding process consisting of multiple encoding methods, error correction performance and decoding efficiency can be improved, thereby enhancing the reliability of data transmission. Attached Figure Description
[0015] To more clearly illustrate the technical solutions in this disclosure, the accompanying drawings used in some embodiments of this disclosure will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this disclosure. For those skilled in the art, other drawings can be obtained based on these drawings.
[0016] Figure 1 A schematic diagram of a communication system provided for some embodiments of this disclosure;
[0017] Figure 2 A flowchart illustrating an encoding method provided in some embodiments of this disclosure;
[0018] Figure 3 This is a schematic diagram illustrating an example of an encoding process provided for some embodiments of this disclosure;
[0019] Figure 4 A schematic diagram illustrating another encoding process provided for some embodiments of this disclosure;
[0020] Figure 5 A schematic diagram illustrating another encoding process provided for some embodiments of this disclosure;
[0021] Figure 6 A schematic diagram illustrating another encoding process provided for some embodiments of this disclosure;
[0022] Figure 7 A schematic diagram illustrating another encoding process provided for some embodiments of this disclosure;
[0023] Figure 8 A schematic diagram illustrating another encoding process provided for some embodiments of this disclosure;
[0024] Figure 9 A schematic diagram illustrating another encoding process provided for some embodiments of this disclosure;
[0025] Figure 10 A flowchart illustrating a decoding method provided in some embodiments of this disclosure;
[0026] Figure 11 This is a schematic diagram illustrating another decoding process provided by some embodiments of this disclosure;
[0027] Figure 12 This is a schematic diagram illustrating another decoding process provided by some embodiments of this disclosure;
[0028] Figure 13 This is a schematic diagram illustrating another decoding process provided by some embodiments of this disclosure;
[0029] Figure 14This is a schematic diagram illustrating another decoding process provided by some embodiments of this disclosure;
[0030] Figure 15 This is a schematic diagram illustrating another decoding process provided by some embodiments of this disclosure;
[0031] Figure 16 This is a schematic diagram illustrating another decoding process provided by some embodiments of this disclosure;
[0032] Figure 17 This is a schematic diagram illustrating another decoding process provided by some embodiments of this disclosure;
[0033] Figure 18 A flowchart illustrating an interactive encoding and decoding method provided in some embodiments of this disclosure;
[0034] Figure 19 A schematic diagram of the structure of an encoding device provided in some embodiments of this disclosure. Figure 1 ;
[0035] Figure 20 A schematic diagram of the structure of a decoding device provided in some embodiments of this disclosure. Figure 1 ;
[0036] Figure 21 A schematic diagram of the structure of an encoding device provided in some embodiments of this disclosure. Figure 2 ;
[0037] Figure 22 A schematic diagram of the structure of a decoding device provided in some embodiments of this disclosure. Figure 2 . Detailed Implementation
[0038] The technical solutions of this disclosure will now be clearly and completely described with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this disclosure, and not all embodiments. Based on the embodiments of this disclosure, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this disclosure.
[0039] It should be noted that, in this disclosure, the terms "exemplary" or "for example" are used to indicate examples, illustrations, or descriptions. Any embodiment or design described as "exemplary" or "for example" in this disclosure should not be construed as being more preferred or advantageous than other embodiments or designs. Specifically, the use of terms such as "exemplary" or "for example" is intended to present the relevant concepts in a concrete manner.
[0040] Hereinafter, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include one or more of that feature.
[0041] In the description of this disclosure, unless otherwise stated, " / " means "or," for example, A / B can mean A or B. "And / or" in this document is merely a description of the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, and B alone. Furthermore, "at least one" means one or more, and "more than one" means two or more.
[0042] With the current development of virtual reality / augmented reality, intelligent transportation, intelligent industrial control, and AI (artificial intelligence) large-scale models, the requirements for ultra-high data rates, ultra-low latency, and ultra-high reliability in 6G mobile communication technology are becoming increasingly stringent. Compared to existing 5G mobile communication technology, the research target for reliability (air interface) may be as low as 10. -5 Up to 10 -7 Currently, the parity check matrices (PCM) in 5G protocols have a reliability of 10. -5 Up to 10 -7 Significant error planes may appear nearby, making it difficult to quickly reduce the bit error rate even if the signal-to-noise ratio is increased.
[0043] Digital communication systems generally consist of three main parts: the transmitter, the channel, and the receiver.
[0044] At the transmitting end, the transmitting end can perform channel coding on the information sequence to be coded to obtain coded codewords, perform rate matching on the coded codewords, adjust the code rate of the codewords through the rate matching process according to the actual transmission requirements, interleave the rate-matched coded bits, and map the interleaved bits into modulation symbols. Then, the modulation symbols can be processed and transmitted according to the communication channel information.
[0045] In a channel, data transmission errors can occur due to factors such as multipath propagation, noise, and interference. The receiving end receives the modulated symbol data transmitted through the channel; this data is now distorted. Based on the encoding method used by the transmitting end to encode the information sequence, the receiving end can process the received data to reliably recover the original information sequence. The encoding method used by the transmitting end is visible to both the transmitting and receiving ends.
[0046] Generally, the encoding method is based on forward error correction (FEC) coding, where FEC adds redundant information to the information sequence. The receiver can then use this redundant information to reliably recover the original information sequence.
[0047] At the sending end, the data blocks to be transmitted typically need to be encoded using Cyclic Redundancy Check (CRC). CRC is a commonly used check method based on division and remainders, used to detect errors during data transmission or storage. The basic principle of CRC is to treat the data as a very large number, divide it by a predetermined polynomial (called the generator polynomial), and then append the remainder to the original data to form a complete data packet. Upon receiving the data, the receiver performs the same generator polynomial division on the entire data packet. If the remainder is zero, the data is considered error-free; if the remainder is not zero, an error is considered to have occurred during transmission.
[0048] The transmitting end appends the CRC codeword information obtained through CRC encoding to the data block to be transmitted. The decoding end, after obtaining the data block with the appended CRC, performs CRC verification to determine if the decoded data block is erroneous. Then, the data block with the appended CRC is divided into multiple smaller data blocks, generally called code blocks. Each code block is then subjected to FEC encoding. The FEC encoding rate is generally defined as the ratio of the number of bits entering the encoder to the actual number of bits transmitted. Commonly used channel coding methods include low-density parity check (LDPC) coding, polar coding, turbo coding, convolutional coding, non-systematic Reed-Solomon (RS) coding, and Bose-Chaudhuri-Hocquenghem (BCH) coding.
[0049] Currently, channel coding generally employs concatenated coding to improve data transmission reliability and error correction capabilities. Concatenated coding is a method that strings together multiple codes to enhance error correction. Specifically, concatenated coding divides the coding process into multiple stages, typically consisting of two or more different encoders connected in series to form a long code. In concatenated coding, the output of one encoder becomes the input of the next, thus leveraging the error correction characteristics of different encoders to improve overall error correction performance, enhance resistance to multi-user interference, and improve convergence speed during iterative detection and decoding.
[0050] In concatenated coding, the CRC can be located at different positions in the entire coding chain to play different roles.
[0051] For example, error detection and verification: CRC can detect errors in data during transmission or storage. The CRC codeword is appended to the data, and the receiver determines whether the data has changed by checking the CRC value.
[0052] Auxiliary decoding: Taking the belief propagation (BP) decoding of LDPC codes as an example, CRC can be used as an early termination condition in the iterative decoding process of LDPC codes. When the CRC check passes, the iteration process can be terminated early, thereby improving decoding efficiency.
[0053] Path selection and verification: Taking the successive cancellation list (SCL) decoding of Polar codes as an example, CRC helps to select the correct decoding result from the SCL decoding list, thereby greatly improving the error correction performance of Polar codes.
[0054] This disclosure primarily describes two different CRC addition methods in the concatenated coding of FEC: the CRC addition methods differ when the external code is a systematic code and when the external code is a non-systematic code. This allows for early determination of whether the data has been successfully decoded during decoding, improving decoding efficiency. Generally, the encoder connected to the source is called the external encoder, and the encoder connected to the channel is called the internal encoder. In this disclosure, the encoding method in the external encoder is referred to as the first encoding method, and the encoding method in the internal encoder is referred to as the second encoding method.
[0055] Systematic coding means that the encoded codeword contains the original information sequence. One advantage of systematic coding is that the information bits are directly obtained after decoding, without the need for additional steps to extract them. A systematically coded codeword typically consists of two parts: information bits and parity bits. The information bits remain unchanged, while the parity bits are combinations of the information bits. In systematic coding, data and redundant bits can be separated by examining the encoder output. The generator matrix of a systematic codeword typically has the form [Ik|Q], where Ik is a k×k identity matrix, Q is a k×r matrix, k is the number of information bits, and r is the number of parity bits. Non-systematic coding means that the encoded codeword does not directly contain the original information sequence; information bits and parity bits are interleaved and mixed together. The generator matrix of a non-systematic codeword does not have the form of a systematic codeword generator matrix, i.e., it does not have the [Ik|Q] structure. Therefore, systematic coding allows the direct extraction of information bits from the encoded codeword, while non-systematic coding requires a decoding process to recover the information bits.
[0056] The CRC encoding process essentially involves selecting a suitable divisor, treating the data to be CRC encoded as the dividend, and then performing modulo-2 division. The remainder obtained is the CRC checksum. For example, given a 10-bit data A to be CRC encoded as 1101011011, and a divisor B as the bit sequence 10011, we first need to add 4 zero bits after the dividend A. The number of zero bits added is equal to the length of the bit sequence B minus one. Then, we perform modulo-2 division, i.e., XOR operation. The final remainder C, 1110, is the CRC checksum, as shown in Formula 1 below.
[0057]
[0058]
[0059] The remainder chosen is usually called the "generating polynomial". For example, the above 10011 is described as having a generating polynomial of G(x) = x. 4 +x+1, different generator polynomials correspond to different CRC types. Table 1 shows some common CRC types and their corresponding generator polynomials. In CRC-6, the "6" indicates that the CRC checksum is generated with 6 bits.
[0060] Table 1. Mapping Table between CRC Types and Generator Polynomials
[0061] CRC type Generating polynomials CRC-6 x 6 +x 5 +1]]> CRC-8 <![CDATA[ x 8 +x 2 +x+1]]> CRC-11 <![CDATA[ x 11 +x 10 +x 9 +x 5 +1]]> CRC-12 <![CDATA[ x 12 +x 11 +x 3 +x 2 +x+1]]> CRC-16 <![CDATA[ x 16 +x 12 +x 5 +1]]> CRC-24A <![CDATA[ x 24 +x 23 +x 18 +x 17 +x 14 +x 11 +x 10 +x 7 +x 6 +x 5 +x 4 +x 3 +x+1]]> CRC-24B <![CDATA[ x 24 +x 23 +x 6 +x 5 +x+1]]> CRC-24C <![CDATA[ x 24 +x 23 +x 21 +x 20 +x 17 +x 15 +x 13 +x 12 +x 8 +x 4 +x 2 +x+1]]> CRC-32 <![CDATA[ x 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +x+1]]>
[0062] After receiving data with CRC appended, the receiving end divides the data by a generator polynomial. If the remainder is 0, it means the transmitted data is correct; if the remainder is not 0, it means the transmitted data has an error.
[0063] In summary, given the low reliability and high complexity of the encoding and decoding process in channel coding technologies, how to encode service data through channel coding to improve the reliability and efficiency of data transmission has become an urgent technical problem to be solved.
[0064] Based on this, to solve the aforementioned technical problems, this disclosure provides an encoding method applied to channel coding scenarios for wireless data transmission between communication devices. Cyclic Redundancy Check (CRC) encoding is performed before each encoding method in the concatenated encoding process. This allows the subsequent decoding end to verify the accuracy of the received bit sequence in advance based on CRC during decoding, thereby managing the decoding process (i.e., if the CRC passes, the bit sequence is accurate, and the decoding process can be skipped). Thus, by applying CRC encoding to a concatenated encoding process composed of multiple encoding methods, error correction performance and decoding efficiency can be improved.
[0065] In other words, during data transmission, due to the influence of factors such as multipath, noise, and interference, FEC coding can be used as a channel coding method to eliminate the distortion caused by data during transmission, while CRC can be used for error detection and verification, and auxiliary decoding.
[0066] In this way, depending on whether the first encoding method is systematic encoding or non-system encoding, CRC encoding can be selectively performed at different positions, which can improve decoding reliability, reduce computational complexity and improve decoding efficiency in different scenarios.
[0067] Furthermore, the encoding method provided in this disclosure can be applied to 5G-A, 6G mobile communication networks or other communication networks (such as satellite communication and high-frequency microwave communication).
[0068] In this embodiment of the disclosure, the network architecture of the mobile communication network (including but not limited to 2G, 3G, 4G, 5G, and future mobile communication networks (such as the evolution of fifth-generation mobile communication technology (5G-A) and sixth-generation mobile communication technology (6G)) may include at least a first communication node and a second communication node. It should be understood that, in this example, in the uplink, the first communication node may be a terminal-side node (e.g., including but not limited to a terminal), and the second communication node may be a network (NW)-side node (e.g., including but not limited to a base station). Of course, in the downlink, the first communication node may also be a network-side node, and the second communication node may also be a terminal-side node. In node-to-node communication between the two communication nodes, both the first and second communication nodes can be base stations or terminals. The first and second communication nodes may be referred to as the first node and the second node, respectively.
[0069] For example, such as Figure 1 The diagram shown is a schematic of a communication system provided in an embodiment of this disclosure. The communication system may include: a first node 101 and a second node 102.
[0070] When transmitting wireless signals with the second node 102, the first node 101 can perform channel coding on the initial bit sequence to be transmitted (i.e. the bit sequence to be encoded) and send the encoded initial bit sequence to the second node 102 so that the second node 102 can receive the encoded initial bit sequence and then recover the encoded initial bit sequence through channel decoding to obtain the initial bit sequence.
[0071] In this embodiment of the disclosure, during the channel coding of the initial bit sequence by the first node 101, the first node 101 can encode the initial bit sequence based on a first CRC to obtain a first coded bit sequence. Next, the first node 101 can segment the first coded bit sequence to obtain at least one first code block. Then, the first node 101 can perform first encoding, second encoding, and at most two CRC encodings based on the first code block to obtain a second coded bit sequence (i.e., the bit sequence after encoding the first code block).
[0072] At most two CRC encodings can be one of the following: zero CRC encoding, one CRC encoding, or two CRC encodings. The initial bit sequence length B is an integer greater than 0; the first encoded bit sequence length N1 is an integer greater than B; the length K of the first code block is an integer less than or equal to N1 and greater than 0; the product of the second encoded bit sequence length N2 and the number of the first code blocks is an integer greater than N1.
[0073] Furthermore, the encoded initial bit sequence sent by the first node 101 to the second node 102 can be all or part of the bits in the encoded initial bit sequence.
[0074] In this way, by applying at least one CRC code to a concatenated code consisting of two encoding methods (i.e., the first encoding method and the second encoding method), error correction performance and decoding efficiency can be improved, thereby improving the reliability of data transmission.
[0075] It should be noted that the embodiments disclosed herein do not limit the first node and the second node.
[0076] For example, the first node 101 and the second node 102 may include, but are not limited to, the following electronic devices: base station (BS), access point (AP), node B, g-node B (generalized node B), radio network controller (RNC), evolved node B (eNB), base station controller (BSC), base transceiver station (BTS), transceiver function (TF), radio router, radio transceiver, basic service set (BSS), extended service set (ESS), or radio base station (RBS).
[0077] For example, the first node 101 and the second node 102 can also be access terminals, user equipment (UE), user units, user stations, mobile stations, mobile stations, remote stations, remote terminals, mobile devices, user terminals, wireless communication equipment, user agents, or user devices.
[0078] Alternatively, the second node 102 can be a cellular phone, cordless phone, session initiation protocol (SIP) phone, wireless local loop (WLL) station, personal digital assistant (PDA), handheld device with wireless communication capabilities, computing device or other processing device connected to a wireless modem, in-vehicle device, wearable device, 5G network or terminal device in future 5G or higher networks, etc.
[0079] Specifically, user equipment (UE) can be a device with wireless transceiver capabilities. User equipment can be a mobile phone, tablet, computer with wireless transceiver capabilities, virtual reality (VR) terminal, augmented reality (AR) terminal, wireless terminal in industrial control, wireless terminal in self-driving, wireless terminal in remote medical care, wireless terminal in smart grid, wireless terminal in transportation safety, wireless terminal in smart city, wireless terminal in smart home, etc. The embodiments of this disclosure do not limit the application scenarios. A terminal may also be referred to as a user, terminal, artificial intelligence of things (A-IoT) device, access terminal, UE unit, UE station, mobile station, mobile station, remote station, transmitter, remote terminal, mobile device, UE terminal, wireless communication device, UE agent, or UE device, etc., and the embodiments of this disclosure do not limit this.
[0080] A base station (BS) can be a base station in LTE, Long Term Evolution Advanced (LTEA) or an evolved Node B (eNB or eNodeB), a base station device (gNB) in a 5G network, or a base station in a future communication system. Base stations can include various macro base stations, micro base stations, femtocell base stations, wireless remote extensions, reconfigurable intelligent surfaces (RISS), routers, relay stations, transmission and reception points (TRPs), receivers, access points, wireless fidelity (Wi-Fi) devices, and other network-side equipment. A base station can sometimes also be referred to as a reader / writer used for communication with terminals.
[0081] It should be noted that, Figure 1 This is just an example framework diagram. Figure 1 The number of nodes included, and the names of each node, are unlimited, except for... Figure 1 In addition to the nodes shown, the communication system may also include other nodes, such as core network elements.
[0082] The application scenarios of the embodiments disclosed herein are not limited. The system architecture and business scenarios described in the embodiments of this disclosure are for the purpose of more clearly illustrating the technical solutions of the embodiments of this disclosure, and do not constitute a limitation on the technical solutions provided by the embodiments of this disclosure. As those skilled in the art will know, with the evolution of network architecture and the emergence of new business scenarios, the technical solutions provided by the embodiments of this disclosure are also applicable to similar technical problems.
[0083] Figure 2 A flowchart of an encoding method is shown, such as... Figure 2 As shown, this encoding method is applied to the first node and includes:
[0084] S201. Encode the bit sequence to be encoded based on the first cyclic redundancy check to obtain the first encoded bit sequence.
[0085] The bit sequence to be encoded is a transmission block of length B, where B is an integer greater than 0.
[0086] As one possible implementation, the transport block size B can be determined based on at least one of the following parameters (1.1)-(1.6):
[0087] (1.1) The number of transmission layers, v;
[0088] (1.2) Modulation order Q;
[0089] (1.3) Bitrate R;
[0090] (1.4) The number of physical resource blocks (PRBs) n allocated PRB ;
[0091] (1.5) The number N of available resource elements (REs) in each physical resource block RE ;
[0092] (1.6) The length of the first CRC, C1.
[0093] For example, the transport block size B, the product of the following parameters, and the length of the first CRC have the mapping relationship shown in Formula 2:
[0094] f(N RE +n PRB Formula 2: ·R·Q·v,C1)=B
[0095] It should be noted that the process of the first node encoding the bit sequence to be encoded based on the first cyclic redundancy check to obtain the first encoded bit sequence can be referred to the above introduction of CRC encoding, and will not be repeated here.
[0096] In the process of encoding the bit sequence to be encoded by the first node based on the first CRC, the CRC check length of the first CRC used by the first node can be any of the following: 11, 12, 16, 24, 32.
[0097] For example, referring to Table 1 above, when the CRC check length of the first CRC is 11, the first CRC encoding generator polynomial is g(x) = x. 11 +x 10 +x 9 +x 5 +1.
[0098] When the CRC check length of the first CRC is 12, the first CRC encoding generator polynomial is g(x) = x. 12 +x 11 +x 3 +x 2 +x+1.
[0099] When the CRC check length of the first CRC is 16, the first CRC encoding generator polynomial is g(x) = x. 16 +x 12 +x 5 +1.
[0100] When the CRC check length of the first CRC is 24, the first CRC encoding generator polynomial is g(x) = x. 24 +x 23 +x 6 +x 5 +x+1.
[0101] When the CRC check length of the first CRC is 32, the generator polynomial of the first CRC encoding is g(x) = x. 32 +x 26 +x 23 +x 22 +x 16 +x 12 +x 11 +x 10 +x 8 +x 7 +x 5 +x 4 +x 2 +x+1.
[0102] S202. Segment the first encoded bit sequence to obtain at least one first code block.
[0103] In the process of segmenting the first encoded bit sequence by the first node, the first node can determine the segment position of the first encoded bit sequence by determining whether the length of the first encoded bit sequence is greater than a first length threshold.
[0104] As one possible implementation, if the length of the first encoded bit sequence is less than or equal to the first length threshold, the first node can position the segment before the first bit or after the last bit in the first encoded bit sequence, retain the entire first encoded bit sequence, and use the first encoded bit sequence as the first code block to obtain one first code block.
[0105] In other words, if the length of the first encoded bit sequence is short, it is not necessary to segment it. The first encoded bit sequence can be directly used as the first code block for subsequent encoding processing, and the number of the first code block is 1.
[0106] As another possible implementation, if the length of the first encoded bit sequence is greater than the first length threshold, the first node can locate or randomly locate the segment position in the first encoded bit sequence according to the second length threshold to obtain at least two first code blocks.
[0107] In other words, when the length of the first encoded bit sequence is long, segmented encoding can be used to perform subsequent encoding processing on the first encoded bit sequence, so as to achieve parallel multi-threaded encoding processing of multiple first code blocks and improve encoding processing efficiency.
[0108] Wherein, if the first node is located at a segment position in the first coded bit sequence according to the second length threshold, then the length of the first code block is less than or equal to the second length threshold, and the number of bits in all first code blocks is equal.
[0109] In other words, the sum of the length B of the bit sequence to be encoded and the length C1 of the first CRC (i.e. the length of the first encoded bit sequence) is a multiple of the length K of a single first code block, thus achieving equal distribution.
[0110] Optionally, if the sum of the length B of the bit sequence to be encoded and the length C1 of the first CRC is not divisible by the second length threshold, the first node can fill the bit sequence to be encoded so that the sum of the length B′ of the filled bit sequence to be encoded and the length C1 of the first CRC is divisible by the second length threshold.
[0111] It should be noted that the first length threshold and / or the second length threshold can be preset thresholds in the first node. Alternatively, the first length threshold and / or the second length threshold can be length thresholds determined by the first node based on relevant information of each encoding scheme in subsequent concatenated encoding.
[0112] In this embodiment, the number of encoding operations in the concatenated encoding is not limited. For example, the number of encoding operations in the concatenated encoding can be 2. Another example is that the number of encoding operations in the concatenated encoding can be 3. Yet another example is that the number of encoding operations in the concatenated encoding can be 5.
[0113] The following describes the encoding method provided in this embodiment of the present disclosure, taking a concatenated encoding with two encoding times as an example.
[0114] In some embodiments, the number of encoding operations for concatenated coding can be two, and concatenated coding can include encoding based on a first encoding method and encoding based on a second encoding method.
[0115] The second encoding method is either a systematic encoding or a non-system encoding, while the first encoding method is either a non-system encoding or a non-system encoding.
[0116] It should be noted that the second encoding method can be any one of the following (2.1)-(2.3):
[0117] (2.1) LDPC encoding;
[0118] (2.2) Polar encoding;
[0119] (2.3) Turbo encoding.
[0120] Furthermore, when the first encoding method is a non-system encoding method, the first encoding method can be any one of the following (3.1)-(3.3):
[0121] (3.1) Convolutional coding;
[0122] (3.2) RS encoding;
[0123] (3.3) Polar encoding.
[0124] When the first encoding method is system encoding, the first encoding method can be any one of the following (4.1)-(4.3):
[0125] (4.1) BCH encoding;
[0126] (4.2) RS encoding;
[0127] (4.3) LDPC encoding.
[0128] For example, the first encoding method is RS encoding, and the second encoding method is LDPC encoding. Alternatively, the first encoding method is BCH encoding, and the second encoding method is LDPC encoding.
[0129] As one possible implementation, the first length threshold satisfies any one of the following (5.1)-(5.2):
[0130] (5.1) The first length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the first encoding method, and the CRC check length of the CRC encoding before the second encoding method (i.e., the third CRC below) is C3.
[0131] (5.2) The first length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the second encoding method, the code rate of the first encoding method, and the CRC check length of the CRC encoding before the second encoding method (i.e., the third CRC below) is C3.
[0132] In other words, the length of the first encoded bit sequence is determined based on the upper limit of the input bits and the code rate of the encoding method in the concatenated encoding.
[0133] For example, taking (5.1) above as an example, the value of the first length threshold K1 is determined by the maximum number of input (in) bits K of the second encoding method. 2,in The code rate R1 of the first encoding method and the CRC check length C3 of the third CRC are obtained, and the first length threshold K1 can be calculated by the following formula three or formula four:
[0134]
[0135] For example, K 2,inIf R1 equals 16384, C3 equals 0.89, and C3 equals 0 (meaning no CRC encoding is performed before the second encoding method), then K1 equals 14581 or 14582.
[0136] For example, K 2,in If R1 equals 16384, C3 equals 0.89, and C3 equals 24, then K1 equals 14560 or 14561.
[0137] Taking (5.2) above as an example, the value of the first length threshold K1 is determined by the maximum number of output (out) bits K of the second encoding method. 2,out The code rate R1 of the first encoding method and the code rate R2 of the second encoding method are obtained, and the first length threshold K1 can be calculated by the following formula five or formula six:
[0138]
[0139] For example, K 2,out If R1 equals 4096, R2 equals 0.89, R2 equals 0.926, and C3 equals 0 (meaning no CRC encoding is performed before the second encoding method), then K1 equals 3375 or 3376.
[0140] For example, K 2,out If R1 equals 4096, R2 equals 0.89, R3 equals 0.926, and C3 equals 16, then K1 equals 3361 or 3362.
[0141] As one possible implementation, the second length threshold satisfies any one of the following (6.1)-(6.2):
[0142] (6.1) The second length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the first encoding method, and the CRC check length of each CRC encoding.
[0143] (6.2) The second length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the second encoding method, the code rate of the first encoding method, and the CRC check length of each CRC encoding.
[0144] In other words, the block size of segmented encoding is determined based on the upper limit of the input bits and the code rate of the encoding method in concatenated encoding, as well as the check length of CRC encoding.
[0145] The CRC check length of the CRC encoding prior to the first encoding method (i.e., the second CRC below) is C2, and the CRC check length of the CRC encoding prior to the second encoding method (i.e., the third CRC below) is C3.
[0146] For example, taking (6.1) above as an example, the value of the second length threshold K2 is determined by the maximum number of input bits K of the second encoding method. 2,in The code rate R1 of the first encoding method, the CRC check length C2 of the second CRC encoding, and the CRC check length C3 of the third CRC encoding are obtained, and the second length threshold K2 can be calculated using the following formula seven or formula eight:
[0147]
[0148] For example, K 2,in If K2 equals 16384, R1 equals 0.89, C3 equals 0 (i.e., no CRC encoding is performed before the second encoding method), and C2 equals 16, then K2 equals 14565 or 14566.
[0149] For example, K 2,in If R1 equals 0.89, C3 equals 16, C2 equals 16, then K2 equals 14551 or 14552.
[0150] For example, K 2,in If R1 equals 16384, C3 equals 0.89, C2 equals 24, and C2 equals 0 (meaning no CRC encoding is performed before the first encoding method), then K2 equals 14560 or 14561.
[0151] Taking (6.2) above as an example, the value of the second length threshold K2 is determined by the maximum number of output bits K of the second encoding method. 2,out The code rate R1 of the first encoding method, the code rate R2 of the second encoding method, and the CRC check length C2 for each CRC encoding are obtained, and the second length threshold K2 can be calculated using the following formula nine or formula ten:
[0152]
[0153] For example, K 2,out If K2 equals 4096, R1 equals 0.89, R2 equals 0.926, C3 equals 0 (i.e., no CRC encoding is performed before the second encoding method), and C2 equals 16, then K2 equals 3359 or 3360.
[0154] For example, K 2,out If R1 equals 4096, R2 equals 0.89, R2 equals 0.926, C3 equals 16, and C2 equals 16, then K2 equals 3345 or 3346.
[0155] For example, K 2,outIf R1 equals 4096, R2 equals 0.89, R2 equals 0.926, C3 equals 16, and C2 equals 0 (i.e., no CRC encoding is performed before the first encoding method), then K2 equals 3361 or 3362.
[0156] In some embodiments, the first node may perform the following S203 for each first code block.
[0157] S203. Concatenate coding is performed on the first code block, and at most one cyclic redundancy check coding is performed before each encoding of the concatenated coding to obtain the second coded bit sequence.
[0158] If the first node performs at most one CRC encoding before each encoding in the concatenated encoding, then the first node can perform at most two CRC encodings in the concatenated encoding, such as zero CRC encodings, one CRC encoding, or two CRC encodings.
[0159] In this embodiment of the disclosure, the CRC encoding before the first encoding method of concatenated encoding is the encoding of the second CRC, and the CRC encoding before the second encoding method of concatenated encoding is the encoding of the third CRC.
[0160] It should be noted that the purpose of cascading the first and second encoding methods is to improve the system's performance, including enhancing its ability to resist multi-user interference and its ability to converge quickly during iterative detection and decoding.
[0161] The second encoding method, namely the internal code, needs to be able to resist interference from multiple users and converge quickly during iterative detection and decoding. This generally means that the internal code usually needs to have a high error correction capability.
[0162] The first encoding method, namely the external code, is generally considered to have the ability to correct sudden errors, and focuses more on correcting sudden errors or long-distance errors.
[0163] The first CRC is mainly used to verify the decoded and recovered data to determine whether the decoded data is correct.
[0164] The third CRC is used in the decoding process of the second encoding method. It can not only be used to verify the correctness of the data, but also save computation through early termination operation.
[0165] The second CRC is used in the decoding process of the first encoding method and / or the second encoding method. It can not only be used to verify the correctness of the data, but also save computation through early termination operation.
[0166] Wherein, if both the first encoding method and the second encoding method are system encodings, the second CRC can be used in the decoding process of the first encoding method and the second encoding method. Alternatively, if the first encoding method is a system encoding and the second encoding method is a non-system encoding, the second CRC is only used in the decoding process of the first encoding method.
[0167] As one possible implementation, the second coded bit sequence includes at least one of the following (7.1)-(7.5):
[0168] (7.1) First code block;
[0169] (7.2) A parity bit sequence encoded based on the first encoding method;
[0170] (7.3) The parity bit sequence encoded based on the second encoding method;
[0171] (7.4) The first check bit sequence based on the second CRC encoding;
[0172] (7.5) The second check bit sequence based on the third CRC encoding.
[0173] It should be noted that the CRC check length of the second CRC and the CRC check length of the third CRC can be any of the following: 8, 11, 12, 16, 24.
[0174] For example, referring to Table 1 above, taking the second CRC as an example, when the CRC check length of the second CRC is 8, the second CRC encoding generator polynomial is g(x) = x 8 +x 2 +x+1.
[0175] When the CRC check length of the second CRC is 11, the generator polynomial of the second CRC encoding is g(x) = x. 11 +x 10 +x 9 +x 5 +1.
[0176] When the CRC check length of the second CRC is 12, the generator polynomial of the second CRC encoding is g(x) = x. 12 +x 11 +x 3 +x 2 +x+1.
[0177] When the CRC check length of the second CRC is 16, the generator polynomial of the second CRC encoding is g(x) = x. 16 +x 12 +x 5 +1.
[0178] When the CRC check length of the second CRC is 24, the generator polynomial of the second CRC encoding is g(x) = x. 24 +x 23 +x 18 +x 17 +x 14 +x 11 +x 10 +x 7 +x 6 +x 5 +x 4 +x 3 +x+1.
[0179] Similarly, the generator polynomials corresponding to different CRC check lengths of the third CRC can be referenced from the generator polynomials corresponding to different CRC check lengths of the second CRC, which will not be elaborated here.
[0180] In some embodiments, if the first encoding method is system encoding, the first node can encode the first code block according to the second encoding strategy to obtain the second encoded bit sequence.
[0181] The second encoding strategy can be any one of the following (8.1)-(8.2):
[0182] (8.1) Sequentially execute the second CRC encoding, the first encoding method encoding, and the second encoding method encoding;
[0183] (8.2) Execute the encoding of the first encoding method and the encoding of the second encoding method in sequence.
[0184] It should be noted that the first node can refer to the number of the first code block when selecting the second coding strategy.
[0185] As one possible implementation, when the number of the first code block is greater than 1, the second encoding strategy selected by the first node is as described in (8.1), and the second CRC encoding, the first encoding method encoding, and the second encoding method encoding are executed in sequence.
[0186] For example, taking the second encoding method as the system encoding, such as... Figure 3 As shown, 301 is a bit sequence of length B to be encoded. After encoding by the first CRC, a CRC check bit sequence of length C1 is obtained, 302. 303 represents a code block after code block segmentation (i.e., the first code block). The code block is encoded by the second CRC to obtain a CRC check bit sequence of length C2, 304 (i.e., the first check bit sequence). 305 is the check bit sequence part obtained after encoding by the first encoding method. 306 is the check bit sequence part obtained after encoding by the second encoding method.
[0187] The specific representations of data after encoding using different encoding methods are as follows:
[0188] The bit sequence length of the code block is K, and the bit sequence of the code block can be [a0, a1, ..., a...]. K-1 ], where a i This represents an information bit, i = 0, 1, ..., K-1.
[0189] After the code block is encoded by the second CRC, the C2 check bits generated by the second CRC are appended to the bit sequence of the code block to obtain the encoded data bit sequence 1, represented as: , where p j This represents a second CRC check bit, j = 0, 1, ..., C2-1.
[0190] Data bit sequence 1 is encoded using the first encoding method to obtain m1 parity bits. Data bit sequence 1 of length K+C2 and the m1 parity bits together form the encoded data bit sequence 2, represented as: , where q t This represents a parity bit for a first encoding scheme, t = 0, 1, ..., m1-1.
[0191] The second encoding method is either systematic encoding or non-systematic encoding. If the second encoding method is systematic encoding, the data bit sequence 2, after being encoded using the second encoding method, obtains m2 parity bits. The data bit sequence 2 of length K+C2+m1, together with the m2 parity bits, constitutes the encoded data bit sequence 3 as follows: , where r e Let e represent a parity bit for a second encoding method, where e = 0, 1, ..., m2-1. In this case, the total bit length of the encoded bit sequence is equal to N2, where N2 = K + C2 + m1 + m2.
[0192] If the second encoding method is a non-systematic encoding, the data bit sequence 2, after being encoded by the second encoding method, obtains an encoded bit sequence 3 of length N2. The encoded bit sequence 3 of length N2 can be represented as: , where b s Let s represent a bit encoded using a second encoding method, where s = 0, 1, ..., N2-1.
[0193] As another possible implementation, when the number of the first code block is 1, the second encoding strategy selected by the first node is as described in (8.2), and the encoding of the first encoding method and the encoding of the second encoding method are executed in sequence.
[0194] In other words, since there is only one code block after the first encoded bit sequence is segmented, it is not necessary to add a CRC check bit sequence after the first encoded bit sequence. This is because the first encoded bit sequence already contains the bit sequence to be encoded and a first CRC check bit sequence. Using the first CRC check bit sequence can achieve the same function of CRC verification and CRC-assisted decoding.
[0195] For example, taking the second encoding method as the system encoding, such as... Figure 4 As shown, 411 is a bit sequence of length B to be encoded. After being encoded by the first CRC, a CRC check bit sequence of length C1 is obtained. 412 is the check bit sequence obtained after being encoded by the first encoding method. 413 is the check bit sequence obtained after being encoded by the second encoding method.
[0196] The specific representations of data after encoding using different encoding methods are as follows:
[0197] The bit sequence length of a code block (i.e., the bit sequence to be encoded) is K, and the bit sequence of the code block can be [a0, a1, ..., a K-1 ], where a i This represents an information bit, i = 0, 1, ..., K-1.
[0198] The code block is encoded using the first encoding method to obtain m1 parity bits, which are then appended to the bit sequence of the code block. The code block of length K and the m1 parity bits together form the encoded data bit sequence 1, represented as: , where q t This represents a parity bit for a first encoding scheme, t = 0, 1, ..., m1-1.
[0199] The second encoding method is either systematic encoding or non-systematic encoding. If the second encoding method is systematic encoding, the data bit sequence 1, after being encoded using the second encoding method, obtains m2 parity bits. The data bit sequence 1 of length K+m1, together with the m2 parity bits, constitutes the encoded data bit sequence 2 as follows: , where r e Let e represent a parity bit for a second encoding method, where e = 0, 1, ..., m2-1. In this case, the total bit length of the encoded bit sequence is equal to N2, where N2 = K + m1 + m2.
[0200] If the second encoding method is a non-systematic encoding, the data bit sequence 1, after being encoded by the second encoding method, obtains an encoded bit sequence 2 of length N2. The encoded bit sequence 2 of length N2 can be represented as: , where b sLet s represent a bit encoded using a second encoding method, where s = 0, 1, ..., N2-1.
[0201] In other embodiments, if the first encoding method is a non-system encoding, the first node can encode the first code block according to the first encoding strategy to obtain the second encoded bit sequence.
[0202] The first encoding strategy can be any one of the following (9.1)-(9.2):
[0203] (9.1) Execute the second CRC encoding, the first encoding method encoding, the third CRC encoding, and the second encoding method encoding in sequence;
[0204] (9.2) Execute the encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method in sequence.
[0205] It should be noted that the first node can refer to the number of the first code blocks when selecting the first coding strategy.
[0206] As one possible implementation, when the number of the first code block is greater than 1, the first encoding strategy selected by the first node is as described in (9.1), and the second CRC encoding, the first encoding method encoding, the third CRC encoding, and the second encoding method encoding are executed in sequence.
[0207] For example, taking the second encoding method as the system encoding, such as... Figure 5 As shown, 501 is a bit sequence to be encoded with a length of B. After encoding by the first CRC, a CRC check bit sequence of length C1 is obtained, 502. 503 represents a code block after code block segmentation (i.e., the first code block). The code block is encoded by the second CRC to obtain a CRC check bit sequence of length C2, 504 (i.e., the first check bit sequence). 505 is the encoded bit sequence obtained after encoding by the first encoding method without systematic encoding. It is then encoded by the third CRC to obtain a CRC check bit sequence of length C3, 506 (i.e., the second check bit sequence). 507 is the check bit sequence part obtained after encoding by the second encoding method.
[0208] The specific representations of data after encoding using different encoding methods are as follows:
[0209] The bit sequence length of the code block is K, and the bit sequence of the code block can be [a0, a1, ..., a...]. K-1 ], where a i This represents an information bit, i = 0, 1, ..., K-1.
[0210] After the code block is encoded by the second CRC, the C2 check bits generated by the second CRC are appended to the bit sequence of the code block to obtain the encoded data bit sequence 1, represented as: , where p j This represents a second CRC check bit, j = 0, 1, ..., C2-1.
[0211] Since the first encoding method is a non-systematic encoding, the data bit sequence 1, after being encoded using the first encoding method, obtains an encoded bit sequence 2 of length N3, represented as: , where N3 is greater than K+C2.
[0212] After the encoded bit sequence 2 is encoded by the third CRC, the resulting C3 third CRC check bits are appended to the bit sequence of the encoded bit sequence 2 to obtain the data bit sequence 3 encoded by the third CRC, as shown below: , where p j This represents a third CRC check bit, j = 0, 1, ..., C3-1.
[0213] The second encoding method is either systematic encoding or non-systematic encoding. If the second encoding method is systematic encoding, the data bit sequence 3, after being encoded using the second encoding method, obtains m² parity bits. The data bit sequence 3 of length N³+C³, together with the m² parity bits, constitutes the encoded data bit sequence 4 as follows: , where r e Let e represent a parity bit for a second encoding method, where e = 0, 1, ..., m²-1. In this case, the total bit length of the encoded bit sequence is equal to N², where N² = N³ + C³ + m².
[0214] If the second encoding method is a non-systematic encoding, the data bit sequence 3, after being encoded by the second encoding method, obtains an encoded bit sequence 4 of length N2. The encoded bit sequence 4 of length N2 can be represented as: , where b s Let s represent a bit encoded using a second encoding method, where s = 0, 1, ..., N2-1.
[0215] As one possible implementation, when the number of the first code block is 1 or greater than 1, the first encoding strategy that the first node can choose is the above (9.2), and the encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method are executed in sequence.
[0216] In other words, since there is only one code block after the first encoded bit sequence is segmented, and the code block contains an additional first CRC check bit sequence, but because the first encoding method is a non-systematic encoding, the correctness of the bit sequence to be encoded cannot be determined by the first CRC check bit sequence after encoding. Therefore, the data sequence encoded by the first encoding method is encoded using a third CRC, and the correctness of the decoded data sequence corresponding to the data sequence encoded by the first encoding method is determined by the check bit sequence of the third CRC. Using the check bit sequence of the third CRC can also achieve the functions of CRC check and CRC-assisted decoding.
[0217] For example, taking a first code block with a quantity of 1 and a second encoding method of system encoding as an example, such as... Figure 6 As shown, 611 is a bit sequence to be encoded with a length of B. After being encoded by the first CRC, a CRC check bit sequence with a length of C1 is obtained, 612. 613 is the encoded data bit sequence obtained after being encoded by the first encoding method without system encoding. After being encoded by the third CRC, a CRC check bit sequence with a length of C3 is obtained, 614 (i.e., the second check bit sequence). 615 is the check bit sequence part obtained after being encoded by the second encoding method.
[0218] The specific representations of data after encoding using different encoding methods are as follows:
[0219] The bit sequence length of a code block (i.e., the bit sequence to be encoded) is K, and the bit sequence of the code block can be [a0, a1, ..., a K-1 ], where a i This represents an information bit, i = 0, 1, ..., K-1.
[0220] Since the first encoding method is a non-systematic encoding, the code block, after being encoded using the first encoding method, obtains a coded bit sequence of length N3, represented as: , where N3 is greater than K.
[0221] After the encoded bit sequence 1 is encoded by the third CRC, the resulting C3 third CRC check bits are appended to the bit sequence of the encoded bit sequence 1 to obtain the data bit sequence 2 encoded by the third CRC, as shown below: , where p j This represents a third CRC check bit, j = 0, 1, ..., C3-1.
[0222] The second encoding method is either systematic encoding or non-systematic encoding. If the second encoding method is systematic encoding, the data bit sequence 2, after being encoded using the second encoding method, obtains m² parity bits. The data bit sequence 2 of length N³+C³, together with the m² parity bits, forms the encoded data bit sequence 3 as follows: , where r e Let e represent a parity bit for a second encoding method, where e = 0, 1, ..., m²-1. In this case, the total bit length of the encoded bit sequence is equal to N², where N² = N³ + C³ + m².
[0223] If the second encoding method is a non-systematic encoding, the data bit sequence 2, after being encoded by the second encoding method, obtains an encoded bit sequence 3 of length N2. The encoded bit sequence 3 of length N2 can be represented as: , where b s Let s represent a bit encoded using a second encoding method, where s = 0, 1, ..., N2-1.
[0224] For example, taking a case where the number of the first code block is greater than 1 and the second encoding method is system encoding, such as... Figure 7 As shown, 701 is a bit sequence of length B to be encoded. After encoding by the first CRC, a CRC check bit sequence of length C1 is obtained, 702. 703 represents a code block after code block segmentation (i.e., the first code block). The code block is encoded by the first encoding method of non-systematic encoding to obtain the encoded bit sequence 704. It is then encoded by the third CRC to obtain the CRC check bit sequence 705 (i.e., the second check bit sequence) of length C3. 706 is the check bit sequence part obtained after encoding by the second encoding method.
[0225] The specific representations of data after encoding using different encoding methods are as follows:
[0226] The bit sequence length of the code block is K, and the bit sequence of the code block can be [a0, a1, ..., a...]. K-1 ], where a i This represents an information bit, i = 0, 1, ..., K-1.
[0227] Since the first encoding method is a non-systematic encoding, the code block, after being encoded using the first encoding method, obtains a coded bit sequence of length N3, represented as: , where N3 is greater than K.
[0228] After the encoded bit sequence 1 is encoded by the third CRC, the resulting C3 third CRC check bits are appended to the bit sequence of the encoded bit sequence 1 to obtain the data bit sequence 2 encoded by the third CRC, as shown below: , where p jThis represents a third CRC check bit, j = 0, 1, ..., C3-1.
[0229] The second encoding method is either systematic encoding or non-systematic encoding. If the second encoding method is systematic encoding, the data bit sequence 2, after being encoded using the second encoding method, obtains m² parity bits. The data bit sequence 2 of length N³+C³, together with the m² parity bits, forms the encoded data bit sequence 3 as follows: , where r e Let e represent a parity bit for a second encoding method, where e = 0, 1, ..., m²-1. In this case, the total bit length of the encoded bit sequence is equal to N², where N² = N³ + C³ + m².
[0230] If the second encoding method is a non-systematic encoding, the data bit sequence 2, after being encoded by the second encoding method, obtains an encoded bit sequence 3 of length N2. The encoded bit sequence 3 of length N2 can be represented as: , where b s Let s represent a bit encoded using a second encoding method, where s = 0, 1, ..., N2-1.
[0231] In some embodiments, the first node can concatenate multiple first code blocks for batch processing to improve the encoding efficiency of all first code blocks.
[0232] As one possible implementation, taking the second encoding strategy described in (8.1) above as an example, during the process of the first node encoding the first code block according to the second encoding strategy to obtain the second encoded bit sequence, the first node can sequentially perform the second CRC encoding and the first encoding method encoding on each first code block to obtain multiple second code blocks. Then, the first node can concatenate at least two of the multiple second code blocks to obtain at least one third code block, and perform the second encoding method encoding on each third code block to obtain at least one second encoded bit sequence.
[0233] In other words, the second node can concatenate at least one encoded bit sequence after being encoded by the first encoding method to obtain a new data sequence, and then encode the new encoded bit sequence by the second encoding method to obtain an encoded bit sequence.
[0234] For example, taking the second encoding method as the system encoding, such as... Figure 8As shown, 811 is a bit sequence to be encoded of length B. After encoding by the first CRC, a CRC check bit sequence of length C1 is obtained, 812. 813 represents a code block after code block segmentation (i.e., the first code block). The code block is encoded by the second CRC to obtain a CRC check bit sequence of length C2, 814 (i.e., the first check bit sequence). 815 is the check bit sequence part obtained after encoding by the first encoding method. 816 is the encoded bit sequence (i.e., the third code block) obtained by concatenating two code blocks encoded by the first encoding method (i.e., the second code block). 817 is the check bit sequence part obtained after encoding by the second encoding method.
[0235] As another possible implementation, taking the second encoding strategy described in (8.1) above as an example, during the process of the first node encoding the first code block according to the second encoding strategy to obtain the second encoded bit sequence, the first node can concatenate at least two of the multiple first code blocks to obtain at least one fourth code block, where a fourth code block is composed of a first number of concatenated first code blocks. Next, the first node can perform second CRC encoding on each fourth code block to obtain at least one fifth code block. Then, for each fifth code block, the first node can segment it according to the first number corresponding to the fifth code block to obtain a first number of sixth code blocks. Afterwards, the first node can perform first encoding on each sixth code block to obtain multiple second code blocks. Next, the first node can concatenate at least two of the multiple second code blocks to obtain at least one third code block, and perform second encoding on each third code block to obtain at least one second encoded bit sequence.
[0236] For example, taking the second encoding method as the system encoding, such as... Figure 9 As shown, 901 is a bit sequence of length B to be encoded. After encoding by the first CRC, a CRC check bit sequence of length C1 is obtained, 902. 903 represents a code block after code block segmentation (i.e., the first code block). w code blocks are concatenated and then encoded by the second CRC. In the example, two code blocks are concatenated and then encoded by the second CRC to obtain a CRC check bit sequence of length C2, 904 (i.e., the first check bit sequence). The data block after the second CRC encoding is divided into w new code blocks (i.e., the sixth code block), and each is encoded using the first encoding method. 905 is the check bit sequence obtained after encoding by the first encoding method. The bit sequence 906 obtained by concatenating w code blocks encoded by the first encoding method (i.e., the second code block) is encoded using the second encoding method. 907 is the check bit sequence obtained after encoding 906 by the second encoding method. Here, w is an integer greater than 1 and less than the total number of code blocks, and w is divisible by the total number of code blocks.
[0237] The first encoding method can be RS encoding, and the second encoding method can be LDPC encoding. If the length of each segmented code block is 1900, and w = 2 code blocks are concatenated for the second CRC encoding, the second CRC length C2 = 24. At this point, the total length of the two code blocks and the second CRC is 1900 * 2 + 24 = 3824 bits (i.e., the length of the fifth code block). After being divided into two new code blocks (i.e., the sixth code block), each new code block has a length of 1912. Each new code block is encoded using the first encoding method. The 1912 bits are in GF (a finite field) (2... 8 The corresponding information symbols are 1912 / 8 = 239. The bit length of the codeword under GF(28) is 255*8 = 2040. Therefore, the RS code type is RS(255,239). The length of the encoded bit sequence obtained after each new code block is encoded by the second CRC and the first encoding method is 2040 (i.e. the length of the second code block). The coded bit sequences of w = 2 are concatenated, and the length of the concatenated bit sequence is 4080 (i.e. the length of the third code block). The bit sequence of length 4080 is used as the input of the second encoding method and the second encoding method is used to obtain the second encoded bit sequence.
[0238] Similarly, when the first encoding method is non-systematic encoding, the first node can also be combined with the above. Figure 5 The first encoding strategy (9.1) and shown Figure 7 The first encoding strategy (9.2) shown performs concatenation processing on the code blocks during the encoding process.
[0239] For example, Figure 5 The code block 1203 shown after being segmented can be encoded by the second CRC after being concatenated with w code blocks. After the second CRC encoding, the data block is divided into w new code blocks, which are then encoded by the first encoding method, the third CRC encoding method, and the second encoding method. w is an integer greater than 1 and less than the total number of code blocks, and w is divisible by the total number of code blocks.
[0240] For example, Figure 5 The encoded bit sequence 1205 obtained by the first encoding method can be encoded by a third CRC after being concatenated by at least one CRC. The encoded sequence obtained after the third CRC encoding is then encoded by the second encoding method to obtain the second encoded bit sequence.
[0241] For example, Figure 7 The encoded bit sequence 1304 obtained by the first encoding method can be encoded by a third CRC after being concatenated by at least one CRC. The encoded sequence obtained after the third CRC encoding is then encoded by the second encoding method to obtain the second encoded bit sequence.
[0242] In some embodiments, a bit interleaving process may also be included between different encoding methods, that is, changing the order of data in different encoding processes.
[0243] For example, in the process of the first encoding method and the second encoding method, the encoded data sequence obtained by the first encoding method is interleaved, and then the interleaved bit data sequence is encoded by the second encoding method.
[0244] There are various types of interleavers, including but not limited to: row-column interleavers, triangular interleavers, convolutional interleavers, pseudo-random interleavers, and spiral interleavers.
[0245] Taking a row-column interleaver as an example, the interleaving process is described as follows: The first node organizes the data into a matrix by rows, and then reads it in the order of columns to achieve the purpose of interleaving.
[0246] For example, given the original data sequence [1,2,3,4,5,6], the first node can organize it into a two-row, three-column matrix [1,2,3;4,5,6], where “;” indicates a newline. The data sequence after reading it in column order is [1,4,2,5,3,6].
[0247] In some embodiments, after the first node performs a series of encoding processes on the bit sequence to be encoded to obtain the second encoded bit sequence, the first node may send all or part of the bits of the second encoded bit sequence to the second node.
[0248] The encoded bit sequence sent by the first node to the second node can be a bit sequence to be sent, which includes all or part of the bits of the second encoded bit sequence.
[0249] For example, if the length of the second encoded bit sequence is N2, the number of bits in the bit sequence to be sent can be E, where E is an integer less than or equal to N2.
[0250] As one possible implementation, the first node can perform bit selection on the second encoded bit sequence according to at least one of the following (10.1)-(10.4) to obtain a bit sequence of length E to be transmitted:
[0251] (10.1) Punch bit position;
[0252] (10.2) Zero-filling shortens bit positions;
[0253] (10.3) Bitrate;
[0254] (10.4) The length of the bit sequence to be encoded.
[0255] It should be noted that when both the first encoding method and the second encoding method are system encoding, the second encoded bit sequence of length N2 obtained above may contain source information bits, zero-padding bits, and parity bits. The length N2 of the second encoded bit sequence may not meet the code rate requirements, so it is necessary to select some bits for transmission.
[0256] For example, both the first and second encoding methods are system encodings. The first node can obtain the number of parity bits in the bit sequence to be transmitted through the floor function (i.e., the function of rounding down), the code rate R, the length K of the code block information bit sequence, and the number of system bit punchings puncSysBit, as shown in the following formula eleven:
[0257] Formula 11: floor(K / R)-K+puncSysBit
[0258] The check bits include: check data generated by encoding based on the first encoding method, check data generated by encoding based on the second encoding method, and check bits generated by at most two CRC checks (such as the first check bit sequence and the second check bit sequence).
[0259] The first node can obtain the number of code block information bits contained in the bit sequence to be transmitted by using the length K of the code block information bit sequence and the number of system bit punctures, puncSysBit, as shown in the following formula 12:
[0260] K-puncSysBit Formula Twelve.
[0261] In addition to using the floor function, you can also use the ceil function (which rounds up) or the round function (which rounds up to the minimum difference between rounding up and down).
[0262] In this embodiment of the disclosure, the positions of the punch bits and the zero-padding bits are preset.
[0263] For example, the system bit punching position is located at the first puncSysBit bit position of the second encoded bit sequence; the zero padding bit position is located at the last paddingBit bit position of the encoded bit sequence to be encoded in the second encoding method, where paddingBit is greater than or equal to 0 and less than the length of the encoded bit sequence to be encoded in the second encoding method.
[0264] This disclosure also provides a decoding method applied to a second node, such as... Figure 10 As shown, the decoding method may include:
[0265] S1001. Based on multiple check bit sequences in the second encoded bit sequence, decode the first code block in the second encoded bit sequence.
[0266] The multiple check bit sequences include: the check bit sequence of each encoding in the concatenated encoding, and the check bit sequence of at most one CRC encoding performed before each encoding in the concatenated encoding.
[0267] It should be noted that for the introduction of concatenated coding, and the introduction of the at most one CRC encoding performed before each encoding of the corresponding concatenated coding, please refer to the description of the first encoding method, the second encoding method, the second CRC, and the third CRC in the above embodiments, which will not be repeated here.
[0268] In this embodiment of the disclosure, the second node can receive the second encoded bit sequence sent by the first node.
[0269] It should be noted that the second node can receive all or part of the bits of the second encoded bit sequence sent by the first node.
[0270] As one possible implementation, if the second node receives only a portion of the second encoded bit sequence sent by the first node, the second node can recover the remaining bits of the unreceived second encoded bit sequence to obtain the complete second encoded bit sequence.
[0271] S1002. If all first code blocks in the second encoded bit sequence have been decoded, concatenate all first code blocks to obtain the decoded first encoded bit sequence.
[0272] S1003. Based on the check bit sequence of the first CRC encoding in the decoded first encoded bit sequence, decode the bit sequence to be encoded in the decoded first encoded bit sequence.
[0273] Wherein, the length B of the decoded bit sequence to be encoded is an integer greater than 0; the length N1 of the first encoded bit sequence after decoding is an integer greater than B; the length K of the first code block after decoding is an integer less than or equal to N1 and greater than 0; and the length N′ of the received second encoded bit sequence is an integer greater than N1 and less than or equal to N2.
[0274] In other words, for the received data sequence to be decoded (i.e., the second encoded bit sequence), the decoded code block can be obtained based on the decoding of the first encoding method, the decoding of the second encoding method, and at most two CRC decodings. Multiple decoded code blocks are concatenated to obtain the decoded first encoded bit sequence. The decoded first encoded bit sequence is then subjected to the first CRC decoding to obtain the decoded bit sequence to be encoded. When the decoding result is correct, the decoded bit sequence to be encoded obtained above should be the same as the data to be encoded at the sending end. The decoding process is represented as the inverse process based on the encoding of the first encoding method, the encoding of the second encoding method, and at most two CRC encodings, which will not be elaborated here.
[0275] In some embodiments, the second node may perform different decoding methods to decode the first code block in the second encoded bit sequence according to the type of the first encoding method in the concatenated encoding (i.e., systematic encoding or non-systematic encoding), and then concatenate all the first code blocks to decode to obtain the bit sequence to be encoded.
[0276] As one possible implementation, taking the first encoding method as the system encoding as an example, the second node can perform CRC verification on the first code block based on the first check bit sequence of the second CRC encoding during the decoding process of the second encoded bit sequence. Then, if the first check bit sequence verification passes, the second node can exit the decoding process of the second encoding method in advance and skip the decoding process of the first encoding method to obtain the first code block.
[0277] In other words, when the first encoding method is system encoding, the decoding process of the second encoding method can directly verify whether the decoded code block is correct through the second CRC check. If the verification passes, the decoding of the second encoding method can be exited in advance, and the decoded code block can be directly output without performing the first encoding method decoding again. If the verification fails, the first encoding method decoding is performed, and then the second CRC check is used to determine whether the code block has been successfully decoded.
[0278] For example, in conjunction with the above Figure 3 The second encoding strategy shown in (8.1) is as follows: Figure 11As shown, 1101 is the data to be decoded received by the second node (i.e., all or part of the bits of the second encoded bit sequence); 1103 is the decoded code block obtained after passing the second CRC check during the decoding process of the second encoding method; 1102 is the final decoding result obtained by the second encoding method when the second CRC check fails repeatedly during the decoding process of the second encoding method. At this time, although the second CRC check fails, the check generated by the first encoding method can still provide further error correction; 1104 is the data sequence obtained by decoding 1102 using the first encoding method, including the decoded code block and the second CRC; 1105 is the decoded code block obtained after passing the second CRC check. Then, the second node concatenates the multiple decoded code blocks to obtain 1106 (i.e., the first encoded bit sequence), and performs the first CRC check on 1106 to finally obtain the decoded bit sequence to be encoded, 1107.
[0279] In this process, the second node can select (K+C2) bits at preset positions for a second CRC check during the decoding of the second encoded bit sequence using the second encoding method, for example, the first (K+C2) bits. When the second CRC check is successful, it can be assumed that only the second encoding method is needed to obtain the correct code block, thus eliminating the need for decoding using the first encoding method. However, it is important to understand that a successful CRC check does not guarantee that the decoded code block is correct; there is still a certain probability that it is incorrect. This probability is very low and is generally related to parameters such as the CRC generator polynomial and the length of the bit sequence to be CRC-encoded.
[0280] It should be noted that the second encoding method can be either systematic encoding or non-system encoding. This is because, regardless of whether it is systematic or non-system encoding, the decoded result consists of the decoded code block, the check bit of the second CRC, and the check bit of the first encoding method during the decoding process. Therefore, the check bit sequence of the second CRC can be detected in advance.
[0281] For example, the second encoding method can be LDPC encoding. LDPC encoding is a systematic encoding, and the LDPC decoding process adopts an iterative BP decoding method. In each iteration of LDPC decoding, hard decision can be performed on the codeword bits to obtain a bit sequence composed of the code block, the second CRC check bit, and the check bit of the first encoding method. At this time, CRC check is performed on the bit sequence composed of the code block and the second CRC check bit. If the check passes, the code block data obtained after hard decision is considered to be correctly decoded. Therefore, the iterative decoding process can be exited in advance, and the decoded code block data can be obtained directly.
[0282] For example, the second encoding method can be Polar encoding. Polar encoding is a non-systematic encoding, and the Polar decoding process uses CRC-aided consecutive cancellation list (CA-SCL) decoding. During Polar code decoding, the SCL decoding algorithm is used to obtain L search paths. Then, with the prior information that "correct information bits can pass the second CRC check," the L paths are selected to output the optimal decoding path. The second CRC check can be performed early in the decoding process to determine whether the decoding is correct in advance and directly obtain the decoded code block data. This avoids useless calculations and reduces average complexity and latency.
[0283] For example, in conjunction with the above Figure 4 The second encoding strategy shown in (8.2) is as follows: Figure 12 As shown, 1211 is the data to be decoded received by the second node (i.e., all or part of the bits of the second encoded bit sequence), 1213 is the decoded code block obtained after passing the first CRC check during the decoding process of the second encoding method, 1212 is the final decoding result obtained by the second encoding method when the first CRC check fails during the decoding process of the second encoding method. At this time, although the first CRC check fails, the check generated by the first encoding method can further provide error correction. 1214 is the data sequence obtained by decoding 1212 using the first encoding method, including the decoded code block and the first CRC. 1215 is the decoded code block obtained after passing the first CRC check, and finally the decoded bit sequence to be encoded, 1216, is obtained.
[0284] In this process, the second node can select (K+C1) bits at preset positions for the first CRC check during the decoding of the second encoded bit sequence using the second encoding method, for example, the first (K+C1) bits. When the first CRC check is successful, it can be assumed that only the second encoding method is needed to obtain the correct code block, thus eliminating the need for the first encoding method.
[0285] It should be noted that the second encoding method can be either system encoding or non-system encoding.
[0286] For example, the second encoding method can be LDPC encoding. LDPC encoding is a systematic encoding, and the LDPC decoding process adopts an iterative BP decoding method. In each iteration of LDPC decoding, hard decision can be performed on the codeword bits to obtain a bit sequence composed of the code block, the check bit of the first CRC, and the check bit of the first encoding method. At this time, CRC check is performed on the bit sequence composed of the code block and the check bit of the first CRC. If the check passes, the code block data obtained after hard decision is considered to be correctly decoded. Therefore, the iterative decoding process can be exited in advance, and the decoded code block data can be obtained directly.
[0287] For example, the second encoding method can be Polar encoding. Polar encoding is a non-systematic encoding, and the Polar decoding process uses the CA-SCL decoding method. During Polar code decoding, the SCL decoding algorithm is used to obtain L search paths. Then, with the prior information that "correct information bits can pass the first CRC check," the L paths are selected to output the optimal decoding path. The first CRC check can be performed early in the decoding process to determine whether the decoding is correct in advance and directly obtain the decoded code block data. This avoids useless calculations and reduces average complexity and latency.
[0288] In other words, when the first encoding method is system encoding, the decoding process of the second encoding method can directly verify whether the decoded code block is correct through the first CRC check. If the check passes, the decoding of the second encoding method can be exited in advance, and the decoded code block can be directly output without the need to perform the first encoding method again. If the check fails, the decoding of the first encoding method is performed, and then the first CRC check is used to determine whether the code block has been successfully decoded.
[0289] For example, in conjunction with the above Figure 8 The second encoding strategy (8.1) shown allows for direct verification of the correctness of the decoded code block via the second CRC check during the decoding process. In this case, the bit sequence obtained after decoding via the second encoding method contains at least one code block information and the corresponding second CRC information. For example... Figure 13As shown, 1301 represents the data to be decoded received by the second node (i.e., all or part of the bits of the second encoded bit sequence). The bit sequence obtained after decoding using the second encoding method contains two code block information and two corresponding second CRC information. The two code blocks are checked using the above information using the second CRC check. If both CRC checks pass, it can be considered that the two code blocks have been successfully obtained through the second encoding method. Therefore, the first encoding method decoding is no longer required, and the two code blocks 1303 that pass the second CRC check are obtained. If at least one of the two second CRC checks fails, the bit sequence obtained by decoding using the second encoding method corresponding to 1302 needs to be segmented to obtain two sub-bit sequences 1304 as shown in the figure. The number of these sub-bit sequences is equal to the number of times the encoded bit sequences are concatenated on the encoding side. Each sub-bit sequence is decoded using the first encoding method to obtain a bit sequence 1305. Then, the bit sequence 1305 obtained by decoding using the first encoding method is checked using the second CRC check to obtain the decoded code block 1306. The obtained 1303 or 1306 is concatenated with other decoded code blocks to obtain 1307. A first CRC check is performed on 1307 to obtain the decoded bit sequence to be encoded, 1308. In this example, by concatenating the information encoded using the first encoding method on the encoding side, multiple code blocks can be processed in parallel on the decoding side, improving decoding efficiency.
[0290] The first encoding method can be RS encoding, and the second encoding method can be LDPC encoding. The codeword length corresponding to RS encoding under GF(28) is 255, so the bit length corresponding to this codeword length is 255*8=2040. That is, the length of the encoded bit sequence obtained after each code block is encoded by the second CRC encoding and the first encoding method is 2040. If the four encoded bit sequences are concatenated, the length of the concatenated bit sequence is 8160. The bit sequence of length 8160 is used as the input of the second encoding method and encoded by the second encoding method to obtain the second encoded bit sequence.
[0291] Furthermore, since the first encoding method is a systematic encoding, the second node can select (K+C2) bits corresponding to a preset position for each code block to perform a second CRC check during the decoding process of the second encoding method. Because the decoding process of the second encoding method involves multiple code blocks, only when multiple second CRC checks are successful can it be considered that only the decoding of the second encoding method is needed to obtain the correct code block, thus eliminating the need for decoding of the first encoding method. However, it should be understood that a successful second CRC check does not necessarily mean that the decoded code block is correct; there is still a certain probability that it is incorrect, but this probability is very low.
[0292] For example, in conjunction with the above Figure 9The second encoding strategy (8.1) shown allows for direct verification of the correctness of the decoded code block via the second CRC check during the decoding process. In this case, the bit sequence obtained after decoding using the second encoding method contains w code block information and a corresponding second CRC information. For example... Figure 14 As shown, 1401 represents the data to be decoded received by the second node (i.e., all or part of the bits of the second encoded bit sequence). The bit sequence obtained after decoding using the second encoding method contains two code block information and a second CRC information corresponding to the two code block information (compared to the above). Figure 13 The decoding process shown here saves the overhead of w-1 second CRC checks. The bit sequence obtained by concatenating the two code blocks is subjected to a second CRC check using the information mentioned above. If the CRC check passes, it can be considered that the decoding using the second encoding method has successfully obtained the information of the two code blocks. Therefore, the first encoding method decoding is no longer required, and the two code blocks 1403 that pass the second CRC check are obtained. If the second CRC check fails, the bit sequence obtained by decoding the second encoding method corresponding to 1402 needs to be segmented to obtain the two sub-bit sequences 1404 shown in the figure. The number of these sub-bit sequences is equal to the number of code blocks concatenated on the encoding side. Each sub-bit sequence is decoded using the first encoding method to obtain a bit sequence 1405. Then, the bit sequence 2305 obtained by decoding the first encoding method is subjected to a second CRC check to obtain a decoded code block 1406. The obtained 1403 or 1406 is concatenated with other decoded code blocks to obtain 1407. The first CRC check is performed on 1407 to obtain the decoded bit sequence to be encoded. In this example, by concatenating the code block information on the encoding side, multiple code blocks can be processed in parallel on the decoding side, and compared to the above... Figure 13 The decoding process shown reduces the overhead of w-1 second CRCs, but adds the process of dividing the data block encoded by the second CRC into w new code blocks.
[0293] In this approach, since the first encoding method is a system encoding, the second node can select (w·K+C2) bits at preset positions for each code block during the decoding process of the second encoding method to perform a second CRC check. Because the decoding process of the second encoding method involves multiple code blocks but only one second CRC, when the second CRC check is successful, it can be assumed that only the decoding of the second encoding method is needed to obtain the correct w code blocks, thus eliminating the need for decoding the first encoding method. However, it should be understood that a successful second CRC check does not guarantee that the decoded data is correct; there is still a very low probability that it is incorrect.
[0294] As another possible implementation, taking a non-systematic encoding method as an example, the second node can perform a CRC check on the second encoded bit sequence based on the second check bit sequence encoded by the third CRC during the decoding process of the second encoded bit sequence. Then, if the second check bit sequence passes the check, the second node can prematurely exit the decoding process of the second encoding method and perform the decoding process of the first encoding method on the decoded second encoded bit sequence. Then, during the decoding process of the first encoding method on the decoded second encoded bit sequence, the second node can perform a CRC check on the first code block in the decoded second encoded bit sequence based on the first check bit sequence encoded by the second CRC, and if the first check bit sequence passes the check, prematurely exit the decoding process of the first encoding method to obtain the first code block.
[0295] For example, in conjunction with the above Figure 5 The first encoding strategy shown (9.1), as follows: Figure 15 As shown, 1501 is the data to be decoded received by the second node (i.e., all or part of the bits of the second encoded bit sequence), 1502 is the data sequence obtained by decoding 1501 using the second encoding method, and 1503 is the data sequence obtained when the third CRC check of 1502 passes. In this example, a passing CRC check can be considered as the recovery of correct data. However, it is understandable that there is still a certain probability that even if the CRC check passes, the decoded data will still be incorrect. The probability of this happening is very low. Therefore, for the case where the third CRC check passes, whether to perform a second CRC check after decoding 1503 using the first encoding method is optional, i.e., the step corresponding to 1505 in the figure. If the second CRC check is performed, the detection accuracy can be improved; if the second CRC check is not performed, the computational load can be reduced. 1504 is the decoded data sequence obtained when the third CRC check fails. Decoding 1504 using the first encoding method yields the data sequence 1506, consisting of the decoded code block and the second CRC check. Since the third CRC check failed, a second CRC check is needed to further determine the correctness of the decoded code block. After the second CRC check, the decoded code block 1507 is obtained; this second CRC check cannot be omitted. Concatenating the decoded code blocks yields the data sequence 1508, consisting of the decoded bit sequence to be encoded and the first CRC check. However, it is still impossible to completely determine the correctness of the bit sequence to be encoded at this point. Therefore, a first CRC check is performed on 1508 to obtain the decoded bit sequence to be encoded.
[0296] In this example, since the first encoding method is a non-systematic encoding, it's impossible to directly determine the correctness and completeness of the code block decoding using the second CRC check, as in the previous example. This example adds a third CRC encoding, allowing the decoding process of the second encoding method to directly verify the correctness of the decoded code block. The third CRC check is performed during the decoding process of the second encoding method. When the CRC check is successful, the data sequence obtained from the second encoding method is considered error-free. However, the obtained data sequence corresponds to the data sequence obtained through the non-systematic encoding of the first encoding method. The code block data cannot be directly obtained from the decoded data sequence; therefore, the first encoding method must be used to decode the code block data. At this point, the obtained code block data can be considered correct. However, it's important to understand that a successful CRC check does not guarantee that the decoded code block is correct; there is still a very low probability that it is incorrect.
[0297] It should be noted that the second encoding method can be either systematic or non-systematic. This is because, regardless of whether systematic or non-systematic encoding is used, the decoded result in the second encoding method consists of the data sequence corresponding to the first encoding method and the check bit of the third CRC.
[0298] For example, the second encoding method can be LDPC encoding. LDPC encoding is a systematic encoding, and the LDPC decoding process adopts an iterative BP decoding method. In each iteration of LDPC decoding, hard decision can be performed on the codeword bits to obtain a bit sequence composed of the code block, the check bit of the third CRC, and the check bit of the first encoding method. At this time, CRC check is performed on the bit sequence composed of the code block and the check bit of the third CRC. If the check passes, it is considered that the code block data obtained after hard decision is correctly decoded. Therefore, the iterative decoding process can be exited in advance, and the first encoding method can be further decoded.
[0299] For example, the second encoding method can be Polar encoding. Polar encoding is a non-systematic encoding, and the Polar decoding process uses the CA-SCL decoding method. During Polar code decoding, the SCL decoding algorithm is used to obtain L search paths. Then, with the prior information that "correct information bits can pass the third CRC check," the L paths are selected to output the optimal decoding path. The third CRC check can be performed early in the decoding process to determine whether the decoding is correct in advance, and the corresponding data sequence after the first encoding method is obtained directly. This avoids useless calculations and reduces average complexity and latency.
[0300] In other words, when the first encoding method is a non-systematic encoding, the second CRC check cannot be used directly to determine whether the code block is correctly and completely decoded during the decoding process of the second encoding method. By adding a third CRC encoding, the correctness of the decoded code block can be directly checked through the third CRC check during the decoding process of the second encoding method. If the check passes, the decoding of the second encoding method can be exited early, and the result of the second encoding method can be decoded using the first encoding method to obtain the data sequence consisting of the decoded code block and the second CRC. Since the third CRC check passes, it can be considered that the decoded data is error-free. Therefore, optionally, the decoded code block data portion can be directly used as the decoded result. Alternatively, optionally, the second CRC check can be further performed on the data sequence consisting of the decoded code block and the second CRC to further determine whether the decoded code block is correct. If the third CRC check fails, the first encoding method is used to decode to obtain the data sequence consisting of the decoded code block and the second CRC. Since the third CRC check fails, it is impossible to determine whether the result of the first encoding method is correct. Therefore, the second CRC check is used to determine whether the code block was successfully decoded.
[0301] For example, in conjunction with the above Figure 6 The first encoding strategy shown (9.2) is as follows: Figure 16 As shown, 1611 is the data to be decoded received by the second node (i.e., all or part of the bits of the second encoded bit sequence), 1612 is the data sequence obtained by decoding 1611 using the second encoding method, and 1613 is the data sequence obtained when 1612 undergoes a third CRC check and the check passes. In this example, a successful CRC check can be considered as the recovery of correct data. However, it is understandable that there is still a certain probability that even if the CRC check passes, the decoded data will still be incorrect. The probability of this happening is very low. Therefore, for the case where the third CRC check passes, whether to perform the first CRC check after decoding 1613 using the first encoding method is optional, i.e., the step corresponding to 1615 in the figure. If the first CRC check is performed, the detection accuracy can be improved; if the first CRC check is not performed, the computational load can be reduced. 1614 is the decoded data sequence obtained when the third CRC check fails. At this point, decoding 1614 using the first encoding method yields a data sequence consisting of the decoded code block and the first CRC check. Since the third CRC check failed, the first CRC check must be performed to further determine if the decoded code block is correct. After the first CRC check, the decoded code block 1617 is obtained. The first CRC check cannot be omitted here. Finally, the decoded bit sequence to be encoded, 1618, is obtained.
[0302] In this example, since the first encoding method is a non-systematic encoding, it's impossible to directly determine the correctness and completeness of the code block decoding using the first CRC check, as in the previous example. This example adds a third CRC encoding, allowing the decoding process of the second encoding method to directly verify the correctness of the decoded code block. During the decoding process of the second encoding method, a third CRC check is performed. When the CRC check is successful, the data sequence obtained from the second encoding method is considered error-free. However, this data sequence corresponds to the data sequence obtained through the non-systematic encoding of the first encoding method. The code block data cannot be directly obtained from the decoded data sequence; therefore, the first encoding method must be used to decode the code block data. At this point, the obtained code block data can be considered correct. However, it's important to understand that a successful CRC check does not guarantee that the decoded code block is correct; there is still a very low probability that it is incorrect.
[0303] In other words, when the first encoding method is a non-systematic encoding, the first CRC check cannot be used directly to determine whether the code block is correctly and completely decoded during the decoding process of the second encoding method. By adding a third CRC encoding, the correctness of the decoded code block can be directly checked through the third CRC check during the decoding process of the second encoding method. If the check passes, the decoding of the second encoding method can be exited early, and the result of the second encoding method can be decoded using the first encoding method to obtain the data sequence consisting of the decoded code block and the third CRC. Since the third CRC check passes, it can be considered that the decoded data is error-free. Therefore, optionally, the decoded code block data portion can be directly used as the decoded result. Alternatively, optionally, the first CRC check can be further performed on the data sequence consisting of the decoded code block and the first CRC to further determine whether the decoded code block is correct. If the third CRC check fails, the first encoding method is used to decode to obtain the data sequence consisting of the decoded code block and the first CRC. Since the third CRC check fails, it is impossible to determine whether the result of the first encoding method is correct. Therefore, the first CRC check is used to determine whether the code block was successfully decoded.
[0304] For example, in conjunction with the above Figure 7 The first encoding strategy shown (9.2) is as follows: Figure 17As shown, 1701 is the data to be decoded received by the second node (i.e., all or part of the bits of the second encoded bit sequence), 1702 is the data sequence obtained by decoding 1701 using the second encoding method, 1704 is the data sequence obtained when 1702 passes the third CRC check, 1706 is obtained by decoding 1704 using the first encoding method, 1703 is the decoded data sequence obtained when the third CRC check fails, and 1705 is obtained by decoding 1703 using the first encoding method. At this point, the correctness of the decoded 1705 cannot be determined. Since the ultimate goal of the decoding process is to obtain a decoded bit sequence of length B, the decoded code blocks are concatenated to obtain the data sequence 1707 composed of the decoded bit sequence and the first CRC check. The first CRC check is then performed on 1707 to obtain the decoded bit sequence 1708.
[0305] Compared to the above Figure 13 The decoding example reduces the need for a second CRC check, with the first CRC check handling the final verification of the decoded data. This approach is generally applicable in scenarios with good channel quality, saving significant computational resources for the second CRC check. In the aforementioned... Figure 13 In the decoding example, the error of a code block can be determined in advance based on the second CRC check result, thereby determining whether the data sequence B to be encoded is correct in advance. This situation can generally be applied in scenarios with poor channel quality, where the correctness of the decoded data to be decoded can be determined in advance by early backoff.
[0306] In this example, since the first encoding method is a non-systematic encoding, a third CRC encoding is used to allow direct verification of the decoded code block's correctness during the decoding process of the second encoding method. When the third CRC check is performed during the decoding process of the second encoding method, and the CRC check is successful, the data sequence obtained by decoding the second encoding method can be considered error-free. However, the obtained data sequence corresponds to the data sequence obtained by the non-systematic encoding first encoding method. The code block data cannot be directly obtained from the decoded data sequence; therefore, decoding using the first encoding method is required to obtain the code block data. At this point, the obtained code block data can be considered correct. However, when the third CRC check fails, the code block obtained by decoding using the first encoding method may not be correct. Therefore, at least one code block needs to be concatenated and then the first CRC check performed to determine whether the decoded data to be encoded is correct.
[0307] In other words, when the first encoding method is a non-systematic encoding, the third CRC encoding allows the decoding process of the second encoding method to directly verify the correctness of the decoded code block. If the verification passes, the decoding of the second encoding method can be exited early, and the result of the second encoding method can be decoded using the first encoding method to obtain the decoded code block. Since the third CRC verification passes, the decoded data can be considered error-free. If the third CRC verification fails, the first encoding method is still used to obtain the decoded code block. Since the third CRC verification fails, it is impossible to determine whether the result of the first encoding method is correct. Multiple code blocks obtained by decoding using the first encoding method are concatenated, and finally, the first CRC is used to verify whether the decoded data to be encoded is correct.
[0308] The following section uses the interaction between the first node and the second node as an example to introduce the encoding and decoding methods provided in the above embodiments. Figure 18 As shown, it includes:
[0309] S1801. The first node encodes the bit sequence to be encoded based on the first cyclic redundancy check to obtain the first encoded bit sequence.
[0310] S1802, The first node segments the first encoded bit sequence to obtain at least one first code block.
[0311] S1803, the first node performs concatenated encoding on the first code block and performs at most one cyclic redundancy check encoding before each encoding of the concatenated encoding to obtain the second encoded bit sequence.
[0312] S1804. The first node sends all or part of the bits of the second encoded bit sequence to the second node.
[0313] S1805, the second node decodes the first code block in the second encoded bit sequence based on multiple check bit sequences in the second encoded bit sequence.
[0314] S1806. When all the first code blocks in the second encoded bit sequence have been decoded, the second node concatenates all the first code blocks to obtain the decoded first encoded bit sequence.
[0315] S1807, The second node decodes the bit sequence to be encoded in the first encoded bit sequence based on the check bit sequence of the first CRC encoding in the decoded first encoded bit sequence.
[0316] It is understood that, in order to achieve the above-mentioned functions, the encoding and decoding devices include corresponding hardware structures and / or software modules for performing each function. Those skilled in the art should readily recognize that, based on the algorithmic steps of the examples described in conjunction with the embodiments of this disclosure, this disclosure can be implemented in hardware or a combination of hardware and computer software. Whether a function is executed in hardware or by computer software driving hardware depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this disclosure.
[0317] This disclosure embodiment can divide the encoding device and decoding device into functional modules according to the above method embodiment. For example, each function can be divided into a separate functional module, or two or more functions can be integrated into one functional module. The integrated module can be implemented in hardware or software. It should be noted that the module division in this disclosure embodiment is illustrative and only represents one logical functional division. In actual implementation, there may be other division methods. The following description uses the example of dividing each functional module according to each function.
[0318] Figure 19 This is a schematic diagram of the structure of an encoding device provided in an embodiment of this disclosure. Figure 1 The encoding device can be applied to the first node and perform the above. Figure 2 The encoding method shown, and Figure 18 An example from the first node side. (e.g.) Figure 19 As shown, the encoding device 1900 includes a processing module 1901.
[0319] Processing module 1901 is used to encode the bit sequence to be encoded based on the first cyclic redundancy check (CRC) to obtain a first encoded bit sequence; processing module 1901 is also used to segment the first encoded bit sequence to obtain at least one first code block; processing module 1901 is also used to perform concatenated encoding on the first code block and perform at most one CRC encoding before each encoding in the concatenated encoding to obtain a second encoded bit sequence.
[0320] In some embodiments, the concatenated coding is performed twice, and the concatenated coding includes: coding based on a first coding method and coding based on a second coding method.
[0321] In some embodiments, the second encoding method is either systematic encoding or non-systematic encoding.
[0322] In some embodiments, the second encoding method is any one of the following:
[0323] Low-density parity-check (LDPC) coding;
[0324] Polar codes;
[0325] Turbo encoding.
[0326] In some embodiments, the first encoding method is a non-system encoding.
[0327] In some embodiments, the first encoding method is any one of the following:
[0328] Convolutional coding;
[0329] Non-system RS encoding;
[0330] Polar encoding.
[0331] In some embodiments, the processing module 1901 is specifically configured to encode the first code block according to a first encoding strategy to obtain a second encoded bit sequence, wherein the first encoding strategy is any one of the following:
[0332] The encoding of the second CRC, the encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method are executed sequentially.
[0333] The encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method are executed in sequence.
[0334] In some embodiments, when the number of the first code block is 1, the first encoding strategy is to sequentially perform encoding using the first encoding method, encoding using the third CRC, and encoding using the second encoding method.
[0335] In some embodiments, when the number of first code blocks is greater than 1, the first encoding strategy is to sequentially perform the encoding of the second CRC, the encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method.
[0336] In some embodiments, the CRC check length of the second CRC and the CRC check length of the third CRC are any one of the following: 8, 11, 12, 16, 24.
[0337] In some embodiments, the first encoding method is system encoding.
[0338] In some embodiments, the first encoding method is any one of the following:
[0339] Bosai-Ray-Chadri-Hokungamm BCH code;
[0340] RS encoding;
[0341] Low-density parity check (LDPC) coding.
[0342] In some embodiments, the processing module 1901 is specifically configured to encode the first code block according to a second encoding strategy to obtain a second encoded bit sequence, wherein the second encoding strategy is any one of the following:
[0343] The encoding of the second CRC, the encoding of the first encoding method, and the encoding of the second encoding method are executed sequentially.
[0344] The encoding of the first encoding method and the encoding of the second encoding method are executed in sequence.
[0345] In some embodiments, when the number of the first code block is 1, the second encoding strategy is to sequentially execute the encoding of the first encoding method and the encoding of the second encoding method.
[0346] In some embodiments, when the number of the first code blocks is greater than 1, the second encoding strategy is to sequentially perform the encoding of the second CRC, the encoding of the first encoding method, and the encoding of the second encoding method.
[0347] In some embodiments, the CRC check length of the second CRC encoding is any one of the following: 8, 11, 12, 16, 24.
[0348] In some embodiments, the CRC check length of the first CRC is any one of the following: 11, 12, 16, 24, 32.
[0349] In some embodiments, the second coded bit sequence includes at least one of the following:
[0350] First code block;
[0351] A parity bit sequence encoded based on the first encoding method;
[0352] A parity bit sequence encoded using the second encoding method;
[0353] The first check bit sequence based on the second CRC encoding;
[0354] The second check bit sequence is based on the third CRC encoding.
[0355] In some embodiments, the processing module 1901 is specifically used to sequentially perform second CRC encoding and first encoding method encoding on each first code block to obtain a plurality of second code blocks; the processing module 1901 is also used to concatenate at least two of the plurality of second code blocks to obtain at least one third code block; the processing module 1901 is also used to perform second encoding method encoding on each third code block to obtain at least one second encoded bit sequence.
[0356] In some embodiments, the processing module 1901 is specifically configured to concatenate at least two of the multiple first code blocks to obtain at least one fourth code block, wherein a fourth code block is composed of a first number of concatenated first code blocks; the processing module 1901 is further configured to perform second CRC encoding on each fourth code block to obtain at least one fifth code block; the processing module 1901 is further configured to segment each fifth code block according to the first number corresponding to the fifth code block to obtain a first number of sixth code blocks; the processing module 1901 is further configured to perform first encoding on each sixth code block to obtain multiple second code blocks.
[0357] In some embodiments, the processing module 1901 is specifically used to treat the first encoded bit sequence as a first code block when the length of the first encoded bit sequence is less than or equal to a first length threshold, and the number of the first code blocks is 1.
[0358] In some embodiments, the processing module 1901 is specifically used to segment the first encoded bit sequence to obtain at least two first code blocks when the length of the first encoded bit sequence is greater than a first length threshold.
[0359] In some embodiments, the first length threshold is determined based on the maximum input bits of the second encoding method and the code rate of the first encoding method; or, the first length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the second encoding method, and the code rate of the first encoding method.
[0360] In some embodiments, the length of the first code block is less than or equal to a second length threshold.
[0361] In some embodiments, the second length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the first encoding method, and the CRC check length of each CRC encoding; or, the second length threshold is determined based on the maximum output bits of the second encoding method, the code rate of the second encoding method, the code rate of the first encoding method, and the CRC check length of each CRC encoding.
[0362] In some embodiments, the encoding device 1900 further includes a transmitting device 1902. The transmitting device 1902 is configured to transmit all or part of the bits of the second encoded bit to the second node.
[0363] Figure 20 This is a schematic diagram of the structure of a decoding device provided in an embodiment of this disclosure. Figure 1 The decoding device can be applied to the second node and perform the above. Figure 10 The decoding method shown, and Figure 18 An example from the second node side. (For instance...) Figure 20As shown, the decoding device 2000 includes: a processing module 2001.
[0364] Processing module 2001 is used to decode a first code block in the second encoded bit sequence based on multiple check bit sequences in the second encoded bit sequence. The multiple check bit sequences include: check bit sequences for each encoding of concatenated encoding and check bit sequences for at most one CRC encoding performed before each encoding of concatenated encoding. Processing module 2001 is also used to concatenate all first code blocks in the second encoded bit sequence to obtain a decoded first encoded bit sequence after all first code blocks in the second encoded bit sequence have been decoded. Processing module 2001 is also used to decode the bit sequence to be encoded in the decoded first encoded bit sequence based on the check bit sequences of the first CRC encoding in the decoded first encoded bit sequence.
[0365] In some embodiments, the concatenated coding is performed twice, and the concatenated coding includes: coding based on a first coding method and coding based on a second coding method.
[0366] In some embodiments, the first encoding method is either systematic encoding or non-systematic encoding.
[0367] In some embodiments, the first encoding method is system encoding; the processing module 2001 is specifically used to perform CRC verification on the first code block based on the first check bit sequence of the second CRC encoding during the decoding process of the second encoding bit sequence, wherein the second CRC is the CRC encoding before the first encoding method; the processing module 2001 is also used to exit the decoding process of the second encoding method in advance and skip the decoding process of the first encoding method if the first check bit sequence verification passes, thereby obtaining the first code block.
[0368] In some embodiments, the first encoding method is a non-system encoding; the processing module 2001 is specifically used to perform CRC verification on the second encoded bit sequence based on the second check bit sequence of the third CRC encoding during the decoding process of the second encoded bit sequence using the second encoding method, wherein the third CRC encoding is the CRC encoding prior to the second encoding method; the processing module 2001 is also used to exit the decoding process of the second encoding method in advance and perform the decoding process of the first encoding method on the decoded second encoded bit sequence if the second check bit sequence verification passes; the processing module 2001 is also used to perform CRC verification on the first code block in the decoded second encoded bit sequence based on the first check bit sequence of the second CRC encoding during the decoding process of the first encoding method on the decoded second encoded bit sequence; the processing module 2001 is also used to exit the decoding process of the first encoding method in advance and obtain the first code block if the first check bit sequence verification passes.
[0369] In the case of implementing the functions of the integrated modules described above in hardware, this disclosure provides another possible structural illustration of the encoding device involved in the above embodiments. Figure 2 .like Figure 21 As shown, the encoding device 2100 includes: a processor 2102 and a bus 2104. Optionally, the encoding device may also include a memory 2101; optionally, the encoding device may also include a communication interface 2103.
[0370] Processor 2102 may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with embodiments of this disclosure. Processor 2102 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with embodiments of this disclosure. Processor 2102 may also be a combination of functions implementing computation, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.
[0371] The communication interface 2103 is used to connect with other devices via a communication network. This communication network can be Ethernet, wireless access network, wireless local area network (WLAN), etc.
[0372] The memory 2101 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), disk storage medium or other magnetic storage device, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto.
[0373] As one possible implementation, the memory 2101 can exist independently of the processor 2102. The memory 2101 can be connected to the processor 2102 via a bus 2104 and is used to store instructions or program code. When the processor 2102 calls and executes the instructions or program code stored in the memory 2101, it can implement the encoding method provided in the embodiments of this disclosure.
[0374] In another possible implementation, the memory 2101 can also be integrated with the processor 2102.
[0375] Bus 2104 can be an extended industry standard architecture (EISA) bus, etc. Bus 2104 can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 21 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0376] Similarly, when implementing the functions of the integrated modules described above in hardware, this disclosure provides another possible structural illustration of the decoding device involved in the above embodiments. Figure 2 .like Figure 22 As shown, the decoding device 2200 includes: a processor 2202 and a bus 2204. Optionally, the decoding device may also include a memory 2201; optionally, the decoding device may also include a communication interface 2203.
[0377] Processor 2202 may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with embodiments of this disclosure. Processor 2202 may be a central processing unit, a general-purpose processor, a digital signal processor, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. It may implement or execute various exemplary logic blocks, modules, and circuits described in conjunction with embodiments of this disclosure. Processor 2202 may also be a combination of functions implementing computation, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, etc.
[0378] The communication interface 2203 is used to connect to other devices via a communication network. This communication network can be Ethernet, wireless access network, wireless local area network (WLAN), etc.
[0379] The memory 2201 may be a read-only memory (ROM) or other type of static storage device capable of storing static information and instructions, random access memory (RAM) or other type of dynamic storage device capable of storing information and instructions, or electrically erasable programmable read-only memory (EEPROM), disk storage medium or other magnetic storage device, or any other medium capable of carrying or storing desired program code in the form of instructions or data structures and accessible by a computer, but is not limited thereto.
[0380] As one possible implementation, the memory 2201 can exist independently of the processor 2202. The memory 2201 can be connected to the processor 2202 via a bus 2204 and is used to store instructions or program code. When the processor 2202 calls and executes the instructions or program code stored in the memory 2201, it can implement the decoding method provided in this embodiment of the disclosure.
[0381] In another possible implementation, the memory 2201 can also be integrated with the processor 2202.
[0382] The 2204 bus can be an extended industry standard architecture (EISA) bus, etc. The 2204 bus can be divided into address bus, data bus, control bus, etc. For ease of representation, Figure 22 The bus is represented by a single thick line, but this does not mean that there is only one bus or one type of bus.
[0383] Some embodiments of this disclosure provide a computer-readable storage medium (e.g., a non-transitory computer-readable storage medium) storing computer program instructions that, when executed on a computer, cause the computer to perform an encoding method and / or decoding method as described in any of the embodiments above.
[0384] Exemplary examples of computer-readable storage media may include, but are not limited to: magnetic storage devices (e.g., hard disks, floppy disks, or magnetic tapes), optical discs (e.g., compact disks (CDs), digital versatile disks (DVDs), etc.), smart cards, and flash memory devices (e.g., erasable programmable read-only memory (EPROMs), cards, sticks, or key drives, etc.). The various computer-readable storage media described in this disclosure may represent one or more devices and / or other machine-readable storage media for storing information. The term "machine-readable storage medium" may include, but is not limited to, wireless channels and various other media capable of storing, containing, and / or carrying instructions and / or data.
[0385] This disclosure provides a computer program product containing instructions that, when run on a computer, cause the computer to execute the model management method described in any of the above embodiments.
[0386] The above description is merely a specific embodiment of this disclosure, but the scope of protection of this disclosure is not limited thereto. Any changes or substitutions within the technical scope disclosed in this disclosure should be included within the scope of protection of this disclosure. Therefore, the scope of protection of this disclosure should be determined by the scope of the claims.
Claims
1. An encoding method, characterized in that, Applied to the first node, including: The first encoded bit sequence is obtained by encoding the bit sequence to be encoded based on the first cyclic redundancy check (CRC). The first encoded bit sequence is segmented to obtain at least one first code block; The first code block is concatenated and encoded, and at most one CRC encoding is performed before each encoding in the concatenation to obtain the second encoded bit sequence.
2. The method according to claim 1, characterized in that, The concatenated encoding is performed twice, and the concatenated encoding includes encoding based on a first encoding method and encoding based on a second encoding method.
3. The method according to claim 2, characterized in that, The second encoding method is either systematic encoding or non-system encoding.
4. The method according to claim 3, characterized in that, The second encoding method is any one of the following: Low-density parity-check (LDPC) coding; Polar codes; Turbo encoding.
5. The method according to claim 2, characterized in that, The first encoding method is a non-system encoding.
6. The method according to claim 5, characterized in that, The first encoding method is any one of the following: Convolutional coding; Non-system RS encoding; Polar encoding.
7. The method according to claim 5, characterized in that, The step of concatenating and encoding the first code block and performing at most one CRC encoding before each encoding step in the concatenation to obtain the second encoded bit sequence includes: The first code block is encoded according to a first encoding strategy to obtain the second encoded bit sequence, wherein the first encoding strategy is any one of the following: The encoding of the second CRC, the encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method are executed sequentially. The encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method are executed sequentially.
8. The method according to claim 7, characterized in that, When the number of the first code blocks is 1, the first encoding strategy is to sequentially execute the encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method.
9. The method according to claim 7, characterized in that, When the number of the first code blocks is greater than 1, the first encoding strategy is to sequentially execute the encoding of the second CRC, the encoding of the first encoding method, the encoding of the third CRC, and the encoding of the second encoding method.
10. The method according to claim 7, characterized in that, The CRC check length of the second CRC and the CRC check length of the third CRC are any one of the following: 8, 11, 12, 16, 24.
11. The method according to claim 2, characterized in that, The first encoding method is system encoding.
12. The method according to claim 11, characterized in that, The first encoding method is any one of the following: Bosai-Ray-Chadri-Hokungamm BCH code; RS encoding; Low-density parity check (LDPC) coding.
13. The method according to claim 11, characterized in that, The step of concatenating and encoding the first code block and performing at most one CRC encoding before each encoding step in the concatenation to obtain the second encoded bit sequence includes: The first code block is encoded according to the second encoding strategy to obtain the second encoded bit sequence, wherein the second encoding strategy is any one of the following: The encoding of the second CRC, the encoding of the first encoding method, and the encoding of the second encoding method are executed sequentially. The encoding of the first encoding method and the encoding of the second encoding method are executed sequentially.
14. The method according to claim 13, characterized in that, When the number of the first code blocks is 1, the second encoding strategy is to sequentially execute the encoding of the first encoding method and the encoding of the second encoding method.
15. The method according to claim 13, characterized in that, When the number of the first code blocks is greater than 1, the second encoding strategy is to sequentially execute the encoding of the second CRC, the encoding of the first encoding method, and the encoding of the second encoding method.
16. The method according to claim 13, characterized in that, The CRC check length of the second CRC encoding is any one of the following: 8, 11, 12, 16, 24.
17. The method according to any one of claims 1-16, characterized in that, The CRC check length of the first CRC is any one of the following: 11, 12, 16, 24, or 32.
18. The method according to any one of claims 1-16, characterized in that, The second encoded bit sequence includes at least one of the following: The first code block; A check bit sequence encoded based on the first encoding method; A parity bit sequence encoded based on the second encoding method; The first check bit sequence based on the second CRC encoding; The second check bit sequence is based on the third CRC encoding.
19. The method according to claim 15, characterized in that, The step of encoding the first code block according to the second encoding strategy to obtain the second encoded bit sequence includes: For each of the first code blocks, the second CRC encoding and the first encoding method encoding are performed sequentially to obtain multiple second code blocks; At least two of the plurality of second code blocks are concatenated to obtain at least one third code block; The second encoding method is applied to each of the third code blocks to obtain at least one second encoded bit sequence.
20. The method according to claim 19, characterized in that, The process of sequentially performing the second CRC encoding and the first encoding method on each of the first code blocks yields multiple second code blocks, including: At least two of the plurality of first code blocks are concatenated to obtain at least one fourth code block, wherein a fourth code block is formed by concatenating a first number of first code blocks; The second CRC encoding is performed on each of the fourth code blocks to obtain at least one fifth code block; For each fifth code block, the fifth code block is segmented according to the first number corresponding to the fifth code block to obtain the first number of sixth code blocks; The first encoding method is applied to each of the sixth code blocks to obtain the plurality of second code blocks.
21. The method according to claim 2, characterized in that, The step of segmenting the first coded bit sequence to obtain at least one first code block includes: If the length of the first encoded bit sequence is less than or equal to the first length threshold, the first encoded bit sequence is used as the first code block, and the number of the first code blocks is 1.
22. The method according to claim 2, characterized in that, The step of segmenting the first coded bit sequence to obtain at least one first code block includes: If the length of the first encoded bit sequence is greater than the first length threshold, the first encoded bit sequence is segmented to obtain at least two first code blocks.
23. The method according to claim 21 or 22, characterized in that, The first length threshold is determined based on the maximum input bits of the second encoding method and the code rate of the first encoding method; or, The first length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the second encoding method, and the code rate of the first encoding method.
24. The method according to claim 22, characterized in that, The length of the first code block is less than or equal to the second length threshold.
25. The method according to claim 24, characterized in that, The second length threshold is determined based on the maximum input bits of the second encoding method, the code rate of the first encoding method, and the CRC checksum length for each CRC encoding; or, The second length threshold is determined based on the maximum output bits of the second encoding method, the code rate of the second encoding method, the code rate of the first encoding method, and the CRC check length of each CRC encoding.
26. The method according to claim 1, characterized in that, The method further includes: Send all or part of the bits of the second encoded bit to the second node.
27. A decoding method, characterized in that, Applied to the second node, including: Based on multiple check bit sequences in the second encoded bit sequence, the first code block in the second encoded bit sequence is decoded, wherein the multiple check bit sequences include: the check bit sequence of each encoding of the concatenated encoding, and the check bit sequence of at most one CRC encoding performed before each encoding of the concatenated encoding; If all the first code blocks in the second encoded bit sequence have been decoded, all the first code blocks are concatenated to obtain the decoded first encoded bit sequence. Based on the check bit sequence of the first CRC encoding in the decoded first encoded bit sequence, decode the bit sequence to be encoded in the decoded first encoded bit sequence.
28. The method according to claim 27, characterized in that, The concatenated encoding is performed twice, and the concatenated encoding includes encoding based on a first encoding method and encoding based on a second encoding method.
29. The method according to claim 28, characterized in that, The first encoding method is either systematic encoding or non-system encoding.
30. The method according to claim 29, characterized in that, The first encoding method is system encoding; the step of decoding the first code block in the second encoded bit sequence based on multiple check bit sequences in the second encoded bit sequence includes: In the decoding process of the second encoded bit sequence using the second encoding method, the first code block is subjected to CRC verification based on the first check bit sequence of the second CRC encoding, wherein the second CRC is the CRC encoding prior to the first encoding method; If the first check bit sequence passes the check, the decoding process of the second encoding method is terminated early, and the decoding process of the first encoding method is skipped to obtain the first code block.
31. The method according to claim 29, characterized in that, The first encoding method is a non-systematic encoding; the step of decoding the first code block in the second encoded bit sequence based on multiple check bit sequences in the second encoded bit sequence includes: During the decoding process of the second encoded bit sequence using the second encoding method, the second encoded bit sequence is subjected to CRC verification based on the second check bit sequence of the third CRC encoding, wherein the third CRC encoding is the CRC encoding prior to the second encoding method; If the second check bit sequence passes the check, the decoding process of the second encoding method is terminated early, and the decoding process of the first encoding method is executed on the decoded second encoded bit sequence; In the decoding process of the decoded second encoded bit sequence using the first encoding method, the first code block in the decoded second encoded bit sequence is subjected to CRC verification based on the first check bit sequence of the second CRC encoding; If the first check bit sequence passes the check, the decoding process of the first encoding method is terminated early to obtain the first code block.
32. A communication device, characterized in that, include: Memory and processor; Memory and processor are coupled; The memory is used to store instructions that can be executed by the processor; When the processor executes the instructions, it performs the method as described in any one of claims 1-31.
33. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores computer instructions that, when executed on a computer, cause the computer to perform the method as described in any one of claims 1-31.
34. A computer program product, characterized in that, The computer program product includes computer program instructions that, when executed, implement the method as described in any one of claims 1-31.