ProPhoto to sRGB color space conversion with Perceptual Rendering Intent


jc1

Senior Member
Jan 28, 2005
1,297
2
38
Bt Panjang
Hi all,

Read < here > and < here > for related information.

I am offering these profiles Free-to-Use for all members in ClupSNAP and that the files are provided "AS IS" WITH NO EXPRESS OR IMPLIED WARRANTY and with the condition that the copyright notice tags in the profiles are not intentionally modified. These files can be downloaded < here >.

The latest update is beta 2.1. It is a working version and at its beta stage.

If you experience any problem with the conversion, please feedback and I shall see if further fine tuning is appropriate. Updates will be posted for sharing with all of you.

Comparison between various options for ProPhoto to sRGB conversion
For the following illustration, the colors for the sRGB image were intentionally saturated by assigning it to ProPhoto profile before subjecting it to the conversion.

A) Color Reproduction

01+4-+version-options.png


B) Brief Summary

1) RelCol sRGB
.Work fine for image without excessive saturated color.
.Unpleasant color and loss of details for highly saturated image after conversion.

2) Pro2sRGB perceptual
.Dedicated source-to-destination pairwise mapping from ProPhoto to sRGB.
.Smooth perceptual rendering, always.
.Can result in excessive color shift and dull color.
.Perceptual rendering only works for L*a*b* where a* and b* are within the range (-127 to +128).

3) 1-Step sRGB perceptual with (0_sRGB_D50_jc1)
.Works satisfactorily if color gamut for the image is not bigger than that for BetaRGB, for instance.

4) 2-Step sRGB perceptual with (0_jc1RGB + 0_sRGB_D50_jc1)
.Need 2 steps (unsure if collink is applicable for combining them to a single profile)
.Works satisfactorily for all cases, including a* and b* values that are out of range of (-127 to +128)
.Good color saturation can still be realized.
.Perceptual and pleasant color rendering at the expense of colorimetric accuracy*

* This applies to perceptual rendering intent in general.

Thanks.

jc1

.../spell check
 

Last edited:
Hi all,

Re: Click Here for related information.

I was not presenting a new invention, but just trying to convince the audience that the conversion from ProPhoto to sRGB can be performed perceptually with the current cmm but with a different approach. The aim is to improve the color re-generation process. Certainly, there may have other better way to do it that I am unaware of.

I do not have a real and good example to show. I had used the hypothetical model (see Example 2) which covers all the most saturated colors (be it R, G or B) in ProPhoto to demonstrate its capability. My supplemented photo images may not represent the best examples, but I still think they do not mislead the reproduction capability of this conversion process.

Let's move on by looking at it from a different perspective.

PhotoGamutRGB's Perceptual vs jc1's Perceptual

I am using just one example here. If you have example to show that PhotoG does perform better, you are encouraged to show your image and with histograms if possible.

0+0+photoGamut+perceptual.png


1. Original Tiff image
Nikon raw --> Import into NX2 with ProPhoto profile --> Cropped and output to Tiff --> Import into CS

Following conversions were performed in PS.
2a) Convert from Tiff to photoGamut
2b) Further convert to sRGB with RelCol sRGB

3) Convert with jc1's 2-step suggestion.

Differences
For PhotoGamut, it was first converted perceptually to a much smaller space than that for ProPhoto, and then Relcol to sRGB.

As for my approach, the image was first AbsCol (or RelCol) to a intermediate color space which is smaller than ProPhoto but still significantly larger compared to sRGB. Then to sRGB with perceptual intent.


Note:
For the above example, compare by observing the shadow detail as shown in the histograms.

Thank you.

jc1
 

Why jc1RGB is chosen as Intermediate Color Space? Part 1

Why jc1RGB is chosen as Intermediate Color Space? Part 2

00+betaRGB+%2526+bestRGB.png


Thank you

jc1


.../ re-arranged graphs
 

Last edited:
Intermediate Color Space Consideration

Color Saturation Comparison: BetaRGB vs jc1RGB

The saturation performance was examined with Gamutvision at L=0.5 (default setting) when converting from ProPhoto (Input or Source profile) to BetaRGB and jc1RGB (Output or Destination profiles)

If you have Gamutvision, you can do the same with the following settings.
1 ProPhoto 3 ProPhoto
2 BetaRGB 4 0_jc1RGB (beta2.1)
Rendering: Absolute, for both
Select: xy Chromaticity (Saturation map)

The following diagrams show how the gamut boundaries (in 2D) are mapped between the source profile and the detination profiles at L=0.5, where BetaRGB is on the left and jc1RGB is on the right.

Hints:
1) The gamut boundary for ProPhoto is represented with dotted lines (at different saturation levels)
and that for the destination profiles (BetaRGB and jc1RGB) by solid lines.

2) The saturation analysis tellies with my previous tabulated result and my observation.

3) This implies "larger is better."
http://www.brucelindbloom.com/BetaRGB.html

For more detailed explanation, kindly refer to http://www.gamutvision.com/docs/gamutvision_displays.html#CIE_xy

0+0+chromaticity+beta+vs+jc1TGB.png



OT:
CP800 user, you might be interested in some of my work done which can be found here.


Regards
jc
 

tks alot. i will read them carefully later when i have time. thumbs up!
 

Dear Digital Darkroom personnel,

Matrix vs Cluts (Part 1)

My recommended approach for perceptual color space conversion from ProPhoto to sRGB is known to be "complex" . In actual fact, it is not, just that additional steps are involved.

Using my method, the image with ProPhoto profile is converted to jc1RGB, subsequently to sRGB_jc1 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" that could have been introduced due to conversion is significantly smaller, compare with directly convert to sRGB. This loss is further reduced to its minimal with jc1RGB as the choice of 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 xyz color space. 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.

In V2 (icc profile specification version 2), color rendering with perceptual rendering intent in CMM can be carried 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? I do not know. The fact is, if they are non existence, why we care?

I am going to show the clipping effect of converting ProPhoto to sRGB with straight RelCol or matrix transformation, based on the following illustration. You may have to refer back to my earlier thread, for how my tabulated data is interpreted.

0+0+1+pro+relcol+srgb.png


Note: * these are clipped if import into PS.

Again, above only shows the RED channel. In general, there are less clipping effect on the GREEN, but could have more clipping effect on the BLUE if the blue components are outside the visible locus (non conclusive!). For BLUE, I noticed that these clipped components that are falling outside the horse-shoe-shape could have their L (L in L*a*b*) values virtually zero.

Regards,
jc
 

Last edited:
Matrix vs Cluts (Part 2)

Color Degradation Analysis: RelCol vs Perceptual

Test Sample: 4096 test point as before. <Reference Link>

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

Methodology
A)
1. Define reference
Start with Source space, generate RGB's Lab values, our Reference data.
2. Convert from Source space to sRGB with straight Relcol. Compute Lab and compare it with Reference.
Refer to first Diagram for result.
3. Convert from Source space to sRGB perceptually with sRGB_D50_jc1. Compute Lab and compare it with Reference.
Refer to second Diagram for result.

B)
Generate Tiff (RGB) Reference chart, import to PS. Assign profile with jc1RGB, that is our source image.
1. Convert from Source space to sRGB with straight Relcol. Import result to CTP3
2. Convert from Sources space to sRGB perceptually, use jc1 approach. Import result to CTP3.
Results are shown with last Diagram.

01+jc1RGB+to+sRGB+%2528relcol%2529.png


01+jc1RGB+to+sRGB+%2528perceptual%2529.png


02+relcol+vs+perceptual.png



Observations:
1) Refer to first 2 diagrams. No color degrading was observed.
2) Refer to last or third diagram.
a) For conversion with RelCol, relative position of test points is well maintained. This is in comparison with test points in source space ( not shown).
b) For conversion with Perceptual rendering, converted test points were re-distributed (locally?). More data points can be clearly seen with compare to that using convert with straight RelCol.

Comments
1) Above results show no color degrading with Perceptual rendering using output profile, sRGB_D50_jc1. Is conversion with perceptual rendering yields better color reproduction (with sRGB_D50_jc1) than with straight Relcol?
The observation is inconclusive, reason being that the sample size might be too small and that the RGB pitches of the test patches are too far apart. Further evaluation should be carried out with larger sample size or with real image. With real image, at your own time own target, anyone?
2) One thing for sure, more color details can be recovered with perceptual rendering, which has been clearly illustrated.


Regards,
jc
 

Last edited:
Hi all,

CopyRight Notices

a. My profiles, jc1RGB.icc* and sRGB_jc1.icm*, are copyrighted materials. They can be downloaded from my downloading link.
b. The files are provided "AS IS" with no express or implied warranty, and with the condition that the profiles names, both external and internal, and the copyright notice tag, are not modified.
c. The profiles may be used by anyone but user must not distribute them without prior permission granted by me, by emailing to jcRGB@yahoo.com. This is to ensure that their data integrity or future update, is under control.
d. If the profile is assigned to an image, user can freely distribute their image file without my permission.
e. The profile's creator reserves the right to alter or revise this notice.

Thank you.

Sincerely,
jc1


note: *
The filenames for bete version are 0_jc1RGB.icc and 0_sRGB_D50_jc1.icm, respectively.
 

Last edited:
Technical Specification of jc1RGB Color Space (Preliminary)


0+jc1RGB+beta2.1.png


0++jc1RGB+spec+beta.png


Why jc1RGB
Read discussion forum at here.

Updated specification can always be found [ here ]


With best regards
jc
 

Matrix vs Cluts (Part 3) [ Link ]

Photoshop Action: Pro2sRGB_perceptual.atn
1-click action is available now.
Download the PS action from the below link.

Procedure
1. Load your ProPhoto image into CS.
2. Load PS action: Pro2sRGB_perceptual.atn
3. < Shift >+< F9 > to execute the perceptual conversion from ProPhoto to sRGB


Download Link
1) Pro2sRGB_perceptual.atn (revised)
2) jc1RGB beta 2.1

All are in WinZip.
Action was tested with CS4 under Windows xp3.

Do feel free to request if further details are needed.

Regards,
jc

.../ revised PS action, more details here.
 

Last edited:
Demo_ jc1RGB_Beta2.1

Down load link: < Demo_ jc1RGB_Beta2.1 >
It consists of following 6 files.
a. 0_jc1RGB (beta2.1).icc
b. 0_sRGB_D50_jc1 (beta2.1).icm
c. timage-50x100_prophoto.tif
d. jc1-saturated-color_prophoto.tif
e. Pro2sRGB_perceptual.atn
f. Pro2sRGB_perceptual_interactive.atn


Setup
1. Download and unzip Demo_ jc1RGB_Beta2.1.zip to a folder
2. Copy or Drag & Drop both 0_jc1RGB (beta2.1).icc and 0_sRGB_D50_jc1 (beta2.1).icm into system icc folder
3. Start CS and load both action files, Pro2sRGB_perceptual.atn and Pro2sRGB_perceptual_interactive.atn

note: PS action will remain in CS unless it is unloaded.


Interactive Mode
1. Start CS
2. Load one of above tiff files, or other image file with ProPhoto, BetaRGB or BestRGB profile.
You may also like to conduct a torturing test with any file, be it sRGB or aRGB.​
3. Press <shift>+<F10> to start interactive perceptual conversion.
Follow the screen instruction or press Shift-C to continue.


0+0+0+interactive+conversion.png


4. Repeat by going to the drop down File menu, do a Revert.


Non-Interactive Mode
1. Start CS
2. Load tiff file
3. Press <shift>+<F9> for 1-step non-interactive conversion.

For further improvement, your feedback would be much appreciated.

Thank you.

Regards
jc

.../ Tips on PS action
 

Last edited:
Blue Ball Test 1

The Blue Ball was extrated 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. As for monitor that is profiled with matrix, inaccuracy has direct influence on the color smoothness as well.

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.


04+Blue_Ball-smoothness.png


jc
 

Blue Ball Test 2

Following is not a direct apple-to-apple comparison, as one is converted from ProPhoto to photogamut (with PhotoGamutRGB_avg6c profile) and the other from ProPhoto to sRGB (with jc1 's workflow). One thing in common, in that both conversions were performed with perceptual rendering intent.


04a+Blue_Ball-smoothness+photog+vs+perc-sRGB.png


jc
 

Blue Ball Test 3

The converted RGB data along with the original data points, are shown with the below grapher plot.
a) The converted data in Lab space do not deviate much between rendering with RelCol and with Perceptual.
b) In xyz space (not shown), more shadow details were recovered with perceptual conversion, these additional details were likely from data of the original image outside the visible locus.

05+Blue+ball+test+-+rgb+points+in+Lab+space.png


jc
 

Effect of BPC

The effect on color space conversion due to BPC (Black Point Compensation) was studied with below 22-level grey scale.

00+22-level+grey+scale.png



Results (with Histograms)


00+effect+of+BPC.png



Comments
1. BPC has no effect on conversion with RelCol in absolute color space.
In general, conversions in PS are carried out under condition D50 illuminant in that all absolute color spaces
have the same black point ( Lab=0,0,0) and White point (Lab=100,0,0).
2. For perceptual rendering, the effect due to BPC can be realized on shadow area.
3. There is no loss in neutrality (not shown) and luminosity with perceptual conversion, in comparison to conversion with RelCol.

jc
 

Example: ProPhoto to sRGB Conversion without clipping on Highlight



01+flower1a.png


Download link for the example's tiff image < example 1a >


Note: All my links are limited to 500 downloads. Keep me informed if you are unable to download.

Thank you.

jc

.../update download link
 

Last edited:
Prerelease 0.9

It can be downloaded here


104+jc1RGB+%2526+sRGB_jc1.png



Changes since Last Update

11 Sep 2011: Prerelease 0.9
a) jc1RGB
Optimizing G and B primaries.
Compacting profile size to below 1K bytes.​
b) sRGB_jc1
Optimizing profile size without scarifying color reproduction capability.​


08 Aug 2011: Beta 2.1



jc