Abstract:
A data recording and reproducing system adds a first error correcting code to input data to generate a first code block, encodes the first code block with a second error correcting code to generate a second code block, interleaves the second code block to generate a recording block, and records and reproduces the recording block via a partial response channel including a recording medium. An output signal from the partial response channel, and thus the second code block, is decoded; the decoded data and the reliability of the decoded data is determined, based on likelihood information obtained during iterative decoding; and the first error correcting code is decoded. The decoded data and the reliability information are supplied to the first error correcting code decoder.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
   This application is a U.S. continuation application filed under 35 USC 111(a) claiming benefit under 35 USC 120 and 365(c) of PCT International Application No. PCT/JP03/00920 filed on Jan. 30, 2003, which is hereby incorporated herein by reference. 

   BACKGROUND OF THE INVENTION 
   The present invention generally relates to data reproducing systems, and, more particularly, to a data reproducing system that can decode data with higher precision even if there are errors in the data. 
   Magneto-optical recording and reproducing devices that are data recording and reproducing systems include various kinds of devices, varying from image information recording and recording devices to computer-readable code recording devices. As magneto-optical recording media have a large capacity and high compatibility, and exhibit high reliability with such devices, magneto-optical recording and reproducing devices are rapidly spreading in the market. Especially, with optical disk recording devices, optical disk media are expected to have larger data recording capacities. 
   While the data recording density of recording media is becoming higher in optical disk recording devices, there is an increasing demand for a method of performing data recording and reproducing with higher precision. As such a method of recording and reproducing data with higher precision, there are techniques such as the low density parity check (LDPC) or a turbo decoding technique by which data are turbo encoded and are recorded on a recording medium, and the data reproduced from the recording medium are decoded. In accordance with such a method, the data stream to be recorded is temporarily rearranged and is then modulated. The modulated signals are recorded on a recording medium. At the time of reproduction, the modulated signals are reproduced from the recording medium. When the reproduced signals are decoded, a unit decoding process is iteratively carried out so as to reproduce the original data. 
   The above described turbo encoding involves codes with great encoding gain, and is now drawing more and more attention in the fields of communication technology. 
     FIG. 1  illustrates the structure of an optical disk device as an example of a data recording and reproducing device that records data on an optical disk such as a magneto-optical disk and reproduces the data through iterative decoding. In the following, the operation of the optical disk device is described, with reference to the accompanying drawings. 
   The data recording and reproducing device  100  shown in  FIG. 1  includes a recording system  110 , an optical disk  120  as a recording medium, and a reproducing system  130 . 
   The recording system  110  of the data recording and reproducing device  100  of  FIG. 1  includes an ECC (error correcting code) encoder  111 , an encoder unit  112 , and a laser driver circuit  116 . The encoder unit  112  encodes a data stream with error correcting codes through data encoding or the like. The error correcting codes are output from the ECC encoder  111 . The encoder unit  112  of the recording system  110  of the data recording and reproducing device  100  shown in  FIG. 1  includes an encoder  113 , a MUX and puncture unit  114 , and an interleaver (π)  115 . 
   Using input user data U k    160  as information symbols, the ECC encoder  111  generates corresponding check symbols from the information symbols. The ECC encoder  111  combines the user data  160  and the check symbols, and outputs them as error correcting codes. After generating the error correcting codes, the ECC encoder  111  may perform interleave and then output the error correcting codes. 
   At the time of decoding, the error correcting codes encoded by the ECC encoder  111  can correct an error that is caused in the error correcting codes through recording or reproducing performed on the recording medium. Such an error can be corrected by calculating the error location and the error value in the error correcting codes, which is the first method. If the location of an error caused in the error correcting codes is already known, the data at the error location may be regarded as lost, and lost correction may be performed, which is the second method. In general, a larger number of errors can be corrected in one error correcting code by the second method of lost correction than by the first method of error correction. To perform lost correction, however, the location of lost data needs to be detected in advance, as described above. 
   The encoder  113  generates a string of parity bits p k    162  corresponding to an ECC encoder output  161  to be recorded.  FIG. 2  shows an example structure of the encoder  113 . The encoder  113  shown in  FIG. 2  includes adders  201  and  202 , and delay elements  203  and  204 . The delay elements  203  and  204  may be formed with shift registers. The ECC encoder output  161  is input to the adder  201 , and is then combined with the outputs of the delay elements  203  and  204 . The output of the adder  201  is input to the delay element  203 . The adder  201  and the delay elements  203  and  204  constitute a feedback unit. Meanwhile, the parity bit string p k    162  is formed by the adder  202  adding the output of the adder  201  and the output of the delay element  204 . 
   The MUX and puncture unit  114  shown in  FIG. 1  combines the ECC encoder output  161  and the parity bit string p k    162  generated from the encoder  113  in compliance with predetermined rules, and thins out the obtained bit string in compliance with predetermined rules (a puncture function), thereby generating an encoded data bit string a i    163 . 
   The interleaver (π)  115  rearranges the order in the encoded data bit string a i    163  that is output from the MUX and puncture unit  114 , and thus generates another encoded data bit string c i    164 . 
   Based on the encoded data bit string c i    164 , the laser driver circuit  116  controls the quantity of laser beam emission, and writes the encoded data bit string c i    164  onto the optical disk  120 . 
   Meanwhile, the reproducing system  130  of the data recording and reproducing device  100  shown in  FIG. 1  includes an amplifier  131 , an automatic loop gain controller (or AGC: automatic gain controller)  132 , a low pass filter  133 , an equalizer  134 , an analog-to-digital converter (A/D converter)  135 , an iterative decoder  136 , a controller  137 , and an ECC decoder  138 . The iterative decoder  136  of the reproducing system  130  shown in  FIG. 1  has a memory on its input side. 
   A MO reproduction signal reproduced from the optical disk  120  by an optical head is subjected to waveform rectification through the amplifier  131 , the AGC  132 , the low pass filter  133 , and the equalizer  134 . If data recording is performed at such a high density as to cause waveform interference between two neighboring bits in the data recorded on the recording medium  120 , the reproduction signal  122  reproduced from the magneto-optical disk  120  can be equalized to a PR waveform (partial response waveform)  123 . Accordingly, the unit formed with the optical disk  120 , amplifier  131 , the AGC  132 , the low pass filter  133 , and the equalizer  134  can be regarded as a PR channel (partial response channel)  140 . The output signal  123  of the equalizer  134  can be regarded as an actually encoded signal, as the data passes through the PR channel (partial response channel)  140 . Thus, the output signal  161  of the ECC encoder  111  can be turbo encoded through the encoding function of the recording system  110  and the actual encoding function of the PR channel  140 . 
   The signal  123  that is waveform-equalized by the PR channel  140  is then converted into a digital value by the A/D converter  135 . Sampling values y i  that are sequentially output from the A/D converter  135  are stored in the memory in the iterative decoder  136 . The sampling values y i    124  stored in the memory are then iteratively decoded (turbo decoded) by the iterative decoder  136 . 
   As described above, the iterative decoder  136  has a decoding function that is compatible with the encoder  113  of the recording system  110  and the actual encoding function of the PR channel  140 .  FIG. 3  shows an example structure of the iterative decoder  136 . 
   The iterative decoder  300  shown in  FIG. 3  is an example of the iterative decoder  136 , and includes a memory  301 , a PR channel decoder  302 , a subtractor  303 , a deinterleaver (π −1 )  304 , a DEMUX and depuncture unit  305 , a code decoder  306 , a MUX and puncture unit  307 , a subtractor  308 , an interleaver (π)  309 , and a hard decision unit  310 . 
   The memory  301  stores the digital values converted by the A/D converter  135 , as described above. 
   The PR channel decoder  302  is a decoder that is compatible with the actual encoding function of the PR channel  140 , and a first a posteriori probability decoder that performs APP decoding (a posteriori probability decoding). 
   More specifically, the PR channel decoder  302  calculate a log-likelihood ratio L(c i *) that is the ratio of the probability P (c i =1|Y) of a bit c i  being 1 to the probability P (c i =0|Y) of the bit c i  being 0, on the condition that the input sampling value Y (y 1 , y 2 , . . . , y n ) sampled by the A/D converter  135  is detected. 
   The subtractor  303  subtracts a priori information La(c i ) based on the output of the code decoder  306 , from the likelihood information L(c i *) output from the PR channel decoder  302 , thereby obtaining external likelihood information Le(c). The stream of external likelihood information Le(c) sequentially obtained in this manner is rearranged by the deinterleaver (π −1 )  304 , and is then supplied to the DEMUX and depuncture unit  305 . The DEMUX and depuncture unit  305  divides the stream of likelihood information into a stream of likelihood information L(u k ) corresponding to a data bit u k  and a stream of likelihood information L(p k ) corresponding to a parity bit p k . 
   At the time of the dividing, the information subtracted by the MUX and puncture unit  114  of the recording system  110  shown in  FIG. 1  is added in accordance with the rules corresponding to the thinning (puncture) rules. This is called the “depuncture” function. 
   The code decoder  306  is compatible with the encoder  113  of the recording system  110  shown in  FIG. 1 , and serves as a second a posteriori probability decoder that performs APP decoding. 
   More specifically, based on the likelihood information L(u k ) corresponding to the data bit and the likelihood information L(p k ) corresponding to the parity bit, the code decoder  306  calculates a log-likelihood ratio L(u*) that is represented by the a posteriori probabilities (the probability of u k =1 and the probability of u k =0) with respect to the data bit, and a log-likelihood ratio L(p*) that is represented by the a posteriori probabilities (the probability of p k =1 and the probability of p k =0) with respect to the parity bit. 
   The stream of log-likelihood ratios L(u*) and the stream of log-likelihood ratios L(p*) sequentially output from the code encoder  306  are supplied to the MUX and puncture unit  307 . The MUX and puncture unit  307  integrates the stream of logarithmic likelihood ratios L(u*) and the stream of logarithmic likelihood ratios L(p*). 
   At the time of the integration, the MUX and puncture unit  307  performs information thinning in accordance with predetermined rules (a “puncture” function). As a result, the MUX and puncture unit  307  outputs likelihood information L(c*). The a priori information Le(c) to be supplied to the code encoder  306  (before the dividing into L(u k ) and L(p k )) is then subtracted from the above likelihood information L(c*) by the subtractor  308 . As a result, the external likelihood information La(c i ) is obtained. The external likelihood information La(c i ) is supplied as a priori information to the PR channel decoder  302  via the interleaver (π)  309 . 
   As described above, the iterative decoder  136  that has the PR channel decoder  302  and the code decoder  306  can iteratively perform decoding using the a priori information exchanged between the two decoders. This is called “iterative decoding”. 
   In this manner, based on the log-likelihood ratio L(u*) with respect to the data bit u k  output from the code decoder  306  when the iterative decoding is performed a predetermined number of times, the hard decision unit  310  determines whether the data bit u k  is 1 or 0. If the log-likelihood ratio L(u*) is greater than 0, the data bit u k  is determined to be 1. If the log-likelihood ratio L(u*) is smaller than 0, the data bit u k  is determined to be 0. The determination result is output as decoded data  153  representing the decoding result of the iterative decoder  136 . The decoded data  153  is transmitted to the controller  137 , which performs a CRC (cyclic redundancy check). Through the CRC, the controller  137  detects an error in the decoded data  153 , and determines whether a retry (“re-reproduction”) is necessary. 
   The decoded data  153  obtained by the iterative decoder  136  is transmitted to the ECC decoder  138 . If there is an error in the decoded data  153 , the ECC decoder  138  calculates the location and the value of the error in the error correcting code, and thus corrects the error. Alternatively, where the location of the error caused in the error correcting code is somehow known in advance, the data at the location of the error is regarded as lost, and lost correction is performed on the error. 
   As the recording density of a recording medium is increased, the signal quality (such as SNR or signal to noise ratio) decreases. Therefore, a decoding method with higher precision is always desired. Turbo decoding enables decoding with higher precision. However, there is a problem with turbo decoding, because encoded user data is recorded and is then decoded through iterative decoding, as shown in  FIG. 1 . With turbo decoding, the entire encoded data unit is adversely affected by noise that is short but has great amplitude. 
   Through the iterative decoding, an error caused during the recording or reproducing performed on the recording medium is scattered over the entire data unit that is turbo encoded. As a result, the error cannot be corrected through an ECC. 
   When the above described error is caused, the entire data unit that is turbo encoded may be regarded as lost data, and then error correction may be performed. However, a data unit that is turbo encoded is often a long data unit so as to achieve a great SNR improving effect through the decoding. Therefore, if such a long data unit is treated as lost data, the correct data in the turbo encoded data unit is regarded as lost data, resulting in unnecessary lost correction. Also, in a case where errors are often caused, correction cannot be performed through ECC decoding. 
   SUMMARY OF THE INVENTION 
   A general object of the present invention is to provide data recording and reproducing systems in which the above disadvantages are eliminated. 
   A more specific object of the present invention is to provide a data recording and reproducing system that can decode original data with high precision even when an error is caused in reproduced data. 
   The above objects of the present invention are achieved by a data recording and reproducing system that adds a first error correcting code to input data to generate a first code block, encodes the first code block with a second error correcting code to generate a second code block, interleaves the second code block to generate a recording block, and records and reproduces the recording block via a partial response channel including a recording medium. This system includes an iterative decoder that iteratively decodes an output signal from the partial response channel, and decodes the second code block; a preliminary decision and reliability detection unit that preliminarily determines decoded data and determines reliability of the decoded data preliminarily determined, based on likelihood information obtained in the middle of iterative decoding in the iterative decoder; and a first error correcting code decoder that decodes the first error correcting code. In this system, the preliminary decision and reliability detection unit supplies the decoded data preliminarily determined and the reliability information of the decoded data to the first error correcting code decoder. 
   In a turbo decoding operation, two decoders, a PR channel decoder and a code decoder, are normally used. Between the two decoders, decoded data are exchanged, and decoding is iteratively performed. 
   In this manner, once decoded data are iteratively decoded. As a result, an error or errors existing in the data might spread in the other data areas. To counter this problem, a hard decision process is carried out and the reliability of the data is determined, before the once decoded data is iteratively decoded, or using soft decision data that is being iteratively decoded, in accordance with the present invention. 
   A CRC or the like is then performed on the ultimate decoding result of the iterative decoder for an error or errors. If a number of errors exist in the ultimate decoding result, the result of the hard decision process that is determined to have high reliability is regarded as definite data, or the data that are determined to have low reliability is regarded as lost data. In the latter case, the ECC decoder performs lost error correction, thereby performing data decoding. 
   Accordingly, the spread of data errors due to noise caused through recording or reproducing performed on a recording medium is minimized, and lost correction can be performed by the ECC decoder or the like. Thus, data can be decoded with high precision. 
   The above and other objects and features of the present invention will become more apparent from the following description taken in conjunction with the accompanying drawings. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  illustrates the structure of an optical disk recording and reproducing system that utilizes a conventional iterative decoding technique; 
       FIG. 2  illustrates an example structure of the encoder that is used for conventional turbo encoding; 
       FIG. 3  illustrates the basic structure of a conventional iterative decoder; 
       FIG. 4  illustrates an iterative decoder as an embodiment of the present invention; 
       FIG. 5  illustrates an iterative decoder as another embodiment of the present invention; and 
       FIG. 6  illustrates examples of signals obtained in the embodiments of the present invention. 
   

   DESCRIPTION OF THE PREFERRED EMBODIMENTS 
   The following is a description of embodiments of the present invention, with reference to the accompanying drawings. 
     FIG. 4  illustrates the structure of an iterative decoder  400  as an embodiment of the present invention. The iterative decoder  400  shown in  FIG. 4  includes a memory  301 , a PR channel decoder  302 , a subtractor  303 , a deinterleaver (π −1 )  304 , a DEMUX and depuncture unit  305 , a code decoder  306 , a MUX and puncture unit  307 , a subtractor  308 , an interleaver (π)  309 , a hard decision unit  310 , and a preliminary decision and reliability detection unit  401 . The embodiment shown in  FIG. 4  has the same structure as the conventional iterative decoder  300  shown in  FIG. 3 , except for the preliminary decision and reliability detection unit  401 . The preliminary decision and reliability detection unit  401  includes a preliminary hard decision unit  402 , CRC circuits  403  and  404 , and a multiplexer  405 . 
   A reproduction signal y i    124  that is digitized by the A/D converter  135  shown in  FIG. 1  is temporarily stored in the memory  301 , as in the case described with reference to  FIG. 3 . While the reproduction signal y i    124  is being read out from the memory  301 , the PR channel decoder  302  first performs a posteriori probability decoding. The subtractor  303  then subtracts a priori information La(c i ) based on the output of the code decoder  306  from the likelihood information L(C i *) output from the PR channel decoder  302 . As a result, the external likelihood information Le(c) is obtained. The external likelihood information Le(c) is rearranged by the deinterleaver (π −1 )  304  and is supplied to the DEMUX and depuncture unit  305 . The DEMUX and depuncture unit  305  divides the sequentially input stream of likelihood information into a stream of likelihood information L(u k ) corresponding to a data bit u k  and a stream of likelihood information L(p k ) corresponding to a parity bit p k . The stream of likelihood information L(u k ) is a result of a soft decision made on a stream of user data. 
   Next, the operation of the preliminary decision and reliability detection unit  401  is described. 
   First, the preliminary hard decision unit  402  determines the soft decision result L(u k ) output from the DEMUX and depuncture unit  305 , using a predetermined threshold value. Thus, preliminary hard decision data  411  is obtained. At the same time, the preliminary hard decision unit  402  determines reliability information  412  as to the preliminary hard decision data  411 , and outputs the preliminary hard decision data  411  and the reliability information  412 . The determination of the reliability information is described later in detail. 
   The CRC unit  403  performs a CRC on the preliminary hard decision data  411  determined by the preliminary hard decision unit  402 . The CRC  404  performs a CRC on the decoded data  153  which is decoded by the hard decision unit  310  and is the ultimate iterative decoding result of the iterative decoder  400 . Based on the check result of the CRC unit  403  and the check result of the CRC unit  404 , the multiplexer  405  is controlled so that the preliminary hard decision data  411  and the reliability information  412  determined by the preliminary hard decision unit  402  or the decoded data  153  decoded by the hard decision unit  310  are transmitted from the multiplexer  405  to the ECC decoder  138 . This is carried out in the following manner. 
   1) In a case where an error is not detected or the number of errors detected is less than a predetermined number after the CRC unit  404  performs a CRC on the decoded data  153  output from the hard decision unit  310 , the multiplexer  405  selects the decoded data  153  and sends the decoded data  153  to the ECC decoder  138 . 
   2) In a case where the number of errors detected is greater than the predetermined number after the CRC unit  404  performs a CRC on the decoded data  153  output from the hard decision unit  310 , the CRC unit  403  performs a CRC on the preliminary hard decision data  411  determined by the preliminary hard decision unit  402 . If the CRC unit  403  determines that the preliminary hard decision data  411  does not contain an error, the multiplexer  405  selects the preliminary hard decision data  411 , and sends only the preliminary hard decision data  411  to the ECC decoder  138 . Here, the reliability information  412  is not sent to the ECC decoder  138 . 
   3) In a case where the number of errors detected is greater than the predetermined number after the CRC unit  404  performs a CRC on the decoded data  153  output from the hard decision unit  310 , the CRC unit  403  performs a CRC on the preliminary hard decision data  411  determined by the preliminary hard decision unit  402 . If the CRC unit  403  determines that the preliminary hard decision data  411  contains an error or errors, the multiplexer  405  selects the preliminary hard decision data  411  and sends the preliminary hard decision data  411  to the ECC decodes  138 . At the same time, the reliability information  412  is also sent as the lost flag of the preliminary hard decision data  411  to the ECC decoder  138 . 
   Using the hard decision data and/or the lost flag sent from the multiplexer  405 , the ECC decoder  138  performs error correction. If the lost flag is not sent, the ECC decoder  138  calculates the location and the value of the error in the error correcting code, and thus corrects the error. If the lost flag is sent, the ECC decoder  138  regards the data at the location represented by the lost flag as lost data, and performs lost correction. 
   In this manner, even when errors transmitted through noise are found in a decoding system that performs iterative decoding such as turbo decoding, the decoding is combined with ECC or the like, so as to perform accurate decoding. 
     FIG. 5  illustrates the structure of another embodiment of the present invention. In  FIG. 5 , the same components as those in  FIG. 4  are denoted by the same reference numerals as those in  FIG. 4 . 
   The embodiment shown in  FIG. 5  is the same as the embodiment shown in  FIG. 4 , except that the preliminary decision and reliability detection unit  401  has a memory  406  that stores the preliminary hard decision data  411  and the reliability information  412 . 
   In the embodiment shown in  FIG. 4 , the CRC unit  404  performs a CRC on the decoded data  153  output from the hard decision unit  310 , and, according to the result of the CRC, a CRC on the preliminary decision data  411  output from the preliminary hard decision unit  402  is performed, as described in the above procedures 1) through 3). In this embodiment, on the other hand, the preliminary hard decision unit  402  first operates to determine the preliminary hard decision data  411  and the reliability information  412 . A CRC is then performed on the preliminary hard decision data  411 , and the preliminary hard decision data  411  and the reliability information  412  are stored in the memory  406  provided in the preliminary decision and reliability detection unit  401 . The CRC unit  404  then performs a CRC on the decoded data  153  that is output from the hard decision unit  310  and is the ultimate decoded result of the iterative decoder  500 . Depending on the result of the CRC, the preliminary hard decision data  411  and the reliability information  412  stored in the memory  406  may be output to the ECC decoder  138 , or the decoded data  153  is output to the ECC decoder  138 . 
   Referring now to  FIG. 6 , the method of determining the reliability is described. 
     FIG. 6  illustrates examples of the likelihood information L(uk). In  FIG. 6 , white round dots (“no errors”) indicate cases where the decoded data  153  as the ultimate decoding result of the iterative decoder  400  shown in  FIG. 4  and of the iterative decoder  500  shown in  FIG. 5  does not contain an error. The black squares (“errors”) indicate cases where the decoded data  153  as the ultimate decoding result of the iterative decoder  400  of  FIG. 4  and of the iterative decoder  500  shown in  FIG. 5  contains an error or errors. 
   The preliminary hard decision unit  402  shown in  FIGS. 4 and 5  can make a preliminary hard decision on the likelihood information L(u k ), with the value 0 being the threshold value. If the likelihood information L(u k ) is equal to or greater than 0, with the value 0 being the threshold value, the decoded data  153  is determined to be “1”. If the likelihood information L(u k ) is smaller than 0, the decoded data  153  is determined to be “0”. This result may be stored in the memory  406 , and the reliability of the data on which the preliminary hard decision has been made may also be determined. 
   If the likelihood information L(uk) in the middle of decoding by the iterative decoder  400  of  FIGS. 4 and 5  has a threshold value of +4 or greater, or −4 or smaller, the preliminary hard decision data  411  is determined to have high reliability. If the likelihood information L(uk) in the middle of decoding by the iterative decoder  400  of  FIG. 4  and of the iterative decoder  500  shown in  FIG. 5  has a threshold value between −4 and +4, the preliminary hard decision data  411  is determined to have low reliability, in the example shown in  FIG. 6 , the threshold values are +4 and −4. However, some other values may be used as the threshold values, depending on the recording and reproducing systems employed. 
   In  FIG. 6 , the six white dots  601  through  606  of “no errors”, and the four black squares  611  through  614  of “errors” have absolute values of 4 or smaller. Accordingly, those dots and squares should be considered to represent low reliability. Meanwhile, the other white dots and black squares should be considered to represent high reliability. 
   As described above, the preliminary hard decision unit  402  can make a preliminary hard decision and a reliability decision on the likelihood information L(u k ) in this embodiment. 
   It should be noted that the present invention is not limited to the embodiments specifically disclosed above, but other variations and modifications may be made without departing from the scope of the present invention.