Helmut Walle wrote:

> > What smart scheme can we drum up to find out systematically what colour
> > adjusting we should use?
> 
> Good question. What you would normally be interested in is an
> end-to-end colour transformation from pictured objects to printouts
> that is as closely an identity as possible.

This is what colour management is all about.  There's plenty of info 
about it on the web - you can start with the ICC (International Color 
Consortium) at www.color.org.  Adobe has some good info, and I remember 
there was a basic tutorial on the Barco site (the Rolls-Royce of monitors 
and video projection systems).  Or you can read on for a few tidbits of 
why its so hard to do.

> This implies that the colour adjustments depend not only on the printer
> and driver you use, but also on the scanner or camera. This makes
> things a bit difficult. It becomes even more difficult, if the camera
> uses automatic white balancing, and you are taking pics of uni-colour
> objects... 

You're on the right track but I hope to explain just how difficult this 
really is.  I'm going to talk in pretty general terms from now on so if 
you're not interested in this stuff, read no further.  There is a point 
way down the bottom somewhere but unfortunately I see the need for some 
background.  You will be tested on this after the holidays ;)

I can't guarantee that the info below is 100% accurate but I have learned 
rather a lot after quite a bit of frustration in the past with my 
scanner.

Most imaging peripherals you buy today come with ICC colour profiles 
bundled with the driver.  These are required by Microsoft if the 
"Designed for Win98" (or later) logo is to be attached (MS are part of 
the ICC).  Of course, the lack of a Windows 98 sticker doesn't mean you 
won't get a profile.

The colour profile provides information about how the device renders 
colours from input to output, eg from a photographed scene to a file, or 
from a file to a printed page.  The profile also contains information 
about the colour gamut of the device: ie the range of colours it can 
physically produce.  Gamma values can also be recorded.  This information 
is used by the colour management system (often abbreviated to "CMS") to 
translate the raw data between various colour spaces while applying 
colour corrections as necessary.  There are lots of different CMS's 
available but they all do basically the same thing using different 
algorithms.

There are several different types of profiles, each of which is used at a 
different stage of the colour workflow.  There are input devices 
(scanners, cameras), preview devices (monitors, projectors) and output 
devices (printers).  Another kind of profile describes a "working colour 
space" and this is the device-independent hub of the whole system.  
Profiles can contain only gamma and gamut information, or can go the 
whole hog and describe how the device actually renders different colours 
(the data is often derived from an IT8 reference colour chart).  You can 
generally tell by the size of the .icc file.  My scanner profile is 655kb 
and my monitor profile is 2kb.

When you scan something, the raw data is adjusted using the scanner's 
input profile to adjust the colours and convert it into the working 
colour space.  The imaging application then uses the preview device to 
adjust the file for display, but this adjustment is done for display only 
and is not recorded to the file.  So if someone else opens your file on 
their machine, their preview device will be used and they will 
(theoretically) see exactly the same colour as you did because the 
working colour space is device-independent.

Some file formats allow colour profile information to be embedded.  I am 
not exactly sure how this works as I've never used it.  I'd guess that 
its used to avoid gamut compression when converting between different 
working colour spaces.

When you print, the image data is converted from the working colour space 
into the printer's colour space, along with any adjustments necessary to 
correct colours so that what you saw on the screen is what you get on the 
page.  Basically the same process used for scanners, in reverse.

Each time a colour profile is applied the colours can be clipped or 
compressed if they are outside the gamut of either the source or the 
destination colour space.  Some applications can warn you of out-of-gamut 
colours if you have your colour workflow set up.  Even changing between 
different working colour spaces can cause problems.  And there are lots 
of working colour spaces available.  I have no idea why you'd apply any 
one of them over another as I don't have much experience in that field.

Windows itself doesn't use colour profiles, but it does provide an 
interface to them for applications (such as Photoshop) to use if they're 
written to support it.  Quite often the scanner/printer drivers 
automatically apply these profiles in the background so you unless you're 
into professional graphics you should theoretically never need to even 
know they exist.  Apple provides similar support but I think it goes a 
bit deeper (ie Colorsync).

I would dearly love to see a good colour management system implemented in 
XFree86, whether its their own or something commercial which has been 
contributed (SGI could come to that party, or Adobe could gain some major 
brownie points).  And I'm not talking about KDE or Gnome.  I'm referring 
to the underlying X server itself (I hate being tied to a window 
manager).

As far as devices are concerned, the manufacturer-supplied profiles tend 
to be pretty generic and for absolute accuracy it can be a good idea to 
generate your own.  This is especially important for printers as colour 
rendition is strongly dependent on the ink and the paper you use.  
Monitors and scanners are usually OK but they do vary slightly due to the 
effects of age and manufacturing processes.

Unfortuately the equipment to do your own profiling can be rather 
expensive.  Scanners and printers can be profiled in software (which you 
usually have to pay for).  This is not as accurate as dedicated hardware -
once you've profiled the scanner you can use it to profile the printer.  
Monitors require hardware to measure. The really expensive monitors are 
individually profiled in the factory, and some even come with the 
necessary hardware to recalibrate them as they age.

There will always be small differences between your raw image, what your 
scanner/camera captures, what you see on the screen and what ends up on 
the printed page.  This depends mainly on the device gamuts which are 
defined by the physical properties of the phospors or inks or whatever is 
generating the actual colour.  You may have experienced Powerpoison shows 
where what was readable on the presenter's monitor has turned to custard 
on the projection screen simply because the projector can't display the 
same range of colours that the monitor could.  Of course, some of the 
colour schemes that some people use are unreadable to start with.  I saw 
yellow text on a bright green background yesterday.

The printed page is the hardest to manage because, being a subtractive 
process, the colour rendition is critically dependent on the ambient 
light.  The saving grace in this case is that human colour perception is 
far more relative than absolute, so the eye/brain compensates somewhat 
for the ambient lighting.  I won't discuss perception further as this 
post is far too long already.

On the down side, the very same relative nature of our perception is what 
makes adjusting-by-eye pretty much guaranteed not to give accurate 
results.  Especially when your monitor is not calibrated.  The RGB number 
might read 128/128/128 but the monitor won't display that as grey unless 
your imaging application has your monitor's profile loaded as the preview 
device (assuming the profile is accurate).  The monitor profile only 
applies to a very specific setting (colour temperature, rgb adjustments, 
and brightness/contrast settings to a smaller extent, and you need to let 
it warm up properly as well).

And what you perceive as grey greatly depends on ambient lighting.  I 
have learned that for my current monitor settings I must not edit images 
during daylight hours as the living room is just too bright (and I should 
be out taking pictures anyway).  Otherwise my images look a bit darker so 
I crank up the gamma to compensate, which means they end up printing too 
bright.  Its no big deal if your printer is right beside you: just do 
another print.  In my case, the printer is on the other side of town and 
I generally send the file in the evening and pick it up the next day (at 
best).  I don't want to be screwing around too much so it helps to have 
it right first time.

When Apple released OS X, some graphic artists complained that the 
default colour scheme upset their colour perception.  So Apple produced a 
monochrome scheme.  There are some very fussy people out there, but they 
do have good reason to be fussy when their paying client wants the job 
done right, and wanted it done yesterday.

By now you're probably wondering why anything ever looks right at all ;)

Its surprisingly difficult to make manual adjustments using the RGB 
numbers as you need extremely fine control over the tone curves for each 
colour channel in order to achieve what the CMS should be doing for you.  
I have tried this with an IT8 reference target in my scanner and it 
needed far too much fiddling to be worthwhile.  I couldn't do it with 
just black/white points and gamma values for each r/g/b channel.

Having said that, if its "pretty close" already, then by all means make 
some adjustments in the print driver.  Just don't go expecting miracles.

That was a lot of off-topic waffling on my part for such a small point.  
I'd better go pick up my latest test prints before the shop closes.

Cheers,

- Dave

http://www.digistar.com/~dmann/


Reply via email to