Pages: 1 ... 6 7 [8] 9 10   Go Down

Author Topic: New Approach for Generating Optimal Profile Patch Sets  (Read 20973 times)

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #140 on: March 29, 2019, 03:20:40 pm »

Thanks for sharing this Doug. Is there another way to print in 16bits TIFF aside from PatchTool? This is yet another paid tool and i1Profiler and CTP are enough of an investment for me.

Not that I know of. I use Matlab (also not free)  to create 16 bit tiffs for fractional precision and Photoshop to print them. Some here have Patchtool so I thought I'd include the fractional CGATs for them. The 8 bit ones do quite well. The 8 bit Lab file, which shows the actual Labs of the 8 bit ProPhoto is the closest workaround for 8 bit workflows.
Logged

Alan Goldhammer

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 4344
    • A Goldhammer Photography
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #141 on: March 29, 2019, 03:50:29 pm »

Thanks for sharing this Doug. Is there another way to print in 16bits TIFF aside from PatchTool? This is yet another paid tool and i1Profiler and CTP are enough of an investment for me.


Sent from my iPhone using Tapatalk
ArgyllCMS which is free permits one to prepare 16 bit TIFF targets.  There is switch in the printtarg utility that will do this for you.
Logged

dehnhaide

  • Jr. Member
  • **
  • Offline Offline
  • Posts: 87
New Approach for Generating Optimal Profile Patch Sets
« Reply #142 on: March 29, 2019, 03:57:49 pm »

ArgyllCMS which is free permits one to prepare 16 bit TIFF targets.  There is switch in the printtarg utility that will do this for you.
Yeah, I know that but wanted to still be able to print i1Profiler compatible targets to avoid going back and forth between ArgyllCMS and i1Profiler.
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #143 on: March 30, 2019, 09:43:58 am »

Doug,

I suspect you've speculated along these lines, would be interested in knowing your thoughts.

The concept of an initial relatively simple printer profile to "train" neutrals to line up more closely with the L axis, seems to work very well in terms of the neutrals accuracy of the final profile.  How can we apply this same approach to the color entries?  It's a tougher problem, have to work in three dimensions with the L, a, and b axis's, but it would seem that we could "nudge" the rgb values nearer to the points in printer space where they line up with more usable L*a*b* values.

Richard Southworth
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #144 on: March 30, 2019, 02:08:05 pm »

I'm making a major revision to the program.

I was investigating the linearity of low luminance (in an RGB sense, not L*) packed RGB patches and discovered that, at low values of RGBs, there is a greater need for more closely spaced grids.

This is even more critical for good rendering of large, dark areas because dE00 understates visual sensitivity of differences when partially adaptating to the darker image. Recall that dE00 best comports with visual sensitivity to differences between two colors surrounded by neutral gray. When the surrounding area is darker, visual differences magnify.

This is of great interest to me because of a goal of creating a special display environment where the print is illuminated with 2 to 4 times more light in order to create displayed prints that appear superluminous. That is, they appear to have portions that are brighter than is physically possible for a reflective print which can only reflect less than 100% of the light hitting it. Doing this involves tricks like creating a "white border" that is actually gray but appears white. This can be done by suspending the print away from anything that provides visual clues about the illumination.

Doing a good job of this illusion is a principal reason to work on dark color accuracy beyond normal dE metrics.

So I'm adding an option to halve the spacing on RGB values below some threshold. (60 seems to work well for the Pro 1000). I'm making the program in Matlab and will port the changes to C++ and post the new program.

Tracking neutrals works quite well so that option will be retained but the specific implementation may be affected when the smaller spaced, low RGB, grid is added. But I don't expect major differences.

« Last Edit: March 30, 2019, 02:43:51 pm by Doug Gray »
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #145 on: March 30, 2019, 02:23:32 pm »

Doug,

Good stuff, keep it up, and thanks for your efforts that benefit all of us.

Richard Southworth
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #146 on: April 02, 2019, 12:32:49 am »

Here's the latest (Ver .4). It's a 32 bit Windows program so works in both x64 and x86 Windows.

I've added options to generate high density subgrids in low and high RGB values. This is mostly useful for generating more accurate patch sets for images with larger, darker areas.

I've attached a sample, agnostic patch set with a 10x10x10 main grid and 6x6x6, low RGB value high density grid. The high density grid is repeated because the elements are close and this reduces variation in patches.

These are the options for the command line operation but it also works in interactive mode..

Usage: ICCProfilePatches [-f] [-t] [-r repeats] [-p pagesize] [-m MGrid]\n                  "
                        [-s StaggeredNeutralDistance] [-n neutralCnt] [-i iccProfile]\n"
                        [-C ColorimetricMode] [-c creator] [-o outfile]\n";

     -t                   Test run. Don't create output. Use to get statistics\n"
     -f                   Emit fractional RGB values, ints are default\n"
     -r                   Remove neutrals in grids (use when adding neutrals separately)\n"
     -v                   Scramble Patches\n"
     -m MajorGridDim      Major Grid dimension\n"
     -M repeatcount       Major Grid Repeat Count\n"
     -l LowGridDim        Low Grid Dimension (scales and places half spacing packed grid at low RGB values)\n"
     -L repeatcount       Low Grid Repeat Count\n"
     -h HighGridDim       High Grid Dimension (scales and places half spacing packed grid at high RGB values)\n"
     -H repeatcount       High Grid Repeat Count\n"
     -s staggerVal        Stagger alternate RGB neutrals by this magnitude\n"
     -n Counts            Counts neutrals (device or colorimetric) are added\n"
     -C Color mode        1 (Colorimetric) or 3 (Absolute Colorimetric)\n"
     -o CGATsFilename     The name of the CGATs file\n"
     -i ICC profile       Profile used to adapt neutrals to actuals\n"
     -c creator           Who dunnit\n";
Logged

dehnhaide

  • Jr. Member
  • **
  • Offline Offline
  • Posts: 87
New Approach for Generating Optimal Profile Patch Sets
« Reply #147 on: April 02, 2019, 12:55:39 am »

Here's the latest (Ver .4). It's a 32 bit Windows program so works in both x64 and x86 Windows.

Thanks a lot dear Doug for your hard work and for sharing it with us.
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #148 on: April 02, 2019, 09:52:13 am »

Doug,

Thanks.  What's the rationale for the sub-grid option at high RGBs?

Richard Southworth
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #149 on: April 02, 2019, 10:08:08 am »

Doug,

Quick run in interactive mode, 8 for major grid, 40 for neutrals, no training profile.  Got more patches than I expected, seems to have added a sub-grid group by default?

Richard Southworth

Added by edit - OK, now I remember how the first version worked, n-1 sub-grid in interactive.  Sorry to pull the trigger so quickly.  However, I believe the program might be a little more useful if the sub-grid were not a default, i.e. would just generate straight matrix.  Maybe I can get there by command line entering 0s for the sub-grids.
« Last Edit: April 02, 2019, 10:16:52 am by rasworth »
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #150 on: April 02, 2019, 10:18:51 am »

Doug,

Thanks.  What's the rationale for the sub-grid option at high RGBs?

Richard Southworth
Generally of little value with my 9500II or Pro1000, but helps color accuracy in RGB values where the triplets are above 200,200,200 or so on the Epson 9800. The 9800 is a bit non-linear in this area. Also, for whatever reason, the 9800 maps higher RGB values to darker colors than the other two printers so increasing the grid density in this area reduces the distance between a requested color and the profile patches used to generate the profile interpolation tables. Still, it's barely noticeable on the 9800 and doesn't show up at all on my other printers. I also noticed that some of the default I1Profiler tables have a higher density in this area. It was a simple addition so I threw it in.

One other note. The high density grid options are done at twice the main grid density. Duplicates in both the low and high RGB grids are removed from the main grid. Since the main grid is first in the CGATs file, it has gaps but the apparently missing values exist in either the low or high RGB density segments. There just is no point in duplicating values that overlap.



Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #151 on: April 02, 2019, 10:47:26 am »

Not a big deal, but I did notice duplicate 0-0-0 entries, at the beginning of the neutral patches, for my interactive mode 8 major grid run.

Richard Southworth
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #152 on: April 02, 2019, 10:58:57 am »

Doug,

Quick run in interactive mode, 8 for major grid, 40 for neutrals, no training profile.  Got more patches than I expected, seems to have added a sub-grid group by default?

Richard Southworth

Added by edit - OK, now I remember how the first version worked, n-1 sub-grid in interactive.  Sorry to pull the trigger so quickly.  However, I believe the program might be a little more useful if the sub-grid were not a default, i.e. would just generate straight matrix.  Maybe I can get there by command line entering 0s for the sub-grids.

Currently sub-grids are always generated. These prove to produce better profiles generally because of the closer spacing of RGB values to each other. For instance selecting the main group N at 8, with no additional neutrals produces 855 patches which is 8^3+7^3.  It also produces 15 (8+7) neutral patches where as without the packing groups, there are only 8 neutrals. Even selecting a grid size of 6, produces 11 neutrals, which is 3 more than the 8 produced with only a main grid and no packing grid. And that makes 512 patches compared to the 341 that setting the grid size to 6 generates. Color accuracy is roughly the same but with less patches (341 v 512) and it has 3 more neutrals.

However, if one elects to add neutrals all these neutrals from the main grids are removed except for black and white patches in favor of the evenly spaced neutrals requested which are then added.
« Last Edit: April 02, 2019, 11:02:46 am by Doug Gray »
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #153 on: April 02, 2019, 12:38:02 pm »

Doug,

I hate to admit, but I had to graph (attached) a 8 major/4 dark/0 neutrals set to understand.  Your explanation is clear enough, I had trouble getting my head around the dark grid being a double frequency representation of both the outer and inner main grids.  Neat.

Richard Southworth
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #154 on: April 02, 2019, 01:34:17 pm »

Not a big deal, but I did notice duplicate 0-0-0 entries, at the beginning of the neutral patches, for my interactive mode 8 major grid run.

Richard Southworth

Yes, I added white and black patches after removal of the neutrals before adding additional neutrals. This is because the staggering, using "-s"  is in multiples of 4. I decided not to truncate as there may be reasons why someone wants the exact number of added neutrals. For instance to fill out a MxN chart page. This required the white patch. The black patch guarantees a device RGB of 0,0,0 which may not be the case using tracking profiles since they return RGB values closest to L*=0 and that may not be 0,0,0 - though it often is. I1P Profiling software requires both a black patch and white patch. As for the added neutral patches, there is no option to repeat those. It's a more effective to increase the count, say from 50 to 100 rather than double the same patches. This helps smooth the neutrals slightly as any given RGB value can be higher or lower than it should be based on the surrounding neutrals.

I meant to mention that the program also creates a file with the same name as the output CGATs file with "Index" prepended. This is just has one number per line indicating the original position of each RGB value. It can be used to unscramble, randomized patch sets when choosing the "-v" (for vary location) option. Just load it into Excel along with the measured CGATs file and sort against it.
« Last Edit: April 02, 2019, 01:43:12 pm by Doug Gray »
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #155 on: April 02, 2019, 01:46:26 pm »

Doug,

I hate to admit, but I had to graph (attached) a 8 major/4 dark/0 neutrals set to understand.  Your explanation is clear enough, I had trouble getting my head around the dark grid being a double frequency representation of both the outer and inner main grids.  Neat.

Richard Southworth

Cool Richard,

Try 8 major/8 dark/0 which doubles the resolution in for values < 128,128,128. Brings out the density change even more dramatically.
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #156 on: April 02, 2019, 01:46:57 pm »

Doug,

Everything you write makes a lot of sense, obviously well thought out.

I made a run at "-m 8 -l 15 -n 0" and another at "-m 15 -l 0 -n 0", both gave 6119 patches.  Your removal strategy is working well.

Richard Southworth
Logged

rasworth

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 473
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #157 on: April 02, 2019, 01:59:17 pm »

8 major / 8 dark / 0 neutrals does emphasize the technique (see attached).  I believe you stated earlier the benefit primarily occurs at rgb 64 and below?

Richard Southworth
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #158 on: April 02, 2019, 02:10:47 pm »

8 major / 8 dark / 0 neutrals does emphasize the technique (see attached).  I believe you stated earlier the benefit primarily occurs at rgb 64 and below?

Richard Southworth

Yes, at least that's what my testing on my 3 printers indicates. The darkest RGB values have about 30% more nonlinearity. The smaller distances is also why I suggest replication "-L 2" using them. And doesn't add that many more values, 64 more patches for "-L 2 -l 4"  OTOH, having an i1iSis sort of warps my perspective.
Logged

Doug Gray

  • Sr. Member
  • ****
  • Offline Offline
  • Posts: 2197
Re: New Approach for Generating Optimal Profile Patch Sets
« Reply #159 on: April 02, 2019, 02:24:15 pm »

One thought has popped up. I1Profiler does not create B&W profiles for ABW mode printing.

But it could! And it isn't even that hard! All one has to do is get the CGATs measurement file from a patch set with lots of neutrals that is printed using ABW. Zero out the a* and b* from the Lab values. Then add in enough fake colors to make I1Profiler happy. Make a regular profile.

Then just print B&W images selecting that profile together with ABW mode. Should work just fine in Photoshop.

I don't do much B&W printing but from my testing it is much smoother and works quite well. It's just that I1PRofiler doesn't directly support it.

If this works like I think it will, I'll add the feature to the program. Basically, one just prints a full B&W tone curve containing all 256 neutrals using ABW. The patches wo9uld be measured and the CGATs file read by the program which would then spit out another CGATs file that I1Profiler could read to generate a standard "color" profile but one that precisely maps image B&W values.
Logged
Pages: 1 ... 6 7 [8] 9 10   Go Up