Communication method, apparatus and system

By introducing a feedback mechanism to the communication method for joint encoding, the problem of insufficient encoding performance in the prior art is solved, higher spectral efficiency and error correction capabilities are achieved, and packet error rate and coding complexity are reduced.

CN115668828BActive Publication Date: 2025-06-03HUAWEI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202080101546.X
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-08-07
Publication Date
2025-06-03
Estimated Expiration
2040-08-07

AI Technical Summary

Technical Problem

The prior art has problems such as low spectrum efficiency, insufficient error correction capabilities, high packet error rate and high coding complexity in improving network encoding performance.

Method used

By introducing a feedback mechanism in the communication method, the second original data and the coded code rate information are obtained based on the received indication information, and the third original data and the second original data are jointly encoded, and the encoding parameters are optimized to improve spectral efficiency and error correction capabilities.

Benefits of technology

Adaptive adjustment of coding parameters is realized, spectrum efficiency and error correction capabilities are improved, packet error rate and coding complexity are reduced, and data transmission efficiency and quality are improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115668828B_ABST
    Figure CN115668828B_ABST
Patent Text Reader

Abstract

Embodiments of the present application provide a communication method, apparatus, and system. The method includes: encoding first original data to obtain first encoded data; sending the first encoded data to a first communication device; receiving indication information from the first communication device; obtaining second original data and encoding rate information according to the indication information, where the second original data includes part or all of the first original data; jointly encoding third original data and the second original data according to the encoding rate information to obtain second encoded data, where the third original data does not include the first original data; and sending the second encoded data to the first communication device. In this solution, on the one hand, it is based on a feedback mechanism to guide the next encoding, which can adaptively adjust relevant encoding parameters, improve the encoding performance, data transmission efficiency, and quality. On the other hand, it realizes the joint encoding of new and old data, improving the success rate of the first communication device on the receiving side to correctly decode the original data.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Embodiments of the present application relate to the field of communication technologies, and in particular, to communication methods, devices, and systems. Background Art

[0002] Network coding can maximize the throughput of the entire network by merging different information flows at routing nodes and transmitting them, that is, the intermediate network nodes perform random coefficient coding on the received data packets and then transmit them, which can effectively improve the transmission performance of wireless communication systems.

[0003] How to further improve coding performance, such as improving spectral efficiency and error correction ability, reducing packet error rate and coding / decoding complexity, etc., needs to be solved currently. Summary of the Invention

[0004] Embodiments of the present application provide communication methods, devices, and systems to improve coding performance, thereby improving data transmission efficiency and quality.

[0005] In a first aspect, an embodiment of the present application provides a communication method, which can be executed by a terminal or a network device, or by a component of a terminal or a network device (such as a processor, a chip, or a chip system, etc.). The method includes: encoding first original data to obtain first encoded data; sending the first encoded data to a first communication device; receiving indication information from the first communication device; obtaining second original data and coding rate information according to the indication information, where the second original data includes part or all of the first original data; jointly encoding third original data and the second original data according to the coding rate information to obtain second encoded data, where the third original data does not include the first original data; and sending the second encoded data to the first communication device.

[0006] Based on this solution, after sending the first encoded data to the first communication device, indication information can be received, and then based on the indication information, the second original data in the original data that has participated in coding and the coding rate information of the current coding can be obtained. Furthermore, according to the coding rate information, the third original data that has not participated in coding and the second original data that has participated in coding are jointly encoded to obtain second encoded data, and the second encoded data is sent to the first communication device. On the one hand, this solution can adaptively adjust relevant coding parameters based on the feedback mechanism to guide the next coding, thereby improving spectral efficiency, error correction ability, reducing packet error rate and coding / decoding complexity, so as to improve coding performance and further improve data transmission efficiency and quality. On the other hand, it realizes the joint coding of new and old data, which can improve the success rate of the first communication device on the receiving side to correctly decode the original data.

[0007] In a possible implementation method, the second original data includes one or more first original data packets in the first original data, and the indication information indicates the number of the first original data packets; obtaining the second original data according to the indication information includes: obtaining the second original data according to the number of the first original data packets.

[0008] In this solution, the indication information indicates the number of the first original data packets, facilitating the obtaining of the second original data from the first original data that has already participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0009] The first original data packets in the embodiments of the present application are one or more original data packets included in the first original data. The number of the first original data packets can be understood as the number of original data packets in the first original data that are related to the second original data. Or it can be understood that the number of the first original data packets is the number of original data packets in the first original data used to determine the second original data.

[0010] The definition of the first original data packets here applies to the whole text, that is, the meaning of the first original data packets appearing in the whole text can refer to the above description.

[0011] In a possible implementation method, the second original data includes one or more first original data blocks in the first original data, and the indication information indicates the number of the first original data blocks; obtaining the second original data according to the indication information includes: obtaining the second original data according to the number of the first original data blocks.

[0012] In this solution, the indication information indicates the number of the first original data blocks, facilitating the obtaining of the second original data from the first original data that has already participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0013] In a possible implementation method, the indication information indicates the rank corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; obtaining the second original data according to the indication information includes: determining the number of the first original data packets according to the rank corresponding to the first encoded data; obtaining the second original data according to the number of the first original data packets.

[0014] In this solution, the rank corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device decoding the first encoded data. Thus, by indicating the rank corresponding to the first encoded data through the indication information, it is convenient to determine the number of the first original data packets, and further convenient to obtain the second original data from the first original data that has already participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0015] In the embodiments of the present application, the number of equivalent correct original data packets can be understood as the sum of the number of actually decoded correct original data packets and the number of valid (linearly independent) redundant data packets, or can be understood as the number of valid encoded data packets correctly received. There is a corresponding relationship between the number of equivalent correct original data packets and the rank corresponding to the first encoded data. A unified description is made here and will not be repeated later.

[0016] In a possible implementation method, the indication information indicates the rank corresponding to the first encoded data, and the second original data includes one or more first original data blocks in the first original data; obtaining the second original data according to the indication information includes: determining the number of the first original data blocks according to the rank corresponding to the first encoded data; and obtaining the second original data according to the number of the first original data blocks.

[0017] In this solution, the rank corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device decoding the first encoded data. Therefore, by indicating the rank corresponding to the first encoded data through the indication information, it is convenient to determine the number of the first original data blocks, and further convenient to obtain the second original data from the first original data that has participated in encoding, enabling the implementation of joint encoding, and thus enabling the improvement of the encoding ability.

[0018] The first original data block in the embodiments of the present application is one or more original data blocks included in the first original data. The number of the first original data blocks can be understood as the number of original data blocks in the first original data that are related to the second original data. Or it can be understood that the number of the first original data blocks is the number of original data blocks in the first original data used to determine the second original data.

[0019] The definition of the first original data block here applies to the whole text, that is, the meaning of the first original data block appearing in the whole text can refer to the above description.

[0020] In a possible implementation method, the indication information indicates the reception situation of the system data packets and the reception situation of the redundant data packets corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; obtaining the second original data according to the indication information includes: determining the number of the first original data packets according to the reception situation of the system data packets and the reception situation of the redundant data packets corresponding to the first encoded data; and obtaining the second original data according to the number of the first original data packets.

[0021] For this solution, the reception status of the system data packets and the redundant data packets corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device through decoding the first encoded data. Therefore, by using indication information to indicate the reception status of the system data packets and the redundant data packets corresponding to the first encoded data, it is convenient to determine the number of the first original data packets, and further convenient to obtain the second original data from the first original data that has already participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0022] In a possible implementation method, the indication information indicates the reception status of the system data packets and the redundant data packets corresponding to the first encoded data; the second original data includes one or more first original data blocks in the first original data; obtaining the second original data according to the indication information includes: determining the number of the first original data blocks according to the reception status of the system data packets and the redundant data packets corresponding to the first encoded data; and obtaining the second original data according to the number of the first original data blocks.

[0023] For this solution, the reception status of the system data packets and the redundant data packets corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device through decoding the first encoded data. Therefore, by using indication information to indicate the reception status of the system data packets and the redundant data packets corresponding to the first encoded data, it is convenient to determine the number of the first original data blocks, and further convenient to obtain the second original data from the first original data that has already participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0024] In a possible implementation method, the indication information indicates the first associated depth of encoding; the second original data includes one or more first original data packets in the first original data; obtaining the second original data according to the indication information includes: determining the number of the first original data packets according to the first associated depth of encoding; and obtaining the second original data according to the number of the first original data packets.

[0025] For this solution, the first associated depth of encoding is used to represent the number of original data packets that have already participated in encoding and need to be obtained for the next encoding, and the obtained original data packets will participate in the next encoding. Therefore, by using indication information to indicate the first associated depth of encoding, it is convenient to determine the number of the first original data packets, and further convenient to obtain the second original data from the first original data that has already participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0026] In a possible implementation method, the indication information indicates the first associated depth of encoding; the second original data includes one or more first original data blocks in the first original data; obtaining the second original data according to the indication information includes: determining the number of the first original data blocks according to the first associated depth; and obtaining the second original data according to the number of the first original data blocks.

[0027] In this solution, the first associated depth of encoding is used to represent the number of original data blocks that have participated in encoding and need to be obtained for the next encoding, and the obtained original data blocks will participate in the next encoding. Therefore, by indicating the first associated depth of encoding through the indication information, it is convenient to determine the number of the first original data blocks, and further convenient to obtain the second original data from the first original data that has participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0028] In a possible implementation method, the encoding code rate information indicates the number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, or the encoding code rate corresponding to the second encoded data.

[0029] Based on this solution, it is convenient to determine the encoding code rate information, optimize the encoding parameters and performance, and improve the reliability and accuracy of data transmission.

[0030] In a possible implementation method, the indication information indicates the rank corresponding to the first encoded data; obtaining the encoding code rate information according to the indication information includes: determining the number of redundant data packets corresponding to the second encoded data according to the rank corresponding to the first encoded data; and determining the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0031] Based on this solution, the rank corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device through decoding the first encoded data. By indicating the rank corresponding to the first encoded data through the indication information, it is convenient to determine the encoding code rate, optimize the encoding parameters and performance, and improve the reliability and accuracy of data transmission.

[0032] In a possible implementation method, obtaining the encoding code rate information according to the indication information includes: determining the number of redundant data packets corresponding to the second encoded data according to the rank corresponding to the first encoded data; and determining the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0033] Based on this solution, it is convenient to determine the encoding code rate, optimize the encoding parameters and performance, and improve the reliability and accuracy of data transmission.

[0034] In a possible implementation method, the indication information indicates the reception status of system data packets and redundant data packets corresponding to the first encoded data; obtaining encoding code rate information according to the indication information includes: determining the number of redundant data packets corresponding to the second encoded data according to the reception status of system data packets and redundant data packets corresponding to the first encoded data; determining the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0035] Based on this solution, the reception status of system data packets and redundant data packets corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device decoding the first encoded data. Therefore, by indicating the reception status of system data packets and redundant data packets corresponding to the first encoded data through the indication information, it is convenient to determine the encoding code rate, optimize the encoding parameters and performance, and improve the reliability and accuracy of data transmission.

[0036] In a possible implementation method, obtaining encoding code rate information according to the indication information includes: determining the number of redundant data packets corresponding to the second encoded data according to the reception status of system data packets and redundant data packets corresponding to the first encoded data; determining the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0037] Based on this solution, it is convenient to determine the encoding code rate, optimize the encoding parameters and performance, and improve the reliability and accuracy of data transmission.

[0038] In a possible implementation method, the indication information indicates one or more of the following: the number of original data packets corresponding to the third original data; the number of original data blocks corresponding to the third original data; or the available window length or used window length of the decoding window.

[0039] In a possible implementation method, the second encoded data includes header information, and the header information indicates the second association depth.

[0040] Based on this solution, carrying the second association depth through the header information is convenient for the first communication device to correctly decode and can improve the decoding success rate.

[0041] In a possible implementation method, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second encoded data; or the encoding coefficient corresponding to the second encoded data.

[0042] In a possible implementation method, the encoding coefficient is a local codebook coefficient or a global codebook coefficient.

[0043] Based on this solution, the number of original data packets corresponding to the third original data, the identifier of the original data block corresponding to the second encoded data, or one or more of the encoding coefficients corresponding to the second encoded data are carried in the header information. The first communication device can decode the second encoded data according to the above information carried in the header information, which can improve the decoding success rate.

[0044] In a possible implementation method, receiving indication information from the first communication device includes: receiving a feedback message from the first communication device, where the feedback message includes header information and data information, and the data information includes the indication information.

[0045] In a possible implementation method, the feedback message is carried in downlink control information DCI or uplink control information UCI.

[0046] In a possible implementation method, the header information is PDCP layer header information or MAC layer header information, and the header information carries one or more of a header indication field, a data block number, or a process number. Among them, the header indication field is used to indicate that the feedback message carries indication information of network coding, the data block number is used to indicate the encoded data block corresponding to the indication information, and the process number is used to indicate the sending-end process number corresponding to the indication information.

[0047] In a possible implementation method, the header information is RLC layer header information, and the header information carries one or more of control information, a data block number, or a process number. Among them, the control information is used to indicate that the feedback message carries indication information of network coding, the data block number is used to indicate the encoded data block corresponding to the indication information, and the process number is used to indicate the sending-end process number corresponding to the indication information.

[0048] In a second aspect, an embodiment of the present application provides a communication method. This method can be executed by a terminal or a network device, or can be executed by components of a terminal or a network device (such as a processor, a chip, or a chip system, etc.), and includes: receiving first encoded data corresponding to first original data from a second communication device; sending indication information to the second communication device, where the indication information is used to obtain second original data and encoding rate information, and the second original data includes part or all of the first original data; receiving second encoded data corresponding to the encoding rate information, third original data, and the second original data from the second communication device, where the third original data does not include the first original data.

[0049] Based on this solution, after receiving the first encoded data from the second communication device, the first communication device sends indication information to the second communication device. The second communication device can obtain the second original data from the first original data that has participated in encoding according to the indication information, and obtain the encoding code rate information of the current encoding according to the indication information. Furthermore, the second communication device performs joint encoding on the third original data that has not participated in encoding and the second original data that has participated in encoding according to the encoding code rate information to obtain the second encoded data, and then sends the second encoded data. On the one hand, this solution can adaptively adjust relevant encoding parameters based on the feedback mechanism to guide the next encoding, thereby improving the spectrum efficiency, error correction ability, reducing the packet error rate and the complexity of encoding and decoding, so as to improve the encoding performance, and further improve the data transmission efficiency and quality. On the other hand, the joint encoding of new and old data is realized, which can improve the success rate of the first communication device on the receiving side to correctly decode the original data.

[0050] In a possible implementation method, the second original data includes one or more first original data packets in the first original data; the indication information indicates any one of the following: the number of the first original data packets, the rank corresponding to the first encoded data, the reception situation of the system data packets and the redundancy data packets corresponding to the first encoded data, or the first associated depth of encoding.

[0051] In this solution, the rank corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device by decoding the first encoded data. The reception situation of the system data packets and the redundancy data packets corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device by decoding the first encoded data. The first associated depth of encoding is used to represent the number of original data packets or original data blocks that have participated in encoding and need to be obtained during the next encoding. By indicating the above information through the indication information, it is convenient to obtain the second original data from the first original data that has participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0052] In a possible implementation method, the second original data includes one or more first original data blocks in the first original data; the indication information indicates any one of the following: the number of the first original data blocks, the rank corresponding to the first encoded data, the reception situation of the system data packets and the redundancy data packets corresponding to the first encoded data, or the first associated depth of encoding.

[0053] In this solution, the rank corresponding to the first encoded data reflects the number of equivalent correct original data packets obtained by the first communication device through decoding the first encoded data. The reception conditions of the system data packets and redundant data packets corresponding to the first encoded data reflect the number of equivalent correct original data packets obtained by the first communication device through decoding the first encoded data. The first associated depth of encoding is used to indicate the number of original data packets or original data blocks that have participated in encoding and need to be obtained for the next encoding. By using indication information to indicate the above information, it is convenient to obtain the second original data from the first original data that has participated in encoding, enabling the implementation of joint encoding of new and old data, and thus enabling the improvement of the encoding ability.

[0054] In a possible implementation method, the indication information indicates one or more of the following: the number of original data packets corresponding to the third original data; the number of original data blocks corresponding to the third original data; or the available window length or the used window length of the decoding window.

[0055] In a possible implementation method, the encoding code rate information indicates any one of the following: the number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, the encoding code rate corresponding to the second encoded data, or the reception conditions of the system data packets and redundant data packets corresponding to the first encoded data.

[0056] Based on this solution, it is convenient to determine the encoding code rate information, thereby enabling redundant encoding and improving the correctness of data transmission.

[0057] In a possible implementation method, the second encoded data includes header information, and the header information indicates the second associated depth.

[0058] Based on this solution, by carrying the second associated depth in the header information, it is convenient for the first communication device to perform correct decoding and can improve the decoding success rate.

[0059] In a possible implementation method, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second encoded data; or the encoding coefficient corresponding to the second encoded data.

[0060] In a possible implementation method, the encoding coefficient is a local codebook coefficient or a global codebook coefficient.

[0061] Based on this solution, by carrying one or more of the number of original data packets corresponding to the third original data, the identifier of the original data block corresponding to the second encoded data, or the encoding coefficient corresponding to the second encoded data in the header information, the first communication device can perform decoding on the second encoded data according to the above information carried in the header information, and can improve the decoding success rate.

[0062] In a possible implementation method, sending indication information to the second communication device includes: sending a feedback message to the second communication device, where the feedback message includes header information and data information, and the data information includes the indication information.

[0063] In a possible implementation method, the feedback message is carried in downlink control information (DCI) or uplink control information (UCI).

[0064] In a possible implementation method, the header information is PDCP layer header information or MAC layer header information, and the header information carries one or more of a header indication field, a data block number, or a process number. Among them, the header indication field is used to indicate that the feedback message carries indication information of network coding, the data block number is used to indicate the coded data block corresponding to the indication information, and the process number is used to indicate the sender process number corresponding to the indication information.

[0065] In a possible implementation method, the header information is RLC layer header information, and the header information carries one or more of control information, a data block number, or a process number. Among them, the control information is used to indicate that the feedback message carries indication information of network coding, the data block number is used to indicate the coded data block corresponding to the indication information, and the process number is used to indicate the sender process number corresponding to the indication information.

[0066] In a third aspect, an embodiment of the present application provides a communication device, which may be the second communication device or a chip for the second communication device. The device has the functions of implementing the first aspect or various possible implementation methods based on the first aspect. These functions can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions.

[0067] In a fourth aspect, an embodiment of the present application provides a communication device, which may be the first communication device or a chip for the first communication device. The device has the functions of implementing the second aspect or various possible implementation methods based on the second aspect. These functions can be implemented by hardware or by hardware executing corresponding software. The hardware or software includes one or more modules corresponding to the above functions.

[0068] In a fifth aspect, an embodiment of the present application provides a communication device, including a processor. The processor is coupled to a memory, and the memory is used to store programs or instructions. When the programs or instructions are executed by the processor, the device implements the methods in the first aspect, the second aspect, various possible implementation methods based on the first aspect, or various possible implementation methods based on the second aspect. The memory may be inside the device or outside the device. And the processor includes one or more.

[0069] Sixth aspect, an embodiment of the present application provides a communication device, including units or means for performing each step of the above-mentioned first aspect, or second aspect, or each possible implementation method based on the first aspect, or each possible implementation method based on the second aspect.

[0070] Seventh aspect, an embodiment of the present application provides a communication device, including a processor and an interface circuit. The processor is used to control the interface circuit to communicate with other devices, and perform the above-mentioned first aspect, or second aspect, or each possible implementation method based on the first aspect, or each possible implementation method based on the second aspect. The processor includes one or more.

[0071] Eighth aspect, an embodiment of the present application further provides a computer-readable storage medium, including instructions, which when running on a computer, cause the computer to execute the above-mentioned first aspect, or second aspect, or each possible implementation method based on the first aspect, or each possible implementation method based on the second aspect.

[0072] Ninth aspect, an embodiment of the present application further provides a computer program product, which when running on a computer, causes the computer to execute the above-mentioned first aspect, or second aspect, or each possible implementation method based on the first aspect, or each possible implementation method based on the second aspect.

[0073] Tenth aspect, an embodiment of the present application further provides a chip system, including a processor. The processor is coupled to a memory. The memory is used to store programs or instructions. When the programs or instructions are executed by the processor, the chip system implements the methods in the above-mentioned first aspect, second aspect, each possible implementation method based on the first aspect, or each possible implementation method based on the second aspect. The memory may be located inside the chip system or outside the chip system. And the processor includes one or more.

[0074] Eleventh aspect, an embodiment of the present application further provides a communication system, including a second communication device for performing the above-mentioned first aspect or any possible implementation method based on the first aspect, and a first communication device for performing the above-mentioned second aspect or any possible implementation method based on the second aspect. BRIEF DESCRIPTION OF THE DRAWINGS

[0075] Figure 1 It is a schematic diagram of random linear network coding;

[0076] Figure 2 It is a schematic diagram of convolutional network coding;

[0077] Figure 3 It is a schematic diagram of the scenario applicable to the embodiment of the present application;

[0078] Figure 4Schematic diagram of a communication method provided by an embodiment of this application;

[0079] Figure 5(a) is a schematic diagram of a convolutional network coding scheme based on feedback;

[0080] Figure 5(b) is a schematic diagram of a single-process stop-and-wait feedback scheme;

[0081] Figure 6 Schematic diagram of a single-process filling feedback scheme;

[0082] Figure 7 Schematic diagram of a feedback scheme based on multiple processes;

[0083] Figures 8 - 9 Two example diagrams of interleaved coded data blocks;

[0084] Figures 10 - 11 Two schematic diagrams of a multi-process encoder;

[0085] Figures 12 - 13 Two schematic diagrams of a multi-process decoder;

[0086] Figure 14 Schematic diagram of the format of feedback information;

[0087] Figure 15 Schematic diagram of the PDCP layer bearer of a feedback message;

[0088] Figure 16 Schematic diagram of the RLC layer bearer of a feedback message;

[0089] Figure 17 Schematic diagram of the MAC layer bearer of a feedback message;

[0090] Figure 18 Schematic diagram of the packet header information field;

[0091] Figure 19 Schematic diagram of a local codebook;

[0092] Figure 20 Schematic diagram of local codebook selection;

[0093] Figure 21 Schematic diagram of a local codebook generation matrix;

[0094] Figure 22 Schematic diagram of a global codebook;

[0095] Figure 23 Schematic diagram of global codebook selection;

[0096] Figure 24 Schematic diagram of the process flow of a coding scheme based on feedback;

[0097] Figures 25 - 26Two schematic diagrams of a feedback-based adaptive non-systematic code scheme;

[0098] Figure 27 Schematic diagram of a feedback-based average redundancy non-systematic code scheme;

[0099] Figures 28 - 30 Three schematic diagrams of a feedback-based systematic code scheme;

[0100] Figure 31 Schematic diagram of a communication device provided by an embodiment of the present application;

[0101] Figure 32 Another schematic diagram of a communication device provided by an embodiment of the present application;

[0102] Figure 33 Another schematic diagram of a communication device provided by an embodiment of the present application;

[0103] Figure 34 Schematic diagram of the structure of a terminal provided by an embodiment of the present application. Detailed implementation manners

[0104] In the embodiments of the present application, the data block before encoding may be referred to as the original data block, the original data packet, or the original block, etc., and the data block after encoding may be referred to as the encoded data block or the encoded block, etc. An encoded data block contains one or more encoded data packets, where the encoded data packet may also be referred to as the encoded data packet or the encoded packet, etc. In the following description of the present application, different names of the same concept will be used in different places, and they have the same meaning and will not be elaborated.

[0105] In the embodiments of the present application, "next encoding" refers to the nearest upcoming encoding, and the corresponding to "next encoding" is "last encoding". "Last encoding" refers to the nearest completed encoding. In the implementation of the present application, after the sender completes the last encoding and sends the encoded data to the receiver, it receives indication information (also referred to as feedback information) from the receiver, and then determines the encoding parameters of the next encoding, the original data participating in the encoding, etc. based on this indication information, and performs the next encoding based on this content to obtain the encoded data and send it to the receiver. In the embodiments of the present application, "next encoding" may also be referred to as "current encoding".

[0106] Network coding can be achieved by merging different information flows at the routing node and then transmitting, that is, the intermediate node in the network encodes the received data packets with random coefficients and then transmits them, which can maximize the throughput of the entire network and effectively improve the transmission performance of the wireless communication system.

[0107] In a communication system, the feedback retransmission mechanism can achieve effective error control. For example, the hybrid automatic repeat request (HARQ) retransmission mechanism at the medium access control (MAC) layer and the automatic repeat request (ARQ) retransmission mechanism at the radio link control (RLC) layer jointly ensure the reliability of transmission. With the evolution and development of communication technologies, new radio (NR) has put forward higher requirements for system reliability, efficiency, etc. The feedback retransmission mechanism faces many problems. For example, in multicast or broadcast scenarios, there are problems such as frequent feedback overhead and performance loss, and serious performance loss in scenarios of burst continuous errors, dual-connection or multi-connection congestion, etc. As a forward error correction technology, network coding technology encodes the original data packets (also called pre-coded data packets) and adds redundancy to combat problems such as packet loss or performance loss in wireless transmission, reducing the feedback overhead. Network coding schemes include random linear network coding (RLNC), convolutional network coding (CNC), etc.

[0108] The following introduces and explains RLNC and CNC respectively.

[0109] I. RLNC

[0110] The RLNC technology takes data blocks (each data block includes one or more data packets) as units, and encodes the original data packets by constructing an encoding coefficient matrix to obtain a set of encoded data packets. Usually, the coefficients in the encoding matrix are randomly selected in a finite field, such as the Galois field (GF).

[0111] As Figure 1 shown, it is a schematic diagram of random linear network coding. The coefficients in the encoding matrix are randomly selected in the Galois field. The size of the encoding matrix is (N + R) * N, that is, the number of rows is N + R and the number of columns is N. By performing network coding on the original data block containing N original data packets, an encoded data block containing N + R encoded data packets is obtained, and the corresponding code rate is expressed as N / (N + R). In the RLNC scheme, there is no association between different encoded data blocks, that is, the encoding operation is performed on independent original data blocks, and the redundancy (code rate) of different encoded data blocks can be the same or different. The generated N + R encoded data packets are sent to the receiving end. As long as the receiving end receives any N linearly independent encoded data packets among the N + R encoded data packets, it can correctly decode and recover the N original data packets.

[0112] Due to factors such as interference and noise, when the number of linearly independent correct encoded data packets received by the receiving end is less than N, the receiving end cannot perform decoding. The receiving end can feedback to the sending end the number of encoded data packets still required for correct decoding, and the sending end sends the corresponding number of encoded data packets according to the feedback content. This encoded data packet has no relation with the encoding of the next data block. Since linear dependence of encoding coefficients needs to be avoided in the RLNC scheme, a relatively large Galois field value is usually selected and the number of data packets in the data block is relatively large, but this will increase the computational complexity and overhead. In addition, since there is no association between data blocks, to a certain extent, it limits the ability of network coding to combat channel burst errors. Considering the feedback, a relatively large number of packets in the data block will increase the communication delay.

[0113] II. CNC

[0114] As Figure 2 shown, it is a schematic diagram of convolutional network coding. The encoding coefficient matrix of convolutional network coding includes μ + 1 convolutional coding kernel matrices, namely G (0) ~G (μ) . Multiple original data blocks are subjected to convolutional network coding to generate encoded data blocks. Among them, the i-th convolutional coding kernel (which can be simply referred to as the convolutional kernel) can be expressed as That is, G (i) is a matrix, the upper half of which is expressed as G (i,0) , and the lower half is expressed as G (i,1) . When G (i,0) = 0 or G (i,1) = 0, it means that some original data packets of the i-th original data block participate in the network coding of the current original data block. In other words, the number of original data packets of the i-th original data block participating in the encoding of the current original data block is less than the number of rows of G (i) . Among them, μ is an integer greater than or equal to 0.

[0115] In CNC, when a new original data block is added, the currently participating original data packets include one or more original data packets (which can also be called new original data packets, new data packets or new packets, etc.) in the newly added original data block (which can also be called the new original data block, the new data block or the new block), and optionally, can also include one or more original data packets (which can also be called old original data packets, old data packets or old packets, etc.) in the original data blocks before the newly added original data block (which can also be called the old original data block, the old data block or the old block).

[0116] From Figure 2It can be seen that the encoded data block c1 is obtained by encoding the original data block b1, that is, all the data packets in b1, which are all new packets, are the original data packets participating in the current encoding. The encoded data block c2 is obtained by encoding the original data blocks b1 and b2, that is, the original data packets participating in the current encoding include all the data packets in b2 (all new packets) and all the original data packets in b1 (all old packets). The encoded data block c3 is obtained by encoding the original data blocks b1, b2, and b3, that is, the original data packets participating in the current encoding include all the data packets in b3 (all new packets), all the original data packets in b2 (all old packets), and all the original data packets in b1 (all old packets). And so on, the encoded data block is obtained by encoding at most μ + 1 original data blocks, where the μ + 1 original data blocks include μ old original data blocks (which can be simply referred to as old blocks) and 1 new original data block (which can be simply referred to as new block).

[0117] In convolutional network coding, the number of encoded data packets in the encoded data block can be smaller than that in RLNC. The convolutional form ensures that the current original data block is jointly encoded with some or all of the original data packets in several previous original data blocks, which can better resist burst consecutive errors and improve performance such as throughput.

[0118] Generally, convolutional network coding always uses μ + 1 convolutional coding kernels, that is, the correlation depth is μ + 1, and the sizes of different convolutional coding kernels are the same, and there is no situation where the coefficients of a certain row or several rows in the convolutional coding kernel are 0. At the same time, the number of corresponding encoded data packets cannot be flexibly adjusted. The correlation depth is used to indicate the number of original data packets or original data blocks that have participated in the encoding and need to be obtained for the next encoding, and the obtained original data packets or original data blocks will participate in the next encoding.

[0119] For the above convolutional network coding, although it can better overcome the packet loss problem caused by continuous burst errors in the channel, the performance of convolutional network coding is related to factors such as the correlation depth, the design of the convolutional coding kernel, and the number of redundant packets (code rate). Since convolutional network coding cannot adaptively adjust relevant parameters, it will lead to a decline in performance such as spectral efficiency, error correction ability, packet error rate, and encoding / decoding complexity.

[0120] To solve the above problems, the embodiments of the present application provide a feedback-based network coding method and apparatus. The method mainly involves:

[0121] First, design single-process and multi-process feedback-based network coding schemes to solve the performance degradation problem caused by the delay brought by feedback, and give the structural designs of the sender encoder and the receiver decoder.

[0122] Second, in the feedback-based network coding scheme, the receiving end decodes the received coded data, forms feedback information according to the decoding situation, and transmits it to the sending end. This application designs various forms of feedback information and different bearing methods of feedback information.

[0123] Third, the sending end obtains the feedback information from the receiving end and optimizes the parameters of the next coding according to the feedback information, including but not limited to: association depth, convolutional coding kernel, and the number of coded data packets, etc. On this basis, a network coding codebook and an indication method of the codebook or coefficients are designed. The sending end performs network coding to generate coded data packets, and carries the corresponding parameters or indexes of the parameters in the packet header of the coded data packets to ensure that the receiving end can perform correct processing and decoding operations according to the coded data packets.

[0124] Fourth, a complete feedback-based non-systematic code and systematic code network coding scheme is provided, such as code type design, specific parameter design and matching for different network coding schemes, and the system performance of network coding is optimized.

[0125] The embodiments of this application are applicable to various mobile communication scenarios for protocol frameworks such as Long Term Evolution (LTE) or NR, such as between network devices and terminal devices, or point-to-point transmission between terminal devices, or multi-hop / relay transmission between network devices and terminal devices, or dual connectivity (DC) or multi-connection transmission between multiple network devices and terminal devices, etc.

[0126] The terminal device involved in the embodiments of this application can also be referred to as a terminal. It can be a device with wireless transceiver functions, which can be deployed on land, including indoor or outdoor, handheld or vehicle-mounted; it can also be deployed on water (such as a ship, etc.); it can also be deployed in the air (such as an airplane, a balloon, a satellite, etc.). The terminal device can be a user equipment (UE), where the UE includes a handheld device, a vehicle-mounted device, a wearable device, or a computing device with wireless communication functions. Exemplarily, the UE can be a mobile phone, a tablet computer, or a computer with wireless transceiver functions. The terminal device can also be a virtual reality (VR) terminal device, an augmented reality (AR) terminal device, a wireless terminal in industrial control, a wireless terminal in unmanned driving, a wireless terminal in remote medical treatment, a wireless terminal in a smart grid, a wireless terminal in a smart city, a wireless terminal in a smart home, and so on. In the embodiments of this application, the device for implementing the functions of the terminal can be the terminal; it can also be a device capable of supporting the terminal to implement this function, such as a chip system, and this device can be installed in the terminal. In the embodiments of this application, the chip system can be composed of chips or can also include chips and other discrete devices.

[0127] The network device involved in the embodiments of this application includes an access network device, such as a base station (BS). The base station can be a device deployed in a radio access network that can communicate wirelessly with a terminal. Among them, the base station may have various forms, such as a macro base station, a micro base station, a relay station, and an access point, etc. Exemplarily, the base station involved in the embodiments of this application can be a base station in 5G or an evolved base station (eNB) in LTE. Among them, the base station in 5G can also be referred to as a transmission reception point (TRP) or a 5G base station (next-generation nodeB, gNB). In the embodiments of this application, the device for implementing the functions of the network device can be the network device; it can also be a device capable of supporting the network device to implement this function, such as a chip system, and this device can be installed in the network device.

[0128] The technical solution provided by the embodiments of this application can be applied to wireless communication between communication devices. The wireless communication between communication devices can include: wireless communication between a network device and a terminal device, wireless communication between network devices, and wireless communication between terminals. Among them, in the embodiments of this application, the term "wireless communication" can also be abbreviated as "communication", and the term "communication" can also be described as "data transmission", "information transmission", or "transmission".

[0129] In the embodiments of the present application, the device acting as the sending party may be referred to as a sending device or a sender, and the device acting as the receiving party may be referred to as a receiving device or a receiver. For example, when a terminal device sends data to a network device, the terminal device is referred to as a sending device or a sender, and the network device is referred to as a receiving device or a receiver. For another example, when a network device sends data to a terminal device, the network device is referred to as a sending device or a sender, and the terminal device is referred to as a receiving device or a receiver. For another example, when a first network device sends data to a second network device, the first network device is referred to as a sending device or a sender, and the second network device is referred to as a receiving device or a receiver. For another example, when a first terminal device sends data to a second terminal device, the first terminal device is referred to as a sending device or a sender, and the second terminal device is referred to as a receiving device or a receiver.

[0130] As Figure 3 shown, it is a schematic diagram of the scenario applicable to the embodiments of the present application. It can be understood that Figure 3 it is only exemplary and does not limit the network architecture applicable to the embodiments of the present application. Moreover, the embodiments of the present application do not limit transmissions such as uplink, downlink, access link, backhaul link, sidelink, etc. From the perspective of service scenarios, the embodiments of the present application are applicable to many scenario solutions, including but not limited to, for example, hierarchical data coding in Extended Reality (XR) services. Among them, XR services include but are not limited to Virtual Reality (VR) services, Augmented Reality (AR) services, and Mixed Reality (MR) services.

[0131] Next, the method provided by the embodiments of the present application will be introduced and described with reference to the accompanying drawings first, and then the specific content of each part involved in the method will be described in combination with specific embodiments (i.e., Embodiment 1 to Embodiment 5).

[0132] As Figure 4 shown, it is a schematic diagram of a communication method provided by the embodiments of the present application. This method can be executed by a first communication device (or a chip of the first communication device) and a second communication device (or a chip of the second communication device). The first communication device can be a terminal or a network device, and the second communication device can be a network device or a terminal. The following takes the first communication device and the second communication device executing this method as an example for description.

[0133] This method includes the following steps:

[0134] Step 401, the second communication device encodes the first original data to obtain first encoded data.

[0135] The second communication device here acts as a sender, which can be referred to as a sending device, a sending-end device, or a sender.

[0136] The second communication device encodes the original data to obtain encoded data and sends the encoded data to the first communication device to improve the reliability of data transmission. The first communication device here acts as a receiver, which can be referred to as a receiving device, a receiving-end device, or a receiver.

[0137] The first original data corresponds to the first encoded data. The first original data can be part or all of all the original data involved in encoding to obtain the first encoded data.

[0138] The first original data can be either an original data block or an original data packet.

[0139] The first encoded data can be either an encoded data block or an encoded data packet.

[0140] Step 402, the second communication device sends the first encoded data to the first communication device. Correspondingly, the first communication device can receive the first encoded data.

[0141] Step 403, the first communication device sends indication information to the second communication device. Correspondingly, the second communication device can receive the indication information.

[0142] Optionally, after receiving the first encoded data, the first communication device generates indication information according to the first encoded data. The indication information is used to feedback the reception situation of the first encoded data and / or to indicate the reference information for the second communication device's next encoding.

[0143] In the embodiments of the present application, the indication information can also be referred to as feedback information.

[0144] Step 404, the second communication device obtains second original data and encoding code rate information according to the indication information.

[0145] The indication information is used to obtain the second original data and the encoding code rate information. That is, when the second communication device receives the indication information, it can obtain the second original data participating in the next encoding according to the indication information. The second original data is part or all of the above first original data, and can also obtain the encoding code rate information for the next encoding according to the indication information.

[0146] Step 405, the second communication device jointly encodes the third original data and the second original data according to the encoding code rate information to obtain second encoded data.

[0147] The second encoded data is the encoded data corresponding to the encoding code rate information, the third original data, and the second original data.

[0148] The third original data is the data that has not participated in encoding and is newly added during the current encoding, and the third original data does not include the first original data. It can be understood that the third original data also does not include the data that has participated in encoding before the first original data.

[0149] That is, the second communication device jointly encodes the newly added data that has not participated in encoding (i.e., the third original data) with some or all of the original data (i.e., the second original data) that has participated in encoding to improve the encoding efficiency.

[0150] Step 406, the second communication device sends the second encoded data to the first communication device. Correspondingly, the first communication device can receive the second encoded data.

[0151] Based on the above implementation solution, after the second communication device sends the first encoded data to the first communication device, it can receive the indication information, and then obtain the second original data in the original data that has participated in encoding and the encoding code rate information of the current encoding based on the indication information. Furthermore, the second original data and the third original data are jointly encoded according to the encoding code rate information to obtain the second encoded data, and the second encoded data is sent to the first communication device. On the one hand, this solution can adaptively adjust relevant encoding parameters based on the feedback mechanism to guide the next encoding, thereby improving the spectrum efficiency, error correction ability, reducing the packet error rate and the complexity of encoding and decoding. On the other hand, it realizes the joint encoding of new and old data, which can improve the success rate of the first communication device on the receiving side to correctly decode the original data.

[0152] Next, different implementation methods for the second communication device to obtain the second original data according to the indication information in step 404 above will be described. Two cases will be described below.

[0153] Case 1, the above second original data includes one or more first original data packets in the first original data.

[0154] In this case, the methods for the second communication device to obtain the second original data according to the indication information include but are not limited to:

[0155] Method 1, when the above indication information indicates the number of first original data packets included in the second original data, the second communication device obtains the second original data according to the number of first original data packets.

[0156] That is, when the indication information indicates the quantity of the first original data packets, the second communication device will obtain the original data packets of this quantity from the first original data that has participated in encoding as the second original data, and the second original data will participate in the next encoding. As an implementation method, the original data packets of this quantity that are closest in time sequence to the third original data in the first original data can be used as the second original data. As another implementation method, the original data packets of this quantity randomly selected from the first original data can be used as the second original data. The embodiments of the present application do not limit the specific implementation method for obtaining the original data packets of this quantity from the first original data as the second original data.

[0157] The first original data packets in the embodiments of the present application are one or more original data packets included in the first original data. The quantity of the first original data packets can be understood as the number of original data packets related to the second original data in the first original data. Or it can be understood that the quantity of the first original data packets is the number of original data packets used to determine the second original data in the first original data. The definition of the first original data packets here applies to the whole text, that is, the meaning of the first original data packets appearing in the whole text can refer to the above description.

[0158] Method 2: When the above indication information indicates the rank of the first encoded data, the second communication device determines the quantity of the first original data packets included in the second original data according to the rank of the first encoded data, and then obtains the second original data according to the quantity of the first original data packets.

[0159] The rank corresponding to the first encoded data refers to the rank of the encoding matrix corresponding to the encoded data received by the first communication device (which can also be simply referred to as the rank corresponding to the encoded data), and is used to reflect the reception situation of the first communication device for the first encoded data. When it is full rank, it indicates that the first communication device has received the first encoded data correctly. When it is not full rank, it indicates that there is a packet loss situation in the first encoded data.

[0160] The second communication device may determine the number of first original data packets included in the second original data according to the rank corresponding to the first encoded data indicated by the indication information. In a possible implementation manner, the number of first original data packets included in the second original data is the difference between the number of original data packets corresponding to the first encoded data and the rank corresponding to the first encoded data indicated by the indication information. For example, if the number of original data packets corresponding to the first encoded data is 4, when the rank corresponding to the first encoded data indicated by the indication information is 3, it is determined that the number of first original data packets included in the second original data is 1. When the rank corresponding to the first encoded data indicated by the indication information is 2, it is determined that the number of first original data packets included in the second original data is 2. When the rank corresponding to the first encoded data indicated by the indication information is 1, it is determined that the number of first original data packets included in the second original data is 3. Then, the second communication device obtains the second original data according to the number of first original data packets, that is, the second communication device obtains that number of original data packets from the first original data that has participated in encoding as the second original data, and this second original data participates in the next encoding.

[0161] Method 3: When the above indication information indicates the reception situation of the system data packets and the redundant data packets corresponding to the first encoded data, the second communication device determines the number of first original data packets included in the second original data according to the reception situation of the system data packets and the redundant data packets corresponding to the first encoded data, and then obtains the second original data according to the number of first original data packets.

[0162] Among them, the system data packet refers to the data packet in the encoded data that is the same as the original data packet, and it can also be considered that its encoding coefficient is 1. The redundant data packet refers to the redundant encoded data packet added to improve the decoding success rate. The reception situation of the system data packet refers to the correct reception number or ratio of the system data packets, or the incorrect reception number or ratio of the system data packets. The reception situation of the redundant data packet refers to the correct reception number or ratio of the redundant data packets, or the incorrect reception number or ratio of the redundant data packets.

[0163] The second communication device may determine the number of first original data packets based on the reception status of system data packets and redundant data packets corresponding to the first encoded data indicated by the indication information. In a possible implementation, the number of first original data packets included in the second original data is the number of original data packets included in the K original data blocks that have participated in encoding and are the closest to the third original data in time sequence, where K is the larger value of the number of erroneously received system data packets corresponding to the first encoded data and the number of erroneously received redundant data packets corresponding to the first encoded data determined according to the indication information. For example, when the reception status of the system data packets corresponding to the first encoded data indicated by the indication information is that the number of erroneously received system data packets is 1 and the reception status of the redundant data packets is that the number of erroneously received redundant data packets is 0, then the number of first original data packets is determined to be the number of original data packets included in the 1 original data block that has participated in encoding and is the closest to the third original data in time sequence. Another example, when the reception status of the system data packets corresponding to the first encoded data indicated by the indication information is that the number of erroneously received system data packets is 1 and the reception status of the redundant data packets is that the number of erroneously received redundant data packets is 1, for the erroneously received system data packet, the number of first original data packets can be determined to be the number of original data packets included in the 1 original data block that has participated in encoding and is the closest to the third original data in time sequence, and this original data block is also the data block corresponding to the system data packet in the first encoded data; for the erroneously received redundant data packet, according to the number of original data blocks corresponding to the redundant data packet (denoted as O), the number of first original data packets is determined to be the number of original data packets included in the O original data blocks that have participated in encoding and are the closest to the third original data in time sequence, and the number of original data blocks corresponding to the redundant data packet can also be understood as the number of original data blocks related to generating this redundant data packet. In addition, for the case where both the system data packet and the redundant data packet are in error / lost, the number of first original data packets determined according to the erroneously received system data packet can be the same as the number of first original data packets determined according to the erroneously received redundant data packet. Then, the second communication device obtains the second original data based on the number of first original data packets, that is, the second communication device obtains the original data packets of this quantity from the first original data that has participated in encoding as the second original data, and this second original data participates in the next encoding.

[0164] Method 4. When the above indication information indicates the first associated depth, the second communication device determines the number of first original data packets included in the second original data according to the first associated depth, and then obtains the second original data according to the number of first original data packets.

[0165] Among them, the association depth is used to indicate the number of original data packets (or original data blocks) that have participated in encoding and are used for the next encoding. Therefore, when the indication information indicates the first association depth of encoding, the second communication device can determine the number of first original data packets according to the first association depth, and then obtain the second original data according to the number of first original data packets. That is, the second communication device obtains the original data packets of this quantity from the first original data that has participated in encoding as the second original data, and this second original data participates in the next encoding.

[0166] In Case 2, the above-mentioned second original data includes one or more first original data blocks in the first original data.

[0167] In this Case 2, the methods for the second communication device to obtain the second original data according to the indication information include but are not limited to:

[0168] Method 1, when the above indication information indicates the number of first original data blocks included in the second original data, the second communication device obtains the second original data according to the number of first original data blocks.

[0169] That is, when the indication information indicates the number of first original data blocks, the second communication device will obtain the original data blocks of this quantity from the first original data that has participated in encoding as the second original data, and this second original data participates in the next encoding. As an implementation method, the original data blocks of this quantity with the closest time sequence to the third original data in the first original data can be used as the second original data. As an implementation method, the original data blocks of this quantity randomly selected from the first original data can be used as the second original data. The embodiments of the present application do not limit the specific implementation method of obtaining the original data blocks of this quantity from the first original data as the second original data.

[0170] The first original data block in the embodiments of the present application is one or more original data packets included in the first original data. The number of the first original data blocks can be understood as the number of original data blocks related to the second original data in the first original data. Or it can be understood that the number of the first original data blocks is the number of original data blocks used to determine the second original data in the first original data. The definition of the first original data block here applies to the whole text, that is, the meaning of the first original data block appearing in the whole text can be referred to the above description.

[0171] Method 2, when the above indication information indicates the rank corresponding to the first encoded data, the second communication device determines the number of first original data blocks included in the second original data according to the rank corresponding to the first encoded data, and then obtains the second original data according to the number of first original data blocks.

[0172] The rank corresponding to the first encoded data refers to the rank of the encoding matrix corresponding to the encoded data received by the first communication device, which is used to reflect the reception situation of the first communication device for the first encoded data. When it is full rank, it indicates that the first communication device correctly receives the first encoded data. When it is not full rank, it indicates that there is a packet loss situation for the first encoded data.

[0173] The second communication device can determine the number of the first original data blocks according to the rank corresponding to the first encoded data indicated by the indication information, and then obtain the second original data according to the number of the first original data blocks. That is, the second communication device obtains that number of original data blocks from the first original data that has participated in encoding as the second original data, and the second original data participates in the next encoding.

[0174] Method 3: When the above indication information indicates the reception situation of the system data packets and the reception situation of the redundant data packets corresponding to the first encoded data, the second communication device determines the number of the first original data blocks included in the second original data according to the reception situation of the system data packets and the reception situation of the redundant data packets corresponding to the first encoded data, and then obtains the second original data according to the number of the first original data blocks.

[0175] Among them, the system data packet refers to the data packet in the encoded data that is the same as the original data packet. The redundant data packet refers to the redundant encoded data packet added to improve the decoding success rate.

[0176] Among them, the reception situation of the system data packet refers to the correct reception number or ratio of the system data packets, or the incorrect reception number or ratio of the system data packets. The reception situation of the redundant data packet refers to the correct reception number or ratio of the redundant data packets, or the incorrect reception number or ratio of the redundant data packets.

[0177] The second communication device may determine the number of first original data blocks according to the reception conditions of the system data packets and the redundant data packets corresponding to the first encoded data indicated by the indication information. In a possible implementation manner, the number of first original data blocks included in the second original data is the larger value between the number of erroneously received system data packets corresponding to the first encoded data determined according to the indication information and the number of erroneously received redundant data packets corresponding to the first encoded data. For example, when the reception condition of the system data packets corresponding to the first encoded data indicated by the indication information is that the number of erroneously received system data packets is 1, and the reception condition of the redundant data packets is that the number of erroneously received redundant data packets is 0, then the number of first original data blocks is determined to be 1 originally encoded data block that is the closest to the third original data in time sequence. For another example, when the reception condition of the system data packets corresponding to the first encoded data indicated by the indication information is that the number of erroneously received system data packets is 1, and the reception condition of the redundant data packets is that the number of erroneously received redundant data packets is 1, for the erroneous system data packet, the number of first original data blocks can be determined to be 1 originally encoded data block that is the closest to the third original data in time sequence, and this original data block is also the data block corresponding to the system data packet in the first encoded data; for the erroneous redundant data packet, according to the number of original data blocks corresponding to the redundant data packet (denoted as O), the number of first original data blocks is determined to be O originally encoded data blocks that are the closest to the third original data in time sequence. The number of original data blocks corresponding to the redundant data packet can also be understood as the number of original data blocks related to generating this redundant data packet. In addition, for the situation where both the system data packet and the redundant data packet are in error / lost, the number of first original data blocks determined according to the erroneous system packet can be the same as the number of first original data blocks determined according to the erroneous redundant data packet. Furthermore, the second communication device obtains the second original data according to the number of first original data blocks, that is, the second communication device obtains that number of original data blocks from the first original data that has participated in encoding as the second original data, and this second original data participates in the next encoding.

[0178] Method 4, when the above indication information indicates the first association depth, then the second communication device determines the number of first original data blocks included in the second original data according to the first association depth, and then obtains the second original data according to the number of first original data blocks.

[0179] Among them, the association depth is used to indicate the number of original data packets (or original data blocks) that have participated in encoding and are used for the next encoding. Therefore, when the indication information indicates the first association depth of encoding, the second communication device can determine the number of first original data blocks according to the first association depth, and then obtain the second original data according to the number of first original data blocks. That is, the second communication device obtains the number of original data blocks of this quantity from the first original data that has participated in encoding as the second original data, and the second original data participates in the current encoding.

[0180] Through any one of Methods 1 to 4 in the above Case 1, or any aspect of Methods 1 to 4 in Case 2, the second communication device can obtain the second original data, and the second original data participates in the next encoding.

[0181] The following describes different implementation methods for the second communication device to obtain the encoding code rate information according to the indication information in Step 404 above. Among them, the encoding code rate information indicates the number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, or the encoding code rate corresponding to the second encoded data. Among them, the encoding code rate corresponding to the second encoded data = (the number of encoded data packets corresponding to the second encoded data - the number of redundant data packets corresponding to the second encoded data) / the number of encoded data packets corresponding to the second encoded data. Among them, the number of encoded data packets corresponding to the second encoded data is the total number of data packets in the second encoded data, and this total number includes the number of redundant data packets.

[0182] The methods for the second communication device to obtain the encoding code rate information according to the indication information include but are not limited to:

[0183] Method 1, when the indication information indicates the rank corresponding to the first encoded data, the second communication device determines the number of redundant data packets corresponding to the second encoded data according to the rank corresponding to the first encoded data, and then determines the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0184] The rank corresponding to the first encoded data refers to the rank of the encoded data received by the first communication device, which is used to reflect the reception situation of the first communication device for the first encoded data. When it is full rank, it indicates that the first communication device receives the first encoded data correctly. When it is not full rank, it indicates that there is a packet loss situation in the first encoded data.

[0185] The second communication device may determine the number of redundant data packets corresponding to the next encoding according to the rank corresponding to the first encoded data indicated by the indication information, that is, the number of redundant data packets corresponding to the second encoded data obtained by the next encoding. In a possible implementation manner, without considering additional redundant data packets, the number of redundant data packets corresponding to the next encoding is the difference between the number of original data packets that have not been correctly decoded before corresponding to the first encoded data and the rank corresponding to the first encoded data indicated by the indication information. For example, if the number of original data packets that have not been correctly decoded before corresponding to the first encoded data is 4, and the rank corresponding to the first encoded data indicated by the indication information is 3, it can be determined that the number of redundant data packets corresponding to the next encoding is 1. When the rank corresponding to the first encoded data that has not been correctly decoded before indicated by the indication information is 2, it can be determined that the number of redundant data packets corresponding to the next encoding is 2, and so on. Furthermore, the second communication device determines the coding rate according to the number of redundant data packets corresponding to the second encoded data.

[0186] Method 2: When the indication information indicates the reception conditions of the system data packets and the redundant data packets corresponding to the first encoded data, the second communication device determines the number of redundant data packets corresponding to the second encoded data according to the reception conditions of the system data packets and the redundant data packets corresponding to the first encoded data, and then determines the coding rate according to the number of redundant data packets corresponding to the second encoded data.

[0187] Among them, the system data packet refers to the data packet in the encoded data that is the same as the original data packet. The redundant data packet refers to the redundant encoded data packet added to improve the decoding success rate. The reception condition of the system data packet refers to the correct reception quantity or ratio of the system data packet, or the incorrect reception quantity or ratio of the system data packet. The reception condition of the redundant data packet refers to the correct reception quantity or ratio of the redundant data packet, or the incorrect reception quantity or ratio of the redundant data packet.

[0188] The second communication device can determine the number of redundant data packets corresponding to the next encoding, that is, the number of redundant data packets corresponding to the second encoded data obtained by the next encoding, according to the reception conditions of the system data packets and the redundant data packets corresponding to the first encoded data indicated by the indication information. In a possible implementation manner, without considering additional redundant data packets, the number of redundant data packets corresponding to the next encoding is the sum of the number of erroneously received system data packets corresponding to the first encoded data determined according to the indication information and the number of erroneously received redundant data packets corresponding to the first encoded data. For example, when the reception condition of the system data packets corresponding to the first encoded data indicated by the indication information is that the number of erroneously received system data packets is 1 and the reception condition of the redundant data packets is that the number of erroneously received redundant data packets is 0, it can be determined that the number of redundant data packets corresponding to the next encoding is 1. For another example, when the reception condition of the system data packets corresponding to the first encoded data indicated by the indication information is that the number of erroneously received system data packets is 1 and the reception condition of the redundant data packets is that the number of erroneously received redundant data packets is 1, it can be determined that the number of redundant data packets corresponding to the next encoding is 2. Furthermore, the second communication device determines the coding rate according to the number of redundant data packets corresponding to the second encoded data.

[0189] Through the above method 1 or method 2, the second communication device can determine the coding rate, and thus jointly encode the third original data and the second original data according to the coding rate to obtain the second encoded data.

[0190] As an implementation method, in addition to indicating the information described above, the above indication information may also indicate one or more of the following:

[0191] 1) The number of original data packets corresponding to the third original data.

[0192] That is, the indication information indicates the number of newly added original data packets that have not participated in encoding when performing the next encoding.

[0193] 2) The number of original data blocks corresponding to the third original data.

[0194] That is, the indication information indicates the number of newly added original data blocks that have not participated in encoding when performing the next encoding.

[0195] 3) The available window length or the used window length of the decoding window.

[0196] The decoding window corresponds to a maximum window length, which refers to the maximum data length participating in decoding, and can also be understood as the maximum number of coded data blocks that can be decoded. Therefore, the indication information can indicate the available window length of the decoding window, that is, the number of remaining coded data blocks that can participate in decoding. Alternatively, the indication information can indicate the used window length of the decoding window, so that the available window length of the decoding window can be determined based on the used window length of the decoding window and the maximum window length of the decoding window, and then the number of remaining coded data blocks that can be decoded can be determined.

[0197] As an implementation method, the above second coded data may include header information and data information, where the data information is used to carry the encoded data. The header information is used to indicate the encoding parameter information corresponding to the second coded data, so that the first communication device can correctly decode the original data before encoding after receiving the second coded data.

[0198] Among them, the header information indicates a second correlation depth, which can be determined according to the indication information, or can be jointly determined according to the indication information and other system information (such as channel state information, etc.). If the above indication information indicates a first correlation depth (which can be explicitly indicated or implicitly indicated), the second correlation depth may be the same as or different from the first correlation depth.

[0199] Optionally, the header information may further indicate one or more of the following:

[0200] 1) The number of original data packets corresponding to the third original data.

[0201] 2) The identifier of the original data block corresponding to the second coded data.

[0202] 3) The encoding coefficients corresponding to the second coded data.

[0203] Among them, the encoding coefficients can also be referred to as encoding codebook coefficients, or codebook coefficients, etc.

[0204] The following combines the specific examples of the following Embodiment 1 to Embodiment 5 to elaborate on the above Figure 4 The shown communication method is elaborated in detail from different aspects. It can be understood that in this application, in each embodiment, and in each implementation manner / implementation method in each embodiment, if there is no special description and logical conflict, the technical features in different embodiments, and in each implementation manner / implementation method / implementation method in each embodiment can be combined to form new embodiments, implementation manners, or implementation methods according to their internal logical relationships.

[0205] It can be understood that the above indication information is referred to as feedback information in the following embodiments, the above first communication device is referred to as the receiving end in the following embodiments, the above second communication device is referred to as the sending end in the following embodiments, the above second original data may be the old original data packet or the old original data block in the following embodiments, and the above third original data may be the new original data packet or the new original data block in the following embodiments.

[0206] Embodiment 1

[0207] This embodiment provides the overall design and process of a convolutional network coding scheme based on feedback, and on this basis, provides single-process and multi-process feedback schemes.

[0208] As shown in Figure 5(a), it is a schematic diagram of a convolutional network coding scheme based on feedback. This scheme includes the following steps:

[0209] Step 1: Initial state. At the sending end, the original data packet enters the convolutional network encoder at the sending end and is stored in the corresponding storage unit, such as a register unit. The convolutional network encoder determines an initial coding generation matrix according to the set initial parameters, performs network coding on the corresponding original data packet according to the coding generation matrix, and adds header information to obtain a group of coded data packets.

[0210] In this application, the convolutional network encoder can also be simply referred to as the encoder, the transmitting-end encoder, or the sending-end encoder. Here, it is uniformly explained and will not be elaborated later.

[0211] Step 2: The sending end sends the generated network-coded data packets. After transmission through the channel, due to the influence of factors such as interference and noise, packet loss and / or packet error may occur. Through a reasonable verification mechanism, such as cyclic redundancy check (CRC) verification, the receiving end receives a group of correct coded data packets.

[0212] Step 3: After receiving the coded data packets, the receiving end identifies the header information, obtains parameters such as the data block ID, coding coefficients, and association depth, and performs decoding operations using the convolutional network decoder, and forms feedback information to characterize the decoding situation. If the decoding is correct, the original data packet obtained by decoding is output. In addition, the feedback information is sent to the sending end through the corresponding carrier mode via the channel.

[0213] In this application, the convolutional network decoder can also be simply referred to as the decoder, the receiving-end decoder, or the receiving decoder. Here, it is uniformly explained and will not be elaborated later.

[0214] Step 4: The transmitter receives feedback information from the receiver and determines the encoding parameters of the next convolutional network encoder, such as the correlation depth, convolutional coding kernel, and the number of encoded data packets. The encoding parameters determined by the transmitter can be consistent with the encoding parameters corresponding to the feedback information, or the transmitter can re-determine the encoding parameters based on the encoding parameters of the feedback information and other system information. According to the encoding parameters, the new data packet and the old data packet are jointly encoded, and the header information is added to obtain a set of encoded data packets. Then return to step 2.

[0215] Since there is a delay in the process from sending the coded data to receiving the feedback information at the transmitting end, such as air interface transmission delay, receiving end data processing delay, etc., in order to reduce the delay caused by the system performance, such as the decrease in throughput and spectrum efficiency, the embodiment of the present application proposes a feedback solution based on a single process or multiple processes. The following are respectively described.

[0216] (1) Feedback solution based on a single process

[0217] In the first single-process feedback scheme, a stop-and-wait method is adopted, that is, after the sender sends a group of encoded data packets, it needs to wait for feedback information from the receiver, during which the sender does not send new encoded data.

[0218] As shown in Figure 5(b), it is a schematic diagram of the feedback scheme for a single process stop-and-wait equation. The first original data block B 0 With the second original data block B 1 There is a delay T between the two, and the sender does not send new coded data during the delay T. This stop-and-wait approach will cause a waste of system resources and a degradation of performance.

[0219] In the second single-process feedback scheme, a padding method is used. During the delay T, the transmitter continues to send coded data. The coded data is encoded by using the coding parameters of the first original data block for the original data blocks after the first original data block, or by using a semi-static configuration of coding parameters to encode the original data blocks in the delay T, thereby realizing the joint coding of the new original data packet and the old original data packet. Through this scheme, it can be ensured that the resources from the time when the transmitter sends the coded data packet to the time when the feedback information is received (i.e., the above-mentioned delay T) are not wasted. Optionally, it can be configured according to the minimum time unit T. 0 Adjust the feedback delay T for the granularity so that T is rounded up to T 0 An integer multiple of , so that within the feedback delay T, an integer number of original data blocks can be encoded and sent.

[0220] like Figure 6 As shown in Figure 1, it is a schematic diagram of a single-process filling feedback scheme. Assume that the first original data block B 0Enter the convolutional network encoder at the sending end, perform network coding according to the coding parameters and send the coded data block. Within the feedback delay T, three original data blocks (i.e., original data block B 1 , B 2 , B 3 ) performs encoding and transmission operations, that is, B 1 , B 2 , B 3 The convolutional network encoder entering the sender can be based on B 0 The encoding parameters or semi-statically configured encoding parameters of B 1 , B 2 , B 3 The above operation is performed until the transmitter receives the feedback information, optimizes the encoding parameter configuration according to the feedback information, and encodes the original data block B according to the optimized encoding parameter configuration in the next unit time after the feedback delay T. 4 The encoding operation is performed. The encoding parameters here include but are not limited to the association depth, the number of encoded data packets, the encoding coefficient, etc. Here, different original data blocks B i The sizes of (i=0, 1, 2, 3) (ie, the number of original data packets included in the original data block) may be the same or different.

[0221] (2) Feedback scheme based on multiple processes

[0222] In the above feedback scheme based on a single process, the stop-and-wait scheme is simple to operate, but it will cause system resource waste and performance degradation within the feedback delay. The filling scheme improves the resource utilization of the stop-and-wait scheme, but the feedback delay leads to lag, that is, the original data block B 4 The encoding parameters are based on the original data block B 0 The decoding result is determined by the original data block B, and it is impossible to provide real-time and accurate feedback, resulting in increased redundancy or decreased decoding performance. 0 The decoding result determines the original data block B 1 The encoding parameters cannot be calculated based on the original data block B 1 The decoding result determines the original data block B 2 The encoding parameters cannot be calculated based on the original data block B 2 The decoding result determines the original data block B 3 The encoding parameters cannot be calculated based on the original data block B 3 The decoding result determines the original data block B 4 The encoding parameters.

[0223] (a) In a multi - process - based feedback scheme, there is a feedback delay T and at least one process value. The sender can determine the number of activated processes according to the number of original data packets in the original data block, the size of the MAC - layer transport block, and the requirement of the delay, that is, obtain a suitable process value from at least one process value and activate the corresponding number of processes.

[0224] As Figure 7 shown, it is a schematic diagram of a multi - process - based feedback scheme. The sender has z processes, where z takes the value of 4, that is, the sender includes process 0, process 1, process 2, and process 3. Within the feedback delay T, 3 original data blocks (B 1 ~B 3 ) can be encoded and transmitted respectively. The original data block B 1 is encoded and sent under process 1, the original data block B 2 is encoded and sent under process 2, and the original data block B 3 is encoded and sent under process 3. During this period, the sender can receive the feedback information of the encoded data block corresponding to the original data block B 0 in process 0. After process 3 finishes encoding the original data block B 3 , in process 0, according to the feedback information corresponding to B 0 , determine the encoding parameters of the original data block B 4 , and encode and send the original data block B 4 according to the encoding parameters. For the generation of the feedback information corresponding to the original data block B 0 , from the perspective of the receiver, the convolutional network decoder of the receiver decodes the received encoded data packets corresponding to B 0 , generates feedback information, and sends it to the sender. If the decoding is successful, the decoding result (i.e., the original data block B 0 ) is output. It can be understood that in the sender, the encoding and other operations in processes 1 to 3 are similar to those in process 0, so they will not be elaborated. In the receiver, the decoding and other operations in processes 1 to 3 are similar to those in process 0, and will not be elaborated either.

[0225] From Figure 7 it can be seen that in process 0 of the sender, the encoding parameters of the original data block B 0 can be determined according to the decoding result of the original data block B 4 , in process 1, the encoding parameters of the original data block B 1 can be determined according to the decoding result of the original data block B 5 , in process 2, the encoding parameters of the original data block B 2 can be determined according to the decoding result of the original data block B 6The encoding parameters can determine the original data block B according to the decoding result of the original data block B in Process 3 3 The encoding parameters of the original data block B can be determined according to the decoding result of the original data block B 7 Each process can independently determine the encoding parameters of the next original data block based on the feedback information (i.e., the decoding result) of the encoded data block corresponding to the previous original data block, and encode the next original data block based on the encoding parameters, so that the encoding parameters can be adjusted based on the real-time feedback decoding result, improving the encoding performance.

[0226] (b) Further, the interleaving function can also be implemented in the convolutional network encoder at the sending end. Optionally, the interleaving is performed at the granularity of encoded data packets.

[0227] The original data block passes through the convolutional network encoder at the sending end to generate encoded data blocks of multiple processes, and then the encoded data blocks are interleaved in units of encoded data packets to form interleaved encoded data blocks under different processes.

[0228] The following is described separately in two cases.

[0229] Case 1: The number of encoded data packets in the encoded data block is not an integer multiple of the number of processes.

[0230] As Figure 8 shown, it is an example diagram of the interleaved encoded data block. This figure shows 4 processes, and the convolutional network encoder generates encoded data blocks C 0 ~C 7 . Assume that the number of encoded data packets in each encoded data block is 3, which is not an integer multiple of the number of processes (i.e., 4).

[0231] Figure 8 The form of the interleaved encoded data block is given. Each process number represents an encoded data block. For example, the first interleaved encoded data block corresponding to Process 0 is composed of the first encoded data packets of C 0 ~C 2 . The first interleaved encoded data block corresponding to Process 1 is composed of the first encoded data packet of C 3 and the second encoded data packets of C 0 ~C 1 . By analogy according to the above rules, the interleaved encoded data block is obtained.

[0232] The following shows the interleaved encoded data blocks corresponding to each process.

[0233] First, the encoded data packets in the encoded data block C i (i = 0, 1, 2,..., 7) are expressed as: C i0 , C i1 , Ci2 .

[0234] C 0 :C 00 ,C 01 ,C 02

[0235] C 1 :C 10 ,C 11 ,C 12

[0236] C 2 :C 20 ,C 21 ,C 22

[0237] C 3 :C 30 ,C 31 ,C 32

[0238] C 4 :C 40 ,C 41 ,C 42

[0239] C 5 :C 50 ,C 51 ,C 52

[0240] C 6 :C 60 ,C 61 ,C 62

[0241] C 7 :C 70 ,C 71 ,C 72

[0242] After interleaving, the interleaved coded data blocks corresponding to each process are as follows:

[0243] Process 0: Coded data block 1 (C 00 , C 10 , C 20 ), coded data block 2 (C 40 , C 50 , C 60 ).

[0244] Process 1: Coded data block 1 (C 30 , C 01 , C 11 ), coded data block 2 (C 70 , C 41 , C51 )。

[0245] Process 2: Encode data block 1 (C 21 , C 31 , C 02 ), encode data block 2 (C 61 , C 71 , C 42 ).

[0246] Process 3: Encode data block 1 (C 12 , C 22 , C 32 ), encode data block 2 (C 52 , C 62 , C 72 ).

[0247] Case 2: The number of encoded data packets in the encoded data block is an integer multiple of the number of processes.

[0248] As Figure 9 shown, it is another example diagram of the interleaved encoded data block. Assume that the number of encoded data packets in the encoded data block is 4, which is equal to the number of processes (i.e., 4). At this time, only the encoded data packets at the same position in each encoded data block need to be extracted and combined to form a new encoded data block. For example, the first encoded data packet of C 0 ~C 3 forms the first encoded data block corresponding to process 0, and the second encoded data packet of C 0 ~C 3 forms the second encoded data block corresponding to process 0, and so on. If the number of packets in the encoded data block is n times the number of processes, then n encoded data packets in each encoded data block are sequentially extracted and combined into a new encoded data block during each interleaving process.

[0249] Figure 9 shows the form of the interleaved encoded data block. Each process number represents an encoded data block. For example, the first interleaved encoded data block corresponding to process 0 is composed of the first encoded data packet of C 0 ~C 3 , and the first interleaved encoded data block corresponding to process 1 is composed of the second encoded data packet of C 0 ~C 3 . By analogy according to the above rules, the interleaved encoded data block is obtained.

[0250] The following shows the interleaved encoded data blocks corresponding to each process.

[0251] First, the encoded data packets in the encoded data block C i (i = 0, 1, 2,..., 7) are represented as: C i0 , Ci1 , C i2 , C i3 。

[0252] C 0 : C 00 , C 01 , C 02 , C 03

[0253] C 1 : C 10 , C 11 , C 12 , C 13

[0254] C 2 : C 20 , C 21 , C 22 , C 23

[0255] C 3 : C 30 , C 31 , C 32 , C 33

[0256] C 4 : C 40 , C 41 , C 42 , C 43

[0257] C 5 : C 50 , C 51 , C 52 , C 53

[0258] C 6 : C 60 , C 61 , C 62 , C 63

[0259] C 7 : C 70 , C 71 , C 72 , C 73

[0260] After interleaving, the interleaved coded data blocks corresponding to each process are as follows:

[0261] Process 0: Coded data block 1 (C 00 , C 10 , C 20 , C 30 ), Coded data block 2 (C40 , C 50 , C 60 , C 70 ).

[0262] Process 1: Encode data block 1 (C 01 , C 11 , C 21 , C 31 ), encode data block 2 (C 41 , C 51 , C 61 , C 71 ).

[0263] Process 2: Encode data block 1 (C 02 , C 12 , C 22 , C 32 ), encode data block 2 (C 42 , C 52 , C 62 , C 72 ).

[0264] Process 3: Encode data block 1 (C 03 , C 13 , C 23 , C 33 ), encode data block 2 (C 43 , C 53 , C 63 , C 73 ).

[0265] The following presents the structural form of the convolutional network encoder at the sender provided by the embodiments of the present application.

[0266] As Figure 10 shown, it is a schematic diagram of a multi-process encoder. The convolutional network encoder set at the sender has multi-process encoding capabilities, that is, multiple processes or channels can be distinguished in the convolutional network encoder, and each process is independent of each other and has its own shift buffer module, encoding module, etc. The convolutional network encoder also sets a data classification and process management module for distributing the received original data block (or original data packet) to each process and for managing each process.

[0267] As Figure 11 shown, it is another schematic diagram of a multi-process encoder. Inside the convolutional network encoder set at the sender, there are multiple single-process encoders, and each single-process encoder is independent of each other and has its own shift buffer module, encoding module, etc. The convolutional network encoder also sets a data classification module for distributing the received original data block (or original data packet) to each single-process encoder.

[0268] The following presents the structural form of the convolutional network decoder at the receiving end provided by the embodiments of the present application.

[0269] As Figure 12 shown, it is a schematic diagram of a multi-process decoder. The convolutional network decoder set at the receiving end has multi-process decoding capabilities, that is, multiple processes or channels can be distinguished in the convolutional network decoder. Each process is independent of each other and has its own shift buffer module, decoding module, etc. The convolutional network decoder is also provided with a data classification and process management module for distributing the received coded data block (or coded data packet) to each process and for managing each process.

[0270] As Figure 13 shown, it is another schematic diagram of a multi-process decoder. Inside the convolutional network decoder set at the receiving end, there are multiple single-process decoders. Each single-process decoder is independent of each other and has its own shift buffer module, decoding module, etc. The convolutional network decoder is also provided with a data classification module for distributing the received coded data block (or coded data packet) to each single-process decoder.

[0271] The beneficial effects of the above Embodiment 1 are as follows: A feedback-based network coding method and device under single-process and multi-process are designed. By optimizing the operations of single-process and multi-process, the time delay from when the transmitting end sends coded data to when feedback information is received can be fully utilized. In the case of single-process, according to semi-static coding parameters or the previous feedback-optimized coding parameters, the subsequent original data blocks can be convolutionally encoded and transmitted. When feedback information is received, the coding parameters for the next original data block are optimized. In the case of multi-process, multiple processes can be added during the feedback time delay, and the multiple processes are independent of each other. Each process can perform accurate feedback and optimize the coding parameters, more efficiently implementing the coding strategy at the transmitting end, fully utilizing system resources, and improving system throughput and other performances. In addition, through the multi-process interleaving method, the ability of network coding to resist burst interference can be further improved.

[0272] Embodiment 2

[0273] This Embodiment 2 gives the content and format of the feedback information. The following will be described separately.

[0274] I. Content of the feedback information

[0275] The content of the feedback information determines the association depth between the next original data block and one or more previous original data blocks (partial or all data packets) and the number of redundant packets.

[0276] The associated depth (hereinafter denoted as D) represents the number of original data blocks and the number of original data packets, and can also represent the number of new data packets (which can also be referred to as new original data packets, or simply new packets, hereinafter denoted as N) and the number of old data packets (which can also be referred to as old original data packets, or simply old packets, hereinafter denoted by the letter O).

[0277] The number of redundant packets can be reflected as information such as the number of encoded data packets (hereinafter denoted as C), or the number of redundant encoded data packets (hereinafter denoted as R), etc. Optionally, when the feedback information includes the decoding window state, the sender can adjust the number of redundant packets in the feedback information. For example, when there is a time delay limit for the decoding of encoded data packets, and the maximum time delay is the time delay corresponding to the decoding window length, it is required to be decoded successfully before the encoded data exits the decoding window. Therefore, before exiting the window, the sender can increase the number of redundant packets based on the number of redundant packets fed back by the receiver through the feedback information.

[0278] In the embodiments of the present application, the feedback information sent by the receiver to the sender for the encoded data is used to indicate but not limited to the following information: the associated depth D, the number of redundant packets R, the number of new packets N participating in the encoding, the number of old packets O participating in the encoding, or the decoding window state. In different schemes and different semi-static parameter configuration methods, the content of the feedback information can be different.

[0279] In the embodiments of the present application, the feedback information can be dynamically indicated by the control information of the physical (PHY) layer, or can also be semi-statically configured by relevant high-layer messages such as the MAC layer and the radio resource control (RRC) layer, or by a combination of semi-static configuration and dynamic indication.

[0280] Hereinafter, the network coding schemes are divided into two categories: non-systematic codes and systematic codes, and the feedback information corresponding to non-systematic codes and the feedback information corresponding to systematic codes will be described respectively.

[0281] 1. Non-systematic code scheme

[0282] For the non-systematic code scheme, when the feedback information is used to indicate one or more of the associated depth D, the number of redundant packets R, the number of new packets N participating in the encoding, the number of old packets O participating in the encoding, or the decoding window state, it can be indicated by the following methods.

[0283] a) The number of redundant packets R

[0284] When the feedback information is used to indicate the number of redundant packets (also referred to as redundant encoded data packets) R, it can be indicated by any of the following methods:

[0285] 1) Indicate the number of redundant packets R included in the next encoded data block;

[0286] 2) Indicate the total number of coded data packets C contained in the next coded data block;

[0287] 3) Indicate the correct rank value of the currently received coded data block: Through known parameters or semi-static configuration parameters (the total number of original data packets participating in coding), the number of redundant coded data packets R contained in the next coded data block or the total number of coded data packets C contained in the next coded data block can be obtained;

[0288] 4) Indicate the incorrect rank value of the currently received coded data block: Through known parameters or semi-static configuration parameters (the total number of original data packets participating in coding), the number of redundant coded data packets R contained in the next coded data block or the total number of coded data packets C contained in the next coded data block can be obtained.

[0289] b) Association depth D

[0290] As an implementation method, in the non-systematic code scheme, the association depth D is equivalent to the number of old packets O, that is, the two values are the same.

[0291] When the feedback information is used to indicate the association depth D, it can be indicated by any of the following methods:

[0292] 1) Indicate the number of old packets participating in coding in the next coded data block, and the number of old blocks (also known as old original data blocks, or old data blocks);

[0293] 2) Indicate the bitmap of the old packets participating in coding in the next coded data block, and the bitmap of the old blocks;

[0294] Among them, the bitmap of the old packets refers to indicating the number of old packets participating in coding in the next coded data block in the form of a bitmap. For example, if the bitmap is 8 bits, when the information of the bitmap is "10000000", it means that the number of old packets participating in coding in the next coded data block is 1, and when the information of the bitmap is "11000000", it means that the number of old packets participating in coding in the next coded data block is 2. It should be noted that in the subsequent description, the bitmap of the old packets has the same meaning and will not be elaborated.

[0295] The bitmap of the old blocks refers to indicating the number of old blocks participating in coding in the next coded data block in the form of a bitmap. For example, if the bitmap is 8 bits, when the information of the bitmap is "10000000", it means that the number of old blocks participating in coding in the next coded data block is 1, and when the information of the bitmap is "11000000", it means that the number of old blocks participating in coding in the next coded data block is 2. It should be noted that in the subsequent description, the bitmap of the old blocks has the same meaning and will not be elaborated.

[0296] 3) Indicate the rank value of the latest received encoded data block, and indirectly obtain the correlation depth D through known parameters or semi-static configuration parameters (the total number of original data packets participating in encoding).

[0297] 4) Indicate any two of the index number of the first original data packet participating in encoding, the index number of the last original data packet, or the total number of the first original data packet to the last original data packet.

[0298] 5) Indicate any two of the starting packet number in the sender's encoding window participating in encoding, the terminating packet number in the sender's encoding window, and the effective length participated by the sender's encoding window.

[0299] c) The number N of new packets participating in encoding in the next original data block

[0300] Among them, the number N of new packets is used in the scheme where the total number of original data packets for each encoding is the same (i.e., N + O is a fixed value).

[0301] When the feedback information is used to indicate the number N of new packets participating in encoding in the next original data block, it can be indicated in any of the following ways:

[0302] 1) The value of N can be obtained with the help of relevant indication information of the correlation depth.

[0303] This is because the value of the correlation depth D is the same as the value of the old packets O. After pre-configuring the total number of original data packets for each encoding and determining the correlation depth D through the feedback information, the value of the number N of new packets can be obtained.

[0304] 2) If the total number of new packets and old packets participating in encoding is certain (i.e., N + O is semi-statically configured), indicate the number N of new packets for the next encoding.

[0305] 3) If the total number of new packets and old packets participating in encoding is certain (i.e., N + O is semi-statically configured), indicate the new packet bitmap for the next encoding.

[0306] d) Decoding window status

[0307] The decoding window status includes the length used by the decoding window and / or the remaining length of the decoding window (i.e., the unused length), and is used to characterize the usage of the current decoding window and the relationship between the current used window length and the maximum window length (denoted by W_max).

[0308] It can be understood that the decoder window state affects the redundancy addition algorithm of the encoder. That is, under the relevant algorithm, the number of encoded data packets generated by the convolutional network encoder at the sending end for encoding the next original data block depends not only on the number of missing packets in the currently encoded data block at the receiving end, but also on the usage length of the decoder window or on the remaining length of an encoded data packet staying in the window.

[0309] 2. System code scheme

[0310] For the system code scheme, when the feedback information is used to indicate one or more of the association depth D, the number of redundant packets R, the number of new packets participating in encoding N, the number of old packets participating in encoding O, or the decoder window state, it can be indicated by the following methods.

[0311] a) The number of redundant packets R

[0312] When the feedback information is used to indicate the number of redundant packets (also known as redundant encoded data packets) R, it can be indicated by any of the following methods:

[0313] 1) Indicate the number of redundant packets R included in the next encoded data block;

[0314] 2) Indicate the total number of encoded data packets C included in the next encoded data block;

[0315] 3) Indicate the correct rank value of the latest received encoded data block: Through known parameters or semi-static configuration parameters (the number of original data packets participating in encoding), the number of redundant encoded data packets R included in the next encoded data block or the total number of encoded data packets C included in the next encoded data block can be obtained;

[0316] 4) Indicate the incorrect rank value of the latest received encoded data block: Through known parameters or semi-static configuration parameters (the number of original data packets participating in encoding), the number of redundant encoded data packets R included in the next encoded data block or the total number of encoded data packets C included in the next encoded data block can be obtained;

[0317] 5) Indicate the number of correct system data packets and redundant data packets in the latest received encoded data block;

[0318] 6) Indicate the number of incorrect system data packets and redundant data packets in the latest received encoded data block;

[0319] 7) Indicate the number of correct system data packets and incorrect redundant data packets in the latest received encoded data block;

[0320] 8) Indicate the number of incorrect system data packets and correct redundant data packets in the latest received encoded data block;

[0321] It can be understood that any one of the above items (5) to (8)) combined with known parameters or semi-static parameters can obtain the number R of redundant encoded data packets included in the next encoded block, the number S of system packets, etc.

[0322] b) Association depth D

[0323] When the feedback information is used to indicate the association depth D, it can be indicated by any of the following methods:

[0324] 1) Indicate the number of old blocks that the next original data block participates in encoding;

[0325] 2) Indicate the old block bitmap that the next original data block participates in encoding;

[0326] 3) Indicate the status indication factor (2 bits) of the system packet and the encoded data packet of the current original data block, and obtain the association depth through known parameters or semi-static configuration parameters (such as the number of original data packets participating in encoding);

[0327] For example, the status 00 indicates that neither the system packet nor the encoded data packet is lost, and the corresponding association depth is 0; the status 11 / 01 indicates that the encoded data packet is lost, and the corresponding association depth is the value of the association depth of the previous data block + 1; the status 10 indicates that only the system packet is lost, and the corresponding association depth is 2.

[0328] 4) Indicate any two of the index number of the first original data packet participating in encoding, the index number of the last original data packet participating in encoding, or the total number of the first original data packet to the last original data packet;

[0329] 5) Indicate any two of the starting packet number in the sender's encoding window participating in encoding, the terminating packet number of the sender's encoding window, and the effective length participated by the sender's encoding window.

[0330] 6) Indicate the number of correct system data packets and redundant data packets in the latest received encoded data block;

[0331] 7) Indicate the number of incorrect system data packets and redundant data packets in the latest received encoded data block;

[0332] 8) Indicate the number of correct system data packets and incorrect redundant data packets in the latest received encoded data block;

[0333] 9) Indicate the number of incorrect system data packets and correct redundant data packets in the latest received encoded data block.

[0334] It can be understood that any one of the above items (6) to (9)) combined with known parameters or semi-static parameters can obtain the association depth of the next encoded data block.

[0335] c) The number N of new packets participating in encoding in the next original data block

[0336] Among them, the number N of new packets is used in the scheme where the total number of original data packets for each encoding is the same (i.e., N + O is a constant).

[0337] When the feedback information is used to indicate the number N of new packets participating in encoding in the next original data block, it can be indicated in any of the following ways:

[0338] 1) Indicate the number of new blocks and the number N of new packets for the next encoding (it can be not indicated);

[0339] 2) Indicate the new block bitmap and the new packet bitmap for the next encoding (it can be not indicated);

[0340] 3) Indicate the number of correct systematic data packets and the number of redundant data packets in the latest received encoded data block;

[0341] 4) Indicate the number of incorrect systematic data packets and the number of redundant data packets in the latest received encoded data block;

[0342] 5) Indicate the number of correct systematic data packets and the number of incorrect redundant data packets in the latest received encoded data block;

[0343] 6) Indicate the number of incorrect systematic data packets and the number of correct redundant data packets in the latest received encoded data block.

[0344] It can be understood that any one of the above 3) to 6) combined with known parameters or semi-static parameters can obtain the number N of new packets included in the next encoded data block.

[0345] d) Decoding window status

[0346] The decoding window status includes the length used by the decoding window and / or the remaining length of the decoding window (i.e., the unused length), which is used to characterize the usage of the current decoding window, the relationship between the currently used window length and the maximum window length (denoted by W_max), or the remaining length of a coded data packet staying in the window.

[0347] It can be understood that the decoding window status will affect the redundancy addition algorithm of the encoder. That is, under the relevant algorithm, the number of encoded data packets generated by the convolutional network encoder at the sending end for encoding the next original data block depends not only on the number of missing packets in the currently received encoded data block at the receiving end, but also on the length used by the decoding window or on the remaining length of a coded data packet staying in the window. In addition, the receiving end can combine the decoding window status information when forming the feedback information, rather than directly feedback the decoding window status information. That is, the number of redundant encoded packets or the total number of encoded packets in the feedback information is a parameter formed after considering the redundancy addition algorithm of the decoding window status information.

[0348] II. Format of Feedback Information

[0349] The feedback information can be carried in multiple fields, such as Figure 14 shown in the format schematic diagram of the feedback information. In the figure, Field 1 indicates the format serial number, which has 3 bits for example. Different serial numbers represent different schemes and / or scenarios. One bit out of the 3 bits is used to distinguish between non-systematic code schemes and systematic code schemes, one bit is used to distinguish between two scenarios where the original data block sizes are the same and the encoded data block sizes are the same, and one bit is used to distinguish between two scenarios where the decoding window state is considered and not considered, resulting in a total of 8 combinations. The following will explain them separately.

[0350] In the following examples, combined with Figure 14 Field 1 (with a total of 3 bits), the high-order 1 bit of this field is used to indicate non-systematic code schemes and systematic code schemes, where "0" represents a non-systematic coding scheme and "1" represents a systematic coding scheme. The middle 1 bit of this field is used to distinguish between two scenarios where the original data block sizes are the same and the encoded data block sizes are the same, where "0" represents the same original data block size and "1" represents the same encoded data block size. The low-order 1 bit of this field is used to distinguish between two scenarios where the decoding window state is considered and not considered, where "0" represents not considering the decoding window state and "1" represents considering the decoding window state. It should be noted that the meanings of the above "0" and "1" can also be used conversely. In the subsequent descriptions, the meanings of "0" and "1" are only for examples.

[0351] Combined with Figure 14 , the specific schemes are as follows:

[0352] 1) Feedback format (also known as feedback format) 0_0_0: non-systematic code scheme, the same original data block size and not considering the decoding window state (where the number of new packets N participating in encoding is semi-statically configured)

[0353] Field 1: Format serial number (also known as pattern number) 000, 3 bits;

[0354] Field 2: The rank value missing in the current encoded data block, or other information that can indirectly obtain the missing rank value, such as the rank value of the encoded data block, from which the association depth D and the number of redundant packets R of the next block can be obtained.

[0355] Optionally, when not using the rank value, any form of the association depth D in the non-systematic code scheme can be used as Field 2, and any form of the number of redundant packets R can be used as Field 3, and through combination, the feedback information is shown.

[0356] 2) Feedback format 0_0_1: Non-systematic code scheme, same original data block size, and considering the decoding window state (where the number of new packets N participating in encoding is semi-statically configured).

[0357] Field 1: Pattern number 001, 3 bits;

[0358] Field 2: The rank value missing from the current encoded data block or other information that can indirectly obtain the missing rank value, such as the rank value of the encoded data block, from which the association depth D can be obtained.

[0359] Field 3: Decoding window state, which characterizes the impact of the decoding window length on the number of encoded data packets. Combining with Field 2, the number of redundant packets R of the next encoded data block can be determined (both the sender and the receiver can determine it according to the algorithm. When the receiver executes the relevant algorithm to determine the number of redundant packets R to form a feedback message, then Field 3 can be omitted; when the sender executes the relevant algorithm to determine the number of redundant packets R, then Field 3 cannot be omitted).

[0360] Optionally, Field 2 can use any form in the association depth D in the non-systematic code scheme, and Field 3 can adopt any form in 1) and 2) of the number of redundant packets R. By combination, the feedback information can be displayed.

[0361] 3) Feedback format 0_1_0: Non-systematic code scheme, same encoded data block size, and not considering the decoding window state (where N + O is semi-statically configured).

[0362] Field 1: Pattern number 010, 3 bits;

[0363] Field 2: The rank value missing from the current encoded data block or other information that can indirectly obtain the missing rank value, such as the rank value of the encoded data block.

[0364] Combining Field 2 with the semi-static configuration information, the association depth D (equal to the number of old packets O), the number of new packets N of the next original data block, and the number of redundant packets R of the next encoded data block (R = O) can be obtained.

[0365] Optionally, any form in the association depth D of the next original data block in the non-systematic code scheme can be used as Field 2, the number of redundant packets R of the next encoded data block as Field 3, and any form of the number of new packets N as Field 4. By combination, the feedback information can be displayed.

[0366] 4) Feedback format 0_1_1: Non-systematic code scheme, same encoded data block size, and considering the decoding window state (where N + O is semi-statically configured).

[0367] Field 1: pattern number 011, 3 bits;

[0368] Field 2: the rank value missing from the current coded data block or other information that can indirectly obtain the missing rank value information, such as the rank value of the coded data block.

[0369] Combined with the semi-static configuration information in Field 2, the association depth D (number of old packets O) can be obtained.

[0370] Field 3: decoding window status, which characterizes the impact of the decoding window length on the number of coded data packets. Combined with Field 2, it determines the number of new packets N of the next original data block and the number of redundant packets R of the next coded data block (both the sender and the receiver can determine according to the algorithm).

[0371] Optionally, any form of the association depth D of the next original data block in the non-systematic code scheme can be used as Field 2, any form of the number of new packets N can be used as Field 3, and the number of redundant packets R of the next coded data block can be used as Field 4. Through combination, it shows the feedback information.

[0372] 5) feedback format 1_0_0: systematic code scheme, the same original data block size, and the decoding window status is not considered (where the number of new packets N participating in coding is semi-statically configured)

[0373] Field 1: pattern number 100, 3 bits;

[0374] Field 2: indicates the number of correct system packets S or the number of incorrect system packets S' of the current data block;

[0375] Field 3: indicates the number of correct coded data packets P or the number of incorrect coded data packets P' of the current data block.

[0376] Combined with the semi-static configuration information, Field 2 and Field 3 can obtain the association depth D and the number of redundant packets R of the next block.

[0377] Optionally, any form of the association depth D in the systematic code scheme can be used as Field 2, and any form of the number of redundant packets R can be used as Field 3. Through combination, it shows the feedback information.

[0378] 6) feedback format 1_0_1: systematic code scheme, the same original data block size, and the decoding window status is considered (where the number of new packets N participating in coding is semi-statically configured)

[0379] Field 1: pattern number 101, 3 bits;

[0380] Field 2: indicates the number of correct system packets S or the number of incorrect system packets S' of the current data block;

[0381] Field 3: Indicates the number P of correctly encoded data packets or the number P' of incorrectly encoded data packets in the current data block;

[0382] Combining Field 2 and Field 3 with semi-static configuration information can obtain the correlation depth D;

[0383] Field 4: Decoding window status, which characterizes the impact of the decoding window length on the number of encoded data packets. Combining Field 2 and Field 3 can determine the number R of redundant packets in the next block (which can be determined by both the sender and the receiver according to the algorithm).

[0384] Optionally, any form of the correlation depth D in the systematic code scheme can be used as Field 2, and any form of the number R of redundant packets can be used as Field 3. Through combination, it can display and represent feedback information.

[0385] 7) feedback format 1_1_0: Systematic code scheme, the same encoding data block size, and the decoding window status is not considered (where N + O is semi-statically configured)

[0386] Field 1: pattern number 110, 3 bits;

[0387] Field 2: Indicates the number S of correctly received system packets or the number S' of incorrectly received system packets in the current data block;

[0388] Field 3: Indicates the number P of correctly encoded data packets or the number P' of incorrectly encoded data packets in the current data block.

[0389] Combining Field 2 and Field 3 with semi-static configuration information can obtain the correlation depth D, the number N of new packets in the next original data block (equal to the number of correctly received encoded data packets), and the number R of redundant packets (equal to the number of incorrectly received encoded data packets);

[0390] Optionally, any form of the correlation depth D in the systematic code scheme for the next original data block can be used as Field 2, any form of the number N of new packets can be used as Field 3, and the number R of redundant packets can be used as Field 4. Through combination, it can display and represent feedback information.

[0391] 8) feedback format 1_1_1: Systematic code scheme, the same encoding data block size, and the decoding window status is considered (where N + O is semi-statically configured)

[0392] Field 1: pattern number 111, 3 bits;

[0393] Field 2: Indicates the number S of correctly received system packets or the number S' of incorrectly received system packets in the current data block;

[0394] Field 3: Indicates the number P of correctly encoded data packets or the number P' of incorrectly encoded data packets in the current data block;

[0395] The associated depth D can be obtained by combining field 2 and field 3 with semi-static configuration information.

[0396] Field 4: Decoding window status, which characterizes the impact of the decoding window length on the number of encoded data packets. By combining field 2 and field 3, the number of redundant packets R (which can be determined by the algorithm at both the sending end and the receiving end) of the next block and the number of new packets N of the next original data block can be determined.

[0397] Optionally, any form of the associated depth D of the next original data block in the systematic code scheme can be used as field 2, any form of the number of new packets N can be used as field 3, and the number of redundant packets R can be used as field 4. Through combination, the feedback information can be displayed.

[0398] The beneficial effects of the above-mentioned second embodiment are as follows: The content and possible formats of the feedback information at the receiving end are designed. Different feedback information formats can be sent by the receiving end, and different network coding schemes and parameter settings can be obtained by the sending end. Further, the sending end reasonably configures the coding parameters according to the feedback information and requirements, and performs network coding on some or all of the data packets in the next original data block and several previous original data blocks to generate encoded data packets. The effectiveness of the network coding scheme and the improvement of system performance can be effectively guaranteed.

[0399] Embodiment Three

[0400] Embodiment Three is used to provide a method for carrying the above-mentioned feedback information, that is, in what way to send feedback information to the sending end.

[0401] For example, the feedback information can be sent through messages at the MAC layer or above the MAC layer (including but not limited to the PDCP layer, RLC layer, etc.). Or a new network coding layer can be defined separately, and then the messages of this new network coding layer are used as the carrier of the feedback information.

[0402] Specifically, in the feedback information, the feedback information given in the second embodiment can be understood as the data of the feedback message. In addition, the feedback message also requires header information. That is, the receiving end sends a feedback message to the sending end. The feedback message carries a message header and data, and the feedback information is carried in the data.

[0403] Among them, the header information includes the following content fields:

[0404] 1) Header indication field H_Field;

[0405] 2) Data block number Block_Num;

[0406] 3) Process number Process_Num.

[0407] Among them, the header indication field is used to indicate that the current data packet is network coding feedback information. The data block number is used to indicate the coded data block corresponding to the feedback information. The process number is used to represent the sender process number corresponding to the feedback information (used in the feedback scheme of multiple processes, and the information in this field is optional. The sender process number where it is located can also be deduced by combining the data block number with semi-static information).

[0408] Optionally, when the network coding encoding / decoding operation occurs at the PDCP layer, the feedback message can be carried by a protocol data unit (PDU) generated by the PDCP layer. As Figure 15 shown, it is a schematic diagram of the PDCP layer carrying the feedback message. On the left is the PDCP data format, including the PDCP header and PDCP data. The PDCP header includes the above-mentioned header information fields 1), 2), and 3), and the field Others represents other field information.

[0409] Optionally, when the network coding encoding / decoding operation occurs at the RLC layer, the feedback message can be carried by a PDU generated by the RLC layer. As Figure 16 shown, it is a schematic diagram of the RLC layer carrying the feedback message. The header information of the RLC layer PDU is used to implement the functions of the above three fields. Among them, let the existing field D / C = 1 indicate a control message, and CPT = 001 indicate the network coding feedback message of the receiving end, so that the H_Field field can be omitted. In addition, the header information fields 2) and 3) need to be added, and the field Others represents the remaining field information of the RLC layer packet header. Corresponding to the RLC header is the RLC layer data, including data (carrying feedback information therein) and the PDU packet of the PDCP layer.

[0410] Optionally, when the network coding encoding / decoding operation occurs at the MAC layer, the feedback information can be carried by a PDU generated by the MAC layer. As Figure 17 shown, it is a schematic diagram of the MAC layer carrying the feedback message. The header information of the MAC layer PDU is used to implement the functions of the above three fields by adding fields 1) to 3). The MAC layer PDU data includes data (carrying feedback information therein) and the PDU data from the RLC layer.

[0411] Another feasible bearing method is to carry using control information. Specifically, on the protocol layer corresponding to network coding at the receiving end, a feedback message is generated through operations such as decoding. The feedback message is transmitted to the physical layer in the form of a PDU, and finally carried and transmitted to the sending end by the uplink control information (UCI) or downlink control information (DCI) of the physical layer. Among them, new fields can be added to the UCI or DCI, or existing fields can be multiplexed to carry the above fields 1) to 3) and data (where feedback information is carried).

[0412] The beneficial effects of the above Embodiment 3 are as follows: Feedback information can be provided more flexibly. The existing PDCP, RLC, and MAC layers can provide PDUs corresponding to the feedback information. Only appropriate adjustments need to be made to the existing protocol layer PDUs, which is convenient and fast. For the method of bearing by the physical layer UCI or DCI, the reliability of the feedback information can be better guaranteed.

[0413] Embodiment 4

[0414] Embodiment 4 provides a design for the control message at the sending end. The sending end jointly determines the coding parameters of the next original data block, including the correlation depth, the number of redundant packets, and the corresponding coding coefficients, etc., based on the feedback information from the receiving end and other information such as (channel conditions, etc.). Thus, the next original data block is jointly encoded with some or all of the data packets of several previous original data blocks. Since the factors affecting the coding decision at the sending end can be not limited to the feedback information from the receiving end, the coding parameters at the sending end can be the same as or different from the parameters provided by the feedback information. Correspondingly, a control message indicating the corresponding coding parameters is carried in the header of the coded data packet, so that the receiving end can perform operations such as decoding based on the coding parameters.

[0415] As mentioned above, different coding schemes can correspond to different feedback information formats and different coded data packet header information. The sending end determines the coding scheme of the next original data packet based on the received feedback information and other system information, and adds the corresponding control message to the header of the coded data packet.

[0416] As Figure 18As shown in the figure, it is a schematic diagram of the header information field at the sending end. The header of an encoded data packet at the sending end includes a data block ID field, a coefficient field (which can be an encoded coefficient field or a coefficient indication information field), an association depth (D) field, a packet number (N) field of the data block, etc. Among them, the representation method of the association depth field can partially refer to the association depth representation form of the non-systematic coding scheme or the systematic coding scheme in the second embodiment above. The specific representation is as follows: The coefficient field can indicate the coefficient value, or configure the coefficient value in a semi-static manner.

[0417] The following introduces the association depth field and the packet number (N) field of the data block.

[0418] I. For the non-systematic coding scheme

[0419] 1. For feedback formats 0_0_0 and 0_0_1, they both belong to the case where the packet number (N value) of the next original data block is fixed. The packet number field of the data block is not required because it has been configured semi-statically.

[0420] The implementation method of the association depth field can be any of the following:

[0421] 1) Indicate the number of old packets participating in the next encoded data block. Considering factors such as the channel condition, the maximum window lengths of the encoding window and the decoding window, a maximum value L is given and represented by bits. In this case, the association depth is counted sequentially forward from the current data block;

[0422] 2) Indicate the bitmap of the old packets participating in the next encoded data block. The bitmap needs to give a fixed number of bits (represented by L) in combination with the size of the data block, the channel condition, the encoding window length, and the feasibility of the scheme;

[0423] 3) Indicate the total number of original data packets Pack_Total participating in the current encoding, represented by bits. The number of associated old packets can be obtained by calculating Pack_Total - N;

[0424] 4) Divide it into two sub-fields to indicate any two of the index number of the first original data packet participating in the encoding, the index number of the last original data packet, or the total number of the first original data packet to the last original data packet;

[0425] 5) Divide it into two sub-fields to indicate any two of the starting packet number of the sending-end encoding window participating in the encoding, the ending packet number of the sending-end encoding window, and the effective length participated by the sending-end encoding window.

[0426] 2. For feedback formats 0_1_0 and 0_1_1, the number of encoded packets C of the next encoded data block is a fixed value.

[0427] When not considering the decoding window state, it is equivalent that the sum of the number of new packets N and the number of old packets O is a fixed value, i.e., C = N + O, and the values of the correlation depth D and O are equal. Given D or O, N can be deduced according to the semi-static information C. Optionally, the information of the new packet number N field can also be explicitly indicated, or the new packet number N field information can be not carried. The sum of the number of new packets N and the number of old packets O participating in the encoding of the next coding data block is fixed (N + O is a fixed value), and either the packet number (N) field or the correlation depth (D) field of the original data block can be selected.

[0428] In the header information of the sender, the correlation depth field D is equal to the number of data packets (the number of old packets O) contained in the previous data block, or can be implied in the number of new packets N participating in the encoding of the next data block. Specifically, it can be any of the following schemes:

[0429] 1) Indicate the number of old packets participating in the next coding data block. The maximum value L of the range is L = N + O, represented by bits. In this case, the correlation depth is counted sequentially forward from the current data block;

[0430] 2) Indicate the bitmap of the old packets participating in the next coding data block. The bitmap needs to give a fixed number of bits (represented by L) in combination with the size of the data block, the channel condition, the coding window length, and the feasibility of the scheme;

[0431] 3) Indicate the number of new packets N currently participating in the encoding, represented by . The associated number of old packets O can be obtained by subtracting N from the total number of data packets N + O;

[0432] 4) Divide into two sub-fields to indicate any two of the index number of the first original data packet participating in the encoding, the index number of the last original data packet, or the total number of the first original data packet to the last original data packet;

[0433] 5) Divide into two sub-fields to indicate any two of the starting packet number of the sender's coding window participating in the encoding, the ending packet number of the sender's coding window, and the effective length participated by the sender's coding window.

[0434] Optionally, the new packet number N field participating in the encoding of the next data block can be specifically any of the following schemes:

[0435] 1) Indicate the number of new packets N currently participating in the encoding. The maximum value is L and needs to be represented by bits;

[0436] 2) A bitmap indicating the number N of new packets currently participating in encoding. The bitmap needs to give a fixed number of bits (denoted by L as the maximum value) in combination with the size of the data block, the channel condition, the encoding window length, and the feasibility of the scheme.

[0437] When considering the decoding window state (window length), it is necessary to indicate the associated depth field D and the number N field of new packets in the next data block participating in encoding respectively. According to the usage of the window length, the redundant packet quantity R' = R + ΔR is defined. Among them, ΔR is the redundant packet quantity related to the state variable Length_Wind_Decoder of the decoder, expressed as ΔR = f(Length_Wind_Decoder), where the function f represents a mapping relationship between the usage of the decoder window length and the number of additional redundant packets. At this time, the quantity relationship satisfies C = N + O + ΔR.

[0438] The header information of the sender needs to carry the associated depth field D (equal to the number O of data packets included in the previous data block) and the number N field of new packets in the next data block participating in encoding respectively. The associated depth field D can specifically be any of the following schemes:

[0439] 1) Indicating the number of old packets participating in the next encoded data block, with the maximum value L = N + O in the range, represented by bits, and the associated depth in this case is counted sequentially forward from the current data block;

[0440] 2) Indicating the bitmap of old packets participating in the next encoded data block. The bitmap needs to give a fixed number of bits (denoted by L as the maximum value) in combination with the size of the data block, the channel condition, the encoding window length, and the feasibility of the scheme;

[0441] 3) Divided into two sub - fields, indicating any two of the index number of the first original data packet participating in encoding, the index number of the last original data packet, or the total number of original data packets from the first to the last;

[0442] 4) Divided into two sub - fields, indicating any two of the starting packet number of the sender's encoding window participating in encoding, the ending packet number of the sender's encoding window, and the effective length of the sender's encoding window participating in encoding.

[0443] The number N field of new packets in the next data block participating in encoding can specifically be any of the following schemes:

[0444] 1) Indicating the number N of new packets currently participating in encoding, with the maximum value L, then represented by bits;

[0445] 2) A bitmap indicating the number N of new packets currently participating in encoding. The bitmap needs to give a fixed number of bits (denoted by L as the maximum value) in combination with the size of the data block, the channel condition, the encoding window length, and the feasibility of the scheme.

[0446] 3) Indicating the number ΔR of redundant packets related to the decoding window currently participating in encoding. Here, the maximum value is defined as L and is represented by bits.

[0447] 4) A bitmap indicating the number ΔR of redundant packets related to the decoding window currently participating in encoding, with a length of L bits.

[0448] II. For the system encoding scheme

[0449] 1. The feedback formats 1_0_0 and 1_0_1 both belong to the case where the number of packets (N value) of the next original data block is fixed. The packet number field of the data block is not required because it has been semi-statically configured.

[0450] The implementation method of the associated depth field can be any of the following:

[0451] 1) Indicating the number of old packets participating in the next encoded data block. Considering factors such as the channel condition and the maximum window length of the encoding window, a maximum value L is given and is represented by bits.

[0452] 2) A bitmap indicating the old packets participating in the next encoded data block. The bitmap needs to give a fixed number of bits (denoted by L) in combination with the size of the data block, the channel condition, the encoding window length, and the feasibility of the scheme.

[0453] 3) Indicating the number Block_Num of old blocks participating in the next encoded data block. Considering factors such as the channel condition and the maximum window length of the encoding window, a maximum value Block_Max is given and is represented by bits. The number of old packets is obtained by multiplying the number of old blocks by the block length N.

[0454] 4) A bitmap indicating the old blocks participating in the next encoded data block, from which the number of packets participating in encoding can be calculated.

[0455] 5) Indicating the total number of original data packets currently participating in encoding.

[0456] 6) Indicating any two of the index number of the first original data packet participating in encoding, the index number of the last original data packet participating in encoding, or the total number of the first original data packet to the last original data packet participating in encoding.

[0457] 7) Indicate any two of the starting packet number of the sender encoding window participating in encoding, the ending packet number of the sender encoding window, and the effective length participated by the sender encoding window.

[0458] It can be understood that the above-mentioned correlation depth D is only valid for encoded data packets. The system packet is the original data packet itself, and its own system is 1, and the coefficient of other packets is 0, and the correlation depth D = 0.

[0459] 2. For the feedback formats 1_1_0 and 1_1_1, the number C of encoded packets in the next encoded data block is a fixed value. It is necessary to indicate the correlation depth field D and the number N field of new packets participating in encoding in the next data block respectively, and there is no direct relationship between the two.

[0460] The correlation depth field D in the header information of the sender is not equal to the number of data packets (old packet number O) included in the previous data block. Specifically, it can be any of the following schemes:

[0461] 1) Indicate the number of old packets participating in the next encoded data block. Considering factors such as the channel condition and the maximum window length of the encoding window, a maximum value L is given. This value can be semi-statically determined by the length of the data block and is represented by bits.

[0462] 2) Indicate the bitmap of the old packets participating in the next encoded data block. The bitmap needs to give a fixed number of bits (represented by L) considering the size of the data block, the channel condition, the encoding window length, and the feasibility of the scheme;

[0463] 3) Indicate the number Block_Num of old blocks participating in the next encoded data block. Considering factors such as the channel condition and the maximum window length of the encoding window, a maximum value Block_Max is given and is represented by bits. The number of old packets is calculated by combining the number of old blocks and the block length;

[0464] 4) Indicate the bitmap of the old blocks participating in the next encoded data block, from which the number of packets participating in encoding can be calculated; 5) Indicate the total number of original data packets currently participating in encoding;

[0465] 6) Indicate any two of the index number of the first original data packet participating in encoding, the index number of the last original data packet, or the total number from the first original data packet to the last original data packet;

[0466] 7) Indicate any two of the starting packet number of the sender encoding window participating in encoding, the ending packet number of the sender encoding window, and the effective length participated by the sender encoding window.

[0467] It can be understood that the above-mentioned association depth D is only valid for the encoded data packets. The system packet is the original data packet itself, with its own system being 1 and the coefficient of other packets being 0, and the association depth D = 0.

[0468] The number N field of the new packets participating in the encoding of the next data block can specifically be any of the following schemes:

[0469] 1) Indicate the number N of new packets currently participating in the encoding, using to represent;

[0470] 2) Indicate the bitmap of the number N of new packets currently participating in the encoding. The bitmap needs to give a fixed number of bits (represented by C) in combination with the size of the data block, the channel condition, the encoding window length, and the feasibility of the scheme;

[0471] 3) When considering the state of the decoding window, indicate the number ΔR of redundant packets related to the decoding window currently participating in the encoding, using

[0472] 4) When considering the state of the decoding window, indicate the bitmap of the number ΔR of redundant packets related to the decoding window currently participating in the encoding, with a length of C bits;

[0473] Next, the coefficient field will be introduced.

[0474] The indication information of the encoding coefficient can be carried in the header of the encoded data packet. Combining the association depth and the number of redundant packets determined by the feedback information, the original data packet information of the encoded data packet and the coefficients corresponding to the original data packet information can be indicated. In addition to the method of carrying the encoding coefficient in the packet header, a semi-static codebook can also be configured and the encoding coefficient can be indicated in the semi-static codebook through the codebook indication information.

[0475] The codebook can be a local codebook or a global codebook.

[0476] The advantage of the local codebook is that the range of the GF field is small, and the number of packets participating in the encoding (i.e., the dimension of a coefficient vector) is usually much smaller than the maximum encoding window range, and the encoding and decoding calculation complexity is low. However, it is necessary to rely on reference information such as the association depth to locate the positions and numbers of the original data packets to be encoded, and the decoder at the receiving end needs to equivalently form a global decoding coefficient matrix according to the above information for decoding.

[0477] The global codebook defines a global coefficient matrix with the dimension of the encoding coefficient vector equal to the maximum encoding window length value at the transmitter. The number of coefficient vectors in the matrix (i.e., the number of encoded data packets) is a value greater than the maximum decoding window length value at the receiver. By cyclically using the encoding coefficients in the codebook, all encoded data packets in the decoding window can be made linearly independent, ensuring decoding effectiveness. However, the drawback is that a larger GF field size needs to be considered, resulting in a higher computational complexity in the encoding and decoding process. The local codebook and the global codebook are described separately below.

[0478] I. Regarding the local codebook

[0479] As Figure 19 shown, it is a schematic diagram of the local codebook. The local codebook is a matrix with k rows and n columns (k*n). The codebook contains n coefficient vectors (n columns, which can be used to generate at most n encoded data packets). The maximum dimension of each coefficient vector is k (i.e., it can be used to encode at most k original data packets), and the n coefficient vectors are pairwise linearly independent. The codebook coefficients corresponding to the pairwise linear independence property include, but are not limited to, Vandermonde matrices or Cauchy matrices, etc. Here, the values of k and n in the local codebook are less than or much less than the size of the encoding and decoding window. Optionally, a general local codebook can be defined or configured. The encoding process of the transmitter encoder can select a submatrix from it as the encoding coefficient matrix for an original data block (which can also be called the encoding core matrix), and then the encoding of each encoded data block can be gradually completed according to the submatrix.

[0480] The specific operations of different encoding schemes are different, and the usage methods of the codebook also vary.

[0481] 1. For non-systematic codes, taking the case where the number of data packets encoded each time is the same (i.e., the sum of the number of new packets and the number of old packets is a fixed value, N + O is a fixed value) as an example, since the correlation depth and the number of encoded data packets are already determined, a submatrix can be selected from the local codebook as the encoding coefficient. For example, when N + O = 4 and the number of encoded data packets is 6 (the number of redundant packets R = 2), (a i,j ~a i+3,j ) can be selected as a coefficient vector. Here, it is satisfied that i ≥ 1 and i + 3 ≤ k. With the value of i unchanged, 6 different coefficient vectors can be randomly selected from the local codebook. Here, the 6 vectors can be 6 consecutive column vectors on the local codebook, or they can also be 6 non-consecutive column vectors on the local codebook. These 6 vectors form a submatrix of the codebook. As Figure 20As shown in the figure, it is a schematic diagram of local codebook selection. Sub-matrix 1, sub-matrix 2 or sub-matrix 3 can be selected. Here, a smaller codebook can also be selected, as long as it can meet the encoding requirements. In addition, if the parameter N + O = 4, the maximum number of encoded data packets is 6 (the maximum number of redundant packets R is 2), a minimum local codebook can be given, such as sub-matrix 1. Each time, by adjusting the association depth D (the number of data packets in the current original data block and the data packets in the previous data block), encoding is performed using the existing codebook, such as Figure 21 As shown in the figure, it is a schematic diagram of the local codebook generation matrix. The first generation matrix uses a 4 * 4 codebook, the second generation matrix uses a 4 * 5 codebook, and D = 1. The third generation matrix uses a 4 * 6 codebook, D = 2; subsequent encoding generation matrices follow the same pattern, as long as within the codebook, every two encoding vectors are linearly independent

[0482] 2. For the systematic code scheme, the default coefficient of the systematic packet is 1, and the other coefficients are 0. There is no need to use the local codebook. For the redundant encoded data packets, the local codebook can be used according to the number of required encoded data packets according to the foregoing content

[0483] II. Regarding the global codebook

[0484] The global codebook needs to consider the length limitations of the transmitter encoder and the receiver decoder. Usually, in order to ensure the decoding ability of the receiver, the length of the transmitter encoding window needs to meet the following conditions: the length L of the transmitter encoding window is less than or equal to the length Length_Wind_Decoder of the receiver decoding window. Correspondingly, the length of the encoding and decoding window determines the size of the codebook and the size of the corresponding GF field. As Figure 22 As shown in the figure, it is a schematic diagram of the global codebook. The global codebook is a matrix with K rows and N columns (i.e., K * N). This codebook contains N coefficient vectors (N columns, which can be used to generate at most N encoded data packets). The maximum dimension of each coefficient vector is K (i.e., it can be used to encode at most K original data packets), and the N coefficient vectors are pairwise linearly independent. The codebook coefficients corresponding to the pairwise linear independence property include, but are not limited to, Vandermonde matrices or Cauchy matrices, etc. K in the global codebook is greater than or equal to the maximum window length L of the transmitter encoder, and the value of N is greater than or equal to the maximum window length Length_Wind_Decoder of the receiver decoder. Correspondingly, the GF field value can be selected according to max{K, N}, that is, for GF(2 q ) in, 2 q≥ max{K, N}. In the global codebook, the encoded data packet carries the header information, and the header information carries the indication information of the codebook. The indication information of the row codebook includes any two of the starting position Para_start, the ending position Para_end, and the number of coefficients Para_length of the coefficients in the codebook. When the number of coefficients Para_length is semi-statically configured, only the starting position Para_start or the ending position Para_end of the codebook is required. In summary, the sender encoder encodes the original data and sequentially selects the encoding coefficients from the global codebook in a cyclic manner. For example, the first encoded data packet in the initial stage corresponds to the first set of encoding coefficients in the global codebook, and the encoding coefficients of the subsequent encoded data packets are sequentially selected from the global codebook in a cyclic manner.

[0485] The specific operations of different encoding schemes are different, and the usage methods of the codebook also vary.

[0486] 1. For the non-systematic code scheme

[0487] As Figure 23 shown, it is a schematic diagram of the global codebook selection. In a complete global codebook, if the number of new packets in each data block is the same, the number of old packets changes with the association depth. First encoding: Encode 3 new packets to generate 3 encoded data packets, and select the coefficient sub-matrix 1 from the global codebook. Second encoding: Encode 3 new packets and 1 old packet to generate 4 encoded data packets. Considering that the association depth is 1, therefore, select the coefficient sub-matrix 2 from the global codebook. Third encoding: Encode 3 new packets and 2 old packets to generate 5 encoded data packets, and select the coefficient sub-matrix 3 from the global codebook, and so on. If the total number of packets in each encoded data block is the same, that is, the sum of the number of new packets and old packets is the same, taking each encoded data block containing a total of 3 packets as an example, encode to generate 3 encoded data packets. First encoding: Encode 3 new packets to generate 3 encoded data packets, and select the coefficient sub-matrix 1 from the global codebook. Second encoding: Encode 2 new packets and 1 old packet to generate 3 encoded data packets, and select the coefficient sub-matrix 2 from the global codebook. Third encoding: Encode 1 new packet and 2 old packets to generate 3 encoded data packets.

[0488] As the encoded data blocks at the sender enter the window, there will also be a decoder window at the receiver. If the receiver successfully decodes the current and previous encoded data blocks, an out-window operation (such as clearing the decoder window) is performed on the encoded data blocks in the decoder window, and the decoding situation is fed back to the sender. Then, the sender determines the encoded data blocks that have been successfully decoded, removes the successfully decoded data blocks and the data blocks before this encoded data block from the encoding window, and then the global codebook can be reused. When the encoding window is full and the encoded data blocks in the window have not been successfully decoded, before the next encoded data block enters the window, if the size of the encoding window is fixed, an old encoded data block can be removed from the window.

[0489] 2. For the systematic code scheme

[0490] The system packet defaults its own coefficient to 1 and the other coefficients to 0, and does not need to use the global codebook. For the encoded data packets, the global codebook can be used according to the number of encoded data packets required as described above.

[0491] The beneficial effects of the above-mentioned Embodiment 4 are as follows: The control messages at the sender are completely designed. The control messages carried in the header of each encoded data packet can indicate the encoding decisions determined by the sender based on the feedback information from the receiver and other system information, which are reflected as encoding parameters. Due to the influence of other system information, the encoding parameters in the packet header are not always the same as the encoding parameters corresponding to the feedback information from the receiver. Therefore, by identifying the control messages in the header of the encoded data packet, the receiver can obtain specific encoding parameters including the correlation depth D, the number of redundant packets R, the number of new packets N, and the corresponding encoding coefficient matrix, etc., so that the encoding parameters and the corresponding encoded data can be accurately identified at the receiver, achieving accurate decoding. And a semi-static local and global codebook scheme for the encoding coefficient matrix and the corresponding design of the indication information are given, reducing the overhead caused by carrying random coefficients in the packet header, ensuring a reduction in the complexity of GF domain operations, and ensuring that the encoded data packets within an encoded data block and between encoded data blocks are linearly independent.

[0492] Embodiment 5

[0493] Embodiment 5 provides an encoding scheme by combining the erasure situation (which can also be understood as packet loss) during the transmission process of the encoded data packets, the decoding at the receiver, and the feedback information from the receiver, including design schemes under systematic codes and non-systematic codes, and different designs are made according to different parameter configurations.

[0494] As Figure 24 shown, it is a schematic diagram of the sender process of the feedback-based encoding scheme.

[0495] Step 2401, the sender determines the type of the encoding scheme and initializes the encoding parameters during the initialization phase.

[0496] Among them, the coding scheme includes a systematic code scheme and a non-systematic code scheme.

[0497] The initialized coding parameters include the correlation depth D, the number of redundant coding data packets R, the number of new original data packets N in the original data block, and the coding coefficients (which can be randomly generated or selected from a codebook).

[0498] Step 2402: The sender encodes according to the coding parameters, generates coded data packets and sends them.

[0499] After clarifying the major category of the coding scheme, it is necessary to clarify which parameters in the scheme are semi-statically configured. Here, the parameters that can be semi-statically configured are considered as follows: the total number of original data packets to be encoded (including the sum of the original data packets in the new original data block and the original data packets in several old original data blocks), the correlation depth D, the number of original data packets (i.e., new packets) N in the new original data block, and the number of redundant coding data packets R. The sender encodes the original data according to the scheme type, semi-static parameter configuration, and initial parameter configuration in the initialization state, generates coded data packets (including adding header information), and sends the coded data packets.

[0500] Step 2403: The sender receives feedback information and other system information.

[0501] The feedback information here can refer to the description in the foregoing embodiments.

[0502] The other system information here includes but is not limited to: channel state information, other indications or system information that affects the coding parameters, etc.

[0503] Step 2404: The sender determines whether the feedback information contains information indicating successful decoding.

[0504] If so, go to step 2405; if not, go to step 2406.

[0505] Step 2405: The sender removes the successfully decoded original data from the encoder.

[0506] The sender receives the feedback information from the receiver and needs to determine whether the decoding is successful according to the feedback information. If the decoding is successful, the sender's encoder clears the original data packets; otherwise, no operation is performed. Since the size of the convolutional network encoder is limited, if the convolutional network encoder is full, one unit of old data is cleared from the convolutional network encoder, and one unit of new data enters the convolutional network encoder.

[0507] Step 2406: The sender determines the coding parameters for the next encoding according to the feedback information and other system information.

[0508] The transmitting end determines the encoding parameters for the next encoding based on the scheme type, semi-static parameter configuration, combined with the feedback information and other system information. Optionally, the encoding parameters here can be the same as those indicated by the feedback information, or they can be updated based on other system information on the basis of the feedback information. Moreover, the determined encoding parameters for the next encoding need to be carried in the header of the encoded data packet generated by the next encoding to ensure that the convolutional network decoder at the receiving end can correctly identify the relevant parameter information and thus accurately decode.

[0509] The following presents several schemes in combination with the encoding scheme type and semi-static parameter configuration:

[0510] It should be noted that in the following Figures 25 to 30 where G 0 、G 1 、G 2 、G 3 、G 4 are encoding coefficients. The dots in G 0 represent the encoding coefficients of new packets, and the dots in G 1 、G 2 、G 3 、G 4 represent the encoding coefficients of old packets. The black dots represent the coefficients of non-redundant encoded data packets, while the white dots represent the coefficients of redundant encoded data packets. The blank positions all represent the coefficient as 0, and the values represented by the dots can also be 0.

[0511] 1. Feedback-based non-systematic code scheme. The total number of data packets in each encoded data block is a fixed value. When the influence of the decoding window and the corresponding algorithm are not considered, it is equivalent to the total number of original data packets to be encoded being a fixed value (N + O semi-static configuration).

[0512] As Figure 25 shown, it is a schematic diagram of a feedback-based adaptive non-systematic code scheme. Among them, the number of data packets in the encoded data block is a fixed value of 4, which is equivalent to the total number of original data packets (N + O) to be encoded at the transmitting end being a fixed value, specifically N + O = 4. In the figure, B i on the left represents the original data block at the transmitting end. Each original data block contains several original data packets, denoted by a i representing the original data packets. The upper side of the figure represents the encoded data block, denoted by B' i . Each encoded data block contains several encoded data packets. The number of encoded data packets in each encoded data block is the same, all being 4, that is, the equivalent encoding coefficient matrix is always a 4 * 4 matrix each time. The lower part shows the encoding coefficients. The dots in G 0 represent the encoding coefficients of new packets, and the dots in G 1 represent the encoding coefficients of old packets. G 0 and G 1The white dots in it represent the coefficients of the redundant encoded data packets. The encoded data packet is denoted as c i , and the redundant packet is denoted as p i . The encoding coefficients here can be random coefficients or semi-static coefficient codebooks can be considered. If a local codebook is selected, a 4*4 linearly independent codebook is sufficient. If a global codebook is selected, a Q*Q codebook needs to be considered, where Q ≥ max(K, N), and K and N are related to the lengths of the convolutional network encoder at the sending end and the convolutional network decoder at the receiving end. For details, see Embodiment 4 above. At the initial moment, for the original data block B 1 's a 1 ~a 4 , encoding is performed to generate c 1 ~c 1 ~c 4 of B 2 ', and c 0 is erased (corresponding coefficient column label "×"), and the receiving end cannot successfully decode, then feedback information is generated. The parameters related to the feedback information here can be characterized as the information in Embodiment 2 above, such as the rank value, and then the feedback information is sent to the sending end. The sending end determines the association depth D = 1 data packet according to the parameters of the feedback information, and the number of packets N of the next original data block is 3, and the number of redundant packets R is 1. The generation matrix consists of the encoding kernel matrices G 1 and G 0 , where G 1 is a 3*4 matrix and G 1 is a 1*4 matrix, which can correspond to any original data packet in B 2 . In addition, if the influence of the state (window length) of the decoder on the feedback information or encoding is considered, according to the usage of the window length, a redundant packet R' = R + ΔR is defined. Among them, ΔR is a function related to the state variable Length_Wind_Decoder of the decoder, expressed as ΔR = f(Length_Wind_Decoder), where the function f represents a mapping relationship between the usage of the decoder window length and the number of additional redundant packets. The corresponding algorithm can be considered at the sending end or at the receiving end. The sending end needs to carry the parameters of the window length usage in the feedback information and perform relevant algorithms to add redundancy on this basis. The receiving end directly executes the relevant algorithm and converts the result into other parameters, such as the number of redundant data packets, and the feedback information does not need to carry the decoder window length parameter separately. In the figure, the state feedback of the decoder is not considered. For the encoded data block B′ 5 's encoded data packets c 7 are erased. According to the feedback information, the association depth D = 2 data packets. Correspondingly, the original data block B 3 contains a 8 and a 9 , and B2 a in 6 and a 7 are jointly encoded. And so on, when the sender encodes the original data packets in the original data block B 5 and the receiver receives the corresponding encoded data block B′ 5 c in 13 ~c 15 and the redundant packet p 5 are successfully decoded, then all the original data packets in the original data block B 1 ~B 5 are successfully decoded. The receiver removes the encoded data blocks B′ 1 ~B′ 5 from the decoder window. Similarly, the sender removes the original data packets in the original data block B 1 ~B 5 from the encoder window according to the feedback information from the receiver.

[0513] 2. For the feedback-based non-systematic code scheme, the number of packets N in the current original data block is a fixed value (the number of new packets N is semi-statically configured).

[0514] As Figure 26 shown, it is a schematic diagram of the feedback-based adaptive non-systematic code scheme. Among them, the number of new packets in the original data block at the sender is the same, that is, N is a fixed value. This scheme 2 is overall consistent with scheme 1. The difference is that the number of new packets N in the original data block at the sender is semi-statically configured to be 3, and the value of N+O will also change accordingly according to the change of the correlation depth. According to the erasure situation of the encoded data packets, the number of redundant packets R will also be adjusted correspondingly. For example, for the original data packets in the original data block B 3 and the original data packets in the original data block B 2 a 6 are jointly encoded to generate the encoded data block B′ 3 , where the encoded data packets c 8 and c 9Is erased. According to the feedback information, the sender learns that rank = 2. Therefore, for the next original data block, the associated depth D = 2 data packets, R = 2 data packets, and the corresponding encoding coefficients are a 5*5 matrix. Additionally, if the impact of the decoder's state (window length) on the feedback information or encoding is considered, a redundant packet R′ = R + ΔR is defined according to the usage of the window length. Here, ΔR is a function related to the decoder state variable Length_Wind_Decoder, expressed as ΔR = f(Length_Wind_Decoder), where the function f represents a mapping relationship between the decoder window length usage and the number of additional redundant packets. The corresponding algorithm can be considered at the sender side or the receiver side. The sender needs to carry the parameter of the window length usage in the feedback information and perform the relevant algorithm to add additional redundancy based on this. The receiver directly executes the relevant algorithm and converts the result into other parameters, such as the number of redundant data packets. The feedback information does not need to carry the decoder window length parameter separately. The impact of the decoder window state is considered here. The simplified algorithm here is to add an additional redundant packet at the window tail, that is, B 4 ~B 5 The 4 original data packets a 12 ~a 15 are encoded to generate 5 encoded packets. Based on the redundant packet p 5 , an additional redundant packet p 6 is generated according to the decoder window-related algorithm f. Even if one data packet in the last encoded data block is lost, correct decoding can be guaranteed.

[0515] 3. For the feedback-based non-systematic code scheme, the number of original data packets N in the current original data block is a fixed value, and the encoding redundant packet R is a fixed value (the N value and R value are semi-statically configured).

[0516] As Figure 27 shown, it is a schematic diagram of the feedback-based average redundancy non-systematic code scheme. Among them, the number of new packets N in each original data block is a fixed value. Here, N = 3, and in the average redundancy scheme, the number of redundant packets is also a fixed value. Here, R = 1. Therefore, the sender first encodes the data packets a 1 in the data block B 1 ~a 3 to generate the encoded data block B′ 1 , including four encoded data packets c 1 ~c 3 and the redundant encoded data packet p 1 . The encoding coefficients can be randomly generated in the GF domain and carried in the encoded data packet header. It is also possible to select the aforementioned semi-static local or global codebook and carry the coefficient indication information in the encoded data packet header. During the transmission at the sender side, the encoded data packets c 2 and c 3is erased (the corresponding coefficient column label is "×"). After receiving the encoded data packet, the receiving end performs related operations such as decoding and generates feedback information. Here, the parameters related to the feedback information can be characterized as the rank value or the information described in the foregoing embodiments, and the feedback information is sent to the sending end. The sending end determines the association depth according to the parameters of the feedback information. Since the number of redundant packets is semi-statically configured, no adjustment is required. Because the encoded data block B′ 1 has a rank of 2 and is not full rank, the decoding fails. Therefore, the association depth is equal to 1 (i.e., the number of original packets - the rank value). Correspondingly, for the original data block B 2 all data packets and one data packet of the original data block B 1 (such as a 3 ) are jointly encoded. The generated matrix consists of the encoding kernel matrices G 0 and G 1 . Among them, G 0 is a 3*4 matrix, and G 1 is a 1*4 matrix. In the encoded data block B′ 2 , c 5 is erased. The receiving end jointly decodes the encoded data blocks B′ 2 and B′ 1 . The decoding fails, and feedback information is generated and sent to the sending end. The sending end determines the association depth to be 1 data packet according to the feedback, and so on until the encoded data block B′ 5 is received, and through B′ 1 ~B′ 5 joint decoding is successful. The receiving end decoding window is cleared (B′ 1 ~B′ 5 goes out of the window), and decoding information is fed back. The original data blocks B 1 ~B 5 of the sending end go out of the window (the encoding window of the sending end is cleared). The subsequent operations are carried out in the same way. On the contrary, if the decoding fails, it is fed back to the sending end. The encoder B 1 of the sending end goes out of the window, B 6 enters the window and is encoded and sent. The decoder B′ 1 of the receiving end goes out of the window and receives B′ 6Proceed to the window and perform the decoding operation, and so on. In addition, when not considering the decoder state, the number of redundant packets R in the current encoded data block is semi-statically configured by the system information, that is, the average redundancy. When considering the decoder state, according to the usage of the window length, the number of redundant packets R' = R + ΔR is defined, where ΔR is a function related to the state variable Length_Wind_Decoder of the decoder, expressed as ΔR = f(Length_Wind_Decoder), where the function f represents a mapping relationship between the usage of the decoder window length and the number of additional redundant packets. The corresponding algorithm can be considered at the sender or at the receiver. The sender needs to carry feedback information with parameters of the window length usage, and perform relevant algorithms to add additional redundancy based on this. The receiver directly executes the relevant algorithm and converts the result into other parameters, such as the number of redundant data packets. The feedback information does not need to carry the decoder window length parameter separately.

[0517] 4. For the system code scheme based on feedback, the number of new packets N in the current original data block is a fixed value (the number of new packets N is semi-statically configured), with adaptive correlation depth.

[0518] Such as Figure 28 shown, it is a schematic diagram of the system code scheme based on feedback. Among them, the number of new packets N in the current original data block is a fixed value (semi-statically configured). Different from the non-system code scheme based on feedback, this system code scheme needs to feedback the situations of system codes and redundant encoded data packets respectively. Different adaptive adjustments are made for the correlation depths corresponding to the erasures of system packets and encoded data packets. The correlation depth D is no longer in units of the number of data packets, but in units of data blocks. Only when a system packet is erased, it is related to the previous original data block, that is, D = 1. When an encoded data packet is erased, the correlation depth D in the next encoding is equal to the correlation depth in the previous encoding + 1. In a specific scheme, the receiver generates feedback information according to the system code scheme in Embodiment 2, indicating the situations of system packets and encoded data packets respectively. For example, in the encoded data block B' 2 in the system packet a 4 and the redundant encoded data packet p 1 are erased. The feedback information generated by the receiver indicates that there is 1 missing system packet and 1 missing encoded data packet respectively. The sender correspondingly generates two redundant encoded data packets R = 2. Since the encoded data packet is erased, in order to ensure the decoding characteristics, the correlation depth D = 2 is designed here, for two encoded data blocks, and the generating matrix is composed of G 0 、G 1 and G 2The composition, and the corresponding coding coefficients can be randomly generated or selected from a semi-static codebook, which will not be elaborated here. Optionally, here a correlation depth D = 2 of a redundant packet and a correlation depth D = 1 of another redundant packet can also be set, that is, the corresponding correlation depth D is set for the number of incorrect system packets and redundant coding packets respectively. The foregoing scheme only selects the maximum correlation depth, which can reduce the header overhead. For the coded data block B′ 3 , only the system packet a 9 is erased. Therefore, for the next original data block B 4 , the correlation depth D = 1 during coding, that is, the correlation depth is 1 original data block, and the coefficient matrix is composed of G 0 and G 1 , and the number of redundant packets R = 1. In addition, when the decoding window at the receiving end is full, before a new coded data block enters the decoding window, an out-window operation needs to be performed on the earliest coded data block in the decoding window. Optionally, here since the a 1 contained in the coded data block B′ 1 ~a 3 data is still contained in B′ 2 and B′ 3 , but not included in B′ 4 . Therefore, perform an out-window operation on B′ 1 and B′ 2 . B′ 3 only considers the system packet part, and jointly performs a decoding operation with the subsequent coded data blocks and the newly windowed coded data blocks. Once the decoding is successful, the relevant coded data blocks can be directly performed an out-window operation at the receiving end decoder. This is a fast out-window judgment algorithm. Another optional scheme is to only perform an out-window operation on one coded data block B′ 1 . Since some system packets of B′ 1 are correct and regarded as known information, the coded data packets in B′ 2 and B′ 3 can be simplified and regarded as the a 2 contained in B′ 1 and the a 4 contained in B′ 2 are visible but cannot be decoded. Through the subsequently newly windowed coded data blocks, if the decoding is successful, the previous coded data blocks are also decoded successfully, that is, although B′ 1 goes out of the window, the original data packet a 2It is also successfully decoded; if the newly encoded data block is successfully decoded, all the encoded data blocks in the decoding window are removed from the window, and the new encoded data block enters the window. It should be noted that when the encoded data of the receiver decoder is removed from the window, the sender will also synchronously perform the operation of removing the old original data according to the feedback information of the receiver. In other words, for the encoded data block removed from the window at the receiver, the relevant original data block at the sender will also perform the relevant operation of removing the window, that is, the encoding process does not include the encoding of the relevant original data block.

[0519] Accordingly, the second optional scheme above increases the probability of successful decoding compared to the first optional scheme, but the decoding delay of the corresponding encoded data block will increase. Both of the above two optional schemes can be considered, and the sender encodes in combination with the decoder status information in the feedback information of the receiver. If the influence of the decoder status (window length) on the feedback information or encoding is considered, according to the usage of the window length, the redundant packet number R' = R + ΔR is defined. Among them, ΔR is a function related to the decoder status variable Length_Wind_Decoder, expressed as ΔR = f(Length_Wind_Decoder), where the function f represents a mapping relationship between the usage of the decoder window length and the number of additional redundant packets. The corresponding algorithm can be considered at the sender or at the receiver. The sender needs to carry the parameter of the window length usage in the feedback information and perform additional redundancy based on the relevant algorithm. The receiver directly executes the relevant algorithm and converts the result into other parameters, such as the number of redundant data packets. The feedback information does not need to carry the decoder window length parameter separately. In this way, by combining the decoding window status and adding redundant encoded data packets at the end of the window, the current decoding ability can be improved and the delay overhead of successful decoding of the encoded data can be reduced.

[0520] 5. For the feedback-based systematic code scheme, the number N of original data packets of the current data block is a fixed value (the number N of new packets is semi-statically configured), and the association depth is fixed at the maximum value.

[0521] This Scheme 5 is similar to Scheme 4 and is also a feedback-based systematic code scheme. The difference is that each encoded data block has the maximum available association depth within the current encoding window. Since the association depth is semi-statically configured, it is not necessary to separately feedback the situations of the systematic packets and the encoded data packets (only the situation of the total feedback packets needs to be fed back). As Figure 29 shown, it is a schematic diagram of the feedback-based systematic code scheme. Before the receiver decodes successfully and within the decoding window length, the association depth D of B′ 2 is 2 data blocks, the association depth D of B′ 3 is 3 data blocks, the association depth D of B′ 4 is 4 data blocks, and the association depth D of B′ 5The associated depth D = 5 data blocks, and at this time the decoding is successful. In addition, when the decoding window is full, each time a data block exits the window, another data block enters the window, and the associated depth of the data block entering the window reaches the length of the maximum decoding window. For the following figure, assume B′ 5 Since the encoded data packet erasure fails to decode successfully and reaches the maximum window length, when the next encoded data block arrives, it is necessary to first perform the operation of exiting the decoding window on the encoded data block B′ 1 And the receiving end will send feedback information to the sending end. Similarly, the sending end will perform the operation of exiting the encoding window on the original data block B 1 Or when the encoding window length of the sending end is longer than the decoding window length of the receiving end (the encoding window of the sending end is not full and the operation of exiting the window is not performed), the original data block B 1 needs to be excluded during encoding. For the receiving end, the encoded data block B′ 1 exits the decoding window, the encoded data block B′ 6 enters the decoding window, and the associated depth of the encoded data block B′ 6 is still the maximum value, that is, D = 5, that is, the encoded data packets in B′ 6 are generated by encoding the original data packets of the original data block B 2 ~B 6 In addition, when not considering the decoder state, the number of redundant packets R in the current encoded data block is equal to the number of lost packets in the previous encoded data block; if considering the influence of the decoder state (window length) on the feedback information or encoding, according to the usage of the window length, define the number of redundant packets R' = R + ΔR. Among them, ΔR is a function related to the state variable Length_Wind_Decoder of the decoder, expressed as ΔR = f(Length_Wind_Decoder), where the function f represents a mapping relationship between the usage of the decoder window length and the number of additional redundant packets. The corresponding algorithm can be considered at the sending end or at the receiving end. The sending end needs to carry the parameter of the window length usage in the feedback information and perform relevant algorithms to add additional redundancy on this basis. The receiving end directly executes the relevant algorithm and converts the result into other parameters, such as the number of redundant data packets, and the feedback information does not need to carry the decoder window length parameter separately.

[0522] 6. Feedback-based systematic code scheme (the number of data packets in each encoded data block is fixed).

[0523] Such as Figure 30As described above, it is a schematic diagram of a feedback-based systematic code scheme. This scheme is similar to Scheme 4, except that the number of data packets in each original data block varies, and the number of data packets in each coded data block is a fixed value. When the influence of the decoding window state on redundant data packets is not considered, it is equivalent to the sum of the number of incorrect coded data packets in the previous coded data block and the number of systematic packets in the current coded data block being a fixed value. According to the feedback information, when the decoding window state is not considered, the number of redundant coded data packets R is equal to the number of lost packets in the previous coded data block; if the influence of the decoder state (window length) on the feedback information or coding is considered, according to the usage of the window length, the redundant packet number R' = R + ΔR is defined. Among them, ΔR is a function related to the state variable Length_Wind_Decoder of the decoder, expressed as ΔR = f(Length_Wind_Decoder), where the function f represents a mapping relationship between the usage of the decoder window length and the number of additional redundant packets. The corresponding algorithm can be considered at the sending end or at the receiving end. The sending end needs to carry the parameter of the window length usage in the feedback information and perform relevant algorithms to add additional redundancy based on this. The receiving end directly executes the relevant algorithm and converts the result into other parameters, such as the number of redundant data packets, and the feedback information does not need to carry the decoder window length parameter separately.

[0524] The beneficial effects of the above-mentioned Embodiment 5 are as follows: A non-systematic code and systematic code scheme is designed, and the specific scheme processes under different parameter configurations are given. The complete process is based on Embodiments 1 to 4. Embodiment 5 of the present invention designs a non-systematic code and systematic code scheme and gives the specific scheme processes under different parameter configurations. The complete process is based on Embodiments 1 to 4. Six coding schemes for feedback-based adaptive network coding are given from two major categories of systematic codes and non-systematic codes, generally improving the decoding performance at the receiving end, making it more likely for the original data packets to be decoded correctly, while reducing the redundant overhead and improving performance such as throughput. The systematic code has a shorter delay compared to the non-systematic code, but the coding correlation depth is in units of data blocks, that is, the correlation depth is longer, and the corresponding storage overhead is larger. On the contrary, the non-systematic code has a smaller correlation depth and smaller storage overhead, but since the coding coefficient matrix is not as sparse as the systematic code scheme, the encoding and decoding are more complex and the computational overhead is large.

[0525] Reference Figure 31 , which is a schematic diagram of a communication device provided by an embodiment of the present application. This communication device is used to implement each step corresponding to the second communication device or the sending end in the above-mentioned embodiments, such as Figure 31 As shown, the communication device 3100 includes a transceiver unit 3110 and a processing unit 3120.

[0526] A transceiver unit 3110 is configured to send first encoded data to a first communication device, receive indication information from the first communication device, and send second encoded data to the first communication device. A processing unit 3120 is configured to encode first original data to obtain the first encoded data, acquire second original data and encoding code rate information according to the indication information, where the second original data includes some or all of the first original data, and jointly encode third original data and the second original data according to the encoding code rate information to obtain the second encoded data, where the third original data does not include the first original data.

[0527] In a possible implementation method, the second original data includes one or more first original data packets in the first original data, and the indication information indicates the number of the first original data packets; the processing unit 3120 is configured to acquire the second original data according to the indication information, specifically including: being configured to acquire the second original data according to the number of the first original data packets.

[0528] In a possible implementation method, the second original data includes one or more first original data blocks in the first original data, and the indication information indicates the number of the first original data blocks; the processing unit 3120 is configured to acquire the second original data according to the indication information, specifically including: being configured to acquire the second original data according to the number of the first original data blocks.

[0529] In a possible implementation method, the indication information indicates the rank corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; the processing unit 3120 is configured to acquire the second original data according to the indication information, specifically including: being configured to determine the number of the first original data packets according to the rank corresponding to the first encoded data, and being configured to acquire the second original data according to the number of the first original data packets.

[0530] In a possible implementation method, the indication information indicates the rank corresponding to the first encoded data, and the second original data includes one or more first original data blocks in the first original data; the processing unit 3120 is configured to acquire the second original data according to the indication information, specifically including: being configured to determine the number of the first original data blocks according to the rank corresponding to the first encoded data, and being configured to acquire the second original data according to the number of the first original data blocks.

[0531] In a possible implementation method, the indication information indicates the reception status of system data packets and redundant data packets corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; the processing unit 3120 is configured to obtain the second original data according to the indication information, specifically including: being configured to determine the number of the first original data packets according to the reception status of system data packets and redundant data packets corresponding to the first encoded data; and being configured to obtain the second original data according to the number of the first original data packets.

[0532] In a possible implementation method, the indication information indicates the reception status of system data packets and redundant data packets corresponding to the first encoded data; the second original data includes one or more first original data blocks in the first original data; the processing unit 3120 is configured to obtain the second original data according to the indication information, specifically including: being configured to determine the number of the first original data blocks according to the reception status of system data packets and redundant data packets corresponding to the first encoded data; and being configured to obtain the second original data according to the number of the first original data blocks.

[0533] In a possible implementation method, the indication information indicates the first associated depth of encoding; the second original data includes one or more first original data packets in the first original data; the processing unit 3120 is configured to obtain the second original data according to the indication information, specifically including: being configured to determine the number of the first original data packets according to the first associated depth; and being configured to obtain the second original data according to the number of the first original data packets.

[0534] In a possible implementation method, the indication information indicates the first associated depth of encoding; the second original data includes one or more first original data blocks in the first original data; the processing unit 3120 is configured to obtain the second original data according to the indication information, specifically including: being configured to determine the number of the first original data blocks according to the first associated depth; and being configured to obtain the second original data according to the number of the first original data blocks.

[0535] In a possible implementation method, the encoding code rate information indicates the number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, or the encoding code rate corresponding to the second encoded data.

[0536] In a possible implementation method, the indication information indicates the rank corresponding to the first encoded data; the processing unit 3120 is configured to obtain encoding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second encoded data according to the rank corresponding to the first encoded data; being configured to determine the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0537] In a possible implementation method, the processing unit 3120 is configured to obtain encoding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second encoded data according to the rank corresponding to the first encoded data; being configured to determine the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0538] In a possible implementation method, the indication information indicates the system data packet reception situation and the redundant data packet reception situation corresponding to the first encoded data; the processing unit 3120 is configured to obtain encoding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second encoded data according to the system data packet reception situation and the redundant data packet reception situation corresponding to the first encoded data; being configured to determine the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0539] In a possible implementation method, the processing unit 3120 is configured to obtain encoding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second encoded data according to the system data packet reception situation and the redundant data packet reception situation corresponding to the first encoded data; being configured to determine the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

[0540] In a possible implementation method, the indication information indicates one or more of the following:

[0541] The number of original data packets corresponding to the third original data;

[0542] The number of original data blocks corresponding to the third original data; or

[0543] The available window length or the used window length of the decoding window.

[0544] In a possible implementation method, the second encoded data includes header information, and the header information indicates the second association depth.

[0545] In a possible implementation method, the header information further indicates one or more of the following:

[0546] The number of original data packets corresponding to the third original data;

[0547] The identifier of the original data block corresponding to the second encoded data; or

[0548] The encoding coefficient corresponding to the second encoded data.

[0549] Optionally, the above communication device may further include a storage unit, which is used to store data or instructions (which may also be referred to as code or program). Each of the above units may interact with or be coupled to the storage unit to implement corresponding methods or functions. For example, the processing unit 3120 may read data or instructions from the storage unit, so that the communication device implements the methods in the above embodiments.

[0550] It should be understood that the division of units in the above communication device is only a division of logical functions. In actual implementation, they may be fully or partially integrated into one physical entity, or physically separated. And the units in the communication device may all be implemented in the form of software called by processing elements; they may also all be implemented in the form of hardware; or some units may be implemented in the form of software called by processing elements, and some units may be implemented in the form of hardware. For example, each unit may be a separately established processing element, or may be integrated in a certain chip of the communication device. In addition, it may also be stored in the memory in the form of a program, and the function of the unit may be called and executed by a certain processing element of the communication device. In addition, all or part of these units may be integrated together or may be independently implemented. The processing element mentioned here may also be called a processor, which may be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each of the above units may be implemented by the integrated logic circuit of the hardware in the processor element or in the form of software called by the processing element.

[0551] In one example, the units in any of the above communication devices may be one or more integrated circuits configured to implement the above methods. For example: one or more application specific integrated circuits (ASICs), or one or more digital signal processors (DSPs), or one or more field programmable gate arrays (FPGAs), or a combination of at least two of these integrated circuit forms. Again, when the units in the communication device can be implemented in the form of a processing element scheduling program, the processing element may be a general-purpose processor, such as a central processing unit (CPU) or other processors that can call programs. Again, these units may be integrated together to be implemented in the form of a system-on-a-chip (SOC).

[0552] Reference Figure 32 , which is a schematic diagram of a communication device provided in an embodiment of the present application. The communication device is used to implement each step corresponding to the first communication device or the receiving end in the above embodiments, such as Figure 32 As shown, the communication device 3200 includes a sending unit 3210 and a receiving unit 3220.

[0553] The receiving unit 3220 is configured to receive the first encoded data corresponding to the first original data from the second communication device; receive the second encoded data corresponding to the encoded code rate information, the third original data, and the second original data from the second communication device, where the third original data does not include the first original data. The sending unit 3210 is configured to send indication information to the second communication device, where the indication information is used to obtain the second original data and the encoded code rate information, and the second original data includes some or all of the first original data.

[0554] In a possible implementation method, the second original data includes one or more first original data packets in the first original data; the indication information indicates any one of the following:[[]]

[0555] The number of the first original data packets, the rank corresponding to the first encoded data, the reception conditions of the system data packets and the redundant data packets corresponding to the first encoded data, or the first associated depth of the encoding.

[0556] In a possible implementation method, the second original data includes one or more first original data blocks in the first original data; the indication information indicates any one of the following:[[]]

[0557] The number of the first original data blocks, indicating the rank corresponding to the first encoded data, the reception conditions of the system data packets and the redundant data packets corresponding to the first encoded data, or the first associated depth of the encoding.

[0558] In a possible implementation method, the indication information indicates one or more of the following:[[]]

[0559] The number of the original data packets corresponding to the third original data;

[0560] The number of the original data blocks corresponding to the third original data; or

[0561] The available window length or the used window length of the decoding window.

[0562] In a possible implementation method, the encoded code rate information indicates any one of the following:[[]]

[0563] The number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, the encoding code rate corresponding to the second encoded data, or the reception status of system data packets and redundant data packets corresponding to the first encoded data.

[0564] In a possible implementation method, the second encoded data includes header information, and the header information indicates a second association depth.

[0565] In a possible implementation method, the header information further indicates one or more of the following:

[0566] The number of original data packets corresponding to the third original data;

[0567] The identifier of the original data block corresponding to the second encoded data; or

[0568] The encoding coefficient corresponding to the second encoded data.

[0569] Optionally, the above communication device may further include a storage unit, which is used to store data or instructions (which may also be referred to as code or program). Each of the above units may interact with or be coupled to the storage unit to implement corresponding methods or functions.

[0570] It should be understood that the division of units in the above communication device is only a division of logical functions. In actual implementation, they may be fully or partially integrated into a physical entity, or physically separated. And the units in the communication device may all be implemented in the form of software called by a processing element; they may also all be implemented in the form of hardware; or some units may be implemented in the form of software called by a processing element, and some units may be implemented in the form of hardware. For example, each unit may be a separately established processing element, or may be integrated in a certain chip of the communication device. In addition, it may also be stored in the memory in the form of a program, and the function of the unit is called and executed by a certain processing element of the communication device. In addition, these units may be fully or partially integrated together, or may be independently implemented. The processing element mentioned here may also be called a processor, which may be an integrated circuit with signal processing capabilities. In the implementation process, each step of the above method or each of the above units may be implemented through the integrated logic circuit of the hardware in the processor element or in the form of software called by the processing element.

[0571] In one example, the units in any of the above communication devices may be one or more integrated circuits configured to implement the above methods. For example: one or more ASICs, or one or more DSPs, or one or more FPGAs, or a combination of at least two of these integrated circuit forms. Again, when the units in the communication device can be implemented in the form of a processing element scheduler, the processing element may be a general-purpose processor, such as a CPU or other processor that can call programs. Again, these units may be integrated together and implemented in the form of a SOC.

[0572] Reference Figure 33 , which is a schematic diagram of a communication device provided by an embodiment of the present application, used to implement the operations of the first communication device (i.e., the receiving end) and the second communication device (i.e., the sending end) in the above embodiments. As Figure 33 shown, the communication device includes: a processor 3310 and an interface 3330. Optionally, the communication device further includes a memory 3320. The interface 3330 is used to communicate with other devices.

[0573] The methods executed by the first communication device or the second communication device in the above embodiments can be implemented by the processor 3310 calling a program stored in a memory (which may be the memory 3320 in the first communication device or the second communication device, or an external memory). That is, the first communication device or the second communication device may include a processor 3310, and the processor 3310 executes the methods executed by the first communication device or the second communication device in the above method embodiments by calling the program in the memory. Here, the processor may be an integrated circuit with signal processing capabilities, such as a CPU. The first communication device or the second communication device can be implemented by one or more integrated circuits configured to implement the above methods. For example: one or more ASICs, or one or more microprocessor DSPs, or one or more FPGAs, etc., or a combination of at least two of these integrated circuit forms. Or, the above implementation methods can be combined.

[0574] Specifically, Figure 31 the functions / implementation processes of the transceiver unit 3110 and the processing unit 3120 in can be implemented by the processor 3310 in the communication device 3300 shown in Figure 33 calling computer-executable instructions stored in the memory 3320. Or, Figure 31 the functions / implementation processes of the processing unit 3120 in can be implemented by the processor 3310 in the communication device 3300 shown in Figure 33 calling computer-execution instructions stored in the memory 3320, Figure 31 the functions / implementation processes of the transceiver unit 3110 in can be implemented by Figure 33It is implemented through the interface 3330 in the communication device 3300 shown. Exemplarily, the function / implementation process of the transceiver unit 3110 can be achieved by the processor calling the program instructions in the memory to drive the interface 3330.

[0575] Specifically, Figure 32 The functions / implementation processes of the sending unit 3210 and the receiving unit 3220 in can be achieved by Figure 33 the processor 3310 in the communication device 3300 shown calling the computer-executable instructions stored in the memory 3320. Or, Figure 32 the functions / implementation processes of the sending unit 3210 and the receiving unit 3220 in can be achieved by Figure 33 the interface 3330 in the communication device 3300 shown. Exemplarily, the functions / implementation processes of the sending unit 3210 and the receiving unit 3220 can be achieved by the processor calling the program instructions in the memory to drive the interface 3330.

[0576] Figure 34 A structural schematic diagram of a terminal device is provided. The terminal device can be applicable to Figure 3 the scenario shown. For the sake of convenience of explanation, Figure 34 only the main components of the terminal device are shown. As Figure 34 shown, the terminal device 3400 includes a processor, a memory, a control circuit, an antenna, and an input / output device. The processor is mainly used for processing communication protocols and communication data, and controlling the entire terminal, executing software programs, and processing the data of software programs. The memory is mainly used for storing software programs and data. The radio frequency circuit is mainly used for the conversion between baseband signals and radio frequency signals and the processing of radio frequency signals. The antenna is mainly used for receiving and transmitting radio frequency signals in the form of electromagnetic waves. The input / output device, such as a touch screen, a display screen, a keyboard, etc., is mainly used for receiving data input by the user and outputting data to the user.

[0577] After the terminal device is powered on, the processor can read the software program in the storage unit, parse and execute the instructions of the software program, and process the data of the software program. When data needs to be wirelessly transmitted, after the processor performs baseband processing on the data to be transmitted, it outputs a baseband signal to the radio frequency circuit, and the radio frequency circuit processes the baseband signal to obtain a radio frequency signal and transmits the radio frequency signal outward in the form of electromagnetic waves through the antenna. When data is sent to the terminal device, the radio frequency circuit receives the radio frequency signal through the antenna, the radio frequency signal is further converted into a baseband signal, and the baseband signal is output to the processor, and the processor converts the baseband signal into data and processes the data.

[0578] For the sake of convenience of explanation, Figure 34Only one memory and one processor are shown. In an actual terminal device, there may be multiple processors and memories. The memory may also be referred to as a storage medium or a storage device, etc., and the embodiments of the present invention do not limit this.

[0579] As an alternative implementation, the processor may include a baseband processor and a central processor. The baseband processor is mainly used to process communication protocols and communication data, and the central processor is mainly used to control the entire terminal device, execute software programs, and process data of software programs. Figure 34 The processor in [reference] integrates the functions of the baseband processor and the central processor. Those skilled in the art can understand that the baseband processor and the central processor may also be separate processors interconnected through technologies such as a bus. Those skilled in the art can understand that a terminal device may include multiple baseband processors to adapt to different network systems, and a terminal device may include multiple central processors to enhance its processing capabilities. Each component of the terminal device may be connected through various buses. The baseband processor may also be referred to as a baseband processing circuit or a baseband processing chip. The central processor may also be referred to as a central processing circuit or a central processing chip. The function of processing communication protocols and communication data may be built into the processor or stored in a storage unit in the form of a software program, and the processor executes the software program to implement the baseband processing function.

[0580] In one example, an antenna and a control circuit with transceiver functions may be regarded as the transceiver unit 3411 of the terminal device 3400, and a processor with processing functions may be regarded as the processing unit 3412 of the terminal device 3400. As Figure 34 shown, the terminal device 3400 includes a transceiver unit 3411 and a processing unit 3412. The transceiver unit may also be referred to as a transceiver, a transceiver machine, a transceiver device, etc. Optionally, the devices in the transceiver unit 3411 for implementing the receiving function may be regarded as the receiving unit, and the devices in the transceiver unit 3411 for implementing the sending function may be regarded as the sending unit, that is, the transceiver unit 3411 includes a receiving unit and a sending unit. Exemplarily, the receiving unit may also be referred to as a receiver, a receiver circuit, etc., and the sending unit may be referred to as a transmitter, a transmitter circuit, etc. Optionally, the above-mentioned receiving unit and sending unit may be integrated into one unit or multiple separate units. The above-mentioned receiving unit and sending unit may be in one geographical location or dispersed in multiple geographical locations.

[0581] Those of ordinary skill in the art can understand that the various numerical numbers such as the first and second involved in this application are only for the convenience of description and are not used to limit the scope of the embodiments of this application, nor do they represent the order of precedence. "And / or" describes the relationship between related objects and indicates that there can be three relationships. For example, A and / or B can represent three situations: A exists alone, A and B exist simultaneously, and B exists alone. The character " / " generally indicates that the related objects before and after are in an "or" relationship. "At least one" means one or more. At least two means two or more. "At least one", "any one" or their similar expressions refer to any combination of these items, including any combination of single items or plural items. For example, at least one (item, type) of a, b, or c can represent: a, b, c, a - b, a - c, b - c, or a - b - c, where a, b, c can be single or multiple. "Multiple" means two or more, and other quantifiers are similar.

[0582] It should be understood that in various embodiments of this application, the magnitudes of the sequence numbers of the above processes do not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of the present invention.

[0583] Those skilled in the art can clearly understand that for the convenience and brevity of description, the specific working processes of the systems, devices, and units described above can refer to the corresponding processes in the foregoing method embodiments and will not be elaborated herein.

[0584] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware, or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the processes or functions described in the embodiments of the present application are generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, server, or data center to another website, computer, server, or data center by wire (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wirelessly (such as infrared, wireless, microwave, etc.). The computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more integrated available media. The available medium may be a magnetic medium (e.g., floppy disk, hard disk, magnetic tape), an optical medium (e.g., DVD), or a semiconductor medium (e.g., solid state disk (SSD)), etc.

[0585] In the embodiments of the present application, the various illustrative logical units and circuits described can be implemented or operate the described functions by a design of a general-purpose processor, a digital signal processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination of the above. The general-purpose processor may be a microprocessor. Optionally, the general-purpose processor may also be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented by a combination of computing devices, such as a digital signal processor and a microprocessor, multiple microprocessors, one or more microprocessors combined with a digital signal processor core, or any other similar configuration.

[0586] The steps of the methods or algorithms described in the embodiments of this application may be directly embedded in hardware, software units executed by a processor, or a combination of both. The software units may be stored in a random access memory (RAM), flash memory, read-only memory (ROM), EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of storage medium in the art. Exemplarily, the storage medium may be connected to the processor so that the processor can read information from the storage medium and write information to the storage medium. Optionally, the storage medium may also be integrated into the processor. The processor and the storage medium may be provided in an ASIC.

[0587] These computer program instructions may also be loaded onto a computer or other programmable data processing device, so that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process, and thus the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in Figure 1 one process or multiple processes and / or Figure 1 one block or multiple blocks.

[0588] In one or more exemplary designs, the functions described above in this application can be implemented in hardware, software, firmware, or any combination of these three. If implemented in software, these functions can be stored on a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. A computer-readable medium includes both computer storage media and communication media that facilitate transfer of a computer program from one place to another. The storage media can be any available media accessible by a general or special purpose computer. By way of example, and not limitation, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to carry or store program code in the form of instructions or data structures and that can be accessed by a general or special purpose computer, or a general or special purpose processor. In addition, any connection is properly termed a computer-readable medium. For example, if the software is transmitted from a website, server, or other remote source via a coaxial cable, fiber optic cable, twisted pair, DSL, or wireless means such as infrared, radio, and microwave, it is included in the definition of computer-readable medium. Disk and disc include compact disc, laser disc, optical disc, digital versatile disc (DVD), floppy disk, and Blu-ray disc. Disk usually magnetically replicates data, while disc usually optically replicates data with lasers. Combinations of the above should also be included within the scope of computer-readable medium.

[0589] Those skilled in the art should be able to realize that in the above one or more examples, the functions described in this application can be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, these functions can be stored in a computer-readable medium or transmitted as one or more instructions or codes on a computer-readable medium. A computer-readable medium includes computer storage media and communication media, where the communication media includes any medium that facilitates the transfer of a computer program from one place to another. The storage media can be any available media accessible by a general or special purpose computer.

[0590] The specific embodiments described above further elaborate on the purpose, technical solutions, and beneficial effects of the present application. It should be understood that the above description is only the specific embodiments of the present application and is not used to limit the protection scope of the present application. Any modifications, equivalent replacements, improvements, etc. made on the basis of the technical solutions of the present application should be included within the protection scope of the present application. The above description of the specification of the present application enables any person skilled in the art to utilize or implement the content of the present application. Any modifications based on the disclosed content should be considered obvious to those skilled in the art. The basic principles described in the present application can be applied to other variations without departing from the essence and scope of the invention of the present application. Therefore, the content disclosed in the present application is not limited to the described embodiments and designs, but can also be extended to the maximum scope consistent with the principles of the present application and the newly disclosed features.

[0591] Although the present application has been described in conjunction with specific features and their embodiments, it is obvious that various modifications and combinations can be made without departing from the spirit and scope of the present application. Accordingly, this specification and the drawings are merely exemplary illustrations of the present application defined by the appended claims, and are considered to have covered any and all modifications, variations, combinations, or equivalents within the scope of the present application. Obviously, those skilled in the art can make various changes and modifications to the present application without departing from the scope of the present application. Thus, if these modifications and variations of the present application fall within the scope of the claims of the present application and their equivalent technologies, the present application also intends to include these changes and modifications.

Claims

1. A communication method, characterized in that, comprising: encoding first original data to obtain first encoded data; sending the first encoded data to a first communication device; receiving indication information from the first communication device; wherein the indication information indicates one or more of the following: the number of original data packets corresponding to third original data; the number of original data blocks corresponding to the third original data; or the available window length or the used window length of a decoding window; acquiring second original data and encoding code rate information according to the indication information, where the second original data includes part or all of the first original data; jointly encoding the third original data and the second original data according to the encoding code rate information to obtain second encoded data, where the third original data does not include the first original data; sending the second encoded data to the first communication device.

2. The method according to claim 1, characterized in that, the second original data includes one or more first original data packets in the first original data, and the indication information indicates the number of the first original data packets; acquiring the second original data according to the indication information includes: acquiring the second original data according to the number of the first original data packets.

3. The method according to claim 1, characterized in that, the second original data includes one or more first original data blocks in the first original data, and the indication information indicates the number of the first original data blocks; acquiring the second original data according to the indication information includes: acquiring the second original data according to the number of the first original data blocks.

4. The method according to claim 1, characterized in that, the indication information indicates the rank corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; acquiring the second original data according to the indication information includes: determining the number of the first original data packets according to the rank corresponding to the first encoded data; acquiring the second original data according to the number of the first original data packets.

5. The method according to claim 1, characterized in that, the indication information indicates the rank corresponding to the first encoded data, and the second original data includes one or more first original data blocks in the first original data; acquiring the second original data according to the indication information includes: determining the number of the first original data blocks according to the rank corresponding to the first encoded data; acquiring the second original data according to the number of the first original data blocks.

6. The method according to claim 1, characterized in that, the indication information indicates the reception situation of system data packets and the reception situation of redundant data packets corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; acquiring the second original data according to the indication information includes: determining the number of the first original data packets according to the reception situation of system data packets and the reception situation of redundant data packets corresponding to the first encoded data; Obtain the second original data according to the quantity of the first original data packet.

7. The method according to claim 1, wherein, the indication information indicates the reception situation of the system data packet corresponding to the first encoded data and the reception situation of the redundant data packet; the second original data includes one or more first original data blocks in the first original data; Obtaining the second original data according to the indication information includes: Determine the quantity of the first original data blocks according to the reception situation of the system data packet corresponding to the first encoded data and the reception situation of the redundant data packet; Obtain the second original data according to the quantity of the first original data blocks.

8. The method according to claim 1, wherein, the indication information indicates the first associated depth of the encoding; the second original data includes one or more first original data packets in the first original data; Obtaining the second original data according to the indication information includes: Determine the quantity of the first original data packets according to the first associated depth; Obtain the second original data according to the quantity of the first original data packets.

9. The method according to claim 1, wherein, the indication information indicates the first associated depth of the encoding; the second original data includes one or more first original data blocks in the first original data; Obtaining the second original data according to the indication information includes: Determine the quantity of the first original data blocks according to the first associated depth; Obtain the second original data according to the quantity of the first original data blocks.

10. The method according to any one of claims 1-9, wherein, the encoding code rate information indicates the number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, or the encoding code rate corresponding to the second encoded data.

11. The method according to any one of claims 1-3, 6-9, wherein, the indication information indicates the rank corresponding to the first encoded data; Obtaining the encoding code rate information according to the indication information includes: Determine the number of redundant data packets corresponding to the second encoded data according to the rank corresponding to the first encoded data; Determine the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

12. The method according to claim 4 or 5, wherein, Obtaining the encoding code rate information according to the indication information includes: Determine the number of redundant data packets corresponding to the second encoded data according to the rank corresponding to the first encoded data; Determine the encoding code rate according to the number of redundant data packets corresponding to the second encoded data.

13. The method according to any one of claims 1-5, 8-9, wherein, the indication information indicates the reception situation of the system data packet corresponding to the first encoded data and the reception situation of the redundant data packet; Obtaining the encoding code rate information according to the indication information includes: Determine the number of redundant data packets corresponding to the second encoded data according to the reception situation of the system data packet corresponding to the first encoded data and the reception situation of the redundant data packet; Determine the coding rate according to the number of redundant data packets corresponding to the second coded data.

14. The method according to claim 6 or 7, wherein, obtaining coding rate information according to the indication information includes: determining the number of redundant data packets corresponding to the second coded data according to the reception situation of system data packets and the reception situation of redundant data packets corresponding to the first coded data; determining the coding rate according to the number of redundant data packets corresponding to the second coded data.

15. The method according to any one of claims 1-9, wherein, the second coded data includes header information, and the header information indicates a second association depth.

16. The method according to claim 15, wherein, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second coded data; or the coding coefficient corresponding to the second coded data.

17. The method according to claim 10, wherein, the second coded data includes header information, and the header information indicates a second association depth.

18. The method according to claim 11, wherein, the second coded data includes header information, and the header information indicates a second association depth.

19. The method according to claim 12, wherein, the second coded data includes header information, and the header information indicates a second association depth.

20. The method according to claim 13, wherein, the second coded data includes header information, and the header information indicates a second association depth.

21. The method according to claim 14, wherein, the second coded data includes header information, and the header information indicates a second association depth.

22. The method according to any one of claims 17-21, wherein, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second coded data; or the coding coefficient corresponding to the second coded data.

23. A communication method, wherein, comprising: receiving first coded data corresponding to first original data from a second communication device; sending indication information to the second communication device, the indication information being used for obtaining second original data and coding rate information, the second original data including part or all of the first original data; wherein, the indication information indicates one or more of the following: the number of original data packets corresponding to third original data; the number of original data blocks corresponding to the third original data; or the available window length or the used window length of the decoding window; receiving second coded data corresponding to the coding rate information, the third original data and the second original data from the second communication device, the third original data not including the first original data.

24. The method according to claim 23, wherein, the second original data includes one or more first original data packets in the first original data; the indication information indicates any one of the following: The number of the first original data packets, the rank corresponding to the first encoded data, the reception status of the systematic data packets and redundant data packets corresponding to the first encoded data, or the first associated depth of encoding.

25. The method according to claim 23, wherein, the second original data includes one or more first original data blocks in the first original data; the indication information indicates any one of the following: the number of the first original data blocks, the rank corresponding to the first encoded data, the reception status of the systematic data packets and redundant data packets corresponding to the first encoded data, or the first associated depth of encoding.

26. The method according to any one of claims 23-25, wherein, the encoding code rate information indicates any one of the following: the number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, the encoding code rate corresponding to the second encoded data, or the reception status of the systematic data packets and redundant data packets corresponding to the first encoded data.

27. The method according to any one of claims 23-25, wherein, the second encoded data includes header information, and the header information indicates a second associated depth.

28. The method according to claim 27, wherein, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second encoded data; or the encoding coefficient corresponding to the second encoded data.

29. The method according to claim 26, wherein, the second encoded data includes header information, and the header information indicates a second associated depth.

30. The method according to claim 29, wherein, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second encoded data; or the encoding coefficient corresponding to the second encoded data.

31. A communication device, wherein, comprises: a transceiver unit, configured to send first encoded data to a first communication device; receive indication information from the first communication device; wherein, the indication information indicates one or more of the following: the number of original data packets corresponding to third original data; the number of original data blocks corresponding to the third original data; or the available window length or the used window length of a decoding window; send second encoded data to the first communication device; a processing unit, configured to encode first original data to obtain the first encoded data; obtain second original data and encoding code rate information according to the indication information, the second original data includes part or all of the first original data; perform joint encoding on the third original data and the second original data according to the encoding code rate information to obtain the second encoded data, and the third original data does not include the first original data.

32. The device according to claim 31, wherein, The second original data includes one or more first original data packets in the first original data, and the indication information indicates the number of the first original data packets; The processing unit is configured to obtain the second original data according to the indication information, specifically including: configured to obtain the second original data according to the number of the first original data packets.

33. The apparatus according to claim 31, wherein, the second original data includes one or more first original data blocks in the first original data, and the indication information indicates the number of the first original data blocks; The processing unit is configured to obtain the second original data according to the indication information, specifically including: configured to obtain the second original data according to the number of the first original data blocks.

34. The apparatus according to claim 31, wherein, the indication information indicates the rank corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; The processing unit is configured to obtain the second original data according to the indication information, specifically including: configured to determine the number of the first original data packets according to the rank corresponding to the first encoded data; configured to obtain the second original data according to the number of the first original data packets.

35. The apparatus according to claim 31, wherein, the indication information indicates the rank corresponding to the first encoded data, and the second original data includes one or more first original data blocks in the first original data; The processing unit is configured to obtain the second original data according to the indication information, specifically including: configured to determine the number of the first original data blocks according to the rank corresponding to the first encoded data; configured to obtain the second original data according to the number of the first original data blocks.

36. The apparatus according to claim 31, wherein, the indication information indicates the system data packet reception situation and the redundant data packet reception situation corresponding to the first encoded data; the second original data includes one or more first original data packets in the first original data; The processing unit is configured to obtain the second original data according to the indication information, specifically including: configured to determine the number of the first original data packets according to the system data packet reception situation and the redundant data packet reception situation corresponding to the first encoded data; configured to obtain the second original data according to the number of the first original data packets.

37. The apparatus according to claim 31, wherein, the indication information indicates the system data packet reception situation and the redundant data packet reception situation corresponding to the first encoded data; the second original data includes one or more first original data blocks in the first original data; The processing unit is configured to obtain the second original data according to the indication information, specifically including: configured to determine the number of the first original data blocks according to the system data packet reception situation and the redundant data packet reception situation corresponding to the first encoded data; configured to obtain the second original data according to the number of the first original data blocks.

38. The device according to claim 31, wherein, the indication information indicates the first associated depth of coding; the second original data includes one or more first original data packets in the first original data; the processing unit is configured to obtain the second original data according to the indication information, specifically including: being configured to determine the number of the first original data packets according to the first associated depth; being configured to obtain the second original data according to the number of the first original data packets.

39. The device according to claim 31, wherein, the indication information indicates the first associated depth of coding; the second original data includes one or more first original data blocks in the first original data; the processing unit is configured to obtain the second original data according to the indication information, specifically including: being configured to determine the number of the first original data blocks according to the first associated depth; being configured to obtain the second original data according to the number of the first original data blocks.

40. The device according to any one of claims 31-39, wherein, the coding code rate information indicates the number of redundant data packets corresponding to the second coded data, the number of coded data packets corresponding to the second coded data, or the coding code rate corresponding to the second coded data.

41. The device according to any one of claims 31-33, 36-39, wherein, the indication information indicates the rank corresponding to the first coded data; the processing unit is configured to obtain the coding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second coded data according to the rank corresponding to the first coded data; being configured to determine the coding code rate according to the number of redundant data packets corresponding to the second coded data.

42. The device according to claim 34 or 35, wherein, the processing unit is configured to obtain the coding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second coded data according to the rank corresponding to the first coded data; being configured to determine the coding code rate according to the number of redundant data packets corresponding to the second coded data.

43. The device according to any one of claims 31-35, 38-39, wherein, the indication information indicates the reception situation of system data packets and the reception situation of redundant data packets corresponding to the first coded data; the processing unit is configured to obtain the coding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second coded data according to the reception situation of system data packets and the reception situation of redundant data packets corresponding to the first coded data; being configured to determine the coding code rate according to the number of redundant data packets corresponding to the second coded data.

44. The device according to claim 36 or 37, wherein, the processing unit is configured to obtain the coding code rate information according to the indication information, specifically including: being configured to determine the number of redundant data packets corresponding to the second coded data according to the reception situation of system data packets and the reception situation of redundant data packets corresponding to the first coded data; For determining a coding rate according to the number of redundant data packets corresponding to the second coded data.

45. The apparatus according to any one of claims 31-39, wherein, the second coded data includes header information, and the header information indicates a second association depth.

46. The apparatus according to claim 45, wherein, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second coded data; or the coding coefficients corresponding to the second coded data.

47. The apparatus according to claim 40, wherein, the second coded data includes header information, and the header information indicates a second association depth.

48. The apparatus according to claim 41, wherein, the second coded data includes header information, and the header information indicates a second association depth.

49. The apparatus according to claim 42, wherein, the second coded data includes header information, and the header information indicates a second association depth.

50. The apparatus according to claim 43, wherein, the second coded data includes header information, and the header information indicates a second association depth.

51. The apparatus according to claim 44, wherein, the second coded data includes header information, and the header information indicates a second association depth.

52. The apparatus according to any one of claims 47-51, wherein, the header information further indicates one or more of the following: the number of original data packets corresponding to the third original data; the identifier of the original data block corresponding to the second coded data; or the coding coefficients corresponding to the second coded data.

53. A communication apparatus, wherein, comprises: a receiving unit, configured to receive first coded data corresponding to first original data from a second communication device; receive second coded data corresponding to coding rate information, third original data, and second original data from the second communication device, where the third original data does not include the first original data; a sending unit, configured to send indication information to the second communication device, where the indication information is used for obtaining the second original data and the coding rate information, and the second original data includes some or all of the first original data; wherein, the indication information indicates one or more of the following: the number of original data packets corresponding to the third original data; the number of original data blocks corresponding to the third original data; or the available window length or the used window length of the decoding window.

54. The apparatus according to claim 53, wherein, the second original data includes one or more first original data packets in the first original data; the indication information indicates any one of the following: the number of the first original data packets, the rank corresponding to the first coded data, the reception situation of system data packets and redundant data packets corresponding to the first coded data, or the first association depth of coding.

55. The apparatus according to claim 53, wherein, the second original data includes one or more first original data blocks in the first original data; The indication information indicates any of the following: The quantity of the first original data block, the rank corresponding to the first encoded data, the reception conditions of system data packets and redundant data packets corresponding to the first encoded data, or the first associated depth of encoding.

56. The apparatus according to any one of claims 53-55, wherein, the encoding code rate information indicates any of the following: The number of redundant data packets corresponding to the second encoded data, the number of encoded data packets corresponding to the second encoded data, the encoding code rate corresponding to the second encoded data, or the reception conditions of system data packets and redundant data packets corresponding to the first encoded data.

57. The apparatus according to any one of claims 53-55, wherein, the second encoded data includes header information, and the header information indicates a second associated depth.

58. The apparatus according to claim 57, wherein, the header information further indicates one or more of the following: The quantity of original data packets corresponding to the third original data; The identifier of the original data block corresponding to the second encoded data; or The encoding coefficients corresponding to the second encoded data.

59. The apparatus according to claim 56, wherein, the second encoded data includes header information, and the header information indicates a second associated depth.

60. The apparatus according to claim 59, wherein, the header information further indicates one or more of the following: The quantity of original data packets corresponding to the third original data; The identifier of the original data block corresponding to the second encoded data; or The encoding coefficients corresponding to the second encoded data.

61. A communication apparatus, wherein, comprising: A processor, the processor is coupled to a memory, and the memory is used to store programs or instructions. When the programs or instructions are executed by the processor, the apparatus is caused to execute the method according to any one of claims 1 to 22.

62. A communication apparatus, wherein, comprising: A processor, the processor is coupled to a memory, and the memory is used to store programs or instructions. When the programs or instructions are executed by the processor, the apparatus is caused to execute the method according to any one of claims 23 to 30.

63. A chip system, wherein, comprising: The chip system includes at least one processor and an interface circuit. The interface circuit is coupled to the at least one processor, and the processor executes the method according to any one of claims 1-22 by running instructions.

64. A chip system, wherein, comprising: The chip system includes at least one processor and an interface circuit. The interface circuit is coupled to the at least one processor, and the processor executes the method according to any one of claims 23-30 by running instructions.

65. A computer program product, wherein, the computer program product includes instructions. When it runs on a computer, the computer is caused to execute the method according to any one of claims 1-30 above.

66. A computer-readable storage medium, wherein, Comprising instructions which, when run on a computer, cause the computer to perform the method according to any one of claims 1 - 30.

67. A communication system, characterized in that it comprises a device according to any one of claims 31 - 52 and a device according to any one of claims 53 - 60.

Citation Information

Patent Citations

  • Data transferring method, and communication system and program applied with the method

    CN101039260A

  • LDPC code error control method based on combined coding

    CN107248904A