Question about rendering intents.

ppage

Veteran Member
Messages
2,907
Solutions
9
Reaction score
833
Location
Montreal, CA
I use Photoshop and my working colour space is Adobe RGB. I want to get a large print done by a good print lab, but it’s a difficult image because some of the colours are out of gamut. The lab I’m considering offers ICC profiles to help select the best paper to use. I’ve soft proofed with their various profiles and selected the paper that gives the most acceptable results.

My problem is that even with the selected profile, the image looks different with different rendering intents and while it’s not bad with a relative colorimetric intent, it does look closer to what I want with a perceptual rendering intent. But while I can select a paper type when ordering, the rendering intent cannot be specified. The lab clearly states the following about using their ICC profiles “Make sure to only use these to proof your image and to never save or embed them to your file”.

I don’t see how the rendering intent can be communicated to the lab if the profile and rendering intent aren’t embedded in the file, and it’s clear that the rendering intent does make a significant difference. I emailed the lab in question several days ago but they never responded.

At this point I’m not sure how to proceed. Have I misunderstood something about ICC printer profiles and rendering intents or should I look for a better lab?
 
Last edited:
I use Photoshop and my working colour space is Adobe RGB. I want to get a large print done by a good print lab, but it’s a difficult image because some of the colours are out of gamut. The lab I’m considering offers ICC profiles to help select the best paper to use. I’ve soft proofed with their various profiles and selected the paper that gives the most acceptable results.

My problem is that even with the selected profile, the image looks different with different rendering intents and while it’s not bad with a relative colorimetric intent, it does look closer to what I want with a perceptual rendering intent. But while I can select a paper type when ordering, the rendering intent cannot be specified. The lab clearly states the following about using their ICC profiles “Make sure to only use these to proof your image and to never save or embed them to your file”.

I don’t see how the rendering intent can be communicated to the lab if the profile and rendering intent aren’t embedded in the file, and it’s clear that the rendering intent does make a significant difference. I emailed the lab in question several days ago but they never responded.

At this point I’m not sure how to proceed. Have I misunderstood something about ICC printer profiles and rendering intents or should I look for a better lab?
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.

Generally, your concern is legitimate, and I think you ought to ask the lab what you've asked here. Maybe they can help you--maybe it's as simple as adding an instruction with the order, 'Use perceptual rendering intent'--or maybe they'll offer some other accommodation, or maybe they'll tell you they can't help you.

The problem you describe seems common with some mid-level printing services like Bay Photo: they provide an ICC profile you can use for soft-proofing, but then they don't let you convert to that profile and upload your file in it.

Also, FWIW, you probably ought to work in ProPhoto RGB because there are some colors that are outside of Adobe RGB that many printers can print. Of course, if you have to submit the files in a smaller working space like Adobe RGB or sRGB, that may not help any, but some services let you submit in ProPhoto RGB.
 
Last edited:
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
Thank you; that's an interesting idea. If I can't do it any other way or find a better lab, I'll try this.
Generally, your concern is legitimate, and I think you ought to ask the lab what you've asked here.
I did. I emailed them several days ago from a link on the support page on their site but never got an answer (White House Custom Colour, if anyone is curious).
Also, FWIW, you probably ought to work in ProPhoto RGB because there are some colors that are outside of Adobe RGB that many printers can print. Of course, if you have to submit the files in a smaller working space like Adobe RGB or sRGB, that may not help any, but some services let you submit in ProPhoto RGB.
I've been going back and forth with myself about ProPhoto RGB. I know a lot of professional photographers use it and recommend it to everyone. But this seems to me the inverse of my present problem. Right now I can't print the colours I see on my monitor working in Adobe RGB but I wouldn't be able to see all the colours in my image if I was working in ProPhoto RGB, so I really don't see how I could take advantage of a ProPhoto RGB capable printer.

If I could find a service with a printer capable of producing colours outside Adobe RGB it would at least solve my current problem.
 
I use Photoshop and my working colour space is Adobe RGB. I want to get a large print done by a good print lab, but it’s a difficult image because some of the colours are out of gamut. The lab I’m considering offers ICC profiles to help select the best paper to use. I’ve soft proofed with their various profiles and selected the paper that gives the most acceptable results.

My problem is that even with the selected profile, the image looks different with different rendering intents and while it’s not bad with a relative colorimetric intent, it does look closer to what I want with a perceptual rendering intent. But while I can select a paper type when ordering, the rendering intent cannot be specified. The lab clearly states the following about using their ICC profiles “Make sure to only use these to proof your image and to never save or embed them to your file”.

I don’t see how the rendering intent can be communicated to the lab if the profile and rendering intent aren’t embedded in the file, and it’s clear that the rendering intent does make a significant difference. I emailed the lab in question several days ago but they never responded.

At this point I’m not sure how to proceed. Have I misunderstood something about ICC printer profiles and rendering intents or should I look for a better lab?
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
May not do what you expect. Look for the white paper: "Perceptual Rendering Intent Use Case Issues" on the color.org ICC website.

The latest V2 ICC profiles are subset compliant with V4. V4 compliant profiles require that a Perceptual transform from PCS to device that is then transformed from device back to PCS should reconstruct the original. From my testing this is valid for V2 profiles created by i1profiler but the accuracy deteriorates the more the original colors exceed the printer's gamut.
Generally, your concern is legitimate, and I think you ought to ask the lab what you've asked here. Maybe they can help you--maybe it's as simple as adding an instruction with the order, 'Use perceptual rendering intent'--or maybe they'll offer some other accommodation, or maybe they'll tell you they can't help you.
This is exactly right. If they provide a profile for soft proofing then they should allow selection of the desired print intent including details like whether BPC should be done. The latter is critical to specify for Relative Intent.

If they can't or won't allow you to specify intent then it is likely they will user Perceptual as that is the default. It's just not certain.
The problem you describe seems common with some mid-level printing services like Bay Photo: they provide an ICC profile you can use for soft-proofing, but then they don't let you convert to that profile and upload your file in it.
Right. Too few provide that. Would be nice.
Also, FWIW, you probably ought to work in ProPhoto RGB because there are some colors that are outside of Adobe RGB that many printers can print. Of course, if you have to submit the files in a smaller working space like Adobe RGB or sRGB, that may not help any, but some services let you submit in ProPhoto RGB.
 
Last edited:
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
May not do what you expect. Look for the white paper: "Perceptual Rendering Intent Use Case Issues" on the color.org ICC website.

The latest V2 ICC profiles are subset compliant with V4. V4 compliant profiles require that a Perceptual transform from PCS to device that is then transformed from device back to PCS should reconstruct the original. From my testing this is valid for V2 profiles created by i1profiler but the accuracy deteriorates the more the original colors exceed the printer's gamut.
This is an interesting point you raised, and I'm really bumping up against the limits of my understanding, so I'm sorry is what follows is clueless. But:

If you have an image in Adobe RGB with some colors outside the gamut of the desired ICC printing profile, and in Photoshop you perform a 'convert to profile' from Adobe RGB to the printing profile using perceptual rendering intent, presumably if you then do another convert-to-profile back to Adobe RGB, the only way that any software or profile could know to do a 'reverse transform' would be that Photoshop itself stores a list of what it's done. I wouldn't think that the image data itself would contain a flag indicating 'I was converted from Adobe RGB to this printing profile' much less data on how much 'perceptual squeeze' was performed to fill all the source gamut into the target gamut. If I'm correct on these suppositions, then presumably at worst you convert from Adobe RGB to the printing profile using perceptual, export that as a 16-bit TIFF (now encoded in the printing profile), exit Photoshop, re-launch Photoshop, open the TIFF you just exported, and do a convert-to-profile to Adobe RGB (with the rendering intent for this second conversion probably irrelevant). At that point your image should be encoded in the standard Adobe RGB, but all of its colors should be within the printable gamut as defined by the ICC printing profile. If this is not correct, I fail to see why (which doesn't mean I'm right).

As for accuracy deteriorating: yes, each convert-to-profile will necessarily induce some accuracy loss. I cannot recall an ICC profile with more than a 33x33x33 matrix from which conversion interpolations are made. That said, in this circumstance I suspect that the cumulative error from those two conversions is probably more visually palatable than would be not getting the rendering intent of your choice.
But my all means, further enlightenment and explanation would be appreciated.
 
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
May not do what you expect. Look for the white paper: "Perceptual Rendering Intent Use Case Issues" on the color.org ICC website.

The latest V2 ICC profiles are subset compliant with V4. V4 compliant profiles require that a Perceptual transform from PCS to device that is then transformed from device back to PCS should reconstruct the original. From my testing this is valid for V2 profiles created by i1profiler but the accuracy deteriorates the more the original colors exceed the printer's gamut.
This is an interesting point you raised, and I'm really bumping up against the limits of my understanding, so I'm sorry is what follows is clueless. But:

If you have an image in Adobe RGB with some colors outside the gamut of the desired ICC printing profile, and in Photoshop you perform a 'convert to profile' from Adobe RGB to the printing profile using perceptual rendering intent, presumably if you then do another convert-to-profile back to Adobe RGB, the only way that any software or profile could know to do a 'reverse transform' would be that Photoshop itself stores a list of what it's done. I wouldn't think that the image data itself would contain a flag indicating 'I was converted from Adobe RGB to this printing profile' much less data on how much 'perceptual squeeze' was performed to fill all the source gamut into the target gamut. If I'm correct on these suppositions, then presumably at worst you convert from Adobe RGB to the printing profile using perceptual, export that as a 16-bit TIFF (now encoded in the printing profile), exit Photoshop, re-launch Photoshop, open the TIFF you just exported, and do a convert-to-profile to Adobe RGB (with the rendering intent for this second conversion probably irrelevant). At that point your image should be encoded in the standard Adobe RGB, but all of its colors should be within the printable gamut as defined by the ICC printing profile. If this is not correct, I fail to see why (which doesn't mean I'm right).
I found Photoshop's conversion dialogs clear when converting from a standard colorspace to the printer's RGB device space but confusing when converting from the printer's RGB device space to a standard colorspace. Intuitively, selecting conversion Intent would apply to the target, not the source. But that isn't actually the case when the source is a printer device space. The conversion intent selections actually only apply to the source or printer's device color space.

This can be more intuitive if the image starts off in Lab. Converting to printer space uses the Intent settings to apply the proper profile tables to the Lab values producing printer RGB values. When converting back to Lab, the source printer profile is selected and the target is set to Lab. The Intent settings in the dialog are actually applied to the printer profile going in reverse to convert to Lab even though the dialog implies the Intent settings apply to the target. But when the source is a printer profile, they don't. It can be quite confusing/strange but that's the way Photoshop works.

So Photoshop doesn't need to know what the image was previously in or what conversion intent was applied.

When you convert with Photoshop using Perceptual you first go from the image colorspace to the ICC PCS which is sometimes called icclab. It's the same as CIELAB except that the a* and b* are limited to +- 128 so anything larger is clipped at that point. A great part of ProPhoto RGB gets clipped and even pure green in Adobe gets clipped as a* goes just beyond -128.

Once in PCSLAB, say from Adobe RGB, the ICC table BtoA0 gets used to convert to device RGB. That's whats get saved. When you convert back to Adobe RGB and also select Perceptual, the inversion table, AtoB0, gets used. The '0' in both indicates it's the Perceptual table. This turns device RGB into PCSLAB and from there it's transformed to Adobe RGB. The process of going to/from PCSLAB and Adobe RGB doesn't use Intent and is accurate except for the a*,b* clipping of course.

However, the AtoB0/BtoA0 tables really only compress/decompress a relatively short distance beyond the printer's gamut in spite of the ICC's desire. So if the original image has colors well outside the printer's gamut they will not be accurately recovered. I did some testing of this years ago and found things deteriorate quickly once the colors were around 10 dE beyond the printer's gamut. At 20 it was hopeless. So the ICC's aspirational goal of complete Perceptual invertability fails badly with synthetic images in ProPhoto RGB like Bill's Balls.
As for accuracy deteriorating: yes, each convert-to-profile will necessarily induce some accuracy loss. I cannot recall an ICC profile with more than a 33x33x33 matrix from which conversion interpolations are made. That said, in this circumstance I suspect that the cumulative error from those two conversions is probably more visually palatable than would be not getting the rendering intent of your choice.

But my all means, further enlightenment and explanation would be appreciated.
 
Last edited:
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
May not do what you expect. Look for the white paper: "Perceptual Rendering Intent Use Case Issues" on the color.org ICC website.

The latest V2 ICC profiles are subset compliant with V4. V4 compliant profiles require that a Perceptual transform from PCS to device that is then transformed from device back to PCS should reconstruct the original. From my testing this is valid for V2 profiles created by i1profiler but the accuracy deteriorates the more the original colors exceed the printer's gamut.
This is an interesting point you raised, and I'm really bumping up against the limits of my understanding, so I'm sorry is what follows is clueless. But:

If you have an image in Adobe RGB with some colors outside the gamut of the desired ICC printing profile, and in Photoshop you perform a 'convert to profile' from Adobe RGB to the printing profile using perceptual rendering intent, presumably if you then do another convert-to-profile back to Adobe RGB, the only way that any software or profile could know to do a 'reverse transform' would be that Photoshop itself stores a list of what it's done. I wouldn't think that the image data itself would contain a flag indicating 'I was converted from Adobe RGB to this printing profile' much less data on how much 'perceptual squeeze' was performed to fill all the source gamut into the target gamut. If I'm correct on these suppositions, then presumably at worst you convert from Adobe RGB to the printing profile using perceptual, export that as a 16-bit TIFF (now encoded in the printing profile), exit Photoshop, re-launch Photoshop, open the TIFF you just exported, and do a convert-to-profile to Adobe RGB (with the rendering intent for this second conversion probably irrelevant). At that point your image should be encoded in the standard Adobe RGB, but all of its colors should be within the printable gamut as defined by the ICC printing profile. If this is not correct, I fail to see why (which doesn't mean I'm right).
I found Photoshop's conversion dialogs clear when converting from a standard colorspace to the printer's RGB device space but confusing when converting from the printer's RGB device space to a standard colorspace. Intuitively, selecting conversion Intent would apply to the target, not the source. But that isn't actually the case when the source is a printer device space. The conversion intent selections actually only apply to the source or printer's device color space.

This can be more intuitive if the image starts off in Lab. Converting to printer space uses the Intent settings to apply the proper profile tables to the Lab values producing printer RGB values. When converting back to Lab, the source printer profile is selected and the target is set to Lab. The Intent settings in the dialog are actually applied to the printer profile going in reverse to convert to Lab even though the dialog implies the Intent settings apply to the target. But when the source is a printer profile, they don't. It can be quite confusing/strange but that's the way Photoshop works.

So Photoshop doesn't need to know what the image was previously in or what conversion intent was applied.

When you convert with Photoshop using Perceptual you first go from the image colorspace to the ICC PCS which is sometimes called icclab. It's the same as CIELAB except that the a* and b* are limited to +- 128 so anything larger is clipped at that point. A great part of ProPhoto RGB gets clipped and even pure green in Adobe gets clipped as a* goes just beyond -128.

Once in PCSLAB, say from Adobe RGB, the ICC table BtoA0 gets used to convert to device RGB. That's whats get saved. When you convert back to Adobe RGB and also select Perceptual, the inversion table, AtoB0, gets used. The '0' in both indicates it's the Perceptual table. This turns device RGB into PCSLAB and from there it's transformed to Adobe RGB. The process of going to/from PCSLAB and Adobe RGB doesn't use Intent and is accurate except for the a*,b* clipping of course.

However, the AtoB0/BtoA0 tables really only compress/decompress a relatively short distance beyond the printer's gamut in spite of the ICC's desire. So if the original image has colors well outside the printer's gamut they will not be accurately recovered. I did some testing of this years ago and found things deteriorate quickly once the colors were around 10 dE beyond the printer's gamut. At 20 it was hopeless. So the ICC's aspirational goal of complete Perceptual invertability fails badly with synthetic images in ProPhoto RGB like Bill's Balls.
I'm not confident that I've correctly interpreted what you posted but:

As a preliminary matter, it's my understanding that the ICC does not tightly define what perceptual rendering intent must do, so e.g. X-Rite has a lot of freedom how its software builds perceptual tables when creating ICC profiles. Some other company may well / probably does us a somewhat, maybe quite, different approach. What's your understanding on this?

But more centrally, it sounds like you're saying a perceptual conversion does not vary depending on to what degree or even whether some of the image colors are outside of the target (printable) gamut--and instead applies a fixed degree of squeeze (or maybe expansion). That differs from my understanding, and would be disappointing.
 
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
May not do what you expect. Look for the white paper: "Perceptual Rendering Intent Use Case Issues" on the color.org ICC website.

The latest V2 ICC profiles are subset compliant with V4. V4 compliant profiles require that a Perceptual transform from PCS to device that is then transformed from device back to PCS should reconstruct the original. From my testing this is valid for V2 profiles created by i1profiler but the accuracy deteriorates the more the original colors exceed the printer's gamut.
This is an interesting point you raised, and I'm really bumping up against the limits of my understanding, so I'm sorry is what follows is clueless. But:

If you have an image in Adobe RGB with some colors outside the gamut of the desired ICC printing profile, and in Photoshop you perform a 'convert to profile' from Adobe RGB to the printing profile using perceptual rendering intent, presumably if you then do another convert-to-profile back to Adobe RGB, the only way that any software or profile could know to do a 'reverse transform' would be that Photoshop itself stores a list of what it's done. I wouldn't think that the image data itself would contain a flag indicating 'I was converted from Adobe RGB to this printing profile' much less data on how much 'perceptual squeeze' was performed to fill all the source gamut into the target gamut. If I'm correct on these suppositions, then presumably at worst you convert from Adobe RGB to the printing profile using perceptual, export that as a 16-bit TIFF (now encoded in the printing profile), exit Photoshop, re-launch Photoshop, open the TIFF you just exported, and do a convert-to-profile to Adobe RGB (with the rendering intent for this second conversion probably irrelevant). At that point your image should be encoded in the standard Adobe RGB, but all of its colors should be within the printable gamut as defined by the ICC printing profile. If this is not correct, I fail to see why (which doesn't mean I'm right).
I found Photoshop's conversion dialogs clear when converting from a standard colorspace to the printer's RGB device space but confusing when converting from the printer's RGB device space to a standard colorspace. Intuitively, selecting conversion Intent would apply to the target, not the source. But that isn't actually the case when the source is a printer device space. The conversion intent selections actually only apply to the source or printer's device color space.

This can be more intuitive if the image starts off in Lab. Converting to printer space uses the Intent settings to apply the proper profile tables to the Lab values producing printer RGB values. When converting back to Lab, the source printer profile is selected and the target is set to Lab. The Intent settings in the dialog are actually applied to the printer profile going in reverse to convert to Lab even though the dialog implies the Intent settings apply to the target. But when the source is a printer profile, they don't. It can be quite confusing/strange but that's the way Photoshop works.

So Photoshop doesn't need to know what the image was previously in or what conversion intent was applied.

When you convert with Photoshop using Perceptual you first go from the image colorspace to the ICC PCS which is sometimes called icclab. It's the same as CIELAB except that the a* and b* are limited to +- 128 so anything larger is clipped at that point. A great part of ProPhoto RGB gets clipped and even pure green in Adobe gets clipped as a* goes just beyond -128.

Once in PCSLAB, say from Adobe RGB, the ICC table BtoA0 gets used to convert to device RGB. That's whats get saved. When you convert back to Adobe RGB and also select Perceptual, the inversion table, AtoB0, gets used. The '0' in both indicates it's the Perceptual table. This turns device RGB into PCSLAB and from there it's transformed to Adobe RGB. The process of going to/from PCSLAB and Adobe RGB doesn't use Intent and is accurate except for the a*,b* clipping of course.

However, the AtoB0/BtoA0 tables really only compress/decompress a relatively short distance beyond the printer's gamut in spite of the ICC's desire. So if the original image has colors well outside the printer's gamut they will not be accurately recovered. I did some testing of this years ago and found things deteriorate quickly once the colors were around 10 dE beyond the printer's gamut. At 20 it was hopeless. So the ICC's aspirational goal of complete Perceptual invertability fails badly with synthetic images in ProPhoto RGB like Bill's Balls.
I'm not confident that I've correctly interpreted what you posted but:

As a preliminary matter, it's my understanding that the ICC does not tightly define what perceptual rendering intent must do, so e.g. X-Rite has a lot of freedom how its software builds perceptual tables when creating ICC profiles. Some other company may well / probably does us a somewhat, maybe quite, different approach. What's your understanding on this?
You are correct. How Perceptual translates a PCSLAB color to a device is simply not defined. I've seen some that even increase saturation for colors near neutral prior to compressing them as the saturation approaches the printer's gamut limit.
But more centrally, it sounds like you're saying a perceptual conversion does not vary depending on to what degree or even whether some of the image colors are outside of the target (printable) gamut--and instead applies a fixed degree of squeeze (or maybe expansion). That differs from my understanding, and would be disappointing.
No, I'm not saying that. Rather that ICC encourages inversion of whatever Perceptual happens to produce in such a way that it reconstructs the original when inverted. However, in reality such inversion is very limited due to intrinsic precision of the both forward and reverse LUTs. This doesn't much constrain whatever the profile s/w creator decides looks good from a Perceptual conversion.

All of which is why I like to adjust colors inside Photoshop so they are in gamut and use Relative Colorimetric to print. More control over the print and it's more easily interchanged with profiles made by different profiling s/w. Colorimetric intents are well defined for colors that are in gamut.

However, profile software makers can, and do, have different algorithms for mapping out of gamut colors to the printer's gamut with Colorimetric intents. Some retain luminance and adjust the xy chromaticity to intersect the gamut. Others look for the closest, in a 3D sense, to the printer's gamut surface.
 
Last edited:
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
May not do what you expect. Look for the white paper: "Perceptual Rendering Intent Use Case Issues" on the color.org ICC website.

The latest V2 ICC profiles are subset compliant with V4. V4 compliant profiles require that a Perceptual transform from PCS to device that is then transformed from device back to PCS should reconstruct the original. From my testing this is valid for V2 profiles created by i1profiler but the accuracy deteriorates the more the original colors exceed the printer's gamut.
This is an interesting point you raised, and I'm really bumping up against the limits of my understanding, so I'm sorry is what follows is clueless. But:

If you have an image in Adobe RGB with some colors outside the gamut of the desired ICC printing profile, and in Photoshop you perform a 'convert to profile' from Adobe RGB to the printing profile using perceptual rendering intent, presumably if you then do another convert-to-profile back to Adobe RGB, the only way that any software or profile could know to do a 'reverse transform' would be that Photoshop itself stores a list of what it's done. I wouldn't think that the image data itself would contain a flag indicating 'I was converted from Adobe RGB to this printing profile' much less data on how much 'perceptual squeeze' was performed to fill all the source gamut into the target gamut. If I'm correct on these suppositions, then presumably at worst you convert from Adobe RGB to the printing profile using perceptual, export that as a 16-bit TIFF (now encoded in the printing profile), exit Photoshop, re-launch Photoshop, open the TIFF you just exported, and do a convert-to-profile to Adobe RGB (with the rendering intent for this second conversion probably irrelevant). At that point your image should be encoded in the standard Adobe RGB, but all of its colors should be within the printable gamut as defined by the ICC printing profile. If this is not correct, I fail to see why (which doesn't mean I'm right).
I found Photoshop's conversion dialogs clear when converting from a standard colorspace to the printer's RGB device space but confusing when converting from the printer's RGB device space to a standard colorspace. Intuitively, selecting conversion Intent would apply to the target, not the source. But that isn't actually the case when the source is a printer device space. The conversion intent selections actually only apply to the source or printer's device color space.

This can be more intuitive if the image starts off in Lab. Converting to printer space uses the Intent settings to apply the proper profile tables to the Lab values producing printer RGB values. When converting back to Lab, the source printer profile is selected and the target is set to Lab. The Intent settings in the dialog are actually applied to the printer profile going in reverse to convert to Lab even though the dialog implies the Intent settings apply to the target. But when the source is a printer profile, they don't. It can be quite confusing/strange but that's the way Photoshop works.

So Photoshop doesn't need to know what the image was previously in or what conversion intent was applied.

When you convert with Photoshop using Perceptual you first go from the image colorspace to the ICC PCS which is sometimes called icclab. It's the same as CIELAB except that the a* and b* are limited to +- 128 so anything larger is clipped at that point. A great part of ProPhoto RGB gets clipped and even pure green in Adobe gets clipped as a* goes just beyond -128.

Once in PCSLAB, say from Adobe RGB, the ICC table BtoA0 gets used to convert to device RGB. That's whats get saved. When you convert back to Adobe RGB and also select Perceptual, the inversion table, AtoB0, gets used. The '0' in both indicates it's the Perceptual table. This turns device RGB into PCSLAB and from there it's transformed to Adobe RGB. The process of going to/from PCSLAB and Adobe RGB doesn't use Intent and is accurate except for the a*,b* clipping of course.

However, the AtoB0/BtoA0 tables really only compress/decompress a relatively short distance beyond the printer's gamut in spite of the ICC's desire. So if the original image has colors well outside the printer's gamut they will not be accurately recovered. I did some testing of this years ago and found things deteriorate quickly once the colors were around 10 dE beyond the printer's gamut. At 20 it was hopeless. So the ICC's aspirational goal of complete Perceptual invertability fails badly with synthetic images in ProPhoto RGB like Bill's Balls.
I ran a quick test, and it indicates that, even with v. 4 ICC profiles, my original suggestion to the OP (at https://www.dpreview.com/forums/post/66214493) should work. I performed the test in Affinity Photo 1.10.5, and the results are presented in ProPhoto RGB and an ICC printing profile, so this will probably not look right if the viewer's browser is not color managed. First I selected what I believed to be a version 4 ICC profile--Canson Platine in the Canon Pro-100 (cifa_pixmapro100_platine310.icc)--and used ICC View to confirm that it is indeed a v. 4 profile (if you try to upload it, it says failed because v. 4 profiles are unsupported). I took Andrew "Digital Dog" Rodney's gamut test file, which he makes available (at http://www.digitaldog.net/tips-and-tricks.html) for downloading as a 16-bit TIFF in ProPhoto RGB, and exported it as a maximum-quality JPEG, still in ProPhoto RGB:

7c4bbd4948054e3cb28fd2c160abc8c2.jpg

Then I performed a Document -> Convert Format / ICC Profile... and converted the gamut test from ProPhoto RGB to the Canson printing profile using perceptual rendering intent and black point compensation. I exported that as a maximum-quality JPEG encoded in the Canson printing profile:

d9244ec198684a20bd3c3a254c0776e5.jpg

Then I performed a second convert to profile, converting the image back from the Canson printing profile to ProPhoto RGB, and exported that as a maximum-quality JPEG in ProPhoto RGB

9f3ac229f00e41469cbdf9d83894227c.jpg

As you can see, it did not restore the saturation.

I'm not saying there are no differences between the second and third JPEGs; there appear to be relatively subtle differences. As previously discussed, the conversion process induces some errors, usually modest. Maybe other factors are having an effect.

But if you have to submit a file for printing in a color working space like sRGB, Adobe RGB, or ProPhoto RGB, and you want to control the rendering intent used for the conversion of your image to the printing profile, I still think that you can do a convert-to-profile to the printing profile--using the rendering intent of your choice and black point compensation or not, again your choice--and a second convert-to-profile back to the color working space, that should prevent further compression or clipping in the printing service's process of printing.
 
Despite all the pseudo intellectual mumbo jumbo from people that post for a hobby, what about the obvious solution .....

If the lab you were going to use wont entertain your request to render with perceptual intent , find a lab that will . Best rule in science has always been KISS !
 
I can't promise this will work, but if in Photoshop you do a convert-to-profile from Adobe RGB to the lab's ICC printing profile using perceptual rendering intent, and then convert back to Adobe RGB, that may squeeze the colors like you want in the first operation while keeping them all within the printable gamut in the second.
May not do what you expect. Look for the white paper: "Perceptual Rendering Intent Use Case Issues" on the color.org ICC website.

The latest V2 ICC profiles are subset compliant with V4. V4 compliant profiles require that a Perceptual transform from PCS to device that is then transformed from device back to PCS should reconstruct the original. From my testing this is valid for V2 profiles created by i1profiler but the accuracy deteriorates the more the original colors exceed the printer's gamut.
This is an interesting point you raised, and I'm really bumping up against the limits of my understanding, so I'm sorry is what follows is clueless. But:

If you have an image in Adobe RGB with some colors outside the gamut of the desired ICC printing profile, and in Photoshop you perform a 'convert to profile' from Adobe RGB to the printing profile using perceptual rendering intent, presumably if you then do another convert-to-profile back to Adobe RGB, the only way that any software or profile could know to do a 'reverse transform' would be that Photoshop itself stores a list of what it's done. I wouldn't think that the image data itself would contain a flag indicating 'I was converted from Adobe RGB to this printing profile' much less data on how much 'perceptual squeeze' was performed to fill all the source gamut into the target gamut. If I'm correct on these suppositions, then presumably at worst you convert from Adobe RGB to the printing profile using perceptual, export that as a 16-bit TIFF (now encoded in the printing profile), exit Photoshop, re-launch Photoshop, open the TIFF you just exported, and do a convert-to-profile to Adobe RGB (with the rendering intent for this second conversion probably irrelevant). At that point your image should be encoded in the standard Adobe RGB, but all of its colors should be within the printable gamut as defined by the ICC printing profile. If this is not correct, I fail to see why (which doesn't mean I'm right).
I found Photoshop's conversion dialogs clear when converting from a standard colorspace to the printer's RGB device space but confusing when converting from the printer's RGB device space to a standard colorspace. Intuitively, selecting conversion Intent would apply to the target, not the source. But that isn't actually the case when the source is a printer device space. The conversion intent selections actually only apply to the source or printer's device color space.

This can be more intuitive if the image starts off in Lab. Converting to printer space uses the Intent settings to apply the proper profile tables to the Lab values producing printer RGB values. When converting back to Lab, the source printer profile is selected and the target is set to Lab. The Intent settings in the dialog are actually applied to the printer profile going in reverse to convert to Lab even though the dialog implies the Intent settings apply to the target. But when the source is a printer profile, they don't. It can be quite confusing/strange but that's the way Photoshop works.

So Photoshop doesn't need to know what the image was previously in or what conversion intent was applied.

When you convert with Photoshop using Perceptual you first go from the image colorspace to the ICC PCS which is sometimes called icclab. It's the same as CIELAB except that the a* and b* are limited to +- 128 so anything larger is clipped at that point. A great part of ProPhoto RGB gets clipped and even pure green in Adobe gets clipped as a* goes just beyond -128.

Once in PCSLAB, say from Adobe RGB, the ICC table BtoA0 gets used to convert to device RGB. That's whats get saved. When you convert back to Adobe RGB and also select Perceptual, the inversion table, AtoB0, gets used. The '0' in both indicates it's the Perceptual table. This turns device RGB into PCSLAB and from there it's transformed to Adobe RGB. The process of going to/from PCSLAB and Adobe RGB doesn't use Intent and is accurate except for the a*,b* clipping of course.

However, the AtoB0/BtoA0 tables really only compress/decompress a relatively short distance beyond the printer's gamut in spite of the ICC's desire. So if the original image has colors well outside the printer's gamut they will not be accurately recovered. I did some testing of this years ago and found things deteriorate quickly once the colors were around 10 dE beyond the printer's gamut. At 20 it was hopeless. So the ICC's aspirational goal of complete Perceptual invertability fails badly with synthetic images in ProPhoto RGB like Bill's Balls.
I ran a quick test, and it indicates that, even with v. 4 ICC profiles, my original suggestion to the OP (at https://www.dpreview.com/forums/post/66214493) should work. I performed the test in Affinity Photo 1.10.5, and the results are presented in ProPhoto RGB and an ICC printing profile, so this will probably not look right if the viewer's browser is not color managed. First I selected what I believed to be a version 4 ICC profile--Canson Platine in the Canon Pro-100 (cifa_pixmapro100_platine310.icc)--and used ICC View to confirm that it is indeed a v. 4 profile (if you try to upload it, it says failed because v. 4 profiles are unsupported). I took Andrew "Digital Dog" Rodney's gamut test file, which he makes available (at http://www.digitaldog.net/tips-and-tricks.html) for downloading as a 16-bit TIFF in ProPhoto RGB, and exported it as a maximum-quality JPEG, still in ProPhoto RGB:

7c4bbd4948054e3cb28fd2c160abc8c2.jpg

Then I performed a Document -> Convert Format / ICC Profile... and converted the gamut test from ProPhoto RGB to the Canson printing profile using perceptual rendering intent and black point compensation. I exported that as a maximum-quality JPEG encoded in the Canson printing profile:

d9244ec198684a20bd3c3a254c0776e5.jpg

Then I performed a second convert to profile, converting the image back from the Canson printing profile to ProPhoto RGB, and exported that as a maximum-quality JPEG in ProPhoto RGB

9f3ac229f00e41469cbdf9d83894227c.jpg

As you can see, it did not restore the saturation.

I'm not saying there are no differences between the second and third JPEGs; there appear to be relatively subtle differences. As previously discussed, the conversion process induces some errors, usually modest. Maybe other factors are having an effect.

But if you have to submit a file for printing in a color working space like sRGB, Adobe RGB, or ProPhoto RGB, and you want to control the rendering intent used for the conversion of your image to the printing profile, I still think that you can do a convert-to-profile to the printing profile--using the rendering intent of your choice and black point compensation or not, again your choice--and a second convert-to-profile back to the color working space, that should prevent further compression or clipping in the printing service's process of printing.
Well, I thank you for your interest and continued discussion and experimentation. This paper I was basing Perceptual inverse conversions on appears not to have been actually implimented in the real world! At least in the profiles I've examined today.


Further, I've found little evidence that gamut compression even occurs with Perceptual intent on several profiles I've examined but rather that colors that are out-of-gamut are mapped differently than Relative intent. And, in some profiles, Luminance is bumped up significantly. Now I rarely use Perceptual except to print snapshots but bring any out-of-gamut colors in-gamut soft proofing with Relative.

This is interesting. I'm in the process of gathering more info. Particularly with i1Profiler and the V2, V4, and V4Max options as well as the impact of sliders that only affect Perceptual. It suspect gamut compression may show up with the "colorful" slider not at defaults. But without any gamut compression there can be no mathematical way to invert Perceptual. Most curious.
 
When you convert with Photoshop using Perceptual you first go from the image colorspace to the ICC PCS which is sometimes called icclab. It's the same as CIELAB except that the a* and b* are limited to +- 128 so anything larger is clipped at that point. A great part of ProPhoto RGB gets clipped and even pure green in Adobe gets clipped as a* goes just beyond -128.
I have been trying to wrap my head around this statement. Do I understand this correctly, you are saying that during the conversion actually colors are clipped not due to limitation of the target color space, but due to limitations of the ICC PCS used for conversion?

To be honest, it seems kind of hard to believe, that anyone would design such a limitation into the ICC standard.

In what situation would one encounter such clipping?

I tried setting up a Photoshop image in Adobe RGB, with the pure green you mention as only color. When I convert it to ProPhoto RGB using Perceptual or Relative intends I do not see any clipping. The pure green from Adobe RGB (0/255/0) visually stays exactly the same in ProPhoto RGB (76/230/60) and becomes near-pure green when converting it back to Adobe RGB (2/255/0). So it seems here no clipping is taking place.
 
When you convert with Photoshop using Perceptual you first go from the image colorspace to the ICC PCS which is sometimes called icclab. It's the same as CIELAB except that the a* and b* are limited to +- 128 so anything larger is clipped at that point. A great part of ProPhoto RGB gets clipped and even pure green in Adobe gets clipped as a* goes just beyond -128.
I have been trying to wrap my head around this statement. Do I understand this correctly, you are saying that during the conversion actually colors are clipped not due to limitation of the target color space, but due to limitations of the ICC PCS used for conversion?

To be honest, it seems kind of hard to believe, that anyone would design such a limitation into the ICC standard.

In what situation would one encounter such clipping?

I tried setting up a Photoshop image in Adobe RGB, with the pure green you mention as only color. When I convert it to ProPhoto RGB using Perceptual or Relative intends I do not see any clipping. The pure green from Adobe RGB (0/255/0) visually stays exactly the same in ProPhoto RGB (76/230/60) and becomes near-pure green when converting it back to Adobe RGB (2/255/0). So it seems here no clipping is taking place.
Look at the Adobe RGB (0,255,0) in Photoshop and read the a* value. It will read -128. It's actually -129. It shows as -128 because of the ICC PCSLAB limits which clip at +/-128. However, conversions between RGB colorspaces are done through PCSXYZ and that doesn't clip. At least not in the same way*. It's only PCSLAB where a* and b* are limited. This are used by the large majority of printer profiles. The PCSLAB limits cover all real life printable colors.

If you look at the ProPhoto RGB (0,255,0) it's a* value will also read out as -128 even though it's green is actually an imaginary, super saturated color. It's a* is actually -187.

Clipping that occurs in RGB colorspaces differ from PCSLAB. After conversions are done the RGB values, which can then contain values over 255 or less than 0, are clipped to 0 and 255. Other values are unchanged. It's this clipping that causes ProPhoto pure blues to shift luminance from black L* < 1 to visible L* 25 to 30 when conversions are done to monitor's colorspace.
 
Look at the Adobe RGB (0,255,0) in Photoshop and read the a* value. It will read -128. It's actually -129. [...] If you look at the ProPhoto RGB (0,255,0) it's a* value will also read out as -128 even though it's green is actually an imaginary, super saturated color. It's a* is actually -187.
Hmmm, if you say "look at" you mean look at a file in Adobe RGB or ProPhoto RGB, set a color to fully saturated green (R=0,G=255,B=0) and then check in the color picker what value is displayed for a?

I think then we might be mixing color models and color spaces here. In my understanding, the different color models in the color picker (HSB, RGB, Lab) are just different ways to put colors in numerical values, but all relate to the color space the file is in, e.g. ProPhoto RGB. The fully satured green (R=0, G=255, B=0) translates into L=88, a=-128 and b=127 in the color picker, which I believe is the same color, just in a different color model.

So, there would not be any clipping there, because both the RGB value and the Lab value refer to the same color space, ProPhoto RGB.
It shows as -128 because of the ICC PCSLAB limits which clip at +/-128. However, conversions between RGB colorspaces are done through PCSXYZ and that doesn't clip. At least not in the same way*. It's only PCSLAB where a* and b* are limited. This are used by the large majority of printer profiles. The PCSLAB limits cover all real life printable colors.
I think I can follow you on that one. So, by and large in practice the limitation does not really matter, because PCSLAB is only used for profiles where the target color space is smaller than PCSLAB?

Is PCSLAB the same as the "Lab Color" color space that is available in Photoshop? Here it seems I do get some clipping when converting. Fully saturated green (0, 255, 0) in an ProPhoto RGB file becomes a less saturated green (90,246,26) when converting it to Lab Color and back to ProPhoto RGB, using the Relative intent.

--
My portfolio site & blog: http://www.the-ninth.com
 
Last edited:
Look at the Adobe RGB (0,255,0) in Photoshop and read the a* value. It will read -128. It's actually -129. [...] If you look at the ProPhoto RGB (0,255,0) it's a* value will also read out as -128 even though it's green is actually an imaginary, super saturated color. It's a* is actually -187.
Hmmm, if you say "look at" you mean look at a file in Adobe RGB or ProPhoto RGB, set a color to fully saturated green (R=0,G=255,B=0) and then check in the color picker what value is displayed for a?
Right. the 256 values in 8 bit Lab, for a* and b*, are mapped to -128 to 127 in steps of 1. Values, that after conversion, are less than -128 or greater than 127 are clipped to those limits.
I think then we might be mixing color models and color spaces here. In my understanding, the different color models in the color picker (HSB, RGB, Lab) are just different ways to put colors in numerical values, but all relate to the color space the file is in, e.g. ProPhoto RGB. The fully satured green (R=0, G=255, B=0) translates into L=88, a=-128 and b=127 in the color picker, which I believe is the same color, just in a different color model.
Not the same color. Photoshop clips Lab colors, like ICC's PCSLAB. The same limits also apply when you save a tif file in Lab colorspace. Your experiment at the end of this post shows this as when converting back to ProPhoto RGB you have a green sufficiently desaturated. The clipping occurs when converting to Lab. When converting back from Lab to ProPhoto there is no additional clipping.
So, there would not be any clipping there, because both the RGB value and the Lab value refer to the same color space, ProPhoto RGB.
It shows as -128 because of the ICC PCSLAB limits which clip at +/-128. However, conversions between RGB colorspaces are done through PCSXYZ and that doesn't clip. At least not in the same way*. It's only PCSLAB where a* and b* are limited. This are used by the large majority of printer profiles. The PCSLAB limits cover all real life printable colors.
I think I can follow you on that one. So, by and large in practice the limitation does not really matter, because PCSLAB is only used for profiles where the target color space is smaller than PCSLAB?

Is PCSLAB the same as the "Lab Color" color space that is available in Photoshop? Here it seems I do get some clipping when converting. Fully saturated green (0, 255, 0) in an ProPhoto RGB file becomes a less saturated green (90,246,26) when converting it to Lab Color and back to ProPhoto RGB, using the Relative intent.
PCSLAB has the same contraints as Photoshop's Lab and tif file format Lab. Just a decision to limit a* and b* to nicely fit in 8 bit values and those limits carried on to 16 bit.
 
I think then we might be mixing color models and color spaces here. In my understanding, the different color models in the color picker (HSB, RGB, Lab) are just different ways to put colors in numerical values, but all relate to the color space the file is in, e.g. ProPhoto RGB. The fully satured green (R=0, G=255, B=0) translates into L=88, a=-128 and b=127 in the color picker, which I believe is the same color, just in a different color model.
Not the same color. Photoshop clips Lab colors, like ICC's PCSLAB. The same limits also apply when you save a tif file in Lab colorspace. Your experiment at the end of this post shows this as when converting back to ProPhoto RGB you have a green sufficiently desaturated. The clipping occurs when converting to Lab. When converting back from Lab to ProPhoto there is no additional clipping.
Yes, I agree that once you convert to the Lab color space, clipping occurs.

But as long as you stay in the ProPhoto RGB color space, any values displayed or entered in the color picker's Lab section do refer to the ProPhoto RGB color space, not the Lab color space. And the Lab values of L=88, a=-128, b=127 do indeed represent a fully saturated ProPhoto RGB green, equaling to R=0, G=255, B=0. So it is the same color and the Lab values showing a=-128 is not indicating any clipping.
 
I think then we might be mixing color models and color spaces here. In my understanding, the different color models in the color picker (HSB, RGB, Lab) are just different ways to put colors in numerical values, but all relate to the color space the file is in, e.g. ProPhoto RGB. The fully satured green (R=0, G=255, B=0) translates into L=88, a=-128 and b=127 in the color picker, which I believe is the same color, just in a different color model.
Not the same color. Photoshop clips Lab colors, like ICC's PCSLAB. The same limits also apply when you save a tif file in Lab colorspace. Your experiment at the end of this post shows this as when converting back to ProPhoto RGB you have a green sufficiently desaturated. The clipping occurs when converting to Lab. When converting back from Lab to ProPhoto there is no additional clipping.
Yes, I agree that once you convert to the Lab color space, clipping occurs.

But as long as you stay in the ProPhoto RGB color space, any values displayed or entered in the color picker's Lab section do refer to the ProPhoto RGB color space, not the Lab color space.
Sort of. While you are in ProPhoto RGB space, the actual colors are correctly represented but the display of Lab is not. You even pointed out an experiment where you converted to AdobeRGB and the a* remained at -128 yet, when converting back to ProPhoto RGB, the values indicated a significant desaturation with the "R" value increasing from 0 to 90. That's prima facie evidence that the a* value being displayed is clipped.
And the Lab values of L=88, a=-128, b=127 do indeed represent a fully saturated ProPhoto RGB green, equaling to R=0, G=255, B=0. So it is the same color and the Lab values showing a=-128 is not indicating any clipping.
You should check out Bruce Lindbloom's site which has a calculator that converts from a wide variety of RGB spaces to other RGB spaces, Lab, XYZ, xyY.

CIE Color Calculator (brucelindbloom.com)

If you select the calculator and enter RGB (0,255,0) and ProPhoto it will show a Lab value of 88, -187, 151. You can check Photoshop by entering the de-saturated RGB values you got from Photoshop converting to Adobe and back and see the a* drop to -128.
 
Despite all the pseudo intellectual mumbo jumbo from people that post for a hobby, what about the obvious solution .....
I accept that the discussing has gone beyond my level of knowledge. I reject the implication that whenever someone more knowledgeable than me says something I can't understand that they are engaging in "pseudo intellectual mumbo jumbo"; it could simply be that I know less than I like to think I do.
If the lab you were going to use wont entertain your request to render with perceptual intent , find a lab that will . Best rule in science has always been KISS !
That is indeed the obvious solution. In fact it's so obvious that I've been doing exactly that, but so far without success. Can you suggest one? That would be a helpful post.
 
Last edited:
The reason for my rejection of this sort of progression/regression is that after over 35 years as a professional magazine and corporate photographer , all I see are pseudo imagers debating the ar$e off minute and frankly silly points when the fundamentals of making an interesting and artistic image elude them.

Frankly if as much effort was directed towards the real importance of their image making the final result would be far more interesting. I guess it is almost akin to if you cant make a picture with it , measure it !

As for suggesting an alternative, sorry I am in the UK and have no idea of Canadian suppliers. I also print all my own images just so I can control such issues.
 
Last edited:
The reason for my rejection of this sort of progression/regression is that after over 35 years as a professional magazine and corporate photographer , all I see are pseudo imagers debating the ar$e off minute and frankly silly points when the fundamentals of making an interesting and artistic image elude them.

Frankly if as much effort was directed towards the real importance of their image making the final result would be far more interesting. I guess it is almost akin to if you cant make a picture with it , measure it !
Point taken.
As for suggesting an alternative, sorry I am in the UK and have no idea of Canadian suppliers. I also print all my own images just so I can control such issues.
I don't print enough of my own images to make that worthwhile. I will keep looking for a lab in Canada or the US.
 

Keyboard shortcuts

Back
Top