Turbo decoder, turbo decoding method, and operating program of same
View Patent ↗A turbo decoding method is capable of realizing high-speed and highly accurate decoding operations by improving initialization of path metric values for parallel decoding processing. Turbo encoded code data is divided into a first to an N-th sub-code blocks and parallel decoding processing on these sub-code blocks is performed. “A priori initialization processing unit” s are provided which employ a final calculated value in a preceding sub-code block as an initial value for calculation of a path metric value of each sub-code block excluding the first sub-code block in a forward direction and a final calculated value in a following sub-code block as an initial value for calculation of a path metric value of each sub-code block excluding the N-th sub-code block in a backward direction. After the a priori initialization processing of path metric values, parallel decoding processing on each sub-code block is performed.
1. A turbo decoder for dividing turbo encoded code data into first to N-th (N is an integer being two or more) sub-code blocks and for performing decoding processing on the sub-code blocks in parallel with each other, said turbo decoder comprising:
an a priori initialization processing unit that outputs initial values to be used for calculating path metric values in forward and backward directions in each of said sub-code blocks, wherein said a priori initialization processing unit comprises,
a first initialization processing stage in which, in each of the first to the N-th sub-code blocks, path metric values in the forward and the backward directions each are calculated using a preset initial value, and
second to a K-th (K is an integer being two or more) initialization processing stages in which, in each of said subcode blocks excluding the first subcode block in each of the second to K-th initialization processing stages, a path metric value in the forward direction is calculated by using a final calculated value of the path metric value in the forward direction in a preceding subcode block in a preceding initialization processing stage as an initial value and, in each of said subcode blocks excluding the N-th subcode block, a path metric value in the backward direction is calculated by using a final calculated value of the path metric value in the backward direction in a following subcode block in the preceding initialization processing stage as an initial value;
N decoding units each corresponding to a respective one of said N subcode blocks, said N decoding units each performing simultaneously the decoding processing on the corresponding sub-code blocks based on a corresponding input from said a priori initialization processing unit, the corresponding input comprising final calculated values of the path metric values in the forward and backward directions in the corresponding sub-code block in the K-th initialization processing stage; and
a decoder output section connected to said decoding units that outputs a decoded result usable in one of a communication system and an information processing system.
2. The turbo decoder according to claim 1 , wherein, in the K-th initialization processing stage in the first sub-code block, the final calculated value of the path metric value in the forward direction in the first initialization processing stage is used as an initial value, and in the N-th subcode block, the final calculated value of the path metric value in the backward direction in the first initialization stage is used as an initial value.
3. A turbo decoding method in which turbo encoded code data is divided into first to N-th (N is an integer being two or more) sub-code blocks and decoding processing is performed on the sub-code blocks in parallel with each other, said turbo decoding method comprising:
an a priori initialization processing step in which initial values to be used for calculating path metric values in forward and backward directions in each of said sub-code blocks are output, wherein said a priori initialization processing step comprises:
a first step of calculating path metric values in the forward and the backward directions each using a preset initial value, in each of the first to the N-th sub-code blocks, and
second to K-th (K is an integer being two or more) steps of calculating, in each of the sub-code blocks excluding the first sub-code block in each of the second to K-th steps, a path metric value in the forward direction by using a final calculated value of the path metric value in the forward direction in a preceding sub-code block in a preceding step as an initial value and of calculating, in each of sub-code blocks excluding the N-th sub-code block, a path metric value in the backward direction by using a final calculated value of the path metric value in the backward direction in a following subcode block in the preceding step as an initial value;
a decoding step in which N decoding units each corresponding to a respective one of said N sub-code blocks each perform simultaneously the decoding processing on the corresponding sub-code blocks based on a corresponding input from said a priori initialization processing step, the corresponding input comprising final calculated values of the path metric values in the forward and backward directions in the corresponding sub-code block in the K-th initialization processing stage; and
an output step in the decoding units output a decoded result usable in one of a communication system and an information processing system.
4. The turbo decoding method according to claim 3 , wherein, in the K-th step, in the first sub-code block, the final calculated value of the path metric value in the forward direction in the first step is used as an initial value, and in the N-th sub-code block, the final calculated value of the path metric value in the backward direction in the first step is used as an initial value.
5. A turbo decoder for dividing turbo encoded code data into first to N-th (N is an integer being two or more) sub-code blocks and for performing decoding processing on each of said sub-code blocks in parallel with each other, said turbo decoder comprising:
an a priori initialization processing means for outputting initial values to be used for calculating path metric values in forward and backward directions in each of said sub-code blocks, wherein said a priori initialization processing means includes,
a first initialization processing stage in which, in each of the first to the N-th sub-code blocks, path metric values in the forward and the backward directions each are calculated using a preset initial value; and
second to a K-th (K is an integer being two or more) initialization processing stages in which, in each of said sub-code blocks excluding the first sub-code block in each of the second to K-th initialization processing stages, a path metric value in the forward direction is calculated by using a final calculated value of the path metric value in the forward direction in a preceding sub-code block in a preceding initialization processing stage as an initial value and, in each of said sub-code blocks excluding the N-th sub-code block, a path metric value in the backward direction is calculated by using a final calculated value of the path metric value in the backward direction in a following sub-code block in the preceding initialization processing stage as an initial value;
N decoding means each corresponding to a respective one of said N sub-code blocks, said N decoding means each performing simultaneously the decoding processing on the corresponding sub-code blocks based on a corresponding input from said a priori initialization processing means, the corresponding input comprising final calculated values of the path metric values in the forward and backward directions in the corresponding sub-code block in the K-th initialization processing stage; and
decoder output means connected to said decoding means that outputs a decoded result usable in one of a communication system and an information processing system.
6. The turbo decoder according to claim 5 , wherein, in the K-th initialization processing stage in the first sub-code block, the final calculated value of the path metric value in the forward direction in the first initialization processing stage is used as an initial value, and in the N-th sub-code block, the final calculated value of the path metric value in the backward direction in the first initialization stage is used as an initial value.