Maths and me @ ICC profiles

Source of colour may be RGB or in the form of CMYK, we have to be prepare like how to communicate  with available products. Here there may be M to N  (many to one) communication is possible, 

RGB - Adding 3 colours red, green and blue from black to white like in monitor.

CMY - Subtracting 3 colours cyan, magenta and yellow from white to black (for rich look we include key colour black in printed copy).

All devices are dependent or in-dependent we are not sure, the system to convert colors or communicate with devices are not same. There is common language to connect device with means of format called ICC profile.

ICC profiles were created with language  like A >> B or B>>A tags. We are familiar with XYZ and LAB color PCS (Profile connection space) already.  

The device-independent color space that the ICC defined is called the profile connection space (PCS). The PCS is a color space large enough to include all the color gamuts of different input, display, and output devices. An ICC profile contains methods that map the colors that a device can create or display to the values of the corresponding colors in the PCS. The ICC profile can be used to convert an image from a device-specific color space to the PCS, or from the PCS to a device-specific color space. 

An ICC profile is an element in RIP (Raster Image Software) software that allows the software to coordinate the physical attributes of your printer, print head, ink, and media to obtain correct and consistent color. ICC profiles contain several elements including rendering intents, dithering patterns, ink levels, etc. 

To see how this works in practice, suppose we have a particular RGB and CMYK color space, and want to convert from this RGB to that CMYK. The first step is to obtain the two ICC profiles concerned. To perform the conversion, each RGB triplet is first converted to the Profile connection space (PCS) using the RGB profile. If necessary the PCS is converted between CIELAB and CIEXYZ, a well defined transformation. Then the PCS is converted to the four values of C,M,Y,K required using the second profile.

So a profile is essentially a mapping from a input color space to the PCS, and from the PCS to the output color space. The profile might do this using tables of color values to be interpolated (separate tables will be needed for the conversion in each direction), or using a series of mathematical formulae.

A profile might define several mappings, according to rendering intent. These mappings allow a choice between closest possible color matching, and remapping the entire color range to allow for different gamuts.

The reference illuminant of the Profile connection space (PCS) is a 16-bit fractional approximation of D50 its white point is XYZ=(0.9642, 1.000, 0.8249). Different source/destination white points are adapted using the Bradford transformation.

Another kind of profile is the device link profile. Instead of mapping between a device color space and a PCS, it maps between two specific device spaces. While this is less flexible, it allows for a more accurate or purposeful conversion of color between devices. For example, a conversion between two CMYK devices could ensure that colors using only black ink convert to target colors using only black ink.