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. 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 seems to be two “flavors” of targets. One has basically linear patch values, the other has a noticeable lightening of values in the low values and slightly darker midtone values.

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).

I would assume that all 256-patch IJM patch targets (as formatted for various measurement instruments) should have the same patch values. They do not. Wouldn’t this result in very different linearization results, depending on which target you happen to be using?

@walkerblackwell can you comment? I see that the targets with the later file dates (>= 2018) are the ones showing non-linear patch values. Are these the result of some change in the overall design for Piezo Pro?

Anyway, I’d like 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 my first post in this thread. And part of that is understanding which of the patch target “flavors” as mentioned above is the best one to use as the base model for Piezo Pro.

Thanks for your help.

1 Like

the io target could very well be a miss-embedded profile. I’m adding it to my programing list (ever growing)


OK, many thanks for your reply. I’ll infer from your comment that the target values should be linear, as in the 256-step i1Pro2 target dated 7/29/2016. (Note: I also took a look at the 31x9 i1Pro2 target dated 11/9/2018 and it also exhibits the same non-linear behavior as the i1io target.)

Thanks, Dave

EDIT: 31x9 target shows non-linear behavior, NOT 21x16 which IS linear (got my data columns mixed in my spreadsheet) :slightly_frowning_face: