Optimized printing system

US006963411B1
(12) United States Patent
US 6,963,411 B1
(10) Patent N0.:
(45) Date of Patent:
Billow et al.
(54) OPTIMIZED PRINTING SYSTEM
Nov. 8, 2005
Digital Printing Technologies, Oct. 27—Nov. 1, 1996, pp.
227—233.
(75) Inventors: Steven A. Billow, Pittsford, NY (US);
Sean E. Skelly, Rochester, NY (US);
Kenneth D. Stack, Fairport, NY (US)
“Digital Color Management” by Edward J. Giorgianni and
Thomas E. Madden. Addison—Wesley, 1998, pp. 419—436.
(73) Assignee: Eastman Kodak Company, Rochester,
NY (US)
( * ) Notice:
* cited by examiner
Subject' to any disclaimer, the term of this
Primary Examiner_Gabriel Garcia
patent is extended or adJusted under 35
.
U‘SC' 154(k)) by 0 days‘
.
(74) Attorney, Agent, or Ftrm—Stephen H. ShaW
(21) Appl. N0.: 09/479,420
(22) Flled:
.
ASSZSILZI’II Exammer—Th1err~y L Pham
(57)
Jan‘ 7’ 2000
ABSTRACT
A computer program product is provided for optimizing a
(51)
Int. c1.7 ............................................... .. B41J 11/44
printer for driver settings and Color pro?le in Order to
(52)
US. Cl. ............. ..
optimally Print an image on a selected media- Data is stored
(58)
Field of Search ............................... .. 358/1.13, 1.9,
in an indeX ?le for Various Combinations Of printers, printer
358/1_15_1_16, 501, 518
drivers, printer media and color pro?les. The printer driver
. 358/113; 358/19; 358/116
that is currently used on the user’s machine for the selected
(56)
References Cited
printer is determined and the printer media selected for the
Us‘ PATENT DOCUMENTS
printer is identi?ed, e.g., by~a simple query'of the user. One
set of steps mvolves choosmg an appropriate stored color
5,559,933 A *
9/1996 Boswell ................... .. 358/115
6,088,480 A * 7/2000 Sakamoto
6,149,323 A * 11/2000 shlma """" "
6,257,693 B1 *
7/2001
Miller et a1.
382/180
applying the chosen color pro?le to the image data, thereby
400/76
generating transformed image data. Another set of steps
347/19
6,571,009 B1 * 5/2003 Nielsen et a1‘ "
2003/0112334 A1 *
pro?le for the selected printer-media combination, and
.
382/162
.
.
.
.
.
mvolves retrieving prmter settings for the' selected prmter
6/2003 Kiyokawa .............. .. 348/2071
medla Combmatlon and modlfylng the semngs of the dnver
in use for the selected media. Finally the transformed image
OTHER PUBLICATIONS
data is printed using the modi?ed settings of the printer
driver to obtain optimal printing of the image.
“Some Simple Techniques for Improving the Print Quality
of Digital Images from Kodak Electronic Cameras” by Paul
20 Claims, 3 Drawing Sheets
B. Gilman. IS&T’s NIP 12: International Conference on
1751 ACQUIRE MEDIA AND
PRINTER DRIVER
VERSION
120
1
DETERMINE /F
No
_.. IS
CONFIGURA
r/o/v _,IE
SUPPORTED
130
TRANSFORM IMAGE DA TA
IN TO PROF/LE C ORRE C TION
SPA CE
0
FIND CORRECT 0U TPU T
COL 01'? PROFILE
TRANSFORM IMAGE DA TA
IN TO MEDIA OP TIMIZED
PRIN TEI? COL OR SPA CE
0
RETRIEVE DRI VER
SPECIFIC DA TA
MOD/F Y DRIVER SETTINGS
PR/N T TRA NSFORMED
IMA GE THROUGH MODIFIED
PRIN TEI? DRI VER
U.S. Patent
Nov. 8,2005
/
Sheet 1 of3
US 6,963,411 B1
/
0C]
29
‘Q
U
K
0o
N \f"
9
c
3
/
/
‘ m
—~
g
b [1/
ji?
521E
'\.
I
A it E
B
Q
E [:1 S :1
\ [:1
Q Q
Lu
Lu
\
g‘? ‘F
Q J
\
2
‘2
“NM
- U
72'
/\
‘
55::
If»
“
/
J76
l
26
30
U.S. Patent
US 6,963,411 B1
Sheet 2 0f 3
Nov. 8,2005
700
RECEIVE IMAGE DA TA
7751
'
A COUIRE MEDIA AND
PRIN TER DRI VER
VERSION
DETERMINE IF
CONFIGURA TI ON
IS SUPPORTED
NO
725
7
730
735
FIND CORRECT INPUT
COLOR PROF/LE
,1
TRANSFORM IMAGE DA TA
IN TO PROFILE C ORRE C T/ON
SPA CE
INDEX
FILE
740
FIND CORREC T OU TPU T
COL OR PROFILE
745
TRANSFORM IMAGE DA TA
INTO MEDIA OPTIM/ZED
PRINTER COLOR SPACE
750
RE TR/E VE DRIVER
SPECIFIC DA TA
755
"W
MOD/F Y DRIVER SETTINGS
760%
FIG. 2
PR/N T TRA NSFORMED
IMAGE THROUGH MODIFIED
RR/N TER DRIVER
EXIT
U.S. Patent
Nov. 8, 2005
Sheet 3 0f 3
200
RE TRIEVE DR/ VER-SPECIF/C
DA TA E/LENAME
205
\
RE TRIE VE DRIVER
SPECIFIC DA TA
270
m
,
RE TR/E VE C URREN T DA TA
STRUCTURE SETTINGS
275
LA MODIFY COPY OF
DA TA STRUCTURE
220
P
CREA TE DEV/CE CON TEXT
ON PRIN TER DE VICE WI TH
MODIFIED DA TA STRUCTURE
I60
PRINT THROUGH
PRINTER DE VICE DRIVER
FIG. 3
US 6,963,411 B1
US 6,963,411 B1
1
2
OPTIMIZED PRINTING SYSTEM
beyond the application layer. The need for this assumption
FIELD OF THE INVENTION
is the impetus behind support for a “generic” color space
such as sRGB. Despite this support, hoWever, many inter
pretations of sRGB continue to exist and input devices
frequently report sRGB images With different code values.
No accommodations for different color spaces (and different
input sources) are possible at the driver level Without
additional user input specifying the input device.
Beyond these problems With color management, the
The invention relates generally to the ?eld of printing, and
in particular to establishing proper setup of printers and
optimiZation of color for different types of media.
BACKGROUND OF THE INVENTION
Printers, such as inkjet desktop printers, are noW capable
10
LUTs is Worthless if a user selects the incorrect media or
hoWever, a user must be able to properly con?gure the
printer driver softWare for the appropriate settings, as
directed by either the printer manufacturer or the media
manufacturer. There is every indication that most users do
not appropriately set the driver settings for the media, Which
makes optimal printing very dif?cult, if not impossible, to
achieve. Furthermore, to obtain consistent, reliable color, the
printing path should be color managed according to the most
modem techniques. If a color pro?le is applied for a driver
setting different than the setting for Which the pro?le Was
built, the results are unpredictable at best.
Several high-end softWare products are available on the
market today Which alloW a knoWledgeable user to color
manage their images. Adobe Photoshop versions 4.0 and
later, for example, permit the use of “plug-ins” Which a
device driver user interfaces still require the user to make the
correct selections. All of the color management built into the
of making high quality images. To realiZe this capability,
neglects to make any changes beyond the defaults. Because
printer drivers are Written to be a generic solution for all of
15
the user’s needs, multiple settings Would need to be made
available for user input; consequently, this dependency on
the user persists. Some printer drivers exacerbate this prob
lem further by providing confusing, inconsistent, or highly
20
technical options to the user.
As a result, color management tools are (1) out of the
reach of typical imaging softWare applications, and (2) too
complicated for most consumers to understand and use.
Furthermore, color management systems embedded into
25
operating systems, such as WindoWs, have been used too
inconsistently to provide optimum results and do not provide
the ability to change driver settings. What is needed is a Way
customer can use to transform images from one color space
for automating driver setting and color management for the
to another. Press Ready, also by Adobe, permits colorimetric
rendering intents for proo?ng operations. None of these
applications, hoWever, automatically select the correct color
user While requiring very little user intervention.
30
transforms based upon image source or the user’s printer. It
is up to the user to correctly identify the pro?les to be used.
Furthermore, it is still up to the user to con?gure his or her
driver correctly.
Image color matching (ICM) version 1.0 and 2.0 have
been incorporated into Microsoft Operating systems Win
SUMMARY OF THE INVENTION
An object of the invention is to automatically assist and
encourage a user to properly con?gure a printer driver to the
appropriate settings.
35
Another object of the invention is to provide a printing
path that can be color managed for consistent and reliable
color.
doWs 95, WindoWs 98, and WindoWs NT 4.0 and later. These
The present invention is directed to overcoming one or
systems take advantage of the operating systems embedded
Graphics Device Interface (GDI) to correctly manage color
more of the problems set forth above. Brie?y summariZed,
according to one aspect of the present invention, a computer
40
betWeen monitors and other output devices. Despite its
capability, ICM has been implemented only sporadically in
program product is provided for optimiZing a printer for
driver settings and color pro?le in order to optimally print an
most applications and at times incorrectly. As a result,
vendors of both hardWare and softWare have not fully
image on a selected media. At an initial stage, data is stored,
e.g., in an index ?le, for various combinations of printers,
embraced ICM as a solution to their color management 45
printer drivers, printer media and color pro?les. Next, the
needs. As With the imaging applications mentioned above,
printer driver that is currently used on the user’s machine for
the selected printer is determined and the printer media
selected for the printer is identi?ed, e.g., by a simple query
ICM has no capabilities to automatically set printer driver
options.
Printer Drivers by original equipment manufacturers
(OEMs) also incorporate color management. For instance,
of the user. After an appropriate one of the stored color
50
by assuming an input image is in sRGB color space, a printer
manufacturer may implement color look-up tables (LUTs)
Within their printer driver to give excellent reproduced color.
This solution, hoWever, has tWo distinct disadvantages.
First, these LUTs Will ordinarily be optimiZed for only one
data, thereby generating transformed image data. The stored
printer driver settings for the selected printer-media combi
nation are retrieved and the settings of the driver are
55
paper formulation—images on other papers Will be com
promised. By specifying multiple paper types, a printer
OEM can additionally support all of their media at the
expense of some added complexity. The HP895 driver, for
example, supports 16 media types. For obvious reasons, the
OEM printer drivers do not ordinarily offer any LUTs
60
The second disadvantage is that the driver must assume a
knoWledge of the source of the image. Metadata, that is,
descriptive data associated With an image, is not persistent
thereupon adjusted for the selected media. Finally the trans
formed image data is printed through the modi?ed settings
of the printer driver to obtain optimal printing of the image.
The advantage of the invention is that it automatically
determines the user’s driver, sets that driver appropriately,
and then automatically chooses and applies a color pro?le
built for that printer driver and the user selected media. The
user only needs to select a printer and media to make the
optimiZed for competitive media.
color space for the image. Because of its location in the
imaging chain after GDI, a printer driver has little or no
pro?les is chosen for the selected printer-media
combination, the chosen color pro?le is applied to the image
65
system operable. Another advantage is that the invention
combines and automates the process of properly setting the
printer driver and choosing and applying the output color
pro?le. This “closes” the loop to guarantee that driver
settings are correct for the selected pro?le. OtherWise, if a
US 6,963,411 B1
3
4
color pro?le is applied for a driver setting different than the
setting for Which the pro?le Was built, the results are
unpredictable at best.
These and other aspects, objects, features and advantages
of the present invention Will be more clearly understood and
appreciated from a revieW of the folloWing detailed descrip
tion of the preferred embodiments and appended claims, and
processing functions. A display 14 is electrically connected
to the microprocessor-based unit 12 for displaying user
related information associated With the softWare, e.g., by
means of a graphical user interface. A keyboard 16 is also
connected to the microprocessor based unit 12 for permitting
a user to input information to the softWare. As an alternative
to using the keyboard 16 for input, a pointing device 18 may
by reference to the accompanying draWings.
BRIEF DESCRIPTION OF THE DRAWINGS
10
A compact disk-read only memory (CD-ROM) 22 is
connected to the microprocessor based unit 12 for receiving
FIG. 1 is a perspective diagram of a computer system
interfacing With a printer according to the invention.
FIG. 2 is a How diagram of a technique for optimiZing a
printer for driver settings and color pro?le according to the
softWare programs and for providing a means of inputting
softWare programs and other information to the micropro
15
cessor based unit 12 via optical storage on a compact disk
24. In implementing the present invention, the softWare
Would typically include the presently disclosed computer
program product for optimiZing a printing system. In
addition, a ?oppy disk 26 (or other magnetic storage, such
as magnetic tape) may also include the softWare program,
and is inserted into the microprocessor-based unit 12 for
inputting the softWare program. Still further, the
microprocessor-based unit 12 may be programmed, as is
Well knoWn in the art, for storing the softWare program
invention.
FIG. 3 is a How diagram shoWing more detail of one
technique for retrieving driver speci?c data as generally
shoWn in FIG. 2.
DETAILED DESCRIPTION OF THE
INVENTION
Because printers, printer driver softWare and color man
agement techniques employing color pro?les are Well
knoWn, the present description Will be directed in particular
to elements forming part of, or cooperating more directly
be used for moving a selector 20 on the display 14 and for
selecting an item on Which the selector 20 overlays, as is
Well knoWn in the art.
25
With, methods and computer programs in accordance With
the present invention. In the folloWing description, a pre
ferred embodiment of the present invention Will be imple
internally on solid state electronic storage devices such as
random access memory (RAM) or read only memory
(ROM), or any other physical device or medium (such as a
hard disk) employed to store a computer program. The
microprocessor-based unit 12 may also have a netWork
connection 27, such as a telephone line, to an eXternal
mented as a softWare program. Those skilled in the art Will
netWork, such as a local area netWork or the Internet
readily recogniZe that the equivalent of such softWare may
(including the World Wide Web), for either receiving the
also be constructed in hardWare or ?rmWare. Because image
softWare programs or updates to softWare programs previ
manipulation techniques are Well knoWn, the present
description Will be directed in particular to aspects of
algorithms and systems forming part of, or cooperating more
directly With, the present invention. Other aspects of such
algorithms and systems, and hardWare and/or softWare for
ously input to the microprocessor-based unit 12.
35
producing and otherWise processing the image signals
involved thereWith, not speci?cally shoWn or described
herein may be selected from such systems, algorithms,
components and elements knoWn in the art. Given the
description as set forth in the folloWing speci?cation, all
softWare implementation thereof is conventional and Within
the ordinary skill in such arts.
Before describing the present invention in more detail, it
facilitates understanding to note that the present invention is
preferably utiliZed on any Well-knoWn computer system,
such a personal computer, With any Well-knoWn printer
40
A conventional printer 28, such as an inkjet desktop
printer, is connected to the microprocessor-based unit 12 for
printing a hardcopy of the imaging output of the computer
system 10 upon conventional printing media 29. As Will be
described in more detail, the printer 28 is con?gured to print
through a device driver With settings for particular media. In
accordance With the invention, the display 14 is electrically
connected to the microprocessor-based unit 12 for producing
a graphical user interface having a page 14a shoWing a set
of interactive buttons 14b corresponding to different printers
45
that could be used With the computer system 10 and a further
set of interactive buttons 14c corresponding to different
media that may be used With the supported printers. It is a
particular feature of this invention that the user need only
click on one of the printer buttons 14b and one of the media
using Well-knoWn printer media. Consequently, the com
puter system, printer and media Will not be discussed in
buttons 14c to optimiZe the printing system for the printer
detail herein. It is also instructive to note that the images are
Images may also be displayed on the display 14 via a
personal computer card (PC card) 30, such as, as it Was
formerly knoWn, a PCMCIA card (based on the speci?ca
tions of the Personal Computer Memory Card International
and media in use.
either directly input into the computer system (for eXample
by a digital camera) or digitiZed before input into the
computer system (for eXample by scanning an original, such
55
as a silver halide ?lm). While this invention ?nds particular
Association) Which contains digitiZed images electronically
utility in the case of desktop inkjet printers, it should be
understood that it is applicable to the setup of printers
embodied in the card 30. The PC card 30 is ultimately
inserted into the microprocessor based unit 12 for permitting
visual display of the image on the display 14. Images may
also be input via the compact disk 24, the ?oppy disk 26, or
generally.
Referring to FIG. 1, there is illustrated a computer system
10 for implementing the present invention. Although the
computer system 10 is shoWn for the purpose of illustrating
the netWork connection 27. Any images stored, e.g., in the
a preferred embodiment, the present invention is not limited
to the computer system 10 shoWn, but may be used on any
disk (not shoWn), or input through the netWork connection
electronic processing system. The computer system 10
includes a microprocessor-based unit 12 for receiving and
processing softWare programs and for performing other
PC card 30, the ?oppy disk 26, the compact disk 24 or a hard
65
27, may have been obtained from a variety of sources, such
as a digital camera (not shoWn) or a scanner (not shoWn).
Images may contain “metadata” Which details the source of
the image and conditions of the capture, Which facilitates the
US 6,963,411 B1
5
6
selection of an appropriate input pro?le. Alternatively, a
pro?le may be embedded in this image metadata such as
proposed in the JPEG 2000 speci?cation. If none of this data
is present, a “generic” input pro?le (such as one appropriate
for sRGB color space) may be chosen.
Referring to FIG. 2, the system How is shoWn for a
technique for optimizing a color printer for driver settings
and color pro?le according to the invention. For the system
to function as shoWn, data regarding the supported printers
Alternatively, these selections may be made through a
and media types must be made available to the system.
While this data may be provided in a number of Ways, in the
standard dialog box. The system next determines (in step
120) Whether the selected printer-media con?guration is
supported by the softWare; this determination is made by
reference to the index ?le 130. If the requested con?guration
is not supported, the program exits the optimiZation system
and the printer returns to its default settings (i.e., printing is
permitted, but through the more traditional printing that is
10
environment).
The next stage is to process the image data through a
uni?ed color management architecture betWeen an input
pro?le and an output pro?le via a pro?le connection space.
preferred embodiment the data regarding the supported color
printers (including their printer drivers and settings), the
supported media types and the color pro?les (both input and
output) is either stored in an index ?le 130 or in another
reliant upon the user’s manual interaction With the printer
driver and color management tools presented in the user’s
15
First, the correct input color pro?le is retrieved (in step 125)
?le(s) accessible via, e.g., pointers in the index ?le 130.
from the index ?le 130. The input color pro?le provides the
(While one index ?le Will be described, it should be under
stood that there could be separate input and output index
?les, one for example for input color pro?les and the other
information necessary to convert input device values to
color values expressed in the pro?le connection space,
Which is a fully de?ned color space used for linking and/or
concatenating a series of pro?les. UtiliZing the correct input
color pro?le for the printer-media combination in use, the
for output color pro?les and driver settings.) The index ?le
130 stores data for implementing optimiZed printing accord
ing to the invention, including such information as:
Identi?cation of the printer
input image data is then transformed (in step 135) into the
Identi?cation of the media
Appropriate color pro?les for the printer-media combi
25
nation
Appropriate driver settings for the printer-media combi
nation
The index ?le 130 may optionally store other information, as
required or as needed for special applications, such as:
output device values. Further details of such color manage
ment architecture can be found in Digital Color Manage
ment by E. J. Giorgianni and T. E. Madden, Addison
Identi?cation of the operating system
Wesley: Reading, Mass, 1998, particularly pages 419—436.
Version of the printer driver
The pro?les used in the preferred embodiment have been
speci?ed under the auspices of the International Color
Bit/byte length of driver settings in the printer code
Rendering intent (e.g., type and amount of gamut com
pression and color mapping) The index ?le 130 needs
35
Consortium (ICC).
40
image data. Generally, as shoWn in FIG. 2, the driver speci?c
data, such as speci?c driver settings for the given media, is
retrieved (in step 150) from, or by reference to, the index ?le
130; in the preferred embodiment, a separate ?le With driver
settings is speci?ed in the index ?le 130, and the program is
directed to that ?le for driver settings. Then the printer driver
settings are modi?ed (in step 155) in accordance With the
The next stage is to set up the printer for the transformed
to be updated as neW printers, and printer drivers, or
neW media are introduced and distributed to the trade.
This can be done by generating and distributing Wholly
neW index ?les or, for example, a Web-site can be
maintained Which houses, or links to, all relevant neW
pro?le connection space. The proper output color pro?le is
retrieved (in step 140) from the index ?le 130 and the image
data in the pro?le connection space is thereupon transformed
(in step 145) into a media optimiZed printer color space. The
output pro?le provides the information necessary to convert
color values expressed in the pro?le connection space to
?le data necessary for proper operation of the system.
In the latter case, after the ?les are doWnloaded over the
netWork connection 27, the ?les are stored on the local
retrieved settings and the printer is actuated (in step 160) to
system 10 for future use. In one typical 45 print the transformed image data through the modi?ed driver
implementation, the doWnloaded ?les update the exist
settings. If the coding scheme, including the bit location and
the bit length, for the coded driver settings embedded in the
ing index ?le 130. As neW versions of printer media are
distributed, neW color pro?les can also be released as
printer code is Well knoWn, then setting the printer driver
settings (in step 155) becomes a trivial matter. HoWever, if
neW index ?les or doWnloaded via the netWork con
this information is not available, then adjustment of the
driver settings requires more ingenuity, as described beloW.
Each printer typically contains a data structure With basic
nection 27 from a media Web-site, Which Would ordi
narily be maintained by the media manufacturer.
In the beginning of the system How shoWn in FIG. 2, the
image data is received (in step 100) from a variety of
sources, such as the ?oppy disk 26, the memory card 30 or
the netWork connection 27 shoWn in FIG. 1. As mentioned
information about device initialiZation and environment in a
Well-de?ned format that has been standardiZed across sub
55
before, the images may contain “metadata” Which details the
source of the image and conditions of the capture, Which
tion of the data structure has generic information germane to
most printing applications that is accessible and Well
understood by any developer. HoWever, the standard data
structure also has an printer-speci?c portion storing settings
for features that are unique for that particular printer. This
portion is unstructured in the sense that a printer developer
may store information anyWhere and in any format the
developer chooses; consequently this information is not
immediately understood and accessible by someone other
facilitates the selection of an appropriate input pro?le, or an
input pro?le may be embedded in this image metadata. The
next stage in FIG. 2 involves acquiring and identifying (in
step 115) the printer media and the printer driver version. In
the preferred embodiment, the printer driver version is
determined When the user examines the list of printers that
are supported and then clicks on a single user interface, e.g.,
a button 14b, corresponding to the printer in use. Similarly,
the media type is acquired by the system When the user
clicks on a button 14c corresponding to the media in use.
stantially all printers, regardless of manufacturer. This por
65
than that printer developer. The only requirement that must
be adhered to is that the length of the printer-speci?c portion
must be speci?ed in a particular ?eld in the generic portion
US 6,963,411 B1
7
8
of the data structure. More speci?cally, the device driver
data is stored in this printer-speci?c portion of the data
structure, that is, in a portion of the data structure having
and 155 running in parallel. Moreover, the input and output
pro?les could ?rst be concatenated and applied to the pro?le
connection space. Other arrangements may also be obvious
to the skilled person. Consequently, the sequence of these
steps as they appear in the claims should be understood to be
interchangeable as set forth above.
meaning only to a speci?c printer developer. Since the
printer Will automatically access this portion of the printer
speci?c data to set its driver settings, it is critical in this
particular embodiment to determine What portion of the
printer-speci?c data structure needs to change and to What
The use of an index ?le 130 has been described in
reference to a preferred embodiment for storing, or referring
values it should be changed. Consequently, the folloWing
methodology Was devised to locate and extract the printer
10
driver settings from the printer-speci?c portion:
appropriate color pro?les for the printer-media combination,
appropriate driver settings for the printer-media
1. Set up the printer in its standard, default mode.
2. Query and record the data structure.
3. Set up the printer via its oWn user interface in the
preferred mode that is recommended (e.g., by the media
manufacturer) for a particular media supported by this
15
invention. This set up Will change the data structure.
cumbersome, this data regarding the printer-media combi
5. Use a conventional ?le compare utility to ascertain
nation could be dispersed and stored, e.g., in a header
associated With each of the color pro?les and/or driver
settings ?les in lieu of being in an index ?le. Then each
Which bits changed betWeen the tWo settings and What the
respective values are for those bits With the different set
tings. These settings represent the bits necessary to imple
ment the optimum driver settings.
25
correct match is found for the printer and media in use.
The invention has been described With reference to a
catalog all the printer—media combinations that Will be
stored in the index ?le 130 and thus supported by the system.
Once these pre-calculated bit values for the driver settings
have been stored in the index ?le 130, the technique shoWn
in FIG. 3 is used to modify the printer data structure for the
preferred embodiment. HoWever, it Will be appreciated that
variations and modi?cations can be effected by a person of
ordinary skill in the art Without departing from the scope of
optimum driver settings. More speci?cally, the folloWing
the invention. For example, the ?le 130 may contain other
types of data, for instance information relating to the ren
steps expand upon steps 150 and 155 shoWn in FIG. 2. The
35
dering intent selected for the printer. Such information might
include particular color pro?les for particular intents, such as
to adjust compression for the image data In that case, the
rendering intent selected for the printer Would be identi?ed
and the and the appropriate color pro?le for the rendering
40
intent Would be used to transform the image data.
driver settings, from the index ?le 130 so as to be able to
query and modify the data structure in the printer. Then the
driver-speci?c data is retrieved (in step 205) from the printer
data structure ?le and the current driver speci?c bits are
header Will identify the speci?c printer-media combination
appropriate for that color pro?le and/or driver settings. The
aforementioned system Would then search through each
color pro?le and/or driver settings ?le in turn until the
data ?le for that speci?c printer—media combination. This
procedure is then repeated as often as necessary in order to
?rst stage is to retrieve (in step 200) the driver speci?c data
?lename, Which includes the appropriate pre-calculated
combination, identi?cation of the operating system, the
version of the printer driver, the bit/byte length of driver
settings in the printer code, and the rendering intent.
Typically, as previously explained, the color pro?les and/or
driver settings are stored in separate ?les accessible via the
index ?le 130. Though perhaps someWhat more
4. Query and record the modi?ed data structure (With its
different settings).
6. Store the bit locations and the desired bit values in a
to, the aforementioned data for implementing optimiZed
printing according to the invention. Such data includes
identi?cation of the printer, identi?cation of the media,
retrieved (in a step 210) from the data structure. The bit
PARTS LIST
locations in the printer data structure ?le are modi?ed (in a
step 215) With the driver settings retrieved from the data ?le
for the particular printer-media combination. The applica
tion can then create a device context With this neW data 45
14a page
14b buttons
14c buttons
structure. Next, referring to FIG. 2, the printer prints (in step
160) the transformed image data using the neW data struc
ture to determine its mode of printing. Finally, although not
shoWn in the Figures, it is preferable to return the driver
settings to their original default values.
16 keyboard
18 pointing device
20 selector
22 CD-ROM
24 CD
Except for the reception of image data in the beginning
and the printing stage at the end, the order of the steps in
FIG. 2 is merely illustrative of one Way of implementing the
invention. In other Words, the system How shoWn in FIG. 2
represents one possible sequence of steps to achieve the
objective of optimal printing, for example, a sequence in
Which the steps 125, 135, 140 and 145 of manipulating the
input and output color pro?les relative to a pro?le connec
tion space are performed before the steps 150 and 155 of
retrieving the driver speci?c data and modifying the driver
settings. An alternative version With substantially the same
effect Would have these steps rearranged With the driver
speci?c data retrieved and used to modify the driver settings
before doing the transformation into and out of pro?le
connection space, that is, With steps 150 and 155 preceding
steps 125 through 145. Another version could have the color
pro?le steps 125 through 145 and the driver setting steps 150
10 computer system
12 microprocessor-based unit
14 display
26 ?oppydisk
55
27 netWork connection
28 printer
29 media
30 PC card
What is claimed is:
1. A computer program product for automatically opti
miZing any one of a plurality of printers for driver settings
and color pro?le in order to optimally print an image, said
computer program product comprising: a computer readable
storage medium having a computer program stored thereon
65
for automatically performing the steps of:
(a) initially, providing preexisting data Without user input,
via an optimiZed printing system that correlates to a
US 6,963,411 B1
10
plurality of printers, printer drivers, printer media and
10. The computer program product as claimed in claim 1
Wherein steps (h) and
color pro?les that are stored on an accessible storage
are performed in parallel With steps
medium;
(b) receiving image data corresponding to the image;
(t) and (g)
(c) receiving from the accessible storage medium the
preexisting data for the plurality of printers printer
drivers, printer media and color pro?les;
Wherein the step (h) of choosing an appropriate color pro?le
comprises choosing an appropriate input and output color
pro?le from the ?le data.
(d) determining Which one of the printer drivers is to be
12. The computer program product as claimed in claim 11
Wherein the input and output color pro?le are concatenated
used on the printer;
11. The computer program product as claimed in claim 1
10
(e) identifying the printer media selected for the printer;
(f) automatically, retrieving printer driver settings for the
selected printer media from the preexisting data;
(g) automatically, modifying settings of the printer driver
13. The computer program product as claimed in claim 1
Wherein step (c) comprises receiving separate ?les for at
15
in use With the retrieved printer driver settings;
together.
(h) automatically, choosing an appropriate color pro?le
from the preexisting data for the printer driver, the
driver settings and the media selected for the printer;
least one of the color pro?les and driver settings, and
Wherein said separate ?les include a header portion that
identi?es the printer and printer media appropriate for each
said separate ?le.
14. The computer program product as claimed in claim 13
Wherein step
(i) automatically, applying the color pro?le to the image
data; and
of retrieving driver settings comprises
Wherein the ?le data for the plurality of printers, printer
searching the headers of the separate ?les until a match is
found for the selected printer media.
15. The computer program product as claimed in claim 13
drivers, printer media and color pro?les are stored in an
Wherein step (h) of choosing an appropriate color pro?le
index ?le, and Wherein step (c) comprises receiving
data from the index ?le or from a data ?led indicated by
the index ?le.
2. The computer program product as claimed in claim 1
25
further comprising the step (k) of initiating a printing
operation With the modi?ed driver settings.
comprises searching the headers of the separate ?les until a
match is found for the printer driver, the driver settings and
the media selected for the printer.
16. A computer program product for interfacing With a
user and optimiZing any one of a plurality of printers for
driver settings and color pro?le in order to optimally print an
image, said computer program product comprising: a com
puter readable storage medium having a computer program
stored thereon for performing the steps of:
3. The computer program product as claimed in claim 1
Wherein step (c) further comprises:
(c1) connecting With a network;
(c2) receiving ?le data over the netWork regarding the
(a) receiving image data corresponding to the image;
printers, printer drivers, printer media and color pro
Wherein step (c) further comprises:
(b) automatically, accessing an index ?le With preexisting
data corresponding to a plurality of printers, printer
drivers, printer media and color pro?les;
(c1) connecting With netWork;
(c) interfacing With the user to determine Which one of the
?les.
4. The computer program product as claimed in claim 1
(c2) updating the index ?le With data that is received over
the netWork regarding the printers, printer drivers,
printer media and color pro?les.
40
being used;
5. The computer program product as claimed in claim 1
Where the step (d) of determining Which one of the printer
drivers is to be used on the printer is initiated by a user 45
making a printer selection through a single user interface.
6. The computer program product as claimed in claim 1
Where the step (e) of identifying the printer media selected
data.
17. The computer program product as claimed in claim 16
by a user selection of a printer through a standard printer
dialog box.
intent.
9. The computer program product as claimed in claim 1
Wherein steps (h) and
(g)
are performed before steps
and
(f) automatically, adjusting the settings of the driver for
the selected printer media;
(g) automatically, choosing an appropriate color pro?le
(h) automatically, applying the color pro?le to the image
Where the step (d) of determining a printer driver is initiated
Wherein step (c) further includes receiving ?le data regard
ing rendering intent and Wherein the computer program
product further comprises the steps of:
(k) identifying the rendering intent selected for the
printer; and
(l) selecting the appropriate color pro?le for the rendering
(e) interfacing With the user to identify the printer media
selected for the printer;
from the index ?le for the printer driver, the driver
settings and the media selected for the printer; and
for the printer is initiated by a user making a printer media
selection through a single user interface.
7. The computer program product as claimed in claim 1
8. The computer program product as claimed in claim 1
printers is being used;
(d) determining from the index ?le Which printer driver is
further comprising the step
55
of initiating a printing opera
tion.
18. The computer program product as claimed in claim 16
Wherein steps (g) and (h) are performed before step
19. The computer program product as claimed in claim 16
Wherein steps (g) and (h) are performed in parallel With step
20. The computer program product as claimed in claim 16
Wherein the printer is queried for presence of the selected
printer media.
Download PDF