1 - 20 of 5411 Posts

#### N3W813

·
##### Registered
Joined
·
1,191 Posts
Discussion Starter
This thread will be dedicated to the process of generating 3DLUT corrections using ArgyllCMS and DisplayCAL for use in MadVR video renderer.

Required Software
ArgyllCMS 32-bit
DisplayCAL
DirectShow video player that can use MadVR (ie. Zoom Player, MPC-HC, etc.)

Required Hardware
An ArgyllCMS supported colorimeter or spectrophotometer

A. Install ArgyllCMS, DisplayCAL, and MadVR
1. Extract ArcgyllCMS to a folder of your choice (ie. C:\ArgyllCMS)
2. Install DisplayCAL to a folder of your choice

B. Create MadVR compatible 3DLUT from ArgyllCMS tools
1. Start MadVR Test Pattern Generator
2. Enable "use fullscreen"
3. Enable "disable VideoLuts"
4. Enable "disable 3dlut"

2. Start DisplayCAL

3. Calibration, Profile, and 3D LUT Generation
1. When running DisplayCAL for the first time, a prompt to locate the ArgyllCMS executables directory will be shown, browse to the path where ArgyllCMS is extracted and select the ‘bin’ folder
2. Click ‘File’ in the menu bar and select ‘Choose save path…’ then browse to a directory to save calibration/profile files and logs
3. ***Please make sure you read through each Notes section under each tab. These sections contain valuable information and explanation of the settings for each tab***
4. On the Display & instrument tab, Select 'Video 3D LUT for madVR (D65, Rec. 709 / Rec. 1886)' under Settings
5. On the Calibation tab, keep the defaults. If you want to learn more about the effects of selecting different tone curves and gamma, please see chros73 post "Tone curve / gamma for beginners"
6. On the Profiling tab, slide the 'Amount of patches' slider to adjust the amount of patterns measured to create the display profile
7. On the 3D LUT tab, verify 'madVR (.3dlut)' is selected as the 3D LUT file format
8. Click 'Calibrate & profile' button. The duration of the process will depend on the speed of your meter and the amount of test patterns selected
9. Measurement progress bar
10. After measurement and profile are complete, click the 'Install 3D LUT' button to automatically install the 3D LUT into MadVR. (manual 3D LUT install instructions are below)

C. Manually applying the 3D LUT file in MadVR
1. Browse to the folder where MadVR was extracted
4. Expand your display device under the devices node
6. Select 'calibrate this display by using an external 3DLUT files'
7. Check 'disable GPU gamma ramps'
8. For the BT.709 field, browse to the DisplayCAL save location, the profile folder, and select the xxxx.3dlut file

2016-02-03 - Updated workflow with new configuration options and screenshots for DisplayCAL 3.1.

2014-05-06 - Updated workflow with new configuration options and screenshots for DisplayCAL 2.0.0.0.

2013-12-09 - Updated testchart screenshot with settings for Neutral axis and Dark region emphasis suggested by Graeme.

2013-12-08 - Updated workflow with ArgyllCMS tools update, DisplayCAL snapshot update, and madVR test build. Added new DisplayCAL testchart screenshot to incorporate new neutral and dark areas emphasis for targen.exe.

2013-11-10 - Updated workflow using DisplayCAL 1.5.3.1

2013-08-28 - MadVR TPG only supports 32-bit of ArgyllCMS.

2013-08-22 - Added videoLUT calibration (step 5) to increase quality of resulting 3DLUT.

2013-07-29 - Updated skip meter placement confirmation for dispread.exe in step 6. From -Yn to -Yp. Graeme changed the parameter is the latest beta binaries.

2013-07-18 - Updated dispread.exe command to use MadVR Test Pattern Generator. -E parameter is no longer needed provided the level settings in MadVR are set correctly for your output device. Increased OFPS patterns to 2000 to increase 3DLUT accuracy.

2013-07-01 - Graeme updated the latest beta binaries. There were scenarios with dispcal.exe using TV levels by default even without the use of the '-E' parameter.

2013-06-18 - Replaced workflow with commands for ArgyllCMS tools only. Removed the use of DisplayCAL.

2013-05-20 - Elevated black point still exists for some displays/configurations, therefore, Black Point Compensation option should be enabled in DisplayCAL. (step B10)

2013-05-14 - ArgyllCMS beta binaries updated. Graeme fixed an issue with DisplayCAL stalling when acquiring display refresh time with i1D3.

2013-05-11 - ArgyllCMS beta binaries updated. Graeme fixed issue with elevated black point, therefore, Black Point Compensation option is no longer needed in DisplayCAL. (step B10)

2013-05-10 - Updated collink.exe commandline to accommodate changes made by Graeme to gamma options. To update ArgyllCMS components, please download and extract again ArgyllCMS update for MadVR 3DLUT creation. (Changed steps C1, C4, C5)

#### Attachments

• 810.7 KB Views: 1,434
• 820.3 KB Views: 25,399
• 844.7 KB Views: 24,892
• 826.2 KB Views: 25,617
• 845 KB Views: 25,235
• 788.5 KB Views: 24,901
• 752.6 KB Views: 24,699

#### N3W813

·
##### Registered
Joined
·
1,191 Posts
Discussion Starter
OLD Commanline-Based Workflow

1. Extract ArcgyllCMS to a folder of your choice (ie. C:\Argyll_V1.5.1) == [ArgyllCMS_install_folder]
2. Extract and overwrite the contents of the ArcgyllCMS update to [ArgyllCMS_install_folder]

B. Create MadVR compatible 3DLUT from ArgyllCMS tools
1. From [ArgyllCMS_install_folder]\bin, copy dispwin.exe, dispcal.exe, targen.exe, dispread.exe, colprof.exe, and collink.exe to a temp folder == [temp_folder]

2.Copy Rec709.icm from [ArgyllCMS_install_folder]\ref to [temp_folder]

3. Reset video card videoLUT to a linear curve
Code:
Code:
[CODE]dispwin.exe  -v  -c
[/CODE]
Warning: Spoiler! (Click to show) -v
verbose
-c

4. Start MadVR Test Pattern Generator

Enable "use fullscreen"

Enable "disable VideoLuts"

Enable "disable 3dlut"

5. Calibrate the monitor's and generate videoLUT curves with a meter
Code:
Code:
[CODE]dispcal.exe  -v  -dmadvr  -Yp  -qh  -m  -gs  -w 0.3127,0.3290  "dispcal"
[/CODE]
Warning: Spoiler! (Click to show) -v
verbose
-Yp
skip instrument prompt
-qh
quality 'high'
-m
-gs
set gamma to sRGB
-w
target white point coordinates
"file"
name of videoLUT curves file to generate

6. Create patterns file
Code:
Code:
[CODE]targen.exe  -v  -d3  -G  -s40  -g128  -f2000  "MadVR"
[/CODE]
Warning: Spoiler! (Click to show) -v
verbose
-d3
video RBG patterns
-G
good optimzed points rather than fast
-s
# of single channel patterms
-g
# of neutral gray patterns
-f
# of Optimized Farthest Point Sampling (OFPS) patterns to generate  *increase # for better quality
"file"
name of .ti1 file to generate

7. Read the patterns file with a meter
Code:
Code:
[CODE]dispread.exe  -v  -dmadvr  -Yp  -K dispcal.cal  "MadVR"
[/CODE]
Warning: Spoiler! (Click to show) -v
verbose
-Yp
skip meter placement confirmation
-K
incorporate calibration curves from step.5
"file"
name of .ti1 patches file to read from

8. Create ICM profile from the pattern read results
Code:
Code:
[CODE]colprof.exe  -v  -qh  -bl  -aX  "MadVR"
[/CODE]
Warning: Spoiler! (Click to show) -v
verbose
-qh
quality 'high'
-bl
low quality B2A table  *high quality not required since collink will be used
-aX
XYZ cLUT algorithm type
"file"
name of .ti3 file to generate the .icm file

9. Generate the MadVR compatible 3DLUT file from ICM file
Code:
Code:
[CODE]collink.exe  -v  -3m  -qh  -et  -Et  -Ib:2.2  -G  -a dispcal.cal  -iaw  Rec709.icm  MadVR.icm  3DLUT.icm
[/CODE]
Warning: Spoiler! (Click to show) -v
verbose
-3m
-qh
quality 'high'
-et
input 16-235  *this setting is required for proper MadVR 3DLUT generation, DO NOT REMOVE
-Et
output 16-235  *this setting is required for proper MadVR 3DLUT generation, DO NOT REMOVE
-Ib:x.x
apply BT.1886 curve effective gamma. x.x specifies gamma (default = 2.2)
-G
gamut Mapping Mode using inverse outprofile A2B
-a
incorporate calibration videoLUT curves into 3DLUT
-iaw
"file" "file" "file"
reference file, source ICM file, output ICM/3DLUT file

C. Apply the 3DLUT file in MadVR
1. Play any video file in a media player with MadVR set as the video renderer
3. Expand your display device under the devices node
5. Select 'calibrate this display by using an external 3DLUT file'
6. Check 'disable GPU gamma ramps'
7. Click the browse icon and select the 3DLUT.3dlut file generated

Parameter '-E' Usage Scenarios
Quote:

There are 3 possible HTPC level configurations, when using madVR:

(1) Display wants 0-255. GPU and madVR are consequently also both set to 0-255.

This is the most recommended setup because it doesn't (shouldn't) have any banding problems, and still has all video, desktop and games with correct black/white levels. In this case test patterns need to have black at 0,0,0, obviously.

(2) Display wants 16-235. GPU is set to 16-235. madVR has to be set to 0-255.

This is not recommended, because the GPU stretches the madVR output, probably in 8bit without dithering, so banding could be introduced. However, this is not a big problem for ArgyllCMS. Argyll still needs to create test patterns with black at 0,0,0. The GPU will then stretch the test patterns from 0-255 to 16-235, so the display will get 16,16,16, although Argyll rendered 0,0,0. So the levels are correct.

(3) Display wants 16-235. GPU is set to 0-255. madVR is set to 16-235.

This is the recommended setup for best image quality if your display can't do 0-255. This setup results in banding-free madVR image quality. However, levels for desktop and games will be incorrect, because desktop and games will render black at 0,0,0, while the display expects black at 16,16,16. This is a problem for ArgyllCMS, because Argyll will create test patterns with black at 0,0,0, and the display will also receive these at 0,0,0. So basically Argyll test patterns will have wrong levels, which will screw up the whole calibration.

It is my understanding that Graeme implemented the -E switch specifically for (3), because without the -E switch Argyll test patterns would send wrong levels to the display. Basically the -E switch tells Argyll to render test patterns with black at 16,16,16 and white at 235,235,235, which Argyll never had to do before. When using VMR/EVR, you usually switch your GPU to 0-255 or 16-235. In both cases Argyll can render test patterns with black at 0,0,0, and they will still be sent to the display with the correct levels. However, due to my recommendation to use (3) if your display doesn't support 0-255, Argyll suddenly needs to render test patterns differently. Hence Graeme implemented the -E switch.

So my understanding is that -E should be used only for (3) and in no other situation. If you use the -E switch for (1), Argyll will create test patterns with black at 16,16,16 which would be incorrect!

Notes
On some systems, "disable GPU gamma ramps" doesn't work (step D.6) in either window or full screen exclusive mode, and there are three possible ways of working around this. (src. Graeme Gill)
• Disable the VideoLUTs by running "dispwin -c" instead. (You can restore the installed profiles calibration using "dispwin -L").
• Don't use the collink "-a display.cal" parameter (step C.5) (ie. create a link/3dlut that doesn't incorporate the display calibration curves), and load the calibration curves into the VideoLUT using "dispwin display.cal"
• Don't use the collink "-a display.cal" parameter (step C.5) (ie. create a link/3dlut that doesn't incorporate the display calibration curves), and install the profile, ie. "dispwin -I display.icm"

#### N3W813

·
##### Registered
Joined
·
1,191 Posts
Discussion Starter

#### Attachments

• 734 KB Views: 23,901
• 731.6 KB Views: 23,739

#### fairchild99

·
##### Registered
Joined
·
890 Posts
Looking forward to this, as I couldn't get it working on my end even with your and Graeme's help. I could make the .cal file but the profile always failed. Then I couldn't do what Graeme suggested with the .cal files to make the 3dlut using the command line.

#### N3W813

·
##### Registered
Joined
·
1,191 Posts
Discussion Starter

Quote:

Looking forward to this, as I couldn't get it working on my end even with your and Graeme's help. I could make the .cal file but the profile always failed. Then I couldn't do what Graeme suggested with the .cal files to make the 3dlut using the command line.

If your profile is failing, then there is something else going on. Without a valid profile, you will not be able to generate a 3DLUT. If you are using DispcalGUI, post your dispcalGUI.log here and maybe someone will be able to help you.

#### fairchild99

·
##### Registered
Joined
·
890 Posts
Ok, will post up the last log when I tried to just do a profile, after the calibration had already been done.
Code:
Code:
[CODE]2013-05-03 00:20:06,834 Setting up B to A table lookup
2013-05-03 00:20:06,884 Creating Gamut Mapping
2013-05-03 00:20:06,884 C:\Argyll\bin\colprof.exe: Error - Can't handle percept and sat table intents with different CAM spaces
2013-05-03 00:20:06,884 ...aborted.
2013-05-03 00:20:06,884 --------------------------------------------------------------------------------
2013-05-03 00:20:06,884 Profiling has not been finished.
[/CODE]

I'll be sure to delete this long log once someone has attempted to help, as I don't want this cluttering up the first page.

#### N3W813

·
##### Registered
Joined
·
1,191 Posts
Discussion Starter

Quote:

Ok, will post up the last log when I tried to just do a profile, after the calibration had already been done.

I guess this is where the main failure is:
Code:
Code:
[CODE]2013-05-03 00:20:06,834 Setting up B to A table lookup
2013-05-03 00:20:06,884 Creating Gamut Mapping
2013-05-03 00:20:06,884 C:\Argyll\bin\colprof.exe: Error - Can't handle percept and sat table intents with different CAM spaces
2013-05-03 00:20:06,884 ...aborted.
2013-05-03 00:20:06,884 --------------------------------------------------------------------------------
2013-05-03 00:20:06,884 Profiling has not been finished.
[/CODE]

I'll be sure to delete this long log once someone has attempted to help, as I don't want this cluttering up the first page.

Try using my guide above to perform a profile/calibration. Make sure you disable any settings that you may have set from other guides. (ie. settings in the Advanced gamut mapping options in DispcalGUI)

#### fahrenheit

·
##### Registered
Joined
·
711 Posts
Generated the lut and madVR said it was registered, but MPC-HC says 'madVR **Unavailable**' and when I try to apply it, it tells me it is not installed.

Running WIndows 7 64bit with an ATi Radeon HD 5670.

Thanks for the guide btw.

Edit: My fault! I installed the 64bit version of MPC-HC which doesn't support madVR. Installed the 32bit version and its up and running.

Too much ambient light in the room at the moment so I won't be able to measure it until later, but it certainly didn't look bad thats for sure. Playback was a bit choppy so I may be at the limits of what my PC can handle.

#### alamagar

·
##### Registered
Joined
·
60 Posts

I've been trying 3dLut profile calibration last 2 months with argylCMS and madVR based on this guide
http://yabb.jriver.com/interact/index.php?topic=78302.0

with good results and I see you propose subtle differences. These are:
Quote:
B. Perform a quick display profile/calibration using ArgyllCMS/DispcalGUI (For advanced options, see post #2)
• For 'Whitepoint', select Chromaticity coordinates and enter 0.312713 for X and 0.329016 for Y
• Set 'Calibration quality' to Medium
• Check 'Black point compensation'
• After the process finishes, do NOT install the profile
What are the benefits of using each one this options?

Quote:
Make sure you disable any settings that you may have set from other guides. (ie. settings in the Advanced gamut mapping options in DispcalGUI)
What is the reason for disable settings in "Advanced gamut mapping options"?

I usually calibrate white balance and gamma to 2.2 with HCFR and after that make a profile with DispcalGUI and use it to get the 3dLut file. Therefore I hit the "only profile" button. Am I getting the same results?

Quote:
Why don't use LinkICCGUI? It seems more automated.

Quote:
D. Apply the 3DLUT file in MadVR

Check 'disable GPU gamma ramps'
Who do we need to disable GPU gamma ramps?

On the other hand, I have two displays conected a TV and a Projector. Each needs a different 3dLut File. Is there a way to instruct madVR to automatically identify the display and choose the correct edLut File?

Thanks again. I know there are a lot of questions but I'm very interested in this topic.

#### zoyd

·
##### Registered
Joined
·
6,804 Posts

Quote:

Results from my Sharp Elite calibration/profile. It's not perfect but it is MUCH better.

If you want to optimally linearize the gamut I've found that the patch count using OFPS generation needs to be >=1500, 2500 should cover a troublesome display like the Sharp Elite. And by optimal I mean you'll end up with a very symmetric error distribution at or near your probe's precision. It probably won't be visually much different than what you did above.

#### N3W813

·
##### Registered
Joined
·
1,191 Posts
Discussion Starter

Quote:

I've been trying 3dLut profile calibration last 2 months with argylCMS and madVR based on this guide
http://yabb.jriver.com/interact/index.php?topic=78302.0

with good results and I see you propose subtle differences. These are:

What are the benefits of using each one this options?

The guide posted by hulkss using ArcgyllCMS and Ti3parser does NOT create a good quality 3DLUT. Delta luminance errors for measured points in the gamut are mostly above 3.

I will explain the options more in detail in post #2. I'm just starting out in color management and may take me some time to learn what some of these options do as well.

Quote:
What is the reason for disable settings in "Advanced gamut mapping options"?

I did not need adjust any settings in "Advanced gamut mapping options". I wanted to make sure people that have used hulkss's guide do not forget to turn those options off when using the workflow above.
Quote:
I usually calibrate white balance and gamma to 2.2 with HCFR and after that make a profile with DispcalGUI and use it to get the 3dLut file. Therefore I hit the "only profile" button. Am I getting the same results?
Yes, you should.
Quote:
Why don't use LinkICCGUI? It seems more automated.
Like I said, ti3parser does not produce a 3DLUT that is accurate.
Quote:
Who do we need to disable GPU gamma ramps?
Because in the collink.exe command, the calibration curves are already incorporated into the 3DLUT using the option "-a display.cal".
Quote:
On the other hand, I have two displays conected a TV and a Projector. Each needs a different 3dLut File. Is there a way to instruct madVR to automatically identify the display and choose the correct edLut File?
Quote:

If you want to optimally linearize the gamut I've found that the patch count using OFPS generation needs to be >=1500, 2500 should cover a troublesome display like the Sharp Elite. And by optimal I mean you'll end up with a very symmetric error distribution at or near your probe's precision. It probably won't be visually much different than what you did above.

Thanks for the tip.
I did a profile with the massive testchart this morning and it did provide lower average dEs.
But like you said, can't really tell visually.

#### N3W813

·
##### Registered
Joined
·
1,191 Posts
Discussion Starter

Quote:

Playback was a bit choppy so I may be at the limits of what my PC can handle.

You will need a video card that is powerful enough to handle processing the 3DLUT. You can try setting the chroma/image upscale/downscale options in MadVR to see which offers the best performance vs quality.

I also found out my video card is not sufficient enough to process 1080p60 video files with 3DLUT enabled and Jinc3 AR scaling options. Time to upgrade!!

#### fahrenheit

·
##### Registered
Joined
·
711 Posts
So I went to take measurements but found for some reason, MP-HC with madVR couldn't playback my test patterns (AVSHD in m2ts). It would result in green bars at the top and colour shift.

I'll have to try with the mp4 versions.

#### alamagar

·
##### Registered
Joined
·
60 Posts

Quote:

The guide posted by hulkss using ArcgyllCMS and Ti3parser does NOT create a good quality 3DLUT. Delta luminance errors for measured points in the gamut are mostly above 3.

I will explain the options more in detail in post #2. I'm just starting out in color management and may take me some time to learn what some of these options do as well.

I did not need adjust any settings in "Advanced gamut mapping options". I wanted to make sure people that have used hulkss's guide do not forget to turn those options off when using the workflow above.

Yes, you should.

Like I said, ti3parser does not produce a 3DLUT that is accurate.

Because in the collink.exe command, the calibration curves are already incorporated into the 3DLUT using the option "-a display.cal".

Thanks for the tip.
I did a profile with the massive testchart this morning and it did provide lower average dEs.
But like you said, can't really tell visually.

Thanks a lot for your answers. I'll give a try this week and share the results.

Bye.

#### fairchild99

·
##### Registered
Joined
·
890 Posts
On my second go with your guide and using argyllcms + madvr and this second time I decided to simply do a profile, as you had suggested to another user that the quality should be as good as doing both the calibration and profile. (i already do a calibration using HCFR and rather not do yet another long calibration session.)

The first attempt I had used a 2.4 calibrated gamma and the results looked way off. My grayscale de's had increased tremendously so I was not pleased with the results.

I went back to doing a 2.2 gamma calibration and will re-measure and see if the results are better this time with just a profile being done. This is what my settings look like in the displaycalgui window. Hopefully I have set the proper mode for my colormunki spectro (difference from Hi-res and adaptive hi-res shouldn't throw things off?):

Also, I went ahead and changed the command to be:

I took out the -a parameter and the .cal file (which I don't have now since I only performed a profile), this should be correct and provide an acceptable 3dlut I hope.

#### zoyd

·
##### Registered
Joined
·
6,804 Posts
Use the -I b parameter or Rec709_gamma22.icm otherwise you'll end up with a gamma that is too low.

#### fairchild99

·
##### Registered
Joined
·
890 Posts

Quote:

Use the -I b parameter or Rec709_gamma22.icm otherwise you'll end up with a gamma that is too low.

Yep, my second attempt came out with gamma around 1.8-1.9
so everything was way too bright. I was sticking to the rec709.icm since that one was the new one that Graeme had pointed to in the MadVR thread so I figured it was ok to go with that one as the most up to date one.

So the parameter to get the right gamma (aka gamma that my display is putting out or was calibrated to originally) is -I b?

So I could just put the command as such:

collink.exe -v -3m -qh -et -Et -G -ial -I b Rec709.icm display.icm madvr.icm

or do I need to change something else? Thanks!

#### zoyd

·
##### Registered
Joined
·
6,804 Posts
yes, try that to start, should give you a BT.1886. If that's too dark you can do -I b -I 2.3 (or 2.2)

#### kanedo

·
##### Registered
Joined
·
95 Posts
Is there a way to specify a windowed pattern size in dispcalgui for use with plasmas?

#### gwgill

·
##### Registered
Joined
·
1,155 Posts

Quote:

[*] Check 'disable GPU gamma ramps'

Note that on my system, "disable GPU gamma ramps" doesn't work in either window or full screen exclusive mode, and there are three possible ways of working around this.

1) Disable the VideoLUTs by running "dispwin -c" instead. (You can restore the installed profiles calibration using "dispwin -L").

2) Don't use the collink "-a display.cal" parameter (ie. create a link/3dlut that doesn't

incorporate the display calibration curves), and load the calibration curves into the VideoLUT

using "dispwin display.cal"

3) Don't use the collink "-a display.cal" parameter (ie. create a link/3dlut that doesn't

incorporate the display calibration curves), and install the profile, ie. "dispwin -I display.icm"

(Given the uncertainty of whether "disable GPU gamma ramps" works, I'm not sure I'd recommend a sequence that depends on it. On the other hand, it's not clear if VideoLUTs can be used in a video overlay mode.)

1 - 20 of 5411 Posts