Dcp and Icc Camera Profiles
Icc profiles are supremely qualified to correct images from a scanner or any other input devices that have well defined ranges of possible values. It fits those requirements perfectly, but has very little flexibility - that a scanner rarely needs.
Dcp profiles are in many cases better suited for the varying real-world requirements of a camera, where performance in varying light conditions and a need for "perceptual" corrections is more important.
Both are possible to "cross-use", with good enough results - but it could be a good idea to consider the best tool for the work to be done.
Lets start with the similarities
Both dcp and icc have a "translation mechanism" that should transform an image with colors represented by digital values from a [scene referred] white balance and [scene referred] intensities into a standardized [image referred] format that a computer can recognize as an image. They can both do this with a straight, linear matrix type of transform - where the input image as represented by the channels [c1, c2, c3] and the output result is either the base color format CIE XYZ or a standardized RGB profile like Adobe RGB..
We shouldn't really refer to the input image as "R, G, B" right now (!), since we don't know what colors the channels really represent. If you take a Canon digital camera for instance, they are more like [red-orange, warm green, blue] than [red, green, blue] - and so is the human eye by the way...
The matrix transform works exactly like the "color mixer" in Adobe Photoshop. Each output channel [X,Y or Z] or [R,G or B] are "mixed" from a combination of the input channels. This mix can also contain "subtraction", which is used to increase output channel color difference - increase saturation - as well as "addition", which will lower saturation. Add one neighbor and subtract the other, and you move the resulting color in the "add" direction.
If you subtract a little of the c1 and c3 from c2 to make the Green output, you increase "Green" saturation.
If you add a little of the c1 and c3 from c2 to make the Green output, you lower the saturation of "Green".
To get a 3-channel output from a 3-channel input you need a 3x3=9 size matrix - three mix input constants for each output color.
If the camera (plus the light conditions) or the scanner (plus the paper background and light) is well constructed and behaves a bit like human vision, then the matrix part in itself should get the output very close to the intended result. Unfortunately that isn't always the case, since production technicalities may vary. Filters can only be made from a few certain materials, light changes, papers change and so on.
That's why we might need a "Look-up Table" or "LUT" transform.
This is basically a grid of control points that you place over the available colorspace. Each gridpoint has a correction value that should be applied to input colors falling within this point's area of relevance. And hence the name "Lookup" - the software calculates a position for the "in" value, "looks up" the closest correction value, applies it and ouputs an "out" value.
We (can) get a very much more finegrained correction from a LUT correction table, since we can single out very small portions of the color space to make a correction in. We might increase the saturation for orange-yellow, and lower it for green-yellow - we cannot do this with a "Matrix" type correction, that is limited to large sweeping corrections.
Main differences between icc and dcp
An icc profile (for a scanner or a camera - our two basic three-channel "inputs") can be made up of four parts:
• Curve correction (to compensate for non-linearities in the measurement system)
• Input coordinates (basically a matrix transform)
• LUT in either XYZ or Lab space
• Output curve
This is a system mostly constructed (and optimized) for scanners. In a scanner, the input may be non-linear. It may have a gamma curve, you might scan something that has dot-gain, or a print that's already been subjected to curve processing. In a scanner you can almost always know that the paper (the background, the whitebalance) falls within a certain quite small range of values. The icc profile is very well suited to take care of those deviations, and perform a good accuracy transform from input to output. The PCS, "profile connection space" is either Lab or XYZ, a standard that can easily be transformed into any other standard color profile (like Adobe RGB or sRGB). A scanner (input) profile takes the input and translates it into the PCS. An output profile (Adobe RGB?) takes PCS input and translates that into output values.
A dcp profile has several more options and contains up to seven parts:
• One (or two) input matrices
• One "reduction" or "correction" matrix
• One (or two) input LUT corrections
• One output curve
• One output LUT correction
This system is better suited for the more comprehensive demands a camera-captured image puts on the color management input system. A camera has to work with the light present in the scene, it doesn't always bring its own light like a scanner does! A camera (at least in the raw file) is always a linear measurement system, twice the amount of light means a measured value that's twice as high. That means that you don't really need an input curve correction. Then the Matrix + LUT corrections takes care of the [scene referred] color and white balance, and translates it into a specified PCS (profile connection space) which in the case of Adobe Camera Raw is ProPhoto RGB. The reason for the option of using two sets of input matrices/LUTs is that we have to adapt the translation differently depending on the scene input whitebalance.
When the first part (scene to PCS transform) is finished, the dcp applies (optional) output curves or "exposure curves", and after this yet another LUT transform.
A curve affects color - a steeper curve increases saturation and vice versa. The final LUT transform can be seen as a "perceptual" adaptation, where corrections that "just looks right" can be added. You usually don't want a photograph to be just a flat copy of reality, and you might also want to compensate for the way human eyes react to color in bright, mid and dark tones (see "Munsell lines" or "Munsell correction").
Colors as seen by the camera
An important fact to remember when you talk about color and camera measurements is what the camera "sees":
[light spectrum] x [reflection properties (surface color)] gives the scene referred color
This result then gets filtered through the camera's color filters into three discrete spectrum sample points, the three raw channels.
As you can see, there are several variable parameters involved here, at several different stages. And as with any equation that has more than one unknown parameter there can exist quite a lot of "plausible" solutions, and the true solution can often not be 100% statistically secured from just looking at the equation... Working around this limitation is part of the human touch, and what maybe could be called "intelligence" in profiling software.