Title of Invention

METHOD OF THERMAL PRINTING AND THERMAL PRINTER THEREFOR

Abstract A model of a thermal print head is provided that models the thermal response of thermal print head elements to the provision of energy to the print head elements over time. The thermal print head model generates predictions of the temperature of each of the thermal print head elements at the beginning of each print head cycle based on: (1) the current ambient temperature of the thermal print head, (2) the thermal history of the print head, and (3) the energy history of the print head. The amount of energy to provide to each of the print head elements during a print head cycle to produce a spot having the desired density is calculated based on: (1) the desired density to be produced by the print head element during the print head cycle, and (2) the predicted temperature of the print head element at the beginning of the print head cycle.
Full Text "METHOD OF THERMAL PRINTING AND THERMAL PRINTER THEREFOR"
BACKGROUND
Field Of The Invention
The present invention relates to method of thermal printing and thermal printer therefor,
and, more particularly, to techniques for improving
thermal printer output by compensating for the effects of
thermal history, on thermal print heads.
Related Art
Thermal printers typically contain a linear array of
heating elements (also referred to herein as "print head
elements") that print on an output medium by, for example,
transferring pigment from a donor sheet to the output
medium or by initiating a color-forming reaction in the
output medium. The output medium is typically a porous
receiver receptive to the transferred pigment, or a paper
coated with the color-forming chemistry. Each of the
print head elements, when activated, forms color on the
medium passing underneath the print head element, creating
a spot having a particular density. Regions with larger
or denser spots are perceived as darker than regions with
smaller or less dense spots. Digital images are rendered
as two-dimensional arrays of very small and closely-spaced
spots.
A thermal print head element is activated by
providing it with energy. Providing energy to the print
head element increases the temperature of the print head
element, causing either the transfer of pigment to the
output medium or the formation of color in the receiver.

The density of the output produced by the print head
element in this manner is a function of the amount of
energy provided to the print head element. The amount of
energy provided to the print head element may be varied
by, for example, varying the amount of power to the print
head element within a particular time interval or by
providing power to the print head element for a longer
time interval.
In conventional thermal printers, the time during
which a digital image is printed is divided into fixed
time intervals referred to herein as "print head cycles.
Typically, a single row of pixels (or portions thereof) in
the digital image is printed during a single print head
cycle. Each print head element is typically responsible
for printing pixels (or sub-pixels) in a particular column
of the digital image. During each print head cycle, an
amount of energy is delivered to each print head element
that is calculated to raise the temperature of the print
head element to a level that will cause the print head
element to produce output having the desired density.
Varying amounts of energy may be provided to different
print head elements based on the varying desired densities
to be produced by the print head elements.
One problem with conventional thermal printers
results from the fact that their print head elements
retain heat after the conclusion of each print head cycle.
This retention of heat can be problematic because, in some
thermal printers, the amount of energy that is delivered
to a particular print head element during a particular
print head cycle is typically calculated based on an
assumption that the print head element's temperature at
the beginning of the print head cycle is a known fixed
temperature. Since, in reality, the temperature of the
print head element at the beginning of a print head cycle
depends on (among other things) the amount of energy
delivered to the print head element during previous print
head cycles, the actual temperature achieved by the print
head element during a print head cycle may differ from the
calibrated temperature, thereby resulting in a higher or
lower output density than is desired. Further
complications are similarly caused by the fact that the
current temperature of a particular print head element is
influenced not only by its own previous temperatures -
referred to herein as its "thermal history" - but by the
ambient (room) temperature and the thermal histories of
other print head elements in the print head.
As may be inferred from the discussion above, in some
conventional thermal printers, the average temperature of
each particular thermal print head element tends to
gradually rise during the printing of a digital image due
to retention of heat by the print head element and the
over-provision of energy to the print head element in
light of such heat retention. This gradual temperature
increase results in a corresponding gradual increase in
density of the output produced by the print head element,
which is perceived as increased darkness in the printed
image. This phenomenon is referred to herein as "density
shift.
Furthermore, conventional thermal printers typically
have difficulty accurately reproducing sharp density
gradients between adjacent pixels in both the fast scan
and slow scan direction. For example, if a print head
element is to print a white pixel following a black pixel,
the ideally sharp edge between the two pixels will
typically be blurred when printed. This problem results
from the amount Of time that is required to raise the
temperature of the print head element to print the black
pixel after printing the white pixel. More generally,
this characteristic of conventional thermal printers
results in less than ideal sharpness when printing images
having regions of high density gradient.
What is needed, therefore, are improved techniques
for controlling the temperature of print head elements in
a thermal printer to more accurately render digital
images.
SUMMARY
A model of a thermal print head is provided that
models the thermal response of thermal print head elements
to the provision of energy to the print head elements over
time. The thermal print head model generates predictions
of the temperature of each of the thermal print head
elements at the beginning of each print head cycle based
on: (1) the current ambient temperature of the thermal
print head, (2) the thermal history of the print head, and
(3) the energy history of the print head. The amount of
energy to provide to each of the print head elements
during a print head cycle to produce a spot having the
desired density is calculated based on: (1) the desired
density to be produced by the print head element during
the print head cycle, and (2) the predicted temperature of
the print head element at the beginning of the print head
cycle.
Additional aspects and embodiments of the present
invention will be described in more detail below.
BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS
FIG. 1 is a data flow diagram of a system that is
used to print digital images according to one embodiment
of the present invention.
FIG. 2 is a data flow diagram of an inverse printer
model used in one embodiment of the present invention.
FIG. 3 is a data flow diagram of a thermal printer
model used in one embodiment of the present invention.
FIG. 4 is a data flow diagram of an inverse media
density model used in one embodiment of the present
invention.
FIG. 5A is a schematic side view of a thermal print
head according to one embodiment of the present invention.
FIG. 5B is a diagram of a spatial/temporal grid used
by a head temperature model according to one embodiment of
the present invention.
FIGS. 6A-6D are flow charts of processes that are
used to compute energies to be provided to thermal print
head elements according to one embodiment of the present
invention.
FIG. 7 is a graph illustrating energy provided to a
thermal print head element by a conventional thermal
printer and by one embodiment of the present invention.
DETAILED DESCRIPTION
In one aspect of the present invention, a model of a
thermal print head is provided that models the thermal
response of thermal print head elements to the provision
of energy to the print head elements over time. The
history of temperatures of print head elements of a
thermal print head is referred to herein as the print
head's "thermal history." The distribution of energies to
the print head elements over time is referred to herein as
the print head's "energy history."
In particular, the thermal print head model generates
predictions of the temperature of each of the thermal
print head elements at the beginning of each print head
cycle based on: (1) the current ambient temperature of the
thermal print head, (2) the thermal history of the print
head, and (3) the energy history of the print head. In
one embodiment of the present invention, the thermal print
head model generates a prediction of the temperature of a
particular thermal print head element at the beginning of
a print head cycle based on: (1) the current ambient
temperature of the thermal print head, (2) the predicted
temperatures of the print head element and one or more of
the other print head elements in the print head at the
beginning of the previous print head cycle, and (3) the
amount of energy provided to the print head element and
one or more of the other print head elements in the print
head during the previous print head cycle.
In one embodiment of the present invention, the
amount of energy to provide to each of the print head
elements during a print head cycle to produce a spot
having the desired density is calculated based on: (1) the
desired density to be produced by the print head element
during the print head cycle, and (2) the predicted
temperature of the print head element at the beginning of
the print head cycle. It should be appreciated that the
amount of energy provided to a particular print head
element using such a technique may be greater than or less
than that provided by conventional thermal printers. For
example, a lesser amount of energy may be provided to
compensate for density drift. A greater amount of energy
may be provided to produce a sharp density gradient. The
model used by various embodiments of the present invention
is flexible enough to either increase or decrease the
input energies as appropriate to produce the desired
output densities.
Use of the thermal print head model decreases the
sensitivity of the print engine to the ambient temperature
and to previously printed image content, which manifests
itself in the thermal history of the print head elements.
For example, referring to FIG. 1, a system for
printing images is shown according to one embodiment of
the present invention. The system includes an inverse
printer model 102, which is used to compute the amount of
input energy 106 to be provided to each print head element
in a thermal printer 108 when printing a particular source
image 100. As described in more detail below with respect
to FIGS. 2 and 3, a thermal printer model 302 models the
output (e.g., the printed image 110) produced by thermal
printer 108 based on the input energy 106 that is provided
to it. Note that the thermal printer model 302 includes
both a print head temperature model and a model of the
media response. The inverse printer model 102 is an
inverse of the thermal printer model 3 02. More
particularly, the inverse printer model 102 computes the
input energy 106 for each print head cycle based on the
source image 100 (which may, for example, be a two-
dimensional grayscale or color digital image) and the
current ambient temperature 104 of the thermal printer's
print head. The thermal printer 108 prints a printed
image 110 of the source image 100 using the input energy
106. It should be appreciated that the input energy 106
may vary over time and for each of the print head
elements. Similarly, the ambient temperature 104 may vary
over time.
In general, the inverse printer model 102 models the
distortions that are normally produced by the thermal
printer 108 (such as those resulting from density drift,
as described above and those resulting from the media
response) and "pre-distorts" the source image 100 in an
opposite direction to effectively cancel out the
distortions that would otherwise be produced by the
thermal printer 108 when printing the printed image 110.
Provision of the input energy 106 to the thermal printer
108 therefore produces the desired densities in the
printed image 110, which therefore does not suffer from
the problems (such as density drift and degradation of
sharpness) described above. In particular, the density
distribution of the printed image 110 more closely matches
the density distribution of the source image 100 than the
density distributions typically produced by conventional
thermal printers.
As shown in FIG. 3, thermal printer model 3 02 is used
to model the behavior of the thermal printer 108 (FIG. 1).
As described in more detail with respect to FIG. 2, the
thermal printer model 3 02 is used to develop the inverse
printer model 102, which is used to develop input energy
106 to provide to the thermal printer 108 to produce the
desired output densities in printed image 110 by taking
into account the thermal history of the thermal printer
108. In addition, the thermal printer model 302 is used
for calibration purposes, as described below.
Before describing the thermal printer model 3 02 in
more detail, certain notation will be introduced. The
source image 100 (FIG. 1) may be viewed as a two-
dimensional density distribution ds having r rows and c
columns. In one embodiment of the present invention, the
thermal printer 108 prints one row of the source image 100
during each print head cycle. As used herein, the
variable n will be used to refer to discrete time
intervals (such as particular print head cycles).
Therefore, the print head ambient temperature 104 at the
beginning of time interval n is referred to herein as
Ts(n) . Similarly, ds(n) refers to the density distribution
of the row of the source image 100 being printed during
time interval n.
Similarly, it should be appreciated that the input
energy 10 6 may be viewed as a two-dimensional energy
distribution E. Using the notation just described, E{n)
refers to the one-dimensional energy distribution to be
applied to the thermal printer's linear array of print
head elements during time interval n. The predicted
temperature of a print head element is referred to herein
as Ta. The predicted temperatures for the linear array of
print head elements at the beginning of time interval n is
referred to herein as Ta(n) .
As shown in FIG. 3, the thermal printer model 3 02
takes as inputs during each time interval n:(1) the
ambient temperature Ts(n) 104 of the thermal print, head at
the beginning of time interval n, and (2) the input energy
E(n) 106 to be provided to the thermal print head elements
during time interval n. The thermal printer model 3 02
produces as an output a predicted printed image 306, one
row at a time. The predicted printed image 3 06 may be
seen as a two-dimensional distribution of densities dp(n).
The thermal printer model 302 includes a head temperature
model 202 (as described in more detail below with respect
to FIG. 2) and a media density model 304. The media
density model 304 takes as inputs the predicted
temperatures Ta(n) 204 produced by the head temperature
model 2 02 and the input energy E(n) 106, and produces as
an output the predicted printed image 3 06.
Referring to FIG. 2, one embodiment of the inverse
printer model 102 is shown. The inverse printer model 102
receives as inputs for each time interval n: (1) the print
head ambient temperature 104 Ts(n) at the beginning of time
interval n, and (2) the densities ds(n) of the. row of the
source image 100 to be printed during time interval n.
The inverse printer model 102 produces the input energy
E(n) 106 as an output.
Inverse printer model 102 includes head temperature
model 202 and an inverse media density model 206. In
general, the head temperature model 202 predicts the
temperatures of the print head elements over time while
the printed image 110 is being printed. More
specifically, the head temperature model 202 outputs a
prediction of the temperatures Ta(n) of the print head
elements at the beginning of a particular time interval n
based on: (1) the current ambient temperature Ts(n) 104,
and (2) the input energy E{n - 1) that was provided to the

print head elements during time interval n - 1.
In general, the inverse media density model 206
computes the amount of energy E{n) 106 to provide to each
of the print head elements during time interval n based
on: (1) the predicted temperatures Ta(n) of each of the
print head elements at the beginning of time interval n,
and (2) the desired densities ds(n) 100 to be output by
the print head elements during time interval n. The input
energy E(n) 106 is provided to the head temperature model
202 for use during the next time interval n + 1. It
should be appreciated that the inverse media density model
2 06, unlike the techniques typically used by conventional
thermal printers, takes both the current (predicted)
temperatures Ta(n) of the print head elements and the
temperature-dependent media response into account when
computing the energy E(n) 106, thereby achieving an
improved compensation for the effects of thermal history
and other printer-induced imperfections.
Although not shown explicitly in FIG. 2, the head
temperature model 202 may internally store at least some
of the predicted temperatures Ta(n), and it should
therefore be appreciated that previous predicted
temperatures (such as Ta(n - 1)) may also be considered to
be inputs to the head temperature model 2 02 for use in
computing Ta(n) .
Referring to FIG. 4, one embodiment of the inverse
media density model 2 06 (FIG. 2) is now described in more
detail. The inverse media density model 2 06 receives as
inputs during each time interval n: (1) the source image
densities ds(n) 100, and (2) Ta(n) , the predicted
temperatures of the thermal print head elements at the

beginning of time interval n. The inverse media density
model 206 produces as an output the input energy E(n) 106.
In other words, the transfer function defined by the
inverse media density model 206 is a two-dimensional
function E = F(d,Ta) . In non-thermal printers, the transfer
function relating input energy E and output density d is
typically a one dimensional function d = T(E) , referred to
herein as a gamma function. In thermal printers, such a
gamma function is not unique because the output density d
is dependent not only on the input energy E but also on
the current thermal print head element temperature. If,
however, we introduce a second function Tr{d) that
represents the temperature of the print head element when
the gamma function d = T (E) was measured, then the
combination of the functions T(E) and TT(d) uniquely
describes the response of the thermal printer..
In one embodiment, the function E = F(d,Ta) described
above is represented using the form shown by Equation 1

This equation may be interpreted as the first two
terms of a Taylor series expansion in (Ta -TT(d)) for the
exact energy that would provide the desired density. In
Equation 1, T-1 (d) is the inverse of the function T (E)
described above, and S(d) is a sensitivity function which
may take any form, one example of which is described in
more detail below. Note that Equation 1 represents the
two-dimensional function E = F(d,Ta) using threes one-
dimensional functions: T-1 (d) , S{d), and TT(d). In one
embodiment of the present invention, the inverse media

density model 206 uses Equation 1 to compute the input
energies E{n) 106, as illustrated diagrammaticalI? in FIG.
4. The reference temperatures Tr(d) 408 of the print head
elements are subtracted from the current (predicted)
temperatures Ta(n) of the print head elements (which may,
for example, either be generated by the head temperature
model 2 02 or be actual temperature measurements) to
develop temperature differences DT(n). The temperature
differences DT(n) are multiplied by the output of
sensitivity function S{d) 4 06 to produce correction
factors DE(n) , which are added to the uncorrected energies
ET (n) output by T-1 (d) 404 to produce input energies E(n)
10 6. It should be appreciated that correction factors
AE(22) may be computed and applied either in the log domain
or the linear domain, with the calibration performed
accordingly.
An alternative implementation of Equation 1 according
to one embodiment of the present invention is now
described. Equation 1 may be rewritten as Equation 2:

In one embodiment, the term is
represented and stored as a single one-dimensional
function G(d) , so that Equation 2 may be rewritten as:

In practice, the value of E may be computed using Equation
3 using two lookups: G{d) and S(d), based on the value of
d. Such a representation may be advantageous for a

variety of reasons. For example, a direct software and/or
hardware implementation of E = F(d,Ta) as a two-dimensional
function may require a large amount of storage or a
significant number of computations to compute the energy
E. In contrast, the one dimensional functions G(d) and
S(d) may be stored using a relatively small amount of
memory, and the inverse media density model 206 may
compute the results of Equation 3 using a relatively small
number of computations.
One embodiment of the head temperature model 202
(FIGS. 2-3) is now described in more detail. Referring to
FIG. 5A, a schematic side view of a thermal print head 500
is shown. The print head 500 includes several layers,
including a heat sink 502a, ceramic 502b, and glaze 502c.
Underneath the glaze 502c is a linear array of print head
elements 520a-i. It should be appreciated that although
only nine heating elements 520a-i are shown in FIG. 5A for
ease of illustration, a typical thermal print head will
have hundreds of very small and closely-spaced print head
elements per inch.
As described above, energy may be provided to the
print head elements 52 0a-i to heat them, thereby causing
them to transfer pigment to an output medium. Heat
generated by the print head elements 520a-i diffuses
upward through the layers 502a-c.
It may be difficult or unduly burdensome to directly
measure the temperatures of the individual print head
elements 520a-i over time (e.g., while a digital image is
being printed) . Therefore, in one embodiment of the
present invention, rather than directly measuring the
temperatures of the print head elements 520a-i, the head

temperature model 202 is used to predict the temperatures
of the print head elements 520a-i over time. In
particular, the head temperature model 202 may predict the
temperatures of the print head elements 520a-i by modeling
the thermal history of the print head elements 520a-i
using knowledge of: (1) the ambient temperature of the
print head 500, and (2) the energy that has been
previously provided to the print head elements 520a-i.
The ambient temperature of the print head 500 may be
measured using a temperature sensor 512 that measures the
temperature Ts(n) at some point on the heat sink 512.
The head temperature model 202 may model the thermal
history of the print head elements 520a-i in any of a
variety of ways. For example, in one embodiment of the
present invention, the head temperature model 2 02 uses the
temperature Ts(n) measured by temperature sensor 512, in
conjunction with a model of heat diffusion from the print
head elements 520a-i to the temperature sensor 512 through
the layers of the print head 500, to predict the current
temperatures of the print head elements 520a-i. It should
be appreciated, however, that the head temperature model
202 may use techniques other than modeling heat diffusion
through the print head 500 to predict the temperatures of
the print head elements 520a-i.
Referring to FIG. 5B, a three-dimensional spatial and
temporal grid 53 0 used by the head temperature model 202
according to one embodiment of the present invention is
illustrated diagrammatically. In one embodiment, a multi-
resolution heat propagation model uses the grid 530 to
model the propagation of heat through the print head 500.
As shown in FIG. 5B, one dimension of the grid 53 0 is
labeled by an i axis. The grid 53 0 includes three
resolutions 532a-c, each corresponding to a distinct value
of i. With respect to the grid 530 shown in FIG. 5B,
i=0 corresponds to resolution 532c, i=1 corresponds to
resolution 532b, and i=2 corresponds to resolution 532a.
The variable i is therefore referred to herein as a
"resolution number." Although three resolutions 532a-c
are shown in the grid 530 of FIG. 5B, this is merely an
example and does not constitute a limitation of the
present invention. Rather, a temporal and spatial grid
used by the head temperature model 202 may have any number
of resolutions. As used herein, the variable nresolutions
refers to the number of resolutions in the spatial and
temporal grid used by the head temperature model 2 02. For
example, nresolutions = 3 with respect to the grid 530
shown in FIG. 5B. The maximum value of i is
nresolutions - 1.
Furthermore, although there may be the saline number of
resolutions as the number of layers in the print head 500
(FIG. 5A), this is not a requirement of the present
invention. Rather, there may be a greater or lesser
number of resolutions than physical layers of material.
Each of the resolutions 532a-c of the three-
dimensional grid 53 0 includes a two-dimensional grid of
reference points. For example, resolution 532c includes a
9X9 array of reference points referred to collectively by
reference numeral 534 (only a single one of the reference
points in resolution 532c is labeled with reference
numeral 534 for ease of illustration). Similarly,
resolution 532b includes a 3X3 array of reference points

referred to collectively by reference numeral 53 6, and
resolution 532a includes a 1X1 array including a single
reference point 53 8.
As further shown in FIG. 5B, a j axis labels one
dimension (the fast scan direction) of each of the
resolutions 532a-c. In one embodiment, the j axis runs
from left to right beginning at j = 0 and increasing by
one at each reference point to a maximum value of jmax. As
further shown in FIG. 5B, an n axis labels the second
dimension in each of the resolutions 532a-c. In one
embodiment, the n axis runs in the direction shown by the
corresponding arrow (i.e., into the plane of FIG. 5B)
beginning at n = 0 and increasing by one at each reference
point. For ease of explanation, in the description below
a particular value of n in resolution i will be said to
refer to a corresponding "row" of reference points in
resolution i.
In one embodiment, the n axis corresponds to discrete
time intervals, such as consecutive print head cycles.
For example, n=0 may correspond to a first print head
cycle, n=1 may correspond to the succeeding print, head
cycle, and so on. As a result, in one embodiment, the n
dimension is referred to herein as a "temporal" dimension
of the spatial and temporal grid 53 0. Print head cycles
may, for example, be numbered sequentially beginning with
n=0 when the thermal printer 108 is turned on or when
the printing of a digital image is initiated.
It should be appreciated, however, that in general n
refers to a time interval, the duration of which may or
may not be equal to that of a single print head cycle.
Furthermore, the duration of the time interval to which n

corresponds may differ for each of the different
resolutions 532a-c. For example, in one embodiment, the
time interval referenced by the variable n in resolution
532c (i = 0) is equal to a single print head cycle,
whereas the time intervals referenced by the variable n in
the other resolutions 532a-b are longer than a single
print head cycle.
In one embodiment, reference points 534 in resolution
532c (for which i=0) have a special significance. In
this embodiment, each row of reference points in
resolution 532c corresponds to the linear array of print
head elements 520a-i in the print head 500 (FIG. 5A). For
example, consider the row of reference points 534a-i, for
which i=0 and n=0. In one embodiment, each of these
reference points 534a-i corresponds to one of the print
head elements 520a-i shown in FIG. 5A. For example,
reference point 534a may correspond to print head element
520a, reference point 534b may correspond to print head
element 520b, and so on. The same correspondence may hold
between each of the remaining rows of reference points in
resolution 532c and the print head elements 520a-i.
Because of this correspondence between reference points
within a row of reference points and print head elements
arranged in a row in the print head 500, in one embodiment
the j dimension is referred to as a "spatial" dimension of
the spatial and temporal grid 530. Examples of how this
correspondence may be used by the head temperature model
202 are described in more detail below.
Using these meanings of the j and n dimensions, each
of the reference points 534 in resolution 532c (for which
i=0) may be seen to correspond to a particular one of

the print head elements 520a-i at a particular point in
time (e.g., at the beginning of a particular print head
cycle). For example, j=3 and n = 2 may refer to
reference point 54 0 (which corresponds to print head
element 520d) at the beginning of time interval n = 2.
In one embodiment, associated with each of the
reference points 534 at coordinates (n,j) in resolution
532c (i = 0) is an absolute temperature value Ta,
representing a predicted absolute temperature of the print
head element j at the beginning of time interval n. Also
associated with each of the reference points 534 at
coordinates (n,j) in resolution 532c (i = 0) is an energy
value E, representing the amount of energy to be provided
to print head element j during time interval n.
As described in more detail below, in one embodiment
of the present invention the head temperature model 202
updates the absolute temperature values Ta associated with
reference points in row n of resolution 532c at the
beginning of each time interval n, thereby predicting the
absolute temperatures of the print head elements 520a-i at
the beginning of time interval n. As further described in
more detail below, the head temperature model 202 updates
the energy values E associated with the reference points
in row n of resolution 532c at the beginning of each time
interval n based on the updated temperature values Ta and
the desired output densities ds. The energies E are then
provided to the print head elements 52 0a-i to produce,
output having the desired densities.
It should be appreciated that there need not be a
one-to-one correspondence between reference points in each
row of resolution 532c of the grid 53 0 and print head

elements in the print head 500. For example, there may be
a greater or lesser number of reference points in each
such row than the number of print head elements. If the
number of reference points in each row of resolution 532c
is not equal to the number of print head elements,
temperature predictions for the reference points may be
mapped to the print head elements using, e.g., any form of
interpolation or decimation.
More generally, resolution 532c (i = 0) models an
area including some or all of the print head elements
520a-i. The area that is modeled may, for example, be
equal to, larger than, or smaller than the area occupied
by the print head elements 520a-i. The number of
reference points in each row of resolution 532c may be
greater than, less than, or equal to the number of print
head elements in the modeled area. For example, if the
modeled area is larger than the area occupied by all of
the print head elements 520a-i, one or more reference
points at each end of each row in resolution 53 2c may
correspond to a "buffer zone" extending before the first
print head element 52 0a and after the last print head
element 520i. One way in which the buffer zone may be
used is described in more detail below with respect to
Equation 7.
The head temperature model 2 02 may generate
temperature predictions for the reference points 534 in
any of a variety of ways. For example, as shown in FIG.
5B, the grid 53 0 includes additional reference points 53 6
and 53 8. As described in more detail below, the head
temperature model 202 generates intermediate temperature
and energy values for reference points 536 and 53 8, which

are used to generate the final temperature predictions Ta
and input energies E associated with reference points 534.
The absolute temperature values Ta associated with
reference points 536 and 538 may, but need not, correspond
to predictions of absolute temperatures within the print
head 500. Such temperature values may, for example,
merely constitute intermediate values that are convenient
for use in generating the absolute temperature predictions
Ta for the reference points 534 in resolution 532c.
Similarly, the energy values E associated with reference
points 53 6 and 53 8 may, but need not, correspond to
predictions of heat accumulation within the print head
500. Such energy values may, for example, merely
constitute intermediate values that are convenient for use
in generating temperature values for the reference points
534 in resolution 532c.
In one embodiment, a relative temperature value T may
also be associated with each of the reference points in
the spatial grid 530. The relative temperature value T of
a reference point in a particular resolution i is a
temperature value that is relative to the absolute
temperature of the corresponding reference point in the
resolution i + 1 above. As described in more detail
below, the "corresponding" reference point may refer to an
interpolated reference point in the resolution i + 1.
The n and j coordinates of a reference point in a
particular resolution is expressed using the notation
(n,j) . As used herein, the superscript (i) denotes a
resolution number (i.e., a value of i) . Therefore, the
expression E(i)(n,j) refers to the energy value associated
with the reference point having coordinates (n,j) in

resolution i. Similarly, Ta(i)(n,j) refers to the absolute
temperature value associated with the reference point
having coordinates {n,j) in resolution i, and T{i)(n,j)
refers to the relative temperature value associated with
the reference point having coordinates (n,j) in resolution
i. Because of the special meaning attributed to reference
points in resolution 532c (where i = 0), in one embodiment
the expression E(0)(n,j) refers to the amount of input
energy provided to print head element j during time
interval n. Similarly, Ta(i)(n,j) refers to the predicted
absolute temperature of print head element j at the
beginning of time interval n, and T(o)(n,j) refers to the
predicted relative temperature of print head element j at
the beginning of time interval n.
In the description below, the suffix (*,*) refers to
all the reference points in the time and space dimensions.
For example, E(k)(*,*) denotes the energy for all the
reference points in resolution k. The notation T(k)m)
denotes an interpolation or decimation operator from
resolution k to resolution m. When k > m, T(k)(m) acts as an
interpolation operator; when k decimation operator. When applied to a two-dimensional
array of values for a particular resolution of the grid
530 (e.g., E(k)(*,*)), the operator I(k)(m) is a two-dimensional
interpolation or decimation operator that operates on both
the space (i.e., along the j axis) and ime (i.e., along
the n axis) dimensions to produce a new array of values,
based on the values of k and m, as just described. The
number of values in the array produced by application of
the operator is equal to the number of reference
points in resolution m of the grid 530. Application of
the operator is denoted in prefix form. For
example, denotes application of the operator
to the energies . The use of the operator will
become clearer through the particular examples described
below.
The operator may use any interpolation or
decimation method. For example, in one embodiment of the
present invention, the decimation function used by the
operator is an arithmetic mean and the interpolation
method is linear interpolation.
It was stated above that the relative temperature
value T(i)(n,j) is relative to the "corresponding" absolute
temperature value in the layer i + 1. It should now
be clear that this "corresponding" absolute temperature
value refers more precisely to the absolute
temperature value of the reference point at coordinates
(n,j) in an array produced by applying the interpolation
operator to
In one embodiment, the head temperature model 202
generates relative temperature values T(i)(n,j) as a
weighted combination of the previous relative temperature
value and the energy accumulated in the previous time
interval, using Equation 4:

The variables a1 and Ai in Equation 4 are parameters
that may be estimated in any of a variety of ways, as
described in more detail below. The parameter a1
represents the natural cooling of the print head, and the
parameter Ai represents heating of the print head due to
accumulated energy. The head temperature model 202 also
generates absolute temperature values Ta(0) (n,j) using
Equation 5 and recursive Equation 6:

More specifically, is initialized by
Equation 5 to Ts(n), the absolute temperature measured by
the temperature sensor 512. Equation 6 recursively
calculates the absolute temperature values Ta for each
resolution as the sum of the relative temperatures of the
resolutions above.
In one embodiment, the relative temperatures T(i)(n,j)
produced in Equation 4 are further modified by Equation 7:

Equation 7 represents the lateral heat transfer
between print head elements. The inclusion of lateral heat
transfer in the head temperature mode] results in a

compensating lateral sharpening of the image in the
compensating lateral sharpening of the image in the
inverse printer model. It should be appreciated that
although Equation 7 uses a three-point kernel (consisting
of reference point j and its two immediate neighbors at
locations j + 1 and j - 1), this is not a limitation of
the present invention. Rather, any size kernel may be
used in Equation 7. A boundary condition must be provided
for T(i)(n,j) where j = 0 and j = jmax, so that values of
T(i){n,j) for j = -1 and j = jmax + 1 may be provided for use
in Equation 7. For example, T{i)(n,J) may be set to zero for
j = -1 and j = jmax + 1. Alternatively, T(i)(n,-l) may be
assigned the value of r(i)(n,0) and T(0)(n,jmax + 1) may be
assigned the value of T(0)(n,jmax). These boundary conditions
are provided merely for purposes of example and do not
constitute limitations of the present invention; rather,
any boundary conditions may be used.
In one embodiment, the energies E(o)(n,j) (i.e., the
energies to be provided to the print head elements 520a-i
during time interval n) are computed using Equation 8,
which is derived from Equation 3:
Em(n,j) = G(d(n,j)) + S(d(n,j))Ta(0)(n,j)
Equation 8
The values E{0){n,j) defined by Equation 8 allows
values of i?(l) (n,j) for i > 0 to be recursively calculated
using Equation 9:
for i - 1, 2, ..., nresolutions - 1
Equation 9
The order in which Equation 4-Equation 9 may be
computed is constrained by dependencies among these
equations. Examples of techniques for computing Equation
4-Equation 9 in an appropriate order are described in more
detail below.
The head temperature model 202 and the media density
model 3 04 include several parameters which may be
calibrated as follows. Referring again to FIG. 1, the
thermal printer 108 may be used to print a target image
(serving as the source image 100), producing printed image
110. During the printing of the target image,
measurements may be taken of: (1) the energies used by the
thermal printer 108 to print the target image, and (2) the
ambient temperature of the print head over time. The
measured energies and ambient temperatures are then
provided as inputs to the thermal printer model 302. The
density distribution of the predicted printed image 306
predicted by the thermal printer model 302 is compared to
the actual density distribution of the printed image 110
produced by printing the target image. The parameters of
the head temperature model 202 and the media density model
304 are then modified based on the results of this
comparison. The process is repeated until the density
distribution of the predicted printed image 306
sufficiently matches that of the printed image 110
corresponding to the target image. The parameters of the
head temperature model 2 02 and media density model 3 04
thereby obtained are then used in the head temperature
model 2 02 and inverse media density model 206 of the
inverse printer model 102 (FIG. 2). Examples of
parameters that may be used in these models arc described

in more detail below.
In one embodiment of the present invention, the gamma
function r(E) that we discussed in regard to the inverse
media model is parameterized as an asymmetric: S-shaped
function as shown in Equation 10:

where e = E - Eo, and Eo is an energy offset. When a = 0 and
b=0, r(E) shown in Equation 10 is a symmetrical function
about the energy EO, and has a slope dmax at E=E0. However,
typical gamma curves for thermal printers are often
asymmetrical and are better represented with values of a
and b that are not zero. The function Tr(d) described above
with respect to FIG. 4 may be estimated in any of a
variety of ways. The function Tr(d) may, for example, be
an estimate of the print head element temperature when the
gamma function F(E) was measured. Such an estimate may be
obtained from the head temperature model.
In one embodiment, the sensitivity function S(d) is
modeled as an p-order polynomial, as shown in Equation 11:

In a preferred embodiment., a third order polynomial,
p=3, is used, although this is not a limitation of the
present invention. Rather, the sensitivity function S(d)
may be a polynomial of: any order.
It should be appreciated that the gamma and
sensitivity functions shown in Equation 10 and Equation 11
are shown merely for purposes of example and do not
constitute limitations of the present invention. Rather,
other mathematical forms for the gamma and sensitivity
functions may be used.
Having described generally how the head temperature
model 202 models the thermal history of the print head
500, one embodiment for applying the techniques described
above is now described in more detail. In particular,
referring to FIG. 6A, a flow chart of a process 600 that
is used to print the source image 100 (FIG. 1) according
to one embodiment of the present invention is shown. More
specifically, the process 600 may be executed by the
inverse printer model 102 to generate and provide the
input energy 106 to the thermal printer 108 based on the
source image 100 and the ambient temperature 104. The
thermal printer 108 may then print the printed image 110
based on the input energy 106.
As described above, the head temperature model 2 02
may calculate values for the relative temperatures T,
absolute temperatures Ta, and energies E. As further
described above, the inter-relations of the equations used
to perform these calculations impose constraints on the
order in which the calculations may be performed. The
process 600 performs these calculations in an appropriate
order, thereby calculating the input energies Em(n,*) to
provide to the print head elements 520a-i during each time
interval n. As used herein, the suffix (n,*) refers to
(absolute temperature Td, relative temperature T, or energy
E) values for all reference points in a particular

resolution at discrete time interval n. For example,
E(l)(n,*) refers to the energy values of all reference points
(i.e., for all values of j) in resolution i during
discrete time interval n. The process 600 may, for
example, be implemented in software using any suitable
programming language.
In one embodiment, for each time interval n, the
process 600 makes reference only to energies and
temperatures from time interval n and from the previous
time interval n-1. It is therefore unnecessary to keep a
permanent storage of these quantities for all n. The two
dimensional arrays, T(i)(*,*), Ta(i)(*,*), and E(i)(*,*) can each be
replaced by just two one-dimensional arrays, with
subscripts "new" and "old" replacing the time dimension
arguments n and n-1 respectively. Specifically, the
following one-dimensional arrays are used to store
intermediate values at the time interval n:
(1) Told(i)(*), an array for storing relative
temperatures of all the reference points in
resolution i from the previous print time
interval (i.e., print time interval n-1).
Told(i)(*) is equivalent to T(i)(n-1);
(2) Told(i)(*), an array for storing relative
temperatures of all the reference points in
resolution i in the current time interval n.
Tnew(i)(*) is equivalent to T(i)(*);
(3) STold(i)(*) an array for storing absolute
temperatures of all the reference points in
resolution i from the previous Lime interval
n-1. Told(i)(*) is equivalent to Ta(i)(*);

(4) Told(i)(*), an array for storing absolute
temperatures of all the reference points in
resolution i in the current time interval
n-1. Tnew(i)(*) is equivalent to Ta(i)(n,*) ; and
(5) Eacc(i)(*) an array for storing the current
accumulated energies of all the reference
points in resolution i in the current time
interval n. Eold(i)(*) is equivalent to E(i)(n,*).
Note that the interpolation operator lnk , when applied
to any of the five one-dimensional arrays above, results
in a one-dimensional interpolation or decimation of the
spatial domain. Time interpolation is carried out
separately by reference to the explicitly stored 'old' and
'new' values of T or ST.
The process 600 begins by calling a routine
InitializeO (step 602). The InitializeO routine may,
for example: (1) initialize Tnew(i)(*) and Tacc(i)(*) to zero (or
some other predetermined value) for all values of i (i.e.,
from i=0 to i = nresolutions - 1), and (2) initialize
STnew(i)(*) to Ts (the temperature reading from the temperature
sensor 512) for all values of i from i=0 to
i =nresolutions.
The process 600 initializes the value of n to zero
(step 604), corresponding to the first print head cycle of
the source image 100 to be printed. The process 600
compares the value of n to nmax (the total number of print
head cycles required to print the source image 100) to
determine whether the entire source image 100 has been
printed (step 606) . If n is greater than nmax, the process
600 terminates (step 610). If n is not greater than nmax,

then a subroutine Compute_Energy() is called with a value
of nresolutions - 1 (step 608).
Compute_Energy(i) takes as an input a resolution
number i, and computes the input energies Eacc(i)(*) , in
accordance with the equations described above. Referring
to FIG. 6B, in one embodiment, Compute_Energy() is
implemented using a recursive process 620. As described
in more detail below, in the course of computing Eacc(1)(*),
the process 620 also recursively computes each of the
energies in a particular
pattern. When the energies Eacc(0)(*) are computed, they
are provided to the print head elements 520a-i to produce
the desired output densities and the value of n is
incremented.
More specifically, the process 620 initializes the
array Told(i) by assigning to it the values of (step 622).
The process 620 updates the relative temperatures in time
by assigning values to a temporary array using
Equation 4 (step 624). The process 620 updates the
relative temperatures in space by assigning values to
using Equation 7 (step 626).
The process 62 0 then computes the current and
previous absolute temperature and . More
specifically, the value of is set to (step
627). Then the process 620 updates the current absolute
temperatures in resolution i based on the relative
temperatures in resolution i and the absolute temperatures
in resolution i + 1, using Equation 6 (step 628). The
interpolation operator is applied to
producing an array of interpolated absolute temperature

values. The dimension of this array is equal to the
spatial dimension of resolution i. This array of
interpolated absolute temperature values is added to
to produce . In this manner, absolute temperature
values are propagated downward from layer i + 1 to layer
i. It should be appreciated that absolute temperatures
are propagated downward between successive layers in a
particular pattern over time resulting from the recursion
performed by Compute_Energy().
The process 620 tests whether i - 0 to determine
whether energies are currently being computed for the
bottom (finest) resolution (step 630). This test is
necessary to determine whether the absolute temperatures
need to be interpolated in time in order to provide
reference absolute temperatures for the layer below. In
the event that i=0, absolute temperatures are being
computed for the finest resolution, and no time
interpolation is required.
In the event that i is not zero, temporal
interpolation is required. The quantity dec_factor(i)
represents the ratio of the number of reference points in
the temporal dimension in resolution i - 1 to the number
in resolution i. Therefore, it is necessary to generate
dec_factor(i) interpolated absolute temperatures. It
should be appreciated that dcc__factor(i) may have any
value for each value of i; for example, dec_factor(i) may
be equal to one for each value of i, in which case various
steps described below may be simplified or eliminated as
will be apparent to those of ordinary skill in the art.
At the same time, the energies are computed by
accumulating the energies for all dec_ factor(i)

interpolated points in the time dimension. These two tasks
are accomplished by the following steps.
The energies are initialized to zero (step
634) . An array is used to store step values to
interpolate between and . The values in
are initialized by dividing the difference between
and by dec_factor(i) (step 636).
Referring to FIG. 6C, the process 620 enters a loop
having dec_factor(i) iterations (step 638). is
assigned interpolated values by adding to (step
640) . Compute_Energy() is recursively called to compute
energies for resolution i - 1 (step 642). After obtaining
the energies computed for resolution i - 1, energies
for the current resolution i are partially computed
using Equation 9 (step 644) .
Note that in Equation 9, the notation describes a
two-dimensional decimation of the energies in resolution
i-1 in space and time. Since is a one-dimensional
array representing energies of the reference points in
resolution i-1 in the spatial dimension, Step 644
achieves the same result step-wise through an explicit
averaging of in the time dimension. It should be
appreciated that the energies are not computed in
their entirety until the loop initiated in step 638 has
completed all of its iterations.
is assigned the values of in preparation for
the next iteration of the loop initiated in step G38 (step
646). The loop performs steps 640-646 a total of
dec_factor(i) times. At the completion of the loop (step
648), all energies for resolution i have been
computed, and all necessary absolute temperatures have
been propagated downward to finer resolutions. Therefore,
Compute_Energy(i) terminates (step 650) and returns
control to Compute^Energy(i+1) (step 644) which initiated
it. When control has finally been returned to level
i=nresolutions-l, Compute_Energy(i) terminates (step 650)
and returns control to process 600 at step 606.
Returning again to step 630 (FIG. 6B), if i = 0 then
Compute_Energy() is being asked to compute energies
for the bottom (finest) resolution. In one embodiment,
the energies are the energies to be provided to the
print head elements 520a-i. The process 620 computes the
energies using Equation 3 (step 652). The process
620 provides the energies to the print head
elements 520a-i to produce the desired densities d(n,*)
(step 654).
As described above, the number of reference points in
resolution i=0 may be different (greater or less) than
the number of print head elements 520a-i. If there fewer
reference points than elements, the absolute temperatures
are interpolated to the resolution of the print head
elements, and then step 652 is applied to compute the
energies to be provided to the print head elements
in step 654. The energies are then decimated back
to resolution i=0, and process 620 is resumed.
The value of n is incremented, representing an
advance in time to the next print head cycle (step 656).
If n > nmax (step 658), printing of the source image 100 is
complete and both processes 620 and 600 terminate (step
660). Otherwise, Compute_Energy(i) terminates (step 662),
representing the bottoming-out of the recursion used by
Compute_Energy(i). Termination of Compute_ Energy(i) at
step 662 returns control to Compute_Energy(i+1) at step
644 (FIG. 6C). The process 600 repeats step 608 until
printing of the digital image is complete.
It should therefore be appreciated that the processes
600 and 620 shown in FIGS. 6A-6D may be used to print a
digital image (e.g., the source image 100) in accordance
with the techniques for thermal history compensation
described above.
It should be appreciated that features of various
embodiments of the present invention described above and
described in more detail below provide numerous
advantages.
One advantage of various embodiments of the present
invention is that they reduce or eliminate the problem of
"density drift" described above. More precisely, by
taking the current ambient temperature of the print head
and the thermal and energy histories of the print head
into account when computing the energy to be provided to
the print head elements, the print head elements are more
accurately raised only to the temperatures necessary to
produce the desired densities.
A further advantage of various embodiments of the
present invention is that they may either increase or
decrease the input energy E(0)(*,*) provided to the print
head elements 520a-i, as may be necessary or desirable to
produce the desired densities d(*,*). Conventional

systems that attempt to compensate for the effects of
thermal history typically decrease the amount of energy
provided to the thermal print heads to compensate for
increase in temperature of the print head elements over
time. In contrast, the generality of the models used by
various embodiments of the present invention enable them
to flexibly increase or decrease the amount of: energy
provided to particular print head elements.
For example, referring to FIG. 7 two graphs 702 and
704 are shown of energy provided to a print head element
over time. Both graphs 702 and 704 represent the amount
of energy provided to the print head element to print a
column of pixels including two high density gradients
(located approximately at pixels numbered 25 and 50,
respectively). Graph 702 (illustrated in solid line)
represents energy provided to the print head element by a
conventional thermal printer, and graph 704 (illustrated
in dashed line) represents energy provided to the print
head element by one embodiment of the inverse printer
model 102. As shown in graph 704, the inverse printer
model 102 provides a greater amount of energy than the
conventional thermal printer at the first high density
gradient. This will tend to raise the temperature of the
print head element more quickly and thereby produce a
sharper edge in the output. Similarly, the inverse
printer model 102 provides a lesser amount of energy than
the conventional thermal printer at the second high
density gradient. This will tend to lower the temperature
of the print head element more quickly and thereby produce
a sharper edge in the output.
It should be appreciated based on the discussion of

FIG. 7 above that various embodiments of the present
invention may flexibly increase or decrease the amount of
energy provided to the print head elements as necessary to
produce the desired output densities d. The flexibility
of the inverse printer model 206 enables the correction
factors AE(n) (FIG. 4) (which are used to produce the
input energies E{n)) to vary in any appropriate manner and
in any combination from print head element to print head
element, and from print head cycle to print head cycle.
For example, the correction factors AE(n) may be positive,
negative, or zero in any combination. Furthermore, the
correction factor DE(n, j) for a particular print head
element j may increase, decrease, or remain the same from
one print head cycle to the next. The correction factors
for a plurality of print head elements may increase,
decrease, or remain the same from print head cycle to
print head cycle, in any combination. For example, the
correction factor for a first print head element j1 may
increase from one print head cycle to the next, while the
correction factor for a second print head element j2
decreases.
These examples of the variety of correction factors
that may be produced by the inverse media density model
206 are merely examples that illustrate the flexibility of
the inverse media density model 206 illustrated in FIG. 4.
More generally, the ability of the inverse media density
model 206 to accurately compensate for the effects of the
thermal history of the thermal printer 108 enables it to
mitigate the effects of various problems typically
associated with thermal printers, such as density drift
and blurred edges. Various other advantages of the

inverse media density model 206 and other aspects and
embodiments of the present invention will be apparent to
those of ordinary skill in the art.
Another advantage of various embodiments of the
present invention is that they compute the energies to be
provided to the print head elements in a computationally
efficient manner. For example, as described above, in one
embodiment of the present invention, the input energy is
computed using two one-dimensional functions (G(d) and
S(d)), thereby enabling the input energy to be computed
more efficiently than with the single two-dimensional
function F(d,T1).
In particular, if f is the decimation factor between
any two resolutions, an upper bound on the number of
additions performed per pixel in one embodiment is given
by Equation 12:
Furthermore, in one embodiment an upper bound on the
number of multiplications performed per pixel in one
embodiment is given by Equation 13:

In one embodiment, two lookups are performed per
pixel. In experimental use various embodiments of the
present invention have been shown to be capable of
computing the input energy sufficiently rapidly to permit
real-time use in a thermal printer having a print head
cycle period of 1.6ms.
The present invention has been described above in
terms of various embodiments. Various other embodiments,
including but not limited to the following, are also
within the scope of the claims.
Although some embodiments may be described herein
with respect to thermal transfer printers, it should be
appreciated that this is not a limitation of the present
invention. Rather, the techniques described above may be
applied to printers other than thermal transfer printers
(e.g. direct thermal printers). Furthermore, various
features of thermal printers described above are described
merely for purposes of example and do not constitute
limitations of the present invention.
Various aspects of the embodiments described above
are provided merely for purposes of example and do not
constitute limitations of the present invention. For
example, there may be any numbers of layers in the print
head 500 and any number of resolutions in the model of the
thermal print head. Furthermore, there need not be a one-
to-one correspondence between print head layers and
resolutions. Rather, there may be a many-to-one or one-
to-many relationship between print head layers and
resolutions. There may be any number of reference points
in each resolution, and there may be any decimeition factor
between resolutions. Although particular gamma and
sensitivity functions are described above, other functions
may be used.
It should be appreciated that the results of the
various equations shown and described above may be

generated in any of a variety of ways. For example, such
equations (such as Equation 1) may be implemented in
software and their results calculated on-the-fly.
Alternatively, lookup tables may be pre-generated which
store inputs to such equations and their corresponding
outputs. Approximations to the equations may also be used
to, for example, provide increased computational
efficiency. Furthermore, any combination of these or
other techniques may be used to implement the equations
described above. Therefore, it should be appreciated that
use of terms such as "computing" and "calculating" the
results of equations in the description above does not
merely refer to on-the-fly calculation but rather refers
to any techniques which may be used to produce the same
results.
In general, the techniques described above may be
implemented, for example, in hardware, software, firmware,
or any combination thereof. The techniques described
above may be implemented in one or more computer programs
executing on a programmable computer and/or printer
including a processor, a storage medium readable by the
processor (including, for example, volatile and non-
volatile memory and/or storage elements), at least one
input device, and at least one output device. Program
code may be applied to data entered using the input device
to perform the functions described herein and to generate
output information. The output information may be applied
to one or more output devices.
Printers suitable for use with various embodiments of
the present invention typically include a print engine and
a printer controller. The printer controller receives

print data from a host computer and generates page
information, such as a logical halftone to be printed
based on the print data. The printer controller transmits
the page information to the print engine to be printed.
The print engine performs the physical printing of the
image specified by the page information on the output
medium.
Elements and components described herein may be
further divided into additional components or joined
together to form fewer components for performing the same
functions.
Each computer program within the scope of the claims
below may be implemented in any programming language, such
as assembly language, machine language, a high-level
procedural programming language, or an object-oriented
programming language. The programming language may be a
compiled or interpreted programming language.
Each computer program may be implemented in a
computer program product.tangibly embodied in a machine-
readable storage device for execution by a computer
processor. Method steps of the invention may be performed
by a computer processor executing a program tangibly
embodied on a computer-readable medium to perform
functions of the invention by operating on input and
generating output.
It is to be understood that although the invention
has been described above in terms of particular
embodiments, the foregoing embodiments are provided as
illustrative only, and do not limit or define the scope of
the invention. Other embodiments are also within the
scope of the present invention, which is defined by the

scope of the claims below. Other embodiments that fall
within the scope of the following claims includes include,
but are not limited to, the following.
CLAIMS:
1. A method of thermal printing by using a thermal printer having a print head
element, said method comprising the steps of:
computing an input energy to provide to the
print head element based on a current
temperature of the print head element and a
plurality of one-dimensional functions of a
desired output density to be printed by the
print head element.
2. The method as claimed in claim 1, which involves a step of:
providing the input energy to the print head
element.
3. The method as claimed in claim 1, wherein the current
temperature of the print head element comprises a
predicted current temperature of the print head element.
4. The method as claimed in claim 3, wherein the predicted
temperature is predicted based on an ambient temperature
and an energy previously provided to the print head
element.
5. The method as claimed in claim 3, wherein the thermal printer
has a plurality of print head elements, and wherein
the predicted temperature is predicted based on an ambient
temperature, an energy previously provided to the print
head element, and an energy previously provided to at
least one other print head element in the plurality of
print head elements.
6. The method as claimed in claim 1, wherein the plurality of
one-dimensional functions comprise. :
an inverse gamma function having the desired output
density as an input and an uncorrected input energy as an
output; and
a correction function having the current temperature
of the print head element as an input and a correction
factor as an output; and
wherein the step of computing the input energy is carried out by adding the
correction factor to the uncorrected input energy.
7. The method as claimed in claim 6, wherein the correction
function develops the correction factor by performing
steps of:
developing a temperature difference value by
subtracting a reference temperature from the current
temperature of the print head element; and
developing the correction factor as the product of
the temperature difference value and the output of a
sensitivity function having the desired output density as
an input and a sensitivity value as an output.
8. The method as claimed in claim 6, wherein the correction
factor is positive.
9. The method as claimed in claim 6, wherein the correction
factor is negative.
10. The method as claimed in claim 1, wherein the input energy is represented by the
variable E, and wherein the step of computing the input energy is carried out by using an
equation of the following form:
E = rl(d) + s(d)(ra -Tr(d)),
wherein T...1(d) relates the desired output, density d to
an uncorrected input energy ET, Ta is the current:
temperature of the print head element, Tr (d) relates the
desired output density d to a reference temperature, which
is the temperature of the print head element when TO was
measured, and S(d) is the slope of the temperature
dependence of r-l(d).
11. The method as claimed in claim 1, wherein the input energy is represented by the
variable K, and wherein the step of computing the input energy is carried out by using an
equation of the following form:
E=G(d) + S(d)Ta,
wherein G(d) relates the desired output density d to
an uncorrected input energy Er, Ta is the current
temperature of the print head element, and S{d) is the
slope of the temperature dependence of G(d).
12. The method as claimed in claim 1, wherein the step of computing the input energy-
is performed within a single print head cycle of the thermal printer.
13. A thermal printer comprising:
a print head element; and
means for computing an input energy to provide to the
print head element based on a current temperature of the
print head element and a plurality of one-dimensional
functions of a desired output density to be printed by the
print head element.
14. The thermal printer as claimed in claim 13, having means for providing the input
energy to the print head element.
15. The thermal printer as claimed in claim 13, wherein the
current temperature of the print head element comprises a
predicted current temperature of the print head element.
16. The thermal printer as claimed in claim 15, wherein the
predicted temperature is predicted based on an ambient
temperature and an energy previously provided to the print
head element.
17. The thermal printer as claimed in claim 15, wherein the
print head element is one of a plurality of print head
elements, and wherein the thermal printer
has means for predicting the predicted temperature
based on an ambient temperature, an energy previously
provided to the print head element, and an energy
previously provided to at least one other print head
element in the plurality of print head elements.
18. The thermal printer as claimed in claim 13, wherein the
means for computing- the input energy comprises:
inverse gamma function means having the desired
output density as an input and an uncorrected input energy
as an output;
correction function means having the current
temperature of the print head element as an input and a
correction factor as an output; and
means for computing the input energy by adding the
correction factor to the uncorrected input energy.
19. The thermal printer as claimed in claim 18, wherein the
correction function means comprises:
means for developing a temperature difference value
by subtracting a reference temperature from the current
temperature of the print head element; and
means for developing the correction factor as the
product of the temperature difference value and the output
of a sensitivity function having the desired output
density as an input and a sensitivity value as an output.
20. The thermal printer as claimed in claim 13, wherein the
input energy is represented by the vax"iable E, and wherein
the means for computing the input energy comprises means
for computing the input energy using an equation of the
following form:
E = r-l(d) + S(d)(Ta -Tr(d)),
wherein T--1 (d) relates the desired output density d to
an uncorrected input energy Er, Ta is the current
temperature of the print head element, Tt (d) relates the
desired output density d to a reference temperature, which
is the temperature of the print head element, when l"() was
measured, and S(d) is the slope of the temperature
dependence of T-](d).
21. The thermal printer as claimed in claim 13, wherein the
input energy is represented by the variable E, and wherein
the means for computing the input energy comprises means
for computing the input energy using an equation of the
following form:
E = G(d) + S(d)Ta,
wherein G(d) relates the desired output density d to an
uncorrected input energy Er, Ta is the current temperature
of the print head element, and S(J) is the slope of the
temperature dependence of G(d).
22. The thermal printer as claimed in claim 13, wherein the
means for computing the input energy comprises means for
computing the input energy within a single print head
cycle of the thermal printer.
23. An apparatus for producing a plurality of input
energies to provide to a plurality of print head elements
in a thermal print head to produce a printed image
corresponding to a source image having a distribution of
desired densities, the apparatus comprising:
head temperature model means for:
receiving as inputs, for each of a plurality of
print head cycles: (1) an ambient
temperature, and (2) a plurality of input
energies provided to the plurality of print
head elements during at: least one previous
print head cycle; and for
producing as an output, for each of the
plurality of print head cycles, a plurality
of predicted temperatures of the plurality
of print head elements at the beginning of
the print head cycle, wherein the plurality
of predicted temperatures are developed
using a first recursive process utilizing a
multi-resolution heat propagation model;
and

inverse media density model means for:
receiving as inputs, for each of the plurality
of print head cycles: (1) the plurality of
predicted temperatures, and (2) a subset of
the distribution of desired densities that
is to be printed during the print head
cycle; and for
producing as an output, for each of the
plurality of print head cycles, a plurality
of input energies to be provided to the
plurality of print head elements during the
print head cycle.
24. The apparatus as claimed in claim 23, wherein the inverse
media density model means comprises:
inverse gamma function means for receiving the subset
of the distribution of desired densities as an input and
producing a plurality of uncorrected input energies as an
output;
sensitivity function means for receiving the subset
of the distribution of desired densities as an input and
producing a plurality of sensitivity values as an output;
reference temperature function means for receiving
the subset of the distribution of desired densities as an
input: and producing a plurality of reference temperatures
as an output;
a subtractor for subtracting the plurality of
reference temperatures from the plurality of predicted
temperatures to produce a plurality of temperature
differences;
a multiplier for multiplying the plurality of
sensitivity values by the plurality of temperature
differences to produce a plurality of correction factors;
and
an adder for adding the plurality of correction
factors to the plurality of uncorrected input energies to
produce the plurality of input energies.
25. The apparatus as claimed in claim 23. wherein the head
temperature model means further receives as an input at
least one previous predicted temperature produced by the
head temperature model.
26. A method for developing input energy to provide to each one of a plurality of print
head elements in a thermal printer, for each of a plurality of print head cycles, a plurality
of input energies to produce a plurality of output densities, said method comprising the
steps of:
(i) using a multi-resolution heat propagation model to
develop, for each of the plurality of print head
cycles, a plurality of predicted temperatures of
the plurality of print head elements at the
beginning of the print head cycle; and
(ii) using an inverse media model to develop the
plurality of input energies based on the plurality
of predicted temperatures and a plurality of
densities to be output by the plurality of print
head elements during the print head cycle.
27. The method as claimed in claim 26, wherein the step (i),
comprises a step of developing the plurality of predicted
temperatures based on an ambient temperature and a
plurality of input energies provided to the plurality of
print head elements during at least one previous print
head cycle.
28. The method as claimed in claim 26, wherein the step (i),
comprises a step of developing the plurality of predicted
temperatures based on a plurality of previous predicted
temperatures for the plurality of print head elements.
29. The method as claimed in claim 26, wherein the step (i),
comprises a step of developing, for each of the plurality
of print head elements, a predicted temperature based on a
predicted temperature of at least one of the other print
head elements at the beginning of at least one previous
print head cycle.
30. The method as claimed in claim 26, which involves a step of:
(iii) defining a three-dimensional grid having an i
axis, an n axis, and a j axis, wherein the three-
dimensional grid comprises a plurality of resolutions,
wherein each of the plurality of resolutions defines a
plane having a distinct coordinate on the i axis, wherein
each of the plurality of resolutions comprises a distinct
two-dimensional grid of reference points, and wherein any
one of the reference points in the three-dimensional grid
may be uniquely referenced by its i, n, and j ccordinates;
wherein associated with each of the reference points
in the three-dimensional grid is an absolute temperature
value and an energy value;
wherein the absolute temperature value associated
with a reference point having coordinates (0,n,j)
corresponds to a predicted temperature of a print head
element at location j at the beginning of time interval n,
and wherein the energy value associated with the reference
point having coordinates (0,n,j) corresponds to an amount
of input energy to provide to the print head element at
location j during time interval n; and wherein the step
(ii) comprises a step of:
developing the plurality of input energies by
developing energy values associated with a plurality of
reference points having an i coordinate of zero based on
the plurality of output densities and the absolute
temperature values associated with the plurality of
reference points having an i coordinate of zero.
31. The method as claimed in claim 30, which involves steps of :
(iv) calculating relative temperature values using the
following equations:

in which T(i)(n,j) refers.to a relative temperature
value associated with a reference point having coordinates
(i,n, j) ;
(v) calculating absolute temperature values using the
following recursive equation:

for i = nresolutions - 1, nrcsolutions ... 2,..., 0;
with initial conditions specified by:

wherein nresolutions is the number of resolutions in
the three-dimensional grid, Ts is an ambient; temperature,
Ta(i)(n,j) refers to an absolute temperature value associated
with a reference point having coordinates (i,n,j), and I(i)(i=1)
is an interpolation operator from resolution i-i-1 to
resolution i; and wherein the step of developing the plurality of input energies in step (ii)
comprises a step of :
calculating the plurality of input energies using the
following recursive equation:
for i = 1, 2,..., nresolutions -
1;
with initial conditions specified by

wherein G(d(n,j)) relates the desired output density d
to an uncorrected input energy ET, Ta(0)(n,j) is an absolute
temperature value associated with a reference point having
coordinates (0,n,j), and S(d(n,j)) is a the slope of the
temperature dependence of G(d(n,j)).
32. The method as claimed in claim 31, which involves a step
of providing the plurality of input energies E(0)(n,j) to
the plurality of print head elements during each time
interval n.
33. The method as claimed in claim 26, wherein the steps (i) and
(ii) are performed during a single print head cycle of the
thermal printer.
34. A thermal printer comprising:
a print head including a plurality of print head
elements; and
means for developing, for each of a plurality of
print head cycles, a plurality of input energies to be
provided to the plurality of print head elements during
the print head cycle to produce a plurality of output
densities, the means for developing the plurality of input
energies comprising:
first means for using a multi-resolution heat
propagation model to develop, for each of the plurality of
print head cycles, a plurality of predicted temperatures
of the plurality of print head elements at the beginning
of the print head cycle; and
second means for using an inverse media model to
develop the plurality of input energies based on the
plurality of predicted temperatures and a plurality of
densities to be output by the plurality of print head
elements during the print head cycle.
35. The thermal printer as claimed in claim 34, wherein the
first means comprises means for developing the plurality
of predicted temperatures based on an ambient temperature
and a plurality of input energies provided to the
plurality of print head elements during at least one
previous print head cycle.
36. The thermal printer as claimed in claim 34, wherein the
first means comprises means for developing the plurality
of predicted temperatures based on a plurality of previous
predicted temperatures for the plurality of print head
elements.
37. The thermal printer as claimed in claim 34, wherein the
first means comprises means for developing, for each of
the plurality of print head elements, a predicted
temperature based on a predicted temperature of at least
one of the other print head elements at the beginning of
at least one previous print head cycle.
38. The thermal printer as claimed in claim 34, which is provided
with, means for defining a three-dimensional grid having an
i axis, an n axis, and a j axis, wherein the three-
dimensional grid comprises a plurality of resolutions,
wherein each of the plurality of resolutions defines a
plane having a distinct coordinate on the i axis, wherein
each of the plurality of resolutions comprises a distinct
two-dimensional grid of reference points, and wherein any
one of the reference points in the three-dimensional grid
may be uniquely referenced by its i, n, and j coordinates;
wherein associated with each of the reference points
in the three-dimensional grid is an absolute temperature
value and an energy value;
wherein the absolute temperature value associated
with a reference point having coordinates (0,n,j)
corresponds to a predicted temperature of a print head
element at location j at the beginning of time interval n,

and wherein the energy value associated with the reference
point having coordinates {0,n,j) corresponds- to an amount
of input energy to provide to the print head element at
location j during time interval n; and wherein the second
means comprises:
means for developing the plurality of input energies
by developing energy values associated with a plurality of
reference points having an i coordinate of zero based on
the plurality of output densities and the absolute
temperature values associated with the plurality of
reference points having an i coordinate of zero.
39. The thermal printer as claimed in claim 38, having :
means for calculating relative temperature values
using the following equations:

in which T(i)(n,j) refers to a relative temperature
value associated with a reference point having coordinates
(i,n, j) ;
means for calculating absolute temperature values
using the following recursive equation:

for i = nresolutions - 1, nresolutions - 2,..., 0;
with initial conditions specified by:

wherein nzresolutions is the number of resolutions in
the three-dimensional grid, Ts is an ambient temperature,
Ta(i}(n,j) refers to an absolute temperature value associated
with a reference point having coordinates (i,n,j), and
is an interpolation operator from resolution i+1 to
resolution i; and wherein the second means comprises:
means for calculating the plurality of input energies
using the following recursive equation:
for i = 1, 2,..., nresolutions -
1;
with initial conditions specified by

wherein G(d(n,j)) relates the desired output density d
to an uncorrected input energy ET, Ta(0)(n,j) is an absolute
temperature value associated with a reference point having
coordinates (O,n,j), and S(d(n,j)) is the slope of the
temperature dependence of G(d(n,J)).
40. The thermal printer as claimed in claim 39,
having means for providing the plurality of input
energies Em(n,j) to the plurality of print head elements
during each time interval n.
41. A method for developing an input energy to
provide to a print head element in a print head of a
thermal printer to produce output having a desired
density, the method comprising steps of:
(i) developing an uncorrected energy using a first
function that has the desired density as an input and
the uncorrected energy as an output;
(ii) developing a correction factor using a correction
function that has the desired density and a
temperature of the print head element as inputs and
the correction factor as an output; and
(iii) modifying the uncorrected energy using the
correction factor to produce the input energy.
42. The method as claimed in claim 41, wherein the step (iii)
comprises a step.of adding the correction factor to the
uncorrected energy.
43. The method as claimed in claim 41, wherein the temperature
of the print head element comprises a predicted
temperature of the print head element.
44. The method as claimed in claim 41, wherein the step (ii) comprises
steps of:
developing a sensitivity value using a
sensitivity function that has the desired density as an
input and the sensitivity value as an output; and
multiplying the sensitivity value by the
temperature of the print head element to produce the
correction factor.
45. The method as claimed in claim 41, wherein the step (ii) comprises
steps of :
developing a sensitivity value using a
sensitivity function that has the desired density as an
input and the sensitivity value as an output;
developing a temperature difference value by
subtracting a reference temperature from a temperature of
the print head element; and
multiplying the sensitivity value by the
temperature difference value to produce the correction
factor.
46. The method as claimed in claim 45, wherein the first
function comprises an inverse of a gamma function, wherein
the gamma function takes as an input an energy and
produces as an output a density produced by the print head
element when provided with the energy, wherein a reference
temperature function takes as an input a density and
produces as an output a temperature of the print head
element when the print head element produced the density
during measurement of the gamma function, and wherein the
step of developing a temperature difference value comprises the steps of:
developing a reference temperature value as the
output of the reference temperature function with the
desired density as the input; and
developing the temperature difference value by
subtracting the reference temperature value from a
temperature of the print head element.
47. The method as claimed in claim 41, wherein the steps
(i), (ii) and (iii) are performed during a single print head

cycle of the thermal printer.
48. A thermal printer comprising:
a print head including a print head element; and
means for developing an input energy to provide to
the print head element in a print head of a thermal
printer to produce output having a desired density, the
means for developing the input energy comprising:
means for developing an uncorrected energy using a
first function that has the desired density as an input
and the uncorrected energy as an output;
means for developing a correction factor using a
correction function that has the desired density and a
temperature of the print head element as inputs and the
correction factor as an output; and
means for modifying the uncorrected energy using the
correction factor to produce the input, energy.
49. The thermal printer as claimed in claim 48, wherein the
means for modifying the uncorrected energy comprises means
for adding the correction factor to the uncorrected
energy.
50. The thermal printer as claimed claimed in claim 48, wherein the
temperature of the print head element comprises a
predicted temperature of the print head element.
51. The thermal printer as claimed in claim 48, wherein the
means for developing the correction factor comprises:
means for developing a sensitivity value using a
sensitivity function that has the desired density as an
input and the sensitivity value as an output; and
means for multiplying the sensitivity value by the
temperature of the print head element to produce the
correction factor.
52. The thermal printer as claimed in claim 48,. wherein the
means for developing the correction factor comprises:
means for developing a sensitivity value using a
sensitivity function that has the desired density as an
input and the sensitivity value as an output;
means for developing a temperature difference value
by subtracting a reference temperature from a temperature
of the print head element; and
means for multiplying the sensitivity value by the
temperature difference value to produce the correction
factor.
53. The thermal printer as claimed in claim 52,. wherein the
first function comprises an inverse of a gamma function,
wherein the gamma function takes as an input an energy and
produces as an output a density produced by the print head
element when provided with the energy, wherein a reference
temperature function takes as an input a density and
produces as an output a temperature of the print head
element when the print head element produced, the density
during measurement of the gamma function, and wherein the
means for developing the temperature difference value
comprises:
means for developing the reference temperature value
as the output of the reference temperature function with
the desired density as the input; and
means for developing the temperature difference value
by subtracting the reference temperature value from a
temperature of the print head element.
A model of a thermal print head is provided that models the thermal response of thermal print head elements to the
provision of energy to the print head elements over time. The thermal print head model generates predictions of the temperature of
each of the thermal print head elements at the beginning of each print head cycle based on: (1) the current ambient temperature of
the thermal print head, (2) the thermal history of the print head, and (3) the energy history of the print head. The amount of energy to
provide to each of the print head elements during a print head cycle to produce a spot having the desired density is calculated based
on: (1) the desired density to be produced by the print head element during the print head cycle, and (2) the predicted temperature
of the print head element at the beginning of the print head cycle.

Documents:


Patent Number 225407
Indian Patent Application Number 00339/KOLNP/2004
PG Journal Number 46/2008
Publication Date 14-Nov-2008
Grant Date 12-Nov-2008
Date of Filing 12-Mar-2004
Name of Patentee POLAROID CORPORATION
Applicant Address 1265 MAIN STREET, WALTHAM MA 02451
Inventors:
# Inventor's Name Inventor's Address
1 SAQUIB SUHAIL S 33 TROWBRIDGE LANE, SHREWSBURY, MA 01545
2 VETTERLING WILLIAM T 35 TURNING MILL ROAD LEXINTON, MA 02420
PCT International Classification Number B41J 2/365, 2/36
PCT International Application Number PCT/US02/15406
PCT International Filing date 2002-05-16
PCT Conventions:
# PCT Application Number Date of Convention Priority Country
1 09/934,703 2001-08-22 U.S.A.