WO2023273975A1 - Procédé de transmission de données et appareil de communication - Google Patents

Procédé de transmission de données et appareil de communication Download PDF

Info

Publication number
WO2023273975A1
WO2023273975A1 PCT/CN2022/100340 CN2022100340W WO2023273975A1 WO 2023273975 A1 WO2023273975 A1 WO 2023273975A1 CN 2022100340 W CN2022100340 W CN 2022100340W WO 2023273975 A1 WO2023273975 A1 WO 2023273975A1
Authority
WO
WIPO (PCT)
Prior art keywords
packets
packet
original
coding
coefficient
Prior art date
Application number
PCT/CN2022/100340
Other languages
English (en)
Chinese (zh)
Inventor
祝慧颖
董朋朋
谭志远
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2023273975A1 publication Critical patent/WO2023273975A1/fr

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0076Distributed coding, e.g. network coding, involving channel coding

Definitions

  • the present application relates to the communication field, and more specifically, to a data transmission method and a communication device.
  • Network coding network coding, NC
  • NC network coding
  • the inventors of the present application found in the process of researching network coding technology that the order of the sequence numbers of the original packets in the multiple original packets encoded together is consistent with the order of the elements in the predefined encoding coefficients, that is, each The corresponding relationship between the original packet and each element in the coding coefficient is fixed, but this may bring a certain amount of transmission overhead, resulting in low utilization of spectrum resources. How to make the corresponding relationship between each original packet and each element in the encoding coefficient variable during the network encoding process and at the same time avoid the corresponding decoding error of the network encoding is an urgent problem to be solved.
  • the embodiment of the present application provides a data transmission method and a communication device, in order to make the corresponding relationship between each original packet in the network coding process and each element in the coding coefficient variable, and at the same time, the corresponding decoding process of the network coding can also be completed correctly, and then The correct rate of decoding can be improved.
  • the present application provides a data transmission method, which can be executed by the sending end, or can also be executed by a component configured in the sending end (such as a chip, a chip system, etc.), or can also be executed by A logic module or software implementation for realizing all or part of the functions of the sending end is not limited in this application.
  • the method includes: obtaining K original packets, K>1 and being an integer; performing network coding based on the K original packets to obtain K system packets and R verification packets; wherein, the K The order of the original packets in the coding unit is inconsistent with the order of the sequence numbers of the K original packets; the packet header of the kth system packet among the K system packets includes the original packet corresponding to the kth system packet Position information, where the position information is used to indicate the relative position of the original package corresponding to the kth system package in the coding unit, and/or, the location of each check package in the R check packages
  • the packet header includes sorting information, and the sorting information is used to indicate the sequence of the K original packets in the coding unit; 1 ⁇ k ⁇ K, R ⁇ 1, k and R are integers.
  • the order of the K original packets in the coding unit is inconsistent with the order of the sequence numbers of the K original packets, that is, the relative position of at least one original packet in the coding unit of the K original packets is the same as that in the K
  • the relative positions in the two original packages are inconsistent.
  • the K original packets may be sorted before entering the coding unit.
  • the coding unit may be, for example, a coding window, or may also be a coding group.
  • the coding window may be for the sliding window network coding type, and in the embodiment of the present application, the K original packets may be input into the coding window together for network coding.
  • the coding group may be for group coding, and in the embodiment of the present application, the K original packets may be used as a group for network coding.
  • the sender sorts multiple original packets before network encoding, so that the corresponding relationship between each original packet and each element in the encoding coefficient is variable, so the sender can aim at reducing the transmission overhead, according to the encoding
  • the coefficient and the length of the original packet flexibly adjust the coding coefficient corresponding to each original packet.
  • the sender carries position information in the coded packet header that can be used to indicate the relative positions of the K original packets in the coding unit or the ordering information of the K original packets in the coding unit, even if the K original packets are in the coding unit
  • the relative position in is inconsistent with the sequence numbers of the K original packets, and the receiving end can still accurately determine the encoding coefficient corresponding to each original packet or system packet according to the packet header, and then can accurately decode and obtain K original packets . Therefore, transmission reliability can be improved and the number of retransmissions can be reduced. Generally speaking, it is beneficial to improve the utilization rate of spectrum resources.
  • the network coding is shift exclusive or (shift exclusive or, shift XOR) coding.
  • the receiving end can recover K original packets after receiving any K data packets (including system packets and/or check packets).
  • the lengths of at least two original packets in the K original packets are different, and the order of the K original packets in the coding unit is the same as that of the R sets of coding coefficients corresponding to the R check packets
  • the displacement defined by each coding coefficient is related to the lengths of the K original packets.
  • At least two of the K original packets have different lengths, that is, the K original packets have unequal lengths.
  • the K original packets of different lengths are sorted, and the sorted original packets are shifted and XOR coded, so that the original packets with a larger length
  • the number of shifted bits corresponding to the coding coefficients of is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • each of the R verification packets is obtained by performing network coding on the K original packets based on a group of coding coefficients in the R group of coding coefficients; or, in the R verification packets
  • Each verification packet of is obtained by performing network coding on K system packets based on a group of coding coefficients in R groups of coding coefficients, and the K system packets correspond to the K original packets.
  • the verification packet can be obtained by network coding based on the original packet, or by network coding based on the system packet.
  • This embodiment of the present application does not limit it.
  • each verification packet can correspond to a set of coding coefficients, so R verification packets can correspond to R sets of coding coefficients.
  • the R groups of coding coefficients come from predefined Q groups of coding coefficients, and each group of coding coefficients in the Q group of coding coefficients includes P coding coefficients, P ⁇ K, Q ⁇ R, P , Q is an integer.
  • the R check packets and the R sets of coding coefficients satisfy:
  • y 1 to y R represent the R verification packets
  • x 1 to x K represent K encoded data packets
  • the K encoded data packets include the K original packets or the K system packages
  • Indicates XOR processing Represents the shift operation on the original packet x k , t k, r represents the displacement defined by the coding coefficients in row k and column r in the generator matrix, 1 ⁇ k ⁇ K, 1 ⁇ r ⁇ R, t k ,r ⁇ 0, k, r and t k,r are integers; and, when t k,r ⁇ 1, Satisfy: Indicates the mth shift unit obtained by shifting the mt k,r shift unit in the encoded data packet x k to the right by
  • the shift unit can be bit, byte, symbol, etc.
  • one shift unit can be a bit, a byte or a symbol, etc., where a ⁇ 1 and is an integer.
  • one shift unit can be one bit, one byte (ie, 8 bits), or one symbol. Wherein, one symbol may include one or more bits.
  • the encoding coefficients in the generator matrix satisfy: Among them, k 1 and k 2 represent the serial numbers of two rows in the generator matrix, r 1 and r 2 represent the serial numbers of two columns in the generator matrix, and satisfy: K ⁇ k 2 >k 1 ⁇ 1 , R ⁇ r 2 >r 1 ⁇ 1; any two original packets in the K original packets with Meet: Original Package
  • the position in the coding unit is in the original packet before, and represents the original package the number of shift units involved, represents the original package The number of shift units included.
  • the K original packets of different lengths are sorted according to the order of length from large to small, and the sorted original packets are shifted and XOR-coded, which can make the length smaller
  • the number of shift bits corresponding to the encoding coefficient of the large original packet is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • the present application provides a data transmission method, which can be executed by the receiving end, or can also be executed by a component configured in the receiving end (such as a chip, a chip system, etc.), or can also be executed by
  • a component configured in the receiving end such as a chip, a chip system, etc.
  • the logic module or software implementation that realizes all or part of the functions of the receiving end is not limited in this application.
  • the method includes: receiving a plurality of encoded packets; obtaining K original packets based on the plurality of encoded packets; the sequence of the K original packets is consistent with the sequence of the K original packets in the coding unit , but is inconsistent with the order of the sequence numbers of the K original packets; the plurality of coded packets include system packets and/or check packets; the packet header of the system packets includes the position of the original packets corresponding to the system packets information, the position information is used to indicate the relative position of the original packet in the coding unit, and/or, the packet header of the verification packet includes sorting information, and the sorting information is used to indicate the K original The order in which packets are included in the code unit.
  • a coding unit may correspond to a decoding (or decoding) unit, or a decoding unit.
  • the relative position of the original packet in the coding unit that is, the relative position of the original packet in the decoding unit.
  • the order of the K original packets in the coding unit is also the order of the K original packets in the decoding unit. It should also be understood that the order of the K original packets obtained by the receiving end based on the received encoded packets is different from the order of the K original packets obtained by the sending end.
  • the plurality of encoding packets may include at least one system packet and/or at least one verification packet, and the present application does not limit the number of received system packets and the number of verification packets. If the header of the system packet sent by the sending end carries location information, the receiving end can parse the location information of the header of the system packet after receiving the system packet; if the header of the verification packet sent by the sending end carries the sorting information, when the receiving end receives the verification packet, it can parse the sorting information of the header of the verification packet.
  • the sender sorts multiple original packets before network encoding, so that the corresponding relationship between each original packet and each element in the encoding coefficient is variable, so the sender can aim at reducing the transmission overhead, according to the encoding
  • the coefficient and the length of the original packet flexibly adjust the coding coefficient corresponding to each original packet.
  • the sender carries position information in the coded packet header that can be used to indicate the relative positions of the K original packets in the coding unit or the ordering information of the K original packets in the coding unit, even if the K original packets are in the coding unit
  • the relative position in is inconsistent with the sequence numbers of the K original packets, and the receiving end can still accurately determine the encoding coefficient corresponding to each original packet or system packet according to the packet header, and then can accurately decode and obtain K original packets . Therefore, transmission reliability can be improved and the number of retransmissions can be reduced. Generally speaking, it is beneficial to improve the utilization rate of spectrum resources.
  • each of the multiple encoded packets and the K original packets satisfy the following relationship: each of the multiple encoded packets
  • the encoded packets are obtained by performing shifted XOR encoding based on the K original packets.
  • the receiving end can recover K original packets after receiving any K data packets (including system packets and/or check packets).
  • the lengths of at least two original packets in the K original packets are different, and the order of the K original packets in the coding unit is the same as the displacement defined by each coding coefficient in the generation matrix and The lengths of the K original packets are related.
  • the K original packets of different lengths are sorted, and the sorted original packets are shifted and XOR coded, so that the original packets with a larger length
  • the number of shifted bits corresponding to the coding coefficients of is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • the coding coefficients used to generate the verification packet come from a predefined group of Q coding coefficients, each group of coding coefficients in the Q group of coding coefficients includes P coding coefficients, P ⁇ K, Q ⁇ 1, P , Q is an integer.
  • the Q groups of coding coefficients correspond to a P ⁇ Q-dimensional matrix H 1 :
  • the coding coefficient used to generate one of the verification packets in the verification packet comes from the K coding coefficients in the qth column of the matrix H1
  • the data y q of the verification packet satisfies: Indicates XOR processing, Represents the shift operation on the encoded data packet x k , the encoded data packet includes the original packet or the system packet corresponding to the original packet, t k, q represents the corresponding in the matrix H 1
  • the amount of displacement defined by the encoding coefficient of the encoded packet x k and From the qth column in said matrix H 1 , 1 ⁇ k ⁇ K, 1 ⁇ q ⁇ Q, t k,q ⁇ 0, k, q and t k,q are integers; and, when t k,q ⁇ 1 o'clock, Satisfy: Represents the mth shift unit obtained by moving the mt k,q shift unit in the encoded data packet x k to the right by t k,q
  • each group of encoding coefficients includes K encoding coefficients, and the K encoding coefficients may be K elements taken from a column in the matrix H1, and the K elements may be, for example, continuous K elements, such as, The first K elements, the last K elements in the column, or the K elements determined by using a certain predefined sequence number as the starting position; the K elements may also be discontinuous K elements.
  • This embodiment of the present application does not limit it.
  • the elements in the matrix H1 satisfy :
  • p 1 and p 2 represent the sequence numbers of the two rows in the matrix H 1
  • q 1 and q 2 represent the sequence numbers of the two columns in the matrix H 1 , and satisfy: P ⁇ p 2 >p 1 ⁇ 1, Q ⁇ q 2 >q 1 ⁇ 1; any two original packets in the K original packets with Meet: Original Package
  • the position in the K original packets is the original packet before, and represents the original package length, represents the original package length.
  • the K original packets of different lengths are sorted according to the order of length from large to small, and the sorted original packets are shifted and XOR coded, which can make the length smaller
  • the number of shift bits corresponding to the encoding coefficient of the large original packet is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • At least two of the K original packets have different lengths, and the order of the K original packets in the coding unit is the same as the displacement defined by each coding coefficient in the matrix H1 and the lengths of the K original packets are related.
  • At least two of the K original packets have different lengths, that is, the K original packets have unequal lengths.
  • the K original packets of different lengths are sorted, and the sorted original packets are shifted and XOR coded, so that the original packets with a larger length
  • the number of shifted bits corresponding to the coding coefficients of is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • the location information of the original package corresponding to the kth system package includes: a package identifier of the original package corresponding to the kth system package, and the package identifier indicates that the original package is in The relative position within the encoding unit.
  • the package identifier indicates the position of the original package corresponding to the system package in the coding unit, which number among the K original packages, that is, indicates the relative position of the original package corresponding to the system package in the coding unit, therefore, Carrying the packet identifier of its corresponding original packet in the packet header of the system packet can enable the receiving end to determine the relative position of the received system packet or its corresponding original packet in the decoding unit, so that each encoded packet can be accurately determined The corresponding encoding coefficients can be accurately decoded to obtain K original packets. Moreover, the relative position of the original packet in the coding unit can be determined through the packet identifier, and the overhead is relatively small.
  • the location information of the original packet corresponding to the kth system packet includes: indication information for generating a coding coefficient of the kth system packet, and the coding coefficient includes a non-zero element, and the sequence number of the non-zero element in the coding coefficient is the same as the sequence number of the original packet corresponding to the kth systematic packet in the coding unit.
  • a non-zero element may refer to an element whose value is not zero; the non-zero element may include an element whose shift number is greater than or equal to zero.
  • the sequence number of the non-zero element in the coding coefficient is the same as that of the original packet in the coding unit, that is, the position of the non-zero element in the coding coefficient
  • the relative position of the original packet corresponding to the system packet in the coding unit can be determined. Therefore, according to the relative position of the received system packet or its corresponding original packet in the decoding unit, the receiving end can accurately determine the encoding coefficient corresponding to each encoded packet, and then can accurately decode to obtain K original Bag.
  • the indication information of the coding coefficient can be used to indicate the coding coefficient of the system packet on the one hand, and can also be used to determine the relative position of the original packet in the coding unit, that is, new functions are added to the existing fields, which can avoid the packet header overhead .
  • the sorting information in the header of each verification packet includes: sequence numbers of the K original packets sorted according to the sequence of the K original packets in the encoding unit.
  • sequence number is used to distinguish the identifier of the original packet, and the sequence number will increase by 1 each time an original packet is transmitted.
  • the serial number is only a possible naming to distinguish it from the above-mentioned package identification, but this application does not rule out the possibility of replacing the serial number with other naming in future agreements to achieve the same or similar functions.
  • the receiving end can accurately determine the corresponding encoding of each encoded packet. Coefficients, so that K original packets can be obtained by accurate decoding.
  • the sorting information in the header of each verification packet includes: information for indicating the lengths of the K original packets sorted in the coding unit.
  • the receiving end Since the length sorting of the K original packets in the packet header of the verification packet corresponds to the order of the K original packets in the coding unit, and because the lengths of the K original packets are different, the receiving end itself can obtain the original data corresponding to the received system packets. The length of the packet, so the receiving end can accurately determine the encoding coefficient corresponding to each encoded packet, so that K original packets can be obtained by accurate decoding.
  • the present application does not limit the manner of indicating the lengths of the K original packets.
  • the lengths of the K original packets may be directly indicated.
  • multiple predefined different lengths may be associated with multiple indexes, and the lengths of the K original packets are indicated through indexes corresponding to the lengths of the K original packets. This application includes but is not limited to this.
  • the present application provides a data transmission method, which can be executed by the sending end, or can also be executed by a component configured in the sending end (such as a chip, a chip system, etc.), or can also be executed by A logic module or software implementation for realizing all or part of the functions of the sending end is not limited in this application.
  • the method includes: acquiring K original packets, K>1 and being an integer; performing network encoding on the K original packets based on R sets of encoding coefficients to obtain R verification packets; the R sets of encoding coefficients Corresponding to the R coefficient vectors, each group of coding coefficients and the corresponding coefficient vectors satisfy a row transformation relationship or a column transformation relationship; the header of the r-th check packet in the R check packets includes: used to generate the The indication information of the coefficient vector corresponding to a group of encoding coefficients of the rth verification packet, and the indication information of the row transformation relationship or the column transformation relationship; 1 ⁇ r ⁇ R, R ⁇ 1, r and R are integers; send The R verification packets.
  • the coding coefficient and the corresponding coefficient vector satisfy a row transformation relationship or a column transformation relationship, that is, the coding coefficient and the corresponding coefficient vector may have the same elements but different orderings. In other words, the coding coefficient may be obtained through row transformation or column transformation of the coefficient vector.
  • the sender when performing network coding on multiple original packets, performs row transformation or column transformation on the predefined coefficient vectors, so that the corresponding relationship between each original packet and each element in the coding coefficient is variable, so the sender Aiming at reducing the transmission overhead, the coding coefficient corresponding to each original packet can be flexibly adjusted according to the coding coefficient and the length of the original packet.
  • the sending end carries the row transformation relationship or column transformation relationship between the coding coefficient and the coefficient vector in the header of the coded packet, so that the receiving end can accurately determine the coding coefficient corresponding to each original packet or system packet according to the packet header, and then can Accurately decode to get K original packets. Therefore, transmission reliability can be improved and the number of retransmissions can be reduced. Generally speaking, it is beneficial to improve the utilization rate of spectrum resources.
  • the network coding is shifted XOR coding.
  • the receiving end can recover K original packets after receiving any K data packets (including system packets and/or check packets).
  • the R coefficient vectors come from predefined Q coefficient vectors, each of the Q coefficient vectors includes P coding coefficients, and P ⁇ K , Q ⁇ R, P and Q are integers.
  • Q coefficient vectors may be row vectors or column vectors, which is not limited in the present application.
  • the relationship between the R groups of coding coefficients and the R coefficient vectors may satisfy one or more of the following possible situations.
  • the relationship between R sets of coding coefficients and R coefficient vectors will be described in detail below in combination with row vectors and column vectors.
  • y 1 to y R represent the data in the R verification packets
  • x 1 to x K represent K encoded data packets
  • the K encoded data packets include the K original packets or
  • the K system packages is the generation matrix of the R check packets, in the generation matrix Including a set of encoding coefficients used to generate the rth check packet in the R check packets, the data of the rth check packet satisfies:
  • Indicates XOR processing Represents the shift operation on the encoded data packet x k , t k,r represents the displacement defined by the encoding coefficients in row k and column r in the generator matrix, 1 ⁇ k ⁇ K, 1 ⁇ r ⁇ R , t k,r ⁇ 0, k, r and t k,r are integers; and, when t k,r ⁇ 1, Satisfy: Indicates the mth shift unit obtained by shifting the mt k,r shift unit in the encoded data packet x
  • the R groups of coding coefficients are the R columns in the generator matrix, and the R groups of coding coefficients may be determined from the R coefficient vectors. Perform row transformation on the R coefficient vectors to obtain the R sets of encoded coefficients shown above. Since the row transformation of the R coefficient vectors will not change the linearly independent characteristics of the R sets of coding coefficients, the coding efficiency can be guaranteed.
  • different groups of coding coefficients in the R groups of coding coefficients and corresponding coefficient vectors satisfy the same row transformation relationship.
  • any two sets of encoding coefficients in the R sets of encoding coefficients and the corresponding coefficient vectors satisfy the same row transformation relationship.
  • the lengths of at least two original packets in the K original packets are different, and the row transformation relationship satisfied by each group of coding coefficients in the R groups of coding coefficients and the corresponding coefficient vector is the same as the corresponding
  • the displacement defined by each element in the coefficient vector of is related to the lengths of the K original packets.
  • At least two of the K original packets have different lengths, that is, the K original packets have unequal lengths.
  • each coefficient vector is row-transformed, and then the original packets are shifted and XOR-coded using the coding coefficients after the row transformation, so that the length
  • the number of shift bits corresponding to the encoding coefficients of the larger original packet is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • k 1 and k 2 represent the serial numbers of two rows in the generator matrix
  • r 1 and r 2 represent the serial numbers of two columns in the generator matrix
  • K ⁇ k 2 >k 1 ⁇ 1 , R ⁇ r 2 >r 1 ⁇ 1, k 1 , k 2 , r 1 , and r 2 are integers
  • the coding coefficients and corresponding coefficient vectors satisfy the row transformation relationship, and the row transformation relationship is:
  • the n1th element in the coefficient vector becomes the n2th encoding coefficient in the encoding coefficient after row transformation, wherein, n1 is the n2th original package among the K original packages according to the
  • the lengths of the K original packets are sequence numbers sorted in descending order; K ⁇ n 1 ⁇ 1, K ⁇ n 2 ⁇ 1, n 1 and n 2 are integers.
  • the encoding coefficients with a smaller number of shifted bits can be transformed to the corresponding position of the original packet with a larger length, and the shifted bits
  • the encoding coefficients with a larger number are transformed to the positions corresponding to the original packets with a smaller length. Therefore, the number of shifted bits corresponding to the coding coefficients of the original packet with a relatively large length can be made as small as possible, reducing the transmission overhead introduced by the shifting operation, and improving the utilization rate of spectrum resources.
  • y 1 to y R represent the data in the R verification packets
  • x 1 to x K represent encoded data packets
  • the K encoded data packets include the K original packets or the K system packages
  • the data of the rth verification packet satisfies: Indicates XOR processing, Represents the shift operation on the encoded data packet x k , t r,k represents the displacement defined by the encoding coefficients in the rth row and kth column in the generator matrix, 1 ⁇ k ⁇ K, 1 ⁇ r ⁇ R , t r,k ⁇ 0, k, r and t r,k are integers; and, when t k,r ⁇ 1, Satisfy: Represents the mth shift unit obtained by moving the mt r,k shift unit in the encoded data packet x k to
  • the R groups of coding coefficients are R rows in the above generator matrix, and the R groups of coding coefficients may be determined from the R coefficient vectors. Perform column transformation on the R coefficient vectors to obtain the R groups of encoded coefficients shown above. Since the column transformation of the R coefficient vectors will not change the linear-independent characteristics of the R sets of encoded coefficients, the encoding efficiency can be guaranteed.
  • any two sets of encoding coefficients in the R sets of encoding coefficients and the corresponding coefficient vectors satisfy the same column transformation relationship.
  • the R sets of coding coefficients are obtained through the same column transformation of the R coefficient vectors. This is like sorting the K original packets before network coding, and the sorted K original packets in the coding unit correspond to coding coefficients that are inconsistent with the sorting of elements in the coefficient vector.
  • the lengths of at least two original packets in the K original packets are different, and the column transformation relationship between the R sets of coding coefficients and the R coefficient vectors and the displacement amount defined by each element in the R coefficient vectors and the lengths of the K original packets are related.
  • a possible design is that the elements in the generator matrix satisfy: Among them, k 1 and k 2 represent the serial numbers of two columns in the generator matrix, r 1 and r 2 represent the serial numbers of two rows in the generator matrix, and satisfy: K ⁇ k 2 >k 1 ⁇ 1 , R ⁇ r 2 >r 1 ⁇ 1, k 1 , k 2 , r 1 , and r 2 are integers; and, the coding coefficients and corresponding coefficient vectors satisfy a column transformation relationship, and the column transformation relationship is: the The n1th element in the coefficient vector becomes the n2th coding coefficient among the coding coefficients after column transformation, wherein n1 is the n2th original packet among the K original packets according to the K The lengths of the original packets are sorted in descending order; K ⁇ n 1 ⁇ 1, K ⁇ n 2 ⁇ 1, n 1 and n 2 are integers.
  • the coding coefficients with a smaller number of shifted bits can be transformed to the corresponding position of the original packet with a larger length, and the shifted bits
  • the encoding coefficients with a larger number are transformed to the positions corresponding to the original packets with a smaller length. Therefore, the number of shifted bits corresponding to the coding coefficients of the original packet with a relatively large length can be made as small as possible, reducing the transmission overhead introduced by the shifting operation, and improving the utilization rate of spectrum resources.
  • a data transmission method is provided.
  • the present application provides a data transmission method.
  • the method can be executed by the receiving end, or can also be executed by a component configured in the receiving end (such as a chip, a chip system, etc.) , or, it may also be implemented by a logic module or software capable of realizing all or part of the functions of the receiving end, which is not limited in this application.
  • the method includes: receiving U verification packets, U sets of coding coefficients used to generate the U verification packets correspond to predefined U coefficient vectors, each group of coding coefficients corresponds to the corresponding coefficient vector Satisfy the row transformation relationship or the column transformation relationship;
  • the header of the u-th check packet in the U check packets includes: an indication of a coefficient vector corresponding to a set of coding coefficients used to generate the u-th check packet information, and the indication information of the row transformation relationship or the column transformation relationship; 1 ⁇ u ⁇ U, U ⁇ 1, u and U are integers; based on the U coefficient vectors and the U check packets, K original packets; K>1 and is an integer.
  • the coded packets received by the receiving end may include at most R verification packets.
  • the coded packets received by the receiving end include U verification packets.
  • the receiving end needs to combine the indication information of the coefficient vector and the indication information of the row transformation relationship or the column transformation relationship to determine the actual data used to generate each check packet. encoding coefficient.
  • the sender when performing network coding on multiple original packets, performs row transformation or column transformation on the predefined coefficient vectors, so that the corresponding relationship between each original packet and each element in the coding coefficient is variable, so the sender Aiming at reducing the transmission overhead, the coding coefficient corresponding to each original packet can be flexibly adjusted according to the coding coefficient and the length of the original packet.
  • the sending end carries the row transformation relationship or column transformation relationship between the coding coefficient and the coefficient vector in the header of the coded packet, so that the receiving end can accurately determine the coding coefficient corresponding to each original packet or system packet according to the packet header, and then can Accurately decode to get K original packets. Therefore, transmission reliability can be improved and the number of retransmissions can be reduced. Generally speaking, it is beneficial to improve the utilization rate of spectrum resources.
  • each of the U verification packets and the K original packets satisfy the following relationship: each of the U verification packets
  • the verification packet is obtained by performing shifted XOR coding on the basis of the K original packets.
  • the receiving end can recover K original packets after receiving any K data packets (including system packets and/or check packets).
  • the U coefficient vectors are from predefined Q coefficient vectors, each of the Q coefficient vectors includes P coding coefficients, and P ⁇ K , Q ⁇ U, P and Q are integers.
  • Q coefficient vectors may be row vectors or column vectors, which is not limited in the present application.
  • the relationship between the U sets of coding coefficients and the U coefficient vectors may satisfy one or more of the following possible situations.
  • the relationship between the U group of coding coefficients and the U coefficient vectors is described in detail below in combination with the row vector and the column vector.
  • the U coefficient vectors come from the U columns in the predefined P ⁇ Q-dimensional first matrix H1, P ⁇ K, Q ⁇ U, and P and Q are integers; the first A matrix H 1 satisfies:
  • y 1 to y U represent the data in the U verification packets
  • x 1 to x K represent K encoded data packets
  • the K encoded data packets include the K original packets or K system packages corresponding to the K original packages
  • Including the U group of coding coefficients each group of coding coefficients in the U group of coding coefficients comes from K coding coefficients in a column vector in the first matrix H1, and the uth in the U check packets
  • the data of a verification packet satisfies: Indicates XOR processing, Represents the shift operation on the encoded data packet x k , representation matrix
  • M represents
  • the U group of coding coefficients comes from the U columns in the above-mentioned first matrix, and the U group of coding coefficients may be determined from the U coefficient vectors. Perform row transformation on the U coefficient vectors to obtain U sets of coding coefficients as shown above. Since the row transformation of the U coefficient vectors will not change the linearly independent characteristics of the U group of encoded coefficients, the decoding efficiency can be guaranteed.
  • different coding coefficients in the U group of coding coefficients are the same as the row transformation relationship satisfied by the corresponding coefficient vectors.
  • any two groups of coding coefficients in the U group of coding coefficients have the same row transformation relationship as the corresponding coefficient vectors.
  • U sets of coding coefficients are obtained after the U coefficient vectors undergo the same row transformation. This is like sorting the K original packets before network coding, and the sorted K original packets in the coding unit correspond to coding coefficients that are inconsistent with the sorting of elements in the coefficient vector.
  • each set of encoded coefficients in the U set of encoded coefficients satisfies the row transformation relationship with the corresponding coefficient vector or with the set
  • the displacement defined by each element in the corresponding coefficient vector is related to the lengths of the K original packets.
  • At least two of the K original packets have different lengths, that is, the K original packets have unequal lengths.
  • each coefficient vector is row-transformed, and then the original packets are shifted and XOR-coded using the coding coefficients after the row transformation, so that the length
  • the number of shift bits corresponding to the encoding coefficients of the larger original packet is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • a possible design is that the elements in the first matrix H1 satisfy: Wherein, p 1 and p 2 represent the sequence numbers of two rows in the first matrix H 1 , q 1 and q 2 represent the sequence numbers of two columns in the first matrix H 1 , and satisfy: P ⁇ p 2 > p 1 ⁇ 1, Q ⁇ q 2 > q 1 ⁇ 1, p 1 , p 2 , q 1 , and q 2 are integers; and, the coding coefficients and corresponding coefficient vectors satisfy the row transformation relationship, and the The row transformation relationship is: the n1th element in the coefficient vector becomes the n2th coding coefficient in the coding coefficient after being row-transformed, where n1 is the n2th in the K original packets The sequence numbers of the K original packets sorted according to the lengths of the K original packets; K ⁇ n 1 ⁇ 1, K ⁇ n 2 ⁇ 1, n 1 and n 2 are integers.
  • the encoding coefficients with a smaller number of shifted bits can be transformed to the corresponding position of the original packet with a larger length, and the shifted bits
  • the encoding coefficients with a larger number are transformed to the positions corresponding to the original packets with a smaller length. Therefore, the number of shifted bits corresponding to the coding coefficients of the original packet with a relatively large length can be made as small as possible, reducing the transmission overhead introduced by the shifting operation, and improving the utilization rate of spectrum resources.
  • U coefficient vectors come from U rows in the second matrix H2 of the predefined Q ⁇ P dimension, P ⁇ K, Q ⁇ U, and P and Q are integers;
  • the second matrix H2 satisfies:
  • y 1 to y U represent the data in the U verification packets
  • x 1 to x K represent the K encoded data packets
  • the K encoded data packets include the K original package or the K system packages corresponding to the K original packages
  • Including the U group of coding coefficients each group of coding coefficients in the U group of coding coefficients comes from K coding coefficients in a row vector in the second matrix H 2 , the u-th in the U check packets
  • the data of a verification packet satisfies:
  • Indicates XOR processing, Represents the shift operation on the encoded data packet x k represents the matrix
  • the U group of coding coefficients are U rows in the above-mentioned second matrix, and the U group of coding coefficients may be determined from the U coefficient vectors.
  • Column transformation is performed on U coefficient vectors to obtain U groups of coding coefficients as shown above. Since the column transformation of the U coefficient vectors will not change the linear-independent characteristics of the U group of encoded coefficients, the decoding efficiency can be guaranteed.
  • any two groups of coding coefficients in the U group of coding coefficients and the corresponding coefficient vectors satisfy the same column transformation relationship.
  • each group of coding coefficients in the U group of coding coefficients and the corresponding coefficient vector satisfy the column transformation relationship or the The displacement defined by each element in the corresponding coefficient vector is related to the lengths of the K original packets.
  • At least two of the K original packets have different lengths, that is, the K original packets have unequal lengths.
  • each coefficient vector is column-transformed, and then the original packets are shifted and XOR-coded using the coding coefficients after the row transformation, so that the length
  • the number of shift bits corresponding to the encoding coefficients of the larger original packet is as small as possible, so the transmission overhead introduced by the shift operation can be reduced.
  • a possible design is that the elements in the second matrix H2 satisfy: Wherein, p 1 and p 2 represent the sequence numbers of the two columns in the second matrix H 2 , q 1 and q 2 represent the sequence numbers of the two rows in the second matrix H 2 , and satisfy: P ⁇ p 2 > p 1 ⁇ 1, Q ⁇ q 2 > q 1 ⁇ 1, p 1 , p 2 , q 1 , and q 2 are integers; and, the coding coefficients and corresponding coefficient vectors satisfy the column transformation relationship, and the columns
  • the transformation relationship is: the n1th element in the coefficient vector becomes the n2th coding coefficient in the coding coefficient after column transformation, wherein n1 is the n2th one in the K original packets Sequence numbers of the original packets sorted according to the lengths of the K original packets; K ⁇ n 1 ⁇ 1, K ⁇ n 2 ⁇ 1, n 1 and n 2 are integers.
  • the coding coefficients with a smaller number of shifted bits can be transformed to the corresponding position of the original packet with a larger length, and the shifted bits
  • the encoding coefficients with a larger number are transformed to the positions corresponding to the original packets with a smaller length. Therefore, the number of shifted bits corresponding to the coding coefficients of the original packet with a relatively large length can be made as small as possible, reducing the transmission overhead introduced by the shifting operation, and improving the utilization rate of spectrum resources.
  • the indication information of the row transformation relationship or the column transformation relationship includes: the relative position of each element in the coefficient vector in the coding coefficient, Or, the relative position of each element in the encoding coefficient in the coefficient vector.
  • the receiving end can determine the encoding coefficient corresponding to each check packet, so that the receiving end The end can accurately decode and obtain K original packets.
  • the present application provides a communication device that can implement the data transmission method described in any possible implementation manners of the first aspect to the fourth aspect and the first aspect to the fourth aspect.
  • the apparatus includes corresponding units or modules for performing the above method.
  • the units or modules included in the device can be realized by software and/or hardware.
  • the device may be, for example, a terminal or a network device, or a chip, a chip system, or a processor that supports the terminal or network device to implement the above method, and may also be a logic module or a logic module that can realize all or part of the functions of the terminal or network device. software. It can be understood that the encoding or decoding process in the above method can be implemented by a digital circuit, and the corresponding data circuit can be called an encoder or decoder, or an encoder/decoder.
  • the present application provides a communication device, including a processor, and the processor is configured to execute the data described in any possible implementation manners of the first aspect to the fourth aspect and the first aspect to the fourth aspect. transfer method.
  • the device may also include a memory for storing instructions and data.
  • the memory is coupled to the processor, and when the processor executes the instructions stored in the memory, the methods described in the foregoing aspects can be implemented.
  • the device may further include a communication interface for the device to communicate with other devices.
  • the communication interface may be a transceiver, a circuit, a bus, a module or other types of communication interfaces.
  • the present application provides a system-on-a-chip, which includes at least one processor, configured to support the implementation of any possible implementation manners of the above-mentioned first to fourth aspects and the first to fourth aspects
  • the functions involved for example, receive or process the data and/or information involved in the methods described above.
  • the chip system further includes a memory, the memory is used to store program instructions and data, and the memory is located inside or outside the processor.
  • the system-on-a-chip may consist of chips, or may include chips and other discrete devices.
  • the present application provides a computer-readable storage medium, including a computer program, which, when run on a computer, enables the computer to implement any one of the first to fourth aspects and the first to fourth aspects Methods in Possible Implementations.
  • the present application provides a computer program product, the computer program product including: a computer program (also referred to as code, or instruction), when the computer program is executed, the first to fourth aspects The method in any possible implementation manner of the aspect and the first aspect to the fourth aspect is executed.
  • a computer program also referred to as code, or instruction
  • the embodiment of the present application provides a communication system, including the aforementioned sending end and receiving end.
  • the sending end in the communication system can be used to implement the first aspect and the method in any possible implementation manner of the first aspect; the receiving end in the communication system can be used to implement the second aspect and any one of the second aspect. method in one possible implementation.
  • the sending end in the communication system can be used to implement the third aspect and the method in any possible implementation manner of the third aspect; the receiving end in the communication system can be used to implement the fourth aspect and any one of the fourth aspect method in one possible implementation.
  • FIG. 1 to FIG. 3 are a schematic diagram of the architecture of a communication system applicable to an embodiment of the present application
  • Fig. 4 is a schematic diagram of an original package, a system package and a verification package
  • FIG. 5 is a schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • FIG. 18 is a schematic flowchart of a data transmission method provided by another embodiment of the present application.
  • FIG 19 and Figure 20 are schematic diagrams of headers provided by another embodiment of the present application.
  • Fig. 21 is a schematic block diagram of a communication device provided by an embodiment of the present application.
  • FIG. 22 is a schematic structural diagram of a terminal provided by an embodiment of the present application.
  • words such as “first” and “second” are used to distinguish the same or similar items with basically the same function and effect .
  • the first matrix and the second matrix are only used to distinguish different matrices, and their sequence is not limited.
  • words such as “first” and “second” do not limit the number and execution order, and words such as “first” and “second” do not necessarily limit the difference.
  • “at least one” means one or more, and “multiple” means two or more.
  • “And/or” describes the association relationship of associated objects, indicating that there may be three types of relationships, for example, A and/or B, which can mean: A exists alone, A and B exist simultaneously, and B exists alone, where A, B can be singular or plural.
  • the character “/” generally indicates that the contextual objects are an “or” relationship, but it does not exclude the situation that the contextual objects are an "and” relationship, and the specific meaning can be understood in conjunction with the context.
  • “At least one of the following” or similar expressions refer to any combination of these items, including any combination of single or plural items.
  • At least one item (unit) of a, b, or c may represent: a, b, c; a and b; a and c; b and c; or a and b and c.
  • a, b, c can be single or multiple.
  • B corresponding to A means that B is associated with A.
  • Determining B according to A does not mean determining B only according to A, but also determining B according to A and/or other information.
  • each table in this application can be configured or predefined.
  • the values of the information in each table are just examples, and may be configured as other values, which are not limited in this application.
  • the corresponding relationship shown in some rows may not be configured.
  • appropriate deformation adjustments can be made based on the above table, for example, splitting, merging, and so on.
  • the names of the parameters shown in the titles of the above tables may also adopt other names understandable by the communication device, and the values or representations of the parameters may also be other values or representations understandable by the communication device.
  • other data structures can also be used, for example, arrays, queues, containers, stacks, linear tables, pointers, linked lists, trees, graphs, structures, classes, heaps, hash tables or hash tables can be used Wait.
  • Predefined in this application can be understood as defining, predefining, storing, prestoring, prenegotiating, preconfiguring, curing, or prefiring.
  • a set of encoding coefficients can be expressed in the form of a vector, or in other forms; multiple sets of encoding coefficients can be expressed in the form of multiple vectors, or in the form of a matrix, or expressed in other forms.
  • This embodiment of the present application does not limit it.
  • the index of the coefficient vector is described as a possible form of the indication information of the coding coefficient for the convenience of understanding and description, but this should not constitute any limitation to the present application.
  • the corresponding indication information may also be named as coding coefficient index or other names, which is not limited in this application. It can be understood that the specific value of the coefficient vector index is not limited to the example given in the embodiment of the present application, and can be abstracted as the first value, the second value, the third value, etc., and the value can be determined between the sending end and The encoding coefficient corresponding to the representation at the receiving end may be sufficient.
  • the sending end and the receiving end may store a predefined set of coding coefficients of Q (Q ⁇ 1 and an integer).
  • the Q group of coding coefficients can be stored in the form of matrix, vector, etc., or in the form of array, or can also be stored in the form of matrix and vector generation rules.
  • mathematical transformations such as row/column transformation and matrix transformation can be performed based on the saved matrix or vector to obtain more possible matrices or vectors.
  • the storage involved in this application may refer to storage in one or more memories.
  • the one or more memories may be provided independently, or may be integrated in an encoder or decoder, a processor, or a communication device.
  • a part of the one or more memories may also be provided separately, and a part may be integrated in a decoder, a processor, or a communication device.
  • the type of the storage may be any form of storage medium, which is not limited in this application.
  • the encoding unit corresponds to the decoding unit
  • the encoding unit/decoding unit may be referred to as encoding/decoding unit for short
  • the encoding and decoding unit may also be referred to as encoding unit for short.
  • the coding unit may be, for example, a coding window, or may also be a coding packet.
  • the coding window may be for the sliding window network coding type, and in the embodiment of the present application, the K original packets may be input into the coding window together for network coding and decoding.
  • the coding group may be for group coding. In the embodiment of the present application, the K original packets may be used as a group for network coding and decoding.
  • the length of the original packet mentioned in the embodiment of the present application may refer to several shift units obtained by dividing the original packet according to the granularity of shift units.
  • the length of the data packet includes M bits or M bytes or M symbols, where M ⁇ 1 and is an integer.
  • Bits, bytes, and symbols are units used to characterize the length of a shift unit.
  • one shift unit can be a bit, a byte or a symbol, etc., where a ⁇ 1 and is an integer.
  • one shift unit can be one bit, one byte (ie, 8 bits), or one symbol. Wherein, one symbol may include one or more bits.
  • FIG. 1 is a schematic structural diagram of a communication system 100 applied in an embodiment of the present application.
  • the communication system 100 may include at least one radio access network device (such as 110a and 110b in FIG. 1 ), and may also include at least one terminal (such as 120a-120j in FIG. 1 ).
  • the terminal can be connected to the wireless access network device in a wireless manner.
  • Terminals, and wireless access network devices and wireless access network devices may be connected to each other in a wired or wireless manner.
  • FIG. 1 is only a schematic diagram.
  • the communication system 100 may also include other network devices, such as wireless relay devices and wireless backhaul devices, which are not shown in FIG. 1 .
  • the wireless access network device may be a device with a wireless transceiver function.
  • the wireless access network device may be a device that provides wireless communication function services, and is usually located on the network side, including but not limited to: a next-generation base station (gNodeB, gNB) in a fifth-generation (5th generation, 5G) communication system, a sixth-generation The next generation base station in the 6th generation (6G) mobile communication system, the base station in the future mobile communication system or the access node in the WiFi system, etc., the evolved node B (evolved node B, eNB) in the LTE system, wireless Network controller (radio network controller, RNC), node B (node B, NB), base station controller (base station controller,
  • RNC radio network controller
  • node B node B
  • base station controller base station controller
  • the access network device may include a centralized unit (centralized unit, CU) node, or a distributed unit (distributed unit, DU) node, or a RAN device including a CU node and a DU node, or a control plane CU Node and user plane CU node, and RAN equipment of DU node.
  • a centralized unit centralized unit, CU
  • DU distributed unit
  • RAN device including a CU node and a DU node, or a control plane CU Node and user plane CU node, and RAN equipment of DU node.
  • the access network device provides services for the cell, and the user equipment communicates with the base station through the transmission resources (for example, frequency domain resources, or spectrum resources) used by the cell.
  • the cell may be a cell corresponding to the base station (for example, a base station). It can belong to a macro base station, or it can belong to a base station corresponding to a small cell.
  • the small cell here can include: a metro cell, a micro cell, a pico cell, and a femto cell ( femto cell), etc. These small cells have the characteristics of small coverage and low transmission power, and are suitable for providing high-speed data transmission services.
  • the radio access network device can be a macro base station (as shown in 110a in Figure 1), a micro base station or an indoor station (as shown in 110b in Figure 1), or a relay node or a donor node.
  • CRAN cloud radio access network
  • the embodiment of the present application does not limit the specific technology and specific equipment form adopted by the radio access network equipment.
  • a base station is used as an example of a radio access network device for description below.
  • the terminal can also be called terminal equipment, user equipment (user equipment, UE), mobile station (mobile station, MS), mobile terminal (mobile terminal, MT), etc., which can be a user-side device for receiving or transmitting signals entities, such as mobile phones.
  • the terminal device may be user equipment (user equipment, UE), where the UE includes a handheld device, a vehicle-mounted device, a wearable device, or a computing device with a wireless communication function.
  • the UE may be a mobile phone (mobile phone), a tablet computer or a computer with a wireless transceiver function.
  • the terminal device can also be a virtual reality (virtual reality, VR) terminal device, an augmented reality (augmented reality, AR) terminal device, a wireless terminal in industrial control, a wireless terminal in unmanned driving, a wireless terminal in telemedicine, a smart Wireless terminals in power grids, wireless terminals in smart cities, wireless terminals in smart homes, etc.
  • Terminals can be widely used in various scenarios, such as device-to-device (D2D), vehicle-to-everything (V2X) communication, machine-type communication (MTC), Internet of Things ( internet of things, IOT), virtual reality, augmented reality, industrial control, autonomous driving, telemedicine, smart grid, smart furniture, smart office, smart wearables, smart transportation, smart city, etc.
  • D2D device-to-device
  • V2X vehicle-to-everything
  • MTC machine-type communication
  • IOT Internet of Things
  • virtual reality augmented reality
  • industrial control autonomous driving
  • telemedicine smart grid
  • smart furniture smart office
  • smart wearables
  • Terminals can be mobile phones, tablet computers, computers with wireless transceiver functions, wearable devices, vehicles, drones, helicopters, airplanes, ships, robots, robotic arms, smart home devices, etc.
  • the device for realizing the function of the terminal may be a terminal; it may also be a device capable of supporting the terminal to realize the function, such as a chip system, or a communication module, or a modem, etc., and the device may be installed in the terminal .
  • the system-on-a-chip may be composed of chips, or may include chips and other discrete devices.
  • the technical solutions provided by the embodiments of the present application are described by taking the terminal as an example in which the device for realizing the functions of the terminal is a terminal and the terminal is a UE.
  • the embodiment of the present application does not limit the specific technology and specific device form adopted by the terminal device.
  • the UE can also serve as a base station.
  • UE can act as a scheduling entity between UEs in vehicle-to-everything (V2X), device-to-device (D2D) or peer-to-peer (P2P), etc.
  • V2X vehicle-to-everything
  • D2D device-to-device
  • P2P peer-to-peer
  • Base stations and terminals can be fixed or mobile. Base stations and terminals can be deployed on land, including indoors or outdoors, handheld or vehicle-mounted; they can also be deployed on water; they can also be deployed on aircraft, balloons and artificial satellites in the air. The embodiments of the present application do not limit the application scenarios of the base station and the terminal.
  • the helicopter or UAV 120i in FIG. base station for base station 110a, 120i is a terminal, that is, communication between 110a and 120i is performed through a wireless air interface protocol.
  • communication between 110a and 120i may also be performed through an interface protocol between base stations.
  • both base stations and terminals can be collectively referred to as communication devices, and 110a, 110b, and 120a-120j in FIG. 1 can be referred to as communication devices with their corresponding functions, such as communication devices with base station functions, or communication devices with terminal functions. communication device.
  • the communication between the base station and the terminal, between the base station and the base station, and between the terminal and the terminal can be carried out through the licensed spectrum, the communication can also be carried out through the unlicensed spectrum, and the communication can also be carried out through the licensed spectrum and the unlicensed spectrum at the same time; Communications may be performed on frequency spectrums below megahertz (gigahertz, GHz), or communications may be performed on frequency spectrums above 6 GHz, or communications may be performed using both frequency spectrums below 6 GHz and frequency spectrums above 6 GHz.
  • the embodiments of the present application do not limit the frequency spectrum resources used for wireless communication.
  • the functions of the base station may also be performed by modules (such as chips) in the base station, or may be performed by a control subsystem including the functions of the base station.
  • the control subsystem including base station functions here may be the control center in the application scenarios of the above-mentioned terminals such as smart grid, industrial control, intelligent transportation, and smart city.
  • the functions of the terminal may also be performed by a module (such as a chip or a modem) in the terminal, or may be performed by a device including the terminal function.
  • the present application can be applied to various specific communication scenarios, for example, point-to-point transmission between a base station and a terminal or between terminals (as shown in (a) in Figure 2 is a point-to-point transmission between a base station and a terminal), a base station and a terminal Multi-hop (as in (b) in Figure 2, (c) in Figure 2) transmission, dual connectivity (DC) between multiple base stations and terminals (as in (d) in Figure 2) or multi-connection Wait for the scene.
  • point-to-point transmission between a base station and a terminal or between terminals (as shown in (a) in Figure 2 is a point-to-point transmission between a base station and a terminal), a base station and a terminal Multi-hop (as in (b) in Figure 2, (c) in Figure 2) transmission, dual connectivity (DC) between multiple base stations and terminals (as in (d) in Figure 2) or multi-connection Wait for the scene.
  • FIG. 2 does not limit the network architecture applicable to this application, and this application does not limit transmissions such as uplink, downlink, access link, backhaul (backhaul) link, and sidelink (sidelink, SL).
  • FIG. 3 is a simplified schematic diagram of a communication system provided by an embodiment of the present application.
  • the base station 110 includes an interface 111 and a processor 112 .
  • Processor 112 may optionally store a program 114 .
  • Base station 110 may optionally include memory 113 .
  • the memory 113 may optionally store a program 115 .
  • UE 120 includes interface 121 and processor 122.
  • Processor 122 may optionally store a program 124 .
  • UE 120 may optionally include memory 123.
  • the memory 123 may optionally store a program 125 .
  • These components work together to provide the various functions described in this application.
  • processor 112 and interface 121 work together to provide a wireless connection between base station 110 and UE 120.
  • the processor 122 and the interface 121 work together to implement downlink transmission and/or uplink transmission of the UE 120.
  • a processor may include one or more processors and be implemented as a combination of computing devices.
  • the processor may respectively include one or more of the following: a microprocessor, a microcontroller, a digital signal processor (digital signal processor, DSP), a digital signal processing device ( digital signal processing device (DSPD), application specific integrated circuit (ASIC), field programmable gate array (field programmable gate array, FPGA), programmable logic device (programmable logic device, PLD), gating logic, Transistor logic, discrete hardware circuits, processing circuits, or other suitable hardware, firmware, and/or a combination of hardware and software are used to perform the various functions described in this application.
  • DSP digital signal processor
  • DSPD digital signal processing device
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • PLD programmable logic device
  • a processor may be a general-purpose processor or a special-purpose processor.
  • processor 112 and/or processor 122 may be a baseband processor or a central processing unit.
  • a baseband processor can be used to process communication protocols and communication data.
  • the central processing unit can be used to make the base station 110 and/or UE 120 execute software programs and process data in the software programs.
  • Interfaces may include means for enabling communication with one or more computer devices (e.g., UEs, BSs, and/or network nodes).
  • the interface may include wires for coupling a wired connection, or pins for coupling a wireless transceiver, or chips and/or pins for a wireless connection.
  • an interface may include a transmitter, receiver, transceiver and/or antenna. The interface can be configured to use any available protocol (eg 3GPP standard).
  • a program in this application is used in a broad sense to mean software.
  • Non-limiting examples of software are program code, programs, subroutines, instructions, instruction sets, codes, code segments, software modules, applications, software applications, and the like.
  • the program can run in the processor and/or the computer, so that the base station 110 and/or UE 120 perform various functions and/or processes described in this application.
  • Memory may store data that is manipulated by processors 112, 122 when executing software.
  • the memories 113, 123 may be implemented using any storage technology.
  • memory may be any available storage media that can be accessed by a processor and/or a computer.
  • Non-limiting examples of storage media include: random access memory (random access memory, RAM), read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable Read-only memory (erasable PROM, EPROM), electrically erasable programmable read-only memory (electrically EPROM, EEPROM), compact disk read-only memory (CD-ROM), removable media, optical disk memory, magnetic disk Storage media, magnetic storage devices, flash memory, registers, state memory, remotely mounted memory, local or remote memory components, or any other medium capable of carrying or storing software, data or information and accessible by a processor/computer.
  • the memory (such as the memory 113 and/or the memory 123) and the processor (such as the processor 112 and/or the processor 122) can be provided separately or integrated together.
  • the memory may be used in connection with the processor such that the processor can read information from, store and/or write information to the memory.
  • the memory 113 may be integrated in the processor 112 .
  • the memory 123 may be integrated in the processor 122 .
  • the processor (such as the processor 112 and/or the processor 122) and the memory (such as the memory 113 and/or the memory 123) may be arranged in an integrated circuit (for example, the integrated circuit may be arranged in a UE or a base station or other network nodes) .
  • the network coding function in this application includes performing network coding on the original data packet (abbreviated as original data packet, original packet, etc.) and adding a header of the encoded packet.
  • network coding can be implemented by an encoder, the input of the encoder is K original data packets, and the output of the encoder is N encoded data packets (referred to as encoded packets), where N and K are both is a positive integer, and N is greater than K.
  • the encoding package includes N-K check packages (also called redundant packages) and K system packages, or N check packages (that is, the code packages are all check packages, excluding system packages). Wherein, the content of the system package is the same as that of the original data package.
  • the system header can be obtained by directly adding a header to the original data packet, therefore, the equivalent encoding coefficient of the system packet can be considered as a unit vector.
  • the coding coefficient of the check packet can be a non-unit vector.
  • the receiving end can decode the verification packet and the successfully received original data packet or system packet together to restore the original data packet that was not successfully received. data pack.
  • a header may be added to the original data packet before network encoding and adding the header of the encoded packet to obtain a verification packet.
  • the data packet obtained by adding a packet header to the original data packet before network encoding is also called a system packet.
  • Fig. 4 shows the relationship among original data package, system package and verification package.
  • the system package can include a header and a data part, and the data part of the system package is an original package.
  • the verification packet can include a header and a data part.
  • the data part of the verification packet can be obtained by network encoding based on the original packet, as shown in the verification packet a in the figure; it can also be network encoded based on the system packet, as shown in the verification packet a in the figure.
  • the inspection package b This embodiment of the present application does not limit it. Since the system packet is obtained by adding a packet header on the basis of the original packet, the length of the system packet is greater than that of the original packet. Therefore, as shown in FIG.
  • the length of the data portion of the verification packet b is greater than the length of the data portion of the verification packet a, and the length of the verification packet b is also greater than the length of the verification packet a.
  • the header length of the system packet and the header length of the verification packet may be the same or different. This embodiment of the present application does not limit it.
  • the network coding function of the sending end corresponds to the network decoding function of the receiving end.
  • the receiving end can recover K original data packets by decoding at least K coded packets successfully received together.
  • a protocol layer having a network coding function or a decoding function corresponding to the network coding may be called a network coding/decoding layer, and the network coding/decoding layer is referred to as a network coding layer for short in this application.
  • the embodiments of the present application may be applied to a protocol layer having a network coding function, that is, a network coding layer.
  • the network coding layer may be on the CU side of the gNB, or on the DU side of the gNB, which is not limited in this embodiment of the present application.
  • the network coding function can be embedded in a specific layer, such as the radio resource control (radio resource control, RRC) layer, the packet data convergence protocol (packet data convergence protocol, PDCP) layer, and the backhaul adaptation layer.
  • Protocol backhaul adaptation protocol, BAP
  • radio link control radio link control
  • media access control medium access control
  • MAC medium access control
  • PHY physical layer
  • the network coding layer can also be a new protocol layer other than the MAC layer, the RLC layer, the BAP layer, and the PDCP layer. It can add a network coding layer above the PDCP layer, or add a network coding layer above the BAP layer.
  • the network coding layer or, add a network coding layer between the PDCP layer and the RLC layer (in the CU-UP logical entity or in the DU logical entity), or, add a network coding layer between the RLC layer and the MAC layer, or, A network coding layer is added between the MAC layer and the PHY layer.
  • any communication device that can have a network coding layer can use the data transmission method described below, such as a base station, a terminal, and so on.
  • the base station may be an example of a sending end, and the terminal may be an example of a receiving end; or, the terminal may be an example of a sending end, and the base station may be an example of a receiving end.
  • the present application does not limit the device used to execute the data transmission method.
  • the order of the sequence numbers of the original packets in the multiple original packets encoded together is consistent with the order of the elements in the predefined coding coefficients, that is, each original packet is in the same order as
  • the corresponding relationship of each element in the coding coefficient is fixed, but this may bring a certain amount of transmission overhead, resulting in a low utilization rate of spectrum resources.
  • How to make the corresponding relationship between each original packet and each element in the coding coefficient variable during the network coding process and avoid the corresponding decoding error of the network coding is a technical problem to be solved urgently.
  • the present application provides a data transmission method.
  • the sending end makes the relationship between each original packet and each element in the coding coefficient flexible and variable. In this way, the sending end can flexibly adjust the coding coefficient corresponding to each original packet according to the coding coefficient and the length of the original packet with the goal of reducing the transmission overhead. Therefore, it is beneficial to improve the utilization rate of spectrum resources.
  • K the number of original packets obtained by the sender, or the number of system packets sent by the sender, K>1 and an integer.
  • R The number of verification packets sent by the sender, R ⁇ 1 and an integer.
  • U The number of verification packets received by the receiving end, R ⁇ U ⁇ 1 and is an integer.
  • x k one of K original packets, 1 ⁇ k ⁇ K, k is an integer.
  • y r the data part of the rth verification packet among the R verification packets, 1 ⁇ r ⁇ R, r is an integer.
  • G The generation matrix of the R verification packets, which can be K ⁇ R or R ⁇ K dimensions.
  • the generator matrix can be from a P ⁇ Q dimensional matrix, or from a Q ⁇ P dimensional matrix.
  • a P ⁇ Q dimensional matrix or a Q ⁇ P dimensional matrix is a possible form of the predefined Q group of coding coefficients, P ⁇ K, Q ⁇ R, and P and Q are integers.
  • the generating matrix may include R sets of encoding coefficients, and the R sets of encoding coefficients may be R sets of encoding coefficients in Q sets of encoding coefficients from a P ⁇ Q dimensional matrix or a Q ⁇ P dimensional matrix.
  • the R group of coding coefficients can be, for example, the continuous R group of coding coefficients in the Q group of coding coefficients, such as the front R group and the rear R group in the Q group of coding coefficients, or a certain predefined sequence number is determined as the starting position or, the R group of coding coefficients may be discontinuous R groups of coding coefficients in the Q group of coding coefficients. This embodiment of the present application does not limit it.
  • each group of coding coefficients in the R group of coding coefficients includes K coding coefficients
  • each group of coding coefficients in the Q group of coding coefficients includes P coding coefficients.
  • Any group of coding coefficients in the R group of coding coefficients comes from a group of coding coefficients in the Q group of coding coefficients.
  • the K coded coefficients can be K consecutive elements in the P coded coefficients from which they come, such as the first K elements, the last K elements, or a certain
  • the K elements determined by the predefined sequence number as the starting position, or the K coding coefficients may be discontinuous K elements among the P coding coefficients from which they come. This embodiment of the present application does not limit it.
  • Coding coefficient used to define the amount of displacement.
  • the displacements defined by each encoding coefficient are all integers greater than or equal to zero.
  • the coding coefficients are represented by different parameters, for example etc., which have the same meaning.
  • the subscripts k, r, p, and q are used to indicate the sequence numbers of the rows or columns of the coding coefficients in different matrices.
  • the displacement defined by the coding coefficients in the P ⁇ Q dimensional matrix or Q ⁇ P dimensional matrix is represented by s, such as s p,q , s q,p
  • the displacement defined by the coding coefficients in the K ⁇ R-dimensional or R ⁇ K-dimensional generator matrix is represented by t, such as t k,r , t r,k .
  • Vandermonde matrix (Vandermonde matrix): shaped like The matrix of , where [a 1 a 2 ...a m ] is taken from a finite field and is different from each other.
  • Finite field also known as Galois field (GF)
  • GF Galois field
  • the sending end may be, for example, a communication device (such as a base station), or may also be a component configured in the communication device, such as a chip, a chip system, or other functional modules capable of invoking and executing programs.
  • the receiving end may be, for example, a communication device (such as a terminal), or may also be a component configured in the communication device, such as a chip, a chip system, or other functional modules capable of invoking and executing programs.
  • the encoding package may include a system package and a check package.
  • the encoded packets received by the receiving end may be all system packets, or all check packets, or both system packets and check packets.
  • Encoding packets may include system packets and/or verification packets.
  • Fig. 5 is a schematic flowchart of a data transmission method provided by an embodiment of the present application.
  • the data transmission method shown in FIG. 5 may include steps 510 to 540 . Each step in the method 500 is described in detail below.
  • step 510 the sender obtains K original packets.
  • the lengths of the K original packets may be the same or different, which is not limited in the embodiment of the present application.
  • the K original packets may include, for example, a service data unit (service data unit, SDU), or an SDU segment, or a protocol data unit (protocol data unit, PDU), or a PDU segment. If the K original packets have the same length, the K original packets can also be obtained by segmenting, concatenating, padding, etc. One or more of the processing results. This embodiment of the present application does not limit it.
  • K original packets of unequal length are taken as an example to describe the method provided by the embodiment of the present application. It should be understood that the K original packets have unequal lengths, that is, at least two of the K original packets have different lengths. It should also be understood that the data transmission method provided in the embodiment of the present application is also applicable to the case where K original packets are equal in length.
  • the number of K original packets can be predefined by the protocol, or negotiated in advance between the sender and the receiver, or can be determined by the sender and notified to the receiver by indicating the number K in the packet header. .
  • This embodiment of the present application does not limit it.
  • step 520 the sending end performs network coding based on the K original packets to obtain K system packets and R verification packets.
  • the encoding pattern involved in the embodiment of the present application is a shift XOR code.
  • the shifted XOR code is a code pattern with low complexity and maximum distance separable (MDS) characteristics.
  • MDS maximum distance separable
  • the process of network coding using shifted XOR codes can be called shifted XOR coding.
  • the process of shifted XOR coding will be described in detail below.
  • the K system packets can be generated based on the K original packets, for example, by adding headers, or by network coding.
  • the R check packets may be obtained by network coding based on the K original packets, or may be obtained by network coding based on the K system packets, which is not limited in this embodiment of the present application.
  • the data to be sent are K original packets of unequal length, denoted by x 1 , x 2 , . . . , x K respectively.
  • K represents the number of original packets, K>1 and is an integer.
  • the length of the original packet x K includes M k bits or M k bytes or M k symbols. M k ⁇ 1 and is an integer. Since in the process of shift XOR encoding, the data packet will be shifted, and the granularity of the shift is a shift unit, therefore, the length of the original packet can refer to dividing the original packet according to the granularity of the shift unit Several shift units are obtained.
  • bits, bytes, and symbols are units used to characterize the length of the shift unit.
  • one shift unit can be a bit, a byte or a symbol, etc., where a ⁇ 1 and is an integer.
  • one shift unit can be one bit, one byte (ie, 8 bits), or one symbol.
  • one symbol may include one or more bits.
  • the m kth bit or byte or symbol in the original packet x k can be written as 1 ⁇ k ⁇ K, 1 ⁇ m k ⁇ M k , k and m k are integers.
  • Table 1 shows bit sequences included in each of the original packets x 1 to x K .
  • the network coding of the above K original packets can be realized by using a matrix in the form of [I K G K ⁇ R ].
  • the sub-matrix I K is a K ⁇ K-dimensional unit matrix.
  • the K system packages may be in one-to-one correspondence with the K original packages.
  • the generation of the system package does not necessarily depend on the sub-matrix I K , and the system package can be directly obtained by adding a package header to the original package.
  • the embodiment of the present application does not limit the generation method of the system package.
  • Encoding x 1 , x 2 ,..., x K using the sub-matrix G K ⁇ R in the above matrix can generate R check packets, and the data part of the R check packets can be expressed as y 1 , y 2 , ... y R .
  • y 1 , y 2 , ... y R are codewords generated by K original packets x 1 , x 2 , ..., x K shifted XOR encoding.
  • the sub-matrix G K ⁇ R used to generate the R check packets may be referred to as a generator matrix.
  • the rth (1 ⁇ r ⁇ R, r is an integer) verification packet among the R verification packets can be obtained by performing network coding on the K original packets in the rth column of the generator matrix.
  • the generator matrix G K ⁇ R can satisfy:
  • R verification packets and generator matrix G K ⁇ R can satisfy:
  • the generator matrix G K ⁇ R includes R columns, and each column includes K coding coefficients.
  • the encoding coefficients of the r-th column in the R columns can be used to generate the r-th check packet in the R check packets. That is, the generator matrix G K ⁇ R in
  • It includes a set of coding coefficients used to generate the rth check packet in the R check packets.
  • the data of the rth verification packet and the encoding coefficient of the rth column satisfy: in, Indicates XOR processing.
  • Represents the shift operation on the original packet x k , t k,r represents the displacement amount defined by the coding coefficients in row k and column r in the generator matrix, t k,r ⁇ 0, t k,r is an integer; and, When t k,r ⁇ 1, Satisfy:
  • M represents the shift unit contained in the original packet x k 1 ⁇ m ⁇ M+t k,r , M ⁇ 1, m and M are integers.
  • the generation matrix of the R check packets is not limited to G K ⁇ R shown above.
  • Mathematically transforming the matrix G K ⁇ R can also obtain a generating matrix that can be used to generate R check packets.
  • a generating matrix that can be used to generate R check packets.
  • the generator matrix G R ⁇ K can satisfy:
  • R verification packets and generator matrix G R ⁇ K can satisfy:
  • the generator matrix G R ⁇ K includes R rows, and each row includes K coding coefficients.
  • the encoding coefficients of the r-th row among the R rows can be used to generate the r-th check packet among the R check packets. That is, in the generator matrix G R ⁇ K
  • It includes a set of coding coefficients used to generate the rth check packet in the R check packets.
  • the data of the r-th check packet and the encoding coefficient of the r-th line satisfy: in, Represents the shift operation on the original packet x k , t r,k represents the displacement amount defined by the encoding coefficients in row r and column k in the generator matrix, t r,k ⁇ 0, t r,k is an integer; and, When t r,k ⁇ 1, Satisfy: Indicates the mth shift unit obtained by shifting the mt r,k shift unit in the original packet x k to the right by t r,k shift units, and M represents the number of shift units contained in the original packet x k Number; 1 ⁇ m ⁇ M+t r,k , M ⁇ 1, m and M are integers.
  • both the generator matrix G K ⁇ R and the generator matrix G R ⁇ K include R groups of coding coefficients, and each group of coding coefficients includes K coding coefficients, corresponding to K original packets.
  • R sets of coding coefficients are only two possible forms of R sets of coding coefficients used to generate R check packets, which should not limit the embodiment of the present application.
  • the R sets of coding coefficients do not necessarily exist in the form of a matrix, for example, they may exist in the form of R coefficient vectors, or in the form of an array.
  • the R groups of coding coefficients are obtained from the predefined Q groups of coding coefficients.
  • the K ⁇ R-dimensional sub-matrix G K ⁇ R is cut out from the P ⁇ Q-dimensional matrix, or the R ⁇ K-dimensional sub-matrix G R ⁇ K is cut out from the Q ⁇ P-dimensional matrix, where , P ⁇ K, Q ⁇ R, P and Q are integers.
  • the P ⁇ Q dimensional matrix is, for example, denoted as the first matrix H 1 .
  • the first matrix may also be denoted as H P ⁇ Q .
  • the first matrix H P ⁇ Q satisfies:
  • each element with the elements in the above generator matrix G K ⁇ R Similar, both are used to represent shift operations. Here it is only for the convenience of distinguishing different rows and columns, which are represented by different letters.
  • the generating matrix G K ⁇ R may be composed of K rows and R columns intercepted from the first matrix HP ⁇ Q .
  • the Q ⁇ P dimensional matrix can be denoted as the second matrix H 2 , for example, in order to correspond to the dimension of the generator matrix, the second matrix can also be denoted as H Q ⁇ P , and the second matrix H Q ⁇ P Satisfy:
  • each element with the elements in the above generator matrix G R ⁇ K Similar, both are used to represent shift operations. Here it is only for the convenience of distinguishing different rows and columns, which are represented by different letters.
  • the generator matrix G R ⁇ K may be composed of R rows and K columns intercepted from the second matrix H Q ⁇ P .
  • the Q group of coding coefficients can be pre-stored at the sending end and the receiving end, so that both parties can perform coding and decoding based on the same coding coefficients.
  • the Q group of coding coefficients is not necessarily stored in the form of a matrix at the sending end and the receiving end, for example, it can also be stored in the form of an array, or in the form of the above-mentioned generation rules of the first matrix or the second matrix, etc. sender and receiver. As long as both parties can determine the same set of Q coding coefficients based on the same matrix or rule.
  • the R groups of coding coefficients can be a generator matrix satisfying the structure shown below, or it can also be a set of R coefficient vectors in a matrix satisfying the structure shown below, or it can also be a set of R coefficient vectors satisfying the structure shown below
  • a possible design is that the generator matrix is a Vandermonde matrix G Vandermonde structure.
  • the generator matrix G K ⁇ R satisfies:
  • z t represents a shift operation, 0 ⁇ t ⁇ (K-1)(R-1), and t is an integer multiple of (K-1), or an integer multiple of (R-1).
  • the lengths of the three original packets x 1 , x 2 and x 3 are M 1 , M 2 and M 3 bits respectively, and M 3 >M 1 >M 2 , M 1 , M 2 and M 3 are integers.
  • Network coding based on the 3 original packets x 1 , x 2 and x 3 can get 2 check packets.
  • the data parts of the three verification packets can be denoted as y 1 and y 2 .
  • Table 2 and Table 3 below respectively show the data parts y 1 and y 2 of the two verification packets obtained when the three original packets are sorted.
  • the coding coefficients used to generate the first verification packet are z 0 , z 0 , z 0 , that is, the original packets x 1 , x 2 , and x 3 are all shifted by 0 shift units.
  • the coding coefficients used to generate the second verification packet are z 0 , z 1 , z 2 , that is, the shifts of the original packets x 1 , x 2 , and x 3 are 0, 1, and 2 shift units respectively .
  • the generator matrix in the form of the Vandermonde matrix exemplified above is only an example, and should not constitute any limitation to the present application.
  • the generator matrix G R ⁇ K may be the transpose of G K ⁇ R , which will not be repeated here for brevity.
  • the verification packet can be obtained by network coding based on the original packet, or by network coding based on the system packet. Therefore, in the relationship between the R verification packages and the generator matrix shown above, the original packages x 1 , x 2 , . . . , x K can also be replaced by system packages. For the sake of brevity, examples are not given here.
  • the generator matrix has a Cauchy matrix structure.
  • the structure of K ⁇ R'-dimensional Cauchy matrix constructed based on set ⁇ and set ⁇ is as follows:
  • each element in it with the primitive element representation method on the finite field, and the matrix can be obtained where ⁇ is the primitive element of GF(q p ), It is the power of t k,r' of primitive element ⁇ . Further, the primitive element of G prim is used as the offset symbol z, the exponent t k, r of the primitive element is used as the first offset, and the common offset in each column is deleted to obtain the second offset. In the second offset, each column has a minimum offset of 0, that is, each column contains element z 0 , and the matrix is obtained
  • the matrix G shift is used as the generator matrix G of the R check packets in the shifted XOR coding.
  • Table 4 shows the powers of finite field GF(2 3 ) elements and their corresponding primitive elements.
  • generator matrix has the following matrix G' structure.
  • the generator matrix G corresponding to the R verification packets can be a K ⁇ K-dimensional matrix R (R ⁇ K) columns in the K columns are arbitrarily selected to form a K ⁇ R-dimensional matrix G, or in other words, a generator matrix G corresponding to R check packets.
  • the row vector of the first row in the matrix G' satisfies: e is the index of the element in the row vector, the row vector of the lth row in the K ⁇ K dimensional matrix is the row vector obtained by cyclically shifting the row vector of the first row (l-1), 1 ⁇ l ⁇ K , l is an integer.
  • the elements in the row vector of the first row can be The first R elements in the row vector, e is the index of the element in the row vector; the first l-1 elements of the row vector of the lth row are The last (l-1) elements in , the last R-l+1 elements of the row vector of row l are The first R-l+1 elements in .
  • the length of the original packet x 3 is the largest, and the corresponding displacement is the largest, resulting in the length of the data part y 2 of the second generated verification packet being changed to M 3 +2.
  • the length of the original packet x 2 is the smallest. Although it has been shifted, the last bit after shifting still does not exceed the last bit M 3 of the three original packets.
  • the encoding coefficient of the original packet x 3 is adjusted to z 0 , that is, x 3 in Table 3 Switch to the position of x 1 , and adjust the encoding coefficient of the original packet x 2 to, that is, change x 2 to x 3 in Table 3, then y 2 shown in Table 5 can be obtained.
  • the length of the data part y 2 of the second verification packet is M 3 , which is significantly smaller than the length M 3 +2 before sorting by performing shift XOR encoding on the three sorted original packets.
  • the sender before performing network coding on the K original packets, the sender can first sort the K original packets, so that in the process of generating each verification packet, the original packets with a larger length
  • the displacement defined by the coding coefficient corresponding to the packet is small, and the displacement defined by the coding coefficient corresponding to the original packet with a small length is relatively large.
  • the displacement of the encoding coefficient z 0 is 0, and the displacement is the smallest, which can be used for network encoding of the original packet x 3 with the largest length; the encoding coefficient z
  • the displacement amount of 2 is 2 displacement units, which can be used to perform network coding on the original packet x 2 with the smallest length.
  • the sending end can sort the K original packets and then input them into the coding unit. Therefore, the order of the K original packets in the coding unit is inconsistent with the order of the serial numbers (serial number, SN) of the K original packets. In other words, the relative position of at least one original package among the K original packages in the coding unit is different from its relative position among the K original packages.
  • the K original packets include x 1 , x 2 , . . . , x K , and the corresponding sequence numbers are 1, 2, . . . , K, respectively.
  • the sequence of the K original packets in the coding unit is, for example, x K , x 2 , . . . , x 1 .
  • the order of the K original packets in the coding unit is inconsistent with the order of the sequence numbers.
  • the sequence number of the original package x K is K, that is, the relative position in the K original packages is the Kth one, but the relative position in the coding unit is the first one.
  • the sequence number of the original package x K is K, that is, the relative position in the K original packages is the Kth one, but the relative position in the coding unit is the first one.
  • the sequence number is an identifier used to distinguish data packets, and is related to the transmission sequence of the data packets.
  • the sequence number is incremented by 1 each time a packet is transmitted. Therefore, the sequence numbers of the K original packets can identify the transmission sequence of the K original packets.
  • the serial number is only one possible nomenclature. This application does not exclude the possibility of replacing the serial number with other names to express the same or similar meanings.
  • the K original packets recovered by the receiving end are the sorted original packets.
  • the sorted order of the K original packets is x K , x 2 , ..., x 1
  • the order of the K original packets recovered by the receiving end is also x K , x 2 , ..., x 1 .
  • each coding coefficient satisfies: Among them, k 1 and k 2 represent the sequence numbers of two rows in the generator matrix G K ⁇ R , r 1 and r 2 represent the sequence numbers of two columns in the generator matrix G K ⁇ R , and satisfy: K ⁇ k 2 > k 1 ⁇ 1, R ⁇ r 2 > r 1 ⁇ 1.
  • each coding coefficient satisfies: Among them, k 1 and k 2 represent the serial numbers of the two columns in the generator matrix G R ⁇ K , r 1 and r 2 represent the serial numbers of the two rows in the generator matrix G R ⁇ K , and satisfy: K ⁇ k 2 > k 1 ⁇ 1, R ⁇ r 2 > r 1 ⁇ 1.
  • the coding coefficients in the generator matrix G K ⁇ R or G R ⁇ K are used to perform network coding on K original packets, the further behind the original packets, the greater the displacement. Therefore, when the K original packets of unequal length are network-encoded in the coding unit, if the longer original packet is placed at a relatively later position, and the shorter original packet is placed at a relatively front position, It may further increase the length of the longer original packet after the shift operation, and the length of the shorter original packet after the shift operation will increase slightly. K original packets of different lengths after the shift operation , the length gap is further widened, which will inevitably lead to more transmission overhead consumption, and a large part of the consumed transmission overhead is not really properly utilized, and the utilization rate of spectrum resources is not high.
  • each coding coefficient in the generator matrix G K ⁇ R satisfies Then the elements in the first matrix H P ⁇ Q also need to satisfy p 1 and p 2 represent the serial numbers of the two rows in the first matrix HP ⁇ Q , q 1 and q 2 represent the serial numbers of the two columns in the first matrix HP ⁇ Q , and satisfy: P ⁇ p 2 > p 1 ⁇ 1, Q ⁇ q 2 > q 1 ⁇ 1.
  • the generator matrix G R ⁇ K comes from the second matrix H Q ⁇ P , and each coding coefficient in the generator matrix G R ⁇ K satisfies Then the elements in the second matrix H Q ⁇ P also need to satisfy
  • p 1 and p 2 represent the sequence numbers of two columns in the second matrix H Q ⁇ P
  • q 1 and q 2 represent the sequence numbers of two rows in the second matrix H Q ⁇ P
  • p 1 , p 2 , q 1 , and q 2 are integers.
  • the K original packets of unequal lengths can be sorted in order of length from large to small, so that the first original packets among the K original packets entering the coding unit The length of the packet is greater than the length of the original packet that was queued later. That is, any two original packets in the K original packets with Meet: Original Package
  • the position in the code unit is in the original packet before, and represents the original package
  • the number of shift units contained in represents the original package The number of shift units contained in .
  • the order of the K original packets in the coding unit is related to the displacement defined by each coding coefficient in the generator matrix and the length of the K original packets.
  • the generator matrix with a structure like the Cauchy matrix in the above example can also be sorted according to the displacement defined by each encoding coefficient in the generator matrix and the length of the K original packets, so that the encoding of the longer original packets
  • the number of shift bits corresponding to the coefficients is as small as possible, so that the transmission overhead introduced by the shift operation can be reduced, and the spectrum resources can be efficiently used.
  • the sender can design the header of the coded packets to notify the receiver of the order of the K original packets after sorting, so that the receiver can accurately determine the code corresponding to each coded packet Coefficients, so that K original packets can be obtained by decoding accurately.
  • the sender may carry information about the relative positions of each original packet in the encoding unit in the packet header of the encoded packet, or carry ordering information of the K original packets.
  • the packet header of the kth system packet among the above K system packets includes location information of the original packet corresponding to the kth system packet, and the location information can be used to indicate that the kth system packet corresponds to The relative position of the original packet in the code unit.
  • the packet header of the kth system packet includes the packet identity (packet identity, packet ID) of the original packet corresponding to the kth system packet.
  • the package identifier may indicate the relative position of the original package in the coding unit.
  • the location information may be carried, for example, in the packet identification field of the packet header of the system packet.
  • the packet header of the kth system packet includes indication information for generating the coding coefficient of the kth system packet.
  • the location information may be carried in, for example, a coefficient vector index (coefficient vector index) field of a packet header of a system packet.
  • the matrix I K for generating K system packets is an identity matrix, that is, the coding coefficients for generating each system packet are taken from a vector including only one non-zero element.
  • the non-zero element is the kth element therein. That is, among the coding coefficients used to generate the kth systematic package, the sequence number of the non-zero element is the same as the sequence number of the original package corresponding to the kth system package in the coding unit.
  • the coding coefficients used to generate each system packet may be a group of coding coefficients in the predefined Q group coding.
  • the Q groups of coding coefficients may be expressed in the form of Q coefficient vectors.
  • the Q coefficient vectors may be in one-to-one correspondence with the Q index values. Table 6 shows an example of correspondence between K coefficient vectors and K coefficient vector indices.
  • the indication information of the above coding coefficients is not limited to being indexed by a coefficient vector.
  • the encoding coefficients may also be in other forms, such as an array, and the corresponding indication information may also be an index of the array, and so on. This embodiment of the present application does not limit it.
  • the packet header of each of the above R verification packets includes sorting information, and the sorting information is used to indicate the order of the K original packets in the coding unit.
  • the packet header of each verification packet includes: sequence numbers of the K original packets sorted according to the order of the K original packets in the coding unit.
  • the ordering information may be carried in the packet order (packet order) field of the header of the verification packet, for example.
  • the packet header of each verification packet includes: information for indicating the lengths of the K original packets sorted according to the sequence of the K original packets in the coding unit.
  • the ordering information may be carried in the length order (length order) field of the packet header of the verification packet, for example.
  • the present application does not limit the indication manner of the lengths of the K original packets.
  • the lengths of the K original packets may be directly indicated.
  • multiple predefined different lengths may be associated with multiple indexes, and the lengths of the K original packets are indicated through indexes corresponding to the lengths of the K original packets. This application includes but is not limited to this.
  • the packet headers of the system packet and the verification packet may respectively contain other information.
  • the sending end can indicate the original packets encoded together in the packet header.
  • the raw packets that are coded together are the raw packets that are input together into the coding window, or are treated as one coding packet.
  • the above K original packets are original packets encoded together, which can be indicated by the following methods:
  • One possible implementation is to use a block ID to identify the original packet as an encoded block.
  • the original packets of the same encoded packet have the same group identity.
  • the group identifier may, for example, be carried in the group identifier field of the packet header of each system packet.
  • the above K original packets have the same group identifier.
  • Another possible implementation is to use a combination of window indicators to identify the original packets that are input together into the encoding window.
  • the window indication may include at least two items as follows: window head position, window tail position and window length.
  • the window head position refers to the identification information of the first original packet among the K original packets that are input into the encoding window together
  • the window tail position refers to the K original packets that are input into the encoding window together
  • Identification information of the Kth original package in the original package may be, for example, the serial number of the original package.
  • the window length may refer to the number K of raw packets input together into the encoding window.
  • the window indication may include, for example: the sequence number of the first original packet and the sequence number of the Kth original packet, or, the sequence number of the first original packet and indication information of K, or, the sequence number of the Kth original packet The sequence number of the packet and the indication information of K.
  • the window length can be a fixed value, or a predefined value, or a semi-static configuration, or negotiated in advance between the sending and receiving parties. That is to say, the receiving end can predetermine the window length.
  • the window length (that is, the indication information of the quantity K of the original package) can be omitted, so the window indication can include the sequence number of the first original package and /or the sequence number of the Kth raw packet.
  • the sender can carry the serial number field in the header of the system packet and the verification packet respectively, and carry the window indication field in the header of the verification packet; or, the sender can also carry the group identifier in the header of the system packet field and the package identifier field.
  • the sender can carry the serial number field in the header of the system packet and the verification packet respectively, and carry the window indication field in the header of the verification packet, and carry the group identifier in the header of the system packet and the verification packet respectively field, and the packet identification field can also be carried in the packet header of the system packet.
  • the packet headers of the system packet and the verification packet may further include indication information of the encoded packet type.
  • the encoding packet type includes a system packet or a verification packet.
  • a one-bit original (Original, O) field may be used in the packet header of the system packet to represent the system packet
  • a one-bit coded (coded, C) field may be used in the packet header of the verification packet to represent the verification packet.
  • O field and C field may be referred to as O/C field for short, and the O/C field is used to indicate the type of the encoded packet.
  • the coded packet type can also be distinguished by the coded coefficient. It can be found through observation that each group of coding coefficients used to generate the system package only includes one non-zero element, that is, z is 0 or 1, and other elements are all 0. However, the encoding coefficients used to generate the verification package do not have this feature. It should be understood that a non-zero element may refer to an element whose value is not zero, or an element whose shift number is greater than or equal to zero.
  • the encoded packet type can be distinguished through the encoding coefficient. That is, if the coding coefficient indicated by the coefficient vector index in the packet header of a certain coding packet includes only one z 0 or 1, the coding packet is a system packet; if the coefficient vector index in the packet header of a certain coding packet indicates The coding coefficient of does not include only one z 0 or 1, then the coded packet is a check packet.
  • the packet headers of the system packet and the check packet may not include the O/C field, but include the indication information of the coding coefficient.
  • the indication information of the coding coefficient is the coefficient vector index, which can be carried in the coefficient vector index field of the header of the system packet and the check packet.
  • the coding coefficients used to generate each system packet can be a group of coding coefficients in the predefined Q group of coding coefficients, similarly, the coding coefficients used to generate each check packet can also be pre-defined A set of encoding coefficients in the defined Q set of encoding coefficients.
  • the Q groups of coding coefficients may be expressed in the form of Q coefficient vectors.
  • the Q coefficient vectors may be in one-to-one correspondence with the Q index values.
  • Table 7 shows an example of the correspondence between R coefficient vectors and R coefficient vector indices.
  • the R coefficient vectors shown in Table 7 are the R coefficient vectors in the generator matrix G K ⁇ R or G R ⁇ K obtained based on the structure of the Vandermonde matrix.
  • Table 6 and Table 7 respectively show the corresponding relationship between the coefficient vector index and the coefficient vector corresponding to the system package, and the corresponding relationship between the coefficient vector index and the coefficient vector corresponding to the verification package. In fact, Table 6 and Table 7 can be independent or combined.
  • Table 8 shows the corresponding relationship between coefficient vector indexes and coefficient vectors used for the system package and the check package. The coefficient vectors corresponding to the check packets shown in Table 8 are still R coefficient vectors shown in the structure of the Vandermonde matrix as an example.
  • the sending end and the receiving end can determine whether the indication information for the coefficient vector is indicated according to the corresponding relationship shown in Table 6 and Table 7, or according to the corresponding relationship shown in Table 8. It can be understood that, in the various correspondences between the coefficient vector index and the coefficient vector in this application, the value of the coefficient vector index can also be other values, and the coefficient vector represented by it can be represented at the sending end and the receiving end. .
  • each group of coding coefficients in the Q group of coding coefficients may include K coding coefficients, or more than K coding coefficients, for example, denoted as P (P ⁇ K and an integer).
  • the Q group of coding coefficients can construct a P ⁇ Q dimensional matrix or a Q ⁇ P dimensional matrix.
  • the above generator matrix G K ⁇ R may come from a P ⁇ Q dimensional matrix, and the generator matrix G R ⁇ K may come from a Q ⁇ P dimensional matrix.
  • the above correspondence between coefficient vector indices and coefficient vectors can be extended to more sets of correspondences, not limited to the correspondences shown in Table 7 and Table 8 above.
  • Table 9 and Table 10 show the corresponding relationship between Q coefficient vector indices and Q coefficient vectors.
  • Table 9 and Table 10 shown above may be defined corresponding to different numbers of original packets.
  • different correspondences between coefficient vector indices and coefficient vectors may be defined. That is to say, corresponding to different numbers of original packets, the coefficient vectors corresponding to the same absolute index value may be different.
  • each group of coding coefficients includes P coding coefficients. Since P ⁇ K, which K elements of the P coding coefficients are used as the elements in the coefficient vector can be pre-negotiated between the sending end and the receiving end, or can be predefined by the protocol. For example, one of P can be taken as The first K elements, or the last K elements, or the K elements obtained from a predefined position, or discontinuous K elements, etc. This embodiment of the present application does not limit it.
  • the packet header of the system packet may also include length indication information carried in the length field to indicate the data length of the system packet, that is, the length of the original packet corresponding to the system packet.
  • the packet header of the verification packet may also include indication information of the number of original packets carried in the field of the number of original packets to indicate the number K of the original packets.
  • the system vector index field in the header of the verification packet is recorded as the coefficient vector index field of the verification packet
  • the coefficient vector index field in the header of the system packet is recorded as the coefficient vector index field of the system packet.
  • the system packet header carries a packet identifier to indicate the relative position of the corresponding original packet in the coding unit.
  • the system packet header also includes an O field and a sequence number field.
  • the system packet header further includes a length field, a group identification field, and a window indication field.
  • the check packet header includes a C field, a coefficient vector index field, a group identifier or a window indication field.
  • the verification packet header further includes a sequence number field, a packet sorting field, a length sorting field, and a quantity field of original packets.
  • the O/C field can be used for the receiving end to identify the system package and check the package.
  • the sequence number field may be used to indicate the transmission sequence of the corresponding original packet.
  • the sequence number field and the window indication field can be used to indicate which original packets are encoded together, and can be used to determine which system packets and check packets need to be decoded together.
  • the group identifier field is used to indicate which original packets are coded as one coding group, or which original packets are coded together, and can be used to determine which system packets and check packets need to be decoded together. Since both the group identification field and the window indication field can determine which original packets are encoded together, the group identification field and the window indication field do not need to be carried in the header of the encoded packet at the same time.
  • the package identification field can be used to indicate the relative position of the original package corresponding to the system package in the encoding unit.
  • the length field may be used to indicate the length of the original packet. As mentioned above, the present application does not limit the way of indicating the length of the original packet. For example, a length or an index corresponding to the length may be indicated.
  • the coefficient vector index field of the check packet may be used to indicate the encoding coefficient corresponding to the check packet.
  • the raw packet quantity field may be used to indicate the quantity K of raw packets. Since the window indication field can also be used to indicate the quantity K of the original packet, when K is variable, the window indication field and the original packet quantity field do not need to be carried in the verification packet header at the same time. In addition, since the number K of original packets may also be a fixed value, or predefined, or semi-statically configured, the field of the number of original packets may be omitted.
  • the length ordering field may be used to indicate the lengths of the K original packets sorted in the order of the K original packets in the coding unit. Since the length sorting field shows the lengths of the K original packets sorted according to the order of the K original packets in the coding unit, as long as the order of the K original packets in the coding unit is known, the length of each original packet can be determined. Therefore, at the sending end, the ordering of the K original packets in the coding unit or the ordering of each original packet in the coding unit In the case of the relative position of , the length field and the length sorting field do not need to be carried in the header of the encoded packet at the same time.
  • Figures 6 to 9 show schematic diagrams of several possible headers.
  • the system packet header includes an O field, a sequence number field, a packet identification field and a length field.
  • the header of the verification packet includes a C field, a sequence number field, a window indication field and a coefficient vector index field.
  • the sequence number of the non-zero element is the same as the sequence number of the original package corresponding to the system package in the coding unit, so the original package identified by the package identifier is in the coding unit
  • the system packet header can omit the coefficient vector index field.
  • the system packet header includes an O field, a sequence number field, a group identification field, a packet identification field and a length field.
  • the verification packet header includes a C field, a sequence number field, a group identification field, a coefficient vector index field, and an original packet quantity field.
  • the system packet header includes an O field, a sequence number field and a packet identification field.
  • the check packet header includes a C field, a sequence number field, a window indication field, a coefficient vector index field and a length sorting field.
  • the system packet header includes an O field, a sequence number field, a group identification field and a packet identification field.
  • the verification packet header includes a C field, a sequence number field, a group identification field, a coefficient vector index field, a length sorting field, and an original packet quantity field.
  • system packet header carries coding coefficient indication information, so as to indicate the corresponding coding coefficient and the relative position of the corresponding original packet in the coding unit.
  • system packet header also includes a sequence number field.
  • system packet header further includes an O field, a packet identification field, a length field, and a group identification field (or a window indication field).
  • the check packet header includes a coefficient vector index field, a group identification field (or a window indication field).
  • the verification packet header also includes a C field, a sequence number field, a length sorting field, and a packet sorting field.
  • the coefficient vector of the system packet and the coefficient vector of the verification packet can be used by the receiving end to identify whether the received encoded packet is a system packet or a verification packet, so as to replace the above O/C field to achieve the same function . Therefore, in the case where the coefficient vector index field is omitted in both the system packet header and the check packet header, the O/C field can be omitted.
  • the coefficient vector of the system package can also be used to determine the relative position of the corresponding original package in the coding unit. Therefore, the packet identification field, packet sorting field and length sorting field can also be omitted.
  • Figures 10 to 13 show schematic diagrams of several possible headers.
  • the system packet header includes a coefficient vector index field, a sequence number field and a length field.
  • the header of the verification packet includes a coefficient vector index field, a sequence number field and a window indication field.
  • the system packet header includes a coefficient vector index field, a sequence number field, a group identification field and a length field.
  • the verification packet header includes a coefficient vector index field, a sequence number field, a group identification field and an original packet quantity field.
  • the system packet header includes a coefficient vector index field and a sequence number field.
  • the check packet header includes coefficient vector index field, sequence number field, window indication field and length sorting field.
  • the system packet header includes a coefficient vector index field, a sequence number field and a group identification field.
  • the header of the verification packet includes a coefficient vector index field, a sequence number field, a window indication field, a length sorting field and an original packet quantity field.
  • the verification packet header carries sorting information to indicate the sorting of the K original packets in the coding unit.
  • the sorting information may be carried in, for example, a packet sorting field or a length sorting field.
  • the verification packet header includes a C field, a packet sorting field, a C field, a coefficient vector index field, and a group identification field (or a window indication field).
  • the verification packet header also includes a sequence number field and a length sorting field.
  • the system packet header includes an O field and a sequence number field.
  • the system packet header further includes a packet identification field, a length field, a coefficient vector index field, and a group identification field (or a window indication field).
  • the verification packet header includes a C field, a packet sorting field, a length sorting field, a coefficient vector index field, and a group identification field (or a window indication field).
  • the verification packet header also includes a sequence number field.
  • the system packet header includes an O field and a sequence number field.
  • the system packet header further includes a packet identification field, a length field, a coefficient vector index field, and a group identification field (or a window indication field).
  • Figures 14 to 17 show schematic diagrams of possible headers.
  • the system packet header includes an O field, a sequence number field and a length field.
  • the header of the verification packet includes a C field, a window indication field, a coefficient vector index field and a packet sorting field.
  • the verification packet header also includes a sequence number field.
  • the system packet header includes an O field, a sequence number field, a group identification field and a length field.
  • the verification packet header includes a C field, a group identification field, a coefficient vector index field and a packet sorting field.
  • the verification packet header also includes a sequence number field and an original packet quantity field.
  • the system packet header includes an O field and a sequence number field.
  • the header of the verification packet includes a C field, a window indication field, a coefficient vector index field, a packet sorting field and a length sorting field.
  • the verification packet header also includes a sequence number field.
  • the system packet header includes an O field, a sequence number field and a group identification field.
  • the verification packet header includes a C field, a group identification field, a coefficient vector index field, a packet sorting field and a length sorting field.
  • step 530 the sender sends K system packets and R check packets.
  • the K system packets and the R verification packets sent by the sender are all encoded packets.
  • the receiving end needs to identify the received coded package to determine whether the received coded package is a system package or a verification package.
  • the K+R encoded packets sent by the sending end may not all be successfully received by the receiving end. As long as the receiving end receives more than or equal to (or not less than) K encoded packets, it can successfully decode K original packets. In the embodiment of the present application, it is assumed that the receiving end successfully receives more than K encoded packets and can successfully decode K original packets. Therefore, in step 530, corresponding to the sending end, the receiving end receives a plurality of encoded packets.
  • step 540 the receiving end obtains K original packets based on the plurality of encoded packets.
  • the encoding packets received by the receiving end may all be system packets, or all may be verification packets, and may include at least one system packet and at least one verification packet. This embodiment of the present application does not limit it.
  • the header of the system packet received by the receiving end is consistent with the header of the system packet sent by the sending end described in step 520 above.
  • the header of the verification packet received by the receiving end is also consistent with the header of the verification packet sent by the sending end described in step 520 above.
  • the receiving end can identify the encoded packet type and determine the encoding coefficient according to each field in the header of the system packet and/or check packet.
  • the sender can indicate the type and encoding coefficient of each encoded packet by designing the header of the encoded packet. Based on the reading of the packet header, the receiving end can identify the system packet and/or check packet, and determine respective encoding coefficients.
  • the sending end and the receiving end can pre-store the predefined Q groups of coding coefficients, and the receiving end can determine the coding coefficients according to the indication information of the coding coefficients carried in the header of each coding packet.
  • the receiving end can know the length of the header of the system packet in advance, it can directly obtain the original packet after identifying the system packet.
  • the verification packet is obtained by performing shifted XOR coding on the original packet or the system packet, and the receiving end can determine the original packet or the system packet after determining the verification packet and its corresponding coding coefficient.
  • K coding coefficients A set of encoding coefficients that can be predefined The first K lines, or the last K lines, or K lines determined from a predefined line number as the starting position, or K discontinuous lines.
  • t k,q represents the amount of displacement corresponding to the definition of the encoding coefficient of the original packet, is from the qth column of the matrix and is the kth element among the K elements of the qth column.
  • the process of restoring K original packets is described by taking the verification packet generated in step 520 above as an example.
  • the number K of original packets is 3, 1 system packet and 2 verification packets are received, and the received system packet corresponds to the original packet x 1 , the data part of the received verification packet is y 1 and y 2 .
  • the K original packets restored by the receiving end are in the same order as the K original packets in the encoding unit, but different from the K original packets obtained by the sending end in step 510, that is, the order of the K original packets is different from that of the K original packets in the coding unit.
  • the sequence numbers of the original package are not in the same order of magnitude.
  • the sender sorts multiple original packets before network encoding, so that the correspondence between each original packet and each element in the encoding coefficient is variable, so the sender can aim at reducing the transmission overhead, according to the encoding coefficient
  • the encoding coefficient corresponding to each original packet is flexibly adjusted according to the length of the original packet.
  • the sender carries position information in the coded packet header that can be used to indicate the relative positions of the K original packets in the coding unit or the ordering information of the K original packets in the coding unit, even if the K original packets are encoded
  • the relative position in the unit is inconsistent with the sequence numbers of the K original packets, and the receiving end can still accurately determine the encoding coefficient corresponding to each original packet or system packet according to the packet header, and then can accurately decode and obtain K original packets. Bag. Therefore, transmission reliability can be improved and the number of retransmissions can be reduced. Generally speaking, it is beneficial to improve the utilization rate of spectrum resources.
  • the K original packets can be sorted according to the length of the original packet and the displacement defined by the coding coefficient, so that the original packets or system packets of different lengths can be allocated to reasonable coding coefficients , so that the displacement of the longer data packet is as small as possible, so that the transmission overhead can be reduced to the greatest extent, and the utilization rate of spectrum resources can be improved.
  • sorting the K original packets is only a possible implementation manner.
  • the coding coefficients can be stored in the form of coefficient vectors at the sending end and the receiving end, it can be realized by performing row transformation or column transformation on the coefficient vectors.
  • Fig. 18 is a schematic flowchart of a data transmission method provided by another embodiment of the present application.
  • the data transmission method shown in FIG. 18 may include steps 610 to 640 . Each step in the method 600 is described in detail below.
  • step 610 the sender obtains K original packets.
  • the lengths of the K original packets may be the same or different, which is not limited in the embodiment of the present application.
  • the specific process of obtaining the K original packets at the sender refer to step 510 in the method 500, and for the sake of brevity, details are not repeated here.
  • K original packets of unequal length are still used as an example to describe the method provided by the embodiment of the present application. It should be understood that the K original packets have unequal lengths, that is, at least two of the K original packets have different lengths. It should also be understood that the data transmission method provided in the embodiment of the present application is also applicable to the case where K original packets are equal in length.
  • step 620 the sending end performs network coding based on the R groups of coding coefficients and the K original packets to obtain R verification packets.
  • the coding pattern involved in the embodiment of the present application is a shifted XOR code.
  • the sending end can perform shifted XOR encoding based on the K original packets to obtain K system packets and R check packets.
  • the R verification packets can be obtained by performing network coding on K original packets or K system packets by R sets of coding coefficients. Since this embodiment mainly involves the improvement of the encoding coefficient of the verification packet and the improvement of the header of the verification packet, the generation and transmission of the system packet can refer to the prior art, which is not described in detail herein for the sake of brevity.
  • the R sets of coding coefficients used to generate the R check packets in this embodiment are obtained by performing row transformation or column transformation based on the R coefficient vectors.
  • Each of the R check packets may correspond to a set of encoding coefficients in the R sets of encoding coefficients.
  • Each group of coding coefficients corresponds to a coefficient vector, and each group of coding coefficients and the corresponding coefficient vector satisfy a row transformation relationship or a column transformation relationship.
  • the R coefficient vectors come from predefined Q (Q ⁇ R, Q is an integer) coefficient vectors.
  • Each of the Q coefficient vectors may include P (P ⁇ K, P is an integer) coding coefficients.
  • the R coefficient vectors may be the R coefficient vectors or truncations of the R coefficient vectors in the predefined Q coefficient vectors.
  • the "truncation" of the coefficient vector can be understood as a vector composed of some elements intercepted from a predefined coefficient vector. For example, if the dimension P of the predefined coefficient vector is greater than K, then K elements can be intercepted from the P elements to obtain a coefficient vector with dimension K.
  • the coefficient vector whose dimension is K can be regarded as a truncation of the coefficient vector whose dimension is P.
  • the K elements can be K consecutive among the P elements, such as the first K, the last K, and the K determined from a certain predefined sequence number as the starting position; the K elements can also be P K discontinuous elements. This embodiment of the present application does not limit it.
  • the Q coefficient vectors may be row vectors or column vectors. If the Q coefficient vectors may be row vectors, then the R coefficient vectors may be R row vectors or truncations of the R row vectors in the Q row vectors. If the Q coefficient vectors are column vectors, the R coefficient vectors may be R column vectors in the Q column vectors or truncations of the R column vectors.
  • the R vectors (such as row vectors or column vectors) can be consecutive R vectors among the Q vectors (such as row vectors or column vectors), for example, the first R, the last R, or some other of the Q vectors
  • a predefined sequence number is R determined for the starting position; or, the R vectors may also be R discontinuous among the Q vectors. This embodiment of the present application does not limit it.
  • the Q coefficient vectors may be stored in the form of a matrix at the sending end and the receiving end.
  • the matrix can be, for example, a P ⁇ Q dimensional matrix, and the Q coefficient vectors are Q column vectors in the matrix; it can also be a Q ⁇ P dimensional matrix, and the Q coefficient vectors are Q rows in the matrix vector. This embodiment of the present application does not limit it.
  • the P ⁇ Q dimensional matrix can be recorded as the first matrix H P ⁇ Q , and the first matrix H P ⁇ Q satisfies:
  • the Q ⁇ P dimensional matrix can be recorded as the second matrix H Q ⁇ P , and the second matrix H Q ⁇ P satisfies:
  • Each element in the first matrix H P ⁇ Q and the second matrix H Q ⁇ P is used to represent the shift operation, and the specific meaning has been described in detail in the above method 500. For the sake of brevity, it will not be repeated here. .
  • predefined Q coefficient vectors may be pre-stored at the sending end and the receiving end, so that both sides can perform row transformation or column transformation based on the same coefficient vectors, and then perform encoding and decoding based on the same coding coefficients.
  • the Q coefficient vectors are not necessarily stored in the form of a matrix at the sending end and the receiving end, for example, they can also be stored in the form of an array, or in the form of the generation rules of the first matrix or the second matrix, etc. sender and receiver. As long as both parties can determine Q coefficient vectors based on the same matrix.
  • the three original packets x 1 , x 2 and x 3 listed in the method 500 are taken as examples below to describe the row transformation relationship or column transformation relationship between coding coefficients and coefficient vectors.
  • the lengths of the three original packets are M 1 , M 2 and M 3 respectively, and M 3 >M 1 >M 2 . It can be seen from the shift XOR encoding process shown in Table 2, Table 3 and Table 5 in method 500 that in the process of generating each verification packet, if the original packet with a larger length is assigned a smaller displacement The coding coefficient of the original packet with a smaller length is assigned a coding coefficient with a larger displacement, so that the length of the data part of the generated verification packet can be made as small as possible. If the K original packets are not sorted, but the coefficient vectors are transformed row by row, the same effect can also be achieved.
  • the coefficient vector used to generate the rth check packet is a column vector from the first matrix H P ⁇ Q , for example, it is written as: Wherein the displacement 0 ⁇ s 1,r ⁇ s 2,r ⁇ s 3,r , and s 1,r , s 2,r , and s 3,r are all integers. Then the coding coefficients can be Assigned to the original packet x 3 , the encoded coefficients Assigned to the original pack x 1 , the Coding coefficients are assigned to x 2 . In this way, the order of the encoding coefficients used to generate the rth check packet is
  • the row transformation relationship between the coding coefficient and the coefficient vector is as follows: the n1th element in the coefficient vector becomes the n2th coding coefficient in the coding coefficient after row transformation, where n1 is K original The sequence numbers of the n 2 th original packets in the packets sorted in descending order according to the lengths of the K original packets.
  • the n 1th element in the coefficient vector becomes The n 2 th coding coefficients among the coding coefficients, where n 1 is the sequence number of the n 2 th original packets among the K original packets sorted according to the lengths of the K original packets in descending order.
  • the sending end can perform row transformation or column transformation on the coefficient vector in the same manner as described above to obtain the corresponding R check packets R group of encoding coefficients.
  • the R check packets and the R groups of coding coefficients satisfy:
  • y 1 to y R represent the data in R verification packets
  • x 1 to x K represent K original packets
  • R groups of coding coefficients correspond to R coefficient vectors, and the R coefficient vectors come from a plurality of predefined coefficient vectors, such as Q column vectors in the first matrix HP ⁇ Q listed above.
  • the encoding coefficient used to generate the rth check packet The corresponding coefficient vector satisfies the above-mentioned row transformation relationship.
  • the R check packets and R sets of coding coefficients satisfy:
  • y 1 to y R represent the data in the R verification packets
  • x 1 to x K represent the K original packets
  • the generation matrix of R check packets which includes a set of encoding coefficients used to generate the rth check packet
  • the data of the rth verification packet satisfies:
  • R groups of coding coefficients correspond to R coefficient vectors, and the R coefficient vectors come from a plurality of predefined coefficient vectors, such as Q row vectors in the second matrix H Q ⁇ P listed above.
  • the encoding coefficient used to generate the rth check packet The corresponding coefficient vector satisfies the column transformation relationship described above.
  • different sets of encoding coefficients in the R sets of encoding coefficients used to generate the R check packets satisfy the same row transformation relationship or column transformation relationship as the corresponding coefficient vectors. That is to say, any two groups of coding coefficients in the R group of coding coefficients have the same row transformation relationship or column transformation relationship as the corresponding coefficient vector.
  • the R sets of coding coefficients are obtained through the same row transformation or column transformation of the R coefficient vectors. This is like sorting the K original packets before network coding, and the sorted K original packets in the coding unit correspond to coding coefficients that are inconsistent with the sorting of elements in the coefficient vector.
  • the row transformation relationship or column transformation relationship satisfied by the R group of coding coefficients and the R coefficient vectors can be based on the displacement defined by each element in the R coefficient vectors and The length of the K original packets is determined.
  • k 1 and k 2 represent the sequence numbers of two rows in the generator matrix
  • r 1 and r 2 represent the sequence numbers of two columns in the generator matrix
  • K ⁇ k 2 >k 1 ⁇ 1, R ⁇ r 2 > r 1 ⁇ 1, k 1 , k 2 , r 1 , and r 2 are integers
  • the row transformation relationship between the coding coefficient and the corresponding coefficient vector is: the n 1th element in the coefficient vector is After transformation, it becomes the n2th coding coefficient among the coding coefficients, where n1 is the sequence number of the n2th original packet among the K original packets sorted according to the length of the K original packets in descending order ; K ⁇ n 1 ⁇ 1, K ⁇ n 2 ⁇ 1, n 1 and n 2 are integers.
  • the generator matrix above It may be obtained by performing the same row transformation operation based on the R coefficient vectors.
  • k 1 and k 2 represent the serial numbers of the two columns in the generator matrix
  • r 1 and r 2 represent the serial numbers of the two rows in the generator matrix
  • K ⁇ k 2 >k 1 ⁇ 1, R ⁇ r 2 >r 1 ⁇ 1, k 1 , k 2 , r 1 , and r 2 are integers
  • the column transformation relationship between the coding coefficient and the corresponding coefficient vector is: the n 1th element in the coefficient vector is After transformation, it becomes the n 2 coding coefficients in the coding coefficients, wherein n 1 is the sequence number of the n 2 original packets in the K original packets sorted according to the length of the K original packets from large to small; K ⁇ n 1 ⁇ 1, K ⁇ n 2 ⁇ 1, n 1 and n 2 are integers.
  • the generator matrix above It may be obtained by performing the same column transformation operation based on the R coefficient vectors.
  • the generation matrix is obtained by performing a row transformation operation or a column transformation operation on the R coefficient vectors, and the processing complexity is small. Especially when there is a regularity in the coding coefficients in the first matrix or the second matrix, for example, the first matrix satisfies The second matrix satisfies Performing a row transformation operation or a column transformation operation on the R coefficient vectors can minimize the length of the data part of each check packet, which can save transmission overhead to the greatest extent and improve the utilization rate of spectrum resources.
  • the row transformation relationship or column transformation relationship between the R sets of coding coefficients used to generate the R check packets and the R coefficient vectors is different.
  • Each group of coding coefficients in is obtained by performing a row transformation operation based on a corresponding coefficient vector, and there may be a different row transformation relationship between at least two groups of coding coefficients and their corresponding coefficient vectors.
  • Each group of coding coefficients in is obtained by performing a column transformation operation based on a corresponding coefficient vector, and there may be at least two groups of coding coefficients that are different from the column transformation relationship before the corresponding coefficient vector.
  • the row transformation operation or the column transformation operation for the R coefficient vectors may need to be implemented through multiple operations. Therefore, the processing complexity is relatively high.
  • the first matrix does not satisfy
  • the second matrix does not satisfy Performing a row transformation operation or a column transformation operation on each coefficient vector separately can minimize the length of the data part of each check packet, can save transmission overhead to the greatest extent, and improve the utilization rate of spectrum resources.
  • the sending end and the receiving end may pre-store the above-mentioned multiple predefined coefficient vectors. While sending the verification packet to the receiving end, the sending end may carry the index of the coefficient vector in the packet header and notify the receiving end.
  • the sender since row transformation or column transformation is performed on the coefficient vector, the sender can add relevant information about the row transformation relationship or column transformation relationship in the header of the coded packet, so as to convert the coefficient vector between the code coefficient and the coefficient vector.
  • the row transformation relationship or the column transformation relationship of is notified to the receiving end, so that the receiving end can accurately determine the coding coefficients corresponding to each coding packet, and accurately decode to obtain K original packets.
  • One possible design is to carry the index of the coefficient vector and the indication information of the row transformation relationship or the column transformation relationship in the header of the verification packet.
  • the index of the coefficient vector can be specifically used to indicate the corresponding set of coding coefficients used to generate the rth verification packet
  • the index of the coefficient vector in a plurality of predefined coefficient vectors; the row transformation relationship or the column transformation relationship may specifically include: the relative position of each element in the coefficient vector in this group of coding coefficients, or, the relative position of each element in this group of coding coefficients The relative position of each encoded coefficient in the coefficient vector.
  • the coding coefficients corresponding to the three original packets are The corresponding coefficient vector is
  • the relative position of each element in the coefficient vector in the coding coefficient is: 3, 1, 2, that is, the first element in the coefficient vector is used as the third coding coefficient of the group of coding coefficients, and the coefficient in the coefficient vector is The second element is used as the first coding coefficient in the group of coding coefficients, and the third element in the coefficient vector is used as the second coding coefficient in the group of coding coefficients.
  • the relative positions of the three encoding coefficients in the coefficient vector are: 2, 3, and 1, that is, the first encoding coefficient in the encoding coefficient is the second element in the coefficient vector, and the first encoding coefficient in the group of encoding coefficients is
  • the 2 coding coefficients are the third elements in the coefficient vector, and the third coding coefficient in this set of coding coefficients is the first element in the coefficient vector.
  • the coefficient vector can be indicated by the index of the coefficient vector, it can be determined for the receiving end. On this basis, whether it is indicating the relative position of each element in the coefficient vector in a set of encoding coefficients, or indicating the relative position of each encoding coefficient in the coefficient vector, a set of encoding coefficients used to generate a check packet can be definite.
  • the header of the rth verification packet includes coefficient vector index and indication information of row transformation relationship or column transformation relationship.
  • the index of the coefficient vector indicates the coefficient vector corresponding to the encoding coefficient used to generate the r-th check packet.
  • the indication information of the row transformation relationship or the column transformation relationship is used to determine the coding coefficient.
  • the coefficient vector index can be carried in the coefficient vector index field, and the indication information of the row transformation relationship or the column transformation relationship can be carried in a newly added field, for example, it is recorded as the indication field of the row transformation relationship or the indication field of the column transformation relationship.
  • FIGS 19 to 20 show schematic diagrams of several possible headers.
  • the system packet header includes an O field, a sequence number field and a length field.
  • the header of the verification packet includes a C field, a sequence number field, a window indication field, a coefficient vector index field, and an indication field of a row transformation relationship or a column transformation relationship.
  • the indication field of the row transformation relationship or the column transformation relationship is used to carry the indication information of the row transformation relationship or the column transformation relationship.
  • the system packet header includes an O field, a sequence number field, a group identification field and a length field.
  • the verification packet header includes a C field, a sequence number field, a group identification field, a coefficient vector index field, and an original packet quantity field.
  • step 630 the sender sends R verification packets.
  • the sending end may send the generated K system packets and R verification packets to the receiving end.
  • the receiving end needs to identify the received coded package to determine whether the received coded package is a system package or a verification package. Moreover, the K+R encoded packets sent by the sending end may not all be successfully received by the receiving end. As long as the receiving end receives more than K encoded packets, it can successfully decode K original packets. In the embodiment of the present application, it is assumed that the receiving end successfully receives more than K encoded packets and can successfully decode K original packets. Therefore, in step 630, corresponding to the sending end, the receiving end receives a plurality of encoded packets.
  • the encoding packets received by the receiving end may all be system packets, or all may be verification packets, and may include at least one system packet and at least one verification packet.
  • the multiple encoded packets received by the receiving end include U verification packets, 1 ⁇ U ⁇ R, and U is an integer.
  • the sender can explicitly indicate the coded packet type through the O/C field of the coded packet header, or implicitly indicate the coded packet type through the coefficient vector index field of the coded packet header.
  • the receiving end can identify the system packet and the check packet based on the O/C field or the coefficient vector field of the header of the received coded packet. For the relevant process of indicating and identifying the coded packet type through the O/C field or the coefficient vector index field, reference may be made to the relevant description in the method 500 above, and details are not repeated here for brevity.
  • this embodiment mainly involves the improvement of the coding coefficient and header of the verification packet, for the sake of brevity, the receiving and decoding of the K system packets will not be described in detail in this article.
  • step 640 the receiving end obtains K original packets based on the U coefficient vectors and U check packets.
  • the header of the verification packet received by the receiving end is consistent with the header of the verification packet sent by the sending end described in step 620 above.
  • the header of the verification packet includes coefficient vector indexes and indication information of row vector relationships or column vector relationships. Based on this, the receiving end can determine the coding coefficient corresponding to each verification packet.
  • the U verification packets received by the receiving end may satisfy the U group of encoding coefficients:
  • y 1 to y U represent data in U verification packets
  • x 1 to x K represent K original packets.
  • matrix Including U columns each column includes a group of coding coefficients, and the coding coefficients in each column come from K coding coefficients in a column vector in the first matrix H P ⁇ Q above, wherein, the R uth column includes Generate K group coding coefficients of the u-th verification packet, 1 ⁇ u ⁇ U, 1 ⁇ R u ⁇ Q, where u and R u are integers.
  • the data of the u-th verification packet in the above-mentioned U verification packets satisfies:
  • the matrix is the generating matrix U columns in the matrix, so it can be understood that R u ⁇ R, but the present application does not limit which U columns in the matrix correspond to which U columns in the generator matrix.
  • the U group of coding coefficients is obtained by performing row transformation based on U coefficient vectors, and the U coefficient vectors come from predefined Q coefficient vectors.
  • the Q coefficient vectors may be stored at the receiving end in the form of a matrix, for example, in the form of the first matrix H P ⁇ Q exemplified above.
  • the receiving end may determine the U coefficient vectors based on the coefficient vector indexes of the U verification packet headers, and then determine U sets of encoding coefficients according to the indication information of the row transformation relationship in the verification packet headers.
  • the U check packets received by the receiving end can satisfy the U set of encoding coefficients:
  • y 1 to y U represent data in U verification packets
  • x 1 to x K represent K original packets.
  • matrix Including U rows each row includes a set of coding coefficients, and the coding coefficients in each row come from K coefficients in a row vector in the second matrix H Q ⁇ P above, wherein, the R uth row includes the coefficients used to generate
  • the K group coding coefficients of the u-th verification packet, 1 ⁇ u ⁇ U, 1 ⁇ R u ⁇ Q, u and R u are integers.
  • the data of the u-th verification packet in the above-mentioned U verification packets satisfies:
  • the matrix is the generating matrix U rows in , so it can be understood that R u ⁇ R.
  • the present application does not limit which U rows in the matrix correspond to which U rows in the generator matrix.
  • the U group of coding coefficients is obtained by performing column transformation based on U coefficient vectors, and the U coefficient vectors come from predefined Q coefficient vectors.
  • the Q coefficient vectors may be stored at the receiving end in the form of a matrix, for example, and stored at the receiving end in the form of the second matrix H Q ⁇ P exemplified above.
  • the receiving end may determine the U coefficient vectors based on the coefficient vector indexes of the U verification packet headers, and then determine U sets of encoding coefficients according to the indication information of the column transformation relationship of the verification packet headers.
  • the receiving end After determining the U group of encoding coefficients, the receiving end can restore K original packets based on the U check packets.
  • the receiving end can recover K original packets.
  • the encoded packets received by the receiving end may include U check packets, and may also include at least one system packet. If the number of verification packets and system packets received by the receiving end is greater than or equal to (or not less than) K, K original packets can be recovered.
  • K original packets can be recovered.
  • the K original packets for network encoding are not sorted, the sequence of the K original packets recovered by the receiving end is consistent with the sequence of the K original packets sent by the sending end, and the order of the K original packets is the same as that of the K original packets.
  • the sequence of serial numbers is also consistent.
  • the sender when performing network coding on multiple original packets, performs row transformation or column transformation on the predefined coefficient vectors, so that the corresponding relationship between each original packet and each element in the coding coefficient is variable, so the sender can Aiming at reducing the transmission overhead, the coding coefficient corresponding to each original packet can be flexibly adjusted according to the coding coefficient and the length of the original packet.
  • the sending end carries the row transformation relationship or column transformation relationship between the coding coefficient and the coefficient vector in the header of the coded packet, so that the receiving end can accurately determine the coding coefficient corresponding to each original packet or system packet according to the packet header, and then can Accurately decode to get K original packets. Therefore, transmission reliability can be improved and the number of retransmissions can be reduced. Generally speaking, it is beneficial to improve the utilization rate of spectrum resources.
  • Fig. 21 is a schematic block diagram of a communication device provided by an embodiment of the present application.
  • the communication device 2100 may include a processing unit 2110 and a transceiver unit 2120 .
  • the communication device 2100 may correspond to the sending end in the above method embodiments, for example, may be the sending end, or be configured for a component (such as a chip, a chip system, etc.) in the sending end.
  • a component such as a chip, a chip system, etc.
  • each unit in the apparatus 2100 may be used to implement a corresponding process performed by the sending end in the method 500 shown in FIG. 5 .
  • the processing unit 2110 may be used to execute step 510 and step 520 in the method 500
  • the transceiver unit 2120 may be used to execute step 530 in the method 500 .
  • the processing unit 2110 can be used to obtain K original packets, K>1 and is an integer; the processing unit 2110 can also be used to perform network coding based on the K original packets to obtain K system packets and R check package; wherein, the order of the K original packages in the encoding unit is inconsistent with the order of the sequence numbers of the K original packages; the packet header of the kth system package in the K system packages includes the The position information of the original package corresponding to the kth system package, the position information is used to indicate the relative position of the original package corresponding to the kth system package in the coding unit, and/or, the R collations
  • the packet header of each verification packet in the verification packet includes sorting information, and the sorting information is used to indicate the order of the K original packets in the coding unit; 1 ⁇ k ⁇ K, R ⁇ 1, k, R is an integer; the transceiver unit 2120 can be used to send the K system packets and the R check packets.
  • each unit in the apparatus 2100 may be used to implement a corresponding process performed by the sending end in the method 600 shown in FIG. 18 .
  • the processing unit 2110 may be used to execute step 610 and step 620 in the method 600
  • the transceiver unit 2120 may be used to execute step 630 in the method 600 .
  • the processing unit 2110 can be used to obtain K original packets, K>1 and is an integer; the processing unit 2110 can also be used to perform network coding on the K original packets based on R sets of coding coefficients to obtain R Check package; the R sets of encoding coefficients correspond to R coefficient vectors, and each set of encoding coefficients and the corresponding coefficient vectors satisfy a row transformation relationship or a column transformation relationship; the rth check in the R check packages
  • the header of the packet includes: indication information of a coefficient vector corresponding to a group of coding coefficients used to generate the rth verification packet, and indication information of the row transformation relationship or column transformation relationship; 1 ⁇ r ⁇ R, R ⁇ 1, r and R are integers; the transceiver unit 2120 can be used to send the R verification packets.
  • the communication device 2100 may correspond to the receiving end in the above method embodiments, for example, may be the receiving end, or be configured for receiving components (such as chips, chip systems, etc.).
  • each unit in the apparatus 2100 may be used to implement a corresponding process performed by the receiving end in the method 500 shown in FIG. 5 .
  • the transceiver unit 2120 can be used to perform step 530 in the method 500
  • the processing unit 2110 can be used to perform step 540 in the method 500 .
  • the transceiver unit 2120 can be used to receive multiple coded packets; the processing unit 211 can be used to obtain K original packets based on the multiple coded packets; the order of the K original packets is the same as that of the K original packets.
  • the order in the coding unit is consistent, but not consistent with the order of the sequence numbers of the K original packets; wherein, the plurality of coded packets include system packets and/or check packets; the packet header of the system packets includes the The position information of the original package corresponding to the system package, the position information is used to indicate the relative position of the original package in the coding unit, and/or, the header of the verification package includes sorting information, and the sorting information It is used to indicate the sequence of the K original packets in the coding unit.
  • each unit in the apparatus 2100 may be used to implement a corresponding process executed by the receiving end in the method 600 shown in FIG. 18 .
  • the transceiver unit 2120 can be used to perform step 630 in the method 600
  • the processing unit 2110 can be used to perform step 640 in the method 600 .
  • the transceiver unit 2120 can be used to receive U verification packets, the U sets of coding coefficients used to generate the U verification packets correspond to the predefined U coefficient vectors, and each group of coding coefficients corresponds to the corresponding coefficient The vector satisfies the row transformation relationship or the column transformation relationship; the header of the u-th check packet in the U check packets includes: the coefficient vector corresponding to a set of coding coefficients used to generate the u-th check packet Indication information, and the indication information of the row transformation relationship or the column transformation relationship; 1 ⁇ u ⁇ U, U ⁇ 1, u and U are integers; the processing unit 2110 can be used to, based on the U coefficient vectors and the U check packets, get K original packets; K>1 and is an integer.
  • each functional module in each embodiment of the present application can be It can be integrated in one processor, or it can exist separately physically, or two or more modules can be integrated in one module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or in the form of software function modules.
  • the communication device 2100 may correspond to the base station 110 or the UE 120 in the communication system shown in FIG. 3 .
  • the base station 110 may be an example of a transmitting end, and the UE 120 may be an example of a receiving end.
  • the UE 120 may be another example of the transmitting end, and the base station 110 may be another example of the receiving end.
  • the processing unit 2110 in the communication device 2100 may correspond to the processor in the base station 110 or the UE 120, and the instructions stored in the memory may be called by the processor in the base station 110 or the UE 120 to realize the above functions, such as network coding, Functions such as acquiring original packets; the transceiver unit 2120 may correspond to an interface in the base station 110 or UE 120, and may respond to instructions from the processor to implement the above-mentioned function of receiving and/or sending data.
  • the processor 112 in the base station 110 can be used to perform step 510 and step 520 in the method 500, and the interface 111 can be used to perform step 530 in the method 500;
  • the interface 121 in the UE 120 can be used to perform step 530 in the method 500, and the processor 122 can be used to perform step 540 in the method 500.
  • the processor 112 in the base station 110 may be used to perform step 610 and step 620 in the method 600
  • the interface 111 may be used to perform step 630 in the method 600
  • the interface 121 in the UE 120 may be used to perform step 630 in the method 600
  • Processor 122 is operable to perform step 640 in method 600 .
  • the processor 122 in the UE 120 can be used to execute step 510 and step 520 in the method 500, and the interface 121 can be used to execute step 530 in the method 500;
  • the interface 111 can be used to perform step 530 in the method 500
  • the processor 112 can be used to perform step 540 in the method 500 .
  • the processor 122 in the UE 120 may be used to perform step 610 and step 620 in the method 600, and the interface 121 may be used to perform step 630 in the method 600; the interface 111 in the base station 110 may be used to perform step 630 in the method 600, Processor 112 is operable to perform step 640 in method 600 .
  • FIG. 22 is a schematic structural diagram of a terminal provided by an embodiment of the present application.
  • the terminal can be applied to the systems shown in FIG. 1 , FIG. 2 , and FIG. 3 .
  • the terminal 2200 includes a processor 2201 and a transceiver 2202 .
  • the terminal 2200 further includes a memory 2203 .
  • the processor 2201, the transceiver 2202, and the memory 2230 can communicate with each other through an internal connection path, and transmit control and/or data signals. Call and run the computer program to control the transceiver 2202 to send and receive signals.
  • the terminal 2200 may further include an antenna 2204, configured to send the uplink data or uplink control signaling output by the transceiver 2202 through wireless signals.
  • the processor 2201 and the memory 2203 may be combined into a processing device, and the processor 2201 is configured to execute the program codes stored in the memory 2203 to realize the above functions.
  • the memory 2203 may also be integrated in the processor 2201 , or be independent of the processor 2201 .
  • the processor 2201 may correspond to the processor in FIG. 3 or the processing unit 2110 in FIG. 21 .
  • the above-mentioned transceiver 2220 may correspond to the interface in FIG. 3 or the transceiver unit 2120 in FIG. 21 .
  • the transceiver 2202 may include a receiver (or called a receiver, a receiving circuit) and a transmitter (or called a transmitter, a transmitting circuit). Among them, the receiver is used to receive signals, and the transmitter is used to transmit signals.
  • the terminal 2200 may further include a power supply 2205, configured to provide power to various devices or circuits in the terminal 2200.
  • a power supply 2205 configured to provide power to various devices or circuits in the terminal 2200.
  • the terminal 2200 may also include one or more of an input unit 2206, a display unit 2207, an audio circuit 2208, a camera 2209, and a sensor 2210.
  • the audio circuit A speaker 2208a, a microphone 2208b, etc. may also be included.
  • the terminal 2200 shown in FIG. 22 can implement various processes involving the sending end or various processes at the receiving end in the method embodiment shown in FIG. 5 or FIG. 18 .
  • the operations and/or functions of the various modules in the terminal 2200 are respectively for realizing the corresponding procedures in the foregoing method embodiments.
  • a processor may be an integrated circuit chip with signal processing capabilities.
  • each step of the above-mentioned method embodiment may be completed by an integrated logic circuit of hardware in a processor or an instruction in the form of software.
  • the above-mentioned processor can be a general-purpose processor, a digital signal processor (digital signal processor, DSP), an application specific integrated circuit (application specific integrated circuit, ASIC), an off-the-shelf programmable gate array (field programmable gate array, FPGA) or other available Program logic devices, discrete gate or transistor logic devices, discrete hardware components.
  • a general-purpose processor may be a microprocessor, or the processor may be any conventional processor, or the like.
  • the steps of the method disclosed in connection with the embodiments of the present application may be directly implemented by a hardware decoding processor, or implemented by a combination of hardware and software modules in the decoding processor.
  • the software module can be located in a mature storage medium in the field such as random access memory, flash memory, read-only memory, programmable read-only memory or electrically erasable programmable memory, register.
  • the storage medium is located in the memory, and the processor reads the information in the memory, and completes the steps of the above method in combination with its hardware.
  • the memory in the embodiments of the present application may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories.
  • the non-volatile memory can be read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electrically programmable Erases programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • Volatile memory can be random access memory (RAM), which acts as external cache memory.
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • SDRAM double data rate synchronous dynamic random access memory
  • ESDRAM enhanced synchronous dynamic random access memory
  • SLDRAM direct memory bus random access memory
  • direct rambus RAM direct rambus RAM
  • the present application provides a chip system, which includes at least one processor, configured to support the implementation of the function of the sending end or the function of the receiving end involved in any one of the above method embodiments, for example, for example, sending and receiving or processing the above-mentioned Data and/or information involved in the method.
  • the chip system further includes a memory, the memory is used to store program instructions and data, and the memory is located inside or outside the processor.
  • the system-on-a-chip may consist of chips, or may include chips and other discrete devices.
  • the present application also provides a computer program product, the computer program product including: a computer program (also referred to as code, or an instruction), when the computer program is run, the computer executes the program shown in Fig. 5 and Fig. 18 .
  • a computer program also referred to as code, or an instruction
  • the present application also provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program (also called a code, or an instruction).
  • a computer program also called a code, or an instruction.
  • the computer program When the computer program is executed, the computer is made to execute the method executed by the sending end or the method of the receiving end in any one of the embodiments shown in FIG. 5 and FIG. 18 .
  • the present application also provides a communication system, which includes the aforementioned sending end and receiving end.
  • the methods provided in the foregoing embodiments may be implemented in whole or in part by software, hardware, firmware or any combination thereof.
  • software When implemented using software, it may be implemented in whole or in part in the form of a computer program product.
  • the computer program product may comprise one or more computer instructions.
  • the computer program instructions When the computer program instructions are loaded and executed on the computer, the processes or functions according to the embodiments of the present application will be 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 or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be transmitted from a website, computer, server or data center Transmission to another website site, computer, server, or data center by wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (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 a data center integrated with one or more available media.
  • the available medium may be a magnetic medium (such as a floppy disk, a hard disk, a magnetic disk), an optical medium (such as a high-density digital video disc (digital video disc, DVD)), or a semiconductor medium (such as a solid state disk (SSD) )Wait.
  • a magnetic medium such as a floppy disk, a hard disk, a magnetic disk
  • an optical medium such as a high-density digital video disc (digital video disc, DVD)
  • a semiconductor medium such as a solid state disk (SSD)
  • the disclosed systems, devices and methods may be implemented in other ways.
  • the device embodiments described above are only illustrative.
  • the division of the units is only a logical function division. In actual implementation, there may be other division methods.
  • multiple units or components can be combined or May be integrated into another system, or some features may be ignored, or not implemented.
  • the mutual coupling or direct coupling or communication connection shown or discussed may be through some interfaces, and the indirect coupling or communication connection of devices or units may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Part or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
  • each functional unit in each embodiment of the present application may be integrated into one processing unit, each unit may exist separately physically, or two or more units may be integrated into one unit.
  • the functions described above are realized in the form of software function units and sold or used as independent products, they can be stored in a computer-readable storage medium.
  • the technical solution of the present application is essentially or the part that contributes to the prior art or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage medium includes: various media capable of storing program codes such as U disk, mobile hard disk, read-only memory, random access memory, magnetic disk or optical disk.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Les modes de réalisation de la présente demande concernent un procédé de transmission de données et un appareil de communication. Le procédé consiste : à acquérir K (K > 1 et étant un nombre entier) des paquets originaux ; et à réaliser un codage réseau sur la base des K paquets originaux de sorte à obtenir K paquets de système et R (R ≥ 1 et étant un nombre entier) paquets de contrôle et les envoyer, la séquence des K paquets originaux dans une unité de codage étant incompatible avec la séquence de taille des nombres en série des K paquets originaux, et un en-tête de paquet de chaque paquet de système comprenant des informations de position du paquet d'origine correspondant de sorte à indiquer la position relative, dans l'unité de codage, du paquet d'origine et/ou un en-tête de paquet de chaque paquet de contrôle comportant des informations de classement de sorte à indiquer la séquence des K paquets originaux dans l'unité de codage. Par conséquent, une extrémité de réception peut déterminer avec précision, sur la base d'informations de position ou d'informations de classement, un coefficient de codage correspondant à chaque paquet d'origine ou à chaque paquet de contrôle et, ensuite, effectuer un décodage précis pour obtenir K paquets originaux, ce qui permet d'améliorer la fiabilité de transmission. La présente solution peut être appliquée à un service de réalité étendue (XR) ou à d'autres services à faible latence.
PCT/CN2022/100340 2021-06-29 2022-06-22 Procédé de transmission de données et appareil de communication WO2023273975A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110724419.1A CN115549848A (zh) 2021-06-29 2021-06-29 一种数据传输方法和通信装置
CN202110724419.1 2021-06-29

Publications (1)

Publication Number Publication Date
WO2023273975A1 true WO2023273975A1 (fr) 2023-01-05

Family

ID=84690731

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/100340 WO2023273975A1 (fr) 2021-06-29 2022-06-22 Procédé de transmission de données et appareil de communication

Country Status (2)

Country Link
CN (1) CN115549848A (fr)
WO (1) WO2023273975A1 (fr)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325461A (zh) * 2008-07-25 2008-12-17 浙江大学 基于无速率码的认知无线电通信链路的建立和维护方法
CN101505201A (zh) * 2009-03-18 2009-08-12 吕晓雯 一种差错控制方法和系统
US20110206065A1 (en) * 2010-02-23 2011-08-25 Samsung Electronics Co., Ltd. Wireless network using feedback of side information and communication method using network coding
CN102474625A (zh) * 2009-07-23 2012-05-23 瑞典爱立信有限公司 用于图像的编码和解码的方法和设备
CN105356968A (zh) * 2015-06-24 2016-02-24 深圳大学 基于循环置换矩阵的网络编码的方法及系统
CN107547436A (zh) * 2017-07-19 2018-01-05 西南交通大学 基于网络编码的传输控制协议的编译码方法
CN111680035A (zh) * 2020-05-07 2020-09-18 中国工业互联网研究院 一种针对网络流数据及其位图索引压缩编码及解码方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101325461A (zh) * 2008-07-25 2008-12-17 浙江大学 基于无速率码的认知无线电通信链路的建立和维护方法
CN101505201A (zh) * 2009-03-18 2009-08-12 吕晓雯 一种差错控制方法和系统
CN102474625A (zh) * 2009-07-23 2012-05-23 瑞典爱立信有限公司 用于图像的编码和解码的方法和设备
US20110206065A1 (en) * 2010-02-23 2011-08-25 Samsung Electronics Co., Ltd. Wireless network using feedback of side information and communication method using network coding
CN105356968A (zh) * 2015-06-24 2016-02-24 深圳大学 基于循环置换矩阵的网络编码的方法及系统
CN107547436A (zh) * 2017-07-19 2018-01-05 西南交通大学 基于网络编码的传输控制协议的编译码方法
CN111680035A (zh) * 2020-05-07 2020-09-18 中国工业互联网研究院 一种针对网络流数据及其位图索引压缩编码及解码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SONG YANG, XU ZHEN: "Scheme of TCP network coding in aeronautical mobile communication", JOURNAL OF CIVIL AVIATION UNIVERSITY OF CHINA, vol. 30, no. 6, 15 December 2012 (2012-12-15), pages 9 - 12, XP093018190, ISSN: 1674-5590 *

Also Published As

Publication number Publication date
CN115549848A (zh) 2022-12-30

Similar Documents

Publication Publication Date Title
WO2017101631A1 (fr) Procédé et dispositif de communication pour traiter un code polaire
WO2019158031A1 (fr) Procédé de codage, procédé de décodage, dispositif de codage, et dispositif de décodage
WO2017124844A1 (fr) Procédé de détermination de taille de bloc de transmission d'un code de polarisation, et dispositif de communication
JP6505244B2 (ja) ダウンリンク制御情報送信方法及び装置
WO2021169522A1 (fr) Procédé et appareil de traitement de données
US20240137147A1 (en) Data Processing Method, Apparatus, and System
CN110622426B (zh) 用互补序列打孔极性码
WO2022268130A1 (fr) Procédé et appareil de codage de réseau
WO2023273975A1 (fr) Procédé de transmission de données et appareil de communication
US20230103108A1 (en) Encoding method and apparatus
WO2023273995A1 (fr) Procédé et appareil de traitement de données
WO2023030236A1 (fr) Procédé d'émission de données, procédé de réception de données et appareil de communication
CN111699643B (zh) 一种极化码译码方法及装置
WO2022268064A1 (fr) Procédé de transmission de données et appareil associé
WO2023072077A1 (fr) Procédé de communication et appareil associé
WO2018202151A1 (fr) Procédé et dispositif de communication
WO2024119379A1 (fr) Procédé et dispositif de détermination de bits d'informations
WO2024077486A1 (fr) Procédé de détermination de bit de contrôle de redondance cyclique (crc), et procédé et appareil de communication
WO2022171019A1 (fr) Procédés de codage et de décodage et appareils associés
WO2023273973A1 (fr) Procédé de communication et appareil de communication
WO2023246433A1 (fr) Procédés de codage et de décodage et dispositif associé
WO2024113249A1 (fr) Procédé et appareil de traitement de données
CN110034851A (zh) 编码方法、编码设备以及系统
WO2023273893A1 (fr) Procédé et appareil de construction de code polaire
WO2023169380A1 (fr) Procédé de transmission de signaux et appareil associé

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22831793

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 22831793

Country of ref document: EP

Kind code of ref document: A1