Abstract:
Method of generating a sharpened image in a thermal printer having an internal thermal model module that converts input values into power values for each element of a thermal head and for each printing cycle. Input values to be fed into the internal thermal model are obtained by mathematically simulating the behaviour of the printer.

Description:
[0001]     This application claims the benefit of U.S. Provisional Application No. 60/567,877 filed May 24, 2004, which is incorporated by reference. In addition, this application claims the benefit of European Application No. 04101372.3 filed Apr. 2, 2004, which is also incorporated by reference. 
     
    
     FIELD OF THE INVENTION  
       [0002]     The present invention relates to a thermal printing method, in particular to a method of generating a sharpened image by means of a thermal printer.  
       BACKGROUND OF THE INVENTION  
       [0003]     In a thermal printer with a thermal head having a plurality of heating elements and a transport mechanism that causes a relative movement of a thermally sensitive material with respect to the thermal head, the printing process is typically divided into print cycles whereby in each print cycle the heating elements receive different amounts of energy appropriate to cause the wanted densities on the part of the media that is in contact with the thermal head during that cycle.  
         [0004]     The thermally sensitive material maybe composed of a donor sheet and an acceptor sheet as in the diffusion transfer process or maybe film or sheet of paper that is thermally sensitive by itself.  
         [0005]     The present invention relates in particular to a printing method to be used in a thermal printer intended for applications that require high image quality such as printers for medical diagnosis.  
         [0006]     In such a printer, images are supplied by a host computer, hereafter called “host-images” that have digital values directly or indirectly corresponding to the wanted density of a certain area on the printed media. This area is called a “host-pixel” further on. In case of a colour printer, each value corresponds directly or indirectly to the density of one specific colorant of the colour image. For each “host-pixel” and for each colour printed, one value is required.  
         [0007]     The host-image is typically organised in rows and columns, whereby in one specific case each column corresponds to one heating element of the head and each row corresponds to one print cycle of the printing process. In all other cases, the source image has to be transformed into a new image with a different number of values so that each value corresponds to a heater element in a specific print cycle. This transformation is well known as “interpolation”.  
         [0008]     If the resulting pixels of the printer-image are not directly corresponding to the densities wanted on the media, there is usually a translation mechanism that translates the “user” meaning of the values into a value that corresponds to the wanted density effect on the media (see  FIG. 1 ).  
         [0009]     Because the media can only be influenced by temperature of the heating elements, the density values must be translated into a temperature value for the heating elements. This is done using the sensitometry information of the media. This sensitometry information is obtained usually during a media calibration before using such a printer. Most printers have automatic means to perform a media calibration when entering new media into the printer.  
         [0010]     At this point, the image is available as “wanted temperature” for each heating element during each heating cycle.  
         [0011]     The only driving parameter the printer has available is the power it injects into each heating element during each heating cycle.  
         [0012]     The amount of power that a printer needs to reach the wanted temperature for a certain density is highly dependent on different temperatures in the system. Therefore, in state of the art printers each printing cycle a line of the wanted temperature image is fed into a ‘thermal model’ along with measured temperatures and a state variable to calculate a line of power values which then are used to drive the heating elements. The State variable is a set of values that assist the thermal model to compensate for the temperature rise in the thermal head and the lateral heat distribution (see  FIG. 2 ). An example of such a thermal model can be found in European patent application 671 276.  
         [0013]     This thermal model has to run real-time and should therefore not be complicated, especially if it runs on a computer that has several other tasks to perform.  
         [0014]     Without this thermal model, thermal printers would render very poor image quality and be unstable in density reproduction. Using a thermal model, state of the art printers are capable of producing images that are acceptable for medical application.  
         [0015]     Most state of the art printers have an additional correction of the power-values to correct for the different behaviour of the individual heating elements ( FIG. 3 ). This additional correction prevents uneveness along the thermal head due to variation in element properties such as resistance values of the heating resistors.  
         [0016]     Although the quality of thermal printers is accepted, images of wet laser printers compared to state of the art thermal printers are still easier to read.  
         [0017]     The cause of this effect is explained by means of an experiment illustrated in  FIG. 4 .  
         [0018]     Suppose a density profile corresponding with a step function is printed, both on a state of the art thermal printer and on a laser printer and then the printed result is measured using a scanning micro densito meter.  
         [0019]     In  FIG. 4  curve A represents the wanted density for a transition from low to high density in transport direction, curve B is the density curve obtained by means of a typical wet laser printer, curve C is the resulting density curve of a typical state of the art thermal printer. Curve C is the result of the printer behaviour combined with the sensitometric transformation characteristic of the recording material.  
         [0020]     Curve B of the laser printer has a typical shape due to the Gaussian beam distribution of the laser spot used to write the image. Already at a distance equal to a few times the spotsize of the laser from the edge, the density profile has reached its final value.  
         [0021]     Curve C pertaining to the thermal printer clearly shows that at the first 2 mm after increasing the wanted density, the thermal model is not capable to predict the needed amount of power correctly.  
         [0022]      FIG. 5  pertains to the direction parallel with the thermal head. Curve A represents the wanted density for a transition from low to high density in a direction parallel with the thermal head. Curve B is the resulting density curve of a typical wet laser printer. It is basically the same as the laser curve in the transport direction. Curve C is the resulting density curve of a typical state of the art thermal printer.  
         [0023]     Curve C pertaining to the thermal printer clearly shows that in the first 1 mm distance from the edge of the low to high density transition, the thermal model is not capable to predict the needed amount of power correctly.  
         [0024]     From these measurements can be concluded that some sharpness is lost due to the fact that the dynamics of heat storage in the head and the lateral heat spread along the head are not accurately modelled in the thermal model.  
         [0025]     A way of solving this problem could be to simulate the heat distribution in the head using a Finite Element Model that is capable of predicting the temperatures in the neighbourhood of the heating elements very accurately and therefore also enables a computer system to calculate the required power to heat the elements to a desired value to any degree of accuracy.  
         [0026]     Although a FEM model is capable of performing the task, a very expensive computer would be needed to run it at sufficient speed to serve as part of the thermal model in the printer.  
       SUMMARY OF THE INVENTION  
       [0027]     The above-described objects are solved by a method as set out in claim  1  and dependent claims.  
         [0028]     Further details will become apparent from the detailed description given below. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0029]      FIG. 1  illustrates the conversion of a ‘printer image’ into a ‘wanted temperature image’,  
         [0030]      FIG. 2  illustrates the concept of ‘thermal model’,  
         [0031]      FIG. 3  illustrates the correction of power values for different behaviour of individual heating elements,  
         [0032]      FIG. 4  is the result obtained by applying a profile which is a low to high transition in transport direction of the recording material,  
         [0033]      FIG. 5  is the result obtained by printing a transition which is a low to high transition in the direction of the thermal head,  
         [0034]      FIG. 6  illustrates one embodiment of this invention,  
         [0035]      FIG. 7  illustrates an embodiment of this invention in which more than one function is used. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0036]     According to this invention a module is developed which can be placed between the “wanted temperature image” and the “thermal model” of the state of the art printer as shown in  FIG. 2  and that improves the sharpness of the images without requiring expensive hardware upgrades of the printer.  
         [0037]     This module is further on referred to as TML (Temperature Modification Layer).  
         [0038]     The “wanted temperature image” can be written as a matrix of digital values Mtw whereby each row Ktw of the matrix represents the “wanted temperature” values for a given print cycle and the columns Ttw of the matrix represent the “wanted temperature” values for a given heating element of the head for all print cycles of the image to be printed.  
         [0039]     A print cycle is a period of time corresponding to an area on the recording medium during which wanted densities along the print head have a certain value.  
       First Embodiment  
       [0040]     In one embodiment of the invention a function F(Ktw,b,c, . . . ) is defined that accepts a number of fixed parameters b,c . . . and an array of values Ktw, representing the wanted temperatures for one cycle of the printing process.  
         [0041]     The function F(Ktw,b,c, . . . ) returns a vector Ft of the same size as Ktw.  
         [0042]     The function F can be any function but is preferably a simple one.  
         [0043]     Parameter ‘b’ controls the dynamic behaviour of the function and parameter ‘c’ controls the output amplitude of the function.  
         [0044]     Also additional parameters further controlling the function behaviour may be available.  
         [0045]     An example of such a function is a function that creates a new vector out of Ktw whereby each element of the new vector is the sum of b elements of Ktw, multiplied by c/b. (See formula 1) The first and last b/2 elements of Ft are calculated with an adapted formula, whereby the missing elements of Ktw are substituted by zero&#39;s:  
               Ft   i     =       c   b     ·       ∑     j   =     i   -     b   2           i   +     b   2         ⁢     Ktw   j                 (     formula   ⁢           ⁢   1     )             
 
         [0046]     When more than b subsequent elements of Ktw have an identical value V, the corresponding elements of Ft will have value ‘c.V’, after a transition region of ‘b’ elements wide.  
         [0047]     Many other simple functions can be defined that evolve to a stable value ‘c.V’ and have a parameter ‘b’ that controls the number of elements to do so.  
         [0048]     We define also a ‘matching function’ Fm( )=a.Ktw+F(Ktw,b,c, . . . ), whereby a=1−c.  
         [0049]     This ‘matching function’ has the important property that it does not alter the steady state values of Ktw and that it has a shape which to a certain extent simulates the behaviour of the printer when applying a vector Ktw during a printcycle.  
         [0050]     In a next step of the procedure the parameters b,c, . . . of function F( ) are set so that Fm( ) combined with the sensitometry of the recording material optimally simulates the (thermal) behaviour of the printer.  
         [0051]     The following procedure can be used to set these parameters. However, alternative methods are possible such as using the TML step defined below with different parameter settings and visually selecting the optimal result.  
         [0052]     First a test pattern is printed for each print cycle using a vector KTW_test (which represents a test pattern), for example an image corresponding with a step function (a step-wise transition from a low value to a high value) evolving in the direction of the thermal head is printed using the printer with TML switched off. The step function must be such that both low value and high value produce a measurable density on the media.  
         [0053]     The printed film-sheet is accurately measured, and a step function response measured in densities is obtained.  
         [0054]     This step function response in densities is transformed into values proportional to wanted heating element temperatures using sensitometry information of the recording material that is used. The vector of these values is indicated with symbol Ktm.  
         [0055]     Using Ktw_test we calculate Ktp using the matching function: 
 
 Ktp=a. Ktw   —   test+F ( Ktw   —   test,b,c , . . . ) 
 
         [0056]     We now run an optimising process whereby the parameters of b,c, . . . for F( ) are modified to obtain a best match between Ktp and Ktm. Such an optimising process is available in MathCad working sheets or the like (MathCad is a trademark of Mathsoft Engineering &amp; Education Inc.).  
         [0057]     Occasionally parameter ‘a’ can likewise be determined during this optimising process.  
         [0058]     After setting the parameters, the matching function is a prediction of the printer&#39;s behaviour.  
         [0059]     Next, according to TML the rows Ktw of the matrix Mtw are changed using formula 2: 
 
 Ktwc= 1 /aopt *( Ktw−F ( Ktw,bopt,copt , . . . ))  (formula 2) 
 
         [0060]     For large area with the same value for each element Ktw i  of Ktw, we already discussed that Ft i =c.Ktw i .  
         [0061]     In these regions of the vector Ktw, Ktwc i =Ktw i  since a=1−c.  
         [0062]     This means that formula (2) does not change overall densities and that the module can be inserted without changing the density stability of the system. Furthermore, because the behaviour of the changing function is matched to the measured behaviour of the printer, the changed temperature vector Ktwc will result in a more accurately printed density pattern and therefore a sharper image.  
         [0063]     The result of the above described TML process is input of the thermal model of the printer and adapted driving power values for each of the elements of thermal head are generated.  
       Second Embodiment  
       [0064]     In another embodiment of the invention a function F(Ttw,b,c, . . . ) is defined that accepts a number of fixed parameters b,c . . . and a vector of values Ttw, representing the wanted temperatures for a given heating element for all printing cycles of the printing process.  
         [0065]     The function F( ) returns a vector Ft of the same size as Ttw. It can be any function but preferably a simple one. Parameter ‘b’ controls the dynamic behaviour of the function and parameter ‘c’ controls the output amplitude of the function. Also additional parameters further controlling the function behaviour may be available.  
         [0066]     An example of such a function creates a new vector out of Ttw whereby each element of the new vector is the sum of b elements of Ttw, multiplied by c/b.  
         [0067]     (see formula 3).  
         [0068]     The first b elements of Ft are calculated with an adapted formula, whereby the missing elements of Ttw are substituted by zero&#39;s:  
               Ft   i     =       c   b     ·       ∑     j   =     i   -   b         i   -   1       ⁢     Ttw   j                 formula   ⁢           ⁢   3             
 
         [0069]     When more than b subsequent elements of Ttw have an identical value V, the corresponding elements of Ft will have value ‘c.V’, after a transition region of ‘b’ elements wide.  
         [0070]     Many other simple functions can be defined that evolve to a stable value ‘c.V’ and have a parameter ‘b’ that controls the number of elements to do so.  
         [0071]     We define also a ‘matching function’ Fm( )=a.Ttw+F(Ttw,b,c, . . . ), whereby a=1−c.  
         [0072]     The next steps are similar to the embodiment that provided a improved temperature in head direction.  
       Third Embodiment  
       [0073]     In yet another embodiment of the invention a function F(Mtw,b,c,d, . . . ) is defined which accepts a number of fixed parameters b,c,d . . . and a matrix of values Mtw, representing the wanted temperatures for all heating elements and all printing cycles of the printing process and that generates a new matrix Ft as output.  
         [0074]     In this embodiment the function F( ) influences both details along the head direction as details along the transport direction whereby the behaviour in head direction is mainly determined by a subset of parameters of the parameters b,c,d . . . . and the behaviour in transport direction is mainly determined by (another) subset of parameters of b,c,d . . .  
         [0075]     The function F( ) can be any function but again preferably a very simple one.  
         [0076]     An example of such a two dimensional function is a function which renders the sum of b.d elements of the matrix Mtw. (See formula 4). In the border-regions the missing elements of Mtw are substituted by zero&#39;s.  
               Ft     i   ,   j       =       c     b   ·   d       ·       ∑     k   =     i   -   b         k   -   1       ⁢       ∑     1   =     j   -     d   2           j   +     d   2         ⁢     Mtw     k   ,   1                     formula   ⁢           ⁢   4             
 
         [0077]     When a rectangular area of substantially more than b.d elements of Mtw have an identical value V, the corresponding elements of Ft will have value ‘c.V’, after a transition region of ‘b’ elements in transport direction and ‘d’ elements in head direction.  
         [0078]     Many other simple functions can be defined that evolve to a stable value ‘c.V’ and have parameters ‘b’ and ‘d’ that control the number of elements to do so.  
         [0079]     We define also a ‘matching function’ Fm( )=a*Mtw+F(b,c,d . . . ,Mtw), whereby a=1−c.  
         [0080]     The next steps are similar to the embodiments that provided a correction in head and transport direction separately.  
         [0081]     More particularly, first the parameters of the function F( ) are determined, e.g. by performing the following steps.  
         [0082]     A image corresponding with a test pattern such as a step-wise evolving pattern is printed. Generated densities are measured and a reference matrix Mtm is determined of values proportional to wanted heating temperatures using the sensitometry of the printing material.  
         [0083]     Next, the same test pattern values are applied to said matching function resulting in a matrix Mtp.  
         [0084]     Then an optimizing process is run to obtain an optimal match between Mtp and Mtm thereby modifying the parameters b, c, d, The parameters of the function F( ) are set to the values bopt, copt, dopt, . . . obtained at the end of the optimizing process.  
         [0085]     Finally, the following values are applied as input values to the internal thermal model module of the printer: Mtwc=1/aopt(Mtw−F(Mtw, bopt,copt, dopt, . . . )  
       Fourth Embodiment  
       [0086]     In another embodiment of the invention, the function F( ) has an internal state St.  
         [0087]     St can be a single value, an array of values, a two-dimensional matrix of values or any combination thereof.  
         [0088]     In this embodiment, the state of the function St is initialised before calculation. After start of the calculation, the state St of the function enables the function to calculate the values Mtwc of a printing cycle based on the state St and the row of Mtw corresponding to a current printing cycle and the parameters b,c,d, . . .  
         [0089]     An example such a function using a state variable is given below. Formula 4 is implemented in this example as a function using a state.  
         [0090]     The state St of this function consists of a vector S and a matrix B and a pointer p.  
         [0091]     Vector S has as many elements as Mtw has columns.  
         [0092]     Matrix B has as many columns as Mtw and has b rows.  
         [0093]     At each point in time, the values in S can be written as:  
         S   j     =       ∑     j   =   0       b   -   1       ⁢     B     i   ,   j             
 
 Initially, all elements of S and B and pointer p are set to zero. 
 
         [0094]     Now, the function of formula 4 for row i is calculated as follows (assume all rows &lt;i have been calculated before)  
                 Ft     i   ,   j       =       c     b   ·   d       ·       ∑     k   =     j   -     d   2           j   +     d   2         ⁢     S   k           ⁢     
     ⁢       S   j     =       S   j     -     B     p   ,   j       +     Mtw     i   ,   j           ⁢     
     ⁢       B     p   ,   j       =     Mtw     i   ,   j         ⁢     
     ⁢       If   ⁢           ⁢   p     =       b   -     1   ⁢           ⁢   then   ⁢           ⁢   p       =       0   ⁢           ⁢   else   ⁢           ⁢   p     =     p   +   1                   Formula   ⁢           ⁢   4             
 
         [0095]     One can easily see that for row i=0, the procedure is correct.  
         [0096]     For each following line, the array of sums is updated by subtracting the element that falls outside the range over which the sum has to be taken and this element is replaced by the proper element of Mtw, both in the buffer B and in the sum S. Therefor, the meaning of S is guaranteed at all times and the formula is correct for all values of i.  
         [0097]     The same function is obtained, but ‘b’ additions are replaced by a subtraction, an addition and two memory operations per heating element. The setting of the pointer has to be done only once per line.  
         [0098]     With large ‘b’ this ‘state’ approach will enable substantially faster calculation.  
         [0099]     Generally, in the ‘state’ approach the function F( ) used both as part of the matching function Fm( ) and in the TML step consists of a function Fk(Ktw,St,b,c,d, . . . ) and a function Fs(Ktw,St,b,c,d, . . . ).  
         [0100]     For the TML step the calculation follows the pattern below: 
        St=state of the calculation, initialized at start of printing.     Fk( )=function that calculates a row of Ft from a row of Mtw and St and parameters     Fs( )=function that calculates the new state from a row of Mtw and St and parameters        
 
         [0104]     For each print cycle i we take a row of Mtw that is processed using Fk en Fs. First the changed temperatures for this row are calculated, then the state St is updated:  
                 Ktw   j     =     Mtw     i   ,   j         ⁢     
     ⁢     Ktwc   =       1   a     ⁢     (     Ktw   -     Fk   (     Ktw   ,   St   ,   b   ,   c   ,   d   ,   …     ⁢           )       )         ⁢     
     ⁢     St   =     Fs   (     Ktw   ,   St   ,   b   ,   c   ,   d   ,   …     ⁢           )       ⁢     
     ⁢       Mtwc     i   ,   j       =       Ktwc   j     .               formulae   ⁢           ⁢   5             
 
       Fifth Embodiment  
       [0105]     In yet another embodiment of the invention, the function Fs( ) uses the changed temperatures to calculate the state.  
         [0106]     In this embodiment, the formulas relating to the TML step are the following:  
                 Ktw   j     =     Mtw     i   ,   j         ⁢     
     ⁢     Ktwc   =       1   a     ⁢     (     Ktw   -     Fk   (     Ktw   ,   St   ,   b   ,   c   ,   d   ,   …     ⁢           )       )         ⁢     
     ⁢     St   =     Fs   (     Ktwc   ,   St   ,   b   ,   c   ,   d   ,   …     ⁢           )       ⁢     
     ⁢       Mtwc     i   ,   j       =     Ktwc   j               formulae   ⁢           ⁢   6             
 
         [0107]     In  FIG. 6  the best prediction ‘A’ for the embodiment using formula 1 of the behaviour of the printer ‘B’ and the resulting corrected Mtwc line ‘C’ is also shown.  
         [0108]     Although this very simple function and the method of calibrating it provide an improvement on printer drive values with respect to sharpness, one can see that it is generally impossible for a simple function F( ) to model the behaviour correctly both close to the edge and at larger distances from the edge.  
       Sixth Embodiment  
       [0109]     In another embodiment of the present invention, a set of identical functions F( ) of any of the types discussed in previous sections, with or without a state variable, is defined, whereby all functions accept the same set of parameters a,b,c,d, . . . but with different values for these parameters and each function also accepts Mtw or a row of Mtw in case the state approach is used.  
         [0110]     Each function generates new matrices F1,F2,F3, whereby, if Mtw has a stable value V, the function values of F1,F2,F3 are c1.V,c2.V,c3.V respectively.  
         [0111]     A matching function is now defined so that a=1−(c1+c2+c3+ . . . ) and 
        Mtp=a.Mtw+F1(Mtw,b1,c1, . . . )+F2(Mtw,b2,c2, . . . )+F3(Mtw,b3,c3, . . . )+.        
 
         [0113]     In order to set the parameters a,b1,c1, . . . etc, a measurement can be done on a known input pattern Mtw resulting in a density pattern which can be measured. Measured values can be converted to an equivalent temperature pattern Mtm.  
         [0114]     Then a curve fitting process can be executed to fit Mtp to Mtm and thereby defining an optimal set of parameters.  
         [0115]     After setting the parameters, the functions F1( ),F2( ),F3( ) . . . are used in the TML step as follows: 
 
 Mtwc= 1 /a .( Mtw−F 1( Mtw,b 1, c 1, . . . )− F 2( Mtw,b 2, c 2, . . . )− F 3( Mtw,b 3, c 3, . . . )− . . . ) 
 
         [0116]     The functions F1( ),F2( ),F3( ) . . . can be of any of the forms discussed in the embodiments above.  
         [0117]     By using more than one function it is possible to model the printer&#39;s behaviour much more accurately as can be seen in  FIG. 7 .  
         [0118]     Because the functions are identical they can be evaluated simultaneously by a vector processor available in modern CPU&#39;s such as ALTIVEC (ALTIVEC is a trade name of Motorola). Processing speed can be enhanced by keeping the functions F very simple and accuracy can be enhanced by including as much components as needed.