Abstract:
The invention discloses a two-dimensional code and its decoding method and the printing publication for applying the two-dimensional code. The area of the positioning points located at the four corners of the code in the two-dimensional code characters is larger than that of the data points. The code symbol is arranged repeatedly on the basement and seamless joint as code matrix including at least two same code symbols, and the adjacent code has the same positioning point. The two-dimensional code is printed on the printing publication to be identified by the device. The decoding method comprises the following steps of: reading the two-dimensional code by using a reading device; detecting the margin of each point to obtain the margin image; parsing the margin image to obtain the closed border; computing the area within the closed border in order to select the positioning points; matching the positioning points in the rectangle mode; grouping the data points after selecting one separate code character; reconstructing the array of data points; and recovering the code words.

Description:
FIELD OF THE INVENTION 
       [0001]    This invention involving a kind of two-dimensional code and decoding method and has been applied to the printing publication. 
       BACKGROUND OF THE INVENTION 
       [0002]    Customarily people always read the traditional publication such as book, newspaper and so on by eyes, which will be tired easily by long time using, this way of getting information is rather boring, and it is impossible for the people who is blind or has eye disease to read. Thus the voice reading publication has appeared recently, using two-dimensional voice reading device to decode the content of one book and pronounce, so that the readers can listen, improving the effect of reading or memory, it is also convenient for the people who is blind or has eye disease to read. 
         [0003]    Usually the main form of the two dimensional code is plain code. On the voice reading publication, the reader can touch-read the two-dimensional code symbol that is printed clearly between words and paragraphs or some visible places on the page. This kind of plain code can only appear on the blank places of the page and usually as the form of single code, the beauty of the page will be influenced more or less. And the plain code usually will be printed a little big so they can be found easily, although the requirement for printing precision is rather low, the reader&#39;s head needs to be big for touch-reading. 
         [0004]    On the market the two-dimensional code voice reading device has appeared and used the conventional two-dimensional code to mark phonetic places but its amount of the phonetic index is limited so that the different publication needs using the same code, resulting in the mistakes of phonetic content, because the phonetic file of the reading device is corresponding to the target publication. 
       SUMMARY OF THE INVENTION 
       [0005]    The object of this invention is: providing a kind of two-dimensional code and its decoding method adapting to store data, convenient for reading and having easy decoding calculation, and the publication with the multi-media data index information using this two-dimensional code, the two-dimensional code was designed to meet the requirement of the conventional printing condition of the publication, so it is more convenient and reassuring to use. 
         [0006]    To achieve the object, this invention firstly discloses a two-dimensional code, its code symbol is comprised of array of bar code cells with different optical reflectance on the basement; the said code symbol is rectangle, wherein the said bar code cells in the said symbol are solid dots with equal space arrangement and the cells located at the four corners of the bar code symbol are the positioning point used to define and recognize the border, the rest cells are data points, the area of the said positioning point is larger than that of data points. 
         [0007]    The said two-dimensional code, the said data point cells are all included in the rectangle frame consisting of linking of the said adjacent positioning point cells&#39; centers. The said code symbol is arranged repeatedly on the basement and seamless joint as code symbol matrix including at least two same code symbols, and the adjacent code has the same positioning point. 
         [0008]    The said two-dimensional code, the optimal size of said bar code cell is solid dot, the diameter of said positioning point cell is double than that of data point cell. 
         [0009]    The said two-dimensional code, the said code symbol includes 10×10 bar code cells, except the positioning point, every adjacent 8 data points constitute a group to represent one code word; the coordinates of the said positioning point cells are respectively (0,0), (9,9), (0,9) and (9,9); in the chessboard coordinate system stipulated by the positioning point, the data point cells are divided into 12 groups that respectively represent one code word; the unit coordinates of the first group Include (1,0), (2,0), (0,1), (1,1), (2,1), (0,2), (1,2), (2,2); the unit coordinates of the second group include (3,0), (4,0), (5,0), (6,0), (3,1), (4,1), (5,1), (6,1); the unit coordinates of the third group include (7,0), (8,0), (7,1), (8, 1), (9,1), (7,2), (8,2), (9,2); the unit coordinates of the forth group include (3,2), (4,2), (2,3), (3,3), (4,3), (2,4), (3,4), (4,4); the unit coordinates of the fifth group include (5,2), (6,2), (5,3), (6,3), (7,3), (5,4), (6,4), (7,4); the unit coordinates of the sixth group include (0,3), (1,3), (0,4), (1,4), 90,5), (1,5), (0,6), (1,6); the unit coordinates of the seventh group include (8,3), (9,3), (8,4), (9,4), (8,5), (9,5), (8,6), (9,6); the unit coordinates of the eighth group include (2,5), (3,5), (4,5), (2,6), (3,6), (4,6), (3,7), (4,7); the unit coordinates of the ninth group include (5,5), (6,5), (7,5), (5,6), (6,6), (7,6), (5,7), (6,7); the unit coordinates of the tenth group include (0,7), (1,7), (2,7), (0,8), (1,8), (2,8), (2,9), (3,9); the unit coordinates of the eleventh group include (3,8), (4,8), (5,8), (6,8), (3,9), (4,9), (5,9), (6,9); the unit coordinates of the twelfth group include (7,7), (8,7), (9,7), (7,8), (8,8), (9,8), (7,9), (8,9). 
         [0010]    Secondly, this invention provides a printing publication, printing with words and pictures for normal reading and the two dimensional code for device recognition and the pictures and words for normal reading has been printed, the said code symbol of the two dimensional code is comprising of array of bar code cells with different optical reflectance on the basement; the said code character is rectangle wherein the said bar code cells in the symbol are solid dots with equal space arrangement and the cells located at the four corners of the bar code symbol are the positioning point used to define and recognize the border, the rest cells are data points, the area of the said positioning point is larger than that of the data point. 
         [0011]    The said publication, the said data point cells are all included in the rectangle frame consisting of linking of the said adjacent positioning point cells&#39; centers. The said code symbol is arranged repeatedly on the basement and seamless joint as code symbol matrix including at least two same code symbols, and the adjacent code has the same positioning point. The said publication, the preferred shape of said bar code cell is solid dot, the diameter of said positioning point cell is double than that of data point cell. 
         [0012]    The said publication, the said code symbol can not be seen by eyes in normal reading environment; or compare with the normal printing words and pictures, the said code symbol can not be seen easily. 
         [0013]    The said publication, the said bar code cell includes deep color cell and light color cell to represent respectively the value of binary system 1 and 0, the said light color cell can be shown directly by the background color of paper or the other print media. 
         [0014]    The deep color cell of the said code symbol using infrared ink printing that shows different reflectivity to the light of infrared spectrum but the same reflectivity to the light of visible spectrum compared with the light color cell, and the other printing contents covering the said code symbol use the ink printing can show transmission to the light of the infrared spectrum. 
         [0015]    The said printing publication, the information carried by the two dimensional code includes the multi-media data index coding corresponding with the different parts of the said publication and the publishing species index coding. 
         [0016]    The said multi-media data index coding corresponding with the different parts of the said publication and the publishing species index coding includes 6 functional sections consisting of fixed length of digit numbers: language number, classification number, class index number, page sequence number, code sequence number and error check number, wherein the language number is the digit code name of language stipulated by the language kinds of the publication; classification number is the digit code name of publication classification with some language according to the book species; class index number represents the concrete order of some classified book of the publication with some language, that can be numerical order; the page sequence number is the content of index coding according to the page digit of the said publication; code sequence number is the number according with the number of two dimensional code and marking sequence used in the pages including two dimensional code; error check number is to check the correct errors of the index coding. 
         [0017]    The said multi-media data index coding corresponding with the different parts of the said publication and the publishing species index coding includes 16 bits decimal number, wherein the length of every functional section is respectively: language number 1 bit, classification number 2 bits, class index number 6 bits, page sequence number 4 bits, code sequence number 2 bits and error check number 1 bit. The value of the said publishing species index coding and the parity bit of the said multi-media data index coding are calculated by the frontal 15 decimal numbers of the coding, calculation method: respectively and in sequence putting the frontal 15 decimal numbers from the multi-media data index of publication as the cardinal number, “1” and “2” as weighted factors, and respectively multiply with decimal number of cardinal number, and then product sum is divided by modulus 10, wherein every section of cardinal number multiplies with weighted factor, if the product is more than 10, then to add the tens digit of this product with single digit together to get every product sum, when every product sum is less than 10, to add 10 to the product sum and then be divided by modulus 10, and the difference between its remainder and 10 is the value of parity bit. 
         [0018]    Thirdly, this invention provides a decoding method of the two-dimensional code including the following steps: 
         [0019]    1) reading the code symbol by using a reading device, getting the gray code symbol image; 
         [0020]    2) making binary processing to the gray code symbol image and get binary image; 
         [0021]    3) parsing the binary image, detecting the margin of each point to obtain the margin image; 
         [0022]    4) parsing the margin image to track its closed border and give up all the non-closed borders to obtain the closed border; 
         [0023]    5) parsing the image of closed border, computing the area within every closed border in order to select the positioning points; 
         [0024]    6) matching the positioning points in the rectangle mode to select one single image of the code symbol; 
         [0025]    7) grouping the data points comes from the image of code symbol 
         [0026]    8) reconstructing the array of data points; 
         [0027]    9) recovering the code word. 
         [0028]    The said method, the process of selecting positioning point cell in the said step 5) includes: 
         [0029]    51) calculating the area within every closed border in order to count the area histogram within all closed borders and find the most concentrated area value S0 from the area histogram; 
         [0030]    52) the closed border, area&#39; center is S0 and according with error range of the regulation, that is data point cell; the closed border, area is known multiple of S0 and according with error range of the regulation, that is positioning point cell. 
         [0031]    The said method, when the known bar code sell&#39;s shape is circular point, before the step 5, including step 5′) the process of recognizing the circular point, which includes: 
         [0032]    51′) adding the pixel abscissa of all the border points of the closed border, and then use the cumulative total divided by the sum of border points to get the pixel abscissa u of the center point of the closed border; adding the pixel ordinate of all the border points, and then the cumulative total divided by the sum of border points to get the pixel ordinate v of the center point of the closed border; 
         [0033]    52′) according to the pixel coordinate (u, v) of the center point of the closed border to find the diameter of the closed border in the four directions, and can get four length value respectively d1, d2, d3, d4; 
         [0034]    53′) the average diameter is d=(d1+d2+d3+d4)/4, define the round&#39;s standard degree N=|d−d1|/d+|d−d2|/d+|d−d3|/d+|d−d4|/d; 
         [0035]    54′) calculating the value N of each closed border, discarding the closed border whose value N is more than the threshold value T n  according to actual statistic result, and the rest closed border is considered as the border of bar code circular point cell. 
         [0036]    The said method, the process of matching the positioning point cell in the rectangle mode in the said step 6 includes: 
         [0037]    61) choosing the closest positioning point to the center of image as the first reference point; 
         [0038]    62) choosing the other closest positioning point to the first reference point as the second reference point; 
         [0039]    63) the side consisting of the two reference points is the reference border of target rectangular, the first reference point as the origin, calculating the second reference point&#39;s polar coordinate (r 0 , θ 0 ); 
         [0040]    64) calculating the first reference point&#39;s polar coordinate (r i , θ i ) relative to the rest positioning points, iε[1˜n], n is the sum of positioning point cells; 
         [0041]    65) the first reference point as center, relative to the reference side, to calculate polar coordinate of the other positioning points about the contour-rectangle of possible four code symbols; 
         [0000]      P 1 =(r 0 ,θ 0 ), 
         [0000]        P   2 =( r   0 *1.414,θ 0 +45),  P   3 =( r   0 *1,θ 0 +90) 
         [0000]        P   4 =( r   0 *1.414,θ 0 +135) 
         [0000]        P   5 =( r   0 *1,θ 0 +180) 
         [0000]        P   6 =( r   0 *1.414,θ 0 +225) 
         [0000]        P   7 =( r   0 *1,θ 0 +270) 
         [0000]        P   8 =( r   0 *1.414,θ 0 +315) 
         [0042]    Wherein: P 0  is the first reference point, P 1  is the second reference point, the angle of all the polar coordinates is in [0,360]; 
         [0043]    66) finding the matching polar coordinate from P 1  to P 8  in the calculation result of Step 64), the matching points P 0 , P 1  and P 2 , P 3  composing the first target rectangle, if the matching is not successful, then P 0  and P 3 , P 4  and P 5  will compose the second target rectangle, if still not successful, then the matching points P 0  and P 5 , P 6  and P 7  will compose the third target rectangle, if not successful again, then the matching points P 0 , P 1  and P 8 , P 7  will compose the fourth target rectangle; if still can not be matched, then the decoding is failed. 
         [0044]    The said method, the grouping process of the data point in the said step 7) includes: 
         [0045]    71) defining a closed quadrilateral according to the four-point coordinates of positioning point, 
         [0046]    72) judging whether the data point is within this quadrilateral or not, the data point within the quadrilateral belongs to the current code symbol. The method of judging whether one point is within the quadrilateral of the said Step 72) includes: respectively judging whether one point is within the two groups of corresponding sides of the quadrilateral or not; if yes, this point is within the quadrilateral; if no, this point is not within the quadrilateral; setting the linear equation of the two sides are y=k 1 *x+b 1 ; y=k 2 *x+b 2 ; the condition of point (x 0 , y 0 ) within the two sides is: (k 1 *x 0 +b1−y 0 )*(k 2 *x 0 +b 2 −y 0 )&lt;0. 
         [0047]    The said method, the process of reconstructing the data point&#39;s matrix in the said Step 8) includes: 
         [0048]    81) setting the unit module&#39;s coordinate of four-corner positioning point, and then setting chessboard coordinate of each bar code cell; 
         [0049]    82) according to coordinate correcting formula, calculating the corresponding coordinate of bar code chessboard according to the center coordinate of each data point. 
         [0050]    This invention has provided the following advantageous effects by using the above technology solution: 
         [0051]    The two-dimensional code of this invention uses the positioning point whose area is more than data point at the four corners of the code symbol, and the array of the code symbol has the same positioning point, without the requirement of two-dimensional code for quiet zone, the same code can be printed repeatedly and seamless joint as code matrix, it is very convenient to gain code; simplifying decoding calculation of the bar code and the code can be printed more closely and smaller to improve the coding efficiency. The two-dimensional code of this invention does not need to be seen clearly by eyes and not need to occupy empty page, so it will not affect the printing and typesetting of the publication and be convenient for using. The application of this invention&#39;s two-dimensional code is very easy and it is quick to read data, highly reliability and low bit error rate. The requirement for device is simple, so benefit for popularization and application. 
         [0052]    The publication using the two-dimensional code of this invention can be read by the reader conveniently because of the large printing area using the same code with repetition array, and without the action “focus on”, the reader can be placed freely but always in the range of code. When using repeated large area printing, if the words covering the alignment area of the two-dimensional code, some two-dimensional code can emerge totally between the words and paragraphs; or using different ink to let the reader produce perspective effect on the printing content covering the bar code so that the two-dimensional code can be read conveniently. Because the two-dimensional code of this invention can no-repeated code all the voice index number of the whole publication, let the publication use this kind of two-dimensional code totally possessing the quantity condition to become a new kind of publication. As the decoding algorithm computation is small, and the decoding time is shorter, the low-cost hardware can be used to reduce the cost of publication with the two-dimensional code of this invention. Unit module of the two-dimensional code possesses two kinds of color, the code can assure the legibility only if there is enough difference between the foreground color and background color&#39;s brightness value; the background color can directly use the ground color of paper or other printing media to reduce the printing cost. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0053]      FIG. 1  is the schematic diagram of single code symbol of this invention. 
           [0054]      FIG. 2  is the schematic diagram of multi-code adjacent repeated arrangement of this invention. 
           [0055]      FIG. 3  is the decoding flow chart of the two-dimensional code of this invention. 
           [0056]      FIG. 4  is the original image of the two-dimensional code of this invention achieved by using the reader. 
           [0057]      FIG. 5  is the enhanced image of the original image of the Graph 4. 
           [0058]      FIG. 6  is the binary image of the original image of the Graph 5. 
           [0059]      FIG. 7  is the definition schematic diagram of the adjacent pixel of some pixel when checking the border. 
           [0060]      FIG. 8  is the border image when border checking the binary image of Graph 6. 
           [0061]      FIG. 9  is the schematic diagram to calculate the round standard degree of the closed border image. 
           [0062]      FIG. 10  is the schematic diagram about the result of selecting the positioning point in the decoding process. 
           [0063]      FIG. 11  is the schematic diagram of rectangle matching the positioning circular point in the decoding process. 
           [0064]      FIG. 12  is the schematic diagram about the rectangle matching result of the positioning circular point. 
           [0065]      FIG. 13  is the circular point layout chart of the bar code symbol by decoding reconstruction. 
       
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
       [0066]    Embodiment of the invention will now be described with reference to the accompanying Figures. 
         [0067]    The two-dimensional code of this invention, its bar code cell of the code symbol can use circle point or the solid dots with other shape. Every black point represents a bar code cell, every corresponding white point also is a bar code cell, if the value of the black point is 1, then the value of the white point is 0, and vice versa. The white point needs not be printed but directly using the ground color of the printing media such as paper and so on. 
         [0068]    The diameter of the black point needs to be big enough and the specific printing should base on the printing machine. Using RS coding to assure enough error correcting capability. The decoding computation is small, so it is convenient for the low-cost MCU operation. 
         [0069]    The two-dimensional code of this invention can be printed as hiding code that you can not see the code symbol under the light except using special equipment or specific light. The two-dimensional code of this invention also can support plain code that is easy to find by eyes, because the hiding code can be amplified to print, or arrange in the arrays (equivalent to the size of the words) and enlarge the black point. When printing with plain code, the multi-code arrangement can reduce the requirement of “focus on”. The total side length of the code needs to be as small as possible. 
         [0070]    According to the  FIG. 1  and  FIG. 2 , the  FIG. 1  is the schematic diagram of single code symbol of this invention, the  FIG. 2  is the schematic diagram of multi-code adjacent repeated arrangement of this invention. The big black point at the four corners of the code symbol in  FIG. 1  is the recognition and positioning characteristic, the small circle point is the bar code cell to represent data, the diameter of the big circular point can be double than that of the small circular point, the big circular point is always deep color, the deep color of the small circular point represents 1, the light color represents 0; the every 8 adjacent circular point marked as the same kind image represents one code word, one code symbol possesses 12 code words, respectively be marked as code word 1 code word 12 from left to right and from up to down, the code word, the coordinate of the code word in the symbol and the bit sequence arrangement of the code word all be defined as the following layout chart of code word: 
         [0000]    
       
         
               
               
             
               
               
             
           
               
                   
               
               
                 Sequence 
                   
               
               
                 number of 
                 The coordinate of the code word in the symbol is(x, y) 
               
               
                 code word 
                 and the bit sequence arrangement(bit 7~bit 0) 
               
               
                   
               
             
             
               
                   
               
             
          
           
               
                 1 
                 (1, 0), (2, 0), (0, 1), (1, 1), (2, 1), (0, 2), (1, 2), (2, 2) 
               
               
                 2 
                 (3, 0), (4, 0), (5, 0), (6, 0), (3, 1), (4, 1), (5, 1), (6, 1) 
               
               
                 3 
                 (7, 0), (8, 0), (7, 1), (8, 1), (9, 1), (7, 2), (8, 2), (9, 2) 
               
               
                 4 
                 (3, 2), (4, 2), (2, 3), (3, 3), (4, 3), (2, 4), (3, 4), (4, 4) 
               
               
                 5 
                 (5, 2), (6, 2), (5, 3), (6, 3), (7, 3), (5, 4), (6, 4), (7, 4) 
               
               
                 6 
                 (0, 3), (1, 3), (0, 4), (1, 4), (0, 5), (1, 5), (0, 6), (1, 6) 
               
               
                 7 
                 (8, 3), (9, 3), (8, 4), (9, 4), (8, 5), (9, 5), (8, 6), (9, 6) 
               
               
                 8 
                 (2, 5), (3, 5), (4, 5), (2, 6), (3, 6), (4, 6), (3, 7), (4, 7) 
               
               
                 9 
                 (5, 5), (6, 5), (7, 5), (5, 6), (6, 6), (7, 6), (5, 7), (6, 7) 
               
               
                 10 
                 (0, 7), (1, 7), (2, 7), (0, 8), (1, 8), (2, 8), (2, 9), (3, 9) 
               
               
                 11 
                 (3, 8), (4, 8), (5, 8), (6, 8), (3, 9), (4, 9), (5, 9), (6, 9) 
               
               
                 12 
                 (7, 7), (8, 7), (9, 7), (7, 8), (8, 8), (9, 8), (7, 9), (8, ) 
               
               
                   
               
             
          
         
       
     
         [0071]    The coding capacity of one code symbol including 12 bytes can rationally distribute the length of the data code and error correcting code. The same code is repeatedly arranged in the horizontal and vertical direction to improve the hitting rate, the adjacent two codes share two big positioning circular point so producing seamless joint code and improving the area effect to the maximum extent. 
         [0072]    Starting to decode after gaining the image of the two-dimensional code symbol of this invention. For example, please consult the decoding flow chart of  FIG. 3 , the specific steps include: image enhancement, binary image, margin checking, closed border tracing, circular point recognizing, positioning circular point selecting, rectangle matching the positioning circular point, data point grouping, data point matrix reconstruction, error correcting and reduction of the code word. 
         [0073]    The following is the detailed decoding processing: 
       1. Image Enhancement 
       [0074]    If it is in demand, image enhancing the original image of  FIG. 4  to improve the recognition rate of the code and then producing the image enhancement of Figure. The calculation of the image enhancement can use USM (Unsharp Mask) that is familiar to the people in the digital image processing field, the principle is first to deal with the original image by two-dimensional gauss low-pass and then get the blurry image, then reduce this blurry image from the original image to get the image with enhanced contrast ratio. Suppose the original image is F(x, y), then the enhancement image is V(x, y)=F(x, y)+K×(F(x, y)−U(x, y)), wherein K is the intensification factor, the empirical value is 1˜4, the effect of K is more enhanced, more distinct, but the noise also will be enlarged in the image. 
       2. Binary 
       [0075]    Binary processing the enhancement image, setting a threshold value T(0&lt;T&lt;255), the brightness of pixel is more than T belongs to be white, other pixel belongs to be black because dynamic range of the pixel luminance value has enlarged after the enhanced image, background brightness approaches to the maximum value 255, the pixel brightness composing the circular point approaches to the minimum value 0, thus it is very easy to choose a fixed or dynamic threshold value T. The image of  FIG. 6  can be obtained after binary processing. 
       3. Margin Checking 
       [0076]    Margin checking the binary processing image, the definition of margin pixel is: the pixel whose value is 0 and the adjacent 8 pixels includes non-zero pixel. The adjacent pixel&#39;s definition of some pixel is as the  FIG. 7 ; the pixel with code 0, the code of its adjacent 8 pixels is respectively from 1 to 8. 
         [0077]    Marked as the maximum brightness 255 if one pixel is margin pixel, or marked as 0. Margin checking all the pixels in the binary image can get the margin image as shown in  FIG. 8 . 
       4. Closed Border Tracing 
       [0078]    The operation project of closed border tracing is the margin image produced from the border checking of the last step, including the following steps:
   A) scanning the margin image by the main direction of row (i.e. from the left to right, from the up to down), the first margin pixel gained by scanning as the starting pixel of the border tracing, this process ends if there is no margin pixel;   B) putting the coordinate of starting pixel into the queue Q and marked as 0 to represent that it has been traced;   C) judging whether the adjacent 8 pixels of the starting pixel have margin pixel or not, if yes, then freely choosing one pixel as the starting point for next tracing and jump to last step B; if no, this tracing ends, the coordinate list in the queue Q will be a closed border, that is the border of candidate targeted circular point, storing the coordinate list of the queue Q and empty it, then jump to last step A.   
 
         [0082]    The border of the circular point image has been all checked after this process ending, and the check result mixed into some noise black point at the same time. 
       5. Circular Point Recognizing 
       [0083]    The aim of this step is to eliminate some noise data from the checking result of the Step 4, that is to give up the non-circular closed border, and the judgment basis of noise data is the circular geometric feature. If the code symbol uses the two-dimensional code of this invention and its cell is the solid dot with other sizes, then do not implement this step. As shown in  FIG. 9 , to one closed border, firstly adding the abscissa of all the border point and then the accumulative total divided by the total amount of border point to get center point&#39;s abscissa u of the closed border, and then adding the ordinate of all the border point, the accumulative total divided by the total amount of border point to get center point&#39;s ordinate v, using the center point&#39;s coordinate of the closed border to scan the diameter of closed border in the four directions, respectively getting four length values d1, d2, d3, d4, suppose the average diameter is d=(d1+d2+d3+d4)/4, define the round&#39;s standard degree N=|d−d1|/d+|d−d2|/d+|d−d3|/d+|d−d4|/d, the value of N is smaller, then the reliability of the closed border is round is higher. Calculating the value of N to every closed border, discarding the closed border whose value of N is more than some threshold value T n , the rest closed border is considered as the border of bar code circular point. 
       6. Positioning Circular Point Selecting 
       [0084]    This process selects the positioning circular point from the circular points have been recognized. Please refer to  FIG. 10 , firstly count the histogram of circular point&#39;s area to find area value S 0  of the most centralized distributed area histogram, and one range with the S 0  as the center corresponding to be the area of data circular point, and the area of positioning circular point is in the range with the 4*S 0  as the center, according to this dividing the area histogram into two parts, one part corresponding to data circular point, one part corresponding to the positioning circular point. This kind of calculation based on the count is steady because there are 96 data points in one code symbol, according to the statistical value the amount of deep color circular points is 48, so the area histogram can not appear the unstable statistical result leaded by too small amount of the circular point. 
         [0085]    If the code symbol uses the two-dimensional code of this invention, its cell is the solid dot with other non-round size, when implementing this step, firstly calculating the area within every closed border and then count the histogram of every closed border area, finding area value S 0  of the most centralized distributed area histogram, and that corresponding to one range with the S 0  as the center is the area of data circular point, and the area of positioning point is several times than that of data point, this multiple can be defined according to the size of positioning point and data point determined as prior. According to this extracting two parts from the area histogram, one part corresponding to data circular point with S 0  as the center, one part corresponding to positioning circular point with the several times of S 0  as the center. This kind of method judges the noise data according to the area size of closed border, some closed border with too big or too small areas without statistic characteristic will be discarded. 
       7. Rectangle Matching the Positioning Circular Point 
       [0086]    Four positioning circular points confirm one independent code symbol, this process makes sure which positioning circular points confirm the code symbol according to the precondition that the positioning circular points at the four corners of every code compose one rectangle. 
         [0087]    The process is as follows: 
         [0088]    a) choosing the closest positioning point to the center of image as the first reference point; 
         [0089]    b) choosing the other closest positioning point to the first reference as the second reference point; 
         [0090]    c) the side consisting of the two reference points is the reference border of target rectangular, the first reference point as the origin, calculating the second reference point&#39;s polar coordinate (r 0 , θ 0 ); 
         [0091]    d) calculating the first reference point&#39;s polar coordinate (r i , θ i ) relative to the rest positioning points, Iε[1˜n], n is the sum of positioning point cells; 
         [0092]    e) the first reference point as center, relative to the reference side, to calculate polar coordinate of the other positioning points about the contour-rectangle of possible four code symbols; 
         [0000]      P 1 =(r 0 ,θ 0 ), 
         [0000]        P   2 =( r   0 *1.414,θ 0 +45),  P   3 =( r   0 *1,θ 0 +90) 
         [0000]        P   4 =( r   0 *1.414,θ 0 +135) 
         [0000]        P   5 =( r   0 *1,θ 0 +180) 
         [0000]        P   6 =( r   0 *1.414,θ 0 +225) 
         [0000]        P   7 =( r   0 *1,θ 0 +270) 
         [0000]        P   8 =( r   0 *1.414,θ 0 +315) 
         [0093]    Wherein: P 0  is the first reference point, P 1  is the second reference point, the angle of all the polar coordinates is in [0,360]; 
         [0094]    f) finding the matching polar coordinate from P 1  to P 8  in the calculation result of Step d), the matching points P 0 , P 1  and P 2 , P 3  compose the first target rectangle, P 0  and P 3 , P 4  and P 5  compose the second target rectangle, the matching points P 0  and P 5 , P 6  and P 7  compose the third target rectangle, the matching points P 0 , P 1  and P 8 , P 7  will compose the fourth target rectangle. 
       8. Data Point Grouping 
       [0095]    After the four positioning circular points of the code have been confirmed, using four coordinates of the positioning circular point to define a closed quadrangle, data point within the quadrangle belongs to the data point of the current code. Judging whether one point is within the quadrangle can be implanted by judging whether one point is within the two opposite edges of the quadrangle in twice, the judging method is: 
         [0000]    Suppose the linear equation of the two side is: y=k 1 *x+b 1 ; y=k 2 *x+b 2 ; the condition of point (×0, y0) is within the two sides: 
         [0000]      ( k   1   *x   0   +b 1 −y   0 )*( k   2   *x   0   +b   2   −y   0 )&lt;0. 
       9. Data Point Matrix Reconstruction 
       [0096]    Suppose the nominal coordinate of the positioning circular point at the four corners of the bar code is respectively (0,0), (20,0), (0,20) and (20,20); according to the coordinates of these four positioning circular points and the following coordinate correcting formula to calculate the nominal coordinate of the data circular point in the bar code: x′=k 0 *x+k 1 *x*y+k 2 *y+k 3 ; y′=k 4 *x+k 5 *x*y+k 6 *y+k 7 ; 
         [0000]    (x′, y′) is the nominal coordinate of the bar code circular point, (x, y) is the center coordinate of the circular point in the image, inserting the nominal coordinate of the positioning circular point at the four corners of the bar code and their coordinate of the image in the above formula, calculated  8  eight linear equation, solving the equation to get the result k 0 ˜k 7 , and then inserting k 0 -k 7  in the equation to get the coordinate transformation equation, and then inserting the center coordinate of every data point of the image in this equation, calculated the nominal coordinate of this data point of this bar code, because the said coordinate transformation puts the positioning origin mapping in the top left corner as the origin of the target rectangle, so the nominal coordinate value of every data point in the bar code is odd, the coordinate value after transformation needs to be integer to the nearest odd number 10 Reduction of the code word and error correcting. 
         [0097]    As shown in  FIG. 13 , the said step 9 obtained reconstructing data point matrix, according to the inverse process of the codeword layout in the coding process to reduce code word, using Reed-solomon correcting algorithm and according to decoding parameter corresponding to the coding parameter to error correct the code word obtained from step 8. 
         [0098]    With the development of computer technology and storing technology, publication with words and pictures always accompany with corresponding multi-media audio and video data. Books always are divided into some parts according to chapter and at the same time including page number, the reader can choose to read different chapters according to the contents of the book; the multi-media audio and video data corresponding to the books also can be divided into some corresponding parts, the reader also can choose the corresponding parts to play according to the index. Also, some publication can pronounce some words or be translated to be another word, this kind of translation and phonetic notation also can be stored by using multi-media methods, and matching with index. Using the two-dimensional code of this invention, the index of this multi-media data can be printed in the corresponding places of the books, for example in the contents of the books, and/or the first page of different chapters in the books, or different places of the page. At the same time the index of this multi-media data can be read by multi-media playing device and chosen to the playing paragraph automatically. 
         [0099]    The two-dimensional code of this invention used in the publication, printed as the shading of page with the array of code symbol, and other word contents covering the code, thus it is not necessary to focus on when the reading device is reading the code symbol but always obtaining the code symbol between lines, and the page typesetting is beautiful. 
         [0100]    When the two-dimensional code of this invention used as the index of the multi-media data, using the unified coding method to make all kinds of different publication have the unique and unified code, this kind of standard unified code is convenient for the spread and application of the multi-media data publication. 
         [0101]    The programming structural of the standard two-dimensional code publication species index coding and multi-media data index coding corresponding to the different parts in the said publication includes: 
         [0102]    The content of every two-dimensional code all consists of 16 bits decimal number, divided into 6 functional sections, every section has fixed digit number length including: language number, classification number, class index number, page sequence number, code sequence number, error check number. 
         [0103]    For example the multi-media index coding information of one publication is as follows: 
         [0000]    
       
         
               
               
               
             
               
               
               
             
           
               
                   
               
             
             
               
                 Language number 
                 classification number 
                 class index number 
               
               
                   
               
               
                 1 
                 10 
                 100258 
               
               
                   
               
             
          
           
               
                 Page sequence number 
                 code sequence number 
                 error check number 
               
               
                   
               
               
                 0035 
                 12 
                 9 
               
               
                   
               
             
          
         
       
     
       Wherein: 
       [0104]    The language number is the language digital code specifically defined for the two-dimensional code complication of the publication, the length of the language number is 1 bit decimal number, divided into Chinese, English, French, German, Russian, Spanish, other languages and 2 candidate languages, using number 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 corresponding to represent. 
         [0105]    The classification number is the classification digital code specifically defined for the two-dimensional code complication of the publication, the “classification” is specifically defined according to the book species suited the publication. This period of serial numbers represents the concrete classification number of every language. Every classification number is 2 bits decimal number, the classification of the two-dimensional code is in the range of “00˜99”. 
         [0106]    Class index number is the order representing digit specifically defined for the two-dimensional code complication of the publication. The digit number of every class index number is 6 bits decimal number, compiling numerical number according to the demand of publishing species and sequence when dividing, the class index number value range of the two-dimensional code is from 000000 to 999999. Every publication of every species must give a different class index number. 
         [0107]    So, the quantity of language number can be divided into 10, every language kind can be divided into 100 species (classification) numbers, every species can publish 1 million kinds of books. Thus, every language kind can publish a hundred million kinds of books; this coding scheme can support 1 billion kinds of publication. 
         [0108]    The page sequence number is the page digit marking adopted into the two-dimensional code of the publication. The digit number of every page sequence number is 4 bits decimal number, starting to code the numerical number according to the page sequence of every page from 01. The code sequence number of every two-dimensional code has the value range from 01 to 99. For example when some publication only has one two-dimensional code on page 8, its page sequence number and code sequence number represented as “000801”. 
         [0109]    The parity bit is the last number of the publication two-dimensional code compilation to check the correct errors of coding. 
         [0110]    The value of parity bit is calculated by the frontal 5 bits decimal numbers of coding, 
         [0111]    calculation method: respectively and in sequence putting the frontal 15 decimal numbers from the multi-media data index of publication as the cardinal number, “1” and “2” as weighted factors, and respectively multiply with decimal number of cardinal number, and then product sum is divided by modulus 10, wherein every section of cardinal number multiplies with weighted factor, such as 10→1+0=1, 16→1+6=7, if the product is more than 10, then to add the tens digit of this product with single digit together to get every product sum, when every product sum is less than 10, to add 10 to the product sum and then be divided by modulus 10, and the difference between its remainder and 10 is the value of parity bit. So the value of the parity bit only can be any integer from 1 to 10, when parity bit is 10 represented by “0”, so the parity bit only can be 1234567890. 
         [0000]    
       
         
               
               
               
             
               
               
             
           
               
                   
                   
               
             
             
               
                   
                 For example: 
                 1 1 6 0 6 3 4 5 2 0 0 8 6 2 9 (6) 
               
               
                   
                   
                 2 1 2 1 2 1 2 1 2 1 2 1 2 1 
               
               
                   
                 Product: 
                 1 2 6 0 6 6 4 10 2 0 0 16 6 4 9 
               
             
          
           
               
                   
                 Sum of every product: 
               
               
                   
                 1 + 2 + 6 + 0 + 6 + 6 + 4 + (1 + 0) + 2 + 0 + 0 + 
               
               
                   
                 (1 + 6) + 6 + 4 + 9 = 54 
               
               
                   
                 54 ÷ 10 = 5.4 
               
               
                   
                 Parity bit: 10 − 4 = 6 
               
               
                   
                 Checking calculation: 
               
               
                   
                 1 + 2 + 6 + 0 + 6 + 6 + 4 + (1 + 0) + 2 + 0 + 0 + 
               
               
                   
                 (1 + 6) + 6 + 4 + 9 + 6 = 60 
               
               
                   
                 60 ÷ 10 = 6 
               
               
                   
                   
               
             
          
         
       
     
         [0112]    Reason: when the sum of separate product of parity bit and the frontal 15 value of decimal numbers of coding can be divided by the modulus, the coding is right. So, code 1160634520086296 is a correct publication multi-media index coding. 
         [0113]    The characteristic of the publication two-dimensional code compilation structural is that the structure of publication multi-media index coding is 16 bits decimal number and be compiled as two-dimensional code, each section of length is constant digit number, the distribution of every publication multi-media index coding is unique, the compiled two-dimensional code ensures correct reading of MPR reader or other multi-media playing devices, it is convenient to manage the computer. 
         [0114]    For example: when the two-dimensional code of this invention is 1160634520086296, that can be divided into 6 sections according to the order, the language number is fixed as 1, the classification number is fixed as 16, the class index number is fixed as 063452, the page sequence number is fixed as 0086, the code sequence number is fixed as 29, the parity bit is fixed as 6, thus getting 1-16-063452-0086-29-6, so the two-dimensional code compilation is the 29th code on the page 86 of the 063452 nd  publication with language kind code 1 and classification code 16.