INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: How To Get Perfect Video Color With JRiver MC  (Read 27834 times)

hulkss

  • Galactic Citizen
  • ****
  • Posts: 446
How To Get Perfect Video Color With JRiver MC
« on: February 17, 2013, 07:04:49 pm »

I have been using JRiver DSP to get great audio. It digitally filters the signal going to my speakers to correct the sound. In a similar way, Red October HQ can be used to get great video. It can digitally modify the signal going to your display to correct the image color. This is FANTASTIC and would normally require a specialized video color processor system costing thousands of dollars! This process works with any type of TV, Projector, or computer monitor connected to an HTPC.

Color in a computer is represented by three numbers (0-255 each) representing red, blue, and green output. This forms a cube with over 16 milion colors. The corners of the cube are black, white, red, green, blue, magenta, yellow, and cyan.



With an HTPC we can correct the image color in two ways: First, by installing an Image Color Management profile (ICM profile) in the Windows operating system. This will correct the gamma and gray scale response of the display for all applications. This is accomplished in the ICM file with three, one dimensional Color Lookup Tables (CLUTs), one for each primary color.

The second level of color correction for video playback is accomplished by installing a Three Dimensional Look Up Table (3D LUT) in the madVR rendering engine of Red October HQ. This will add additional correction for errors in the color gamut of the display.



To create the ICM profile and 3D LUT you will need a colorimeter and some free software. I use an EyeOne Display 3 Pro colorimeter with ChromaPure software. You can get the meter only if you want to use the free HCFR software: EyeOne Display 3 & ChromaPure

Download and install the following software:
AVS HD 709 MP4 test patterns: Test Patterns
AVS HD 709 patterns manual: Patterns Manual
HCFR Software: HCFR Software

First you calibrate your display to its best native state using its built in hardware controls.
1. Set your computer video and display to RGB.
2. Turn off all computer video enhancement settings in the video hardware driver.
3. Make sure no color profiles are loaded in Windows (control panels / color management).
4. With Red October HQ playing, go to madVR settings (right click during video playback). Select your display under devices and review the settings. Make sure to use the proper selection for RGB levels under the properties tab. This depends on your display capability. I use 0-255 in madVR and 16-235 on my video projector. That is what works with my Intel HD 4000 graphics. The test for black and white points mentioned below will help you find selections that work best. Select disable calibration under the calibration tab. Do not check disable gamma ramps. Under color & gamma, do not enable gamma processing.

If you're new to video calibration, go to Grey Scale And Color Calibration For Dummies: Calibration for Dummies. Use the colorimeter and HCFR to get as close as you can to Rec. 709, the color standard for HD television. Gamma should be 2.2 - 2.4 depending on preference and how dark your room is (higher numbers for darker rooms). The standard color temperature is 6500 K (D65). Play the Basic Settings patterns you downloaded in RedOctober HQ to get the Black and White points correct, then use the HCFR greyscale patterns. You may be able to adjust the primary and secondary colors. A lot depends on the features in the Color Management System (CMS) of your display. Refer to your manual as needed.

My cheap Acer monitor calibrated to the best possible settings before color profiling (ChromaPure):




Download and install the following software:
dispcalGUI: DispcalGUI
Argyll Color Management System: Argyll Color Management
TI3 Parser toolset: TI3 Parser

Set dispcalGUI to video, profile type XYZ LUT + matrix. Click the advanced button to set gamut mapping options: check both boxes; select an Rec. 709 profile; set the intents to absolute colorimetric. Click on the Calibrate & Profile button. When finished install the ICM profile. Check that it is loaded as the default profile for your display in the color management control panel.

Now go to the bin folder of the Ti3 Parser toolset and run LinkICCGUI.exe (important: Uncheck Auto-calibrate, this will then make a 3D LUT that will work with the installed ICM profile). The application will browse to the default locations to load the files created by dispcalGUI. Click on generate to make the 3D LUT for madVR. Go back to madVR settings and under calibration pick the 3D LUT option. Make the link to the .3dlut file you just created. Click apply and OK. Your done!

Go back and use HCFR and patterns played with madVR to verify that your display is working to near perfection. My cheap Acer monitor after color profiling (ChromaPure):


Logged

jmone

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 14234
Re: How To Get Perfect Video Color With JRiver MC
« Reply #1 on: February 18, 2013, 03:25:54 am »

Great write up.  Can I suggest that you add this to the wiki so it does not get lost?  I'm hoping that one day some of the basic test patterns and calibration is part of MC (like it now does for audio).  The other option (which I did) is that you can get ISF calibration done on some TV via the service menus though this can be expensive as at tech comes to your house to do this magic.
Logged
I'm not a python at JRiver - just another Aussie

6233638

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 5353
Re: How To Get Perfect Video Color With JRiver MC
« Reply #2 on: February 18, 2013, 05:50:08 am »

Be careful with making adjustments below about 20% with 3DLUTs. I find that they have a tendency to introduce considerable posterisation. In fact, I would avoid making any greyscale adjustments inside madVR if your display has suitable controls to bring it to a relatively flat level, and only use it to fine-tune gamma. You may find that fixing gamma alone really helps the greyscale performance of your display.

Similarly, I have had poor results generating a LUT inside ArgyllCMS and converting it. Measured well, looked terrible:

You may not experience these problems, or you might be using a display where it is not an issue though. (Plasma & DLP displays always posterise, so additional posterisation may be masked)

I'm not saying you shouldn't make any corrections, but be careful - it's one thing to measure well, it's another to actually look good while doing it.

Personally I have ended up using the built-in 3DLUT options to generate a LUT from 20-100% for gamma correction (only Y is adjusted, xy is left at 0.312713, 0.329016) and because my display is pretty accurate I don't make any colour corrections and have the LUT set to
Code: [Select]
red,   Yxy, 0.2126, 0.640000, 0.330000
green, Yxy, 0.7152, 0.300000, 0.600000
blue,  Yxy, 0.0722, 0.150000, 0.060000
white, Yxy, 1.0000, 0.312713, 0.329016

It would be possible to dial it in better if we had fine controls over the LUT generation, but what we need just isn't there yet.

There's only so much correction you can do when the video card's output is 8-bit, even if the software is working in 16-bit internally. Madshi has said that he plans on writing his own LUT system in the future, as yCMS development seems to have halted, and it does not offer the flexibility that many users (such as myself) need.

I would much rather hand-tune a LUT at 50 points or so (RGBCMY 20/40/60/80/100%, 5-100% greyscale/gamma in 5% steps) and interpolate that data to create a smooth LUT, than use an automatically generated LUT, even if it uses considerably more precision. In my opinion, you can only really do that with pro-grade hardware that is much more stable over time, and when taking repeated measurements.

In fact, in my experience, many displays actually perform better with considerably less adjustments in the LUTs. Back when CRTs were still around, I would have better results with four-point correction at the extremes (say 1%, 10%, 100% and 109%) rather than 20-point. This was enough to correct the slope (and the 1% adjustment let you use a nice trick to significantly lower black level without impacting shadow detail) as the displays I used were relatively linear between the extremes, and too fine an adjustment would measure slightly better, but look considerably worse due to posterization that would start to creep in - but I am very sensitive to it. I know people that would prefer the display to measure "accurately" on every point and not even notice the posterization being introduced.
Logged

audunth

  • Citizen of the Universe
  • *****
  • Posts: 632
Re: How To Get Perfect Video Color With JRiver MC
« Reply #3 on: February 18, 2013, 07:27:41 am »

I had my projector professionally calibrated when I bought it (cost me 2500 NOK/about $400 extra), so what I need is a bit-perfect picture out from my PC to the projector. Is there anything I need to do to ensure what's passed out through the HDMI port is exactly what's in the video file, untouched in the playbach chain?
Logged
Cheers,
Audun

My system:
ASUS  P8Z68 V-PRO/GEN3, 8GB RAM, Core i5-2500K
EVGA Nvidia GTX 970 SSC, 4GB RAM
Antec P180 case w/Seasonic X460 fanless PSU, water cooled by Zalman Reserator 1+ w/extra DDC pump
Windows 7 Ultimate 64 bit
Sony VPL-HW30ES 3D projector
Yamaha RX-V3900 receiver and custom built 2Ch power amp for front/stereo speakers
Klipsch Reference/SVS 7.1 speaker system
Always running the latest available version of MC

Sandy B Ridge

  • Citizen of the Universe
  • *****
  • Posts: 885
Re: How To Get Perfect Video Color With JRiver MC
« Reply #4 on: February 18, 2013, 09:04:41 am »

I had my projector professionally calibrated when I bought it (cost me 2500 NOK/about $400 extra), so what I need is a bit-perfect picture out from my PC to the projector. Is there anything I need to do to ensure what's passed out through the HDMI port is exactly what's in the video file, untouched in the playbach chain?
There is no such concept as 'bitperfect' for the video path. Any video data will need to be upscaled and rejigged to get into your projector. This includes bluray video which needs the chroma data upscaled to full screen resolution. 

The fact that you already have a calibrated projector is a massive bonus since any adjustments to the PC video will be smaller than they would otherwise need to be. What you now need to do is ensure that your PC video output is just as calibrated as your projector.

The guide above is excellent and should definitley be added as a sticky wiki. Follow the guide above and you should see an improvement in you video files. However, expect to see some changes over the next year or so, because as 6233638 says the current process isn't flawless and hopefully expect some usual madshi excellence in this regard.

SBR
Logged

hulkss

  • Galactic Citizen
  • ****
  • Posts: 446
Re: How To Get Perfect Video Color With JRiver MC
« Reply #5 on: February 18, 2013, 08:34:40 pm »

"Be careful with making adjustments below about 20% with 3DLUTs."
A good suggestion for displays or colorimeters with poor low light performance. The software default settings do zero correction at black and a controlled ramp transition can be specified as output increases.

"I find that they have a tendency to introduce considerable posterisation. In fact, I would avoid making any greyscale adjustments inside madVR if your display has suitable controls to bring it to a relatively flat level, and only use it to fine-tune gamma."
Yes, always get as good as possible with adjustments in display hardware. The gamma corrections I suggest take place in a windows operating system ICM profile and are very commonly used to color profile printers and displays by photographers.

"Similarly, I have had poor results generating a LUT inside ArgyllCMS and converting it. Measured well, looked terrible"
There are so many variables that bad results are possible. I had many as I learned my way. The method I listed seems to work quite well on an Asus monitor, LG monitor, and a JVC projector that I have tried.

It would be possible to dial it in better if we had fine controls over the LUT generation, but what we need just isn't there yet.
The settings in dispcalGUI provide some but limited control.

"I know people that would prefer the display to measure "accurately" on every point and not even notice the posterization being introduced."
I found that I can look at full screen width grey and color ramps to check for banding or posterization caused buy an improper LUT. I usually do not correct black point or white point to keep maximum dynamic range. Most eyes are not too sensitive to the color of 0% Black or 100% White.
Logged

alyupb

  • Recent member
  • *
  • Posts: 5
Re: How To Get Perfect Video Color With JRiver MC
« Reply #6 on: April 03, 2013, 03:28:23 pm »

Hello all,

I have recently purchased JRiver MC 18 and stumbled upon this thread when searching for calibration tips.

I would like to thank hulkss for the excellent tutorial, however on my display, I too have encountered posterisation issues as stated by 6233638.
I have a Sony HX929, and I am using an i1DisplayPro colorimeter (in Calman 5). I ended up using yCMS just for gamma correction as suggested by 6233638.
However, I am not able to get gamma to be perfect with this method, I constantly have to "lie" to yCMS about what my Y measurements are in order for it to give me a perfect gamma (for example if I measured 3.04 Y cd/m2 for my 20 grayscale point, I have to set it to something like 3.09 for yCMS to set the luminance for that point perfectly).

I apologize if this is off-topic, but I have a couple of questions on the matter:

1) Are there any potential downsides to the way I trick yCMS to get my gamma perfect?

2) My goal is to achieve 2.4 power curve gamma, however yCMS only corrects to 2.2 power curve, to get around this I enable gamma processing in MadVR and set it to 2.4, and then proceed to make the above adjustments to get exactly 2.4 throughout my entire gamma range. Is there any way to have yCMS correct to 2.4, in order to avoid using gamma processing option in MadVR?

3) If I don't tell yCMS what my 10 grayscale point Y value is, I am unable to get the luminance value correct for that point. When I include the luminance measurement for point 10 and tweak it to have gamma measure perfectly for that point, I do not get any posterisation issues but my deltaE u'v' does go up a bit for that point. Is this an acceptable way to correct luminance error at the 10 point, or should I completely avoid making any luminance adjustments this low in the grayscale?

I realize that these are very specific questions which probably should be posted at the relevant forums for each topic, but seeing as this thread discusses most of these elements, I figured I would give it a try.

I would appreciate any input anybody can provide.
Logged

6233638

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 5353
Re: How To Get Perfect Video Color With JRiver MC
« Reply #7 on: April 03, 2013, 03:50:58 pm »

1) Are there any potential downsides to the way I trick yCMS to get my gamma perfect?
That's exactly what I do with yCMS, and there don't seem to be any problems with it. You have to do this because yCMS only accepts input data measured from the display, and tries to calculate what it thinks the output LUT should be, rather than being able to adjust the output values of the LUT directly. I find it very tedious compared to hardware devices that let you edit the LUT directly. (for example the AVFoundry VideoEQ)

This is why I would avoid using the gamut controls unless your display is far off spec. (the HX929 should not be) In theory yCMS LUTs should allow you to dial in perfect color, but it's lacking the controls required to achieve it.

For gamma you can measure the display for a rough correction, and then start work on adjusting the points manually to correct it. (I work my way down from 100%)
Alternatively, you could even just set Y to 100 or even 1000, and manually adjust each point until it is correct.

2) My goal is to achieve 2.4 power curve gamma, however yCMS only corrects to 2.2 power curve, to get around this I enable gamma processing in MadVR and set it to 2.4, and then proceed to make the above adjustments to get exactly 2.4 throughout my entire gamma range. Is there any way to have yCMS correct to 2.4, in order to avoid using gamma processing option in MadVR?
You could just change the values until yCMS is outputting what you need for 2.4 gamma. It shouldn't really matter. However if you adjust values so that you have 2.2 gamma correct via yCMS, you should then be able to use the madVR gamma correction to adjust your display to any other gamma accurately.

3) If I don't tell yCMS what my 10 grayscale point Y value is, I am unable to get the luminance value correct for that point. When I include the luminance measurement for point 10 and tweak it to have gamma measure perfectly for that point, I do not get any posterisation issues but my deltaE u'v' does go up a bit for that point. Is this an acceptable way to correct luminance error at the 10 point, or should I completely avoid making any luminance adjustments this low in the grayscale?
I adjust my display so that 0-20% are correct using its own controls (with your HX929 it will be the "gamma" control) and only give yCMS values from 20-100% as any changes below 20% in yCMS introduce posterization for me.

Here's an example LUT from my display that is only adjusting gamma. (not current, but I happened to have a text file with this information in it)
Code: [Select]
red,   Yxy, 0.2126, 0.640000, 0.330000
green, Yxy, 0.7152, 0.300000, 0.600000
blue,  Yxy, 0.0722, 0.150000, 0.060000
white, Yxy, 1.0000, 0.312713, 0.329016

20,  Yxy,   1.97, 0.312713, 0.329016
30,  Yxy,   5.45, 0.312713, 0.329016
40,  Yxy,  11.09, 0.312713, 0.329016
50,  Yxy,  19.20, 0.312713, 0.329016
60,  Yxy,  30.50, 0.312713, 0.329016
70,  Yxy,  45.20, 0.312713, 0.329016
80,  Yxy,  62.20, 0.312713, 0.329016
90,  Yxy,  81.50, 0.312713, 0.329016
100, Yxy, 100.00, 0.312713, 0.329016
P.S. With your HX929 being a local dimming LCD, I hope you are using full field and not windowed patterns.
Logged

alyupb

  • Recent member
  • *
  • Posts: 5
Re: How To Get Perfect Video Color With JRiver MC
« Reply #8 on: April 03, 2013, 05:02:04 pm »

For gamma you can measure the display for a rough correction, and then start work on adjusting the points manually to correct it. (I work my way down from 100%)
Alternatively, you could even just set Y to 100 or even 1000, and manually adjust each point until it is correct.
You could just change the values until yCMS is outputting what you need for 2.4 gamma. It shouldn't really matter. However if you adjust values so that you have 2.2 gamma correct via yCMS, you should then be able to use the madVR gamma correction to adjust your display to any other gamma accurately.
I adjust my display so that 0-20% are correct using its own controls (with your HX929 it will be the "gamma" control) and only give yCMS values from 20-100% as any changes below 20% in yCMS introduce posterization for me.
Thanks for the input and the LUT example, that clears up all of my questions pretty much. Greatly appreciated.

One more thing I wanted to add that pertains to my display specifically, when I enable backlight scanning on my display, I seem to need different white balance settings on my TV as well as different values in yCMS for gamma correction. I am not sure whether your set has backlight scanning, but it would be an interesting comparison.
Logged

6233638

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 5353
Re: How To Get Perfect Video Color With JRiver MC
« Reply #9 on: April 03, 2013, 06:04:19 pm »

One more thing I wanted to add that pertains to my display specifically, when I enable backlight scanning on my display, I seem to need different white balance settings on my TV as well as different values in yCMS for gamma correction. I am not sure whether your set has backlight scanning, but it would be an interesting comparison.
I have an HX900 rather than a HX929.

Backlight scanning (MotionFlow Clear/Clear 2) makes no difference to color temperature, only brightness, but enabling/disabling local dimming (LED Dynamic Control) does - though I always have it enabled.
Switching between Game/Graphics and the other scene modes changes the brightness and color temperature because they don't use backlight scanning, and while they do use local dimming, they don't turn the zones off fully like the other modes do.

I normally leave the set in Game mode which is calibrated to 2.2 gamma on the desktop, and then hit the Theater button on the remote which toggles between the current scene mode and the Cinema mode when playing films.
I have them calibrated separately (using the TV controls) so that they are both at the same brightness and measure D65 though, and my yCMS calibration is based on the Cinema mode.
Logged
Pages: [1]   Go Up