Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

 
 
Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old 20th August 2011, 06:25   #1  |  Link
nand chan
( ≖‿≖)
 
Join Date: Jul 2011
Location: BW, Germany
Posts: 380
.ti3 Parser / .3dlut Generator for madVR + .3dlut toolset

TI3 Parser (v0.16)


Information

I hereby present my TI3 Parser toolset. This collection of programs is intended to provide a somewhat easier front-end for color management using ArgyllCMS¹, yCMS and madVR, as well as a small collection of command line tools. The motivation for creating this was due to the steps involved in locating, opening and extracting the information from a .ti3 file, then properly formatting them so madVR or yCMS accept them was a bit too daunting to explain well in my madVR CMS guide. This program initially started out as a script to simply format the values properly, but I decided to refactor it and enlarge the scope to include a largely automatized 3dLUT generation process. This also makes it easy to generate multiple .3dLUTs for different environments and choose a certain one easily using madVR (instead of having to copy/paste over the new primaries + re-generate it every time).

All logic is also abstracted into a managed .dll so that those who wish to use it in other projects can do so, and there is a collection of (somewhat) useful command line tools included.

1. At the moment, ArgyllCMS is still not automatized - you will have to calibrate+profile manually using dispcalGUI

Features:

This program will:
  • Read and parse a .ti3/.cal file as generated by ArgyllCMS
  • Present the gamut/grayscale measurements in madVR-friendly form
  • Provide a yCMS generation script
  • Create a madVR-compatible .3dlut file
  • Modify an existing .3dlut by swapping channels, inverting it or applying calibration data from an ArgyllCMS .cal file
  • Create new .3dluts
  • Allow inspection and modification of .3dluts (to check for errors etc)
  • Automatically update yCMS
  • Scale/adapt the output bit depth or value range of .3dluts
  • Merge multiple .3dluts into a single one
  • Inspect, Reset, Load or Save the device adapter's CLUT tables
  • Allow application of 3dlut files to images manually
  • Create .3dluts from linking ICC profiles together
  • Perform, gamma correction, gamut mapping, chromatic saturation (eg. to increase the gamut range while preserving colors) and chromatic adaptation
  • Join together .3dluts using a composite algorithm (eg. to fix the black levels)
  • Work with both .3dlut and .3dl2 files
  • Be fully accessible from the command line console

Usage guide:

I intend for this section to be obsolete by version 1.0, but for now, a quick guide towards calibrating your monitor / profiling it properly can be found here or here.

If you just want the GUI (shown in the screenshot), after extracting, run TI3Parser\bin\LinkICCGUI.exe.

A list of current command line utilities:
  • applycal: Applies an ArgyllCMS .cal/.ti3 or a CLUT file to a .3dlut, thus calibrating it for a specific display device
  • changedepth: Changes the output bit depth of a .3dlut or adjusts the levels (PC or TV) - note that this transformation is lossy
  • dispclut: Allows inspection, changing, resetting, saving or loading of a display adapter's CLUT tables (globally or per-monitor)
  • gen3dlut: Generates a new, linear or grayscale .3dlut
  • genscript: Generates a yCMS script from .ti3 source value, using the same base as madVR
  • imagecal: Apply a .cal file or .3dlut to a bitmap image manually, useful for proofing
  • inspect3dlut: Inspects a .3dlut and prints information about the meta-tags or creation script
  • join3dlut: Composites together two .3dluts, switching between the two based on luminance.
  • linkicc: Links two ICC profiles together and generates a .3dlut from the result
  • lutscript: Generates a 3dlut from a provided .3ls file or .3ls2 file
  • make3dlut: Generates a .3dlut from a .ti3 file, using yCMS (can also apply calibration data)
  • merge3dlut: Merges multiple .3dluts together into a single file
  • parseti3: Opens a .ti3 file and presents the primaries / grayscale information in madVR-friendly form. Also allows copying to clipboard
  • swapchan: Allows swapping or inverting channels of a .3dlut
  • tag3dlut: Modifies a 3dlut's attached parameters to change the declared levels or primaries (this does not modify the 3dlut itself, unlike changedepth)
  • updateycms: Updates this toolset's copy of yCMS
  • version: Prints the overall packaging version number

Help for each program can be obtained by running <program name> --help.

To-do (planned features list):
  • Find a better name for the project, since soon it won't be limited to just parsing TI3 files
  • Integration and updating of the binaries provided by ArgyllCMS
  • Automation for ArgyllCMS, similar in nature to dispcalGUI but tailored for video playback
  • Self-update system (will likely need a decent web host for this first)
  • If possible, interface with madVR and set the .3dlut files automatically (perhaps per display device)

Download and license information

All code is currently in public domain but I withhold the rights to change this license at any time (license changes will not apply retroactively).

All executables can be found in the TI3Parser\bin folder. The program requires the .NET library version 4.0 or above to run.

Feedback

Please post any bugs, issues, suggestions or other sorts of feedback in this thread. If you want to submit source code patches you can do that too.

I'm also not quite satisfied with the current interface. What would you prefer - the current, a tab-based layout or a bunch of buttons like it was before? I'm also probably going to make the interface much larger, add more regions for everything, allow loading multiple files and generally expand the program into a larger, fullscreen management studio instead of a simple tool.

I'm also taking suggestions for a better name, since it is no longer a simple TI3 Parser

Changelog

Moved to second post due to length issues
__________________
Forget about my old .3dlut stuff, just use mpv if you want accurate color management

Last edited by nand chan; 11th November 2011 at 16:41.
nand chan is offline   Reply With Quote
 

Tags
3dlut, argyllcms, color management, icc, madvr, ti3, ycms

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 13:10.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.