Method for coding and apparatus

WO2026219003A1PCT designated stage Publication Date: 2026-10-22HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2026/088041
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-04-17
Filing Date
2026-04-01
Publication Date
2026-10-22

Smart Images

  • Figure CN2026088041_22102026_PF_FP_ABST
    Figure CN2026088041_22102026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure provides a method for coding, an apparatus, and a computer-readable storage medium. In some embodiments, a first apparatus can determine N code blocks on the basis of data to be coded, wherein said data has a sequence length exceeding a length threshold; and separately performing Reed-Muller (RM) code-based coding on the N code blocks, wherein N is a positive integer greater than 1. In this way, data to be coded that has a sequence length exceeding a length threshold can be divided into N code blocks for RM code-based coding, enabling an RM code to support larger code lengths, thereby effectively improving overall system performance and decoding efficiency.
Need to check novelty before this filing date? Find Prior Art

Description

Methods and apparatus for encoding

[0001] This application claims priority to Chinese Patent Application No. 202510486844.X, filed on April 17, 2025, entitled “Method and Apparatus for Encoding”, the entire contents of which are incorporated herein by reference. Technical Field

[0002] The embodiments of this disclosure primarily relate to the field of communications, and more specifically, to a method and apparatus for encoding. Background Technology

[0003] Channel coding is a key technology used in wireless communication systems to improve the reliability of signal transmission. With the continuous development of wireless communication technology and the increasing demands for network performance, the design and optimization of channel coding technology has become increasingly complex, especially when dealing with emerging network standards and diverse application scenarios. Therefore, channel coding and decoding technologies for future mobile communication networks need to seek breakthroughs in two areas: high throughput, low power consumption, and high reliability. The aim is to meet the goals of future mobile communication standards through reasonable coding design and low-complexity decoding design. Summary of the Invention

[0004] Embodiments of this disclosure provide an encoding scheme that enables the application of Reed-Muller (RM) coding to long codes exceeding a length threshold, thereby supporting the use of RM codes for larger code lengths while offering advantages in complexity and decoding performance.

[0005] In a first aspect, an encoding method is provided. This method can be used in a first apparatus, which may be a terminal device or a network device. The terminal device is, for example, a terminal equipment, or a component applied within a terminal equipment, such as a communication module, circuitry or a chip responsible for communication functions (e.g., a modem chip, also known as a baseband chip, or a system-on-a-chip (SoC) chip or system-in-package (SIP) chip containing a modem core, a chip system, or a processor, etc.) or other functional module that can be applied within the terminal equipment. This chip (or chip system) or functional module can implement the functions of the terminal equipment. The chip (or chip system) or other functional module, for example, may be disposed within the terminal equipment and may also be a logic module or software that can implement all or part of the functions of the terminal equipment. The network device is, for example, a network device, or a component applied within a network device, such as a communication module, circuitry or a chip responsible for communication functions (e.g., a modem chip, also known as a baseband chip, or a SoC chip or SIP chip containing a modem core, a chip system, or a processor, etc.) or other functional module that can be applied within the network device. The chip (or chip system) or functional module can realize the functions of the network device. The chip (or chip system) or other functional module, for example, is disposed in the network device, and may also be a logic module or software that can realize all or part of the functions of the network device. Optionally, the network device may include access network equipment and / or core network equipment. Optionally, the access network equipment may be an open radio access network (ORAN) architecture or an ORAN architecture; or, the access network equipment may be a centralized unit (CU), distributed unit (DU), or radio unit (RU) under an ORAN architecture. The access network equipment may be located on the ground, for example, or it may be a non-ground device such as a satellite or an airborne vehicle, or located on a non-ground device such as a satellite or an airborne vehicle. The method includes: determining N code blocks based on data to be encoded, wherein the sequence length of the data to be encoded exceeds a length threshold; and encoding the N code blocks respectively based on Reed-Müller RM codes, where N is a positive integer greater than 1.

[0006] In this way, data to be encoded with a sequence length exceeding the length threshold can be divided into N code blocks for encoding based on RM codes, so as to support RM codes for larger code lengths, thereby effectively improving the overall performance and decoding efficiency of the system.

[0007] In some possible implementations, the first information bit length Kmax is determined, where Kmax refers to the maximum bit length that N code blocks can support; and N is determined based on the sequence length of the data to be encoded and the first information bit length Kmax.

[0008] In some possible implementations, the method also includes: dividing the data to be encoded based on N.

[0009] In this way, the first device can divide the code blocks based on the longest bit length that N code blocks can support, making the number of code blocks as small as possible, which greatly reduces the decoding error rate and thus ensures optimal decoding performance.

[0010] In some possible implementations, the RM encoding parameters for N code blocks include a first encoding parameter and a second encoding parameter.

[0011] In some possible implementations, the method further includes: determining the length Kmax of the first information bit based on the first encoding parameter and the second encoding parameter.

[0012] In this way, the first device can perform RM encoding on N code blocks based on the same set of parameters, so that the N code blocks can share the same set of encoding parameters, which greatly reduces the complexity of encoding and decoding.

[0013] In some possible implementations, determining the first information bit length Kmax corresponding to the first encoding parameter and the second encoding parameter includes: determining the first information bit length Kmax corresponding to the first encoding parameter and the second encoding parameter based on a pre-configured mapping relationship.

[0014] In some possible implementations, the method further includes: determining a first padding bit length based on the first information bit length Kmax, N and the sequence length of the data to be encoded; and segmenting the padded data to be encoded based on the first padding bit length and the sequence length of the data to be encoded.

[0015] In this way, by performing RM encoding on N code blocks based on determined encoding parameters, the first device can effectively improve the efficiency of the encoding process while maintaining low computational complexity, thereby optimizing the overall performance of the system.

[0016] In some possible implementations, the method further includes: determining a first average information bit length based on N and the sequence length of the data to be encoded; and determining at least one of a first encoding parameter and a second encoding parameter based on the first average information bit length.

[0017] In some possible implementations, determining at least one of the first encoding parameter and the second encoding parameter based on the first average information bit length includes: determining the second information bit length based on the first average information bit length, wherein the second information bit length refers to a candidate value in the set of information bit lengths that is not less than the first average information bit length; and determining the first encoding parameter and the second encoding parameter based on the second information bit length.

[0018] In this way, based on uncertain encoding parameters, N code blocks are RM encoded. The first device can dynamically adjust the encoding strategy according to the characteristics of the data to be encoded, and flexibly select appropriate encoding parameters to encode the N code blocks. This not only ensures the efficiency of the encoding process, but also improves the system's adaptability to complex communication environments.

[0019] In some possible implementations, the method further includes: determining a second padding bit length based on N and the sequence length of the data to be encoded; and determining a third padding bit length based on a first average information bit length, a second information bit length, and N.

[0020] In some possible implementations, the method further includes: dividing the padded data to be encoded into multiple data blocks based on the second padding bit length, the third padding bit length, and the sequence length of the data to be encoded.

[0021] In this way, the first device can determine the length of the padding bits before performing the padding uniformly. The padding operation is centralized and optimized, reducing the repetition of multiple steps and the processing complexity, thereby simplifying the encoding process.

[0022] In some possible implementations, the first device may first insert the second padding bit into the data to be encoded, then divide the padded data into segments, and padded each of the N segments. In this way, the first device can ensure that the data to be encoded can be completely divided into N segments based on the second padding bit, and achieve precise control over the padding position by padding each of the N segments.

[0023] In some possible implementations, the N code blocks include a first code block and a second code block. The RM encoding parameters of the first code block include a third encoding parameter and a fourth encoding parameter, and the RM encoding parameters of the second code block include a fifth encoding parameter and a sixth encoding parameter.

[0024] In this way, the first device can perform RM encoding on the first part of the code block and the second part of the code block based on two sets of parameters, thereby improving the encoding flexibility of the first device while reducing the total number of padding bits and improving the overall performance of RM encoding.

[0025] In some possible implementations, the method further includes: determining a second average information bit length based on N and the sequence length of the data to be encoded; determining at least one of a third encoding parameter and a fourth encoding parameter based on the second average information bit length; and determining at least one of a fifth encoding parameter and a sixth encoding parameter based on the second average information bit length.

[0026] In some possible implementations, determining at least one of the third and fourth coding parameters based on the second average information bit length includes: determining the third information bit length based on the second average information bit length, wherein the third information bit refers to a candidate value in the set of information bit lengths that is not less than the second average information bit length; and determining at least one of the third and fourth coding parameters based on the third information bit length.

[0027] In some possible implementations, determining at least one of the fifth and sixth coding parameters based on the second average information bit length includes: determining the third average information bit length based on the second average information bit length, N, and the sequence length of the data to be encoded; and determining at least one of the fifth and sixth coding parameters based on the third average information bit length.

[0028] In some possible implementations, determining at least one of the fifth and sixth coding parameters based on the third average information bit length includes: determining a fourth information bit length based on the third average information bit length, where the fourth information bit length refers to a candidate value in the set of information bit lengths that is not less than the third average information bit length; and determining at least one of the fifth and sixth coding parameters based on the fourth information bit length.

[0029] In some possible implementations, the method further includes: determining a fourth padding bit length based on a second average information bit length, a third information bit length, and the number of first partial code blocks; and determining a fifth padding bit length based on a third average information bit length, a fourth information bit length, and the number of second partial code blocks.

[0030] In some possible implementations, the method further includes: dividing the padded data to be encoded into a first part of code blocks and a second part of code blocks based on the fourth padding bit length, the fifth padding bit length, and the sequence length of the data to be encoded.

[0031] In this way, the first device can ensure that the code block length is as large as possible, thereby minimizing the number of code blocks, which greatly reduces the decoding error rate and improves decoding efficiency.

[0032] In some possible implementations, determining at least one of the fifth and sixth coding parameters based on the second average information bit length includes: determining the fifth information bit length based on the second average information bit length, wherein the fifth information bit length refers to a candidate value in the set of information bit lengths that is not greater than the second average information bit length; and determining at least one of the fifth and sixth coding parameters based on the fifth information bit length.

[0033] In some possible implementations, the method further includes determining the sixth padding bit length based on the length of the third information bit, the number of the first code block, the length of the fifth information bit, and the number of the second code block.

[0034] In some possible implementations, the method further includes: dividing the padded data to be encoded into a first code block and a second code block based on the length of the sixth padding bit and the sequence length of the data to be encoded.

[0035] In this way, the first device can make the lengths of the N code blocks as close as possible, which can not only optimize the encoding and decoding process and reduce redundancy and imbalance, but also improve overall performance and resource utilization.

[0036] In some possible implementations, the method further includes determining the number of first code blocks and the number of second code blocks based on the sequence length of the data to be encoded, the length of the third information bit, the length of the fifth information bit, and N.

[0037] In a second aspect, an apparatus for encoding (e.g., a terminal device or a network device) is provided, including components for performing operations based on the methods described in the first aspect or any implementation thereof. Optionally, the components may be implemented as units, modules, etc.

[0038] In a third aspect, a communication device is provided, including a transceiver, a processor, and a memory, wherein the memory stores a computer program or instructions executed by the processor, and when the computer program or instructions are executed by the processor, the communication device performs the operation of the method in the first aspect or any implementation thereof via the transceiver.

[0039] In a fourth aspect, a computer-readable storage medium is provided that stores a computer program or instructions that, when executed by a processor, implement operations based on the methods of the first aspect or any implementation thereof.

[0040] In a fifth aspect, a chip or chip system is provided. The chip or chip system includes processing circuitry configured to perform operations based on any implementation of the method described in the first aspect above.

[0041] In a sixth aspect, a computer program or computer program product is provided. The computer program or computer program product is tangibly stored on a computer-readable medium and includes computer-executable instructions that, when executed, cause a device to perform operations based on the method of the first aspect or any implementation thereof.

[0042] It should be noted that some of the aforementioned implementations and beneficial effects also apply to devices, communication equipment, computer-readable storage media, chips or chip systems, communication systems, computer programs or computer program products, and will not be repeated here for the sake of brevity. Attached Figure Description

[0043] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. In the drawings, the same or similar reference numerals denote the same or similar elements, wherein:

[0044] Figures 1A-1D illustrate schematic diagrams of systems in which some embodiments of the present disclosure can be implemented;

[0045] Figure 2 shows a schematic block diagram of the encoding process according to some embodiments of the present disclosure;

[0046] Figure 3 shows a schematic diagram of the data to be encoded after being padded according to some embodiments of the present disclosure;

[0047] Figure 4 illustrates a schematic diagram of encoding matrix clipping according to some example embodiments of the present disclosure;

[0048] Figures 5A-5B illustrate schematic diagrams of RM encoding using a set of encoding parameters according to some embodiments of the present disclosure;

[0049] Figures 6A-6C illustrate schematic diagrams of RM encoding using two sets of encoding parameters according to some embodiments of the present disclosure;

[0050] Figure 7 shows a schematic diagram illustrating the functions of various modules in a mobile communication chip system architecture according to some embodiments of the present disclosure;

[0051] Figure 8 shows a schematic block diagram of a communication device according to some embodiments of the present disclosure;

[0052] Figure 9 shows a schematic block diagram of an example device that can be used to implement embodiments of the present disclosure;

[0053] Figure 10 illustrates a schematic diagram of an RM encoder chip architecture according to some embodiments of the present disclosure; and

[0054] Figure 11 shows a schematic diagram of an RM decoder chip architecture according to some embodiments of the present disclosure. Detailed Implementation

[0055] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.

[0056] In the description of embodiments of this disclosure, the term "comprising" and similar terms should be understood as open-ended inclusion, i.e., "including but not limited to". The term "based on" should be understood as "at least partially based on". The term "one embodiment" or "the embodiment" should be understood as "at least one embodiment". The terms "first", "second", etc., may refer to different or the same objects. The term "and / or" means at least one of the two items associated therewith. For example, "A and / or B" means A, B, or A and B. Other explicit and implicit definitions may also be included below. In the description of embodiments of this disclosure, unless expressly stated to the contrary, "a plurality" means at least two, i.e., two or more.

[0057] The technical solutions of the embodiments of this disclosure are applicable to communication systems that follow any suitable communication protocol, such as: Universal Mobile Telecommunications Service (UMTS), Long Term Evolution (LTE) systems, Wideband Code Division Multiple Access (WCDMA), Code Division Multiple Access 2000 (CDMA2000), Time Division-Synchronization Code Division Multiple Access (TD-SCDMA), Frequency Division Duplex (FDD) systems, Time Division Duplex (TDD) systems, 5G systems, or new radio (NR), and future communication systems.

[0058] It should be understood that the embodiments of this disclosure can be applied to any communication system with similar problems, such as wireless local area networks (WLANs), wired communication systems, or other communication systems developed in the future.

[0059] As used in this disclosure, the term "terminal device" refers to any terminal device capable of wired or wireless communication with network devices or with each other. A terminal device may sometimes be referred to as user equipment (UE). A terminal device can be any type of mobile terminal, fixed terminal, or portable terminal. As examples, a terminal device may include a mobile phone, site, unit, device, mobile terminal (MT), subscription station, portable subscription station, internet node, communicator, desktop computer, laptop computer, notebook computer, tablet computer, personal communication system device, personal navigation device, personal digital assistant (PDA), positioning device, radio receiver, e-book device, gaming device, internet of things (IoT) device, in-vehicle device, aircraft, virtual reality (VR) device, augmented reality (AR) device, wearable device, terminal device in a 5G network, or any terminal device in an evolved public land mobile network (PLMN), other devices that can be used for communication, or any combination thereof. Embodiments of this disclosure are not intended to limit this.

[0060] The embodiments disclosed herein do not limit the specific technology or device form used in the terminal device. It is understood that the terminal device may be referred to as a communication device. For example, a terminal device can be understood as a device with terminal functions. For example, the device used to implement the terminal function can be a terminal device; it can also be a device capable of supporting the terminal device in implementing that function, such as a chip system, hardware circuit, software module, or hardware circuit plus software module. This device can be installed in the terminal device or can be used in conjunction with the terminal device. In the embodiments of this application, the chip system can be composed of chips or may include chips and other discrete devices.

[0061] As used in this disclosure, the term "network device" refers to an entity or node that can be used to communicate with terminal devices, such as an access network device (i.e., an access network equipment). An access network device can be a means deployed in a RAN to provide wireless communication functionality for mobile terminals, such as a RAN network device. Access network devices can include various types of base stations (BS). As examples, access network devices can include various forms of macro base stations, micro base stations, pico base stations, femtobase stations, relay stations, access points, satellites, remote radio units (RRUs), radio heads (RHs), remote radio heads (RRHs), etc., and can also be devices that perform base station functions in device-to-device (D2D) communication and machine-to-machine (M2M) communication. In systems employing different radio access technologies, the names of access network equipment may vary. For example, in long-term evolution (LTE) networks, it may be called an evolved Node B (eNB or eNodeB); in 3G networks, it may be called a Node B (NB); and in 5G networks, it may be called the next-generation Node B, gNode B, gNB, or NR Node B (NR NB), and so on. In some scenarios, access network equipment may include a CU and / or a DU. The CU and DU can be placed in different locations; for example, the DU can be located remotely in a high-traffic area, while the CU is placed in a central equipment room. Alternatively, the CU and DU can be placed in the same equipment room. The CU and DU can also be different components within the same rack. Access network equipment can also be devices deployed in the O-RAN to provide wireless communication functions for mobile terminals; for example, access network equipment may include an open-CU (O-CU) and / or an open-DU (O-DU). For ease of description, in the subsequent embodiments of this disclosure, the devices that provide wireless communication functions for mobile terminals are collectively referred to as network devices, and the embodiments of this disclosure are no longer specifically limited.

[0062] The embodiments disclosed herein do not limit the specific technologies or device forms used in the network devices. For ease of description, an access network device (e.g., a base station) is used as an example of a network device in the following description. It is understood that an access network device may be referred to as a communication device. For example, an access network device can be understood as a device with access functions. For example, the device used to implement the functions of the access network device may be a base station; or some components in the access network device, such as CU, DU, etc. It may also be a device that supports the access network device in implementing this function, such as a chip system, hardware circuit, software module, or hardware circuit plus software module, which can be installed in the access network device or can be used in conjunction with the access network device. In the embodiments of this application, the chip system may be composed of chips or may include chips and other discrete devices.

[0063] Network devices and terminal devices can be fixed in location or mobile. They can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; they can also be deployed on water; and they can be deployed on aircraft, balloons, and artificial satellites. The embodiments of this application do not limit the application scenarios of the network devices and terminal devices.

[0064] The channel coding process includes adding cyclic redundancy check (CRC) codes, code block segmentation, error correction coding, rate adaptation, code block concatenation, data interleaving, and data scrambling. Error correction coding is the most critical part. Its purpose is to ensure that the receiver can automatically correct errors that occur during data transmission with minimal redundancy overhead. At the same bit error rate, the lower the overhead, the higher the coding efficiency. Traditional channel coding and decoding generally include linear block codes (such as Hamming codes, Gray codes, and Reed-Solomon codes (RS codes)), convolutional codes, and concatenated codes. These codes have their own characteristics and performance, and are suitable for different scenarios.

[0065] For future mobile communication networks, commercial applications have seen the emergence of services such as low-power wide-area networks (LPWA), non-terrestrial networks (NTN), and ultra-reliable and low-latency communications (URLLC). These emerging services place further demands on the reliability and coverage of data communication. Meanwhile, traditional small-packet services such as voice and control information also require further enhancements in reliability and coverage. Current 5G low-density parity-check (LDPC) codes and polar codes cannot adequately meet these requirements. Therefore, for future mobile communication network chip channel coding and decoding, technological breakthroughs are needed in two main directions: high-throughput low-power coding and decoding, and high-reliability coding and decoding. This can be achieved through new coding designs and low-complexity decoding designs to reach the goals of future mobile communication standards.

[0066] For example, ultra-reliable low latency communications (URLLC) is a key application scenario in 5G networks, designed to meet the communication needs of those with extremely high requirements for reliability and latency. The design goal of URLLC is to provide extremely low communication latency and extremely high reliability, with a latency of less than 1 millisecond and a near-zero bit error rate.

[0067] In URLLC or other mobile communication networks, RM codes can be used as an effective coding scheme to replace low-density parity-check codes (LDPC codes) and polar codes, especially excelling in applications requiring high reliability, low latency, and low complexity. Therefore, RM codes have become one of the important coding choices for scenarios requiring high reliability and enhanced coverage.

[0068] In NR, when the information bit length is 3 to 11 bits, RM encoding is used without code block segmentation. RM codes have been proven to approximately reach the Shannon limit, exhibiting superior performance and lower encoding / decoding complexity compared to LDPC and Polar codes in short to medium code length scenarios. Therefore, there is a possibility of applying RM codes to larger code lengths (i.e., greater than 11 bits). When applying RM codes to larger code lengths, considering the trade-off between encoding / decoding complexity and performance, it is necessary to segment the bit sequence to be encoded into code blocks before performing RM encoding.

[0069] In view of this, embodiments of the present disclosure provide an encoding method based on Reed-Müller (RM) codes. In this scheme, the encoder can determine N code blocks based on the data to be encoded, where the sequence length of the data exceeds a length threshold; and encode each of the N code blocks using Reed-Müller RM codes, where N is a positive integer greater than 1. This approach supports the application of RM codes in scenarios with long code lengths, while achieving effective optimization in terms of encoding complexity and decoding performance.

[0070] Figure 1A shows a schematic diagram of a system 100A in which some embodiments of the present disclosure can be implemented. As shown, the system 100A in Figure 1A includes a terminal device 110 and a network device 120, wherein the terminal device 110 and the network device 120 can exchange data to realize a point-to-point single connection between the network device 120 and the terminal device 110.

[0071] Figure 1B shows a schematic diagram of a system 100B in which some embodiments of the present disclosure can be implemented. As shown, the system 100B in Figure 1B includes a terminal device 110, a first repeater 130-1 and a second repeater 130-2, and a network device 120, wherein the above-mentioned multiple devices can communicate with each other in sequence to realize a multi-hop single connection between the network device 120 and the terminal device 110.

[0072] Figure 1C illustrates a schematic diagram of a system 100C in which some embodiments of the present disclosure can be implemented. As shown, the system 100C in Figure 1C includes a terminal device 110, a network device 120, and an auxiliary network device 120-1, wherein the terminal device 110, the network device 120, and the auxiliary network device 120-1 can exchange data with each other, realizing dual connectivity (DC) between the network device 120 and the terminal device 110.

[0073] Figure 1D illustrates a schematic diagram of a system 100D in which some embodiments of the present disclosure can be implemented. As shown, the system 100D in Figure 1D includes a terminal device 110, a third repeater 130-3 and a fourth repeater 130-4, and a network device 120, wherein the terminal device 110 can communicate with the network device 120 via the third repeater 130-3 and the fourth repeater 130-4 to realize multi-hop multi-connection between the network device 120 and the terminal device 110.

[0074] In some examples, terminal device 110 and network device 120 can communicate using any communication protocol, such as a currently known or future-developed communication protocol.

[0075] In some examples, the transmission between terminal device 110 and network device 120 can be referred to as an uplink transmission, and the transmission from network device 120 to terminal device 110 can be referred to as a downlink transmission.

[0076] It should be noted that the systems 100A-100D shown in Figures 1A-1D are merely for the purpose of facilitating the description of the embodiments of this disclosure, and are not intended to limit the application environment of the embodiments of this disclosure. It is understood that the embodiments of this disclosure can be applied to other systems or environments besides system 100, including but not limited to scenarios where one or more network-side devices charge one or more devices, such as network devices charging terminal devices, network devices charging network devices, network devices charging relays, relay network devices charging terminal devices, multiple network devices charging one terminal device, or multiple network devices charging multiple terminal devices. This disclosure does not limit this.

[0077] In the following embodiments of this disclosure, the term "encoder" can refer to a variety of devices, including but not limited to terminal devices, network devices, or any hardware or software component that supports encoding functions. Similarly, the term "decoder" can also refer to terminal devices, network devices, or any device with decoding functions. Whether hardware, chip system, or software module, these terms can be used to describe devices or systems with encoding or decoding capabilities to adapt to different network environments and communication needs. This disclosure does not limit the scope of the application.

[0078] The embodiments of this disclosure involve channel coding / decoding between communication devices. Channel coding / decoding between communication devices can include: channel coding / decoding between network devices and terminals, channel coding / decoding between network devices, and channel coding / decoding between terminals. In the embodiments of this application, the term "channel coding / decoding" can also be abbreviated as "coding," and the term "coding" can also be described as "channel encoding / decoding," "network coding," "external code," or "source-channel joint encoding / decoding." The term "coding structure" can also be abbreviated as "coding," "code pattern," or "code design," and the term "coding structure" can also be described as "concatenated code," "layered code," "coupled code," "external code," "sliding window code," "product code," or "ladder code."

[0079] In the following embodiments of this disclosure, the symbols This indicates rounding the value of X up, sign... This indicates that the value of X is rounded down.

[0080] Figure 2 shows a schematic flowchart of an encoding process 200 based on some embodiments of the present disclosure. The encoding process 200 in Figure 2 can be executed by a first device. Referring to Figures 1A-1D, in some examples, the first device can be a terminal device 110 or a device within the terminal device 110 or a device including the terminal device 110. The first device can also be implemented as a network device 120 or a device within the network device 120 or a device including the network device 120.

[0081] In box 201, N code blocks are determined based on the data to be encoded, where the sequence length of the data to be encoded exceeds a length threshold. In box 202, the N code blocks are encoded using RM codes, where N is a positive integer greater than 1.

[0082] Specifically, when the sequence length of the data to be encoded exceeds a length threshold, for example, the length threshold could be 11 bits, this disclosure does not limit the specific value of the length threshold. The first device can determine N code blocks based on the data to be encoded, and encode the N code blocks respectively based on RM codes based on RM encoding parameters.

[0083] The RM encoding parameters can be defined by two integers: the code length parameter and the order parameter. The encoding parameter m can be called the code length parameter of the RM(m, r) code (or the first parameter of the RM code), and the encoding parameter r can be called the order parameter of the RM(m, r) code (or the second parameter of the RM code), where m > r and m is a positive integer not less than 2, and r is a positive integer not less than 1.

[0084] In some embodiments, the RM encoding parameters of the N code blocks may include a first encoding parameter and a second encoding parameter. Specifically, the first device may perform RM encoding on the N code blocks based on a set of encoding parameters m and r, wherein the values ​​corresponding to the encoding parameters m and r are the first encoding parameter and the second encoding parameter.

[0085] In some embodiments, the encoding parameters m and r can be fixed values. Specifically, the first encoding parameter and the second encoding parameter are fixed values; for example, given m = 5 and r = 3, it means that the first encoding parameter is 5 and the second encoding parameter is 3. The first device can encode N code blocks based on the given first and second encoding parameters.

[0086] Optionally, the first device can determine the sequence length of the data to be encoded and the length of the first information bits, where the first information bit length refers to the longest bit length that N code blocks can support, and N is determined based on the sequence length of the data to be encoded and the length of the first information bits. For ease of description, the sequence length of the data to be encoded can be represented as B, and the length of the first information bits can be represented as Kmax, where N is a positive integer greater than 1, Kmax is a positive integer not less than 3, and B is a positive integer greater than the length threshold, for example, a positive integer greater than 11 bits.

[0087] In some embodiments, the sequence length B of the data to be encoded can be determined based on a transport block of length A, where A is a positive integer greater than 1. Specifically, in some examples, the transport block of length A can be modified by adding a Cyclic Redundancy Check (CRC) code to obtain the data to be encoded. The sequence length B of the data to be encoded is B = A + L. tb,crc L tb,crc The length of the Transport Block (TB) CRC is a positive integer greater than 1. TB CRC refers to redundant data appended to the end of the transport block to detect whether an error has occurred. In some examples, TB CRC is not required for the transport block; in this case, the sequence length B of the data to be encoded is the length A of the transport block, i.e., B = A.

[0088] For example, the length A of the transport block is 1022 bits, and the length L of the TB CRC is... tb,crc If the length is 2 bits, then B = 1022 + 2 = 1024, meaning the sequence length of the data to be encoded is 1024 bits. Similarly, when no TB CRC is added to the transport block, the sequence length of the data to be encoded is the length A of the transport block.

[0089] In some embodiments, the first device may determine the length of the first information bit corresponding to the first encoding parameter and the second encoding parameter based on the first encoding parameter and the second encoding parameter. Specifically, the first device may determine the length of the first information bit Kmax corresponding to the first encoding parameter and the second encoding parameter based on a pre-configured mapping relationship.

[0090] In some examples, the first device can be based on the formula Determine the information bit length corresponding to the encoding parameters m and r, where the information bit length K is a positive integer not less than 3. For example, when m = 10 and r = 5, the first information bit length Kmax corresponding to the encoding parameters can be... The result is 638 bits.

[0091] In other examples, the first device can determine the information bit length corresponding to the encoding parameters m and r based on Table 1: Information Bit Length Comparison Table for Different RM Encoding Parameters.

[0092] Table 1: Comparison of Information Bit Lengths under Different RM Encoding Parameters

[0093] For example, when m=10 and r=5, the length of the first information bit Kmax corresponding to the encoding parameters can be determined to be 638 bits in Table 1.

[0094] When the first and second encoding parameters are constants, the first information bit length Kmax can be determined using the formula and table described above. After determining the sequence length B of the data to be encoded and the first information bit length Kmax, the first device can proceed based on the formula... N is determined by dividing the sequence length B of the data to be encoded by the length of the first information bit Kmax and rounding up.

[0095] For example, the length of the first information bit, Kmax, is 638 bits. It can be determined that the number of code blocks N is 2.

[0096] Optionally, the first device may determine the first padding bit length based on the first information bit length, N, and the sequence length of the data to be encoded. Specifically, the first device may determine the first padding bit length using the formula L1 = N × KB, where N refers to the number of code blocks, K refers to the currently determined first information bit length Kmax, and B refers to the sequence length of the encoded data.

[0097] For example, if the number of code blocks N is 2, the length of the first information bit Kmax is 638 bits, and the sequence length B of the data to be encoded is 1024 bits, the length of the first padding bit can be determined based on the following formula: N×Kmax-B=2×638-1024, and the length of the first padding bit is 252 bits.

[0098] After determining the first padding bit, the first device can fill in the data to be encoded. Specifically, the first device can insert a padding bit sequence with a length equal to the length of the first padding bit into the data to be encoded according to a predetermined encoding rule or agreed standard. The inserted padding bits can be a bit sequence of all 1s, a bit sequence of all 0s, or a fixed bit sequence agreed upon in advance by the first device and the data receiving end, such as 010101… or 100010001… etc.

[0099] The insertion position of the padding bits can be determined based on specific requirements, and this disclosure does not limit this. Specifically, the first device can insert the padding bits at the beginning or end of the data to be encoded. In addition, the first device can also insert the padding bits evenly at the beginning or end of each code block.

[0100] Figure 3 shows a schematic diagram of padded data to be encoded 300 according to some embodiments of the present disclosure. As shown in Figure 3, the padded data to be encoded 300 includes three code blocks and padding bits. In some examples, the padding bits can be inserted at the end of the data to be encoded, such as at the position of padding bit 304. In this case, the padded data to be encoded 300 includes a first code block 301, a second code block 302, and a third code block 303, wherein the third code block 303 includes padding bit 304.

[0101] Alternatively, padding bits can be inserted at the beginning of the data to be encoded, such as at the position of padding bit 305. In this case, the padded data to be encoded 300 includes a fourth code block 312, a fifth code block 313, and a sixth code block 314, where the fourth code block 312 includes padding bit 305.

[0102] For example, suppose the sequence length B of the data to be encoded is 519 bits, the padding bit length is 3 bits, and the number of code blocks N is 3. These 3 bits can be inserted at the end of the data to be encoded. Then, the padded data to be encoded is divided into code blocks, each with a length of 176 bits. The third code block can include 3 bits of padding data and 173 bits of the data to be encoded.

[0103] Accordingly, these 3 bits can be inserted at the beginning of the data to be encoded and the padded data to be encoded can be divided into 3 code blocks, where the first code block may include 3 bits of padding data and 176 bits of part of the data to be encoded.

[0104] In this way, the padding bits can be distinguished from the valid data, making the padding part easy to identify.

[0105] In other examples, the padding bits can be divided into three parts and evenly inserted into the seventh code block 315, the eighth code block 316, and the ninth code block 317. Specifically, the padding bits are divided into three parts, and the padding bits 306, 307, and 308 of the three parts are inserted into the beginning positions of the seventh code block 315, the eighth code block 316, and the ninth code block 317, respectively. Alternatively, the padding bits 309, 310, and 311 of the three parts are inserted into the end positions of the seventh code block 315, the eighth code block 316, and the ninth code block 317, respectively.

[0106] For example, suppose the sequence length B of the data to be encoded is 519 bits, the length of the first padding bit is 3 bits, and the number of code blocks N is 3. These 3 bits can be evenly inserted into the beginning or end of each code block. Then, the padded data to be encoded is divided into code blocks of 176 bits each, where each code block may include 1 bit of padding data and 175 bits of the data to be encoded.

[0107] This method can balance the size of each code block, thereby optimizing encoding efficiency and improving decoding performance.

[0108] Optionally, the first device may segment the data to be encoded based on N. Specifically, the first device may segment the padded data to be encoded based on the first padded bit length and the sequence length of the data to be encoded.

[0109] The first device can divide the padded data to be encoded into N code blocks, where the length of each code block is the length of the first information bit Kmax. For example, if the sequence length B of the data to be encoded is 1024 bits and the length of the first padding bit is 252 bits, then the sequence length of the padded data to be encoded is 1276 bits. The padded data to be encoded with a sequence length of 1276 bits is divided into two code blocks, each with a length of 638 bits.

[0110] Optionally, the first device may perform RM(m,r) encoding on each code block based on encoding parameters m and r. Specifically, the first device may perform RM encoding on each code block based on a first encoding parameter and a second encoding parameter. For example, if m = 5 and r = 3, the first device may perform RM(5,3) encoding on the two code blocks to obtain the corresponding encoding matrix.

[0111] Figure 4 illustrates a schematic diagram of encoding matrix trimming 400 according to some example embodiments of the present disclosure. As shown, a padded data to be encoded has an input length of 10 bits, where the last 3 bits are padding bits and the first 7 bits are the data bits corresponding to the data to be encoded. The padded data to be encoded is RM encoded to obtain a 10×16 first encoding matrix 401, where the last three rows are the padding portion 403 corresponding to the padding bits.

[0112] In some embodiments, the first device may trim the encoding matrix. Specifically, the first device may determine the matrix rows in the first encoding matrix 401 corresponding to the padding bits, which correspond to the padding portion 403, based on the position of the padding bits, and trim these matrix rows.

[0113] For example, the first device can delete matrix rows associated with padding bits. Specifically, the first device can delete the matrix rows corresponding to the padding portion 403 to obtain a second encoding matrix 402 corresponding to the data to be encoded.

[0114] For example, the padding bits can be defined as a sequence of all zeros. Specifically, if the padding bits are a sequence of all zeros, the matrix row corresponding to the padding bits in the first encoded matrix 401 is also 0. The padding part 403 is 0 and has no practical meaning. This allows for the indirect trimming of the encoded data.

[0115] In this way, by pruning the encoding matrix, redundant padding bits can be effectively removed, reducing the size and complexity of the encoding matrix, thereby improving the encoding and decoding efficiency of the system.

[0116] Figure 5A illustrates a schematic diagram of RM encoding 500A using a set of encoding parameters according to some embodiments of the present disclosure. As shown, at 502, since the encoding parameters m and r are known, the first device can determine the corresponding first information bit length based on the known encoding parameters.

[0117] At 503, the first device performs code block filling and segmentation on the data to be encoded 501 that exceeds the length threshold based on the first information bit length.

[0118] At position 504, the first device performs RM encoding on N code blocks based on encoding parameters m and r. An example will be used to illustrate this below:

[0119] Assuming the sequence length of the data to be encoded, 501, is 1024, and the encoding parameters m and r are 10 and 5 respectively, the corresponding first information bit length is 638 bits. The first device can be based on... The number of code blocks is determined to be 2, and the padding bits are determined to be 252 bits based on 638×2-1024. Next, the first device inserts the 252 padding bits into the data to be encoded, 501, resulting in a sequence length of 1276 bits. The first device can then divide the 1276-bit padded data into two code blocks of length 638.

[0120] Then, the first device can perform RM encoding on two code blocks of length 638 based on RM(10,5).

[0121] In other embodiments, at least one of the encoding parameters m and r can be an indeterminate value. Specifically, at least one of the first and second encoding parameters is unknown, including cases where the first encoding parameter is unknown, the second encoding parameter is unknown, and both the first and second encoding parameters are unknown.

[0122] When at least one encoding parameter is unknown, the information bit lengths corresponding to the first and second encoding parameters form a set. Specifically, the set of information bit lengths corresponding to the first and second encoding parameters can be determined based on Table 1. For ease of description, the set of information bit lengths corresponding to the first and second encoding parameters is denoted as Kset.

[0123] For example,

[0124] 1) When m is given, the value of r is uncertain. For example, when m = 9, the set of information bit values ​​corresponding to RM encoding can be determined based on Table 1 as Kset = {10, 46, 130, 256, 382, ​​466, 502, 511}, where the maximum supported information bit length Kmax = 511;

[0125] 2) When r is given, the value of m is uncertain. For example, when r = 3, the possible set of information bit values ​​for RM encoding can be determined based on Table 1 as Kset = {15, 26, 42, 64, 93, 130, 176}, where the maximum supported information bit length Kmax = 176;

[0126] 3) When neither m nor r is given, the possible set of information bit values ​​for RM encoding can be determined based on Table 1 as Kset={3,4,5,6,7,8,9,10,11,15,16,22,26,29,31,37,42,46,56,57,63,64,93,99,120,127,130,163,176,219,247,255,256,382,386,466,502,511,638,848,968,1013,1023}. In this case, the possible information bits are all the values ​​in the table, among which the maximum supported information bit length Kmax=1023.

[0127] In other words, if m is a fixed value, the set of information bit values ​​corresponding to the encoding parameters is the row of data corresponding to m in Table 1. If r is a fixed value, the set of information bit values ​​corresponding to the encoding parameters is the column of data corresponding to r in Table 1. If m and r are not known values, the set of information bit values ​​corresponding to the encoding parameters is all the data in Table 1.

[0128] Optionally, the first device determines a first information bit length Kmax, where Kmax refers to the longest bit length that the N code blocks can support; and determines N based on the sequence length B of the data to be encoded and the first information bit length Kmax. Specifically, the first device can determine the number of code blocks N based on the following formula:

[0129] For example, when m = 9 and the value of r is uncertain, the set of information bit lengths corresponding to the first and second encoding parameters is Kset = {10, 46, 130, 256, 382, ​​466, 502, 511}, and the first encoding parameter Kmax is 511 bits. The sequence length B of the data to be encoded is 1024 bits, which can be determined. The number of code blocks is 3.

[0130] In this way, the first device performs code block segmentation based on the longest supported bit length Kmax, so as to minimize the number of code blocks and thus ensure optimal decoding performance.

[0131] Optionally, the first device may determine the first average information bit length based on N and the sequence length of the data to be encoded. Specifically, the first device may determine the first average information bit length based on the following formula: Where B represents the sequence length of the data to be encoded, N represents the number of code blocks, and K′ is a positive integer greater than 1.

[0132] For example, if the sequence length B of the data to be encoded is 1024 bits and the number of code blocks N is 3, it can be based on The first average information bit length is determined to be 342.

[0133] Then, the first device can determine at least one of a first encoding parameter and a second encoding parameter based on a first average information bit length. Specifically, the first device can determine a second information bit length based on the first average information bit length, where the second information bit length refers to a candidate value in the set of information bit lengths that is not less than the first average information bit length; and determine a first encoding parameter and a second encoding parameter corresponding to the second information bit length based on the second information bit length.

[0134] For example, if the first average information bit length is 342, a candidate value not less than the first average information bit length is selected from the set of information bit lengths corresponding to the first and second encoding parameters, Kset = {10, 46, 130, 256, 382, ​​466, 502, 511}, as the second information bit length. For example, the smallest K2 satisfying K2 ≥ K′ can be selected as the second information bit length, where K2 is a positive integer not less than 3. In other words, the minimum value in the set of Kset not less than 342 bits is selected as the second information bit length. The set of Kset not less than 342 bits is {382, 466, 502, 511}. The minimum of these four numbers is selected as the second information bit length, which is 382 bits. Accordingly, the values ​​of the encoding parameters m and r corresponding to the second information bit length can be determined. The encoding parameters corresponding to 382 are m = 9 and r = 5.

[0135] In this way, the first device can ensure that the selected information bit length supports the average information bit length of the code block, and that the number of padded bits is minimized.

[0136] It should be noted that, in the embodiments of this disclosure, selecting the minimum value in the set of information bit lengths that is not less than the first average information bit length is only one possible implementation. This disclosure does not limit the selection criteria for candidate values; the candidate value can be the second smallest value, the third smallest value, or any other value that meets specific requirements and is not less than the first average information bit length in the set.

[0137] Optionally, the first device may determine the second padding bit length based on N and the sequence length of the data to be encoded; and determine the third padding bit length based on the first average information bit length, the second information bit length, and N.

[0138] Specifically, the first device can determine the second padding bit length based on the formula: N-mod(B,N). The first device can also determine the third padding bit length based on the formula: N×(), where K2 refers to the second information bit length, and K2-K′ indicates the padding bits for each code block. The second and third padding bit lengths can indicate the total padding bit length of the data to be encoded.

[0139] For example, if the sequence length B of the data to be encoded is 1024 bits and the number of code blocks N is 3, the length of the second padding bit can be determined to be 2 based on the following formula N-mod(B,N)=3-mod(1024,3).

[0140] Meanwhile, the first device can determine the length of the third padding bit of the data to be encoded as 120 bits based on the following formula N×(K2-K′))=3×(382-342).

[0141] Optionally, the first device can segment the data to be encoded based on N. Specifically, the first device can segment the padded data to be encoded into multiple data blocks based on the second padding bit length, the third padding bit length, and the sequence length of the data to be encoded. The first device can insert padding bits equal to the sum of the second and third padding bit lengths into the data to be encoded, and divide the padded data to be encoded into N code blocks.

[0142] For example, the sum of the second and third padding bit lengths is 120 bits + 2 bits = 122 bits, and the length of the padded sequence of data to be encoded is 1024 bits + 122 bits = 1146 bits. Then, the first device can divide the padded data to be encoded into 3 code blocks, each of which is 382 bits long, equal to the length of the second padding bit.

[0143] In some embodiments, the first device can determine the sum of the second padding bit length and the third padding bit length based on the second padding bit length, the sequence length of the data to be encoded, and N. Specifically, the padding bit length of the data to be encoded can be determined by the following formula: N×K²-B, where N×K² refers to the sequence length of the data to be encoded after padding. For example, if the sequence length B of the data to be encoded is 1024 bits, the number of code blocks N is 3, and the second information bit length is 382 bits, the padding bit length can be determined to be 122 bits based on 3×382-1024.

[0144] In this way, the first device can determine the total number of padding bits, and then pad and segment the data to be encoded. This allows the first device to arrange the padding and segmentation scheme based on the total number of padding bits, thus optimizing the use of computing resources.

[0145] In other embodiments, the first device may determine the length of the second padding bit and insert the second padding bit into the data to be encoded. The first device may then segment the data to be encoded with the inserted second padding bit into N code blocks.

[0146] For example, as described above, the sequence length B of the data to be encoded is 1024 bits, the number of code blocks N is 3, and the length of the second padding bit is 2. After inserting these 2 bits into the data to be encoded, the sequence length of the data to be encoded changes from 1024 to 1026. Then the first device can divide the data to be encoded into 3 code blocks, where the length of each code block is 342.

[0147] In this way, the sequence length of the data to be encoded satisfies the condition that it can be evenly divided, and the first device can completely divide the data to be encoded into N code blocks of equal length.

[0148] Similarly, the first device can determine the padding bit length of each code block to be 40 bits based on K2-K′, derived from 382-342. The first device can then insert 40 bits into each of the three segmented code blocks, padding the length of each code block to the length of the second information bit, which is 382 bits.

[0149] In this way, the first device can ensure that the data to be encoded can be completely segmented by the second padding bit, and fill the N code blocks after segmentation to the length of the corresponding second information bit. Each code block can be accurately filled to ensure that the number of padding bits of each code block is close, so that the N code blocks can maintain consistency during the encoding and decoding process.

[0150] Optionally, the first device may perform RM encoding on the N code blocks based on the first encoding parameters and the second encoding parameters. Specifically, the first device determines the first encoding parameters and the second encoding parameters corresponding to the second information bit length. For example, the first device may determine the encoding parameters corresponding to 382 as m=9 and r=5. The first device may perform RM(9,5) encoding on the N code blocks.

[0151] Figure 5B shows a schematic diagram of RM encoding 500B using a set of encoding parameters according to some embodiments of the present disclosure.

[0152] As shown in the figure, at position 505, at least one of the encoding parameters m or r is uncertain, and the first device can select the largest one as the first information bit length based on the set of information bit lengths supported by the encoding parameters m and r.

[0153] At 506, the first device determines the encoding parameters m and r based on the length of the first information bit and performs code block filling and segmentation on the data to be encoded 501 that exceeds the length threshold.

[0154] At position 507, the first device performs RM encoding on N code blocks based on encoding parameters m and r. An example will be used to illustrate this below:

[0155] Assuming the sequence length of the data to be encoded, 501, is 1024, and the encoding parameters m and r are not given, the corresponding maximum first information bit length is 1023 bits. The first device can be based on... The number of code blocks N is determined to be 2, and the first padding bit is determined to be 2 bits based on 2-mod(1024,2). Next, the first device inserts the 2 padding bits into the data to be encoded, 501. The sequence length of the data to be encoded after the first padding is 1026 bits. The first device can then divide the 1026-bit padded data into two code blocks of length 513.

[0156] Next, the first device can be based on The first average information bit length is determined to be 512 bits. A second information bit length not less than the first average information bit length is selected from the set of information bit lengths supported by the encoding parameters m and r. In other words, the minimum value among the sets of Ksets not less than 512 bits is taken as the second information bit length. The set of Ksets not less than 342 bits is {638, 848, 968, 1013, 1023}. The minimum value of these four numbers is selected as the second information bit length, which is 638 bits. Correspondingly, the values ​​of the encoding parameters m and r corresponding to the second information bit length can be determined. The encoding parameters corresponding to 342 bits are m = 10 and r = 5.

[0157] Subsequently, the first device can determine the second padding bit to be 125 bits based on 638-513, and insert 125 padding bits into each code block, so that the length of each code block after padding is 638 bits.

[0158] Optionally, the first device can determine the total padding bit length to be 252 bits based on 638×2-1024, insert 252 bits into the data to be encoded 501, and then divide the padded data to be encoded into two code blocks of length 638.

[0159] Then, the first device can perform RM encoding on two code blocks of length 638 based on RM(10,5). In this way, the first device divides the data to be encoded into N code blocks and performs RM encoding on each of them. The N code blocks share a set of encoding parameters, which reduces the complexity of encoding and decoding, thereby improving the efficiency of encoding and decoding.

[0160] In some embodiments, the N code blocks include a first part code block and a second part code block. The RM encoding parameters of the first part code block include a third encoding parameter and a fourth encoding parameter, and the RM encoding parameters of the second part code block include a fifth encoding parameter and a sixth encoding parameter. Specifically, the first device can perform RM encoding on the first part code block of the N code blocks using the third encoding parameter and the fourth encoding parameter respectively; and perform RM encoding on the second part code block of the N code blocks using the fifth encoding parameter and the sixth encoding parameter respectively, and the sum of the first part code block and the second part code block is N.

[0161] In other words, the first device can perform RM encoding on N code blocks based on two sets of encoding parameters. Specifically, the first device can perform RM encoding on a first portion of the N code blocks based on a first set of encoding parameters, where the first set of encoding parameters includes a third and a fourth encoding parameter. The first device can also perform RM encoding on a second portion of the N code blocks based on a second set of encoding parameters, where the second set of encoding parameters includes a fifth and a sixth encoding parameter. The first portion of the code blocks includes N1 code blocks, and the second portion of the code blocks includes N2 code blocks, where N = N1 + N2, and N1 and N2 are positive integers less than N.

[0162] It should be understood that the determination of the third, fourth, fifth, and sixth coding parameters is independent of the first and second coding parameters mentioned above, and there is no correlation between them.

[0163] It should be noted that, for ease of description, the embodiments of this disclosure use two sets of encoding parameters to encode two parts of N code blocks separately. However, in practical applications, N sets of encoding parameters can be used to independently encode each of the N code blocks. The aforementioned N sets of encoding parameters can be completely identical, completely different, or partially identical. Therefore, this disclosure does not limit the number of encoding groups or the number of code blocks in each group.

[0164] In some examples, the third, fourth, fifth, and sixth encoding parameters are not given. In this case, the maximum information bit length Kmax that N code blocks can support is 1023, and correspondingly, the first information bit length Kmax is 1023.

[0165] In other examples, one of the third, fourth, fifth, and sixth coding parameters is known. In this case, the maximum information bit length Kmax that N code blocks can support is determined based on the set of information bits supported by the known coding parameters. For example, when the fourth coding parameter is 3, the possible set of information bit values ​​for RM coding can be determined based on Table 1 as Kset = {15, 26, 42, 64, 93, 130, 176}, where the maximum supported information bit length Kmax = 176. For ease of explanation, this embodiment uses an example where four coding parameters are not known values.

[0166] Optionally, the first device can determine N based on the length B of the data sequence to be encoded and the length Kmax of the first information bits. Taking the two sets of encoding parameters as examples where the length B of the data sequence to be encoded is 2050 and the length Kmax of the first information bits is 1023, N can be determined based on N = The number of code blocks is determined to be 3.

[0167] In some embodiments, the first device may determine the second average information bit length based on N and the sequence length of the data to be encoded. Specifically, the first device may determine the second average information bit length based on the following formula: Where B refers to the sequence length of the data to be encoded, N refers to the number of code blocks, and K″ is a positive integer greater than 1. For example, if the sequence length B of the data to be encoded is 2050, the number of code blocks N is 3, and the second average information bit length is... Bit.

[0168] In some embodiments, the first device may determine at least one of a third encoding parameter and a fourth encoding parameter based on a second average information bit length. The first device may determine a third information bit length based on the second average information bit length, wherein the third information bit refers to a candidate value in the set of information bit lengths that is not less than the second average information bit length; and the first device may determine at least one of a third encoding parameter and a fourth encoding parameter corresponding to the third information bit length based on the third information bit length.

[0169] Specifically, the first device can select a candidate value not less than the second average information bit length from the corresponding information bit length set Kset={3,4,5,6,7,8,9,10,11,15,16,22,26,29,31,37,42,46,56,57,63,64,93,99,120,127,130,163,176,219,247,255,256,382,386,466,502,511,638,848,968,1013,1023} as the third information bit length. For example, the smallest K3 that satisfies K3≥K″ can be used as the third information bit length of the first part of the code block, where K3 is a positive integer not less than 3.

[0170] In other words, the minimum value among the sets of Ksets that are not less than 684 bits is used as the length of the third information bit. The set of Ksets that are not less than 684 bits is {848, 968, 1013, 1023}. The minimum value among these five numbers is selected as the length of the third information bit, which is 848 bits.

[0171] Accordingly, the first device can determine the third and fourth coding parameters corresponding to the third information bit length. For example, the coding parameters corresponding to 848 are m = 10 and r = 6. The third and fourth coding parameters corresponding to the first part of the code block in N code blocks are 10 and 6, respectively.

[0172] It should be noted that, in the embodiments of this disclosure, selecting the minimum value in the set of information bit lengths that is not less than the second average information bit length is only one possible implementation. This disclosure does not limit the selection criteria for candidate values; the candidate value can be the second smallest value, the third smallest value, or any other value that meets specific requirements and is not less than the first average information bit length in the set.

[0173] Optionally, the first device may determine at least one of a fifth encoding parameter and a sixth encoding parameter based on a second average information bit length. Specifically, the first device may determine a third average information bit length based on the second average information bit length, N, and the sequence length of the data to be encoded; and determine at least one of a fifth encoding parameter and a sixth encoding parameter based on the third average information bit length.

[0174] For example, the first device may determine the third average information bit length based on the following formula: K″′=BK″×N1, where K″ refers to the second average information bit length, N1 refers to the number of first part code blocks, K″′ is a positive integer greater than 1, K″×N1 refers to the length of the first part code block before padding, and the third average information bit length obtained by BK″×N1 indicates the length of the second part code block before padding.

[0175] For example, the second average information bit length is 684 bits, the length B of the data sequence to be encoded is 2050, and the number of code blocks N is 3, of which the number of first code blocks is 2 and the number of second code blocks is 1. The first device is based on BK″×N1=2050-684×2=682, and the third average information bit length is 682 bits.

[0176] Optionally, the first device may determine a fourth information bit length based on a third average information bit length, wherein the fourth information bit length refers to a candidate value in the set of information bit lengths that is not less than the third average information bit length; and determine at least one of a fifth encoding parameter and a sixth encoding parameter corresponding to the fourth information bit length based on the fourth information bit length.

[0177] Specifically, the first device can select a candidate value not less than the third average information bit length from the corresponding supported information bit set Kset={3,4,5,6,7,8,9,10,11,15,16,22,26,29,31,37,42,46,56,57,63,64,93,99,120,127,130,163,176,219,247,255,256,382,386,466,502,511,638,848,968,1013,1023} as the fourth information bit length. For example, the smallest K4 that satisfies K4≥K″′ can be used as the fourth information bit length of the second part of the code block, where K4 is a positive integer not less than 3.

[0178] For example, the minimum value among the sets of Ksets that are not less than 682 bits can be used as the length of the fourth information bit. If the set of Ksets that are not less than 682 bits is {848, 968, 1013, 1023}, then the minimum value among these five numbers can be chosen as the length of the fourth information bit, resulting in a length of 848 bits.

[0179] Accordingly, the fifth and sixth coding parameters corresponding to the length of the fourth information bit can be determined, and the coding parameters corresponding to 848 are m = 10 and r = 6. The fifth and sixth coding parameters corresponding to the second part of the code block in N code blocks are 10 and 6, respectively.

[0180] It should be noted that, in the embodiments of this disclosure, selecting the minimum value in the set of information bit lengths that is not less than the third average information bit length is only one possible implementation. This disclosure does not limit the selection criteria for candidate values; the candidate value can be the second smallest value, the third smallest value, or any other value that meets specific requirements and is not less than the third average information bit length in the set.

[0181] Optionally, the first device may determine the fourth padding bit length based on the second average information bit length, the third information bit length, and the number of the first partial code blocks; and determine the fifth padding bit length based on the third average information bit length, the fourth information bit length, and the number of the second partial code blocks. Specifically, the first device may determine the third padding bit length of the first partial code block based on the formula N1×(K3-K″), and determine the fourth padding bit length of the second partial code block based on N2×(K4-K″′).

[0182] For example, the second average information bit length is 684 bits, the third information bit length is 848 bits, the third average information bit length is 682 bits, the third information bit length is 848 bits, the number of first code blocks is 2, and the number of second code blocks is 1. The first device can determine the third padding bit length as 2 × (848 - 684) = 328 bits and the fourth padding bit length as 848 - 682 = 166 bits based on the above formula.

[0183] In some examples, the first device can derive the total padding bit length based on N1×K3+N2×K4-B, which corresponds to the sum of the third and fourth padding bit lengths. For example, 2×848+848-2050=494 bits, which is equal to the sum of the third and fourth padding bit lengths.

[0184] Optionally, the first device can divide the padded data to be encoded into a first part of code blocks and a second part of code blocks based on the fourth padded bit length, the fifth padded bit length, and the sequence length of the data to be encoded. Specifically, the first device can insert bits of the third padded bit length and the fourth padded bit length into the data to be encoded, and divide the padded code blocks into a first part of code blocks and a second part of code blocks based on the number of first part code blocks and the third information bit length corresponding to the first part code blocks, as well as the number of second part code blocks and the fourth information bit length corresponding to the second part code blocks.

[0185] For example, if the length of the data sequence to be encoded is 2050 bits, the length of the padding bits is 494 bits, and the length of the data sequence to be encoded after padding is 2544 bits, then the data to be encoded after padding is divided into three 848-bit code blocks (the two sets of encoding parameters are the same in this example).

[0186] Then, the first device can perform RM encoding on the first part of the code blocks based on the third and fourth encoding parameters, and perform RM encoding on the second part of the code blocks based on the fifth and sixth encoding parameters. For example, the first device can encode three code blocks based on RM(10, 6). When the two sets of encoding parameters are different, assuming the first set of encoding parameters is 5, 3 and the second set of encoding parameters is 7, 5, the first device can perform RM(5, 3) encoding on the first part of the code blocks and RM(7, 5) encoding on the second part of the code blocks.

[0187] In some embodiments, the first part of the code block may include the first N-1 code blocks, and the second part of the code block may be the last code block. Specifically, the first device performs RM encoding on the first N-1 code blocks based on the third and fourth encoding parameters, and performs RM encoding on the last code block based on the fifth and sixth encoding parameters.

[0188] In this way, the information bit length of the first N-1 code blocks can be maximized, making the total number of code blocks N as small as possible, thereby improving the encoding and decoding efficiency and reducing the bit error rate.

[0189] Figure 6A illustrates a schematic diagram of RM encoding 600A using two sets of encoding parameters according to some embodiments of the present disclosure. As shown, at 602, since the two sets of encoding parameters are not known values, the first device can determine that the maximum supported first information bit length is 1023.

[0190] At 603, the first device determines a first set of coding parameters m1 and r1 and a second set of coding parameters m2 and r2 based on the first information bit length, and performs code block filling and segmentation on the data to be encoded 501 that exceeds the length threshold based on the first set of coding parameters m1 and r1 and the second set of coding parameters m2 and r2.

[0191] At 604, the first device performs RM encoding on N1 code blocks based on the first set of encoding parameters m1 and r1.

[0192] At position 605, the first device performs RM encoding on N2 code blocks based on the second set of encoding parameters m2 and r2. Exemplarily, embodiments and steps where the two sets of encoding parameters are not known values ​​can refer to the above description and will not be repeated here. In other examples, one of the third and fourth encoding parameters is a constant, and one of the fifth and sixth encoding parameters is a constant, and these two determined encoding parameters have a magnitude relationship. For example, the third and fifth encoding parameters are constants, where the third encoding parameter is less than the fifth encoding parameter, or the third and sixth encoding parameters are constants, where the third encoding parameter is less than the sixth encoding parameter, and so on.

[0193] Specifically, m in the two sets of encoding parameters can be constant values ​​and have a size relationship. For ease of explanation, this embodiment takes the determination of m in the two sets of encoding parameters as an example, where the third encoding parameter and the fifth encoding parameter are constant values, and the third encoding parameter is less than the fifth encoding parameter.

[0194] For example, if the third encoding parameter is 5 and the fifth encoding parameter is 7, then the set of information bit lengths corresponding to the third and fourth encoding parameters is Kset = {6, 16, 26, 31}, and the set of information bit lengths corresponding to the fifth and sixth encoding parameters is Kset = {8, 29, 64, 99, 120, 127}. The first device can determine that the maximum information bit length supported by the fifth encoding parameter, Kmax1, is 127 bits, and the maximum information bit length supported by the third encoding parameter, Kmax2, is 31 bits. Since the third encoding parameter is less than the fifth encoding parameter, the corresponding Kmax2 < Kmax1, and Kmax2 is a positive integer not less than 3, while Kmax1 is a positive integer greater than 3.

[0195] The first device can determine whether the data to be encoded can be segmented based on the maximum information bit length supported by the maximum of two determined encoding parameters. Specifically, the first encoding parameter can determine whether the data to be encoded can be segmented based on the relationship between Kmax1 and the sequence length of the data to be encoded.

[0196] In some examples, when the sequence length of the data to be encoded is not greater than the first information bit length Kmax, the first device can fill the data to be encoded into the first information bit length Kmax, and then perform RM encoding on this code block based on the encoding parameters corresponding to the first information bit length Kmax.

[0197] For example, suppose the sequence length B of the data to be encoded is 120 bits, the length of the first information bit Kmax is 127 bits, and the sequence length of the data to be encoded is no greater than the length of the first information bit Kmax. The first device can determine the length of the padding bits, which is 7 bits in this case. Then the first device can insert the padding bits into the data to be encoded and perform RM encoding on the padded data based on the encoding parameters m=7 and r=6 corresponding to 127 bits.

[0198] In some examples, when the sequence length of the data to be encoded is greater than Kmax1, the first device can determine that the data to be encoded can be segmented. Specifically, the first device can determine the number N1 of the first part of the code blocks based on the sequence length B and Kmax1 of the data to be encoded, to ensure that the number of code blocks with longer code block lengths is as large as possible, thereby minimizing the total number of code blocks N. Specifically, the first device can determine the number of the first part of the code blocks based on the formula... Determine the number N1 of the first part of the code blocks.

[0199] For example, suppose the sequence length B of the data to be encoded is 165 bits, Kmax1 is 127 bits, and the sequence length of the data to be encoded is greater than Kmax1. The first device can be based on the formula The number of the first code block, N1, is determined to be 1.

[0200] Then, the first device can determine whether the remaining portion of the remaining data to be encoded can be segmented based on the maximum information bit length Kmax2 corresponding to the smaller of the two determined encoding parameters. Specifically, the first device can use the following formula Determine the remaining portion of the data to be encoded, and determine whether the remaining portion of the data to be encoded can be segmented based on the relationship between the remaining portion of the data to be encoded and Kmax2.

[0201] In some examples, when the remaining portion of the data to be encoded is no greater than Kmax2, the first device can determine that the remaining portion of the data to be encoded cannot be divided. Specifically, the first device can pad the remaining portion of the data to be encoded based on Kmax2.

[0202] For example, the first device can determine the padding bit length based on Kmax2 and the remaining portion of the data to be encoded, and insert the padding bits into the remaining portion of the data to be encoded. The specific steps can be referred to the above content regarding the case where the sequence length of the data to be encoded is not greater than the first information bit length Kmax, and will not be repeated here.

[0203] In other examples, when the remaining portion of the data to be encoded is greater than Kmax2, the first device can determine that the remaining portion of the data to be encoded can be segmented. The first device can then segment and pad the remaining portion of the data to be encoded based on Kmax2.

[0204] Specifically, the first device can be based on Determine the number N2 of the second code block. For example, if the sequence length B of the data to be encoded is 165 bits, Kmax1 is 127 bits, the number of the first code block N1 is 1, Kmax2 is 31 bits, the remaining length of the data to be encoded is 38, and the number of the second code block N2 is... The number of N2 is 2.

[0205] Optionally, the first device may determine the average information bit length of the second code block based on the number N2 of the second code block and the remaining length of the data to be encoded, and determine the information bit length of the second code block based on the average information bit length of the second code block.

[0206] Specifically, the first device can be based on the formula The average information bit length of the second code block is determined, where B1 represents the remaining length of the data to be encoded. Then, the first device can determine a candidate value from the set of information bits supported by the second code block as the information bit length of the second code block. For example, the first device can select the minimum value from the set of information bits supported by the second code block that is not less than the average information bit length of the second code block as the information bit length of the second code block.

[0207] For example, the remaining length of the data to be encoded is 38, the number of N2 is 2, and the average information bit length of the second code block is 19. The set of information bit lengths corresponding to the third and fourth encoding parameters is Kset = {6, 16, 26, 31}, where the set of information bit lengths not less than 19 is Kset = {26, 31}. In this case, the first device can choose the minimum value of these two numbers, 26, as the information bit length of the second code block, and the encoding parameters of the second code block with 26 are m = 5 and r = 3.

[0208] Optionally, the first device can determine the padding bit length based on the information bit length of the second code block, the number of second code blocks, and the remaining length B1 of the data to be encoded. Specifically, the first device can determine the padding bit length based on the formula N2×K-B1, or the first device can determine the padding bit length based on the formula N1×Kmax1+N2×KB, where K refers to the information bit length of the second code block. For example, if the remaining length of the data to be encoded is 38, the number of N2 is 2, and the information bit length of the second code block is 26, the first device can determine the padding bit length to be 26×2-38=14 bits.

[0209] After the first device inserts padding bits into the data to be encoded, the first device can divide the data to be encoded into a first part number of code blocks and a second part number of code blocks based on the number of first and second part code blocks and the corresponding information bit length of each part, and perform RM encoding on them respectively.

[0210] For example, the first device can fill 14 bits of the 165-bit data to be encoded to obtain 179 bits of filled data. Then, the 179-bit filled data to be encoded is divided into one 127-bit code block and two 26-bit code blocks. The 127-bit code block is RM(7,6) encoded, and the two 26-bit code blocks are RM(5,3) encoded.

[0211] In this way, when one of the two sets of encoding parameters is determined, the first device can determine the optimal segmentation scheme of the data to be encoded based on the two determined encoding parameters, so that the number of code blocks in the data to be encoded is as small as possible and the length of the padding bits is as short as possible.

[0212] Figure 6B shows a schematic diagram of RM encoding 600B using two sets of encoding parameters according to some embodiments of the present disclosure.

[0213] As shown in the figure, at position 606, two parameters of the two sets of coding parameters are uncertain. The first device can determine the maximum supported first information bit length based on the remaining two known coding parameters.

[0214] At 607, the first device can determine the first set of coding parameters m1 and r1 and the second set of coding parameters m2 and r2 based on the first information bit length, and perform code block filling and segmentation on the data to be encoded 501 that exceeds the length threshold based on the first set of coding parameters m1 and r1 and the second set of coding parameters m2 and r2.

[0215] At 608, the first device can perform RM encoding on N1 code blocks based on the first set of encoding parameters m1 and r1.

[0216] At position 609, the first device can perform RM encoding on N2 code blocks based on the second set of encoding parameters m2 and r2.

[0217] For example, there are two cases where two parameters in the two sets of encoding parameters are uncertain. One case is that one encoding parameter in each set is uncertain, i.e., one of m1 and r1 is uncertain, and one of m2 and r2 is uncertain. Specific embodiments and steps for this case can be found in the description above, and will not be repeated here.

[0218] Another scenario is where one set of encoding parameters is determined, while the other set is uncertain. For example, m1 and r1 are determined while m2 and r2 are uncertain, or m2 and r2 are determined while m1 and r1 are uncertain. An example will illustrate this further below:

[0219] Assuming the sequence length of the data to be encoded, 501, is 2024, and the first set of encoding parameters is determined to be m1 = 9 and r1 = 6, the information bit length corresponding to the first set of encoding parameters is 466 bits. Furthermore, since the second set of encoding parameters is uncertain, the maximum information bit length of 1023 bits supported by the second set of encoding parameters is always greater than or equal to the information bit length of 466 bits corresponding to the first set of encoding parameters.

[0220] Therefore, the number of code blocks N1 in the first part can be set to 1, which can maximize the number of code blocks N2 in the second part, thereby minimizing the total number of code blocks.

[0221] The first device can be based on the formula Determine the number of code blocks N2 in the second part. Where B refers to the sequence length of the data to be encoded, 501; K1 refers to the length of the information bits corresponding to the first set of encoding parameters; and Kmax3 refers to the maximum number of information bits supported by the second set of encoding parameters, 1023.

[0222] Next, the first device can be based on the formula Determine the average information bit length of the second part of the code block. For example, the average information bit length of the second part of the code block is... Bit.

[0223] The first device can determine the information bit length of the second code block based on the average information bit length of the second code block. For example, the first device can select the minimum value not less than the average information bit length of the second code block from the set of information bits supported by the second set of coding parameters.

[0224] For example, the first device can select a minimum value of 848, not less than 799, from the set of information bits supported by the second set of coding parameters, Kset = {3,4,5,6,7,8,9,10,11,15,16,22,26,29,31,37,42,46,56,57,63,64,93,99,120,127,130,163,176,219,247,255,256,382,386,466,502,511,638,848,968,1013,1023}, as the information bit length of the second code block. Accordingly, the first device can determine the second set of coding parameters corresponding to the information bit length 848 of the second code block as m2 = 10 and r2 = 6.

[0225] The first device can determine the padding bit length based on K1×N1+K2×N2-B, where K1 refers to the information bit length corresponding to the first code block, K2 refers to the information bit length corresponding to the second code block, and correspondingly, the padding bit length is 848×2+466-2024=138 bits.

[0226] After inserting padding bits into the data to be encoded, the first device divides the padded data into a first code block and a second code block.

[0227] Then, the first device can perform RM encoding on a 466-length code block based on RM(9,6), and the first device can perform RM encoding on two 848-length code blocks based on RM(10,6).

[0228] Figure 6C shows a schematic diagram of RM encoding 600C using two sets of encoding parameters according to some embodiments of the present disclosure.

[0229] As shown in the figure, at position 610, both sets of coding parameters are determined, and the first device can determine the maximum supported first information bit length based on the known two sets of coding parameters.

[0230] At 611, the first device can determine the number of first code blocks and the number of second code blocks based on known coding parameters, and perform code block filling and segmentation on the data to be encoded 501 that exceeds the length threshold based on the first set of coding parameters m1 and r1 and the second set of coding parameters m2 and r2.

[0231] At position 612, the first device can perform RM encoding on N1 code blocks based on the first set of encoding parameters m1 and r1.

[0232] At position 613, the first device can perform RM encoding on N2 code blocks based on the second set of encoding parameters m2 and r2. A concrete example will be provided below:

[0233] Assuming the sequence length of the data to be encoded, 501, is 2024, one set of encoding parameters is determined as m1 = 9 and r1 = 6, with a corresponding information bit length of 466 bits. Another set of encoding parameters is m2 = 10 and r2 = 6, with a corresponding information bit length of 848 bits.

[0234] Since the information bit length of 848 is greater than the information bit length of 466, the maximum supported first information bit length is 848 bits. The first device can be based on the formula... Determine the number N1 of the first group of code blocks, where B refers to the sequence length of the data 501 to be encoded, Kmax refers to the maximum information bit length supported by multiple code blocks, and the first information bit length is given. Therefore, the number of the first group corresponds to the first information bit length.

[0235] The first device can be based on Determine the number N2 of the second group of code blocks, where B refers to the sequence length of the data 501 to be encoded, Kmax refers to the maximum information bit length supported by multiple code blocks, and K2 refers to the information bit length corresponding to the first group. Therefore...

[0236] Next, the first device can determine the length of the padding information bits based on N1×Kmax+N2×K2-B, which corresponds to 2×848+466-2024=138 bits. After inserting the 138-bit padding bits into the data to be encoded, the length of the padded data sequence is 2162 bits. The first device then divides the padded data into a first code block and a second code block, corresponding to two code blocks of 848 bits each and one code block of 466 bits each.

[0237] Then, the first device can perform RM encoding on a 466-bit code block based on RM(9,6), and the first device can perform RM encoding on two 848-bit code blocks based on RM(10,6).

[0238] In this way, the first device can divide N code blocks into multiple code block groups and perform RM encoding with different encoding parameters, which greatly reduces the number of padding bits, thus improving transmission performance while ensuring efficient decoding.

[0239] Optionally, the first device may determine the sequence length B of the data to be encoded and the first information bit length Kmax. The method for determining the first information bit length Kmax and the sequence length B of the data to be encoded is as described above, and will not be repeated here.

[0240] Optionally, the first device can determine N code blocks based on the sequence length B of the data to be encoded and the first information bit length Kmax, and the determination method of N code blocks, based on the formula For details, please refer to the above description, which will not be repeated here.

[0241] Then, the first device can determine the average information bit length of N code blocks based on the sequence length B and N of the data to be encoded, corresponding to the second average information bit length, which can be based on the formula... Confirmed. For details, please refer to the above description of the second average information bit length, which will not be repeated here.

[0242] Optionally, the first device may determine a third information bit length based on a second average information bit length, where the third information bit refers to a candidate value in the set of information bit lengths not less than the second average information bit length; and the first device may determine at least one of a third encoding parameter and a fourth encoding parameter corresponding to the third information bit length based on the third information bit length. Accordingly, the first device may determine the third encoding parameter and the fourth encoding parameter corresponding to the third information bit length. For details, please refer to the above description regarding the third information bit length, which will not be repeated here.

[0243] Optionally, the first device may determine the fifth encoding parameter and the sixth encoding parameter based on the second average information bit length. Specifically, the first device may determine the fifth information bit length based on the second average information bit length, where the fifth information bit length refers to a candidate value in the set of information bit lengths that is not greater than the second average information bit length; and determine at least one of the fifth encoding parameter and the sixth encoding parameter corresponding to the fifth information bit length based on the fifth information bit length.

[0244] For example, the sequence length B of the data to be encoded is 1024. The first set of encoding parameters includes the third and fourth encoding parameters, and the second set of encoding parameters includes the fifth and sixth encoding parameters. The third and fifth encoding parameters are both 8, while the fourth and sixth encoding parameters are unknown. The first device can determine the first information bit length Kmax = 255 based on the set of information bit lengths Kset = {9, 37, 93, 163, 219, 247, 255} supported by the two sets of encoding parameters, and determine the number of code blocks based on the sequence length of the data to be encoded and the first information bit length Kmax.

[0245] The first device can determine the second average information bit length based on the sequence length of the data to be encoded being 1024 and the number of code blocks being 5. Bits. Accordingly, the first device can select a maximum value of 163, which is not greater than the second average information bit length of 205 bits, and a minimum value of 219, which is not less than the second average information bit length of 205 bits, from Kset = {9, 37, 93, 163, 219, 247, 255}, as the third information bit length corresponding to the first part of the code block and the fifth information bit length corresponding to the second part of the code block.

[0246] In other words, the first device can select the two information bit lengths closest to the second average information bit length from the set of information bit lengths as the third information bit length corresponding to the first part of the code block and the fifth information bit length corresponding to the second part of the code block. For example, in Kset={9,37,93,163,219,247,255}, the two information bit lengths closest to the second average information bit length of 205 are 163 and 219, respectively.

[0247] In this way, the first device can select two close information bit lengths as the lengths of the first and second code blocks, making the information bit lengths of the N code blocks close, which is easier to encode and decode and improves overall efficiency.

[0248] Optionally, the first device may determine the number of the first code blocks and the number of the second code blocks based on the sequence length of the data to be encoded, the length of the third information bits, the length of the fifth information bits, and N. Specifically, the first device may determine the number of the first code blocks based on the following formula:

[0249] Determine the number of code blocks N2 in the second part, where B refers to the sequence length of the data to be encoded, N refers to the number of code blocks, K3 refers to the length of the third information bit, K5 refers to the length of the fifth information bit, K3 is a positive integer not less than 3, K5 is a positive integer greater than 3 and K5>K3.

[0250] For example, the third information bit is 163 bits long, the fifth information bit is 219 bits long, the number of code blocks N is 5, and the sequence length of the data to be encoded is 1024 bits. The first device can be based on the following formula:

[0251] The number of code blocks in the second part, N2, is determined to be 4. Accordingly, the first device can determine the number of code blocks in the first part, N1, to be 5 - 4 = 1 based on N = N1 + N2.

[0252] Optionally, the first device may determine the sixth padding bit length based on the length of the third information bit, the number of the first code blocks, the length of the fifth information bit, and the number of the second code blocks. Specifically, the first device may determine the sixth padding bit length based on the formula N1×K3+N2×K5-B, and insert the number of padding bits of the sixth padding bit length into the data to be encoded.

[0253] For example, the length of the third information bit is 163 bits, the length of the fifth information bit is 219 bits, the length of the sequence of data to be encoded is 1024 bits, the number of the first code block N1 is 1, and the number of the second code block N2 is 4. The first device can determine the length of the sixth padding bit to be 15 bits based on the following formula: 1×163+4×219-1024.

[0254] Then, the first device can insert a sixth padding bit of length 15 bits into the data to be encoded, so that the length of the data to be encoded after padding is 1024 + 15 = 1039 bits.

[0255] Optionally, the first device may divide the padded data to be encoded into a first part of code blocks and a second part of code blocks based on the length of the sixth padding bit and the sequence length of the data to be encoded.

[0256] For example, the length of the padded data to be encoded is 1039 bits, the length of the third information bit is 163 bits, the length of the fifth information bit is 219 bits, the number of the first code block N1 is 1, and the number of the second code block N2 is 4. The first device divides the padded data to be encoded into the first code block and the second code block, corresponding to one code block of length 163 bits and four code blocks of length 219 bits.

[0257] Then, the first device can perform RM encoding on a 163-bit code block based on RM(8,4), and the first device can perform RM encoding on four 219-bit code blocks based on RM(8,5).

[0258] In this way, the first device can divide a bit sequence of length B into C groups, each group using RM(m0,r0), RM(m1,r1), ..., RM(m i ,r i ),…,RM(m C-1 ,r C-1 Encoding. To minimize the total number of padding bits while keeping the number of blocks as small as possible, the following optimization problem arises:

[0259] The above optimization problem can be solved using integer programming. For example:

[0260] When B = 1024, encoding with one set of encoding parameters can divide the data into two blocks. Both blocks are encoded using RM(10,5), with an information bit length of 638 and requiring 252 padding bits. Encoding with two sets of encoding parameters can also divide the data into two blocks, using RM(9,6) and RM(10,5) respectively. The information bit lengths are 511 and 638 respectively, requiring 125 padding bits. Compared to encoding with one set of encoding parameters, this significantly reduces the total number of padding bits, thereby reducing the transmission of redundant data, improving encoding efficiency, and optimizing decoding performance.

[0261] Figure 7 illustrates a schematic diagram of the functions of various modules in the architecture of a mobile communication chip system 700 according to some embodiments of the present disclosure. As shown in Figure 7, the mobile communication chip system 700 is divided into two parts: downlink processing and uplink processing. The downlink processing encodes the layer 2 data 701 at 702, optionally modulates it at 703, optionally performs layer mapping at 704, optionally performs precoding at 705, optionally performs framing at 706, optionally performs inverse fast fourier transform (IFFT) at 707, and optionally, finally processes it into an air interface signal to be transmitted via the interface radio frequency module (IRF) at 708.

[0262] It should be understood that decoding is the inverse operation of encoding in the embodiments of this disclosure, and will not be described in detail here.

[0263] Accordingly, the uplink processing receives the signal, optionally obtains baseband data via IRF processing at 709, optionally performs FFT at 710, optionally performs deframe at 711, optionally performs equalization at 712, optionally performs de-mapping at 713, optionally performs demodulation at 714, and performs decoding at 715 to complete the physical layer signal processing.

[0264] The embodiments disclosed herein are primarily applied to encoding and decoding modules in mobile communication chip system architectures, which are crucial components of the baseband processing system. This architecture effectively supports various communication processing functions, especially in complex wireless communication environments, enabling efficient and low-latency data transmission. The encoding and decoding modules of this invention, through highly integrated processing at the physical layer, optimize the signal encoding and decoding process, thereby improving the overall performance and stability of the system.

[0265] It should also be understood that the manner, situation, category, and division of embodiments in the present disclosure are for the convenience of description only and should not constitute a special limitation. Various manners, categories, situations, and features in the embodiments can be combined with each other where logically consistent.

[0266] It should also be understood that the above description is only intended to help those skilled in the art better understand the embodiments of this disclosure, and is not intended to limit the scope of the embodiments of this disclosure. Those skilled in the art can make various modifications, variations, or combinations based on the above description. Such modifications, variations, or combinations are also within the scope of the embodiments of this disclosure.

[0267] It should be noted that some exemplary embodiments have been described in conjunction with the accompanying drawings in this disclosure. However, these exemplary embodiments and the drawings are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure. For example, operations (or steps) in different drawings can be recombined. For example, some operations (or steps) shown in the drawings can be omitted, removed, or combined. For example, one or more additional operations (or steps) may be further included in the drawings. For example, the order of operations (or steps) shown in the drawings can be rearranged or adjusted. It should be understood that other embodiments obtained based on the foregoing embodiments also fall within the scope of protection of this disclosure.

[0268] It should also be understood that the above description focuses on highlighting the differences between the various embodiments. Similarities or commonalities can be referenced or learned from each other, and for the sake of brevity, they will not be repeated here.

[0269] Figure 8 shows a schematic block diagram of a communication device 800 based on some embodiments of the present disclosure. In some examples, the device 800 may be implemented as a terminal device 110 as shown in Figures 1A-1D, or as a device within or including the terminal device 110; it may also be implemented as a network device 120 as shown in Figures 1A-1D, or as a device within or including the network device 120. The present disclosure does not limit this. As shown in Figure 8, the device 800 includes a processing module 810 and an encoding module 820.

[0270] The processing module 810 can be configured to determine N code blocks based on the data to be encoded, wherein the sequence length of the data to be encoded exceeds a length threshold.

[0271] The encoding module 820 can be configured to encode N code blocks based on Reed-Müller RM codes, where N is a positive integer greater than 1.

[0272] For example, the processing module 810 can be configured to determine a first information bit length, which refers to the longest bit length that N code blocks can support; and to determine N based on the sequence length of the data to be encoded and the first information bit length.

[0273] For example, the processing module 810 can be configured to segment the data to be encoded based on N.

[0274] For example, the RM encoding parameters of N code blocks include a first encoding parameter and a second encoding parameter.

[0275] For example, the processing module 810 can be configured to determine the length of the first information bit corresponding to the first encoding parameter and the second encoding parameter based on the first encoding parameter and the second encoding parameter.

[0276] For example, the processing module 810 can be configured to determine the length of the first information bit corresponding to the first encoding parameter and the second encoding parameter by: determining the length of the first information bit corresponding to the first encoding parameter and the second encoding parameter based on a pre-configured mapping relationship.

[0277] For example, the processing module 810 can be configured to determine the first padding bit length based on the first information bit length, N, and the sequence length of the data to be encoded;

[0278] For example, the processing module 810 can be configured to segment the padded data to be encoded based on the first padded bit length and the sequence length of the data to be encoded.

[0279] For example, the processing module 810 may be configured to determine a first average information bit length based on N and the sequence length of the data to be encoded; and to determine at least one of a first encoding parameter and a second encoding parameter based on the first average information bit length.

[0280] For example, the processing module 810 may be configured to determine at least one of a first encoding parameter and a second encoding parameter based on a first average information bit length, including: determining a second information bit length based on the first average information bit length, wherein the second information bit length refers to a candidate value in a set of information bit lengths that is not less than the first average information bit length; and determining a first encoding parameter and a second encoding parameter corresponding to the second information bit length based on the second information bit length.

[0281] For example, the processing module 810 can be configured to determine a second padding bit length based on N and the sequence length of the data to be encoded; and to determine a third padding bit length based on a first average information bit length, a second information bit length, and N.

[0282] For example, the processing module 810 divides the padded data to be encoded into multiple data blocks based on the second padding bit length, the third padding bit length, and the sequence length of the data to be encoded.

[0283] For example, the N code blocks include a first code block and a second code block. The RM encoding parameters of the first code block include a third encoding parameter and a fourth encoding parameter, and the RM encoding parameters of the second code block include a fifth encoding parameter and a sixth encoding parameter.

[0284] For example, the processing module 810 may be configured to determine a second average information bit length based on N and the sequence length of the data to be encoded; determine at least one of a third encoding parameter and a fourth encoding parameter based on the second average information bit length; and determine at least one of a fifth encoding parameter and a sixth encoding parameter based on the second average information bit length.

[0285] For example, the processing module 810 may be configured to determine at least one of a third encoding parameter and a fourth encoding parameter based on a second average information bit length, including: determining a third information bit length based on the second average information bit length, wherein the third information bit refers to a candidate value in the set of information bit lengths that is not less than the second average information bit length; and determining at least one of a third encoding parameter and a fourth encoding parameter corresponding to the third information bit length based on the third information bit length.

[0286] For example, the processing module 810 may be configured to determine at least one of the fifth encoding parameter and the sixth encoding parameter based on the second average information bit length, including: determining the third average information bit length based on the second average information bit length, N and the sequence length of the data to be encoded; and determining at least one of the fifth encoding parameter and the sixth encoding parameter based on the third average information bit length.

[0287] For example, the processing module 810 may be configured to determine at least one of a fifth encoding parameter and a sixth encoding parameter based on a third average information bit length, including: determining a fourth information bit length based on the third average information bit length, wherein the fourth information bit length refers to a candidate value in the set of information bit lengths that is not less than the third average information bit length; and determining at least one of a fifth encoding parameter and a sixth encoding parameter corresponding to the fourth information bit length based on the fourth information bit length.

[0288] For example, the processing module 810 can be configured to determine a fourth padding bit length based on a second average information bit length, a third information bit length, and the number of first partial code blocks; and to determine a fifth padding bit length based on a third average information bit length, a fourth information bit length, and the number of second partial code blocks.

[0289] For example, the processing module 810 can be configured to divide the padded data to be encoded into a first part of code blocks and a second part of code blocks based on the fourth padded bit length, the fifth padded bit length and the sequence length of the data to be encoded.

[0290] For example, the processing module 810 may be configured to determine at least one of a fifth encoding parameter and a sixth encoding parameter based on a second average information bit length, including: determining a fifth information bit length based on the second average information bit length, wherein the fifth information bit length refers to a candidate value in the set of information bit lengths that is not greater than the second average information bit length; and determining at least one of a fifth encoding parameter and a sixth encoding parameter corresponding to the fifth information bit length based on the fifth information bit length.

[0291] For example, the processing module 810 can be configured to determine the sixth padding bit length based on the third information bit length, the number of the first code blocks, the fifth information bit length, and the number of the second code blocks.

[0292] For example, the processing module 810 can be configured to divide the padded data to be encoded into a first part of code blocks and a second part of code blocks based on the length of the sixth padding bit and the sequence length of the data to be encoded.

[0293] For example, the processing module 810 can be configured to determine the number of first part code blocks and the number of second part code blocks based on the sequence length of the data to be encoded, the length of the third information bit, the length of the fifth information bit, and N.

[0294] The device 800 in Figure 8 can be used to implement the various processes performed by the first device (terminal device 110 or network device 120) in conjunction with Figures 2 to 7, which will not be described in detail here for the sake of brevity.

[0295] Figure 9 shows a schematic block diagram of an example device 900 that can be used to implement embodiments of the present disclosure. Device 900 may be implemented as or included in the terminal device 110 of Figures 1A-1D, or may be implemented as or included in the network device 120 of Figures 1A-1D.

[0296] As shown in Figure 9, the device 900 includes one or more processors 910, one or more memories 920 coupled to the processors 910, and a communication module 940 coupled to the processors 910.

[0297] The communication module 940 can be used for bidirectional communication. The communication module 940 may have at least one communication interface for communication. The communication interface may include any interface necessary for communication with other devices.

[0298] Processor 910 can be any type suitable for a local technology network and can include, but is not limited to, one or more of the following: a general-purpose computer, a special-purpose computer, a microcontroller, a digital signal processor (DSP), or a controller-based multi-core controller architecture. Device 900 can have multiple processors, such as application-specific integrated circuit chips, which are time-subordinate to a clock synchronized with the main processor.

[0299] Memory 920 may include one or more non-volatile memories and one or more volatile memories. Examples of non-volatile memories include, but are not limited to, at least one of the following: read-only memory (ROM) 924, erasable programmable read-only memory (EPROM), flash memory, hard disk, compact disc (CD), digital versatile disc (DVD), or other magnetic and / or optical storage. Examples of volatile memories include, but are not limited to, at least one of the following: random access memory (RAM) 922, or other volatile memories that do not persist during the duration of a power outage.

[0300] Computer program 930 includes computer-executable instructions that are executed by associated processor 910. Program 930 may be stored in ROM 924. Processor 910 may perform any suitable actions and processes by loading program 930 into RAM 922.

[0301] The embodiments of this disclosure can be implemented using program 930, enabling device 900 to perform any of the processes discussed with reference to Figures 3 through 11. Embodiments of this disclosure can also be implemented in hardware or a combination of software and hardware.

[0302] Program 930 may be tangibly contained in a computer-readable medium, which may include in device 900 (such as in memory 920) or other storage device accessible by device 900. Program 930 may be loaded from the computer-readable medium into RAM 922 for execution. The computer-readable medium may include any type of tangible non-volatile memory, such as ROM, EPROM, flash memory, hard disk, CD, DVD, etc.

[0303] In some embodiments, the communication module 940 in the device 900 can be implemented as a transmitter and receiver (or transceiver), which can be configured to send / receive, such as multiple TCIs, at least one message, capability information, etc. Additionally, the device 900 may further include one or more of a scheduler, a controller, and a radio frequency / antenna, which will not be described in detail in this disclosure.

[0304] For example, the device 900 in FIG9 may be implemented as an electronic device, or may be implemented as a chip or chip system in an electronic device, and the embodiments of this disclosure are not limited thereto.

[0305] Figure 10 illustrates a schematic diagram of an RM encoder chip architecture 1000 according to some embodiments of the present disclosure. As shown, the RM encoder chip architecture 1000 includes a computing unit 1001, a storage unit 1008, and a control unit 1009. The computing unit 1001 is responsible for processing the encoder's logical operations and includes the following modules: transmission block cyclic redundancy check (TB CRC) 1002, code block segmentation 1003, code block cyclic redundancy check (CB CRC) (which may include masking) 1004, code block concatenation and scrambling 1005, rate matching 1006, and RM encoding 1007. The storage unit 1008 is responsible for storing data during the calculation process, and the control unit 1009 is responsible for scheduling and controlling the computing unit and storage resources. The embodiments of the present disclosure mainly relate to the implementation of the code block segmentation module 1003 in the encoder.

[0306] Figure 11 shows a schematic diagram of an RM decoder chip architecture 1100 according to some embodiments of the present disclosure.

[0307] As shown in the figure, the RM decoder chip architecture 1100 includes a computing unit 1101, a storage unit 1108, and a control unit 1109. The computing unit 1101 is responsible for processing the encoder's logical operations and includes the following modules: descrambling and segmentation 1102, rate matching descrambling 1103, HARQ merging 1104, TB CRC 1105, CB CRC 1106, and RM decoding 1107. The storage unit 1108 is responsible for storing data during the calculation process, and the control unit 1109 is responsible for scheduling and controlling the computing unit and storage resources. The embodiments of this disclosure mainly relate to the implementation of the descrambling and segmentation module 1102 in the decoder.

[0308] Embodiments of this disclosure also provide a chip, which may include an input interface, an output interface, and processing circuitry. In embodiments of this disclosure, the input and output interfaces can be used to complete the interaction of signaling or data, while the processing circuitry can be used to generate and process the signaling or data information.

[0309] Embodiments of this disclosure also provide a chip system including a processor for supporting a computing device to implement the functions involved in any of the foregoing embodiments. In one possible design, the chip system may further include a memory for storing necessary program instructions and data, which, when executed by the processor, cause the device on which the chip system is mounted to implement the methods involved in any of the foregoing embodiments. Exemplarily, the chip system may consist of one or more chips, or may include chips and other discrete devices.

[0310] Embodiments of this disclosure also provide a processor for coupling with a memory storing instructions that, when executed by the processor, cause the processor to perform the methods and functions involved in any of the above embodiments.

[0311] Embodiments of this disclosure also provide a computer program or computer program product containing instructions that, when run on a computer, cause the computer to perform the methods and functions involved in any of the embodiments described above.

[0312] Embodiments of this disclosure also provide a computer-readable storage medium having computer instructions stored thereon, which, when executed by a processor, cause the processor to perform the methods and functions involved in any of the above embodiments.

[0313] Generally, the various embodiments of this application can be implemented in hardware or dedicated circuitry, software, logic, or any combination thereof. Some aspects can be implemented in hardware, while others can be implemented in firmware or software, which can be executed by a controller, microprocessor, or other computing device. Although various aspects of the embodiments of this disclosure are shown and described as block diagrams, flowcharts, or represented using some other illustration, it should be understood that the blocks, apparatuses, systems, techniques, or methods described herein can be implemented as, as non-limiting examples, in hardware, software, firmware, dedicated circuitry or logic, general-purpose hardware or controllers or other computing devices, or some combination thereof.

[0314] This disclosure also provides at least one computer program product tangibly stored on a non-transitory computer-readable storage medium. The computer program product includes computer-executable instructions, such as instructions included in program modules, which execute in a device on a target real or virtual processor to perform the processes / methods as described above with reference to the accompanying drawings. Typically, program modules include routines, programs, libraries, objects, classes, components, data structures, etc., that perform specific tasks or implement specific abstract data types. In various embodiments, the functionality of program modules can be combined or divided among program modules as needed. The machine-executable instructions for the program modules can execute within a local or distributed device. In a distributed device, the program modules can reside in both local and remote storage media.

[0315] Computer program code used to implement the methods of this disclosure may be written in one or more programming languages. This computer program code may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing apparatus, such that when executed by the computer or other programmable data processing apparatus, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be performed. The program code may be executed entirely on a computer, partially on a computer, as a stand-alone software package, partially on a computer and partially on a remote computer, or entirely on a remote computer or server.

[0316] In the context of this disclosure, computer program code or related data may be carried on any suitable carrier to enable a device, apparatus, or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and so on. Examples of signals may include electrical, optical, radio, sound, or other forms of propagation signals, such as carrier waves, infrared signals, etc.

[0317] A computer-readable medium can be any tangible medium that contains or stores a program for or relating to an instruction execution system, apparatus, or device. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination thereof. More detailed examples of computer-readable storage media include electrical connections with one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical storage devices, magnetic storage devices, or any suitable combination thereof.

[0318] Furthermore, although the operation of the methods of this disclosure is described in a specific order in the accompanying drawings, this does not require or imply that these operations must be performed in that specific order, or that all of the operations shown must be performed to achieve the desired result. Rather, the steps depicted in the flowcharts may be performed in a different order. Additionally or alternatively, certain steps may be omitted, multiple steps may be combined into one step, and / or one step may be broken down into multiple steps. It should also be noted that the features and functions of two or more devices based on this disclosure may be embodied in one device. Conversely, the features and functions of one device described above may be further divided and embodied by multiple devices.

[0319] Various implementations of this disclosure have been described above. These descriptions are exemplary and not exhaustive, nor are they limited to the disclosed implementations. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described implementations. The terminology used herein is chosen to well explain the principles, practical applications, or improvements to technology in the market, or to enable others skilled in the art to understand the various implementations disclosed herein.

Claims

1. An encoding method, characterized in that, The method includes: N code blocks are determined based on the data to be encoded, wherein the sequence length of the data to be encoded exceeds a length threshold; and The N code blocks are respectively encoded based on Reed-Muller RM codes, where N is a positive integer greater than 1.

2. The method according to claim 1, characterized in that, The process of determining N code blocks based on the data to be encoded includes: Determine the first information bit length, where the first information bit length refers to the longest bit length that the N code blocks can support; and The N is determined based on the sequence length of the data to be encoded and the length of the first information bits.

3. The method according to claim 1 or 2, characterized in that, The method further includes: The data to be encoded is segmented based on the N.

4. The method according to any one of claims 1-3, characterized in that, The RM encoding parameters of the N code blocks include a first encoding parameter and a second encoding parameter.

5. The method according to claim 4, characterized in that, The method further includes: The length of the first information bit corresponding to the first encoding parameter and the second encoding parameter is determined based on the first encoding parameter and the second encoding parameter.

6. The method according to claim 5, characterized in that, Determining the length of the first information bits corresponding to the first encoding parameter and the second encoding parameter includes: The length of the first information bit corresponding to the first encoding parameter and the second encoding parameter is determined based on the pre-configured mapping relationship.

7. The method according to any one of claims 4-6, characterized in that, The method further includes: The first padding bit length is determined based on the length of the first information bit, the N, and the sequence length of the data to be encoded; and The padded data to be encoded is segmented based on the length of the first padded bits and the sequence length of the data to be encoded.

8. The method according to claim 4, characterized in that, The method further includes: The first average information bit length is determined based on N and the sequence length of the data to be encoded; and At least one of the first encoding parameter and the second encoding parameter is determined based on the first average information bit length.

9. The method according to claim 8, characterized in that, Determining at least one of the first encoding parameter and the second encoding parameter based on the first average information bit length includes: The second information bit length is determined based on the first average information bit length, wherein the second information bit length refers to a candidate value in the set of information bit lengths that is not less than the first average information bit length; and The first encoding parameter and the second encoding parameter corresponding to the second information bit length are determined based on the second information bit length.

10. The method according to any one of claims 8-9, characterized in that, The method further includes: The second padding bit length is determined based on N and the sequence length of the data to be encoded; and The third padding bit length is determined based on the first average information bit length, the second information bit length, and N.

11. The method according to any one of claims 8-10, characterized in that, The method further includes: The padded data to be encoded is divided into multiple data blocks based on the second padding bit length, the third padding bit length, and the sequence length of the data to be encoded.

12. The method according to any one of claims 1-3, characterized in that: The N code blocks include a first part code block and a second part code block. The RM encoding parameters of the first part code block include a third encoding parameter and a fourth encoding parameter. The RM encoding parameters of the second part code block include a fifth encoding parameter and a sixth encoding parameter.

13. A communication device, characterized in that, The communication device includes a corresponding module for implementing the method of any one of claims 1-12.

14. A communication device, characterized in that, The communication device includes: The processor is configured to perform the method according to any one of claims 1-12.

15. The communication device according to claim 14, characterized in that, The communication device further includes: The memory stores computer programs or instructions that are executed by the processor.

16. A computer-readable storage medium having stored thereon a computer-executable computer program or instructions, which, when executed by a device, implement the method of any one of claims 1-12.

17. A computer program product comprising a computer-executable computer program or instructions, wherein the computer-executable computer program or instructions, when executed by a device, implement the method of any one of claims 1-12.

18. A chip comprising at least one processing circuitry, said at least one processing circuitry being configured to execute a computer program or instructions stored in a memory to implement the method of any one of claims 1-12.