Log in

View Full Version : yCMS - Color Management System


Pages : 1 2 3 4 5 6 7 8 9 [10] 11 12 13 14 15 16 17

yesgrey
12th February 2011, 17:44
After measurements were done with ArgyllCMS, I compiled this input file for yCMS.

Input_Format HD YCbCr 8
Output_Format HD RGB_PC 16
Gamut_Measurements 2
49.787 22.566 0.39131
26.635 70.618 1.0149
16.223 6.3478 93.516
92.336 99.857 92.722
Grayscale_Measurements
0.40984 2 0.19656 0.2173 0.29234
0.81967 2 0.19704 0.21693 0.29294
1.2295 2 0.20501 0.21997 0.2967
1.6393 2 0.22411 0.22729 0.31592
2.0492 2 0.23832 0.2355 0.33466
2.459 2 0.25738 0.25113 0.35658
2.8689 2 0.28234 0.27719 0.39714
3.2787 2 0.31349 0.3033 0.42918
3.6885 2 0.31395 0.29871 0.4408
4.0984 2 0.3427 0.33095 0.47644
4.5082 2 0.38989 0.37029 0.52448
4.918 2 0.48421 0.45961 0.63333
5.3279 2 0.52503 0.50603 0.68509
5.7377 2 0.57961 0.55097 0.74415
6.1475 2 0.57323 0.55014 0.7402
6.5574 2 0.64953 0.62507 0.81154
6.9672 2 0.70777 0.68133 0.88415
7.377 2 0.7664 0.74397 0.94728
7.7869 2 0.85319 0.83235 1.0304
8.1967 2 0.87866 0.85696 1.0578
8.6066 2 0.88026 0.85462 1.0568
9.0164 2 0.89526 0.88149 1.0808
9.4262 2 0.94857 0.92353 1.1312
9.8361 2 0.97063 0.94927 1.1568
10.246 2 0.99381 0.97357 1.1757
10.656 2 1.0192 1.0002 1.2087
11.066 2 1.0698 1.0517 1.2497
11.475 2 1.0685 1.0537 1.261
11.885 2 1.1534 1.1344 1.3367
12.295 2 1.202 1.1868 1.3876
12.705 2 1.289 1.2752 1.4723
13.115 2 1.3713 1.3692 1.5595
13.525 2 1.5 1.4973 1.6805
13.934 2 1.6334 1.6416 1.8035
14.344 2 1.76 1.7816 1.9319
14.754 2 1.9058 1.9299 2.0594
15.164 2 2.0138 2.0483 2.1622
15.574 2 2.1676 2.2094 2.3034
15.984 2 2.2929 2.3405 2.4187
16.393 2 2.292 2.3443 2.419
16.803 2 2.4317 2.4944 2.5668
17.213 2 2.5907 2.6752 2.698
17.623 2 2.7138 2.8061 2.8197
18.033 2 2.8954 2.9976 2.9809
18.443 2 3.0273 3.146 3.0985
18.852 2 3.1612 3.2948 3.2328
19.262 2 3.1682 3.2973 3.2418
19.672 2 3.3454 3.4958 3.3945
20.082 2 3.5388 3.7048 3.6086
20.492 2 3.6934 3.8684 3.7684
20.902 2 3.8855 4.0938 3.974
21.311 2 4.0982 4.3077 4.1856
21.721 2 4.2168 4.4276 4.3017
22.131 2 4.2148 4.4248 4.3039
22.541 2 4.4809 4.7505 4.5994
22.951 2 4.8206 5.1118 4.9473
23.361 2 4.997 5.3138 5.1068
23.77 2 5.1829 5.5182 5.3173
24.18 2 5.1842 5.5125 5.3034
24.59 2 5.4204 5.7498 5.5862
25 2 5.6198 5.9803 5.7705
25.41 2 5.8239 6.2164 6.0138
25.82 2 5.9833 6.401 6.1631
26.23 2 6.0953 6.5386 6.2748
26.639 2 6.3213 6.7667 6.4656
27.049 2 6.4557 6.9363 6.589
27.459 2 6.6758 7.1523 6.8276
27.869 2 6.8222 7.333 6.9925
28.279 2 6.9753 7.4911 7.1772
28.689 2 7.1768 7.6874 7.3836
29.098 2 7.3701 7.8973 7.6002
29.508 2 7.5364 8.0962 7.7717
29.918 2 7.6371 8.2271 7.9247
30.328 2 7.9014 8.5347 8.1841
30.738 2 8.1069 8.7287 8.4185
31.148 2 8.3125 8.9659 8.6419
31.557 2 8.5085 9.1857 8.8023
31.967 2 8.8415 9.5592 9.1487
32.377 2 9.0827 9.8345 9.4105
32.787 2 9.269 10.026 9.6175
33.197 2 9.4961 10.24 9.8378
33.607 2 9.6921 10.479 10.051
34.016 2 9.938 10.748 10.312
34.426 2 10.182 11.002 10.544
34.836 2 10.347 11.207 10.712
35.246 2 10.657 11.527 11.057
35.656 2 10.86 11.729 11.256
36.066 2 11.148 12.083 11.542
36.475 2 11.413 12.334 11.868
36.885 2 11.67 12.641 12.045
37.295 2 11.877 12.897 12.18
37.705 2 12.119 13.16 12.352
38.115 2 12.339 13.359 12.706
38.525 2 12.624 13.694 12.996
38.934 2 12.972 14.073 13.385
39.344 2 13.247 14.361 13.627
39.754 2 13.479 14.624 13.844
40.164 2 13.703 14.883 14.097
40.574 2 14.019 15.215 14.448
40.984 2 14.62 15.879 15.016
41.393 2 14.911 16.188 15.308
41.803 2 15.134 16.452 15.55
42.213 2 15.508 16.862 15.982
42.623 2 15.748 17.181 16.216
43.033 2 16.016 17.386 16.487
43.443 2 16.329 17.759 16.733
43.852 2 16.632 18.076 17.052
44.262 2 16.908 18.37 17.368
44.672 2 17.26 18.802 17.744
45.082 2 17.661 19.198 18.106
45.492 2 17.876 19.477 18.337
45.902 2 18.199 19.754 18.694
46.311 2 18.528 20.186 19.17
46.721 2 18.803 20.537 19.264
47.131 2 19.137 20.849 19.633
47.541 2 19.472 21.238 19.951
47.951 2 19.674 21.479 20.119
48.361 2 20.119 21.979 20.582
48.77 2 20.432 22.192 21.021
49.18 2 20.793 22.6 21.397
49.59 2 21.144 22.965 21.808
50 2 21.885 23.816 22.288
50.41 2 22.236 24.211 22.597
50.82 2 22.654 24.689 23.05
51.23 2 23.057 25.074 23.54
51.639 2 23.413 25.504 23.88
52.049 2 23.886 25.986 24.354
52.459 2 24.353 26.512 24.842
52.869 2 24.583 26.773 25.031
53.279 2 25.008 27.23 25.561
53.689 2 25.437 27.744 25.867
54.098 2 25.895 28.193 26.3
54.508 2 26.139 28.434 26.616
54.918 2 26.613 28.948 27.143
55.328 2 26.987 29.36 27.58
55.738 2 27.423 29.908 27.919
56.148 2 27.84 30.313 28.368
56.557 2 28.283 30.756 28.844
56.967 2 28.764 31.364 29.268
57.377 2 28.998 31.57 29.398
57.787 2 29.529 32.097 29.96
58.197 2 29.942 32.487 30.416
58.607 2 30.429 33.14 30.854
59.016 2 30.961 33.7 31.46
59.426 2 31.792 34.691 32.189
59.836 2 32.223 35.122 32.657
60.246 2 32.73 35.617 33.247
60.656 2 33.11 35.985 33.661
61.066 2 33.527 36.437 33.945
61.475 2 34.066 37.04 34.551
61.885 2 34.645 37.61 34.985
62.295 2 34.895 38.052 35.356
62.705 2 35.432 38.627 35.903
63.115 2 35.823 39.041 36.231
63.525 2 36.258 39.498 36.796
63.934 2 36.804 40.1 37.255
64.344 2 37.402 40.799 37.981
64.754 2 37.725 41.199 37.947
65.164 2 38.22 41.757 38.422
65.574 2 38.719 42.343 38.799
65.984 2 39.184 42.815 39.352
66.393 2 38.033 41.4 38.268
66.803 2 40.109 43.853 40.25
67.213 2 40.722 44.545 40.982
67.623 2 41.177 44.977 41.424
68.033 2 41.756 45.608 42.121
68.443 2 42.695 46.717 42.968
68.852 2 43.064 47.185 43.174
69.262 2 43.731 47.778 43.915
69.672 2 44.305 48.415 44.378
70.082 2 44.796 49.091 45.117
70.492 2 45.309 49.589 45.663
70.902 2 45.82 50.168 46.094
71.311 2 46.379 50.84 46.665
71.721 2 46.8 51.473 47.011
72.131 2 47.577 52.069 47.972
72.541 2 48.048 52.472 48.153
72.951 2 48.411 52.791 48.697
73.361 2 49.067 53.576 49.231
73.77 2 49.614 54.257 49.756
74.18 2 50.155 54.886 50.397
74.59 2 50.773 55.497 51.211
75 2 51.306 56.125 51.469
75.41 2 52.078 56.82 52.478
75.82 2 52.609 57.43 52.956
76.23 2 53.358 58.306 53.835
76.639 2 53.478 58.552 53.81
77.049 2 53.941 58.903 54.098
77.459 2 55.251 60.285 55.516
77.869 2 56.034 61.174 56.313
78.279 2 56.647 61.684 57.051
78.689 2 56.944 62.033 57.217
79.098 2 57.766 62.898 57.948
79.508 2 58.332 63.537 58.47
79.918 2 59.148 64.318 59.316
80.328 2 59.902 65.156 60.057
80.738 2 60.219 65.562 60.075
81.148 2 60.984 66.447 60.877
81.557 2 61.438 66.797 61.23
81.967 2 62.124 67.544 61.965
82.377 2 62.716 68.076 62.704
82.787 2 63.477 69.072 63.356
83.197 2 64.041 69.59 63.928
83.607 2 64.828 70.462 64.612
84.016 2 65.206 70.902 64.954
84.426 2 65.905 71.776 65.634
84.836 2 66.443 72.185 66.337
85.246 2 67.096 72.712 67.037
85.656 2 67.868 73.556 67.583
86.066 2 68.395 74.22 68.242
86.475 2 69.55 75.379 69.288
86.885 2 70.308 76.098 70.227
87.295 2 71.072 77.068 70.863
87.705 2 71.606 77.531 71.45
88.115 2 72.216 78.178 72.151
88.525 2 73.074 79.19 73.349
88.934 2 73.808 79.994 73.545
89.344 2 74.162 80.329 73.773
89.754 2 74.849 81.055 74.398
90.164 2 75.688 81.953 75.486
90.574 2 76.47 82.903 75.999
90.984 2 77.163 83.479 77.073
91.393 2 77.949 84.333 77.822
91.803 2 78.276 84.674 78.043
92.213 2 79.323 85.772 79.232
92.623 2 79.815 86.289 79.665
93.033 2 80.812 87.452 80.735
93.443 2 81.489 88.31 81.464
93.852 2 82.149 88.881 82.168
94.262 2 83.037 89.858 83.042
94.672 2 83.422 90.212 83.392
95.082 2 84.298 91.215 84.435
95.492 2 85.762 92.857 85.832
95.902 2 86.849 94.316 86.774
96.311 2 87.367 94.708 87.364
96.721 2 88.171 95.28 88.555
97.131 2 88.234 95.453 88.149
97.541 2 89.047 96.407 88.832
97.951 2 89.849 97.238 89.8
98.361 2 90.709 98.243 90.559
98.77 2 91.526 99.116 91.768
99.18 2 92.195 99.846 92.398
99.59 2 92.409 99.985 92.726
100 2 92.336 99.857 92.722

It does complain about some inaccurate measurements:
Warning: Grayscale measurement on line 49 might be inaccurate.
Warning: Grayscale measurement on line 42 might be inaccurate.
Warning: Grayscale measurement on line 30 might be inaccurate.
Warning: Grayscale measurement on line 23 might be inaccurate.
The file '..\HD - PC.3dlut' was successfully created.
Running time: 6703ms; Computation time: 5718ms (85.3%)
but does complete.

Are you sure that the file you used was the one posted above? I've decided to try it now to see if I could find the reason for your results and yCMS doesn't even complete. There are several values that can't be correct, with lower Luminances for higher IREs...

cyberbeing
12th February 2011, 17:52
You need to run yCMS from command prompt. madVR is throwing an error because it sounds like you are editing your 3DLUT like a text file. Your 3DLUT should be a 96MB binary file.

copy

Input_Format HD YCbCr 8
Output_Format HD RGB_PC 16
Gamut_Measurements 2
70.28325 31.64575 1.074425
24.9915 84.4635 11.7725
23.6385 8.894625 124.175
118.385 124.48 136.145
into a txt file. For example HDPC.txt, and place it in your yCMS directory.

Start Menu -> Run -> CMD
(Replace "C:\...\madVR\yCMS\" with your yCMS directory.)
cd "C:\...\madVR\yCMS\"
ycms HDPC.txt "HD - PC"
Copy the 96MB "HD - PC.3dlut" from your yCMS directory to your madVR directory.

starlight2
12th February 2011, 18:04
oooooooookkkkkk Thanks now work :)
:thanks:

yesgrey
12th February 2011, 18:20
1) Within the folder Madvr / Ycms yCMS.exe and then run it (it does not open anything and does not create any files)
yCMS is a command line tool. So, if you want to run it directly you should do as stated in the manual (you should find it in the same folder as yCMS).

2) Within the root / madvr and open with both blocknote (HD - PC.3dlut) that (HD - Video.3dlut), paste it into parameters like this:

Input_Format HD YCbCr 8
Output_Format HD RGB_PC 16
Gamut_Measurements 2
70.28325 31.64575 1.074425
24.9915 84.4635 11.7725
23.6385 8.894625 124.175
118.385 124.48 136.145

Then I open a MKV with MPCHC ---- ---- madvr 3dlut active but the screen goes black and I get this error in red:
Ready 3dlut file header failed "
You should never mess up with the .3dlut files. That's why you are getting the wrong header messages.

If you want madVR to create your custom 3dlut files you need to edit the template files inside yCMS dir, and delete the .3dlut files inside madVR's dir, then madVR automatically creates new ones using the template files.

Edit: cyberbeing was faster than me.;)

cyberbeing
13th February 2011, 05:59
This just shows that yCMS is in need of a simple GUI. Anybody volunteer to code one?

Input file (Browse...)
Output file (Browse...)
Create 3DLUT Button

Matching_Mole
22nd February 2011, 19:24
I tried to use yCMS 1.10 but the results that I got were clearly wrong and I don't understand exactly why. So maybe you can help me to understand where I make mistakes.

Currently I use 3dlut generated by yCMS via avisynth rgb3dlut filter (until that Madvr got subtitle pin renderer implemented). First I calibrated my screen using a generic 3dlut using the template HD - PC provided in the archive, so without any gamut correction. To achieve this calibration I used the HCFR Color software to make the proper measurements. And here my results:

CIE diagram:
http://img217.imageshack.us/img217/6413/cieb.jpg


Gamma 2.22 curve:
http://img251.imageshack.us/img251/9739/gammaxr.jpg

RGB curves:
http://img254.imageshack.us/img254/6469/rgbf.jpg

They can be improved but overall they are basically correct. So I set up a new configuration file for yCMS using the results provided by HCFR Color software in order to activate the gamut correction :

# Set input format
Input_Format HD YCbCr 8

# Set output format
Output_Format HD RGB_PC 8

Grayscale_Measurements
20 2 0.476231 0.498518 0.544421
30 2 1.143894 1.190155 1.312287
40 2 2.184862 2.281045 2.506261
50 2 3.701128 3.88613 4.243921
60 2 5.451791 5.701056 6.29546
70 2 7.560717 7.962676 8.715774
80 2 10.087325 10.599005 11.655849
90 2 13.124062 13.78758 15.200966
100 2 16.386612 17.515921 18.950571

But when I used the 3dlut generated using these parameters, the results were awful. I didn't save the measurements but basically:
- the Gamma curve was around 1.9 instead of 2.22
- obviously, the luminance curve was not correct at all showing a wrong contrast level.
- the CIE diagram was far too small with the red and green points very near of the white point. Only the blue point was correct.

I checked up the parameters and, from what I read in the yCMS manual, they seem correct to me but obviously they are not. Can you help me to find out what I make wrong?

cyberbeing
22nd February 2011, 19:40
First thing, your values aren't correct. No way does your display have max luminance of 17.5 cd/m2. Where did those values come from? They need to correlate to the IRE value on the left.

You should be using Gamut_Measurements and probably Gamma_Curve as well.

Grayscale_Measurements only, won't perform gamut correction. For Gamut_Measurements you need 100% Red, Green, Blue, and White values.

Without Gamma_Curve specified you will get a native REC.709 curve (you don't want this).
For a 2.22 power-curve, specify Gamma_Curve 0.0 2.22.

Matching_Mole
22nd February 2011, 20:20
Hi cyberbeing,

Here you will find the HCFR Color software file with all the measures used to create the config file: http://www.megaupload.com/?d=NHA0WH70

Regarding the config file itself, you're right, I forgot to paste the part of the gamut measurement. Here the complete set up that I used:
# Set input format
Input_Format HD YCbCr 8

# Set output format
Output_Format HD RGB_PC 8

Grayscale_Measurements
20 2 0.476231 0.498518 0.544421
30 2 1.143894 1.190155 1.312287
40 2 2.184862 2.281045 2.506261
50 2 3.701128 3.88613 4.243921
60 2 5.451791 5.701056 6.29546
70 2 7.560717 7.962676 8.715774
80 2 10.087325 10.599005 11.655849
90 2 13.124062 13.78758 15.200966
100 2 16.386612 17.515921 18.950571

Gamut_Measurements 2
0.668 0.313 0.018
0.342 0.602 0.056
0.149 0.059 0.792
0.31 0.331 0.359

Gamma_Curve 1.0 2.22

So as you can see I already tried exactly what you described but the Gamma_Curve had no effect because I measured still a gamma of 1.9. I think it is related to your comment:
First thing, your values aren't correct. No way does your display have max luminance of 17.5 cd/m2.

But, as you will maybe see with the color measurement file, I use exactly (but surely in a wrong way) the data coming from it.

NB: I try to set up a projector (Mitsubishi HC3100) plugged to my HTPC with an old - but fine - ATI 2600XT

cyberbeing
22nd February 2011, 21:13
# Set input format
Input_Format HD YCbCr 8

# Set output format
Output_Format HD RGB_PC 8

Grayscale_Measurements
20 2 0.476231 0.498518 0.544421
30 2 1.143894 1.190155 1.312287
40 2 2.184862 2.281045 2.506261
50 2 3.701128 3.88613 4.243921
60 2 5.451791 5.701056 6.29546
70 2 7.560717 7.962676 8.715774
80 2 10.087325 10.599005 11.655849
90 2 13.124062 13.78758 15.200966
100 2 16.386612 17.515921 18.950571

Gamut_Measurements 2
5.276597 2.473455 0.145127
7.777954 13.700308 1.270094
3.291976 1.309318 17.513829
16.386612 17.515921 18.950571

Gamma_Curve 0.0 2.22

Fix what I put in bold. You were using the incorrect format (xyz instead of XYZ). This is half your problem.

I have no explanation as to why your measurements are so dark, since I've never measured a projector. One of the others here, may have some insight though. This is the other half of your problem.

Matching_Mole
22nd February 2011, 21:21
Thank you very much cyberbeing. But I'm a little scared by your comment :
I have no explanation as to why your measurements are so dark

I will try and let you know!

cyberbeing
22nd February 2011, 21:55
I would think that it would either be:

A) You are taking measurements improperly and blocking too much light
B) You have a bad diffuser attachment which is blocking 90%+ of your light
C) Your projector is set way too dim or it needs a lamp replacement.

Matching_Mole
22nd February 2011, 23:20
I think more than it's because I deactivated the dynamical Iris of my projector which has for effect to push down its luminosity and improve the contrast. Here was some measures of Grayscale done with the Iris open :
Grayscale_Measurements
20 2 1.121525 1.184980 1.293971
30 2 2.611451 2.756565 3.025924
40 2 4.838468 5.090042 5.618061
50 2 8.334608 8.754509 9.589975
60 2 12.325047 12.908206 14.268075
70 2 17.568790 18.475361 20.200340
80 2 23.318539 24.431971 26.901741
90 2 30.545799 32.065472 35.328152
100 2 38.276417 40.097961 43.476048

I tried your settings and the result is still the same... red is far to white and Gamma is incorrect and so on.

Here my call in Avisynth :
ConvertToYUY2()
rgb3dlut(lutfile="mylutfile",threads=4)

If I understand well the config set up of yCMS, the lutfile is designed to convert YUV2 data to RGB32 gamut corrected data. This is the assumption of my avisynth call. Do I wrong here?

yesgrey
22nd February 2011, 23:24
For a 2.22 power-curve, specify Gamma_Curve 1.0 2.22.
No. For a pure power curve you should use:
Gamma_Curve 0.0 2.22

I would think that it would either be:

A) You are taking measurements improperly and blocking too much light
B) You have a bad diffuser attachment which is blocking 90%+ of your light
C) Your projector is set way too dim or it needs a lamp replacement.
D) You are putting your meter too far away from your projector/screen.

cyberbeing
22nd February 2011, 23:46
No. For a pure power curve you should use:
Gamma_Curve 0.0 2.22
Oops, yesgrey is correct.

Matching_Mole
23rd February 2011, 11:05
No. For a pure power curve you should use:
Gamma_Curve 0.0 2.22


D) You are putting your meter too far away from your projector/screen.

My sensor (Eye_one Display) was around 40~50 cm of the projected screen so I'm not sure it was so far away.

The wrong gamma curve setting can explain the wrong result that I seen? Anyway I will try to make another test during the week and let you know.

:thanks:

j5627429
25th February 2011, 04:03
I finally bought calibration software to go with my spectrophotometer. I am curious how others who own a meter+calibration software are using yCMS in conjunction with this.

Admittedly, yCMS is much easier to use than any TV's built-in controls, and in my case with a JVC RS40 projector, I do not even have a CMS to separately adjust primaries.

So in my case, I'm going to try this:

1) Measure primaries and correct gamut with yCMS
2) With gamut-correction 3dlut enabled, use calibration software and projector's controls to set gamma, adjust greyscale, etc so they are overall better but maybe not perfect (I'm no expert).
3) Remeasure primaries (3dlut ON) to make sure they're still correct. if they've moved, re-measure primaries (3dlut off) and create new 3dlut with yCMS to fix them.
4) Enter the "somewhat corrected" greyscale numbers achieved in step (2) into yCMS to further perfect the greyscale, and also set desired gamma_curve to match the gamma set in step (2).

Is this a logical progression? The only thing I am uncertain about is step (3). The first 3dlut will only correct the primary coordinates, so will it be okay to take measurements for a second 3dlut with greyscale correction while the first 3dlut is enabled?

Thanks in advance for any help/advice

yesgrey
25th February 2011, 22:00
Is this a logical progression?
...
will it be okay to take measurements for a second 3dlut with greyscale correction while the first 3dlut is enabled?
I would suggest two methods:
Method A (simplest)
1) measure display primaries (with 3DLUT off)
2) measure display grayscale (with 3DLUT off)
3) feed those values to yCMS and create a 3DLUT to use.

Method B
1) use your display controls to correct any problems in the grayscale (with 3DLUT off)
2) measure display primaries (with 3DLUT off)
3) measure display grayscale (with 3DLUT off)
4) feed those values to yCMS and create a 3DLUT to use.

The only difference between both methods is the correction using the display controls. If your display controls are good you probably would get better results using method B, but in case they aren't you might be better with A.

j5627429
26th February 2011, 16:35
I appreciate your advice yesgrey. It looks like I was over-complicating things.

Method B is going to be ideal for me, because I can already get greyscale pretty good with the display's controls, but the primary coordinates seem to drift quite a bit. yCMS should allow me to put them back into place and further correct the greyscale to perfection.

Thanks and keep up the good work!

janos666
20th March 2011, 02:30
I made a quick test today with a weirdly behaving c-PVA display.
I think it's a good test specimen because the gray-scale is horrible (serious black-crush, some white-crush, fluctuating color temperature across the gray shades, etc). (It can be nicely calibrated with a Radeon HD VGA which applies dithering to the 8-bit output but not with older Radeons or any Geforce cars...)

So, I measured the primaries and 128 gray patches and used the XYZ values to construct the yCMS input file.

It did a very great job with smoothing out the gray scale: no more black/white-crush or banding or fluctuations.
But I noticed that it's slightly warmer than it should be, and I also found that every gray color has a color temperature about 6250K which is the original uncorrected white point.

So, there is no any problem (I mean bug) with the color temperature correction. yCMS basically use a Relative colorimetric intent (according to the ICC terms) but does it very well. (The only problem is that I [and may be others who are sensitive to color temperature] prefer the Absolute colorimetric intent where the white point is also corrected to match with the device white.
It only requires an additional step where you transform the colors to match with the chosen white point (the rounded D65 in most television standards).

madshi
20th March 2011, 08:48
@janos666, that's a very good analyzation on your part. Spot on. You'll like the next yCMS version yesgrey has been working on. Oooops, maybe I shouldn't have said that... :o

yesgrey
20th March 2011, 13:15
The only problem is that I [and may be others who are sensitive to color temperature] prefer the Absolute colorimetric intent where the white point is also corrected to match with the device white.
You're right.

There are two ways of solving the problem:
(1) Chromatically adapt the colors to display's white point
(2) Correct display's white point.

Both situations should look correct to the user, but I understand that some users might prefer to have nice measuring charts.;)

I'm working on it, and the next version should allow both working methods.

Oooops, maybe I shouldn't have said that... :o
:)

janos666
23rd March 2011, 03:38
However, I don't like the built-in black point compensation. The shadows are brightened up too much.
So I am still using the VGA LUT calibration + the input_transfer_function command. (The only thing I changed recently that my calibration target is gamma 1.74 which is the closest matching pure-power curve - with black output offset and relative scaling - instead of forcing gamma ~2.35 through the VGA LUT).

yesgrey
23rd March 2011, 11:49
However, I don't like the built-in black point compensation. The shadows are brightened up too much.
The black point compensation only happens when you specify the 0 IRE measurement. If you omit it, the black point compensation would not be performed.

yesgrey
2nd April 2011, 11:06
yCMS v1.11 released

http://yesgrey.com/ycms.html

- Created a new RGB color encoding "yRGB" to contain HD, PAL and NTSC.
- Added yRGB videoStandard to Input/Output_Format.
- Added yRGB videoStandard to Input/Output_Primaries.
- Added yRGB videoStandard to Input/Output_Transfer_Function.


I have created a new color encoding: "yRGB".

For now, it is big enough to contain BT.709, PAL and NTSC video standards
without any color clipping, but it may change in the future. I will
public its full specification as soon as I decide for the final one.

madshi will chime in with more details when he feels it is the time.

Thunderbolt8
2nd April 2011, 17:05
whats up with yrgb? do I have to redo the normal HD and SD 3dluts ive been using with madvr so far with it? or can/should I still use ycms? will the same command line produce the same result with ycms and yrgb? (e.g. with that movie we were looking for the correct black levels for example)

madshi
2nd April 2011, 17:53
yRGB will be used by a future madVR version (and not the very next one). Until that future madVR version is out, yRGB is of no use for you. I will discuss the exact purpose of yRGB once that new madVR version is out.

yesgrey
2nd April 2011, 18:03
can/should I still use ycms?
The program is still yCMS. yRGB is not a new program name, it's only a color encoding format, like BT.709, PAL, NTSC, AdobeRGB, etc.

Since it was I who created it I gave it the initial of my name, hence the "y".;)

Until madshi release that new madVR version there is no need to update to yCMS v1.11.

xv
6th April 2011, 23:29
Hi,
is there a tutorial somewhere how to use yCMS to create a 3dlut file for madVR? I´ve got an DTP 94 and my monitor (asus pa246q) is software calibrated using Quato iColor.
madVR says it bypasses the graphics card gamma correction etc., so the ICM file from iColor is useless for yCMS.

I read about argyllCMS, how do I use it to measure my monitor and pass the data to yCMS?

Mark_A_W
7th April 2011, 01:18
madVR doesn't bypass the gamma correction (that's overlay).

But I would also like a tutorial, I'm lost. I have a HCFR sensor and software (and it works fine, calibrated against Colorfacts and gave a close enough result for me).

Yellow_
7th April 2011, 13:34
yCMS v1.11 released

http://yesgrey.com/ycms.html

- Created a new RGB color encoding "yRGB" to contain HD, PAL and NTSC.
- Added yRGB videoStandard to Input/Output_Format.
- Added yRGB videoStandard to Input/Output_Primaries.
- Added yRGB videoStandard to Input/Output_Transfer_Function.


I have created a new color encoding: "yRGB".

For now, it is big enough to contain BT.709, PAL and NTSC video standards
without any color clipping, but it may change in the future. I will
public its full specification as soon as I decide for the final one.

madshi will chime in with more details when he feels it is the time.

I was going to ask if Adobe Wide could be implemented.

http://en.wikipedia.org/wiki/Wide_Gamut_RGB_color_space

But your own. :-) Look forward to trying it out.

However is it possible to actually get yRGB gamut images / frames out of Avisynth or is that not the purpose? re madVR comments

janos666
7th April 2011, 20:20
I guess yRGB will be used as some kind of intermediate space (like the Lab or XYZ ˝profile connection space˝s in the ICC terminology).
May be madvr will convert the various YCC inputs (HDTV, PAL, NTSC) to this custom color space, so we will only need a single 96Mb 3DLUT file which holds the corrections between the reference yRGB space and our displays.
But this is only my guess...

madshi
7th April 2011, 22:20
I guess yRGB will be used as some kind of intermediate space (like the Lab or XYZ ˝profile connection space˝s in the ICC terminology).
May be madvr will convert the various YCC inputs (HDTV, PAL, NTSC) to this custom color space, so we will only need a single 96Mb 3DLUT file which holds the corrections between the reference yRGB space and our displays.
:goodpost:

Yellow_
12th April 2011, 08:53
How possible is it to edit a LUT or emulate with lower precision for speed and generate a higher precision one for processing with. Thinking something like HSL sliders in AVSPmod and then generate LUT via yCMS?

BeNooL
13th April 2011, 06:50
If I am not mistaken the whole concept of LUT (look up table) is to reduce computation time by simply searching for a corresponding value for a given input. The only processing intensive part is the generation of the LUT itself.

Yellow_
13th April 2011, 23:33
If I am not mistaken the whole concept of LUT (look up table) is to reduce computation time by simply searching for a corresponding value for a given input. The only processing intensive part is the generation of the LUT itself.

Correct, but putting aside strict conversions to specifications where the 'corresponding values' are generated to known formula and consider custom 3D LUT generation where the 'corresponding values' are derived from tweaking in a LUT editor, because the 'intensive' part is 'the generation of the LUT itself' there is a time delay in minutes, so to be able to generate low precision or a sudo LUT faster whilst tweaking, see the effect on the source and when happy generate the high precison LUT for processing the source, for example before conversion to RGB, was what I was getting at really.

Yellow_
17th April 2011, 16:34
yesgrey, could you suggest values needed to generate a LUT to convert YCbCr to sRGB where the UV levels range 1 - 254 is treated as 16 - 240 and Y 0 - 255 by, if my thinking is correct moving the color primaries to prevent the increased saturation that would occur mapping UV 16 - 240 to 1 - 254. Would the whitepoint need to move too?

yesgrey
18th April 2011, 01:54
could you suggest values needed to generate a LUT to convert YCbCr to sRGB where the UV levels range 1 - 254 is treated as 16 - 240 and Y 0 - 255 by, if my thinking is correct moving the color primaries to prevent the increased saturation that would occur mapping UV 16 - 240 to 1 - 254. Would the whitepoint need to move too?
Sorry, but I cannot understand. Your writings sometimes are very confusing and hard to understand...

It would be a lot easier if you could give me a detailed example, or maybe someone here could help me understand what you need...

janos666
19th April 2011, 14:32
Would the whitepoint need to move too?

The white point correction is a matter of your taste but yCMS doesn't really support it right now, so no...


my thinking is correct moving the color primaries to prevent the increased saturation that would occur mapping UV 16 - 240 to 1 - 254.

The range limits won't change the color gamut. If the gamut mapping is not correct then you need to redesign your input/output transfer function parameters or include your gray-scale measurements (and check the precision and consistency of your sensor).

I don't think you would change your RGB range limits like that. It should be limited range input and limited or full range output, according to your VGA pixel format and display settings (you should try with Full Range first).

Yellow_
19th April 2011, 22:09
Sorry, but I cannot understand. Your writings sometimes are very confusing and hard to understand...

Yes, sorry, convoluted. I'm a dabbler with no real understanding of video engineering. :-)

Basically I was looking at the plausability of 'gaining' an extra 30 levels (8bit) over and above 16 - 240 for the UV channels for use in an intermediate file without changing the overall appearance as a result of remapping the levels and considered moving the colour primaries might maintain the visual appearance as if it were 16 - 240?

My limited understanding is that 8bit vid to sRGB calculation use's the 'limited' range and that full range luma can be used but assume this just brightens the resultant image? Where as xvYCC uses 1 - 254 UV and 0 - 255 Y but this results in a wider gamut as the color primaries remain the same.

My query is really about seeing if there is any benefit in using extra 30 levels of UV + full luma range, for image manipulation in an intermediate file before squeezing back to 16 - 240 UV for reencoding to BT601/709.

Looking to use SmoothAdjust for the interpolation of values or maybe a LUT in the remapping of UV before conversion to RGB.

The range limits won't change the color gamut. If the gamut mapping is not correct then you need to redesign your input/output transfer function parameters or include your gray-scale measurements (and check the precision and consistency of your sensor).

I don't think you would change your RGB range limits like that. It should be limited range input and limited or full range output, according to your VGA pixel format and display settings (you should try with Full Range first).

I'm sorry I don't have sufficient knowledge to understand your comment. I'm looking at image manipulation with gamut agnostic tools before mapping back to BT601/709 levels.

It's probably the case that my query is fundementally wrong and pointless. :-)

**EDIT**

oops, just realised I've posted my query in the wrong thread, should be in the 'gamut conversion' thread not 'software players'. sorry.

yesgrey
21st April 2011, 19:44
My query is really about seeing if there is any benefit in using extra 30 levels of UV + full luma range, for image manipulation in an intermediate file before squeezing back to 16 - 240 UV for reencoding to BT601/709.
The benefit would be meaningless.

The problem is that the YCbCr color space is much wider than the RGB color space, so, when you have the same bit depth on both, only a small portion of the YCbCr space is used compared with the RGB. For example, in the case of our video sources with an 8 bit bit depth, only less than 25% of the YCbCr space is used. So, increasing it further like you suggest would be pointless, because you would end up with even more unused space.

xv
21st April 2011, 22:45
Can anybody tell me how to convert a ICC/ICM file (of calibrated monitor) to something yCMS can read to make a LUT?

yesgrey
21st April 2011, 23:07
Can anybody tell me how to convert a ICC/ICM file (of calibrated monitor) to something yCMS can read to make a LUT?
Please do a search on this thread. I think someone already asked that question before and someone told him how...

xv
21st April 2011, 23:39
Please do a search on this thread. I think someone already asked that question before and someone told him how...
I did, and I found the question, but no answer (at least no answer I understand, I´m not familiar with argyllcms).

janos666
22nd April 2011, 00:03
I did, and I found the question, but no answer (at least no answer I understand, I´m not familiar with argyllcms).

Use the wxProfileDump tool to read out the XYZ coordinates of your primaries.
If it's a "matrix+curve(s)" profile than you can try to use the numerically defined curve(s) too (it may needs some re-structuring in excel first).
If it's a "matrix+gamma(s)" profile then you can try to use the gamma value(s) too. (But don't ask me how to average the values, may be linear math is acceptable as it's not a perfectly precise number to start with.)

* Sorry, but I am still not sure if you need to reverse the chromatic adaptation or not. (You theoretically don't because yCMS asks for the white point too but I am not sure how it actually handles it, so... ; try to use your original numbers first...)

xv
22nd April 2011, 00:57
Use the wxProfileDump tool to read out the XYZ coordinates of your primaries.Done.
If it's a "matrix+curve(s)" profile than you can try to use the numerically defined curve(s) too (it may needs some re-structuring in excel first).
If it's a "matrix+gamma(s)" profile then you can try to use the gamma value(s) too. (But don't ask me how to average the values, may be linear math is acceptable as it's not a perfectly precise number to start with.)
I´m not sure. It contains the "chromaticAdaptionTag" with a 3x3 Matrix and a gamma table for gpu ("vcgt" tag), as well as a gamma info for all colors (which is 2.1993 for all).
What should I do with this and what do you mean with re-structuring?
* Sorry, but I am still not sure if you need to reverse the chromatic adaptation or not. (You theoretically don't because yCMS asks for the white point too but I am not sure how it actually handles it, so... ; try to use your original numbers first...)Please explain

Thanks

janos666
22nd April 2011, 12:03
gamma info for all colors (which is 2.1993 for all).

It's a "matrix+gamma" profile then. You can use this gamma value with the Output_Transfer_Function command in your yCMS input file as follows:
Output_Transfer_Function 1.0 0.0 0.455 0.0
And I suggest to use it in conjunction with this:
Input_Transfer_Function 1.0 0.0 0.4166666666666667 0.0
It will change your perceived gamma to 2.4 which is better for movies than 2.2 (2.2 was your calibration target which is good for usual PC usage but also common for most HDTVs too...).
Or leave it as:
Input_Transfer_Function 1.0 0.0 0.45 0.0
This means gamma 2.2, but I don't suggest yCMS's default behavior (the Inverse-Rec709-Encode curve when you don't specify anything manually ; but you are free to try...).


Please explain

The ICC standards chose the D50 illuminant as standard reference white point. This means that every color coordinates in every ICM files are relative to this illuminant (*).

However, the HDTV (just like NTSC, PAL, etc) is based on the D65 illuminant.
This means that you can calibrate your display to D65 but the profiler will chromatically adapt the color coordinates to be relative to D50.

* The Lab space which is used in the ICM profiles uses limited range of integer values and it's always relative to D50, that's sure (it's limited in absolute size too, so my display cannot be characterized by this profile type).
But... I think the XYZ space is absolute and you always have absolute XYZ coordinates in every profile. The only relativism in this space is that your primaries are relative to the measured white (not a standard illuminant, but the actual display white). I am not sure. That's why I like to use the ArgyllCMS output directly where I have control over the conversion between the spectral readings and XYZ values and nothing is adapted to anything (yet).

xv
22nd April 2011, 12:05
That was my first try (primaries from profiledump), I used Output_Transfer_Function 5 because gamma is set to 2.2 (AdobeRGB) and corrected by graphics card lut:
Output_Primaries 0.6060 0.2733 0.2255 0.6824 0.1327 0.0443 0.3127 0.3290
Output_Transfer_Function 5
Output_Matrix_Coefficients 0
Output_Range 0 255
Output_Bit_Depth 16But colors are not fitting, looking very different from other calibrated applications or MPC+EVR+Colorspace. But it´s correct that madVR does not circumvent the gamma correction by graphics card?

janos666
22nd April 2011, 12:13
But it´s correct that madVR does not circumvent the gamma correction by graphics card?

No, it's the same as EVR, both leave the VGA LUT as is.
The latest MPC-HC from Janwillem's mediafire folder works well. I am currently using that instead of madVR (until yCMS will support white point correction).

yesgrey
22nd April 2011, 12:44
And I suggest to use it in conjunction with this:
Input_Transfer_Function 1.0 0.0 0.4166666666666667 0.0
It will change your perceived gamma to 2.4 which is better for movies than 2.2 (2.2 was your calibration target which is good for usual PC usage but also common for most HDTVs too...).
I suggest you to use the Input_Format command instead, and, if you want to try other gamma values, use the Gamma_Curve command. It will give you the same results and it will keep your config file cleaner.

I think the XYZ space is absolute and you always have absolute XYZ coordinates in every profile. The only relativism in this space is that your primaries are relative to the measured white (not a standard illuminant, but the actual display white).
The XYZ (and Yxy) space is an absolute space, so no correction is needed, you simply use those values and you will be fine.

The primaries are not relative to the white point. The primaries and the white point define a certain color space. You can have two displays with the same primaries and different white points. That means that you will need to map your source colors differently, because the output color spaces are different, as simply as that. So, you don't need to chromatically adapt any colors, as long as you tell yCMS the respective white point.


Output_Primaries 0.6060 0.2733 0.2255 0.6824 0.1327 0.0443 0.3127 0.3290


Are you sure about these primaries and white point?

xv
22nd April 2011, 13:07
Are you sure about these primaries and white point?
The primaries are exactly those from wxProfileDump (red/green/blueColorantTag). The whitepoint, I´m not sure. The VGA Lut corrects it to 6500K, so I used the values for that, but there is also a mediaWhitePointTag: X=0.9642, Y=1.0000, Z=0.8249
But that values won´t work at all.