U.S. patent application number 10/494044 was filed with the patent office on 2005-03-24 for lowering the consumption of ink in computer printing.
This patent application is currently assigned to Strydent Software, Inc. Invention is credited to Bouby, Bruno, Harris, Anthony William, Kaplan, Peter, Lim, Jerry.
Application Number | 20050063749 10/494044 |
Document ID | / |
Family ID | 9926958 |
Filed Date | 2005-03-24 |
United States Patent
Application |
20050063749 |
Kind Code |
A1 |
Harris, Anthony William ; et
al. |
March 24, 2005 |
Lowering the consumption of ink in computer printing
Abstract
A method of printing an image comprises sending a data stream
representing the image to a printer driver, generating a stream of
print instructions at the printer driver, forwarding the stream of
print instructions to a printer, and printing the image in
accordance with the print instructions. The data stream or stream
of print instructions is intercepted and processed so that the
printer uses less ink to print the image than it would if the
processing was not performed.
Inventors: |
Harris, Anthony William;
(Donnington, GB) ; Kaplan, Peter; (Apex, NC)
; Bouby, Bruno; (Vancouver, CA) ; Lim, Jerry;
(Delta, CA) |
Correspondence
Address: |
ARENT FOX KINTNER PLOTKIN & KAHN
1050 CONNECTICUT AVENUE, N.W.
SUITE 400
WASHINGTON
DC
20036
US
|
Assignee: |
Strydent Software, Inc
SOFTWARE IMAGING LIMITED
|
Family ID: |
9926958 |
Appl. No.: |
10/494044 |
Filed: |
November 15, 2004 |
PCT Filed: |
October 9, 2002 |
PCT NO: |
PCT/GB02/04591 |
Current U.S.
Class: |
400/62 |
Current CPC
Class: |
G06K 2215/0074 20130101;
G06K 15/102 20130101; G06K 15/00 20130101 |
Class at
Publication: |
400/062 |
International
Class: |
G06K 003/00; B41J
005/30 |
Foreign Application Data
Date |
Code |
Application Number |
Dec 4, 2001 |
GB |
0128981.8 |
Claims
1. A method of printing an image, comprising: sending a data stream
representing the image to a printer driver; generating a stream of
print instructions at the printer driver; forwarding the stream of
print instructions to a printer; and printing the image in
accordance with the print instructions; wherein the data stream or
stream of print instructions is intercepted before it reaches the
printer driver or between the printer driver and the printer and
processed so that the printer uses less ink to print the image than
it would if the processing was not performed.
2. A method as claimed in claim 1, wherein the data stream is
intercepted and processed before it reaches the printer driver.
3. A method as claimed in claim 2, wherein the processing of the
data stream does not depend on the printer driver to which the data
stream is to be forwarded.
4. A method as claimed in claim 2, wherein the processing of the
data stream is performed using information about the printer driver
to which the data stream is to be forwarded.
5. A method as claimed in claim 2, wherein the processing of the
data stream is performed by a shell driver.
6. A method as claimed in claim 1, wherein the stream of print
instructions is intercepted and processed by an output filter
before it reaches the printer.
7. A method as claimed in claim 5 or 6, wherein the shell driver,
printer driver or output filter has settings which can be varied by
the user, the method further comprising varying these settings so
as to vary the amount of ink saved.
8. A method as claimed in claim 7, wherein the step of varying the
settings of the shell driver is performed by accessing the shell
driver, printer driver or output filter via the system tray.
9. A method as claimed in claim 1, wherein the reduction of the
amount of ink used by the printer is achieved by processing the
data stream or stream of print instructions so as to result in a
reduction of the number of dots printed by the printer.
10. A method as claimed in claim 9, wherein the data stream or
stream of print instructions is processed so that the dot reduction
is performed in such a way that the visible quality of the document
printed by the printer as perceived by a human viewer is not
reduced.
11. A method as claimed in claim 9, wherein dot reduction is
performed by removing dots at random.
12. A method as claimed in claim 1, wherein the step of processing
the data stream or stream of print instructions comprises modifying
black regions in the image to half-tone grey regions.
13. A method as claimed in claim 12, wherein the half-tone grey
regions have a grey level of about 60%.
14. A method as claimed in claim 12, wherein the level of
half-toning may be set by the user.
15. A method as claimed in claim 12, wherein the step of processing
the data stream or stream of print instructions includes modifying
pixels in filled objects within the image to half-tone grey, but
ensuring that pixels at the edge of filled objects remain highly
saturated.
16. A method as claimed in claim 12, wherein the step of processing
the data stream or stream of print instructions comprises: mapping
the pixels in the image from the work space of the data stream or
stream of print instructions to the Hue, Luminance and Saturation
(HLS) colour model; modifying the saturation or luminance of some
or all of the pixels; and mapping the pixels in the image back to
the work space of the data stream or stream of print
instructions.
17. A method as claimed in claim 16, comprising decreasing the
saturation of at least some of the pixels.
18. A method as claimed in claim 16, comprising increasing the
luminance of at least some of the pixels.
19. A method as claimed in claim 16, wherein the step of processing
the data stream or stream of print instructions comprises modifying
pixels so that the amount of black ink used to print those pixels
is increased at the expense of coloured ink.
20. A method as claimed in claim 16, wherein the step of processing
the data stream or stream of print instructions comprises:
identifying grey pixels in the image which will be printed using a
combination of coloured inks; and modifying these pixels so that
they will be printed using only black ink.
21. A method as claimed in claim 16, further comprising predicting
how much ink will be used by the printer and displaying this
information or the cost of the predicted ink.
22. A method as claimed in claim 21, further comprising keeping a
record of the predicted amount of ink used by the printer each time
a document is printed, and determining when the printer is likely
to run out of one or more colours of ink.
23. A method as claimed in claim 22, wherein the step of processing
the data stream or stream of print instructions comprises modifying
the colour balance of pixels so that the printer uses less of the
ink it is likely to run out of.
24. A method as claimed in claim 21, wherein the step of processing
the data stream or stream of print instructions includes modifying
the colour balance of pixels so that the printer uses different
colour inks at approximately the same rate.
25. A method as claimed in claim 23, wherein the step of modifying
the colour balance of pixels includes modifying the colour balance
towards the colour white.
26. A method of reducing the ink used by a printer to print an
image, the method comprising: intercepting a data stream,
representing the image, sent to a printer driver for printing;
processing the data stream so as to produce a modified data stream
still representing the image; forwarding the processed data stream
to the printer driver; generating a stream of print instructions;
forwarding the stream of print instructions to the printer; and
printing the image in accordance with the print instructions;
wherein the step of processing the data stream results in a
reduction of the amount of ink used by the printer as compared to
the amount which would be used by the printer if the processing was
not performed.
27. A method of reducing the ink used by a printer to print an
image, the method comprising: intercepting a stream of print
instructions, representing the image, sent from a printer driver to
a printer; processing the stream of print instructions so as to
produce a modified stream of print instructions still representing
the image; and printing the image in accordance with the modified
print instructions; wherein the step of processing the stream of
print instructions results in a reduction of the amount of ink used
by the printer as compared to the amount which would be used by the
printer if the processing was not performed.
28. A computer storage medium having stored thereon a program
arranged to cause a computer to perform a method as claimed in
claim 27.
29. A system for printing documents from an application,
comprising: a printer driver arranged to receive a data stream
corresponding to a document to be printed and forward a stream of
print instructions to a printer to print said document in response
to the data stream; and a shell driver arranged either to intercept
a data stream intended for the printer driver, process the data
stream and pass the processed data stream to the printer driver, or
to intercept a stream of print instructions intended for the
printer, process the print instructions and pass the processed
print instructions to the printer; wherein the shell driver is
arranged to process the data stream or print instructions in such a
way that the printer uses less ink than it would if the data stream
or print instructions was not processed.
30. A system as claimed in claim 29, wherein the shell driver is
arranged to process the data stream or print instructions in such a
way that the reduction in ink used by the printer is caused by a
reduction in the number of dots printed by the printer.
31. A system as claimed in claim 29, wherein the shell driver is
arranged to process the data stream or print instructions in such a
way that the visible quality of the printed document as perceived
by a human viewer is not reduced.
32. A system as claimed in claim 29, wherein the shell driver has
settings which can be varied by a user so as to vary the degree of
reduction of ink used by the printer.
33. A system as claimed in claim 32, wherein the settings of the
shell driver are accessible to the user via the system tray.
34. A system as claimed in claim 29, wherein the operation of the
shell driver is invisible to the user of the system during
printing.
35. A method of reducing the ink used when printing an image from
an application on a computer, the computer having installed thereon
a printer driver for processing a data stream corresponding to the
image and issuing print instructions to a printer, the method
comprising: installing a shell driver onto the computer, the shell
driver being arranged to intercept a data stream intended for the
printer driver and process said data stream so as to reduce the
amount of ink used by the printer.
36. A method of reducing the ink used when printing an image from
an application on a computer, the computer having installed thereon
a printer driver for processing a data stream corresponding to the
image and issuing print instructions to a printer, the method
comprising: installing a shell driver onto the computer, the shell
driver being arranged to intercept print instructions intended for
the printer and process said print instructions so as to reduce the
amount of ink used by the printer.
37. A method as claimed in claim 36, wherein the step of installing
the shell driver includes causing an icon to be displayed in the
system tray so that the user can select the icon to vary settings
of the shell driver including the ink usage
38. A method of controlling the amount of ink used by a printer
attached to a computer, the method comprising: providing an ink
reduction driver arranged to process data streams corresponding to
documents to be printed by the printer, to thereby change the
amount of ink used by the printer in printing the documents;
providing a driver control icon in the operating system window
system tray of the computer; linking the driver control icon to the
ink reduction driver; allowing a user to select the driver control
icon to cause a driver control panel to be displayed such that the
user can then vary the settings of the ink reduction driver.
39. A method as claimed in claim 38, wherein the driver control
panel contains an ink use selector for allowing the user to select
one of a multiplicity of ink use settings.
40. A method as claimed in claim 39, wherein the ink use selector
includes a sliding scale or button bar.
41. A method of reducing the amount of ink used by a printer
attached to a computer to print an image, the computer having
installed thereon a printer driver for converting a data stream
representing the image into a stream of print instructions, the
method comprising: installing an ink reduction driver for modifying
the printer driver so that it uses less ink to print the image than
it would if the ink reduction driver was not installed.
Description
[0001] The present invention relates to the reduction of ink
printed on a page used by a printer.
[0002] As used herein, the term "ink" is intended to refer both to
ink as used by ink jet printers, and to toner as used by laser
printers. Thus the term "ink cartridge" as used herein may refers
either to a replacement ink cartridge for an ink jet printer or a
replacement toner cartridge for a laser printer.
[0003] A significant cost associated with owning a printer is that
of replacing used ink cartridges. Indeed, as the price of printers
decreases, but the price of ink cartridges does not, the cost of
replacement cartridges can be comparable to the price of the
original printer. Thus a user may be persuaded to buy a printer
because it is cheap, but is then committed to frequent purchases of
expensive ink cartridges.
[0004] Clearly one of the most effective ways to reduce the costs
associated with buying replacement ink cartridges is to use less
ink in the first place, so that cartridges last longer. The
software drivers which are provided with printers and installed on
the controlling computer generally offer a user the option of
printing in "draft", "economy", or "high quality" mode, where draft
and economy modes use less ink than high quality mode. However,
draft mode typically yields such poor print quality that documents
printed using this mode cannot be used for anything except
proofing. Economy mode yields better output than draft mode, but
typically still does not reach the quality required for most
documents intended for circulation. In fact, the use of draft or
economy modes frequently leads to the use of even more ink as the
same document is printed twice, once in the low quality mode and
then again in high quality mode.
[0005] Companies selling printers derive a significant proportion
of their revenues from sales of consumables, and in particular ink
and toner cartridges. As mentioned above, the printers themselves
are often very cheap, but users are then committed to regular
purchases of expensive ink cartridges. It is therefore not in the
manufacturers' interest to minimise the amount of ink used, and
settings such as "draft", "economy" etc. often do not do what the
user expects in terms of ink utilisation. In practice, draft mode
reduces ink usage by printing as few dots as possible to increase
the printing speed. Economy settings typically apply a general
masking function across the whole image to reduce the number of
dots printed, but this compromises the quality of the output.
[0006] In accordance with a first aspect of the present invention,
there is provided a method of printing an image, comprising:
[0007] sending a data stream representing the image to a printer
driver;
[0008] generating a stream of print instructions at the printer
driver;
[0009] forwarding the stream of print instructions to a printer;
and
[0010] printing the image in accordance with the print
instructions;
[0011] wherein the data stream or stream of print instructions is
intercepted and processed so that the printer uses less ink to
print the image than it would if the processing was not
performed.
[0012] Thus the amount of ink used by the printer is reduced by a
process separate from the printer driver's usual "draft", "economy"
and "high quality" options. These options will still be available
to the user, but a document printed using any of these options in a
method according to the invention will consume less ink than if the
data stream or print instructions had not been processed.
[0013] Ink jet and laser printers operate by printing a series of
dots on the page to produce individual shapes. The document or
image to be printed consists of a series of pixels which are fed to
a software printer driver. The pixels are larger than the dots
printed by the printer, and each pixel is made up of a series of
dots when the document is printed. A colour printer will in general
have three or more differently coloured inks available, the colour
of each pixel being determined by the selection of dots used to
print it. Furthermore, areas of the image having a uniform colour
can use a selection of different coloured dots. For example, a
magenta region would be printed on white paper by using a large
number of magenta dots, whereas a lighter-coloured pink region
would be printed by using a smaller number of the same magenta
dots, leaving white spaces between. An orange region would be
printed by using a mixture of magenta and yellow dots. This process
is known as "half-toning"
[0014] To produce high resolution images or letters, a large number
of pixels are used. If a lower resolution is used, there are fewer
pixels, but each pixel is larger. In a typical "draft" mode, only a
few pixels are printed (i.e. the pixels are printed at low
resolution), but each pixel is small (i.e. the individual pixels
are the same as those used at high resolution). In other words,
many of the pixels are left out completely. The images or text
consequently appear very "dull" on the page, with large amounts of
white space.
[0015] Thus if the user wishes to use less ink, in the prior art
system he would need to change the settings of the printer driver
of the printer with which he intended to print the document. By
changing these settings, for example by setting the printer driver
so that the printer uses "draft" mode, the printer can be made to
print fewer pixels.
[0016] In a preferred embodiment of the invention the reduction of
the amount of ink used by the printer is achieved by processing the
data stream or print instructions so as to result in a reduction of
the number of dots printed by the printer. Ideally, the data stream
or stream of print instructions is processed so that the dot
reduction is performed in such a way that the visible quality of
the document printed by the printer as perceived by a human viewer
is not reduced. In one embodiment, dots are removed at random.
[0017] Preferably the step of processing the data stream or stream
of print instructions comprises modifying black regions in the
image to half-tone grey regions. This is preferably achieved by
removing dots at random. It has been discovered that if a document
comprising black objects such as text is printed at about 60% grey
level, the human eye will not detect the difference between this
and the same document printed using fully black pixels. Preferably
the level of half-toning can be set by the user.
[0018] It has also been discovered that if the edges of filled
objects such as text are sharply defined, the interior of such
objects can be printed at a lighter shade without compromising the
perceived quality of the document. Therefore in a preferred
embodiment the step of processing the data stream or stream of
print instructions includes modifying pixels in filled objects
within the image to half-tone grey, but ensuring that pixels at the
edge of filled objects remain highly saturated.
[0019] In order to reduce the use of coloured inks in a controlled
manner, the step of processing the data stream or stream of print
instructions preferably comprises mapping the pixels in the image
from the work space of the data stream or stream of print
instructions to the Hue, Luminance and Saturation (HLS) colour
model, modifying the saturation or luminance of some or all of the
pixels, and mapping the pixels in the image back to the work space
of the data stream or stream of print instructions. In one
embodiment, only the pixels which have had their saturation or
luminance modified will be mapped back to the work space of the
data stream or stream of print instructions. For the unchanged
pixels, the pixels already specified in the original workspace of
the data stream or stream of print instructions may be used. The
step of modifying the saturation or luminance of a pixel may
include replacing that pixel with a pixel having pre-stored HLS
values.
[0020] Modifying saturation and luminance may include decreasing
the saturation of at least some of the pixels, increasing the
luminance of at least some of the pixels, or both.
[0021] Black ink is generally cheaper than coloured ink, but many
printers print grey pixels by using a combination of their coloured
inks. Preferably, therefore, the step of processing the data stream
or stream of print instructions comprises modifying pixels so that
the amount of black ink used to print those pixels is increased at
the expense of coloured ink.
[0022] The step of processing the data stream or stream of print
instructions may comprises identifying grey pixels in the image
which will be printed using a combination of coloured inks, and
modifying these pixels so that they will be printed using only
black ink.
[0023] In one embodiment, the data stream is intercepted and
processed before it reaches the printer driver. Preferably, the
processing of the data stream does not depend on the printer driver
to which the data stream is to be forwarded. In other words, the
method operates independently of the printer and printer driver
used. However, the processing of the data stream could be tailored
to a particular printer, in which case the processing of the data
stream is performed using information about the printer driver to
which the data stream is to be forwarded. The processing of the
data stream may be performed by a shell driver.
[0024] Thus the amount of ink used can thus be reduced whatever
printer or printer driver is used. The shell driver reduces the
amount of ink to be used without significantly affecting the print
quality. Because the data stream is intercepted before it reaches
the printer driver the invention has no effect on the way the
printer driver operates: in other words, the printer can still be
set for "draft", "normal" and "high quality" modes. The shell
driver may reduce the amount if ink used by any of these modes by
intelligent removal of dots.
[0025] In another embodiment, the stream of print instructions is
intercepted and processed by an output filter after it has left the
printer driver, but before it reaches the printer. Alternatively,
the interception and processing of the data stream or print
instructions may take place in the printer driver in a separate
process from the generation of the stream of print
instructions.
[0026] The shell driver or printer driver or output filter may have
settings which can be varied so as to vary the degree of reduction
of ink used by the printer. In other words, the amount of ink
reduction can be set by the user. Preferably, once these settings
have been determined by the user, the ink reduction will continue
to apply every tine a document is printed and will be "invisible"
to the user. The settings of the shell driver, printer driver or
output filter may therefore conveniently be controllable by the
user at a system level, and more preferably by clicking on an icon
in a Windows system tray.
[0027] Another useful function which can be performed by the shell
driver is to predict how much ink will be used by the printer and
inform the user accordingly. If the price of ink cartridges is
known, the cost of the ink used by the printer to print a
particular page could also be calculated. This allows the user to
make an informed decision about whether he wishes to proceed with a
particular print job in view of the predicted cost.
[0028] Many ink jet printers use three or more different colours of
ink. The ink is often provided in sets of cartridges which cannot
be replaced individually. Therefore, when one of the colours runs
out, all of the cartridges have to be replaced. This leads to
unnecessary waste with two of the cartridges being thrown away
before they are finished. It also increases the cost to the user as
he still pays for the unused ink.
[0029] In order to help the user at least partially overcome this
problem, the shell driver, printer driver or output filter may also
be arranged to keep a record of the predicted amount of ink used by
the printer each time a document is printed, and to determine when
the printer is likely to run out of one or more colours of ink. If
the user is running out of one colour appreciably faster than the
others, this gives him an opportunity to print documents using less
of that colour to prolong the life of the cartridge. The step of
processing the data stream or print instructions may also include
modifying the colour balance of pixels so that the printer
automatically uses less of the ink it is likely to run out of. The
processing may also or alternatively include modifying the colour
balance of pixels so that the printer uses different colour inks at
approximately the same rate.
[0030] In accordance with a second aspect of the invention there is
provided a method of reducing the ink used by a printer to print an
image, the method comprising:
[0031] intercepting a data stream, representing the image, sent to
a printer driver for printing;
[0032] processing the data stream so as to produce a modified data
stream still representing the image;
[0033] forwarding the processed data stream to the printer
driver;
[0034] generating a stream of print instructions;
[0035] forwarding the stream of print instructions to the printer;
and
[0036] printing the image in accordance with the print
instructions;
[0037] wherein the step of processing the data stream results in a
reduction of the amount of ink used by the printer as compared to
the amount which would be used by the printer if the processing was
not performed.
[0038] In accordance with a third aspect of the present invention
there is provided a method of reducing the ink used by a printer to
print an image, the method comprising:
[0039] intercepting a stream of print instructions, representing
the image, sent from a printer driver to a printer;
[0040] processing the stream of print instructions so as to produce
a modified stream of print instructions still representing the
image; and
[0041] printing the image in accordance with the modified print
instructions;
[0042] wherein the step of processing the stream of print
instructions results in a reduction of the amount of ink used by
the printer as compared to the amount which would be used by the
printer if the processing was not performed.
[0043] The invention also provides a computer storage medium having
stored thereon a program arranged to cause a computer to perform a
method as described above.
[0044] In accordance with a fourth aspect of the present invention
there is provided a system for printing documents from an
application, comprising:
[0045] a printer driver arranged to receive a data stream
corresponding to a document to be printed and forward instructions
to a printer to print said document in response to the data stream;
and
[0046] a shell driver arranged either to intercept a data stream
intended for the printer driver, process the data stream and pass
the processed data stream to the printer driver, or to intercept a
stream of print instructions intended for the printer, process the
print instructions and pass the processed print instructions to the
printer;
[0047] wherein the shell driver is arranged to process the data
stream or print instructions in such a way that the printer uses
less ink than it would if the data stream or print instructions was
not processed.
[0048] Other aspects of the invention include installing an ink
reduction driver on a computer, and causing a driver icon to be
displayed in a system tray to enable settings of the ink reduction
driver to be varied by the user.
[0049] Some preferred embodiments of the invention will now be
described by way of example only and with reference to the
accompanying drawings, in which:
[0050] FIG. 1 is a schematic diagram of a standard system for
printing documents from an application on a computer;
[0051] FIG. 2 is a schematic diagram of a system for printing
documents including a shell driver providing ink reduction;
[0052] FIG. 3 is a schematic diagram of a system for printing
documents including an output filter providing ink reduction;
[0053] FIG. 4 is a schematic diagram of a system for printing
documents including printer output filters;
[0054] FIG. 5 shows a series of pixels with varying levels of
half-tone grey;
[0055] FIG. 6 shows text printed with varying levels of half-tone
grey;
[0056] FIG. 7 is a data flow diagram for an ink reduction
algorithm;
[0057] FIG. 8 is a diagram representing the encoding of colour in
the HLS model; and
[0058] FIG. 9 shows a view of a windows desktop and control panel
for controlling the settings of the shell driver of FIG. 2.
[0059] FIG. 1 shows a schematic diagram of a system for printing
documents from applications 1, 2, 3 on a computer 4. The
applications could be for example a word processor 1, an internet
browser 2 and a drawing package 3. The applications run on top of
an operating system 5. In this example the computer 4 is connected
to two printers 6, 7. This might be the case, for example, if the
computer is connected to a network (not shown) which includes more
than one printer. It may also be that one of the printers 6 is a
printer which can only be used to print black and white documents,
and the other printer 7 is a colour ink jet printer which can be
used to print documents which include colour.
[0060] Each printer 6, 7 has associated with it a printer driver 8,
9 installed on the computer 4 so as to run from the operating
system 5. When a user wishes to print a document from an
application, a printer is selected and a data stream, corresponding
to the document to be printed, is sent from the application, via
the operating system 5, to the printer driver corresponding to the
selected printer. For example, if a document is to be printed from
the word processor 1 by the black and white printer 6, a data
stream is sent from the word processor 1 to the printer's driver 8.
The printer driver 8 processes the data stream and converts it into
instructions which will be understood by the printer 6. These
instructions are forwarded, via an output port 10, such as a USB
port or parallel port, to the printer 6. The printer 6 then prints
the document.
[0061] Similarly, if a user wishes to print a colour picture from
the drawing package 3, the colour ink jet printer 7 will be
selected, and a data stream sent from the drawing package 3, via
the operating system 5, to the colour printer driver 9, which
processes the data stream and sends instructions, via an output
port 11, to the colour printer 9. It will be appreciated that
either printer 6, 7 can be used to print documents from any of the
applications 1, 2, 3.
[0062] Each image to be printed consists of an array of pixels,
each having Red, Green & Blue intensity values, which are fed
to a software printer driver. The printer driver introduces a
process known as half toning, whereby, for each colour (Red, Green
or Blue), a pixel is represented by an array of same intensity
dots. The number and arrangement of dots is determined by the
intensity of that colour. The half tone data is passed to the
printer for printing using the available inks.
[0063] Some printers and printer drivers use different colour work
spaces for half toning. For example, systems using Cyan, Magenta
and Yellow (CMY) are also frequently used, as are systems using
Cyan, Magenta, Yellow and Black (CMYK), and systems using Cyan,
Magenta, Yellow, Black, Light Cyan and Light Magenta (CMYKcm). The
half toning for such systems works in the same way as for printers
using Red, Green and Blue (RGB). It will be appreciated that if a
data stream in RGB form is sent to the printer driver 9 of a
printer 6 which has Cyan, Magenta, Yellow and Black inks, the
printer driver will need to convert the data from RGB work space to
CMYK work space before the half toning takes place.
[0064] FIG. 2 shows the system of FIG. 1 to which has been added a
shell driver 12. The shell driver is installed onto the computer 4
between the operating system 5 and the printer drivers 8, 9. The
shell driver 10 is arranged so that it intercepts a data stream
passed from the operating system 5 to any of the printer drivers 8,
9. When a data stream has been intercepted it is processed so that
each region of the image to be printed will contain fewer dots when
it has been half toned by the printer driver. The processed data
stream is then passed to the printer driver already selected by the
user.
[0065] FIG. 3 shows the system of FIG. 1 which has been modified
according to an alternative embodiment of the invention. An output
filter 13 is installed onto the computer and arranged so that it
intercepts the printer instructions output by either of the printer
drivers 8, 9 towards their corresponding printer 6, 7. The output
filter 13 modifies these printer instructions so that each pixel of
the image contains fewer dots. Since the half toning has already
been performed by the printer driver, the printer instructions can
be modified directly to remove dots. The modified printer
instructions are then output towards the output port 10, 11 already
selected by the printer driver so that they proceed to the printer
6, 7 selected by the user.
[0066] FIG. 4 shows the system of FIG. 1 which has been modified by
a yet further embodiment of the invention. Printer output filters
14, 15 are installed on the computer 4, each associated with an
individual printer driver 8, 9, so as to intercept data between
their associated printer driver 8, 9 and output port 10, 11. These
operate in the same way as the output filter 13, by reducing the
number of dots in each region of the image represented by the data
stream issuing from their associated printer driver 8, 9. However,
since each printer output filter 14, 15 is unique to a particular
printer it is possible to tailor the dot reduction more precisely
to the printer 6, 7 being used.
[0067] In another embodiment (not shown), no extra driver or filter
is installed. However, the printer drivers 8, 9 are replaced with
more sophisticated printer drivers which reduce the amount of ink
used by the printers 6, 7 by reducing the number of dots
printed.
[0068] The process of reducing the dots printed depends on the form
of the printed document, and the process used for reduction of
black ink is usually different to the process used for the
reduction of coloured inks. The object is to reduce the amount of
ink used without the user noticing a decrease in quality of the
printed document. It will be appreciated that there may be a
difference between the perceived quality--i.e. the quality as
"seen" by a human reader, and a quantitatively measured
quality.
[0069] The most common use of black ink is in text, vectors, and
black fills in graphics and imagery. In many cases it is possible
to reduce the amount of black ink used by substituting black for a
grey colour. For a monotone printer the grey level is accomplished
by half-toning. The printer simulates the grey level by printing a
pattern of very small dots within a larger rectangle on the page,
as shown in FIG. 5. Each rectangle represents a "half-tone cell".
Each dot represents a spot of ink or laser printer toner. The
number of dots that can be printed within the half-tone cell
determines the number of grey values that can be simulated. The
number of halftone cells determines the resolution of the image.
This may also apply to colours other than black.
[0070] FIG. 6 shows a series of lines of text printed with
percentages of black ink decreasing in steps of 10%, and
illustrates that the average user will not perceive any noticeable
degradation in the print quality unless it is lower than 60% grey
value. Thus if "black" text (e.g. from a word processor) is printed
at 60% grey value the ink saving will be 40%, but the user will not
notice the difference. However, it may be that different users have
different thresholds, and accordingly the user is able to select
the amount of grey value at the expense of the perceived image
quality. Different brand and model of printer may require different
grey value settings.
[0071] In the example shown in FIG. 6, the dots removed to provide
a particular grey value are the same for each half-tone cell. In
another embodiment, dots are removed randomly from the half-tone
cell. In other words, the same number of dots are removed from each
half-tone cell, but from random positions within the half-tone
cell. It has been found that this also improves the perceived
quality of the final result.
[0072] The perceived quality can be improved still further by
considering the edges of objects such as text fonts, black lines,
or black filled objects such as rectangles, circles, ovals and
closed polygon areas. A critical factor in the perceived
"sharpness" of such objects is the density of dots around the edge
of each letter. Therefore the shape of the object is outlined with
a solid black, and the interior of the object is filled with the
user selected grey level. This preserves the edge definition of the
objects and maintains the high frequency spatial component of the
image. The human eye is extremely sensitive to the edges of an
image, since they carry high information content. The grey filled
portion of the objects is the low frequency component of the image.
The effect of half-toning the grey fill is essentially to insert
noise to the low frequency component of the image. The human
perception filters out the noise component since noise has a low
information content. The amount of noise can be adjusted by the
user when he selects the amount of grey level.
[0073] All of the above methods will work for documents printed
using coloured inks. Using these methods, the dot removal would
consist of reducing all of the coloured ink components (e.g. CYMK)
for a given spatial position. The amount of ink removal can be
adjusted by the user so that the resultant lightness in colour
would not be obvious to the reader.
[0074] FIG. 7 is a data flow diagram for a colour ink reduction
algorithm. The colour of a graphic or text object is input to the
algorithm. The output of the algorithm is a modified colour, in the
same work space (e.g. RGB, CMYK, CMYKcm etc) as the input colour,
which uses less ink but which provides a colour close in perception
to the original.
[0075] The algorithm has two external settings: User setting and
Printer Model Type. The User setting allows the user to input the
amount of ink saving versus the image quality of the print out. The
Printer Model Type allows the selection of policies to be tailored
to the individual printer models.
[0076] Different colour models can specify the colour of the
graphic or text object. Examples of colour models include: RGB
(Red, Green, Blue), CMY (Cyan, Magenta, Yellow), YIQ (Luminance,
In-phase (Red-luminance), Quadrature (Blue-luminance)), HSV (Hue,
Saturation, Value (Brightness)), and HLS (Hue, Luminance and
Saturation). The Colour Ink Reduction algorithm will accept any
colour specified in any colour model space and output the modified
colour in that same colour model space.
[0077] The algorithm and algorithm policies are based on the HLS
colour model. FIG. 8 shows how a colour is encoded using the HLS
model. Hue is the "colour" of a pixel (red, yellow, green etc) and
is represented as the angle around the vertical axis 21 of a double
hexacone 20, with red at 0.degree.. The colours occur around the
perimeter in the same order they occur in the CIE diagram when its
boundary is traversed anticlockwise: red, yellow, green, cyan,
blue, and magenta. The CIE (Commission Internationale de
l'Eclairage) XYZ model is a model defining three primary colours
mingled in an additive manner called X, Y, Z that can be combined
to match any colour humans see. This relates to the tristimulus
theory of colour perception, which states that the human retina has
three kinds of cones with peak sensitivity to 580 nm ("red"), 545
nm ("green") and 440 nm ("blue").
[0078] Luminance provides a measure of "lightness" and is
represented by the vertical axis 21 of FIG. 8. The bottom 22 of the
vertical axis represents 0% luminance (black) and the top 23 of the
vertical axis represents 100% luminance (white). Saturation is a
measure of the colour "intensity" and is represented by the radial
distance from the vertical axis 21, from 0% on the vertical axis to
100% on the surface of the hexacone.
[0079] Returning now to FIG. 7, the transformation 24 to the HLS
model maps the colour specified in the Work Space Colour Model to
the HLS Colour model. Based on the Hue, Saturation, and Luminance
value of the input colour, the Select Policy block 25 then selects
one of five policies. The policy selection will depend on the
printer to be used. The selection of policies is defined once the
printer has been characterised. Printer characterisation requires
the printing of a large number of different colour samples (e.g.
MacBeth Charts (standard images used to show the full gamut of
visible image space reproduction for a device and a set of standard
colours showing, among others, desaturated primaries and various
skin tones)) and measuring the amount of ink usage for each colour
sample.
[0080] The general policy heuristics are summarised below:
[0081] The least objectionable mappings are those that preserve hue
at the expense of luminance and saturation.
[0082] For very small areas, hue can be changed slightly without
noticeable colour perception
[0083] Reducing the saturation decreases the amount of ink
usage
[0084] Increasing the luminance decreases the amount of ink usage
and equalizes the usage of the three colour components (e.g.
CYM).
[0085] The algorithm policy details are specified below:
[0086] Policy 1: Increase luminance by X1 and decrease saturation
by Y1. After increasing the luminance by the amount of X1, and the
total luminance is greater than 100%, then the luminance is clamped
to 100%. After decreasing the saturation by the amount of Y1, and
the total saturation is less than 0%, then the saturation is
clamped to 0%. The user input specifies the amount of X1 and Y1
depending on the amount of ink saving versus print quality.
[0087] Policy 2: Increase luminance by X2. After increasing the
luminance by the amount of X2, and the total luminance is greater
than 100%, then the luminance is clamped to 100%. The user input
specifies the amount of X2 depending on the amount of ink saving
versus print quality.
[0088] Policy 3: Decrease saturation by Y2. After decreasing the
saturation by the amount of Y2, and the total saturation is less
than 0%, then the saturation is clamped to 0%. The user input
specifies the amount of Y1 depending on the amount of ink saving
versus print quality.
[0089] Policy 4: Use the original HLS value. This policy is chosen
when there is no cost effective HLS value in the neighbourhood of
the original HLS value. In other words, there is no change possible
which is close in colour proximity and which consumes less ink. An
example might be the colour white, which cannot be changed.
[0090] Policy 5: Use a prestored HLS value. This policy is chosen
when there is no cost effective HLS value in the neighbourhood of
the original HLS value.
[0091] Policy usage will depend on printer type. For printers that
have a single colour cartridge dispensing CYM inks, policy 1 would
be used to ensure that the colour from each reservoir is used at
the same rate or as close to this as possible. For printers having
individual colour cartridges for each colour, where it does not
matter whether the colours are consumed at the same rate or not,
policy 3 would be widely used.
[0092] The transformation 26 to work space colour model then maps
the modified colour in HLS colour model back to the original work
space colour model. It will be appreciated that only those pixels
whose colours have been changed need be mapped back: the algorithm
can remember the values of the unchanged pixels in the original
work space. Alternatively all the pixels could be mapped from HLS
back to the work space regardless of whether they have been altered
or not.
[0093] Thus the number of dots printed can be reduced by increasing
the luminance or decreasing the saturation of a pixel, without
reducing the perceived quality.
[0094] A further improvement makes use of the fact that for colour
inkjet printers, black or grey level is usually accomplished by
using a combination of Cyan, Yellow, Magenta and Black (CMYK). This
is not optimal in cost. Instead of using pure black ink and
half-toning to achieve grey, the colour inkjet printers add Cyan,
Magenta, and sometimes Yellow to achieve black or grey. However,
these inks are more expensive than black so it is desirable to
half-tone black or grey fill areas with black ink only.
[0095] Returning now to FIGS. 2, 3 and 4, once installation of the
shell driver 12, output filter 13 or printer output filters 14, 15
has been completed, the user will continue to select printers and
printer settings as before. He can still change the settings of the
individual printer drivers 7, 8, but each setting will use less ink
than without the interception of the shell driver, output filter,
or printer output filter. This is particularly important for the
"high quality" mode of printing. From the user's point of view,
documents appear to be printed to the same standard, but less ink
is used.
[0096] The shell driver 12, output filter 13 or printer output
filters 14, 15 can be controlled by the user at a "system" level to
vary the amount of ink reduction performed. The ink reduction can
be turned on or off or varied simply (for example by changing the
grey value used with reference to FIG. 6), and this will apply to
all printers and printer drivers. Similarly any change to the level
of ink reduction will apply to all printers and printer drivers.
Control of the shell, output or printer output filter may be
initiated by selection of a "system tray" icon, allowing the amount
of ink reduction to be controlled from a Windows control panel.
[0097] FIG. 9 shows an example of a Windows desktop 31. The desktop
includes icons 32 which can be selected to run applications. The
desktop also includes a system tray 33 containing icons 34 which
can be selected in order to change the settings of drivers
installed on the system. As shown in FIG. 9, an icon 35
corresponding to the ink reduction shell driver described above has
been selected. This causes a control panel 36 to pop up. The
control panel 36 includes buttons 38 to allow the shell driver to
be switched on or off, so that the user has control over whether
ink use is reduced when printing or not. The control panel also
includes a sliding scale 37 which allows the user to control how
much ink reduction is carried out by the shell driver.
[0098] The shell driver (or output filter, or printer output
filter) may also predict the quantity of ink which will be used by
a printer to print a document. Depending on the settings specified
by the user, it can inform the user of how much ink will be used in
printing that document (and how much it will cost) and offer the
user the chance to cancel the print. It can also predict how much
ink would have been used had dot reduction not been performed, and
inform the user how much money has been saved by using less ink.
This assumes a knowledge of ink cost and a detailed knowledge of
printer properties.
[0099] A record of the predicted ink usage for each document
printed may be kept by the shell driver. This enables it to inform
the user when ink is likely to be running low. Furthermore, when a
colour printer is used, the shell driver keeps separate records for
the use of the different colours of ink. If one colour is being
used substantially faster than the others, then the user is warned
of this, allowing him to attempt to use less of that colour. For
example, if the record of the ink used shows that red ink is
running low, the driver suggests to the user that he tries to use
less red in his documents. In a further embodiment, "ink balancing"
may be carried out. In this case, the driver itself adjusts the
amount of ink used by the printer so as to use less red.
[0100] It will be appreciated that departures from the above
described embodiments will still fall within the scope of the
invention. For example, the shell driver may be adapted to suit one
particular type of printer or printer driver. It will still act
independently of the printer driver, but the dot reduction will be
tailored more specifically to that printer.
[0101] Furthermore, it will be appreciated that the interception of
data before it reaches a printer driver need not be performed by a
shell driver as such. Any driver or filter which processes the data
before it reaches the printer driver is intended to fall within the
scope of the invention.
* * * * *