WO2022268130A1 - 一种网络编码方法及装置 - Google Patents

一种网络编码方法及装置 Download PDF

Info

Publication number
WO2022268130A1
WO2022268130A1 PCT/CN2022/100513 CN2022100513W WO2022268130A1 WO 2022268130 A1 WO2022268130 A1 WO 2022268130A1 CN 2022100513 W CN2022100513 W CN 2022100513W WO 2022268130 A1 WO2022268130 A1 WO 2022268130A1
Authority
WO
WIPO (PCT)
Prior art keywords
matrix
encoding
coding
matrices
coefficients
Prior art date
Application number
PCT/CN2022/100513
Other languages
English (en)
French (fr)
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 WO2022268130A1 publication Critical patent/WO2022268130A1/zh

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/0072Error control for data other than payload data, e.g. control data
    • 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/0072Error control for data other than payload data, e.g. control data
    • H04L1/0073Special arrangements for feedback channel

Definitions

  • the embodiments of the present application relate to the field of communication technologies, and in particular, to a network coding method and device.
  • a retransmission mechanism In a wireless communication system, in order to ensure the reliability of service transmission, a retransmission mechanism is generally adopted.
  • long term evolution long term evolution
  • NR new air interface
  • retransmission mechanisms to ensure service reliability.
  • One is the request retransmission mechanism based on feedback information, including hybrid automatic repeat request (hybrid automatic repeat request, HARQ) and radio link control (radio link control, RLC) of the media access control (medium access control, MAC) layer ) layer automatic repeat request (automatic repeat request, ARQ) mechanism.
  • the other type is a retransmission mechanism that does not require feedback information, for example, blind retransmission.
  • Blind retransmission means that the sending end will repeatedly send data to the receiving end without receiving the HARQ feedback information from the receiving end.
  • the delay of the retransmission mechanism based on feedback is relatively large. Blind retransmission does not need to be retransmitted based on feedback information, although it can reduce the delay, but regardless of whether the initial transmission data is correct or not, resources are occupied for retransmission, and the spectrum efficiency is very low.
  • the network coding technology can be used to perform network coding on the data packets, and the time delay and spectrum efficiency performance can be taken into account by transmitting the network coding packets. At this stage, the performance of network coding is not ideal and needs to be further improved.
  • Embodiments of the present application provide a network coding method and device, in order to improve network coding performance, for example, improve network coding error correction capability.
  • a network coding method may be executed by an encoding device, or may be executed by components of the encoding device (such as a processor, a chip, a circuit, or a chip system, etc.).
  • the encoding device may also be referred to as a sending end or an encoding end, and the encoding device may be a terminal device or a network device.
  • the method can be realized through the following steps: encode K data packets to be encoded, generate an encoded packet, and send the encoded packet; wherein, the encoded packet carries indication information, and the indication information is used to indicate the K encoding coefficients used to generate the encoded packet , in the encoding process, the K encoding coefficients are in one-to-one correspondence with the K data packets to be encoded.
  • the non-zero encoding coefficients in the K encoding coefficients are all matrices, and the dimension of the matrix is L ⁇ L, and K and L are both An integer greater than 1.
  • the encoding packet carries the indication information of K encoding coefficients including K data packets to be encoded, and the encoding packet is generated based on the K encoding coefficients and K data packets to be encoded, and the decoding device can obtain the encoding packet according to the indication information
  • the coefficients are coded to be decoded to obtain K data packets to be coded.
  • K encoding coefficients are K L ⁇ L dimensional matrices, which is equivalent to encoding K ⁇ L data to be encoded, so the size of the data to be encoded that is encoded together is equivalent to K ⁇ L, compared to the encoding coefficient of In the case of numerical values in a finite field, the size of the data to be coded together becomes larger, which is beneficial to the linearly independent property of the coded coefficients. Coding with linearly independent coding coefficients can obtain better error correction capability, thereby improving system reliability and system spectral efficiency.
  • a network decoding method is provided, and the method may be executed by a decoding device, or may be executed by components of the decoding device (such as a processor, a chip, a circuit, or a chip system, etc.).
  • the decoding device may be a terminal device or a network device.
  • the method may be implemented through the following steps: acquiring data to be decoded, the data to be decoded carries indication information, the indication information is used to indicate K encoding coefficients used in the encoding process, and the K encoding coefficients are related to the
  • the K original data packets are in one-to-one correspondence, and the non-zero coding coefficients in the K coding coefficients are all matrices, the dimension of the matrix is L ⁇ L, and K and L are both integers greater than 1; according to the instructions
  • the information decodes the data to be decoded to obtain the K original data packets.
  • the encoding packet carries the indication information of K encoding coefficients including K data packets to be encoded, and the encoding packet is generated based on the K encoding coefficients and K data packets to be encoded, and the decoding device can obtain the encoding packet according to the indication information
  • the coefficients are coded to be decoded to obtain K data packets to be coded.
  • the indication information is an index of a codeword in the coding coefficient codebook
  • the codeword includes X matrices in the coding coefficient set
  • the coding coefficient set includes a finite number of matrices, where X ⁇ K
  • the K encoding coefficients are K matrices among the X matrices. Indicating K coding coefficients through a codeword index can save the overhead of indicating information, and by using the matrix in the codeword in the predefined coding coefficient codebook as coding coefficients for coding, the correction of the coded packet can be improved. Error capability, thereby improving system reliability or system spectrum efficiency.
  • the encoding coefficient set may also include an L ⁇ L dimensional 0 matrix, that is, all elements in the matrix are 0. In this case, if any of the K encoding coefficients used to generate the encoding packet is zero, it is recorded as a zero encoding coefficient, and the zero encoding coefficient corresponds to a 0 matrix in the encoding coefficient set.
  • the non-zero coding coefficient corresponds to a non-zero matrix in the coding coefficient set.
  • the codeword is expressed as or Among them, 0 ⁇ p l %(L+1) ⁇ L, the values of p l %(L+1) corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword is the same as p l %(L +1) has a corresponding relationship, wherein p l %(L+1) represents the remainder of dividing p l by (L+1), are respectively a 1 , a 2 ,..., a X powers of p l , a 1 , a 2 ,..., a X are matrices from the encoding coefficient set, and X represents the matrix included in the codeword
  • the number of , the matrix in the encoding coefficient set is a cyclic shift matrix or a transformation matrix of a cyclic shift matrix.
  • the transformation form corresponding to the transformation matrix of the cyclic shift matrix includes at least one of left multiplication or right multiplication of the cyclic shift matrix.
  • Different encoding packages can be encoded using codewords with different indexes.
  • the indexes of different codewords can correspond to different codewords as much as possible, which can improve the linear independence between the encoding coefficients corresponding to different encoding packages, and improve the effectiveness of the encoding packages. And improve the error correction capability of the encoded packet.
  • the coding coefficient is a cyclic shift matrix or a transformation matrix of a cyclic shift matrix, and a corresponding cyclic shift operation and an XOR operation are performed when coding the data packet to be coded, which can further reduce coding complexity.
  • X ⁇ L+1, a 1 , a 2 ,...,a X represent X matrices that are pairwise different in the encoding coefficient set. In this way, it can be ensured that codewords corresponding to different codeword indexes are completely different, further improving the validity of the coded packets or improving the error correction capability of the coded packets, and ensuring that each coded packet is valid for decoding at the receiving end.
  • the indication information is the index of a codeword in the coding coefficient codebook
  • the codeword can be expressed as or Different codewords in the coding coefficient codebook correspond to different a l , the index of the codeword has a corresponding relationship with l, a l represents a matrix in the coding coefficient set, and l is a l in the coding coefficient the index in the collection, are p 0 , p 1 ,..., p X-1 powers of a l , X represents the number of matrices included in the codeword, and the matrices in the coding coefficient set are cyclic shift matrices or cyclic The transformation matrix for the shift matrix.
  • the transformation form corresponding to the transformation matrix of the cyclic shift matrix includes at least one of left multiplication or right multiplication of the cyclic shift matrix.
  • Different encoding packages can be encoded using codewords with different indexes.
  • the indexes of different codewords can correspond to different codewords as much as possible, which can improve the linear independence between the encoding coefficients corresponding to different encoding packages, and improve the effectiveness of the encoding packages. And improve the error correction capability of the encoded packet.
  • the coding coefficient is a cyclic shift matrix or a transformation matrix of a cyclic shift matrix, and a corresponding cyclic shift operation and an XOR operation are performed when coding the data packet to be coded, which can further reduce coding complexity.
  • different matrices in the set of coding coefficients correspond to different cyclic shift matrices, and when the set of coding coefficients is a transformation matrix of a cyclic shift matrix, the matrix of each matrix in the set of coding coefficients
  • the transformation form of the cyclic shift matrix is the same.
  • the different cyclic shift matrices may be matrices obtained by cyclically shifting the identity matrix by different bits.
  • the number of matrices in the encoding coefficient set is less than or equal to L+1.
  • the matrix in the encoding coefficient set satisfies Among them, M satisfies 0 ⁇ M%(L+1) ⁇ L, Represents the matrix obtained by cyclically shifting the identity matrix of (L+1) ⁇ (L+1) by M bits;
  • Represents the cyclic shift matrix of (L+1) ⁇ (L+1), which is a matrix obtained by cyclically shifting the identity matrix of (L+1) ⁇ (L+1) by M bits, where M %(L+1) 1, wherein the cyclic shift matrix is also called a cyclic permutation matrix, Among them, G is a matrix of L ⁇ (L+1), Wherein, H is a matrix of (L+1) ⁇ L.
  • the indication information is the index of a codeword in the coding coefficient codebook, and the codeword can be expressed as or Among them, 0 ⁇ p l %(2 L ) ⁇ 2 L -1, Represents a 0 , a 1 ,...,a X-1 power of p l , X represents the number of matrices included in the codeword, p l %(2 The value of L ) is different, the index of the code word has a corresponding relationship with p l %(2 L ), the matrix in the coding coefficient set is the Nth power of the friend matrix of the primitive polynomial or the N of the friend matrix of the primitive polynomial A transformation matrix to the power, where the transformation matrix may refer to a matrix after performing row and column transformations.
  • N satisfies 0 ⁇ N%2 L ⁇ (2 L -1)
  • p l %(2 L ) means the remainder of p l divided by 2 L
  • N% 2 L means the remainder of N divided by 2 L
  • 2 L means 2 The L power of .
  • Different encoding packages can be encoded using codewords with different indexes. The indexes of different codewords can correspond to different codewords as much as possible, which can improve the linear independence between the encoding coefficients corresponding to different encoding packages, and improve the effectiveness of the encoding packages. And improve the error correction capability of the encoded packet.
  • the encoding coefficient is the Nth power of the friend matrix of the original polynomial or the transformation matrix of the Nth power of the friend matrix of the original polynomial.
  • the number of different encoding coefficients can reach 2 L , so that more The number of codewords, or the dimension of the codeword, that is, the number of coding coefficients included in the codeword, can be larger, so that it can support the generation of more different coded packets or support the encoding of more data packets to be coded together, so that Respond to scenarios with poor channel quality and improve system reliability.
  • the codeword is expressed as or Different codewords in the coding coefficient codebook correspond to different a l , are p 0 , p 1 ,..., p X-1 powers of a l respectively, X represents the number of matrices included in the codeword, the index of the codeword has a corresponding relationship with l, and a l represents The matrix in the encoding coefficient set, l is the index of a l in the encoding coefficient set, the matrix in the encoding coefficient set is the Nth power of the friend matrix of the original polynomial or the friend matrix of the original polynomial A transformation matrix to the power of N, where N satisfies 0 ⁇ N%2 L ⁇ (2 L -1).
  • Different encoding packages can be encoded using codewords with different indexes.
  • the indexes of different codewords can correspond to different codewords as much as possible, which can improve the linear independence between the encoding coefficients corresponding to different encoding packages, and improve the effectiveness of the encoding packages. And improve the error correction capability of the encoded packet.
  • the encoding coefficient is the Nth power of the friend matrix of the original polynomial or the transformation matrix of the Nth power of the friend matrix of the original polynomial.
  • the number of different encoding coefficients can reach 2 L , so that more The number of codewords, or the dimension of the codeword can be larger, so that it can support the generation of more different coded packets or support the encoding of more data packets to be coded together, so as to cope with poor channel quality scenarios and improve system reliability.
  • X ⁇ 2 L , p 0 , p 1 ,...,p X-1 are respectively divided by 2 L to obtain X remainders that are pairwise different X in [0, 2 L -1] value.
  • the values of N% 2 L corresponding to different matrices in the encoding coefficient set are different.
  • the number of matrices in the encoding coefficient set is less than or equal to 2L .
  • the friend matrix of the primitive polynomial is A
  • the primitive polynomial whose form is f(x) a 0 +a 1 x+...a L-1 x L-1 +x L , its friend matrix is
  • the indication information is a random seed or an identifier of the encoding package, and the random seed or the identifier of the encoding package is used to determine the index of the K encoding coefficients in the encoding coefficient set,
  • the set of encoding coefficients includes a finite number of matrices.
  • the K coding coefficients are indicated by a random seed or an identifier of a coding packet, which can save the overhead of indicating information.
  • the random seed or the identifier of the coding package corresponds to K random numbers, and the K random numbers are used to determine the indexes of the K coding coefficients in the coding coefficient set.
  • the random seed or the identifier has a corresponding relationship with the indexes of the K coding coefficients in the coding coefficient set, and the corresponding relationship satisfies: the K coding coefficients are in the coding coefficient set
  • the index is a function of the random seed or the identity.
  • the function satisfies: generating K values based on the random seed or the identified random function, and performing a remainder operation based on the K values.
  • the matrix in the encoding coefficient set is a cyclic shift matrix or a transformation matrix of the cyclic shift matrix.
  • the transformation form corresponding to the transformation matrix of the cyclic shift matrix includes at least one of left multiplication or right multiplication of the cyclic shift matrix.
  • the identifier of the coded package includes a serial number, or an ID of the coded package in a coded block.
  • the encoding block may include the encoding packet in addition to the to-be-encoded data packet, that is, the encoding block is a set including the to-be-encoded data packet and the encoding packet, and the encoding packet
  • the ID in the encoding block is the index of the encoded packet in the set of the data packet to be encoded and the encoded packet.
  • different matrices in the set of coding coefficients correspond to different cyclic shift matrices
  • the set of coding coefficients is a transformation matrix of a cyclic shift matrix
  • each matrix in the set of coding coefficients The transformation form of the cyclic shift matrix is the same, and the transformation form of the cyclic shift matrix includes at least one of left multiplication or right multiplication of the cyclic shift matrix.
  • the different cyclic shift matrices are matrices obtained by cyclically shifting the unit matrix by different bits.
  • the coding coefficient is a cyclic shift matrix or a transformation matrix of the cyclic shift matrix, and only the corresponding cyclic shift operation and XOR operation need to be performed when encoding the data packet to be coded, which can further reduce the coding complexity.
  • the number of matrices in the encoding coefficient set is less than or equal to L+1.
  • the matrix in the encoding coefficient set satisfies Among them, M satisfies 0 ⁇ M%(L+1) ⁇ L, Represents the matrix obtained by cyclically shifting the identity matrix of (L+1) ⁇ (L+1) by M bits;
  • Represents the cyclic shift matrix of (L+1) ⁇ (L+1), which is a matrix obtained by cyclically shifting the identity matrix of (L+1) ⁇ (L+1) by M bits, where M %(L+1) 1, Among them, G is a matrix of L ⁇ (L+1), Wherein, H is a matrix of (L+1) ⁇ L.
  • the matrix in the encoding coefficient set is the N power of the friend matrix of the primitive polynomial or the transformation matrix of the N power of the friend matrix of the primitive polynomial, and N satisfies 0 ⁇ N%2 L ⁇ ( 2L -1).
  • the values of N corresponding to different matrices in the encoding coefficient set are different.
  • the number of matrices in the encoding coefficient set is less than or equal to 2L .
  • the friend matrix of the primitive polynomial is A
  • the elements in the matrix are all elements in the binary domain.
  • the encoding and decoding process involves exclusive OR operations, which can avoid the use of multiplication operations involved in high-field elements in the finite field, thereby reducing the complexity of encoding and decoding.
  • a network coding device which may be a network coding device, or a device (for example, a chip, or a chip system, or a circuit) located in the network coding device, or be able to match the network coding device device used.
  • the device has the function of implementing the first aspect and the method in any possible design of the first aspect.
  • the functions may be implemented by hardware, or may be implemented by executing corresponding software through hardware.
  • Hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the device may include a processing module and an input and output module.
  • a processing module configured to encode K data packets to be encoded to generate encoded packets; wherein, the encoded packets carry indication information, and the indication information is used to indicate the K data packets used to generate the encoded packets Encoding coefficients, the K encoding coefficients correspond to the K data packets to be encoded one-to-one during the encoding process, the non-zero encoding coefficients in the K encoding coefficients are all matrices, and the dimensions of the matrix It is L ⁇ L, and both K and L are integers greater than 1.
  • the input and output module is used to send the encoding packet.
  • a network decoding device which may be a network decoding device, or a device (for example, a chip, or a chip system, or a circuit) located in the network decoding device, or a network decoding device capable of communicating with the network
  • the decoding device matches the device used.
  • the device has the function of realizing the above-mentioned second aspect and the method in any possible design of the second aspect.
  • the functions may be implemented by hardware, or may be implemented by executing corresponding software through hardware.
  • Hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • the device may include a processing module and an input and output module.
  • the input and output module is used to obtain data to be decoded
  • the data to be decoded carries indication information
  • the indication information is used to indicate K encoding coefficients used in the encoding process
  • the K encoding coefficients are related to
  • the K original data packets are in one-to-one correspondence, and the non-zero coding coefficients in the K coding coefficients are all matrices, the dimension of the matrix is L ⁇ L, and both K and L are integers greater than 1.
  • a processing module configured to decode the data to be decoded according to the indication information, and obtain the K original data packets.
  • the embodiment of the present application provides a network coding device, which includes a memory and a processor, the memory is used to store programs, instructions or codes, the processor is used to execute the programs, instructions or codes stored in the memory, and execute the above-mentioned first Aspect, the method described in each possible design of the first aspect.
  • the device may also include an input-output interface for communicating with other devices.
  • the memory may be a physically independent unit, or may be coupled with the processor, or the processor includes the memory.
  • the embodiment of the present application provides a network decoding device, the device includes a memory and a processor, the memory is used to store programs, instructions or codes, the processor is used to execute the programs, instructions or codes stored in the memory, and execute the above-mentioned first The method described in the second aspect or each possible design of the second aspect.
  • the device may also include an input-output interface for communicating with other devices.
  • the memory may be a physically independent unit, or may be coupled with the processor, or the processor includes the memory.
  • the embodiment of the present application provides a network coding device, which has a function of implementing the method described in the first aspect and any possible design of the first aspect.
  • the functions described above may be implemented by hardware, or may be implemented by executing corresponding software on the hardware.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the device includes: an input-output interface circuit, used to acquire K data packets to be encoded; a logic circuit, used to implement the above-mentioned first aspect and any one of the possible designs of the first aspect Behavior; an input-output interface circuit for outputting or sending the encoded packet.
  • the embodiment of the present application provides a network decoding device, which has the function of implementing the method described in the second aspect and any possible design of the second aspect.
  • the functions described above may be implemented by hardware, or may be implemented by executing corresponding software on the hardware.
  • the hardware or software includes one or more modules corresponding to the above functions.
  • the device includes: an input-output interface circuit, used to acquire data to be decoded; a logic circuit, used to perform the behavior described in the first aspect and any possible design of the first aspect .
  • the embodiment of the present application provides a computer-readable storage medium, where computer-readable instructions are stored in the computer-readable storage medium, and when the computer-readable instructions are run on a computer, the above aspects Or the methods described in each possible design of the aspects are executed.
  • the embodiment of the present application provides a chip system, where the chip system includes a processor and may further include a memory.
  • the memory is used to store programs, instructions or codes; the processor is used to execute the programs, instructions or codes stored in the memory, so as to implement the methods described in the above aspects or possible designs of each aspect.
  • the system-on-a-chip may consist of chips, or may include chips and other discrete devices.
  • a computer program product containing instructions which, when run on a computer, causes the method described in the first aspect or each possible design of the aspect to be executed.
  • Figure 1a is one of the schematic diagrams of the architecture of the wireless communication system in the embodiment of the present application.
  • FIG. 1b is the second schematic diagram of the architecture of the wireless communication system in the embodiment of the present application.
  • FIG. 2 is a schematic diagram of a communication scene in an embodiment of the present application.
  • FIG. 3 is a simplified schematic diagram of a communication system in an embodiment of the present application.
  • Fig. 4 is the schematic diagram of random linear network coding RLNC in the embodiment of the present application.
  • FIG. 5 is one of the schematic flow diagrams of the network coding method in the embodiment of the present application.
  • FIG. 6 is the second schematic flow diagram of the network coding method in the embodiment of the present application.
  • FIG. 7 is a schematic flow diagram of a network decoding method in an embodiment of the present application.
  • Fig. 8 is one of the performance comparison diagrams of several encoding schemes in the embodiment of the present application.
  • FIG. 9 is the second schematic diagram of the performance comparison of several coding schemes in the embodiment of the present application.
  • FIG. 10 is one of the structural schematic diagrams of the network coding device in the embodiment of the present application.
  • FIG. 11 is one of the structural schematic diagrams of the network decoding device in the embodiment of the present application.
  • Fig. 12 is the second structural diagram of the network coding device in the embodiment of the present application.
  • FIG. 13 is the second schematic diagram of the structure of the network decoding device in the embodiment of the present application.
  • the network coding method and decoding method provided by the embodiment of the present application can be applied to the fifth generation (5th generation, 5G) communication system, such as the 5G new air interface (new radio, NR) system, and can also be applied to various communications in the future evolution Systems, such as the sixth generation (6th generation, 6G) communication system, or the air-space-sea-ground integrated communication system.
  • 5G fifth generation
  • NR new radio
  • 6G sixth generation
  • FIG. 1b is a schematic structural diagram of a communication system 1000 applied in an embodiment of the present application.
  • the communication system includes a radio access network 100 , and optionally, the communication system 1000 may further include a core network 200 and the Internet 300 .
  • the radio access network 100 may include at least one network device, such as network devices 110a and 110b in FIG. 1b.
  • the radio access network 100 may further include at least one terminal device, such as 120a-120j in FIG. 1b.
  • the terminal equipment is connected to the wireless access network equipment in a wireless manner, and the wireless access network equipment is connected to the core network in a wireless or wired manner.
  • Core network equipment and network equipment can be independent and different physical equipment, or the functions of the core network equipment and the logical functions of the network equipment can be integrated on the same physical equipment, or a physical equipment can integrate part of the core network equipment. device functions and functions of some network devices.
  • Terminal devices and network devices may be connected to each other in a wired or wireless manner.
  • Fig. 1b is only a schematic diagram, and the communication system may also include other network devices, such as wireless relay devices and wireless backhaul devices, which are not shown in Fig. 1b.
  • a network device may be a device with a wireless transceiver function.
  • the network device can be a device that provides wireless communication function services, and is usually located on the network side, including but not limited to: the next generation base station (gNodeB, gNB) in the 5G communication system, the sixth generation (6th generation, 6G) mobile communication system
  • the next-generation base station, the base station in the future mobile communication system or the wireless local area network such as the access node in the wireless fidelity (Wireless Fidelity, WiFi) system, etc.
  • the evolved node B evolved node B, eNB
  • radio network controller radio network controller
  • node B node B
  • base station controller base station controller
  • BSC home base station
  • home base station for example, home evolved NodeB, or home Node B, HNB
  • BBU base band unit
  • transmission reception point transmission reception point
  • TRP transmission reception point
  • TRP transmission point
  • TP base transceiver station
  • base transceiver station base transceiver
  • the network device may include a centralized unit (centralized unit, CU) node, or a distributed unit (distributed unit, DU) node, or a wireless access network (radio access network, including a CU node and a DU node, RAN) equipment, or control plane CU nodes and user plane CU nodes, and RAN equipment of DU nodes.
  • the network device provides services for the cell, and the terminal device communicates with the network device 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 network device, and the cell may belong to a macro base station , can also belong to the base station corresponding to a small cell, where the small cell can include: a metro cell, a micro cell, a pico cell, a 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 network device can be a macro base station (110a in Figure 1b), a micro base station or an indoor station (110b in Figure 1b), a relay node or a donor node, and a terminal device in a V2X communication system Devices that provide wireless communication services, wireless controllers in cloud radio access network (CRAN) scenarios, relay stations, vehicle-mounted devices, wearable devices, and network devices in future evolution networks.
  • CRAN cloud radio access network
  • the embodiment of the present application does not limit the specific technology and specific device form adopted by the network device.
  • devices implementing the above functions are collectively referred to as network devices for description below.
  • a terminal device may also be called a terminal, user equipment (user equipment, UE), mobile station (mobile station, MS), mobile terminal (mobile terminal, MT), etc., which may be a user-side device for receiving or transmitting signals entities, such as mobile phones.
  • the terminal device may be a 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 in the embodiments of the present application are described by taking the terminal equipment as an example for realizing the terminal functions.
  • the embodiment of the present application does not limit the specific technology and specific device form adopted by the terminal device.
  • the terminal device can also be used as a base station.
  • a terminal device can act as a scheduling entity, and its terminal device in vehicle-to-everything (V2X), device-to-device (D2D) or peer-to-peer (P2P) etc. Provide sidelink signals between them.
  • V2X vehicle-to-everything
  • D2D device-to-device
  • P2P peer-to-peer
  • Network equipment and terminal equipment can be fixed or mobile.
  • Network equipment and terminal equipment can be deployed on land, including indoors or outdoors, hand-held 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 network device and the terminal device.
  • the helicopter or drone 120i in FIG. 1b can be configured as a mobile base station.
  • Terminal device 120i is a base station; but for network device 110a, 120i is a terminal device, 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 network equipment and terminals can be collectively referred to as communication devices, and 110a, 110b, and 120a-120j in FIG. Communication means for terminal equipment functions.
  • Communication between network devices and terminal devices, between network devices and network devices, between terminal devices and terminal devices can be performed through licensed spectrum, or through license-free spectrum, or through licensed spectrum and license-free spectrum at the same time
  • Communication can be performed through a frequency spectrum below 6 gigahertz (GHz), or can be performed through a frequency spectrum above 6 GHz, and can also be performed using a frequency spectrum below 6 GHz and a frequency spectrum above 6 GHz at the same time.
  • GHz gigahertz
  • the embodiments of the present application do not limit the frequency spectrum resources used for wireless communication.
  • the functions of the network device may also be performed by modules (such as chips) in the network device, or may be performed by a control subsystem including the functions of the network device.
  • the control subsystem including network device functions may be the control center in the above terminal application scenarios such as smart grid, industrial control, intelligent transportation, and smart city.
  • the functions of the terminal equipment may also be performed by a module (such as a chip or a modem) in the terminal equipment, or may be performed by a device including the functions of the terminal equipment.
  • point-to-point transmission between a network device and a terminal device or between terminal devices for example, (a) in FIG. 2 is a point-to-point transmission between a network device and a terminal device.
  • Another example is the multi-hop transmission between network devices and terminal devices, as shown in (b) and (c) in FIG. 2 .
  • Another example is a scenario of dual connectivity (dual connectivity, DC) of multiple network devices and terminal devices, as shown in (d) in Figure 2; or a scenario of multiple connections of multiple network devices and terminal devices.
  • DC dual connectivity
  • the embodiments of the present application are applicable to many business scenarios, such as data encoding scenarios and uplink large-capacity scenarios in extended reality (extended reality, XR) services.
  • extended reality extended reality
  • (a) to (d) in Figure 2 do not impose restrictions on the network architecture applicable to this application, and this application does not limit the uplink, downlink, access link, backhaul (backhaul) link, side chain Road (Sidelink) and other transmission.
  • 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 .
  • the terminal device 120 may optionally include a memory 123 .
  • the memory 123 may optionally store a program 125 .
  • These components work together to provide the various functions described in this application.
  • the processor 112 and the interface 121 work together to provide a wireless connection between the base station 110 and the terminal device 120 .
  • the processor 122 and the interface 121 work together to implement downlink transmission and/or uplink transmission of the terminal device 120 .
  • the network 130 may include one or more network nodes 130a, 130b to provide core network functionality.
  • the network nodes 130a, 130b may be 5G core network nodes.
  • the networks 130a, 130b may be Access Management Functions (AMFs), Mobility Management Entities (MMEs), or the like.
  • Network 130 may also include one or more network nodes in a public switched telephone network (PSTN), a packet data network, an optical network, or an Internet Protocol (IP) network.
  • PSTN public switched telephone network
  • IP Internet Protocol
  • WAN Wide Area Network
  • LAN Local Area Network
  • WLAN Wireless Local Area Network
  • wired network wireless network
  • metropolitan area network metropolitan area network and other networks to enable communication between terminal devices 120 and/or base stations 110 .
  • a processor may include one or more processors and be implemented as a combination of computing devices.
  • Processors e.g., processor 112 and/or processor 122 may each include one or more of the following: a microprocessor, a microcontroller, a digital signal processor (DSP), a digital signal processing device (DSPD), a dedicated integrated circuits (ASICs), field programmable gate arrays (FPGAs), programmable logic devices (PLDs), gating logic, transistor logic, discrete hardware circuits, processing circuits, or other suitable hardware, firmware, and/or hardware and software combination for performing the various functions described in this application.
  • DSP digital signal processor
  • DSPD digital signal processing device
  • ASICs dedicated integrated circuits
  • FPGAs field programmable gate arrays
  • PLDs programmable logic devices
  • 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 devices for enabling communication with one or more computer devices (eg, 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: RAM, ROM, EEPROM, CD-ROM, removable media, optical disk storage, magnetic disk storage media, magnetic storage devices, flash memory, registers, state memory, remotely mounted memory, local or remote memory component, 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) .
  • Network coding technology is a forward error correction technology, which can resist packet loss or performance loss in wireless transmission by encoding the original data packet and adding redundancy in advance.
  • Commonly used network coding schemes include block codes and convolutional codes.
  • the block code schemes include random linear network coding (RLNC), deterministic linear network coding (DLNC), Batch sparse code (BATS code), erasure code (erasure code), fountain code (fountain code), maximum distance separable code (maximum distance separable code, MDS code), Ruby Transform (Luby Transform, LT) Code, fast tornado (Rapid tornado) code, RaptorQ code, rateless (rateless) code and Reed-Solomon (Reed-Solomon, RS) code, etc.
  • the scheme of convolutional code includes convolutional network One or more of convolutional network coding (CNC), streaming code (streaming code) or sliding window network coding (sliding window network coding), etc. The following takes RLNC as an example
  • the RLNC scheme takes a data block (a data block includes several original data of the same size) as a unit, and encodes the original data by constructing a coding coefficient matrix to obtain a set of coded data packets.
  • the size of the encoded packet is the same as the size of the original packet in the data block.
  • the coefficients in the coding coefficient matrix are randomly selected in a finite field, where the finite field is such as a Galois Field (Galois Field, GF).
  • Galois Field Galois Field
  • the size of the coding coefficient matrix is (W+R) ⁇ W, that is, (W+R) rows and W columns.
  • the coding coefficients in the coding coefficient matrix can be randomly selected among the elements in the Galois field GF(q), q represents the size of the Galois field, q is a positive integer power of 2, and the Galois field GF( The values of the elements in q) are non-negative integers in the interval [0, q-1]. Both W and R are positive integers. It should be understood that in the RLNC scheme, there is no correlation between encoded data blocks.
  • the encoded data block here refers to performing network encoding on a data block containing W original data to obtain W+R encoded data, that is, the encoding operation is performed on each independent data blocks, and the redundancy (code rate) of each data block may be the same or different.
  • the encoding end/sending end adds header information to the generated W+R encoded data and then sends them.
  • the decoding end/receiving end receives at least W correct encoded data packets whose encoding coefficient vectors are linearly independent, or receives at least W
  • the W original data can be correctly decoded and recovered. This is because the coded data packet combines information of several original data, so the receiving end can use the coded data packet to restore the original data.
  • the term "encoded data packet” may also be referred to as "encoded packet” for short, and the two may be used interchangeably.
  • the decoding end/receiving end Due to interference, noise and other factors, when the number of correct and linearly independent encoded data packets received by the decoding end/receiving end is less than W, the decoding end/receiving end cannot decode, and it needs to be fed back to the encoding end/ The sending end needs to correctly decode the number of encoded data packets required, and the encoding end/sending end sends the corresponding number of encoded data packets according to the feedback information, and the encoded data packets have nothing to do with the encoding of the next data block.
  • the network encoding function in this application includes performing network encoding on the original data packet (abbreviated as the original data packet) 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.
  • the coded package includes N check packages (that is, the coded packages are all check packages, excluding system packages).
  • the output of the encoder may also include a system packet, or the system packet may be obtained by directly adding a packet header to the original data packet. 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 verification package is also called the redundant package.
  • the encoding coefficient of the check packet is 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. Based on the characteristics of network coding, the packet size of the original data packet can be equal.
  • the subject of execution of the encoding method may be the sending end or the encoding end
  • the subject of the decoding method may be the receiving end or the decoding end.
  • the receiving end or the decoding end may be the network device.
  • the sending end or encoding end is a network device
  • the receiving end or decoding end can be a terminal device.
  • this solution is applied to the communication between the first network device and the second network device, if the sending end or encoding end is the first network device, the receiving end or decoding end can be the second network device, and vice versa.
  • the sending end or encoding end is the first terminal device
  • the receiving end or decoding end can be the second terminal device, and vice versa.
  • N coded packets are denoted by Y 1 , Y 2 ,...,Y N , where Y n represents the nth coded packet, X k represents the kth original data unit, and g n,k represents the kth in the nth coded packet
  • the random coefficients of the original data units, and g n, k are randomly selected from the finite field or Galois Field (Galois Field, GF).
  • the GF field is a field containing a finite number of elements. Use GF(q) It can represent a GF field whose set is ⁇ 0,1...q-1 ⁇ with q elements.
  • each encoding packet Y n carries the encoding coefficient vector [g n,1 ,g n,2 ,...,g n,K ] used to generate the encoding packet, the dimension of the encoding coefficient vector is the same as that of each encoding
  • the number K of raw data units in a block is the same.
  • the meaning of operation on GF(4) is to divide X k of size L′ into multiple groups of bits in turn, each group contains log 2 q bits, and each operation rule is to select [X 1 ,X 2 ,..., X K ]
  • the log 2 q bits at the same position are multiplied by [g n,1 ,g n,2 ,...,g n,K ] in the GF(4) field and then added to obtain an operation result,
  • the result of this operation contains log 2 q bits.
  • the first 2 bits in [X 1 ,X 2 ,...,X K ] are taken for the first time, and then combined with [g n,1 ,g n,2 ,...,g n, K ] multiplication and addition to get a 2-bit operation result, which is placed in the 1st and 2nd bit positions of the encoded data unit Y n , and the second time takes the 3rd in [X 1 ,X 2 ,...,X K ] , 4 bits, multiply and add [g n,1 ,g n,2 ,...,g n,K ] in turn to get a 2-bit operation result, which is placed in the 3rd and 4th of the encoded data unit Y n
  • the 8-bit coding operation is completed by analogy to obtain an 8-bit coded data unit Y n , and the multiplication and addition operations involved above are polynomial operations on GF.
  • Polynomial is a representation method of elements in the Galois field. Any element in the Galois field can be represented by a polynomial. Based on the original polynomial corresponding to the Galois field, it can be used for addition and subtraction between elements in the GF field. Multiplication and division operations.
  • Multiplication in the GF field elements in the GF field can be generated by the original polynomial P(x) on the field, and polynomial multiplication on the GF field can convert the multiplication operation on the GF field into an ordinary form by converting the value into a polynomial The polynomial multiplication of then modulo the original polynomial P(x).
  • a 2-bit data such as '10', converted into polynomial form is x
  • a Multiplication of 2-bit data such as '11', converted into a polynomial form of x+1
  • polynomial multiplication is to multiply the terms of one polynomial with the terms of the other polynomial, and then multiply the terms of the same index
  • x ⁇ 2 represents the power of 2 of x.
  • the receiving end can construct a linear equation system according to the encoding coefficients.
  • X k , k ⁇ 1,2,...K ⁇ are K unknowns to be solved.
  • K original data units can be decoded.
  • the header of each received coded packet Y n contains an indication information indicating a K-long coded coefficient vector [g n,1 ,g n,2 ,...,g n,K ], the receiving end combines the received N encoding coefficient vectors together to form a K element about the unknowns X 1 , X 2 ,...,X K
  • the coefficient matrix of the system of equations is:
  • the rank of the coefficient matrix is K, and the receiving end can decode K original data packets by using the corresponding coefficient matrix according to the received correct encoded packets.
  • the number of received correct coded packets is not less than the number K of the original data packets, and the rank of the matrix composed of the coding coefficient vectors carried in the head of the received correct coded packets is the number of original data packets , the receiving end can still decode K original data packets. Therefore, for network coding technology, the sender does not need to wait for the feedback request from the receiver before retransmitting.
  • Network coding can send several coded packets in advance to counteract the influence of the wireless channel. On the one hand, it can save time delay, on the other hand, it does not need Blindly retransmit each transport block (TB) by consuming multiple resources to avoid waste of spectrum resources.
  • the coding coefficients will randomly select the elements in GF(2), so that the coding and decoding operations only involve the difference of the binary field
  • the OR operation can reduce the implementation complexity of the codec. If the encoding coefficients use elements in the binary domain, there will be a problem that the linearity independent property cannot be guaranteed, resulting in poor error correction ability. If you want to obtain better encoding and decoding performance, you generally use a higher finite field, such as GF(2 8 ), that is, the encoding coefficient of each original packet adopts the value in GF(2 8 ). Multiplication between elements of GF(2 8 ).
  • the coding coefficients use the elements in the high domain. Although the error correction ability is good, the multiplication operation between the high domain elements is involved in the high domain coding and decoding. The multiplication operation between the high domain elements usually needs to establish a discrete multiplication table in advance. Through Only by looking up a huge table can the calculation result be obtained, which is highly complex.
  • the embodiment of the present application provides a network coding method and a decoding method, which can take into account performance and complexity, utilize low-complexity low-domain operations and ensure linear independence between coding coefficients, thereby achieving high-domain performance .
  • the embodiment of the present application provides a network coding method as follows.
  • the execution subject of the method is the sending end or the encoding end, and the sending end or the encoding end may be a terminal device or a network device. If the sending end or encoding end is a terminal device, the receiving end or decoding end can be a network device. If the sending end or encoding end is a network device, the receiving end or decoding end can be a terminal device.
  • the encoding packet carries indication information, and the indication information is used to indicate the K encoding coefficients used to generate the encoding packet.
  • the K encoding coefficients are in one-to-one correspondence with the K data packets to be encoded.
  • the non-zero coding coefficients are all matrices, the dimension of the matrix is L ⁇ L, and both K and L are integers greater than 1.
  • the sending end may generate N coded packets, and the method of generating each coded packet may refer to the description in the embodiment of FIG. 6 .
  • the N encoded packets generated by the sending end There is no association between the N encoded packets generated by the sending end.
  • any two encoded packets in the N encoded packets are represented by the first encoded packet and the second encoded packet, and the K encoded packets used to generate the first encoded packet The coefficients are irrelevant to the K encoding coefficients used to generate the second encoding packet.
  • data packet to be encoded may also be referred to as "original data packet”, “original data packet”, or “original data segment”, and different terms may be used interchangeably.
  • An encoded packet may also be referred to as an encoded data packet.
  • the encoding packet carries the indication information of K encoding coefficients including K data packets to be encoded, and the encoding packet is generated based on the K encoding coefficients and K data packets to be encoded
  • the decoding device can according to The instruction information obtains the coding coefficients of the coded packets, and decodes them to obtain K original data packets, where the K original data packets correspond one-to-one to the K uncoded data packets at the sending end.
  • K coding coefficients are K matrices. Since the coding coefficients are matrices rather than a value in a finite field, the linearity-independent characteristics of the coding coefficients can be guaranteed.
  • linear-independent coding coefficients for coding can obtain better error correction capabilities, thus Improve system reliability and system spectrum efficiency.
  • multiplication operations using finite fields, especially high fields, can be avoided, thereby reducing the complexity of encoding and decoding.
  • the non-zero coding coefficients in the K coding coefficients are all matrices, and the elements in the matrix are all elements in the binary field, or in other words, each coding coefficient in the K coding coefficients is a binary field matrix.
  • the K encoding coefficients used in the process of encoding the K data packets to be encoded are all taken from the encoding coefficient set.
  • the coded coefficient set may also be referred to as a coded coefficient domain or other names.
  • the set of coding coefficients includes a finite number of matrices.
  • the dimension of the matrix in the coded coefficient set is L ⁇ L. L is a positive integer, and L may be an integer greater than 1, for example, the value of L is 8.
  • the first type of coding coefficient set it is a coding coefficient set based on a cyclic shift matrix.
  • the matrix in the encoding coefficient set is a cyclic shift matrix or a transformation matrix of the cyclic shift matrix.
  • the coding coefficient set includes multiple matrices, and one matrix can be used as one coding coefficient. Different matrices in the coding coefficient set correspond to different cyclic shift matrices.
  • the transformation form of the cyclic shift matrix of each matrix in the coding coefficient set is the same. In this embodiment of the present application, the cyclic shift matrix may also be referred to as a cyclic permutation matrix.
  • a matrix in a set of encoded coefficients can be expressed as Wherein, M satisfies 0 ⁇ M%(L+1) ⁇ L, % is a remainder operation, and M is an integer. Indicates the matrix obtained by cyclically shifting the unit matrix of (L+1) ⁇ (L+1) by M bits. For example, the value of M is 0, 1, 2, ..., L, then the coding coefficient set can be expressed as For another example, the value of M is 1, 2, 3, ..., L+1, then the encoding coefficient set can be expressed as
  • Different matrices in the coded coefficient set correspond to different cyclic shift matrices, for example, The corresponding cyclic shift matrix is The corresponding cyclic shift matrix is
  • the transformation form of the cyclic shift matrix of each matrix in the coded coefficient set is the same, for example, the transformation form of the cyclic shift matrix of each matrix in the above coded coefficient set is that the cyclic shift matrix is multiplied by G on the right and H on the left.
  • the set of coding coefficients in the above example Therefore, the number of encoding coefficient set matrices is L+1.
  • the coding coefficient set in practical application can be a subset of the above-mentioned coding coefficient set example.
  • the first set of coding coefficients may be a subset of the above-mentioned set of coding coefficients.
  • the first set of coding coefficients can be A subset of , or the first set of coded coefficients can be subset of .
  • the second encoding coefficient set it is the encoding coefficient set of the friend matrix of the primitive polynomial based on the Galois field GF(2 L ).
  • the matrix in the encoding coefficient set is the Nth power of the friend matrix of the primitive polynomial or the transformation matrix of the Nth power of the friend matrix of the primitive polynomial.
  • friendship matrix is also called the companion matrix, which is a specific n-order matrix corresponding to a polynomial with the first coefficient of 1 on the number field F.
  • the elements above or below the main diagonal are all 1, and the elements on the main diagonal are zero. ;
  • the matrix in the second encoding coefficient set is A N ; N satisfies 0 ⁇ N%2 L ⁇ 2 L -1.
  • the value of N can be 0, 1, 2, 3, ..., 2 L -1.
  • the values of N% 2L corresponding to different matrices in the encoding coefficient set are different. In other words, the values of N corresponding to different matrices in the encoding coefficient set are different.
  • the second encoding coefficient set can be expressed as The second encoding coefficient set is the result of continuous self-multiplication of the friend matrix A of the primitive polynomial of the Galois field GF(2 L ).
  • the primitive polynomials of GF(2 L ) are not limited in the embodiment of this application.
  • [a 0 a 1 ...a 7 ] corresponding to the primitive polynomial of GF(256) are [1 0 1 1 1 0 0 0], [1 1 0 1 0 1 0], [1 0 1 1 0 1 0], [1 0 1 1 0 1 0], [1 1 1 1 1 0 1 0], [1 1 0 0 0 1 1 0], [1 0 1 0 0 1 1 0], [1 0 1 0 0 1 1 0], [1 0 0 1 0], [1 0 0 0 1 1 1 0], [1 1 1 1 0 0 0 1], [1 0 1 1 0 0 0 1], [1 0 1 1 0 0 0 1], [1 0 1 1 1 0 0 1], [1 0 0 1 0 1], [1 1 0 0 0 1 0 1], [1 1 1 0 0 0 1], [1 1 1 1
  • the number of matrices in the example of the second type of coding coefficient set is 2L .
  • the set of coding coefficients in practical applications can be a subset of the above-mentioned set of coding coefficients.
  • the second set of coding coefficients may be a subset of the above-mentioned coding coefficient sets.
  • the second set of coding coefficients can be subset of .
  • the coding coefficients all adopt the value in GF(2 L ), compared with this, the non-zero coding coefficients in the network coding method in the embodiment of Fig. 6 are all matrices.
  • the K data packets to be encoded may be located in a group of network coding blocks.
  • the sending end divides the data packets to be sent into multiple groups of network coding blocks, and each group of network coding blocks contains K original data packets. Encoding the K data packets to be encoded once can generate one encoded packet. Encoding the K data packets to be encoded multiple times can generate multiple encoded packets.
  • the K encoding coefficients are in one-to-one correspondence with the K data packets to be encoded.
  • the K coding coefficients may be K matrices in the coding coefficient set, and the K matrices are not required to be different from each other.
  • the K coding coefficients of a coding packet can form a network coding coefficient matrix, where one coding coefficient is an L ⁇ L matrix, and the network coding coefficient matrix composed of K coding coefficients is a KL ⁇ L dimensional matrix, which can be written as [Q 1 Q 2 ... Q K ] T .
  • the network coding coefficient matrix is an L ⁇ KL-dimensional matrix, which can be recorded as [Q 1 Q 2 ... Q K ].
  • the network coding coefficient matrix [Q 1 Q 2 ... Q K ] T is multiplied to the left by the row vector composed of bits/symbols in the data packet to be coded.
  • the network coding coefficient matrix [Q 1 Q 2 ... Q K ] is left-multiplied by a column vector composed of bits/symbols in the data packet to be coded.
  • one symbol may be a unit of data to be coded, and may include one or more bits.
  • the network encoding process can be expressed as:
  • y 1 ,...,y L is the bit/symbol sequence of the generated encoded packet
  • x k,1 ,...,x k,L is the L bit/symbol sequence of the kth data packet to be encoded, 1 ⁇ k ⁇ K.
  • each data packet to be encoded can be divided into B original data segments, each original data segment contains L bits/symbols, and K
  • the b-th original data segment in the data packet to be encoded adopts the above network encoding process to generate the b-th encoded data segment of the encoded packet, and the first original data segment, the second original data segment, and the B-th original data segment are sequentially used
  • the same encoding coefficient matrix generates the first encoded data segment, the second encoded data segment and the Bth encoded data segment of the encoded packet.
  • bit/symbol sequence of the k-th data packet to be encoded is divided into B original data segments, where the b-th original data segment is represented by x k,b,1 ,...,x k,b,L , network coding
  • the process is as follows:
  • the second encoded data segment contains L bits/symbols, use y 2,1 ,...,y 2, L means:
  • encode the B th original data segment contained in the K data packets to be encoded to generate the B th encoded data segment of the encoded packet, and the B th encoded data segment contains L bits/symbols, using y B,1 , ..., y B, L means:
  • the encoding coefficient used for encoding the i-th original data segment in the above encoding process is the same as the encoding coefficient used for encoding the j-th original data segment, where i ⁇ j, 1 ⁇ i ⁇ B, 1 ⁇ j ⁇ B.
  • the first encoded data segment generated above, the second encoded data segment, ..., the Bth encoded data segment y 1,1 ,...,y 1,L ,y 2,1 ,...,y 2,L ,... ,y B,1 ,...,y B,L are arranged and combined in sequence to form a coding packet.
  • the sending end carries indication information in each encoding packet, where the indication information is used to indicate the encoding coefficient for generating the encoding packet.
  • the receiving end can determine the coding coefficient of the coded packet according to the indication information, so as to decode correctly. Coding coefficients of different coding packets may be different, and indication information of different coding packets may be different.
  • the encoding coefficients in the encoding coefficient set (that is, the matrix) may be in one-to-one correspondence with the index numbers, and the encoding coefficients may be indicated by indicating the index of the encoding coefficients.
  • the corresponding relationship between the matrix and the index in the encoding coefficient set can be expressed in the form of a table, or in the form of a function, and the specific form of expression is not limited in this application.
  • it is embodied in the form of a table, as shown in Table 1, which shows the correspondence between different matrices and different indexes.
  • the first coding coefficient set is expressed as Table 2 shows the corresponding relationship between coding coefficients (or matrices) and indexes in the first coding coefficient set.
  • the encoding packet carries indication information for indicating the K encoding coefficients, and the indication information may be a random seed (seed) or an identifier of the encoding packet.
  • the identifier of the encoded packet may be the serial number (serial number, SN) of the encoded packet, or the ID of the encoded packet in the encoded block.
  • the identity of the random seed/coding packet is used to determine the index of the K coding coefficients in the coding coefficient set.
  • the identifier of the random seed/encoding package corresponds to K random numbers, and the K random numbers are used to determine the indexes of the K encoding coefficients in the encoding coefficient set.
  • the identification of the random seed/encoding package has a corresponding relationship with the index of the K encoding coefficients in the encoding coefficient set, and the corresponding relationship satisfies that the index of the K encoding coefficients in the encoding coefficient set is a function of the identification of the random seed/encoding package.
  • the function may be: generating K values based on a random function identified by the random seed/coding package, and performing a remainder operation based on the K values. That is, the random function based on the identity of the random seed/encoding packet generates K values, and each of the K values takes a remainder, which may be the number of matrices contained in the encoding coefficient set.
  • the K values are respectively modulo the values to obtain the indexes of the K coding coefficients in the coding coefficient set.
  • the indication information is the identity of the random seed/encoded packet.
  • the sender can use the identity of the random seed/encoded packet as the input of the pseudo-random number generator.
  • the pseudo-random number generator will output a set of random number sequences, and take out K random numbers, represented by ⁇ R 1 , R 2 ,...,R K ⁇ , the first K random numbers in the random number sequence can be selected optionally. Indexes of the K coding coefficients in the coding coefficient set are determined based on the K random numbers.
  • the index of K coding coefficients in the coding coefficient set can be determined based on K random numbers, which can be realized in the following way: K random numbers ⁇ R 1 , R 2 ,... ,R K ⁇ are divided by (L+1) respectively, and the remainder is ⁇ R 1 %(L+1), R 2 %(L+1),...,R K %(L+1) ⁇ , and K can be obtained Index ⁇ I 1 , I 2 , . . . , I K ⁇ .
  • the K indexes may correspond to the K index values in Table 2, so that the K coding coefficients corresponding to the K indexes may be further determined.
  • the index of K coding coefficients in the coding coefficient set can be determined based on K random numbers, which can be realized in the following way: K random numbers ⁇ R 1 , R 2 ,... , R K ⁇ are respectively divided by 2 L and the remainder is ⁇ R 1 % 2 L , R 2 % 2 L ,..., R K % 2 L ⁇ to obtain K indexes ⁇ I 1 , I 2 ,..., I K ⁇ .
  • the K indexes may correspond to the K index values in Table 3, so that the K coding coefficients corresponding to the K indexes may be further determined.
  • the encoding packet carries the identifier of the random seed/encoding packet, which can indicate K encoding coefficients.
  • the identifier of the random seed/encoded packet can be included in the header of the encoded packet as a newly added field in the header of the encoded packet.
  • the receiving end can use the identity of the random seed/encoding packet to determine the K encoding coefficients through the same process. For example, the receiving end obtains the same set of random number sequences as the sending end according to the identity of the random seed/encoded packet, selects the same K random numbers, and uses the same method to determine the K indices and the K indices corresponding to the K indices. coding coefficients. The receiving end performs decoding according to the K coding coefficients.
  • the identifier of the encoding packet is carried in the encoding packet to indicate the K encoding coefficients, which can save the overhead of the packet header.
  • the indication information is used to indicate the K encoding coefficients used to generate the encoding packet.
  • the indication information may be an index of a codeword in the coding coefficient codebook, the codeword includes X matrices in the coding coefficient set, the coding coefficient set includes a limited number of matrices, X ⁇ K, and K coding coefficients are X matrices of K matrices.
  • Multiple groups of matrices can be selected from the set of coding coefficients, the number of each group of matrices is X, the value of X is a positive integer, and the value of X is greater than or equal to the number K of coding coefficients, and the value of X is less than or Equal to the maximum number of matrices contained in the coded coefficient set.
  • Multiple groups of matrices form a coding coefficient codebook, wherein a group of matrices is a codeword in a coding coefficient codebook.
  • the number of a group of matrices corresponding to a codeword may be K, so that the K matrices are K coding coefficients.
  • the number of a group of matrices corresponding to a codeword can also be greater than K, that is, in the case of X>K, then the K encoding coefficients are K matrices in the X matrices, which can be any K matrices in the X matrices, It can also be specified K matrices among the X matrices, for example, it can be the first K matrices among the X matrices.
  • the coding coefficient codebook may also be called by other names, such as a set of matrix groups, multiple groups of matrices, and the like.
  • a codeword may also be referred to as a set of matrices or a set of matrices. The functions and interpretations of different names are the same. In this paper, the concepts of coding coefficient codebook and codeword are used as examples to introduce.
  • codewords and indexes have a corresponding relationship. It should be noted that the index in the indication mode 2 is different from the index in the indication mode 1.
  • the index in the indication mode 1 is the index of the matrix in the encoding coefficient set, and the index in the indication mode 2 is the codeword in the encoding coefficient codebook index of.
  • a codeword in the coding coefficient codebook includes X matrices.
  • the indexes of the X matrices can be 1, 2, ..., X, and the codeword can be expressed as or Among them, 0 ⁇ p l %(L+1) ⁇ L, the values of p l %(L+1) corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword is the same as p l %(L+ 1) There is a corresponding relationship.
  • p l %(L+1) means the remainder of dividing p l by (L+1), are a 1 , a 2 ,...,a X raised to the power of p l , and a 1 , a 2 ,...,a X represent X matrices.
  • the value range of p l is [0, L], that is, 0 ⁇ p l ⁇ L.
  • the values of p l corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword has a corresponding relationship with p l .
  • the matrix representation of the coding coefficient codebook can be Among them, a column in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ L, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the matrix representation of the coding coefficient codebook can also be Among them, a row in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ L, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the indexes of the X matrices can also be 0, 1, ..., X-1, and the codeword can be expressed as or Among them, 0 ⁇ p l %(L+1) ⁇ L, the values of p l %(L+1) corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword is the same as p l %(L+ 1) There is a corresponding relationship.
  • p l %(L+1) represents the remainder of dividing p l by (L+1). are a 0 , a 1 ,..., a X-1 power of p l respectively.
  • a 0 , a 1 ,...,a X-1 represent X matrices.
  • the value range of p l is [0, L], that is, 0 ⁇ p l ⁇ L.
  • the matrix representation of the codebook of encoding coefficients can be Among them, a column in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ L, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the matrix representation of the coding coefficient codebook can also be Among them, a row in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ L, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the value of the above-mentioned X may be less than or equal to L+1, and X is a positive integer.
  • a X can represent two different X matrices in the encoding coefficient set.
  • the X matrices included in a codeword may be the X matrices in the first encoding coefficient set above.
  • a 1 , a 2 ,...,a X can represent the pairwise different X matrices in the first encoding coefficient set above.
  • a 1 ,a 2 ,...,a X can represent Two different X matrices in .
  • a 0 , a 1 ,...,a X-1 can represent X matrices that are pairwise different in the encoding coefficient set.
  • the X matrices included in a codeword are the X matrices in the first encoding coefficient set above.
  • a 0 , a 1 ,...,a X-1 may represent the pairwise different X matrices in the first encoding coefficient set above.
  • a 0 ,a 1 ,...,a X-1 can represent Two different X matrices in .
  • a codeword in the coding coefficient codebook includes X matrices.
  • the codeword can be expressed as or Different codewords in the coding coefficient codebook correspond to different a l , the index of the codeword has a corresponding relationship with l, or the index of the codeword has a corresponding relationship with a l , a l represents the matrix in the coding coefficient set, and l is The index of a l in the set of encoded coefficients.
  • a l may be a matrix in the first encoding coefficient set above.
  • a l could be In the matrix, when a l is , l is In the set of coded coefficients index in .
  • a l can also be matrix in .
  • the value of l can be [1, L+1] or [0, L].
  • the matrix representation of the coding coefficient codebook can be Among them, a row in the coding coefficient codebook is a codeword, 1 ⁇ l ⁇ L+1, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the matrix representation of the coding coefficient codebook can also be Among them, a column in the coding coefficient codebook is a codeword, 1 ⁇ l ⁇ L+1, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the matrix representation of the coding coefficient codebook can be Among them, a column in the coding coefficient codebook is a codeword, 0 ⁇ l ⁇ L, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the matrix representation of the coding coefficient codebook can also be Among them, a row in the coding coefficient codebook is a codeword, 0 ⁇ l ⁇ L, there are (L+1) codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the value of the above-mentioned X may be less than or equal to L+1, and X is a positive integer.
  • Code word is or
  • the X residues obtained by dividing p 0 , p 1 ,...,p X-1 by (L+1) respectively are X values that are different in pairs in [0, L].
  • a codeword in the coding coefficient codebook includes X matrices.
  • the indices of the X matrices can be 0, 1, ..., X-1.
  • the codeword can be expressed as or Among them, 0 ⁇ p l %(2 L ) ⁇ 2 L -1, the values of p l %(2 L ) corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword is the same as p l %(2 L ) has a corresponding relationship.
  • the value range of p l is [0,2 L -1], that is, 0 ⁇ p l ⁇ 2 L -1.
  • the values of p l corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword has a corresponding relationship with p l .
  • the matrix representation of the coding coefficient codebook can be Among them, a column in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ 2 L -1, there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the matrix representation of the coding coefficient codebook can also be Among them, a row in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ 2 L -1, there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the indices of the X matrices can be 1, 2, . . . , X.
  • the codeword can be expressed as or Among them, where 0 ⁇ p l %(2 L ) ⁇ 2 L -1, the values of p l %(2 L ) corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword is the same as p l % (2 L ) has a corresponding relationship.
  • the value range of p l is [0,2 L -1], that is, 0 ⁇ p l ⁇ 2 L -1.
  • the values of p l corresponding to different codewords in the coding coefficient codebook are different, and the index of the codeword has a corresponding relationship with p l .
  • the matrix representation of the coding coefficient codebook can be Among them, a column in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ 2 L -1, there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the matrix representation of the coding coefficient codebook can also be Among them, a row in the coding coefficient codebook is a codeword, 0 ⁇ p l ⁇ 2 L -1, there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the value of the above X may be less than or equal to 2 L , and X is a positive integer.
  • a 0 , a 1 ,...,a X-1 can represent X matrices that are pairwise different in the encoding coefficient set.
  • the X matrices included in a codeword may be the X matrices in the second encoding coefficient set above.
  • a 0 , a 1 ,...,a X-1 may represent the pairwise different X matrices in the second encoding coefficient set above.
  • a 0 , a 1 ,...,a X-1 can represent X matrices that are different in pairs in ⁇ I,A,A 2 ,...,A 2L-1 ⁇ .
  • a 1 , a 2 ,..., a X can represent two different X matrices in the encoding coefficient set.
  • the X matrices included in a codeword may be the X matrices in the second encoding coefficient set above.
  • a 1 , a 2 ,..., a X may represent X matrices that are different in pair in the second encoding coefficient set above.
  • a 1 , a 2 ,...,a X can represent X matrices in ⁇ I,A,A 2 ,...,A 2L-1 ⁇ that are different in pairs.
  • a codeword in the coding coefficient codebook includes X matrices.
  • the codeword can be expressed as or Different code words in the coding coefficient codebook correspond to different a l , and the index of the code word has a corresponding relationship with l, a l represents the matrix in the coding coefficient set, and l is the index of a l in the coding coefficient set.
  • a l may be a matrix in the second encoding coefficient set above. For example, a l could be In the matrix, when a l is A, l is A in the coding coefficient set index in .
  • the value of l can be [1, 2 L ] or [0, 2 L -1].
  • the representation of the coding coefficient codebook can be Among them, a column in the coding coefficient codebook is a codeword, 0 ⁇ l ⁇ 2 L -1, there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the representation form of the coding coefficient codebook can also be Among them, a row in the coding coefficient codebook is a codeword, 0 ⁇ l ⁇ 2 L -1, there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the representation of the coding coefficient codebook can be Among them, a column in the coding coefficient codebook is a codeword, 1 ⁇ l ⁇ 2 L , there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the representation form of the coding coefficient codebook can also be Among them, a row in the coding coefficient codebook is a codeword, 1 ⁇ l ⁇ 2 L , there are 2 L codewords in the coding coefficient codebook, and there are X matrices in a codeword.
  • the value of the above X may be less than or equal to 2 L , and X is a positive integer.
  • the coding coefficient codebook is expressed in the form of a matrix, that is, a coding coefficient codebook can be expressed as a coding coefficient codebook matrix, and a coding coefficient codebook matrix representation A row or a column in is a codeword.
  • the coding coefficient codebook may also be embodied in other forms, such as a table form, or may represent a group of codewords in any other form of expression. As long as it can indicate that the coding coefficient codebook includes multiple codewords, and these codewords can be indicated by index numbers.
  • a codeword in the coding coefficient codebook includes X matrices.
  • the X matrices included in a codeword in the coding coefficient codebook may be the X matrices in the first coding coefficient set above, where K ⁇ X ⁇ L+1.
  • the table representation of the coding coefficient codebook may be as shown in the following table.
  • each codeword includes X matrices, which can be regarded as a coding coefficient matrix composed of X matrices.
  • the subscript XL ⁇ L of each codeword indicates the dimension of the codeword/coding coefficient matrix, which is XL rows and L columns.
  • the index value of the code word is [0, L]. It can be understood that the index value of the code word can also be [1, L+1]. If the tabular representation of the coding coefficient codebook in Table 4-1 is converted into a matrix representation, it can also be compared with the matrix in the second representation above Corresponding, among them, a l is matrix in .
  • the value of X in Table 4-1 can be greater than or equal to K and less than or equal to L+1.
  • Table 4-1 can be expressed as Table 4-2.
  • Table 4-1 can be expressed as Table 4-3.
  • each codeword includes X matrices, which can be regarded as a coding coefficient matrix composed of X matrices.
  • the subscript L ⁇ XL of each codeword indicates the dimension of the codeword/coding coefficient matrix, which is L rows XL columns.
  • the index value of the code word is [0, L]. It can be understood that the index value of the code word can also be [1, L+1]. If the tabular representation of the coding coefficient codebook in Table 5-1 is converted into a matrix representation, it can also be compared with the matrix in the second representation above Corresponding, among them, a l is matrix in .
  • the value of X in Table 5-1 can be greater than or equal to K and less than or equal to L+1.
  • Table 5-1 can be expressed as Table 5-2.
  • Table 5-1 can be expressed as Table 5-3.
  • a codeword in the coding coefficient codebook includes X matrices.
  • the X matrices included in a codeword in the coding coefficient codebook may be the X matrices in the first coding coefficient set above, where K ⁇ X ⁇ L+1.
  • the table form of the coding coefficient codebook may also be shown in the following table.
  • each codeword includes X matrices, which can be regarded as a coding coefficient matrix composed of X matrices.
  • the subscript XL ⁇ L of each codeword indicates the dimension of the codeword/coding coefficient matrix, which is XL rows and L columns.
  • the index value of the code word is [0, L]. It can be understood that the index value of the code word can also be [1, L+1]. If the tabular representation of the coding coefficient codebook in Table 6-1 is converted into a matrix representation, it can also be compared with the matrix in the second representation above. Corresponding, where a 0 ,a 1 ,...,a X-1 can represent Two different X matrices in .
  • Table 6-1 The value of X in Table 6-1 can be greater than or equal to K and less than or equal to L+1.
  • Table 6-1 can be expressed as Table 6-2.
  • Table 6-1 can be expressed as Table 6-3.
  • each codeword includes X matrices, which can be regarded as a coding coefficient matrix composed of X matrices.
  • the subscript L ⁇ XL of each codeword indicates the dimension of the codeword/coding coefficient matrix, which is L rows XL columns.
  • the index value of the code word is [0, L]. It can be understood that the index value of the code word can also be [1, L+1]. If the tabular representation of the coding coefficient codebook in Table 7-1 is converted into a matrix representation, it can also be compared with the matrix in the second representation above Corresponding, where a 0 ,a 1 ,...,a X-1 can represent Two different X matrices in .
  • Table 7-1 The value of X in Table 7-1 can be greater than or equal to K and less than or equal to L+1.
  • Table 7-1 can be expressed as Table 7-2.
  • Table 7-1 can be expressed as Table 7-3.
  • the coding coefficient codebook is only related to the parameter L, that is to say, each of the coding coefficient codebooks
  • the codeword is composed of (L+1) L ⁇ L-dimensional matrices. If the number K of data packets to be encoded is not greater than L+1, then any K matrices in the codeword can be selected as the encoding coefficients of the K data packets to be encoded. Further, selection rules can also be predefined, such as selecting The first K matrices of each codeword, the last K matrices of each codeword are selected, and so on.
  • a codeword in the coding coefficient codebook includes X matrices.
  • the X matrices included in one codeword in the coding coefficient codebook may be the X matrices in the second coding coefficient set above, K ⁇ X ⁇ 2 L .
  • the table form of the coding coefficient codebook can be shown in Table 8-1, Table 8-2, Table 8-3 or Table 9-1, Table 9-2, Table 9-3.
  • each codeword includes X matrices, which can be regarded as a coding coefficient matrix composed of X matrices.
  • the subscript XL ⁇ L of each codeword indicates the dimension of the codeword/coding coefficient matrix, which is XL rows and L columns.
  • the index value of the codeword is [0, 2 L -1]. It is understandable that the index value of the codeword can also be [1, 2 L ]. If the tabular representation of the coding coefficient codebook in Table 8-1 is converted into a matrix representation, it can also be compared with the matrix in the fourth representation above Corresponding, among them, which is a l is In the matrix, l is the subscript of a l , and the value range of l is 0 ⁇ l ⁇ 2 L -1. can also be considered yes 2 L -1 matrices that are pairwise different in .
  • Table 8-1 The value of X in Table 8-1 can be greater than or equal to K and less than or equal to 2 L.
  • Table 8-1 can be expressed as Table 8-2.
  • Table 8-1 can be expressed as Table 8-3.
  • each codeword includes X matrices, which can be regarded as a coding coefficient matrix composed of X matrices.
  • the subscript L ⁇ XL of each codeword indicates the dimension of the codeword/coding coefficient matrix, which is L rows XL columns.
  • the index value of the code word is [0, L]. It can be understood that the index value of the code word can also be [1, L+1]. If the tabular representation of the coding coefficient codebook in Table 9-1 is converted into a matrix representation, it can also be compared with the matrix in the second representation above Corresponding, among them, which is a l is In the matrix, l is the subscript of a l , and the value range of l is 0 ⁇ l ⁇ 2 L -1. can also be considered yes 2 L -1 matrices that are pairwise different in .
  • Table 9-1 The value of X in Table 9-1 can be greater than or equal to K and less than or equal to 2 L.
  • Table 9-1 can be expressed as Table 9-2.
  • Table 9-1 can be expressed as Table 9-3.
  • each codeword in the coding coefficient codebook is composed of 2 L L ⁇ L dimension matrix composition. If the number K of data packets to be encoded is not greater than 2 L , then any K matrices in the codeword can be selected as the encoding coefficients of the K data packets to be encoded. Further, selection rules can also be predefined, such as selecting each K matrices before each codeword, select the last K matrices of each codeword, etc.
  • the transmitting end and the receiving end can pre-store or pre-define coding coefficient codebooks.
  • codebooks including L +1 codewords, and some include 2L codewords codebook of characters.
  • the pre-stored or predefined codebook of coding coefficients may be composed of some codewords in the above-mentioned example codebook.
  • the pre-stored or predefined coding coefficient codebook may be composed of partial codewords of a codebook including L+1 codewords, that is, the number of codewords in the pre-stored or predefined coding coefficient codebook may be small
  • the number of codewords in the pre-stored or predefined coding coefficient codebook can be represented by Y1
  • Y1 codewords can be any Y1 codewords in the codebook including L+1 codewords consist of.
  • the pre-stored or predefined coding coefficient codebook may be composed of partial codewords of a codebook including 2 L codewords, that is, the number of codewords in the pre-stored or predefined coding coefficient codebook may be small
  • the number of codewords in the pre-stored or predefined coding coefficient codebook can be represented by Y2
  • Y2 codewords can be composed of any Y2 codewords in the codebook including 2L codewords .
  • the above-mentioned table representation of the coding coefficient codebook is only an example, and the above-mentioned table representation of the coding coefficient codebook can be transformed or deformed, for example, the index column and The codeword columns are interchanged.
  • the coding coefficient codebook can transform or deform the coding coefficient codebook, for example, only some of the codewords in the above coding coefficient codebook can be used as the codebook; and
  • the encoding coefficient matrix formed by the codewords of the encoding coefficient codebook can perform arbitrary row-column transformations to obtain a transformation matrix, and disassemble the transformation matrix into new codewords with the same dimensions as the original codewords as the new codewords in the encoding coefficient codebook numbers.
  • the matrix elements included in the codewords in the coding coefficient codebook may be partially transformed.
  • the K matrices in the coding coefficient codebook may select other K matrices different from the above example.
  • the embodiment of the present application also provides a network decoding method, as shown in FIG. 7 , and the specific implementation process of the method is as follows.
  • the subject of execution of the method is the receiving end or the decoding end, and the receiving end or the decoding end may be a terminal device or a network device. If the receiving end or decoding end is a terminal device, the sending end or encoding end can be a network device. If the receiving end or decoding end is a network device, the sending end or encoding end can be a terminal device.
  • the encoding packet carries indication information, and the indication information is used to indicate the K encoding coefficients used in the encoding process.
  • the K encoding coefficients are in one-to-one correspondence with the K original data packets, and the non-zero encoding coefficients in the K encoding coefficients are Matrix, the dimension of the matrix is L ⁇ L, K and L are both integers greater than 1.
  • the data to be decoded may also include a system packet, and the decoding is to decode the system packet and the coded packet together to obtain the K original data packets.
  • the number of encoding packets is one or more.
  • the number of the data to be decoded is not less than K.
  • the network decoding method has the same or corresponding process as the network coding method.
  • the original data packet may correspond to the data packet to be encoded in the encoding process.
  • the indication information indicates K coding coefficients.
  • Each encoding packet carries a corresponding random seed or identifier of the encoding packet, and the random seed or identifier of the encoding packet may indicate K encoding coefficients.
  • the receiving end can use the identity of the random seed/encoding packet to determine the K encoding coefficients through the same process. For example, the receiving end obtains the same set of random number sequences as the sending end according to the identity of the random seed/encoded packet, selects the same K random numbers, and uses the same method to determine the K indices and the K indices corresponding to the K indices. coding coefficients. The receiving end performs decoding according to the K coding coefficients.
  • the sending end and the receiving end can pre-store or pre-define the coding coefficient codebook, and each codeword in the coding coefficient codebook has a corresponding index, through the code
  • the index of the word indicates the X matrices corresponding to the code word.
  • K matrices among the X matrices can be selected as the K coding coefficients.
  • Each encoding packet has corresponding indication information, and the indication information indicates the codeword corresponding to the encoding packet.
  • the header of the encoded packet also carries the number K of the original data packets.
  • Figure 8 shows the performance comparison of several coding schemes respectively.
  • the dotted line represents the scheme based on the embodiment of Fig. 5 and the encoding coefficient is randomly selected in GF (2), that is, the scheme of RLNC on the prior art GF (2);
  • the triangle represents the embodiment based on Fig. 5 and the encoding coefficient is GF ( 8), the scheme of the numerical value randomly selected in the prior art GF (8);
  • the circle represents the scheme based on the embodiment of Fig. 5 and the coding coefficient is the numerical value randomly selected in GF (256), that is, the present There is a scheme for RLNC on technology GF(256).
  • the diamond represents the scheme based on the first set of encoding coefficients and indicates the encoding coefficients based on the random seed or the identification of the encoding package, and the asterisk indicates the scheme based on the second encoding coefficient set and indicating the encoding coefficients based on the random seed or the identification of the encoding package .
  • the coding coefficient is a matrix of a binary field, so that the multiplication of the finite field is converted into an XOR operation of the binary field, which can avoid the high-complexity finite field multiplication of the embodiment in Figure 5 , there may only be an XOR operation of the binary field, and the complexity is equivalent to that of the scheme in the embodiment of Fig. 5 when the coding coefficient is GF(2), but the performance is much better than that in the scheme of the embodiment in Fig. 5 The performance of the coding coefficient being GF(2) is almost close to the performance of the coding coefficient being GF(256) in the scheme of the embodiment in FIG. 5 .
  • the vertical axis is the final residual packet loss rate after network coding error correction.
  • the lower the residual packet loss rate of different coding schemes the better the corresponding coding scheme. It can be seen that the performances of the diamond coding scheme and the asterisk coding scheme are close to the performance of the coding coefficient GF(256) in the scheme of the embodiment in FIG. 5 .
  • Figure 9 shows the performance comparison of several coding schemes respectively.
  • the coding scheme represented by various lines is the same as that in FIG. 8 , and the description in FIG. 8 may be referred to.
  • the vertical axis is the final residual packet loss rate after network coding error correction. Under the same channel packet loss rate, the lower the residual packet loss rate of different coding schemes, the better the corresponding coding scheme. It can be seen that the performances of the diamond coding scheme and the asterisk coding scheme are close to the performance of the coding coefficient GF(256) in the scheme of the embodiment in FIG. 5 .
  • the corresponding relationships shown in the tables 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.
  • the network coding device and the network decoding device may include hardware structures and/or software modules, to The above-mentioned functions are realized in the form of a hardware structure, a software module, or a hardware structure plus a software module. Whether one of the above-mentioned functions is executed in the form of a hardware structure, a software module, or a hardware structure plus a software module depends on the specific application and design constraints of the technical solution.
  • the embodiment of the present application also provides a network coding device 1000
  • the network coding device 1000 can be a network coding device, or a device in a network coding device, or can be compatible with The network encoding device matches the device used.
  • the network coding apparatus 1000 may be a terminal device or a network device.
  • the network coding device 1000 may include modules corresponding to one-to-one execution of the methods/operations/steps/actions involved in the network coding method in the above method embodiments, and the modules may be hardware circuits, software, or It can be implemented by combining hardware circuits with software.
  • the network coding apparatus 1000 may include a processing module 1001 and an input and output module 1002 .
  • the processing module 1001 is used to encode K data packets to be encoded to generate encoded packets; wherein, the encoded packets carry indication information, and the indication information is used to indicate the K encoding coefficients used to generate the encoded packets.
  • K There is a one-to-one correspondence between the coding coefficients and the K data packets to be coded.
  • the non-zero coding coefficients in the K coding coefficients are all matrices.
  • the dimension of the matrix is L ⁇ L, and both K and L are integers greater than 1.
  • the input and output module 1002 is used for sending coded packets.
  • the processing module 1001 may also perform other operations of the network coding method in the foregoing method embodiments, which will not be repeated here.
  • the embodiment of the present application also provides a network decoding device 1100
  • the network decoding device 1100 can be a network decoding device, or a device in the network decoding device, Or a device that can be used in conjunction with a network decoding device.
  • the network decoding apparatus 1100 may be a terminal device or a network device.
  • the network decoding device 1100 may include a one-to-one corresponding module for performing the methods/operations/steps/actions involved in the network decoding method in the above method embodiment, and the module may be a hardware circuit or a software , and can also be implemented by combining hardware circuits with software.
  • the network decoding apparatus 1100 may include a processing module 1101 and an input and output module 1102 .
  • the input and output module 1102 is used to obtain the data to be decoded.
  • the data to be decoded includes an encoding packet, and the encoding packet carries indication information.
  • the indication information is used to indicate the K encoding coefficients used in the encoding process, and the K encoding coefficients and K There is a one-to-one correspondence between the original data packets, and the non-zero coding coefficients in the K coding coefficients are all matrices, and the dimension of the matrix is L ⁇ L, and both K and L are integers greater than 1.
  • the processing module 1101 is configured to decode the data to be decoded according to the instruction information, and obtain K original data packets.
  • the processing module 1101 may also perform other operations of the network decoding method in the foregoing method embodiments, which will not be repeated here.
  • each functional module in each embodiment of the present application can be integrated into a processing In the controller, it can also be physically present separately, or two or more modules can be integrated into one module.
  • the above-mentioned integrated modules can be implemented in the form of hardware or in the form of software function modules.
  • a network coding apparatus 1200 provided in the embodiment of the present application is used to implement the network coding method provided in the present application.
  • the network coding device 1200 may be a device located in the network coding device, or a network coding device, or a device that can be matched with the network coding device.
  • the network coding apparatus 1200 may be a terminal device or a network device.
  • the network coding apparatus 1200 may be a system on a chip or a chip. In the embodiment of the present application, the system-on-a-chip may be composed of chips, or may include chips and other discrete devices.
  • the network coding apparatus 1200 includes at least one processor 1220, configured to implement the network coding method provided in the embodiment of the present application.
  • the network coding device 1200 may also include an input and output interface 1210 .
  • the input and output interface 1210 is used to communicate with other devices through a transmission medium.
  • the network encoding device 1200 is a chip, it communicates with other chips or devices through the input and output interface 1210 .
  • the processor 1220 is configured to implement the methods described in the foregoing method embodiments.
  • the processor 1220 is configured to encode K data packets to be encoded to generate encoded packets; wherein, the encoded packets carry indication information, and the indication information is used to indicate the K encoding coefficients used to generate the encoded packets.
  • K There is a one-to-one correspondence between the coding coefficients and the K data packets to be coded.
  • the non-zero coding coefficients in the K coding coefficients are all matrices.
  • the dimension of the matrix is L ⁇ L, and both K and L are integers greater than 1.
  • the input and output interface 1210 is used for sending coded packets.
  • the processor 1220 may also perform other operations of the network coding method in the foregoing method embodiments, which will not be repeated here.
  • the network encoding device 1200 may further include at least one memory 1230 for storing program instructions and/or data.
  • the memory 1230 is coupled to the processor 1220 .
  • the coupling in the embodiments of the present application is an indirect coupling or a communication connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
  • Processor 1220 may cooperate with memory 1230 .
  • Processor 1220 may execute program instructions stored in memory 1230 . At least one of the at least one memory may be integrated with the processor.
  • a network decoding device 1300 provided in the embodiment of the present application is used to implement the network coding method provided in the present application.
  • the network decoding device 1300 may be a device located in the network decoding device, or a network decoding device, or a device that can be matched with the network decoding device.
  • the network decoding apparatus 1300 may be a terminal device or a network device.
  • the network decoding device 1300 may be a system-on-a-chip or a chip. In the embodiment of the present application, the system-on-a-chip may be composed of chips, or may include chips and other discrete devices.
  • the network decoding apparatus 1300 includes at least one processor 1320, configured to implement the network decoding method provided in the embodiment of the present application.
  • the network decoding device 1300 may also include an input and output interface 1310 .
  • the input and output interface 1310 is used to communicate with other devices through a transmission medium.
  • the network decoding device 1300 is a chip, it communicates with other chips or devices through the input and output interface 1310 .
  • the processor 1320 is configured to implement the methods described in the foregoing method embodiments.
  • the input and output interface 1310 is used to obtain the data to be decoded, the data to be decoded includes an encoding packet, and the encoding packet carries indication information, the indication information is used to indicate the K encoding coefficients used in the encoding process, and the K encoding coefficients One-to-one correspondence with the K original data packets, the non-zero coding coefficients in the K coding coefficients are all matrices, the dimension of the matrix is L ⁇ L, and both K and L are integers greater than 1.
  • the processor 1320 is configured to decode the data to be decoded according to the indication information, and obtain K original data packets.
  • the processor 1320 may also perform other operations of the network decoding method in the foregoing method embodiments, which will not be repeated here.
  • the processor 1320 may also perform other operations of the network decoding method in the foregoing method embodiments, which will not be repeated here.
  • the network decoding device 1300 may also include at least one memory 1330 for storing program instructions and/or data.
  • the memory 1330 is coupled to the processor 1320 .
  • the coupling in the embodiments of the present application is an indirect coupling or a communication connection between devices, units or modules, which may be in electrical, mechanical or other forms, and is used for information exchange between devices, units or modules.
  • Processor 1320 may cooperate with memory 1330 .
  • Processor 1320 may execute program instructions stored in memory 1330 . At least one of the at least one memory may be integrated with the processor.
  • the processor may be an integrated circuit chip, which has a signal processing capability.
  • 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.
  • DSP digital signal processor
  • ASIC application specific integrated circuit
  • FPGA field programmable gate array
  • 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 communication device provided in the embodiment of the present application is used to implement the method provided in the present application.
  • the communication device may be used to implement the network coding method provided in the embodiment of the present application, and may also be used to implement the network decoding method provided in the embodiment of the present application.
  • the communication device may be a network coding device, a device located in the network coding device, or a device capable of matching with the network coding device.
  • the communication device may be a network decoding device, a device located in the network decoding device, or a device capable of matching with the network decoding device.
  • the communication device may be a chip system or a chip.
  • the system-on-a-chip may be composed of chips, or may include chips and other discrete devices. Part or all of the methods provided in the above embodiments may be implemented by hardware or by software.
  • the communication device includes: an input interface circuit, a logic circuit, and an output interface circuit.
  • the input interface circuit is used to acquire K data packets to be encoded.
  • a logic circuit is used to encode K data packets to be encoded to generate encoded packets; wherein, the encoded packets carry instruction information, and the instruction information is used to indicate the K encoding coefficients used to generate the encoded packets.
  • K The encoding coefficients correspond to the K data packets to be encoded one-to-one, and the non-zero encoding coefficients in the K encoding coefficients are all matrices, and the dimension of the matrix is L ⁇ L, and both K and L are integers greater than 1.
  • the output interface circuit is used for sending encoding packets.
  • the input interface circuit is used to obtain the data to be decoded, the data to be decoded includes a coded packet, and the coded packet carries indication information, and the indication information is used to indicate the data to be decoded in the encoding process
  • the K coding coefficients used correspond one-to-one to the K original data packets.
  • the non-zero coding coefficients in the K coding coefficients are all matrices, and the dimension of the matrix is L ⁇ L. Both K and L are greater than 1. an integer of .
  • the logic circuit is used to decode the data to be decoded according to the indication information, and obtain K original data packets.
  • the logic circuit may also perform other operations of the network coding method or the network decoding method in the foregoing method embodiments, which will not be repeated here.
  • the communication device may be a chip or an integrated circuit during specific implementation.
  • Part or all of the operations and functions performed by the network encoding device, network decoding device, and communication device described in the above method embodiments of the present application may be implemented by a chip or an integrated circuit.
  • An embodiment of the present application provides a computer-readable storage medium storing a computer program, where the computer program includes instructions for executing the foregoing method embodiments.
  • the embodiment of the present application provides a computer program product including instructions, which when run on a computer, causes the computer to execute the above method embodiment.
  • 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 (eg, coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (eg, infrared, wireless, microwave, etc.) means.
  • 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 DVD), or 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 displayed 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.
  • the embodiments of the present application may be provided as methods, systems, or computer program products. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • These computer program instructions may also be stored in a computer-readable memory capable of directing a computer or other programmable data processing apparatus to operate in a specific manner, such that the instructions stored in the computer-readable memory produce an article of manufacture comprising instruction means, the instructions
  • the device realizes the function specified in one or more procedures of the flowchart and/or one or more blocks of the block diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请公开了一种网络编码方法及装置,以期提高网络编码的纠错能力。该方法为:编码端对K个待编码数据包进行编码,生成并发送编码包;其中,编码包携带指示信息,指示信息用于指示生成编码包所使用的K个编码系数,该K个编码系数与该K个待编码数据包一一对应,该K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。译码端获取待译码数据,待译码数据包括编码包,编码包携带指示信息,指示信息用于指示编码过程中所使用的K个编码系数,K个编码系数与K个原始数据包一一对应;根据指示信息对待译码数据进行译码,获得K个原始数据包。该方法可以应用于扩展现实XR业务或其他低时延业务。

Description

一种网络编码方法及装置
相关申请的交叉引用
本申请要求在2021年06月25日提交中华人民共和国知识产权局、申请号为202110713504.8、申请名称为“一种网络编码方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种网络编码方法及装置。
背景技术
在无线通信系统中,为了保证业务传输的可靠性,一般会采用重传机制。例如,长期演进(long term evolution,LTE)或新空口(new radio,NR)系统中引入两类重传机制来保证业务的可靠性。一类是基于反馈信息的请求重传机制,包括媒体接入控制(medium access control,MAC)层的混合自动重传请求(hybrid automatic repeat request,HARQ)和无线链路控制(radio link control,RLC)层的自动重传请求(automatic repeat request,ARQ)机制。另一类是不需要反馈信息的重传机制,例如,盲重传。盲重传即发送端在没有收到接收端的HARQ反馈信息的情况下,就会向接收端重复发送数据。
由于空口传输时延、接收端数据处理时延以及协议规定的反馈时机的限制,基于反馈的重传机制时延比较大。盲重传因为不需要基于反馈信息进行重传,虽然可以降低时延,但无论初传数据正确与否都占用资源进行重传,频谱效率很低。
针对上述HARQ或盲重传存在的问题,可以采用网络编码技术对数据包进行网络编码,通过传输网络编码包来兼顾时延和频谱效率性能。而现阶段,网络编码性能并不理想,需要进一步提高。
发明内容
本申请实施例提供一种网络编码方法及装置,以期提高网络编码性能,比如提高网络编码的纠错能力。
第一方面,提供一种网络编码方法,该方法可以由编码装置执行,也可以由编码装置的部件(例如处理器、芯片、电路或芯片系统等)执行。该编码装置也可以称为发送端或编码端,该编码装置可以是终端设备,也可以是网络设备。该方法可以通过以下步骤实现:对K个待编码数据包进行编码,生成编码包,发送该编码包;其中,编码包携带指示信息,指示信息用于指示生成编码包所使用的K个编码系数,在编码过程中该K个编码系数与该K个待编码数据包一一对应,该K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。通过编码包携带包含K个待编码数据包的K个编码系数的指示信息,且编码包是基于K个编码系数和K个待编码数据包生成的,译码装置能够根据指示信息获得编码包的编码系数,从而进行译码以获得K个待编码数据包。
K个编码系数是K个L×L维矩阵,等价于对K×L个待编码数据进行编码,这样一起进行编码的待编码数据的大小相当于是K×L个,相较于编码系数为有限域中的数值的情况, 一起进行编码的待编码数据的大小变大了,这样有利于编码系数的线性无关特性。使用线性无关的编码系数进行编码能够获得较好的纠错能力,从而提升系统可靠性以及系统频谱效率。
第二方面,提供一种网络译码方法,该方法可以由译码装置执行,也可以由译码装置的部件(例如处理器、芯片、电路或芯片系统等)执行。该译码装置可以是终端设备,也可以是网络设备。该方法可以通过以下步骤实现:获取待译码数据,所述待译码数据携带指示信息,所述指示信息用于指示编码过程中所使用的K个编码系数,所述K个编码系数与所述K个原始数据包一一对应,所述K个编码系数中的非零编码系数均为矩阵,所述矩阵的维度为L×L,K、L均为大于1的整数;根据所述指示信息对所述待译码数据进行译码,获得所述K个原始数据包。通过编码包携带包含K个待编码数据包的K个编码系数的指示信息,且编码包是基于K个编码系数和K个待编码数据包生成的,译码装置能够根据指示信息获得编码包的编码系数,从而进行译码以获得K个待编码数据包。
以下结合第一方面和第二方面,提供一些可能的设计。
在一个可能的设计中,该指示信息为编码系数码本中一个码字的索引,该码字包括编码系数集合中的X个矩阵,编码系数集合包括有限数目的矩阵,其中,X≥K,K个编码系数为X个矩阵中的K个矩阵。通过一个码字的索引来指示K个编码系数,能够节省指示信息的开销,而且,通过使用预定义的编码系数码本中的码字中的矩阵作为编码系数进行编码,能够提升编码包的纠错能力,从而提升系统可靠性或系统频谱效率。
编码系数集合也可以包括L×L维的0矩阵,即矩阵中的元素全为0。这种情况下,生成编码包所使用的K个编码系数中如果存在编码系数为零,记为零编码系数,零编码系数对应编码系数集合中的0矩阵。非零编码系数即对应编码系数集合中的非0矩阵。
在一个可能的设计中,所述码字表示为
Figure PCTCN2022100513-appb-000001
Figure PCTCN2022100513-appb-000002
其中,0≤p l%(L+1)≤L,该编码系数码本中的不同码字对应的p l%(L+1)的取值不同,码字的索引与p l%(L+1)具有对应关系,其中,p l%(L+1)表示p l除以(L+1)的余数,
Figure PCTCN2022100513-appb-000003
分别为a 1,a 2,…,a X的p l次幂,a 1,a 2,…,a X为来自所述编码系数集合中的矩阵,X表示所述码字中所包括的矩阵的个数,编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。其中,循环移位矩阵的变换矩阵所对应的变换形式包括对循环移位矩阵进行左乘或右乘中的至少一项。不同编码包可以使用不同索引的码字进行编码,通过不同码字的索引可以尽量对应不同的码字,可以提高不同编码包对应的编码系数之间的线性无关性,提升编码包的有效性,以及提升编码包的纠错能力。另一方面,编码系数为循环移位矩阵或循环移位矩阵的变换矩阵,对待编码数据包进行编码时进行相应的循环移位操作和异或操作,这样可以进一步降低编码复杂度。
在一个可能的设计中,X≤L+1,a 1,a 2,…,a X表示编码系数集合中两两不同的X个矩阵。这样可以保证不同的码字索引对应的码字完全不同,进一步提升编码包的有效性或提升编码包的纠错能力,以及保证每个编码包对于接收端的译码都是有效的。
在一个可能的设计中,指示信息为编码系数码本中一个码字的索引,该码字可以表示为
Figure PCTCN2022100513-appb-000004
Figure PCTCN2022100513-appb-000005
所述编码系数码本中的不同码字对应不同的a l,所述码字的索引与l具有对应关系,a l表示所述编码系数集合中的矩阵,l为a l在所述编码系数集合中的索引,
Figure PCTCN2022100513-appb-000006
分别为a l的p 0,p 1,…,p X-1次幂,X表示所述码字中所包括的矩阵的个数,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。其中,循环移位矩阵的变换矩阵所对应的变换形式包括对循环移位矩阵进行左乘或右乘中的至少一项。不同编码包可以使用不同索引的码字进行编码,通过不同码字的索引可以尽 量对应不同的码字,可以提高不同编码包对应的编码系数之间的线性无关性,提升编码包的有效性,以及提升编码包的纠错能力。另一方面,编码系数为循环移位矩阵或循环移位矩阵的变换矩阵,对待编码数据包进行编码时进行相应的循环移位操作和异或操作,这样可以进一步降低编码复杂度。
在一个可能的设计中,X≤L+1,p 0,p 1,…,p X-1分别除以(L+1)得到的X个余数为[0,L]中两两不同的X个值。这样可以保证不同的码字索引对应的码字完全不同,进一步提升编码包的有效性或提升编码包的纠错能力,以及保证每个编码包对于接收端的译码都是有效的。
在一个可能的设计中,所述编码系数集合中的不同矩阵对应不同的循环移位矩阵,所述编码系数集合中为循环移位矩阵的变换矩阵时,所述编码系数集合中每个矩阵的循环移位矩阵的变换形式相同。其中,不同的循环移位矩阵可以为对单位矩阵循环移不同的位数得到的矩阵。将不同的循环移位矩阵或不同的循环移位矩阵的变换矩阵作为编码系数,对待编码数据包进行编码时:对待编码的数据包进行相应的循环移位操作和异或操作;或者对待编码的数据包进行相同的变换操作再进行相应的循环移位操作和异或操作;或者对待编码的数据包进行循环移位操作和异或操作再进行相同的变换操作;或者对待编码的数据包进行相同的变换操作再进行相应的循环移位操作和异或操作,再进行另一种相同的变换操作。从而可以降低编码复杂度。
在一个可能的设计中,所述编码系数集合中的矩阵的数目小于或等于L+1个。
在一个可能的设计中,所述编码系数集合中的矩阵满足
Figure PCTCN2022100513-appb-000007
其中,M满足0≤M%(L+1)≤L,
Figure PCTCN2022100513-appb-000008
表示对(L+1)×(L+1)的单位矩阵循环移M位得到的矩阵;
Figure PCTCN2022100513-appb-000009
表示(L+1)×(L+1)的循环移位矩阵,该循环移位矩阵为对(L+1)×(L+1)的单位矩阵循环移M位得到的矩阵,其中,M%(L+1)=1,其中,循环移位矩阵也称为循环置换矩阵,
Figure PCTCN2022100513-appb-000010
其中,G为L×(L+1)的矩阵,
Figure PCTCN2022100513-appb-000011
其中,H为(L+1)×L的矩阵。
在一个可能的设计中,指示信息为编码系数码本中一个码字的索引,该码字可以表示为
Figure PCTCN2022100513-appb-000012
Figure PCTCN2022100513-appb-000013
其中,0≤p l%(2 L)≤2 L-1,
Figure PCTCN2022100513-appb-000014
表示a 0,a 1,…,a X-1的p l次幂,X表示所述码字中所包括的矩阵的个数,编码系数码本中的不同码字对应的p l%(2 L)的取值不同,该码字的索引与p l%(2 L)具有对应关系,编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,此处变换矩阵可以是指进行行列变换后的矩阵。N满足0≤N%2 L≤(2 L-1),p l%(2 L)表示p l除以2 L的余数,N%2 L表示N除以2 L的余数,2 L表示2的L次幂。不同编码包可以使用不同索引的码字进行编码,通过不同码字的索引可以尽量对应不同的码字,可以提高不同编码包对应的编码系数之间的线性无关性,提升编码包的有效性,以及提升编码包的纠错能力。而且,编码系数为原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,对于相同的L,不同的编码系数的数量可以达到2 L,从而可以获得更多的码字数量,或者码字的维度,即码字所包括的编码系数的个数,可以更大,从而能够支持生成更多不同的编码包或者支持更多的待编码数据包一起编码,从而应对信道质量差的场景,提升系统的 可靠性。
在一个可能的设计中,X≤2 L,a 0,a 1,…,a X-1表示所述编码系数集合中两两不同的X个矩阵。这样可以保证不同的码字索引对应的码字完全不同,进一步提升编码包的有效性或提升编码包的纠错能力,以及保证每个编码包对于接收端的译码都是有效的。
在一个可能的设计中,所述码字表示为
Figure PCTCN2022100513-appb-000015
Figure PCTCN2022100513-appb-000016
所述编码系数码本中的不同码字对应不同的a l
Figure PCTCN2022100513-appb-000017
分别为a l的p 0,p 1,…,p X-1次幂,X表示所述码字中所包括的矩阵的个数,所述码字的索引与l具有对应关系,a l表示所述编码系数集合中的矩阵,l为a l在所述编码系数集合中的索引,所述编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1)。不同编码包可以使用不同索引的码字进行编码,通过不同码字的索引可以尽量对应不同的码字,可以提高不同编码包对应的编码系数之间的线性无关性,提升编码包的有效性,以及提升编码包的纠错能力。而且,编码系数为原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,对于相同的L,不同的编码系数的数量可以达到2 L,从而可以获得更多的码字数量,或者码字的维度可以更大,从而能够支持生成更多不同的编码包或者支持更多的待编码数据包一起编码,从而应对信道质量差的场景,提升系统的可靠性。
在一个可能的设计中,X≤2 L,p 0,p 1,…,p X-1分别除以2 L得到的X个余数为[0,2 L-1]中两两不同的X个值。这样可以保证不同的码字索引对应的码字完全不同,进一步提升编码包的有效性或提升编码包的纠错能力,以及保证每个编码包对于接收端的译码都是有效的。
在一个可能的设计中,所述编码系数集合中的不同矩阵对应的N%2 L取值不同。
在一个可能的设计中,所述编码系数集合中的矩阵的数目小于或等于2 L个。
在一个可能的设计中,所述本原多项式的友矩阵为A;
其中,
Figure PCTCN2022100513-appb-000018
或A为
Figure PCTCN2022100513-appb-000019
的行列变换矩阵;
A中的列向量[a L-1…a 1a 0]对应的本原多项式f(x)=a 0+a 1x+…a L-1x L-1+x L为伽罗华域GF(2 L)的本原多项式中的任意一个。形式为f(x)=a 0+a 1x+…a L-1x L-1+x L的本原多项式,其友矩阵为
Figure PCTCN2022100513-appb-000020
在一个可能的设计中,所述指示信息为随机种子或所述编码包的标识,所述随机种子或所述编码包的标识用于确定所述K个编码系数在编码系数集合中的索引,所述编码系数集合包括有限数目的矩阵。通过随机种子或者编码包的标识来指示K个编码系数,能够节省指示信息的开销。
在一个可能的设计中,所述随机种子或所述编码包的标识对应K个随机数,所述K个随机数用于确定所述K个编码系数在编码系数集合中的索引。
在一个可能的设计中,所述随机种子或所述标识与所述K个编码系数在编码系数集合中的索引具有对应关系,所述对应关系满足:所述K个编码系数在编码系数集合中的索引是所述随机种子或所述标识的函数。
在一个可能的设计中,所述函数满足:基于所述随机种子或所述标识的随机函数生成 K个值,基于所述K个值进行取余操作。
在一个可能的设计中,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。其中,循环移位矩阵的变换矩阵所对应的变换形式包括对循环移位矩阵进行左乘或右乘中的至少一项。
在一个可能的设计中,所述编码包的标识包括序列号、或者编码包在编码块中的标识ID。其中,编码块可以在包括所述待编码数据包之外,还可以包括所述编码包,即,所述编码块为包含所述待编码数据包和所述编码包的集合,所述编码包在编码块中的ID为所述编码包在所述待编码数据包和所述编码包的集合中的索引。
在一个可能的设计中,所述编码系数集合中的不同矩阵对应不同的循环移位矩阵不同,所述编码系数集合中为循环移位矩阵的变换矩阵时,所述编码系数集合中每个矩阵的循环移位矩阵的变换形式相同,循环移位矩阵的变换形式包括对循环移位矩阵进行左乘或右乘中的至少一项。其中,不同的循环移位矩阵为对单位矩阵循环移不同的位数得到的矩阵。编码系数为循环移位矩阵或循环移位矩阵的变换矩阵,对待编码数据包进行编码时只需要进行相应的循环移位操作和异或操作,这样可以进一步降低编码复杂度。
在一个可能的设计中,所述编码系数集合中的矩阵的数目小于或等于L+1个。
在一个可能的设计中,所述编码系数集合中的矩阵满足
Figure PCTCN2022100513-appb-000021
其中,M满足0≤M%(L+1)≤L,
Figure PCTCN2022100513-appb-000022
表示对(L+1)×(L+1)的单位矩阵循环移M位得到的矩阵;
Figure PCTCN2022100513-appb-000023
表示(L+1)×(L+1)的循环移位矩阵,该循环移位矩阵为对(L+1)×(L+1)的单位矩阵循环移M位得到的矩阵,其中,M%(L+1)=1,
Figure PCTCN2022100513-appb-000024
Figure PCTCN2022100513-appb-000025
其中,G为L×(L+1)的矩阵,
Figure PCTCN2022100513-appb-000026
其中,H为(L+1)×L的矩阵。
在一个可能的设计中,所述编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1)。
在一个可能的设计中,所述编码系数集合中的不同矩阵对应的N取值不同。
在一个可能的设计中,所述编码系数集合中的矩阵的数目小于或等于2 L个。
在一个可能的设计中,所述本原多项式的友矩阵为A;
其中,
Figure PCTCN2022100513-appb-000027
或A为
Figure PCTCN2022100513-appb-000028
的行列变换矩阵;
A中的列向量[a L-1…a 1a 0]对应的本原多项式f(x)=a 0+a 1x+…a L-1x L-1+x L为伽罗华域GF(2 L)的本原多项式中的任意一个。
在一个可能的设计中,所述矩阵中的元素均为二元域中的元素。这样编译码过程涉及的是异或运算,可以避免使用有限域中高域元素间所涉及的乘法运算,从而降低编译码的复杂度。
第三方面,提供一种网络编码装置,该装置可以是网络编码装置,也可以是位于网络编码装置中的装置(例如,芯片,或者芯片系统,或者电路),或者是能够和网络编码装 置匹配使用的装置。该装置具有实现上述第一方面和第一方面的任一种可能的设计中的方法的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。一种设计中,该装置可以包括处理模块和输入输出模块。示例性地:处理模块,用于对K个待编码数据包进行编码,生成编码包;其中,所述编码包携带指示信息,所述指示信息用于指示生成所述编码包所使用的K个编码系数,在所述编码的过程中所述K个编码系数与所述K个待编码数据包一一对应,所述K个编码系数中的非零编码系数均为矩阵,所述矩阵的维度为L×L,K、L均为大于1的整数。输入输出模块用于发送所述编码包。
第四方面,提供一种网络译码装置,该装置可以是网络译码装置,也可以是位于网络译码装置中的装置(例如,芯片,或者芯片系统,或者电路),或者是能够和网络译码装置匹配使用的装置。该装置具有实现上述第二方面和第二方面的任一种可能的设计中的方法的功能。功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块。一种设计中,该装置可以包括处理模块和输入输出模块。示例性地:输入输出模块用于获取待译码数据,所述待译码数据携带指示信息,所述指示信息用于指示编码过程中所使用的K个编码系数,所述K个编码系数与所述K个原始数据包一一对应,所述K个编码系数中的非零编码系数均为矩阵,所述矩阵的维度为L×L,K、L均为大于1的整数。处理模块,用于根据所述指示信息对所述待译码数据进行译码,获得所述K个原始数据包。
第三方面和第四方面的可能的设计,可以参照第一方面和第二方面的可能的设计。
第三方面以及各个可能的设计的有益效果可以参考第一方面对应部分的描述,在此不予赘述。
第四方面以及各个可能的设计的有益效果可以参考第二方面对应部分的描述,在此不予赘述。
第五方面,本申请实施例提供一种网络编码装置,该装置包括存储器和处理器,存储器用于存储程序、指令或代码,处理器用于执行存储器存储的程序、指令或代码,执行上述第一方面、第一方面各个可能的设计所描述的方法。所述装置还可以包括输入输出接口,用于与其他装置通信。所述存储器可以是物理上独立的单元,也可以与所述处理器耦合,或者所述处理器包括所述存储器。
第六方面,本申请实施例提供一种网络译码装置,该装置包括存储器和处理器,存储器用于存储程序、指令或代码,处理器用于执行存储器存储的程序、指令或代码,执行上述第二方面或第二方面各个可能的设计所描述的方法。所述装置还可以包括输入输出接口,用于与其他装置通信。所述存储器可以是物理上独立的单元,也可以与所述处理器耦合,或者所述处理器包括所述存储器。
第七方面,本申请实施例提供一种网络编码装置,该装置具有实现上述第一方面和第一方面的任一种可能的设计中所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,该装置包括:输入输出接口电路,用于获取K个待编码数据包;逻辑电路,用于执行上述第一方面和第一方面的任一种可能的设计中所述的行为;输入输出接口电路,用于输出或发送所述编码包。
第八方面,本申请实施例提供一种网络译码装置,该装置具有实现上述第二方面和第 二方面的任一种可能的设计中所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,该装置包括:输入输出接口电路,用于获取待译码数据;逻辑电路,用于执行上述第一方面和第一方面的任一种可能的设计中所述的行为。
第九方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可读指令,当所述计算机可读指令在计算机上运行时,使得如上述各方面或各方面各个可能的设计中所述的方法被执行。
第十方面,本申请实施例提供了一种芯片系统,该芯片系统包括处理器,还可以包括存储器。存储器用于存储程序、指令或代码;处理器用于执行存储器存储的程序、指令或代码,以实现上述各方面或各方面各个可能的设计中所述的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第十一方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得如第各方面或各方面各个可能的设计中所述的方法被执行。
附图说明
图1a为本申请实施例中无线通信系统的架构示意图之一;
图1b为本申请实施例中无线通信系统的架构示意图之二;
图2为本申请实施例中通信场景示意图;
图3为本申请实施例中通信系统的简化示意图;
图4为本申请实施例中随机线性网络编码RLNC的示意图;
图5为本申请实施例中网络编码方法流程示意图之一;
图6为本申请实施例中网络编码方法流程示意图之二;
图7为本申请实施例中网络译码方法流程示意图;
图8为本申请实施例中几种编码方案的性能对比示意图之一;
图9为本申请实施例中几种编码方案的性能对比示意图之二;
图10为本申请实施例中网络编码装置结构示意图之一;
图11为本申请实施例中网络译码装置结构示意图之一;
图12为本申请实施例中网络编码装置结构示意图之二;
图13为本申请实施例中网络译码装置结构示意图之二。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
为了便于清楚描述本申请实施例的技术方案,本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一信息和第二信息仅仅是为了区分不同的信息,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序 进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
本申请实施例提供的网络编码方法、译码方法可以应用于第五代(5th generation,5G)通信系统,例如5G新空口(new radio,NR)系统,也可以应用于未来演进的各种通信系统,例如第六代(6th generation,6G)通信系统、或者空天海地一体化通信系统。可理解的,本申请实施例描述的系统架构和应用场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定。
本申请实施例提供的网络编码方法、译码方法可以应用的一种无线通信系统的架构如图1a所示,无线通信系统100中包括发送端110和接收端120。其中,发送端110可以为网络设备,接收端120为终端设备;或者,发送端110为终端设备,接收端120为网络设备。在无线通信系统中包括网络设备和终端设备时,该无线通信系统架构也可以如图1b所示。图1b是本申请的实施例应用的通信系统1000的架构示意图。如图1b所示,该通信系统包括无线接入网100,可选的,通信系统1000还可以包括核心网200和互联网300。其中,无线接入网100可以包括至少一个网络设备,网络设备如图1b中的110a和110b。无线接入网100还可以包括至少一个终端设备,终端设备如图1b中的120a-120j。终端设备通过无线的方式与无线接入网设备相连,无线接入网设备通过无线或有线方式与核心网连接。核心网设备与网络设备可以是独立的不同的物理设备,也可以是将核心网设备的功能与网络设备的逻辑功能集成在同一个物理设备上,还可以是一个物理设备上集成了部分核心网设备的功能和部分的网络设备的功能。终端设备和终端设备之间以及网络设备和网络设备之间可以通过有线或无线的方式相互连接。图1b只是示意图,该通信系统中还可以包括其它网络设备,如还可以包括无线中继设备和无线回传设备,在图1b中未画出。
网络设备可以是具有无线收发功能的设备。该网络设备可以是提供无线通信功能服务的设备,通常位于网络侧,包括但不限于:5G通信系统中的下一代基站(gNodeB,gNB)、第六代(6th generation,6G)移动通信系统中的下一代基站、未来移动通信系统中的基站或无线局域网如无线保真(wireless fidelity,WiFi)系统中的接入节点等,长期演进(long term evolution,LTE)系统中的演进型节点B(evolved node B,eNB)、无线网络控制器(radio network controller,RNC)、节点B(node B,NB)、基站控制器(base station controller,BSC)、家庭基站(例如,home evolved NodeB,或home Node B,HNB)、基带单元(base band unit,BBU),传输接收点(transmission reception point,TRP)、发射点(transmitting point,TP)、基站收发台(base transceiver station,BTS)等。在一种网络结构中,该网络设备可以包括集中单元(centralized unit,CU)节点、或分布单元(distributed unit,DU)节点、或包括CU节点和DU节点的无线接入网络(radio access network,RAN)设备、或者控制面CU节点和用户面CU节点,以及DU节点的RAN设备。网络设备为小区提供服务,终端设备通过该小区使用的传输资源(例如,频域资源,或者说,频谱资源)与网络设备进行通信,该小区可以是网络设备对应的小区,小区可以属于宏基站,也可以属于小小区(small cell)对应的基站,这里的小小区可以包括:城市小区(metro cell)、微小区(micro cell)、微微小区(pico cell)、毫微微小区(femto cell)等,这些小小区具有覆盖范围小、发射功率低的特点,适用于提供高速率的数据传输服务。网络设备可以是宏基站(如图1b中的110a),也可以是微基站或室内站(如图1b中的110b),还可以是中继节点或施主节点,V2X通信系统中的为终端设备提供无线通信服务的设备、云无线接入网络(cloud radio access network,CRAN)场景下的无线控制器、中继站、车载设备、可穿戴设备以及未来 演进网络中的网络设备等。本申请的实施例对网络设备所采用的具体技术和具体设备形态不做限定。为了便于描述,下文以实现上述功能的设备统一称为网络设备来进行描述。
终端设备还可以称为终端、用户设备(user equipment,UE)、移动台(mobile station,MS)、移动终端(mobile terminal,MT)等,其可以是用户侧的一种用于接收或发射信号的实体,如手机。终端设备可以是UE,其中,UE包括具有无线通信功能的手持式设备、车载设备、可穿戴设备或计算设备。示例性地,UE可以是手机(mobile phone)、平板电脑或带无线收发功能的电脑。终端设备还可以是虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制中的无线终端、无人驾驶中的无线终端、远程医疗中的无线终端、智能电网中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。终端可以广泛应用于各种场景,例如,设备到设备(device-to-device,D2D)、车物(vehicle to everything,V2X)通信、机器类通信(machine-type communication,MTC)、物联网(internet of things,IOT)、虚拟现实、增强现实、工业控制、自动驾驶、远程医疗、智能电网、智能家具、智能办公、智能穿戴、智能交通、智慧城市等。终端可以是手机、平板电脑、带无线收发功能的电脑、可穿戴设备、车辆、无人机、直升机、飞机、轮船、机器人、机械臂、智能家居设备等。本申请实施例中,用于实现终端的功能的装置可以是终端;也可以是能够支持终端实现该功能的装置,例如芯片系统、或通信模块、或调制解调器等,该装置可以被安装在终端中。本申请实施例中,芯片系统可以由芯片构成,也可以包括芯片和其他分立器件。本申请实施例提供的技术方案中,以用于实现终端的功能的装置是终端设备为例,描述本申请实施例提供的技术方案。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
可选的,终端设备也可以用于充当基站。例如,终端设备可以充当调度实体,其在车辆外联(vehicle-to-everything,V2X)、设备到设备(device-to-device,D2D)或点对点(peer to peer,P2P)等中的终端设备之间提供侧行链路信号。
网络设备和终端设备可以是固定位置的,也可以是可移动的。网络设备和终端设备可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上;还可以部署在空中的飞机、气球和人造卫星上。本申请的实施例对网络设备和终端设备的应用场景不做限定。
网络设备和终端设备的角色可以是相对的,例如,图1b中的直升机或无人机120i可以被配置成移动基站,对于那些通过120i接入到无线接入网100的终端设备120j来说,终端设备120i是基站;但对于网络设备110a来说,120i是终端设备,即110a与120i之间是通过无线空口协议进行通信的。当然,110a与120i之间也可以是通过基站与基站之间的接口协议进行通信的,此时,相对于110a来说,120i也是基站。因此,网络设备和终端都可以统一称为通信装置,图1b中的110a、110b以及120a-120j可以称为具有它们各自相对应的功能的通信装置,例如具有网络设备功能的通信装置、或者具有终端设备功能的通信装置。
网络设备和终端设备之间、网络设备和网络设备之间、终端设备和终端设备之间可以通过授权频谱进行通信,也可以通过免授权频谱进行通信,也可以同时通过授权频谱和免授权频谱进行通信;可以通过6千兆赫(gigahertz,GHz)以下的频谱进行通信,也可以通过6GHz以上的频谱进行通信,还可以同时使用6GHz以下的频谱和6GHz以上的频谱 进行通信。本申请的实施例对无线通信所使用的频谱资源不做限定。
在本申请的实施例中,网络设备的功能也可以由网络设备中的模块(如芯片)来执行,也可以由包含有网络设备功能的控制子系统来执行。这里的包含有网络设备功能的控制子系统可以是智能电网、工业控制、智能交通、智慧城市等上述终端的应用场景中的控制中心。终端设备的功能也可以由终端设备中的模块(如芯片或调制解调器)来执行,也可以由包含有终端设备功能的装置来执行。
进一步的,本申请可以应用于多种具体通信场景。例如,网络设备和终端设备之间或终端设备之间的点对点传输,如图2中(a)为网络设备和终端设备之间的点对点传输。又例如,网络设备和终端设备的多跳传输,如图2中(b)、图2中(c)。又例如,多个网络设备和终端设备的双连接(dual connectivity,DC)场景,如图2中(d);或多个网络设备和终端设备的多连接等场景。需要说明的是,如上具体通信应用场景只是举例,并不产生限制。特别地,从业务的角度看,本申请实施例适用于诸多业务场景,例如扩展现实(extended reality,XR)业务中的数据编码场景、上行大容量场景等。此外,图2中(a)~图2中(d)不对适用于本申请的网络架构产生限制,并且本申请不限制上行、下行、接入链路、回传(backhaul)链路、侧链路(Sidelink)等传输。
参见图3,图3是本申请实施例提供的通信系统的简化示意图。为了简单起见,图3仅示出了基站110、UE 120以及网络130。基站110包括接口111和处理器112。处理器112可选地可以存储程序114。基站110可选地可以包括存储器113。存储器113可选地可以存储程序115。UE 120包括接口121和处理器122。处理器122可选地可以存储程序124。终端设备120可选地可以包括存储器123。存储器123可选地可以存储程序125。这些组件一起工作,以提供本申请中描述的各种功能。例如,处理器112和接口121一起工作以提供基站110与终端设备120之间的无线连接。处理器122和接口121共同作用,实现终端设备120的下行传输和/或上行传输。
网络130可以包括一个或多个网络节点130a、130b,以提供核心网功能。网络节点130a、130b可以是5G核心网节点。例如,网络130a、130b可以是接入管理功能(AMF)、移动性管理实体(MME)等。网络130还可以包括公共交换电话网络(PSTN)、分组数据网络、光网络、互联网协议(IP)网络中的一个或多个网络节点。广域网(WAN)、局域网(LAN)、无线局域网(WLAN)、有线网络、无线网络、城域网和其他网络,以使终端设备120和/或基站110之间能够进行通信。
处理器(例如,处理器112和/或处理器122)可包括一个或多个处理器并实现为计算设备的组合。处理器(例如,处理器112和/或处理器122)可分别包括以下一种或多种:微处理器、微控制器、数字信号处理器(DSP)、数字信号处理设备(DSPD)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑器件(PLD)、选通逻辑、晶体管逻辑、分立硬件电路、处理电路或其它合适的硬件、固件和/或硬件和软件的组合,用于执行本申请中所描述的各种功能。处理器(例如,处理器112和/或处理器122)可以是通用处理器或专用处理器。例如,处理器112和/或处理器122可以是基带处理器或中央处理器。基带处理器可用于处理通信协议和通信数据。中央处理器可用于使基站110和/或UE 120执行软件程序,并处理软件程序中的数据。
接口(例如,接口111和/或121)可包括用于实现与一个或多个计算机设备(例如,UE、BS和/或网络节点)之间的通信。在一些实施例中,接口可以包括用于耦合有线连接 的电线、或用于耦合无线收发器的管脚、或用于无线连接的芯片和/或管脚。在一些实施例中,接口可以包括发射器、接收器、收发器和/或天线。接口可以被配置为使用任何可用的协议(例如3GPP标准)。
本申请中的程序在广义上用于表示软件。软件的非限制性示例是程序代码、程序、子程序、指令、指令集、代码、代码段、软件模块、应用程序、软件应用程序等。程序可以在处理器和/或计算机中运行,以使基站110和/或UE 120执行本申请中描述的各种功能和/或过程。
内存(例如存储器113和/或存储器123)可存储由处理器112、122在执行软件时操纵的数据。存储器113、123可以使用任何存储技术实现。例如,存储器可以是处理器和/或计算机能够访问的任何可用存储介质。存储介质的非限制性示例包括:RAM、ROM、EEPROM、CD-ROM、可移动介质、光盘存储器、磁盘存储介质、磁存储设备、闪存、寄存器、状态存储器、远程挂载存储器、本地或远程存储器组件,或能够携带或存储软件、数据或信息并可由处理器/计算机访问的任何其它介质。
内存(例如存储器113和/或存储器123)和处理器(例如处理器112和/或处理器122)可以分开设置或集成在一起。存储器可以用于与处理器连接,使得处理器能够从存储器中读取信息,在存储器中存储和/或写入信息。存储器113可以集成在处理器112中。存储器123可以集成在处理器122中。处理器(例如处理器112和/或处理器122)和存储器(例如存储器113和/或存储器123)可以设置在集成电路中(例如,该集成电路可以设置在UE或基站或其他网络节点中)。
上述内容简要阐述了本申请实施例的系统架构和可能的应用场景,为更好地理解本申请实施例的技术方案,下面将简要介绍网络编码。
网络编码技术是一种前向纠错技术,其通过对原数据包进行编码并预先增加冗余来对抗无线传输中的丢包或性能损失等问题。常用的网络编码方案包括分组码和卷积码两大类,其中,分组码的方案包括随机线性网络编码(random linear network coding,RLNC)、确定线性网络编码(deterministic linear network coding,DLNC)、分批稀疏码(batch sparse code,BATS code)、纠删码(erasure code)、喷泉码(fountain code)、最大距离可分码(maximum distance separable code,MDS code)、卢比变换(Luby Transform,LT)码、快速旋风(Rapid tornado)码、RaptorQ码、无速率(rateless)码和里德-所罗门(Reed-solomon,RS)码等中的一项或多项,卷积码的方案包括卷积网络编码(convolutional network coding,CNC)、流编码(streaming code)或滑动窗口网络编码(sliding window network coding)等中的一项或多项。下面以RLNC为例进行简要说明。
RLNC方案以数据块(一个数据块中包括若干个大小相同的原数据)为单元,通过构建编码系数矩阵对原数据进行编码得到一组编码数据包。编码数据包的大小与数据块中原数据包的大小相同。通常,编码系数矩阵中的系数在有限域中随机选取,其中,有限域如伽罗华域(Galois Field,GF)。参见图4,图4是随机线性网络编码RLNC的示意图。如图4所示,图4中的A (W+R)×W为编码系数矩阵,编码系数矩阵大小为(W+R)×W,即(W+R)行W列。通过对一个包含W个原数据的数据块(图4中的X W×1)进行网络编码,得到W+R个编码数据(图4中的Y (W+R)×1),对应的码率表示为W/(W+R),对应的冗余率表示为R/(W+R)。其中,编码系数矩阵中的编码系数可以在伽罗华域GF(q)内的元素中随机选择,q表示伽罗华域的大小,q为2的正整数次幂,伽罗华域GF(q)内的元素的取值为区间 [0,q-1]中的非负整数。W和R均是正整数。应理解,RLNC方案中,编码数据块之间没有关联,这里的编码数据块是指对一个包含W个原数据的数据块进行网络编码得到W+R个编码数据,即编码操作对每个独立的数据块进行,每个数据块的冗余(码率)可以相同,也可以不相同。编码端/发送端对生成的W+R个编码数据加包头信息后发送,译码端/接收端接收到至少W个正确且编码系数向量线性无关的编码数据包时,或者,接收到至少W个正确的编码数据包且接收到的编码数据包对应的编码系数矩阵的秩为W时,即可正确译码并恢复出W个原数据。这是因为编码数据包融合了若干个原数据的信息,所以接收端可以用编码数据包来恢复原数据。在本申请实施例中,术语“编码数据包”还可以简称为“编码包”,两者可替换使用。
由于干扰、噪声等因素,当译码端/接收端接收到的正确且线性无关的编码数据包个数小于W时,译码端/接收端无法进行译码,此时需要反馈给编码端/发送端需要正确译码还需要的编码数据包个数,编码端/发送端根据反馈信息发送对应个数的编码数据包,该编码数据包与下一个数据块的编码无关。
本申请中的网络编码功能包括对原始数据包(简称为原数据包)进行网络编码和添加编码包的包头。一种可能的实现中,网络编码可以通过编码器来实现,编码器的输入为K个原数据包,编码器的输出为N个编码数据包(简称为编码包),其中,N和K均为正整数。编码包包括N个校验包(即编码包均为校验包,不包括系统包)。所述编码器的输出还可以包括系统包,或者,对原数据包直接加包头获得所述系统包。其中,系统包的内容和原数据包的内容相同。由于系统包也可以不经过编码,比如,可以通过直接给原数据包加包头得到系统头,因而,可以认为系统包的等效编码系数为单位向量。校验包也称冗余包。校验包的编码系数为非单位向量。通过校验包的内容和生成该校验包的原数据包的内容之间的关联,接收端可以通过校验包和成功接收的原数据包或系统包一起译码,恢复未成功接收的原始数据包。另一种可能的实现中,原数据包可以先加包头后再进行网络编码和添加编码包的包头,获得校验包。在本申请中,将网络编码前原数据包加包头得到的数据包也称为系统包。基于网络编码的特点,原数据包的包大小可以相等。
基于上述RLNC的原理,如图5所示,下面通过举例对一种可选的网络编码方法和网络译码方法进行说明。
本申请实施例中,编码方法的执行主体可以是发送端或者编码端,译码方法的执行主体可以是接收端或译码端。可选的,该方案运用在网络设备和终端设备之间的通信时,如果发送端或编码端为终端设备,接收端或译码端可以为网络设备。如果发送端或编码端为网络设备,接收端或译码端可以为终端设备。该方案运用在第一网络设备和第二网络设备之间的通信时,如果发送端或编码端为第一网络设备,接收端或译码端可以为第二网络设备,反之亦然。该方案运用在第一终端设备和第二终端设备之间的通信时,如果发送端或编码端为第一终端设备,接收端或译码端可以为第二终端设备,反之亦然。
发送端将需要发送的数据包分成多组网络编码块,每组网络编码块包含K个原始数据包,分别用X 1,X 2,…,X K表示,对这K个原始数据包可以采用公式
Figure PCTCN2022100513-appb-000029
进行线性组合生成N个编码包,N>=K,N、K为正整数。N个编码包用Y 1,Y 2,…,Y N表示,其中Y n表示第n个编码包,X k表示第k个原始数据单元,g n,k表示第n个编码包中第k个原始数据单元的随机系数,而且g n,k是从有限域或伽罗华域(Galois Field,GF)中随机选取出来的,GF域是一个包含有限个元素的域,用GF(q)可以表示一个集合为{0,1…q-1}这q 个元素的GF域。每个编码包Y n的头部都携带生成该编码包所使用的编码系数向量[g n,1,g n,2,…,g n,K],该编码系数向量的维度与每个编码块中原始数据单元的个数K相同。
发送端针对每组编码块发送N(N>=K)个编码包给接收端,其中,GF域的编码过程(或GF域的编码系数)与原始数据包的线性组合运算,涉及到GF(q)中的加法和乘法运算。以X k,1≤k≤K是8bit的数据单元,GF域大小为4,即GF(4),q=4,g n,k∈GF(4)为例,
Figure PCTCN2022100513-appb-000030
在GF(4)上运算的含义是,将大小为L′的X k依次划分成多组比特,每组包含log 2q个比特,每次运算规则是选取[X 1,X 2,…,X K]相同位置上的log 2q个比特,依次与[g n,1,g n,2,…,g n,K]在GF(4)域上相乘再相加得到一个运算结果,该运算结果包含log 2q比特,如第一次取[X 1,X 2,…,X K]中前2个比特,依次与[g n,1,g n,2,…,g n,K]相乘相加得到一个2比特的运算结果,放置在编码数据单元Y n的第1、2个比特位置上,第二次取[X 1,X 2,…,X K]中第3、4个比特,依次与[g n,1,g n,2,…,g n,K]相乘相加得到一个2比特的运算结果,放置在编码数据单元Y n的第3、4个比特位置上,以此类推完成8bit的编码运算获得一个8bit的编码数据单元Y n,上述涉及乘法和加法运算是在GF上的多项式运算。多项式是伽罗华域内的元素的一种表示方法,伽罗华域内的任意一个元素都可以用多项式表示,基于与该伽罗华域对应的本原多项式,可用于GF域内元素间的加减乘除的运算。
GF域的多项式运算规则举例如下:
GF域的乘法:GF域的元素可以通过该域上的本原多项式P(x)生成,GF域上的多项式乘法可通过将数值化为多项式的形式,将GF域上的乘法运算化为普通的多项式乘法再模本原多项式P(x)。当q=4时,GF(4)的本原多项式为P(x)=x^2+x+1,一个2比特的数据(如‘10’,化为多项式的形式为x),与一个2比特的数据(如‘11’,化为多项式的形式为x+1)相乘,多项式乘法是将其中一个多项式的各项分别与另一个多项式的各项相乘,然后把相同指数的项的系数相加,x*(x+1)=x^2+x,GF(4)上的乘法需要再mod P(x)=x^2+x+1,结果为(x^2+x)mod(x^2+x+1)=1,结果即‘01’。其中,x^2表示的是x的2次幂。
GF域的加法:将数值化为多项式的形式,合并阶数相同的同类项时,多项式加法进行的是异或操作,即0+0=0,1+1=0,0+1=1+0=1,一个2比特的数据(如‘10’,化为多项式的形式为x),与一个2比特的数据(如‘11’,化为多项式的形式为x+1)相加,结果是0*x+1,即‘01’。
如果接收端收到的编码包的个数不少于K个,且编码包头部携带的编码系数向量组成的矩阵的秩为K,即原始数据单元的个数,也就是说,接收端收到了K个线性独立的编码包,接收端根据编码系数可以构建出一个线性方程组,线性方程组中X k,k∈{1,2,…K}就是K个待求解的未知数,利用线性方程理论就可以解码出K个原始数据单元。
假如对于全部N个编码包Y 1,Y 2,…,Y N,接收端全部接收正确,其中每个接收到的编码包Y n的头部都包含一个指示信息指示一个K长的编码系数向量[g n,1,g n,2,…,g n,K],接收端将收到的N个编码系数向量组合在一起形成一个关于未知数X 1,X 2,…,X K的K元一次线性方程组,方程组的系数矩阵为:
Figure PCTCN2022100513-appb-000031
系数矩阵的秩为K,接收端根据接收正确的编码包利用对应的系数矩阵就可以解码出K个原始数据包。
针对一个编码块,接收正确的编码包的个数不小于原始数据包的个数K,且接收正确的编码包头部携带的编码系数向量组成的矩阵的秩为原始数据包的个数的情况下,接收端依然可以解码出K个原始数据包。所以,对于网络编码技术来说,发送端不需要等到接收端的反馈请求再重传,网络编码可以提前发送若干个编码包来对抗无线信道的影响,一方面可以节省时延,另一方面不需要消耗成倍数的资源对每个传输块(transport block,TB)都进行盲重传,避免频谱资源的浪费。
但是,图5实施例所示的网络编码方法之一中,如果考虑编译码器的实现复杂度,编码系数会随机选择GF(2)中的元素,这样编译码运算只涉及二元域的异或运算,能够降低编译码器的实现复杂度。如果编码系数采用二元域中的元素,会出现线性无关特性无法保证的问题,导致纠错能力较差。如果想要获得比较好的编解码性能,一般会采用较高的有限域,例如GF(2 8),即每个原始包的编码系数均采用GF(2 8)中的值,编译码时涉及GF(2 8)元素间的乘法运算。编码系数采用高域中的元素,虽然纠错能力较好,但是,高域编译码时会涉及高域元素间的乘法运算,高域元素间的乘法运算通常需要预先建立离散的乘法表,通过查找庞大的表格方式才能获得运算结果,复杂度较高。
基于此,本申请实施例提供一种网络编码方法、译码方法,能够兼顾性能和复杂度,利用低复杂度的低域运算且保证编码系数之间的线性无关特性,从而实现高域的性能。
如图6所示,本申请实施例提供一种网络编码方法如下所述。该方法的执行主体为发送端或者编码端,发送端或编码端可以是终端设备,也可以是网络设备。如果发送端或编码端为终端设备,接收端或译码端可以为网络设备。如果发送端或编码端为网络设备,接收端或译码端可以为终端设备。
S601.对K个待编码数据包进行编码,生成编码包。
其中,编码包携带指示信息,指示信息用于指示生成编码包所使用的K个编码系数,在编码的过程中K个编码系数与K个待编码数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。
S602.发送编码包。
可以理解的是,本申请实施例中,发送端可以生成N个编码包,每个编码包的生成方式可以参照图6实施例中的描述。发送端生成的N个编码包之间没有关联,例如,N个编码包中的任意两个编码包用第一编码包和第二编码包来表示,生成第一编码包所使用的K个编码系数,与生成第二编码包所使用的K个编码系数无关。
本申请实施例中,术语“待编码数据包”还可以称为“原始数据包”、“原数据包”、“原数据段”,不同术语可替换使用。编码包也可以称为编码数据包。
图6实施例中,通过编码包携带包含K个待编码数据包的K个编码系数的指示信息,且编码包是基于K个编码系数和K个待编码数据包生成的,译码装置能够根据指示信息获得编码包的编码系数,从而进行译码以获得K个原始数据包,此处K个原始数据包与发送端的K个待编码数据包一一对应。K个编码系数是K个矩阵,由于编码系数是矩阵而不是有限域中的一个数值,能够保证编码系数的线性无关特性,使用线性无关的编码系数进行编码能够获得较好的纠错能力,从而提升系统可靠性以及系统频谱效率。另一方面还可以避免使用有限域尤其高域的乘法运算,从而降低编译码的复杂度。
以下对图6实施例的一些可选实现方式进行说明。
K个编码系数中的非零编码系数均为矩阵,矩阵中的元素均为二元域中的元素,或者 说K个编码系数中的每个编码系数均为二元域矩阵。
本申请实施例中,对K个待编码数据包进行编码过程中使用的K个编码系数,均取自于编码系数集合。编码系数集合也可以称为编码系数域或者其他名称。编码系数集合包括有限数目的矩阵。编码系数集合中的矩阵的维度为L×L。L为正整数,L可以为大于1的整数,例如,L的取值为8。
以下举例几种编码系数集合的可能形式。
第一种编码系数集合:为基于循环移位矩阵的编码系数集合。编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。编码系数集合中包括多个矩阵,一个矩阵可以作为一个编码系数。编码系数集合中的不同矩阵对应不同的循环移位矩阵。编码系数集合中每个矩阵的循环移位矩阵的变换形式相同。本申请实施例中,循环移位矩阵也可以被称为循环置换矩阵。
例如,编码系数集合中的矩阵可以表示为
Figure PCTCN2022100513-appb-000032
其中,M满足0≤M%(L+1)≤L,%为取余操作,M为整数。
Figure PCTCN2022100513-appb-000033
表示对(L+1)×(L+1)的单位矩阵循环移M位得到的矩阵。例如,M的取值为0、1、2、……、L,则编码系数集合可以表示为
Figure PCTCN2022100513-appb-000034
又例如,M的取值为1、2、3、……、L+1,则编码系数集合可以表示为
Figure PCTCN2022100513-appb-000035
其中,
Figure PCTCN2022100513-appb-000036
表示(L+1)×(L+1)的循环移位矩阵,G为L×(L+1)的矩阵,
Figure PCTCN2022100513-appb-000037
H为(L+1)×L的矩阵,
Figure PCTCN2022100513-appb-000038
Figure PCTCN2022100513-appb-000039
Figure PCTCN2022100513-appb-000040
表示C L+1的M次幂。
Figure PCTCN2022100513-appb-000041
表示不进行循环移位,即单位阵
Figure PCTCN2022100513-appb-000042
Figure PCTCN2022100513-appb-000043
Figure PCTCN2022100513-appb-000044
表示循环移位1位,即
Figure PCTCN2022100513-appb-000045
待编码数据包与编码系数
Figure PCTCN2022100513-appb-000046
相乘,其中,G为奇偶检验矩阵,用于在待编码数据包后添加一位冗余位,该冗余位为待编码数据包中的信息位异或的结果,
Figure PCTCN2022100513-appb-000047
用于循环移位M%(L+1)位,H用于将最后一位删掉。
编码系数集合中的不同矩阵对应不同的循环移位矩阵,例如,
Figure PCTCN2022100513-appb-000048
对应的循环移位矩阵为
Figure PCTCN2022100513-appb-000049
对应的循环移位矩阵为
Figure PCTCN2022100513-appb-000050
编码系数集合中每个矩阵的循环移位矩阵的变换形式相同,例如,上述编码系数集合中每个矩阵的循环移位矩阵的变换形式均为,循环移位矩阵右乘G,左乘H。
上述举例的编码系数集合,
Figure PCTCN2022100513-appb-000051
因此编码系数集 合矩阵的数目为L+1个。实际应用中的编码系数集合可以为上述举例的编码系数集合的子集,例如图6实施例中K个编码系数取自第一编码系数集合,第一编码系数集合中的矩阵的数据小于或等于L+1个,第一编码系数集合可以是上述举例的编码系数集合中的子集。比如,第一编码系数集合可以是
Figure PCTCN2022100513-appb-000052
的子集,或者第一编码系数集合可以是
Figure PCTCN2022100513-appb-000053
的子集。
第二种编码系数集合:为基于伽罗华域GF(2 L)的本原多项式的友矩阵的编码系数集合。编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵。
先介绍一下友矩阵的概念。友矩阵也称伴侣矩阵,是数域F上首项系数为1的多项式所对应的特定形式n阶矩阵,其主对角线上方或者下方的元素均为1,而主对角线元素为零;最后一行或第一行的元素可取任意值;而其余元素均为零,友矩阵的特征根多项式是首一多项式,例如f(x)=x n+a n-1x n-1+a 1x+a 0是首项为1的多项式,则n阶矩阵
Figure PCTCN2022100513-appb-000054
称为多项式f(x)的友矩阵。
第二种编码系数集合中的矩阵为A N;N满足0≤N%2 L≤2 L-1。例如N的取值可以为0、1、2、3、……、2 L-1。编码系数集合中的不同矩阵对应的N%2 L的取值不同。或者说,编码系数集合中的不同矩阵对应的N的取值不同。
其中,
Figure PCTCN2022100513-appb-000055
或A为
Figure PCTCN2022100513-appb-000056
的行列变换矩阵;
A中的向量[a 0a 1…a L-1]对应的本原多项式f(x)=a 0+a 1x+…a L-1x L-1+x L为伽罗华域GF(2 L)的本原多项式中的任意一个。或者说A是多项式f(x)=a 0+a 1x+…a L-1x L-1+x L的友矩阵。
当N的取值为0、1、2、3、……、2 L-1时,第二种编码系数集合可以表示为
Figure PCTCN2022100513-appb-000057
第二种编码系数集合为伽罗华域GF(2 L)的本原多项式的友矩阵A不断自乘的结果。
GF(2 L)的本原多项式的取值本申请实施例不作限定,例如,GF(2 8)的本原多项式包含如下16个:f(x)=1+x 2+x 3+x 4+x 8;f(x)=1+x 1+x 3+x 5+x 8;f(x)=1+x 2+x 3+x 5+x 8;f(x)=1+x 2+x 3+x 6+x 8;f(x)=1+x 1+x 2+x 3+x 4+x 6+x 8;f(x)=1+x 1+x 5+x 6+x 8;f(x)=1+x 2+x 5+x 6+x 8;f(x)=1+x 3+x 5+x 6+x 8;f(x)=1+x 4+x 5+x 6+x 8;f(x)=1+x 1+x 2+x 7+x 8;f(x)=1+x 2+x 3+x 7+x 8;f(x)=1+x 3+x 5+x 7+x 8;f(x)=1+x 1+x 6+x 7+x 8;f(x)=1+x 1+x 2+x 3+x 6+x 7+x 8;f(x)=1+x 1+x 2+x 5+x 6+x 7+x 8;f(x)=1+x 2+x 4+x 5+x 6+x 7+x 8
以上述16个本原多项式中的第一个f(x)=1+x 2+x 3+x 4+x 8为例,与多项式f(x)=a 0+a 1x+…a L-1x L-1+x L对比可以得到向量[a 0a 1…a L-1]=[1 0 1 1 1 0 0 0 1]。
再以GF(256)的本原多项式为例,GF(256)的本原多项式对应的[a 0a 1…a 7]分别是[1 0 1 1 1 0 0 0]、[1 1 0 1 0 1 0 0]、[1 0 1 1 0 1 0 0]、[1 0 1 1 0 0 1 0]、[1 1 1 1 1 0 1 0]、[1 1 0 0 0 1 1 0]、[1 0 1 0 0 1 1 0]、[1 0 0 1 0 1 1 0]、[1 0 0 0 1 1 1 0]、[1 1 1 0 0 0 0 1]、[1 0 1 1 0 0 0 1]、[1 0 0 1 0 1 0 1]、[1 1 0 0 0 0 1 1]、[1 1 1 1 0 0 1 1]、[1 1 1 0 0 1 1 1]、[1 0 1 0 1 1 1 1]。
上述第二种编码系数集合的举例中,
Figure PCTCN2022100513-appb-000058
因此第二种编码系数集合的举例中矩阵的数目有2 L个。实际应用中的编码系数集合可以为上述举例的编码系数集合的子集,例如图6实施例中K个编码系数取自第二编码系数集合,第二编码系数集合中的矩阵的数目小于或等于2 L个。第而编码系数集合可以是上述举例的编码系数集合中的子集。比如,第二编码系数集合可以是
Figure PCTCN2022100513-appb-000059
的子集。
以下对采用矩阵形式的编码系数进行编码的过程进行说明。
上文中图5实施例中所述的网络编码方法之一中,编码系数均采用GF(2 L)中的值,与此相比,图6实施例中的网络编码方法中的非零编码系数均为矩阵。
K个待编码数据包可以位于一组网络编码块中,例如,发送端将需要发送的数据包分成多组网络编码块,每组网络编码块包含K个原始数据包。对K个待编码数据包进行一次编码,能够生成一个编码包。对K个待编码数据包进行多次编码,能够生成多个编码包。
在生成一个编码包的编码过程中,K个编码系数与K个待编码数据包一一对应。K个编码系数可以是编码系数集合中的K个矩阵,K个矩阵不要求两两各不相同。一个编码包的K个编码系数可以组成一个网络编码系数矩阵,其中,一个编码系数为一个L×L的矩阵,由K个编码系数组成的网络编码系数矩阵即KL×L维矩阵,可以记为[Q 1 Q 2 … Q K] T。或者网络编码系数矩阵是L×KL维的矩阵,可以记为[Q 1 Q 2 … Q K]。待编码数据包中的比特/符号组成的行向量左乘网络编码系数矩阵[Q 1 Q 2 … Q K] T。或者,网络编码系数矩阵[Q 1 Q 2 … Q K]左乘待编码数据包中的比特/符号组成的列向量。其中,1个符号可以为一个待编码的数据的单位,可以包括1个或多个比特。
以一个待编码数据包中包括L个比特/符号为例,网络编码的过程可以表达为:
Figure PCTCN2022100513-appb-000060
Figure PCTCN2022100513-appb-000061
其中,y 1,…,y L是所生成的编码包的比特/符号序列,x k,1,…,x k,L是第k个待编码数据包的L个比特/符号序列,1≤k≤K。
如果每个待编码数据包中包含的比特/符号个数大于L,那么可以将每个待编码数据包划分成B个原始数据段,每个原始数据段包含L个比特/符号,将K个待编码数据包中第b个原始数据段采用上述网络编码过程生成编码包的第b个编码数据段,依次对第1个原始数据段、第2个原始数据段直至第B个原始数据段采用相同的编码系数矩阵生成编码包的第1个编码数据段、第2个编码数据段直至第B个编码数据段。例如,第k个待编码数据包的比特/符号序列被划分成B个原始数据段,其中第b个原始数据段用x k,b,1,…,x k,b,L表示,网络编码过程如下:
对K个待编码数据包中包含的第1个原始数据段编码生成编码包的第1个编码数据段,第1个编码数据段包含L个比特/符号,用y 1,1,…,y 1,L表示:
Figure PCTCN2022100513-appb-000062
Figure PCTCN2022100513-appb-000063
对K个待编码数据包中包含的第2个原始数据段编码生成编码包的第2个编码数据段,第2个编码数据段包含L个比特/符号,用y 2,1,…,y 2,L表示:
Figure PCTCN2022100513-appb-000064
Figure PCTCN2022100513-appb-000065
依次类推,对K个待编码数据包中包含的第B个原始数据段编码生成编码包的第B个编码数据段,第B个编码数据段包含L个比特/符号,用y B,1,…,y B,L表示:
Figure PCTCN2022100513-appb-000066
Figure PCTCN2022100513-appb-000067
上述编码过程中对第i个原始数据段编码使用的编码系数和对第j个原始数据段编码使用的编码系数是相同的,其中i≠j,1≤i≤B,1≤j≤B。上述生成的第1个编码数据段、第2个编码数据段、…、第B个编码数据段y 1,1,…,y 1,L,y 2,1,…,y 2,L,…,y B,1,…,y B,L依次顺序排列组合成一个编码包。如果需要生成多个编码包,则采用不同于[(Q 1) L×L (Q 2) L×L … (Q k) L×L]的一组编码系数按照上述编码过程生成不同的编码包即可。
以下介绍一下编码系数的可能的指示方式。
发送端在每个编码包中携带指示信息,该指示信息用于指示生成该编码包的编码系数。这样,接收端能够根据指示信息确定该编码包的编码系数,从而正确解码。不同编码包的编码系数可以不同,不同的编码包的指示信息可以不同。
指示方式一:
在编码系数集合确定的情况下,可以将编码系数集合中的编码系数(即矩阵)与索引号一一对应,通过指示编码系数的索引,来指示编码系数。
编码系数集合中的矩阵与索引之间的对应关系可以通过表格的形式来体现,或者通过函数的形式来体现,具体体现形式在本申请中不予限定。例如,通过表格的形式来体现,如表1所示,示出了不同矩阵与不同索引之间的对应关系。
表1
索引(index) 矩阵(matrix)/编码系数(coding coefficients)
索引1 矩阵1/编码系数1
索引2 矩阵2/编码系数2
…… ……
基于上述第一种编码系数集合,假设第一种编码系数集合表示为
Figure PCTCN2022100513-appb-000068
那么第一种编码系数集合中的编码系数(或者矩阵)与索引的对应关系如表2所示。
表2
Figure PCTCN2022100513-appb-000069
基于上述第二种编码系数集合,假设第二种编码系数集合表示为
Figure PCTCN2022100513-appb-000070
那么第二种编码系数集合中的编码系数(或者矩阵)与索引的对应关系如表3所示。
表3
Figure PCTCN2022100513-appb-000071
编码包中携带用于指示K个编码系数的指示信息,指示信息可以是随机种子(seed)或编码包的标识。编码包的标识可以是编码包的序列号(serial number,SN),也可以是编码包在编码块中的ID。随机种子/编码包的标识用于确定K个编码系数在编码系数集合中的索引。
随机种子/编码包的标识对应K个随机数,K个随机数用于确定K个编码系数在编码系数集合中的索引。
随机种子/编码包的标识与K个编码系数在编码系数集合中的索引具有对应关系,该对应关系满足:K个编码系数在编码系数集合中的索引是随机种子/编码包的标识的函数。该函数可以是:基于随机种子/编码包的标识的随机函数生成K个值,基于该K个值进行取余操作。即,基于随机种子/编码包的标识的随机函数生成K个值,该K个值分别取余一个数,取余的该数值可以是编码系数集合中包含的矩阵数目。该K个值分别取余该数值得到K个编码系数在编码系数集合中的索引。
指示信息为随机种子/编码包的标识,发送端可以将随机种子/编码包的标识作为伪随机数发生器的输入,伪随机数发生器会输出一组随机数列,从这组随机数列中取出K个随机数,用{R 1,R 2,…,R K}表示K个随机数,可选的可以选择随机数列中的前K个随机数。基于K个随机数确定K个编码系数在编码系数集合中的索引。
基于第一种编码系数集合和表2的对应关系,基于K个随机数确定K个编码系数在编码系数集合中的索引,可以通过以下方式实现:K个随机数{R 1,R 2,…,R K}分别除以(L+1)取余即{R 1%(L+1),R 2%(L+1),…,R K%(L+1)},可以得到K个索引{I 1,I 2,…,I K}。 这K个索引可以对应表2中的K个索引值,从而可以进一步确定K个索引对应的K个编码系数。
基于第二种编码系数集合和表3的对应关系,基于K个随机数确定K个编码系数在编码系数集合中的索引,可以通过以下方式实现:K个随机数{R 1,R 2,…,R K}分别除以2 L取余即{R 1%2 L,R 2%2 L,…,R K%2 L}得到K个索引{I 1,I 2,…,I K}。这K个索引可以对应表3中的K个索引值,从而可以进一步确定K个索引对应的K个编码系数。
编码包中携带随机种子/编码包的标识,可以指示K个编码系数。随机种子/编码包的标识可以包含在编码包包头中,作为编码包包头中新增的一个域。接收端可以利用随机种子/编码包的标识,采用相同的过程确定K个编码系数。例如,接收端根据该随机种子/编码包的标识获得一组和发送端相同的随机数列,选择出同样的K个随机数,并使用相同的方式确定出K个索引以及K个索引对应的K个编码系数。接收端根据K个编码系数进行译码。
编码包中携带编码包的标识来指示K个编码系数,能够节省包头的开销。
指示方式二:
指示信息用于指示生成编码包所使用的K个编码系数。指示信息可以为编码系数码本中一个码字的索引,该码字包括编码系数集合中的X个矩阵,编码系数集合包括有限数目的矩阵,X≥K,K个编码系数为X个矩阵中的K个矩阵。
编码系数集合的概念可以参考上文中的描述,例如第一种编码系数集合和第二种编码系数集合的描述。
可以从编码系数集合中选择出多组矩阵,每组矩阵的数量为X个,X的取值为正整数,且X的取值大于或等于编码系数的个数K,X的取值小于或等于编码系数集合中包含矩阵的最大数目。多组矩阵形成一个编码系数码本,其中一组矩阵即是一个编码系数码本中的一个码字。
一个码字对应的一组矩阵的数量可以是K个,这样K个矩阵即为K个编码系数。一个码字对应的一组矩阵的数目也可以大于K个,即X>K的情况,那么K个编码系数为X个矩阵中的K个矩阵,可以是X个矩阵中的任意K个矩阵,也可以是X个矩阵中的指定K个矩阵,例如可以是X个矩阵中的前K个矩阵。
编码系数码本也可以称为其它的名称,例如矩阵组集合、多组矩阵等。码字也可以称为一组矩阵或矩阵组。不同名称的功能和释义是相同的,本文中以编码系数码本和码字的概念为例进行介绍。
在编码系数码本中,码字与索引具有对应关系。需要注意的是,在指示方式二中的索引与指示方式一中的索引不同,指示方式一中的索引是编码系数集合中矩阵的索引,指示方式二中的索引是编码系数码本中码字的索引。
以下对编码系数码本和码字的表现形式进行举例说明。
(1)第一种表现形式:
编码系数码本中的一个码字包括X个矩阵。X个矩阵的索引可以为1、2、……、X,码字可以表示为
Figure PCTCN2022100513-appb-000072
Figure PCTCN2022100513-appb-000073
其中,0≤p l%(L+1)≤L,编码系数码本中的不同码字对应的p l%(L+1)的取值不同,码字的索引与p l%(L+1)具有对应关系。 p l%(L+1)表示p l除以(L+1)的余数,
Figure PCTCN2022100513-appb-000074
分别为a 1,a 2,…,a X的p l次幂,a 1,a 2,…,a X表示X个矩阵。
基于0≤p l%(L+1)≤L,在一个可能的设计中,p l的取值范围为[0,L],即0≤p l≤L。编码系数码本中的不同码字对应的p l的取值不同,码字的索引与p l具有对应关系。这种情况下,编码系数码本的矩阵表现形式可以是
Figure PCTCN2022100513-appb-000075
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000076
为一个码字,0≤p l≤L,编码系数码本中共(L+1)个码字,一个码字中有X个矩阵。编码系数码本的矩阵表现形式还可以是
Figure PCTCN2022100513-appb-000077
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000078
为一个码字,0≤p l≤L,编码系数码本中共(L+1)个码字,一个码字中有X个矩阵。
X个矩阵的索引也可以为0、1、……、X-1,码字可以表示为
Figure PCTCN2022100513-appb-000079
Figure PCTCN2022100513-appb-000080
其中,0≤p l%(L+1)≤L,编码系数码本中的不同码字对应的p l%(L+1)的取值不同,码字的索引与p l%(L+1)具有对应关系。p l%(L+1)表示p l除以(L+1)的余数。
Figure PCTCN2022100513-appb-000081
分别为a 0,a 1,…,a X-1的p l次幂。a 0,a 1,…,a X-1表示X个矩阵。
类似的,p l的取值范围为[0,L],即0≤p l≤L。在这种情况下,编码系数码本的矩阵表现形式可以是
Figure PCTCN2022100513-appb-000082
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000083
为一个码字,0≤p l≤L,编码系数码本中共(L+1)个码字,一个码字中有X个矩阵。编码系数码本的矩阵表现形式还可以是
Figure PCTCN2022100513-appb-000084
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000085
为一个码字,0≤p l≤L,编码系数码本中共(L+1)个码字,一个码字中有X个矩阵。
在第一种表现形式中,上述X的取值可以小于或等于L+1,X为正整数。
当码字表示为
Figure PCTCN2022100513-appb-000086
Figure PCTCN2022100513-appb-000087
时,a 1,a 2,…,a X可以表示编码系数集合中两两不同的X个矩阵。例如,在第一种表现形式中,一个码字包括的X个矩阵可以为上 文中第一种编码系数集合中的X个矩阵。a 1,a 2,…,a X可以表示上文中第一种编码系数集合中两两不同的X个矩阵。例如a 1,a 2,…,a X可以表示
Figure PCTCN2022100513-appb-000088
中两两不同的X个矩阵。
当码字表示为
Figure PCTCN2022100513-appb-000089
Figure PCTCN2022100513-appb-000090
时,a 0,a 1,…,a X-1可以表示编码系数集合中两两不同的X个矩阵。例如,在第一种表现形式中,一个码字包括的X个矩阵为上文中第一种编码系数集合中的X个矩阵。a 0,a 1,…,a X-1可以表示上文中第一种编码系数集合中两两不同的X个矩阵。例如a 0,a 1,…,a X-1可以表示
Figure PCTCN2022100513-appb-000091
中两两不同的X个矩阵。
(2)第二种表现形式:
编码系数码本中的一个码字包括X个矩阵。码字可以表示为
Figure PCTCN2022100513-appb-000092
Figure PCTCN2022100513-appb-000093
编码系数码本中的不同码字对应不同的a l,码字的索引与l具有对应关系,或者说码字的索引与a l具有对应关系,a l表示编码系数集合中的矩阵,l为a l在编码系数集合中的索引。在第二种表现形式中,a l可以是上文中第一种编码系数集合中的矩阵。例如,a l可以是
Figure PCTCN2022100513-appb-000094
中的矩阵,当a l
Figure PCTCN2022100513-appb-000095
时,l为
Figure PCTCN2022100513-appb-000096
在编码系数集合
Figure PCTCN2022100513-appb-000097
中的索引。又例如,a l也可以是
Figure PCTCN2022100513-appb-000098
中的矩阵。
l取值可以为[1,L+1]或者[0,L]。当l取值为[1,L+1]时,编码系数码本的矩阵表现形式可以是
Figure PCTCN2022100513-appb-000099
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000100
为一个码字,1≤l≤L+1,编码系数码本中共(L+1)个码字,一个码字中有X个矩阵。编码系数码本的矩阵表现形式还可以是
Figure PCTCN2022100513-appb-000101
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000102
为一个码字,1≤l≤L+1,编码系数码本中共(L+1)个码字,一个码字中有X个矩阵。
当l取值为[0,L]时,编码系数码本的矩阵表现形式可以是
Figure PCTCN2022100513-appb-000103
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000104
为一个码字,0≤l≤L,编码系数码本中 共(L+1)个码字,一个码字中有X个矩阵。编码系数码本的矩阵表现形式还可以是
Figure PCTCN2022100513-appb-000105
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000106
为一个码字,0≤l≤L,编码系数码本中共(L+1)个码字,一个码字中有X个矩阵。
在第二种表现形式中上述X的取值可以小于或等于L+1,X为正整数。
码字为
Figure PCTCN2022100513-appb-000107
Figure PCTCN2022100513-appb-000108
p 0,p 1,…,p X-1分别除以(L+1)得到的X个余数为[0,L]中两两不同的X个值。
第三种表现形式:
编码系数码本中的一个码字包括X个矩阵。X个矩阵的索引可以为0、1、……、X-1。码字可以表示为
Figure PCTCN2022100513-appb-000109
Figure PCTCN2022100513-appb-000110
其中,0≤p l%(2 L)≤2 L-1,编码系数码本中的不同码字对应的p l%(2 L)的取值不同,码字的索引与p l%(2 L)具有对应关系。
基于0≤p l%(2 L)≤2 L-1,在一个可能的设计中,p l的取值范围为[0,2 L-1],即0≤p l≤2 L-1。编码系数码本中的不同码字对应的p l的取值不同,码字的索引与p l具有对应关系。这种情况下,编码系数码本的矩阵表现形式可以是
Figure PCTCN2022100513-appb-000111
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000112
为一个码字,0≤p l≤2 L-1,编码系数码本中共2 L个码字,一个码字中有X个矩阵。编码系数码本的矩阵表现形式还可以是
Figure PCTCN2022100513-appb-000113
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000114
为一个码字,0≤p l≤2 L-1,编码系数码本中共2 L个码字,一个码字中有X个矩阵。
X个矩阵的索引可以为1、2、……、X。码字可以表示为
Figure PCTCN2022100513-appb-000115
Figure PCTCN2022100513-appb-000116
其中,其中,0≤p l%(2 L)≤2 L-1,编码系数码本中的不同码字对应的p l%(2 L)的取值不同,码字的索引与p l%(2 L)具有对应关系。
基于0≤p l%(2 L)≤2 L-1,在一个可能的设计中,p l的取值范围为[0,2 L-1],即0≤p l≤2 L-1。编码系数码本中的不同码字对应的p l的取值不同,码字的索引与p l具有对 应关系。这种情况下,编码系数码本的矩阵表现形式可以是
Figure PCTCN2022100513-appb-000117
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000118
为一个码字,0≤p l≤2 L-1,编码系数码本中共2 L个码字,一个码字中有X个矩阵。编码系数码本的矩阵表现形式还可以是
Figure PCTCN2022100513-appb-000119
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000120
为一个码字,0≤p l≤2 L-1,编码系数码本中共2 L个码字,一个码字中有X个矩阵。
在第三种表现形式中,上述X的取值可以小于或等于2 L,X为正整数。
当码字表示为
Figure PCTCN2022100513-appb-000121
Figure PCTCN2022100513-appb-000122
时,a 0,a 1,…,a X-1可以表示编码系数集合中两两不同的X个矩阵。例如,在第三种表现形式中,一个码字包括的X个矩阵可以为上文中第二种编码系数集合中的X个矩阵。a 0,a 1,…,a X-1可以表示上文中第二种编码系数集合中两两不同的X个矩阵。例如,a 0,a 1,…,a X-1可以表示{I,A,A 2,…,A 2L-1}中两两不同的X个矩阵。
当码字表示为
Figure PCTCN2022100513-appb-000123
Figure PCTCN2022100513-appb-000124
时,a 1,a 2,…,a X可以表示编码系数集合中两两不同的X个矩阵。例如,在第三种表现形式中,一个码字包括的X个矩阵可以为上文中第二种编码系数集合中的X个矩阵。a 1,a 2,…,a X可以表示上文中第二种编码系数集合中两两不同的X个矩阵。例如,a 1,a 2,…,a X可以表示{I,A,A 2,…,A 2L-1}中两两不同的X个矩阵。
(4)第四种表现形式:
编码系数码本中的一个码字包括X个矩阵。码字可以表示为
Figure PCTCN2022100513-appb-000125
Figure PCTCN2022100513-appb-000126
编码系数码本中的不同码字对应不同的a l,码字的索引与l具有对应关系,a l表示编码系数集合中的矩阵,l为a l在编码系数集合中的索引。在第四种表现形式中,a l可以是上文中第二种编码系数集合中的矩阵。例如,a l可以是
Figure PCTCN2022100513-appb-000127
中的矩阵,当a l为A时,l为A在编码系数集合
Figure PCTCN2022100513-appb-000128
中的索引。
l取值可以为[1,2 L]或者[0,2 L-1]。
当l取值为[0,2 L-1]时,编码系数码本的表现形式可以是
Figure PCTCN2022100513-appb-000129
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000130
为一个码字,0≤l≤2 L-1,编码系数码本中共2 L个码字,一个码字中有X个矩阵。编码系数码本的表现形式还可以是
Figure PCTCN2022100513-appb-000131
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000132
为一个码字,0≤l≤2 L-1,编码系数码本中共2 L个码字,一个码字中有X个矩阵。
当l取值为[1,2 L]时,编码系数码本的表现形式可以是
Figure PCTCN2022100513-appb-000133
其中,编码系数码本中的一列
Figure PCTCN2022100513-appb-000134
为一个码字,1≤l≤2 L,编码系数码本中共2 L个码字,一个码字中有X个矩阵。编码系数码本的表现形式还可以是
Figure PCTCN2022100513-appb-000135
其中,编码系数码本中的一行
Figure PCTCN2022100513-appb-000136
为一个码字,1≤l≤2 L,编码系数码本中共2 L个码字,一个码字中有X个矩阵。
在第三种表现形式中,上述X的取值可以小于或等于2 L,X为正整数。
当码字表示为
Figure PCTCN2022100513-appb-000137
Figure PCTCN2022100513-appb-000138
时,p 0,p 1,…,p X-1分别除以2 L得到的X个余数为[0,2 L-1]中两两不同的X个值。
上述第一种表现形式至第四种表现形式中,编码系数码本通过矩阵形式来表现,即,一个编码系数码本可以表示为一个编码系数码本矩阵,一个编码系数码本的矩阵表现形式中的一行或者一列为一个码字。在另一种可选的实现方式中,编码系数码本还可以通过其它的形式体现,例如表格的形式,又例如可以表示一组码字的其它任意表现形式。只要是可以表示编码系数码本中包括多个码字,且能够通过索引号指示这些码字即可。
以下通过表格的形式介绍几种编码系数码本和码字的表现形式。
(5)第五种表现形式:
编码系数码本中的一个码字包括X个矩阵。
编码系数码本中的一个码字包括的X个矩阵可以为上文中第一种编码系数集合中的X个矩阵,K≤X≤L+1。这种情况下,编码系数码本的表格表现形式可以如下表所示。
表4-1
Figure PCTCN2022100513-appb-000139
Figure PCTCN2022100513-appb-000140
表4-1中,每个码字包括X个矩阵,可以看成一个码字是由X个矩阵组成的编码系数矩阵。每个码字的下角标XL×L表示该码字/编码系数矩阵的维度,为XL行L列。
表4-1中编码系数码本中共L+1个矩阵,码字的索引取值为[0,L],可以理解的是码字的索引取值也可以为[1,L+1]。表4-1中编码系数码本的表格表现形式如果转换为矩阵表现形式,还可以与上述第二种表现形式中的矩阵
Figure PCTCN2022100513-appb-000141
对应,其中,a l
Figure PCTCN2022100513-appb-000142
中的矩阵。
表4-1中X的取值可以是大于或等于K,且小于或等于L+1的。
当X=K时,表4-1可以表示为表4-2。
表4-2
Figure PCTCN2022100513-appb-000143
当X=L+1时,表4-1可以表示为表4-3。
表4-3
Figure PCTCN2022100513-appb-000144
表5-1
Figure PCTCN2022100513-appb-000145
表5-1中,每个码字包括X个矩阵,可以看成一个码字是由X个矩阵组成的编码系数矩阵。每个码字的下角标L×XL表示该码字/编码系数矩阵的维度,为L行XL列。
表5-1中编码系数码本中共L+1个矩阵,码字的索引取值为[0,L],可以理解的是码字的索引取值也可以为[1,L+1]。表5-1中编码系数码本的表格表现形式如果转换为矩阵表现形式,还可以与上述第二种表现形式中的矩阵
Figure PCTCN2022100513-appb-000146
对应,其中,a l
Figure PCTCN2022100513-appb-000147
中的矩阵。
表5-1中X的取值可以是大于或等于K,且小于或等于L+1的。
当X=K时,表5-1可以表示为表5-2。
表5-2
Figure PCTCN2022100513-appb-000148
当X=L+1时,表5-1可以表示为表5-3。
表5-3
Figure PCTCN2022100513-appb-000149
Figure PCTCN2022100513-appb-000150
(6)第六种表现形式:
编码系数码本中的一个码字包括X个矩阵。
编码系数码本中的一个码字包括的X个矩阵可以为上文中第一种编码系数集合中的X个矩阵,K≤X≤L+1。这种情况下,编码系数码本的表格表现形式还可以下表所示。
表6-1
Figure PCTCN2022100513-appb-000151
表6-1中,每个码字包括X个矩阵,可以看成一个码字是由X个矩阵组成的编码系数矩阵。每个码字的下角标XL×L表示该码字/编码系数矩阵的维度,为XL行L列。
表6-1中编码系数码本中共L+1个矩阵,码字的索引取值为[0,L],可以理解的是码字的索引取值也可以为[1,L+1]。表6-1中编码系数码本的表格表现形式如果转换为矩阵表现形式,还可以与上述第二种表现形式中的矩阵是
Figure PCTCN2022100513-appb-000152
对应,其中,a 0,a 1,…,a X-1可以表示
Figure PCTCN2022100513-appb-000153
中两两不同的X个矩阵。
表6-1中X的取值可以是大于或等于K,且小于或等于L+1的。当X=K时,表6-1可以表示为表6-2。当X=L+1时,表6-1可以表示为表6-3。
表6-2
Figure PCTCN2022100513-appb-000154
Figure PCTCN2022100513-appb-000155
表6-3
Figure PCTCN2022100513-appb-000156
表7-1
Figure PCTCN2022100513-appb-000157
表7-1中,每个码字包括X个矩阵,可以看成一个码字是由X个矩阵组成的编码系数矩阵。每个码字的下角标L×XL表示该码字/编码系数矩阵的维度,为L行XL列。
表7-1中编码系数码本中共L+1个矩阵,码字的索引取值为[0,L],可以理解的是码字的索引取值也可以为[1,L+1]。表7-1中编码系数码本的表格表现形式如果转换为矩阵表现形式,还可以与上述第二种表现形式中的矩阵
Figure PCTCN2022100513-appb-000158
对应,其中,a 0,a 1,…,a X-1可以表示
Figure PCTCN2022100513-appb-000159
中两两不同的X个矩阵。
表7-1中X的取值可以是大于或等于K,且小于或等于L+1的。当X=K时,表7-1可以表示为表7-2。当X=L+1时,表7-1可以表示为表7-3。
表7-2
Figure PCTCN2022100513-appb-000160
表7-3
Figure PCTCN2022100513-appb-000161
当X=L+1时,上述表4-3、表5-3、表6-3和表7-3中,编码系数码本仅与参数L有关,也就是说编码系数码本中每个码字是由(L+1)个L×L维的矩阵构成。如果需要待编码数据包的个数K不大于L+1,那么可以选取码字中的任意K个矩阵作为K个待编码数据包的编码系数,进一步的,还可以预定义选取规则,如选取每个码字前K个矩阵,选取每个码字的最后K个矩阵等。
(7)第七种表现形式:
编码系数码本中的一个码字包括X个矩阵。
编码系数码本中的一个码字包括的X个矩阵可以为上文中第二种编码系数集合中的X个矩阵,K≤X≤2 L。这种情况下,编码系数码本的表格表现形式可以如表8-1、表8-2、表8-3或如表9-1、表9-2、表9-3所示。
表8-1
Figure PCTCN2022100513-appb-000162
表8-1中,每个码字包括X个矩阵,可以看成一个码字是由X个矩阵组成的编码系数矩阵。每个码字的下角标XL×L表示该码字/编码系数矩阵的维度,为XL行L列。
表8-1中编码系数码本中共L+1个矩阵,码字的索引取值为[0,2 L-1],可以理解的是码字的索引取值也可以为[1,2 L]。表8-1中编码系数码本的表格表现形式如果转换为矩阵表现形式,还可以与上述第四种表现形式中的矩阵
Figure PCTCN2022100513-appb-000163
对应,其中,
Figure PCTCN2022100513-appb-000164
Figure PCTCN2022100513-appb-000165
a l
Figure PCTCN2022100513-appb-000166
中的矩阵,l是a l的下标,l的取值范围为0≤l≤2 L-1。也可以认为
Figure PCTCN2022100513-appb-000167
Figure PCTCN2022100513-appb-000168
中两两不同的2 L-1个矩阵。
表8-1中X的取值可以是大于或等于K,且小于或等于2 L的。当X=K时,表8-1可以表示为表8-2。当X=2 L时,表8-1可以表示为表8-3。
表8-2
Figure PCTCN2022100513-appb-000169
表8-3
Figure PCTCN2022100513-appb-000170
表9-1
Figure PCTCN2022100513-appb-000171
表9-1中,每个码字包括X个矩阵,可以看成一个码字是由X个矩阵组成的编码系数矩阵。每个码字的下角标L×XL表示该码字/编码系数矩阵的维度,为L行XL列。
表9-1中编码系数码本中共L+1个矩阵,码字的索引取值为[0,L],可以理解的是码字的索引取值也可以为[1,L+1]。表9-1中编码系数码本的表格表现形式如果转换为矩阵表现形式,还可以与上述第二种表现形式中的矩阵
Figure PCTCN2022100513-appb-000172
对应,其中,
Figure PCTCN2022100513-appb-000173
Figure PCTCN2022100513-appb-000174
a l
Figure PCTCN2022100513-appb-000175
中的矩阵,l是a l的下标,l的取值范围为0≤l≤2 L-1。也可以认为
Figure PCTCN2022100513-appb-000176
Figure PCTCN2022100513-appb-000177
中两两不同的2 L-1个矩阵。
表9-1中X的取值可以是大于或等于K,且小于或等于2 L的。当X=K时,表9-1可以表示为表9-2。当X=2 L时,表9-1可以表示为表9-3。
表9-2
Figure PCTCN2022100513-appb-000178
表9-3
Figure PCTCN2022100513-appb-000179
当X=2 L时,上述表8-3和表9-3中,编码系数码本仅与参数L有关,也就是说编码系数码本中每个码字是由2 L个L×L维的矩阵构成。如果需要待编码数据包的个数K不大于2 L,那么可以选取码字中的任意K个矩阵作为K个待编码数据包的编码系数,进一步的,还可以预定义选取规则,如选取每个码字前K个矩阵,选取每个码字的最后K个矩阵等。
可以理解的是,上文第一种表现形式至第四种表现形式中编码系数码本的其他矩阵表现形式,也可以转换为表格表现形式。在此不再一一赘述。本申请实施例中,发送端和接收端可以预先存储或预定义编码系数码本,上文举例的各种码本中,有包括L+1个码字的码本,也有包括2 L个码字的码本。可以理解的是,预先存储或预定义的编码系数码本可以是上述举例的码本中的部分码字组成的。例如,预先存储或预定义的编码系数码本可以是包括L+1个码字的码本的部分码字组成的,即预先存储或预定义的编码系数码本中码字的个数可以少于L+1个,预先存储或预定义的编码系数码本中码字的个数可以用Y1表示,Y1个码字可以为包括L+1个码字的码本中的任意Y1个码字组成的。又例如,预先存储或预定义的编码系数码本可以是包括2 L个码字的码本的部分码字组成的,即预先存储或预定义的编码系数码本中码字的个数可以少于2 L个,预先存储或预定义的编码系数码本中码字的个数可以用Y2表示,Y2个码字可以为包括2 L个码字的码本中的任意Y2个码字组成的。
可以理解的是,上述编码系数码本的表格表现形式只是示例,可以对上述编码系数码本的表格表现形式进行变换或变形,例如,对上述编码系数码本的表格表现形式中的索引列和码字列进行互换。无论是表格表现形式还是矩阵表现形式或者其他表现形式的编码系数码本可以对编码系数码本进行变换或变形,例如,可以只取上述编码系数码本的中的部分码字作为码本;又例如,编码系数码本的码字构成的编码系数矩阵,可以进行任意的行列变换得到变换矩阵,将变换矩阵拆解成和原来的码字相同维度的新的码字作为编码系数码本中的码字。又例如,编码系数码本中的码字包含的矩阵元素可以发生部分变换。又例如,当X=K时,编码系数码本中的K个矩阵可以选择与上述示例不同的其他K个矩阵。
以上对本申请实施例提供的网络编码方法介绍完毕,本申请实施例中还提供一种网络译码方法,如图7所示,该方法的具体实现过程如下所述。该方法的执行主体为接收端或者译码端,接收端或者译码端可以是终端设备,也可以是网络设备。如果接收端或者译码 端为终端设备,发送端或编码端可以为网络设备。如果接收端或译码端为网络设备,发送端或编码端可以为终端设备。
S701.获取待译码数据,所述待译码数据包括编码包。
其中编码包携带指示信息,指示信息用于指示编码过程中所使用的K个编码系数,该K个编码系数与K个原始数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。
S702.根据指示信息对待译码数据进行译码,获得K个原始数据包。
可以理解的是,所述待译码数据还可以包括系统包,所述译码为对所述系统包和所述编码包一起进行译码,获得所述K个原始数据包。所述编码包的个数为一个或多个。所述待译码数据的个数不小于K。可以理解的是,网络译码方法与网络编码方法具有相同或相应的过程。原始数据包可以对应编码过程中的待编码数据包。指示信息的描述可以参考上述网络编码方法中的描述。例如,当指示信息基于上述指示方式一时,指示信息指示K个编码系数。每个编码包中携带对应的随机种子或编码包的标识,随机种子或编码包的标识可以指示K个编码系数。接收端可以利用随机种子/编码包的标识,采用相同的过程确定K个编码系数。例如,接收端根据该随机种子/编码包的标识获得一组和发送端相同的随机数列,选择出同样的K个随机数,并使用相同的方式确定出K个索引以及K个索引对应的K个编码系数。接收端根据K个编码系数进行译码。
当指示信息为编码系数码本中一个码字的索引时,发送端和接收端可以预先存储或预定义编码系数码本,编码系数码本中的每个码字都有对应的索引,通过码字的索引来指示码字对应的X个矩阵,X大于K时,可以选择X个矩阵中的K个矩阵来作为K个编码系数。每个编码包都有对应的指示信息,指示信息指示该编码包对应的码字。可选的,编码包的包头还会携带原始数据包的个数K。
以下通过性能对比图来表征本申请中几种实施例的有益效果。
图8中分别示意了几种编码方案的性能对比。虚线表示基于图5实施例且编码系数为GF(2)中随机选取的数值的方案,即现有技术GF(2)上的RLNC的方案;三角形表示基于图5实施例且编码系数为GF(8)中随机选取的数值的方案,即现有技术GF(8)上的RLNC的方案;圆形表示基于图5实施例且编码系数为GF(256)中随机选取的数值的方案,即现有技术GF(256)上的RLNC的方案。菱形表示基于第一种编码系数集合、并基于随机种子或编码包的标识指示编码系数的方案,星号表示基于第二种编码系数集合、并基于随机种子或编码包的标识指示编码系数的方案。菱形编码方案和星号编码方案中编码系数为二元域的矩阵,这样将有限域的乘法转化为二元域的异或运算,可以避免图5实施例高域高复杂度的有限域乘法运算,可以只存在二元域的异或运算,复杂度和图5实施例这种方案中编码系数为GF(2)时的运算复杂度相当,但是性能远好于图5实施例这种方案中编码系数为GF(2)的性能,几乎接近于图5实施例这种方案中编码系数为GF(256)的性能。
图8中,纵坐标是利用网络编码纠错后最终残留的丢包率,相同信道丢包率下不同编码方案的残留丢包率越低对应的编码方案越好。可以看出菱形编码方案和星号编码方案的性能均接近于图5实施例这种方案中编码系数为GF(256)的性能。
图9中分别示意了几种编码方案的性能对比。各种线表示的编码方案与图8相同,可以参照图8的描述。图9中,纵坐标是利用网络编码纠错后最终残留的丢包率,相同信道 丢包率下不同编码方案的残留丢包率越低对应的编码方案越好。可以看出菱形编码方案和星号编码方案的性能均接近于图5实施例这种方案中编码系数为GF(256)的性能。
可以理解,在本申请中,“当…时”、“若”以及“如果”均指在某种客观情况下装置会做出相应的处理,并非是限定时间,且也不要求装置实现时一定要有判断的动作,也不意味着存在其它限定。
本申请中的“同时”可以理解为在相同的时间点,也可以理解为在一段时间段内,还可以理解为在同一个周期内,具体可以结合上下文进行理解。
可以理解,在本申请各实施例中,“相应的”可以表示为所涉及的两者相关联。
本申请中各表所示的对应关系可以被配置,也可以是预定义的。各表中的信息的取值仅仅是举例,可以配置为其他值,本申请并不限定。在配置表格中两列内容的对应关系时,并不一定要求必须配置各表中示意出的所有对应关系。例如,本申请中的表格中,某些行示出的对应关系也可以不配置。又例如,可以基于上述表格做适当的变形调整,例如,拆分,合并等等。上述各表中标题示出参数的名称也可以采用通信装置可理解的其他名称,其参数的取值或表示方式也可以通信装置可理解的其他取值或表示方式。上述各表在实现时,也可以采用其他的数据结构,例如可以采用数组、队列、容器、栈、线性表、指针、链表、树、图、结构体、类、堆、散列表或哈希表等。
本申请中的预定义可以理解为定义、预先定义、存储、预存储、预协商、预配置、固化、或预烧制。
需要说明的是,本申请中的各个应用场景中的举例仅仅表现了一些可能的实现方式,是为了对本申请的方法更好的理解和说明。本领域技术人员可以根据申请提供的网络编码方法译码方法,得到一些演变形式的举例。
上述对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,本申请实施例还提供的网络编码装置和网络译码装置,网络编码装置和网络译码装置可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
如图10所示,基于同一技术构思,本申请实施例还提供了一种网络编码装置1000,该网络编码装置1000可以是网络编码装置,也可以是网络编码装置中的装置,或者是能够和网络编码装置匹配使用的装置。网络编码装置1000可以是终端设备或网络设备。一种设计中,该网络编码装置1000可以包括执行上述方法实施例中网络编码方法所涉及的方法/操作/步骤/动作所一一对应的模块,该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种设计中,该网络编码装置1000可以包括处理模块1001和输入输出模块1002。
处理模块1001,用于对K个待编码数据包进行编码,生成编码包;其中,编码包携带指示信息,指示信息用于指示生成编码包所使用的K个编码系数,在编码的过程中K个编码系数与K个待编码数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。输入输出模块1002用于发送编码包。
处理模块1001还可以执行上述方法实施例中网络编码方法的其它操作,在此不再一一赘述。
如图11所示,基于同一技术构思,本申请实施例还提供了一种网络译码装置1100, 该网络译码装置1100可以是网络译码装置,也可以是网络译码装置中的装置,或者是能够和网络译码装置匹配使用的装置。网络译码装置1100可以是终端设备或网络设备。一种设计中,该网络译码装置1100可以包括执行上述方法实施例中网络译码方法所涉及的方法/操作/步骤/动作所一一对应的模块,该模块可以是硬件电路,也可是软件,也可以是硬件电路结合软件实现。一种设计中,该网络译码装置1100可以包括处理模块1101和输入输出模块1102。
输入输出模块1102用于获取待译码数据,待译码数据包括编码包,所述编码包携带指示信息,指示信息用于指示编码过程中所使用的K个编码系数,K个编码系数与K个原始数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。处理模块1101,用于根据指示信息对待译码数据进行译码,获得K个原始数据包。
处理模块1101还可以执行上述方法实施例中网络译码方法的其它操作,在此不再一一赘述。
本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,另外,在本申请各个实施例中的各功能模块可以集成在一个处理器中,也可以是单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
如图12所示为本申请实施例提供的网络编码装置1200,用于实现本申请提供的网络编码方法。网络编码装置1200可以是位于网络编码装置中的装置,也可以是网络编码装置,或者是能够和网络编码装置匹配使用的装置。网络编码装置1200可以是终端设备也可以是网络设备。其中,该网络编码装置1200可以为芯片系统或芯片。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。网络编码装置1200包括至少一个处理器1220,用于实现本申请实施例提供的网络编码方法。网络编码装置1200还可以包括输入输出接口1210。在本申请实施例中,输入输出接口1210用于通过传输介质和其它装置进行通信。例如,网络编码装置1200是芯片时,通过输入输出接口1210与其他芯片或器件进行传输。处理器1220用于实现上述方法实施例所述的方法。
处理器1220,用于对K个待编码数据包进行编码,生成编码包;其中,编码包携带指示信息,指示信息用于指示生成编码包所使用的K个编码系数,在编码的过程中K个编码系数与K个待编码数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。
输入输出接口1210用于发送编码包。
处理器1220还可以执行上述方法实施例中网络编码方法的其它操作,在此不再一一赘述。
网络编码装置1200还可以包括至少一个存储器1230,用于存储程序指令和/或数据。存储器1230和处理器1220耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1220可能和存储器1230协同操作。处理器1220可能执行存储器1230中存储的程序指令。所述至少一个存储器中的至少一个可以与处理器集成在一起。
如图13所示为本申请实施例提供的网络译码装置1300,用于实现本申请提供的网络编码方法。网络译码装置1300可以是位于网络译码装置中的装置,也可以是网络译码装 置,或者是能够和网络译码装置匹配使用的装置。网络译码装置1300可以是终端设备也可以是网络设备。其中,该网络译码装置1300可以为芯片系统或芯片。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。网络译码装置1300包括至少一个处理器1320,用于实现本申请实施例提供的网络译码方法。网络译码装置1300还可以包括输入输出接口1310。在本申请实施例中,输入输出接口1310用于通过传输介质和其它装置进行通信。例如,网络译码装置1300是芯片时,通过输入输出接口1310与其他芯片或器件进行传输。处理器1320用于实现上述方法实施例所述的方法。
输入输出接口1310用于获取待译码数据,所述待译码数据包括编码包,所述编码包携带指示信息,指示信息用于指示编码过程中所使用的K个编码系数,K个编码系数与K个原始数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。处理器1320,用于根据指示信息对待译码数据进行译码,获得K个原始数据包。
处理器1320还可以执行上述方法实施例中网络译码方法的其它操作,在此不再一一赘述。
处理器1320还可以执行上述方法实施例中网络译码方法的其它操作,在此不再一一赘述。
网络译码装置1300还可以包括至少一个存储器1330,用于存储程序指令和/或数据。存储器1330和处理器1320耦合。本申请实施例中的耦合是装置、单元或模块之间的间接耦合或通信连接,可以是电性,机械或其它的形式,用于装置、单元或模块之间的信息交互。处理器1320可能和存储器1330协同操作。处理器1320可能执行存储器1330中存储的程序指令。所述至少一个存储器中的至少一个可以与处理器集成在一起。
本申请实施例中,处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated Circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存 取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例提供的通信装置用于实现本申请提供的方法。通信装置可以用于实现本申请实施例提供的网络编码方法,也可以用于实现本申请实施例提供的网络译码方法。当实现网络编码方法时,通信装置可以是网络编码装置,也可以是位于网络编码装置中的装置,也可以是能够和网络编码装置匹配的装置。当实现网络译码方法时,通信装置可以是网络译码装置,也可以是位于网络译码装置中的装置,也可以是能够和网络译码装置匹配的装置。
其中,该通信装置可以为芯片系统或芯片。本申请实施例中,芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。上述实施例提供的方法中的部分或全部可以通过硬件来实现也可以通过软件来实现,当通过硬件实现时,通信装置包括:输入接口电路、逻辑电路和输出接口电路。
当通信装置用于实现网络编码方法时,
输入接口电路,用于获取K个待编码数据包。
逻辑电路,用于对K个待编码数据包进行编码,生成编码包;其中,编码包携带指示信息,指示信息用于指示生成编码包所使用的K个编码系数,在编码的过程中K个编码系数与K个待编码数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。
输出接口电路,用于发送编码包。
当通信装置用于实现网络译码方法时,输入接口电路用于获取待译码数据,所述待译码数据包括编码包,所述编码包携带指示信息,指示信息用于指示编码过程中所使用的K个编码系数,K个编码系数与K个原始数据包一一对应,K个编码系数中的非零编码系数均为矩阵,矩阵的维度为L×L,K、L均为大于1的整数。逻辑电路,用于根据指示信息对待译码数据进行译码,获得K个原始数据包。
逻辑电路还可以执行上述方法实施例中网络编码方法或网络译码方法的其它操作,在此不再一一赘述。
可选的,通信装置在具体实现时可以是芯片或者集成电路。
本申请上述方法实施例描述的网络编码装置、网络译码装置和通信装置所执行的操作和功能中的部分或全部,可以用芯片或集成电路来完成。
本申请实施例提供了一种计算机可读存储介质,存储有计算机程序,该计算机程序包括用于执行上述方法实施例的指令。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例。
上述实施例所提供的方法,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品可以包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。所述计算机指令可以存储在计算机可 读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁盘)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机 程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (66)

  1. 一种网络编码方法,其特征在于,包括:
    对K个待编码数据包进行编码,生成编码包;其中,所述编码包携带指示信息,所述指示信息用于指示生成所述编码包所使用的K个编码系数,在所述编码的过程中所述K个编码系数与所述K个待编码数据包一一对应,所述K个编码系数中的非零编码系数均为矩阵,所述矩阵的维度为L×L,K、L均为大于1的整数;
    发送所述编码包。
  2. 一种网络译码方法,其特征在于,包括:
    获取待译码数据,所述待译码数据包括编码包,所述编码包携带指示信息,所述指示信息用于指示编码过程中所使用的K个编码系数,所述K个编码系数与所述K个原始数据包一一对应,所述K个编码系数中的非零编码系数均为矩阵,所述矩阵的维度为L×L,K、L均为大于1的整数;
    根据所述指示信息对所述待译码数据进行译码,获得所述K个原始数据包。
  3. 如权利要求1或2所述的方法,其特征在于,所述指示信息为编码系数码本中一个码字的索引,所述码字包括编码系数集合中的X个矩阵,所述编码系数集合包括有限数目的矩阵,X≥K,所述K个编码系数为所述X个矩阵中的K个矩阵。
  4. 如权利要求3所述的方法,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100001
    Figure PCTCN2022100513-appb-100002
    其中,0≤p l%(L+1)≤L,所述编码系数码本中的不同码字对应的p l%(L+1)的取值不同,所述码字的索引与p l%(L+1)具有对应关系,
    Figure PCTCN2022100513-appb-100003
    分别为a 1,a 2,…,a X的p l次幂,a 1,a 2,…,a X为来自所述编码系数集合中的矩阵,X表示所述码字中所包括的矩阵的个数,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵,其中,p l%(L+1)表示p l除以(L+1)的余数。
  5. 如权利要求4所述的方法,其特征在于,X≤L+1,a 1,a 2,…,a X表示所述编码系数集合中两两不同的X个矩阵。
  6. 如权利要求3所述的方法,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100004
    Figure PCTCN2022100513-appb-100005
    所述编码系数码本中的不同码字对应不同的a l
    Figure PCTCN2022100513-appb-100006
    分别为a l的p 0,p 1,…,p X-1次幂,X表示所述码字中所包括的矩阵的个数,所述码字的索引与l具有对应关系,a l表示所述编码系数集合中的矩阵,l为a l在所述编码系数集合中的索引,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。
  7. 如权利要求6所述的方法,其特征在于,X≤L+1,p 0,p 1,…,p X-1分别除以(L+1)得到的X个余数为[0,L]中两两不同的X个值。
  8. 如权利要求4~7任一项所述的方法,其特征在于,所述编码系数集合中的不同矩阵对应不同的循环移位矩阵,所述编码系数集合中每个矩阵的循环移位矩阵的变换形式相同。
  9. 如权利要求4~8任一项所述的方法,其特征在于,所述编码系数集合中的矩阵的数目小于或等于L+1个。
  10. 如权利要求3~9任一项所述的方法,其特征在于,所述编码系数集合中的矩阵满足
    Figure PCTCN2022100513-appb-100007
    其中,M满足0≤M%(L+1)≤L,
    Figure PCTCN2022100513-appb-100008
    表示对(L+1)×(L+1)的单位矩阵循环移M位得到的矩阵;
    Figure PCTCN2022100513-appb-100009
    表示(L+1)×(L+1)的循环移位矩阵,
    Figure PCTCN2022100513-appb-100010
    其中,G为L×(L+1)的矩阵,
    Figure PCTCN2022100513-appb-100011
    Figure PCTCN2022100513-appb-100012
    其中,H为(L+1)×L的矩阵。
  11. 如权利要求3所述的方法,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100013
    Figure PCTCN2022100513-appb-100014
    其中,0≤p l%(2 L)≤2 L-1,
    Figure PCTCN2022100513-appb-100015
    表示a 0,a 1,…,a X-1的p l次幂,X表示所述码字中所包括的矩阵的个数,所述编码系数码本中的不同码字对应的p l%(2 L)的取值不同,所述码字的索引与p l%(2 L)具有对应关系,所述编码系数集合中的矩阵满足本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1),p l%(2 L)表示p l除以2 L的余数,N%2 L表示N除以2 L的余数,2 L表示2的L次幂。
  12. 如权利要求11所述的方法,其特征在于,X≤2 L,a 0,a 1,…,a X-1表示所述编码系数集合中两两不同的X个矩阵。
  13. 如权利要求11所述的方法,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100016
    Figure PCTCN2022100513-appb-100017
    分别为a l的p 0,p 1,…,p X-1次幂,X表示所述码字中所包括的矩阵的个数,所述编码系数码本中的不同码字对应不同的a l,所述码字的索引与l具有对应关系,a l表示所述编码系数集合中的矩阵,l为a l在所述编码系数集合中的索引,所述编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1)。
  14. 如权利要求13所述的方法,其特征在于,X≤2 L,p 0,p 1,…,p X-1分别除以2 L得到的X个余数为[0,2 L-1]中两两不同的X个值。
  15. 如权利要求11~14任一项所述的方法,其特征在于,所述编码系数集合中的不同矩阵对应的N%2 L取值不同。
  16. 如权利要求11~15任一项所述的方法,其特征在于,所述编码系数集合中的矩阵的数目小于或等于2 L个。
  17. 如权利要求11~16任一项所述的方法,其特征在于,所述本原多项式的友矩阵为A;
    其中,
    Figure PCTCN2022100513-appb-100018
    或A为
    Figure PCTCN2022100513-appb-100019
    的行列变换矩阵;
    A中的列向量[a L-1…a 1a 0]对应的所述本原多项式f(x)=a 0+a 1x+…a L-1x L-1+x L为伽罗华域GF(2 L)的本原多项式中的任意一个。
  18. 如权利要求1或2所述的方法,其特征在于,所述指示信息为随机种子或所述编码包的标识,所述随机种子或所述编码包的标识用于确定所述K个编码系数在编码系数集合 中的索引,所述编码系数集合包括有限数目的矩阵。
  19. 如权利要求18所述的方法,其特征在于,所述随机种子或所述编码包的标识对应K个随机数,所述K个随机数用于确定所述K个编码系数在编码系数集合中的索引。
  20. 如权利要求18或19所述的方法,其特征在于,所述随机种子或所述标识与所述K个编码系数在编码系数集合中的索引具有对应关系,所述对应关系满足:所述K个编码系数在编码系数集合中的索引是所述随机种子或所述标识的函数。
  21. 如权利要求20所述的方法,其特征在于,基于所述随机种子或所述标识的随机函数生成K个值,基于所述K个值进行取余操作。
  22. 如权利要求18-21中任一所述的方法,其特征在于,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。
  23. 如权利要求22所述的方法,其特征在于,所述编码系数集合中的不同矩阵对应不同的循环移位矩阵不同,所述编码系数集合中为循环移位矩阵的变换矩阵时,所述编码系数集合中每个矩阵的循环移位矩阵的变换形式相同,循环移位矩阵的变换形式包括对循环移位矩阵进行左乘或右乘中的至少一项。
  24. 如权利要求18-23中任一所述的方法,其特征在于,所述编码包的标识包括序列号、或者编码包在编码块中的标识ID。
  25. 如权利要求18或19所述的方法,其特征在于,所述编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1)。
  26. 如权利要求25所述的方法,其特征在于,所述编码系数集合中的不同矩阵对应的N取值不同。
  27. 如权利要求25或26所述的方法,其特征在于,所述编码系数集合中的矩阵的数目小于或等于2 L个。
  28. 如权利要求25-27中任一所述的方法,其特征在于,所述本原多项式的友矩阵为A;
    其中,
    Figure PCTCN2022100513-appb-100020
    或A为
    Figure PCTCN2022100513-appb-100021
    的行列变换矩阵;
    A中的列向量[a L-1…a 1a 0]对应的本原多项式f(x)=a 0+a 1x+…a L-1x L-1+x L为伽罗华域GF(2 L)的本原多项式中的任意一个。
  29. 如权利要求1~28任一项所述的方法,其特征在于,所述矩阵中的元素均为二元域中的元素。
  30. 一种网络编码装置,其特征在于,包括:
    处理模块,用于对K个待编码数据包进行编码,生成编码包;其中,所述编码包携带指示信息,所述指示信息用于指示生成所述编码包所使用的K个编码系数,在所述编码的过程中所述K个编码系数与所述K个待编码数据包一一对应,所述K个编码系数中的非零编码系数均为矩阵,所述矩阵的维度为L×L,K、L均为大于1的整数;
    输入输出模块,用于发送所述编码包。
  31. 一种网络译码装置,其特征在于,包括:
    输入输出模块,用于获取待译码数据,所述待译码数据包括编码包,所述编码包携带指示信息,所述指示信息用于指示编码过程中所使用的K个编码系数,所述K个编码系数与所述K个原始数据包一一对应,所述K个编码系数中的非零编码系数均为矩阵,所述矩阵的维度为L×L,K、L均为大于1的整数;
    处理模块,用于根据所述指示信息对所述待译码数据进行译码,获得所述K个原始数据包。
  32. 如权利要求30或31所述的装置,其特征在于,所述指示信息为编码系数码本中一个码字的索引,所述码字包括编码系数集合中的X个矩阵,所述编码系数集合包括有限数目的矩阵,X≥K,所述K个编码系数为所述X个矩阵中的K个矩阵。
  33. 如权利要求32所述的装置,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100022
    Figure PCTCN2022100513-appb-100023
    其中,0≤p l%(L+1)≤L,所述编码系数码本中的不同码字对应的p l%(L+1)的取值不同,所述码字的索引与p l%(L+1)具有对应关系,
    Figure PCTCN2022100513-appb-100024
    分别为a 1,a 2,…,a X的p l次幂,a 1,a 2,…,a X为来自所述编码系数集合中的矩阵,X表示所述码字中所包括的矩阵的个数,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵,其中,p l%(L+1)表示p l除以(L+1)的余数。
  34. 如权利要求33所述的装置,其特征在于,X≤L+1,a 1,a 2,…,a X表示所述编码系数集合中两两不同的X个矩阵。
  35. 如权利要求32所述的装置,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100025
    Figure PCTCN2022100513-appb-100026
    所述编码系数码本中的不同码字对应不同的a l
    Figure PCTCN2022100513-appb-100027
    分别为a l的p 0,p 1,…,p X-1次幂,X表示所述码字中所包括的矩阵的个数,所述码字的索引与l具有对应关系,a l表示所述编码系数集合中的矩阵,l为a l在所述编码系数集合中的索引,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。
  36. 如权利要求35所述的装置,其特征在于,X≤L+1,p 0,p 1,…,p X-1分别除以(L+1)得到的X个余数为[0,L]中两两不同的X个值。
  37. 如权利要求33~36任一项所述的装置,其特征在于,所述编码系数集合中的不同矩阵对应不同的循环移位矩阵,所述编码系数集合中每个矩阵的循环移位矩阵的变换形式相同。
  38. 如权利要求33~37任一项所述的装置,其特征在于,所述编码系数集合中的矩阵的数目小于或等于L+1个。
  39. 如权利要求32~38任一项所述的装置,其特征在于,所述编码系数集合中的矩阵满足
    Figure PCTCN2022100513-appb-100028
    其中,M满足0≤M%(L+1)≤L,
    Figure PCTCN2022100513-appb-100029
    表示对(L+1)×(L+1)的单位矩阵循环移M位得到的矩阵;
    Figure PCTCN2022100513-appb-100030
    表示(L+1)×(L+1)的循环移位矩阵,
    Figure PCTCN2022100513-appb-100031
    其中,G为L×(L+1)的矩阵,
    Figure PCTCN2022100513-appb-100032
    Figure PCTCN2022100513-appb-100033
    其中,H为(L+1)×L的矩阵。
  40. 如权利要求39所述的装置,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100034
    Figure PCTCN2022100513-appb-100035
    其中,0≤p l%(2 L)≤2 L-1,
    Figure PCTCN2022100513-appb-100036
    表示a 0,a 1,…,a X-1的p l次幂,X表示所述码字中所包括的矩阵的个数,所述编码系数码本中的不同码字对应的p l%(2 L)的取值不同,所述码字的索引与p l%(2 L)具有对应关系,所述编码系数集合中的矩阵满足本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1),p l%(2 L)表示p l除以2 L的余数,N%2 L表示N除以2 L的余数,2 L表示2的L次幂。
  41. 如权利要求40所述的装置,其特征在于,X≤2 L,a 0,a 1,…,a X-1表示所述编码系数集合中两两不同的X个矩阵。
  42. 如权利要求40所述的装置,其特征在于,所述码字表示为
    Figure PCTCN2022100513-appb-100037
    Figure PCTCN2022100513-appb-100038
    分别为a l的p 0,p 1,…,p X-1次幂,X表示所述码字中所包括的矩阵的个数,所述编码系数码本中的不同码字对应不同的a l,所述码字的索引与l具有对应关系,a l表示所述编码系数集合中的矩阵,l为a l在所述编码系数集合中的索引,所述编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1)。
  43. 如权利要求42所述的装置,其特征在于,X≤2 L,p 0,p 1,…,p X-1分别除以2 L得到的X个余数为[0,2 L-1]中两两不同的X个值。
  44. 如权利要求40~43任一项所述的装置,其特征在于,所述编码系数集合中的不同矩阵对应的N%2 L取值不同。
  45. 如权利要求40~44任一项所述的装置,其特征在于,所述编码系数集合中的矩阵的数目小于或等于2 L个。
  46. 如权利要求40~45任一项所述的装置,其特征在于,所述本原多项式的友矩阵为A;
    其中,
    Figure PCTCN2022100513-appb-100039
    或A为
    Figure PCTCN2022100513-appb-100040
    的行列变换矩阵;
    A中的列向量[a L-1…a 1a 0]对应的所述本原多项式f(x)=a 0+a 1x+…a L-1x L-1+x L为伽罗华域GF(2 L)的本原多项式中的任意一个。
  47. 如权利要求30或31所述的装置,其特征在于,所述指示信息为随机种子或所述编码包的标识,所述随机种子或所述编码包的标识用于确定所述K个编码系数在编码系数集合中的索引,所述编码系数集合包括有限数目的矩阵。
  48. 如权利要求47所述的装置,其特征在于,所述随机种子或所述编码包的标识对应K个随机数,所述K个随机数用于确定所述K个编码系数在编码系数集合中的索引。
  49. 如权利要求47或48所述的装置,其特征在于,所述随机种子或所述标识与所述K个编码系数在编码系数集合中的索引具有对应关系,所述对应关系满足:所述K个编码系数在编码系数集合中的索引是所述随机种子或所述标识的函数。
  50. 如权利要求49所述的装置,其特征在于,基于所述随机种子或所述标识的随机函数生成K个值,基于所述K个值进行取余操作。
  51. 如权利要求47或48所述的装置,其特征在于,所述编码系数集合中的矩阵为循环移位矩阵或循环移位矩阵的变换矩阵。
  52. 如权利要求51所述的装置,其特征在于,所述编码系数集合中的不同矩阵对应不同的循环移位矩阵不同,所述编码系数集合中为循环移位矩阵的变换矩阵时,所述编码系数集合中每个矩阵的循环移位矩阵的变换形式相同,循环移位矩阵的变换形式包括对循环移位矩阵进行左乘或右乘中的至少一项。
  53. 如权利要求47-52中任一所述的装置,其特征在于,所述编码包的标识包括序列号、或者编码包在编码块中的标识ID。
  54. 如权利要求47-53中任一所述的装置,其特征在于,所述编码系数集合中的矩阵为本原多项式的友矩阵的N次幂或本原多项式的友矩阵的N次幂的变换矩阵,N满足0≤N%2 L≤(2 L-1)。
  55. 如权利要求54所述的装置,其特征在于,所述编码系数集合中的不同矩阵对应的N取值不同。
  56. 如权利要求54或55所述的装置,其特征在于,所述编码系数集合中的矩阵的数目小于或等于2 L个。
  57. 如权利要求54-56中任一所述的装置,其特征在于,所述本原多项式的友矩阵为A;
    其中,
    Figure PCTCN2022100513-appb-100041
    或A为
    Figure PCTCN2022100513-appb-100042
    的行列变换矩阵;
    A中的列向量[a L-1…a 1a 0]对应的本原多项式f(x)=a 0+a 1x+…a L-1x L-1+x L为伽罗华域GF(2 L)的本原多项式中的任意一个。
  58. 如权利要求30~57任一项所述的装置,其特征在于,所述矩阵中的元素均为二元域中的元素。
  59. 一种计算机可读存储介质,其特征在于,所述计算机存储介质中存储有计算机可读指令,当所述计算机可读指令运行时,如权利要求1或从属于权利要求1的权利要求3~29任一项所述的方法被执行,或,如权利要求2或从属于权利要求2的权利要求3~29任一项所述的方法被执行。
  60. 一种计算机程序产品,其特征在于,所述计算机程序产品中存储有计算机可读指令,当所述计算机可读指令运行时,如权利要求1或从属于权利要求1的权利要求3~29任一项所述的方法被执行,或,如权利要求2或从属于权利要求2的权利要求3~29任一项所述的方法被执行。
  61. 一种装置,其特征在于,包括电路,所述电路用于执行如权利要求1或从属于权利要求1的权利要求3~29任一项所述的方法,或,如权利要求2或从属于权利要求2的权利要求3~29任一项所述的方法。
  62. 一种装置,其特征在于,包括处理器,所述处理器与存储器耦合,所述存储器存储有指令,所述指令被执行时,使得所述装置执行如权利要求1或从属于权利要求1的权利要求3~29任一项所述的方法,或,如权利要求2或从属于权利要求2的权利要求3~29任一项所述的方法。
  63. 一种装置,其特征在于,包括用于执行如权利要求1或从属于权利要求1的权利要求3~29任一项所述的方法,或,如权利要求2或从属于权利要求2的权利要求3~29任一 项所述的方法的模块。
  64. 一种通信装置,其特征在于,包括处理器和存储器,所述处理器与所述存储器耦合;
    存储器存储有计算机程序;
    处理器,用于执行所述存储器中存储的计算机程序,以使得所述装置执行如权利要求1或从属于权利要求1的权利要求3~29任一项所述的方法,或,如权利要求2或从属于权利要求2的权利要求3~29任一项所述的方法。
  65. 一种芯片,其特征在于,所述芯片与存储器耦合,用于读取并执行所述存储器中存储的程序指令,以执行如权利要求1或从属于权利要求1的权利要求3~29任一项所述的方法,或,如权利要求2或从属于权利要求2的权利要求3~29任一项所述的方法。
  66. 一种通信系统,其特征在于,包括如权利要求30或从属于权利要求30的权利要求32-58中的任一项所述的装置,或,如权利要求31或从属于权利要求31的权利要求32-58中的任一项所述的装置中的至少一项。
PCT/CN2022/100513 2021-06-25 2022-06-22 一种网络编码方法及装置 WO2022268130A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110713504.8A CN115529105A (zh) 2021-06-25 2021-06-25 一种网络编码方法及装置
CN202110713504.8 2021-06-25

Publications (1)

Publication Number Publication Date
WO2022268130A1 true WO2022268130A1 (zh) 2022-12-29

Family

ID=84545195

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/100513 WO2022268130A1 (zh) 2021-06-25 2022-06-22 一种网络编码方法及装置

Country Status (2)

Country Link
CN (1) CN115529105A (zh)
WO (1) WO2022268130A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076467A (zh) * 2023-10-18 2023-11-17 公诚管理咨询有限公司 基于ma体系的智慧城市标识方法、系统、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102986156A (zh) * 2011-05-11 2013-03-20 华为技术有限公司 编码方法及设备、解码方法及设备、编解码系统
CN105103491A (zh) * 2014-01-23 2015-11-25 华为技术有限公司 数据传输方法和装置
US20170118674A1 (en) * 2015-10-23 2017-04-27 Motorola Mobility Llc Random Linear Network Encoded Data Transmission From User Equipment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102986156A (zh) * 2011-05-11 2013-03-20 华为技术有限公司 编码方法及设备、解码方法及设备、编解码系统
CN105103491A (zh) * 2014-01-23 2015-11-25 华为技术有限公司 数据传输方法和装置
US20170118674A1 (en) * 2015-10-23 2017-04-27 Motorola Mobility Llc Random Linear Network Encoded Data Transmission From User Equipment

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117076467A (zh) * 2023-10-18 2023-11-17 公诚管理咨询有限公司 基于ma体系的智慧城市标识方法、系统、设备及介质
CN117076467B (zh) * 2023-10-18 2024-02-27 公诚管理咨询有限公司 基于ma体系的智慧城市标识方法、系统、设备及介质

Also Published As

Publication number Publication date
CN115529105A (zh) 2022-12-27

Similar Documents

Publication Publication Date Title
KR102227250B1 (ko) 코드를 인코딩 및 디코딩하기 위한 방법과 시스템
WO2019158031A1 (zh) 编码的方法、译码的方法、编码设备和译码设备
TWI745579B (zh) 用於極性碼的有效率交錯器設計
KR102262186B1 (ko) 높은 레이트의 긴 ldpc 코드
US11558068B2 (en) Method and apparatus for encoding polar code concatenated with CRC code
WO2022161201A1 (zh) 编码调制与解调解码方法及装置
WO2021136540A1 (zh) Ldpc码的编码的方法和通信装置
WO2022268130A1 (zh) 一种网络编码方法及装置
WO2020098461A1 (zh) Polar码编码方法及装置
WO2023273995A1 (zh) 数据处理方法及装置
WO2021249080A1 (zh) 编码方法及装置
US11632138B2 (en) UPO compliant information sequences for polar codes
WO2023273975A1 (zh) 一种数据传输方法和通信装置
WO2019137523A1 (zh) 编码方法、编码设备以及系统
WO2023030236A1 (zh) 一种数据传输方法、数据接收方法和通信装置
WO2024055934A1 (zh) 编码方法、译码方法、通信装置及计算机可读存储介质
WO2022268064A1 (zh) 数据传输方法及相关装置
WO2023241626A1 (zh) Ldpc的编译码方法和相关装置
WO2024103386A1 (zh) 一种基于ldpc码的通信方法和通信装置
WO2023109733A1 (zh) 一种速率匹配的方法及装置
WO2023072077A1 (zh) 通信方法及相关装置
WO2024077486A1 (zh) 一种确定循环冗余校验比特的方法、通信方法及装置
WO2024041194A1 (zh) 速率匹配的方法和通信装置
WO2023216991A1 (zh) Ldpc的编译码方法和相关装置
WO2023226689A1 (zh) 一种编码、译码方法及装置

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: 22827622

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE