Thursday, 22 September 2011

Converting Adobe RGB to sRGB (Part 2)

aRGB to sRGB: RelCol vs Perceptual



Only the GREEN channel was evaluated, as it has the most OOG compared with the rest of the channels.



where ΔE= Color difference computed with CIELab  ΔE2000.

ΔE1 Source color compared to converted color which was converted to sRGB with RelCol
ΔE2 Source color compared to converted color which was converted to sRGB with Perceptual and with sRGB_jc1

Above result shows that color reproduction may not be deteriorated with Perceptual rendering intent for OOG colors. In general, however,  the actual output varies greatly depending upon mapping algorithm implemented by the profiler in use.

Wednesday, 21 September 2011

Converting Adobe RGB to sRGB (Part 1)


Converting aRGB to sRGB with Relative Colorimetric Intent (RelCol)

Color space conversion from aRGB to sRGB with RelCol is the  only method currently available with Photoshop. Refer to below illustration, data for destination1 was computed with straight Relcol to sRGB, whereas data for destination2 was computed with perceptual conversion to sRGB  and with icc profile sRGB_jc1.


Above result show that for color space conversion from aRGB to sRGB with Relcol, the RED channel (G=B=0) begins to clip at R=219 (source space) onwards. These clipped colors are  indistinguishable in sRGB color space.


Monday, 19 September 2011

Can jc1's conversion survive on the Blue Ball Test?

Blue Ball Test
The Blue Ball can be extracted from the original file, Twenty-Eight Balls.tif which can be downloaded from https://public.me.com/billatkinson.

IMHO, examine color smoothness on screen is best by disabling the monitor profile, especially if monitor profile is created with Cluts.

Here is my suggestion on how color smoothness should be examined on screen.
Set soft proof to monitor, zoom in 100% or higher, use the Navigator in CS to assist in viewing the problem area.


Following is not a direct apple-to-apple comparison, as one is converted from ProPhoto to PhotoGamut color space whereas the other is from ProPhoto to sRGB (with jc1 method), and both did that perceptually.


Try it if you have other perceptual color conversion routine. The Blue Ball can be download  here

Sunday, 18 September 2011

Color Space Comparison: PhotoGamut vs sRGB_jc1

PhotoGamut vs sRGB_jc1





Basic Property PhotoGamutRGB sRGB_jc1
White                    D50                D50
Color space              RGB                RGB
PCS Data Space           Lab                Lab
Implementation           Cluts              Cluts
Profile size(bytes)      148,480            589,928
icc format version       2.0                2.1
Gamut Volume*            902,827            770,429
Profile Device type      OutputClass        OutputClass
Rendering Intent         All**              All**
Last Update              2004,avg6c         2011,current RC0.9
Availability             FOC                Publicly available         

*     Under D50 condition
**    Colorimetric, Saturation and Perceptual

Proposed Usage
PhotoGamut: was proposed as a RGB working space.
sRGB_jc1: as a conversion bridge between wide gamut RGB (ProPhoto or scanner space)  and sRGB.


Related Links
photogamut.org    [ Link]
jcRGB   [ Link ]

Saturday, 17 September 2011

Color Space Conversion: Matrix vs Cluts (Part 2)

Matrix vs Cluts (Part 2)

Color Degradation Analysis: RelCol vs Perceptual

Conversion Spaces
a) Source Space: jc1RGB
b) Destination Space: sRGB

  
Test Patches
Similar to this


Define reference and Compute  ΔE2000
   Start with Source space, generate RGB's Lab values, our Reference data.
   1. Convert from Source space to sRGB with straight Relcol. 

        Compute Lab and compare it with Reference. Refer to first Diagram below for result.
   2. Convert from Source space to sRGB perceptually with sRGB_D50_jc1. 

        Compute Lab and compare it with Reference. Refer to second Diagram for result.


Observation
No color degradation was observed with Perceptual rendering using output profile, sRGB_D50_jc1.

ΔE1
ΔE2

Thursday, 15 September 2011

Color Space Conversion: Matrix vs Cluts (Part 1)

Color Space Conversion with Perceptual Rendering Intent: ProPhoto RGB to sRGB

Matrix vs Cluts (Part 1)

My recommended approach for perceptual color space conversion from ProPhoto to sRGB is less straight forward with compare to direct RelCol conversion, as additional steps are involved.


Using my method, the image with ProPhoto profile is converted to jc1RGB color space, and to sRGB_jc1 subsequently, and finally to standard sRGB. The initial step is similar to converting to sRGB with straight RelCol. The main difference is that by converting to an intermediate color space first, the " color distortion" due to RGB channel clipping that could have been introduced is significantly reduced, compare with directly convert with RelCol to sRGB. This loss is further minimized with jc1RGB being selected as the intermediate color space.

The matrix conversion has its advantages, not only that its profile size is relatively smaller and portable, color transformation can be carried out within the known CIE XYZ color space and its transformation behavior is very well predictable. The shortfall is, either sRGB, Adobe RGB, ProPhoto or other proposed color spaces, which are known to be Absolute color space, are not associated with mapping functions. When conversion takes place from a wider color gamut space to a smaller gamut space, colors that are OOG (out-of-gamut) will be clipped and that imply that color information pertaining to the OOG will be lost completely.

In V2 (icc profile specification version 2), color rendering with perceptual rendering intent in CMM can be carried out with output type profile such as printer profile. Output profile uses Cluts ( Color Look Up Tables). ProPhoto has 2 of its primaries extended outside the visible locus and hence problem could arise if the image with ProPhoto has colors that are not within the visible locus. Are these invisible colors exist? The fact is, if they are non existence, why do we care?

Related information: Perceptual Conversion Made Easy

Tuesday, 13 September 2011

Defining another sRGB Color Space Profile: sRGB_jc1.icc

sRGB (IEC61966-2.1) vs sRGB_jc1

Basic Property                       sRGB                         sRGB_jc1
White                  D65              D50
Gamma                  2.2,custom*      2.2,16-bit grid
Color space            RGB              RGB
Implementation         Matrix           Cluts
Profile size(bytes)    3,144            589,928
icc format version     2.1              2.1
Gamut Volume**         798,455          770,429
Profile Device type    DisplayClass     OutputClass
Supported RI***        Colorimetric     All****

*    1024-point
**   Under D50 condition 
***  Supported Color Rendering Intent
**** Colorimetric/Saturation/Perceptual

Other Characteristic
The grapher plots, either in Lab space or xyY space, they are almost indistinguishable.


Color Reproduction Consideration
Test sample size: 5832 RGB points, 0 to 255, 15-pitch
Method: Read RGB, compute and compare Lab values under D50 condition.

Result
Above result suggests that the RGB distribution within the color gamut between sRGB_jc1 and sRGB is very similar if not identical.  

Color Conversion in Absolute Color Space

Absolute Color Space
A color space is a mathematical representation of our visual perceptions.  In the absolute color space, colors are represented by points in CIEXYZ. Absolute color space profile is device independent, hence its profile is also known as non-device type profile. All visible colors have absolute or non-negative XYZ co-ordinates in CIEXYZ. The relative distance between these points is an indication of the difference between the colors and that simplifies and helps us in analyzing color reproduction capability mathematically. sRGB, Adobe RGB and ProPhoto RGB are among the most widely used absolute color spaces.

Color Conversion in Color Spaces
A color can be converted from one color space to another or vice verse. Such conversion in absolute color space is carried out by matrix transformation that has been built into the color space profile. Absolute Color Space profile is charactaerised by its compactness in file size and that it can be easily tagged into a image file with little overhead added to the resulting output.

Differences between Absolute and Generic Color Space

Absolute Color Space
1. Profile type e.g. monitor, TV screen.
2. Non-device type is characterized by its linearity behavior and can be described with mathematical function.
3. Color Conversion is matrix based, converted data is always smooth and continuous.
4. Cannot perform Perceptual color space conversion.
5. With RelCol (Relative Colorimetric), change in hue or color shift is better control and acceptable.

Generic Color Space
1. Profiles for I/O devices such as scanner, camera or printer.
2. Some output devices are non-linear and they cannot be fully described with simple  mathematical function.
3 Color Conversion with Cluts (Color Look Up Table) is preferred, output with Cluts is discrete by nature and output resolution greatly depends upon the size of the Cluts and its implementation algorithm.
4. Mapping function for Perceptual conversion is built into the profile.
5. Change in hue or color shift is unavoidable due to CMM color matching, that also depends upon the workflow and how CMM is being implemented.

References
icc specification 4.2
CIELab Color Space by Gernot Hoffmann


Sunday, 11 September 2011

ProPhoto to sRGB Conversion with Perceptual Rendering Intent


Relative Colorimetric (RelCol) vs Perceptual Rendering intent (Perceptual)

The two basic methods for absolute color conversion are RelCol and Perceptual.

With RelCol, colors that are out-of-gamut of the destination space are clipped to the gamut boundary of the destination space.

Perceptual rendering does it differently in that colors are compressed by mapping with transformation when conversion takes place from a larger color space to a smaller color space. With proper consideration and implementation, RGB channel clipping and change in hue due to conversion with perceptual rendering can be minimized significantly.

The white point for both sRGB and Adobe RGB (aRGB) are D65, whereas white point for ProPhoto, Beta RGB and some other wide gamut RGB are D50. Photoshop and most graphic applications use CIELab D50 as their internal working color model when doing color computation. When converting to sRGB or aRGB from another absolute color space, it has to be with RelCol, as chromatic adaptation to D50 is required or otherwise white balance will be off. Photoshop ACE (Adobe Conversion Engine) sets conversion to RelCol internally by default when converting to a destination space which is defined with D65. Similarly, when the destination space is D50, ACE forces the conversion with Absolute Colorimetric, as no chromatic adaptation is needed. This is quite difference from conversion to a destination space which employs an output type profile where user has an option for selecting one of the desired rendering intents.

Perceptual Conversion with  PhotoShop action is available for downloading here.

General Information of jc1RGB

File Information
File name: jc1RGB.icc
Internal name: jc1RGB v0.9
File Size: 714 bytes
Creation Date: 11 Sep 2011  ( Prerelease)

Icc Information
Icc Format Version: 2.2.0*
PCS: XYZ
PCS White point: 0.9642029, 1.0000000, 0.8249054
Profile Type: mntr, matrix-based, 2.2 gamma curve (display type profile)**
ColorSpace: RGB
Default Rendering Intent: Absolute Colorimetric

Notes
1 * Icc format version is 2.1 for  both sRGB ( IEC61966-2.1)
    and  Adobe RGB (1998).

2** Matrix-based, 1024-point curve for sRGB
    Matrix-based, 2.2 gamma curve for Adobe RGB(1998)

Saturday, 10 September 2011

jc1RGB vs ProPhoto RGB



                     ProPhoto        jc1RGB

Similarities
1. Basic Property    Matrix/TRC        Matrix/TRC
2. White                D50               D50

Differences
1. Gamut volume    2,429,670           1,929,506          
2. Gamma              1.8                2.2
3. Primaries     2 primaries are       All 3 primaries are
                 outside visible       within the visible locus
                 locus

Is jc1RGB Perfect Color Space compliant?
Yes.  Refer to here for related information about Perfect color Space family.