Abstract:
A gray code encoding and decoding method applied to holographic storage devices is proposed. The encoding method uses gray levels of a 2D detector to encode a certain amount of original bits of the original data, and then sends them to a spatial light modulator (SLM) for encryption. The decoding method corrects the received gray levels to the original gray levels, and then compares the maximum gray level with the original gray levels to decode the original gray level into binary data. The proposed encoding and decoding method can better make use of storage locations of the 2D detector and get a code rate close to 1.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a gray code encoding and decoding method and, more particularly, to a gray code encoding and decoding method applied to holographic storage devices. 
     2. Description of Related Art 
     Holographic storage devices make use of a kind of optical storage technique to store a large amount of binary data, and have high transmission speeds. 
     As shown in  FIG. 1 , U.S. Pat. No. 6,549,664 discloses a holographic storage device to store data. This holographic storage device comprises a spatial light modulator (SLM)  16 , an optical component  13 , and a storage medium  20 . The SLM  16  has a page  18  with millions of pixels. A signal beam  10  carrying data is encrypted by the SLM  16  and is then illuminated onto the storage medium  20 . A reference beam  12  is also incident upon the storage medium  20  to interfere with the signal beam  10  and generate an interference pattern that is recorded in the storage medium  20 . The page  18  can thus be stored as a hologram in the storage medium  20 . 
       FIG. 2  shows a prior art apparatus for retrieving a holographically stored page from the storage medium  20 . As shown in  FIG. 2 , an address beam  15  identical to the reference beam  12  is incident upon the storage medium  20  to produce an image beam  22 . The image beam passes through an optical component  21  and is then incident upon a 2D detector  24 . The 2D detector  24  has detector pixels  26 , which can produce electronic signals corresponding to the received image beam  22 . Therefore, holograms stored in the storage medium  20  can be built on the 2D detector  24 . 
     Next, the 2D detector  24  decodes the received hologram. The condition for determining “0” or “1” of the 2D detector  24  disclosed in the U.S. Pat. No. 6,549,664 is achieved by predefining the number of 1&#39;s in the hologram. The remaining regions are all 0&#39;s. There are no error correction rules between blocks. This manner, however, wastes part of recording positions of the 2D detector for encoding. Moreover, the problem of code rate exists. 
     Accordingly, the present invention aims to propose a gray code encoding and decoding method more perfectly applied to holographic storage devices so as to solve the above limits and drawbacks in the prior art. 
     SUMMARY OF THE INVENTION 
     An object of the present invention is to provide a gray code encoding method and decoding method applied to holographic storage devices. The proposed methods encode original bits of original data according to a third-dimension gray level of a 2D detector, correct wrong gray levels to original gray levels, and decode them to get original binary data, thereby reducing errors when performing error correction code (ECC) to the 2D detector, lowering the probability of exceeding the minimum correctable range of ECC, and enhancing the data storage capacity of the storage area. The problem of code rate can thus be improved, and no more than four storage locations of the 2D detector will be wasted. 
     To achieve the above object, the present invention provides a gray code encoding method applied to holographic storage devices, which comprises the steps of: providing a binary original data having a plurality of original bits; adding a first start bit, a second start bit and an end bit into the binary original data to form a bit array, defining gray levels of the first start bit, the second start bit, and the end bit respectively as a first start gray level gray( 1 ), a second start gray level gray( 2 ), and an end gray level, wherein gray( 1 ) and gray( 2 ) differ by a certain gray level Δ; and retrieving a certain amount of the original bits from the original data and performing gray code encoding to this certain amount of the original bits according to the first start bit, the second start bit, the end bit, gray( 1 ), gray ( 2 ), and the end gray level. 
     To achieve the above object, the present invention also provides a gray code decoding method applied to holographic storage devices, which comprises the steps of: defining a maximum gray level, a first start gray level gray( 1 ), and a second start gray level gray( 2 ) with gray( 1 ) and gray( 2 ) differing by a certain gray level Δ; receiving a gray level data and correcting the gray level data to original gray levels according gray( 1 ), gray( 2 ) and the maximum gray level; decoding the original gray levels into a binary original data according to the maximum gray level by determining the original data to be a binary digit of “1” when the original gray level is larger than a half of the maximum gray level and determining the original data to be a binary digit of “0” when the original gray level is smaller than a half of the maximum gray level. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The various objects and advantages of the present invention will be more readily understood from the following detailed description when read in conjunction with the appended drawing, in which: 
         FIG. 1  shows a prior art apparatus for holographically storing a data page; 
         FIG. 2  shows a prior art apparatus for retrieving a holographically stored page; 
         FIG. 3  is a flowchart of the gray code encoding method applied to holographic storage devices of the present invention; 
         FIG. 4  is a bar chart of bit versus gray level of the present invention; and 
         FIG. 5  is a flowchart of the gray code decoding method applied to holographic storage devices of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
       FIG. 3  is a flowchart of the gray code encoding method applied to holographic storage devices of the present invention. Reference is made to  FIG. 3  as well as  FIGS. 1 and 2 . The encoding method of the present invention discloses the encoding process before binary data are transmitted to an SLM  16  for encryption and then translated into bright and dark dots. A page  18  of the SLM  16  is assumed to be able to store data of n pixels. A 2D detector  24  is assumed to have N bits, and thus has 2 N  gray levels. The maximum gray level is 2 N −1. The gray level 2 N-1  is the threshold of “0” and “1” of the original data. 
     First, a binary original data having a plurality of original bits (e.g., 01011 . . . ) is provided (Step S 1 ). A first start bit b( 1 ), a second start bit b( 2 ), and an end bit b(n) are then added into the binary original data to form a bit data array (Step S 2 ). The first start bit b( 1 ), the second start bit b( 2 ), and the end bit b(n) are known, and their gray levels are a first start gray level gray( 1 ), a second start gray level gray( 2 ), and an end gray level gray(n), respectively. The gray( 1 ) and gray ( 2 ) differ by a certain gray level Δ. Next, a certain amount of the original bits are retrieved from the binary original data (Step S 3 ). The total bit number of this certain amount of the original bits, the first start bit, the second start bit, and the end bit is smaller than or equal to the bit number n of the page  18  of the SLM  16 . If there are remaining original bits, they are reserved in the bit data array (Step S 4 ). Subsequently, gray code encoding is performed to this certain amount of original bits according to the first start gray level gray( 1 ), the second start gray level gray( 2 ), and the end gray level gray(n) (Step S 5 ). Finally, the original bits that have been gray code encoded are transmitted to the SLM  16  for encryption (Step S 6 ). 
     The gray code encoding rules for this amount of original bits will be further illustrated below. A bit of this amount of the original bits and its subsequent two adjacent bits are assumed to be b(i), b(i+1), and b(i+2), and gray levels of b(i), b(i+1) and b(i+2) are defined as gray(i), gray(i+1) and gray(i+2). Assume that the first start bit b( 1 )=0, the second start bit b( 2 )=0, and the end bit b(n)=0. 
     A. When gray( 2 )&gt;gray( 1 ), i.e., gray( 2 )=gray( 1 )+Δ, the following gray code encoding rules need to be met:
         I. If b(i)=b(i+1), then gray(i+1)=gray(i)±Δ:
           If b(i)=b(i+1)=0, then gray(i+1)=gray(i)+Δ;   If b(i)=b(i+1)=1, then gray(i+1)=gray(i)−Δ.   
           II. If b(i)≠b(i+1), then gray(i+1)=the maximum gray level−gray(i)=(2 N −1)−gray(i):
           If b(i)=0 and b(i+1)=1, then gray(i+1)=(2 N −1)−gray(i);   If b(i)=1 and b(i+1)=0, then gray(i+1)=(2 N −1)−gray(i).   
               

     B. When gray( 2 )&lt;gray( 1 ), i.e., gray( 2 )=gray( 1 )−Δ, the following gray code encoding rules need to be met:
         I. If b(i)=b(i+1), then gray(i+1)=gray(i)+Δ:
           If b(i)=b(i+1)=0, then gray(i+1)=gray(i)−Δ;   If b(i)=b(i+1)=1, then gray(i+1)=gray(i)+Δ.   
           II. If b(i)≠b(i+1), then gray(i+1)=the maximum gray level−gray(i)=(2 N −1)−gray(i):
           If b(i)=0 and b(i+1)=1, then gray(i+1)=(2 N −1)−gray(i);   If b(i)=1 and b(i+1)=0, then gray(i+1)=(2 N −1)−gray(i).   
               

     With the above two encoding rules A and B, gray levels in transition situations are defined. That is, each original bit b(i) has 2 N  gray levels, and four gray thresholds, a first gray threshold th 1 , a second gray threshold th 2 , a third gray threshold th 3 , and a fourth gray threshold th 4 , 0&lt;th 1 &lt;th 2 &lt;2 N-1 &lt;th 3 &lt;th 4 &lt;2 N −1, are defined for these 2 N  gray levels.  FIG. 4  is a bar chart of bit versus gray level of the present invention, in which:
         I. When b(i)=b(i+1), if the gray level gray(i) exceeds the threshold, i.e., gray(i)□th 1  or th 2 □gray(i)&lt;2 N-1  or 2 N-1 &lt;gray(i)&lt;th 3  or th 4 □gray(i)&lt;2 N −1, then gray(i+1)=gray(i).   II. When b(i)=b(i+1)=b(i+2), if gray(i)=gray(i+1)□th 1  or th 3 &gt;2 N-1 , then gray(i+2)=gray(i+1)+Δ.   III. When b(i)=b(i+1)=b(i+2), if gray(i)=gray(i+1)□th 4  or th 2 &lt;2 N-1 , then gray(i+2)=gray(i+1)−Δ.       

       FIG. 5  is a flowchart of the gray code decoding method applied to holographic storage devices of the present invention. Reference is made to  FIG. 3  as well as Figs. The decoding method of the present invention decodes the gray level gray(i) received by the 2D detector  24 . The 2D detector  24  has N bits, and thus has 2 N  gray levels with a maximum gray level of 2 N −1. In the decoding method, a maximum gray level 2 N −1, a first start gray level gray( 1 ), and a second start gray level gray( 2 ) are defined with gray( 1 ) and gray( 2 ) differing by a certain gray level Δ (Step S 1 ). The 2D detector  24  then corrects the received gray level data to original gray levels according to gray( 1 ), gray( 2 ), and the maximum gray level 2 N −1 (Step S 2 ). Next, the original gray levels are decoded into a binary data (e.g., 0101 . . . ) according to the maximum gray level (Step S 3 ). When the original gray level is larger than 2 N-1  (a half of the maximum gray level), the original data is determined to be a binary digit of “1”; when the original gray level is smaller than 2 N-1  (a half of the maximum gray level), the original data is determined to be a binary digit of “0”. 
     The decoding rules of the present invention for gray levels will be further illustrated below. A gray level of the gray level data and its two adjacent gray levels are defined as gray(i), gray(i−1) and gray(i+1): 
     When |gray(i)−gray(i−1)|≦Δ, if |gray(i)−gray(i−1)|≦Δ or (2 N −1−gray(i))=gray(i+1), then gray(i)=gray(i−1)+Δ; 
     When (2 N −1−gray(i))=gray(i−1), if |gray(i)−gray(i+1)|≦Δ or (2 N −1−gray(i))=gray(i+1), then gray(i)=2 N −1−gray(i−1). 
     With the above decoding rules, thresholds in transition situations are defined. There are 2 N  gray levels in the gray level data, and four gray thresholds, a first gray threshold th 1 , a second gray threshold th 2 , a third gray threshold th 3 , and a fourth gray threshold th 4 , 0&lt;th 1 &lt;th 2 &lt;2 N-1 &lt;th 3 &lt;th 4 &lt;2 N −1, are defined for these 2 N  gray levels. A gray level of the gray level data and its two adjacent gray levels are defined as gray(i), gray(i−1) and gray(i+1): 
     When gray(i)=gray(i−1) and gray(i) is one of the four gray thresholds but gray(i−2) is not one of the four gray thresholds, then gray(i)=gray(i−2)=the threshold; 
     When gray(i−2)=gray(i−1)=th 1  and gray(i)&lt;2 N , then gray(i)=gray(i−1)+Δ; 
     When gray(i−2)=gray(i−1)=th 2  and gray(i)&lt;2 N , then gray(i)=gray(i−1)−Δ; 
     When gray(i−2)=gray(i−1)=th 3  and gray(i)&gt;2 N , then gray(i)=gray(i−1)+Δ; 
     When gray(i−2)=gray(i−1)=th 4  and gray(i)&gt;2 N , then gray(i)=gray(i−1)−Δ. 
     To sum up, the present invention discloses a gray code encoding method and decoding method applied to holographic storage devices. The proposed methods make use of a third-dimension gray level of a 2D detector for encoding and decoding to reduce errors when performing error correction code (ECC) to the 2D detector, lower the probability of exceeding the minimum correctable range of ECC, and enhance the data storage capacity of the storage area. Not only errors between pixels can be corrected, the problem of code rate can also be improved. Moreover, storage locations of the 2D detector won&#39;t be wasted. 
     Although the present invention has been described with reference to the preferred embodiment thereof, it will be understood that the invention is not limited to the details thereof. Various substitutions and modifications have been suggested in the foregoing description, and others will occur to those of ordinary skill in the art. Therefore, all such substitutions and modifications are intended to be embraced within the scope of the invention as defined in the appended claims.