CN113541857A - Coding method and communication device - Google Patents
Coding method and communication device Download PDFInfo
- Publication number
- CN113541857A CN113541857A CN202010305364.6A CN202010305364A CN113541857A CN 113541857 A CN113541857 A CN 113541857A CN 202010305364 A CN202010305364 A CN 202010305364A CN 113541857 A CN113541857 A CN 113541857A
- Authority
- CN
- China
- Prior art keywords
- coding
- unit
- original data
- data
- sub
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0001—Systems modifying transmission characteristics according to link quality, e.g. power backoff
- H04L1/0006—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
- H04L1/0007—Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Quality & Reliability (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
The embodiment of the application discloses a coding method and a communication device, and the method comprises the following steps: acquiring an original data unit to be coded, splitting the acquired original data unit, dividing the original data unit into a plurality of original data subunits to obtain a set of original data subunits, further coding the original data unit to generate a coding unit, and coding the plurality of original data subunits in the set to generate a coding subunit; generating target coded data according to the coding unit and the coding subunit; in the embodiment of the present application, the coding subunit may be understood as redundant information, and the size of the coding subunit is smaller than that of the original data unit; the original data subunits are used as units to be coded to obtain the coding subunits, and the size and the number of the coding subunits are adjusted to provide more flexible code rates to adapt transmission resources, so that the frequency spectrum resources are saved.
Description
Technical Field
The present application relates to the field of communications, and in particular, to an encoding method and a communication apparatus.
Background
Due to the particularity of wireless transmission media, reliable transmission technology of wireless networks has become an important factor influencing and restricting the transmission performance of wireless networks. Some current protocols adopt a retransmission mechanism based on feedback to ensure the reliability of data transmission, but the retransmission mechanism also brings obvious feedback delay and overhead. In order to effectively avoid frequent feedback overhead and performance loss, network coding becomes an important technical direction, that is, problems such as packet loss or loss in wireless communication are resisted by coding an original data packet and increasing redundancy in advance, so as to ensure reliability of data transmission.
Network coding solutions include many types, such as packet network coding, convolutional network coding, and so on. The encoding technical schemes obtain corresponding encoding packet groups by performing different encoding operations on a group of original data packets, namely corresponding to different encoding generation matrixes. Taking packet network coding as an example, as shown in fig. 1, K original data packets are coded, for example, multiplied by a generator matrix G with a size K × N, to obtain N coded data packets, and the code rate of network coding is approximately represented by r ═ K/N, where K is the number of original data packets, N is the number of coded data packets, and r is greater than 0 and less than 1.
In the current network coding technology, a receiving end receives a coding packet which makes an error in a packet unit, and the coding packet in the packet unit is required to recover the erroneous packet so as to ensure the successful decoding of network coding.
Disclosure of Invention
The embodiment of the application provides an encoding method and a communication device, wherein the encoding method is applied to a communication system, the communication system comprises network equipment and a terminal, the network equipment is any equipment with a wireless transceiving function, the network equipment comprises but is not limited to a base station, an access node, a wireless relay node, a wireless backhaul node and the like, and the terminal is equipment with a wireless transceiving function and comprises but is not limited to user equipment, a vehicle-mounted terminal, wearable equipment, a mobile phone and the like; the execution main body of the encoding method in the present application is the sending end device, or the execution main body of the method may also be a processor, a chip or a chip system in the sending end device; the sending end device may be a network device (e.g., a base station), or the sending end device may also be a terminal (e.g., a user equipment). The encoding method and the communication device are used for providing more flexible code rate, can better adapt to frequency spectrum resources and saves cost.
In a first aspect, an embodiment of the present application provides an encoding method, where the method may be applied to a sending end device, and the encoding method may include: the method comprises the steps that sending end equipment obtains an original data unit to be coded; the original data unit may be data received by the sending end device from the opposite end, for example, the original data unit may be from the same link, or the original data unit may also be from different links; or, the original data unit may be data generated by the sending end device, that is, data to be sent to the receiving end by the sending end device; then the sending end equipment splits the acquired original data unit, divides the original data unit into a plurality of original data subunits and obtains a set of the original data subunits; further encoding the original data unit to generate an encoding unit, and encoding a plurality of original data subunits in the set to generate an encoding subunit; the coding sub-unit and the original data sub-unit have the same size, so that the size of the coding sub-unit is smaller than that of the original data unit; generating target coded data according to the coding unit and the coding subunit, namely the target coded data at least comprises two parts, namely the coding unit and the coding subunit, wherein the coding subunit can be understood as redundant information, the size of the redundant information generated in the traditional network coding technology is the same as that of an original data unit before being coded, and the size of the coding subunit in the application is smaller than that of the original data unit; the coding method in the embodiment breaks through a coding generation mode of a traditional network coding scheme taking a data unit as a unit, provides a network coding method lower than the granularity of the data unit, divides an original data unit into smaller subunits, then codes by taking the original data subunit as a unit to obtain a coding subunit, and provides more flexible code rate to adapt to transmission resources by adjusting the size and the number of the coding subunit; and the error position and the error bit number in the original data unit are random and uncertain, the erased or error data can be recovered by taking the coding subunit as the granularity, and the error data can be recovered without retransmitting the coding packet like the traditional scheme, thereby saving the spectrum resource.
In an optional implementation manner, splitting the original data unit to obtain a set of original data sub-units may specifically include: the number of the original data units may be multiple, and a first target original data unit in the multiple original data units is split to obtain a subset corresponding to the first target original data unit, where the first target original data unit is at least one original data unit in the multiple original data units, each original data unit in the at least one original data unit corresponds to one subset, the subset includes multiple original data subunits, and the multiple original data subunits in the subset are used for participating in encoding of the encoding subunits, and the multiple original data subunits used for participating in encoding have the same size.
In an optional implementation manner, the method for encoding a plurality of original data subunits in a set to generate an encoded subunit may include: coding a plurality of original data subunits in a subset to generate at least one coding subunit corresponding to the subset; e.g. original data unit d1Corresponding to a subset, the subset includes a plurality of original data subunits, the plurality of original data subunits are (d)1-1,d1-2,...d1-n/a) For subset (d)1-1,d1-2,...d1-n/a) The original data subunits in the system are coded to obtain at least one coding subunit; in this embodiment, in a manner of encoding a plurality of original data subunits in a subset to obtain an encoding subunit, one encoded data packet is obtained by an encoding unit corresponding to one original data unit and an encoding subunit corresponding to the original data unit, and if part of data of the encoding unit is lost or goes wrong during transmission, a receiving end can recover the pair of original data packets by using the remaining part of data of the encoding unit and the encoding subunitThe original data unit does not need to retransmit the coded data packet by the traditional network coding method, thereby saving the overhead and ensuring more flexible code rate.
In an optional implementation manner, the method for encoding a plurality of original data subunits in a set to generate an encoded subunit may include: encoding the original data subunits in at least two subsets of the plurality of subsets to generate at least one encoded subunit, wherein the at least two subsets comprise a first subset and a second subset; for example, the first subset includes a plurality of primary data sub-units (d)1-1,d1-2,...d1-n/a) The second subset includes a plurality of primary data subunits (d)2-1,d2-2,...d2-n/a) In the first subset (d)1-1,d1-2,...d1-n/a) And a second subset (d)2-1,d2-2,...d2-n/a) Selectively performing network coding within the range of (1) to obtain at least one coding subunit, or, performing coding according to a certain rule, selecting the original data subunits with the same position from the at least two subsets to perform coding to generate at least one coding subunit, for example, selecting the original data subunit at the first position of the at least two subsets to perform coding to obtain the coding subunit, or selecting the original data subunit at the second position of the at least two subsets to perform coding to obtain at least one coding subunit; in this embodiment, the coding sub-units are generated by coding the original data sub-units corresponding to at least two original data units, and if part of data of a coding unit (e.g., corresponding to the original data unit d1) is lost or goes wrong during transmission, the receiving end decodes the data by using all the coding sub-units related to the lost or gone wrong part of data and information of other original data sub-units corresponding to all the related coding sub-units (e.g., information of other original data sub-units has been decoded successfully or is obtained by joint decoding of multiple coding sub-units), so as to recover the corresponding original data units, which can make the coding sub-units cover a larger range (e.g., at least two sub-sets) of original data unit information, i.e., the error correction range of the coding sub-units is larger; compared with the traditional network coding methodThe method resends the coded data packet, saves data overhead and ensures more flexible code rate; in addition, for the situation that the coding subunits are generated by coding according to a certain rule, the advanced decoding corresponding to the original data subunits can be realized, namely, the coding subunits can be decoded in advance through the related coding subunits without receiving all the coding data units, and the time delay can be improved.
In an optional implementation manner, the plurality of original data sub-units are included in a plurality of data blocks, and encoding the plurality of original data sub-units in the set to generate the encoding sub-unit may include: encoding corresponding original data subunits in at least two data blocks in a plurality of data blocks to generate at least one encoding subunit; it can be understood that, selectively performing network coding within all the original data sub-units corresponding to at least two data blocks to generate at least one coding sub-unit; for example, at least one coding subunit is generated according to the 1 st original data subunit in the subset corresponding to the 1 st original data unit in the 1 st data block and the 1 st original data subunit in the subset corresponding to the 1 st original data unit in the 2 nd data block; in this embodiment, the coding sub-unit is generated by coding the original data sub-units corresponding to at least two data blocks, and if part of data of the coding unit (e.g., corresponding to the original data unit d1 in the first data block) is lost or corrupted during transmission, the receiving end decodes the data by using all the coding sub-units related to the lost or corrupted part of data and the information of other original data sub-units corresponding to all the related coding sub-units (e.g., the information of other original data sub-units has been successfully decoded or is obtained by jointly decoding a plurality of coding sub-units), so as to recover the corresponding original data unit, in this embodiment, the coding sub-unit can include the original data unit information in a larger range (e.g., at least two data blocks), that is, the error correction range of the coding sub-unit is larger; compared with the traditional network coding method, the method for retransmitting the coded data packet saves data overhead and ensures more flexible code rate.
In an optional implementation manner, in a manner of encoding original data subunits in at least two data blocks of the plurality of data blocks to generate at least one encoding subunit, encoding the encoding subunits in the at least two data blocks, that is, encoding at least two data blocks jointly, where the joint encoding manner of the data blocks includes a recursion manner, and the recursion manner is: taking X data blocks as combination units, wherein the data blocks are in recursive overlapping, the combination modes among the data blocks in each combination unit can be combined at will, and X is an integer greater than or equal to 1; in this embodiment, all the original data subunits corresponding to X data blocks are used as joint units, the data blocks between the joint units are overlapped, and R data blocks are converted into a larger coding range (R is an integer greater than or equal to X) by recursion of the X data blocks, so that the range of the original data subunits corresponding to the obtained coding subunits is larger, and the error correction capability of the coding subunits can be better ensured.
In an optional implementation manner, the joint encoding manner of the data block further includes a non-recursive manner, where the non-recursive manner is: x data blocks are taken as a joint unit, the data blocks among the joint units are not overlapped, and the joint mode among the data blocks in each joint unit can be combined at will; in this embodiment, R data blocks include a plurality of joint units, each joint unit includes X data blocks, and the data blocks between the plurality of joint units do not overlap, it can be understood that X data blocks are used as an encoding range, which is relatively smaller than that of a recursive encoding, but the decoding delay is also smaller.
In an optional implementation manner, the target encoded data includes a header, where the header carries indication information, and the indication information is used to indicate a corresponding relationship between the encoding sub-unit and the original data unit, so that when a receiving end decodes, the receiving end can determine, through the indication information, which original data sub-units corresponding to which original data units are encoded by the encoding sub-unit.
In an optional implementation manner, the indication information includes bitmap information, and the bitmap information is used for indicating the position corresponding relationship between the encoded data sub-unit and the plurality of original data sub-units; in this embodiment, with the primary data subunits as the granularity, a bitmap corresponding to all the primary data subunits is constructed, each bit in the bitmap corresponds to one primary data subunit, and each bit can use "1" or "0" to identify whether the corresponding primary data subunit participates in encoding, so as to indicate the position corresponding relationship between the encoded data subunit and the plurality of primary data subunits; in this embodiment, which position-corresponding original data sub-units participate in encoding can be directly indicated through a bitmap, and in some application scenarios, for example, for one encoding sub-unit, the number of original data sub-units participating in encoding the encoding sub-unit is large or the positions of the original data sub-units lack regularity, the bitmap is represented in a more general indication manner, and the indication information overhead is relatively small.
In an optional implementation manner, the target encoding data includes indication information, where the indication information is used to indicate a position of an original data sub-unit of the generated encoding sub-unit in a corresponding original data unit; when the number of the coding subunits corresponding to each original data unit is the same (for example, each original data unit corresponds to 1 coding subunit), which original data subunits participate in coding the coding subunits can be indicated through the positions of the original data subunits in the corresponding subsets (corresponding to the original data units); the position of the primary data sub-unit in the corresponding primary data unit can be represented by a sequence number vector of the primary data sub-unit; in this embodiment, the indication information indicates which raw data sub-units participate in the coding of the coding sub-unit by means of position indication (e.g. sequence number vector), and in some application scenarios, for example, for one coding sub-unit, the number of raw data sub-units participating in the coding of the coding sub-unit is small, or the positions of the raw data sub-units are regular (e.g. 1 st raw data sub-unit corresponding to each raw data unit is coded), the indication information overhead is relatively small.
In an optional implementation manner, the indication information is further used to indicate the number of coding sub-units corresponding to the original data unit; the original data unit corresponding to each coding subunit can be indicated through the number of the coding subunits corresponding to each original data unit; and then the position of the original data subunit in the corresponding original data unit can indicate which original data subunits are generated by encoding, and the position of the original data subunit in the corresponding original data unit can be represented by the sequence number vector of the original data subunit.
In an optional implementation manner, the target encoding data includes indication information, where the indication information is used to indicate a position of an original data subunit generating the encoding subunit in a corresponding original data unit, and a position of the corresponding original data unit; the position of the original data subunit in the corresponding original data unit can be represented by a sequence number vector of the original data subunit; the corresponding position of the original data unit is: the position of the original data unit to which the original data subunit belongs can be represented by a sequence number vector of the original data unit; in this embodiment, in a manner that, in a data block, a coding subunit is obtained by coding within a range of original data subunits corresponding to at least two original data units, the position of the original data subunit in the corresponding original data unit and the position of the original data unit to which the original data subunit belongs may indicate which original data subunits the coding subunit is obtained by coding; in this embodiment, the indication information indicates, by means of position indication (e.g. sequence number vector), which original data sub-units participate in encoding, and in some application scenarios, for example, for one encoding sub-unit, the number of original data sub-units participating in encoding the encoding sub-unit is small, or the positions of the original data sub-units are regular (e.g. 1 st original data sub-unit corresponding to each original data unit is encoded), and the overhead of the indication information is relatively small.
In an alternative implementation, the indication information is used to indicate: generating the position of the original data subunit of the coding subunit in the corresponding original data unit, for example, the position of the original data subunit in the corresponding original data unit can be represented by the sequence number vector of the original data subunit; the position of the corresponding original data unit in the corresponding data block, for example, can be represented by a sequence number vector of the original data unit; and the position of the corresponding data block, such as can be represented by a sequence number vector of the data block; in this embodiment, in a manner of obtaining a coding subunit by encoding within a range of original data subunits corresponding to a plurality of data blocks, the indication information may include a position of an original data subunit generating the coding subunit in the corresponding original data unit, a position of a corresponding original data unit in the corresponding data block, and a position of the corresponding data block, which may indicate that the coding subunit is obtained by encoding the original data subunit at which position; in this embodiment, the indication information indicates, by means of position indication (e.g. sequence number vector), which original data sub-units participate in encoding, and in some application scenarios, for example, for an encoding sub-unit, the number of original data sub-units participating in encoding the encoding sub-unit is small, or the positions of the original data sub-units are regular (e.g. 1 st original data sub-unit corresponding to 1 st original data unit in each data block is encoded), so that the indication information overhead is relatively small.
In an optional implementation manner, the generating the target encoded data according to the encoding unit and the encoding sub-unit may specifically include: splicing all or part of data in the coding units and the coding subunits to generate target coded data; in one case, all data in the coding units and the coding subunits are spliced to generate target coding data, the number of the coding units is multiple, the number of the coding subunits is multiple, each coding unit in the multiple coding units can be spliced with any number of coding subunits, for example, each coding unit in a part of the coding units in the multiple coding units can be spliced with at least one coding subunit, and another part of the coding units can also not be spliced with the coding subunits; in another case, the number of the coding units is multiple, the number of the coding subunits is at least one, the one coding subunit can be further split into multiple sub-parts, each coding unit can be spliced with any number of sub-parts, for example, each coding unit in a part of the coding units in the multiple coding units can be spliced with at least one sub-part, and another part of the coding units can also not be spliced with sub-parts; it is understood that the target encoded data includes a plurality of encoded data packets, each encoded data packet is obtained by combining one coding unit and any number of coding subunits, where the any number of coding subunits may be zero or at least one coding subunit, or the any number of coding subunits may also be any number of subsections obtained by splitting one coding subunit; in this embodiment, the granularity of the coding sub-unit may be adjusted by a combination strategy of the coding unit and the coding sub-unit, such as splitting one coding sub-unit or cumulatively placing a plurality of coding sub-units, so that the coding unit and the coding sub-unit are more adaptive to the size of the transmission block, thereby effectively saving transmission resources.
In an optional implementation manner, if the coding subunit is split into a plurality of parts, the header of the coding packet needs to carry index information corresponding to the joined sub-parts, where the index information is used to establish a corresponding relationship between each coding subunit and the split sub-parts; so that the receiving end corresponds the plurality of sub-parts to one coding sub-unit according to the index information.
In an optional implementation manner, the number of the original data units is multiple, the multiple original data units at least include a first original data unit and a second original data unit, the first original data unit is included in the first data block, and the second original data unit is included in the second data block; generating the target encoded data from the encoding unit and the encoding sub-unit may further include: splicing the coding sub-unit corresponding to the first original data unit and the coding unit corresponding to the second original data unit to generate target coding data; in this embodiment, the coding subunit corresponding to one data block and the coding unit corresponding to another data block are combined to generate the target coding data, so that the coding unit and the coding subunit generated corresponding to one original data unit cannot be lost together, and the error correction capability of the coding subunit is ensured.
In an optional implementation manner, the plurality of original data units further includes a third original data unit, the second data block includes at least a first sub-block and a second sub-block, the second original data unit is included in the first sub-block, the third original data unit is included in the second sub-block, and the third original data unit is at least one original data unit in the second sub-block; splicing the coding sub-unit corresponding to the second original data unit and the coding unit corresponding to the second target original data unit to generate target coding data, wherein the second target original data unit at least comprises a third original data unit; in this embodiment, each data block may be further divided into a plurality of sub-blocks, each sub-block includes at least one original data unit, and the coding units generated by the original data unit generation coding unit in one sub-block and the second target original data unit associated with the next sub-block are combined to generate the target coded data, so as to ensure that the coding unit and the coding sub-unit generated corresponding to one sub-block are not lost together, so that the redundant coding sub-unit can be more effectively added to ensure the error correction capability, and the decoding delay of the coding sub-unit (redundant information) can be effectively reduced.
In an optional implementation manner, the generating the target encoding data according to the encoding unit and the encoding sub-unit may further include: the coding sub-unit is generated by coding the original data sub-unit divided by the original data unit in the first set in a first time unit, and the coding unit obtained by coding the original data unit in the second set in a second time unit are combined to generate target coding data, wherein the first set corresponds to the first time unit, the second set corresponds to the second time unit, and the second time unit is not earlier than the first time unit; the first set comprises at least one original data unit, the second set comprises at least one original data unit, and the original data unit contained in the first set and the original data unit contained in the second set can be the same or different; such as the first set may be a sliding window; in the present embodiment, the coding subunit is used as redundancy, and in order to ensure that the coding subunit can perform an error correction function on data within a certain time range in a time sequence relation scenario, better error correction capability is ensured by using the hysteresis of the coding subunit relative to the related coding unit.
In an optional implementation manner, in the transmission process of the target encoded data, the coding unit and the coding sub-unit in the target encoded data may be transmitted through different transmission blocks, respectively, and the same transmission block does not carry both the coding unit and the coding sub-unit; the coding unit and the coding subunit transmit through a coding unit transmission block and a coding subunit transmission block respectively, and determine the type of current transmission block transmission, where the type includes a coding unit transmission block and a coding subunit transmission block, and a coding unit and a coding subunit of each coded data packet have index numbers mapped to each other, and it needs to be noted that the coding unit transmission block is a transmission block for transmitting the coding unit, and the coding subunit transmission block is a transmission block for transmitting the coding subunit; in this embodiment, the corresponding coding units and coding subunits are transmitted through different transmission blocks, so that the simultaneous loss of the coding units and the coding subunits of the same target coded data can be avoided, and the granularity of the coding subunits carried in the transmission blocks for transmitting the coding subunits is small, which can better adapt to the transmission of the coding subunits and save the spectrum resources of the transmission blocks of the coding subunits.
In an alternative implementation, determining the type of the current transport block transmission may include the following steps: firstly, initializing a first index serial number of a coding unit and a second index serial number of a coding subunit, then loading a plurality of coding units, updating a first target index serial number, wherein the first target index serial number is the maximum value of the first index serial numbers corresponding to the loaded coding units; or carrying a plurality of coding subunits and updating a second target index sequence number, wherein the second target index sequence number is the maximum value in second index sequence numbers corresponding to the carried coding subunits; judging whether the first target index sequence number is greater than the second target index sequence number; if the first target index sequence number is greater than the second target index sequence number, the current transmission block is a coding subunit transmission block and is used for bearing a coding subunit, and if the first target index sequence number is not greater than the second target index sequence number, the current transmission block is a coding unit transmission block and is used for bearing a coding unit; in this embodiment, it is determined whether the transport block corresponding to the current time unit is a bearer coding unit or a coding subunit, and whether the transport block is a coding unit or a coding subunit can be determined by comparing the sizes of the index number of the coding unit that has been transmitted (or carried) and the index number of the coding subunit.
In an optional implementation manner, the header of the target encoded data at least includes a data block identifier corresponding to the coding unit and an identifier of the coding unit, and optionally, may further include a corresponding coding coefficient; the coding coefficient of the coding unit and the coding coefficient of the coding sub-unit may be the same or different.
In an optional implementation manner, the original data subunit includes a check field, and the check field is used for determining which original data subunit has an error after the receiving end decodes the coding subunit, so that error correction is more targeted.
In a second aspect, an embodiment of the present application provides a communication apparatus, where the communication apparatus has a function that is implemented by the sending-end device in the first aspect; the function can be realized by hardware, and can also be realized by executing corresponding software by hardware; the hardware or software includes one or more modules corresponding to the functions described above.
In a third aspect, an embodiment of the present application provides a communication apparatus, including: a processor coupled to a memory for storing a program or instructions which, when executed by the processor, cause the apparatus to perform the method of any of the first aspects as described above.
In a fourth aspect, embodiments of the present application provide a computer-readable medium for storing a computer program or instructions that, when executed, cause a computer to perform the method of any of the above first aspects.
In a fifth aspect, the present application provides a chip system comprising a processor for enabling a network device to implement the functions referred to in the first aspect, e.g. to send or process data and/or information referred to in the method. In one possible design, the system-on-chip further includes a memory, which stores program instructions and data necessary for the network device. The chip system may be formed by a chip, or may include a chip and other discrete devices.
Drawings
FIG. 1 is an exemplary diagram of one possible network coding;
fig. 2(a) to 2(d) are schematic diagrams of several application scenarios in the embodiment of the present application;
FIG. 3 is a schematic structural diagram of an example of target encoded data in the embodiment of the present application;
FIG. 4 is a flowchart illustrating steps of an example of an encoding method in an embodiment of the present application;
FIG. 5 is a diagram illustrating one embodiment of protocol layers in an embodiment of the present application;
FIG. 6 is a diagram illustrating an example of generating coding sub-units based on the coding of original data sub-units in an original data unit according to an embodiment of the present application;
FIG. 7 is a diagram illustrating an example of generating coding sub-units based on the original data sub-unit coding between original data units in the embodiment of the present application;
FIG. 8 is a diagram illustrating an example of generating coding sub-units based on the coding of original data sub-units between data blocks according to an embodiment of the present application;
FIG. 9(a) is a schematic diagram of an example of coding sub-units generated by coding data blocks in a recursive manner in the embodiment of the application;
FIG. 9(b) is a diagram illustrating an example of generating coding sub-units by coding data blocks in a non-recursive manner in the embodiment of the application;
FIG. 10 is a diagram illustrating an example of bitmap information in the application example;
FIG. 11 is a diagram illustrating another example of generating coding sub-units based on the coding of original data sub-units between data blocks in the embodiment of the present application;
12-13 are diagrams of several examples of the splicing manner of the coding units and the coding subunits in the application embodiments;
FIGS. 14(a) and 14(b) are schematic diagrams of several examples of split coding subunits and splicing of coding subunits in the application embodiment;
FIG. 15 is a diagram illustrating an example of a transport block carrying target encoded data in the application embodiment;
FIGS. 16-20 are schematic diagrams of several examples of coding unit and coding subunit splicing based on time sequence relationship in the embodiments of the application;
fig. 21 is a schematic diagram of an example in which an encoding unit and an encoding subunit are respectively carried in different transmission blocks for transmission in the application embodiment;
fig. 22 is a flowchart illustrating a method of an example of a transport block carrying coding units or coding sub-units in the application embodiment;
fig. 23 is a flowchart illustrating a method of another example of a transport block carrying coding units or coding sub-units in the application embodiment;
fig. 24(a) is a schematic diagram of an example of decoding an encoding unit and an encoding sub-unit in the embodiment of the present application;
fig. 24(b) is a schematic diagram of another example of decoding an encoding unit and an encoding sub-unit in the embodiment of the present application;
fig. 25 is a schematic structural diagram of an example of a communication apparatus in the embodiment of the present application;
fig. 26 is a schematic structural diagram of another example of the communication apparatus in the embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be described below with reference to the drawings in the embodiments of the present application, and the terms "first", "second", and the like in the embodiments of the present application are used for distinguishing similar objects, and are not necessarily used for describing a specific order or sequence. It will be appreciated that the data so used may be interchanged under appropriate circumstances such that the embodiments described herein may be practiced otherwise than as specifically illustrated or described herein. In this application "plurality" is greater than or equal to 2. Moreover, the terms "comprises," "comprising," and any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, system, article, or apparatus that comprises a list of steps or modules is not necessarily limited to those steps or modules explicitly listed, but may include other steps or modules not expressly listed or inherent to such process, method, article, or apparatus.
The embodiment of the present application provides an encoding method, which may be applied to a communication system including, but not limited to, a fourth generation (4G) communication system, a 4.5G communication system, a 5G communication system, a 5.5G communication system, a 6G communication system, a system in which multiple communication systems are merged, or a communication system that evolves in the future. Such as Long Term Evolution (LTE) systems, New Radio (NR) systems, wireless fidelity (WiFi) systems, and 3rd generation partnership project (3 GPP) related communication systems, and the like, as well as other such communication systems. The communication system includes a network device and a terminal, and is applicable to various communication scenarios, such as peer-to-peer transmission between the network device and the terminal, peer-to-peer transmission between the terminals, transmission between the network device and the terminal via a relay transmission point, Dual Connectivity (DC) or multi-connectivity between a plurality of network devices and the terminal, and the like. Referring to fig. 2(a) -2 (d), fig. 2(a) illustrates an application scenario of a point-to-point single connection, that is, a connection is directly established between a network device 201 and a terminal 202, fig. 2(b) illustrates an application scenario of a multi-hop single connection, that is, an application scenario of a single connection between a network device 201 and a terminal 202 through multiple relay transmission points, fig. 2(c) illustrates an application scenario of a dual connection between a terminal 202 and 2 network devices 201, and fig. 2(d) illustrates an application scenario of a dual connection between a terminal 202 and a network device 201 through 2 relay transmission points.
In this application, the network device may be any device having a wireless transceiving function. Including but not limited to: an evolved Node B (NodeB or eNB or e-NodeB) in LTE, a base station (gnnodeb or gNB) or a transmission point (TRP) in NR, a base station for subsequent evolution in 3GPP, an access Node in WiFi system, a wireless relay Node, a wireless backhaul Node, and the like. The base station may be: macro base stations, micro base stations, pico base stations, small stations, relay stations, or balloon stations, etc. Multiple base stations may support the same technology network as mentioned above, or different technologies networks as mentioned above. The base station may contain one or more co-sited or non co-sited TRPs. The network device may also be a radio controller, a Centralized Unit (CU), and/or a Distributed Unit (DU) in a Cloud Radio Access Network (CRAN) scenario. The network device may also be a server, a wearable device, a machine communication device, or an in-vehicle device, etc. The following description will take a network device as an example of a base station. The multiple network devices may be base stations of the same type or different types. The base station may communicate with the terminal device, and may also communicate with the terminal device through the relay station. The terminal device may communicate with a plurality of base stations of different technologies, for example, the terminal device may communicate with a base station supporting an LTE network, may communicate with a base station supporting a 5G network, and may support dual connectivity with the base station of the LTE network and the base station of the 5G network.
The terminal is a device with a wireless transceiving function, can be deployed on land, and comprises an indoor or outdoor terminal, a handheld terminal, a wearable terminal or a vehicle-mounted terminal; can also be deployed on the water surface (such as a ship and the like); and may also be deployed in the air (e.g., airplanes, balloons, satellites, etc.). The terminal may be a mobile phone (mobile phone), a tablet computer (Pad), a computer with a wireless transceiving function, a Virtual Reality (VR) terminal device, an Augmented Reality (AR) terminal device, a terminal in industrial control (industrial control), a vehicle-mounted terminal device, a terminal in self driving (self driving), a terminal in auxiliary driving, a terminal in remote medical (remote medical), a terminal in smart grid (smart grid), a terminal in transportation safety (transportation safety), a terminal in smart city (smart city), a terminal in smart home (smart home), and the like. The embodiments of the present application do not limit the application scenarios. A terminal may also be referred to as a terminal device, User Equipment (UE), access terminal device, in-vehicle terminal, industrial control terminal, UE unit, UE station, mobile station, remote terminal device, mobile device, UE terminal device, wireless communication device, machine terminal, UE agent, or UE device, among others. The terminals may be fixed or mobile.
By way of example, and not limitation, in the present application, the terminal may be a wearable device. Wearable equipment can also be called wearable intelligent equipment, is the general term of applying wearable technique to carry out intelligent design, develop the equipment that can dress to daily wearing, like glasses, gloves, wrist-watch, dress and shoes etc.. A wearable device is a portable device that is worn directly on the body or integrated into the clothing or accessories of the user. The wearable device is not only a hardware device, but also realizes powerful functions through software support, data interaction and cloud interaction. The generalized wearable smart device includes full functionality, large size, and can implement full or partial functionality without relying on a smart phone, such as: smart watches or smart glasses and the like, and only focus on a certain type of application functions, and need to be used in cooperation with other devices such as smart phones, such as various smart bracelets for physical sign monitoring, smart jewelry and the like.
In the application, the terminal may be a terminal in an internet of things (IoT) system, the IoT is an important component of future information technology development, and the main technical feature of the IoT is to connect an article with a network through a communication technology, so as to implement an intelligent network of human-computer interconnection and article-object interconnection. The terminal in the present application may be a terminal in Machine Type Communication (MTC). The terminal of the present application may be an on-board module, an on-board component, an on-board chip, or an on-board unit built into a vehicle as one or more components or units, and the vehicle may implement the method of the present application through the built-in on-board module, on-board component, on-board chip, or on-board unit. Therefore, the embodiments of the present application may be applied to vehicle networking, such as vehicle to outside (V2X), long term evolution (LTE-V) for vehicle to vehicle communication, vehicle to vehicle (V2V), and the like.
An embodiment of the present application provides an encoding method, where an execution main body of the method may be a sending end device, and the sending end device may be a network device (e.g., a base station) or a terminal (e.g., a UE). Or the execution subject of the method may be a processor, a chip or a system of chips in a network device. Or the execution subject of the method may be a processor, a chip or a chip system in the terminal, and is not limited in particular.
Referring to fig. 3, fig. 3 is a schematic diagram of a target encoding data structure according to an embodiment of the present application. First, a sending end device acquires an original data unit, then splits the acquired original data unit 301, divides the original data unit 301 into a plurality of original data subunits 302, and then encodes the original data unit 301 and the plurality of original data subunits 302, respectively. The original data unit 301 is encoded to obtain an encoding unit 303, the size of the encoding unit 303 is the same as the size of the original data unit 301, a plurality of original data subunits 302 are encoded to generate an encoding subunit 304, and the size of the encoding subunit 304 is the same as the size of the original data subunits 302. Further, the target encoding data 305 is generated according to the encoding unit 303 and the encoding sub-unit 304, that is, the target encoding data 305 includes two parts, namely, the encoding unit 303 and the encoding sub-unit 304, and the encoding sub-unit 304 can be understood as containing redundant information. The size of the redundant information generated in the conventional network coding technique is the same as the size of the original data unit before being coded, whereas the size of the redundant information in the embodiment of the present application is determined by the size of the coding subunit 304, and the size of the coding subunit 304 is smaller than that of the original data unit 301. It should be understood that size () represents a measure of the size of the data unit, size (d) represents the size of the original data unit 301, size(s) represents the size of the encoding unit 303, the size of the encoding unit 303 is the same as the size of the original data unit 301, and therefore may also be represented by size (d), and the size of the encoding sub-unit 304 is represented by size (p), where size (p) < size (d), and the size of the redundant information in the embodiment of the present application is reducedIf the number of the original data units 301 is k and the number of the target encoded data 305 is n, the code rate in the present application will be approximately expressed as:it can be seen from the equation that the code rate can be adjusted by adjusting the value n and the size (p) of the coding subunit 304, the adjustment of the code rate is more flexible, the number of values that can be taken is more, the granularity is finer, the coding method in the application can better adapt to the frequency spectrum resource, and the overhead is saved.
Referring to fig. 4, an execution main body of the encoding method in the embodiment of the present application may be a sending end device, where the sending end device may be a network device (e.g., a base station) or a terminal (e.g., a UE). Or the execution subject of the method may be a processor, a chip or a system of chips in a network device. Or the execution subject of the method may be a processor, a chip or a system of chips in the terminal. The following description will be given taking the execution main body as the sending end device as an example. The encoding method may include the steps of:
The "original data" is data to be encoded, and the "data unit" may be a data packet, a data segment, a data packet, a data frame, or the like, for example, the "data unit" may be described by taking a "data packet" as an example, that is, the original data unit may be understood as an original data packet.
The original data unit may be data received by the sending end device from the opposite end, for example, the original data unit may be from the same link, or the original data unit may also be from a different link. Or, the original data unit may be data generated by the sending end device, that is, data to be sent to the opposite end by the sending end device.
The network protocol layer comprises a network coding layer with a network coding function, and a coding related method can be executed on the network coding layer. As shown in fig. 5, the network coding layer may be a Radio Link Control (RLC) layer, a Packet Data Convergence Protocol (PDCP) layer, a Medium Access Control (MAC) layer, or a Physical (PHY) layer; or, a network coding layer can be added above the PDCP layer; or, a network coding layer is added between the PDCP layer and the RLC layer, or the RLC layer and the MAC layer, or the MAC layer and the PHY layer; or the network coding layer may be a Backhaul Adaptation Protocol (BAP) layer in an Integrated Access and Backhaul (IAB) architecture, or a network coding layer is added on the BAP layer in the IAB architecture. The network coding layer may receive the original data unit sent by the upper protocol layer, for example, if the network coding layer is an RLC layer, the RLC layer may receive the original data unit sent by the PDCP layer.
The original data unit is divided into a plurality of original data sub-units, and the set comprises the plurality of original data sub-units.
Optionally, the number of the original data units is multiple, a first target original data unit in the multiple original data units is split to obtain a subset corresponding to the first target original data unit, where the first target original data unit is at least one original data unit in the multiple original data units, it can be understood that at least one original data unit in the multiple original data units is split, each split original data unit corresponds to one subset, each subset includes multiple original data subunits, and the set of original data subunits includes the subset.
For example, in one example, the number of original data units is K, i.e., the original data units include (d)1,d2,...dK) And the size of each data unit is n bits. On the basis, an original data unit is equally divided intoA subunit, wherein the size of each primary data subunit is a bit, wherein a belongs to [1, n ]]In total, K can be obtainedAnd (4) each original data subunit. The set includes KAnd (4) each original data subunit. For example, K-4,will d1Is divided into d11And d12The two primary data subunits, d1The corresponding subset contains d11And d12(ii) a Will d2Is divided into d21And d22The two primary data subunits, d2The corresponding subset contains d21And d22(ii) a Will d3Is divided into d31And d32The two primary data subunits, d3The corresponding subset contains d31And d32(ii) a Will d4Is divided into d41And d42The two primary data subunits, d4The corresponding subset contains d41And d42(ii) a The set of primary data subunits comprises d11,d12,d21,d22,d31,d32,d41And d42These 8 primary data subunits. It should be noted that the number of the original data units and the original data sub-units is only an exemplary illustration and is not a limitation.
And step 403, the sending end device encodes the original data unit to generate a coding unit, and encodes a plurality of original data subunits in the set to generate a coding subunit.
The original data unit can be coded through coding modes such as block coding, linear coding, random linear network coding and the like to obtain a coding unit.
For example, multiple codes can be obtained by multiplying and accumulating multiple original data units by the coding coefficientsThe specific number of code units, original data units and the specific number of coding units are not limited. For example, the number of original data units may be greater than, equal to, or less than the number of coding units, the relationship between the number of original data units and the number of coding units being determined by the selected coding coefficients. For convenience of description in the embodiments of the present application, the description is given by taking as an example that the number of original data units is the same as the number of coding units, that is, K coding units are obtained by coding K original data units. For example, pair (d)1,d2,d3,d4) Coding to obtain(s)1,s2,s3,s4)。
And encoding a plurality of original data subunits in the set, wherein the plurality of original data subunits can be partial original data subunits in the set or all original data subunits in the set. For convenience of description, the example is given by taking the same number of coding subunits as the number of coding units, that is, K coding subunits are obtained in the same manner, or by taking K ═ 4 as an example, and in one example, (d) may be (d)11,d12,d21,d22,d31,d32,d41And d42) Coding to obtain (p)1,p2,p3,p4) The four coding subunits; in another example, it is also possible to pair (d)11,d21,d31,d41) Coding to obtain (p)1,p2,p3,p4) These four coding subunits, etc., and the specific coding method is not limited.
And step 404, the sending end device generates target coded data according to the coding unit and the coding subunit.
And splicing the coding unit and the coding subunit to obtain target coded data. For example, the target encoded data includes 3 encoded data packets; splicing coding unit s1And coding subunit p1Obtaining a first coded data packet; splicing coding unit s2And coding subunit p2Obtaining a second coded data packet; splicing coding unit s3And coding subunit p3Obtaining a third coded data packet; optionally, the encoded data packet includes a header, and the header includes indication information, where the indication information is used to indicate a correspondence between the encoding sub unit and the original data unit. For example, the indication information in the first encoded packet is used to indicate: coding subunit p1Corresponding primary data subunit d11And d12I.e. p1Is to d11And d12The code is obtained; the indication information in the second encoded packet is used to indicate: coding subunit p2Corresponding primary data subunit d21And d22I.e. p2Is to d21And d22The code is obtained; the indication information in the third encoded packet is used to indicate: coding subunit p3Corresponding primary data subunit d31And d32I.e. p3Is to d31And d32And (4) encoding. The indication information in the fourth encoded packet is used to indicate: coding subunit p4Corresponding primary data subunit d41And d42I.e. p4Is to d41And d42And (4) encoding.
And step 405, the sending end device outputs the target coded data.
The sending end equipment sends the target coded data to the receiving end equipment, for example, the terminal sends the target coded data to the base station; or the network coding layer outputs the target coding data to a lower protocol layer of the network coding layer, for example, as shown in fig. 5, the network coding layer is an RLC layer, and the RLC layer outputs the target coding data to the MAC layer.
The coding method provided by the embodiment of the application breaks through a coding generation mode of a traditional network coding scheme taking a data unit as a unit, and further provides a network coding method lower than the granularity of the data unit. The coding method has the following advantages: 1) the original data unit is divided into smaller subunits, then the original data subunit is used as a unit for coding to obtain a coding subunit (the coding subunit can be regarded as redundant information), and the size of the coding subunit is adjusted to ensure more flexible code rate so as to adapt to transmission resources. 2) The coding sub-units are directly spliced behind one coding unit, so that compared with the traditional technology, the time delay caused by decoding the redundant information at the tail after a group of coding packets needs to be received is reduced, and it can be understood that the coding method in the embodiment of the application can decode in advance compared with the traditional network coding method. 3) The error position and the error bit number in the original data unit are random and uncertain, the erased or error packet can be recovered by taking the coding subunit as granularity, and the error data can be recovered without retransmitting the coding packet like the traditional technology, thereby saving the spectrum resource.
In step 403, a possible method for encoding a plurality of original data sub-units in the set to generate encoded sub-units is described in detail.
In an alternative implementation of step 403, please refer to fig. 6, where fig. 6 is a schematic diagram of generating a coding sub-unit in a data unit in the embodiment of the present application. And coding a plurality of original data subunits in one subset to generate at least one coding subunit corresponding to the subset.
E.g. the original data unit (d)1,d2,...dK) Belonging to the same data block, and dividing the original data unit intoSub-units of primary data, each primary data unit corresponding to a subset, e.g. primary data unit d1Corresponding to a subset, the subset includes a plurality of original data subunits, the plurality of original data subunits are (d)1-1,d1-2,...d1-n/a). Similarly, the original data unit d2The corresponding subset includes a plurality of primary data subunits of (d)2-1,d2-2,...d2-n/a) Original data unit dKThe corresponding subset includes a plurality of primary data subunits of (d)K-1,dK-2,...dK-n/a). Coding in units of subsets, i.e. multiple primitives contained in a subsetAnd the data subunits are coded to obtain at least one coding subunit. For example, a subset of pairs (d)1-1,d1-2,...d1-n/a) At least two original data subunits in the sequence are coded to obtain a coding subunit p1-1(ii) a Subset pair set (d)2-1,d2-2,...d2-n/a) At least two original data subunits in the sequence are coded to obtain a coding subunit p1-2(ii) a Subset pair set (d)K-1,dK-2,...dK-n/a) At least two original data subunits in the sequence are coded to obtain a coding subunit p1-M. It should be noted that K represents the number of original data units, M represents the number of coding sub-units, n represents the size of the original data units, a represents the size of the original data sub-units,representing the number of primary data sub-units into which the primary data unit is divided, a ∈ [1, n ∈]。
In the 1 st mode of understanding, p1-1At least one coding sub-unit may be represented. In the 2 nd mode of understanding, the p1-1Which can be understood as an equivalent coding subunit. For example, a subset of pairs (d)1-1,d1-2,...d1-n/a) At least two of the original data sub-units are encoded to obtain 2 encoding sub-units, and in the 1 st understanding mode, p is1-12 coding subunits are shown, and the size of each coding subunit is the same as that of 1 original data subunit; in the 2 nd mode of understanding, the p1-1Representing 1 equivalent coding sub-unit, one equivalent coding sub-unit consisting of two coding sub-units, the corresponding granularities being different, p1-1Is the same size as 2 original data units. In the examples of this application, p1-1,p1-2To p1-MCan refer to the pair p1-1It is to be understood that no further description is provided below.
In this embodiment, in a manner of encoding a plurality of original data subunits in a subset to obtain an encoding subunit, an encoded data packet is obtained by an encoding unit corresponding to an original data unit and an encoding subunit corresponding to the original data unit, if part of data of the encoding unit is lost or goes wrong during transmission, a receiving end can recover the corresponding original data unit through the remaining part of data of the encoding unit and the encoding subunit, and the encoded data packet does not need to be retransmitted by a conventional network encoding method, which saves overhead and ensures a more flexible code rate.
In a second alternative implementation, please refer to fig. 7, where fig. 7 is a schematic diagram of an encoding subunit generated between data units in the embodiment of the present application. And encoding the original data subunits in at least two subsets of the plurality of subsets to generate at least one encoded subunit.
E.g. the original data unit (d)1,d2,...dK) Belonging to the same data block, and dividing the original data unit intoSub-units of primary data, each unit of data corresponding to a subset, e.g. the 1 st primary data unit d1Corresponding to a subset, the subset includes a plurality of original data subunits, the plurality of original data subunits are (d)1-1,d1-2,...d1-n/a) For the same reason, the original data unit d2The corresponding subset includes a plurality of primary data subunits of (d)2-1,d2-2,...d2-n/a) Kth original data Unit dKThe corresponding subset includes a plurality of primary data subunits of (d)K-1,dK-2,...dK-n/a). In the embodiment, network coding is selectively performed in the range of all the original data subunits of a single data block; for example, for the primary data subunit d1-1And d2-1Coding is carried out to obtain a coding subunit p1-1(ii) a For the primary data subunit d1-2And d2-2Coding is carried out to obtain a coding subunit p1-2(ii) a To d2-n/aAnd dK-n/aCoding is carried out to obtain a coding subunit p1-M. It is understood that, in the present embodiment, the pair of generation coding subunits p1-1The corresponding at least 2 primary data sub-units are contained in different subsets, but each primary data sub-unitThe subset of elements is not limited, and the above description is exemplary and not limiting.
Optionally, the original data sub-units with the same position are selected from the at least two subsets to be encoded to generate at least one encoding sub-unit, that is, the encoding sub-units are encoded according to a certain rule to generate the encoding sub-units. For example, the 1 st original data unit d is selected1To the Kth original data unit dKThe 1 st primary data sub-unit (e.g. d) corresponding to each primary data unit in the data structure1-1,d2-1,…,dK-1) Coding to obtain p1-1(ii) a Selection of d1To dKThe 2 nd primary data sub-unit (e.g. d) corresponding to each primary data unit in the data stream1-2,d2-2,…,dK-2) Coding to obtain p1-2And so on.
In this embodiment, the coding sub-units are generated by coding the original data sub-units corresponding to at least two original data units, and if part of data of a coding unit (e.g., corresponding to the original data unit d1) is lost or corrupted during transmission, the receiving end decodes all the coding sub-units related to the lost or corrupted part of data and information of other original data sub-units corresponding to all the related coding sub-units (e.g., information of other original data sub-units has been successfully decoded or is obtained by jointly decoding a plurality of coding sub-units), so as to recover the corresponding original data unit. Compared with the traditional network coding method, the method for retransmitting the coded data packet saves data overhead and ensures more flexible code rate. In addition, for the situation that the coding subunits are generated by coding according to a certain rule, the advanced decoding corresponding to the original data subunits can be realized, namely, the coding subunits can be decoded in advance through the related coding subunits without receiving all the coding data units, and the time delay can be improved.
In a third alternative implementation, please refer to fig. 8, where fig. 8 is a schematic diagram of a coding subunit generated between data blocks in an embodiment of the present application. The plurality of primary data subunits are contained in a plurality of data blocks; and encoding the original data subunits in at least two data blocks in the plurality of data blocks to generate at least one encoding subunit.
For example, as shown in fig. 8, the number of data blocks is R, each data block contains K original data units, and one original data unit corresponds to one subset, and the subset includesAnd (4) each original data subunit. In this embodiment, network coding is selectively performed in all the original data sub-units corresponding to at least two data blocks. As shown in fig. 8, when the 1 st data block is transmitted, all the original data sub-units corresponding to the 1 st data block are encoded to obtain M encoding sub-units, i.e. encoding sub-units (p)1-1,p1-2,...p1-M) When transmitting to the 2 nd data block, encoding may be performed in the range of all the original data subunits corresponding to the 1 st data block and the 2 nd data block, that is, the original data subunits corresponding to the 1 st data block and the original data subunits corresponding to the 2 nd data block are jointly encoded to obtain M encoding subunits, for example, (p) M encoding subunits2-1,p2-2,...p2-MWhen the data is transmitted to the R-th data block, the data can be encoded in all the original data sub-units corresponding to the 1 st data block, the 2 nd data block to the R-th data block, that is, the original data sub-units corresponding to the 1 st data block, the 2 nd data block to the R-th data block are jointly encoded to obtain M encoding sub-units, for example, (p) M encoding sub-unitsR-1,pR-2,...pR-M)。
Optionally, the original data sub-units with the same position are selected from the at least two data blocks to be encoded to generate at least one encoding sub-unit, that is, the encoding sub-units are encoded according to a certain rule to generate the encoding sub-units. For example, the 1 st original data unit d is selected from the at least two data blocks1To the Kth original data unit dKThe 1 st primary data sub-unit (e.g. d) corresponding to each primary data unit in the data structure1-1,d2-1,…,dK-1) IntoLine coding to obtain p1-1(ii) a Selection of d1To dKThe 2 nd primary data sub-unit (e.g. d) corresponding to each primary data unit in the data stream1-2,d2-2,…,dK-2) Coding to obtain p1-2And so on.
In this embodiment, the coding sub-units are generated by coding the original data sub-units corresponding to at least two data blocks, and if part of the data of the coding unit (e.g., corresponding to the original data unit d1 in the first data block) is lost or corrupted during transmission, the receiving end decodes all the coding sub-units related to the lost or corrupted part of the data and the information of other original data sub-units corresponding to all the related coding sub-units (e.g., the information of other original data sub-units has been successfully decoded or is obtained by jointly decoding a plurality of coding sub-units), so as to recover the corresponding original data unit. Compared with the traditional network coding method, the method for retransmitting the coded data packet saves data overhead and ensures more flexible code rate. In addition, for the situation that the coding subunits are generated according to a certain rule, the advanced decoding of the corresponding original data subunits can be realized, namely, the coding subunits can be decoded in advance through the related coding subunits without receiving all the coding data units, and the time delay can be improved.
In the third optional implementation manner, in a manner that at least one coding subunit is generated by coding original data subunits in at least two data blocks of the plurality of data blocks, coding subunits in the at least two data blocks are coded, that is, at least two data blocks are jointly coded. Optionally, the joint mode of the data block includes a recursive mode and a non-recursive mode, and X may be understood as a joint depth, where the joint depth refers to: and all the original data subunits corresponding to the X data blocks are taken as a joint unit, and part or all of the original data subunits in the joint unit are coded to obtain a coding subunit.
One possible recursion, shown with reference to fig. 9(a), is: and taking X data blocks as the combination units, and performing recursive overlapping on the data blocks, wherein the combination modes among the data blocks in each combination unit can be combined at will.
And when R is less than or equal to X, wherein X is the joint depth, R is the number of the data blocks, and in the X data blocks, the original data subunits corresponding to the 1 st data block to the X data block are coded. For example, if X is 3, in an example, the original data subunit in the 1 st data block is encoded to obtain an encoding subunit, the original data subunits corresponding to two data blocks, i.e., the 1 st data block and the 2 nd data block, are encoded to obtain an encoding subunit, and the original data subunits corresponding to 3 data blocks, i.e., the 1 st data block to the 3rd data block, are encoded to obtain an encoding subunit. It should be noted that X data blocks are a joint unit, and original data subunits corresponding to the inside of the joint unit may be combined arbitrarily, for example, original data subunits corresponding to 2 data blocks, i.e., the 1 st data block and the 3rd data block, may be encoded to obtain an encoding subunit, or original data subunits corresponding to 2 data blocks, i.e., the 2 nd data block and the 3rd data block, may be encoded to obtain an encoding subunit.
When R is larger than X, the data blocks from the 2 nd data block to the (X +1) th data block are a joint unit, namely, the original data subunits corresponding to the X data blocks from the 2 nd data block to the (X +1) th data block are coded to obtain coding subunits; the X data blocks from the 3rd data block to the (X +2) th data block are a combined unit, namely, the original data subunits corresponding to the X data blocks from the 3rd data block to the (X +2) th data block are coded to obtain a coding subunit; and so on. For example, when X is 3 and R is 6, the original data sub-units corresponding to the 3 data blocks from the 2 nd data block to the 4th data block are encoded to obtain an encoded sub-unit; and (3) encoding the original data subunits corresponding to the 3 data blocks from the 3rd data block to the 5 th data block to obtain an encoding subunit, and so on. Of course, in the above example, it is only illustrated that joint encoding is performed by recursion of one data block at a time, and it is also possible to perform joint encoding by recursion of any number of data blocks at a time, which is not limited specifically.
In this embodiment, all the original data subunits corresponding to X data blocks are used as joint units, the data blocks between the joint units are overlapped, and R data blocks are recurred through X data blocks to form a larger coding range (R is larger than X), so that the range of the original data subunits corresponding to the coding subunits is larger, and the error correction capability of the coding subunits can be better ensured.
Referring to fig. 9(b), one possible non-recursive approach is shown: x data blocks are taken as a joint unit, the data blocks among the joint units are not overlapped, and the joint mode among the data blocks in each joint unit can be combined at will.
For example, when X is 3 and R is 6, the 1 st data block to the 3rd data block are a joint unit, the 4th data block to the 6 th data block are a joint unit, the original data subunits corresponding to the 3 data blocks of the 1 st data block to the 3rd data block are encoded to obtain an encoding subunit, and the original data subunits corresponding to the 3 data blocks of the 4th data block to the 6 th data block are encoded to obtain an encoding subunit.
In this embodiment, R data blocks include a plurality of joint units, each joint unit includes X data blocks, and the data blocks between the plurality of joint units do not overlap, it can be understood that, taking X data blocks as an encoding range, the encoding range is relatively smaller than that of the previous recursion mode, but the decoding delay is also smaller.
The following describes indication information included in the header of the target encoded data, which indicates the correspondence between the encoding sub-unit and the original data unit.
In a possible implementation manner of the foregoing indication information, the indication information includes bitmap information, and the bitmap information is used to indicate a position correspondence relationship between the encoded data sub-unit and the multiple original data sub-units.
Constructing bit bitmaps corresponding to all the original data subunits by taking the original data subunits as granularity, namely the length of the bitmap is RKThe bitmap of each bit represents whether each original data subunit participates in coding, m original data subunits participate in coding according to the indication condition of '0' or '1' in the bitmap, and the bitmap corresponds to the positions of the m original data subunits participating in coding. Wherein, R is the number of data blocks, K is the number of original data units contained in the data blocks, n represents the size of the original data units, and a represents the size of the original data subunits.
Referring to fig. 10, for example, R-2, K-3,each data block comprising 3 original data units (d)1,d2,d3) Each raw data unit is divided into 2 raw data sub-units, i.e. d1Is divided into d1-1And d1-2Two primary data subunits, will d2Is divided into d2-1And d2-2Two primary data subunits, will d3Is divided into d3-1And d3-2Two original data subunits, the bit bitmap of the original data subunit corresponding to the two data blocks is 12 bits, each bit corresponds to one original data subunit, each bit uses "1" or "0" to identify whether the corresponding original data subunit participates in coding, for example, "1" indicates that coding is participated, and "0" indicates that coding is not participated. As shown in fig. 10, according to the indication of the bitmap, the 2 nd original data sub-unit corresponding to the 1 st original data unit in the 1 st data block, the 2 nd original data sub-unit corresponding to the 2 nd original data unit in the 1 st data block, and the 1 st original data sub-unit corresponding to the 2 nd original data unit in the 2 nd data block are encoded to generate an encoded sub-unit p1-1。
For a better description of the following examples, before proceeding to the description of the following examples, the words involved are explained first:
p_vec1a vector of sequence numbers representing blocks of data, bnumIndicating a sequence number of the data block;
p_vec2sequence number vector, p, representing original data unitnumA sequence number indicating an original data unit to which the original data sub-unit belongs;
p_vec3number vector, sp, representing the original data subunitnumThe serial numbers of the original data subunits in the original data units are shown, and m original data subunits participate in coding.
On the basis of the corresponding embodiment in fig. 6, in an alternative implementation of the indication information, the indication information carried by the target encoded data header is different for different situations. Specifically, the first case: the number of the coding subunits corresponding to each original data unit is the same. For example: each original data unit corresponds to 1 coding subunit, or each original data unit corresponds to 2 coding subunits, and the like. In the second case: the number of coding subunits corresponding to each original data unit is different. For example, as shown in FIG. 11, the 1 st original data unit corresponds to 1 coding sub-unit (e.g., p)1-1) The 2 nd original data unit corresponds to 3 coding sub-units (e.g. p)1-2,p1-3,p1-4) For example, the number of coding sub-units corresponding to each original data unit is only an example and is not limited.
For the first case of the indication information: the indication information is p _ vec3Passing p _ vec3It is indicated from which of the original data sub-units each encoded sub-unit was generated. For example, referring to fig. 6, taking 1 coding subunit for each original data unit as an example, then the coding subunit p1-1Corresponding to original data unit d1(ii) a Coding subunit p1-2Corresponding to original data unit d2(ii) a Coding subunit p1-MCorresponding to original data unit dK(ii) a In this case, K is M, and in this embodiment, if p1-1The corresponding indication information is p _ vec3That is, (1,2,3), that is, p1-1The corresponding primary data sub-unit is primary data unit d1The 1 st, 2 nd and 3rd primary data sub-units (i.e., d)1-1,d1-2,d1-3). In the same way, if p1-2The corresponding indication information is p _ vec3That is, p is (1,2)1-2The corresponding primary data subunits are: d2The 1 st and 2 nd primary data subunits (i.e., d) in the corresponding subsets2-1,d2-2)。
For the second case of the indication information, a first possible implementation manner is as follows: the indication information includes p _ vec3And the number of coding subunits in the subset corresponding to each original data unit. The original data unit corresponding to each coding subunit can be indicated through the number of the coding subunits corresponding to each original data unit. For example, the indication information indicates the 1 st original data unit d1The number of the corresponding coding subunits is 1, the coding subunit p can be obtained1-1Corresponding to the 1 st original data unit d1Further, by p _ vec3Can indicate p1-1Corresponds to d1Which of the original data sub-units participate in the encoding. Similarly, the indication information indicates the 2 nd original data unit d2The number of the corresponding coding subunits is 3, so that the coding subunit p can be obtained1-2,p1-3,p1-4These three coding subunits correspond to the 2 nd original data unit d2Further, p1-2,p1-3And p1-4Each of the three coding subunits may correspond to a p _ vec3Coding the subunit by p _ vec3Can indicate d2Which corresponding primary data sub-units participate in the encoding. For example, p1-2The corresponding sequence number vector of the primary data subunit is p _ vec3When (1,2), d is indicated2Corresponding 1 st primary data sub-unit andthe 2 nd primary data subunit participates in p1-2Coding; p is a radical of1-3The sequence number vector corresponding to the primary data subunit is p _ vec3(2,3) indicates d2The 2 nd primary data subunit and the 3rd primary data subunit in the corresponding subset participate in the pair p1-3And (5) encoding.
For the second case of the indication information, a second possible implementation manner is as follows: the indication information includes p _ vec3And p _ vec2. Referring to FIG. 11, p is1-3For example, p1-3The corresponding indication information is: p _ vec3(2,3) and p _ vec2(2,2) denotes the coding subunit p1-3Is composed of the 2 nd original data unit d2And encoding the 2 nd and 3rd original data subunits in the corresponding subsets.
In an alternative implementation of the indication information based on the embodiment shown in fig. 7, the indication information is used to indicate the position of the original data sub-unit for generating the coding sub-unit in the corresponding original data unit and the position of the corresponding original data unit. Wherein, the position of the original data sub-unit for generating the coding sub-unit in the corresponding original data unit can be p _ vec3May be denoted by p _ vec, the position of the corresponding original data unit2To indicate.
Referring to FIG. 7, the subunit p is encoded1-1For example, if p is1-1The corresponding indication information is p _ vec3(2,3) and p _ vec2(1, 2); indicates that p is1-1Is composed of the 1 st original data unit d1Corresponding 2 nd primary data subunit d1-2And 2 nd original data unit d2Corresponding 3rd primary data subunit d2-3And (4) obtaining the code.
On the basis of the corresponding example in fig. 8, in an alternative implementation of the foregoing indication information, the indication information is used to indicate: and generating the position of the original data subunit of the coding subunit in the corresponding original data unit, the position of the corresponding original data unit in the corresponding data block and the position of the corresponding data block. Wherein the coding sub-units are generatedThe position of the primary data sub-unit in the corresponding primary data unit may be represented by p _ vec3To represent; the position of the corresponding original data unit in the corresponding data block can be represented by p _ vec2To represent; the position of the corresponding data block may be p _ vec1To indicate.
Referring to FIG. 8, the coding subunit p2-1For example, if p is2-1The corresponding indication information comprises p _ vec3=(2,3),p_vec2(1,2) and p _ vec1When p is equal to (1,2), then p is2-1Is prepared from the following components: 1 st original data unit d in 1 st data block1Corresponding 2 nd primary data subunit d1-2And, the 2 nd original data unit d in the 2 nd data block2Corresponding 3rd primary data subunit d2-3And (4) obtaining the code.
Optionally, in one implementation, each bnumFrom a fixed lengthBit number representation, wherein R is the number of data blocks, symbolIndicating rounding up, if m original data subunits participate in encoding, p _ vec1Is counted in totalA bit; for the same reason, each pnumFrom a fixed length ofBit number representation, wherein K is the number of original data units, then p _ vec2Is counted in totalA bit; each spnumFrom a fixed lengthThe number of bits represents, among other things,p _ vec is the number of the original data sub-units3Is counted in totalA bit.
Optionally, in another implementation, each bnum,pnum,spnumExpressed by a number of bits of indefinite length, according to the size of the value, in order to guarantee that every second bnumCan identify each other, and needs to be at every two bnumA fixed b-bit interval symbol is added between the two symbols for distinguishing. For the same reason, every two pnumA fixed b-bit interval symbol is added between every two spnumA fixed b-bit interval symbol is added between the two bits for distinguishing, wherein b is a positive integer.
On the basis of the embodiment corresponding to fig. 7, in this way, for selecting the original data sub-units having the same position in at least two subsets to be encoded, the indication information may be position identifiers, and each encoded sub-unit corresponds to one position identifier. For example, the 1 st original data unit d is selected1To the Kth original data unit dKThe 1 st primary data sub-unit (e.g. d) corresponding to each primary data sub-unit1-1,d2-1,…,dK-1) Coding to obtain p1-1Then coding the subunit p1-1The corresponding indication information is a location indicator "1". In another example, the 1 st original data unit d is selected1To the Kth original data unit dKThe 2 nd primary data sub-unit (e.g. d) corresponding to each primary data sub-unit1-2,d2-2,…,dK-2) Coding to obtain p1-2Then coding the subunit p1-2The corresponding indication information is position identification "2".
In the embodiment in which the indication information is bitmap information, it may be directly indicated by a bitmap which positions correspond to the original data sub-units to participate in encoding, and in some application scenarios, for example, for one encoding sub-unit, the number of the original data sub-units participating in encoding the encoding sub-unit is large or the positions of the original data sub-units thereof lack regularity, the bitmap is characterized in a more general indication manner, and the indication information overhead is relatively small. In the possible implementation manners of the indication information in the embodiments corresponding to fig. 6 to fig. 8, the indication information indicates, by means of a position indication (e.g. a sequence number vector), which original data sub-units participate in the encoding, and in some application scenarios, for example, for one encoding sub-unit, the number of original data sub-units participating in encoding the encoding sub-unit is small, or the positions of the original data sub-units have regularity (e.g. encoding the 1 st original data sub-unit corresponding to each original data unit), the indication information overhead is relatively small, and for which one of the possible implementation manners is specifically adopted by the indication information in actual application, which may be determined according to the application scenario.
Next, a possible method for generating target encoded data according to the encoding unit and the encoding subunit in step 404 will be described.
In an optional implementation manner of step 404, all or part of data in the coding unit and the coding sub-unit are spliced to generate the target coding data. It should be noted that the term "concatenation" means to connect two things together, in this application embodiment, all or part of data in the coding unit and the coding subunit are connected together, and based on this semantic, this application embodiment is not limited to only "concatenation" as a semantic expression, and this "concatenation" may also be replaced with terms such as "join", "series", "combine", and the like.
The number of the coding units is g, the number of the coding subunits is M, and g and M are both positive integers.
Optionally, each coding unit in the g coding units is combined with any integer number of coding subunits smaller than or equal to M, the coding units and the coding subunits combined therewith are spliced to obtain g coded data packets, the target coded data includes g coded data packets, and a header of each coded data packet carries indication information corresponding to the coding subunits.
In a first possible implementation manner, please refer to fig. 12, the number of coding units is g, the number of coding subunits is M, and when M is c × g, where c is an integer greater than or equal to 1, that is, the number of coding subunits is c times the number of coding units. In this implementation, each coding unit is combined with c coding subunits, that is, each coding unit and c coding subunits are spliced to obtain g coded data packets, and the size of each coded data packet is the same.
In a second possible implementation manner, please refer to fig. 13, the number of the coding units is g, the number of the coding subunits is M, and g and M are both positive integers; one coding unit can be combined with any number of coding subunits to obtain g coded data packets, and the target coded data comprises the g coded data packets. For example, a 1 st coding unit may be followed by no splicing to a coding subunit, a 2 nd coding unit may be followed by 1 splicing to a coding subunit, a 3rd coding unit may be followed by 1 splicing to a coding subunit, a 4th coding unit may be followed by 2 splicing to a coding subunit, etc.; the data of the coding sub-units that can be connected by 1 coding unit is not limited. In this way, since the number of the coding sub-units connected in series to each coding unit may be different, the size of the g coded data packets included in the target coded data may also be different.
In the first possible implementation manner and the second possible implementation manner, if any number of coding subunits are connected in series after the coding unit, all data of the coding unit and the coding subunits are spliced.
In a third possible implementation, the coding units and the partial data of the coding sub-units are concatenated. Further splitting the coding subunits to meet the requirementWherein size (p) represents the size of a coding subunit p, q represents the further splitting of the data of a coding subunit into q sub-parts, and the data size of the i-th part is li。
In a first way, referring to fig. 14(a), the coding sub-units may be split evenly according to the number of coding units, each coding unit may be connected to an equal number of sub-parts, for example, the number of coding units is 4, the data of the coding sub-units is split into 4 sub-parts, each sub-part may be connected to one coding unit, and each coding unit is connected to partial data of one sub-part of the coding sub-units. In the second way, referring to fig. 14(b), the coding sub-unit is split into q sub-parts on average, and each coding unit can be spliced with any number of sub-parts. For example, a coding sub-unit may be split into 3 sub-parts on average, the 1 st coding unit may not be split into sub-parts, and each of the 2 nd, 3rd and 4th coding units is connected to 1 sub-part. It can be understood that the sub-part may not be spliced after the 1 st coding unit, and each of the 2 nd, 3rd and 4th coding units is only connected with part of the data of one coding sub-unit in series. In this implementation, the coding sub-units are further partitioned into smaller granularity, which can achieve more flexible code rate. It should be noted that the splitting manner of the coding subunit shown in fig. 14(b) is only exemplary and not limiting. In both of these two ways, since the coding sub-unit is split into multiple sub-parts, the header of the coded data packet needs to carry the index information corresponding to the joined sub-parts, and the index information is used to establish the correspondence relationship between each coding sub-unit and the split multiple sub-parts.
As shown in fig. 15, the three possible implementation manners in this embodiment may ensure that the multiple coding units are more adapted to the size of the Transport Block (TB), since the coding units of different coding packets are the same in size, and the header of the coding packet is also the same in size, it may be ensured that the sizes of the first coding packets are the same through a combination policy of the coding units and the coding subunits, and the last coding packet is aligned with the size of the remaining resources in the transport block by adjusting the size of the coding subunit (e.g., splitting one coding subunit or cumulatively placing multiple coding subunits), so as to save transmission resources; if the alignment is not perfect,the alignment can be realized by complementing 0, the overhead of complementing 0 is very small, and the overhead is saved. Optionally, the sizes of the coding sub-units concatenated by each coding unit are different, i.e. p1,p2And p3The TB sizes may be aligned differently from each other, and if they cannot be aligned completely, the TB sizes may be aligned by complementing "0". Optionally, the last encoded data packet may further include an encoding subunit, and the size of the encoded data packet is ensured to be consistent with that of the TB by combining with the complementary "0" so as to save transmission resources.
The above-mentioned embodiment is an embodiment that may not consider a timing relationship between transmission data, and a combination manner of a coding unit and a coding subunit, but in some scenarios, such as a multi-hop scenario in which data arrives sequentially, or a convolutional network coding scheme, a strict timing relationship exists between network coding and transmission processes of related nodes, and a possible implementation manner of generating target coding data according to the coding unit and the coding subunit in step 404 based on a timing relationship between transmission blocks is described below.
In an optional implementation manner of step 404, the original data unit at least includes a first original data unit and a second original data unit, the first original data unit is included in a first data block, and the second original data unit is included in a second data block. And splicing the coding sub-unit corresponding to the first original data unit and the coding unit corresponding to the second original data unit to generate the target coding data.
For example, as shown in fig. 16, each data block includes a plurality of original data units, for example, each data block from 1 st data block to 3rd data block includes 4 original data units, and the 1 st data block includes d1,d2,d3And d4The 4 original data units, the 2 nd data block contain d5,d6,d7And d8The 4 original data units, the 3rd data block contain d9,d10,d11And d12. The first original data unit is at least one original data unit in the 1 st data block, and the second original data unit is the 2 nd data blockAt least one original data unit in the data block. Concatenating the first raw data unit (e.g., d)1,d2,d3And d4) Corresponding coding sub-unit (e.g. p)1,p2,p3,p4) Coding units (e.g. s) corresponding to second original data units5,s6,s7,s8) And generating target coded data. The target coded data comprising a plurality of coded data packets, e.g. coding units s5And a coding subunit p1Combining into one coded data packet; coding unit s6And a coding subunit p2Combining into one coded data packet; coding unit s7And a coding subunit p3Combining into one coded data packet; coding unit s8And a coding subunit p4Combining into one coded packet, etc.; or, the first original data unit is at least one original data unit in the 2 nd data block, and the second original data unit may be at least one original data unit in the 3rd data block. Concatenating the first raw data unit (e.g., d)5~d8) Corresponding coding sub-unit (e.g. p)5~p8) Coding units (e.g. s) corresponding to second original data units9~s12) And generating target coded data. The target coded data comprising a plurality of coded data packets, e.g. coding units s9And a coding subunit p5Combining into one coded data packet; coding unit s10And a coding subunit p6Combining into one coded data packet; coding unit s11And a coding subunit p7Combining into one coded data packet; coding unit s12And a coding subunit p8Combined into one coded packet, etc.
In order to ensure the coding sub-unit (p) generated by the original data sub-unit corresponding to the 1 st data block1~p4) The 1 st data block can be corrected or checked in its entirety, the corresponding coding sub-unit being usually located in coding unit s4Thereafter, if the subunit p is coded1~p4And coding unit s4Forming a coded packet results in a non-uniform size of each coded packet and in case of errorsCoding unit s4And coding subunit (p)1~p4) Are erased together. In order to effectively add redundant information and ensure the coding subunits to ensure the error correction capability, the coding subunit corresponding to one data block is combined with the coding unit corresponding to another data block to generate target coding data, for example, the coding subunit corresponding to the 1 st data block is combined with the coding unit corresponding to the data block (for example, the 2 nd data block) after the 1 st data block to generate the target coding data, so that the coding unit and the coding subunit which are generated corresponding to one original data unit in the same time unit can be ensured not to be lost together. The position of the coding sub-unit corresponding to the 1 st data block can be supplemented by adopting a mode of supplementing '0', or the first original data unit (d) in the 1 st data block can be adopted1~d4) Or the coding sub-unit (p) corresponding to the original data unit in the 1 st data block may be used1~p4) Padding is performed to ensure that the size of each target encoded data is consistent, or is understood to ensure that the size of each encoded data packet is consistent. The number of the original data units contained in the two different data blocks may be the same or different, and the specific number is not limited.
In an alternative embodiment, please refer to fig. 17, each data block may be further divided into a plurality of sub-blocks, and each sub-block includes at least 1 original data unit. The second data block (e.g., 2 nd data block) comprises at least a first sub-block and a second sub-block, wherein the first sub-block comprises a second original data unit, and the second original data unit is at least one original data unit (e.g., d) in the first sub-block5And d6) The second sub-block includes a third original data unit, the third original data unit being at least one original data unit in the second sub-block (e.g. d)7And d8)。
Splicing the coding sub-units (p) corresponding to the second original data unit5And p6) Coding unit(s) corresponding to second target original data unit7And s8) And generating the target coded data. Wherein the second target original data unit at least comprises the third originalA data unit, it being understood that the second target original data unit may be (d)7And d8) Or may be (d)6~d8) Or may be (d)5~d8) And the coding unit corresponding to the second target original data unit can be(s)7And s8) (ii) a For example, pair (d)7And d8) Coding to obtain(s)7And s8) Or also can be paired with (d)6~d8) Coding to obtain s7And s8Or also can be paired with (d)5~d8) Coding to obtain(s)7And s8) The specific examples are not limited.
In this embodiment, each data block may be further divided into a plurality of sub-blocks, each sub-block includes at least one original data unit, and the encoding units generated by the original data unit generation encoding unit in one sub-block and the second target original data unit associated with the next sub-block are combined to generate the target encoded data, so as to ensure that the encoding unit and the encoding sub-unit generated corresponding to one sub-block are not lost together, so that redundant information can be added more effectively, the encoding sub-unit is ensured to ensure the error correction capability, and the decoding delay of the encoding sub-unit can be effectively reduced. It is to be appreciated that, in one example, in the 1 st data block, the original data unit (d) is represented by1And d2) Generated coding unit(s)1And s2) And a corresponding coding subunit (p)1And p2) Coding sub-unit (p)1And p2) And by the original data unit (d)1~d4) Coding unit(s) of code generation3And s4) Composing target encoded data; from the original data unit (d)1~d4) Coding sub-unit (p) of a code generation3And p4) Coding unit(s) generated with first sub-block of 2 nd data block5And s6) Combining into target coded data; and so on. In addition, for the 1 st sub-block (d) in the 1 st data block1And d2) Generated coding unit(s)1And s2) The corresponding coding subunits can be filled up by filling up '0', or by the 1 st numberBy partial data filling in blocks, or by coding sub-units (p)1And p2) Padding to ensure that the size of each encoded packet is consistent.
In an optional embodiment, the coding unit and the coding sub-unit are concatenated to generate the target coded data, where the coding unit corresponds to a second time unit, the coding sub-unit corresponds to a first time unit, and the second time unit is not earlier in time domain than the first time unit.
And the coding sub-unit is generated by coding the original data sub-units divided by the original data units in the first set in a first time unit and is combined with the coding unit obtained by coding the original data units in the second set in a second time unit to generate target coding data. It is understood that the first set corresponds to a first time unit, the second set corresponds to a second time unit, the first set includes at least one original data unit, the second set includes at least one original data unit, and the original data unit included in the first set and the original data unit included in the second set may be the same or different. The first set is described in a static manner, and if the first set is described in a dynamic manner, the first set may be understood as a sliding window, or may also be understood as an associated depth of an original data unit. In this embodiment, the first set is described by taking a sliding window as an example.
Optionally, in this embodiment, the combination method of the coding unit and the coding sub-unit satisfies the following formula (1):
the function f represents the operation and operation corresponding to the coding, the variable t represents the t-th time unit, the parameters h and k represent the time delay characteristic, the coefficient span represents the span of the sliding window, namely the sliding distance of the sliding window at each time, d [ ] represents the original data unit, and p [ ] represents the coding subunit.
The above formula can be understood that the coding subunit generated by the t-th time unit is generated by coding the original data unit set (d [ span x (t-1) +1-h ],. d, d [ span x (t-1) +1-k ]), the size (or the associated depth) of the sliding window is the difference of the first and last positions in the original data unit set, and the size of the sliding window is represented as Δ ═ k-h + 1.
In a first example, please refer to fig. 18, the window size is 4 original data units, i.e., Δ ═ 4; the span of each sliding of the sliding window is 1 original data unit, namely span is 1; the time delay of the original data unit corresponding to the generated coding sub-unit is 0 (i.e. the second time unit is equal to the first time unit), i.e. h is 0. Specifically, the sliding window starts from the 1 st original data unit d1Enter is started when only d is in the sliding window1This one original data unit, and therefore only one original data unit d1Split primary data subunit code generation coding subunit p1And is combined with d1Corresponding coding unit s1Combining into target coding data, and so on, sliding the sliding window 1 original data unit at a time, when the sliding window slides 4 times, the original data unit in the sliding window is (d)1~d4) And then, keeping 4 original data units in the sliding window all the time until the window exits.
span is 1, when Δ is 4, h is 0, k is 3; substituting the parameters into equation 1 as shown in equation (1):
when t is 4, then p [4 ]]=f(d[4],...,d[1]) Indicates the original data unit (d)1~d4) Corresponding primary data subunit code generation coding subunit p4If the coding subunit p is equal to the second time unit, since h is equal to 04Corresponding to a first time unit, p4Coding unit s corresponding to the second time unit4The target encoded data is generated by combination.
S is4Is generated by encoding the original data unit in the second set, s4Can be formed by4Code generation, or, the s4Can be formed by3And d4Code generation, or, the s4Can be prepared from (d)1~d4) Code generation, etc., second setThe original data unit in the pool is not particularly limited.
For the same reason, when t is 5, then p [5 ]]=f(d[5],...,d[2]) Indicates the original data unit (d)2~d5) Corresponding primary data subunit code generation coding subunit p5If the coding subunit p is equal to the second time unit, since h is equal to 05Corresponding to a first time unit, p5Coding unit s corresponding to the original data unit (corresponding to the second time unit) in the second set5And combining to generate target coded data, and so on, which is not described in detail.
In a second example, please refer to fig. 19, in this example, with respect to the first example, the timing relationship is adjusted, and the time delay of the original data unit corresponding to the generated coding sub-unit is one time unit (the second time unit is later than the first time unit), that is, h is 1; the window size is 4 original data units, namely delta is 4; the sliding window spans 1 original data unit per sliding, i.e. span is 1.
For example, a sliding window starts from the 1 st original data unit d1Enter is started when only d is in the sliding window1This one original data unit, and therefore only one original data unit d1Split primary data subunit code generation coding subunit p2Due to the delay h ═ 1, p2Corresponding to the first time unit, the sliding window slides one more original data unit, and at this time, in the second time unit, there is d in the sliding window1And d2The two original data units, on the one hand, are d1And d2Split primary data subunit code generation coding subunit p3On the other hand, p2And comprises d2Of the original data unit (e.g. d)1And d2Or d is2) Correspondingly generated coding units s2Combining into target coded data; in the same way, p3And comprises d3Of the original data unit (e.g. d)1~d3Or d or2And d3Or d or3) Correspondingly generated coding units s3And combining into target coded data, and so on. The sliding window slides 1 original data unit at a time whenWhen the sliding window slides for 4 times, the original data unit in the sliding window is (d)1~d4) And then the sliding window always keeps 4 original data units until the window exits.
span is 1, when Δ is 4, h is 1, k is 4; substituting the parameters into equation 1 as shown in equation 1:
when t is 5, p [5 ]]=f(d[4],...,d[1]) Indicates the original data unit (d)1~d4) Corresponding primary data subunit code generation coding subunit p5If a subunit p is coded, since h is 15Corresponding to a first time unit, p5Coding unit s corresponding to the second time unit4The target encoded data is generated by combination. S is4Is generated by encoding the original data unit in the second set, s4Can be formed by4Code generation, or, the s4Can be formed by3And d4Code generation, or, the s4Can be prepared from (d)1~d4) Code generation, etc., and the original data units in the second set are not limited specifically.
For the same reason, when t is 6, p [6 ]]=f(d[5],...,d[2]) Indicates the original data unit (d)2~d5) Corresponding primary data subunit code generation coding subunit p6If a subunit p is coded, since h is 16Corresponding to a first time unit, p6Coding unit s corresponding to the second time unit5The target encoded data is generated by combination. S is5Is generated by encoding the original data unit in the second set, s5Can be formed by5Code generation, or, the s5Can be formed by4And d5Code generation, or, the s5Can be prepared from (d)2~d5) Code generation, etc., and the original data units in the second set are not limited specifically.
In a third example, please refer to fig. 20, in this example, compared to the second example, the span of the sliding window is adjusted, and the time delay of the original data unit corresponding to the generated coding sub-unit is one time unit (the second time unit is later than the first time unit), that is, h is 1; the window size is 4 original data units, namely delta is 4; the sliding window spans 2 original data units each time, i.e., span is 2. Since span is 2, sliding window generates two coding subunits at a time, and the two coding subunits can also be two sub-parts split into the same coding subunit on average.
For example, the sliding window starts from the 1 st original data unit and the 2 nd original data unit d1And d2Enter is started when there is d in the sliding window1And d2The two original data units, thus the original data unit d1And d2Split primary data subunit code generation coding subunit p3And p4Since the delay h is 1, (p)3And p4) And include but are not limited to (d)3And d4) Corresponding coding unit(s)3And s4) Combining into target coding data, sliding window once again, sliding distance of 2 original data units, the original data unit in the sliding window is (d)1~d4) And then the sliding window always keeps 4 original data units until the window exits.
span is 2, when Δ is 4, h is 1, k is 4; substituting the parameters into equation 1 as shown in equation 1:
when t is 3, (p 5)],p[6])=f(d[4],...,d[1]) Indicates the original data unit (d)1~d4) Corresponding primary data subunit code generation coding subunit p5And p6If a subunit p is coded, since h is 15And p6Corresponding to a first time unit, the5And p6) Coding unit(s) corresponding to second time unit (e.g. t-4)5And s6) The target encoded data is generated by combination. The(s)5And s6) Is generated by encoding the original data unit in the second set, the(s)5And s6) Can be prepared from (d)5And d6) Code generation, or, the(s)5And s6) Can be prepared from (d)3~d6) Code generation, or, the(s)5And s6) Can be prepared from (d)4~d6) Code generation, etcEtc., the encoding unit is generated by encoding which original data units in the second set.
Accordingly, in the above three examples, there is no corresponding coding sub-unit for the target coding unit corresponding to the start time unit due to the time sequence relationship, so that the positions of the coding sub-units corresponding to the target coding unit can be complemented in a way of complementing "0", or the positions of the coding sub-units are complemented by part of the original data or the coding units or the coding sub-units, thereby ensuring that the sizes of each coded data packet are consistent.
In this embodiment, the coding subunit is used as redundant information, and in order to ensure that the coding subunit can perform an error correction function on data within a certain time range in an application scenario with a time sequence relationship, better error correction capability is ensured by using the hysteresis of the coding subunit relative to the related coding unit.
Next, the step of outputting the target encoded data in step 405 will be described. The sending end device sends the target encoded data to the receiving end, and carries the target encoded data in the transmission block, and a possible carrying method is described below.
In an alternative implementation manner of step 405, please refer to fig. 21, in which a coding unit and a coding subunit in target coding data are transmitted through different transmission blocks, and the same transmission block does not carry both the coding unit and the coding subunit. The coding unit and the coding subunit are respectively transmitted through the coding unit transmission block and the coding subunit transmission block, and the coding unit and the coding subunit of each coded data packet have index numbers which are mapped with each other.
As shown in fig. 21, the 1 st transport block and the 2 nd transport block are used for transmitting coding units, and the 3rd transport block is used for transmitting coding subunits. Because the coding unit and the corresponding coding subunit are respectively carried on different transmission blocks, the corresponding relationship between the coding unit and the coding subunit is disturbed, and in order to ensure the successful decoding of the receiving end, the receiving end needs to correspond the coding unit and the coding subunit, so the coding subunit also needs a head part, and the head part of the coding unit and the coding subunit are carried onThe head of the unit is added with the index sequence number which is mapped with each other and is used as the identification number of the coding unit and the coding sub-unit. As shown in fig. 21, the coding unit(s)1~s4) Because the data of the coding unit is large, the coding unit is respectively borne on two transmission blocks of the 1 st transmission block and the 2 nd transmission block for transmission, and the corresponding coding sub-unit (p)1~p4) Because the data is less, the data is carried in a transmission block for transmission; because the head of the coding unit and the head of the corresponding coding subunit are added with the index serial numbers, the receiving end can be ensured to identify the coding unit and the coding subunit of the same target coding data, and the coding unit and the coding subunit form complete target coding data according to the correspondence of the index serial numbers of the head of the coding unit and the head of the coding subunit, and then the target coding data is decoded. In this embodiment, the corresponding coding units and coding subunits are transmitted through different transmission blocks, so that the simultaneous loss of the coding units and the coding subunits of the same target coded data can be avoided, and the granularity of the coding subunits carried in the transmission blocks for transmitting the coding subunits is small, thereby achieving better adaptation and saving the spectrum resources of the transmission blocks of the coding subunits.
In the transmission process, a certain corresponding relationship exists between the coding unit and the coding subunit, the coding unit and the coding subunit are respectively carried on different transmission blocks, due to the great difference in size between the coding unit and the coding subunit, the corresponding relationship between the coding unit and the coding subunit is misplaced by adopting an interval transmission mode (for example, the 1 st data block carries the coding unit, the 2 nd data block carries the coding subunit, the 3rd data block carries the coding unit, etc.), a great decoding time delay can be generated for a target coded data, the data transmitted in the time period of the storage and reception time delay needs to be increased by a transmitting end through a retransmission process (for example, hybrid automatic repeat request (HARQ)), so that the storage overhead of the transmitting end is increased, the storage overhead generated by the decoding time delay is generated by a receiving end, therefore, in the transmission process, whether each transmission block is a coding unit transmission block or a coding subunit transmission block needs to be determined according to a certain rule, so that the coding unit and the corresponding coding subunit have smaller time delay in the transmission process. A possible implementation of determining whether each transport block is a coding unit transport block or a coding sub-unit transport block is described below:
in a first possible implementation manner, please refer to fig. 22, which shows a specific step flow including:
For example, when the 1 st transport block carries coding units, the 1 st transport block carries two coding units, s _ index is 1 and s _ index is 2, the first target index sequence number is updated to "2", and since no coding subunit has been transmitted, the second target index sequence number is "0".
If the 1 st transport block carries five coding subunits, i.e., p _ index is 1, p _ index is 2, p _ index is 3, p _ index is 4, and p _ index is 5, when the 1 st transport block carries a coding subunit, the second target index sequence number is updated to "5", and the first target index sequence number is "0" since no coding unit has been transmitted.
For example, if the first target index number is "2", the second target index number is "0", and 2 > 0 for the 1 st transport block transport coding unit, step 2204 is performed.
If the first target index sequence number is "0", the second target index sequence number is "5", and 0 is less than 5 in the 1 st transport block transport coding subunit, step 2205 is executed.
When the first target index sequence number is greater than the second target index sequence number, i.e. 2 > 0, the current transport block (e.g. the 2 nd transport block) is used to carry the coding sub-units, the current transport block carries five coding sub-units, i.e. p _ index is 1, p _ index is 2, p _ index is 3, p _ index is 4, and p _ index is 5, the second target index sequence number is updated to "5", at this time, the first target index sequence number is "2", and then the sizes of the first target coding sequence number and the second target coding sequence number are continuously compared.
When the first target index sequence number is not greater than the first target index sequence number, i.e. 0 < 5, the current transport block (e.g. the 2 nd transport block) is used to carry coding units, the current transport block carries two coding units, i.e. s _ index is 3 and s _ index is 4. The first target index sequence number is updated to be "4", and the second target index sequence number at this time is still "5". And continuously comparing the sizes of the first target index sequence number and the second target index sequence number.
In this embodiment, it is determined whether the transport block corresponding to the current time unit is a bearer coding unit or a coding subunit, and whether the transport block is a coding unit or a coding subunit can be determined by comparing the sizes of the index number of the coding unit that has been transmitted (or carried) and the index number of the coding subunit.
In a second possible implementation manner, please refer to fig. 23, which shows a specific step flow including:
for example, when the 1 st transport block carries coding units, the 1 st transport block carries two coding units, i.e., s _ index is 1 and s _ index is 2, the first target index sequence number is updated to "2".
2303, determining whether the first target index sequence number is greater than the sum of a second target index sequence number and a first threshold, where the second target index sequence number is the maximum value of second index sequence numbers corresponding to the multiple loaded coding subunits; if the first target index sequence number is greater than the sum of the second target index sequence number and the first threshold, executing step 2304; if the first target index sequence number is not greater than the sum of the second target index sequence number and the first threshold, go to step 2302;
the first target index sequence number is updated to "2", and if the coding sub-unit is not transmitted currently, the second target index sequence number is "0". Assume that the first threshold is 1. I.e., 2 > 1, then step 2204 is performed; assuming that the first threshold is 3, i.e. 2 < 3, step 2302 is performed.
Step 2304, carrying a plurality of coding subunits, updating the second target index sequence number, and continuing with step 2305.
The transport block is used to transmit the coding sub-units, the transport block carries five coding sub-units, p _ index is 1, p _ index is 2, p _ index is 3, p _ index is 4, p _ index is 5, the second target index number is updated to "5", and step 2205 is continuously executed.
2305, determining whether the second target index sequence number is greater than the sum of the first index sequence number and a second threshold, and if the second target index sequence number is greater than the sum of the first index sequence number and the second threshold, executing 2302; if the second target index sequence number is not greater than the sum of the first index sequence number and the second threshold, proceed to step 2304.
If the second target index sequence number is "5" and the first target index sequence number is "2", and if the second threshold value is 2, 5 > 4, continue to execute step 2302; assuming that the second threshold is 4, then 5 < 6, then execution continues at step 2304.
In this embodiment, the first threshold and the second threshold may be the same or different, and are not limited specifically. In this embodiment, the number of transport block transmission coding units or coding sub-units may be adjusted by the first threshold and the second threshold. Increasing the first threshold increases the number of transmission coding units, or increasing the second threshold increases the number of transmission coding subunits.
Optionally, in this embodiment, the transport block for transmitting the coding unit and the transport block for transmitting the coding sub-unit may be transmitted through different time-frequency resources. Alternatively, the transport block for transmitting the coding unit and the transport block for transmitting the coding sub-unit may be transmitted through different Transmission Reception Points (TRPs).
Optionally, the header of the target encoded data in this embodiment of the present application further includes coding unit information, where the coding unit information at least includes a data block identifier and an identifier of a coding unit corresponding to the coding unit, and optionally, may further include a corresponding coding coefficient. The coding coefficient of the coding unit and the coding coefficient of the coding sub-unit may be the same or different.
It can be understood that, for reed-solomon (RS) network coding and other schemes, the coding coefficients in the coding generator matrix are non-random and can be configured semi-statically without being added to the header; for a network coding scheme in which coding coefficients are randomly selected, such as a Random Linear Network Coding (RLNC) scheme, the corresponding coding coefficients need to be added to the corresponding header (or packet header). And for the situation that the coding coefficient is randomly selected in the scheme of RLNC and the like, the corresponding packet header needs to be added with the coding coefficient (such as vec) on the basis of the packet header designsp=(c1,c2,...,cm) The coding coefficient may be used for the coefficients of the m coding subunits alone or may be used for the coefficient vec corresponding to the coding unitp=(cp1,cp2,...,cpm) By using the arithmetic combination, i.e. the actual coding coefficient of each coding sub-unit is the coefficient c corresponding to the coding sub-unitxCoefficient cp corresponding to coding unityBy performing operations including, but not limited to, addition, multiplication, polynomial operations, and the like, wherein cxIs (c)1,c2,...,cm) Any one of the elements, cpyIs (cp)1,cp2,...,cpm) Any one of the elements.
Alternatively, the coding coefficient of the coding unit may be 1, and when the coding coefficient of the coding unit is 1, the coding unit is the original data unit.
While the above description has been made on the method of encoding data using the transmitting end device as the execution subject, the following description is briefly made on the receiving end device receiving the target encoded data and decoding the target encoded data. The execution main body of the decoding method is receiving end equipment which can be a base station, and the execution main body of the decoding method can be a processor, a chip or a chip system in the base station; or the receiving end device may be a terminal, and the main body of the decoding method may be a processor, a chip, or a chip system in the terminal. The following description will be given taking the execution body as the receiving device as an example. The decoding method may include:
receiving end equipment receives the target coded data, wherein the target coded data are generated by a coding unit and a coding subunit, the coding unit is generated after coding the original data unit, and the coding subunit is obtained after coding a plurality of original data subunits obtained by splitting the original data unit; the target coding data comprises a header, wherein the header comprises index information, and the index information is used for indicating the corresponding relation between the coding sub-unit and the original data unit;
and determining an original data unit corresponding to the original data sub-packet according to the original data sub-packet and the header information.
Decoding the coding unit to obtain an original data unit, and decoding the coding subunit to obtain an original data sub-packet; the original data unit is obtained.
Referring to FIG. 24(a), four original data units (d) are illustrated by taking 4 original data units as an example1,d2,d3,d4) Correspondingly, four coding units(s) are generated1,s2,s3,s4) Each target coded data includes a coding unit and a coding sub-unit. If s1Only part of the bit data in the encoded data is erroneous, and the rest of the data is correct, and the encoding subunits p1-p4 are used to replace erroneous data, so as to ensure correct decoding of target encoded data.
If the coding unit has wrong bit data, a possible implementation manner is that the coding subunits are decoded correctly, the wrong bit data decoded in the coding unit is directly replaced, and the data correctness is ensured through Cyclic Redundancy Check (CRC) check of each original data unit; in another possible implementation manner, the coding subunit replaces the erroneous bit data in the coding unit (the same coding mode and coding coefficient are adopted), the coding unit and the coding subunit are decoded again together, and CRC check is performed.
Corresponding to the method provided by the above method embodiment, the embodiment of the present application further provides a corresponding apparatus, which includes a module for executing the above embodiment. The module may be software, hardware, or a combination of software and hardware.
Fig. 25 shows a schematic configuration of a communication apparatus. The apparatus 2500 may be a network device, a terminal device, a chip, a system-on-chip, or a processor that supports the network device to implement the method, or a chip, a system-on-chip, or a processor that supports the terminal device to implement the method. The apparatus may be configured to implement the method described in the method embodiment, and refer to the description in the method embodiment.
The apparatus 2500 may include one or more processors 2501, where the processors 2501 may also be referred to as processing units and may implement certain control functions. The processor 2501 may be a general purpose processor, a special purpose processor, or the like. For example, a baseband processor or a central processor. The baseband processor may be configured to process communication protocols and communication data, and the central processor may be configured to control a communication device (e.g., a base station, a baseband chip, a terminal chip, a DU or CU, etc.), execute a software program, and process data of the software program.
In an alternative design, the processor 2501 may also have instructions and/or data 2503 stored thereon, and the instructions and/or data 2503 may be executed by the processor to cause the apparatus 2500 to perform the methods described in the above method embodiments.
In an alternative design, the processor 2501 may include a transceiver unit to perform receive and transmit functions. The transceiving unit may be, for example, a transceiving circuit, or an interface circuit. The transmit and receive circuitry, interfaces or interface circuitry used to implement the receive and transmit functions may be separate or integrated. The transceiver circuit, the interface circuit or the interface circuit may be used for reading and writing code/data, or the transceiver circuit, the interface circuit or the interface circuit may be used for transmitting or transferring signals.
In yet another possible design, the apparatus 2500 may include circuitry that may implement the functionality of transmitting or receiving or communicating in the foregoing method embodiments.
Optionally, the apparatus 2500 may include one or more memories 2502, on which instructions 2504 may be stored, the instructions being executable on the processor to cause the apparatus 2500 to perform the methods described in the above method embodiments. Optionally, the memory may further store data therein. Optionally, instructions and/or data may also be stored in the processor. The processor and the memory may be provided separately or may be integrated together. For example, the correspondence described in the above method embodiments may be stored in a memory or in a processor.
Optionally, the apparatus 2500 may further include a transceiver 2505 and/or an antenna 2506. The processor 2501, which may be referred to as a processing unit, controls the apparatus 2500. The transceiver 2505 may be referred to as a transceiver unit, a transceiver circuit, a transceiver device, a transceiver module, or the like, and is used for implementing a transceiving function.
Optionally, the apparatus 2500 in this embodiment of the present application may be configured to execute the method described in fig. 4 in this embodiment of the present application, and may also be configured to execute a method of various implementation manners corresponding to the embodiment of the method corresponding to fig. 4 and a method of combining various implementation manners.
The processors and transceivers described herein may be implemented on Integrated Circuits (ICs), analog ICs, Radio Frequency Integrated Circuits (RFICs), mixed signal ICs, Application Specific Integrated Circuits (ASICs), Printed Circuit Boards (PCBs), electronic devices, and the like. The processor and transceiver may also be fabricated using various IC process technologies, such as Complementary Metal Oxide Semiconductor (CMOS), N-type metal oxide semiconductor (NMOS), P-type metal oxide semiconductor (PMOS), Bipolar Junction Transistor (BJT), Bipolar CMOS (bicmos), silicon germanium (SiGe), gallium arsenide (GaAs), and the like.
The apparatus in the description of the above embodiment may be a network device or a terminal device, but the scope of the apparatus described in the present application is not limited thereto, and the structure of the apparatus may not be limited by fig. 25. The apparatus may be a stand-alone device or may be part of a larger device.
As shown in fig. 26, another embodiment of the present application provides a communication device 2600. The device may be a terminal or a component of a terminal (e.g., an integrated circuit, a chip, etc.). Alternatively, the apparatus may be a network device, or a component of a network device (e.g., an integrated circuit, a chip, etc.). The apparatus may also be another communication module, which is used to implement the method in the embodiment of the method of the present application. The apparatus 2600 may comprise: a processing module 2602 (or referred to as a processing unit). Optionally, the transceiver module 2601 (or referred to as a transceiver unit) and the storage module 2603 (or referred to as a storage unit) may also be included.
In one possible design, one or more of the modules in FIG. 26 may be implemented by one or more processors or by one or more processors and memory; or by one or more processors and transceivers; or by one or more processors, memories, and transceivers, which are not limited in this application. The processor, the memory and the transceiver can be arranged independently or integrated.
The apparatus has a function of implementing the terminal described in the embodiment of the present application, for example, the apparatus includes a module or a unit or means (means) corresponding to the terminal performing the terminal related steps described in the embodiment of the present application, and the function or the unit or the means (means) may be implemented by software, or implemented by hardware executing corresponding software, or implemented by a combination of software and hardware. Reference may be made in detail to the respective description of the corresponding method embodiments hereinbefore. Or, the apparatus has a function of implementing the network device described in the embodiment of the present application, for example, the apparatus includes a module, a unit, or a means (means) corresponding to the step of executing the network device described in the embodiment of the present application by the network device, and the function, the unit, or the means (means) may be implemented by software, or by hardware executing corresponding software, or by a combination of software and hardware. Reference may be made in detail to the respective description of the corresponding method embodiments hereinbefore.
Optionally, each module in the apparatus 2600 in the embodiment of the present application may be configured to execute the method described in fig. 4 in the embodiment of the present application, and may also be configured to execute a method of various implementation manners corresponding to the embodiment of the method corresponding to fig. 4 and a method of combining various implementation manners.
In one possible design, an apparatus 2600 comprises: a processing module 2601.
A processing module 2601, configured to obtain a raw data unit; splitting the original data unit to obtain a set of original data subunits; encoding the original data unit to generate an encoding unit, and encoding a plurality of original data subunits in the set to generate an encoding subunit; generating target coded data according to the coding unit and the coding subunit; and outputting the target coded data.
In one possible design, an apparatus 2600 may comprise: a processing module 2601 and a transceiver module 2602.
A transceiver module 2602, configured to obtain an original data unit;
a processing module 2601, configured to split the original data unit obtained by the transceiver module 2602 to obtain a set of original data sub-units; encoding the original data unit to generate an encoding unit, and encoding a plurality of original data subunits in the set to generate an encoding subunit; generating target coded data according to the coding unit and the coding subunit;
the transceiver module 2602 is further configured to output the target encoded data generated by the processing module 2601.
Optionally, the processing module 2601 is further configured to, when the number of the raw data units is multiple, split a first target raw data unit in the multiple raw data units to obtain a subset corresponding to the first target raw data unit, where the subset includes multiple raw data subunits, and the set includes the subset.
Optionally, the processing module 2601 is further configured to encode a plurality of original data sub-units in one of the subsets, and generate at least one encoded sub-unit corresponding to the subset.
Optionally, the processing module 2601 is further configured to encode the original data sub-units in at least two of the plurality of subsets to generate at least one encoded sub-unit.
Optionally, the processing module 2601 is further configured to, when the plurality of original data sub-units are included in a plurality of data blocks; and encoding the original data subunits in at least two data blocks in the plurality of data blocks to generate at least one encoding subunit.
Optionally, the target encoded data includes indication information, where the indication information is used to indicate a correspondence between the encoding sub-unit and the original data unit.
Optionally, the indication information includes bitmap information, and the bitmap information is used to indicate a corresponding relationship between the encoded data sub-unit and a plurality of original data sub-units.
Optionally, the target encoding data includes indication information, where the indication information is used to indicate a position of an original data sub-unit of the generated encoding sub-unit in a corresponding original data unit.
Optionally, the indication information is further used to indicate the number of coding sub-units corresponding to the original data unit.
Optionally, the target encoded data includes indication information, where the indication information is used to indicate a position of an original data sub-unit generating the encoding sub-unit in a corresponding original data unit, and a position of the corresponding original data unit.
Optionally, the target encoding data includes indication information, where the indication information is used to indicate: and generating the position of the original data subunit of the coding subunit in the corresponding original data unit, the position of the corresponding original data unit in the corresponding data block and the position of the corresponding data block.
Optionally, the processing module 2601 is further configured to splice all or part of the data in the coding unit and the coding sub-unit, and generate the target coded data.
Optionally, the processing module 2601 is further configured to, when the original data unit at least includes a first original data unit and a second original data unit, where the first original data unit is included in a first data block, and the second original data unit is included in a second data block, splice the coding sub-unit corresponding to the first original data unit and the coding unit corresponding to the second original data unit to generate the target coded data.
Optionally, the processing module 2601 is further configured to, when the original data unit further includes a third original data unit, the second data block includes at least a first sub-block and a second sub-block, the second original data unit is included in the first sub-block, and the third original data unit is included in the second sub-block; and splicing the coding sub-unit corresponding to the second original data unit and the coding unit corresponding to the second target original data unit to generate the target coding data, wherein the second target original data unit at least comprises the third original data unit.
Optionally, the processing module 2601 is further configured to concatenate the coding unit and the coding sub-unit to generate the target coded data, where the coding unit corresponds to a second time unit, the coding sub-unit corresponds to a first time unit, and the second time unit is not earlier than the first time unit in a time domain.
It is understood that some optional features in the embodiments of the present application may be implemented independently without depending on other features in some scenarios, such as a currently-based solution, to solve corresponding technical problems and achieve corresponding effects, or may be combined with other features according to requirements in some scenarios. Accordingly, the apparatuses provided in the embodiments of the present application may also implement these features or functions, which are not described herein again.
Those skilled in the art will also appreciate that the various illustrative logical blocks and steps (step) set forth in the embodiments of the present application may be implemented in electronic hardware, computer software, or combinations of both. Whether such functionality is implemented as hardware or software depends upon the particular application and design requirements of the overall system. Those skilled in the art can implement the described functions in various ways for corresponding applications, but such implementation decisions should not be interpreted as causing a departure from the scope of the embodiments of the present application.
It is understood that the processor in the embodiments of the present application may be an integrated circuit chip having signal processing capability. In implementation, the steps of the above method embodiments may be performed by integrated logic circuits of hardware in a processor or instructions in the form of software. The processor may be a general purpose processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA) or other programmable logic device, discrete gate or transistor logic device, or discrete hardware components.
The approaches described herein may be implemented in a variety of ways. For example, these techniques may be implemented in hardware, software, or a combination of hardware and software. For a hardware implementation, the processing units used to perform these techniques at a communication device (e.g., a base station, terminal, network entity, or chip) may be implemented in one or more general-purpose processors, DSPs, digital signal processing devices, ASICs, programmable logic devices, FPGAs, or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combinations of the above. A general-purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a digital signal processor and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a digital signal processor core, or any other similar configuration.
It will be appreciated that the memory in the embodiments of the subject application can be either volatile memory or nonvolatile memory, or can include both volatile and nonvolatile memory. The non-volatile memory may be a read-only memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an electrically Erasable EPROM (EEPROM), or a flash memory. Volatile memory can be Random Access Memory (RAM), which acts as external cache memory. By way of example, but not limitation, many forms of RAM are available, such as Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), double data rate SDRAM, enhanced SDRAM, SLDRAM, Synchronous Link DRAM (SLDRAM), and direct rambus RAM (DR RAM). It should be noted that the memory of the systems and methods described herein is intended to comprise, without being limited to, these and any other suitable types of memory.
The present application also provides a computer-readable medium having stored thereon a computer program which, when executed by a computer, performs the functions of any of the method embodiments described above.
The present application also provides a computer program product which, when executed by a computer, implements the functionality of any of the above-described method embodiments.
In the above embodiments, the implementation may be wholly or partially realized by software, hardware, firmware, or any combination thereof. When implemented in software, may be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When loaded and executed on a computer, cause the processes or functions described in accordance with the embodiments of the application to occur, in whole or in part. The computer may be a general purpose computer, a special purpose computer, a network of computers, or other programmable device. The computer instructions may be stored on a computer readable storage medium or transmitted from one computer readable storage medium to another, for example, from one website, computer, server, or data center to another website, computer, server, or data center via wire (e.g., coaxial cable, fiber optic, Digital Subscriber Line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.). The computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device, such as a server, a data center, etc., that incorporates one or more of the available media. The usable medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a Digital Video Disk (DVD)), or a semiconductor medium (e.g., a Solid State Disk (SSD)), among others.
It should be appreciated that reference throughout this specification to "an embodiment" means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present application. Thus, the various embodiments are not necessarily referring to the same embodiment throughout the specification. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. It should be understood that, in the various embodiments of the present application, the sequence numbers of the above-mentioned processes do not mean the execution sequence, and the execution sequence of each process should be determined by its function and inherent logic, and should not constitute any limitation to the implementation process of the embodiments of the present application.
It should be understood that, in the present application, "when …", "if" and "if" all refer to the fact that the device performs the corresponding processing under certain objective conditions, and are not limited to time, and do not require any judgment action for the device to perform, nor do they imply other limitations.
The term "simultaneously" in this application is to be understood as being at the same point in time, as well as being within a period of time, and also being within the same period.
Those skilled in the art will understand that: the various numerical designations of first, second, etc. referred to in this application are merely for convenience of description and are not intended to limit the scope of the embodiments of the present application. The specific values, numbers and positions of the numbers (which may also be referred to as indexes) in the present application are only used for illustrative purposes, are not only used in a unique representation form, and are not used to limit the scope of the embodiments of the present application. The first, second, etc. numerical references in this application are also for descriptive convenience only and are not intended to limit the scope of the embodiments of the present application.
Reference in the present application to an element using the singular is intended to mean "one or more" rather than "one and only one" unless specifically stated otherwise. In the present application, unless otherwise specified, "at least one" is intended to mean "one or more" and "a plurality" is intended to mean "two or more".
Additionally, the terms "system" and "network" are often used interchangeably herein.
Herein, the term "at least one of … …" or "at least one of … …" means all or any combination of the listed items, e.g., "at least one of A, B and C", may mean: the compound comprises six cases of separately existing A, separately existing B, separately existing C, simultaneously existing A and B, simultaneously existing B and C, and simultaneously existing A, B and C, wherein A can be singular or plural, B can be singular or plural, and C can be singular or plural.
It is understood that in the embodiments of the present application, "B corresponding to a" means that B is associated with a, from which B can be determined. It should also be understood that determining B from a does not mean determining B from a alone, but may be determined from a and/or other information. The term "and/or" herein is merely an association describing an associated object, meaning that three relationships may exist, e.g., a and/or B, may mean: a exists alone, A and B exist simultaneously, and B exists alone, wherein A can be singular or plural, and B can be singular or plural. The character "/" generally indicates that the former and latter associated objects are in an "or" relationship.
Those of ordinary skill in the art would appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware or combinations of computer software and electronic hardware. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the implementation. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
For convenience and brevity of description, a person skilled in the art may refer to the corresponding processes in the foregoing method embodiments for specific working processes of the system, the apparatus, and the unit described above, which are not described herein again.
It will be appreciated that the systems, apparatus and methods described herein may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit.
The functions, if implemented in the form of software functional units and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present application or portions thereof that substantially contribute to the prior art may be embodied in the form of a software product stored in a storage medium and including instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present application. And the aforementioned storage medium includes: various media capable of storing program codes, such as a usb disk, a removable hard disk, a read-only memory (ROM), a Random Access Memory (RAM), a magnetic disk, or an optical disk.
The same or similar parts between the various embodiments in this application may be referred to each other. In the embodiments and the implementation methods/implementation methods in the embodiments in the present application, unless otherwise specified or conflicting in logic, terms and/or descriptions between different embodiments and between various implementation methods/implementation methods in various embodiments have consistency and can be mutually cited, and technical features in different embodiments and various implementation methods/implementation methods in various embodiments can be combined to form new embodiments, implementation methods, or implementation methods according to the inherent logic relationships thereof. The above-described embodiments of the present application do not limit the scope of the present application.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any person skilled in the art can easily conceive of the changes or substitutions within the technical scope of the present application, and shall be covered by the scope of the present application.
Claims (17)
1. A method of encoding, comprising:
acquiring a raw data unit;
splitting the original data unit to obtain a set of original data subunits;
encoding the original data unit to generate an encoding unit, and encoding a plurality of original data subunits in the set to generate an encoding subunit;
generating target coded data according to the coding unit and the coding subunit;
and outputting the target coded data.
2. The method according to claim 1, wherein the number of the original data units is multiple, and the splitting the original data units to obtain the set of original data sub-units comprises:
splitting a first target original data unit in the plurality of original data units to obtain a sub-set corresponding to the first target original data unit, wherein the sub-set comprises a plurality of original data sub-units, and the set comprises the sub-set.
3. The method of claim 2, wherein encoding the plurality of original data sub-units in the set to generate encoded sub-units comprises:
and coding a plurality of original data subunits in one subset to generate at least one coding subunit corresponding to the subset.
4. The method of claim 2, wherein encoding the plurality of original data sub-units in the set to generate encoded sub-units comprises:
and encoding the original data subunits in at least two subsets of the plurality of subsets to generate at least one encoded subunit.
5. The method of claim 1, wherein the plurality of primary data sub-units are contained in a plurality of data blocks; the encoding a plurality of original data subunits in the set to generate an encoded subunit includes:
and encoding the original data subunits in at least two data blocks in the plurality of data blocks to generate at least one encoding subunit.
6. The method according to any of claims 1-5, wherein the target encoding data comprises indication information indicating a correspondence between the encoding sub-unit and the original data unit.
7. The method according to claim 6, wherein the indication information comprises bitmap information indicating the position correspondence relationship between the encoded data sub-unit and a plurality of the original data sub-units.
8. The method according to claim 3, wherein the target encoding data includes indication information indicating the position of the original data sub-unit generating the encoding sub-unit in the corresponding original data unit.
9. The method of claim 8, wherein the indication information is further used for indicating the number of coding sub-units corresponding to the original data unit.
10. The method according to claim 3 or 4, wherein the target encoding data comprises indication information indicating a position of a primary data sub-unit generating the encoding sub-unit in a corresponding primary data unit and a position of the corresponding primary data unit.
11. The method according to claim 5, wherein the target encoding data includes indication information indicating that: and generating the position of the original data subunit of the coding subunit in the corresponding original data unit, the position of the corresponding original data unit in the corresponding data block and the position of the corresponding data block.
12. The method of claim 1, wherein generating target encoded data from the coding unit and the coding sub-unit comprises:
and splicing all or part of data in the coding unit and the coding sub-unit to generate the target coding data.
13. The method of claim 1, wherein the original data unit comprises at least a first original data unit and a second original data unit, the first original data unit being included in a first data block, the second original data unit being included in a second data block; the generating target encoding data according to the encoding unit and the encoding sub-unit includes:
and splicing the coding sub-unit corresponding to the first original data unit and the coding unit corresponding to the second original data unit to generate the target coding data.
14. The method of claim 13, wherein the original data unit further comprises a third original data unit, wherein the second data block comprises at least a first sub-block and a second sub-block, wherein the second original data unit is included in the first sub-block, and wherein the third original data unit is included in the second sub-block; the method further comprises the following steps:
and splicing the coding sub-unit corresponding to the second original data unit and the coding unit corresponding to the second target original data unit to generate the target coding data, wherein the second target original data unit at least comprises the third original data unit.
15. The method of claim 1, wherein generating target encoded data from the coding unit and the coding sub-unit comprises:
and splicing the coding unit and the coding sub-unit to generate the target coding data, wherein the coding unit corresponds to a second time unit, the coding sub-unit corresponds to a first time unit, and the second time unit is not earlier than the first time unit in the time domain.
16. A communications apparatus, comprising: a processor coupled with a memory, the memory to store a program or instructions that, when executed by the processor, cause the apparatus to perform the method of any of claims 1 to 15.
17. A computer-readable medium storing a computer program or instructions which, when executed, cause a computer to perform the method of any one of claims 1 to 15.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305364.6A CN113541857A (en) | 2020-04-17 | 2020-04-17 | Coding method and communication device |
PCT/CN2021/076224 WO2021208581A1 (en) | 2020-04-17 | 2021-02-09 | Encoding method and communication device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010305364.6A CN113541857A (en) | 2020-04-17 | 2020-04-17 | Coding method and communication device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113541857A true CN113541857A (en) | 2021-10-22 |
Family
ID=78083538
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010305364.6A Pending CN113541857A (en) | 2020-04-17 | 2020-04-17 | Coding method and communication device |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113541857A (en) |
WO (1) | WO2021208581A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115598600A (en) * | 2022-11-28 | 2023-01-13 | 四川九洲电器集团有限责任公司(Cn) | Secondary radar signal dynamic coding system, method, electronic equipment and medium |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9419749B2 (en) * | 2009-08-19 | 2016-08-16 | Qualcomm Incorporated | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes |
CN101834700A (en) * | 2010-05-12 | 2010-09-15 | 北京邮电大学 | Unidirectional reliable transmission method and transceiving device based on data packets |
US9537759B2 (en) * | 2012-01-31 | 2017-01-03 | Massachusetts Institute Of Technology | Multi-path data transfer using network coding |
CN107294652A (en) * | 2016-04-13 | 2017-10-24 | 中兴通讯股份有限公司 | A kind of data mixing retransmission processing method and device |
CN106656424B (en) * | 2017-01-10 | 2020-08-14 | 西安蜂语信息科技有限公司 | Data transmission verification method |
-
2020
- 2020-04-17 CN CN202010305364.6A patent/CN113541857A/en active Pending
-
2021
- 2021-02-09 WO PCT/CN2021/076224 patent/WO2021208581A1/en active Application Filing
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115598600A (en) * | 2022-11-28 | 2023-01-13 | 四川九洲电器集团有限责任公司(Cn) | Secondary radar signal dynamic coding system, method, electronic equipment and medium |
Also Published As
Publication number | Publication date |
---|---|
WO2021208581A1 (en) | 2021-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110121851B (en) | Method, apparatus, medium, and communication system for transmitting incremental redundancy coded bit block | |
CN107852281B (en) | Baseband processor, base station, user equipment and method thereof | |
CN107409006B (en) | Hybrid automatic repeat request method and device for polarization code | |
CN113728705B (en) | Information transmission method and communication equipment | |
US20230139754A1 (en) | Coding method and apparatus | |
US10826651B2 (en) | Data sending method, data receiving method, sending device, and receiving device | |
EP3659259A1 (en) | Enhanced information sequences for polar codes | |
CN115336202A (en) | Encoding and decoding method and device for polarization code | |
WO2022111575A1 (en) | Data transmission method and apparatus | |
CN109120373B (en) | Channel coding method, data receiving method and related equipment | |
CN113541857A (en) | Coding method and communication device | |
US10581464B2 (en) | Encoder device, decoder device, and methods thereof | |
WO2019037782A1 (en) | Decoding method and decoder for polar code | |
EP3659260A1 (en) | Enhanced information sequences for polar codes | |
WO2019238014A1 (en) | Method and device for transmitting feedback information | |
WO2022193919A1 (en) | Encoding method and apparatus and decoding method and apparatus | |
US11296724B2 (en) | Encoding method and apparatus | |
EP3656059A1 (en) | Enhanced information sequences for polar codes | |
CN111092696B (en) | Wireless communication transmission method, terminal equipment and storage medium | |
CN113839736A (en) | Encoding method and device | |
US20240235762A1 (en) | Data transmission method and apparatus, and readable storage medium | |
WO2022236719A1 (en) | Wireless communication method, terminal device and network device | |
WO2023109733A1 (en) | Rate matching method and apparatus | |
EP4355002A1 (en) | Communication method and apparatus, and device and storage medium | |
WO2023283958A1 (en) | Information processing methods and apparatus, device, and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |