WO2021209037A1 - 数据恢复方法及装置 - Google Patents

数据恢复方法及装置 Download PDF

Info

Publication number
WO2021209037A1
WO2021209037A1 PCT/CN2021/087743 CN2021087743W WO2021209037A1 WO 2021209037 A1 WO2021209037 A1 WO 2021209037A1 CN 2021087743 W CN2021087743 W CN 2021087743W WO 2021209037 A1 WO2021209037 A1 WO 2021209037A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
coding
unit
packet
data
Prior art date
Application number
PCT/CN2021/087743
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 WO2021209037A1 publication Critical patent/WO2021209037A1/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/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • 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/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability

Definitions

  • This application relates to the field of communication technology, and in particular to a data recovery method and device.
  • Forward erasure coding is a method of recovering lost data by encoding data. It encodes the original data unit as a unit to generate a new redundant coding unit, so that the redundant coding unit can be used to restore the original data when the original data unit is lost. Forward erasure coding technology can be applied to the transmission layer for network transmission scenarios. By encoding the application data unit generated by the sender, redundant coding packets are introduced to provide the network with additional packet loss recovery capabilities, thereby avoiding automatic retransmission requests The (Automatic Repeat-reQuest, ARQ) protocol retransmits lost data packets.
  • ARQ Automatic Repeat-reQuest
  • forward erasure coding technology has the following application scenarios (1) Weak network environment to alleviate the problem of congestion control window avoidance caused by high packet loss rate; (2) Delay-sensitive applications such as real-time video transmission to Overcome the high delay caused by packet loss and retransmission; (3) Scenarios where it is difficult for the sender and receiver to interact in both directions, such as multicast scenarios and deep space communication scenarios, to achieve reliable communication without feedback. Therefore, forward erasure codes are of great significance for improving the quality and reliability of network transmission.
  • the performance of forward erasure codes can be described by three indicators: (1) Recovery delay, which describes the delay from the moment when the receiving end detects the data packet loss to when the data packet is restored and delivered to the application layer. Delay-sensitive services have strict constraints on the recovery delay. (2) Erasure capability, which describes the maximum loss recovery capability for a group of data packets. Due to the burst packet loss characteristics of the transport layer, the erasure correction capability determines whether the erasure code can recover multiple packet losses that occur in a group of data packets. Maximum distance separable (MDS) codes describe a class of erasure codes with the best erasure correction ability, that is, codes whose minimum Hamming distance reaches the Singleton boundary.
  • MDS Maximum distance separable
  • the forward erasure coding techniques in the prior art including linear block codes, fountain codes, and sliding window random linear codes, have the disadvantages of high recovery delay and high coding and decoding complexity, and cannot guarantee erasure correction capabilities.
  • the improvement of forward erasure coding technology is an urgent problem to be solved.
  • the embodiments of the present application provide a data recovery method and device, so as to reduce the loss recovery time delay, and at the same time reduce the recovery complexity of the data unit lost in the transmission process.
  • a data recovery method including:
  • the first coded data includes a plurality of data unit groups, each of the plurality of data unit groups includes an original data unit and a redundant coding unit, and the redundant coding unit is based on the The first packet of the multiple data unit packets and the original data unit in the ⁇ forward packets of the first packet are coded and generated, ⁇ ⁇ 1, and the redundant coding unit is used for the receiving end to perform the lost data unit Recovering, the lost data unit is the original data unit lost in the transmission process;
  • the redundant coding unit corresponding to the first group is generated by encoding the original data unit of the first group and the original data units in the ⁇ forward groups of the first group.
  • each group can be reduced.
  • the number of original data units in each packet is reduced, which reduces the packet loss recovery delay.
  • the original data units in the ⁇ forward packets are repeatedly used to generate redundant coding units. The protection of the original data units in the ⁇ forward packets is improved, thereby ensuring the ability to recover lost data units.
  • the ⁇ forward packets of the first packet are r of the first packet. Forward grouping.
  • the method before the sending the first encoded data, the method further includes:
  • each of the n ⁇ ( ⁇ +1) related original data units corresponding to the first group into w information segments, w ⁇ 1, and the related original data units include the first group Corresponding n original data units and original data units corresponding to the ⁇ forward packets of the first packet;
  • the k-th combined information segment of the first group is coded to generate the first coded information corresponding to the k-th combined information segment, and the k-th combined information segment of the first group is defined by the n ⁇ ( ⁇ +1) composed of the k-th information segment of each of the original data units in the relevant original data units, 1 ⁇ k ⁇ w;
  • the redundant coding unit is composed of w pieces of the first coding information corresponding to w combined information segments.
  • the relevant original data unit corresponding to the first group is divided into w information segments, and then each combination is generated according to the kth combined information segment composed of the kth information segment of the multiple original data units
  • the first coded information corresponding to the information segment is then formed into a redundant coding unit corresponding to the first group according to the w pieces of first coded information.
  • the original data unit is coded by information segments, which can reduce coding complexity and improve coding efficiency.
  • each of the w information segments includes L information symbols
  • the k-th combined information segment of the first group is encoded to generate the k-th combined information segment.
  • the first encoding information corresponding to the combined information segment includes:
  • the L+1th information symbol is calculated to obtain the target information segment corresponding to the kth combined information segment, and the target
  • Each of the n ⁇ ( ⁇ +1) information segments corresponding to the information segment includes the L information symbols and the L+1th information symbol;
  • the L+1th information symbol in the target encoding information is deleted, and the first encoding information corresponding to each information segment is obtained.
  • the L satisfies that L+1 is a prime number and 2 is a primitive root of L+1.
  • the encoding the target information segment to obtain the target encoding information corresponding to the target information segment includes:
  • the information symbol is a column vector with a length of ⁇ bytes, where ⁇ is an integer greater than or equal to 1.
  • the solution of the present invention divides the data unit based on the information segment and the information symbol, realizes the application of a low-order matrix for encoding and decoding, thereby further reducing the encoding and decoding complexity.
  • the vector coding matrix constructed by the scheme of the present invention ensures that the convolution erasure code meets the MDS characteristics, and achieves the theoretical optimum in erasure correction performance.
  • the check matrix is constructed on the encoding end and the decoding end, and the matrix is deleted, which can realize that there is no need to transmit redundant bits in network transmission, and the encoding efficiency is improved.
  • a data recovery method including:
  • Receive second encoded data corresponding to the first encoded data where the first encoded data includes a plurality of data unit groups, each of the plurality of data unit groups includes an original data unit and a redundant encoding unit, and the redundant encoding unit
  • the co-coding unit is coded and generated according to the original data units in the first group of the plurality of data unit groups and the ⁇ forward groups of the first group, ⁇ 1, and the second coded data includes the multiple data units.
  • the ⁇ forward packets of the first packet are r of the first packet. Forward grouping.
  • the method before restoring the lost data unit according to the second encoded data, the method further includes:
  • the second group is the first data unit group in the sliding window
  • the length of the sliding window represents the number of related data units in the second group, Including the number of original data units and the number of redundant coding units in the second group, and the number of original data units and the number of redundant coding units in p backward groups of the second group, the The backward packet of the second packet is a data unit packet with the second packet as one of ⁇ forward packets.
  • the restoring the lost data unit according to the second encoded data includes:
  • the relevant existing data unit of the second group includes the existing data unit corresponding to the second group and p backwards of the second group Existing data units in the group;
  • the k-th combined information segment of the related existing data unit is coded to generate the second coded information corresponding to the k-th combined information segment, and the k-th combined information segment is determined by each of the related existing data units. Is composed of the k-th information segment, where 1 ⁇ k ⁇ w;
  • the operation of encoding the k-th combined information segment of the related existing data unit is the same as the operation of encoding the k-th combined information segment of the related original data unit.
  • the elimination of the related existing redundant coding unit by the existing coding information includes:
  • the first redundant coding unit includes w information segments, each of the information segments includes L information symbols, and the first redundant coding unit is decoded to obtain all
  • the missing data unit includes:
  • the L+1th information symbol is calculated to obtain the second target information segment corresponding to each information segment.
  • the second target information segment includes the L information symbols and the L+1th information symbol;
  • the missing data unit is acquired according to the second encoding information, where the missing data unit is composed of the second encoding information corresponding to each of the w information segments corresponding to the first redundant encoding unit.
  • the decoding the second target information to obtain the second target encoding information corresponding to the second target information segment includes:
  • a sender device in a third aspect, includes:
  • the encoding module is configured to send first encoded data, the first encoded data includes a plurality of data unit groups, each of the plurality of data unit groups includes an original data unit and a redundant encoding unit, and the redundant encoding unit
  • the residual coding unit is coded and generated according to the original data unit in the first packet of the plurality of data unit groups and the ⁇ forward packets of the first packet, ⁇ 1, and the redundant coding unit is used at the receiving end Recovering the lost data unit, where the lost data unit is the original data unit lost during transmission;
  • the sending module is used to send the first encoded data.
  • the encoding module is specifically used for:
  • each of the n ⁇ ( ⁇ +1) related original data units corresponding to the first group into w information segments, w ⁇ 1, and the related original data units include the first group Corresponding n original data units and original data units corresponding to the ⁇ forward packets of the first packet;
  • the k-th combined information segment of the first group is coded to generate the first coded information corresponding to the k-th combined information segment, and the k-th combined information segment of the first group is defined by the n ⁇ ( ⁇ +1) composed of the k-th information segment of each of the original data units in the relevant original data units, 1 ⁇ k ⁇ w;
  • the redundant coding unit is composed of w pieces of the first coding information corresponding to w combined information segments.
  • each of the w information segments includes L information symbols
  • the encoding module is further configured to:
  • the L+1th information symbol is calculated to obtain the target information segment corresponding to the kth combined information segment, and the target
  • Each of the n ⁇ ( ⁇ +1) information segments corresponding to the information segment includes the L information symbols and the L+1th information symbol;
  • the L+1th information symbol in the target encoding information is deleted, and the first encoding information corresponding to each information segment is obtained.
  • the encoding module is also used to:
  • a receiving end device includes:
  • the receiving module is configured to receive second encoded data corresponding to the first encoded data, where the first encoded data includes a plurality of data unit groups, and each of the plurality of data unit groups includes an original data unit and a redundant code Unit, the redundant coding unit is generated according to the original data unit coding in the first group of the plurality of data unit groups and the ⁇ forward groups of the first group, ⁇ 1, the second code
  • the data includes the existing data unit and the existing redundant coding unit of each of the plurality of data unit groups, and the existing data unit is the data unit other than the lost data unit in the original data unit, and the existing A redundant coding unit is a redundant coding unit excluding the missing redundant coding unit among the redundant coding units;
  • the decoding module is configured to restore the lost data unit according to the second encoded data.
  • the decoding module is also used to:
  • the second group is the first data unit group in the sliding window
  • the length of the sliding window represents the number of related data units in the second group, Including the number of original data units and the number of redundant coding units in the second group, and the number of original data units and the number of redundant coding units in p backward groups of the second group, the The backward packet of the second packet is a data unit packet with the second packet as one of ⁇ forward packets.
  • the decoding module is specifically used for:
  • the relevant existing data unit of the second group includes the existing data unit corresponding to the second group and p backwards of the second group Existing data units in the group;
  • the k-th combined information segment of the related existing data unit is coded to generate the second coded information corresponding to the k-th combined information segment, and the k-th combined information segment is determined by each of the related existing data units. Is composed of the k-th information segment, where 1 ⁇ k ⁇ w;
  • the decoding module is specifically used for:
  • the first redundant coding unit includes w information segments, each of the information segments includes L information symbols, and the decoding module is specifically configured to:
  • the L+1th information symbol is calculated to obtain the second target information segment corresponding to each information segment.
  • the second target information segment includes the L information symbols and the L+1th information symbol;
  • the missing data unit is acquired according to the second encoding information, where the missing data unit is composed of the second encoding information corresponding to each of the w information segments corresponding to the first redundant encoding unit.
  • the decoding module is specifically used for:
  • the coding coefficients are represented by a cyclic permutation matrix and used to compare the second target information Cyclic shift operation of segments;
  • a communication device including: an input interface, configured to execute the steps performed by the receiving module in any one of the foregoing third aspect or the receiving end device of any one of the fourth aspects;
  • a logic circuit configured to execute the steps executed by the encoding module in the transmitting end device in any one of the foregoing third aspect, or for executing steps executed by the decoding module in the receiving end device in any one of the foregoing fourth aspect;
  • the output interface is used to execute the steps performed by the sending module in any one of the foregoing third aspect or the receiving end device of the fourth aspect.
  • a communication device in a sixth aspect, includes at least one processor, and the at least one processor is coupled with at least one memory:
  • the at least one processor is configured to execute a computer program or instruction stored in the at least one memory, so that the device executes the method according to any one of the first aspect or executes any one of the second aspect Methods.
  • the structure of the device includes a processing module and a transceiver module, wherein the processing module is configured to support the device to execute the first aspect or the method in any one of the possible implementations of the first aspect. , Or execute the foregoing second aspect or any one of the possible implementation methods of the second aspect.
  • the structure of the device includes a processor and may also include a memory.
  • the processor is coupled with the memory, and can be used to execute computer program instructions stored in the memory, so that the device executes the method in the first aspect or any one of the possible implementations of the first aspect, or executes the second aspect or the first aspect.
  • the method in any possible implementation of the two aspects.
  • the device further includes a communication interface, and the processor is coupled with the communication interface.
  • the communication interface may be a transceiver or an input/output interface; when the device is a chip included in the network device, the communication interface may be an input/output interface of the chip.
  • the transceiver may be a transceiver circuit, and the input/output interface may be an input/output circuit.
  • an embodiment of the present application provides a chip system, including: a processor, the processor is coupled with a memory, the memory is used to store a program or instruction, when the program or instruction is executed by the processor , So that the chip system implements the method in any possible implementation manner of the first aspect or the first aspect, or executes the method in any possible implementation manner of the second aspect or the second aspect.
  • the chip system further includes an interface circuit, which is used to exchange code instructions to the processor.
  • processors in the chip system, and the processors may be implemented by hardware or software.
  • the processor may be a logic circuit, an integrated circuit, or the like.
  • the processor may be a general-purpose processor, which is implemented by reading software codes stored in the memory.
  • the memory may be integrated with the processor, or may be provided separately from the processor, which is not limited in this application.
  • the memory may be a non-transitory processor, such as a read-only memory ROM, which may be integrated with the processor on the same chip, or may be set on different chips.
  • the setting method of the processor is not specifically limited.
  • an embodiment of the present application provides a computer-readable storage medium on which a computer program or instruction is stored.
  • the computer executes the first aspect or any one of the first aspect.
  • the method in one possible implementation manner, or the method in the foregoing second aspect or any one of the possible implementation manners of the second aspect is executed.
  • the embodiments of the present application provide a computer program product.
  • the computer reads and executes the computer program product, the computer executes the method in the first aspect or any one of the possible implementations of the first aspect. , Or execute the foregoing second aspect or any one of the possible implementation methods of the second aspect.
  • an embodiment of the present application provides a communication system, which includes the sender device of the third aspect and the receiver device of the fourth aspect.
  • FIG. 1A is a schematic diagram of the framework of an erasure correction coding scheme provided by an embodiment of this application;
  • FIG. 1B is a schematic diagram of the implementation principle of a forward erasure code provided by an embodiment of this application;
  • FIG. 1C is a schematic diagram of RS code encoding provided by an embodiment of this application.
  • FIG. 1D is a schematic diagram of generating a sliding window random linear code according to an embodiment of the application.
  • 2A is a flowchart of a data recovery method provided by an embodiment of this application.
  • FIG. 2B is a schematic diagram of first encoded data provided by an embodiment of this application.
  • 2C is a schematic diagram of original data packet division provided by an embodiment of this application.
  • FIG. 2D is a schematic diagram of a relationship between an original data packet and a redundant code packet provided by an embodiment of this application;
  • FIG. 2E is a schematic diagram of a process of receiving second coded data according to an embodiment of this application.
  • FIG. 3 is a schematic diagram of a sending end device according to an embodiment of the application.
  • FIG. 4 is a schematic diagram of a receiving end device provided by an embodiment of this application.
  • FIG. 5 is a schematic structural diagram of a communication device provided by an embodiment of this application.
  • Multiple means two or more.
  • “And/or” describes the association relationship of the associated objects, indicating that there can be three types of relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, and B exists alone.
  • the character “/” generally indicates that the associated objects before and after are in an "or” relationship.
  • OSI Open System Interconnection Reference Model
  • the Open System Interconnection Reference Model is a standard framework proposed by the International Organization for Standardization that attempts to interconnect various computers as a network worldwide.
  • OSI can be divided into 7 layers, from the first layer to the seventh layer: physical layer, data link layer, network layer, transport layer, session layer, presentation layer, application layer; among them, the lower layer one to three are concerned It is the transmission of raw data; the fourth to seventh layers of the high-level focus on applications under the network.
  • Erasure coding also known as forward erasure coding
  • EC Erasure coding
  • forward erasure coding is a data protection method. It divides the original data into fragments, and then adds redundant data to the original data and encodes it to generate an error. Delete code. If part of the original data is lost, the original data can be restored based on the erasure code.
  • the original data unit refers to the data unit formed by equal length division of data symbols transmitted in the network.
  • the data symbol can be instantiated as a data packet at the transport layer, a data stream at the transport layer, or an IP packet, or a data frame at the data link layer.
  • the redundant coding unit in this embodiment of the present application refers to an erasure correction codeword generated according to the original data unit.
  • the redundant coding unit may be generated according to the coding of multiple original data units, and the lost data packets in the multiple original data units may also be recovered according to the redundant coding unit generated by the coding thereof.
  • the original data unit is restored through redundant coding units, which can be applied between the transmission layer and the application layer, used for packet loss recovery at the transmission layer, and can also be applied between the transmission layer and the network layer.
  • redundant coding units can be applied between the transmission layer and the application layer, used for packet loss recovery at the transmission layer, and can also be applied between the transmission layer and the network layer.
  • packet loss recovery or for error recovery at the link layer.
  • Corresponding application scenarios include: fixed network network application scenarios for long-distance high-latency networks, such as data center scenarios, real-time video transmission scenarios, to avoid high delay caused by data unit retransmission; in addition, it is also applied to mobile networks , WIFI and other weak network scenarios with high packet loss rate to avoid the congestion window backoff problem caused by high packet loss rate.
  • FIG. 1A is a schematic diagram of the framework of an erasure correction code coding scheme provided by an embodiment of the application.
  • the erasure code scheme is implemented in the erasure code framework.
  • the corresponding original data unit can be an original data packet
  • the corresponding redundant coding unit can be a redundant coded packet.
  • the lost data packet recovery process at the receiving end specifically includes : 1.
  • the application layer delivers the application layer data to the erasure coding framework; 2.
  • the erasure coding framework divides the original data packets according to the application layer data and constructs the data packet group; 3.
  • the erasure coding framework copies the data packet group to the erasure code Scheme module; 4.
  • the erasure code scheme module performs encoding operations; 5.
  • the erasure code scheme module returns the encoded redundant information (coding coefficients and redundant code packets generated after encoding) to the erasure code framework; 6.
  • the erasure code frame adds the packet ID to the original data packet and the redundant coded packet; 7.
  • the erasure code frame delivers the original data packet and the redundant coded packet to the transport layer.
  • the process of recovering the lost data packets in the original data packets at the receiving end is also implemented in the framework corresponding to Figure 1A, which specifically includes: 1.
  • the transport layer delivers segments to the erasure code frame; 2. Erasure code frame extraction Data packet information and coding coefficients; 3. Copy the data packets, coding coefficients and group ID information to the erasure correction code scheme module; 4.
  • the erasure code scheme module performs the decoding operation of this scheme; 5. Send the restored data packet to the erasure correction Code framework; 6. Deliver the restored data package to the application layer.
  • FIG. 1B is a schematic diagram of the implementation principle of a forward erasure code provided by an embodiment of the application.
  • Encoded data packets data packets are lost during network transmission.
  • the receiving end can recover the lost original data packet through the currently received data packet, so that the transmitting end does not need to retransmit the lost data packet.
  • the forward erasure coding scheme can not only recover data packets lost in network transmission, but also recover data packets that cannot be corrected due to errors.
  • Linear block codes are currently the most widely used type of erasure codes.
  • (n+m,n) linear block code means that all the original data units that need to be transmitted are divided into several groups containing n original data units, and the n original data units of each group are encoded to form m redundancy Encoding unit to recover the original data unit lost in the packet.
  • the most widely used code in linear block codes is the Reed-solomon (RS) code, which is a code that satisfies the maximum distance seperable (MDS) characteristic.
  • RS code uses Vandermonde matrix or Cauchy matrix to construct coding coefficients so that the coding coefficients of redundant coding units are linearly independent.
  • Figure 1C is a schematic diagram of an RS code encoding provided by an embodiment of the application. As shown in Figure 1C, it is a (12,9) RS code. The packet is protected by 3 redundant coding units, which can achieve that any 3 original data units in the packet can be successfully recovered from the loss, so as to obtain the complete performance of 9 original data units.
  • the recovery delay of the linear block code scheme is relatively high: due to the need to ensure a certain erasure capability, the block size n of the linear block code is usually larger.
  • the worst single-packet recovery delay of the linear block code is the packet size n, and the average recovery delay is n/2, which is not suitable for delay-sensitive applications when the packet is large.
  • the encoding and decoding operations of linear block codes are based on finite field operations, and the encoding and decoding complexity is relatively high.
  • Fountain codes are a type of rate-free codes based on random codes.
  • the fountain code generates an infinite redundant coding sequence for a group of original data units, where each redundant coding unit in the sequence randomly extracts a specific number of original data units for random coding according to the degree distribution function.
  • each redundant coding unit in the sequence randomly extracts a specific number of original data units for random coding according to the degree distribution function.
  • the receiving end receives all the original data units, it sends feedback to the sending end to continue sending the next packet.
  • Rateless codes such as fountain codes determine the sending of the next original data unit packet based on the feedback from the receiving end. Its non-rate characteristic causes too many redundant data packets to be sent in the network to occupy bandwidth when the feedback is not timely, which reduces the effective bandwidth of the network.
  • the random encoding feature of the fountain code cannot guarantee the deterministic erasure capability, that is, it cannot meet the MDS feature.
  • FIG. 1D is a schematic diagram of a sliding window random linear code generation provided by an embodiment of the application. As shown in FIG. The window contains 4 original data units, which are randomly coded.
  • the sliding window random linear code has no concept of grouping, and the generated redundant coding unit may contain repeated original data unit information. And use randomly selected elements on the finite field GF(2 8) as coding coefficients.
  • the random coding characteristic of the sliding window random linear code cannot guarantee the deterministic erasure ability, that is, it cannot meet the MDS characteristic.
  • the encoding and decoding operations are based on finite field operations, and the encoding and decoding complexity is relatively high.
  • FIG. 2A is a flowchart of a data recovery method provided by an embodiment of the application to solve the above-mentioned problems. The method includes the following steps:
  • the sending end generates first coded data, the first coded data includes multiple data unit groups, each of the multiple data unit groups includes an original data unit and a redundant coding unit, and the redundant coding unit is based on the multiple data
  • the first packet in the unit packet and the original data unit in the ⁇ forward packets of the first packet are coded and generated, ⁇ 1, the redundant coding unit is used for the receiving end to recover the lost data unit, and the lost data unit is the transmission process
  • the sending end sends the first encoded data.
  • the receiving end receives second encoded data corresponding to the first encoded data, where the first encoded data includes multiple data unit groups, each of the multiple data unit groups includes an original data unit and a redundant encoding unit, and the second encoding
  • the data includes the existing data unit and the existing redundant coding unit of each of the multiple data unit groups.
  • the existing data unit is the data unit other than the missing data unit in the original data unit, and the existing redundant coding unit is the redundant coding. Redundant coding units in the unit except for the missing redundant coding units;
  • the receiving end restores the lost data unit according to the second encoded data.
  • the data unit is instantiated as a data packet transmitted between the transmission layer and the application layer
  • the redundant coding unit is correspondingly instantiated as a redundant encoding packet. Therefore, in the following embodiments, the original data unit, the redundant coding unit, the missing data unit, and the existing data unit are described through the original data packet, the redundant encoding packet, the missing data packet, and the existing data packet.
  • the first coded data refers to a data stream composed of data packets sent by the sender to the receiver in a certain order.
  • the first coded data includes multiple data packet groups, and the multiple data packet groups can be two or more than two. Packet grouping. Please refer to FIG.
  • FIG 2B is a schematic diagram one first encoded data according to application embodiment, shown in Figure 2B, a first encoded data packet includes three data packets, respectively, P 1,1 ⁇ P 1, 3
  • the second forward packet consisting of three original data packets, the first forward packet consisting of P 2,1 ⁇ P 2,3 , and the first packet consisting of P 3,1 ⁇ P 3,3, R1, R2 And R3 are the redundant coding packets corresponding to the second forward packet, the first forward packet, and the first packet, respectively.
  • the redundant code packet corresponding to each packet is generated based on the original data packet in the packet and the original data packet in the ⁇ forward packets of the packet, ⁇ is a positive integer, and the forward packet of the first packet represents the The data packet in the packet is sent before the data packet of the first packet, or the data packet in the packet arrives at the receiving end before the data packet of the first packet.
  • the corresponding redundant code packet R3 is based on P 3,1 to P 3,3 in the first packet and the two forward directions of the first packet.
  • the ⁇ of a forward packet, the redundant coded packet R2 of the first forward packet is based on the original data packets P 2,1 to P 2,3 corresponding to the first forward packet and its ⁇ forward packets, that is, the second forward packet To group, the corresponding original data packets P 1,1 to P 1,3 are generated.
  • the redundant code packet corresponding to the data packet group is generated only based on the original data packets P1,1 to P1,3 corresponding to the second forward packet. Therefore, the method of the embodiment of the present application can also encode a single data packet group to generate a redundant coded packet corresponding to the group.
  • a data packet group includes n original data packets, and the corresponding redundant coded packets are m.
  • m can be 1 or an integer greater than 1, and each data packet group corresponds to the same n ,
  • the m corresponding to each data packet group can be the same or different.
  • R3 in Figure 2B can include (R31, R32, R33).
  • multiple redundant coded packets corresponding to the same data packet group can be based on the same original data packet and different Coding coefficient generation.
  • each group of coding coefficients includes 9 coding coefficients corresponding to each original data packet.
  • the redundant code packet corresponding to the first packet is generated by encoding the original data packet of the first packet and the original data packet in the ⁇ forward packets of the first packet.
  • the number of original data packets in each packet reduces the number of n received each packet and reduces the packet loss recovery delay.
  • the original data packets in the ⁇ forward packets are reused to generate redundant coded packets , Can improve the protection of the original data packets in the ⁇ forward packets, thereby ensuring the ability to recover lost data packets.
  • the encoding process of the redundant encoding packet is specifically as follows:
  • the related original data packets include n original data corresponding to the first group Packet and the original data packet corresponding to the ⁇ forward packets of the first packet; encode the k-th combined information segment of the first packet to generate the first encoded information corresponding to the k-th combined information segment, and the first packet of the first group
  • the k combined information segments are composed of the k-th information segment of each forward original data packet in n ⁇ ( ⁇ +1) related original data packets, 1 ⁇ k ⁇ w; the first packet is obtained according to the first coded information
  • the redundant coded packet is composed of w first coded information corresponding to w combined information segments.
  • the relevant original data packets of the group are referred to as the relevant original data packets of the group.
  • the relevant original data packets are The data packet includes n original data packets corresponding to the first packet, and n original data packets in each of the ⁇ forward packets of the first packet, including n ⁇ ( ⁇ +1) original data packets in total.
  • FIG. 2C is a schematic diagram of original data packet division according to an embodiment of the application. As shown in FIG.
  • each of the n ⁇ ( ⁇ +1) related original data packets in the first group The data packet is divided into w information segments, where w is an integer greater than or equal to 1, and then the kth combined information segment of the first group consisting of the kth information segment of each relevant original data packet is coded to generate the kth information segment.
  • First coded information corresponding to each combined information segment Please refer to FIG. 2D.
  • FIG. 2D is a schematic diagram of the relationship between an original data packet and a redundant encoding packet provided by an embodiment of the application. As shown in FIG. 2D, there are a total of w combinations for the related original data packets of the first group. Information segment, each combined information segment generates its corresponding first coded information, then a total of w first coded information can be generated to form a redundant coded packet corresponding to the first group.
  • the k-th combined information segment When the related original data packets of the first group correspond to multiple redundant coded packets, the corresponding implementation is: as shown in FIG. 2D, the k-th combined information segment generates different k-th first data packets according to different coding coefficients. Encoding information, then the redundant encoding packets composed of w first encoding information are different redundant encoding packets.
  • the related original data packet corresponding to the first packet is divided into w information segments, and then the kth combined information composed of the kth information segment of each forward related original data packet Segments generate first coded information corresponding to each combined information segment, and then form redundant coded packets corresponding to the first group according to w pieces of first coded information.
  • the original data packet is coded by information segments, which can reduce coding complexity and improve coding efficiency.
  • each information segment of the w information segments into L information symbols, and encoding the k-th combined information segment of the first group to generate the first encoded information corresponding to the k-th combined information segment, including: According to the bitwise exclusive OR of the L information symbols of each information segment in the kth combined information segment, calculate the L+1th information symbol to obtain the target information segment corresponding to the kth combined information segment, and n ⁇ corresponding to the target information segment
  • Each of the ( ⁇ +1) information segments includes L information symbols and the L+1th information symbol; encode the target information segment to obtain the target encoding information corresponding to the target information segment; delete the target encoding information
  • the L+1th information symbol obtains the first coded information corresponding to each target information segment.
  • Each information symbol P j, i, k, s is represented as a column vector with a length of ⁇ bytes.
  • the target information segment is encoded to obtain the target encoding information corresponding to the target information segment, including: the structure size is ( ⁇ +1)m(L+1) ⁇ ( ⁇ +1)n(L+1)
  • the binary vector coding matrix A, m is the number of redundant coding packets corresponding to the first group;
  • the coding coefficient corresponding to the target information segment is obtained according to the coding matrix A, and the coding coefficient is represented by a cyclic shift matrix, which is used to perform the target information segment Cyclic shift operation; code the target information segment according to the coding coefficient to obtain the target coding information.
  • the redundant coded packet related to the original data packet of the first group further includes a redundant coded packet R4 corresponding to the fourth group, and a redundant coded packet R5 corresponding to the fifth group.
  • the generated binary vector coding matrix A is shown in formula (1):
  • a j ,i,k a j,i,k (C L+1 ), which is a binary matrix of (L+1) ⁇ (L+1).
  • 1] is the parity check matrix, H [I L
  • the matrix T can be regarded as a ( ⁇ +1)m ⁇ ( ⁇ +1)n block matrix, and each block element t i,j is a L ⁇ L binary matrix.
  • Its pL ⁇ pL canonical sub-matrix is defined as: from the 1st ⁇ i 1 ⁇ i 2 ⁇ ... ⁇ i p ⁇ m( ⁇ +1) row and 1st ⁇ j 1 ⁇ j 2 ⁇ ... ⁇ j in the block matrix T p ⁇ n( ⁇ +1) block elements in the column PL ⁇ pL sub-matrix Where i k and j k satisfy For 1 ⁇ k ⁇ p.
  • the present invention performs cyclic shift coding based on ⁇ bytes on each information segment of the data packet to obtain each information segment R j,t of the t-th redundant encoded packet R j,t belonging to the group j
  • the mathematical expression of k is:
  • formula (2) can be realized by the cyclic shift operation of the information symbol, that is, the cyclic shift operation based on ⁇ bytes .
  • R j,t,k [ R j,t,k,1 ,R j,t,k,2 ,...,R j,t,k,L ].
  • the solution of the present invention divides the data packet based on the information segment and the information symbol, realizes the application of a low-order matrix for coding and decoding, thereby further reducing the coding and decoding complexity.
  • the vector coding matrix constructed by the scheme of the present invention ensures that the convolution erasure code meets the MDS characteristics, and achieves the theoretical optimum in erasure correction performance.
  • the check matrix is constructed on the encoding end and the decoding end, and the matrix is deleted, which can realize that there is no need to transmit redundant bits in network transmission, and the encoding efficiency is improved.
  • the sender completes the encoding of the original data packet, generates the first encoded data, and sends it to the receiver.
  • the receiving end cannot fully receive the first coded data, but receives the second coded data, where the second coded data includes the existing data packet and the existing redundant coded packet, the existing data packet is the original data packet except for the loss Packets other than data packets.
  • the existing redundant coded packet is the redundant coded packet sent by the sender, except for the redundant coded packet lost in the sending process.
  • FIG. 2E is a schematic diagram of a process of receiving second coded data according to an embodiment of the application.
  • the receiving end when the receiving end receives the second coded data, it sends the original The data packet loses P 3,1 , that is, the lost data packet is P 3,1 , continue to receive the data packet of the second group, P 3,2 and P 3,3 are received as the existing data packet of the second group, and the first The two-packed redundant coded packet R3 is used as the existing redundant coded packet, then the redundant coded packet needs to be decoded according to the existing data packet, the existing redundant coded packet and the corresponding coding method when the redundant coded packet is generated, to obtain the lost data Package P 3,1 .
  • the length of the sliding window is the number of related data packets corresponding to the second packet without packet loss, including the number of original data packets n of the second packet and the existing redundant data packets.
  • the backward packet of the second packet is a data packet packet in which the second packet is regarded as one of the ⁇ forward packets, and the encoding is performed to obtain the redundant encoded packet corresponding to the second packet.
  • the corresponding backward group includes the first backward group and the second backward group
  • the second The grouped related data packets include 3 original data packets and 1 redundant coded packet of the second group, and 3 original data packets and 1 redundant coded packet respectively corresponding to the first backward packet and the second backward packet.
  • the recoverable condition is: the number s of lost data packets in the sliding window is less than or equal to m ⁇ (p+1), where 0 ⁇ p ⁇ . That is, when the receiving end completes the reception of the second packet, it determines whether the second packet meets the number of lost packets ⁇ 1. If so, it can recover the lost data packets of the second packet; otherwise, the receiving end continues to perform the first backward packet Then, it is judged whether the total number of lost packets of the second packet and the first backward packet is less than or equal to 2.
  • the receiving end continues Carry out the reception of the second backward packet, and then determine whether the total number of packet loss of the second packet, the first backward packet and the second backward packet is less than or equal to 3. If it is, the above packet loss can be recovered, otherwise it cannot Perform recovery.
  • These lost data packets can belong to the same data packet group, or they can belong to multiple different data packet groups. That is, if the condition is met, the lost data packet corresponding to each data packet group in the sliding window can be recovered, otherwise it cannot be recovered.
  • the number threshold is calculated.
  • recovering the lost data packet according to the second encoded data includes: dividing the relevant existing data unit of the second group into w information segments, w ⁇ 1, and the relevant existing data unit includes the data corresponding to the second group Existing data units and existing data units in the p backward groups of the second group; encoding the kth combined information segment of the related existing data unit to generate the second encoded information corresponding to the kth combined information segment, the kth A combined information segment is composed of the k-th information segment of each related existing data unit, where 1 ⁇ k ⁇ w; the existing coding information corresponding to the related existing data unit is obtained according to the second coding information, and the existing coding information consists of w combination information
  • the segment is composed of w second coding information; the relevant existing redundant coding unit is eliminated according to the existing coding information, and the first redundant coding unit corresponding to the relevant missing data unit is obtained, and the relevant existing redundant coding unit includes the second group
  • the relevant existing redundant coded packet and the existing coded information can be eliminated to obtain the redundant coded information corresponding to the relevant lost data packet.
  • the related existing redundant encoded packet includes the existing redundant encoded packet of the second packet and the existing redundant encoded packet of the first backward packet. I coded the package.
  • the specific method of elimination includes: performing bit-by-bit exclusive OR calculation on the second code information corresponding to each information segment in the relevant existing data packet and each information segment in the relevant existing redundant code packet.
  • the remaining information in the relevant existing redundant coded packet is the first redundant coded packet corresponding to the lost data packet.
  • a (jj′),t,i is the coding coefficient matrix of the relevant existing redundant coding packet R j,t to the relevant existing data packet P j′,i. Further, delete the information symbol corresponding to the last column of S j,j′,i,t,k.
  • Each information segment R j,t,k of the relevant existing redundant coded packet R j,t eliminates the coded information S j,j′,i,k,k :
  • R j,t,k R j,t,k +S j,j′,i,t,k
  • the first redundant coded packet After obtaining the first redundant coded packet corresponding to the relevant lost data packet, the first redundant coded packet needs to be decoded to obtain the relevant lost data packet.
  • the specific process is:
  • the received redundant code packet (related existing redundant code packet) is Where j 1 ⁇ j 2 ⁇ ... ⁇ j s and t 1 ⁇ t 2 ⁇ ... ⁇ t s .
  • the missing data packet (related missing data packet) is Wherein j '1 ⁇ j' 2 ⁇ ... ⁇ j 's, and i 1 ⁇ i 2 ⁇ ... ⁇ i s .
  • the global coding matrix of redundant coding packets to lost data packets is Solve the inverse matrix of the global encoding matrix.
  • I S is the s-order unit matrix.
  • det(*) represents the discriminant solving operation of the matrix
  • the matrix M i,j is the deletion The remainder matrix obtained from the block elements in the i-th row and j-th column.
  • formula (3) can be implemented by the cyclic shift operation of the information symbol.
  • the receiving end After the receiving end completes the decoding, or when the solvable condition of the current decoding is not satisfied, the receiving end waits for the reception of the next packet and repeats the foregoing decoding process.
  • the receiving end when the receiving end finds that the data packet contains a lost data packet, it completes the reception of the packet, and determines whether the number of lost packets corresponding to the packet is less than the preset threshold, and if so, according to The existing data packets of the group and the existing redundant coded packets recover the lost data packets of the group; otherwise, continue the backward packet reception of the group, and also judge whether the number of lost packets is less than the preset threshold, if yes, then The lost data packet of the group is recovered according to the related existing data packet of the group and the related existing redundant coded packet. Until the completion of the reception of ⁇ backward packets corresponding to the packet in which packet loss occurs.
  • the lost data packet recovery process includes: elimination of related redundant coded packets according to related existing data packets, which can reduce the complexity of subsequent matrix inversion operations; before decoding, the method to obtain decoding coefficients is to obtain related existing redundant codes
  • the inverse matrix is obtained by performing the inversion operation on the global coding matrix of the package coding coefficients. Then, the redundant coded packet is cyclically shifted according to the inverse matrix to obtain the decoding result. In this process, cyclic shift and bit-wise XOR operation are used to replace the finite field operation for decoding, which further reduces the decoding complexity.
  • the above-mentioned sequential decoding scheme performs decoding after each packet arrives, which can effectively reduce the recovery delay.
  • the number of remaining coded packets is 1.
  • System convolutional codes are a type of high-rate erasure codes, and have the lowest recovery delay at the same code rate, which meets the requirements of transmission layer erasure correction scenarios for high effective throughput and low recovery delay. Therefore, this embodiment is the first example solution of the present invention.
  • This embodiment provides a method for constructing a binary vector coding matrix A with a size of ( ⁇ +1)(L+1) ⁇ ( ⁇ +1)n(L+1), so that Any pL ⁇ pL canonical submatrix of is a non-singular matrix, where 1 ⁇ p ⁇ ( ⁇ +1).
  • the sending end performs an encoding operation based on byte cyclic shift on the original data packet to generate a redundant encoded packet, and the method includes:
  • the present invention performs cyclic shift coding based on ⁇ bytes on each information segment of the data packet to obtain the mathematical expression of each information segment R j,k of the redundant code packet R j belonging to the group j as:
  • formula (4) can be realized by the cyclic shift operation of the information symbol, that is, the cyclic shift operation based on ⁇ bytes.
  • R j,k [R j,k,1 ,R j,k,2 ,...,R j,k,L ].
  • the receiving end After the receiving end receives the second packet in the second encoded data and finds that there is packet loss in the second packet, it judges the solvability conditions, including: determining the length of (1+n) ⁇ (p+1) The number s of lost data packets in the sliding window is less than or equal to p+1, where the length of the sliding window corresponds to the number of related data packets in the second group, including n ⁇ (p+1) related original data packets (ie its own n Original data packets and p backward packets of n ⁇ p original data packets), and p+1 related redundant coded packets (that is, 1 redundant coded packet of itself and p redundant coded packets of p backward packets) Co-coded packet), the lost data packet satisfies that the number of lost packets in p packets after the second packet and the second packet ⁇ p+1, where 0 ⁇ p ⁇ ⁇ .
  • the receiving end receives and buffers each successfully received related existing data packet (including the existing data packet of the second packet, or the existing data packet also including p backward packets) and related existing redundant code packets (including the first packet of Existing redundant encoding packets, or existing redundant encoding packets that also include p backward packets);
  • a (jj′),i is the coding coefficient matrix of the redundant coding packet R j,t to the existing data packet P j′,i. Delete the information symbol corresponding to the last column of S j,j′,i,k.
  • each information segment R j,k of the redundant packet R j eliminates the encoded information S j,j′,i,k :
  • R j,k R j,k +S j,j′,i,k
  • the received redundant data packet is Where t 1 ⁇ t 2 ⁇ ... ⁇ t s .
  • Lost packets that need to be recovered Wherein j '1 ⁇ j' 2 ⁇ ... ⁇ j 's, and i 1 ⁇ i 2 ⁇ ... ⁇ i s .
  • the global coding matrix of the redundant data packet to the lost data packet that needs to be recovered is Solve the inverse matrix of the global coding matrix, expressed as in Denotes the Kronecker product, I S is the s-order unit matrix.
  • det(*) represents the discriminant solving operation of the matrix
  • the matrix M i,j is the deletion The remainder matrix obtained from the block elements in the i-th row and j-th column.
  • the sender sends ten data packets P 0,1 ,P 0,2 ,P 1,1 ,P 1,2 ,P 2,1 ,P 2,2 ,P 3,1 to the receiver ,P 3,2 ,P 4,1 ,P 4,2 , the sender applies an erasure coding scheme to encode and protect the original data packet before the original data packet is delivered to the transport layer.
  • every two original data packets are treated as a group, and the encoded system code sequence is P 0,1 ,P 0,2 ,R 0 ,P 1,1 ,P 1,2 ,R 1 ,P 2,1 , P 2,2 ,R 2 ,P 3,1 ,P 3,2 ,R 3 ,P 4,1 ,P 4,2 ,R 4 .
  • the coding scheme is given by the following process.
  • I 5 is the fifth-order unit matrix
  • C 5 is the fifth-order cyclic permutation matrix Indicates that the power of 2 of C 5 is
  • each data packet contains 1280 bits
  • the operation of P i,j I 5 means to keep the P i,j data packet unchanged;
  • P 1,1,k C 5 indicates that the information segment P 1,1,k is cyclically shifted to the right by one unit in units of information symbols.
  • the transmission layer at the receiving end senses that P 0,1 ,P 0,2 two data packets are lost, then at the receiving end After receiving R 0 and R 1 , the data in P 0,1 and P 0,2 can be decoded and restored.
  • the decoding process of the erasure coding scheme at the receiving end is given below.
  • R 1 eliminates the received data packets P 1,2 and P 1,1 . Since the coding matrix of R 1 to P 1,2 and P 1,1 is an identity matrix, each of R 1 information segment R 1, k and the information section P 1,2 P 1,1 of bitwise XOR and to eliminate P 1,2 P 1,1 of encoded information.
  • the redundant packet R 1 after elimination is denoted as R′ 1 .
  • R 0,k,5 R 0,k,1 + R 0,k,2 + R 0,k is generated for the last column of each information segment in R 0 , R′ 1 ,3 +R 0,k,4 ;
  • R′ 1,k,5 R′ 1,k,1 +R′ 1,k,2 +R′ 1,k,3 +R′ 1,k,4 .
  • the first equation is the right information for each R & lt segment 0 0 R & lt included, k, a unit of information symbols according to a cyclic shift of 3 units to the right;
  • the second term is the information for each segment contains 0 R R 0 ,k , cyclically shift 1 unit to the right according to the unit of the information symbol;
  • the third term is for R '. 1 included in each message segment R' 1, k, a unit of information symbols according to a cyclic shift of 3 units to the right; and the fourth is for R '. 1 included in each message segment R' 1,k , cyclically shift 1 unit to the right in units of information symbols.
  • the obtained four information segments are XORed bit by bit to obtain the information segment P 0,1,k of the decoded data packet P 0,1 .
  • each information segment P 0,1,k , P 0,2,k in the decoded P 0,1 ,P 0,2 data packet is deleted by deleting the information symbol corresponding to the last column to obtain the original data packet P 0 ,1 ,P 0,2 .
  • FIG. 3 is a sender device 300 provided by an embodiment of the application, which can be used to execute the foregoing data recovery method and specific embodiments of the sender in FIGS. 2A to 2E.
  • the sender device may be a sender device or may be The chip configured in the sending end device.
  • the sending end device 300 includes a sending module 301 and an encoding module 302.
  • the encoding module 302 is configured to generate first encoded data, the first encoded data includes a plurality of data unit groups, each of the plurality of data unit groups includes an original data unit and a redundant encoding unit, the The redundant coding unit is generated according to the coding of the original data unit in the first packet in the plurality of data unit groups and the ⁇ forward packets of the first packet, ⁇ 1, and the redundant coding unit is used for receiving Recover the lost data unit at the end, where the lost data unit is the original data unit lost in the transmission process;
  • the sending module 301 is used to send the first encoded data.
  • the encoding module 302 is specifically used for:
  • each of the n ⁇ ( ⁇ +1) related original data units corresponding to the first group into w information segments, w ⁇ 1, and the related original data units include the first group Corresponding n original data units and original data units corresponding to the ⁇ forward packets of the first packet;
  • the k-th combined information segment of the original data unit is coded to generate the first coded information corresponding to the k-th combined information segment, and the k-th combined information segment of the first group is determined by the n ⁇ ( ⁇ +1) composed of the k-th information segment of each of the original data units in the relevant original data units, 1 ⁇ k ⁇ w;
  • the redundant coding unit is composed of w pieces of the first coding information corresponding to w combined information segments.
  • each of the w information segments includes L information symbols
  • the encoding module 302 is further configured to:
  • the L+1th information symbol is calculated to obtain the target information segment corresponding to the kth combined information segment, and the target
  • Each of the n ⁇ ( ⁇ +1) information segments corresponding to the information segment includes the L information symbols and the L+1th information symbol;
  • the L+1th information symbol in the target encoding information is deleted, and the first encoding information corresponding to each information segment is obtained.
  • the encoding module 302 is further configured to:
  • the coding coefficient corresponding to the target information segment is determined by the cyclic permutation matrix Indicates that it is used to perform a cyclic shift operation on the target information segment;
  • the above-mentioned receiving end device further includes a receiving module 303, and the above-mentioned sending module 301 and receiving module 302 may be interface circuits or transceivers.
  • the receiving module 303 and the sending module 301 can be independent modules, or can be integrated as a transceiver module (not shown), and the transceiver module can implement the functions of the receiving module 303 and the sending module 301 described above.
  • the aforementioned encoding module 302 may be a chip, an encoder, an encoding circuit or other integrated circuits that can implement the method of the present application.
  • the sending end device 300 is used to execute the communication method corresponding to the sending end device, so the specific description of the communication method is involved, especially the function of the sending module 301 can refer to the corresponding implementation The relevant part of the example will not be repeated here.
  • the sending end device 300 may also include a storage module (not shown in the figure), which may be used to store data and/or signaling.
  • the storage module may be coupled to the encoding module 302 or the receiving module 303. Or the sending module 301 is coupled.
  • the encoding module 302 may be used to read data and/or signaling in the storage module, so that the communication method in the foregoing method embodiment is executed.
  • Fig. 4 is a receiving end device 400 provided by an embodiment of the application, which can be used to perform the receiving end data recovery method and specific embodiments of the foregoing Figs. 2A to 2E.
  • the receiving end device may be a receiving end device or configured in The chip of the receiving device.
  • the receiving end device 400 includes a receiving module 401 and a decoding module 402.
  • the receiving module 401 is configured to receive second coded data corresponding to the first coded data, where the first code includes a plurality of data unit groups, and each of the multiple data unit groups includes an original data unit and a redundant code Unit, the redundant coding unit is generated according to the original data unit coding in the first group of the plurality of data unit groups and the ⁇ forward groups of the first group, ⁇ 1, the second code
  • the existing data unit and the existing redundant coding unit of each of the plurality of data unit groups are included.
  • the existing data unit is a data unit other than the lost data unit in the original data unit.
  • the residual coding unit is a redundant coding unit excluding the lost redundant coding unit in the redundant coding unit;
  • the decoding module 402 is configured to restore the lost data unit according to the second encoded data.
  • the decoding module 402 is further configured to:
  • the second group is the first data unit group in the sliding window
  • the length of the sliding window represents the number of related data units in the second group, Including the number of original data units and the number of redundant coding units in the second group, and the number of original data units and the number of redundant coding units in p backward groups of the second group, the The backward packet of the second packet is a data unit packet with the second packet as one of ⁇ forward packets.
  • the decoding module 402 is specifically configured to:
  • the relevant existing data unit of the second group includes the existing data unit corresponding to the second group and p backwards of the second group Existing data units in the group;
  • the k-th combined information segment of the related existing data unit is coded to generate the second coded information corresponding to the k-th combined information segment, and the k-th combined information segment is determined by each of the related existing data units. Is composed of the k-th information segment, where 1 ⁇ k ⁇ w;
  • the decoding module 402 is specifically configured to:
  • the first redundant coding unit includes w information segments, each of the information segments includes L information symbols, and the decoding module 402 is specifically configured to:
  • the L+1th information symbol is calculated to obtain the second target information segment corresponding to each information segment.
  • the second target information segment includes the L information symbols and the L+1th information symbol;
  • the missing data unit is acquired according to the second encoding information, where the missing data unit is composed of the second encoding information corresponding to each of the w information segments corresponding to the first redundant encoding unit.
  • the decoding module 402 is specifically configured to:
  • the coding coefficients are represented by a cyclic permutation matrix and used to compare the second target information Cyclic shift operation of segments;
  • the foregoing receiving end device may further include a sending module 403, and the receiving module 401 and the sending module 403 may be interface circuits or transceivers.
  • the receiving module 401 and the sending module 403 can be independent modules, or can be integrated as a transceiver module (not shown in the figure), and the transceiver module can implement the functions of the receiving module 401 and the sending module 403 described above.
  • the foregoing decoding module 402 may be a chip, an encoder, an encoding circuit or other integrated circuits that can implement the method of the present application.
  • the receiving end device 400 is used to execute the communication method corresponding to the receiving end device, so the specific description of the communication method is involved, especially the functions of the receiving module 401 and the sending module 403 You can refer to the relevant part of the corresponding embodiment, which will not be repeated here.
  • the receiving end device 400 may further include a storage module (not shown in the figure).
  • the storage module may be used to store data and/or signaling.
  • the storage module may be coupled to the decoding module 402 or the receiving module 401.
  • the sending module 403 is coupled.
  • the decoding module 402 may be used to read data and/or signaling in the storage module, so that the communication method in the foregoing method embodiment is executed.
  • FIG. 5 shows a schematic structural diagram of a communication device in an embodiment of the present application.
  • the structure of the terminal equipment and the access network equipment can refer to the structure shown in FIG. 5.
  • the communication device 500 includes: a processor 111 and a communication transceiver 112, and the processor 111 and the transceiver 112 are electrically coupled;
  • the processor 111 is configured to execute part or all of the computer program instructions in the memory, and when the part or all of the computer program instructions are executed, the device executes the method described in any of the foregoing embodiments.
  • the transceiver 112 is used to communicate with other devices; for example, receiving a first uplink control signal from a terminal device, where the first uplink control signal is used to instruct the network device to send a first downlink shared signal; An uplink control signal sends the first downlink shared signal.
  • the memory 113 for storing computer program instructions.
  • the memory 113 (memory #1) is located in the device, and the memory 113 (memory #2) is integrated with the processor 111. Together, or the memory 113 (memory #3) is located outside the device.
  • the communication device 500 shown in FIG. 5 may be a chip or a circuit.
  • a chip or circuit may be provided in a terminal device or a communication device.
  • the aforementioned transceiver 112 may also be a communication interface.
  • the transceiver includes a receiver and a transmitter.
  • the communication device 500 may also include a bus system.
  • the processor 111, the memory 113, and the transceiver 112 are connected by a bus system.
  • the processor 111 is used to execute instructions stored in the memory 113 to control the transceiver to receive and send signals, and complete the first implementation method involved in this application.
  • the memory 113 may be integrated in the processor 111, or may be provided separately from the processor 111.
  • the function of the transceiver 112 may be implemented by a transceiver circuit or a dedicated transceiver chip.
  • the processor 111 may be implemented by a dedicated processing chip, a processing circuit, a processor, or a general-purpose chip.
  • the processor may be a central processing unit (CPU), a network processor (NP), or a combination of CPU and NP.
  • the processor may further include a hardware chip or other general-purpose processors.
  • the above-mentioned hardware chip may be an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or a combination thereof.
  • ASIC application-specific integrated circuit
  • PLD programmable logic device
  • the above-mentioned PLD can be a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (generic array logic, GAL) and other programmable logic devices , Discrete gates or transistor logic devices, discrete hardware components, etc. or any combination thereof.
  • the general-purpose processor may be a microprocessor or the processor may also be any conventional processor or the like.
  • the memory mentioned in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • 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), and electrically available Erase programmable read-only memory (Electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be a random access memory (Random Access Memory, RAM), which is used as an external cache.
  • RAM random access memory
  • SRAM static random access memory
  • DRAM dynamic random access memory
  • DRAM synchronous dynamic random access memory
  • DDR SDRAM Double Data Rate Synchronous Dynamic Random Access Memory
  • Enhanced SDRAM, ESDRAM Enhanced Synchronous Dynamic Random Access Memory
  • Synchronous Link Dynamic Random Access Memory Synchronous Link Dynamic Random Access Memory
  • DR RAM Direct Rambus RAM
  • An embodiment of the present application provides a communication system, including a sending end device and a receiving end device.
  • the sending end device may include the terminal device 300 as shown in FIG. 3, and the receiving end device may include the receiving end device as shown in FIG. 400.
  • the corresponding structure of the transmitting end device and the receiving end device may be the communication apparatus 500 as shown in FIG. 5.
  • the communication system can be used to execute the above-mentioned communication method and specific embodiments applicable to the above-mentioned transmitting end device and the receiving end device. For the specific execution process, refer to the description content of FIG. 2A to FIG. 2E.
  • the embodiment of the present application provides a communication device, including a logic circuit, configured to execute the steps performed by the encoding module in the sending end device of FIG. 3;
  • the output interface is used to execute the steps executed by the sending module in the sending end device of Fig. 3 above.
  • it may also include an input interface for executing the steps performed by the receiving module in the sending end device of FIG. 3 above.
  • An embodiment of the present application provides a communication device, including an input interface, configured to execute the steps performed by the receiving module in the receiving end device of FIG. 4;
  • it may also include an output interface, which is used to execute the steps performed by the sending module in the sending end device of FIG. 4 described above.
  • the embodiment of the present application provides a computer storage medium storing a computer program, and the computer program includes a method for executing the method corresponding to the sending end device in the foregoing embodiment.
  • the embodiment of the present application provides a computer storage medium that stores a computer program, and the computer program includes a method for executing the corresponding method for the receiving end device in the foregoing embodiment.
  • the embodiments of the present application provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the method corresponding to the sender device in the foregoing embodiment.
  • the embodiments of the present application provide a computer program product containing instructions, which when run on a computer, cause the computer to execute the method corresponding to the receiving end in the above-mentioned embodiments.
  • the size of the sequence number of the above-mentioned processes does not mean the order of execution, and the execution order of each process should be determined by its function and internal logic, and should not correspond to the embodiments of the present application.
  • the implementation process constitutes any limitation.
  • the disclosed system, device, and method can be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and 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 they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present application essentially or the part that contributes to the existing technology 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 an access 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 media include: U disk, mobile hard disk, read-only memory (Read-Only Memory, ROM), random access memory (Random Access Memory, RAM), magnetic disk or optical disk and other media that can store program code .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本申请公开了一种数据恢复方法和装置,其中方法包括:发送端发送第一编码数据,第一编码数据中包括多个数据单元分组,多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,冗余编码单元根据多个数据单元分组中的第一分组和第一分组的δ个前向分组中的原始数据单元编码生成。接收端接收第二编码数据,并根据现存冗余编码单元对第二编码数据中丢失数据进行恢复,其中第二编码数据为第一编码数据中除去丢失数据单元和丢失冗余编码单元的数据。本申请公开了通过数据单元分组的前向分组生成数据单元分组对应的冗余编码单元的方法,降低了丢包恢复时延,同时提升了对δ个前向分组中的原始数据的保护,进而保证了对丢失数据单元的恢复能力。

Description

数据恢复方法及装置
本申请要求于2020年04月16日提交中国知识产权局、申请号为202010298281.9、申请名称为“数据恢复方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种数据恢复方法及装置。
背景技术
前向纠删码是一种通过对数据编码从而进行丢失数据恢复的方法。它以原始数据单元为单位编码产生新的冗余编码单元,从而在原始数据单元丢失时能够利用冗余编码单元恢复原始数据。前向纠删码技术可针对网络传输场景应用于传输层中,通过对发送端产生的应用数据单元进行编码引入冗余编码包,为网络提供丢包的额外恢复能力,从而避免自动重传请求(Automatic Repeat-reQuest,ARQ)协议对丢失数据包的重传。在网络传输中,前向纠删码技术有以下应用场景(1)弱网环境,以减缓高丢包率导致的拥塞控制窗口退避的问题;(2)实时视频传输等时延敏感应用,以克服丢包重传导致的高延时;(3)发收端难以双向交互的场景,如多播场景以及深空通信场景,以实现无需反馈的可靠通信。因此,前向纠删码对于提升网络传输的质量和可靠性有着重要的意义。
前向纠删码的性能可由三项指标描述:(1)恢复时延,描述接收端检测到数据包丢失的时刻到恢复该数据包并交付到应用层的时延。时延敏感业务对恢复时延具有严格的约束。(2)纠删能力,描述针对一组数据包的最大丢包恢复能力。由于传输层的突发丢包特性,纠删能力决定了纠删码能否恢复一组数据包中发生的多个丢包。最大距离可分(MDS)码描述了纠删能力最优的一类纠删码,即码的最小汉明距离达到辛格尔顿界的码。它能够保证在码率一定的前提下,能够恢复一组数据包中最多数量的丢包。(3)编解码复杂度,描述纠删码编解码设备编解码所产生的时延开销。较高的编解码复杂度会影响端到端时延,降低纠删码在时延敏感业务中的应用性。因此,低恢复时延,低编解码复杂度,高纠删能力为前向纠删码的理想特性。
现有技术中的前向纠删码技术,包括线性分组码,喷泉码和滑动窗口随机线性码等,具有恢复时延高和编解码复杂度高的缺陷,并且无法保证纠删能力,如何对前向纠删码技术进行改进,是一个亟待解决的问题。
发明内容
本申请实施例提供了一种数据恢复方法及装置,以降低丢包恢复时延,同时降低传输过程中丢失的数据单元的恢复复杂度。
第一方面,提供了一种数据恢复方法,包括:
生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送所述第一编码数据。
在本申请实施例中,通过第一分组的原始数据单元和第一分组的δ个前向分组中的原始数据单元编码生成第一分组对应的冗余编码单元,第一方面可以减少每个分组中的原始数据单元个数,即减少了接收到每个分组n的个数,降低了丢包恢复时延,同时,重复使用δ个前向分组中的原始数据单元生成冗余编码单元,可以提升对δ个前向分组中的原始数据单元的保护,进而保证了对丢失数据单元的恢复能力。
在一种可能的设计中,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
在一种可能的设计中,在所述发送第一编码数据之前,所述方法还包括:
将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
在本申请实施例中,通过将第一分组对应的相关原始数据单元划分成w个信息段,然后根据多个原始数据单元的第k个信息段组成的第k个组合信息段生成每个组合信息段对应的第一编码信息,再根据w个第一编码信息组成第一分组对应的冗余编码单元。这个过程对原始数据单元进行分信息段编码,可以降低编码复杂度,提高编码效率。
在一种可能的设计中,所述w个信息段中的每个信息段包括L个信息符号,所述对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,包括:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
在一种可能的设计中,所述L满足L+1为质数且2为L+1的一个原根。
在一种可能的设计中,所述对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息,包括:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure PCTCN2021087743-appb-000001
的任意pL×pL的规范 子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[I L|1]为奇偶校验矩阵,H=[I L|0] T为删除矩阵,
Figure PCTCN2021087743-appb-000002
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素t i,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵为:由块矩阵T中第1≤i 1<i 2<…<i p≤m(δ+1)行以及第1≤j 1<j 2<…<j p≤n(δ+1)列中的块元素
Figure PCTCN2021087743-appb-000003
构成的pL×pL阶子矩阵
Figure PCTCN2021087743-appb-000004
其中i k,j k满足
Figure PCTCN2021087743-appb-000005
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure PCTCN2021087743-appb-000006
表示;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
在一种可能的设计中,所述信息符号为κ字节长度的列向量,其中κ为大于或等于1的整数。
在本申请实施例中,通过生成编码矩阵,获取由循环置换矩阵标识的编码系数,可以应用循环移位与逐位异或操作生成编码信息,而不需要基于有限域运算进行编码,因此降低了运算复杂度。同时本发明方案对数据单元进行基于信息段和信息符号的分割,实现应用低阶矩阵进行编解码,从而进一步降低编解码复杂度。另外,本发明方案构造的向量编码矩阵保证卷积纠删码满足MDS特性,在纠删性能上达到理论最优。本方案在编码端和解码端构造校验矩阵,以及删除矩阵,可以实现无需在网络传输中传输冗余位,提升编码效率。
第二方面,提供了一种数据恢复方法,包括:
接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
根据所述第二编码数据恢复所述丢失数据单元。
在一种可能的设计中,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
在一种可能的设计中,在根据所述第二编码数据恢复所述丢失数据单元进行恢复之前,所述方法还包括:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单 元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
在一种可能的设计中,所述根据所述第二编码数据恢复所述丢失数据单元,包括:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
在一种可能的设计中,所述对所述相关现存数据单元的第k个组合信息段进行编码与对所述相关原始数据单元的第k个组合信息段进行编码的操作相同,所述根据所述现存编码信息对所述相关现存冗余编码单元进行消元包括:
将所述现存编码信息与所述相关冗余编码单元进行逐位异或计算,消除所述相关冗余编码单元中所有与所述现存编码信息相同的信息。
在一种可能的设计中,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述对所述第一冗余编码单元进行解码,获得所述丢失数据单元,包括:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
在一种可能的设计中,所述对所述第二目标信息进行解码,获得所述第二目标信息段对应的第二目标编码信息,包括:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
第三方面,提供一种发送端设备,所述设备包括:
编码模块,用于发送第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送模块,用于发送所述第一编码数据。
在一种可能的设计中,所述编码模块具体用于:
将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
在一种可能的设计中,所述w个信息段中的每个信息段包括L个信息符号,所述编码模块还用于:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
在一种可能的设计中,所述编码模块还用于:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure PCTCN2021087743-appb-000007
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[I L|1]为奇偶校验矩阵,H=[I L|0] T为删除矩阵,
Figure PCTCN2021087743-appb-000008
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素t i,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵为:由块矩阵T中第1≤i 1<i 2<…<i p≤m(δ+1)行以及第1≤j 1<j 2<…<j p≤n(δ+1)列中的块元素
Figure PCTCN2021087743-appb-000009
构成的pL×pL阶子矩阵
Figure PCTCN2021087743-appb-000010
其中i k,j k满足
Figure PCTCN2021087743-appb-000011
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure PCTCN2021087743-appb-000012
表示;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
第四方面,提供一种接收端设备,所述设备包括:
接收模块,用于接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
解码模块,用于根据所述第二编码数据恢复所述丢失数据单元。
在一种可能的设计中,所述解码模块还用于:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
在一种可能的设计中,所述解码模块具体用于:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
在一种可能的设计中,所述解码模块具体用于:
将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关现存冗余编码单元中所有与所述现存编码信息相同的信息。
在一种可能的设计中,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述解码模块具体用于:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
在一种可能的设计中,所述解码模块具体用于:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示,用于对所述第二目标信息段进行循环移位操作;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
第五方面,提供一种通信装置,包括:输入接口,用于执行上述第三方面任一项发送端设备或第四方面任一项接收端设备中接收模块执行的步骤;
逻辑电路,用于执行上述第三方面中任一项发送端设备中编码模块执行的步骤,或用于执行上述第四方面中任一项接收端设备中解码模块执行的步骤;
输出接口,用于执行上述第三方面中任一项发送端设备或第四方面任一项接收端设备中发送模块执行的步骤。
第六方面,提供一种通信装置,所述装置包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:
所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述装置执行第一方面任一项所述的方法,或执行第二方面任一项所述的方法。
在一种可能的设计中,该装置的结构中包括处理模块和收发模块,其中,处理模块被配置为支持该装置执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
在另一种可能的设计中,该装置的结构中包括处理器,还可以包括存储器。处理器与存储器耦合,可用于执行存储器中存储的计算机程序指令,以使装置执行上述第一方面、或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。可选地,该装置还包括通信接口,处理器与通信接口耦合。当装置为网络设备时,该通信接口可以是收发器或输入/输出接口;当该装置为网络设备中包含的芯片时,该通信接口可以是芯片的输入/输出接口。可选地,收发器可以为收发电路,输入/输出接口可以是输入/输出电路。
第七方面,本申请实施例提供一种芯片系统,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得该芯片系统实现上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
可选地,该芯片系统还包括接口电路,该接口电路用于交互代码指令至所述处理器。
可选地,该芯片系统中的处理器可以为一个或多个,该处理器可以通过硬件实现也可以通过软件实现。当通过硬件实现时,该处理器可以是逻辑电路、集成电路等。当通过软件实现时,该处理器可以是一个通用处理器,通过读取存储器中存储的软件代码来实现。
可选地,该芯片系统中的存储器也可以为一个或多个。该存储器可以与处理器集成在一起,也可以和处理器分离设置,本申请并不限定。示例性的,存储器可以是非瞬时性处理器,例如只读存储器ROM,其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请对存储器的类型,以及存储器与处理器的设置方式不作具体限定。
第八方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序或指令,当该计算机程序或指令被执行时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
第九方面,本申请实施例提供一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,使得计算机执行上述第一方面或第一方面的任一种可能的实现方式中的方法,或者执行上述第二方面或第二方面的任一种可能的实现方式中的方法。
第十方面,本申请实施例提供一种通信系统,该通信系统包括上述第三方面的发送端设备和第四方面的接收端设备。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1A为本申请实施例提供的一种纠删码编码方案框架示意图;
图1B为本申请实施例提供的一种前向纠删码的实现原理示意图;
图1C为本申请实施例提供的一种RS码编码示意图;
图1D为本申请实施例提供的一种滑动窗口随机线性码生成示意图;
图2A为本申请实施例提供的一种数据恢复方法流程图;
图2B为本申请实施例提供的一种第一编码数据示意图;
图2C为本申请实施例提供的一种原始数据包划分示意图;
图2D为本申请实施例提供的一种原始数据包与冗余编码包关系示意图;
图2E为本申请实施例提供的一种接收第二编码数据过程示意图;
图3为本申请实施例提供的一种发送端设备示意图;
图4为本申请实施例提供的一种接收端设备示意图;
图5为本申请实施例提供的一种通信装置的结构示意图。
具体实施方式
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
首先对本申请实施例涉及的专业术语,以及系统架构或应用场景进行介绍。
开放式通信系统互联参考模型(Open System Interconnection Reference Model,OSI),是由国际标准化组织提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。OSI可划分为7层,从第一层到第七层分别为:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层;其中,低层的一至三层关注的是原始数据的传输;高层的四至七层关注的是网络下的应用程序。
纠删码(erasure coding,EC),也称为前向纠删码,是一种数据保护方法,它将原始数据分割成片段,然后在原始数据中添加冗余数据,并进行编码,生成纠删码。如果原始数据中部分数据丢失,可以根据纠删码对原始数据进行恢复。
原始数据单元,是指在网路中进行传输的数据符号被等长划分形成的数据单元。其中数据符号可以实例化为传输层的数据包,传输层数据流,或者IP报文,也可以是数据链路层的数据帧等。
冗余编码单元,在本申请实施例中是指根据原始数据单元生成的纠删码字。冗余编码单元可以根据多个原始数据单元编码生成,多个原始数据单元中的丢失数据分组也可以根据其编码生成的冗余编码单元恢复。
本申请实施例中,通过冗余编码单元对原始数据单元进行恢复,可以应用于传输层与应用层之间,用于针对传输层的丢包恢复,也可以应用于传输层与网络层之间进行丢包恢复,或用于链路层进行差错恢复。对应的应用场景包括:固网中针对长距离高延时网络中的网络应用场景,如数据中心场景,实时视频传输场景,以避免数据单元重传带来的高时延;此外,也应用于移动网,WIFI等丢包率较高的弱网场景中,以避免高丢包率导致的拥塞窗口退避问题。
根据上述描述,以网络纠删场景为例,具体为传输层对丢失数据包的恢复场景。请参阅图1A,图1A为本申请实施例提供的一种纠删码编码方案框架示意图,如图1A所示,纠删码框架位于传输层与应用层之间,且同时应用于接收端和发送端,纠删码方案在纠删码框架中实现,其对应的原始数据单元可以为原始数据包,对应的冗余编码单元可以为冗 余编码包,其中接收端的丢失数据包恢复过程具体包括:1、应用层将应用层数据交付给纠删码框架;2、纠删码框架根据应用层数据划分原始数据包并构建数据包分组;3、纠删码框架拷贝数据包分组到纠删码方案模块;4、纠删码方案模块进行编码操作;5、纠删码方案模块将编码后的冗余信息(编码系数以及编码后产生的冗余编码包)返回给纠删码框架;6、纠删码框架为原始数据包以及冗余编码包附加分组ID;7、纠删码框架将原始数据包与冗余编码包交付给传输层。
接收端对原始数据包中的丢失数据包进行恢复的过程也同样在图1A对应的框架中实现,具体包括:1、传输层交付报文段到纠删码框架;2、纠删码框架抽取数据包信息以及编码系数;3、向纠删码方案模块拷贝数据包,编码系数以及分组ID信息;4、纠删码方案模块进行本方案的解码操作;5、发送恢复的数据包到纠删码框架;6、交付恢复的数据包到应用层。
另外,与图1A对应的,请参阅图1B,图1B为本申请实施例提供的一种前向纠删码的实现原理示意图,如图1B所示,发送端向接收端发送一定数量的经编码后的数据包,数据包在网络传输时发生丢包。当丢失的数据包小于纠删码的纠删阈值时,接收端可以通过当前已接收的数据包恢复丢失的原始数据包,从而无需发送端重传丢失的数据包。此外,前向纠删码方案不仅可以恢复在网络传输中丢失的数据包,也可以恢复由差错导致的无法被纠错的数据包。
现有技术中,已经提出了多种前向纠删码技术,包括线性分组码,喷泉码和滑动窗口随机线性码等,具体描述如下:
一、线性分组码。
线性分组码为目前应用最为广泛的一类纠删码。(n+m,n)线性分组码表示将全部需要传输的原始数据单元划分为若干个包含n个原始数据单元的分组,并对每一个分组的n个原始数据单元进行编码形成m个冗余编码单元以恢复分组内丢失的原始数据单元。线性分组码中最广泛应用的码为里所(Reed-solomon,RS)码,是一种满足最大距离可分(Maximum distance seperable,MDS)特性的码。RS码应用范德蒙矩阵或柯西矩阵构造编码系数,使冗余编码单元的编码系数线性无关。因此,(n+m,n)RS码的一个分组中发生任意m个原始数据单元的丢失,都可以成功恢复,获得完整的n个原始数据单元。请参阅图1C,图1C为本申请实施例提供的一种RS码编码示意图,如图1C所示,为(12,9)RS码,其中每9个原始数据单元划分为一个分组,每一个分组由3个冗余编码单元所保护,可以达到分组中任意3个原始数据单元丢失都可以成功恢复,以便获得完整的9个原始数据单元的性能。
线性分组码方案的恢复时延较高:由于需要保证一定的纠删能力,线性分组码的分组大小n通常较大。而线性分组码的最差单丢包恢复时延为分组大小n,平均恢复时延为n/2,在分组较大时无法适用于时延敏感性应用。另外,线性分组码的编解码操作基于有限域运算,编解码复杂度较高。
二、喷泉码。
喷泉码为一类基于随机编码的无速率码。喷泉码针对一个原始数据单元分组产生无穷的冗余编码序列,其中序列中每一个冗余编码单元根据度分布函数随机抽取特定数量个原始数据单元进行随机编码。当接收端接收到全部的原始数据单元时,向发送端发送反馈继 续发送下一个分组。
喷泉码等无速率码基于接收端的反馈确定下个原始数据单元分组的发送。其无速率特性导致在反馈不及时的情况下,会在网络中发送过多的冗余数据包占据带宽,降低网络的有效带宽。并且喷泉码的随机编码特性无法保证确定性纠删能力,即无法满足MDS特性。
三、滑动窗口随机线性码。
滑动窗口随机线性码对应用滑动窗口(通常滑动窗口长度大于分组长度)对原始数据单元进行编码产生冗余编码单元。图1D为本申请实施例提供的一种滑动窗口随机线性码生成示意图,如图1D所示,随着数据包的传输,滑动窗口每次滑动特定的长度,为2个原始数据单元,每个窗口内包含4个原始数据单元,对其进行随机编码。滑动窗口随机线性码没有分组的概念,产生的冗余编码单元可能包含重复的原始数据单元信息。并以有限域GF(2 8)上随机取值的元素作为编码系数。
滑动窗口随机线性码的随机编码特性无法保证确定性纠删能力,即无法满足MDS特性。并且编解码操作基于有限域运算,编解码复杂度较高。
基于上述描述,请参阅图2A,图2A为本申请实施例提供的一种数据恢复方法流程图,用于解决上述问题,该方法包括如下步骤:
101、发送端生成第一编码数据,第一编码数据中包括多个数据单元分组,多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,冗余编码单元根据多个数据单元分组中的第一分组和第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,冗余编码单元用于接收端对丢失数据单元进行恢复,丢失数据单元为传输过程中丢失的原始数据单元;
102、发送端发送第一编码数据;
103、接收端接收第一编码数据对应的第二编码数据,第一编码数据包括多个数据单元分组,多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,第二编码数据包括多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,现存数据单元为原始数据单元中除丢失数据单元之外的数据单元,现存冗余编码单元为冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
104、接收端根据第二编码数据恢复丢失数据单元。
在本申请实施例中,以应用于图1A的框架为例,数据单元实例化为传输层和应用层之间传输的数据包,冗余编码单元对应实例化为冗余编码包。因此,以下实施例中都通过原始数据包、冗余编码包、丢失数据包和现存数据包来描述原始数据单元、冗余编码单元、丢失数据单元和现存数据单元。
第一编码数据是指发送端按照一定顺序向接收端发送的数据包组成的数据流,第一编码数据中包括多个数据包分组,其中多个数据包分组可以是两个或两个以上的数据包分组。请参阅图2B,图2B为本申请实施例提供的一种第一编码数据示意图,如图2B所示,第一编码数据中包括3个数据包分组,分别为P 1,1~P 1,3三个原始数据包组成的第二前向分组,P 2,1~P 2,3组成的第一前向分组,以及P 3,1~P 3,3组成的第一分组,R1、R2和R3分别为第二前向分组、第一前向分组和第一分组对应的冗余编码包。其中每个分组对应的冗余编码包是根据该分组中的原始数据包,以及该分组δ个前向分组中的原始数据包生成的,δ为正整 数,第一分组的前向分组表示该分组内的数据包在第一分组的数据包之前发送,或者该分组内的数据包在第一分组的数据包之前到达接收端。图2B中以δ=2为例,对于第一分组来说,其对应的冗余编码包R3是根据第一分组中的P 3,1~P 3,3以及第一分组的2个前向分组中的原始数据包,包括第一前向分组中的P 2,1~P 2,3,以及第二前向分组中的P 1,1~P 1,3,总共9个原始数据包生成的。即第一分组对应的冗余编码包对应δ=2个卷积度。
在一些情况下,数据包分组的前向分组个数可能小于δ,例如第一前向分组,其对应的前向分组个数(r=1)<(δ=2),那么将r作为第一前向分组的δ,第一前向分组的冗余编码包R2根据第一前向分组对应的原始数据包P 2,1~P 2,3以及其δ个前向分组,即第二前向分组,对应的原始数据包P 1,1~P 1,3生成。
或者,在一些情况下,如果第一编码数据中只包括一个数据包分组,对于这样的数据包分组,其前向分组个r=0,同样的,将r作为该数据包分组的δ,生成该数据包分组对应的冗余编码包。例如图2B中的第二前向分组,该数据包分组对应的冗余编码包则只根据第二前向分组对应的原始数据包P1,1~P1,3生成。因此,采用本申请实施例的方法同样可以对单个数据包分组进行编码,生成该分组对应的冗余编码包。
在本申请实施例中,一个数据包分组包括n个原始数据包,对应的冗余编码包为m个,m可以为1,也可以是大于1的整数,每个数据包分组对应的n相同,每个数据包分组对应的m可以相同,也可以不同。例如图2B中对应的冗余编码包个数m=1,第一分组对应的冗余编码包为R3。或者m=3,那么图2B中的R3可以包括(R31,R32,R33),在这种情况下,同一个数据包分组对应的多个冗余编码包可以根据相同的原始数据包和不同的编码系数生成。即R31,R32和R33是针对P 1,1~P 1,3,P 2,1~P 2,3和P 3,1~P 3,3这9个原始数据包以及3组不同的编码系数生成的冗余编码包,每组编码系数包括与每个原始数据包对应的9个编码系数。
可见,在本申请实施例中,通过第一分组的原始数据包和第一分组的δ个前向分组中的原始数据包编码生成第一分组对应的冗余编码包,第一方面可以减少每个分组中的原始数据包个数,即减少了接收到每个分组n的个数,降低了丢包恢复时延,同时,重复使用δ个前向分组中的原始数据包生成冗余编码包,可以提升对δ个前向分组中的原始数据包的保护,进而保证了对丢失数据包的恢复能力。
在发送第一编码之前,除了划分原始数据包的分组之外,还需要对原始数据包分组进行编码获得冗余编码包。冗余编码包的编码过程具体为:
将第一分组对应的n×(δ+1)个相关原始数据包中的每个原始数据包划分生成w个信息段,w>1,相关原始数据包包括第一分组对应的n个原始数据包和第一分组的δ个前向分组对应的原始数据包;对第一分组的第k个组合信息段进行编码,生成第k个组合信息段对应的第一编码信息,第一分组的第k个组合信息段由n×(δ+1)个相关原始数据包中的每个前向原始数据包的第k个信息段组成,1≤k≤w;根据第一编码信息获取第一分组对应的冗余编码包,冗余编码包由w个组合信息段对应的w个第一编码信息组成。
具体地,在本申请实施例中,将所有用来生成某个分组的冗余编码包所对应的原始数据包称为该分组的相关原始数据包,例如对于第一分组来说,其相关原始数据包包括第一分组对应的n个原始数据包,以及第一分组的δ个前向分组中每个分组内的n个原始数据 包,总共包括n×(δ+1)个原始数据包。请参阅图2C,图2C为本申请实施例提供的一种原始数据包划分示意图,如图2C所示,将第一分组的n×(δ+1)个相关原始数据包中的每个原始数据包划分成w个信息段,w为大于或等于1的整数,然后针对每个相关原始数据包的第k个信息段组成的第一分组的第k个组合信息段进行编码,生成第k个组合信息段对应的第一编码信息。请参阅图2D,图2D为本申请实施例提供的一种原始数据包与冗余编码包关系示意图,如图2D所示,对于第一分组的相关原始数据包来说,总共有w个组合信息段,每个组合信息段生成其对应的一个第一编码信息,那么总共可以生成w个第一编码信息,组成了第一分组对应的冗余编码包。
当第一分组的相关原始数据包对应多个冗余编码包时,对应的实现方式为:如图2D中所示的第k个组合信息段根据不同的编码系数生成不同的第k个第一编码信息,那么根据w个第一编码信息组成的冗余编码包就为不同的冗余编码包。
可见,在本申请实施例中,通过将第一分组对应的相关原始数据包划分成w个信息段,然后根据每个前向相关原始数据包的第k个信息段组成的第k个组合信息段生成每个组合信息段对应的第一编码信息,再根据w个第一编码信息组成第一分组对应的冗余编码包。这个过程对原始数据包进行分信息段编码,可以降低编码复杂度,提高编码效率。
进一步的,将w个信息段中的每个信息段分成L个信息符号,对第一分组的第k个组合信息段进行编码,生成第k个组合信息段对应的第一编码信息,包括:根据第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得第k个组合信息段对应的目标信息段,目标信息段对应的n×(δ+1)个信息段中的每个信息段包括L个信息符号和第L+1个信息符号;对目标信息段进行编码,获得目标信息段对应的目标编码信息;删除目标编码信息中第L+1个信息符号,获得每个目标信息段对应的第一编码信息。
获取目标信息段的具体过程包括:将属于分组j的第i个原始数据包P j,i划分为w个信息段P j,i=[P j,i,1,P j,i,2,…,P j,i,w],其中j=0,1,2,…且i=[1,2,…,n]。每个信息段包含L个信息符号P j,i,k=[P j,i,k,1,P j,i,k,2,…,P j,i,k,L],L满足L+1为质数且2为L+1的一个原根。每个信息符号P j,i,k,s表示为一个长度为κ字节的列向量。对于原始数据包P j,i的每个信息段P j,i,k,最后一列生成一个新的信息符号P j,i,k,L+1=P j,i,k,1+P j,i,k,2+…+P j,i,k,L,其中+表示二元列向量间的逐位异或,即得到第k个信息符号对应的目标信息段P j,i,k=[P j,i,k,1,P j,i,k,2,…,P j,i,k,L,P j,i,k,L+1]。
更进一步地,对目标信息段进行编码,获得目标信息段对应的目标编码信息,包括:构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,m为第一分组对应的冗余编码包个数;根据编码矩阵A获取目标信息段对应的编码系数,编码系数由循环移位矩阵表示,用于对目标信息段进行循环移位操作;根据编码系数对目标信息段进行编码,获得目标编码信息。
其中(δ+1)×n×(L+1)为第一分组对应的相关原始数据包每个信息段对应的信息符号个数,(δ+1)×m×(L+1)为所有与第一分组的原始数据包相关的冗余编码包每个信息段对应 的信息符号个数,其中第一分组的原始数据包相关的冗余编码包包括第一分组对应的冗余编码包,以及第一分组作为其他分组的δ个前向分组时对应的其他分组冗余编码包,例如对于第一分组来说,可能作为后续第四分组、第五分组的δ个前向分组,那么的第一分组的原始数据包相关的冗余编码包还包括第四分组对应的冗余编码包R4,以及第五分组对应的冗余编码包R5。生成的二元向量编码矩阵A如公式(1)所示:
Figure PCTCN2021087743-appb-000013
上述矩阵A可以视为一个(δ+1)m×(δ+1)n的块矩阵,每个(L+1)×(L+1)的块元素A j,i,k表示为A j,i,k=a j,i,k(C L+1),为一个(L+1)×(L+1)的二元矩阵。表示每个信息段对应的编码系数(编码矩阵)。a j,i,k(C L+1)=a L(C L+1) L+…+a 1(C L+1) 1+a 0为循环矩阵
Figure PCTCN2021087743-appb-000014
Figure PCTCN2021087743-appb-000015
的函数,且至多包含
Figure PCTCN2021087743-appb-000016
个非零的系数a j。矩阵A满足
Figure PCTCN2021087743-appb-000017
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[I L|1]为奇偶校验矩阵,H=[I L|0] T为删除矩阵,
Figure PCTCN2021087743-appb-000018
表示克罗内克积。
矩阵T可以视为一个(δ+1)m×(δ+1)n的块矩阵,每个块元素t i,j为一个L×L的二元矩阵。它的pL×pL规范子矩阵定义为:由块矩阵T中第1≤i 1<i 2<…<i p≤m(δ+1)行以及第1≤j 1<j 2<…<j p≤n(δ+1)列中的块元素
Figure PCTCN2021087743-appb-000019
构成的pL×pL阶子矩阵
Figure PCTCN2021087743-appb-000020
其中i k,j k满足
Figure PCTCN2021087743-appb-000021
对于1≤k≤p。
进一步的,本发明对数据包的每个信息段进行基于κ个字节的循环移位编码,得到属于分组j的第t个冗余编码包R j,t的每个信息段R j,t,k的数学表达为:
Figure PCTCN2021087743-appb-000022
由于A (j-j′),t,i为循环置换矩阵C L+1的函数,因此公式(2)可以由对信息符号的循环移位 操作实现,即基于κ个字节的循环移位操作实现。
进一步的,对于冗余编码包R j,t的每个信息段R j,t,k,删除最后一列的信息符号R j,i,k,L+1,即R j,t,k=[R j,t,k,1,R j,t,k,2,…,R j,t,k,L]。
在本申请实施例中,通过生成编码矩阵,获取由循环移位矩阵标识的编码系数,可以应用循环移位与逐位异或操作生成编码信息,而不需要基于有限域运算进行编码,因此降低了运算复杂度。同时本发明方案对数据包进行基于信息段和信息符号的分割,实现应用低阶矩阵进行编解码,从而进一步降低编解码复杂度。另外,本发明方案构造的向量编码矩阵保证卷积纠删码满足MDS特性,在纠删性能上达到理论最优。本方案在编码端和解码端构造校验矩阵,以及删除矩阵,可以实现无需在网络传输中传输冗余位,提升编码效率。
发送端完成对原始数据包的编码,生成第一编码数据后,发送给接收端。接收端并不能对第一编码数据进行完全的接收,而是接收到第二编码数据,其中第二编码数据包括现存数据包和现存冗余编码包,现存数据包即为原始数据包中除丢失数据包之外的数据包。现存冗余编码包为发送端发送的冗余编码包中,除去发送过程中丢失的冗余编码包之外的冗余编码包。
具体地,请参阅图2E,图2E为本申请实施例提供的一种接收第二编码数据过程示意图,如图2E所示,当接收端接收第二编码数据时,发送第二分组对应的原始数据包丢失了P 3,1,即丢失数据包为P 3,1,继续接收第二分组的数据包,接收到了P 3,2和P 3,3作为第二分组的现存数据包,以及第二分组的冗余编码包R3作为现存冗余编码包,那么需要根据现存数据包,现存冗余编码包以及生成冗余编码包时所对应的编码方法对冗余编码包进行解码,获得丢失数据包P 3,1
首先,接收端在完成第二分组的接收后,可以判断是否能够对丢失数据包进行恢复。首先获取第二分组对应的滑动窗口,该滑动窗口的长度为第二分组在没有发生丢包的情况下,对应的相关数据包个数,包括第二分组的原始数据包个数n和现存冗余编码包个数m,以及第二分组的p个后向分组中的现存数据包个数和现存冗余编码包个数p*(m+n),总共为(m+n)×(p+1)。第二分组的后向分组为将第二分组作为δ个前向分组之一,并进行编码获得自身对应的冗余编码包的数据包分组。例如,假设δ=2,n=3,m=1,对于图2E中所示的第二分组来说,其对应的后向分组包括第一后向分组和第二后向分组,那么第二分组的相关数据包包括第二分组的3个原始数据包和1冗余编码包,以及第一后向分组和第二后向分组分别对应的3个原始数据包和1个冗余编码包。
然后根据滑动窗口内的丢失数据包个数判断是否能够对丢失数据包进行恢复。可恢复条件为:滑动窗口内丢失数据包的个数s小于或等于m×(p+1),其中0≤p≤δ。即接收端完成第二分组的接收时,确定第二分组是否满足丢包个数≤1,如果是,则能够对第二分组丢失的数据包进行恢复;否则接收端继续进行第一后向分组的接收,然后判断第二分组和第一后向分组的丢包总个数是否≤2,如果是,则能够对第二分组和第一后向分组丢失的数据包进行恢复;否则接收端继续进行第二后向分组的接收,然后判断第二分组、第一后向分组和第二后向分组的丢包总个数是否≤3,如果是,则能够对上述丢包进行恢复,否则不能进行恢复。这些丢失数据包可以属于同一个数据包分组,也可以属于多个不同的数据包分 组。即,如果满足条件,则该滑动窗口内的每个数据包分组对应的丢失数据包都能够进行恢复,否则都不能进行恢复。
另外,如果第二分组的后向分组个数小于δ,假设其后向分组个数为r,那么该分组对应的δ=r,同样的,基于该数值和上述公式对该分组的数据包丢失数量阈值进行计算。
当满足上述可恢复条件时,根据第二编码数据恢复丢失数据包,包括:将第二分组的相关现存数据单元划分生成w个信息段,w≥1,相关现存数据单元包括第二分组对应的现存数据单元和第二分组的p个后向分组中的现存数据单元;对相关现存数据单元的第k个组合信息段进行编码,生成第k个组合信息段对应的第二编码信息,第k个组合信息段由每个相关现存数据单元的第k个信息段组成,其中1≤k≤w;根据第二编码信息获取相关现存数据单元对应的现存编码信息,现存编码信息由w个组合信息段对应的w个第二编码信息组成;根据现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,相关现存冗余编码单元包括第二分组的现存冗余编码单元和第二分组的p个后向分组的现存冗余编码单元,相关丢失数据单元包括第二分组的丢失数据单元和第二分组的p个后向分组的丢失数据单元;对第一冗余编码单元进行解码,获得相关丢失数据单元。
具体地,接收端对接收到的相关现存数据包进行发送端对相关原始数据包相同的处理,例如图2E中如果接收端只接收了第二分组,那么对应的相关现存数据包包括P 3,2和P 3,3,如果接收端接收了第二分组和第一后向分组,那么相关现存数据包包括P 3,2和P 3,3以及第一后向分组中的现存数据包(第一后向分组也可能在传输过程中发生丢包),对多个相关现存数据包中的每个相关现存数据包划分w个信息段,其中w≥1;当w=1时,表示不划分数据段,当w≥2时,表示将相关现存数据包划分成多个信息段;多个相关现存数据包排序相同的信息段组成该分组对应的组合信息段;对每个组合信息段进行编码,获得每个组合信息段对应的第二编码信息,其中对相关现存数据包组合信息段的编码和对相关原始数据包组合信息段的编码相同,包括编码系数获取方式相同,运算方式相同等,使得同样的组合信息段,两者能够通过编码获得同样的编码结果;由w个第二编码信息组合生成现存编码信息。最后,在根据相关现存冗余编码包恢复丢失数据包时,可以通过相关现存冗余编码包与现存编码信息进行消元来获得相关丢失数据包对应的冗余编码信息。与前述相关现存数据包对应的,如果接收端接收了第二分组和第一后向分组,那么相关现存冗余编码包包括第二分组的现存冗余编码包和第一后向分组的现存冗余编码包。消元的具体方法包括:将相关现存数据包中每个信息段对应的第二编码信息,与相关现存冗余编码包中的每个信息段进行逐位异或计算。相关现存冗余编码包中的剩余信息为丢失数据包对应的第一冗余编码包。上述步骤表述为:
对于相关现存数据包P j′,i的每个信息段P j′,i,k,最后一列生成一个新的信息符号P j′,i,k,L+1=P j′,i,k,1+P j′,i,k,2+…+P j′,i,k,L,即得到P j′,i,k=[P j′,i,k,1,P j′,i,k,2,…,P j′,i,k,L,P j′,i,k,L+1]。
计算信息段R j,t,k编码P j′,i,k的编码信息
S j,j′,i,t,k=P j′,i,kA (j-j′),t,i
其中A (j-j′),t,i为相关现存冗余编码包R j,t对相关现存数据包P j′,i的编码系数矩阵。进一步的,删除S j,j′,i,t,k的最后一列对应的信息符号。相关现存冗余编码包R j,t的每个信息段R j,t,k消去编码信息S j,j′,i,k,k
R j,t,k=R j,t,k+S j,j′,i,t,k
获得相关丢失数据包对应的第一冗余编码包后,需要对第一冗余编码包进行解码获得相关丢失数据包。首先,对第一编码包的w个信息段中每个信息段对应的L个信息符号进行逐位异或计算,获得第L+1个信息符号;然后根据前L个信息符号和第L+1个信息符号组成每个信息段对应的第二目标信息段;对第一冗余包对应的w个第二目标信息段分别进行解码,获得w个第二目标编码信息,最后从w第二目标编码信息的每个第二目标编码信息中删除第L+1个信号,获得w个第二编码信息,组成丢失数据包。其具体过程为:
设接收到的冗余编码包(相关现存冗余编码包)为
Figure PCTCN2021087743-appb-000023
其中j 1≤j 2≤…≤j s,且t 1≤t 2≤…≤t s。丢失数据包(相关丢失数据包)为
Figure PCTCN2021087743-appb-000024
其中j′ 1≤j′ 2≤…≤j′ s,且i 1≤i 2≤…≤i s。则冗余编码包对丢失数据包的全局编码矩阵为
Figure PCTCN2021087743-appb-000025
求解该全局编码矩阵的逆矩阵。表示为
Figure PCTCN2021087743-appb-000026
其中
Figure PCTCN2021087743-appb-000027
表示克罗内克积,I S为s阶单位阵。其中每一个块元素
Figure PCTCN2021087743-appb-000028
其中det(*)表示矩阵的判别式求解运算,矩阵M i,j为删除
Figure PCTCN2021087743-appb-000029
的第i行与第j列的块元素得到的剩余矩阵。
对于每个
Figure PCTCN2021087743-appb-000030
的每个信息段
Figure PCTCN2021087743-appb-000031
最后一列生成一个新的信息符号
Figure PCTCN2021087743-appb-000032
Figure PCTCN2021087743-appb-000033
即得到
Figure PCTCN2021087743-appb-000034
对于数据包
Figure PCTCN2021087743-appb-000035
其包含的信息段
Figure PCTCN2021087743-appb-000036
根据公式(3)进行解码
Figure PCTCN2021087743-appb-000037
由于D u,v为循环置换矩阵C L+1的函数,因此公式(3)可以由对信息符号的循环移位操作实现。
进一步的,对于数据包
Figure PCTCN2021087743-appb-000038
的每个信息段
Figure PCTCN2021087743-appb-000039
删除最后一列的信息符号
Figure PCTCN2021087743-appb-000040
即得成功恢复的数据包
Figure PCTCN2021087743-appb-000041
其中
Figure PCTCN2021087743-appb-000042
当接收端完成解码后,或当前解码的可解条件未满足时,接收端等待下一分组的接收后重复上述解码过程。
可见,在本申请实施例中,接收端在发现数据包分组中包含丢失数据包时,完成该分组的接收,并判断该分组对应的丢包个数是否小于预设阈值,如果是,则根据该分组的现存数据包和现存冗余编码包对该分组的丢失数据包进行恢复;否则,继续该分组的后向分组的接收,同样判断丢包个数是否小于预设阈值,如果是,则根据该分组的相关现存数据包和相关现存冗余编码包对该分组的丢失数据包进行恢复。直到完成发生丢包的分组对应的δ个后向分组的接收。丢失数据包恢复过程包括:根据相关现存数据包对相关冗余编码包进行消元,可以降低后续矩阵求逆运算复杂度;在进行解码之前,获取解码系数的方法是对获取相关现存冗余编码包编码系数的全局编码矩阵进行求逆运算获得逆矩阵。然后根据逆矩阵对冗余编码包进行循环移位操作,获得解码结果,这个过程应用循环移位与逐位异或操作代替有限域运算进行解码,进一步降低的解码复杂度。此外,上述序贯解码方案在每一个分组到达后进行解码,可以有效降低恢复时延。
为了进一步说明本申请对应的方法,本实施例考虑一类码率为n/(n+1)的卷积码,冗余度m=1的卷积码,即每个数据包分组对应的冗余编码包个数为1。
Figure PCTCN2021087743-appb-000043
系统卷积码为一类高码率纠删码,且同码率下恢复时延最低,契合传输层纠删场景对高有效吞吐量,低恢复时延的需求。因此本实施例为本发明的首要实例方案。
本实施例给出一种大小为(δ+1)(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A的构造方法,使得
Figure PCTCN2021087743-appb-000044
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤(δ+1)。
考虑一类MDS向量码,其校验矩阵表示为:
Figure PCTCN2021087743-appb-000045
其中β定义在有限域GF(2 L)上满足β L+1=1。
截取矩阵K的δ+1行以及n列,使得得到的剩余矩阵S的第i行第j列矩阵元素s i,j满足
Figure PCTCN2021087743-appb-000046
对于任意的1≤i≤δ,1≤j≤n,均不相同。验证以S为前n列扩展得到的矩阵ST不包含p×p的奇异规范子矩阵,其中2≤p≤δ+1。则本实施例中二元向量编码矩阵A的块元素由A j,i=s j,i(C L+1)定义,其中s j,i( L+1)表示将s i,j中的β替换为C L+1
Figure PCTCN2021087743-appb-000047
Figure PCTCN2021087743-appb-000048
Figure PCTCN2021087743-appb-000049
进一步,发送端对原始数据包进行基于字节循环移位的编码操作产生冗余编码包,所述方法包含:
对于数据包P j,i的每个信息段P j,i,k,最后一列生成一个新的信息符号P j,i,k,L+1=P j,i,k,1+P j,i,k,2+…+P j,i,k,L,即得到P j,i,k=[P j,j,k,1,P j,i,k,2,…,P j,i,k,L,P j,i,k,L+1]。
进一步的,本发明对数据包的每个信息段进行基于κ个字节的循环移位编码,得到属于分组j的冗余编码包R j的每个信息段R j,k的数学表达为:
Figure PCTCN2021087743-appb-000050
由于A (j-j′),i为循环置换矩阵C L+1的函数,因此式(4)可以由对信息符号的循环移位操作实现,即基于κ个字节的循环移位操作实现。
进一步的,对于冗余编码包R j的每个信息段R j,k,删除最后一列的信息符号R j,k,L+1,即R j,k=[R j,k,1,R j,k,2,…,R j,k,L]。
接收端在接收到第二编码数据中的第二分组,且发现第二分组存在丢包后,对可解性条件进行判定,包括:确定长度为(1+n)×(p+1)的滑动窗口内丢失数据包的个数s小于或等于p+1,其中滑动窗口长度对应第二分组的相关数据包个数,包括n×(p+1)个相关原始数据包(即自身的n个原始数据包和p个后向分组的n×p个原始数据包),和p+1个相关冗余编码包(即自身的1个冗余编码包和p个后向分组的p个冗余编码包),丢失数据包满足在第 二分组和第二分组后向p个分组中丢失的数目≤p+1,其中0≤p≤δ。
接收端恢复丢失数据包的过程表述如下:
接收端接收并缓存每一个成功接收的相关现存数据包(包括第二分组的现存数据包,或者还包括p个后向分组的现存数据包)与相关现存冗余编码包(包括第一分组的现存冗余编码包,或者还包括p个后向分组的现存冗余编码包);
在每到达一个冗余编码包时,对已接收的现存数据包进行消元操作,使该冗余编码包仅为丢失数据包的线性组合。冗余编码包R j对现存数据包P j′,i的消元操作定义如下:
对于现存数据包P j′,i的每个信息段P j′,i,k,最后一列生成一个新的信息符号P j′,i,k,L+1=P j′,i,k,1+P j′,i,k,2+…+P j′,i,k,L,即得到P j′,i,k=[P j′,u,k,1,P j′,i,k,2,…,P j′,i,k,L,P j′,i,k,L+1];
计算信息段R j,k编码P j′,i,k的编码信息
S j,j′,i,k=P j′,i,kA (j-j′),i
其中A (j-j′),i为冗余编码包R j,t对现存数据包P j′,i的编码系数矩阵。删除S j,j′,i,k的最后一列对应的信息符号。
进一步的,冗余包R j的每个信息段R j,k消去编码信息S j,j′,i,k
R j,k=R j,k+S j,j′,i,k
设接收到的冗余数据包为
Figure PCTCN2021087743-appb-000051
其中t 1≤t 2≤…≤t s。需要恢复的丢失数据包
Figure PCTCN2021087743-appb-000052
其中j′ 1≤j′ 2≤…≤j′ s,且i 1≤i 2≤…≤i s。则冗余数据包对需要恢复的丢失数据包的全局编码矩阵为
Figure PCTCN2021087743-appb-000053
求解该全局编码矩阵的逆矩阵,表示为
Figure PCTCN2021087743-appb-000054
其中
Figure PCTCN2021087743-appb-000055
表示克罗内克积,I S为s阶单位阵。其中每一个块元素
Figure PCTCN2021087743-appb-000056
其中det(*)表示矩阵的判别式求解运算,矩阵M i,j为删除
Figure PCTCN2021087743-appb-000057
的第i行与第j列的块元素得到的剩余矩阵。
对于每个
Figure PCTCN2021087743-appb-000058
的每个信息段
Figure PCTCN2021087743-appb-000059
最后一列生成一个新的信息符号
Figure PCTCN2021087743-appb-000060
Figure PCTCN2021087743-appb-000061
即得到
Figure PCTCN2021087743-appb-000062
对于数据包
Figure PCTCN2021087743-appb-000063
其包含的信息段
Figure PCTCN2021087743-appb-000064
由式(5)进行解码
Figure PCTCN2021087743-appb-000065
由于D u,v为循环置换矩阵C L+1的函数,因此式(5)可以由对信息符号的循环移位操作实现。
进一步的,对于数据包
Figure PCTCN2021087743-appb-000066
的每个信息段
Figure PCTCN2021087743-appb-000067
删除最后一列的信息符号
Figure PCTCN2021087743-appb-000068
即得成功恢复的数据包
Figure PCTCN2021087743-appb-000069
其中
Figure PCTCN2021087743-appb-000070
为了进一步说明本申请对应的方法,以下采用具体数值对申请实施例对应的数据包编码和解码方法进行实例化描述,其中每个数据包分组中的原始数据包n=2,每个数据包分组对应的冗余编码包个数m=1,数据包分组的δ个前向分组δ=2。
考虑一个网络传输场景,发送端向接收端发送十个数据包P 0,1,P 0,2,P 1,1,P 1,2,P 2,1,P 2,2,P 3,1,P 3,2,P 4,1,P 4,2,发送端在原始数据包交付传输层之前应用纠删码方案对原始数据包进行编码保护。其中每两个原始数据包作为一个分组,产生编码后的系统编码序列为P 0,1,P 0,2,R 0,P 1,1,P 1,2,R 1,P 2,1,P 2,2,R 2,P 3,1,P 3,2,R 3,P 4,1,P 4,2,R 4。编码方案由以下过程给出。
首先构造向量编码矩阵A为:
Figure PCTCN2021087743-appb-000071
其中I 5为5阶单位矩阵,C 5为五阶循环置换矩阵
Figure PCTCN2021087743-appb-000072
Figure PCTCN2021087743-appb-000073
表示C 5的2次幂为
Figure PCTCN2021087743-appb-000074
假设每个原始数据包P j,i包含1280比特,灵活分块方案将每个数据包分割为40个包含32比特(4个字节)的信息段:P j,i=(P j,i,1,…,P j,i,40)。进一步每个信息段分割为四个长度为1个字节的信息符号:P j,i,k=[P j,i,k,1,P j,i,k,2,P j,i,k,3,P j,i,k,4]。
对于数据包P j,i的每个信息段P j,i,k,最后一列生成一个新的信息符号P j,i,k,5=P j,i,k,1+P j,i,k,2+…+P j,i,k,4,即得到P j,i,k=[P j,i,k,1,P j,i,k,2,P j,i,k,3,P j,i,k,4,P j,i,k,5]。
(例:假设P 0,2的第2个信息段为P 0,2,2=[[11001100] T,[11111111] T,[00000000] T,[10011001] T],
生成新的奇偶校验信息符号得到P 0,2,2=[[11001100] T,[11111111] T,[00000000] T,[10011001] T,[10101010] T]。
由公式(4)中定义的运算,冗余包R 2基于字节的循环移位编码操作为:
Figure PCTCN2021087743-appb-000075
其中P i,jI 5的运算表示保持P i,j数据包不变;
Figure PCTCN2021087743-appb-000076
表示将信息段P 0,2,k按信息符号为单位向右循环移位两个单位。
(例:P 0,2,2=[[11001100] T,[11111111] T,[00000000] T,[10011001] T,[10101010] T],
Figure PCTCN2021087743-appb-000077
P 1,1,kC 5表示将信息段P 1,1,k按信息符号为单位向右循环移位一个单位。
最终将得到的6个信息段逐位异或即得到R 2,k
进一步的,对于冗余编码包R 2的每个信息段R 2,k,删除最后一列的信息符号R 2,k,5,即得到最终的冗余编码包R 2,k=[R 2,k,1,R 2,k,2,R 2,k,1,R 2,k,4]。
假设在网络中传输数据包序列P 0,1,P 0,2,R 0,P 1,1,P 1,2,R 1,P 2,1,P 2,2,R 2,P 3,1,P 3,2,R 3,P 4,1,P 4,2,R 4时,在接收端的传输层感知P 0,1,P 0,2两个数据包发生丢失,则在接收端接收到R 0和R 1后即可解码恢复P 0,1,P 0,2中的数据。以下给出接收端纠删码方案的解码过程。
首先R 1对已收到的数据包P 1,2和P 1,1进行消元,由于R 1对P 1,2和P 1,1的编码矩阵均为单位矩阵,R 1中的每个信息段R 1,k对P 1,2和P 1,1中的信息段进行逐位异或即可消除P 1,2和P 1,1中的编码信息。消元后的冗余包R 1表示为R′ 1
由于R 0=P 0,1+P 0,2,可得到R 0,R′ 1形成的全局编码矩阵为
Figure PCTCN2021087743-appb-000078
求解其逆矩阵为
Figure PCTCN2021087743-appb-000079
进一步的,对R 0,R′ 1中的每个信息段的最后一列生成一个新的信息符号R 0,k,5=R 0,k,1+R 0,k,2+R 0,k,3+R 0,k,4;R′ 1,k,5=R′ 1,k,1+R′ 1,k,2+R′ 1,k,3+R′ 1,k,4
根据公式(5),解码P 0,1数据包的表达式为:
Figure PCTCN2021087743-appb-000080
等式右端第一项为对于R 0包含的每个信息段R 0,k,按信息符号为单位向右循环移位3个单位;第二项为对于R 0包含的每个信息段R 0,k,按信息符号为单位向右循环移位1个单位;
第三项为对于R′ 1包含的每个信息段R′ 1,k,按信息符号为单位向右循环移位3个单位;第四项为对于R′ 1包含的每个信息段R′ 1,k,按信息符号为单位向右循环移位1个单位。最终将得到的四个信息段逐位异或即得到解码数据包P 0,1的信息段P 0,1,k
同理,解码P 0,2数据包的表达式为:
Figure PCTCN2021087743-appb-000081
最终,将解码后的P 0,1,P 0,2数据包中的每个信息段P 0,1,k,P 0,2,k删除最后一列对应的信息符号即得到原数据包P 0,1,P 0,2
图3为本申请实施例提供的一种发送端设备300,其可以用于执行上述图2A~图2E的发送端的数据恢复方法和具体实施例,该发送端设备可以是发送端设备或者可以是配置于发送端设备的芯片。在一种可能的实现方式中,如图3所示,该发送端设备300包括发送模块301和编码模块302。
编码模块302,用于生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
发送模块301,用于发送第一编码数据。
可选的,编码模块302具体用于:
将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
对所述原始数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
可选的,所述w个信息段中的每个信息段包括L个信息符号,所述编码模块302还用于:
根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
可选的,所述编码模块302还用于:
构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
Figure PCTCN2021087743-appb-000082
的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[I L|1]为奇偶校验矩阵,H=[I L|0] T为删除矩阵,
Figure PCTCN2021087743-appb-000083
表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素t i,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵定义为:由块矩阵T中第1≤i 1<i 2<…<i p≤m(δ+1)行以及第1≤j 1<j 2<…<j p≤n(δ+1)列中的块元素
Figure PCTCN2021087743-appb-000084
构成的pL×pL阶子矩阵
Figure PCTCN2021087743-appb-000085
其中i k,j k满足
Figure PCTCN2021087743-appb-000086
对于1≤k≤p;
根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
Figure PCTCN2021087743-appb-000087
表示,用于对所述目标信息段进行循环移位操作;
根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
可选的,上述接收端设备还包括接收模块303,且上述发送模块301和接收模块302可以为接口电路或者收发器。接收模块303和发送模块301可以为独立的模块,也可以集成为收发模块(图未示),收发模块可以实现上述接收模块303和发送模块301的功能。
可选的,上述编码模块302可以是芯片,编码器,编码电路或其他可以实现本申请方法的集成电路。
由于具体的方法和实施例在前面已经介绍过,该发送端设备300是用于执行对应于发送端设备的通信方法,因此涉及通信方法的具体描述,特别是发送模块301的功能可以参考对应实施例的相关部分,此处不再赘述。
可选的,发送端设备300还可以包括存储模块(图中未示出),该存储模块可以用于存储数据和/或信令,存储模块可以和编码模块302耦合,也可以和接收模块303或发送模块301耦合。例如,编码模块302可以用于读取存储模块中的数据和/或信令,使得前述方法实施例中的通信方法被执行。
图4为本申请实施例提供的一种接收端设备400,其可以用于执行上述图2A~图2E的接收端的数据恢复方法和具体实施例,该接收端设备可以是接收端设备或者配置于接收端设备的芯片。在一种可能的实现方式中,如图4所示,该接收端设备400包括接收模块401 和解码模块402。
接收模块401,用于接收第一编码数据对应的第二编码数据,所述第一编码包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
解码模块402,用于根据所述第二编码数据恢复所述丢失数据单元。
可选的,所述解码模块402还用于:
当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
可选的,所述解码模块402具体用于:
将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
可选的,所述解码模块402具体用于:
将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关冗余编码单元中所有与所述现存编码信息相同的信息。
可选的,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述解码模块402具体用于:
根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
可选的,所述解码模块402具体用于:
获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示,用于对所述第二目标信息段进行循环移位操作;
根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
可选的,上述接收端设备还可以包括发送模块403,接收模块401和发送模块403可以为接口电路或者收发器。接收模块401和发送模块403可以为独立的模块,也可以集成为收发模块(图未示),收发模块可以实现上述接收模块401和发送模块403的功能。
可选的,上述解码模块402可以是芯片,编码器,编码电路或其他可以实现本申请方法的集成电路。
由于具体的方法和实施例在前面已经介绍过,该接收端设备400是用于执行对应于接收端设备的通信方法,因此涉及通信方法的具体描述,特别是接收模块401和发送模块403的功能可以参考对应实施例的相关部分,此处不再赘述。
可选的,接收端设备400还可以包括存储模块(图中未示出),该存储模块可以用于存储数据和/或信令,存储模块可以和解码模块402耦合,也可以和接收模块401或发送模块403耦合。例如,解码模块402可以用于读取存储模块中的数据和/或信令,使得前述方法实施例中的通信方法被执行。
如图5所示,图5示出了本申请实施例中的一种通信装置的结构示意图。终端设备和接入网设备的结构可以参考图5所示的结构。通信装置500包括:处理器111和通收发器112,所述处理器111和所述收发器112之间电偶合;
所述处理器111,用于执行所述存储器中的部分或者全部计算机程序指令,当所述部分或者全部计算机程序指令被执行时,使得所述装置执行上述任一实施例所述的方法。
所述收发器112,用于和其他设备进行通信;例如接收来自终端设备的第一上行控制信号,所述第一上行控制信号用于指示网络设备发送第一下行共享信号;根据所述第一上行控制信号发送所述第一下行共享信号。
可选的,还包括存储器113,用于存储计算机程序指令,可选的,所述存储器113(存储器#1)位于所述装置内,所述存储器113(存储器#2)与处理器111集成在一起,或者所述存储器113(存储器#3)位于所述装置之外。
应理解,图5所示的通信装置500可以是芯片或电路。例如可设置在终端装置或者通信装置内的芯片或电路。上述收发器112也可以是通信接口。收发器包括接收器和发送器。 进一步地,该通信装置500还可以包括总线系统。
其中,处理器111、存储器113、收发器112通过总线系统相连,处理器111用于执行该存储器113存储的指令,以控制收发器接收信号和发送信号,完成本申请涉及的实现方法中第一设备或者第二设备的步骤。所述存储器113可以集成在所述处理器111中,也可以与所述处理器111分开设置。
作为一种实现方式,收发器112的功能可以考虑通过收发电路或者收发专用芯片实现。处理器111可以考虑通过专用处理芯片、处理电路、处理器或者通用芯片实现。处理器可以是中央处理器(central processing unit,CPU),网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片或其他通用处理器。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)及其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等或其任意组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(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)。应注意,本申请描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请实施例提供的了一种通信系统,包括发送端设备和接收端设备,其中发送端设备可以包括如图3所述的终端设备300,接收端设备可以包括如图4所述接收端设备400,发送端设备和接收端设备对应的结构可以如图5所述的通信装置500。该通信系统可以用于执行上述的适用于上述发送端设备和接收端设备的通信方法和具体实施例,具体执行过程参见图2A~图2E的描述内容。
本申请实施例提供了一种通信装置,包括逻辑电路,用于执行上述图3发送端设备中编码模块执行的步骤;
输出接口,用于执行上述图3发送端设备中发送模块执行的步骤。
可选的,还可以包括输入接口,用于执行上述图3发送端设备中接收模块执行的步骤。
本申请实施例提供了一种通信装置,包括输入接口,用于执行上述图4接收端设备中接收模块执行的步骤;
逻辑电路,用于执行上述图4发送端设备中编码模块执行的步骤;
可选的,还可以包括输出接口,用于执行上述图4发送端设备中发送模块执行的步骤。
本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述实施例中对应用于发送端设备的方法。
本申请实施例提供了一种计算机存储介质,存储有计算机程序,该计算机程序包括用于执行上述实施例中对应用于接收端设备的方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中对应用于发送端设备的方法。
本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中对应用于接收端的方法。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和实现方式约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者接入网设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码 的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

Claims (29)

  1. 一种数据恢复方法,应用于发送端,其特征在于,所述方法包括:
    生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数据单元为传输过程中丢失的所述原始数据单元;
    发送所述第一编码数据。
  2. 根据权利要求1所述的方法,其特征在于,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
  3. 根据权利要求1或2所述的方法,其特征在于,在所述发送第一编码数据之前,所述方法还包括:
    将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
    对所述相关原始数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
    根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
  4. 根据权利要求3所述的方法,其特征在于,所述w个信息段中的每个信息段包括L个信息符号,所述对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,包括:
    根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
    对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
    删除所述目标编码信息中第L+1个信息符号,获得所述每个组合信息段对应的第一编码信息。
  5. 根据权利要求4所述的方法,其特征在于,所述L满足L+1为质数且2为L+1的一个原根。
  6. 根据权利要求4或5所述的方法,其特征在于,所述对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息,包括:
    构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
    Figure PCTCN2021087743-appb-100001
    的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[I L|1]为奇偶校验矩阵,H=[I L|0] T为 删除矩阵,
    Figure PCTCN2021087743-appb-100002
    表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素t i,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵定义为:由块矩阵T中第1≤i 1<i 2<…<i p≤m(δ+1)行以及第1≤j 1<j 2<…<j p≤n(δ+1)列中的块元素
    Figure PCTCN2021087743-appb-100003
    构成的pL×pL阶子矩阵
    Figure PCTCN2021087743-appb-100004
    其中i k,j k满足
    Figure PCTCN2021087743-appb-100005
    对于1≤k≤p;
    根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
    Figure PCTCN2021087743-appb-100006
    表示;
    根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
  7. 根据权利要求3-5任一项所述的方法,其特征在于,所述信息符号为κ字节长度的列向量,其中κ为大于或等于1的整数。
  8. 一种数据恢复方法,应用于接收端,其特征在于,所述方法包括:
    接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
    根据所述第二编码数据恢复所述丢失数据单元。
  9. 根据权利要求8所述的方法,其特征在于,当所述第一分组对应的前向分组个数为r,且r<δ时,所述第一分组的δ个前向分组为所述第一分组的r个前向分组。
  10. 根据权利要求8或9所述的方法,其特征在于,在根据所述第二编码数据恢复所述丢失数据单元进行恢复之前,所述方法还包括:
    当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
  11. 根据权利要求8-10任一项所述的方法,其特征在于,所述根据所述第二编码数据恢复所述丢失数据单元,包括:
    将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
    对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段 对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
    根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
    根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
    对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
  12. 根据权利要求11所述的方法,其特征在于,所述对所述相关现存数据单元的第k个组合信息段进行编码与对所述相关原始数据单元的第k个组合信息段进行编码的操作相同,所述根据所述现存编码信息对所述相关现存冗余编码单元进行消元包括:
    将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关现存冗余编码单元中所有与所述现存编码信息相同的信息。
  13. 根据权利要求11或12所述的方法,其特征在于,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述对所述第一冗余编码单元进行解码,获得所述丢失数据单元,包括:
    根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
    对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
    删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编码信息;
    根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
  14. 根据权利要求13所述的方法,其特征在于,所述对所述第二目标信息进行解码,获得所述第二目标信息段对应的第二目标编码信息,包括:
    获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
    求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示;
    根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
  15. 一种发送端设备,其特征在于,所述设备包括:
    编码模块,用于生成第一编码数据,所述第一编码数据中包括多个数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述冗余编码单元用于接收端对丢失数据单元进行恢复,所述丢失数 据单元为传输过程中丢失的所述原始数据单元;
    发送模块,用于发送所述第一编码数据。
  16. 根据权利要求15所述的设备,其特征在于,所述编码模块具体用于:
    将所述第一分组对应的n×(δ+1)个相关原始数据单元中的每个所述原始数据单元划分生成w个信息段,w≥1,所述相关原始数据单元包括第一分组对应的n个原始数据单元和所述第一分组的δ个前向分组对应的原始数据单元;
    对所述第一分组的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第一编码信息,所述第一分组的第k个组合信息段由所述n×(δ+1)个相关原始数据单元中的每个所述原始数据单元的第k个信息段组成,1≤k≤w;
    根据所述第一编码信息获取所述第一分组对应的冗余编码单元,所述冗余编码单元由w个组合信息段对应的w个所述第一编码信息组成。
  17. 根据权利要求16所述的设备,其特征在于,所述w个信息段中的每个信息段包括L个信息符号,所述编码模块还用于:
    根据所述第k个组合信息段中每个信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述第k个组合信息段对应的目标信息段,所述目标信息段对应的n×(δ+1)个信息段中的每个信息段包括所述L个信息符号和所述第L+1个信息符号;
    对所述目标信息段进行编码,获得所述目标信息段对应的目标编码信息;
    删除所述目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第一编码信息。
  18. 根据权利要求17所述的设备,其特征在于,所述编码模块还用于:
    构造大小为(δ+1)m(L+1)×(δ+1)n(L+1)的二元向量编码矩阵A,所述m为所述第一分组对应的冗余编码单元个数,矩阵A满足
    Figure PCTCN2021087743-appb-100007
    的任意pL×pL的规范子矩阵均为非奇异矩阵,其中1≤p≤m(δ+1),G=[I L|1]为奇偶校验矩阵,H=[I L|0] T为删除矩阵,
    Figure PCTCN2021087743-appb-100008
    表示克罗内克积;矩阵T为(δ+1)m×(δ+1)n的块矩阵,每个块元素t i,j为一个L×L的二元矩阵;其中pL×pL的规范子矩阵为:由块矩阵T中第1≤i 1<i 2<…<i p≤m(δ+1)行以及第1≤j 1<j 2<…<j p≤n(δ+1)列中的块元素
    Figure PCTCN2021087743-appb-100009
    构成的pL×pL阶子矩阵
    Figure PCTCN2021087743-appb-100010
    其中i k,j k满足
    Figure PCTCN2021087743-appb-100011
    对于1≤k≤p;
    根据所述编码矩阵A获取所述目标信息段对应的编码系数,所述编码系数由循环置换矩阵
    Figure PCTCN2021087743-appb-100012
    表示;
    根据所述编码系数对所述目标信息段中的所述信息符号进行循环移位编码,获得所述目标编码信息。
  19. 一种接收端设备,其特征在于,所述设备包括:
    接收模块,用于接收第一编码数据对应的第二编码数据,所述第一编码数据包括多个 数据单元分组,所述多个数据单元分组中的每个分组包括原始数据单元和冗余编码单元,所述冗余编码单元根据所述多个数据单元分组中的第一分组和所述第一分组的δ个前向分组中的原始数据单元编码生成,δ≥1,所述第二编码数据包括所述多个数据单元分组中的每个分组的现存数据单元和现存冗余编码单元,所述现存数据单元为所述原始数据单元中除丢失数据单元之外的数据单元,所述现存冗余编码单元为所述冗余编码单元中除丢失冗余编码单元之外的冗余编码单元;
    解码模块,用于根据所述第二编码数据恢复所述丢失数据单元。
  20. 根据权利要求19所述的设备,其特征在于,所述解码模块还用于:
    当所述第一编码数据中的第二分组存在丢失数据单元时,确定长度为(m+n)×(p+1)的滑动窗口内所述丢失数据单元的个数s小于或等于m×(p+1),0≤p≤δ,其中所述第二分组为所述滑动窗口内的第一个数据单元分组,所述滑动窗口长度表示所述第二分组的相关数据单元个数,包括所述第二分组中的原始数据单元个数和冗余编码单元个数,以及所述第二分组的p个后向分组中的原始数据单元个数和冗余编码单元个数,所述第二分组的后向分组为将所述第二分组作为δ个前向分组之一的数据单元分组。
  21. 根据权利要求19或20所述的设备,其特征在于,所述解码模块具体用于:
    将所述第二分组的相关现存数据单元划分生成w个信息段,w≥1,所述相关现存数据单元包括所述第二分组对应的现存数据单元和所述第二分组的p个后向分组中的现存数据单元;
    对所述相关现存数据单元的第k个组合信息段进行编码,生成所述第k个组合信息段对应的第二编码信息,所述第k个组合信息段由每个所述相关现存数据单元的第k个信息段组成,其中1≤k≤w;
    根据所述第二编码信息获取所述相关现存数据单元对应的现存编码信息,所述现存编码信息由w个组合信息段对应的w个所述第二编码信息组成;
    根据所述现存编码信息对相关现存冗余编码单元进行消元,获取相关丢失数据单元对应的第一冗余编码单元,所述相关现存冗余编码单元包括所述第二分组的现存冗余编码单元和所述第二分组的p个后向分组的现存冗余编码单元,所述相关丢失数据单元包括所述第二分组的丢失数据单元和所述第二分组的p个后向分组的丢失数据单元;
    对所述第一冗余编码单元进行解码,获得所述相关丢失数据单元。
  22. 根据权利要求21所述的设备,其特征在于,所述解码模块具体用于:
    将所述现存编码信息与所述相关现存冗余编码单元进行逐位异或计算,消除所述相关现存冗余编码单元中所有与所述现存编码信息相同的信息。
  23. 根据权利要求21或22所述的设备,其特征在于,所述第一冗余编码单元包括w个信息段,每个所述信息段包括L个信息符号,所述解码模块具体用于:
    根据所述w个信息段的每个所述信息段的L个信息符号逐位异或计算第L+1个信息符号,获得所述每个信息段对应的第二目标信息段,所述第二目标信息段包括所述L个信息符号和所述第L+1个信息符号;
    对所述第二目标信息段进行解码,获取所述第二目标信息段对应的第二目标编码信息;
    删除所述第二目标编码信息中第L+1个信息符号,获得所述每个信息段对应的第二编 码信息;
    根据所述第二编码信息获取所述丢失数据单元,所述丢失数据单元由所述第一冗余编码单元对应的w个信息段中的每个信息段对应的所述第二编码信息组成。
  24. 根据权利要求23所述的设备,其特征在于,所述解码模块具体用于:
    获取生成所述冗余编码单元所对应的编码矩阵A,并根据所述编码矩阵A获取所述第一冗余编码单元关于所述丢失数据单元的编码矩阵A’;
    求解所述编码矩阵A’的逆矩阵,并根据所述逆矩阵获取所述第一冗余编码单元对应的编码系数,所述编码系数由循环置换矩阵表示;
    根据所述编码系数对所述第二目标信息段中的所述信息符号进行循环移位解码,获得所述第二目标编码信息。
  25. 一种通信装置,其特征在于,包括:
    输入接口,用于执行上述如权利要求15-18中任一项发送端设备或如权利要求19-24任一项接收端设备中接收模块执行的步骤;
    逻辑电路,用于执行上述如权利要求15-18中任一项发送端设备中编码模块执行的步骤,或用于执行如权利要求19-24任一项接收端设备中解码模块执行的步骤;
    输出接口,用于执行上述如权利要求15-18中任一项发送端设备或如权利要求19-24任一项接收端设备中发送模块执行的步骤。
  26. 一种通信装置,其特征在于,所述装置包括至少一个处理器,所述至少一个处理器与至少一个存储器耦合:
    所述至少一个处理器,用于执行所述至少一个存储器中存储的计算机程序或指令,以使得所述装置执行如权利要求1-7中任一项所述的方法,或执行如权利要求8-14中任一项所述的方法。
  27. 一种可读存储介质,其特征在于,用于存储指令,当所述指令被执行时,使如权利要求1-7中任一项所述的方法被实现,或者使如权利要求8-14中任一项所述的方法被实现。
  28. 一种计算机程序产品,当计算机读取并执行所述计算机程序产品时,使得计算机执行如权利要求1-7或8-14中任一项所述的方法。
  29. 一种通信系统,包括如权利要求15-18中任一项所述的发送端设备,如权利要求19-24中任一项所述的接收端设备。
PCT/CN2021/087743 2020-04-16 2021-04-16 数据恢复方法及装置 WO2021209037A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010298281.9A CN113541856A (zh) 2020-04-16 2020-04-16 数据恢复方法及装置
CN202010298281.9 2020-04-16

Publications (1)

Publication Number Publication Date
WO2021209037A1 true WO2021209037A1 (zh) 2021-10-21

Family

ID=78084657

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/087743 WO2021209037A1 (zh) 2020-04-16 2021-04-16 数据恢复方法及装置

Country Status (2)

Country Link
CN (1) CN113541856A (zh)
WO (1) WO2021209037A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448588A (zh) * 2022-01-14 2022-05-06 杭州网易智企科技有限公司 音频传输方法、装置、电子设备及计算机可读存储介质
CN114828143A (zh) * 2022-03-19 2022-07-29 西安电子科技大学 一种无线多跳传输方法、系统、存储介质、设备及终端
CN115085872A (zh) * 2022-03-09 2022-09-20 网易(杭州)网络有限公司 数据处理方法及装置、存储介质、电子设备
CN116560915A (zh) * 2023-07-11 2023-08-08 北京谷数科技股份有限公司 数据恢复方法、装置、电子设备及存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114550806B (zh) * 2022-04-26 2022-08-05 杭州阿姆科技有限公司 一种应用于ssd上的双层纠错方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127530A (zh) * 2007-08-27 2008-02-20 北京航空航天大学 一种基于帧间相关的前向纠错编解码方法
CN101656593A (zh) * 2009-09-15 2010-02-24 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置
CN103873071A (zh) * 2012-12-10 2014-06-18 华为技术有限公司 一种前向纠错编码、译码方法和装置、通信设备及系统
EP3232576A1 (en) * 2016-04-15 2017-10-18 Alcatel Lucent Feed-forward staircase codes for channel coding in optical communication systems

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101127530A (zh) * 2007-08-27 2008-02-20 北京航空航天大学 一种基于帧间相关的前向纠错编解码方法
CN101656593A (zh) * 2009-09-15 2010-02-24 中国人民解放军国防科学技术大学 前向纠错编码方法、前向纠错译码方法及其装置
CN103873071A (zh) * 2012-12-10 2014-06-18 华为技术有限公司 一种前向纠错编码、译码方法和装置、通信设备及系统
EP3232576A1 (en) * 2016-04-15 2017-10-18 Alcatel Lucent Feed-forward staircase codes for channel coding in optical communication systems

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448588A (zh) * 2022-01-14 2022-05-06 杭州网易智企科技有限公司 音频传输方法、装置、电子设备及计算机可读存储介质
CN114448588B (zh) * 2022-01-14 2024-01-23 杭州网易智企科技有限公司 音频传输方法、装置、电子设备及计算机可读存储介质
CN115085872A (zh) * 2022-03-09 2022-09-20 网易(杭州)网络有限公司 数据处理方法及装置、存储介质、电子设备
CN114828143A (zh) * 2022-03-19 2022-07-29 西安电子科技大学 一种无线多跳传输方法、系统、存储介质、设备及终端
CN116560915A (zh) * 2023-07-11 2023-08-08 北京谷数科技股份有限公司 数据恢复方法、装置、电子设备及存储介质
CN116560915B (zh) * 2023-07-11 2023-09-19 北京谷数科技股份有限公司 数据恢复方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN113541856A (zh) 2021-10-22

Similar Documents

Publication Publication Date Title
WO2021209037A1 (zh) 数据恢复方法及装置
US7095729B2 (en) Method for multimedia communication over packet channels
WO2017092543A1 (zh) 用于极化码的速率匹配的方法和装置
KR101405927B1 (ko) 이동 통신 시스템에서의 통신 방법
WO2016045391A1 (zh) 一种数据传输方法及装置
JP4990298B2 (ja) 無線通信システムにおいてデータブロックを送受信するための方法及び装置
US10454625B2 (en) System and method for employing outer codes with non-equal length codeblocks field
CN101800757A (zh) 一种基于单光纤结构的无反馈单向数据传输方法
JP2022516802A (ja) ワイヤレスネットワークでのデータ再送信
US7215683B2 (en) Method and apparatus for protecting against packet losses in packet-oriented data transmission
CN107209713B (zh) 按需文件修复的方法和系统
JP2023157921A (ja) メディア内容に基づく自己適応システムコードfec符号化および復号化方法、装置、システムおよび媒体
WO2018082816A1 (en) Retransmission technique
CN109756307B (zh) 数据重传方法及装置
Karetsi et al. A low complexity network-coded ARQ protocol for ultra-reliable low latency communication
KR20090061563A (ko) 오류제어방법
WO2019214265A1 (zh) 计算循环冗余校验crc编码的方法及装置
CN103227693B (zh) 增压码
WO2021136539A1 (zh) 卷积码的速率匹配的方法和无线通信装置
EP3035540B1 (en) Maximum likelihood erasure decoding of sparse graph codes
CN113037437A (zh) 数据传输方法及装置
Chen Analysis of forward error correcting codes
WO2022105753A1 (zh) 网络数据编码传输方法及装置
WO2008043315A1 (fr) Procédé et système d&#39;application à la transmission de données de la technologie de code de correction d&#39;erreurs
EP2930852B1 (en) Constructing a reliable data stream

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21788725

Country of ref document: EP

Kind code of ref document: A1