Abstract:
The present invention provides an error correction method that is used in full response read channels. This method includes the steps of: obtaining a read signal from a storage medium and converting the read signal into channel bits that are recorded in the storage medium, such as a DVD disk, in the NRZI format; and using the Viterbi detector to determine whether bit state transitions in the channel bits occur within a predetermined run-lengths of the RLL codes. If transitions occur within the predetermined run-lengths, then the values of the bits with state transitions are corrected.

Description:
REFERENCE TO RELATED APPLICATION  
         [0001]    This application claims the benefit of priority under 35U.S.C.§119(a) of Taiwan Patent Application No. 090107694, titled “Error Correction Method in Full Response Read Channels”, filed on Mar. 30, 2001.  
         BACKGROUND OF THE INVENTION  
         [0002]    1. Field of the Invention  
           [0003]    The invention generally relates to a signal processing method in read channels, and in particular to an error correction method in full response read channels.  
           [0004]    2. Description of the Related Art  
           [0005]    Optical storage systems sometimes use analog peak detection to perform data processing. However, when the recording density of the storage medium increases, the analog peak detection becomes less reliable. This is because ISI (Inter-Symbol Interference) occurs among sequential bits when the bandwidth of the read channel is lower than the bandwidth of the transmitted signals. Serious ISI results in timing jitters. Therefore, as the recording density increases, ISI causes serious timing jitters that make phase locking more difficult.  
           [0006]    Information codes can be recorded on disks in various formats, such as NRZ (Non-Return-to-Zero) and NRZI (Non-Return-to-Zero-Inverse). The recording format of DVD disks is the NRZI format. In CD/DVD storage systems, there are usually two different structures in read channels in the prior art. They are the PRML (Partial Response Maximum Likelihood) channel and the full response channel. Although the PRML channel can increase the recording density, this method requires perfect equalization of the channel signals so that the shape of the channel signals matches a predetermined PR (Partial Response) target waveform. Furthermore, ISI can not be removed in the PRML channel. The channel signals are equalized to provide a target pulse waveform, and the target pulse waveform has default values at specific sampling points. The ISI on the target pulse waveform is controlled into an expected form and is combined into a pulsed detection method. Such a method determines the occurrence of signal pulses.  
           [0007]    In addition, the PRML channel requires ML (Maximum Likelihood) detection to restore correct data from sampled signals in each pulse cycle. The ML detection is usually implemented by a Viterbi detector. The Viterbi detector is a device using the Viterbi algorithm invented by Andrew Viterbi in 1967. Using the Viterbi detector in a PRML channel is well known by those who are skilled in the art. In the PRML channel, reproduced signals of a disk are processed by a PR equalizer and a Viterbi detector.  
           [0008]    With reference to FIG. 1, it shows a block diagram of the Viterbi detector. The Viterbi detector primarily includes a Branch Matrices Computing Circuit  10 , an Add/Compare/Select Circuit  11 , and a Path Memory Unit  12 . The Branch Matrices Computing Circuit  10  receives and computes an equalizer output signal J from an equalizer (not shown) in an optical storage system with at least one non-zero equalization target value, such as four equalization target values {0, 0.25, 0.75, 1}, to generate branch matrices B000 1 , B000 2 , B001 1 , B011 1 , B100 1 , B110 1 , B111 1 , and B111 2 . The branch matrices at each time are B000 1 =B000 2 =(0-J) 2 , B001 1 =B100 1 =(0.25-J) 2 , B011 1 =B110 1 =(0.75-J) 2  B111 1 =B111 2 =(1.0-J) 2 , respectively. Therefore, the Branch Matrices Computing Circuit  10  comprises four subtractors, four multipliers, and four buffers. The subtractors are used to compute J-0, J-0.25, J-0.75, and J-1. And the multipliers are employed to compute the squares. Then, the computed results are stored in the buffers. The branch matrices represent the similarity between the equalization output signals processed by the equalizer and the ideal equalized signals. Moreover, the Add/Compare/Select Circuit  11  uses the branch matrices B000 1 , B000 2 , B001 1 , B011 1 , B100 1 , B110 1 , B111 1 , and B111 2  to perform addition, comparison, and selection. Then, the Add/Compare/Select Circuit  11  generates path control signals H000 and H111. Further, the Path Memory Unit  12  is controlled by the path control signals H000 and H111 to output detector signals.  
           [0009]    Since the Branch Matrices Computing Circuit  10  and Add/Compare/Select Circuit  11  of the Viterbi detector in the PRML channel involve floating operations, the hardware circuit design has to take the number of bits into account for floating numbers. This directly complicates the design of the subtractors, multipliers, adders, and comparators and increases the required area of the VLSI.  
           [0010]    In a full response read channel  20  as shown in FIG. 2, reproduced signals obtained from a recording medium  6  by a light signal reading system (not shown) are sent to an equalizer  1 . Then the signals are sent through a data slicer  2 , a PLL (Phase Lock Loop)  3 , and a sampler  4  to produce NRZI signals to EFM Plus Demodulator  7 . Sometimes, errors in the NRZI signals can be readily checked by the RLL (Run Length Limited) codes. The RLL codes have two constraints d and k, which define the minimum and maximum run-lengths of continuous 1 and 0 in the data stream. In particular, d constraint is used to control high frequency contents of the data stream while k constraint is used to control low frequency contents. Therefore, the RLL codes eliminate a lot of transitions in data transmissions. Signals in full response read channels can be restored without interference. That is, the signal processing in a full response read channel is not influenced by ISI at all.  
           [0011]    [0011]FIG. 3 shows an example of reproduced signals that contain errors. It shows the relations among data codes, recorded data waveforms, corresponding optical disk pits, ideal reproduced signals, ideal NRZI, actually reproduced signals, and actual NRZI. In the actual NRZI signals, errors occurring at points a and c can be readily detected because the signals at points a and c violate the RLL codes.  
           [0012]    Generally, there are two types of errors that occur in data transmission, storage, and restoration. The first type is random error. It occurs in a single bit when the bit is replaced with the corresponding value. The second type is burst error. It occurs in a continuous series of bits. The length and frequency of the burst error may be random or regular. In either type, the occurrence of errors is usually determined according to the storage medium or channel being used. Thus, it is hard to list all conditions that violate the RLL codes if one uses a table to implement error corrections.  
           [0013]    The EFM Plus Demodulation requires that no transitions, i.e. pit-to-land or land-to-pit transitions, occur between 2 and 10 bits of interval. These limits of continuous run-lengths are usually expressed as RLL constraints (d,k)=(2,10). If the RLL codes are utilized, some errors in NRZI signals can be corrected before performing the EFM Plus Demodulation to effectively improve system efficiency.  
         SUMMARY OF THE INVENTION  
         [0014]    One purpose of the present invention is to perform error corrections by implementing the Viterbi algorithm in full response read channels that do not have ISI. In particular, the invention applies to all full response read channels encoded with RLL codes.  
           [0015]    Another purpose of the invention is to use an error correction circuit implemented by the Viterbi algorithm instead of a table, which can not list all situations that violate the RLL codes.  
           [0016]    Therefore, the invention utilizes a Viterbi detector to implement an Error Correction Circuit with RLL codes and to correct NRZI errors in full response read channels such as the CD/DVD systems. The invention discloses an error correction method, which applies the Viterbi algorithm to full response read channels. The invention corrects random errors in NRZI signals with RLL constraint d=2.  
           [0017]    Due to the CD/DVD RLL constraint d=2, possible states of the Viterbi detector are decreased from eight to six because two of them are not allowed by the RLL constraints. In full response read channels, the channel bit of NRZI signals can only be 0 or 1. Therefore, by using the Viterbi detector to implement Error Correction Circuit with RLL codes, the simplification of the reference amplitude greatly reduces the complexity of the Branch Matrices Computing Circuit and the Add/Compare/Select Circuit than the Viterbi detector in PRML systems. Consequently, the implementation of the invention by a VLSI is more favorable. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0018]    The present invention will become more fully understood from the detailed description given hereinafter illustration only, and thus are not limitative of the present invention, and wherein:  
         [0019]    [0019]FIG. 1 is a block diagram of the Viterbi detector;  
         [0020]    [0020]FIG. 2 is a block diagram of the read channel in an optical storage system;  
         [0021]    [0021]FIG. 3 is a schematic view of reproduced signals containing errors, showing the relations among data codes, recorded data waveforms, corresponding optical disk pits, ideal reproduced signals, ideal NRZI, actually reproduced signals and actual NRZI;  
         [0022]    [0022]FIG. 4 shows a block diagram of a preferred embodiment of the invention;  
         [0023]    [0023]FIG. 5 is a state diagram of the preferred embodiment, where RLL constraint d=2;  
         [0024]    [0024]FIG. 6 is a Trellis diagram of FIG. 5;  
         [0025]    [0025]FIG. 7 shows the Branch Matrices Computing Circuit in the preferred embodiment;  
         [0026]    [0026]FIG. 8 shows the Add/Compare/Select Circuit in the preferred embodiment; and  
         [0027]    [0027]FIG. 9 shows the path memory unit in the preferred embodiment. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0028]    In read channels, reproduced NRZI signals from a DVD disk vary from 3T to 11T and errors may occur at any place. It is very difficult to list all conditions that violate RLL codes by using a table. Therefore, to design an NRZI error correction circuit, the invention applies the Viterbi algorithm in PRML systems to full response read channels.  
         [0029]    With reference to FIG. 4, the invention adds an Error Correction Circuit with RLL codes  5  between a sampler  4  and an EFM Plus Demodulator  7  to correct errors in the NRZI signals. In one embodiment of the invention, the error correction circuit corrects random errors in the NRZI signals according to the RLL constraint d=2. Thus, if the input signals in the full response read channels are completely unstructured, there are 8 possible channel states; namely S000, S0001, S0010, S011, S100, S101, S110, and S111. Two states S010 and S101 are not allowed in the full response read channels with RLL constraint d=2. Thus, there are only six possible channel states in the full response read channels.  
         [0030]    As shown in FIG. 5, when the reference amplitude is zero (0), under the RLL codes with constraint d=2, state S000 is kept invariant, state S100 transits to state S000, state S110 transits to state S100, and state S111 transits to state S110. On the other hand, when the reference amplitude is one (1), state S111 is kept invariant, state S0111 transits to state S111, state S0001 transits to state S011, and state S000 transits to state S001.  
         [0031]    [0031]FIG. 6 is a Tellis diagram of FIG. 5, the state at time t is transited to the next state at time t+1 according to a reference amplitude (0 or 1).  
         [0032]    The following paragraphs further explain the preferred embodiment, which uses a Viterbi detector to implement Error Correction Circuit with RLL codes.  
         [0033]    A. Branch Matrices Computating Circuit  
         [0034]    In the preferred embodiment of the invention, the values of the NRZI signals are either 0 or 1 only. Therefore, the design of the Branch Matrices Computing Circuit  10  in full response read channels is relatively simpler than the one in PRML systems. At each time, the branch matrices are:  
         B001=B000 2 =B100 1 =B110 1 =NRZI  
         B001 1 =B011 1 =B111 1 =B111 2 =not NRZI  (1)  
         [0035]    Subsequently, as shown in FIG. 7, the Branch Matrices Computing Circuit  10  can be implemented by an inverter  101  instead of subtractors and multipliers. And the branch matrices B000 1 , B000 2 , B001 1 , B0011 1 , B100 1 , B110 1 , B111 1 , and B111 2  are either 0 or 1.  
         [0036]    B. Add/Compare/Select Circuit  
         [0037]    Please refer to FIG. 8, the initialization of path matrices P000, P001, P011, P100, P110, and P111 used in the Add/Compare/Select Circuit  11  is P000=P001=P011=P100=P110=P111=0. The branch matrices B000 1 , B000 2 , B001 1 , B011 1 , B100 1 , B110 1 , B111 1 , and B111 2  generated from the Branch Matrices Computing Circuit  10  according to Equation (1) are used to generate the path matrices. The Add/Compare/Select Circuit  11  compares P000(t)+B000 1 (t) with P100(t)+B000 2 (t) and compares P011(t)+B111 1 (t) with P111(t)+B111 2 (t), then determines the output value of path control signals H000(t) and H111(t) as follows:  
         H000        (   t   )       =     {             0           1                      when                   P000        (   t   )         +       B000   1          (   t   )                     when                   P100        (   t   )         +       B000   2          (   t   )                 =         min        {         P000        (   t   )       +       B000   1          (   t   )         ,       P100        (   t   )       +       B000   2          (   t   )           }            
          H111        (   t   )         =     {             0           1                      when                   P011        (   t   )         +       B111   1          (   t   )                     when                   P111        (   t   )         +       B111   2          (   t   )                 =     min        {         P011        (   t   )       +       B111   1          (   t   )         ,       P111        (   t   )       +       B111   2          (   t   )           }                                       
 
         [0038]    The Add/Compare/Select Circuit  11  then outputs the path control signals H000 and H111 to the Path Memory Unit  12  and refreshes the six path matrices P000(t+1), P001(t+1), P011(t+1), P100(t+1), P110(t+1), and P111(t+1). They are computed in the following way:  
           P 000( t+ 1)=min { P 000( t )+ B 000 1 ( t ), P 100( t )+ B 000 2 ( t )};  
           P 001( t+ 1)= P 000( t )+ B 001 1 ( t );  
           P 011( t+ 1)= P 001( t )+ B 011 1 ( t );  
           P 100( t+ 1)= P 110( t )+B100 1 ( t );  
           P 110( t+ 1)=P111( t )+B110 1 ( t ); and  
           P 111( t+ 1)=min { P 011( t )+B111 1 ( t ), P 111( t )+ B 111 2 ( t )}.  
         [0039]    In particular, due to the decrease in the number of channel bits, the adder  111 , the comparator  112  and the selector  113  in the Add/Compare/Select Circuit  11  are less complicated and occupy smaller areas.  
         [0040]    C. Path Memory Unit  
         [0041]    As shown in FIG. 9, the Path Memory Unit  12  includes n detection sequence switches  21   1 ˜ 21   n  and (n−1) delay elements  22   1 ˜ 22   n−1  among adjacent detection sequence switches, respectively. The output of each delay element after a unit of delay time becomes the input of the next detection sequence switch. The path control signals H000 and H111 from the Add/Compare/Select Circuit  11  are inputted to each of the detection sequence switches  21   1 ˜ 21   n . The detection sequence switches are switched according to the Trellis diagram shown in FIG. 7.  
         [0042]    According to the preferred embodiment of the invention, using a Viterbi detector to implement an Error Correction Circuit with RLL constraint d=2 in full response read channels can reduce random errors in the NRZI signals. According to experimental results, the Viterbi detector can reduce errors by about 15%.  
         [0043]    In addition, the invention applies the Viterbi detector to full response read channels that are not affected by ISI at all. The input values of the Branch Matrices Computing Circuit and the Add/Compare/Select Circuit are either 0 or 1, greatly reducing the complexity in circuit designs and the number of necessary channel bits. The invention can be applied to not only CD/DVD systems but also all full response read channels with RLL codes.  
         [0044]    The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.