WO2022161147A1 - Decoding method, apparatus and device, and computer readable storage medium - Google Patents

Decoding method, apparatus and device, and computer readable storage medium Download PDF

Info

Publication number
WO2022161147A1
WO2022161147A1 PCT/CN2022/071135 CN2022071135W WO2022161147A1 WO 2022161147 A1 WO2022161147 A1 WO 2022161147A1 CN 2022071135 W CN2022071135 W CN 2022071135W WO 2022161147 A1 WO2022161147 A1 WO 2022161147A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
decoding
codeword
target
storage
Prior art date
Application number
PCT/CN2022/071135
Other languages
French (fr)
Chinese (zh)
Inventor
李沫
扎罗宾斯基迈克尔
吉德龙多利
莱维杜迪
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2022161147A1 publication Critical patent/WO2022161147A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes

Definitions

  • the present application relates to the field of communication technologies, and in particular, to a decoding method, apparatus, device, and computer-readable storage medium.
  • FEC Forward error correction coding
  • TPC turbo product codes
  • staircase codes staircase codes
  • continuous alternating BCH codes continuously interleaved Bose Ray Hocquenghem, CIBCH
  • a general decoding device decodes the multi-dimensional algebraic code by means of iterative decoding. During each iterative decoding process, the decoding device performs at least one time on the data of each dimension of the multi-dimensional algebraic code in the cache.
  • Decoding taking the TPC codeword as an example, each iterative decoding process of the TPC codeword includes a row decoding process and a column decoding process.
  • the column decoding process refers to that the decoding device decodes each column subcode in the TPC codeword.
  • the decoding device Since the decoding device decodes the data in the multi-dimensional algebraic code from multiple dimensions, in the process of iteratively decoding the multi-dimensional algebraic code, the decoding device needs to read the data of each dimension in the multi-dimensional algebraic code from the cache. Therefore, how to store and read the data of each dimension in the multi-dimensional algebraic code is compatible with the decoding process, which is an urgent problem to be solved.
  • Embodiments of the present application provide a decoding method, apparatus, device, and computer-readable storage medium, which are compatible with data storage and reading of various dimensions in a codeword.
  • the technical solution is as follows:
  • a decoding method comprising:
  • the codeword is stored in a plurality of storage addresses, wherein one storage address is used to store m*n data of m rows and n columns in the codeword, and both the m and the n are integers greater than or equal to 1; For any storage address in the plurality of storage addresses, read m*n data stored in the any storage address from the any storage address; decoding.
  • this method Since the data of m rows and n columns in the code word can form data of multiple dimensions, such as m rows of data or n columns of data, this method stores the data of m rows and n columns in the code word in a storage address, which is convenient for data from the The data of m rows and n columns in the codeword is read from the storage address, which is compatible with the data storage and reading of each dimension in the codeword, and facilitates the subsequent multi-dimensional decoding of the data of multiple dimensions in the read codeword. , such as row-wise decoding or column-wise decoding.
  • the decoding of the read m*n data includes:
  • the current decoding process is a row-wise decoding process, determine m row data groups based on the positions of the read m*n data in the codeword; perform the m row data groups on the m row data groups Decoding, wherein one row data group includes n pieces of data among the read m*n pieces of data, and the n pieces of data are located in the same row in the codeword.
  • each row of data in the data group is decoded, so that the row-wise decoding of the data group can be realized, that is, the row-wise decoding of the data group is realized. code.
  • the decoding the m row data groups includes:
  • the m line data groups are respectively sent to m first decoding nodes, and each first decoding node decodes the received line data groups.
  • each first decoding node decodes a received line data group, so as to realize parallel processing of m data groups.
  • Each row data group is decoded, which improves the decoding efficiency of the data group.
  • the decoding of the read m*n data includes:
  • the current decoding process is a column-oriented decoding process, based on the positions of the read m*n data in the codeword, determine n column data groups; Decoding, wherein one column data group includes m data in the read m*n data, and the m data are located in the same column in the codeword.
  • each column of data in the data group is decoded, so that the column-wise decoding of the data group can be realized, that is, the decoding of the data group in the column-wise dimension is realized. code.
  • the decoding the n column data groups includes:
  • n column data sets are respectively sent to n second decoding nodes, and each second decoding node decodes the received column data sets.
  • each second decoding node decodes a column data group received, thereby realizing parallel pairing of n data groups.
  • Each column data group is decoded, which improves the decoding efficiency of the data group.
  • the method further includes:
  • the storing the codeword in multiple storage addresses includes:
  • the data in the codeword is divided into a plurality of data groups; the plurality of data groups are stored in the plurality of storage addresses, wherein one data group includes the data in the codeword m*n data in m rows and n columns, one data group is stored in one storage address.
  • the multiple storage addresses belong to the same storage node.
  • the multiple storage addresses belong to multiple storage nodes
  • the storing the plurality of data groups at the plurality of storage addresses includes:
  • the method further includes:
  • a plurality of data groups of the any data set are read from the plurality of storage nodes.
  • one data set can be read from multiple storage nodes at a time, so that multiple data sets in the read data set can be decoded in parallel, which improves the degree of parallelism in the decoding process and the decoding process. efficiency.
  • the codeword includes multiple subcodes, and after the codeword is stored in multiple storage addresses, the method further includes:
  • At least one target data set related to the plurality of target subcodes is determined from the plurality of data sets, wherein the at least one target data set includes At least one target data group related to the plurality of target subcodes, one target data group includes data of part of the target subcodes in the plurality of target subcodes;
  • the read target data group includes at least one odd target data group and at least one even target data group, and one odd target data group is a target located at an odd row layer of the codeword data group, an even target data group is the target data group located at the even-numbered row layer of the codeword;
  • the decoding of the read multiple target data groups includes:
  • a decoding apparatus for executing the above decoding method.
  • the decoding apparatus includes a functional module for executing the decoding method provided in the above-mentioned first aspect or any optional manner of the above-mentioned first aspect.
  • a decoding device in a third aspect, includes a processor and a memory, the memory stores at least one piece of program code, and the program code is loaded and executed by the processor to implement the above-mentioned decoding method. operation.
  • a computer-readable storage medium where at least one piece of program code is stored in the storage medium, and the program code is loaded and executed by a processor to implement the operations performed by the above decoding method.
  • a computer program product or computer program includes program code, the program code is stored in a computer-readable storage medium, and the processor of the decoding device is obtained from the computer-readable storage medium.
  • the program code is read, and the processor executes the program code, so that the computer device executes the method provided in the first aspect or various optional implementation manners of the first aspect.
  • FIG. 1 is a schematic structural diagram of a TCP codeword provided by an embodiment of the present application.
  • FIG. 2 is a schematic structural diagram of an OFEC codeword provided by an embodiment of the present application.
  • FIG. 3 is a schematic diagram of a decoding system provided by an embodiment of the present application.
  • FIG. 4 is a schematic structural diagram of a decoding device provided by an embodiment of the present application.
  • FIG. 5 is a flowchart of a decoding method provided by an embodiment of the present application.
  • FIG. 6 is a schematic diagram of a codeword storage provided by an embodiment of the present application.
  • FIG. 7 is a schematic diagram of an iterative decoding provided by an embodiment of the present application.
  • FIG. 8 is a flowchart of a decoding method provided by an embodiment of the present application.
  • FIG. 9 is a schematic diagram of a codeword storage provided by an embodiment of the present application.
  • FIG. 10 is a schematic diagram of the correspondence between a data group and a storage node in a TPC codeword provided by an embodiment of the present application;
  • 11 is a decoding process of a convolutional code provided by an embodiment of the present application.
  • FIG. 12 is a schematic diagram of an OFEC codeword decoding process provided by an embodiment of the present application.
  • FIG. 13 is a schematic structural diagram of a decoding apparatus provided by an embodiment of the present application.
  • FIG. 1 is a schematic structural diagram of a TCP codeword provided by an embodiment of the present application.
  • the TCP codeword in FIG. 1 includes R*K data in R rows and K columns, and each data occupies 1 bit. Wherein, R and K are both integers greater than 1.
  • the TPC codeword includes a plurality of subcodes, and each subcode includes a plurality of data in the TPC codeword. For example, each row of data in the TPC codeword is a subcode, or, each column of data in the TCP codeword is a subcode.
  • FIG. 2 is a schematic structural diagram of an OFEC codeword provided by an embodiment of the present application.
  • the OFEC codeword is a wireless extended convolutional code.
  • the OFEC codeword includes multiple data in multiple rows and multiple columns, and each data occupies one bit.
  • the data in the OFEC codeword can be divided into historical data and future data based on the order of generation. Taking a row of data in the OFEC codeword as an example, the data in the next row of the row of data is future data relative to the row of data. And the next row of data relative to this row of data is historical data.
  • each row layer is identified with a row layer number.
  • the OFEC codeword in FIG. 2 includes [- ⁇ , + ⁇ ] row layers, and each row layer has a row layer number.
  • row layers with odd row layer numbers are denoted as odd row layers
  • row layers with even row layer numbers are denoted as even row layers.
  • two adjacent row layers, one odd and one even are an OFEC frame, that is, an OFEC frame includes two adjacent radix row layers and even row layers.
  • each column level is identified with a column level number, for example, the OFEC codeword in FIG. 2 includes column levels 0 to 7.
  • the location information of a piece of data in the codeword includes the row layer number of the target row layer where the data is located, the column layer number of the target column layer where the data is located, and the row where the data is located in the target row layer. , and the column number of the column where the data is located in the target column layer. Taking the 2 data in the first block in the -2 row layer in the OFEC codeword shown in FIG.
  • the position information of the data located in the first row and the first column in the block is expressed as [-2, 0,0,0], where -2,0,0,0 are used to indicate the -2 row layer, the 0 column layer, the 1st row in the -2 row layer and the 1st column in the 0 column layer, respectively;
  • the position information of the data in the 2nd row and 1st column in the block can be expressed as [-2, 0, 1, 0], where -2, 0, 1, 0 are used to indicate -2 row layer, 0 column respectively layer, the 2nd row in the -2 row layer, and the 1st column in the 0 column layer;
  • the mark B at the block in Figure 2 is the side length of the block, which can be understood as a m*n size
  • the block, m and n are all equal to B.
  • the OFEC codeword includes a plurality of subcodes, and the first half of the data of each subcode is composed of a plurality of oblique short columns and a plurality of horizontal short columns in the OFEC codeword, wherein the oblique Each short column in the multiple short columns is a column of data in a block in a different row layer, each short column in the horizontal multiple short columns is a row of data in a block, and the horizontal multiple short columns are in a the same row in the row layer.
  • each block includes 16*16 data as an example
  • multiple short columns of the same line type constitute a BCH (256, 239) subcode
  • a plurality of short columns of a line type include 8 short columns arranged in a diagonal line and 8 short columns located in the same row, wherein the 8 short columns arranged in a diagonal line are BCH
  • the multiple short columns in the oblique direction in the (256, 239) subcode are the data of the first 128 bits of the BCH (256, 239) subcode, and the 8 short columns in the same row are in the BCH (256, 239) subcode.
  • the multiple short columns in the horizontal direction are the data of the last 128 bits of the BCH (256, 239) subcode.
  • t is the position number of a certain data of a subcode in the OFEC codeword in the subcode
  • the subcode is a BCH(256,239) subcode
  • the position sequence number of the data on the bit is 1, and the position sequence number of the data on the second bit is 2.
  • W is half of the code length of the subcode. For example, if the subcode is a BCH (256, 239) subcode, the value of W is 128. (H ⁇ 1)–2G-2W/B+2[t/B] is the row layer number of the row layer where the data is located when the data is the first half of the subcode.
  • B is the side length of a block, for example, the value is 16.
  • G is an integer greater than or equal to 1, which is used to represent the guard interval.
  • the decoding device can record the continuous 2G+2 line layers as a complex frame, and encodes and decodes a multiframe in parallel.
  • (t%B) ⁇ p is the row number of the column where the data is located when the data is the first half of the subcode, where "%" is used to indicate the round-down operation, and " ⁇ " is used to indicate the bitwise operation Perform an exclusive OR operation.
  • p is the column number of the column where the data is located
  • p is the row number of the row where the data is located.
  • H is the row layer number of the row layer where the data is located when the data is the data in the second half of the subcode.
  • [(t-W)/B] is the column layer number of the column layer where the data is located when the data is the data in the second half of the subcode.
  • FIG. 3 is a schematic diagram of a decoding system provided by an embodiment of the present application.
  • the system 300 includes a data processing node 301 , a storage node 302 , a data distribution node 303 , and a decoding node 304 .
  • the data processing node 301 is used to acquire the codeword, and store the acquired codeword in the storage node 302 .
  • the data processing node 301 divides the data in the codeword into multiple data groups, each data group includes m*n data in m rows and n columns in the codeword, and divides each data group into a plurality of data groups. Each data group is stored at one storage address within storage node 302 .
  • the data distribution node 303 reads out one data group from a storage address of the storage node 302 at a time; if the current decoding process is a row decoding process, the The data distribution node 303 determines a plurality of row data groups read into the data group, and distributes each row data group to a decoding node 304, and the plurality of decoding nodes 304 decode the received row data groups. code, so that the data decoding process of one dimension on one data group is implemented by a plurality of decoding nodes 304 in parallel.
  • the data distribution node 303 determines a plurality of column data groups to be read into the data group, and distributes each column data group to a decoding node 304, where the A plurality of decoding nodes 304 decode the received column data group, so that a data decoding process of another dimension on one data group is implemented by the plurality of decoding nodes 304 in parallel.
  • the data processing node 301 combines multiple adjacent data sets in the codeword into one data set, and stores multiple data sets in the data set in multiple storage nodes 302 , and the multiple data groups in the data set are located in different storage nodes 302 .
  • the data distribution node 303 reads out multiple data groups of the data set from multiple storage nodes 302 at a time.
  • the data distribution node 303 determines a plurality of row data groups of each data group in the read data set, and distributes each row data group of each data group to a decoding code node 304, at this time, a decoding node 304 is used to receive a row data group in each data group in the data set, and the plurality of decoding nodes 304 decode each received row data group, so that multiple The decoding nodes 304 implement the data decoding process of one dimension on one data set in parallel.
  • the data distribution node 303 determines a plurality of column data groups in each data group in the read data set, and distributes each column data group of each data group to a Decoding node 304, at this time, one decoding node 304 is used to receive one column data group in each data group in the data set, and the plurality of decoding nodes 304 decode each received column data group, so that the multiple decoding nodes 304 decode each column data group received.
  • the decoding nodes 304 implement in parallel the data decoding process of another dimension on one data set. And compared with the process of decoding one data group at a time, the process of decoding multiple data groups in one data set at a time has a higher degree of parallelism and higher decoding efficiency.
  • the decoding node 304 is any decoder with a decoding function, such as a soft in soft out (soft in soft out, SISO) BCH sub-decoder, a hard in hard out ( hard in hard out, HIHO) BCH sub-decoder, etc.
  • a soft in soft out soft in soft out, SISO
  • a hard in hard out hard in hard out, HIHO
  • the decoding node 304 After each decoding node 304 completes the decoding of a row data group or a column data group, the decoding node 304 writes the decoded data obtained by the decoding back to the storage address in the storage node 302 in the original way, so as to Overwrites the corresponding data stored in this memory address. So that the subsequent data distribution node 303 reads data from the storage address again, and performs the next decoding process to realize iterative decoding.
  • each node in the system 300 is an independent device.
  • the system 300 may be deployed on a decoding device, and each node in the system 300 is a module in the decoding device.
  • the functions of multiple nodes in the system 300 may also be implemented by the same module on one decoding device, or implemented by multiple devices.
  • the decoding device 400 may vary greatly due to different configurations or performance, including one or more processors 401 and one or more More than one memory 402, wherein the processor includes a central processing unit (central processing units, CPU). At least one piece of program code is stored in the memory 402, and the at least one piece of program code is loaded and executed by the processor 401 In order to realize the decoding methods provided by the following method embodiments.
  • each memory 401 is a storage node.
  • the processor 401 is used to implement the functions of a data processing node, a data distribution node, and a decoding node.
  • one processor 401 may be used to implement the function of one of the data processing node, the data distribution node, and the decoding node.
  • the decoding device 400 may also have components such as a wired or wireless network interface, a keyboard, and an input/output interface for input and output.
  • the decoding device 400 may also include other components for realizing device functions, which are not described here. Repeat.
  • a computer-readable storage medium such as a memory including program codes
  • the program codes can be executed by a processor in the terminal to implement the decoding methods in the following embodiments.
  • the computer-readable storage medium is a non-transitory computer-readable storage medium, such as read-only memory (ROM), random access memory (RAM), compact disc read-only memory, CD-ROM), magnetic tapes, floppy disks, and optical data storage devices, etc.
  • the decoding device adopts the storage mode and reading mode of the data group to store and read the code word, and decode the read data group to realize the decoding of the code word.
  • the process refer to the flowchart of a decoding method provided by an embodiment of the present application shown in FIG. 5 .
  • a decoding device acquires a codeword.
  • the codeword is a codeword to be decoded, and the codeword is any type of multi-dimensional code, such as a TPC codeword, a convolutional codeword, a ladder codeword, and a CIBCH.
  • the dimension of the codeword is greater than or equal to 2.
  • the codeword includes R*K data in R rows and K columns, and each data occupies 1 bit, for example, as shown in Figure 1 TPC codeword.
  • the codeword is a three-dimensional code, the codeword includes F*R*K data in R rows and K columns with a height of F, and each data occupies 1 bit, where F is an integer greater than 1.
  • the embodiment of the present application does not limit the type and dimension of the codeword.
  • this step 501 is performed by a data processing node in the decoding device.
  • the data processing node obtains the codeword from a target node, where the target node is any node that stores the codeword, or any node that encodes the codeword.
  • the target node is a node other than the decoding device, for example, when the encoding device that encodes the codeword and the decoding device are not the same device, the encoding device that encodes the codeword is the target node, After the encoding device encodes the codeword, it sends the codeword to a data transmission interface of the decoding device, and a data processing node in the decoding device receives the codeword from the data transmission interface.
  • the target node is a module in the decoding device.
  • the decoding device also has an encoding function. After encoding the codeword, the target node in the decoding device sends the codeword to the decoding device. The data processing node in the code device.
  • the decoding device stores the codeword in multiple storage addresses, and one storage address is used to store m*n pieces of data in m rows and n columns in the codeword, and both m and n are integers greater than or equal to 1 .
  • the multiple storage addresses belong to the same storage node, and the storage space provided by the storage node is indicated by the storage address.
  • the storage node is a RAM, and the decoding device can store the codeword in the RAM. in multiple storage addresses.
  • m is an integer greater than or equal to 1 and less than R
  • n is an integer greater than or equal to 1 and less than K.
  • m and n are equal or unequal
  • R and K are equal or unequal.
  • R divides m and/or K divides n.
  • R is not divisible by m and/or K is not divisible by n.
  • the decoding device first divides the codeword into a plurality of data groups, and then stores the plurality of data groups in the plurality of storage addresses. In a possible implementation manner, this step 502 is implemented by the processes shown in the following steps 5021-5022.
  • Step 5021 the decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns, and one data group includes m*n data in m rows and n columns in the codeword.
  • the decoding device sets a sliding window of m rows and n columns of bits, and the decoding device divides the codeword into multiple data groups by sliding the sliding window on the codeword.
  • the decoding device slides the sliding window to the upper left corner of the codeword.
  • the sliding window covers the data in the 1st to mth rows and the 1st to nth columns in the codeword
  • the decoding device determines all the data covered by the sliding window at this time as a data group; the decoding device uses n bits as the sliding step, slides the sliding window to the right, and when the sliding is completed, the sliding window Covering the data in rows 1 to m and columns n+1 to 2n in the codeword, the decoding device determines all the data covered by the sliding window at this time as a data group; and so on, the decoding
  • the code device slides the sliding window to the right until the sliding window can cover the data in the 1st to mth row and the Kth column in the codeword, and the decoding device ends sliding on the 1st to mth row in the codeword; And with reference to the above-mentioned sliding mode, the decoding device slides the sliding window in the m+1 to 2
  • each rectangular frame on the codeword in FIG. 6 is the area covered by the sliding window after each sliding, and all the data in each rectangular frame form a data set.
  • R can divide m and K can divide n
  • the sliding window can cover m*n data in the codeword.
  • R cannot divide m or K cannot divide n if the sliding window slides to the Kth column or the sliding window slides in the Rth row, the sliding window cannot cover the m*n data in the codeword. There are no m*n pieces of data in the data group determined by the decoding device.
  • the decoding device treats the plurality of data groups in the same row in the codeword as a row layer, and will be in the same row in the codeword as a row layer. Multiple data groups of columns act as a column layer.
  • the decoding device sets a row layer number for each row layer to identify each row layer, and sets a column layer number for each column layer to identify each column layer.
  • a data group is identified by the position information of the data group, and the position information of the data group includes the row layer number of the row layer where the data group is located and the column layer number of the column layer where the data group is located.
  • the position information of the first data group in the codeword in FIG. 6 is 1-1, which indicates the data group in the first row layer and the first column layer.
  • the process shown in the above step 5021 is the grouping of the data in one dimension of the codeword, and the decoding device can, according to the process shown in the above step 5021, group the data in another dimension of the codeword.
  • the data above is grouped once.
  • Step 5022 The decoding device stores the plurality of data groups in the plurality of storage addresses, and each storage address stores one data group.
  • the decoding device sends the multiple data groups to a storage node, and the storage node stores each of the multiple data groups in a storage address in the storage node respectively.
  • the storage node stores data groups 1-1, 1-2 and 1-3 in the codeword at storage addresses 1 to 3 in the storage node, respectively.
  • the storage node For any data group in the plurality of data groups, the storage node stores the data in the any data group at a storage address in the storage node row by row. As shown in FIG. 6 , the storage node sequentially stores four data in three rows of data group 1-1 in storage address 1, and 12 data in storage address 1 are arranged in one row.
  • the process shown in this step 502 is performed by a data processing node in the decoding device.
  • the processes shown in the steps 501-502 only need to be performed once, and do not need to be performed multiple times.
  • the decoding device After the decoding device stores the codeword in the storage node, the decoding device decodes the codeword stored in the storage node. Since the codeword is a multidimensional code, the decoding of the codeword by the decoding device is multidimensional decoding, or it can also be understood as iterative decoding, and the process of iteratively decoding the codeword by the decoding device includes row decoding. coding process and column decoding process. For any decoding process in the row decoding process or the column decoding process, the decoding device first reads each data group belonging to the codeword from the storage node, and uses the read data in each data group. data is decoded. To further describe any of the decoding processes, please refer to the following steps 503-504.
  • this step 502 is described by taking a two-dimensional codeword as an example.
  • the decoding device divides the codeword into a plurality of multidimensional data blocks, each multidimensional data block is located on all dimensions of the codeword, and the decoding The code device stores each multidimensional block of data in a memory address.
  • the decoding device divides the data in the 9*9*9 3-dimensional codeword into multiple 3*3*3* 3-dimensional data blocks, and converts each 3*3* 3* 3-dimensional data blocks are stored in one storage address respectively.
  • the decoding device reads m*n data stored in the any storage address from the any storage address.
  • a data group stored in a storage address is the basic unit for the decoding device to read and write data, and the decoding device can read out m*n data in a data group from any storage address at a time.
  • the process shown in this step 503 is performed by a data distribution node in the decoding device.
  • the decoding device decodes the read m*n pieces of data.
  • the decoding device determines the arrangement of the m*n pieces of data read this time in the row-wise dimension of the codeword, And decode the data arranged in the row dimension.
  • the process shown in this step 504 is implemented by the processes shown in the following steps 5041-5042.
  • Step 5041 If the current decoding process is a row-wise decoding process, the decoding device determines m row data groups, one row data group based on the position of the read m*n data in the codeword. Including n data among the read m*n data, the n data are located in the same row in the codeword.
  • the m row data groups are the arrangement of the m*n data read out this time in the row dimension of the data group. Since the m*n data stored in any storage address is a row of data at any storage address, the m*n data read by the decoding device from any storage address is also a row of data. In order to facilitate the decoding code, the decoding device also needs to determine the position of the m*n data read this time in the codeword, so as to determine the read data based on the position of the m*n data in the codeword The arrangement of each data in the data group in the row dimension.
  • the decoding device converts the (i-1)*n+1th data to the i*th data in the read m*n data based on the position of the read m*n data in the codeword n data as a row data group.
  • i is an integer greater than or equal to 1 and less than or equal to m.
  • the decoding apparatus regards the 1st data to the nth data among the m*n pieces of data arranged in a line as a line data group.
  • the decoding device converts the n+1 th data to the 2n th data among the m*n pieces of data arranged in a line into a line data group.
  • the process shown in this step 5041 is performed by the data distribution node in the decoding device.
  • Step 5042 The decoding device decodes the m row data groups.
  • the decoding device decodes the m row data groups in parallel, so as to improve the decoding efficiency of the decoding device for the data groups stored in any storage address.
  • this step 5042 is completed by the data distribution node and a plurality of first decoding nodes in the decoding device. After the data distribution node determines m line data groups, the m line data groups are respectively sent to m first decoding nodes, and each first decoding node analyzes one of the received line data groups. The row data group is decoded in the direction, and the row data groups received by different first decoding nodes are different.
  • the data distribution node is provided with a data distribution queue of m*n bits, and the (i-1)*n+1th bit to the i*nth bit in the data distribution queue bits are connected to a first decoding node.
  • the data distribution node sequentially arranges the read m*n data on each bit in the data distribution queue, so that the (i-1)*n+1th bit to the th
  • the n data on i*n bits is also a row data group.
  • the data distribution queue For any row data group in the m row data groups, the data distribution queue, through the connection between the bit position where the any row data group is located and a first decoding node, distributes n data in the any row data group The pieces of data are sent to the first decoding node, and the first decoding node decodes the n pieces of data in any row of data groups.
  • the data distribution node After the data distribution node reads m*n data arranged in a row from any storage address, the data distribution node divides the m*n data into m row data groups, which are row data group 1 respectively. to m, and distribute m row data groups to m first decoding nodes, which are respectively the first decoding nodes 1 to m, so as to realize the distribution of the first dimension data.
  • the n pieces of data in the row data group are decoded.
  • the decoding device determines the arrangement of the m*n pieces of data read this time in the column-wise dimension of the codeword , and decode the data arranged in the column dimension.
  • the process shown in this step 504 is implemented by the processes shown in the following steps 504A-504B.
  • Step 504A if the current decoding process is a row-wise decoding process, the decoding device determines n column data groups and one column data group based on the position of the read m*n data in the codeword. Including m data among the read m*n data, the m data are located in the same column in the codeword.
  • the n column data groups are the arrangement of the m*n data read out this time in the column dimension of the data group. Since the m*n data stored in any storage address is a row of data at any storage address, the m*n data read by the decoding device from any storage address is also a row of data. In order to facilitate the decoding code, the decoding device also needs to determine the position of the m*n data read this time in the codeword, so as to determine the read data based on the position of the m*n data in the codeword The arrangement of each data in the data group in the column dimension of the data group.
  • the decoding device determines m row data groups based on the positions of the read m*n data in the codeword, and determines the jth data in the m row data groups as the n data
  • the jth column data group in the column data group where j is an integer greater than or equal to 1 and less than or equal to n.
  • the decoding device forms the first data group in the m row data groups into the first column data group in the n column data groups.
  • the decoding device will form the second data group in the m row data groups into the second column data group in the n column data groups.
  • the process shown in this step 504A is performed by the data distribution node in the decoding device.
  • Step 504B the decoding device decodes the n column data groups.
  • the decoding device decodes the n column data groups in parallel, so as to improve the decoding efficiency of the decoding device for the data groups stored in any storage address.
  • this step 504B is completed by a data distribution node and a plurality of second decoding nodes in the decoding device. After the data distribution node determines n column data groups, the n column data groups are respectively sent to n second decoding nodes, and each second decoding node analyzes one of the received column data groups. The column data sets are decoded, and the column data sets received by different second decoding nodes are different.
  • n bits located in the data distribution queue in the data distribution node of any row of data groups are respectively connected to a second decoding node, so that a The second decoding node can be connected to the bit where one data of the m data groups is located. It can be understood that, m pieces of data connected to m bits by one second decoding node are a column data group.
  • the data distribution node sequentially arranges the read m*n data on each bit in the data distribution queue.
  • the data distribution queue uses the connection between the bits where the any column data group is located and a second decoding node, and m in the any column data group
  • the pieces of data are sent to the second decoding node, and the second decoding node decodes the m pieces of data in any column of data groups.
  • the second dimension data is the read m*n data in the column dimension of the codeword Arranged data.
  • the data distribution node After the data distribution node reads m*n data arranged in a row from any storage address, the data distribution node splits the m*n data into n column data groups, which are column data group 1 respectively. to n, and distribute n column data groups to n second decoding nodes, which are respectively second decoding nodes 1 to n, so as to realize the distribution of second dimension data, and each second decoding node pairs one The m pieces of data in the column data group are decoded.
  • the m first decoding nodes and the n second decoding nodes are different decoding nodes.
  • the first decoding node and the second decoding node may be multiplexed. If m is greater than or equal to n, in the process of performing column-wise decoding, n first decoding nodes among the m first decoding nodes are multiplexed into n second decoding nodes. If m is less than n, in the process of row-wise decoding, m second decoding nodes in the n second decoding nodes are multiplexed into m first decoding nodes, so as to reduce the number of decoding equipment. The number of decoding nodes in .
  • the decoding device Since the decoding device performs the iterative decoding process for a data group in the codeword, it must first perform the row decoding process, and then perform the column decoding process, or perform the column decoding process first, and then perform the row decoding process. It can be seen that the column decoding process and the row decoding process performed by the decoding device for a data group do not occur simultaneously, so the first decoding node and the second decoding node can be multiplexed.
  • this step 504 is described by taking a 2-dimensional codeword as an example.
  • the decoding The device may first divide the multi-dimensional data block into multiple two-dimensional data groups, and then perform step 504 on each two-dimensional data group.
  • the decoding device modifies m*n pieces of data in any storage address into m*n pieces of decoded data, and the m*n pieces of decoded data are decoded for the read m*n pieces of data data after.
  • the m*n pieces of data in any storage address are in one-to-one correspondence with the m*n pieces of decoded data.
  • m*n decoded data is obtained, and the decoding device according to the m*n data in any storage address and The m*n pieces of decoded data have a one-to-one correspondence, and the m*n pieces of decoded data are written back to the any storage address in the original way to cover the m*n pieces of data stored in the any storage address, thereby realizing Revise.
  • the process shown in this step 505 is completed by the data distribution node and the decoding node in the decoding device.
  • the current decoding process is a row-wise decoding process
  • any first decoding node corresponds to one
  • n pieces of decoded data are obtained, and the n pieces of decoded data correspond to the n pieces of data one-to-one.
  • the any first decoding node writes the n pieces of decoded data back to the data distribution node, and when the m first decoding nodes all write the n pieces of decoded data obtained after decoding back to the data distribution node Afterwards, the data distribution node can obtain m*n pieces of decoded data, and the data distribution node writes the m*n pieces of decoded data back to any storage address.
  • any second decoding node pairs After the m pieces of data in a column data group are decoded, m pieces of decoded data are obtained, and the m pieces of decoded data are in one-to-one correspondence with the m pieces of data.
  • the any second decoding node writes the m pieces of decoded data back to the data distribution node, and when the n second decoding nodes all write the m pieces of decoded data obtained after their respective decoding back to the data distribution node Afterwards, the data distribution node can obtain m*n pieces of decoded data, and the data distribution node writes the m*n pieces of decoded data back to any storage address.
  • the decoding device When the decoding device performs the process shown in the above steps 503-505 for each data group belonging to the codeword, the decoding process performed by the decoding device in one dimension of the codeword is completed.
  • the decoding device jumps to execute the process shown in the above steps 503-505, and continues to perform the decoding process of another dimension on the codeword, thereby realizing the iterative decoding process of the codeword. For example, after the decoding device performs the row-wise decoding process for each data group in the codeword through the above steps 503-505, the decoding device continues to perform the above steps 503-505 to perform the decoding process on the code word.
  • a column-wise decoding process is performed for each data group in the word.
  • the decoding device uses the data group as the basic unit of iterative decoding.
  • the decoding device performs the above steps 503-505 to complete the row-wise decoding of a data group stored in any storage address, without waiting for the data groups stored in other storage addresses to complete the row-wise decoding.
  • the device directly performs the column decoding process on the data group currently stored in any storage address through the above steps 503-505, thereby realizing the iterative decoding process of one data group in the codeword.
  • the data distribution node reads the data group [1, 2; 3 from any storage address] , 4], and based on the read data groups [1, 2; 3, 4], two row data groups are determined, which are row data groups [1, 2] and row data groups [3, 4] respectively.
  • the data distribution node sends the row data group [1, 2] and the row data group [3, 4] to the decoding nodes 1 and 2, respectively.
  • Decoding node 1 decodes the row data set [1, 2] to obtain decoded data 5 and 6
  • decoding node 2 decodes the row data set [3, 4] to obtain decoded data 7 and 8.
  • the decoding node 1 writes the decoded data 5 and 6 back to the data distribution node
  • the decoding node 2 writes the decoded data 7 and 8 back to the data distribution node.
  • the data distribution node writes the decoded data 5, 6, 7, and 8 back to any storage address, and overwrites the 1, 2, 3, and 4 stored in any storage address.
  • the data group stored in any storage address is updated. is [5, 6; 7, 8].
  • the data distribution node reads the data set [5, 6; 7, 8] from any storage address, and determines the data set [5, 6; 7, 8] based on the read data set [5, 6; 7, 8]. 2 column data groups, namely column data group [5, 7] and column data group [6, 8].
  • the data distribution node sends the column data set [5, 7] and the column data set [6, 8] to the decoding nodes 3 and 4, respectively.
  • the decoding node 3 decodes the column data set [5, 7] to obtain the decoded data 9 and 10
  • the decoding node 4 decodes the column data set [6, 8] to obtain the decoded data 11 and 12.
  • the decoding node 3 writes the decoded data 9 and 10 back to the data distribution node
  • the decoding node 4 writes the decoded data 11 and 12 back to the data distribution node.
  • the data distribution node writes the decoded data 9, 11, 10, and 12 back to any storage address, and overwrites the 5, 6, 7, and 8 stored in any storage address.
  • the data group stored in any storage address is updated to [9, 11; 10, 12], and the data stored in any storage address undergoes one row decoding and one column decoding.
  • each data group in the word performs a row decoding process and a column decoding process, that is, an iterative decoding process is performed for the codeword.
  • the above-mentioned decoding nodes 1 and 2 are both first decoding nodes, and decoding nodes 3 and 4 are both second decoding nodes.
  • the embodiment of the present application stores the data of m rows and n columns in the codeword in a storage address, It is convenient to read the data of m rows and n columns in the code word from the storage address, so as to be compatible with the data storage and reading of each dimension in the code word, and it is convenient for subsequent data of multiple dimensions in the read code word to be performed.
  • Multi-dimensional decoding such as row-wise decoding or column-wise decoding. And it can support flexible design of any degree of parallelism without being limited by the length of subcodes, and support high-traffic FEC design requirements.
  • the process shown in FIG. 5 is a process in which the decoding device uses one data group as a decoding processing unit to decode the codeword.
  • the decoding device can also use multiple data groups as a decoding processing unit, and decode the multiple data groups at the same time, so as to improve the parallel degree of decoding and the decoding efficiency.
  • FIG. 8 Please refer to the flowchart of a decoding method provided by an embodiment of the present application shown in FIG. 8 .
  • the decoding device obtains a codeword.
  • step 801 The process shown in this step 801 is the same as the process shown in the above-mentioned step 501, and this step 801 is not repeated in this embodiment of the present application.
  • the decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns.
  • step 802 is the same as the process shown in the above-mentioned step 5021, and here, this embodiment of the present application does not repeat the description of this step 802.
  • the decoding device combines the multiple data sets into multiple data sets, and one data set includes multiple adjacent data sets among the multiple data sets.
  • the adjacent multiple data groups have multiple adjacent forms.
  • the adjacent multiple data groups are consecutive multiple data groups in the same row layer.
  • the decoding device uses the data groups 1-1, 1-2 and 1-3 in the first row layer of the code word as a data set, wherein FIG. 9 is this A schematic diagram of a codeword storage provided by an embodiment of the application.
  • the adjacent multiple data groups are continuous multiple data groups in the same column and row layer.
  • the decoding device uses the code word in the first column layer.
  • the datasets 1-1, 2-1, and 3-1 are used as a dataset.
  • the adjacent multiple data groups are multiple data groups in adjacent row layers or adjacent column layers.
  • the data in the code word of the decoding device is Groups 1-1, 1-2, 2-1 and 2-2 are used as a dataset, wherein the row and column layers where the data groups 1-1, 1-2, 2-1 and 2-2 are located are adjacent .
  • the embodiment shown in FIG. 9 is taken as an example for the decoding device to combine multiple consecutive data in the same row layer into one data set.
  • the process shown in this step 803 is performed by a data processing node in the decoding device.
  • the decoding device stores the data groups in the multiple data sets in multiple storage addresses in the multiple storage nodes, wherein one storage address stores one data group, and multiple data groups in the same data set are stored in different storage addresses. in the storage address within the storage node.
  • the decoding device stores the plurality of data groups in the any data set respectively at a storage address in the plurality of storage nodes, wherein each data set in the any data set Each data group corresponds to different storage nodes.
  • a data set includes data groups 1-1, 1-2 and 1-3.
  • the decoding device stores the data group 1-1 at the storage address 1 of the storage node 1, and stores the data group 1-2 at the storage address 1 of the storage node 1.
  • the data groups 1-3 are stored at the storage address 1 of the storage node 2, and the data groups 1-3 are stored at the storage address 1 of the storage node 3.
  • the decoding device uses a cyclic shift manner to store data groups in the multiple data sets in multiple storage nodes.
  • the decoding device adopts a cyclic shift method to establish the correspondence between each data group in the plurality of data sets and the plurality of storage nodes, and stores each data group in one of the corresponding storage nodes. address.
  • the decoding device adopts a cyclic shift manner, and establishing the correspondence between each data group in the plurality of data sets and the plurality of storage nodes includes: if the number of data groups in each data set is equal to is s, there are s multiple storage nodes, and in the adjacent s row layers in the codeword, for the zth row layer in the s row layers, the decoding device uses the zth row layer After the s data groups in each data set are shifted to the right by (z-1) bits, they correspond to s storage nodes in turn, where s is an integer greater than 1 and less than n, and z is greater than or equal to 1 and less than or equal to z the integer.
  • the decoding device sequentially corresponds to the s data groups in each data set in the first row layer with the s storage nodes.
  • the first data group in each dataset in the first row layer corresponds to the first storage node in the s storage nodes
  • the second data group in each dataset in the first row layer corresponds to the s storage node.
  • the 2nd storage node in the storage node corresponds, and so on.
  • the first data set in the first row layer in the codeword shown in FIG. 9 includes data group 1-1, data group 1-2 and data group 1-3
  • data group 1-1 corresponds to storage node 1
  • data group 1-2 corresponds to storage node 2
  • data group 1-3 corresponds to storage node.
  • the decoding device shifts the s data groups in each data set in the second row layer to the right by 1 bit, and sequentially Corresponds to s storage nodes. For example, after the data group in each data set in the second row layer is shifted to the right by 1 bit, the second data group in each data set corresponds to the first storage node in the s storage nodes.
  • the third data group corresponds to the fourth storage node in the s storage nodes, and so on, the s-1 data group in each data set corresponds to the s storage node in the s storage nodes, and each The s-th data group in the data sets corresponds to the first storage node in the s-storage nodes.
  • the first data set in the second row layer in the codeword shown in FIG. 9 includes data group 2-1, data group 2-2 and data group 2-3, data group 2-2 corresponds to storage node 1, data group 2-3 corresponds to storage node 2, and data group 2-1 corresponds to storage node 3.
  • the decoding device shifts the s data groups in each data set in the third row layer to the right by 2 bits, and sequentially Corresponds to s storage nodes. For example, after the data group in each data set in the third row layer is shifted to the right by 2 bits, the third data group in each data set corresponds to the first storage node in the s storage nodes.
  • the 4th data group corresponds to the 4th storage node in the s storage nodes, and so on, the s-2nd data group in each data set corresponds to the sth storage node in the s storage nodes, and each The s-1th data group in each data set corresponds to the first storage node in the s storage nodes, and the s-th data group in each data set corresponds to the second storage node in the s storage nodes.
  • the first data set in the third row layer in the codeword shown in FIG. 9 includes data group 3-1, data group 3-2 and data group 3-3, data group 3-3 corresponds to storage node 1, data group 3-1 corresponds to storage node 2, and data group 3-2 corresponds to storage node 3.
  • TPC Time Division Multiple Access
  • FIG. 10 Schematic diagram of the correspondence between the data group in the word and the storage node.
  • each data group in the second row layer to the right by 1 bit corresponds to 4 storage nodes in sequence, for example, starting from the second data group in the second row layer, data groups 18 to 21 Corresponding to storage nodes 1 to 4 in sequence, ..., data groups 30 to 32 correspond to storage nodes 1-3 in sequence, after data group 32 is corresponding, loop to the first data group of the second row layer, from the second The first data group of the row layer starts, and the data group 17 corresponds to the storage node 4, so that a cyclic shift process of shifting 1 bit to the right is formed in the second row layer.
  • the second row layer includes 4 data sets, which respectively include data sets 17 to 20, data sets 21 to 24, data sets 25 to 28, and data sets 29 to 32.
  • the second data group (data groups 18, 22, 26 and 30) in these four data sets all correspond to storage node 1
  • the third data group (Data groups 19, 23, 27, and 31) all correspond to storage node 2
  • the fourth data group (data groups 20, 24, 28, and 32) in these four data sets all correspond to storage node 3.
  • These four data sets correspond to storage node 3.
  • the first data group (data groups 17 , 21 , 25 and 29 ) in the collection all correspond to the storage node 1 .
  • the decoding device shifts each data group in the third row layer to the right by 2 bits, and then sequentially corresponds to the four storage nodes, and converts the data groups in the fourth row layer to the right. After each data group is shifted to the right by 3 bits, it sequentially corresponds to 4 storage nodes.
  • the process shown in this step 804 is performed by a data processing node in the decoding device.
  • the process shown in the above steps 803-804 is a process in which the decoding device stores multiple data groups of the codeword in multiple storage addresses, and the multiple storage addresses belong to multiple storage nodes.
  • the decoding device only needs to store the code word once, and does not need to store it multiple times.
  • the decoding device reads a plurality of data groups of the any data set from the plurality of storage nodes.
  • the decoding device determines a plurality of target storage addresses for storing the any data set from a plurality of storage addresses of a plurality of storage nodes, the plurality of target storage addresses belong to different storage nodes, and one target storage address stores There is one dataset in either dataset.
  • the decoding device reads a plurality of data groups of the arbitrary data set from the plurality of target storage addresses. In a possible implementation manner, in one data read cycle, the decoding device reads out a data group in any one of the data sets from the plurality of target storage addresses, respectively. Taking any data set as the first data set of the first row layer in the codeword shown in Fig. 10 as an example, in one data read cycle, the decoding device reads from the four storage addresses of the four storage nodes. Data sets 1 to 4 are each read out.
  • the process shown in this step 805 is performed by the data distribution node in the decoding device.
  • the decoding device decodes the multiple data groups in the any data set.
  • the decoding device simultaneously decodes a plurality of data groups in any data set, wherein, for any data group in the plurality of data groups in the any data set, the decoding The coding device decodes m*n pieces of data in any data group to obtain m*n pieces of decoded data.
  • the process shown in this step 806 is completed by the data distribution node and the decoding node in the decoding device.
  • the decoding device determines m rows of each data group in the plurality of data groups data groups, and respectively send the m line data groups of each data group to the m first decoding nodes, so that each first decoding node can receive one line data group among the plurality of data groups. It can be understood that each first decoding node can receive a plurality of row data groups, and each received row data group is from one of the plurality of data groups respectively. After each first decoding node receives multiple row data groups, it decodes n pieces of data in each received row data group.
  • the decoding device determines n columns of each data group in the plurality of data groups data groups, and respectively send the n column data groups of each data group to the n second decoding nodes, so that each second decoding node can receive one column data group among the plurality of data groups. It can be understood that each second decoding node can receive a plurality of column data groups, and each received column data group is respectively from one data group among the plurality of data groups. After each second decoding node receives multiple column data groups, it performs column decoding on m data in each received column data group.
  • the decoding device performs the process shown in the above steps 805-806 for each data set belonging to the codeword.
  • the decoding device performs decoding on one dimension of the codeword.
  • Process complete. The decoding device jumps to execute the process shown in steps 805-806, and continues the decoding process of the codeword in another dimension, thereby realizing the iterative decoding process of the codeword. For example, after the decoding device performs the row-wise decoding process for each data set in the codeword through the above steps 805-806, the decoding device continues to perform the above steps 805-806 to perform the decoding process on the code word.
  • a column-wise decoding process is performed for each data set in the word.
  • the decoding device uses the data set as the basic unit of iterative decoding. By performing the above steps 805-806, the decoding device does not need to wait for other data sets to complete the column-direction decoding after completing the row-direction decoding for any data set, and the decoding device directly performs the above-mentioned steps 805-806.
  • the encoded data set is subjected to a column decoding process, thereby realizing an iterative decoding process of a data set in the codeword.
  • the decoding device modifies m*n pieces of data in the storage addresses where the any data group is stored into m*n pieces of decoded data, the m*n pieces of decoded data.
  • the pieces of decoded data are decoded data of the read m*n pieces of data.
  • step 807 The process shown in this step 807 is the same as the process shown in the above-mentioned step 505, and this step 807 is not described in detail here in this embodiment of the present application.
  • a decoding device is used to decode a plurality of data groups in a data set in parallel, thereby improving the parallel degree of decoding and the decoding efficiency. And it can support flexible design of any degree of parallelism without being limited by the length of subcodes, and support high-traffic FEC design requirements.
  • the decoding device can store different types of codewords in the storage address according to the storage mode of the data group. Moreover, the decoding device can also decode multiple data groups in a codeword in parallel, but due to the different structures of different types of codewords, when the decoding device decodes multiple data groups in parallel, the decoding device reads multiple data groups. Group methods may vary. For TCP codewords, the decoding device can use the process shown in FIG. 8 to decode multiple data groups in TCP codewords in parallel, while the construction of convolutional codes is different from that of TCP codewords.
  • a decoding device acquires a codeword.
  • the codeword is an OFEC codeword, such as the OFEC codeword shown in FIG. 2 .
  • the process shown in this step 1101 is the same as the process shown in the above-mentioned step 501, and this step 1101 is not described repeatedly in this embodiment of the present application.
  • the decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns.
  • the decoding device determines each block in the OFEC codeword as a piece of data group, so that the decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns.
  • FIG. 12 is a schematic diagram of a decoding process of an OFEC codeword provided by an embodiment of the present application.
  • the OFEC codeword in FIG. 12 includes 24 row layers and 8 column layers, that is, the OFEC codeword includes 24*8 blocks, and each block includes 16*16 data, the decoding device converts 24* The 8 blocks are respectively used as a data group, which are data groups 1 to 192 respectively.
  • the decoding device combines the multiple data sets into multiple data sets.
  • the decoding apparatus combines a plurality of data in adjacent row layers or adjacent column layers into one data set. Taking FIG. 12 as an example, the decoding device combines the data groups 1, 2, 9 and 10 in the OFEC codeword into a data set, and the data groups 1, 2, 9 and 10 are in two adjacent row layers and 2 adjacent column layers.
  • the decoding device stores data groups in the plurality of data sets in a plurality of storage addresses in a plurality of storage nodes, wherein the plurality of data groups in the same data set are stored in storage addresses in different storage nodes, and Data groups of different column layers in two adjacent datasets in an OFEC frame pair are stored in different storage nodes.
  • An OFEC frame pair is two adjacent OFEC frames, that is, four consecutive line layers of OFEC codewords. It can be seen from the OFEC codeword shown in FIG. 2 that the multiple oblique short columns in a subcode of the OFEC codeword are located in different OFEC frames, and all are located in the even-numbered row layer or the odd-numbered row layer.
  • the decoding device if you want to decode multiple oblique short columns in the subcode at the same time, you need to ensure that these multiple short columns are stored in different storage nodes, and these multiple short columns may be located in one OFEC frame. Therefore, in the process of storing multiple data groups in each data set into multiple storage nodes, the decoding device also needs to ensure that two adjacent data in the same OFEC frame pair are Centralized data groups of different column layers are stored in different storage nodes.
  • the decoding device converts the zth data in the two data sets into The groups are all stored on the zth storage node among the s storage nodes.
  • the first 4 row layers in the OFEC codeword shown in Figure 10 are an OFEC frame pair.
  • data groups 7, 8, 15 and 16 are data set 1, and data group 23.
  • 24, 31 and 32 are dataset 2, and the datasets 1 and 2 are adjacent in this OFEC frame pair.
  • the decoding device stores both the first data group (data group 7 and data group 23) in the data sets 1 and 2 in the storage node 1, and the decoding device stores the second data group in the data sets 1 and 2 (Data set 8 and data set 24) are both stored in storage node 2, and the decoding device stores the third data set (data set 15 and data set 31) in data sets 1 and 2 in storage node 3.
  • the decoding device stores the fourth data group (data group 16 and data group 32 ) in both data sets 1 and 2 in the storage node 4 .
  • This storage method not only ensures that each data group in dataset 1 or 2 is stored in different storage nodes, but also ensures that data groups in different column layers in datasets 1 and 2 are also stored in different storage nodes.
  • the decoding device determines at least one target data set related to the plurality of target subcodes from the plurality of data sets, and the at least one target data set includes a At least one target data group related to the plurality of target subcodes, one target data group includes partial data of some target subcodes in the plurality of target subcodes.
  • the codeword includes a plurality of subcodes. At least one target data set related to the plurality of target subcodes is a data set including data of the plurality of target subcodes.
  • a subcode in the OFEC codeword is located at multiple row layers and multiple column layers, and the first half of the data of the subcode is located at non-adjacent row layers and column layers, The data of the second half of the subcode is located in the adjacent row layer and column layer.
  • the decoding device stores the OFEC codeword, it combines multiple data in adjacent row layers or adjacent column layers into a data set, so a data set in a data set may include multiple subcodes. part of the data.
  • the decoding device may first determine at least one target data set related to the plurality of target subcodes from the plurality of data sets, and then perform the decoding on the at least one target data set. At least one target data set associated with the plurality of target subcodes is decoded.
  • the decoding device determines the position information of each data in any target subcode based on the above formulas (1)-(2), and according to any target subcode
  • the location information of each data in any target subcode determines the data group where each data is located, and uses any data group where the data in any target subcode is located as the target data group, and the data to which the target data group belongs set as the target dataset.
  • the 16 short columns in the data set 1 in the column upwards of the data set 1 belong to 16
  • the adjacent subcodes are respectively subcodes 1 to 16
  • the 16 short columns in the column direction in the data group 23 in the data set 2 also belong to the subcodes 1 to 16, respectively.
  • the 16 short columns in the column-up direction in the data group 16 belong to 16 adjacent subcodes, which are sub-codes 17 to 32, respectively.
  • the 16 short columns in the column-up direction in the data group 23 in this data set 2 also belong to subcodes 17 to 32, respectively. It can be seen from FIG.
  • the decoding device determines the data sets 1 and 2 as the target data sets related to the subcodes 1 to 32, Determine the data set 6 in the data set 1 and the data set 23 in the data set 2 as the target data sets related to the subcodes 1 to 16, and determine the data set 16 in the data set 1 and the data set 2.
  • the data set 31 is determined as the target data set associated with the subcodes 17 to 32.
  • the data set 3 includes data 167, 168, 175 and 176, and 16 of the data sets 167 and 168 in the horizontal direction of each data set
  • the short columns belong to subcodes 1 to 16, respectively, and the 16 short columns in the lateral direction of each data set in data sets 175 and 176 belong to subcodes 17 to 32, respectively.
  • the decoding device determines the data set 3 as a target data set related to the subcodes 1 to 32, and determines the data sets 167 and 168 in the data set 3 as the target data related to the subcodes 1 to 16 group, the data groups 175 and 176 in the data set 3 are determined as the target data groups related to the subcodes 17 to 32.
  • the decoding device reads the target data group in the at least one target data set from the plurality of storage nodes.
  • the decoding device reads out one target data set from multiple storage nodes in one data reading cycle.
  • the decoding device decodes the read target data group.
  • the read target data group includes at least one odd target data group and at least one even target data group, that is, the target data group in the at least one target data set, wherein one odd target data group is located in the codeword.
  • the target data group of the odd-numbered line layer, and an even target data group is the target data group located at the even-numbered line layer of the codeword.
  • the decoding device Since among the multiple target data groups, some target data groups are located in the odd-numbered row layer, some target data groups are located in the even-numbered row layer, and the target data groups located in the odd-even row layer belong to different target subcodes, therefore, the decoding device is in the In the process of decoding the plurality of target subcodes, two groups of parity decoding nodes can respectively decode the target data groups located at the odd-numbered row layer and at the even-numbered row layer. In a possible implementation manner, this step 1107 is implemented by the process shown in the following steps 11071-11072.
  • Step 11071 The decoding device sends the at least one odd target data group to a plurality of third decoding nodes, and the plurality of third decoding nodes decodes the received odd target data group.
  • the plurality of third decoding nodes are a group of decoding nodes for decoding odd data groups in the codeword, and may also be referred to as odd decoding nodes.
  • the odd data group in the codeword is the data group in the odd row layer in the codeword.
  • all data groups of the first row layer are odd data groups, and odd target data groups are also odd data groups.
  • the data distribution node is based on The position of m*n data in the codeword in any odd target data group determines n column data groups, each column data group belongs to a target subcode and is a short column in a target subcode ;
  • the data distribution node sends the n column data groups to the n third decoding nodes respectively.
  • Each third decoding node can receive at least one column data group, and at least one column data group is respectively from at least one odd target data group, and each third decoding node can receive at least one column data group on the received at least one column data group. to decode.
  • the The data distribution node divides the 16*16 data of each data group in data groups 8 and 16 into 16 column data groups, and sends the 16 column data groups of each data group to 16 third decoding points respectively , so that each third decoding node can receive 2 column data groups and decode 16*2 data in the 2 column data groups.
  • the data distribution node Based on the positions of m*n data in the codeword in any odd target data group, m row data groups are determined, each row data group belongs to a target subcode, a short column in a target subcode ; The data distribution node sends the m line data groups to the m third decoding nodes respectively.
  • Each third decoding node can receive at least one row data group, and at least one row data group is respectively from at least one odd target data group, and each third decoding node performs processing on the received at least one row data group. decoding.
  • the The data distribution node divides the 16*16 data of each data group in the data groups 167 and 168 into 16 line data groups, and sends the 16 line data groups of each data group to the 16 third decoding points respectively , so that each third decoding node can receive 2 row data groups and decode 16*2 data in the 2 row data groups.
  • the decoding device sends the at least one even target data group to a plurality of fourth decoding nodes, and the plurality of fourth decoding nodes decodes the received even target data group.
  • the plurality of fourth decoding nodes are a group of decoding nodes for decoding even data groups in the codeword, and may also be referred to as even decoding nodes.
  • the even data group in the codeword is the data group in the even-numbered row layer in the codeword.
  • all data groups of the second row layer are even data groups, and even target data groups are also even data groups.
  • the data distribution node is based on The position of m*n data in the codeword in any even target data group determines n column data groups, each column data group belongs to a target subcode and is a short column in a target subcode ;
  • the data distribution node sends the n column data groups to the n fourth decoding nodes respectively.
  • Each fourth decoding node can receive at least one column data group, and at least one column data group is respectively from at least one even target data group, and each fourth decoding node performs processing on the received at least one column data group. decoding.
  • each fourth decoding node can receive 2 column data groups, and decode 16*2 data in the received 2 column data groups.
  • the data distribution node Based on the positions of m*n data in the codeword in any even target data group, m row data groups are determined, and each row data group belongs to a target subcode; the data distribution node uses the m rows The data groups are respectively sent to the m fourth decoding nodes.
  • Each fourth decoding node can receive at least one row data group, and at least one row data group is respectively from at least one even target data group, and each fourth decoding node performs processing on the received at least one row data group. decoding.
  • the The data distribution node divides the 16*16 data of each data group in the data groups 175 and 176 into 16 line data groups, and sends the 16 line data groups of each data group to the 16 fourth decoding points respectively , so that each fourth decoding node can receive 2 row data groups, and decode 16*2 data in the received 2 row data groups.
  • steps 11071 and 11072 are parallel steps, and there is no sequence in the execution order, so that the decoding device can decode the multiple target data groups at the same time, which improves the degree of parallelism in the decoding process. and decoding efficiency.
  • the decoding device first determines at least one odd target data group and at least one even target data group among the plurality of target data groups based on the row layer where the plurality of target data groups are located, and then , and then perform the above steps 11071-11072.
  • the process of determining the at least one target data group and the at least one even target data group by the decoding device is performed by a data distribution node in the decoding device.
  • the decoding device modifies m*n pieces of data in the storage address of the any data group into m*n pieces of decoded data,
  • the m*n pieces of decoded data are decoded data of the m*n pieces of data in any data group.
  • step 1108 is the same as the process shown in the above-mentioned step 505, and here, this embodiment of the present application does not repeat the description of this step 1108.
  • a decoding device is used to decode multiple target data groups in parallel, thereby improving the parallelism of decoding and the decoding efficiency. And it can support flexible design of any degree of parallelism without being limited by the length of subcodes, and support high-traffic FEC design requirements.
  • FIG. 13 is a schematic structural diagram of a decoding apparatus provided by an embodiment of the present application.
  • the apparatus 1300 includes:
  • the storage module 1301 is used to store the codeword in a plurality of storage addresses, one storage address is used to store m*n data of m rows and n columns in the codeword, and both the m and the n are greater than or equal to an integer of 1;
  • a reading module 1302 configured to read m*n pieces of data stored in the any storage address from the any storage address for any storage address in the plurality of storage addresses;
  • the decoding module 1303 is used for decoding the read m*n data.
  • the decoding module 1303 includes:
  • the first determination unit is used to determine m row data groups based on the positions of the read m*n data in the codeword if the current decoding process is a row-wise decoding process, one row
  • the data group includes n data in the read m*n data, and the n data are located in the same row in the codeword;
  • the first decoding unit is used for decoding the m row data groups.
  • the first decoding unit is used for:
  • the m line data groups are respectively sent to m first decoding nodes, and each first decoding node decodes the received line data groups.
  • the decoding module 1303 includes:
  • the second determining unit is configured to, if the current decoding process is a column-oriented decoding process, determine n column data groups, one column
  • the data group includes m data in the read m*n data, and the m data are located in the same column in the codeword;
  • the second decoding unit is used for decoding the n column data groups.
  • the second decoding unit is used for:
  • n column data sets are respectively sent to n second decoding nodes, and each second decoding node decodes the received column data sets.
  • the apparatus 1300 further includes:
  • a modification module configured to modify m*n pieces of data stored in any of the storage addresses into m*n pieces of decoded data, where the m*n pieces of decoded data are the read m*n pieces of data Data decoded data.
  • the storage module 1301 is used for:
  • the data in the codeword is divided into multiple data groups, and one data group includes m*n data of m rows and n columns in the codeword;
  • the plurality of data groups are stored in the plurality of storage addresses, and one data group is stored in one storage address.
  • the multiple storage addresses belong to the same storage node.
  • the multiple storage addresses belong to multiple storage nodes
  • the storage module 1301 is used for:
  • the data groups in the multiple data sets are stored in the multiple storage addresses, wherein one storage address stores one data group, and multiple data groups in the same data set are stored in storage addresses in different storage nodes.
  • the reading module 1302 is also used for:
  • a plurality of data groups of the any data set are read from the plurality of storage nodes.
  • the apparatus 1300 further includes:
  • a determining module configured to, for a plurality of adjacent target subcodes among the plurality of subcodes, determine at least one target data set related to the plurality of target subcodes from the plurality of data sets, the at least one target data set
  • the data set includes at least one target data group related to the plurality of target subcodes, and one target data group includes data of part of the target subcodes in the plurality of target subcodes;
  • the reading module 1302 is further configured to read the target data group in the at least one target data set from the plurality of storage nodes;
  • the decoding module 1303 is further configured to decode the read target data group.
  • the read target data group includes at least one odd target data group and at least one even target data group
  • an odd target data group is a target data group located at an odd-numbered row layer of the codeword
  • an even target data group is the target data group located at the even-numbered row layer of the codeword
  • the decoding module 1303 is used for:
  • the at least one even target data group is sent to a plurality of fourth decoding nodes, and the received even data group is decoded by the plurality of fourth decoding nodes.
  • the decoding apparatus decodes the code word
  • only the division of the above functional modules is used as an example for illustration.
  • the above functions can be allocated to different functions as required.
  • Module completion means dividing the internal structure of the device into different functional modules to complete all or part of the functions described above.
  • the decoding method embodiments provided by the above embodiments belong to the same concept, and the specific implementation process thereof is detailed in the method embodiments, which will not be repeated here.
  • Embodiments of the present application also provide a computer program product or computer program, where the computer program product or computer program includes computer instructions, where the computer instructions are stored in a computer-readable storage medium, and the processor of the decoding device stores the computer-readable storage medium.
  • the medium reads the computer instructions, and the processor executes the computer instructions, so that the processor executes the above decoding method.

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

A decoding method, apparatus and device, and a computer readable storage medium, relating to the technical field of communications. Data of m rows and n columns, for example, data of m rows or n columns, in a codeword can form data of multiple dimensions, and in the present method, data of m rows and n columns in a codeword is stored in one storage address, thereby facilitating reading of the data of m rows and n columns in the codeword from the storage address to allow for storage and reading of the data of dimensions in the codeword, and facilitating subsequent multi-dimensional decoding, for example, row-direction decoding or column-direction decoding, of the read data of multiple dimensions in the codeword.

Description

译码方法、装置、设备以及计算机可读存储介质Decoding method, apparatus, device, and computer-readable storage medium
本申请要求于2021年1月27日提交中国国家知识产权局、申请号为202110112883.5、申请名称为“译码方法、装置、设备以及计算机可读存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。This application claims the priority of the Chinese patent application filed on January 27, 2021, with the application number of 202110112883.5 and the application title of "Decoding Method, Apparatus, Equipment and Computer-readable Storage Medium", all of which The contents are incorporated herein by reference.
技术领域technical field
本申请涉及通信技术领域,特别涉及一种译码方法、装置、设备以及计算机可读存储介质。The present application relates to the field of communication technologies, and in particular, to a decoding method, apparatus, device, and computer-readable storage medium.
背景技术Background technique
前向纠错编码(forward error coding,FEC)以较小的额外开销提供可靠的数字传输的功能,在通信系统中得到了广泛应用。尤其是FEC中的多维代数码能够在较低的复杂度和功耗下提供较高的性能增益,例如乘积码(turbo product code,TPC)、阶梯码(staircase code)以及连续相间的BCH码(continuously interleaved Bose Ray Hocquenghem,CIBCH)等。Forward error correction coding (FEC) is widely used in communication systems to provide reliable digital transmission with less overhead. In particular, multi-dimensional algebraic codes in FEC can provide higher performance gains at lower complexity and power consumption, such as turbo product codes (TPC), staircase codes (staircase codes), and continuous alternating BCH codes ( continuously interleaved Bose Ray Hocquenghem, CIBCH) etc.
目前,一般译码设备通过迭代译码的方式,对多维代数码进行译码,在每次迭代译码的过程中,译码设备均对缓存中多维代数码的各个维度的数据分别进行至少一次译码,以TPC码字为例,TPC码字的每次迭代译码过程均包含一次行译码过程和一次列译码过程,其中,行译码过程是指译码设备对TPC码字中的各个行向子码进行译码,列译码过程是指译码设备对TPC码字中的各个列向子码进行译码。At present, a general decoding device decodes the multi-dimensional algebraic code by means of iterative decoding. During each iterative decoding process, the decoding device performs at least one time on the data of each dimension of the multi-dimensional algebraic code in the cache. Decoding, taking the TPC codeword as an example, each iterative decoding process of the TPC codeword includes a row decoding process and a column decoding process. The column decoding process refers to that the decoding device decodes each column subcode in the TPC codeword.
由于译码设备是对多维代数码中的数据从多个维度进行译码,则在对多维代数码进行迭代译码的过程中,译码设备需要从缓存中读取多维代数码中各个维度的数据,那么,如何兼容多维代数码中各个维度的数据存储和读取,是译码过程中亟待解决的一个问题。Since the decoding device decodes the data in the multi-dimensional algebraic code from multiple dimensions, in the process of iteratively decoding the multi-dimensional algebraic code, the decoding device needs to read the data of each dimension in the multi-dimensional algebraic code from the cache. Therefore, how to store and read the data of each dimension in the multi-dimensional algebraic code is compatible with the decoding process, which is an urgent problem to be solved.
发明内容SUMMARY OF THE INVENTION
本申请实施例提供了一种译码方法、装置、设备以及计算机可读存储介质,能够兼容码字中各个维度的数据存储和读取。该技术方案如下:Embodiments of the present application provide a decoding method, apparatus, device, and computer-readable storage medium, which are compatible with data storage and reading of various dimensions in a codeword. The technical solution is as follows:
第一方面,提供了一种译码方法,所述方法包括:In a first aspect, a decoding method is provided, the method comprising:
将码字存储在多个存储地址,其中,一个存储地址用于存储所述码字中m行n列的m*n个数据,所述m和所述n均是大于或等于1的整数;对于所述多个存储地址中的任一存储地址,从所述任一存储地址中读取所述任一存储地址中存储的m*n个数据;对读取到的m*n个数据进行译码。The codeword is stored in a plurality of storage addresses, wherein one storage address is used to store m*n data of m rows and n columns in the codeword, and both the m and the n are integers greater than or equal to 1; For any storage address in the plurality of storage addresses, read m*n data stored in the any storage address from the any storage address; decoding.
由于码字中m行n列的数据能够组成多个维度的数据,例如m行数据或者n列数据,而本方法通过将码字中m行n列的数据存储在一个存储地址,便于从该存储地址中读取到码字中m行n列的数据,以兼容码字中各个维度的数据存储和读取,且便于后续对读取到的码字中多个维度的数据进行多维译码,例如行向译码或者列向译码。Since the data of m rows and n columns in the code word can form data of multiple dimensions, such as m rows of data or n columns of data, this method stores the data of m rows and n columns in the code word in a storage address, which is convenient for data from the The data of m rows and n columns in the codeword is read from the storage address, which is compatible with the data storage and reading of each dimension in the codeword, and facilitates the subsequent multi-dimensional decoding of the data of multiple dimensions in the read codeword. , such as row-wise decoding or column-wise decoding.
在一种可能的实现方式中,所述对读取到的m*n个数据进行译码包括:In a possible implementation manner, the decoding of the read m*n data includes:
若本次译码过程为行向译码过程,基于所述读取到的m*n个数据在所述码字中的位置, 确定m个行数据组;对所述m个行数据组进行译码,其中,一个行数据组包括所述读取到的m*n个数据中的n个数据,所述n个数据在所述码字中位于同一行。If the current decoding process is a row-wise decoding process, determine m row data groups based on the positions of the read m*n data in the codeword; perform the m row data groups on the m row data groups Decoding, wherein one row data group includes n pieces of data among the read m*n pieces of data, and the n pieces of data are located in the same row in the codeword.
基于上述可能的实现方式,对数据组中的每一行数据进行译码,从而能够实现对该数据组的行向译码,也即是实现了对该数据组在行向这一维度上的译码。Based on the above possible implementation manners, each row of data in the data group is decoded, so that the row-wise decoding of the data group can be realized, that is, the row-wise decoding of the data group is realized. code.
在一种可能的实现方式中,所述对所述m个行数据组进行译码包括:In a possible implementation manner, the decoding the m row data groups includes:
将所述m个行数据组分别发送至m个第一译码节点,由每个第一译码节点对接收到的行数据组进行译码。The m line data groups are respectively sent to m first decoding nodes, and each first decoding node decodes the received line data groups.
基于上述可能的实现方式,通过将m个行数据组分别发送至m个第一译码节点,由每个第一译码节点分别对接收到一个行数据组进行译码,从而实现并行对m个行数据组进行译码,提高了数据组的译码效率。Based on the above possible implementations, by sending m line data groups to m first decoding nodes respectively, each first decoding node decodes a received line data group, so as to realize parallel processing of m data groups. Each row data group is decoded, which improves the decoding efficiency of the data group.
在一种可能的实现方式中,所述对读取到的m*n个数据进行译码包括:In a possible implementation manner, the decoding of the read m*n data includes:
若本次译码过程为列向译码过程,基于所述读取到的m*n个数据在所述码字中的位置,确定n个列数据组;对所述n个列数据组进行译码,其中,一个列数据组包括所述读取到的m*n个数据中的m个数据,所述m个数据在所述码字中位于同一列。If the current decoding process is a column-oriented decoding process, based on the positions of the read m*n data in the codeword, determine n column data groups; Decoding, wherein one column data group includes m data in the read m*n data, and the m data are located in the same column in the codeword.
基于上述可能的实现方式,对数据组中的每一列数据进行译码,从而能够实现对该数据组的列向译码,也即是实现了对该数据组在列向这一维度上的译码。Based on the above possible implementation manners, each column of data in the data group is decoded, so that the column-wise decoding of the data group can be realized, that is, the decoding of the data group in the column-wise dimension is realized. code.
在一种可能的实现方式中,所述对所述n个列数据组进行译码包括:In a possible implementation manner, the decoding the n column data groups includes:
将所述n个列数据组分别发送至n个第二译码节点,由每个第二译码节点对接收到的列数据组进行译码。The n column data sets are respectively sent to n second decoding nodes, and each second decoding node decodes the received column data sets.
基于上述可能的实现方式,通过将n个行数据组分别发送至n个第二译码节点,由每个第二译码节点分别对接收到一个列数据组进行译码,从而实现并行对n个列数据组进行译码,提高了数据组的译码效率。Based on the above possible implementations, by sending n row data groups to n second decoding nodes respectively, and each second decoding node decodes a column data group received, thereby realizing parallel pairing of n data groups. Each column data group is decoded, which improves the decoding efficiency of the data group.
在一种可能的实现方式中,所述对读取到的m*n个数据进行译码之后,所述方法还包括:In a possible implementation manner, after the read m*n pieces of data are decoded, the method further includes:
将所述任一存储地址中存储的m*n个数据修改为m*n个译码数据,所述m*n个译码数据为所述读取到的m*n个数据译码后的数据。Modify m*n pieces of data stored in any of the storage addresses into m*n pieces of decoded data, and the m*n pieces of decoded data are the decoded pieces of the read m*n pieces of data. data.
在一种可能的实现方式中,所述将码字存储在多个存储地址包括:In a possible implementation manner, the storing the codeword in multiple storage addresses includes:
按照m行n列的粒度,将所述码字中的数据划分成多个数据组;将所述多个数据组存储在所述多个存储地址,其中,一个数据组包括所述码字中m行n列的m*n个数据,一个存储地址中存储一个数据组。According to the granularity of m rows and n columns, the data in the codeword is divided into a plurality of data groups; the plurality of data groups are stored in the plurality of storage addresses, wherein one data group includes the data in the codeword m*n data in m rows and n columns, one data group is stored in one storage address.
在一种可能的实现方式中,所述多个存储地址属于同一个存储节点。In a possible implementation manner, the multiple storage addresses belong to the same storage node.
在一种可能的实现方式中,所述多个存储地址属于多个存储节点;In a possible implementation manner, the multiple storage addresses belong to multiple storage nodes;
所述将所述多个数据组存储在所述多个存储地址包括:The storing the plurality of data groups at the plurality of storage addresses includes:
将所述多个数据组合并为多个数据集;将所述多个数据集中的数据组存储在所述多个存储地址,其中,一个数据集包括所述多个数据组中相邻的多个数据组,一个存储地址中存储一个数据组,同一数据集中的多个数据组存储在不同存储节点内的存储地址中。combining the multiple data sets into multiple data sets; storing the data sets in the multiple data sets at the multiple storage addresses, wherein one data set includes adjacent multiple data sets in the multiple data sets; One data group is stored in one storage address, and multiple data groups in the same data set are stored in storage addresses in different storage nodes.
在一种可能的实现方式中,所述将所述多个数据集中的数据组存储在所述多个存储地址之后,所述方法还包括:In a possible implementation manner, after storing the data groups in the multiple data sets at the multiple storage addresses, the method further includes:
对于所述多个数据集中的任一数据集,从所述多个存储节点读取所述任一数据集的多个数据组。For any data set in the plurality of data sets, a plurality of data groups of the any data set are read from the plurality of storage nodes.
基于上述可能的实现方式,可以一次从多个存储节点读取出一个数据集,以便对读取到 的数据集中的多个数据组并行译码,提高了译码过程中的并行度以及译码效率。Based on the above possible implementation manners, one data set can be read from multiple storage nodes at a time, so that multiple data sets in the read data set can be decoded in parallel, which improves the degree of parallelism in the decoding process and the decoding process. efficiency.
在一种可能的实现方式中,所述码字包括多个子码,所述将码字存储在多个存储地址之后,所述方法还包括:In a possible implementation manner, the codeword includes multiple subcodes, and after the codeword is stored in multiple storage addresses, the method further includes:
对于所述多个子码中相邻的多个目标子码,从所述多个数据集中确定与所述多个目标子码相关的至少一个目标数据集,其中,所述至少一个目标数据集包括与所述多个目标子码相关的至少一个目标数据组,一个目标数据组包括所述多个目标子码中部分目标子码的数据;For a plurality of adjacent target subcodes among the plurality of subcodes, at least one target data set related to the plurality of target subcodes is determined from the plurality of data sets, wherein the at least one target data set includes At least one target data group related to the plurality of target subcodes, one target data group includes data of part of the target subcodes in the plurality of target subcodes;
从所述多个存储节点读取所述至少一个目标数据集中的目标数据组;对读取到的目标数据组进行译码。Read the target data set in the at least one target data set from the plurality of storage nodes; and decode the read target data set.
在一种可能的实现方式中,所述读取到的目标数据组包括至少一个奇目标数据组以及至少一个偶目标数据组,一个奇目标数据组为位于所述码字的奇数行层的目标数据组,一个偶目标数据组为位于所述码字的偶数行层的目标数据组;In a possible implementation manner, the read target data group includes at least one odd target data group and at least one even target data group, and one odd target data group is a target located at an odd row layer of the codeword data group, an even target data group is the target data group located at the even-numbered row layer of the codeword;
所述对读取到的多个目标数据组进行译码包括:The decoding of the read multiple target data groups includes:
将所述至少一个奇目标数据组发送给多个第三译码节点,由所述多个第三译码节点对接收到的奇目标数据组进行译码;将所述至少一个偶目标数据组发送给多个第四译码节点,由所述多个第四译码节点对接收到的偶数据组进行译码。sending the at least one odd target data group to a plurality of third decoding nodes, and decoding the received odd target data group by the plurality of third decoding nodes; sending the at least one even target data group It is sent to multiple fourth decoding nodes, and the multiple fourth decoding nodes decode the received even data group.
第二方面,提供了一种译码装置,用于执行上述译码方法。具体地,该译码装置包括用于执行上述第一方面或上述第一方面的任一种可选方式提供的译码方法的功能模块。In a second aspect, a decoding apparatus is provided for executing the above decoding method. Specifically, the decoding apparatus includes a functional module for executing the decoding method provided in the above-mentioned first aspect or any optional manner of the above-mentioned first aspect.
第三方面,提供一种译码设备,该译码设备包括处理器和存储器,该存储器中存储有至少一条程序代码,该程序代码由该处理器加载并执行以实现如上述译码方法所执行的操作。In a third aspect, a decoding device is provided, the decoding device includes a processor and a memory, the memory stores at least one piece of program code, and the program code is loaded and executed by the processor to implement the above-mentioned decoding method. operation.
第四方面,提供一种计算机可读存储介质,该存储介质中存储有至少一条程序代码,该程序代码由处理器加载并执行以实现如上述译码方法所执行的操作。In a fourth aspect, a computer-readable storage medium is provided, where at least one piece of program code is stored in the storage medium, and the program code is loaded and executed by a processor to implement the operations performed by the above decoding method.
第五方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括程序代码,该程序代码存储在计算机可读存储介质中,译码设备的处理器从计算机可读存储介质读取该程序代码,处理器执行该程序代码,使得该计算机设备执行上述第一方面或者第一方面的各种可选实现方式中提供的方法。In a fifth aspect, a computer program product or computer program is provided, the computer program product or computer program includes program code, the program code is stored in a computer-readable storage medium, and the processor of the decoding device is obtained from the computer-readable storage medium. The program code is read, and the processor executes the program code, so that the computer device executes the method provided in the first aspect or various optional implementation manners of the first aspect.
附图说明Description of drawings
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。In order to illustrate the technical solutions in the embodiments of the present application more clearly, the following briefly introduces the drawings that are used in the description of the embodiments. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can also be obtained from these drawings without creative effort.
图1是本申请实施例提供的一种TCP码字的结构示意图;1 is a schematic structural diagram of a TCP codeword provided by an embodiment of the present application;
图2是本申请实施例提供的一种OFEC码字的结构示意图;2 is a schematic structural diagram of an OFEC codeword provided by an embodiment of the present application;
图3是本申请实施例提供的一种译码系统的示意图;3 is a schematic diagram of a decoding system provided by an embodiment of the present application;
图4是本申请实施例提供的一种译码设备的结构示意图;4 is a schematic structural diagram of a decoding device provided by an embodiment of the present application;
图5是本申请实施例提供的一种译码方法的流程图;5 is a flowchart of a decoding method provided by an embodiment of the present application;
图6是本申请实施例提供的一种码字存储的示意图;6 is a schematic diagram of a codeword storage provided by an embodiment of the present application;
图7是本申请实施例提供的一种迭代译码的示意图;7 is a schematic diagram of an iterative decoding provided by an embodiment of the present application;
图8是本申请实施例提供的一种译码方法的流程图;8 is a flowchart of a decoding method provided by an embodiment of the present application;
图9是本申请实施例提供的一种码字存储的示意图;9 is a schematic diagram of a codeword storage provided by an embodiment of the present application;
图10是本申请实施例提供的一种TPC码字中数据组与存储节点之间的对应关系示意图;10 is a schematic diagram of the correspondence between a data group and a storage node in a TPC codeword provided by an embodiment of the present application;
图11是本申请实施例提供的一种卷积码的译码过程;11 is a decoding process of a convolutional code provided by an embodiment of the present application;
图12是本申请实施例提供的一种OFEC码字译码过程的示意图;12 is a schematic diagram of an OFEC codeword decoding process provided by an embodiment of the present application;
图13是本申请实施例提供的一种译码装置的结构示意图。FIG. 13 is a schematic structural diagram of a decoding apparatus provided by an embodiment of the present application.
具体实施方式Detailed ways
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。In order to make the objectives, technical solutions and advantages of the present application clearer, the embodiments of the present application will be further described in detail below with reference to the accompanying drawings.
为了便于理解本申请所提供的译码过程,在此先对以下多种码字的码字结构进行如下介绍。In order to facilitate the understanding of the decoding process provided by this application, the codeword structures of the following various codewords are first introduced as follows.
1、TPC码字1. TPC code word
图1是本申请实施例提供的一种TCP码字的结构示意图,参见图1,图1中的TCP码字包括R行K列的R*K个数据,每个数据占用1个比特位,其中,R和K均为大于1的整数。在一种可能的实现方式中,该TPC码字包括多个子码,每个子码包括该TPC码字中的多个数据。例如该TPC码字中的每一行数据为一个子码,或者,该TCP码字中的每一列数据为一个子码。FIG. 1 is a schematic structural diagram of a TCP codeword provided by an embodiment of the present application. Referring to FIG. 1 , the TCP codeword in FIG. 1 includes R*K data in R rows and K columns, and each data occupies 1 bit. Wherein, R and K are both integers greater than 1. In a possible implementation manner, the TPC codeword includes a plurality of subcodes, and each subcode includes a plurality of data in the TPC codeword. For example, each row of data in the TPC codeword is a subcode, or, each column of data in the TCP codeword is a subcode.
2、开放式前向纠错编码(open FEC,OFEC)码字2. Open Forward Error Correction Coding (open FEC, OFEC) codewords
图2是本申请实施例提供的一种OFEC码字的结构示意图,参见图2,该OFEC码字为无线延伸的卷积码。该OFEC码字包括多行多列的多个数据,每个数据占用一个比特位。该OFEC码字中的数据基于生成的先后顺序可以分为历史数据和未来数据,以该OFEC码字中的某一行数据为例,该行数据的下一行数据相对于该行数据为未来数据,而该行数据相对于该行数据的下一行数据为历史数据。FIG. 2 is a schematic structural diagram of an OFEC codeword provided by an embodiment of the present application. Referring to FIG. 2 , the OFEC codeword is a wireless extended convolutional code. The OFEC codeword includes multiple data in multiple rows and multiple columns, and each data occupies one bit. The data in the OFEC codeword can be divided into historical data and future data based on the order of generation. Taking a row of data in the OFEC codeword as an example, the data in the next row of the row of data is future data relative to the row of data. And the next row of data relative to this row of data is historical data.
在一种可能的实现方式中,该OFEC码字包括多个块(block),每个block包括m行n列的m*n个数据,每个数据占用一个比特位,其中,m和n均为大于1的整数,例如图2中的m=n=16。In a possible implementation manner, the OFEC codeword includes a plurality of blocks (blocks), each block includes m*n data of m rows and n columns, and each data occupies one bit, wherein m and n are both is an integer greater than 1, for example, m=n=16 in FIG. 2 .
OFEC码字中处于同一行的多个block为一个行层,例如图2所示的每个行层包括8个block,若m=n=16,则每个行层包括8*6*16个数据。可选地,每个行层用一个行层号来标识,例如图2中的OFEC码字包括[-∞,+∞]个行层,每个行层具有一个行层号。为了便于描述,将行层号为奇数的行层记为奇数行层,行层号为偶数的行层记为偶数行层。其中,相邻的一奇一偶两个行层为一个OFEC帧,也即是一个OFEC帧包括2个相邻的基数行层层和偶数行层,图2中的一个OFEC帧包括8*16*16*2=128*16*2个数据。Multiple blocks in the same row in the OFEC codeword are one row layer. For example, as shown in FIG. 2, each row layer includes 8 blocks. If m=n=16, then each row layer includes 8*6*16 blocks. data. Optionally, each row layer is identified with a row layer number. For example, the OFEC codeword in FIG. 2 includes [-∞, +∞] row layers, and each row layer has a row layer number. For convenience of description, row layers with odd row layer numbers are denoted as odd row layers, and row layers with even row layer numbers are denoted as even row layers. Among them, two adjacent row layers, one odd and one even, are an OFEC frame, that is, an OFEC frame includes two adjacent radix row layers and even row layers. An OFEC frame in FIG. 2 includes 8*16 *16*2=128*16*2 data.
OFEC码字中处于同一列的多个block为一个列层。可选地,每个列层用一个列层号来标识,例如图2中的OFEC码字包括列层0至7。在一个可能的实现方式中,码字中一个数据的位置信息包括该数据所在的目标行层的行层号、该数据所在的目标列层的列层号、该数据在目标行层中所在行的行号以及该数据在目标列层中所在列的列号。以图2所示的该OFEC码字中-2行层中第一个block内的2个数据为例,位于该block内的第1行第1列的数据的位置信息表示为[-2,0,0,0],其中,-2,0,0,0分别用于指示-2行层,0列层、-2行层中的第1行以及0列层中的第1列;位于该block内的第2行第1列的数据的位置信息可以表示为[-2,0,1,0],其中,-2,0,1,0分别用于指示-2行层,0列层、-2行层中的第2行以及0列层中的第1列;需要说明的是,图2中该block处所标记B为该block的边长,可以理解为对于一个m*n大小的block,m和n均等于B。Multiple blocks in the same column in the OFEC codeword are a column layer. Optionally, each column level is identified with a column level number, for example, the OFEC codeword in FIG. 2 includes column levels 0 to 7. In a possible implementation manner, the location information of a piece of data in the codeword includes the row layer number of the target row layer where the data is located, the column layer number of the target column layer where the data is located, and the row where the data is located in the target row layer. , and the column number of the column where the data is located in the target column layer. Taking the 2 data in the first block in the -2 row layer in the OFEC codeword shown in FIG. 2 as an example, the position information of the data located in the first row and the first column in the block is expressed as [-2, 0,0,0], where -2,0,0,0 are used to indicate the -2 row layer, the 0 column layer, the 1st row in the -2 row layer and the 1st column in the 0 column layer, respectively; The position information of the data in the 2nd row and 1st column in the block can be expressed as [-2, 0, 1, 0], where -2, 0, 1, 0 are used to indicate -2 row layer, 0 column respectively layer, the 2nd row in the -2 row layer, and the 1st column in the 0 column layer; it should be noted that the mark B at the block in Figure 2 is the side length of the block, which can be understood as a m*n size The block, m and n are all equal to B.
在一种可能的实现方式中,OFEC码字包括多个子码,每个子码的前一半数据由OFEC码字中斜向的多个短列以及横向的多个短列组成,其中,斜向的多个短列中每个短列为不同行层中的一个block内的一列数据,横向的多个短列中每个短列为一个block内的一行数据,且横向的多个短列处于一个行层中的同一行。以图2所示的OFEC码字中的子码为BCH(256,239)子码,每个block包括16*16个数据为例,在图2中相同线型的多个短列构成一个BCH(256,239)子码,一种线型的多个短列包括排成斜线的8个短列以及位于同一行的8个短列,其中,排成斜线的8个短列为BCH(256,239)子码中斜向的多个短列,是BCH(256,239)子码的前128比特的数据,位于同一行的8个短列为BCH(256,239)子码中横向的多个短列,是BCH(256,239)子码的后128比特的数据。In a possible implementation manner, the OFEC codeword includes a plurality of subcodes, and the first half of the data of each subcode is composed of a plurality of oblique short columns and a plurality of horizontal short columns in the OFEC codeword, wherein the oblique Each short column in the multiple short columns is a column of data in a block in a different row layer, each short column in the horizontal multiple short columns is a row of data in a block, and the horizontal multiple short columns are in a the same row in the row layer. Taking the subcode in the OFEC codeword shown in Figure 2 as a BCH (256, 239) subcode, and each block includes 16*16 data as an example, in Figure 2 multiple short columns of the same line type constitute a BCH (256, 239) subcode, a plurality of short columns of a line type include 8 short columns arranged in a diagonal line and 8 short columns located in the same row, wherein the 8 short columns arranged in a diagonal line are BCH The multiple short columns in the oblique direction in the (256, 239) subcode are the data of the first 128 bits of the BCH (256, 239) subcode, and the 8 short columns in the same row are in the BCH (256, 239) subcode. The multiple short columns in the horizontal direction are the data of the last 128 bits of the BCH (256, 239) subcode.
从图2可知,OFEC码字中子码的数据是交织在一起的,该OFEC码字中的交织关系用下述公式(1)-(2)来表示。It can be seen from FIG. 2 that the data of the subcodes in the OFEC codeword are interleaved together, and the interleaving relationship in the OFEC codeword is represented by the following formulas (1)-(2).
If t<W:{(H^1)–2G-2W/B+2[t/B],[t/B],(t%B)^p,p}   (1)If t<W:{(H^1)–2G-2W/B+2[t/B],[t/B],(t%B)^p,p} (1)
If t≥W:{H,[(t–W)/B],p,(t%B)^p}   (2)If t≥W:{H, [(t–W)/B], p, (t%B)^p} (2)
其中,t为OFEC码字中一个子码的某一个数据在该子码中的位置序号,例如该子码为BCH(256,239)子码,BCH(256,239)子码中第一个比特位上的数据的位置序号为1,第二个比特位上的数据的位置序号为2。W为该子码的码长的一半,例如若该子码为BCH(256,239)子码,则W的取值为128。(H^1)–2G-2W/B+2[t/B]为当该数据为该子码的前半部分数据时,该数据所在行层的行层号。其中,B为一个block的边长,例如取值为16。[t/B]为当该数据为该子码的前半部分数据时,该数据所在列层的列层号。例如,t=1,B=16,0<1/16<1,则0为该数据所在列层的列层号,再例如,t=17,B=16,1<17/16<2,则1为该数据所在列层的列层号。G为大于等于1的整数,用于表示保护间隔,连续的2G+2个行层中各行数据之间相互无编码关系,则译码设备可以将连续的2G+2个行层记为一个复帧,并行对一个复帧进行编译码。(t%B)^p为当该数据为该子码的前半部分数据时,该数据所在列的行号,其中,“%”用于指示下取整操作,“^”用于指示按比特进行异或操作。当该数据为该子码的前半部分数据时,p为该数据所在列的列号,当该数据为该子码的后半部分数据时,p为该数据所在行的行号。H为当该数据为该子码的后半部分数据时,该数据所在行层的行层号。[(t–W)/B]为当该数据为该子码的后半部分数据时,该数据所在列层的列层号。通过以上对公式(1)-(2)的描述可知,上述公式(1)和(2)分别为子码前半部分数据的位置信息和后半部分数据的位置信息。Among them, t is the position number of a certain data of a subcode in the OFEC codeword in the subcode, for example, the subcode is a BCH(256,239) subcode, the first one in the BCH(256,239) subcode The position sequence number of the data on the bit is 1, and the position sequence number of the data on the second bit is 2. W is half of the code length of the subcode. For example, if the subcode is a BCH (256, 239) subcode, the value of W is 128. (H^1)–2G-2W/B+2[t/B] is the row layer number of the row layer where the data is located when the data is the first half of the subcode. Among them, B is the side length of a block, for example, the value is 16. [t/B] is the column layer number of the column layer where the data is located when the data is the first half of the subcode. For example, t=1, B=16, 0<1/16<1, then 0 is the column layer number of the column layer where the data is located. For another example, t=17, B=16, 1<17/16<2, Then 1 is the column layer number of the column layer where the data is located. G is an integer greater than or equal to 1, which is used to represent the guard interval. There is no coding relationship between the data of each line in the continuous 2G+2 line layers, so the decoding device can record the continuous 2G+2 line layers as a complex frame, and encodes and decodes a multiframe in parallel. (t%B)^p is the row number of the column where the data is located when the data is the first half of the subcode, where "%" is used to indicate the round-down operation, and "^" is used to indicate the bitwise operation Perform an exclusive OR operation. When the data is the data of the first half of the subcode, p is the column number of the column where the data is located, and when the data is the data of the second half of the subcode, p is the row number of the row where the data is located. H is the row layer number of the row layer where the data is located when the data is the data in the second half of the subcode. [(t-W)/B] is the column layer number of the column layer where the data is located when the data is the data in the second half of the subcode. From the above description of formulas (1)-(2), it can be known that the above formulas (1) and (2) are the position information of the first half data and the position information of the second half of the subcode, respectively.
图3是本申请实施例提供的一种译码系统的示意图,参见图3,该系统300包括数据处理节点301、存储节点302、数据分发节点303以及译码节点304。其中,该数据处理节点301用于获取码字,并将获取到的码字存储在存储节点302。在一种可能的实现方式中,该数据处理节点301将码字中的数据划分为多个数据组,每个数据组包括该码字中m行n列的m*n个数据,并将每个数据组存储在存储节点302内的一个存储地址中。在对该码字进行行迭代译码的过程中,该数据分发节点303一次从该存储节点302的一个存储地址中读取出一个数据组;若本次译码过程为行译码过程,该数据分发节点303确定读取到该数据组中的多个行数据组,并将每个行数据组分发至一个译码节点304,由多个译码节点304对接收到的行数据组进行译码,从而由多个译码节点304并行实现在一个数据组上一个维度的数据译码过程。若本次译码过程为列译码过程,该数据分发节点303确在定读取到该数据组中的多个列数据组,并将每个列数据组分发至一个译码节点304,由多个译码节点304对接收到的列数据组 进行译码,从而由多个译码节点304并行实现在一个数据组上另一个维度的数据译码过程。FIG. 3 is a schematic diagram of a decoding system provided by an embodiment of the present application. Referring to FIG. 3 , the system 300 includes a data processing node 301 , a storage node 302 , a data distribution node 303 , and a decoding node 304 . Wherein, the data processing node 301 is used to acquire the codeword, and store the acquired codeword in the storage node 302 . In a possible implementation manner, the data processing node 301 divides the data in the codeword into multiple data groups, each data group includes m*n data in m rows and n columns in the codeword, and divides each data group into a plurality of data groups. Each data group is stored at one storage address within storage node 302 . During the row iterative decoding process of the codeword, the data distribution node 303 reads out one data group from a storage address of the storage node 302 at a time; if the current decoding process is a row decoding process, the The data distribution node 303 determines a plurality of row data groups read into the data group, and distributes each row data group to a decoding node 304, and the plurality of decoding nodes 304 decode the received row data groups. code, so that the data decoding process of one dimension on one data group is implemented by a plurality of decoding nodes 304 in parallel. If the current decoding process is a column decoding process, the data distribution node 303 determines a plurality of column data groups to be read into the data group, and distributes each column data group to a decoding node 304, where the A plurality of decoding nodes 304 decode the received column data group, so that a data decoding process of another dimension on one data group is implemented by the plurality of decoding nodes 304 in parallel.
在另一种可能的实现方式中,该数据处理节点301将码字中相邻的多个数据组合并为一个数据集,并将该数据集中的多个数据组存储在多个存储节点302内的存储地址,且该数据集中的多个数据组位于不同的存储节点302内。在对该码字进行行迭代译码的过程中,该数据分发节点303一次从多个存储节点302读取出该数据集的多个数据组。若本次译码过程为行译码过程,该数据分发节点303确定读取到的该数据集中各个数据组的多个行数据组,并将各个数据组的每个行数据组分发至一个译码节点304,此时,一个译码节点304用于接收该数据集中各个数据组中的一个行数据组,由多个译码节点304对接收到的各个行数据组进行译码,从而由多个译码节点304并行实现在一个数据集上一个维度的数据译码过程。若本次译码过程为列译码过程,该数据分发节点303确定读取到的该数据集中各个数据组中的多个列数据组,并将各个数据组的每个列数据组分发至一个译码节点304,此时一个译码节点304用于接收该数据集中各个数据组中的一个列数据组,由多个译码节点304对接收到的各个列数据组进行译码,从而由多个译码节点304并行实现在一个数据集上另一个维度的数据译码过程。且相对于一次对一个数据组进行译码的过程,一次对一个数据集中多个数据组进行译码的过程并行度更高,译码效率更高。In another possible implementation manner, the data processing node 301 combines multiple adjacent data sets in the codeword into one data set, and stores multiple data sets in the data set in multiple storage nodes 302 , and the multiple data groups in the data set are located in different storage nodes 302 . In the process of iteratively decoding the codeword, the data distribution node 303 reads out multiple data groups of the data set from multiple storage nodes 302 at a time. If the current decoding process is a row decoding process, the data distribution node 303 determines a plurality of row data groups of each data group in the read data set, and distributes each row data group of each data group to a decoding code node 304, at this time, a decoding node 304 is used to receive a row data group in each data group in the data set, and the plurality of decoding nodes 304 decode each received row data group, so that multiple The decoding nodes 304 implement the data decoding process of one dimension on one data set in parallel. If the current decoding process is a column decoding process, the data distribution node 303 determines a plurality of column data groups in each data group in the read data set, and distributes each column data group of each data group to a Decoding node 304, at this time, one decoding node 304 is used to receive one column data group in each data group in the data set, and the plurality of decoding nodes 304 decode each received column data group, so that the multiple decoding nodes 304 decode each column data group received. The decoding nodes 304 implement in parallel the data decoding process of another dimension on one data set. And compared with the process of decoding one data group at a time, the process of decoding multiple data groups in one data set at a time has a higher degree of parallelism and higher decoding efficiency.
在一种可能的实现方式中,译码节点304为具有译码功能的任一译码器,例如,软入软出(soft in soft out,SISO)BCH子译码器、硬入硬出(hard in hard out,HIHO)BCH子译码器等。In a possible implementation manner, the decoding node 304 is any decoder with a decoding function, such as a soft in soft out (soft in soft out, SISO) BCH sub-decoder, a hard in hard out ( hard in hard out, HIHO) BCH sub-decoder, etc.
当每个译码节点304对一个行数据组或者一个列数据组译码完成后,该译码节点304将译码所得到译码数据原路写回该存储节点302内的存储地址中,以覆盖该存储地址中存储的相应数据。以便后续数据分发节点303再次从该存储地址中读取数据,并进行下一次译码过程,以实现迭代译码。After each decoding node 304 completes the decoding of a row data group or a column data group, the decoding node 304 writes the decoded data obtained by the decoding back to the storage address in the storage node 302 in the original way, so as to Overwrites the corresponding data stored in this memory address. So that the subsequent data distribution node 303 reads data from the storage address again, and performs the next decoding process to realize iterative decoding.
在一种可能的实现方式中,该系统300中各个节点为相互独立的装置。在另一种可能的实现方式中,该系统300可以部署在一个译码设备上,此时该系统300中的各个节点分别为该译码设备中的一个模块。当然,该系统300中多个节点的功能也可以由一个译码设备上的同一个模块来实现,或者由多个设备来实现。In a possible implementation manner, each node in the system 300 is an independent device. In another possible implementation manner, the system 300 may be deployed on a decoding device, and each node in the system 300 is a module in the decoding device. Of course, the functions of multiple nodes in the system 300 may also be implemented by the same module on one decoding device, or implemented by multiple devices.
例如图4所示的本申请实施例提供的一种译码设备的结构示意图,该译码设备400可因配置或性能不同而产生比较大的差异,包括一个或一个以上处理器401和一个或一个以上的存储器402,其中,所述处理器包括中央处理器(central processing units,CPU)所述存储器402中存储有至少一条程序代码,所述至少一条程序代码由所述处理器401加载并执行以实现下述各个方法实施例提供的译码方法。例如每个存储器401为一个存储节点,例如,当该译码设备400包括一个处理器401时,该一个处理器401用于实现数据处理节点、数据分发节点、以及译码节点的功能,当该译码设备400包括多个处理器401时,一个处理器401可以用于实现数据处理节点、数据分发节点以及译码节点中一个节点的功能。For example, as shown in FIG. 4 is a schematic structural diagram of a decoding device provided by an embodiment of the present application, the decoding device 400 may vary greatly due to different configurations or performance, including one or more processors 401 and one or more More than one memory 402, wherein the processor includes a central processing unit (central processing units, CPU). At least one piece of program code is stored in the memory 402, and the at least one piece of program code is loaded and executed by the processor 401 In order to realize the decoding methods provided by the following method embodiments. For example, each memory 401 is a storage node. For example, when the decoding device 400 includes a processor 401, the processor 401 is used to implement the functions of a data processing node, a data distribution node, and a decoding node. When the decoding device 400 includes multiple processors 401, one processor 401 may be used to implement the function of one of the data processing node, the data distribution node, and the decoding node.
当然,该译码设备400还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该译码设备400还可以包括其他用于实现设备功能的部件,在此不做赘述。Of course, the decoding device 400 may also have components such as a wired or wireless network interface, a keyboard, and an input/output interface for input and output. The decoding device 400 may also include other components for realizing device functions, which are not described here. Repeat.
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括程序代码的存储器,上述程序代码可由终端中的处理器执行以完成下述实施例中的译码方法。例如,该计算机可读存储介质是非临时计算机可读存储介质,如只读存储器(read-only memory,ROM)、随机 存取存储器(random access memory,RAM)、只读光盘(compact disc read-only memory,CD-ROM)、磁带、软盘和光数据存储设备等。In an exemplary embodiment, a computer-readable storage medium, such as a memory including program codes, is also provided, and the program codes can be executed by a processor in the terminal to implement the decoding methods in the following embodiments. For example, the computer-readable storage medium is a non-transitory computer-readable storage medium, such as read-only memory (ROM), random access memory (RAM), compact disc read-only memory, CD-ROM), magnetic tapes, floppy disks, and optical data storage devices, etc.
示例性地,为了进一步说明,译码设备采用数据组的存储方式和读取方式,来存储和读取码字,并通过对读取到的数据组进行译码,来实现码字的译码过程,参见图5所示的本申请实施例提供的一种译码方法的流程图。Exemplarily, for further explanation, the decoding device adopts the storage mode and reading mode of the data group to store and read the code word, and decode the read data group to realize the decoding of the code word. For the process, refer to the flowchart of a decoding method provided by an embodiment of the present application shown in FIG. 5 .
501、译码设备获取码字。501. A decoding device acquires a codeword.
该码字为待译码的码字,该码字为任一类型的多维代码,例如TPC码字、卷积码字、阶梯码字以及CIBCH等。该码字的维度大于或等于2,当该码字为二维代码时,该码字包括R行K列的R*K个数据,每个数据占用1个比特位,例如图1所示的TPC码字。当该码字为三维代码时,该码字包括高度为F的R行K列的F*R*K个数据,每个数据占用1个比特位,其中,F为大于1的整数。在此本申请实施例对该码字的类型以及维度不做限定。The codeword is a codeword to be decoded, and the codeword is any type of multi-dimensional code, such as a TPC codeword, a convolutional codeword, a ladder codeword, and a CIBCH. The dimension of the codeword is greater than or equal to 2. When the codeword is a two-dimensional code, the codeword includes R*K data in R rows and K columns, and each data occupies 1 bit, for example, as shown in Figure 1 TPC codeword. When the codeword is a three-dimensional code, the codeword includes F*R*K data in R rows and K columns with a height of F, and each data occupies 1 bit, where F is an integer greater than 1. Herein, the embodiment of the present application does not limit the type and dimension of the codeword.
在一种可能的实现方式中,本步骤501由该译码设备中的数据处理节点来执行。该数据处理节点从目标节点获取该码字,该目标节点为存储有码字的任一节点,或者编码出该码字的任一节点。可选地,该目标节点是该译码设备以外的节点,例如当编码出该码字的编码设备和该译码设备不是同一个设备时,编码出该码字的编码设备为该目标节点,当该编码设备编码出该码字后,向该译码设备的数据传输接口发送该码字,该译码设备内的数据处理节点从该数据传输接口接收该码字。或者,该目标节点是该译码设备内的一个模块,例如该译码设备同时还具有编码的功能,该译码设备中的目标节点编码出该码字后,将该码字发送至该译码设备中的数据处理节点。In a possible implementation manner, this step 501 is performed by a data processing node in the decoding device. The data processing node obtains the codeword from a target node, where the target node is any node that stores the codeword, or any node that encodes the codeword. Optionally, the target node is a node other than the decoding device, for example, when the encoding device that encodes the codeword and the decoding device are not the same device, the encoding device that encodes the codeword is the target node, After the encoding device encodes the codeword, it sends the codeword to a data transmission interface of the decoding device, and a data processing node in the decoding device receives the codeword from the data transmission interface. Or, the target node is a module in the decoding device. For example, the decoding device also has an encoding function. After encoding the codeword, the target node in the decoding device sends the codeword to the decoding device. The data processing node in the code device.
502、译码设备将该码字存储在多个存储地址,一个存储地址用于存储该码字中m行n列的m*n个数据,该m和该n均是大于或等于1的整数。502. The decoding device stores the codeword in multiple storage addresses, and one storage address is used to store m*n pieces of data in m rows and n columns in the codeword, and both m and n are integers greater than or equal to 1 .
可选地,该多个存储地址属于同一个存储节点,该存储节点所提供存储空间由存储地址来指示,例如该存储节点为一个RAM,该译码设备可以将该码字存储在该RAM中的多个存储地址中。Optionally, the multiple storage addresses belong to the same storage node, and the storage space provided by the storage node is indicated by the storage address. For example, the storage node is a RAM, and the decoding device can store the codeword in the RAM. in multiple storage addresses.
当该码字为图1所示的TCP码字时,m为大于等于1且小于R的整数,n为大于等于1且小于K的整数。其中,m和n相等或不相等,R和K相等或不相等。在一些实施例中,R能整除m和/或K能整除n。在一些实施例中,R不能整除m和/或K不能整除n。When the codeword is the TCP codeword shown in FIG. 1 , m is an integer greater than or equal to 1 and less than R, and n is an integer greater than or equal to 1 and less than K. Among them, m and n are equal or unequal, and R and K are equal or unequal. In some embodiments, R divides m and/or K divides n. In some embodiments, R is not divisible by m and/or K is not divisible by n.
在一些实施例中,该译码设备先将该码字划分多个数据组,再将多个数据组存储该多个存储地址中。在一种可能的实现方式中,本步骤502由下述步骤5021-5022所示的过程来实现。In some embodiments, the decoding device first divides the codeword into a plurality of data groups, and then stores the plurality of data groups in the plurality of storage addresses. In a possible implementation manner, this step 502 is implemented by the processes shown in the following steps 5021-5022.
步骤5021,该译码设备按照m行n列的粒度,将该码字中的数据划分成多个数据组,一个数据组包括该码字中m行n列的m*n个数据。Step 5021, the decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns, and one data group includes m*n data in m rows and n columns in the codeword.
在一个可能的实现方式中,该译码设备设置m行n列个比特位的滑窗,该译码设备通过在该码字上滑动该滑窗,将该码字划分多个数据组。In a possible implementation manner, the decoding device sets a sliding window of m rows and n columns of bits, and the decoding device divides the codeword into multiple data groups by sliding the sliding window on the codeword.
可选地,初始时,该译码设备将该滑窗滑动到该码字的左上角,此时该滑窗覆盖该码字中处于第1至m行以及第1至n列的数据,则该译码设备将此时该滑窗所覆盖的所有数据确定为一个数据组;该译码设备以n个比特位为滑动步长,向右滑动该滑窗,当滑动完成后,该滑窗覆盖该码字中处于第1至m行以及第n+1至2n列的数据,则该译码设备将此时该滑窗所覆盖的所有数据确定为一个数据组;以此类推,该译码设备继向右滑动该滑窗,直至该滑窗能够覆盖该码字中处于第1至m行以及第K列的数据,该译码设备结束在码字中第1至 m行上滑动;并参照上述滑动方式,该译码设备将滑窗在第m+1至2m行进行滑动,以将该码字中处于第m+1至2m行的数据划分为多个数据组;依此类推,直至该数据节点将该滑窗滑动到能够覆盖该码字中处于第R行第K列的数据为止,结束滑动。例如图6所示的本申请实施例提供的一种码字存储的示意图,图6中码字上的各个矩形框为滑窗每次滑动后所覆盖的区域,每个矩形框内所有的数据组成一个数据组。Optionally, initially, the decoding device slides the sliding window to the upper left corner of the codeword. At this time, the sliding window covers the data in the 1st to mth rows and the 1st to nth columns in the codeword, then The decoding device determines all the data covered by the sliding window at this time as a data group; the decoding device uses n bits as the sliding step, slides the sliding window to the right, and when the sliding is completed, the sliding window Covering the data in rows 1 to m and columns n+1 to 2n in the codeword, the decoding device determines all the data covered by the sliding window at this time as a data group; and so on, the decoding The code device slides the sliding window to the right until the sliding window can cover the data in the 1st to mth row and the Kth column in the codeword, and the decoding device ends sliding on the 1st to mth row in the codeword; And with reference to the above-mentioned sliding mode, the decoding device slides the sliding window in the m+1 to 2mth row to divide the data in the m+1 to 2mth row in the codeword into a plurality of data groups; and so on. , until the data node slides the sliding window until it can cover the data in the Rth row and the Kth column of the codeword, and ends the sliding. For example, a schematic diagram of a codeword storage provided by an embodiment of the present application shown in FIG. 6, each rectangular frame on the codeword in FIG. 6 is the area covered by the sliding window after each sliding, and all the data in each rectangular frame form a data set.
需要说明的是,当R能整除m且K能整除n时,该译码设备每一次滑动完滑窗后,该滑窗均能够覆盖该码字中的m*n个数据。当R不能整除m或K不能整除n时,若滑窗滑动到第K列或滑窗在第R行滑动,则该滑窗并不能覆盖到该码字中的m*n个数据,此时该译码设备所确定的数据组中的数据没有m*n个。It should be noted that when R can divide m and K can divide n, after the decoding device slides the sliding window every time, the sliding window can cover m*n data in the codeword. When R cannot divide m or K cannot divide n, if the sliding window slides to the Kth column or the sliding window slides in the Rth row, the sliding window cannot cover the m*n data in the codeword. There are no m*n pieces of data in the data group determined by the decoding device.
在一些实施例中,当将该码字划分为多个数据组后,该译码设备将在该码字中处于同一行的多个数据组作为一个行层,将在该码字中处于同一列的多个数据组作为一个列层。该译码设备为每个行层设置一个行层号,以标识每个行层,为每个列层设置一个列层号,以标识每个列层。一个数据组由该数据组的位置信息来标识,该数据组的位置信息包括该数据组所在行层的行层号以及该数据组所在列层的列层号。例如图6中码字内的第一个数据组的位置信息为1-1,表示处于第1行层以及第1列层的数据组。In some embodiments, after the codeword is divided into a plurality of data groups, the decoding device treats the plurality of data groups in the same row in the codeword as a row layer, and will be in the same row in the codeword as a row layer. Multiple data groups of columns act as a column layer. The decoding device sets a row layer number for each row layer to identify each row layer, and sets a column layer number for each column layer to identify each column layer. A data group is identified by the position information of the data group, and the position information of the data group includes the row layer number of the row layer where the data group is located and the column layer number of the column layer where the data group is located. For example, the position information of the first data group in the codeword in FIG. 6 is 1-1, which indicates the data group in the first row layer and the first column layer.
需要说明的是,上述步骤5021所示的过程为对该码字中一个维度上的数据所进行的分组,该译码设备可以根据上述步骤5021所示的过程,对该码字中另一个维度上的数据进行一次分组。It should be noted that the process shown in the above step 5021 is the grouping of the data in one dimension of the codeword, and the decoding device can, according to the process shown in the above step 5021, group the data in another dimension of the codeword. The data above is grouped once.
步骤5022、该译码设备将该多个数据组存储在该多个存储地址,一个存储地址中存储一个数据组。Step 5022: The decoding device stores the plurality of data groups in the plurality of storage addresses, and each storage address stores one data group.
可选地,该译码设备将该多个数据组发送至一个存储节点,该存储节点将该多个数据组中的每个数据组分别存储在该存储节点内的一个存储地址。如图6所示,该存储节点将该码字中的数据组1-1、1-2以及1-3,分别存储在该存储节点内的存储地址1至3。Optionally, the decoding device sends the multiple data groups to a storage node, and the storage node stores each of the multiple data groups in a storage address in the storage node respectively. As shown in FIG. 6 , the storage node stores data groups 1-1, 1-2 and 1-3 in the codeword at storage addresses 1 to 3 in the storage node, respectively.
对于该多个数据组中的任一数据组,该存储节点将该任一数据组中的数据,按行依次存储在该存储节点内的一个存储地址。如图6所示的,该存储节点将数据组1-1中3行的4个数据依次存储在存储地址1中,在存储地址1中的12个数据排布成1行。For any data group in the plurality of data groups, the storage node stores the data in the any data group at a storage address in the storage node row by row. As shown in FIG. 6 , the storage node sequentially stores four data in three rows of data group 1-1 in storage address 1, and 12 data in storage address 1 are arranged in one row.
需要说明的是,在一些实施例中,本步骤502所示的过程由该译码设备中的数据处理节点来执行。本步骤501-502所示的过程执行一次即可,无须多次执行。It should be noted that, in some embodiments, the process shown in this step 502 is performed by a data processing node in the decoding device. The processes shown in the steps 501-502 only need to be performed once, and do not need to be performed multiple times.
当译码设备将该码字在该存储节点内存储完成后,该译码设备对该存储节点内存储该码字进行译码。由于该码字为多维代码,该译码设备对该码字进行的译码为多维译码,或者也可以理解为迭代译码,译码设备对该码字进行迭代译码的过程包括行译码过程和列译码过程。对于行译码过程或者列译码过程中的任一译码过程,该译码设备先从该存储节点内读取属于该码字的各个数据组,并将读取到的各个数据组中的数据进行译码。为了进一步说明该任一译码过程,请参见下述步骤503-504。After the decoding device stores the codeword in the storage node, the decoding device decodes the codeword stored in the storage node. Since the codeword is a multidimensional code, the decoding of the codeword by the decoding device is multidimensional decoding, or it can also be understood as iterative decoding, and the process of iteratively decoding the codeword by the decoding device includes row decoding. coding process and column decoding process. For any decoding process in the row decoding process or the column decoding process, the decoding device first reads each data group belonging to the codeword from the storage node, and uses the read data in each data group. data is decoded. To further describe any of the decoding processes, please refer to the following steps 503-504.
需要说明的是,本步骤502是以2维码字为例进行说明的。在一些实施例中,当该码字的维度大于2时,该译码设备将该码字划分为多个多维的数据块,每个多维的数据块位于该码字的所有维度上,该译码设备将每个多维的数据块存储在一个存储地址中。以3维码字为例,该译码设备将9*9*9的3维码字中的数据划分为多个3*3*3*的3维数据块,并将每个3*3*3*的3维数据块分别存储在一个存储地址。It should be noted that this step 502 is described by taking a two-dimensional codeword as an example. In some embodiments, when the dimension of the codeword is greater than 2, the decoding device divides the codeword into a plurality of multidimensional data blocks, each multidimensional data block is located on all dimensions of the codeword, and the decoding The code device stores each multidimensional block of data in a memory address. Taking a 3-dimensional codeword as an example, the decoding device divides the data in the 9*9*9 3-dimensional codeword into multiple 3*3*3* 3-dimensional data blocks, and converts each 3*3* 3* 3-dimensional data blocks are stored in one storage address respectively.
503、对于该多个存储地址中的任一存储地址,译码设备从该任一存储地址中读取该任一 存储地址中存储的m*n个数据。503. For any storage address in the plurality of storage addresses, the decoding device reads m*n data stored in the any storage address from the any storage address.
一个存储地址中存储的数据组为该译码设备读写数据的基本单元,该译码设备能够从任一存储地址一次读取出一个数据组中的m*n个数据。可选地,本步骤503所示的过程由该译码设备中数据分发节点来执行。A data group stored in a storage address is the basic unit for the decoding device to read and write data, and the decoding device can read out m*n data in a data group from any storage address at a time. Optionally, the process shown in this step 503 is performed by a data distribution node in the decoding device.
504、该译码设备对读取到的m*n个数据进行译码。504. The decoding device decodes the read m*n pieces of data.
在一种可能的实现方式中,若本次译码过程为行向译码过程,该译码设备确定本次读取出的m*n个数据在该码字行向维度上的排布,并对行向维度上排布的数据进行译码。可选地,本步骤504所示的过程由下述步骤5041-5042所示的过程来实现。In a possible implementation manner, if the current decoding process is a row-wise decoding process, the decoding device determines the arrangement of the m*n pieces of data read this time in the row-wise dimension of the codeword, And decode the data arranged in the row dimension. Optionally, the process shown in this step 504 is implemented by the processes shown in the following steps 5041-5042.
步骤5041、若本次译码过程为行向译码过程,该译码设备基于该读取到的m*n个数据在该码字中的位置,确定m个行数据组,一个行数据组包括该读取到的m*n个数据中的n个数据,该n个数据在该码字中位于同一行。Step 5041: If the current decoding process is a row-wise decoding process, the decoding device determines m row data groups, one row data group based on the position of the read m*n data in the codeword. Including n data among the read m*n data, the n data are located in the same row in the codeword.
m个行数据组为本次读取出的m*n个数据在该数据组行向维度上的排布。由于任一存储地址中存储的m*n个数据在任一存储地址是一行数据,因此,译码设备从该任一存储地址中读取出的m*n个数据也是一行数据,为了便于进行译码,该译码设备则还需要确定出本次读取出的m*n个数据在该码字中的位置,以便基于m*n个数据在该码字中的位置,确定读取到的数据组中的各个数据在行向维度上的排布。The m row data groups are the arrangement of the m*n data read out this time in the row dimension of the data group. Since the m*n data stored in any storage address is a row of data at any storage address, the m*n data read by the decoding device from any storage address is also a row of data. In order to facilitate the decoding code, the decoding device also needs to determine the position of the m*n data read this time in the codeword, so as to determine the read data based on the position of the m*n data in the codeword The arrangement of each data in the data group in the row dimension.
该译码设备基于该读取到的m*n个数据在该码字中的位置,将读取出的m*n个数据中第(i-1)*n+1个数据至第i*n个数据作为一个行数据组。其中,i为大于等于1且小于等于m的整数。例如当i=1时,该译码设备将排布成一行的m*n个数据中的第1个数据至第n个数据作为一个行数据组。再例如当i=2时,该译码设备将排布成一行的m*n个数据中的第n+1个数据至第2n个数据为一个行数据组。The decoding device converts the (i-1)*n+1th data to the i*th data in the read m*n data based on the position of the read m*n data in the codeword n data as a row data group. Among them, i is an integer greater than or equal to 1 and less than or equal to m. For example, when i=1, the decoding apparatus regards the 1st data to the nth data among the m*n pieces of data arranged in a line as a line data group. For another example, when i=2, the decoding device converts the n+1 th data to the 2n th data among the m*n pieces of data arranged in a line into a line data group.
需要说明的是,在一些实施例中,本步骤5041所示的过程由该译码设备中的数据分发节点来执行。It should be noted that, in some embodiments, the process shown in this step 5041 is performed by the data distribution node in the decoding device.
步骤5042、该译码设备对该m个行数据组进行译码。Step 5042: The decoding device decodes the m row data groups.
在一些实施例中,该译码设备并行对该m个行数据组进行译码,以提高该译码设备对该任一存储地址内存储的数据组的译码效率。在一种可能的实现方式中,本步骤5042由该译码设备中的数据分发节点以及多个第一译码节点配合完成。当该数据分发节点确定出m个行数据组后,将该m个行数据组分别发送至m个第一译码节点,由每个第一译码节点对接收到的行数据组中的一个行数据组进行向译码,不同的第一译码节点接收到的行数据组不同。In some embodiments, the decoding device decodes the m row data groups in parallel, so as to improve the decoding efficiency of the decoding device for the data groups stored in any storage address. In a possible implementation manner, this step 5042 is completed by the data distribution node and a plurality of first decoding nodes in the decoding device. After the data distribution node determines m line data groups, the m line data groups are respectively sent to m first decoding nodes, and each first decoding node analyzes one of the received line data groups. The row data group is decoded in the direction, and the row data groups received by different first decoding nodes are different.
在一种可能的实现方式中,该数据分发节点内设置有m*n个比特位的数据分发队列,该数据分发队列中第(i-1)*n+1个比特位至第i*n个比特位与一个第一译码节点连接。该数据分发节点将读取到的m*n个数据依次排列在该数据分发队列中的各个比特位上,从而使得该数据分发队列中第(i-1)*n+1个比特位至第i*n个比特位上的n个数据也即是一个行数据组。对于该m个行数据组中的任一行数据组,该数据分发队列通过该任一行数据组所处的比特位与一个第一译码节点之间的连接,将该任一行数据组中的n个数据发送至该第一译码节点,由该第一译码节点对该任一行数据组中的n个数据进行译码。In a possible implementation manner, the data distribution node is provided with a data distribution queue of m*n bits, and the (i-1)*n+1th bit to the i*nth bit in the data distribution queue bits are connected to a first decoding node. The data distribution node sequentially arranges the read m*n data on each bit in the data distribution queue, so that the (i-1)*n+1th bit to the th The n data on i*n bits is also a row data group. For any row data group in the m row data groups, the data distribution queue, through the connection between the bit position where the any row data group is located and a first decoding node, distributes n data in the any row data group The pieces of data are sent to the first decoding node, and the first decoding node decodes the n pieces of data in any row of data groups.
为了进一步说明步骤5041-5042所示的过程,参见图7中所示的第一维度数据的译码过程,其中,图7为本申请例提供的一种迭代译码的示意图,第一维度数据也即是读取到m*n数据在该码字行向维度上排布的数据。当该数据分发节点从任一存储地址中读取到排列成一行的m*n个数据后,该数据分发节点将m*n个数据拆分成m个行数据组,分别为行数据组1 至m,并将m个行数据组分发至m个第一译码节点,分别为第一译码节点1至m,从而实现第一维度数据的分发,由每个第一译码节点对一个行数据组中的n个数据进行译码。In order to further illustrate the process shown in steps 5041-5042, please refer to the decoding process of the first dimension data shown in FIG. 7, wherein FIG. That is, the data in which m*n data are read and arranged in the dimension of the codeword row. After the data distribution node reads m*n data arranged in a row from any storage address, the data distribution node divides the m*n data into m row data groups, which are row data group 1 respectively. to m, and distribute m row data groups to m first decoding nodes, which are respectively the first decoding nodes 1 to m, so as to realize the distribution of the first dimension data. The n pieces of data in the row data group are decoded.
在一种可能的实现方式中,若本次译码过程为列向译码过程时,该译码设备确定本次读取出的m*n个数据在该码字列向维度上的排布,并对列向维度上排布的数据进行译码。可选地,本步骤504所示的过程由下述步骤504A-504B所示的过程来实现。In a possible implementation manner, if the current decoding process is a column-wise decoding process, the decoding device determines the arrangement of the m*n pieces of data read this time in the column-wise dimension of the codeword , and decode the data arranged in the column dimension. Optionally, the process shown in this step 504 is implemented by the processes shown in the following steps 504A-504B.
步骤504A、若本次译码过程为行向译码过程,该译码设备基于该读取到的m*n个数据在该码字中的位置,确定n个列数据组,一个列数据组包括该读取到的m*n个数据中的m个数据,该m个数据在该码字中位于同一列。Step 504A, if the current decoding process is a row-wise decoding process, the decoding device determines n column data groups and one column data group based on the position of the read m*n data in the codeword. Including m data among the read m*n data, the m data are located in the same column in the codeword.
n个列数据组为本次读取出的m*n个数据在该数据组列向维度上的排布。由于任一存储地址中存储的m*n个数据在任一存储地址是一行数据,因此,译码设备从该任一存储地址中读取出的m*n个数据也是一行数据,为了便于进行译码,该译码设备则还需要确定出本次读取出的m*n个数据在该码字中的位置,以便基于m*n个数据在该码字中的位置,确定读取到的数据组中的各个数据在该数据组列向维度上的排布。The n column data groups are the arrangement of the m*n data read out this time in the column dimension of the data group. Since the m*n data stored in any storage address is a row of data at any storage address, the m*n data read by the decoding device from any storage address is also a row of data. In order to facilitate the decoding code, the decoding device also needs to determine the position of the m*n data read this time in the codeword, so as to determine the read data based on the position of the m*n data in the codeword The arrangement of each data in the data group in the column dimension of the data group.
该译码设备基于该读取到的m*n个数据在该码字中的位置,确定m个行数据组,并将该m个行数据组中的第j个数据,确定为该n个列数据组中第j个列数据组,其中,j为大于等于1且小于等于n的整数。例如译码设备将m个行数据组中第1个数据,组成n个列数据组中的第1个列数据组。再例如译码设备将将m个行数据组中第2个数据,组成n个列数据组中的第2个列数据组。The decoding device determines m row data groups based on the positions of the read m*n data in the codeword, and determines the jth data in the m row data groups as the n data The jth column data group in the column data group, where j is an integer greater than or equal to 1 and less than or equal to n. For example, the decoding device forms the first data group in the m row data groups into the first column data group in the n column data groups. For another example, the decoding device will form the second data group in the m row data groups into the second column data group in the n column data groups.
需要说明的是,在一些实施例中,本步骤504A所示的过程由该译码设备中的数据分发节点来执行。It should be noted that, in some embodiments, the process shown in this step 504A is performed by the data distribution node in the decoding device.
步骤504B、该译码设备对该n个列数据组进行译码。Step 504B, the decoding device decodes the n column data groups.
在一些实施例中,该译码设备并行对该n个列数据组进行译码,以提高该译码设备对该任一存储地址内存储的数据组的译码效率。在一种可能的实现方式中,本步骤504B由该译码设备中的数据分发节点以及多个第二译码节点配合完成。当该数据分发节点确定出n个列数据组后,将该n个列数据组分别发送至n个第二译码节点,由每个第二译码节点对接收到的列数据组中的一个列数据组进行译码,不同的第二译码节点接收到的列数据组不同。In some embodiments, the decoding device decodes the n column data groups in parallel, so as to improve the decoding efficiency of the decoding device for the data groups stored in any storage address. In a possible implementation manner, this step 504B is completed by a data distribution node and a plurality of second decoding nodes in the decoding device. After the data distribution node determines n column data groups, the n column data groups are respectively sent to n second decoding nodes, and each second decoding node analyzes one of the received column data groups. The column data sets are decoded, and the column data sets received by different second decoding nodes are different.
在一种可能的实现方式中,对于任一行数据组,该数据分发节点中的数据分发队列内该任一行数据组所处的n个比特位分别与一个第二译码节点连接,从而使得一个第二译码节点能够连接到m个数据组中一个数据所处的比特位。可以理解的是,一个第二译码节点所连接到m个比特位上的m个数据为一个列数据组。该数据分发节点将读取到的m*n个数据依次排列在该数据分发队列中的各个比特位上。对于该n个列数据组中的任一列数据组,该数据分发队列通过该任一列数据组所处的比特位与一个第二译码节点之间的连接,将该任一列数据组中的m个数据发送至该第二译码节点,由该第二译码节点对该任一列数据组中的m个数据进行译码。In a possible implementation manner, for any row of data groups, n bits located in the data distribution queue in the data distribution node of any row of data groups are respectively connected to a second decoding node, so that a The second decoding node can be connected to the bit where one data of the m data groups is located. It can be understood that, m pieces of data connected to m bits by one second decoding node are a column data group. The data distribution node sequentially arranges the read m*n data on each bit in the data distribution queue. For any column data group in the n column data groups, the data distribution queue uses the connection between the bits where the any column data group is located and a second decoding node, and m in the any column data group The pieces of data are sent to the second decoding node, and the second decoding node decodes the m pieces of data in any column of data groups.
为了进一步说明步骤504A-504B所示的过程,参见图7中所示的第二维度数据的译码过程,第二维度数据也即是读取到m*n数据在该码字列向维度上排布的数据。当该数据分发节点从任一存储地址中读取到排列成一行的m*n个数据后,该数据分发节点将m*n个数据拆分成n个列数据组,分别为列数据组1至n,并将n个列数据组分发至n个第二译码节点,分别为第二译码节点1至n,从而实现第二维度数据的分发,由每个第二译码节点对一个列数据组中的m个数据进行译码。In order to further illustrate the process shown in steps 504A-504B, please refer to the decoding process of the second dimension data shown in FIG. 7 , the second dimension data is the read m*n data in the column dimension of the codeword Arranged data. After the data distribution node reads m*n data arranged in a row from any storage address, the data distribution node splits the m*n data into n column data groups, which are column data group 1 respectively. to n, and distribute n column data groups to n second decoding nodes, which are respectively second decoding nodes 1 to n, so as to realize the distribution of second dimension data, and each second decoding node pairs one The m pieces of data in the column data group are decoded.
需要说明的是,在一些实施例中,m个第一译码节点和n个第二译码节点为不同的译码节点。而在另外一些实施例中,第一译码节点和第二译码节点可以为复用。若m大于或等于n,在进行列向译码的过程中,该m个第一译码节点中的n个第一译码节点复用为n个第二译码节点。若m小于n,在进行行向译码的过程中,该n个第二译码节点中的m个第二译码节点复用为m个第一译码节点,以减小该译码设备中的译码节点的个数。由于译码设备在对码字中的一个数据组进行迭代译码过程中,要先进行完行译码过程,再进行列译码过程,或者是先进行完列译码过程,再进行行译码过程,可见,译码设备对一个数据组所进行的列译码过程和行译码过程不会同时发生,因此,第一译码节点和第二译码节点能够复用。It should be noted that, in some embodiments, the m first decoding nodes and the n second decoding nodes are different decoding nodes. In other embodiments, the first decoding node and the second decoding node may be multiplexed. If m is greater than or equal to n, in the process of performing column-wise decoding, n first decoding nodes among the m first decoding nodes are multiplexed into n second decoding nodes. If m is less than n, in the process of row-wise decoding, m second decoding nodes in the n second decoding nodes are multiplexed into m first decoding nodes, so as to reduce the number of decoding equipment. The number of decoding nodes in . Since the decoding device performs the iterative decoding process for a data group in the codeword, it must first perform the row decoding process, and then perform the column decoding process, or perform the column decoding process first, and then perform the row decoding process. It can be seen that the column decoding process and the row decoding process performed by the decoding device for a data group do not occur simultaneously, so the first decoding node and the second decoding node can be multiplexed.
需要说明的是,本步骤504是以2维码字为例进行说明的。在一些实施例中,当该码字的维度大于2时,该译码设备从任一存储地址中读取到的是一个多维的数据块,并不是一个二维的数据组,则该译码设备可以先将该多维的数据块划分为多个二维的数据组,再对每个二维的数据组执行本步骤504。It should be noted that this step 504 is described by taking a 2-dimensional codeword as an example. In some embodiments, when the dimension of the codeword is greater than 2, and what the decoding device reads from any storage address is a multi-dimensional data block, not a two-dimensional data group, the decoding The device may first divide the multi-dimensional data block into multiple two-dimensional data groups, and then perform step 504 on each two-dimensional data group.
505、该译码设备将该任一存储地址中的m*n个数据修改为m*n个译码数据,该m*n个译码数据为该读取到的m*n个数据译码后的数据。505. The decoding device modifies m*n pieces of data in any storage address into m*n pieces of decoded data, and the m*n pieces of decoded data are decoded for the read m*n pieces of data data after.
该任一存储地址中的m*n个数据与该m*n个译码数据一一对应。当该译码设备对该任一存储地址中的m*n个数据译码完成后,得到m*n个译码数据,该译码设备按照该任一存储地址中的m*n个数据与该m*n个译码数据一一对应关系,将该m*n个译码数据原路写回该任一存储地址,以覆盖该任一存储地址中存储的m*n个数据,从而实现修改。The m*n pieces of data in any storage address are in one-to-one correspondence with the m*n pieces of decoded data. After the decoding device completes the decoding of m*n data in any storage address, m*n decoded data is obtained, and the decoding device according to the m*n data in any storage address and The m*n pieces of decoded data have a one-to-one correspondence, and the m*n pieces of decoded data are written back to the any storage address in the original way to cover the m*n pieces of data stored in the any storage address, thereby realizing Revise.
在一些实施例中,本步骤505所示的过程由译码设备中数据分发节点以及译码节点配合完成。在一种可能的实现方式中,若本次译码过程为行向译码过程,对于该m个第一译码节点中的任一第一译码节点,任一第一译码节点对一个行数据组中的n个数据译码完成后,得到n个译码数据,该n个译码数据与该n个数据一一对应。该任一第一译码节点将该n个译码数据写回该数据分发节点,当该m个第一译码节点均将各自译码后得到的n个译码数据写回到数据分发节点后,该数据分发节点能够获取到m*n个译码数据,该数据分发节点将该m*n个译码数据写回该任一存储地址。In some embodiments, the process shown in this step 505 is completed by the data distribution node and the decoding node in the decoding device. In a possible implementation manner, if the current decoding process is a row-wise decoding process, for any first decoding node among the m first decoding nodes, any first decoding node corresponds to one After the n pieces of data in the row data group are decoded, n pieces of decoded data are obtained, and the n pieces of decoded data correspond to the n pieces of data one-to-one. The any first decoding node writes the n pieces of decoded data back to the data distribution node, and when the m first decoding nodes all write the n pieces of decoded data obtained after decoding back to the data distribution node Afterwards, the data distribution node can obtain m*n pieces of decoded data, and the data distribution node writes the m*n pieces of decoded data back to any storage address.
在另一种可能的实现方式中,若本次译码过程为列向译码过程,对于该n个第二译码节点中的任一第二译码节点,任一第二译码节点对一个列数据组中的m个数据译码完成后,得到m个译码数据,该m个译码数据与该m个数据一一对应。该任一第二译码节点将该m个译码数据写回该数据分发节点,当该n个第二译码节点均将各自译码后得到的m个译码数据写回到数据分发节点后,该数据分发节点能够获取到m*n个译码数据,该数据分发节点将该m*n个译码数据写回该任一存储地址。In another possible implementation, if the current decoding process is a column-wise decoding process, for any second decoding node in the n second decoding nodes, any second decoding node pairs After the m pieces of data in a column data group are decoded, m pieces of decoded data are obtained, and the m pieces of decoded data are in one-to-one correspondence with the m pieces of data. The any second decoding node writes the m pieces of decoded data back to the data distribution node, and when the n second decoding nodes all write the m pieces of decoded data obtained after their respective decoding back to the data distribution node Afterwards, the data distribution node can obtain m*n pieces of decoded data, and the data distribution node writes the m*n pieces of decoded data back to any storage address.
当该译码设备对属于该码字的每个数据组均执行完成上述步骤503-505所示的过程时,该译码设备对该码字一个维度上所进行的译码过程完成。该译码设备跳转执行上述步骤503-505所示的过程,继续对该码字进行另一个维度的译码过程,从而实现对该码字的迭代译码过程。例如,当该译码设备通过上述步骤503-505,对该码字中的每个数据组均执行完行向译码过程后,该译码设备继续通过执行上述步骤503-505,对该码字中的每个数据组均执行列向译码过程。When the decoding device performs the process shown in the above steps 503-505 for each data group belonging to the codeword, the decoding process performed by the decoding device in one dimension of the codeword is completed. The decoding device jumps to execute the process shown in the above steps 503-505, and continues to perform the decoding process of another dimension on the codeword, thereby realizing the iterative decoding process of the codeword. For example, after the decoding device performs the row-wise decoding process for each data group in the codeword through the above steps 503-505, the decoding device continues to perform the above steps 503-505 to perform the decoding process on the code word. A column-wise decoding process is performed for each data group in the word.
由于该任一数据组中存储的m*n个数据满足行向维度的分布以及列向维度的分布,在一些实施例中,该译码设备以数据组为迭代译码的基本单位。该译码设备通过执行上述步骤503-505,对任一存储地址内存储的一个数据组,完成行向译码后,无须等待其他存储地址中 存储的数据组完成行向译码,该译码设备直接通过上述步骤503-505,对任一存储地址内当前存储的数据组进行列译码过程,从而实现对该码字中一个数据组的迭代译码过程。Since m*n pieces of data stored in any data group satisfy the distribution of row dimension and the distribution of column dimension, in some embodiments, the decoding device uses the data group as the basic unit of iterative decoding. The decoding device performs the above steps 503-505 to complete the row-wise decoding of a data group stored in any storage address, without waiting for the data groups stored in other storage addresses to complete the row-wise decoding. The device directly performs the column decoding process on the data group currently stored in any storage address through the above steps 503-505, thereby realizing the iterative decoding process of one data group in the codeword.
以任一存储地址中存储的数据组为[1,2;3,4]为例,在行译码过程中,数据分发节点从任一存储地址中读取到数据组[1,2;3,4],并基于读取到的数据组[1,2;3,4],确定出2个行数据组,分别为行数据组[1,2]和行数据组[3,4]。数据分发节点将行数据组[1,2]和行数据组[3,4]分别发送至译码节点1和2。译码节点1对行数据组[1,2]进行译码,得到译码数据5和6,译码节点2对行数据组[3,4]进行译码,得到译码数据7和8。译码节点1将译码数据5、6写回数据分发节点,译码节点2将译码数据7、8写回数据分发节点。数据分发节点将译码数据5、6、7、8写回任一存储地址,并覆盖任一存储地址中存储的1、2、3、4,此时任一存储地址中存储的数据组更新为[5,6;7,8]。在列译码的过程中,数据分发节点从任一存储地址读取数据组[5,6;7,8],并基于读取到的数据组[5,6;7,8],确定出2个列数据组,分别为列数据组[5,7]和列数据组[6,8]。数据分发节点将列数据组[5,7]和列数据组[6,8]分别发送至译码节点3和4。译码节点3对列数据组[5,7]进行译码得到译码数据9和10,译码节点4对列数据组[6,8]进行译码得到译码数据11和12。译码节点3将译码数据9、10写回数据分发节点,译码节点4将译码数据11、12写回数据分发节点。数据分发节点将译码数据9、11、10、12写回任一存储地址,并覆盖任一存储地址中存储的5、6、7、8。此时任一存储地址中存储的数据组更新为[9,11;10,12],任一存储地址中存储的数据经过一次行译码以及一次列译码,当该译码设备对一个码字中的每个数据组均执行一次行译码过程和一次列译码过程时,也即是对该码字进行了一次迭代译码过程。其中,上述的译码节点1和2均为第一译码节点,译码节点3和4均为第二译码节点。Taking the data group stored in any storage address as [1, 2; 3, 4] as an example, in the row decoding process, the data distribution node reads the data group [1, 2; 3 from any storage address] , 4], and based on the read data groups [1, 2; 3, 4], two row data groups are determined, which are row data groups [1, 2] and row data groups [3, 4] respectively. The data distribution node sends the row data group [1, 2] and the row data group [3, 4] to the decoding nodes 1 and 2, respectively. Decoding node 1 decodes the row data set [1, 2] to obtain decoded data 5 and 6, and decoding node 2 decodes the row data set [3, 4] to obtain decoded data 7 and 8. The decoding node 1 writes the decoded data 5 and 6 back to the data distribution node, and the decoding node 2 writes the decoded data 7 and 8 back to the data distribution node. The data distribution node writes the decoded data 5, 6, 7, and 8 back to any storage address, and overwrites the 1, 2, 3, and 4 stored in any storage address. At this time, the data group stored in any storage address is updated. is [5, 6; 7, 8]. In the process of column decoding, the data distribution node reads the data set [5, 6; 7, 8] from any storage address, and determines the data set [5, 6; 7, 8] based on the read data set [5, 6; 7, 8]. 2 column data groups, namely column data group [5, 7] and column data group [6, 8]. The data distribution node sends the column data set [5, 7] and the column data set [6, 8] to the decoding nodes 3 and 4, respectively. The decoding node 3 decodes the column data set [5, 7] to obtain the decoded data 9 and 10, and the decoding node 4 decodes the column data set [6, 8] to obtain the decoded data 11 and 12. The decoding node 3 writes the decoded data 9 and 10 back to the data distribution node, and the decoding node 4 writes the decoded data 11 and 12 back to the data distribution node. The data distribution node writes the decoded data 9, 11, 10, and 12 back to any storage address, and overwrites the 5, 6, 7, and 8 stored in any storage address. At this time, the data group stored in any storage address is updated to [9, 11; 10, 12], and the data stored in any storage address undergoes one row decoding and one column decoding. When each data group in the word performs a row decoding process and a column decoding process, that is, an iterative decoding process is performed for the codeword. The above-mentioned decoding nodes 1 and 2 are both first decoding nodes, and decoding nodes 3 and 4 are both second decoding nodes.
由于码字中m行n列的数据能够组成多个维度的数据,例如m行数据或者n列数据,因此,本申请实施例通过将码字中m行n列的数据存储在一个存储地址,便于从该存储地址中读取到码字中m行n列的数据,以兼容码字中各个维度的数据存储和读取,且便于后续对读取到的码字中多个维度的数据进行多维译码,例如行向译码或者列向译码。且可不受子码长度的限制支持任意并行度的灵活设计,支撑高流量的FEC设计需求。Since the data of m rows and n columns in the codeword can form data of multiple dimensions, for example, the data of m rows or n columns, the embodiment of the present application stores the data of m rows and n columns in the codeword in a storage address, It is convenient to read the data of m rows and n columns in the code word from the storage address, so as to be compatible with the data storage and reading of each dimension in the code word, and it is convenient for subsequent data of multiple dimensions in the read code word to be performed. Multi-dimensional decoding, such as row-wise decoding or column-wise decoding. And it can support flexible design of any degree of parallelism without being limited by the length of subcodes, and support high-traffic FEC design requirements.
图5所示的过程为译码设备以一个数据组为一个译码处理单元,对码字进行译码的过程。当码字中的数据较多时,该译码设备还可以以多个数据组为一个译码处理单元,同时对多个数据组进行译码,以提高译码的并行度以及译码效率。为了进一步说明该过程,请参见图8所示的本申请实施例提供的一种译码方法的流程图。The process shown in FIG. 5 is a process in which the decoding device uses one data group as a decoding processing unit to decode the codeword. When there is a lot of data in the codeword, the decoding device can also use multiple data groups as a decoding processing unit, and decode the multiple data groups at the same time, so as to improve the parallel degree of decoding and the decoding efficiency. To further illustrate the process, please refer to the flowchart of a decoding method provided by an embodiment of the present application shown in FIG. 8 .
801、译码设备获取码字。801. The decoding device obtains a codeword.
本步骤801所示的过程与上述步骤501所示的过程同理,在此,本申请实施例对本步骤801不做赘述。The process shown in this step 801 is the same as the process shown in the above-mentioned step 501, and this step 801 is not repeated in this embodiment of the present application.
802、该译码设备按照m行n列的粒度,将该码字中的数据划分成多个数据组。802. The decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns.
本步骤802所示的过程与上述步骤5021所示的过程同理,在此,本申请实施例对本步骤802不做赘述。The process shown in this step 802 is the same as the process shown in the above-mentioned step 5021, and here, this embodiment of the present application does not repeat the description of this step 802.
803、该译码设备将该多个数据组合并为多个数据集,一个数据集包括该多个数据组中相邻的多个数据组。803. The decoding device combines the multiple data sets into multiple data sets, and one data set includes multiple adjacent data sets among the multiple data sets.
其中,该相邻的多个数据组具有多种相邻的形式。可选地,该相邻的多个数据组为处于同一个行层中连续的多个数据组。以图9中的码字为例,该译码设备将码字的第一个行层中的数据组1-1、1-2以及1-3组作为一个数据集,其中,图9为本申请实施例提供的一种码字 存储的示意图。可选地,相邻的多个数据组为处于同一列行层中连续的多个数据组,以图9中的码字为例,该译码设备将该码字的第一个列层中的数据组1-1、2-1以及3-1作为一个数据集。可选地,相邻的多个数据组为处于相邻的行层或相邻的列层的多个数据组,以图9中的码字为例,该译码设备该码字中的数据组1-1、1-2、2-1以及2-2作为一个数据集,其中,数据组1-1、1-2、2-1以及2-2所在的行层和列层均相邻。Wherein, the adjacent multiple data groups have multiple adjacent forms. Optionally, the adjacent multiple data groups are consecutive multiple data groups in the same row layer. Taking the code word in FIG. 9 as an example, the decoding device uses the data groups 1-1, 1-2 and 1-3 in the first row layer of the code word as a data set, wherein FIG. 9 is this A schematic diagram of a codeword storage provided by an embodiment of the application. Optionally, the adjacent multiple data groups are continuous multiple data groups in the same column and row layer. Taking the code word in FIG. 9 as an example, the decoding device uses the code word in the first column layer. The datasets 1-1, 2-1, and 3-1 are used as a dataset. Optionally, the adjacent multiple data groups are multiple data groups in adjacent row layers or adjacent column layers. Taking the code word in FIG. 9 as an example, the data in the code word of the decoding device is Groups 1-1, 1-2, 2-1 and 2-2 are used as a dataset, wherein the row and column layers where the data groups 1-1, 1-2, 2-1 and 2-2 are located are adjacent .
需要说明的是,图9所示的实施例是以译码设备将处于同一个行层中连续的多个数据组合并为一个数据集为例的。在一些实施例中,本步骤803所示的过程由译码设备中数据处理节点来执行。It should be noted that, the embodiment shown in FIG. 9 is taken as an example for the decoding device to combine multiple consecutive data in the same row layer into one data set. In some embodiments, the process shown in this step 803 is performed by a data processing node in the decoding device.
804、该译码设备将该多个数据集中的数据组存储在多个存储节点中的多个存储地址,其中,一个存储地址中存储一个数据组,同一数据集中的多个数据组存储在不同存储节点内的存储地址中。804. The decoding device stores the data groups in the multiple data sets in multiple storage addresses in the multiple storage nodes, wherein one storage address stores one data group, and multiple data groups in the same data set are stored in different storage addresses. in the storage address within the storage node.
对于该多个数据集中的任一数据集,该译码设备将该任一数据集中的多个数据组分别存储在该多个存储节点内的一个存储地址,其中,该任一数据集中的每个数据组对应不同的存储节点。以图9为例,一个数据集包括数据组1-1、1-2以及1-3,该译码设备将数据组1-1存储在存储节点1的存储地址1,将数据组1-2存储在存储节点2的存储地址1,将数据组1-3存储在存储节点3的存储地址1。For any data set in the plurality of data sets, the decoding device stores the plurality of data groups in the any data set respectively at a storage address in the plurality of storage nodes, wherein each data set in the any data set Each data group corresponds to different storage nodes. Taking FIG. 9 as an example, a data set includes data groups 1-1, 1-2 and 1-3. The decoding device stores the data group 1-1 at the storage address 1 of the storage node 1, and stores the data group 1-2 at the storage address 1 of the storage node 1. The data groups 1-3 are stored at the storage address 1 of the storage node 2, and the data groups 1-3 are stored at the storage address 1 of the storage node 3.
在一种可能的实现方式,该译码设备采用循环移位的方式,将该多个数据集中的数据组存储在多个存储节点。可选地,该译码设备采用循环移位的方式,建立该多个数据集中的各个数据组与多个存储节点的对应关系,并将每个数据组存储在对应的存储节点中的一个存储地址。In a possible implementation manner, the decoding device uses a cyclic shift manner to store data groups in the multiple data sets in multiple storage nodes. Optionally, the decoding device adopts a cyclic shift method to establish the correspondence between each data group in the plurality of data sets and the plurality of storage nodes, and stores each data group in one of the corresponding storage nodes. address.
在一种可能的实现方式中,该译码设备采用循环移位的方式,建立该多个数据集中各个数据组与多个存储节点的对应关系包括:若每个数据集中数据组的个数均为s,多个存储节点有s个,在该码字中相邻的s个行层中,对于该s个行层中的第z个行层,该译码设备将该第z个行层内每个数据集中的s个数据组向右转移(z-1)位后,依次与s个存储节点对应,其中,s为大于1且小于n的整数,z为大于等于1且小于等于z的整数。In a possible implementation manner, the decoding device adopts a cyclic shift manner, and establishing the correspondence between each data group in the plurality of data sets and the plurality of storage nodes includes: if the number of data groups in each data set is equal to is s, there are s multiple storage nodes, and in the adjacent s row layers in the codeword, for the zth row layer in the s row layers, the decoding device uses the zth row layer After the s data groups in each data set are shifted to the right by (z-1) bits, they correspond to s storage nodes in turn, where s is an integer greater than 1 and less than n, and z is greater than or equal to 1 and less than or equal to z the integer.
当z=1时,在该s个行层中的第1个行层内,该译码设备将该第1个行层内每个数据集中的s个数据组依次与s个存储节点对应。例如第1个行层内每个数据集中的第1个数据组与s个存储节点中的第1个存储节点对应,第1个行层内每个数据集中的第2个数据组与s个存储节点中的第2个存储节点对应,依此类推。例如s=3,z=1,图9所示的码字中第1个行层中的第1个数据集包括数据组1-1、数据组1-2以及数据组1-3,数据组1-1与存储节点1对应,数据组1-2与存储节点2对应,数据组1-3与存储节点对应。When z=1, in the first row layer in the s row layers, the decoding device sequentially corresponds to the s data groups in each data set in the first row layer with the s storage nodes. For example, the first data group in each dataset in the first row layer corresponds to the first storage node in the s storage nodes, and the second data group in each dataset in the first row layer corresponds to the s storage node. The 2nd storage node in the storage node corresponds, and so on. For example, s=3, z=1, the first data set in the first row layer in the codeword shown in FIG. 9 includes data group 1-1, data group 1-2 and data group 1-3, data group 1-1 corresponds to storage node 1, data group 1-2 corresponds to storage node 2, and data group 1-3 corresponds to storage node.
当z=2时,在该s个行层中的第2个行层内,该译码设备将该第2个行层内每个数据集中的s个数据组向右转移1位后,依次与s个存储节点对应。例如第2个行层内每个数据集中的数据组向右转移1位后,每个数据集中的第2个数据组与s个存储节点中的第1个存储节点对应,每个数据集中的第3个数据组与s个存储节点中的第4个存储节点对应,依此类推,每个数据集中的第s-1个数据组与s个存储节点中的第s个存储节点对应,每个数据集中的第s个数据组与s个存储节点中的第1个存储节点对应。例如s=3,z=2,图9所示的码字中第2个行层中的第1个数据集包括数据组2-1、数据组2-2以及数据组2-3,数据组2-2与存储节点1对应,数据组2-3与存储节点2对应,数据组2-1与存储节点3对应。When z=2, in the second row layer in the s row layers, the decoding device shifts the s data groups in each data set in the second row layer to the right by 1 bit, and sequentially Corresponds to s storage nodes. For example, after the data group in each data set in the second row layer is shifted to the right by 1 bit, the second data group in each data set corresponds to the first storage node in the s storage nodes. The third data group corresponds to the fourth storage node in the s storage nodes, and so on, the s-1 data group in each data set corresponds to the s storage node in the s storage nodes, and each The s-th data group in the data sets corresponds to the first storage node in the s-storage nodes. For example, s=3, z=2, the first data set in the second row layer in the codeword shown in FIG. 9 includes data group 2-1, data group 2-2 and data group 2-3, data group 2-2 corresponds to storage node 1, data group 2-3 corresponds to storage node 2, and data group 2-1 corresponds to storage node 3.
当z=3时,在该s个行层中的第3个行层内,该译码设备将该第3个行层内每个数据集 中的s个数据组向右转移2位后,依次与s个存储节点对应。例如第3个行层内每个数据集中的数据组向右转移2位后,每个数据集中的第3个数据组与s个存储节点中的第1个存储节点对应,每个数据集中的第4个数据组与s个存储节点中的第4个存储节点对应,依此类推,每个数据集中的第s-2个数据组与s个存储节点中的第s个存储节点对应,每个数据集中的第s-1个数据组与s个存储节点中的第1个存储节点对应,每个数据集中的第s个数据组与s个存储节点中的第2个存储节点对应。例如s=3,z=3,图9所示的码字中第3个行层中的第1个数据集包括数据组3-1、数据组3-2以及数据组3-3,数据组3-3与存储节点1对应,数据组3-1与存储节点2对应,数据组3-2与存储节点3对应。When z=3, in the third row layer in the s row layers, the decoding device shifts the s data groups in each data set in the third row layer to the right by 2 bits, and sequentially Corresponds to s storage nodes. For example, after the data group in each data set in the third row layer is shifted to the right by 2 bits, the third data group in each data set corresponds to the first storage node in the s storage nodes. The 4th data group corresponds to the 4th storage node in the s storage nodes, and so on, the s-2nd data group in each data set corresponds to the sth storage node in the s storage nodes, and each The s-1th data group in each data set corresponds to the first storage node in the s storage nodes, and the s-th data group in each data set corresponds to the second storage node in the s storage nodes. For example, s=3, z=3, the first data set in the third row layer in the codeword shown in FIG. 9 includes data group 3-1, data group 3-2 and data group 3-3, data group 3-3 corresponds to storage node 1, data group 3-1 corresponds to storage node 2, and data group 3-2 corresponds to storage node 3.
为了进一步说明该译码设备采用循环移位的方式,建立该多个数据集中各个数据组与多个存储节点的对应关系的过程,参见图10所示的本申请实施例提供的一种TPC码字中数据组与存储节点之间的对应关系示意图。图10以码字为TPC(256,239)(256,239)为例,TPC(256,239)(256,239)为二维的分组码,TPC(256,239)(256,239)中每个行子码或者每个列子码均为扩展(extended)BCH(256,239)子码,TPC(256,239)(256,239)的总码长为256*256=65536比特。译码设备以m=n=16,将TPC(256,239)(256,239)中的65536个数据划分成256个数据组,分别为数据组1至256,每个数据组包括16*16个数据。若s=4,该译码设备按照行层,将同一行层中相邻的4个数据组合并为一个数据集,从而一个数据集包括4*16*16=1024个数据。对于TPC(256,239)(256,239)中的前4个行层,译码设备将第1个行层中的各个数据组依次与4个存储节点对应,如第1个行层中的一个数据集包括数据组1至4,数据组1至4分别与存储节点1至4对应。译码设备将第2个行层中的各个数据组向右转移1位后,依次与4个存储节点对应,如从第2个行层中的第2个数据组开始,数据组18至21依次与存储节点1至4对应,…,数据组30至32依次与存储节点1-3对应,数据组32对应完后,循环至第2个行层的第1个数据组,从第2个行层的第1个数据组开始,数据组17与存储节点4对应,从而在第2个行层形成向右转移1位的循环移位过程。且从数据集的角度来说,第2个行层包括4个数据集,这4个数据集分别包括数据组17至20、数据组21至24、数据组25至28以及数据组29至32,经过向右转移1位后,这4个数据集中的第2个数据组(数据组18、22、26以及30)均与存储节点1对应,这4个数据集中的第3个数据组(数据组19、23、27以及31)均与存储节点2对应,这4个数据集中的第4个数据组(数据组20、24、28以及32)均与存储节点3对应,这4个数据集中的第1个数据组(数据组17、21、25以及29)均与存储节点1对应。然后,按照第2个行层的移位方式,译码设备将第3个行层中的各个数据组向右转移2位后,依次与4个存储节点对应,将第4个行层中的各个数据组向右转移3位后,依次与4个存储节点对应。In order to further illustrate the process of establishing the correspondence between each data group in the plurality of data sets and the plurality of storage nodes using the cyclic shift method, refer to a TPC code provided by an embodiment of the present application shown in FIG. 10 . Schematic diagram of the correspondence between the data group in the word and the storage node. Figure 10 takes the code word as TPC(256,239)(256,239) as an example, TPC(256,239)(256,239) is a two-dimensional block code, and each row subcode or each column subcode in TPC(256,239)(256,239) is To extend the BCH(256,239) subcode, the total code length of TPC(256,239)(256,239) is 256*256=65536 bits. With m=n=16, the decoding device divides the 65536 data in TPC(256,239)(256,239) into 256 data groups, which are respectively data groups 1 to 256, and each data group includes 16*16 data. If s=4, the decoding device combines four adjacent data in the same row layer into one data set according to the row layer, so that one data set includes 4*16*16=1024 data. For the first four row layers in TPC(256,239)(256,239), the decoding device sequentially corresponds each data set in the first row layer to four storage nodes, for example, a data set in the first row layer includes Data groups 1 to 4 correspond to storage nodes 1 to 4 respectively. After the decoding device shifts each data group in the second row layer to the right by 1 bit, it corresponds to 4 storage nodes in sequence, for example, starting from the second data group in the second row layer, data groups 18 to 21 Corresponding to storage nodes 1 to 4 in sequence, ..., data groups 30 to 32 correspond to storage nodes 1-3 in sequence, after data group 32 is corresponding, loop to the first data group of the second row layer, from the second The first data group of the row layer starts, and the data group 17 corresponds to the storage node 4, so that a cyclic shift process of shifting 1 bit to the right is formed in the second row layer. And from the perspective of data sets, the second row layer includes 4 data sets, which respectively include data sets 17 to 20, data sets 21 to 24, data sets 25 to 28, and data sets 29 to 32. , after shifting 1 bit to the right, the second data group (data groups 18, 22, 26 and 30) in these four data sets all correspond to storage node 1, and the third data group ( Data groups 19, 23, 27, and 31) all correspond to storage node 2, and the fourth data group ( data groups 20, 24, 28, and 32) in these four data sets all correspond to storage node 3. These four data sets correspond to storage node 3. The first data group ( data groups 17 , 21 , 25 and 29 ) in the collection all correspond to the storage node 1 . Then, according to the shifting method of the second row layer, the decoding device shifts each data group in the third row layer to the right by 2 bits, and then sequentially corresponds to the four storage nodes, and converts the data groups in the fourth row layer to the right. After each data group is shifted to the right by 3 bits, it sequentially corresponds to 4 storage nodes.
需要说明的是,在一种可能的实现方式中,本步骤804所示的过程由该译码设备中的数据处理节点来执行。上述步骤803-804所示的过程为译码设备将码字的多个数据组存储在多个存储地址的过程,且这多个存储地址属于多个存储节点。且该译码设备存储该码字一次即可,无须多次存储。It should be noted that, in a possible implementation manner, the process shown in this step 804 is performed by a data processing node in the decoding device. The process shown in the above steps 803-804 is a process in which the decoding device stores multiple data groups of the codeword in multiple storage addresses, and the multiple storage addresses belong to multiple storage nodes. In addition, the decoding device only needs to store the code word once, and does not need to store it multiple times.
805、对于该多个数据集中的任一数据集,该译码设备从该多个存储节点读取该任一数据集的多个数据组。805. For any data set in the plurality of data sets, the decoding device reads a plurality of data groups of the any data set from the plurality of storage nodes.
该译码设备从多个存储节点的多个存储地址中,确定用于存储该任一数据集的多个目标存储地址,该多个目标存储地址属于不同的存储节点,一个目标存储地址中存储有该任一数据集中的一个数据组。该译码设备从该多个目标存储地址中读取出该任一数据集的多个数据 组。在一种可能的实现方式,在一个数据读取周期内,该译码设备从该多个目标存储地址中分别读取出该任一数据集中的一个数据组。以任一数据集为图10所示的码字中第一行层的第1个数据集为例,在一个数据读取周期内,该译码设备从4个存储节点的4个存储地址中分别读取出数据组1至4。The decoding device determines a plurality of target storage addresses for storing the any data set from a plurality of storage addresses of a plurality of storage nodes, the plurality of target storage addresses belong to different storage nodes, and one target storage address stores There is one dataset in either dataset. The decoding device reads a plurality of data groups of the arbitrary data set from the plurality of target storage addresses. In a possible implementation manner, in one data read cycle, the decoding device reads out a data group in any one of the data sets from the plurality of target storage addresses, respectively. Taking any data set as the first data set of the first row layer in the codeword shown in Fig. 10 as an example, in one data read cycle, the decoding device reads from the four storage addresses of the four storage nodes. Data sets 1 to 4 are each read out.
在一种可能的实现方式中,本步骤805所示的过程由该译码设备中的数据分发节点来执行。In a possible implementation manner, the process shown in this step 805 is performed by the data distribution node in the decoding device.
806、译码设备对该任一数据集中的多个数据组进行译码。806. The decoding device decodes the multiple data groups in the any data set.
在一种可能的实现方式中,该译码设备同时对该任一数据集的多个数据组进行译码,其中,对于该任一数据集的多个数据组中的任一数据组,译码设备对该任一数据组中的m*n个数据进行译码,得到m*n个译码数据。In a possible implementation manner, the decoding device simultaneously decodes a plurality of data groups in any data set, wherein, for any data group in the plurality of data groups in the any data set, the decoding The coding device decodes m*n pieces of data in any data group to obtain m*n pieces of decoded data.
在一种可能的实现方式中,本步骤806所示的过程由该译码设备中的数据分发节点以及译码节点配合完成。若本次译码过程为行译码过程,当数据分发节点读取到该任一数据集中的多个数据组后,该译码设备确定该多个数据组中每个数据组的m个行数据组,并将每个数据组的m个行数据组分别发送至m个第一译码节点,从而每个第一译码节点能够接收到该多个数据组中的一个行数据组。可以理解的是,每个第一译码节点均能够接收到多个行数据组,且接收到的每个行数据组分别来自该多个数据组中的一个数据组。当每个第一译码节点接收到多个行数据组后,对接收到的每个行数据组中的n个数据进行译码。In a possible implementation manner, the process shown in this step 806 is completed by the data distribution node and the decoding node in the decoding device. If the current decoding process is a row decoding process, after the data distribution node reads a plurality of data groups in any of the data sets, the decoding device determines m rows of each data group in the plurality of data groups data groups, and respectively send the m line data groups of each data group to the m first decoding nodes, so that each first decoding node can receive one line data group among the plurality of data groups. It can be understood that each first decoding node can receive a plurality of row data groups, and each received row data group is from one of the plurality of data groups respectively. After each first decoding node receives multiple row data groups, it decodes n pieces of data in each received row data group.
若本次译码过程为列译码过程,当数据分发节点读取到该任一数据集中的多个数据组后,该译码设备确定该多个数据组中每个数据组的n个列数据组,并将每个数据组的n个列数据组分别发送至n个第二译码节点,从而每个第二译码节点能够接收到该多个数据组中的一个列数据组。可以理解的是,每个第二译码节点均能够接收到多个列数据组,且接收到的每个列数据组分别来自该多个数据组中的一个数据组。当每个第二译码节点接收到多个列数据组后,对接收到的每个列数据组中的m个数据进行列译码。If the current decoding process is a column decoding process, after the data distribution node reads a plurality of data groups in any data set, the decoding device determines n columns of each data group in the plurality of data groups data groups, and respectively send the n column data groups of each data group to the n second decoding nodes, so that each second decoding node can receive one column data group among the plurality of data groups. It can be understood that each second decoding node can receive a plurality of column data groups, and each received column data group is respectively from one data group among the plurality of data groups. After each second decoding node receives multiple column data groups, it performs column decoding on m data in each received column data group.
以图10为例。若本次译码过程为行译码过程,当数据分发节点读取到一个数据集中的数据组1至4后,该数据分发节点将数据组1至4中每个数据组的16行数据发送至16个第一译码节点,由每个第一译码节点对数据组1至4的一行数据(包括4*16=64个数据)进行译码。若本次译码过程为列译码过程,当数据分发节点读取到数据组1至4后,该数据分发节点将数据组1至4中每个数据组的16列数据发送至16个第二译码节点,由每个第二译码节点对数据组1至4的一列数据(包括4*16=64个数据)进行译码。Take Figure 10 as an example. If the current decoding process is a row decoding process, after the data distribution node reads the data groups 1 to 4 in a data set, the data distribution node sends the 16 lines of data in each data group in the data groups 1 to 4. Up to 16 first decoding nodes, each first decoding node decodes one line of data (including 4*16=64 data) of data groups 1 to 4. If the current decoding process is a column decoding process, after the data distribution node reads the data groups 1 to 4, the data distribution node sends the 16-column data of each data group in the data groups 1 to 4 to the 16th Two decoding nodes, each second decoding node decodes a column of data (including 4*16=64 data) of data groups 1 to 4.
需要说明的是,当该译码设备对属于该码字的每个数据集均执行完成上述步骤805-806所示的过程时,该译码设备对该码字一个维度上所进行的译码过程完成。该译码设备跳转执行步骤805-806所示的过程,继续对该码字进行另一个维度的译码过程,从而实现对该码字的迭代译码过程。例如,当该译码设备通过上述步骤805-806,对该码字中的每个数据集均执行过行向译码过程后,该译码设备继续通过执行上述步骤805-806,对该码字中的每个数据集均执行列向译码过程。It should be noted that when the decoding device performs the process shown in the above steps 805-806 for each data set belonging to the codeword, the decoding device performs decoding on one dimension of the codeword. Process complete. The decoding device jumps to execute the process shown in steps 805-806, and continues the decoding process of the codeword in another dimension, thereby realizing the iterative decoding process of the codeword. For example, after the decoding device performs the row-wise decoding process for each data set in the codeword through the above steps 805-806, the decoding device continues to perform the above steps 805-806 to perform the decoding process on the code word. A column-wise decoding process is performed for each data set in the word.
由于该任一数据组中存储的m*n个数据满足行向维度的分布以及列向维度的分布,在一些实施例中,该译码设备以数据集为迭代译码的基本单位。该译码设备通过执行上述步骤805-806,对任一数据集完成行向译码后,无须等待其他数据集完成列向译码,该译码设备直接通过上述步骤805-806,对行译码后的该数据集进行列译码过程,从而实现对该码字中一个数据集的迭代译码过程。Since the m*n pieces of data stored in any data set satisfy the distribution of the row dimension and the distribution of the column dimension, in some embodiments, the decoding device uses the data set as the basic unit of iterative decoding. By performing the above steps 805-806, the decoding device does not need to wait for other data sets to complete the column-direction decoding after completing the row-direction decoding for any data set, and the decoding device directly performs the above-mentioned steps 805-806. The encoded data set is subjected to a column decoding process, thereby realizing an iterative decoding process of a data set in the codeword.
807、对于该任一数据集中的任一数据组,该译码设备将存储有该任一数据组的存储地址中的m*n个数据修改为m*n个译码数据,该m*n个译码数据为该读取到的m*n个数据译码后的数据。807. For any data group in the any data set, the decoding device modifies m*n pieces of data in the storage addresses where the any data group is stored into m*n pieces of decoded data, the m*n pieces of decoded data. The pieces of decoded data are decoded data of the read m*n pieces of data.
本步骤807所示的过程与上述步骤505所示的过程同理,在此,本申请实施例对本步骤807不做赘述。The process shown in this step 807 is the same as the process shown in the above-mentioned step 505, and this step 807 is not described in detail here in this embodiment of the present application.
本申请实施例提供的方法,通过译码设备并行对一个数据集中的多个数据组组进行译码,提高了译码的并行度以及译码效率。且可不受子码长度的限制支持任意并行度的灵活设计,支撑高流量的FEC设计需求。In the method provided by the embodiment of the present application, a decoding device is used to decode a plurality of data groups in a data set in parallel, thereby improving the parallel degree of decoding and the decoding efficiency. And it can support flexible design of any degree of parallelism without being limited by the length of subcodes, and support high-traffic FEC design requirements.
对于不同类型的码字,该译码设备均能够按照数据组的存储方式,将不同类型的码字存储在存储地址中。且译码设备也可以并行译码一个码字中的多个数据组,但是由于不同类型码字的构造不同,译码设备在并行译码多个数据组时,译码设备读取多个数据组方式可能有所不同。对于TCP码字,该译码设备可以采用图8所示的过程来并行译码TCP码字中的多个数据组,而卷积码的构造与TCP码字的构造不同,该译码设备在并行译码卷积码的多个数据组时,读取多个数据组的方式与读取TCP码字中多个数据组方式不同。为了进一步说明这个不同之处,参见图11所示的本申请实施例提供的一种卷积码的译码过程。For different types of codewords, the decoding device can store different types of codewords in the storage address according to the storage mode of the data group. Moreover, the decoding device can also decode multiple data groups in a codeword in parallel, but due to the different structures of different types of codewords, when the decoding device decodes multiple data groups in parallel, the decoding device reads multiple data groups. Group methods may vary. For TCP codewords, the decoding device can use the process shown in FIG. 8 to decode multiple data groups in TCP codewords in parallel, while the construction of convolutional codes is different from that of TCP codewords. When decoding multiple data groups of a convolutional code in parallel, the way of reading multiple data groups is different from that of reading multiple data groups in a TCP codeword. To further illustrate the difference, refer to the decoding process of a convolutional code provided by an embodiment of the present application shown in FIG. 11 .
1101、译码设备获取码字。1101. A decoding device acquires a codeword.
可选地,该码字为OFEC码字,例如图2所示的OFEC码字。本步骤1101所示的过程与上述步骤501所示的过程同理,在此,本申请实施例对本步骤1101不做赘述。Optionally, the codeword is an OFEC codeword, such as the OFEC codeword shown in FIG. 2 . The process shown in this step 1101 is the same as the process shown in the above-mentioned step 501, and this step 1101 is not described repeatedly in this embodiment of the present application.
1102、该译码设备按照m行n列的粒度,将该码字中的数据划分成多个数据组。1102. The decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns.
若该码字为OFEC码字,且该OFEC码字中的每个block包括m行n列的m*n个数据,则该译码设备将该OFEC码字中的每个block确定为一个数据组,从而实现该译码设备按照m行n列的粒度,将该码字中的数据划分成多个数据组。If the codeword is an OFEC codeword, and each block in the OFEC codeword includes m*n data in m rows and n columns, the decoding device determines each block in the OFEC codeword as a piece of data group, so that the decoding device divides the data in the codeword into multiple data groups according to the granularity of m rows and n columns.
以图12所示的OFEC码字为例,其中,图12为本申请实施例提供的一种OFEC码字译码过程的示意图。图12中的OFEC码字包括24个行层、8个列层,也即是该OFEC码字包括24*8个block,且每个block包括16*16个数据,该译码设备将24*8个block分别作为一个数据组,分别为数据组1至192。Taking the OFEC codeword shown in FIG. 12 as an example, FIG. 12 is a schematic diagram of a decoding process of an OFEC codeword provided by an embodiment of the present application. The OFEC codeword in FIG. 12 includes 24 row layers and 8 column layers, that is, the OFEC codeword includes 24*8 blocks, and each block includes 16*16 data, the decoding device converts 24* The 8 blocks are respectively used as a data group, which are data groups 1 to 192 respectively.
1103、该译码设备将该多个数据组合并为多个数据集。1103. The decoding device combines the multiple data sets into multiple data sets.
该译码设备将处于相邻的行层或相邻的列层的多个数据组合并为一个数据集。以图12为例,该译码设备将OFEC码字中的数据组1、2、9以及10合并为一个数据集,数据组1、2、9以及10处于2个相邻的行层和2个相邻的列层。The decoding apparatus combines a plurality of data in adjacent row layers or adjacent column layers into one data set. Taking FIG. 12 as an example, the decoding device combines the data groups 1, 2, 9 and 10 in the OFEC codeword into a data set, and the data groups 1, 2, 9 and 10 are in two adjacent row layers and 2 adjacent column layers.
1104、该译码设备将该多个数据集中的数据组存储在多个存储节点中的多个存储地址,其中,同一数据集中的多个数据组存储在不同存储节点内的存储地址中,且一个OFEC帧对中相邻的两个数据集中不同列层的数据组存储在不同的存储节点。1104. The decoding device stores data groups in the plurality of data sets in a plurality of storage addresses in a plurality of storage nodes, wherein the plurality of data groups in the same data set are stored in storage addresses in different storage nodes, and Data groups of different column layers in two adjacent datasets in an OFEC frame pair are stored in different storage nodes.
一个OFEC帧对为相邻的2个OFEC帧,也即是OFEC码字4个连续的行层。从图2所示的OFEC码字可知,OFEC码字的一个子码中斜向的多个短列位于不同的OFEC帧,且均处于偶数行层或奇数行层,后续若在对该子码进行译码的过程中,若要对该子码中斜向的多个短列同时译码,则需要保证这多个短列存储在不同的存储节点,这多个短列可能位于一个OFEC帧对内的不同列层,因此,该译码设备在将每个数据集中的多个数据组分别存储到多个存储节点中的过程中,还要保证同一OFEC帧对中相邻的两个数据集中不同列层的数据组存储在不同的存储节点。An OFEC frame pair is two adjacent OFEC frames, that is, four consecutive line layers of OFEC codewords. It can be seen from the OFEC codeword shown in FIG. 2 that the multiple oblique short columns in a subcode of the OFEC codeword are located in different OFEC frames, and all are located in the even-numbered row layer or the odd-numbered row layer. During the decoding process, if you want to decode multiple oblique short columns in the subcode at the same time, you need to ensure that these multiple short columns are stored in different storage nodes, and these multiple short columns may be located in one OFEC frame. Therefore, in the process of storing multiple data groups in each data set into multiple storage nodes, the decoding device also needs to ensure that two adjacent data in the same OFEC frame pair are Centralized data groups of different column layers are stored in different storage nodes.
在一种可能实现方式中,对于一个OFEC帧对中相邻的两个数据集,若这个两个数据集均包括s个数据组,该译码设备将这两个数据集中的第z个数据组均存储在s个存储节点中的第z个存储节点。以图10为例,图10所示的OFEC码字中前4个行层为一个OFEC帧对,在这个OFEC帧对中,数据组7、8、15以及16为数据集1,数据组23、24、31以及32为数据集2,且该数据集1和2在这个OFEC帧对中相邻。该译码设备将数据集1和2中的第1个数据组(数据组7和数据组23)均存储在存储节点1,该译码设备将数据集1和2中的第2个数据组(数据组8和数据组24)均存储在存储节点2,该译码设备将数据集1和2中的第3个数据组(数据组15和数据组31)均存储在存储节点3,该译码设备将数据集1和2中的第4个数据组(数据组16和数据组32)均存储在存储节点4。这种存储方式,不仅保证了数据集1或2中的各个数据组存储在不同的存储节点,且能够保证数据集1和2中处于不同列层的数据组也存储在不同的存储节点。In a possible implementation manner, for two adjacent data sets in an OFEC frame pair, if the two data sets both include s data sets, the decoding device converts the zth data in the two data sets into The groups are all stored on the zth storage node among the s storage nodes. Taking Figure 10 as an example, the first 4 row layers in the OFEC codeword shown in Figure 10 are an OFEC frame pair. In this OFEC frame pair, data groups 7, 8, 15 and 16 are data set 1, and data group 23. , 24, 31 and 32 are dataset 2, and the datasets 1 and 2 are adjacent in this OFEC frame pair. The decoding device stores both the first data group (data group 7 and data group 23) in the data sets 1 and 2 in the storage node 1, and the decoding device stores the second data group in the data sets 1 and 2 (Data set 8 and data set 24) are both stored in storage node 2, and the decoding device stores the third data set (data set 15 and data set 31) in data sets 1 and 2 in storage node 3. The decoding device stores the fourth data group (data group 16 and data group 32 ) in both data sets 1 and 2 in the storage node 4 . This storage method not only ensures that each data group in dataset 1 or 2 is stored in different storage nodes, but also ensures that data groups in different column layers in datasets 1 and 2 are also stored in different storage nodes.
1105、对于多个子码中相邻的多个目标子码,该译码设备从该多个数据集中确定与该多个目标子码相关的至少一个目标数据集,该至少一个目标数据集包括与该多个目标子码相关的至少一个目标数据组,一个目标数据组包括所述多个目标子码中部分目标子码的部分数据。1105. For a plurality of adjacent target subcodes among the plurality of subcodes, the decoding device determines at least one target data set related to the plurality of target subcodes from the plurality of data sets, and the at least one target data set includes a At least one target data group related to the plurality of target subcodes, one target data group includes partial data of some target subcodes in the plurality of target subcodes.
该码字包括多个子码。该多个目标子码相关的至少一个目标数据集,也即是包括该多个目标子码的数据的数据集。The codeword includes a plurality of subcodes. At least one target data set related to the plurality of target subcodes is a data set including data of the plurality of target subcodes.
通过上述公式(1)-(2)可知,OFEC码字中的一个子码位于多个行层和多个列层,且该子码的前半部分数据位于不相邻的行层和列层,该子码的后半部分数据位于相邻的行层和列层。而译码设备在存储该OFEC码字时,是将处于相邻的行层或相邻的列层的多个数据组合并为一个数据集,因此一个数据集中的数据组可能包括多个子码中的部分数据。若是对多个目标子码进行译码的过程中,该译码设备可以先从该多个数据集中确定与该多个目标子码相关的至少一个目标数据集,然后再对至少一个目标数据集中与该多个目标子码相关的至少一个目标数据组进行译码。It can be seen from the above formulas (1)-(2) that a subcode in the OFEC codeword is located at multiple row layers and multiple column layers, and the first half of the data of the subcode is located at non-adjacent row layers and column layers, The data of the second half of the subcode is located in the adjacent row layer and column layer. When the decoding device stores the OFEC codeword, it combines multiple data in adjacent row layers or adjacent column layers into a data set, so a data set in a data set may include multiple subcodes. part of the data. In the process of decoding a plurality of target subcodes, the decoding device may first determine at least one target data set related to the plurality of target subcodes from the plurality of data sets, and then perform the decoding on the at least one target data set. At least one target data set associated with the plurality of target subcodes is decoded.
对于该多个目标子码中的任一目标子码,该译码设备基于上述公式(1)-(2),确定任一目标子码中各个数据的位置信息,并根据任一目标子码中各个数据的位置信息,确定任一目标子码中各个数据所在的数据组,并将任一目标子码中的数据所在的任一数据组作为目标数据组,将该目标数据组所属的数据集作为目标数据集。For any target subcode in the plurality of target subcodes, the decoding device determines the position information of each data in any target subcode based on the above formulas (1)-(2), and according to any target subcode The location information of each data in any target subcode determines the data group where each data is located, and uses any data group where the data in any target subcode is located as the target data group, and the data to which the target data group belongs set as the target dataset.
以图10为例,若至少一个目标数据集有2个,分别为图10中的数据集1和数据集2,该数据集1中数据组1内列向上的16个短列分别属于16个相邻的子码,分别为子码1至16,该数据集2中数据组23内列向上的16个短列也分别属于子码1至16。该数据集1中数据组16内列向上的16个短列分别属于16个相邻的子码,分别为子码17至32,该数据集2中数据组23内列向上的16个短列也分别属于子码17至32。从图10可知,相邻的子码1至32中的数据均位于数据集1和2,则该译码设备将数据集1和2确定为与该子码1至32相关的目标数据集,将该数据集1中的数据组6和数据集2中的数据组23,确定为与该子码1至16相关的目标数据组,将该数据集1中的数据组16和数据集2中的数据组31,确定为与该子码17至32相关的目标数据组。Taking Figure 10 as an example, if there are at least two target data sets, namely Data Set 1 and Data Set 2 in Figure 10, the 16 short columns in the data set 1 in the column upwards of the data set 1 belong to 16 The adjacent subcodes are respectively subcodes 1 to 16, and the 16 short columns in the column direction in the data group 23 in the data set 2 also belong to the subcodes 1 to 16, respectively. In this dataset 1, the 16 short columns in the column-up direction in the data group 16 belong to 16 adjacent subcodes, which are sub-codes 17 to 32, respectively. The 16 short columns in the column-up direction in the data group 23 in this data set 2 Also belong to subcodes 17 to 32, respectively. It can be seen from FIG. 10 that the data in the adjacent subcodes 1 to 32 are all located in the data sets 1 and 2, then the decoding device determines the data sets 1 and 2 as the target data sets related to the subcodes 1 to 32, Determine the data set 6 in the data set 1 and the data set 23 in the data set 2 as the target data sets related to the subcodes 1 to 16, and determine the data set 16 in the data set 1 and the data set 2. The data set 31 is determined as the target data set associated with the subcodes 17 to 32.
若至少一个目标数据集有1个,分别为图10中的数据集3,其中,该数据集3包括数据167、168、175以及176,数据组167和168中每个数据组横向上的16个短列分别属于子码1至16,数据组175和176中每个数据组横向上的16个短列分别属于子码17至32。则该译码设备将该数据集3确定为与子码1至32相关的一个目标数据集,将该数据集3中的数据组 167和168,确定为与子码1至16相关的目标数据组,将该数据集3中的数据组175和176,确定为与子码17至32相关的目标数据组。If there is at least one target data set, it is the data set 3 in FIG. 10, wherein the data set 3 includes data 167, 168, 175 and 176, and 16 of the data sets 167 and 168 in the horizontal direction of each data set The short columns belong to subcodes 1 to 16, respectively, and the 16 short columns in the lateral direction of each data set in data sets 175 and 176 belong to subcodes 17 to 32, respectively. Then the decoding device determines the data set 3 as a target data set related to the subcodes 1 to 32, and determines the data sets 167 and 168 in the data set 3 as the target data related to the subcodes 1 to 16 group, the data groups 175 and 176 in the data set 3 are determined as the target data groups related to the subcodes 17 to 32.
1106、该译码设备从该多个存储节点读取该至少一个目标数据集中的目标数据组。1106. The decoding device reads the target data group in the at least one target data set from the plurality of storage nodes.
由于该至少一个目标数据集中的多个目标数据组存储于不同的存储节点,该译码设备在一个数据读取周期内,从多个存储节点分别读取出一个目标数据组。Since multiple target data sets in the at least one target data set are stored in different storage nodes, the decoding device reads out one target data set from multiple storage nodes in one data reading cycle.
1107、该译码设备对读取到的目标数据组进行译码。1107. The decoding device decodes the read target data group.
该读取到的目标数据组包括至少一个奇目标数据组以及至少一个偶目标数据组,也即是该至少一个目标数据集中的目标数据组,其中,一个奇目标数据组为位于该码字的奇数行层的目标数据组,一个偶目标数据组为位于该码字的偶数行层的目标数据组。以该至少一个目标数据组为图10中的数据组8、16、23以及31为例,数据组8和23分别位于码字的第1个行层和第3个行层,则数据组8和23均为奇目标数据组,而数据组16和31分别位于码字的第2个行层和第4个行层,则数据组16和31均为偶目标数据组。The read target data group includes at least one odd target data group and at least one even target data group, that is, the target data group in the at least one target data set, wherein one odd target data group is located in the codeword. The target data group of the odd-numbered line layer, and an even target data group is the target data group located at the even-numbered line layer of the codeword. Taking the at least one target data group as the data groups 8, 16, 23 and 31 in FIG. 10 as an example, the data groups 8 and 23 are respectively located in the first row layer and the third row layer of the codeword, then the data group 8 and 23 are odd target data groups, while data groups 16 and 31 are located at the 2nd row layer and the 4th row layer of the codeword, respectively, so data groups 16 and 31 are both even target data groups.
由于该多个目标数据组中,部分目标数据组位于奇数行层,部分目标数据组位于偶数行层,且位于奇偶行层的目标数据组所属的目标子码不同,因此,该译码设备在对该多个目标子码进行译码的过程中,可以由两组奇偶译码节点分别对位于奇数行层和位于偶数行层的目标数据组进行译码。在一种可能的实现方式中,本步骤1107由下述步骤11071-11072所示的过程来实现。Since among the multiple target data groups, some target data groups are located in the odd-numbered row layer, some target data groups are located in the even-numbered row layer, and the target data groups located in the odd-even row layer belong to different target subcodes, therefore, the decoding device is in the In the process of decoding the plurality of target subcodes, two groups of parity decoding nodes can respectively decode the target data groups located at the odd-numbered row layer and at the even-numbered row layer. In a possible implementation manner, this step 1107 is implemented by the process shown in the following steps 11071-11072.
步骤11071、该译码设备将该至少一个奇目标数据组发送给多个第三译码节点,由该多个第三译码节点对接收到的奇目标数据组进行译码。Step 11071: The decoding device sends the at least one odd target data group to a plurality of third decoding nodes, and the plurality of third decoding nodes decodes the received odd target data group.
该多个第三译码节点为用于对码字中的奇数据组进行译码的一组译码节点,也可以被称为奇译码节点。其中,码字中的奇数据组为码字中处于奇数行层的数据组。例如图10所示的码字中第1个行层的所有数据组均是奇数据组,奇目标数据组也是奇数据组。The plurality of third decoding nodes are a group of decoding nodes for decoding odd data groups in the codeword, and may also be referred to as odd decoding nodes. Wherein, the odd data group in the codeword is the data group in the odd row layer in the codeword. For example, in the codeword shown in FIG. 10, all data groups of the first row layer are odd data groups, and odd target data groups are also odd data groups.
若该至少一个奇目标数据组位于该至少一个奇目标数据组所相关的多个目标子码的前半部分,对于该至少一个奇目标数据组中的任一奇目标数据组,该数据分发节点基于该任一奇目标数据组中的m*n个数据在该码字中的位置,确定n个列数据组,每个列数据组属于一个目标子码,为一个目标子码中的一个短列;该数据分发节点将该n个列数据组分别发送至n个第三译码节点。每个第三译码节点均能够接收到至少一个列数据组,且至少一个列数据组分别来自至少一个奇目标数据组,由每个第三译码节点对接收到的该至少一个列数据组进行译码。If the at least one odd target data group is located in the first half of multiple target subcodes related to the at least one odd target data group, for any odd target data group in the at least one odd target data group, the data distribution node is based on The position of m*n data in the codeword in any odd target data group determines n column data groups, each column data group belongs to a target subcode and is a short column in a target subcode ; The data distribution node sends the n column data groups to the n third decoding nodes respectively. Each third decoding node can receive at least one column data group, and at least one column data group is respectively from at least one odd target data group, and each third decoding node can receive at least one column data group on the received at least one column data group. to decode.
以该至少一个目标数据组为图10中的数据组8、16、23以及31为例,由于数据组8和23处于目标子码1至16的前半部分,且均为奇目标数据组,该数据分发节点将数据组8和16中每个数据组的16*16个数据划分为16个列数据组,并将每个数据组的16个列数据组分别发送至16个第三译码点,从而每个第三译码节点均能够接收到2个列数据组,并对2个列数据组中的16*2个数据进行译码。Taking the at least one target data group as the data groups 8, 16, 23 and 31 in FIG. 10 as an example, since the data groups 8 and 23 are in the first half of the target subcodes 1 to 16 and are both odd target data groups, the The data distribution node divides the 16*16 data of each data group in data groups 8 and 16 into 16 column data groups, and sends the 16 column data groups of each data group to 16 third decoding points respectively , so that each third decoding node can receive 2 column data groups and decode 16*2 data in the 2 column data groups.
若该至少一个奇目标数据组位于该至少一个奇目标数据组所相关的多个目标子码的后半部分,对于该至少一个奇目标数据组中的任一奇目标数据组,该数据分发节点基于该任一奇目标数据组中的m*n个数据在该码字中的位置,确定m个行数据组,每个行数据组属于一个目标子码,一个目标子码中的一个短列;该数据分发节点将该m个行数据组分别发送至m个第三译码节点。每个第三译码节点均能够接收到至少一个行数据组,且至少一个行数据组分别来自至少一个奇目标数据组,由每个第三译码节点对接收到的至少一个行数据组进行译码。If the at least one odd target data group is located in the second half of a plurality of target subcodes related to the at least one odd target data group, for any odd target data group in the at least one odd target data group, the data distribution node Based on the positions of m*n data in the codeword in any odd target data group, m row data groups are determined, each row data group belongs to a target subcode, a short column in a target subcode ; The data distribution node sends the m line data groups to the m third decoding nodes respectively. Each third decoding node can receive at least one row data group, and at least one row data group is respectively from at least one odd target data group, and each third decoding node performs processing on the received at least one row data group. decoding.
以该至少一个目标数据组为图10中的数据组167、168、175以及176为例,由于数据组167和168处于目标子码17至32的前半部分,且均为奇目标数据组,该数据分发节点将数据组167和168中每个数据组的16*16个数据划分为16个行数据组,并将每个数据组的16个行数据组分别发送至16个第三译码点,从而每个第三译码节点均能够接收到2个行数据组,并对2个行数据组中的16*2个数据进行译码。Taking the at least one target data group as the data groups 167, 168, 175 and 176 in FIG. 10 as an example, since the data groups 167 and 168 are in the first half of the target subcodes 17 to 32 and are both odd target data groups, the The data distribution node divides the 16*16 data of each data group in the data groups 167 and 168 into 16 line data groups, and sends the 16 line data groups of each data group to the 16 third decoding points respectively , so that each third decoding node can receive 2 row data groups and decode 16*2 data in the 2 row data groups.
11072、该译码设备将该至少一个偶目标数据组发送给多个第四译码节点,由该多个第四译码节点对接收到的偶目标数据组进行译码。11072. The decoding device sends the at least one even target data group to a plurality of fourth decoding nodes, and the plurality of fourth decoding nodes decodes the received even target data group.
该多个第四译码节点为用于对码字中的偶数据组进行译码的一组译码节点,也可以被称为偶译码节点。其中,码字中的偶数据组为码字中处于偶数行层的数据组。例如图10所示的码字中第2个行层的所有数据组均是偶数据组,偶目标数据组也是偶数据组。The plurality of fourth decoding nodes are a group of decoding nodes for decoding even data groups in the codeword, and may also be referred to as even decoding nodes. Wherein, the even data group in the codeword is the data group in the even-numbered row layer in the codeword. For example, in the codeword shown in FIG. 10, all data groups of the second row layer are even data groups, and even target data groups are also even data groups.
若该至少一个偶目标数据组位于该至少一个偶目标数据组所相关的多个目标子码的前半部分,对于该至少一个偶目标数据组中的任一偶目标数据组,该数据分发节点基于该任一偶目标数据组中的m*n个数据在该码字中的位置,确定n个列数据组,每个列数据组属于一个目标子码,为一个目标子码中的一个短列;该数据分发节点将该n个列数据组分别发送至n个第四译码节点。每个第四译码节点均能够接收到至少一个列数据组,且至少一个列数据组分别来自至少一个偶目标数据组,由每个第四译码节点对接收到的至少一个列数据组进行译码。If the at least one even target data group is located in the first half of a plurality of target subcodes related to the at least one even target data group, for any even target data group in the at least one even target data group, the data distribution node is based on The position of m*n data in the codeword in any even target data group determines n column data groups, each column data group belongs to a target subcode and is a short column in a target subcode ; The data distribution node sends the n column data groups to the n fourth decoding nodes respectively. Each fourth decoding node can receive at least one column data group, and at least one column data group is respectively from at least one even target data group, and each fourth decoding node performs processing on the received at least one column data group. decoding.
以该至少一个目标数据组为图10中的数据组8、16、23以及31为例,由于数据组16、和31处于目标子码1至16的前半部分,且均为偶目标数据组,该数据分发节点将数据组16和31中每个数据组的16*16个数据划分为16个列数据组,并将每个数据组的16个列数据组分别发送至16个第四译码点,从而每个第四译码节点均能够接收到2个列数据组,并接收到的2个列数据组中的16*2个数据进行译码。Taking the at least one target data group as the data groups 8, 16, 23 and 31 in FIG. 10 as an example, since the data groups 16 and 31 are in the first half of the target subcodes 1 to 16, and are all even target data groups, The data distribution node divides the 16*16 data of each data group in the data groups 16 and 31 into 16 column data groups, and sends the 16 column data groups of each data group to 16 fourth decodings respectively Therefore, each fourth decoding node can receive 2 column data groups, and decode 16*2 data in the received 2 column data groups.
若该至少一个偶目标数据组位于该至少一个偶目标数据组所相关的多个目标子码的后半部分,对于该至少一个偶目标数据组中的任一偶目标数据组,该数据分发节点基于该任一偶目标数据组中的m*n个数据在该码字中的位置,确定m个行数据组,每个行数据组属于一个目标子码;该数据分发节点将该m个行数据组分别发送至m个第四译码节点。每个第四译码节点均能够接收到至少一个行数据组,且至少一个行数据组分别来自至少一个偶目标数据组,由每个第四译码节点对接收到的至少一个行数据组进行译码。If the at least one even target data group is located in the second half of a plurality of target subcodes related to the at least one even target data group, for any even target data group in the at least one even target data group, the data distribution node Based on the positions of m*n data in the codeword in any even target data group, m row data groups are determined, and each row data group belongs to a target subcode; the data distribution node uses the m rows The data groups are respectively sent to the m fourth decoding nodes. Each fourth decoding node can receive at least one row data group, and at least one row data group is respectively from at least one even target data group, and each fourth decoding node performs processing on the received at least one row data group. decoding.
以该至少一个目标数据组为图10中的数据组167、168、175以及176为例,由于数据组175和176处于目标子码17至32的前半部分,且均为偶目标数据组,该数据分发节点将数据组175和176中每个数据组的16*16个数据划分为16个行数据组,并将每个数据组的16个行数据组分别发送至16个第四译码点,从而每个第四译码节点均能够接收到2个行数据组,并对接收到的2个行数据组中的16*2个数据进行译码。Taking the at least one target data group as the data groups 167, 168, 175 and 176 in FIG. 10 as an example, since the data groups 175 and 176 are in the first half of the target subcodes 17 to 32 and are both even target data groups, the The data distribution node divides the 16*16 data of each data group in the data groups 175 and 176 into 16 line data groups, and sends the 16 line data groups of each data group to the 16 fourth decoding points respectively , so that each fourth decoding node can receive 2 row data groups, and decode 16*2 data in the received 2 row data groups.
需要说明的是,上述步骤11071和11072为并行步骤,在执行顺序上没有先后之分,从而该译码设备能够同时对该多个目标数据组进行译码,提高了译码过程中的并行度以及译码效率。It should be noted that the above steps 11071 and 11072 are parallel steps, and there is no sequence in the execution order, so that the decoding device can decode the multiple target data groups at the same time, which improves the degree of parallelism in the decoding process. and decoding efficiency.
在一种可能的实现方式中,该译码设备先基于该多个目标数据组所在的行层,确定该多个目标数据组中的至少一个奇目标数据组以及至少一个偶目标数据组,然后,再执行上述步骤11071-11072。可选地,该译码设备确定该至少一个目标数据组以及该至少一个偶目标数据组的过程由该译码设备中的数据分发节点来执行。In a possible implementation manner, the decoding device first determines at least one odd target data group and at least one even target data group among the plurality of target data groups based on the row layer where the plurality of target data groups are located, and then , and then perform the above steps 11071-11072. Optionally, the process of determining the at least one target data group and the at least one even target data group by the decoding device is performed by a data distribution node in the decoding device.
1108、对于读取到的目标数据组中的任一数据组,该译码设备将存储有该任一数据组的存储地址中的m*n个数据修改为m*n个译码数据,该m*n个译码数据为该任一数据组中的m*n个数据译码后的数据。1108. For any data group in the read target data group, the decoding device modifies m*n pieces of data in the storage address of the any data group into m*n pieces of decoded data, The m*n pieces of decoded data are decoded data of the m*n pieces of data in any data group.
本步骤1108所示的过程与上述步骤505所示的过程同理,在此,本申请实施例对本步骤1108不做赘述。The process shown in this step 1108 is the same as the process shown in the above-mentioned step 505, and here, this embodiment of the present application does not repeat the description of this step 1108.
本申请实施例提供的方法,通过译码设备并行对多个目标数据组组进行译码,提高了译码的并行度以及译码效率。且可不受子码长度的限制支持任意并行度的灵活设计,支撑高流量的FEC设计需求。In the method provided by the embodiment of the present application, a decoding device is used to decode multiple target data groups in parallel, thereby improving the parallelism of decoding and the decoding efficiency. And it can support flexible design of any degree of parallelism without being limited by the length of subcodes, and support high-traffic FEC design requirements.
图13是本申请实施例提供的一种译码装置的结构示意图,所述装置1300包括:FIG. 13 is a schematic structural diagram of a decoding apparatus provided by an embodiment of the present application. The apparatus 1300 includes:
存储模块1301,用于将码字存储在多个存储地址,一个存储地址用于存储所述码字中m行n列的m*n个数据,所述m和所述n均是大于或等于1的整数;The storage module 1301 is used to store the codeword in a plurality of storage addresses, one storage address is used to store m*n data of m rows and n columns in the codeword, and both the m and the n are greater than or equal to an integer of 1;
读取模块1302,用于对于所述多个存储地址中的任一存储地址,从所述任一存储地址中读取所述任一存储地址中存储的m*n个数据;a reading module 1302, configured to read m*n pieces of data stored in the any storage address from the any storage address for any storage address in the plurality of storage addresses;
译码模块1303,用于对读取到的m*n个数据进行译码。The decoding module 1303 is used for decoding the read m*n data.
可选地,所述译码模块1303包括:Optionally, the decoding module 1303 includes:
第一确定单元,用于若本次译码过程为行向译码过程,基于所述读取到的m*n个数据在所述码字中的位置,确定m个行数据组,一个行数据组包括所述读取到的m*n个数据中的n个数据,所述n个数据在所述码字中位于同一行;The first determination unit is used to determine m row data groups based on the positions of the read m*n data in the codeword if the current decoding process is a row-wise decoding process, one row The data group includes n data in the read m*n data, and the n data are located in the same row in the codeword;
第一译码单元,用于对所述m个行数据组进行译码。The first decoding unit is used for decoding the m row data groups.
可选地,所述第一译码单元用于:Optionally, the first decoding unit is used for:
将所述m个行数据组分别发送至m个第一译码节点,由每个第一译码节点对接收到的行数据组进行译码。The m line data groups are respectively sent to m first decoding nodes, and each first decoding node decodes the received line data groups.
可选地,所述译码模块1303包括:Optionally, the decoding module 1303 includes:
第二确定单元,用于若本次译码过程为列向译码过程,基于所述读取到的m*n个数据在所述码字中的位置,确定n个列数据组,一个列数据组包括所述读取到的m*n个数据中的m个数据,所述m个数据在所述码字中位于同一列;The second determining unit is configured to, if the current decoding process is a column-oriented decoding process, determine n column data groups, one column The data group includes m data in the read m*n data, and the m data are located in the same column in the codeword;
第二译码单元,用于对所述n个列数据组进行译码。The second decoding unit is used for decoding the n column data groups.
可选地,所述第二译码单元用于:Optionally, the second decoding unit is used for:
将所述n个列数据组分别发送至n个第二译码节点,由每个第二译码节点对接收到的列数据组进行译码。The n column data sets are respectively sent to n second decoding nodes, and each second decoding node decodes the received column data sets.
可选地,所述装置1300还包括:Optionally, the apparatus 1300 further includes:
修改模块,用于将所述任一存储地址中存储的m*n个数据修改为m*n个译码数据,所述m*n个译码数据为所述读取到的m*n个数据译码后的数据。A modification module, configured to modify m*n pieces of data stored in any of the storage addresses into m*n pieces of decoded data, where the m*n pieces of decoded data are the read m*n pieces of data Data decoded data.
可选地,所述存储模块1301用于:Optionally, the storage module 1301 is used for:
按照m行n列的粒度,将所述码字中的数据划分成多个数据组,一个数据组包括所述码字中m行n列的m*n个数据;According to the granularity of m rows and n columns, the data in the codeword is divided into multiple data groups, and one data group includes m*n data of m rows and n columns in the codeword;
将所述多个数据组存储在所述多个存储地址,一个存储地址中存储一个数据组。The plurality of data groups are stored in the plurality of storage addresses, and one data group is stored in one storage address.
可选地,所述多个存储地址属于同一个存储节点。Optionally, the multiple storage addresses belong to the same storage node.
可选地,所述多个存储地址属于多个存储节点;Optionally, the multiple storage addresses belong to multiple storage nodes;
所述存储模块1301用于:The storage module 1301 is used for:
将所述多个数据组合并为多个数据集,一个数据集包括所述多个数据组中相邻的多个数据组;combining the plurality of data sets into a plurality of data sets, and one data set includes a plurality of adjacent data sets in the plurality of data sets;
将所述多个数据集中的数据组存储在所述多个存储地址,其中,一个存储地址中存储一个数据组,同一数据集中的多个数据组存储在不同存储节点内的存储地址中。The data groups in the multiple data sets are stored in the multiple storage addresses, wherein one storage address stores one data group, and multiple data groups in the same data set are stored in storage addresses in different storage nodes.
所述读取模块1302还用于:The reading module 1302 is also used for:
对于所述多个数据集中的任一数据集,从所述多个存储节点读取所述任一数据集的多个数据组。For any data set in the plurality of data sets, a plurality of data groups of the any data set are read from the plurality of storage nodes.
可选地,所述装置1300还包括:Optionally, the apparatus 1300 further includes:
确定模块,用于对于所述多个子码中相邻的多个目标子码,从所述多个数据集中确定与所述多个目标子码相关的至少一个目标数据集,所述至少一个目标数据集包括与所述多个目标子码相关的至少一个目标数据组,一个目标数据组包括所述多个目标子码中部分目标子码的数据;a determining module, configured to, for a plurality of adjacent target subcodes among the plurality of subcodes, determine at least one target data set related to the plurality of target subcodes from the plurality of data sets, the at least one target data set The data set includes at least one target data group related to the plurality of target subcodes, and one target data group includes data of part of the target subcodes in the plurality of target subcodes;
所述读取模块1302,还用于从所述多个存储节点读取所述至少一个目标数据集中的目标数据组;The reading module 1302 is further configured to read the target data group in the at least one target data set from the plurality of storage nodes;
所述译码模块1303,还用于对读取到的目标数据组进行译码。The decoding module 1303 is further configured to decode the read target data group.
可选地,所述读取到的目标数据组包括至少一个奇目标数据组以及至少一个偶目标数据组,一个奇目标数据组为位于所述码字的奇数行层的目标数据组,一个偶目标数据组为位于所述码字的偶数行层的目标数据组;Optionally, the read target data group includes at least one odd target data group and at least one even target data group, an odd target data group is a target data group located at an odd-numbered row layer of the codeword, an even target data group The target data group is the target data group located at the even-numbered row layer of the codeword;
所述译码模块1303用于:The decoding module 1303 is used for:
将所述至少一个奇目标数据组发送给多个第三译码节点,由所述多个第三译码节点对接收到的奇目标数据组进行译码;sending the at least one odd target data group to a plurality of third decoding nodes, and decoding the received odd target data group by the plurality of third decoding nodes;
将所述至少一个偶目标数据组发送给多个第四译码节点,由所述多个第四译码节点对接收到的偶数据组进行译码。The at least one even target data group is sent to a plurality of fourth decoding nodes, and the received even data group is decoded by the plurality of fourth decoding nodes.
上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。All the above-mentioned optional technical solutions can be combined arbitrarily to form optional embodiments of the present disclosure, which will not be repeated here.
需要说明的是:上述实施例提供的译码装置在对码字进行译码时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的译码方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。It should be noted that when the decoding apparatus provided in the above embodiment decodes the code word, only the division of the above functional modules is used as an example for illustration. In practical applications, the above functions can be allocated to different functions as required. Module completion means dividing the internal structure of the device into different functional modules to complete all or part of the functions described above. In addition, the decoding method embodiments provided by the above embodiments belong to the same concept, and the specific implementation process thereof is detailed in the method embodiments, which will not be repeated here.
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中,译码设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该处理器执行上述译码方法。Embodiments of the present application also provide a computer program product or computer program, where the computer program product or computer program includes computer instructions, where the computer instructions are stored in a computer-readable storage medium, and the processor of the decoding device stores the computer-readable storage medium. The medium reads the computer instructions, and the processor executes the computer instructions, so that the processor executes the above decoding method.
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。Those of ordinary skill in the art can understand that all or part of the steps of implementing the above-mentioned embodiments can be accomplished by hardware, and can also be accomplished by hardware related to program instructions, and the program can be stored in a computer-readable storage medium. The storage medium can be read-only memory, magnetic disk or optical disk, etc.
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。The above are only optional embodiments of the present application, and are not intended to limit the present application. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present application shall be included in the protection of the present application. within the range.

Claims (26)

  1. 一种译码方法,其特征在于,所述方法包括:A decoding method, characterized in that the method comprises:
    将码字存储在多个存储地址,一个存储地址用于存储所述码字中m行n列的m*n个数据,所述m和所述n均是大于或等于1的整数;The codeword is stored in a plurality of storage addresses, and one storage address is used to store m*n data of m rows and n columns in the codeword, and both the m and the n are integers greater than or equal to 1;
    对于所述多个存储地址中的任一存储地址,从所述任一存储地址中读取所述任一存储地址中存储的m*n个数据;For any storage address in the plurality of storage addresses, read m*n data stored in the any storage address from the any storage address;
    对读取到的m*n个数据进行译码。Decode the m*n pieces of data read.
  2. 根据权利要求1所述的方法,其特征在于,所述对读取到的m*n个数据进行译码包括:The method according to claim 1, wherein the decoding the read m*n data comprises:
    若本次译码过程为行向译码过程,基于所述读取到的m*n个数据在所述码字中的位置,确定m个行数据组,一个行数据组包括所述读取到的m*n个数据中的n个数据,所述n个数据在所述码字中位于同一行;If the current decoding process is a row-wise decoding process, m row data groups are determined based on the positions of the read m*n data in the codeword, and one row data group includes the read data n pieces of data among the m*n pieces of data received, the n pieces of data are located in the same row in the codeword;
    对所述m个行数据组进行译码。The m row data sets are decoded.
  3. 根据权利要求2所述的方法,其特征在于,所述对所述m个行数据组进行译码包括:The method according to claim 2, wherein the decoding the m row data groups comprises:
    将所述m个行数据组分别发送至m个第一译码节点,由每个第一译码节点对接收到的行数据组进行译码。The m line data groups are respectively sent to m first decoding nodes, and each first decoding node decodes the received line data groups.
  4. 根据权利要求1所述的方法,其特征在于,所述对读取到的m*n个数据进行译码包括:The method according to claim 1, wherein the decoding the read m*n data comprises:
    若本次译码过程为列向译码过程,基于所述读取到的m*n个数据在所述码字中的位置,确定n个列数据组,一个列数据组包括所述读取到的m*n个数据中的m个数据,所述m个数据在所述码字中位于同一列;If the current decoding process is a column-oriented decoding process, based on the positions of the read m*n data in the codeword, determine n column data groups, and one column data group includes the read data m data in the received m*n data, the m data are located in the same column in the codeword;
    对所述n个列数据组进行译码。The n column data sets are decoded.
  5. 根据权利要求4所述的方法,其特征在于,所述对所述n个列数据组进行译码包括:The method according to claim 4, wherein the decoding the n column data groups comprises:
    将所述n个列数据组分别发送至n个第二译码节点,由每个第二译码节点对接收到的列数据组进行译码。The n column data sets are respectively sent to n second decoding nodes, and each second decoding node decodes the received column data sets.
  6. 根据权利要求1-5任一项所述的方法,其特征在于,所述对读取到的m*n个数据进行译码之后,所述方法还包括:The method according to any one of claims 1-5, characterized in that, after the read m*n pieces of data are decoded, the method further comprises:
    将所述任一存储地址中存储的m*n个数据修改为m*n个译码数据,所述m*n个译码数据为所述读取到的m*n个数据译码后的数据。Modify m*n pieces of data stored in any of the storage addresses into m*n pieces of decoded data, and the m*n pieces of decoded data are the decoded pieces of the read m*n pieces of data. data.
  7. 根据权利要求1-6任一项所述的方法,其特征在于,所述将码字存储在多个存储地址包括:The method according to any one of claims 1-6, wherein the storing the codeword in a plurality of storage addresses comprises:
    按照m行n列的粒度,将所述码字中的数据划分成多个数据组,一个数据组包括所述码字中m行n列的m*n个数据;According to the granularity of m rows and n columns, the data in the codeword is divided into multiple data groups, and one data group includes m*n data of m rows and n columns in the codeword;
    将所述多个数据组存储在所述多个存储地址,一个存储地址中存储一个数据组。The plurality of data groups are stored in the plurality of storage addresses, and one data group is stored in one storage address.
  8. 根据权利要求7所述的方法,其特征在于,所述多个存储地址属于同一个存储节点。The method according to claim 7, wherein the plurality of storage addresses belong to the same storage node.
  9. 根据权利要求7所述的方法,其特征在于,所述多个存储地址属于多个存储节点;The method according to claim 7, wherein the plurality of storage addresses belong to a plurality of storage nodes;
    所述将所述多个数据组存储在所述多个存储地址包括:The storing the plurality of data groups at the plurality of storage addresses includes:
    将所述多个数据组合并为多个数据集,一个数据集包括所述多个数据组中相邻的多个数据组;combining the plurality of data sets into a plurality of data sets, and one data set includes a plurality of adjacent data sets in the plurality of data sets;
    将所述多个数据集中的数据组存储在所述多个存储地址,其中,一个存储地址中存储一个数据组,同一数据集中的多个数据组存储在不同存储节点内的存储地址中。The data groups in the multiple data sets are stored in the multiple storage addresses, wherein one storage address stores one data group, and multiple data groups in the same data set are stored in storage addresses in different storage nodes.
  10. 根据权利要求9所述的方法,其特征在于,所述将所述多个数据集中的数据组存储在所述多个存储地址之后,所述方法还包括:The method according to claim 9, wherein after storing the data groups in the plurality of data sets in the plurality of storage addresses, the method further comprises:
    对于所述多个数据集中的任一数据集,从所述多个存储节点读取所述任一数据集的多个数据组。For any data set in the plurality of data sets, a plurality of data groups of the any data set are read from the plurality of storage nodes.
  11. 根据权利要求9所述的方法,其特征在于,所述码字包括多个子码,所述将码字存储在多个存储地址之后,所述方法还包括:The method according to claim 9, wherein the codeword includes multiple subcodes, and after the codeword is stored in multiple storage addresses, the method further comprises:
    对于所述多个子码中相邻的多个目标子码,从所述多个数据集中确定与所述多个目标子码相关的至少一个目标数据集,所述至少一个目标数据集包括与所述多个目标子码相关的至少一个目标数据组,一个目标数据组包括所述多个目标子码中部分目标子码的数据;For a plurality of adjacent target subcodes among the plurality of subcodes, at least one target data set related to the plurality of target subcodes is determined from the plurality of data sets, the at least one target data set including the at least one target data group related to the plurality of target subcodes, and one target data group includes data of part of the target subcodes in the plurality of target subcodes;
    从所述多个存储节点读取所述至少一个目标数据集中的目标数据组;reading target data groups in the at least one target data set from the plurality of storage nodes;
    对读取到的目标数据组进行译码。Decode the read target data set.
  12. 根据权利要求11所述的方法,其特征在于,所述读取到的目标数据组包括至少一个奇目标数据组以及至少一个偶目标数据组,一个奇目标数据组为位于所述码字的奇数行层的目标数据组,一个偶目标数据组为位于所述码字的偶数行层的目标数据组;The method according to claim 11, wherein the read target data group includes at least one odd target data group and at least one even target data group, and an odd target data group is an odd number located in the codeword The target data group of the row layer, an even target data group is the target data group located at the even-numbered row layer of the codeword;
    所述对读取到的多个目标数据组进行译码包括:The decoding of the read multiple target data groups includes:
    将所述至少一个奇目标数据组发送给多个第三译码节点,由所述多个第三译码节点对接收到的奇目标数据组进行译码;sending the at least one odd target data group to a plurality of third decoding nodes, and decoding the received odd target data group by the plurality of third decoding nodes;
    将所述至少一个偶目标数据组发送给多个第四译码节点,由所述多个第四译码节点对接收到的偶数据组进行译码。The at least one even target data group is sent to a plurality of fourth decoding nodes, and the received even data group is decoded by the plurality of fourth decoding nodes.
  13. 一种译码装置,其特征在于,所述装置包括:A decoding device, characterized in that the device comprises:
    存储模块,用于将码字存储在多个存储地址,一个存储地址用于存储所述码字中m行n列的m*n个数据,所述m和所述n均是大于或等于1的整数;The storage module is used to store the codeword in a plurality of storage addresses, one storage address is used to store m*n data of m rows and n columns in the codeword, and both the m and the n are greater than or equal to 1 the integer;
    读取模块,用于对于所述多个存储地址中的任一存储地址,从所述任一存储地址中读取所述任一存储地址中存储的m*n个数据;a reading module, configured to read m*n data stored in the any storage address from the any storage address for any storage address in the plurality of storage addresses;
    译码模块,用于对读取到的m*n个数据进行译码。The decoding module is used to decode the read m*n data.
  14. 根据权利要求13所述的装置,其特征在于,所述译码模块包括:The apparatus according to claim 13, wherein the decoding module comprises:
    第一确定单元,用于若本次译码过程为行向译码过程,基于所述读取到的m*n个数据在所述码字中的位置,确定m个行数据组,一个行数据组包括所述读取到的m*n个数据中的n个数据,所述n个数据在所述码字中位于同一行;The first determination unit is configured to determine m row data groups based on the positions of the read m*n data in the codeword if the current decoding process is a row-wise decoding process, one row The data group includes n data in the read m*n data, and the n data are located in the same row in the codeword;
    第一译码单元,用于对所述m个行数据组进行译码。The first decoding unit is used for decoding the m row data groups.
  15. 根据权利要求14所述的装置,其特征在于,所述第一译码单元用于:The apparatus according to claim 14, wherein the first decoding unit is used for:
    将所述m个行数据组分别发送至m个第一译码节点,由每个第一译码节点对接收到的行数据组进行译码。The m line data groups are respectively sent to m first decoding nodes, and each first decoding node decodes the received line data groups.
  16. 根据权利要求13所述的装置,其特征在于,所述译码模块包括:The apparatus according to claim 13, wherein the decoding module comprises:
    第二确定单元,用于若本次译码过程为列向译码过程,基于所述读取到的m*n个数据在所述码字中的位置,确定n个列数据组,一个列数据组包括所述读取到的m*n个数据中的m个数据,所述m个数据在所述码字中位于同一列;The second determining unit is configured to, if the current decoding process is a column-oriented decoding process, determine n column data groups, one column The data group includes m data in the read m*n data, and the m data are located in the same column in the codeword;
    第二译码单元,用于对所述n个列数据组进行译码。The second decoding unit is used for decoding the n column data groups.
  17. 根据权利要求16所述的装置,其特征在于,所述第二译码单元用于:The apparatus according to claim 16, wherein the second decoding unit is used for:
    将所述n个列数据组分别发送至n个第二译码节点,由每个第二译码节点对接收到的列数据组进行译码。The n column data sets are respectively sent to n second decoding nodes, and each second decoding node decodes the received column data sets.
  18. 根据权利要13-17任一项所述的装置,其特征在于,所述装置还包括:The device according to any one of claims 13-17, wherein the device further comprises:
    修改模块,用于将所述任一存储地址中存储的m*n个数据修改为m*n个译码数据,所述m*n个译码数据为所述读取到的m*n个数据译码后的数据。A modification module, configured to modify m*n pieces of data stored in any of the storage addresses into m*n pieces of decoded data, where the m*n pieces of decoded data are the read m*n pieces of data Data decoded data.
  19. 根据权利要求13-18任一项所述的装置,其特征在于,所述存储模块用于:The device according to any one of claims 13-18, wherein the storage module is used for:
    按照m行n列的粒度,将所述码字中的数据划分成多个数据组,一个数据组包括所述码字中m行n列的m*n个数据;According to the granularity of m rows and n columns, the data in the codeword is divided into multiple data groups, and one data group includes m*n data of m rows and n columns in the codeword;
    将所述多个数据组存储在所述多个存储地址,一个存储地址中存储一个数据组。The plurality of data groups are stored in the plurality of storage addresses, and one data group is stored in one storage address.
  20. 根据权利要求19所述的装置,其特征在于,所述多个存储地址属于同一个存储节点。The apparatus according to claim 19, wherein the plurality of storage addresses belong to the same storage node.
  21. 根据权利要求19所述的装置,其特征在于,所述多个存储地址属于多个存储节点;The apparatus of claim 19, wherein the plurality of storage addresses belong to a plurality of storage nodes;
    所述存储模块用于:The storage module is used for:
    将所述多个数据组合并为多个数据集,一个数据集包括所述多个数据组中相邻的多个数据组;combining the plurality of data sets into a plurality of data sets, and one data set includes a plurality of adjacent data sets in the plurality of data sets;
    将所述多个数据集中的数据组存储在所述多个存储地址,其中,一个存储地址中存储一个数据组,同一数据集中的多个数据组存储在不同存储节点内的存储地址中。The data groups in the multiple data sets are stored in the multiple storage addresses, wherein one storage address stores one data group, and multiple data groups in the same data set are stored in storage addresses in different storage nodes.
  22. 根据权利要求21所述的装置,其特征在于,所述读取模块还用于:The device according to claim 21, wherein the reading module is further used for:
    对于所述多个数据集中的任一数据集,从所述多个存储节点读取所述任一数据集的多个数据组。For any data set in the plurality of data sets, a plurality of data groups of the any data set are read from the plurality of storage nodes.
  23. 根据权利要求21所述的装置,其特征在于,所述装置还包括:The apparatus of claim 21, wherein the apparatus further comprises:
    确定模块,用于对于所述多个子码中相邻的多个目标子码,从所述多个数据集中确定与所述多个目标子码相关的至少一个目标数据集,所述至少一个目标数据集包括与所述多个目标子码相关的至少一个目标数据组,一个目标数据组包括所述多个目标子码中部分目标子码的数据;a determining module, configured to, for a plurality of adjacent target subcodes among the plurality of subcodes, determine at least one target data set related to the plurality of target subcodes from the plurality of data sets, the at least one target data set The data set includes at least one target data group related to the plurality of target subcodes, and one target data group includes data of part of the target subcodes in the plurality of target subcodes;
    所述读取模块,还用于从所述多个存储节点读取所述至少一个目标数据集中的目标数据组;The reading module is further configured to read the target data group in the at least one target data set from the plurality of storage nodes;
    所述译码模块,还用于对读取到的目标数据组进行译码。The decoding module is also used for decoding the read target data group.
  24. 根据权利要求23所述的装置,其特征在于,所述读取到的目标数据组包括至少一个奇目标数据组以及至少一个偶目标数据组,一个奇目标数据组为位于所述码字的奇数行层的目标数据组,一个偶目标数据组为位于所述码字的偶数行层的目标数据组;The apparatus according to claim 23, wherein the read target data group includes at least one odd target data group and at least one even target data group, and an odd target data group is an odd number located in the codeword The target data group of the row layer, an even target data group is the target data group located at the even-numbered row layer of the codeword;
    所述译码模块用于:The decoding module is used for:
    将所述至少一个奇目标数据组发送给多个第三译码节点,由所述多个第三译码节点对接收到的奇目标数据组进行译码;sending the at least one odd target data group to a plurality of third decoding nodes, and decoding the received odd target data group by the plurality of third decoding nodes;
    将所述至少一个偶目标数据组发送给多个第四译码节点,由所述多个第四译码节点对接收到的偶数据组进行译码。The at least one even target data group is sent to a plurality of fourth decoding nodes, and the received even data group is decoded by the plurality of fourth decoding nodes.
  25. 一种译码设备,其特征在于,所述译码设备包括处理器和存储器,所述存储器中存储有至少一条程序代码,所述程序代码由所述处理器加载并执行以实现如权利要求1至权利要求12任一项所述的译码方法所执行的操作。A decoding device, characterized in that the decoding device includes a processor and a memory, and the memory stores at least one piece of program code, and the program code is loaded and executed by the processor to implement the method as claimed in claim 1 To the operations performed by the decoding method according to any one of claims 12.
  26. 一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条程序代码,所述程序代码由处理器加载并执行以实现如权利要求1至权利要求12任一项所述的译码方法所执行的操作。A computer-readable storage medium, wherein at least one piece of program code is stored in the storage medium, and the program code is loaded and executed by a processor to implement the method according to any one of claims 1 to 12. The operations performed by the decoding method.
PCT/CN2022/071135 2021-01-27 2022-01-10 Decoding method, apparatus and device, and computer readable storage medium WO2022161147A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110112883.5 2021-01-27
CN202110112883.5A CN114826283A (en) 2021-01-27 2021-01-27 Decoding method, device, equipment and computer readable storage medium

Publications (1)

Publication Number Publication Date
WO2022161147A1 true WO2022161147A1 (en) 2022-08-04

Family

ID=82524567

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/071135 WO2022161147A1 (en) 2021-01-27 2022-01-10 Decoding method, apparatus and device, and computer readable storage medium

Country Status (2)

Country Link
CN (1) CN114826283A (en)
WO (1) WO2022161147A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117914264A (en) * 2022-10-11 2024-04-19 深圳市中兴微电子技术有限公司 Crystal oscillator, control method and equipment of crystal oscillator and storage medium

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828773A (en) * 2005-03-04 2006-09-06 中国科学院计算技术研究所 Multidimensional array rapid read-write method and apparatus on dynamic random access memory
CN101930402A (en) * 2009-06-23 2010-12-29 北京芯技佳易微电子科技有限公司 Nonvolatile memory with error detection/correction circuit and reading and writing method thereof
US20160126980A1 (en) * 2014-10-30 2016-05-05 International Business Machines Corporation Removing error patterns in binary data
CN110113058A (en) * 2019-06-04 2019-08-09 翰顺联电子科技(南京)有限公司 Coding and decoding method, device, equipment and computer readable storage medium
CN110415748A (en) * 2018-04-27 2019-11-05 华为技术有限公司 Memory and signal processing method
CN110661593A (en) * 2018-06-29 2020-01-07 中兴通讯股份有限公司 Decoder, method and computer storage medium

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1828773A (en) * 2005-03-04 2006-09-06 中国科学院计算技术研究所 Multidimensional array rapid read-write method and apparatus on dynamic random access memory
CN101930402A (en) * 2009-06-23 2010-12-29 北京芯技佳易微电子科技有限公司 Nonvolatile memory with error detection/correction circuit and reading and writing method thereof
US20160126980A1 (en) * 2014-10-30 2016-05-05 International Business Machines Corporation Removing error patterns in binary data
CN110415748A (en) * 2018-04-27 2019-11-05 华为技术有限公司 Memory and signal processing method
CN110661593A (en) * 2018-06-29 2020-01-07 中兴通讯股份有限公司 Decoder, method and computer storage medium
CN110113058A (en) * 2019-06-04 2019-08-09 翰顺联电子科技(南京)有限公司 Coding and decoding method, device, equipment and computer readable storage medium

Also Published As

Publication number Publication date
CN114826283A (en) 2022-07-29

Similar Documents

Publication Publication Date Title
JP7372369B2 (en) Structural LDPC encoding, decoding method and device
JP6481914B2 (en) Encoding method, decoding method
JP6555759B2 (en) Structured LDPC coding method, decoding method, coding device, and decoding device
Tamo et al. Zigzag codes: MDS array codes with optimal rebuilding
JP5976960B2 (en) Design for lifted LDPC codes with high parallelism, low error floor, and simple coding principles
KR100808664B1 (en) Parity check matrix storing method, block ldpc coding method and the apparatus using parity check matrix storing method
US8225173B2 (en) Multi-rate LDPC code system and method
Gad et al. Repair-optimal MDS array codes over GF (2)
JP2000068862A (en) Error correction coder
US20130147645A1 (en) Encoding methods and systems for binary product codes
US11245423B2 (en) Interleaving method and apparatus
US20120317466A1 (en) Method and apparatus for data check processing
WO2022161147A1 (en) Decoding method, apparatus and device, and computer readable storage medium
WO2012163070A1 (en) Two-dimensional run-length limited codec with protection characters and method for using same
WO2019096184A1 (en) Method and device for decoding staircase code, and storage medium
US20110179337A1 (en) Memory utilization method for low density parity check code, low density parity check code decoding method and decoding apparatus thereof
JP2007110265A (en) Decoding apparatus and decoding method
CN114499541A (en) Layered decoding method, device, terminal equipment and medium
CN107733441B (en) Coding method and device, decoding method and device
WO2017193614A1 (en) Encoding method and device and decoding method and device for structured ldpc
EP3829088B1 (en) Decoder, decoding method, and computer storage medium
TW201029337A (en) Method for decoding LDPC code and the circuit thereof
CN110741559B (en) Polarization encoder, communication unit, integrated circuit and method thereof
US9374107B1 (en) Time shared protograph LDPC decoder
JP2021525976A (en) Staircase code decoding method and staircase code decoding device

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

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

Country of ref document: EP

Kind code of ref document: A1