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

madshi
26th January 2014, 23:02
MadVR don't load with the latest version, it is stuck at opening the file and it crash on the setting window. The debug don't work either.

Log (http://www.mediafire.com/view/vmvdkk1ww0fiss4/madVR%200.87.2%20log.txt)

My system : Intel Core i7@920, Ati Radeon HD 5770, Windows 8.1, MPC-HC 1.7.2
The log seems to suggest that the decoder is never sending any video frames to madVR. But I'm not fully sure. It could also be a different problem just looking like that. Try different video files and maybe a different decoder. Does playback work with v0.86.11?

Oh my bad, sure, here it is with "present multiple frames" enabled: madV_logTSR.zip (http://videoff7.free.fr/madV_logTSR.zip)
Hmmmm... The log suggests that "present several frames in advance" is still disabled.

I'm a little confused... I have these profile auto select rules, but it always picks the progressive profile even when the source is definitely interlaced (madVR reports deinterlacing is on and shows a time for it).

if (srcInterlaced = true) "interlaced"
else if (srcInterlaced = false) "progressive"

I'm using .87.2 if that matters.
I've tried your exact setup and it works correctly here. The profiles switch exactly as intended. BTW, you could shorten your script to "if (srcInterlaced) "interlaced" else "progressive"". But it won't make any difference. Your script is alright.

iSunrise
26th January 2014, 23:08
No you don't. link (http://forum.doom9.org/showpost.php?p=1271417&postcount=3)

However, I've edited my post as I believe I understand why I wasn't seeing the correct information.
Youīre right, that one was a major oversight by me, didnīt think that madVR would consider == and = as being an equal operation. But at least my second advice is valid.

TheShadowRunner
26th January 2014, 23:09
Hmmmm... The log suggests that "prerender multiple frames in advance" is still disabled.
... hmm indeed?
We're talking about "exclusive mode settings" > "present several frames in advance" ENABLED, right?
I made another log after 2x checking.. here it is: madVR_logTSR_2.zip (http://videoff7.free.fr/madVR_logTSR_2.zip)

madshi
26th January 2014, 23:12
... hmm indeed?
We're talking about "exclusive mode settings" > "present several frames in advance" ENABLED, right?
I made another log after 2x checking.. here it is: madVR_logTSR_2.zip (http://videoff7.free.fr/madVR_logTSR_2.zip)
Weird. Ok, let me think: The log indicates that madVR is using D3D9 instead of D3D9Ex. That usually means that "present several frames in advance" is disabled. However, now I think I misinterpreted that. Are you by any chance still using Windows XP? That would explain the problem, because the cause of the issue is the use of D3D9. And XP doesn't support D3D9Ex.

P.S: Just saw your signature. Yes, the problem is XP. My fault, I misinterpreted the log. The problem will be fixed in v0.87.3, sorry.

Stereodude
26th January 2014, 23:13
I've tried your exact setup and it works correctly here. The profiles switch exactly as intended. BTW, you could shorten your script to "if (srcInterlaced) "interlaced" else "progressive"". But it won't make any difference. Your script is alright.Thanks, I found my problem and edited my post, but you were too fast. :D

djfred93
26th January 2014, 23:15
The log seems to suggest that the decoder is never sending any video frames to madVR. But I'm not fully sure. It could also be a different problem just looking like that. Try different video files and maybe a different decoder. Does playback work with v0.86.11?

It's the same with MPC-BE and his internal filter. It was working fine with MadVR 0.86.11 and with MadVR 0.87.1.

leeperry
26th January 2014, 23:16
Ouh it seems that 87.2 has made DXVA2 fully usable on my rig, especially if I check "use OpenCL to process DXVA". At this stage, only a wattmeter will make me decide between CPU or GPU video decoding.

My only last problem is that I get tearing at the bottom of the picture in windowed mode, it instantly disappears when I go FSE or FSW...very strange and not a big deal anyway.

The performance issue I mentioned when going FS is apparently due to how W7 behaves when mVR simultaneously rolls the refresh rate and goes FS, XP did it all seamlessly but W7 hiccups quite a bit as the picture is vertically stretched for like a split second, then the AR is applied and playback finally starts.

I see that you've explained several times in this thread that NNEDI can do 2X vertical and/or horizontal upscale but:
1) why is there a "NNEDI3" processing option in the "chroma upscaling" tab, but not in "image upscaling"?
2) if I want to upscale a 4:3 360*288 video to 4:3 1440:1080, the default "image doubling" settings will upscale it to 1440*576 and then 576 will be upscaled to 1080 using the algorithm I chose in "image upscaling"?

TheShadowRunner
26th January 2014, 23:20
Weird. Ok, let me think: The log indicates that madVR is using D3D9 instead of D3D9Ex. That usually means that "present several frames in advance" is disabled. However, now I think I misinterpreted that. Are you by any chance still using Windows XP? That would explain the problem, because the cause of the issue is the use of D3D9. And XP doesn't support D3D9Ex.

P.S: Just saw your signature. Yes, the problem is XP. My fault, I misinterpreted the log. The problem will be fixed in v0.87.3, sorry.

Ooh no worries, glad you found the issue ^^;
See you,

TSR

Stereodude
26th January 2014, 23:24
Okay, I'm pretty sure this one is real... :o

I have these rules for image and chroma scaling
if ((srcWidth <= 1300) and (deintFps < 31) and (srcInterlaced == true)) "<= 720i 24-30fps"
else if ((srcWidth <= 1300) and (deintFps < 31) and (srcInterlaced == false)) "<= 720p 24-30fps"
else if ((srcWidth <= 1300) and (deintFps > 31) and (srcInterlaced != true)) "<= 720p 50-60fps"

and this rule for image downscaling
if ((srcWidth >= 1600) and (deintFps < 31) and (srcInterlaced == false)) ">= 1600w 24-30fps"

Playing back a blu-ray on my 1600x1200 monitor I see this:

http://imageshack.com/a/img69/4018/4fl8.png

It's using the downscaling settings, but shouldn't none of the image scaling options be bold since none are active? FWIW, the downscaling option is bold when playing back content that's not being downscaled also.

madshi
26th January 2014, 23:36
It's the same with MPC-BE and his internal filter. It was working fine with MadVR 0.86.11 and with MadVR 0.87.1.
I see. Have you tried going back to 0.86.11 or 0.87.1 after you ran into this problem? Sometimes the OS just gets into a screwed up state. Could you please double check if 0.86.11 or 0.87.1 still work if you go back to them now?

If they still do work then I've no idea what the problem could be... :(

Ouh it seems that 87.2 has made DXVA2 fully usable on my rig, especially if I check "use OpenCL to process DXVA".
Great!

1) why is there a "NNEDI3" processing option in the "chroma upscaling" tab, but not in "image upscaling"?
NNEDI3 can only do exact 2.0x enlargements. Chroma upscaling happens to be exactly that. So NNEDI3 can serve as a full replacement for the other algorithms, when talking about chroma upscaling.

However, the image upscaling factor is very rarely exactly 2.0x. So NNEDI3 is almost never a full replacement algorithm for the other algorithms like Lanczos or Jinc, when talking about image upscaling. Let's imagine I made the image upscaling settings page the same as the chroma upscaling settings page is now. And let's imagine you selected NNEDI3 for image upscaling. Let's further imagine in your specific situation you'd need a 3.0x scaling factor. What should madVR do in that case? It could use NNEDI3 to upscale 2.0x or 4.0x, but not 3.0x. So what should it do? It's not clear. Because of that I cannot offer NNEDI3 as a full replacement algorithm in the image upscaling settings page.

2) if I want to upscale a 4:3 360*288 video to 4:3 1440:1080, the default "image doubling" settings will upscale it to 1440*576 and then 576 will be upscaled to 1080 using the algorithm I chose in "image upscaling"?
No. The default "image doubling" settings disable image doubling / NNEDI3.

You can tell madVR to double your image size, or to quadruple it with NNEDI3. If you tell madVR to only double it, you get 720*576. If you tell madVR to quadruple it, you get 1440*1152. But whether madVR actually doubles or quadruples depends on which exact settings you're using in the "image doubling" section. There are several radio boxes in there you can check which controls all this. In any case, if the output of "image doubling" is smaller than the target resolution, madVR will use the algorithm from the "image upscaling" settings page to upscale the "image doubling" output to the needed target resolution. If the output of "image doubling" is larger than the target res, madVR will usw the image downscaling algorithm to achieve the target res.

It's using the downscaling settings, but shouldn't none of the image scaling options be bold since none are active? FWIW, the downscaling option is bold when playing back content that's not being downscaled also.
The "bold" state just shows which profile is active. One profile is always active in every profile group. If your script doesn't select a profile, the first profile in the list will be active. A profile being active doesn't mean that the settings page is actually used. It just says which profile would be used if the settings are needed by madVR.

madshi
26th January 2014, 23:36
madVR v0.87.3 released

http://madshi.net/madVR.zip

* fixed: blacked out video in Windows XP
* fixed: blacked out video when disabling "present several frames in advance"

6233638
26th January 2014, 23:40
Chroma upscaling is often not very important. I don't really recommend using NNEDI3 for chroma upscaling - unless your GPU doesn't have anything else to do, maybe.I agree, it's far less important than luma scaling - but I appreciate that madVR does have high quality chroma scaling options available.

Generally I would suggest:

Mitchell-Netravali
Bicubic 75 with the anti-ringing filter enabled
Jinc 3 with the anti-ringing filter enabled

in order of performance impact and quality. (low to high)

Anything above Bilinear is good though, as that can introduce noticeable artifacts, and with the optimized scaling algorithms I'd like to think that few systems would have to compromise and use Bilinear.

Mitchell-Netravali is a good choice if you don't have the performance to enable the anti-ringing filter, as it has very little ringing itself.
You could use Bicubic 75 instead as that's sharper and has the same performance requirements, but it can suffer from ringing.

Bicubic 75+AR gets you 90% of the way there as far as chroma quality is concerned. For the vast majority of sources, this will be indistinguishable from anything more advanced.

And when you have performance to spare, Jinc 3+AR is the best option, though few sources actually require it.

I am looking forward to doing some testing once NNEDI3 is working though.

Ouh it seems that 87.2 has made DXVA2 fully usable on my rig, especially if I check "use OpenCL to process DXVA". At this stage, only a wattmeter will make me decide between CPU or GPU video decoding.Unless you're using a really low power system, the difference is probably going to be negligible between DXVA or software decoding on modern hardware - at least up to 1080p.

Error handling is definitely better with software decoding.
Someone posted a really good sample video here (probably years ago at this point) which shows errors with the hardware decoders that do not exist with LAV's software decoding:
http://www.abload.de/thumb/hardware-decodercfkpe.jpg (http://www.abload.de/img/hardware-decodercfkpe.jpg) http://www.abload.de/thumb/software-decodertzjhr.jpg (http://www.abload.de/img/software-decodertzjhr.jpg)

(the sample appeared to be a broadcast recording with fast movement and a lot of flashing lights)

That being said, it is extremely rare to find this with commercially produced content.
So far I've only seen this occur with a single blu-ray (out of hundreds) and have had one other report (http://yabb.jriver.com/interact/index.php?topic=85833.msg591627#msg591627) of it happening on another disc.
Because it's so rare in the content I watch, I do use DXVA-CB decoding, as it means that high CPU usage in other programs is a lot less likely to affect video playback.

If you see blocking like that happen in the content that you watch though, you should check and see if switching to software decoding will fix it.

1) why is there a "NNEDI3" processing option in the "chroma upscaling" tab, but not in "image upscaling"?Chroma upscaling is only ever going to be 2x.

If you're scaling luma with NNEDI3 you are likely to use NNEDI3 to scale 2x and use an additional scaler (up or down) to scale that image to your display resolution.

Edit: Nevermind - Madshi has already managed to answer your question and put out a new build in the time it took for me to type up that reply. :eek:

TheShadowRunner
26th January 2014, 23:42
madVR v0.87.3 released

http://madshi.net/madVR.zip

* fixed: blacked out video in Windows XP
* fixed: blacked out video when disabling "present several frames in advance"
Ahah that was lightning fast, thank you!
Testing..

DragonQ
26th January 2014, 23:43
Youīre right, that one was a major oversight by me, didnīt think that madVR would consider == and = as being an equal operation. But at least my second advice is valid.
Proper languages use the same symbol for setting and evaluating variables. ;)

djfred93
26th January 2014, 23:44
I see. Have you tried going back to 0.86.11 or 0.87.1 after you ran into this problem? Sometimes the OS just gets into a screwed up state. Could you please double check if 0.86.11 or 0.87.1 still work if you go back to them now?

It work on 0.86.11, 0.87.1 and 0.87.3. So that good, thanks.

Edit : And work very good. Now, i can activate debanding on 1080i.

TheShadowRunner
26th January 2014, 23:59
All good here now madshi with 0.87.3, thanks again!

Deim0s
27th January 2014, 00:30
madshi,
My problem with 4k video playback (downscaling) was not solved.

If to use the old settings queue:
CPU queue - 16
GPU queue - 8
Win. mode -> backbuffers - 3
MPC-HC all the time crashes.
madVR - log (http://rghost.ru/51954749)
On version 0.86.11 with these settings work fine (when playback 4k video).

Minimum settings queue needed to MPC-HC did not have crash:
CPU queue - 5
GPU queue - 5
Win. mode -> backbuffers - 3
But when you switch from windowed mode to fullscreen still black screen.
madVR - log (http://rghost.ru/51954753)

Somebody has a problem with downscaling 4k video except me?

DarkSpace
27th January 2014, 00:44
Great work on getting back the deinterlacing performance!
Personally, I had assumed that the D3d/OpenCL interaction with DXVA deinterlacing just cost too much time, but now I can disable profiles again and run everything with OpenCL enabled.
In fact, I just made a small test, and even 1080i with image quadrupling works here (just barely, though). Good work!

madshi
27th January 2014, 00:55
It work on 0.86.11, 0.87.1 and 0.87.3. So that good, thanks.

Edit : And work very good. Now, i can activate debanding on 1080i.
Good to hear! Although I'm still not sure why v0.87.2 didn't work for you.

All good here now madshi with 0.87.3, thanks again!
Great!

madshi,
My problem with 4k video playback (downscaling) was not solved.

If to use the old settings queue:
CPU queue - 16
GPU queue - 8
Win. mode -> backbuffers - 3
MPC-HC all the time crashes.
madVR - log (http://rghost.ru/51954749)
On version 0.86.11 with these settings work fine (when playback 4k video).

Minimum settings queue needed to MPC-HC did not have crash:
CPU queue - 5
GPU queue - 5
Win. mode -> backbuffers - 3
But when you switch from windowed mode to fullscreen still black screen.
madVR - log (http://rghost.ru/51954753)

Somebody has a problem with downscaling 4k video except me?
Which OS, which GPU?

Can you compare RAM consumption with v0.86.11 and v0.87.3 with your hardware/software, when playing back that 4K clip with 5/5/3 queues? Does v0.87.0 consume more RAM than v0.86.11?

According to the log the decoder sends the first 27 frames, and then simply stops. Probably it crashed or something. Might be some sort of "out of memory" problem. But I'm not sure why v0.87.3 would consume so much more memory than v0.86.11...

Great work on getting back the deinterlacing performance!
Personally, I had assumed that the D3d/OpenCL interaction with DXVA deinterlacing just cost too much time, but now I can disable profiles again and run everything with OpenCL enabled.
In fact, I just made a small test, and even 1080i with image quadrupling works here (just barely, though). Good work!
Nice!

Asmodian
27th January 2014, 00:59
I have the same problem, a blank black screen watching 4k video at 2560x1440. I think I have tracked it down.

I reset all settings to default and then changed:
GPU Buffers > 8, I tested using 10-24. This probably changes depending on the card, maybe total video memory?
Full Screen Windowed mode (both the new Win7+ and original, 3-8 back buffers)
Linear light downscaling

If I use FSE, leave the GPU buffers at 8, or do not user LL for downscaling I get a picture. I can toggle the picture black and correct by right clicking to bring up the context window, kicked out of FSE -> black picture, dismiss it so back in FSE -> correct picture.

This is a log from 87.2 where I got a dither failed to create D3D9 surface error going into Full Screen Windowed. I cannot remember the exact wording and I just get a blank screen with 87.3.
MadVR - log.7z (http://www.mediafire.com/download/bdy61e0la9gf0ew/madVR%20-%20log.7z)
madVR_87.3 - log.7z (http://www.mediafire.com/download/hb2o96d7im45n26/madVR_87.3%20-%20log.7z)

Running 3770K, SLI GTX Titans driver version 332.21.
using 4k_QHD_RoastDuck_30p.mp4 test video.
edit: Windows 8.1

With LL downscaling and 24 GPU buffers (3 back buffers FSW, 8 frames in advance FSE) I see 1594MB of video ram used when in FSE and 1704MB of video ram used when in FSW (black).
If I turn down GPU buffers to 10 (back buffers 8) when in FSW I get 1266 MB used without LL (correct picture) or 1351 MB used with LL (black picture).

madshi
27th January 2014, 01:02
@Asmodian, and how does v0.86.11 behave in comparison?

Deim0s
27th January 2014, 01:09
madshi,
Which OS, which GPU?
My configuration in this message (http://forum.doom9.org/showthread.php?p=1663895#post1663895).
Can you compare RAM consumption with v0.86.11 and v0.87.3 with your hardware/software, when playing back that 4K clip with 5/5/3 queues? Does v0.87.0 consume more RAM than v0.86.11?
Here (http://forum.doom9.org/showthread.php?p=1664113#post1664113) I post screenshots of memory consumption. v0.87.* consumes less RAM.

jkauff
27th January 2014, 01:10
madVR v0.87.3 released

http://madshi.net/madVR.zip

* fixed: blacked out video in Windows XP
* fixed: blacked out video when disabling "present several frames in advance"
Having read all the 0.87 posts, I'm still confused. As a GTX660 owner, is there any reason to upgrade from 0.86? I'm leaning toward holding off until the Nvidia OpenCL problem is worked out.

Asmodian
27th January 2014, 01:34
@Asmodian, and how does v0.86.11 behave in comparison?

v0.86.11 works with all settings, memory usage is 1660 MB in FSE (LL on) and 1630 MB in FSW (LL on).

Same settings as above, defaults plus:
LL downscaling
24 GPU buffers (28 CPU)

Sorry I edited my original post with more details.

Edit:
GPU buffers at 10, back buffers at 8
FSW, 1175 MB (LL off), 1325 MB (LL on)

Ver Greeneyes
27th January 2014, 01:35
I agree, it's far less important than luma scaling - but I appreciate that madVR does have high quality chroma scaling options available.

Generally I would suggest:

Mitchell-Netravali
Bicubic 75 with the anti-ringing filter enabled
Jinc 3 with the anti-ringing filter enabled

in order of performance impact and quality. (low to high)I always appreciate these recommendations :) I know you've suggested image up- and downscaling settings before as well, but they're lost somewhere in this huge thread. Could you repeat your recommendations for image up- and downscaling in a similar format? I'm just able to use Jinc w/ AR for everything (Catmull-Rom for downscaling) on my desktop (nvidia so no OpenCL for now), but my laptop can't handle that much.

Having read all the 0.87 posts, I'm still confused. As a GTX660 owner, is there any reason to upgrade from 0.86? I'm leaning toward holding off until the Nvidia OpenCL problem is worked out.0.87 added a new debanding filter and fixed a bug leading to frame drops. Most of the problems 0.87 introduced should be fixed in 0.87.3, and the OpenCL options won't affect you unless you enable them.

mindbomb
27th January 2014, 01:55
I have a question about image doubling(which also applies to the scaling factor requirement). Does doubling mean doubling the total amount of pixels, or doubling both the height and width (quadrupling the total pixels)?

Asmodian
27th January 2014, 01:56
@Ver Greeneyes
Here are the results of the discussion as understood by Niyawa (http://forum.doom9.org/member.php?u=209305):
http://i.imgur.com/HLv1qmj.png
As I understand their preferences 6233638 prefers less ringing to a bit sharper which is why they prefer Mitchell-Netravali to Bicubic 75. This is of course perfectly reasonable. I hope I am correct as to your reasoning, 6233638. :)

I have a question about image doubling(which also applies to the scaling factor requirement). Does doubling mean doubling the total amount of pixels, or doubling both the height and width (quadrupling the total pixels)?

Doubling both the height and width

@madshi
Another note, using v0.87.3 with my normal settings (everything on :D) watching 1080p on 1440p I see 2624 MB of video ram used when in FSW.

mimi123
27th January 2014, 02:11
Hello!

For about one month I'm trying to send video, from my HTPC, with more than 8 bits per color to my projector. I have tried Nvidia, Ati and Intel graphics (basic models) but without success.

I know my projector is 12 bits capable because I test it with a BD player and works.
I think the problem is the graphics card or the drivers.

My SO is Windows 8 and my favorite player is MPCHC with Madvr, of course.

Can you tell me some cards, with moderate price, to get 10 o more bits?

Very thanks.:thanks:

AngelGraves13
27th January 2014, 02:51
Is the problem with dragging the screen to another monitor fixed? It would stop playback and you'd have to open the file again with the player on the second screen for it to play, or it would just stay stopped no matter matter. Pausing and Playing did nothing.

Qotscha
27th January 2014, 03:07
I think the performance of error diffusion is quite poor on my computer (Radeon HD 6850 with Catalyst 13.12). Here is a little comparison:

720p50 to 1080p50:

Jinc 4 + AR (Image + chroma), medium deband, random dithering: 91% GPU load, no dropped frames
Bilinear (Image + chroma), no deband, error diffusion: ~90% GPU load, a lot of dropped frames (result is about the same with any scaling algorithm)


It seems that also Vyral has these performance issues with 6850:
I haven't tested debanding or NNEDI3 upsampling or upscaling yet, only disabled everything in "Trade quality for performance". However, the rendering time and GPU load increased dramatically (from 12ms to 36ms in rendering time and 10% to 72% in GPU load, ouch).
After further testing, "use random dithering instead of openCL error diffusion" was the culprit.

Is openCL really that demanding ?

I've tried to test the new OpenCL features on madVR but, even though I have a powerfull GPU, it seems I can't use any. Therefore, I will stick with Jinc 3 AR and Catmull-Rom AR/LL.
On the other hand, debanding works great with little impact on performance.

In case you need debug logs to improve the performance of OpenCL - D3D9 interop, or whatever the problem is, here (https://www.dropbox.com/s/8f1oancc5fweraa/madVR%20-%20log.zip) is one where 720p50 is scaled to 1680*1050 using error diffusion and otherwise default settings.

djfred93
27th January 2014, 03:16
Hello!

For about one month I'm trying to send video, from my HTPC, with more than 8 bits per color to my projector. I have tried Nvidia, Ati and Intel graphics (basic models) but without success.

I know my projector is 12 bits capable because I test it with a BD player and works.
I think the problem is the graphics card or the drivers.

My SO is Windows 8 and my favorite player is MPCHC with Madvr, of course.

Can you tell me some cards, with moderate price, to get 10 o more bits?

Very thanks.:thanks:

MadVR can't do 10 bit output. A lot of answer is in this thread (http://forum.doom9.org/showthread.php?t=166844) .

MistahBonzai
27th January 2014, 05:06
720p50 to 1080p50:

Jinc 4 + AR (Image + chroma), medium deband, random dithering: 91% GPU load, no dropped frames
Bilinear (Image + chroma), no deband, error diffusion: ~90% GPU load, a lot of dropped frames (result is about the same with any scaling algorithm)
.

The use of openCL error diffusion demands too many GPU cycles that I could put to better advantage elsewhere. Simple playback of native 1080P via MadVR at default settings uses 19% GPU while simply enabling openCL error diffusion bumps it up to a steady 68% - and that's with a PCIE 3 2GB HD 7850 (latest Catalyst 13.2 driver pkg), i73770@3.4GH, Windows 7 64bit on a SSD. Display is 40" Sony Bravia (1080P w/10-bit panel) via HDMI 1.3b.

A bit of background... I mostly use MPC-HC, MadVR, LAV, FFDshow (raw), Reclock, AviSynth and AC3 Filter. Viewing/testing consists of analysis of video sample quality utilizing AviSynth(MT) based utilities - I don't watch movies or TV but I love to tweak :-). These samples often exceed 1080P (1920*1080/29.976 progressive) - going up to 4096*2304 DCI-P3.

For the past few weeks I've focused on AviSynth OpenCL variants - notably nnedi3ocl. In my estimation the current MadVR release (87.3) performs similar (within 15% or so) to what I have seen via AviSynth. My take on this particular usage of OpenCL is that it facilitates load balancing across the GPU/CPU while nnedi3 can certainly improve up-scaling quality - you can work wonders with low-rez porn clips :-).

It isn't a free lunch. And it's very heavily GPU dependent - resolution is everything. Up-scaling 854*480P to 1080P vis Interframe2 and/or SVP is about the practical limit on my rig before encountering occasional dropped frames. Note that I simultaneously employ video smoothing (frame interpolation) utilizing frame doubling, sharping and the like as needed. YMMV :-)

I offer-up a sincere thanks to all involved. And Madshi..you are the bomb! :-)

Asmodian
27th January 2014, 06:08
Can you compare RAM consumption with v0.86.11 and v0.87.3 with your hardware/software, when playing back that 4K clip with 5/5/3 queues? Does v0.87.0 consume more RAM than v0.86.11?

I just noticed this question and figured I could try it.

Using v0.87.3 my system works if I use the defaults with 8 back buffers in FSW, FSE off is the only other thing I have changed.

Everything looks great in all these tests. :)
4K->1440p 30p

v0.87.3 queues 16/8/3
LL On 1683 MB
LL Off 1525 MB
queues 16/8/8
LL On 1787 MB
LL Off 1617 MB

v0.87.3 queues 16/9/8
LL On 1823 MB
LL Off 1654 MB

16/10/3 (worked this time? :confused:)
LL On 1779 MB
LL Off 1609 MB

V0.86.11 queues 16/8/3
LL On 1639 MB
LL Off 1511 MB
queues 16/8/8
LL On 1704 MB
LL Off 1537 MB

I the process of making this list I found something very odd.

Queues 13/13/8 works (good picture) but 13/12/8 gives black screen. 14/13/8 and 15/13/8 give black but 16/13/8 gives a good picture. This seems to be true with LL on or off, 24/22/8
LL Off (2295 MB) works but 23/22/8 doesn't, 23/20/8 does. Very odd; and these exact queue sizes seem to change. Sorry for the lack of good data. :(
I have tried restarting the player (Zoom Player) between setting the queues as well as restarting the computer but something may be wrong with my testing methodology for this.
Please let me know if there is anything I can do to help. :confused:

omarank
27th January 2014, 06:22
I think the performance problems with deinterlacing should finally be fixed now. So I hope this build will make v0.87 equal to (or better than) v0.86.11 in terms of stability and performance, as long as NVidia users don't touch OpenCL. Please test and let me know.

Yes, now the performance is better than v0.86.11. I haven't encountered any other problem with this build so far. Thanks!

pie1394
27th January 2014, 08:19
For the past few weeks I've focused on AviSynth OpenCL variants - notably nnedi3ocl. In my estimation the current MadVR release (87.3) performs similar (within 15% or so) to what I have seen via AviSynth. My take on this particular usage of OpenCL is that it facilitates load balancing across the GPU/CPU while nnedi3 can certainly improve up-scaling quality - you can work wonders with low-rez porn clips :-).

It isn't a free lunch. And it's very heavily GPU dependent - resolution is everything. Up-scaling 854*480P to 1080P vis Interframe2 and/or SVP is about the practical limit on my rig before encountering occasional dropped frames. Note that I simultaneously employ video smoothing (frame interpolation) utilizing frame doubling, sharping and the like as needed. YMMV :-)



About the above 2 functionalities, it does not seem to help the noticeable subjective PQ performance on my KDL-65HX920. The TV itself has already given certain level of resolution enhancement and motion stability. Neither does the SmoothMotion on FILM contents to 60Hz output. Actually it is worse than native 1080p24 input mode in some complex scenes -- just like what it happens on my another Hitachi 42" PDP, an 1080i50/60 native panel with super-resolution engine + its 1080p24 signal optimization.

For the madVR 0.87.x debanding with angle-detection along with Jinc3AR mode, it seems to make the X-RealityPRO XCA7 engine's super-resolution processing more stable on quick motion object's edges.

James Freeman
27th January 2014, 08:54
Madshi,

Can you please add a "Stop cadence search", "Lock cadence" keyboard shortcut, or "Stop search once 3:2 found" option in Proccessing->Deinterlaced->Film Mode.
The reason is even in a known 24p telecined to 29.97i content ivtc still breaks cadences sometimes.

I don't know if it is appropriate to compare to other software, but I will for reference.
I own PowerDVD 13, in which Film Mode is completely automatic, when it detects soft telecined 29.97i it will switch to 24p and stay there.
For PAL DVD's it just stays at equivalent Video Mode.
Maybe its done with "Flags" or what (I'm not well read about that matter), but it just works, no cadence breaks and no resulting micro stutter.

Thanks.

sdancer75
27th January 2014, 09:19
madVR currently does not support windowless, unfortunately. This is planned for a future version. But not any time soon.


Don't stop reading there. Read to the end of the "3RD PARTY SOFTWARE RESTRICTIONS" section.




Hi,

1) My app is not free, so can I ask for a free license or do I have to pay license fee ?

2) Still I can not make it to work : Here the code I use. I can see the madvr window inside my CView pane, and something that is moving (like a video playback) with flickering.



//Initialize madVR

hr = m_pMadVR->QueryInterface(IID_IVideoWindow, (void **)&m_pVidWin);
if (SUCCEEDED(hr)) {
m_pVidWin->put_Owner((OAHWND)m_hMediaWindow);
m_pVidWin->put_WindowStyle(WS_CHILD | WS_CLIPSIBLINGS);


hr = m_pMadVR->QueryInterface(IID_IBasicVideo, (void **)&m_pBasicVideo);
if (FAILED(hr)) {

ReportError(_T("Failed to initialize IBasicVideo (madVR)."),hr);
AMLOGINFO(_T("Failed to initialize IBasicVideo (madVR). errorcode=%s."),GetErrorCode(hr) );
return FALSE;
}

} else {
ReportError(_T("Failed to initialize IVideoWindow (madVR)."),hr);
AMLOGINFO(_T("Failed to initialize IVideoWindow (madVR). errorcode=%s."),GetErrorCode(hr) );
return FALSE;
}


//At my resize method

BOOL CGraph::Resize()
{

................

if (m_RendererType == MADVR_RENDERER) {

GetClientRect(m_hMediaWindow, &wndRect);
m_pBasicVideo->GetVideoSize(&size.cx, &size.cy);
m_pBasicVideo->SetDefaultSourcePosition();
m_pBasicVideo->SetDestinationPosition(0, 0, wndRect.right, wndRect.bottom);
m_pVidWin->SetWindowPosition(0, 0, wndRect.right, wndRect.bottom);
}

...........

}

iSunrise
27th January 2014, 10:45
Thanks for 0.87.3 madshi, working great on my system. Letīs hope you can get the OpenCL stuff to work on NV, as I really want to test the new NNEDI3 for instance. Still having a lot (and I mean A LOT) of lower resolution movies (DVD) and videos where this could make a lot of sense.

Proper languages use the same symbol for setting and evaluating variables. ;)
So C++ isnīt a "proper" language in your world then? Ok, I donīt think we need to discuss this further.

6233638
27th January 2014, 11:36
Can you please add a "Stop cadence search", "Lock cadence" keyboard shortcut, or "Stop search once 3:2 found" option in Proccessing->Deinterlaced->Film Mode.
The reason is even in a known 24p telecined to 29.97i content ivtc still breaks cadences sometimes.Set up a keyboard shortcut to force deinterlacing to film mode.

James Freeman
27th January 2014, 11:43
Set up a keyboard shortcut to force deinterlacing to film mode.

I did.
The video has multi-cadence parts so madvr keeps switching between them.
I just want to stop cadence searching, and freeze on a certain cadence.


EDIT:

madshi,

Have you ever thought about adding a smart DeNoise & Sharpen algorithms?
I use the ffdshow "Blur & NR" -> denoise3d, for removing compression noise/grain and artifacts.
A little goes a long way (no need for strong settings), almost looks like its twice the bitrate with no apparent PQ/Sharpness loss.
There is a problem with ffdshow: its 8-bit, and any change destroys madvr 16-bit workflow.

With Dithering + DeBanding we currently have in MadVR, DeNoise from ffdshow, and MPC-LumaSharpen (from SuperFX, the best one yet) sharpening, I get a better picture from a full 50Gb blu-ray than it can ever have.
Almost Digital Cinema quality in terms of noise and PQ with these together (DCI is almost 300-500 Gb for a single movie).

Do you have plans to further add quality filters into MadVR like you did with NNEDI & Debanding?

mimi123
27th January 2014, 12:32
MadVR can't do 10 bit output. A lot of answer is in this thread (http://forum.doom9.org/showthread.php?t=166844) .

Very thanks for your reply, the tread you tell me has been very useful.

I read these tread and I understand there is minus to none improvement on image quality, at least for the normal BD content, playing at 10 bits, is my understanding correct?

Anyway, can you tell me a good card, or some, to get the full potential of Madvr?

Qotscha
27th January 2014, 12:59
The use of openCL error diffusion demands too many GPU cycles that I could put to better advantage elsewhere. Simple playback of native 1080P via MadVR at default settings uses 19% GPU while simply enabling openCL error diffusion bumps it up to a steady 68% - and that's with a PCIE 3 2GB HD 7850 (latest Catalyst 13.2 driver pkg), i73770@3.4GH, Windows 7 64bit on a SSD. Display is 40" Sony Bravia (1080P w/10-bit panel) via HDMI 1.3b.

A bit of background... I mostly use MPC-HC, MadVR, LAV, FFDshow (raw), Reclock, AviSynth and AC3 Filter. Viewing/testing consists of analysis of video sample quality utilizing AviSynth(MT) based utilities - I don't watch movies or TV but I love to tweak :-). These samples often exceed 1080P (1920*1080/29.976 progressive) - going up to 4096*2304 DCI-P3.

For the past few weeks I've focused on AviSynth OpenCL variants - notably nnedi3ocl. In my estimation the current MadVR release (87.3) performs similar (within 15% or so) to what I have seen via AviSynth. My take on this particular usage of OpenCL is that it facilitates load balancing across the GPU/CPU while nnedi3 can certainly improve up-scaling quality - you can work wonders with low-rez porn clips :-).

It isn't a free lunch. And it's very heavily GPU dependent - resolution is everything. Up-scaling 854*480P to 1080P vis Interframe2 and/or SVP is about the practical limit on my rig before encountering occasional dropped frames. Note that I simultaneously employ video smoothing (frame interpolation) utilizing frame doubling, sharping and the like as needed. YMMV :-)

I offer-up a sincere thanks to all involved. And Madshi..you are the bomb! :-)

Thanks for clarification. Now I believe that error diffusion really is that heavy. It just felt first a little hard to believe that my card, which was formerly "fully madVR capable", i.e. able to do 1440*1080i60 at 1080p60 with Jinc 3 + AR, can't utilize error diffusion at 1080p50 with any settings.

I fully agree about the quality of NNEDI on low resolution content.

And thank you madshi for your continuous work to improve viewing experience!

leeperry
27th January 2014, 13:07
You can tell madVR to double your image size, or to quadruple it with NNEDI3. If you tell madVR to only double it, you get 720*576. If you tell madVR to quadruple it, you get 1440*1152. But whether madVR actually doubles or quadruples depends on which exact settings you're using in the "image doubling" section. There are several radio boxes in there you can check which controls all this. In any case, if the output of "image doubling" is smaller than the target resolution, madVR will use the algorithm from the "image upscaling" settings page to upscale the "image doubling" output to the needed target resolution. If the output of "image doubling" is larger than the target res, madVR will usw the image downscaling algorithm to achieve the target res.
OK sounds good, TYVM for the detailed explanations! Maybe down the road you could start compiling this in the OP or into a forthcoming user manual.

So I cannot get NNEDI to upscale 360*288 to 1440*576? I was under the impression that NNEDI allowed either 2X horizontal and/or vertical upscale? This would increase performance I presume?

And you recently said that NNEDI was kinda overkill for chroma, but for clarity sakes's what did you use for chroma in this screenshots comparison (http://forum.doom9.org/showpost.php?p=1663611&postcount=21592) please?

Error handling is definitely better with software decoding.
Someone posted a really good sample video here (probably years ago at this point) which shows errors with the hardware decoders that do not exist with LAV's software decoding
Yeah, you can always find nasty samples that will make some decoders output junk, the big difference here is that the libavcodec ppl are very responsive to this kind of problem.

Ver Greeneyes
27th January 2014, 13:40
As I understand their preferences 6233638 prefers less ringing to a bit sharper which is why they prefer Mitchell-Netravali to Bicubic 75. This is of course perfectly reasonable. I hope I am correct as to your reasoning, 6233638. :)Thanks, but yeah, I think my preferences are more in line with those of 6233638 :) I hate artifacts much more than a 'soft' look.

Werewolfy
27th January 2014, 14:08
@madshi

Thanks for all your work, I was very busy this week end so I haven't followed the recent updates. I just can say that I have no issues with your latest build except the OpenCl features because I have a Nvidia GPU.

But the profiles are great, more flexible than I have imagined! I was a little bit afraid at the beginning, it seemed a little bit complicated but after some testings, it's not so hard. I'm sure this is the price to pay for this high flexibility.

I juste have one question about NNEDI3. I understand it doubles the resolution so if a video is 720*576 I get 1440*1152. I have a 1920*1080 TV screen so horizontal resolution is smaller and vertical resolution is bigger. Does it imply a upscale or a downscale or both in that case?

I hope you'll find a solution for Nvidia GPU owners, your're making a great job (I really love the debanding feature :D ) so I wish you the best of luck to fix this issue.

vivan
27th January 2014, 14:37
I juste have one question about NNEDI3. I understand it doubles the resolution so if a video is 720*576 I get 1440*1152. I have a 1920*1080 TV screen so horizontal resolution is smaller and vertical resolution is bigger. Does it imply a upscale or a downscale or both in that case?Both (if NNEDI3 is used). First, video is upscaled with NNEDI3 (720x576 -> 1440x1152), then downscaled (1440x1152 -> 1350x1080 (square pixels) or 1440x1080 (4:3)).
I'm not sure about anamorphic 16:9, however. It should be 1440x1152 -> 1920x1080, means upscaling in one direction and downscaling in the other.

Werewolfy
27th January 2014, 15:26
Thanks, I forgot that for a 1080p Tv screen, the resolution is only 1440*1080 for a 4:3 video so after NNEDI3 doubles the resolution to 1440*1152, madVR has only to downscale it to the appropriate resolution with Catmull-Rom or whatever you've chosen.

Yes, there is still anamorphic 16:9 content who needs to be upscaled horizontally and downscaled vertically, I wonder what happens in that particular case, if Jinc (for example) and Catmull-Rom work together.

pie1394
27th January 2014, 15:34
@madshi

Confirm the DXVA deinterlacing's performance is restored with 0.87.3! Appreciate for your hard work! :thanks:

[720x480i60]
0.86.10 : 1.20ms(0.83 ms **)
0.87.1: 1.64 ms
0.87.1b: 1.38 ms
0.87.3: 1.27 ms

**Somehow I no longer can reproduce this number during today's verification... Not quite sure if the CPU's TurboBoost among several frequencies affects the timing measurement's accuracy

[1440x1080i60]
0.86.10 : 1.44 ms
0.87.1: 4.21 ms
0.87.1b: 2.12 ms
0.87.3: 1.38 ms

--
Core i5-3570K + Z77 + dual-ch DDR3-2400 + HD7970@925MHz Catalyst 13.12 (forced VSync ON, Vector-adaptive deinterlace mode) + Win7x64SP1 + MPC-BE 1.3.0.3 + LavFilter 0.60.1 (DXVA2) + madVR FSE (deband,angle-detect, all Jin3AR for up-scale)

AGKnotUser
27th January 2014, 15:59
With 87.3 when I try to play a 1.33:1 MKV file in fullscreen mode with MPC-HC the video stops, displays the frame it stops at but the audio continues. Using Windows 8.1 64 bit, MPC-HC 1.7.2. Going back to 86.11 cures the problem.

Edit: I notice this happens only with videos with no top or bottom black bars.

michkrol
27th January 2014, 16:36
With 87.3 when I try to play a 1.33:1 MKV file in fullscreen mode with MPC-HC the video stops, displays the frame it stops at but the audio continues. Using Windows 8.1 64 bit, MPC-HC 1.7.2. Going back to 86.11 cures the problem.

Works here :rolleyes:
On a more serious note, mkv is a container format, this tells us nothing important. What codec is used, is the video interlaced, are you using software or hardware decoding (which exactly dxva-n/dxva-cb/cuvid/quicksync), what resolution are you scaling to/from?
If you're on MPC-HC select File->Properties and paste the MediaInfo here. Information about operating system, GPU, drivers, player and codecs used might also help.
Are you using any of the new features? Perhaps try restoring settings to default?