[Openicc] Print-colormanagement, application->CUPS->gutenprint
Hal V Engel
hvengel at astound.net
Wed Apr 20 00:49:38 EST 2005
On Monday 18 April 2005 06:12 pm, Michael Sweet wrote:
> Hal V Engel wrote:
> > ...
> > This is exactly the point that I was trying to get across. This is not
> > about users that don't have exacting color output requirements. I am
> > sure that most of those users are perfectly happy with how this works
> > now.
>
> The currently available open source drivers are capable of excellent
> quality, but configuring the drivers for optimal quality is something
> that many users just aren't up to. On the ease-of-use scale, the HP
> IJS drivers are among the easiest and the most limited from a color
> management standpoint, and Gimp-print/Gutenprint is by far the most
> difficult to use and very advanced from a color management standpoint.
Again from my point of view Gimp-print/Gutenprint does not have color
management. Sorry but that is the way I see it. Gimp-print/Gutenprint does
have good color output with standard ink sets but is totally off base and
requires extensive tweaks and manually applied custom profiles to get close
with 3rd party inks such as archival inks from MediaStreet.
I think some of us are confusing getting fairly good colors on printed output
with color management. Color management is an end to end process and it is
about how consistant the colors are all the way through that end to end
process. Printing is just one of the possible last steps in the process.
This is something that is very difficult for those who have not worked in a
ICC based work flow to visualize and understand.
For me it starts in the field when I am shooting photos and ends when the
output comes off the printer. It is part of every step in the work flow in
between. When the image comes out of the printer I want and expect it to
look almost exactly like the scene in my view finder did when I tripped the
shutter. ICC is a necessary thread that runs through and connects everything
in the work flow that gives me at least a fighting chance that that will
actually happen. I have now gotten to the point were it happens for me most
of the time. Gimp-print/Gutenprint does not support that thread at this
time. So to say it has it has color management is erroneous.
I don't want the above to be taken in the wrong way as there are many that
don't understand what color management means. One major example is Microsoft
which claims that Windows supports color management. They even have places
where the user can install ICC profiles for the display and printers. But if
you try to work with this stuff you find out that it simply does not work the
way it should. In most cases users figure this out only after working very
hard trying to make it work. Many give up out of frustration having never
gotten it to work thinking that this color management stuff is BS.
Eventually some users figure out that what Microsoft is calling CM is really
a bunch of junk that was thrown together in a hurry by someone in Redmond who
had no idea what he was doing and that to do CM on Windows you must do
everything manually. For Windows users there are a few applications that
are CM aware and that allow the user to do what is needed to implement a
manual work flow (Photoshop, Vuescan, Silverfast AI). There are now rumors
that they are doing a major rewrite of the CM systems for Longhorn. Could
this be because they messed up bad the first time?
>
> > We are
> >
> > talking about the needs of those users that have very exacting color
> > management requirements. Photographers, artists and graphics
> > professionals not Joe user who is printing an Open Office document.
> > These are two totally different sets of users with totally different
> > requirements.
>
> Certainly a user that only prints text documents from OpenOffice has
> lower expectations and requirements than a professional, but *all*
> users want color management that works whether they are printing
> line graphs or pictures from their digital camera.
>
> The difference is that the professional typically knows what ICC is,
> owns hardware and software to general color profiles, and wants to
> use them in their workflow. Joe user doesn't care how it gets done
> and wants things to work out of the box.
>
> Since ICC can provide a solution for both kinds of users, and we
> want to support both Joe user and Jane professional, then we
> should address both users with the same core technology!
>
I agree that using ICC based CM is the best approach for both types of users.
I only said that the needs of advanced users were significantly different
from other users. I am concerned that we will end up with a Windows like
solution where there is a general purpose profile that is installed in the
"driver" (in the CUPS ppd file in our case which hopefully will work
correctly unlike Windows) and if you want really good output you have to
resort to manual printing work flows to buy pass the "driver" CM. There are
a number of problems with this approach.
1. It makes it very difficult if not impossible for an expert to configure the
system to do it's absolute best for non-experts.
2. It makes expert users who would most benefit from being able to setup a
fully automated CM work flow use a manual work flows which:
A. Greatly increases the difficultly of doing CM on an ongoing basis.
B. Increases the probability that the user will make mistakes while working
through the work flow.
C. Significantly increases the amount of effort needed to setup a working CM
work flow.
D. Require more training for other users that will need to use the advanced
workflow to get the results they want/need. There are users that may never
understand how to use the advanced work flow.
3. It makes CM less accessable to intermediate users who likely would find a
manual process too burdensome but who would derive significant benefits from
using a full blown CM if it were more accessable.
> > ...
> >
> > A symlink from where and to what?
>
> Again, beyond the scope of CUPS, however the CUPS profile directory
> is /usr/share/cups/profiles. I envision a symlink from ~/.profiles
> (which contains all of a user's profiles) to
> /usr/share/cups/profiles/username.
>
> > How do I specify that for printer W
> >
> > (meaning a specific physical printer), at resolution X, on paper Y, with
> > dithering algorithm Z, ink set A.... that this is the correct profile and
> > rendering intent to use with a symlink? I must have that level of
> > control or this does not do the job. This is a high level requirement
> > and I don't care how it is implemented but I don't see how this is
> > possible with a synlink. Perhaps you could spell this out for me so that
> > I understand how this would work.
>
> CUPS 1.2 will allow you to specify a profile filename to use with a
> job. It is up to you to name your profiles so you know which
> printer, media, and other settings apply to each profile, or have a
> smart UI which reads this info from the ICC profile and displays it
> for the user (or does the selection for them automatically...)
So the symlink makes the users custom profiles available to CUPS which still
leaves the work flow issues unresolved. Got it.
My concern here likely is not a CUPS issue but rather more of a UI issue. I
would like to be able to "package" (for lack of a better term) printer
settings information for a specific print configuration up in a way that
makes it accessable to users of all abilities. And to administratively have
the ability to make that printer settings "package" available to all users or
selected users. The printer settings "package" would contain a set of driver
settings and CM information such as profile, rendering intent and black point
compensation flag.
So how might this be done? This is just one possibility that perhaps could be
kicked around some. Visualize the gimp-print plug-in The GIMP uses. In that
plug-in you can create a "logical printer" that ".. can be used to name a
collection of settings you wish to remember for future use." Now add a few
new fields such as ICC printer profile, rendering intent, black point
compensation and the ability to make the driver always handle the data the
same way and the hooks to pass the CM information through to CUPS and you are
most of the way there. In fact this is all that is needed for single user
workstations assuming that we are only concerned with printed output from
apps that use the gimp-print plug-in.
For multi user systems you would add the following. Give administrators the
ability to lock down the settings for a "logical printer" and make this
available to other users on the system. Then add the ability to make the
print dialog that uses these "logical printers" the default system print GUI.
Assuming that this correctly interfaces to CUPS to handle CM you have a
solution to the printing work flow problem that provides for both expert and
normal users.
This would allow administrators to set up general purpose and draft "logical
printers" for things like printing OO documents that would use the generic
CUPS CM and perhaps print at lower resolutions... But also setup special
"logical printers" that would use customized CM settings with custom profiles
for printing photos or other high quality output. All users on a system
would then have access to the very highest quality output when they needed
it. In a way that made it totally transparant to them that they were in fact
using something that was customized and different. It would also make these
capabilities available from every application not just CM aware apps.
Adding the additional fields to the plug-in would be easy and I suspect that
setting it up to pass the addition arguments to CUPS would not be very
difficult. In fact I would be willing to bet dollars to donuts that Robert
or one of his people could have this done in short order if they decided to.
But putting together the multi user administrative stuff could be a real
challenge since there are likely all kinds of issues that would need to be
resolved.
I guess that I just added two new requirements for the CUPS interface. The
ability to receive and for CUPS to handle rendering intent and black point
compensation. Sorry but these will be needed in the long run. Maybe these
could be added in CUPS 1.2.1?
By the way when will CUPS 1.2 be released for us non-Mac users?
Hal
More information about the openicc
mailing list