WO2021208581A1 - 一种编码方法及通信装置 - Google Patents

一种编码方法及通信装置 Download PDF

Info

Publication number
WO2021208581A1
WO2021208581A1 PCT/CN2021/076224 CN2021076224W WO2021208581A1 WO 2021208581 A1 WO2021208581 A1 WO 2021208581A1 CN 2021076224 W CN2021076224 W CN 2021076224W WO 2021208581 A1 WO2021208581 A1 WO 2021208581A1
Authority
WO
WIPO (PCT)
Prior art keywords
original data
unit
coding
subunit
data
Prior art date
Application number
PCT/CN2021/076224
Other languages
English (en)
French (fr)
Inventor
谭志远
董朋朋
祝慧颖
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2021208581A1 publication Critical patent/WO2021208581A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length

Definitions

  • This application relates to the field of communication, and in particular to an encoding method and communication device.
  • Network coding technical solutions include many types, such as packet network coding, convolutional network coding and so on. These coding technical solutions all obtain corresponding coded packet groups by performing different coding operations on a group of original data packets, that is, corresponding to different code generation matrices.
  • the coded packet received by the receiving end is wrong in the unit of the packet, and the coded packet in the unit of the packet is needed to recover the wrong packet to ensure the successful decoding of the network code.
  • the code rate can only choose a limited number of values, and the granularity of code rate adjustment is relatively rough and cannot be flexible. Configuration, and when the value of (NK) is large, it will also cause obvious redundancy and greatly waste spectrum resources.
  • the embodiments of the present application provide an encoding method and a communication device.
  • the encoding method is applied to a communication system.
  • the communication system includes a network device and a terminal.
  • the network device is any device with a wireless transceiver function, and the network device includes But not limited to base stations, access nodes, wireless relay nodes, wireless backhaul nodes, etc.
  • the terminal is a device with wireless transceiver functions, including but not limited to user equipment, vehicle-mounted terminals, wearable devices, mobile phones, etc.;
  • the execution subject of the encoding method in the application is the sending end device, or the execution subject of the method can also be the processor, chip or chip system in the sending end device;
  • the sending end device can be a network device (such as a base station), or a sending end device
  • the end device can also be a terminal (such as a user device).
  • the sender device obtains the original data unit to be encoded, encodes the data with a granularity lower than the original data unit, and then outputs the encoded target encoded data.
  • the encoding method and communication device in this application are used to provide a more flexible code rate, It can better adapt spectrum resources and save overhead.
  • the embodiments of the present application provide an encoding method, which can be applied to a sending-end device.
  • the encoding method may include: the sending-end device obtains an original data unit to be encoded; For the data received by the opposite end, for example, the original data unit can come from the same link, or the original data unit can also come from a different link; or, the original data unit can be data generated by the sending end device, that is, the sending The data to be sent by the end device to the receiving end; then the sending end device splits the obtained original data unit, and divides the original data unit into multiple original data subunits to obtain a set of original data subunits; further analyzes the original data unit Perform encoding to generate a coding unit, and encode multiple original data subunits in the set to generate a coding subunit; the size of the coding subunit and the original data subunit are the same, so the size of the coding subunit is smaller than that of the original data unit Size; Generate target coded data according to the coding unit
  • the coding subunit can be understood as redundant information, which is generated in traditional network coding technology
  • the size of the redundant information is the same as the size of the original data unit before encoding, while the size of the encoding sub-unit in this application is smaller than the size of the original data unit;
  • the unit-based coding generation mode provides a network coding method that is lower than the data unit granularity.
  • a more flexible code rate is provided to adapt to transmission resources; and the location of the error in the original data unit and the number of error bits are randomly uncertain, and the encoding subunit can be used as the granularity of the erasure In order to recover the erroneous data, there is no need to retransmit the encoded packet to recover the erroneous data as in the traditional scheme, thereby saving spectrum resources.
  • splitting the original data unit to obtain the set of original data subunits may specifically include: the number of original data units may be multiple, and for the first target original data unit among the multiple original data units Splitting is performed 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 plurality of original data units, and the at least one original data unit is Each original data unit corresponds to a sub-set, which includes multiple original data sub-units.
  • the multiple original data sub-units in the sub-set are used to participate in the encoding of the encoding sub-units, and are used for multiple encoding sub-units.
  • the size of the original data subunits is the same.
  • the method of encoding a plurality of original data subunits in a set to generate an encoding subunit may include: encoding a plurality of original data subunits in a subset to generate an encoding subunit Corresponding to at least one encoding subunit; for example, the original data unit d 1 corresponds to a subset, the subset includes multiple original data subunits, and the multiple original data subunits are (d 1-1 , d 1-2 , ...d 1-n/a ), encoding the original data subunits in the subset (d 1-1 , d 1-2 ,...d 1-n/a ) to obtain at least one coding subunit;
  • a coding subunit is obtained by encoding multiple original data subunits in a subset.
  • a coded data packet is composed of a coding unit corresponding to an original data unit and a coding subunit corresponding to the original data unit. It is obtained that if part of the data of the coding unit is lost or error during transmission, the receiving end can recover the corresponding original data unit through the remaining data of the coding unit and the coding sub-unit, without the need to re-send the code with the traditional network coding method. Data packets, saving overhead, while ensuring a more flexible code rate.
  • the method of encoding multiple original data subunits in a set to generate an encoding subunit may include: encoding original data subunits in at least two of the multiple subsets to generate at least An encoding subunit, the at least two subsets include a first subset and a second subset; for example, the first subset includes multiple original data subunits (d 1-1 , d 1-2 ,...
  • the second subset contains multiple original data subunits (d 2-1 , d 2-2 ,...d 2-n/a ), in the first subset (d 1 -1 , d 1-2 ,...d 1-n/a ) and the second subset (d 2-1 , d 2-2 ,...d 2-n/a ) are optional Perform network coding to obtain at least one coding subunit, or code according to a certain rule, and select original data subunits with the same position from the at least two subsets to perform coding to generate at least one coding subunit, such as selecting the at least two subsets
  • the original data subunit at the first position is encoded to obtain an encoding subunit, or the original data subunit at the second position in the at least two subsets is selected for encoding to obtain at least one encoding subunit; in this embodiment, the encoding subunit It is generated by encoding the original data subunits corresponding to at least two original data units.
  • the receiving end uses the missing or erroneous data.
  • All coding subunits related to partial data, and other original data subunit information corresponding to all related coding subunits (for example, other original data subunit information has been successfully decoded, or obtained through joint decoding of multiple coding subunits) Perform decoding to recover the corresponding original data unit.
  • This embodiment can make the coding subunit cover a larger range (such as at least two subsets) of the original data unit information, that is, the coding subunit has a larger error correction range;
  • the traditional network coding method re-sends the coded data packet, which saves data overhead and ensures a more flexible code rate;
  • the corresponding original data subunits can be decoded in advance, namely It is not necessary to decode the encoding sub-units after receiving all the encoded data units, but the relevant encoding sub-units can be decoded in advance, which can improve the time delay.
  • the multiple original data subunits are included in multiple data blocks, and encoding the multiple original data subunits in the set to generate the encoding subunit may include: targeting at least one of the multiple data blocks
  • the corresponding original data subunits in the two data blocks are coded to generate at least one coding subunit; it is understandable that network coding is selectively performed within the range of all original data subunits corresponding to at least two data blocks to generate at least one Encoding subunit; for example, according to the first original data subunit in the subset corresponding to the first original data unit in the first data block, and, the first original data unit in the second data block corresponds to the subset
  • the first original data subunit in generates at least one encoding subunit; in this embodiment, the encoding subunit is generated by encoding the original data subunits corresponding to at least two data blocks, if the encoding unit ( If part of the data corresponding to the original data unit d1) in the first data block is lost or erroneous, the
  • Data subunit information (such as other original data subunit information has been successfully decoded, or obtained through joint decoding of multiple coding subunits) is decoded to restore the corresponding original data unit.
  • This embodiment can make the coding subunit contain A larger range (such as at least two data blocks) of the original data unit information, that is, the coding subunit has a larger error correction range; compared to the traditional network coding method, re-sending the coded data packet, saving data overhead, and ensuring more flexibility Bit rate.
  • Encoding subunits 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 subunits can be understood as joint coding of at least two data blocks.
  • the joint coding method of the data blocks includes the recursive method.
  • the recursive method is: X data blocks are used as joint units, and the data block recursive Overlapping, the joint mode between the data blocks within each joint unit can be combined arbitrarily, X is an integer greater than or equal to 1; in this embodiment, all the original data subunits corresponding to the X data blocks are used as the joint unit, and the joint The data blocks between the units overlap, R data blocks will become a larger coding range (R is an integer greater than or equal to X) through the recursion of X data blocks, and the original data subunits corresponding to the coding subunits are obtained.
  • the unit has a larger range, which can better ensure the error correction capability of the coding subunit.
  • the joint coding method of data blocks also includes a non-recursive method.
  • the non-recursive method is: X data blocks are used as a joint unit, and the data blocks between joint units do not overlap.
  • the joint modes between the data blocks within the two joint units can be arbitrarily combined; in this embodiment, the R data blocks include multiple joint units, each joint unit includes X data blocks, and the data between the multiple joint units The blocks are not overlapped. It can be understood that, taking X data blocks as a coding range, the coding range is relatively small compared to the recursive method, but the decoding delay is also small.
  • the target coded data includes a header, which carries indication information, and the indication information is used to indicate the correspondence between the coding subunit and the original data unit, so that the receiving end can pass the indication when decoding
  • the information can determine which original data subunits correspond to which original data subunits are encoded by which coding subunits are obtained.
  • the indication information includes bitmap information, and the bitmap information is used to indicate the positional correspondence between the encoded data subunit and the multiple original data subunits; in this embodiment, the original data subunit is For granularity, construct a bitmap corresponding to all original data subunits. Each bit in the bitmap corresponds to an original data subunit. Each bit can use "1" or "0" to identify the corresponding original data subunit.
  • the bitmap can be used to directly indicate which original data subunits corresponding to the positions are involved in coding, and In some application scenarios, such as for a coding subunit, the number of original data subunits participating in the coding of the coding subunit is large or the position of the original data subunit lacks regularity, the bitmap uses a more general indication method Characterization, indicating that the information overhead is relatively small.
  • the target coded data includes indication information, which is used to indicate the position of the original data subunit that generates the coded subunit in the corresponding original data unit; when the code subunit corresponding to each original data unit is When the number of units are the same (for example, each original data unit corresponds to 1 encoding subunit), the position of the original data subunit in the corresponding subset (corresponding to the original data unit) can indicate which original data subunits are Participate in the encoding of the coding subunit; 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 this embodiment, the indication information is indicated by the position (such as the sequence number vector) The method indicates which original data subunits participate in the encoding of the coding subunit.
  • the number of original data subunits participating in the coding of the coding subunit is small, or the original data
  • the location of the subunits has regularity (for example, encoding the first original data subunit corresponding to each original data unit), indicating that the information overhead is relatively small.
  • the indication information is also used to indicate the number of coding subunits corresponding to the original data unit; the number of coding subunits corresponding to each original data unit can indicate the number of coding subunits corresponding to each coding subunit.
  • the original data unit; and then the position of the original data sub-unit in the corresponding original data unit can indicate which original data sub-units each encoding sub-unit is generated by encoding, and the original data sub-unit is in the corresponding original data unit.
  • the position in the data unit can be represented by the sequence number vector of the original data subunit.
  • the target coded data includes indication information
  • the indication information is used to indicate the position of the original data subunit that generates the coding subunit in the corresponding original data unit, and the position of the corresponding original data unit;
  • 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 is: the position of the original data unit to which the original data subunit belongs can be used
  • the sequence number vector of the original data unit is represented; in this embodiment, in a data block, at least two original data units corresponding to the original data subunits are encoded within the range of the original data subunits to obtain the encoding subunits.
  • the original data The position of the subunit in the corresponding original data unit and the position of the original data unit to which the original data subunit belongs indicate which original data subunits the encoding subunit is obtained by encoding; in this embodiment, the indication information is passed
  • the position indication (such as sequence number vector) indicates which original data subunits participate in encoding.
  • the number of original data subunits participating in the encoding of the coding subunit is larger.
  • the location of the original data subunit has regularity (such as encoding the first original data subunit corresponding to each original data unit), indicating that the information overhead is relatively small.
  • the indication information is used to indicate: the position of the original data subunit that generates 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 used
  • the sequence number vector of the original data subunit is represented; the position of the corresponding original data unit in the corresponding data block can be represented by the sequence number vector of the original data unit; and the position of the corresponding data block can be represented by the data block.
  • the indication information may include the original data subunit for generating the coding subunit
  • the position 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 can indicate which position of the original data subunit the encoding subunit is obtained from.
  • the indication information indicates which original data subunits are involved in encoding by means of position indications (such as sequence number vectors).
  • the number of original data subunits encoded by the coding subunit is small, or the position of the original data subunit is regular (for example, the first original data subunit corresponding to the first original data unit in each data block is coded) , Indicating that the information overhead is relatively small.
  • generating the target coded data according to the coding unit and the coding subunit may specifically include: concatenating all or part of the data in the coding unit and the coding subunit to generate the target coded data; in one case, concatenating the coding All data in the unit and coding subunits generate target coded data.
  • the number of coding units is multiple, and the number of coding subunits is multiple. Each coding unit of the multiple coding units can be spliced with any number of coding subunits.
  • each coding unit in the partial coding units of the multiple coding units can be spliced with at least one coding subunit, and another partial coding unit may not be spliced with coding subunits; in another case, the number of coding units
  • the number of coding sub-units is at least one, and the one coding sub-unit can be further divided into multiple sub-parts.
  • Each coding unit can be spliced with any number of sub-parts, such as partial coding in the multiple coding units.
  • Each coding unit in the unit can be spliced with at least one sub-part, and another part of the coding unit may not be spliced with sub-parts; it is understandable that the target coded data includes multiple coded data packets, and each coded data packet is composed of a coded data packet.
  • the arbitrary number of coding subunits can be zero or at least one coding subunit, or the arbitrary number of coding subunits can also be after one coding subunit is split Any number of sub-parts obtained; in this embodiment, a combination strategy of coding units and coding sub-units can be used, such as splitting a coding sub-unit, or accumulatively placing multiple coding sub-units to adjust the granularity of the coding sub-units, so that The coding unit and the coding subunit are more adapted to the size of the transmission block, thereby effectively saving transmission resources.
  • the header of the encoded data packet also needs to carry index information corresponding to the connected subparts, and the index information is used for each encoding subunit.
  • the unit establishes a corresponding relationship with the multiple sub-parts that are split; so that the receiving end corresponds to the multiple sub-parts to one coding sub-unit according to the index information.
  • the number of original data units is multiple, the multiple original data units include at least a first original data unit and a second original data unit, and the first original data unit is included in the first data block, The second original data unit is included in the second data block; generating the target coded data according to the coding unit and the coding subunit may also include: splicing the coding subunit corresponding to the first original data unit and the coding unit corresponding to the second original data unit to generate Target coded data; in this embodiment, the coding subunit corresponding to one data block is combined with the coding unit corresponding to another data block to generate target coded data, which can ensure that the coding unit and coding subunit generated corresponding to one original data unit will not be together Loss, to ensure the error correction capability of the coding sub-unit.
  • the multiple original data units further include 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
  • the third original data unit is at least one original data unit in the second sub-block
  • the coding sub-unit corresponding to the second original data unit and the second target original data are spliced
  • the coding unit corresponding to the unit generates target coded data, where the second target original data unit includes at least a third original data unit
  • each data block can be further divided into several sub-blocks, and each sub-block includes at least one Original data unit, the original data unit in one sub-block is used to generate the coding unit and the coding unit generated by the second target original data unit related to the next sub-block is combined to generate the target coded data, ensuring that a sub-block corresponds to the generated coding unit and code The sub-units will not be lost
  • generating the target coded data according to the coding unit and the coding subunit may further include: coding subunits generated by coding the original data subunits divided by the original data unit in the first set in the first time unit , And, in the second time unit, the coding unit obtained by encoding the original data unit in the second set is combined to generate the target coded data.
  • the first set corresponds to the first time unit
  • the second set corresponds to the second time unit
  • the second time unit is not earlier than the first time unit; the first set includes at least one original data unit, the second set includes at least one original data unit, the original data unit contained in the first set and the second
  • the original data units contained in the set may be the same or different; for example, the first set may be a sliding window; in this embodiment, the encoding subunit is used as redundancy.
  • the encoding subunit is used as redundancy.
  • the encoding unit and the encoding subunit in the target encoded data can be transmitted through different transmission blocks.
  • the same transmission block will not carry both the encoding unit and the encoding subunit.
  • Carrying coding subunit; coding unit and coding subunit are respectively transmitted through coding unit transmission block and coding subunit transmission block to determine the type of current transmission block transmission.
  • This type includes coding unit transmission block and coding subunit transmission block, each The coding unit and the coding subunit of the coded data packet have index numbers that map to each other.
  • the coding unit transmission block is a transmission block used to transmit the coding unit
  • the coding subunit transmission block is a transmission used to transmit the coding subunit.
  • the corresponding coding unit and coding subunit are transmitted through different transmission blocks, which can prevent the coding unit and coding subunit of the same target coded data from being lost at the same time, and is used for the transmission of the transmission coding subunit
  • the coding subunit carried in the block has a small granularity, which can be better adapted and saves the spectrum resource of the transmission block of the coding subunit.
  • determining the type of the current transmission block transmission may include the following steps: first, initialize the first index sequence number of the coding unit and the second index sequence number of the coding subunit, and then carry multiple coding units, and update The first target index sequence number, the first target index sequence number is the maximum value of the first index sequence numbers corresponding to the already carried coding unit; or the second target index sequence number is updated when multiple coding subunits are carried, and the second target index sequence number is already The maximum value of the second index sequence number corresponding to the carried encoding subunit; determine 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, then the current transmission block is the encoding subunit The unit transmission block is used to carry the coding subunit.
  • the current transmission block is the coding unit transmission block, which is used to carry the coding unit; in this embodiment, the current time unit is determined Whether the corresponding transmission block carries the coding unit or the coding sub-unit, the size of the index sequence number of the coding unit that has been transmitted (or carried) and the index sequence number of the coding sub-unit can be compared to determine whether the transmission block carries the coding unit or the coding sub-unit.
  • the current transmission block when the index number of the coding unit is just greater than the index number of the coding subunit, the current transmission block carries the coding subunit, and when the index number of the coding subunit is just greater than or equal to the index number of the coding unit, the current transmission block carries the coding unit , It can well ensure that the coding unit and the coding sub-unit with the corresponding relationship have a lower time delay.
  • the header of the target coded data includes at least the data block identifier and the coding unit identifier corresponding to the coding unit, and optionally, the corresponding coding coefficient; the coding coefficient and the coding sub
  • the coding coefficients of the units can be the same or different.
  • the original data subunit includes a check field, and the check field is used for the receiving end to determine which original data subunit has an error after decoding the encoding subunit, and the error correction is more targeted.
  • the embodiments of the present application provide a communication device, which has the function of implementing the function performed by the sending end device of the first aspect described above; the function may be implemented by hardware or by hardware executing corresponding software; this
  • the hardware or software includes one or more modules corresponding to the above-mentioned functions.
  • an embodiment of the present application provides a communication device, including a processor, the processor is coupled with a memory, and the memory is used to store a program or instruction.
  • the program or instruction is executed by the processor, the device executes the above-mentioned The method of any one of the aspects.
  • the embodiments of the present application provide a computer-readable medium for storing a computer program or instruction.
  • the computer program or instruction executes the method described in any one of the above-mentioned first aspects.
  • the present application provides a chip system including a processor for supporting network devices to implement the functions involved in the above-mentioned first aspect, for example, sending or processing the data and data involved in the above-mentioned method. /Or information.
  • the chip system also includes a memory, and the memory is used to store the necessary program instructions and data of the network device.
  • the chip system can be composed of chips, and can also include chips and other discrete devices.
  • Figure 1 is an example diagram of a possible network coding
  • FIGS. 2(a) to 2(d) are schematic diagrams of several application scenarios in the embodiments of this application.
  • FIG. 3 is a schematic structural diagram of an example of target encoded data in an embodiment of the application.
  • FIG. 4 is a schematic flowchart of steps of an example of an encoding method in an embodiment of this application.
  • FIG. 5 is a schematic diagram of an embodiment of a protocol layer in an embodiment of the application.
  • FIG. 6 is a schematic diagram of an example of generating an encoding subunit based on encoding of an original data subunit in an original data unit in an embodiment of the application;
  • FIG. 7 is a schematic diagram of an example of generating coding subunits based on the coding of original data subunits between original data units in an embodiment of the present application
  • FIG. 8 is a schematic diagram of an example of generating coding subunits based on the coding of original data subunits between data blocks in an embodiment of the application;
  • Fig. 9(a) is a schematic diagram of an example of generating coding subunits by recursive coding between data blocks in an application embodiment
  • FIG. 9(b) is a schematic diagram of an example of generating coding subunits by non-recursive coding between data blocks in the application embodiment
  • FIG. 10 is a schematic diagram of an example of bitmap information in an application embodiment
  • FIG. 11 is a schematic diagram of another example of generating coding subunits based on the coding of original data subunits between data blocks in an application embodiment
  • Figures 12-13 are schematic diagrams of several examples of splicing modes of coding units and coding subunits in an application embodiment
  • Fig. 14(a) and Fig. 14(b) are schematic diagrams of several examples of splicing coding subunits and coding subunits after splitting in an application embodiment
  • 15 is a schematic diagram of an example in which a transmission block carries target coded data in an application embodiment
  • 16 to 20 are schematic diagrams of several examples of splicing coding units and coding subunits based on a time sequence relationship in an application embodiment
  • FIG. 21 is a schematic diagram of an example in which the coding unit and the coding subunit are respectively carried on different transmission blocks for transmission in the application embodiment;
  • FIG. 22 is a schematic flowchart of an example of a method in which a transport block carries an encoding unit or an encoding subunit in an application embodiment
  • FIG. 23 is a schematic flowchart of another example method in which a transport block carries an encoding unit or an encoding subunit in an application embodiment
  • Figure 24 (a) is a schematic diagram of an example of decoding coding units and coding subunits in an embodiment of the application;
  • FIG. 24(b) is a schematic diagram of another example of decoding coding units and coding subunits in an embodiment of this application.
  • FIG. 25 is a schematic structural diagram of an example of a communication device in an embodiment of the application.
  • FIG. 26 is a schematic structural diagram of another example of a communication device in an embodiment of this application.
  • the embodiments of the present application provide an encoding method, which can be applied to a communication system, which includes but is not limited to a fourth generation (4th generation, 4G) communication system, a 4.5G communication system, and a 5G communication system, 5.5G communication system, 6G communication system, a system that integrates multiple communication systems, or a communication system that will evolve in the future.
  • a communication system which includes but is not limited to a fourth generation (4th generation, 4G) communication system, a 4.5G communication system, and a 5G communication system, 5.5G communication system, 6G communication system, a system that integrates multiple communication systems, or a communication system that will evolve in the future.
  • LTE long-term evolution
  • NR new radio
  • WiFi wireless-fidelity
  • 3GPP 3rd generation partnership project
  • the communication system can be applied to a variety of communication scenarios, such as point-to-point transmission between network equipment and terminals, point-to-point transmission between terminals, and transmission between network equipment and terminals through relay transmission points. Scenarios such as dual connectivity (DC) or multiple connections between multiple network devices and terminals.
  • Figure 2(a)- Figure 2(d) shows the application scenario of a point-to-point single connection, that is, a connection is directly established between the network device 201 and the terminal 202
  • Figure 2(b) Shows the application scenario of multi-hop single connection, that is, the application scenario of single connection between the network device 201 and the terminal 202 through multiple relay transmission points.
  • Figure 2(c) shows the terminal 202 and 2 network devices.
  • Figure 2(d) shows the application scenario where the terminal 202 and the network device 201 are dual connected through two relay transmission points. It should be noted that Figure 2(a)- Figure 2(d) ) Shows only exemplary application scenarios of the present application, and is not a limitation.
  • the network device can be any device that has a wireless transceiver function. Including but not limited to: evolved base station in LTE (NodeB or eNB or e-NodeB, evolutional NodeB), base station in NR (gNodeB or gNB) or transmission receiving point/transmission reception point (TRP), 3GPP Subsequent evolution of base stations, access nodes in the WiFi system, wireless relay nodes, wireless backhaul nodes, etc.
  • the base station can be: a macro base station, a micro base station, a pico base station, a small station, a relay station, or a balloon station, etc. Multiple base stations can support networks of the same technology mentioned above, or networks of different technologies mentioned above.
  • the base station can contain one or more co-site or non-co-site TRPs.
  • the network device may also be a wireless controller, a centralized unit (CU), and/or a distributed unit (DU) in a cloud radio access network (CRAN) scenario.
  • the network device can also be a server, a wearable device, a machine communication device, or a vehicle-mounted device, etc.
  • the following description takes the network device as a base station as an example.
  • the multiple network devices may be base stations of the same type, or base stations of different types.
  • the base station can communicate with the terminal equipment, and it can also communicate with the terminal equipment through the relay station.
  • the terminal device can communicate with multiple base stations of different technologies.
  • the terminal device can communicate with a base station that supports an LTE network, can also communicate with a base station that supports a 5G network, and can also support communication with a base station of an LTE network and a base station of a 5G network. Double connection.
  • a terminal is a device with wireless transceiver function, which can be deployed on land, including indoor or outdoor, handheld, wearable or vehicle-mounted; it can also be deployed on the water (such as ships, etc.); it can also be deployed in the air (such as airplanes, balloons, etc.) And satellite class).
  • the terminal may be a mobile phone (mobile phone), a tablet computer (Pad), a computer with wireless transceiver function, virtual reality (VR) terminal equipment, augmented reality (AR) terminal equipment, industrial control (industrial control) Control), in-vehicle terminal equipment, unmanned driving (self-driving) terminal, assisted driving terminal, remote medical (remote medical) terminal, smart grid (smart grid) terminal, transportation safety ( Terminals in transportation safety, terminals in smart cities, terminals in smart homes, etc.
  • VR virtual reality
  • AR augmented reality
  • industrial control industrial control
  • in-vehicle terminal equipment unmanned driving (self-driving) terminal
  • assisted driving terminal remote medical (remote medical) terminal
  • smart grid (smart grid) terminal smart grid (smart grid) terminal
  • transportation safety Terminals in transportation safety, terminals in smart cities, terminals in smart homes, etc.
  • the embodiments of this application do not limit the application scenarios.
  • Terminals can sometimes be referred to as terminal equipment, user equipment (UE), access terminal equipment, vehicle-mounted terminal, industrial control terminal, UE unit, UE station, mobile station, mobile station, remote station, remote terminal equipment, mobile Equipment, UE terminal equipment, wireless communication equipment, machine terminal, UE agent or UE device, etc.
  • the terminal can be fixed or mobile.
  • the terminal may be a wearable device.
  • Wearable devices can also be called wearable smart devices. It is a general term for using wearable technology to intelligently design everyday wear and develop wearable devices, such as glasses, gloves, watches, clothing and shoes.
  • a wearable device is a portable device that is directly worn on the body or integrated into the user's clothes or accessories. Wearable devices are not only a kind of hardware device, but also realize powerful functions through software support, data interaction, and cloud interaction.
  • wearable smart devices include full-featured, large-sized, complete or partial functions that can be achieved without relying on smart phones, such as smart watches or smart glasses, and only focus on a certain type of application function, and need to cooperate with other devices such as smart phones.
  • the terminal may be a terminal in the Internet of Things (IoT) system.
  • IoT Internet of Things
  • MTC machine type communication
  • the terminal of the present application may be an in-vehicle module, an in-vehicle module, an in-vehicle component, an in-vehicle chip, or an in-vehicle unit that is built into a vehicle as one or more components or units.
  • On-board chip or on-board unit can implement the method of this application. Therefore, the embodiments of the present application can be applied to the Internet of Vehicles, such as vehicle to everything (V2X), long term evolution vehicle (LTE-V), and vehicle to vehicle (V2V). Wait.
  • V2X vehicle to everything
  • LTE-V long term evolution vehicle
  • V2V vehicle to vehicle
  • the execution subject of the method may be a sending end device, and the sending end device may be a network device (such as a base station) or a terminal (such as a UE).
  • the execution subject of the method may be a processor, a chip, or a chip system in a network device.
  • the execution subject of the method may be a processor, a chip, or a chip system in the terminal, which is not specifically limited.
  • FIG. 3 is a schematic diagram of the target encoding data structure in the embodiment of the present application.
  • the sending end device obtains the original data unit, and then splits the obtained original data unit 301, and divides the original data unit 301 into multiple original data sub-units 302. Then, the original data unit 301 and the multiple original data units are separately
  • the data subunit 302 performs encoding. Encode the original data unit 301 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.
  • the size is the same as the size of the original data subunit 302.
  • the target encoded data 305 is further generated according to the encoding unit 303 and the encoding sub-unit 304, that is, the target encoded data 305 includes two parts: the encoding unit 303 and the encoding sub-unit 304.
  • the encoding sub-unit 304 can be understood as including redundancy. More information.
  • the size of the redundant information generated in the traditional network coding technology is the same as the size of the original data unit before encoding, and the size of the redundant information in the embodiment of this application is determined by the size of the encoding subunit 304, which is smaller than the size of the encoding subunit 304.
  • the size of the original data unit 301 is the size of the encoding subunit 304, which is smaller than the size of the encoding subunit 304.
  • size() represents the measurement of the size of the data unit
  • the size of the original data unit 301 is represented by size(d)
  • the size of the coding unit 303 is represented by size(s)
  • the size of the coding unit 303 is equal to that of the original data unit 301.
  • the size is the same, so it can also be represented by size(d)
  • the size of the encoding subunit 304 is represented by size(p), where size(p) ⁇ size(d)
  • the size of the redundant information in the embodiment of the application is reduced Is small, which significantly reduces the redundant information overhead, and the size of the encoding subunit 304 is no longer the same as the size of the original data unit 301.
  • the code rate in this application will be approximately expressed as: It can be seen from this formula that the code rate can be adjusted by adjusting the value of n and the size (p) of the encoding subunit 304. The adjustment of the code rate will be more flexible, with more values and finer granularity.
  • the coding method in this application can better adapt to spectrum resources and save overhead.
  • the execution subject of the encoding method in the embodiment of the present application may be a sending end device, and the sending end device may be a network device (such as a base station) or a terminal (such as a UE). Or the execution subject of the method may be a processor, a chip, or a chip system in a network device. Or the execution subject of the method may be a processor, a chip or a chip system in the terminal.
  • the encoding method may include the following steps:
  • Step 401 The sending end device obtains the original data unit.
  • “Original data” is the data to be encoded
  • “data unit” can be a data packet, data segment, data message or data frame, etc.
  • the original data unit can be understood as the original data packet.
  • the original data unit may be data received by the sending end device from the opposite end.
  • the original data unit may come from the same link, or the original data unit may also come from different links.
  • the original data unit may be data generated by the sending end device, that is, data to be sent by the sending end device to the opposite end.
  • the network protocol layer includes a network coding layer with a network coding function, and coding-related methods can be executed on the network coding layer.
  • the network coding layer can be the radio link control (RLC) layer, the packet data convergence protocol (PDCP) layer, or the media access control (MAC) layer.
  • RLC radio link control
  • PDCP packet data convergence protocol
  • MAC media access control
  • a network coding layer can be added above the PDCP layer; or, a network coding layer can be added between the PDCP layer and the RLC layer, or, between the RLC layer and the MAC layer Add a network coding layer between, or add a network coding layer between the MAC layer and the PHY layer; or the network coding layer can be the backhaul adaptation in the integrated access and backhaul (IAB) architecture (backhaul adaptation protocol, BAP) layer, or add a network coding layer on top of the BAP layer in the IAB architecture.
  • the network coding layer may receive the original data unit issued by the upper protocol layer. For example, if the network coding layer is the RLC layer, the RLC layer may receive the original data unit issued by the PDCP layer.
  • Step 402 The sending end device splits the original data unit to obtain a set of original data subunits.
  • the original data unit is divided, the original data unit is divided into a plurality of original data sub-units, and the set includes a plurality of original data sub-units.
  • the number of the original data unit is multiple, and the first target original data unit among the multiple original data units is split to obtain a subset corresponding to the first target original data unit.
  • the first target original data unit is at least one original data unit among the multiple original data units. It can be understood that at least one original data unit among the multiple original data units is split, and each split original data unit The unit corresponds to a subset, and each subset includes a plurality of original data sub-units, and the set of original data sub-units includes the subset.
  • the number of original data units is K, that is, the original data units include (d 1 , d 2 ,...d K ), and the size of each data unit is nbit.
  • an original data unit is equally divided into Sub-units, where the size of each original data sub-unit is a bit, where a ⁇ [1, n], a total of A sub-unit of original data.
  • the collection includes A sub-unit of original data.
  • D 1 to d 11 and d 12 is divided into two sub-units of the original data
  • d 1 comprises a corresponding subset and a d 11 d 12
  • d 21 to d 2 and d 22 is divided into two sub-units of the original data
  • d 2 corresponding to d 21 and contains a subset d 22
  • d 3 to d 31 and d 32 is divided into two sub-units of the original data
  • d 3 comprises a corresponding subset and a d 32 d 31
  • d 41 to d 4 and d 42 into which Two original data subunits, the sub-set corresponding to d 4 contains d 41 and d 42
  • the set of original data sub-units includes d 11 , d 12 , d 21 , d 22 , d 31 , d 32 , d 41 and d 42
  • the set of original data sub-units includes d 11 , d 12 , d 21 , d 22
  • Step 403 The sending end device encodes the original data unit to generate an encoding unit, and encodes multiple original data subunits in the set to generate an encoding subunit.
  • the original data unit can be coded by coding methods such as block coding, linear coding, random linear network coding, etc., to obtain coding units.
  • multiple original data units and coding coefficients can be multiplied and accumulated to obtain multiple coding units.
  • the specific number of original data units and the specific number of coding units are not limited.
  • the number of original data units may be greater than, or equal to, or less than the number of coding units, and the relationship between the number of original data units and the number of coding units is determined by the selected coding coefficient.
  • the number of original data units and the number of coding units are the same as an example for description, that is, K original data units are coded to obtain K coding units.
  • (d 1 , d 2 , d 3 , d 4 ) is encoded to obtain (s 1 , s 2 , s 3 , s 4 ).
  • the multiple original data subunits in the set are encoded, and the multiple original data subunits may be part of the original data subunits in the set, or may be all the original data subunits in the set. Encoding multiple original data subunits in the set can obtain at least one coding subunit. For the convenience of description, take the same number of coding subunits and the same number of coding units as an example, that is, K coding subunits are also obtained.
  • (d 11 , d 12 , d 21 , d 22 , d 31 , d 32 , d 41 and d 42 ) can be coded to obtain (p 1 , p 2 , P 3 , p 4 ) these four coding subunits; in another example, (d 11 , d 21 , d 31 , d 41 ) can also be coded to obtain (p 1 , p 2 , p 3 , p 4 )
  • the specific coding method is not limited.
  • Step 404 The sending end device generates target encoded data according to the encoding unit and the encoding subunit.
  • the coding unit and the coding subunit are spliced to obtain the target coded data.
  • the target coded data includes 3 coded data packets; the coding unit s 1 and the coding subunit p 1 are spliced to obtain the first coded data packet; the coding unit s 2 and the coding subunit p 2 are spliced to obtain the second coded data packet Splicing the coding unit s 3 and the coding subunit p 3 to obtain the third coded data packet;
  • the coded data packet includes a header, the header includes indication information, and the indication information is used to indicate that the coding subunit and the The corresponding relationship of the original data unit.
  • the indication information in the first encoded data packet is used to indicate: the encoding subunit p 1 corresponds to the original data subunits d 11 and d 12 , that is, p 1 is obtained by encoding d 11 and d 12 ; the second encoded data packet The indication information in is used to indicate: the coding subunit p 2 corresponds to the original data subunits d 21 and d 22 , that is, p 2 is obtained by coding d 21 and d 22 ; the indication information in the third coded data packet is used to indicate : The coding subunit p 3 corresponds to the original data subunits d 31 and d 32 , that is, p 3 is obtained by coding d 31 and d 32. The indication information in the fourth encoded data packet is used to indicate: the encoding subunit p 4 corresponds to the original data subunits d 41 and d 42 , that is, p 4 is obtained by encoding d 41 and d 42.
  • Step 405 The sending end device outputs the target encoded data.
  • the sending end device sends the target coded data to the receiving end device, for example, the terminal sends the target coded data to the base station; or the network coding layer outputs the target coded data to the lower protocol layer of the network coding layer, for example, as shown in FIG.
  • the network coding layer is the RLC layer, and the RLC layer outputs the target coded data to the MAC layer.
  • the coding method provided in the embodiments of the present application breaks the coding generation mode of the traditional network coding scheme in which data units are used as a unit, and further provides a network coding method that is lower than the granularity of data units.
  • the coding method has the following advantages: 1) By dividing the original data unit into smaller subunits, and then encoding the original data subunit as the unit to obtain the coding subunit (the coding subunit can be regarded as redundant information), by Adjusting the size of the coding subunit ensures a more flexible code rate to adapt to transmission resources. 2) Directly splicing coding subunits after one coding unit, compared with the traditional technology, reduces the time delay caused by decoding the redundant information at the end after receiving a set of coding packets.
  • the coding method in the example can be decoded in advance compared to the traditional network coding method.
  • the location of the error in the original data unit and the number of error bits are random and uncertain.
  • the erased or erroneous packets can be recovered at the granularity of the encoding subunit, and there is no need to retransmit the encoded packets to recover the erroneous data like the traditional technology. , Thereby saving spectrum resources.
  • step 403 the multiple original data subunits in the set are coded, and possible methods for generating coded subunits are described in detail.
  • step 403 is a schematic diagram of generating coding subunits in a data unit in an embodiment of this application. Encoding is performed on a plurality of original data subunits in a subset, and at least one encoding subunit corresponding to the subset is generated.
  • the original data unit (d 1 , d 2 ,...d K ) belongs to the same data block, and the original data unit is divided into Each original data unit corresponds to a sub-set.
  • the original data unit d 1 corresponds to a sub-set, and the sub-set includes multiple original data sub-units, and the multiple original data sub-units are (d 1- 1 ,d 1-2 ,...d 1-n/a ).
  • the subset corresponding to the original data unit d 2 includes multiple original data subunits (d 2-1 , d 2-2 ,...d 2-n/a ), and the original data unit d K corresponds to The multiple original data subunits included in the subset are (d K-1 , d K-2 ,...d Kn/a ).
  • Encoding is performed in the unit of a subset, that is, multiple original data subunits contained in the subset are encoded to obtain at least one encoding subunit.
  • K represents the number of original data units
  • M represents the number of coding subunits
  • n represents the size of the original data unit
  • a represents the size of the original data subunit. Represents the number of original data subunits divided into the original data unit, a ⁇ [1,n].
  • p 1-1 can represent at least one coding subunit.
  • p 1-1 can be understood as an equivalent coding subunit. For example, encoding at least two original data subunits in the subset (d 1-1 , d 1-2 ,...d 1-n/a ) to obtain 2 coding subunits, in the first understanding
  • p 1-1 represents 2 coding subunits, and the size of each coding subunit is the same as 1 original data subunit; in the second understanding mode, p 1-1 represents 1 equivalent coding subunit
  • the unit is composed of two coding subunits to form an equivalent coding subunit, and the corresponding granularity is different.
  • p 1-1 is the same as the size of the two original data units.
  • p 1-1 and p 1-2 to p 1-M can be understood with reference to p 1-1 , which will not be described in detail below.
  • a coding subunit is obtained by encoding multiple original data subunits in a subset.
  • a coded data packet is composed of a coding unit corresponding to an original data unit and a coding subunit corresponding to the original data unit. It is obtained that if part of the data of the coding unit is lost or error during transmission, the receiving end can recover the corresponding original data unit through the remaining data of the coding unit and the coding sub-unit, without the need to re-send the code with the traditional network coding method.
  • Data packets saving overhead, while ensuring a more flexible code rate.
  • FIG. 7 is a schematic diagram of generating coding subunits between data units in an embodiment of this application. Encoding the original data subunits in at least two of the plurality of subsets to generate at least one encoding subunit.
  • the original data unit (d 1 , d 2 ,...d K ) belongs to the same data block, and the original data unit is divided into Original data sub-units, each data unit corresponds to a sub-set, for example, the first original data unit d 1 corresponds to a sub-set, the sub-set includes multiple original data sub-units, and the multiple original data sub-units are (d 1-1 , d 1-2 ,...d 1-n/a ).
  • the subset corresponding to the original data unit d 2 includes multiple original data subunits (d 2-1 , d 2- 2 ,...d 2-n/a ), the subset corresponding to the K-th original data unit d K includes multiple original data subunits (d K-1 ,d K-2 ,...d Kn /a ).
  • network coding is selectively performed within the range of all original data subunits of a single data block; for example, the original data subunits d 1-1 and d 2-1 are coded to obtain coding subunit p 1- 1 ; encode the original data subunits d 1-2 and d 2-2 to obtain the coding subunit p 1-2 ; encode d 2-n/a and d Kn/a to obtain the coding subunit p 1- M. It is understandable that, in this embodiment, at least two original data subunits corresponding to the coding subunit p 1-1 are included in different subsets, but each original data subunit is specifically included in which subset. Limited, the above description is only exemplary and not limiting.
  • the original data subunits with the same position are selected from the at least two subsets to perform coding to generate at least one coding subunit, that is, coding according to a certain rule to generate the coding subunit. For example, select the first original data sub-unit corresponding to each original data unit from the first original data unit d 1 to the K-th original data unit d K (such as d 1-1 , d 2-1 ,..., d K-1 ) is encoded to obtain p 1-1 ; select the second original data subunit corresponding to each original data unit in d 1 to d K (such as d 1-2 , d 2-2 ,..., d K- 2 ) Perform encoding to obtain p 1-2 , and so on.
  • select the first original data sub-unit corresponding to each original data unit from the first original data unit d 1 to the K-th original data unit d K (such as d 1-1 , d 2-1 ,..., d K-1 ) is encoded to obtain p
  • the encoding subunit is generated by encoding the original data subunits corresponding to at least two original data units. If part of the data of the encoding unit (for example, corresponding to the original data unit d1) is lost or erroneous during transmission, the receiver The end uses all coding subunits related to the missing or erroneous part of data, and other original data subunit information corresponding to all the related coding subunits (such as other original data subunit information has been successfully decoded, or through multiple The coding subunits are jointly decoded) and decoded to restore the corresponding original data unit.
  • this embodiment can make the coding subunit cover larger original data unit information, namely The coding subunit has a larger error correction range.
  • the coded data packet is re-sent, which saves data overhead and ensures a more flexible code rate.
  • the corresponding original data subunits can be decoded in advance, that is, it is not necessary to decode the coded subunits after receiving all the coded data units.
  • the unit can be decoded in advance, which can improve the time delay.
  • FIG. 8 is a schematic diagram of generating coding subunits between data blocks in an embodiment of this application.
  • the multiple original data subunits are included in multiple data blocks; the original data subunits in at least two data blocks of the multiple data blocks are encoded to generate at least one encoding subunit.
  • the number of data blocks is R
  • each data block contains K original data units
  • one original data unit corresponds to a subset
  • the subset includes A sub-unit of original data.
  • network coding is selectively performed within the range of all original data subunits corresponding to at least two data blocks.
  • the original data subunits with the same position are selected in the at least two data blocks to perform coding to generate at least one coding subunit, that is, coding according to a certain rule to generate the coding subunit.
  • the first original data unit d 1 to the K-th original data unit d K is selected from the at least two data blocks, and the first original data sub-unit corresponding to each original data unit (such as d 1-1 , d 2-1 ,..., d K-1 ) for encoding to obtain p 1-1 ; select the second original data subunit corresponding to each original data unit from d 1 to d K (such as d 1-2 , d 2- 2 ,..., d K-2 ) is encoded to obtain p 1-2 , and so on.
  • the encoding subunit is generated by encoding the original data subunits corresponding to at least two data blocks. If the encoding unit (for example, corresponding to the original data unit d1 in the first data block) is part of the data during transmission, Loss or error, the receiving end uses all coding subunits related to the missing or erroneous part of the data, and other original data subunit information corresponding to all the related coding subunits (such as other original data subunit information has been successfully decoded) , Or obtained through joint decoding of multiple coding subunits) for decoding to restore the corresponding original data unit.
  • the encoding unit for example, corresponding to the original data unit d1 in the first data block
  • the receiving end uses all coding subunits related to the missing or erroneous part of the data, and other original data subunit information corresponding to all the related coding subunits (such as other original data subunit information has been successfully decoded) , Or obtained through joint decoding of multiple coding subunits
  • this embodiment can enable the coding subunit to include a larger range of The original data unit information, that is, the coding subunit has a larger error correction range.
  • the coded data packet is re-sent, which saves data overhead and ensures a more flexible code rate.
  • the corresponding original data subunits can be decoded in advance, that is, it is not necessary to decode the coded subunits after receiving all the coded data units, but through the relevant coding
  • the sub-unit can be decoded in advance, which can improve the time delay.
  • the at least two data The coding subunit in the block is coded, that is, it can be understood as joint coding of at least two data blocks.
  • the joint mode of data blocks includes recursive mode and non-recursive mode.
  • X can be understood as joint depth. The joint depth means that all original data sub-units corresponding to X data blocks are used as joint units. Part or all of the original data subunits in the joint unit are coded to obtain coded subunits.
  • X data blocks are used as joint units, and the data blocks recursively overlap.
  • the joint methods between the data blocks within each joint unit can be combined arbitrarily .
  • the original data subunits corresponding to the first data block to the Xth data block are encoded. For example, if X is 3, in an example, the original data subunit in the first data block is encoded to obtain the encoding subunit, and the original data corresponding to the two data blocks of the first data block and the second data block The sub-units are encoded to obtain an encoding sub-unit, and the original data sub-units corresponding to the three data blocks from the first data block to the third data block are encoded to obtain the encoding sub-unit.
  • X data blocks are a joint unit, and the corresponding original data sub-units inside the joint unit can be combined arbitrarily.
  • the original data blocks corresponding to the first data block and the third data block can be used
  • the data subunit is encoded to obtain an encoding subunit, or the original data subunits corresponding to the two data blocks of the second data block and the third data block are encoded to obtain the encoding subunit.
  • R is greater than X
  • from the second data block to the (X+1)th data block is a joint unit, that is, the X data blocks corresponding to the second data block to the (X+1)th data block Encoding the original data subunit of the data block to obtain the encoding subunit;
  • the X data blocks are a joint unit, that is, the third data block to the (X +2)
  • the original data subunits corresponding to the X data blocks are coded to obtain the coding subunit; and so on.
  • the original data subunits corresponding to the 3 data blocks from the second data block to the fourth data block are encoded to obtain the encoding subunit; from the third data block
  • the original data subunits corresponding to the three data blocks to the fifth data block are encoded to obtain the encoding subunit, and so on.
  • one data block is recursively performed for joint coding at a time only for illustration, and any number of data blocks may be recursively performed for joint coding at a time, and the specifics are not limited.
  • the first data block to the third data block are a joint unit
  • the fourth data block to the sixth data block are a joint unit.
  • the first data block Encode the original data subunits corresponding to the 3 data blocks to the 3rd data block to obtain the encoding subunit, and encode the original data subunits corresponding to the 3 data blocks from the 4th data block to the 6th data block to obtain Encoding subunit.
  • R data blocks include multiple joint units, and each joint unit includes X data blocks, and there is no overlap between the data blocks among the multiple joint units. It is understandable that X data blocks It is a coding range, which is relatively small compared to the previous recursive mode, but the decoding delay is also small.
  • the instruction information included in the header of the target encoded data will be described below.
  • the instruction information is used to indicate the correspondence between the encoding subunit and the original data unit.
  • the indication information includes bitmap information, and the bitmap information is used to indicate that the encoded data subunit corresponds to the positions of the multiple original data subunits. relation.
  • bitmap corresponding to all the original data subunits that is, the length is
  • a bitmap of bits represents whether each original data subunit participates in encoding. According to the indication of "0" or "1" in the bitmap, a total of m original data subunits participate in encoding, and correspond to m original data subunits participating in encoding.
  • Each data block includes 3 original data units (d 1 , d 2 , d 3 ), each original data unit is divided into 2 original data sub-units, that is, d 1 is divided into two d 1-1 and d 1-2
  • the original data subunit divide d 2 into two original data subunits, d 2-1 and d 2-2 , and divide d 3 into two original data subunits, d 3-1 and d 3-2 , and the two data blocks correspond to each other.
  • the bitmap of the original data subunit is 12 bits in total, and each bit corresponds to an original data subunit.
  • Each bit uses “1” or “0” to identify whether the corresponding original data subunit participates in encoding, for example, "1” means participating in coding, and "0" means not participating in coding.
  • the second original data subunit corresponding to the first original data unit in the first data block corresponds to the second original data unit in the first data block
  • the first original data subunit corresponding to the second original data unit in the second data block is encoded to generate an encoding subunit p 1-1 .
  • p_vec 1 represents the sequence number vector of the data block
  • b num represents the sequence number of the data block
  • p_vec 2 represents the sequence number vector of the original data unit, and p num represents the sequence number of the original data unit to which the original data subunit belongs;
  • p_vec 3 represents the sequence number vector of the original data subunit
  • sp num represents the sequence number of the original data subunit in the original data unit
  • a total of m original data subunits participate in encoding.
  • the indication information carried in the header of the target coded data is different for different situations.
  • the first case the number of coding subunits corresponding to each original data unit is the same.
  • each original data unit corresponds to 1 coding subunit, or each original data unit corresponds to 2 coding subunits, and so on.
  • the second case the number of coding subunits corresponding to each original data unit is not the same.
  • the first original data unit corresponds to 1 coding subunit (such as p 1-1 ), and the second original data unit corresponds to 3 coding subunits (such as p 1-2 , p 1 -3 , p 1-4 ), etc.
  • the number of coding subunits corresponding to each original data unit is only an example and is not a limitation.
  • the indication information is p_vec 3 , through p_vec 3, it is possible to indicate which original data subunits each coding subunit is coded and generated.
  • the coding subunit p 1-1 corresponds to the original data unit d 1
  • the coding subunit p 1-2 corresponds to the original data Unit d 2
  • the original data subunit corresponding to p 1-1 is the first, second and third original data subunits in the original data unit d 1 (ie, d 1-1 , d 1- 2 , d 1-3 ).
  • the original data subunit corresponding to p 1-2 is: the first in the subset corresponding to d 2
  • the second original data subunit ie d 2-1 , d 2-2 ).
  • the indication information includes p_vec 3 and 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 by the number of coding subunits corresponding to each original data unit.
  • the first indication information indicates a number of original data units d 1 corresponding coding sub-unit is 1, can be coding subunit p 1-1 correspond to a first original data unit d 1, further, Through p_vec 3 , it can be indicated which original data subunits in d 1 corresponding to p 1-1 participate in encoding.
  • the indication information indicates that the number of coding subunits corresponding to the second original data unit d 2 is three, and the three coding subunits p 1-2 , p 1-3 , and p 1-4 can be set.
  • One coding subunit corresponds to the second original data unit d 2.
  • each of the three coding subunits p 1-2 , p 1-3 and p 1-4 can correspond to one p_vec 3 ,
  • the coding subunit can indicate which original data subunits corresponding to d 2 participate in coding through p_vec 3.
  • the unit participates in encoding p 1-3.
  • the indication information includes p_vec 3 and p_vec 2 .
  • the indication information includes p_vec 3 and p_vec 2 .
  • the indication information is used to indicate the position of the original data subunit that generates the coding subunit in the corresponding original data unit, and Describe the location of the corresponding original data unit.
  • the position of the original data subunit that generates the coding subunit in the corresponding original data unit may be represented by p_vec 3
  • the position of the corresponding original data unit may be represented by p_vec 2 .
  • the indication information is used to indicate: the position of the original data subunit for generating the encoding 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.
  • the position of the original data subunit that generates the encoding subunit in the corresponding original data unit can be represented by p_vec 3 ;
  • the position of the corresponding original data unit in the corresponding data block can be represented by p_vec 2 ;
  • the location of the corresponding data block can be represented by p_vec 1 .
  • the p 2-1 by: a first data block of one unit of the original data d 1 corresponding to the second original data subunit d 1-2, and the second data blocks the second original data unit d 2 corresponding to the third sub-unit of original data obtained by coding d 2-3.
  • each b num has a fixed length The number of bits, where R is the number of data blocks, and the symbol Indicates rounding up. If there are m original data subunits involved in coding, the length of p_vec 1 totals Bits; in the same way, each p num has a fixed length The number of bits represents, where K is the number of original data units, then the length of p_vec 2 totals Bits; each sp num has a fixed length The number of bits represents, among them, Is the number of original data subunits, then the length of p_vec 3 totals Bits.
  • each of b num, p num, sp num number of bits represented by a variable length according to the size of the value in order to ensure that each may recognize each other between two b-num, every need
  • a fixed b-bit interval symbol is added between the two b nums for distinction.
  • a fixed b-bit interval symbol is added between every two p nums
  • a fixed b-bit interval symbol is added between every two sp nums for distinction, where b is a positive integer.
  • the indication information may be a position identifier, and each coding subunit corresponds to a position.
  • logo For example, select the first original data subunit corresponding to each original data subunit from the first original data unit d 1 to the Kth original data unit d K (such as d 1-1 , d 2-1 ,..., d K-1 ) Perform coding to obtain p 1-1 , and the indication information corresponding to the coding subunit p 1-1 is the position identifier "1".
  • select the second original data subunit corresponding to each original data subunit in the first original data unit d 1 to the Kth original data unit d K (such as d 1-2 , d 2-2 ,..., d K-2 ) is encoded to obtain p 1-2 , then the indication information corresponding to the encoding subunit p 1-2 is that the position identifier is "2".
  • the indication information is bitmap information
  • the bitmap can be used to directly indicate which original data subunits corresponding to the positions participate in encoding, and in some application scenarios, such as for a coding subunit, participate in the encoding.
  • the number of original data subunits coded by the subunit is large or the position of the original data subunit lacks regularity.
  • the bitmap is characterized by a more general indication mode, and the indication information overhead is relatively small.
  • the indication information indicates which original data subunits participate in encoding through a position indication (such as a sequence number vector).
  • the number of original data subunits participating in the coding of the coding subunit is small, or the position of the original data subunit has regularity (for example, for each original data unit corresponding to the first one
  • the original data subunit is encoded
  • the indication information overhead is relatively small.
  • which of the foregoing possible implementation modes is used for the indication information may be determined according to the application scenario.
  • the following describes possible methods of generating target coded data according to the coding unit and the coding subunit in step 404.
  • step 404 all or part of the data in the coding unit and the coding subunit is spliced to generate the target coded data.
  • splicing means to connect two things together. In the embodiment of this application, all or part of the data in the coding unit and the coding subunit are connected together. Based on this semantics, the embodiment of this application The “splicing” is not limited to only “splicing” as a semantic expression. The “splicing” can also be replaced with words such as “cohesion”, “connection”, “series connection”, “series connection”, “combination” and so on.
  • the number of coding units is g, and the number of coding subunits is M, and the g and M are both positive integers.
  • each of the g coding units is combined with any integer number of coding subunits less than or equal to M, and the coding units and the combined coding subunits are spliced to obtain g coded data packets, the target coded data It includes g encoded data packets, and the header of each encoded data packet carries indication information corresponding to the encoding subunit.
  • the number of coding units is g, and the number of coding subunits is M.
  • M c ⁇ g, where c is greater than or equal to 1.
  • Integer that is, the number of coding subunits is c times the number of coding units.
  • 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 each coded data packet has the same size.
  • the number of coding units is g
  • the number of coding subunits is M
  • the g and M are both positive integers; one coding unit can be combined with any number
  • the encoding subunits of are combined to obtain g encoded data packets
  • the target encoded data includes the g encoded data packets.
  • the first coding unit may not be connected to the coding sub-unit
  • the second coding unit may be connected to 1 coding sub-unit
  • the third coding unit may be connected to 1 coding sub-unit
  • the fourth coding unit may be connected to 2 Coding subunits, etc.
  • the data of coding subunits that can be connected by one coding unit is not limited.
  • the size of the g coded data packets included in the target coded data may also be different.
  • part of the data of the coding unit and the coding subunit is spliced.
  • the coding sub-unit is further divided to satisfy Among them, size(p) represents the size of a coding subunit p, q represents that the data of a coding subunit is further divided into q subparts, and the data size of the i-th part is l i .
  • the coding sub-units can be divided equally according to the number of coding units, and each coding unit can be connected with an equal number of sub-parts, for example, the number of coding units is 4 , Split the data of the coding sub-unit into 4 sub-parts, each sub-part can be connected to a coding unit, and each coding unit is connected to the partial data of a sub-part of the coding sub-unit.
  • the coding sub-unit is divided into q sub-parts on average, and each coding unit can be spliced with any number of sub-parts.
  • a coding subunit can be divided into 3 subparts on average, the subparts may not be spliced after the first coding unit, and each coding unit in the second, third and fourth coding units is connected to 1. Subsections. It is understandable that if the first coding unit does not need to be spliced sub-parts, each coding unit in the second, third and fourth coding units only concatenates partial data of one coding sub-unit. In this implementation manner, the coding subunit is further divided into smaller granularity, which can achieve a more flexible code rate. It should be noted that, referring to FIG. 14(b), the splitting manner of the encoding subunit is only exemplary and not limiting.
  • the header of the encoded data packet also needs to carry index information corresponding to the connected subparts.
  • the index information is used to combine each encoding subunit with Correspondence is established between multiple sub-parts that are split.
  • the above three possible implementations in this embodiment can ensure that multiple coding units are more adapted to the size of the transport block (TB), because the coding unit sizes of different coded data packets are all Similarly, the size of the header of the encoded data packet is also the same.
  • the combination strategy of the encoding unit and the encoding subunit can be used to ensure that the size of the first few encoded data packets are the same, and the last encoded data packet can be adjusted by adjusting the size of the encoding subunit (such as Split a coding subunit, or accumulate multiple coding subunits) to ensure alignment with the size of the remaining resources in the transmission block to save transmission resources; if it cannot be completely aligned, you can align by adding "0" to make up " The overhead of 0" is very small, saving overhead.
  • the size of the coding subunits concatenated by each coding unit is different, that is, p 1 , p 2 and p 3 can all be different from each other to align the size of the TB.
  • a coding subunit may be included in the last coded data packet, combined with "0" to ensure that the size of the coded data packet and the TB are the same, so as to save transmission resources.
  • the foregoing embodiment is an embodiment that does not consider the timing relationship between the transmitted data, the combination of the encoding unit and the encoding sub-unit, but in some scenarios, such as the multi-hop scenario, the data arrives sequentially, or the convolutional network coding scheme
  • step 404 the possibility of generating target coded data according to the coding unit and the coding subunit is The realization method is explained.
  • the original data unit includes at least 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 first data block.
  • the original data unit is contained in the second data block.
  • the coding subunit corresponding to the first original data unit and the coding unit corresponding to the second original data unit are spliced to generate the target coded data.
  • each data block contains multiple original data units, such as the first data block to the third data block, each data block contains 4 original data units, the first data block Contains the 4 original data units d 1 , d 2 , d 3 and d 4 , the second data block contains the 4 original data units d 5 , d 6 , d 7 and d 8 , and the third data block contains d 9 , d 10 , d 11 and d 12 .
  • the first original data unit is at least one original data unit in the first data block
  • the second original data unit is at least one original data unit in the second data block.
  • the target coded data includes multiple coded data packets, for example, the coding unit s 5 and the coding sub-unit p 1 are combined into one coded data packet; the coding unit s 6 and the coding sub-unit p 2 are combined into one coded data packet; the coding unit s 7 3 encoding subunit composition and p is a coded data packet; s encoding unit encoding subunit combinations p 4 and 8 into an encoded data packet and the like; or the first original data unit to the second data blocks in at least one of the original The data unit, the second original data unit may be at least one original data unit in the third data block.
  • the target coded data includes multiple coded data packets, for example, the coding unit s 9 and the coding sub-unit p 5 are combined into one coded data packet; the coding unit s 10 and the coding sub-unit p 6 are combined into one coded data packet; the coding unit s 11 It is combined with the coding subunit p 7 to form a coded data packet; the coding unit s 12 and the coding subunit p 8 are combined to form a coded data packet and so on.
  • the corresponding coding subunit is usually located in the coding unit s After 4 , if the coding subunits p 1 to p 4 and the coding unit s 4 form a coded data packet, the size of each coded data packet is inconsistent, and once an error occurs, the coding unit s 4 and the coding subunit (p 1 to p 4 ) All are erased.
  • the encoding subunit corresponding to one data block is combined with the encoding unit corresponding to another data block to generate the target encoded data, such as the first
  • the coding subunit corresponding to the data block is combined with the coding unit corresponding to the data block after the first data block (such as the second data block) to generate the target coded data, which can ensure that the code generated corresponding to one original data unit in the same time unit Units and coding subunits will not be lost together.
  • the position of the coding subunit corresponding to the first data block can be filled with "0", or the part of the first original data unit (d 1 to d 4 ) in the first data block can also be used.
  • Data is complemented, or the coding subunit (p 1 ⁇ p 4 ) corresponding to the original data unit in the first data block can be used for complementing, so as to ensure that the size of each target coded data is consistent, or it can be understood as ensuring that each The size of the encoded data packet is the same.
  • the number of original data units contained in two different data blocks may be the same or different, and the specific number is not limited.
  • each data block can be divided into multiple sub-blocks, and each sub-block contains at least one original data unit.
  • the second data block (such as the second data block) includes at least a first sub-block and a second sub-block, wherein the first sub-block includes a second original data unit, and the second original data unit is at least one of the first sub-block.
  • One original data unit (such as d 5 and d 6 )
  • the second sub-block includes a third original data unit
  • the third original data unit is at least one original data unit (such as d 7 and d 8 ) in the second sub-block.
  • the coding subunits (p 5 and p 6 ) corresponding to the second original data unit and the coding units (s 7 and s 8 ) corresponding to the second target original data unit are spliced to generate the target coded data.
  • the second target original data unit includes at least the third original data unit. It can be understood that the second target original data unit may be (d 7 and d 8 ), or may also be (d 6 ⁇ d 8 ) , Or it can be (d 5 ⁇ d 8 ), etc.
  • the coding unit corresponding to the second target original data unit can be (s 7 and s 8 ); for example, (s 7 and d 8 ) are encoded to obtain (s 7 and s 8 ), or (d 6 ⁇ d 8 ) can be coded to get s 7 and s 8 , or (d 5 ⁇ d 8 ) can be coded to get (s 7 and s 8 ), specifically Not limited.
  • each data block can be further divided into several sub-blocks, and each sub-block includes at least one original data unit.
  • the original data unit in one sub-block is used to generate a second target related to the coding unit and the next sub-block.
  • the coding unit generated by the original data unit is combined to generate the target coded data, ensuring that the coding unit and coding subunit generated corresponding to a sub-block will not be lost together, and redundant information can be added more effectively, and the coding subunit can be guaranteed to ensure error correction capability. And can effectively reduce the decoding delay of the coding subunit.
  • the coding sub-units (s 1 and s 2 ) corresponding to the coding units (s 1 and s 2) generated by the first sub-block (d 1 and d 2 ) in the first data block can be filled with "0", or by the first sub-block (d 1 and d 2) Part of the data in one data block is complemented, or complemented by coding subunits (p 1 and p 2 ) to ensure that the size of each coded data packet is consistent.
  • the coding unit and the coding subunit are spliced to generate the target coding data, wherein the coding unit corresponds to the second time unit, and the coding subunit corresponds to the first time unit.
  • the time unit, the second time unit is not earlier than the first time unit in the time domain.
  • the coding subunit generated by encoding the original data subunit divided by the original data unit in the first set in the first time unit is combined with the coding unit obtained by encoding the original data unit in the second set in the second time unit to generate Target encoding data.
  • the first set corresponds to the first time unit
  • the second set corresponds to the second time unit
  • the first set includes at least one original data unit
  • the second set includes at least one original data unit
  • the included original data unit and the original data unit included in the second set may be the same or different.
  • the first set is a static description method. If the first set is described in a dynamic manner, the first set can be understood as a sliding window, or can also be understood as the correlation depth of the original data unit. In this embodiment, the first set is described by taking a sliding window as an example.
  • the combination method of the coding unit and the coding subunit satisfies the following formula (1):
  • the function f represents the operation and operation corresponding to the encoding
  • the variable t represents the t-th time unit
  • the parameters h and k represent the delay characteristics
  • the coefficient span represents the span of the sliding window, that is, the distance of each sliding window sliding
  • d[] Represents the original data unit
  • p[] represents the coding subunit.
  • the coding subunit generated by the t-th time unit is a set of original data units (d[span ⁇ (t-1)+1-h],...,d(span ⁇ (t-1) +1-k]) is generated by encoding
  • the size of the sliding window (or the associated depth) is the difference between the first and last positions in the original data unit set
  • a sliding window entered from an original data unit d only this time in a sliding window 1 D which an original data unit, and therefore only one original data unit D 1 splits original data subunit code generation subunit coding p 1, and D 1 1 in combination with a coding unit corresponding to a target s of encoded data, and so on, each slide a sliding window original data unit, when the sliding window when the slide 4, in the sliding window
  • the original data unit of is (d 1 ⁇ d 4 ), and then 4 original data units are kept in the sliding window until the window exits.
  • the s 4 is generated by encoding the original data unit in the second set, the s 4 may be generated by d 4 encoding, or the s 4 may be generated by encoding d 3 and d 4 , or the s 4 may be generated by (d 1 to d 4 ) Code generation, etc.
  • the original data unit in the second set is not specifically limited.
  • p[5] f(d[5],...,d[2]), indicating the original data subunit corresponding to the original data unit (d 2 ⁇ d 5)
  • the time delay of the original data unit corresponding to the generation of the encoding subunit is a time unit (the second time unit is late).
  • the original data unit encodes the original data subunits split by d 1 and d 2 to generate the coding subunit p 3
  • p 2 and the original data unit containing d 2 (such as d 1 and d 2 , Or d 2 ) the correspondingly generated coding unit s 2 is combined into the target coded data
  • p 3 corresponds to the original data unit containing d 3 (such as d 1 ⁇ d 3 , or d 2 and d 3 , or d 3 ) s 3 encoding unit generated target combined into encoded data, and so on.
  • the sliding window slides 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 ⁇ d 4 ), and then the sliding window always keeps 4 original data units until the window exits.
  • p[5] f(d[4],...,d[1]), indicating that the original data subunit corresponding to the original data unit (d 1 ⁇ d 4 ) is coded to generate the code Unit p 5
  • the p 5 is combined with the coding unit s 4 corresponding to the second time unit to generate target coded data.
  • the s 4 is generated by encoding the original data unit in the second set, the s 4 may be generated by d 4 encoding, or the s 4 may be generated by encoding d 3 and d 4 , or the s 4 may be generated by (d 1 to d 4 ) Code generation, etc.
  • the original data unit in the second set is not specifically limited.
  • the s 5 is generated by encoding the original data unit in the second set, the s 5 may be generated by d 5 encoding, or the s 5 may be generated by encoding d 4 and d 5 , or the s 5 may be generated by (d 2 to d 5 ) Code generation and so on, the original data unit in the second set is not specifically limited.
  • the span of the sliding window has been adjusted.
  • the coding units (s 3 and s 4 ) are combined into the target coded data, the sliding window slides again, sliding the distance of 2 original data units, the original data unit in the sliding window is (d 1 ⁇ d 4 ), and then the sliding window is always Keep 4 original data units until the window exits.
  • the (s 5 and s 6 ) are generated by encoding the original data unit in the second set, the (s 5 and s 6 ) can be generated by (d 5 and d 6 ) encoding, or the (s 5 and s 6) ) Can be generated by coding (d 3 ⁇ d 6 ), or the (s 5 and s 6 ) can be generated by coding (d 4 ⁇ d 6 ), etc., which original data unit in the second set of the coding unit is
  • the code generation is not specifically limited.
  • the target coding unit corresponding to the start time unit does not have a corresponding coding subunit due to the timing relationship. Therefore, the value of the coding subunit corresponding to the target coding unit can be added by "0".
  • the position is complemented, or the position of the coding subunit is complemented by part of the original data or coding unit or coding subunit to ensure that the size of each coded data packet is consistent.
  • the encoding subunit is used as redundant information.
  • the encoding subunit in order to ensure that the encoding subunit can perform error correction on data within a certain time range, the encoding subunit is used relative to the relevant encoding unit. Hysteresis to ensure better error correction capabilities.
  • step 405. The sending end device sends the target coded data to the receiving end, and the target coded data is carried on the transmission block.
  • the possible carrying method will be described below.
  • step 405 the coding unit and the coding subunit in the target coded data are respectively transmitted through different transmission blocks, and the same transmission block will not carry both the coding unit and the coding subunit.
  • Carrying 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 mutually mapped index numbers.
  • the first transmission block and the second transmission block are used to transmit the coding unit
  • the third transmission block is used to transmit the coding sub-unit. Since coding units and corresponding coding subunits are carried in different transmission blocks, the correspondence between coding units and coding subunits has been disrupted. In order to ensure successful decoding at the receiving end, the receiving end needs to correspond to the coding units and coding subunits. Therefore, the coding sub-unit also needs a header, and the index sequence number for mutual mapping is added to the header of the coding unit and the header of the coding sub-unit, and the index sequence number is used as the identification number of the coding unit and the coding sub-unit.
  • the coding unit (s 1 to s 4 ) is carried in two transmission blocks, the first transmission block and the second transmission block, for transmission due to the large coding unit data, and the corresponding coding subunits ( p 1 ⁇ p 4 ) Because there is little data, it is carried in one transmission block for transmission; since the header of the coding unit and the corresponding coding subunit are added with index numbers, it can ensure that the receiving end recognizes the same target coded data
  • the two parts of the coding unit and the coding subunit are re-corresponding according to the index number of the coding unit and the coding subunit header, and the coding unit and the coding subunit are formed into a complete target coded data for decoding.
  • the corresponding coding unit and coding subunit are transmitted through different transmission blocks, which can prevent the coding unit and coding subunit of the same target coded data from being lost at the same time, and is used in the transmission block of the transmission coding subunit.
  • the carried coding subunit has a small granularity, can be better adapted, and saves the spectrum resource of the transmission block of the coding subunit.
  • the coding unit and the coding sub-unit are carried in different transmission blocks. Due to the large difference in the size of the coding unit and the coding sub-unit, the two types of transmission Blocks are transmitted at intervals (for example, the first data block carries the coding unit, the second data block carries the coding subunit, the third data block carries the coding unit, etc.), which will cause the correspondence between the coding unit and the coding subunit to be misaligned For a target coded data, a large decoding delay will be generated.
  • each transmission block is a coding unit transmission block or an encoding according to certain rules.
  • the sub-unit transmits the block, so that the coding unit and the corresponding coding sub-unit have a smaller time delay in the transmission process. The following describes a possible implementation manner for determining whether each transmission block is a coding unit transmission block or a coding subunit transmission block:
  • Step 2202 Carry multiple coding units, and update the first target index sequence number, where the first target index sequence number is the maximum value of the first index sequence numbers corresponding to the carried coding units; or bear multiple coding subunits, and update the first target index sequence number.
  • the first transmission block carries the coding unit
  • the first target index sequence number is updated to "2"
  • the second target index number is "0".
  • Step 2203 Determine 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, continue to step 2204; if the first target index sequence number is not greater than the second target index sequence number, Then continue to step 2205.
  • step 2204 is executed.
  • step 2205 is executed.
  • Step 2204 Carry the coding subunit, update the second target index sequence number, and repeat step 2203.
  • the size of the target encoding sequence number is not limited to 8.
  • Step 2205 Carry the coding unit, update the first target index sequence number, and repeat step 2203.
  • the transmission can be determined by comparing the index number of the coding unit that has been transmitted (or carried) and the index number of the coding subunit.
  • the block carries the coding unit or the coding subunit.
  • the current transmission block carries the coding subunit.
  • the index number of the coding subunit is just greater than or equal to the index of the coding unit
  • the sequence number is used, the current transmission block carries the coding unit, which can well ensure that the coding unit and the coding subunit with the corresponding relationship have a lower time delay.
  • Step 2302 Load a plurality of coding units, and update a first target index sequence number, where the first target index sequence number is the maximum value of the first index sequence numbers corresponding to the carried multiple coding units;
  • the first transmission block carries the coding unit
  • the first target index sequence number is updated to "2".
  • Step 2303 Determine whether the first target index sequence number is greater than the sum of the second target index sequence number and the first threshold, where the second target index sequence number is the maximum value of the second index sequence numbers corresponding to the carried multiple encoding subunits; If the first target index number is greater than the sum of the second target index number and the first threshold, then step 2304 is executed; if the first target index number is not greater than the sum of the second target index number and the first threshold, then step 2302 is executed;
  • the first target index number is updated to "2", and the coding subunit has not been transmitted currently, the second target index number is "0".
  • the first threshold is 1. That is, if 2>1, then step 2204 is executed; assuming that the first threshold is 3, that is, 2 ⁇ 3, then step 2302 is executed.
  • Step 2304 Carry multiple coding subunits, update the second target index sequence number, and continue to perform step 2305.
  • the transmission block is used to transmit the coding subunit.
  • Step 2305 Determine whether the second target index number is greater than the sum of the first index number and the second threshold. If the second target index number is greater than the sum of the first index number and the second threshold, perform step 2302; if the second target index If the sequence number is not greater than the sum of the first index sequence number and the second threshold, step 2304 is continued.
  • the second target index number is "5", and the first target index number is "2". If the second threshold is 2, then 5>4, then continue to step 2302; if the second threshold is 4, then 5 ⁇ 6 , Then continue to step 2304.
  • the first threshold and the second threshold may be the same or different, and the details are not limited.
  • the first threshold and the second threshold can be used to adjust the number of transmission block transmission coding units or coding subunits. Increase the first threshold to increase the number of transmission coding units, or increase the second threshold to increase the number of transmission coding subunits.
  • the transmission block used to transmit the coding unit and the transmission block used to transmit the coding subunit may be transmitted through different time-frequency resources.
  • the transmission block used to transmit the coding unit and the transmission block used to transmit the coding sub-unit may be transmitted through different transmission reception points (TRP).
  • the header of the target encoded data in the embodiment of the present application further includes coding unit information
  • the coding unit information includes at least a data block identifier corresponding to the coding unit and an identifier of the coding unit.
  • it may also include corresponding Coding coefficient.
  • the coding coefficient of the coding unit and the coding coefficient of the coding subunit may be the same or different.
  • the coding coefficients in the coding generation matrix are non-random and can be configured semi-statically without adding to the header; for networks where the coding coefficients are randomly selected
  • coding schemes such as random linear network coding (RLNC) schemes
  • RLNC random linear network coding
  • the corresponding coding coefficients need to be added to the corresponding header (or packet header).
  • the actual coding coefficient of is obtained by calculating the coefficient c x corresponding to the coding subunit and the coefficient cp y corresponding to the coding unit. This operation includes but is not limited to addition, product, polynomial operation, etc., where c x is (c 1 , Any element in c 2 ,...,c m ), and cp y is any element in (cp 1 ,cp 2 ,...,cp m ).
  • the coding coefficient of the coding unit may be 1.
  • the coding unit is the original data unit.
  • the above describes the encoding method of the data with the transmitting end device as the execution subject, and the following briefly describes the decoding of the target encoded data after the receiving end device receives the target encoded data.
  • the execution subject of the decoding method is the receiving end device, the receiving end device may be a base station, and the execution subject of the decoding method may be a processor, chip or chip system in the base station; or the receiving end device may be a terminal, and the decoding method is executed
  • the main body can be a processor, a chip, or a chip system in the terminal.
  • the decoding method may include:
  • the receiving end device receives the target encoded data, the target encoded data is generated by an encoding unit and the encoding subunit, the encoding unit is generated after encoding the original data unit, and the encoding subunit It is obtained by encoding multiple original data sub-units obtained after splitting the original data unit;
  • the target encoded data includes a header, and the header includes index information, and the index information is used to indicate the encoding The corresponding relationship between the subunit and the original data unit;
  • the original data unit corresponding to the original data sub-packet is determined according to the original data sub-packet and the header information.
  • the encoding unit is decoded to obtain the original data unit, and the encoding subunit is decoded to obtain the original data sub-packet; the original data unit is obtained.
  • each target coded data includes a coding unit and a coding subunit. If only part of the bit data in s 1 is wrong and the rest of the data content is correct, replace the erroneous data through the coding subunits p1-p4 to ensure that the target coded data is decoded correctly.
  • a possible implementation method is to correctly decode the coding sub-units, and directly replace the wrong bit data in the coding unit, through the cyclic redundancy of each original data unit Check (cyclic redundancy check, CRC) check to ensure the correctness of the data; another possible implementation is to replace the coding subunit with the wrong bit data in the coding unit (using the same coding method and coding coefficient), and change
  • CRC check cyclic redundancy check
  • the embodiments of the present application also provide corresponding devices, including corresponding modules for executing the foregoing embodiments.
  • the module can be software, hardware, or a combination of software and hardware.
  • Figure 25 shows a schematic diagram of the structure of a communication device.
  • the device 2500 may be a network device, a terminal device, a chip, a chip system, or a processor that supports the network device to implement the above method, or a chip, a chip system, or a chip that supports the terminal device to implement the above method. Or processor, etc.
  • the device can be used to implement the method described in the foregoing method embodiment, and for details, please refer to the description in the foregoing method embodiment.
  • the device 2500 may include one or more processors 2501, and the processor 2501 may also be referred to as a processing unit, which may implement certain control functions.
  • the processor 2501 may be a general-purpose processor or a special-purpose processor. For example, it can be a baseband processor or a central processing unit.
  • the baseband processor can be used to process communication protocols and communication data
  • the central processor can be used to control communication devices (such as base stations, baseband chips, terminals, terminal chips, DU or CU, etc.), execute software programs, and process The data of the software program.
  • the processor 2501 may also store instructions and/or data 2503, and the instructions and/or data 2503 may be executed by the processor, so that the apparatus 2500 executes the above method embodiments. Described method.
  • the processor 2501 may include a transceiver unit for implementing receiving and sending functions.
  • the transceiver unit may be a transceiver circuit, or an interface, or an interface circuit.
  • the transceiver circuits, interfaces, or interface circuits used to implement the receiving and transmitting functions can be separate or integrated.
  • the foregoing transceiver circuit, interface, or interface circuit can be used for code/data reading and writing, or the foregoing transceiver circuit, interface, or interface circuit can be used for signal transmission or transmission.
  • the device 2500 may include a circuit, which may implement the sending or receiving or communication functions in the foregoing method embodiments.
  • the device 2500 may include one or more memories 2502, on which instructions 2504 may be stored, and the instructions may be executed on the processor, so that the device 2500 executes the foregoing method embodiments. Described method.
  • data may also be stored in the memory.
  • instructions and/or data may also be stored in the processor.
  • the processor and the memory can be provided separately or integrated together. For example, the corresponding relationship described in the foregoing method embodiment may be stored in a memory or in a processor.
  • the device 2500 may further include a transceiver 2505 and/or an antenna 2506.
  • the processor 2501 may be referred to as a processing unit, and controls the device 2500.
  • the transceiver 2505 may be called a transceiver unit, a transceiver, a transceiver circuit, a transceiver device, or a transceiver module, etc., for implementing the transceiver function.
  • the apparatus 2500 in the embodiment of the present application may be used to execute the method described in FIG. 4 in the embodiment of the present application, or may be used to execute various implementation methods and methods corresponding to the method embodiment corresponding to FIG. 4 This is a way to achieve a combination of each other.
  • the processor and transceiver described in this application can be implemented in integrated circuit (IC), analog IC, radio frequency integrated circuit RFIC, mixed signal IC, application specific integrated circuit (ASIC), printed circuit board ( printed circuit board, PCB), electronic equipment, etc.
  • the processor and transceiver can also be manufactured by various IC process technologies, such as complementary metal oxide semiconductor (CMOS), nMetal-oxide-semiconductor (NMOS), P-type Metal oxide semiconductor (positive channel metal oxide semiconductor, PMOS), bipolar junction transistor (BJT), bipolar CMOS (BiCMOS), silicon germanium (SiGe), gallium arsenide (GaAs), etc.
  • CMOS complementary metal oxide semiconductor
  • NMOS nMetal-oxide-semiconductor
  • PMOS P-type Metal oxide semiconductor
  • BJT bipolar junction transistor
  • BiCMOS bipolar CMOS
  • SiGe silicon germanium
  • GaAs gallium arsenide
  • the device described in the above embodiment may be a network device or a terminal device, but the scope of the device described in this application is not limited to this, and the structure of the device may not be limited by FIG. 25.
  • the device can be a stand-alone device or can be part of a larger device.
  • the device may be a terminal or a component of the terminal (for example, an integrated circuit, a chip, etc.).
  • the device may be a network device, or a component of a network device (for example, an integrated circuit, a chip, etc.).
  • the device may also be another communication module, which is used to implement the method in the method embodiment of the present application.
  • the apparatus 2600 may include: a processing module 2601 (or referred to as a processing unit).
  • a transceiver module 2602 or called a transceiver unit
  • a storage module 2603 or called a storage unit).
  • one or more modules in Figure 26 may be implemented by one or more processors, or by one or more processors and memories; or by one or more processors It may be implemented with a transceiver; or implemented by one or more processors, memories, and transceivers, which is not limited in the embodiment of the present application.
  • the processor, memory, and transceiver can be set separately or integrated.
  • the device has the function of implementing the terminal described in the embodiment of the application.
  • the device includes a module or unit or means corresponding to the terminal to execute the steps related to the terminal described in the embodiment of the application.
  • the function or unit is Means can be implemented through software, or through hardware, or through hardware executing corresponding software, or through a combination of software and hardware.
  • the device has the function of implementing the network device described in the embodiment of this application.
  • the device includes the module or unit or means corresponding to the network device executing the steps involved in the network device described in the embodiment of this application.
  • the functions or units or means (means) can be realized by software, or by hardware, or by hardware executing corresponding software, or by a combination of software and hardware.
  • each module in the apparatus 2600 in the embodiment of the present application may be used to execute the method described in FIG. 4 in the embodiment of the present application, or may be used to execute various implementation modes corresponding to the method embodiment corresponding to FIG. 4 Methods and methods of combining various implementation methods with each other.
  • an apparatus 2600 includes: a processing module 2601.
  • the processing module 2601 is configured to obtain an original data unit; split the original data unit to obtain a set of original data subunits; encode the original data unit to generate a coding unit, and perform multiple calculations on the original data unit. Encoding the original data sub-units to generate an encoding sub-unit; generating target encoded data according to the encoding unit and the encoding sub-unit; outputting the target encoded data.
  • an apparatus 2600 may include: a processing module 2601 and a transceiver module 2602.
  • the transceiver module 2602 is used to obtain the original data unit
  • the processing module 2601 is configured to split the original data unit obtained by the transceiver module 2602 to obtain a set of original data subunits; encode the original data unit to generate an encoding unit, and perform a calculation on the original data unit in the set Encoding multiple original data subunits to generate an encoding subunit; generating target encoded data according to the encoding unit and the encoding subunit;
  • the transceiver module 2602 is also used to output the target encoded data generated by the processing module 2601.
  • the processing module 2601 is further configured to, when the number of the original data units is multiple, split the first target original data unit among the multiple original data units to obtain the same value as the first target original data unit.
  • the processing module 2601 is further configured to encode multiple original data subunits in one subset to generate at least one encoding subunit corresponding to the subset.
  • the processing module 2601 is further configured to encode original data subunits in at least two of the plurality of subsets to generate at least one encoding subunit.
  • the processing module 2601 is further configured to: when the multiple original data subunits are included in multiple data blocks; perform processing on the original data subunits in at least two data blocks of the multiple data blocks. Encoding, generating at least one encoding subunit.
  • the target coded data includes indication information, and the indication information is used to indicate the correspondence between the coding subunit and the original data unit.
  • the indication information includes bitmap information, and the bitmap information is used to indicate the positional correspondence between the encoded data subunit and a plurality of the original data subunits.
  • the target coded data includes indication information, and the indication information is used to indicate the position of the original data subunit that generates the coded subunit in the corresponding original data unit.
  • the indication information is also used to indicate the number of coding subunits corresponding to the original data unit.
  • the target coded data includes indication information for indicating the position of the original data subunit that generates the coding subunit in the corresponding original data unit, and the position of the corresponding original data unit Location.
  • the target coded data includes indication information
  • the indication information is used to indicate: the position of the original data subunit that generates the coding subunit in the corresponding original data unit, and the corresponding original data unit is The position in the corresponding data block, and the position of the corresponding data block.
  • the processing module 2601 is further configured to splice all or part of the data in the coding unit and the coding subunit to generate the target coded data.
  • the processing module 2601 is further configured to: when the original data unit includes at least 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 When the original data unit is included in the second data block, the coding subunit corresponding to the first original data unit and the coding unit corresponding to the second original data unit are spliced to generate the target coded data.
  • 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, and the second original data unit When included in the first sub-block and the third original data unit is included in the second sub-block; splicing the coding sub-units corresponding to the second original data unit and the coding unit corresponding to the second target original data unit The target encoded data is generated, and the second target original data unit includes at least the third original data unit.
  • the processing module 2601 is further configured to splice the coding unit and the coding subunit to generate the target coding data, wherein the coding unit corresponds to a second time unit, and the coding subunit corresponds to The first time unit, and the second time unit is not earlier than the first time unit in the time domain.
  • the processor in the embodiment of the present application may be an integrated circuit chip with signal processing capability.
  • the steps of the foregoing method embodiments can be completed by hardware integrated logic circuits in the processor or instructions in the form of software.
  • the above-mentioned processor may be a general-purpose processor, a digital signal processor (digital signal processor, DSP), an application specific integrated circuit (ASIC), a field programmable gate array (field programmable gate array, FPGA) or other Programming logic devices, discrete gates or transistor logic devices, discrete hardware components.
  • the processing unit used to execute these technologies at a communication device can be implemented in one or more general-purpose processors, DSPs, digital signal processing devices, ASICs, Programmable logic device, FPGA, or other programmable logic device, discrete gate or transistor logic, discrete hardware component, or any combination of the foregoing.
  • the general-purpose processor may be a microprocessor.
  • the general-purpose processor may also be any traditional processor, controller, microcontroller, or state machine.
  • the processor can also be implemented by a combination of computing devices, such as a digital signal processor and a microprocessor, multiple microprocessors, one or more microprocessors combined with a digital signal processor core, or any other similar configuration. accomplish.
  • the memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memory.
  • the non-volatile memory can be read-only memory (ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), and electrically available Erase programmable read-only memory (electrically EPROM, EEPROM) or flash memory.
  • the volatile memory may be random access memory (RAM), which is used as an external cache.
  • RAM random access memory
  • static random access memory static random access memory
  • dynamic RAM dynamic RAM
  • DRAM dynamic random access memory
  • synchronous dynamic random access memory synchronous DRAM, SDRAM
  • double data rate synchronous dynamic random access memory double data rate SDRAM, DDR SDRAM
  • enhanced synchronous dynamic random access memory enhanced SDRAM, ESDRAM
  • synchronous connection dynamic random access memory serial DRAM, SLDRAM
  • direct rambus RAM direct rambus RAM
  • the present application also provides a computer-readable medium on which a computer program is stored, and when the computer program is executed by a computer, the function of any of the foregoing method embodiments is realized.
  • This application also provides a computer program product, which, when executed by a computer, realizes the functions of any of the foregoing method embodiments.
  • the computer program product includes one or more computer instructions.
  • the computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable devices.
  • the computer instructions may be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
  • the computer instructions may be transmitted from a website, computer, server, or data center.
  • the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, and a magnetic tape), an optical medium (for example, a high-density digital video disc (digital video disc, DVD)), or a semiconductor medium (for example, a solid state disk, SSD)) etc.
  • At least one of or “at least one of” herein means all or any combination of the listed items, for example, "at least one of A, B and C", It can mean: A alone exists, B alone exists, C exists alone, A and B exist at the same time, B and C exist at the same time, and there are six cases of A, B and C at the same time, where A can be singular or plural, and B can be Singular or plural, C can be singular or plural.
  • B corresponding to A means that B is associated with A, and B can be determined according to A.
  • determining B based on A does not mean that B is determined only based on A, and B can also be determined based on A and/or other information.
  • the term "and/or” in this article is only an association relationship describing the associated objects, which means that there can be three relationships, for example, A and/or B, which can mean: A alone exists, A and B exist at the same time, exist alone In the three cases of B, A can be singular or plural, and B can be singular or plural.
  • the character "/" generally indicates that the associated objects before and after are in an "or” relationship.
  • the systems, devices, and methods described in this application can also be implemented in other ways.
  • the device embodiments described above are merely illustrative.
  • the division of the units is only a logical function division, and there may be other divisions in actual implementation, for example, multiple units or components may be combined or It can be integrated into another system, or some features can be ignored or not implemented.
  • the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
  • the units described as separate components may or may not be physically separate, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
  • the functional units in the various embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
  • the function is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
  • the technical solution of the present application essentially or the part that contributes to the existing technology or the part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including Several instructions are used to make a computer device (which may be a personal computer, a server, or a network device, etc.) execute all or part of the steps of the methods described in the various embodiments of the present application.
  • the aforementioned storage media include: U disk, mobile hard disk, read-only memory (read-only memory, ROM), random access memory (random access memory, RAM), magnetic disks or optical disks and other media that can store program codes. .

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例公开了一种编码方法及通信装置,本申请实施例方法包括:获取待编码的原数据单元,然后对获取的原数据单元进行拆分,将原数据单元分成了多个原数据子单元,得到原数据子单元的集合,进一步对原数据单元进行编码,生成编码单元,并且对集合中的多个原数据子单元进行编码,生成编码子单元;根据编码单元和编码子单元生成目标编码数据;本申请实施例中,编码子单元可以理解为冗余信息,编码子单元的大小小于原数据单元的大小;以原数据子单元为单位进行编码得到编码子单元,通过调整编码子单元的大小及数量,提供更加灵活的码率以对传输资源进行适配从而节省频谱资源。

Description

一种编码方法及通信装置
本申请要求于2020年4月17日提交中国专利局、申请号为“202010305364.6”、申请名称为“一种编码方法及通信装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信领域,尤其涉及一种编码方法及通信装置。
背景技术
由于无线传输媒介的特殊性,无线网络可靠传输技术已成为影响和制约无线网络传输性能的重要因素。当前的一些协议中通过采取基于反馈的重传机制来保证数据传输的可靠性,但这种重传机制同时也会带来明显的反馈时延及开销。为了有效避免频繁的反馈开销及性能损失,网络编码成为一种重要的技术方向,即通过对原始数据包进行编码并预先增加冗余来对抗无线通信中的丢包或损失等问题,以保证数据传输的可靠性。
网络编码技术方案包括诸多的类型,诸如分组网络编码,卷积网络编码等。这些编码技术方案都通过对一组原始数据包进行不同的编码操作,即对应不同的编码生成矩阵,得到相应的编码包组。以分组网络编码为例,如图1所示,通过将K个原始数据包进行编码,例如与一个大小为K*N的生成矩阵G相乘,得到N个编码数据包,网络编码的码率近似表征为r=K/N,其中K为原始数据包的个数,N为编码数据包的个数,r大于0且小于1。
当前的网络编码技术中,接收端收到的编码包以包为单位出错,需要以包为单位的编码包来对错误的包进行恢复,以保证网络编码的成功译码,根据当前的网络编码的原则,每次编码的原始数据包个数K取值通常不变,编码包的个数N可变,由此导致码率只能选择有限个数值,码率调整的粒度相对粗糙,不能灵活配置,且当(N-K)的值较大时,也会造成明显的冗余,极大的浪费频谱资源。
发明内容
本申请实施例提供了一种编码方法及通信装置,该编码方法应用于一种通信系统,该通信系统包括网络设备和终端,网络设备是任意一种具有无线收发功能的设备,该网络设备包括但不限于基站、接入节点、无线中继节点,无线回传节点等,该终端是一种具有无线收发功能的设备,包括但不限于用户设备,车载终端,可穿戴设备,手机等;本申请中的编码方法的执行主体为发送端设备,或者,该方法的执行主体也可以为发送端设备中的处理器,芯片或芯片系统;发送端设备可以为网络设备(如基站),或者发送端设备也可以为终端(如用户设备)。发送端设备获取待编码的原数据单元,以低于原数据单元粒度对数据进行编码,然后输出编码后的目标编码数据,本申请中的编码方法及通信装置用于提供更灵活的码率,能够更好的适配频谱资源,节省开销。
第一方面,本申请实施例提供了一种编码方法,该方法可以应用于发送端设备,编码 方法可以包括:发送端设备获取待编码的原数据单元;该原数据单元可以为发送端设备从对端接收到的数据,例如,该原数据单元可以来自相同的链路,或者,原数据单元也可以来自不同的链路;或者,该原数据单元可以为发送端设备生成的数据,即发送端设备待向接收端发送的数据;然后发送端设备对获取的原数据单元进行拆分,将原数据单元分成了多个原数据子单元,得到原数据子单元的集合;进一步对原数据单元进行编码,生成编码单元,并且对集合中的多个原数据子单元进行编码,生成编码子单元;编码子单元和原数据子单元的大小相同,由此编码子单元的大小小于原数据单元的大小;根据编码单元和编码子单元生成目标编码数据,也即该目标编码数据至少包括编码单元和编码子单元这两个部分,编码子单元可以理解为冗余信息,传统网络编码技术中生成的冗余信息的大小与未编码之前的原数据单元大小相同,而本申请中的编码子单元的大小小于原数据单元的大小;本申请实施例中的编码方法,打破了传统网络编码方案以数据单元为单位的编码生成模式,提供了一种低于数据单元粒度的网络编码方法,通过将原数据单元分割为更小的子单元,继而以原数据子单元为单位进行编码得到编码子单元,通过调整编码子单元的大小及数量,提供更加灵活的码率以对传输资源进行适配;并且原数据单元中出错的位置以及出错的bit数随机不确定,可以以编码子单元为粒度对擦除或者错误的数据进行恢复,并不需要像传统方案中重新传输编码包来恢复出错的数据,从而节省频谱资源。
在一个可选的实现方式中,对原数据单元进行拆分得到原数据子单元的集合可以具体包括:原数据单元的数量可以为多个,对多个原数据单元中第一目标原数据单元进行拆分,得到与该第一目标原数据单元对应的子集合,其中,该第一目标原数据单元为该多个原数据单元中的至少一个原数据单元,该至少一个原数据单元中的每个原数据单元会对应一个子集合,该子集合中包括了多个原数据子单元,子集合中的多个原数据子单元用于参与编码子单元的编码,用于参与编码的多个原数据子单元的大小相同。
在一个可选的实现方式中,对集合中的多个原数据子单元进行编码生成编码子单元的方法可以包括:针对一个子集合内的多个原数据子单元进行编码,生成与该子集合对应的至少一个编码子单元;例如,原数据单元d 1对应一个子集合,该子集合包括多个原数据子单元,该多个原数据子单元为(d 1-1,d 1-2,...d 1-n/a),针对子集合(d 1-1,d 1-2,...d 1-n/a)内的原数据子单元进行编码得到至少一个编码子单元;本实施方式中,针对一个子集合内的多个原数据子单元进行编码得到编码子单元的方式,一个编码数据包是由一个原数据单元对应的编码单元和该原数据单元对应的编码子单元得到的,若在传输过程中编码单元的部分数据丢失或出错,接收端可以通过该编码单元的剩余部分数据及该编码子单元恢复出对应的原数据单元,无需以传统网络编码方法重新发送编码数据包,节省开销,同时保证了更加灵活的码率。
在一个可选的实现方式中,对集合中的多个原数据子单元进行编码生成编码子单元的方法可以包括:针对多个子集合中至少两个子集合中的原数据子单元进行编码,生成至少一个编码子单元,该至少两个子集合包括第一子集合和第二子集合;例如,该第一子集合中包含多个原数据子单元(d 1-1,d 1-2,...d 1-n/a),第二子集合中包含多个原数据子单元(d 2-1,d 2-2,...d 2-n/a),在第一子集合(d 1-1,d 1-2,...d 1-n/a)和第二子集合(d 2-1,d 2-2,...d 2-n/a)的范围 内选择性的进行网络编码得到至少一个编码子单元,或者,按照一定规律编码,在该至少两个子集合中选择具有相同位置的原数据子单元进行编码生成至少一个编码子单元,如选择该至少两个子集合中第一个位置的原数据子单元进行编码得到编码子单元,或者选择该至少两个子集合中第二个位置的原数据子单元进行编码得到至少一个编码子单元;本实施方式中,编码子单元是由至少两个原数据单元对应的原数据子单元进行编码生成的,若在传输过程中编码单元(如对应原数据单元d1)的部分数据丢失或出错,接收端通过利用与该丢失或者出错部分数据相关的所有编码子单元,以及该相关的所有编码子单元对应的其他原数据子单元信息(如其他原数据子单元信息已经译码成功,或者通过多个编码子单元联合译码得到)进行译码,恢复出对应的原数据单元,本实施方式可以使编码子单元覆盖更大范围(如至少两个子集合)的原数据单元信息,即编码子单元纠错范围更大;相较于传统网络编码方法重新发送编码数据包,节省数据开销,同时保证了更加灵活的码率;此外,对于按一定规律编码生成编码子单元的情形,可以实现对应原数据子单元的提前译码,即无需收到所有的编码数据单元后对编码子单元译码,而是通过相关的编码子单元即可提前进行译码,可以改善时延。
在一个可选的实现方式中,多个原数据子单元包含在多个数据块中,对集合中的多个原数据子单元进行编码生成编码子单元可以包括:针对多个数据块中的至少两个数据块中对应的原数据子单元进行编码,生成至少一个编码子单元;可以理解的是,在至少两个数据块对应的所有原数据子单元范围内选择性地进行网络编码生成至少一个编码子单元;例如,根据第1个数据块中第1个原数据单元对应的子集合中的第1个原数据子单元,和,第2个数据块中第1个原数据单元对应子集合中的第1个原数据子单元生成至少一个编码子单元;本实施方式中,编码子单元是由至少两个数据块对应的原数据子单元进行编码生成的,若在传输过程中编码单元(如对应第一数据块中的原数据单元d1)的部分数据丢失或出错,接收端通过利用与该丢失或者出错部分数据相关的所有编码子单元,以及该相关的所有编码子单元对应的其他原数据子单元信息(如其他原数据子单元信息已经译码成功,或者通过多个编码子单元联合译码得到)进行译码,恢复出对应的原数据单元,本实施方式可以使编码子单元包含更大范围(如至少两个数据块)的原数据单元信息,即编码子单元纠错范围更大;相较于传统网络编码方法重新发送编码数据包,节省数据开销,同时保证了更加灵活的码率。
在一个可选的实现方式中,针对所述多个数据块中的至少两个数据块中的原数据子单元进行编码生成至少一个编码子单元的方式中,将该至少两个数据块中的编码子单元进行编码,即可以理解为对至少两个数据块联合编码,数据块的联合编码方式包括递推方式,该递推方式为:以X个数据块为联合单元,数据块递推式交叠,每个联合单元内部数据块之间的联合方式可以任意组合,X为大于或者等于1的整数;本实施方式中,以X个数据块对应的所有原数据子单元作为联合单元,联合单元之间数据块有交叠,R个数据块将通过X个数据块的递推成为一个较大的编码范围(R为大于或者等于X的整数),得到编码子单元所对应的原数据子单元的范围较大,可以更好地保证编码子单元的纠错能力。
在一个可选的实现方式中,数据块的联合编码方式还包括非递推方式,该非递推方式 为:以X个数据块为一个联合单元,联合单元之间数据块没有交叠,每个联合单元内部数据块之间的联合方式可以任意组合;本实施方式中,R个数据块中包括多个联合单元,每个联合单元包括X个数据块,且该多个联合单元之间数据块没有交叠,可以理解的是,以X个数据块为一个编码范围,相对于递推方式编码范围相对较小,但是译码延时也较小。
在一个可选的实现方式中,目标编码数据包括头部,该头部携带指示信息,指示信息用于指示编码子单元与原数据单元的对应关系,从而使得接收端在解码时,通过该指示信息可以确定编码子单元是由哪些原数据单元对应的哪些原数据子单元编码得到的。
在一个可选的实现方式中,指示信息包括比特位图信息,比特位图信息用于指示编码数据子单元与多个原数据子单元的位置对应关系;本实施例中,以原数据子单元为粒度,构建所有原数据子单元对应的比特位图,比特位图中每个比特位对应一个原数据子单元,每个比特位可以用“1”或者“0”来标识对应的原数据子单元是否参与编码,从而指示出编码数据子单元与多个原数据子单元的位置对应关系;本实施方式中,可以通过比特位图直接指示出哪些位置对应的原数据子单元参与编码,且在某些应用场景中,如针对一个编码子单元,参与对该编码子单元编码的原数据子单元数量较多或者其原数据子单元的位置缺乏规律性,该比特位图以更加通用的指示方式表征,指示信息开销相对较小。
在一个可选的实现方式中,目标编码数据包括指示信息,指示信息用于指示生成编码子单元的原数据子单元在对应的原数据单元中的位置;当每个原数据单元对应的编码子单元的数量均相同时(如每个原数据单元均对应1个编码子单元),通过原数据子单元在对应的子集合(对应原数据单元)中的位置就可以指示出哪些原数据子单元参与了对编码子单元编码;该原数据子单元在对应的原数据单元中的位置可以用原数据子单元的序号向量来表示;本实施方式中,该指示信息通过位置指示(如序号向量)的方式指示出哪些原数据子单元参与编码子单元的编码,在某些应用场景中,如针对一个编码子单元,参与对该编码子单元编码的原数据子单元数量较少,或者该原数据子单元的位置具有规律性(如对每个原数据单元对应的第1个原数据子单元进行编码),指示信息开销相对较小。
在一个可选的实现方式中,指示信息还用于指示原数据单元对应的编码子单元的个数;通过每个原数据单元对应的编码子单元个数可以指示出每个编码子单元所对应的原数据单元;再通过该原数据子单元在对应的原数据单元中的位置就可以指示出每个编码子单元是由哪些原数据子单元编码生成的,该原数据子单元在对应的原数据单元中的位置可以用原数据子单元的序号向量来表示。
在一个可选的实现方式中,目标编码数据包括指示信息,指示信息用于指示生成编码子单元的原数据子单元在对应的原数据单元中的位置,及对应的原数据单元的位置;其中,原数据子单元在对应的原数据单元中的位置可以用原数据子单元的序号向量来表示;对应的原数据单元的位置为:该原数据子单元所属的原数据单元的位置,可以用原数据单元的序号向量来表示;本实施例中,针对在一个数据块内,至少两个原数据单元对应的原数据子单元的范围内进行编码得到编码子单元的方式中,可以通过原数据子单元在对应的原数据单元中的位置,及原数据子单元所属的原数据单元的位置指示出该编码子单元是由哪些原数据子单元编码得到的;本实施方式中,该指示信息通过位置指示(如序号向量)的方 式指示出哪些原数据子单元参与编码的方式中,在某些应用场景中,如针对一个编码子单元,参与对该编码子单元编码的原数据子单元数量较少,或者该原数据子单元的位置具有规律性(如对每个原数据单元对应的第1个原数据子单元进行编码),指示信息开销相对较小。
在一个可选的实现方式中,指示信息用于指示:生成编码子单元的原数据子单元在对应的原数据单元中的位置,如原数据子单元在对应的原数据单元中的位置可以用原数据子单元的序号向量来表示;对应的原数据单元在对应的数据块中的位置,如可以用原数据单元的序号向量来表示;及对应的数据块的位置,如可以用数据块的序号向量来表示;本实施例中,针对在多个数据块所对应的原数据子单元的范围内进行编码得到编码子单元的方式中,该指示信息可以包括生成编码子单元的原数据子单元在对应的原数据单元中的位置,对应的原数据单元在对应的数据块中的位置,及对应的数据块的位置就可以指示出该编码子单元是由哪些位置的原数据子单元编码得到的;本实施方式中,该指示信息通过位置指示(如序号向量)的方式指示出哪些原数据子单元参与编码的方式中,在某些应用场景中,如针对一个编码子单元,参与对该编码子单元编码的原数据子单元数量较少,或者该原数据子单元的位置具有规律性(如每个数据块中的第1个原数据单元对应的第1个原数据子单元进行编码),指示信息开销相对较小。
在一个可选的实现方式中,根据编码单元和编码子单元生成目标编码数据具体可以包括:拼接编码单元和编码子单元中的全部或部分数据,生成目标编码数据;一种情况中,拼接编码单元和编码子单元中的全部数据生成目标编码数据,编码单元的数量为多个,编码子单元的数量为多个,该多个编码单元中的每个编码单元均可以拼接任意数量的编码子单元,如该多个编码单元中的部分编码单元中的每个编码单元可以拼接至少一个编码子单元,而另一部分编码单元也可以不拼接编码子单元;另一种情况中,编码单元的数量为多个,编码子单元的数量为至少一个,将该一个编码子单元可以进一步拆分成多个子部分,每个编码单元可以拼接任意数量的子部分,如该多个编码单元中的部分编码单元中的每个编码单元可以拼接至少一个子部分,而另一部分编码单元也可以不拼接子部分;可以理解的是,目标编码数据包括多个编码数据包,每个编码数据包是由一个编码单元和任意数量的编码子单元组合得到的,该任意数量的编码子单元可以为零个或至少一个编码子单元,或者该任意数量的编码子单元也可以为将一个编码子单元进行拆分后得到的任意数量的子部分;本实施例中可以通过编码单元和编码子单元的组合策略,如拆分一个编码子单元,或累加放置多个编码子单元来调整编码子单元的粒度,从而使得编码单元和编码子单元更加适配传输块的大小,从而有效节省传输资源。
在一个可选的实现方式中,若编码子单元被拆分成多个部分,编码数据包的头部还需要携带所衔接的子部分对应的索引信息,该索引信息用于将每个编码子单元与被拆分的多个子部分建立对应关系;从而使得接收端根据该索引信息将该多个子部分对应到一个编码子单元。
在一个可选的实现方式中,原数据单元的数量为多个,多个原数据单元至少包括第一原数据单元和第二原数据单元,第一原数据单元包含在第一数据块中,第二原数据单元包 含在第二数据块中;根据编码单元和编码子单元生成目标编码数据还可以包括:拼接第一原数据单元对应的编码子单元和第二原数据单元对应的编码单元生成目标编码数据;本实施方式中将一个数据块对应的编码子单元与另一个数据块对应的编码单元组合生成目标编码数据,可以保证一个原数据单元对应生成的编码单元及编码子单元不会一起丢失,保证编码子单元的纠错能力。
在一个可选的实现方式中,多个原数据单元还包括第三原数据单元,第二数据块至少包括第一子块和第二子块,第二原数据单元包含在第一子块中,第三原数据单元包含在第二子块中,该第三原数据单元为第二子块中的至少一个原数据单元;拼接第二原数据单元对应的编码子单元和第二目标原数据单元对应的编码单元生成目标编码数据,其中,第二目标原数据单元至少包括第三原数据单元;本实施方式中,可以将每个数据块进一步划分为若干个子块,每个子块包括至少一个原数据单元,以一个子块中的原数据单元生成编码单元与下一个子块相关的第二目标原数据单元生成的编码单元组合生成目标编码数据,保证一个子块对应生成的编码单元及编码子单元不会一起丢失,能够更加有效地添加冗余编码子单元以保证纠错能力,并且可以有效降低编码子单元(冗余信息)的译码时延。
在一个可选的实现方式中,根据编码单元和编码子单元生成目标编码数据还可以包括:在第一时间单元对第一集合内原数据单元所分割的原数据子单元进行编码生成的编码子单元,与,在第二时间单元对第二集合内原数据单元编码得到的编码单元进行组合,生成目标编码数据,可以理解的是,第一集合对应第一时间单元,第二集合对应第二时间单元,该第二时间单元不早于该第一时间单元;第一集合内包括至少一个原数据单元,第二集合内包括至少一个原数据单元,第一集合内所包含的原数据单元和第二集合内所包含的原数据单元可以相同,也可能不同;如该第一集合可以为一个滑动窗口;本实施方式中,编码子单元作为冗余,在时序关系场景中,为了保证编码子单元能够对一定时间范围内的数据起到纠错作用,利用编码子单元相对于相关编码单元的滞后性来保证更好的纠错能力。
在一个可选的实现方式中,在目标编码数据的传输过程中,可以将目标编码数据中的编码单元和编码子单元分别通过不同的传输块传输,同一个传输块不会既承载编码单元又承载编码子单元;编码单元和编码子单元分别通过编码单元传输块和编码子单元传输块进行传输,确定当前传输块传输的类型,该类型包括编码单元传输块和编码子单元传输块,每个编码数据包的编码单元和编码子单元具有相互映射的索引序号,需要说明的是,编码单元传输块为用于传输编码单元的传输块,编码子单元传输块为用于传输编码子单元的传输块;本实施例中,将对应的编码单元和编码子单元通过不同的传输块进行传输,可以避免同一个目标编码数据的编码单元和编码子单元同时丢失,而且用于传输编码子单元的传输块中承载的编码子单元粒度小,可以更好的适配,节省编码子单元传输块的频谱资源。
在一个可选的实现方式中,确定当前传输块传输的类型可以包括如下步骤:首先,初始化编码单元的第一索引序号和编码子单元的第二索引序号,然后,承载多个编码单元,更新第一目标索引序号,第一目标索引序号为已承载的编码单元对应的第一索引序号中的最大值;或者承载多个编码子单元,更新第二目标索引序号,第二目标索引序号为已承载的编码子单元对应的第二索引序号中的最大值;判断第一目标索引序号是否大于第二目标 索引序号;若第一目标索引序号大于第二目标索引序号,则当前传输块为编码子单元传输块,用于承载编码子单元,若第一目标索引序号不大于第二目标索引序号,则当前传输块为编码单元传输块,用于承载编码单元;本实施例中,确定当前时间单元对应的传输块是承载编码单元还是编码子单元,可以通过比较已经传输(或承载)的编码单元的索引序号和编码子单元的索引序号的大小,来确定传输块承载的是编码单元还是编码子单元,当编码单元的索引序号刚好大于编码子单元的索引序号时,当前传输块承载编码子单元,当编码子单元的索引序号刚好大于或者等于编码单元的索引序号时,当前传输块承载编码单元,可以很好地保证具有对应关系的编码单元和编码子单元具有较低的时延。
在一个可选的实现方式中,目标编码数据的头部至少包括编码单元对应的数据块标识和编码单元的标识,可选的,还可以包括对应的编码系数;编码单元的编码系数和编码子单元的编码系数可以相同,也可以不同。
在一个可选的实现方式中,原数据子单元包括校验字段,该校验字段用于接收端对编码子单元译码后,判定具体哪个原数据子单元出错,纠错更具有针对性。
第二方面,本申请实施例提供了一种通信装置,该通信装置具有实现上述第一方面发送端设备所执行的功能;该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现;该硬件或软件包括一个或多个与上述功能相对应的模块。
第三方面,本申请实施例提供了一种通信装置,包括:处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得装置执行如上述第一方面中任一项所述的方法。
第四方面,本申请实施例提供了计算机可读介质,用于储存计算机程序或指令,计算机程序或指令被执行时使得计算机执行如上述第一方面中任一项所述的方法。
第五方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述第一方面中所涉及的功能,例如,例如发送或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
图1为一种可能的网络编码的示例图;
图2(a)至图2(d)为本申请实施例中几个应用场景的示意图;
图3为本申请实施例中目标编码数据的一个示例的结构示意图;
图4为本申请实施例中一种编码方法的一个示例的步骤流程示意图;
图5为本申请实施例中协议层的一个实施例的示意图;
图6为本申请实施例中基于原数据单元内的原数据子单元编码生成编码子单元的一个示例的示意图;
图7为本申请实施例中基于原数据单元间的原数据子单元编码生成编码子单元的一个示例的示意图;
图8为本申请实施例中基于数据块间的原数据子单元编码生成编码子单元的一个示例的示意图;
图9(a)为申请实施例中数据块之间以递推方式编码生成编码子单元的一个示例的示意图;
图9(b)为申请实施例中数据块之间以非递推方式编码生成编码子单元的一个示例的示意图;
图10为申请实施例中比特位图信息的一个示例的示意图;
图11为申请实施例中基于数据块间的原数据子单元编码生成编码子单元的另一个示例的示意图;
图12-图13为申请实施例中编码单元和编码子单元拼接方式的几个示例的示意图;
图14(a)和图14(b)为申请实施例中拆分后的编码子单元与编码子单元拼接的几个示例的示意图;
图15为申请实施例中传输块承载目标编码数据的一个示例的示意图;
图16至图20为申请实施例中基于时序关系编码单元和编码子单元拼接的几个示例的示意图;
图21为申请实施例中编码单元和编码子单元分别承载于不同的传输块进行传输的一个示例的示意图;
图22为申请实施例中传输块承载编码单元或编码子单元的一个示例的方法流程示意图;
图23为申请实施例中传输块承载编码单元或编码子单元的另一个示例的方法流程示意图;
图24(a)为本申请实施例中对编码单元和编码子单元进行解码的一个示例的示意图;
图24(b)为本申请实施例中对编码单元和编码子单元进行解码的另一个示例的示意图;
图25为本申请实施例中通信装置的一个示例的结构示意图;
图26为本申请实施例中通信装置的另一个示例的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。本申请中的“多个”为大于或者等于2个。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。
本申请实施例提供了一种编码方法,该方法可以应用于一种通信系统,该通信系统包括但不限定于第四代(4th generation,4G)通信系统,4.5G通信系统,5G通信系统,5.5G通信系统,6G通信系统,多种通信系统融合的系统,或者未来演进的通信系统。例如长期演进(long term evolution,LTE)系统,新空口(new radio,NR)系统,无线保真(wireless-fidelity,WiFi)系统,以及第三代合作伙伴计划(3rd generation partnership  project,3GPP)相关的通信系统等,以及其他此类通信系统。该通信系统包括网络设备和终端,该通信系统可应用于多种通信场景,如网络设备和终端之间的点对点传输,终端之间的点对点传输,网络设备和终端之间通过中继传输点传输、多个网络设备和终端之间的双连接(dual connectivity,DC)或多连接等场景。请参阅图2(a)-图2(d)所示,图2(a)示出的是点对点单连接的应用场景,即网络设备201与终端202之间直接建立连接,图2(b)示出的是多跳单连接的应用场景,即网络设备201和终端202之间通过多个中继传输点单连接的应用场景,图2(c)示出的是终端202与2个网络设备201双连接的应用场景,图2(d)示出的是终端202与网络设备201通过2个中继传输点双连接的应用场景,需要说明的是,图2(a)-图2(d)示出的仅是本申请示例性的应用场景,并非限定。
本申请中,网络设备可以是任意一种具有无线收发功能的设备。包括但不限于:LTE中的演进型基站(NodeB或eNB或e-NodeB,evolutional Node B),NR中的基站(gNodeB或gNB)或收发点(transmission receiving point/transmission reception point,TRP),3GPP后续演进的基站,WiFi系统中的接入节点,无线中继节点,无线回传节点等。基站可以是:宏基站,微基站,微微基站,小站,中继站,或,气球站等。多个基站可以支持上述提及的同一种技术的网络,也可以支持上述提及的不同技术的网络。基站可以包含一个或多个共站或非共站的TRP。网络设备还可以是云无线接入网络(cloud radio access network,CRAN)场景下的无线控制器、集中单元(centralized unit,CU),和/或,分布单元(distributed unit,DU)。网络设备还可以是服务器,可穿戴设备,机器通信设备、或车载设备等。以下以网络设备为基站为例进行说明。所述多个网络设备可以为同一类型的基站,也可以为不同类型的基站。基站可以与终端设备进行通信,也可以通过中继站与终端设备进行通信。终端设备可以与不同技术的多个基站进行通信,例如,终端设备可以与支持LTE网络的基站通信,也可以与支持5G网络的基站通信,还可以支持与LTE网络的基站以及5G网络的基站的双连接。
终端是一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持、穿戴或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。所述终端可以是手机(mobile phone)、平板电脑(Pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的终端、车载终端设备、无人驾驶(self driving)中的终端、辅助驾驶中的终端、远程医疗(remote medical)中的终端、智能电网(smart grid)中的终端、运输安全(transportation safety)中的终端、智慧城市(smart city)中的终端、智慧家庭(smart home)中的终端等等。本申请的实施例对应用场景不做限定。终端有时也可以称为终端设备、用户设备(user equipment,UE)、接入终端设备、车载终端、工业控制终端、UE单元、UE站、移动站、移动台、远方站、远程终端设备、移动设备、UE终端设备、无线通信设备、机器终端、UE代理或UE装置等。终端可以是固定的,也可以是移动的。
作为示例而非限定,在本申请中,终端可以是可穿戴设备。可穿戴设备也可以称为穿戴式智能设备,是应用穿戴式技术对日常穿戴进行智能化设计、开发出可以穿戴的设备的 总称,如眼镜、手套、手表、服饰及鞋等。可穿戴设备即直接穿在身上,或是整合到用户的衣服或配件的一种便携式设备。可穿戴设备不仅仅是一种硬件设备,更是通过软件支持以及数据交互、云端交互来实现强大的功能。广义穿戴式智能设备包括功能全、尺寸大、可不依赖智能手机实现完整或者部分的功能,例如:智能手表或智能眼镜等,以及只专注于某一类应用功能,需要和其它设备如智能手机配合使用,如各类进行体征监测的智能手环、智能首饰等。
在本申请中,终端可以是物联网(internet of things,IoT)系统中的终端,IoT是未来信息技术发展的重要组成部分,其主要技术特点是将物品通过通信技术与网络连接,从而实现人机互连,物物互连的智能化网络。本申请中的终端可以是机器类型通信(machine type communication,MTC)中的终端。本申请的终端可以是作为一个或多个部件或者单元而内置于车辆的车载模块、车载模组、车载部件、车载芯片或者车载单元,车辆通过内置的所述车载模块、车载模组、车载部件、车载芯片或者车载单元可以实施本申请的方法。因此,本申请实施例可以应用于车联网,例如车辆外联(vehicle to everything,V2X)、车间通信长期演进技术(long term evolution vehicle,LTE-V)、车到车(vehicle to vehicle,V2V)等。
本申请实施例提供了一种编码方法,该方法的执行主体可以为发送端设备,该发送端设备可以为网络设备(如基站)或终端(如UE)。或者该方法的执行主体可以为网络设备中的处理器、芯片或芯片系统。或者该方法的执行主体可以为终端中的处理器、芯片或芯片系统,具体的并不限定。
请参阅图3所示,图3本申请实施例中目标编码数据结构示意图。首先,发送端设备获取原数据单元,然后对获取的原数据单元301进行拆分,将原数据单元301分成了多个原数据子单元302,然后,分别对该原数据单元301和多个原数据子单元302进行编码。对原数据单元301进行编码,得到编码单元303,该编码单元303的大小与原数据单元301的大小相同,对多个原数据子单元302进行编码,生成编码子单元304,编码子单元304的大小和原数据子单元302的大小相同。进一步根据所述编码单元303和所述编码子单元304生成目标编码数据305,也即该目标编码数据305包括编码单元303和编码子单元304这两个部分,编码子单元304可以理解为包含冗余信息。传统网络编码技术中生成的冗余信息的大小与未编码之前的原数据单元大小相同,而本申请实施例中冗余信息的大小由编码子单元304的大小决定,编码子单元304的大小小于原数据单元301的大小。可以理解的是,size()表示数据单元大小的度量,原数据单元301的大小用size(d)表示,编码单元303的大小用size(s),编码单元303的大小与原数据单元301的大小相同,因此也可以用size(d)表示,编码子单元304的大小用size(p)表示,其中,size(p)<size(d),本申请实施例中的冗余信息的大小减小,明显降低了冗余信息开销,并且编码子单元304的大小和原数据单元301的大小不再相同,若原数据单元301的个数为k,目标编码数据305的个数为n,本申请中的码率将近似表述为:
Figure PCTCN2021076224-appb-000001
从该式子可以看出,可以通过调整n值以及编码子单元304的大小size(p)来调整码率,码率的调节将更加灵活,可取值的个数更多,粒度更细,本申请中的编码方法能够更好的适配频谱资源,节省开销。
请参阅图4所示,本申请实施例中的编码方法的执行主体可以为发送端设备,该发送 端设备可以为网络设备(如基站)或终端(如UE)。或者该方法的执行主体可以为网络设备中的处理器、芯片或芯片系统。或者该方法的执行主体可以为终端中的处理器、芯片或芯片系统。下面以执行主体为发送端设备为例进行描述。编码方法可以包括如下步骤:
步骤401、发送端设备获取原数据单元。
“原数据”为待编码的数据,“数据单元”可以为数据包,数据段,数据报文或数据帧等,例如,该“数据单元”可以以“数据包”为例进行说明,即该原数据单元可以理解为原数据包。
该原数据单元可以为发送端设备从对端接收到的数据,例如,该原数据单元可以来自相同的链路,或者,原数据单元也可以来自不同的链路。或者,该原数据单元可以为发送端设备生成的数据,即发送端设备待向对端发送的数据。
网络协议层中包含具有网络编码功能的网络编码层,可以在该网络编码层执行编码相关方法。请参阅图5所示,网络编码层可以为无线链路控制(radio link control,RLC)层、或分组数据汇聚协议(packet data convergence protocol,PDCP)层、或媒体接入控制(media access control MAC)层、或物理(physical,PHY)层;或者,可以在PDCP层之上增加一个网络编码层;或者,在PDCP层和RLC层之间增加一个网络编码层,或者,在RLC层和MAC层之间增加网络编码层,或者,在MAC层和PHY层之间增加网络编码层;或者该网络编码层可以为接入回传一体化(integrated access and backhaul,IAB)架构中的回传适配(backhaul adaptation protocol,BAP)层,或者,在IAB架构中的BAP层之上增加网络编码层。网络编码层可以接收上层协议层下发的原数据单元,例如,该网络编码层为RLC层,则RLC层可接收PDCP层下发的原数据单元。
步骤402、发送端设备对所述原数据单元进行拆分,得到原数据子单元的集合。
将原数据单元进行分割,原数据单元被分成多个原数据子单元,该集合包括多个原数据子单元。
可选的,所述原数据单元的数量为多个,对所述多个原数据单元中第一目标原数据单元进行拆分,得到与所述第一目标原数据单元对应的子集合,该第一目标原数据单元为多个原数据单元中的至少一个原数据单元,可以理解的是,对多个原数据单元中的至少一个原数据单元进行拆分,每个被拆分的原数据单元对应一个子集合,每个子集合中包括了多个原数据子单元,原数据子单元的集合包括所述子集合。
例如,在一个示例中,原数据单元的数量为K个,即原数据单元包括(d 1,d 2,...d K),每个数据单元的大小为nbit。在此基础上,将一个原数据单元等分为
Figure PCTCN2021076224-appb-000002
个子单元,其中,每个原数据子单元的大小为a bit,其中,a∈[1,n],共可以得到
Figure PCTCN2021076224-appb-000003
个原数据子单元。该集合包括
Figure PCTCN2021076224-appb-000004
个原数据子单元。例如,
Figure PCTCN2021076224-appb-000005
将d 1分成d 11和d 12这两个原数据子单元,d 1对应的子集合包含d 11和d 12;将d 2分成d 21和d 22这两个原数据子单元,d 2对应的子集合包含d 21和d 22;将d 3分成d 31和d 32这两个原数据子单元,d 3对应的子集合包含d 31和d 32;将d 4分成d 41和d 42这两个原数据子单元,d 4对应的子集合包含d 41和d 42;该原数据子单元的集合包括d 11,d 12,d 21,d 22,d 31,d 32,d 41和d 42这8个原数据子单元。需要说明的是, 这里对原数据单元和原数据子单元的数量仅是示例性的说明,并非限定。
步骤403、发送端设备对所述原数据单元进行编码,生成编码单元,且对集合中的多个原数据子单元进行编码,生成编码子单元。
可以通过分组编码,线性编码,随机线性网络编码等编码方式对原数据单元进行编码,得到编码单元。
例如,可以按照将多个原数据单元与编码系数相乘并累加的方式,得到多个编码单元,原数据单元的具体数量与编码单元的具体数量并不限定。例如,该原数据单元的数量可以大于,或等于,或者小于编码单元的数量,原数据单元的数量与编码单元的数量之间的关系由选定的编码系数决定。本申请实施例中为了方便说明,以原数据单元的数量和编码单元的数量相同为例进行说明,即以对K个原数据单元进行编码,得到K个编码单元。例如,对(d 1,d 2,d 3,d 4)进行编码,得到(s 1,s 2,s 3,s 4)。
对集合中的多个原数据子单元进行编码,该多个原数据子单元可以为集合中的部分原数据子单元,也可以为该集合中的全部原数据子单元。对该集合中的多个原数据子单元进行编码可以得到至少一个编码子单元,为了方便说明,以编码子单元的数量和编码单元的数量相同为例进行说明,即同样得到K个编码子单元,还是以K=4为例,在一个示例中,可以对(d 11,d 12,d 21,d 22,d 31,d 32,d 41和d 42)进行编码得到(p 1,p 2,p 3,p 4)这四个编码子单元;在另一个示例中,也可以对(d 11,d 21,d 31,d 41)进行编码得到(p 1,p 2,p 3,p 4)这四个编码子单元等,具体的编码方法并不限定。
步骤404、发送端设备根据所述编码单元和所述编码子单元生成目标编码数据。
拼接编码单元和编码子单元得到目标编码数据。例如,该目标编码数据包括3个编码数据包;拼接编码单元s 1与编码子单元p 1,得到第一编码数据包;拼接编码单元s 2与编码子单元p 2,得到第二编码数据包;拼接编码单元s 3与编码子单元p 3,得到第三编码数据包;可选的,编码数据包包括头部,该头部包括指示信息,该指示信息用于指示所述编码子单元与所述原数据单元的对应关系。例如,第一编码数据包中的指示信息用于指示:编码子单元p 1对应原数据子单元d 11和d 12,即p 1是对d 11和d 12编码得到的;第二编码数据包中的指示信息用于指示:编码子单元p 2对应原数据子单元d 21和d 22,即p 2是对d 21和d 22编码得到的;第三编码数据包中的指示信息用于指示:编码子单元p 3对应原数据子单元d 31和d 32,即p 3是对d 31和d 32编码得到的。第四个编码数据包中的指示信息用于指示:编码子单元p 4对应原数据子单元d 41和d 42,即p 4是对d 41和d 42编码得到的。
步骤405、发送端设备输出所述目标编码数据。
发送端设备向接收端设备发送该目标编码数据,例如终端向基站发送该目标编码数据;或者网络编码层向该网络编码层的下层协议层输出该目标编码数据,例如参阅图5所示,该网络编码层为RLC层,则RLC层向MAC层输出该目标编码数据。
本申请实施例中提供的一种编码方法,打破了传统网络编码方案以数据单元为单位的编码生成模式,进而提供了一种低于数据单元粒度的网络编码方法。该编码方法具有如下优点:1)通过将原数据单元分割为更小的子单元,继而以原数据子单元为单位进行编码得到编码子单元(该编码子单元可以视为冗余信息),通过调整编码子单元的大小,保证了更加灵活的码率以对传输资源进行适配。2)一个编码单元后直接拼接编码子单元,相对于传 统技术,减少了需要接收到一组编码包后才对末尾的冗余信息进行译码带来的时延,可以理解为,本申请实施例中的编码方法相对于传统网络编码方法可以提前译码。3)原数据单元中出错的位置以及出错的bit数随机不确定,可以以编码子单元为粒度对擦除或者错误的包进行恢复,并不需要像传统技术重新传输编码包来恢复出错的数据,从而节省频谱资源。
在步骤403中,对所述集合中的多个原数据子单元进行编码,生成编码子单元的可能的方法进行详细描述。
在步骤403的一种可选的实施方式,请参阅图6所示,图6为本申请实施例中数据单元内生成编码子单元的示意图。针对一个子集合内的多个原数据子单元进行编码,生成与所述子集合对应的至少一个编码子单元。
例如,原数据单元(d 1,d 2,...d K)属于同一个数据块,将原数据单元分成
Figure PCTCN2021076224-appb-000006
个原数据子单元,每个原数据单元对应一个子集合,例如原数据单元d 1对应一个子集合,该子集合包括多个原数据子单元,该多个原数据子单元为(d 1-1,d 1-2,...d 1-n/a)。同理,原数据单元d 2对应的子集合包括的多个原数据子单元为(d 2-1,d 2-2,...d 2-n/a),原数据单元d K对应的子集合包括的多个原数据子单元为(d K-1,d K-2,...d K-n/a)。以子集合为单位进行编码,即对子集合内所包含的多个原数据子单元进行编码,得到至少一个编码子单元。例如,对子集合(d 1-1,d 1-2,...d 1-n/a)中的至少两个原数据子单元进行编码,得到编码子单元p 1-1;对子集合(d 2-1,d 2-2,...d 2-n/a)中的至少两个原数据子单元进行编码,得到编码子单元p 1-2;对子集合(d K-1,d K-2,...d K-n/a)中的至少两个原数据子单元进行编码,得到编码子单元p 1-M。需要说明的是,K表示原数据单元的个数,M表示编码子单元的个数,n表示原数据单元的大小,a表示原数据子单元的大小,
Figure PCTCN2021076224-appb-000007
表示原数据单元分成的原数据子单元的个数,a∈[1,n]。
在第1种理解方式中,p 1-1可以表示至少一个编码子单元。在第2种理解方式中,该p 1-1可以理解为一个等效编码子单元。例如,对子集合(d 1-1,d 1-2,...d 1-n/a)中的至少两个原数据子单元进行编码得到了2个编码子单元,在第1种理解方式中,p 1-1表示2个编码子单元,每个编码子单元的大小与1个原数据子单元相同;在第2种理解方式中,该p 1-1表示1个等效编码子单元,由两个编码子单元组成一个等效编码子单元,相应的粒度不同了,该p 1-1的大小与2个原数据单元的大小相同。本申请实施例中,p 1-1,p 1-2至p 1-M可以参照对p 1-1进行理解,以下不再赘述。
本实施方式中,针对一个子集合内的多个原数据子单元进行编码得到编码子单元的方式,一个编码数据包是由一个原数据单元对应的编码单元和该原数据单元对应的编码子单元得到的,若在传输过程中编码单元的部分数据丢失或出错,接收端可以通过该编码单元的剩余部分数据及该编码子单元恢复出对应的原数据单元,无需以传统网络编码方法重新发送编码数据包,节省开销,同时保证了更加灵活的码率。
在第二种可选的实施方式中,请参阅图7所示,图7为本申请实施例中数据单元间生成编码子单元的示意图。针对多个所述子集合中至少两个子集合中的原数据子单元进行编码,生成至少一个编码子单元。
例如,原数据单元(d 1,d 2,...d K)属于同一个数据块,将原数据单元分成
Figure PCTCN2021076224-appb-000008
个原数据子单元,每个数据单元对应一个子集合,例如第1个原数据单元d 1对应一个子集合,该子集合包括多个原数据子单元,该多个原数据子单元为(d 1-1,d 1-2,...d 1-n/a),同理,原数据单元d 2对应的子集合包括的多个原数据子单元为(d 2-1,d 2-2,...d 2-n/a),第K个原数据单元d K对应的子集合包括的多个原数据子单元为(d K-1,d K-2,...d K-n/a)。本实施例中,在单个数据块的所有原数据子单元范围内选择性地进行网络编码;例如,对原数据子单元d 1-1和d 2-1进行编码,得到编码子单元p 1-1;对原数据子单元d 1-2和d 2-2进行编码,得到编码子单元p 1-2;对d 2-n/a和d K-n/a进行编码,得到编码子单元p 1-M。可以理解的是,本实施例中,对生成编码子单元p 1-1对应的至少2个原数据子单元包含于不同的子集合,但每个原数据子单元具体包含于哪个子集合均不限定,以上说明仅是示例性的,并非限定。
可选地,在该至少两个子集合中选择具有相同位置的原数据子单元进行编码生成至少一个编码子单元,即按一定规律编码生成编码子单元。例如,选择第1个原数据单元d 1至第K个原数据单元d K中每个原数据单元对应的第1个原数据子单元(如d 1-1,d 2-1,…,d K-1)进行编码得到p 1-1;选择d 1至d K中每个原数据单元对应的第2个原数据子单元(如d 1-2,d 2-2,…,d K-2)进行编码得到p 1-2,以此类推。
本实施方式中,编码子单元是由至少两个原数据单元对应的原数据子单元进行编码生成的,若在传输过程中编码单元(如对应原数据单元d1)的部分数据丢失或出错,接收端通过利用与该丢失或者出错部分数据相关的所有编码子单元,以及该相关的所有编码子单元对应的其他原数据子单元信息(如其他原数据子单元信息已经译码成功,或者通过多个编码子单元联合译码得到)进行译码,恢复出对应的原数据单元,相较于第一种可选的实施方式,本实施方式可以使编码子单元覆盖更大的原数据单元信息,即编码子单元纠错范围更大。相较于传统网络编码方法重新发送编码数据包,节省数据开销,同时保证了更加灵活的码率。此外,对于按一定规律编码生成编码子单元的情形,可以实现对应原数据子单元的提前译码,即无需收到所有的编码数据单元后对编码子单元译码,而是通过相关的编码子单元即可提前进行译码,可以改善时延。
在第三种可选的实施方式中,请参阅图8所示,图8为本申请实施例中数据块间生成编码子单元的示意图。所述多个原数据子单元包含在多个数据块中;针对所述多个数据块中的至少两个数据块中的原数据子单元进行编码,生成至少一个编码子单元。
例如,如图8所示,数据块的数量为R个,每个数据块包含K个原数据单元,一个原数据单元对应一个子集合,该子集合包括
Figure PCTCN2021076224-appb-000009
个原数据子单元。本实施方式中,在至少两个数据块对应的所有原数据子单元范围内选择性地进行网络编码。如图8所示,当传输第1个数据块时,在第1个数据块对应的所有的原数据子单元进行编码,得到M个编码子单元,即编码子单元(p 1-1,p 1-2,...p 1-M),当传输至第2个数据块时,可以在第1个数据块和第2个数据块对应的所有原数据子单元范围内进行编码,即对第1个数据块对应的原数据子单元和第2个数据块对应的原数据子单元进行联合编码,得到M个编码子单元,如(p 2-1,p 2-2,...p 2-M),当传输至第R个数据块时,可以在第1个数据块、第2个数据块至第R个数据块中对应的所有原数据子单元范围内进行编码,即对第1个数据块、第2个数据块 至第R个数据块对应的原数据子单元进行联合编码,得到M个编码子单元,如(p R-1,p R-2,...p R-M)。
可选地,在该至少两个数据块中选择具有相同位置的原数据子单元进行编码生成至少一个编码子单元,即按一定规律编码生成编码子单元。例如,该至少两个数据块中选择第1个原数据单元d 1至第K个原数据单元d K中每个原数据单元对应的第1个原数据子单元(如d 1-1,d 2-1,…,d K-1)进行编码得到p 1-1;选择d 1至d K中每个原数据单元对应的第2个原数据子单元(如d 1-2,d 2-2,…,d K-2)进行编码得到p 1-2,以此类推。
本实施方式中,编码子单元是由至少两个数据块对应的原数据子单元进行编码生成的,若在传输过程中编码单元(如对应第一数据块中的原数据单元d1)的部分数据丢失或出错,接收端通过利用与该丢失或者出错部分数据相关的所有编码子单元,以及该相关的所有编码子单元对应的其他原数据子单元信息(如其他原数据子单元信息已经译码成功,或者通过多个编码子单元联合译码得到)进行译码,恢复出对应的原数据单元,相较于第二种可选的实施方式,本实施方式可以使编码子单元包含更大范围的原数据单元信息,即编码子单元纠错范围更大。相较于传统网络编码方法重新发送编码数据包,节省数据开销,同时保证了更加灵活的码率。此外,对于按一定规律的编码生成编码子单元的情形,可以实现对应原数据子单元的提前译码,即无需收到所有的编码数据单元后对编码子单元译码,而是通过相关的编码子单元即可提前进行译码,可以改善时延。
在上述第三种可选的实施方式中,针对所述多个数据块中的至少两个数据块中的原数据子单元进行编码生成至少一个编码子单元的方式中,将该至少两个数据块中的编码子单元进行编码,即可以理解为至少两个数据块联合编码。可选的,数据块的联合方式包括递推方式和非递推方式,X可理解为联合深度,该联合深度是指:以X个数据块对应的所有原数据子单元作为联合单元,对该联合单元内的部分或全部原数据子单元进行编码,得到编码子单元。
参见图9(a)所示的一种可能的递推方式为:以X个数据块为联合单元,数据块递推式交叠,每个联合单元内部数据块之间的联合方式可以任意组合。
当R小于或者等于X时,其中,X为联合深度,R为数据块的数量,在X个数据块内,对第1个数据块至第X个数据块对应的原数据子单元进行编码。例如,若X为3,在一个示例中,第1个数据块内的原数据子单元进行编码得到编码子单元,第1个数据块和第2个数据块这两个数据块对应的原数据子单元进行编码得到编码子单元,第1个数据块至第3个数据块这3个数据块对应的原数据子单元进行编码得到编码子单元。需要说明的是,X个数据块为一个联合单元,联合单元内部对应的原数据子单元可以任意组合,例如,可以以第1个数据块和第3个数据块这2个数据块对应的原数据子单元进行编码得到编码子单元,或者以第2个数据块和第3个数据块这2个数据块对应的原数据子单元进行编码得到编码子单元。
当R大于X时,从第2个数据块至第(X+1)个数据块为一个联合单元,即对第2个数据块至第(X+1)个数据块这X个数据块对应的原数据子单元进行编码,得到编码子单元;从第3个数据块至第(X+2)个数据块这X个数据块为一个联合单元,即对第3个数据块至第(X+2)个数据块这X个数据块对应的原数据子单元进行编码,得到编码子单元; 以此类推。例如,当X为3,R为6时,则从第2个数据块至第4个数据块这3个数据块对应的原数据子单元进行编码,得到编码子单元;从第3个数据块至第5个数据块这3个数据块对应的原数据子单元进行编码,得到编码子单元,以此类推。当然上述例子中每次递推一个数据块进行联合编码仅为示例说明,也可以每次递推任意数量的数据块进行联合编码,具体的并不限定。
本实施方式中,以X个数据块对应的所有原数据子单元作为联合单元,联合单元之间数据块有交叠,R个数据块将通过X个数据块的递推成为一个较大的编码范围(R大于X),得到编码子单元所对应的原数据子单元的范围较大,可以更好地保证编码子单元的纠错能力。
参见图9(b)所示的一种可能的非递推方式:以X个数据块为一个联合单元,联合单元之间数据块没有交叠,每个联合单元内部数据块之间的联合方式可以任意组合。
例如,当X为3,R为6时,第1个数据块至第3个数据块为一个联合单元,第4个数据块至第6个数据块为一个联合单元,对第1个数据块至第3个数据块这3个数据块对应的原数据子单元进行编码得到编码子单元,对第4个数据块至第6个数据块这3个数据块对应的原数据子单元进行编码得到编码子单元。
本实施方式中,R个数据块中包括多个联合单元,每个联合单元包括X个数据块,且该多个联合单元之间数据块没有交叠,可以理解的是,以X个数据块为一个编码范围,相对于上一种递推方式编码范围相对较小,但是译码延时也较小。
下面对目标编码数据头部中包括的指示信息进行说明,该指示信息用于指示所述编码子单元与所述原数据单元的对应关系。
在上述指示信息的一种可能的实现方式中,所述指示信息包括比特位图信息,所述比特位图信息用于指示所述编码数据子单元与多个所述原数据子单元的位置对应关系。
以原数据子单元为粒度,构建所有原数据子单元对应的比特位图,即长度为
Figure PCTCN2021076224-appb-000010
个比特的位图表征每一个原数据子单元是否参与编码,根据比特位图中“0”或“1”指示情况得到共有m个原数据子单元参与编码,并且对应到m个参与编码的原数据子单元的位置。其中,R为数据块的数量,K为数据块中包含的原数据单元的数量,n表示原数据单元的大小,a表示原数据子单元的大小。
请参阅图10所示,例如,R=2,K=3,
Figure PCTCN2021076224-appb-000011
每个数据块包括3个原数据单元(d 1,d 2,d 3),将每个原数据单元分成2个原数据子单元,即将d 1分成d 1-1和d 1-2两个原数据子单元,将d 2分成d 2-1和d 2-2两个原数据子单元,将d 3分成d 3-1和d 3-2两个原数据子单元,两个数据块对应的原数据子单元的比特位图共12bit,每个比特位对应一个原数据子单元,每个比特位用“1”或者“0”来标识对应的原数据子单元是否参与编码,例如,“1”表示参与编码,而“0”表示未参与编码。如图10所示,根据比特位图的指示,由第1个数据块中的第1个原数据单元对应的第2个原数据子单元,第1个数据块中第2个原数据单元对应的第2个原数据子单元,第2个数据块中第2个原数据单元对应的第1个原数据子单元进行编码,生成编码子单元p 1-1
为了对下述实施例进行更好的说明,在对下述实施例进行说明之前,首先对涉及到的词语进行解释说明:
Figure PCTCN2021076224-appb-000012
p_vec 1表示数据块的序号向量,b num表示数据块的序号;
Figure PCTCN2021076224-appb-000013
p_vec 2表示原数据单元的序号向量,p num表示原数据子单元所属的原数据单元的序号;
Figure PCTCN2021076224-appb-000014
p_vec 3表示原数据子单元的序号向量,sp num表示原数据子单元在原数据单元中的序号,共m个原数据子单元参与编码。
在图6对应的实施例的基础上,在上述指示信息的一个可选的实施方式中,目标编码数据头部所携带的指示信息针对不同的情况有所不同。具体地,第一种情况:每个原数据单元对应的编码子单元的数量均相同。例如:每个原数据单元均对应1个编码子单元,或者每个原数据单元均对应2个编码子单元等。第二种情况:每个原数据单元对应的编码子单元的数量不相同。例如,请参阅图11所示,第1个原数据单元对应1个编码子单元(如p 1-1),第2个原数据单元对应3个编码子单元(如p 1-2,p 1-3,p 1-4)等,需要说明的是,此处,每个原数据单元对应的编码子单元的数量仅是举例说明,并非限定。
针对上述指示信息的第一种情况:指示信息为p_vec 3,通过p_vec 3就可以指示出每个编码子单元是由哪些原数据子单元编码生成的。例如,参阅图6所示,以每个原数据单元均对应1个编码子单元为例,那么,编码子单元p 1-1对应原数据单元d 1;编码子单元p 1-2对应原数据单元d 2;编码子单元p 1-M对应原数据单元d K;此时,K=M,在本实施例中,若p 1-1对应的指示信息为p_vec 3=(1,2,3),即可以表明,该p 1-1对应的原数据子单元为原数据单元d 1中的第1个,第2个和第3个原数据子单元(即d 1-1,d 1-2,d 1-3)。同理,若p 1-2对应的指示信息为p_vec 3=(1,2),即可以表明,该p 1-2对应的原数据子单元为:d 2对应的子集合中的第1个和第2个原数据子单元(即d 2-1,d 2-2)。
针对上述指示信息的第二种情况,第一种可能的实现方式:该指示信息包括p_vec 3和每个原数据单元对应的子集合中的编码子单元个数。通过每个原数据单元对应的编码子单元个数可以指示出每个编码子单元所对应的原数据单元。例如,该指示信息指示出第1个原数据单元d 1对应的编码子单元的个数为1个,就可以将编码子单元p 1-1对应到第1个原数据单元d 1,进一步,通过p_vec 3,可以指示出p 1-1对应d 1中哪些原数据子单元参与编码。同理,该指示信息指示出第2个原数据单元d 2对应的编码子单元的个数为3个,就可以将编码子单元p 1-2,p 1-3,p 1-4这三个编码子单元对应到第2个原数据单元d 2,进一步,p 1-2,p 1-3和p 1-4这三个编码子单元中每个编码子单元均可以对应一个p_vec 3,编码子单元通过p_vec 3可以指示出d 2对应的哪些原数据子单元参与了编码。例如,p 1-2对应的原数据子单元的序号向量为p_vec 3=(1,2),则指示出d 2对应的第1个原数据子单元和第2个原数据子单元参与对p 1-2编码;p 1-3对应原数据子单元的序号向量为p_vec 3=(2,3),指示出d 2对应子集合中的第2个原数据子单元和第3个原数据子单元参与对p 1-3编码。
针对上述指示信息的第二种情况,第二种可能的实现方式:该指示信息包括p_vec 3和p_vec 2。参阅图11所示,以p 1-3为例,p 1-3对应的指示信息为:p_vec 3=(2,3)和p_vec 2=(2,2),表明编码子单元p 1-3是由第2个原数据单元d 2对应子集合中的第2个和第3个原数据子单元编码得到。
在图7对应的实施例的基础上,在上述指示信息的一个可选的实施方式中,指示信息用于指示生成编码子单元的原数据子单元在对应的原数据单元中的位置,及所述对应的原 数据单元的位置。其中,生成编码子单元的原数据子单元在对应的原数据单元中的位置可以用p_vec 3来表示,所述对应的原数据单元的位置可以用p_vec 2来表示。
参阅图7所示,以编码子单元p 1-1为例,若该p 1-1对应的指示信息为p_vec 3=(2,3)和p_vec 2=(1,2);表明该p 1-1是由第1个原数据单元d 1对应的第2个原数据子单元d 1-2和第2个原数据单元d 2对应的第3个原数据子单元d 2-3进行编码得到的。
在图8对应的实施例的基础上,在上述指示信息的一个可选的实施方式中,指示信息用于指示:生成所述编码子单元的原数据子单元在对应的原数据单元中的位置,所述对应的原数据单元在对应的数据块中的位置,及所述对应的数据块的位置。其中,生成所述编码子单元的原数据子单元在对应的原数据单元中的位置可以用p_vec 3来表示;所述对应的原数据单元在对应的数据块中的位置可以用p_vec 2来表示;所述对应的数据块的位置可以用p_vec 1来表示。
参阅图8所示,以编码子单元p 2-1为例,若该p 2-1对应的指示信息包括p_vec 3=(2,3),p_vec 2=(1,2)和p_vec 1=(1,2),则该p 2-1是由:第1个数据块中第1个原数据单元d 1对应的第2个原数据子单元d 1-2,和,第2个数据块中第2个原数据单元d 2对应的第3个原数据子单元d 2-3进行编码得到的。
可选的,在一种实现方式中,每个b num由固定长度
Figure PCTCN2021076224-appb-000015
比特数表示,其中,R为数据块的数量,符号
Figure PCTCN2021076224-appb-000016
表示向上取整,若共有m个原数据子单元参与编码,则p_vec 1的长度共计
Figure PCTCN2021076224-appb-000017
比特;同理,每个p num由固定长度为
Figure PCTCN2021076224-appb-000018
比特数表示,其中K为原数据单元的个数,则p_vec 2的长度共计
Figure PCTCN2021076224-appb-000019
比特;每个sp num由固定长度
Figure PCTCN2021076224-appb-000020
比特数表示,其中,
Figure PCTCN2021076224-appb-000021
为原数据子单元的个数,则p_vec 3的长度共计
Figure PCTCN2021076224-appb-000022
比特。
可选的,在另一种实现方式中,每个b num,p num,sp num根据值的大小由不定长度的比特数表示,为了保证每两个b num之间可以互相识别,需要在每两b num之间添加一个固定b比特的间隔符号进行区分。同理,每两个p num之间添加一个固定b比特的间隔符号,每两个sp num之间添加一个固定b比特的间隔符号进行区分,其中b为正整数。
在图7对应的实施例的基础上,针对在至少两个子集合中选择具有相同位置的原数据子单元进行编码这种方式中,该指示信息可以为位置标识,每个编码子单元对应一个位置标识。例如,选择第1个原数据单元d 1至第K个原数据单元d K中每个原数据子单元对应的第1个原数据子单元(如d 1-1,d 2-1,…,d K-1)进行编码得到p 1-1,则编码子单元p 1-1对应的指示信息为位置标识“1”。另一个例子中,选择第1个原数据单元d 1至第K个原数据单元d K中每个原数据子单元对应的第2个原数据子单元(如d 1-2,d 2-2,…,d K-2)进行编码得到p 1-2,则编码子单元p 1-2对应的指示信息为位置标识为“2”。
指示信息为比特位图信息的实施方式中,可以通过比特位图直接指示出哪些位置对应的原数据子单元参与编码,且在某些应用场景中,如针对一个编码子单元,参与对该编码子单元编码的原数据子单元数量较多或者其原数据子单元的位置缺乏规律性,该比特位图以更加通用的指示方式表征,指示信息开销相对较小。而在图6-图8对应的实施例中指示 信息可能的实现方式中,该指示信息通过位置指示(如序号向量)的方式指示出哪些原数据子单元参与编码的方式中,在某些应用场景中,如针对一个编码子单元,参与对该编码子单元编码的原数据子单元数量较少,或者该原数据子单元的位置具有规律性(如对每个原数据单元对应的第1个原数据子单元进行编码),指示信息开销相对较小,对于在实际应用中,该指示信息具体采用上述可能实现方式中的哪种方式,可以根据应用场景而定。
下面对步骤404中,根据所述编码单元和所述编码子单元生成目标编码数据的可能的方法进行说明。
在步骤404的一个可选的实施方式中,拼接所述编码单元和所述编码子单元中的全部或部分数据,生成所述目标编码数据。需要说明的是,“拼接”的语意为将两个事物连接在一起,本申请实施例中,将编码单元和编码子单元中的全部或部分数据连接在一起,基于此语义,本申请实施例中并不限定仅以“拼接”作为语义表达,该“拼接”还可以替换为“衔接”,“联接”、“串接”,“串连”、“组合”等词语。
编码单元的数量为g个,编码子单元的数量为M个,所述g和M均为正整数。
可选地,g个编码单元中的每个编码单元与小于或者等于M的任意整数个编码子单元组合,拼接编码单元及与其组合的编码子单元,得到g个编码数据包,该目标编码数据包括g个编码数据包,每个编码数据包的头部携带编码子单元对应的指示信息。
第一种可能的实现方式中,请参阅图12所示,编码单元的数量为g个,编码子单元的数量为M个,当M=c×g时,其中,c为大于或者等于1的整数,即编码子单元的个数是编码单元个数的c倍。在该种实现方式中,每个编码单元与c个编码子单元组合,即拼接每个编码单元与c个编码子单元,得到g个编码数据包,每个编码数据包的大小相同。
第二种可能的实现方式中,请参阅图13所示,编码单元的数量为g个,编码子单元的数量为M个,所述g和M均为正整数;一个编码单元可以和任意数量的编码子单元进行组合,得到g个编码数据包,目标编码数据包括该g个编码数据包。例如,第1个编码单元后可以不衔接编码子单元,第2个编码单元可以衔接1个编码子单元,第3个编码单元可以衔接1个编码子单元,第4个编码单元可以衔接2个编码子单元等等;1个编码单元可以衔接的编码子单元的数据不限定。此种方式中,由于每个编码单元串接的编码子单元的数量可以不同,该目标编码数据包括的g个编码数据包的大小也可能不相同。
在上述第一种可能的实现方式和第二种可能的实现方式中,若编码单元后串接任意数量的编码子单元,即拼接编码单元和编码子单元的全部数据。
在第三种可能的实现方式中,拼接编码单元和编码子单元的部分数据。将编码子单元进一步拆分,满足
Figure PCTCN2021076224-appb-000023
其中,size(p)表示一个编码子单元p的大小,q表示将一个编码子单元的数据进一步拆分成q个子部分,第i部分数据大小为l i
在第一种方式中,参阅图14(a)所示,编码子单元可以按照编码单元的数量进行平均拆分,每个编码单元可以衔接等数量的子部分,如编码单元的数量为4个,将编码子单元的数据拆分成4个子部分,可以将每个子部分衔接至一个编码单元,每个编码单元衔接了编码子单元的一个子部分的部分数据。在第二种方式中,参阅图14(b)所示,编码子单元平均拆分成q个子部分,每个编码单元可以拼接任意数量的子部分。例如,可以将一个 编码子单元平均拆分成3个子部分,第1个编码单元后可以不拼接子部分,而第2个、第3个和第4个编码单元中每个编码单元均衔接1个子部分。可以理解的是,若第1个编码单元后可以不拼接子部分,而第2个、第3个和第4个编码单元中每个编码单元均只串接了一个编码子单元的部分数据。该种实现方式中,将编码子单元进一步分割成更小的粒度,可以实现更灵活的码率。需要说明的是,参阅图14(b)所示的编码子单元的拆分方式仅是示例性的,并非限定。在该两种方式中,由于编码子单元被拆分成多个子部分,编码数据包的头部还需要携带所衔接的子部分对应的索引信息,该索引信息用于将每个编码子单元与被拆分的多个子部分建立对应关系。
请参阅图15所示,本实施例中的上述三种可能的实现方式可以确保多个编码单元更加适配传输块(transport block,TB)的大小,由于不同的编码数据包的编码单元大小都相同,编码数据包的头部大小也相同,可以通过编码单元与编码子单元的组合策略,保证前几个编码数据包的大小相同,而最后一个编码数据包通过调整编码子单元的大小(如拆分一个编码子单元,或累加放置多个编码子单元)来保证与传输块中剩余资源的大小对齐,以节省传输资源;如果不能完全对齐,可以通过补“0”的方式对齐,补“0”的开销非常小,节省开销。可选的,每一个编码单元所串接的编码子单元的大小都不同,即p 1,p 2和p 3都可以互不相同,来对齐TB的大小,如果不能完全对齐,可以通过补“0”来对齐TB的大小。可选的,还可以在最后一个编码数据包包含编码子单元,并结合补“0”,保证编码数据包和TB的大小一致,以节省传输资源。
上述实施例是可以不考虑传输数据之间的时序关系,编码单元和编码子单元的组合方式的实施例,但是某些场景中,如多跳场景中数据是依次到达,或者卷积网络编码方案中,相关节点的网络编码和传输过程存在严格的时序关系,下面对基于传输块之间的时序关系,在步骤404中,根据所述编码单元和所述编码子单元生成目标编码数据的可能实现方式进行说明。
在步骤404的一个可选的实施方式中,所述原数据单元至少包括第一原数据单元和第二原数据单元,所述第一原数据单元包含在第一数据块中,所述第二原数据单元包含在第二数据块中。拼接所述第一原数据单元对应的编码子单元和所述第二原数据单元对应的编码单元生成所述目标编码数据。
例如,请参阅图16所示,每个数据块包含多个原数据单元,如第1个数据块至第3个数据块中每个数据块均包含4个原数据单元,第1个数据块包含d 1,d 2,d 3和d 4这4个原数据单元,第2个数据块包含d 5,d 6,d 7和d 8这4个原数据单元,第3个数据块包含d 9,d 10,d 11和d 12。该第一原数据单元为第1个数据块中的至少一个原数据单元,该第二原数据单元为第2个数据块中的至少一个原数据单元。拼接第一原数据单元(如d 1,d 2,d 3和d 4)对应的编码子单元(如p 1,p 2,p 3,p 4)和第二原数据单元对应的编码单元(如s 5,s 6,s 7,s 8),生成目标编码数据。该目标编码数据包括多个编码数据包,如编码单元s 5和编码子单元p 1组合为一个编码数据包;编码单元s 6和编码子单元p 2组合为一个编码数据包;编码单元s 7和编码子单元p 3组合为一个编码数据包;编码单元s 8和编码子单元p 4组合为一个编码数据包等;或者,该第一原数据单元为第2个数据块中的至少一个原数据单元, 该第二原数据单元可以为第3个数据块中的至少一个原数据单元。拼接第一原数据单元(如d 5~d 8)对应的编码子单元(如p 5~p 8)和第二原数据单元对应的编码单元(如s 9~s 12),生成目标编码数据。该目标编码数据包括多个编码数据包,如编码单元s 9和编码子单元p 5组合为一个编码数据包;编码单元s 10和编码子单元p 6组合为一个编码数据包;编码单元s 11和编码子单元p 7组合为一个编码数据包;编码单元s 12和编码子单元p 8组合为一个编码数据包等。
为了保证第1个数据块对应的原数据子单元生成的编码子单元(p 1~p 4)可以对第1个数据块整体进行纠错或者校验,相应的编码子单元通常位于编码单元s 4之后,如果编码子单元p 1~p 4与编码单元s 4组成一个编码数据包,则导致每个编码数据包的大小不一致,且一旦出错编码单元s 4与编码子单元(p 1~p 4)一起被擦除。为了能够更加有效地添加冗余信息,保证编码子单元以保证纠错能力,故将一个数据块对应的编码子单元与另一个数据块对应的编码单元组合生成目标编码数据,如将第1个数据块对应的编码子单元与第1个数据块之后的数据块(如第2个数据块)对应的编码单元组合生成目标编码数据,可以保证在同一个时间单元一个原数据单元对应生成的编码单元及编码子单元不会一起丢失。对于第1个数据块对应的编码子单元的位置可以采用补“0”的方式进行补齐,或者也可以采用第1个数据块中的第一原数据单元(d 1~d 4)的部分数据进行补齐,或者也可以采用第1个数据块中原数据单元对应的编码子单元(p 1~p 4)进行补齐,从而保证每个目标编码数据的大小一致,或者理解为保证每个编码数据包的大小一致。两个不同的数据块中所包含的原数据单元的个数可以相同,也可以不同,具体的数量并不限定。
在一个可选的实施方式中,请参阅图17所示,每个数据块又可以分成多个子块,每个子块中所包含至少1个原数据单元。第二数据块(如第2个数据块)至少包括第一子块和第二子块,其中,第一子块包括第二原数据单元,第二原数据单元为第一子块中的至少一个原数据单元(如d 5和d 6),第二子块包括第三原数据单元,第三原数据单元为第二子块中的至少一个原数据单元(如d 7和d 8)。
拼接第二原数据单元对应的编码子单元(p 5和p 6)和第二目标原数据单元对应的编码单元(s 7和s 8)生成所述目标编码数据。其中,第二目标原数据单元至少包括所述第三原数据单元,可以理解的是,第二目标原数据单元可以为(d 7和d 8),或者也可以为(d 6~d 8),或者也可以为(d 5~d 8)等,该第二目标原数据单元对应的编码单元可以为(s 7和s 8);例如,对(d 7和d 8)进行编码得到(s 7和s 8),或者也可以对(d 6~d 8)进行编码得到s 7和s 8,或者也可以对(d 5~d 8)进行编码得到(s 7和s 8),具体的并不限定。
本实施方式中,可以将每个数据块进一步划分为若干个子块,每个子块包括至少一个原数据单元,以一个子块中的原数据单元生成编码单元与下一个子块相关的第二目标原数据单元生成的编码单元组合生成目标编码数据,保证一个子块对应生成的编码单元及编码子单元不会一起丢失,能够更加有效地添加冗余信息,保证编码子单元以保证纠错能力,并且可以有效降低编码子单元的译码时延。可以理解的是,在一个示例中,第1个数据块中,由原数据单元(d 1和d 2)生成的编码单元(s 1和s 2)以及对应的编码子单元(p 1和p 2),编码子单元(p 1和p 2)与由原数据单元(d 1~d 4)编码生成的编码单元(s 3和s 4)组成目 标编码数据;由原数据单元(d 1~d 4)编码生成的编码子单元(p 3和p 4)与第2个数据块的第一个子块生成的编码单元(s 5和s 6)组合成目标编码数据;以此类推。此外,对于第1个数据块中第1个子块(d 1和d 2)生成的编码单元(s 1和s 2)对应的编码子单元可以采用补“0”的方式补齐,或者由第1个数据块中的部分数据补齐,或者由编码子单元(p 1和p 2)补齐,以保证每个编码数据包的大小一致。
在一个可选的实施方式中,拼接所述编码单元和所述编码子单元,生成所述目标编码数据,其中,所述编码单元对应于第二时间单元,所述编码子单元对应于第一时间单元,所述第二时间单元在时域上不早于所述第一时间单元。
在第一时间单元对第一集合内原数据单元所分割的原数据子单元进行编码生成的编码子单元,与,在第二时间单元对第二集合内原数据单元编码得到的编码单元进行组合,生成目标编码数据。可以理解的是,第一集合对应第一时间单元,第二集合对应第二时间单元,第一集合内包括至少一个原数据单元,第二集合内包括至少一个原数据单元,第一集合内所包含的原数据单元和第二集合内所包含的原数据单元可以相同,也可能不同。该第一集合为静态描述方式,若以动态方式描述第一集合,该第一集合可以理解为滑动窗口,或者也可以理解为原数据单元的关联深度。本实施例中该第一集合以滑动窗口为例进行说明。
可选地,本实施例中,编码单元和编码子单元的组合方法满足如下公式(1):
Figure PCTCN2021076224-appb-000024
其中,函数f表示编码对应的运算和操作,变量t表示第t个时间单元,参数h和k表示时延特性,系数span表示滑动窗口的跨度,即每次滑动窗口滑动的距离,d[]表示原数据单元,p[]表示编码子单元。
上述公式可以理解为第t个时间单元生成的编码子单元是对原数据单元集合(d[span×(t-1)+1-h],...,d[span×(t-1)+1-k])进行编码生成的,滑动窗口的大小(或者关联深度)为原数据单元集合中首末位置求差,该滑动窗口的大小表示为Δ=k-h+1。
在第一个示例中,请参阅图18所示,窗口大小为4个原数据单元,即Δ=4;滑动窗口每次滑动的跨度是1个原数据单元,即span=1;原数据单元对应生成编码子单元的时延是0(即第二时间单元等于第一时间单元),即h=0。具体地,滑动窗口从第1个原数据单元d 1开始进入,此时在滑动窗口中仅有d 1这一个原数据单元,因此只能对一个原数据单元d 1拆分的原数据子单元编码生成编码子单元p 1,并与d 1对应的编码单元s 1组合成目标编码数据,以此类推,滑动窗口每次滑动1个原数据单元,当滑动窗口滑动4次时,滑动窗口中的原数据单元为(d 1~d 4),之后滑动窗口内始终保持4个原数据单元,直到窗口退出。
span=1,当Δ=4,h=0时,k=3;按照上述公式(1)所示,将上述参数代入到公式1中:
当t=4时,则p[4]=f(d[4],...,d[1]),表明原数据单元(d 1~d 4)所对应的原数据子单 元编码生成编码子单元p 4,由于h=0,第一时间单元等于第二时间单元,若编码子单元p 4对应第一时间单元,该p 4与第二时间单元对应的编码单元s 4组合生成目标编码数据。
该s 4由第二集合中的原数据单元进行编码生成,该s 4可以由d 4编码生成,或者,该s 4可以由d 3和d 4编码生成,或者,该s 4可以由(d 1~d 4)编码生成等等,第二集合中的原数据单元具体的并不限定。
同理,当t=5时,则p[5]=f(d[5],...,d[2]),表明原数据单元(d 2~d 5)所对应的原数据子单元编码生成编码子单元p 5,由于h=0,第一时间单元等于第二时间单元,若编码子单元p 5对应第一时间单元,该p 5与第二集合中的原数据单元(对应第二时间单元)对应的编码单元s 5组合生成目标编码数据,以此类推,不赘述。
在第二个示例中,请参阅图19所示,本示例相对于第一个示例,时序关系进行了调整,原数据单元对应生成编码子单元的时延是一个时间单元(第二时间单元晚于第一时间单元),即h=1;窗口大小为4个原数据单元,即Δ=4;滑动窗口每次滑动的跨度是1个原数据单元,即span=1。
例如,滑动窗口从第1个原数据单元d 1开始进入,此时在滑动窗口中仅有d 1这一个原数据单元,因此只能对一个原数据单元d 1拆分的原数据子单元编码生成编码子单元p 2,由于延迟h=1,p 2对应第一时间单元,滑动窗口再滑动一个原数据单元,此时在第二时间单元,滑动窗口中有d 1和d 2这两个原数据单元,一方面,对d 1和d 2拆分的原数据子单元编码生成编码子单元p 3,另一方面,p 2与包含d 2的原数据单元(如d 1和d 2,或者d 2)对应生成的编码单元s 2组合成目标编码数据;同理,p 3与包含d 3的原数据单元(如d 1~d 3,或d 2和d 3,或d 3)对应生成的编码单元s 3组合成目标编码数据,以此类推。滑动窗口每次滑动1个原数据单元,当滑动窗口滑动4次时,滑动窗口中的原数据单元为(d 1~d 4),之后滑动窗口始终保持4个原数据单元,直到窗口退出。
span=1,当Δ=4,h=1时,k=4;按照上述公式1所示,将上述参数代入到公式1中:
当t=5时,p[5]=f(d[4],...,d[1]),表明原数据单元(d 1~d 4)所对应的原数据子单元编码生成编码子单元p 5,由于h=1,若编码子单元p 5对应第一时间单元,该p 5与第二时间单元对应的编码单元s 4组合生成目标编码数据。该s 4由第二集合中的原数据单元进行编码生成,该s 4可以由d 4编码生成,或者,该s 4可以由d 3和d 4编码生成,或者,该s 4可以由(d 1~d 4)编码生成等等,第二集合中的原数据单元具体的并不限定。
同理,当t=6时,p[6]=f(d[5],...,d[2]),表明原数据单元(d 2~d 5)所对应的原数据子单元编码生成编码子单元p 6,由于h=1,若编码子单元p 6对应第一时间单元,该p 6与第二时间单元对应的编码单元s 5组合生成目标编码数据。该s 5由第二集合中的原数据单元进行编码生成,该s 5可以由d 5编码生成,或者,该s 5可以由d 4和d 5编码生成,或者,该s 5可以由(d 2~d 5)编码生成等等,第二集合中的原数据单元具体的并不限定。
在第三个示例中,请参阅图20所示,本示例相对于第二个示例,滑动窗口的跨度进行了调整,原数据单元对应生成编码子单元的时延是一个时间单元(第二时间单元晚于第一时间单元),即h=1;窗口大小为4个原数据单元,即Δ=4;滑动窗口每次滑动的跨度是 2个原数据单元,即span=2。由于span=2,滑动窗口滑动一次生成两个编码子单元,该两个编码子单元也可以为同一个编码子单元平均拆分成的两个子部分。
例如,滑动窗口从第1个原数据单元和第2个原数据单元d 1和d 2开始进入,此时在滑动窗口中有d 1和d 2这两个原数据单元,因此对原数据单元d 1和d 2拆分的原数据子单元编码生成编码子单元p 3和p 4,由于延迟h=1,(p 3和p 4)与包括但不限于(d 3和d 4)对应的编码单元(s 3和s 4)组合成目标编码数据,滑动窗口再滑动一次,滑动2个原数据单元的距离,滑动窗口中的原数据单元为(d 1~d 4),之后滑动窗口始终保持4个原数据单元,直到窗口退出。
span=2,当Δ=4,h=1时,k=4;按照上述公式1所示,将上述参数代入到公式1中:
当t=3时,(p[5],p[6])=f(d[4],...,d[1]),表明原数据单元(d 1~d 4)所对应的原数据子单元编码生成编码子单元p 5和p 6,由于h=1,若编码子单元p 5和p 6对应第一时间单元,该(p 5和p 6)与第二时间单元(如t=4)对应的编码单元(s 5和s 6)组合生成目标编码数据。该(s 5和s 6)由第二集合中的原数据单元进行编码生成,该(s 5和s 6)可以由(d 5和d 6)编码生成,或者,该(s 5和s 6)可以由(d 3~d 6)编码生成,或者,该(s 5和s 6)可以由(d 4~d 6)编码生成等等,该编码单元由第二集合中的哪些原数据单元编码生成具体并不限定。
相应地,上述三个示例中,对于起始时间单元对应的目标编码单元由于时序关系的原因没有对应的编码子单元,因此可以采用补“0”的方式将目标编码单元对应的编码子单元的位置补齐,或者该编码子单元的位置由部分原始数据或者编码单元或者编码子单元补齐,保证每个编码数据包的大小一致。
本实施例中,编码子单元作为冗余信息,在具有时序关系的应用场景中,为了保证编码子单元能够对一定时间范围内的数据起到纠错作用,利用编码子单元相对于相关编码单元的滞后性来保证更好的纠错能力。
下面对步骤405中,输出目标编码数据步骤进行说明。发送端设备向接收端发送该目标编码数据,将目标编码数据承载于传输块,下面对可能实现的承载方法进行说明。
在步骤405的一个可选的实施方式中,请参阅图21所示,将目标编码数据中的编码单元和编码子单元分别通过不同的传输块传输,同一个传输块不会既承载编码单元又承载编码子单元。编码单元和编码子单元分别通过编码单元传输块和编码子单元传输块进行传输,每个编码数据包的编码单元和编码子单元具有相互映射的索引序号。
如图21所示,第1个传输块和第2个传输块用于传输编码单元,而第3个传输块用于传输编码子单元。由于编码单元和对应的编码子单元分别承载于不同的传输块,编码单元与编码子单元的对应关系已经打乱,为了保证接收端成功译码,接收端需要将编码单元和编码子单元进行对应,因此编码子单元也需要一个头部,对编码单元的头部和编码子单元的头部中添加相互映射的索引序号,该索引序号作为编码单元和编码子单元的识别号。如图21所示,编码单元(s 1~s 4)由于编码单元数据较大,分别承载于第1个传输块和第2个传输块这两个传输块进行传输,相应的编码子单元(p 1~p 4)由于数据少,承载于一个 传输块进行传输;由于编码单元的头部和对应的编码子单元的头部上都添加了索引序号,可以保证接收端识别同一个目标编码数据的编码单元和编码子单元这两个部分,并根据编码单元和编码子单元头部的索引序号重新对应,将编码单元和编码子单元组成完整的目标编码数据,进行译码。本实施方式中,将对应的编码单元和编码子单元通过不同的传输块进行传输,可以避免同一个目标编码数据的编码单元和编码子单元同时丢失,而且用于传输编码子单元的传输块中承载的编码子单元粒度小,可以更好的适配,节省编码子单元传输块的频谱资源。
在传输过程中,编码单元和编码子单元存在一定的对应关系,编码单元和编码子单元分别承载于不同的传输块,由于编码单元和编码子单元的大小存在很大的差异,对两类传输块采用间隔传输的方式(如第1个数据块承载编码单元,第2个数据块承载编码子单元,第3个数据块承载编码单元等),会导致编码单元和编码子单元的对应关系错位,针对一个目标编码数据会产生很大的译码时延,通过重传进程(如混合自动重传请求(hybrid automatic repeat request,HARQ))传输,发送端需要增加存储接收时延这个时间段内发送的数据,进而增加了发送端的存储开销,接收端则产生由译码时延产生的存储开销,由此,传输过程中,需要按照一定的规则确定每个传输块是编码单元传输块还是编码子单元传输块,使得编码单元与对应的编码子单元在传输过程中具有较小的时延。下面对确定每个传输块是编码单元传输块还是编码子单元传输块可能的实现方式进行说明:
在第一个可能的实现方式中,请参阅图22所示,具体步骤流程包括:
步骤2201、初始化编码单元的第一索引序号(如用“s_index”表示),s_index=0;编码子单元的第二索引序号(如用“p_index”表示),p_index=0。
步骤2202、承载多个编码单元,更新第一目标索引序号,所述第一目标索引序号为已承载的编码单元对应的第一索引序号中的最大值;或者承载多个编码子单元,更新第二目标索引序号,所述第二目标索引序号为已承载的编码子单元对应的第二索引序号中的最大值。
如当第1个传输块承载编码单元时,第1个传输块承载s_index=1,s_index=2两个编码单元,则将第一目标索引序号更新为“2”,由于还未传输编码子单元,则第二目标索引序号为“0”。
如当第1个传输块承载编码子单元时,第1个传输块承载p_index=1,p_index=2,p_index=3,p_index=4,p_index=5的五个编码子单元,则将第二目标索引序号更新为“5”,由于还未传输编码单元,则第一目标索引序号为“0”。
步骤2203、判断第一目标索引序号是否大于第二目标索引序号;若第一目标索引序号大于第二目标索引序号,则继续执行步骤2204;若第一目标索引序号不大于第二目标索引序号,则继续执行步骤2205。
例如,若第1个传输块传输编码单元,第一目标索引序号为“2”,第二目标索引序号为“0”,2>0,则执行步骤2204。
若第1个传输块传输编码子单元,第一目标索引序号为“0”,第二目标索引序号为“5”,0<5,则执行步骤2205。
步骤2204、承载编码子单元,更新第二目标索引序号,重复执行步骤2203。
当第一目标索引序号大于第二目标索引序号,即2>0,当前传输块(如第2个传输块)用于承载编码子单元,当前传输块承载p_index=1,p_index=2,p_index=3,p_index=4,p_index=5这五个编码子单元,将第二目标索引序号更新为“5”,此时第一目标索引序号为“2”,然后继续比较第一目标编码序号和第二目标编码序号的大小。
步骤2205、承载编码单元,更新第一目标索引序号,重复执行步骤2203。
当第一目标索引序号不大于第一目标索引序号时,即0<5,当前传输块(如第2个传输块)用于承载编码单元,当前传输块承载s_index=3,s_index=4两个编码单元。更新第一目标索引序号为“4”,此时的第二目标索引序号仍然为“5”。继续比较第一目标索引序号和第二目标索引序号的大小。
本实施例中,确定当前时间单元对应的传输块是承载编码单元还是编码子单元,可以通过比较已经传输(或承载)的编码单元的索引序号和编码子单元的索引序号的大小,来确定传输块承载的是编码单元还是编码子单元,当编码单元的索引序号刚好大于编码子单元的索引序号时,当前传输块承载编码子单元,当编码子单元的索引序号刚好大于或者等于编码单元的索引序号时,当前传输块承载编码单元,可以很好地保证具有对应关系的编码单元和编码子单元具有较低的时延。
在第二个可能的实现方式中,请参阅图23所示,具体步骤流程包括:
步骤2301、初始化编码单元的第一索引序号(如用“s_index”表示),s_index=0;编码子单元的第二索引序号(如用“p_index”表示),p_index=0。
步骤2302、承载多个编码单元,更新第一目标索引序号,所述第一目标索引序号为已承载的多个编码单元对应的第一索引序号中的最大值;
如当第1个传输块承载编码单元时,第1个传输块承载s_index=1,s_index=2两个编码单元,则将第一目标索引序号更新为“2”。
步骤2303、判断第一目标索引序号是否大于第二目标索引序号与第一阈值之和,所述第二目标索引序号为已承载的多个编码子单元对应的第二索引序号中的最大值;若第一目标索引序号大于第二目标索引序号与第一阈值之和,则执行步骤2304;若第一目标索引序号不大于第二目标索引序号与第一阈值之和,则执行步骤2302;
第一目标索引序号更新为“2”,当前还未传输编码子单元,则第二目标索引序号为“0”。假设第一阈值为1。即2>1,则执行步骤2204;假设第一阈值为3,即2<3,则执行步骤2302。
步骤2304、承载多个编码子单元,更新第二目标索引序号,继续执行步骤2305。
该传输块用于传输编码子单元,该传输块承载p_index=1,p_index=2,p_index=3,p_index=4,p_index=5这五个编码子单元,更新第二目标索引序号为“5”,继续执行步骤2205。
步骤2305、判断第二目标索引序号是否大于第一索引序号与第二阈值之和,若第二目标索引序号大于第一索引序号与第二阈值之和,则执行步骤2302;若第二目标索引序号不大于第一索引序号与第二阈值之和,则继续执行步骤2304。
第二目标索引序号为“5”,第一目标索引序号为“2”,假设该第二阈值为2,则5>4,则继续执行步骤2302;假设第二阈值为4,则5<6,则继续执行步骤2304。
本实施例中,该第一阈值和第二阈值可以相同,也可以不同,具体的并不限定。本实施例中可以通过第一阈值和第二阈值来调整传输块传输编码单元或编码子单元的数量。增大第一阈值,增加传输编码单元的数量,或者增大第二阈值,增加传输编码子单元的数量。
可选地,本实施例中,用于传输编码单元的传输块和用于传输编码子单元的传输块可以通过不同的时频资源进行传输。或者,用于传输编码单元的传输块和用于传输编码子单元的传输块可以通过不同传输接收点(transmission reception point,TRP)进行传输。
可选地,本申请实施例中目标编码数据的头部还包括编码单元信息,所述编码单元信息至少包括编码单元对应的数据块标识和编码单元的标识,可选的,还可以包括对应的编码系数。编码单元的编码系数和编码子单元的编码系数可以相同,也可以不同。
可以理解的是,对于里德所罗门(reed-solomon,RS)网络编码等方案,编码生成矩阵中编码系数是非随机的,可以半静态配置,无需添加到头部中;对于编码系数随机选择的网络编码方案,如随机线性网络编码(random linear network coding,RLNC)方案,相应的编码系数需要添加到对应的头部(或包头)。且对于RLNC等方案中编码系数随机选择的情形,相应的包头基于上述包头设计的基础上,需要添加编码系数(如vec sp=(c 1,c 2,...,c m)),该编码系数可以单独用于m个编码子单元的系数,也可以与编码单元对应的系数vec p=(cp 1,cp 2,...,cp m)通过运算联合使用,即每一个编码子单元的实际编码系数为编码子单元对应的系数c x与编码单元对应的系数cp y进行运算得到的,该运算包括但不限于加和、乘积、多项式运算等,其中,c x为(c 1,c 2,...,c m)中任一个元素,cp y为(cp 1,cp 2,...,cp m)中任一个元素。
可选地,编码单元的编码系数可以为1,当编码单元的编码系数为1时,所述编码单元为所述原数据单元。
以上以发送端设备为执行主体对数据的编码方法进行了说明,下面对接收端设备接收到目标编码数据,对目标编码数据进行解码进行简要说明。该解码方法的执行主体为接收端设备,该接收端设备可以基站,解码方法的执行主体可以为基站中的处理器、芯片或芯片系统;或该接收端设备可以为终端,该解码方法的执行主体可以为终端中的处理器、芯片或芯片系统。下面以执行主体为接收端设备为例进行描述。该解码方法可以包括:
接收端设备接收所述目标编码数据,所述目标编码数据是由编码单元和所述编码子单元生成的,所述编码单元是对所述原数据单元进行编码后生成的,所述编码子单元是将原数据单元进行拆分后得到的多个原数据子单元进行编码后得到的;所述目标编码数据包括头部,所述头部包括索引信息,所述索引信息用于指示所述编码子单元与所述原数据单元的对应关系;
根据所述原数据子包及所述头部信息确定所述原数据子包对应的原数据单元。
对所述编码单元进行解码,得到原数据单元,并对所述编码子单元进行解码,得到原数据子包;得到原数据单元。
请参阅图24(a)所示,以4个原数据单元为例进行说明,四个原数据单元(d 1,d 2, d 3,d 4),对应生成四个编码单元(s 1,s 2,s 3,s 4),每个目标编码数据包含编码单元和编码子单元。若s 1中仅部分bit数据错误,其余数据内容正确,通过编码子单元p1-p4,替换掉出错的数据,保证目标编码数据正确译码,相对于传统网络编码方案,请参阅图24(b),需要重新发送至少1个编码单元(若初次发送的每个编码单元都有错误信息,则最多需要重新发送4个编码单元),可见本申请实施例中的编码方法可以极大地降低了冗余信息的开销。
若该编码单元中有错误的bit数据,一种可能的实现方式,编码子单元之间正确译码,直接替换掉编码单元中译码错误的bit数据,通过每个原数据单元的循环冗余校验(cyclic redundancy check,CRC)校验以保证数据正确性;另一种可能的实现方式,将编码子单元替换掉编码单元中错误的bit数据(采用相同的编码方式和编码系数),将编码单元和编码子单元一起重新译码,进行CRC校验,为了保证有效性,根据编码子单元的编码粒度,每个原数据子单元均会包括CRC校验字段,通过原数据子单元的CRC校验字段可以判断出哪个原数据子单元出错,更有针对性。
相应于上述方法实施例给出的方法,本申请实施例还提供了相应的装置,包括用于执行上述实施例相应的模块。所述模块可以是软件,也可以是硬件,或者是软件和硬件结合。
图25给出了一种通信装置的结构示意图。所述装置2500可以是网络设备,也可以是终端设备,也可以是支持网络设备实现上述方法的芯片、芯片系统、或处理器等,还可以是支持终端设备实现上述方法的芯片、芯片系统、或处理器等。该装置可用于实现上述方法实施例中描述的方法,具体可以参见上述方法实施例中的说明。
所述装置2500可以包括一个或多个处理器2501,所述处理器2501也可以称为处理单元,可以实现一定的控制功能。所述处理器2501可以是通用处理器或者专用处理器等。例如可以是基带处理器或中央处理器。基带处理器可以用于对通信协议以及通信数据进行处理,中央处理器可以用于对通信装置(如,基站、基带芯片,终端、终端芯片,DU或CU等)进行控制,执行软件程序,处理软件程序的数据。
在一种可选的设计中,处理器2501也可以存有指令和/或数据2503,所述指令和/或数据2503可以被所述处理器运行,使得所述装置2500执行上述方法实施例中描述的方法。
在另一种可选的设计中,处理器2501中可以包括用于实现接收和发送功能的收发单元。例如该收发单元可以是收发电路,或者是接口,或者是接口电路。用于实现接收和发送功能的收发电路、接口或接口电路可以是分开的,也可以集成在一起。上述收发电路、接口或接口电路可以用于代码/数据的读写,或者,上述收发电路、接口或接口电路可以用于信号的传输或传递。
在又一种可能的设计中,装置2500可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。
可选的,所述装置2500中可以包括一个或多个存储器2502,其上可以存有指令2504,所述指令可在所述处理器上被运行,使得所述装置2500执行上述方法实施例中描述的方法。可选的,所述存储器中还可以存储有数据。可选的,处理器中也可以存储指令和/或数 据。所述处理器和存储器可以单独设置,也可以集成在一起。例如,上述方法实施例中所描述的对应关系可以存储在存储器中,或者存储在处理器中。
可选的,所述装置2500还可以包括收发器2505和/或天线2506。所述处理器2501可以称为处理单元,对所述装置2500进行控制。所述收发器2505可以称为收发单元、收发机、收发电路、收发装置或收发模块等,用于实现收发功能。
可选的,本申请实施例中的装置2500可以用于执行本申请实施例中图4描述的方法,也可以用于执行图4对应的方法实施例所对应的各种实现方式的方法及各种实现方式相互结合的方法。
本申请中描述的处理器和收发器可实现在集成电路(integrated circuit,IC)、模拟IC、射频集成电路RFIC、混合信号IC、专用集成电路(application specific integrated circuit,ASIC)、印刷电路板(printed circuit board,PCB)、电子设备等上。该处理器和收发器也可以用各种IC工艺技术来制造,例如互补金属氧化物半导体(complementary metal oxide semiconductor,CMOS)、N型金属氧化物半导体(nMetal-oxide-semiconductor,NMOS)、P型金属氧化物半导体(positive channel metal oxide semiconductor,PMOS)、双极结型晶体管(Bipolar Junction Transistor,BJT)、双极CMOS(BiCMOS)、硅锗(SiGe)、砷化镓(GaAs)等。
以上实施例描述中的装置可以是网络设备或者终端设备,但本申请中描述的装置的范围并不限于此,而且装置的结构可以不受图25的限制。装置可以是独立的设备或者可以是较大设备的一部分。
如图26所示,本申请又一实施例提供了一种通信装置2600。该装置可以是终端,也可以是终端的部件(例如,集成电路,芯片等等)。或者,该装置可以是网络设备,也可以是网络设备的部件(例如,集成电路,芯片等等)。该装置也可以是其他通信模块,用于实现本申请方法实施例中的方法。该装置2600可以包括:处理模块2601(或称为处理单元)。可选的,还可以包括收发模块2602(或称为收发单元)和存储模块2603(或称为存储单元)。
在一种可能的设计中,如图26中的一个或者多个模块可能由一个或者多个处理器来实现,或者由一个或者多个处理器和存储器来实现;或者由一个或多个处理器和收发器实现;或者由一个或者多个处理器、存储器和收发器实现,本申请实施例对此不作限定。所述处理器、存储器、收发器可以单独设置,也可以集成。
所述装置具备实现本申请实施例描述的终端的功能,比如,所述装置包括终端执行本申请实施例描述的终端涉及步骤所对应的模块或单元或手段(means),所述功能或单元或手段(means)可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现,还可以通过软件和硬件结合的方式实现。详细可进一步参考前述对应方法实施例中的相应描述。或者,所述装置具备实现本申请实施例描述的网络设备的功能,比如,所述装置包括所述网络设备执行本申请实施例描述的网络设备涉及步骤所对应的模块或单元或手段(means),所述功能或单元或手段(means)可以通过软件实现,或者通过硬件实现,也可以通过硬件执行相应的软件实现,还可以通过软件和硬件结合的方式实现。详细可进一步参考前述对应方法实施例中的相应描述。
可选的,本申请实施例中的装置2600中各个模块可以用于执行本申请实施例中图4描述的方法,也可以用于执行图4对应的方法实施例所对应的各种实现方式的方法及各种实现方式相互结合的方法。
在一个可能的设计中,一种装置2600包括:处理模块2601。
处理模块2601,用于获取原数据单元;对所述原数据单元进行拆分,得到原数据子单元的集合;对所述原数据单元进行编码,生成编码单元,且对所述集合中的多个原数据子单元进行编码,生成编码子单元;根据所述编码单元和所述编码子单元生成目标编码数据;输出所述目标编码数据。
在一种可能的设计中,一种装置2600可包括:处理模块2601和收发模块2602。
收发模块2602,用于获取原数据单元;
处理模块2601,用于对收发模块2602获取到的所述原数据单元进行拆分,得到原数据子单元的集合;对所述原数据单元进行编码,生成编码单元,且对所述集合中的多个原数据子单元进行编码,生成编码子单元;根据所述编码单元和所述编码子单元生成目标编码数据;
收发模块2602,还用于输出处理模块2601生成的所述目标编码数据。
可选的,处理模块2601,还用于当所述原数据单元的数量为多个时,对所述多个原数据单元中第一目标原数据单元进行拆分,得到与所述第一目标原数据单元对应的子集合,所述子集合包括多个原数据子单元,所述集合包括所述子集合。
可选的,处理模块2601,还用于针对一个所述子集合内的多个原数据子单元进行编码,生成与所述子集合对应的至少一个编码子单元。
可选的,处理模块2601,还用于针对多个所述子集合中至少两个子集合中的原数据子单元进行编码,生成至少一个编码子单元。
可选的,处理模块2601,还用于当所述多个原数据子单元包含在多个数据块中时;针对所述多个数据块中的至少两个数据块中的原数据子单元进行编码,生成至少一个编码子单元。
可选的,所述目标编码数据包括指示信息,所述指示信息用于指示所述编码子单元与所述原数据单元的对应关系。
可选的,所述指示信息包括比特位图信息,所述比特位图信息用于指示所述编码数据子单元与多个所述原数据子单元的位置对应关系。
可选的,所述目标编码数据包括指示信息,所述指示信息用于指示生成编码子单元的原数据子单元在对应的原数据单元中的位置。
可选的,所述指示信息还用于指示所述原数据单元对应的编码子单元的个数。
可选的,所述目标编码数据包括指示信息,所述指示信息用于指示生成所述编码子单元的原数据子单元在对应的原数据单元中的位置,及所述对应的原数据单元的位置。
可选的,所述目标编码数据包括指示信息,所述指示信息用于指示:生成所述编码子单元的原数据子单元在对应的原数据单元中的位置,所述对应的原数据单元在对应的数据块中的位置,及所述对应的数据块的位置。
可选的,处理模块2601,还用于拼接所述编码单元和所述编码子单元中的全部或部分数据,生成所述目标编码数据。
可选的,处理模块2601,还用于当所述原数据单元至少包括第一原数据单元和第二原数据单元,所述第一原数据单元包含在第一数据块中,所述第二原数据单元包含在第二数据块中时,拼接所述第一原数据单元对应的编码子单元和所述第二原数据单元对应的编码单元生成所述目标编码数据。
可选的,处理模块2601,还用于当所述原数据单元还包括第三原数据单元,所述第二数据块至少包括第一子块和第二子块,所述第二原数据单元包含于所述第一子块,所述第三原数据单元包含于所述第二子块时;拼接所述第二原数据单元对应的编码子单元和第二目标原数据单元对应的编码单元生成所述目标编码数据,所述第二目标原数据单元至少包括所述第三原数据单元。
可选的,处理模块2601,还用于拼接所述编码单元和所述编码子单元,生成所述目标编码数据,其中,所述编码单元对应于第二时间单元,所述编码子单元对应于第一时间单元,所述第二时间单元在时域上不早于所述第一时间单元。
可以理解的是,本申请实施例中的一些可选的特征,在某些场景下,可以不依赖于其他特征,比如其当前所基于的方案,而独立实施,解决相应的技术问题,达到相应的效果,也可以在某些场景下,依据需求与其他特征进行结合。相应的,本申请实施例中给出的装置也可以相应的实现这些特征或功能,在此不予赘述。
本领域技术人员还可以理解到本申请实施例列出的各种说明性逻辑块(illustrative logical block)和步骤(step)可以通过电子硬件、电脑软件,或两者的结合进行实现。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员对于相应的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本申请实施例保护的范围。
可以理解,本申请实施例中的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请所描述的方案可通过各种方式来实现。例如,这些技术可以用硬件、软件或者硬件结合的方式来实现。对于硬件实现,用于在通信装置(例如,基站,终端、网络实体、或芯片)处执行这些技术的处理单元,可以实现在一个或多个通用处理器、DSP、数字信号处理器件、ASIC、可编程逻辑器件、FPGA、或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合中。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本申请还提供了一种计算机可读介质,其上存储有计算机程序,该计算机程序被计算机执行时实现上述任一方法实施例的功能。
本申请还提供了一种计算机程序产品,该计算机程序产品被计算机执行时实现上述任一方法实施例的功能。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disk,SSD))等。
可以理解,说明书通篇中提到的“实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各个实施例未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。可以理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可以理解,在本申请中,“当…时”、“若”以及“如果”均指在某种客观情况下装置会做出相应的处理,并非是限定时间,且也不要求装置实现时一定要有判断的动作,也不意味着 存在其它限定。
本申请中的“同时”可以理解为在相同的时间点,也可以理解为在一段时间段内,还可以理解为在同一个周期内。
本领域技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围。本申请中的编号(也可被称为索引)的具体取值、数量的具体取值、以及位置仅作为示意的目的,并不是唯一的表示形式,也并不用来限制本申请实施例的范围。本申请中涉及的第一个、第二个等各种数字编号也仅为描述方便进行的区分,并不用来限制本申请实施例的范围。
本申请中对于使用单数表示的元素旨在用于表示“一个或多个”,而并非表示“一个且仅一个”,除非有特别说明。本申请中,在没有特别说明的情况下,“至少一个”旨在用于表示“一个或者多个”,“多个”旨在用于表示“两个或两个以上”。
另外,本文中术语“系统”和“网络”在本文中常被可互换使用。
本文中术语“……中的至少一个”或“……中的至少一种”,表示所列出的各项的全部或任意组合,例如,“A、B和C中的至少一种”,可以表示:单独存在A,单独存在B,单独存在C,同时存在A和B,同时存在B和C,同时存在A、B和C这六种情况,其中A可以是单数或者复数,B可以是单数或者复数,C可以是单数或者复数。
可以理解,在本申请各实施例中,“与A对应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A可以是单数或者复数,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
可以理解,本申请中描述的系统、装置和方法也可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络 单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请中各个实施例之间相同或相似的部分可以互相参考。在本申请中各个实施例、以及各实施例中的各个实施方式/实施方法/实现方法中,如果没有特殊说明以及逻辑冲突,不同的实施例之间、以及各实施例中的各个实施方式/实施方法/实现方法之间的术语和/或描述具有一致性、且可以相互引用,不同的实施例、以及各实施例中的各个实施方式/实施方法/实现方法中的技术特征根据其内在的逻辑关系可以组合形成新的实施例、实施方式、实施方法、或实现方法。以上所述的本申请实施方式并不构成对本申请保护范围的限定。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (36)

  1. 一种编码方法,其特征在于,包括:
    获取原数据单元;
    对所述原数据单元进行拆分,得到原数据子单元的集合;
    对所述原数据单元进行编码,生成编码单元,且对所述集合中的多个原数据子单元进行编码,生成编码子单元;
    根据所述编码单元和所述编码子单元生成目标编码数据;
    输出所述目标编码数据。
  2. 根据权利要求1所述的方法,其特征在于,所述原数据单元的数量为多个,所述对所述原数据单元进行拆分,得到原数据子单元的集合,包括:
    对所述多个原数据单元中第一目标原数据单元进行拆分,得到与所述第一目标原数据单元对应的子集合,所述子集合包括多个原数据子单元,所述集合包括所述子集合。
  3. 根据权利要求2所述的方法,其特征在于,所述对所述集合中的多个原数据子单元进行编码,生成编码子单元,包括:
    针对一个所述子集合内的多个原数据子单元进行编码,生成与所述子集合对应的至少一个编码子单元。
  4. 根据权利要求2所述的方法,其特征在于,所述对所述集合中的多个原数据子单元进行编码,生成编码子单元,包括:
    针对多个所述子集合中至少两个子集合中的原数据子单元进行编码,生成至少一个编码子单元。
  5. 根据权利要求1所述的方法,其特征在于,所述多个原数据子单元包含在多个数据块中;所述对所述集合中的多个原数据子单元进行编码,生成编码子单元,包括:
    针对所述多个数据块中的至少两个数据块中的原数据子单元进行编码,生成至少一个编码子单元。
  6. 根据权利要求1-5中任一项所述的方法,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示所述编码子单元与所述原数据单元的对应关系。
  7. 根据权利要求6所述的方法,其特征在于,所述指示信息包括比特位图信息,所述比特位图信息用于指示所述编码数据子单元与多个所述原数据子单元的位置对应关系。
  8. 根据权利要求3所述的方法,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示生成编码子单元的原数据子单元在对应的原数据单元中的位置。
  9. 根据权利要求8所述的方法,其特征在于,所述指示信息还用于指示所述原数据单元对应的编码子单元的个数。
  10. 根据权利要求3或4所述的方法,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示生成所述编码子单元的原数据子单元在对应的原数据单元中的位置,及所述对应的原数据单元的位置。
  11. 根据权利要求5所述的方法,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示:生成所述编码子单元的原数据子单元在对应的原数据单元中的位置, 所述对应的原数据单元在对应的数据块中的位置,及所述对应的数据块的位置。
  12. 根据权利要求1所述的方法,其特征在于,所述根据所述编码单元和所述编码子单元生成目标编码数据,包括:
    拼接所述编码单元和所述编码子单元中的全部或部分数据,生成所述目标编码数据。
  13. 根据权利要求1所述的方法,其特征在于,所述原数据单元至少包括第一原数据单元和第二原数据单元,所述第一原数据单元包含在第一数据块中,所述第二原数据单元包含在第二数据块中;所述根据所述编码单元和所述编码子单元生成目标编码数据,包括:
    拼接所述第一原数据单元对应的编码子单元和所述第二原数据单元对应的编码单元生成所述目标编码数据。
  14. 根据权利要求13所述的方法,其特征在于,所述原数据单元还包括第三原数据单元,所述第二数据块至少包括第一子块和第二子块,所述第二原数据单元包含于所述第一子块,所述第三原数据单元包含于所述第二子块;所述方法还包括:
    拼接所述第二原数据单元对应的编码子单元和第二目标原数据单元对应的编码单元生成所述目标编码数据,所述第二目标原数据单元至少包括所述第三原数据单元。
  15. 根据权利要求1所述的方法,其特征在于,所述根据所述编码单元和所述编码子单元生成目标编码数据,包括:
    拼接所述编码单元和所述编码子单元,生成所述目标编码数据,其中,所述编码单元对应于第二时间单元,所述编码子单元对应于第一时间单元,所述第二时间单元在时域上不早于所述第一时间单元。
  16. 一种通信装置,其特征在于,包括:
    收发模块,用于获取原数据单元;
    处理模块,用于对收发模块获取到的所述原数据单元进行拆分,得到原数据子单元的集合;对所述原数据单元进行编码,生成编码单元,且对所述集合中的多个原数据子单元进行编码,生成编码子单元;根据所述编码单元和所述编码子单元生成目标编码数据;
    所述收发模块,还用于输出处理模块生成的所述目标编码数据。
  17. 根据权利要求16所述的装置,其特征在于,
    所述处理模块,还用于当所述原数据单元的数量为多个时,对所述多个原数据单元中第一目标原数据单元进行拆分,得到与所述第一目标原数据单元对应的子集合,所述子集合包括多个原数据子单元,所述集合包括所述子集合。
  18. 根据权利要求17所述的装置,其特征在于,
    所述处理模块,还用于针对一个所述子集合内的多个原数据子单元进行编码,生成与所述子集合对应的至少一个编码子单元。
  19. 根据权利要求17所述的装置,其特征在于,
    所述处理模块,还用于针对多个所述子集合中至少两个子集合中的原数据子单元进行编码,生成至少一个编码子单元。
  20. 根据权利要求16所述的装置,其特征在于,所述多个原数据子单元包含在多个数据块中;
    所述处理模块,还用于针对所述多个数据块中的至少两个数据块中的原数据子单元进行编码,生成至少一个编码子单元。
  21. 根据权利要求16-20中任一项所述的装置,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示所述编码子单元与所述原数据单元的对应关系。
  22. 根据权利要求21所述的装置,其特征在于,所述指示信息包括比特位图信息,所述比特位图信息用于指示所述编码数据子单元与多个所述原数据子单元的位置对应关系。
  23. 根据权利要求18所述的装置,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示生成编码子单元的原数据子单元在对应的原数据单元中的位置。
  24. 根据权利要求23所述的装置,其特征在于,所述指示信息还用于指示所述原数据单元对应的编码子单元的个数。
  25. 根据权利要求18或19所述的装置,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示生成所述编码子单元的原数据子单元在对应的原数据单元中的位置,及所述对应的原数据单元的位置。
  26. 根据权利要求20所述的装置,其特征在于,所述目标编码数据包括指示信息,所述指示信息用于指示:生成所述编码子单元的原数据子单元在对应的原数据单元中的位置,所述对应的原数据单元在对应的数据块中的位置,及所述对应的数据块的位置。
  27. 根据权利要求16所述的装置,其特征在于,
    所述处理模块,还用于拼接所述编码单元和所述编码子单元中的全部或部分数据,生成所述目标编码数据。
  28. 根据权利要求16所述的装置,其特征在于,所述原数据单元至少包括第一原数据单元和第二原数据单元,所述第一原数据单元包含在第一数据块中,所述第二原数据单元包含在第二数据块中;
    所述处理模块,还用于拼接所述第一原数据单元对应的编码子单元和所述第二原数据单元对应的编码单元生成所述目标编码数据。
  29. 根据权利要求28所述的装置,其特征在于,所述原数据单元还包括第三原数据单元,所述第二数据块至少包括第一子块和第二子块,所述第二原数据单元包含于所述第一子块,所述第三原数据单元包含于所述第二子块;
    所述处理模块,还用于拼接所述第二原数据单元对应的编码子单元和第二目标原数据单元对应的编码单元生成所述目标编码数据,所述第二目标原数据单元至少包括所述第三原数据单元。
  30. 根据权利要求16所述的装置,其特征在于,
    所述处理模块,还用于拼接所述编码单元和所述编码子单元,生成所述目标编码数据,其中,所述编码单元对应于第二时间单元,所述编码子单元对应于第一时间单元,所述第二时间单元在时域上不早于所述第一时间单元。
  31. 一种通信装置,其特征在于,用于执行上述如权利要求1至15中任一项所述的方法。
  32. 一种通信装置,其特征在于,包括用于执行上述如权利要求1至15中任一项所述 的方法的模块。
  33. 一种通信装置,其特征在于,包括:处理器,所述处理器与存储器耦合,所述存储器用于存储程序或指令,当所述程序或指令被所述处理器执行时,使得所述装置执行如权利要求1至15中任一项所述的方法。
  34. 一种计算机可读介质,其特征在于,用于储存计算机程序或指令,所述计算机程序或指令被执行时使得计算机执行如权利要求1至15中任一项所述的方法。
  35. 一种计算机程序,其特征在于,所述计算机程序被计算机执行时实现上述如权利要求1至15中任一项所述的方法。
  36. 一种计算机程序产品,所述计算机程序产品中包括计算机程序代码,其特征在于,当所述计算机程序代码被计算机执行时,使得计算机实现上述如权利要求1至15中任一项所述的方法。
PCT/CN2021/076224 2020-04-17 2021-02-09 一种编码方法及通信装置 WO2021208581A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202010305364.6 2020-04-17
CN202010305364.6A CN113541857A (zh) 2020-04-17 2020-04-17 一种编码方法及通信装置

Publications (1)

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

Family

ID=78083538

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2021/076224 WO2021208581A1 (zh) 2020-04-17 2021-02-09 一种编码方法及通信装置

Country Status (2)

Country Link
CN (1) CN113541857A (zh)
WO (1) WO2021208581A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115598600B (zh) * 2022-11-28 2023-03-28 四川九洲电器集团有限责任公司 一种二次雷达信号动态编码系统、方法、电子设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101834700A (zh) * 2010-05-12 2010-09-15 北京邮电大学 一种基于数据包的单向可靠传输方法及收发装置
CN102640422A (zh) * 2009-08-19 2012-08-15 高通股份有限公司 为编码和解码过程采用使码元永久钝化的fec码的方法和装置
US20130195106A1 (en) * 2012-01-31 2013-08-01 Massachusetts Institute Of Technology Multi-Path Data Transfer Using Network Coding
CN106656424A (zh) * 2017-01-10 2017-05-10 西安蜂语信息科技有限公司 一种数据传输的校验方法
CN107294652A (zh) * 2016-04-13 2017-10-24 中兴通讯股份有限公司 一种数据混合重传处理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102640422A (zh) * 2009-08-19 2012-08-15 高通股份有限公司 为编码和解码过程采用使码元永久钝化的fec码的方法和装置
CN101834700A (zh) * 2010-05-12 2010-09-15 北京邮电大学 一种基于数据包的单向可靠传输方法及收发装置
US20130195106A1 (en) * 2012-01-31 2013-08-01 Massachusetts Institute Of Technology Multi-Path Data Transfer Using Network Coding
CN107294652A (zh) * 2016-04-13 2017-10-24 中兴通讯股份有限公司 一种数据混合重传处理方法和装置
CN106656424A (zh) * 2017-01-10 2017-05-10 西安蜂语信息科技有限公司 一种数据传输的校验方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN110121851B (zh) 发送增量冗余编码比特块的方法、设备、介质和通信系统
CN108462554B (zh) 一种极性码的传输方法和装置
WO2018201831A1 (zh) 通信方法和装置
WO2018045849A1 (zh) 极化码的重传方法及装置
CN109075799A (zh) 极化Polar码的编译码方法及装置
CN109586843A (zh) 通信系统中冗余版本的设计方案
CN107409006B (zh) 极化码的混合自动重传请求方法和装置
WO2022001367A1 (zh) 一种编码方法及装置
WO2021169522A1 (zh) 数据处理方法及装置
WO2018152714A1 (zh) 用于信息传输的方法和设备
US10826651B2 (en) Data sending method, data receiving method, sending device, and receiving device
WO2021254119A1 (zh) 信道编译码方法和通信装置
CN112636879B (zh) 基于混合自动重传请求的码块处理的方法和装置
WO2017133232A1 (zh) 一种数据传输方法、终端及数据传输系统
WO2018228596A1 (zh) 一种数据处理方法及数据处理装置
WO2022228467A1 (zh) 数据传输方法、装置及可读存储介质
WO2021208581A1 (zh) 一种编码方法及通信装置
WO2019037782A1 (zh) 极化码的译码方法和译码器
CN109120373B (zh) 一种信道编码方法、数据接收方法及相关设备
WO2019238014A1 (zh) 反馈信息的传输方法和装置
WO2017193932A1 (zh) 通信方法及其网络设备、用户设备
WO2021027904A1 (zh) 无线通信的方法和装置以及通信设备
US20240235762A1 (en) Data transmission method and apparatus, and readable storage medium
WO2023109733A1 (zh) 一种速率匹配的方法及装置
WO2022236719A1 (zh) 无线通信方法、终端设备和网络设备

Legal Events

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

Ref document number: 21788900

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21788900

Country of ref document: EP

Kind code of ref document: A1