Pages: [1]   Go Down

Author Topic: Lazy man's printer profile accuracy verification  (Read 1059 times)

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Lazy man's printer profile accuracy verification
« on: March 10, 2019, 12:43:43 pm »

Inspired by Mark Segal's "Stress Testing the Printer Workflow", I developed a means to verify several hundred colors thru a printer/paper/profile combination, using ColorThink Pro, i1Profiler, and my i1Pro.  My primary goal was to use the i1Pro in scan mode, as with a printer profile target, instead of spot measurements.

The first step was to generate a set of colors contained within the printer profile under test gamut.  For my first attempt I started with Doug Gray's 6/5 376 patch cgats file loaded into a ColorThink Pro worksheet (see attachment 1).  Here are the steps:

1. Load the cgats txt file into a ColorThink Pro worksheet.
2. Assign ProPhoto to give the colors meaning.
3. Convert via the printer profile under test (one made with the Doug Gray 8/7 890 patch set) using perceptual rendering, chosen to move as many colors as possible into gamut.
4. Convert back via the printer profile using absolute rendering into ProPhoto color space.  The rightmost column of rgb values will be the ones used for the scan target.  ColorThink Pro provides the mean to export these values in a format compatible with the target generation in i1Profiler.

Attachment 2 is the graph of the 376 colors, now contained within the printer profile gamut.

Next, create a target image within i1Profiler using the cgats file from step 4 above, bring the image into Photoshop, assign ProPhoto, and print thru the profile under test using absolute rendering mode.

After a suitable drying period, scan the print as though it were a standard i1Profiler target.  i1Profiler provides the capability to save the data in L*a*b* format, choosing an appropriate illuminant to beat against the spectral data (attachment 3).

Finally, load the scan data from above into a ColorThink Pro worksheet, add a second workflow with the target rgb values with ProPhoto assigned, and invoke a Delta e2000 comparison (attachment 4).  For my particular printer/paper/profile combination, the values were mostly under 2 delta e (green and yellow), with a few in the 2-3 (tan) range.  The delta e file can be exported for further analysis.

This is a first shot, more work is needed on creating suitable evaluation patch sets.  Printer targets are convenient but probably not ideal.  And there are other workflows to "squeeze" the targets into the profile under test gamut.  For example, the target rgb values can be converted to L*a*b immediately with the printer profile, which creates a more regular distribution of the colors within the gamut.  However, then the neutrals are spaced away from the axis.  Some sort of division such as Mark's in his article would be more desirable.

It was satisfying to see the delta e values, all within a reasonable range, for the profile.  The process is quick, given an original target set, once one gets the hang of using ColorThink Pro, an amazingly useful aid for this type of effort.  And i1Profiler for all of its quirks has evolved to include (somewhat hidden) useful analysis tools.

Richard Southworth

« Last Edit: March 10, 2019, 12:49:21 pm by rasworth »
Logged

vikcious

  • Jr. Member
  • **
  • Offline Offline
  • Posts: 79
Re: Lazy man's printer profile accuracy verification
« Reply #1 on: March 10, 2019, 01:37:53 pm »

Inspired by Mark Segal's "Stress Testing the Printer Workflow", I developed a means to verify several hundred colors thru a printer/paper/profile combination, using ColorThink Pro, i1Profiler, and my i1Pro.  My primary goal was to use the i1Pro in scan mode, as with a printer profile target, instead of spot measurements.

The first step was to generate a set of colors contained within the printer profile under test gamut.  For my first attempt I started with Doug Gray's 6/5 376 patch cgats file loaded into a ColorThink Pro worksheet (see attachment 1).  Here are the steps:

1. Load the cgats txt file into a ColorThink Pro worksheet.
2. Assign ProPhoto to give the colors meaning.
3. Convert via the printer profile under test (one made with the Doug Gray 8/7 890 patch set) using perceptual rendering, chosen to move as many colors as possible into gamut.
4. Convert back via the printer profile using absolute rendering into ProPhoto color space.  The rightmost column of rgb values will be the ones used for the scan target.  ColorThink Pro provides the mean to export these values in a format compatible with the target generation in i1Profiler.

Attachment 2 is the graph of the 376 colors, now contained within the printer profile gamut.

Next, create a target image within i1Profiler using the cgats file from step 4 above, bring the image into Photoshop, assign ProPhoto, and print thru the profile under test using absolute rendering mode.

After a suitable drying period, scan the print as though it were a standard i1Profiler target.  i1Profiler provides the capability to save the data in L*a*b* format, choosing an appropriate illuminant to beat against the spectral data (attachment 3).

Finally, load the scan data from above into a ColorThink Pro worksheet, add a second workflow with the target rgb values with ProPhoto assigned, and invoke a Delta e2000 comparison (attachment 4).  For my particular printer/paper/profile combination, the values were mostly under 2 delta e (green and yellow), with a few in the 2-3 (tan) range.  The delta e file can be exported for further analysis.

This is a first shot, more work is needed on creating suitable evaluation patch sets.  Printer targets are convenient but probably not ideal.  And there are other workflows to "squeeze" the targets into the profile under test gamut.  For example, the target rgb values can be converted to L*a*b immediately with the printer profile, which creates a more regular distribution of the colors within the gamut.  However, then the neutrals are spaced away from the axis.  Some sort of division such as Mark's in his article would be more desirable.

It was satisfying to see the delta e values, all within a reasonable range, for the profile.  The process is quick, given an original target set, once one gets the hang of using ColorThink Pro, an amazingly useful aid for this type of effort.  And i1Profiler for all of its quirks has evolved to include (somewhat hidden) useful analysis tools.

Richard Southworth

Wow Richard, this is stunning effort to take the profile accuracy verification one step further and combine it with Doug's new discoveries. Aside from being a bit confused about all steps I am going to try to reproduce it myself for the sake of better understanding and reproducing the results. Thanks for sharing!
Logged
|| One screw-up is a mistake, two screw-ups is a trend, three screw-ups is a style ||

digitaldog

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 20650
  • Andrew Rodney
    • http://www.digitaldog.net/
Re: Lazy man's printer profile accuracy verification
« Reply #2 on: March 10, 2019, 03:36:28 pm »


So there are a number of ways to tackle this depending on what you're looking to judge.
Here's a way to test the differing tables. We'll use a target we call 216pixel_RGBs.tif as an example for the steps, but you can use whatever patch set you wish:


One simple way is to simply compare the reference values that created the target to the measured values of the target run through the printer. But that only provides an overall accuracy report, not specifics. But the idea is, you've got an RGB value that's a reference and an RGB value from the measurement of the target itself. Conduct a dE report in ColorThink.


1. Open the “216pixel_RGBs.tif file in Photoshop. This file needs to be kept exactly as it is (individual pixels). Duplicate the file. Size the image using Nearest Neighbor to an appropriate print size. Call this “Reference Print File”. You'll print this out and measure.
2. Print this file out to the profiled printer. (You're sending the RGBs in the file to the printer.)
3. Let the print stabilize, and then measure it and save the data as “Reference Labs.txt”. The 216 RGB.TXT file (a reference file that built this target) needs to be installed for MeasureTool or PatchTool or whatever software you'll use to access access the data. This data measured is the bottom line -- what happens when you send these RGBs to this device.
4. Now you need to create predicted Lab files from the RGB. You need two versions -- one in pixels to compare in ColorThink, one upsampled to print -- for each profile.
5. Take the RGB pixel file and Assign the printer profile. Convert Abscol to Lab. Save the results with the profiling package somehow identified in the filename (eg “i1P 288 Luster/Predicted”).
I suggest saving the pixels versions as ProfilePackageName Predicted Labs.
6. Take the upsampled RGB file. Assign the printer profile. Convert Abscol to Lab. Convert from LAB to printer profile being tested using absocl and print.
7.Let the print stabilize and measure the results. Save the measurements as ProfilePackageName Roundtrip Labs (“i1p 288 Luster Round Trip”).
You now have three things to compare for each package:
A. The Reference File (“Reference Labs.txt”). The Predicted Labs (“i1P 288 Luster”). The Roundtrip Labs (“i1P 288 Luster Round Trip”).
B. Reference-to-Predicted (“Reference Labs.txt”/“i1P 288 Luster”) shows you the accuracy of the AtoB Colorimetric table.
C. Predicted-to-Roundtrip (“i1P 288 Luster”/“i1P 288 Luster Round Trip”) shows you the accuracy of the BtoA Colorimetric table.
Reference-to-Roundtrip (“Reference Labs.txt”/“i1P 288 Luster Round Trip”) gives you a decent measure of the overall profile accuracy.
You'll typically see that the AtoB and BtoA errors tend to cancel each other somewhat because they go in opposite Directions-Reference-to-Roundtrip shows that nicely.

Logged
http://www.digitaldog.net/
Author "Color Management for Photographers".

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: Lazy man's printer profile accuracy verification
« Reply #3 on: March 10, 2019, 04:17:08 pm »

Andrew,

My main goal with my initial attempt was attacking the "You'll print this out and measure" aspect, by creating and scanning i1Profiler i1Pro compatible target format files, complete with patch separators, etc.  This may seem like a trivial detail but to me it meant the difference between working with hundreds of patches vs. 10-20.

I understand there is much more to be "dug out" from the profile.  Thanks for the road map.

Richard Southworth
Logged
Pages: [1]   Go Up