Correction matrix for an old ColorMunki – possible?

Home Forums General Discussion Correction matrix for an old ColorMunki – possible?

Viewing 8 posts - 1 through 8 (of 8 total)
  • Author
    Posts
  • #37811

    Zsolt
    Participant
    • Offline

    Hey Everybody,

    I have an old Colormunki Display (non-pro version).  It was manufactured back in 08/2016. I noticed that lately all my calibrations are slightly “off” to my eye… So I purchased a new Calibrite Display Plus, which was manufactured in 09/2022.

    Measuring the same display with the same correction selected confirmed my suspicion: the old device measures slighly different x and y values for whitepoint (and possibly for all other colors as well…) than the new device, and after recalibrating my display with the new device it looks good to my eye again.

    Is it possible to create a correction matrix using the new (assuming more accurate) device somehow, that offsets the drift(?) in my old device? If yes… how? What are the steps to do it?

    Apologies if what I’m asking makes no sense at all, not familiar with the math/workings behind the scenes.

    Calibrite Display SL on Amazon  
    Disclosure: As an Amazon Associate I earn from qualifying purchases.

    #37822

    Vincent
    Participant
    • Offline

    I’m assuming that you are using the same CCSS on both i1d3, otherwise your comparison is flawled because you’d not have done the measurements in the right way.

    What you ask may be done but AFAIK in a manual way (FCCM), or maybe with ccxxmake in ArgyllCMS comand line.

    Let’s assume (IDNK) that ccxxmake does not allow to use 1 i1d3 without CCSS (bad one) and 1 i1d3 with CCSS (good one + correction = reference). Then:
    -Measure 255 WRGB with proper CCSS and new i1d3, get XYZ coordinates of each one: RGB raw counters from USB x RGB_to_CCSS matrix computed from colorimeter firmware and CCSS file
    -Measure 255 WRGB without  CCSS and old i1d3, get XYZ coordinates of each one: RGB raw counters from USB x RGB_to_CMF matrix computed from colorimeter firmware.
    -calculate XYZ to XYZ CCMX manually by FCCM method (google, Four Colour Correction Matrix, there should be PDFs) or maybe the one used by Graeme Gill in ArgyllCMS (I do not remember it)

    You’ll need to do this for EACH display you measure.

    • This reply was modified 1 year, 4 months ago by Vincent.
    #37825

    Zsolt
    Participant
    • Offline

    I’m assuming that you are using the same CCSS on both i1d3, otherwise your comparison is flawled because you’d not have done the measurements in the right way.

    Correct.

    Thank you for pointing me to the right direction. I also did some googling to understand more your suggestion, let me summarize with my own words to see if I got you right:

    As I understand every i1d3 device has a factory set correction matrix defined in the firmware. When I use a CCSS spectrum file, behind the scenes a correction matrix is calculated for that specific i1d3 based on the factory set correction matrix.

    So your steps essentially capture the CCSS adjusted coordinates from the good device, and the raw (firmware adjusted) coordinates with no additional spectral correction from the bad device, and then manually generate the required adjustment matrix (CCMX) that will offset the bad device’s coordinates to the expected values.

    Looks like using command line it is possible, I found this in the ccmx manual:

    -f ref.ti3[,targ.ti3] By default ccxxmake creates a CCMX file by displaying test patches on the screen, and then prompting you to measure them interactively with the two instruments. An alternative is to create a small number of test values using targen suitable for display profiling (or use the ref/ccxx.ti1 file provided with ArgyllCMS), and then measure them with the two instruments using dispread to create a reference and target .ti3 files, and then provide the two files as arguments to ccxxmake -f. Normally the reference file will be created using a spectral instrument and you will want to use the -s flag with dispread for this. If you want to use a colorimeter as a reference instrument, then make sure that it is the first file provided to the ccxxmake -f option. The filenames should be concatenated with a “,” separator without spaces. You will also have to supply a display name using the -I option and/or technology description using -T.
    When creating a CCSS file, only spectral readings from the display measured with the reference instrument are needed, and a single .ti3 file should be provided.

    This sounds like the steps you described. If i’m not mistaken then ref.ti3 will be the CCSS adjusted measurements from the good device, and targ.ti3 is the unadjusted measurements from the bad device… right?

    #37826

    Vincent
    Participant
    • Offline

    I’m assuming that you are using the same CCSS on both i1d3, otherwise your comparison is flawled because you’d not have done the measurements in the right way.

    Correct.

    Thank you for pointing me to the right direction. I also did some googling to understand more your suggestion, let me summarize with my own words to see if I got you right:

    As I understand every i1d3 device has a factory set correction matrix defined in the firmware. When I use a CCSS spectrum file, behind the scenes a correction matrix is calculated for that specific i1d3 based on the factory set correction matrix.

    (bold letters) No. i1d3 firmware stores spectral sensivity of each RGB filer, per wavelength. “colorimeter observer”. If you mix this obserser with std observer and a sample CCSS (spectral power distribution of a display) you can compute  an accurate “RGB to XYZ” matrix for colorimeter.
    If you provide no CCSS, device’s own spectral sensivity is used as “sample display” to compute a RGB to XYZ.
    Device does not output XYZ coordinates on its own. Even no correction leads to a CCSS applies (its own sensivities)

    A CCMX is a XYZ to XYZ matrix, hence it is applied after this stuff.

    Thus “on same device” this equation holds:

    RGB_to_XYZ_CCSS * RGB raw vector = CCMX * RGB_to_XYZ_NO_CORRECTION * RGB raw vector

    “there is a CCMX equivalent of a CCSS on an accurate firmware i1d3”. Since “RGB raw vector” is the same (same device) you can solve CCMX equivalent to a CCSS even without measurements, just by dumping firmware data on i1d3 initialization.

    But you can’t in your situation since there are two dufferent devices. Also AFAIK ArgyllCMS does not ouput raw rgb counter values (although it may in some high debug output, IDNK).
    You need to take 4 measurements (W R G B 255) with out CCSS on bad one and 4 in good one with CCSS to get a CCMX. You have to do full procedure: FCCM or something similar.

    So your steps essentially capture the CCSS adjusted coordinates from the good device, and the raw (firmware adjusted) coordinates with no additional spectral correction from the bad device, and then manually generate the required adjustment matrix (CCMX) that will offset the bad device’s coordinates to the expected values.

    Yes, after you get a proper CCMX for bad colorimeter it will apply under the hood:

    CCMX * RGB_to_XYZ_NO_CORRECTION * RGB raw vector from USB = corrected XYZ coordinates

    since RGB to XYZ (even no correction) is unavoidable because device outouts RGB raw counters over USB.

    Looks like using command line it is possible, I found this in the ccmx manual:

    -f ref.ti3[,targ.ti3] By default ccxxmake creates a CCMX file by displaying test patches on the screen, and then prompting you to measure them interactively with the two instruments. An alternative is to create a small number of test values using targen suitable for display profiling (or use the ref/ccxx.ti1 file provided with ArgyllCMS), and then measure them with the two instruments using dispread to create a reference and target .ti3 files, and then provide the two files as arguments to ccxxmake -f. Normally the reference file will be created using a spectral instrument and you will want to use the -s flag with dispread for this. If you want to use a colorimeter as a reference instrument, then make sure that it is the first file provided to the ccxxmake -f option. The filenames should be concatenated with a “,” separator without spaces. You will also have to supply a display name using the -I option and/or technology description using -T.
    When creating a CCSS file, only spectral readings from the display measured with the reference instrument are needed, and a single .ti3 file should be provided.

    This sounds like the steps you described. If i’m not mistaken then ref.ti3 will be the CCSS adjusted measurements from the good device, and targ.ti3 is the unadjusted measurements from the bad device… right?

    Good. Use that since AFAIK (there was some thread in argyll maillist or AVSforum, I do not remember) where graeme explained his approach to get the 3×3 XYZ to XYZ was more accurate than FCCM, but right now I do not remember why.

    • This reply was modified 1 year, 4 months ago by Vincent.
    • This reply was modified 1 year, 4 months ago by Vincent.
    #37920

    Zsolt
    Participant
    • Offline

    This process does not seem to work on the bad device unfortunately.
    I can get the bad device to measure roughly the same whitepoint and RGB coordinates, but visually some colors/hues will still be slightly off after calibration.
    I lean towards accepting that the bad device is broken and stop using it instead of fixing it.
    Just out of curiosity – I’ve attached the CIE xy chart from both device for the same screen in SRGB mode, calibrated with same settings, same CCSS etc…
    Left is good device, right is bad device. What could cause this shift in the bad device? Age?….

    Attachments:
    You must be logged in to view attached files.
    #37922

    Vincent
    Participant
    • Offline

    Left is good device, right is bad device. What could cause this shift in the bad device? Age?….

    Measurement errors appear if firwm spectral sensivity data does not match actual sensivity.
    This may happen:
    -by bad QC on “Cheap” (non pro) i1d3. They measure spectral sensivities by larger batch size or whatever Xrite does to reduce cost. Filters may be “non aging” but frimware spectal sensivity is not accurate to actual sensivity of each device.
    -by poor performing non aging filters, “colorimeter observer with those filters if far from std osberver, hence CCSS correction is limited in accuracy”. Even if firmware date is accurate, it would be too off to give acceptable results with “synthetic CCSS measurement” trick used to compute RGB to XYZ matrices.
    -by physical damage or manipulation of filters, they no longer match firmw data

    I1d3 filters should not age, I’ve not seen that. So the only “aging” is physical damage/misalignment by drop or shaking.
    The only way to test this was knowing its accuracy brand new because 1st and 2nd error will be present when ypu opened the box after purchase.
    I doubt that 2nd is possible on i1d3… but who knows.

    I’d say that main sources of innacuracy would be batch sample used for spectral sensivuty curve not matching his siblings response in the batch  (1st one) and physical damage by drop, knock , severe shaking or dissasembling (3rd).

    #37923

    Zsolt
    Participant
    • Offline

    Hmm, thanks for the details. It was definitely (more) accurate out of the box, as I only started noticing the tint after calibration recently.

    I did not know that the device is sensitive to drop/shaking (apart from the obvious lens part). I posted my device to a friend recently to anther country and they posted it back…. I guess something must have happened during transport. That’s the most likely scenario I can think of.

    Well, lesson learned. Thanks again for answering!

    #37925

    Vincent
    Participant
    • Offline

    There is a vidoe in youtube about an i1d3 disassembly:

    I remember somebody warning about misalignment on re assembling, maybe here, maybe in argyllCMS maillist, maybe in Lift Gamma Gain, maybe in AVSForum. I do not remember where. Maybe you can search in those 4 sites about disassembly for the actual response I read time ago.

    • This reply was modified 1 year, 3 months ago by Vincent.
Viewing 8 posts - 1 through 8 (of 8 total)

You must be logged in to reply to this topic.

Log in or Register

Display Calibration and Characterization powered by ArgyllCMS