Abstract:
Sensitometric information is stored with a consumable print medium having a predetermined sensitometry by compressing the sensitometric information as a set of spline coefficients for use with a printer adapted to decode the set of spline coefficients to construct a sensitometric curve. A set of spline coefficients is generated, spline coefficients are encoded, and the encoded spline coefficients are stored in a manner which is accessible to a printing device adapted to make use of the media sensitometry data for purposes of device calibration. The coefficient-generating step comprises fitting a spline curve to the sensitometry data. The spline curve may be monotonic cubic. The encoding step may include encoding a difference signal representing a difference between input values for a set of sequential spline knots. The encoding step may also include encoding a difference signal representing a difference between the output values of the sensitometry curve and output values of a reference sensitometry curve for each of a set of sequential spline knots. The difference signal may be encoded by quantizing the difference signal into a set of discrete bins.

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     Reference is made to commonly assigned, co-pending U.S. Pat. application Ser. No. 08/128,008, filed in the name of Mark Bobb on Sep. 27, 1994. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to printing processes that use printer-sensitive consumable media. Examples of such printing processes include thermoplastic transfer printing and thermal dye transfer printing. More particularly, the present invention relates to including sensitometry information along with printer media for more accurate tone reproduction and so that the media can be updated without causing confusion regarding the appropriate sensitometry curve. 
     2. Background of Invention 
     Thermal printers selectively heat the elements of a print head to transfer dyes and inks from a donor medium to a receiver medium. Thermoplastic transfer printers have a donor medium that includes a meltable wax which is impregnated with colored pigments or inks. Portions of the wax layer are heated to a liquid state, and are transferred with the color pigments or inks to a receiver medium. Thermal dye transfer printers have a donor medium which carries a dye that is transferred to a receiver by a sublimation process. The amount of dye transferred is generally controlled by the amount of energy supplied to an individual element. A typical print head includes a plurality of selectively operable resistive heat elements. 
     Receiver media are available in several types optimized for a variety of applications including reflection prints and transparencies. Similarly, donor media come in several types, such as monochrome or color. A typical thermal printer adjusts the energization of the print head based upon the type of donor and receiver media used to achieve an acceptable print quality. Thermal printers typically determine the type of media present in the printer by detecting information which may be marked directly on the media or on structures associated with the media such as a spool or cassette. 
     Detection marks frequently convey information which identifies the media, provides positional information on the media, and also can provide additional helpful information. Examples of identification information include manufacturer, logo or trademark, media type or application, lot number, size of media, number of prints, number and/or sequence of colors, size of frame, and printing correction factors. Positional information may include side of media (front or back), beginning of media, beginning of frame, beginning of color patch, end of media, end of frame, initial print position, and direction (forward or reverse). Additional information may be included in detection marks, such as number of frames remaining, color of frame, quality of frame, printing sequence of frames, dye sensitivities, and change in dye sensitivities. Other kinds of information may also be included in the detection marks. 
     One method a printer uses to determine how to energize the print head is by detecting information stored in a detection mark on the dye donor and/or dye receiver. After decoding the detection mark, the printer selects appropriate print head energization parameters suited to the media present from a plurality of stored parameter tables. 
     U.S. Pat. No. 4,820,686, which issued to Ito et al. on Apr. 11, 1989, discloses the use of detection marks on the transfer sheet for the purpose of confirming the side of the sheet, the direction of travel, the grade of the sheet, and sheet position. The marks may be electrically conductive, magnetic, fluorescent, etc. U.S. Pat. No. 5,266,968, which issued to Stephenson in 1993, discloses a means for identifying each dye frame on a transfer sheet using a non-volatile memory associated with each transfer sheet cartridge. The memory may also contain information on defective frames and color correction data. 
     In conventional detection marking methods, the amount of information which can be stored in the detection mark is quite limited. For example, the amount of information which can be stored in a bar code or similar detection mark is limited by the number of lines the code includes. 
     To overcome this limitation, a multiplicity of tables containing print head energization parameters are frequently stored in the printer. At least one table is provided for each combination of dye donor and dye receiver which the printer can use. The number of tables which can be stored in a printer is limited by the amount of memory which the printer has. As the amount of memory increases, so does the complexity and cost of the printer hardware. Therefore, this method of storing print head energization parameters permanently in a printer has a limited usefulness. 
     Some other problems arise from this method of determining energization parameters for the print head. The first issue is lot-to-lot variation within a particular media formulation. The optimum performance characteristics of both donor media and receiver media vary from manufacturing lot to manufacturing lot. Thus, the tables of energization parameters stored in the printers must cover a range of performance characteristics, resulting in less than optimum performance for most lots of media. 
     A second issue is a long range problem. The formulations of the dye donor or dye receiver may change with time, or new formulations may be developed. To extend the usefulness of the printer, it would be highly desirable if the printers&#39; energization parameter tables could be modified or adjusted. However, with current printer designs it is difficult and expensive to modify these parameter tables once the printer leaves the factory. 
     In order to achieve dramatic improvements, it is necessary to provide more media-carried information to the printer than current detection marking methods can provide. Therefore, a new high capacity method is needed for marking and detecting information on donor media, receiver media or their associated structures such as spools or cassettes. Such additional information capacity would permit a printer to adjust its stored performance parameters to permit optimum print quality for each lot of dye donor or dye receiver, or for new media formulations. 
     Commonly assigned, co-pending U.S. Pat. application Ser. No. 08/128,008, filed in the name of Mark Bobb on Sep. 27, 1994, provides a method of storing information with a consumable thermal transfer printer medium, wherein medium information to be associated with a thermal transfer printer medium is compressed and stored in physical association with the thermal transfer printer medium. The information compression may be by adaptive means, by error correction code means, or other suitable means; with or without an error correction code and with or without encrypting. The information may be stored on the thermal transfer donor medium, on the thermal transfer receiver medium, on a label adhered to the medium, or on accompanying structure such as a spool or cassette. 
     SUMMARY OF THE INVENTION 
     An object of the present invention is to provide media with memory comprising encoded media specific sensitometry information in order to enable a printer adapted to decode said memory to produce output with accurate tone reproduction using said media. 
     Another object of the present invention is to encode media specific sensitometry information in a way that advantageously reduces the amount of memory required. 
     Another object of the present invention is to provide more information about a thermal printer media in a high information capacity indicia or detection mark applied to the media, or cassette holding the media, or like structure. 
     A further object of the present invention is to provide a method for a thermal printer for detecting a high information capacity indicia or detection mark, and decoding the same for subsequent operation of the printer. 
     Another object of this invention is to provide optimum print quality by adjusting for lot-to-lot variation in performance characteristics of the media. 
     Still another object of the present invention is to provide a method for a thermal printer for automatically adjusting printing parameters for new formulations of a media automatically. 
     A further object of the present invention is to store printing parameter modification information on the dye donor media, dye receiver media or support structures such as spool cores or cassettes. 
     Still a further object of the present invention is to store information on the media or support structures using data compression techniques, and to provide a thermal printer capable of decompressing such information. 
     According to the above objects, the present invention provides for storing information with a consumable print medium having a predetermined sensitometry, wherein sensitometric information is compressed as a set of spline coefficients for use with a printer adapted to decode the set of encoded spline coefficients to construct a sensitometric curve. 
     According to a preferred embodiment of the present invention, the media is thermal donor ribbon for use with a dye sublimation printer. The method includes the steps of generating a set of spline coefficients; encoding the spline coefficients; and storing the encoded spline coefficients in a manner which is accessible to a printing device adapted to make use of the media sensitometry data for purposes of device calibration. The coefficient-generating step comprises fitting a spline curve to the sensitometry data. The spline curve may be monotonic cubic. Encoding the spline coefficients may be done by storing a difference between input values for a set of sequential spline knots. The encoding step may include encoding the spline coefficients by storing a difference signal representing a difference between the output values of the sensitometry curve and output values of a reference sensitometry curve for each of a set of knots in the set of splines. The difference signal may be encoded by quantizing the difference signal into a set of discrete bins. 
     The invention, and its objects and advantages, will become more apparent in the detailed description of the preferred embodiments presented below. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a dye donor cassette with bar coded information marked on a side; 
     FIG. 2 shows a dye donor cassette with information marked on the end of a spool; 
     FIG. 3 shows a cassette with information marked in the form of reflective strips; 
     FIG. 4 shows a dye donor or dye receiver media with information marked on surface of the media; 
     FIG. 5 shows a dye donor or dye receiver media with information formed as a portion of one of the layers which form the media; 
     FIG. 6 shows a dye donor or dye receiver media with information marked in between layers which form the media; 
     FIG. 7 shows a dye donor or dye receiver media with information marked in a machine readable code; 
     FIG. 8 shows a dye donor or dye receiver media with information marked in a human readable code; 
     FIG. 9 shows a dye donor or dye receiver media with information marked in an alphanumeric code; 
     FIG. 10 shows a dye donor or dye receiver media with information marked in a customized shape; 
     FIG. 11 shows a dye donor or dye receiver media with information marked in another customized shape; 
     FIG. 12 shows dye donor or dye receiver media with information marked in a magnetically detectable strip; 
     FIGS. 13a, b and c show dye donor or dye receiver media with information marked in an electroconductively detectable strip; 
     FIG. 14 is a graph showing an example of sensitometry data and a least squares monder spline fit thereto; and 
     FIG. 15 is a plot of a reference media sensitometry curve and a spline reconstruction of a test media curve. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Information may be associated with printer media in many ways. FIGS. 1-13 illustrate several known ways of doing so. FIG. 1 shows a donor medium cassette 10 containing donor medium 11 with information marked on a side 12 in the form of a bar code 14 which would be detected by the thermal printer (not shown). 
     FIG. 2 shows another donor medium cassette 16 containing donor medium 18 in which information is marked on the end of a spool 20 within dye donor cassette 16 in the form of long and short bars 22 which are detected by optical sensors 24 and 26 of a thermal printer (not shown). 
     FIG. 3 shows a different method for conveying information in which reflective strips are located on a donor cassette 28 containing donor medium 30. A plurality of reflective strips 32-35 are attached to cassette 28 and can be detected optically, electrically or magnetically in such a way that their presence or absence indicates information. 
     Information can also be encoded directly on the donor media or receiver media. As shown in FIG. 4, detection marks 36 can be located on the top of a dye or pigment layer 38 of the media, where layer 38 is on top of a support layer 40. Although not shown, detection marks 36 could also be formed on the support layer 40. 
     Alternatively, detection marks can be formed as an integral portion of one of the layers which make up the media such as in FIG. 5 where the mark 36&#39; is formed as part of the support layer 40&#39;. Again not shown is the alternative where detection mark 36&#39; is formed as part of a dye or pigment layer 38&#39;. Yet another method could have detection marks 36&#34; imbedded in the media between layers 38&#34; and 40&#34; as shown in FIG. 6. 
     Information marked on media or structures such as cassettes may take many forms. Bar codes 14 and machine readable codes 22 have already been shown in FIGS. 1 and 2, respectively. A different machine readable code 42 marked on a donor medium 44 is shown in FIG. 7. Additional forms include, but are not limited to, human readable codes 46 in FIG. 8, alphanumeric codes 48 shown on a receiver medium 50 in FIG. 9, or other codes such as optical character recognition codes (not shown). Other customized detection marks may also be used, such as geometric shapes 52 shown on a dye receiver 54 in FIG. 10 and cut marks 56 shown on a continuous dye receiver medium 58 shown in FIG. 11. 
     Media may be marked with information in patterns that are optically detectable by either transmission or reflection such as the bar code 14 in FIG. 1, or on a magnetically detectable strip 60 shown on a continuous receiver medium 62 in FIG. 12. 
     Electroconductively detectable marking methods 64 are shown in FIG. 13A on a dye receiver 66, while mechanically detectable markings such as notches (not shown) are well known in photographic films. Finally, a bar code 68 or other mark could be applied to the receiver medium 70 as shown in FIG. 13B. Any of the detection marks discussed herein could be applied with nonvisible marking methods such as represented at 72 on a receiver medium 74 in FIG. 13C. 
     A sensitometry curve is typically a relationship between input printer code values and output print densities. Sensitometry curves can vary for a specific type of media due to manufacturing variations or design changes in media properties. A sensitometry curve may be represented in a variety of ways, including, among others, a complete list of 12-bit print densities for each possible input code value, a mathematical function such as an exponential parameterized by a scale and decay rate or a polynomial interpolating a discrete set of code values and corresponding print densities. 
     One particularly suitable family of representation methods is that of piecewise defined functions, hereinafter referred to as splines, that provide means to reconstruct an entire sensitometry curve given a limited set of input-output pairs. The simplest example is the well-known method of linear interpolation in a table of values, wherein a reconstructed output value for a particular input value is computed by first locating a pair of inputs in the table that bound the input value in question, second computing the straight line joining the corresponding tabulated input-output pairs, and third evaluating the line at the input value in question. 
     Linear interpolation is limited in its ability to accurately represent curves with extreme curvature without use of a large number of table entries. Interpolation based on use of functions which are curved to compute values between table entries overcome this limitation and allow use of fewer table entries. One particularly suitable representation method, a monotone derivative cubic spline (hereinafter referred to as a monder spline), is described by F. N. Fritsch and R. E. 30i Carlson in MONOTONE PIECEWISE CUBIC INTERPOLATION, Society for Industrial and Applied Mathematics Journal; Vol. 17, No. 2, April 1980. A monder spline is advantageous in that it provides needed flexibility as well as interpolated output values that are guaranteed to be monotone between the given values. Monotonicity of representation is critical in determining a unique printer code value to be used to obtain a specific output density. Other interpolatory methods, such as linear interpolation or rational quadratic splines, have similar properties and could be used as well. In a preferred embodiment, a printer is adapted to decode specific encoded sensitometric curve information from memory associated with media to obtain a discrete set of input-output pairs to be interpolated with a monder spline. 
     Such a discrete set of input-output pairs to be used in a monder spline representation of a sensitometry curve may be obtained by a variety of techniques, including among others trial-and-error, direct measurement of the discrete set of input-output pairs as practiced in commonly assigned U.S. Pat. No. 5,293,539, which issued to J. Spence on Mar. 8, 1994, or fitting a monder spline to experimental data using a least squares procedure. 
     Representing a sensitometric curve by a least squares monder spline interpolant to a parsimonious set of input-output pairs advantageously serves both (via parsimony) to reduce data storage requirements and (via least squares) to smooth experimental output density data. Such data can be taken at a larger set of input values comprising values not collocated with the inputs of the representation or values obtained by repeated trials. On-site measurement of a parsimonious set of input-output pairs as practiced in aforesaid U.S. Pat. No. 5,293,539 is sensitive to experimental variations, can poorly represent behavior of the sensitometry curve in areas not sampled in a limited data set, and can be prohibitively expensive to obtain, requiring costly measurement apparatus and expenditure of time and materials. 
     An example of sensitometry data and a least squares monder spline fit thereto is shown in FIG. 14. The monder spline comprises a discrete set of input-output pairs, referred to as knots, each with a X and F value. The X value is associated with the input printer code value axis and the F value with the output print density axis. 
     A least-squares monder spline can be fit to the measured sensitometry data. A description of the least-squares monder spline used in this invention is as follows. In an interpolatory cubic spline, knots representing input-output data are connected by cubic polynomials which are joined together to give a smooth curve. In a monotone cubic spline, these polynomials are modified to give a usually less smooth curve which is additionally constrained to be strictly increasing or decreasing between the knots. In a least-squares smoothing spline, knots are still used to define a spline. However, the knots used are fewer in number than and placed differently from measured data points. 
     In general, a least-squares fit of a curve to measured data is obtained by adjusting curve parameters to minimize the sum of squared prediction errors at the data points. In the least-squares smoothing spline, the curve parameters are output values associated with a specified set of input values. Once these parameters are determined, predicted output values can be computed for arbitrary input values. As the number of knots used is significantly lower than the number of data points and even more significantly lower than the number of points at which predictions are desired, a significant data reduction is thus obtained. 
     In the case of an ordinary cubic spline for a given set of input-output value pairs, a system of linear equations relating the slope of the spline at each knot to the given input-output values is formed. These equations enforce continuity of the curve as well as the slopes (first derivative) and curvatures (second derivatives) at the knots. The resulting system, involving one linear equation in at most three variables for each input value, is particularly easy to solve. Once the values and slopes are known for each pair of adjacent knots, a cubic polynomial is fully defined over an interval contained therein. In the case of an ordinary cubic spline, interpolated values with (relatively) abrupt changes often oscillate between the knots even when the data they interpolate are strictly increasing or decreasing. Given an oscillatory cubic spline, a monder spline which maintains continuity of the curve and its slope by relaxing the curvature continuity constraint can easily be found using a single pass algorithm, as described in the above-noted SIAM article by Fritsch and Carlson. 
     In the monder spline method a scan is made of the initial spline fit to locate intervals in which the spline is not monotonic and modifies the end slopes to enforce monotonicity. If no such intervals are found, no changes are made. Linear least squares solution of problems in which the prediction function is a linear function of the parameters can be solved in a single step. Fitting a smoothing spline is generally such a problem. However, in cases where a monotonicity constraint is required, the parameters of the prediction function are no longer linearly involved. Therefore, a nonlinear least squares algorithm is required. 
     Nonlinear least squares problems are commonly solved using an iterative procedure starting with initial guesses for the parameters of the fitting function. Each iteration improves the guesses for the parameters until the values settle down. In this context, the parameters of the fit are the values of the spline at the knots. Starting guesses for the values of the spline are obtained by performing a (linear) least squares fit of a piecewise linear (or &#34;broken line&#34;) spline to the data. The resulting values are then used to compute an initial monotone cubic spline. The iterative method chosen is a quasi-Newton algorithm in which at each improvement step the nonlinear equations relating parameter values to predicted values are linearized at the current guess to obtain linear equations relating desired changes in predicted values to changes in the parameter values, a linear least squares problem. To solve a linear least squares problem, a set of overdetermined linear equations is solved using the well-known QR matrix factorization algorithm. 
     By whatever means knots are obtained, the printer is adapted to decode from the media-associated memory knots encoded using methods hereinafter described. Once the knots are determined, predicted values of print density are obtained for arbitrary printer code values using a monder spline. Such predictive capability can illustratively be used to determine a set of printer code values to use to obtain a specific set of output densities, that is, a lookup table. 
     Once the knots of the spline representation have been determined, an additional problem that needs to be solved is reduction of the number of bits needed to store the knot locations and values. Given N knots consisting of locations X i  and values F i  (i=1 to N) we begin by transforming the X values using, 
     
         ΔX.sub.i =X.sub.i -X.sub.i -1.                       (1) 
    
     In the case of i=1 we subtract zero since X O  is undefined. Next, we search for ΔX i  in a look up table (LUT) to find a corresponding integer code value. 
     
         X.sub.-- Code.sub.i =LUT(ΔX.sub.i)                   (2) 
    
     It is assumed that knot positions are chosen so that the difference between adjacent knots, as calculated from Equation 1, be limited to values in this LUT. This limitation still allows a knot to be placed at any code value, but greatly reduces the number of bits needed to encode each X i , thereby compressing the information contained in the X i . If this limitation is imposed, the process is completely lossless. The original X values can be exactly retrieved from the compressed values. 
     The F i  values are first transformed as follows 
     
         ΔF.sub.i =F.sub.i -SC(X.sub.i)                       (3) 
    
     where SC(X) is a standard curve which represents typical sensitometric data. Next, ΔF i  is divided by a quantum Q j  chosen from a set Q 1  to Q M . The size of the quantum is typically related to the sensitivity of a human observer to errors in reconstructed sensitometry. The result is rounded to the nearest integer value to obtain an F code value: 
     
         F.sub.-- Code.sub.i =round(ΔF.sub.i /Q.sub.j)        (4) 
    
     The appropriate quantum is selected based on the value of SC(X i ). In general, the greater the density is the coarser the quantization can be. Again, many fewer bits are used to encode the Fi, although in this case, the procedure is not lossless. However, when the quanta Q j  are chosen relative to the sensitivity of a human observer, reconstructed values are visually indistinguishable from those obtained using the original F i . 
     Once a set of encoded X and F values are obtained, it can be placed in a memory element associated with the media using methods including but not limited to magnetic stripes placed directly on media, magnetic stripes placed on media spools, digital memory, magnetic disks, bar codes, or other optical encoding marks. In a preferred embodiment, the memory element is read by the printer and the encoded X and F values are decoded by reversing the encoding procedure as follows. The X values are decoded by consulting a copy of the LUT used to encode the X values, and applying Equation 1 in reverse. First, obtain Xl directly from the LUT using its code value. Then, serially obtain values of X 2  through X N  by incrementing each predecessor by the value in the LUT corresponding to its code value. The F values are decoded by consulting copies of the standard curve and quanta used to encode the F values and applying Equation 4 in reverse to obtain an increment and then applying Equation 3 in reverse to obtain an F value. That is, for each F code value, the corresponding quantum is multiplied by the code value and added to the corresponding standard curve value to obtain a reconstructed F value. 
     An example of this encoding and decoding procedure follows. The knot values computed for a monder spline for the &#34;Test Median&#34; sensitometry curve shown in FIG. 15 are: 
     
         ______________________________________Knot Index     X         F______________________________________1              0.000000  2.7592992              40.00000  2.2852523              80.00000  1.5279024              120.0000  0.4520815              150.0000  0.1201356              170.0000  0.1165557              250.0000  0.042220______________________________________ 
    
     The LUT for compression of the knot locations used in Equation (2) is: 
     
         ______________________________________  X.sub.-- Code         .increment.X______________________________________  0      0  1      2  2      3  3      4  4      5  5      7  6      10  7      15  8      20  9      30  10     40  11     50  12     60  13     70  14     80  15     100______________________________________ 
    
     The standard curve used is the one labeled &#34;Reference Media&#34; in FIG. 15. The standard curve values at the positions of the knots used for the monder spline for the &#34;Test Media&#34; Sensitometry curve are: 
     
         ______________________________________Knot Index     X         F______________________________________1              0.000000  2.3853612              40.00000  1.8285143              80.00000  1.1055074              120.0000  0.5072165              150.0000  0.2379776              170.0000  0.1165637              250.0000  0.097463______________________________________ 
    
     Threshold visual density differences at a luminance of 100 fL, determined from &#34;The Evaluation of Interior Lighting On The Basis Of Visual Criteria&#34; in APPLIED OPTICS 6, 1967 BY Blackwell, were used for the quantizers in Equation (4): 
     
         ______________________________________Standard curve F value            Quantizer______________________________________0.0000-0.5229    0.00650.5229-1.0000    0.00831.0000-1.5229    0.01001.5229-2.0000    0.01402.0000-2.5229    0.02302.5229-3.0000    0.0360______________________________________ 
    
     Using Equations (1) through (4) the code values for this spline are: 
     
         ______________________________________Knot           X code  F code______________________________________1               0      162              10      333              10      424              10      -85               9      -186               8      07              14      -8______________________________________ 
    
     The knot values for the reconstructed spline can then be determined: 
     
         ______________________________________Knot       X             F______________________________________1          0.000000      2.7533612          40.00000      2.2905143          80.00000      1.5255074          120.0000      0.4552165          150.0000      0.1209776          170.0000      0.1165637          250.0000      0.045463______________________________________ 
    
     Sensitometry curves obtained from the original spline and reconstructed spline result in tone reproduction that is visually indistinguishable. To quantify this we define a visual difference parameter, VD. The VD is the average fraction of absolute density error to the threshold visual density difference ##EQU1## where the sum is over all code values, F i   org  is determined from the original spline, and F i   rec  from the spline after it is compressed and uncompressed. T i  is the threshold visual density difference at a density of F i   org . In this example, the threshold visual density difference are used for the quantizers Q i  although this need not always be the case. The value of VD for this example is 0.19, which indicates that on average the density errors are 19% of the visually detectable level. 
     In the above example, the original sensitometry curve consists of 256 12-bit numbers which requires 3,072 bits of storage. Application of a monder spline having seven knots reduces the curve to seven 8-bit X values and seven 12-bit F values. This is a total of 140 bits. Additional encoding of the X and F values allow the X value to be represented by a 4-bit number and the F value by an 8-bit number. Thus, the original 3,072 bits is reduced to only 84 bits. This is a 97% reduction in storage space. 
     The invention has been described in detail with particular reference to preferred embodiments thereof, but it will be understood that variations and modifications can be effected within the spirit and scope of the invention.