Pages: [1]   Go Down

Author Topic: For those interested in how profiles map OOG colors, here's Epson 9800 PGPP  (Read 3316 times)

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197

At L=50

This shows the gamut (inside area) and the way hues are shifted when OOG colors are rendered when colors outside the printer's gamut are mapped to printable colors.

The lines around the gamut area are in steps of 10 dE from the gamut boundary and steps of 2 dE when under 10 dE.  The lines streaming out from the gamut boundary are hue shifts that result from the profile software searching for the closest gamut surface point. The lines that are straighter and go without curving from the a,b=0 center point are constant hue. The more curved the lines are the more the hue shift. L* is also shifted, up or down, making the rendered colors lighter or darker and is not shown. This map is for Abs Colorimetric but Relative Colorimetric is quite similar as they both use the same LUTs with the media white point shifted from paper white to L=100, a perfect white.
Logged

JRSmit

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 922
    • Jan R. Smit Fine Art Printing Specialist

How did you create this map?
Logged
Fine art photography: janrsmit.com
Fine Art Printing Specialist: www.fineartprintingspecialist.nl


Jan R. Smit

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197

How did you create this map?

Matlab.

I was looking for a way to show hue shifts when processing images that had some colors that were OOG. I had noticed some shifts in the reddish oranges and wanted to see how profiling software handled colors that weren't printable. They map them to the gamut boundary. The saturation clips there as expected but I wanted to get a sense of what colors produced hue shifts as well.  I'm also interested in luminance shifts but haven't come up with a good way to show that. However, luminance shifts tend to be the largest where the dE iso-lines group tightly.

Basically, the lines are actual hue printed (atan2(a,b)) when a constant hue while requested saturation is increased.
Logged

GWGill

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 608
  • Author of ArgyllCMS & ArgyllPRO ColorMeter
    • ArgyllCMS

You don't say which profile this is (i.e. Epson ? X-Rite ? ArgyllCMS ?, etc.)
Quote
This shows the gamut (inside area) and the way hues are shifted when OOG colors are rendered when colors outside the printer's gamut are mapped to printable colors.
You can't judge hue shifts unless you plot in a hue linear space. L*a*b* is not such a space.

To fix this you can either hue linearize the L*a*b* space (see Bruce Lindbloom Uniform Perceptual Lab),
or use a more perceptually linear space such as CIECAM02 or IPT for display.
« Last Edit: November 17, 2016, 09:30:31 pm by GWGill »
Logged

Wayne Fox

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 4237
    • waynefox.com

Wouldn’t the rendering intent affect this?  Which rendering intent is this representative of?
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197

Rendering Intent is Abs. Col.
Profile is Epson's canned Epson 9800 for "Pro9800 7800 PGPP" read as Epson Premium Glossy Photo Paper.

It's a pretty good profile except at low L values where the profile is incorrectly made as they apply BPC to their AtoB1 and BtoA1 lut tables. This has little impact at L=50 though. The plots are very similar to Rel. Col. Intent at L=52. The same tables are used except that the values are scaled to the paper's white point instead of exact colors. Normally, gamuts are measured using Abs. Col. intent.

The black lines have a hue in steps of 10 degrees from 0 to 350. The position at each point on the black lines represents the actual hue (not saturation) of the printed colors when the requested saturation is as shown on the a*,b* location. The printed saturation is, of course, on the gamut boundary.

For instance, at the first 10 degree line the farthest point on the right is a requested color of Lab=(50,125,22) but the actual printed color is Lab=(48,79,10) which is an angle between 7 and 8 degrees.

Similarly, looking at the 80 degree hue line, the first curved line to the right of the 90 degree top, straight line, we see the outermost point is at ab=(39,121)which has a hue angle of 72 degrees. The actual requested color is Lab(50,22,125) with a hue angle of 80 degrees.

The way to look at what the black lines means is that the printed hue is the angle formed by a* and b* position on the black line at the requested saturation as given by the a* and b*.  The actual saturation printed is on the gamut edge which in on the inner most magenta line.

The hue angle in degrees is:   atan2(b*,a*)*180/pi


Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197

You don't say which profile this is (i.e. Epson ? X-Rite ? ArgyllCMS ?, etc.)You can't judge hue shifts unless you plot in a hue linear space. L*a*b* is not such a space.

To fix this you can either hue linearize the L*a*b* space (see Bruce Lindbloom Uniform Perceptual Lab),
or use a more perceptually linear space such as CIECAM02 or IPT for display.

The hue shifts shown are not the perceptual ones that Bruce demonstrates. They are actual changes in L*a*b* hue or the CIE LCh where L is the same and C is sqrt (a^2+b^2) and "h" is the hue angle or atan(b/a).

Also, and this is a critical point, the hue shifts of OOG colors occur while the color's saturation remains constant. The printer is constrained to its gamut. Thus, this is an actual hue shift that occurs at nearly constant saturation on the gamut boundary as the requested, unachievable saturation, is increased.

Perhaps surprisingly, the printer hue shifts in the blue/magenta region from OOG colors are amongst the smallest ones.
« Last Edit: November 17, 2016, 10:38:07 pm by Doug Gray »
Logged

GWGill

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 608
  • Author of ArgyllCMS & ArgyllPRO ColorMeter
    • ArgyllCMS

Thus, this is an actual hue shift that occurs at nearly constant saturation on the gamut boundary as the requested, unachievable saturation, is increased.

I'm not sure what you mean by that. It's not an "actual hue shift" if there were no resulting perceptual change in hue.
It is an actual L*C*h* hue shift, which is not necessarily the same thing.
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197

I'm not sure what you mean by that. It's not an "actual hue shift" if there were no resulting perceptual change in hue.
It is an actual L*C*h* hue shift, which is not necessarily the same thing.

I am referring to measured hue shifts or change in the angle of the (a*, b*) vector.

Here is an example of hue shifts in the blue/purple region at a requested L=40. I picked this because the extreme colors are within the sRGB gamut but the printer is capable of only about half of the gradient. You can see the hue shift from the midpoint to the right hand side in gradient #1. It is especially noticeable in comparison to gradient #2 which has constant hue and increased saturation. The hue angle for both gradients is 310 degrees in gamut on the left side but the printed hue drops from 310 to 305 degrees on the printed gradient.


Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197

Up to now I've only looked at the way hues shift when attempting to print OOG colors in Abs. Col. I've now been looking at the differences between Perceptual, Saturation, and Rel Col.

In the process one of my custom I1Profiler profiles demonstrated gross hue shifts along the blue gradient just outside of the Adobe RGB but within ProPhoto. Further, they were "real" colors, not imaginary which ProPhoto can have. In particular, a gradient from Lab(50,0,0) to Lab(50,0,-100) flat out fails at around Lab(50,0,-80) in perceptual by printing a brownish green! But it does not do this in any of the other intents. Extremely peculiar behavior that seems specific to that particular profile. I have no idea what causes it. At first I thought it was a bug in the program I'm using to plot the hue shifts but it is actually in the profile and prints that way when using it. It's some sort of bug in I1Profiler. I'm going to start a new thread on it in case someone has seen something similar.
Logged
Pages: [1]   Go Up