Pages: [1]   Go Down

Author Topic: Printer profiling test target construction  (Read 8151 times)

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Printer profiling test target construction
« on: June 08, 2017, 05:39:42 pm »

I have a straightforward profile generating methodology, using two i1Pro spectros, one normal and one uv cut.  I started many years ago with ProfileMaker, and now use i1Profiler.  My profiling targets are generated automatically by i1Profiler, parameters set to fill letter size papers (405 patches) or 13x19 super B (1000 patches).  Depending upon paper availability I usually use a 3 letter size target (1215 patches) or 1 13x19 (1000 patches).  I've been satisfied with the resulting profiles, over a wide range of printers and mostly pk type papers.

i1Profiler has a patch set editor, that allows importing/editing targets.  My question - is there something to be gained by modifying targets, adding specific patches.  For example, I could auto-gen a 970 patch set onto 13x19 paper, and use the last 30 spaces to add a finer grained set of R=G=B, hoping to somehow improve the neutrals.  I understand that stimulating a printer with R=G=B data doesn't necessarily result in a neutral printed patch, but today's printers are fairly well behaved, and my Epson 3880 shows overlapping neutral rendering curves on custom profiles.

There is also the question as to whether other target sets exist that do a better job than the i1Profiler automatically generated ones, assuming one sticks with i1Profiler to generate the profile.  Please share your expertise on this subject.

Richard Southworth
Logged

Pat Herold

  • Full Member
  • ***
  • Offline Offline
  • Posts: 161
Re: Printer profiling test target construction
« Reply #1 on: June 08, 2017, 05:59:40 pm »

Just as an aid to more research, here is a list of patch numbers to choose (in RGB) if you wanted to experiment with making profiles with the most near-neutral patches.  X-rite swears up and down that you get the best results sticking with their targets as their profiling engine is specially tuned to their targets.  But that shouldn't stop anyone from doing their own tests!
Logged
-Patrick Herold
  Tech Support,  chromix.com

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: Printer profiling test target construction
« Reply #2 on: June 08, 2017, 07:41:19 pm »

Just as an aid to more research, here is a list of patch numbers to choose (in RGB) if you wanted to experiment with making profiles with the most near-neutral patches.  X-rite swears up and down that you get the best results sticking with their targets as their profiling engine is specially tuned to their targets.  But that shouldn't stop anyone from doing their own tests!

Yep, use one of the patch numbers that maximizes neutrals.  X-rite recently recommended not adding extra patches to the ones auto generated so I'd stick with that. I have experimented with adding a lot of extra neutral patches and some of the gamut mapping for colors outside the printable gamut get pretty squirrely on the I1Profiler's profiles. However, the neutral colors did get more accurate. But you are probably best off just using the settings Pat shows.
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: Printer profiling test target construction
« Reply #3 on: June 08, 2017, 08:45:10 pm »

My 1000 patch target, that fills up a 13x19 (I1Pro default patch sizing), has 27 neutral patches.  A 905 patch target, one of the "magic" numbers, has 25 neutrals.  A 906 patch target indeed has no neutral patches, but as the number goes up toward 1000 they come sneaking back in.

So far the advice seems to be stick with i1Profiler generated targets, but I see no reason not to fill up the pages.  I'll have to do some more counting for the letter size sheets.

Richard Southworth
Logged

Ethan Hansen

  • Full Member
  • ***
  • Offline Offline
  • Posts: 148
    • Dry Creek Photo
Re: Printer profiling test target construction
« Reply #4 on: June 09, 2017, 02:43:39 pm »

I started experimenting with customizing printer profiling targets when we were still using ProfileMaker. There were readily visible benefits to adding neutral, near-neutral, and gamut boundary patches to the PMP default targets. X-Rite automated this setup with i1Profiler. In general, choosing targets with a larger set of near-neutrals helps i1Profiler dial in neutral behavior. For example, choosing a 2202 patch target (2028 equidistant RGB patches, 168 neutrals and near-neutrals, 6 gamut boundary colors) produces a profile with neutral rendering superior both visually and measurably to what you get with a 2203 patch target (2197 RGB cube patches, no added neutrals, 6 gamut boundary patches).

You can add patches to those generated by i1Profiler. The key is balance. As Doug mentioned, just throwing a batch of patches in the mix can cause i1Profiler to skew the profile behavior.

We long ago transitioned to using our own RGB profile generation code, which obviously adds flexibility to handling targets. Nonetheless, the basics of target generation remain. As an aside, I ran one of our standard 2K+ patch targets through i1Profiler and the results were a small improvement (~1 dE on average) from the i1Profiler 2202 patch target. We use a modified RGB grid with more tuning patches.

My recommendation for i1Profiler is to stick with a base target. Depending on your measuring instrument and paper size, I would opt for a patch set that hit one of Pat's magic numbers unless you can fit two thirds or more of the patches towards the next magic point; e.g. if you can't fit 2202 patches but can squeeze in 2100, that will be better than limiting yourself to 1877.

If you want to tune the neutral axis of your profile, use i1Profiler's optimization routines. Using a full L*ab grid from L=0 to L=100 with a and b varying from [-2 .. 2] (i.e. 2525 points) typically improves neutrals by 0.5 - 1.5 dE. If printing that many patches is impractical, you can scale the L*ab patch count downwards. Keep the grid spacing at 1 L unit near L=50, widen it at the extremes. If folks want, I can provide cxf files for a variety of spacings.

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: Printer profiling test target construction
« Reply #5 on: June 09, 2017, 04:09:07 pm »

Ethan, thanks for the input.

Quote
My recommendation for i1Profiler is to stick with a base target. Depending on your measuring instrument and paper size, I would opt for a patch set that hit one of Pat's magic numbers unless you can fit two thirds or more of the patches towards the next magic point; e.g. if you can't fit 2202 patches but can squeeze in 2100, that will be better than limiting yourself to 1877.

That makes me feel good about my 1000 patch target (1005 next magic number) and my 1215 patch target (on the money).

Quote
If you want to tune the neutral axis of your profile, use i1Profiler's optimization routines. Using a full L*ab grid from L=0 to L=100 with a and b varying from [-2 .. 2] (i.e. 2525 points) typically improves neutrals by 0.5 - 1.5 dE. If printing that many patches is impractical, you can scale the L*ab patch count downwards. Keep the grid spacing at 1 L unit near L=50, widen it at the extremes. If folks want, I can provide cxf files for a variety of spacings.

Is it better to apply the patches in optimization or include in the original set?  I would be interested in obtaining neutral cxf files, thanks.

Richard Southworth
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: Printer profiling test target construction
« Reply #6 on: June 09, 2017, 04:25:13 pm »

Another question I have is relating the patch count to the printer characteristics.  The neutral rendering curves for my Epson 3880 (attached) taken from a 1215 patch profile for Ilford Gold Silk show three mostly congruent channels, with the blue popping up in the lower quadrant.  I remember several years ago the neutral rendering curves for the Epson 2200 showed much more separated channels.

So do today's printers require fewer patches, or are there other factors that dictate the minimum number of patches for a quality profile?

Richard Southworth
Logged

Ethan Hansen

  • Full Member
  • ***
  • Offline Offline
  • Posts: 148
    • Dry Creek Photo
Re: Printer profiling test target construction
« Reply #7 on: June 09, 2017, 04:44:01 pm »

Is it better to apply the patches in optimization or include in the original set?  I would be interested in obtaining neutral cxf files, thanks.

Richard,

You want to use neutral patches for optimizing an already created profile. The process is:
  • Create a profile normally
  • Create a new target centered around the L axis using the profile. In other words, the target has steps from black to paper white assuming the profile is perfect. The target Lab values are processed through the profile, and the new target has corresponding RGB values. The reason for bracketing the neutral axis with a and b in the +/-2 range is that the original profile is likely imperfect.
  • You then measure the neutral target and use i1Profiler's optimization to correct the profile.

Quote
Another question I have is relating the patch count to the printer characteristics.  The neutral rendering curves for my Epson 3880 (attached) taken from a 1215 patch profile for Ilford Gold Silk show three mostly congruent channels, with the blue popping up in the lower quadrant.  I remember several years ago the neutral rendering curves for the Epson 2200 showed much more separated channels.

So do today's printers require fewer patches, or are there other factors that dictate the minimum number of patches for a quality profile?

The more well behaved the printer output, the fewer patches are required to detect regions where strange things occur. In the case of your Epson, I would try adding a handful of patches to the target. You want to balance them around the neutral axis, perhaps (16, 0, 0), (0, 16, 0), and (0, 0, 16). Repeat at combinations of  (32, 16, 16) and (64, 48, 48). That would be an additional 9 patches that might better capture low-end behavior.

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: Printer profiling test target construction
« Reply #8 on: June 09, 2017, 05:07:16 pm »

Quote
In the case of your Epson, I would try adding a handful of patches to the target.

Or alternatively go the Optimization route, creating a new target centered around the L axis, but only for the lower quadrant?  Or does the optimization process "prefer" a top to bottom set?

Richard Southworth
Logged

Ethan Hansen

  • Full Member
  • ***
  • Offline Offline
  • Posts: 148
    • Dry Creek Photo
Re: Printer profiling test target construction
« Reply #9 on: June 09, 2017, 11:01:27 pm »

I've only experimented with the optimization for spot colors, skin tones, and globally for neutrals. The first two work and automate tasks that previously required ProfileEditor. I'm not sure how i1Profiler would respond to a neutral axis optimization over only a portion of the range. I'd worry about artifacts occurring at the upper bound of the range.

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: Printer profiling test target construction
« Reply #10 on: June 10, 2017, 01:01:56 pm »

I dissected the 1215 patch target, to get a better idea of what's going on with the i1Profiler automatic patch generator.  There are 1100 patches devoted to general color: 10 red levels x 11 green levels x 10 blue levels = 1100.  0-0-0 and 255-255-255 are included in this group.

The remaining 115 patches break down as follows:
  28 r=g=b
  81 near neutral triplets, for example 8-8-10, 8-10-8, 8-8-10
  6 "throwaway", seemingly random saturated colors, all with two channels = 0

With a "well behaved printer" am I going to gain much with optimization?

Richard Southworth
Logged

Ethan Hansen

  • Full Member
  • ***
  • Offline Offline
  • Posts: 148
    • Dry Creek Photo
Re: Printer profiling test target construction
« Reply #11 on: June 13, 2017, 01:39:20 am »

I attached a zip file containing four different i1Profiler optimization CxF files. First, some background that is part theory, part history, and part pure conjecture.

X-Rite added profile optimization to i1Profiler. There are options for "smart patch generation", spot colors, and colors extracted from an image. All work by converting patch values through the profile, printing a new target, measuring the results, and recalculating the profile. The first caveat is that I have found little to no success optimizing CMYK profiles. Use Argyll for this.

Smart patch generation appears to emulate the approach pioneered by either Frank Herbert with ProfileCity or Graeme Gill with Argyll. The idea is to fill in areas where the printer output was not well behaved. Those implementations worked (and still do admirably with ArgylllCMS). With i1Profiler, however, I have found minimal improvements at best.

Extracting colors from an image sounds like an excellent idea, particularly for making a single, high-dollar print. Unfortunately it does not work in i1Profiler. Every profile I attempted to improve gave worse results post optimization than before.

Initially I viewed the spot color optimization as a method of automating profile editing. Given a small number of colors - e.g. a set of PMS colors or spots used on on a product - it helped. I found editing the profile in ProfileEditor to be both more accurate and visually pleasing as well as faster. Marc Levine with X-Rite discovered ~5 years ago that the i1Profiler spot color optimization could be used to obtain neutral gradients that were smoother and more accurate. He provided a 2500 patch LAB target that mostly covered the L range from 0 to 100 with a and b ranging from -2 to 2 (a few values were missing and others were duplicated in his original patch set). I had success optimizing a variety of i1Profiler RGB profiles with this technique. That said, I have not used it in real-world applications as our home-grown code tends to produce superior results.

The attached file contains are options for 400, 1000, 1200, and 2525 patches. The L-2525 patch file has the full range of LAB values, with L ranging from 0 to 100 in 1 L steps, giving 2525 total patches. The L-1200, L-1000, and L-400 files also contain the full L range, but have 1200, 1000, and 400 patches.

I made two assumptions in sub-setting the included L values. The first was that printers tend to be better behaved in midtones than in shadows or highlights. Therefore the the coverage is tighter between L steps in those areas than around L=50. The second is that non-linear output is usually worse in shadows than in highlights (particularly so for inkjets). Therefore, the files are balanced to have slightly tighter coverage in shadows than highlights.

I made i1Profiler profiles from a ~2K patch target for an Epson 7900, a color laserjet, and a Fuji Dry Lab 650 Pro (one paper each). I then optimized them using the 2525 and 1200 patch CxF files. Mean dE accuracy in neutrals improved by:

Printer    2525        1200 patches
Epson      2.6           1.9
Fuji         1.3           1.1
Laserjet   0.9           1.3

Looks like a success to me. I did not try either the 1000 or 400 patch targets. YMMV.

The process is to first select the optimization workflow. Next, choose a profile (must be made by i1Profiler, in either the system profile folder or a defined hot folder). Click on the "Load spot color patches" icon at the top of the Patch Set window. Next, click the Load spot colors... button that appears. Load the appropriate optimization file.

Go to the test chart tab to make a new chart based on the optimization patches. Print, Measure, rebuild the profile.

Cheers,
Ethan

Jeff-Grant

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 568
    • http://www.jeff-grant.com
Re: Printer profiling test target construction
« Reply #12 on: June 13, 2017, 02:22:40 am »

Thanks Ethan. I'l give that set a try. While we are on the topic of targets, I'm wondering what is the best way to average these days. I have an io which I can use in spot mode with multiple reads which I think is probably a pretty good method. I also have a DTP70 which I recently acquired. I'm thinking that a couple of reads and averaging would probably be sufficient. I'm trying to get i1p to load multiple files to be averaged with no success. It used to work but what it's doing now is weird. Is there some magic method that I am missing?
« Last Edit: June 13, 2017, 02:58:33 am by Jeff-Grant »
Logged
Cheers,
 Jeff  www.jeff-grant.com

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: Printer profiling test target construction
« Reply #13 on: June 13, 2017, 09:34:31 am »

Ethan,

Thanks for all the information and the optimization targets.

Richard Southworth
Logged

Ethan Hansen

  • Full Member
  • ***
  • Offline Offline
  • Posts: 148
    • Dry Creek Photo
Re: Printer profiling test target construction
« Reply #14 on: June 13, 2017, 04:35:39 pm »

Thanks Ethan. I'l give that set a try. While we are on the topic of targets, I'm wondering what is the best way to average these days. I have an io which I can use in spot mode with multiple reads which I think is probably a pretty good method. I also have a DTP70 which I recently acquired. I'm thinking that a couple of reads and averaging would probably be sufficient. I'm trying to get i1p to load multiple files to be averaged with no success. It used to work but what it's doing now is weird. Is there some magic method that I am missing?

I recall that i1P used to do some form of averaging when multiple data files were dropped on the measurement tab. I tried it today and was greeted by an "Unable to open selected measurement file" dialog. Helpful.

I admit to not using i1Profiler much in the past several years except for display profiling. I last recall this approach working before i1P prompted to copy all measurements to the "i1Profiler Assets" - whatever version that was. Hopefully someone more versed in current i1Profiler capabilities can chime in here.

One commercial package that averages measurement data is BabelColor's Patchtool. Patchtool includes many other features; whether they are attractive enough to free $125 from your wallet is another matter. Argyll is both free and has averaging functions. Unfortunately using Argyll for this would require writing a program to convert X-Rite MxF files to Argyll ti3 format. A quick google search unearthed nothing useful on this front.

GMB's old MeasureTool supported "weighted" averaging as does PatchTool. Neither documented what weighting mechanism was used. Weighting definitely helps if you have more than three measurements to average and the data are noisy. Argyll allows using the median rather than the mean of the data, however while this measures the central tendency of the data, it also ignores much of the data distribution. At least Argyll documents what it does.

We are having discussions on which of our internal tools to release either as open source or stand-alone programs. Measurement averaging perhaps should come high on the list. We perform weighting when there are three or more measurements of a particular color. For color geeks reading, weights are based on the LAB value of each measurement (Huber M-estimator, passed to a Tukey biweight if more than 10 measurements of a particular color are present), then those weights are used in averaging the spectral data individually. Our measurement files are in CGATS format; I'll need to see how much work is involved in making a CxF parser.

Jeff-Grant

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 568
    • http://www.jeff-grant.com
Re: Printer profiling test target construction
« Reply #15 on: June 13, 2017, 07:51:03 pm »

i1p can export CGATs so is a parser necessary? I have PatchTool so I'll look at that, thanks.
Logged
Cheers,
 Jeff  www.jeff-grant.com

Jeff-Grant

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 568
    • http://www.jeff-grant.com
Re: Printer profiling test target construction
« Reply #16 on: June 14, 2017, 12:38:49 am »

I've just got PatchTool going on the averaging. That's a far better solution for me as it saves me having to use Measure Tool on an old Mac mini that I have in a cupboard. I also have more faith in PatchTool than Measure Tool. I had to ask a couple of questions along the way and got good, prompt answers to get me going.
Logged
Cheers,
 Jeff  www.jeff-grant.com

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: Printer profiling test target construction
« Reply #17 on: June 20, 2017, 08:24:38 pm »

I would be a bit cautious with i1Profiler when adding additional patches with narrow RGB separations compared to the usual default matrix. While I did get improved neutrals, it turned out to cause the problem I discussed in the following thread. No profiles generated with the I1Profiler generator exhibited this behavior.

http://forum.luminous-landscape.com/index.php?topic=114653.0

All the profiles, that demonstrated these anomalies in more saturated regions, were ones where I had added neutrals from (0,0,0 ... 5,5,5 ...10,10,10 ... 255,255,255) to the missing patches on the 918 patch standard scale.

Might be a good idea to do smoothness checks and not just a statistical sampling of colors for testing a profile.
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: Printer profiling test target construction
« Reply #18 on: June 20, 2017, 08:26:49 pm »

I've just got PatchTool going on the averaging. That's a far better solution for me as it saves me having to use Measure Tool on an old Mac mini that I have in a cupboard. I also have more faith in PatchTool than Measure Tool. I had to ask a couple of questions along the way and got good, prompt answers to get me going.

Great tool! I had been using custom scripts in Matlab but Patchtool has replaced many of them.
Logged

smilem

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 297
    • Color Management Services
Re: Printer profiling test target construction
« Reply #19 on: June 06, 2018, 05:10:46 am »

Thank you for GrayOptimization.zip file with fixed files. I did find the errors myself back in 2017.
I see you fixed same errors. But why did you add 25 black identical patches your chart has 2525, when there are 2500?
« Last Edit: June 06, 2018, 08:16:31 am by smilem »
Logged
Pages: [1]   Go Up