[argyllcms] Re: IRE measurements

  • From: Florian Höch <lists+argyllcms@xxxxxxxxx>
  • To: argyllcms@xxxxxxxxxxxxx
  • Date: Wed, 03 Nov 2010 15:21:40 +0100


Am 02.11.2010 16:03, schrieb Niccolò Belli:
Il 13/09/2010 01:14, János, Tóth F. ha scritto:
yCMS uses the primary and white color coordinates for gamut conversion and
IRE luminance values for gamma correction. But it also take care about the
white balance. You can input three dimensional data for the IREs.
It has some limits but you can work with 256 IREs.

 From the yCMS Manual:

    Grayscale_Measurements format
    ire[1] measurement[1]
    ire[2] measurement[2]
    ire[n] measurement[n]

      "format"     = 0 ->  CIE Y (all channels equal)
                     1 ->  CIE Yxy
                     2 ->  CIE XYZ
      "n"           = number of measurements   = [5..256]
      "ire"         = measurement at which IRE = [0..100]
      "measurement" = measurement value(s)>= 0.0

      Be careful when using any measurements below 30 IRE.
      Some meters have lower accuracy at those levels, which might
      not give good results. If it happens, simply do not specify them,
      and yCMS will then assume that the display measures "correctly"
      below the lowest listed IRE.

Unfortunately HCFR does not support my spectrophotometer (Eye-One
Colormunki Photo) so I will have to use Argyll to do the measurements.

The -g parameter sets the number of patches in a set of combined
(nominally gray) wedges. This will typically be equal RGB or CMY values,
and by default will be equally spaced steps in device space.

If I understood correctly black equals to 0 IRE and white to 100 IRE
(but from wikipedia white seems to be 140 IRE).

The wikipedia entry refers to analog video levels, where the black level is at 40 IRE, and white at 140, so after accounting for that, you end up with the usual 0...100 range. In digital terms, afaik IRE is usually interpreted as a percentage of the valid RGB range, so e.g. in 8 bit with 'PC' video levels an IRE of 10 is (255 / 100 * 10) = RGB 26 (after rounding), and when using 'TV' video levels (where the RGB range is limited to 16...235 for luma) the same IRE yields (219 / 100 * 10 + 16) = RGB 38.

So I can use targen with
the -g parameter set to x while x is:

x - (x/100)*30 = 256 ==>  x = 366

This gives me 256 useable measurements: 366 minus the measurements below
30 IRE [(366/100)*30=110]

In a 8 bit data path, which you have with a digitally connected display, the total amount of gray steps (before discarding any) cannot exceed 256. So, if you want to discard low IRE readings, you have to simply throw them away (total = <number of IRE measurements, max 256> - <number of low IRE readings which should be dicarded>). That said, 256 steps is probably overkill. Imho I'd use about 100 max (actually you may want to use targen -g 101 to make them evenly spaced).

Then I can find the corresponding IRE with:
IRE = measurement_number/3,66

Am I right? Is this what I need?

I don't know about yCMS, but from what I can gather from the docs,
it should be possible to just copy the values from the resulting .ti3 file created by dispread (Argyll scales RGB values in the range 0.0 to 100.0 already)


Florian Höch

Other related posts: