# Patent

## Title
Color reproduction method using B-spline approximation

## Abstract

A units of red {u1-uA}, B units of green {v1-vB} and C units of blue {w1-wC} are sampled and measurements are performed, and an interpolation equation is found from the A×B×C units of data in three-dimensions (L*, a*, b*) that are obtained. Firstly, A units of point sequence data in 3×B×C dimensions are least squares approximated for the parameters u, and Mu control points in 3×B×C dimensions are found. Then, B units of point sequence data in 3×C×Mu dimensions are least squares approximated for the parameters v, and Mv control points in 3×C×Mu dimensions are found. Next, C units of point sequence data in 3×Mu×Mv dimensions are least squares approximated for the parameters w, and Mw control points in 3×Mu×Mv dimensions are found. Then, output values (L*,a*,b*) corresponding to arbitrary input values (Red,Green,Blue) can be obtained by an interpolation equation according to Mu×Mv×Mw final control points in three dimensions and basis functions used in the least squares approximations.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a national phase application of International Application No. PCT/JP2007/051305, filed Jan. 26, 2007, and claims the priority of Japanese Application No. 2006-023740, filed Jan. 31, 2006, the content of both of which is incorporated herein by reference.
TECHNICAL FIELD
The present invention relates to a color reproduction method, and particularly relates to a color reproduction method which, at a device for performing color printing, color display or the like, finds, for reproducing predetermined colors correspondence relationships between input values and colors that are outputted, and reproduces colors.
BACKGROUND ART
In recent years, devices which deal with color images, such as scanners, digital cameras, monitors, printers, projectors and so forth, have spread rapidly. When color images are to be handled between these devices, the colors change in appearance in accordance with characteristics of the devices. Consequently, color reproduction between devices has become problematic, and proposals for accurate color reproduction methods are desired.
In order to match colors between devices, it is necessary to ascertain beforehand color characteristics that the devices have. With outputting and measuring all colors (for example, with 24-bit color, 16,777,216 colors) in order to ascertain color characteristics of a device, the number of colors is very large and this is not practical. Therefore, color sampling is performed, and estimation of all colors from measured values is performed.
To estimate all colors, it is common to employ linear interpolation which, as shown in FIG. 16A, interpolates from measured sampling points and finds an interpolation point, curvilinear interpolation which, as shown in FIG. 16B, estimates curves (1) to (3) from measured sampling points, estimates a curve (4) from points on the curves and finds an interpolation point, or the like. Because color characteristics of a device cannot be expressed with linear forms, results which are obtained by linear interpolation have poor accuracy, so interpolation is performed using curvilinear interpolation.
However, as another color reproduction method, a technology described in, for example, Japanese Patent Application Laid-Open (J-PA) No. 2001-283210 has been proposed. In the technology described in JP-A No. 2001-283210, coefficients of a matrix calculation equation of relationship equations are varyingly controlled such that differences between tristimulus values of colors which are calculated using the relationship equations, from three primary color values for outputting the colors, and tristimulus values of the colors which are obtained by spectroscopic analysis are minimized. From reference tristimulus values of the colors, which have been prepared in advance, and values of the three primary colors, which output the colors to appear as colors the same as these colors, learning is implemented with a neural network back propagation method or the like, and residuals are calculated on the basis of non-linear forms. A linear variation matrix and residuals are determined, and a profile is created. Hence, it is proposed that colors of images which are outputted from image output means will match colors obtained by spectroscopic analysis.
DISCLOSURE OF THE INVENTION
Problem to be Solved by the Invention
However, with a color reproduction method that uses linear interpolation or curvilinear interpolation, the color characteristics are expressed in a three-dimensional space. Therefore, even if values of required colors are estimated from just portions of measured sampling data, as shown in FIG. 16A and FIG. 16B, results which completely reproduce color characteristics cannot be obtained, and accuracy is insufficient. Moreover, with conventional curvilinear interpolations, there is a problem in that, as shown in FIG. 16B, there is a necessity to repeat curvilinear interpolation in order to estimate a value of a required color, and therefore processing takes time.
Further, with the technology described in JP-A No. 2001-283210, non-linear portions are interpolated using a neural network. Consequently, there is a risk that learning of the neural network will diverge rather than converging, and color reproduction with good accuracy may be difficult.
Furthermore, with the technology described in JP-A No. 2001-283210, a linear conversion matrix is employed at linear portions and learning with a neural network is employed at non-linear portions. Therefore, it is necessary to divide color reproduction into these cases, processing is complicated, and a processing duration (time) is lengthened.
The present invention has been devised in consideration of the above circumstances, and will provide a method for accurate color reproduction in a short processing duration.
Means for Solving the Problem
A first aspect of the present invention is a color reproduction method that finds second color data, of a plurality of components represented in a second color system, corresponding to first color data of a plurality of components represented in a first color system, the second color system differing from the first color system, and the color reproduction method including: measuring each of colors represented by the second color data that correspond to a predetermined plurality of the first color data, and acquiring a plurality of sample data; targeting the respective components of the first color data corresponding to each of the acquired sample data, treating sample data corresponding to one target component as point sequence data in multiple dimensions, represented by a product of a number of components of the second color data and a number of the sample data of the respective components excluding the target component, and finding first control points which represent a characteristic of an approximation curve which approximates with the target components serving as parameters; thereafter targeting another of the components, treating the first control points corresponding to the target component as point sequence data in the multiple dimensions, and finding second control points which represent a characteristic of an approximation curve which approximates with the target components serving as parameters; sequentially altering the target component and finding final control points; and finding an interpolation equation from the final control points that have been found, for interpolating color data other than the sample data.
According to the first aspect, respective colors represented by the second color data corresponding to the predetermined first color data are measured, and plural sample data are acquired. For example, the plural sample data are acquired by measuring plural colors represented by second color data that correspond to plural known first color data. That is, the second color data corresponding to the first color data are acquired to serve as the sample data.
Then, targeting the respective component of the first color data corresponding to each of the acquired sample data, the sample data corresponding to the one target component are treated as point sequence data in multiple dimensions, represented by the product of the number of components of the second color data and the numbers of sample data for each component excluding the target component, and the first control points, which represent the characteristic of the approximation curve which approximates with the target components serving as parameters, are found.
Then, targeting another component, the first control points corresponding to the another target component are treated as multi-dimensional point sequence data, and the second control points representing the characteristic of the approximation curve, which approximates with the target components serving as parameters, are found. This step is carried out with the target component being sequentially altered, and final control points are found.
Then, the interpolation equation for interpolating color data other than the sample data is found from the final control points that have been found.
Since the interpolation equation found in this manner is found by least squares approximations, errors in the measurement points can be smoothed out. Consequently, the errors in the measurement points are absorbed, and accuracy of the color reproduction can be improved without measurement data being increased.
Further, the sample data is treated as multi-dimensional point sequence data and the control points representing the characteristics of the approximating approximation curves are found sequentially. Therefore, the control points reflect all the sample data, and accurate color reproduction is possible with a small number of samples.
Moreover, because the interpolation equation is found using least squares approximations, divergence as in a neural network will not occur, and the interpolation equation can be found reliably.
Hence, because of the interpolation equation being found in this manner, the second color data can be reproduced from the first color data with good accuracy in a short processing duration, using the interpolation equation that has been found.
Herein, the first control points to the final control points may be found by least squares approximations with B-spline curves.
A second aspect of the present invention is a color reproduction method that finds second color data (x,y,z), constituted by three components x, y and z which are represented in a second color system, corresponding to first color data (u,v,w), constituted by three components u, v and w which are represented in a first color system, the second color system differing from the first color system, and the color reproduction method including: measuring each color represented by the second color data that corresponds to a predetermined plurality of the first color data, and acquiring (A, B, C) units of sample data for the respective components of the first color data; targeting the u components of the first color data corresponding to each of the acquired sample data, treating the sample data corresponding to the target components as A units of point sequence data in 3 components×B×C dimensions, performing a least squares approximation with a B-spline curve with the target u components serving as parameters, and finding Mu units of first control points which represent a characteristic of the B-spline curve in 3×B×C dimensions; targeting the v components of the first color data corresponding to each of the acquired sample data, treating the first control points corresponding to the target components as B units of point sequence data in 3 components×C×Mu dimensions, performing a least squares approximation with a B-spline curve with the target v components serving as parameters, and finding Mv units of second control points which represent a characteristic of the B-spline curve in 3×C×Mu dimensions; targeting the w components of the first color data corresponding to each of the acquired sample data, treating the second control points corresponding to the target components as C units of point sequence data in 3 components×Mu×Mv dimensions, performing a least squares approximation with a B-spline curve with the target w components serving as parameters, and finding Mw units of third control points which represent a characteristic of the B-spline curve in 3×Mu×Mv dimensions; and finding an interpolation equation from the third control points that have been found, for interpolating the color data other than the sample data.
According to the second aspect, the respective colors represented by the second color data corresponding to the predetermined first color data are measured and (A, B, C) units of sample data for the respective components (u, v, w) of the first color data are acquired.
Then, targeting the u components of the first color data corresponding to the respective acquired sample data, the sample data corresponding to the target component are treated as the A units of point sequence data in the 3 components (the number of components of the second color data)×B×C dimensions, and the least squares approximation with the B-spline curve is performed, with the target u components serving as parameters. Thereby, the Mu units of first control points representing the characteristic of the B-spline curve in 3×B×C dimensions are found.
Next, targeting the v components of the first color data corresponding to the respective acquired sample data, the first control points corresponding to the target component are treated as the B units of point sequence data in the 3 components×C×Mu dimensions, and the least squares approximation with the B-spline curve is performed, with the target v components serving as parameters. Thereby, the Mv units of second control points representing the characteristic of the B-spline curve in 3×C×Mu dimensions are found.
Then, targeting the w components of the first color data corresponding to the respective acquired sample data, the second control points corresponding to the target component are treated as the C units of point sequence data in the 3 components×Mu×Mv dimensions, and the least squares approximation with the B-spline curve is performed, with the target w components serving as parameters. Thereby, the Mw third control points representing the characteristic of the B-spline curve in 3×Mu×Mv dimensions are found.
Then, the interpolation equation for interpolating color data other than the sample data is found from the third control points that have been found.
Since the interpolation equation found in this manner is found by least squares approximations, errors in the measurement points can be smoothed out. Consequently, the errors in the measurement points are absorbed, and accuracy of the color reproduction can be improved without measurement data being increased.
Further, the sample data is treated as multi-dimensional point sequence data and the control points representing the characteristics of the B-spline curves are found sequentially. Therefore, the control points reflect all of the sample data, and accurate color reproduction is possible with a small number of samples.
Moreover, because the interpolation equation is found using least squares approximations, divergence as in a neural network will not occur, and the interpolation equation can be found reliably.
Hence, because of the interpolation equation being found in this manner, the second color data can be reproduced from the first color data with good accuracy in a short duration, using the interpolation equation that has been found.
The interpolation equation found as described above can be, for example, the interpolation equation shown below:




  
    (
    
      
        
          x
        
      
      
        
          y
        
      
      
        
          z
        
      
    
    )
  
  =
  
    
      
        ∑
        i
      
      
        M
        u
      
    
    ⁢
    
      
        
          ∑
          j
        
        
          M
          v
        
      
      ⁢
      
        
          
            ∑
            k
          
          
            M
            w
          
        
        ⁢
        
          
            (
            
              
                
                  
                    P
                    ijk
                    x
                  
                
              
              
                
                  
                    P
                    ijk
                    y
                  
                
              
              
                
                  
                    P
                    ijk
                    z
                  
                
              
            
            )
          
          ⁢
          
            
              N
              i
              u
            
            ⁡
            
              (
              u
              )
            
          
          ⁢
          
            
              N
              j
              v
            
            ⁡
            
              (
              v
              )
            
          
          ⁢
          
            
              N
              k
              w
            
            ⁡
            
              (
              w
              )
            
          
        
      
    
  




in which

    x is the value of the x component of the second color data;
    y is the value of the y component of the second color data;
    z is the value of the z component of the second color data;
    u is the value of the u component of the first color data;
    v is the value of the v component of the first color data;
    w is the value of the w component of the first color data;
    Px, Py, and Pz are control points;
    Nu, Nv, and Nw are basis functions;
    Mu, Mv, and Mw are numbers of control points (=numbers of basis functions); and characters indicated in bold fonts are vectors.


Herein, in the following descriptions, vector symbols are in places indicated with “vector” before the symbol instead of being shown by bold characters.
Effect of the Invention
According to the present invention as described hereabove, color reproduction with good accuracy in a short duration is possible.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a diagram showing schematic structure of a color reproduction apparatus relating to an embodiment of the present invention.
FIG. 2A is a diagram for describing a schematic of processing performed by the color reproduction apparatus relating to the embodiment of the present invention.
FIG. 2B is a diagram for describing a schematic of processing performed by the color reproduction apparatus relating to the embodiment of the present invention.
FIG. 3 is a flowchart showing a flow of finding an interpolation equation.
FIG. 4 is a table showing A×B×C points in three dimensions.
FIG. 5 is a table showing A points in 3×B×C dimensions.
FIG. 6A is a diagram showing point sequence data in 243 dimensions corresponding to parameters u.
FIG. 6B is a diagram showing point sequence data in 3×B×C dimensions corresponding to red.
FIG. 6C is a diagram showing point sequence data in 3×B×C dimensions, found by performing a least squares approximation with a B-spline curve.
FIG. 7 is a table showing Mu control points in 3×B×C dimensions.
FIG. 8 is a table showing Mu×B×C control points in 3 dimensions.
FIG. 9 is a table showing B×C×Mu units of control point data in 3 dimensions, which have been sorted.
FIG. 10A is a diagram showing point sequence data in 162 dimensions corresponding to parameters v.
FIG. 10B is a diagram showing point sequence data in 3×C×Mu dimensions corresponding to green.
FIG. 11A is a diagram showing point sequence data in 108 dimensions corresponding to parameters w.
FIG. 11B is a diagram showing point sequence data in 3×Mu×Mv dimensions corresponding to blue.
FIG. 12 is a table showing Mu×Mv×Mw units of control point data in three dimensions, which have been sorted.
FIG. 13 is a flowchart showing an example of a flow of processing for estimating values of required colors from values of previously known colors.
FIG. 14 is a table showing a portion of 9×9×9 sampled data.
FIG. 15A is a table showing results of comparison of a conventional process with a process according to the present embodiment.
FIG. 15B is a graph showing results of comparison of the conventional process with the process according to the present embodiment.
FIG. 16A is a diagram showing linear interpolation.
FIG. 16B is a diagram showing curvilinear interpolation.



BEST MODE FOR CARRYING OUT THE INVENTION
Below, one example of an exemplary embodiment of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a diagram showing schematic structure of a color reproduction apparatus relating to the embodiment of the present invention.
As shown in FIG. 1, the color reproduction apparatus is provided with a personal computer 10, and devices such as a printer 12, a projector 14 and the like.
The personal computer 10 is structured by a keyboard 16 for inputting data and the like, a computer main body 18 which calculates and outputs data for outputting required colors through a device such as the printer 12, the projector 14 or the like in accordance with a program stored in advance, and a monitor 20 which displays calculation results of the computer main body 18. Herein, as the printer 12, there may be, for example, a color hard copy apparatus based on a thermal transfer system, an inkjet system, an electrophotography system or a silver salt photography system which outputs a color copy image, with color data in an RGB color system as input values.
The present invention formularizes a relationship between inputs and outputs (output=f(input)) by approximating results that output m elements (Out1, Out2, Out3, . . . , Outm) when n elements (input (In1, In2, In3, . . . Inn)) are inputted, and performs non-linear interpolation. Herein, in the present embodiment, a least squares method is used for approximation of output results. However, the present invention is not limited thus; an elastic energy minimization method (“Modeling of Curves and Surfaces in CAD/CAM”, Hosaka Mamoru, Tokyo Denki University Publishing Office, pp. 142-144 (1996)) or the like could be used.
In the present embodiment, as shown in FIG. 2B, output of three elements (L*, a*, b*) corresponding to input of three elements (Red, Green, Blue) is given as an example for the formularization performed by a non-linear least squares approximation in multiple dimensions using a B-spline curve, and the non-linear interpolation.
Now, a method of formularization by multi-dimensional non-linear least squares approximations using B-spline curves will be described.
In the present embodiment, acquired values of the input three elements (Red, Green, Blue) are each possible from 0 to 255, and a total number of colors is extremely large at 16,777,216 (equals 256×256×256). Therefore, measurement is performed by taking A samples of red {u1, u2, u3, . . . , uA}, B samples of green {v1, v2, v3, . . . , vB} and C samples of blue {w1, w2, w3, . . . , wC}. An interpolation formula for accurately interpolating all data is found from the acquired A×B×C units of three-dimensional (L*,a*,B*) data {(x1,1,1, y1,1,1, z1,1,1), (x1,1,2, y1,1,2, z1,1,2), . . . , (xA,B,C, yA,B,C, zA,B,C)}.
FIG. 3 is a flowchart showing a flow of finding an interpolation equation. In the following specific descriptions of respective steps, a case in which measurement samples of respective colors at an RGB 8-bit device (gradations of 0 to 255) are set to nine levels (0, 32, 64, 96, 128, 160, 192, 224 and 255) is described as an example. Further, for the present embodiment, a case of sampling in which the sample values are equally spaced values and are respectively the same values for red, green and blue is given as an example. However, this is not limiting; they need not be equally spaced, and they need not be the same values for each of red, green and blue.
First of all, in step 100, A units of 3×B×C-dimensional point sequence data are least squares approximated with the parameters u, and Mu units of control points in 3×B×C-dimensions are found.
That is, when red component is targeted, in the measured data, a number of green samples is B and a number of blue samples is C, and each has three components L*, a* and b*. Therefore, as shown in FIG. 4, there are B×C points in three dimensions corresponding to each of u1 to uA of red. In other word, as shown in FIG. 5, outputs (sample data) corresponding to each of u1 to uA can be considered as being points in 3-components×B×C dimensions.
Further, because the number of red samples is A, an interpretation that there are A points in 3×B×C dimensions is possible.
In the example described above, 81 (=the number of green samples 9×the number of blue samples 9) point data in three dimensions corresponding to each of u1 to u9 of red, shown in FIG. 6A, can be treated as respective points {vector Qu1, vector Qu2, . . . , vector QuA} in 243 dimensions, as shown in FIG. 6B.
Accordingly, as shown in FIG. 6C, A units of point sequence data in 3×B×C dimensions {vector Qu1, vector Qu2, . . . , vector QuA} are least squares approximated with a B-spline curve, and Mu units of control points {vector Pu1, vector Pu2, . . . , vector PuMu}, which represent characteristics of the B-spline curve in 3×B×C dimensions, are found.
Here, a vector C(u) of a B-spline curve can generally be represented by equation (1) shown below (for example, reference document 1 (“A Practical Guide to NURBS for CAD-CG Engineers”, Miura Akira and Mochizuki Kazumasa, Kogyo Chosa Kai (2001)), reference document 2 (“A Quick Guide to NURBS for CAD-CG Engineers”, Miura Akira, Nakajima Takayuki and Ono Takanori, Kogyo Chosa Kai (2002)) and the like).




  
    
      
        
          
            
              
                C
                ⁡
                
                  (
                  u
                  )
                
              
              =
              
              ⁢
              
                
                  
                    P
                    1
                    u
                  
                  ⁢
                  
                    
                      N
                      1
                      u
                    
                    ⁡
                    
                      (
                      u
                      )
                    
                  
                
                +
                
                  
                    P
                    2
                    u
                  
                  ⁢
                  
                    
                      N
                      2
                      u
                    
                    ⁡
                    
                      (
                      u
                      )
                    
                  
                
                +
                ...
                +
                
                  
                    P
                    Mu
                    u
                  
                  ⁢
                  
                    
                      N
                      Mu
                      u
                    
                    ⁡
                    
                      (
                      u
                      )
                    
                  
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  ∑
                  
                    i
                    =
                    1
                  
                  Mu
                
                ⁢
                
                  
                    P
                    i
                    u
                  
                  ⁢
                  
                    
                      N
                      i
                      u
                    
                    ⁡
                    
                      (
                      u
                      )
                    
                  
                
              
            
          
        
      
    
    
      
        (
        1
        )
      
    
  




in which
P: control points
N: B-spline basis functions
The least squares approximation with this B-spline curve is performed and the control points {vector Pu1, vector Pu2, . . . , vector PuMu} are found. At this time, it is necessary to indicate the B-spline basis functions {vector Nu1(u), vector Nu2(u), . . . , vector NuMu(u)}. Herein, the number of control points Mu and the B-spline basis functions {vector Nu1(u), vector Nu2(u), . . . , vector NuMu(u)} are uniquely determined by specifying an order of the B-spline curve, an index of continuity, a number of segments, and a knot vector T {t1, t2, . . . , tMu+M}, and thus are suitably set.
Number of control points Mu=order+(number of levels−2)×multiplicity
Number of levels M=order+1
Multiplicity=order-index of continuity
Basis function




  
    
      
        
          
            N
            i
            u
          
          ⁡
          
            (
            u
            )
          
        
        =
        
          
            
              N
              
                j
                ,
                M
              
            
            ⁡
            
              (
              t
              )
            
          
          =
          
            
              
                
                  t
                  -
                  
                    t
                    j
                  
                
                
                  
                    t
                    
                      j
                      +
                      M
                      -
                      1
                    
                  
                  -
                  
                    t
                    j
                  
                
              
              ⁢
              
                
                  N
                  
                    j
                    ,
                    
                      M
                      -
                      1
                    
                  
                
                ⁡
                
                  (
                  t
                  )
                
              
            
            +
            
              
                
                  
                    t
                    
                      j
                      +
                      M
                    
                  
                  -
                  t
                
                
                  
                    t
                    
                      j
                      +
                      m
                    
                  
                  -
                  
                    t
                    
                      J
                      +
                      1
                    
                  
                
              
              ⁢
              
                
                  N
                  
                    
                      J
                      +
                      1
                    
                    ,
                    
                      M
                      -
                      1
                    
                  
                
                ⁡
                
                  (
                  t
                  )
                
              
            
          
        
      
    
    
      
        (
        2
        )
      
    
  




Here, in equation (1), the vectors C, vectors P and vectors N are each in 3×B×C dimensions. Therefore, they can be rewritten as in the following equation.




  
    
      
        
          [
          
            
              
                
                  
                    C
                    1
                  
                  ⁡
                  
                    (
                    u
                    )
                  
                
              
            
            
              
                
                  
                    C
                    2
                  
                  ⁡
                  
                    (
                    u
                    )
                  
                
              
            
            
              
                
                  
                    C
                    3
                  
                  ⁡
                  
                    (
                    u
                    )
                  
                
              
            
            
              
                ⋮
              
            
            
              
                
                  
                    C
                    
                      3
                      ×
                      B
                      ×
                      C
                    
                  
                  ⁡
                  
                    (
                    u
                    )
                  
                
              
            
          
          ]
        
        =
        
           
          
            
              [
              
                
                  
                    
                      P
                      
                        1
                        ,
                        1
                      
                      u
                    
                  
                  
                    
                      P
                      
                        1
                        ,
                        2
                      
                      u
                    
                  
                  
                    
                      P
                      
                        1
                        ,
                        3
                      
                      u
                    
                  
                  
                    ...
                  
                  
                    
                      P
                      
                        1
                        ,
                        Mu
                      
                      u
                    
                  
                
                
                  
                    
                      P
                      
                        2
                        ,
                        1
                      
                      u
                    
                  
                  
                    
                      P
                      
                        2
                        ,
                        2
                      
                      u
                    
                  
                  
                    
                      P
                      
                        2
                        ,
                        3
                      
                      u
                    
                  
                  
                    ...
                  
                  
                    
                      P
                      
                        2
                        ,
                        Mu
                      
                      u
                    
                  
                
                
                  
                    
                      P
                      
                        3
                        ,
                        1
                      
                      u
                    
                  
                  
                    
                      P
                      
                        3
                        ,
                        2
                      
                      u
                    
                  
                  
                    
                      P
                      
                        3
                        ,
                        3
                      
                      u
                    
                  
                  
                    ...
                  
                  
                    
                      P
                      
                        3
                        ,
                        Mu
                      
                      u
                    
                  
                
                
                  
                    ⋮
                  
                  
                    ⋮
                  
                  
                    ⋮
                  
                  
                    ...
                  
                  
                    ⋮
                  
                
                
                  
                    
                      P
                      
                        
                          3
                          ×
                          B
                          ×
                          C
                        
                        ,
                        1
                      
                      u
                    
                  
                  
                    
                      P
                      
                        
                          3
                          ×
                          B
                          ×
                          C
                        
                        ,
                        2
                      
                      u
                    
                  
                  
                    
                      P
                      
                        
                          3
                          ×
                          B
                          ×
                          C
                        
                        ,
                        3
                      
                      u
                    
                  
                  
                    ...
                  
                  
                    
                      P
                      
                        
                          3
                          ×
                          B
                          ×
                          C
                        
                        ,
                        Mu
                      
                      u
                    
                  
                
              
              ]
            
            ⁢
            
               
              
                [
                
                  
                    
                      
                        
                          N
                          1
                          u
                        
                        ⁡
                        
                          (
                          u
                          )
                        
                      
                    
                  
                  
                    
                      
                        
                          N
                          2
                          u
                        
                        ⁡
                        
                          (
                          u
                          )
                        
                      
                    
                  
                  
                    
                      
                        
                          N
                          3
                          u
                        
                        ⁡
                        
                          (
                          u
                          )
                        
                      
                    
                  
                  
                    
                      ⋮
                    
                  
                  
                    
                      
                        
                          N
                          Mu
                          u
                        
                        ⁡
                        
                          (
                          u
                          )
                        
                      
                    
                  
                
                ]
              
            
          
        
      
    
    
      
        (
        3
        )
      
    
  




Now, the least squares method is a process which finds coefficients such that a sum S of squares of differences is at a minimum. Here, the B-spline curve should be found so as to pass through the measured sample points or pass close to the measured sample points. Hence, with equation (3), control points {vector Pu1, vector Pu2, . . . , vector PuMu} with which the sum of squares of differences from the sampled measurement data is at a minimum are found by the least squares method. Herein, the sum S of squares of differences from the sampled measurement data is shown in the following equation (4).




  
    
      
        
          
            
              S
              =
              
              ⁢
              
                
                  
                    (
                    
                      
                        
                          ∑
                          
                            i
                            =
                            1
                          
                          Mu
                        
                        ⁢
                        
                          
                            P
                            i
                            u
                          
                          ⁢
                          
                            
                              N
                              i
                              u
                            
                            ⁡
                            
                              (
                              
                                u
                                1
                              
                              )
                            
                          
                        
                      
                      -
                      
                        C
                        ⁡
                        
                          (
                          
                            u
                            1
                          
                          )
                        
                      
                    
                    )
                  
                  2
                
                +
                
                  
                    (
                    
                      
                        
                          
                            ∑
                            
                              i
                              =
                              1
                            
                          
                          Mu
                        
                        ⁢
                        
                          
                            P
                            i
                            u
                          
                          ⁢
                          
                            
                              N
                              i
                              u
                            
                            ⁡
                            
                              (
                              
                                u
                                2
                              
                              )
                            
                          
                        
                      
                      -
                      
                        C
                        ⁡
                        
                          (
                          
                            u
                            2
                          
                          )
                        
                      
                    
                    )
                  
                  2
                
                +
                ...
                +
              
            
          
        
        
          
            
              
              ⁢
              
                
                  (
                  
                    
                      
                        ∑
                        
                          i
                          =
                          1
                        
                        Mu
                      
                      ⁢
                      
                        
                          P
                          i
                          u
                        
                        ⁢
                        
                          
                            N
                            i
                            u
                          
                          ⁡
                          
                            (
                            
                              u
                              A
                            
                            )
                          
                        
                      
                    
                    -
                    
                      C
                      ⁡
                      
                        (
                        
                          u
                          A
                        
                        )
                      
                    
                  
                  )
                
                2
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  ∑
                  
                    j
                    =
                    1
                  
                  A
                
                ⁢
                
                  
                    (
                    
                      
                        
                          ∑
                          
                            i
                            =
                            1
                          
                          Mu
                        
                        ⁢
                        
                          
                            P
                            i
                            u
                          
                          ⁢
                          
                            
                              N
                              
                                i
                                ⁢
                                
                                  
                                
                              
                              u
                            
                            ⁡
                            
                              (
                              
                                u
                                j
                              
                              )
                            
                          
                        
                      
                      -
                      
                        C
                        ⁡
                        
                          (
                          
                            u
                            j
                          
                          )
                        
                      
                    
                    )
                  
                  2
                
              
            
          
        
      
    
    
      
        (
        4
        )
      
    
  




By solving this equation (4), the Mu control points in the 3×B×C dimensions {vector Pu1, vector Pu2, . . . , vector PuMu} can be obtained. The Mu control points in the 3×B×C dimensions found by solving equation (4) are shown in FIG. 7. Herein, the control points found here correspond to first control points of the present invention.
In other word, the Mu sets of B×C units of three-dimensional control points are obtained by non-linear least squares approximation in multiple dimensions. The Mu×B×C control points in three dimensions are shown in FIG. 8.
In the case of the example described above, if the B-spline curve employed for the least squares approximation is set to 3 orders, C1 continuity and 2 segments, Mu=6 control points can be obtained. Nine points in 243 dimensions (=3 components×the number of green samples 9×the number of blue samples 9) are least squares approximated with the vector C(u) of the B-spline curve shown below, and the vectors Pu of the control points can be found.

C(u)=Pu1Nu1(u)+Pu2Nu2(u)+ . . . +PuMuNuMu(u)

Next, in step 102, B units of point sequence data in 3×C×Mu dimensions are least squares approximated with the parameters v, and Mv control points in 3×C×Mu dimensions are found.
That is, when targeting green component, when the Mu×B×C units of control point data in three dimensions found in step 100 are sorted into ascending order for green, blue and red, they are as shown in FIG. 9. Now, similarly to step 100, in the control point data, a number of blue samples is C and a number of red samples is Mu, and each has three components L*, a* and b*. Therefore, outputs corresponding to v1 for green (the first control points of the present invention) are C×Mu points in three dimensions. That is, v1 can be considered as being a point in 3×C×Mu dimensions. Further, because the number of green samples is B, an interpretation that there are B points in 3×C×Mu dimensions is possible.
In the example described above, 54 (=the number of blue samples 9×the number of control points Mu 6) point data in three dimensions corresponding to each of v1 to v9 of green, shown in FIG. 10A, can be treated as respective points {vector Qv1, vector Qv2, . . . , vector QvB} in 162 dimensions, as shown in FIG. 10B.
Now, similarly to step 100, these B units of point sequence data in 3×C×Mu dimensions {vector Qv1, vector Qv2, . . . , vector QvB} are least squares approximated with a B-spline curve, and Mv control points {vector Puv1, vector Puv2, . . . , vector PuvMv}, which represent characteristics of the B-spline curve in 3×C×Mu dimensions, are found. Herein, the control points found here correspond to second control points of the present invention.
As a result, the Mv control points in 3×C×Mu dimensions can be obtained. Put another way, the Mv set of C×Mu units of three-dimensional control points are obtained by non-linear least squares approximation in multiple dimensions.
In the case of the example described above, similarly to step 100, if the B-spline curve employed for the least squares approximation is set to 3 orders, C1 continuity and 2 segments, there are Mv=6 control points. Nine points in 162 dimensions (=3 components×the number of blue samples C×Mu=3×9×6) are least squares approximated with a vector C(v) of the B-spline curve shown below, and the vectors Puv of the control points can be found.

C(v)=Puv1Nv1(v)+Puv2Nv2(v)+ . . . +PuvMvNvMv(v)

Then, in step 104, C units of point sequence data in 3×Mu×Mv dimensions are least square approximated with the parameters w, and Mw control points in 3×Mu×Mv dimensions are found.
That is, when targeting blue component, the Mv×C×Mu units of control point data in three dimensions found in step 102 are sorted into ascending order for blue, red and green. Similarly to step 100, in the control point data, a number of red samples is Mu and a number of green samples is Mv, and each has three components L*, a* and b*. Therefore, outputs corresponding to w1 for blue (the second control points of the present invention) are Mu×Mv points in three dimensions. In the other word, w1 can be considered as being a point in 3×Mu×Mv dimensions.
Further, because the number of blue samples is C, an interpretation that there are C points in 3×Mu×Mv dimensions is possible. In the example described above, 36 (=the number of control points Mu 6×the number of control points Mv 6) point data in three dimensions corresponding to each of w1 to w9 of blue, shown in FIG. 11A, can be treated as respective points {vector Qw1, vector Qw2, . . . , vector QwC} in 108 dimensions, as shown in FIG. 11B.
Now, similarly to step 100, these C units of point sequence data in 3×Mu×Mv dimensions {vector Qw1, vector Qw2, . . . , vector QwC} is least squares approximated with a B-spline curve, and Mw control points {vector Puvw1, vector Puvw2, . . . , vector PuvwMw}, which represent characteristics of the B-spline curve in 3×Mu×Mv dimensions, are found. Herein, the control points found here correspond to third control points of the present invention.
As a result, the Mw control points in 3×Mu×Mv dimensions can be obtained. That is, the Mw sets of Mu×Mv units of three-dimensional control points are obtained by non-linear least squares approximation in multiple dimensions.
In the case of the example described above, similarly to step 100, if the B-spline curve employed for the least squares approximation is set to 3 orders, C1 continuity and 2 segments, there are Mw=6 control points. Nine points in 108 dimensions (3 components×Mu×Mv=3×6×6) are least squares approximated with a vector C(w) of the B-spline curve shown below, and the vectors Puvw of the control points can be found.

C(w)=Puvw1Nw1(w)+Puvw2Nw2(w)+ . . . +PuvwMwNwMw(w)

Then, in step 106, an interpolation equation is found from the final control points that have been found.
That is, when the control point data that have been found are sorted into ascending order in red, green and blue, they are as shown in FIG. 12. These Mu×Mv×Mw control points in three dimensions (the data total is 3×Mu×Mv×Mw) are divided into L*, a* and b* components, and form a vector Px{Puvw1,1, . . . , Puvw3×Mu×Mv,Mw−2}, a vector Py{Puvw1,2, . . . , Puvw3×Mu×Mv,Mw−1} and a vector Pz{Puvw1,3, . . . , Puvw3×Mu×Mv,Mw}. When an interpolation equation is found from these control point data and the B-spline basis functions employed in step 100 to step 104 {vector Nu1(u), vector Nu2(u) . . . , vector NuMu(u)}, {vector Nv1(v), vector Nv2(v), . . . , vector NvMv(v)} and {vector Nw1(w), vector Nw2(w), . . . , vector NwMw(w)}, equation (5) shown below can be obtained.




  
    
      
        
          
            
              
                (
                
                  
                    
                      x
                    
                  
                  
                    
                      y
                    
                  
                  
                    
                      z
                    
                  
                
                )
              
              =
              
              ⁢
              
                f
                ⁡
                
                  (
                  
                    u
                    ,
                    v
                    ,
                    w
                  
                  )
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                (
                
                  
                    
                      
                        
                          f
                          x
                        
                        ⁡
                        
                          (
                          
                            u
                            ,
                            v
                            ,
                            w
                          
                          )
                        
                      
                    
                  
                  
                    
                      
                        
                          f
                          y
                        
                        ⁡
                        
                          (
                          
                            u
                            ,
                            v
                            ,
                            w
                          
                          )
                        
                      
                    
                  
                  
                    
                      
                        
                          f
                          z
                        
                        ⁡
                        
                          (
                          
                            u
                            ,
                            v
                            ,
                            w
                          
                          )
                        
                      
                    
                  
                
                )
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  ∑
                  i
                  Mu
                
                ⁢
                
                  
                    ∑
                    j
                    Mv
                  
                  ⁢
                  
                    
                      ∑
                      k
                      Mw
                    
                    ⁢
                    
                      
                        (
                        
                          
                            
                              
                                P
                                ijk
                                x
                              
                            
                          
                          
                            
                              
                                P
                                ijk
                                y
                              
                            
                          
                          
                            
                              
                                P
                                ijk
                                z
                              
                            
                          
                        
                        )
                      
                      ⁢
                      
                        
                          N
                          i
                          u
                        
                        ⁡
                        
                          (
                          u
                          )
                        
                      
                      ⁢
                      
                        
                          N
                          j
                          v
                        
                        ⁡
                        
                          (
                          v
                          )
                        
                      
                      ⁢
                      
                        
                          N
                          k
                          w
                        
                        ⁡
                        
                          (
                          w
                          )
                        
                      
                    
                  
                
              
            
          
        
      
    
    
      
        (
        5
        )
      
    
  




Hence, an interpolation equation for interpolating outputs L*a*b* (CIELAB) with respect to inputs RGB is as equation (6) shown below.




  
    
      
        
          (
          
            
              
                
                  L
                  *
                
              
            
            
              
                
                  a
                  *
                
              
            
            
              
                
                  b
                  *
                
              
            
          
          )
        
        =
        
          
            ∑
            i
            
              M
              B
            
          
          ⁢
          
            
              ∑
              j
              
                M
                G
              
            
            ⁢
            
              
                ∑
                k
                
                  M
                  
                    B
                    ⁢
                    
                      
                    
                  
                
              
              ⁢
              
                
                  (
                  
                    
                      
                        
                          P
                          ijk
                          
                            L
                            *
                          
                        
                      
                    
                    
                      
                        
                          P
                          ijk
                          
                            a
                            *
                          
                        
                      
                    
                    
                      
                        
                          P
                          ijk
                          
                            b
                            *
                          
                        
                      
                    
                  
                  )
                
                ⁢
                
                  
                    N
                    i
                    R
                  
                  ⁡
                  
                    (
                    R
                    )
                  
                
                ⁢
                
                  
                    N
                    j
                    G
                  
                  ⁡
                  
                    (
                    G
                    )
                  
                
                ⁢
                
                  
                    N
                    k
                    B
                  
                  ⁡
                  
                    (
                    B
                    )
                  
                
              
            
          
        
      
    
    
      
        (
        6
        )
      
    
  




in which
L*: CIELAB L* value
a*: CIELAB a* value
b*: CIELAB b* value
R: red gradation value (0 to 255)
G: green gradation value (0 to 255)
B: blue gradation value (0 to 255)
PL*, Pa*, Pb*: control points
NR, NG, NB: basis functions
MR, MG, MB: numbers of control points (=numbers of basis functions)
The equation (6) that has been found in this manner is a linear coupling of the control points (vectors P) and basis functions (vectors N) of the B-spline curves. However, since this equation is a multiplication equation in which the control points (vectors P) are coefficients and which has the B-spline basis functions (vectors N) as inputs in variables, equation (6) is a non-linear interpolation. Therefore, all colors of the device can be obtained by using the interpolation equation (equation (6)).
Further, because the above-described interpolation equation is found by least squares approximations, errors in measurement points can be smoothed out. Consequently, the errors in the measurement points can be absorbed, and accuracy of the color reproduction can be improved without measurement data being increased.
Further, in the present embodiment, the sample data is treated as multi-dimensional point sequence data and the control points representing the characteristics of the approximating approximation curves (the B-spline curves) are found sequentially. Therefore, the control points may reflect all the sample data, and accurate color reproduction is possible with a small number of samples.
Hence, because the interpolation equation has been found in this manner, the second color data can be reproduced from the first color data with good accuracy in a short processing duration, using the interpolation equation that has been found.
Herein, in the present embodiment, least squares approximations are performed in the sequence of parameters u→v→w. However, the same effects can be provided even if least squares approximations are performed in another order.
Next, processing which is performed by the computer main body 18 using the interpolation equation that has been obtained as described above, and which estimates values of required colors from values of already known colors, will be described.
FIG. 13 is a flowchart showing an example of a flow of processing for estimating values of required colors from values of known colors.
In step 200, output of sampled colors is performed and the processing proceeds to step 202. That is, output is performed with respect to sampled input values.
In step 202, measurement of outputted colors is performed and the processing proceeds to step 204. In the present embodiment, measurement values of tristimulus values X, Y, Z (CIEXYZ) are obtained.
In step 204, a conversion of the sampled measurement values measured in step 202 to an equivalent color space (CIELAB) is performed and L*, a*, b* values are obtained (CIEXYZ→CIELAB). Herein, in step 204, the conversion is to CIELAB (the CIE 1976 L*a*b* color space), which is an equivalent color space for estimating color characteristics. However, this is not limiting, and some other color space may be employed.
Next, in step 206, multi-dimensional non-linear least squares approximations are performed and the processing proceeds to step 208. That is, an interpolation equation is found through the above-described flowchart of FIG. 3.
In step 208, a required color (Red,Green,Blue) is specified and the processing proceeds to step 210.
In step 210, a color value (L*,a*,b*) is calculated using the interpolation equation found in step 206 (a least squares approximation equation), and the processing proceeds to step 212.
In step 212, it is determined whether or not estimation of the color values has finished. If this determination is negative, the processing returns to step 208 and the above-described processing is repeated. When the determination of step 212 is positive, the example processing finishes.
Now, the inputs of red, green and blue are respectively sampled in 9 levels (0, 32, 64, 96, 128, 160, 192, 224 and 255). In the following, all of data 256×256×256 is interpolated from 9×9×9 data with a conventional process and the process of the present embodiment, and interpolation results and color differences from actual values are found, and results of comparatively evaluating the conventional process and the process according to the present embodiment will be described.
FIG. 14 is a table showing a portion of 9×9×9 sampled data. FIG. 15A is a table showing results of comparison of the conventional process with the process according to the present embodiment. FIG. 15B is a graph showing results of the comparison of the conventional process with the process according to the present embodiment.
Here, since actual values are needed to be already known for the evaluation, data obtained by converting RGB values to XYZ values with an sRGB theoretical formula, Specification of sRGB (specified in IEC 61966-2-1:1999), and further converting this data to Lab values are used.
For the conventional processing serving as a comparison object, the linear interpolation of Japanese Patent Application Laid-Open (JP-A) No. 7-50760 is employed. In the conventional technology that is employed, interpolation is performed using a two-dimensional B-spline curve, and a general equation thereof is equation (7) shown below.




  
    
      
        
          
            
              
                
                  L
                  *
                
                ⁡
                
                  (
                  D
                  )
                
              
              =
              
              ⁢
              
                
                  
                    P
                    1
                  
                  ⁢
                  
                    
                      N
                      1
                    
                    ⁡
                    
                      (
                      D
                      )
                    
                  
                
                +
                
                  
                    P
                    2
                  
                  ⁢
                  
                    
                      N
                      2
                    
                    ⁡
                    
                      (
                      D
                      )
                    
                  
                
                +
                ...
                +
                
                  
                    P
                    M
                  
                  ⁢
                  
                    
                      N
                      M
                    
                    ⁡
                    
                      (
                      D
                      )
                    
                  
                
              
            
          
        
        
          
            
              =
              
              ⁢
              
                
                  ∑
                  
                    i
                    =
                    1
                  
                  M
                
                ⁢
                
                  
                    P
                    i
                  
                  ⁢
                  
                    
                      N
                      i
                    
                    ⁡
                    
                      (
                      D
                      )
                    
                  
                
              
            
          
        
      
    
    
      
        (
        7
        )
      
    
  




in which
L*: CIELAB L* value
D: gradation value (0-255)
P: control points
N: basis functions
M: number of control points (=number of basis functions)
In results of comparison of the conventional process with the process according to the present embodiment, as shown in FIG. 15A and FIG. 15B, in the process according to the present embodiment, when 3 orders, C1 continuity, 2 segments are specified, accuracy can be improved by about 1.17 times compared with the conventional process. When 3 orders, C 1 continuity, 3 segments is specified, accuracy can be improved by about 2.20 times compared with the conventional process. When 2 orders, C1 continuity, 6 segments is specified, accuracy can be improved by about 2.34 times compared with the conventional process. When 2 orders, C1 continuity, 7 segments is specified, accuracy can be improved by about 3.72 times compared with the conventional process.
Further, in regard to processing duration, in the process according to the present embodiment, when 3 orders, C1 continuity, 2 segments are specified, the processing duration can be shortened by about 5.29 times compared with the conventional process. When 3 orders, C1 continuity, 3 segments is specified, the processing duration can be shortened by about 2.23 times compared with the conventional process. When 2 orders, C1 continuity, 6 segments is specified, the processing duration can be shortened by about 2.23 times compared with the conventional process. When 2 orders, C1 continuity, 7 segments is specified, the processing duration can be shortened by about 1.56 times compared with the conventional process.
Here, for the embodiment described above, the printer 12 has been employed as the device, but this is not limiting. For example, a monitor for which inputs are R, G, B and outputs are L*, a*, b*, a scanner for which inputs are L*, a*, b* and outputs are R, G, B, a printer for which inputs are Y, M, C, K, R, G, B and outputs are L*, a*, b*, or the like may be employed. Further, application to spectral reflectances or the like is possible. In such a case, for example, incidence angles of light sources, reception angles of receptors, receptor azimuth angles, rotation angles of test piece stages and the like may be employed as inputs, and spectral transmittances and the like can be employed as outputs.

## Claims

1. A color reproduction method that finds second color data, of a plurality of components represented in a second color system, corresponding to first color data of a plurality of components represented in a first color system, the second color system differing from the first color system, and the color reproduction method comprising:
measuring each of colors represented by the second color data that correspond to a predetermined plurality of the first color data, and acquiring a plurality of sample data;
targeting the respective components of the first color data corresponding to each of the acquired sample data, treating sample data corresponding to one target component as point sequence data in multiple dimensions, represented by a product of a number of components of the second color data and a number of the sample data of the respective components excluding the target component, and finding first control points which represent a characteristic of an approximation curve which approximates with the target components serving as parameters;
thereafter targeting another of the components, treating the first control points corresponding to the target component as point sequence data in the multiple dimensions, and finding second control points which represent a characteristic of an approximation curve which approximates with the target components serving as parameters;
sequentially altering the target component and finding final control points;
finding an interpolation equation from the final control points that have been found, for interpolating color data other than the sample data; and
finding the respective control points, from the first control points to the final control points, by performing least squares approximations with B-spline curves, wherein least squares are approximated with vectors of the B-spline curves.

2. A color reproduction method that finds second color data (x,y,z), constituted by three components x, y and z which are represented in a second color system, corresponding to first color data (u,v,w), constituted by three components u, v and w which are represented in a first color system, the second color system differing from the first color system, and the color reproduction method comprising:
measuring each color represented by the second color data that corresponds to a predetermined plurality of the first color data, and acquiring (A, B, C) units of sample data for the respective components of the first color data;
targeting the u components of the first color data corresponding to each of the acquired sample data, treating the sample data corresponding to the target components as A units of point sequence data in 3 components×B×C dimensions, performing a least squares approximation with a B-spline curve with the target u components serving as parameters, wherein least squares are approximated with a vector of the B-spline curve, and finding Mu units of first control points which represent a characteristic of the B-spline curve in 3×B×C dimensions;
targeting the v components of the first color data corresponding to each of the acquired sample data, treating the first control points corresponding to the target components as B units of point sequence data in 3 components×C×Mu dimensions, performing a least squares approximation with a B-spline curve with the target v components serving as parameters, wherein least squares are approximated with a vector of the B-spline curve, and finding Mv units of second control points which represent a characteristic of the B-spline curve in 3×C×Mu dimensions;
targeting the w components of the first color data corresponding to each of the acquired sample data, treating the second control points corresponding to the target components as C units of point sequence data in 3 components×Mu×Mv dimensions, performing a least squares approximation with a B-spline curve with the target w components serving as parameters, wherein least squares are approximated with a vector of the B-spline curve, and finding Mw units of third control points which represent a characteristic of the B-spline curve in 3×Mu×Mv dimensions; and
finding an interpolation equation from the third control points that have been found, for interpolating the color data other than the sample data.

3. The color reproduction method described in claim 2, wherein the interpolation equation found from the third control points is:




  
    (
    
      
        
          x
        
      
      
        
          y
        
      
      
        
          z
        
      
    
    )
  
  =
  
    
      ∑
      i
      
        M
        u
      
    
    ⁢
    
      
        ∑
        j
        
          M
          v
        
      
      ⁢
      
        
          
            ∑
            k
          
          
            M
            w
          
        
        ⁢
        
          
            (
            
              
                
                  
                    P
                    ijk
                    x
                  
                
              
              
                
                  
                    P
                    ijk
                    y
                  
                
              
              
                
                  
                    P
                    ijk
                    z
                  
                
              
            
            )
          
          ⁢
          
            
              N
              i
              u
            
            ⁡
            
              (
              u
              )
            
          
          ⁢
          
            
              N
              j
              v
            
            ⁡
            
              (
              v
              )
            
          
          ⁢
          
            
              N
              k
              w
            
            ⁡
            
              (
              w
              )
            
          
        
      
    
  



in which:
x is the value of the x component of the second color data;
y is the value of the y component of the second color data;
z is the value of the z component of the second color data;
u is the value of the u component of the first color data;
v is the value of the v component of the first color data;
w is the value of the w component of the first color data;
Px, Py and Pz are control points;
Nu, Nv and Nw are basis functions;
Mu, Mv and Mw are numbers of control points (=numbers of basis functions); and
characters indicated in bold font are vectors.