US11184034B2ActiveUtilityA1

Method and device for decoding staircase code, and storage medium

34
Assignee: XIAN ZHONGXING NEW SOFTWARE CO LTDPriority: Nov 15, 2017Filed: Nov 15, 2018Granted: Nov 23, 2021
Est. expiryNov 15, 2037(~11.4 yrs left)· nominal 20-yr term from priority
Inventors:Weiming Wang
H03M 13/251H03M 13/1108H04L 1/0042H03M 13/2927H04L 1/0057H03M 13/458H03M 13/2909H04L 1/00H03M 13/658H03M 13/2906H04L 1/0047H03M 13/45Y02D10/00
34
PatentIndex Score
0
Cited by
19
References
16
Claims

Abstract

Provided is a method for decoding a staircase code. The method includes following steps: soft information updating is performed on S initial encoding blocks in a staircase code to obtain a first information block, and last S−T encoding blocks in the first information block and T newly-added encoding blocks are updated to obtain a second information block; decoding is performed on first T encoding blocks in the first information block and first S−T encoding blocks in the second information block to obtain a third information block; and following operations are repeatedly performed: S−T information blocks are selected, the soft information updating is performed to obtain S updated information blocks, and the S updated information blocks are used as a new second information block; and decoding is performed to obtain a new third information block, and information of first T blocks is outputted as the output of the decoder.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method for decoding a staircase code, comprising:
 receiving, by a receiving device, a staircase code from a transmitting device over a channel; 
 performing, by the receiving device, soft information updating on S initial encoding blocks starting from an initial block B 0   T  in the staircase code to obtain a first information block, and updating, by the receiving device, last S−T encoding blocks in the first information block and T newly-added encoding blocks to obtain a second information block, wherein the staircase code is a forward error correction (FEC) code having correlation between adjacent codewords and defined based on a structure of a product code, the staircase code has a code structure in a form of a staircase, and S and T are both integers greater than 0; 
 performing, by the receiving device, decoding on first T encoding blocks in the first information block and first S−T encoding blocks in the second information block to obtain a third information block, and outputting, by the receiving device, information of first T blocks in the third information blocks as output of a decoder of the receiving device; and 
 performing, by the receiving device, repeatedly following operations of: selecting S−T information blocks from the second information block or the third information block, performing the soft information updating on the selected S−T information blocks and the T newly-added encoding blocks to obtain S updated information blocks, and using the S updated information blocks as a new second information block; and performing decoding on information of (T+1)-th to 2T-th blocks in the third information block and information of first S−T blocks in the new second information block to obtain a new third information block, and outputting information of first T blocks in the new third information blocks as output of the decoder of the receiving device. 
 
     
     
       2. The method of  claim 1 , wherein performing, by the receiving device, the soft information updating on the S initial encoding blocks starting from the initial block B 0   T  in the staircase code to obtain the first information block comprises:
 performing the soft information updating on the S initial encoding blocks B i  through N 1 _itr iterations to obtain the first information block, wherein 1≤i≤S, and N 1 _itr is an integer greater than 0. 
 
     
     
       3. The method of  claim 2 , wherein performing the soft information updating on the S initial encoding blocks B i  through the N 1 _itr iterations comprises:
 a first updating processing, which is to perform the soft information updating on a code block [R i−1   T  B i ], i=1, by a following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1,
 
 
 
       where R i   0  is original input data of the decoder corresponding to B i , R i   n  is soft information of n iterations corresponding to B i , W i   n  is external information calculated by the code block [B i−1   T  B i ], A i   n  is a reliability factor of the external information, a value range of A i   n  is (0, 1], a value of A i−1   n  is 1, and a value of A i   n  is n/N 1 _itr; and
 a second updating processing, which is to perform the soft information updating on a code block [R i−1   T  B i ], i=2, . . . S−1, by the following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1,
 
 
 
       where A i−1   n  is greater than or equal to A i   n ;
 performing repeatedly the first updating process and the second updating process for a code block [R i−1   T  R i ], i=1, . . . S−1, where during performing repeatedly, n=2, . . . N 1 _itr, A i   n  is greater than or equal to A i   n−1  and N 1 _itr is configurable by a register. 
 
     
     
       4. The method of  claim 1 , wherein updating, by the receiving device, the last S−T encoding blocks in the first information block and the T newly-added encoding blocks to obtain the second information block comprises:
 a third updating processing, which is to perform the soft information updating on a code block [R i−1   T  R i ], i=1, . . . S−T−1, by a following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   1   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1,
 
 
 
       where R i   0  is original input data of the decoder corresponding to an encoding block B i , R i   n  is soft information of n iterations corresponding to B i , W i   n  is external information calculated by a code block [B i−1   T  B i ], A i   n  is a reliability factor of the external information, a value range of A i   n  is (0, 1], a value of A i−1   n  is 1, and a value of A i   n  is n/N 1 _itr, wherein N 1 _itr is an integer greater than 0;
 a fourth updating processing, which is to perform the soft information updating on a code block [R i−1   T  B i ], i=S−T, by a following formula;
   [ R   S−T−1   n   ,R   S−T   n ]=[ R   S−T−1   0   ,R   S−T   0 ]+[ A   S−T−1   n   ,A   S−T   n ]× W   i   n−1   ,n= 1;
 
 
 a fifth updating processing, which is to perform the soft information updating on a code block [B i−1   T  B i ], i=S−T+1, . . . S−T−1, by the following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1; and
 
 
 performing repeatedly the third updating processing, the fourth updating processing and the fifth updating processing to obtain the second information block, where A i   n  is greater than or equal to A i   n−1  and during performing repeatedly, n=2, . . . N 1 _itr. 
 
     
     
       5. The method of  claim 1 , wherein performing, by the receiving device, the decoding on the first T encoding blocks in the first information block and the first S−T encoding blocks in the second information block to obtain the third information block comprises one of:
 performing hard decoding on the first T encoding blocks in the first information block and the first S−T encoding blocks in the second information block to obtain the third information block; or 
 performing soft decoding on the first T encoding blocks in the first information block and the first S−T encoding blocks in the second information block to obtain the third information block. 
 
     
     
       6. The method of  claim 5 , wherein performing the hard decoding on the first T encoding blocks in the first information block and the first S−T encoding blocks in the second information block to obtain the third information block comprises:
 obtaining soft information of the first information block and soft information of the second information block through a following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   n−1   ,R   i   n−1 ]+ W   i   n   ,n=N   1 _ itr,    
 
 
       where R i   n  is soft information of n iterations corresponding to an encoding block B i , and W i   n  is external information calculated by a code block [B i−1   T  B i ], wherein N 1 _itr is an integer greater than 0;
 performing a hard decision on the obtained soft information through a manner of: deciding a symbol bit to be 0 bit or 1 bit by corresponding a symbol bit of an element in the obtained soft information to an encoding rule; 
 performing a decoding processing through a manner of: successively performing (2m, 2m-r) block code decoding on hard decision results corresponding to [B i−1   T  B i ] with a number of S−1, where i=2, 3, . . . , S−1, S; and 
 performing repeatedly a decoding processing N 2 _itr times, determining decoded S block data as the third information block, and using first T block data as output of the decoder, wherein N 2 _itr is an integer greater than 0. 
 
     
     
       7. The method of  claim 6 , wherein in a case where the decoding processing is repeatedly performed N 2 _itr times, and a block code is provided with an extended parity bit, in previous N 3 _itr iterations, a result of (2m, 2m-r) block code decoding not satisfying the extended parity bit is iterated, to restore to current input data of the (2m, 2m-r) block code decoding, a subsequent iteration does not be performed a parity bit detection, and a decoding result is performed exclusive-OR (XOR) to modulo 2 to obtain the extended parity bit, wherein a value range of N 3 _itr is [1, N 2 _itr], and N 2 _itr is an integer greater than 0. 
     
     
       8. The method of  claim 6 , wherein during performing repeatedly the decoding processing N 2 _itr times, and in a case where a block code decoder processing the decoding processing feeds back an error-corrected, a current codeword sequence is restored to original input data. 
     
     
       9. The method of  claim 5 , wherein performing the soft decoding on the first T encoding blocks in the first information block and the first S−T encoding blocks in the second information block to obtain the third information block comprises:
 performing a normalization processing on the first information block and the second information block, and obtaining soft information of the first information block and soft information of the second information block through a following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n=N   1 _ itr,  
 
 
 
       where R i   0  is original input data of the decoder corresponding to an encoding block B i , R i   n  is soft information of n iterations corresponding to B i , W i   n  is external information calculated by a code block [B i−1   T  B i ], A i   n  is a reliability factor of the external information, a value range of A i   n  is (0, 1], a value of A i−1   n  is 1, and a value of A i   n  is (n−1)/N 1 _itr, wherein N 1 _itr is an integer greater than 0;
 performing repeatedly an output processing, where during performing repeatedly, n=2, . . . N 2 _itr, and N 2 _itr is an integer greater than 0; 
 in a case where the last iteration is performed, performing a following output processing: outputting soft information of the decoder obtained according to a following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   n−1   ,R   i   n−1 ]+ W   i   n   ,n=N   2 _ itr;    
 
 performing a hard decision on the soft information obtained by the output processing through a manner of: deciding a symbol bit to be 0 bit or 1 bit by corresponding a symbol bit of an element in the obtained soft information to an encoding rule; and 
 determining first T block data obtained through the hard decision as the third information block, and using the first T block data as output of the decoder. 
 
     
     
       10. The method of  claim 1 , wherein selecting the S−T information blocks from the second information block or the third information block comprises:
 in a case where hard decoding is performed on the first T encoding blocks in the first information block and the first S−T encoding blocks in the second information block to obtain the third information block, selecting S−T information blocks through a manner of: discarding first T block data in the second information block to obtain the S−T information blocks; or, selecting (2T+1)-th block and N_bh blocks following the (2T+1)-th block from the third information block, and splicing original input data corresponding to soft information of blocks from (T+N_bh+2)-th to S-th in the second information block onto the selected blocks from the third information block to act as the S−T information blocks, where a value range of N_bh is [0, S−T−1]; or 
 in a case where soft decoding is performed on the first T encoding blocks in the first information block and the first S−T encoding blocks in the second information block to obtain the third information block, selecting S−T information blocks through a manner of: selecting data of (2T+1)-th to (S+T)-th blocks from the third information block as the S−T information blocks, wherein a generation method is as follows:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n=N   2 _ itr,  
 
 
 
       where R i   n  is soft information output of n iterations corresponding to B i , and W i   n  is external information calculated by a code block [B i−1   T  B i ], wherein N 2 _itr is an integer greater than 0. 
     
     
       11. An apparatus for decoding a staircase code, applied to a receiving device, comprising: a processor and a memory, wherein the memory comprises stored programs, and the processor is configured to execute the programs to perform:
 receiving a staircase code from a transmitting device over a channel; 
 performing soft information updating on S initial encoding blocks starting from an initial block B 0   T  in the staircase code to obtain a first information block, and updating last S−T encoding blocks in the first information block and T newly-added encoding blocks to obtain a second information block, wherein the staircase code is a forward error correction (FEC) code having correlation between adjacent codewords and defined based on a structure of a product code, the staircase code has a code structure in a form of a staircase, and S and T are both integers greater than 0; 
 performing decoding on first T encoding blocks in the first information block and first S−T encoding blocks in the second information block to obtain a third information block, and outputting information of first T blocks in the third information blocks as output of a decoder of the receiving device; and 
 performing repeatedly following operations of: selecting S−T information blocks from the second information block or the third information block, performing the soft information updating on the selected S−T information blocks and the T newly-added encoding blocks to obtain S updated information blocks, and using the S updated information blocks as a new second information block; and performing decoding on information of (T+1)-th to 2T-th blocks in the third information block and information of first S−T blocks in the new second information block to obtain a new third information block, and outputting information of first T blocks in the new third information blocks as output of the decoder of the receiving device. 
 
     
     
       12. The apparatus of  claim 11 , wherein in a case where the soft information updating is performed on the S initial encoding blocks in the staircase code to obtain the first information block, performing the soft information updating on the S initial encoding blocks starting from the initial block B 0   T  in the staircase code to obtain the first information block comprises:
 performing the soft information updating on the S initial encoding blocks Bi through N 1 _itr iterations to obtain the first information block, wherein 1≤i≤S, and N 1 _itr is an integer greater than 0. 
 
     
     
       13. A non-transitory computer-readable storage medium, comprising stored programs, wherein the programs, when executed, perform:
 receiving a staircase code from a transmitting device over a channel; 
 performing soft information updating on S initial encoding blocks starting from an initial block B 0   T  in the staircase code to obtain a first information block, and updating last S−T encoding blocks in the first information block and T newly-added encoding blocks to obtain a second information block, wherein the staircase code is a forward error correction (FEC) code having correlation between adjacent codewords and defined based on a structure of a product code, the staircase code has a code structure in a form of a staircase, and S and T are both integers greater than 0; 
 performing decoding on first T encoding blocks in the first information block and first S−T encoding blocks in the second information block to obtain a third information block, and outputting information of first T blocks in the third information blocks as output of a decoder; and 
 performing repeatedly following operations of: selecting S−T information blocks from the second information block or the third information block, performing the soft information updating on the selected S−T information blocks and the T newly-added encoding blocks to obtain S updated information blocks, and using the S updated information blocks as a new second information block; and performing decoding on information of (T+1)-th to 2T-th blocks in the third information block and information of first S−T blocks in the new second information block to obtain a new third information block, and outputting information of first T blocks in the new third information blocks as output of the decoder. 
 
     
     
       14. The non-transitory computer-readable storage medium of  claim 13 , wherein performing the soft information updating on the S initial encoding blocks starting from the initial block B 0   T  in the staircase code to obtain the first information block comprises:
 performing the soft information updating on the S initial encoding blocks B i  through N 1 _itr iterations to obtain the first information block, wherein 1≤i≤S, and N 1 _itr is an integer greater than 0. 
 
     
     
       15. The non-transitory computer-readable storage medium of  claim 14 , wherein performing the soft information updating on the S initial encoding blocks B i  through the N 1 _itr iterations comprises:
 a first updating processing, which is to perform the soft information updating on a code block [B i−1   T  B i ], i=1, by a following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1,
 
 
 
       where R i   0  is original input data of the decoder corresponding to B i , R i   n  is soft information of n iterations corresponding to B i , W i   n  is external information calculated by the code block [B i−1   T  B i ], A i   n  is a reliability factor of the external information, a value range of A i   n  is (0, 1], a value of A i−1   n  is 1, and a value of A i   n  is n/N 1 _itr; and
 a second updating processing, which is to perform the soft information updating on a code block [R i−1   T  B i ], i=2, . . . S−1, by the following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1,
 
 
 
       where A i−1   n  is greater than or equal to A i   n ;
 performing repeatedly the first updating process and the second updating process for a code block [R i−1   T  R i ], i=1, . . . S−1, where during performing repeatedly, n=2, . . . N 1 _itr, A i   n  is greater than or equal to A i   n−1 , and N 1 _itr is configurable by a register. 
 
     
     
       16. The non-transitory computer-readable storage medium of  claim 13 , wherein updating the last S−T encoding blocks in the first information block and the T newly-added encoding blocks to obtain the second information block comprises:
 a third updating processing, which is to perform the soft information updating on a code block [R i−1   T  R i ], i=1, . . . S−T−1, by a following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1,
 
 
 
       where R i   0  is original input data of the decoder corresponding to an encoding block B i , R i   n  is soft information of n iterations corresponding to B i , W i   n  is external information calculated by a code block [B i−1   T  B i ], A i   n  is a reliability factor of the external information, a value range of A i   n  is (0, 1], a value of A i−1   n  is 1, and a value of A i   n  is n/N 1 _itr, wherein N 1 _itr is an integer greater than 0;
 a fourth updating processing, which is to perform the soft information updating on a code block [R i−1   T  B i ], i=S−T, by a following formula;
   [ R   S−T−1   n   ,R   S−T   n ]=[ R   S−T−1   0   ,R   S−T   0 ]+[ A   S−T−1   n   ,A   S−T   n ]× W   i   n−1   n= 1;
 
 
 a fifth updating processing, which is to perform the soft information updating on a code block [R i−1   T , B i ], i=S−T+1, . . . S−T−1, by the following formula:
   [ R   i−1   n   ,R   i   n ]=[ R   i−1   0   ,R   i   0 ]+[ A   i−1   n   ,A   i   n ]× W   i   n   ,n= 1; and
 
 
 performing repeatedly the third updating processing, the fourth updating processing and the fifth updating processing to obtain the second information block, where A i   n  is greater than or equal to A i n −1 , and during performing repeatedly, n=2, . . . N 1 _itr.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.