Log in

View Full Version : madVR - high quality video renderer (GPU assisted)


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329

FoLLgoTT
1st May 2009, 11:40
all that is needed to trick our brain is proper grayscale, D65 white point, ±2.3 gamma and 100 IRE gamut conversion.

I think you missed the point. The question was not why to calibrate if there is no 100% accuracy with current sensors, but why to calibrate if the model itself is flawed. There is no correct absolute greyscale, D65 and gamut. For every person this is more or less different and also depends on the emitted spectrum of the display. It is not a matter of measuring accuracy, but a matter of concept.

Thunderbolt8
1st May 2009, 11:46
The levels controls in ffdshow only have any effect if ffdshow outputs RGB. madVR does not support RGB input, it only supports YV12 input. So there's no way you can make use of the ffdshow levels controls when using madVR, because if ffdshow outputs YV12, the ffdshow levels controls have no effect whatsoever.
ok thanks! though now Im wondering a bit what I should use as output with madvr. tv levels seems to be logical, but imho the picture looks a bit too bright for me then. it then looks like as when choosing PC levels with haali, and tv levels of haali looks like PC levels output with madvr. so I wonder why that difference, does haali do wrong outputs here or perhaps does haalis levels get influenced with those ffdshow settings?

madshi
1st May 2009, 12:03
This is a good question. I think the standard observer is sufficient for most cases. Our eye is not as precise as a spectrophotometer and it strongly depends on environment and many other factors. I think it is sufficient to calibrate the necessary values into a small range which is small enough that no difference can be seen with a before/after comparison with my own eyes.
Small range of what? Small range of the wrong concept? You are not consequent here. If you consequently follow your original argument it should be better not to calibrate to any standard, but to "turn the wheels" yourself without any reference to anything, just to your subjective linkings.

And here comes my reasoning why your argument doesn't hold merit: The final movie mastering is done in the studio. There a guy (or girl) watches the movie on a professional monitor which is (or at least should be) calibrated carefully to the existing standards. Now it doesn't matter much if the standards are perfect or not. The guy deciding on final color tone etc watches the movie and makes his decisions based on what he sees on his monitor which is calibrated to the standard. So if we want to see what the movie makers wanted us to see, we have to carefully calibrate our displays to the same standard, faulty or not. If we don't do that, we'll see different colors than the movie color guy saw on his professional monitor.

Now you can say that everybody sees colors differently and you are probably right with that. However, it doesn't really make any difference in this discussion! Why? Because the guy who decides on color mixing sees both the movie and also real life with the same eyes. E.g. let's say he sees more red than the rest of us humans. Does that mean that he mixes the movie in such a way that it contains less red? No! Not at all. Because he sees too much red in real life, too. So too much red is what looks natural to him. Because of that it doesn't matter at all whether he sees colors differently than we do.

leeperry
1st May 2009, 12:03
I think you missed the point. The question was not why to calibrate if there is no 100% accuracy with current sensors, but why to calibrate if the model itself is flawed. There is no correct absolute greyscale, D65 and gamut. For every person this is more or less different and also depends on the emitted spectrum of the display. It is not a matter of measuring accuracy, but a matter of concept.
well no I was actually answering that question, I think :o
it's flawed and it'd require weekly recalibrations...so there's no need to reach super high mathematical accuracy, but well madshi will do his best to reach it anyway :D

but as I understand it, it'd all be done in cr3dlut.

madshi
1st May 2009, 12:03
ok thanks! though now Im wondering a bit what I should use as output with madvr. tv levels seems to be logical, but imho the picture looks a bit too bright for me then. it then looks like as when choosing PC levels with haali, and tv levels of haali looks like PC levels output with madvr. so I wonder why that difference, does haali do wrong outputs here or perhaps does haalis levels get influenced with those ffdshow settings?
Haali's controls are for input levels (which levels is the movie encoded to?). madVR controls are for output levels (which levels does the display want to have?).

madshi
1st May 2009, 12:07
it's flawed and it'd require weekly recalibrations...so there's no need to reach super high mathematical accuracy
As I already said, once we get laser light sources, the need for weekly recalibrations should be gone. Furthermore it's not about super high mathematical accuracy. It's about reasonably high accuracy throughout the whole range of colors and brightnesses etc. If you only calibrate to one stimulus levels, you'll have reasonably high accuracy at the stimulus level, but you may have very big deviations at other stimulus levels. Reasonably high accuracy is what we are targetting for, but please at every stimulus level!

leeperry
1st May 2009, 12:10
it's not about super high mathematical accuracy. It's about reasonably high accuracy throughout the whole range of colors and brightnesses etc.
alright, sounds like a plan! looking forward to it http://forum-images.hardware.fr/images/perso/ayuluna.gif

FoLLgoTT
1st May 2009, 12:37
Small range of what?

Of the standard used.

So if we want to see what the movie makers wanted us to see, we have to carefully calibrate our displays to the same standard, faulty or not.

I partially agree with that. But only because it is the only thing we can do. More in the next passage...

If we don't do that, we'll see different colors than the movie color guy saw on his professional monitor.

Yes, but my point is that even if we calibrate our display to the standard, we probably don't see it as we would see it on this particular mastering monitor. If the spectrum of the display differs our perception may be slightly different. CRTs vor example have a very different spectrum to UHP bulbs of digital projectors. This standard is only valid if we view our movies with the exact spectrum used when the movie was mastered.

If there would be a standard for the spectrum of displays, we really could watch our movies as intended to. But with the current situation there is just this unknown additional error. At home we are not able to quantize it. We would need an analysis of our individual perception and the impact of the spectrum used. So we could calibrate our display in that way that our (!) eyes percieve the colors like the colors of the mastering monitor.

The next problem is that we had to know the model of mastering monitor for each movie...

leeperry
1st May 2009, 12:46
the spectrum of the display differs our perception may be slightly different.
[..]
The next problem is that we had to know the model of mastering monitor for each movie...
spectrum of the display? not gamut?

coz we more or less know what they use in mastering houses : http://forum.doom9.org/showthread.php?t=139389

but as long as we won't be able to take the primaries/secondaries saturations(measured by Color.HCFR) in account into the 3D LUT, it won't really be meaningful...but I'm beating a dead horse here :D

madshi
1st May 2009, 12:51
If there would be a standard for the spectrum of displays, we really could watch our movies as intended to. But with the current situation there is just this unknown additional error. At home we are not able to quantize it. We would need an analysis of our individual perception and the impact of the spectrum used. So we could calibrate our display in that way that our (!) eyes percieve the colors like the colors of the mastering monitor.

The next problem is that we had to know the model of mastering monitor for each movie...
For my taste you're thinking too much about what we have today. All of that should change once we get pure color laser light sources. They should have a clearly defined spectrum, I think.

Anyway, even with current hardware we should at least *try* to get as near as possible to the standard. If we don't do that (by creating/using an as good as possible CMS) the calibration mismatch errors and the spectrum/perception related errors etc may all add up to the wrong side of things.

Why don't we ignore the things we can not measure (we can not change them, anyway) - and try to get those things right that we can measure?

FoLLgoTT
1st May 2009, 12:51
spectrum of the display? not gamut?

I mean the electromagnetic spectrum (http://en.wikipedia.org/wiki/File:CIE_1931_XYZ_Color_Matching_Functions.svg) of the primary colors. The spectrum is very different for each display type. Some has narrow but high peaks. And others have broader but low peaks. Basically only the area is important. But since the spectrums for green, red and blue partially overlap the perception can be different depending to your eyes.

FoLLgoTT
1st May 2009, 12:55
For my taste you're thinking too much about what we have today. All of that should change once we get pure color laser light sources. They should have a clearly defined spectrum, I think.

I don't think this will be the case in the next 50 years for every display out there. ;)

Why don't we ignore the things we can not measure (we can not change them, anyway) - and try to get those things right that we can measure?

I agree. It is a (small) problem without a solution. So we can only do our best and calibrate our displays using the standard with more or less accurate sensors. :)

nlnl
1st May 2009, 13:35
Quote:
Originally Posted by psme View Post
Great work! But there is heavy tearing at 24p output, both windowed and full screen. EVR or Overlay works fine without tearing. At 60Hz output, madVR don't tear, but I must play 24p source at 24p output!

My system, E6600 C2D at 3G, Win XP SP2, ATI 4850 512M (core 250Mhz, memory 750Mhz, underclocked but that has no effect on tearing), driver Cat 8.10 I think.

Attached a madVR OSD data.

When it can run smooth in 24p, I'll give it a serious try!

regards,

Li On
Yup i confirm, had a quick test at 24hz and indeed massive tearing, no prob at 48/50/60.

Vista 32, Nvidia 9400 IGP, Intel 8300 2.83Gh

AERO ON
Playing 1080p/23 at 23.976 refresh rate (no scaling) I have very smooth playback, no tearing at all. Avr and max gpu renderig time are very stable (24/32). OSD stably says disp rate is 23.976.
And subjectivly colors (Pio LX-5090) look more vivid then using EVR CP (autosuggestion? :)). Thanks to madshi for softcubic100 chroma upsampling and direct 16-bit pipeline. :thanks:

AERO OFF
Can not get smooth playback. Gpu rendering time is floating.

honai
1st May 2009, 13:59
Those should not change as much (if at all) over lifetime. Which means that with such light sources it might make sense to hire a professional calibrator and calibrate your projector once and for all with the best spectrometer available out there.

Unfortunately it's a death march.

Once you have that part of the equation solved you'll realize that there's something called "radiosity", i.e. the wave length of light is modified when hitting the surface of objects in your room. So unless you are prepared to watch movies in a black matte painted room with no other objects other than the black seat ...

But then, on the other hand, let's also not forget the psychovisual properties of the human eye. Remember the time when we had green CRT displays, and how after some time you started to see actual colors on them? ;) The point here is that even on a 100% sight eye you'll have factors that greatly influence perception: time of day, seasons, blood pressure, illness, etc. and that, still, the "graphics processing unit" of the brain can make up for all of it so that you won't notice the difference because the brain corrects all of it. So even if at one point you have a perfectly calibrated system, colors and luminance on some days might still be off, which leads to the conclusion that the human eye works in the analog, not digital domain and that it is perfectly capable of reconstructing the "real" world from imperfect sources. :)

tetsuo55
1st May 2009, 14:06
i think the discussion is getting a little sidetracked here.

madVR can and should give the scientifically and maybe phycovisually best image it can produce.

What humans can and cannot see is all based on average's, plenty of women have a 4th color sensor in their eyes for example.
They're theoretical limit for seeing different colors is so high, it would require something like a 128bit per compononent signal before they stopped seeing the differences

leeperry
1st May 2009, 14:19
unless you are prepared to watch movies in a black matte painted room with no other objects other than the black seat ...
don't forget ninja clothing too, it all adds up in the end :D

that's why ANSI contrast doesn't really matter >300, too many room reflections...anyway, yeah we're getting slightly OT

honai
1st May 2009, 16:01
The point I was trying to make is that we already have very good color/luminance reproduction with the current means in madVR, and going beyond that you'll end up in esoteric circles (cf. audiophile discussions in other boards where people start putting their loudspeaker cables into the refrigerator before listening sessions).

Instead of trying to achieve the last 0.01% in perfection resources would be better invested in smooth playback. ;)

leeperry
1st May 2009, 16:07
Instead of trying to achieve the last 0.01% in perfection resources would be better invested in smooth playback. ;)
that we agree, but madshi does it for free ya know :o
and besides it'd be done through cr3dlut I think..

madshi
1st May 2009, 16:24
Instead of trying to achieve the last 0.01% in perfection resources would be better invested in smooth playback. ;)
it'd be done through cr3dlut I think..
That is exactly the point. I'm doing *zero* work on CMS. yesgrey3 is doing all the work. The reason why this whole CMS discussion started was that I did *not* want to do the CMS work myself (via shader math), as requested/suggested by some people, but I want to continue using the 3dlut principle. Which means that I've more resources available for improving other things...

leeperry
1st May 2009, 16:31
yesgrey3 is doing all the work.
http://forum-images.hardware.fr/images/perso/indiana%20jones.gif

point taken, looking forward to the smooth releases.

I got 23.976@48Hz working perfectly w/ Reclock(just as smooth as HR)....but as always in MPC it start dropping frames after 1H, all the renderers in MPC do that in non-D3D exclusive mode(reproduced on many different boxes, not just mine) :(

only HR does not...if you catch the VSYNC fliptime properly, which is quite complicated to begin with :o

Beliyaal has found ways to never miss it on XP from what I've seen, so if you could maybe add triple buffering or get some hints from Beliyaal(who spent a long researching this), we might have a winner!

nijiko
1st May 2009, 19:33
nijiko, your videocard might be overheating?

Of course not!
And my drivers are usually newest by NVidia.(Now is 185.81.)
And, there is not problem with other renderers, such as haali or EVR (in XP).
Nowaday my video card still can play Need For Speed Undercover and Burnout Paradise very well.
So i don't think it's about videocard.
And at my local, now temp. is 13~25C, so card overheating is not probably.
I consider it's about the compatibility of madVR.
However, it does not perform to every video formats.
But now happens with some special environment(some encoding and decoding method.).
I will try to make dumps to upload.

madshi
1st May 2009, 19:51
Of course not!
And my drivers are usually newest by NVidia.(Now is 185.81.)
And, there is not problem with other renderers, such as haali or EVR (in XP).
Nowaday my video card still can play Need For Speed Undercover and Burnout Paradise very well.
So i don't think it's about videocard.
And at my local, now temp. is 13~25C, so card overheating is not probably.
I consider it's about the compatibility of madVR.
Then why are you the only one who has these crashes after 30-45min of playback? Nobody else has reported such a problem yet.

I will try to make dumps to upload.
I have no use for dumps.

leeperry
1st May 2009, 20:13
BTW, if that makes any sense I might have some clues as to why any other renderer except HR fails after 45'/1H in MPC on XP(in non-3D exclusive mode), and drops frames like crazy...

HR renders frames ahead and keeps the cache in the graphic card's RAM, doing realtime jitter correction to be damn sure that they're presented right on time.

regular presenters in MPC also cache frames in advance but don't do any jitter correction....they simply present frames and hope for the best, and if some frames are late they will simply be dropped(something HR *never* does, as they're never late to begin with :o )....and if too many frames are late, it will constantly drop, requiring a reseek(Reclock is like an unstoppable train, it won't stop for anything!)

I was told that the only way to avoid this issue on XP w/ EVR/VMR9 was to force exclusive mode...which basically does Aero's job.

right now -as I understand it- mVR does lot of stuff w/ the GPU but still has a regular presenter like EVR/VMR that's vulnerable to VSYNC hiccups....but I'm sure it's in your plans to make a bulletproof presenter :cool:

6233638
1st May 2009, 21:03
Finally, I can post after being registered long enough.
Vista 32, Nvidia 9400 IGP, Intel 8300 2.83Gh

AERO ON
Playing 1080p/23 at 23.976 refresh rate (no scaling) I have very smooth playback, no tearing at all. Avr and max gpu renderig time are very stable (24/32). OSD stably says disp rate is 23.976.
And subjectivly colors (Pio LX-5090) look more vivid then using EVR CP (autosuggestion? :)). Thanks to madshi for softcubic100 chroma upsampling and direct 16-bit pipeline. :thanks:

AERO OFF
Can not get smooth playback. Gpu rendering time is floating.
Can I ask what drivers/settings you're using?

I just built myself a new HTPC a few weeks ago—a 2.5GHz Pentium Dual Core with 4gb RAM and Gigabyte's 9400 motherboard and I can't get anything even close to smooth playback when madVR is enabled. My rendering times are 2-3x what yours are.

Even upscaling DVDs (PAL slowed down with ReClock) rather than 1080p playback stutters here. I'm really starting to wish I had gone for a more powerful CPU (I thought the 9400 was supposed to handle everything smoothly) and waited for a 4770 instead. :(


I have to say though, after experimenting with madVR, I'm questioning the benefits of 16-bit rendering. With madshi's test patterns, the benefits are obvious.

With Blu-Ray playback, I am struggling to see any kind of benefit from the 16-bit rendering in actual film content. Scenes that are posterised in Beliyaal's MPC-HC build with EVR Custom are more or less identical in madVR with no improvement. (just very slightly different due to chroma being handled differently)

Are the only real benefits of 16-bit rendering supposed to be for DVD upscaling? (which I haven't compared)


And there was discussion a page or two back about 32-bit or even 64-bit rendering being required for linear light processing. Unless I'm wrong, I think 32-bit would be enough? 256^2.2 = 198,668 steps of gradation, and 32-bit allows for 4,294,967,296 steps of gradation. I'm not sure you would even need to process in 32-bit though. The closest equivalent of the Rec.709 transfer is 1.96 gamma which would require 52,499 shades, and 16-bit allows for 65,536. (I'm not sure how many steps of gradation are required for the exact Rec.709 transfer function rather than the closest match though)

nlnl
1st May 2009, 22:28
Finally, I can post after being registered long enough.

Can I ask what drivers/settings you're using?


driver 182.5, 2G RAM, 512M videobuffer, MPC - НС 1079, Haali splitter, Gigabyte mb, no scaling, softcubic100, no 3dlut.
Playback is smooth, but EVR CP is surely smoother (stddev of jitter - 0.005ms).
What display do you use? Does it nativly support 23.976p input?

yesgrey
1st May 2009, 22:29
And there was discussion a page or two back about 32-bit or even 64-bit rendering being required for linear light processing. Unless I'm wrong, I think 32-bit would be enough? 256^2.2 = 198,668 steps of gradation, and 32-bit allows for 4,294,967,296 steps of gradation.
I was talking about 32bit FP, which has a mantissa of 24bits. The highest possible gamma value is 2.8, which would need 23bits for its representation. But the problem also comes from the operations with the numbers, which would cause some roundings that could decrease the precision. As I told, 32FP should be good enough, but it could not be enough for keeping the full precision...

6233638
1st May 2009, 22:54
driver 182.5, 2G RAM, 512M videobuffer, MPC - НС 1079, Haali splitter, Gigabyte mb, no scaling, softcubic100, no 3dlut.
Playback is smooth, but EVR CP is surely smoother (stddev of jitter - 0.005ms).
What display do you use? Does it nativly support 23.976p input?
I've been outputting to a Sony HW10 via HDMI (reports as 23.977 in reclock) and an old ViewSonic CRT over VGA at 1920x1440@47.952. Can't get smooth playback on either with madVR. (actually, I'm struggling to get proper lip-sync and 100% smooth playback through a whole film without it when playing back blu-ray converted to mkv)

I was talking about 32bit FP, which has a mantissa of 24bits. The highest possible gamma value is 2.8, which would need 23bits for its representation. But the problem also comes from the operations with the numbers, which would cause some roundings that could decrease the precision. As I told, 32FP should be good enough, but it could not be enough for keeping the full precision...
Right, I wasn't sure whether I should jump in as some of the technical details here are a bit over my head.

I thought you only needed that precision when performing the degamma on the video signal (which is always the inverse of the Rec.709 curve with HD content) to get it to linear light for processing and then it was all rounded down to 8/10 bits when gamma encoded for output to the display. (as no graphics cards can output anything higher)

yesgrey
1st May 2009, 23:47
I thought you only needed that precision when performing the degamma on the video signal (which is always the inverse of the Rec.709 curve with HD content) to get it to linear light for processing and then it was all rounded down to 8/10 bits when gamma encoded for output to the display. (as no graphics cards can output anything higher)
Yes, but the degamma/engamma with rounding down to 8bits, when using 32FP for processing, does not give always the same numbers that were inputted... some RGB values have an error of +/-1. Not much, but there is an error.

73ChargerFan
2nd May 2009, 02:31
Then why calibrate at all?
My HP dlp rear-screen is in the living room, which has east facing windows that are always open. As a result, the ambient light levels around the screen vary widely throughout the day.

I can correct this by adjusting the brightness/contrast on the set, but then I have to reset them, which I usually forget.

Is there a theory of how to compensate for ambient light? I'm thinking a cheap light meter hooked up to a usb port, and periodic measurements to auto-adjust the brightness & contrast.

I think this is another facet to the color correction. When I can't see the image, colors don't matter much.

- Anthony

masaykh
2nd May 2009, 08:54
Little question:
will madvr support subtitle?
in mpc-hc using madvr i dont have subtitile at all :(

yesgrey
2nd May 2009, 09:14
Little question:
will madvr support subtitle?
Yes.

in mpc-hc using madvr i dont have subtitile at all :(
Use ffdshow.

And next time use search. These questions were already answered several times...;)

masaykh
2nd May 2009, 14:55
i searched but for "subtitile" not for subs:)

More questions:
i noticed something strange, i have file
Video: DivX 6 640x480 23.98fps 3843Kbps [Video 0]
length 2:38 min
(mpc-hc 1079 \ win xp sp3 \ nvidia 6100 \ 185.81 driver)

if renderer vmr9 - 23.98fps
if haali - 24.05fps
if MadVR - started with 40.88 and droped to 23.99 \ 24.02fps through 1.30 of clip play

is this some bug or is this normal?

all of those renders have default settings

p.s. some result in zoomplayer

TripleH
2nd May 2009, 17:40
An update:

Last night I decided to give madVR another try, this time using v0.8 and with Aero enabled.

So, with Aero enabled I get a perfect smooth playback at 1080p @ 23.976hz.

The only strange thing is sync issue with reclock, but this is for another thread.

tetsuo55
2nd May 2009, 20:21
madshi,

Do you have any plans to add something like sony bravia 200hz motionflow?

It basically displays any content at 200hz and interpolates the missing frames.(resulting in added detail in fast movement scenes).

It could help with things like pan's and fast action or sports.

Although i have read some claims of people saying it destroys the film effect, making the image more realistic but in an uncanny valley way.

Obviously if you did have plans for this it would not do 200 but rather interpolate everything to the native refreshrate of the display

KoD
2nd May 2009, 21:03
Now that nVidia has released official drivers for laptops with video CUDA decoding, I'm finally able to decode all kinds of video on my laptop, the buffers in madVr are never empty, and the rendering times are half of what they used to be. So now I have confirmation that, indeed, stuttering is what one sees when the max gpu rendering time is above the frame duration. When downsizing from 1920x1080 to 1440xsomething I'm able to see this clearly: when I use Lanczos3 for resampling my max gpu rendering times are always below frame rendering times, and playback is perfectly smooth. However, using Lanczos4, my max gpu rendering times are higher than frame duration, and playback is jerky (but buffers are always full, and CPU load is low). Luckily for testing, switching between Lanczos3 and Lanczos4 for downsampling causes this limit behavior so I was able to have confirmation on what I thought was happening.

And now, for a bug (or maybe not) report:
- I guess nobody noticed, while discussing on colorimetry and such, but madVR using 3dlut, and madVR using shaders, give different colors. On my system, I have this very nice video clip, originated from a DVD, with TV colors, and black at 16. When using 3dlut, and asking madVR to output PC levels, that black at 16 is nicely expanded to black at 0 (PC level). However, when I disable 3dlut, and let madVR use shaders, the black is not RGB(0,0,0) anymore, but RGB(1,0,1) or RGB (1,0,0) or RGB (0,0,1), or even RGB(0,0,2) Rounding errors when using shaders ? Or maybe the 3dlut performs gammut mapping from NTSC to sRGB, while the shaders go from NTSC to NTSC ?

Hypernova
2nd May 2009, 21:07
madshi,

Do you have any plans to add something like sony bravia 200hz motionflow?

It basically displays any content at 200hz and interpolates the missing frames.(resulting in added detail in fast movement scenes).

It could help with things like pan's and fast action or sports.

Although i have read some claims of people saying it destroys the film effect, making the image more realistic but in an uncanny valley way.

Obviously if you did have plans for this it would not do 200 but rather interpolate everything to the native refreshrate of the display

Isn't that he already did it? When I change my monitor refresh rate down to 24 Hz, the playback is smooth regardless of the scaling method I use (and the gpu render time is a lot less than when it's at 60 Hz). So I guess madVR always render at monitor refresh rate? Just my wild guess though.

Egh
2nd May 2009, 21:16
Hmmmm. Tetsuo55's idea is very interesting. Trouble imho is lack of CPU/GPU power for such task. And of course would require perfect refresh rate detection.

And the issue with vsynс still remains. As typical contemporary display works @60Hz only, the minimum display interval is just over 16ms. With the standard frame rate each frame is to be displayed for nearly 42ms. Imho such upconvert video would be quite ugly.

With higher CRT refresh rate things will be better, as minimum interval is reduced to 10ms (@100Hz) which would allow smoother playback.

I'd suggest first to try with a simplified algorithm. That would also impose lesser requirements for refresh rate detection. Should work quite good imo for 4 intervals rates (85Hz and 100Hz). In this simplified case, each frame is presented as follows: 50%-100%-100%-50% across four vsync intervals. Hopefully would not blur much at all, as half of the time the frames are presented in the natural form.


Isn't that he already did it? When I change my monitor refresh rate down to 24 Hz, the playback is smooth regardless of the scaling method I use (and the gpu render time is a lot less than when it's at 60 Hz). So I guess madVR always render at monitor refresh rate? Just my wild guess though.


It does display @ refresh rate. However it doesn't do any framerate manipulations so far.

madshi
2nd May 2009, 21:31
Even upscaling DVDs (PAL slowed down with ReClock) rather than 1080p playback stutters here.
The best bet to get rendering times down is to use 1:1 display without any scaling. Upscaling DVDs costs a lot more GPU performance with madVR then displaying 1080p content without any scaling.

I have to say though, after experimenting with madVR, I'm questioning the benefits of 16-bit rendering. With madshi's test patterns, the benefits are obvious.

With Blu-Ray playback, I am struggling to see any kind of benefit from the 16-bit rendering in actual film content. Scenes that are posterised in Beliyaal's MPC-HC build with EVR Custom are more or less identical in madVR with no improvement. (just very slightly different due to chroma being handled differently)

Are the only real benefits of 16-bit rendering supposed to be for DVD upscaling? (which I haven't compared)
madVR contains some small improvements in exactness/quality in different areas. But most of the improvements are only clearly visible in specific scenes. E.g. chroma upsampling improvements are mostly visible in red-on-black scenes. The benefits of 16bit rendering may be even harder to see in real life. The benefits are visible in test patterns and they are there (but hard to see) with real life content, too. In the end if you don't see much of a difference then that shows that EVR-Custom already does a good job. Still, madVR should be the mathematically most exact renderer which exists in the HTPC world. Whether that is worth anything to you or not is up to your personal judgement.

It should also be said that madVR is still in early beta state. It's not feature complete yet. So you can expect further improvements in quality & performance...

I've been outputting to a Sony HW10 via HDMI (reports as 23.977 in reclock) and an old ViewSonic CRT over VGA at 1920x1440@47.952. Can't get smooth playback on either with madVR.
You can check out the GPU rendering times in the OSD (Ctrl+J). As long as the average rendering times are noticeably lower than the movie frame duration time, a future version of madVR should play smoothly on your hardware. Right now madVR is not optimized for smooth playback yet...

i noticed something strange, i have file
Video: DivX 6 640x480 23.98fps 3843Kbps [Video 0]
length 2:38 min
(mpc-hc 1079 \ win xp sp3 \ nvidia 6100 \ 185.81 driver)

if renderer vmr9 - 23.98fps
if haali - 24.05fps
if MadVR - started with 40.88 and droped to 23.99 \ 24.02fps through 1.30 of clip play

is this some bug or is this normal?
Not sure where you got these FPS numbers from. But both Haali and madVR render some frames "on storage" at the beginning of the movie to even out decoding variances. That may explain why the FPS you got reported was higher for Haali and madVR in the beginning of playback.

Do you have any plans to add something like sony bravia 200hz motionflow?
No, these things are extremely hard to do and very calculation intense (if you want to do it right).

now I have confirmation that, indeed, stuttering is what one sees when the max gpu rendering time is above the frame duration.
With the current madVR version that's correct, because madVR currently renders a frame, then waits for VSync and only after the VSync occured, starts rendering the next frame. Obviously that's very suboptimal. With a future madVR version, things will change quite a lot in this area and max gpu rendering times will hopefully lose most of their meaning. Average gpu rendering times is what counts in the long run...

And now, for a bug (or maybe not) report:
- I guess nobody noticed, while discussing on colorimetry and such, but madVR using 3dlut, and madVR using shaders, give different colors. On my system, I have this very nice video clip, originated from a DVD, with TV colors, and black at 16. When using 3dlut, and asking madVR to output PC levels, that black at 16 is nicely expanded to black at 0 (PC level). However, when I disable 3dlut, and let madVR use shaders, the black is not RGB(0,0,0) anymore, but RGB(1,0,1) or RGB (1,0,0) or RGB (0,0,1), or even RGB(0,0,2)
If you shoot the same picture twice, it will be different each time, due to dithering. You can turn off dithering to get "static" results. But results like RGB(0,0,2) shouldn't be caused by dithering. So I guess there's a problem somewhere. Can I get a small sample with which I can reproduce the problem, please?

cyberbeing
2nd May 2009, 21:39
madshi, have you had any luck figuring out how to fix the rendering time spike with that sample I posted a week ago?

yesgrey
2nd May 2009, 23:27
Do you have any plans to add something like sony bravia 200hz motionflow?
No, these things are extremely hard to do and very calculation intense (if you want to do it right).
I agree. But what about something like the black frame insertion? That should not be very gpu intensive, and some users report it to look good with some source material... I was considering trying something using avisynth, but in madVr it could be a lot easier and faster.

honai
2nd May 2009, 23:57
Black frame insertion only has benefits at high refresh rates (> 100 Hz) and increases the perceived contrast, i.e. it's a psychovisual trick. I'm not sure if there are any LCD devices out there which accept refresh rates higher than 72 Hz at 1080p.

Egh
3rd May 2009, 00:17
Black frame insertion only has benefits at high refresh rates (> 100 Hz) and increases the perceived contrast, i.e. it's a psychovisual trick. I'm not sure if there are any LCD devices out there which accept refresh rates higher than 72 Hz at 1080p.

They are. cyberglasses require high refresh rates, iirc there were some models specifically for that with 120Hz rates.


Black frame insertion only has benefits at high refresh rates (> 100 Hz) and increases the perceived contrast, i.e. it's a psychovisual trick.


How does it do that? And how often to insert black frames? With 100Hz CRTs it might be worth to implement this as a possible mode in madVR. Proud CRT owners like me then might be happy ;) Subject to no flickering of course.

My algorithm is still though the best amongst suggested, and computationally very efficient.

Hypernova
3rd May 2009, 00:20
I have to say though, after experimenting with madVR, I'm questioning the benefits of 16-bit rendering. With madshi's test patterns, the benefits are obvious.


I want to add that if you watch anime like me, the benefit of madVR is sometimes so obvious that doesn't need special attention to detect. The easiest one is color band. While you can use ffdshow's deband/gradfun to get rid of the problem, madVR by itself produce a better result compare to EVR CP that even video quality idiot like me can see.

leeperry
3rd May 2009, 01:06
I was considering trying something using avisynth, but in madVr it could be a lot easier and faster.
processing 120fps in AVS will take some crazy CPU I think :D
there was a thread here : http://forum.doom9.org/showthread.php?t=144276

6233638
3rd May 2009, 04:52
I've done more testing, and I was definitely mistaken about madVR's use with actual video content.

The problem is that I was looking for the elimination of posterisation rather than a slight reduction of it, and I wasn't comparing frame grabs, but playing the same scenes over and over again.

Strangely, the differences seem much more apparent on my laptop's LCD rather than on my CRT. (not tried the HW10)

An out of focus Jude Law from Breaking and Entering, 1:03:18.

8-bit VC-1 DXVA in Beliyaal's MPC-HC Build:
http://img91.imageshack.us/img91/1928/8bit.th.png (http://img91.imageshack.us/img91/1928/8bit.png)

10-bit VC-1 DXVA in Beliyaal's MPC-HC Build:
http://img148.imageshack.us/img148/6051/10bit.th.png (http://img148.imageshack.us/img148/6051/10bit.png)

ffdshow in Beliyaal's MPC-HC Build:
http://img60.imageshack.us/img60/50/ffdshow.th.png (http://img60.imageshack.us/img60/50/ffdshow.png)

madVR w/ffdshow in Beliyaal's MPC-HC Build:
http://img359.imageshack.us/img359/7114/madvr.th.png (http://img359.imageshack.us/img359/7114/madvr.png)


I'm not sure if that means madVR's 16-bit rendering isn't enough yet, or if that's what's on the disc and it can't be improved any further.

madshi
3rd May 2009, 08:02
madshi, have you had any luck figuring out how to fix the rendering time spike with that sample I posted a week ago?
I've downloaded it, but not analyzed yet.

I want to add that if you watch anime like me, the benefit of madVR is sometimes so obvious that doesn't need special attention to detect. The easiest one is color band. While you can use ffdshow's deband/gradfun to get rid of the problem, madVR by itself produce a better result compare to EVR CP that even video quality idiot like me can see.
Sometimes these banding artifacts are more visible in motion, so it can be difficult catching it in screenshots. But if you find cases where you can see a very noticeable difference in screenshots, I'd be happy to see some examples!

I've done more testing, and I was definitely mistaken about madVR's use with actual video content.

The problem is that I was looking for the elimination of posterisation rather than a slight reduction of it, and I wasn't comparing frame grabs, but playing the same scenes over and over again.
Thanks, these are good screenshots! Finally some real world screenshots where the benefits of 16bit show (albeit only slightly).

madVR does not eliminate posterisation, it does not even reduce it. madVR just displays the original content as exact as possible. While other renderers round down to 8bit, which can create posterisation or increase already existing posterisation.

If you see posterisation with madVR then you can be sure it's on the disc.

BTW, the 10bit EVR-Custom screenshot is not helpful because the screenshot itself is only 8bit. You will have to compare directly in the media player on screen to check whether 10bit EVR-Custom shows an improvement over 8bit.

Hypernova
3rd May 2009, 08:52
As you wish, Madshi :) I might exaggerate it though... and I hope these screenshot won't get me into some troubles...

http://img520.imageshack.us/img520/3310/evrcp.th.jpg (http://img520.imageshack.us/img520/3310/evrcp.jpg)
http://img520.imageshack.us/img520/8082/madvr.th.jpg (http://img520.imageshack.us/img520/8082/madvr.jpg)

Look at the band at the grey area on the bottom right corner. I think it's easily noticable. I know it's not exactly the same frame (I learn how to do that right after I take the shots and too lazy to do it again) but it should not matter much.

Edit: If you worry about jpeg's artifact, I can confirm that's not the case. It is what I really see (and both are jpeg anyway).

KoD
3rd May 2009, 09:49
PM with sample sent.

6233638
3rd May 2009, 11:26
BTW, the 10bit EVR-Custom screenshot is not helpful because the screenshot itself is only 8bit. You will have to compare directly in the media player on screen to check whether 10bit EVR-Custom shows an improvement over 8bit.
Oh right, I thought it was just rendering in 10-bit and always ended up as 8-bit for output from a PC no matter what. (I just got started on HTPCs a few weeks ago really)


Do you think that using more bits for processing (32/64-bit FP) and/or linear processing would improve things at all, or is madVR currently as good as it'll get as far as posterisation is concerned?

Would enabling the 10-bit output have any effect on the image at the display when madVR is used?

madshi
3rd May 2009, 11:27
Look at the band at the grey area on the bottom right corner. I think it's easily noticable. I know it's not exactly the same frame (I learn how to do that right after I take the shots and too lazy to do it again) but it should not matter much.
Nice - thanks!

This is with quite a high upscaling factor. Is the visible difference equally big without scaling? Or is it bigger when you upscale that much?

Would be nice to have screenshots of exactly the same frame. With madVR you can't frame step right now. But you can do so with EVR. So you can do this: (1) do a screenshot with madVR. (2) pause EVR playback a second (or so) before the madVR screenshot. Then in MPC HC use the right arrow key to step through the frames until the frames match 100%.

You may want to try IrfanView's PNGOUT plugin. It creates lossless PNG files with good compression. Of course compression is not as high as jpeg, but it's the best I've seen for lossless compression.