Making my own 256 step target for linearization - some questions

(Sorry for the long message…this required some details)

A while back, I discovered that my 7900 was especially prone to what I would call “ink density non-linearity” which was readily apparent in the data “ripple” I noticed when measuring the printed IJM 256 step i1Pro2 target. The basic problem seems to be that as the target is printed, the ink density on the paper for any given gray value increases due to some factor in the mechanics of printing, e.g. ink sloshing in the damper, piezo head heating up, etc. (the old thread where I described this in detail is here).

Current situation:
After some additional testing to determine the exact cause for this, I’ve discovered that the best way to address it and get cleaner target measurements is to do two things:

  1. Use smaller target patches. This reduces amount of aggregate head motion and therefore reduces the amount of drift when printing the full target.
  2. Scramble the patches.

I use an i1Pro2 with i1Profiler which is designed for a default patch size of 8mm x 8mm, smaller than the patches on the existing IJM Piezography 256 Step target for the i1Pro2 (those patches are 10mm x 11mm, probably sized originally for a different measurement device).

So I’ve created my own 256 step 16-bit grayscale untagged 720ppi target with the smaller patches and randomized patch sequence. It effectively solves my “ripple” problem. The only downside in using my target is that since i1Profiler outputs the CGATS data samples in row/column order, I have to reorder the data (by referencing the PatchIDs I’ve put in the i1Profiler patch set “PXF” file) before copying that data into the PPE tool for linearization. But this is easily done using a script for the data manipulation.

Now my questions:
IJM has always described the provided targets as “gamma 2.2 hard-coded”. I’ve never fully understood that, but my assumption is that IJM determined that QTRGui and Print-Tool are somehow not printing in linear fashion even when printing an untagged grayscale file with No Color Management, and this meant that to optimize for Piezography the targets should not be linear. (Is this a reasonably accurate understanding?)

Ultimately I need to make sure my custom target (as described above) will work properly within Piezography design and assumptions. To compare the IJM target with my target, I wrote a Python script that interfaces with the Photoshop DOM scripting interface. It measures each of the 256 individual 16-bit patch values with a ColorSampler placed in the exact center of each patch and reports the values. These values are copied into an Excel spreadsheet where the two targets are compared. Except for 7 non-contiguous patches near black (steps 243, 242, 241, 238, 234, 233 and 230), everything is numerically identical. Here is a graph showing the compared values:

MyTarget is the blue line, the IJM target is the orange line. As you can see, except for a very small blip near black where the differing 7 patches occur, the two lines overlap exactly. The difference in each of those 7 patches is EXTREMELY small, e.g. for step 230 the IJM 16-bit value is 3211, MyTarget value is 3215. That is a difference of .01% ! I looked at those 7 patches in some detail on the IJM target and I can’t really say why they would be different; maybe there is some residual weirdness in pixel values leftover from previous processing. I did spend a lot of time verifying that all patches in my target have uniform pixel values across the full size of each patch.

Since both targets appear to be identical from a linearity/gamma perspective, I believe it should be fine for linearization purposes.

Am I missing anything here in this approach? I want to ensure my target is “Piezography” compatible.

Thanks for reading to the end :slight_smile:

EDIT: Improved some wording for better clarity.

Still looking for some illumination on this. While I’ve been waiting, I’ve done some additional testing and now I’m scratching my head even more :frowning:.

I’ve examined a few of the other 256-step Piezography targets and have found that there are some significant differences in patch values and overall curve shape. For example, on the following chart (updated from my above post), I’ve added the patch data for the IJM 256-step i1io target (green line). There is clearly some bias embedded in the i1io data, whereas on the IJM 256-step i1Pro2 target (orange line) there is none, i.e. it is linear, as is my custom randomized target (blue line which is exactly overlaid by the orange line).

So which is correct? It seems to me that all 256-patch IJM patch targets should have the same patch values, and should be reflecting the same bias (whatever that is). They do not. People are going to get very different linearization behavior depending on the target they use. This just makes Piezography even more oblique and difficult for people trying to achieve some consistency in their printing process.

@Walker, can you comment? I need to understand what I need to do in order to create an i1Pro2 8x8mm patch randomized target to address my printer density drift as outlined in the above post. What bias (if any) needs to be embedded? If bias is required, why? Is there something lacking in QTRGui and Print-Tool that requires it when printing with No Color Management? Which of your targets is the “real” target?

Thanks for your help.