Method and device for decoding staircase code, and storage medium
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-modifiedWhat 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.