DisplayCAL 3.6.1 released

Added in this release:

  • [Feature] Adjustable hue preservation (values less than 100% will gradually hue shift very bright and saturated redorange/orange/yellowgreen hues to a more yellowish tone, preserving more saturation and detail) for HDR SMPTE 2084 3D LUTs with roll-off tonemapping (default 50%).
  • [Feature] Ability to set a calibration target luminance by measuring the ambient light level.
  • [Feature] Verification tab: Hold the “alt” key on your keyboard to create a profile or device link (3D LUT) self check report instead of a measurement report.
  • [Enhancement] DCI P3 D65 profile for use as 3D LUT source colorspace or measurement report simulation profile.

Changed in this release:

  • [Enhancement] Increased the default number of patches for the madVR HDR preset back to 425.
  • [Enhancement] HDR 3D LUT SMPTE 2084 tonemapping: Restored near black tone reproduction for displays with non-zero black level and output offset less than 100% to pre-v3.6 values.
  • [Enhancement] Improved HDR 3D LUT SMPTE 2084 tonemapping speed.
  • [Enhancement] Improved HDR 3D LUT accuracy for colorimetric rendering intents.
  • [Enhancement] Increased default display update delay for Resolve preset to 1000 ms.
  • [Enhancement] Quantize Autodesk/Kodak (.3dl) 3D LUT values by always rounding up (match the format specification in the Lustre user guide).
  • [Enhancement] Limit the number of concurrent worker processes depending on system memory to avoid swapping.
  • [Enhancement] Always normalize CGATS data to Y = 100 when processing files not created by DisplayCAL.
  • [Enhancement] Get the black level for computation of 3D LUT or verification target tone curves from the embedded characterization data if a lookup through the display profile returns zero (makes e.g. Rec. 1886 work properly in that case).
  • [Enhancement] Synthetic ICC profile creator: Increase number of decimal digits for black level to 6 and do not clamp to 16-bit integer values to offer more fine grained control.
  • [Enhancement] Linux: Use configured XDG “well known” user directories (currently only used to determine the localized name of the “Downloads” directory).
  • [UI] Moved HDR 3D LUT SMPTE 2084 tonemapping luminance/saturation/hue preservation controls to advanced options (hidden by default).

Fixed in this release:

  • [Moderate] madVR 3D LUT generation via the main application: When using a non-standard source colorspace whitepoint (by setting a calibration whitepoint target different from the source colorspace’s original whitepoint, e.g. not using DCI white for DCI P3), non-standard values for input primaries and whitepoint were written to the 3D LUT header, madVR 3D LUT slot auto-detection for installation did not work if the source colorspace was not Rec. 709, and color conversion was affected if the 3D LUT was not installed via the madVR API (i.e. by not clicking the “Install 3D LUT” button, but choosing the 3D LUT manually in madVR’s settings).
  • [Minor] Downloads within DisplayCAL failed if the download directory didn’t exist (regression of changes made in DisplayCAL 3.5, SVN revision 5081).
  • [Minor] HDR 3D LUT SMPTE 2084 tonemapping for non-Rec. 2020 source colorspaces did not work correctly (Rec. 2020 was assumed despite different choice).
  • [Minor] Standalone 3D LUT maker: Don’t unexpectedly switch to the source profile’s gamma for simple gamma + matrix source profiles (e.g. DCI P3) when creating a 3D LUT.
  • [Minor] Profile loader (Windows): Catch errors in case of a corrupted Windows registry.

DisplayCAL 3.6 released

Added in this release:

  • [Feature] Adjustable weighting between luminance and saturation preservation for HDR SMPTE 2084 3D LUTs with roll-off tonemapping.
  • [Feature] Option to adjust the roll-off for HDR SMPTE 2084 3D LUTs with roll-off tonemapping when the mastering display peak luminance is below 10000 cd/m² (previous behavior with the introduction of BT.2390-2 was to always adjust, the new default behavior is don’t adjust).

Changed in this release:

  • [Enhancement] Improved HDR 3D LUT SMPTE 2084 roll-off tonemapping to eliminate possible over-darkening in rolled-off highlights due to luminance reduction related effects.
  • [Enhancement] Removed HDR 3D LUT SMPTE 2084 roll-off tonemapping allowance for hue shifts in rolled-off highlights.
  • [Enhancement] Increased HDR 3D LUT SMPTE 2084 default target peak luminance to 480 cd/m² (makes BT.2390 roll-off leave 0-100 cd/m² alone).
  • [Enhancement] Use extended model for HDR 3D LUT Hybrid-Log Gamma (HLG) display gamma adjustment described in BT.2390-4.
  • [Enhancement] Do not create PCS-to-device tables for synthetic HDR SMPTE 2084 profiles with roll-off tonemapping as they are meant purely as source profiles.
  • [Enhancement] Only enable the visual whitepoint editor button if the whitepoint target is set to chromaticity coordinates.
  • [UI] Keep dropdowns with only one choice enabled.
  • [Cosmetic] Catch any madTPG connection errors to show a nicer error dialog without a traceback.
  • [Trivial] Do not update the profile description when increasing the effective resolution of an existing profile’s PCS-to-device tables.
  • [Trivial] Testchart editor: Only limit the view to six decimal digits, not the underlying data.

Fixed in this release:

  • [Minor] Confirm instrument placement when madTPG is not fullscreen.
  • [Minor] Creating synthetic grayscale profiles with HLG tone response did not work correctly.
  • [Trivial] Set allowed filetypes for selecting files when importing 3rd party software colorimeter corrections to “any”.
  • [Trivial] Mac OS X: Updated bundled Python to 2.7.15 which includes a recent version of OpenSSL (fixes SSL connection errors due to more recent server-side encryption when using the standalone application bundles).
  • [Trivial] Mac OS X: Restored correct BundleId for application bundles.
  • [UI] Linux (GTK3 under Wayland): Explicit refresh/update needed for ClientDC (fixes graphs not updating until the window is resized).

DisplayCAL 3.5.3 released

Added in this release:

  • [Feature] Rudimentary ICCv4 profile autoconversion support (only matrix profile types).
  • [Enhancement] Lookup table based test profiles for evaluating display color management.
  • [Enhancement] Profile information: Ability to plot CMYK profile tone response curves.
  • [Feature] Profile loader (Windows): Tray icon animation toggle.

Changed in this release:

  • [Enhancement] HDR SMPTE 2084 roll-off 3D LUT: Improved tone mapping.
  • [Enhancement] Slightly improved accuracy of XYZ LUT profile CIECAM02 gamut mapping.
  • Linux: Temporarily restored compatibility with wxPython 2.8.11/12 to support older distribution LTS releases that have not yet reached end-of-life. Note that this compatibility will not be maintained indefinitely, and will likely end by no later than April 2019. If you cannot update to a newer wxPython version on your current Linux distribution, consider upgrading your distribution to the latest release if possible.

Fixed in this release:

  • [Minor] Restored ability to create profiles from non RGB device measurement files.
  • [Minor] Profile information: Deal with potential NULL values in meta tags of 3rd party ICC profiles.
  • [Trivial] Profile information: Correctly parse non-default device media type attributes.
  • [Trivial] Profile information: Keep original tag order of 3rd party profiles when checking ID.
  • [Minor] Profile loader (Windows): Popup menu items stopped responding when used for a long time.

DisplayCAL 3.5.2 released

Fixed in this release:

  • [Trivial] Prevent potential “service/proto not found” error due to unreliable system APIs when attempting to automatically download updates or vendor files.
  • [Trivial] Linux: Restore missing icons in the window switcher and panel under XFCE.
  • [Trivial] Linux: Add missing i1 Studio entry to bundled instrument configuration files (ArgyllCMS >= 2.0).
  • [Trivial] Windows: Use bundled certificate authority (CA) certificates to circumvent potentially outdated system certificates under older versions of Windows.

DisplayCAL 3.5.1 released

This is a maintenance release.

Added in this release:

  • [Feature] Rudimentary support for WCS Color Device Model profiles (only description, author, white- & blackpoint, gamma, parametric curve, and matrix tags are recognized and mapped to appropriate ICCv2 types).

Changed in this release:

  • [UI] Updated traditional chinese localization (thanks to 楊添明).
  • [Enhancement] Update bundled vendor PNP ID database.
  • [Enhancement] Linux: Use SDL (Simple DirectMedia Layer) directly.

Fixed in this release:

  • [Minor] Work around Python issue #738361 (shell pattern compilation fails raising an unhandled exception if a path contains certain combinations of meta characters).
  • [Minor] Measurement report: Deal with quantization when creating the report (fixes error when using video output levels in combination with some display profiles).
  • [Minor] Profile loader (Windows): Display a proper error message when associating an invalid profile.
  • [Minor] Profile loader (Windows): In case of an invalid profile (e.g. damaged file), fall back to linear gamma ramps instead of using the previously cached ramps and change the tray icon to reflect this.
  • [Minor] Profile loader (Windows): Ignore potential stray WM_COMMAND messages caused by 3rd party application interference.
  • [Minor] Bump minimum required wxPython version to 3.0 (fixes a compatibility problem under Linux if wxPython 2.8 was installed).
  • [Cosmetic] Refresh output levels control when loading settings.

DisplayCAL 3.5 released

I’m happy to announce that I’ve released DisplayCAL 3.5, which brings new application icons, a slightly refreshed theme, and several improvements.

Added in this release:

  • [Feature] Support the madVR HDR 3D LUT installation API (madVR >= 0.92.13).

Changed in this release:

  • [Enhancement] In case of a download problem (e.g. automatic updates), offer to visit the download URL manually.
  • [Enhancement] Security: Check file hashes of application setup and portable archive downloads when updating DisplayCAL or ArgyllCMS.
  • [Enhancement] Security: Use HTTPS for ArgyllCMS download as well.
  • [UI] New application icons and slightly refreshed theme.
  • [UI] Improved HiDPI support by adjusting relative dialog button spacing, margins, and interactive display adjustment window gauge sizes to match proportionally regardless of DPI.
  • [UI] Improved visual consistency of tab buttons (don’t lose “selected” state if clicking on a button and then moving the mouse outside of it, “hover” state does no longer override “selected” state, keyboard navigation skips over selected button).
  • [Cosmetic] Measurement report: Make patch preview take into account the “Use absolute values” option again.
  • [Cosmetic] Measurement report: Colorize CCT graph points according to change in hue and chroma.
  • [Cosmetic] Measurement report: Colorize gamma graph points according to change in gamma.
  • [Cosmetic] Measurement report: Dynamically adjust gamma graph vertical axis to prevent cut-off.
  • [Cosmetic] Measurement report: Make RGB balance graph match HCFR (Rec. 709 only). Note that new and old balance graphs are only comparable to a limited extent (use “Update measurement or uniformity report” in the “Tools” menu to update existing reports).
  • [Cosmetic] Profile loader (Windows): Unset non belonging profile when resetting a profile association.
  • Mac OS X: Set default profile type to single curve + matrix with black point compensation due to long-standing Mac OS X bugs with any other profile type.

Fixed in this release:

  • [Moderate] Unhandled exception and UI freeze when the 3D LUT format was set to madVR and there never was a prior version of ArgyllCMS on the system or the previous version was older than or equal to 1.6.3 during that same DisplayCAL session, due to a missing capability check.
  • [Moderate] Division by zero when trying to create a SMPTE 2084 HDR 3D LUT if the profile black level was zero (regression of a change in DisplayCAL 3.4, SVN revision r4896).
  • [Minor] If using the alternate forward profiler and the profile type was XYZ LUT + swapped matrix, the swapped matrix was overwritten with an accurate one (regression introduced in DisplayCAL 3.3.4, SVN revision r4736).
  • [Minor] It was not possible to run a measurement report with a simulation profile set as display profile, but no profile assigned to the actual display.
  • [Minor] Rec. 1886 measurement report with originally non Rec. 709 tone response profile: Make sure to override the original tone response of the profile so Rec. 1886 gives the expected result.
  • [Minor] If a measurement report HTML file was mangled by another application that removed the XML self-closing tags forward slashes, it was not possible to correctly update the report using “Update measurement or uniformity report” from the “Tools” menu.
  • [Minor] If using a pattern generator, check it is valid before binding a disconnect-on-close event when using the visual whitepoint editor. Prevents an attribute error when using the visual whitepoint editor and the madTPG network implementation (i.e. under Mac OS X).
  • [Minor] Windows: Always use the active display device directly when querying or setting profiles instead of mimicking applications using the Windows GetICMProfile API (fixes getting the correct profile with display configurations consisting of three or more displays where some of them are deactivated).
  • [Minor] Profile loader (Windows): Check whether or not a display device is attached to multiple adapters and disable fixing profile associations in that case.
  • [Minor] Profile loader (Windows): Work-around hitching caused by Windows WcsGetDefaultColorProfile API call on some systems.
  • [UI] Measurement window: Make sure focus stays on the last focused control when the window itself gains focus again after losing focus.
  • [UI] Synthetic ICC Profile Creator: Update HDR SMPTE 2084 diffuse white info text when changing luminance.
  • [Trivial] HDR SMPTE 2084 3D LUT: Interpolate the last two segments before the clipping point of the intermediate input LUT shaper curves (prevents potential slight banding in highlights).
  • [Trivial] Windows: Make sure the profile loader is launched directly after installing a profile when using a portable version of DisplayCAL (parity with installer version).
  • [Trivial] Profile loader (Windows): Re-introduce --skip command line option.
  • [Cosmetic] Profile loader (Windows): When disassociating a profile from a device, suppress ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE error sometimes (in some cases always?) resulting from the WcsDisassociateColorProfileFromDevice Windows API call, even though the profile was successfully disassociated.

Enjoy!

DisplayCAL 3.4 released

I’m happy to announce that I’ve released DisplayCAL 3.4 as a prelude to the upcoming year 2018.

Added in this release:

  • [Feature] HDR Hybrid Log-Gamma transfer function option for 3D LUTs.
  • [Feature] HDR verification testcharts.
  • [UI] Simplified chinese translation thanks to 林泽帆(Xpesir).
  • [Enhancement] Linux: wxPython Phoenix 4.0.0b/rc1 compatibility.
  • [Enhancement] Profile loader (Windows): Notifications (for 3rd party calibration/profiling software and user-defined exceptions) can be turned off.

Changed in this release:

  • [Enhancement] HDR 3D LUTs: SMPTE 2084 with roll-off now allows specifying the mastering display minimum and peak luminance which are used to adjust the roll-off start and clipping points (BT.2390-3).
  • [Enhancement] HDR 3D LUTs: Chroma compression is now done in Lpt color space, providing improved preservation of detail in compressed highlights.
  • [Enhancement]
    Do not disable the measurement report button if the selected setting is a preset and a simulation profile is used as display profile with tone curve set to “Unchanged” (i.e. do not require selecting “<Current>” under settings to allow verifying the native device response against a selected simulation profile).
  • [Enhancement] Limit profile name length taking into account the full path of the final storage directory.
  • [Enhancement] Disable automatic output levels detection for colorimeter correction creation measurements.
  • Changed the “Softproof” and “Video” presets to no longer intentionally swap red and green for the fallback matrix.
  • [UI] [Cosmetic] Minor UI consistency changes.
  • [Enhancement] Linux: X11 root window _ICC_PROFILE_xxx atom enumeration for Xrandr now matches the Xinerama order, so that _ICC_PROFILE_xxx atoms match irrespective of which extension applications are using. This improves conformance to the ICC Profiles in X Specification and matches the respective change in ArgyllCMS 2.0.
  • Mac OS X (standalone application): No longer support OS X versions prior to 10.6. This streamlines and slims the application bundle and allows using more recent 3rd party dependencies which are not available for older Mac OS X releases. If you still need support for Mac OS X 10.5, use the 0install version of DisplayCAL.

Fixed in this release:

  • [Critical] Ensure alternate forward profiler device to PCS table input curves are strictly monotonically increasing to prevent clipping resulting in peaks in the response in case of bad underlying (non-monotonic) device behavior (regression of a change in DisplayCAL 3.3.5, SVN revision r4838).
  • [Minor] Always force the first entry in PCS to device table input curves to zero when generating high resolution PCS to device tables (fixes potential unexpected non-zero RGB output for zero input to perceptual PCS to device table).
  • [UI] [Cosmetic] When not confirming a manual DisplayCAL update but ArgyllCMS is up to date, reflect this in the final dialog message.
  • [Trivial] ReShade 3D LUT: If ReShade 3.x default shaders are installed, write the different parts of the 3D LUT to the correct respective sub-directories and no longer write the superfluous ReShade.fx.
  • [UI] [Cosmetic] Linux: Prevent flickering of tab buttons on some systems when switching tabs.
  • [Moderate] Linux: The way display device enumeration was performed was not always guaranteed to give consistent results across the different available external device to profile mapping APIs, which could lead to wrong profile associations in multi-display configurations (this fix is required to match how ArgyllCMS 2.0 enumerates displays).
  • [Minor] Mac OS X (standalone application): Bundle certificate authority certificates to enable verifying server certificates (fixes not being able to automatically download updates).
  • [Minor] Windows: When creating a colorimeter correction from measurement file(s) stored in a path where one or more components(s) started with a number from 1-9 or the lowercase letter g, the operation failed and the created colorimeter correction had to be retrieved from the temporary directory manually.
  • [Minor] Profile loader (Windows): When manually disabling calibration loading via the pop-up menu, and then starting DisplayCAL (or another application detected by the profile loader) and closing it again, the profile loader would stay disabled, including the calibration loading related menu items, requiring a profile loader restart.

Enjoy!

DisplayCAL 3.3.5 released

This is a maintenance/bugfix release.

Changed in this release:

  • [Enhancement] Updated french localization (thanks to Jean-Luc Coulon).
  • [Enhancement] When generating high resolution PCS to device tables for XYZ LUT profiles, round PCS candidate “fit” so a good match is not potentially needlessly discarded in favor of a match with lower effective usage of the available lookup table grid points (may speed up the process as well).
  • [Enhancement] Use single curve detection based on calibration accuracy for shaper tags of XYZ LUT profiles as well.

Fixed in this release:

  • [Minor] When enabling the Spyder2, check if the spyd2PLD.bin firmware has actually been successfully extracted (taking into account the install scope) and fall back to alternate methods when using automatic mode if the firmware cannot be extracted from the vendor software present in the local filesystem (fixes inability to enable the Spyder2 under Mac OS X if the vendor software is installed).
  • [Minor] Windows: Make measurement report filename safe for filesystem encoding (works around encoding quirks with certain locales).
  • [Minor] Windows: Windows silently strips any combination of trailing spaces and dots in file and folder names, so do the same for the profile name.
  • [Minor] Profile loader (Windows): WCS can return no profile without error in some situations, but the no error case wasn’t accounted for, resulting in an unhandled exception in that case.
  • [Minor] Profile loader (Windows): Get the process identifier before enumerating windows to prevent an unhandled exception if a madVR instance is already running before starting the profile loader.
  • [Cosmetic] Profile loader (Windows): Detect if the current display profile video card gamma table tag contains linear calibration when checking if madVR did reset the video card gamma table to linear to prevent the profile loader alternating between enabled and disabled state if using windowed overlay in madVR.

DisplayCAL 3.3.4.1 (Linux & Mac OS X only) released

Fixed in this release:

  • [Moderate] Linux (profile installation and profile loading): Getting the fallback XrandR display device ID could unexpectedly return no result in some cases due to incorrect parsing, leading to potential application of a stale device to profile mapping or no profile at all (regression of SVN revision r4800).
  • [Minor] Linux, Mac OS X: The visual whitepoint editor was failing to update the test pattern area of a connected madTPG instance when madVR was selected as display device, due to an implementation bug related to setting the background color.

Open Source Display Calibration