Error correcting decoding device and error correcting decoding method
11522562 · 2022-12-06
Assignee
Inventors
- Hideo Yoshida (Tokyo, JP)
- Yoshiaki Konishi (Tokyo, JP)
- Kenji Ishii (Tokyo, JP)
- Takashi Sugihara (Tokyo, JP)
Cpc classification
H03M13/1111
ELECTRICITY
H03M13/1128
ELECTRICITY
H03M13/3715
ELECTRICITY
International classification
H03M13/00
ELECTRICITY
H03M13/29
ELECTRICITY
H03M13/25
ELECTRICITY
Abstract
Provided is an error correction decoding device including an inner code iterative decoding circuit, a parameter generation circuit, and a first control circuit. The first control circuit is configured to: receive, as parameters, a threshold and a maximum iteration count which are generated by the parameter generation circuit; and compare, when an iteration count does not reach the maximum iteration count, a non-zero-value count sequentially output from the inner code iterative decoding circuit and the threshold set for each iteration count, and stop an iterative operation by the inner code iterative decoding circuit when a result of the comparison satisfies a stopping condition set in advance.
Claims
1. An error correction decoding device, comprising: an iterative decoding circuit configured to execute iterative decoding processing for an LDPC code, sequentially output a temporary hard-decision decoding result for each iteration count, and to sequentially output a non-zero-value count that is obtained by executing a parity check for the temporary hard-decision decoding result, the non-zero-value count being a number based on errors in the parity check; a parameter generation circuit configured to generate, as a parameter for executing the iterative decoding processing, a threshold which is set for each iteration count; and a first control circuit configured to control iterative operation of the iterative decoding circuit, wherein the first control circuit is configured to: receive the threshold which is generated by the parameter generation circuit; and compare, when an iteration count does not reach a maximum iteration count, the non-zero-value count sequentially output from the iterative decoding circuit and the threshold which is set for each iteration count, and stop the iterative operation by the iterative decoding circuit to output the temporary hard-decision decoding result as a decoding result when a result of the comparison satisfies a stopping condition set in advance.
2. The error correction decoding device according to claim 1, wherein the parameter generation circuit is configured to generate the threshold based on a code length of the LDPC code and a parity bit length.
3. The error correction decoding device according to claim 1, wherein the parameter generation circuit is configured to generate, as the threshold, for each iteration count, a first threshold to be used to determine correctability, and wherein the first control circuit is configured to compare the non-zero-value count sequentially output from the iterative decoding circuit and the first threshold which is set for each iteration count, and stop the iterative operation by the iterative decoding circuit when the non-zero-value count is higher than the first threshold.
4. The error correction decoding device according to claim 1, wherein the first control circuit is configured to feed, when the iterative operation by the iterative decoding circuit is stopped under a state in which an iteration count does not reach a maximum iteration count, information including a repetition count at a time when the iterative operation is stopped back to the parameter generation circuit, as iterative decoding stopping information, and wherein the parameter generation circuit is configured to update, based on the iterative decoding stopping information, the parameter to be used when the iterative decoding circuit executes the iterative decoding processing for an LDPC code sequence received next.
5. The error correction decoding device according to claim 1, further comprising an outer code decoding circuit provided downstream of the iterative decoding circuit in order to execute outer code decoding processing for correcting an error that remains in a result of decoding in the iterative decoding circuit, wherein the outer code decoding circuit is configured to generate, as a result of execution of the outer code decoding processing, correction information indicating the number of corrected bits and notification of an uncorrectable state, and feed the correction information back to the parameter generation circuit, and wherein the parameter generation circuit is configured to update, based on the correction information, the parameter to be used when the iterative decoding circuit executes the iterative decoding processing for an LDPC code sequence received next.
6. The error correction decoding device according to claim 1, further comprising a second control circuit configured to control decoding operation by an outer code decoding circuit, wherein the first control circuit is configured to set an abnormality detection flag when the iteration count at a time when the iterative operation by the iterative decoding circuit is stopped is lower than a determination count set in advance, and transmit the abnormality detection flag to the second control circuit, and wherein the second control circuit is configured to determine, based on the abnormality detection flag, whether an uncorrectable error remains in the result of the decoding in the iterative decoding circuit, and perform control of stopping the decoding operation by the outer code decoding circuit when determining that the uncorrectable error remains.
7. The error correction decoding device according to claim 1, wherein the parameter generation circuit is configured to generate, as the threshold, for each iteration count, a second threshold to be used to determine that the iterative operation by the iterative decoding circuit is complete, and wherein the first control circuit is configured to compare the non-zero-value count sequentially output from the iterative decoding circuit and the second threshold set for each iteration count, and stop the iterative operation by the iterative decoding circuit when the non-zero-value count is lower than the second threshold.
8. An error correction decoding method which is executed by the error correction decoding device of claim 1, the error correction decoding method comprising: executing iterative decoding processing for an LDPC code, sequentially outputting a temporary hard-decision decoding result for each iteration count, and sequentially outputting a non-zero-value count that is obtained by executing a parity check for the temporary hard-decision decoding result, the non-zero-value count being a number based on errors in the parity check; generating, as a parameter for executing the iterative decoding processing, a threshold which is set for each iteration count; receiving the threshold which is generated in the generating step; stopping the iterative operation executed in the executing when an iteration count of the iterative decoding processing executed in the executing reaches the maximum iteration count; and comparing, when the iteration count does not reach a maximum iteration count, the non-zero-value count sequentially output in the executing and the threshold which is set for each iteration count, and stopping the iterative operation executed in the executing to output the temporary hard-decision decoding result as a decoding result when a result of the comparison satisfies a stopping condition set in advance.
Description
BRIEF DESCRIPTION OF DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
DESCRIPTION OF EMBODIMENTS
(7) An error correction decoding device and an error correction decoding method according to preferred embodiments of the present invention are described below with reference to the drawings.
First Embodiment
(8)
(9) The inner code iterative decoding circuit 1 is an iterative decoding circuit configured to perform iterative decoding processing on an LDPC code. The inner code iterative control circuit 2, on the other hand, is a first control circuit configured to control iterative operation of the inner code iterative decoding circuit 1. From the inner code iterative decoding circuit 1, a non-zero-value count S of a parity check based on a decoding result which is temporarily determined for each round of iteration is sequentially output to be handed to the inner code iterative control circuit 2.
(10) The parameter generation circuit 3 configured to generate a parameter for performing iterative control is connected to the inner code iterative control circuit 2.
(11) The outer code decoding circuit 4 is connected downstream of the inner code iterative decoding circuit 1 to correct an error that remains in the result of decoding executed by the inner code iterative decoding circuit 1. In addition to correcting the remaining error and outputting the result of the correction, the outer code decoding circuit 4 outputs, as correction information, information including the number of corrected bits or notification of an uncorrectable state. The output related to the correction information from the outer code decoding circuit 4 is fed back to the parameter generation circuit 3 as well.
(12)
(13) The flow chart illustrated in
(14) Specifically, initialization of each node is executed in the inner code iterative decoding circuit 1. In the inner code iterative control circuit 2, an iteration count “i” is set to 0. The parameter generation circuit 3 generates, in advance, as parameters for performing iterative control, a maximum iteration count and a threshold to be used for determination of whether to stop iterative processing for each round of iteration.
(15) Specifically, the parameter generation circuit 3 generates the maximum iteration count and the threshold based on the code length of the input LDPC code, the parity bit length, performance characteristics expected of the code sequence, throughput, and a predicted transmission state.
(16) The parameter generation circuit 3 receives the correction information provided by the outer code decoding circuit 4, which is described later, and can update the maximum iteration count and the threshold accordingly each time iterative decoding processing is sequentially executed.
(17) The parameter generation circuit 3 transmits the initially set parameters related to the maximum iteration count and the threshold to the inner code iterative control circuit 2. The initial setting of the parameters related to the maximum iteration count and the threshold may be executed before the reception of the LDPC code sequence.
(18) The parameters related to the threshold to be used for the determination of whether to stop the iterative processing include a threshold parameter F[i] to be used for the determination of uncorrectability and a threshold parameter E[i] to be used for the determination of correctability in decoding processing of the subsequent block code.
(19) The threshold parameter F[i] corresponds to a first threshold and the threshold parameter E[i] corresponds to a second threshold. The threshold parameter F[i] and the threshold parameter E[i] may be used both or alone. The magnitude relationship between the parameters is “F[i]>E[i]” in view of conditions to be controlled.
(20) After the initial conditions are set in Step S201, the inner code iterative decoding circuit 1 executes column (variable node) operation in Step S202 as decoding processing of the LDPC code. A temporary hard-decision decoding result is obtained in this step as well. The temporary hard-decision decoding result at the iteration count i=0 is the very hard-decision result of the received LDPC code sequence.
(21) Step S202 and subsequent steps up through Step S209 described later is repeatedly executed. In Step S203, when it is determined that the iteration count “i” matches the set maximum iteration count, the inner code iterative control circuit 2 causes the iterative processing by the inner code iterative decoding circuit 1 to end, and proceeds to processing of Step S210 and subsequent steps.
(22) When it is determined that the iteration count “i” is lower than the set maximum iteration count, on the other hand, the inner code iterative control circuit 2 proceeds to processing of Step S204. In Step S204, the inner code iterative decoding circuit 1 performs calculation of a parity check for the temporary hard-decision decoding result. In general, the LDPC code sequence is configured so that all are zero in a parity check.
(23) Next, in Step S205, the inner code iterative decoding circuit 1 counts the non-zero-value count S for the parity check obtained in Step S204. Bits of the LDPC code sequence are sparsely distributed with respect to bits of a parity check. For instance, in an LDPC code used in DVB-S2, one bit out of most information bits affects only three bits of a parity check, and a redundant bit affects only two bits or one bit of a parity check.
(24) That is, the non-zero-value count S in a parity check is high when there are many errors, and the non-zero-value count is low when there are few errors. When the weight of a redundant bit is 2 as in DVB-S2 and one redundant bit is an error, the non-zero-value count is 2. When many bit errors remain, however, the non-zero-value count may correlatively be small.
(25) Next, in Step S206, the inner code iterative control circuit 2 receives the non-zero-value count S from the inner code iterative decoding circuit 1, and compares the received non-zero-value count S and the threshold parameter E[i] at the iteration count “i”.
(26) When “S<E[i]” is true, the inner code iterative control circuit 2 determines that an error remains in a redundant bit but is correctable with the subsequent block code, stops the iterative decoding processing, and proceeds to the processing of Step S210 and subsequent steps. The inner code iterative control circuit 2 stops the iterative decoding processing also when the non-zero-value count is 0, because the LDPC code sequence in this case is a sequence that follows an encoding rule and it can accordingly be determined that correction is complete.
(27) The inner code iterative control circuit 2 may stop the iterative processing after executing the iterative processing once more when it is determined in Step S206 that the iterative processing is to be stopped, on condition that the iteration count “i” be a number other than the maximum iteration count and that the non-zero-value count be not 0.
(28) When the iteration count “i” is relatively low, the non-zero-value count may be small due to correlation with a plurality of bit errors. A condition for stopping the iterative processing is therefore recommended to be strict. For example, the inner code iterative control circuit 2 may be designed so as to stop the iterative processing only when the non-zero-value count S is 0 (that is, when E[i]=1 is set) at the iteration count “i” that is equal to or lower than an iteration count set in advance.
(29) The inner code iterative control circuit 2 may also be designed so as to stop the iterative processing when the iteration count “i” is higher than the iteration count set in advance and the non-zero-value count S in a parity check is lower than a non-zero-value count of a fixed value (that is, set to a fixed value that satisfies “E[i]>1”).
(30) When determining that the answer is “No” in Step S206 and proceeding to processing of Step S207, the inner code iterative control circuit 2 compares the non-zero-value count S and the threshold parameter F[i] at the iteration count “i”.
(31) When the comparison reveals that “S>F[i]” is true, the inner code iterative control circuit 2 determines that this is an uncorrectable state in which an error remains after the iterative processing repeated until the maximum iteration count is reached, and is uncorrectable also by decoding with the subsequent block code, stops the iterative decoding processing, and proceeds to the processing of Step S210 and subsequent steps. In short, when a stopping condition defined as “S>F[i]” is satisfied, the inner code iterative control circuit 2 stops the iterative decoding processing and proceeds to the processing of Step S210 and subsequent steps.
(32) When it is determined in Step S207 that the iterative processing is to be stopped, with the iteration count “i” being short of the maximum iteration count, the inner code iterative control circuit 2 may stop the iterative processing after executing the iterative processing once more.
(33) When the condition for stopping the iterative processing is satisfied in none of Step S203, Step S206, and Step S207 described above, the inner code iterative control circuit 2 proceeds to processing of Step S208 and subsequent steps in order to prepare for the next round of iterative processing. That is, the inner code iterative control circuit 2 increases the iteration count “i” by 1 in Step S208, performs row (check node) operation in Step S209, and then returns to the processing of Step S202 in order to perform column (variable node) operation again.
(34) When the condition for stopping the iterative processing is satisfied in one of Step S203, Step S206, and Step S207, and Step S210 is consequently reached, the inner code iterative decoding circuit 1 sets a temporary hard-decision sequence as a decoding result, and outputs the set decoding result.
(35) The determination of “Yes” in Step S203 corresponds to a case in which the iterative decoding processing is normally stopped after the maximum iteration count is reached, without being stopped in the middle of the run. The determination of “Yes” in Step S206 and Step S207 corresponds to a case in which the iterative decoding processing is stopped in the middle of the run, without the number of times of execution reaching the maximum iteration count.
(36) Next, in Step S211, the outer code decoding circuit uses the temporary hard-decision sequence received as a decoding result from the inner code iterative decoding circuit 1 to execute decoding processing of the subsequent block (BCH) code, which is an outer code. As a result, the remaining error is corrected by the decoding operation in the outer code decoding circuit 4, and the series of processing steps of error correction is ended.
(37) When the iterative decoding processing is stopped based on the result of the comparison in Step S206, or the result of the comparison in Step S207, the situation at that time serves as a material for an estimation of the state of a transmission path along which the LDPC code sequence has been received.
(38) The inner code iterative control circuit 2 therefore feeds an iteration count at the time of stop of the iterative decoding processing and other types of information back to the parameter generation circuit 3 as iterative decoding stopping information. The parameter generation circuit 3 can execute update processing that decreases the maximum iteration count, update processing of the threshold used for the determination of whether to stop the iterative processing, and the like by estimating an error state of the next LDPC code sequence based on the iterative decoding stopping information fed back thereto.
(39) As a result, power consumed by the error correction decoding device can be suppressed by executing parameter updating processing for each round of iteration based on the iterative decoding stopping information fed back in a situation in which correction is not possible.
(40) The parameter generation circuit 3 can also obtain, as correction information fed back thereto, the number of corrected bits and notification of the uncorrectable state which are generated as a result of execution of the outer code decoding processing by the outer code decoding circuit 4. The parameter generation circuit 3 can accordingly execute update processing that decreases the maximum iteration count, update processing of the threshold used for the determination of whether to stop the iterative processing, and the like by estimating an error state of an LDPC code sequence to be input next, based on the correction information fed back from the outer code decoding circuit 4.
(41) As a result, power consumed by the error correction decoding device can be suppressed by executing parameter updating processing for each round of iteration based on the correction information fed back in a situation in which correction is not possible.
(42) Of the steps illustrated in
(43) As described above, the error correction decoding device according to the first embodiment has a configuration in which the threshold set for each round of iteration and the non-zero-value count obtained through a parity check are compared each time the iteration count increases, and whether to stop the iterative processing can be determined based on the result of the comparison. The error correction decoding device according to the first embodiment consequently accomplishes effects described below.
(44) (Effect 1)
(45) In decoding of an LDPC code, stopping of iterative decoding can be executed by determining at an early stage that correction is not possible despite iterative decoding executed the maximum number of times in a syndrome check performed on a decoding result of each round of iteration, at the same time as processing of stopping the iterative decoding as a result of determining in the syndrome check that correction is complete.
(46) (Effect 2)
(47) The fact that the reception state is abnormal can be notified also to upstream circuits that execute demodulation, synchronization acquisition, and the like, as feedback information. The maximum iteration count can consequently be decreased so as to suppress iterative decoding processing for the subsequent LDPC code sequence that is rendered useless by the abnormal reception state.
(48) (Effect 3)
(49) The iterative decoding processing can be stopped rather early when it is determined that an error remaining in a preset parity check state after the iterative decoding processing is executed a preset number of times is an error correctable with a decoded part of the LDPC or by subsequent decoding processing.
(50) With the configuration and effects described above, the error correction decoding device according to the first embodiment can reduce the number of times of the iterative decoding processing of the LDPC code by making most of the correction capability of the outer code decoding circuit relatively small in power consumption, and can accordingly suppress power consumption in decoding processing.
Second Embodiment
(51) The preceding description of the first embodiment is focused on a case of suppressing power consumption by controlling the number of times of iteration in iterative decoding processing of an LDPC code sequence. A second embodiment of the present invention, on the other hand, gives description on a case of suppressing power consumption by aborting decoding processing in the middle of the run when an error uncorrectable even in decoding processing with the subsequent block code occurs.
(52)
(53) The configuration of
(54) The outer code decoding processing stop control circuit 5 has a function of receiving an abnormality detection flag from the inner code iterative control circuit 2. The inner code iterative control circuit 2 can set the abnormality detection flag in the uncorrectable state determination, based on an abnormality determination iteration count K set in advance. The outer code decoding processing stop control circuit 5 further has a function of aborting the decoding operation that is executed by the outer code decoding circuit 4, by issuing a decoding processing stopping signal to the outer code decoding circuit 4 based on the received abnormality detection flag.
(55)
(56) Decoding processing of an LDPC code sequence is the same as the processing illustrated in
(57) The inner code iterative control circuit 2 compares the threshold parameter F[i] at the iteration count “i” and the non-zero-value count S in Step S207 and, when “S>F[i]” is true, proceeds to processing of Step S400. A case in which the answer is determined to be “Yes” in Step S207 corresponds to a case in which an error may remain despite the inner code iterative decoding processing repeated until the maximum iteration count is reached, and may remain uncorrectable even in decoding with the subsequent block code.
(58) The inner code iterative control circuit 2 therefore determines, after stopping the iterative decoding processing in Step S400, whether the iteration count “i” at the time of stopping the iterative decoding processing is smaller than the abnormality determination iteration count K set in advance by the parameter generation circuit 3. When “i<K” is true, the inner code iterative control circuit 2 determines that the LDPC code sequence is in an abnormal state, for example, a state in which data out of synchronization is input thereto, and sets an abnormality detection flag A to 1.
(59) The inner code iterative control circuit 2 then hands the abnormality detection flag A to the outer code decoding processing stop control circuit 5 in time with the handing of a temporary hard-decision sequence as the result of the decoding of the LDPC code from the inner code iterative decoding circuit 1 to the outer code decoding circuit 4 which executes decoding processing with the subsequent block code.
(60) Next, the inner code iterative decoding circuit 1 sets a temporary hard-decision sequence as the decoding result in Step S210, and outputs the set decoding result. Next, in Step S401, the outer code decoding circuit 4 selects a BCH code sequence part from the result of the decoding of the LDPC code, and performs syndrome operation first.
(61) When the BCH code sequence is included in a plurality of LDPC code sequences, the outer code decoding circuit 4 inputs all included parts. The outer code decoding processing stop control circuit 5 in this case receives, from the inner code iterative control circuit 2, the abnormality detection flag A for each of the plurality of LDPC code sequences as abnormality detection flags that correspond to the plurality of LDPC code sequences on a one-to-one basis.
(62) The outer code decoding circuit 4 normally performs, on the BCH code sequence part, the syndrome operation in Step S401, syndrome determination in Step S402, error position estimation processing using a Euclidean operation method or the like in Step S406, and error position locating and correction processing using Chien search or the like in Step S407, to thereby finish the series of error correction decoding processing steps.
(63) The series of steps is processing executed even when an error is uncorrectable. In processing of a block code high in correction capability, for example, a BCH code, in particular, error position estimation processing of Step S406 and error position locating and correction processing of Step S407 are large in processing amount.
(64) On the other hand, with a BCH code and other block codes, the range of the number of correctable errors is clear and, when the number of remaining errors is outside the range, uncorrectability is detected or the errors are incorrectly corrected. In the second embodiment, the abnormality detection flag A received by the outer code decoding processing stop control circuit 5 from the inner code iterative control circuit 2 is therefore used to estimate an error state in advance.
(65) Further reduction of power consumption is aimed in the second embodiment by, as described later, referring to the abnormality detection flag A to determine whether syndrome operation is to be stopped before the start of the operation or in the middle of the operation.
(66) Specifically, the outer code decoding circuit 4 executes syndrome operation of a BCH code sequence in Step S401 when the BCH code sequence is included in a plurality of LDPC code sequences. The outer code decoding processing stop control circuit 5 simultaneously counts the number of LDPC code sequences corresponding to the abnormality detection flag A that satisfies A=1, out of the plurality of LDPC code sequences in which the BCH code sequence is included.
(67) Next, with a syndrome of the BCH code sequence obtained, the outer code decoding circuit 4 first determines in Step S402 whether values of the syndrome are all zero, namely, whether there is no error. The outer code decoding circuit 4 proceeds to Step S403 when it is determined that values of the syndrome are all zero and that there is accordingly no error, and proceeds to Step S404 when it is determined that the syndrome is non-zero and that there is accordingly an error.
(68) When proceeding to Step S403, the outer code decoding circuit 4 determines that error correction by the inner code iterative decoding circuit 1 is complete, sets a BHC code input sequence as the result of the decoding, and ends the decoding processing.
(69) When proceeding to Step S404, on the other hand, the outer code decoding circuit 4 determines that an error remains because the syndrome is non-zero, and determines whether the count of flags each serving as the abnormality detection flag A and satisfying A=1 is higher than a determination count L set in advance. The outer code decoding circuit 4 proceeds to Step S405 when the count of flags each serving as the abnormality detection flag A and satisfying A=1 is higher than the determination count L, and proceeds to Step S406 when the count of flags each serving as the abnormality detection flag A and satisfying A=1 is equal to or lower than the determination count L.
(70) When proceeding to Step S405, the outer code decoding circuit 4 determines that correction by decoding with the BCH code which is the outer code is not possible, and ends the decoding processing. That is, when it is determined that correction is not possible, the decoding processing can be ended without executing the error position estimation processing of Step S406 and the error position locating and correction processing of Step S407.
(71) When the processing proceeds to Step S406, on the other hand, the error position estimation processing using a Euclidean operation method or the like in Step S406 and the error position locating and correction processing using Chien search or the like in Step S407 are executed, and the series of error correction decoding processing steps is then ended.
(72) As described above, the error correction decoding device according to the second embodiment has a configuration in which advance error situation estimation using abnormality detection flags is executed in the upstream inner code iterative control circuit, and whether to execute outer code decoding processing is determined in the downstream outer code decoding processing stop control circuit, based on the result of the estimation. As a result, the error correction decoding device according to the second embodiment can save power consumed in an uncorrectable state in which power consumption is large, by not being required to uselessly execute decoding processing for an error uncorrectable by the outer code decoding processing, in addition to having the effects of the preceding first embodiment.
(73) In the second embodiment, a case in which a BCH code sequence is included in a plurality of LDCP code sequences and whether to execute outer code decoding processing is determined after syndrome operation of the BCH code sequence is performed is described. However, the error correction decoding device according to the second embodiment is not limited to this processing.
(74) The error correction decoding device according to the second embodiment may also determine whether to execute outer code decoding processing before or in the middle of syndrome operation, by counting the number of flags each serving as the abnormality detection flag A and satisfying A=1, and comparing the counted number and the determination count L. Syndrome operation can be stopped before the start of the operation or in the middle of the operation when an error is determined to be uncorrectable, by employing this processing.
(75) When there are a BHC code sequence that is an outer code and an LDPC code sequence that is an inner code on a one-to-one basis, the outer code decoding processing stop control circuit 5 can execute control processing described below. That is, the outer code decoding processing stop control circuit 5 receives the abnormality detection flag A at the same time as the start of syndrome operation of the BCH code sequence, or before the start of the syndrome operation, from the inner code iterative control circuit 2, and determines whether to execute outer code decoding processing.
(76) When determining that the outer code decoding processing is not to be executed, the outer code decoding processing stop control circuit 5 stops the syndrome operation processing, determines that the error is uncorrectable by decoding with the BCH code that is an outer code, and can end the decoding processing.
(77) In the second embodiment described above, there is described a case in which control for stopping outer code decoding processing is performed by setting the abnormality detection flag A to A=1 when the iteration count at the time when the iterative decoding processing is ended is lower than the abnormality determination iteration count K, in determination of abnormal ending in the inner code iterative decoding processing. However, the error correction decoding device according to the second embodiment is not limited to this processing.
(78) Processing in which detail information, for example, the iteration count of the inner code at the time of abnormal ending, is handed from the inner code iterative control circuit 2 to the outer code decoding processing stop control circuit 5 may be executed. In this case, the outer code decoding processing stop control circuit 5 may perform finer control based on the iteration count of the inner code, in control of stopping processing for stopping outer code decoding processing, control of the stopping condition, and control for determining whether to stop during syndrome calculation or after a syndrome check.
(79) Although the outer code in the description of the second embodiment is a BCH code, it is to be understood that the same control processing is possible with an outer code that is a block code other than a BCH code, for example, a Reed-Solomon code.
(80) The functions in the error correction decoding devices according to the first and second embodiments described above are implemented by a processing circuit. The processing circuit implementing the functions may be a dedicated piece of hardware, or a processor configured to execute a program stored in a memory.
(81) When the processing circuit is a dedicated piece of hardware, the processing circuit 1000 corresponds to, for example, a single circuit, a composite circuit, a programmed processor, a parallel-programmed processor, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or a combination thereof. Functions of respective units in the inner code iterative decoding circuit 1, the inner code iterative control circuit 2, the parameter generation circuit 3, and the outer code decoding circuit 4 which are illustrated in
(82) When the processing circuit is the processor 2001, on the other hand, the functions of the respective units in the inner code iterative decoding circuit 1, the inner code iterative control circuit 2, the parameter generation circuit 3, the outer code decoding circuit 4, and the outer code decoding processing stopping control circuit 5 are implemented by software, firmware, or a combination of software and firmware. The software and the firmware are written as programs and stored in the memory 2002.
(83) The processor 2001 implements the functions of the respective units by reading and executing the programs stored in the memory 2002. That is, the error correction decoding devices each include the memory 2002 for storing a program for causing, when run by the processing circuit 2000, the steps illustrated in
(84) It is also understood that those programs cause a computer to execute the steps and methods described above for the respective units. In this case, the memory 2002 corresponds to, for example, a random access memory (RAM), a read only memory (ROM), a flash memory, an erasable programmable read only memory (EPROM), an electrically erasable and programmable read only memory (EEPROM), or other such non-volatile or volatile semiconductor memory. The memory 2002 also corresponds to, for example, a magnetic disk, a flexible disk, an optical disc, a compact disc, a MiniDisk, or a DVD.
(85) Some of the functions of the respective units described above may be implemented by a dedicated piece of hardware, and others thereof may be implemented by software or firmware.
(86) In this manner, the processing circuit can implement the function of each of the units described above by hardware, software, firmware, or a combination thereof.
REFERENCE SIGNS LIST
(87) 1 inner code iterative decoding circuit (iterative decoding circuit), 2 inner code iterative control circuit (first control circuit), 3 parameter generation circuit, 4 outer code decoding circuit, 5 outer code decoding processing stop control circuit (second control circuit)