Pages: [1]   Go Down

Author Topic: Optimizing i1Profiler RGB patch layout  (Read 1365 times)

Ethan Hansen

  • Jr. Member
  • **
  • Offline Offline
  • Posts: 71
    • Dry Creek Photo
Optimizing i1Profiler RGB patch layout
« on: July 19, 2017, 06:33:51 PM »

I have received a number of emails regarding how to obtain the best RGB profiles from i1Profiler. By best, I mean the most visually accurate and pleasing and, definitely secondarily, the most accurate as determined by measurements of profiled prints. I'll piece together the emails in this post.

TL;DR: Check the table below for optimum patch counts.

Some years ago we did a thorough study of i1Profiler's performance both with auto-generated targets and hand constructed ones. Over the past two weeks I spot-checked the previous results with the latest version of i1Profiler (1.7.1). The results matched what we saw before. Our tests involved building a series of profiles from targets of different sizes, making prints using the profiles and having several pairs of eyes attached to folks whose income is generated from those same eyeballs judge which prints best matched the original on screen and was visually appealing (e.g. lack of color artifacts, etc.). We then measured several hundred color patches on the border of the prints to determine mathematical accuracy as well. Prints were made on HP and Epson inkjets, Fuji Frontier wet lab, and Fuji Dry lab printers.

What we saw matched the standard wisdom for i1Profiler usage: maximizing the number of near-neutral patches generated profiles with more accurate and smooth neutral performance. I1Profiler creates two basic sets of patches. The main one is a cube of RGB values evenly distributed 0 and 255. There is also a variable number of near neutral red, green, and blue patches close to the neutral axis in the shadows and further away in highlights. Finally, there are two shadow patches each for red, green, and blue. The first figure below shows the entire patch set while the second focuses on the near neutrals.
 

Looking at the heritage of i1Profiler, this behavior makes sense. The RGB profiles themselves are close to those created by MonacoProfiler which only supported a few targets, all containing equal numbers of R, G, and B steps. The GMB acquisition brought in ProfileMaker Pro's support for arbitrary targets. I1Profiler builds profiles from any target you choose, but if only the base RGB cube is used, neutral accuracy and smoothness suffer.

The table below shows not only the patch counts that maximize the count of near neutrals but also which combinations create better performing profiles than others. Whether it is a legacy from MonacoProfiler's preferences or not, I can't say, but we consistently saw smoother and more accurate color rendition when the number of red, green, and blue steps were equal. Depending on the patch count, i1Profiler will increase the number of green steps by one or both the green and blue step count by one.

All things being equal, more patches improves profile quality. That said, the subjective and measured profile quality was usually superior for a profile made with an equal number of R, G, and B steps than one made with one more green step than red and blue. For example, we consistently saw better performance for a max-neutral profile having 13 R, G, and B steps (2371 patches) than one made with 13 R and B steps but 14 Green steps (2553 patches).

The table below shows the i1Profiler RGB target patch counts that maximize the number of near-neutral patches. You will obtain improved profile performance by choosing one of these values or, depending on the limitations of your paper size, a target with at most 6 fewer near neutrals. Patch counts that use equal numbers of red, green, and blue steps appear in bold. Overall, these will be yuor best, most consistent options.

PatchesNear-NeutralRed StepsGreen StepsBlue StepsRGB Cube
39748777343
45355787392
51763788448
58163888512
65371898576
73480899648
81580999729
905899109810
10059991010900
1105991010101000
12151091011101100
13361201011111210
14571201111111331
15891311112111452
17331431112121584
18771431212121728
20331551213121872
22021681213132028
23711681313132197
25531811314132366
27491951314142548
29451951414142744
31552091415142940
33802241415153150
36052241515153375
38452391516153600
41012551516163840
43572551616164096

A final note for anyone curious about i1Profiler's handling of RGB values. If you save a target as a CGATS file, you will see that i1Profiler records fractional RGB values. Each value has two digits after the decimal point; i.e. they are 16-bit values. Save a target in the default pXf format, however, and everything is truncated to 8-bits. Values are not even rounded. Instead i1Profiler simply drops anything after the decimal - the floor() function - and saves the result. These values are what the generated profiling target uses. This means the RGB values may be up to 1 RGB point off the optimum. In the real world, we could not see any visible or measureable difference in the resulting profiles.

This behavior may have contributed to some of the wilder claims some years back about i1Profiler and 16-bit targets. At the time I tried verifying whether i1Profiler actually made use of 16-bit values. From all that I could see, i1Profiler performed truncation to the next lowest whole 8-bit value. I would have taken the 16-bit claims more seriously had not their greatest proponent been using a target that, although the color space was indeed 16-bit, the actual color values were located exactly on 8-bit values.

Mark D Segal

  • Contributor
  • Sr. Member
  • *
  • Offline Offline
  • Posts: 10104
    • http://www.markdsegal.com
Re: Optimizing i1Profiler RGB patch layout
« Reply #1 on: July 19, 2017, 08:02:00 PM »

Hi Ethan,

Congrats - this stuff is tedious, tiresome work, but the only way to drill down to "the truth", partly because X-Rite has been so deficient in providing documentation for the use of its software and there is a dearth of in-depth third-party literature on many of these kind of operational matters.

I would be interested in reading some detail, if you feel OK providing it, about the methodology for the quantitative accuracy testing.

As well, I would like to get a better appreciation of what happens as the two key dimensions you tested for changes, because there is a lower limit to the size of differences from one state to the next below which neither the numbers nor the appearance differences are apparent, or matter much. To add clarity to what I am getting at here, for example: (1) Is there a sea-change of profile accuracy or visual effect if you compare 815 patches with 1877 patches (matched RGB but large difference of patch count; (2) Is there a noticeable change of profile accuracy or visual effect if you compare 1877 patches with 2033 patches (small change in patch count, but accompanied by one more G than either R or B)? (3) Would there be much payoff progressing from 2371 patches into the 3~4000 ranges, (by which time one should have an iSiS rather than a hand-held spectro to read them)? From such testing work I was party to a number of years ago, there was a point in the patch count (I forget the exact number but it was definitely less than 2000) beyond which differences of outcomes (smoothness of gradients, apparent accuracy, etc.) were really hard to detect.
Logged
Mark D Segal (formerly MarkDS)
Author: "Scanning Workflows with SilverFast 8....." http://www.luminous-landscape.com/reviews/film/scanning_workflows_with_silverfast_8.shtml

GWGill

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 381
  • Author of ArgyllCMS & ArgyllPRO ColorMeter
    • ArgyllCMS
Re: Optimizing i1Profiler RGB patch layout
« Reply #2 on: July 19, 2017, 09:59:27 PM »

TL;DR: Check the table below for optimum patch counts.
Regular arrays are perhaps the least efficient means of exploring a devices behavior. Using test patch distributions that more efficiently fill the space can noticeably improve profile accuracy for a given patch budget.

See here for an example.
Logged

Ethan Hansen

  • Jr. Member
  • **
  • Offline Offline
  • Posts: 71
    • Dry Creek Photo
Re: Optimizing i1Profiler RGB patch layout
« Reply #3 on: July 20, 2017, 01:12:56 AM »

Congrats - this stuff is tedious, tiresome work, but the only way to drill down to "the truth", partly because X-Rite has been so deficient in providing documentation for the use of its software and there is a dearth of in-depth third-party literature on many of these kind of operational matters.
Mark - Thanks for the kind words. Our initial motivation back when i1Profiler was introduced was to see if it made better RGB profiles than our own software and, if so, were they sufficiently better to be worth exploring X-Rite's licensing restrictions. The answer to the first question was an emphatic no, so we did not need to worry about the second.

I would be interested in reading some detail, if you feel OK providing it, about the methodology for the quantitative accuracy testing.
For each i1Profiler patch layout, we assigned the resulting profile to a test chart image. Therefore we knew what colors the printer was supposed to print and we measured what actually came out on the page. We paid particular attention to neutrals (128 steps, 2 RGB units apart) and skin tones (based on ~100 readings we have made on customers at local watering holes - quite the way to meet people!). We also included a regular 7-step color grid (343 patches) but did not grade as strictly here. We then had average dE for all neutrals, split highlights, midtones, and shadows out separately, and skin tone average dE error.

As well, I would like to get a better appreciation of what happens as the two key dimensions you tested for changes, because there is a lower limit to the size of differences from one state to the next below which neither the numbers nor the appearance differences are apparent, or matter much. To add clarity to what I am getting at here, for example: (1) Is there a sea-change of profile accuracy or visual effect if you compare 815 patches with 1877 patches (matched RGB but large difference of patch count; (2) Is there a noticeable change of profile accuracy or visual effect if you compare 1877 patches with 2033 patches (small change in patch count, but accompanied by one more G than either R or B)? (3) Would there be much payoff progressing from 2371 patches into the 3~4000 ranges, (by which time one should have an iSiS rather than a hand-held spectro to read them)? From such testing work I was party to a number of years ago, there was a point in the patch count (I forget the exact number but it was definitely less than 2000) beyond which differences of outcomes (smoothness of gradients, apparent accuracy, etc.) were really hard to detect.
All excellent questions. A general answer is that i1Profiler definitely prefers 1105 patches at a minimum. Below that everything suffers, from absolute accuracy to tonal gradation smoothness to seeing density reversals in highly saturated colors. The specifics depend on how well behaved the printer and paper combination are. For example, well-tuned Fuji Frontier wet labs printing on glossy paper have a nicely linear response across the tonal range. It took looking at problem areas in images to visually see the effects of patch counts greater than 1877. By these I mean skin tones fading from light to deep shadow, smooth color gradations close to or exceeding the gamut boundary, or B&W print detail and neutrality in three-quarter tones and extreme highlights.

Ink jets were a more mixed bag and the paper type definitely plays a major role. Seeing differences between higher patch counts usually required cheating and looking at the measurement data to see where there were discontinuities between what should have been evenly spaced colors. That said, 2371 patches is a reasonable upper limit for most use. The exception was going from a target that had equal numbers of R, G, and B steps to one with an additional step in green. You mentioned 1877 patches (12x12x12 RGB cube) vs. 2033 patches (12x13x12) cube. Looking through my notes this this particular battle was won by the 1877 patch target in all but one of our quantitative tests and in >80% of the visual tests. As I mentioned in the original post, i1Profiler appears to favor equally spaced target color points.

Regular arrays are perhaps the least efficient means of exploring a devices behavior. Using test patch distributions that more efficiently fill the space can noticeably improve profile accuracy for a given patch budget.

See here for an example.

Graeme - Definitely true. The computationally easiest approaches are to either distribute patches in a regular array in the source color space (e.g. what MonacoProfiler required) or in the device color space. The latter requires an initial profile to work from, and is the basis of using i1Profiler's optimization function to improve neutral rendering as described in this post. If you look at i1Profiler's system requirements, "computationally easy" is obviously high on the list. A bottom end CPU from a over a decade ago.

Argyll's farthest point optimization algorithm fills the color cube with points that maximally avoid each other. This can significantly improve coverage for a given number of patches. We use similar techniques both in generating the profiling targets and in picking sampling points during the profile calculations. Note to Graeme: Not quite a year ago I came across this paper from a Swiss trio. Implemented correctly, their approach proved both fast and powerful.

GWGill

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 381
  • Author of ArgyllCMS & ArgyllPRO ColorMeter
    • ArgyllCMS
Re: Optimizing i1Profiler RGB patch layout
« Reply #4 on: July 21, 2017, 09:10:37 AM »

Not quite a year ago I came across this paper from a Swiss trio. Implemented correctly, their approach proved both fast and powerful.
Hmm. Although having some similarities to what OFPS does, there seem to be important differences. OFPS is searching for an arrangement of N points in a continuous space rather than selecting N points from a discrete larger set; OFPS is interested in the distance of every point in space to the sample points rather than the distances between the sample points. But the really useful property of OFPS in its default configuration is not that it maximizes support/diversity, but that it takes account of local device response curvature, placing test points more densely where curvature is high and less densely where curvature is low :-)
Logged

terrywyse

  • Full Member
  • ***
  • Offline Offline
  • Posts: 107
    • WyseConsul (old consulting site)
Re: Optimizing i1Profiler RGB patch layout
« Reply #5 on: July 23, 2017, 08:48:55 AM »

Just curious Ethan if there's been any similar work done with i1Profiler's CMYK charts? I use almost exclusively CMYK targets and would be very interested in knowing what patch counts use a regular array and maximum near neutral patches. The closest (3rd party) thing I've found is using Don Hutcheson's HC2052 target and his corresponding "Mother Set" that was the basis for the subset of patches in the 2052 target.

I'd do the legwork myself if I knew the methodology employed.

Terry
Logged
Terry Wyse
Color Management Specialist, Shutterfly Inc.
Dabbler in the photographic arts.

Ethan Hansen

  • Jr. Member
  • **
  • Offline Offline
  • Posts: 71
    • Dry Creek Photo
Re: Optimizing i1Profiler RGB patch layout
« Reply #6 on: July 24, 2017, 12:26:00 PM »

Just curious Ethan if there's been any similar work done with i1Profiler's CMYK charts? I use almost exclusively CMYK targets and would be very interested in knowing what patch counts use a regular array and maximum near neutral patches. The closest (3rd party) thing I've found is using Don Hutcheson's HC2052 target and his corresponding "Mother Set" that was the basis for the subset of patches in the 2052 target.

I'd do the legwork myself if I knew the methodology employed.

Terry - Sorry, we haven't done the same level of work with i1Profiler and CMYK. The reason was we achieved superior results every time with Argyll, although Argyll usually required multiple iterations to nail the desired output.

Our methodology was simple: create a collage of several images containing both color and B&W portraits, a landscape with vibrant wildflowers, and a B&W beach scene. The B&W shots were intended to gauge print neutrality and smoothness of tonal transitions. We used two color portraits, one a high key shot, the other with dramatic shadows. Again the most useful areas to see profile performance differences were in the transitions between light and shadow or in gently fading highlights. We cut apart the color and B&W prints; judging them on the same page proved visually confusing.

On the quantitative side we printed a 128 count neutral step wedge, a batch of skin tone patches, and a 7x7x7 RGB grid. These were measured and the results compared to the theoretical values.

We then ranked the prints from visually best to worst. There were a few standout performers, particularly at the "worst" end of the scale. Other prints ended up in groups of 2-5 initially judged equivalently good or bad. At this point, we cheated somewhat. The groups all tended to be from similarly grouped patch counts. One of us then reviewed the measurement data from these profiles and noted the areas of highest differences. Given this guidance, the visual reviews focused on these areas. In some cases we could not see significant variations, in others they were apparent.

How tractable our approach is for CMYK I can't say. My experience with i1Profiler was that the separations settings, particularly the black curve and whether "intelligent black" was used or not strongly affected K-Gen linearity. The behavior appears to trigger based on the measurements, so I would expect that sample coverage in problem areas would affect results.
Pages: [1]   Go Up